@sanity/ui 3.0.0-static.2 → 3.0.0-static.4
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/dist/_chunks-cjs/_visual-editing.js +197 -168
- package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
- package/dist/_chunks-cjs/buildCommand.js +1 -1
- package/dist/_chunks-cjs/buildCommand.js.map +1 -1
- package/dist/_chunks-cjs/refractor.js.map +1 -1
- package/dist/_chunks-es/_visual-editing.mjs +200 -171
- package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
- package/dist/_chunks-es/refractor.mjs.map +1 -1
- package/dist/_visual-editing.d.mts +3 -1
- package/dist/_visual-editing.d.ts +3 -1
- package/dist/cli.js +1 -1
- package/dist/css.d.mts +186 -164
- package/dist/css.d.ts +186 -164
- package/dist/css.js +1983 -1949
- package/dist/css.js.map +1 -1
- package/dist/css.mjs +1984 -1949
- package/dist/css.mjs.map +1 -1
- package/dist/index.d.mts +32 -3
- package/dist/index.d.ts +32 -3
- package/dist/index.js +18 -17
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +19 -18
- package/dist/index.mjs.map +1 -1
- package/dist/sanity-palette.css +1 -9
- package/dist/sanity-theme.css +1 -1
- package/dist/system.css +22805 -3569
- package/dist/theme.d.mts +4 -46
- package/dist/theme.d.ts +4 -46
- package/dist/theme.js +20 -69
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs +20 -69
- package/dist/theme.mjs.map +1 -1
- package/exports/_visual-editing.ts +27 -27
- package/exports/index.ts +1 -1
- package/package.json +40 -40
- package/src/cli/buildCommand.ts +2 -2
- package/src/css/_comp.test.ts +7 -0
- package/src/css/_comp.ts +11 -0
- package/src/css/_mergeStyles.ts +31 -0
- package/src/css/_resp.ts +12 -5
- package/src/css/_responsiveRule.ts +38 -0
- package/src/css/aspects/border/border.style.ts +13 -0
- package/src/css/aspects/border/border.ts +14 -0
- package/src/css/aspects/display/display.style.ts +34 -0
- package/src/css/aspects/flex/flex.style.ts +30 -0
- package/src/css/aspects/flex/flex.ts +13 -0
- package/src/css/aspects/flex/flexAlign.style.ts +12 -0
- package/src/css/aspects/flex/flexDirection.style.ts +11 -0
- package/src/css/aspects/flex/flexJustify.style.ts +13 -0
- package/src/css/aspects/flex/flexWrap.style.ts +10 -0
- package/src/css/aspects/flexItem/flex.style.ts +22 -0
- package/src/css/{styles → aspects}/flexItem/flexItem.ts +1 -1
- package/src/css/{styles → aspects}/flexItem/types.ts +17 -1
- package/src/css/{styles/font/rules.ts → aspects/font/font.style.ts} +28 -25
- package/src/css/{styles → aspects}/font/font.ts +2 -7
- package/src/css/aspects/gap/gap.style.ts +21 -0
- package/src/css/{styles → aspects}/grid/grid.ts +2 -2
- package/src/css/aspects/grid/gridAutoColumns.style.ts +11 -0
- package/src/css/aspects/grid/gridAutoFlow.style.ts +11 -0
- package/src/css/aspects/grid/gridAutoRows.style.ts +11 -0
- package/src/css/aspects/grid/gridColumns.style.ts +18 -0
- package/src/css/aspects/grid/gridRows.style.ts +18 -0
- package/src/css/aspects/gridItem/gridColumn.style.ts +20 -0
- package/src/css/aspects/gridItem/gridColumnEnd.style.ts +20 -0
- package/src/css/aspects/gridItem/gridColumnStart.style.ts +20 -0
- package/src/css/aspects/gridItem/gridRow.style.ts +20 -0
- package/src/css/aspects/gridItem/gridRowEnd.style.ts +20 -0
- package/src/css/aspects/gridItem/gridRowStart.style.ts +20 -0
- package/src/css/aspects/height/height.style.ts +9 -0
- package/src/css/aspects/height/height.ts +17 -0
- package/src/css/aspects/height/index.ts +1 -0
- package/src/css/{styles → aspects}/index.ts +1 -0
- package/src/css/aspects/inset/inset.style.ts +12 -0
- package/src/css/aspects/margin/margin.style.ts +46 -0
- package/src/css/aspects/maxWidth/maxWidth.style.ts +16 -0
- package/src/css/{styles → aspects}/maxWidth/types.ts +1 -1
- package/src/css/aspects/outline/outline.style.ts +9 -0
- package/src/css/aspects/overflow/overflow.style.ts +11 -0
- package/src/css/aspects/padding/padding.style.ts +46 -0
- package/src/css/aspects/pointerEvents/pointerEvents.style.ts +13 -0
- package/src/css/aspects/position/position.style.ts +12 -0
- package/src/css/{styles → aspects}/position/position.ts +1 -1
- package/src/css/aspects/radius/radius.style.ts +16 -0
- package/src/css/{styles → aspects}/radius/types.ts +1 -1
- package/src/css/aspects/shadow/shadow.style.ts +49 -0
- package/src/css/aspects/textOverflow/textOverflow.style.ts +21 -0
- package/src/css/aspects/textOverflow/textOverflow.ts +6 -0
- package/src/css/{styles → aspects}/width/rules.ts +1 -0
- package/src/css/{styles → aspects}/width/types.ts +1 -1
- package/src/css/aspects/width/width.style.ts +11 -0
- package/src/css/compile/compilePalette.ts +8 -41
- package/src/css/compile/compileRule.ts +7 -1
- package/src/css/compile/compileRules.test.ts +1 -0
- package/src/css/compile/compileRules.ts +6 -3
- package/src/css/compile/compileStyle.ts +148 -0
- package/src/css/compile/compileSystem.ts +6 -3
- package/src/css/compile/compileTheme_v3.ts +0 -18
- package/src/css/components/breadcrumbs/breadcrumbs.style.ts +9 -0
- package/src/css/components/breadcrumbs/breadcrumbs.ts +2 -2
- package/src/css/components/dialog/dialog.style.ts +79 -0
- package/src/css/components/dialog/dialog.ts +9 -8
- package/src/css/components/dialog/rules.ts +2 -0
- package/src/css/components/menu/menu.style.ts +17 -0
- package/src/css/components/menu/menu.ts +3 -3
- package/src/css/components/skeleton/rules.ts +1 -0
- package/src/css/components/skeleton/skeleton.style.ts +96 -0
- package/src/css/components/skeleton/skeleton.ts +7 -7
- package/src/css/components/skeleton/types.ts +1 -1
- package/src/css/components/toast/rules.ts +1 -0
- package/src/css/components/toast/toast.style.ts +20 -0
- package/src/css/components/toast/toast.ts +6 -6
- package/src/css/components/tree/tree.style.ts +55 -0
- package/src/css/components/tree/tree.ts +2 -2
- package/src/css/composeClassNames.ts +9 -5
- package/src/css/constants.ts +1 -0
- package/src/css/index.ts +2 -1
- package/src/css/primitives/_arrow/{rules.ts → _arrow.style.ts} +7 -5
- package/src/css/primitives/_arrow/_arrow.ts +6 -6
- package/src/css/primitives/_input/__workshop__/customInput.tsx +16 -0
- package/src/css/primitives/_input/__workshop__/index.ts +14 -0
- package/src/css/primitives/_input/{rules.ts → _input.style.ts} +19 -20
- package/src/css/primitives/_input/input.ts +12 -12
- package/src/css/primitives/_input/types.ts +1 -1
- package/src/css/primitives/_selectable/_contants.ts +1 -1
- package/src/css/primitives/_selectable/{rules.ts → _selectable.style.ts} +6 -3
- package/src/css/primitives/_selectable/selectable.ts +3 -3
- package/src/css/primitives/_selectable/types.ts +1 -1
- package/src/css/primitives/avatar/avatar.style.ts +175 -0
- package/src/css/primitives/avatar/avatar.ts +7 -7
- package/src/css/primitives/badge/badge.style.ts +22 -0
- package/src/css/primitives/badge/badge.ts +3 -3
- package/src/css/primitives/badge/types.ts +1 -1
- package/src/css/primitives/box/box.style.ts +31 -0
- package/src/css/primitives/box/box.ts +11 -6
- package/src/css/primitives/box/types.ts +3 -7
- package/src/css/primitives/button/_constants.ts +1 -1
- package/src/css/primitives/button/button.style.ts +179 -0
- package/src/css/primitives/button/button.ts +3 -3
- package/src/css/primitives/button/rules.ts +19 -10
- package/src/css/primitives/card/_constants.ts +2 -2
- package/src/css/primitives/card/card.style.ts +198 -0
- package/src/css/primitives/card/card.ts +4 -6
- package/src/css/primitives/card/rules.ts +2 -0
- package/src/css/primitives/card/types.ts +1 -1
- package/src/css/primitives/checkbox/checkbox.style.ts +154 -0
- package/src/css/primitives/checkbox/checkbox.ts +3 -3
- package/src/css/primitives/code/code.style.ts +62 -0
- package/src/css/primitives/code/code.ts +3 -3
- package/src/css/primitives/code/types.ts +1 -1
- package/src/css/primitives/container/container.style.ts +10 -0
- package/src/css/primitives/container/container.ts +3 -3
- package/src/css/primitives/heading/heading.style.ts +47 -0
- package/src/css/primitives/heading/heading.ts +5 -5
- package/src/css/primitives/heading/types.ts +1 -1
- package/src/css/primitives/kbd/kbd.style.ts +22 -0
- package/src/css/primitives/kbd/kbd.ts +3 -3
- package/src/css/primitives/kbd/types.ts +1 -1
- package/src/css/primitives/label/label.style.ts +48 -0
- package/src/css/primitives/label/label.ts +3 -3
- package/src/css/primitives/label/types.ts +1 -1
- package/src/css/primitives/popover/popover.style.ts +5 -0
- package/src/css/primitives/popover/popover.ts +2 -2
- package/src/css/primitives/radio/radio.style.ts +123 -0
- package/src/css/primitives/radio/radio.ts +2 -2
- package/src/css/primitives/select/select.style.ts +24 -0
- package/src/css/primitives/select/select.ts +3 -2
- package/src/css/primitives/spinner/rules.ts +1 -0
- package/src/css/primitives/spinner/spinner.style.ts +22 -0
- package/src/css/primitives/spinner/spinner.ts +3 -3
- package/src/css/primitives/switch/switch.style.ts +169 -0
- package/src/css/primitives/switch/switch.ts +6 -6
- package/src/css/primitives/text/text.style.ts +56 -0
- package/src/css/primitives/text/text.ts +3 -3
- package/src/css/primitives/text/types.ts +1 -1
- package/src/css/primitives/textArea/textArea.style.ts +9 -0
- package/src/css/primitives/textArea/textArea.ts +2 -1
- package/src/css/primitives/textInput/textInput.style.ts +167 -0
- package/src/css/primitives/textInput/textInput.ts +2 -2
- package/src/css/primitives/token/token.style.ts +49 -0
- package/src/css/primitives/tooltip/tooltip.style.ts +21 -0
- package/src/css/primitives/tooltip/tooltip.ts +3 -3
- package/src/css/scopeClassName.ts +6 -0
- package/src/css/system.style.ts +154 -0
- package/src/css/types.ts +145 -101
- package/src/css/utils/srOnly/srOnly.style.ts +14 -0
- package/src/css/varNames.ts +18 -5
- package/src/css/vars.ts +13 -0
- package/src/theme/_constants.ts +1 -1
- package/src/theme/_types.ts +2 -2
- package/src/theme/build/buildTheme.ts +2 -2
- package/src/theme/defaults/colorTokens.ts +2 -2
- package/src/theme/defaults/config.ts +1 -1
- package/src/theme/defaults/fonts.ts +4 -4
- package/src/theme/palette/constants.ts +1 -3
- package/src/theme/palette/types.ts +0 -12
- package/src/theme/v3/buildTheme_v3.ts +1 -2
- package/src/theme/v3/defaults.ts +12 -31
- package/src/theme/v3/types.ts +0 -3
- package/src/{core → ui}/StyleTags.tsx +1 -1
- package/src/ui/_compat/theme/themeContext.ts +10 -0
- package/src/{core → ui}/_compat/theme/themeProvider.tsx +15 -3
- package/src/{core → ui}/_compat/types.ts +11 -1
- package/src/{core → ui}/components/autocomplete/__workshop__/async.tsx +2 -1
- package/src/{core → ui}/components/autocomplete/__workshop__/constrainedHeight.tsx +6 -13
- package/src/{core → ui}/components/autocomplete/__workshop__/fullscreen.tsx +3 -4
- package/src/{core → ui}/components/autocomplete/__workshop__/index.ts +1 -1
- package/src/{core → ui}/components/autocomplete/autocomplete.tsx +5 -2
- package/src/{core → ui}/components/hotkeys/hotkeys.tsx +8 -10
- package/src/{core → ui}/components/toast/toast.tsx +0 -1
- package/src/ui/hooks/useMatchMedia.ts +28 -0
- package/src/{core → ui}/hooks/useMediaIndex/useMediaIndex.ts +6 -4
- package/src/{core → ui}/primitives/box/box.tsx +1 -0
- package/src/{core → ui}/primitives/button/button.tsx +6 -5
- package/src/{core → ui}/primitives/card/card.tsx +39 -19
- package/src/ui/primitives/card/cardContext.ts +10 -0
- package/src/ui/primitives/card/cardProvider.tsx +19 -0
- package/src/ui/primitives/card/index.ts +4 -0
- package/src/ui/primitives/card/types.ts +27 -0
- package/src/ui/primitives/card/useCard.ts +7 -0
- package/src/{core → ui}/primitives/heading/heading.tsx +1 -1
- package/src/{core → ui}/primitives/popover/__workshop__/OpenOnMountStory.tsx +1 -1
- package/src/{core → ui}/primitives/popover/__workshop__/SidePanelStory.tsx +7 -3
- package/src/{core → ui}/primitives/popover/popover.tsx +57 -48
- package/src/{core → ui}/primitives/popover/popoverCard.tsx +11 -4
- package/src/{core → ui}/primitives/select/select.tsx +3 -3
- package/src/{core → ui}/primitives/text/text.tsx +1 -1
- package/src/{core → ui}/primitives/tooltip/tooltip.test.tsx +2 -2
- package/src/{core → ui}/utils/layer/layerProvider.tsx +1 -1
- package/src/{core → ui}/utils/portal/portal.ts +15 -2
- package/src/{core → ui}/utils/virtualList/virtualList.tsx +2 -1
- package/src/core/_compat/theme/themeContext.ts +0 -10
- package/src/core/hooks/useMatchMedia.ts +0 -46
- package/src/core/primitives/card/index.ts +0 -2
- package/src/core/primitives/card/types.ts +0 -12
- package/src/css/primitives/badge/rules.ts +0 -22
- package/src/css/primitives/box/rules.ts +0 -28
- package/src/css/rules.ts +0 -113
- package/src/css/styles/border/border.ts +0 -22
- package/src/css/styles/border/rules.ts +0 -24
- package/src/css/styles/display/rules.ts +0 -62
- package/src/css/styles/flex/flex.ts +0 -20
- package/src/css/styles/flex/rules.ts +0 -28
- package/src/css/styles/flexItem/rules.ts +0 -12
- package/src/css/styles/gap/rules.ts +0 -34
- package/src/css/styles/grid/rules.ts +0 -146
- package/src/css/styles/gridItem/rules.ts +0 -96
- package/src/css/styles/inset/rules.ts +0 -16
- package/src/css/styles/margin/rules.ts +0 -64
- package/src/css/styles/maxWidth/rules.ts +0 -13
- package/src/css/styles/outline/rules.ts +0 -7
- package/src/css/styles/overflow/rules.ts +0 -9
- package/src/css/styles/padding/rules.ts +0 -62
- package/src/css/styles/pointerEvents/rules.ts +0 -11
- package/src/css/styles/position/rules.ts +0 -24
- package/src/css/styles/radius/rules.ts +0 -13
- package/src/css/styles/shadow/rules.ts +0 -53
- package/src/css/styles/textOverflow/rules.ts +0 -17
- package/src/css/styles/textOverflow/textOverflow.ts +0 -6
- package/src/css/utils/srOnly/rules.ts +0 -11
- /package/src/css/{styles → aspects}/border/index.ts +0 -0
- /package/src/css/{styles → aspects}/border/types.ts +0 -0
- /package/src/css/{styles → aspects}/display/display.ts +0 -0
- /package/src/css/{styles → aspects}/display/index.ts +0 -0
- /package/src/css/{styles → aspects}/display/types.ts +0 -0
- /package/src/css/{styles → aspects}/flex/index.ts +0 -0
- /package/src/css/{styles → aspects}/flex/types.ts +0 -0
- /package/src/css/{styles → aspects}/flexItem/index.ts +0 -0
- /package/src/css/{styles → aspects}/font/index.ts +0 -0
- /package/src/css/{styles → aspects}/font/types.ts +0 -0
- /package/src/css/{styles → aspects}/gap/gap.ts +0 -0
- /package/src/css/{styles → aspects}/gap/index.ts +0 -0
- /package/src/css/{styles → aspects}/gap/types.ts +0 -0
- /package/src/css/{styles → aspects}/grid/index.ts +0 -0
- /package/src/css/{styles → aspects}/grid/types.ts +0 -0
- /package/src/css/{styles → aspects}/gridItem/gridItem.ts +0 -0
- /package/src/css/{styles → aspects}/gridItem/index.ts +0 -0
- /package/src/css/{styles → aspects}/gridItem/types.ts +0 -0
- /package/src/css/{styles → aspects}/height/rules.ts +0 -0
- /package/src/css/{styles → aspects}/inset/index.ts +0 -0
- /package/src/css/{styles → aspects}/inset/inset.ts +0 -0
- /package/src/css/{styles → aspects}/inset/types.ts +0 -0
- /package/src/css/{styles → aspects}/margin/index.ts +0 -0
- /package/src/css/{styles → aspects}/margin/margin.ts +0 -0
- /package/src/css/{styles → aspects}/margin/types.ts +0 -0
- /package/src/css/{styles → aspects}/maxWidth/index.ts +0 -0
- /package/src/css/{styles → aspects}/maxWidth/maxWidth.ts +0 -0
- /package/src/css/{styles → aspects}/overflow/index.ts +0 -0
- /package/src/css/{styles → aspects}/overflow/overflow.ts +0 -0
- /package/src/css/{styles → aspects}/overflow/types.ts +0 -0
- /package/src/css/{styles → aspects}/padding/index.ts +0 -0
- /package/src/css/{styles → aspects}/padding/padding.ts +0 -0
- /package/src/css/{styles → aspects}/padding/types.ts +0 -0
- /package/src/css/{styles → aspects}/pointerEvents/index.ts +0 -0
- /package/src/css/{styles → aspects}/pointerEvents/pointerEvents.ts +0 -0
- /package/src/css/{styles → aspects}/pointerEvents/types.ts +0 -0
- /package/src/css/{styles → aspects}/position/index.ts +0 -0
- /package/src/css/{styles → aspects}/position/types.ts +0 -0
- /package/src/css/{styles → aspects}/radius/index.ts +0 -0
- /package/src/css/{styles → aspects}/radius/radius.ts +0 -0
- /package/src/css/{styles → aspects}/shadow/index.ts +0 -0
- /package/src/css/{styles → aspects}/shadow/shadow.ts +0 -0
- /package/src/css/{styles → aspects}/shadow/types.ts +0 -0
- /package/src/css/{styles → aspects}/textOverflow/index.ts +0 -0
- /package/src/css/{styles → aspects}/textOverflow/types.ts +0 -0
- /package/src/css/{styles → aspects}/width/index.ts +0 -0
- /package/src/css/{styles → aspects}/width/width.ts +0 -0
- /package/src/{core → ui}/_compat/index.ts +0 -0
- /package/src/{core → ui}/_compat/styles/_responsive.ts +0 -0
- /package/src/{core → ui}/_compat/styles/index.ts +0 -0
- /package/src/{core → ui}/_compat/theme/index.ts +0 -0
- /package/src/{core → ui}/_compat/theme/theme.test.tsx +0 -0
- /package/src/{core → ui}/_compat/theme/themeColorProvider.tsx +0 -0
- /package/src/{core → ui}/_compat/theme/types.ts +0 -0
- /package/src/{core → ui}/_compat/theme/useRootTheme.ts +0 -0
- /package/src/{core → ui}/_compat/theme/useTheme.ts +0 -0
- /package/src/{core → ui}/components/autocomplete/__mocks__/apiStore.ts +0 -0
- /package/src/{core → ui}/components/autocomplete/__mocks__/countries.ts +0 -0
- /package/src/{core → ui}/components/autocomplete/__workshop__/custom.tsx +0 -0
- /package/src/{core → ui}/components/autocomplete/__workshop__/example.tsx +0 -0
- /package/src/{core → ui}/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -0
- /package/src/{core → ui}/components/autocomplete/__workshop__/types.ts +0 -0
- /package/src/{core → ui}/components/autocomplete/autocompleteOption.tsx +0 -0
- /package/src/{core → ui}/components/autocomplete/autocompleteReducer.ts +0 -0
- /package/src/{core → ui}/components/autocomplete/constants.ts +0 -0
- /package/src/{core → ui}/components/autocomplete/index.ts +0 -0
- /package/src/{core → ui}/components/autocomplete/types.ts +0 -0
- /package/src/{core → ui}/components/breadcrumbs/__workshop__/example.tsx +0 -0
- /package/src/{core → ui}/components/breadcrumbs/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/components/breadcrumbs/breadcrumbs.tsx +0 -0
- /package/src/{core → ui}/components/breadcrumbs/index.ts +0 -0
- /package/src/{core → ui}/components/dialog/__workshop__/activate.tsx +0 -0
- /package/src/{core → ui}/components/dialog/__workshop__/autoFocus.tsx +0 -0
- /package/src/{core → ui}/components/dialog/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/components/dialog/__workshop__/layering.tsx +0 -0
- /package/src/{core → ui}/components/dialog/__workshop__/nested.tsx +0 -0
- /package/src/{core → ui}/components/dialog/__workshop__/onScroll.tsx +0 -0
- /package/src/{core → ui}/components/dialog/__workshop__/panes.tsx +0 -0
- /package/src/{core → ui}/components/dialog/__workshop__/position.tsx +0 -0
- /package/src/{core → ui}/components/dialog/__workshop__/props.tsx +0 -0
- /package/src/{core → ui}/components/dialog/__workshop__/provider.tsx +0 -0
- /package/src/{core → ui}/components/dialog/__workshop__/wrapped.tsx +0 -0
- /package/src/{core → ui}/components/dialog/dialog.tsx +0 -0
- /package/src/{core → ui}/components/dialog/dialogContext.ts +0 -0
- /package/src/{core → ui}/components/dialog/dialogProvider.tsx +0 -0
- /package/src/{core → ui}/components/dialog/index.ts +0 -0
- /package/src/{core → ui}/components/dialog/useDialog.ts +0 -0
- /package/src/{core → ui}/components/hotkeys/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/components/hotkeys/__workshop__/plain.tsx +0 -0
- /package/src/{core → ui}/components/hotkeys/index.ts +0 -0
- /package/src/{core → ui}/components/index.ts +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/asComponent.tsx +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/avatarMenu.tsx +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/closableMenuButton.tsx +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/constrainedInBoundary.tsx +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/customMenuItem.tsx +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/customSelectedState.tsx +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/disableFocusOnClose.tsx +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/groups.tsx +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/menuButton.tsx +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/menuGroupRight.tsx +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/nestedMenu.tsx +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/onCloseMenuButton.tsx +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/selectedItem.tsx +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/shouldFocus.tsx +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/tones.tsx +0 -0
- /package/src/{core → ui}/components/menu/__workshop__/withoutArrow.tsx +0 -0
- /package/src/{core → ui}/components/menu/helpers.ts +0 -0
- /package/src/{core → ui}/components/menu/index.ts +0 -0
- /package/src/{core → ui}/components/menu/menu.test.tsx +0 -0
- /package/src/{core → ui}/components/menu/menu.tsx +0 -0
- /package/src/{core → ui}/components/menu/menuButton.tsx +0 -0
- /package/src/{core → ui}/components/menu/menuContext.ts +0 -0
- /package/src/{core → ui}/components/menu/menuDivider.tsx +0 -0
- /package/src/{core → ui}/components/menu/menuGroup.tsx +0 -0
- /package/src/{core → ui}/components/menu/menuItem.tsx +0 -0
- /package/src/{core → ui}/components/menu/useMenu.ts +0 -0
- /package/src/{core → ui}/components/menu/useMenuController.ts +0 -0
- /package/src/{core → ui}/components/skeleton/__workshop__/delay.tsx +0 -0
- /package/src/{core → ui}/components/skeleton/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/components/skeleton/__workshop__/skeleton.tsx +0 -0
- /package/src/{core → ui}/components/skeleton/index.ts +0 -0
- /package/src/{core → ui}/components/skeleton/skeleton.tsx +0 -0
- /package/src/{core → ui}/components/skeleton/textSkeleton.tsx +0 -0
- /package/src/{core → ui}/components/tab/__workshop__/example.tsx +0 -0
- /package/src/{core → ui}/components/tab/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/components/tab/index.ts +0 -0
- /package/src/{core → ui}/components/tab/tab.tsx +0 -0
- /package/src/{core → ui}/components/tab/tabList.tsx +0 -0
- /package/src/{core → ui}/components/tab/tabPanel.tsx +0 -0
- /package/src/{core → ui}/components/toast/__workshop__/hook.tsx +0 -0
- /package/src/{core → ui}/components/toast/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/components/toast/__workshop__/toast.tsx +0 -0
- /package/src/{core → ui}/components/toast/index.ts +0 -0
- /package/src/{core → ui}/components/toast/toast.test.tsx +0 -0
- /package/src/{core → ui}/components/toast/toastContext.ts +0 -0
- /package/src/{core → ui}/components/toast/toastLayer.tsx +0 -0
- /package/src/{core → ui}/components/toast/toastProvider.tsx +0 -0
- /package/src/{core → ui}/components/toast/toastState.ts +0 -0
- /package/src/{core → ui}/components/toast/types.ts +0 -0
- /package/src/{core → ui}/components/toast/useToast.ts +0 -0
- /package/src/{core → ui}/components/tree/__workshop__/basic.perf.ts +0 -0
- /package/src/{core → ui}/components/tree/__workshop__/basic.tsx +0 -0
- /package/src/{core → ui}/components/tree/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/components/tree/__workshop__/tabFromElement.tsx +0 -0
- /package/src/{core → ui}/components/tree/helpers.ts +0 -0
- /package/src/{core → ui}/components/tree/index.ts +0 -0
- /package/src/{core → ui}/components/tree/tree.tsx +0 -0
- /package/src/{core → ui}/components/tree/treeContext.ts +0 -0
- /package/src/{core → ui}/components/tree/treeGroup.tsx +0 -0
- /package/src/{core → ui}/components/tree/treeItem.tsx +0 -0
- /package/src/{core → ui}/components/tree/types.ts +0 -0
- /package/src/{core → ui}/components/tree/useTree.ts +0 -0
- /package/src/{core → ui}/constants.ts +0 -0
- /package/src/{core → ui}/global.ts +0 -0
- /package/src/{core → ui}/helpers/animation.ts +0 -0
- /package/src/{core → ui}/helpers/element.ts +0 -0
- /package/src/{core → ui}/helpers/focus.ts +0 -0
- /package/src/{core → ui}/helpers/index.ts +0 -0
- /package/src/{core → ui}/helpers/props.ts +0 -0
- /package/src/{core → ui}/helpers/scroll.ts +0 -0
- /package/src/{core → ui}/hooks/index.ts +0 -0
- /package/src/{core → ui}/hooks/useArrayProp.ts +0 -0
- /package/src/{core → ui}/hooks/useClickOutside.test.tsx +0 -0
- /package/src/{core → ui}/hooks/useClickOutside.ts +0 -0
- /package/src/{core → ui}/hooks/useClickOutsideEvent.test.tsx +0 -0
- /package/src/{core → ui}/hooks/useClickOutsideEvent.ts +0 -0
- /package/src/{core → ui}/hooks/useCustomValidity.ts +0 -0
- /package/src/{core → ui}/hooks/useDelayed.test.ts +0 -0
- /package/src/{core → ui}/hooks/useDelayedState.ts +0 -0
- /package/src/{core → ui}/hooks/useElementRect/__workshop__/example.tsx +0 -0
- /package/src/{core → ui}/hooks/useElementRect/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/hooks/useElementRect/index.ts +0 -0
- /package/src/{core → ui}/hooks/useElementRect/useElementRect.ts +0 -0
- /package/src/{core → ui}/hooks/useElementSize.ts +0 -0
- /package/src/{core → ui}/hooks/useForwardedRef.ts +0 -0
- /package/src/{core → ui}/hooks/useGlobalKeyDown.ts +0 -0
- /package/src/{core → ui}/hooks/useIsomorphicEffect.ts +0 -0
- /package/src/{core → ui}/hooks/useMediaIndex/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/hooks/useMediaIndex/__workshop__/test.tsx +0 -0
- /package/src/{core → ui}/hooks/useMediaIndex/index.ts +0 -0
- /package/src/{core → ui}/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -0
- /package/src/{core → ui}/hooks/useMounted.ts +0 -0
- /package/src/{core → ui}/hooks/usePrefersDark.hydration.test.tsx +0 -0
- /package/src/{core → ui}/hooks/usePrefersDark.test.tsx +0 -0
- /package/src/{core → ui}/hooks/usePrefersDark.ts +0 -0
- /package/src/{core → ui}/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -0
- /package/src/{core → ui}/hooks/usePrefersReducedMotion.test.tsx +0 -0
- /package/src/{core → ui}/hooks/usePrefersReducedMotion.ts +0 -0
- /package/src/{core → ui}/index.ts +0 -0
- /package/src/{core → ui}/lib/createGlobalScopedContext.ts +0 -0
- /package/src/{core → ui}/lib/globalScope.ts +0 -0
- /package/src/{core → ui}/lib/isRecord.ts +0 -0
- /package/src/{core → ui}/middleware/origin.ts +0 -0
- /package/src/{core → ui}/observers/elementSizeObserver.ts +0 -0
- /package/src/{core → ui}/observers/index.ts +0 -0
- /package/src/{core → ui}/observers/resizeObserver.ts +0 -0
- /package/src/{core → ui}/primitives/_selectable/index.ts +0 -0
- /package/src/{core → ui}/primitives/_selectable/selectable.tsx +0 -0
- /package/src/{core → ui}/primitives/avatar/__workshop__/asButton.tsx +0 -0
- /package/src/{core → ui}/primitives/avatar/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/avatar/__workshop__/stack.tsx +0 -0
- /package/src/{core → ui}/primitives/avatar/__workshop__/withinButton.tsx +0 -0
- /package/src/{core → ui}/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -0
- /package/src/{core → ui}/primitives/avatar/avatar.tsx +0 -0
- /package/src/{core → ui}/primitives/avatar/avatarCounter.tsx +0 -0
- /package/src/{core → ui}/primitives/avatar/avatarStack.tsx +0 -0
- /package/src/{core → ui}/primitives/avatar/index.ts +0 -0
- /package/src/{core → ui}/primitives/avatar/types.ts +0 -0
- /package/src/{core → ui}/primitives/badge/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/badge/__workshop__/props.tsx +0 -0
- /package/src/{core → ui}/primitives/badge/__workshop__/tones.tsx +0 -0
- /package/src/{core → ui}/primitives/badge/badge.test.tsx +0 -0
- /package/src/{core → ui}/primitives/badge/badge.tsx +0 -0
- /package/src/{core → ui}/primitives/badge/index.ts +0 -0
- /package/src/{core → ui}/primitives/badge/types.ts +0 -0
- /package/src/{core → ui}/primitives/box/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/box/__workshop__/props.tsx +0 -0
- /package/src/{core → ui}/primitives/box/__workshop__/responsive.tsx +0 -0
- /package/src/{core → ui}/primitives/box/index.ts +0 -0
- /package/src/{core → ui}/primitives/button/__workshop__/custom.tsx +0 -0
- /package/src/{core → ui}/primitives/button/__workshop__/customIcons.tsx +0 -0
- /package/src/{core → ui}/primitives/button/__workshop__/disabled.tsx +0 -0
- /package/src/{core → ui}/primitives/button/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/button/__workshop__/mixedChildren.tsx +0 -0
- /package/src/{core → ui}/primitives/button/__workshop__/props.tsx +0 -0
- /package/src/{core → ui}/primitives/button/__workshop__/sanityUploadButton.tsx +0 -0
- /package/src/{core → ui}/primitives/button/__workshop__/stacked.tsx +0 -0
- /package/src/{core → ui}/primitives/button/__workshop__/styled1.tsx +0 -0
- /package/src/{core → ui}/primitives/button/__workshop__/styled2.tsx +0 -0
- /package/src/{core → ui}/primitives/button/__workshop__/uploadButton.tsx +0 -0
- /package/src/{core → ui}/primitives/button/button.test.tsx +0 -0
- /package/src/{core → ui}/primitives/button/index.ts +0 -0
- /package/src/{core → ui}/primitives/card/__workshop__/allTones.tsx +0 -0
- /package/src/{core → ui}/primitives/card/__workshop__/asButton.tsx +0 -0
- /package/src/{core → ui}/primitives/card/__workshop__/asComponent.tsx +0 -0
- /package/src/{core → ui}/primitives/card/__workshop__/checkered.tsx +0 -0
- /package/src/{core → ui}/primitives/card/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/card/__workshop__/interactive.tsx +0 -0
- /package/src/{core → ui}/primitives/card/__workshop__/listNavigation.tsx +0 -0
- /package/src/{core → ui}/primitives/card/__workshop__/props.tsx +0 -0
- /package/src/{core → ui}/primitives/card/__workshop__/selected.tsx +0 -0
- /package/src/{core → ui}/primitives/card/__workshop__/styled.tsx +0 -0
- /package/src/{core → ui}/primitives/checkbox/__workshop__/example.tsx +0 -0
- /package/src/{core → ui}/primitives/checkbox/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/checkbox/__workshop__/props.tsx +0 -0
- /package/src/{core → ui}/primitives/checkbox/__workshop__/readOnly.tsx +0 -0
- /package/src/{core → ui}/primitives/checkbox/__workshop__/tones.tsx +0 -0
- /package/src/{core → ui}/primitives/checkbox/checkbox.tsx +0 -0
- /package/src/{core → ui}/primitives/checkbox/index.ts +0 -0
- /package/src/{core → ui}/primitives/code/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/code/__workshop__/opticalAlignment.tsx +0 -0
- /package/src/{core → ui}/primitives/code/__workshop__/props.tsx +0 -0
- /package/src/{core → ui}/primitives/code/code.tsx +0 -0
- /package/src/{core → ui}/primitives/code/index.ts +0 -0
- /package/src/{core → ui}/primitives/code/refractor.tsx +0 -0
- /package/src/{core → ui}/primitives/container/__workshop__/example.tsx +0 -0
- /package/src/{core → ui}/primitives/container/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/container/container.tsx +0 -0
- /package/src/{core → ui}/primitives/container/index.ts +0 -0
- /package/src/{core → ui}/primitives/container/types.ts +0 -0
- /package/src/{core → ui}/primitives/flex/__workshop__/example.tsx +0 -0
- /package/src/{core → ui}/primitives/flex/__workshop__/gap.tsx +0 -0
- /package/src/{core → ui}/primitives/flex/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/flex/flex.tsx +0 -0
- /package/src/{core → ui}/primitives/flex/index.ts +0 -0
- /package/src/{core → ui}/primitives/grid/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/grid/__workshop__/responsive.tsx +0 -0
- /package/src/{core → ui}/primitives/grid/grid.tsx +0 -0
- /package/src/{core → ui}/primitives/grid/index.ts +0 -0
- /package/src/{core → ui}/primitives/heading/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/heading/__workshop__/opticalAlignment.tsx +0 -0
- /package/src/{core → ui}/primitives/heading/__workshop__/plain.tsx +0 -0
- /package/src/{core → ui}/primitives/heading/index.ts +0 -0
- /package/src/{core → ui}/primitives/index.ts +0 -0
- /package/src/{core → ui}/primitives/inline/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/inline/__workshop__/plain.tsx +0 -0
- /package/src/{core → ui}/primitives/inline/index.ts +0 -0
- /package/src/{core → ui}/primitives/inline/inline.tsx +0 -0
- /package/src/{core → ui}/primitives/inline/types.ts +0 -0
- /package/src/{core → ui}/primitives/kbd/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/kbd/__workshop__/plain.tsx +0 -0
- /package/src/{core → ui}/primitives/kbd/index.ts +0 -0
- /package/src/{core → ui}/primitives/kbd/kbd.tsx +0 -0
- /package/src/{core → ui}/primitives/label/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/label/__workshop__/opticalAlignment.tsx +0 -0
- /package/src/{core → ui}/primitives/label/__workshop__/plain.tsx +0 -0
- /package/src/{core → ui}/primitives/label/index.ts +0 -0
- /package/src/{core → ui}/primitives/label/label.tsx +0 -0
- /package/src/{core → ui}/primitives/popover/__workshop__/AlignedStory.tsx +0 -0
- /package/src/{core → ui}/primitives/popover/__workshop__/MarginsStory.tsx +0 -0
- /package/src/{core → ui}/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -0
- /package/src/{core → ui}/primitives/popover/__workshop__/PlainStory.tsx +0 -0
- /package/src/{core → ui}/primitives/popover/__workshop__/RecursiveStory.tsx +0 -0
- /package/src/{core → ui}/primitives/popover/__workshop__/TestStory.tsx +0 -0
- /package/src/{core → ui}/primitives/popover/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/popover/constants.ts +0 -0
- /package/src/{core → ui}/primitives/popover/floating-ui/size.ts +0 -0
- /package/src/{core → ui}/primitives/popover/helpers.ts +0 -0
- /package/src/{core → ui}/primitives/popover/index.ts +0 -0
- /package/src/{core → ui}/primitives/popover/types.ts +0 -0
- /package/src/{core → ui}/primitives/radio/__workshop__/example.tsx +0 -0
- /package/src/{core → ui}/primitives/radio/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/radio/__workshop__/plain.tsx +0 -0
- /package/src/{core → ui}/primitives/radio/index.ts +0 -0
- /package/src/{core → ui}/primitives/radio/radio.tsx +0 -0
- /package/src/{core → ui}/primitives/select/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/select/__workshop__/plain.tsx +0 -0
- /package/src/{core → ui}/primitives/select/__workshop__/readOnly.tsx +0 -0
- /package/src/{core → ui}/primitives/select/index.ts +0 -0
- /package/src/{core → ui}/primitives/spinner/__workshop__/Props.tsx +0 -0
- /package/src/{core → ui}/primitives/spinner/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/spinner/animatedSpinnerIcon.tsx +0 -0
- /package/src/{core → ui}/primitives/spinner/index.ts +0 -0
- /package/src/{core → ui}/primitives/spinner/spinner.tsx +0 -0
- /package/src/{core → ui}/primitives/stack/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/stack/__workshop__/plain.tsx +0 -0
- /package/src/{core → ui}/primitives/stack/index.ts +0 -0
- /package/src/{core → ui}/primitives/stack/stack.tsx +0 -0
- /package/src/{core → ui}/primitives/switch/__workshop__/example.tsx +0 -0
- /package/src/{core → ui}/primitives/switch/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/switch/__workshop__/props.tsx +0 -0
- /package/src/{core → ui}/primitives/switch/index.ts +0 -0
- /package/src/{core → ui}/primitives/switch/switch.tsx +0 -0
- /package/src/{core → ui}/primitives/text/__workshop__/colored.tsx +0 -0
- /package/src/{core → ui}/primitives/text/__workshop__/example.tsx +0 -0
- /package/src/{core → ui}/primitives/text/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/text/__workshop__/opticalAlignment.tsx +0 -0
- /package/src/{core → ui}/primitives/text/index.ts +0 -0
- /package/src/{core → ui}/primitives/textArea/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/textArea/__workshop__/plain.tsx +0 -0
- /package/src/{core → ui}/primitives/textArea/index.ts +0 -0
- /package/src/{core → ui}/primitives/textArea/textArea.tsx +0 -0
- /package/src/{core → ui}/primitives/textInput/__workshop__/clearButton.tsx +0 -0
- /package/src/{core → ui}/primitives/textInput/__workshop__/customValidity.tsx +0 -0
- /package/src/{core → ui}/primitives/textInput/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/textInput/__workshop__/plain.tsx +0 -0
- /package/src/{core → ui}/primitives/textInput/__workshop__/readOnly.tsx +0 -0
- /package/src/{core → ui}/primitives/textInput/__workshop__/states.tsx +0 -0
- /package/src/{core → ui}/primitives/textInput/__workshop__/tones.tsx +0 -0
- /package/src/{core → ui}/primitives/textInput/__workshop__/typed.tsx +0 -0
- /package/src/{core → ui}/primitives/textInput/index.ts +0 -0
- /package/src/{core → ui}/primitives/textInput/textInput.tsx +0 -0
- /package/src/{core → ui}/primitives/tooltip/__workshop__/customPortal.tsx +0 -0
- /package/src/{core → ui}/primitives/tooltip/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -0
- /package/src/{core → ui}/primitives/tooltip/__workshop__/props.tsx +0 -0
- /package/src/{core → ui}/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -0
- /package/src/{core → ui}/primitives/tooltip/constants.ts +0 -0
- /package/src/{core → ui}/primitives/tooltip/index.ts +0 -0
- /package/src/{core → ui}/primitives/tooltip/tooltip.tsx +0 -0
- /package/src/{core → ui}/primitives/tooltip/tooltipCard.tsx +0 -0
- /package/src/{core → ui}/primitives/tooltip/tooltipDelayGroup/index.ts +0 -0
- /package/src/{core → ui}/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -0
- /package/src/{core → ui}/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -0
- /package/src/{core → ui}/primitives/tooltip/tooltipDelayGroup/types.ts +0 -0
- /package/src/{core → ui}/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -0
- /package/src/{core → ui}/primitives/types.ts +0 -0
- /package/src/{core → ui}/types/avatar.ts +0 -0
- /package/src/{core → ui}/types/badge.ts +0 -0
- /package/src/{core → ui}/types/box.ts +0 -0
- /package/src/{core → ui}/types/button.ts +0 -0
- /package/src/{core → ui}/types/card.ts +0 -0
- /package/src/{core → ui}/types/dialog.ts +0 -0
- /package/src/{core → ui}/types/flex.ts +0 -0
- /package/src/{core → ui}/types/grid.ts +0 -0
- /package/src/{core → ui}/types/gridItem.ts +0 -0
- /package/src/{core → ui}/types/index.ts +0 -0
- /package/src/{core → ui}/types/placement.ts +0 -0
- /package/src/{core → ui}/types/popover.ts +0 -0
- /package/src/{core → ui}/types/props.ts +0 -0
- /package/src/{core → ui}/types/radius.ts +0 -0
- /package/src/{core → ui}/types/selectable.ts +0 -0
- /package/src/{core → ui}/types/text.ts +0 -0
- /package/src/{core → ui}/utils/arrow/arrow.tsx +0 -0
- /package/src/{core → ui}/utils/arrow/cmds.ts +0 -0
- /package/src/{core → ui}/utils/arrow/index.ts +0 -0
- /package/src/{core → ui}/utils/boundaryElement/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/utils/boundaryElement/__workshop__/plain.tsx +0 -0
- /package/src/{core → ui}/utils/boundaryElement/boundaryElement.test.tsx +0 -0
- /package/src/{core → ui}/utils/boundaryElement/boundaryElementContext.ts +0 -0
- /package/src/{core → ui}/utils/boundaryElement/boundaryElementProvider.tsx +0 -0
- /package/src/{core → ui}/utils/boundaryElement/index.ts +0 -0
- /package/src/{core → ui}/utils/boundaryElement/types.ts +0 -0
- /package/src/{core → ui}/utils/boundaryElement/useBoundaryElement.ts +0 -0
- /package/src/{core → ui}/utils/conditionalWrapper/conditionalWrapper.tsx +0 -0
- /package/src/{core → ui}/utils/conditionalWrapper/index.ts +0 -0
- /package/src/{core → ui}/utils/elementQuery/__workshop__/customMedia.tsx +0 -0
- /package/src/{core → ui}/utils/elementQuery/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/utils/elementQuery/elementQuery.tsx +0 -0
- /package/src/{core → ui}/utils/elementQuery/helpers.ts +0 -0
- /package/src/{core → ui}/utils/elementQuery/index.ts +0 -0
- /package/src/{core → ui}/utils/errorBoundary.tsx +0 -0
- /package/src/{core → ui}/utils/getElementRef.ts +0 -0
- /package/src/{core → ui}/utils/index.ts +0 -0
- /package/src/{core → ui}/utils/layer/__workshop__/_debug.tsx +0 -0
- /package/src/{core → ui}/utils/layer/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/utils/layer/__workshop__/multipleRoots.tsx +0 -0
- /package/src/{core → ui}/utils/layer/__workshop__/nested.tsx +0 -0
- /package/src/{core → ui}/utils/layer/__workshop__/responsiveZOffset.tsx +0 -0
- /package/src/{core → ui}/utils/layer/getLayerContext.test.ts +0 -0
- /package/src/{core → ui}/utils/layer/getLayerContext.ts +0 -0
- /package/src/{core → ui}/utils/layer/index.ts +0 -0
- /package/src/{core → ui}/utils/layer/layer.test.tsx +0 -0
- /package/src/{core → ui}/utils/layer/layer.tsx +0 -0
- /package/src/{core → ui}/utils/layer/layerContext.ts +0 -0
- /package/src/{core → ui}/utils/layer/types.ts +0 -0
- /package/src/{core → ui}/utils/layer/useLayer.ts +0 -0
- /package/src/{core → ui}/utils/portal/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/utils/portal/__workshop__/named.tsx +0 -0
- /package/src/{core → ui}/utils/portal/index.ts +0 -0
- /package/src/{core → ui}/utils/portal/portal.test.tsx +0 -0
- /package/src/{core → ui}/utils/portal/portalContext.ts +0 -0
- /package/src/{core → ui}/utils/portal/portalProvider.tsx +0 -0
- /package/src/{core → ui}/utils/portal/types.ts +0 -0
- /package/src/{core → ui}/utils/portal/usePortal.ts +0 -0
- /package/src/{core → ui}/utils/spanWithTextOverflow.tsx +0 -0
- /package/src/{core → ui}/utils/srOnly/index.ts +0 -0
- /package/src/{core → ui}/utils/srOnly/srOnly.tsx +0 -0
- /package/src/{core → ui}/utils/virtualList/__workshop__/changingProps.tsx +0 -0
- /package/src/{core → ui}/utils/virtualList/__workshop__/elementScroll.tsx +0 -0
- /package/src/{core → ui}/utils/virtualList/__workshop__/index.ts +0 -0
- /package/src/{core → ui}/utils/virtualList/__workshop__/infiniteList.tsx +0 -0
- /package/src/{core → ui}/utils/virtualList/__workshop__/windowScrolll.tsx +0 -0
- /package/src/{core → ui}/utils/virtualList/index.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_visual-editing.js","sources":["../../src/core/lib/globalScope.ts","../../src/core/lib/createGlobalScopedContext.ts","../../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/_compat/types.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/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/conditionalWrapper/conditionalWrapper.tsx","../../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/layerProvider.tsx","../../src/core/utils/layer/useLayer.ts","../../src/core/utils/layer/layer.tsx","../../src/core/utils/portal/portalContext.ts","../../src/core/utils/portal/usePortal.ts","../../src/core/utils/portal/portal.ts","../../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/helpers.ts","../../src/core/primitives/popover/popoverCard.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/tooltipCard.tsx","../../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/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 {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext = createGlobalScopedContext<ThemeContextValue | null>(\n '@sanity/ui/context/theme',\n null,\n)\n","import {\n getScopedTheme,\n type RootTheme,\n type Theme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n} from '@sanity/ui/theme'\nimport {ReactElement, ReactNode, useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\n\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\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 <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n )\n}\n\nThemeProvider.displayName = 'ThemeProvider'\n","import {useContext} from 'react'\n\nimport {ThemeContext} from './themeContext'\nimport {ThemeContextValue} from './types'\n\n/**\n * @public\n */\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 {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ReactElement, ReactNode} from 'react'\n\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\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, Theme, Theme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n type BaseTheme as _BaseTheme,\n buildTheme,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeBoxShadow,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorSyntax as _ThemeColorSyntax,\n type ThemeColorToneKey,\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeStyles,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n type PartialThemeColorBuilderOpts,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgba as _rgba,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n screen as _screen,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\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","/**\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/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\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, 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 {useDebugValue, useMemo, 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 const {subscribe, getSnapshot} = useMemo(() => {\n /**\n * `subscribe` and `getSnapshot` are only called on the client and both need access to the same `matchMedia` instance\n * we don't want to eagerly instantiate it to ensure it's only created when actually used\n */\n let MEDIA_QUERY_CACHE: MediaQueryList | undefined\n\n const getMatchMedia = (): MediaQueryList => {\n if (!MEDIA_QUERY_CACHE) {\n // As this function is only called during `subscribe` and `getSnapshot`, we can assume that the\n // the `window` global is available and we're in a browser environment\n MEDIA_QUERY_CACHE = window.matchMedia(mediaQueryString)\n }\n\n return MEDIA_QUERY_CACHE\n }\n\n return {\n subscribe: (onStoreChange: () => void): (() => void) => {\n const matchMedia = getMatchMedia()\n\n matchMedia.addEventListener('change', onStoreChange)\n\n return () => matchMedia.removeEventListener('change', onStoreChange)\n },\n getSnapshot: () => getMatchMedia().matches,\n }\n }, [mediaQueryString])\n\n useDebugValue(mediaQueryString)\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot)\n}\n","import {useMemo, useSyncExternalStore} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\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}px)`\n }\n\n if (index === media.length) {\n return `screen and (min-width: ${media[index - 1]}px)`\n }\n\n return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(media: number[]): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n const {media} = useTheme_v2()\n const store = useMemo(() => _createMediaStore(media), [media])\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 {\n box,\n BoxStyleProps,\n composeClassNames,\n GapStyleProps,\n InsetStyleProps,\n PositionStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends BoxStyleProps,\n GapStyleProps,\n InsetStyleProps,\n PositionStyleProps {}\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport const Box = forwardRef(function Box(\n props: Props<BoxProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n align,\n as: As = 'div',\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n className,\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 overflow,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n muted,\n radius,\n row,\n rows,\n rowStart,\n rowEnd,\n sizing = 'border',\n width,\n wrap,\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Box\"\n {...restProps}\n className={composeClassNames(\n className,\n box({\n align,\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 overflow,\n margin,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n muted,\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 width,\n wrap,\n }),\n )}\n ref={ref}\n >\n {props.children}\n </As>\n )\n})\n\nBox.displayName = 'ForwardRef(Box)'\n","import {\n composeClassNames,\n FontStyleProps,\n label,\n LabelSize,\n ResponsiveProp,\n textOverflow,\n TextOverflowStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface LabelProps extends FontStyleProps, TextOverflowStyleProps {\n accent?: boolean\n htmlFor?: string\n muted?: boolean\n size?: ResponsiveProp<LabelSize>\n}\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n props: Props<LabelProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n as: As = 'div',\n children,\n className,\n muted = false,\n size = 1,\n textOverflow: textOverflowProp,\n weight = 'medium',\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Label\"\n {...restProps}\n className={composeClassNames(\n className,\n label({\n accent,\n align,\n muted,\n size,\n weight,\n }),\n )}\n ref={ref}\n >\n <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>\n </As>\n )\n})\n\nLabel.displayName = 'ForwardRef(Label)'\n","import {\n avatar,\n avatarArrow,\n avatarImage,\n avatarInitials,\n composeClassNames,\n ResponsiveProp,\n} from '@sanity/ui/css'\nimport {AvatarSize, ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useCallback, useEffect, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\n\nimport {useArrayProp} from '../../hooks'\nimport {AvatarPosition, AvatarStatus, Props} from '../../types'\nimport {Box} from '../box'\nimport {Label} from '../label'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n color?: ThemeColorAvatarColorKey\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 * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n props: Props<AvatarProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n className,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const As = ReactIs.isValidElementType(asProp) ? asProp : 'div'\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 <As\n // data-as={typeof As === 'string' ? As : undefined}\n data-hide-inner-stroke={__unstable_hideInnerStroke ? '' : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n aria-label={title}\n className={composeClassNames(className, avatar({color, size: sizeProp}))}\n data-arrow-position={arrowPosition}\n data-image-error={imageError ? '' : undefined}\n data-status={status}\n ref={ref}\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\n align=\"center\"\n as=\"span\"\n size={initialsSize}\n style={{color: 'inherit'}}\n weight=\"medium\"\n >\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 </As>\n )\n})\n\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {avatarCounter, composeClassNames, ResponsiveProp} from '@sanity/ui/css'\nimport {AvatarSize} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useMemo} from 'react'\n\nimport {useArrayProp} from '../../hooks'\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Label} from '../label'\n\n/**\n * @public\n */\nexport interface AvatarCounterProps\n extends Omit<BoxProps, 'align' | 'className' | 'display' | 'justify' | 'paddingX' | 'sizing'> {\n count: number\n size?: ResponsiveProp<AvatarSize>\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: Props<AvatarCounterProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, count, size: sizeProp = 1, ...restProps} = props\n const size = useArrayProp(sizeProp)\n\n const fontSize = 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 {...restProps}\n align=\"center\"\n className={composeClassNames(className, avatarCounter({size}))}\n display=\"flex\"\n justify=\"center\"\n paddingX={2}\n ref={ref}\n sizing=\"border\"\n >\n <Label align=\"center\" as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </Box>\n )\n})\n\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {avatarStack, composeClassNames, ResponsiveProp} from '@sanity/ui/css'\nimport {AvatarSize} from '@sanity/ui/theme'\nimport {Children, cloneElement, ForwardedRef, forwardRef, isValidElement, ReactElement} from 'react'\n\nimport {useArrayProp} from '../../hooks'\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {AvatarProps} from './avatar'\nimport {AvatarCounter} from './avatarCounter'\n\n/**\n * @public\n */\nexport type AvatarStackChild = ReactElement<Props<AvatarProps, 'div'>> | null | undefined | false\n\n/**\n * @public\n */\nexport interface AvatarStackProps extends Omit<BoxProps, 'align' | 'className' | 'display'> {\n children: AvatarStackChild | AvatarStackChild[]\n maxLength?: number\n size?: ResponsiveProp<AvatarSize>\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: Props<AvatarStackProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n className,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children = Children.toArray(childrenProp).filter(isValidElement) as ReactElement<\n Props<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 {...restProps}\n align=\"center\"\n className={composeClassNames(className, avatarStack({size}))}\n display=\"flex\"\n ref={ref}\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 = 'ForwardRef(AvatarStack)'\n","import {\n composeClassNames,\n text,\n textOverflow,\n TextOverflowStyleProps,\n TextStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface TextProps extends TextStyleProps, TextOverflowStyleProps {\n htmlFor?: string\n}\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = forwardRef(function Text(\n props: Props<TextProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n as: As = 'div',\n children,\n className,\n flex,\n muted = false,\n size = 1,\n textOverflow: textOverflowProp,\n weight,\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Text\"\n {...restProps}\n ref={ref}\n className={composeClassNames(\n className,\n text({\n accent,\n align,\n flex,\n muted,\n size,\n weight,\n }),\n )}\n >\n <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>\n </As>\n )\n})\n\nText.displayName = 'ForwardRef(Text)'\n","import {badge, composeClassNames, RadiusStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {BadgeMode, BadgeTone, Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text, TextProps} from '../text'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, RadiusStyleProps {\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n textAlign?: TextProps['align']\n tone?: BadgeTone\n}\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport const Badge = forwardRef(function Badge(\n props: Props<BadgeProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n className,\n display = 'inline-block',\n fontSize = 1,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n mode: _deprecated_mode,\n padding = 1,\n radius = 2,\n textAlign,\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <Box\n data-ui=\"Badge\"\n {...restProps}\n className={composeClassNames(\n className,\n badge({\n radius,\n tone,\n }),\n )}\n display={display}\n padding={padding}\n ref={ref}\n >\n <Text align={textAlign} size={fontSize}>\n {children}\n </Text>\n </Box>\n )\n})\n\nBadge.displayName = 'ForwardRef(Badge)'\n","import {SpinnerIcon} from '@sanity/icons'\nimport {animatedSpinnerIcon, composeClassNames} from '@sanity/ui/css'\nimport {ReactElement, SVGProps} from 'react'\n\n/** @internal */\nexport function AnimatedSpinnerIcon(props: SVGProps<SVGSVGElement>): ReactElement {\n const {className, ...restProps} = props\n\n return (\n <SpinnerIcon\n {...restProps}\n data-sanity-icon=\"animated-spinner\"\n className={composeClassNames(className, animatedSpinnerIcon())}\n />\n )\n}\n","import {ResponsiveProp, spinner} from '@sanity/ui/css'\nimport {FontTextSize} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Text} from '../text'\nimport {AnimatedSpinnerIcon} from './animatedSpinnerIcon'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: ResponsiveProp<FontTextSize>\n}\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = forwardRef(function Spinner(\n props: Props<SpinnerProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n return (\n <Text data-ui=\"Spinner\" {...props} className={spinner()} ref={ref}>\n <AnimatedSpinnerIcon />\n </Text>\n )\n})\n\nSpinner.displayName = 'ForwardRef(Spinner)'\n","import {\n button,\n buttonLoadingBox,\n ButtonStyleProps,\n composeClassNames,\n DisplayStyleProps,\n FlexStyleProps,\n GapStyleProps,\n PaddingStyleProps,\n ResponsiveProp,\n Width,\n} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {ElementType, ForwardedRef, forwardRef, isValidElement, ReactNode} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {useTheme_v2} from '../../_compat'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, Props} from '../../types'\nimport {Box} from '../box'\nimport {Spinner} from '../spinner'\nimport {Text, TextProps} from '../text'\n\n/**\n * @public\n */\nexport interface ButtonProps\n extends ButtonStyleProps,\n DisplayStyleProps,\n FlexStyleProps,\n GapStyleProps,\n PaddingStyleProps {\n 'data-ui'?: string\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'href'?: string\n 'mode'?: ButtonMode\n 'icon'?: ElementType | ReactNode\n 'iconRight'?: ElementType | ReactNode\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'?: TextProps['textOverflow']\n 'textWeight'?: TextProps['weight']\n 'tone'?: ButtonTone\n 'type'?: 'button' | 'reset' | 'submit'\n 'width'?: ResponsiveProp<Width>\n}\n\n/**\n * @public\n */\nexport const Button = forwardRef(function Button(\n props: Props<ButtonProps, 'button'>,\n ref: ForwardedRef<HTMLButtonElement>,\n) {\n const {\n align = 'center',\n as: As = 'button',\n children,\n className,\n direction,\n disabled,\n display = 'inline-flex',\n flex,\n fontSize = 1,\n gap = props.space ?? props.padding ?? 3,\n gapX,\n gapY,\n href,\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,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n wrap,\n ...restProps\n } = props\n const {button: buttonTheme} = useTheme_v2()\n\n return (\n <As\n data-ui=\"Button\"\n {...restProps}\n className={composeClassNames(className, button({display, flex, mode, radius, tone, width}))}\n data-disabled={loading || disabled ? '' : undefined}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n href={disabled ? undefined : href}\n ref={ref}\n type={type}\n >\n {Boolean(loading) && (\n <Box\n align={align}\n as=\"span\"\n className={buttonLoadingBox()}\n display=\"flex\"\n flex={1}\n justify={justify}\n width=\"fill\"\n >\n <Spinner size={fontSize} />\n </Box>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box\n as=\"span\"\n direction={direction}\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 width=\"fill\"\n wrap={wrap}\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 ?? buttonTheme.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 direction={direction}\n display=\"flex\"\n flex={1}\n gap={gap}\n gapX={gapX}\n gapY={gapY}\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n paddingTop={paddingTop}\n paddingBottom={paddingBottom}\n paddingLeft={paddingLeft}\n paddingRight={paddingRight}\n width=\"fill\"\n wrap={wrap}\n >\n {children}\n </Box>\n )}\n </As>\n )\n})\n\nButton.displayName = 'ForwardRef(Button)'\n","import {card, CardStyleProps, composeClassNames} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {ThemeColorProvider, useRootTheme} from '../../_compat'\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface CardProps extends BoxProps, 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 href?: string\n pressed?: boolean\n selected?: boolean\n target?: string\n}\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport const Card = forwardRef(function Card(\n props: Props<CardProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n className,\n pressed,\n radius = 0,\n scheme: schemeProp,\n selectable,\n selected,\n shadow,\n style,\n tone: toneProp,\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n\n const rootTheme = useRootTheme()\n\n const tone = toneProp === 'inherit' ? rootTheme.tone : toneProp\n const scheme = schemeProp === undefined ? rootTheme.scheme : schemeProp\n\n const node = (\n <Box\n // data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Card\"\n {...restProps}\n as={as}\n className={composeClassNames(\n className,\n card({\n scheme: scheme === rootTheme.scheme ? undefined : scheme,\n shadow,\n tone: tone === rootTheme.tone ? undefined : tone,\n }),\n )}\n data-checkered={checkered ? '' : undefined}\n data-focus-ring={focusRing ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selectable={selectable ? '' : undefined}\n data-selected={selected ? '' : undefined}\n radius={radius}\n ref={ref}\n // selected={selected}\n style={style}\n />\n )\n\n if (scheme === rootTheme.scheme && tone === rootTheme.tone) {\n return node\n }\n\n return (\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 scheme={scheme} tone={tone ?? rootTheme.tone}>\n {node}\n </ThemeColorProvider>\n )\n})\n\nCard.displayName = 'ForwardRef(Card)'\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {checkbox, checkboxInput, composeClassNames} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props: Props<CheckboxProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = props\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 <input\n {...restProps}\n checked={checked}\n className={composeClassNames(className, checkboxInput())}\n data-disabled={disabled ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={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 = 'ForwardRef(Checkbox)'\n","import {code, composeClassNames, FontStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, lazy, Suspense} from 'react'\n\nimport {Props} from '../../types'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\n\n/**\n * @public\n */\nexport interface CodeProps extends Omit<FontStyleProps, 'align'> {\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n}\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: Props<CodeProps, 'pre'>,\n ref: ForwardedRef<HTMLPreElement>,\n) {\n const {\n as: As = 'pre',\n children,\n className,\n language: languageProp,\n size = 1,\n weight,\n ...restProps\n } = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n\n return (\n <As\n data-ui=\"Code\"\n {...restProps}\n className={composeClassNames(className, code({size, weight}))}\n ref={ref}\n >\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </As>\n )\n})\n\nCode.displayName = 'ForwardRef(Code)'\n","import {composeClassNames, container, ContainerStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface ContainerProps extends Omit<BoxProps, 'width'>, ContainerStyleProps {}\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = forwardRef(function Container(\n props: Props<ContainerProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, className, sizing = 'border', width = 2, ...restProps} = props\n\n return (\n <Box\n data-ui=\"Container\"\n {...restProps}\n as={as}\n className={composeClassNames(className, container({width}))}\n ref={ref}\n sizing={sizing}\n />\n )\n})\n\nContainer.displayName = 'ForwardRef(Container)'\n","import {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface FlexProps extends Omit<BoxProps, 'display'> {\n htmlFor?: string\n}\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport const Flex = forwardRef(function Flex(\n props: Props<FlexProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, direction = 'row', ...restProps} = props\n\n return (\n <Box data-ui=\"Flex\" {...restProps} as={as} direction={direction} display=\"flex\" ref={ref} />\n )\n})\n\nFlex.displayName = 'ForwardRef(Flex)'\n","import {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface GridProps extends Omit<BoxProps, 'display'> {}\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n props: Props<GridProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, children, ...restProps} = props\n\n return (\n <Box data-ui=\"Grid\" {...restProps} as={as} display=\"grid\" ref={ref}>\n {children}\n </Box>\n )\n})\n\nGrid.displayName = 'ForwardRef(Grid)'\n","import {\n composeClassNames,\n heading,\n type HeadingStyleProps,\n textOverflow,\n type TextOverflowStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface HeadingProps extends HeadingStyleProps, TextOverflowStyleProps {}\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: Props<HeadingProps, 'div'>,\n ref: ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n as: As = 'div',\n children,\n className,\n flex,\n muted = false,\n size = 1,\n textOverflow: textOverflowProp,\n weight,\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Heading\"\n {...restProps}\n className={composeClassNames(\n className,\n heading({\n accent,\n align,\n flex,\n muted,\n size,\n weight,\n }),\n )}\n ref={ref}\n >\n <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>\n </As>\n )\n})\n\nHeading.displayName = 'ForwardRef(Heading)'\n","import {ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {Children, ForwardedRef, forwardRef, useMemo} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'align' | 'display' | 'justify'> {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n props: Props<InlineProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, children: childrenProp, gap, gapX, gapY, space, ...restProps} = props\n\n const children = useMemo(\n () => Children.map(childrenProp, (child) => child && <Box maxWidth=\"fill\">{child}</Box>),\n [childrenProp],\n )\n\n return (\n <Box\n data-ui=\"Inline\"\n {...restProps}\n align=\"center\"\n as={as}\n display=\"flex\"\n gap={gap ?? space}\n gapX={gapX}\n gapY={gapY}\n ref={ref}\n wrap=\"wrap\"\n >\n {children}\n </Box>\n )\n})\n\nInline.displayName = 'ForwardRef(Inline)'\n","import {composeClassNames, kbd, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps extends BoxProps, RadiusStyleProps {\n fontSize?: ResponsiveProp<FontTextSize>\n padding?: ResponsiveProp<Space>\n}\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport const KBD = forwardRef(function KBD(\n props: Props<KBDProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'kbd',\n children,\n className,\n display = 'inline-block',\n fontSize = 1,\n padding = 1,\n radius = 2,\n ...restProps\n } = props\n\n return (\n <Box\n data-ui=\"KBD\"\n {...restProps}\n as={as}\n className={composeClassNames(className, kbd({radius}))}\n display={display}\n muted\n padding={padding}\n ref={ref}\n >\n <Text as=\"span\" muted size={fontSize}>\n {children}\n </Text>\n </Box>\n )\n})\n\nKBD.displayName = 'ForwardRef(KBD)'\n","import {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} from '@sanity/ui/css'\nimport {CSSProperties, ForwardedRef, forwardRef, ReactElement, useMemo} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {Props} from '../../types'\nimport {compileCommands, getRoundedCommands, Point} from './cmds'\n\n/** @internal */\nexport const Arrow = forwardRef(function Arrow(\n props: Props<{width: number; height: number; radius?: number}, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {width: w, height: h, radius = 0, style, ...restProps} = props\n const {card} = useTheme_v2()\n const strokeWidth = card.shadow.outline\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 <div\n {...restProps}\n className={_arrow()}\n ref={ref}\n style={{...style, '--arrow-size': `${w}px`} as CSSProperties}\n >\n <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect x={0} y={strokeWidth} width={w} height={w} fill=\"white\" />\n </mask>\n <path\n className={_arrowStroke()}\n d={strokePath}\n mask=\"url(#stroke-mask)\"\n strokeWidth={strokeWidth * 2}\n />\n <path className={_arrowShape()} d={fillPath} />\n </svg>\n </div>\n )\n})\n\nArrow.displayName = 'ForwardRef(Arrow)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/context/boundaryElement',\n null,\n)\n","import {ReactElement, ReactNode, useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\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 {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","import {ReactNode} from 'react'\n\n/**\n * @internal\n * @deprecated this component will be removed in the next major release\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: ReactNode\n condition: boolean\n wrapper: (children: ReactNode) => ReactNode\n}): ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n\nConditionalWrapper.displayName = 'ConditionalWrapper'\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 {ForwardedRef, forwardRef, useImperativeHandle, useMemo, useState} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {useElementSize} from '../../hooks'\nimport {Props} from '../../types'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: Props<MediaQueryProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media: _media, ...restProps} = props\n const media = _media ?? theme.media\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(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n const min = useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>\n )\n})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\n","import {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {ReactElement, ReactNode, useCallback, useContext, useEffect, useMemo, useState} from 'react'\n\nimport {useArrayProp, useMediaIndex} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\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] : zOffset[mediaIndex]\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild, 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 {useContext} from 'react'\n\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","import {\n FocusEvent,\n ForwardedRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {Box, BoxProps} from '../../primitives'\nimport {Props} from '../../types'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps extends BoxProps {\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps extends BoxProps {\n onActivate?: LayerProps['onActivate']\n}\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: Props<LayerChildrenProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n onActivate,\n onFocus,\n position = 'relative',\n style = EMPTY_RECORD,\n ...restProps\n } = props\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 <Box\n data-ui=\"Layer\"\n {...restProps}\n onFocus={handleFocus}\n position={position}\n ref={ref}\n style={{...style, zIndex}}\n >\n {children}\n </Box>\n )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n props: Props<LayerProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps} ref={ref}>\n {children}\n </LayerChildren>\n </LayerProvider>\n )\n})\n\nLayer.displayName = 'ForwardRef(Layer)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport {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 {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {ReactNode, ReactPortal} from 'react'\nimport {createPortal} from 'react-dom'\n\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\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/**\n * @public\n */\nexport function Portal(props: PortalProps): ReactPortal | null {\n const {children, __unstable_name: name} = props\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(children, portalElement)\n}\n\nPortal.displayName = 'Portal'\n","import {ReactElement, ReactNode, useMemo, useRef, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\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'\nimport {ForwardedRef, forwardRef, ReactNode} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n children?: ReactNode\n}\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: Props<SrOnlyProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as: As = 'div', children, className, ...rest} = props\n\n return (\n <As\n data-ui=\"SrOnly\"\n {...rest}\n aria-hidden\n className={composeClassNames(className, srOnly())}\n ref={ref}\n >\n {children}\n </As>\n )\n})\n\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","import {\n ForwardedRef,\n forwardRef,\n ReactElement,\n ReactNode,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {Box, StackProps} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> extends Omit<StackProps, 'gap'> {\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => ReactNode\n}\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: Props<VirtualListProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\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 // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect((): (() => 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 + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [\n <Box insetTop={0} insetLeft={0} key={0} position=\"absolute\">\n {renderItem(items[0])}\n </Box>,\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 key={key}\n position=\"absolute\"\n style={{top: itemIndex * (itemHeight + space[gap])}}\n >\n {node}\n </Box>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Box\n // Root\n as={as}\n data-ui=\"VirtualList\"\n {...restProps}\n position=\"relative\"\n ref={ref}\n >\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Box>\n )\n})\n\nVirtualList.displayName = 'ForwardRef(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 {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, Elements, Middleware} from '@floating-ui/react-dom'\n\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {ContainerWidth} from '@sanity/ui/theme'\n\nimport {DEFAULT_POPOVER_PADDING} from './constants'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n container: number[]\n width: (ContainerWidth | 'fill' | null | undefined)[]\n}): number | undefined {\n const {container, mediaIndex, width} = params\n\n const w = width[mediaIndex]\n const currentWidth = w === undefined ? width[width.length - 1] : w\n\n return typeof currentWidth === 'number' ? container[currentWidth] : undefined\n}\n\nexport function calcMaxWidth(params: {\n boundaryWidth: number | undefined\n currentWidth: number | undefined\n}): number | undefined {\n const {boundaryWidth, currentWidth} = params\n\n if (currentWidth === undefined && boundaryWidth === undefined) {\n return undefined\n }\n\n return Math.min(\n currentWidth ?? Infinity,\n (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,\n )\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {motion, MotionProps} from 'framer-motion'\nimport {CSSProperties, ForwardedRef, forwardRef, memo, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, PopoverMargins, Props} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps} from '../card'\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 interface PopoverCardProps extends CardProps {\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\nconst MotionCard = motion.create(Card)\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: Props<PopoverCardProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n ) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n referenceWidth,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n // width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const {zIndex} = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width: referenceWidth,\n zIndex,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, referenceWidth, strategy, style, x, y, zIndex],\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 <MotionCard\n className=\"popover-card\"\n data-ui=\"Popover\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n direction=\"column\"\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\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 data-ui=\"Popover__wrapper\" direction=\"column\" flex={1} overflow={overflow}>\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\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 </MotionCard>\n )\n }),\n)\nPopoverCard.displayName = 'Memo(ForwardRef(PopoverCard))'\n","import {\n arrow,\n autoUpdate,\n flip,\n hide,\n Middleware,\n offset,\n RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n ForwardedRef,\n forwardRef,\n memo,\n MutableRefObject,\n ReactElement,\n ReactNode,\n RefCallback,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {useArrayProp, useElementSize, useMediaIndex, usePrefersReducedMotion} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {Placement, PopoverMargins, Props} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement, useLayer} from '../../utils'\nimport {CardProps} 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 {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback} from './types'\n\n/** @public */\nexport interface PopoverProps extends CardProps, LayerProps {\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?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<PopoverUpdateCallback | undefined>\n}\n\nconst ViewportOverlay = () => {\n const {zIndex} = useLayer()\n\n return <div style={{height: '100vh', inset: 0, position: 'fixed', width: '100vw', zIndex}} />\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: Props<PopoverProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n ): ReactElement {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\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 referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = layer.popover.zOffset,\n updateRef,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n // const padding = useArrayProp(paddingProp)\n // const radius = useArrayProp(radiusProp)\n // const shadow = useArrayProp(shadowProp)\n const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({\n container,\n mediaIndex,\n width: widthArrayProp,\n })\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>(undefined)\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = ref.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(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 const _currentWidth = widthRef.current\n const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (_currentWidth !== undefined) {\n elements.floating.style.width = `${_currentWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(\n availableWidth,\n _maxWidth ?? Infinity,\n )}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary 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 <LayerProvider zOffset={zOffset}>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned before the below popover card. */}\n {modal && <ViewportOverlay />}\n\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n referenceWidth={matchReferenceWidth ? referenceWidthRef.current : width}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</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)\n\nPopover.displayName = 'Memo(ForwardRef(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 {ForwardedRef, forwardRef, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n props: Props<RadioProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {className, disabled, style, customValidity, readOnly, ...restProps} = props\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 <input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </div>\n )\n})\n\nRadio.displayName = 'ForwardRef(Radio)'\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n _inputElement,\n ResponsiveProp,\n select,\n selectPresentation,\n SelectStyleProps,\n} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SelectProps extends SelectStyleProps {\n customValidity?: string\n readOnly?: boolean\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: Props<SelectProps, 'select'>,\n forwardedRef: ForwardedRef<HTMLSelectElement>,\n) {\n const {\n border = true,\n children,\n customValidity,\n disabled,\n fontSize = 1,\n gap,\n padding = 2,\n radius = 2,\n readOnly,\n space = 2,\n ...restProps\n } = props\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 <select\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n className={_inputElement()}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </select>\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 = 'ForwardRef(Select)'\n","import {ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface StackProps extends Omit<BoxProps, 'direction' | 'display' | 'gapX' | 'gapY'> {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: Props<StackProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, gap, space, ...restProps} = props\n\n return (\n <Box\n data-ui=\"Stack\"\n {...restProps}\n as={as}\n direction=\"column\"\n display=\"flex\"\n gap={gap ?? space}\n ref={ref}\n />\n )\n})\n\nStack.displayName = 'ForwardRef(Stack)'\n","import {\n _switch,\n _switchElement,\n _switchPresentation,\n _switchThumb,\n _switchTrack,\n composeClassNames,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box} from '../box'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport const Switch = forwardRef(function Switch(\n props: Props<SwitchProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\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 <input\n {...restProps}\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 = 'ForwardRef(Switch)'\n","import {\n _inputElement,\n _inputPresentation,\n ResponsiveProp,\n textArea,\n TextAreaStyleProps,\n} from '@sanity/ui/css'\nimport {Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends TextAreaStyleProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n customValidity?: string\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n weight?: ThemeFontWeightKey\n}\n\n/**\n * A multiline text input.\n *\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: Props<TextAreaProps, 'textarea'>,\n forwardedRef: ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 2,\n space = 3,\n // weight,\n // __unstable_disableFocusRing,\n ...restProps\n } = props\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({border, fontSize, padding, radius, gap: gap ?? space})}\n data-ui=\"TextArea\"\n >\n <textarea {...restProps} className={_inputElement()} disabled={disabled} ref={ref} />\n <span className={_inputPresentation()} />\n </span>\n )\n})\n\nTextArea.displayName = 'ForwardRef(TextArea)'\n","import {CloseIcon} from '@sanity/icons'\nimport {\n _inputElement,\n _inputPresentation,\n composeClassNames,\n InputStyleProps,\n ResponsiveProp,\n textInput,\n} from '@sanity/ui/css'\nimport {Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {\n CSSProperties,\n ElementType,\n ForwardedRef,\n forwardRef,\n isValidElement,\n MouseEvent,\n 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 {Props} from '../../types'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<\n Props<ButtonProps, 'button'>,\n 'as' | 'onClick' | 'onMouseDown'\n>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'search'\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps extends 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 type?: TextInputType\n weight?: ThemeFontWeightKey\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 const TextInput = forwardRef(function TextInput(\n props: Props<TextInputProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n className,\n clearButton,\n disabled = false,\n fontSize = 1,\n gap,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding = 3,\n prefix,\n radius = 2,\n readOnly,\n space = 3,\n suffix,\n customValidity,\n type = 'text',\n weight: _width, // eslint-disable-line @typescript-eslint/no-unused-vars\n width,\n ...restProps\n } = props\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 as=\"span\"\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-prefix={prefix ? '' : undefined}\n data-suffix={suffix ? '' : undefined}\n data-ui=\"TextInput\"\n display=\"flex\"\n >\n {prefix && (\n <Box as=\"span\" className=\"text-input-prefix\" sizing=\"border\">\n <span>{prefix}</span>\n </Box>\n )}\n\n <Box as=\"span\" flex={1} position=\"relative\">\n <input\n // data-as=\"input\"\n {...restProps}\n className={_inputElement()}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n <Box\n as=\"span\"\n // $unstableDisableFocusRing={__unstable_disableFocusRing}\n className={_inputPresentation()}\n data-disable-focus-ring={__unstable_disableFocusRing ? '' : undefined}\n position=\"absolute\"\n >\n {IconComponent && (\n <Box as=\"span\" 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 as=\"span\" 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\n as=\"span\"\n padding={clearButtonBoxPadding}\n position=\"absolute\"\n style={CLEAR_BUTTON_BOX_STYLE}\n // tone={customValidity ? 'critical' : 'inherit'}\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 as=\"span\" className=\"text-input-suffix\" sizing=\"border\">\n <span>{suffix}</span>\n </Box>\n )}\n </Box>\n )\n})\n\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {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 {Placement} from '@floating-ui/react-dom'\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 {tooltipCard} from '@sanity/ui/css'\nimport {motion} from 'framer-motion'\nimport {CSSProperties, ForwardedRef, forwardRef, memo, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Props} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = motion.create(Card)\n\n/* @internal */\nexport interface TooltipCardProps extends CardProps {\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/**\n * @internal\n */\nexport const TooltipCard = memo(\n forwardRef(function TooltipCard(\n props: Omit<\n Props<TooltipCardProps, 'div'>,\n 'onDrag' | 'onDragEnd' | 'onDragStart' | 'onAnimationStart'\n >,\n ref: ForwardedRef<HTMLDivElement>,\n ) {\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,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = 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 <MotionCard\n data-ui=\"Tooltip__card\"\n {...restProps}\n data-animate={animate ? '' : undefined}\n className={tooltipCard()}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\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 </MotionCard>\n )\n }),\n)\n\nTooltipCard.displayName = 'Memo(ForwardRef(TooltipCard))'\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {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 {ReactElement, ReactNode, useMemo} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {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 {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 {\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 {composeClassNames, RadiusStyleProps, ShadowStyleProps, tooltip} from '@sanity/ui/css'\nimport type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n ForwardedRef,\n forwardRef,\n ReactElement,\n ReactNode,\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 {useTheme_v2} from '../../_compat'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport type {Placement, Props} from '../../types'\nimport {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'>, RadiusStyleProps, 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<Props>\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/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: Props<TooltipProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\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 scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n tone,\n ...restProps\n } = props\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 })\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) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // 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 <Layer\n data-ui=\"Tooltip\"\n // {...restProps}\n className={composeClassNames(className, tooltip())}\n ref={setFloating}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n zOffset={zOffset}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\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 tone={tone}\n >\n {content}\n </TooltipCard>\n </Layer>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {node}\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\nTooltip.displayName = 'ForwardRef(Tooltip)'\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 {GapStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Box, Inline, KBD} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps 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/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport const Hotkeys = forwardRef(function Hotkeys(\n props: Props<HotkeysProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {fontSize, gap, gapX, gapY, keys, padding, radius, space = 1, ...restProps} = props\n\n if (!keys || keys.length === 0) {\n return <></>\n }\n\n return (\n <Box\n as=\"kbd\"\n data-ui=\"Hotkeys\"\n {...restProps}\n display=\"flex\"\n gap={gap ?? space}\n gapX={gapX}\n gapY={gapY}\n ref={ref}\n >\n <Inline as=\"span\" gap={gap}>\n {keys.map((key, i) => (\n <KBD display=\"block\" fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </KBD>\n ))}\n </Inline>\n </Box>\n )\n})\n\nHotkeys.displayName = 'ForwardRef(Hotkeys)'\n","import {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 KeyboardEvent,\n KeyboardEventHandler,\n MouseEvent,\n 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 {\n composeClassNames,\n GapStyleProps,\n menu,\n PaddingStyleProps,\n ResponsiveProp,\n} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n ForwardedRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {Props} from '../../types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends PaddingStyleProps, Pick<GapStyleProps, 'gap'> {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n 'focusFirst'?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n 'focusLast'?: boolean\n 'onClickOutside'?: (event: MouseEvent) => void\n 'onEscape'?: () => void\n 'onItemClick'?: () => void\n 'onItemSelect'?: (index: number) => void\n 'originElement'?: HTMLElement | null\n 'registerElement'?: (el: HTMLElement) => () => void\n 'shouldFocus'?: 'first' | 'last' | null\n /** @deprecated Use `gap` property instead. */\n 'space'?: ResponsiveProp<Space>\n 'aria-labelledby'?: string\n // 'onBlurCapture'?: (event: FocusEvent) => void\n}\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: Props<MenuProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\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 // onBlurCapture,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus: _shouldFocus,\n space = 1,\n ...restProps\n } = props\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 {...restProps}\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 = 'ForwardRef(Menu)'\n","import {composeClassNames, menuDivider} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface MenuDividerProps {}\n\n/**\n * @public\n */\nexport const MenuDivider = forwardRef(function MenuDivider(\n props: Props<MenuDividerProps, 'div'>,\n ref: ForwardedRef<HTMLHRElement>,\n) {\n const {className, ...restProps} = props\n\n return <hr {...restProps} className={composeClassNames(className, menuDivider())} ref={ref} />\n})\n\nMenuDivider.displayName = 'MenuDivider'\n","import {_selectable, composeClassNames, SelectableStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props, SelectableTone} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/** @internal */\nexport interface SelectableProps extends BoxProps, SelectableStyleProps {\n disabled?: boolean\n href?: string\n tone?: SelectableTone\n type?: 'button'\n}\n\n/** @internal */\nexport const Selectable = forwardRef(function Selectable(\n props: Props<SelectableProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, radius, tone, ...restProps} = props\n\n return (\n <Box\n {...restProps}\n className={composeClassNames(className, _selectable({radius, tone}))}\n ref={ref}\n />\n )\n})\n\nSelectable.displayName = 'ForwardRef(Selectable)'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {GapStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {\n ElementType,\n isValidElement,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {Props, Radius, SelectableTone} from '../../types'\nimport {Menu, MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps extends GapStyleProps {\n disabled?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType | ReactNode\n menu?: Omit<\n MenuProps,\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 radius?: Radius | Radius[]\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n text: ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(props: Props<MenuGroupProps, 'div'>): ReactElement {\n const {\n as = 'button',\n children,\n fontSize = 1,\n gap,\n gapX,\n gapY,\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 ...restProps\n } = props\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<HTMLDivElement>) => {\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<HTMLDivElement>) => {\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 {...restProps}\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} gapX={gapX} gapY={gapY} 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 {GapStyleProps, PaddingStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n ElementType,\n ForwardedRef,\n forwardRef,\n isValidElement,\n MouseEvent,\n 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 {Props, SelectableTone} from '../../types'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends GapStyleProps, PaddingStyleProps, 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?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: Props<MenuItemProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\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 selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\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<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n role=\"menuitem\"\n {...restProps}\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 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 && (\n <Hotkeys gap={0.5} keys={hotkeys} style={{marginTop: -4, marginBottom: -4}} />\n )}\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 = 'ForwardRef(MenuItem)'\n","import {ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {\n ElementType,\n FocusEvent,\n ForwardedRef,\n forwardRef,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {Button} from '../../primitives'\nimport {ButtonTone, Props} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\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'?: ButtonTone\n}\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: Props<TabProps, 'button'>,\n forwardedRef: ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const 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 {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\n\nTab.displayName = 'ForwardRef(Tab)'\n","import {\n Children,\n cloneElement,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n ReactElement,\n useCallback,\n useState,\n} from 'react'\n\nimport {Inline, InlineProps} from '../../primitives'\nimport {Props} from '../../types'\nimport {TabProps} from './tab'\n\n/**\n * @public\n */\nexport type TabListChild = ReactElement<Props<TabProps, 'button'>> | null | undefined | false\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: TabListChild[]\n}\n\nfunction _isReactElement(node: unknown): node is ReactElement<Props<TabProps, 'button'>> {\n return Boolean(node)\n}\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: Props<TabListProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {children: childrenProp, ...restProps} = props\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 <Inline data-ui=\"TabList\" {...restProps} onKeyDown={handleKeyDown} ref={ref} role=\"tablist\">\n {tabs}\n </Inline>\n )\n})\n\nTabList.displayName = 'ForwardRef(TabList)'\n"],"names":["getGlobalScope","globalThis","window","self","global","Error","globalScope","createGlobalScopedContext","key","defaultValue","symbol","Symbol","for","document","createContext","ThemeContext","ThemeProvider","props","$","_c","parentTheme","useContext","children","scheme","rootTheme","theme","tone","t0","bb0","t1","version","themeContext","bb1","t2","getScopedTheme","jsx","StyledThemeProvider","t3","displayName","useRootTheme","value","ThemeColorProvider","root","useTheme","useStyledTheme","useTheme_v2","getTheme_v2","createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","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","_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","getSnapshot","useMemo","MEDIA_QUERY_CACHE","getMatchMedia","matchMedia","onStoreChange","matches","useSyncExternalStore","_getMediaQuery","media","index","_createMediaStore","mediaLen","sizes","getSizes","mediaQuery","mq","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","Box","forwardRef","align","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","overflow","paddingBottom","paddingLeft","paddingRight","paddingTop","paddingX","paddingY","pointerEvents","position","radius","restProps","row","rowEnd","rowStart","rows","t4","wrap","as","display","margin","padding","sizing","As","t5","composeClassNames","box","t6","Label","accent","textOverflowProp","textOverflow","weight","label","t7","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","asProp","initials","onImageLoadError","src","title","color","arrowPosition","status","sizeProp","ReactIs","isValidElementType","setArrowPosition","imageError","setImageError","raf","requestAnimationFrame","cancelAnimationFrame","handleImageError","t8","t9","map","initialsSize","t10","t11","avatar","t12","t13","avatarArrow","t14","t15","avatarInitials","t16","t17","t18","avatarImage","t19","s","AvatarCounter","count","fontSize","avatarCounter","AvatarStack","childrenProp","maxLength","maxLengthProp","Children","toArray","filter","isValidElement","Math","max","len","visibleCount","extraCount","visibleChildren","slice","T0","avatarStack","child","childIndex","cloneElement","String","jsxs","Text","text","Badge","textAlign","mode","_deprecated_mode","badge","AnimatedSpinnerIcon","animatedSpinnerIcon","SpinnerIcon","Spinner","spinner","Button","disabled","space","href","icon","IconComponent","iconRight","IconRightComponent","loading","selected","textWeight","button","buttonTheme","buttonLoadingBox","Card","pressed","schemeProp","selectable","shadow","toneProp","__unstable_checkered","__unstable_focusRing","checkered","focusRing","Checkbox","forwardedRef","checked","indeterminate","readOnly","useRef","useImperativeHandle","checkbox","checkboxInput","CheckmarkIcon","RemoveIcon","LazyRefractor","lazy","Code","languageProp","language","code","Suspense","Container","container","Flex","Grid","Heading","heading","Inline","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","Arrow","h","w","strokeWidth","outline","center","path","strokePath","fillPath","_arrow","_arrowStroke","_arrowShape","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","ret","findMinBreakpoints","ElementQuery","_media","setElement","elementSize","innerWidth","eq","eq_0","getLayerContext","contextValue","LayerContext","LayerProvider","zOffset","zOffsetProp","parentContextValue","parent","parentRegisterChild","registerChild","level","maxMediaIndex","mediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","state","prevLen","nextState","Object","keys","state_0","nextState_0","_temp2","v_0","v","useLayer","err","message","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","activeElement","rootElement","handleFocus","Layer","elementKey","defaultContextValue","createElement","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","default","createPortal","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","valueRef","_isEqual","objA","objB","keysA","keysB","every","SrOnly","rest","srOnly","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","offsetHeight","scrollEl","findScrollable","parentNode","handleScroll","passive","ro","entries","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","floor","toIndex","ceil","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","calcCurrentWidth","params","currentWidth","calcMaxWidth","boundaryWidth","MotionCard","motion","create","PopoverCard","memo","animate","arrow","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","ViewportOverlay","Popover","layer","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","fallbackPlacements","matchReferenceWidth","floatingBoundary","modal","open","placementProp","preventOverflow","referenceBoundary","referenceElement","widthProp","popover","updateRef","boundarySize","widthArrayProp","widthRef","maxWidthRef","referenceWidthRef","floatingElement","middleware","flip","offset","mainAxis","_currentWidth","_maxWidth","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","useCallback","arrowEl","setFloating","setReference","childRef","getElementRef","Fragment","AnimatePresence","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","Radio","radio","Select","select","_inputElement","selectPresentation","ChevronDownIcon","Stack","Switch","_switch","_switchElement","_switchPresentation","_switchTrack","_switchThumb","TextArea","textArea","_inputPresentation","CLEAR_BUTTON_BOX_STYLE","backgroundColor","TextInput","__unstable_disableFocusRing","clearButton","onClear","prefix","suffix","t20","t21","t22","t23","t24","_width","t25","t26","paddingArray","withClearButton","handleClearMouseDown","preventDefault","stopPropagation","focus","handleClearClick","clearButtonBoxPadding","_temp3","clearButtonPadding","clearButtonProps","textInput","t27","t28","CloseIcon","t29","t30","t31","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","TooltipCard","tooltipCard","TooltipDelayGroupContext","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","useTooltipDelayGroup","Tooltip","fallbackPlacementsProp","portalProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","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","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","Menu","_shouldFocus","onClickOutside","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","menu","MenuDivider","menuDivider","Selectable","_selectable","useMenu","MenuGroup","menuProps","_onItemMouseEnter","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","ChevronRightIcon","t32","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","setRef","Tab","focused","id","focusedRef","_isReactElement","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"_visual-editing.js","sources":["../../src/ui/lib/globalScope.ts","../../src/ui/lib/createGlobalScopedContext.ts","../../src/ui/primitives/card/cardContext.ts","../../src/ui/primitives/card/cardProvider.tsx","../../src/ui/_compat/theme/themeContext.ts","../../src/ui/_compat/theme/themeProvider.tsx","../../src/ui/_compat/theme/useRootTheme.ts","../../src/ui/_compat/theme/themeColorProvider.tsx","../../src/ui/_compat/theme/useTheme.ts","../../src/ui/_compat/types.ts","../../src/ui/constants.ts","../../src/ui/helpers/element.ts","../../src/ui/helpers/props.ts","../../src/ui/helpers/scroll.ts","../../src/ui/hooks/useArrayProp.ts","../../src/ui/hooks/useClickOutsideEvent.ts","../../src/ui/hooks/useCustomValidity.ts","../../src/ui/observers/resizeObserver.ts","../../src/ui/observers/elementSizeObserver.ts","../../src/ui/hooks/useElementSize.ts","../../src/ui/hooks/useGlobalKeyDown.ts","../../src/ui/hooks/useMatchMedia.ts","../../src/ui/hooks/useMediaIndex/useMediaIndex.ts","../../src/ui/hooks/usePrefersDark.ts","../../src/ui/hooks/usePrefersReducedMotion.ts","../../src/ui/primitives/box/box.tsx","../../src/ui/primitives/label/label.tsx","../../src/ui/primitives/avatar/avatar.tsx","../../src/ui/primitives/avatar/avatarCounter.tsx","../../src/ui/primitives/avatar/avatarStack.tsx","../../src/ui/primitives/text/text.tsx","../../src/ui/primitives/badge/badge.tsx","../../src/ui/primitives/spinner/animatedSpinnerIcon.tsx","../../src/ui/primitives/spinner/spinner.tsx","../../src/ui/primitives/button/button.tsx","../../src/ui/primitives/card/useCard.ts","../../src/ui/primitives/card/card.tsx","../../src/ui/primitives/checkbox/checkbox.tsx","../../src/ui/primitives/code/code.tsx","../../src/ui/primitives/container/container.tsx","../../src/ui/primitives/flex/flex.tsx","../../src/ui/primitives/grid/grid.tsx","../../src/ui/primitives/heading/heading.tsx","../../src/ui/primitives/inline/inline.tsx","../../src/ui/primitives/kbd/kbd.tsx","../../src/ui/middleware/origin.ts","../../src/ui/utils/arrow/cmds.ts","../../src/ui/utils/arrow/arrow.tsx","../../src/ui/utils/boundaryElement/boundaryElementContext.ts","../../src/ui/utils/boundaryElement/boundaryElementProvider.tsx","../../src/ui/lib/isRecord.ts","../../src/ui/utils/boundaryElement/useBoundaryElement.ts","../../src/ui/utils/conditionalWrapper/conditionalWrapper.tsx","../../src/ui/utils/elementQuery/helpers.ts","../../src/ui/utils/elementQuery/elementQuery.tsx","../../src/ui/utils/layer/getLayerContext.ts","../../src/ui/utils/layer/layerContext.ts","../../src/ui/utils/layer/layerProvider.tsx","../../src/ui/utils/layer/useLayer.ts","../../src/ui/utils/layer/layer.tsx","../../src/ui/utils/portal/portalContext.ts","../../src/ui/utils/portal/usePortal.ts","../../src/ui/utils/portal/portal.ts","../../src/ui/utils/portal/portalProvider.tsx","../../src/ui/utils/srOnly/srOnly.tsx","../../src/ui/utils/virtualList/virtualList.tsx","../../src/ui/primitives/popover/constants.ts","../../src/ui/primitives/popover/floating-ui/size.ts","../../src/ui/primitives/popover/popoverCard.tsx","../../src/ui/primitives/popover/popover.tsx","../../src/ui/primitives/radio/radio.tsx","../../src/ui/primitives/select/select.tsx","../../src/ui/primitives/stack/stack.tsx","../../src/ui/primitives/switch/switch.tsx","../../src/ui/primitives/textArea/textArea.tsx","../../src/ui/primitives/textInput/textInput.tsx","../../src/ui/hooks/useDelayedState.ts","../../src/ui/utils/getElementRef.ts","../../src/ui/primitives/tooltip/constants.ts","../../src/ui/primitives/tooltip/tooltipCard.tsx","../../src/ui/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../../src/ui/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../../src/ui/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../../src/ui/primitives/tooltip/tooltip.tsx","../../src/ui/components/hotkeys/hotkeys.tsx","../../src/ui/components/menu/menuContext.ts","../../src/ui/components/menu/helpers.ts","../../src/ui/components/menu/useMenuController.ts","../../src/ui/components/menu/menu.tsx","../../src/ui/components/menu/menuDivider.tsx","../../src/ui/primitives/_selectable/selectable.tsx","../../src/ui/components/menu/useMenu.ts","../../src/ui/components/menu/menuGroup.tsx","../../src/ui/components/menu/menuItem.tsx","../../src/ui/components/tab/tab.tsx","../../src/ui/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 {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {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 {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ReactNode, useMemo} from 'react'\n\nimport {CardContext} from './cardContext'\nimport {CardCompatProviderComponent} from './types'\n\nexport function CardProvider(props: {\n compat_provider?: CardCompatProviderComponent\n children?: ReactNode\n rendered?: boolean\n tone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n}) {\n const {children, rendered = false, tone, scheme} = props\n\n const context = useMemo(() => ({rendered, tone, scheme}), [rendered, tone, scheme])\n\n return <CardContext.Provider value={context}>{children}</CardContext.Provider>\n}\n","import {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {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 {ReactElement, 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 {ThemeContextValue} from './types'\n\n/**\n * @public\n */\nexport interface ThemeProviderProps {\n children?: ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\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 compat_provider={\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 scheme={scheme}\n tone={tone}\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 {ThemeContextValue} from './types'\n\n/**\n * @public\n */\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 {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {ReactElement, ReactNode} from 'react'\n\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/**\n * @public\n */\nexport interface ThemeColorProviderProps {\n children?: ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/**\n * @public\n */\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, Theme, Theme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/**\n * @public\n */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/**\n * @public\n */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {\n type BaseTheme as _BaseTheme,\n buildTheme,\n type HSL as _HSL,\n type PartialThemeColorBuilderOpts,\n type RGB as _RGB,\n type RootTheme as _RootTheme,\n type Theme as _Theme,\n type ThemeAvatar,\n type ThemeBoxShadow,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorSyntax as _ThemeColorSyntax,\n type ThemeColorToneKey,\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n type ThemeInput,\n type ThemeLayer as _ThemeLayer,\n type ThemeShadow as _ThemeShadow,\n type ThemeStyles,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nexport {\n type PartialThemeColorBuilderOpts,\n type ThemeAvatar,\n type ThemeColor,\n type ThemeColorBase,\n type ThemeColorBuilderOpts,\n type ThemeColorButton,\n type ThemeColorButtonState,\n type ThemeColorButtonStates,\n type ThemeColorButtonTones,\n type ThemeColorCard,\n type ThemeColorCardState,\n type ThemeColorGenericState,\n type ThemeColorInput,\n type ThemeColorInputState,\n type ThemeColorInputStates,\n type ThemeColorMuted,\n type ThemeColorMutedTone,\n type ThemeColorName,\n type ThemeColorScheme,\n type ThemeColorSchemes,\n type ThemeColorSelectable,\n type ThemeColorSelectableState,\n type ThemeColorSelectableStates,\n type ThemeColorSolid,\n type ThemeColorSolidTone,\n type ThemeColorSpot,\n type ThemeColorSpotKey,\n type ThemeColorToneKey,\n type ThemeInput,\n}\n\nimport {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgba as _rgba,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n screen as _screen,\n} from '@sanity/ui/theme'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = (() => {\n let theme: ReturnType<typeof buildTheme> | undefined\n return {\n get value() {\n if (!theme) {\n theme = buildTheme()\n }\n return theme\n },\n }\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","/**\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/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\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, 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 {useMemo, useSyncExternalStore} from 'react'\n\n// TODO: get from theme?\nconst media = [360, 600, 900, 1200, 1800, 2400]\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => number\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}px)`\n }\n\n if (index === media.length) {\n return `screen and (min-width: ${media[index - 1]}px)`\n }\n\n return `screen and (min-width: ${media[index - 1]}px) and (max-width: ${media[index] - 1}px)`\n}\n\nfunction _createMediaStore(): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot() {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): number {\n // const {media} = useTheme_v2()\n // const media = MEDIA\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 {\n box,\n BoxStyleProps,\n composeClassNames,\n GapStyleProps,\n InsetStyleProps,\n PositionStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface BoxProps\n extends BoxStyleProps,\n GapStyleProps,\n InsetStyleProps,\n PositionStyleProps {}\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport const Box = forwardRef(function Box(\n props: Props<BoxProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n align,\n as: As = 'div',\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n className,\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 overflow,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n muted,\n radius,\n row,\n rows,\n rowStart,\n rowEnd,\n sizing = 'border',\n width,\n wrap,\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Box\"\n {...restProps}\n className={composeClassNames(\n className,\n box({\n align,\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 overflow,\n margin,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n muted,\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 width,\n wrap,\n }),\n )}\n // data-gap={gap}\n ref={ref}\n >\n {props.children}\n </As>\n )\n})\n\nBox.displayName = 'ForwardRef(Box)'\n","import {\n composeClassNames,\n FontStyleProps,\n label,\n LabelSize,\n ResponsiveProp,\n textOverflow,\n TextOverflowStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface LabelProps extends FontStyleProps, TextOverflowStyleProps {\n accent?: boolean\n htmlFor?: string\n muted?: boolean\n size?: ResponsiveProp<LabelSize>\n}\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport const Label = forwardRef(function Label(\n props: Props<LabelProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent,\n align,\n as: As = 'div',\n children,\n className,\n muted = false,\n size = 1,\n textOverflow: textOverflowProp,\n weight = 'medium',\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Label\"\n {...restProps}\n className={composeClassNames(\n className,\n label({\n accent,\n align,\n muted,\n size,\n weight,\n }),\n )}\n ref={ref}\n >\n <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>\n </As>\n )\n})\n\nLabel.displayName = 'ForwardRef(Label)'\n","import {\n avatar,\n avatarArrow,\n avatarImage,\n avatarInitials,\n composeClassNames,\n ResponsiveProp,\n} from '@sanity/ui/css'\nimport {AvatarSize, ThemeColorAvatarColorKey} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useCallback, useEffect, useMemo, useState} from 'react'\nimport ReactIs from 'react-is'\n\nimport {useArrayProp} from '../../hooks'\nimport {AvatarPosition, AvatarStatus, Props} from '../../types'\nimport {Box} from '../box'\nimport {Label} from '../label'\n\n/**\n * @public\n */\nexport interface AvatarProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n color?: ThemeColorAvatarColorKey\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 * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport const Avatar = forwardRef(function Avatar(\n props: Props<AvatarProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n className,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const As = ReactIs.isValidElementType(asProp) ? asProp : 'div'\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 <As\n // data-as={typeof As === 'string' ? As : undefined}\n data-hide-inner-stroke={__unstable_hideInnerStroke ? '' : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n aria-label={title}\n className={composeClassNames(className, avatar({color, size: sizeProp}))}\n data-arrow-position={arrowPosition}\n data-image-error={imageError ? '' : undefined}\n data-status={status}\n ref={ref}\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\n align=\"center\"\n as=\"span\"\n size={initialsSize}\n style={{color: 'inherit'}}\n weight=\"medium\"\n >\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 </As>\n )\n})\n\nAvatar.displayName = 'ForwardRef(Avatar)'\n","import {avatarCounter, composeClassNames, ResponsiveProp} from '@sanity/ui/css'\nimport {AvatarSize} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useMemo} from 'react'\n\nimport {useArrayProp} from '../../hooks'\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Label} from '../label'\n\n/**\n * @public\n */\nexport interface AvatarCounterProps\n extends Omit<BoxProps, 'align' | 'className' | 'display' | 'justify' | 'paddingX' | 'sizing'> {\n count: number\n size?: ResponsiveProp<AvatarSize>\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarCounter = forwardRef(function AvatarCounter(\n props: Props<AvatarCounterProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, count, size: sizeProp = 1, ...restProps} = props\n const size = useArrayProp(sizeProp)\n\n const fontSize = 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 {...restProps}\n align=\"center\"\n className={composeClassNames(className, avatarCounter({size}))}\n display=\"flex\"\n justify=\"center\"\n paddingX={2}\n ref={ref}\n sizing=\"border\"\n >\n <Label align=\"center\" as=\"span\" size={fontSize} weight=\"medium\">\n {count}\n </Label>\n </Box>\n )\n})\n\nAvatarCounter.displayName = 'ForwardRef(AvatarCounter)'\n","import {avatarStack, composeClassNames, ResponsiveProp} from '@sanity/ui/css'\nimport {AvatarSize} from '@sanity/ui/theme'\nimport {Children, cloneElement, ForwardedRef, forwardRef, isValidElement, ReactElement} from 'react'\n\nimport {useArrayProp} from '../../hooks'\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {AvatarProps} from './avatar'\nimport {AvatarCounter} from './avatarCounter'\n\n/**\n * @public\n */\nexport type AvatarStackChild = ReactElement<Props<AvatarProps, 'div'>> | null | undefined | false\n\n/**\n * @public\n */\nexport interface AvatarStackProps extends Omit<BoxProps, 'align' | 'className' | 'display'> {\n children: AvatarStackChild | AvatarStackChild[]\n maxLength?: number\n size?: ResponsiveProp<AvatarSize>\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/**\n * @public\n */\nexport const AvatarStack = forwardRef(function AvatarStack(\n props: Props<AvatarStackProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children: childrenProp,\n className,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children = Children.toArray(childrenProp).filter(isValidElement) as ReactElement<\n Props<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 {...restProps}\n align=\"center\"\n className={composeClassNames(className, avatarStack({size}))}\n display=\"flex\"\n ref={ref}\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 = 'ForwardRef(AvatarStack)'\n","import {\n composeClassNames,\n text,\n textOverflow,\n TextOverflowStyleProps,\n TextStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface TextProps extends TextStyleProps, TextOverflowStyleProps {\n htmlFor?: string\n}\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport const Text = forwardRef(function Text(\n props: Props<TextProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n accent = false,\n align,\n as: As = 'div',\n children,\n className,\n flex,\n muted = false,\n size = 2,\n textOverflow: textOverflowProp,\n weight,\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Text\"\n {...restProps}\n ref={ref}\n className={composeClassNames(\n className,\n text({\n accent,\n align,\n flex,\n muted,\n size,\n weight,\n }),\n )}\n >\n <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>\n </As>\n )\n})\n\nText.displayName = 'ForwardRef(Text)'\n","import {badge, composeClassNames, RadiusStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {BadgeMode, BadgeTone, Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text, TextProps} from '../text'\n\n/**\n * @public\n */\nexport interface BadgeProps extends BoxProps, RadiusStyleProps {\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: BadgeMode\n textAlign?: TextProps['align']\n tone?: BadgeTone\n}\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport const Badge = forwardRef(function Badge(\n props: Props<BadgeProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n className,\n display = 'inline-block',\n fontSize = 1,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n mode: _deprecated_mode,\n padding = 1,\n radius = 2,\n textAlign,\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <Box\n data-ui=\"Badge\"\n {...restProps}\n className={composeClassNames(\n className,\n badge({\n radius,\n tone,\n }),\n )}\n display={display}\n padding={padding}\n ref={ref}\n >\n <Text align={textAlign} size={fontSize}>\n {children}\n </Text>\n </Box>\n )\n})\n\nBadge.displayName = 'ForwardRef(Badge)'\n","import {SpinnerIcon} from '@sanity/icons'\nimport {animatedSpinnerIcon, composeClassNames} from '@sanity/ui/css'\nimport {ReactElement, SVGProps} from 'react'\n\n/** @internal */\nexport function AnimatedSpinnerIcon(props: SVGProps<SVGSVGElement>): ReactElement {\n const {className, ...restProps} = props\n\n return (\n <SpinnerIcon\n {...restProps}\n data-sanity-icon=\"animated-spinner\"\n className={composeClassNames(className, animatedSpinnerIcon())}\n />\n )\n}\n","import {ResponsiveProp, spinner} from '@sanity/ui/css'\nimport {FontTextSize} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Text} from '../text'\nimport {AnimatedSpinnerIcon} from './animatedSpinnerIcon'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: ResponsiveProp<FontTextSize>\n}\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = forwardRef(function Spinner(\n props: Props<SpinnerProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n return (\n <Text data-ui=\"Spinner\" {...props} className={spinner()} ref={ref}>\n <AnimatedSpinnerIcon />\n </Text>\n )\n})\n\nSpinner.displayName = 'ForwardRef(Spinner)'\n","import {\n button,\n buttonLoadingBox,\n ButtonStyleProps,\n composeClassNames,\n DisplayStyleProps,\n FlexStyleProps,\n GapStyleProps,\n PaddingStyleProps,\n ResponsiveProp,\n Width,\n} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {ElementType, ForwardedRef, forwardRef, isValidElement, ReactNode} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {ButtonMode, ButtonTextAlign, ButtonTone, Props} from '../../types'\nimport {Box} from '../box'\nimport {Spinner} from '../spinner'\nimport {Text, TextProps} from '../text'\n\n/**\n * @public\n */\nexport interface ButtonProps\n extends ButtonStyleProps,\n DisplayStyleProps,\n FlexStyleProps,\n GapStyleProps,\n PaddingStyleProps {\n 'data-ui'?: string\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'href'?: string\n 'mode'?: ButtonMode\n 'icon'?: ElementType | ReactNode\n 'iconRight'?: ElementType | ReactNode\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'?: TextProps['textOverflow']\n 'textWeight'?: TextProps['weight']\n 'tone'?: ButtonTone\n 'type'?: 'button' | 'reset' | 'submit'\n 'width'?: ResponsiveProp<Width>\n}\n\n/**\n * @public\n */\nexport const Button = forwardRef(function Button(\n props: Props<ButtonProps, 'button'>,\n ref: ForwardedRef<HTMLButtonElement>,\n) {\n const {\n align = 'center',\n as: As = 'button',\n children,\n className,\n direction,\n disabled,\n display = 'inline-flex',\n flex,\n fontSize = 1,\n gap = props.space ?? props.padding ?? 3,\n gapX,\n gapY,\n href,\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 wrap,\n ...restProps\n } = props\n // const {button: buttonTheme} = useTheme_v2()\n\n return (\n <As\n data-ui=\"Button\"\n {...restProps}\n className={composeClassNames(className, button({display, flex, mode, radius, tone, width}))}\n data-disabled={loading || disabled ? '' : undefined}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n href={disabled ? undefined : href}\n ref={ref}\n type={type}\n >\n {Boolean(loading) && (\n <Box\n as=\"span\"\n className={buttonLoadingBox()}\n display=\"flex\"\n flex={1}\n justify={justify}\n width=\"fill\"\n >\n <Spinner size={fontSize} />\n </Box>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box\n as=\"span\"\n align={align}\n direction={direction}\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 width=\"fill\"\n wrap={wrap}\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 align={align}\n as=\"span\"\n direction={direction}\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 width=\"fill\"\n wrap={wrap}\n >\n {children}\n </Box>\n )}\n </As>\n )\n})\n\nButton.displayName = 'ForwardRef(Button)'\n","import {useContext} from 'react'\n\nimport {CardContext} from './cardContext'\n\nexport function useCard() {\n return useContext(CardContext)\n}\n","import {_selectable, card, CardStyleProps, composeClassNames} from '@sanity/ui/css'\nimport {createElement, ForwardedRef, forwardRef} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {CardProvider} from './cardProvider'\nimport {useCard} from './useCard'\n\n/**\n * @public\n */\nexport interface CardProps extends BoxProps, 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 href?: string\n pressed?: boolean\n selected?: boolean\n target?: string\n}\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport const Card = forwardRef(function Card(\n props: Props<CardProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as: asProp,\n className,\n pressed,\n radius = 0,\n scheme: schemeProp,\n selectable,\n selected,\n shadow,\n style,\n tone: toneProp = 'default',\n ...restProps\n } = props\n\n const as = isValidElementType(asProp) ? asProp : 'div'\n\n const parent = useCard()\n\n const context = {\n tone: parent?.tone ?? 'default',\n scheme: parent?.scheme ?? 'light',\n }\n\n const tone = toneProp === 'inherit' ? context.tone : toneProp\n const scheme = schemeProp === undefined ? context.scheme : schemeProp\n\n let node = (\n <Box\n data-ui=\"Card\"\n {...restProps}\n as={as}\n className={composeClassNames(\n className,\n card({\n scheme: scheme === context.scheme ? undefined : scheme,\n shadow,\n tone,\n }),\n selectable && _selectable({radius}),\n )}\n data-context-tone={context.tone}\n data-context-scheme={context.scheme}\n data-checkered={checkered ? '' : undefined}\n data-focus-ring={focusRing ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n data-tone={tone}\n radius={radius}\n ref={ref}\n style={style}\n />\n )\n\n if (scheme === context.scheme && tone === context.tone) {\n return node\n }\n\n node = (\n <CardProvider\n compat_provider={parent?.compat_provider}\n rendered={true}\n scheme={scheme}\n tone={tone ?? context.tone}\n >\n {node}\n </CardProvider>\n )\n\n if (parent?.compat_provider) {\n return createElement(parent.compat_provider, {\n children: node,\n scheme,\n tone: tone ?? context.tone,\n })\n }\n\n return node\n})\n\nCard.displayName = 'ForwardRef(Card)'\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {checkbox, checkboxInput, composeClassNames} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport const Checkbox = forwardRef(function Checkbox(\n props: Props<CheckboxProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n style,\n ...restProps\n } = props\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 <input\n {...restProps}\n checked={checked}\n className={composeClassNames(className, checkboxInput())}\n data-disabled={disabled ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={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 = 'ForwardRef(Checkbox)'\n","import {code, composeClassNames, FontStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, lazy, Suspense} from 'react'\n\nimport {Props} from '../../types'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\n\n/**\n * @public\n */\nexport interface CodeProps extends Omit<FontStyleProps, 'align'> {\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: number | number[]\n}\n\n/**\n * @public\n */\nexport const Code = forwardRef(function Code(\n props: Props<CodeProps, 'pre'>,\n ref: ForwardedRef<HTMLPreElement>,\n) {\n const {\n as: As = 'pre',\n children,\n className,\n language: languageProp,\n size = 1,\n weight,\n ...restProps\n } = props\n const language = typeof languageProp === 'string' ? languageProp : undefined\n\n return (\n <As\n data-ui=\"Code\"\n {...restProps}\n className={composeClassNames(className, code({size, weight}))}\n ref={ref}\n >\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </As>\n )\n})\n\nCode.displayName = 'ForwardRef(Code)'\n","import {composeClassNames, container, ContainerStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface ContainerProps extends Omit<BoxProps, 'width'>, ContainerStyleProps {}\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport const Container = forwardRef(function Container(\n props: Props<ContainerProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, className, sizing = 'border', width = 2, ...restProps} = props\n\n return (\n <Box\n data-ui=\"Container\"\n {...restProps}\n as={as}\n className={composeClassNames(className, container({width}))}\n ref={ref}\n sizing={sizing}\n />\n )\n})\n\nContainer.displayName = 'ForwardRef(Container)'\n","import {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface FlexProps extends Omit<BoxProps, 'display'> {\n htmlFor?: string\n}\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport const Flex = forwardRef(function Flex(\n props: Props<FlexProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, direction = 'row', ...restProps} = props\n\n return (\n <Box data-ui=\"Flex\" {...restProps} as={as} direction={direction} display=\"flex\" ref={ref} />\n )\n})\n\nFlex.displayName = 'ForwardRef(Flex)'\n","import {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface GridProps extends Omit<BoxProps, 'display'> {}\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport const Grid = forwardRef(function Grid(\n props: Props<GridProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, children, ...restProps} = props\n\n return (\n <Box data-ui=\"Grid\" {...restProps} as={as} display=\"grid\" ref={ref}>\n {children}\n </Box>\n )\n})\n\nGrid.displayName = 'ForwardRef(Grid)'\n","import {\n composeClassNames,\n heading,\n type HeadingStyleProps,\n textOverflow,\n type TextOverflowStyleProps,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface HeadingProps extends HeadingStyleProps, TextOverflowStyleProps {}\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport const Heading = forwardRef(function Heading(\n props: Props<HeadingProps, 'div'>,\n ref: ForwardedRef<HTMLElement>,\n) {\n const {\n accent = false,\n align,\n as: As = 'div',\n children,\n className,\n flex,\n muted = false,\n size = 2,\n textOverflow: textOverflowProp,\n weight,\n ...restProps\n } = props\n\n return (\n <As\n data-ui=\"Heading\"\n {...restProps}\n className={composeClassNames(\n className,\n heading({\n accent,\n align,\n flex,\n muted,\n size,\n weight,\n }),\n )}\n ref={ref}\n >\n <span className={textOverflow({textOverflow: textOverflowProp})}>{children}</span>\n </As>\n )\n})\n\nHeading.displayName = 'ForwardRef(Heading)'\n","import {ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {Children, ForwardedRef, forwardRef, useMemo} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface InlineProps extends Omit<BoxProps, 'align' | 'display' | 'justify'> {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport const Inline = forwardRef(function Inline(\n props: Props<InlineProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, children: childrenProp, gap, gapX, gapY, space, ...restProps} = props\n\n const children = useMemo(\n () => Children.map(childrenProp, (child) => child && <Box maxWidth=\"fill\">{child}</Box>),\n [childrenProp],\n )\n\n return (\n <Box\n data-ui=\"Inline\"\n {...restProps}\n align=\"center\"\n as={as}\n display=\"flex\"\n gap={gap ?? space}\n gapX={gapX}\n gapY={gapY}\n ref={ref}\n wrap=\"wrap\"\n >\n {children}\n </Box>\n )\n})\n\nInline.displayName = 'ForwardRef(Inline)'\n","import {composeClassNames, kbd, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface KBDProps extends BoxProps, RadiusStyleProps {\n fontSize?: ResponsiveProp<FontTextSize>\n padding?: ResponsiveProp<Space>\n}\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport const KBD = forwardRef(function KBD(\n props: Props<KBDProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'kbd',\n children,\n className,\n display = 'inline-block',\n fontSize = 1,\n padding = 1,\n radius = 2,\n ...restProps\n } = props\n\n return (\n <Box\n data-ui=\"KBD\"\n {...restProps}\n as={as}\n className={composeClassNames(className, kbd({radius}))}\n display={display}\n muted\n padding={padding}\n ref={ref}\n >\n <Text as=\"span\" muted size={fontSize}>\n {children}\n </Text>\n </Box>\n )\n})\n\nKBD.displayName = 'ForwardRef(KBD)'\n","import {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} from '@sanity/ui/css'\nimport {CSSProperties, ForwardedRef, forwardRef, ReactElement, useMemo} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {Props} from '../../types'\nimport {compileCommands, getRoundedCommands, Point} from './cmds'\n\n/** @internal */\nexport const Arrow = forwardRef(function Arrow(\n props: Props<{width: number; height: number; radius?: number}, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {width: w, height: h, radius = 0, style, ...restProps} = props\n const {card} = useTheme_v2()\n const strokeWidth = card.shadow.outline\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 <div\n {...restProps}\n className={_arrow()}\n ref={ref}\n style={{...style, '--arrow-size': `${w}px`} as CSSProperties}\n >\n <svg width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect x={0} y={strokeWidth} width={w} height={w} fill=\"white\" />\n </mask>\n <path\n className={_arrowStroke()}\n d={strokePath}\n mask=\"url(#stroke-mask)\"\n strokeWidth={strokeWidth * 2}\n />\n <path className={_arrowShape()} d={fillPath} />\n </svg>\n </div>\n )\n})\n\nArrow.displayName = 'ForwardRef(Arrow)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/context/boundaryElement',\n null,\n)\n","import {ReactElement, ReactNode, useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\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 {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/**\n * @public\n */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","import {ReactNode} from 'react'\n\n/**\n * @internal\n * @deprecated this component will be removed in the next major release\n */\nexport function ConditionalWrapper({\n children,\n condition,\n wrapper,\n}: {\n children: ReactNode\n condition: boolean\n wrapper: (children: ReactNode) => ReactNode\n}): ReactNode {\n if (!condition) {\n return children\n }\n\n return wrapper(children)\n}\n\nConditionalWrapper.displayName = 'ConditionalWrapper'\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 {ForwardedRef, forwardRef, useImperativeHandle, useMemo, useState} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {useElementSize} from '../../hooks'\nimport {Props} from '../../types'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport const ElementQuery = forwardRef(function ElementQuery(\n props: Props<MediaQueryProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const theme = useTheme_v2()\n const {children, media: _media, ...restProps} = props\n const media = _media ?? theme.media\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(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n const min = useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>\n )\n})\nElementQuery.displayName = 'ForwardRef(ElementQuery)'\n","import {isRecord} from '../../lib/isRecord'\nimport {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {ReactElement, ReactNode, useCallback, useContext, useEffect, useMemo, useState} from 'react'\n\nimport {useArrayProp, useMediaIndex} from '../../hooks'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport interface LayerProviderProps {\n children?: ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\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 {useContext} from 'react'\n\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport {LayerContextValue} from './types'\n\n/**\n * @public\n */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","import {\n FocusEvent,\n ForwardedRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers'\nimport {Box, BoxProps} from '../../primitives'\nimport {Props} from '../../types'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps extends BoxProps {\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps extends BoxProps {\n onActivate?: LayerProps['onActivate']\n}\n\nconst LayerChildren = forwardRef(function LayerChildren(\n props: Props<LayerChildrenProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n children,\n onActivate,\n onFocus,\n position = 'relative',\n style = EMPTY_RECORD,\n ...restProps\n } = props\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 <Box\n data-ui=\"Layer\"\n {...restProps}\n onFocus={handleFocus}\n position={position}\n ref={ref}\n style={{...style, zIndex}}\n >\n {children}\n </Box>\n )\n})\n\n/**\n * @public\n */\nexport const Layer = forwardRef(function Layer(\n props: Props<LayerProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps} ref={ref}>\n {children}\n </LayerChildren>\n </LayerProvider>\n )\n})\n\nLayer.displayName = 'ForwardRef(Layer)'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport {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 {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import {createElement, ReactNode, ReactPortal} from 'react'\nimport {createPortal} from 'react-dom'\n\nimport {CardProvider, useCard} from '../../primitives'\nimport {usePortal} from './usePortal'\n\n/**\n * @public\n */\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/**\n * @public\n */\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) || portal.elements?.default\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(\n createElement(\n CardProvider,\n {\n rendered: true,\n tone: 'transparent', // card?.tone || 'default',\n scheme: card?.scheme || 'light',\n },\n children,\n ),\n portalElement,\n )\n}\n\nPortal.displayName = 'Portal'\n","import {ReactElement, ReactNode, useMemo, useRef, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\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'\nimport {ForwardedRef, forwardRef, ReactNode} from 'react'\n\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n children?: ReactNode\n}\n\n/**\n * @public\n */\nexport const SrOnly = forwardRef(function SrOnly(\n props: Props<SrOnlyProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as: As = 'div', children, className, ...rest} = props\n\n return (\n <As\n data-ui=\"SrOnly\"\n {...rest}\n aria-hidden\n className={composeClassNames(className, srOnly())}\n ref={ref}\n >\n {children}\n </As>\n )\n})\n\nSrOnly.displayName = 'ForwardRef(SrOnly)'\n","import {\n ForwardedRef,\n forwardRef,\n ReactElement,\n ReactNode,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useTheme_v2} from '../../_compat'\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {Box, StackProps} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> extends Omit<StackProps, 'gap'> {\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => ReactNode\n}\n\n/**\n * @beta\n */\nexport const VirtualList = forwardRef(function VirtualList(\n props: Props<VirtualListProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {as = 'div', gap = 0, getItemKey, items = [], onChange, renderItem, ...restProps} = props\n const {space} = useTheme_v2()\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 // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n }, [renderItem])\n\n useEffect((): (() => 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 + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [\n <Box insetTop={0} insetLeft={0} insetRight={0} key={0} position=\"absolute\">\n {renderItem(items[0])}\n </Box>,\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 + space[gap])}}\n >\n {node}\n </Box>\n )\n })\n }, [fromIndex, gap, getItemKey, itemHeight, items, renderItem, space, toIndex])\n\n const wrapperStyle = useMemo(() => ({height}), [height])\n\n return (\n <Box\n // Root\n as={as}\n data-ui=\"VirtualList\"\n {...restProps}\n position=\"relative\"\n ref={ref}\n >\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Box>\n )\n})\n\nVirtualList.displayName = 'ForwardRef(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 {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, Elements, Middleware} from '@floating-ui/react-dom'\n\nimport {PopoverMargins} from '../../../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {motion, MotionProps} from 'framer-motion'\nimport {CSSProperties, ForwardedRef, forwardRef, memo, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, PopoverMargins, Props} from '../../types'\nimport {Arrow, useLayer} from '../../utils'\nimport {Card, CardProps} from '../card'\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 interface PopoverCardProps extends CardProps {\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\nconst MotionCard = motion.create(Card)\n\n/**\n * @internal\n */\nexport const PopoverCard = memo(\n forwardRef(function PopoverCard(\n props: Props<PopoverCardProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n ) {\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 scheme,\n shadow,\n strategy,\n style,\n tone,\n // width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const layer = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width: referenceWidth,\n zIndex: layer.zIndex ?? 100,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, layer.zIndex, originX, originY, referenceWidth, strategy, 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 <MotionCard\n className=\"popover-card\"\n data-ui=\"Popover\"\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n direction=\"column\"\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\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 </MotionCard>\n )\n }),\n)\nPopoverCard.displayName = 'Memo(ForwardRef(PopoverCard))'\n","import {\n arrow,\n autoUpdate,\n flip,\n hide,\n Middleware,\n offset,\n RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n ForwardedRef,\n forwardRef,\n memo,\n MutableRefObject,\n ReactElement,\n ReactNode,\n RefCallback,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\n// import {useTheme_v2} from '../../_compat'\nimport {\n useArrayProp,\n // useElementSize,\n // useMediaIndex,\n usePrefersReducedMotion,\n} from '../../hooks'\nimport {origin} from '../../middleware/origin'\nimport {Placement, PopoverMargins, Props} from '../../types'\nimport {LayerProps, LayerProvider, Portal, useBoundaryElement, useLayer} from '../../utils'\nimport {CardProps} 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'\n// import {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback} from './types'\n\n/** @public */\nexport interface PopoverProps extends CardProps, LayerProps {\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?:\n | MutableRefObject<PopoverUpdateCallback | undefined>\n | RefCallback<PopoverUpdateCallback | undefined>\n}\n\nconst ViewportOverlay = () => {\n const {zIndex} = useLayer()\n\n return <div style={{height: '100vh', inset: 0, position: 'fixed', width: '100vw', zIndex}} />\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = memo(\n forwardRef(function Popover(\n props: Props<PopoverProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n ): ReactElement {\n // const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\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 referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n // zOffset: zOffsetProp = layer.popover.zOffset,\n zOffset: zOffsetProp,\n updateRef,\n ...restProps\n } = props\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n // const boundarySize = useElementSize(boundaryElement)?.border\n // const padding = useArrayProp(paddingProp)\n // const radius = useArrayProp(radiusProp)\n // const shadow = useArrayProp(shadowProp)\n // const widthArrayProp = useArrayProp(widthProp)\n const zOffset = useArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n // const mediaIndex = useMediaIndex()\n // const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n // const width = calcCurrentWidth({\n // container,\n // mediaIndex,\n // width: widthArrayProp,\n // })\n // const widthRef = useRef(width)\n\n // useEffect(() => {\n // widthRef.current = width\n // }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n // const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n // const maxWidthRef = useRef(maxWidth)\n\n // useEffect(() => {\n // maxWidthRef.current = maxWidth\n // }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>(undefined)\n\n // // Force apply width & max width to floating element\n // useEffect(() => {\n // const floatingElement = ref.current\n\n // if (!open || !floatingElement) return\n\n // const referenceWidth = referenceWidthRef.current\n\n // if (matchReferenceWidth) {\n // if (referenceWidth !== undefined) {\n // floatingElement.style.width = `${referenceWidth}px`\n // }\n // } else if (width !== undefined) {\n // floatingElement.style.width = `${width}px`\n // }\n\n // if (typeof maxWidth === 'number') {\n // floatingElement.style.maxWidth = `${maxWidth}px`\n // }\n // }, [width, matchReferenceWidth, maxWidth, open])\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(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 // const _currentWidth = widthRef.current\n // const _maxWidth = maxWidthRef.current\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n }\n // else if (_currentWidth !== undefined) {\n // elements.floating.style.width = `${_currentWidth}px`\n // }\n\n if (constrainSize) {\n // elements.floating.style.maxWidth = `${Math.min(\n // availableWidth,\n // _maxWidth ?? Infinity,\n // )}px`\n\n elements.floating.style.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 <LayerProvider zOffset={zOffset}>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned before the below popover card. */}\n {modal && <ViewportOverlay />}\n\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n maxWidth={widthProp}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n // referenceWidth={matchReferenceWidth ? referenceWidthRef.current : width}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</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)\n\nPopover.displayName = 'Memo(ForwardRef(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 {ForwardedRef, forwardRef, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport const Radio = forwardRef(function Radio(\n props: Props<RadioProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {className, disabled, style, customValidity, readOnly, ...restProps} = props\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 <input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </div>\n )\n})\n\nRadio.displayName = 'ForwardRef(Radio)'\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n _inputElement,\n ResponsiveProp,\n select,\n selectPresentation,\n SelectStyleProps,\n} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport interface SelectProps extends SelectStyleProps {\n customValidity?: string\n readOnly?: boolean\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport const Select = forwardRef(function Select(\n props: Props<SelectProps, 'select'>,\n forwardedRef: ForwardedRef<HTMLSelectElement>,\n) {\n const {\n border = true,\n children,\n customValidity,\n disabled,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 1,\n readOnly,\n space = 2,\n ...restProps\n } = props\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 <select\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n className={_inputElement()}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </select>\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 = 'ForwardRef(Select)'\n","import {ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/**\n * @public\n */\nexport interface StackProps extends Omit<BoxProps, 'direction' | 'display' | 'gapX' | 'gapY'> {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport const Stack = forwardRef(function Stack(\n props: Props<StackProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {as, gap, space, ...restProps} = props\n\n return (\n <Box\n data-ui=\"Stack\"\n {...restProps}\n as={as}\n direction=\"column\"\n display=\"flex\"\n gap={gap ?? space}\n ref={ref}\n />\n )\n})\n\nStack.displayName = 'ForwardRef(Stack)'\n","import {\n _switch,\n _switchElement,\n _switchPresentation,\n _switchThumb,\n _switchTrack,\n composeClassNames,\n} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {Props} from '../../types'\nimport {Box} from '../box'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport const Switch = forwardRef(function Switch(\n props: Props<SwitchProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {checked, className, disabled, indeterminate, readOnly, style, ...restProps} = props\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 <input\n {...restProps}\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 = 'ForwardRef(Switch)'\n","import {\n _inputElement,\n _inputPresentation,\n ResponsiveProp,\n textArea,\n TextAreaStyleProps,\n} from '@sanity/ui/css'\nimport {Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends TextAreaStyleProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n customValidity?: string\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n weight?: ThemeFontWeightKey\n}\n\n/**\n * A multiline text input.\n *\n * @public\n */\nexport const TextArea = forwardRef(function TextArea(\n props: Props<TextAreaProps, 'textarea'>,\n forwardedRef: ForwardedRef<HTMLTextAreaElement>,\n) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 2,\n space = 3,\n // weight,\n // __unstable_disableFocusRing,\n ...restProps\n } = props\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({border, fontSize, padding, radius, gap: gap ?? space})}\n data-ui=\"TextArea\"\n >\n <textarea {...restProps} className={_inputElement()} disabled={disabled} ref={ref} />\n <span className={_inputPresentation()} />\n </span>\n )\n})\n\nTextArea.displayName = 'ForwardRef(TextArea)'\n","import {CloseIcon} from '@sanity/icons'\nimport {\n _inputElement,\n _inputPresentation,\n composeClassNames,\n InputStyleProps,\n ResponsiveProp,\n textInput,\n} from '@sanity/ui/css'\nimport {Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {\n CSSProperties,\n ElementType,\n ForwardedRef,\n forwardRef,\n isValidElement,\n MouseEvent,\n 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 {Props} from '../../types'\nimport {Box} from '../box'\nimport {Button, ButtonProps} from '../button'\nimport {Text} from '../text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = Omit<\n Props<ButtonProps, 'button'>,\n 'as' | 'onClick' | 'onMouseDown'\n>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'search'\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps extends 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 type?: TextInputType\n weight?: ThemeFontWeightKey\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 const TextInput = forwardRef(function TextInput(\n props: Props<TextInputProps, 'input'>,\n forwardedRef: ForwardedRef<HTMLInputElement>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n className,\n clearButton,\n disabled = false,\n fontSize = 1,\n gap,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding = 3,\n prefix,\n radius = 2,\n readOnly,\n space = 3,\n suffix,\n customValidity,\n type = 'text',\n weight: _width, // eslint-disable-line @typescript-eslint/no-unused-vars\n width,\n ...restProps\n } = props\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 as=\"span\"\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-prefix={prefix ? '' : undefined}\n data-suffix={suffix ? '' : undefined}\n data-ui=\"TextInput\"\n display=\"flex\"\n >\n {prefix && (\n <Box as=\"span\" className=\"text-input-prefix\" sizing=\"border\">\n <span>{prefix}</span>\n </Box>\n )}\n\n <Box as=\"span\" flex={1} position=\"relative\">\n <input\n // data-as=\"input\"\n {...restProps}\n className={_inputElement()}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n <Box\n as=\"span\"\n // $unstableDisableFocusRing={__unstable_disableFocusRing}\n className={_inputPresentation()}\n data-disable-focus-ring={__unstable_disableFocusRing ? '' : undefined}\n position=\"absolute\"\n >\n {IconComponent && (\n <Box as=\"span\" 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 as=\"span\" 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\n as=\"span\"\n padding={clearButtonBoxPadding}\n position=\"absolute\"\n style={CLEAR_BUTTON_BOX_STYLE}\n // tone={customValidity ? 'critical' : 'inherit'}\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 as=\"span\" className=\"text-input-suffix\" sizing=\"border\">\n <span>{suffix}</span>\n </Box>\n )}\n </Box>\n )\n})\n\nTextInput.displayName = 'ForwardRef(TextInput)'\n","import {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 {Placement} from '@floating-ui/react-dom'\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 {tooltipCard} from '@sanity/ui/css'\nimport {motion} from 'framer-motion'\nimport {CSSProperties, ForwardedRef, forwardRef, memo, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement, Props} from '../../types'\nimport {Arrow} from '../../utils'\nimport {Card, CardProps} from '../card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = motion.create(Card)\n\n/* @internal */\nexport interface TooltipCardProps extends CardProps {\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/**\n * @internal\n */\nexport const TooltipCard = memo(\n forwardRef(function TooltipCard(\n props: Omit<\n Props<TooltipCardProps, 'div'>,\n 'onDrag' | 'onDragEnd' | 'onDragStart' | 'onAnimationStart'\n >,\n ref: ForwardedRef<HTMLDivElement>,\n ) {\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,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = 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 <MotionCard\n data-ui=\"Tooltip__card\"\n {...restProps}\n data-animate={animate ? '' : undefined}\n className={tooltipCard()}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\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 </MotionCard>\n )\n }),\n)\n\nTooltipCard.displayName = 'Memo(ForwardRef(TooltipCard))'\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {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 {ReactElement, ReactNode, useMemo} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {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 {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 {\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 {composeClassNames, RadiusStyleProps, ShadowStyleProps, tooltip} from '@sanity/ui/css'\nimport type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n ForwardedRef,\n forwardRef,\n ReactElement,\n ReactNode,\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 {useTheme_v2} from '../../_compat'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {origin} from '../../middleware/origin'\nimport type {Placement, Props} from '../../types'\nimport {Layer, type LayerProps, Portal, useBoundaryElement, usePortal} from '../../utils'\nimport {getElementRef} from '../../utils/getElementRef'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'>, RadiusStyleProps, 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<Props>\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/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: Props<TooltipProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\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 scheme,\n shadow = 2,\n zOffset = layer.tooltip.zOffset,\n tone,\n ...restProps\n } = props\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 })\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) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // 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 <Layer\n data-ui=\"Tooltip\"\n // {...restProps}\n className={composeClassNames(className, tooltip())}\n ref={setFloating}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n zOffset={zOffset}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\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 tone={tone}\n >\n {content}\n </TooltipCard>\n </Layer>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {node}\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\nTooltip.displayName = 'ForwardRef(Tooltip)'\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 {GapStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Box, KBD} from '../../primitives'\nimport {Props} from '../../types'\n\n/**\n * @public\n */\nexport interface HotkeysProps 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/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport const Hotkeys = forwardRef(function Hotkeys(\n props: Props<HotkeysProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {fontSize, gap, gapX, gapY, keys, padding, radius, space = 0.5, ...restProps} = props\n\n if (!keys || keys.length === 0) {\n return undefined\n }\n\n return (\n <Box\n as=\"kbd\"\n data-ui=\"Hotkeys\"\n {...restProps}\n display=\"flex\"\n gap={gap ?? space}\n gapX={gapX}\n gapY={gapY}\n ref={ref}\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 = 'ForwardRef(Hotkeys)'\n","import {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 KeyboardEvent,\n KeyboardEventHandler,\n MouseEvent,\n 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 {\n composeClassNames,\n GapStyleProps,\n menu,\n PaddingStyleProps,\n ResponsiveProp,\n} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n ForwardedRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {Box, Stack} from '../../primitives'\nimport {Props} from '../../types'\nimport {useLayer} from '../../utils'\nimport {MenuContext, MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/**\n * @public\n */\nexport interface MenuProps extends PaddingStyleProps, Pick<GapStyleProps, 'gap'> {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n 'focusFirst'?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n 'focusLast'?: boolean\n 'onClickOutside'?: (event: MouseEvent) => void\n 'onEscape'?: () => void\n 'onItemClick'?: () => void\n 'onItemSelect'?: (index: number) => void\n 'originElement'?: HTMLElement | null\n 'registerElement'?: (el: HTMLElement) => () => void\n 'shouldFocus'?: 'first' | 'last' | null\n /** @deprecated Use `gap` property instead. */\n 'space'?: ResponsiveProp<Space>\n 'aria-labelledby'?: string\n // 'onBlurCapture'?: (event: FocusEvent) => void\n}\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport const Menu = forwardRef(function Menu(\n props: Props<MenuProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\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 // onBlurCapture,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n registerElement,\n shouldFocus: _shouldFocus,\n space = 1,\n ...restProps\n } = props\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 {...restProps}\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 = 'ForwardRef(Menu)'\n","import {composeClassNames, menuDivider} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props} from '../../types'\n\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface MenuDividerProps {}\n\n/**\n * @public\n */\nexport const MenuDivider = forwardRef(function MenuDivider(\n props: Props<MenuDividerProps, 'div'>,\n ref: ForwardedRef<HTMLHRElement>,\n) {\n const {className, ...restProps} = props\n\n return <hr {...restProps} className={composeClassNames(className, menuDivider())} ref={ref} />\n})\n\nMenuDivider.displayName = 'MenuDivider'\n","import {_selectable, composeClassNames, SelectableStyleProps} from '@sanity/ui/css'\nimport {ForwardedRef, forwardRef} from 'react'\n\nimport {Props, SelectableTone} from '../../types'\nimport {Box, BoxProps} from '../box'\n\n/** @internal */\nexport interface SelectableProps extends BoxProps, SelectableStyleProps {\n disabled?: boolean\n href?: string\n tone?: SelectableTone\n type?: 'button'\n}\n\n/** @internal */\nexport const Selectable = forwardRef(function Selectable(\n props: Props<SelectableProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {className, radius, tone, ...restProps} = props\n\n return (\n <Box\n {...restProps}\n className={composeClassNames(className, _selectable({radius, tone}))}\n ref={ref}\n />\n )\n})\n\nSelectable.displayName = 'ForwardRef(Selectable)'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport {GapStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {\n ElementType,\n isValidElement,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n ReactNode,\n useCallback,\n useEffect,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box, Flex, Popover, PopoverProps, Text} from '../../primitives'\nimport {Selectable} from '../../primitives/_selectable'\nimport {Props, Radius, SelectableTone} from '../../types'\nimport {Menu, MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuGroupProps extends GapStyleProps {\n disabled?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType | ReactNode\n menu?: Omit<\n MenuProps,\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 radius?: Radius | Radius[]\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n text: ReactNode\n tone?: SelectableTone\n}\n\n/**\n * @public\n */\nexport function MenuGroup(props: Props<MenuGroupProps, 'div'>): ReactElement {\n const {\n as = 'button',\n children,\n fontSize = 1,\n gap,\n gapX,\n gapY,\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 ...restProps\n } = props\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<HTMLDivElement>) => {\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<HTMLDivElement>) => {\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 {...restProps}\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} gapX={gapX} gapY={gapY} 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 {GapStyleProps, PaddingStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {Space} from '@sanity/ui/theme'\nimport {\n ElementType,\n ForwardedRef,\n forwardRef,\n isValidElement,\n MouseEvent,\n 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 {Props, SelectableTone} from '../../types'\nimport {Hotkeys} from '../hotkeys'\nimport {useMenu} from './useMenu'\n\n/**\n * @public\n */\nexport interface MenuItemProps extends GapStyleProps, PaddingStyleProps, 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?: SelectableTone\n}\n\n/**\n * @public\n */\nexport const MenuItem = forwardRef(function MenuItem(\n props: Props<MenuItemProps, 'div'>,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n as = 'button',\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 selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...restProps\n } = props\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<HTMLDivElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const setRef = useCallback((el: HTMLDivElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n role=\"menuitem\"\n {...restProps}\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 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 && (\n <Hotkeys gap={0.5} keys={hotkeys} style={{marginTop: -4, marginBottom: -4}} />\n )}\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 = 'ForwardRef(MenuItem)'\n","import {ResponsiveProp} from '@sanity/ui/css'\nimport {FontTextSize, Space} from '@sanity/ui/theme'\nimport {\n ElementType,\n FocusEvent,\n ForwardedRef,\n forwardRef,\n ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {Button} from '../../primitives'\nimport {ButtonTone, Props} from '../../types'\n\n/**\n * @public\n */\nexport interface TabProps {\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'?: ButtonTone\n}\n\n/**\n * @public\n */\nexport const Tab = forwardRef(function Tab(\n props: Props<TabProps, 'button'>,\n forwardedRef: ForwardedRef<HTMLButtonElement>,\n) {\n const {\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n selected,\n ...restProps\n } = props\n const 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 {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n})\n\nTab.displayName = 'ForwardRef(Tab)'\n","import {\n Children,\n cloneElement,\n ForwardedRef,\n forwardRef,\n KeyboardEvent,\n ReactElement,\n useCallback,\n useState,\n} from 'react'\n\nimport {Inline, InlineProps} from '../../primitives'\nimport {Props} from '../../types'\nimport {TabProps} from './tab'\n\n/**\n * @public\n */\nexport type TabListChild = ReactElement<Props<TabProps, 'button'>> | null | undefined | false\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineProps, 'as' | 'height'> {\n children: TabListChild[]\n}\n\nfunction _isReactElement(node: unknown): node is ReactElement<Props<TabProps, 'button'>> {\n return Boolean(node)\n}\n\n/**\n * @public\n */\nexport const TabList = forwardRef(function TabList(\n props: Props<TabListProps, 'div'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {children: childrenProp, ...restProps} = props\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 <Inline data-ui=\"TabList\" {...restProps} onKeyDown={handleKeyDown} ref={ref} role=\"tablist\">\n {tabs}\n </Inline>\n )\n})\n\nTabList.displayName = 'ForwardRef(TabList)'\n"],"names":["getGlobalScope","globalThis","window","self","global","Error","globalScope","createGlobalScopedContext","key","defaultValue","symbol","Symbol","for","document","createContext","CardContext","CardProvider","props","$","_c","children","rendered","t0","tone","scheme","undefined","t1","t2","context","t3","jsx","ThemeContext","ThemeProvider","parentTheme","useContext","rootTheme","theme","bb0","version","themeContext","bb1","getScopedTheme","StyledThemeProvider","t4","ThemeColorProvider","displayName","useRootTheme","value","root","useTheme","useStyledTheme","useTheme_v2","getTheme_v2","createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","studioTheme","buildTheme","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","_isEnterToClickElement","element","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","contains","_getArrayProp","val","defaultVal","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","_getMediaQuery","index","_createMediaStore","mediaLen","sizes","getSizes","mediaQuery","mq","getSnapshot","disposeFns","handleChange","disposeFn","useMediaIndex","store","usePrefersDark","usePrefersReducedMotion","Box","forwardRef","align","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","overflow","paddingBottom","paddingLeft","paddingRight","paddingTop","paddingX","paddingY","pointerEvents","position","radius","restProps","row","rowEnd","rowStart","rows","wrap","as","display","margin","padding","sizing","As","t5","composeClassNames","box","t6","Label","accent","textOverflowProp","textOverflow","weight","label","t7","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","asProp","initials","onImageLoadError","src","title","color","arrowPosition","status","sizeProp","ReactIs","isValidElementType","setArrowPosition","imageError","setImageError","raf","requestAnimationFrame","cancelAnimationFrame","handleImageError","t8","t9","map","initialsSize","t10","t11","avatar","t12","t13","avatarArrow","t14","t15","avatarInitials","t16","t17","t18","avatarImage","t19","s","AvatarCounter","count","fontSize","avatarCounter","AvatarStack","childrenProp","maxLength","maxLengthProp","Children","toArray","filter","isValidElement","Math","max","len","visibleCount","extraCount","visibleChildren","slice","T0","avatarStack","child","childIndex","cloneElement","String","jsxs","Text","text","Badge","textAlign","mode","_deprecated_mode","badge","AnimatedSpinnerIcon","animatedSpinnerIcon","SpinnerIcon","Spinner","spinner","Button","disabled","space","href","icon","IconComponent","iconRight","IconRightComponent","loading","selected","textWeight","button","buttonLoadingBox","useCard","Card","pressed","schemeProp","selectable","shadow","__unstable_checkered","__unstable_focusRing","checkered","focusRing","toneProp","parent","_selectable","compat_provider","createElement","Checkbox","forwardedRef","checked","indeterminate","readOnly","useRef","useImperativeHandle","checkbox","checkboxInput","CheckmarkIcon","RemoveIcon","LazyRefractor","lazy","Code","languageProp","language","code","Suspense","Container","container","Flex","Grid","Heading","heading","Inline","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","Arrow","h","w","strokeWidth","outline","center","path","strokePath","fillPath","_arrow","_arrowStroke","_arrowShape","BoundaryElementContext","BoundaryElementProvider","isRecord","DEFAULT_VALUE","useBoundaryElement","ConditionalWrapper","condition","wrapper","findMaxBreakpoints","ret","findMinBreakpoints","ElementQuery","_media","setElement","elementSize","innerWidth","eq","eq_0","getLayerContext","contextValue","LayerContext","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","level","maxMediaIndex","mediaIndex","zIndex","setChildLayers","isTopLayer","childLevel","parentDispose","state","prevLen","nextState","Object","keys","state_0","nextState_0","_temp2","v_0","v","useLayer","err","message","LayerChildren","onActivate","onFocus","lastFocusedRef","isTopLayerRef","activeElement","rootElement","handleFocus","Layer","elementKey","defaultContextValue","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","default","createPortal","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","valueRef","_isEqual","objA","objB","keysA","keysB","every","SrOnly","rest","srOnly","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","firstElement","firstChild","HTMLElement","offsetHeight","scrollEl","findScrollable","parentNode","handleScroll","passive","ro","entries","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","floor","toIndex","ceil","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","MotionCard","motion","create","PopoverCard","memo","animate","arrow","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","layer","rootStyle","arrowStyle","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","popover","AnimatePresence","getter","getOwnPropertyDescriptor","mayWarn","isReactWarning","Radio","radio","Select","select","_inputElement","selectPresentation","ChevronDownIcon","Stack","Switch","_switch","_switchElement","_switchPresentation","_switchTrack","_switchThumb","TextArea","textArea","_inputPresentation","CLEAR_BUTTON_BOX_STYLE","backgroundColor","TextInput","__unstable_disableFocusRing","clearButton","onClear","prefix","suffix","t20","t21","t22","t23","t24","_width","t25","t26","paddingArray","withClearButton","handleClearMouseDown","preventDefault","stopPropagation","focus","handleClearClick","clearButtonBoxPadding","_temp3","clearButtonPadding","clearButtonProps","textInput","t27","t28","CloseIcon","t29","t30","t31","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","TooltipCard","tooltipCard","TooltipDelayGroupContext","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","useTooltipDelayGroup","Tooltip","fallbackPlacementsProp","portalProp","tooltip","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","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","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","Menu","_shouldFocus","onClickOutside","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","menu","MenuDivider","menuDivider","Selectable","useMenu","MenuGroup","menuProps","_onItemMouseEnter","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMenuKeyDown","event_1","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","ChevronRightIcon","t32","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","setRef","Tab","focused","id","focusedRef","_isReactElement","TabList","setFocusedIndex","tabs","numTabs","prevIndex","prevIndex_0"],"mappings":"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"}
|