@sanity/ui 0.37.12 → 0.37.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/dts/src/components/autocomplete/autocomplete.d.ts +2 -2
- package/lib/dts/src/components/autocomplete/autocomplete.d.ts.map +1 -1
- package/lib/dts/src/components/autocomplete/autocomplete.styles.d.ts.map +1 -1
- package/lib/dts/src/components/autocomplete/constants.d.ts +0 -4
- package/lib/dts/src/components/autocomplete/constants.d.ts.map +1 -1
- package/lib/dts/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
- package/lib/dts/src/components/dialog/dialog.d.ts.map +1 -1
- package/lib/dts/src/components/dialog/styles.d.ts +1 -1
- package/lib/dts/src/components/dialog/styles.d.ts.map +1 -1
- package/lib/dts/src/components/hotkeys/hotkeys.d.ts.map +1 -1
- package/lib/dts/src/components/menu/menuButton.d.ts.map +1 -1
- package/lib/dts/src/components/menu/menuGroup.d.ts.map +1 -1
- package/lib/dts/src/components/menu/menuItem.d.ts.map +1 -1
- package/lib/dts/src/components/skeleton/skeleton.d.ts.map +1 -1
- package/lib/dts/src/hooks/_internal/useUnique.d.ts +2 -3
- package/lib/dts/src/hooks/_internal/useUnique.d.ts.map +1 -1
- package/lib/dts/src/hooks/index.d.ts +2 -1
- package/lib/dts/src/hooks/index.d.ts.map +1 -1
- package/lib/dts/src/hooks/useArrayProp.d.ts +7 -0
- package/lib/dts/src/hooks/useArrayProp.d.ts.map +1 -0
- package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts +1 -1
- package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts.map +1 -1
- package/lib/dts/src/hooks/useElementSize.d.ts +7 -0
- package/lib/dts/src/hooks/useElementSize.d.ts.map +1 -0
- package/lib/dts/src/index.d.ts +1 -0
- package/lib/dts/src/index.d.ts.map +1 -1
- package/lib/dts/src/observers/elementSizeObserver.d.ts +37 -0
- package/lib/dts/src/observers/elementSizeObserver.d.ts.map +1 -0
- package/lib/dts/src/observers/index.d.ts +3 -0
- package/lib/dts/src/observers/index.d.ts.map +1 -0
- package/lib/dts/src/observers/resizeObserver.d.ts +5 -0
- package/lib/dts/src/observers/resizeObserver.d.ts.map +1 -0
- package/lib/dts/src/primitives/_selectable/selectable.d.ts +1 -2
- package/lib/dts/src/primitives/_selectable/selectable.d.ts.map +1 -1
- package/lib/dts/src/primitives/avatar/avatar.d.ts.map +1 -1
- package/lib/dts/src/primitives/avatar/avatarCounter.d.ts +1 -0
- package/lib/dts/src/primitives/avatar/avatarCounter.d.ts.map +1 -1
- package/lib/dts/src/primitives/avatar/avatarStack.d.ts +1 -0
- package/lib/dts/src/primitives/avatar/avatarStack.d.ts.map +1 -1
- package/lib/dts/src/primitives/avatar/styles.d.ts.map +1 -1
- package/lib/dts/src/primitives/badge/badge.d.ts.map +1 -1
- package/lib/dts/src/primitives/box/box.d.ts.map +1 -1
- package/lib/dts/src/primitives/button/button.d.ts.map +1 -1
- package/lib/dts/src/primitives/card/card.d.ts.map +1 -1
- package/lib/dts/src/primitives/code/code.d.ts.map +1 -1
- package/lib/dts/src/primitives/container/container.d.ts.map +1 -1
- package/lib/dts/src/primitives/container/styles.d.ts.map +1 -1
- package/lib/dts/src/primitives/container/types.d.ts +1 -1
- package/lib/dts/src/primitives/container/types.d.ts.map +1 -1
- package/lib/dts/src/primitives/flex/flex.d.ts.map +1 -1
- package/lib/dts/src/primitives/grid/grid.d.ts.map +1 -1
- package/lib/dts/src/primitives/heading/heading.d.ts.map +1 -1
- package/lib/dts/src/primitives/inline/inline.d.ts.map +1 -1
- package/lib/dts/src/primitives/inline/styles.d.ts.map +1 -1
- package/lib/dts/src/primitives/inline/types.d.ts +1 -1
- package/lib/dts/src/primitives/inline/types.d.ts.map +1 -1
- package/lib/dts/src/primitives/kbd/kbd.d.ts.map +1 -1
- package/lib/dts/src/primitives/label/label.d.ts.map +1 -1
- package/lib/dts/src/primitives/popover/popover.d.ts.map +1 -1
- package/lib/dts/src/primitives/select/styles.d.ts +5 -1
- package/lib/dts/src/primitives/select/styles.d.ts.map +1 -1
- package/lib/dts/src/primitives/stack/stack.d.ts.map +1 -1
- package/lib/dts/src/primitives/stack/styles.d.ts +1 -1
- package/lib/dts/src/primitives/stack/styles.d.ts.map +1 -1
- package/lib/dts/src/primitives/text/text.d.ts.map +1 -1
- package/lib/dts/src/primitives/textArea/textArea.d.ts.map +1 -1
- package/lib/dts/src/primitives/textInput/textInput.d.ts.map +1 -1
- package/lib/dts/src/primitives/tooltip/tooltip.d.ts.map +1 -1
- package/lib/dts/src/primitives/types.d.ts +1 -1
- package/lib/dts/src/primitives/types.d.ts.map +1 -1
- package/lib/dts/src/styles/border/types.d.ts +5 -5
- package/lib/dts/src/styles/border/types.d.ts.map +1 -1
- package/lib/dts/src/styles/box/types.d.ts +4 -4
- package/lib/dts/src/styles/box/types.d.ts.map +1 -1
- package/lib/dts/src/styles/flex/flexItemStyle.d.ts.map +1 -1
- package/lib/dts/src/styles/flex/types.d.ts +6 -6
- package/lib/dts/src/styles/flex/types.d.ts.map +1 -1
- package/lib/dts/src/styles/font/responsiveFont.d.ts +1 -1
- package/lib/dts/src/styles/font/responsiveFont.d.ts.map +1 -1
- package/lib/dts/src/styles/font/types.d.ts +3 -3
- package/lib/dts/src/styles/font/types.d.ts.map +1 -1
- package/lib/dts/src/styles/grid/types.d.ts +14 -14
- package/lib/dts/src/styles/grid/types.d.ts.map +1 -1
- package/lib/dts/src/styles/helpers.d.ts +4 -4
- package/lib/dts/src/styles/helpers.d.ts.map +1 -1
- package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts +12 -12
- package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts.map +1 -1
- package/lib/dts/src/styles/input/textInputStyle.d.ts +4 -1
- package/lib/dts/src/styles/input/textInputStyle.d.ts.map +1 -1
- package/lib/dts/src/styles/margin/types.d.ts +7 -7
- package/lib/dts/src/styles/margin/types.d.ts.map +1 -1
- package/lib/dts/src/styles/padding/types.d.ts +7 -7
- package/lib/dts/src/styles/padding/types.d.ts.map +1 -1
- package/lib/dts/src/styles/radius/types.d.ts +1 -1
- package/lib/dts/src/styles/radius/types.d.ts.map +1 -1
- package/lib/dts/src/styles/shadow/shadowStyle.d.ts.map +1 -1
- package/lib/dts/src/styles/shadow/types.d.ts +1 -1
- package/lib/dts/src/styles/shadow/types.d.ts.map +1 -1
- package/lib/dts/src/theme/lib/theme/fonts.d.ts +1 -3
- package/lib/dts/src/theme/lib/theme/fonts.d.ts.map +1 -1
- package/lib/dts/src/theme/studioTheme/fonts.d.ts.map +1 -1
- package/lib/dts/src/types/index.d.ts +2 -1
- package/lib/dts/src/types/index.d.ts.map +1 -1
- package/lib/dts/src/types/placement.d.ts +7 -0
- package/lib/dts/src/types/placement.d.ts.map +1 -0
- package/lib/dts/src/types/text.d.ts +5 -0
- package/lib/dts/src/types/text.d.ts.map +1 -0
- package/lib/dts/src/utils/elementQuery/elementQuery.d.ts.map +1 -1
- package/lib/dts/src/utils/index.d.ts +0 -1
- package/lib/dts/src/utils/index.d.ts.map +1 -1
- package/lib/dts/src/utils/virtualList/virtualList.d.ts.map +1 -1
- package/lib/sanity-ui.js +738 -627
- package/lib/sanity-ui.js.map +1 -1
- package/lib/{sanity-ui.modern.js → sanity-ui.modern.mjs} +736 -616
- package/lib/sanity-ui.modern.mjs.map +1 -0
- package/lib/sanity-ui.module.js +732 -623
- package/lib/sanity-ui.module.js.map +1 -1
- package/package.json +11 -11
- package/src/__workshop__/color/overview.tsx +9 -11
- package/src/components/autocomplete/__workshop__/async.tsx +14 -12
- package/src/components/autocomplete/__workshop__/constrainedHeight.tsx +36 -0
- package/src/components/autocomplete/autocomplete.styles.tsx +0 -1
- package/src/components/autocomplete/autocomplete.tsx +14 -7
- package/src/components/autocomplete/constants.ts +0 -5
- package/src/components/breadcrumbs/breadcrumbs.tsx +3 -2
- package/src/components/dialog/dialog.tsx +17 -9
- package/src/components/dialog/styles.ts +3 -3
- package/src/components/hotkeys/hotkeys.tsx +3 -1
- package/src/components/menu/__workshop__/constrainedInBoundary.tsx +11 -14
- package/src/components/menu/__workshop__/groups.tsx +1 -1
- package/src/components/menu/menuButton.tsx +21 -13
- package/src/components/menu/menuGroup.tsx +3 -2
- package/src/components/menu/menuItem.tsx +4 -5
- package/src/components/skeleton/skeleton.tsx +10 -1
- package/src/components/skeleton/textSkeleton.tsx +7 -7
- package/src/hooks/_internal/useUnique.ts +4 -5
- package/src/hooks/index.ts +2 -1
- package/src/hooks/useArrayProp.ts +23 -0
- package/src/hooks/useElementRect/useElementRect.ts +4 -16
- package/src/hooks/useElementSize.ts +18 -0
- package/src/index.ts +1 -0
- package/src/observers/elementSizeObserver.ts +116 -0
- package/src/observers/index.ts +2 -0
- package/src/{utils → observers}/resizeObserver.ts +1 -4
- package/src/primitives/_selectable/selectable.tsx +5 -4
- package/src/primitives/avatar/avatar.tsx +7 -5
- package/src/primitives/avatar/avatarCounter.tsx +14 -12
- package/src/primitives/avatar/avatarStack.tsx +19 -13
- package/src/primitives/avatar/styles.ts +2 -2
- package/src/primitives/badge/badge.tsx +3 -2
- package/src/primitives/box/box.tsx +27 -26
- package/src/primitives/button/button.tsx +22 -10
- package/src/primitives/card/card.tsx +13 -11
- package/src/primitives/checkbox/__workshop__/example.tsx +4 -2
- package/src/primitives/checkbox/__workshop__/props.tsx +4 -2
- package/src/primitives/checkbox/__workshop__/readOnly.tsx +4 -2
- package/src/primitives/code/__workshop__/props.tsx +1 -1
- package/src/primitives/code/code.tsx +2 -1
- package/src/primitives/container/container.tsx +10 -1
- package/src/primitives/container/styles.ts +2 -2
- package/src/primitives/container/types.ts +1 -1
- package/src/primitives/flex/flex.tsx +6 -5
- package/src/primitives/grid/__workshop__/responsive.tsx +13 -12
- package/src/primitives/grid/grid.tsx +9 -8
- package/src/primitives/heading/__workshop__/opticalAlignment.tsx +19 -7
- package/src/primitives/heading/heading.tsx +3 -2
- package/src/primitives/inline/inline.tsx +12 -6
- package/src/primitives/inline/styles.ts +2 -2
- package/src/primitives/inline/types.ts +1 -1
- package/src/primitives/kbd/kbd.tsx +2 -1
- package/src/primitives/label/label.tsx +4 -3
- package/src/primitives/popover/__workshop__/{margins.tsx → MarginsStory.tsx} +1 -1
- package/src/primitives/popover/__workshop__/{matchReferenceWidth.tsx → MatchReferenceWidthStory.tsx} +0 -0
- package/src/primitives/popover/__workshop__/{plain.tsx → PlainStory.tsx} +12 -14
- package/src/primitives/popover/__workshop__/{recursive.tsx → RecursiveStory.tsx} +4 -1
- package/src/primitives/popover/__workshop__/RightAlignedStory.tsx +60 -0
- package/src/primitives/popover/__workshop__/TestStory.tsx +79 -0
- package/src/primitives/popover/__workshop__/index.ts +10 -5
- package/src/primitives/popover/popover.tsx +5 -3
- package/src/primitives/select/select.tsx +9 -9
- package/src/primitives/select/styles.ts +10 -4
- package/src/primitives/stack/stack.tsx +2 -1
- package/src/primitives/stack/styles.ts +3 -3
- package/src/primitives/text/__workshop__/opticalAlignment.tsx +15 -5
- package/src/primitives/text/text.tsx +3 -2
- package/src/primitives/textArea/__workshop__/plain.tsx +23 -18
- package/src/primitives/textArea/textArea.tsx +17 -5
- package/src/primitives/textInput/__workshop__/clearButton.tsx +14 -8
- package/src/primitives/textInput/__workshop__/index.ts +2 -2
- package/src/primitives/textInput/__workshop__/plain.tsx +39 -32
- package/src/primitives/textInput/__workshop__/tones.tsx +97 -75
- package/src/primitives/textInput/__workshop__/typed.tsx +8 -2
- package/src/primitives/textInput/textInput.tsx +43 -12
- package/src/primitives/tooltip/__workshop__/props.tsx +5 -1
- package/src/primitives/tooltip/tooltip.tsx +3 -2
- package/src/primitives/types.ts +1 -1
- package/src/styles/border/borderStyle.ts +6 -6
- package/src/styles/border/types.ts +5 -5
- package/src/styles/box/boxStyle.ts +5 -5
- package/src/styles/box/types.ts +4 -4
- package/src/styles/flex/flexItemStyle.ts +5 -4
- package/src/styles/flex/flexStyle.ts +6 -6
- package/src/styles/flex/types.ts +6 -6
- package/src/styles/font/responsiveFont.ts +7 -27
- package/src/styles/font/textAlignStyle.ts +2 -2
- package/src/styles/font/types.ts +4 -3
- package/src/styles/grid/gridItemStyle.ts +7 -7
- package/src/styles/grid/gridStyle.ts +9 -9
- package/src/styles/grid/types.ts +14 -14
- package/src/styles/helpers.ts +9 -9
- package/src/styles/input/responsiveInputPaddingStyle.ts +24 -27
- package/src/styles/input/textInputStyle.ts +89 -79
- package/src/styles/margin/marginStyle.ts +8 -8
- package/src/styles/margin/marginsStyle.test.ts +1 -1
- package/src/styles/margin/types.ts +7 -7
- package/src/styles/padding/paddingStyle.test.ts +1 -1
- package/src/styles/padding/paddingStyle.ts +8 -8
- package/src/styles/padding/types.ts +7 -7
- package/src/styles/radius/radiusStyle.ts +2 -2
- package/src/styles/radius/types.ts +1 -1
- package/src/styles/shadow/shadowStyle.ts +2 -5
- package/src/styles/shadow/types.ts +1 -1
- package/src/theme/lib/theme/fonts.ts +1 -3
- package/src/theme/studioTheme/fonts.ts +5 -9
- package/src/types/index.ts +2 -2
- package/src/types/placement.ts +18 -0
- package/src/types/text.ts +4 -0
- package/src/utils/elementQuery/elementQuery.tsx +5 -18
- package/src/utils/index.ts +0 -1
- package/src/utils/layer/layer.tsx +1 -1
- package/src/utils/layer/layerProvider.tsx +2 -2
- package/src/utils/virtualList/virtualList.tsx +8 -7
- package/lib/dts/src/hooks/useResponsiveProp.d.ts +0 -6
- package/lib/dts/src/hooks/useResponsiveProp.d.ts.map +0 -1
- package/lib/dts/src/types/common.d.ts +0 -11
- package/lib/dts/src/types/common.d.ts.map +0 -1
- package/lib/dts/src/utils/resizeObserver.d.ts +0 -6
- package/lib/dts/src/utils/resizeObserver.d.ts.map +0 -1
- package/lib/sanity-ui.modern.js.map +0 -1
- package/src/hooks/useResponsiveProp.ts +0 -10
- package/src/primitives/popover/__workshop__/rightAligned.tsx +0 -57
- package/src/types/common.ts +0 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanity-ui.modern.mjs","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","../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/lib/media.ts","../src/hooks/useMediaIndex/useMediaIndex.ts","../src/hooks/usePrefersDark.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/layerContext.ts","../src/utils/layer/useLayer.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/helpers/animation.ts","../src/helpers/element.ts","../src/helpers/focus.ts","../src/helpers/scroll.ts","../src/utils/virtualList/virtualList.tsx","../src/primitives/popover/arrow.tsx","../src/primitives/popover/modifiers/getPopoverModifiers.ts","../src/primitives/popover/modifiers/usePopoverModifiers.ts","../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/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":["export const EMPTY_ARRAY: any[] = []\nexport const EMPTY_RECORD: Record<string, any> = {}\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 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\nexport type Primitive = 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 Primitive = Primitive>(\n val: T | T[] | undefined,\n defaultVal?: T[]\n): T[] {\n const __perf_hash__ = JSON.stringify(val ?? defaultVal)\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","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n 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 * @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 skeletonFrom = dark ? hues.gray[900].hex : hues.gray[100].hex\n\n return {\n fg: dark ? white.hex : black.hex,\n bg: dark ? black.hex : white.hex,\n border: hues.gray[dark ? 800 : 200].hex,\n focusRing: hues.blue[dark ? 500 : 500].hex,\n shadow: {\n outline: rgba(hues.gray[500].hex, 0.4),\n umbra: rgba(dark ? black.hex : hues.gray[500].hex, 0.2),\n penumbra: rgba(dark ? black.hex : hues.gray[500].hex, 0.14),\n ambient: rgba(dark ? black.hex : hues.gray[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, dark ? 0.2 : 0.4),\n umbra: rgba(dark ? black.hex : tints[500].hex, 0.2),\n penumbra: rgba(dark ? black.hex : tints[500].hex, 0.14),\n ambient: rgba(dark ? black.hex : 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, dark ? 0.2 : 0.4),\n umbra: rgba(dark ? black.hex : tints[500].hex, 0.2),\n penumbra: rgba(dark ? black.hex : tints[500].hex, 0.14),\n ambient: rgba(dark ? black.hex : 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 React, {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 React from 'react'\nimport {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","/**\n * @internal\n */\nexport interface _MediaManager {\n getCurrentIndex: () => number\n subscribe: (subscriber: (index: number) => void) => () => void\n}\n\nconst MEDIA_MANAGER_CACHE = new WeakMap<number[], _MediaManager>()\n\nfunction _getMediaQuery(media: number[], index: number) {\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 _createMediaManager(media: number[]): _MediaManager {\n const mediaLen = media.length\n const sizes: {mq: MediaQueryList; index: number}[] = []\n\n if (typeof window !== 'undefined') {\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 const getCurrentIndex = () => {\n for (const {index, mq} of sizes) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (subscriber: (index: number) => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {index, mq} of sizes) {\n const handleChange = () => {\n if (mq.matches) subscriber(index)\n }\n\n if (mq.addEventListener) {\n mq.addEventListener('change', handleChange)\n } else {\n mq.addListener(handleChange)\n }\n\n disposeFns.push(() => {\n if (mq.removeEventListener) {\n mq.removeEventListener('change', handleChange)\n } else {\n mq.removeListener(handleChange)\n }\n })\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getCurrentIndex, subscribe}\n}\n\n/**\n * @internal\n */\nexport function _getMediaManager(media: number[]): _MediaManager {\n let manager = MEDIA_MANAGER_CACHE.get(media)\n\n if (!manager) {\n manager = _createMediaManager(media)\n MEDIA_MANAGER_CACHE.set(media, manager)\n }\n\n return manager\n}\n","import {useEffect, useMemo, useState} from 'react'\nimport {useTheme} from '../../theme'\nimport {_getMediaManager} from './lib/media'\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 const manager = useMemo(() => _getMediaManager(media), [media])\n const [index, setIndex] = useState(manager.getCurrentIndex)\n\n useEffect(() => manager.subscribe(setIndex), [manager])\n\n return index\n}\n","import {useEffect, useMemo, useState} from 'react'\n\n/**\n * @public\n */\nexport function usePrefersDark(): boolean {\n const mq = useMemo(() => {\n if (typeof window === 'undefined') return undefined\n\n return window.matchMedia('(prefers-color-scheme: dark)')\n }, [])\n\n const [dark, setDark] = useState(mq?.matches || false)\n\n useEffect(() => {\n if (!mq) return undefined\n\n setDark(mq.matches)\n\n const handleChange = () => setDark(mq.matches)\n\n mq.addEventListener('change', handleChange)\n\n return () => mq.removeEventListener('change', handleChange)\n }, [mq])\n\n return dark\n}\n","import {useEffect, useLayoutEffect} from 'react'\n\n/**\n * @beta\n */\nexport const useIsomorphicEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n","import React, {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 {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 $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $border?: boolean\n $hasPrefix?: boolean\n $hasSuffix?: boolean\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, $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-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 {$border, $hasPrefix, $hasSuffix, $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-tone='${$tone}'] {\n --card-bg-color: ${color.default.enabled.bg};\n --card-fg-color: ${color.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + & {\n --input-box-shadow: ${$border\n ? focusRingBorderStyle({color: color.default.enabled.border, width: input.border.width})\n : undefined};\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 --input-box-shadow: ${$border\n ? focusRingBorderStyle({color: color.invalid.enabled.border, width: input.border.width})\n : 'none'};\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n --input-box-shadow: ${focusRingStyle({\n border: $border\n ? {color: color.default.enabled.border, width: input.border.width}\n : undefined,\n 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 --input-box-shadow: ${$border\n ? focusRingBorderStyle({\n color: color.default.disabled.border,\n width: input.border.width,\n })\n : 'none'};\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 + & {\n --input-box-shadow: ${$border\n ? focusRingBorderStyle({\n color: color.default.hovered.border,\n width: input.border.width,\n })\n : 'none'};\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 & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import React, {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`\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 {useId} from '@reach/auto-id'\nimport React, {forwardRef, useCallback, useEffect, 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 href={src} width=\"1\" height=\"1\" onError={handleImageError} />\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 React, {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 React, {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 React, {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 & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import React, {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`\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 React, {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 React, {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 React, {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 },\n '&[data-selected]': _colorVarsStyle(base, color.pressed),\n },\n },\n theme.sanity.styles?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import React, {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.ComponentType | React.ReactNode\n iconRight?: React.ComponentType | 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} = theme.sanity.color\n const border = {width: 0, color: 'var(--card-border-color)'}\n\n return css`\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 &: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 &: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 React, {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 React, {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 & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import React, {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 React, {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 React, {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 & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import React, {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`\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 React, {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 React, {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 React, {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 React, {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 React from 'react'\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryProps {\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 React.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 {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: React.Context<LayerContextValue | null> = globalScope[key]\n","import {useContext} from 'react'\nimport {isRecord} from '../../lib/isRecord'\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 // 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('useLayer(): the context value is not compatible')\n }\n\n return value\n}\n","import React, {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {useMediaIndex, useArrayProp} from '../../hooks'\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 const parent = useContext(LayerContext)\n const zOffset = useArrayProp(zOffsetProp)\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex]\n const [size, setSize] = useState(0)\n\n const registerChild = useCallback(() => {\n setSize((v) => v + 1)\n\n return () => setSize((v) => v - 1)\n }, [])\n\n const parentRegisterChild = parent?.registerChild\n\n useEffect(() => {\n if (!parentRegisterChild) return\n\n return parentRegisterChild()\n }, [parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({version: 0.0, isTopLayer: size === 0, registerChild, size, zIndex}),\n [size, registerChild, zIndex]\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n","import React, {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n}\n\nconst Root = styled.div`\n position: relative;\n`\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {children, style = EMPTY_RECORD, ...restProps} = props\n const {zIndex} = useLayer()\n\n return (\n <Root {...restProps} data-ui=\"Layer\" ref={ref} style={{...style, zIndex}}>\n {children}\n </Root>\n )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n props: LayerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n ref: React.Ref<HTMLDivElement>\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps} ref={ref}>\n {children}\n </LayerChildren>\n </LayerProvider>\n )\n})\n","import {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 window === '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 React from 'react'\nimport ReactDOM 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 ReactDOM.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 React, {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 window !== '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 React, {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`\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","/**\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","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 React, {forwardRef, useEffect, useMemo, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {_isScrollable} from '../../helpers'\nimport {useForwardedRef} from '../../hooks'\nimport {_elementSizeObserver} 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 disposeElementSizeListener = _elementSizeObserver.subscribe(\n scrollEl,\n (scrollElementSize) => {\n setScrollHeight(scrollElementSize.content.height)\n }\n )\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n disposeElementSizeListener()\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 React, {forwardRef} from 'react'\nimport styled from 'styled-components'\n\nconst Root = styled.div`\n position: absolute;\n pointer-events: none;\n width: 27px;\n height: 27px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n transform-origin: 13.5px 13.5px;\n }\n\n [data-popper-placement^='top'] > div > & {\n bottom: -27px;\n }\n\n [data-popper-placement^='right'] > div > & {\n left: -27px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-popper-placement^='left'] > div > & {\n right: -27px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-popper-placement^='bottom'] > div > & {\n top: -27px;\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=\"PopoverArrow\" {...props} ref={ref}>\n <svg\n width=\"27\"\n height=\"11\"\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 maxSizeModifier from 'popper-max-size-modifier'\nimport {Modifier} from 'react-popper'\nimport {PopoverModifiersProps} from './types'\n\n/*\n\nThe order of popper phases:\n\n- beforeRead\n- read\n- afterRead\n- beforeMain\n- main\n- afterMain\n- beforeWrite\n- write\n- afterWrite\n\n*/\n\nexport function getPopoverModifiers(props: PopoverModifiersProps): Modifier<any, any>[] {\n const {\n allowedAutoPlacements,\n arrow,\n arrowElement,\n boundaryElement,\n constrainSize,\n distance,\n fallbackPlacements,\n margins,\n matchReferenceWidth,\n open,\n preventOverflow,\n skidding,\n tether,\n tetherOffset,\n } = props\n\n // NOTE: For later viewers:\n // Prior to adding this change, the popover would get `maxWidth: 0` the 2nd time it\n // was opened, when used with `constrainSize`. I was looking for a way to \"reset\"\n // the size of the popover as measured by Popper.js, and this seems to be a workaround.\n if (!open) {\n return []\n }\n\n const detectOverflowOptions = {\n altAxis: !constrainSize,\n boundary: boundaryElement || undefined,\n padding: 8,\n tether,\n tetherOffset,\n }\n\n return [\n constrainSize && {\n ...maxSizeModifier,\n options: detectOverflowOptions,\n },\n constrainSize && {\n name: 'applyMaxSize',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['maxSize'],\n fn({state}: any) {\n const {width, height} = state.modifiersData.maxSize\n\n state.styles.popper = {\n ...state.styles.popper,\n maxWidth: `${width}px`,\n maxHeight: `${height}px`,\n }\n },\n },\n arrow && {\n name: 'arrow',\n options: {\n element: arrowElement,\n padding: 4,\n },\n },\n (constrainSize || preventOverflow) && {\n name: 'preventOverflow',\n options: detectOverflowOptions,\n },\n {\n name: 'offset',\n options: {\n offset: [skidding, distance],\n },\n },\n margins && {\n name: 'margins',\n enabled: true,\n phase: 'beforeRead',\n fn: ({state}: any) => {\n const {rects} = state\n\n if (rects.reference) {\n rects.reference.x += margins[3]\n rects.reference.y += margins[1]\n rects.reference.width -= margins[1] + margins[3]\n rects.reference.height -= margins[0] + margins[2]\n }\n },\n },\n {\n name: 'flip',\n options: {\n allowedAutoPlacements,\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: 8,\n },\n },\n matchReferenceWidth && {\n name: 'matchWidth',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn({state}: any) {\n const {width} = state.rects.reference\n\n state.styles.popper.width = `${width}px`\n },\n effect: ({state}: any) => {\n const refElement = state.elements.reference\n\n if (refElement instanceof HTMLElement) {\n state.elements.popper.style.width = `${\n refElement.offsetWidth - (margins ? margins[1] + margins[3] : 0)\n }px`\n }\n },\n },\n ].filter(Boolean) as Modifier<any, any>[]\n}\n","import {useMemo} from 'react'\nimport {Modifier} from 'react-popper'\n\nimport {getPopoverModifiers} from './getPopoverModifiers'\nimport {PopoverModifiersProps} from './types'\n\nexport function usePopoverModifiers(props: PopoverModifiersProps): Modifier<any, any>[] {\n const {\n allowedAutoPlacements,\n arrow,\n arrowElement,\n boundaryElement,\n constrainSize,\n distance,\n fallbackPlacements,\n margins,\n matchReferenceWidth,\n open,\n preventOverflow,\n skidding,\n tether,\n tetherOffset,\n } = props\n\n return useMemo(() => {\n return getPopoverModifiers({\n allowedAutoPlacements,\n arrow,\n arrowElement,\n boundaryElement,\n constrainSize,\n distance,\n fallbackPlacements,\n margins,\n matchReferenceWidth,\n open,\n preventOverflow,\n skidding,\n tether,\n tetherOffset,\n })\n }, [\n allowedAutoPlacements,\n arrow,\n arrowElement,\n boundaryElement,\n constrainSize,\n distance,\n fallbackPlacements,\n margins,\n matchReferenceWidth,\n open,\n preventOverflow,\n skidding,\n tether,\n tetherOffset,\n ])\n}\n","import React, {cloneElement, forwardRef, useCallback, useEffect, useMemo, useState} from 'react'\nimport {usePopper} from 'react-popper'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useForwardedRef} from '../../hooks'\nimport {ThemeColorSchemeKey, useTheme} from '../../theme'\nimport {CardTone, Placement, PopoverMargins} from '../../types'\nimport {Layer, LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport {Card} from '../card'\nimport {ResponsiveWidthStyleProps} from '../container'\nimport {responsiveContainerWidthStyle} from '../container/styles'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps, ResponsiveWidthProps} from '../types'\nimport {PopoverArrow} from './arrow'\nimport {usePopoverModifiers} from './modifiers'\n\n/**\n * @public\n */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>,\n ResponsiveRadiusProps,\n ResponsiveShadowProps,\n ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_margins?: PopoverMargins\n allowedAutoPlacements?: Placement[]\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n open?: boolean\n padding?: number | number[]\n placement?: Placement\n portal?: boolean | string\n preventOverflow?: boolean\n referenceElement?: HTMLElement | null\n matchReferenceWidth?: boolean\n scheme?: ThemeColorSchemeKey\n tether?: boolean\n tetherOffset?: number | ((...args: any[]) => number)\n tone?: CardTone\n}\n\nconst Root = styled(Layer)<{$preventOverflow?: boolean}>(\n ({$preventOverflow}) => css`\n pointer-events: none;\n display: flex;\n flex-direction: column;\n max-width: calc(100% - 16px);\n\n & > * {\n min-height: 0;\n }\n\n /* Hide the popover when the reference element is out of bounds */\n ${$preventOverflow &&\n css`\n &[data-popper-reference-hidden='true'] {\n display: none;\n }\n `}\n `\n)\n\nconst PopoverCard = styled(Card)<\n ResponsiveWidthStyleProps & {\n $constrainSize?: boolean\n $preventOverflow?: boolean\n $width: (number | 'auto')[]\n }\n>(\n ({$constrainSize}) => css`\n flex: 1;\n max-height: ${$constrainSize && '100%'};\n pointer-events: all;\n\n && {\n display: flex;\n }\n\n flex-direction: column;\n\n & > * {\n min-height: 0;\n }\n\n ${responsiveContainerWidthStyle}\n `\n)\n\n/**\n * @public\n */\nexport const Popover = forwardRef(function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n const boundaryElementContext = useBoundaryElement()\n const theme = useTheme()\n const {\n __unstable_margins: margins,\n allowedAutoPlacements,\n arrow = true,\n boundaryElement: boundaryElementProp = boundaryElementContext.element,\n children: child,\n content,\n constrainSize,\n disabled,\n fallbackPlacements,\n open = false,\n padding,\n placement = 'bottom',\n portal: portalProp = false,\n preventOverflow,\n radius = 3,\n referenceElement: referenceElementProp,\n matchReferenceWidth,\n shadow = 3,\n scheme,\n style = EMPTY_RECORD,\n tether,\n tetherOffset,\n tone = 'inherit',\n width: widthProp = 0,\n zOffset = theme.sanity.layer?.popover.zOffset,\n ...restProps\n } = props\n const forwardedRef = useForwardedRef(ref)\n const portal = usePortal()\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const [popperElement, setPopperElement] = useState<HTMLElement | null>(null)\n const [arrowElement, setArrowElement] = useState<HTMLElement | null>(null)\n const popperReferenceElement = referenceElementProp || referenceElement\n const width = useArrayProp(widthProp)\n\n const modifiers = usePopoverModifiers({\n allowedAutoPlacements,\n arrow,\n arrowElement,\n boundaryElement: boundaryElementProp || portal.boundaryElement,\n constrainSize,\n distance: arrow ? 4 : 0,\n fallbackPlacements,\n margins,\n matchReferenceWidth,\n open,\n preventOverflow,\n skidding: 0,\n tether,\n tetherOffset,\n })\n\n const popper = usePopper(popperReferenceElement, popperElement, {\n placement,\n modifiers,\n })\n\n const {attributes, forceUpdate, styles} = popper\n\n const setRef = useCallback(\n (el: HTMLElement | null) => {\n const childRef = (child as any).ref\n\n setReferenceElement(el)\n\n if (typeof childRef === 'function') {\n childRef(el)\n } else if (childRef) {\n childRef.current = el\n }\n },\n [child]\n )\n\n const setRootRef = useCallback(\n (el: HTMLDivElement | null) => {\n setPopperElement(el)\n forwardedRef.current = el\n },\n [forwardedRef]\n )\n\n const popoverStyle = useMemo(() => ({...style, ...styles.popper}), [style, styles])\n\n useEffect(() => {\n if (forceUpdate) {\n try {\n forceUpdate()\n } catch (_) {\n // ignore caught error\n }\n }\n }, [content, forceUpdate, open, popperReferenceElement])\n\n if (disabled) {\n return child || <></>\n }\n\n const node = (\n <Root\n data-ui=\"Popover\"\n {...restProps}\n $preventOverflow={preventOverflow}\n ref={setRootRef}\n style={popoverStyle}\n zOffset={zOffset}\n {...attributes.popper}\n >\n <PopoverCard\n $constrainSize={constrainSize}\n $width={width}\n data-ui=\"PopoverCard\"\n padding={padding}\n radius={radius}\n scheme={scheme}\n shadow={shadow}\n tone={tone}\n >\n {arrow && <PopoverArrow ref={setArrowElement} style={styles.arrow} />}\n {content}\n </PopoverCard>\n </Root>\n )\n\n return (\n <>\n {child && !referenceElementProp ? cloneElement(child, {ref: setRef}) : child || <></>}\n\n {open && (\n <>\n {portalProp && (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {node}\n </Portal>\n )}\n\n {!portalProp && node}\n </>\n )}\n </>\n )\n})\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 React, {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 React, {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 React, {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 React, {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 React, {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-tone={rootTheme.tone}\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $space={useArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $border={border}\n $radius={useArrayProp(radius)}\n $tone={rootTheme.tone}\n data-tone={rootTheme.tone}\n />\n </InputRoot>\n </Root>\n )\n})\n","import {CloseIcon} from '@sanity/icons'\nimport React, {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\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.ComponentType | React.ReactNode\n iconRight?: React.ComponentType | 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 $border={border}\n $hasPrefix={$hasPrefix}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $tone={rootTheme.tone}\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.tone,\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 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-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\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 React, {forwardRef} from 'react'\nimport styled from 'styled-components'\n\nconst Root = styled.div`\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-popper-placement^='top'] > div > & {\n bottom: -15px;\n }\n\n [data-popper-placement^='right'] > div > & {\n left: -15px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-popper-placement^='left'] > div > & {\n right: -15px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-popper-placement^='bottom'] > div > & {\n top: -15px;\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 {...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 React, {cloneElement, forwardRef, useCallback, useEffect, useState} from 'react'\nimport {usePopper} from 'react-popper'\nimport styled from 'styled-components'\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 allowedAutoPlacements?: Placement[]\n boundaryElement?: HTMLElement | null\n children?: React.ReactElement\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n placement?: Placement\n portal?: boolean | string\n scheme?: ThemeColorSchemeKey\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 allowedAutoPlacements,\n boundaryElement = boundaryElementContext?.element,\n children,\n content,\n disabled,\n fallbackPlacements: fallbackPlacementsProp,\n placement = 'bottom',\n portal,\n scheme,\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 [popperElement, setPopperElement] = useState<HTMLDivElement | null>(null)\n const [arrowElement, setArrowElement] = useState<HTMLDivElement | null>(null)\n const popper = usePopper(referenceElement, popperElement, {\n placement,\n modifiers: [\n {\n name: 'arrow',\n options: {\n element: arrowElement,\n padding: 4,\n },\n },\n {\n name: 'preventOverflow',\n options: {\n altAxis: true,\n boundary: boundaryElement || undefined,\n padding: 4,\n },\n },\n {\n name: 'offset',\n options: {offset: [0, 3]},\n },\n {\n name: 'flip',\n options: {\n allowedAutoPlacements,\n fallbackPlacements,\n },\n },\n ],\n })\n const {forceUpdate} = popper\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 useEffect(() => {\n if (forceUpdate) {\n try {\n forceUpdate()\n } catch (_) {\n // ignore caught error\n }\n }\n }, [forceUpdate, content])\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 const setRef = (el: HTMLDivElement | null) => {\n setPopperElement(el)\n forwardedRef.current = el\n }\n\n if (!children) return <></>\n\n if (disabled) return children\n\n const referenceProps = {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n ref: setReferenceElement,\n }\n\n const referenceNode = cloneElement(children, referenceProps)\n\n const popperNode = (\n <Root\n data-ui=\"Tooltip\"\n {...restProps}\n {...popper.attributes.popper}\n ref={setRef}\n style={popper.styles.popper}\n zOffset={zOffset}\n >\n <Card radius={2} scheme={scheme} shadow={3}>\n {content}\n <TooltipArrow ref={setArrowElement} style={popper.styles.arrow} />\n </Card>\n </Root>\n )\n\n return (\n <>\n {referenceNode}\n\n {isOpen && (\n <>\n {portal && (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n {popperNode}\n </Portal>\n )}\n\n {!portal && popperNode}\n </>\n )}\n </>\n )\n})\n","import {SpinnerIcon} from '@sanity/icons'\nimport styled, {keyframes} from 'styled-components'\nimport {Box, Popover} 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\n/**\n * @internal\n */\nexport const ResultsPopover = styled(Popover)`\n & > div {\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n }\n\n &[data-popper-reference-hidden='true'] {\n display: none;\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 React, {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 // prevent unnecessary re-render\n if (state.listFocused === msg.listFocused) return state\n\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, PopoverMargins} 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_MARGINS: PopoverMargins = [0, 1, 1, 1]\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[] = ['top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport React, {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useForwardedRef, useArrayProp} from '../../hooks'\nimport {Box, BoxProps, Button, Card, PopoverProps, Stack, Text, TextInput} from '../../primitives'\nimport {AnimatedSpinnerIcon, ListBox, ResultsPopover, 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_MARGINS,\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?: React.ComponentType | React.ReactNode\n id: string\n /**\n * @beta\n */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /**\n * @beta\n */\n openButton?: boolean | AutocompleteOpenButtonProps\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: React.ReactNode\n radius?: number | number[]\n /**\n * @beta\n */\n relatedElements?: HTMLElement[]\n renderOption?: (option: Option) => React.ReactElement\n /**\n * @beta\n */\n renderPopover?: (\n props: {\n content: React.ReactElement | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: React.Ref<HTMLDivElement>\n ) => React.ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: React.ReactNode\n value?: string\n}\n\nconst defaultRenderValue = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst defaultFilterOption = (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 React.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: React.Ref<HTMLInputElement>\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = {},\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = {},\n prefix,\n radius = 3,\n readOnly,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = defaultRenderValue,\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 const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : defaultFilterOption\n const [rootElement, setRootElement] = useState<HTMLDivElement | null>(null)\n const [resultsPopoverElement, setResultsPopoverElement] = useState<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const forwardedRef = useForwardedRef(ref)\n const popoverMouseWithinRef = useRef(false)\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: React.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 rootElement ? [rootElement] : [],\n resultsPopoverElement ? [resultsPopoverElement] : []\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, resultsPopoverElement, rootElement]\n )\n\n const handleRootFocus = useCallback((event: React.FocusEvent) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n\n focusedElementRef.current = focusedElement\n\n const nextListFocused = Boolean(\n listBoxElement && focusedElement && listBoxElement.contains(focusedElement)\n )\n\n dispatch({type: 'root/setListFocused', listFocused: nextListFocused})\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: React.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: React.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: React.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 !== 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 !== value) {\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp, value])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused) {\n if (valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\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(\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 openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton]\n )\n\n const handleOpenClick = useCallback(\n (event: React.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: React.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 setResultsPopoverElement\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <ResultsPopover\n __unstable_margins={AUTOCOMPLETE_POPOVER_MARGINS}\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 placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={setResultsPopoverElement}\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={setRootElement}\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 React.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?: React.Ref<HTMLInputElement>\n }\n) => React.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 React, {\n Children,\n forwardRef,\n Fragment,\n isValidElement,\n useCallback,\n useMemo,\n useState,\n} 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.penumbra,\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 React, {forwardRef, useCallback, useEffect, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {focusFirstDescendant, focusLastDescendant} 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, Portal, useLayer} 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 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 radius: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\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`\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 radius: radiusProp,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\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 interactive element in the contents\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 if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [isTopLayer, onClose]\n )\n )\n\n useClickOutside(\n useCallback(() => {\n if (!isTopLayer || !onClickOutside) return\n\n onClickOutside()\n }, [isTopLayer, onClickOutside]),\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 onClickOutside,\n onClose,\n padding: paddingProp = 4,\n portal,\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 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\n const handleFocus = useCallback((event: React.FocusEvent<HTMLDivElement>) => {\n const target = event.target\n const cardElement = cardRef.current\n\n if (!cardElement) {\n return\n }\n\n if (target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n }, [])\n\n const labelId = `${id}_label`\n\n return (\n <Portal __unstable_name={portal}>\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 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 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 React, {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 React, {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) => {\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 rootElement?.focus()\n setActiveIndex(-1)\n }, [rootElement, setActiveIndex])\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 React, {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 React, {\n cloneElement,\n forwardRef,\n useCallback,\n useMemo,\n useState,\n useEffect,\n useRef,\n} 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 /**\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 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 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: PopoverProps = useMemo(() => {\n return {\n boundaryElement: deprecated_boundaryElement,\n placement: deprecated_placement,\n portal: deprecated_portal,\n radius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }\n }, [\n deprecated_boundaryElement,\n deprecated_preventOverflow,\n deprecated_placement,\n popover,\n deprecated_popoverRadius,\n deprecated_portal,\n deprecated_popoverScheme,\n ])\n\n return (\n <Popover {...popoverProps} content={menu} data-ui=\"MenuButton__popover\" 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 &: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 &: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 React, {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.ComponentType | 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 React, {\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.ComponentType | React.ReactNode\n iconRight?: React.ComponentType | 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 React, {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 React, {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 React, {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.ComponentType | 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 React, {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 React, {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 React from 'react'\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 {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 React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'\nimport styled from 'styled-components'\nimport {Box} from '../../primitives'\nimport {Layer} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue, ToastParams} from './types'\n\ninterface ToastState {\n toasts: {\n dismiss: () => void\n id: string\n params: ToastParams\n }[]\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>({toasts: []})\n const toastsRef = useRef<{[key: string]: {timeoutId: NodeJS.Timeout}}>({})\n\n const push = useCallback((params: ToastParams) => {\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) => {\n const idx = prevState.toasts.findIndex((t) => t.id === id)\n\n if (idx > -1) {\n const toasts = prevState.toasts.slice(0)\n\n toasts.splice(idx, 1)\n\n return {...prevState, 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) => {\n return {\n ...prevState,\n toasts: prevState.toasts\n .filter((t) => t.id !== id)\n .concat([\n {\n dismiss,\n id,\n params: {...params, duration},\n },\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\n return (\n <ToastContext.Provider value={value}>\n {children}\n\n <Root data-ui=\"ToastProvider\" zOffset={zOffset}>\n <ToastContainer>\n <Box padding={padding} paddingX={paddingX} paddingY={paddingY}>\n <AnimatePresence initial={false}>\n {state.toasts.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 </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 React, {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, ...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 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 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 React, {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 {useId} from '@reach/auto-id'\nimport {ToggleArrowRightIcon} from '@sanity/icons'\nimport React, {createElement, memo, useCallback, useEffect, useMemo, useRef} from 'react'\nimport styled from 'styled-components'\nimport {Box, 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.ComponentType\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 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(idProp) || idProp\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__box' ||\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 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","_fillCSSObject","keys","value","reduce","style","key","rem","pixelValue","_responsive","media","values","callback","statements","map","statement","mediaIndex","_getArrayProp","val","defaultVal","undefined","Array","isArray","_getResponsiveSpace","theme","props","spaceIndexes","Error","length","sanity","spaceIndex","space","responsiveFont","fontKey","$size","$weight","fonts","family","sizes","weights","fontWeight","regular","defaultSize","base","position","fontFamily","padding","margin","content","display","height","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__","JSON","stringify","useMemo","_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","_ResizeObserver","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","resizeObserver","entry","_contentRect","contentRect","border","width","borderBoxSize","inlineSize","blockSize","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","idx","indexOf","splice","useElementSize","setSize","useElementRect","elementSize","useGlobalKeyDown","onKeyDown","multiplyChannel","b","s","multiply","r","round","clamp","g","num","max","min","screenChannel","screen","hexToRgb","hex","hexR","slice","hexG","hexB","parseInt","rgbToHex","toString","rgbToHsl","cmin","cmax","delta","h","l","abs","toFixed","hslToRgb","hsl","c","x","m","HEX_CHARS","HSL_RE","isHexChars","str","isHex","parseHsl","res","exec","parseFloat","parseColor","color","startsWith","rgba","a","rgb","createButtonTones","opts","dark","solid","muted","mode","default","button","primary","positive","caution","critical","createButtonModes","ghost","bleed","createCardStates","name","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","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","tone","bg2","accent","link","code","input","placeholder","selectable","spot","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","skeletonFrom","tints","mix","mix2","defaultTints","isNeutral","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","global","globalScope","Symbol","for","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","themeProp","rootColor","layer","rootLayer","restTheme","colorScheme","version","React","Provider","StyledThemeProvider","isRecord","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","MEDIA_MANAGER_CACHE","_getMediaQuery","index","_createMediaManager","mediaLen","mediaQuery","mq","matchMedia","getCurrentIndex","matches","disposeFns","handleChange","addListener","removeListener","disposeFn","_getMediaManager","manager","useMediaIndex","setIndex","usePrefersDark","setDark","useIsomorphicEffect","useLayoutEffect","useForwardedRef","ref","innerRef","useCustomValidity","customValidity","setCustomValidity","BORDER_VALUE","responsiveBorderStyle","borderTop","borderRight","borderBottom","borderLeft","$border","$borderTop","$borderRight","$borderBottom","$borderLeft","BASE_STYLE","listStyle","BOX_SIZING","BOX_HEIGHT","stretch","fill","boxStyle","responsiveBoxStyle","responsiveBoxSizingStyle","responsiveBoxHeightStyle","responsiveBoxOverflowStyle","responsiveBoxDisplayStyle","$display","$sizing","sizing","boxSizing","$height","$overflow","overflow","responsiveFlexStyle","responsiveFlexAlignStyle","responsiveFlexGapStyle","responsiveFlexWrapStyle","responsiveFlexJustifyStyle","responsiveFlexDirectionStyle","align","alignItems","$gap","gap","$wrap","wrap","flexWrap","$justify","justify","justifyContent","$direction","direction","flexDirection","minWidth","minHeight","flexItemStyle","responsiveFlexItemStyle","$flex","flex","focusRingBorderStyle","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","i","_","emSize","p","styles","paddingTop","paddingRight","paddingBottom","paddingLeft","responsiveInputPaddingIconRightStyle","ROOT_STYLE","css","textInputRootStyle","textInputBaseStyle","$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","left","right","top","bottom","$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","requestAnimationFrame","cancelAnimationFrame","handleImageError","useCallback","initialsSize","viewBox","d","patternContentUnits","href","onError","cx","cy","rx","ry","vectorEffect","_responsiveAvatarCounterSizeStyle","_avatarCounterBaseStyle","AvatarCounter","count","counterSize","childrenToElementArray","childrenArray","node","isElement","isFragment","BASE_STYLES","avatarStackStyle","responsiveAvatarStackSizeStyle","marginLeft","AvatarStack","maxLength","maxLengthProp","child","visibleCount","extraCount","visibleChildren","childIndex","String","cloneElement","Box","marginX","marginY","marginRight","paddingX","paddingY","labelBaseStyle","Label","badgeStyle","$mode","palette","cursor","Badge","Flex","forwardedAs","rotate","keyframes","Spinner","SpinnerIcon","_colorVarsStyle","checkered","buttonBaseStyles","buttonTheme","buttonColorStyles","LoadingBox","Button","icon","iconRight","justifyProp","loading","paddingProp","paddingXProp","paddingYProp","paddingTopProp","paddingBottomProp","paddingLeftProp","paddingRightProp","radiusProp","spaceProp","type","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","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","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","message","LayerContext","useLayer","LayerProvider","zOffsetProp","parent","maxMediaIndex","registerChild","v","parentRegisterChild","isTopLayer","LayerChildren","Layer","elementKey","defaultContextValue","document","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","ReactDOM","createPortal","useUnique","valueRef","_isEqual","objA","objB","keysA","Object","keysB","every","__BROWSER__","PortalProvider","__unstable_elements","elementsProp","SrOnly","_raf","fn","frameId","_raf2","innerDispose","outerDispose","_isEnterToClickElement","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","_hasFocus","activeElement","isFocusable","tabIndex","getAttribute","rel","attemptFocus","focus","focusFirstDescendant","childNodes","focusLastDescendant","_isScrollable","Element","getComputedStyle","overflowX","overflowY","ItemWrapper","VirtualList","getItemKey","items","onChange","renderItem","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","offsetHeight","_scrollEl","parentNode","scrollEl","handleScroll","passive","disposeElementSizeListener","scrollElementSize","scrollY","handleResize","innerHeight","fromIndex","toIndex","ceil","item","_itemIndex","itemIndex","wrapperStyle","BorderPath","path","ShapePath","PopoverArrow","xmlns","getPopoverModifiers","allowedAutoPlacements","arrowElement","constrainSize","fallbackPlacements","margins","matchReferenceWidth","open","preventOverflow","skidding","tether","tetherOffset","detectOverflowOptions","altAxis","boundary","maxSizeModifier","options","phase","requires","modifiersData","maxSize","popper","maxHeight","rects","reference","y","effect","refElement","offsetWidth","usePopoverModifiers","$preventOverflow","PopoverCard","$constrainSize","Popover","boundaryElementContext","__unstable_margins","boundaryElementProp","placement","portalProp","referenceElement","referenceElementProp","widthProp","setReferenceElement","popperElement","setPopperElement","setArrowElement","popperReferenceElement","modifiers","usePopper","attributes","forceUpdate","childRef","setRootRef","popoverStyle","radioBaseStyle","inputElementStyle","dist","Radio","rootStyle","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","event","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","clearButtonPadding","clearButtonProps","clearButtonNode","CloseIcon","onClick","onMouseDown","suffixNode","Border","Shape","TooltipArrow","Tooltip","fallbackPlacementsProp","isOpen","setIsOpen","handleBlur","handleFocus","handleMouseEnter","handleMouseLeave","handleWindowMouseMove","isHoveringReference","referenceProps","onBlur","onFocus","onMouseEnter","onMouseLeave","referenceNode","popperNode","ListBox","ResultsPopover","AnimatedSpinnerIcon","AutocompleteOption","onSelect","handleClick","setTimeout","handleKeyDown","currentTarget","role","autocompleteReducer","msg","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_MARGINS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","defaultRenderValue","option","defaultFilterOption","toLowerCase","InnerAutocomplete","filterOption","filterOptionProp","listBox","onQueryChange","openButton","optionsProp","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","valueProp","dispatch","useReducer","defaultRenderOption","rootElement","setRootElement","resultsPopoverElement","setResultsPopoverElement","inputElementRef","listBoxElementRef","focusedElementRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","concat","focusInside","e","handleRootFocus","listBoxElement","focusedElement","nextListFocused","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","hidden","inputElement","Autocomplete","ol","ExpandButton","Breadcrumbs","separator","spaceRaw","setOpen","expandElement","setExpandElement","popoverElement","setPopoverElement","collapse","expand","rawItems","Children","toArray","beforeLength","afterLength","Fragment","dialogStyle","background","responsiveDialogPositionStyle","$position","DialogContext","useDialog","DialogContainer","DialogCardRoot","DialogLayout","DialogHeader","DialogContent","DialogFooter","DialogCard","__unstable_autoFocus","autoFocus","__unstable_hideCloseButton","hideCloseButton","contentRef","footer","header","onClickOutside","onClose","shadowProp","localContentRef","labelId","showCloseButton","showHeader","setContentRef","Dialog","cardRadius","cardRadiusProp","cardShadow","positionProp","preDivRef","postDivRef","cardRef","cardElement","DialogProvider","contextValue","Key","Hotkeys","MenuContext","_isFocusable","_getFocusableElements","_getDOMPath","parentElement","unshift","EMPTY_PATH","_sortElements","_sort","_a","_b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","focusableElements","currentIndex","focusableLen","focusedIndex","handleItemMouseEnter","handleItemMouseLeave","rafId","_activeIndex","Menu","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","handleRefChange","onItemMouseEnter","onItemMouseLeave","MenuButton","__unstable_disableRestoreFocusOnClose","disableRestoreFocusOnClose","deprecated_boundaryElement","buttonProp","menu","menuProp","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","$visible","$animated","Skeleton","animated","delay","visible","setVisible","timeout","clearTimeout","$style","TextSkeleton","LabelSkeleton","HeadingSkeleton","CodeSkeleton","Tab","elementRef","focusedRef","_isReactElement","TabList","setFocusedIndex","tabs","handleTabFocus","numTabs","tabIdx","prevIndex","TabPanel","STATUS_CARD_TONE","warning","success","ROLES","TextBox","Toast","closable","description","cardTone","ToastContext","ToastContainer","toastId","ToastProvider","setState","toasts","toastsRef","params","duration","dismiss","timeoutId","prevState","findIndex","t","AnimatePresence","initial","motion","animate","scale","exit","layout","damping","stiffness","useToast","_findPrevItemElement","itemElements","itemKey","segments","split","pop","j","k","_findNextItemElement","_focusItemElement","TreeContext","Tree","memo","setFocusedElement","setItemElements","stateRef","registerItem","newState","setExpanded","itemState","level","nextEl","prevEl","itemPath","parentKey","parentState","focusedKey","_itemElements","querySelectorAll","displayName","treeItemRootStyle","treeItemRootColorStyle","treeItemBoxStyle","$level","useTree","tree","TreeGroup","li","TreeItemBox","ToggleArrowText","TreeItem","expandedProp","idProp","rootRef","treeitemRef","closest","click","visibility","pointerEvents","ToggleArrowRightIcon"],"mappings":"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"}
|