@sanity/ui 3.0.0-static.20 → 3.0.0-static.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/_chunks-cjs/_visual-editing.cjs +198 -862
- package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -1
- package/dist/_chunks-cjs/refractor.cjs +0 -1
- package/dist/_chunks-cjs/refractor.cjs.map +1 -1
- package/dist/_chunks-es/_visual-editing.js +211 -874
- package/dist/_chunks-es/_visual-editing.js.map +1 -1
- package/dist/_chunks-es/refractor.js +0 -1
- package/dist/_chunks-es/refractor.js.map +1 -1
- package/dist/_visual-editing.d.cts +34 -100
- package/dist/_visual-editing.d.ts +34 -100
- package/dist/css.cjs +368 -4123
- package/dist/css.cjs.map +1 -1
- package/dist/css.d.cts +13095 -8462
- package/dist/css.d.ts +13095 -8462
- package/dist/css.js +368 -4124
- package/dist/css.js.map +1 -1
- package/dist/index.cjs +769 -141
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +93 -287
- package/dist/index.d.ts +93 -287
- package/dist/index.js +740 -112
- package/dist/index.js.map +1 -1
- package/dist/theme.cjs +31 -10
- package/dist/theme.cjs.map +1 -1
- package/dist/theme.d.cts +2 -2
- package/dist/theme.d.ts +2 -2
- package/dist/theme.js +31 -10
- package/dist/theme.js.map +1 -1
- package/dist/ui.css +21459 -24610
- package/package.json +17 -12
- package/src/cli/buildCommand.ts +1 -91
- package/src/core/_compat/theme/themeColorProvider.tsx +0 -2
- package/src/core/_compat/theme/themeProvider.tsx +0 -2
- package/src/core/components/autocomplete/autocomplete.tsx +15 -15
- package/src/core/components/autocomplete/autocompleteOption.tsx +0 -2
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +2 -4
- package/src/core/components/dialog/dialog.tsx +9 -13
- package/src/core/components/dialog/dialogCard.tsx +2 -10
- package/src/core/components/dialog/dialogContext.ts +4 -2
- package/src/core/components/dialog/dialogProvider.tsx +3 -4
- package/src/core/components/hotkeys/hotkeys.tsx +0 -2
- package/src/core/components/menu/menu.tsx +2 -4
- package/src/core/components/menu/menuButton.tsx +0 -2
- package/src/core/components/menu/menuDivider.tsx +2 -4
- package/src/core/components/menu/menuGroup.tsx +0 -2
- package/src/core/components/menu/menuItem.tsx +2 -4
- package/src/core/components/skeleton/codeSkeleton.tsx +6 -10
- package/src/core/components/skeleton/headingSkeleton.tsx +6 -10
- package/src/core/components/skeleton/labelSkeleton.tsx +6 -10
- package/src/core/components/skeleton/skeleton.tsx +4 -8
- package/src/core/components/skeleton/textSkeleton.tsx +6 -10
- package/src/core/components/tab/tab.tsx +0 -2
- package/src/core/components/tab/tabList.tsx +0 -2
- package/src/core/components/tab/tabPanel.tsx +0 -2
- package/src/core/components/toast/toast.tsx +6 -36
- package/src/core/components/toast/toastLayer.tsx +0 -2
- package/src/core/components/toast/toastProvider.tsx +2 -3
- package/src/core/components/tree/tree.tsx +0 -2
- package/src/core/components/tree/treeGroup.tsx +0 -2
- package/src/core/components/tree/treeItem.tsx +3 -5
- package/src/core/helpers/props.ts +18 -0
- package/src/core/hooks/index.ts +1 -0
- package/src/core/hooks/useArrayProp.ts +1 -4
- package/src/core/hooks/useResponsiveProp.ts +28 -0
- package/src/core/index.ts +0 -1
- package/src/core/lib/isArray.ts +3 -0
- package/src/core/primitives/_selectable/selectable.tsx +2 -6
- package/src/core/primitives/avatar/avatar.tsx +15 -17
- package/src/core/primitives/avatar/avatarCounter.tsx +14 -15
- package/src/core/primitives/avatar/avatarStack.tsx +14 -22
- package/src/core/primitives/badge/badge.tsx +3 -10
- package/src/core/primitives/box/box.tsx +90 -70
- package/src/core/primitives/button/button.tsx +10 -21
- package/src/core/primitives/card/card.tsx +5 -11
- package/src/core/primitives/card/cardProvider.tsx +2 -2
- package/src/core/primitives/card/useCard.ts +1 -0
- package/src/core/primitives/checkbox/checkbox.tsx +4 -6
- package/src/core/primitives/code/code.tsx +5 -10
- package/src/core/primitives/code/refractor.tsx +0 -2
- package/src/core/primitives/container/container.tsx +2 -11
- package/src/core/primitives/flex/flex.tsx +29 -4
- package/src/core/primitives/grid/grid.tsx +0 -2
- package/src/core/primitives/heading/heading.tsx +8 -13
- package/src/core/primitives/inline/inline.tsx +22 -6
- package/src/core/primitives/kbd/kbd.tsx +2 -4
- package/src/core/primitives/label/label.tsx +7 -12
- package/src/core/primitives/popover/popover.tsx +11 -9
- package/src/core/primitives/popover/popoverLayer.tsx +1 -3
- package/src/core/primitives/radio/radio.tsx +4 -5
- package/src/core/primitives/select/select.tsx +0 -2
- package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +6 -10
- package/src/core/primitives/spinner/spinner.tsx +6 -6
- package/src/core/primitives/stack/stack.tsx +16 -6
- package/src/core/primitives/switch/switch.tsx +1 -4
- package/src/core/primitives/text/text.tsx +9 -19
- package/src/core/primitives/textArea/textArea.tsx +0 -2
- package/src/core/primitives/textInput/textInput.tsx +40 -47
- package/src/core/primitives/tooltip/tooltip.tsx +4 -12
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -2
- package/src/core/primitives/tooltip/tooltipLayer.tsx +0 -2
- package/src/core/primitives/types.ts +6 -6
- package/src/core/types/flex.ts +3 -3
- package/src/core/utils/arrow/arrow.tsx +11 -5
- package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -2
- package/src/core/utils/elementQuery/elementQuery.tsx +0 -2
- package/src/core/utils/layer/layer.tsx +3 -3
- package/src/core/utils/layer/layerCard.tsx +0 -2
- package/src/core/utils/layer/layerProvider.tsx +6 -7
- package/src/core/utils/portal/portal.tsx +0 -2
- package/src/core/utils/portal/portalProvider.tsx +0 -2
- package/src/core/utils/srOnly/srOnly.tsx +2 -9
- package/src/core/utils/virtualList/virtualList.tsx +0 -2
- package/src/css/__theme/index.ts +16 -0
- package/src/css/__theme/lib/contract/buildVarContract.ts +78 -0
- package/src/css/__theme/lib/contract/index.ts +4 -0
- package/src/css/__theme/lib/contract/types.ts +17 -0
- package/src/css/__theme/resolveTheme.ts +865 -0
- package/src/css/_responsiveClassName.ts +45 -0
- package/src/css/_responsiveStyle.css.ts +34 -0
- package/src/css/_style.css.ts +9 -0
- package/src/css/components/breadcrumbs/breadcrumbs.css.ts +6 -0
- package/src/css/components/breadcrumbs/breadcrumbs.ts +4 -3
- package/src/css/components/dialog/dialog.css.ts +81 -0
- package/src/css/components/dialog/dialog.ts +12 -12
- package/src/css/components/index.ts +6 -0
- package/src/css/components/menu/menu.css.ts +14 -0
- package/src/css/components/menu/menu.ts +6 -5
- package/src/css/components/skeleton/skeleton.css.ts +132 -0
- package/src/css/components/skeleton/skeleton.ts +8 -8
- package/src/css/components/skeleton/types.ts +9 -3
- package/src/css/components/toast/toast.css.ts +16 -0
- package/src/css/components/toast/toast.ts +3 -18
- package/src/css/components/tree/tree.css.ts +65 -0
- package/src/css/components/tree/tree.ts +4 -3
- package/src/css/defaultTheme.css.ts +468 -0
- package/src/css/index.ts +11 -37
- package/src/css/layers.css.ts +9 -0
- package/src/css/primitives/_arrow/_arrow.css.ts +68 -0
- package/src/css/primitives/_arrow/_arrow.ts +10 -5
- package/src/css/primitives/_input/_input.css.ts +258 -0
- package/src/css/primitives/_input/input.ts +10 -12
- package/src/css/primitives/_input/types.ts +1 -1
- package/src/css/primitives/_selectable/_selectable.css.ts +121 -0
- package/src/css/primitives/_selectable/selectable.ts +3 -3
- package/src/css/primitives/_selectable/types.ts +2 -1
- package/src/css/primitives/avatar/avatar.css.ts +175 -0
- package/src/css/primitives/avatar/avatar.ts +45 -10
- package/src/css/primitives/avatar/types.ts +1 -0
- package/src/css/primitives/badge/badge.css.ts +26 -0
- package/src/css/primitives/badge/badge.ts +2 -6
- package/src/css/primitives/badge/types.ts +4 -3
- package/src/css/primitives/box/box.css.ts +19 -0
- package/src/css/primitives/box/box.ts +39 -9
- package/src/css/primitives/box/types.ts +35 -8
- package/src/css/primitives/button/button.css.ts +285 -0
- package/src/css/primitives/button/button.ts +10 -7
- package/src/css/primitives/button/types.ts +10 -4
- package/src/css/primitives/card/card.css.ts +365 -0
- package/src/css/primitives/card/card.ts +5 -4
- package/src/css/primitives/card/types.ts +2 -3
- package/src/css/primitives/checkbox/checkbox.css.ts +193 -0
- package/src/css/primitives/checkbox/checkbox.ts +11 -5
- package/src/css/primitives/code/code.css.ts +271 -0
- package/src/css/primitives/code/code.ts +8 -4
- package/src/css/primitives/code/types.ts +3 -2
- package/src/css/primitives/container/container.css.ts +4 -0
- package/src/css/primitives/container/container.ts +9 -3
- package/src/css/primitives/container/types.ts +1 -0
- package/src/css/primitives/heading/heading.css.ts +85 -0
- package/src/css/primitives/heading/heading.ts +9 -10
- package/src/css/primitives/heading/types.ts +3 -2
- package/src/css/primitives/index.ts +24 -0
- package/src/css/primitives/kbd/kbd.css.ts +16 -0
- package/src/css/primitives/kbd/kbd.ts +3 -3
- package/src/css/primitives/kbd/types.ts +2 -3
- package/src/css/primitives/label/label.css.ts +85 -0
- package/src/css/primitives/label/label.ts +9 -4
- package/src/css/primitives/label/types.ts +3 -2
- package/src/css/primitives/popover/popover.css.ts +6 -0
- package/src/css/primitives/popover/popover.ts +6 -5
- package/src/css/primitives/radio/radio.css.ts +78 -0
- package/src/css/primitives/radio/radio.ts +14 -3
- package/src/css/primitives/select/select.css.ts +24 -0
- package/src/css/primitives/select/select.ts +3 -3
- package/src/css/primitives/spinner/index.ts +1 -0
- package/src/css/primitives/spinner/spinner.css.ts +23 -0
- package/src/css/primitives/spinner/spinner.ts +7 -5
- package/src/css/primitives/spinner/types.ts +4 -0
- package/src/css/primitives/stack/stack.css.ts +6 -0
- package/src/css/primitives/stack/stack.ts +4 -3
- package/src/css/primitives/switch/switch.css.ts +98 -0
- package/src/css/primitives/switch/switch.ts +8 -7
- package/src/css/primitives/text/text.css.ts +85 -0
- package/src/css/primitives/text/text.ts +9 -5
- package/src/css/primitives/text/types.ts +3 -2
- package/src/css/primitives/textArea/textArea.css.ts +4 -0
- package/src/css/primitives/textArea/textArea.ts +2 -2
- package/src/css/primitives/textArea/types.ts +4 -2
- package/src/css/primitives/textInput/textInput.css.ts +41 -0
- package/src/css/primitives/textInput/textInput.ts +5 -5
- package/src/css/primitives/textInput/types.ts +4 -2
- package/src/css/primitives/tooltip/index.ts +1 -0
- package/src/css/primitives/tooltip/tooltip.css.ts +6 -0
- package/src/css/primitives/tooltip/tooltip.ts +7 -3
- package/src/css/primitives/tooltip/types.ts +4 -0
- package/src/css/props/alignItems/alignItems.css.ts +22 -0
- package/src/css/props/alignItems/alignItems.ts +8 -0
- package/src/css/props/alignItems/index.ts +2 -0
- package/src/css/props/alignItems/types.ts +9 -0
- package/src/css/props/border/border.css.ts +65 -0
- package/src/css/props/border/border.ts +36 -0
- package/src/css/props/border/types.ts +13 -0
- package/src/css/props/boxSizing/boxSizing.css.ts +11 -0
- package/src/css/props/boxSizing/boxSizing.ts +10 -0
- package/src/css/{aspects → props}/boxSizing/types.ts +1 -3
- package/src/css/props/display/display.css.ts +56 -0
- package/src/css/props/display/display.ts +17 -0
- package/src/css/props/flex/flex.css.ts +52 -0
- package/src/css/props/flex/flex.ts +8 -0
- package/src/css/props/flex/types.ts +9 -0
- package/src/css/props/flexDirection/flexDirection.css.ts +19 -0
- package/src/css/props/flexDirection/flexDirection.ts +8 -0
- package/src/css/props/flexDirection/index.ts +2 -0
- package/src/css/props/flexDirection/types.ts +9 -0
- package/src/css/props/flexWrap/flexWrap.css.ts +16 -0
- package/src/css/props/flexWrap/flexWrap.ts +8 -0
- package/src/css/props/flexWrap/index.ts +2 -0
- package/src/css/props/flexWrap/types.ts +9 -0
- package/src/css/props/font/font.css.ts +93 -0
- package/src/css/props/font/font.ts +8 -0
- package/src/css/props/gap/gap.css.ts +40 -0
- package/src/css/props/gap/gap.ts +13 -0
- package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +19 -0
- package/src/css/props/gridAutoColumns/gridAutoColumns.ts +8 -0
- package/src/css/props/gridAutoColumns/index.ts +2 -0
- package/src/css/props/gridAutoColumns/types.ts +19 -0
- package/src/css/props/gridAutoFlow/gridAutoFlow.css.ts +19 -0
- package/src/css/props/gridAutoFlow/gridAutoFlow.ts +8 -0
- package/src/css/props/gridAutoFlow/index.ts +2 -0
- package/src/css/props/gridAutoFlow/types.ts +13 -0
- package/src/css/props/gridAutoRows/gridAutoRows.css.ts +19 -0
- package/src/css/props/gridAutoRows/gridAutoRows.ts +8 -0
- package/src/css/props/gridAutoRows/index.ts +2 -0
- package/src/css/props/gridAutoRows/types.ts +13 -0
- package/src/css/props/gridColumn/gridColumn.css.ts +49 -0
- package/src/css/props/gridColumn/gridColumn.ts +8 -0
- package/src/css/props/gridColumn/index.ts +2 -0
- package/src/css/props/gridColumn/types.ts +19 -0
- package/src/css/props/gridColumnEnd/gridColumnEnd.css.ts +46 -0
- package/src/css/props/gridColumnEnd/gridColumnEnd.ts +8 -0
- package/src/css/props/gridColumnEnd/index.ts +2 -0
- package/src/css/props/gridColumnEnd/types.ts +19 -0
- package/src/css/props/gridColumnStart/gridColumnStart.css.ts +46 -0
- package/src/css/props/gridColumnStart/gridColumnStart.ts +11 -0
- package/src/css/props/gridColumnStart/index.ts +2 -0
- package/src/css/props/gridColumnStart/types.ts +19 -0
- package/src/css/props/gridRow/gridRow.css.ts +49 -0
- package/src/css/props/gridRow/gridRow.ts +8 -0
- package/src/css/props/gridRow/index.ts +2 -0
- package/src/css/props/gridRow/types.ts +19 -0
- package/src/css/props/gridRowEnd/gridRowEnd.css.ts +46 -0
- package/src/css/props/gridRowEnd/gridRowEnd.ts +8 -0
- package/src/css/props/gridRowEnd/index.ts +2 -0
- package/src/css/props/gridRowEnd/types.ts +19 -0
- package/src/css/props/gridRowStart/gridRowStart.css.ts +46 -0
- package/src/css/props/gridRowStart/gridRowStart.ts +8 -0
- package/src/css/props/gridRowStart/index.ts +2 -0
- package/src/css/props/gridRowStart/types.ts +19 -0
- package/src/css/props/gridTemplateColumns/gridTemplateColumns.css.ts +43 -0
- package/src/css/props/gridTemplateColumns/gridTemplateColumns.ts +8 -0
- package/src/css/props/gridTemplateColumns/index.ts +2 -0
- package/src/css/props/gridTemplateColumns/types.ts +19 -0
- package/src/css/props/gridTemplateRows/gridTemplateRows.css.ts +43 -0
- package/src/css/props/gridTemplateRows/gridTemplateRows.ts +8 -0
- package/src/css/props/gridTemplateRows/index.ts +2 -0
- package/src/css/props/gridTemplateRows/types.ts +19 -0
- package/src/css/props/height/height.css.ts +25 -0
- package/src/css/props/height/height.ts +8 -0
- package/src/css/{aspects → props}/height/index.ts +1 -0
- package/src/css/props/height/types.ts +15 -0
- package/src/css/{aspects → props}/index.ts +16 -3
- package/src/css/props/inset/inset.css.ts +37 -0
- package/src/css/props/inset/inset.ts +21 -0
- package/src/css/props/justifyContent/index.ts +2 -0
- package/src/css/props/justifyContent/justifyContent.css.ts +25 -0
- package/src/css/props/justifyContent/justifyContent.ts +8 -0
- package/src/css/props/justifyContent/types.ts +15 -0
- package/src/css/props/margin/margin.css.ts +117 -0
- package/src/css/props/margin/margin.ts +25 -0
- package/src/css/props/maxWidth/maxWidth.css.ts +32 -0
- package/src/css/props/maxWidth/maxWidth.ts +8 -0
- package/src/css/{aspects → props}/maxWidth/types.ts +4 -1
- package/src/css/props/minHeight/minHeight.css.ts +13 -0
- package/src/css/props/minHeight/minHeight.ts +8 -0
- package/src/css/props/minWidth/minWidth.css.ts +25 -0
- package/src/css/props/minWidth/minWidth.ts +8 -0
- package/src/css/props/outline/index.ts +2 -0
- package/src/css/props/outline/outline.css.ts +10 -0
- package/src/css/props/outline/outline.ts +8 -0
- package/src/css/props/outline/types.ts +7 -0
- package/src/css/props/overflow/overflow.css.ts +16 -0
- package/src/css/props/overflow/overflow.ts +8 -0
- package/src/css/props/overflow/types.ts +17 -0
- package/src/css/props/padding/padding.css.ts +87 -0
- package/src/css/props/padding/padding.ts +25 -0
- package/src/css/props/padding/types.ts +17 -0
- package/src/css/props/pointerEvents/pointerEvents.css.ts +13 -0
- package/src/css/props/pointerEvents/pointerEvents.ts +8 -0
- package/src/css/props/position/position.css.ts +22 -0
- package/src/css/props/position/position.ts +8 -0
- package/src/css/props/radius/radius.css.ts +21 -0
- package/src/css/props/radius/radius.ts +8 -0
- package/src/css/props/shadow/shadow.css.ts +23 -0
- package/src/css/props/shadow/shadow.ts +8 -0
- package/src/css/props/textAlign/textAlign.css.ts +22 -0
- package/src/css/props/textAlign/textAlign.ts +8 -0
- package/src/css/props/textOverflow/textOverflow.css.ts +13 -0
- package/src/css/props/textOverflow/textOverflow.ts +8 -0
- package/src/css/{aspects → props}/textOverflow/types.ts +5 -2
- package/src/css/{aspects → props}/width/types.ts +1 -1
- package/src/css/props/width/width.css.ts +28 -0
- package/src/css/props/width/width.ts +8 -0
- package/src/css/types.ts +223 -42
- package/src/css/util.ts +0 -10
- package/src/css/utils/index.ts +1 -0
- package/src/css/utils/srOnly/srOnly.css.ts +10 -0
- package/src/css/utils/srOnly/srOnly.ts +3 -3
- package/src/css/vars.css.ts +676 -0
- package/src/theme/v3/buildTheme_v3.ts +7 -2
- package/src/theme/v3/defaultFonts.ts +4 -4
- package/src/theme/v3/defaultTokens.ts +3 -3
- package/src/theme/v3/types.ts +3 -2
- package/src/theme/versioning/v3_v2.ts +24 -3
- package/dist/_chunks-cjs/buildCommand.cjs +0 -71
- package/dist/_chunks-cjs/buildCommand.cjs.map +0 -1
- package/dist/cli.cjs +0 -357
- package/dist/cli.cjs.map +0 -1
- package/dist/cli.d.cts +0 -1
- package/dist/ui-system.css +0 -24528
- package/dist/ui-system.min.css +0 -1
- package/dist/ui-theme.css +0 -1184
- package/dist/ui-theme.min.css +0 -1
- package/dist/ui.min.css +0 -1
- package/src/core/StyleTags.tsx +0 -18
- package/src/css/_compileStyle.ts +0 -156
- package/src/css/_compileSystem.ts +0 -7
- package/src/css/_compileTheme.ts +0 -13
- package/src/css/_hash.ts +0 -9
- package/src/css/_mergeStyles.ts +0 -24
- package/src/css/_resp.ts +0 -31
- package/src/css/_responsiveRule.ts +0 -38
- package/src/css/_scopeClassName.ts +0 -9
- package/src/css/_scopeClassNames.ts +0 -12
- package/src/css/_system.style.ts +0 -166
- package/src/css/aspects/border/border.style.ts +0 -13
- package/src/css/aspects/border/border.ts +0 -14
- package/src/css/aspects/border/types.ts +0 -10
- package/src/css/aspects/boxSizing/boxSizing.style.ts +0 -10
- package/src/css/aspects/boxSizing/boxSizing.ts +0 -8
- package/src/css/aspects/display/display.style.ts +0 -34
- package/src/css/aspects/display/display.ts +0 -8
- package/src/css/aspects/flex/flex.ts +0 -13
- package/src/css/aspects/flex/flexAlign.style.ts +0 -12
- package/src/css/aspects/flex/flexDirection.style.ts +0 -11
- package/src/css/aspects/flex/flexJustify.style.ts +0 -13
- package/src/css/aspects/flex/flexWrap.style.ts +0 -10
- package/src/css/aspects/flex/types.ts +0 -27
- package/src/css/aspects/flexItem/flex.style.ts +0 -22
- package/src/css/aspects/flexItem/flexItem.ts +0 -8
- package/src/css/aspects/flexItem/index.ts +0 -2
- package/src/css/aspects/flexItem/types.ts +0 -25
- package/src/css/aspects/font/font.style.ts +0 -83
- package/src/css/aspects/font/font.ts +0 -7
- package/src/css/aspects/gap/gap.style.ts +0 -21
- package/src/css/aspects/gap/gap.ts +0 -8
- package/src/css/aspects/grid/grid.ts +0 -14
- package/src/css/aspects/grid/gridAutoColumns.style.ts +0 -11
- package/src/css/aspects/grid/gridAutoFlow.style.ts +0 -11
- package/src/css/aspects/grid/gridAutoRows.style.ts +0 -11
- package/src/css/aspects/grid/gridColumns.style.ts +0 -18
- package/src/css/aspects/grid/gridRows.style.ts +0 -18
- package/src/css/aspects/grid/index.ts +0 -2
- package/src/css/aspects/grid/types.ts +0 -25
- package/src/css/aspects/gridItem/gridColumn.style.ts +0 -20
- package/src/css/aspects/gridItem/gridColumnEnd.style.ts +0 -20
- package/src/css/aspects/gridItem/gridColumnStart.style.ts +0 -20
- package/src/css/aspects/gridItem/gridItem.ts +0 -15
- package/src/css/aspects/gridItem/gridRow.style.ts +0 -20
- package/src/css/aspects/gridItem/gridRowEnd.style.ts +0 -20
- package/src/css/aspects/gridItem/gridRowStart.style.ts +0 -20
- package/src/css/aspects/gridItem/index.ts +0 -2
- package/src/css/aspects/gridItem/types.ts +0 -30
- package/src/css/aspects/height/height.style.ts +0 -9
- package/src/css/aspects/height/height.ts +0 -16
- package/src/css/aspects/inset/inset.style.ts +0 -12
- package/src/css/aspects/inset/inset.ts +0 -14
- package/src/css/aspects/margin/margin.style.ts +0 -56
- package/src/css/aspects/margin/margin.ts +0 -16
- package/src/css/aspects/maxWidth/maxWidth.style.ts +0 -16
- package/src/css/aspects/maxWidth/maxWidth.ts +0 -8
- package/src/css/aspects/minHeight/minHeight.style.ts +0 -9
- package/src/css/aspects/minHeight/minHeight.ts +0 -8
- package/src/css/aspects/minWidth/minWidth.style.ts +0 -13
- package/src/css/aspects/minWidth/minWidth.ts +0 -8
- package/src/css/aspects/outline/outline.style.ts +0 -9
- package/src/css/aspects/overflow/overflow.style.ts +0 -11
- package/src/css/aspects/overflow/overflow.ts +0 -12
- package/src/css/aspects/overflow/types.ts +0 -11
- package/src/css/aspects/padding/padding.style.ts +0 -43
- package/src/css/aspects/padding/padding.ts +0 -16
- package/src/css/aspects/padding/types.ts +0 -14
- package/src/css/aspects/pointerEvents/pointerEvents.style.ts +0 -13
- package/src/css/aspects/pointerEvents/pointerEvents.ts +0 -7
- package/src/css/aspects/position/position.style.ts +0 -12
- package/src/css/aspects/position/position.ts +0 -8
- package/src/css/aspects/radius/radius.style.ts +0 -16
- package/src/css/aspects/radius/radius.ts +0 -8
- package/src/css/aspects/shadow/shadow.style.ts +0 -24
- package/src/css/aspects/shadow/shadow.ts +0 -8
- package/src/css/aspects/textAlign/textAlign.style.ts +0 -26
- package/src/css/aspects/textAlign/textAlign.ts +0 -8
- package/src/css/aspects/textOverflow/textOverflow.style.ts +0 -21
- package/src/css/aspects/textOverflow/textOverflow.ts +0 -7
- package/src/css/aspects/width/width.style.ts +0 -11
- package/src/css/aspects/width/width.ts +0 -8
- package/src/css/components/breadcrumbs/breadcrumbs.style.ts +0 -9
- package/src/css/components/dialog/dialog.style.ts +0 -77
- package/src/css/components/menu/menu.style.ts +0 -17
- package/src/css/components/skeleton/skeleton.style.ts +0 -104
- package/src/css/components/toast/toast.style.ts +0 -20
- package/src/css/components/tree/tree.style.ts +0 -39
- package/src/css/prefix/constants.ts +0 -6
- package/src/css/prefix/index.ts +0 -2
- package/src/css/prefix/types.ts +0 -1
- package/src/css/primitives/_arrow/_arrow.style.ts +0 -69
- package/src/css/primitives/_input/_input.style.ts +0 -235
- package/src/css/primitives/_selectable/_selectable.style.ts +0 -129
- package/src/css/primitives/avatar/avatar.style.ts +0 -171
- package/src/css/primitives/badge/badge.style.ts +0 -21
- package/src/css/primitives/box/box.style.ts +0 -22
- package/src/css/primitives/button/button.style.ts +0 -275
- package/src/css/primitives/card/card.style.ts +0 -295
- package/src/css/primitives/checkbox/checkbox.style.ts +0 -178
- package/src/css/primitives/code/code.style.ts +0 -61
- package/src/css/primitives/container/container.style.ts +0 -10
- package/src/css/primitives/heading/heading.style.ts +0 -56
- package/src/css/primitives/kbd/kbd.style.ts +0 -19
- package/src/css/primitives/label/label.style.ts +0 -52
- package/src/css/primitives/popover/popover.style.ts +0 -9
- package/src/css/primitives/radio/radio.style.ts +0 -84
- package/src/css/primitives/select/select.style.ts +0 -24
- package/src/css/primitives/spinner/spinner.style.ts +0 -22
- package/src/css/primitives/stack/stack.style.ts +0 -13
- package/src/css/primitives/switch/switch.style.ts +0 -102
- package/src/css/primitives/text/text.style.ts +0 -65
- package/src/css/primitives/textArea/textArea.style.ts +0 -11
- package/src/css/primitives/textInput/textInput.style.ts +0 -46
- package/src/css/primitives/token/token.style.ts +0 -50
- package/src/css/primitives/tooltip/tooltip.style.ts +0 -9
- package/src/css/renderColor.ts +0 -31
- package/src/css/responsiveRules.ts +0 -18
- package/src/css/theme/index.ts +0 -14
- package/src/css/theme/lib/contract/buildVarContract.ts +0 -76
- package/src/css/theme/lib/contract/index.ts +0 -2
- package/src/css/theme/lib/contract/types.ts +0 -15
- package/src/css/theme/resolveTheme.ts +0 -863
- package/src/css/utils/srOnly/srOnly.style.ts +0 -14
- package/src/css/{aspects → props}/border/index.ts +0 -0
- package/src/css/{aspects → props}/boxSizing/index.ts +0 -0
- package/src/css/{aspects → props}/display/index.ts +0 -0
- package/src/css/{aspects → props}/display/types.ts +0 -0
- package/src/css/{aspects → props}/flex/index.ts +0 -0
- package/src/css/{aspects → props}/font/index.ts +0 -0
- package/src/css/{aspects → props}/font/types.ts +0 -0
- package/src/css/{aspects → props}/gap/index.ts +0 -0
- package/src/css/{aspects → props}/gap/types.ts +0 -0
- package/src/css/{aspects → props}/inset/index.ts +0 -0
- package/src/css/{aspects → props}/inset/types.ts +0 -0
- package/src/css/{aspects → props}/margin/index.ts +0 -0
- package/src/css/{aspects → props}/margin/types.ts +2 -2
- /package/src/css/{aspects → props}/maxWidth/index.ts +0 -0
- /package/src/css/{aspects → props}/minHeight/index.ts +0 -0
- /package/src/css/{aspects → props}/minHeight/types.ts +0 -0
- /package/src/css/{aspects → props}/minWidth/index.ts +0 -0
- /package/src/css/{aspects → props}/minWidth/types.ts +0 -0
- /package/src/css/{aspects → props}/overflow/index.ts +0 -0
- /package/src/css/{aspects → props}/padding/index.ts +0 -0
- /package/src/css/{aspects → props}/pointerEvents/index.ts +0 -0
- /package/src/css/{aspects → props}/pointerEvents/types.ts +0 -0
- /package/src/css/{aspects → props}/position/index.ts +0 -0
- /package/src/css/{aspects → props}/position/types.ts +0 -0
- /package/src/css/{aspects → props}/radius/index.ts +0 -0
- /package/src/css/{aspects → props}/radius/types.ts +0 -0
- /package/src/css/{aspects → props}/shadow/index.ts +0 -0
- /package/src/css/{aspects → props}/shadow/types.ts +0 -0
- /package/src/css/{aspects → props}/textAlign/index.ts +0 -0
- /package/src/css/{aspects → props}/textAlign/types.ts +0 -0
- /package/src/css/{aspects → props}/textOverflow/index.ts +0 -0
- /package/src/css/{aspects → props}/width/index.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_visual-editing.cjs","sources":["../../src/core/lib/globalScope.ts","../../src/core/lib/createGlobalScopedContext.ts","../../src/core/primitives/card/cardContext.ts","../../src/core/primitives/card/cardProvider.tsx","../../src/core/_compat/theme/themeContext.ts","../../src/core/_compat/theme/themeProvider.tsx","../../src/core/_compat/theme/useRootTheme.ts","../../src/core/_compat/theme/themeColorProvider.tsx","../../src/core/_compat/theme/useTheme.ts","../../src/core/constants.ts","../../src/core/helpers/element.ts","../../src/core/helpers/props.ts","../../src/core/helpers/scroll.ts","../../src/core/hooks/useArrayProp.ts","../../src/core/hooks/useClickOutsideEvent.ts","../../src/core/hooks/useCustomValidity.ts","../../src/core/observers/resizeObserver.ts","../../src/core/observers/elementSizeObserver.ts","../../src/core/hooks/useElementSize.ts","../../src/core/hooks/useGlobalKeyDown.ts","../../src/core/hooks/useMatchMedia.ts","../../src/core/hooks/useMediaIndex/useMediaIndex.ts","../../src/core/hooks/usePrefersDark.ts","../../src/core/hooks/usePrefersReducedMotion.ts","../../src/core/primitives/box/box.tsx","../../src/core/primitives/label/label.tsx","../../src/core/primitives/avatar/avatar.tsx","../../src/core/primitives/avatar/avatarCounter.tsx","../../src/core/primitives/avatar/avatarStack.tsx","../../src/core/primitives/text/text.tsx","../../src/core/primitives/badge/badge.tsx","../../src/core/primitives/spinner/animatedSpinnerIcon.tsx","../../src/core/primitives/spinner/spinner.tsx","../../src/core/primitives/button/button.tsx","../../src/core/primitives/card/useCard.ts","../../src/core/primitives/card/card.tsx","../../src/core/primitives/checkbox/checkbox.tsx","../../src/core/primitives/code/code.tsx","../../src/core/primitives/container/container.tsx","../../src/core/primitives/flex/flex.tsx","../../src/core/primitives/grid/grid.tsx","../../src/core/primitives/heading/heading.tsx","../../src/core/primitives/inline/inline.tsx","../../src/core/primitives/kbd/kbd.tsx","../../src/core/middleware/origin.ts","../../src/core/utils/arrow/cmds.ts","../../src/core/utils/arrow/arrow.tsx","../../src/core/utils/boundaryElement/boundaryElementContext.ts","../../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../../src/core/lib/isRecord.ts","../../src/core/utils/boundaryElement/useBoundaryElement.ts","../../src/core/utils/elementQuery/helpers.ts","../../src/core/utils/elementQuery/elementQuery.tsx","../../src/core/utils/layer/getLayerContext.ts","../../src/core/utils/layer/layerContext.ts","../../src/core/utils/layer/useLayer.ts","../../src/core/utils/layer/layerCard.tsx","../../src/core/utils/layer/layerProvider.tsx","../../src/core/utils/layer/layer.tsx","../../src/core/utils/portal/portalContext.ts","../../src/core/utils/portal/usePortal.ts","../../src/core/utils/portal/portal.tsx","../../src/core/utils/portal/portalProvider.tsx","../../src/core/utils/srOnly/srOnly.tsx","../../src/core/utils/virtualList/virtualList.tsx","../../src/core/primitives/popover/constants.ts","../../src/core/primitives/popover/floating-ui/size.ts","../../src/core/primitives/popover/popoverLayer.tsx","../../src/core/primitives/popover/popover.tsx","../../src/core/primitives/radio/radio.tsx","../../src/core/primitives/select/select.tsx","../../src/core/primitives/stack/stack.tsx","../../src/core/primitives/switch/switch.tsx","../../src/core/primitives/textArea/textArea.tsx","../../src/core/primitives/textInput/textInput.tsx","../../src/core/hooks/useDelayedState.ts","../../src/core/utils/getElementRef.ts","../../src/core/primitives/tooltip/constants.ts","../../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../../src/core/primitives/tooltip/tooltipLayer.tsx","../../src/core/primitives/tooltip/tooltip.tsx","../../src/core/components/hotkeys/hotkeys.tsx","../../src/core/components/menu/menuContext.ts","../../src/core/components/menu/helpers.ts","../../src/core/components/menu/useMenuController.ts","../../src/core/components/menu/menu.tsx","../../src/core/components/menu/menuDivider.tsx","../../src/core/primitives/_selectable/selectable.tsx","../../src/core/components/menu/useMenu.ts","../../src/core/components/menu/menuGroup.tsx","../../src/core/components/menu/menuItem.tsx","../../src/core/components/tab/tab.tsx","../../src/core/components/tab/tabList.tsx"],"sourcesContent":["/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {type Context, createContext} from 'react'\n\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/context/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n return createContext<ContextType>(defaultValue)\n }\n\n globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n return globalScope[symbol]\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {CardContextValue} from './types'\n\n/**\n * @internal\n */\nexport const CardContext: Context<CardContextValue | null> =\n createGlobalScopedContext<CardContextValue | null>('@sanity/ui/context/card', null)\n","import type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {type ReactNode, useMemo} from 'react'\n\nimport {CardContext} from './cardContext'\nimport type {_CardCompatProviderComponent} from './types'\n\nexport function CardProvider(props: {\n children?: ReactNode\n tone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n unstable_CompatProvider?: _CardCompatProviderComponent\n}) {\n const {children, tone, scheme, unstable_CompatProvider} = props\n\n return (\n <CardContext.Provider\n value={useMemo(\n () => ({tone, scheme, unstable_CompatProvider}),\n [tone, scheme, unstable_CompatProvider],\n )}\n >\n {children}\n </CardContext.Provider>\n )\n}\n\nCardProvider.displayName = 'CardProvider'\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext: Context<ThemeContextValue | null> =\n createGlobalScopedContext<ThemeContextValue | null>('@sanity/ui/context/theme', null)\n","import {\n getScopedTheme,\n type RootTheme,\n type Theme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n} from '@sanity/ui/theme'\nimport {type ReactElement, type ReactNode, useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\n\nimport {CardProvider} from '../../primitives/card/cardProvider'\nimport {ThemeColorProvider} from './themeColorProvider'\nimport {ThemeContext} from './themeContext'\nimport type {ThemeContextValue} from './types'\n\n/** @public */\nexport interface ThemeProviderProps {\n children?: ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/** @public */\nexport function ThemeProvider(props: ThemeProviderProps): ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {children} = props\n const scheme = props.scheme ?? (parentTheme?.scheme || 'light')\n const rootTheme = props.theme ?? (parentTheme?.theme || null)\n const tone = props.tone ?? (parentTheme?.tone || 'default')\n\n const themeContext: ThemeContextValue | null = useMemo(() => {\n if (!rootTheme) return null\n\n return {\n version: 0.0,\n theme: rootTheme,\n scheme,\n tone,\n }\n }, [rootTheme, scheme, tone])\n\n const theme: Theme | null = useMemo(() => {\n if (!rootTheme) return null\n\n return getScopedTheme(rootTheme, scheme, tone)\n }, [scheme, rootTheme, tone])\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <CardProvider\n scheme={scheme}\n tone={tone}\n unstable_CompatProvider={\n // Render a theme provider around the card if the scheme or tone differs from the root theme.\n // This is needed for backwards compatibility with the legacy theme API.\n ThemeColorProvider\n }\n >\n <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n </CardProvider>\n )\n}\n\nThemeProvider.displayName = 'ThemeProvider'\n","import {useContext} from 'react'\n\nimport {ThemeContext} from './themeContext'\nimport type {ThemeContextValue} from './types'\n\n/** @public */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport type {ReactElement, ReactNode} from 'react'\n\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/** @public */\nexport interface ThemeColorProviderProps {\n children?: ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/** @public */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): 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\nThemeColorProvider.displayName = 'ThemeColorProvider'\n","import {getTheme_v2, type Theme, type Theme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/** @public */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/** @public */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import type {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\nconst POPOVER_MOTION_DURATION = 0.2\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n card: {\n initial: Variant\n hidden: Variant\n visible: Variant\n scaleIn: Variant\n scaleOut: Variant\n }\n children: {\n hidden: Variant\n visible: Variant\n }\n transition: Transition\n} = {\n card: {\n initial: {\n scale: 0.97,\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n duration: POPOVER_MOTION_DURATION / 2,\n },\n },\n scaleIn: {\n scale: 1,\n },\n scaleOut: {\n scale: 0.97,\n },\n },\n children: {\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n },\n transition: {\n type: 'spring',\n visualDuration: POPOVER_MOTION_DURATION,\n bounce: 0.25,\n },\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n\nexport const Z_OFFSETS = {\n dialog: 600,\n popover: 400,\n tooltip: 200,\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","import {EMPTY_ARRAY} from '../constants'\n\n/**\n * @internal\n */\nexport function _getArrayProp<T>(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 * @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 {useState} from 'react'\n\nimport {_getArrayProp} from '../helpers'\n\n/** @beta */\n// export type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\n// export function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(\nexport function useArrayProp<T>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n const [[cachedVal, cachedHash], setCache] = useState<[T[], string]>(() => [\n _getArrayProp(val, defaultVal),\n JSON.stringify(val ?? defaultVal),\n ])\n\n const hash = JSON.stringify(val ?? defaultVal)\n\n if (hash !== cachedHash) {\n // If the cached hash has changed, update the cache right away.\n // Calling setState during render is fine in this case, and preferred over a useEffect loop\n // https://19.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n setCache([_getArrayProp(val, defaultVal), hash])\n }\n\n return cachedVal\n}\n","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/** @public */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/** @public */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/** @public */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\n\nimport {_elementSizeObserver, type ElementSize} 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 {useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))\n\n useEffect(() => {\n const handler = (event: KeyboardEvent) => handleKeyDown(event)\n\n window.addEventListener('keydown', handler)\n\n return () => window.removeEventListener('keydown', handler)\n }, [])\n}\n","import {useCallback, useDebugValue, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n mediaQueryString: `(${string})`,\n getServerSnapshot?: () => boolean,\n): boolean {\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(\n useCallback(\n (onStoreChange) => {\n const media = window.matchMedia(mediaQueryString)\n media.addEventListener('change', onStoreChange)\n return () => media.removeEventListener('change', onStoreChange)\n },\n [mediaQueryString],\n ),\n () => window.matchMedia(mediaQueryString).matches,\n getServerSnapshot,\n )\n}\n","import {type Breakpoint, BREAKPOINTS} from '@sanity/ui/css'\nimport {useMemo, useSyncExternalStore} from 'react'\n\nconst media = Object.values(BREAKPOINTS)\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => Breakpoint\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index + 1] - 1}px)`\n }\n\n if (index === media.length - 1) {\n return `screen and (min-width: ${media[index]}px)`\n }\n\n return `screen and (min-width: ${media[index]}px) and (max-width: ${media[index + 1] - 1}px)`\n}\n\nfunction _createMediaStore(): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index as Breakpoint\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot(): Breakpoint {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): Breakpoint {\n const store = useMemo(() => _createMediaStore(), [])\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import type {\n BoxStyleProps,\n GapStyleProps,\n InsetStyleProps,\n PositionStyleProps,\n} from '@sanity/ui/css'\nimport {_composeClassNames, box} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_BOX_ELEMENT = 'div'\n\n/** @public */\nexport type BoxOwnProps = BoxStyleProps & GapStyleProps & InsetStyleProps & PositionStyleProps\n\n/** @public */\nexport type BoxElementType =\n | 'a'\n | 'article'\n | 'aside'\n | 'blockquote'\n | 'body'\n | 'button'\n | 'details'\n | 'div'\n | 'header'\n | 'fieldset'\n | 'figure'\n | 'figcaption'\n | 'footer'\n | 'form'\n | 'html'\n | 'iframe'\n | 'kbd'\n | 'label'\n | 'legend'\n | 'li'\n | 'main'\n | 'nav'\n | 'ol'\n | 'pre'\n | 'section'\n | 'span'\n | 'summary'\n | 'ul'\n | ComponentType\n\n/** @public */\nexport type BoxProps<E extends BoxElementType = BoxElementType> = Props<BoxOwnProps, E>\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport function Box<E extends BoxElementType = typeof DEFAULT_BOX_ELEMENT>(props: BoxProps<E>) {\n const {\n align,\n as: Element = DEFAULT_BOX_ELEMENT,\n autoCols,\n autoFlow,\n autoRows,\n border = false,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n className,\n children,\n column,\n columnStart,\n columnEnd,\n columns,\n direction,\n display = 'block',\n flex,\n gap,\n gapX,\n gapY,\n height,\n inset,\n insetBottom,\n insetLeft,\n insetRight,\n insetTop,\n justify,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n minHeight = 0,\n minWidth = 0,\n muted,\n outline,\n overflow,\n overflowX,\n overflowY,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n radius,\n row,\n rows,\n rowStart,\n rowEnd,\n sizing = 'border',\n textAlign,\n width,\n wrap,\n ...rest\n } = props as BoxProps<typeof DEFAULT_BOX_ELEMENT>\n\n return (\n <Element\n data-ui=\"Box\"\n {...rest}\n className={_composeClassNames(\n className,\n box({\n align,\n autoCols,\n autoFlow,\n autoRows,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n column,\n columnStart,\n columnEnd,\n columns,\n direction,\n display,\n flex,\n gap,\n gapX,\n gapY,\n height,\n inset,\n insetBottom,\n insetLeft,\n insetRight,\n insetTop,\n justify,\n margin,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n minHeight,\n minWidth,\n muted,\n outline,\n overflow,\n overflowX,\n overflowY,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n radius,\n row,\n rows,\n rowStart,\n rowEnd,\n sizing,\n textAlign,\n width,\n wrap,\n }),\n )}\n >\n {children}\n </Element>\n )\n}\n\nBox.displayName = 'Box'\n","import {\n _composeClassNames,\n label,\n type LabelStyleProps,\n textOverflow,\n type TextOverflowStyleProps,\n} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_LABEL_ELEMENT = 'div'\n\n/** @public */\nexport type LabelOwnProps = LabelStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type LabelElementType =\n | 'div'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'label'\n | 'li'\n | 'p'\n | 'span'\n | ComponentType\n\n/** @public */\nexport type LabelProps<E extends LabelElementType = LabelElementType> = Props<LabelOwnProps, E>\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport function Label<E extends LabelElementType = typeof DEFAULT_LABEL_ELEMENT>(\n props: LabelProps<E>,\n) {\n const {\n accent,\n align,\n as: Element = DEFAULT_LABEL_ELEMENT,\n children,\n className,\n muted = false,\n size = 1,\n textOverflow: textOverflowProp,\n weight = 'regular',\n ...rest\n } = props\n\n return (\n <Element\n data-ui=\"Label\"\n {...rest}\n className={_composeClassNames(\n className,\n label({\n accent,\n align,\n muted,\n size,\n weight,\n }),\n )}\n >\n <span\n className={textOverflow({\n textOverflow: textOverflowProp,\n })}\n >\n {children}\n </span>\n </Element>\n )\n}\n\nLabel.displayName = 'Label'\n","import {\n _composeClassNames,\n avatar,\n avatarArrow,\n avatarImage,\n avatarInitials,\n type ResponsiveProp,\n} from '@sanity/ui/css'\nimport type {AvatarColor} from '@sanity/ui/theme'\nimport {useCallback, useEffect, useMemo, useState} from 'react'\n\nimport {useArrayProp} from '../../hooks'\nimport type {AvatarPosition, AvatarSize, AvatarStatus, ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Label} from '../label'\n\n/** @public */\nexport const DEFAULT_AVATAR_ELEMENT = 'div'\n\n/** @public */\nexport interface AvatarOwnProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n color?: AvatarColor\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: ResponsiveProp<AvatarSize>\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @deprecated Will be removed in next major version.\n */\n status?: AvatarStatus\n title?: string\n}\n\n/** @public */\nexport type AvatarElementType = 'a' | 'button' | 'div' | 'span' | ComponentType\n\n/** @public */\nexport type AvatarProps<E extends AvatarElementType = AvatarElementType> = Props<AvatarOwnProps, E>\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport function Avatar<E extends AvatarElementType = typeof DEFAULT_AVATAR_ELEMENT>(\n props: AvatarProps<E>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: Element = DEFAULT_AVATAR_ELEMENT,\n className,\n color = 'magenta',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n status = 'online',\n size: sizeProp = 1,\n ...rest\n } = props as AvatarProps<typeof DEFAULT_AVATAR_ELEMENT>\n\n const size = useArrayProp(sizeProp)\n\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageError, setImageError] = useState<boolean>(false)\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) setImageError(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageError(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <Element\n data-hide-inner-stroke={__unstable_hideInnerStroke ? '' : undefined}\n data-ui=\"Avatar\"\n {...rest}\n aria-label={title}\n className={_composeClassNames(className, avatar({color, size: sizeProp}))}\n data-arrow-position={arrowPosition}\n data-image-error={imageError ? '' : undefined}\n title={title}\n >\n <span className={avatarArrow()}>\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 </span>\n\n <Box\n align=\"center\"\n as=\"span\"\n className={avatarInitials()}\n display=\"flex\"\n justify=\"center\"\n position=\"absolute\"\n inset={0}\n >\n <Label align=\"center\" as=\"span\" size={initialsSize} weight=\"medium\">\n {initials}\n </Label>\n </Box>\n\n {src && (\n <Box className={avatarImage()} inset={0} position=\"absolute\">\n <img alt={initials} onError={handleImageError} src={src} />\n <span />\n </Box>\n )}\n </Element>\n )\n}\n\nAvatar.displayName = 'Avatar'\n","import {_composeClassNames, avatarCounter, type ResponsiveProp} from '@sanity/ui/css'\nimport type {AvatarSize, FontLabelSize} from '@sanity/ui/theme'\nimport {useMemo} from 'react'\n\nimport {useArrayProp} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Label} from '../label'\n\n/** @public */\nexport const DEFAULT_AVATAR_COUNTER_ELEMENT = 'div'\n\n/** @public */\nexport interface AvatarCounterOwnProps {\n count: number\n size?: ResponsiveProp<AvatarSize>\n}\n\n/** @public */\nexport type AvatarCounterElementType = 'button' | 'div' | 'span' | ComponentType\n\n/** @public */\nexport type AvatarCounterProps<E extends AvatarCounterElementType = AvatarCounterElementType> =\n Props<AvatarCounterOwnProps, E>\n\n/** @public */\nexport function AvatarCounter<\n E extends AvatarCounterElementType = typeof DEFAULT_AVATAR_COUNTER_ELEMENT,\n>(props: AvatarCounterProps<E>) {\n const {\n as = DEFAULT_AVATAR_COUNTER_ELEMENT,\n className,\n count,\n size: sizeProp = 1,\n ...rest\n } = props as AvatarCounterProps<typeof DEFAULT_AVATAR_COUNTER_ELEMENT>\n const size = useArrayProp(sizeProp)\n\n const labelSize: FontLabelSize[] = useMemo(\n () =>\n size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }),\n [size],\n )\n\n return (\n <Box\n data-ui=\"AvatarCounter\"\n {...rest}\n align=\"center\"\n as={as}\n className={_composeClassNames(className, avatarCounter({size}))}\n display=\"flex\"\n justify=\"center\"\n paddingX={2}\n sizing=\"border\"\n >\n <Label align=\"center\" as=\"span\" size={labelSize} weight=\"medium\">\n {count}\n </Label>\n </Box>\n )\n}\n\nAvatarCounter.displayName = 'AvatarCounter'\n","import {_composeClassNames, avatarStack, type ResponsiveProp} from '@sanity/ui/css'\nimport type {AvatarSize} from '@sanity/ui/theme'\nimport {Children, cloneElement, isValidElement, type ReactElement} from 'react'\n\nimport {useArrayProp} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\nimport {Box, type BoxOwnProps} from '../box'\nimport type {AvatarProps} from './avatar'\nimport {AvatarCounter} from './avatarCounter'\n\n/** @public */\nexport const DEFAULT_AVATAR_STACK_ELEMENT = 'div'\n\n/** @public */\nexport type AvatarStackChild = ReactElement<AvatarProps<'div'>> | null | undefined | false\n\n/** @public */\nexport type AvatarStackOwnProps = Omit<BoxOwnProps, 'align' | 'display'> & {\n children: AvatarStackChild | AvatarStackChild[]\n maxLength?: number\n size?: ResponsiveProp<AvatarSize>\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/** @public */\nexport type AvatarStackElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type AvatarStackProps<E extends AvatarStackElementType = AvatarStackElementType> = Props<\n AvatarStackOwnProps,\n E\n>\n\n/** @public */\nexport function AvatarStack<E extends AvatarStackElementType = typeof DEFAULT_AVATAR_STACK_ELEMENT>(\n props: AvatarStackProps<E>,\n) {\n const {\n as = DEFAULT_AVATAR_STACK_ELEMENT,\n children: childrenProp,\n className,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...rest\n } = props as AvatarStackProps<typeof DEFAULT_AVATAR_STACK_ELEMENT>\n\n const children = Children.toArray(childrenProp).filter(isValidElement) as ReactElement<\n AvatarProps<'div'>\n >[]\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 <Box\n data-ui=\"AvatarStack\"\n {...rest}\n align=\"center\"\n as={as}\n className={_composeClassNames(className, avatarStack({size}))}\n display=\"flex\"\n >\n {len === 0 && (\n <Box flex=\"none\">\n <AvatarCounter count={len} size={size} />\n </Box>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <Box flex=\"none\">\n <AvatarCounter count={extraCount} size={size} />\n </Box>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n <Box flex=\"none\" key={String(childIndex)}>\n {cloneElement(child, {size})}\n </Box>\n ))}\n </Box>\n )\n}\n\nAvatarStack.displayName = 'AvatarStack'\n","import {\n _composeClassNames,\n text,\n textOverflow,\n type TextOverflowStyleProps,\n type TextStyleProps,\n} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TEXT_ELEMENT = 'div'\n\n/** @public */\nexport type TextOwnProps = TextStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type TextElementType =\n | 'div'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'label'\n | 'li'\n | 'p'\n | 'span'\n | ComponentType\n\n/** @public */\nexport type TextProps<E extends TextElementType = TextElementType> = Props<TextOwnProps, E>\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport function Text<E extends TextElementType = typeof DEFAULT_TEXT_ELEMENT>(props: TextProps<E>) {\n const {\n accent,\n align,\n as: Element = DEFAULT_TEXT_ELEMENT,\n children,\n className,\n flex,\n muted,\n size = 2,\n textOverflow: textOverflowProp,\n weight = 'regular',\n ...rest\n } = props as TextProps<typeof DEFAULT_TEXT_ELEMENT>\n\n return (\n <Element\n data-ui=\"Text\"\n {...rest}\n className={_composeClassNames(\n className,\n text({\n accent,\n align,\n flex,\n muted,\n size,\n weight,\n }),\n )}\n >\n <span\n className={textOverflow({\n textOverflow: textOverflowProp,\n })}\n >\n {children}\n </span>\n </Element>\n )\n}\n\nText.displayName = 'Text'\n","import type {PaddingStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {_composeClassNames, badge} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {BadgeTone, ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/** @public */\nexport const DEFAULT_BADGE_ELEMENT = 'span'\n\n/** @public */\nexport type BadgeOwnProps = PaddingStyleProps &\n RadiusStyleProps & {\n fontSize?: ResponsiveProp<FontTextSize>\n tone?: BadgeTone\n }\n\n/** @public */\nexport type BadgeElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type BadgeProps<E extends BadgeElementType = BadgeElementType> = Props<BadgeOwnProps, E>\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport function Badge<E extends BadgeElementType = typeof DEFAULT_BADGE_ELEMENT>(\n props: BadgeProps<E>,\n) {\n const {\n as = DEFAULT_BADGE_ELEMENT,\n children,\n className,\n fontSize = 1,\n padding = 1,\n radius = 2,\n tone = 'default',\n ...rest\n } = props as BadgeProps<typeof DEFAULT_BADGE_ELEMENT>\n\n return (\n <Box\n data-ui=\"Badge\"\n {...rest}\n as={as}\n className={_composeClassNames(\n className,\n badge({\n radius,\n tone,\n }),\n )}\n display=\"inline-flex\"\n maxWidth=\"fill\"\n padding={padding}\n >\n <Text size={fontSize}>{children}</Text>\n </Box>\n )\n}\n\nBadge.displayName = 'Badge'\n","import {SpinnerIcon} from '@sanity/icons'\nimport {_composeClassNames, animatedSpinnerIcon} from '@sanity/ui/css'\nimport type {ReactElement, SVGProps} from 'react'\n\n/** @internal */\nexport function AnimatedSpinnerIcon(props: SVGProps<SVGSVGElement>): ReactElement {\n const {className, ...rest} = props\n\n return (\n <SpinnerIcon\n {...rest}\n data-sanity-icon=\"animated-spinner\"\n className={_composeClassNames(className, animatedSpinnerIcon())}\n />\n )\n}\n\nAnimatedSpinnerIcon.displayName = 'AnimatedSpinnerIcon'\n","import {type ResponsiveProp, spinner} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {ComponentType, Props} from '../../types'\nimport {Text} from '../text'\nimport {AnimatedSpinnerIcon} from './animatedSpinnerIcon'\n\n/** @public */\nexport const DEFAULT_SPINNER_ELEMENT = 'div'\n\n/** @public */\nexport type SpinnerOwnProps = {\n muted?: boolean\n size?: ResponsiveProp<FontTextSize>\n}\n\n/** @public */\nexport type SpinnerElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type SpinnerProps<E extends SpinnerElementType = SpinnerElementType> = Props<\n SpinnerOwnProps,\n E\n>\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport function Spinner<E extends SpinnerElementType = typeof DEFAULT_SPINNER_ELEMENT>(\n props: SpinnerProps<E>,\n) {\n const {as = DEFAULT_SPINNER_ELEMENT, ...rest} = props as SpinnerProps<\n typeof DEFAULT_SPINNER_ELEMENT\n >\n\n return (\n <Text as={as} data-ui=\"Spinner\" {...rest} className={spinner()}>\n <AnimatedSpinnerIcon />\n </Text>\n )\n}\n\nSpinner.displayName = 'Spinner'\n","import type {\n ButtonStyleProps,\n DisplayStyleProps,\n FlexStyleProps,\n GapStyleProps,\n PaddingStyleProps,\n ResponsiveProp,\n Width,\n} from '@sanity/ui/css'\nimport {_composeClassNames, button, buttonLoadingBox} from '@sanity/ui/css'\nimport type {\n FontTextSize,\n Space,\n ThemeColorButtonModeKey,\n ThemeColorStateToneKey,\n} from '@sanity/ui/theme'\nimport {type ElementType as ReactElementType, isValidElement, type ReactNode} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport type {ButtonTextAlign, ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Spinner} from '../spinner'\nimport type {TextOwnProps} from '../text'\nimport {Text} from '../text'\n\n/** @public */\nexport const DEFAULT_BUTTON_ELEMENT = 'button'\n\n/** @public */\nexport type ButtonOwnProps = ButtonStyleProps &\n DisplayStyleProps &\n GapStyleProps &\n PaddingStyleProps & {\n 'align'?: FlexStyleProps['align']\n 'data-ui'?: string\n 'disabled'?: boolean\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'mode'?: ThemeColorButtonModeKey\n 'icon'?: ReactElementType | ReactNode\n 'iconRight'?: ReactElementType | ReactNode\n 'justify'?: FlexStyleProps['justify']\n /** @beta Do not use in production, as this might change.*/\n 'loading'?: boolean\n 'selected'?: boolean\n /** @deprecated Use `gap` instead. */\n 'space'?: ResponsiveProp<Space>\n 'textAlign'?: ButtonTextAlign\n 'muted'?: boolean\n 'target'?: string\n 'text'?: ReactNode\n 'textOverflow'?: TextOwnProps['textOverflow']\n 'textWeight'?: TextOwnProps['weight']\n 'tone'?: ThemeColorStateToneKey\n 'width'?: ResponsiveProp<Width>\n }\n\n/** @public */\nexport type ButtonElementType = 'a' | 'button' | 'label' | ComponentType\n\n/** @public */\nexport type ButtonProps<E extends ButtonElementType = ButtonElementType> = Props<ButtonOwnProps, E>\n\n/** @public */\nexport function Button<E extends ButtonElementType = typeof DEFAULT_BUTTON_ELEMENT>(\n props: ButtonProps<E>,\n) {\n const {\n align = 'center',\n as: Element = DEFAULT_BUTTON_ELEMENT,\n children,\n className,\n disabled,\n display = 'inline-flex',\n flex,\n fontSize = 1,\n gap = props.space ?? props.padding ?? 3,\n gapX,\n gapY,\n icon: IconComponent,\n iconRight: IconRightComponent,\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 = props.gap ?? props.space ?? props.padding ?? 3, // eslint-disable-line @typescript-eslint/no-unused-vars\n text,\n textAlign,\n textOverflow = 'ellipsis',\n textWeight = 'medium',\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...rest\n } = props as ButtonProps<typeof DEFAULT_BUTTON_ELEMENT>\n\n let href: string | undefined = undefined\n\n if ('href' in rest) {\n href = typeof rest.href === 'string' ? rest.href : href\n delete rest.href\n }\n\n return (\n <Element\n data-ui=\"Button\"\n {...rest}\n className={_composeClassNames(className, button({display, flex, radius, width}))}\n data-disabled={loading || disabled ? '' : undefined}\n data-mode={mode}\n data-tone={tone}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n // @ts-expect-error - TODO: fix this\n href={disabled ? undefined : href}\n type={type}\n >\n {Boolean(loading) && (\n <Box\n align=\"center\"\n as=\"span\"\n className={buttonLoadingBox()}\n display=\"flex\"\n flex={1}\n justify=\"center\"\n width=\"fill\"\n >\n <Spinner size={fontSize} />\n </Box>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box\n align={align}\n as=\"span\"\n display=\"flex\"\n flex={1}\n gap={gap}\n gapX={gapX}\n gapY={gapY}\n justify={justify}\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n paddingTop={paddingTop}\n paddingBottom={paddingBottom}\n paddingLeft={paddingLeft}\n paddingRight={paddingRight}\n >\n {IconComponent && (\n <Text as=\"span\" flex=\"none\" muted size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Text\n align={textAlign}\n as=\"span\"\n flex=\"none\"\n muted={muted}\n size={fontSize}\n textOverflow={textOverflow}\n weight={textWeight}\n >\n {text}\n </Text>\n )}\n\n {IconRightComponent && (\n <Text as=\"span\" flex=\"none\" muted size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Box>\n )}\n\n {children && (\n <Box\n as=\"span\"\n flex={1}\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n paddingTop={paddingTop}\n paddingBottom={paddingBottom}\n paddingLeft={paddingLeft}\n paddingRight={paddingRight}\n >\n {children}\n </Box>\n )}\n </Element>\n )\n}\n\nButton.displayName = 'Button'\n","import {useContext} from 'react'\n\nimport {CardContext} from './cardContext'\nimport type {CardContextValue} from './types'\n\nexport function useCard(): CardContextValue | null {\n return useContext(CardContext)\n}\n","import {_composeClassNames, card, type CardStyleProps} from '@sanity/ui/css'\n\nimport type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\nimport {CardProvider} from './cardProvider'\nimport {useCard} from './useCard'\n\n/** @public */\nexport const DEFAULT_CARD_ELEMENT = 'div'\n\n/** @public */\nexport interface CardOwnProps extends BoxOwnProps, CardStyleProps {\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 disabled?: boolean\n pressed?: boolean\n selected?: boolean\n target?: string\n}\n\n/** @public */\nexport type CardElementType = BoxElementType\n\n/** @public */\nexport type CardProps<E extends CardElementType = CardElementType> = Props<CardOwnProps, E>\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport function Card<E extends CardElementType = typeof DEFAULT_CARD_ELEMENT>(props: CardProps<E>) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as = DEFAULT_CARD_ELEMENT,\n className,\n disabled,\n pressed,\n radius = 0,\n scheme: schemeProp,\n selected,\n shadow,\n style,\n tone: toneProp = 'default',\n ...rest\n } = props as CardProps<typeof DEFAULT_CARD_ELEMENT>\n\n const parent = useCard()\n const tone = toneProp === 'inherit' ? parent?.tone : toneProp\n const scheme = schemeProp === undefined ? parent?.scheme : schemeProp\n\n let node = (\n <Box\n data-ui=\"Card\"\n {...rest}\n as={as}\n className={_composeClassNames(\n className,\n card({\n scheme: scheme === parent?.scheme ? undefined : scheme,\n shadow,\n tone,\n }),\n )}\n data-checkered={checkered ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n data-focus-ring={focusRing ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n radius={radius}\n style={style}\n />\n )\n\n if (scheme === parent?.scheme && tone === parent?.tone) {\n return node\n }\n\n node = (\n <CardProvider\n scheme={scheme ?? 'light'}\n tone={tone ?? 'default'}\n unstable_CompatProvider={parent?.unstable_CompatProvider}\n >\n {node}\n </CardProvider>\n )\n\n if (parent?.unstable_CompatProvider) {\n const CompatProvider = parent.unstable_CompatProvider\n\n return (\n <CompatProvider scheme={scheme ?? 'light'} tone={tone ?? parent?.tone ?? 'default'}>\n {node}\n </CompatProvider>\n )\n }\n\n return node\n}\n\nCard.displayName = 'Card'\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {_composeClassNames, checkbox, checkboxInput} from '@sanity/ui/css'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_CHECKBOX_ELEMENT = 'input'\n\n/** @public */\nexport type CheckboxOwnProps = {\n indeterminate?: boolean\n customValidity?: string\n}\n\n/** @public */\nexport type CheckboxElementType = 'input' | ComponentType\n\n/** @public */\nexport type CheckboxProps<E extends CheckboxElementType = CheckboxElementType> = Props<\n CheckboxOwnProps,\n E\n>\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport function Checkbox<E extends CheckboxElementType = typeof DEFAULT_CHECKBOX_ELEMENT>(\n props: CheckboxProps<E>,\n) {\n const {\n as: Element = DEFAULT_CHECKBOX_ELEMENT,\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n ref: forwardedRef,\n style,\n ...rest\n } = props as CheckboxProps<typeof DEFAULT_CHECKBOX_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span className={_composeClassNames(className, checkbox())} data-ui=\"Checkbox\" style={style}>\n <Element\n {...rest}\n checked={checked}\n className={_composeClassNames(className, checkboxInput())}\n data-invalid={customValidity ? '' : undefined}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </span>\n )\n}\n\nCheckbox.displayName = 'Checkbox'\n","import {_composeClassNames, code, type FontStyleProps} from '@sanity/ui/css'\nimport {lazy, Suspense} from 'react'\n\nimport type {ComponentType, Props} from '../../types'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\n\n/** @public */\nexport const DEFAULT_CODE_ELEMENT = 'pre'\n\n/** @public */\nexport type CodeOwnProps = Omit<FontStyleProps, 'align'> & {\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n}\n\n/** @public */\nexport type CodeElementType = 'div' | 'pre' | ComponentType\n\n/** @public */\nexport type CodeProps<E extends CodeElementType = CodeElementType> = Props<CodeOwnProps, E>\n\n/** @public */\nexport function Code<E extends CodeElementType = typeof DEFAULT_CODE_ELEMENT>(props: CodeProps<E>) {\n const {\n as: Element = DEFAULT_CODE_ELEMENT,\n children,\n className,\n language: languageProp,\n size = 2,\n weight = 'regular',\n ...rest\n } = props as CodeProps<typeof DEFAULT_CODE_ELEMENT>\n\n const language = typeof languageProp === 'string' ? languageProp : undefined\n\n return (\n <Element\n data-ui=\"Code\"\n {...rest}\n className={_composeClassNames(className, code({size, weight}))}\n >\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </Element>\n )\n}\n\nCode.displayName = 'Code'\n","import {_composeClassNames, container, type ContainerStyleProps} from '@sanity/ui/css'\n\nimport type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\n\n/** @public */\nexport const DEFAULT_CONTAINER_ELEMENT = 'div'\n\n/** @public */\nexport type ContainerOwnProps = Omit<BoxOwnProps, 'width'> & ContainerStyleProps\n\n/** @public */\nexport type ContainerElementType = BoxElementType\n\n/** @public */\nexport type ContainerProps<E extends ContainerElementType = ContainerElementType> = Props<\n ContainerOwnProps,\n E\n>\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport function Container<E extends ContainerElementType = typeof DEFAULT_CONTAINER_ELEMENT>(\n props: ContainerProps<E>,\n) {\n const {\n as = DEFAULT_CONTAINER_ELEMENT,\n className,\n width = 2,\n ...rest\n } = props as ContainerProps<typeof DEFAULT_CONTAINER_ELEMENT>\n\n return (\n <Box\n data-ui=\"Container\"\n {...rest}\n as={as}\n className={_composeClassNames(className, container({width}))}\n />\n )\n}\n\nContainer.displayName = 'Container'\n","import type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\n\n/** @public */\nexport const DEFAULT_FLEX_ELEMENT = 'div'\n\n/** @public */\nexport type FlexOwnProps = Omit<BoxOwnProps, 'display'>\n\n/** @public */\nexport type FlexElementType = BoxElementType\n\n/** @public */\nexport type FlexProps<E extends FlexElementType = FlexElementType> = Props<FlexOwnProps, E>\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport function Flex<E extends FlexElementType = typeof DEFAULT_FLEX_ELEMENT>(props: FlexProps<E>) {\n const {\n as = DEFAULT_FLEX_ELEMENT,\n direction = 'row',\n ...rest\n } = props as FlexProps<typeof DEFAULT_FLEX_ELEMENT>\n\n return <Box data-ui=\"Flex\" {...rest} as={as} direction={direction} display=\"flex\" />\n}\n\nFlex.displayName = 'Flex'\n","import type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\n\n/** @public */\nexport const DEFAULT_GRID_ELEMENT = 'div'\n\n/** @public */\nexport type GridOwnProps = Omit<BoxOwnProps, 'display'>\n\n/** @public */\nexport type GridElementType = BoxElementType\n\n/** @public */\nexport type GridProps<E extends GridElementType = GridElementType> = Props<GridOwnProps, E>\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport function Grid<E extends GridElementType = typeof DEFAULT_GRID_ELEMENT>(props: GridProps<E>) {\n const {\n as = DEFAULT_GRID_ELEMENT,\n children,\n ...rest\n } = props as GridProps<typeof DEFAULT_GRID_ELEMENT>\n\n return (\n <Box data-ui=\"Grid\" {...rest} as={as} display=\"grid\">\n {children}\n </Box>\n )\n}\n\nGrid.displayName = 'Grid'\n","import {\n _composeClassNames,\n heading,\n type HeadingStyleProps,\n textOverflow,\n type TextOverflowStyleProps,\n} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_HEADING_ELEMENT = 'div'\n\n/** @public */\nexport type HeadingOwnProps = HeadingStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type HeadingElementType =\n | 'div'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'label'\n | 'span'\n | ComponentType\n\n/** @public */\nexport type HeadingProps<E extends HeadingElementType = HeadingElementType> = Props<\n HeadingOwnProps,\n E\n>\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport function Heading<E extends HeadingElementType = typeof DEFAULT_HEADING_ELEMENT>(\n props: HeadingProps<E>,\n) {\n const {\n accent = false,\n align,\n as: Element = DEFAULT_HEADING_ELEMENT,\n children,\n className,\n flex,\n muted = false,\n size = 2,\n textOverflow: textOverflowProp,\n weight = 'regular',\n ...rest\n } = props as HeadingProps<typeof DEFAULT_HEADING_ELEMENT>\n\n return (\n <Element\n data-ui=\"Heading\"\n {...rest}\n className={_composeClassNames(\n className,\n heading({\n accent,\n align,\n flex,\n muted,\n size,\n weight,\n }),\n )}\n >\n <span\n className={textOverflow({\n textOverflow: textOverflowProp,\n })}\n >\n {children}\n </span>\n </Element>\n )\n}\n\nHeading.displayName = 'Heading'\n","import type {FlexStyleProps, GridStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\n\n/** @public */\nexport const DEFAULT_INLINE_ELEMENT = 'div'\n\n/** @public */\nexport type InlineOwnProps = Omit<BoxOwnProps, keyof FlexStyleProps | keyof GridStyleProps> & {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type InlineElementType = BoxElementType\n\n/** @public */\nexport type InlineProps<E extends InlineElementType = InlineElementType> = Props<InlineOwnProps, E>\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport function Inline<E extends InlineElementType = typeof DEFAULT_INLINE_ELEMENT>(\n props: InlineProps<E>,\n) {\n const {\n as = DEFAULT_INLINE_ELEMENT,\n children,\n gap,\n space,\n ...rest\n } = props as InlineProps<typeof DEFAULT_INLINE_ELEMENT>\n\n return (\n <Box\n data-ui=\"Inline\"\n {...rest}\n align=\"center\"\n as={as}\n display=\"flex\"\n gap={gap ?? space}\n wrap=\"wrap\"\n >\n {children}\n </Box>\n )\n}\n\nInline.displayName = 'Inline'\n","import {_composeClassNames, kbd, type RadiusStyleProps, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {ComponentType, Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\nimport {Text} from '../text'\n\n/** @public */\nexport const DEFAULT_KBD_ELEMENT = 'kbd'\n\n/** @public */\nexport type KBDOwnProps = BoxOwnProps &\n RadiusStyleProps & {\n fontSize?: ResponsiveProp<FontTextSize>\n }\n\n/** @public */\nexport type KBDElementType = 'kbd' | ComponentType\n\n/** @public */\nexport type KBDProps<E extends KBDElementType = KBDElementType> = Props<KBDOwnProps, E>\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport function KBD<E extends KBDElementType = typeof DEFAULT_KBD_ELEMENT>(props: KBDProps<E>) {\n const {\n as = DEFAULT_KBD_ELEMENT,\n children,\n className,\n display = 'inline-block',\n fontSize = 0,\n padding = 1,\n radius = 2,\n ...rest\n } = props as KBDProps<typeof DEFAULT_KBD_ELEMENT>\n\n return (\n <Box\n data-ui=\"KBD\"\n {...rest}\n as={as as BoxElementType}\n className={_composeClassNames(className, kbd({radius}))}\n display={display}\n muted\n padding={padding}\n >\n <Text as=\"span\" muted size={fontSize} weight=\"semibold\">\n {children}\n </Text>\n </Box>\n )\n}\n\nKBD.displayName = 'KBD'\n","import type {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {_arrow, _arrowShape, _arrowStroke, _arrowStrokeMask, varNames} from '@sanity/ui/css'\nimport {useMemo} from 'react'\n\nimport type {ComponentType, Props} from '../../types'\nimport {compileCommands, getRoundedCommands, type Point} from './cmds'\n\n/** @internal */\nexport const DEFAULT_ARROW_ELEMENT = 'div'\n\n/** @internal */\nexport type ArrowOwnProps = {\n width: number\n height: number\n radius?: number\n}\n\n/** @internal */\nexport type ArrowElementType = 'div' | 'span' | ComponentType\n\n/** @internal */\nexport type ArrowProps<E extends ArrowElementType = ArrowElementType> = Props<ArrowOwnProps, E>\n\n/** @internal */\nexport function Arrow<E extends ArrowElementType = typeof DEFAULT_ARROW_ELEMENT>(\n props: ArrowProps<E>,\n) {\n const {\n as: Element = DEFAULT_ARROW_ELEMENT,\n width: w,\n height: h,\n radius = 0,\n style,\n ...rest\n } = props as ArrowProps<typeof DEFAULT_ARROW_ELEMENT>\n\n const center = w / 2\n\n const path = useMemo(() => {\n const points: Point[] = [\n {x: 0, y: 0},\n {x: radius, y: 0, radius},\n {x: center, y: h - 1, radius},\n {x: w - radius, y: 0, radius},\n {x: w, y: 0},\n ]\n\n const cmds = getRoundedCommands(points)\n\n return compileCommands(cmds)\n }, [center, h, radius, w])\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <Element {...rest} className={_arrow()} style={{...style, [varNames.arrow.size]: `${w}px`}}>\n <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect className={_arrowStrokeMask()} x={0} width={w} height={w} fill=\"white\" />\n </mask>\n <path className={_arrowStroke()} d={strokePath} mask=\"url(#stroke-mask)\" />\n <path className={_arrowShape()} d={fillPath} />\n </svg>\n </Element>\n )\n}\n\nArrow.displayName = 'Arrow'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/context/boundaryElement',\n null,\n)\n","import {type ReactElement, type ReactNode, useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport type {BoundaryElementContextValue} from './types'\n\n/** @public */\nexport interface BoundaryElementProviderProps {\n children: ReactNode\n element: HTMLElement | null\n}\n\n/** @public */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): 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\nBoundaryElementProvider.displayName = 'BoundaryElementProvider'\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport type {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/** @public */\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 {BREAKPOINTS} from '@sanity/ui/css'\nimport {useImperativeHandle, useMemo, useState} from 'react'\n\nimport {useElementSize} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/** @beta */\nexport const DEFAULT_ELEMENT_QUERY_ELEMENT = 'div'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type ElementQueryOwnProps = {\n media?: number[]\n}\n\n/** @beta */\nexport type ElementQueryElementType = 'div' | ComponentType\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type ElementQueryProps<E extends ElementQueryElementType = ElementQueryElementType> = Props<\n ElementQueryOwnProps,\n E\n>\n\nconst DEFAULT_BREAKPOINTS = Object.values(BREAKPOINTS)\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function ElementQuery<\n E extends ElementQueryElementType = typeof DEFAULT_ELEMENT_QUERY_ELEMENT,\n>(props: ElementQueryProps<E>) {\n const {\n as: Element = DEFAULT_ELEMENT_QUERY_ELEMENT,\n children,\n media: mediaProp,\n ref: forwardedRef,\n ...rest\n } = props as ElementQueryProps<typeof DEFAULT_ELEMENT_QUERY_ELEMENT>\n\n const breakpoints = mediaProp ?? DEFAULT_BREAKPOINTS\n\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(() => {\n const eq = findMaxBreakpoints(breakpoints, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [breakpoints, width])\n\n const min = useMemo(() => {\n const eq = findMinBreakpoints(breakpoints, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [breakpoints, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <Element data-ui=\"ElementQuery\" {...rest} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </Element>\n )\n}\n\nElementQuery.displayName = 'ElementQuery'\n","import {isRecord} from '../../lib/isRecord'\nimport type {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {useContext} from 'react'\n\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport type {LayerContextValue} from './types'\n\n/** @public */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","import {type FocusEvent, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {Card, type CardElementType} from '../../primitives'\nimport type {Props} from '../../types'\nimport type {LayerElementType, LayerOwnProps} from './layer'\nimport {useLayer} from './useLayer'\n\n/** @internal */\nexport const DEFAULT_LAYER_CARD_ELEMENT = 'div'\n\n/** @internal */\nexport type LayerCardOwnProps = Omit<LayerOwnProps, 'zOffset'>\n\n/** @internal */\nexport type LayerCardElementType = LayerElementType\n\n/** @internal */\nexport type LayerCardProps<E extends LayerCardElementType = LayerCardElementType> = Props<\n LayerCardOwnProps,\n E\n>\n\n/** @internal */\nexport function LayerCard<E extends LayerCardElementType = typeof DEFAULT_LAYER_CARD_ELEMENT>(\n props: LayerCardProps<E>,\n) {\n const {\n as = DEFAULT_LAYER_CARD_ELEMENT,\n children,\n onActivate,\n onFocus,\n position = 'relative',\n ref: forwardedRef,\n style = EMPTY_RECORD,\n ...rest\n } = props as LayerCardProps<typeof DEFAULT_LAYER_CARD_ELEMENT>\n\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <Card\n data-ui=\"Layer\"\n {...rest}\n as={as as CardElementType}\n onFocus={handleFocus}\n position={position}\n ref={ref}\n style={{...style, zIndex}}\n >\n {children}\n </Card>\n )\n}\n\nLayerCard.displayName = 'LayerCard'\n","import {\n type ReactElement,\n type ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react'\n\nimport {useArrayProp, useMediaIndex} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport type {LayerContextValue} from './types'\n\n/** @public */\nexport interface LayerProviderProps {\n children?: ReactNode\n zOffset?: number | number[]\n}\n\n/** @public */\nexport function LayerProvider(props: LayerProviderProps): ReactElement {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useArrayProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = zOffset.length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex)\n const zIndex = parent ? parent.zIndex + (zOffset[mediaIndex] ?? 0) : (zOffset[mediaIndex] ?? 0)\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild, setSize, setChildLayers],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n\nLayerProvider.displayName = 'LayerProvider'\n","import type {CardElementType, CardOwnProps} from '../../primitives'\nimport type {Props} from '../../types'\nimport {LayerCard} from './layerCard'\nimport {LayerProvider} from './layerProvider'\n\n/** @public */\nexport const DEFAULT_LAYER_ELEMENT = 'div'\n\n/** @public */\nexport type LayerOwnProps = CardOwnProps & {\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\n/** @public */\nexport type LayerElementType = CardElementType\n\n/** @public */\nexport type LayerProps<E extends LayerElementType = LayerElementType> = Props<LayerOwnProps, E>\n\n/** @public */\nexport function Layer<E extends LayerElementType = typeof DEFAULT_LAYER_ELEMENT>(\n props: LayerProps<E>,\n) {\n const {\n as = DEFAULT_LAYER_ELEMENT,\n children,\n zOffset = 1,\n ...rest\n } = props as LayerProps<typeof DEFAULT_LAYER_ELEMENT>\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerCard {...rest} as={as}>\n {children}\n </LayerCard>\n </LayerProvider>\n )\n}\n\nLayer.displayName = 'Layer'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport type {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/context/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nexport const PortalContext = createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport type {PortalContextValue} from './types'\n\n/** @public */\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 type {ReactNode, ReactPortal} from 'react'\nimport {createPortal} from 'react-dom'\n\nimport {CardProvider, useCard} from '../../primitives'\nimport {usePortal} from './usePortal'\n\n/** @public */\nexport interface PortalProps {\n children: ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/** @public */\nexport function Portal(props: PortalProps): ReactPortal | null {\n const {children, __unstable_name: name} = props\n const card = useCard()\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) ||\n portal.elements?.['default']\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(\n <CardProvider\n // rendered={true}\n tone=\"transparent\" // card?.tone || 'default',\n scheme={card?.scheme || 'light'}\n >\n {children}\n </CardProvider>,\n portalElement,\n )\n}\n\nPortal.displayName = 'Portal'\n","import {type ReactElement, type ReactNode, useMemo, useRef, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './portalContext'\nimport type {PortalContextValue} from './types'\n\n/** @public */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/** @public */\nexport function PortalProvider(props: PortalProviderProps): ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nPortalProvider.displayName = 'PortalProvider'\n\nconst emptySubscribe = () => () => {}\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 */\nfunction 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\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n","import {_composeClassNames, srOnly} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_SR_ONLY_ELEMENT = 'span'\n\n/** @public */\nexport type SrOnlyOwnProps = {} // eslint-disable-line @typescript-eslint/no-empty-object-type\n\n/** @public */\nexport type SrOnlyElementType = 'span' | ComponentType\n\n/** @public */\nexport type SrOnlyProps<E extends SrOnlyElementType = SrOnlyElementType> = Props<SrOnlyOwnProps, E>\n\n/** @public */\nexport function SrOnly<E extends SrOnlyElementType = typeof DEFAULT_SR_ONLY_ELEMENT>(\n props: SrOnlyProps<E>,\n) {\n const {\n as: Element = DEFAULT_SR_ONLY_ELEMENT,\n children,\n className,\n ...rest\n } = props as SrOnlyProps<typeof DEFAULT_SR_ONLY_ELEMENT>\n\n return (\n <Element\n data-ui=\"SrOnly\"\n {...rest}\n aria-hidden\n className={_composeClassNames(className, srOnly())}\n >\n {children}\n </Element>\n )\n}\n\nSrOnly.displayName = 'SrOnly'\n","import {vars} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n type CSSProperties,\n type ReactNode,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {Box} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @beta */\nexport const DEFAULT_VIRTUAL_LIST_ELEMENT = 'div'\n\n/** @beta */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/** @beta */\nexport type VirtualListOwnProps<Item = any> = {\n gap?: Space\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => ReactNode\n}\n\n/** @beta */\nexport type VirtualListElementType = 'div' | ComponentType\n\n/** @beta */\nexport type VirtualListProps<E extends VirtualListElementType = VirtualListElementType> = Props<\n VirtualListOwnProps,\n E\n>\n\n/** @beta */\nexport function VirtualList<E extends VirtualListElementType = typeof DEFAULT_VIRTUAL_LIST_ELEMENT>(\n props: VirtualListProps<E>,\n) {\n const {\n as = DEFAULT_VIRTUAL_LIST_ELEMENT,\n gap = 0,\n getItemKey,\n items = [],\n onChange,\n renderItem,\n ref: forwardedRef,\n ...rest\n } = props as VirtualListProps<typeof DEFAULT_VIRTUAL_LIST_ELEMENT>\n\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n const [gapValue, setGapValue] = useState(0)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect((): (() => void) | undefined => {\n if (!ref.current) return\n\n const scrollEl = findScrollable(ref.current.parentNode)\n\n if (scrollEl) {\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + gapValue) - gapValue : 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 onChange?.({\n fromIndex,\n gap: gapValue,\n itemHeight,\n scrollHeight,\n scrollTop,\n toIndex,\n })\n }, [fromIndex, gapValue, itemHeight, onChange, scrollHeight, scrollTop, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [\n <>\n <Box\n ref={(el) => (el ? setItemHeight(el.offsetHeight) : undefined)}\n insetTop={0}\n insetLeft={0}\n insetRight={0}\n key={0}\n position=\"absolute\"\n >\n {renderItem(items[0])}\n </Box>\n <div\n ref={(el) => (el ? setGapValue(el.offsetHeight) : undefined)}\n style={{height: vars.space[gap]}}\n />\n </>,\n ]\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 <Box\n insetLeft={0}\n insetRight={0}\n key={key}\n position=\"absolute\"\n style={{top: itemIndex * (itemHeight + gapValue) - gapValue}}\n >\n {node}\n </Box>\n )\n })\n }, [fromIndex, gap, gapValue, getItemKey, itemHeight, items, renderItem, toIndex])\n\n const wrapperStyle: CSSProperties = useMemo(() => ({height}), [height])\n\n return (\n <Box data-ui=\"VirtualList\" {...rest} as={as} position=\"relative\" ref={ref}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Box>\n )\n}\n\nVirtualList.displayName = 'VirtualList'\n\nfunction findScrollable(parentNode: ParentNode | null) {\n let _scrollEl = parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n return _scrollEl\n}\n","import type {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n 'bottom': ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n 'left': ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n 'right': ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {detectOverflow, type Elements, type Middleware} from '@floating-ui/react-dom'\n\nimport type {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import type {Strategy} from '@floating-ui/react-dom'\nimport {popoverCard} from '@sanity/ui/css'\nimport {motion} from 'framer-motion'\nimport {type CSSProperties, type ForwardedRef, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport type {Placement, PopoverMargins} from '../../types'\nimport {Arrow, Layer, type LayerOwnProps, type LayerProps} from '../../utils'\nimport {Flex} from '../flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\n/** @internal */\nexport const DEFAULT_POPOVER_LAYER_ELEMENT = 'div'\n\n/** @internal */\nexport type PopoverLayerOwnProps = LayerOwnProps & {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: ForwardedRef<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n placement: Placement\n referenceWidth?: number\n strategy: Strategy\n x: number | null\n y: number | null\n}\n\n/** @internal */\nexport type PopoverLayerProps = PopoverLayerOwnProps & LayerProps<'div'>\n\n/** @internal */\nexport function PopoverLayer(props: PopoverLayerProps) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n maxWidth,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n referenceWidth,\n shadow,\n strategy,\n style,\n tone = 'inherit',\n x: xProp,\n y: yProp,\n ...rest\n } = props\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n top: y,\n width: referenceWidth,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, referenceWidth, style, x, y],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n // @ts-expect-error - TODO: fix this\n <Layer\n className={popoverCard()}\n data-ui=\"Popover\"\n {...rest}\n as={motion.div}\n data-context-tone={tone}\n data-placement={placement}\n direction=\"column\"\n display=\"flex\"\n position={strategy}\n radius={radius}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n <Flex\n data-ui=\"Popover__wrapper\"\n direction=\"column\"\n flex={1}\n maxWidth={maxWidth}\n overflow={overflow}\n >\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </Layer>\n )\n}\n\nPopoverLayer.displayName = 'PopoverCard'\n","import {\n arrow,\n autoUpdate,\n flip,\n hide,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n type ForwardedRef,\n type ReactElement,\n type ReactNode,\n type Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport type {ComponentType, Placement, PopoverMargins, Props} from '../../types'\nimport {type LayerOwnProps, Portal, useBoundaryElement, useLayer} from '../../utils'\nimport {CardProvider, useCard} from '../card'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {PopoverLayer} from './popoverLayer'\nimport type {PopoverUpdateCallback} from './types'\n\n/** @public */\nexport const DEFAULT_POPOVER_ELEMENT = 'div'\n\n/** @public */\nexport type PopoverOwnProps = LayerOwnProps & {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: ReactElement<{ref: ForwardedRef<HTMLElement>}>\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n *\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n /**\n * When true, blocks all pointer interaction with elements beneath the popover until closed.\n *\n * @beta\n * @defaultValue false\n */\n modal?: boolean\n open?: boolean\n placement?: Placement\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n /** @beta */\n updateRef?: Ref<PopoverUpdateCallback | undefined>\n}\n\n/** @public */\nexport type PopoverElementType = 'div' | ComponentType\n\n/** @public */\nexport type PopoverProps<E extends PopoverElementType = PopoverElementType> = Props<\n PopoverOwnProps,\n E\n>\n\nfunction ViewportOverlay() {\n const {zIndex} = useLayer()\n\n return (\n <div\n style={{\n position: 'fixed',\n inset: 0,\n width: '100vw',\n height: '100vh',\n zIndex,\n }}\n />\n )\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport function Popover<E extends PopoverElementType = typeof DEFAULT_POPOVER_ELEMENT>(\n props: PopoverProps<E>,\n) {\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n as: as = DEFAULT_POPOVER_ELEMENT,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n modal,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius = 3,\n ref: forwardedRef,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = Z_OFFSETS.popover,\n updateRef,\n ...rest\n } = props as PopoverProps<typeof DEFAULT_POPOVER_ELEMENT>\n\n const card = useCard()\n\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const zOffset = useArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>(undefined)\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${availableWidth}px`\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: referenceElement\n ? {\n reference: referenceElement,\n }\n : undefined,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n const childRef = getElementRef(childProp as any)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n // If a reference element is defined, we don't need to clone the child\n if (referenceElement) return childProp\n\n if (!childProp) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned \n before the below popover card. */}\n {modal && <ViewportOverlay />}\n\n <PopoverLayer\n {...rest}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n as={as}\n hidden={referenceHidden}\n maxWidth={widthProp}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n x={x}\n y={y}\n zOffset={zOffset}\n >\n {content}\n </PopoverLayer>\n </>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n <CardProvider\n tone={tone === 'inherit' ? (card?.tone ?? 'default') : tone}\n scheme={scheme ?? 'light'}\n >\n {popover}\n </CardProvider>\n </Portal>\n ) : (\n popover\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n}\n\nPopover.displayName = 'Popover'\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(\n element: ReactElement<{ref: ForwardedRef<HTMLElement>}>,\n): ForwardedRef<HTMLElement> {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return element.props.ref\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref\n}\n","import {_composeClassNames, radio} from '@sanity/ui/css'\nimport {useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_RADIO_ELEMENT = 'input'\n\n/** @public */\nexport type RadioOwnProps = {\n customValidity?: string\n}\n\n/** @public */\nexport type RadioElementType = 'input' | ComponentType\n\n/** @public */\nexport type RadioProps<E extends RadioElementType = RadioElementType> = Props<RadioOwnProps, E>\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport function Radio<E extends RadioElementType = typeof DEFAULT_RADIO_ELEMENT>(\n props: RadioProps<E>,\n) {\n const {\n as: Element = DEFAULT_RADIO_ELEMENT,\n className,\n disabled,\n style,\n customValidity,\n readOnly,\n ref: forwardedRef,\n ...rest\n } = props as RadioProps<typeof DEFAULT_RADIO_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <div className={_composeClassNames(className, radio())} data-ui=\"Radio\" style={style}>\n <Element\n {...rest}\n data-invalid={customValidity ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </div>\n )\n}\n\nRadio.displayName = 'Radio'\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n _inputElement,\n type ResponsiveProp,\n select,\n selectPresentation,\n type SelectStyleProps,\n} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/** @public */\nexport const DEFAULT_SELECT_ELEMENT = 'select'\n\n/** @public */\nexport type SelectOwnProps = SelectStyleProps & {\n customValidity?: string\n readOnly?: boolean\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type SelectElementType = 'select' | ComponentType\n\n/** @public */\nexport type SelectProps<E extends SelectElementType = SelectElementType> = Props<SelectOwnProps, E>\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport function Select<E extends SelectElementType = typeof DEFAULT_SELECT_ELEMENT>(\n props: SelectProps<E>,\n) {\n const {\n as: Element = DEFAULT_SELECT_ELEMENT,\n border = true,\n children,\n customValidity,\n disabled,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 1,\n readOnly,\n ref: forwardedRef,\n space = 2,\n ...rest\n } = props as SelectProps<typeof DEFAULT_SELECT_ELEMENT>\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <div\n data-ui=\"Select\"\n className={select({border, fontSize, padding, radius, gap: gap ?? space})}\n data-icon-right=\"\"\n >\n <Element {...rest} className={_inputElement()} disabled={disabled || readOnly} ref={ref}>\n {children}\n </Element>\n <span className={selectPresentation()}>\n <Box as=\"span\" display=\"inline-block\" padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </Box>\n </span>\n </div>\n )\n}\n\nSelect.displayName = 'Select'\n","import {_composeClassNames, type ResponsiveProp, stack} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\n\n/** @public */\nexport const DEFAULT_STACK_ELEMENT = 'div'\n\n/** @public */\nexport type StackOwnProps = Omit<\n BoxOwnProps,\n 'align' | 'columns' | 'direction' | 'display' | 'gapX' | 'gapY' | 'justify'\n> & {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type StackElementType = BoxElementType\n\n/** @public */\nexport type StackProps<E extends StackElementType = StackElementType> = Props<StackOwnProps, E>\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport function Stack<E extends StackElementType = typeof DEFAULT_STACK_ELEMENT>(\n props: StackProps<E>,\n) {\n const {\n as = DEFAULT_STACK_ELEMENT,\n className,\n gap,\n space,\n ...rest\n } = props as StackProps<typeof DEFAULT_STACK_ELEMENT>\n\n return (\n <Box\n data-ui=\"Stack\"\n {...rest}\n as={as}\n autoRows=\"min\"\n className={_composeClassNames(className, stack())}\n display=\"grid\"\n gap={gap ?? space}\n />\n )\n}\n\nStack.displayName = 'Stack'\n","import {\n _composeClassNames,\n _switch,\n _switchElement,\n _switchPresentation,\n _switchThumb,\n _switchTrack,\n} from '@sanity/ui/css'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\n\nimport type {ComponentType, Props} from '../../types'\nimport {Box} from '../box'\n\n/** @public */\nexport const DEFAULT_SWITCH_ELEMENT = 'input'\n\n/** @public */\nexport type SwitchOwnProps = {\n indeterminate?: boolean\n}\n\n/** @public */\nexport type SwitchElementType = 'input' | ComponentType\n\n/** @public */\nexport type SwitchProps<E extends SwitchElementType = SwitchElementType> = Props<SwitchOwnProps, E>\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport function Switch<E extends SwitchElementType = typeof DEFAULT_SWITCH_ELEMENT>(\n props: SwitchProps<E>,\n) {\n const {\n as: Element = DEFAULT_SWITCH_ELEMENT,\n checked,\n className,\n disabled,\n indeterminate,\n readOnly,\n ref: forwardedRef,\n style,\n ...rest\n } = props as SwitchProps<typeof DEFAULT_SWITCH_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <Box\n className={_composeClassNames(className, _switch())}\n data-checked={checked ? '' : undefined}\n data-indeterminate={indeterminate ? '' : undefined}\n data-ui=\"Switch\"\n display=\"inline-block\"\n position=\"relative\"\n style={style}\n >\n <Element\n {...rest}\n checked={indeterminate !== true && checked}\n className={_switchElement()}\n data-disabled={disabled ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <span aria-hidden className={_switchPresentation()}>\n <span className={_switchTrack()} />\n <span className={_switchThumb()} />\n </span>\n </Box>\n )\n}\n\nSwitch.displayName = 'Switch'\n","import {\n _inputElement,\n _inputPresentation,\n type ResponsiveProp,\n textArea,\n type TextAreaStyleProps,\n} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TEXT_AREA_ELEMENT = 'textarea'\n\n/** @public */\nexport type TextAreaOwnProps = TextAreaStyleProps & {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n customValidity?: string\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type TextAreaElementType = 'textarea' | ComponentType\n\n/** @public */\nexport type TextAreaProps<E extends TextAreaElementType = TextAreaElementType> = Props<\n TextAreaOwnProps,\n E\n>\n\n/**\n * A multiline text input.\n *\n * @public\n */\nexport function TextArea<E extends TextAreaElementType = typeof DEFAULT_TEXT_AREA_ELEMENT>(\n props: TextAreaProps<E>,\n) {\n const {\n // TODO: fix this\n\n __unstable_disableFocusRing,\n as: Element = DEFAULT_TEXT_AREA_ELEMENT,\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n space = 3,\n ...rest\n } = props as TextAreaProps<typeof DEFAULT_TEXT_AREA_ELEMENT>\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span\n className={textArea({\n border,\n fontSize,\n padding,\n radius,\n gap: gap ?? space,\n })}\n data-invalid={customValidity ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"TextArea\"\n >\n <Element\n {...rest}\n className={_inputElement()}\n data-no-focus-ring={__unstable_disableFocusRing ? '' : undefined}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n />\n <span className={_inputPresentation()} />\n </span>\n )\n}\n\nTextArea.displayName = 'TextArea'\n","import {CloseIcon} from '@sanity/icons'\nimport {\n _composeClassNames,\n _inputElement,\n _inputPresentation,\n type InputStyleProps,\n type ResponsiveProp,\n textInput,\n textInputElement,\n textInputPrefix,\n textInputSuffix,\n} from '@sanity/ui/css'\nimport type {Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {\n type CSSProperties,\n type ElementType,\n isValidElement,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useArrayProp, useCustomValidity} from '../../hooks'\nimport {isRecord} from '../../lib/isRecord'\nimport type {ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Button, type ButtonProps} from '../button'\nimport {Text} from '../text'\n\n/** @public */\nexport const DEFAULT_TEXT_INPUT_ELEMENT = 'input'\n\n/** @public */\nexport type TextInputClearButtonProps = Omit<\n ButtonProps<'button'>,\n 'as' | 'onClick' | 'onMouseDown'\n>\n\n/** @public */\nexport type TextInputOwnProps = InputStyleProps & {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n icon?: ElementType | ReactNode\n iconRight?: ElementType | ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n prefix?: ReactNode\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n suffix?: ReactNode\n weight?: ThemeFontWeightKey\n}\n\n/** @public */\nexport type TextInputElementType = 'input' | ComponentType\n\n/** @public */\nexport type TextInputProps<E extends TextInputElementType = TextInputElementType> = Props<\n TextInputOwnProps,\n E\n>\n\nconst CLEAR_BUTTON_BOX_STYLE: CSSProperties = {\n backgroundColor: 'transparent',\n top: 0,\n right: 0,\n zIndex: 2,\n}\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport function TextInput<E extends TextInputElementType = typeof DEFAULT_TEXT_INPUT_ELEMENT>(\n props: TextInputProps<E>,\n) {\n const {\n __unstable_disableFocusRing,\n as: Element = DEFAULT_TEXT_INPUT_ELEMENT,\n border = true,\n className,\n clearButton,\n disabled = false,\n fontSize = 2,\n gap,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding = 3,\n prefix,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n space = 3,\n suffix,\n customValidity,\n type = 'text',\n weight: _width, // eslint-disable-line @typescript-eslint/no-unused-vars\n width,\n ...rest\n } = props as TextInputProps<typeof DEFAULT_TEXT_INPUT_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n const paddingArray = useArrayProp(padding)\n\n const withClearButton = Boolean(clearButton)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: 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 const clearButtonBoxPadding = useMemo(\n () =>\n paddingArray.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return typeof v === 'number' ? v - 2 : 0\n }) as Space[],\n [paddingArray],\n )\n\n const clearButtonPadding = useMemo(\n () =>\n paddingArray.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return typeof v === 'number' ? v - 1 : 0\n }) as Space[],\n [paddingArray],\n )\n\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (isRecord(clearButton) ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n\n return (\n <Box\n align=\"center\"\n className={_composeClassNames(\n className,\n textInput({\n border,\n fontSize,\n padding,\n radius,\n gap: gap ?? space,\n width,\n }),\n )}\n data-icon-left={IconComponent ? '' : undefined}\n data-icon-right={IconRightComponent ? '' : undefined}\n data-invalid={customValidity ? '' : undefined}\n data-prefix={prefix ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-suffix={suffix ? '' : undefined}\n data-ui=\"TextInput\"\n display=\"flex\"\n >\n {prefix && (\n <Box className={textInputPrefix()} sizing=\"border\">\n <span>{prefix}</span>\n </Box>\n )}\n\n <Box className={textInputElement()} flex={1} position=\"relative\">\n <Element\n {...rest}\n className={_inputElement()}\n data-no-focus-ring={__unstable_disableFocusRing ? '' : undefined}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n <Box className={_inputPresentation()} position=\"absolute\">\n {IconComponent && (\n <Box padding={padding} position=\"absolute\" style={{top: 0, left: 0}}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </Box>\n )}\n\n {!withClearButton && IconRightComponent && (\n <Box padding={padding} position=\"absolute\" style={{top: 0, right: 0}}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </Box>\n )}\n </Box>\n\n {!disabled && !readOnly && clearButton && (\n <Box padding={clearButtonBoxPadding} position=\"absolute\" style={CLEAR_BUTTON_BOX_STYLE}>\n <Button\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n display=\"block\"\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 </Box>\n )}\n </Box>\n\n {suffix && (\n <Box className={textInputSuffix()} sizing=\"border\">\n <span>{suffix}</span>\n </Box>\n )}\n </Box>\n )\n}\n\nTextInput.displayName = 'TextInput'\n","import {type SetStateAction, useCallback, useRef, useState} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","// Based on https://github.com/radix-ui/primitives/blob/0bade6a704e5821b90a6da0f3d8cfa8a7711127d/packages/react/slot/src/Slot.tsx#L128-L150\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nexport function getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element.props as {ref?: React.Ref<unknown>}).ref\n }\n\n // Not DEV\n return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import type {Placement} from '../../types'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/context/tooltipDelayGroup',\n null,\n )\n","import {type ReactElement, type ReactNode, useMemo} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport type {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(props: TooltipDelayGroupProviderProps): ReactElement {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n\nTooltipDelayGroupProvider.displayName = 'TooltipDelayGroupProvider'\n","import {useContext} from 'react'\n\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {motion, type MotionStyle} from 'framer-motion'\nimport {type CSSProperties, type ForwardedRef, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport type {Placement} from '../../types'\nimport {Arrow, Layer, type LayerOwnProps, type LayerProps} from '../../utils'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\n/* @internal */\nexport const DEFAULT_TOOLTIP_LAYER_ELEMENT = 'div'\n\n/* @internal */\nexport interface TooltipLayerOwnProps extends LayerOwnProps {\n animate?: boolean\n arrow: boolean\n arrowRef: ForwardedRef<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n placement?: Placement\n}\n\n/** @internal */\nexport type TooltipLayerProps = TooltipLayerOwnProps & LayerProps<'div'>\n\n/** @internal */\nexport function TooltipLayer(props: TooltipLayerProps) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n tone = 'inherit',\n ...rest\n } = props\n\n const rootStyle: MotionStyle = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n // @ts-expect-error - TODO: fix this\n <Layer\n data-ui=\"Tooltip__layer\"\n {...rest}\n as={motion.div}\n data-animate={animate ? '' : undefined}\n data-placement={placement}\n padding={padding}\n radius={radius}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n tone={tone}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </Layer>\n )\n}\n\nTooltipLayer.displayName = 'TooltipLayer'\n","import {\n arrow,\n autoUpdate,\n flip,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {\n _composeClassNames,\n type RadiusStyleProps,\n type ShadowStyleProps,\n tooltip,\n} from '@sanity/ui/css'\nimport type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n type FocusEvent,\n type HTMLAttributes,\n type MouseEvent as ReactMouseEvent,\n type ReactElement,\n type ReactNode,\n type RefAttributes,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport type {ComponentType, Placement, Props} from '../../types'\nimport {type LayerOwnProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {CardProvider, useCard} from '../card'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\nimport {TooltipLayer} from './tooltipLayer'\n\n/** @public */\nexport const DEFAULT_TOOLTIP_ELEMENT = 'div'\n\n/** @public */\nexport type TooltipOwnProps = LayerOwnProps &\n RadiusStyleProps &\n ShadowStyleProps & {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: ReactElement<HTMLAttributes<HTMLElement> & RefAttributes<HTMLElement>>\n content?: ReactNode\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n disabled?: boolean\n fallbackPlacements?: Placement[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n }\n\n/** @public */\nexport type TooltipElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TooltipProps<E extends TooltipElementType = TooltipElementType> = Props<\n TooltipOwnProps,\n E\n>\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport function Tooltip<E extends TooltipElementType = typeof DEFAULT_TOOLTIP_ELEMENT>(\n props: TooltipProps<E>,\n) {\n const boundaryElementContext = useBoundaryElement()\n\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n as = DEFAULT_TOOLTIP_ELEMENT,\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n className,\n content,\n delay,\n disabled,\n fallbackPlacements: fallbackPlacementsProp = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 3,\n ref: forwardedRef,\n scheme,\n shadow = 2,\n zOffset = Z_OFFSETS.tooltip,\n tone = 'inherit',\n ...rest\n } = props as TooltipProps<typeof DEFAULT_TOOLTIP_ELEMENT>\n\n const card = useCard()\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = useArrayProp(fallbackPlacementsProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: {reference: referenceElement},\n transform: false,\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n setIsGroupActive?.(open, groupedOpenDelay)\n setOpenTooltipId?.(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n setIsGroupActive?.(open, groupDeactivateDelay)\n setOpenTooltipId?.(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [\n isInsideGroup,\n openDelay,\n setIsGroupActive,\n setOpenTooltipId,\n tooltipId,\n closeDelay,\n setIsOpen,\n ],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent<HTMLElement>) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent<HTMLElement>) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip, isInsideGroup})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReferenceElement,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [\n referenceElement,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const node = (\n <TooltipLayer\n data-ui=\"Tooltip\"\n {...rest}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n as={as}\n className={_composeClassNames(className, tooltip())}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n tone={tone}\n zOffset={zOffset}\n >\n {content}\n </TooltipLayer>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n <CardProvider\n tone={tone === 'inherit' ? (card?.tone ?? 'default') : tone}\n scheme={scheme ?? 'light'}\n >\n {node}\n </CardProvider>\n </Portal>\n ) : (\n node\n ))\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n}\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n isInsideGroup,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n isInsideGroup: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip || isInsideGroup) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [isInsideGroup, showTooltip])\n}\n\nTooltip.displayName = 'Tooltip'\n","import type {GapStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport type {FontTextSize, Space} from '@sanity/ui/theme'\n\nimport {Box, KBD} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_HOTKEYS_ELEMENT = 'kbd'\n\n/** @public */\nexport interface HotkeysOwnProps extends GapStyleProps, RadiusStyleProps {\n fontSize?: ResponsiveProp<FontTextSize>\n padding?: ResponsiveProp<Space>\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n keys?: string[]\n}\n\n/** @public */\nexport type HotkeysElementType = 'kbd' | ComponentType\n\n/** @public */\nexport type HotkeysProps<E extends HotkeysElementType = HotkeysElementType> = Props<\n HotkeysOwnProps,\n E\n>\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport function Hotkeys<E extends HotkeysElementType = typeof DEFAULT_HOTKEYS_ELEMENT>(\n props: HotkeysProps<E>,\n) {\n const {\n as = DEFAULT_HOTKEYS_ELEMENT,\n fontSize,\n gap,\n gapX,\n gapY,\n keys,\n padding,\n radius,\n space = 1,\n ...rest\n } = props as HotkeysProps<typeof DEFAULT_HOTKEYS_ELEMENT>\n\n if (!keys || keys.length === 0) {\n return undefined\n }\n\n return (\n <Box\n as={as}\n data-ui=\"Hotkeys\"\n {...rest}\n display=\"flex\"\n gap={gap ?? space}\n gapX={gapX}\n gapY={gapY}\n >\n {keys.map((key, i) => (\n <KBD fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </KBD>\n ))}\n </Box>\n )\n}\n\nHotkeys.displayName = 'Hotkeys'\n","import {type MouseEvent as ReactMouseEvent} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: ReactMouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: ReactMouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: ReactMouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: ReactMouseEvent<HTMLElement>) => void\n}\n\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n '@sanity/ui/context/menu',\n null,\n)\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 {\n type KeyboardEvent,\n type KeyboardEventHandler,\n type MouseEvent,\n type MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\n const mounted = Boolean(rootElementRef.current)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, 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 [rootElementRef, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: 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: MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }, [rootElementRef, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = requestAnimationFrame(() => {\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 }\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 }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {_composeClassNames, menu, type PaddingStyleProps, type ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\n\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, type MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/** @public */\nexport const DEFAULT_MENU_ELEMENT = 'div'\n\n/** @public */\nexport type MenuOwnProps = PaddingStyleProps & {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n 'focusFirst'?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n 'focusLast'?: boolean\n 'gap'?: ResponsiveProp<Space>\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 /** @deprecated Use `gap` property instead. */\n 'space'?: ResponsiveProp<Space>\n 'aria-labelledby'?: string\n // 'onBlurCapture'?: (event: FocusEvent) => void\n}\n\n/** @public */\nexport type MenuElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type MenuProps<E extends MenuElementType = MenuElementType> = Props<MenuOwnProps, E>\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport function Menu<E extends MenuElementType = typeof DEFAULT_MENU_ELEMENT>(props: MenuProps<E>) {\n const {\n as = DEFAULT_MENU_ELEMENT,\n children,\n className,\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 gap,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n ref: forwardedRef,\n registerElement,\n shouldFocus: _shouldFocus,\n space = 1,\n ...rest\n } = props as MenuProps<typeof DEFAULT_MENU_ELEMENT>\n\n const shouldFocus =\n _shouldFocus ?? ((props.focusFirst && 'first') || (props.focusLast && 'last') || null)\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n } = useMenuController({\n onKeyDown,\n originElement,\n shouldFocus,\n rootElementRef: ref,\n })\n\n const unregisterElementRef = useRef<(() => void) | null>(null)\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n // Run cleanup of previously registered elements\n if (unregisterElementRef.current) {\n // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n // Since we can't change the `registerElement` implementation itself without making breaking change,\n // that is explained in the code comments for createGlobalScopedContext.tsx,\n // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n unregisterElementRef.current()\n unregisterElementRef.current = null\n }\n\n ref.current = el\n\n // Register root element (for nested menus)\n if (ref.current && registerElement) {\n unregisterElementRef.current = registerElement(ref.current)\n }\n },\n [registerElement],\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 useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\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 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 <Box\n data-ui=\"Menu\"\n {...rest}\n as={as}\n className={_composeClassNames(className, menu())}\n onKeyDown={handleKeyDown}\n overflow=\"auto\"\n outline=\"none\"\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack gap={gap ?? space}>{children}</Stack>\n </Box>\n </MenuContext.Provider>\n )\n}\n\nMenu.displayName = 'Menu'\n","import {_composeClassNames, menuDivider} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_MENU_DIVIDER_ELEMENT = 'hr'\n\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type MenuDividerOwnProps = {}\n\n/** @public */\nexport type MenuDividerElementType = 'div' | 'hr' | 'span' | ComponentType\n\n/** @public */\nexport type MenuDividerProps<E extends MenuDividerElementType = MenuDividerElementType> = Props<\n MenuDividerOwnProps,\n E\n>\n\n/** @public */\nexport function MenuDivider<E extends MenuDividerElementType = typeof DEFAULT_MENU_DIVIDER_ELEMENT>(\n props: MenuDividerProps<E>,\n) {\n const {\n as: Element = DEFAULT_MENU_DIVIDER_ELEMENT,\n className,\n ...rest\n } = props as MenuDividerProps<typeof DEFAULT_MENU_DIVIDER_ELEMENT>\n\n return <Element {...rest} className={_composeClassNames(className, menuDivider())} />\n}\n\nMenuDivider.displayName = 'MenuDivider'\n","import {_composeClassNames, _selectable, type SelectableStyleProps} from '@sanity/ui/css'\n\nimport type {ComponentType, Props, SelectableTone} from '../../types'\nimport {Box, type BoxOwnProps} from '../box'\n\n/** @internal */\nexport const DEFAULT_SELECTABLE_ELEMENT = 'button'\n\n/** @internal */\nexport type SelectableOwnProps = BoxOwnProps &\n SelectableStyleProps & {\n disabled?: boolean\n href?: string\n tone?: SelectableTone\n type?: 'button'\n }\n\n/** @internal */\nexport type SelectableElementType = 'button' | 'a' | ComponentType\n\n/** @internal */\nexport type SelectableProps<E extends SelectableElementType = SelectableElementType> = Props<\n SelectableOwnProps,\n E\n>\n\n/** @internal */\nexport function Selectable<E extends SelectableElementType = typeof DEFAULT_SELECTABLE_ELEMENT>(\n props: SelectableProps<E>,\n) {\n const {\n as = DEFAULT_SELECTABLE_ELEMENT,\n className,\n radius,\n tone,\n ...rest\n } = props as SelectableProps<typeof DEFAULT_SELECTABLE_ELEMENT>\n\n return (\n <Box {...rest} as={as} className={_composeClassNames(className, _selectable({radius, tone}))} />\n )\n}\n\nSelectable.displayName = 'Selectable'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, type 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 type {RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport type {FontTextSize, Space, ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {\n type ElementType,\n isValidElement,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box, Flex, Popover, type PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport type {ComponentType, Props} from '../../types'\nimport {DEFAULT_MENU_ELEMENT, Menu, type MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/** @public */\nexport const DEFAULT_MENU_GROUP_ELEMENT = 'button'\n\n/** @public */\nexport type MenuGroupOwnProps = RadiusStyleProps & {\n disabled?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n gap?: ResponsiveProp<Space>\n icon?: ElementType | ReactNode\n menu?: Omit<\n MenuProps<typeof DEFAULT_MENU_ELEMENT>,\n | 'onClickOutside'\n | 'onEscape'\n | 'onItemClick'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'registerElement'\n | 'shouldFocus'\n | 'onBlurCapture'\n >\n padding?: ResponsiveProp<Space>\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n text?: ReactNode\n tone?: ThemeColorStateToneKey\n}\n\n/** @public */\nexport type MenuGroupElementType = 'button' | ComponentType\n\n/** @public */\nexport type MenuGroupProps<E extends MenuGroupElementType = MenuGroupElementType> = Props<\n MenuGroupOwnProps,\n E\n>\n\n/** @public */\nexport function MenuGroup<E extends MenuGroupElementType = typeof DEFAULT_MENU_GROUP_ELEMENT>(\n props: MenuGroupProps<E>,\n) {\n const {\n as = DEFAULT_MENU_GROUP_ELEMENT,\n children,\n fontSize = 1,\n gap,\n icon: IconComponent,\n menu: menuProps,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...rest\n } = props as MenuGroupProps<typeof DEFAULT_MENU_GROUP_ELEMENT>\n\n const menu = useMenu()\n\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n registerElement,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: 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: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event)\n\n setShouldFocus('first')\n setOpen(true)\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n 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 // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n {...menuProps}\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: KeyboardEvent<HTMLButtonElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\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 {...rest}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n as={as}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n radius={radius}\n ref={setRootElement}\n tabIndex={-1}\n tone={tone}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={gap ?? space} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n\nMenuGroup.displayName = 'MenuGroup'\n","import type {\n GapStyleProps,\n PaddingStyleProps,\n RadiusStyleProps,\n ResponsiveProp,\n} from '@sanity/ui/css'\nimport type {Space, ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {\n type ElementType,\n isValidElement,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport type {ComponentType, Props} from '../../types'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/** @public */\nexport const DEFAULT_MENU_ITEM_ELEMENT = 'button'\n\n/** @public */\nexport type MenuItemOwnProps = GapStyleProps &\n PaddingStyleProps &\n RadiusStyleProps & {\n disabled?: boolean\n fontSize?: number | number[]\n hotkeys?: string[]\n icon?: ElementType | ReactNode\n iconRight?: ElementType | ReactNode\n pressed?: boolean\n selected?: boolean\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n text?: ReactNode\n tone?: ThemeColorStateToneKey\n }\n\n/** @public */\nexport type MenuItemElementType = 'button' | 'a' | ComponentType\n\n/** @public */\nexport type MenuItemProps<E extends MenuItemElementType = MenuItemElementType> = Omit<\n Props<MenuItemOwnProps, E>,\n 'role'\n>\n\n/** @public */\nexport function MenuItem<E extends MenuItemElementType = typeof DEFAULT_MENU_ITEM_ELEMENT>(\n props: MenuItemProps<E>,\n) {\n const {\n as = DEFAULT_MENU_ITEM_ELEMENT,\n children,\n disabled,\n fontSize = 1,\n gap,\n gapX,\n gapY,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n ref: forwardedRef,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...rest\n } = props as MenuItemProps<typeof DEFAULT_MENU_ITEM_ELEMENT>\n\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n onItemMouseLeave: _onItemMouseLeave,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onMouseLeave\n const [rootElement, setRootElement] = useState<HTMLButtonElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLButtonElement | null>(null)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\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((el: HTMLButtonElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...rest}\n as={as}\n data-pressed={pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n radius={radius}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n role=\"menuitem\"\n tabIndex={-1}\n tone={tone}\n type={as === 'button' ? 'button' : undefined}\n >\n {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={gap ?? space} gapX={gapX} gapY={gapY} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text muted size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && <Hotkeys keys={hotkeys} style={{marginTop: -4, marginBottom: -4}} />}\n\n {IconRightComponent && (\n <Text muted size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n}\n\nMenuItem.displayName = 'MenuItem'\n","import type {ResponsiveProp} from '@sanity/ui/css'\nimport type {FontTextSize, Space, ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {\n type ElementType,\n type FocusEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {Button} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TAB_ELEMENT = 'button'\n\n/** @public */\nexport type TabOwnProps = {\n /**\n * The `id` of the corresponding `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'icon'?: ElementType | ReactNode\n 'focused'?: boolean\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'label'?: ReactNode\n 'padding'?: ResponsiveProp<Space>\n 'selected'?: boolean\n 'tone'?: ThemeColorStateToneKey\n}\n\n/** @public */\nexport type TabElementType = 'button' | ComponentType\n\n/** @public */\nexport type TabProps<E extends TabElementType = TabElementType> = Props<TabOwnProps, E>\n\n/** @public */\nexport function Tab<E extends TabElementType = typeof DEFAULT_TAB_ELEMENT>(props: TabProps<E>) {\n const {\n as = DEFAULT_TAB_ELEMENT,\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n ref: forwardedRef,\n selected,\n ...rest\n } = props as TabProps<typeof DEFAULT_TAB_ELEMENT>\n\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <Button\n data-ui=\"Tab\"\n {...rest}\n aria-selected={selected ? 'true' : 'false'}\n as={as}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n}\n\nTab.displayName = 'Tab'\n","import {type ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n Children,\n cloneElement,\n type KeyboardEvent,\n type ReactElement,\n useCallback,\n useState,\n} from 'react'\n\nimport {Flex, type FlexOwnProps} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\nimport type {TabProps} from './tab'\n\n/** @public */\nexport const DEFAULT_TAB_LIST_ELEMENT = 'div'\n\n/** @public */\nexport type TabListChild = ReactElement<Props<TabProps, 'button'>> | null | undefined | false\n\n/** @public */\nexport type TabListOwnProps = Omit<FlexOwnProps, 'as' | 'height'> & {\n children: TabListChild[]\n /** @deprecated Use `gap` instead */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type TabListElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TabListProps<E extends TabListElementType = TabListElementType> = Props<\n TabListOwnProps,\n E\n>\n\n/** @public */\nexport function TabList<E extends TabListElementType = typeof DEFAULT_TAB_LIST_ELEMENT>(\n props: TabListProps<E>,\n) {\n const {\n as = DEFAULT_TAB_LIST_ELEMENT,\n children: childrenProp,\n gap = 1,\n space = 1,\n wrap = 'nowrap',\n ...rest\n } = props as TabListProps<typeof DEFAULT_TAB_LIST_ELEMENT>\n\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children = Children.toArray(childrenProp).filter(_isReactElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: 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 <Flex\n data-ui=\"TabList\"\n {...rest}\n as={as}\n gap={gap ?? space}\n onKeyDown={handleKeyDown}\n role=\"tablist\"\n wrap={wrap}\n >\n {tabs}\n </Flex>\n )\n}\n\nTabList.displayName = 'TabList'\n\nfunction _isReactElement(node: unknown): node is ReactElement<Props<TabProps, 'button'>> {\n return Boolean(node)\n}\n"],"names":["getGlobalScope","globalThis","window","self","global","Error","globalScope","createGlobalScopedContext","key","defaultValue","symbol","Symbol","for","document","createContext","CardContext","CardProvider","props","$","_c","children","tone","scheme","unstable_CompatProvider","t0","t1","t2","jsx","displayName","ThemeContext","ThemeProvider","parentTheme","useContext","rootTheme","theme","bb0","version","themeContext","bb1","getScopedTheme","StyledThemeProvider","t3","t4","ThemeColorProvider","useRootTheme","value","root","useTheme","useStyledTheme","useTheme_v2","getTheme_v2","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_PROPS","card","initial","scale","willChange","hidden","opacity","visible","transition","when","duration","POPOVER_MOTION_DURATION","scaleIn","scaleOut","type","visualDuration","bounce","Z_OFFSETS","dialog","popover","tooltip","_isEnterToClickElement","element","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","contains","_getArrayProp","val","defaultVal","undefined","Array","isArray","_isScrollable","el","Element","style","getComputedStyle","overflowX","includes","overflowY","useArrayProp","JSON","stringify","setCache","useState","cachedVal","cachedHash","hash","useClickOutsideEvent","listener","boundaryElement","elementsArg","_temp","evt","target","resolvedBoundaryElement","elements","flat","onEvent","useEffectEvent","hasListener","Boolean","handleEvent","evt_0","addEventListener","removeEventListener","useEffect","useDebugValue","useCustomValidity","ref","customValidity","current","setCustomValidity","_ResizeObserver","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","resizeObserver","entry","_contentRect","contentRect","border","width","borderBoxSize","inlineSize","height","blockSize","content","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","push","idx","indexOf","splice","length","useElementSize","size","setSize","useGlobalKeyDown","onKeyDown","event","handleKeyDown","handler","event_0","useMatchMedia","mediaQueryString","getServerSnapshot","onStoreChange","media","matchMedia","matches","useSyncExternalStore","Object","values","BREAKPOINTS","_getMediaQuery","index","_createMediaStore","mediaLen","sizes","getSizes","mediaQuery","mq","getSnapshot","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","DEFAULT_BOX_ELEMENT","Box","align","autoCols","autoFlow","autoRows","borderBottom","borderLeft","borderRight","borderTop","className","column","columnEnd","columnStart","columns","direction","flex","gap","gapX","gapY","inset","insetBottom","insetLeft","insetRight","insetTop","justify","marginBottom","marginLeft","marginRight","marginTop","marginX","marginY","maxWidth","muted","outline","overflow","paddingBottom","paddingLeft","paddingRight","paddingTop","paddingX","paddingY","pointerEvents","position","radius","rest","row","rowEnd","rowStart","rows","t5","t6","t7","t8","textAlign","wrap","as","display","margin","minHeight","minWidth","padding","sizing","t9","_composeClassNames","box","t10","DEFAULT_LABEL_ELEMENT","Label","accent","textOverflowProp","textOverflow","weight","label","DEFAULT_AVATAR_ELEMENT","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","initials","onImageLoadError","src","title","color","arrowPosition","status","sizeProp","setArrowPosition","imageError","setImageError","raf","requestAnimationFrame","cancelAnimationFrame","handleImageError","t11","map","initialsSize","t12","t13","avatar","t14","t15","avatarArrow","t16","t17","avatarInitials","t18","t19","avatarImage","t20","jsxs","s","DEFAULT_AVATAR_COUNTER_ELEMENT","AvatarCounter","count","labelSize","avatarCounter","DEFAULT_AVATAR_STACK_ELEMENT","AvatarStack","childrenProp","maxLength","maxLengthProp","Children","toArray","filter","isValidElement","Math","max","len","visibleCount","extraCount","visibleChildren","slice","T0","avatarStack","child","childIndex","cloneElement","String","DEFAULT_TEXT_ELEMENT","Text","text","DEFAULT_BADGE_ELEMENT","Badge","fontSize","badge","AnimatedSpinnerIcon","animatedSpinnerIcon","SpinnerIcon","DEFAULT_SPINNER_ELEMENT","Spinner","spinner","DEFAULT_BUTTON_ELEMENT","Button","disabled","space","icon","IconComponent","iconRight","IconRightComponent","loading","mode","selected","textWeight","href","button","buttonLoadingBox","isValidElementType","useCard","DEFAULT_CARD_ELEMENT","Card","pressed","schemeProp","shadow","__unstable_checkered","__unstable_focusRing","checkered","focusRing","toneProp","parent","CompatProvider","DEFAULT_CHECKBOX_ELEMENT","Checkbox","checked","forwardedRef","indeterminate","readOnly","useRef","useImperativeHandle","checkbox","checkboxInput","CheckmarkIcon","RemoveIcon","LazyRefractor","lazy","DEFAULT_CODE_ELEMENT","Code","languageProp","language","code","Suspense","DEFAULT_CONTAINER_ELEMENT","Container","container","DEFAULT_FLEX_ELEMENT","Flex","DEFAULT_GRID_ELEMENT","Grid","DEFAULT_HEADING_ELEMENT","Heading","heading","DEFAULT_INLINE_ELEMENT","Inline","DEFAULT_KBD_ELEMENT","KBD","kbd","origin","name","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","x","shiftY","y","isVerticalPlacement","originX","originY","clamp","data","num","min","moveTowardsLength","movingPoint","targetPoint","amount","distance","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","cmds","i","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","n","join","DEFAULT_ARROW_ELEMENT","Arrow","h","w","center","path","strokePath","fillPath","_arrow","varNames","arrow","_arrowStrokeMask","_arrowStroke","_arrowShape","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","findMaxBreakpoints","ret","findMinBreakpoints","DEFAULT_ELEMENT_QUERY_ELEMENT","DEFAULT_BREAKPOINTS","ElementQuery","mediaProp","breakpoints","setElement","elementSize","innerWidth","eq","eq_0","getLayerContext","contextValue","LayerContext","useLayer","err","message","DEFAULT_LAYER_CARD_ELEMENT","LayerCard","onActivate","onFocus","zIndex","isTopLayer","lastFocusedRef","isTopLayerRef","activeElement","rootElement","handleFocus","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","level","maxMediaIndex","mediaIndex","setChildLayers","childLevel","parentDispose","state","prevLen","nextState","keys","state_0","nextState_0","_temp2","v_0","v","DEFAULT_LAYER_ELEMENT","Layer","elementKey","defaultContextValue","createElement","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","valueRef","_isEqual","objA","objB","keysA","keysB","every","DEFAULT_SR_ONLY_ELEMENT","SrOnly","srOnly","DEFAULT_VIRTUAL_LIST_ELEMENT","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","gapValue","setGapValue","scrollEl","findScrollable","parentNode","HTMLElement","handleScroll","passive","ro","entries","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","floor","toIndex","ceil","offsetHeight","el_0","vars","item","_itemIndex","itemIndex","top","wrapperStyle","_scrollEl","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","options","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","Infinity","maxHeight","floatingW","floatingH","left","right","bottom","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","PopoverLayer","animate","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","popoverCard","motion","div","DEFAULT_POPOVER_ELEMENT","ViewportOverlay","Popover","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","modal","open","placementProp","preventOverflow","referenceBoundary","referenceElement","widthProp","updateRef","referenceWidthRef","middleware","useMemo","flip","offset","mainAxis","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","useCallback","arrowEl","setFloating","setReference","childRef","getElementRef","Fragment","AnimatePresence","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","DEFAULT_RADIO_ELEMENT","Radio","radio","DEFAULT_SELECT_ELEMENT","Select","select","_inputElement","selectPresentation","ChevronDownIcon","DEFAULT_STACK_ELEMENT","Stack","stack","DEFAULT_SWITCH_ELEMENT","Switch","_switch","_switchElement","_switchPresentation","_switchTrack","_switchThumb","DEFAULT_TEXT_AREA_ELEMENT","TextArea","__unstable_disableFocusRing","textArea","_inputPresentation","DEFAULT_TEXT_INPUT_ELEMENT","CLEAR_BUTTON_BOX_STYLE","backgroundColor","TextInput","clearButton","onClear","prefix","suffix","t21","t22","t23","t24","t25","t26","t27","t28","_width","t29","t30","paddingArray","withClearButton","handleClearMouseDown","preventDefault","stopPropagation","focus","handleClearClick","clearButtonBoxPadding","_temp3","clearButtonPadding","clearButtonProps","textInput","textInputPrefix","textInputElement","t31","t32","t33","CloseIcon","t34","t35","textInputSuffix","t36","useDelayedState","initialState","setState","delayedAction","delay","action","clearTimeout","setTimeout","onStateChange","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipDelayGroupContext","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","useTooltipDelayGroup","TooltipLayer","DEFAULT_TOOLTIP_ELEMENT","Tooltip","fallbackPlacementsProp","portalProp","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","transform","tooltipId","useId","isOpen","setIsOpen","delayGroupContext","showTooltip","isInsideGroup","openDelayProp","closeDelayProp","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","handleBlur","e","onBlur","handleClick","onClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowKeyDown","useLayoutEffect","availableWidths","offsetWidth","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","DEFAULT_HOTKEYS_ELEMENT","Hotkeys","MenuContext","_isFocusable","getAttribute","_getFocusableElements","_getDOMPath","parentElement","from","childNodes","unshift","EMPTY_PATH","_sortElements","_sort","a","b","_a","_b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","rootElementRef","elementsRef","activeIndex","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","currentIndex","focusableElements","focusableLen","focusedElement","focusedIndex","handleItemMouseEnter","currentTarget","handleItemMouseLeave","rafId","DEFAULT_MENU_ELEMENT","Menu","_shouldFocus","onClickOutside","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","menu","DEFAULT_MENU_DIVIDER_ELEMENT","MenuDivider","menuDivider","DEFAULT_SELECTABLE_ELEMENT","Selectable","_selectable","useMenu","DEFAULT_MENU_GROUP_ELEMENT","MenuGroup","menuProps","_onItemMouseEnter","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","ChevronRightIcon","DEFAULT_MENU_ITEM_ELEMENT","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","setRef","DEFAULT_TAB_ELEMENT","Tab","focused","id","focusedRef","DEFAULT_TAB_LIST_ELEMENT","TabList","setFocusedIndex","_isReactElement","tabs","numTabs","prevIndex","prevIndex_0"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"_visual-editing.cjs","sources":["../../src/core/lib/globalScope.ts","../../src/core/lib/createGlobalScopedContext.ts","../../src/core/primitives/card/cardContext.ts","../../src/core/primitives/card/cardProvider.tsx","../../src/core/_compat/theme/themeContext.ts","../../src/core/_compat/theme/themeProvider.tsx","../../src/core/_compat/theme/useRootTheme.ts","../../src/core/_compat/theme/themeColorProvider.tsx","../../src/core/_compat/theme/useTheme.ts","../../src/core/constants.ts","../../src/core/helpers/element.ts","../../src/core/lib/isArray.ts","../../src/core/lib/isRecord.ts","../../src/core/helpers/props.ts","../../src/core/hooks/useClickOutsideEvent.ts","../../src/core/hooks/useCustomValidity.ts","../../src/core/observers/resizeObserver.ts","../../src/core/observers/elementSizeObserver.ts","../../src/core/hooks/useElementSize.ts","../../src/core/hooks/useGlobalKeyDown.ts","../../src/core/hooks/useMatchMedia.ts","../../src/core/hooks/useMediaIndex/useMediaIndex.ts","../../src/core/hooks/usePrefersDark.ts","../../src/core/hooks/usePrefersReducedMotion.ts","../../src/core/hooks/useResponsiveProp.ts","../../src/core/primitives/box/box.tsx","../../src/core/primitives/text/text.tsx","../../src/core/primitives/spinner/animatedSpinnerIcon.tsx","../../src/core/primitives/spinner/spinner.tsx","../../src/core/primitives/button/button.tsx","../../src/core/primitives/card/useCard.ts","../../src/core/primitives/card/card.tsx","../../src/core/primitives/code/code.tsx","../../src/core/primitives/flex/flex.tsx","../../src/core/primitives/grid/grid.tsx","../../src/core/primitives/kbd/kbd.tsx","../../src/core/middleware/origin.ts","../../src/core/utils/arrow/cmds.ts","../../src/core/utils/arrow/arrow.tsx","../../src/core/utils/boundaryElement/boundaryElementContext.ts","../../src/core/utils/boundaryElement/useBoundaryElement.ts","../../src/core/utils/elementQuery/helpers.ts","../../src/core/utils/elementQuery/elementQuery.tsx","../../src/core/utils/layer/getLayerContext.ts","../../src/core/utils/layer/layerContext.ts","../../src/core/utils/layer/useLayer.ts","../../src/core/utils/layer/layerCard.tsx","../../src/core/utils/layer/layerProvider.tsx","../../src/core/utils/layer/layer.tsx","../../src/core/utils/portal/portalContext.ts","../../src/core/utils/portal/usePortal.ts","../../src/core/utils/portal/portal.tsx","../../src/core/utils/portal/portalProvider.tsx","../../src/core/primitives/popover/constants.ts","../../src/core/primitives/popover/floating-ui/size.ts","../../src/core/primitives/popover/popoverLayer.tsx","../../src/core/primitives/popover/popover.tsx","../../src/core/primitives/stack/stack.tsx","../../src/core/primitives/textInput/textInput.tsx","../../src/core/hooks/useDelayedState.ts","../../src/core/utils/getElementRef.ts","../../src/core/primitives/tooltip/constants.ts","../../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../../src/core/primitives/tooltip/tooltipLayer.tsx","../../src/core/primitives/tooltip/tooltip.tsx","../../src/core/components/hotkeys/hotkeys.tsx","../../src/core/components/menu/menuContext.ts","../../src/core/components/menu/helpers.ts","../../src/core/components/menu/useMenuController.ts","../../src/core/components/menu/menu.tsx","../../src/core/components/menu/menuDivider.tsx","../../src/core/primitives/_selectable/selectable.tsx","../../src/core/components/menu/useMenu.ts","../../src/core/components/menu/menuGroup.tsx","../../src/core/components/menu/menuItem.tsx","../../src/core/components/tab/tab.tsx","../../src/core/components/tab/tabList.tsx"],"sourcesContent":["/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {type Context, createContext} from 'react'\n\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/context/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n return createContext<ContextType>(defaultValue)\n }\n\n globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n return globalScope[symbol]\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {CardContextValue} from './types'\n\n/**\n * @internal\n */\nexport const CardContext: Context<CardContextValue | null> =\n createGlobalScopedContext<CardContextValue | null>('@sanity/ui/context/card', null)\n","import type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {type ReactNode, useMemo} from 'react'\n\nimport {CardContext} from './cardContext'\nimport type {_CardCompatProviderComponent} from './types'\n\n/** @public */\nexport function CardProvider(props: {\n children?: ReactNode\n tone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n /** @internal */\n unstable_CompatProvider?: _CardCompatProviderComponent\n}) {\n const {children, tone, scheme, unstable_CompatProvider} = props\n\n return (\n <CardContext.Provider\n value={useMemo(\n () => ({tone, scheme, unstable_CompatProvider}),\n [tone, scheme, unstable_CompatProvider],\n )}\n >\n {children}\n </CardContext.Provider>\n )\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext: Context<ThemeContextValue | null> =\n createGlobalScopedContext<ThemeContextValue | null>('@sanity/ui/context/theme', null)\n","import {\n getScopedTheme,\n type RootTheme,\n type Theme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n} from '@sanity/ui/theme'\nimport {type ReactElement, type ReactNode, useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\n\nimport {CardProvider} from '../../primitives/card/cardProvider'\nimport {ThemeColorProvider} from './themeColorProvider'\nimport {ThemeContext} from './themeContext'\nimport type {ThemeContextValue} from './types'\n\n/** @public */\nexport interface ThemeProviderProps {\n children?: ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/** @public */\nexport function ThemeProvider(props: ThemeProviderProps): ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {children} = props\n const scheme = props.scheme ?? (parentTheme?.scheme || 'light')\n const rootTheme = props.theme ?? (parentTheme?.theme || null)\n const tone = props.tone ?? (parentTheme?.tone || 'default')\n\n const themeContext: ThemeContextValue | null = useMemo(() => {\n if (!rootTheme) return null\n\n return {\n version: 0.0,\n theme: rootTheme,\n scheme,\n tone,\n }\n }, [rootTheme, scheme, tone])\n\n const theme: Theme | null = useMemo(() => {\n if (!rootTheme) return null\n\n return getScopedTheme(rootTheme, scheme, tone)\n }, [scheme, rootTheme, tone])\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <CardProvider\n scheme={scheme}\n tone={tone}\n unstable_CompatProvider={\n // Render a theme provider around the card if the scheme or tone differs from the root theme.\n // This is needed for backwards compatibility with the legacy theme API.\n ThemeColorProvider\n }\n >\n <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n </CardProvider>\n )\n}\n","import {useContext} from 'react'\n\nimport {ThemeContext} from './themeContext'\nimport type {ThemeContextValue} from './types'\n\n/** @public */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport type {ReactElement, ReactNode} from 'react'\n\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/** @public */\nexport interface ThemeColorProviderProps {\n children?: ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/** @public */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): 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 {getTheme_v2, type Theme, type Theme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/** @public */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/** @public */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import type {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\nconst POPOVER_MOTION_DURATION = 0.2\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n card: {\n initial: Variant\n hidden: Variant\n visible: Variant\n scaleIn: Variant\n scaleOut: Variant\n }\n children: {\n hidden: Variant\n visible: Variant\n }\n transition: Transition\n} = {\n card: {\n initial: {\n scale: 0.97,\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n duration: POPOVER_MOTION_DURATION / 2,\n },\n },\n scaleIn: {\n scale: 1,\n },\n scaleOut: {\n scale: 0.97,\n },\n },\n children: {\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n },\n transition: {\n type: 'spring',\n visualDuration: POPOVER_MOTION_DURATION,\n bounce: 0.25,\n },\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n\nexport const Z_OFFSETS = {\n dialog: 600,\n popover: 400,\n tooltip: 200,\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","export function isArray(val: unknown): val is unknown[] {\n return Array.isArray(val)\n}\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import type {Breakpoint, ResponsiveProp} from '@sanity/ui/css'\n\nimport {EMPTY_ARRAY} from '../constants'\nimport {isArray} from '../lib/isArray'\nimport {isRecord} from '../lib/isRecord'\n\n/**\n * @internal\n */\nexport function _getArrayProp<T>(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 _getResponsiveProp<T>(\n val: ResponsiveProp<T> | undefined,\n defaultVal?: Partial<Record<Breakpoint, T>>,\n): Partial<Record<Breakpoint, T>> {\n if (val === undefined) {\n return (defaultVal || EMPTY_ARRAY) as Partial<Record<Breakpoint, T>>\n }\n\n return (isArray(val) || isRecord(val) ? val : [val]) as Partial<Record<Breakpoint, T>>\n}\n","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/** @public */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/** @public */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/** @public */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {_ResizeObserver} from './resizeObserver'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\n\nimport {_elementSizeObserver, type ElementSize} 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 {useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\n/**\n * @beta\n */\nexport function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {\n const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))\n\n useEffect(() => {\n const handler = (event: KeyboardEvent) => handleKeyDown(event)\n\n window.addEventListener('keydown', handler)\n\n return () => window.removeEventListener('keydown', handler)\n }, [])\n}\n","import {useCallback, useDebugValue, useSyncExternalStore} from 'react'\n\n/**\n * Efficiently subscribes to `window.matchMedia` queries\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * @public\n */\nexport function useMatchMedia(\n mediaQueryString: `(${string})`,\n getServerSnapshot?: () => boolean,\n): boolean {\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(\n useCallback(\n (onStoreChange) => {\n const media = window.matchMedia(mediaQueryString)\n media.addEventListener('change', onStoreChange)\n return () => media.removeEventListener('change', onStoreChange)\n },\n [mediaQueryString],\n ),\n () => window.matchMedia(mediaQueryString).matches,\n getServerSnapshot,\n )\n}\n","import {type Breakpoint, BREAKPOINTS} from '@sanity/ui/css'\nimport {useMemo, useSyncExternalStore} from 'react'\n\nconst media = Object.values(BREAKPOINTS)\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => Breakpoint\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index + 1] - 1}px)`\n }\n\n if (index === media.length - 1) {\n return `screen and (min-width: ${media[index]}px)`\n }\n\n return `screen and (min-width: ${media[index]}px) and (max-width: ${media[index + 1] - 1}px)`\n}\n\nfunction _createMediaStore(): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index as Breakpoint\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot(): Breakpoint {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): Breakpoint {\n const store = useMemo(() => _createMediaStore(), [])\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import type {Breakpoint, ResponsiveProp} from '@sanity/ui/css'\nimport {useState} from 'react'\n\nimport {_getResponsiveProp} from '../helpers'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useResponsiveProp<T>(\n val: ResponsiveProp<T> | undefined,\n defaultVal?: Partial<Record<Breakpoint, T>>,\n): Partial<Record<Breakpoint, T>> {\n const [[cachedVal, cachedHash], setCache] = useState<[Partial<Record<Breakpoint, T>>, string]>(\n () => [_getResponsiveProp(val, defaultVal), JSON.stringify(val ?? defaultVal)],\n )\n\n const hash = JSON.stringify(val ?? defaultVal)\n\n if (hash !== cachedHash) {\n // If the cached hash has changed, update the cache right away.\n // Calling setState during render is fine in this case, and preferred over a useEffect loop\n // https://19.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n setCache([_getResponsiveProp(val, defaultVal), hash])\n }\n\n return cachedVal\n}\n","import type {\n BoxStyleProps,\n GapStyleProps,\n InsetStyleProps,\n PositionStyleProps,\n} from '@sanity/ui/css'\nimport {box} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_BOX_ELEMENT = 'div'\n\n/** @public */\nexport type BoxOwnProps = BoxStyleProps & GapStyleProps & InsetStyleProps & PositionStyleProps\n\n/** @public */\nexport type BoxElementType =\n | 'a'\n | 'article'\n | 'aside'\n | 'blockquote'\n | 'body'\n | 'button'\n | 'details'\n | 'div'\n | 'header'\n | 'fieldset'\n | 'figure'\n | 'figcaption'\n | 'footer'\n | 'form'\n | 'html'\n | 'iframe'\n | 'kbd'\n | 'label'\n | 'legend'\n | 'li'\n | 'main'\n | 'nav'\n | 'ol'\n | 'pre'\n | 'section'\n | 'span'\n | 'summary'\n | 'ul'\n | ComponentType\n\n/** @public */\nexport type BoxProps<E extends BoxElementType = BoxElementType> = Props<BoxOwnProps, E>\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport function Box<E extends BoxElementType = typeof DEFAULT_BOX_ELEMENT>(props: BoxProps<E>) {\n const {\n alignItems,\n as: Element = DEFAULT_BOX_ELEMENT,\n autoCols,\n autoFlow,\n autoRows,\n border = false,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n className,\n children,\n column,\n columnStart,\n columnEnd,\n columns,\n display = 'block',\n flex,\n flexDirection,\n flexWrap,\n gap,\n gapX,\n gapY,\n gridAutoColumns,\n gridAutoFlow,\n gridAutoRows,\n gridColumn,\n gridColumnEnd,\n gridColumnStart,\n gridRow,\n gridRowEnd,\n gridRowStart,\n gridTemplateColumns,\n gridTemplateRows,\n height,\n inset,\n insetBottom,\n insetLeft,\n insetRight,\n insetTop,\n justifyContent,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n minHeight = 0,\n minWidth = 0,\n muted,\n outline,\n overflow,\n overflowX,\n overflowY,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n radius,\n row,\n rows,\n rowStart,\n rowEnd,\n shadow,\n sizing = 'border',\n textAlign,\n width,\n ...rest\n } = props as BoxProps<typeof DEFAULT_BOX_ELEMENT>\n\n return (\n <Element\n data-ui=\"Box\"\n {...rest}\n className={box({\n className,\n alignItems,\n autoCols,\n autoFlow,\n autoRows,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n column,\n columnStart,\n columnEnd,\n columns,\n display,\n flex,\n flexDirection,\n flexWrap,\n gap,\n gapX,\n gapY,\n gridAutoColumns,\n gridAutoFlow,\n gridAutoRows,\n gridColumn,\n gridColumnEnd,\n gridColumnStart,\n gridRow,\n gridRowEnd,\n gridRowStart,\n gridTemplateColumns,\n gridTemplateRows,\n height,\n inset,\n insetBottom,\n insetLeft,\n insetRight,\n insetTop,\n justifyContent,\n margin,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n minHeight,\n minWidth,\n muted,\n outline,\n overflow,\n overflowX,\n overflowY,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n radius,\n row,\n rows,\n rowStart,\n rowEnd,\n shadow,\n sizing,\n textAlign,\n width,\n })}\n >\n {children}\n </Element>\n )\n}\n","import {text, textOverflow, type TextOverflowStyleProps, type TextStyleProps} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TEXT_ELEMENT = 'div'\n\n/** @public */\nexport type TextOwnProps = TextStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type TextElementType =\n | 'div'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'label'\n | 'li'\n | 'p'\n | 'span'\n | ComponentType\n\n/** @public */\nexport type TextProps<E extends TextElementType = TextElementType> = Props<TextOwnProps, E>\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport function Text<E extends TextElementType = typeof DEFAULT_TEXT_ELEMENT>(props: TextProps<E>) {\n const {\n accent,\n align,\n as: Element = DEFAULT_TEXT_ELEMENT,\n children,\n className,\n flex,\n muted,\n size = 2,\n textOverflow: textOverflowProp,\n weight = 'regular',\n ...rest\n } = props as TextProps<typeof DEFAULT_TEXT_ELEMENT>\n\n return (\n <Element\n data-ui=\"Text\"\n {...rest}\n className={text({\n className,\n accent,\n align,\n flex,\n muted,\n size,\n weight,\n })}\n >\n <span\n className={textOverflow({\n textOverflow: textOverflowProp,\n })}\n >\n {children}\n </span>\n </Element>\n )\n}\n","import {SpinnerIcon} from '@sanity/icons'\nimport {animatedSpinnerIcon} from '@sanity/ui/css'\nimport type {ReactElement, SVGProps} from 'react'\n\n/** @internal */\nexport function AnimatedSpinnerIcon(\n props: Omit<SVGProps<SVGSVGElement>, 'className'>,\n): ReactElement {\n const {...rest} = props\n\n return (\n <SpinnerIcon data-sanity-icon=\"animated-spinner\" {...rest} className={animatedSpinnerIcon()} />\n )\n}\n","import {type ResponsiveProp, spinner} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {ComponentType, Props} from '../../types'\nimport {Text} from '../text'\nimport {AnimatedSpinnerIcon} from './animatedSpinnerIcon'\n\n/** @public */\nexport const DEFAULT_SPINNER_ELEMENT = 'div'\n\n/** @public */\nexport type SpinnerOwnProps = {\n muted?: boolean\n size?: ResponsiveProp<FontTextSize>\n}\n\n/** @public */\nexport type SpinnerElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type SpinnerProps<E extends SpinnerElementType = SpinnerElementType> = Props<\n SpinnerOwnProps,\n E\n>\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport function Spinner<E extends SpinnerElementType = typeof DEFAULT_SPINNER_ELEMENT>(\n props: SpinnerProps<E>,\n) {\n const {\n as = DEFAULT_SPINNER_ELEMENT,\n className,\n ...rest\n } = props as SpinnerProps<typeof DEFAULT_SPINNER_ELEMENT>\n\n return (\n <Text as={as} data-ui=\"Spinner\" {...rest} className={spinner({className})}>\n <AnimatedSpinnerIcon />\n </Text>\n )\n}\n","import type {\n BoxStyleProps,\n ButtonStyleProps,\n DisplayStyleProps,\n GapStyleProps,\n PaddingStyleProps,\n ResponsiveProp,\n Width,\n} from '@sanity/ui/css'\nimport {button, buttonLoadingBox} from '@sanity/ui/css'\nimport type {FontTextSize, Space} from '@sanity/ui/theme'\nimport {type ElementType as ReactElementType, isValidElement, type ReactNode} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport type {ButtonTextAlign, ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Spinner} from '../spinner'\nimport type {TextOwnProps} from '../text'\nimport {Text} from '../text'\n\n/** @public */\nexport const DEFAULT_BUTTON_ELEMENT = 'button'\n\n/** @public */\nexport type ButtonOwnProps = ButtonStyleProps &\n DisplayStyleProps &\n GapStyleProps &\n PaddingStyleProps & {\n 'align'?: BoxStyleProps['alignItems']\n 'data-ui'?: string\n 'disabled'?: boolean\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'icon'?: ReactElementType | ReactNode\n 'iconRight'?: ReactElementType | ReactNode\n 'justify'?: BoxStyleProps['justifyContent']\n /** @beta Do not use in production, as this might change.*/\n 'loading'?: boolean\n 'selected'?: boolean\n /** @deprecated Use `gap` instead. */\n 'space'?: ResponsiveProp<Space>\n 'textAlign'?: ButtonTextAlign\n 'muted'?: boolean\n 'target'?: string\n 'text'?: ReactNode\n 'textOverflow'?: TextOwnProps['textOverflow']\n 'textWeight'?: TextOwnProps['weight']\n 'width'?: ResponsiveProp<Width>\n }\n\n/** @public */\nexport type ButtonElementType = 'a' | 'button' | 'label' | ComponentType\n\n/** @public */\nexport type ButtonProps<E extends ButtonElementType = ButtonElementType> = Props<ButtonOwnProps, E>\n\n/** @public */\nexport function Button<E extends ButtonElementType = typeof DEFAULT_BUTTON_ELEMENT>(\n props: ButtonProps<E>,\n) {\n const {\n align = 'center',\n as: Element = DEFAULT_BUTTON_ELEMENT,\n children,\n className,\n disabled,\n display = 'inline-flex',\n flex,\n fontSize = 1,\n gap = props.space ?? props.padding ?? 3,\n gapX,\n gapY,\n icon: IconComponent,\n iconRight: IconRightComponent,\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 = props.gap ?? props.space ?? props.padding ?? 3, // eslint-disable-line @typescript-eslint/no-unused-vars\n text,\n textAlign,\n textOverflow = 'ellipsis',\n textWeight = 'medium',\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...rest\n } = props as ButtonProps<typeof DEFAULT_BUTTON_ELEMENT>\n\n let href: string | undefined = undefined\n\n if ('href' in rest) {\n href = typeof rest.href === 'string' ? rest.href : href\n delete rest.href\n }\n\n return (\n <Element\n data-ui=\"Button\"\n {...rest}\n className={button({className, display, flex, mode, radius, tone, width})}\n data-disabled={loading || disabled ? '' : undefined}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n // @ts-expect-error - TODO: fix this\n href={disabled ? undefined : href}\n type={type}\n >\n {Boolean(loading) && (\n <Box\n alignItems=\"center\"\n as=\"span\"\n className={buttonLoadingBox()}\n display=\"flex\"\n flex={1}\n justifyContent=\"center\"\n width=\"fill\"\n >\n <Spinner size={fontSize} />\n </Box>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box\n alignItems={align}\n as=\"span\"\n display=\"flex\"\n flex={1}\n gap={gap}\n gapX={gapX}\n gapY={gapY}\n justifyContent={justify}\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n paddingTop={paddingTop}\n paddingBottom={paddingBottom}\n paddingLeft={paddingLeft}\n paddingRight={paddingRight}\n >\n {IconComponent && (\n <Text as=\"span\" flex=\"none\" muted size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Text\n align={textAlign}\n as=\"span\"\n flex=\"none\"\n muted={muted}\n size={fontSize}\n textOverflow={textOverflow}\n weight={textWeight}\n >\n {text}\n </Text>\n )}\n\n {IconRightComponent && (\n <Text as=\"span\" flex=\"none\" muted size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Box>\n )}\n\n {children && (\n <Box\n as=\"span\"\n flex={1}\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n paddingTop={paddingTop}\n paddingBottom={paddingBottom}\n paddingLeft={paddingLeft}\n paddingRight={paddingRight}\n >\n {children}\n </Box>\n )}\n </Element>\n )\n}\n","import {useContext} from 'react'\n\nimport {CardContext} from './cardContext'\nimport type {CardContextValue} from './types'\n\n/** @public */\nexport function useCard(): CardContextValue | null {\n return useContext(CardContext)\n}\n","import {card, type CardStyleProps} from '@sanity/ui/css'\n\nimport type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\nimport {CardProvider} from './cardProvider'\nimport {useCard} from './useCard'\n\n/** @public */\nexport const DEFAULT_CARD_ELEMENT = 'div'\n\n/** @public */\nexport interface CardOwnProps extends BoxOwnProps, CardStyleProps {\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 disabled?: boolean\n pressed?: boolean\n selected?: boolean\n target?: string\n}\n\n/** @public */\nexport type CardElementType = BoxElementType\n\n/** @public */\nexport type CardProps<E extends CardElementType = CardElementType> = Props<CardOwnProps, E>\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport function Card<E extends CardElementType = typeof DEFAULT_CARD_ELEMENT>(props: CardProps<E>) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as = DEFAULT_CARD_ELEMENT,\n className,\n disabled,\n pressed,\n radius = 0,\n scheme: schemeProp,\n selected,\n style,\n tone: toneProp = 'default',\n ...rest\n } = props as CardProps<typeof DEFAULT_CARD_ELEMENT>\n\n const parent = useCard()\n const tone = toneProp === 'inherit' ? parent?.tone : toneProp\n const scheme = schemeProp === undefined ? parent?.scheme : schemeProp\n\n let node = (\n <Box\n data-ui=\"Card\"\n {...rest}\n as={as}\n className={card({\n className,\n scheme: scheme === parent?.scheme ? undefined : scheme,\n tone,\n })}\n data-checkered={checkered ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n data-focus-ring={focusRing ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n radius={radius}\n style={style}\n />\n )\n\n if (scheme === parent?.scheme && tone === parent?.tone) {\n return node\n }\n\n node = (\n <CardProvider\n scheme={scheme ?? 'light'}\n tone={tone ?? 'default'}\n unstable_CompatProvider={parent?.unstable_CompatProvider}\n >\n {node}\n </CardProvider>\n )\n\n if (parent?.unstable_CompatProvider) {\n const CompatProvider = parent.unstable_CompatProvider\n\n return (\n <CompatProvider scheme={scheme ?? 'light'} tone={tone ?? parent?.tone ?? 'default'}>\n {node}\n </CompatProvider>\n )\n }\n\n return node\n}\n","import {code, type CodeStyleProps, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontCodeSize} from '@sanity/ui/theme'\nimport {lazy, Suspense} from 'react'\n\nimport type {ComponentType, Props} from '../../types'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\n\n/** @public */\nexport const DEFAULT_CODE_ELEMENT = 'pre'\n\n/** @public */\nexport type CodeOwnProps = CodeStyleProps & {\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: ResponsiveProp<FontCodeSize>\n}\n\n/** @public */\nexport type CodeElementType = 'div' | 'pre' | ComponentType\n\n/** @public */\nexport type CodeProps<E extends CodeElementType = CodeElementType> = Props<CodeOwnProps, E>\n\n/** @public */\nexport function Code<E extends CodeElementType = typeof DEFAULT_CODE_ELEMENT>(props: CodeProps<E>) {\n const {\n as: Element = DEFAULT_CODE_ELEMENT,\n children,\n className,\n language: languageProp,\n size = 2,\n weight = 'regular',\n ...rest\n } = props as CodeProps<typeof DEFAULT_CODE_ELEMENT>\n\n const language = typeof languageProp === 'string' ? languageProp : undefined\n\n return (\n <Element data-ui=\"Code\" {...rest} className={code({className, size, weight})}>\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </Element>\n )\n}\n","import type {\n AlignItems,\n FlexDirection,\n FlexWrap,\n JustifyContent,\n ResponsiveProp,\n} from '@sanity/ui/css'\n\nimport type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\n\n/** @public */\nexport const DEFAULT_FLEX_ELEMENT = 'div'\n\n/** @public */\nexport type FlexOwnProps = Omit<BoxOwnProps, 'align' | 'display' | 'flexDirection' | 'flexWrap'> & {\n align?: ResponsiveProp<AlignItems>\n direction?: ResponsiveProp<FlexDirection>\n justify?: ResponsiveProp<JustifyContent>\n wrap?: ResponsiveProp<FlexWrap>\n}\n\n/** @public */\nexport type FlexElementType = BoxElementType\n\n/** @public */\nexport type FlexProps<E extends FlexElementType = FlexElementType> = Props<FlexOwnProps, E>\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport function Flex<E extends FlexElementType = typeof DEFAULT_FLEX_ELEMENT>(props: FlexProps<E>) {\n const {\n align,\n as = DEFAULT_FLEX_ELEMENT,\n direction = 'row',\n justify,\n wrap,\n ...rest\n } = props as FlexProps<typeof DEFAULT_FLEX_ELEMENT>\n\n return (\n <Box\n data-ui=\"Flex\"\n {...rest}\n alignItems={align}\n as={as}\n display=\"flex\"\n flexDirection={direction}\n flexWrap={wrap}\n justifyContent={justify}\n />\n )\n}\n","import type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\n\n/** @public */\nexport const DEFAULT_GRID_ELEMENT = 'div'\n\n/** @public */\nexport type GridOwnProps = Omit<BoxOwnProps, 'display'>\n\n/** @public */\nexport type GridElementType = BoxElementType\n\n/** @public */\nexport type GridProps<E extends GridElementType = GridElementType> = Props<GridOwnProps, E>\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport function Grid<E extends GridElementType = typeof DEFAULT_GRID_ELEMENT>(props: GridProps<E>) {\n const {\n as = DEFAULT_GRID_ELEMENT,\n children,\n ...rest\n } = props as GridProps<typeof DEFAULT_GRID_ELEMENT>\n\n return (\n <Box data-ui=\"Grid\" {...rest} as={as} display=\"grid\">\n {children}\n </Box>\n )\n}\n","import {kbd, type RadiusStyleProps, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {ComponentType, Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\nimport {Text} from '../text'\n\n/** @public */\nexport const DEFAULT_KBD_ELEMENT = 'kbd'\n\n/** @public */\nexport type KBDOwnProps = BoxOwnProps &\n RadiusStyleProps & {\n fontSize?: ResponsiveProp<FontTextSize>\n }\n\n/** @public */\nexport type KBDElementType = 'kbd' | ComponentType\n\n/** @public */\nexport type KBDProps<E extends KBDElementType = KBDElementType> = Props<KBDOwnProps, E>\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport function KBD<E extends KBDElementType = typeof DEFAULT_KBD_ELEMENT>(props: KBDProps<E>) {\n const {\n as = DEFAULT_KBD_ELEMENT,\n children,\n className,\n display = 'inline-block',\n fontSize = 0,\n padding = 1,\n radius = 2,\n ...rest\n } = props as KBDProps<typeof DEFAULT_KBD_ELEMENT>\n\n return (\n <Box\n data-ui=\"KBD\"\n {...rest}\n as={as as BoxElementType}\n className={kbd({className, radius})}\n display={display}\n muted\n padding={padding}\n >\n <Text as=\"span\" muted size={fontSize} weight=\"semibold\">\n {children}\n </Text>\n </Box>\n )\n}\n","import type {Middleware} from '@floating-ui/react-dom'\n\n/**\n * Custom floating-ui middleware which calculates transform-origin X + Y offsets\n * based on the current floating rect's dimensions and shift offset.\n *\n * Scaling popovers with these transform-origin offsets will give the effect of\n * popvers slightly 'growing' from the origin/reference element.\n *\n * This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.\n */\nexport const origin: Middleware = {\n name: '@sanity/ui/origin',\n fn({middlewareData, placement, rects}) {\n const [side] = placement.split('-')\n\n const floatingWidth = rects.floating.width\n const floatingHeight = rects.floating.height\n\n const shiftX = middlewareData.shift?.x || 0\n const shiftY = middlewareData.shift?.y || 0\n\n if (floatingWidth <= 0 || floatingHeight <= 0) {\n return {}\n }\n\n const isVerticalPlacement = ['bottom', 'top'].includes(side)\n\n const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement\n ? {\n originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),\n originY: side === 'bottom' ? 0 : 1,\n }\n : {\n originX: side === 'left' ? 1 : 0,\n originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),\n }\n\n return {\n data: {originX, originY},\n }\n },\n}\n\nfunction clamp(num: number, min: number, max: number) {\n return Math.min(Math.max(num, min), max)\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {_arrow, _arrowShape, _arrowStroke, _arrowStrokeMask, _arrowSvg, vars} from '@sanity/ui/css'\nimport {assignInlineVars} from '@vanilla-extract/dynamic'\nimport {useMemo} from 'react'\n\nimport type {ComponentType, Props} from '../../types'\nimport {compileCommands, getRoundedCommands, type Point} from './cmds'\n\n/** @internal */\nexport const DEFAULT_ARROW_ELEMENT = 'div'\n\n/** @internal */\nexport type ArrowOwnProps = {\n width: number\n height: number\n radius?: number\n}\n\n/** @internal */\nexport type ArrowElementType = 'div' | 'span' | ComponentType\n\n/** @internal */\nexport type ArrowProps<E extends ArrowElementType = ArrowElementType> = Props<ArrowOwnProps, E>\n\n/** @internal */\nexport function Arrow<E extends ArrowElementType = typeof DEFAULT_ARROW_ELEMENT>(\n props: ArrowProps<E>,\n) {\n const {\n as: Element = DEFAULT_ARROW_ELEMENT,\n width: w,\n height: h,\n radius = 0,\n style,\n ...rest\n } = props as ArrowProps<typeof DEFAULT_ARROW_ELEMENT>\n\n const center = w / 2\n\n const path = useMemo(() => {\n const points: Point[] = [\n {x: 0, y: 0},\n {x: radius, y: 0, radius},\n {x: center, y: h - 1, radius},\n {x: w - radius, y: 0, radius},\n {x: w, y: 0},\n ]\n\n const cmds = getRoundedCommands(points)\n\n return compileCommands(cmds)\n }, [center, h, radius, w])\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <Element\n {...rest}\n className={_arrow()}\n style={{\n ...style,\n ...assignInlineVars({[vars.arrow.size]: `${w}px`}),\n }}\n >\n <svg className={_arrowSvg()} width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect className={_arrowStrokeMask()} x={0} width={w} height={w} fill=\"white\" />\n </mask>\n <path className={_arrowStroke()} d={strokePath} mask=\"url(#stroke-mask)\" />\n <path className={_arrowShape()} d={fillPath} />\n </svg>\n </Element>\n )\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/context/boundaryElement',\n null,\n)\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport type {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/** @public */\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 {BREAKPOINTS} from '@sanity/ui/css'\nimport {useImperativeHandle, useMemo, useState} from 'react'\n\nimport {useElementSize} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/** @beta */\nexport const DEFAULT_ELEMENT_QUERY_ELEMENT = 'div'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type ElementQueryOwnProps = {\n media?: number[]\n}\n\n/** @beta */\nexport type ElementQueryElementType = 'div' | ComponentType\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type ElementQueryProps<E extends ElementQueryElementType = ElementQueryElementType> = Props<\n ElementQueryOwnProps,\n E\n>\n\nconst DEFAULT_BREAKPOINTS = Object.values(BREAKPOINTS)\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function ElementQuery<\n E extends ElementQueryElementType = typeof DEFAULT_ELEMENT_QUERY_ELEMENT,\n>(props: ElementQueryProps<E>) {\n const {\n as: Element = DEFAULT_ELEMENT_QUERY_ELEMENT,\n children,\n media: mediaProp,\n ref: forwardedRef,\n ...rest\n } = props as ElementQueryProps<typeof DEFAULT_ELEMENT_QUERY_ELEMENT>\n\n const breakpoints = mediaProp ?? DEFAULT_BREAKPOINTS\n\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(() => {\n const eq = findMaxBreakpoints(breakpoints, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [breakpoints, width])\n\n const min = useMemo(() => {\n const eq = findMinBreakpoints(breakpoints, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [breakpoints, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <Element data-ui=\"ElementQuery\" {...rest} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </Element>\n )\n}\n","import {isRecord} from '../../lib/isRecord'\nimport type {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {useContext} from 'react'\n\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport type {LayerContextValue} from './types'\n\n/** @public */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","import {type FocusEvent, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {Card, type CardElementType} from '../../primitives'\nimport type {Props} from '../../types'\nimport type {LayerElementType, LayerOwnProps} from './layer'\nimport {useLayer} from './useLayer'\n\n/** @internal */\nexport const DEFAULT_LAYER_CARD_ELEMENT = 'div'\n\n/** @internal */\nexport type LayerCardOwnProps = Omit<LayerOwnProps, 'zOffset'>\n\n/** @internal */\nexport type LayerCardElementType = LayerElementType\n\n/** @internal */\nexport type LayerCardProps<E extends LayerCardElementType = LayerCardElementType> = Props<\n LayerCardOwnProps,\n E\n>\n\n/** @internal */\nexport function LayerCard<E extends LayerCardElementType = typeof DEFAULT_LAYER_CARD_ELEMENT>(\n props: LayerCardProps<E>,\n) {\n const {\n as = DEFAULT_LAYER_CARD_ELEMENT,\n children,\n onActivate,\n onFocus,\n position = 'relative',\n ref: forwardedRef,\n style = EMPTY_RECORD,\n ...rest\n } = props as LayerCardProps<typeof DEFAULT_LAYER_CARD_ELEMENT>\n\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <Card\n data-ui=\"Layer\"\n {...rest}\n as={as as CardElementType}\n onFocus={handleFocus}\n position={position}\n ref={ref}\n style={{...style, zIndex}}\n >\n {children}\n </Card>\n )\n}\n","import type {Breakpoint, ResponsiveProp} from '@sanity/ui/css'\nimport {\n type ReactElement,\n type ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react'\n\nimport {useMediaIndex, useResponsiveProp} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport type {LayerContextValue} from './types'\n\n/** @public */\nexport interface LayerProviderProps {\n children?: ReactNode\n zOffset?: ResponsiveProp<number>\n}\n\n/** @public */\nexport function LayerProvider(props: LayerProviderProps): ReactElement {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useResponsiveProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = Object.values(zOffset).length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex) as Breakpoint\n const zIndex = parent ? parent.zIndex + (zOffset[mediaIndex] ?? 0) : (zOffset[mediaIndex] ?? 0)\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild, setSize, setChildLayers],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\n\nimport type {CardElementType, CardOwnProps} from '../../primitives'\nimport type {Props} from '../../types'\nimport {LayerCard} from './layerCard'\nimport {LayerProvider} from './layerProvider'\n\n/** @public */\nexport const DEFAULT_LAYER_ELEMENT = 'div'\n\n/** @public */\nexport type LayerOwnProps = CardOwnProps & {\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: ResponsiveProp<number>\n}\n\n/** @public */\nexport type LayerElementType = CardElementType\n\n/** @public */\nexport type LayerProps<E extends LayerElementType = LayerElementType> = Props<LayerOwnProps, E>\n\n/** @public */\nexport function Layer<E extends LayerElementType = typeof DEFAULT_LAYER_ELEMENT>(\n props: LayerProps<E>,\n) {\n const {\n as = DEFAULT_LAYER_ELEMENT,\n children,\n zOffset = 1,\n ...rest\n } = props as LayerProps<typeof DEFAULT_LAYER_ELEMENT>\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerCard {...rest} as={as}>\n {children}\n </LayerCard>\n </LayerProvider>\n )\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport type {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/context/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nexport const PortalContext = createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport type {PortalContextValue} from './types'\n\n/** @public */\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 type {ReactNode, ReactPortal} from 'react'\nimport {createPortal} from 'react-dom'\n\nimport {CardProvider, useCard} from '../../primitives'\nimport {usePortal} from './usePortal'\n\n/** @public */\nexport interface PortalProps {\n children: ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/** @public */\nexport function Portal(props: PortalProps): ReactPortal | null {\n const {children, __unstable_name: name} = props\n const card = useCard()\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) ||\n portal.elements?.['default']\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(\n <CardProvider\n // rendered={true}\n tone=\"transparent\" // card?.tone || 'default',\n scheme={card?.scheme || 'light'}\n >\n {children}\n </CardProvider>,\n portalElement,\n )\n}\n","import {type ReactElement, type ReactNode, useMemo, useRef, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './portalContext'\nimport type {PortalContextValue} from './types'\n\n/** @public */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/** @public */\nexport function PortalProvider(props: PortalProviderProps): ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nconst emptySubscribe = () => () => {}\n\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 */\nfunction 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\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n","import type {Placement, PopoverMargins} from '../../types'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n 'bottom': ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n 'left': ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n 'right': ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {detectOverflow, type Elements, type Middleware} from '@floating-ui/react-dom'\n\nimport type {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import type {Strategy} from '@floating-ui/react-dom'\nimport {popoverCard} from '@sanity/ui/css'\nimport {motion} from 'framer-motion'\nimport {type CSSProperties, type ForwardedRef, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport type {Placement, PopoverMargins} from '../../types'\nimport {Arrow, Layer, type LayerOwnProps, type LayerProps} from '../../utils'\nimport {Flex} from '../flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\n/** @internal */\nexport const DEFAULT_POPOVER_LAYER_ELEMENT = 'div'\n\n/** @internal */\nexport type PopoverLayerOwnProps = LayerOwnProps & {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: ForwardedRef<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n placement: Placement\n referenceWidth?: number\n strategy: Strategy\n x: number | null\n y: number | null\n}\n\n/** @internal */\nexport type PopoverLayerProps = PopoverLayerOwnProps & LayerProps<'div'>\n\n/** @internal */\nexport function PopoverLayer(props: PopoverLayerProps) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n maxWidth,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n referenceWidth,\n shadow,\n strategy,\n style,\n tone = 'inherit',\n x: xProp,\n y: yProp,\n ...rest\n } = props\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n top: y,\n width: referenceWidth,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, referenceWidth, style, x, y],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n // @ts-expect-error - TODO: fix this\n <Layer\n className={popoverCard()}\n data-ui=\"Popover\"\n {...rest}\n as={motion.div}\n data-context-tone={tone}\n data-placement={placement}\n flexDirection=\"column\"\n display=\"flex\"\n position={strategy}\n radius={radius}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n <Flex\n data-ui=\"Popover__wrapper\"\n direction=\"column\"\n flex={1}\n maxWidth={maxWidth}\n overflow={overflow}\n >\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </Layer>\n )\n}\n","import {\n arrow,\n autoUpdate,\n flip,\n hide,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {type MaxWidth, popover as popoverCss, type ResponsiveProp} from '@sanity/ui/css'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n type ForwardedRef,\n type ReactElement,\n type ReactNode,\n type Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {usePrefersReducedMotion, useResponsiveProp} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport type {ComponentType, Placement, PopoverMargins, Props} from '../../types'\nimport {type LayerOwnProps, Portal, useBoundaryElement, useLayer} from '../../utils'\nimport {CardProvider, useCard} from '../card'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {PopoverLayer} from './popoverLayer'\nimport type {PopoverUpdateCallback} from './types'\n\n/** @public */\nexport const DEFAULT_POPOVER_ELEMENT = 'div'\n\n/** @public */\nexport type PopoverOwnProps = Omit<LayerOwnProps, 'maxWidth'> & {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: ReactElement<{ref: ForwardedRef<HTMLElement>}>\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n *\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n /**\n * When true, blocks all pointer interaction with elements beneath the popover until closed.\n *\n * @beta\n * @defaultValue false\n */\n modal?: boolean\n open?: boolean\n placement?: Placement\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n /** @beta */\n updateRef?: Ref<PopoverUpdateCallback | undefined>\n width?: ResponsiveProp<MaxWidth>\n}\n\n/** @public */\nexport type PopoverElementType = 'div' | ComponentType\n\n/** @public */\nexport type PopoverProps<E extends PopoverElementType = PopoverElementType> = Props<\n PopoverOwnProps,\n E\n>\n\nfunction ViewportOverlay() {\n const {zIndex} = useLayer()\n\n return (\n <div\n style={{\n position: 'fixed',\n inset: 0,\n width: '100vw',\n height: '100vh',\n zIndex,\n }}\n />\n )\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport function Popover<E extends PopoverElementType = typeof DEFAULT_POPOVER_ELEMENT>(\n props: PopoverProps<E>,\n) {\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n as: as = DEFAULT_POPOVER_ELEMENT,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n className,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n modal,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius = 3,\n ref: forwardedRef,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = Z_OFFSETS.popover,\n updateRef,\n ...rest\n } = props as PopoverProps<typeof DEFAULT_POPOVER_ELEMENT>\n\n const card = useCard()\n\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const zOffset = useResponsiveProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>(undefined)\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${availableWidth}px`\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: referenceElement\n ? {\n reference: referenceElement,\n }\n : undefined,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n const childRef = getElementRef(childProp as any)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n // If a reference element is defined, we don't need to clone the child\n if (referenceElement) return childProp\n\n if (!childProp) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const node = (\n <>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned\n before the below popover card. */}\n {modal && <ViewportOverlay />}\n\n <PopoverLayer\n {...rest}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n as={as}\n className={popoverCss({className})}\n hidden={referenceHidden}\n maxWidth={widthProp}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n x={x}\n y={y}\n zOffset={zOffset}\n >\n {content}\n </PopoverLayer>\n </>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n <CardProvider\n tone={tone === 'inherit' ? (card?.tone ?? 'default') : tone}\n scheme={scheme ?? 'light'}\n >\n {node}\n </CardProvider>\n </Portal>\n ) : (\n node\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(\n element: ReactElement<{ref: ForwardedRef<HTMLElement>}>,\n): ForwardedRef<HTMLElement> {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return element.props.ref\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref\n}\n","import {type ResponsiveProp, stack} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\n\n/** @public */\nexport const DEFAULT_STACK_ELEMENT = 'div'\n\n/** @public */\nexport type StackOwnProps = Omit<\n BoxOwnProps,\n | 'align'\n | 'alignItems'\n | 'columns'\n | 'gridTemplateColumns'\n | 'direction'\n | 'display'\n | 'flexDirection'\n | 'gapX'\n | 'gapY'\n | 'justify'\n | 'justifyContent'\n | 'rows'\n | 'gridTemplateRows'\n> & {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type StackElementType = BoxElementType\n\n/** @public */\nexport type StackProps<E extends StackElementType = StackElementType> = Props<StackOwnProps, E>\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport function Stack<E extends StackElementType = typeof DEFAULT_STACK_ELEMENT>(\n props: StackProps<E>,\n) {\n const {\n as = DEFAULT_STACK_ELEMENT,\n className,\n gap,\n space,\n ...rest\n } = props as StackProps<typeof DEFAULT_STACK_ELEMENT>\n\n return (\n <Box\n data-ui=\"Stack\"\n {...rest}\n as={as}\n gridAutoRows=\"min\"\n className={stack({className})}\n display=\"grid\"\n gap={gap ?? space}\n />\n )\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {\n _inputElement,\n _inputPresentation,\n type InputStyleProps,\n type ResponsiveProp,\n textInput,\n textInputElement,\n textInputPrefix,\n textInputSuffix,\n} from '@sanity/ui/css'\nimport type {Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {\n type ElementType,\n isValidElement,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useCustomValidity, useResponsiveProp} from '../../hooks'\nimport {isRecord} from '../../lib/isRecord'\nimport type {ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Button, type ButtonProps} from '../button'\nimport {Text} from '../text'\n\n/** @public */\nexport const DEFAULT_TEXT_INPUT_ELEMENT = 'input'\n\n/** @public */\nexport type TextInputClearButtonProps = Omit<\n ButtonProps<'button'>,\n 'as' | 'onClick' | 'onMouseDown'\n>\n\n/** @public */\nexport type TextInputOwnProps = InputStyleProps & {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n icon?: ElementType | ReactNode\n iconRight?: ElementType | ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n prefix?: ReactNode\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n suffix?: ReactNode\n weight?: ThemeFontWeightKey\n}\n\n/** @public */\nexport type TextInputElementType = 'input' | ComponentType\n\n/** @public */\nexport type TextInputProps<E extends TextInputElementType = TextInputElementType> = Props<\n TextInputOwnProps,\n E\n>\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport function TextInput<E extends TextInputElementType = typeof DEFAULT_TEXT_INPUT_ELEMENT>(\n props: TextInputProps<E>,\n) {\n const {\n __unstable_disableFocusRing,\n as: Element = DEFAULT_TEXT_INPUT_ELEMENT,\n border = true,\n className,\n clearButton,\n disabled = false,\n fontSize = 2,\n gap,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding = 3,\n prefix,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n space = 3,\n suffix,\n customValidity,\n type = 'text',\n weight: _width, // eslint-disable-line @typescript-eslint/no-unused-vars\n width,\n ...rest\n } = props as TextInputProps<typeof DEFAULT_TEXT_INPUT_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n const responsivePadding = useResponsiveProp(padding)\n\n const withClearButton = Boolean(clearButton)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: 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 const clearButtonBoxPadding = useMemo(() => {\n return Object.fromEntries(\n Object.entries(responsivePadding).map(([key, value]) => {\n if (value === 0) return [key, 0]\n if (value === 1) return [key, 1]\n if (value === 2) return [key, 1]\n\n return [key, typeof value === 'number' ? value - 2 : 0]\n }),\n ) as ResponsiveProp<Space>\n }, [responsivePadding])\n\n const clearButtonPadding = useMemo(() => {\n return Object.fromEntries(\n Object.entries(responsivePadding).map(([key, value]) => {\n if (value === 0) return [key, 0]\n if (value === 1) return [key, 0]\n if (value === 2) return [key, 1]\n\n return [key, typeof value === 'number' ? value - 1 : 0]\n }),\n ) as ResponsiveProp<Space>\n }, [responsivePadding])\n\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (isRecord(clearButton) ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n\n return (\n <Box\n alignItems=\"center\"\n className={textInput({\n className,\n border,\n fontSize,\n padding,\n radius,\n gap: gap ?? space,\n width,\n })}\n data-icon-left={IconComponent ? '' : undefined}\n data-icon-right={IconRightComponent ? '' : undefined}\n data-invalid={customValidity ? '' : undefined}\n data-prefix={prefix ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-suffix={suffix ? '' : undefined}\n data-ui=\"TextInput\"\n display=\"flex\"\n >\n {prefix && (\n <Box className={textInputPrefix()} sizing=\"border\">\n <span>{prefix}</span>\n </Box>\n )}\n\n <Box className={textInputElement()} flex={1} position=\"relative\">\n <Element\n {...rest}\n className={_inputElement()}\n data-no-focus-ring={__unstable_disableFocusRing ? '' : undefined}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n <Box className={_inputPresentation()} position=\"absolute\">\n {IconComponent && (\n <Box padding={padding} position=\"absolute\" insetTop={0} insetLeft={0}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </Box>\n )}\n\n {!withClearButton && IconRightComponent && (\n <Box padding={padding} position=\"absolute\" insetTop={0} insetRight={0}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </Box>\n )}\n </Box>\n\n {!disabled && !readOnly && clearButton && (\n <Box\n insetTop={0}\n insetRight={0}\n padding={clearButtonBoxPadding}\n position=\"absolute\"\n style={{zIndex: 2}}\n >\n <Button\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n display=\"block\"\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 </Box>\n )}\n </Box>\n\n {suffix && (\n <Box className={textInputSuffix()} sizing=\"border\">\n <span>{suffix}</span>\n </Box>\n )}\n </Box>\n )\n}\n","import {type SetStateAction, useCallback, useRef, useState} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n return [state, onStateChange]\n}\n","// Based on https://github.com/radix-ui/primitives/blob/0bade6a704e5821b90a6da0f3d8cfa8a7711127d/packages/react/slot/src/Slot.tsx#L128-L150\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nexport function getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element.props as {ref?: React.Ref<unknown>}).ref\n }\n\n // Not DEV\n return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import type {Placement} from '../../types'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/context/tooltipDelayGroup',\n null,\n )\n","import {useContext} from 'react'\n\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {motion, type MotionStyle} from 'framer-motion'\nimport {type CSSProperties, type ForwardedRef, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport type {Placement} from '../../types'\nimport {Arrow, Layer, type LayerOwnProps, type LayerProps} from '../../utils'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\n/* @internal */\nexport const DEFAULT_TOOLTIP_LAYER_ELEMENT = 'div'\n\n/* @internal */\nexport interface TooltipLayerOwnProps extends LayerOwnProps {\n animate?: boolean\n arrow: boolean\n arrowRef: ForwardedRef<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n placement?: Placement\n}\n\n/** @internal */\nexport type TooltipLayerProps = TooltipLayerOwnProps & LayerProps<'div'>\n\n/** @internal */\nexport function TooltipLayer(props: TooltipLayerProps) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n tone = 'inherit',\n ...rest\n } = props\n\n const rootStyle: MotionStyle = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n // @ts-expect-error - TODO: fix this\n <Layer\n data-ui=\"Tooltip__layer\"\n {...rest}\n as={motion.div}\n data-animate={animate ? '' : undefined}\n data-placement={placement}\n padding={padding}\n radius={radius}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n tone={tone}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </Layer>\n )\n}\n","import {\n arrow,\n autoUpdate,\n flip,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {type RadiusStyleProps, type ShadowStyleProps, tooltip} from '@sanity/ui/css'\nimport type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n type FocusEvent,\n type HTMLAttributes,\n type MouseEvent as ReactMouseEvent,\n type ReactElement,\n type ReactNode,\n type RefAttributes,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport type {ComponentType, Placement, Props} from '../../types'\nimport {type LayerOwnProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {CardProvider, useCard} from '../card'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\nimport {TooltipLayer} from './tooltipLayer'\n\n/** @public */\nexport const DEFAULT_TOOLTIP_ELEMENT = 'div'\n\n/** @public */\nexport type TooltipOwnProps = LayerOwnProps &\n RadiusStyleProps &\n ShadowStyleProps & {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: ReactElement<HTMLAttributes<HTMLElement> & RefAttributes<HTMLElement>>\n content?: ReactNode\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n disabled?: boolean\n fallbackPlacements?: Placement[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n }\n\n/** @public */\nexport type TooltipElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TooltipProps<E extends TooltipElementType = TooltipElementType> = Props<\n TooltipOwnProps,\n E\n>\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport function Tooltip<E extends TooltipElementType = typeof DEFAULT_TOOLTIP_ELEMENT>(\n props: TooltipProps<E>,\n) {\n const boundaryElementContext = useBoundaryElement()\n\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n as = DEFAULT_TOOLTIP_ELEMENT,\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n className,\n content,\n delay,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 3,\n ref: forwardedRef,\n scheme,\n shadow = 2,\n zOffset = Z_OFFSETS.tooltip,\n tone = 'inherit',\n ...rest\n } = props as TooltipProps<typeof DEFAULT_TOOLTIP_ELEMENT>\n\n const card = useCard()\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: {reference: referenceElement},\n transform: false,\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n setIsGroupActive?.(open, groupedOpenDelay)\n setOpenTooltipId?.(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n setIsGroupActive?.(open, groupDeactivateDelay)\n setOpenTooltipId?.(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [\n isInsideGroup,\n openDelay,\n setIsGroupActive,\n setOpenTooltipId,\n tooltipId,\n closeDelay,\n setIsOpen,\n ],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent<HTMLElement>) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent<HTMLElement>) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip, isInsideGroup})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReferenceElement,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [\n referenceElement,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const node = (\n <TooltipLayer\n data-ui=\"Tooltip\"\n {...rest}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n as={as}\n className={tooltip({className})}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n tone={tone}\n zOffset={zOffset}\n >\n {content}\n </TooltipLayer>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n <CardProvider\n tone={tone === 'inherit' ? (card?.tone ?? 'default') : tone}\n scheme={scheme ?? 'light'}\n >\n {node}\n </CardProvider>\n </Portal>\n ) : (\n node\n ))\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n}\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n isInsideGroup,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n isInsideGroup: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip || isInsideGroup) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [isInsideGroup, showTooltip])\n}\n","import type {GapStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport type {FontTextSize, Space} from '@sanity/ui/theme'\n\nimport {Box, KBD} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_HOTKEYS_ELEMENT = 'kbd'\n\n/** @public */\nexport interface HotkeysOwnProps extends GapStyleProps, RadiusStyleProps {\n fontSize?: ResponsiveProp<FontTextSize>\n padding?: ResponsiveProp<Space>\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n keys?: string[]\n}\n\n/** @public */\nexport type HotkeysElementType = 'kbd' | ComponentType\n\n/** @public */\nexport type HotkeysProps<E extends HotkeysElementType = HotkeysElementType> = Props<\n HotkeysOwnProps,\n E\n>\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport function Hotkeys<E extends HotkeysElementType = typeof DEFAULT_HOTKEYS_ELEMENT>(\n props: HotkeysProps<E>,\n) {\n const {\n as = DEFAULT_HOTKEYS_ELEMENT,\n fontSize,\n gap,\n gapX,\n gapY,\n keys,\n padding,\n radius,\n space = 1,\n ...rest\n } = props as HotkeysProps<typeof DEFAULT_HOTKEYS_ELEMENT>\n\n if (!keys || keys.length === 0) {\n return undefined\n }\n\n return (\n <Box\n as={as}\n data-ui=\"Hotkeys\"\n {...rest}\n display=\"flex\"\n gap={gap ?? space}\n gapX={gapX}\n gapY={gapY}\n >\n {keys.map((key, i) => (\n <KBD fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </KBD>\n ))}\n </Box>\n )\n}\n","import {type MouseEvent as ReactMouseEvent} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: ReactMouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: ReactMouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: ReactMouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: ReactMouseEvent<HTMLElement>) => void\n}\n\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n '@sanity/ui/context/menu',\n null,\n)\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 {\n type KeyboardEvent,\n type KeyboardEventHandler,\n type MouseEvent,\n type MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\n const mounted = Boolean(rootElementRef.current)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, 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 [rootElementRef, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: 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: MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }, [rootElementRef, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = requestAnimationFrame(() => {\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 }\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 }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {menu, type PaddingStyleProps, type ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\n\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, type MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/** @public */\nexport const DEFAULT_MENU_ELEMENT = 'div'\n\n/** @public */\nexport type MenuOwnProps = PaddingStyleProps & {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n 'focusFirst'?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n 'focusLast'?: boolean\n 'gap'?: ResponsiveProp<Space>\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 /** @deprecated Use `gap` property instead. */\n 'space'?: ResponsiveProp<Space>\n 'aria-labelledby'?: string\n // 'onBlurCapture'?: (event: FocusEvent) => void\n}\n\n/** @public */\nexport type MenuElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type MenuProps<E extends MenuElementType = MenuElementType> = Props<MenuOwnProps, E>\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport function Menu<E extends MenuElementType = typeof DEFAULT_MENU_ELEMENT>(props: MenuProps<E>) {\n const {\n as = DEFAULT_MENU_ELEMENT,\n children,\n className,\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 gap,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n ref: forwardedRef,\n registerElement,\n shouldFocus: _shouldFocus,\n space = 1,\n ...rest\n } = props as MenuProps<typeof DEFAULT_MENU_ELEMENT>\n\n const shouldFocus =\n _shouldFocus ?? ((props.focusFirst && 'first') || (props.focusLast && 'last') || null)\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n } = useMenuController({\n onKeyDown,\n originElement,\n shouldFocus,\n rootElementRef: ref,\n })\n\n const unregisterElementRef = useRef<(() => void) | null>(null)\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n // Run cleanup of previously registered elements\n if (unregisterElementRef.current) {\n // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n // Since we can't change the `registerElement` implementation itself without making breaking change,\n // that is explained in the code comments for createGlobalScopedContext.tsx,\n // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n unregisterElementRef.current()\n unregisterElementRef.current = null\n }\n\n ref.current = el\n\n // Register root element (for nested menus)\n if (ref.current && registerElement) {\n unregisterElementRef.current = registerElement(ref.current)\n }\n },\n [registerElement],\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 useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\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 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 <Box\n data-ui=\"Menu\"\n {...rest}\n as={as}\n className={menu({className})}\n onKeyDown={handleKeyDown}\n overflow=\"auto\"\n outline=\"none\"\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack gap={gap ?? space}>{children}</Stack>\n </Box>\n </MenuContext.Provider>\n )\n}\n","import {menuDivider} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_MENU_DIVIDER_ELEMENT = 'hr'\n\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type MenuDividerOwnProps = {}\n\n/** @public */\nexport type MenuDividerElementType = 'div' | 'hr' | 'span' | ComponentType\n\n/** @public */\nexport type MenuDividerProps<E extends MenuDividerElementType = MenuDividerElementType> = Props<\n MenuDividerOwnProps,\n E\n>\n\n/** @public */\nexport function MenuDivider<E extends MenuDividerElementType = typeof DEFAULT_MENU_DIVIDER_ELEMENT>(\n props: MenuDividerProps<E>,\n) {\n const {\n as: Element = DEFAULT_MENU_DIVIDER_ELEMENT,\n className,\n ...rest\n } = props as MenuDividerProps<typeof DEFAULT_MENU_DIVIDER_ELEMENT>\n\n return <Element {...rest} className={menuDivider({className})} />\n}\n","import {_selectable, type SelectableStyleProps} from '@sanity/ui/css'\n\nimport type {ComponentType, Props, SelectableTone} from '../../types'\nimport {Box, type BoxOwnProps} from '../box'\n\n/** @internal */\nexport const DEFAULT_SELECTABLE_ELEMENT = 'button'\n\n/** @internal */\nexport type SelectableOwnProps = BoxOwnProps &\n SelectableStyleProps & {\n disabled?: boolean\n href?: string\n tone?: SelectableTone\n type?: 'button'\n }\n\n/** @internal */\nexport type SelectableElementType = 'button' | 'a' | ComponentType\n\n/** @internal */\nexport type SelectableProps<E extends SelectableElementType = SelectableElementType> = Props<\n SelectableOwnProps,\n E\n>\n\n/** @internal */\nexport function Selectable<E extends SelectableElementType = typeof DEFAULT_SELECTABLE_ELEMENT>(\n props: SelectableProps<E>,\n) {\n const {\n as = DEFAULT_SELECTABLE_ELEMENT,\n className,\n radius,\n tone,\n ...rest\n } = props as SelectableProps<typeof DEFAULT_SELECTABLE_ELEMENT>\n\n return <Box {...rest} as={as} className={_selectable({className, radius, tone})} />\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, type 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 type {RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport type {FontTextSize, Space, ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {\n type ElementType,\n isValidElement,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box, Flex, Popover, type PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport type {ComponentType, Props} from '../../types'\nimport {DEFAULT_MENU_ELEMENT, Menu, type MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/** @public */\nexport const DEFAULT_MENU_GROUP_ELEMENT = 'button'\n\n/** @public */\nexport type MenuGroupOwnProps = RadiusStyleProps & {\n disabled?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n gap?: ResponsiveProp<Space>\n icon?: ElementType | ReactNode\n menu?: Omit<\n MenuProps<typeof DEFAULT_MENU_ELEMENT>,\n | 'onClickOutside'\n | 'onEscape'\n | 'onItemClick'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'registerElement'\n | 'shouldFocus'\n | 'onBlurCapture'\n >\n padding?: ResponsiveProp<Space>\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n text?: ReactNode\n tone?: ThemeColorStateToneKey\n}\n\n/** @public */\nexport type MenuGroupElementType = 'button' | ComponentType\n\n/** @public */\nexport type MenuGroupProps<E extends MenuGroupElementType = MenuGroupElementType> = Props<\n MenuGroupOwnProps,\n E\n>\n\n/** @public */\nexport function MenuGroup<E extends MenuGroupElementType = typeof DEFAULT_MENU_GROUP_ELEMENT>(\n props: MenuGroupProps<E>,\n) {\n const {\n as = DEFAULT_MENU_GROUP_ELEMENT,\n children,\n fontSize = 1,\n gap,\n icon: IconComponent,\n menu: menuProps,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...rest\n } = props as MenuGroupProps<typeof DEFAULT_MENU_GROUP_ELEMENT>\n\n const menu = useMenu()\n\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n registerElement,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: 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: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event)\n\n setShouldFocus('first')\n setOpen(true)\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n 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 // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n {...menuProps}\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: KeyboardEvent<HTMLButtonElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\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 {...rest}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n as={as}\n data-pressed={as !== 'button' ? withinMenu : undefined}\n data-selected={!withinMenu && active ? '' : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n radius={radius}\n ref={setRootElement}\n tabIndex={-1}\n tone={tone}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={gap ?? space} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n","import type {\n GapStyleProps,\n PaddingStyleProps,\n RadiusStyleProps,\n ResponsiveProp,\n} from '@sanity/ui/css'\nimport type {FontTextSize, Space, ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {\n type ElementType,\n isValidElement,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box, Flex, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport type {ComponentType, Props} from '../../types'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/** @public */\nexport const DEFAULT_MENU_ITEM_ELEMENT = 'button'\n\n/** @public */\nexport type MenuItemOwnProps = GapStyleProps &\n PaddingStyleProps &\n RadiusStyleProps & {\n disabled?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n hotkeys?: string[]\n icon?: ElementType | ReactNode\n iconRight?: ElementType | ReactNode\n pressed?: boolean\n selected?: boolean\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n text?: ReactNode\n tone?: ThemeColorStateToneKey\n }\n\n/** @public */\nexport type MenuItemElementType = 'button' | 'a' | ComponentType\n\n/** @public */\nexport type MenuItemProps<E extends MenuItemElementType = MenuItemElementType> = Omit<\n Props<MenuItemOwnProps, E>,\n 'role'\n>\n\n/** @public */\nexport function MenuItem<E extends MenuItemElementType = typeof DEFAULT_MENU_ITEM_ELEMENT>(\n props: MenuItemProps<E>,\n) {\n const {\n as = DEFAULT_MENU_ITEM_ELEMENT,\n children,\n disabled,\n fontSize = 1,\n gap,\n gapX,\n gapY,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n ref: forwardedRef,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...rest\n } = props as MenuItemProps<typeof DEFAULT_MENU_ITEM_ELEMENT>\n\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n onItemMouseLeave: _onItemMouseLeave,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onMouseLeave\n const [rootElement, setRootElement] = useState<HTMLButtonElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLButtonElement | null>(null)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\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((el: HTMLButtonElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...rest}\n as={as}\n data-pressed={pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n radius={radius}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n role=\"menuitem\"\n tabIndex={-1}\n tone={tone}\n type={as === 'button' ? 'button' : undefined}\n >\n {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={gap ?? space} gapX={gapX} gapY={gapY} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text muted size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && <Hotkeys keys={hotkeys} style={{marginTop: -4, marginBottom: -4}} />}\n\n {IconRightComponent && (\n <Text muted size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\nimport type {FontTextSize, Space, ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {\n type ElementType,\n type FocusEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {Button} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TAB_ELEMENT = 'button'\n\n/** @public */\nexport type TabOwnProps = {\n /**\n * The `id` of the corresponding `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'icon'?: ElementType | ReactNode\n 'focused'?: boolean\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'label'?: ReactNode\n 'padding'?: ResponsiveProp<Space>\n 'selected'?: boolean\n 'tone'?: ThemeColorStateToneKey\n}\n\n/** @public */\nexport type TabElementType = 'button' | ComponentType\n\n/** @public */\nexport type TabProps<E extends TabElementType = TabElementType> = Props<TabOwnProps, E>\n\n/** @public */\nexport function Tab<E extends TabElementType = typeof DEFAULT_TAB_ELEMENT>(props: TabProps<E>) {\n const {\n as = DEFAULT_TAB_ELEMENT,\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n ref: forwardedRef,\n selected,\n ...rest\n } = props as TabProps<typeof DEFAULT_TAB_ELEMENT>\n\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <Button\n data-ui=\"Tab\"\n {...rest}\n aria-selected={selected ? 'true' : 'false'}\n as={as}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n}\n","import {type ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n Children,\n cloneElement,\n type KeyboardEvent,\n type ReactElement,\n useCallback,\n useState,\n} from 'react'\n\nimport {Flex, type FlexOwnProps} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\nimport type {TabProps} from './tab'\n\n/** @public */\nexport const DEFAULT_TAB_LIST_ELEMENT = 'div'\n\n/** @public */\nexport type TabListChild = ReactElement<Props<TabProps, 'button'>> | null | undefined | false\n\n/** @public */\nexport type TabListOwnProps = Omit<FlexOwnProps, 'as' | 'height'> & {\n children: TabListChild[]\n /** @deprecated Use `gap` instead */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type TabListElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TabListProps<E extends TabListElementType = TabListElementType> = Props<\n TabListOwnProps,\n E\n>\n\n/** @public */\nexport function TabList<E extends TabListElementType = typeof DEFAULT_TAB_LIST_ELEMENT>(\n props: TabListProps<E>,\n) {\n const {\n as = DEFAULT_TAB_LIST_ELEMENT,\n children: childrenProp,\n gap = 1,\n space = 1,\n wrap = 'nowrap',\n ...rest\n } = props as TabListProps<typeof DEFAULT_TAB_LIST_ELEMENT>\n\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children = Children.toArray(childrenProp).filter(_isReactElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: 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 <Flex\n data-ui=\"TabList\"\n {...rest}\n as={as}\n gap={gap ?? space}\n onKeyDown={handleKeyDown}\n role=\"tablist\"\n wrap={wrap}\n >\n {tabs}\n </Flex>\n )\n}\n\nfunction _isReactElement(node: unknown): node is ReactElement<Props<TabProps, 'button'>> {\n return Boolean(node)\n}\n"],"names":["getGlobalScope","globalThis","window","self","global","Error","globalScope","createGlobalScopedContext","key","defaultValue","symbol","Symbol","for","document","createContext","CardContext","CardProvider","props","$","_c","children","tone","scheme","unstable_CompatProvider","t0","t1","t2","jsx","ThemeContext","ThemeProvider","parentTheme","useContext","rootTheme","theme","bb0","version","themeContext","bb1","getScopedTheme","StyledThemeProvider","t3","t4","ThemeColorProvider","useRootTheme","value","root","useTheme","useStyledTheme","useTheme_v2","getTheme_v2","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_PROPS","card","initial","scale","willChange","hidden","opacity","visible","transition","when","duration","POPOVER_MOTION_DURATION","scaleIn","scaleOut","type","visualDuration","bounce","Z_OFFSETS","dialog","popover","tooltip","_isEnterToClickElement","element","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","contains","isArray","val","Array","isRecord","Boolean","_getArrayProp","defaultVal","undefined","_getResponsiveProp","useClickOutsideEvent","listener","boundaryElement","elementsArg","_temp","evt","target","resolvedBoundaryElement","elements","flat","el","onEvent","useEffectEvent","hasListener","handleEvent","evt_0","addEventListener","removeEventListener","useEffect","useDebugValue","useCustomValidity","ref","customValidity","current","setCustomValidity","_ResizeObserver","ResizeObserver","ResizeObserverPolyfill","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscribe","subscriber","resizeObserver","entry","_contentRect","contentRect","border","width","borderBoxSize","inlineSize","height","blockSize","content","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","push","idx","indexOf","splice","length","useElementSize","size","setSize","useState","useGlobalKeyDown","onKeyDown","event","handleKeyDown","handler","event_0","useMatchMedia","mediaQueryString","getServerSnapshot","onStoreChange","media","matchMedia","matches","useSyncExternalStore","Object","values","BREAKPOINTS","_getMediaQuery","index","_createMediaStore","mediaLen","sizes","getSizes","mediaQuery","mq","getSnapshot","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","useResponsiveProp","JSON","stringify","setCache","cachedVal","cachedHash","hash","DEFAULT_BOX_ELEMENT","Box","alignItems","autoCols","autoFlow","autoRows","borderBottom","borderLeft","borderRight","borderTop","className","column","columnEnd","columnStart","columns","flex","flexDirection","flexWrap","gap","gapX","gapY","gridAutoColumns","gridAutoFlow","gridAutoRows","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","gridTemplateColumns","gridTemplateRows","inset","insetBottom","insetLeft","insetRight","insetTop","justifyContent","marginBottom","marginLeft","marginRight","marginTop","marginX","marginY","maxWidth","muted","outline","overflow","overflowX","overflowY","paddingBottom","paddingLeft","paddingRight","paddingTop","paddingX","paddingY","pointerEvents","position","radius","rest","row","rowEnd","rowStart","rows","shadow","t5","t6","t7","t8","textAlign","as","display","margin","minHeight","minWidth","padding","sizing","Element","t9","box","t10","DEFAULT_TEXT_ELEMENT","Text","accent","align","textOverflowProp","textOverflow","weight","text","AnimatedSpinnerIcon","animatedSpinnerIcon","SpinnerIcon","DEFAULT_SPINNER_ELEMENT","Spinner","spinner","DEFAULT_BUTTON_ELEMENT","Button","disabled","fontSize","space","icon","IconComponent","iconRight","IconRightComponent","justify","loading","mode","selected","textWeight","href","jsxs","button","buttonLoadingBox","isValidElement","isValidElementType","useCard","DEFAULT_CARD_ELEMENT","Card","pressed","schemeProp","style","__unstable_checkered","__unstable_focusRing","checkered","focusRing","toneProp","parent","t11","t12","t13","t14","t15","t16","t17","CompatProvider","t18","t19","t20","LazyRefractor","lazy","DEFAULT_CODE_ELEMENT","Code","languageProp","language","code","Suspense","DEFAULT_FLEX_ELEMENT","Flex","wrap","direction","DEFAULT_GRID_ELEMENT","Grid","DEFAULT_KBD_ELEMENT","KBD","kbd","origin","name","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","x","shiftY","y","isVerticalPlacement","includes","originX","originY","clamp","data","num","min","max","Math","moveTowardsLength","movingPoint","targetPoint","amount","distance","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","len","cmds","i","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","compileCommands","map","n","join","DEFAULT_ARROW_ELEMENT","Arrow","h","w","center","path","strokePath","fillPath","_arrow","assignInlineVars","vars","arrow","_arrowSvg","_arrowStrokeMask","_arrowStroke","_arrowShape","BoundaryElementContext","DEFAULT_VALUE","useBoundaryElement","findMaxBreakpoints","ret","findMinBreakpoints","DEFAULT_ELEMENT_QUERY_ELEMENT","DEFAULT_BREAKPOINTS","ElementQuery","forwardedRef","mediaProp","breakpoints","setElement","elementSize","innerWidth","eq","eq_0","useImperativeHandle","getLayerContext","contextValue","LayerContext","useLayer","err","message","DEFAULT_LAYER_CARD_ELEMENT","LayerCard","onActivate","onFocus","zIndex","isTopLayer","lastFocusedRef","useRef","isTopLayerRef","activeElement","rootElement","handleFocus","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","level","maxMediaIndex","mediaIndex","setChildLayers","childLevel","parentDispose","state","prevLen","nextState","keys","state_0","nextState_0","_temp2","v_0","v","DEFAULT_LAYER_ELEMENT","Layer","elementKey","defaultContextValue","createElement","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","createPortal","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","valueRef","_isEqual","objA","objB","keysA","keysB","every","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","options","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","Infinity","maxHeight","floatingW","floatingH","left","right","top","bottom","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","PopoverLayer","animate","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","popoverCard","motion","div","DEFAULT_POPOVER_ELEMENT","ViewportOverlay","Popover","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","modal","open","placementProp","preventOverflow","referenceBoundary","referenceElement","widthProp","updateRef","referenceWidthRef","middleware","useMemo","flip","offset","mainAxis","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","useCallback","arrowEl","setFloating","setReference","childRef","getElementRef","child","cloneElement","Fragment","popoverCss","AnimatePresence","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","DEFAULT_STACK_ELEMENT","Stack","stack","DEFAULT_TEXT_INPUT_ELEMENT","TextInput","__unstable_disableFocusRing","clearButton","onClear","prefix","readOnly","suffix","t21","t22","t23","t24","t25","t26","t27","t28","_width","t29","t30","responsivePadding","withClearButton","handleClearMouseDown","preventDefault","stopPropagation","focus","handleClearClick","fromEntries","entries","clearButtonBoxPadding","_temp3","clearButtonPadding","clearButtonProps","textInput","textInputPrefix","textInputElement","_inputElement","_inputPresentation","t31","t32","t33","CloseIcon","t34","t35","textInputSuffix","t36","key_0","value_0","useDelayedState","initialState","setState","delayedAction","delay","action","clearTimeout","setTimeout","onStateChange","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipDelayGroupContext","useTooltipDelayGroup","TooltipLayer","DEFAULT_TOOLTIP_ELEMENT","Tooltip","portalProp","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","transform","tooltipId","useId","isOpen","setIsOpen","delayGroupContext","setIsGroupActive","setOpenTooltipId","showTooltip","openTooltipId","isInsideGroup","openDelayProp","closeDelayProp","close","openDelay","closeDelay","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","handleBlur","e","onBlur","handleClick","onClick","handleContextMenu","onContextMenu","handleMouseEnter","onMouseEnter","handleMouseLeave","onMouseLeave","handleWindowKeyDown","useLayoutEffect","availableWidths","offsetWidth","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove","DEFAULT_HOTKEYS_ELEMENT","Hotkeys","MenuContext","_isFocusable","getAttribute","_getFocusableElements","filter","_getDOMPath","parentElement","from","childNodes","unshift","EMPTY_PATH","_sortElements","_sort","a","b","_a","_b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","rootElementRef","elementsRef","activeIndex","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","currentIndex","focusableElements","focusableLen","focusedElement","focusedIndex","handleItemMouseEnter","currentTarget","handleItemMouseLeave","rafId","requestAnimationFrame","cancelAnimationFrame","DEFAULT_MENU_ELEMENT","Menu","_shouldFocus","onClickOutside","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","menu","DEFAULT_MENU_DIVIDER_ELEMENT","MenuDivider","menuDivider","DEFAULT_SELECTABLE_ELEMENT","Selectable","_selectable","useMenu","DEFAULT_MENU_GROUP_ELEMENT","MenuGroup","menuProps","_onItemMouseEnter","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","ChevronRightIcon","DEFAULT_MENU_ITEM_ELEMENT","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","setRef","DEFAULT_TAB_ELEMENT","Tab","focused","id","label","focusedRef","DEFAULT_TAB_LIST_ELEMENT","TabList","childrenProp","setFocusedIndex","Children","toArray","_isReactElement","childIndex","tabs","numTabs","prevIndex","prevIndex_0"],"mappings":"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"}
|