@sanity/ui 1.7.3 → 1.7.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +1 -1
  2. package/dist/index.d.ts +19 -19
  3. package/dist/index.esm.js +354 -103
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.js +354 -103
  6. package/dist/index.js.map +1 -1
  7. package/package.json +36 -35
  8. package/src/__workshop__/constants.ts +2 -2
  9. package/src/components/autocomplete/__mocks__/apiStore.ts +2 -2
  10. package/src/components/autocomplete/__workshop__/async.tsx +2 -2
  11. package/src/components/autocomplete/__workshop__/constrainedHeight.tsx +2 -2
  12. package/src/components/autocomplete/__workshop__/custom.tsx +1 -1
  13. package/src/components/autocomplete/__workshop__/fullscreen.tsx +6 -6
  14. package/src/components/autocomplete/autocomplete.tsx +20 -20
  15. package/src/components/autocomplete/autocompleteOption.tsx +1 -1
  16. package/src/components/autocomplete/autocompleteReducer.ts +1 -1
  17. package/src/components/breadcrumbs/breadcrumbs.tsx +2 -2
  18. package/src/components/dialog/dialog.tsx +11 -11
  19. package/src/components/dialog/dialogProvider.tsx +1 -1
  20. package/src/components/dialog/styles.ts +1 -1
  21. package/src/components/hotkeys/hotkeys.tsx +1 -1
  22. package/src/components/menu/__workshop__/asComponent.tsx +1 -1
  23. package/src/components/menu/__workshop__/menuButton.tsx +1 -1
  24. package/src/components/menu/menu.test.tsx +3 -3
  25. package/src/components/menu/menu.tsx +7 -7
  26. package/src/components/menu/menuButton.tsx +7 -7
  27. package/src/components/menu/menuGroup.tsx +4 -4
  28. package/src/components/menu/menuItem.tsx +4 -4
  29. package/src/components/menu/useMenuController.ts +3 -3
  30. package/src/components/skeleton/skeleton.tsx +2 -2
  31. package/src/components/skeleton/textSkeleton.tsx +25 -19
  32. package/src/components/tab/__workshop__/example.tsx +6 -1
  33. package/src/components/tab/tab.tsx +8 -3
  34. package/src/components/tab/tabList.tsx +22 -5
  35. package/src/components/tab/tabPanel.tsx +1 -1
  36. package/src/components/toast/toast.test.tsx +2 -1
  37. package/src/components/toast/toast.tsx +1 -1
  38. package/src/components/toast/toastProvider.tsx +1 -1
  39. package/src/components/tree/__workshop__/basic.perf.ts +1 -1
  40. package/src/components/tree/helpers.ts +2 -2
  41. package/src/components/tree/style.ts +1 -1
  42. package/src/components/tree/tree.tsx +9 -9
  43. package/src/components/tree/treeGroup.tsx +1 -1
  44. package/src/components/tree/treeItem.tsx +4 -4
  45. package/src/hooks/useArrayProp.ts +2 -2
  46. package/src/hooks/useClickOutside.ts +2 -2
  47. package/src/hooks/useCustomValidity.ts +1 -1
  48. package/src/hooks/useMediaIndex/useMediaIndex.test.tsx +4 -4
  49. package/src/hooks/usePrefersDark.hydration.test.tsx +2 -1
  50. package/src/hooks/usePrefersReducedMotion.hydration.test.tsx +2 -1
  51. package/src/lib/globalScope.ts +1 -0
  52. package/src/primitives/_selectable/selectable.tsx +1 -1
  53. package/src/primitives/_selectable/style.ts +1 -1
  54. package/src/primitives/avatar/avatar.tsx +3 -3
  55. package/src/primitives/avatar/avatarCounter.tsx +5 -3
  56. package/src/primitives/avatar/avatarStack.tsx +2 -2
  57. package/src/primitives/avatar/styles.ts +1 -1
  58. package/src/primitives/badge/badge.tsx +2 -2
  59. package/src/primitives/box/box.tsx +2 -2
  60. package/src/primitives/button/button.tsx +2 -2
  61. package/src/primitives/button/styles.ts +1 -1
  62. package/src/primitives/card/__workshop__/asComponent.tsx +1 -1
  63. package/src/primitives/card/__workshop__/selected.tsx +19 -15
  64. package/src/primitives/card/card.tsx +1 -1
  65. package/src/primitives/card/styles.ts +1 -1
  66. package/src/primitives/checkbox/checkbox.tsx +1 -1
  67. package/src/primitives/code/code.tsx +2 -1
  68. package/src/primitives/container/container.tsx +2 -2
  69. package/src/primitives/container/styles.ts +1 -1
  70. package/src/primitives/flex/flex.tsx +2 -2
  71. package/src/primitives/grid/grid.tsx +1 -1
  72. package/src/primitives/heading/heading.tsx +1 -1
  73. package/src/primitives/heading/styles.ts +4 -2
  74. package/src/primitives/helpers.ts +2 -2
  75. package/src/primitives/inline/inline.tsx +2 -2
  76. package/src/primitives/kbd/kbd.tsx +1 -1
  77. package/src/primitives/label/label.tsx +1 -1
  78. package/src/primitives/label/styles.ts +1 -1
  79. package/src/primitives/popover/__workshop__/RecursiveStory.tsx +1 -1
  80. package/src/primitives/popover/__workshop__/TestStory.tsx +1 -1
  81. package/src/primitives/popover/helpers.ts +1 -1
  82. package/src/primitives/popover/popover.tsx +11 -11
  83. package/src/primitives/popover/popoverArrow.tsx +1 -1
  84. package/src/primitives/popover/popoverCard.tsx +4 -4
  85. package/src/primitives/radio/radio.tsx +1 -1
  86. package/src/primitives/select/select.tsx +1 -1
  87. package/src/primitives/select/styles.ts +2 -2
  88. package/src/primitives/spinner/spinner.tsx +1 -1
  89. package/src/primitives/stack/stack.tsx +1 -1
  90. package/src/primitives/stack/styles.ts +1 -1
  91. package/src/primitives/switch/__workshop__/props.tsx +1 -1
  92. package/src/primitives/switch/styles.ts +1 -1
  93. package/src/primitives/switch/switch.tsx +1 -1
  94. package/src/primitives/text/__workshop__/colored.tsx +9 -8
  95. package/src/primitives/text/styles.ts +4 -2
  96. package/src/primitives/text/text.tsx +2 -2
  97. package/src/primitives/textArea/textArea.tsx +3 -3
  98. package/src/primitives/textInput/__workshop__/plain.tsx +2 -2
  99. package/src/primitives/textInput/textInput.tsx +11 -11
  100. package/src/primitives/tooltip/tooltip.tsx +8 -7
  101. package/src/primitives/tooltip/tooltipArrow.tsx +1 -1
  102. package/src/styles/border/borderStyle.ts +5 -5
  103. package/src/styles/colorVars/colorVarsStyle.ts +1 -1
  104. package/src/styles/flex/flexItemStyle.ts +1 -1
  105. package/src/styles/flex/flexStyle.ts +3 -3
  106. package/src/styles/font/responsiveFont.ts +1 -1
  107. package/src/styles/font/textAlignStyle.ts +1 -1
  108. package/src/styles/helpers.ts +3 -3
  109. package/src/styles/input/responsiveInputPaddingStyle.ts +4 -4
  110. package/src/styles/input/textInputStyle.ts +2 -2
  111. package/src/styles/margin/marginStyle.ts +1 -1
  112. package/src/styles/padding/paddingStyle.ts +1 -1
  113. package/src/theme/__workshop__/color.tsx +1 -0
  114. package/src/theme/lib/theme/color/button/createButtonModes.ts +1 -1
  115. package/src/theme/lib/theme/color/button/createButtonTones.ts +1 -1
  116. package/src/theme/lib/theme/color/card/createCardStates.ts +1 -1
  117. package/src/theme/lib/theme/color/factory.ts +2 -2
  118. package/src/theme/lib/theme/color/input/createInputModes.ts +1 -1
  119. package/src/theme/lib/theme/color/muted/createMuted.ts +1 -1
  120. package/src/theme/lib/theme/color/selectable/createSelectableTones.ts +2 -2
  121. package/src/theme/lib/theme/color/solid/createSolidTones.ts +1 -1
  122. package/src/theme/lib/theme/color/spot/createSpot.ts +1 -1
  123. package/src/theme/lib/theme/shadow.ts +1 -1
  124. package/src/theme/lib/theme/theme.ts +1 -1
  125. package/src/theme/theme.test.tsx +2 -1
  126. package/src/theme/themeProvider.tsx +1 -1
  127. package/src/theme/useRootTheme.ts +1 -0
  128. package/src/utils/boundaryElement/boundaryElement.test.tsx +2 -1
  129. package/src/utils/elementQuery/elementQuery.tsx +2 -2
  130. package/src/utils/layer/layer.test.tsx +2 -1
  131. package/src/utils/layer/layer.tsx +3 -3
  132. package/src/utils/layer/layerProvider.tsx +2 -2
  133. package/src/utils/portal/portal.test.tsx +2 -1
  134. package/src/utils/srOnly/srOnly.tsx +1 -1
  135. package/src/utils/virtualList/__workshop__/changingProps.tsx +1 -1
  136. package/src/utils/virtualList/virtualList.tsx +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.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/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/primitives/tooltip/tooltipArrow.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 {CSSObject} from 'styled-components'\nimport {EMPTY_ARRAY} from '../constants'\nimport {Theme} from '../theme'\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 {CSSObject} from 'styled-components'\nimport {ThemeFontSize, ThemeFontKey} from '../../theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: ResponsiveFontStyleProps & ThemeProps\n): CSSObject[] {\n const {$size, $weight, 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 'styled-components'\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 'styled-components'\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 'styled-components'\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 'styled-components'\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 'styled-components'\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 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 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 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 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 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 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 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 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","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\nconst 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '-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 '-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 '-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 },\n button: {\n textWeight: 'medium',\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 },\n radio: {\n size: 17,\n markSize: 9,\n },\n switch: {\n width: 33,\n height: 17,\n padding: 4,\n transitionDurationMs: 150,\n transitionTimingFunction: 'ease-out',\n },\n border: {\n 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","/**\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","import {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 'styled-components'\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 'styled-components'\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 'styled-components'\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 {CSSObject} from 'styled-components'\nimport {EMPTY_ARRAY} from '../../constants'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexItemStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n minWidth: 0,\n minHeight: 0,\n}\n\nexport function flexItemStyle(): Array<\n CSSObject | ((props: ResponsiveFlexItemStyleProps & ThemeProps) => CSSObject[])\n> {\n return [BASE_STYLE, responsiveFlexItemStyle]\n}\n\nexport function responsiveFlexItemStyle(\n props: ResponsiveFlexItemStyleProps & ThemeProps\n): CSSObject[] {\n const {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","export 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: {offset: number; width: number}\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 'styled-components'\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 'styled-components'\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 'styled-components'\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, CSSObject, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeColorSchemeKey, ThemeFontWeightKey} from '../../theme'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): FlattenSimpleInterpolation {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps\n): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, theme} = props\n const {focusRing, input} = theme.sanity\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 'styled-components'\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 'styled-components'\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 'styled-components'\nimport {rem, _responsive} 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, (radiusIndex) => ({\n borderRadius: rem(radius[radiusIndex]),\n }))\n}\n","import {CSSObject} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {BoxShadow, ThemeShadow} from '../../theme'\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, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps\n): FlattenSimpleInterpolation {\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: 0 0 0 1px var(--card-bg-color), 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 }\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 {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n position: 'absolute',\n boxSizing: 'border-box',\n zIndex: 0,\n opacity: 0,\n transition: 'all 0.2s linear',\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n\n '& > svg': {\n width: '11px',\n height: '7px',\n position: 'absolute',\n top: '-5px',\n left: '50%',\n transform: 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color, theme} = props\n const {focusRing} = theme.sanity\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 '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n '-webkit-font-smoothing': 'inherit',\n appearance: 'none',\n margin: 0,\n padding: 0,\n border: 0,\n font: 'inherit',\n color: 'inherit',\n outline: 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing}),\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 strokeSasharray: '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: 0 0 0 1px var(--card-bg-color), 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}\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, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps\n): FlattenSimpleInterpolation {\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 {CSSObject} from 'styled-components'\nimport {ThemeProps} from '../../styles'\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 <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 {CSSObject} from 'styled-components'\nimport {ThemeColorBase, ThemeColorGenericState} from '../../theme'\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\n // Card\n '--card-bg-color': color.bg,\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, CSSObject, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(): FlattenSimpleInterpolation {\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}}\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\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 '&:focus': {\n boxShadow: focusRingStyle({base, border, focusRing}),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: focusRingBorderStyle(border),\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 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,\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 ...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}>\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={iconRight ? 1 : undefined}\n marginLeft={icon ? space : undefined}\n marginRight={iconRight ? space : undefined}\n >\n <Text\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, FlattenSimpleInterpolation} 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<FlattenSimpleInterpolation | (() => FlattenSimpleInterpolation)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\n const {$checkered, $focusRing, theme} = props\n const {focusRing} = theme.sanity\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, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): FlattenSimpleInterpolation {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): FlattenSimpleInterpolation {\n const {theme} = props\n const color = theme.sanity.color.input\n const {focusRing, input, radius} = theme.sanity\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: 2 !important;\n }\n }\n }\n\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 > svg:first-child {\n opacity: 1;\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 &:not([data-read-only]):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\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 {...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, FlattenInterpolation, ThemeProps as StyledThemeProps} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {Theme} from '../../theme'\n\nfunction codeSyntaxHighlightingStyle({theme}: ThemeProps) {\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(): FlattenInterpolation<StyledThemeProps<Theme>> {\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","import {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 {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps\n): CSSObject[] {\n const {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, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(\n props: HeadingStyleProps & ThemeProps\n): FlattenSimpleInterpolation {\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: 0 0 0 1px var(--card-bg-color), 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 {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n lineHeight: 0,\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {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 data-ui=\"Inline\" {...restProps} $space={useArrayProp(space)} forwardedAs={as} ref={ref}>\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 {Box} from '../box'\nimport {Code} from '../code'\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?: number | number[]\n}\n\nfunction kbdStyle() {\n return css`\n background: var(--card-bg-color);\n font: inherit;\n box-shadow: inset 0 0 0 1px var(--card-hairline-hard-color);\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 <Code as=\"span\" muted size={fontSize}>\n {children}\n </Code>\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","import {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 {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]\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} 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?: number | number[]\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_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\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,\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, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function radioBaseStyle(): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\n const {theme} = props\n const {focusRing, input} = theme.sanity\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.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.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 /* 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.fg};\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.fg};\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 {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </Root>\n )\n})\n","import {css, CSSObject, FlattenSimpleInterpolation} 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'\n\nfunction rootStyle(): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\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 {focusRing, input} = theme.sanity\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) => FlattenSimpleInterpolation)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): FlattenSimpleInterpolation {\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 {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?: number | number[]\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: number[]\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 {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n gridTemplateColumns: 'minmax(0, 1fr)',\n gridAutoRows: 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps\n): CSSObject[] {\n const {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, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): FlattenSimpleInterpolation {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\n const {theme} = props\n const {focusRing, input} = theme.sanity\n const color = theme.sanity.color.button.default\n\n return css`\n --switch-bg-color: ${color.default.enabled.bg};\n --switch-fg-color: ${color.default.enabled.fg};\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: ${color.positive.enabled.bg};\n --switch-fg-color: ${color.positive.enabled.fg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.default.hovered.bg};\n --switch-fg-color: ${color.default.hovered.fg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.positive.hovered.bg};\n --switch-fg-color: ${color.positive.hovered.fg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.default.disabled.bg};\n --switch-fg-color: ${color.default.disabled.fg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\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\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 {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?: number | number[]\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\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 <Button\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 {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 {\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} from 'react'\nimport styled from 'styled-components'\nimport {FLOATING_STATIC_SIDES} from '../../constants'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {ThemeColorSchemeKey, useTheme} from '../../theme'\nimport {Placement} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement} from '../../utils'\nimport {Card} from '../card'\nimport {TooltipArrow} from './tooltipArrow'\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\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,\n padding,\n placement: placementProp = 'bottom',\n portal,\n scheme,\n shadow = 2,\n zOffset = theme.sanity.layer?.tooltip.zOffset,\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 })\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 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 {x, y, placement, middlewareData, refs, update, strategy} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n position: strategy,\n top: y ?? 0,\n left: x ?? 0,\n }),\n [strategy, x, y]\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 [isOpen, setIsOpen] = useState(false)\n const handleBlur = useCallback(() => setIsOpen(false), [])\n const handleFocus = useCallback(() => setIsOpen(true), [])\n const handleMouseEnter = useCallback(() => setIsOpen(true), [])\n const handleMouseLeave = useCallback(() => setIsOpen(false), [])\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 setIsOpen(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])\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled) setIsOpen(false)\n }, [disabled])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content) setIsOpen(false)\n }, [content])\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 data-ui=\"Tooltip\" {...restProps} ref={setFloating} style={rootStyle} zOffset={zOffset}>\n <Card\n data-ui=\"Tooltip__card\"\n data-placement={placement}\n padding={padding}\n radius={2}\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 {isOpen && (\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 {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?: number | number[]\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 {CSSObject} from 'styled-components'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const color = 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} 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?: number | number[]\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: number | number[]\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'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: number | number[]\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} 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?: number | number[]\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, {StyledComponent} from 'styled-components'\nimport {Theme} from '../../theme'\n\n/**\n * @public\n */\nexport const MenuDivider: StyledComponent<'hr', Theme> = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\n","import {css, FlattenSimpleInterpolation} 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(): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\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 {SelectableTone} from '../../types/selectable'\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?: number | number[]\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 | 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, $style, theme}: {$size: number[]; $style: ThemeFontKey; theme: Theme}) => {\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/**\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 {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\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,\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 <Button\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={setRef}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\n","import {cloneElement, forwardRef, useCallback, useMemo, useState} from 'react'\nimport {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/**\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 <Inline data-ui=\"TabList\" {...restProps} onKeyDown={handleKeyDown} ref={ref} role=\"tablist\">\n {tabs}\n </Inline>\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, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\n\nexport function treeItemRootStyle(): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\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","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","hues","NEUTRAL_TONES","_ref11","tints","skeletonFrom","_ref12","mix","mix2","defaultTints","isNeutral","_ref13","_ref14","_ref15","_ref16","_ref17","_ref18","_ref19","mainShade","secondaryShade","medium","semibold","bold","heading","label","text","studioTheme","avatar","distance","textWeight","container","offset","radius","shadows","checkbox","radio","markSize","switch","transitionDurationMs","transitionTimingFunction","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","ROOT_STYLE","css","_templateObject","_taggedTemplateLiteral","textInputRootStyle","textInputBaseStyle","$scheme","$tone","font","_templateObject2","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","_templateObject3","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","$radius","radiusIndex","borderRadius","toBoxShadow","shadowStyle","boxShadow","responsiveShadowStyle","$shadow","textBaseStyle","$accent","$muted","_templateObject4","_templateObject5","_templateObject6","Root","styled","div","SpanWithTextOverflow","span","_templateObject7","Text","forwardRef","childrenProp","textOverflow","weight","restProps","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","zIndex","opacity","transition","$color","backgroundColor","userSelect","appearance","responsiveAvatarSizeStyle","avatarSize","textTransform","strokeWidth","strokeSasharray","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","_templateObject8","AvatarCounter","count","counterSize","childrenToElementArray","childrenArray","isFragment","BASE_STYLES","_templateObject9","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","AvatarStack","maxLength","maxLengthProp","child","visibleCount","extraCount","visibleChildren","childIndex","cloneElement","String","Box","marginX","marginY","marginRight","paddingX","paddingY","labelBaseStyle","_templateObject10","_templateObject11","_templateObject12","_templateObject13","Label","badgeStyle","$mode","palette","cursor","Badge","Flex","forwardedAs","rotate","keyframes","_templateObject14","_templateObject15","Spinner","SpinnerIcon","_colorVarsStyle","checkered","_c","_d","_e","_f","_g","_h","buttonBaseStyles","_templateObject16","buttonTheme","buttonColorStyles","LoadingBox","_templateObject17","Button","icon","iconRight","justifyProp","loading","paddingProp","paddingXProp","paddingYProp","paddingTopProp","paddingBottomProp","paddingLeftProp","paddingRightProp","radiusProp","spaceProp","boxProps","isValidElement","createElement","cardStyle","cardBaseStyle","cardColorStyle","$checkered","_templateObject18","_templateObject19","$focusRing","_templateObject20","Card","__unstable_checkered","__unstable_focusRing","toneProp","rootTheme","checkboxBaseStyles","_templateObject21","inputElementStyles","_templateObject22","Input","Checkbox","forwardedRef","checked","indeterminate","CheckmarkIcon","RemoveIcon","codeSyntaxHighlightingStyle","_ref20","codeBaseStyle","_templateObject23","pre","Code","language","languageProp","registered","Refractor","hasLanguage","inline","containerBaseStyle","responsiveContainerWidthStyle","$width","maxWidth","Container","Grid","headingBaseStyle","_templateObject24","_templateObject25","_templateObject26","_templateObject27","Heading","inlineBaseStyle","verticalAlign","inlineSpaceStyle","Inline","kbdStyle","_templateObject28","kbd","KBD","BoundaryElementContext","BoundaryElementProvider","DEFAULT_VALUE","useBoundaryElement","findMaxBreakpoints","bp","findMinBreakpoints","ElementQuery","innerWidth","setRef","ErrorBoundary","Component","constructor","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","_templateObject29","SrOnly","_templateObject30","ItemWrapper","_templateObject31","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","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","_templateObject32","BorderPath","path","_templateObject33","ShapePath","_templateObject34","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","_templateObject35","inputElementStyle","dist","_templateObject36","Radio","_templateObject37","inputBaseStyle","_templateObject38","inputColorStyle","_templateObject39","textSize","inputTextSizeStyle","inputStyle","iconBoxStyle","_templateObject40","selectStyle","iconBox","select","IconBox","Select","SelectIcon","stackBaseStyle","responsiveStackSpaceStyle","Stack","switchBaseStyles","_templateObject41","switchInputStyles","_templateObject42","switchRepresentationStyles","_templateObject43","switchTrackStyles","_templateObject44","switchThumbStyles","$indeterminate","trackWidth","trackHeight","trackPadding","checkedOffset","indeterminateOffset","$checked","_templateObject45","_templateObject46","_templateObject47","Representation","Track","Thumb","Switch","InputRoot","_templateObject48","textarea","Presentation","TextArea","CLEAR_BUTTON_BOX_STYLE","attrs","_templateObject49","Prefix","_templateObject50","Suffix","_templateObject51","LeftBox","_templateObject52","RightBox","_templateObject53","RightCard","_templateObject54","TextInput","clearButton","fontSizeProp","onClear","prefix","suffix","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","clearButtonPadding","clearButtonProps","clearButtonNode","CloseIcon","onClick","onMouseDown","suffixNode","_templateObject55","Border","_templateObject56","Shape","_templateObject57","TooltipArrow","_templateObject58","Tooltip","fallbackPlacementsProp","setReferenceElement","isOpen","setIsOpen","handleBlur","handleMouseEnter","handleMouseLeave","handleWindowMouseMove","isHoveringReference","onBlur","onMouseEnter","onMouseLeave","_templateObject59","ListBox","_templateObject60","_templateObject61","AnimatedSpinnerIcon","_templateObject62","AutocompleteOption","onSelect","handleClick","setTimeout","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","_ref22","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","_templateObject63","ExpandButton","_templateObject64","Breadcrumbs","separator","spaceRaw","setOpen","expandElement","setExpandElement","popoverElement","setPopoverElement","collapse","expand","rawItems","Children","toArray","beforeLength","afterLength","dialogStyle","_ref23","background","responsiveDialogPositionStyle","$position","DialogContext","useDialog","isTargetWithinScope","DialogContainer","_templateObject65","DialogCardRoot","_templateObject66","DialogLayout","_templateObject67","DialogHeader","_templateObject68","DialogContent","_templateObject69","DialogFooter","_templateObject70","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","clearTimeout","DialogProvider","_templateObject71","Key","_templateObject72","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","_templateObject73","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","_templateObject74","selectableBaseStyle","_templateObject75","selectableColorStyle","_templateObject76","Selectable","useMenu","MenuGroup","shouldFocusRef","withinMenu","setWithinMenu","handleMenuKeyDown","handleChildItemClick","handleMenuMouseEnter","childMenu","ChevronRightIcon","MenuItem","hotkeys","selectedProp","paddingProps","keyframe","_templateObject77","animation","_templateObject78","skeletonStyle","_templateObject79","_ref24","$visible","_ref25","$animated","_templateObject80","Skeleton","animated","delay","visible","setVisible","_ref26","$style","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","Tab","elementRef","focusedRef","_isReactElement","TabList","setFocusedIndex","tabs","handleTabFocus","numTabs","tabIdx","prevIndex","TabPanel","STATUS_CARD_TONE","warning","success","ROLES","_templateObject81","TextBox","_templateObject82","Toast","closable","description","cardTone","useMounted","ToastContext","_templateObject83","ToastContainer","_templateObject84","toastId","ToastProvider","_setState","toastsRef","setState","startTransition","duration","dismiss","timeoutId","prevState","findIndex","t","toasts","AnimatePresence","initial","_ref27","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","_templateObject85","treeItemRootColorStyle","_templateObject86","treeItemBoxStyle","$level","_templateObject87","useTree","tree","TreeGroup","li","TreeItemBox","ToggleArrowText","_templateObject88","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.esm.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/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/primitives/tooltip/tooltipArrow.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 {CSSObject} from 'styled-components'\nimport {EMPTY_ARRAY} from '../constants'\nimport {Theme} from '../theme'\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 {CSSObject} from 'styled-components'\nimport {ThemeFontSize, ThemeFontKey} from '../../theme'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * A utility function getting responsive font styles.\n * @internal\n */\nexport function responsiveFont(\n fontKey: ThemeFontKey,\n props: ResponsiveFontStyleProps & ThemeProps,\n): CSSObject[] {\n const {$size, $weight, 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 'styled-components'\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 'styled-components'\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 'styled-components'\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 'styled-components'\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 'styled-components'\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 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 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 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 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 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 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 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 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","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\nconst 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 '-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 '-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 '-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 },\n button: {\n textWeight: 'medium',\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 },\n radio: {\n size: 17,\n markSize: 9,\n },\n switch: {\n width: 33,\n height: 17,\n padding: 4,\n transitionDurationMs: 150,\n transitionTimingFunction: 'ease-out',\n },\n border: {\n 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 'styled-components'\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 'styled-components'\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 'styled-components'\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 {CSSObject} from 'styled-components'\nimport {EMPTY_ARRAY} from '../../constants'\nimport {_responsive} from '../helpers'\nimport {ThemeProps} from '../types'\nimport {ResponsiveFlexItemStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n minWidth: 0,\n minHeight: 0,\n}\n\nexport function flexItemStyle(): Array<\n CSSObject | ((props: ResponsiveFlexItemStyleProps & ThemeProps) => CSSObject[])\n> {\n return [BASE_STYLE, responsiveFlexItemStyle]\n}\n\nexport function responsiveFlexItemStyle(\n props: ResponsiveFlexItemStyleProps & ThemeProps,\n): CSSObject[] {\n const {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","export 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: {offset: number; width: number}\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 'styled-components'\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 'styled-components'\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 'styled-components'\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, CSSObject, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeColorSchemeKey, ThemeFontWeightKey} from '../../theme'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): FlattenSimpleInterpolation {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, theme} = props\n const {focusRing, input} = theme.sanity\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 'styled-components'\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 'styled-components'\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 'styled-components'\nimport {rem, _responsive} 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, (radiusIndex) => ({\n borderRadius: rem(radius[radiusIndex]),\n }))\n}\n","import {CSSObject} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {BoxShadow, ThemeShadow} from '../../theme'\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, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function textBaseStyle(\n props: {$accent?: boolean; $muted?: boolean} & ThemeProps,\n): FlattenSimpleInterpolation {\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 }\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 {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport const avatarStyle = {\n root: avatarRootStyle,\n arrow: avatarArrowStyle,\n bgStroke: avatarBgStrokeStyle,\n stroke: avatarStrokeStyle,\n initials: avatarInitialsStyle,\n}\n\nfunction avatarArrowStyle(): CSSObject {\n return {\n position: 'absolute',\n boxSizing: 'border-box',\n zIndex: 0,\n opacity: 0,\n transition: 'all 0.2s linear',\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n\n '& > svg': {\n width: '11px',\n height: '7px',\n position: 'absolute',\n top: '-5px',\n left: '50%',\n transform: 'translateX(-6px)',\n\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n }\n}\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color, theme} = props\n const {focusRing} = theme.sanity\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 '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n '-webkit-font-smoothing': 'inherit',\n appearance: 'none',\n margin: 0,\n padding: 0,\n border: 0,\n font: 'inherit',\n color: 'inherit',\n outline: 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing}),\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 strokeSasharray: '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}\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, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): FlattenSimpleInterpolation {\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 {CSSObject} from 'styled-components'\nimport {ThemeProps} from '../../styles'\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 <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 {CSSObject} from 'styled-components'\nimport {ThemeColorBase, ThemeColorGenericState} from '../../theme'\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\n // Card\n '--card-bg-color': color.bg,\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, CSSObject, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\nimport {ButtonMode, ButtonTone} from '../../types'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(): FlattenSimpleInterpolation {\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}}\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\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 '&:focus': {\n boxShadow: focusRingStyle({base, border, focusRing}),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: focusRingBorderStyle(border),\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 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,\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 ...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}>\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={iconRight ? 1 : undefined}\n marginLeft={icon ? space : undefined}\n marginRight={iconRight ? space : undefined}\n >\n <Text\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, FlattenSimpleInterpolation} 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<FlattenSimpleInterpolation | (() => FlattenSimpleInterpolation)> {\n return [cardBaseStyle(props), cardColorStyle(props)]\n}\n\nexport function cardBaseStyle(props: CardStyleProps & ThemeProps): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\n const {$checkered, $focusRing, theme} = props\n const {focusRing} = theme.sanity\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, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function checkboxBaseStyles(): FlattenSimpleInterpolation {\n return css`\n position: relative;\n display: inline-block;\n `\n}\n\nexport function inputElementStyles(props: ThemeProps): FlattenSimpleInterpolation {\n const {theme} = props\n const color = theme.sanity.color.input\n const {focusRing, input, radius} = theme.sanity\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: 2 !important;\n }\n }\n }\n\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 > svg:first-child {\n opacity: 1;\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 &:not([data-read-only]):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\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 {...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, FlattenInterpolation, ThemeProps as StyledThemeProps} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {Theme} from '../../theme'\n\nfunction codeSyntaxHighlightingStyle({theme}: ThemeProps) {\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(): FlattenInterpolation<StyledThemeProps<Theme>> {\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 {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {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, FlattenSimpleInterpolation} from 'styled-components'\nimport {ThemeProps} from '../../styles'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(\n props: HeadingStyleProps & ThemeProps,\n): FlattenSimpleInterpolation {\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 {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\nimport {ResponsiveInlineSpaceStyleProps} from './types'\n\nexport function inlineBaseStyle(): CSSObject {\n return {\n lineHeight: 0,\n\n '&&:not([hidden])': {\n display: 'block',\n },\n\n '& > div': {\n display: 'inline-block',\n verticalAlign: 'middle',\n },\n }\n}\n\nexport function inlineSpaceStyle(props: ResponsiveInlineSpaceStyleProps & ThemeProps): CSSObject[] {\n const {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 data-ui=\"Inline\" {...restProps} $space={useArrayProp(space)} forwardedAs={as} ref={ref}>\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 {Box} from '../box'\nimport {Code} from '../code'\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?: number | number[]\n}\n\nfunction kbdStyle() {\n return css`\n background: var(--card-bg-color);\n font: inherit;\n box-shadow: inset 0 0 0 1px var(--card-hairline-hard-color);\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 <Code as=\"span\" muted size={fontSize}>\n {children}\n </Code>\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 {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]\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} 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?: number | number[]\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_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\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,\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, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/internal'\n\nexport function radioBaseStyle(): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\n const {theme} = props\n const {focusRing, input} = theme.sanity\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.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.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 /* 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.fg};\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.fg};\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 {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </Root>\n )\n})\n","import {css, CSSObject, FlattenSimpleInterpolation} 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'\n\nfunction rootStyle(): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\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 {focusRing, input} = theme.sanity\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) => FlattenSimpleInterpolation)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): FlattenSimpleInterpolation {\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 {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?: number | number[]\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: number[]\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 {CSSObject} from 'styled-components'\nimport {rem, _responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space: number[]\n}\n\nconst BASE_STYLE: CSSObject = {\n '&&:not([hidden])': {\n display: 'grid',\n },\n '&[data-as=\"ul\"],&[data-as=\"ol\"]': {\n listStyle: 'none',\n },\n gridTemplateColumns: 'minmax(0, 1fr)',\n gridAutoRows: 'min-content',\n}\n\nexport function stackBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveStackSpaceStyle(\n props: ResponsiveStackSpaceStyleProps & ThemeProps,\n): CSSObject[] {\n const {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, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {focusRingStyle} from '../../styles/internal'\n\n/* Root */\nexport function switchBaseStyles(): FlattenSimpleInterpolation {\n return css`\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n `\n}\n\n/* Input */\nexport function switchInputStyles(): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\n const {theme} = props\n const {focusRing, input} = theme.sanity\n const color = theme.sanity.color.button.default\n\n return css`\n --switch-bg-color: ${color.default.enabled.bg};\n --switch-fg-color: ${color.default.enabled.fg};\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: ${color.positive.enabled.bg};\n --switch-fg-color: ${color.positive.enabled.fg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.default.hovered.bg};\n --switch-fg-color: ${color.default.hovered.fg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.positive.hovered.bg};\n --switch-fg-color: ${color.positive.hovered.fg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.default.disabled.bg};\n --switch-fg-color: ${color.default.disabled.fg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\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\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 {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?: number | number[]\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\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 <Button\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 {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","/* 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} from 'react'\nimport styled from 'styled-components'\nimport {FLOATING_STATIC_SIDES} from '../../constants'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {ThemeColorSchemeKey, useTheme} from '../../theme'\nimport {Placement} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement} from '../../utils'\nimport {Card} from '../card'\nimport {TooltipArrow} from './tooltipArrow'\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\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,\n padding,\n placement: placementProp = 'bottom',\n portal,\n scheme,\n shadow = 2,\n zOffset = theme.sanity.layer?.tooltip.zOffset,\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 }),\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 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 {x, y, placement, middlewareData, refs, update, strategy} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n })\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n position: strategy,\n top: y ?? 0,\n left: x ?? 0,\n }),\n [strategy, x, y],\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 [isOpen, setIsOpen] = useState(false)\n const handleBlur = useCallback(() => setIsOpen(false), [])\n const handleFocus = useCallback(() => setIsOpen(true), [])\n const handleMouseEnter = useCallback(() => setIsOpen(true), [])\n const handleMouseLeave = useCallback(() => setIsOpen(false), [])\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 setIsOpen(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])\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled) setIsOpen(false)\n }, [disabled])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content) setIsOpen(false)\n }, [content])\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 data-ui=\"Tooltip\" {...restProps} ref={setFloating} style={rootStyle} zOffset={zOffset}>\n <Card\n data-ui=\"Tooltip__card\"\n data-placement={placement}\n padding={padding}\n radius={2}\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 {isOpen && (\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 {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?: number | number[]\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 {CSSObject} from 'styled-components'\nimport {_responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const color = 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} 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?: number | number[]\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: number | number[]\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'\n\n/**\n * @public\n */\nexport interface HotkeysProps {\n fontSize?: number | number[]\n padding?: number | number[]\n radius?: number | number[]\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} 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?: number | number[]\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, {StyledComponent} from 'styled-components'\nimport {Theme} from '../../theme'\n\n/**\n * @public\n */\nexport const MenuDivider: StyledComponent<'hr', Theme> = styled.hr`\n height: 1px;\n border: 0;\n background: var(--card-hairline-soft-color);\n margin: 0;\n`\n","import {css, FlattenSimpleInterpolation} 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(): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\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 {SelectableTone} from '../../types/selectable'\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?: number | number[]\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 | 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,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const elementRef = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n const ref = useForwardedRef(forwardedRef)\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (elementRef.current) elementRef.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n const setRef = (el: HTMLButtonElement | null) => {\n elementRef.current = el\n ref.current = el\n }\n\n return (\n <CustomButton\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={setRef}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\n","import {cloneElement, forwardRef, useCallback, useMemo, useState} from 'react'\nimport styled from 'styled-components'\nimport {Inline, InlineProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: Array<React.ReactElement | null | undefined | false>\n}\n\nfunction _isReactElement(node: unknown): node is React.ReactElement {\n return Boolean(node)\n}\n\n//Limits the width of tabs in tablist\nconst CustomInline = styled(Inline)`\n & > div {\n display: inline-block;\n vertical-align: middle;\n max-width: 100%;\n box-sizing: border-box;\n }\n`\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n ref,\n) {\n const {children: childrenProp, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children = useMemo(() => childrenProp.filter(_isReactElement), [childrenProp])\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => handleTabFocus(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleTabFocus = useCallback((tabIdx: number) => {\n setFocusedIndex(tabIdx)\n }, [])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <CustomInline\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </CustomInline>\n )\n})\n","import {forwardRef} from 'react'\nimport {Box, BoxProps} from '../../primitives'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n id: string\n}\n\n/**\n * @public\n */\nexport const TabPanel = forwardRef(function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n ref={ref}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport 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, FlattenSimpleInterpolation} from 'styled-components'\nimport {rem, ThemeProps} from '../../styles'\nimport {_colorVarsStyle} from '../../styles/colorVars'\n\nexport function treeItemRootStyle(): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\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): FlattenSimpleInterpolation {\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","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","hues","NEUTRAL_TONES","_ref11","tints","skeletonFrom","_ref12","mix","mix2","defaultTints","isNeutral","_ref13","_ref14","_ref15","_ref16","_ref17","_ref18","_ref19","mainShade","secondaryShade","medium","semibold","bold","heading","label","text","studioTheme","avatar","distance","textWeight","container","offset","radius","shadows","checkbox","radio","markSize","switch","transitionDurationMs","transitionTimingFunction","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","radiusIndex","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","appearance","responsiveAvatarSizeStyle","avatarSize","textTransform","strokeWidth","strokeSasharray","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","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","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","select","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","TextInput","clearButton","fontSizeProp","onClear","prefix","suffix","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","clearButtonPadding","clearButtonProps","clearButtonNode","CloseIcon","onClick","onMouseDown","suffixNode","Border","Shape","TooltipArrow","Tooltip","fallbackPlacementsProp","setReferenceElement","isOpen","setIsOpen","handleBlur","handleMouseEnter","handleMouseLeave","handleWindowMouseMove","isHoveringReference","onBlur","onMouseEnter","onMouseLeave","ListBox","AnimatedSpinnerIcon","AutocompleteOption","onSelect","handleClick","setTimeout","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","_ref22","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","_ref23","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","clearTimeout","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","_ref24","$visible","_ref25","$animated","Skeleton","animated","delay","visible","setVisible","_ref26","$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","setState","startTransition","duration","dismiss","timeoutId","prevState","findIndex","t","toasts","AnimatePresence","initial","_ref27","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]}