@sanity/ui 0.37.21 → 0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/menuGroup.d.ts.map +1 -1
- package/lib/dts/src/components/skeleton/skeleton.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.map +1 -1
- 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.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 +7 -2
- 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/studioTheme/color.d.ts.map +1 -1
- 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 +734 -573
- package/lib/sanity-ui.js.map +1 -1
- package/lib/sanity-ui.modern.js +763 -592
- package/lib/sanity-ui.modern.js.map +1 -1
- package/lib/sanity-ui.module.js +728 -569
- 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.tsx +2 -2
- package/src/components/breadcrumbs/breadcrumbs.tsx +3 -2
- package/src/components/dialog/dialog.tsx +17 -9
- package/src/components/dialog/styles.ts +4 -4
- 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/menuGroup.tsx +3 -2
- package/src/components/menu/menuItem.tsx +3 -3
- package/src/components/skeleton/skeleton.tsx +10 -1
- package/src/components/skeleton/textSkeleton.tsx +7 -7
- 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 -3
- package/src/primitives/_selectable/selectable.tsx +5 -4
- package/src/primitives/avatar/avatar.tsx +7 -5
- package/src/primitives/avatar/avatarCounter.tsx +12 -11
- package/src/primitives/avatar/avatarStack.tsx +15 -10
- package/src/primitives/avatar/styles.ts +2 -2
- package/src/primitives/badge/badge.tsx +3 -2
- package/src/primitives/box/box.tsx +26 -25
- package/src/primitives/button/button.tsx +22 -10
- package/src/primitives/card/card.tsx +8 -7
- 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 +29 -10
- 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 +21 -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 +234 -95
- package/src/primitives/textInput/__workshop__/typed.tsx +8 -2
- package/src/primitives/textInput/textInput.tsx +47 -12
- package/src/primitives/tooltip/__workshop__/props.tsx +7 -2
- package/src/primitives/tooltip/tooltip.tsx +19 -9
- 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 +2 -4
- 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 +92 -80
- 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/studioTheme/color.ts +15 -14
- package/src/theme/studioTheme/fonts.ts +4 -4
- package/src/utils/elementQuery/elementQuery.tsx +5 -18
- package/src/utils/index.ts +0 -1
- package/src/utils/layer/layerProvider.tsx +2 -2
- package/src/utils/virtualList/virtualList.tsx +3 -1
- 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/utils/resizeObserver.d.ts +0 -6
- package/lib/dts/src/utils/resizeObserver.d.ts.map +0 -1
- package/src/hooks/useResponsiveProp.ts +0 -10
- package/src/primitives/popover/__workshop__/rightAligned.tsx +0 -57
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanity-ui.module.js","sources":["../src/constants.ts","../src/hooks/useClickOutside.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/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/useResponsiveProp.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/resizeObserver.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 {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 {useEffect, useState} from 'react'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const [rect, setRect] = useState<DOMRectReadOnly | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n const ro = new ResizeObserver((entries) => {\n setRect(entries[0].contentRect)\n })\n\n ro.observe(element)\n\n return () => ro.disconnect()\n }, [element])\n\n return rect\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: 9,\n descenderHeight: 7,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 39,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 10,\n descenderHeight: 8,\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 {EMPTY_ARRAY} from '../constants'\nimport {Theme} from '../theme'\n\n/**\n * @internal\n */\nexport function fillCSSObject(propKeys: string[], value: unknown): CSSObject {\n return propKeys.reduce((obj: CSSObject, propKey) => {\n obj[propKey] = value as any\n\n return obj\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 getResponsiveProp<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 {getResponsiveProp, 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, getResponsiveProp($size), (sizeIndex) =>\n fontSize(sizes[sizeIndex] || defaultSize)\n )\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 {getResponsiveProp, 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, getResponsiveProp(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 {getResponsiveProp} from '../styles'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useResponsiveProp<T = number>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n return useMemo(() => getResponsiveProp(val, defaultVal), [defaultVal, val])\n}\n","import {CSSObject} from 'styled-components'\nimport {getResponsiveProp, 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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(props.$borderLeft), (value) =>\n value ? {'&&': {borderLeft: BORDER_VALUE}} : {'&&': {borderLeft: 0}}\n )\n}\n","import {Property} from 'csstype'\nimport {CSSObject} from 'styled-components'\nimport {getResponsiveProp, 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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(props.$overflow), (overflow) => ({\n overflow,\n }))\n}\n","import {CSSObject} from 'styled-components'\nimport {getResponsiveProp, 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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(props.$direction), (direction) => {\n return {flexDirection: direction}\n })\n}\n","import {CSSObject} from 'styled-components'\nimport {getResponsiveProp, 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 return responsive(media, getResponsiveProp(props.$flex), (flex) => {\n return {flex}\n })\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 {getResponsiveProp, 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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(props.$gapY), (gapY) => ({\n rowGap: gapY ? rem(space[gapY]) : undefined,\n }))\n}\n","import {CSSObject} from 'styled-components'\nimport {getResponsiveProp, 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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(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, getResponsiveProp(props.$columnEnd), (columnEnd) => ({\n gridColumnEnd: columnEnd,\n }))\n}\n","import {CSSObject} from 'styled-components'\nimport {getResponsiveProp, rem, responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize?: number | number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding?: number | number[]\n $space?: number | number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps\n): CSSObject[] {\n const {$iconLeft, $iconRight, theme} = props\n const {fonts, media, space: spaceScale} = theme.sanity\n const padding = getResponsiveProp(props.$padding, [0])\n const space = getResponsiveProp(props.$space, [0])\n const size = getResponsiveProp(props.$fontSize, [0])\n const len = Math.max(padding.length, space.length, size.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _size: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _padding[i] = padding[i] === undefined ? _padding[i - 1] : padding[i]\n _space[i] = space[i] === undefined ? _space[i - 1] : space[i]\n _size[i] = size[i] === undefined ? _size[i - 1] : size[i]\n }\n\n return responsive(media, _padding, (_, i) => {\n const fontSize = fonts.text.sizes[_size[i]] || fonts.text.sizes[2]\n const emSize = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n const p = spaceScale[_padding[i]]\n const s = spaceScale[_space[i]]\n\n const styles = {\n paddingTop: rem(p - fontSize.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - fontSize.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 padding?: number | number[]\n size?: number | number[]\n space?: number | number[]\n } & ThemeProps\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true, $iconRight: true})\n}\n\nexport function responsiveInputPaddingIconLeftStyle(\n props: {\n padding?: number | number[]\n size?: number | number[]\n space?: number | number[]\n } & ThemeProps\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconLeft: true})\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n padding?: number | number[]\n size?: number | number[]\n space?: number | 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 {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {getResponsiveProp, rem, responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize?: number | number[]\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $border?: boolean\n $hasPrefix?: boolean\n $hasSuffix?: boolean\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, $weight} = props\n const font = theme.sanity.fonts.text\n const color = theme.sanity.color.input\n\n return css`\n --input-fg-color: ${color.default.enabled.fg};\n --input-placeholder-color: ${color.default.enabled.placeholder};\n\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 color: var(--input-fg-color);\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 &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\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\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {theme} = props\n const {fonts, media} = theme.sanity\n\n return responsive(media, getResponsiveProp(props.$fontSize, [2]), (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, theme} = props\n const {focusRing, input} = theme.sanity\n const color = theme.sanity.color.input\n\n return css`\n --card-bg-color: ${color.default.enabled.bg};\n --card-fg-color: ${color.default.enabled.fg};\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 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 /* 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};\n --card-fg-color: ${color.default.disabled.fg};\n --input-box-shadow: ${$border\n ? focusRingBorderStyle({\n color: color.default.disabled.border,\n width: input.border.width,\n })\n : 'none'};\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 /* readOnly */\n *:read-only + && {\n --card-bg-color: ${color.default.readOnly.bg};\n --card-fg-color: ${color.default.readOnly.fg};\n }\n `\n}\n","import {CSSObject} from 'styled-components'\nimport {getResponsiveProp, 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'], getResponsiveProp(props.$margin)),\n getResponsiveSpace(theme, ['marginLeft', 'marginRight'], getResponsiveProp(props.$marginX)),\n getResponsiveSpace(theme, ['marginTop', 'marginBottom'], getResponsiveProp(props.$marginY)),\n getResponsiveSpace(theme, ['marginTop'], getResponsiveProp(props.$marginTop)),\n getResponsiveSpace(theme, ['marginRight'], getResponsiveProp(props.$marginRight)),\n getResponsiveSpace(theme, ['marginBottom'], getResponsiveProp(props.$marginBottom)),\n getResponsiveSpace(theme, ['marginLeft'], getResponsiveProp(props.$marginLeft)),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject} from 'styled-components'\nimport {getResponsiveProp, 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'], getResponsiveProp(props.$padding)),\n getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], getResponsiveProp(props.$paddingX)),\n getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], getResponsiveProp(props.$paddingY)),\n getResponsiveSpace(theme, ['paddingTop'], getResponsiveProp(props.$paddingTop)),\n getResponsiveSpace(theme, ['paddingRight'], getResponsiveProp(props.$paddingRight)),\n getResponsiveSpace(theme, ['paddingBottom'], getResponsiveProp(props.$paddingBottom)),\n getResponsiveSpace(theme, ['paddingLeft'], getResponsiveProp(props.$paddingLeft)),\n ].filter(Boolean) as CSSObject[][]\n}\n","import {CSSObject} from 'styled-components'\nimport {getResponsiveProp, 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, getResponsiveProp(props.$radius), (radiusIndex) => ({\n borderRadius: rem(radius[radiusIndex]),\n }))\n}\n","import {CSSObject} from 'styled-components'\nimport {getResponsiveProp} from '..'\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, getResponsiveProp(props.$shadow), (shadow) =>\n shadowStyle(shadows[shadow])\n )\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 {\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={align}\n $muted={muted}\n ref={ref}\n $size={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, useState} from 'react'\nimport ReactIs from 'react-is'\nimport styled from 'styled-components'\nimport {useResponsiveProp} 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,\n ...restProps\n } = props\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size: AvatarSize[] = useResponsiveProp(sizeProp, [0])\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 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={size.map((s) => (s === 0 ? 0 : s + 1))}>\n <strong>{initials}</strong>\n </Text>\n </Initials>\n </>\n )}\n </Root>\n )\n})\n","import React, {forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useResponsiveProp} 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: AvatarSize[] = useResponsiveProp(sizeProp, [0])\n\n return (\n <Root $size={size} ref={ref}>\n <Text as=\"span\" size={size.map((s) => (s === 0 ? 0 : s + 1))}>\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 {getResponsiveProp, 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 | AvatarSize[]} & ThemeProps) {\n const {theme} = props\n const {avatar, media} = theme.sanity\n\n return responsive(media, getResponsiveProp(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 | AvatarSize[]}>(\n responsiveAvatarStackSizeStyle,\n avatarStackStyle\n)\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 {children: childrenProp, maxLength: maxLengthProp = 4, size = 0, tone, ...restProps} = props\n const maxLength = Math.max(maxLengthProp, 0)\n const children = childrenToElementArray(childrenProp).filter(\n (child) => typeof child !== 'string'\n ) as React.ReactElement[]\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 {\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={column}\n $columnStart={columnStart}\n $columnEnd={columnEnd}\n $display={display}\n $flex={flex}\n $height={height}\n $margin={margin}\n $marginX={marginX}\n $marginY={marginY}\n $marginTop={marginTop}\n $marginRight={marginRight}\n $marginBottom={marginBottom}\n $marginLeft={marginLeft}\n $overflow={overflow}\n $padding={padding}\n $paddingX={paddingX}\n $paddingY={paddingY}\n $paddingTop={paddingTop}\n $paddingRight={paddingRight}\n $paddingBottom={paddingBottom}\n $paddingLeft={paddingLeft}\n $row={row}\n $rowStart={rowStart}\n $rowEnd={rowEnd}\n $sizing={sizing}\n as={asProp}\n ref={ref}\n >\n {props.children}\n </Root>\n )\n})\n","import {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 {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 | 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={align}\n $muted={muted}\n $size={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 {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={radius}\n padding={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 {\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={align}\n $direction={direction}\n $gap={gap}\n $justify={justify}\n $wrap={wrap}\n forwardedAs={as}\n ref={ref}\n />\n )\n})\n","import {SpinnerIcon} from '@sanity/icons'\nimport 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 {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 = 'center',\n loading,\n mode = 'default',\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n radius = 2,\n selected,\n space = 3,\n text,\n textAlign,\n tone = 'default',\n type = 'button',\n ...restProps\n } = props\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 {\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={border}\n $borderTop={borderTop}\n $borderRight={borderRight}\n $borderBottom={borderBottom}\n $borderLeft={borderLeft}\n $checkered={checkered}\n $focusRing={focusRing}\n $radius={radius}\n $shadow={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 {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={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 {getResponsiveProp, 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, getResponsiveProp(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 {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 <Root data-ui=\"Container\" {...restProps} $width={width} forwardedAs={as} ref={ref} />\n})\n","import React, {forwardRef} from 'react'\nimport styled from 'styled-components'\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={autoRows}\n $autoCols={autoCols}\n $autoFlow={autoFlow}\n $columns={columns}\n $gap={gap}\n $gapX={gapX}\n $gapY={gapY}\n $rows={rows}\n forwardedAs={as}\n ref={ref}\n >\n {children}\n </Root>\n )\n})\n","import {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 {\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={align}\n $muted={muted}\n $size={size}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {getResponsiveProp, 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, getResponsiveProp(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} from 'react'\nimport styled from 'styled-components'\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 const children = childrenToElementArray(childrenProp).filter(Boolean)\n\n return (\n <Root data-ui=\"Inline\" {...restProps} $space={space} forwardedAs={as} ref={ref}>\n {children.map((child, idx) => (\n <div key={idx}>{child}</div>\n ))}\n </Root>\n )\n})\n","import React, {forwardRef} from 'react'\nimport styled, {css} from 'styled-components'\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={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","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nconst RO: typeof ResizeObserver =\n typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n\nexport {RO as ResizeObserver}\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, useEffect, useMemo, useState} from 'react'\nimport {useForwardedRef} from '../../hooks'\nimport {useTheme} from '../../theme'\nimport {ResizeObserver} from '../resizeObserver'\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 const [width, setWidth] = useState(() => window.innerWidth)\n const forwardedRef = useForwardedRef(ref)\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n\n useEffect(() => {\n if (!element) return\n\n const handleResizeEntries: ResizeObserverCallback = (entries) => {\n setWidth(entries[0].contentRect.width)\n }\n\n const ro = new ResizeObserver(handleResizeEntries)\n\n ro.observe(element)\n\n return () => ro.disconnect()\n }, [element])\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, useResponsiveProp} 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 = useResponsiveProp(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 {StackProps} from '../../primitives'\nimport {useTheme} from '../../theme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst Root = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: VirtualListProps &\n StackProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>\n): React.ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme().sanity\n const forwardedRef = useForwardedRef(ref)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect(() => {\n if (!forwardedRef.current) return\n\n let _scrollEl = forwardedRef.current.parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n if (_scrollEl) {\n const scrollEl = _scrollEl\n\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [forwardedRef])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Root as={as} data-ui=\"VirtualList\" {...restProps} ref={forwardedRef}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Root>\n )\n})\n","import 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 {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 }\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 = 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\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 data-ui=\"PopoverCard\"\n padding={padding}\n radius={radius}\n scheme={scheme}\n shadow={shadow}\n tone={tone}\n width={width as any}\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 {getResponsiveProp, 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 | number[]} & ThemeProps) {\n const {theme, $fontSize} = props\n const {sizes} = theme.sanity.fonts.text\n\n return responsive(theme.sanity.media, getResponsiveProp($fontSize), (sizeIndex) =>\n textSize(sizes[sizeIndex] || sizes[2])\n )\n}\n\nfunction inputStyle(): Array<\n | ((props: ResponsiveRadiusStyleProps & ThemeProps) => 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} 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 | number[]\n $padding?: number | number[]\n $radius?: number | number[]\n $space?: number | 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={fontSize}\n $padding={padding}\n $radius={radius}\n $space={space}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <SelectIcon />\n </Text>\n </IconBox>\n </Root>\n )\n})\n","import {CSSObject} from 'styled-components'\nimport {getResponsiveProp, rem, responsive, ThemeProps} from '../../styles'\n\nexport interface ResponsiveStackSpaceStyleProps {\n $space?: number | 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, getResponsiveProp(props.$space), (spaceIndex) => ({\n gridGap: rem(space[spaceIndex]),\n }))\n}\n","import React, {forwardRef} from 'react'\nimport styled from 'styled-components'\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={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} 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} 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 ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n\n useCustomValidity(ref, customValidity)\n\n return (\n <Root data-ui=\"TextArea\">\n <InputRoot>\n <Input\n data-as=\"textarea\"\n {...restProps}\n $fontSize={fontSize}\n $padding={padding}\n disabled={disabled}\n ref={ref}\n />\n <Presentation $border={border} $radius={radius} />\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 {useForwardedRef, useCustomValidity, useResponsiveProp} 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} 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.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 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 = 2,\n icon,\n iconRight,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 1,\n readOnly,\n space = 3,\n suffix,\n customValidity,\n type = 'text',\n ...restProps\n } = props\n\n const ref = useForwardedRef(forwardedRef)\n const padding = useResponsiveProp(paddingProp)\n const radius = useResponsiveProp(radiusProp)\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 >\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 <RightCard padding={padding}>\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n </RightCard>\n )}\n </Presentation>\n ),\n [border, fontSize, icon, iconRight, padding, radius, $hasClearButton, $hasPrefix, $hasSuffix]\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\">\n {prefixNode}\n <InputRoot>\n <Input\n data-as=\"input\"\n {...restProps}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $space={space}\n $fontSize={fontSize}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\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 {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,\n placement = 'bottom',\n portal,\n scheme,\n zOffset = theme.sanity.layer?.tooltip.zOffset,\n ...restProps\n } = props\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, useResponsiveProp} 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 = useResponsiveProp(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 {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 = 2, ...restProps} = props\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 {getResponsiveProp, responsive, ThemeProps} from '../../styles'\nimport {DialogPosition} from '../../types'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition | 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, getResponsiveProp(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 {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,\n scheme,\n shadow,\n width,\n } = props\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 = 3,\n cardShadow = 4,\n children,\n contentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n padding = 4,\n portal,\n position = dialog.position || 'fixed',\n scheme,\n width = 0,\n zOffset = dialog.zOffset || theme.sanity.layer?.dialog.zOffset,\n ...restProps\n } = props\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 {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 = 1, ...restProps} = props\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 {responsiveBorderStyle, ResponsiveBorderStyleProps} from '../../styles/border'\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)<\n SelectableStyleProps & ResponsiveRadiusStyleProps & ResponsiveBorderStyleProps\n>(responsiveBorderStyle, responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle)\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 {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={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 {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={radius}\n $tone={tone}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n padding={0}\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 {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 <Root {...restProps} $animated={animated} $radius={radius} $visible={visible} ref={ref} />\n})\n","import React, {forwardRef} from 'react'\nimport styled from 'styled-components'\nimport {useResponsiveProp} 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 = useResponsiveProp(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 = useResponsiveProp(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 = useResponsiveProp(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 = useResponsiveProp(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","_getElements","element","elementsArg","ret","el","Array","isArray","push","filter","Boolean","useClickOutside","listener","boundaryElement","useState","setElement","elements","setElements","elementsRef","useRef","useEffect","prevElements","current","nextElements","length","includes","undefined","handleWindowMouseDown","evt","target","Node","contains","window","addEventListener","removeEventListener","useElementRect","rect","setRect","ro","ResizeObserver","entries","contentRect","observe","disconnect","useGlobalKeyDown","onKeyDown","multiplyChannel","b","s","multiply","r","Math","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","indexOf","isHex","parseHsl","res","exec","Error","parseFloat","parseColor","color","startsWith","rgba","a","rgb","createButtonTones","opts","base","dark","solid","muted","mode","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","border","focusRing","defaultOpts","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","tone","bg2","accent","link","code","input","placeholder","selectable","spot","key","syntax","atrule","attrName","attrValue","attribute","builtin","cdata","className","comment","constant","deleted","doctype","entity","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","fonts","family","weights","regular","medium","semibold","bold","sizes","ascenderHeight","descenderHeight","fontSize","iconSize","lineHeight","letterSpacing","heading","label","text","studioTheme","avatar","distance","size","textWeight","container","offset","width","media","radius","shadows","space","checkbox","radio","markSize","height","padding","transitionDurationMs","transitionTimingFunction","DEFAULT_THEME_LAYER","dialog","zOffset","popover","tooltip","getGlobalScope","globalThis","self","global","globalScope","Symbol","createContext","ThemeContext","ThemeProvider","props","parentTheme","useContext","children","scheme","theme","themeProp","useMemo","rootColor","rootLayer","layer","restTheme","colorScheme","sanity","value","version","React","Provider","StyledThemeProvider","isRecord","useRootTheme","ThemeColorProvider","root","useTheme","useStyledTheme","MEDIA_MANAGER_CACHE","WeakMap","_getMediaQuery","index","_createMediaManager","mediaLen","mediaQuery","mq","matchMedia","getCurrentIndex","matches","subscribe","subscriber","disposeFns","handleChange","addListener","removeListener","disposeFn","_getMediaManager","manager","get","set","useMediaIndex","setIndex","usePrefersDark","setDark","useIsomorphicEffect","useLayoutEffect","useForwardedRef","ref","innerRef","useCustomValidity","customValidity","setCustomValidity","fillCSSObject","propKeys","reduce","obj","propKey","rem","pixelValue","responsive","values","callback","statements","map","statement","mediaIndex","getResponsiveProp","val","defaultVal","getResponsiveSpace","spaceIndexes","spaceIndex","responsiveFont","fontKey","$size","$weight","fontWeight","defaultSize","position","fontFamily","margin","content","display","resp","sizeIndex","negHeight","capHeight","iconOffset","customIconSize","floor","customIconOffset","transform","marginTop","marginBottom","responsiveCodeFontStyle","responsiveHeadingFont","responsiveLabelFont","responsiveTextAlignStyle","$align","textAlign","responsiveTextFont","useResponsiveProp","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","$iconLeft","$iconRight","spaceScale","$padding","$space","$fontSize","len","_padding","_space","_size","i","_","emSize","p","styles","paddingTop","paddingRight","paddingBottom","paddingLeft","responsiveInputPaddingIconRightStyle","ROOT_STYLE","css","textInputRootStyle","textInputBaseStyle","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","asProp","as","colorKey","src","title","onImageLoadError","arrowPositionProp","arrowPosition","animateArrowFrom","status","sizeProp","ReactIs","isValidElementType","_sizeRem","_radius","elementId","useId","setArrowPosition","imageFailed","setImageFailed","imageId","raf","requestAnimationFrame","cancelAnimationFrame","handleImageError","useCallback","viewBox","d","patternContentUnits","href","onError","cx","cy","rx","ry","vectorEffect","responsiveAvatarCounterSizeStyle","avatarCounterBaseStyle","AvatarCounter","count","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","$tone","palette","cursor","Badge","Flex","forwardedAs","rotate","keyframes","Spinner","SpinnerIcon","_colorVarsStyle","checkered","buttonBaseStyles","buttonTheme","buttonColorStyles","LoadingBox","Button","icon","iconRight","loading","type","boxProps","isValidElement","createElement","cardStyle","cardBaseStyle","cardColorStyle","$checkered","$focusRing","Card","__unstable_checkered","__unstable_focusRing","toneProp","rootTheme","checkboxBaseStyles","inputElementStyles","Input","Checkbox","forwardedRef","checked","indeterminate","style","CheckmarkIcon","RemoveIcon","codeSyntaxHighlightingStyle","codeBaseStyle","pre","Code","languageProp","language","registered","Refractor","hasLanguage","inline","containerBaseStyle","responsiveContainerWidthStyle","$width","maxWidth","Container","Grid","headingBaseStyle","Heading","inlineBaseStyle","verticalAlign","inlineSpaceStyle","Inline","idx","kbdStyle","kbd","KBD","BoundaryElementContext","BoundaryElementProvider","DEFAULT_VALUE","useBoundaryElement","RO","ResizeObserverPolyfill","findMaxBreakpoints","bp","findMinBreakpoints","ElementQuery","innerWidth","setWidth","handleResizeEntries","setRef","ErrorBoundary","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","message","Component","LayerContext","useLayer","LayerProvider","zOffsetProp","parent","maxMediaIndex","setSize","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","keys","keysB","every","__BROWSER__","PortalProvider","elementsProp","__unstable_elements","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","unobserve","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","referenceElementProp","referenceElement","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","Prefix","attrs","Suffix","LeftBox","RightCard","TextInput","clearButton","onClear","paddingProp","prefix","radiusProp","suffix","$hasClearButton","$hasIcon","$hasIconRight","handleClearMouseDown","event","preventDefault","stopPropagation","handleClearClick","prefixNode","presentationNode","clearButtonBoxPadding","clearButtonPadding","clearButtonProps","clearButtonNode","CloseIcon","onClick","onMouseDown","suffixNode","Border","Shape","TooltipArrow","Tooltip","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","filterOptionProp","filterOption","listBox","onQueryChange","openButton","optionsProp","relatedElements","renderOptionProp","renderOption","renderPopover","renderValue","valueProp","useReducer","dispatch","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","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","autoFocus","__unstable_autoFocus","hideCloseButton","__unstable_hideCloseButton","contentRef","footer","header","onClickOutside","onClose","localContentRef","labelId","showCloseButton","showHeader","setContentRef","Dialog","cardRadius","cardShadow","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","splice","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","menuProp","menu","deprecated_placement","deprecated_popoverScheme","popoverScheme","deprecated_portal","deprecated_popoverRadius","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","toasts","setState","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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"}
|
|
1
|
+
{"version":3,"file":"sanity-ui.module.js","sources":["../src/constants.ts","../src/styles/helpers.ts","../src/styles/font/responsiveFont.ts","../src/styles/font/codeFontStyle.ts","../src/styles/font/headingFontStyle.ts","../src/styles/font/labelFontStyle.ts","../src/styles/font/textAlignStyle.ts","../src/styles/font/textFontStyle.ts","../src/hooks/useArrayProp.ts","../src/hooks/useClickOutside.ts","../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 tints = hues.gray\n const skeletonFrom = dark ? tints[900].hex : tints[100].hex\n\n return {\n fg: dark ? white.hex : black.hex,\n bg: dark ? black.hex : white.hex,\n border: tints[dark ? 800 : 200].hex,\n focusRing: hues.blue[dark ? 500 : 500].hex,\n shadow: {\n outline: rgba(tints[500].hex, 0.4),\n umbra: dark ? rgba(tints[950].hex, 0.4) : rgba(tints[500].hex, 0.2),\n penumbra: dark ? rgba(tints[950].hex, 0.28) : rgba(tints[500].hex, 0.14),\n ambient: dark ? rgba(tints[950].hex, 0.24) : rgba(tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (name === 'transparent') {\n const tints = tones.default\n const skeletonFrom = tints[dark ? 800 : 200].hex\n\n return {\n fg: tints[dark ? 100 : 900].hex,\n bg: tints[dark ? 950 : 50].hex,\n border: tints[dark ? 800 : 300].hex,\n focusRing: hues.blue[500].hex,\n shadow: {\n outline: rgba(tints[500].hex, 0.4),\n umbra: dark ? rgba(tints[900].hex, 0.4) : rgba(tints[500].hex, 0.2),\n penumbra: dark ? rgba(tints[900].hex, 0.28) : rgba(tints[500].hex, 0.14),\n ambient: dark ? rgba(tints[900].hex, 0.24) : rgba(tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n const tints = tones[name] || tones.default\n const skeletonFrom = tints[dark ? 800 : 200].hex\n\n return {\n fg: tints[dark ? 100 : 900].hex,\n bg: tints[dark ? 950 : 50].hex,\n border: tints[dark ? 800 : 200].hex,\n focusRing: tints[500].hex,\n shadow: {\n outline: rgba(tints[500].hex, 0.4),\n umbra: dark ? rgba(tints[900].hex, 0.4) : rgba(tints[500].hex, 0.2),\n penumbra: dark ? rgba(tints[900].hex, 0.28) : rgba(tints[500].hex, 0.14),\n ambient: dark ? rgba(tints[900].hex, 0.24) : rgba(tints[500].hex, 0.12),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n solid: ({base, dark, name, state, tone}) => {\n const mix = dark ? screen : multiply\n const mix2 = dark ? multiply : screen\n const defaultTints = tones[name] || tones.default\n const isNeutral = NEUTRAL_TONES.includes(name) && NEUTRAL_TONES.includes(tone)\n\n let tints = tones[tone === 'default' ? name : tone] || defaultTints\n\n if (state === 'disabled') {\n tints = defaultTints\n\n const bg = mix(base.bg, tints[dark ? 800 : 200].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 800 : 200].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n accent: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n link: {\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n code: {\n bg,\n fg: mix(base.bg, tints[dark ? 950 : 50].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'hovered') {\n const bg = mix(base.bg, tints[dark ? 300 : 600].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 300 : 600].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'pressed') {\n const bg = mix(base.bg, tints[dark ? 200 : 800].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg: mix(base.bg, tints[dark ? 200 : 800].hex),\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 200 : 800].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 200 : 800].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 200 : 800].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 800 : 200].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 800 : 200].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 800 : 200].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n // state: \"enabled\" | unknown\n const bg = mix(base.bg, tints[dark ? 400 : 500].hex)\n const skeletonFrom = mix2(bg, tints[dark ? 200 : 800].hex)\n\n return {\n bg,\n bg2: mix2(bg, tints[dark ? 50 : 950].hex),\n border: mix(base.bg, tints[dark ? 400 : 500].hex),\n fg: mix(base.bg, dark ? black.hex : white.hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 900 : 100].hex),\n },\n accent: {\n fg: mix2(bg, hues.red[dark ? 900 : 100].hex),\n },\n link: {\n fg: mix2(bg, hues.blue[dark ? 900 : 100].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 900 : 100].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n muted: ({base, dark, name, state, tone}) => {\n const mix = dark ? screen : multiply\n const defaultTints = tones[name] || tones.default\n const isNeutral = NEUTRAL_TONES.includes(name) && NEUTRAL_TONES.includes(tone)\n\n let tints = tones[tone === 'default' ? name : tone] || defaultTints\n\n if (state === 'disabled') {\n tints = defaultTints\n\n const bg = base.bg\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(bg, tints[dark ? 800 : 200].hex),\n muted: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n accent: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n link: {\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n code: {\n bg,\n fg: mix(bg, tints[dark ? 900 : 100].hex),\n },\n skeleton: {\n from: rgba(skeletonFrom, 0.5),\n to: rgba(skeletonFrom, 0.25),\n },\n }\n }\n\n if (state === 'hovered') {\n // if (isNeutral) {\n // tints = tones.primary\n // }\n\n const bg = mix(base.bg, tints[dark ? 950 : 50].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'pressed') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 900 : 100].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n tints = tones.primary\n }\n\n const bg = mix(base.bg, tints[dark ? 900 : 100].hex)\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 200 : 800].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n }\n\n const bg = base.bg\n const skeletonFrom = mix(bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n border: mix(bg, tints[dark ? 900 : 100].hex),\n fg: mix(base.bg, tints[dark ? 300 : 700].hex),\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n enabled: {\n ...muted.enabled,\n border: muted.enabled.bg,\n },\n hovered: {\n ...muted.hovered,\n border: muted.hovered.bg,\n },\n pressed: {\n ...muted.pressed,\n border: muted.pressed.bg,\n },\n selected: {\n ...muted.selected,\n border: muted.selected.bg,\n },\n disabled: {\n ...muted.disabled,\n border: muted.disabled.bg,\n },\n }\n }\n\n if (mode === 'ghost') {\n return {\n ...solid,\n enabled: {\n ...muted.enabled,\n border: base.border,\n },\n disabled: muted.disabled,\n }\n }\n\n return solid\n },\n\n card: ({base, dark, muted, name, solid, state}) => {\n if (state === 'hovered') {\n return muted[name].hovered\n }\n\n if (state === 'disabled') {\n return muted[name].disabled\n }\n\n const isNeutral = NEUTRAL_TONES.includes(name)\n const tints = tones[name] || tones.default\n const mix = dark ? screen : multiply\n\n if (state === 'pressed') {\n if (isNeutral) {\n return muted.primary.pressed\n }\n\n return muted[name].pressed\n }\n\n if (state === 'selected') {\n if (isNeutral) {\n return solid.primary.enabled\n }\n\n return solid[name].enabled\n }\n\n const bg = base.bg\n const skeletonFrom = mix(base.bg, tints[dark ? 900 : 100].hex)\n\n return {\n bg,\n bg2: mix(bg, tints[dark ? 950 : 50].hex),\n fg: base.fg,\n border: base.border,\n muted: {\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n },\n accent: {\n fg: mix(base.bg, hues.red[dark ? 400 : 500].hex),\n },\n link: {\n fg: mix(base.bg, hues.blue[dark ? 400 : 600].hex),\n },\n code: {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: tints[dark ? 400 : 600].hex,\n },\n skeleton: {\n from: skeletonFrom,\n to: rgba(skeletonFrom, 0.5),\n },\n }\n },\n\n input: ({base, dark, mode, state}) => {\n const mix = dark ? screen : multiply\n\n if (mode === 'invalid') {\n const tints = tones.critical\n\n return {\n bg: mix(base.bg, tints[dark ? 950 : 50].hex),\n fg: mix(base.bg, tints[dark ? 400 : 600].hex),\n border: mix(base.bg, tints[dark ? 800 : 200].hex),\n placeholder: mix(base.bg, tints[dark ? 600 : 400].hex),\n }\n }\n\n if (state === 'hovered') {\n return {\n bg: base.bg,\n fg: base.fg,\n border: mix(base.bg, hues.gray[dark ? 700 : 300].hex),\n placeholder: mix(base.bg, hues.gray[dark ? 600 : 400].hex),\n }\n }\n\n if (state === 'disabled') {\n return {\n bg: mix(base.bg, hues.gray[dark ? 950 : 50].hex),\n fg: mix(base.bg, hues.gray[dark ? 700 : 300].hex),\n border: mix(base.bg, hues.gray[dark ? 900 : 100].hex),\n placeholder: mix(base.bg, hues.gray[dark ? 800 : 200].hex),\n }\n }\n\n if (state === 'readOnly') {\n return {\n bg: mix(base.bg, hues.gray[dark ? 950 : 50].hex),\n fg: mix(base.bg, hues.gray[dark ? 200 : 800].hex),\n border: mix(base.bg, hues.gray[dark ? 800 : 200].hex),\n placeholder: mix(base.bg, hues.gray[dark ? 600 : 400].hex),\n }\n }\n\n return {\n bg: base.bg,\n fg: base.fg,\n border: base.border,\n placeholder: mix(base.bg, hues.gray[dark ? 600 : 400].hex),\n }\n },\n\n selectable: ({base, muted, tone, solid, state}) => {\n if (state === 'enabled') {\n return {\n ...muted[tone].enabled,\n bg: base.bg,\n }\n }\n\n if (state === 'pressed') {\n if (tone === 'default') {\n return muted.primary.pressed\n }\n\n return muted[tone].pressed\n }\n\n if (state === 'selected') {\n if (tone === 'default') {\n return solid.primary.enabled\n }\n\n return solid[tone].enabled\n }\n\n if (state === 'disabled') {\n return {\n ...muted[tone].disabled,\n bg: base.bg,\n }\n }\n\n return muted[tone][state]\n },\n\n spot: ({base, dark, key}) => {\n const mix = dark ? screen : multiply\n\n return mix(base.bg, hues[key][dark ? 400 : 500].hex)\n },\n\n syntax: ({base, dark}) => {\n const mix = dark ? screen : multiply\n const mainShade = dark ? 400 : 600\n const secondaryShade = dark ? 600 : 400\n\n return {\n atrule: mix(base.bg, hues.purple[mainShade].hex),\n attrName: mix(base.bg, hues.green[mainShade].hex),\n attrValue: mix(base.bg, hues.yellow[mainShade].hex),\n attribute: mix(base.bg, hues.yellow[mainShade].hex),\n boolean: mix(base.bg, hues.purple[mainShade].hex),\n builtin: mix(base.bg, hues.purple[mainShade].hex),\n cdata: mix(base.bg, hues.yellow[mainShade].hex),\n char: mix(base.bg, hues.yellow[mainShade].hex),\n class: mix(base.bg, hues.orange[mainShade].hex),\n className: mix(base.bg, hues.cyan[mainShade].hex),\n comment: mix(base.bg, hues.gray[secondaryShade].hex),\n constant: mix(base.bg, hues.purple[mainShade].hex),\n deleted: mix(base.bg, hues.red[mainShade].hex),\n doctype: mix(base.bg, hues.gray[secondaryShade].hex),\n entity: mix(base.bg, hues.red[mainShade].hex),\n function: mix(base.bg, hues.green[mainShade].hex),\n hexcode: mix(base.bg, hues.blue[mainShade].hex),\n id: mix(base.bg, hues.purple[mainShade].hex),\n important: mix(base.bg, hues.purple[mainShade].hex),\n inserted: mix(base.bg, hues.yellow[mainShade].hex),\n keyword: mix(base.bg, hues.magenta[mainShade].hex),\n number: mix(base.bg, hues.purple[mainShade].hex),\n operator: mix(base.bg, hues.magenta[mainShade].hex),\n prolog: mix(base.bg, hues.gray[secondaryShade].hex),\n property: mix(base.bg, hues.blue[mainShade].hex),\n pseudoClass: mix(base.bg, hues.yellow[mainShade].hex),\n pseudoElement: mix(base.bg, hues.yellow[mainShade].hex),\n punctuation: mix(base.bg, hues.gray[mainShade].hex),\n regex: mix(base.bg, hues.blue[mainShade].hex),\n selector: mix(base.bg, hues.red[mainShade].hex),\n string: mix(base.bg, hues.yellow[mainShade].hex),\n symbol: mix(base.bg, hues.purple[mainShade].hex),\n tag: mix(base.bg, hues.red[mainShade].hex),\n unit: mix(base.bg, hues.orange[mainShade].hex),\n url: mix(base.bg, hues.red[mainShade].hex),\n variable: mix(base.bg, hues.red[mainShade].hex),\n }\n },\n})\n","import {ThemeFonts} from '../lib/theme'\n\nexport const fonts: ThemeFonts = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 3,\n descenderHeight: 3,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 13,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 17,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 21,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 25,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: 0,\n },\n ],\n },\n heading: {\n family:\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 700,\n medium: 800,\n semibold: 900,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 12,\n iconSize: 17,\n lineHeight: 17,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 21,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 33,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 39,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 9,\n descenderHeight: 9,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 45,\n letterSpacing: 0,\n },\n ],\n },\n label: {\n family:\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weights: {\n regular: 600,\n medium: 700,\n semibold: 800,\n bold: 900,\n },\n sizes: [\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 9.8,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 11.25,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.75,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 14,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15.5,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n },\n ],\n },\n text: {\n family:\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 3,\n descenderHeight: 3,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 13,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 17,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 21,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 25,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: 0,\n },\n ],\n },\n}\n","import {RootTheme} from '../types'\nimport {color} from './color'\nimport {fonts} from './fonts'\n\n/**\n * @public\n */\nexport const studioTheme: RootTheme = {\n avatar: {\n sizes: [\n {distance: -3, size: 25},\n {distance: -6, size: 35},\n {distance: -9, size: 55},\n ],\n },\n button: {\n textWeight: 'medium',\n },\n color,\n container: [320, 640, 960, 1280, 1600, 1920],\n focusRing: {\n offset: 1,\n width: 2,\n },\n fonts,\n media: [360, 600, 900, 1200, 1800, 2400],\n radius: [0, 1, 3, 6, 9, 12, 21],\n shadows: [\n null,\n {umbra: [0, 0, 0, 0], penumbra: [0, 0, 0, 0], ambient: [0, 0, 0, 0]},\n {umbra: [0, 3, 5, -1], penumbra: [0, 6, 10, 0], ambient: [0, 1, 18, 0]},\n {umbra: [0, 7, 8, -4], penumbra: [0, 12, 17, 2], ambient: [0, 5, 22, 4]},\n {umbra: [0, 9, 11, -5], penumbra: [0, 18, 28, 2], ambient: [0, 7, 34, 6]},\n {umbra: [0, 11, 15, -7], penumbra: [0, 24, 38, 3], ambient: [0, 9, 46, 8]},\n ],\n space: [0, 4, 8, 12, 20, 32, 52, 84, 136, 220],\n input: {\n checkbox: {\n size: 17,\n },\n radio: {\n size: 17,\n markSize: 9,\n },\n switch: {\n width: 33,\n height: 17,\n padding: 4,\n transitionDurationMs: 150,\n transitionTimingFunction: 'ease-out',\n },\n border: {\n width: 1,\n },\n },\n // styles: {\n // button: {\n // root: {\n // transition: 'background-color 100ms,border-color 100ms,color 100ms',\n // },\n // },\n // card: {\n // root: {\n // transition: 'background-color 100ms,border-color 100ms,color 100ms',\n // },\n // },\n // },\n}\n","import {ThemeLayer} from './lib/theme/layer'\n\nexport const DEFAULT_THEME_LAYER: ThemeLayer = {\n dialog: {zOffset: 600},\n popover: {zOffset: 400},\n tooltip: {zOffset: 200},\n}\n","/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","import {createContext} from 'react'\nimport {globalScope} from '../lib/globalScope'\nimport {ThemeContextValue} from './types'\n\nconst key = Symbol.for('@sanity/ui/context/theme')\n\nglobalScope[key] = globalScope[key] || createContext<ThemeContextValue | null>(null)\n\n/**\n * @internal\n */\nexport const ThemeContext: React.Context<ThemeContextValue | null> = globalScope[key]\n","import 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 {ThemeColorSchemeKey, ThemeFontWeightKey} from '../../theme'\nimport {CardTone} from '../../types'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {rem, _responsive} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $border?: boolean\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): FlattenSimpleInterpolation {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps\n): FlattenSimpleInterpolation {\n const {theme, $scheme, $tone, $weight} = props\n const font = theme.sanity.fonts.text\n const color = theme.sanity.color.input\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.family};\n font-weight: ${($weight && font.weights[$weight]) || font.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.default.enabled.fg};\n --input-placeholder-color: ${color.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.default.enabled.fg};\n --input-placeholder-color: ${color.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.default.disabled.fg};\n --input-placeholder-color: ${color.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.invalid.enabled.fg};\n --input-placeholder-color: ${color.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.default.readOnly.fg};\n --input-placeholder-color: ${color.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {theme} = props\n const {fonts, media} = theme.sanity\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = fonts.text.sizes[sizeIndex] || fonts.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: size.lineHeight / size.fontSize,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps\n): FlattenSimpleInterpolation {\n const {$border, $hasPrefix, $hasSuffix, $scheme, $tone, theme} = props\n const {focusRing, input} = theme.sanity\n const color = theme.sanity.color.input\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.default.enabled.bg};\n --card-fg-color: ${color.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + & {\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 {_ResizeObserver} from '../../observers'\nimport {StackProps} from '../../primitives'\nimport {useTheme} from '../../theme'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\nconst Root = styled.div`\n position: relative;\n`\n\nconst ItemWrapper = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n`\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: VirtualListProps &\n StackProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange' | 'ref'>,\n ref: React.ForwardedRef<HTMLDivElement>\n): React.ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme().sanity\n const forwardedRef = useForwardedRef(ref)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect(() => {\n if (!forwardedRef.current) return\n\n let _scrollEl = forwardedRef.current.parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n if (_scrollEl) {\n const scrollEl = _scrollEl\n\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [forwardedRef])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [<ItemWrapper key={0}>{renderItem(items[0])}</ItemWrapper>]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <ItemWrapper key={key} style={{top: itemIndex * (itemHeight + space[gap])}}>\n {node}\n </ItemWrapper>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Root as={as} data-ui=\"VirtualList\" {...restProps} ref={forwardedRef}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Root>\n )\n})\n","import 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, {\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} 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(matchReferenceWidth ? 'auto' : 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 const updateTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n useEffect(() => {\n if (updateTimeoutRef.current) {\n clearTimeout(updateTimeoutRef.current)\n updateTimeoutRef.current = null\n }\n\n updateTimeoutRef.current = setTimeout(() => {\n if (forceUpdate) {\n try {\n forceUpdate()\n } catch (_) {\n // ignore caught error\n }\n }\n }, 0)\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-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={useArrayProp(fontSize)}\n $padding={useArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={useArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $border={border}\n $radius={useArrayProp(radius)}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-scheme={rootTheme.scheme}\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 $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {icon && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(icon) && icon}\n {isValidElementType(icon) && createElement(icon)}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && iconRight && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(iconRight) && iconRight}\n {isValidElementType(iconRight) && createElement(iconRight)}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n border,\n fontSize,\n icon,\n iconRight,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ]\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding]\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding]\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton]\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <Button\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ]\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix]\n )\n\n return (\n <Root data-ui=\"TextInput\" tone={rootTheme.tone}>\n {prefixNode}\n\n <InputRoot>\n <Input\n data-as=\"input\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $scheme={rootTheme.scheme}\n $space={space}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\n\n {suffixNode}\n </Root>\n )\n})\n","import 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, useRef, 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 const updateTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n useEffect(() => {\n if (updateTimeoutRef.current) {\n clearTimeout(updateTimeoutRef.current)\n updateTimeoutRef.current = null\n }\n\n updateTimeoutRef.current = setTimeout(() => {\n if (forceUpdate) {\n try {\n forceUpdate()\n } catch (_) {\n // ignore caught error\n }\n }\n }, 0)\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.umbra,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps\n): CSSObject[] {\n const {theme} = props\n const {media} = theme.sanity\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n","import {createContext} from 'react'\nimport {globalScope} from '../../lib/globalScope'\nimport {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\nconst key = Symbol.for('@sanity/ui/context/dialog')\n\nglobalScope[key] = globalScope[key] || createContext<DialogContextValue>({version: 0.0})\n\n/**\n * @internal\n */\nexport const DialogContext: React.Context<DialogContextValue> = globalScope[key]\n","import {useContext} from 'react'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {CloseIcon} from '@sanity/icons'\nimport 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","useState","setElement","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","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","builtin","cdata","className","comment","constant","deleted","doctype","entity","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","tints","skeletonFrom","mix","mix2","defaultTints","isNeutral","mainShade","secondaryShade","medium","semibold","bold","heading","label","text","studioTheme","avatar","distance","textWeight","container","offset","radius","shadows","checkbox","radio","markSize","transitionDurationMs","transitionTimingFunction","DEFAULT_THEME_LAYER","dialog","zOffset","popover","tooltip","getGlobalScope","globalThis","self","global","globalScope","Symbol","createContext","ThemeContext","ThemeProvider","parentTheme","useContext","children","scheme","themeProp","rootColor","rootLayer","layer","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","$scheme","$tone","font","textInputFontSizeStyle","textInputRepresentationStyle","$hasPrefix","$hasSuffix","responsiveMarginStyle","$margin","$marginX","$marginY","$marginTop","$marginRight","$marginBottom","$marginLeft","responsivePaddingStyle","$paddingX","$paddingY","$paddingTop","$paddingRight","$paddingBottom","$paddingLeft","responsiveRadiusStyle","$radius","radiusIndex","borderRadius","toBoxShadow","shadowStyle","boxShadow","responsiveShadowStyle","$shadow","textBaseStyle","$accent","$muted","Root","styled","div","SpanWithTextOverflow","span","Text","forwardRef","childrenProp","textOverflow","weight","restProps","avatarStyle","avatarRootStyle","arrow","avatarArrowStyle","bgStroke","avatarBgStrokeStyle","stroke","avatarStrokeStyle","initials","avatarInitialsStyle","zIndex","opacity","transition","left","right","top","bottom","$color","backgroundColor","userSelect","appearance","responsiveAvatarSizeStyle","avatarSize","textTransform","strokeWidth","strokeSasharray","strokeLinecap","Arrow","BgStroke","ellipse","Stroke","Initials","Avatar","asProp","as","colorKey","src","title","onImageLoadError","arrowPositionProp","arrowPosition","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","languageProp","language","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","error","getDerivedStateFromError","componentDidCatch","info","onCatch","render","message","Component","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","elementsProp","__unstable_elements","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","ro","entries","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","referenceElementProp","referenceElement","widthProp","setReferenceElement","popperElement","setPopperElement","setArrowElement","popperReferenceElement","modifiers","usePopper","attributes","forceUpdate","childRef","setRootRef","popoverStyle","updateTimeoutRef","clearTimeout","setTimeout","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","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","filterOptionProp","filterOption","listBox","onQueryChange","openButton","optionsProp","relatedElements","renderOptionProp","renderOption","renderPopover","renderValue","valueProp","useReducer","dispatch","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","autoFocus","__unstable_autoFocus","hideCloseButton","__unstable_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","menuProp","menu","deprecated_placement","deprecated_popoverScheme","popoverScheme","deprecated_portal","deprecated_popoverRadius","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","$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","toasts","setState","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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"}
|