@sanity/ui 2.0.0-alpha.2 → 2.0.0-alpha.21

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.
Files changed (96) hide show
  1. package/dist/index.cjs.mjs +28 -0
  2. package/dist/index.d.ts +476 -12
  3. package/dist/index.esm.js +1326 -524
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.js +1353 -523
  6. package/dist/index.js.map +1 -1
  7. package/package.json +6 -8
  8. package/src/components/autocomplete/autocomplete.tsx +6 -0
  9. package/src/components/dialog/constants.ts +4 -0
  10. package/src/components/dialog/dialog.tsx +79 -15
  11. package/src/components/hotkeys/hotkeys.tsx +2 -0
  12. package/src/components/menu/menu.tsx +2 -0
  13. package/src/components/menu/menuButton.tsx +2 -0
  14. package/src/components/menu/menuGroup.tsx +22 -23
  15. package/src/components/menu/menuItem.tsx +29 -35
  16. package/src/components/tab/tab.tsx +4 -1
  17. package/src/components/toast/toast.tsx +4 -0
  18. package/src/primitives/_selectable/style.ts +2 -1
  19. package/src/primitives/avatar/avatar.tsx +16 -9
  20. package/src/primitives/avatar/avatarCounter.tsx +3 -3
  21. package/src/primitives/avatar/styles.ts +1 -1
  22. package/src/primitives/badge/badge.tsx +7 -3
  23. package/src/primitives/box/box.tsx +3 -0
  24. package/src/primitives/button/__workshop__/sanityUploadButton.tsx +2 -1
  25. package/src/primitives/button/button.tsx +7 -3
  26. package/src/primitives/button/styles.ts +9 -2
  27. package/src/primitives/card/card.tsx +4 -0
  28. package/src/primitives/card/styles.ts +2 -0
  29. package/src/primitives/checkbox/checkbox.tsx +2 -0
  30. package/src/primitives/code/code.tsx +1 -0
  31. package/src/primitives/container/container.tsx +2 -0
  32. package/src/primitives/flex/flex.tsx +2 -0
  33. package/src/primitives/grid/grid.tsx +2 -0
  34. package/src/primitives/heading/heading.tsx +2 -0
  35. package/src/primitives/inline/inline.tsx +3 -0
  36. package/src/primitives/kbd/kbd.tsx +2 -0
  37. package/src/primitives/label/label.tsx +2 -0
  38. package/src/primitives/popover/popover.tsx +6 -1
  39. package/src/primitives/radio/radio.tsx +2 -0
  40. package/src/primitives/select/select.tsx +2 -0
  41. package/src/primitives/select/styles.ts +2 -0
  42. package/src/primitives/spinner/spinner.tsx +2 -0
  43. package/src/primitives/stack/stack.tsx +2 -0
  44. package/src/primitives/switch/switch.tsx +4 -0
  45. package/src/primitives/text/text.tsx +3 -0
  46. package/src/primitives/textArea/textArea.tsx +4 -1
  47. package/src/primitives/textInput/textInput.tsx +10 -1
  48. package/src/primitives/tooltip/__workshop__/customPortal.tsx +99 -0
  49. package/src/primitives/tooltip/__workshop__/index.ts +15 -0
  50. package/src/primitives/tooltip/__workshop__/overflowingBoundary.tsx +73 -0
  51. package/src/primitives/tooltip/__workshop__/resizableBoundary.tsx +85 -0
  52. package/src/primitives/tooltip/constants.ts +1 -0
  53. package/src/primitives/tooltip/tooltip.test.tsx +192 -0
  54. package/src/primitives/tooltip/tooltip.tsx +109 -33
  55. package/src/primitives/types.ts +4 -0
  56. package/src/styles/input/textInputStyle.ts +11 -6
  57. package/src/theme/_internal/__workshop__/build/story.tsx +288 -0
  58. package/src/theme/_internal/__workshop__/build/theme.ts +3 -0
  59. package/src/theme/_internal/__workshop__/index.ts +14 -0
  60. package/src/theme/_internal/build/buildTheme.test.ts +78 -0
  61. package/src/theme/_internal/build/buildTheme.ts +16 -0
  62. package/src/theme/_internal/build/colorTheme/buildColorTheme.test.ts +185 -0
  63. package/src/theme/_internal/build/colorTheme/buildColorTheme.ts +164 -0
  64. package/src/theme/_internal/build/colorTheme/renderColorTheme.ts +242 -0
  65. package/src/theme/_internal/build/colorTheme/resolveColorTokens.ts +121 -0
  66. package/src/theme/_internal/build/defaults/colorPalette.ts +8 -0
  67. package/src/theme/_internal/build/defaults/colorTokens.ts +147 -0
  68. package/src/theme/_internal/build/helpers.ts +65 -0
  69. package/src/theme/_internal/build/index.ts +1 -0
  70. package/src/theme/_internal/config/helpers.ts +47 -0
  71. package/src/theme/_internal/config/index.ts +3 -0
  72. package/src/theme/_internal/config/token/index.ts +2 -0
  73. package/src/theme/_internal/config/token/parseTokenKey.test.ts +72 -0
  74. package/src/theme/_internal/config/token/parseTokenKey.ts +88 -0
  75. package/src/theme/_internal/config/token/parseTokenValue.test.ts +45 -0
  76. package/src/theme/_internal/config/token/parseTokenValue.ts +123 -0
  77. package/src/theme/_internal/config/types.ts +137 -0
  78. package/src/theme/_internal/constants.ts +48 -0
  79. package/src/theme/_internal/helpers.ts +19 -0
  80. package/src/theme/_internal/index.ts +5 -0
  81. package/src/theme/_internal/types.ts +91 -0
  82. package/src/theme/index.ts +1 -0
  83. package/src/theme/lib/color-fns/blend/multiply.ts +2 -2
  84. package/src/theme/lib/color-fns/blend/screen.ts +2 -2
  85. package/src/theme/lib/color-fns/convert.ts +15 -1
  86. package/src/theme/lib/color-fns/parse.ts +7 -3
  87. package/src/theme/lib/color-fns/types.ts +11 -0
  88. package/src/theme/lib/theme/avatar.ts +2 -0
  89. package/src/theme/lib/theme/color/_legacy/createColorTheme.ts +7 -0
  90. package/src/theme/lib/theme/color/_legacy/index.ts +1 -0
  91. package/src/theme/lib/theme/color/_legacy/legacyColor.ts +3997 -0
  92. package/src/theme/studioTheme/color.ts +98 -82
  93. package/src/theme/studioTheme/helpers.ts +15 -1
  94. package/src/theme/studioTheme/theme.ts +5 -5
  95. package/src/theme/studioTheme/tints.ts +244 -84
  96. package/src/types/button.ts +5 -0
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/constants.ts","../src/styles/helpers.ts","../src/styles/font/responsiveFont.ts","../src/styles/font/codeFontStyle.ts","../src/styles/font/headingFontStyle.ts","../src/styles/font/labelFontStyle.ts","../src/styles/font/textAlignStyle.ts","../src/styles/font/textFontStyle.ts","../src/hooks/useArrayProp.ts","../src/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/observers/resizeObserver.ts","../src/observers/elementSizeObserver.ts","../src/hooks/useElementSize.ts","../src/hooks/useElementRect/useElementRect.ts","../src/hooks/useGlobalKeyDown.ts","../src/theme/lib/color-fns/blend/multiply.ts","../src/theme/lib/color-fns/blend/screen.ts","../src/theme/lib/color-fns/convert.ts","../src/theme/lib/color-fns/parse.ts","../src/theme/lib/color-fns/helpers/rgba.ts","../src/theme/lib/theme/color/button/createButtonTones.ts","../src/theme/lib/theme/color/button/createButtonModes.ts","../src/theme/lib/theme/color/card/createCardStates.ts","../src/theme/lib/theme/color/defaults.ts","../src/theme/lib/theme/color/input/createInputModes.ts","../src/theme/lib/theme/color/muted/createMuted.ts","../src/theme/lib/theme/color/selectable/createSelectableTones.ts","../src/theme/lib/theme/color/solid/createSolidTones.ts","../src/theme/lib/theme/color/spot/createSpot.ts","../src/theme/lib/theme/color/factory.ts","../src/theme/studioTheme/helpers.ts","../src/theme/studioTheme/tints.ts","../src/theme/studioTheme/color.ts","../src/theme/studioTheme/fonts.ts","../src/theme/studioTheme/theme.ts","../src/theme/defaults.ts","../src/lib/globalScope.ts","../src/theme/themeContext.ts","../src/theme/themeProvider.tsx","../src/lib/isRecord.ts","../src/theme/useRootTheme.ts","../src/theme/themeColorProvider.tsx","../src/theme/useTheme.ts","../src/hooks/useMediaIndex/useMediaIndex.ts","../src/hooks/usePrefersDark.ts","../src/hooks/usePrefersReducedMotion.ts","../src/hooks/useIsomorphicEffect.ts","../src/hooks/useForwardedRef.ts","../src/hooks/useCustomValidity.ts","../src/styles/border/borderStyle.ts","../src/styles/box/boxStyle.ts","../src/styles/flex/flexStyle.ts","../src/styles/flex/flexItemStyle.ts","../src/styles/focusRing/index.ts","../src/styles/grid/gridStyle.ts","../src/styles/grid/gridItemStyle.ts","../src/styles/input/responsiveInputPaddingStyle.ts","../src/styles/input/textInputStyle.ts","../src/styles/margin/marginStyle.ts","../src/styles/padding/paddingStyle.ts","../src/styles/radius/radiusStyle.ts","../src/styles/shadow/shadowStyle.ts","../src/primitives/text/styles.ts","../src/primitives/text/text.tsx","../src/primitives/avatar/styles.ts","../src/primitives/avatar/avatar.tsx","../src/primitives/avatar/avatarCounter.tsx","../src/primitives/helpers.ts","../src/primitives/avatar/avatarStack.tsx","../src/primitives/box/box.tsx","../src/primitives/label/styles.ts","../src/primitives/label/label.tsx","../src/primitives/badge/styles.ts","../src/primitives/badge/badge.tsx","../src/primitives/flex/flex.tsx","../src/primitives/spinner/spinner.tsx","../src/styles/colorVars/colorVarsStyle.ts","../src/primitives/button/styles.ts","../src/primitives/button/button.tsx","../src/primitives/card/styles.ts","../src/primitives/card/card.tsx","../src/primitives/checkbox/styles.ts","../src/primitives/checkbox/checkbox.tsx","../src/primitives/code/styles.ts","../src/primitives/code/code.tsx","../src/primitives/container/styles.ts","../src/primitives/container/container.tsx","../src/primitives/grid/grid.tsx","../src/primitives/heading/styles.ts","../src/primitives/heading/heading.tsx","../src/primitives/inline/styles.ts","../src/primitives/inline/inline.tsx","../src/primitives/kbd/kbd.tsx","../src/utils/boundaryElement/boundaryElementContext.ts","../src/utils/boundaryElement/boundaryElementProvider.tsx","../src/utils/boundaryElement/useBoundaryElement.ts","../src/utils/elementQuery/helpers.ts","../src/utils/elementQuery/elementQuery.tsx","../src/utils/errorBoundary.tsx","../src/utils/layer/getLayerContext.ts","../src/utils/layer/layerContext.ts","../src/utils/layer/useLayer.ts","../src/helpers/animation.ts","../src/helpers/element.ts","../src/helpers/focus.ts","../src/helpers/scroll.ts","../src/utils/layer/layerProvider.tsx","../src/utils/layer/layer.tsx","../src/utils/portal/portalContext.ts","../src/utils/portal/usePortal.ts","../src/utils/portal/portal.ts","../src/hooks/_internal/useUnique.ts","../src/utils/portal/portalProvider.tsx","../src/utils/srOnly/srOnly.tsx","../src/utils/virtualList/virtualList.tsx","../src/primitives/popover/constants.ts","../src/primitives/popover/floating-ui/size.ts","../src/primitives/popover/helpers.ts","../src/primitives/popover/popoverArrow.tsx","../src/primitives/popover/popoverCard.tsx","../src/primitives/popover/popover.tsx","../src/primitives/radio/styles.ts","../src/primitives/radio/radio.tsx","../src/primitives/select/styles.ts","../src/primitives/select/select.tsx","../src/primitives/stack/styles.ts","../src/primitives/stack/stack.tsx","../src/primitives/switch/styles.ts","../src/primitives/switch/switch.tsx","../src/primitives/textArea/textArea.tsx","../src/primitives/textInput/textInput.tsx","../src/hooks/useDelayedState.ts","../src/primitives/tooltip/constants.ts","../src/primitives/tooltip/tooltipArrow.tsx","../src/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/primitives/tooltip/tooltip.tsx","../src/components/autocomplete/autocomplete.styles.tsx","../src/components/autocomplete/autocompleteOption.tsx","../src/components/autocomplete/autocompleteReducer.ts","../src/components/autocomplete/constants.ts","../src/components/autocomplete/autocomplete.tsx","../src/components/breadcrumbs/breadcrumbs.styles.ts","../src/components/breadcrumbs/breadcrumbs.tsx","../src/components/dialog/styles.ts","../src/components/dialog/dialogContext.ts","../src/components/dialog/useDialog.ts","../src/components/dialog/dialog.tsx","../src/components/dialog/dialogProvider.tsx","../src/components/hotkeys/hotkeys.tsx","../src/components/menu/menuContext.ts","../src/components/menu/helpers.ts","../src/components/menu/useMenuController.ts","../src/components/menu/menu.tsx","../src/components/menu/menuButton.tsx","../src/components/menu/menuDivider.ts","../src/primitives/_selectable/style.ts","../src/primitives/_selectable/selectable.tsx","../src/components/menu/useMenu.ts","../src/components/menu/menuGroup.tsx","../src/components/menu/menuItem.tsx","../src/components/skeleton/styles.ts","../src/components/skeleton/skeleton.tsx","../src/components/skeleton/textSkeleton.tsx","../src/components/tab/tab.tsx","../src/components/tab/tabList.tsx","../src/components/tab/tabPanel.tsx","../src/components/toast/toast.tsx","../src/hooks/useMounted.ts","../src/components/toast/toastContext.ts","../src/components/toast/toastProvider.tsx","../src/components/toast/useToast.ts","../src/components/tree/helpers.ts","../src/components/tree/treeContext.ts","../src/components/tree/tree.tsx","../src/components/tree/style.ts","../src/components/tree/useTree.ts","../src/components/tree/treeGroup.tsx","../src/components/tree/treeItem.tsx"],"sourcesContent":["/**\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 FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","import {EMPTY_ARRAY} from '../constants'\nimport {Theme} from '../theme'\nimport {CSSObject} from '../types/styled'\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 return _responsive(theme.sanity.media, spaceIndexes, (spaceIndex) =>\n _fillCSSObject(props, rem(theme.sanity.space[spaceIndex])),\n )\n}\n","import {ThemeFontSize, ThemeFontKey} from '../../theme'\nimport {CSSObject} from '../../types/styled'\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, theme} = props\n const {fonts, media} = theme.sanity\n const {family, sizes, weights} = fonts[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 '../../types/styled'\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 '../../types/styled'\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 '../../types/styled'\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} from '../../types/styled'\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 {theme} = props\n\n return _responsive(theme.sanity.media, props.$align, (textAlign) => {\n return {textAlign}\n })\n}\n","import {CSSObject} from '../../types/styled'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `text` font style.\n * @internal\n */\nexport function responsiveTextFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('text', props)\n}\n","import {useMemo} from 'react'\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n // JSON.stringify is fast, but it's not faster than useMemo's referencial equality check\n const __perf_hash__ = useMemo(() => JSON.stringify(val ?? defaultVal), [defaultVal, val])\n\n return useMemo(\n () => _getArrayProp(val, defaultVal),\n\n // Improve performance: Keep object identify for a given hash of the value\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [__perf_hash__],\n )\n}\n","import {useEffect, useRef, useState} from 'react'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: Array<HTMLElement | HTMLElement[] | null>,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: Array<HTMLElement | HTMLElement[] | null> = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n return useEffect(() => {\n addEventListener('keydown', onKeyDown)\n\n return () => removeEventListener('keydown', onKeyDown)\n }, [onKeyDown])\n}\n","import {RGB} from '../types'\n\nfunction multiplyChannel(b: number, s: number) {\n return b * s\n}\n\n/**\n * Apply the \\`multiply\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingmultiply\n * @internal\n */\nexport function multiply(b: RGB, s: RGB): RGB {\n return {\n r: Math.round(clamp(multiplyChannel(b.r / 255, s.r / 255) * 255)),\n g: Math.round(clamp(multiplyChannel(b.g / 255, s.g / 255) * 255)),\n b: Math.round(clamp(multiplyChannel(b.b / 255, s.b / 255) * 255)),\n }\n}\n\nfunction clamp(num: number) {\n return Math.max(Math.min(num, 255), 0)\n}\n","import {RGB} from '../types'\n\nfunction screenChannel(b: number, s: number) {\n return b + s - b * s\n}\n\n/**\n * Apply the \\`screen\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingscreen\n * @internal\n */\nexport function screen(b: RGB, s: RGB): RGB {\n return {\n r: Math.round(clamp(screenChannel(b.r / 255, s.r / 255) * 255)),\n g: Math.round(clamp(screenChannel(b.g / 255, s.g / 255) * 255)),\n b: Math.round(clamp(screenChannel(b.b / 255, s.b / 255) * 255)),\n }\n}\n\nfunction clamp(num: number) {\n return Math.max(Math.min(num, 255), 0)\n}\n","import {HSL, RGB} from './types'\n\n/**\n * @internal\n */\nexport function hexToRgb(hex: string): RGB {\n if (hex.length === 4) {\n const hexR = hex.slice(1, 2)\n const hexG = hex.slice(2, 3)\n const hexB = hex.slice(3, 4)\n\n return {\n r: parseInt(hexR + hexR, 16),\n g: parseInt(hexG + hexG, 16),\n b: parseInt(hexB + hexB, 16),\n }\n }\n\n return {\n r: parseInt(hex.slice(1, 3), 16),\n g: parseInt(hex.slice(3, 5), 16),\n b: parseInt(hex.slice(5, 7), 16),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbToHex({r, g, b}: RGB): string {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\n/**\n * @internal\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\n */\nexport function rgbToHsl({r, g, b}: RGB): HSL {\n // Make r, g, and b fractions of 1\n r /= 255\n g /= 255\n b /= 255\n\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b)\n const cmax = Math.max(r, g, b)\n const delta = cmax - cmin\n\n let h = 0\n let s = 0\n let l = 0\n\n // Calculate hue\n // No difference\n if (delta == 0) h = 0\n // Red is max\n else if (cmax == r) h = ((g - b) / delta) % 6\n // Green is max\n else if (cmax == g) h = (b - r) / delta + 2\n // Blue is max\n else h = (r - g) / delta + 4\n\n h = Math.round(h * 60)\n\n // Make negative hues positive behind 360°\n if (h < 0) h += 360\n\n // Calculate lightness\n l = (cmax + cmin) / 2\n\n // Calculate saturation\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1))\n\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1)\n l = +(l * 100).toFixed(1)\n\n return {h, s, l}\n}\n\n/**\n * @internal\n */\nexport function hslToRgb(hsl: HSL): RGB {\n // Must be fractions of 1\n const s = hsl.s / 100\n const l = hsl.l / 100\n\n const c = (1 - Math.abs(2 * l - 1)) * s\n const x = c * (1 - Math.abs(((hsl.h / 60) % 2) - 1))\n const m = l - c / 2\n\n let r = 0\n let g = 0\n let b = 0\n\n if (0 <= hsl.h && hsl.h < 60) {\n r = c\n g = x\n b = 0\n } else if (60 <= hsl.h && hsl.h < 120) {\n r = x\n g = c\n b = 0\n } else if (120 <= hsl.h && hsl.h < 180) {\n r = 0\n g = c\n b = x\n } else if (180 <= hsl.h && hsl.h < 240) {\n r = 0\n g = x\n b = c\n } else if (240 <= hsl.h && hsl.h < 300) {\n r = x\n g = 0\n b = c\n } else if (300 <= hsl.h && hsl.h < 360) {\n r = c\n g = 0\n b = x\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n }\n}\n","import {hexToRgb, hslToRgb} from './convert'\nimport {HSL, RGB} from './types'\n\nconst HEX_CHARS = '0123456789ABCDEFabcdef'\n\nconst HSL_RE = /hsl\\(\\s*(\\d+)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*\\)/i\n\nfunction isHexChars(str: string) {\n for (const c of str) {\n if (HEX_CHARS.indexOf(c) === -1) {\n return false\n }\n }\n\n return true\n}\n\nfunction isHex(str: string) {\n if (str[0] !== '#') return false\n\n // Accept both #000 and #000000\n if (!(str.length === 4 || str.length === 7)) return false\n\n return isHexChars(str.slice(1))\n}\n\nfunction parseHsl(str: string): HSL {\n const res = HSL_RE.exec(str)\n\n if (!res) {\n throw new Error(`parseHsl: string is not a HSL color: \"${str}\"`)\n }\n\n return {h: parseInt(res[1]), s: parseFloat(res[3]), l: parseFloat(res[5])}\n}\n\n/**\n * @internal\n */\nexport function parseColor(color: unknown): RGB {\n if (!color) return {r: 0, g: 0, b: 0}\n\n if (typeof color !== 'string') {\n throw new Error('parseColor: expected a string')\n }\n\n if (isHex(color)) {\n return hexToRgb(color)\n }\n\n if (color.startsWith('hsl(')) {\n return hslToRgb(parseHsl(color))\n }\n\n throw new Error(`parseColor: unexpected color format: \"${color}\"`)\n}\n","import {parseColor} from '../parse'\n\n/**\n * @internal\n */\nexport function rgba(color: unknown, a: number): string {\n const rgb = parseColor(color)\n\n return `rgba(${rgb.r},${rgb.g},${rgb.b},${a})`\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorButtonModeKey, ThemeColorButtonTones} from './types'\n\nexport function createButtonTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n mode: ThemeColorButtonModeKey,\n): ThemeColorButtonTones {\n return {\n default: opts.button({\n base,\n dark,\n solid: solid.default,\n muted: muted.default,\n mode,\n }),\n primary: opts.button({\n base,\n dark,\n solid: solid.primary,\n muted: muted.primary,\n mode,\n }),\n positive: opts.button({\n base,\n dark,\n solid: solid.positive,\n muted: muted.positive,\n mode,\n }),\n caution: opts.button({\n base,\n dark,\n solid: solid.caution,\n muted: muted.caution,\n mode,\n }),\n critical: opts.button({\n base,\n dark,\n solid: solid.critical,\n muted: muted.critical,\n mode,\n }),\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {createButtonTones} from './createButtonTones'\nimport {ThemeColorButton} from './types'\n\nexport function createButtonModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorButton {\n return {\n default: createButtonTones(opts, base, dark, solid, muted, 'default'),\n ghost: createButtonTones(opts, base, dark, solid, muted, 'ghost'),\n bleed: createButtonTones(opts, base, dark, solid, muted, 'bleed'),\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorName} from '../types'\nimport {ThemeColorCard} from './types'\n\nexport function createCardStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorCard {\n return {\n enabled: opts.card({\n base,\n dark,\n name,\n state: 'enabled',\n solid,\n muted,\n }),\n disabled: opts.card({\n base,\n dark,\n name,\n state: 'disabled',\n solid,\n muted,\n }),\n hovered: opts.card({\n base,\n dark,\n name,\n state: 'hovered',\n solid,\n muted,\n }),\n pressed: opts.card({\n base,\n dark,\n name,\n state: 'pressed',\n solid,\n muted,\n }),\n selected: opts.card({\n base,\n dark,\n name,\n state: 'selected',\n solid,\n muted,\n }),\n }\n}\n","import {ThemeColorBuilderOpts} from './factory'\n\nconst black = 'hsl(0, 0%, 0%)'\nconst white = 'hsl(0, 0%, 100%)'\n\nconst colors = {\n default: {\n lightest: 'hsl(0, 0%, 95%)',\n lighter: 'hsl(0, 0%, 70%)',\n light: 'hsl(0, 0%, 65%)',\n base: 'hsl(0, 0%, 50%)',\n dark: 'hsl(0, 0%, 35%)',\n darker: 'hsl(0, 0%, 20%)',\n darkest: 'hsl(0, 0%, 5%)',\n },\n transparent: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n primary: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n positive: {\n lightest: 'hsl(120, 100%, 95%)',\n lighter: 'hsl(120, 100%, 70%)',\n light: 'hsl(120, 100%, 65%)',\n base: 'hsl(120, 100%, 50%)',\n dark: 'hsl(120, 100%, 35%)',\n darker: 'hsl(120, 100%, 20%)',\n darkest: 'hsl(120, 100%, 5%)',\n },\n caution: {\n lightest: 'hsl(60, 100%, 95%)',\n lighter: 'hsl(60, 100%, 70%)',\n light: 'hsl(60, 100%, 65%)',\n base: 'hsl(60, 100%, 50%)',\n dark: 'hsl(60, 100%, 35%)',\n darker: 'hsl(60, 100%, 20%)',\n darkest: 'hsl(60, 100%, 5%)',\n },\n critical: {\n lightest: 'hsl(0, 100%, 95%)',\n lighter: 'hsl(0, 100%, 70%)',\n light: 'hsl(0, 100%, 65%)',\n base: 'hsl(0, 100%, 50%)',\n dark: 'hsl(0, 100%, 35%)',\n darker: 'hsl(0, 100%, 20%)',\n darkest: 'hsl(0, 100%, 5%)',\n },\n}\n\nconst spots = {\n gray: 'hsl(0, 0%, 50%)',\n red: 'hsl(0, 100%, 50%)',\n orange: 'hsl(30, 100%, 50%)',\n yellow: 'hsl(60, 100%, 50%)',\n green: 'hsl(120, 100%, 50%)',\n cyan: 'hsl(180, 100%, 50%)',\n blue: 'hsl(240, 100%, 50%)',\n purple: 'hsl(270, 100%, 50%)',\n magenta: 'hsl(300, 100%, 50%)',\n}\n\nconst tones = {\n transparent: {\n bg: [colors.transparent.darkest, colors.transparent.lightest],\n fg: [colors.transparent.lightest, colors.transparent.darkest],\n border: [colors.transparent.darker, colors.transparent.lighter],\n focusRing: [colors.transparent.base, colors.transparent.base],\n },\n primary: {\n bg: [colors.primary.darkest, colors.primary.lightest],\n fg: [colors.primary.lightest, colors.primary.darkest],\n border: [colors.primary.darker, colors.primary.lighter],\n focusRing: [colors.primary.base, colors.primary.base],\n },\n positive: {\n bg: [colors.positive.darkest, colors.positive.lightest],\n fg: [colors.positive.lightest, colors.positive.darkest],\n border: [colors.positive.darker, colors.positive.lighter],\n focusRing: [colors.positive.base, colors.positive.base],\n },\n caution: {\n bg: [colors.caution.darkest, colors.caution.lightest],\n fg: [colors.caution.lightest, colors.caution.darkest],\n border: [colors.caution.darker, colors.caution.lighter],\n focusRing: [colors.caution.base, colors.caution.base],\n },\n critical: {\n bg: [colors.critical.darkest, colors.critical.lightest],\n fg: [colors.critical.lightest, colors.critical.darkest],\n border: [colors.critical.darker, colors.critical.lighter],\n focusRing: [colors.critical.base, colors.critical.base],\n },\n}\n\nexport const defaultOpts: ThemeColorBuilderOpts = {\n base: ({dark, name}) => {\n if (name === 'default') {\n return {\n bg: dark ? black : white,\n fg: dark ? white : black,\n border: dark ? colors.default.darkest : colors.default.lightest,\n focusRing: colors.primary.base,\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n }\n\n // Variants:\n // - primary\n // - positive\n // - caution\n // - critical\n return {\n bg: tones[name].bg[dark ? 0 : 1],\n fg: tones[name].fg[dark ? 0 : 1],\n border: tones[name].border[dark ? 0 : 1],\n focusRing: tones[name].focusRing[dark ? 0 : 1],\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n },\n\n solid: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.light : color.dark,\n bg2: dark ? color.light : color.dark,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.darkest : color.lightest,\n iconColor: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: color.base,\n bg2: color.base,\n border: dark ? color.light : color.dark,\n fg: dark ? color.darkest : color.lightest,\n iconColor: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n muted: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.darker : color.lighter,\n bg2: dark ? color.darker : color.lighter,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.lightest : color.darkest,\n iconColor: dark ? color.lightest : color.darkest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: dark ? color.darkest : color.lightest,\n bg2: dark ? color.darkest : color.lightest,\n border: dark ? color.darker : color.lighter,\n fg: dark ? color.lighter : color.darker,\n iconColor: dark ? color.lighter : color.darker,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n ...muted,\n enabled: {\n bg: 'transparent',\n bg2: 'transparent',\n fg: muted.enabled.fg,\n iconColor: muted.enabled.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n hovered: {\n bg: muted.enabled.bg,\n bg2: muted.enabled.bg,\n fg: muted.hovered.fg,\n iconColor: muted.hovered.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n }\n }\n\n if (mode === 'ghost')\n return {\n ...solid,\n enabled: muted.enabled,\n }\n\n return solid\n },\n\n card: ({base}) => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n iconColor: black,\n border: black,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n input: () => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n border: black,\n placeholder: black,\n }\n },\n\n selectable: ({muted, state, tone}) => {\n return muted[tone][state]\n },\n\n spot: ({key}) => {\n return spots[key]\n },\n\n syntax: () => ({\n atrule: black,\n attrName: black,\n attrValue: black,\n attribute: black,\n boolean: black,\n builtin: black,\n cdata: black,\n char: black,\n class: black,\n className: black,\n comment: black,\n constant: black,\n deleted: black,\n doctype: black,\n entity: black,\n function: black,\n hexcode: black,\n id: black,\n important: black,\n inserted: black,\n keyword: black,\n number: black,\n operator: black,\n prolog: black,\n property: black,\n pseudoClass: black,\n pseudoElement: black,\n punctuation: black,\n regex: black,\n selector: black,\n string: black,\n symbol: black,\n tag: black,\n unit: black,\n url: black,\n variable: black,\n }),\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorInput} from './types'\n\nexport function createInputModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorInput {\n return {\n default: {\n enabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n invalid: {\n enabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorName} from '../types'\nimport {ThemeColorMuted} from './types'\n\nexport function createMutedTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColorMuted {\n return {\n default: {\n enabled: opts.muted({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.muted({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.muted({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.muted({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.muted({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.muted({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorSelectable, ThemeColorSelectableStates} from './types'\n\nexport function createSelectableTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorSelectable {\n return {\n default: _createSelectableStates(opts, base, dark, solid, muted, 'default'),\n primary: _createSelectableStates(opts, base, dark, solid, muted, 'primary'),\n positive: _createSelectableStates(opts, base, dark, solid, muted, 'positive'),\n caution: _createSelectableStates(opts, base, dark, solid, muted, 'caution'),\n critical: _createSelectableStates(opts, base, dark, solid, muted, 'critical'),\n }\n}\n\nfunction _createSelectableStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical',\n): ThemeColorSelectableStates {\n return {\n enabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'enabled',\n tone,\n }),\n hovered: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'hovered',\n tone,\n }),\n pressed: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'pressed',\n tone,\n }),\n selected: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'selected',\n tone,\n }),\n disabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'disabled',\n tone,\n }),\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorName} from '../types'\nimport {ThemeColorSolid} from './types'\n\nexport function createSolidTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColorSolid {\n return {\n default: {\n enabled: opts.solid({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.solid({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.solid({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.solid({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.solid({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.solid({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorSpot} from './types'\n\nexport function createSpot(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n): ThemeColorSpot {\n return {\n gray: opts.spot({base, dark, key: 'gray'}),\n blue: opts.spot({base, dark, key: 'blue'}),\n purple: opts.spot({base, dark, key: 'purple'}),\n magenta: opts.spot({base, dark, key: 'magenta'}),\n red: opts.spot({base, dark, key: 'red'}),\n orange: opts.spot({base, dark, key: 'orange'}),\n yellow: opts.spot({base, dark, key: 'yellow'}),\n green: opts.spot({base, dark, key: 'green'}),\n cyan: opts.spot({base, dark, key: 'cyan'}),\n }\n}\n","import {ThemeColorGenericState} from './_generic'\nimport {ThemeColorBase} from './base'\nimport {ThemeColorButtonModeKey, ThemeColorButtonStates} from './button'\nimport {createButtonModes} from './button/createButtonModes'\nimport {ThemeColorCardState} from './card'\nimport {createCardStates} from './card/createCardStates'\nimport {defaultOpts} from './defaults'\nimport {ThemeColorInputState} from './input'\nimport {createInputModes} from './input/createInputModes'\nimport {ThemeColorMuted, ThemeColorMutedTone} from './muted'\nimport {createMutedTones} from './muted/createMuted'\nimport {ThemeColorSelectableState} from './selectable'\nimport {createSelectableTones} from './selectable/createSelectableTones'\nimport {ThemeColorSolid, ThemeColorSolidTone} from './solid'\nimport {createSolidTones} from './solid/createSolidTones'\nimport {ThemeColorSpotKey} from './spot'\nimport {createSpot} from './spot/createSpot'\nimport {ThemeColorSyntax} from './syntax'\nimport {\n ThemeColorName,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeColor,\n ThemeColorToneKey,\n} from './types'\n\n/**\n * @public\n */\nexport interface ThemeColorBuilderOpts {\n base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase\n solid: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n muted: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n card: (opts: {\n base: ThemeColorBase\n dark: boolean\n muted: ThemeColorMuted\n name: ThemeColorName\n solid: ThemeColorSolid\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorCardState\n button: (opts: {\n dark: boolean\n mode: ThemeColorButtonModeKey\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n }) => ThemeColorButtonStates\n input: (opts: {\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n dark: boolean\n mode: 'default' | 'invalid'\n state: 'enabled' | 'disabled' | 'hovered' | 'readOnly'\n }) => ThemeColorInputState\n selectable: (opts: {\n dark: boolean\n base: ThemeColorBase\n solid: ThemeColorSolid\n muted: ThemeColorMuted\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'\n }) => ThemeColorSelectableState\n syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax\n spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string\n}\n\n/**\n * @public\n */\nexport type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>\n\n/**\n * @public\n */\nexport function createColorTheme(\n partialOpts: PartialThemeColorBuilderOpts = {},\n): ThemeColorSchemes {\n const builders: ThemeColorBuilderOpts = {...defaultOpts, ...partialOpts}\n\n return {\n light: _createColorScheme(builders, false),\n dark: _createColorScheme(builders, true),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColorScheme(opts: ThemeColorBuilderOpts, dark: boolean): ThemeColorScheme {\n return {\n default: _createColor(opts, dark, 'default'),\n transparent: _createColor(opts, dark, 'transparent'),\n primary: _createColor(opts, dark, 'primary'),\n positive: _createColor(opts, dark, 'positive'),\n caution: _createColor(opts, dark, 'caution'),\n critical: _createColor(opts, dark, 'critical'),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColor(\n opts: ThemeColorBuilderOpts,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColor {\n const base = opts.base({dark, name})\n const solid = createSolidTones(opts, base, dark, name)\n const muted = createMutedTones(opts, base, dark, name)\n\n return {\n base,\n button: createButtonModes(opts, base, dark, solid, muted),\n card: createCardStates(opts, base, dark, name, solid, muted),\n dark,\n input: createInputModes(opts, base, dark, solid, muted),\n selectable: createSelectableTones(opts, base, dark, solid, muted),\n spot: createSpot(opts, base, dark),\n syntax: opts.syntax({base, dark}),\n solid,\n muted,\n }\n}\n","import {parseColor, rgbToHex, screen as _screen, multiply as _multiply} from '../lib/color-fns'\n\nexport function multiply(bg: string, fg: string): string {\n const b = parseColor(bg)\n const s = parseColor(fg)\n const hex = rgbToHex(_multiply(b, s))\n\n return hex\n}\n\nexport function screen(bg: string, fg: string): string {\n const b = parseColor(bg)\n const s = parseColor(fg)\n const hex = rgbToHex(_screen(b, s))\n\n return hex\n}\n","/**\n * This file creates a translation between the tints and the studio colors\n * Providing readable names, and allowing to mix colors and tints in the same ThemeColor.\n * e.g. for positive theme: `{\"bg_base\": \"white\", \"bg_base_hover\": \"gray/50\", \"bg_base_active\": \"cyan/50\"}\n * This is not possible in the previous configuration, as each ThemeColor uses only one tint.\n */\nimport {ColorTintKey, ColorTints, ColorValue, black, hues, white} from '@sanity/color'\nimport {ThemeColorName, ThemeColorSchemeKey} from '../lib/theme'\n\nexport const colorKeys = [\n 'text_primary',\n 'text_secondary',\n 'text_inactive',\n 'bg_base',\n 'bg_base_hover',\n 'bg_base_active',\n 'bg_accent',\n 'bg_accent_hover',\n 'bg_accent_active',\n 'bg_tint',\n 'icon_default',\n 'icon_inverted',\n 'border_base',\n 'border_accent',\n 'border_accent_inverted',\n] as const\n\nexport type ColorKey = (typeof colorKeys)[number]\n\ntype ColorTintsDictionary = Record<ColorKey, ColorTintKey | ColorValue>\nconst defaultTints: Record<ThemeColorSchemeKey, ColorTintsDictionary> = {\n light: {\n text_primary: '900',\n text_secondary: '600',\n text_inactive: '500',\n bg_base: white,\n bg_base_hover: '50',\n bg_base_active: '100',\n bg_accent: '500',\n bg_accent_hover: '600',\n bg_accent_active: '700',\n bg_tint: '50',\n icon_default: '500',\n icon_inverted: white,\n border_base: '100',\n border_accent: '500',\n border_accent_inverted: white,\n },\n dark: {\n text_primary: '50',\n text_secondary: '300',\n text_inactive: '400',\n bg_base: black,\n bg_base_hover: '900',\n bg_base_active: '800',\n bg_accent: '500',\n bg_accent_hover: '400',\n bg_accent_active: '300',\n bg_tint: '900',\n icon_default: '300',\n icon_inverted: hues.gray[900],\n border_base: '800',\n border_accent: '300',\n border_accent_inverted: hues.gray[900],\n },\n}\n\nexport const colorTints: Record<\n ThemeColorSchemeKey,\n Record<ThemeColorName, ColorTintsDictionary>\n> = {\n light: {\n default: {\n ...defaultTints.light,\n bg_accent: '900',\n bg_accent_hover: '950',\n bg_accent_active: black,\n border_accent: '600',\n },\n primary: {\n ...defaultTints.light,\n bg_accent: '900',\n bg_accent_hover: '950',\n bg_accent_active: black,\n border_accent: '600',\n },\n positive: {\n ...defaultTints.light,\n bg_base_hover: hues.gray[50],\n bg_base_active: '50',\n bg_accent: '400',\n bg_accent_hover: '500',\n bg_accent_active: '600',\n border_accent: '400',\n },\n transparent: defaultTints.light,\n caution: defaultTints.light,\n critical: defaultTints.light,\n },\n dark: {\n default: {\n ...defaultTints.dark,\n text_primary: white,\n bg_accent: white,\n bg_accent_hover: '50',\n bg_accent_active: '100',\n },\n primary: {\n ...defaultTints.dark,\n text_primary: white,\n bg_accent: white,\n bg_accent_hover: '50',\n bg_accent_active: '100',\n },\n positive: {\n ...defaultTints.dark,\n bg_base_hover: hues.gray[900],\n bg_base_active: '900',\n bg_accent: '400',\n bg_accent_hover: '300',\n bg_accent_active: '200',\n border_accent: '400',\n },\n transparent: defaultTints.dark,\n caution: defaultTints.dark,\n critical: defaultTints.dark,\n },\n}\n\nexport const getColorValue = (\n tints: ColorTints,\n dark: boolean,\n tone: ThemeColorName,\n key: ColorKey,\n): ColorValue => {\n const value = colorTints[dark ? 'dark' : 'light'][tone][key]\n\n if (typeof value === 'string') {\n return tints[value]\n }\n\n return value\n}\n\nexport const getColorHex = (\n tints: ColorTints,\n dark: boolean,\n tone: ThemeColorName,\n key: ColorKey,\n): string => {\n return getColorValue(tints, dark, tone, key).hex\n}\n","import {ColorTints, black, hues, white} from '@sanity/color'\nimport {rgba} from '../lib/color-fns'\nimport {ThemeColorName, createColorTheme} from '../lib/theme'\nimport {multiply, screen} from './helpers'\nimport {getColorHex} from './tints'\n\nexport const tones: Record<ThemeColorName, ColorTints> = {\n default: hues.gray,\n transparent: hues.gray,\n primary: hues.gray,\n positive: hues.cyan,\n caution: hues.yellow,\n critical: hues.red,\n} as const\n\nconst NEUTRAL_TONES = ['default', 'transparent']\n\nexport const color = createColorTheme({\n base: ({dark, name}) => {\n if (name === 'default') {\n const tints = hues.gray\n const skeletonFrom = dark ? tints[900].hex : tints[100].hex\n\n return {\n fg: dark ? white.hex : black.hex,\n bg: getColorHex(tones['default'], dark, 'default', 'bg_base'),\n border: getColorHex(tones['default'], dark, 'default', 'border_base'),\n focusRing: getColorHex(tones['positive'], dark, 'positive', 'border_accent'),\n shadow: {\n outline: rgba(tints[500].hex, 0.4),\n umbra: dark ? rgba(tints[950].hex, 0.4) : rgba(tints[500].hex, 0.2),\n penumbra: dark ? rgba(tints[950].hex, 0.28) : rgba(tints[500].hex, 0.14),\n ambient: dark ? rgba(tints[950].hex, 0.24) : rgba(tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (name === 'transparent') {\n const tints = tones.default\n const skeletonFrom = tints[dark ? 800 : 200].hex\n\n return {\n fg: tints[dark ? 100 : 900].hex,\n bg: tints[dark ? 950 : 50].hex,\n border: tints[dark ? 800 : 300].hex,\n focusRing: hues.blue[500].hex,\n shadow: {\n outline: rgba(tints[500].hex, 0.4),\n umbra: dark ? rgba(tints[900].hex, 0.4) : rgba(tints[500].hex, 0.2),\n penumbra: dark ? rgba(tints[900].hex, 0.28) : rgba(tints[500].hex, 0.14),\n ambient: dark ? rgba(tints[900].hex, 0.24) : rgba(tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n const tints = tones[name] || tones.default\n const skeletonFrom = tints[dark ? 800 : 200].hex\n\n return {\n fg: tints[dark ? 100 : 900].hex,\n bg: getColorHex(tints, dark, name, 'bg_base'),\n border: getColorHex(tints, dark, name, 'border_base'),\n focusRing: getColorHex(tints, dark, name, 'border_accent'),\n shadow: {\n outline: rgba(tints[500].hex, 0.4),\n umbra: dark ? rgba(tints[900].hex, 0.4) : rgba(tints[500].hex, 0.2),\n penumbra: dark ? rgba(tints[900].hex, 0.28) : rgba(tints[500].hex, 0.14),\n ambient: dark ? rgba(tints[900].hex, 0.24) : rgba(tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n solid: ({base, dark, name, state, tone}) => {\n const mix = dark ? screen : multiply\n const mix2 = dark ? multiply : screen\n const defaultTints = tones[name] || tones.default\n const isNeutral = NEUTRAL_TONES.includes(name) && NEUTRAL_TONES.includes(tone)\n\n let tints = tones[tone === 'default' ? name : tone] || defaultTints\n\n if (state === 'disabled') {\n tints = defaultTints\n\n const bg = getColorHex(tones.default, dark, 'default', 'bg_tint')\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: getColorHex(tones.default, dark, 'default', 'bg_base'),\n fg: getColorHex(tones.default, dark, 'default', 'text_inactive'),\n iconColor: getColorHex(tones.default, dark, 'default', 'border_base'),\n muted: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n accent: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n link: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n code: {\n bg,\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'hovered') {\n const bg = getColorHex(tints, dark, tone, 'bg_accent_hover')\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: bg,\n fg: getColorHex(tints, dark, 'default', 'bg_base'),\n iconColor: getColorHex(tints, dark, 'default', 'icon_inverted'),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'pressed') {\n const bg = getColorHex(tints, dark, tone, 'bg_accent_active')\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 600].hex)\n\n return {\n bg: bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: bg,\n fg: getColorHex(tints, dark, 'default', 'bg_base'),\n iconColor: getColorHex(tints, dark, 'default', 'icon_inverted'),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 200 : 800].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: bg,\n fg: getColorHex(tints, dark, 'default', 'bg_base'),\n iconColor: getColorHex(tints, dark, 'default', 'icon_inverted'),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n // state: \"enabled\" | unknown\n const bg = getColorHex(tints, dark, tone, 'bg_accent')\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: bg,\n fg: getColorHex(tints, dark, 'default', 'bg_base'),\n iconColor: getColorHex(tints, dark, 'default', 'icon_inverted'),\n muted: {\n fg: mix(base.bg, tints[dark ? 900 : 100].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 900 : 100].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 900 : 100].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 900 : 100].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n muted: ({base, dark, name, state, tone}) => {\n const mix = dark ? screen : multiply\n const defaultTints = tones[name] || tones.default\n const isNeutral = NEUTRAL_TONES.includes(name) && NEUTRAL_TONES.includes(tone)\n\n let tints = tones[tone === 'default' ? name : tone] || defaultTints\n\n if (state === 'disabled') {\n tints = defaultTints\n\n const bg = base.bg\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: getColorHex(tones.default, dark, 'default', 'border_base'),\n fg: getColorHex(tones.default, dark, 'default', 'text_inactive'),\n iconColor: getColorHex(tones.default, dark, 'default', 'border_base'),\n muted: {\n fg: getColorHex(tones.default, dark, 'default', 'text_inactive'),\n },\n accent: {\n fg: getColorHex(tints, dark, tone, 'text_secondary'),\n },\n link: {\n fg: getColorHex(tints, dark, tone, 'text_secondary'),\n },\n code: {\n bg,\n fg: getColorHex(tints, dark, tone, 'text_secondary'),\n },\n skeleton: {\n from: rgba(skeletonFrom, 0.5),\n to: rgba(skeletonFrom, 0.25),\n },\n }\n }\n\n if (state === 'hovered') {\n const bg = getColorHex(tints, dark, name, 'bg_base_hover')\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: getColorHex(tints, dark, tone, 'text_primary'),\n iconColor: getColorHex(tints, dark, name, 'icon_default'),\n muted: {\n fg: getColorHex(tints, dark, tone, 'text_secondary'),\n },\n accent: {\n fg: mix(base.bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: getColorHex(tints, dark, tone, 'text_secondary'),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'pressed') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = getColorHex(tints, dark, name, 'bg_base_active')\n const skeletonFrom = mix(bg, getColorHex(tints, dark, name, 'bg_base_active'))\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: getColorHex(tints, dark, name, 'border_base'),\n fg: getColorHex(tints, dark, tone, 'text_primary'),\n iconColor: getColorHex(tints, dark, name, 'icon_default'),\n muted: {\n fg: getColorHex(tints, dark, tone, 'text_secondary'),\n },\n accent: {\n fg: mix(bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: getColorHex(tints, dark, tone, 'text_secondary'),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 900 : 100].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: getColorHex(tints, dark, name, 'border_base'),\n fg: getColorHex(tints, dark, tone, 'text_primary'),\n iconColor: getColorHex(tints, dark, name, 'icon_default'),\n muted: {\n fg: getColorHex(tints, dark, tone, 'text_secondary'),\n },\n accent: {\n fg: mix(bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: getColorHex(tints, dark, tone, 'text_secondary'),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n const bg = base.bg\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, getColorHex(tints, dark, name, 'bg_base')),\n fg: getColorHex(tints, dark, tone, 'text_primary'),\n iconColor: getColorHex(tints, dark, name, 'icon_default'),\n muted: {\n fg: getColorHex(tints, dark, tone, 'text_secondary'),\n },\n accent: {\n fg: mix(base.bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: getColorHex(tints, dark, tone, 'text_secondary'),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n enabled: {\n ...muted.enabled,\n border: muted.enabled.bg,\n },\n hovered: {\n ...muted.hovered,\n border: muted.hovered.bg,\n },\n pressed: {\n ...muted.pressed,\n border: muted.pressed.bg,\n },\n selected: {\n ...muted.selected,\n border: muted.selected.bg,\n },\n disabled: {\n ...muted.disabled,\n border: muted.disabled.bg,\n },\n }\n }\n\n if (mode === 'ghost') {\n return {\n ...muted,\n enabled: {\n ...muted.enabled,\n border: base.border,\n },\n }\n }\n\n return solid\n },\n\n card: ({base, dark, muted, name, solid, state}) => {\n if (state === 'hovered') {\n return muted[name].hovered\n }\n\n if (state === 'disabled') {\n return muted[name].disabled\n }\n\n const isNeutral = NEUTRAL_TONES.includes(name)\n const tints = tones[name] || tones.default\n const mix = dark ? screen : multiply\n\n if (state === 'pressed') {\n if (isNeutral) {\n return muted.primary.pressed\n }\n\n return muted[name].pressed\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n return solid.primary.enabled\n }\n\n return solid[name].enabled\n }\n\n const bg = base.bg\n const skeletonFrom = mix(base.bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n fg: base.fg,\n iconColor: getColorHex(tints, dark, name, 'icon_default'),\n border: base.border,\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: tints[dark ? 400 : 600].hex,\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n input: ({base, dark, mode, state}) => {\n const mix = dark ? screen : multiply\n\n if (mode === 'invalid') {\n const tints = tones.critical\n\n return {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n bg2: getColorHex(tints, dark, 'critical', 'text_secondary'),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n border: getColorHex(tints, dark, 'critical', 'border_base'),\n placeholder: getColorHex(tones.default, !dark, 'default', 'text_secondary'),\n }\n }\n\n if (state === 'hovered') {\n return {\n bg: base.bg,\n bg2: getColorHex(tones.default, dark, 'default', 'text_secondary'),\n fg: base.fg,\n border: mix(base.bg, hues.gray[dark ? 700 : 300].hex),\n placeholder: getColorHex(tones.default, !dark, 'default', 'text_secondary'),\n }\n }\n\n if (state === 'disabled') {\n return {\n bg: getColorHex(tones.default, dark, 'default', 'bg_tint'),\n bg2: getColorHex(tones.default, dark, 'default', 'border_base'),\n fg: getColorHex(tones.default, dark, 'default', 'text_secondary'),\n border: getColorHex(tones.default, dark, 'default', 'border_base'),\n placeholder: getColorHex(tones.default, !dark, 'default', 'text_secondary'),\n }\n }\n\n if (state === 'readOnly') {\n return {\n bg: getColorHex(tones.default, dark, 'default', 'bg_tint'),\n bg2: getColorHex(tones.default, dark, 'default', 'border_base'),\n fg: getColorHex(tones.default, dark, 'default', 'text_secondary'),\n border: getColorHex(tones.default, dark, 'default', 'border_base'),\n placeholder: getColorHex(tones.default, !dark, 'default', 'text_secondary'),\n }\n }\n\n return {\n bg: base.bg,\n bg2: getColorHex(tones.default, dark, 'default', 'text_secondary'),\n fg: base.fg,\n border: base.border,\n placeholder: getColorHex(tones.default, !dark, 'default', 'text_secondary'),\n }\n },\n\n selectable: ({base, muted, tone, solid, state}) => {\n if (state === 'enabled') {\n return {\n ...muted[tone].enabled,\n bg: base.bg,\n }\n }\n\n if (state === 'pressed') {\n if (tone === 'default') {\n return muted.primary.pressed\n }\n\n return muted[tone].pressed\n }\n\n if (state === 'selected') {\n if (tone === 'default') {\n return solid.primary.enabled\n }\n\n return solid[tone].enabled\n }\n\n if (state === 'disabled') {\n return {\n ...muted[tone].disabled,\n bg: base.bg,\n }\n }\n\n return muted[tone][state]\n },\n\n spot: ({base, dark, key}) => {\n const mix = dark ? screen : multiply\n\n return mix(base.bg, hues[key][dark ? 400 : 500].hex)\n },\n\n syntax: ({base, dark}) => {\n const mix = dark ? screen : multiply\n const mainShade = dark ? 400 : 600\n const secondaryShade = dark ? 600 : 400\n\n return {\n atrule: mix(base.bg, hues.purple[mainShade].hex),\n attrName: mix(base.bg, hues.green[mainShade].hex),\n attrValue: mix(base.bg, hues.yellow[mainShade].hex),\n attribute: mix(base.bg, hues.yellow[mainShade].hex),\n boolean: mix(base.bg, hues.purple[mainShade].hex),\n builtin: mix(base.bg, hues.purple[mainShade].hex),\n cdata: mix(base.bg, hues.yellow[mainShade].hex),\n char: mix(base.bg, hues.yellow[mainShade].hex),\n class: mix(base.bg, hues.orange[mainShade].hex),\n className: mix(base.bg, hues.cyan[mainShade].hex),\n comment: mix(base.bg, hues.gray[secondaryShade].hex),\n constant: mix(base.bg, hues.purple[mainShade].hex),\n deleted: mix(base.bg, hues.red[mainShade].hex),\n doctype: mix(base.bg, hues.gray[secondaryShade].hex),\n entity: mix(base.bg, hues.red[mainShade].hex),\n function: mix(base.bg, hues.green[mainShade].hex),\n hexcode: mix(base.bg, hues.blue[mainShade].hex),\n id: mix(base.bg, hues.purple[mainShade].hex),\n important: mix(base.bg, hues.purple[mainShade].hex),\n inserted: mix(base.bg, hues.yellow[mainShade].hex),\n keyword: mix(base.bg, hues.magenta[mainShade].hex),\n number: mix(base.bg, hues.purple[mainShade].hex),\n operator: mix(base.bg, hues.magenta[mainShade].hex),\n prolog: mix(base.bg, hues.gray[secondaryShade].hex),\n property: mix(base.bg, hues.blue[mainShade].hex),\n pseudoClass: mix(base.bg, hues.yellow[mainShade].hex),\n pseudoElement: mix(base.bg, hues.yellow[mainShade].hex),\n punctuation: mix(base.bg, hues.gray[mainShade].hex),\n regex: mix(base.bg, hues.blue[mainShade].hex),\n selector: mix(base.bg, hues.red[mainShade].hex),\n string: mix(base.bg, hues.yellow[mainShade].hex),\n symbol: mix(base.bg, hues.purple[mainShade].hex),\n tag: mix(base.bg, hues.red[mainShade].hex),\n unit: mix(base.bg, hues.orange[mainShade].hex),\n url: mix(base.bg, hues.red[mainShade].hex),\n variable: mix(base.bg, hues.red[mainShade].hex),\n }\n },\n})\n","import {ThemeFonts} from '../lib/theme'\n\nexport const fonts: ThemeFonts = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 3,\n descenderHeight: 3,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 13,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 17,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 21,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 25,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: 0,\n },\n ],\n },\n heading: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 700,\n medium: 800,\n semibold: 900,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 12,\n iconSize: 17,\n lineHeight: 17,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 21,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 33,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 39,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 9,\n descenderHeight: 9,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 45,\n letterSpacing: 0,\n },\n ],\n },\n label: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weights: {\n regular: 600,\n medium: 700,\n semibold: 800,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 9.8,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 11.25,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.75,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 14,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15.5,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n },\n ],\n },\n text: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 3,\n descenderHeight: 3,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 13,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 17,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 21,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 25,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: 0,\n },\n ],\n },\n}\n","import {RootTheme} from '../types'\nimport {color} from './color'\nimport {fonts} from './fonts'\n\n/**\n * @public\n */\nexport const studioTheme: RootTheme = {\n avatar: {\n sizes: [\n {distance: -3, size: 25},\n {distance: -6, size: 35},\n {distance: -9, size: 55},\n ],\n focusRing: {offset: 1, width: 1},\n },\n button: {\n textWeight: 'medium',\n focusRing: {offset: -1, width: 2},\n },\n card: {\n focusRing: {offset: -1, width: 1},\n },\n color,\n container: [320, 640, 960, 1280, 1600, 1920],\n focusRing: {\n offset: 1,\n width: 2,\n },\n fonts,\n media: [360, 600, 900, 1200, 1800, 2400],\n radius: [0, 1, 3, 6, 9, 12, 21],\n shadows: [\n null,\n {umbra: [0, 0, 0, 0], penumbra: [0, 0, 0, 0], ambient: [0, 0, 0, 0]},\n {umbra: [0, 3, 5, -1], penumbra: [0, 6, 10, 0], ambient: [0, 1, 18, 0]},\n {umbra: [0, 7, 8, -4], penumbra: [0, 12, 17, 2], ambient: [0, 5, 22, 4]},\n {umbra: [0, 9, 11, -5], penumbra: [0, 18, 28, 2], ambient: [0, 7, 34, 6]},\n {umbra: [0, 11, 15, -7], penumbra: [0, 24, 38, 3], ambient: [0, 9, 46, 8]},\n ],\n space: [0, 4, 8, 12, 20, 32, 52, 84, 136, 220],\n input: {\n checkbox: {\n size: 17,\n focusRing: {offset: -1, width: 1},\n },\n radio: {\n size: 17,\n markSize: 9,\n focusRing: {offset: -1, width: 1},\n },\n switch: {\n width: 21,\n height: 13,\n padding: 2,\n transitionDurationMs: 150,\n transitionTimingFunction: 'ease-out',\n focusRing: {offset: 1, width: 1},\n },\n border: {\n width: 1,\n },\n select: {\n focusRing: {offset: -1, width: 1},\n },\n text: {\n focusRing: {offset: -1, width: 1},\n },\n },\n // styles: {\n // button: {\n // root: {\n // transition: 'background-color 100ms,border-color 100ms,color 100ms',\n // },\n // },\n // card: {\n // root: {\n // transition: 'background-color 100ms,border-color 100ms,color 100ms',\n // },\n // },\n // },\n}\n","import {ThemeLayer} from './lib/theme/layer'\n\nexport const DEFAULT_THEME_LAYER: ThemeLayer = {\n dialog: {zOffset: 600},\n popover: {zOffset: 400},\n tooltip: {zOffset: 200},\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","import {createContext} from 'react'\nimport {globalScope} from '../lib/globalScope'\nimport {ThemeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/theme')\n\nglobalScope[key] = globalScope[key] || createContext<ThemeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const ThemeContext: React.Context<ThemeContextValue | null> = globalScope[key]\n","import {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {DEFAULT_THEME_LAYER} from './defaults'\nimport {ThemeColorSchemeKey, ThemeColorName} from './lib/theme'\nimport {ThemeContext} from './themeContext'\nimport {RootTheme, Theme, ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorName\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {\n children,\n scheme = parentTheme?.scheme || 'light',\n theme: themeProp = parentTheme?.theme || null,\n tone = parentTheme?.tone || 'default',\n } = props\n\n const theme: Theme | null = useMemo(() => {\n if (!themeProp) return null\n\n const {color: rootColor, layer: rootLayer, ...restTheme} = themeProp\n const colorScheme = rootColor[scheme] || rootColor.light\n const color = colorScheme[tone] || colorScheme.default\n const layer = rootLayer || DEFAULT_THEME_LAYER\n\n return {sanity: {...restTheme, color, layer}}\n }, [scheme, themeProp, tone])\n\n const value: ThemeContextValue | null = useMemo(\n () =>\n themeProp && {\n version: 0.0,\n theme: themeProp,\n scheme,\n tone,\n },\n [themeProp, scheme, tone],\n )\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <ThemeContext.Provider value={value}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object')\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {useContext} from 'react'\nimport {isRecord} from '../lib/isRecord'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value: unknown = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): 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('useRootTheme(): the context value is not compatible')\n }\n\n return value as any as ThemeContextValue\n}\n","import {ThemeColorName, ThemeColorSchemeKey} from './lib/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?: ThemeColorName\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 {useTheme as useStyledTheme} from 'styled-components'\n\nimport {Theme} from './types'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n","import {useSyncExternalStore} from 'react'\nimport {useTheme} 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 theme = useTheme()\n const {media} = theme.sanity\n\n let store = MEDIA_STORE_CACHE.get(media)\n\n if (!store) {\n store = _createMediaStore(media)\n MEDIA_STORE_CACHE.set(media, store)\n }\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useSyncExternalStore} from 'react'\n\nlet MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n/**\n * Lazy init the matchMedia instance\n */\nfunction getMatchMedia(): MediaQueryList {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia('(prefers-color-scheme: dark)')\n }\n\n return MEDIA_QUERY_CACHE\n}\n\n/**\n * As the query is the same for all instances of this hook, we can cache the matchMedia instance\n * and have cheap `change` event listeners, while getSnapshot always reads from the same\n * matchMedia instance and we don't get any tearing.\n * Tearing in this context means the bad edge case in React concurrent render mdoe\n * where you sometimes would end up with some components doing render while seeing `usePrefersDark() === true` while others would see `usePrefersDark() === false`\n * during the same render.\n * By using `useSyncExternalStore` every component only sees the same value during the same render, and always re-render when it changes no matter\n * what React.memo boundaries there might be between the layers..\n */\nfunction subscribe(onStoreChange: () => void): () => void {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n}\n\n/**\n * Only called client-side, when using createRoot, or after hydration is complete when using hydrateRoot.\n * It's important that this function does not create new objects or arrays when called:\n * https://beta.reactjs.org/apis/react/useSyncExternalStore#im-getting-an-error-the-result-of-getsnapshot-should-be-cached\n */\nfunction getSnapshot() {\n return getMatchMedia().matches\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return false\n}\n\n/**\n * @public\n */\nexport function usePrefersDark(): boolean {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {useSyncExternalStore} from 'react'\n\nlet MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n/**\n * Lazy init the matchMedia instance\n */\nfunction getMatchMedia(): MediaQueryList {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia('(prefers-reduced-motion: reduce)')\n }\n\n return MEDIA_QUERY_CACHE\n}\n\n/**\n * As the query is the same for all instances of this hook, we can cache the matchMedia instance\n * and have cheap `change` event listeners, while getSnapshot always reads from the same\n * matchMedia instance and we don't get any tearing.\n * Tearing in this context means the bad edge case in React concurrent render mdoe\n * where you sometimes would end up with some components doing render while seeing `usePrefersDark() === true` while others would see `usePrefersDark() === false`\n * during the same render.\n * By using `useSyncExternalStore` every component only sees the same value during the same render, and always re-render when it changes no matter\n * what React.memo boundaries there might be between the layers..\n */\nfunction subscribe(onStoreChange: () => void): () => void {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n}\n\n/**\n * Only called client-side, when using createRoot, or after hydration is complete when using hydrateRoot.\n * It's important that this function does not create new objects or arrays when called:\n * https://beta.reactjs.org/apis/react/useSyncExternalStore#im-getting-an-error-the-result-of-getsnapshot-should-be-cached\n */\nfunction getSnapshot() {\n return getMatchMedia().matches\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return false\n}\n\n/**\n * Returns true if motion should be reduced\n * @public\n */\nexport function usePrefersReducedMotion(): boolean {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {useEffect, useLayoutEffect} from 'react'\n\n/**\n * @beta\n */\nexport const useIsomorphicEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n","import {useRef} from 'react'\nimport {useIsomorphicEffect} from './useIsomorphicEffect'\n\n/**\n * @beta\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useIsomorphicEffect(() => {\n if (!ref) return\n\n if (typeof ref === 'function') {\n ref(innerRef.current)\n } else {\n ref.current = innerRef.current\n }\n })\n\n return innerRef\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n if (ref.current) {\n ref.current.setCustomValidity(customValidity || '')\n }\n }, [customValidity, ref])\n}\n","import {CSSObject} from '../../types/styled'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nconst BORDER_VALUE = '1px solid var(--card-border-color)'\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: BORDER_VALUE}} : {'&&': {border: 0}},\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: BORDER_VALUE}} : {'&&': {borderTop: 0}},\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: BORDER_VALUE}} : {'&&': {borderRight: 0}},\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: BORDER_VALUE}} : {'&&': {borderBottom: 0}},\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: BORDER_VALUE}} : {'&&': {borderLeft: 0}},\n )\n}\n","import {Property} from 'csstype'\nimport {CSSObject} from '../../types/styled'\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject} from '../../types/styled'\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {theme} = props\n const {media, space} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {EMPTY_ARRAY} from '../../constants'\nimport {CSSObject} from '../../types/styled'\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 {theme} = props\n const {media} = theme.sanity\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex}))\n}\n","import {FocusRing} from '../../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: FocusRing\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} from '../../types/styled'\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media, space} = theme.sanity\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 {theme} = props\n const {media, space} = theme.sanity\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 {theme} = props\n const {media, space} = theme.sanity\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject} from '../../types/styled'\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: rowStart,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: rowEnd}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: columnStart,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: columnEnd,\n }))\n}\n","import {CSSObject} from '../../types/styled'\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, theme} = props\n const {fonts, media, space: spaceScale} = theme.sanity\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 = fonts.text.sizes[_fontSize[i]] || fonts.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = spaceScale[_padding[i]]\n const s = spaceScale[_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 {css} from 'styled-components'\nimport {ThemeColorSchemeKey, ThemeFontWeightKey} from '../../theme'\nimport {CardTone} from '../../types'\nimport {CSSObject} from '../../types/styled'\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}\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 {theme, $scheme, $tone, $weight} = props\n const font = theme.sanity.fonts.text\n const color = theme.sanity.color.input\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.family};\n font-weight: ${($weight && font.weights[$weight]) || font.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.default.enabled.fg};\n --input-placeholder-color: ${color.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.default.enabled.fg};\n --input-placeholder-color: ${color.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.default.disabled.fg};\n --input-placeholder-color: ${color.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.invalid.enabled.fg};\n --input-placeholder-color: ${color.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.default.readOnly.fg};\n --input-placeholder-color: ${color.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {theme} = props\n const {fonts, media} = theme.sanity\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = fonts.text.sizes[sizeIndex] || fonts.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, theme} = props\n const {input} = theme.sanity\n const {focusRing} = input.text\n const color = theme.sanity.color.input\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.default.enabled.bg};\n --card-fg-color: ${color.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.invalid.enabled.bg};\n --card-fg-color: ${color.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.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: ${focusRingStyle({\n border: {color: color.default.enabled.border, width: input.border.width},\n focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${focusRingStyle({focusRing})};\n }\n }\n\n /* disabled */\n *:disabled + & {\n --card-bg-color: ${color.default.disabled.bg} !important;\n --card-fg-color: ${color.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:read-only + & {\n --card-bg-color: ${color.default.readOnly.bg} !important;\n --card-fg-color: ${color.default.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.default.hovered.bg};\n --card-fg-color: ${color.default.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.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from '../../types/styled'\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 '../../types/styled'\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} from '../../types/styled'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {theme} = props\n const {media, radius} = theme.sanity\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 {EMPTY_RECORD} from '../../constants'\nimport {BoxShadow, ThemeShadow} from '../../theme'\nimport {CSSObject} from '../../types/styled'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: BoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(1)} 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 {theme} = props\n const {media, shadows} = theme.sanity\n\n return _responsive(media, props.$shadow, (shadow) => shadowStyle(shadows[shadow]))\n}\n","import {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, theme} = props\n const {weights} = theme.sanity.fonts.text\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: ${theme.sanity.fonts.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: ${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 `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey} from '../../theme'\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 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 * @public\n */\nexport const Text = forwardRef(function Text(\n props: TextProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <Root\n data-ui=\"Text\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={useArrayProp(size)}\n $weight={weight}\n >\n <span>{children}</span>\n </Root>\n )\n})\n","import {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {CSSObject} from '../../types/styled'\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}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n position: 'absolute',\n boxSizing: 'border-box',\n zIndex: 0,\n opacity: 0,\n transition: 'all 0.2s linear',\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n\n '& > svg': {\n width: '11px',\n height: '7px',\n position: 'absolute',\n top: '-5px',\n left: '50%',\n transform: 'translateX(-6px)',\n\n // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color, theme} = props\n const {focusRing} = theme.sanity.avatar\n\n return {\n backgroundColor: $color,\n position: 'relative',\n boxSizing: 'border-box',\n userSelect: 'none',\n boxShadow: '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: 0.5,\n },\n\n '&>svg': {\n // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n WebkitFontSmoothing: 'inherit',\n appearance: 'none',\n margin: 0,\n padding: 0,\n border: 0,\n font: 'inherit',\n color: 'inherit',\n outline: 'none',\n\n // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\n '&:focus': {\n boxShadow: focusRingStyle({focusRing}),\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 {theme} = props\n const {avatar, media} = theme.sanity\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 avatarInitialsStyle(props: ThemeProps): CSSObject {\n const {theme} = props\n const {base} = theme.sanity.color\n\n return {\n width: '100%',\n height: '100%',\n color: base.fg,\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: '3px',\n\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeColorSpotKey, useTheme} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Text} from '../text'\nimport {avatarStyle, responsiveAvatarSizeStyle} from './styles'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n as?: React.ElementType | keyof JSX.IntrinsicElements\n color?: ThemeColorSpotKey\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: string; $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\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 as: asProp,\n color: colorKey = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 0,\n ...restProps\n } = props\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n const theme = useTheme()\n const color = theme.sanity.color.spot[colorKey] || theme.sanity.color.spot.gray\n\n // @todo: remove this\n const avatarSize = theme.sanity.avatar.sizes[size[0]] || theme.sanity.avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(() => size.map((s) => (s === 0 ? 0 : s + 1)), [size])\n\n return (\n <Root\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $size={size}\n $color={color}\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 <svg 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 <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n stroke={color}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <Text as=\"span\" size={initialsSize}>\n <strong>{initials}</strong>\n </Text>\n </Initials>\n </>\n )}\n </Root>\n )\n})\n","import {forwardRef, useMemo} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Text} from '../text'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {theme} = props\n const {avatar, media} = theme.sanity\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 {theme} = props\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 1.5px var(--card-hairline-hard-color);\n padding: 0 ${rem(theme.sanity.space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst Root = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: AvatarCounterProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {count, size: sizeProp = 0} = props\n const size = useArrayProp(sizeProp)\n const counterSize = useMemo(() => size.map((s) => (s === 0 ? 0 : s + 1)), [size])\n\n return (\n <Root $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Text as=\"span\" size={counterSize}>\n <strong>{count}</strong>\n </Text>\n </Root>\n )\n})\n","import {isElement, isFragment} from 'react-is'\n\nexport function childrenToElementArray(\n children: React.ReactNode,\n): Array<React.ReactElement | string> {\n const childrenArray = Array.isArray(children) ? children : [children]\n\n return childrenArray.filter(\n (node) => isElement(node) || isFragment(node) || typeof node === 'string',\n ) as Array<React.ReactElement | string>\n}\n","import {cloneElement, forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {childrenToElementArray} from '../helpers'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n`\n\nfunction avatarStackStyle() {\n return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {theme} = props\n const {avatar, media} = theme.sanity\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 = 0,\n ...restProps\n } = props\n const children = childrenToElementArray(childrenProp).filter(\n (child) => typeof child !== 'string',\n ) as React.ReactElement[]\n const maxLength = Math.max(maxLengthProp, 0)\n const size = useArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <Root data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n forwardedAs?: React.ElementType | keyof JSX.IntrinsicElements\n}\n\nconst Root = styled.div<\n FlexItemStyleProps &\n ResponsiveBoxStyleProps &\n ResponsiveGridItemStyleProps &\n ResponsiveMarginStyleProps &\n ResponsivePaddingStyleProps\n>(\n boxStyle,\n flexItemStyle,\n responsiveBoxStyle,\n responsiveGridItemStyle,\n responsiveMarginStyle,\n responsivePaddingStyle,\n)\n\n/**\n * @public\n */\nexport const Box = forwardRef(function Box(\n props: BoxProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as: asProp = 'div',\n column,\n columnStart,\n columnEnd,\n display = 'block',\n flex,\n height,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n overflow,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n row,\n rowStart,\n rowEnd,\n sizing,\n ...restProps\n } = props\n\n return (\n <Root\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={useArrayProp(column)}\n $columnStart={useArrayProp(columnStart)}\n $columnEnd={useArrayProp(columnEnd)}\n $display={useArrayProp(display)}\n $flex={useArrayProp(flex)}\n $height={useArrayProp(height)}\n $margin={useArrayProp(margin)}\n $marginX={useArrayProp(marginX)}\n $marginY={useArrayProp(marginY)}\n $marginTop={useArrayProp(marginTop)}\n $marginRight={useArrayProp(marginRight)}\n $marginBottom={useArrayProp(marginBottom)}\n $marginLeft={useArrayProp(marginLeft)}\n $overflow={useArrayProp(overflow)}\n $padding={useArrayProp(padding)}\n $paddingX={useArrayProp(paddingX)}\n $paddingY={useArrayProp(paddingY)}\n $paddingTop={useArrayProp(paddingTop)}\n $paddingRight={useArrayProp(paddingRight)}\n $paddingBottom={useArrayProp(paddingBottom)}\n $paddingLeft={useArrayProp(paddingLeft)}\n $row={useArrayProp(row)}\n $rowStart={useArrayProp(rowStart)}\n $rowEnd={useArrayProp(rowEnd)}\n $sizing={useArrayProp(sizing)}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </Root>\n )\n})\n","import {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, theme} = props\n const {fonts} = theme.sanity\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: ${fonts.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 {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {ThemeFontWeightKey} from '../../theme'\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 * @public\n */\nexport const Label = forwardRef(function Label(\n props: LabelProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <Root\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\n","import {ThemeProps} from '../../styles'\nimport {CSSObject} from '../../types/styled'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps & ThemeProps): CSSObject {\n const {$mode, $tone, theme} = props\n const palette = theme.sanity.color[$mode === 'outline' ? 'muted' : 'solid']\n const color = palette[$tone] || palette.default\n\n return {\n backgroundColor: color.enabled.bg,\n color: color.enabled.fg,\n boxShadow: `inset 0 0 0 1px ${color.enabled.border}`,\n cursor: 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Label} from '../label'\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 mode?: BadgeMode\n tone?: BadgeTone\n}\n\nconst Root = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\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,\n mode = 'default',\n padding = 1,\n radius = 2,\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <Root\n data-ui=\"Badge\"\n {...restProps}\n $mode={mode}\n $tone={tone}\n $radius={useArrayProp(radius)}\n padding={useArrayProp(padding)}\n ref={ref}\n >\n <Label size={fontSize}>{children}</Label>\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst Root = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n flexItemStyle,\n responsiveFlexStyle,\n)\n\n/**\n * @public\n */\nexport const Flex = forwardRef(function Flex(\n props: FlexProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {align, as, direction = 'row', gap, justify, wrap, ...restProps} = props\n\n return (\n // @ts-expect-error -- some dollar prefixed typings aren't inferred correctly https://github.com/styled-components/styled-components/issues/4062\n <Root\n data-ui=\"Flex\"\n {...restProps}\n $align={useArrayProp(align)}\n $direction={useArrayProp(direction)}\n $gap={useArrayProp(gap)}\n $justify={useArrayProp(justify)}\n $wrap={useArrayProp(wrap)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled, {keyframes} from 'styled-components'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Root = styled(Text)`\n & > span > svg {\n animation: ${rotate} 500ms linear infinite;\n }\n`\n\n/**\n * @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 {ThemeColorBase, ThemeColorGenericState} from '../../theme'\nimport {CSSObject} from '../../types/styled'\n\n/**\n * @internal\n */\nexport function _colorVarsStyle(\n base: ThemeColorBase,\n color: ThemeColorGenericState,\n checkered = false,\n): CSSObject {\n return {\n // Base\n // @todo: rename to \"--base-\"?\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 '--card-focus-ring-color': base.focusRing,\n '--card-icon-color': color.iconColor,\n\n // Card\n '--card-bg-color': color.bg,\n '--card-bg2-color': color.bg2,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.bg2 || color.bg} 0% 50%)`\n : undefined,\n '--card-fg-color': color.fg,\n '--card-border-color': color.border,\n '--card-muted-fg-color': color.muted?.fg,\n '--card-accent-fg-color': color.accent?.fg,\n '--card-link-fg-color': color.link?.fg,\n '--card-code-bg-color': color.code?.bg,\n '--card-code-fg-color': color.code?.fg,\n '--card-skeleton-color-from': color.skeleton?.from,\n '--card-skeleton-color-to': color.skeleton?.to,\n\n // @todo: deprecate\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 {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone} from '../../types'\nimport {CSSObject} from '../../types/styled'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(): ReturnType<typeof css> {\n return css`\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\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\nconst buttonTheme = {border: {width: 1}}\nconst defaultBoxShadow = '0px 2px 0px 0px rgba(112, 128, 155, 0.19);'\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, theme} = props\n const {focusRing} = theme.sanity.button\n const shadow = props.$mode !== 'bleed'\n const base = theme.sanity.color.base\n const mode = theme.sanity.color.button[$mode] || theme.sanity.color.button.default\n const color = mode[props.$tone] || mode.default\n const border = {width: buttonTheme.border.width, color: 'var(--card-border-color)'}\n\n return [\n _colorVarsStyle(base, color.enabled),\n {\n backgroundColor: 'var(--card-bg-color)',\n color: 'var(--card-fg-color)',\n boxShadow: focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _colorVarsStyle(base, 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,\n border: {width: 2, color: base.bg},\n 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': _colorVarsStyle(base, color.hovered),\n '&:active': _colorVarsStyle(base, color.pressed),\n '&[data-hovered]': _colorVarsStyle(base, color.hovered),\n },\n '&[data-selected]': _colorVarsStyle(base, color.pressed),\n },\n },\n theme.sanity.styles?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {createElement, forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, 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}\n\nconst Root = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone} & ResponsiveRadiusStyleProps & 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'>,\n ref: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n children,\n disabled,\n fontSize = 1,\n icon,\n iconRight,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n tone = 'default',\n type = 'button',\n muted = false,\n ...restProps\n } = props\n\n const justify = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n const theme = useTheme()\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 >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(icon || text || iconRight) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n {text && (\n <Box flex={iconRight ? 1 : undefined}>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={theme.sanity.button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </Root>\n )\n})\n","import {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\nimport {focusRingBorderStyle, 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, theme} = props\n const space = theme.sanity.space\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: 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, theme} = props\n const {focusRing} = theme.sanity.card\n const {base, card, dark} = theme.sanity.color\n const border = {width: 0, color: 'var(--card-border-color)'}\n\n return css`\n color-scheme: ${dark ? 'dark' : 'light'};\n\n ${_colorVarsStyle(base, card.enabled, $checkered)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ${_colorVarsStyle(base, card.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_colorVarsStyle(base, card.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_colorVarsStyle(base, card.hovered, $checkered)}\n }\n\n &:active {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n }\n }\n\n &:focus {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base, border, focusRing})\n : undefined};\n }\n\n &:focus:not(:focus-visible) {\n --card-focus-ring-box-shadow: ${$focusRing ? focusRingBorderStyle(border) : 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 ${_colorVarsStyle(base, card.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_colorVarsStyle(base, card.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_colorVarsStyle(base, card.hovered, $checkered)}\n }\n\n &:active {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n }\n }\n\n &:focus {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base, border, focusRing})\n : undefined};\n }\n\n &:focus:not(:focus-visible) {\n --card-focus-ring-box-shadow: ${$focusRing ? focusRingBorderStyle(border) : undefined};\n }\n }\n }\n\n ${theme.sanity.styles?.card?.root}\n `\n}\n","import {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, ThemeColorSchemeKey, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst Root = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\n/**\n * @public\n */\nexport const Card = forwardRef(function Card(\n props: CardProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootTheme = useRootTheme()\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-scheme={rootTheme.scheme}\n data-ui=\"Card\"\n data-tone={tone}\n {...restProps}\n $border={useArrayProp(border)}\n $borderTop={useArrayProp(borderTop)}\n $borderRight={useArrayProp(borderRight)}\n $borderBottom={useArrayProp(borderBottom)}\n $borderLeft={useArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $radius={useArrayProp(radius)}\n $shadow={useArrayProp(shadow)}\n $tone={tone}\n data-checkered={checkered ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n forwardedAs={as}\n ref={ref}\n selected={selected}\n />\n </ThemeColorProvider>\n )\n})\n","import {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 {theme} = props\n const color = theme.sanity.color.input\n const {input, radius} = theme.sanity\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.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.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.2 !important;\n }\n }\n }\n &:checked + span {\n background: ${color.default.enabled.bg2};\n box-shadow: ${focusRingBorderStyle({\n color: color.default.enabled.bg2,\n width: input.border.width,\n })};\n color: ${color.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.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.invalid.enabled.bg2,\n })};\n color: ${color.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.invalid.enabled.bg2};\n color: ${color.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.invalid.readOnly.bg2},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.default.disabled.border,\n })};\n color: ${color.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.default.disabled.bg2};\n }\n\n &[data-read-only] + span {\n background-color: ${color.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.default.readOnly.border,\n })};\n color: ${color.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.default.readOnly.bg2};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity} from '../../hooks'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst Root = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\n/**\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = props\n const ref = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </Root>\n )\n})\n","import {css, ExecutionContext} from 'styled-components'\n\nfunction codeSyntaxHighlightingStyle({theme}: ExecutionContext) {\n const color = theme.sanity.color.syntax\n\n return {\n '&.atrule': {color: color.atrule},\n '&.attr-name': {color: color.attrName},\n '&.attr-value': {color: color.attrValue},\n '&.attribute': {color: color.attribute},\n '&.boolean': {color: color.boolean},\n '&.builtin': {color: color.builtin},\n '&.cdata': {color: color.cdata},\n '&.char': {color: color.char},\n '&.class': {color: color.class},\n '&.class-name': {color: color.className},\n '&.comment': {color: color.comment},\n '&.constant': {color: color.constant},\n '&.deleted': {color: color.deleted},\n '&.doctype': {color: color.doctype},\n '&.entity': {color: color.entity},\n '&.function': {color: color.function},\n '&.hexcode': {color: color.hexcode},\n '&.id': {color: color.id},\n '&.important': {color: color.important},\n '&.inserted': {color: color.inserted},\n '&.keyword': {color: color.keyword},\n '&.number': {color: color.number},\n '&.operator': {color: color.operator},\n '&.prolog': {color: color.prolog},\n '&.property': {color: color.property},\n '&.pseudo-class': {color: color.pseudoClass},\n '&.pseudo-element': {color: color.pseudoElement},\n '&.punctuation': {color: color.punctuation},\n '&.regex': {color: color.regex},\n '&.selector': {color: color.selector},\n '&.string': {color: color.string},\n '&.symbol': {color: color.symbol},\n '&.tag': {color: color.tag},\n '&.unit': {color: color.unit},\n '&.url': {color: color.url},\n '&.variable': {color: color.variable},\n }\n}\n\nexport function codeBaseStyle(): ReturnType<typeof css> {\n return css`\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ${codeSyntaxHighlightingStyle}\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef} from 'react'\nimport Refractor from 'react-refractor'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst Root = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: CodeProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {children, language: languageProp, size = 2, weight, ...restProps} = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n const registered = language ? Refractor.hasLanguage(language as any) : false\n\n return (\n <Root data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n {!(language && registered) && <code>{children}</code>}\n {language && registered && <Refractor inline language={language} value={String(children)} />}\n </Root>\n )\n})\n","import {rem, _responsive, ThemeProps} from '../../styles'\nimport {CSSObject} from '../../types/styled'\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 {theme} = props\n const {container, media} = theme.sanity\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst Root = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\n/**\n * @public\n */\nexport const Container = forwardRef(function Container(\n props: ContainerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, width = 2, ...restProps} = props\n\n return (\n <Root\n data-ui=\"Container\"\n {...restProps}\n $width={useArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst Root = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\n/**\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n props: GridProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, autoRows, autoCols, autoFlow, columns, gap, gapX, gapY, rows, children, ...restProps} =\n props\n\n return (\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={useArrayProp(autoRows)}\n $autoCols={useArrayProp(autoCols)}\n $autoFlow={useArrayProp(autoFlow)}\n $columns={useArrayProp(columns)}\n $gap={useArrayProp(gap)}\n $gapX={useArrayProp(gapX)}\n $gapY={useArrayProp(gapY)}\n $rows={useArrayProp(rows)}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\n","import {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, theme} = props\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: ${theme.sanity.fonts.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 & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey} from '../../theme'\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 * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: HeadingProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <Root\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </Root>\n )\n})\n","import {rem, _responsive, ThemeProps} from '../../styles'\nimport {CSSObject} from '../../types/styled'\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 {theme} = props\n\n return _responsive(theme.sanity.media, props.$space, (spaceIndex) => {\n const space = rem(theme.sanity.space[spaceIndex])\n\n return {\n margin: `-${space} 0 0 -${space}`,\n '& > div': {padding: `${space} 0 0 ${space}`},\n }\n })\n}\n","import {forwardRef, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {childrenToElementArray} from '../helpers'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\n/**\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n props: InlineProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {as, children: childrenProp, space, ...restProps} = props\n\n const children = useMemo(\n () =>\n childrenToElementArray(childrenProp)\n .filter(Boolean)\n .map((child, idx) => <div key={idx}>{child}</div>),\n [childrenProp],\n )\n\n return (\n <Root\n data-ui=\"Inline\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n >\n {children}\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n}\n\nfunction kbdStyle() {\n return css`\n background: var(--card-bg2-color);\n font: inherit;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nconst Root = styled.kbd<ResponsiveRadiusStyleProps>(responsiveRadiusStyle, kbdStyle)\n\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 = 1, padding = 1, radius = 2, ...restProps} = props\n\n return (\n <Root data-ui=\"KBD\" {...restProps} $radius={useArrayProp(radius)} ref={ref}>\n <Box as=\"span\" padding={padding}>\n <Text as=\"span\" muted size={fontSize} weight=\"medium\">\n {children}\n </Text>\n </Box>\n </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {BoundaryElementContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/boundaryElement')\n\nglobalScope[key] = globalScope[key] || createContext<BoundaryElementContextValue | null>(null)\n\nexport const BoundaryElementContext: React.Context<BoundaryElementContextValue | null> =\n globalScope[key]\n","import {useMemo} from 'react'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.ReactElement {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n","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","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {forwardRef, useCallback, useMemo, useState} from 'react'\nimport {useElementSize, useForwardedRef} from '../../hooks'\nimport {useTheme} from '../../theme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme()\n const {children, media = theme.sanity.media, ...restProps} = props\n\n const forwardedRef = useForwardedRef(ref)\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => findMaxBreakpoints(media, width), [media, width])\n const min = useMemo(() => findMinBreakpoints(media, width), [media, width])\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n forwardedRef.current = el\n setElement(el)\n },\n [forwardedRef],\n )\n\n return (\n <div\n data-ui=\"ElementQuery\"\n {...restProps}\n data-eq-max={max.length ? max.join(' ') : undefined}\n data-eq-min={min.length ? min.join(' ') : undefined}\n ref={setRef}\n >\n {children}\n </div>\n )\n})\n","import {Component, PropsWithChildren} from 'react'\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {Context, createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {LayerContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/layer')\n\nglobalScope[key] = globalScope[key] || createContext<LayerContextValue | null>(null)\n\nexport const LayerContext: Context<LayerContextValue | null> = globalScope[key]\n","import {useContext} from 'react'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {\n isHTMLElement,\n isHTMLAnchorElement,\n isHTMLInputElement,\n isHTMLButtonElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch (_) {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.ReactElement {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useArrayProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n","import {FocusEvent, forwardRef, useCallback, useEffect, useRef} from 'react'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {useForwardedRef} from '../../hooks'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\nconst Root = styled.div({position: 'relative'})\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {children, onActivate, onFocus, style = EMPTY_RECORD, ...restProps} = props\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const forwardedRef = useForwardedRef(ref)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = forwardedRef.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [forwardedRef, isTopLayer, onFocus],\n )\n\n return (\n <Root\n {...restProps}\n data-ui=\"Layer\"\n onFocus={handleFocus}\n ref={forwardedRef}\n style={{...style, zIndex}}\n >\n {children}\n </Root>\n )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n props: LayerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps} ref={ref}>\n {children}\n </LayerChildren>\n </LayerProvider>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/portal')\nconst elementKey = Symbol.for('@sanity/ui/context/portal/element')\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nglobalScope[key] = globalScope[key] || createContext<PortalContextValue>(defaultContextValue)\n\nexport const PortalContext: React.Context<PortalContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n","import {useRef} from 'react'\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n *\n * @internal\n */\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n\nexport function useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n","import {useMemo} from 'react'\nimport {useUnique} from '../../hooks/_internal'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\nconst __BROWSER__ = typeof document !== 'undefined'\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || (__BROWSER__ && document.body) || null,\n elements,\n }\n }, [boundaryElement, element, elements])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst Root = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {as, children} = props\n\n return (\n <Root aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Root>\n )\n})\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef, useEffect, useMemo, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {_isScrollable} from '../../helpers'\nimport {useForwardedRef} from '../../hooks'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme} from '../../theme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst Root = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: VirtualListProps &\n StackProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n): React.ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme().sanity\n const forwardedRef = useForwardedRef(ref)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect(() => {\n if (!forwardedRef.current) return\n\n let _scrollEl = forwardedRef.current.parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n if (_scrollEl) {\n const scrollEl = _scrollEl\n\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [forwardedRef])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Root as={as} data-ui=\"VirtualList\" {...restProps} ref={forwardedRef}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Root>\n )\n})\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 27\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 11\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 {Theme} from '../../theme'\nimport {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n theme: Theme\n width: PopoverWidth[]\n}): number | undefined {\n const {mediaIndex, theme, 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' ? theme.sanity.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 {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {DEFAULT_POPOVER_ARROW_HEIGHT, DEFAULT_POPOVER_ARROW_WIDTH} from './constants'\n\nconst Root = styled.div`\n position: absolute;\n pointer-events: none;\n width: ${DEFAULT_POPOVER_ARROW_WIDTH}px;\n height: ${DEFAULT_POPOVER_ARROW_WIDTH}px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n transform-origin: ${DEFAULT_POPOVER_ARROW_WIDTH / 2}px ${DEFAULT_POPOVER_ARROW_WIDTH / 2}px;\n }\n\n [data-placement^='top'] > & {\n bottom: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n }\n\n [data-placement^='right'] > & {\n left: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n`\n\nconst BorderPath = styled.path`\n fill: var(--card-shadow-outline-color);\n`\n\nconst ShapePath = styled.path`\n fill: var(--card-bg-color);\n`\n\nexport const PopoverArrow = forwardRef(function PopoverArrow(\n props: Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n return (\n <Root data-ui=\"Popover__arrow\" {...props} ref={ref}>\n <svg\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n viewBox=\"0 0 27 11\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <BorderPath d=\"M1.18708 1C3.29803 1.0011 5.29585 1.95479 6.62414 3.59561L11.1683 9.20895C12.369 10.6922 14.631 10.6922 15.8317 9.20894L20.3759 3.59561C21.7042 1.95478 23.702 1.0011 25.8129 1H21.9436C21.0533 1.49255 20.2545 2.15618 19.5986 2.96641L15.0545 8.57975C14.254 9.56855 12.746 9.56855 11.9455 8.57975L7.40139 2.96642C6.74548 2.15618 5.94673 1.49255 5.05643 1H1.18708Z\" />\n <ShapePath d=\"M1.18342 0C3.59749 0 5.88246 1.0901 7.40138 2.96642L11.9455 8.57975C12.746 9.56855 14.254 9.56855 15.0545 8.57975L19.5986 2.96641C21.1175 1.0901 23.4025 0 25.8166 0H27H0H1.18342Z\" />\n </svg>\n </Root>\n )\n})\n","import {Strategy} from '@floating-ui/react-dom'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {FLOATING_STATIC_SIDES} from '../../constants'\nimport {ThemeColorSchemeKey} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins, Radius} from '../../types'\nimport {useLayer} from '../../utils'\nimport {Card} from '../card'\nimport {Flex} from '../flex'\nimport {DEFAULT_POPOVER_ARROW_WIDTH, DEFAULT_POPOVER_MARGINS} from './constants'\nimport {PopoverArrow} from './popoverArrow'\n\nconst Root = styled(Card)({\n '&:not([hidden])': {\n display: 'flex',\n },\n flexDirection: 'column',\n width: 'max-content',\n minWidth: 'min-content',\n})\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: 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 arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\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 position: strategy,\n top: y,\n left: x,\n width,\n zIndex,\n ...style,\n }),\n [strategy, style, width, x, y, zIndex],\n )\n\n const staticSide = placement && FLOATING_STATIC_SIDES[placement.split('-')[0]]\n\n const arrowStyle: CSSProperties = useMemo(() => {\n const style: CSSProperties = {\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }\n\n if (staticSide) style[staticSide] = 0 - DEFAULT_POPOVER_ARROW_WIDTH\n\n return style\n }, [arrowX, arrowY, staticSide])\n\n return (\n <Root\n data-ui=\"Popover\"\n {...restProps}\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 >\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 && <PopoverArrow ref={arrowRef} style={arrowStyle} />}\n </Root>\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 {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react'\nimport {useForwardedRef, useArrayProp, useElementSize, useMediaIndex} from '../../hooks'\nimport {ThemeColorSchemeKey, useTheme} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement} from '../../utils'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\nexport type {PopoverUpdateCallback}\n\n/** @public */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n matchReferenceWidth?: boolean\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n referenceElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\n}\n\n/** @public */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const theme = useTheme()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n arrow: arrowProp = true,\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = theme.sanity.layer?.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const forwardedRef = useForwardedRef(ref)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({mediaIndex, theme, width: widthArrayProp})\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>()\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = forwardedRef.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, forwardedRef, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(\n offset({\n mainAxis: arrowProp ? DEFAULT_POPOVER_DISTANCE : 0,\n }),\n )\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 eleement\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 ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\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 setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n forwardedRef.current = node\n refs.setFloating(node)\n },\n [forwardedRef, refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const childRef = (childProp as any)?.ref\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n if (!childProp || referenceElement) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n useEffect(() => {\n refs.setReference(referenceElement || null)\n }, [referenceElement, refs])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n 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 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 {open && (\n <>\n {portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n {popover}\n </Portal>\n ) : (\n popover\n )}\n </>\n )}\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\n\nPopover.displayName = 'Popover'\n","import {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 {theme} = props\n const {input} = theme.sanity\n const {focusRing} = input.radio\n const color = theme.sanity.color.input\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.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.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.default.enabled.bg2};\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.default.enabled.border},\n focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.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.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.invalid.enabled.bg2,\n })};\n &::after {\n background: ${color.invalid.enabled.bg2};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.default.readOnly.border};\n background: ${color.default.readOnly.bg};\n\n &::after {\n background: ${color.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.default.disabled.border};\n background: ${color.default.disabled.bg};\n\n &::after {\n background: ${color.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst Root = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\n/**\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {className, disabled, style, customValidity, readOnly, ...restProps} = props\n const ref = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </Root>\n )\n})\n","import {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'\nimport {ThemeFontSize} from '../../theme'\nimport {CSSObject} from '../../types/styled'\n\nfunction rootStyle(): ReturnType<typeof css> {\n return css`\n position: relative;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {theme} = props\n const font = theme.sanity.fonts.text\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.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 {theme} = props\n const {input} = theme.sanity\n const {focusRing} = input.select\n const color = theme.sanity.color.input\n\n return css`\n /* enabled */\n background-color: ${color.default.enabled.bg};\n color: ${color.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.default.hovered.bg};\n color: ${color.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.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.default.enabled.border},\n focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.default.readOnly.bg};\n color: ${color.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.default.disabled.bg};\n color: ${color.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.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 {theme, $fontSize} = props\n const {sizes} = theme.sanity.fonts.text\n\n return _responsive(theme.sanity.media, $fontSize, (sizeIndex) =>\n textSize(sizes[sizeIndex] || 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 {theme} = props\n const color = theme.sanity.color.input\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.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {SelectIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst Root = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * @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 = 1,\n readOnly,\n space = 3,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $radius={useArrayProp(radius)}\n $space={useArrayProp(space)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <SelectIcon />\n </Text>\n </IconBox>\n </Root>\n )\n})\n","import {rem, _responsive, ThemeProps} from '../../styles'\nimport {CSSObject} from '../../types/styled'\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 {theme} = props\n const {media, space} = theme.sanity\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveStackSpaceStyleProps>(stackBaseStyle, responsiveStackSpaceStyle)\n\n/**\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: StackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, space, ...restProps} = props\n\n return (\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {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 {theme} = props\n const {input} = theme.sanity\n const {focusRing} = input.switch\n const color = theme.sanity.color.input\n\n return css`\n --switch-bg-color: ${color.default.enabled.border};\n --switch-fg-color: ${color.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})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: var(--card-focus-ring-color);\n --switch-fg-color: ${color.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.default.hovered.border};\n --switch-fg-color: ${color.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: var(--card-focus-ring-color);\n --switch-fg-color: ${color.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.default.disabled.border};\n --switch-fg-color: ${color.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.default.readOnly.border};\n --switch-fg-color: ${color.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {theme} = props\n const {input} = theme.sanity\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, theme} = props\n const {input} = theme.sanity\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.1);\n\n ${checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `}\n\n ${$indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `}\n `\n}\n","import {forwardRef, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef} from '../../hooks'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst Root = styled.span(switchBaseStyles)\nconst Input = styled.input(switchInputStyles)\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\n\n/**\n * @public\n */\nexport const Switch = forwardRef(function Switch(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\n const ref = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root className={className} data-ui=\"Switch\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey, 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 * @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 = 1,\n weight,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n const rootTheme = useRootTheme()\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={useArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={useArrayProp(radius)}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </Root>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport {createElement, forwardRef, isValidElement, useCallback, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useForwardedRef, useCustomValidity} from '../../hooks'\nimport {\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveInputPaddingStyle,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey, 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 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 * @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 border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n icon,\n iconRight,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 1,\n readOnly,\n space: spaceProp = 3,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n const rootTheme = useRootTheme()\n\n const fontSize = useArrayProp(fontSizeProp)\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(icon)\n const $hasIconRight = Boolean(iconRight)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {icon && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && iconRight && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n border,\n fontSize,\n icon,\n iconRight,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <Root data-ui=\"TextInput\" tone={rootTheme.tone}>\n {prefixNode}\n\n <InputRoot>\n <Input\n data-as=\"input\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $scheme={rootTheme.scheme}\n $space={space}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\n\n {suffixNode}\n </Root>\n )\n})\n","import {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>()\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_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 {forwardRef} from 'react'\nimport styled from 'styled-components'\n\nconst Root = styled.div`\n position: absolute;\n pointer-events: none;\n width: 15px;\n height: 15px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n transform-origin: 7.5px 7.5px;\n }\n\n /* position: absolute;\n width: 15px;\n height: 15px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n &:not([hidden]) {\n display: block;\n }\n transform-origin: 7.5px 7.5px;\n } */\n\n [data-placement^='top'] > & {\n bottom: -27px;\n }\n\n [data-placement^='right'] > & {\n left: -27px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -27px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -27px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n`\n\nconst Border = styled.path`\n fill: var(--card-shadow-outline-color);\n`\n\nconst Shape = styled.path`\n fill: var(--card-bg-color);\n`\n\ninterface TooltipArrowProps {}\n\nexport const TooltipArrow = forwardRef(function TooltipArrow(\n props: TooltipArrowProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {...restProps} = props\n\n return (\n <Root data-ui=\"Tooltip__arrow\" {...restProps} ref={ref}>\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\">\n <Border d=\"M11.5266 1C11.032 1.32802 10.5837 1.73105 10.1995 2.20057L9.04792 3.6081C8.24771 4.58614 6.7523 4.58614 5.95209 3.6081L4.80047 2.20057C4.41632 1.73105 3.96796 1.32802 3.47341 1H0.156727C1.65639 1 3.07687 1.67313 4.02651 2.83381L5.17813 4.24134C6.37844 5.70839 8.62156 5.70839 9.82187 4.24134L10.9735 2.83381C11.9231 1.67313 13.3436 1 14.8433 1H11.5266Z\" />\n <Shape d=\"M0.156725 0C1.95632 0 3.66089 0.80776 4.80047 2.20057L5.95209 3.6081C6.75229 4.58614 8.24771 4.58614 9.04791 3.6081L10.1995 2.20057C11.3391 0.80776 13.0437 0 14.8433 0H15H0H0.156725Z\" />\n </svg>\n </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../../lib/globalScope'\nimport {TooltipDelayGroupContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tooltipDelayGroup')\n\nglobalScope[key] = globalScope[key] || createContext<TooltipDelayGroupContextValue | null>(null)\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext: React.Context<TooltipDelayGroupContextValue | null> =\n globalScope[key]\n","import {useContext} from 'react'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {useMemo} from 'react'\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\nimport {useTooltipDelayGroup} from './useTooltipDelayGroup'\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * @public 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 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 isInsideContext = useTooltipDelayGroup()\n\n if (isInsideContext) {\n throw new Error(\n 'TooltipDelayGroupProvider cannot be nested inside another TooltipDelayGroupProvider',\n )\n }\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n isGroupActive: isGroupActive,\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n Middleware,\n RootBoundary,\n size,\n} from '@floating-ui/react-dom'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n CSSProperties,\n ForwardedRef,\n useId,\n} from 'react'\nimport styled from 'styled-components'\nimport {FLOATING_STATIC_SIDES} from '../../constants'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {ThemeColorSchemeKey, useTheme} from '../../theme'\nimport {Placement} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement} from '../../utils'\nimport {Card} from '../card'\nimport {Delay} from '../types'\nimport {DEFAULT_FALLBACK_PLACEMENTS} from './constants'\nimport {TooltipArrow} from './tooltipArrow'\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 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 portal?: boolean | string\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n /**\n * @public Adds a delay to open or close the tooltip. Defaults to 0.\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 delay?: Delay\n}\n\nconst Root = styled(Layer)`\n pointer-events: none;\n`\n\n/**\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const theme = useTheme()\n const {\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 3,\n placement: placementProp = 'bottom',\n portal,\n scheme,\n shadow = 2,\n zOffset = theme.sanity.layer?.tooltip.zOffset,\n delay,\n ...restProps\n } = props\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const forwardedRef = useForwardedRef(ref)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n const 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: 4,\n rootBoundary,\n mainAxis: false,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: 3}))\n\n // Set width and height on the floating element\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements}) {\n Object.assign(elements.floating.style, {\n maxWidth: `${availableWidth - 4 * 2}px`, // the padding is `4px`\n maxHeight: `${availableHeight - 4 * 2}px`, // the padding is `4px`\n })\n },\n }),\n )\n\n // Shift the tooltip so its sits with the boundary eleement\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: 4,\n }),\n )\n\n // Place arrow\n ret.push(arrow({element: arrowRef, padding: 2}))\n\n return ret\n }, [boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const staticSide = placement && FLOATING_STATIC_SIDES[placement.split('-')[0]]\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const arrowStyle: CSSProperties = useMemo(() => {\n const style: CSSProperties = {\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }\n\n if (staticSide) style[staticSide] = -15\n\n return style\n }, [arrowX, arrowY, staticSide])\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) => {\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 delayGroupContext.setIsGroupActive(open, openDelay)\n delayGroupContext.setOpenTooltipId(tooltipId, openDelay)\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, closeDelay)\n }\n } else {\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, open ? openDelay : closeDelay)\n }\n },\n [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\n )\n\n const handleBlur = useCallback(() => handleIsOpenChange(false), [handleIsOpenChange])\n const handleFocus = useCallback(() => handleIsOpenChange(true), [handleIsOpenChange])\n const handleMouseEnter = useCallback(() => handleIsOpenChange(true), [handleIsOpenChange])\n const handleMouseLeave = useCallback(() => handleIsOpenChange(false), [handleIsOpenChange])\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 (!isOpen) return\n\n function handleWindowMouseMove(event: MouseEvent) {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === event.target ||\n (event.target instanceof Node && referenceElement.contains(event.target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }\n\n window.addEventListener('mousemove', handleWindowMouseMove)\n\n return () => {\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }, [isOpen, referenceElement, handleIsOpenChange])\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content) handleIsOpenChange(false)\n }, [content, handleIsOpenChange])\n\n // Update reference\n useEffect(() => refs.setReference(referenceElement), [referenceElement, refs])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n forwardedRef.current = node\n refs.setFloating(node)\n },\n [forwardedRef, refs],\n )\n\n const childRef: ForwardedRef<HTMLElement | null> = (childProp as any)?.ref\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n\n // childRef.current = node\n setReferenceElement(node)\n },\n [childRef],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n ref: setReference,\n })\n }, [childProp, handleBlur, handleFocus, handleMouseEnter, handleMouseLeave, setReference])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const root = (\n <Root\n data-ui=\"Tooltip\"\n {...restProps}\n ref={setFloating}\n style={floatingStyles}\n zOffset={zOffset}\n >\n <Card\n data-ui=\"Tooltip__card\"\n data-placement={placement}\n padding={padding}\n radius={3}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n <TooltipArrow ref={setArrow} style={arrowStyle} />\n </Card>\n </Root>\n )\n\n return (\n <>\n {child}\n\n {showTooltip && (\n <>\n {portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n {root}\n </Portal>\n ) : (\n root\n )}\n </>\n )}\n </>\n )\n})\n","import {SpinnerIcon} from '@sanity/icons'\nimport styled, {keyframes} from 'styled-components'\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const Root = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n ChangeEvent,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n Ref,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, Root} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n 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 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 value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n ref: Ref<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 3,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n const forwardedRef = useForwardedRef(ref)\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n }\n },\n [focused, onFocus],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const setRef = useCallback(\n (el: HTMLInputElement | null) => {\n inputElementRef.current = el\n forwardedRef.current = el\n },\n [forwardedRef],\n )\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n onFocus: handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [currentOption, openButtonProps, renderValue, value],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={setRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <Root\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </Root>\n )\n})\n\n/**\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => ReactElement\n","import styled from 'styled-components'\nimport {Button} from '../../primitives'\n\nexport const Root = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {Children, forwardRef, Fragment, isValidElement, useCallback, useMemo, useState} from 'react'\nimport {useArrayProp, useClickOutside} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {ExpandButton, Root} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = useArrayProp(spaceRaw)\n const [open, setOpen] = useState(false)\n const [expandElement, setExpandElement] = useState<HTMLButtonElement | null>(null)\n const [popoverElement, setPopoverElement] = useState<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutside(collapse, [expandElement, popoverElement])\n\n const rawItems = useMemo(\n () =>\n Children.toArray(children).filter((child) => {\n return isValidElement(child)\n }),\n [children],\n )\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={setPopoverElement}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={setExpandElement}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, maxLength, open, rawItems, space])\n\n return (\n <Root data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Root>\n )\n})\n","import {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\nimport {CSSObject} from '../../types/styled'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const color = theme.sanity.color.base\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.shadow.umbra,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\nconst key = Symbol.for('@sanity/ui/context/dialog')\n\nglobalScope[key] = globalScope[key] || createContext<DialogContextValue>({version: 0.0})\n\n/**\n * @internal\n */\nexport const DialogContext: React.Context<DialogContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {forwardRef, useCallback, useEffect, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {useArrayProp, useClickOutside, useForwardedRef, useGlobalKeyDown} from '../../hooks'\nimport {Box, Button, Card, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {ThemeColorSchemeKey, useTheme} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {\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\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)<ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps>(\n responsivePaddingStyle,\n dialogStyle,\n responsiveDialogPositionStyle,\n)\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(Card)`\n position: relative;\n z-index: 2;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n bottom: -1px;\n border-bottom: 1px solid var(--card-hairline-soft-color);\n }\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 border-top: 1px solid var(--card-hairline-soft-color);\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const forwardedRef = useForwardedRef(ref)\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const localContentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (forwardedRef.current) {\n focusFirstDescendant(forwardedRef.current)\n }\n }, [autoFocus, forwardedRef])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutside(\n useCallback(\n (event: MouseEvent) => {\n if (!isTopLayer || !onClickOutside) return\n\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n },\n [boundaryElement, isTopLayer, onClickOutside, portalElement],\n ),\n [rootElement],\n )\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef],\n )\n\n const setContentRef = useCallback(\n (el: HTMLDivElement | null) => {\n localContentRef.current = el\n if (typeof contentRef === 'function') contentRef(el)\n else if (contentRef) contentRef.current = el\n },\n [contentRef],\n )\n\n return (\n <DialogContainer data-ui=\"DialogCard\" width={width}>\n <DialogCardRoot radius={radius} ref={setRef} scheme={scheme} shadow={shadow}>\n <DialogLayout direction=\"column\">\n {showHeader && (\n <DialogHeader>\n <Flex>\n <Box flex={1} padding={4}>\n {header && (\n <Text id={labelId} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box padding={2}>\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={3}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={setContentRef} tabIndex={-1}>\n {children}\n </DialogContent>\n\n {footer && <DialogFooter>{footer}</DialogFooter>}\n </DialogLayout>\n </DialogCardRoot>\n </DialogContainer>\n )\n})\n\n/**\n * @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 theme = useTheme()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 3,\n cardShadow = 4,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 4,\n portal: portalProp,\n position: positionProp = dialog.position || 'fixed',\n scheme,\n width: widthProp = 0,\n zOffset: zOffsetProp = dialog.zOffset || theme.sanity.layer?.dialog.zOffset,\n ...restProps\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>()\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Root\n {...restProps}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </Root>\n </Portal>\n )\n})\n","import {useMemo} from 'react'\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Inline, KBD} from '../../primitives'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n keys?: string[]\n}\n\nconst Root = styled.kbd`\n &:not([hidden]) {\n display: block;\n }\n font: inherit;\n`\n\nconst Key = styled(KBD)`\n &:not([hidden]) {\n display: block;\n }\n`\n\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 = 1, ...restProps} = props\n const space = useArrayProp(spaceProp)\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <Root data-ui=\"Hotkeys\" {...restProps} ref={ref}>\n <Inline as=\"span\" space={space}>\n {keys.map((key, i) => (\n <Key fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </Key>\n ))}\n </Inline>\n </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n}\n\nconst key = Symbol.for('@sanity/ui/context/menu')\n\nglobalScope[key] = globalScope[key] || createContext<MenuContextValue | null>(null)\n\nexport const MenuContext: React.Context<MenuContextValue | null> = globalScope[key]\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {useCallback, useEffect, useRef, useState} from 'react'\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n rootElement: HTMLDivElement | null\n setRootElement: (el: HTMLDivElement | null) => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = elementsRef.current[activeIndex] || null\n const mounted = Boolean(rootElement)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElement, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElement, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElement?.focus()\n }, [setActiveIndex, rootElement])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = window.requestAnimationFrame(() => {\n const _activeIndex = activeIndexRef.current\n\n if (_activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n activeIndexRef.current = currentIndex\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n activeIndexRef.current = currentIndex\n }\n }\n\n return\n }\n\n const element = elementsRef.current[_activeIndex] || null\n\n element?.focus()\n })\n\n return () => {\n window.cancelAnimationFrame(rafId)\n }\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n }\n}\n","import {forwardRef, useCallback, useEffect, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useClickOutside, useForwardedRef, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {ResponsivePaddingProps} from '../../primitives/types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends ResponsivePaddingProps {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n focusFirst?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n focusLast?: boolean\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemSelect?: (index: number) => void\n originElement?: HTMLElement | null\n registerElement?: (el: HTMLElement) => () => void\n shouldFocus?: 'first' | 'last' | null\n space?: number | number[]\n}\n\nconst Root = styled(Box)`\n outline: none;\n overflow: auto;\n`\n\n/**\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'role' | 'tabIndex'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusFirst,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusLast,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus = (props.focusFirst && 'first') || (props.focusLast && 'last') || null,\n space = 1,\n ...restProps\n } = props\n\n const forwardedRef = useForwardedRef(ref)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n } = useMenuController({onKeyDown, originElement, shouldFocus})\n\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef, setRootElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutside(\n useCallback(\n (event) => isTopLayer && onClickOutside && onClickOutside(event),\n [isTopLayer, onClickOutside],\n ),\n [rootElement],\n )\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n // Register root element (for nested menus)\n useEffect(() => {\n if (!rootElement || !registerElement) return\n\n return registerElement(rootElement)\n }, [registerElement, rootElement])\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <Root\n data-ui=\"Menu\"\n {...restProps}\n onKeyDown={handleKeyDown}\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack space={space}>{children}</Stack>\n </Root>\n </MenuContext.Provider>\n )\n})\n","import {cloneElement, forwardRef, useCallback, useMemo, useState, useEffect, useRef} from 'react'\nimport {isElement} from 'react-is'\nimport {Popover, PopoverProps} from '../../primitives'\nimport {ThemeColorSchemeKey} from '../../theme'\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 * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n ref: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => {\n setChildMenuElements((els) => {\n return els.filter((_el) => _el !== el)\n })\n }\n }, [])\n\n const menuProps: MenuProps = useMemo(\n () => ({\n 'aria-labelledby': id,\n onBlurCapture: handleBlur,\n onClickOutside: handleMenuClickOutside,\n onEscape: handleMenuEscape,\n onItemClick: handleItemClick,\n originElement: buttonElement,\n registerElement,\n shouldFocus,\n }),\n [\n buttonElement,\n handleMenuClickOutside,\n handleMenuEscape,\n handleItemClick,\n id,\n handleBlur,\n registerElement,\n shouldFocus,\n ],\n )\n\n const menu = isElement(menuProp) ? cloneElement(menuProp, menuProps) : null\n\n const setButtonRef = useCallback(\n (el: HTMLButtonElement | null) => {\n if (typeof ref === 'function') {\n ref(el)\n } else if (ref) {\n ref.current = el\n }\n\n setButtonElement(el)\n },\n [ref],\n )\n\n const button = useMemo(\n () =>\n isElement(buttonProp)\n ? cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n onClick: handleButtonClick,\n onKeyDown: handleButtonKeyDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n ref: setButtonRef,\n selected: open,\n })\n : null,\n [buttonProp, handleButtonClick, handleButtonKeyDown, id, open, setButtonRef],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\n","import styled from 'styled-components'\n\n/**\n * @public\n */\nexport const MenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\n","import {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\nimport {SelectableTone} from '../../types/selectable'\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: 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, theme} = props\n const {base, muted, selectable} = theme.sanity.color\n // @todo: remove use of `muted` here\n const tone = selectable ? selectable[$tone] || selectable.default : muted[$tone] || muted.default\n\n return css`\n ${_colorVarsStyle(base, 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 ${_colorVarsStyle(base, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_colorVarsStyle(base, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n\n &:active {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_colorVarsStyle(base, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n &[data-selected] {\n ${_colorVarsStyle(base, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n\n &:active {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${theme.sanity.styles?.card?.root}\n `\n}\n","import styled from 'styled-components'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle,\n)\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {createElement, isValidElement, useCallback, useEffect, useRef, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {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,\n icon,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter = menu.onMouseEnter,\n registerElement,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const shouldFocusRef = useRef<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (onClick) onClick(event)\n\n shouldFocusRef.current = 'first'\n\n setOpen(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n if (onItemClick) onItemClick()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n const childMenu = (\n <Menu\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocusRef.current}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n shouldFocusRef.current = 'first'\n\n setOpen(true)\n setWithinMenu(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n data-as={as}\n data-ui=\"MenuGroup\"\n forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n $radius={useArrayProp(radius)}\n $tone={tone}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n ref={setRootElement}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n <Box padding={padding}>\n <Flex>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n <Box flex={1} marginLeft={icon ? space : undefined}>\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {text}\n </Text>\n </Box>\n\n <Box marginLeft={space}>\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Box>\n </Flex>\n </Box>\n </Selectable>\n </Popover>\n )\n}\n","import {\n createElement,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {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 = 2,\n hotkeys,\n icon,\n iconRight,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter = menu.onMouseEnter,\n onItemMouseLeave = menu.onMouseLeave,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const ref = useForwardedRef(forwardedRef)\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n },\n [ref],\n )\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...restProps}\n aria-pressed={as === 'button' && pressed}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={useArrayProp(radius)}\n $padding={useArrayProp(0)}\n $tone={tone}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n role=\"menuitem\"\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n {(icon || text || iconRight) && (\n <Box as=\"span\" {...paddingProps}>\n <Flex as=\"span\">\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n {text && (\n <Box\n flex={1}\n marginLeft={icon ? space : undefined}\n marginRight={iconRight ? space : undefined}\n >\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Box marginLeft={space} style={{marginTop: -4, marginBottom: -4}}>\n <Hotkeys fontSize={fontSize} keys={hotkeys} />\n </Box>\n )}\n\n {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {forwardRef, useEffect, useState} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box} from '../../primitives'\nimport {BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst Root = styled(Box)<{$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n skeletonStyle,\n)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {animated = false, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Root\n {...restProps}\n $animated={animated}\n $radius={useArrayProp(radius)}\n $visible={visible}\n ref={ref}\n />\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {_responsive} from '../../styles'\nimport {Theme, ThemeFontKey} from '../../theme'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst Root = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>(({\n $size,\n $style,\n theme,\n}: {\n $size: number[]\n $style: ThemeFontKey\n theme: Theme\n}) => {\n const {media} = theme.sanity\n const font = theme.sanity.fonts[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = font.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\n","import {forwardRef, useCallback, useEffect, useRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef} from '../../hooks'\nimport {Button} from '../../primitives'\nimport {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n id: string\n icon?: React.ElementType | React.ReactNode\n focused?: boolean\n fontSize?: number | number[]\n label?: React.ReactNode\n padding?: number | number[]\n selected?: boolean\n tone?: ButtonTone\n}\n\nconst CustomButton = styled(Button)`\n max-width: 100%;\n`\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps &\n Omit<React.HTMLProps<HTMLButtonElement>, 'aria-controls' | 'as' | 'id' | 'label' | 'type'>,\n forwardedRef: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const elementRef = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n const ref = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (elementRef.current) elementRef.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n const setRef = (el: HTMLButtonElement | null) => {\n elementRef.current = el\n ref.current = el\n }\n\n return (\n <CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n radius=\"full\"\n ref={setRef}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\n","import {cloneElement, forwardRef, useCallback, useMemo, useState} from 'react'\nimport styled from 'styled-components'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.ReactElement | null | undefined | false>\n}\n\nfunction _isReactElement(node: unknown): node is React.ReactElement {\n return Boolean(node)\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n & > div {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n box-sizing: border-box;\n }\n`\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children = useMemo(() => childrenProp.filter(_isReactElement), [childrenProp])\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => handleTabFocus(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleTabFocus = useCallback((tabIdx: number) => {\n setFocusedIndex(tabIdx)\n }, [])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n})\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n id: string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport styled from 'styled-components'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\nimport {ThemeColorToneKey} from '../../theme'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose?: () => void\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}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n}\n\nconst Root = styled(Card)`\n pointer-events: all;\n`\n\nconst TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\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, title, status, ...restProps} = props\n const cardTone = status ? STATUS_CARD_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={2}\n shadow={2}\n tone={cardTone}\n >\n <Flex align=\"flex-start\">\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && <Text weight=\"semibold\">{title}</Text>}\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 onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </Flex>\n </Root>\n )\n}\n","import {useEffect, useReducer} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n // Use useReducer instead of useState as it's more low-level and creates the least amount of functions for the garbage collector to clean up\n const [mounted, mount] = useReducer(() => true, false)\n\n useEffect(mount, [mount])\n\n return mounted\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {ToastContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/toast')\n\nglobalScope[key] = globalScope[key] || createContext<ToastContextValue | null>(null)\n\nexport const ToastContext: React.Context<ToastContextValue | null> = globalScope[key]\n","import {AnimatePresence, motion} from 'framer-motion'\nimport {useCallback, useEffect, useMemo, useRef, useState, startTransition} from 'react'\nimport styled from 'styled-components'\nimport {useMounted} from '../../hooks/useMounted'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nconst Root = styled(Layer)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n`\n\nconst ToastContainer = styled.div`\n box-sizing: border-box;\n position: absolute;\n right: 0;\n bottom: 0;\n max-width: 420px;\n width: 100%;\n`\n\nlet toastId = 0\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.ReactElement {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, _setState] = useState<ToastState>([])\n\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n\n const push = useCallback((params: ToastParams) => {\n // Wrap setState in startTransition to allow React to give input state updates higher priority\n const setState: typeof _setState = (state) => startTransition(() => _setState(state))\n\n const id = params.id || String(toastId++)\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState): ToastState => {\n const idx = prevState.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.slice(0)\n\n toasts.splice(idx, 1)\n\n return toasts\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState): ToastState => {\n return prevState\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ])\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n [],\n )\n\n const value: ToastContextValue = useMemo(() => ({version: 0.0, push}), [push])\n const mounted = useMounted()\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n\n {mounted && (\n <Root data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.map(({dismiss, id, params}) => (\n <motion.div\n animate={{opacity: 1, y: 0, scale: 1}}\n exit={{opacity: 0, scale: 0.5, transition: {duration: 0.2}}}\n initial={{opacity: 0, y: 32, scale: 0.25}}\n key={id}\n layout=\"position\"\n transition={{type: 'spring', damping: 30, stiffness: 400}}\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </Root>\n )}\n </ToastContext.Provider>\n )\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {TreeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tree')\n\nglobalScope[key] = globalScope[key] || createContext<TreeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const TreeContext: React.Context<TreeContextValue | null> = globalScope[key]\n","import {forwardRef, memo, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useForwardedRef} from '../../hooks'\nimport {Stack} from '../../primitives'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n space?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {children, space = 1, onFocus, ...restProps} = props\n const forwardedRef = useForwardedRef(ref)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!forwardedRef.current) return\n const _itemElements = Array.from(\n forwardedRef.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children, forwardedRef])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={forwardedRef}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\n\nTree.displayName = 'Tree'\n","import {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\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 &: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\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const {theme} = props\n const $tone = 'default'\n const {base, muted, selectable} = theme.sanity.color\n // @todo: remove use of `muted` here\n const tone = selectable ? selectable[$tone] || selectable.default : muted[$tone] || muted.default\n\n return css`\n /* <div role=\"none\"><a data-ui=\"TreeItem__box\" role=\"treeitem\" tabIndex=\"0\"></div> */\n &[role='none'] {\n & > [role='treeitem'] {\n ${_colorVarsStyle(base, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_colorVarsStyle(base, tone.selected)}\n }\n }\n }\n\n /* <div role=\"treeitem\" tabIndex=\"0\"><div data-ui=\"TreeItem__box\"></div> */\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_colorVarsStyle(base, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_colorVarsStyle(base, 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, theme} = props\n const {space} = theme.sanity\n\n return css`\n padding-left: ${rem(space[2] * $level)};\n\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n","import {useContext} from 'react'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo} from 'react'\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.ReactElement {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {createElement, memo, useCallback, useEffect, useId, useMemo, useRef} from 'react'\nimport styled from 'styled-components'\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {ThemeFontWeightKey} from '../../theme'\nimport {\n treeItemRootStyle,\n treeItemRootColorStyle,\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: BoxProps['as']\n padding?: number | number[]\n space?: number | number[]\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst Root = memo(styled.li(treeItemRootStyle, treeItemRootColorStyle))\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.ReactElement {\n const {\n children,\n expanded: expandedProp = false,\n fontSize,\n href,\n icon,\n id: idProp,\n linkAs,\n muted,\n onClick,\n padding = 3,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const rootRef = useRef<HTMLLIElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{visibility: icon || children ? 'visible' : 'hidden', pointerEvents: 'none'}}\n >\n {icon && (\n <Text muted={muted} size={fontSize} weight={weight}>\n {createElement(icon)}\n </Text>\n )}\n {!icon && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n }\n\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n})\n"],"names":["EMPTY_ARRAY","EMPTY_RECORD","FLOATING_STATIC_SIDES","top","right","bottom","left","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","concat","_responsive","media","values","callback","statements","map","statement","mediaIndex","_getArrayProp","val","defaultVal","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","arguments","length","undefined","Error","sanity","spaceIndex","space","responsiveFont","fontKey","$size","$weight","fonts","family","sizes","weights","fontWeight","regular","defaultSize","base","position","fontFamily","padding","margin","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","transform","marginTop","marginBottom","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","__perf_hash__","useMemo","JSON","stringify","_getElements","element","elementsArg","ret","el","push","filter","Boolean","useClickOutside","listener","boundaryElement","setElement","useState","elements","setElements","elementsRef","useRef","useEffect","prevElements","current","nextElements","includes","handleWindowMouseDown","evt","target","Node","contains","window","addEventListener","removeEventListener","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","document","createEvent","initEvent","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","type","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","size$1","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","processObserver","entries","processTarget","ot","entry","targetDepth","lastReportedSize","resizeObserverCallback","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process","trigger","notify","cb","queueMicroTask","toggle_1","el_1","createTextNode","config","characterData","MutationObserver","observe","textContent","queueResizeObserver","ResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","n","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_ref","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","elementSize","useGlobalKeyDown","onKeyDown","multiplyChannel","b","s","multiply","multiply$1","r","clamp","g","num","max","min","screenChannel","screen","screen$1","hexToRgb","hex","hexR","hexG","hexB","parseInt","rgbToHex","_ref2","rgbToHsl","_ref3","cmin","cmax","delta","h","l","abs","toFixed","hslToRgb","hsl","c","m","HEX_CHARS","HSL_RE","isHexChars","str","isHex","parseHsl","res","exec","parseColor","color","startsWith","rgba","a","rgb","createButtonTones","opts","dark","solid","muted","mode","default","button","primary","positive","caution","critical","createButtonModes","ghost","bleed","createCardStates","enabled","card","state","disabled","hovered","pressed","selected","black","white","colors","lightest","lighter","light","darker","darkest","transparent","spots","gray","red","orange","yellow","green","cyan","blue","purple","magenta","tones","bg","fg","focusRing","defaultOpts","_ref4","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","_ref5","tone","bg2","iconColor","accent","link","code","_ref6","_ref7","_ref8","input","placeholder","selectable","_ref9","spot","_ref10","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","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","createInputModes","readOnly","invalid","createMutedTones","createSelectableTones","_createSelectableStates","createSolidTones","createSpot","createColorTheme","partialOpts","builders","_createColorScheme","_createColor","_multiply","_screen","defaultTints","text_primary","text_secondary","text_inactive","bg_base","bg_base_hover","bg_base_active","bg_accent","bg_accent_hover","bg_accent_active","bg_tint","icon_default","icon_inverted","border_base","border_accent","border_accent_inverted","hues","colorTints","getColorValue","tints","getColorHex","NEUTRAL_TONES","_ref11","skeletonFrom","_ref12","mix","mix2","isNeutral","_ref13","_ref14","_ref15","_ref16","_ref17","_ref18","_ref19","mainShade","secondaryShade","medium","semibold","bold","heading","label","text","studioTheme","avatar","distance","offset","textWeight","container","radius","shadows","checkbox","radio","markSize","switch","transitionDurationMs","transitionTimingFunction","select","DEFAULT_THEME_LAYER","dialog","zOffset","popover","tooltip","getGlobalScope","globalThis","self","globalScope","Symbol","for","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","themeProp","rootColor","layer","rootLayer","restTheme","colorScheme","version","jsx","Provider","StyledThemeProvider","isRecord","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","MEDIA_STORE_CACHE","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","matchMedia","getSnapshot","matches","onStoreChange","disposeFns","handleChange","disposeFn","getServerSnapshot","getServerSnapshot$2","useMediaIndex","store","useSyncExternalStore","MEDIA_QUERY_CACHE","getMatchMedia","getMatchMedia$1","getSnapshot$1","getServerSnapshot$1","usePrefersDark","usePrefersReducedMotion","useIsomorphicEffect","useLayoutEffect","useForwardedRef","ref","innerRef","useCustomValidity","customValidity","setCustomValidity","BORDER_VALUE","responsiveBorderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","focusRingStyle","focusRingOutsetWidth","focusRingInsetWidth","bgColor","join","GRID_CSS","GRID_AUTO_COLUMS","auto","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","spaceScale","len","_padding","_space","_fontSize","_","emSize","p","styles","responsiveInputPaddingIconRightStyle","_c","ROOT_STYLE","css","__template","textInputRootStyle","textInputBaseStyle","$scheme","$tone","font","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","$radius","borderRadius","toBoxShadow","shadowStyle","boxShadow","responsiveShadowStyle","$shadow","textBaseStyle","$accent","$muted","Root","styled","div","SpanWithTextOverflow","span","Text","forwardRef","childrenProp","textOverflow","weight","restProps","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","zIndex","opacity","transition","$color","backgroundColor","userSelect","WebkitFontSmoothing","appearance","responsiveAvatarSizeStyle","avatarSize","textTransform","strokeWidth","strokeDasharray","strokeLinecap","Arrow","BgStroke","ellipse","Stroke","Initials","Avatar","as","asProp","colorKey","src","title","onImageLoadError","arrowPosition","arrowPositionProp","animateArrowFrom","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","handleImageError","useCallback","initialsSize","jsxs","viewBox","d","patternContentUnits","href","onError","cx","cy","rx","ry","vectorEffect","Fragment","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","AvatarCounter","count","counterSize","childrenToElementArray","childrenArray","isFragment","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","AvatarStack","maxLength","maxLengthProp","child","visibleCount","extraCount","visibleChildren","childIndex","cloneElement","String","Box","marginX","marginY","marginRight","paddingX","paddingY","labelBaseStyle","Label","badgeStyle","$mode","palette","cursor","Badge","Flex","forwardedAs","rotate","keyframes","Spinner","SpinnerIcon","_colorVarsStyle","checkered","_d","_e","_f","_g","_h","buttonBaseStyles","buttonTheme","defaultBoxShadow","combineBoxShadow","_len","boxShadows","_key","buttonColorStyles","LoadingBox","Button","icon","iconRight","justifyProp","loading","paddingProp","paddingXProp","paddingYProp","paddingTopProp","paddingBottomProp","paddingLeftProp","paddingRightProp","radiusProp","spaceProp","boxProps","isValidElement","createElement","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","Card","__unstable_checkered","__unstable_focusRing","toneProp","rootTheme","checkboxBaseStyles","inputElementStyles","Input","Checkbox","forwardedRef","checked","indeterminate","CheckmarkIcon","RemoveIcon","codeSyntaxHighlightingStyle","_ref20","codeBaseStyle","pre","Code","language","languageProp","registered","Refractor","hasLanguage","inline","containerBaseStyle","responsiveContainerWidthStyle","$width","maxWidth","Container","Grid","headingBaseStyle","Heading","inlineBaseStyle","verticalAlign","inlineSpaceStyle","Inline","kbdStyle","kbd","KBD","BoundaryElementContext","BoundaryElementProvider","DEFAULT_VALUE","useBoundaryElement","findMaxBreakpoints","bp","findMinBreakpoints","ElementQuery","innerWidth","setRef","ErrorBoundary","Component","constructor","__publicField","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","getLayerContext","contextValue","LayerContext","useLayer","err","_raf","fn","frameId","_raf2","innerDispose","outerDispose","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","_hasFocus","activeElement","isFocusable","tabIndex","getAttribute","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","LayerProvider","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","parentLevel","level","maxMediaIndex","setChildLayers","isTopLayer","childLevel","parentDispose","prevLen","nextState","v","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","becameTopLayer","handleFocus","rootElement","Layer","elementKey","defaultContextValue","setAttribute","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","useUnique","valueRef","_isEqual","objA","objB","keysA","keysB","every","__BROWSER__","PortalProvider","__unstable_elements","elementsProp","SrOnly","ItemWrapper","VirtualList","getItemKey","items","onChange","renderItem","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","_scrollEl","scrollEl","handleScroll","handleScroll2","passive","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","wrapperStyle","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","apply","margins","args","placement","platform","rects","floating","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","maxHeight","floatingW","floatingH","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","w","currentWidth","calcMaxWidth","boundaryWidth","BorderPath","path","ShapePath","PopoverArrow","xmlns","PopoverCard","memo","PopoverCard2","__unstable_margins","marginsProp","arrowRef","arrowX","arrowY","strategy","xProp","yProp","rootStyle","staticSide","split","arrowStyle","displayName","Popover","Popover2","boundaryElementContext","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","flip","mainAxis","_ref21","_currentWidth","_maxWidth","shift","hide","middlewareData","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","arrowEl","setFloating","setReference","childRef","hidden","radioBaseStyle","inputElementStyle","dist","Radio","inputBaseStyle","inputColorStyle","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","IconBox","Select","SelectIcon","stackBaseStyle","responsiveStackSpaceStyle","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","Representation","Track","Thumb","Switch","InputRoot","textarea","Presentation","TextArea","CLEAR_BUTTON_BOX_STYLE","attrs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","clearButton","fontSizeProp","onClear","prefix","suffix","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","clearButtonPadding","clearButtonProps","clearButtonNode","CloseIcon","onClick","onMouseDown","suffixNode","useDelayedState","initialState","setState","delayedAction","onStateChange","delay","action","clearTimeout","setTimeout","Border","Shape","TooltipArrow","TooltipDelayGroupContext","useTooltipDelayGroup","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","isInsideContext","openDelay","closeDelay","close","Tooltip","fallbackPlacementsProp","setReferenceElement","_ref22","assign","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","minimumGroupDeactivateDelay","groupDeactivateDelay","handleBlur","handleMouseEnter","handleMouseLeave","handleWindowMouseMove","isHoveringReference","onBlur","onMouseEnter","onMouseLeave","ListBox","AnimatedSpinnerIcon","AutocompleteOption","onSelect","handleClick","handleKeyDown","currentTarget","role","autocompleteReducer","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","InnerAutocomplete","filterOption","filterOptionProp","listBox","onQueryChange","openButton","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","_ref23","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","focusInside","e","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","autoCapitalize","autoComplete","autoCorrect","inputMode","spellCheck","handleListBoxKeyDown","active","results","inputElement","Autocomplete","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElement","setExpandElement","popoverElement","setPopoverElement","collapse","expand","rawItems","Children","toArray","beforeLength","afterLength","dialogStyle","_ref24","background","responsiveDialogPositionStyle","$position","DialogContext","useDialog","isTargetWithinScope","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","footer","header","onClickOutside","onClose","portalProp","setRootElement","localContentRef","labelId","showCloseButton","showHeader","setContentRef","Dialog","cardRadius","cardRadiusProp","cardShadow","positionProp","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","rootClickTimeoutRef","handleRootClick","DialogProvider","Key","Hotkeys","MenuContext","_isFocusable","_getFocusableElements","_getDOMPath","parentElement","unshift","EMPTY_PATH","_sortElements","_sort","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","focusableElements","currentIndex","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","_activeIndex","Menu","focusFirst","focusLast","onEscape","onItemClick","onItemSelect","registerElement","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","onOpen","deprecated_placement","popoverScheme","deprecated_popoverScheme","deprecated_portal","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleItemClick","els","_el","menuProps","onBlurCapture","setButtonRef","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","shouldFocusRef","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","ChevronRightIcon","MenuItem","hotkeys","selectedProp","paddingProps","keyframe","animation","skeletonStyle","_ref25","$visible","_ref26","$animated","Skeleton","animated","visible","setVisible","_ref27","$style","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","CustomButton","Tab","elementRef","focusedRef","_isReactElement","CustomInline","TabList","setFocusedIndex","tabs","handleTabFocus","numTabs","tabIdx","prevIndex","TabPanel","STATUS_CARD_TONE","warning","success","ROLES","TextBox","Toast","closable","description","cardTone","useMounted","ToastContext","ToastContainer","toastId","ToastProvider","_setState","toastsRef","startTransition","duration","dismiss","timeoutId","prevState","findIndex","t","toasts","AnimatePresence","initial","_ref28","motion","animate","scale","exit","layout","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","segments","pop","j","k","_findNextItemElement","_focusItemElement","TreeContext","Tree","Tree2","setFocusedElement","setItemElements","stateRef","registerItem","newState","setExpanded","itemState","nextEl","prevEl","itemPath","parentKey","parentState","focusedKey","_itemElements","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","useTree","tree","TreeGroup","li","TreeItemBox","ToggleArrowText","TreeItem","expandedProp","idProp","linkAs","rootRef","treeitemRef","_id","closest","click","visibility","pointerEvents","ToggleArrowRightIcon"],"mappings":"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","x_google_ignoreList":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]}
1
+ {"version":3,"file":"index.js","sources":["../src/constants.ts","../src/styles/helpers.ts","../src/styles/font/responsiveFont.ts","../src/styles/font/codeFontStyle.ts","../src/styles/font/headingFontStyle.ts","../src/styles/font/labelFontStyle.ts","../src/styles/font/textAlignStyle.ts","../src/styles/font/textFontStyle.ts","../src/hooks/useArrayProp.ts","../src/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/observers/resizeObserver.ts","../src/observers/elementSizeObserver.ts","../src/hooks/useElementSize.ts","../src/hooks/useElementRect/useElementRect.ts","../src/hooks/useGlobalKeyDown.ts","../src/theme/_internal/constants.ts","../src/theme/_internal/build/defaults/colorTokens.ts","../src/theme/lib/color-fns/blend/multiply.ts","../src/theme/lib/color-fns/blend/screen.ts","../src/theme/lib/color-fns/convert.ts","../src/theme/lib/color-fns/parse.ts","../src/theme/lib/color-fns/helpers/rgba.ts","../src/theme/_internal/helpers.ts","../src/theme/_internal/config/token/parseTokenKey.ts","../src/theme/_internal/config/token/parseTokenValue.ts","../src/theme/_internal/config/types.ts","../src/theme/_internal/config/helpers.ts","../src/theme/_internal/build/helpers.ts","../src/theme/_internal/build/colorTheme/resolveColorTokens.ts","../src/theme/_internal/build/colorTheme/buildColorTheme.ts","../src/theme/_internal/build/defaults/colorPalette.ts","../src/theme/_internal/build/colorTheme/renderColorTheme.ts","../src/theme/_internal/build/buildTheme.ts","../src/theme/lib/theme/color/button/createButtonTones.ts","../src/theme/lib/theme/color/button/createButtonModes.ts","../src/theme/lib/theme/color/card/createCardStates.ts","../src/theme/lib/theme/color/defaults.ts","../src/theme/lib/theme/color/input/createInputModes.ts","../src/theme/lib/theme/color/muted/createMuted.ts","../src/theme/lib/theme/color/selectable/createSelectableTones.ts","../src/theme/lib/theme/color/solid/createSolidTones.ts","../src/theme/lib/theme/color/spot/createSpot.ts","../src/theme/lib/theme/color/factory.ts","../src/theme/studioTheme/helpers.ts","../src/theme/studioTheme/color.ts","../src/theme/studioTheme/fonts.ts","../src/theme/studioTheme/theme.ts","../src/theme/defaults.ts","../src/lib/globalScope.ts","../src/theme/themeContext.ts","../src/theme/themeProvider.tsx","../src/lib/isRecord.ts","../src/theme/useRootTheme.ts","../src/theme/themeColorProvider.tsx","../src/theme/useTheme.ts","../src/hooks/useMediaIndex/useMediaIndex.ts","../src/hooks/usePrefersDark.ts","../src/hooks/usePrefersReducedMotion.ts","../src/hooks/useIsomorphicEffect.ts","../src/hooks/useForwardedRef.ts","../src/hooks/useCustomValidity.ts","../src/styles/border/borderStyle.ts","../src/styles/box/boxStyle.ts","../src/styles/flex/flexStyle.ts","../src/styles/flex/flexItemStyle.ts","../src/styles/focusRing/index.ts","../src/styles/grid/gridStyle.ts","../src/styles/grid/gridItemStyle.ts","../src/styles/input/responsiveInputPaddingStyle.ts","../src/styles/input/textInputStyle.ts","../src/styles/margin/marginStyle.ts","../src/styles/padding/paddingStyle.ts","../src/styles/radius/radiusStyle.ts","../src/styles/shadow/shadowStyle.ts","../src/primitives/text/styles.ts","../src/primitives/text/text.tsx","../src/primitives/avatar/styles.ts","../src/primitives/avatar/avatar.tsx","../src/primitives/avatar/avatarCounter.tsx","../src/primitives/helpers.ts","../src/primitives/avatar/avatarStack.tsx","../src/primitives/box/box.tsx","../src/primitives/badge/styles.ts","../src/primitives/badge/badge.tsx","../src/primitives/flex/flex.tsx","../src/primitives/spinner/spinner.tsx","../src/styles/colorVars/colorVarsStyle.ts","../src/primitives/button/styles.ts","../src/primitives/button/button.tsx","../src/primitives/card/styles.ts","../src/primitives/card/card.tsx","../src/primitives/checkbox/styles.ts","../src/primitives/checkbox/checkbox.tsx","../src/primitives/code/styles.ts","../src/primitives/code/code.tsx","../src/primitives/container/styles.ts","../src/primitives/container/container.tsx","../src/primitives/grid/grid.tsx","../src/primitives/heading/styles.ts","../src/primitives/heading/heading.tsx","../src/primitives/inline/styles.ts","../src/primitives/inline/inline.tsx","../src/primitives/kbd/kbd.tsx","../src/primitives/label/styles.ts","../src/primitives/label/label.tsx","../src/utils/boundaryElement/boundaryElementContext.ts","../src/utils/boundaryElement/boundaryElementProvider.tsx","../src/utils/boundaryElement/useBoundaryElement.ts","../src/utils/elementQuery/helpers.ts","../src/utils/elementQuery/elementQuery.tsx","../src/utils/errorBoundary.tsx","../src/utils/layer/getLayerContext.ts","../src/utils/layer/layerContext.ts","../src/utils/layer/useLayer.ts","../src/helpers/animation.ts","../src/helpers/element.ts","../src/helpers/focus.ts","../src/helpers/scroll.ts","../src/utils/layer/layerProvider.tsx","../src/utils/layer/layer.tsx","../src/utils/portal/portalContext.ts","../src/utils/portal/usePortal.ts","../src/utils/portal/portal.ts","../src/hooks/_internal/useUnique.ts","../src/utils/portal/portalProvider.tsx","../src/utils/srOnly/srOnly.tsx","../src/utils/virtualList/virtualList.tsx","../src/primitives/popover/constants.ts","../src/primitives/popover/floating-ui/size.ts","../src/primitives/popover/helpers.ts","../src/primitives/popover/popoverArrow.tsx","../src/primitives/popover/popoverCard.tsx","../src/primitives/popover/popover.tsx","../src/primitives/radio/styles.ts","../src/primitives/radio/radio.tsx","../src/primitives/select/styles.ts","../src/primitives/select/select.tsx","../src/primitives/stack/styles.ts","../src/primitives/stack/stack.tsx","../src/primitives/switch/styles.ts","../src/primitives/switch/switch.tsx","../src/primitives/textArea/textArea.tsx","../src/primitives/textInput/textInput.tsx","../src/hooks/useDelayedState.ts","../src/primitives/tooltip/constants.ts","../src/primitives/tooltip/tooltipArrow.tsx","../src/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/primitives/tooltip/tooltip.tsx","../src/components/autocomplete/autocomplete.styles.tsx","../src/components/autocomplete/autocompleteOption.tsx","../src/components/autocomplete/autocompleteReducer.ts","../src/components/autocomplete/constants.ts","../src/components/autocomplete/autocomplete.tsx","../src/components/breadcrumbs/breadcrumbs.styles.ts","../src/components/breadcrumbs/breadcrumbs.tsx","../src/components/dialog/constants.ts","../src/components/dialog/styles.ts","../src/components/dialog/dialogContext.ts","../src/components/dialog/useDialog.ts","../src/components/dialog/dialog.tsx","../src/components/dialog/dialogProvider.tsx","../src/components/hotkeys/hotkeys.tsx","../src/components/menu/menuContext.ts","../src/components/menu/helpers.ts","../src/components/menu/useMenuController.ts","../src/components/menu/menu.tsx","../src/components/menu/menuButton.tsx","../src/components/menu/menuDivider.ts","../src/primitives/_selectable/style.ts","../src/primitives/_selectable/selectable.tsx","../src/components/menu/useMenu.ts","../src/components/menu/menuGroup.tsx","../src/components/menu/menuItem.tsx","../src/components/skeleton/styles.ts","../src/components/skeleton/skeleton.tsx","../src/components/skeleton/textSkeleton.tsx","../src/components/tab/tab.tsx","../src/components/tab/tabList.tsx","../src/components/tab/tabPanel.tsx","../src/components/toast/toast.tsx","../src/hooks/useMounted.ts","../src/components/toast/toastContext.ts","../src/components/toast/toastProvider.tsx","../src/components/toast/useToast.ts","../src/components/tree/helpers.ts","../src/components/tree/treeContext.ts","../src/components/tree/tree.tsx","../src/components/tree/style.ts","../src/components/tree/useTree.ts","../src/components/tree/treeGroup.tsx","../src/components/tree/treeItem.tsx"],"sourcesContent":["/**\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 FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n","import {EMPTY_ARRAY} from '../constants'\nimport {Theme} from '../theme'\nimport {CSSObject} from '../types/styled'\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 return _responsive(theme.sanity.media, spaceIndexes, (spaceIndex) =>\n _fillCSSObject(props, rem(theme.sanity.space[spaceIndex])),\n )\n}\n","import {ThemeFontSize, ThemeFontKey} from '../../theme'\nimport {CSSObject} from '../../types/styled'\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, theme} = props\n const {fonts, media} = theme.sanity\n const {family, sizes, weights} = fonts[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 '../../types/styled'\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 '../../types/styled'\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 '../../types/styled'\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} from '../../types/styled'\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 {theme} = props\n\n return _responsive(theme.sanity.media, props.$align, (textAlign) => {\n return {textAlign}\n })\n}\n","import {CSSObject} from '../../types/styled'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `text` font style.\n * @internal\n */\nexport function responsiveTextFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('text', props)\n}\n","import {useMemo} from 'react'\nimport {_getArrayProp} from '../styles'\n\n/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\n val: T | T[] | undefined,\n defaultVal?: T[],\n): T[] {\n // JSON.stringify is fast, but it's not faster than useMemo's referencial equality check\n const __perf_hash__ = useMemo(() => JSON.stringify(val ?? defaultVal), [defaultVal, val])\n\n return useMemo(\n () => _getArrayProp(val, defaultVal),\n\n // Improve performance: Keep object identify for a given hash of the value\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [__perf_hash__],\n )\n}\n","import {useEffect, useRef, useState} from 'react'\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: Array<HTMLElement | HTMLElement[] | null>,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: Array<HTMLElement | HTMLElement[] | null> = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\nimport {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n return useEffect(() => {\n addEventListener('keydown', onKeyDown)\n\n return () => removeEventListener('keydown', onKeyDown)\n }, [onKeyDown])\n}\n","export const COLOR_HUES = [\n 'gray',\n 'cyan',\n 'blue',\n 'purple',\n 'magenta',\n 'red',\n 'orange',\n 'yellow',\n 'green',\n] as const\n\nexport const COLOR_TINTS = [\n '50',\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n '950',\n] as const\n\nexport const COLOR_BASE_TONES = [\n 'transparent',\n 'default',\n 'primary', // todo: rename to `accent`\n 'positive',\n 'caution',\n 'critical',\n] as const\n\nexport const COLOR_STATE_TONES = [\n 'default',\n 'primary', // todo: rename to `accent`\n 'positive',\n 'caution',\n 'critical',\n] as const\n\nexport const COLOR_STATES = ['enabled', 'hovered', 'pressed', 'selected', 'disabled'] as const\n\nexport const COLOR_BUTTON_MODES = ['default', 'ghost', 'bleed'] as const\n\nexport const COLOR_BLEND_MODES = ['multiply', 'screen'] as const\n","import {ColorTokens} from '../../config'\n\nexport const defaultColorTokens: ColorTokens = {\n '*': {\n _blend: ['multiply', 'screen'],\n bg: ['50', '950'],\n fg: ['800', '200'],\n border: ['200', '800'],\n focusRing: ['cyan/500', 'cyan/500'],\n shadow: {\n outline: ['500/0.25', '400/0.3'],\n umbra: ['500/0.1', 'black/0.4'],\n penumbra: ['500/0.07', 'black/0.28'],\n ambient: ['500/0.06', 'black/0.24'],\n },\n skeleton: {\n from: ['100', '900'],\n to: ['100/0.5', '900/0.5'],\n },\n },\n transparent: {\n bg: ['50', 'black'],\n fg: ['600', '400'],\n },\n default: {\n bg: ['white', '950'],\n fg: ['black', '200'],\n },\n primary: {\n _hue: 'cyan',\n },\n positive: {\n _hue: 'cyan',\n },\n caution: {\n _hue: 'yellow',\n },\n critical: {\n _hue: 'red',\n },\n button: {\n '*': {\n default: {\n '*': {\n _blend: ['screen', 'multiply'],\n bg: ['500', '400'],\n bg2: ['950', '50'],\n border: ['500/0', '400/0'],\n muted: {\n fg: ['200', '700'],\n },\n },\n hovered: {\n bg: ['600', '300'],\n border: ['600/0', '300/0'],\n },\n pressed: {\n bg: ['700', '200'],\n },\n selected: {\n bg: ['700', '200'],\n },\n disabled: {\n _hue: 'gray',\n bg: ['200', '900'],\n },\n },\n ghost: {\n '*': {\n _blend: ['multiply', 'screen'],\n bg: ['white', 'black'],\n bg2: ['50', '950'],\n fg: ['600', '400'],\n border: ['200', '800'],\n muted: {\n fg: ['600/0.6', '400/0.6'],\n },\n },\n hovered: {\n bg: ['50', '950'],\n fg: ['700', '300'],\n },\n pressed: {\n bg: ['100', '900'],\n fg: ['800', '200'],\n },\n selected: {\n bg: ['100', '900'],\n fg: ['800', '200'],\n },\n disabled: {\n _hue: 'gray',\n fg: ['200', '900'],\n border: ['100', '950'],\n },\n },\n bleed: {\n '*': {\n _blend: ['multiply', 'screen'],\n bg: ['white', 'black'],\n bg2: ['50', '950'],\n fg: ['600', '400'],\n border: ['white/0', 'black/0'],\n muted: {\n fg: ['600/0.6', '400/0.6'],\n },\n },\n hovered: {\n bg: ['50', '950'],\n fg: ['700', '300'],\n },\n pressed: {\n bg: ['100', '900'],\n fg: ['800', '200'],\n },\n selected: {\n bg: ['100', '900'],\n fg: ['800', '200'],\n },\n disabled: {\n _hue: 'gray',\n fg: ['200', '900'],\n },\n },\n },\n default: {\n default: {\n '*': {\n bg: ['900', '200'],\n },\n hovered: {\n bg: ['black', '100'],\n },\n pressed: {\n bg: ['900', '200'],\n },\n selected: {\n bg: ['black', '200'],\n },\n disabled: {\n _hue: 'gray',\n bg: ['200', '900'],\n },\n },\n },\n },\n}\n","import {RGB, RGBA} from '../types'\n\nfunction multiplyChannel(b: number, s: number) {\n return b * s\n}\n\n/**\n * Apply the \\`multiply\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingmultiply\n * @internal\n */\nexport function multiply(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: Math.round(clamp(multiplyChannel(b.r / 255, s.r / 255) * 255)),\n g: Math.round(clamp(multiplyChannel(b.g / 255, s.g / 255) * 255)),\n b: Math.round(clamp(multiplyChannel(b.b / 255, s.b / 255) * 255)),\n }\n}\n\nfunction clamp(num: number) {\n return Math.max(Math.min(num, 255), 0)\n}\n","import {RGB, RGBA} from '../types'\n\nfunction screenChannel(b: number, s: number) {\n return b + s - b * s\n}\n\n/**\n * Apply the \\`screen\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingscreen\n * @internal\n */\nexport function screen(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: Math.round(clamp(screenChannel(b.r / 255, s.r / 255) * 255)),\n g: Math.round(clamp(screenChannel(b.g / 255, s.g / 255) * 255)),\n b: Math.round(clamp(screenChannel(b.b / 255, s.b / 255) * 255)),\n }\n}\n\nfunction clamp(num: number) {\n return Math.max(Math.min(num, 255), 0)\n}\n","import {HSL, RGB, RGBA} from './types'\n\n/**\n * @internal\n */\nexport function hexToRgb(hex: string): RGB {\n if (hex.length === 4) {\n const hexR = hex.slice(1, 2)\n const hexG = hex.slice(2, 3)\n const hexB = hex.slice(3, 4)\n\n return {\n r: parseInt(hexR + hexR, 16),\n g: parseInt(hexG + hexG, 16),\n b: parseInt(hexB + hexB, 16),\n }\n }\n\n return {\n r: parseInt(hex.slice(1, 3), 16),\n g: parseInt(hex.slice(3, 5), 16),\n b: parseInt(hex.slice(5, 7), 16),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbaToRGBA(rgba: string): RGBA {\n const values = rgba.replace(/rgba\\(|\\)/g, '').split(',')\n\n return {\n r: parseInt(values[0]),\n g: parseInt(values[1]),\n b: parseInt(values[2]),\n a: parseFloat(values[3]),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbToHex({r, g, b}: RGB): string {\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\n/**\n * @internal\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\n */\nexport function rgbToHsl({r, g, b}: RGB): HSL {\n // Make r, g, and b fractions of 1\n r /= 255\n g /= 255\n b /= 255\n\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b)\n const cmax = Math.max(r, g, b)\n const delta = cmax - cmin\n\n let h = 0\n let s = 0\n let l = 0\n\n // Calculate hue\n // No difference\n if (delta == 0) h = 0\n // Red is max\n else if (cmax == r) h = ((g - b) / delta) % 6\n // Green is max\n else if (cmax == g) h = (b - r) / delta + 2\n // Blue is max\n else h = (r - g) / delta + 4\n\n h = Math.round(h * 60)\n\n // Make negative hues positive behind 360°\n if (h < 0) h += 360\n\n // Calculate lightness\n l = (cmax + cmin) / 2\n\n // Calculate saturation\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1))\n\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1)\n l = +(l * 100).toFixed(1)\n\n return {h, s, l}\n}\n\n/**\n * @internal\n */\nexport function hslToRgb(hsl: HSL): RGB {\n // Must be fractions of 1\n const s = hsl.s / 100\n const l = hsl.l / 100\n\n const c = (1 - Math.abs(2 * l - 1)) * s\n const x = c * (1 - Math.abs(((hsl.h / 60) % 2) - 1))\n const m = l - c / 2\n\n let r = 0\n let g = 0\n let b = 0\n\n if (0 <= hsl.h && hsl.h < 60) {\n r = c\n g = x\n b = 0\n } else if (60 <= hsl.h && hsl.h < 120) {\n r = x\n g = c\n b = 0\n } else if (120 <= hsl.h && hsl.h < 180) {\n r = 0\n g = c\n b = x\n } else if (180 <= hsl.h && hsl.h < 240) {\n r = 0\n g = x\n b = c\n } else if (240 <= hsl.h && hsl.h < 300) {\n r = x\n g = 0\n b = c\n } else if (300 <= hsl.h && hsl.h < 360) {\n r = c\n g = 0\n b = x\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n }\n}\n","import {hexToRgb, hslToRgb, rgbaToRGBA} from './convert'\nimport {HSL, RGB, RGBA} from './types'\n\nconst HEX_CHARS = '0123456789ABCDEFabcdef'\n\nconst HSL_RE = /hsl\\(\\s*(\\d+)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*\\)/i\n\nfunction isHexChars(str: string) {\n for (const c of str) {\n if (HEX_CHARS.indexOf(c) === -1) {\n return false\n }\n }\n\n return true\n}\n\nfunction isHex(str: string) {\n if (str[0] !== '#') return false\n\n // Accept both #000 and #000000\n if (!(str.length === 4 || str.length === 7)) return false\n\n return isHexChars(str.slice(1))\n}\n\nfunction parseHsl(str: string): HSL {\n const res = HSL_RE.exec(str)\n\n if (!res) {\n throw new Error(`parseHsl: string is not a HSL color: \"${str}\"`)\n }\n\n return {h: parseInt(res[1]), s: parseFloat(res[3]), l: parseFloat(res[5])}\n}\n\n/**\n * @internal\n */\nexport function parseColor(color: unknown): RGB | RGBA {\n if (!color) return {r: 0, g: 0, b: 0}\n\n if (typeof color !== 'string') {\n throw new Error('parseColor: expected a string')\n }\n\n if (isHex(color)) {\n return hexToRgb(color)\n }\n\n if (color.startsWith('hsl(')) {\n return hslToRgb(parseHsl(color))\n }\n\n if (color.startsWith('rgba(')) {\n return rgbaToRGBA(color)\n }\n\n throw new Error(`parseColor: unexpected color format: \"${color}\"`)\n}\n","import {parseColor} from '../parse'\n\n/**\n * @internal\n */\nexport function rgba(color: unknown, a: number): string {\n const rgb = parseColor(color)\n\n return `rgba(${rgb.r},${rgb.g},${rgb.b},${a})`\n}\n","import {ColorBlendModeValue} from './config'\nimport {COLOR_BLEND_MODES, COLOR_BUTTON_MODES, COLOR_HUES, COLOR_TINTS} from './constants'\nimport {ColorButtonMode, ColorHueValue, ColorTintValue} from './types'\n\nexport function isColorBlendModeValue(str: string): str is ColorBlendModeValue {\n return COLOR_BLEND_MODES.includes(str as ColorBlendModeValue)\n}\n\nexport function isColorHueValue(str: string): str is ColorHueValue {\n return COLOR_HUES.includes(str as ColorHueValue)\n}\n\nexport function isColorTintValue(str: string): str is ColorTintValue {\n return COLOR_TINTS.includes(str as ColorTintValue)\n}\n\nexport function isColorButtonMode(str: string): str is ColorButtonMode {\n return COLOR_BUTTON_MODES.includes(str as ColorButtonMode)\n}\n","import {isColorButtonMode} from '../../helpers'\nimport {ColorButtonMode} from '../../types'\nimport {\n isColorConfigBaseKey,\n isColorConfigBaseTone,\n isColorConfigBlendKey,\n isColorConfigStateKey,\n isColorConfigStateTone,\n} from '../helpers'\nimport {\n ColorConfigBaseKey,\n ColorConfigBaseTone,\n ColorConfigBlendKey,\n ColorConfigStateKey,\n ColorConfigStateTone,\n} from '../types'\n\nexport interface TokenBaseKeyNode {\n type: 'base'\n tone: ColorConfigBaseTone\n key: ColorConfigBaseKey | ColorConfigBlendKey\n}\n\nexport interface TokenButtonKeyNode {\n type: 'button'\n tone: ColorConfigStateTone\n mode: ColorButtonMode\n key: ColorConfigStateKey | ColorConfigBlendKey\n}\n\nexport type TokenKeyNode = TokenBaseKeyNode | TokenButtonKeyNode\n\nexport function parseTokenKey(str: string): TokenKeyNode | undefined {\n const segments = str.split('/')\n const segment0 = segments.shift() || ''\n\n if (isColorConfigBaseTone(segment0)) {\n const key = segments.join('/')\n\n if (isColorConfigBaseKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n }\n\n if (segment0 === 'button') {\n const segment1 = segments.shift() || ''\n\n if (isColorConfigStateTone(segment1)) {\n const segment2 = segments.shift() || ''\n\n if (isColorButtonMode(segment2)) {\n const key = segments.join('/')\n\n if (isColorConfigStateKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n }\n }\n }\n\n return undefined\n}\n","import {isColorBlendModeValue, isColorHueValue, isColorTintValue} from '../../helpers'\nimport {ColorHueValue, ColorTintValue} from '../../types'\nimport {isColorOpacityValue, isColorValue} from '../helpers'\nimport {ColorBlendModeValue} from '../types'\n\nexport interface TokenColorValueNode {\n type: 'color'\n key?: 'black' | 'white' | `${ColorHueValue}/${ColorTintValue}` | ColorTintValue\n hue?: ColorHueValue\n tint?: ColorTintValue\n opacity?: number\n}\n\nexport interface TokenHueValueNode {\n type: 'hue'\n value?: ColorHueValue\n}\n\nexport interface TokenBlendModeValueNode {\n type: 'blendMode'\n value?: ColorBlendModeValue\n}\n\nexport type TokenValueNode = TokenColorValueNode | TokenHueValueNode | TokenBlendModeValueNode\n\nexport function parseTokenValue(str: string): TokenValueNode | undefined {\n const segments = str.split('/')\n const segment0 = segments.shift() || ''\n\n if (isColorTintValue(segment0)) {\n const tint = segment0\n const segment1 = segments.shift() || ''\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n tint,\n }\n }\n\n if (isColorValue(segment0)) {\n const key = segment0 as 'black' | 'white'\n const segment1 = segments.shift() || ''\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n key,\n opacity,\n }\n }\n\n return {\n type: 'color',\n key,\n }\n }\n\n if (isColorHueValue(segment0)) {\n const hue = segment0\n const segment1 = segments.shift() || ''\n\n if (isColorTintValue(segment1)) {\n const tint = segment1\n const segment2 = segments.shift() || ''\n\n if (isColorOpacityValue(segment2)) {\n const opacity = Number(segment2)\n\n return {\n type: 'color',\n key: `${hue}/${tint}`,\n hue,\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n key: `${hue}/${tint}`,\n hue,\n tint,\n }\n }\n\n return {\n type: 'hue',\n value: `${hue}`,\n }\n }\n\n if (isColorOpacityValue(segment0)) {\n const opacity = Number(segment0)\n\n return {\n type: 'color',\n opacity,\n }\n }\n\n if (isColorBlendModeValue(segment0)) {\n const value = segment0\n\n return {\n type: 'blendMode',\n value,\n }\n }\n\n return undefined\n}\n","import {ColorTint as ColorPaletteValue} from '@sanity/color'\n\nimport {COLOR_BASE_TONES, COLOR_BLEND_MODES, COLOR_STATE_TONES} from '../constants'\nimport {ColorButtonMode, ColorHueValue, ColorState, ColorTintValue} from '../types'\n\nexport type ColorBlendModeValue = (typeof COLOR_BLEND_MODES)[number]\n\nexport type ColorTokenValue = [ColorConfigValue, ColorConfigValue]\n\nexport type ColorBlendModeTokenValue = [ColorBlendModeValue, ColorBlendModeValue]\n\nexport const COLOR_CONFIG_BASE_TONES = ['*', ...COLOR_BASE_TONES] as const\nexport type ColorConfigBaseTone = (typeof COLOR_CONFIG_BASE_TONES)[number]\n\nexport const COLOR_CONFIG_STATE_TONES = ['*', ...COLOR_STATE_TONES] as const\nexport type ColorConfigStateTone = (typeof COLOR_CONFIG_STATE_TONES)[number]\n\nexport interface BaseColorTokens {\n _blend?: ColorBlendModeTokenValue\n _hue?: ColorHueValue\n bg?: ColorTokenValue\n fg?: ColorTokenValue\n border?: ColorTokenValue\n focusRing?: ColorTokenValue\n shadow?: {\n outline?: ColorTokenValue\n umbra?: ColorTokenValue\n penumbra?: ColorTokenValue\n ambient?: ColorTokenValue\n }\n skeleton?: {\n from?: ColorTokenValue\n to?: ColorTokenValue\n }\n}\n\nexport interface StateColorTokens {\n _blend?: ColorBlendModeTokenValue\n _hue?: ColorHueValue\n bg?: ColorTokenValue\n bg2?: ColorTokenValue\n fg?: ColorTokenValue\n border?: ColorTokenValue\n muted?: {\n fg?: ColorTokenValue\n }\n accent?: {\n fg?: ColorTokenValue\n }\n link?: {\n fg?: ColorTokenValue\n }\n code?: {\n bg?: ColorTokenValue\n fg?: ColorTokenValue\n }\n skeleton?: {\n from?: ColorTokenValue\n to?: ColorTokenValue\n }\n}\n\nexport type ButtonModeColorTokens = Partial<Record<'*' | ColorState, StateColorTokens>>\n\nexport interface ButtonColorTokens extends Partial<Record<ColorButtonMode, ButtonModeColorTokens>> {\n _hue?: ColorHueValue\n}\n\nexport interface ColorTokens extends Partial<Record<ColorConfigBaseTone, BaseColorTokens>> {\n button?: Partial<Record<ColorConfigStateTone, ButtonColorTokens>>\n}\n\nexport type TMP_ColorPalette = {\n black: string | ColorPaletteValue\n white: string | ColorPaletteValue\n} & Record<ColorHueValue, Record<ColorTintValue, string | ColorPaletteValue>>\n\nexport interface ColorThemeConfig {\n // eslint-disable-next-line\n palette?: TMP_ColorPalette\n tokens?: ColorTokens\n}\n\nexport interface ThemeConfig {\n color?: ColorThemeConfig\n}\n\nexport const COLOR_CONFIG_BASE_KEYS = [\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'muted/fg',\n 'link/fg',\n 'code/bg',\n 'code/fg',\n 'shadow/outline',\n 'shadow/umbra',\n 'shadow/penumbra',\n 'shadow/ambient',\n 'skeleton/from',\n 'skeleton/to',\n] as const\nexport type ColorConfigBaseKey = (typeof COLOR_CONFIG_BASE_KEYS)[number]\n\nexport const COLOR_CONFIG_STATE_KEYS = [\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'muted/fg',\n 'link/fg',\n 'code/bg',\n 'code/fg',\n 'skeleton/from',\n 'skeleton/to',\n] as const\nexport type ColorConfigStateKey = (typeof COLOR_CONFIG_STATE_KEYS)[number]\n\nexport const COLOR_CONFIG_BLEND_KEYS = ['_blend'] as const\nexport type ColorConfigBlendKey = (typeof COLOR_CONFIG_BLEND_KEYS)[number]\n\nexport type ColorConfigOpacityValue = `0` | `0.${number}` | `1`\n\nexport type ColorConfigValue =\n | `black`\n | `white`\n | `black/${ColorConfigOpacityValue}`\n | `white/${ColorConfigOpacityValue}`\n | `${ColorHueValue}`\n | `${ColorHueValue}/${ColorTintValue}`\n | `${ColorHueValue}/${ColorTintValue}/${ColorConfigOpacityValue}`\n | `${ColorTintValue}`\n | `${ColorTintValue}/${ColorConfigOpacityValue}`\n | ColorBlendModeValue\n","import {parseTokenValue} from './token'\nimport {\n COLOR_CONFIG_BASE_KEYS,\n COLOR_CONFIG_BASE_TONES,\n COLOR_CONFIG_BLEND_KEYS,\n COLOR_CONFIG_STATE_KEYS,\n COLOR_CONFIG_STATE_TONES,\n ColorConfigBaseKey,\n ColorConfigBaseTone,\n ColorConfigBlendKey,\n ColorConfigOpacityValue,\n ColorConfigStateKey,\n ColorConfigStateTone,\n ColorConfigValue,\n} from './types'\n\nexport function isColorConfigBaseTone(str: string): str is ColorConfigBaseTone {\n return COLOR_CONFIG_BASE_TONES.includes(str as ColorConfigBaseTone)\n}\n\nexport function isColorConfigBaseKey(str: string): str is ColorConfigBaseKey {\n return COLOR_CONFIG_BASE_KEYS.includes(str as ColorConfigBaseKey)\n}\n\nexport function isColorConfigStateKey(str: string): str is ColorConfigStateKey {\n return COLOR_CONFIG_STATE_KEYS.includes(str as ColorConfigStateKey)\n}\n\nexport function isColorConfigStateTone(str: string): str is ColorConfigStateTone {\n return COLOR_CONFIG_STATE_TONES.includes(str as ColorConfigStateTone)\n}\n\nexport function isColorConfigBlendKey(str: string): str is ColorConfigBlendKey {\n return COLOR_CONFIG_BLEND_KEYS.includes(str as ColorConfigBlendKey)\n}\n\nexport function isColorTokenValue(str: string): str is ColorConfigValue {\n return parseTokenValue(str)?.type === 'color' || parseTokenValue(str)?.type === 'hue'\n}\n\nexport function isColorValue(str: string): str is 'black' | 'white' {\n return str === 'black' || str === 'white'\n}\n\nexport function isColorOpacityValue(str: string): str is ColorConfigOpacityValue {\n return str === '0' || /^0\\.[0-9]+$/.test(str) || str === '1'\n}\n","import {\n parseColor,\n rgbToHex,\n screen as _screen,\n multiply as _multiply,\n rgba,\n} from '../../lib/color-fns'\nimport {ColorTokenValue, parseTokenValue, TokenColorValueNode} from '../config'\nimport {ColorHueValue} from '../types'\n\nexport interface ColorTokenContext {\n hue: ColorHueValue\n scheme: 'light' | 'dark'\n}\n\nexport function resolveColorTokenValue(context: ColorTokenContext, value: ColorTokenValue): string {\n const {hue, scheme} = context\n const node = parseTokenValue(value[scheme === 'light' ? 0 : 1])\n\n if (!node || node.type !== 'color') {\n throw new Error(`Invalid color token: ${value[0]}`)\n }\n\n return compileColorTokenValue({...node, hue: node.hue || hue})\n}\n\nexport function compileColorTokenValue(node: TokenColorValueNode): string {\n let key = ''\n\n if (node.key === 'black' || node.key === 'white') {\n key = node.key\n } else {\n key = `${node.hue}/${node.tint}`\n }\n\n if (node.opacity !== undefined) {\n key += `/${node.opacity}`\n }\n\n return key\n}\n\nexport function multiply(bg: string, fg: string): string {\n const b = parseColor(bg)\n const s = parseColor(fg)\n const hex = rgbToHex(_multiply(b, s))\n\n if (s.a !== undefined) {\n return rgba(hex, s.a)\n }\n\n return hex\n}\n\nexport function screen(bg: string, fg: string): string {\n const b = parseColor(bg)\n const s = parseColor(fg)\n const hex = rgbToHex(_screen(b, s))\n\n if (s.a !== undefined) {\n return rgba(hex, s.a)\n }\n\n return hex\n}\n","import {\n BaseColorTokens,\n ButtonColorTokens,\n ButtonModeColorTokens,\n ColorConfigStateTone,\n ColorTokens,\n StateColorTokens,\n} from '../../config'\nimport {\n COLOR_BASE_TONES,\n COLOR_BUTTON_MODES,\n COLOR_STATES,\n COLOR_STATE_TONES,\n} from '../../constants'\nimport {ColorBaseTone, ColorButtonMode, ColorState, ColorStateTone} from '../../types'\n\n/**\n * Convert a tree of color tokens from a sparse format to a dense format.\n */\nexport function resolveColorTokens(sparseTokens: ColorTokens): ColorTokens {\n const denseTokens: ColorTokens = {...sparseTokens}\n\n // base tones\n for (const tone of COLOR_BASE_TONES) {\n denseTokens[tone] = resolveBaseColorTones(sparseTokens, tone)\n }\n\n // button\n denseTokens.button = resolveButtonColorTokens(sparseTokens)\n\n return denseTokens\n}\n\nfunction resolveBaseColorTones(sparseTokens: ColorTokens, tone: ColorBaseTone): BaseColorTokens {\n const spec0 = sparseTokens?.[tone]\n const spec1 = sparseTokens?.['*']\n\n return {\n ...spec1,\n ...spec0,\n shadow: {...spec1?.shadow, ...spec0?.shadow},\n skeleton: {...spec1?.skeleton, ...spec0?.skeleton},\n }\n}\n\nfunction resolveButtonColorTokens(\n sparseTokens: ColorTokens,\n): Partial<Record<ColorConfigStateTone, ButtonColorTokens>> {\n const tokens: Partial<Record<ColorConfigStateTone, ButtonColorTokens>> = {}\n\n for (const tone of COLOR_STATE_TONES) {\n tokens[tone] = resolveButtonToneColorTokens(sparseTokens, tone)\n }\n\n return tokens\n}\n\nfunction resolveButtonToneColorTokens(\n sparseTokens: ColorTokens,\n tone: ColorStateTone,\n): ButtonColorTokens {\n const tokens: ButtonColorTokens = {\n ...sparseTokens.button?.[tone],\n ...sparseTokens.button?.['*'],\n }\n\n for (const mode of COLOR_BUTTON_MODES) {\n tokens[mode] = resolveButtonModeColorTokens(sparseTokens, tone, mode)\n }\n\n return tokens\n}\n\nfunction resolveButtonModeColorTokens(\n sparseTokens: ColorTokens,\n tone: ColorStateTone,\n mode: ColorButtonMode,\n): ButtonModeColorTokens {\n const spec0 = sparseTokens.button?.[tone]?.[mode]\n const spec1 = sparseTokens.button?.['*']?.[mode]\n const tokens = {...spec1, ...spec0}\n\n for (const state of COLOR_STATES) {\n tokens[state] = resolveButtonStateColorTokens(sparseTokens, tone, mode, state)\n }\n\n return tokens\n}\n\nfunction resolveButtonStateColorTokens(\n tokens: ColorTokens,\n tone: ColorStateTone,\n mode: ColorButtonMode,\n state: ColorState,\n): StateColorTokens {\n const spec0 = tokens?.button?.[tone]?.[mode]?.[state]\n const spec1 = tokens?.button?.[tone]?.[mode]?.['*']\n const spec2 = tokens?.button?.['*']?.[mode]?.[state]\n const spec3 = tokens?.button?.['*']?.[mode]?.['*']\n\n const hue =\n spec0?._hue ||\n spec1?._hue ||\n spec2?._hue ||\n spec3?._hue ||\n tokens?.button?.[tone]?._hue ||\n tokens?.[tone]?._hue\n\n return {\n ...spec3,\n ...spec2,\n ...spec1,\n ...spec0,\n _hue: hue,\n muted: {...spec3?.muted, ...spec2?.muted, ...spec1?.muted, ...spec0?.muted},\n accent: {...spec3?.accent, ...spec2?.accent, ...spec1?.accent, ...spec0?.accent},\n link: {...spec3?.link, ...spec2?.link, ...spec1?.link, ...spec0?.link},\n code: {...spec3?.code, ...spec2?.code, ...spec1?.code, ...spec0?.code},\n skeleton: {...spec3?.skeleton, ...spec2?.skeleton, ...spec1?.skeleton, ...spec0?.skeleton},\n }\n}\n","import {ThemeConfig} from '../../config'\nimport {COLOR_BUTTON_MODES, COLOR_STATE_TONES, COLOR_STATES} from '../../constants'\nimport {\n ColorBaseTone,\n ColorButtonMode,\n ColorState,\n ColorStateTone,\n TMP_BaseColorTheme,\n TMP_ButtonColorTheme,\n TMP_ButtonModesColorTheme,\n TMP_ButtonStatesColorTheme,\n TMP_ColorTheme,\n TMP_StateColorTheme,\n} from '../../types'\nimport {defaultColorTokens} from '../defaults/colorTokens'\nimport {ColorTokenContext, resolveColorTokenValue as _color} from '../helpers'\nimport {resolveColorTokens} from './resolveColorTokens'\n\nexport function buildColorTheme(\n options: {scheme: 'light' | 'dark'},\n config?: ThemeConfig,\n): TMP_ColorTheme {\n const {scheme} = options\n\n const resolvedConfig = {\n ...config,\n color: {\n ...config?.color,\n tokens: resolveColorTokens(config?.color?.tokens ?? defaultColorTokens),\n },\n }\n\n return {\n transparent: buildBaseColorTheme({scheme, tone: 'transparent'}, resolvedConfig),\n default: buildBaseColorTheme({scheme, tone: 'default'}, resolvedConfig),\n primary: buildBaseColorTheme({scheme, tone: 'primary'}, resolvedConfig),\n positive: buildBaseColorTheme({scheme, tone: 'positive'}, resolvedConfig),\n caution: buildBaseColorTheme({scheme, tone: 'caution'}, resolvedConfig),\n critical: buildBaseColorTheme({scheme, tone: 'critical'}, resolvedConfig),\n }\n}\n\nexport function buildBaseColorTheme(\n options: {scheme: 'light' | 'dark'; tone: ColorBaseTone},\n config?: ThemeConfig,\n): TMP_BaseColorTheme {\n const {scheme, tone} = options\n const tokens = config?.color?.tokens?.[tone]\n const hue = tokens?._hue || 'gray'\n const context: ColorTokenContext = {hue, scheme}\n const bg = _color(context, tokens?.bg || ['gray/50', 'black'])\n const blendMode = tokens?._blend || ['screen', 'multiply']\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n dark: scheme === 'dark',\n base: {\n bg,\n fg: _color(context, tokens?.fg || ['black', 'white']),\n border: _color(context, tokens?.border || ['black', 'white']),\n focusRing: _color(context, tokens?.focusRing || ['black', 'white']),\n shadow: {\n outline: _color(context, tokens?.shadow?.outline || ['500/0.2', '500/0.2']),\n umbra: _color(context, tokens?.shadow?.umbra || ['500/0.2', '500/0.2']),\n penumbra: _color(context, tokens?.shadow?.penumbra || ['500/0.2', '500/0.2']),\n ambient: _color(context, tokens?.shadow?.ambient || ['500/0.2', '500/0.2']),\n },\n skeleton: {\n from: _color(context, tokens?.skeleton?.from || ['500/0.2', '500/0.2']),\n to: _color(context, tokens?.skeleton?.to || ['500/0.2', '500/0.2']),\n },\n },\n button: buildButtonColorTheme({scheme}, config),\n }\n}\n\nfunction buildButtonColorTheme(\n options: {scheme: 'light' | 'dark'},\n config?: ThemeConfig,\n): TMP_ButtonColorTheme {\n const {scheme} = options\n\n const tones = COLOR_STATE_TONES.map((tone): Partial<TMP_ButtonColorTheme> => {\n return {\n [tone]: buildButtonColorToneTheme({scheme, tone}, config),\n }\n })\n\n return Object.assign({}, ...tones) as TMP_ButtonColorTheme\n}\n\nfunction buildButtonColorToneTheme(\n options: {\n scheme: 'light' | 'dark'\n tone: ColorStateTone\n },\n config?: ThemeConfig,\n): TMP_ButtonModesColorTheme {\n const {scheme, tone} = options\n\n const modes = COLOR_BUTTON_MODES.map((mode): Partial<TMP_ButtonModesColorTheme> => {\n return {\n [mode]: buildButtonModeColorTheme({mode, scheme, tone}, config),\n }\n })\n\n return Object.assign({}, ...modes) as TMP_ButtonModesColorTheme\n}\n\nfunction buildButtonModeColorTheme(\n options: {\n mode: ColorButtonMode\n scheme: 'light' | 'dark'\n tone: ColorStateTone\n },\n config?: ThemeConfig,\n): TMP_ButtonStatesColorTheme {\n const {mode, scheme, tone} = options\n\n const states = COLOR_STATES.map((state): Partial<TMP_ButtonStatesColorTheme> => {\n return {\n [state]: buildButtonStateColorTheme({mode, tone, scheme, state}, config),\n }\n })\n\n return Object.assign({}, ...states) as TMP_ButtonStatesColorTheme\n}\n\nfunction buildButtonStateColorTheme(\n options: {\n mode: ColorButtonMode\n tone: ColorStateTone\n scheme: 'light' | 'dark'\n state: ColorState\n },\n config?: ThemeConfig,\n): TMP_StateColorTheme {\n const {mode, tone, scheme, state} = options\n const tokens = config?.color?.tokens?.button?.[tone]?.[mode]?.[state]\n const hue = tokens?._hue || 'gray'\n const blendMode = tokens?._blend || ['screen', 'multiply']\n const context: ColorTokenContext = {hue, scheme}\n\n return {\n _blend: blendMode[scheme === 'light' ? 0 : 1],\n bg: _color(context, tokens?.bg || ['500', '400']),\n bg2: _color(context, tokens?.bg2 || ['500', '400']),\n fg: _color(context, tokens?.fg || ['white', 'black']),\n border: _color(context, tokens?.border || ['500', '400']),\n muted: {\n fg: _color(context, tokens?.fg || ['500', '400']),\n },\n accent: {\n fg: _color(context, tokens?.fg || ['500', '400']),\n },\n link: {\n fg: _color(context, tokens?.fg || ['500', '400']),\n },\n code: {\n bg: _color(context, tokens?.bg || ['500', '400']),\n fg: _color(context, tokens?.fg || ['500', '400']),\n },\n }\n}\n","import {color} from '@sanity/color'\n\nimport {TMP_ColorPalette} from '../../config'\n\nexport const defaultColorPalette: TMP_ColorPalette = {\n ...color,\n black: '#000000',\n}\n","import {ColorTint as ColorPaletteValue} from '@sanity/color'\nimport {rgba} from '../../../lib/color-fns'\nimport {ColorBlendModeValue, parseTokenValue, ThemeConfig, TMP_ColorPalette} from '../../config'\nimport {\n TMP_BaseColorTheme,\n TMP_ButtonColorTheme,\n TMP_ButtonModesColorTheme,\n TMP_ButtonStatesColorTheme,\n TMP_ColorTheme,\n TMP_StateColorTheme,\n TMP_Theme,\n} from '../../types'\nimport {defaultColorPalette} from '../defaults/colorPalette'\nimport {multiply, screen} from '../helpers'\n\nexport function renderColorTheme(\n value: TMP_Theme['color'],\n config?: ThemeConfig,\n): TMP_Theme['color'] {\n const colorPalette = config?.color?.palette ?? defaultColorPalette\n\n return {\n light: renderColorScheme(colorPalette, value.light),\n dark: renderColorScheme(colorPalette, value.dark),\n }\n}\n\nfunction renderColorScheme(colorPalette: TMP_ColorPalette, value: TMP_ColorTheme): TMP_ColorTheme {\n const toneEntries = Object.entries(value)\n const [, transparentTone] = toneEntries.find(([k]) => k === 'transparent')!\n const [, defaultTone] = toneEntries.find(([k]) => k === 'default')!\n\n const renderedTransparentTone = renderColorBase(\n colorPalette,\n transparentTone,\n transparentTone._blend === 'multiply' ? '#ffffff' : '#000000',\n )\n\n const renderedDefaultTone = renderColorBase(\n colorPalette,\n defaultTone,\n defaultTone._blend === 'multiply' ? '#ffffff' : '#000000',\n )\n\n return Object.fromEntries([\n ['transparent', renderedTransparentTone],\n ['default', renderedDefaultTone],\n ...toneEntries\n .filter(([k]) => k !== 'default' && k !== 'transparent')\n .map(([k, v]) => [k, renderColorBase(colorPalette, v, renderedDefaultTone.base.bg)]),\n ]) as TMP_ColorTheme\n}\n\nfunction renderColorBase(\n colorPalette: TMP_ColorPalette,\n value: TMP_BaseColorTheme,\n bg: string,\n): TMP_BaseColorTheme {\n const nestedBg = renderColorValue(colorPalette, bg, value._blend, value.base.bg)\n\n return {\n _blend: value._blend,\n dark: value.dark,\n base: {\n bg: nestedBg,\n fg: renderColorValue(colorPalette, nestedBg, value._blend, value.base.fg),\n border: renderColorValue(colorPalette, nestedBg, value._blend, value.base.border),\n focusRing: renderColorValue(colorPalette, nestedBg, value._blend, value.base.focusRing),\n shadow: {\n outline: renderColorValue(colorPalette, nestedBg, value._blend, value.base.shadow.outline),\n umbra: renderColorValue(colorPalette, nestedBg, value._blend, value.base.shadow.umbra),\n penumbra: renderColorValue(\n colorPalette,\n nestedBg,\n value._blend,\n value.base.shadow.penumbra,\n ),\n ambient: renderColorValue(colorPalette, nestedBg, value._blend, value.base.shadow.ambient),\n },\n skeleton: {\n from: renderColorValue(colorPalette, nestedBg, value._blend, value.base.skeleton.from),\n to: renderColorValue(colorPalette, nestedBg, value._blend, value.base.skeleton.to),\n },\n },\n button: renderButtonColorTheme(colorPalette, nestedBg, value._blend, value.button),\n }\n}\n\nfunction renderButtonColorTheme(\n colorPalette: TMP_ColorPalette,\n bg: string,\n baseBlendMode: ColorBlendModeValue,\n value: TMP_ButtonColorTheme,\n): TMP_ButtonColorTheme {\n return {\n default: renderButtonStateColorTheme(colorPalette, bg, baseBlendMode, value.default),\n primary: renderButtonStateColorTheme(colorPalette, bg, baseBlendMode, value.primary),\n positive: renderButtonStateColorTheme(colorPalette, bg, baseBlendMode, value.positive),\n caution: renderButtonStateColorTheme(colorPalette, bg, baseBlendMode, value.caution),\n critical: renderButtonStateColorTheme(colorPalette, bg, baseBlendMode, value.critical),\n }\n}\n\nfunction renderButtonStateColorTheme(\n colorPalette: TMP_ColorPalette,\n bg: string,\n baseBlendMode: ColorBlendModeValue,\n value: TMP_ButtonModesColorTheme,\n): TMP_ButtonModesColorTheme {\n return {\n default: renderStatesColorTheme(colorPalette, bg, baseBlendMode, value.default),\n ghost: renderStatesColorTheme(colorPalette, bg, baseBlendMode, value.ghost),\n bleed: renderStatesColorTheme(colorPalette, bg, baseBlendMode, value.bleed),\n }\n}\n\nfunction renderStatesColorTheme(\n colorPalette: TMP_ColorPalette,\n bg: string,\n baseBlendMode: ColorBlendModeValue,\n value: TMP_ButtonStatesColorTheme,\n) {\n return {\n enabled: renderStateColorTheme(colorPalette, bg, baseBlendMode, value.enabled),\n hovered: renderStateColorTheme(colorPalette, bg, baseBlendMode, value.hovered),\n pressed: renderStateColorTheme(colorPalette, bg, baseBlendMode, value.pressed),\n selected: renderStateColorTheme(colorPalette, bg, baseBlendMode, value.selected),\n disabled: renderStateColorTheme(colorPalette, bg, baseBlendMode, value.disabled),\n }\n}\n\nfunction renderStateColorTheme(\n colorPalette: TMP_ColorPalette,\n baseBg: string,\n rootBlendMode: ColorBlendModeValue,\n value: TMP_StateColorTheme,\n): TMP_StateColorTheme {\n const blendMode = value._blend\n\n const bg =\n rootBlendMode === 'multiply' && value.bg === 'white'\n ? '#ffffff'\n : rootBlendMode === 'screen' && value.bg === 'black'\n ? '#000000'\n : renderColorValue(\n colorPalette,\n rootBlendMode === 'multiply' ? '#ffffff' : '#000000',\n rootBlendMode,\n value.bg,\n )\n\n const blend = rootBlendMode === 'multiply' ? multiply : screen\n\n const unmixed = {\n bg2: renderColorValue(colorPalette, bg, blendMode, value.bg2 || value.bg),\n fg: renderColorValue(colorPalette, bg, blendMode, value.fg),\n border: renderColorValue(colorPalette, bg, blendMode, value.border),\n muted: {\n fg: renderColorValue(colorPalette, bg, blendMode, value.muted.fg),\n },\n accent: {\n fg: renderColorValue(colorPalette, bg, blendMode, value.accent.fg),\n },\n link: {\n fg: renderColorValue(colorPalette, bg, blendMode, value.link.fg),\n },\n code: {\n bg: renderColorValue(colorPalette, bg, blendMode, value.code.bg),\n fg: renderColorValue(colorPalette, bg, blendMode, value.code.fg),\n },\n }\n\n return {\n _blend: blendMode,\n bg: blend(baseBg, bg),\n bg2: blend(baseBg, unmixed.bg2),\n fg: blend(baseBg, unmixed.fg),\n border: blend(baseBg, unmixed.border),\n muted: {\n fg: blend(baseBg, unmixed.muted.fg),\n },\n accent: {\n fg: blend(baseBg, unmixed.accent.fg),\n },\n link: {\n fg: blend(baseBg, unmixed.link.fg),\n },\n code: {\n bg: blend(baseBg, unmixed.code.bg),\n fg: blend(baseBg, unmixed.code.fg),\n },\n }\n}\n\nfunction renderColorValue(\n colorPalette: TMP_ColorPalette,\n bg: string,\n blendMode: ColorBlendModeValue,\n str: string,\n): string {\n const node = parseTokenValue(str)\n\n if (!node || node.type !== 'color') {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n let hex = ''\n\n if (node.key === 'black') {\n hex = renderColorHex(colorPalette.black)\n }\n\n if (node.key === 'white') {\n hex = renderColorHex(colorPalette.white)\n }\n\n if (node.hue && node.tint) {\n hex = renderColorHex(colorPalette[node.hue][node.tint])\n }\n\n if (!hex) {\n throw new Error(`Invalid color token value: ${str}`)\n }\n\n // apply blend mode\n try {\n hex = blendMode === 'multiply' ? multiply(bg, hex) : screen(bg, hex)\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('could not blend', hex)\n }\n\n if (node.opacity !== undefined) {\n hex = rgba(hex, node.opacity)\n }\n\n return hex\n}\n\nfunction renderColorHex(color: string | ColorPaletteValue) {\n return typeof color === 'string' ? color : color.hex\n}\n","import {ThemeConfig} from '../config'\nimport {TMP_Theme} from '../types'\nimport {buildColorTheme} from './colorTheme/buildColorTheme'\nimport {renderColorTheme} from './colorTheme/renderColorTheme'\n\n/** @internal */\nexport function buildTheme(config?: ThemeConfig): TMP_Theme {\n const color: TMP_Theme['color'] = {\n light: buildColorTheme({scheme: 'light'}, config),\n dark: buildColorTheme({scheme: 'dark'}, config),\n }\n\n return {\n color: renderColorTheme(color, config),\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorButtonModeKey, ThemeColorButtonTones} from './types'\n\nexport function createButtonTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n mode: ThemeColorButtonModeKey,\n): ThemeColorButtonTones {\n return {\n default: opts.button({\n base,\n dark,\n solid: solid.default,\n muted: muted.default,\n mode,\n }),\n primary: opts.button({\n base,\n dark,\n solid: solid.primary,\n muted: muted.primary,\n mode,\n }),\n positive: opts.button({\n base,\n dark,\n solid: solid.positive,\n muted: muted.positive,\n mode,\n }),\n caution: opts.button({\n base,\n dark,\n solid: solid.caution,\n muted: muted.caution,\n mode,\n }),\n critical: opts.button({\n base,\n dark,\n solid: solid.critical,\n muted: muted.critical,\n mode,\n }),\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {createButtonTones} from './createButtonTones'\nimport {ThemeColorButton} from './types'\n\nexport function createButtonModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorButton {\n return {\n default: createButtonTones(opts, base, dark, solid, muted, 'default'),\n ghost: createButtonTones(opts, base, dark, solid, muted, 'ghost'),\n bleed: createButtonTones(opts, base, dark, solid, muted, 'bleed'),\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorName} from '../types'\nimport {ThemeColorCard} from './types'\n\nexport function createCardStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorCard {\n return {\n enabled: opts.card({\n base,\n dark,\n name,\n state: 'enabled',\n solid,\n muted,\n }),\n disabled: opts.card({\n base,\n dark,\n name,\n state: 'disabled',\n solid,\n muted,\n }),\n hovered: opts.card({\n base,\n dark,\n name,\n state: 'hovered',\n solid,\n muted,\n }),\n pressed: opts.card({\n base,\n dark,\n name,\n state: 'pressed',\n solid,\n muted,\n }),\n selected: opts.card({\n base,\n dark,\n name,\n state: 'selected',\n solid,\n muted,\n }),\n }\n}\n","import {ThemeColorBuilderOpts} from './factory'\n\nconst black = 'hsl(0, 0%, 0%)'\nconst white = 'hsl(0, 0%, 100%)'\n\nconst colors = {\n default: {\n lightest: 'hsl(0, 0%, 95%)',\n lighter: 'hsl(0, 0%, 70%)',\n light: 'hsl(0, 0%, 65%)',\n base: 'hsl(0, 0%, 50%)',\n dark: 'hsl(0, 0%, 35%)',\n darker: 'hsl(0, 0%, 20%)',\n darkest: 'hsl(0, 0%, 5%)',\n },\n transparent: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n primary: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n positive: {\n lightest: 'hsl(120, 100%, 95%)',\n lighter: 'hsl(120, 100%, 70%)',\n light: 'hsl(120, 100%, 65%)',\n base: 'hsl(120, 100%, 50%)',\n dark: 'hsl(120, 100%, 35%)',\n darker: 'hsl(120, 100%, 20%)',\n darkest: 'hsl(120, 100%, 5%)',\n },\n caution: {\n lightest: 'hsl(60, 100%, 95%)',\n lighter: 'hsl(60, 100%, 70%)',\n light: 'hsl(60, 100%, 65%)',\n base: 'hsl(60, 100%, 50%)',\n dark: 'hsl(60, 100%, 35%)',\n darker: 'hsl(60, 100%, 20%)',\n darkest: 'hsl(60, 100%, 5%)',\n },\n critical: {\n lightest: 'hsl(0, 100%, 95%)',\n lighter: 'hsl(0, 100%, 70%)',\n light: 'hsl(0, 100%, 65%)',\n base: 'hsl(0, 100%, 50%)',\n dark: 'hsl(0, 100%, 35%)',\n darker: 'hsl(0, 100%, 20%)',\n darkest: 'hsl(0, 100%, 5%)',\n },\n}\n\nconst spots = {\n gray: 'hsl(0, 0%, 50%)',\n red: 'hsl(0, 100%, 50%)',\n orange: 'hsl(30, 100%, 50%)',\n yellow: 'hsl(60, 100%, 50%)',\n green: 'hsl(120, 100%, 50%)',\n cyan: 'hsl(180, 100%, 50%)',\n blue: 'hsl(240, 100%, 50%)',\n purple: 'hsl(270, 100%, 50%)',\n magenta: 'hsl(300, 100%, 50%)',\n}\n\nconst tones = {\n transparent: {\n bg: [colors.transparent.darkest, colors.transparent.lightest],\n fg: [colors.transparent.lightest, colors.transparent.darkest],\n border: [colors.transparent.darker, colors.transparent.lighter],\n focusRing: [colors.transparent.base, colors.transparent.base],\n },\n primary: {\n bg: [colors.primary.darkest, colors.primary.lightest],\n fg: [colors.primary.lightest, colors.primary.darkest],\n border: [colors.primary.darker, colors.primary.lighter],\n focusRing: [colors.primary.base, colors.primary.base],\n },\n positive: {\n bg: [colors.positive.darkest, colors.positive.lightest],\n fg: [colors.positive.lightest, colors.positive.darkest],\n border: [colors.positive.darker, colors.positive.lighter],\n focusRing: [colors.positive.base, colors.positive.base],\n },\n caution: {\n bg: [colors.caution.darkest, colors.caution.lightest],\n fg: [colors.caution.lightest, colors.caution.darkest],\n border: [colors.caution.darker, colors.caution.lighter],\n focusRing: [colors.caution.base, colors.caution.base],\n },\n critical: {\n bg: [colors.critical.darkest, colors.critical.lightest],\n fg: [colors.critical.lightest, colors.critical.darkest],\n border: [colors.critical.darker, colors.critical.lighter],\n focusRing: [colors.critical.base, colors.critical.base],\n },\n}\n\nexport const defaultOpts: ThemeColorBuilderOpts = {\n base: ({dark, name}) => {\n if (name === 'default') {\n return {\n bg: dark ? black : white,\n fg: dark ? white : black,\n border: dark ? colors.default.darkest : colors.default.lightest,\n focusRing: colors.primary.base,\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n }\n\n // Variants:\n // - primary\n // - positive\n // - caution\n // - critical\n return {\n bg: tones[name].bg[dark ? 0 : 1],\n fg: tones[name].fg[dark ? 0 : 1],\n border: tones[name].border[dark ? 0 : 1],\n focusRing: tones[name].focusRing[dark ? 0 : 1],\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n },\n\n solid: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.light : color.dark,\n bg2: dark ? color.light : color.dark,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.darkest : color.lightest,\n iconColor: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: color.base,\n bg2: color.base,\n border: dark ? color.light : color.dark,\n fg: dark ? color.darkest : color.lightest,\n iconColor: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n muted: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.darker : color.lighter,\n bg2: dark ? color.darker : color.lighter,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.lightest : color.darkest,\n iconColor: dark ? color.lightest : color.darkest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: dark ? color.darkest : color.lightest,\n bg2: dark ? color.darkest : color.lightest,\n border: dark ? color.darker : color.lighter,\n fg: dark ? color.lighter : color.darker,\n iconColor: dark ? color.lighter : color.darker,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n ...muted,\n enabled: {\n bg: 'transparent',\n bg2: 'transparent',\n fg: muted.enabled.fg,\n iconColor: muted.enabled.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n hovered: {\n bg: muted.enabled.bg,\n bg2: muted.enabled.bg,\n fg: muted.hovered.fg,\n iconColor: muted.hovered.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n }\n }\n\n if (mode === 'ghost')\n return {\n ...solid,\n enabled: muted.enabled,\n }\n\n return solid\n },\n\n card: ({base}) => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n iconColor: black,\n border: black,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n input: () => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n border: black,\n placeholder: black,\n }\n },\n\n selectable: ({muted, state, tone}) => {\n return muted[tone][state]\n },\n\n spot: ({key}) => {\n return spots[key]\n },\n\n syntax: () => ({\n atrule: black,\n attrName: black,\n attrValue: black,\n attribute: black,\n boolean: black,\n builtin: black,\n cdata: black,\n char: black,\n class: black,\n className: black,\n comment: black,\n constant: black,\n deleted: black,\n doctype: black,\n entity: black,\n function: black,\n hexcode: black,\n id: black,\n important: black,\n inserted: black,\n keyword: black,\n number: black,\n operator: black,\n prolog: black,\n property: black,\n pseudoClass: black,\n pseudoElement: black,\n punctuation: black,\n regex: black,\n selector: black,\n string: black,\n symbol: black,\n tag: black,\n unit: black,\n url: black,\n variable: black,\n }),\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorInput} from './types'\n\nexport function createInputModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorInput {\n return {\n default: {\n enabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n invalid: {\n enabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorName} from '../types'\nimport {ThemeColorMuted} from './types'\n\nexport function createMutedTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColorMuted {\n return {\n default: {\n enabled: opts.muted({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.muted({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.muted({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.muted({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.muted({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.muted({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorMuted} from '../muted'\nimport {ThemeColorSolid} from '../solid'\nimport {ThemeColorSelectable, ThemeColorSelectableStates} from './types'\n\nexport function createSelectableTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorSelectable {\n return {\n default: _createSelectableStates(opts, base, dark, solid, muted, 'default'),\n primary: _createSelectableStates(opts, base, dark, solid, muted, 'primary'),\n positive: _createSelectableStates(opts, base, dark, solid, muted, 'positive'),\n caution: _createSelectableStates(opts, base, dark, solid, muted, 'caution'),\n critical: _createSelectableStates(opts, base, dark, solid, muted, 'critical'),\n }\n}\n\nfunction _createSelectableStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical',\n): ThemeColorSelectableStates {\n return {\n enabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'enabled',\n tone,\n }),\n hovered: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'hovered',\n tone,\n }),\n pressed: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'pressed',\n tone,\n }),\n selected: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'selected',\n tone,\n }),\n disabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'disabled',\n tone,\n }),\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorName} from '../types'\nimport {ThemeColorSolid} from './types'\n\nexport function createSolidTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColorSolid {\n return {\n default: {\n enabled: opts.solid({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.solid({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.solid({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.solid({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.solid({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.solid({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {ThemeColorBase} from '../base'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {ThemeColorSpot} from './types'\n\nexport function createSpot(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n): ThemeColorSpot {\n return {\n gray: opts.spot({base, dark, key: 'gray'}),\n blue: opts.spot({base, dark, key: 'blue'}),\n purple: opts.spot({base, dark, key: 'purple'}),\n magenta: opts.spot({base, dark, key: 'magenta'}),\n red: opts.spot({base, dark, key: 'red'}),\n orange: opts.spot({base, dark, key: 'orange'}),\n yellow: opts.spot({base, dark, key: 'yellow'}),\n green: opts.spot({base, dark, key: 'green'}),\n cyan: opts.spot({base, dark, key: 'cyan'}),\n }\n}\n","import {ThemeColorGenericState} from './_generic'\nimport {ThemeColorBase} from './base'\nimport {ThemeColorButtonModeKey, ThemeColorButtonStates} from './button'\nimport {createButtonModes} from './button/createButtonModes'\nimport {ThemeColorCardState} from './card'\nimport {createCardStates} from './card/createCardStates'\nimport {defaultOpts} from './defaults'\nimport {ThemeColorInputState} from './input'\nimport {createInputModes} from './input/createInputModes'\nimport {ThemeColorMuted, ThemeColorMutedTone} from './muted'\nimport {createMutedTones} from './muted/createMuted'\nimport {ThemeColorSelectableState} from './selectable'\nimport {createSelectableTones} from './selectable/createSelectableTones'\nimport {ThemeColorSolid, ThemeColorSolidTone} from './solid'\nimport {createSolidTones} from './solid/createSolidTones'\nimport {ThemeColorSpotKey} from './spot'\nimport {createSpot} from './spot/createSpot'\nimport {ThemeColorSyntax} from './syntax'\nimport {\n ThemeColorName,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeColor,\n ThemeColorToneKey,\n} from './types'\n\n/**\n * @public\n */\nexport interface ThemeColorBuilderOpts {\n base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase\n solid: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n muted: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n card: (opts: {\n base: ThemeColorBase\n dark: boolean\n muted: ThemeColorMuted\n name: ThemeColorName\n solid: ThemeColorSolid\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorCardState\n button: (opts: {\n dark: boolean\n mode: ThemeColorButtonModeKey\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n }) => ThemeColorButtonStates\n input: (opts: {\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n dark: boolean\n mode: 'default' | 'invalid'\n state: 'enabled' | 'disabled' | 'hovered' | 'readOnly'\n }) => ThemeColorInputState\n selectable: (opts: {\n dark: boolean\n base: ThemeColorBase\n solid: ThemeColorSolid\n muted: ThemeColorMuted\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'\n }) => ThemeColorSelectableState\n syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax\n spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string\n}\n\n/**\n * @public\n */\nexport type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>\n\n/**\n * @public\n */\nexport function createColorTheme(\n partialOpts: PartialThemeColorBuilderOpts = {},\n): ThemeColorSchemes {\n const builders: ThemeColorBuilderOpts = {...defaultOpts, ...partialOpts}\n\n return {\n light: _createColorScheme(builders, false),\n dark: _createColorScheme(builders, true),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColorScheme(opts: ThemeColorBuilderOpts, dark: boolean): ThemeColorScheme {\n return {\n default: _createColor(opts, dark, 'default'),\n transparent: _createColor(opts, dark, 'transparent'),\n primary: _createColor(opts, dark, 'primary'),\n positive: _createColor(opts, dark, 'positive'),\n caution: _createColor(opts, dark, 'caution'),\n critical: _createColor(opts, dark, 'critical'),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColor(\n opts: ThemeColorBuilderOpts,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColor {\n const base = opts.base({dark, name})\n const solid = createSolidTones(opts, base, dark, name)\n const muted = createMutedTones(opts, base, dark, name)\n\n return {\n base,\n button: createButtonModes(opts, base, dark, solid, muted),\n card: createCardStates(opts, base, dark, name, solid, muted),\n dark,\n input: createInputModes(opts, base, dark, solid, muted),\n selectable: createSelectableTones(opts, base, dark, solid, muted),\n spot: createSpot(opts, base, dark),\n syntax: opts.syntax({base, dark}),\n solid,\n muted,\n }\n}\n","import {\n parseColor,\n rgbToHex,\n screen as _screen,\n multiply as _multiply,\n rgba,\n} from '../lib/color-fns'\n\nexport function multiply(bg: string, fg: string): string {\n const b = parseColor(bg)\n const s = parseColor(fg)\n const hex = rgbToHex(_multiply(b, s))\n\n if (s.a) {\n return rgba(hex, s.a)\n }\n\n return hex\n}\n\nexport function screen(bg: string, fg: string): string {\n const b = parseColor(bg)\n const s = parseColor(fg)\n const hex = rgbToHex(_screen(b, s))\n\n if (s.a) {\n return rgba(hex, s.a)\n }\n\n return hex\n}\n","import {black, ColorTints, hues, white} from '@sanity/color'\nimport {rgba} from '../lib/color-fns'\nimport {createColorTheme} from '../lib/theme'\nimport {multiply, screen} from './helpers'\n\nexport const tones: {[key: string]: ColorTints} = {\n default: hues.gray,\n transparent: hues.gray,\n primary: hues.blue,\n positive: hues.green,\n caution: hues.yellow,\n critical: hues.red,\n}\n\nconst NEUTRAL_TONES = ['default', 'transparent']\n\nexport const color = createColorTheme({\n base: ({dark, name}) => {\n if (name === 'default') {\n const tints = hues.gray\n const skeletonFrom = dark ? tints[900].hex : tints[100].hex\n\n return {\n fg: dark ? white.hex : black.hex,\n bg: dark ? black.hex : white.hex,\n border: tints[dark ? 800 : 200].hex,\n focusRing: hues.blue[dark ? 500 : 500].hex,\n shadow: {\n outline: rgba(tints[500].hex, 0.4),\n umbra: dark ? rgba(tints[950].hex, 0.4) : rgba(tints[500].hex, 0.2),\n penumbra: dark ? rgba(tints[950].hex, 0.28) : rgba(tints[500].hex, 0.14),\n ambient: dark ? rgba(tints[950].hex, 0.24) : rgba(tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (name === 'transparent') {\n const tints = tones.default\n const skeletonFrom = tints[dark ? 800 : 200].hex\n\n return {\n fg: tints[dark ? 100 : 900].hex,\n bg: tints[dark ? 950 : 50].hex,\n border: tints[dark ? 800 : 300].hex,\n focusRing: hues.blue[500].hex,\n shadow: {\n outline: rgba(tints[500].hex, 0.4),\n umbra: dark ? rgba(tints[900].hex, 0.4) : rgba(tints[500].hex, 0.2),\n penumbra: dark ? rgba(tints[900].hex, 0.28) : rgba(tints[500].hex, 0.14),\n ambient: dark ? rgba(tints[900].hex, 0.24) : rgba(tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n const tints = tones[name] || tones.default\n const skeletonFrom = tints[dark ? 800 : 200].hex\n\n return {\n fg: tints[dark ? 100 : 900].hex,\n bg: tints[dark ? 950 : 50].hex,\n border: tints[dark ? 800 : 200].hex,\n focusRing: tints[500].hex,\n shadow: {\n outline: rgba(tints[500].hex, 0.4),\n umbra: dark ? rgba(tints[900].hex, 0.4) : rgba(tints[500].hex, 0.2),\n penumbra: dark ? rgba(tints[900].hex, 0.28) : rgba(tints[500].hex, 0.14),\n ambient: dark ? rgba(tints[900].hex, 0.24) : rgba(tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n solid: ({base, dark, name, state, tone}) => {\n const mix = dark ? screen : multiply\n const mix2 = dark ? multiply : screen\n const defaultTints = tones[name] || tones.default\n const isNeutral = NEUTRAL_TONES.includes(name) && NEUTRAL_TONES.includes(tone)\n\n let tints = tones[tone === 'default' ? name : tone] || defaultTints\n\n if (state === 'disabled') {\n tints = defaultTints\n\n const bg = mix(base.bg, tints[dark ? 800 : 200].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 800 : 200].hex),\n iconColor: '', // Add color\n\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n accent: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n link: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n code: {\n bg,\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'hovered') {\n const bg = mix(base.bg, tints[dark ? 300 : 600].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 300 : 600].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n iconColor: '', // Add color\n\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'pressed') {\n const bg = mix(base.bg, tints[dark ? 200 : 800].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg: mix(base.bg, tints[dark ? 200 : 800].hex),\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n iconColor: '', // Add color\n\n border: mix(base.bg, tints[dark ? 200 : 800].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 200 : 800].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 200 : 800].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n iconColor: '', // Add color\n\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n // state: \"enabled\" | unknown\n const bg = mix(base.bg, tints[dark ? 400 : 500].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 400 : 500].hex),\n iconColor: '', // Add color\n\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 900 : 100].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 900 : 100].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 900 : 100].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 900 : 100].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n muted: ({base, dark, name, state, tone}) => {\n const mix = dark ? screen : multiply\n const defaultTints = tones[name] || tones.default\n const isNeutral = NEUTRAL_TONES.includes(name) && NEUTRAL_TONES.includes(tone)\n\n let tints = tones[tone === 'default' ? name : tone] || defaultTints\n\n if (state === 'disabled') {\n tints = defaultTints\n\n const bg = base.bg\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 950 : 50].hex),\n iconColor: '', // Add color\n fg: mix(bg, tints[dark ? 800 : 200].hex),\n muted: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n accent: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n link: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n code: {\n bg,\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n skeleton: {\n from: rgba(skeletonFrom, 0.5),\n to: rgba(skeletonFrom, 0.25),\n },\n }\n }\n\n if (state === 'hovered') {\n // if (isNeutral) {\n // tints = tones.primary\n // }\n\n const bg = mix(base.bg, tints[dark ? 950 : 50].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n iconColor: '', // Add color\n\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'pressed') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 900 : 100].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n iconColor: '', // Add color\n\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 900 : 100].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n iconColor: '', // Add color\n\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n const bg = base.bg\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 300 : 700].hex),\n iconColor: '', // Add color\n\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n enabled: {\n ...muted.enabled,\n border: muted.enabled.bg,\n },\n hovered: {\n ...muted.hovered,\n border: muted.hovered.bg,\n },\n pressed: {\n ...muted.pressed,\n border: muted.pressed.bg,\n },\n selected: {\n ...muted.selected,\n border: muted.selected.bg,\n },\n disabled: {\n ...muted.disabled,\n border: muted.disabled.bg,\n },\n }\n }\n\n if (mode === 'ghost') {\n return {\n ...solid,\n enabled: {\n ...muted.enabled,\n border: base.border,\n },\n disabled: muted.disabled,\n }\n }\n\n return solid\n },\n\n card: ({base, dark, muted, name, solid, state}) => {\n if (state === 'hovered') {\n return muted[name].hovered\n }\n\n if (state === 'disabled') {\n return muted[name].disabled\n }\n\n const isNeutral = NEUTRAL_TONES.includes(name)\n const tints = tones[name] || tones.default\n const mix = dark ? screen : multiply\n\n if (state === 'pressed') {\n if (isNeutral) {\n return muted.primary.pressed\n }\n\n return muted[name].pressed\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n return solid.primary.enabled\n }\n\n return solid[name].enabled\n }\n\n const bg = base.bg\n const skeletonFrom = mix(base.bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n fg: base.fg,\n border: base.border,\n iconColor: '', // Add color\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: tints[dark ? 400 : 600].hex,\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n input: ({base, dark, mode, state}) => {\n const mix = dark ? screen : multiply\n\n if (mode === 'invalid') {\n const tints = tones.critical\n\n return {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n bg2: '', // Add color\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n border: mix(base.bg, tints[dark ? 800 : 200].hex),\n placeholder: mix(base.bg, tints[dark ? 600 : 400].hex),\n }\n }\n\n if (state === 'hovered') {\n return {\n bg: base.bg,\n bg2: '', // Add color\n\n fg: base.fg,\n border: mix(base.bg, hues.gray[dark ? 700 : 300].hex),\n placeholder: mix(base.bg, hues.gray[dark ? 600 : 400].hex),\n }\n }\n\n if (state === 'disabled') {\n return {\n bg: mix(base.bg, hues.gray[dark ? 950 : 50].hex),\n bg2: '', // Add color\n\n fg: mix(base.bg, hues.gray[dark ? 700 : 300].hex),\n border: mix(base.bg, hues.gray[dark ? 900 : 100].hex),\n placeholder: mix(base.bg, hues.gray[dark ? 800 : 200].hex),\n }\n }\n\n if (state === 'readOnly') {\n return {\n bg: mix(base.bg, hues.gray[dark ? 950 : 50].hex),\n bg2: '', // Add color\n\n fg: mix(base.bg, hues.gray[dark ? 200 : 800].hex),\n border: mix(base.bg, hues.gray[dark ? 800 : 200].hex),\n placeholder: mix(base.bg, hues.gray[dark ? 600 : 400].hex),\n }\n }\n\n return {\n bg: base.bg,\n bg2: '', // Add color\n fg: base.fg,\n border: base.border,\n placeholder: mix(base.bg, hues.gray[dark ? 600 : 400].hex),\n }\n },\n\n selectable: ({base, muted, tone, solid, state}) => {\n if (state === 'enabled') {\n return {\n ...muted[tone].enabled,\n bg: base.bg,\n }\n }\n\n if (state === 'pressed') {\n if (tone === 'default') {\n return muted.primary.pressed\n }\n\n return muted[tone].pressed\n }\n\n if (state === 'selected') {\n if (tone === 'default') {\n return solid.primary.enabled\n }\n\n return solid[tone].enabled\n }\n\n if (state === 'disabled') {\n return {\n ...muted[tone].disabled,\n bg: base.bg,\n }\n }\n\n return muted[tone][state]\n },\n\n spot: ({base, dark, key}) => {\n const mix = dark ? screen : multiply\n\n return mix(base.bg, hues[key][dark ? 400 : 500].hex)\n },\n\n syntax: ({base, dark}) => {\n const mix = dark ? screen : multiply\n const mainShade = dark ? 400 : 600\n const secondaryShade = dark ? 600 : 400\n\n return {\n atrule: mix(base.bg, hues.purple[mainShade].hex),\n attrName: mix(base.bg, hues.green[mainShade].hex),\n attrValue: mix(base.bg, hues.yellow[mainShade].hex),\n attribute: mix(base.bg, hues.yellow[mainShade].hex),\n boolean: mix(base.bg, hues.purple[mainShade].hex),\n builtin: mix(base.bg, hues.purple[mainShade].hex),\n cdata: mix(base.bg, hues.yellow[mainShade].hex),\n char: mix(base.bg, hues.yellow[mainShade].hex),\n class: mix(base.bg, hues.orange[mainShade].hex),\n className: mix(base.bg, hues.cyan[mainShade].hex),\n comment: mix(base.bg, hues.gray[secondaryShade].hex),\n constant: mix(base.bg, hues.purple[mainShade].hex),\n deleted: mix(base.bg, hues.red[mainShade].hex),\n doctype: mix(base.bg, hues.gray[secondaryShade].hex),\n entity: mix(base.bg, hues.red[mainShade].hex),\n function: mix(base.bg, hues.green[mainShade].hex),\n hexcode: mix(base.bg, hues.blue[mainShade].hex),\n id: mix(base.bg, hues.purple[mainShade].hex),\n important: mix(base.bg, hues.purple[mainShade].hex),\n inserted: mix(base.bg, hues.yellow[mainShade].hex),\n keyword: mix(base.bg, hues.magenta[mainShade].hex),\n number: mix(base.bg, hues.purple[mainShade].hex),\n operator: mix(base.bg, hues.magenta[mainShade].hex),\n prolog: mix(base.bg, hues.gray[secondaryShade].hex),\n property: mix(base.bg, hues.blue[mainShade].hex),\n pseudoClass: mix(base.bg, hues.yellow[mainShade].hex),\n pseudoElement: mix(base.bg, hues.yellow[mainShade].hex),\n punctuation: mix(base.bg, hues.gray[mainShade].hex),\n regex: mix(base.bg, hues.blue[mainShade].hex),\n selector: mix(base.bg, hues.red[mainShade].hex),\n string: mix(base.bg, hues.yellow[mainShade].hex),\n symbol: mix(base.bg, hues.purple[mainShade].hex),\n tag: mix(base.bg, hues.red[mainShade].hex),\n unit: mix(base.bg, hues.orange[mainShade].hex),\n url: mix(base.bg, hues.red[mainShade].hex),\n variable: mix(base.bg, hues.red[mainShade].hex),\n }\n },\n})\n","import {ThemeFonts} from '../lib/theme'\n\nexport const fonts: ThemeFonts = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 3,\n descenderHeight: 3,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 13,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 17,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 21,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 25,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: 0,\n },\n ],\n },\n heading: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 700,\n medium: 800,\n semibold: 900,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 12,\n iconSize: 17,\n lineHeight: 17,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 21,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 33,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 39,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 9,\n descenderHeight: 9,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 45,\n letterSpacing: 0,\n },\n ],\n },\n label: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weights: {\n regular: 600,\n medium: 700,\n semibold: 800,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 9.8,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 11.25,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.75,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 14,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15.5,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n },\n ],\n },\n text: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 3,\n descenderHeight: 3,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 13,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 17,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 21,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 25,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: 0,\n },\n ],\n },\n}\n","import {RootTheme} from '../types'\nimport {color} from './color'\nimport {fonts} from './fonts'\n\n/**\n * @public\n */\nexport const studioTheme: RootTheme = {\n avatar: {\n sizes: [\n {distance: -3, size: 23},\n {distance: -6, size: 33},\n {distance: -9, size: 53},\n ],\n focusRing: {offset: 0, width: 1},\n },\n button: {\n textWeight: 'medium',\n focusRing: {offset: -1, width: 2},\n },\n card: {\n focusRing: {offset: -1, width: 1},\n },\n color,\n container: [320, 640, 960, 1280, 1600, 1920],\n focusRing: {\n offset: 1,\n width: 2,\n },\n fonts,\n media: [360, 600, 900, 1200, 1800, 2400],\n radius: [0, 1, 3, 6, 9, 12, 21],\n shadows: [\n null,\n {umbra: [0, 0, 0, 0], penumbra: [0, 0, 0, 0], ambient: [0, 0, 0, 0]},\n {umbra: [0, 3, 5, -2], penumbra: [0, 6, 10, 0], ambient: [0, 1, 18, 1]},\n {umbra: [0, 7, 8, -4], penumbra: [0, 12, 17, 2], ambient: [0, 5, 22, 4]},\n {umbra: [0, 9, 11, -5], penumbra: [0, 18, 28, 2], ambient: [0, 7, 34, 6]},\n {umbra: [0, 11, 15, -7], penumbra: [0, 24, 38, 3], ambient: [0, 9, 46, 8]},\n ],\n space: [0, 4, 8, 12, 20, 32, 52, 84, 136, 220],\n input: {\n checkbox: {\n size: 17,\n focusRing: {offset: -1, width: 1},\n },\n radio: {\n size: 17,\n markSize: 9,\n focusRing: {offset: -1, width: 1},\n },\n switch: {\n width: 21,\n height: 13,\n padding: 2,\n transitionDurationMs: 150,\n transitionTimingFunction: 'ease-out',\n focusRing: {offset: 1, width: 1},\n },\n border: {\n width: 1,\n },\n select: {\n focusRing: {offset: -1, width: 1},\n },\n text: {\n focusRing: {offset: -1, width: 1},\n },\n },\n // styles: {\n // button: {\n // root: {\n // transition: 'background-color 100ms,border-color 100ms,color 100ms',\n // },\n // },\n // card: {\n // root: {\n // transition: 'background-color 100ms,border-color 100ms,color 100ms',\n // },\n // },\n // },\n}\n","import {ThemeLayer} from './lib/theme/layer'\n\nexport const DEFAULT_THEME_LAYER: ThemeLayer = {\n dialog: {zOffset: 600},\n popover: {zOffset: 400},\n tooltip: {zOffset: 200},\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","import {createContext} from 'react'\nimport {globalScope} from '../lib/globalScope'\nimport {ThemeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/theme')\n\nglobalScope[key] = globalScope[key] || createContext<ThemeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const ThemeContext: React.Context<ThemeContextValue | null> = globalScope[key]\n","import {useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\nimport {DEFAULT_THEME_LAYER} from './defaults'\nimport {ThemeColorSchemeKey, ThemeColorName} from './lib/theme'\nimport {ThemeContext} from './themeContext'\nimport {RootTheme, Theme, ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: React.ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorName\n}\n\n/**\n * @public\n */\nexport function ThemeProvider(props: ThemeProviderProps): React.ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {\n children,\n scheme = parentTheme?.scheme || 'light',\n theme: themeProp = parentTheme?.theme || null,\n tone = parentTheme?.tone || 'default',\n } = props\n\n const theme: Theme | null = useMemo(() => {\n if (!themeProp) return null\n\n const {color: rootColor, layer: rootLayer, ...restTheme} = themeProp\n const colorScheme = rootColor[scheme] || rootColor.light\n const color = colorScheme[tone] || colorScheme.default\n const layer = rootLayer || DEFAULT_THEME_LAYER\n\n return {sanity: {...restTheme, color, layer}}\n }, [scheme, themeProp, tone])\n\n const value: ThemeContextValue | null = useMemo(\n () =>\n themeProp && {\n version: 0.0,\n theme: themeProp,\n scheme,\n tone,\n },\n [themeProp, scheme, tone],\n )\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <ThemeContext.Provider value={value}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object')\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {useContext} from 'react'\nimport {isRecord} from '../lib/isRecord'\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport function useRootTheme(): ThemeContextValue {\n const value: unknown = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): 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('useRootTheme(): the context value is not compatible')\n }\n\n return value as any as ThemeContextValue\n}\n","import {ThemeColorName, ThemeColorSchemeKey} from './lib/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?: ThemeColorName\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 {useTheme as useStyledTheme} from 'styled-components'\n\nimport {Theme} from './types'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n","import {useSyncExternalStore} from 'react'\nimport {useTheme} 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 theme = useTheme()\n const {media} = theme.sanity\n\n let store = MEDIA_STORE_CACHE.get(media)\n\n if (!store) {\n store = _createMediaStore(media)\n MEDIA_STORE_CACHE.set(media, store)\n }\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useSyncExternalStore} from 'react'\n\nlet MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n/**\n * Lazy init the matchMedia instance\n */\nfunction getMatchMedia(): MediaQueryList {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia('(prefers-color-scheme: dark)')\n }\n\n return MEDIA_QUERY_CACHE\n}\n\n/**\n * As the query is the same for all instances of this hook, we can cache the matchMedia instance\n * and have cheap `change` event listeners, while getSnapshot always reads from the same\n * matchMedia instance and we don't get any tearing.\n * Tearing in this context means the bad edge case in React concurrent render mdoe\n * where you sometimes would end up with some components doing render while seeing `usePrefersDark() === true` while others would see `usePrefersDark() === false`\n * during the same render.\n * By using `useSyncExternalStore` every component only sees the same value during the same render, and always re-render when it changes no matter\n * what React.memo boundaries there might be between the layers..\n */\nfunction subscribe(onStoreChange: () => void): () => void {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n}\n\n/**\n * Only called client-side, when using createRoot, or after hydration is complete when using hydrateRoot.\n * It's important that this function does not create new objects or arrays when called:\n * https://beta.reactjs.org/apis/react/useSyncExternalStore#im-getting-an-error-the-result-of-getsnapshot-should-be-cached\n */\nfunction getSnapshot() {\n return getMatchMedia().matches\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return false\n}\n\n/**\n * @public\n */\nexport function usePrefersDark(): boolean {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {useSyncExternalStore} from 'react'\n\nlet MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n/**\n * Lazy init the matchMedia instance\n */\nfunction getMatchMedia(): MediaQueryList {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia('(prefers-reduced-motion: reduce)')\n }\n\n return MEDIA_QUERY_CACHE\n}\n\n/**\n * As the query is the same for all instances of this hook, we can cache the matchMedia instance\n * and have cheap `change` event listeners, while getSnapshot always reads from the same\n * matchMedia instance and we don't get any tearing.\n * Tearing in this context means the bad edge case in React concurrent render mdoe\n * where you sometimes would end up with some components doing render while seeing `usePrefersDark() === true` while others would see `usePrefersDark() === false`\n * during the same render.\n * By using `useSyncExternalStore` every component only sees the same value during the same render, and always re-render when it changes no matter\n * what React.memo boundaries there might be between the layers..\n */\nfunction subscribe(onStoreChange: () => void): () => void {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n}\n\n/**\n * Only called client-side, when using createRoot, or after hydration is complete when using hydrateRoot.\n * It's important that this function does not create new objects or arrays when called:\n * https://beta.reactjs.org/apis/react/useSyncExternalStore#im-getting-an-error-the-result-of-getsnapshot-should-be-cached\n */\nfunction getSnapshot() {\n return getMatchMedia().matches\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return false\n}\n\n/**\n * Returns true if motion should be reduced\n * @public\n */\nexport function usePrefersReducedMotion(): boolean {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {useEffect, useLayoutEffect} from 'react'\n\n/**\n * @beta\n */\nexport const useIsomorphicEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n","import {useRef} from 'react'\nimport {useIsomorphicEffect} from './useIsomorphicEffect'\n\n/**\n * @beta\n */\nexport function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useIsomorphicEffect(() => {\n if (!ref) return\n\n if (typeof ref === 'function') {\n ref(innerRef.current)\n } else {\n ref.current = innerRef.current\n }\n })\n\n return innerRef\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n if (ref.current) {\n ref.current.setCustomValidity(customValidity || '')\n }\n }, [customValidity, ref])\n}\n","import {CSSObject} from '../../types/styled'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveBorderStyleProps} from './types'\n\nconst BORDER_VALUE = '1px solid var(--card-border-color)'\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$border, (value) =>\n value ? {'&&': {border: BORDER_VALUE}} : {'&&': {border: 0}},\n )\n}\n\nfunction borderTop(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderTop, (value) =>\n value ? {'&&': {borderTop: BORDER_VALUE}} : {'&&': {borderTop: 0}},\n )\n}\n\nfunction borderRight(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderRight, (value) =>\n value ? {'&&': {borderRight: BORDER_VALUE}} : {'&&': {borderRight: 0}},\n )\n}\n\nfunction borderBottom(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderBottom, (value) =>\n value ? {'&&': {borderBottom: BORDER_VALUE}} : {'&&': {borderBottom: 0}},\n )\n}\n\nfunction borderLeft(props: ResponsiveBorderStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$borderLeft, (value) =>\n value ? {'&&': {borderLeft: BORDER_VALUE}} : {'&&': {borderLeft: 0}},\n )\n}\n","import {Property} from 'csstype'\nimport {CSSObject} from '../../types/styled'\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$display, (display) => ({\n '&:not([hidden])': {display},\n }))\n}\n\nfunction responsiveBoxSizingStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$sizing, (sizing) => ({\n boxSizing: BOX_SIZING[sizing],\n }))\n}\n\nfunction responsiveBoxHeightStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$height, (height) => ({\n height: BOX_HEIGHT[height],\n }))\n}\n\nfunction responsiveBoxOverflowStyle(props: ResponsiveBoxStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$overflow, (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject} from '../../types/styled'\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$align, (align) => {\n return {alignItems: align}\n })\n}\n\nfunction responsiveFlexGapStyle(props: ResponsiveFlexStyleProps & ThemeProps) {\n const {theme} = props\n const {media, space} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$direction, (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {EMPTY_ARRAY} from '../../constants'\nimport {CSSObject} from '../../types/styled'\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 {theme} = props\n const {media} = theme.sanity\n\n if (!props.$flex) return EMPTY_ARRAY\n\n return _responsive(media, props.$flex, (flex) => ({flex}))\n}\n","import {FocusRing} from '../../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: FocusRing\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} from '../../types/styled'\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$autoFlow, (autoFlow) => ({\n gridAutoFlow: autoFlow,\n }))\n}\n\nfunction responsiveGridAutoRowsStyle(props: ResponsiveGridStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media, space} = theme.sanity\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 {theme} = props\n const {media, space} = theme.sanity\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 {theme} = props\n const {media, space} = theme.sanity\n\n return _responsive(media, props.$gapY, (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject} from '../../types/styled'\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 {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$rowStart, (rowStart) => ({\n gridRowStart: rowStart,\n }))\n}\n\nfunction responsiveGridItemRowEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$rowEnd, (rowEnd) => ({gridRowEnd: rowEnd}))\n}\n\nfunction responsiveGridItemColumnStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\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 {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$columnStart, (columnStart) => ({\n gridColumnStart: columnStart,\n }))\n}\n\nfunction responsiveGridItemColumnEndStyle(props: ResponsiveGridItemStyleProps & ThemeProps) {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$columnEnd, (columnEnd) => ({\n gridColumnEnd: columnEnd,\n }))\n}\n","import {CSSObject} from '../../types/styled'\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, theme} = props\n const {fonts, media, space: spaceScale} = theme.sanity\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 = fonts.text.sizes[_fontSize[i]] || fonts.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = spaceScale[_padding[i]]\n const s = spaceScale[_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 {css} from 'styled-components'\nimport {ThemeColorSchemeKey, ThemeFontWeightKey} from '../../theme'\nimport {CardTone} from '../../types'\nimport {CSSObject} from '../../types/styled'\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 {theme, $scheme, $tone, $weight} = props\n const font = theme.sanity.fonts.text\n const color = theme.sanity.color.input\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.family};\n font-weight: ${($weight && font.weights[$weight]) || font.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.default.enabled.fg};\n --input-placeholder-color: ${color.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.default.enabled.fg};\n --input-placeholder-color: ${color.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.default.disabled.fg};\n --input-placeholder-color: ${color.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.invalid.enabled.fg};\n --input-placeholder-color: ${color.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.default.readOnly.fg};\n --input-placeholder-color: ${color.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {theme} = props\n const {fonts, media} = theme.sanity\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = fonts.text.sizes[sizeIndex] || fonts.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, theme} = props\n const {input} = theme.sanity\n const {focusRing} = input.text\n const color = theme.sanity.color.input\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.default.enabled.bg};\n --card-fg-color: ${color.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.invalid.enabled.bg};\n --card-fg-color: ${color.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.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.default.enabled.border, width: input.border.width},\n focusRing,\n })};\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${$unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing})};\n }\n }\n\n /* disabled */\n *:disabled + & {\n --card-bg-color: ${color.default.disabled.bg} !important;\n --card-fg-color: ${color.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:read-only + & {\n --card-bg-color: ${color.default.readOnly.bg} !important;\n --card-fg-color: ${color.default.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.default.hovered.bg};\n --card-fg-color: ${color.default.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.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CSSObject} from '../../types/styled'\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 '../../types/styled'\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} from '../../types/styled'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveRadiusStyleProps} from './types'\n\nexport function responsiveRadiusStyle(props: ResponsiveRadiusStyleProps & ThemeProps): CSSObject[] {\n const {theme} = props\n const {media, radius} = theme.sanity\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 {EMPTY_RECORD} from '../../constants'\nimport {BoxShadow, ThemeShadow} from '../../theme'\nimport {CSSObject} from '../../types/styled'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveShadowStyleProps} from './types'\n\nfunction toBoxShadow(shadow: BoxShadow, color: string) {\n return `${shadow.map(rem).join(' ')} ${color}`\n}\n\nfunction shadowStyle(shadow: ThemeShadow | null): CSSObject {\n if (!shadow) return EMPTY_RECORD\n\n const outline = `0 0 0 ${rem(1)} 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 {theme} = props\n const {media, shadows} = theme.sanity\n\n return _responsive(media, props.$shadow, (shadow) => shadowStyle(shadows[shadow]))\n}\n","import {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, theme} = props\n const {weights} = theme.sanity.fonts.text\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: ${theme.sanity.fonts.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: ${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 `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveTextAlignStyle,\n responsiveTextFont,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey} from '../../theme'\nimport {TextAlign} from '../../types'\nimport {textBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface TextProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** When `true` the text color will be muted. */\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<ResponsiveFontStyleProps>(\n responsiveTextFont,\n responsiveTextAlignStyle,\n textBaseStyle,\n)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = forwardRef(function Text(\n props: TextProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <Root\n data-ui=\"Text\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n ref={ref}\n $size={useArrayProp(size)}\n $weight={weight}\n >\n <span>{children}</span>\n </Root>\n )\n})\n","import {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {CSSObject} from '../../types/styled'\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}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n position: 'absolute',\n boxSizing: 'border-box',\n zIndex: 0,\n opacity: 0,\n transition: 'all 0.2s linear',\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n\n '& > svg': {\n width: '11px',\n height: '7px',\n position: 'absolute',\n top: '-5px',\n left: '50%',\n transform: 'translateX(-6px)',\n\n // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color, theme} = props\n const {focusRing} = theme.sanity.avatar\n\n return {\n backgroundColor: $color,\n position: 'relative',\n boxSizing: 'border-box',\n userSelect: 'none',\n boxShadow: '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: 0.5,\n },\n\n '&>svg': {\n // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n WebkitFontSmoothing: 'inherit',\n appearance: 'none',\n margin: 0,\n padding: 0,\n border: 0,\n font: 'inherit',\n color: 'inherit',\n outline: 'none',\n\n // @ts-expect-error -- TODO wait for CSSObject types to be fixed in `styled-components` itself\n '&:focus': {\n boxShadow: focusRingStyle({focusRing}),\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 {theme} = props\n const {avatar, media} = theme.sanity\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 avatarInitialsStyle(props: ThemeProps): CSSObject {\n const {theme} = props\n const {base} = theme.sanity.color\n\n return {\n width: '100%',\n height: '100%',\n color: base.fg,\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\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n }\n}\n","import {forwardRef, useCallback, useEffect, useId, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeColorSpotKey, useTheme} from '../../theme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types'\nimport {Text} from '../text'\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?: ThemeColorSpotKey\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: string; $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\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: colorKey = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 0,\n ...restProps\n } = props\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = useArrayProp(sizeProp)\n const theme = useTheme()\n const color = theme.sanity.color.spot[colorKey] || theme.sanity.color.spot.gray\n\n // @todo: remove this\n const avatarSize = theme.sanity.avatar.sizes[size[0]] || theme.sanity.avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(() => size.map((s) => (s === 0 ? 0 : s + 1)), [size])\n\n return (\n <Root\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $size={size}\n $color={color}\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 <svg 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 {!__unstable_hideInnerStroke && (\n <BgStroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n <Stroke\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n stroke={color}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <Initials>\n <Text as=\"span\" size={initialsSize} weight=\"medium\">\n {initials}\n </Text>\n </Initials>\n </>\n )}\n </Root>\n )\n})\n","import {forwardRef, useMemo} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {Text} from '../text'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {theme} = props\n const {avatar, media} = theme.sanity\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 {theme} = props\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(theme.sanity.space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst Root = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: AvatarCounterProps,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {count, size: sizeProp = 0} = props\n const size = useArrayProp(sizeProp)\n const counterSize = useMemo(() => size.map((s) => (s === 0 ? 0 : s + 1)), [size])\n\n return (\n <Root $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Text as=\"span\" size={counterSize} weight=\"medium\">\n {count}\n </Text>\n </Root>\n )\n})\n","import {isElement, isFragment} from 'react-is'\n\nexport function childrenToElementArray(\n children: React.ReactNode,\n): Array<React.ReactElement | string> {\n const childrenArray = Array.isArray(children) ? children : [children]\n\n return childrenArray.filter(\n (node) => isElement(node) || isFragment(node) || typeof node === 'string',\n ) as Array<React.ReactElement | string>\n}\n","import {cloneElement, forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp} from '../../hooks'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {AvatarSize} from '../../types'\nimport {childrenToElementArray} from '../helpers'\nimport {AvatarCounter} from './avatarCounter'\n\nconst BASE_STYLES = css`\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n`\n\nfunction avatarStackStyle() {\n return BASE_STYLES\n}\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {theme} = props\n const {avatar, media} = theme.sanity\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 = 0,\n ...restProps\n } = props\n const children = childrenToElementArray(childrenProp).filter(\n (child) => typeof child !== 'string',\n ) as React.ReactElement[]\n const maxLength = Math.max(maxLengthProp, 0)\n const size = useArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <Root data-ui=\"AvatarStack\" {...restProps} ref={ref} $size={size}>\n {len === 0 && (\n <div>\n <AvatarCounter count={len} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n boxStyle,\n flexItemStyle,\n FlexItemStyleProps,\n responsiveBoxStyle,\n ResponsiveBoxStyleProps,\n responsiveGridItemStyle,\n ResponsiveGridItemStyleProps,\n responsivePaddingStyle,\n ResponsivePaddingStyleProps,\n responsiveMarginStyle,\n ResponsiveMarginStyleProps,\n} from '../../styles/internal'\nimport {\n ResponsiveBoxProps,\n ResponsiveFlexItemProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps,\n} from '../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends ResponsiveFlexItemProps,\n ResponsiveBoxProps,\n ResponsiveGridItemProps,\n ResponsiveMarginProps,\n ResponsivePaddingProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n forwardedAs?: React.ElementType | keyof JSX.IntrinsicElements\n}\n\nconst Root = styled.div<\n FlexItemStyleProps &\n ResponsiveBoxStyleProps &\n ResponsiveGridItemStyleProps &\n ResponsiveMarginStyleProps &\n ResponsivePaddingStyleProps\n>(\n boxStyle,\n flexItemStyle,\n responsiveBoxStyle,\n responsiveGridItemStyle,\n responsiveMarginStyle,\n responsivePaddingStyle,\n)\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport const Box = forwardRef(function Box(\n props: BoxProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as: asProp = 'div',\n column,\n columnStart,\n columnEnd,\n display = 'block',\n flex,\n height,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n overflow,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n row,\n rowStart,\n rowEnd,\n sizing,\n ...restProps\n } = props\n\n return (\n <Root\n data-as={typeof asProp === 'string' ? asProp : undefined}\n data-ui=\"Box\"\n {...restProps}\n $column={useArrayProp(column)}\n $columnStart={useArrayProp(columnStart)}\n $columnEnd={useArrayProp(columnEnd)}\n $display={useArrayProp(display)}\n $flex={useArrayProp(flex)}\n $height={useArrayProp(height)}\n $margin={useArrayProp(margin)}\n $marginX={useArrayProp(marginX)}\n $marginY={useArrayProp(marginY)}\n $marginTop={useArrayProp(marginTop)}\n $marginRight={useArrayProp(marginRight)}\n $marginBottom={useArrayProp(marginBottom)}\n $marginLeft={useArrayProp(marginLeft)}\n $overflow={useArrayProp(overflow)}\n $padding={useArrayProp(padding)}\n $paddingX={useArrayProp(paddingX)}\n $paddingY={useArrayProp(paddingY)}\n $paddingTop={useArrayProp(paddingTop)}\n $paddingRight={useArrayProp(paddingRight)}\n $paddingBottom={useArrayProp(paddingBottom)}\n $paddingLeft={useArrayProp(paddingLeft)}\n $row={useArrayProp(row)}\n $rowStart={useArrayProp(rowStart)}\n $rowEnd={useArrayProp(rowEnd)}\n $sizing={useArrayProp(sizing)}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </Root>\n )\n})\n","import {ThemeProps} from '../../styles'\nimport {CSSObject} from '../../types/styled'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps & ThemeProps): CSSObject {\n const {$mode, $tone, theme} = props\n const palette = theme.sanity.color[$mode === 'outline' ? 'muted' : 'solid']\n const color = palette[$tone] || palette.default\n\n return {\n backgroundColor: color.enabled.bg,\n color: color.enabled.fg,\n boxShadow: `inset 0 0 0 1px ${color.enabled.border}`,\n cursor: 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n },\n }\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {BadgeMode, BadgeTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n 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 mode = 'default',\n padding = 1,\n radius = 2,\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <Root\n data-ui=\"Badge\"\n {...restProps}\n $mode={mode}\n $tone={tone}\n $radius={useArrayProp(radius)}\n padding={useArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize} weight=\"medium\">\n {children}\n </Text>\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n flexItemStyle,\n FlexItemStyleProps,\n responsiveFlexStyle,\n ResponsiveFlexStyleProps,\n} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveFlexProps, ResponsiveFlexItemProps} from '../types'\n\n/**\n * @public\n */\nexport interface FlexProps\n extends Omit<BoxProps, 'display'>,\n ResponsiveFlexProps,\n ResponsiveFlexItemProps {\n gap?: number | number[]\n}\n\nconst Root = styled(Box)<FlexItemStyleProps & ResponsiveFlexStyleProps>(\n flexItemStyle,\n responsiveFlexStyle,\n)\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport const Flex = forwardRef(function Flex(\n props: FlexProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {align, as, direction = 'row', gap, justify, wrap, ...restProps} = props\n\n return (\n // @ts-expect-error -- some dollar prefixed typings aren't inferred correctly https://github.com/styled-components/styled-components/issues/4062\n <Root\n data-ui=\"Flex\"\n {...restProps}\n $align={useArrayProp(align)}\n $direction={useArrayProp(direction)}\n $gap={useArrayProp(gap)}\n $justify={useArrayProp(justify)}\n $wrap={useArrayProp(wrap)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {SpinnerIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled, {keyframes} from 'styled-components'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Root = styled(Text)`\n & > span > svg {\n animation: ${rotate} 500ms linear infinite;\n }\n`\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = forwardRef(function Spinner(\n props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n return (\n <Root data-ui=\"Spinner\" {...props} ref={ref}>\n <SpinnerIcon />\n </Root>\n )\n})\n","import {ThemeColorBase, ThemeColorGenericState} from '../../theme'\nimport {CSSObject} from '../../types/styled'\n\n/**\n * @internal\n */\nexport function _colorVarsStyle(\n base: ThemeColorBase,\n color: ThemeColorGenericState,\n checkered = false,\n): CSSObject {\n return {\n // Base\n // @todo: rename to \"--base-\"?\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 '--card-focus-ring-color': base.focusRing,\n '--card-icon-color': color.iconColor,\n\n // Card\n '--card-bg-color': color.bg,\n '--card-bg2-color': color.bg2,\n '--card-bg-image': checkered\n ? `repeating-conic-gradient(${color.bg} 0% 25%, ${color.bg2 || color.bg} 0% 50%)`\n : undefined,\n '--card-fg-color': color.fg,\n '--card-border-color': color.border,\n '--card-muted-fg-color': color.muted?.fg,\n '--card-accent-fg-color': color.accent?.fg,\n '--card-link-fg-color': color.link?.fg,\n '--card-code-bg-color': color.code?.bg,\n '--card-code-fg-color': color.code?.fg,\n '--card-skeleton-color-from': color.skeleton?.from,\n '--card-skeleton-color-to': color.skeleton?.to,\n\n // @todo: deprecate\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 {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types'\nimport {CSSObject} from '../../types/styled'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles({$width}: {$width?: ButtonWidth}): ReturnType<typeof css> {\n return css`\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\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\nconst buttonTheme = {border: {width: 1}}\nconst defaultBoxShadow = '0px 2px 0px 0px rgba(112, 128, 155, 0.19);'\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, theme} = props\n const {focusRing} = theme.sanity.button\n const shadow = props.$mode !== 'bleed'\n const base = theme.sanity.color.base\n const mode = theme.sanity.color.button[$mode] || theme.sanity.color.button.default\n const color = mode[props.$tone] || mode.default\n const border = {width: buttonTheme.border.width, color: 'var(--card-border-color)'}\n\n return [\n _colorVarsStyle(base, color.enabled),\n {\n backgroundColor: 'var(--card-bg-color)',\n color: 'var(--card-fg-color)',\n boxShadow: focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _colorVarsStyle(base, 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,\n border: {width: 2, color: base.bg},\n 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': _colorVarsStyle(base, color.hovered),\n '&:active': _colorVarsStyle(base, color.pressed),\n '&[data-hovered]': _colorVarsStyle(base, color.hovered),\n },\n '&[data-selected]': _colorVarsStyle(base, color.pressed),\n },\n },\n theme.sanity.styles?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {createElement, forwardRef, isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {ThemeProps} from '../../styles'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {useTheme} from '../../theme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth, FlexJustify} from '../../types'\nimport {Box} from '../box'\nimport {Flex} from '../flex'\nimport {Spinner} from '../spinner'\nimport {Text} from '../text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n mode?: ButtonMode\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n space?: number | number[]\n textAlign?: ButtonTextAlign\n muted?: boolean\n text?: React.ReactNode\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\nconst Root = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps &\n ThemeProps\n>(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles)\n\nconst LoadingBox = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--card-bg-color);\n border-radius: inherit;\n z-index: 1;\n box-shadow: inherit;\n`\n\n/**\n * @public\n */\nexport const Button = forwardRef(function Button(\n props: ButtonProps & Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'width'>,\n ref: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n children,\n disabled,\n fontSize = 1,\n icon,\n iconRight,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n space: spaceProp = 3,\n text,\n textAlign,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n\n const justify = useArrayProp(justifyProp)\n const padding = useArrayProp(paddingProp)\n const paddingX = useArrayProp(paddingXProp)\n const paddingY = useArrayProp(paddingYProp)\n const paddingTop = useArrayProp(paddingTopProp)\n const paddingBottom = useArrayProp(paddingBottomProp)\n const paddingLeft = useArrayProp(paddingLeftProp)\n const paddingRight = useArrayProp(paddingRightProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n const theme = useTheme()\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <Root\n data-ui=\"Button\"\n {...restProps}\n $mode={mode}\n $radius={radius}\n $tone={tone}\n data-disabled={Boolean(loading || disabled)}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n ref={ref}\n type={type}\n $width={width}\n >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(icon || text || iconRight) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={space}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n {text && (\n <Box flex={iconRight ? 1 : undefined}>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={theme.sanity.button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </Root>\n )\n})\n","import {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\nimport {focusRingBorderStyle, 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, theme} = props\n const space = theme.sanity.space\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, theme} = props\n const {focusRing} = theme.sanity.card\n const {base, card, dark} = theme.sanity.color\n const border = {width: 0, color: 'var(--card-border-color)'}\n\n return css`\n color-scheme: ${dark ? 'dark' : 'light'};\n\n ${_colorVarsStyle(base, card.enabled, $checkered)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ${_colorVarsStyle(base, card.disabled, $checkered)}\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_colorVarsStyle(base, card.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_colorVarsStyle(base, card.hovered, $checkered)}\n }\n\n &:active {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n }\n }\n\n &:focus {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base, border, focusRing})\n : undefined};\n }\n\n &:focus:not(:focus-visible) {\n --card-focus-ring-box-shadow: ${$focusRing ? focusRingBorderStyle(border) : 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 ${_colorVarsStyle(base, card.disabled, $checkered)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n\n &[data-selected] {\n ${_colorVarsStyle(base, card.selected, $checkered)}\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_colorVarsStyle(base, card.hovered, $checkered)}\n }\n\n &:active {\n ${_colorVarsStyle(base, card.pressed, $checkered)}\n }\n }\n }\n\n &:focus {\n --card-focus-ring-box-shadow: ${$focusRing\n ? focusRingStyle({base, border, focusRing})\n : undefined};\n }\n\n &:focus:not(:focus-visible) {\n --card-focus-ring-box-shadow: ${$focusRing ? focusRingBorderStyle(border) : undefined};\n }\n }\n }\n\n ${theme.sanity.styles?.card?.root}\n `\n}\n","import {forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n responsiveBorderStyle,\n ResponsiveBorderStyleProps,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveShadowStyle,\n ResponsiveShadowStyleProps,\n} from '../../styles/internal'\nimport {ThemeColorProvider, ThemeColorSchemeKey, useRootTheme} from '../../theme'\nimport {CardTone} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveBorderProps, ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {cardStyle} from './styles'\nimport {CardStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface CardProps\n extends BoxProps,\n ResponsiveBorderProps,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n pressed?: boolean\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n}\n\nconst Root = styled(Box)<\n CardStyleProps &\n ResponsiveRadiusStyleProps &\n ResponsiveBorderStyleProps &\n ResponsiveShadowStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle)\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport const Card = forwardRef(function Card(\n props: CardProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n pressed,\n radius = 0,\n scheme,\n selected,\n shadow,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n const rootTheme = useRootTheme()\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n\n // TODO: Consider adding the wrapper approach for nested cards in which the tones are not changing, avoid unnecessary ThemeColorProvider\n return (\n <ThemeColorProvider scheme={scheme} tone={tone}>\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-scheme={rootTheme.scheme}\n data-ui=\"Card\"\n data-tone={tone}\n {...restProps}\n $border={useArrayProp(border)}\n $borderTop={useArrayProp(borderTop)}\n $borderRight={useArrayProp(borderRight)}\n $borderBottom={useArrayProp(borderBottom)}\n $borderLeft={useArrayProp(borderLeft)}\n $checkered={checkered}\n $focusRing={focusRing}\n $radius={useArrayProp(radius)}\n $shadow={useArrayProp(shadow)}\n $tone={tone}\n data-checkered={checkered ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n forwardedAs={as}\n ref={ref}\n selected={selected}\n />\n </ThemeColorProvider>\n )\n})\n","import {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 {theme} = props\n const color = theme.sanity.color.input\n const {input, radius} = theme.sanity\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.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.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.2 !important;\n }\n }\n }\n &:checked + span {\n background: ${color.default.enabled.bg2};\n box-shadow: ${focusRingBorderStyle({\n color: color.default.enabled.bg2,\n width: input.border.width,\n })};\n color: ${color.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.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.invalid.enabled.bg2,\n })};\n color: ${color.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.invalid.enabled.bg2};\n color: ${color.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.invalid.readOnly.bg2},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.default.disabled.border,\n })};\n color: ${color.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.default.disabled.bg2};\n }\n\n &[data-read-only] + span {\n background-color: ${color.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.default.readOnly.border,\n })};\n color: ${color.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.default.readOnly.bg2};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {forwardRef, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity} from '../../hooks'\nimport {checkboxBaseStyles, inputElementStyles} from './styles'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst Root = styled.div(checkboxBaseStyles)\nconst Input = styled.input(inputElementStyles)\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = props\n const ref = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root className={className} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </Root>\n )\n})\n","import {css, ExecutionContext} from 'styled-components'\n\nfunction codeSyntaxHighlightingStyle({theme}: ExecutionContext) {\n const color = theme.sanity.color.syntax\n\n return {\n '&.atrule': {color: color.atrule},\n '&.attr-name': {color: color.attrName},\n '&.attr-value': {color: color.attrValue},\n '&.attribute': {color: color.attribute},\n '&.boolean': {color: color.boolean},\n '&.builtin': {color: color.builtin},\n '&.cdata': {color: color.cdata},\n '&.char': {color: color.char},\n '&.class': {color: color.class},\n '&.class-name': {color: color.className},\n '&.comment': {color: color.comment},\n '&.constant': {color: color.constant},\n '&.deleted': {color: color.deleted},\n '&.doctype': {color: color.doctype},\n '&.entity': {color: color.entity},\n '&.function': {color: color.function},\n '&.hexcode': {color: color.hexcode},\n '&.id': {color: color.id},\n '&.important': {color: color.important},\n '&.inserted': {color: color.inserted},\n '&.keyword': {color: color.keyword},\n '&.number': {color: color.number},\n '&.operator': {color: color.operator},\n '&.prolog': {color: color.prolog},\n '&.property': {color: color.property},\n '&.pseudo-class': {color: color.pseudoClass},\n '&.pseudo-element': {color: color.pseudoElement},\n '&.punctuation': {color: color.punctuation},\n '&.regex': {color: color.regex},\n '&.selector': {color: color.selector},\n '&.string': {color: color.string},\n '&.symbol': {color: color.symbol},\n '&.tag': {color: color.tag},\n '&.unit': {color: color.unit},\n '&.url': {color: color.url},\n '&.variable': {color: color.variable},\n }\n}\n\nexport function codeBaseStyle(): ReturnType<typeof css> {\n return css`\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ${codeSyntaxHighlightingStyle}\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef} from 'react'\nimport Refractor from 'react-refractor'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveCodeFontStyle, ResponsiveFontStyleProps} from '../../styles/internal'\nimport {codeBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface CodeProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n weight?: string\n}\n\nconst Root = styled.pre<ResponsiveFontStyleProps>(codeBaseStyle, responsiveCodeFontStyle)\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: CodeProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {children, language: languageProp, size = 2, weight, ...restProps} = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n const registered = language ? Refractor.hasLanguage(language as any) : false\n\n return (\n <Root data-ui=\"Code\" {...restProps} $size={useArrayProp(size)} $weight={weight} ref={ref}>\n {!(language && registered) && <code>{children}</code>}\n {language && registered && <Refractor inline language={language} value={String(children)} />}\n </Root>\n )\n})\n","import {rem, _responsive, ThemeProps} from '../../styles'\nimport {CSSObject} from '../../types/styled'\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 {theme} = props\n const {container, media} = theme.sanity\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerProps extends BoxProps, ResponsiveWidthProps {}\n\nconst Root = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = forwardRef(function Container(\n props: ContainerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, width = 2, ...restProps} = props\n\n return (\n <Root\n data-ui=\"Container\"\n {...restProps}\n $width={useArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveGridStyle, ResponsiveGridStyleProps} from '../../styles/internal'\nimport {Box, BoxProps} from '../box'\nimport {ResponsiveGridProps} from '../types'\n\n/**\n * @public\n */\nexport interface GridProps extends Omit<BoxProps, 'display'>, ResponsiveGridProps {}\n\nconst Root = styled(Box)<ResponsiveGridStyleProps>(responsiveGridStyle)\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n props: GridProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'rows'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, autoRows, autoCols, autoFlow, columns, gap, gapX, gapY, rows, children, ...restProps} =\n props\n\n return (\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Grid\"\n {...restProps}\n $autoRows={useArrayProp(autoRows)}\n $autoCols={useArrayProp(autoCols)}\n $autoFlow={useArrayProp(autoFlow)}\n $columns={useArrayProp(columns)}\n $gap={useArrayProp(gap)}\n $gapX={useArrayProp(gapX)}\n $gapY={useArrayProp(gapY)}\n $rows={useArrayProp(rows)}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\n","import {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, theme} = props\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: ${theme.sanity.fonts.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 & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {\n ResponsiveFontStyleProps,\n responsiveHeadingFont,\n responsiveTextAlignStyle,\n ResponsiveTextAlignStyleProps,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey} from '../../theme'\nimport {TextAlign} from '../../types'\nimport {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: HeadingProps & Omit<React.HTMLProps<HTMLElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <Root\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </Root>\n )\n})\n","import {rem, _responsive, ThemeProps} from '../../styles'\nimport {CSSObject} from '../../types/styled'\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 {theme} = props\n\n return _responsive(theme.sanity.media, props.$space, (spaceIndex) => {\n const space = rem(theme.sanity.space[spaceIndex])\n\n return {\n margin: `-${space} 0 0 -${space}`,\n '& > div': {padding: `${space} 0 0 ${space}`},\n }\n })\n}\n","import {forwardRef, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {childrenToElementArray} from '../helpers'\nimport {inlineBaseStyle, inlineSpaceStyle} from './styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'display'> {\n /** The spacing between children. */\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveInlineSpaceStyleProps>(inlineBaseStyle, inlineSpaceStyle)\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n props: InlineProps & React.HTMLProps<HTMLDivElement>,\n ref,\n) {\n const {as, children: childrenProp, space, ...restProps} = props\n\n const children = useMemo(\n () =>\n childrenToElementArray(childrenProp)\n .filter(Boolean)\n .map((child, idx) => <div key={idx}>{child}</div>),\n [childrenProp],\n )\n\n return (\n <Root\n data-ui=\"Inline\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n >\n {children}\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n}\n\nfunction kbdStyle() {\n return css`\n background: var(--card-bg2-color);\n font: inherit;\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 = 1, padding = 1, radius = 2, ...restProps} = props\n\n return (\n <Root data-ui=\"KBD\" {...restProps} $radius={useArrayProp(radius)} ref={ref}>\n <Box as=\"span\" padding={padding}>\n <Text as=\"span\" muted size={fontSize} weight=\"medium\">\n {children}\n </Text>\n </Box>\n </Root>\n )\n})\n","import {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, theme} = props\n const {fonts} = theme.sanity\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: ${fonts.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 {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {responsiveLabelFont, responsiveTextAlignStyle} from '../../styles/internal'\nimport {ThemeFontWeightKey} from '../../theme'\nimport {TextAlign} from '../../types'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n as?: React.ElementType | keyof JSX.IntrinsicElements\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nconst SpanWithTextOverflow = styled.span`\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n props: LabelProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <Root\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={useArrayProp(align)}\n $muted={muted}\n $size={useArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {BoundaryElementContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/boundaryElement')\n\nglobalScope[key] = globalScope[key] || createContext<BoundaryElementContextValue | null>(null)\n\nexport const BoundaryElementContext: React.Context<BoundaryElementContextValue | null> =\n globalScope[key]\n","import {useMemo} from 'react'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.ReactElement {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n","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","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {forwardRef, useCallback, useMemo, useState} from 'react'\nimport {useElementSize, useForwardedRef} from '../../hooks'\nimport {useTheme} from '../../theme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme()\n const {children, media = theme.sanity.media, ...restProps} = props\n\n const forwardedRef = useForwardedRef(ref)\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => findMaxBreakpoints(media, width), [media, width])\n const min = useMemo(() => findMinBreakpoints(media, width), [media, width])\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n forwardedRef.current = el\n setElement(el)\n },\n [forwardedRef],\n )\n\n return (\n <div\n data-ui=\"ElementQuery\"\n {...restProps}\n data-eq-max={max.length ? max.join(' ') : undefined}\n data-eq-min={min.length ? min.join(' ') : undefined}\n ref={setRef}\n >\n {children}\n </div>\n )\n})\n","import {Component, PropsWithChildren} from 'react'\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {Context, createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {LayerContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/layer')\n\nglobalScope[key] = globalScope[key] || createContext<LayerContextValue | null>(null)\n\nexport const LayerContext: Context<LayerContextValue | null> = globalScope[key]\n","import {useContext} from 'react'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {\n isHTMLElement,\n isHTMLAnchorElement,\n isHTMLInputElement,\n isHTMLButtonElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch (_) {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function LayerProvider(props: LayerProviderProps): React.ReactElement {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useArrayProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n","import {FocusEvent, forwardRef, useCallback, useEffect, useRef} from 'react'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {useForwardedRef} from '../../hooks'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\nconst Root = styled.div({position: 'relative'})\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {children, onActivate, onFocus, style = EMPTY_RECORD, ...restProps} = props\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const forwardedRef = useForwardedRef(ref)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = forwardedRef.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [forwardedRef, isTopLayer, onFocus],\n )\n\n return (\n <Root\n {...restProps}\n data-ui=\"Layer\"\n onFocus={handleFocus}\n ref={forwardedRef}\n style={{...style, zIndex}}\n >\n {children}\n </Root>\n )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n props: LayerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps} ref={ref}>\n {children}\n </LayerChildren>\n </LayerProvider>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {PortalContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/portal')\nconst elementKey = Symbol.for('@sanity/ui/context/portal/element')\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nglobalScope[key] = globalScope[key] || createContext<PortalContextValue>(defaultContextValue)\n\nexport const PortalContext: React.Context<PortalContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createPortal} from 'react-dom'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\nexport interface PortalProps {\n children: React.ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/**\n * @public\n */\nexport function Portal(props: PortalProps): React.ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n","import {useRef} from 'react'\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n *\n * @internal\n */\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n\nexport function useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n","import {useMemo} from 'react'\nimport {useUnique} from '../../hooks/_internal'\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\nconst __BROWSER__ = typeof document !== 'undefined'\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || (__BROWSER__ && document.body) || null,\n elements,\n }\n }, [boundaryElement, element, elements])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\nconst Root = styled.div`\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n`\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {as, children} = props\n\n return (\n <Root aria-hidden as={as} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Root>\n )\n})\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {forwardRef, useEffect, useMemo, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {_isScrollable} from '../../helpers'\nimport {useForwardedRef} from '../../hooks'\nimport {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme} from '../../theme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst Root = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: VirtualListProps &\n StackProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n): React.ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme().sanity\n const forwardedRef = useForwardedRef(ref)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect(() => {\n if (!forwardedRef.current) return\n\n let _scrollEl = forwardedRef.current.parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n if (_scrollEl) {\n const scrollEl = _scrollEl\n\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [forwardedRef])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Root as={as} data-ui=\"VirtualList\" {...restProps} ref={forwardedRef}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Root>\n )\n})\n","import {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 27\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 11\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 {Theme} from '../../theme'\nimport {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n theme: Theme\n width: PopoverWidth[]\n}): number | undefined {\n const {mediaIndex, theme, 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' ? theme.sanity.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 {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {DEFAULT_POPOVER_ARROW_HEIGHT, DEFAULT_POPOVER_ARROW_WIDTH} from './constants'\n\nconst Root = styled.div`\n position: absolute;\n pointer-events: none;\n width: ${DEFAULT_POPOVER_ARROW_WIDTH}px;\n height: ${DEFAULT_POPOVER_ARROW_WIDTH}px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n transform-origin: ${DEFAULT_POPOVER_ARROW_WIDTH / 2}px ${DEFAULT_POPOVER_ARROW_WIDTH / 2}px;\n }\n\n [data-placement^='top'] > & {\n bottom: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n }\n\n [data-placement^='right'] > & {\n left: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -${DEFAULT_POPOVER_ARROW_WIDTH}px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n`\n\nconst BorderPath = styled.path`\n fill: var(--card-shadow-outline-color);\n`\n\nconst ShapePath = styled.path`\n fill: var(--card-bg-color);\n`\n\nexport const PopoverArrow = forwardRef(function PopoverArrow(\n props: Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n return (\n <Root data-ui=\"Popover__arrow\" {...props} ref={ref}>\n <svg\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n viewBox=\"0 0 27 11\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <BorderPath d=\"M1.18708 1C3.29803 1.0011 5.29585 1.95479 6.62414 3.59561L11.1683 9.20895C12.369 10.6922 14.631 10.6922 15.8317 9.20894L20.3759 3.59561C21.7042 1.95478 23.702 1.0011 25.8129 1H21.9436C21.0533 1.49255 20.2545 2.15618 19.5986 2.96641L15.0545 8.57975C14.254 9.56855 12.746 9.56855 11.9455 8.57975L7.40139 2.96642C6.74548 2.15618 5.94673 1.49255 5.05643 1H1.18708Z\" />\n <ShapePath d=\"M1.18342 0C3.59749 0 5.88246 1.0901 7.40138 2.96642L11.9455 8.57975C12.746 9.56855 14.254 9.56855 15.0545 8.57975L19.5986 2.96641C21.1175 1.0901 23.4025 0 25.8166 0H27H0H1.18342Z\" />\n </svg>\n </Root>\n )\n})\n","import {Strategy} from '@floating-ui/react-dom'\nimport React, {CSSProperties, forwardRef, memo, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {FLOATING_STATIC_SIDES} from '../../constants'\nimport {ThemeColorSchemeKey} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins, Radius} from '../../types'\nimport {useLayer} from '../../utils'\nimport {Card} from '../card'\nimport {Flex} from '../flex'\nimport {DEFAULT_POPOVER_ARROW_WIDTH, DEFAULT_POPOVER_MARGINS} from './constants'\nimport {PopoverArrow} from './popoverArrow'\n\nconst Root = styled(Card)({\n '&:not([hidden])': {\n display: 'flex',\n },\n flexDirection: 'column',\n width: 'max-content',\n minWidth: 'min-content',\n})\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: 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 arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\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 position: strategy,\n top: y,\n left: x,\n width,\n zIndex,\n ...style,\n }),\n [strategy, style, width, x, y, zIndex],\n )\n\n const staticSide = placement && FLOATING_STATIC_SIDES[placement.split('-')[0]]\n\n const arrowStyle: CSSProperties = useMemo(() => {\n const style: CSSProperties = {\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }\n\n if (staticSide) style[staticSide] = 0 - DEFAULT_POPOVER_ARROW_WIDTH\n\n return style\n }, [arrowX, arrowY, staticSide])\n\n return (\n <Root\n data-ui=\"Popover\"\n {...restProps}\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 >\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 && <PopoverArrow ref={arrowRef} style={arrowStyle} />}\n </Root>\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 {\n MutableRefObject,\n RefCallback,\n cloneElement,\n forwardRef,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react'\nimport {useForwardedRef, useArrayProp, useElementSize, useMediaIndex} from '../../hooks'\nimport {ThemeColorSchemeKey, useTheme} from '../../theme'\nimport {BoxOverflow, CardTone, Placement, PopoverMargins} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement} from '../../utils'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\nexport type {PopoverUpdateCallback}\n\n/** @public */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n matchReferenceWidth?: boolean\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n referenceElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const theme = useTheme()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n arrow: arrowProp = true,\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = theme.sanity.layer?.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const forwardedRef = useForwardedRef(ref)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({mediaIndex, theme, width: widthArrayProp})\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>()\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = forwardedRef.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, forwardedRef, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(\n offset({\n mainAxis: arrowProp ? DEFAULT_POPOVER_DISTANCE : 0,\n }),\n )\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 eleement\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 ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\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 setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n forwardedRef.current = node\n refs.setFloating(node)\n },\n [forwardedRef, refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const childRef = (childProp as any)?.ref\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n if (!childProp || referenceElement) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n useEffect(() => {\n refs.setReference(referenceElement || null)\n }, [referenceElement, refs])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n 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 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 {open && (\n <>\n {portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n {popover}\n </Portal>\n ) : (\n popover\n )}\n </>\n )}\n\n {/* the referred element */}\n {child}\n </>\n )\n }),\n)\n\nPopover.displayName = 'Popover'\n","import {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 {theme} = props\n const {input} = theme.sanity\n const {focusRing} = input.radio\n const color = theme.sanity.color.input\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.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.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.default.enabled.bg2};\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.default.enabled.border},\n focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.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.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.invalid.enabled.bg2,\n })};\n &::after {\n background: ${color.invalid.enabled.bg2};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.default.readOnly.border};\n background: ${color.default.readOnly.bg};\n\n &::after {\n background: ${color.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.default.disabled.border};\n background: ${color.default.disabled.bg};\n\n &::after {\n background: ${color.default.disabled.border};\n }\n }\n `\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity} from '../../hooks'\nimport {radioBaseStyle, inputElementStyle} from './styles'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst Root = styled.div(radioBaseStyle)\nconst Input = styled.input(inputElementStyle)\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {className, disabled, style, customValidity, readOnly, ...restProps} = props\n const ref = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root className={className} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </Root>\n )\n})\n","import {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'\nimport {ThemeFontSize} from '../../theme'\nimport {CSSObject} from '../../types/styled'\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 {theme} = props\n const font = theme.sanity.fonts.text\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.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 {theme} = props\n const {input} = theme.sanity\n const {focusRing} = input.select\n const color = theme.sanity.color.input\n\n return css`\n /* enabled */\n background-color: ${color.default.enabled.bg};\n color: ${color.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.default.hovered.bg};\n color: ${color.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.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.default.enabled.border},\n focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.default.readOnly.bg};\n color: ${color.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.default.disabled.bg};\n color: ${color.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.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 {theme, $fontSize} = props\n const {sizes} = theme.sanity.fonts.text\n\n return _responsive(theme.sanity.media, $fontSize, (sizeIndex) =>\n textSize(sizes[sizeIndex] || 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 {theme} = props\n const color = theme.sanity.color.input\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.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n root: rootStyle,\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {SelectIcon} from '@sanity/icons'\nimport {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\nimport {selectStyle} from './styles'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n customValidity?: string\n}\n\nconst Root = styled.div(selectStyle.root)\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLSelectElement>,\n) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n padding = 3,\n radius = 1,\n readOnly,\n space = 3,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $radius={useArrayProp(radius)}\n $space={useArrayProp(space)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <SelectIcon />\n </Text>\n </IconBox>\n </Root>\n )\n})\n","import {rem, _responsive, ThemeProps} from '../../styles'\nimport {CSSObject} from '../../types/styled'\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 {theme} = props\n const {media, space} = theme.sanity\n\n return _responsive(media, props.$space, (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box, BoxProps} from '../box'\nimport {stackBaseStyle, responsiveStackSpaceStyle, ResponsiveStackSpaceStyleProps} from './styles'\n\n/**\n * @public\n */\nexport interface StackProps extends BoxProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n space?: number | number[]\n}\n\nconst Root = styled(Box)<ResponsiveStackSpaceStyleProps>(stackBaseStyle, responsiveStackSpaceStyle)\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: StackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {as, space, ...restProps} = props\n\n return (\n <Root\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Stack\"\n {...restProps}\n $space={useArrayProp(space)}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {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 {theme} = props\n const {input} = theme.sanity\n const {focusRing} = input.switch\n const color = theme.sanity.color.input\n\n return css`\n --switch-bg-color: ${color.default.enabled.border};\n --switch-fg-color: ${color.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})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: var(--card-focus-ring-color);\n --switch-fg-color: ${color.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.default.hovered.border};\n --switch-fg-color: ${color.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: var(--card-focus-ring-color);\n --switch-fg-color: ${color.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.default.disabled.border};\n --switch-fg-color: ${color.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.default.readOnly.border};\n --switch-fg-color: ${color.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {theme} = props\n const {input} = theme.sanity\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, theme} = props\n const {input} = theme.sanity\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.1);\n\n ${checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `}\n\n ${$indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `}\n `\n}\n","import {forwardRef, useEffect} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef} from '../../hooks'\nimport {\n switchBaseStyles,\n switchRepresentationStyles,\n switchThumbStyles,\n switchTrackStyles,\n switchInputStyles,\n} from './styles'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst Root = styled.span(switchBaseStyles)\nconst Input = styled.input(switchInputStyles)\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport const Switch = forwardRef(function Switch(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n forwardedRef: React.ForwardedRef<HTMLInputElement>,\n) {\n const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\n const ref = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate, ref])\n\n return (\n <Root className={className} data-ui=\"Switch\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </Root>\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef, useCustomValidity, useArrayProp} from '../../hooks'\nimport {\n responsiveInputPaddingStyle,\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n TextInputResponsivePaddingStyleProps,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey, useRootTheme} from '../../theme'\nimport {ResponsiveRadiusProps} from '../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst Root = styled.span(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>,\n forwardedRef: React.ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n weight,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n const rootTheme = useRootTheme()\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={useArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={useArrayProp(radius)}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </Root>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport {createElement, forwardRef, isValidElement, useCallback, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useForwardedRef, useCustomValidity} from '../../hooks'\nimport {\n responsiveRadiusStyle,\n ResponsiveRadiusStyleProps,\n responsiveInputPaddingStyle,\n TextInputInputStyleProps,\n TextInputRepresentationStyleProps,\n TextInputResponsivePaddingStyleProps,\n textInputBaseStyle,\n textInputFontSizeStyle,\n textInputRepresentationStyle,\n textInputRootStyle,\n} from '../../styles/internal'\nimport {ThemeFontWeightKey, useRootTheme} from '../../theme'\nimport {Radius} from '../../types'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Card} from '../card'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<ButtonProps, 'as'> &\n Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'onClick' | 'onMouseDown' | 'ref'>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n padding?: number | number[]\n prefix?: React.ReactNode\n radius?: Radius | Radius[]\n space?: number | number[]\n suffix?: React.ReactNode\n type?: TextInputType\n weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: React.CSSProperties = {zIndex: 2}\n\nconst Root = styled(Card).attrs({forwardedAs: 'span'})(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Prefix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Suffix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Input = styled.input<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.span<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\nconst LeftBox = styled(Box)`\n position: absolute;\n top: 0;\n left: 0;\n`\n\nconst RightBox = styled(Box)`\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst RightCard = styled(Card)`\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst TextInputClearButton = styled(Button)({\n '&:not([hidden])': {\n display: 'block',\n },\n})\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport const TextInput = forwardRef(function TextInput(\n props: TextInputProps & Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'prefix' | 'type'>,\n forwardedRef: React.Ref<HTMLInputElement>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n icon,\n iconRight,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n space: spaceProp = 3,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n const rootTheme = useRootTheme()\n\n const fontSize = useArrayProp(fontSizeProp)\n const padding = useArrayProp(paddingProp)\n const radius = useArrayProp(radiusProp)\n const space = useArrayProp(spaceProp)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(icon)\n const $hasIconRight = Boolean(iconRight)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {icon && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && iconRight && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n icon,\n iconRight,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <Root data-ui=\"TextInput\" tone={rootTheme.tone}>\n {prefixNode}\n\n <InputRoot>\n <Input\n data-as=\"input\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $scheme={rootTheme.scheme}\n $space={space}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\n\n {suffixNode}\n </Root>\n )\n})\n","import {useRef} from 'react'\nimport {useState, useCallback, SetStateAction} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>()\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_TOOLTIP_PADDING = 4\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 {forwardRef} from 'react'\nimport styled from 'styled-components'\n\nconst Root = styled.div`\n position: absolute;\n pointer-events: none;\n width: 15px;\n height: 15px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n transform-origin: 7.5px 7.5px;\n }\n\n /* position: absolute;\n width: 15px;\n height: 15px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n &:not([hidden]) {\n display: block;\n }\n transform-origin: 7.5px 7.5px;\n } */\n\n [data-placement^='top'] > & {\n bottom: -27px;\n }\n\n [data-placement^='right'] > & {\n left: -27px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -27px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -27px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n`\n\nconst Border = styled.path`\n fill: var(--card-shadow-outline-color);\n`\n\nconst Shape = styled.path`\n fill: var(--card-bg-color);\n`\n\ninterface TooltipArrowProps {}\n\nexport const TooltipArrow = forwardRef(function TooltipArrow(\n props: TooltipArrowProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {...restProps} = props\n\n return (\n <Root data-ui=\"Tooltip__arrow\" {...restProps} ref={ref}>\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\">\n <Border d=\"M11.5266 1C11.032 1.32802 10.5837 1.73105 10.1995 2.20057L9.04792 3.6081C8.24771 4.58614 6.7523 4.58614 5.95209 3.6081L4.80047 2.20057C4.41632 1.73105 3.96796 1.32802 3.47341 1H0.156727C1.65639 1 3.07687 1.67313 4.02651 2.83381L5.17813 4.24134C6.37844 5.70839 8.62156 5.70839 9.82187 4.24134L10.9735 2.83381C11.9231 1.67313 13.3436 1 14.8433 1H11.5266Z\" />\n <Shape d=\"M0.156725 0C1.95632 0 3.66089 0.80776 4.80047 2.20057L5.95209 3.6081C6.75229 4.58614 8.24771 4.58614 9.04791 3.6081L10.1995 2.20057C11.3391 0.80776 13.0437 0 14.8433 0H15H0H0.156725Z\" />\n </svg>\n </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../../lib/globalScope'\nimport {TooltipDelayGroupContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tooltipDelayGroup')\n\nglobalScope[key] = globalScope[key] || createContext<TooltipDelayGroupContextValue | null>(null)\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext: React.Context<TooltipDelayGroupContextValue | null> =\n globalScope[key]\n","import {useContext} from 'react'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {useMemo} from 'react'\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\nimport {useTooltipDelayGroup} from './useTooltipDelayGroup'\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * @public 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 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 isInsideContext = useTooltipDelayGroup()\n\n if (isInsideContext) {\n throw new Error(\n 'TooltipDelayGroupProvider cannot be nested inside another TooltipDelayGroupProvider',\n )\n }\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n isGroupActive: isGroupActive,\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useFloating,\n Middleware,\n RootBoundary,\n} from '@floating-ui/react-dom'\nimport {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n CSSProperties,\n ForwardedRef,\n useId,\n} from 'react'\nimport styled from 'styled-components'\nimport {FLOATING_STATIC_SIDES} from '../../constants'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {ThemeColorSchemeKey, useTheme} from '../../theme'\nimport {Placement} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport {Card} from '../card'\nimport {Delay} from '../types'\nimport {DEFAULT_FALLBACK_PLACEMENTS, DEFAULT_TOOLTIP_PADDING} from './constants'\nimport {TooltipArrow} from './tooltipArrow'\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 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 scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n /**\n * @public Adds a delay to open or close the tooltip. Defaults to 0.\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 delay?: Delay\n}\n\nconst Root = styled(Layer)<{$maxWidth: number}>`\n pointer-events: none;\n max-width: ${({$maxWidth}) => $maxWidth}px;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const theme = useTheme()\n const {\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 3,\n placement: placementProp = 'bottom',\n portal: portalProp,\n scheme,\n shadow = 2,\n zOffset = theme.sanity.layer?.tooltip.zOffset,\n delay,\n ...restProps\n } = props\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const forwardedRef = useForwardedRef(ref)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const tooltipWidth = useMemo(() => {\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n return Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2\n }, [boundaryElement, portalElement?.offsetWidth])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: 3}))\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 ret.push(arrow({element: arrowRef, padding: 2}))\n\n return ret\n }, [boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const staticSide = placement && FLOATING_STATIC_SIDES[placement.split('-')[0]]\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const arrowStyle: CSSProperties = useMemo(() => {\n const style: CSSProperties = {\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }\n\n if (staticSide) style[staticSide] = -15\n\n return style\n }, [arrowX, arrowY, staticSide])\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n delayGroupContext.setIsGroupActive(open, groupedOpenDelay)\n delayGroupContext.setOpenTooltipId(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n delayGroupContext.setIsGroupActive(open, groupDeactivateDelay)\n delayGroupContext.setOpenTooltipId(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [isInsideGroup, delayGroupContext, openDelay, tooltipId, closeDelay, setIsOpen],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true), [handleIsOpenChange]\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true), [handleIsOpenChange]\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!isOpen) return\n\n function handleWindowMouseMove(event: MouseEvent) {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === event.target ||\n (event.target instanceof Node && referenceElement.contains(event.target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }\n\n window.addEventListener('mousemove', handleWindowMouseMove)\n\n return () => {\n window.removeEventListener('mousemove', handleWindowMouseMove)\n }\n }, [isOpen, referenceElement, handleIsOpenChange])\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content) handleIsOpenChange(false)\n }, [content, handleIsOpenChange])\n\n // Update reference\n useEffect(() => refs.setReference(referenceElement), [referenceElement, refs])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n forwardedRef.current = node\n refs.setFloating(node)\n },\n [forwardedRef, refs],\n )\n\n const childRef: ForwardedRef<HTMLElement | null> = (childProp as any)?.ref\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n\n // childRef.current = node\n setReferenceElement(node)\n },\n [childRef],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReference,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n setReference,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const root = (\n <Root\n data-ui=\"Tooltip\"\n {...restProps}\n ref={setFloating}\n style={floatingStyles}\n zOffset={zOffset}\n $maxWidth={tooltipWidth}\n >\n <Card\n data-ui=\"Tooltip__card\"\n data-placement={placement}\n padding={padding}\n radius={3}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n <TooltipArrow ref={setArrow} style={arrowStyle} />\n </Card>\n </Root>\n )\n\n return (\n <>\n {child}\n\n {showTooltip && (\n <>\n {portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {root}\n </Portal>\n ) : (\n root\n )}\n </>\n )}\n </>\n )\n})\n","import {SpinnerIcon} from '@sanity/icons'\nimport styled, {keyframes} from 'styled-components'\nimport {Box} from '../../primitives'\n\n/**\n * @internal\n */\nexport const Root = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n ChangeEvent,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n Ref,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {\n Box,\n BoxProps,\n Button,\n Card,\n Popover,\n PopoverProps,\n Stack,\n Text,\n TextInput,\n} from '../../primitives'\nimport {Radius} from '../../types'\nimport {AnimatedSpinnerIcon, ListBox, Root} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => ReactElement\n /** @beta */\n renderPopover?: (\n props: {\n content: ReactElement | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\nconst InnerAutocomplete = forwardRef(function InnerAutocomplete<\n Option extends BaseAutocompleteOption,\n>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n ref: Ref<HTMLInputElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 3,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n const forwardedRef = useForwardedRef(ref)\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n }\n },\n [focused, onFocus],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const setRef = useCallback(\n (el: HTMLInputElement | null) => {\n inputElementRef.current = el\n forwardedRef.current = el\n },\n [forwardedRef],\n )\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n onFocus: handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const openButtonPadding = useMemo(() => padding.map((v) => Math.max(v - 1, 0)), [padding])\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [currentOption, openButtonProps, renderValue, value],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={setRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n space={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <Root\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </Root>\n )\n})\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport const Autocomplete = InnerAutocomplete as <Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'prefix'\n | 'ref'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n > & {\n ref?: Ref<HTMLInputElement>\n },\n) => ReactElement\n","import styled from 'styled-components'\nimport {Button} from '../../primitives'\n\nexport const Root = styled.ol`\n margin: 0;\n padding: 0;\n display: flex;\n list-style: none;\n align-items: center;\n white-space: nowrap;\n line-height: 0;\n`\n\nexport const ExpandButton = styled(Button)`\n appearance: none;\n margin: -4px;\n`\n","import {Children, forwardRef, Fragment, isValidElement, useCallback, useMemo, useState} from 'react'\nimport {useArrayProp, useClickOutside} from '../../hooks'\nimport {Box, Popover, Stack, Text} from '../../primitives'\nimport {ExpandButton, Root} from './breadcrumbs.styles'\n\n/**\n * @beta\n */\nexport interface BreadcrumbsProps {\n maxLength?: number\n separator?: React.ReactNode\n space?: number | number[]\n}\n\n/**\n * @beta\n */\nexport const Breadcrumbs = forwardRef(function Breadcrumbs(\n props: BreadcrumbsProps & Omit<React.HTMLProps<HTMLOListElement>, 'as' | 'ref' | 'type'>,\n ref: React.ForwardedRef<HTMLOListElement>,\n) {\n const {children, maxLength, separator, space: spaceRaw = 2, ...restProps} = props\n const space = useArrayProp(spaceRaw)\n const [open, setOpen] = useState(false)\n const [expandElement, setExpandElement] = useState<HTMLButtonElement | null>(null)\n const [popoverElement, setPopoverElement] = useState<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutside(collapse, [expandElement, popoverElement])\n\n const rawItems = useMemo(\n () =>\n Children.toArray(children).filter((child) => {\n return isValidElement(child)\n }),\n [children],\n )\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" overflow=\"auto\" padding={space} space={space}>\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n placement=\"top\"\n portal\n ref={setPopoverElement}\n >\n <ExpandButton\n fontSize={1}\n mode=\"bleed\"\n onClick={open ? collapse : expand}\n padding={1}\n ref={setExpandElement}\n selected={open}\n text=\"…\"\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, maxLength, open, rawItems, space])\n\n return (\n <Root data-ui=\"Breadcrumbs\" {...restProps} ref={ref}>\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\" paddingX={space}>\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Root>\n )\n})\n","/**\n * Left/right border offsets for header + footer components (in px).\n */\nexport const BORDER_OFFSET_X: number = 12\n","import {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\nimport {CSSObject} from '../../types/styled'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const color = theme.sanity.color.base\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.shadow.umbra,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\nconst key = Symbol.for('@sanity/ui/context/dialog')\n\nglobalScope[key] = globalScope[key] || createContext<DialogContextValue>({version: 0.0})\n\n/**\n * @internal\n */\nexport const DialogContext: React.Context<DialogContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {forwardRef, useCallback, useEffect, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {\n containsOrEqualsElement,\n focusFirstDescendant,\n focusLastDescendant,\n isHTMLElement,\n} from '../../helpers'\nimport {useArrayProp, useClickOutside, useForwardedRef, useGlobalKeyDown} from '../../hooks'\nimport {Box, Button, Card, CardProps, Container, Flex, Text} from '../../primitives'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {responsivePaddingStyle, ResponsivePaddingStyleProps} from '../../styles/internal'\nimport {ThemeColorSchemeKey, useTheme} from '../../theme'\nimport {DialogPosition, Radius} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {BORDER_OFFSET_X} from './constants'\nimport {\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\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\ninterface DialogHeaderProps extends CardProps {\n $hasScrolledFromTop: boolean\n $isContentScrollable: boolean\n}\ninterface DialogFooterProps extends CardProps {\n $hasScrolledToBottom: boolean\n $isContentScrollable: boolean\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)<ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps>(\n responsivePaddingStyle,\n dialogStyle,\n responsiveDialogPositionStyle,\n)\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)<DialogHeaderProps>`\n position: relative;\n z-index: 2;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n left: ${BORDER_OFFSET_X}px;\n right: ${BORDER_OFFSET_X}px;\n bottom: -1px;\n border-bottom: 1px solid var(--card-border-color);\n width: auto;\n opacity: ${(props) => (props.$isContentScrollable && props.$hasScrolledFromTop ? 1 : 0)};\n transition: opacity 200ms ease-in;\n }\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)<DialogFooterProps>`\n position: relative;\n z-index: 3;\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n left: ${BORDER_OFFSET_X}px;\n right: ${BORDER_OFFSET_X}px;\n top: -1px;\n border-top: 1px solid var(--card-border-color);\n width: auto;\n opacity: ${(props) => (props.$isContentScrollable && !props.$hasScrolledToBottom ? 1 : 0)};\n transition: opacity 200ms ease-in;\n }\n`\n\nconst DialogCard = forwardRef(function DialogCard(\n props: DialogCardProps,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = useArrayProp(radiusProp)\n const shadow = useArrayProp(shadowProp)\n const width = useArrayProp(widthProp)\n const forwardedRef = useForwardedRef(ref)\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const localContentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n const [isContentScrollable, setIsContentScrollable] = useState(false)\n const [hasScrolledFromTop, setHasScrolledFromTop] = useState(false)\n const [hasScrolledToBottom, setHasScrolledToBottom] = useState(false)\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (forwardedRef.current) {\n focusFirstDescendant(forwardedRef.current)\n }\n }, [autoFocus, forwardedRef])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutside(\n useCallback(\n (event: MouseEvent) => {\n if (!isTopLayer || !onClickOutside) return\n\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n },\n [boundaryElement, isTopLayer, onClickOutside, portalElement],\n ),\n [rootElement],\n )\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef],\n )\n\n const setContentRef = useCallback(\n (el: HTMLDivElement | null) => {\n localContentRef.current = el\n if (typeof contentRef === 'function') contentRef(el)\n else if (contentRef) contentRef.current = el\n },\n [contentRef],\n )\n\n const handleContentUpdate = useCallback(() => {\n if (localContentRef.current) {\n setIsContentScrollable(\n localContentRef.current.clientHeight < localContentRef.current.scrollHeight,\n )\n setHasScrolledFromTop(localContentRef.current.scrollTop > 0)\n setHasScrolledToBottom(\n localContentRef.current.scrollTop >=\n localContentRef.current.scrollHeight - localContentRef.current.clientHeight,\n )\n }\n }, [])\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver(handleContentUpdate)\n\n if (localContentRef.current) {\n resizeObserver.observe(localContentRef.current)\n }\n\n return () => {\n resizeObserver.disconnect()\n }\n }, [contentRef, handleContentUpdate])\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 $isContentScrollable={isContentScrollable}\n $hasScrolledFromTop={hasScrolledFromTop}\n >\n <Flex align=\"center\">\n <Box flex={1} margin={1} padding={4}>\n {header && (\n <Text id={labelId} size={1} weight=\"medium\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box padding={3}>\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n />\n </Box>\n )}\n </Flex>\n </DialogHeader>\n )}\n\n <DialogContent flex={1} ref={setContentRef} tabIndex={-1} onScroll={handleContentUpdate}>\n {children}\n </DialogContent>\n\n {footer && (\n <DialogFooter\n $isContentScrollable={isContentScrollable}\n $hasScrolledToBottom={hasScrolledToBottom}\n >\n {footer}\n </DialogFooter>\n )}\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 theme = useTheme()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 3,\n cardShadow = 4,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 4,\n portal: portalProp,\n position: positionProp = dialog.position || 'fixed',\n scheme,\n width: widthProp = 0,\n zOffset: zOffsetProp = dialog.zOffset || theme.sanity.layer?.dialog.zOffset,\n ...restProps\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useArrayProp(cardRadiusProp)\n const padding = useArrayProp(paddingProp)\n const position = useArrayProp(positionProp)\n const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>()\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Root\n {...restProps}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n role=\"dialog\"\n zOffset={zOffset}\n >\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n <div ref={postDivRef} tabIndex={0} />\n </Root>\n </Portal>\n )\n})\n","import {useMemo} from 'react'\nimport {DialogPosition} from '../../types'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Inline, KBD} from '../../primitives'\nimport {Radius} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n space?: number | number[]\n keys?: string[]\n}\n\nconst Root = styled.kbd`\n &:not([hidden]) {\n display: block;\n }\n font: inherit;\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 = 1, ...restProps} = props\n const space = useArrayProp(spaceProp)\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <Root data-ui=\"Hotkeys\" {...restProps} ref={ref}>\n <Inline as=\"span\" space={space}>\n {keys.map((key, i) => (\n <Key fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </Key>\n ))}\n </Inline>\n </Root>\n )\n})\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: React.MouseEvent<HTMLElement>) => void\n}\n\nconst key = Symbol.for('@sanity/ui/context/menu')\n\nglobalScope[key] = globalScope[key] || createContext<MenuContextValue | null>(null)\n\nexport const MenuContext: React.Context<MenuContextValue | null> = globalScope[key]\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {useCallback, useEffect, useRef, useState} from 'react'\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: React.MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n rootElement: HTMLDivElement | null\n setRootElement: (el: HTMLDivElement | null) => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: React.KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = elementsRef.current[activeIndex] || null\n const mounted = Boolean(rootElement)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElement, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElement, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElement?.focus()\n }, [setActiveIndex, rootElement])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = window.requestAnimationFrame(() => {\n const _activeIndex = activeIndexRef.current\n\n if (_activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n activeIndexRef.current = currentIndex\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n activeIndexRef.current = currentIndex\n }\n }\n\n return\n }\n\n const element = elementsRef.current[_activeIndex] || null\n\n element?.focus()\n })\n\n return () => {\n window.cancelAnimationFrame(rafId)\n }\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n }\n}\n","import {forwardRef, useCallback, useEffect, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {useClickOutside, useForwardedRef, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {ResponsivePaddingProps} from '../../primitives/types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends ResponsivePaddingProps {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n focusFirst?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n focusLast?: boolean\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemSelect?: (index: number) => void\n originElement?: HTMLElement | null\n registerElement?: (el: HTMLElement) => () => void\n shouldFocus?: 'first' | 'last' | null\n space?: number | number[]\n}\n\nconst Root = styled(Box)`\n outline: none;\n overflow: auto;\n`\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: MenuProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'role' | 'tabIndex'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusFirst,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusLast,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus = (props.focusFirst && 'first') || (props.focusLast && 'last') || null,\n space = 1,\n ...restProps\n } = props\n\n const forwardedRef = useForwardedRef(ref)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n rootElement,\n setRootElement,\n } = useMenuController({onKeyDown, originElement, shouldFocus})\n\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n setRootElement(el)\n forwardedRef.current = el\n },\n [forwardedRef, setRootElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutside(\n useCallback(\n (event) => isTopLayer && onClickOutside && onClickOutside(event),\n [isTopLayer, onClickOutside],\n ),\n [rootElement],\n )\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n // Register root element (for nested menus)\n useEffect(() => {\n if (!rootElement || !registerElement) return\n\n return registerElement(rootElement)\n }, [registerElement, rootElement])\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <Root\n data-ui=\"Menu\"\n {...restProps}\n onKeyDown={handleKeyDown}\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack space={space}>{children}</Stack>\n </Root>\n </MenuContext.Provider>\n )\n})\n","import {cloneElement, forwardRef, useCallback, useMemo, useState, useEffect, useRef} from 'react'\nimport {isElement} from 'react-is'\nimport {Popover, PopoverProps} from '../../primitives'\nimport {ThemeColorSchemeKey} from '../../theme'\nimport {Placement, Radius} from '../../types'\nimport {MenuProps} from './menu'\n\n/**\n * @public\n */\nexport interface MenuButtonProps {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: React.ReactElement\n id: string\n menu?: React.ReactElement\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n ref: React.ForwardedRef<HTMLButtonElement | null>,\n) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n const handleButtonKeyDown = useCallback((event: React.KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => {\n setChildMenuElements((els) => {\n return els.filter((_el) => _el !== el)\n })\n }\n }, [])\n\n const menuProps: MenuProps = useMemo(\n () => ({\n 'aria-labelledby': id,\n onBlurCapture: handleBlur,\n onClickOutside: handleMenuClickOutside,\n onEscape: handleMenuEscape,\n onItemClick: handleItemClick,\n originElement: buttonElement,\n registerElement,\n shouldFocus,\n }),\n [\n buttonElement,\n handleMenuClickOutside,\n handleMenuEscape,\n handleItemClick,\n id,\n handleBlur,\n registerElement,\n shouldFocus,\n ],\n )\n\n const menu = isElement(menuProp) ? cloneElement(menuProp, menuProps) : null\n\n const setButtonRef = useCallback(\n (el: HTMLButtonElement | null) => {\n if (typeof ref === 'function') {\n ref(el)\n } else if (ref) {\n ref.current = el\n }\n\n setButtonElement(el)\n },\n [ref],\n )\n\n const button = useMemo(\n () =>\n isElement(buttonProp)\n ? cloneElement(buttonProp, {\n 'data-ui': 'MenuButton',\n id,\n onClick: handleButtonClick,\n onKeyDown: handleButtonKeyDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n ref: setButtonRef,\n selected: open,\n })\n : null,\n [buttonProp, handleButtonClick, handleButtonKeyDown, id, open, setButtonRef],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n})\n","import styled from 'styled-components'\n\n/**\n * @public\n */\nexport const MenuDivider = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\n","import {css} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\nimport {SelectableTone} from '../../types/selectable'\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, theme} = props\n const {base, muted, selectable} = theme.sanity.color\n // @todo: remove use of `muted` here\n const tone = selectable ? selectable[$tone] || selectable.default : muted[$tone] || muted.default\n\n return css`\n ${_colorVarsStyle(base, 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 ${_colorVarsStyle(base, tone.disabled)}\n }\n\n &:not(:disabled) {\n &[aria-pressed='true'] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n &[data-selected],\n &[aria-selected='true'] > & {\n ${_colorVarsStyle(base, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n\n &:active {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n }\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n &[data-disabled] {\n ${_colorVarsStyle(base, tone.disabled)}\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n &[data-selected] {\n ${_colorVarsStyle(base, tone.selected)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) {\n &[data-hovered],\n &:hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n &:active {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n }\n }\n }\n }\n\n ${theme.sanity.styles?.card?.root}\n `\n}\n","import styled from 'styled-components'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'\nimport {Box} from '../box'\nimport {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'\n\n/**\n * @internal\n */\nexport const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n selectableBaseStyle,\n selectableColorStyle,\n)\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {createElement, isValidElement, useCallback, useEffect, useRef, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp} from '../../hooks'\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {useRootTheme} from '../../theme'\nimport {Radius, SelectableTone} from '../../types'\nimport {Menu} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n icon?: React.ElementType | React.ReactNode\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'open'>\n radius?: Radius | Radius[]\n space?: number | number[]\n text: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(\n props: MenuGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'tabIndex'>,\n): React.ReactElement {\n const {\n as = 'button',\n children,\n fontSize = 1,\n icon,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const menu = useMenu()\n const {scheme} = useRootTheme()\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter = menu.onMouseEnter,\n registerElement,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const shouldFocusRef = useRef<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (onClick) onClick(event)\n\n shouldFocusRef.current = 'first'\n\n setOpen(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n if (onItemClick) onItemClick()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n const childMenu = (\n <Menu\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocusRef.current}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n shouldFocusRef.current = 'first'\n\n setOpen(true)\n setWithinMenu(true)\n\n requestAnimationFrame(() => {\n shouldFocusRef.current = null\n })\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n data-as={as}\n data-ui=\"MenuGroup\"\n forwardedAs={as}\n {...restProps}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n $radius={useArrayProp(radius)}\n $tone={tone}\n $scheme={scheme}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n ref={setRootElement}\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={space} padding={padding}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n","import {\n createElement,\n forwardRef,\n isValidElement,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../../primitives/types'\nimport {useRootTheme} from '../../theme'\nimport {SelectableTone} from '../../types/selectable'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: React.ElementType | React.ReactNode\n iconRight?: React.ElementType | React.ReactNode\n pressed?: boolean\n selected?: boolean\n space?: number | number[]\n text?: React.ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: MenuItemProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'selected' | 'tabIndex'>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\n children,\n disabled,\n fontSize = 1,\n hotkeys,\n icon,\n iconRight,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\n const {scheme} = useRootTheme()\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter = menu.onMouseEnter,\n onItemMouseLeave = menu.onMouseLeave,\n } = menu\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const ref = useForwardedRef(forwardedRef)\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const setRef = useCallback(\n (el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n },\n [ref],\n )\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...restProps}\n aria-pressed={as === 'button' && pressed}\n data-pressed={as !== 'button' && pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n forwardedAs={as}\n $radius={useArrayProp(radius)}\n $padding={useArrayProp(0)}\n $tone={disabled ? 'default' : tone}\n $scheme={scheme}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n role=\"menuitem\"\n tabIndex={-1}\n type={as === 'button' ? 'button' : undefined}\n >\n {(icon || text || iconRight) && (\n <Flex as=\"span\" gap={space} align=\"center\" {...paddingProps}>\n {icon && (\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && (\n <Hotkeys fontSize={fontSize} keys={hotkeys} style={{marginTop: -4, marginBottom: -4}} />\n )}\n\n {iconRight && (\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n )}\n </Flex>\n )}\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n})\n","import {css, keyframes} from 'styled-components'\n\nconst keyframe = keyframes`\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n`\n\nconst animation = css`\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ${keyframe};\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const skeletonStyle = css<{$animated: boolean; $visible: boolean}>`\n opacity: ${({$visible}) => ($visible ? 1 : 0)};\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ${({$animated}) =>\n $animated\n ? animation\n : css`\n background-color: var(--card-skeleton-color-from);\n `}\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n`\n","import {forwardRef, useEffect, useState} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {Box} from '../../primitives'\nimport {BoxProps, ResponsiveRadiusProps} from '../../primitives'\nimport {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/internal'\nimport {skeletonStyle} from './styles'\n\nconst Root = styled(Box)<{$animated: boolean; $visible: boolean} & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n skeletonStyle,\n)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Skeleton = forwardRef(function Skeleton(\n props: SkeletonProps & React.HTMLProps<HTMLDivElement>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {animated = false, delay, radius, ...restProps} = props\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Root\n {...restProps}\n $animated={animated}\n $radius={useArrayProp(radius)}\n $visible={visible}\n ref={ref}\n />\n )\n})\n","import {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useArrayProp} from '../../hooks'\nimport {_responsive} from '../../styles'\nimport {Theme, ThemeFontKey} from '../../theme'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst Root = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>(({\n $size,\n $style,\n theme,\n}: {\n $size: number[]\n $style: ThemeFontKey\n theme: Theme\n}) => {\n const {media} = theme.sanity\n const font = theme.sanity.fonts[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = font.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TextSkeleton = forwardRef(function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"text\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const LabelSkeleton = forwardRef(function TextSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"label\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const HeadingSkeleton = forwardRef(function TextSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"heading\" />\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const CodeSkeleton = forwardRef(function TextSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {size = 2, ...restProps} = props\n const $size = useArrayProp(size)\n\n return <Root {...restProps} $size={$size} ref={ref} $style=\"code\" />\n})\n","import {forwardRef, useCallback, useEffect, useRef} from 'react'\nimport styled from 'styled-components'\nimport {useForwardedRef} from '../../hooks'\nimport {Button} from '../../primitives'\nimport {ButtonTone} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n id: string\n icon?: React.ElementType | React.ReactNode\n focused?: boolean\n fontSize?: number | number[]\n label?: React.ReactNode\n padding?: number | number[]\n selected?: boolean\n tone?: ButtonTone\n}\n\nconst CustomButton = styled(Button)`\n max-width: 100%;\n`\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n forwardedRef: React.ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const elementRef = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n const ref = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (elementRef.current) elementRef.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n const setRef = (el: HTMLButtonElement | null) => {\n elementRef.current = el\n ref.current = el\n }\n\n return (\n <CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n radius=\"full\"\n ref={setRef}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\n","import {cloneElement, forwardRef, useCallback, useMemo, useState} from 'react'\nimport styled from 'styled-components'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.ReactElement | null | undefined | false>\n}\n\nfunction _isReactElement(node: unknown): node is React.ReactElement {\n return Boolean(node)\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n & > div {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n box-sizing: border-box;\n }\n`\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children = useMemo(() => childrenProp.filter(_isReactElement), [childrenProp])\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => handleTabFocus(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleTabFocus = useCallback((tabIdx: number) => {\n setFocusedIndex(tabIdx)\n }, [])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n})\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n id: string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport styled from 'styled-components'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\nimport {ThemeColorToneKey} from '../../theme'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose?: () => void\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}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n}\n\nconst Root = styled(Card)`\n pointer-events: all;\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, title, status, ...restProps} = props\n const cardTone = status ? STATUS_CARD_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={2}\n shadow={2}\n tone={cardTone}\n >\n <Flex align=\"flex-start\">\n <TextBox flex={1} padding={3}>\n <Stack space={3}>\n {title && <Text weight=\"semibold\">{title}</Text>}\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 onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </Flex>\n </Root>\n )\n}\n","import {useEffect, useReducer} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n // Use useReducer instead of useState as it's more low-level and creates the least amount of functions for the garbage collector to clean up\n const [mounted, mount] = useReducer(() => true, false)\n\n useEffect(mount, [mount])\n\n return mounted\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {ToastContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/toast')\n\nglobalScope[key] = globalScope[key] || createContext<ToastContextValue | null>(null)\n\nexport const ToastContext: React.Context<ToastContextValue | null> = globalScope[key]\n","import {AnimatePresence, motion} from 'framer-motion'\nimport {useCallback, useEffect, useMemo, useRef, useState, startTransition} from 'react'\nimport styled from 'styled-components'\nimport {useMounted} from '../../hooks/useMounted'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps {\n children?: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n zOffset?: number | number[]\n}\n\nconst Root = styled(Layer)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n pointer-events: none;\n`\n\nconst ToastContainer = styled.div`\n box-sizing: border-box;\n position: absolute;\n right: 0;\n bottom: 0;\n max-width: 420px;\n width: 100%;\n`\n\nlet toastId = 0\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.ReactElement {\n const {children, padding = 4, paddingX, paddingY, zOffset} = props\n const [state, _setState] = useState<ToastState>([])\n\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n\n const push = useCallback((params: ToastParams) => {\n // Wrap setState in startTransition to allow React to give input state updates higher priority\n const setState: typeof _setState = (state) => startTransition(() => _setState(state))\n\n const id = params.id || String(toastId++)\n const duration = params.duration || 5000\n\n const dismiss = () => {\n const timeoutId = toastsRef.current[id]?.timeoutId\n\n setState((prevState): ToastState => {\n const idx = prevState.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.slice(0)\n\n toasts.splice(idx, 1)\n\n return toasts\n }\n\n return prevState\n })\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId)\n delete toastsRef.current[id]\n }\n }\n\n setState((prevState): ToastState => {\n return prevState\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ])\n })\n\n if (toastsRef.current[id]) {\n clearTimeout(toastsRef.current[id].timeoutId)\n delete toastsRef.current[id]\n }\n\n toastsRef.current[id] = {timeoutId: setTimeout(dismiss, duration)}\n\n return id\n }, [])\n\n // clear timeouts on unmount\n useEffect(\n () => () => {\n for (const {timeoutId} of Object.values(toastsRef.current)) {\n clearTimeout(timeoutId)\n }\n\n toastsRef.current = {}\n },\n [],\n )\n\n const value: ToastContextValue = useMemo(() => ({version: 0.0, push}), [push])\n const mounted = useMounted()\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n\n {mounted && (\n <Root data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.map(({dismiss, id, params}) => (\n <motion.div\n animate={{opacity: 1, y: 0, scale: 1}}\n exit={{opacity: 0, scale: 0.5, transition: {duration: 0.2}}}\n initial={{opacity: 0, y: 32, scale: 0.25}}\n key={id}\n layout=\"position\"\n transition={{type: 'spring', damping: 30, stiffness: 400}}\n >\n <Toast\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n />\n </motion.div>\n ))}\n </AnimatePresence>\n </Box>\n </ToastContainer>\n </Root>\n )}\n </ToastContext.Provider>\n )\n}\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {TreeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/tree')\n\nglobalScope[key] = globalScope[key] || createContext<TreeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const TreeContext: React.Context<TreeContextValue | null> = globalScope[key]\n","import {forwardRef, memo, useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport {useForwardedRef} from '../../hooks'\nimport {Stack} from '../../primitives'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n space?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const Tree = memo(\n forwardRef(function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'align' | 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ): React.ReactElement {\n const {children, space = 1, onFocus, ...restProps} = props\n const forwardedRef = useForwardedRef(ref)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!forwardedRef.current) return\n const _itemElements = Array.from(\n forwardedRef.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children, forwardedRef])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={forwardedRef}\n role=\"tree\"\n space={space}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n }),\n)\n\nTree.displayName = 'Tree'\n","import {css} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\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 &: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\n &:focus > div {\n position: relative;\n }\n }\n `\n}\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const {theme} = props\n const $tone = 'default'\n const {base, muted, selectable} = theme.sanity.color\n // @todo: remove use of `muted` here\n const tone = selectable ? selectable[$tone] || selectable.default : muted[$tone] || muted.default\n\n return css`\n /* <div role=\"none\"><a data-ui=\"TreeItem__box\" role=\"treeitem\" tabIndex=\"0\"></div> */\n &[role='none'] {\n & > [role='treeitem'] {\n ${_colorVarsStyle(base, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--treeitem-fg-color);\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_colorVarsStyle(base, tone.selected)}\n }\n }\n }\n\n /* <div role=\"treeitem\" tabIndex=\"0\"><div data-ui=\"TreeItem__box\"></div> */\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_colorVarsStyle(base, tone.enabled)}\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_colorVarsStyle(base, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_colorVarsStyle(base, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_colorVarsStyle(base, 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, theme} = props\n const {space} = theme.sanity\n\n return css`\n padding-left: ${rem(space[2] * $level)};\n\n &[data-as='a'] {\n text-decoration: none;\n }\n `\n}\n","import {useContext} from 'react'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo} from 'react'\nimport {Stack} from '../../primitives'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport const TreeGroup = memo(function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.ReactElement {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n space={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {createElement, memo, useCallback, useEffect, useId, useMemo, useRef} from 'react'\nimport styled from 'styled-components'\nimport {Box, BoxProps, Flex, Text} from '../../primitives'\nimport {ThemeFontWeightKey} from '../../theme'\nimport {\n treeItemRootStyle,\n treeItemRootColorStyle,\n treeItemBoxStyle,\n TreeItemBoxStyleProps,\n} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: BoxProps['as']\n padding?: number | number[]\n space?: number | number[]\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst Root = memo(styled.li(treeItemRootStyle, treeItemRootColorStyle))\n\nconst TreeItemBox = styled(Box).attrs({forwardedAs: 'a'})<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\nconst ToggleArrowText = styled(Text)`\n & > svg {\n transition: transform 100ms;\n }\n`\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const TreeItem = memo(function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.ReactElement {\n const {\n children,\n expanded: expandedProp = false,\n fontSize,\n href,\n icon,\n id: idProp,\n linkAs,\n muted,\n onClick,\n padding = 3,\n selected = false,\n space = 2,\n text,\n weight,\n ...restProps\n } = props\n const rootRef = useRef<HTMLLIElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={space}\n style={{visibility: icon || children ? 'visible' : 'hidden', pointerEvents: 'none'}}\n >\n {icon && (\n <Text muted={muted} size={fontSize} weight={weight}>\n {createElement(icon)}\n </Text>\n )}\n {!icon && (\n <ToggleArrowText muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </ToggleArrowText>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n onClick={handleClick}\n ref={rootRef}\n role=\"none\"\n >\n <TreeItemBox\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n }\n\n return (\n <Root\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Root>\n )\n})\n"],"names":["EMPTY_ARRAY","EMPTY_RECORD","FLOATING_STATIC_SIDES","top","right","bottom","left","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","concat","_responsive","media","values","callback","statements","map","statement","mediaIndex","_getArrayProp","val","defaultVal","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","arguments","length","undefined","Error","sanity","spaceIndex","space","responsiveFont","fontKey","$size","$weight","fonts","family","sizes","weights","fontWeight","regular","defaultSize","base","position","fontFamily","padding","margin","content","display","height","warned","console","warn","resp","sizeIndex","fontSize","size","ascenderHeight","descenderHeight","iconSize","letterSpacing","lineHeight","negHeight","capHeight","iconOffset","customIconSize","Math","floor","customIconOffset","transform","marginTop","marginBottom","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useArrayProp","__perf_hash__","useMemo","JSON","stringify","_getElements","element","elementsArg","ret","el","push","filter","Boolean","useClickOutside","listener","boundaryElement","setElement","useState","elements","setElements","elementsRef","useRef","useEffect","prevElements","current","nextElements","includes","handleWindowMouseDown","evt","target","Node","contains","window","addEventListener","removeEventListener","resizeObservers","hasActiveObservations","some","ro","activeTargets","hasSkippedObservations","skippedTargets","msg","deliverResizeLoopError","event","ErrorEvent","message","document","createEvent","initEvent","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","ResizeObserverSize","inlineSize","blockSize","DOMRectReadOnly","x","y","width","prototype","toJSON","_a","fromRect","rectangle","isSVG","SVGElement","isHidden","getBBox","_b","offsetWidth","offsetHeight","getClientRects","isElement","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","type","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","size$1","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","clientHeight","verticalScrollbarThickness","clientWidth","widthReduction","heightReduction","contentWidth","contentHeight","borderBoxWidth","borderBoxHeight","boxes","round","devicePixelRatio","calculateBoxSize","observedBox","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","ResizeObserverEntry","calculateDepthForNode","node","Infinity","depth","parent","parentNode","broadcastActiveObservations","shallowestDepth","callbacks","forEach","processObserver","entries","processTarget","ot","entry","targetDepth","lastReportedSize","resizeObserverCallback","call","observer","splice","_i","callbacks_1","gatherActiveObservationsAtDepth","observationTargets","isActive","process","trigger","notify","cb","queueMicroTask","toggle_1","el_1","createTextNode","config","characterData","MutationObserver","observe","textContent","queueResizeObserver","ResizeObserver","requestAnimationFrame","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","schedule","run","until","elementsHaveResized","start","stop","body","name","disconnect","scheduler","updateCount","n","skipNotifyOnElement","ResizeObservation","CONTENT_BOX","ResizeObserverDetail","resizeObserver","observerMap","getObservationIndex","i","ResizeObserverController","connect","detail","options","firstObservation","box","unobserve","index","lastObservation","indexOf","slice","TypeError","toString","_ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","_ref","_contentRect","border","disposeCache","subscribersCache","subscribers","dispose","elementRect","sub","idx","useElementSize","setSize","useElementRect","elementSize","useGlobalKeyDown","onKeyDown","COLOR_HUES","COLOR_TINTS","COLOR_BASE_TONES","COLOR_STATE_TONES","COLOR_STATES","COLOR_BUTTON_MODES","COLOR_BLEND_MODES","defaultColorTokens","_blend","bg","fg","focusRing","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","transparent","default","primary","_hue","positive","caution","critical","button","bg2","muted","hovered","pressed","selected","disabled","ghost","bleed","multiplyChannel","b","s","multiply","multiply$2","r","clamp","g","num","max","min","screenChannel","screen","screen$2","hexToRgb","hex","hexR","hexG","hexB","parseInt","rgbaToRGBA","rgba","replace","split","a","rgbToHex","_ref2","rgbToHsl","_ref3","cmin","cmax","delta","h","l","abs","toFixed","hslToRgb","hsl","c","m","HEX_CHARS","HSL_RE","isHexChars","str","isHex","parseHsl","res","exec","parseColor","color","startsWith","rgb","isColorBlendModeValue","isColorHueValue","isColorTintValue","isColorButtonMode","parseTokenKey","segments","segment0","shift","isColorConfigBaseTone","join","isColorConfigBaseKey","tone","isColorConfigBlendKey","segment1","isColorConfigStateTone","segment2","isColorConfigStateKey","mode","parseTokenValue","tint","isColorOpacityValue","opacity","Number","isColorValue","hue","COLOR_CONFIG_BASE_TONES","COLOR_CONFIG_STATE_TONES","COLOR_CONFIG_BASE_KEYS","COLOR_CONFIG_STATE_KEYS","COLOR_CONFIG_BLEND_KEYS","isColorTokenValue","resolveColorTokenValue","context","scheme","compileColorTokenValue","multiply$1","_multiply","screen$1","_screen","resolveColorTokens","sparseTokens","denseTokens","resolveBaseColorTones","resolveButtonColorTokens","spec0","spec1","tokens","resolveButtonToneColorTokens","resolveButtonModeColorTokens","_c","_d","state","resolveButtonStateColorTokens","_e","_f","_g","_h","_j","_k","_l","_m","_n","_o","spec2","spec3","accent","link","code","buildColorTheme","resolvedConfig","buildBaseColorTheme","_color","blendMode","dark","buildButtonColorTheme","tones","buildButtonColorToneTheme","assign","modes","buildButtonModeColorTheme","states","buildButtonStateColorTheme","defaultColorPalette","black","renderColorTheme","colorPalette","palette","light","renderColorScheme","toneEntries","transparentTone","find","_ref4","k","defaultTone","_ref5","renderedTransparentTone","renderColorBase","renderedDefaultTone","fromEntries","_ref6","_ref7","v","nestedBg","renderColorValue","renderButtonColorTheme","baseBlendMode","renderButtonStateColorTheme","renderStatesColorTheme","enabled","renderStateColorTheme","baseBg","rootBlendMode","blend","unmixed","renderColorHex","white","err","log","buildTheme","createButtonTones","opts","solid","createButtonModes","createCardStates","card","colors","lightest","lighter","darker","darkest","spots","gray","red","orange","yellow","green","cyan","blue","purple","magenta","defaultOpts","_ref8","_ref9","iconColor","_ref10","_ref11","_ref12","input","placeholder","selectable","_ref13","spot","_ref14","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","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","createInputModes","readOnly","invalid","createMutedTones","createSelectableTones","_createSelectableStates","createSolidTones","createSpot","createColorTheme","partialOpts","builders","_createColorScheme","_createColor","hues","NEUTRAL_TONES","_ref15","tints","skeletonFrom","_ref16","mix","mix2","defaultTints","isNeutral","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_ref23","mainShade","secondaryShade","medium","semibold","bold","heading","label","text","studioTheme","avatar","distance","offset","textWeight","container","radius","shadows","checkbox","radio","markSize","switch","transitionDurationMs","transitionTimingFunction","select","DEFAULT_THEME_LAYER","dialog","zOffset","popover","tooltip","getGlobalScope","globalThis","self","globalScope","Symbol","for","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","themeProp","rootColor","layer","rootLayer","restTheme","colorScheme","version","jsx","Provider","StyledThemeProvider","isRecord","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","MEDIA_STORE_CACHE","_getMediaQuery","_createMediaStore","mediaLen","getSizes","mediaQuery","mq","matchMedia","getSnapshot","matches","onStoreChange","disposeFns","handleChange","disposeFn","getServerSnapshot","getServerSnapshot$2","useMediaIndex","store","useSyncExternalStore","MEDIA_QUERY_CACHE","getMatchMedia","getMatchMedia$1","getSnapshot$1","getServerSnapshot$1","usePrefersDark","usePrefersReducedMotion","useIsomorphicEffect","useLayoutEffect","useForwardedRef","ref","innerRef","useCustomValidity","customValidity","setCustomValidity","BORDER_VALUE","responsiveBorderStyle","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","focusRingStyle","focusRingOutsetWidth","focusRingInsetWidth","bgColor","GRID_CSS","GRID_AUTO_COLUMS","auto","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","spaceScale","len","_padding","_space","_fontSize","_","emSize","p","styles","responsiveInputPaddingIconRightStyle","ROOT_STYLE","css","__template","textInputRootStyle","textInputBaseStyle","$scheme","$tone","font","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","$radius","borderRadius","toBoxShadow","shadowStyle","boxShadow","responsiveShadowStyle","$shadow","textBaseStyle","$accent","$muted","Root","styled","div","SpanWithTextOverflow","span","Text","forwardRef","childrenProp","textOverflow","weight","restProps","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","zIndex","transition","$color","backgroundColor","userSelect","WebkitFontSmoothing","appearance","responsiveAvatarSizeStyle","avatarSize","textTransform","strokeWidth","strokeDasharray","strokeLinecap","Arrow","BgStroke","ellipse","Stroke","Initials","Avatar","__unstable_hideInnerStroke","as","asProp","colorKey","src","title","onImageLoadError","arrowPosition","arrowPositionProp","animateArrowFrom","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","cancelAnimationFrame","handleImageError","useCallback","initialsSize","jsxs","viewBox","d","patternContentUnits","href","onError","cx","cy","rx","ry","vectorEffect","Fragment","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","AvatarCounter","count","counterSize","childrenToElementArray","childrenArray","isFragment","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","AvatarStack","maxLength","maxLengthProp","child","visibleCount","extraCount","visibleChildren","childIndex","cloneElement","String","Box","marginX","marginY","marginRight","paddingX","paddingY","badgeStyle","$mode","cursor","Badge","Flex","forwardedAs","rotate","keyframes","Spinner","SpinnerIcon","_colorVarsStyle","checkered","buttonBaseStyles","_ref24","$width","buttonTheme","defaultBoxShadow","combineBoxShadow","_len","boxShadows","_key","buttonColorStyles","LoadingBox","Button","icon","iconRight","justifyProp","loading","paddingProp","paddingXProp","paddingYProp","paddingTopProp","paddingBottomProp","paddingLeftProp","paddingRightProp","radiusProp","spaceProp","boxProps","isValidElement","createElement","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","Card","__unstable_checkered","__unstable_focusRing","toneProp","rootTheme","checkboxBaseStyles","inputElementStyles","Input","Checkbox","forwardedRef","checked","indeterminate","CheckmarkIcon","RemoveIcon","codeSyntaxHighlightingStyle","_ref25","codeBaseStyle","pre","Code","language","languageProp","registered","Refractor","hasLanguage","inline","containerBaseStyle","responsiveContainerWidthStyle","maxWidth","Container","Grid","headingBaseStyle","Heading","inlineBaseStyle","verticalAlign","inlineSpaceStyle","Inline","kbdStyle","kbd","KBD","labelBaseStyle","Label","BoundaryElementContext","BoundaryElementProvider","DEFAULT_VALUE","useBoundaryElement","findMaxBreakpoints","bp","findMinBreakpoints","ElementQuery","innerWidth","setRef","ErrorBoundary","Component","constructor","__publicField","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","getLayerContext","contextValue","LayerContext","useLayer","_raf","fn","frameId","_raf2","innerDispose","outerDispose","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","_hasFocus","activeElement","isFocusable","tabIndex","getAttribute","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","LayerProvider","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","parentLevel","level","maxMediaIndex","setChildLayers","isTopLayer","childLevel","parentDispose","prevLen","nextState","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","becameTopLayer","handleFocus","rootElement","Layer","elementKey","defaultContextValue","setAttribute","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","useUnique","valueRef","_isEqual","objA","objB","keysA","keysB","every","__BROWSER__","PortalProvider","__unstable_elements","elementsProp","SrOnly","ItemWrapper","VirtualList","getItemKey","items","onChange","renderItem","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","_scrollEl","scrollEl","handleScroll","handleScroll2","passive","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","wrapperStyle","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","apply","margins","args","placement","platform","rects","floating","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","maxHeight","floatingW","floatingH","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","calcCurrentWidth","params","w","currentWidth","calcMaxWidth","boundaryWidth","BorderPath","path","ShapePath","PopoverArrow","xmlns","PopoverCard","memo","PopoverCard2","__unstable_margins","marginsProp","arrowRef","arrowX","arrowY","strategy","xProp","yProp","rootStyle","staticSide","arrowStyle","displayName","Popover","Popover2","boundaryElementContext","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","open","placementProp","preventOverflow","referenceBoundary","referenceElement","shadowProp","widthProp","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","flip","mainAxis","_ref26","_currentWidth","_maxWidth","hide","middlewareData","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","arrowEl","setFloating","setReference","childRef","hidden","radioBaseStyle","inputElementStyle","dist","Radio","inputBaseStyle","inputColorStyle","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","selectStyle","iconBox","IconBox","Select","SelectIcon","stackBaseStyle","responsiveStackSpaceStyle","Stack","switchBaseStyles","switchInputStyles","switchRepresentationStyles","switchTrackStyles","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","Representation","Track","Thumb","Switch","InputRoot","textarea","Presentation","TextArea","CLEAR_BUTTON_BOX_STYLE","attrs","Prefix","Suffix","LeftBox","RightBox","RightCard","TextInputClearButton","TextInput","__unstable_disableFocusRing","clearButton","fontSizeProp","onClear","prefix","suffix","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","clearButtonPadding","clearButtonProps","clearButtonNode","CloseIcon","onClick","onMouseDown","suffixNode","useDelayedState","initialState","setState","delayedAction","onStateChange","delay","action","clearTimeout","setTimeout","DEFAULT_TOOLTIP_PADDING","Border","Shape","TooltipArrow","TooltipDelayGroupContext","useTooltipDelayGroup","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","isInsideContext","openDelay","closeDelay","close","_ref27","$maxWidth","Tooltip","fallbackPlacementsProp","portalProp","setReferenceElement","tooltipWidth","availableWidths","floatingStyles","tooltipId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","minimumGroupDeactivateDelay","groupDeactivateDelay","standaloneDelay","handleBlur","e","onBlur","handleClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowMouseMove","isHoveringReference","handleWindowKeyDown","ListBox","AnimatedSpinnerIcon","AutocompleteOption","onSelect","handleKeyDown","currentTarget","role","autocompleteReducer","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","InnerAutocomplete","filterOption","filterOptionProp","listBox","onQueryChange","openButton","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","_ref28","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","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","autoCapitalize","autoComplete","autoCorrect","inputMode","spellCheck","handleListBoxKeyDown","active","results","inputElement","Autocomplete","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElement","setExpandElement","popoverElement","setPopoverElement","collapse","expand","rawItems","Children","toArray","beforeLength","afterLength","BORDER_OFFSET_X","dialogStyle","_ref29","background","responsiveDialogPositionStyle","$position","DialogContext","useDialog","isTargetWithinScope","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","$isContentScrollable","$hasScrolledFromTop","DialogContent","DialogFooter","$hasScrolledToBottom","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","footer","header","onClickOutside","onClose","setRootElement","localContentRef","labelId","showCloseButton","showHeader","isContentScrollable","setIsContentScrollable","hasScrolledFromTop","setHasScrolledFromTop","hasScrolledToBottom","setHasScrolledToBottom","setContentRef","handleContentUpdate","onScroll","Dialog","cardRadius","cardRadiusProp","cardShadow","positionProp","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","rootClickTimeoutRef","handleRootClick","DialogProvider","Key","Hotkeys","MenuContext","_isFocusable","_getFocusableElements","_getDOMPath","parentElement","unshift","EMPTY_PATH","_sortElements","_sort","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","focusableElements","currentIndex","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","_activeIndex","Menu","focusFirst","focusLast","onEscape","onItemClick","onItemSelect","registerElement","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","onOpen","deprecated_placement","popoverScheme","deprecated_popoverScheme","deprecated_portal","popoverRadius","deprecated_popoverRadius","deprecated_preventOverflow","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleButtonKeyDown","handleMenuClickOutside","handleMenuEscape","relatedTarget","handleItemClick","els","_el","menuProps","onBlurCapture","setButtonRef","popoverProps","MenuDivider","hr","selectableBaseStyle","selectableColorStyle","Selectable","useMenu","MenuGroup","shouldFocusRef","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","ChevronRightIcon","MenuItem","hotkeys","selectedProp","paddingProps","keyframe","animation","skeletonStyle","_ref30","$visible","_ref31","$animated","Skeleton","animated","visible","setVisible","_ref32","$style","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","CustomButton","Tab","elementRef","focusedRef","_isReactElement","CustomInline","TabList","setFocusedIndex","tabs","handleTabFocus","numTabs","tabIdx","prevIndex","TabPanel","STATUS_CARD_TONE","warning","success","ROLES","TextBox","Toast","closable","description","cardTone","useMounted","ToastContext","ToastContainer","toastId","ToastProvider","_setState","toastsRef","startTransition","duration","dismiss","timeoutId","prevState","findIndex","t","toasts","AnimatePresence","initial","_ref33","motion","animate","scale","exit","layout","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","pop","j","_findNextItemElement","_focusItemElement","TreeContext","Tree","Tree2","setFocusedElement","setItemElements","stateRef","registerItem","newState","setExpanded","itemState","nextEl","prevEl","itemPath","parentKey","parentState","focusedKey","_itemElements","querySelectorAll","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","useTree","tree","TreeGroup","li","TreeItemBox","ToggleArrowText","TreeItem","expandedProp","idProp","linkAs","rootRef","treeitemRef","_id","closest","click","visibility","pointerEvents","ToggleArrowRightIcon"],"mappings":"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","x_google_ignoreList":[10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]}