@sanity/ui 3.0.0-static.3 → 3.0.0-static.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -9
- package/dist/_chunks-cjs/_visual-editing.cjs +2358 -0
- package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -0
- package/dist/_chunks-cjs/refractor.cjs +26 -0
- package/dist/_chunks-cjs/refractor.cjs.map +1 -0
- package/dist/_chunks-es/_visual-editing.js +2371 -0
- package/dist/_chunks-es/_visual-editing.js.map +1 -0
- package/dist/_chunks-es/refractor.js +25 -0
- package/dist/_chunks-es/refractor.js.map +1 -0
- package/dist/_visual-editing.cjs +30 -0
- package/dist/_visual-editing.cjs.map +1 -0
- package/dist/_visual-editing.d.cts +894 -0
- package/dist/_visual-editing.d.ts +504 -418
- package/dist/_visual-editing.js +29 -30
- package/dist/_visual-editing.js.map +1 -1
- package/dist/css/index.cjs +617 -0
- package/dist/css/index.cjs.map +1 -0
- package/dist/css/index.css +1 -0
- package/dist/css/index.d.cts +14902 -0
- package/dist/css/index.d.ts +14902 -0
- package/dist/css/index.js +617 -0
- package/dist/css/index.js.map +1 -0
- package/dist/css/layers.css +4 -0
- package/dist/css/primitives/popover/popover.css +4 -0
- package/dist/index.cjs +2470 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3212 -0
- package/dist/index.d.ts +1325 -982
- package/dist/index.js +1614 -692
- package/dist/index.js.map +1 -1
- package/dist/theme.cjs +4791 -0
- package/dist/theme.cjs.map +1 -0
- package/dist/theme.d.cts +1903 -0
- package/dist/theme.d.ts +329 -309
- package/dist/theme.js +3188 -1384
- package/dist/theme.js.map +1 -1
- package/exports/_visual-editing.ts +26 -27
- package/exports/index.ts +1 -1
- package/package.json +67 -79
- package/src/core/_compat/helpers.ts +72 -0
- package/src/core/_compat/styles/_responsive.ts +19 -0
- package/src/core/_compat/theme/theme.test.tsx +72 -0
- package/src/core/_compat/theme/themeColorProvider.tsx +24 -0
- package/src/core/_compat/theme/themeContext.ts +10 -0
- package/src/core/_compat/theme/themeProvider.tsx +68 -0
- package/src/core/_compat/theme/types.ts +10 -0
- package/src/core/_compat/theme/useRootTheme.ts +15 -0
- package/src/core/_compat/theme/useTheme.ts +12 -0
- package/src/core/_compat/types.ts +191 -0
- package/src/core/components/autocomplete/__workshop__/async.tsx +156 -0
- package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +131 -0
- package/src/core/components/autocomplete/__workshop__/custom.tsx +91 -0
- package/src/core/components/autocomplete/__workshop__/example.tsx +80 -0
- package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +36 -0
- package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +292 -0
- package/src/core/components/autocomplete/__workshop__/index.ts +39 -0
- package/src/core/components/autocomplete/autocomplete.tsx +690 -0
- package/src/core/components/autocomplete/autocompleteOption.tsx +45 -0
- package/src/core/components/autocomplete/autocompleteReducer.ts +47 -0
- package/src/core/components/autocomplete/constants.ts +28 -0
- package/src/core/components/autocomplete/types.ts +103 -0
- package/src/core/components/breadcrumbs/__workshop__/example.tsx +61 -0
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +136 -0
- package/src/core/components/dialog/__workshop__/activate.tsx +141 -0
- package/src/core/components/dialog/__workshop__/autoFocus.tsx +29 -0
- package/src/core/components/dialog/__workshop__/onScroll.tsx +51 -0
- package/src/core/components/dialog/__workshop__/panes.tsx +89 -0
- package/src/core/components/dialog/__workshop__/position.tsx +30 -0
- package/src/core/components/dialog/__workshop__/props.tsx +77 -0
- package/src/core/components/dialog/__workshop__/wrapped.tsx +76 -0
- package/src/core/components/dialog/dialog.tsx +233 -0
- package/src/core/components/dialog/dialogCard.tsx +226 -0
- package/src/core/components/dialog/dialogContext.ts +22 -0
- package/src/core/components/dialog/dialogProvider.tsx +34 -0
- package/src/core/components/dialog/isTargetWithinScope.ts +14 -0
- package/src/core/components/dialog/types.ts +2 -0
- package/src/core/components/dialog/useDialog.ts +11 -0
- package/src/core/components/hotkeys/hotkeys.tsx +71 -0
- package/src/core/components/menu/__workshop__/asComponent.tsx +45 -0
- package/src/core/components/menu/__workshop__/avatarMenu.tsx +57 -0
- package/src/core/components/menu/__workshop__/closableMenuButton.tsx +47 -0
- package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +133 -0
- package/src/core/components/menu/__workshop__/customMenuItem.tsx +45 -0
- package/src/core/components/menu/__workshop__/customSelectedState.tsx +35 -0
- package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +40 -0
- package/src/core/components/menu/__workshop__/groups.tsx +156 -0
- package/src/core/components/menu/__workshop__/menuButton.tsx +80 -0
- package/src/core/components/menu/__workshop__/menuGroupRight.tsx +65 -0
- package/src/core/components/menu/__workshop__/nestedMenu.tsx +22 -0
- package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +50 -0
- package/src/core/components/menu/__workshop__/selectedItem.tsx +69 -0
- package/src/core/components/menu/__workshop__/shouldFocus.tsx +42 -0
- package/src/core/components/menu/__workshop__/tones.tsx +25 -0
- package/src/core/components/menu/__workshop__/withoutArrow.tsx +32 -0
- package/src/core/components/menu/helpers.ts +82 -0
- package/src/core/components/menu/menu.test.tsx +127 -0
- package/src/core/components/menu/menu.tsx +194 -0
- package/src/core/components/menu/menuButton.tsx +271 -0
- package/src/core/components/menu/menuContext.ts +31 -0
- package/src/core/components/menu/menuDivider.tsx +32 -0
- package/src/core/components/menu/menuGroup.tsx +238 -0
- package/src/core/components/menu/menuItem.tsx +194 -0
- package/src/core/components/menu/useMenu.ts +21 -0
- package/src/core/components/menu/useMenuController.ts +241 -0
- package/src/core/components/tab/__workshop__/example.tsx +79 -0
- package/src/core/components/tab/tab.tsx +107 -0
- package/src/core/components/tab/tabList.tsx +95 -0
- package/src/core/components/tab/tabPanel.tsx +47 -0
- package/src/core/components/toast/__workshop__/hook.tsx +71 -0
- package/src/core/components/toast/__workshop__/toast.tsx +26 -0
- package/src/core/components/toast/toast.test.tsx +101 -0
- package/src/core/components/toast/toast.tsx +189 -0
- package/src/core/components/toast/toastContext.ts +7 -0
- package/src/core/components/toast/toastLayer.tsx +54 -0
- package/src/core/components/toast/toastProvider.tsx +112 -0
- package/src/core/components/toast/types.ts +24 -0
- package/src/core/components/toast/useToast.ts +23 -0
- package/src/core/components/tree/__workshop__/basic.perf.ts +19 -0
- package/src/core/components/tree/__workshop__/basic.tsx +105 -0
- package/src/core/components/tree/__workshop__/tabFromElement.tsx +84 -0
- package/src/core/components/tree/helpers.ts +105 -0
- package/src/core/components/tree/tree.tsx +249 -0
- package/src/core/components/tree/treeContext.ts +10 -0
- package/src/core/components/tree/treeGroup.tsx +48 -0
- package/src/core/components/tree/treeItem.tsx +237 -0
- package/src/core/components/tree/types.ts +24 -0
- package/src/core/components/tree/useTree.ts +17 -0
- package/src/core/components/virtualList/__workshop__/index.ts +29 -0
- package/src/core/components/virtualList/__workshop__/infiniteList.tsx +48 -0
- package/src/core/components/virtualList/virtualList.tsx +209 -0
- package/src/core/constants.ts +85 -0
- package/src/core/helpers/focus.ts +92 -0
- package/src/core/helpers/props.ts +28 -0
- package/src/core/hooks/useArrayProp.ts +26 -0
- package/src/core/hooks/useClickOutside.test.tsx +481 -0
- package/src/core/hooks/useClickOutside.ts +113 -0
- package/src/core/hooks/useClickOutsideEvent.test.tsx +114 -0
- package/src/core/hooks/useClickOutsideEvent.ts +67 -0
- package/src/core/hooks/useDelayed.test.ts +67 -0
- package/src/core/hooks/useDelayedState.ts +28 -0
- package/src/core/hooks/useElementRect/__workshop__/example.tsx +30 -0
- package/src/core/hooks/useElementSize.ts +19 -0
- package/src/core/hooks/useForwardedRef.ts +19 -0
- package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +14 -0
- package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +21 -0
- package/src/core/hooks/useMediaIndex/useMediaIndex.ts +102 -0
- package/src/core/hooks/usePrefersDark.hydration.test.tsx +56 -0
- package/src/core/hooks/usePrefersDark.test.tsx +20 -0
- package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +56 -0
- package/src/core/hooks/usePrefersReducedMotion.test.tsx +20 -0
- package/src/core/hooks/useResponsiveProp.ts +28 -0
- package/src/core/index.ts +136 -0
- package/src/core/lib/isArray.ts +3 -0
- package/src/core/middleware/origin.ts +47 -0
- package/src/core/observers/elementSize.ts +116 -0
- package/src/core/primitives/arrow/arrow.tsx +74 -0
- package/src/core/primitives/avatar/__workshop__/asButton.tsx +14 -0
- package/src/core/primitives/avatar/__workshop__/stack.tsx +25 -0
- package/src/core/primitives/avatar/__workshop__/withinButton.tsx +55 -0
- package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +72 -0
- package/src/core/primitives/avatar/avatar.tsx +154 -0
- package/src/core/primitives/avatar/avatarCounter.tsx +69 -0
- package/src/core/primitives/avatar/avatarStack.tsx +81 -0
- package/src/core/primitives/avatar/types.ts +34 -0
- package/src/core/primitives/badge/__workshop__/props.tsx +19 -0
- package/src/core/primitives/badge/__workshop__/tones.tsx +16 -0
- package/src/core/primitives/badge/badge.test.tsx +15 -0
- package/src/core/primitives/badge/badge.tsx +60 -0
- package/src/core/primitives/badge/types.ts +18 -0
- package/src/core/primitives/box/__workshop__/props.tsx +20 -0
- package/src/core/primitives/box/__workshop__/responsive.tsx +20 -0
- package/src/core/primitives/box/box.tsx +219 -0
- package/src/core/primitives/button/__workshop__/custom.tsx +27 -0
- package/src/core/primitives/button/__workshop__/customIcons.tsx +30 -0
- package/src/core/primitives/button/__workshop__/disabled.tsx +54 -0
- package/src/core/primitives/button/__workshop__/index.ts +64 -0
- package/src/core/primitives/button/__workshop__/props.tsx +55 -0
- package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +36 -0
- package/src/core/primitives/button/__workshop__/stacked.tsx +58 -0
- package/src/core/primitives/button/__workshop__/textOverflow.tsx +13 -0
- package/src/core/primitives/button/__workshop__/uploadButton.tsx +29 -0
- package/src/core/primitives/button/button.test.tsx +29 -0
- package/src/core/primitives/button/button.tsx +196 -0
- package/src/core/primitives/button/types.ts +22 -0
- package/src/core/primitives/card/__workshop__/asButton.tsx +107 -0
- package/src/core/primitives/card/__workshop__/asComponent.tsx +27 -0
- package/src/core/primitives/card/__workshop__/checkered.tsx +26 -0
- package/src/core/primitives/card/__workshop__/index.ts +18 -0
- package/src/core/primitives/card/__workshop__/interactive.tsx +29 -0
- package/src/core/primitives/card/__workshop__/listNavigation.tsx +78 -0
- package/src/core/primitives/card/__workshop__/props.tsx +52 -0
- package/src/core/primitives/card/__workshop__/selected.tsx +62 -0
- package/src/core/primitives/card/__workshop__/tones.tsx +27 -0
- package/src/core/primitives/card/card.tsx +106 -0
- package/src/core/primitives/card/cardContext.ts +10 -0
- package/src/core/primitives/card/cardProvider.tsx +27 -0
- package/src/core/primitives/card/types.ts +31 -0
- package/src/core/primitives/card/useCard.ts +9 -0
- package/src/core/primitives/checkbox/__workshop__/props.tsx +35 -0
- package/src/core/primitives/checkbox/__workshop__/tones.tsx +27 -0
- package/src/core/primitives/checkbox/checkbox.tsx +80 -0
- package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +23 -0
- package/src/core/primitives/code/__workshop__/props.tsx +18 -0
- package/src/core/primitives/code/code.tsx +46 -0
- package/src/core/primitives/code/refractor.tsx +18 -0
- package/src/core/primitives/container/__workshop__/example.tsx +20 -0
- package/src/core/primitives/container/container.tsx +37 -0
- package/src/core/primitives/flex/__workshop__/example.tsx +34 -0
- package/src/core/primitives/flex/flex.tsx +56 -0
- package/src/core/primitives/flex/types.ts +27 -0
- package/src/core/primitives/grid/grid.tsx +33 -0
- package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +54 -0
- package/src/core/primitives/heading/__workshop__/plain.tsx +29 -0
- package/src/core/primitives/heading/heading.tsx +80 -0
- package/src/core/primitives/inline/__workshop__/plain.tsx +24 -0
- package/src/core/primitives/inline/inline.tsx +69 -0
- package/src/core/primitives/kbd/kbd.tsx +55 -0
- package/src/core/primitives/label/__workshop__/plain.tsx +28 -0
- package/src/core/primitives/label/label.tsx +77 -0
- package/src/core/primitives/layer/__workshop__/index.ts +24 -0
- package/src/core/primitives/layer/__workshop__/multipleRoots.tsx +49 -0
- package/src/core/primitives/layer/__workshop__/nested.tsx +98 -0
- package/src/core/primitives/layer/__workshop__/responsiveZOffset.tsx +17 -0
- package/src/core/primitives/layer/getLayerContext.test.ts +32 -0
- package/src/core/primitives/layer/getLayerContext.ts +21 -0
- package/src/core/primitives/layer/layer.test.tsx +108 -0
- package/src/core/primitives/layer/layer.tsx +42 -0
- package/src/core/primitives/layer/layerCard.tsx +90 -0
- package/src/core/primitives/layer/layerContext.ts +7 -0
- package/src/core/primitives/layer/layerProvider.tsx +114 -0
- package/src/core/primitives/layer/useLayer.ts +24 -0
- package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +77 -0
- package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +32 -0
- package/src/core/primitives/popover/__workshop__/PlainStory.tsx +71 -0
- package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +69 -0
- package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +96 -0
- package/src/core/primitives/popover/__workshop__/TestStory.tsx +100 -0
- package/src/core/primitives/popover/constants.ts +22 -0
- package/src/core/primitives/popover/floating-ui/size.ts +83 -0
- package/src/core/primitives/popover/helpers.ts +32 -0
- package/src/core/primitives/popover/popover.tsx +453 -0
- package/src/core/primitives/popover/popoverLayer.tsx +149 -0
- package/src/core/primitives/popover/types.ts +12 -0
- package/src/core/primitives/radio/__workshop__/example.tsx +63 -0
- package/src/core/primitives/radio/__workshop__/plain.tsx +28 -0
- package/src/core/primitives/radio/radio.tsx +64 -0
- package/src/core/primitives/root/Root.tsx +84 -0
- package/src/core/primitives/root/RootProvider.tsx +40 -0
- package/src/core/primitives/root/__workshop__/boundary.tsx +5 -0
- package/src/core/primitives/root/__workshop__/index.ts +8 -0
- package/src/core/primitives/select/__workshop__/plain.tsx +39 -0
- package/src/core/primitives/select/__workshop__/readOnly.tsx +23 -0
- package/src/core/primitives/select/select.tsx +85 -0
- package/src/core/primitives/selectable/selectable.tsx +50 -0
- package/src/core/primitives/selectable/types.ts +7 -0
- package/src/core/primitives/skeleton/__workshop__/delay.tsx +70 -0
- package/src/core/primitives/skeleton/__workshop__/index.ts +11 -0
- package/src/core/primitives/skeleton/__workshop__/skeleton.tsx +64 -0
- package/src/core/primitives/skeleton/codeSkeleton.tsx +49 -0
- package/src/core/primitives/skeleton/headingSkeleton.tsx +48 -0
- package/src/core/primitives/skeleton/labelSkeleton.tsx +47 -0
- package/src/core/primitives/skeleton/skeleton.tsx +71 -0
- package/src/core/primitives/skeleton/textSkeleton.tsx +49 -0
- package/src/core/primitives/spinner/__workshop__/Props.tsx +15 -0
- package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +14 -0
- package/src/core/primitives/spinner/spinner.tsx +45 -0
- package/src/core/primitives/srOnly/srOnly.tsx +33 -0
- package/src/core/primitives/stack/__workshop__/plain.tsx +32 -0
- package/src/core/primitives/stack/stack.tsx +65 -0
- package/src/core/primitives/switch/switch.tsx +84 -0
- package/src/core/primitives/text/__workshop__/colored.tsx +23 -0
- package/src/core/primitives/text/__workshop__/example.tsx +28 -0
- package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +23 -0
- package/src/core/primitives/text/text.tsx +74 -0
- package/src/core/primitives/textArea/__workshop__/plain.tsx +61 -0
- package/src/core/primitives/textArea/textArea.tsx +96 -0
- package/src/core/primitives/textInput/__workshop__/customValidity.tsx +17 -0
- package/src/core/primitives/textInput/__workshop__/plain.tsx +110 -0
- package/src/core/primitives/textInput/__workshop__/states.tsx +53 -0
- package/src/core/primitives/textInput/__workshop__/tones.tsx +277 -0
- package/src/core/primitives/textInput/__workshop__/typed.tsx +23 -0
- package/src/core/primitives/textInput/textInput.tsx +261 -0
- package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +102 -0
- package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +74 -0
- package/src/core/primitives/tooltip/__workshop__/props.tsx +112 -0
- package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +86 -0
- package/src/core/primitives/tooltip/constants.ts +23 -0
- package/src/core/primitives/tooltip/tooltip.test.tsx +454 -0
- package/src/core/primitives/tooltip/tooltip.tsx +489 -0
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +11 -0
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +53 -0
- package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +13 -0
- package/src/core/primitives/tooltip/tooltipLayer.tsx +106 -0
- package/src/core/primitives/types.ts +153 -0
- package/src/core/types/props.ts +28 -0
- package/src/core/types/radius.ts +7 -0
- package/src/core/utils/boundaryElement/boundaryElement.test.tsx +100 -0
- package/src/core/utils/boundaryElement/boundaryElementContext.ts +7 -0
- package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +18 -0
- package/src/core/utils/boundaryElement/types.ts +5 -0
- package/src/core/utils/boundaryElement/useBoundaryElement.ts +24 -0
- package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +41 -0
- package/src/core/utils/elementQuery/elementQuery.tsx +75 -0
- package/src/core/utils/errorBoundary.tsx +50 -0
- package/src/core/utils/getElementRef.ts +27 -0
- package/src/core/utils/portal/__workshop__/named.tsx +63 -0
- package/src/core/utils/portal/portal.test.tsx +103 -0
- package/src/core/utils/portal/portal.tsx +40 -0
- package/src/core/utils/portal/portalContext.ts +31 -0
- package/src/core/utils/portal/portalProvider.tsx +73 -0
- package/src/core/utils/portal/types.ts +7 -0
- package/src/core/utils/portal/usePortal.ts +23 -0
- package/src/css/_assign.ts +3 -0
- package/src/css/_composeClassNames.ts +12 -0
- package/src/css/_fromEntries.ts +3 -0
- package/src/css/_getClassNames.ts +9 -0
- package/src/css/_responsiveClassName.ts +45 -0
- package/src/css/_responsiveStyle.css.ts +34 -0
- package/src/css/_style.css.ts +9 -0
- package/src/css/components/breadcrumbs/breadcrumbs.css.ts +6 -0
- package/src/css/components/breadcrumbs/breadcrumbs.ts +5 -3
- package/src/css/components/dialog/dialog.css.ts +106 -0
- package/src/css/components/dialog/dialog.ts +42 -14
- package/src/css/components/menu/menu.css.ts +14 -0
- package/src/css/components/menu/menu.ts +8 -5
- package/src/css/components/skeleton/skeleton.css.ts +132 -0
- package/src/css/components/skeleton/skeleton.ts +16 -9
- package/src/css/components/skeleton/types.ts +16 -6
- package/src/css/components/toast/toast.css.ts +17 -0
- package/src/css/components/toast/toast.ts +5 -15
- package/src/css/components/tree/tree.css.ts +65 -0
- package/src/css/components/tree/tree.ts +5 -3
- package/src/css/constants.ts +10 -1
- package/src/css/defaultTheme.css.ts +521 -0
- package/src/css/index.ts +141 -39
- package/src/css/layers.css.ts +9 -0
- package/src/css/primitives/_arrow/_arrow.css.ts +68 -0
- package/src/css/primitives/_arrow/_arrow.ts +16 -4
- package/src/css/primitives/_input/_input.css.ts +261 -0
- package/src/css/primitives/_input/input.ts +16 -12
- package/src/css/primitives/_input/types.ts +4 -3
- package/src/css/primitives/_selectable/_selectable.css.ts +131 -0
- package/src/css/primitives/_selectable/selectable.ts +5 -5
- package/src/css/primitives/_selectable/types.ts +3 -2
- package/src/css/primitives/avatar/avatar.css.ts +198 -0
- package/src/css/primitives/avatar/avatar.ts +52 -11
- package/src/css/primitives/avatar/types.ts +5 -3
- package/src/css/primitives/badge/badge.css.ts +27 -0
- package/src/css/primitives/badge/badge.ts +4 -4
- package/src/css/primitives/badge/types.ts +4 -5
- package/src/css/primitives/box/box.css.ts +19 -0
- package/src/css/primitives/box/box.ts +63 -31
- package/src/css/primitives/box/types.ts +56 -30
- package/src/css/primitives/button/button.css.ts +289 -0
- package/src/css/primitives/button/button.ts +19 -34
- package/src/css/primitives/button/types.ts +12 -0
- package/src/css/primitives/card/__workshop__/color.tsx +75 -0
- package/src/css/primitives/card/__workshop__/index.ts +14 -0
- package/src/css/primitives/card/card.css.ts +370 -0
- package/src/css/primitives/card/card.ts +9 -10
- package/src/css/primitives/card/types.ts +4 -6
- package/src/css/primitives/checkbox/checkbox.css.ts +193 -0
- package/src/css/primitives/checkbox/checkbox.ts +13 -5
- package/src/css/primitives/code/code.css.ts +271 -0
- package/src/css/primitives/code/code.ts +15 -5
- package/src/css/primitives/code/types.ts +5 -3
- package/src/css/primitives/container/container.css.ts +4 -0
- package/src/css/primitives/container/container.ts +14 -4
- package/src/css/primitives/container/types.ts +4 -2
- package/src/css/primitives/heading/heading.css.ts +85 -0
- package/src/css/primitives/heading/heading.ts +16 -11
- package/src/css/primitives/heading/types.ts +8 -3
- package/src/css/primitives/kbd/kbd.css.ts +16 -0
- package/src/css/primitives/kbd/kbd.ts +6 -4
- package/src/css/primitives/kbd/types.ts +2 -3
- package/src/css/primitives/label/label.css.ts +86 -0
- package/src/css/primitives/label/label.ts +16 -10
- package/src/css/primitives/label/types.ts +15 -5
- package/src/css/primitives/popover/popover.css.ts +6 -0
- package/src/css/primitives/popover/popover.ts +10 -3
- package/src/css/primitives/radio/radio.css.ts +78 -0
- package/src/css/primitives/radio/radio.ts +15 -3
- package/src/css/primitives/root/root.css.ts +15 -0
- package/src/css/primitives/root/root.ts +17 -0
- package/src/css/primitives/root/types.ts +10 -0
- package/src/css/primitives/select/select.css.ts +24 -0
- package/src/css/primitives/select/select.ts +8 -6
- package/src/css/primitives/select/types.ts +1 -1
- package/src/css/primitives/spinner/spinner.css.ts +23 -0
- package/src/css/primitives/spinner/spinner.ts +9 -5
- package/src/css/primitives/spinner/types.ts +4 -0
- package/src/css/primitives/srOnly/srOnly.css.ts +10 -0
- package/src/css/primitives/srOnly/srOnly.ts +7 -0
- package/src/css/primitives/stack/stack.css.ts +6 -0
- package/src/css/primitives/stack/stack.ts +7 -0
- package/src/css/primitives/switch/switch.css.ts +98 -0
- package/src/css/primitives/switch/switch.ts +13 -7
- package/src/css/primitives/text/text.css.ts +85 -0
- package/src/css/primitives/text/text.ts +18 -11
- package/src/css/primitives/text/types.ts +12 -3
- package/src/css/primitives/textArea/textArea.css.ts +4 -0
- package/src/css/primitives/textArea/textArea.ts +6 -5
- package/src/css/primitives/textArea/types.ts +5 -3
- package/src/css/primitives/textInput/textInput.css.ts +41 -0
- package/src/css/primitives/textInput/textInput.ts +21 -5
- package/src/css/primitives/textInput/types.ts +3 -7
- package/src/css/primitives/tooltip/tooltip.css.ts +4 -0
- package/src/css/primitives/tooltip/tooltip.ts +6 -7
- package/src/css/primitives/tooltip/types.ts +4 -0
- package/src/css/props/alignItems/alignItems.css.ts +22 -0
- package/src/css/props/alignItems/alignItems.ts +8 -0
- package/src/css/props/alignItems/types.ts +9 -0
- package/src/css/props/border/border.css.ts +65 -0
- package/src/css/props/border/border.ts +36 -0
- package/src/css/props/border/types.ts +13 -0
- package/src/css/props/boxSizing/boxSizing.css.ts +11 -0
- package/src/css/props/boxSizing/boxSizing.ts +10 -0
- package/src/css/props/boxSizing/types.ts +7 -0
- package/src/css/props/display/display.css.ts +56 -0
- package/src/css/props/display/display.ts +17 -0
- package/src/css/props/display/types.ts +16 -0
- package/src/css/props/flex/flex.css.ts +52 -0
- package/src/css/props/flex/flex.ts +8 -0
- package/src/css/props/flex/types.ts +9 -0
- package/src/css/props/flexDirection/flexDirection.css.ts +19 -0
- package/src/css/props/flexDirection/flexDirection.ts +8 -0
- package/src/css/props/flexDirection/types.ts +9 -0
- package/src/css/props/flexWrap/flexWrap.css.ts +16 -0
- package/src/css/props/flexWrap/flexWrap.ts +8 -0
- package/src/css/props/flexWrap/types.ts +9 -0
- package/src/css/props/font/font.css.ts +93 -0
- package/src/css/props/font/font.ts +8 -0
- package/src/css/props/font/types.ts +6 -0
- package/src/css/props/gap/gap.css.ts +40 -0
- package/src/css/props/gap/gap.ts +13 -0
- package/src/css/props/gap/types.ts +10 -0
- package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +19 -0
- package/src/css/props/gridAutoColumns/gridAutoColumns.ts +8 -0
- package/src/css/props/gridAutoColumns/types.ts +19 -0
- package/src/css/props/gridAutoFlow/gridAutoFlow.css.ts +19 -0
- package/src/css/props/gridAutoFlow/gridAutoFlow.ts +8 -0
- package/src/css/props/gridAutoFlow/types.ts +13 -0
- package/src/css/props/gridAutoRows/gridAutoRows.css.ts +19 -0
- package/src/css/props/gridAutoRows/gridAutoRows.ts +8 -0
- package/src/css/props/gridAutoRows/types.ts +13 -0
- package/src/css/props/gridColumn/gridColumn.css.ts +49 -0
- package/src/css/props/gridColumn/gridColumn.ts +8 -0
- package/src/css/props/gridColumn/types.ts +19 -0
- package/src/css/props/gridColumnEnd/gridColumnEnd.css.ts +46 -0
- package/src/css/props/gridColumnEnd/gridColumnEnd.ts +8 -0
- package/src/css/props/gridColumnEnd/types.ts +19 -0
- package/src/css/props/gridColumnStart/gridColumnStart.css.ts +46 -0
- package/src/css/props/gridColumnStart/gridColumnStart.ts +11 -0
- package/src/css/props/gridColumnStart/types.ts +19 -0
- package/src/css/props/gridRow/gridRow.css.ts +49 -0
- package/src/css/props/gridRow/gridRow.ts +8 -0
- package/src/css/props/gridRow/types.ts +19 -0
- package/src/css/props/gridRowEnd/gridRowEnd.css.ts +46 -0
- package/src/css/props/gridRowEnd/gridRowEnd.ts +8 -0
- package/src/css/props/gridRowEnd/types.ts +19 -0
- package/src/css/props/gridRowStart/gridRowStart.css.ts +46 -0
- package/src/css/props/gridRowStart/gridRowStart.ts +8 -0
- package/src/css/props/gridRowStart/types.ts +19 -0
- package/src/css/props/gridTemplateColumns/gridTemplateColumns.css.ts +43 -0
- package/src/css/props/gridTemplateColumns/gridTemplateColumns.ts +8 -0
- package/src/css/props/gridTemplateColumns/types.ts +19 -0
- package/src/css/props/gridTemplateRows/gridTemplateRows.css.ts +43 -0
- package/src/css/props/gridTemplateRows/gridTemplateRows.ts +8 -0
- package/src/css/props/gridTemplateRows/types.ts +19 -0
- package/src/css/props/height/height.css.ts +25 -0
- package/src/css/props/height/height.ts +8 -0
- package/src/css/props/height/types.ts +15 -0
- package/src/css/props/inset/inset.css.ts +37 -0
- package/src/css/props/inset/inset.ts +21 -0
- package/src/css/props/inset/types.ts +13 -0
- package/src/css/props/justifyContent/justifyContent.css.ts +25 -0
- package/src/css/props/justifyContent/justifyContent.ts +8 -0
- package/src/css/props/justifyContent/types.ts +15 -0
- package/src/css/props/margin/margin.css.ts +117 -0
- package/src/css/props/margin/margin.ts +25 -0
- package/src/css/props/margin/types.ts +17 -0
- package/src/css/props/maxWidth/maxWidth.css.ts +32 -0
- package/src/css/props/maxWidth/maxWidth.ts +8 -0
- package/src/css/props/maxWidth/types.ts +11 -0
- package/src/css/props/minHeight/minHeight.css.ts +13 -0
- package/src/css/props/minHeight/minHeight.ts +8 -0
- package/src/css/props/minHeight/types.ts +9 -0
- package/src/css/props/minWidth/minWidth.css.ts +25 -0
- package/src/css/props/minWidth/minWidth.ts +8 -0
- package/src/css/props/minWidth/types.ts +9 -0
- package/src/css/props/outline/outline.css.ts +10 -0
- package/src/css/props/outline/outline.ts +8 -0
- package/src/css/props/outline/types.ts +7 -0
- package/src/css/props/overflow/overflow.css.ts +16 -0
- package/src/css/props/overflow/overflow.ts +8 -0
- package/src/css/props/overflow/types.ts +17 -0
- package/src/css/props/padding/padding.css.ts +87 -0
- package/src/css/props/padding/padding.ts +25 -0
- package/src/css/props/padding/types.ts +17 -0
- package/src/css/props/pointerEvents/pointerEvents.css.ts +13 -0
- package/src/css/props/pointerEvents/pointerEvents.ts +8 -0
- package/src/css/props/position/position.css.ts +22 -0
- package/src/css/props/position/position.ts +8 -0
- package/src/css/props/position/types.ts +9 -0
- package/src/css/props/radius/radius.css.ts +21 -0
- package/src/css/props/radius/radius.ts +8 -0
- package/src/css/props/radius/types.ts +8 -0
- package/src/css/props/shadow/shadow.css.ts +23 -0
- package/src/css/props/shadow/shadow.ts +8 -0
- package/src/css/props/shadow/types.ts +8 -0
- package/src/css/props/textAlign/textAlign.css.ts +22 -0
- package/src/css/props/textAlign/textAlign.ts +8 -0
- package/src/css/props/textAlign/types.ts +7 -0
- package/src/css/props/textOverflow/textOverflow.css.ts +19 -0
- package/src/css/props/textOverflow/textOverflow.ts +8 -0
- package/src/css/props/textOverflow/types.ts +12 -0
- package/src/css/props/width/types.ts +11 -0
- package/src/css/props/width/width.css.ts +31 -0
- package/src/css/props/width/width.ts +8 -0
- package/src/css/types.ts +221 -810
- package/src/css/util.ts +3 -8
- package/src/css/vars.css.ts +676 -0
- package/src/theme/getScopedTheme.ts +4 -4
- package/src/theme/index.ts +0 -5
- package/src/theme/types.ts +6 -10
- package/src/theme/v0/color/_generic.ts +1 -1
- package/src/theme/v0/color/button.ts +1 -1
- package/src/theme/v0/color/card.ts +1 -1
- package/src/theme/v0/color/color.ts +11 -11
- package/src/theme/v0/color/input.ts +1 -1
- package/src/theme/v0/color/muted.ts +1 -1
- package/src/theme/v0/color/selectable.ts +1 -1
- package/src/theme/v0/color/solid.ts +1 -1
- package/src/theme/v0/color/spot.ts +1 -1
- package/src/theme/v0/focusRing.ts +1 -3
- package/src/theme/v0/font.ts +6 -19
- package/src/theme/v0/layer.ts +1 -3
- package/src/theme/v0/shadow.ts +2 -6
- package/src/theme/v0/styles.ts +1 -1
- package/src/theme/v0/theme.ts +7 -7
- package/src/theme/v2/avatar.ts +2 -4
- package/src/theme/v2/build/_deprecated/color/_selectable/createSelectableTones.ts +76 -0
- package/src/theme/v2/build/_deprecated/color/_solid/createSolidTones.ts +54 -0
- package/src/theme/v2/build/_deprecated/color/button/createButtonModes.ts +22 -0
- package/src/theme/v2/build/_deprecated/color/button/createButtonTones.ts +55 -0
- package/src/theme/v2/build/_deprecated/color/card/createCardStates.ts +60 -0
- package/src/theme/v2/build/_deprecated/color/color.test.ts +63 -0
- package/src/theme/v2/build/_deprecated/color/defaults.ts +390 -0
- package/src/theme/v2/build/_deprecated/color/factory.ts +141 -0
- package/src/theme/v2/build/_deprecated/color/input/createInputModes.ts +86 -0
- package/src/theme/v2/build/_deprecated/color/muted/createMuted.ts +54 -0
- package/src/theme/v2/build/_deprecated/color/spot/createSpot.ts +20 -0
- package/src/theme/v2/build/buildColorTheme.test.ts +185 -0
- package/src/theme/v2/build/buildColorTheme.ts +494 -0
- package/src/theme/v2/build/buildTheme.test.ts +89 -0
- package/src/theme/v2/build/buildTheme.ts +37 -0
- package/src/theme/v2/build/colorToken/colorToken.ts +19 -0
- package/src/theme/v2/build/colorToken/compileColorToken.ts +21 -0
- package/src/theme/v2/build/colorToken/types.ts +6 -0
- package/src/theme/v2/build/lib/color-fns/blend/mix.ts +21 -0
- package/src/theme/v2/build/lib/color-fns/blend/multiply.ts +18 -0
- package/src/theme/v2/build/lib/color-fns/blend/screen.ts +18 -0
- package/src/theme/v2/build/lib/color-fns/color-fns.test.ts +68 -0
- package/src/theme/v2/build/lib/color-fns/contrastRatio.ts +34 -0
- package/src/theme/v2/build/lib/color-fns/convert.ts +150 -0
- package/src/theme/v2/build/lib/color-fns/parse.ts +60 -0
- package/src/theme/v2/build/mixThemeColor.test.ts +23 -0
- package/src/theme/v2/build/mixThemeColor.ts +53 -0
- package/src/theme/v2/build/renderColorTheme.ts +532 -0
- package/src/theme/v2/build/renderColorValue.ts +85 -0
- package/src/theme/v2/build/resolveColorTokens.ts +268 -0
- package/src/theme/v2/color/_helpers.ts +2 -2
- package/src/theme/v2/color/_system.ts +2 -4
- package/src/theme/v2/color/avatar.ts +3 -7
- package/src/theme/v2/color/badge.ts +3 -7
- package/src/theme/v2/color/button.ts +5 -11
- package/src/theme/v2/color/color.ts +10 -16
- package/src/theme/v2/color/input.ts +8 -10
- package/src/theme/v2/color/kbd.ts +1 -3
- package/src/theme/v2/color/selectable.ts +4 -8
- package/src/theme/v2/color/state.ts +5 -7
- package/src/theme/v2/color/syntax.ts +1 -3
- package/src/theme/v2/config/helpers.ts +48 -0
- package/src/theme/v2/config/system.ts +114 -0
- package/src/theme/v2/config/tokens/color/types.ts +137 -0
- package/src/theme/v2/config/tokens/index.ts +3 -0
- package/src/theme/v2/config/tokens/parseTokenValue.test.ts +44 -0
- package/src/theme/v2/config/tokens/parseTokenValue.ts +133 -0
- package/src/theme/v2/config/tokens/types.ts +53 -0
- package/src/theme/v2/config/types.ts +47 -0
- package/src/theme/v2/defaults/colorPalette.ts +5 -0
- package/src/theme/v2/defaults/colorTokens.ts +648 -0
- package/src/theme/v2/defaults/config.ts +84 -0
- package/src/theme/v2/defaults/fonts.ts +227 -0
- package/src/theme/v2/index.ts +2 -0
- package/src/theme/v2/input.ts +2 -4
- package/src/theme/v2/theme.ts +10 -14
- package/src/theme/v3/_constants.ts +29 -0
- package/src/theme/v3/_parseColorToken.ts +180 -0
- package/src/theme/v3/buildTheme_v3.ts +20 -11
- package/src/theme/v3/color/_constants.ts +15 -0
- package/src/theme/v3/color/avatar.ts +14 -0
- package/src/theme/v3/color/card.ts +58 -95
- package/src/theme/v3/color/color.ts +75 -71
- package/src/theme/v3/color/element.ts +8 -8
- package/src/theme/v3/color/index.ts +2 -2
- package/src/theme/v3/color/token.ts +19 -4
- package/src/theme/v3/color/tokens.ts +2 -2
- package/src/theme/v3/defaultFonts.ts +250 -0
- package/src/theme/v3/defaultTokens.ts +199 -0
- package/src/theme/v3/index.ts +4 -1
- package/src/theme/v3/palette/constants.ts +15 -0
- package/src/theme/v3/palette/types.ts +7 -0
- package/src/theme/v3/resolveTokens.ts +70 -65
- package/src/theme/v3/tokens.ts +2 -2
- package/src/theme/v3/types.ts +97 -12
- package/src/theme/versioning/getTheme_v2.ts +3 -3
- package/src/theme/versioning/is_v0.ts +2 -2
- package/src/theme/versioning/is_v2.ts +2 -2
- package/src/theme/versioning/themeColor_v0_v2.ts +2 -2
- package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -1
- package/src/theme/versioning/themeColor_v3_v2.ts +229 -52
- package/src/theme/versioning/v0_v2.ts +3 -3
- package/src/theme/versioning/v2_v0.ts +4 -4
- package/src/theme/versioning/v3_v2.ts +62 -40
- package/bin/ui.js +0 -5
- package/dist/_chunks-cjs/_visual-editing.js +0 -3100
- package/dist/_chunks-cjs/_visual-editing.js.map +0 -1
- package/dist/_chunks-cjs/buildCommand.js +0 -32
- package/dist/_chunks-cjs/buildCommand.js.map +0 -1
- package/dist/_chunks-cjs/refractor.js +0 -27
- package/dist/_chunks-cjs/refractor.js.map +0 -1
- package/dist/_chunks-cjs/v3_v2.js +0 -251
- package/dist/_chunks-cjs/v3_v2.js.map +0 -1
- package/dist/_chunks-es/_visual-editing.mjs +0 -3107
- package/dist/_chunks-es/_visual-editing.mjs.map +0 -1
- package/dist/_chunks-es/refractor.mjs +0 -26
- package/dist/_chunks-es/refractor.mjs.map +0 -1
- package/dist/_chunks-es/v3_v2.mjs +0 -252
- package/dist/_chunks-es/v3_v2.mjs.map +0 -1
- package/dist/_visual-editing.d.mts +0 -808
- package/dist/_visual-editing.mjs +0 -31
- package/dist/_visual-editing.mjs.map +0 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +0 -357
- package/dist/cli.js.map +0 -1
- package/dist/css.d.mts +0 -2197
- package/dist/css.d.ts +0 -2197
- package/dist/css.js +0 -4769
- package/dist/css.js.map +0 -1
- package/dist/css.mjs +0 -4770
- package/dist/css.mjs.map +0 -1
- package/dist/index.d.mts +0 -2869
- package/dist/index.mjs +0 -1545
- package/dist/index.mjs.map +0 -1
- package/dist/sanity-palette.css +0 -9
- package/dist/sanity-theme.css +0 -1
- package/dist/system.css +0 -22813
- package/dist/theme.d.mts +0 -1883
- package/dist/theme.mjs +0 -2989
- package/dist/theme.mjs.map +0 -1
- package/src/cli/buildCommand.ts +0 -48
- package/src/cli/index.ts +0 -38
- package/src/css/_comp.test.ts +0 -7
- package/src/css/_comp.ts +0 -10
- package/src/css/_mergeStyles.ts +0 -31
- package/src/css/_resp.ts +0 -38
- package/src/css/_responsiveRule.ts +0 -38
- package/src/css/aspects/border/border.style.ts +0 -13
- package/src/css/aspects/border/border.ts +0 -14
- package/src/css/aspects/border/index.ts +0 -2
- package/src/css/aspects/border/types.ts +0 -10
- package/src/css/aspects/display/display.style.ts +0 -34
- package/src/css/aspects/display/display.ts +0 -7
- package/src/css/aspects/display/index.ts +0 -2
- package/src/css/aspects/display/types.ts +0 -17
- package/src/css/aspects/flex/flex.style.ts +0 -30
- package/src/css/aspects/flex/flex.ts +0 -13
- package/src/css/aspects/flex/flexAlign.style.ts +0 -12
- package/src/css/aspects/flex/flexDirection.style.ts +0 -11
- package/src/css/aspects/flex/flexJustify.style.ts +0 -13
- package/src/css/aspects/flex/flexWrap.style.ts +0 -10
- package/src/css/aspects/flex/index.ts +0 -2
- package/src/css/aspects/flex/types.ts +0 -35
- package/src/css/aspects/flexItem/flex.style.ts +0 -22
- package/src/css/aspects/flexItem/flexItem.ts +0 -8
- package/src/css/aspects/flexItem/index.ts +0 -2
- package/src/css/aspects/flexItem/types.ts +0 -27
- package/src/css/aspects/font/font.style.ts +0 -151
- package/src/css/aspects/font/font.ts +0 -12
- package/src/css/aspects/font/index.ts +0 -2
- package/src/css/aspects/font/types.ts +0 -12
- package/src/css/aspects/gap/gap.style.ts +0 -21
- package/src/css/aspects/gap/gap.ts +0 -8
- package/src/css/aspects/gap/index.ts +0 -2
- package/src/css/aspects/gap/types.ts +0 -10
- package/src/css/aspects/grid/grid.ts +0 -13
- package/src/css/aspects/grid/gridAutoColumns.style.ts +0 -11
- package/src/css/aspects/grid/gridAutoFlow.style.ts +0 -11
- package/src/css/aspects/grid/gridAutoRows.style.ts +0 -11
- package/src/css/aspects/grid/gridColumns.style.ts +0 -18
- package/src/css/aspects/grid/gridRows.style.ts +0 -18
- package/src/css/aspects/grid/index.ts +0 -2
- package/src/css/aspects/grid/types.ts +0 -29
- package/src/css/aspects/gridItem/gridColumn.style.ts +0 -20
- package/src/css/aspects/gridItem/gridColumnEnd.style.ts +0 -20
- package/src/css/aspects/gridItem/gridColumnStart.style.ts +0 -20
- package/src/css/aspects/gridItem/gridItem.ts +0 -15
- package/src/css/aspects/gridItem/gridRow.style.ts +0 -20
- package/src/css/aspects/gridItem/gridRowEnd.style.ts +0 -20
- package/src/css/aspects/gridItem/gridRowStart.style.ts +0 -20
- package/src/css/aspects/gridItem/index.ts +0 -2
- package/src/css/aspects/gridItem/types.ts +0 -41
- package/src/css/aspects/height/height.style.ts +0 -9
- package/src/css/aspects/height/height.ts +0 -17
- package/src/css/aspects/height/index.ts +0 -1
- package/src/css/aspects/height/rules.ts +0 -7
- package/src/css/aspects/index.ts +0 -20
- package/src/css/aspects/inset/index.ts +0 -2
- package/src/css/aspects/inset/inset.style.ts +0 -12
- package/src/css/aspects/inset/inset.ts +0 -13
- package/src/css/aspects/inset/types.ts +0 -13
- package/src/css/aspects/margin/index.ts +0 -2
- package/src/css/aspects/margin/margin.style.ts +0 -46
- package/src/css/aspects/margin/margin.ts +0 -15
- package/src/css/aspects/margin/types.ts +0 -11
- package/src/css/aspects/maxWidth/index.ts +0 -2
- package/src/css/aspects/maxWidth/maxWidth.style.ts +0 -16
- package/src/css/aspects/maxWidth/maxWidth.ts +0 -6
- package/src/css/aspects/maxWidth/types.ts +0 -7
- package/src/css/aspects/outline/outline.style.ts +0 -9
- package/src/css/aspects/overflow/index.ts +0 -2
- package/src/css/aspects/overflow/overflow.style.ts +0 -11
- package/src/css/aspects/overflow/overflow.ts +0 -11
- package/src/css/aspects/overflow/types.ts +0 -11
- package/src/css/aspects/padding/index.ts +0 -2
- package/src/css/aspects/padding/padding.style.ts +0 -46
- package/src/css/aspects/padding/padding.ts +0 -15
- package/src/css/aspects/padding/types.ts +0 -14
- package/src/css/aspects/pointerEvents/index.ts +0 -2
- package/src/css/aspects/pointerEvents/pointerEvents.style.ts +0 -13
- package/src/css/aspects/pointerEvents/pointerEvents.ts +0 -6
- package/src/css/aspects/position/index.ts +0 -2
- package/src/css/aspects/position/position.style.ts +0 -12
- package/src/css/aspects/position/position.ts +0 -7
- package/src/css/aspects/position/types.ts +0 -9
- package/src/css/aspects/radius/index.ts +0 -2
- package/src/css/aspects/radius/radius.style.ts +0 -16
- package/src/css/aspects/radius/radius.ts +0 -8
- package/src/css/aspects/radius/types.ts +0 -8
- package/src/css/aspects/shadow/index.ts +0 -2
- package/src/css/aspects/shadow/shadow.style.ts +0 -49
- package/src/css/aspects/shadow/shadow.ts +0 -7
- package/src/css/aspects/shadow/types.ts +0 -8
- package/src/css/aspects/textOverflow/index.ts +0 -2
- package/src/css/aspects/textOverflow/textOverflow.style.ts +0 -21
- package/src/css/aspects/textOverflow/textOverflow.ts +0 -6
- package/src/css/aspects/textOverflow/types.ts +0 -8
- package/src/css/aspects/width/index.ts +0 -2
- package/src/css/aspects/width/rules.ts +0 -8
- package/src/css/aspects/width/types.ts +0 -9
- package/src/css/aspects/width/width.style.ts +0 -11
- package/src/css/aspects/width/width.ts +0 -6
- package/src/css/compile/compilePalette.ts +0 -60
- package/src/css/compile/compileRule.ts +0 -96
- package/src/css/compile/compileRules.test.ts +0 -36
- package/src/css/compile/compileRules.ts +0 -43
- package/src/css/compile/compileStyle.ts +0 -148
- package/src/css/compile/compileSystem.ts +0 -10
- package/src/css/compile/compileTheme.ts +0 -15
- package/src/css/compile/compileTheme_v3.ts +0 -410
- package/src/css/compile/types.ts +0 -6
- package/src/css/components/breadcrumbs/breadcrumbs.style.ts +0 -9
- package/src/css/components/breadcrumbs/index.ts +0 -1
- package/src/css/components/breadcrumbs/rules.ts +0 -25
- package/src/css/components/dialog/dialog.style.ts +0 -79
- package/src/css/components/dialog/index.ts +0 -1
- package/src/css/components/dialog/rules.ts +0 -78
- package/src/css/components/menu/index.ts +0 -1
- package/src/css/components/menu/menu.style.ts +0 -17
- package/src/css/components/menu/rules.ts +0 -15
- package/src/css/components/skeleton/index.ts +0 -2
- package/src/css/components/skeleton/rules.ts +0 -113
- package/src/css/components/skeleton/skeleton.style.ts +0 -96
- package/src/css/components/toast/index.ts +0 -1
- package/src/css/components/toast/rules.ts +0 -18
- package/src/css/components/toast/toast.style.ts +0 -20
- package/src/css/components/tree/index.ts +0 -1
- package/src/css/components/tree/rules.ts +0 -168
- package/src/css/components/tree/tree.style.ts +0 -55
- package/src/css/composeClassNames.ts +0 -17
- package/src/css/primitives/_arrow/_arrow.style.ts +0 -73
- package/src/css/primitives/_arrow/index.ts +0 -1
- package/src/css/primitives/_input/__workshop__/customInput.tsx +0 -16
- package/src/css/primitives/_input/__workshop__/index.ts +0 -14
- package/src/css/primitives/_input/_input.style.ts +0 -162
- package/src/css/primitives/_input/index.ts +0 -2
- package/src/css/primitives/_selectable/__style.ts +0 -117
- package/src/css/primitives/_selectable/_contants.ts +0 -11
- package/src/css/primitives/_selectable/_selectable.style.ts +0 -132
- package/src/css/primitives/_selectable/index.ts +0 -2
- package/src/css/primitives/avatar/avatar.style.ts +0 -175
- package/src/css/primitives/avatar/index.ts +0 -2
- package/src/css/primitives/avatar/rules.ts +0 -176
- package/src/css/primitives/badge/badge.style.ts +0 -22
- package/src/css/primitives/badge/index.ts +0 -2
- package/src/css/primitives/box/box.style.ts +0 -31
- package/src/css/primitives/box/index.ts +0 -2
- package/src/css/primitives/button/_constants.ts +0 -17
- package/src/css/primitives/button/button.style.ts +0 -182
- package/src/css/primitives/button/index.ts +0 -1
- package/src/css/primitives/button/rules.ts +0 -302
- package/src/css/primitives/card/_constants.ts +0 -13
- package/src/css/primitives/card/card.style.ts +0 -198
- package/src/css/primitives/card/index.ts +0 -2
- package/src/css/primitives/card/rules.ts +0 -473
- package/src/css/primitives/checkbox/__styles.ts +0 -129
- package/src/css/primitives/checkbox/checkbox.style.ts +0 -154
- package/src/css/primitives/checkbox/index.ts +0 -1
- package/src/css/primitives/checkbox/rules.ts +0 -152
- package/src/css/primitives/code/code.style.ts +0 -62
- package/src/css/primitives/code/index.ts +0 -2
- package/src/css/primitives/code/rules.ts +0 -96
- package/src/css/primitives/container/container.style.ts +0 -10
- package/src/css/primitives/container/index.ts +0 -2
- package/src/css/primitives/container/rules.ts +0 -8
- package/src/css/primitives/heading/heading.style.ts +0 -47
- package/src/css/primitives/heading/index.ts +0 -2
- package/src/css/primitives/heading/rules.ts +0 -155
- package/src/css/primitives/kbd/index.ts +0 -2
- package/src/css/primitives/kbd/kbd.style.ts +0 -22
- package/src/css/primitives/kbd/rules.ts +0 -20
- package/src/css/primitives/label/index.ts +0 -2
- package/src/css/primitives/label/label.style.ts +0 -48
- package/src/css/primitives/label/rules.ts +0 -137
- package/src/css/primitives/popover/index.ts +0 -1
- package/src/css/primitives/popover/popover.style.ts +0 -5
- package/src/css/primitives/popover/rules.ts +0 -5
- package/src/css/primitives/radio/index.ts +0 -1
- package/src/css/primitives/radio/radio.style.ts +0 -123
- package/src/css/primitives/radio/rules.ts +0 -121
- package/src/css/primitives/select/index.ts +0 -2
- package/src/css/primitives/select/rules.ts +0 -22
- package/src/css/primitives/select/select.style.ts +0 -24
- package/src/css/primitives/spinner/index.ts +0 -1
- package/src/css/primitives/spinner/rules.ts +0 -21
- package/src/css/primitives/spinner/spinner.style.ts +0 -22
- package/src/css/primitives/switch/index.ts +0 -1
- package/src/css/primitives/switch/rules.ts +0 -340
- package/src/css/primitives/switch/switch.style.ts +0 -169
- package/src/css/primitives/text/index.ts +0 -2
- package/src/css/primitives/text/rules.ts +0 -164
- package/src/css/primitives/text/text.style.ts +0 -56
- package/src/css/primitives/textArea/index.ts +0 -2
- package/src/css/primitives/textArea/rules.ts +0 -7
- package/src/css/primitives/textArea/textArea.style.ts +0 -9
- package/src/css/primitives/textInput/index.ts +0 -2
- package/src/css/primitives/textInput/rules.ts +0 -224
- package/src/css/primitives/textInput/textInput.style.ts +0 -167
- package/src/css/primitives/token/rules.ts +0 -45
- package/src/css/primitives/token/token.style.ts +0 -49
- package/src/css/primitives/tooltip/index.ts +0 -1
- package/src/css/primitives/tooltip/rules.ts +0 -19
- package/src/css/primitives/tooltip/tooltip.style.ts +0 -21
- package/src/css/responsiveRules.ts +0 -25
- package/src/css/scopeClassName.ts +0 -6
- package/src/css/system.style.ts +0 -154
- package/src/css/utils/srOnly/index.ts +0 -1
- package/src/css/utils/srOnly/srOnly.style.ts +0 -14
- package/src/css/utils/srOnly/srOnly.ts +0 -5
- package/src/css/varNames.ts +0 -486
- package/src/css/vars.ts +0 -456
- package/src/theme/_constants.ts +0 -26
- package/src/theme/_types.ts +0 -41
- package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -76
- package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +0 -54
- package/src/theme/build/_deprecated/color/button/createButtonModes.ts +0 -17
- package/src/theme/build/_deprecated/color/button/createButtonTones.ts +0 -55
- package/src/theme/build/_deprecated/color/card/createCardStates.ts +0 -60
- package/src/theme/build/_deprecated/color/color.test.ts +0 -63
- package/src/theme/build/_deprecated/color/defaults.ts +0 -390
- package/src/theme/build/_deprecated/color/factory.ts +0 -141
- package/src/theme/build/_deprecated/color/input/createInputModes.ts +0 -81
- package/src/theme/build/_deprecated/color/muted/createMuted.ts +0 -54
- package/src/theme/build/_deprecated/color/spot/createSpot.ts +0 -20
- package/src/theme/build/buildColorTheme.test.ts +0 -183
- package/src/theme/build/buildColorTheme.ts +0 -494
- package/src/theme/build/buildTheme.test.ts +0 -87
- package/src/theme/build/buildTheme.ts +0 -12
- package/src/theme/build/colorToken/colorToken.ts +0 -19
- package/src/theme/build/colorToken/compileColorToken.ts +0 -21
- package/src/theme/build/colorToken/types.ts +0 -6
- package/src/theme/build/lib/color-fns/blend/mix.ts +0 -21
- package/src/theme/build/lib/color-fns/blend/multiply.ts +0 -18
- package/src/theme/build/lib/color-fns/blend/screen.ts +0 -18
- package/src/theme/build/lib/color-fns/color-fns.test.ts +0 -68
- package/src/theme/build/lib/color-fns/contrastRatio.ts +0 -31
- package/src/theme/build/lib/color-fns/convert.ts +0 -150
- package/src/theme/build/lib/color-fns/parse.ts +0 -60
- package/src/theme/build/mixThemeColor.test.ts +0 -21
- package/src/theme/build/mixThemeColor.ts +0 -53
- package/src/theme/build/renderColorTheme.ts +0 -532
- package/src/theme/build/renderColorValue.ts +0 -85
- package/src/theme/build/resolveColorTokens.ts +0 -268
- package/src/theme/build/theme.test.ts +0 -27
- package/src/theme/config/helpers.ts +0 -55
- package/src/theme/config/system.ts +0 -115
- package/src/theme/config/tokens/color/types.ts +0 -133
- package/src/theme/config/tokens/index.ts +0 -4
- package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
- package/src/theme/config/tokens/parseTokenKey.ts +0 -67
- package/src/theme/config/tokens/parseTokenValue.test.ts +0 -42
- package/src/theme/config/tokens/parseTokenValue.ts +0 -133
- package/src/theme/config/tokens/types.ts +0 -53
- package/src/theme/config/types.ts +0 -45
- package/src/theme/defaults/colorPalette.ts +0 -5
- package/src/theme/defaults/colorTokens.ts +0 -648
- package/src/theme/defaults/config.ts +0 -84
- package/src/theme/defaults/fonts.ts +0 -228
- package/src/theme/palette/constants.ts +0 -15
- package/src/theme/palette/types.ts +0 -16
- package/src/theme/v3/buildTheme_v3.test.ts +0 -40
- package/src/theme/v3/color/buildColor_v3.ts +0 -193
- package/src/theme/v3/color/parseColor.test.ts +0 -79
- package/src/theme/v3/color/parseColor.ts +0 -167
- package/src/theme/v3/color/renderColor.test.ts +0 -19
- package/src/theme/v3/color/renderColor.ts +0 -33
- package/src/theme/v3/defaults.ts +0 -205
- package/src/ui/StyleTags.tsx +0 -24
- package/src/ui/_compat/index.ts +0 -9
- package/src/ui/_compat/styles/_responsive.ts +0 -19
- package/src/ui/_compat/styles/index.ts +0 -1
- package/src/ui/_compat/theme/index.ts +0 -5
- package/src/ui/_compat/theme/theme.test.tsx +0 -73
- package/src/ui/_compat/theme/themeColorProvider.tsx +0 -30
- package/src/ui/_compat/theme/themeContext.ts +0 -10
- package/src/ui/_compat/theme/themeProvider.tsx +0 -74
- package/src/ui/_compat/theme/types.ts +0 -12
- package/src/ui/_compat/theme/useRootTheme.ts +0 -17
- package/src/ui/_compat/theme/useTheme.ts +0 -16
- package/src/ui/_compat/types.ts +0 -274
- package/src/ui/components/autocomplete/__workshop__/async.tsx +0 -157
- package/src/ui/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -131
- package/src/ui/components/autocomplete/__workshop__/custom.tsx +0 -90
- package/src/ui/components/autocomplete/__workshop__/example.tsx +0 -80
- package/src/ui/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
- package/src/ui/components/autocomplete/__workshop__/fullscreen.tsx +0 -293
- package/src/ui/components/autocomplete/__workshop__/index.ts +0 -39
- package/src/ui/components/autocomplete/autocomplete.tsx +0 -731
- package/src/ui/components/autocomplete/autocompleteOption.tsx +0 -45
- package/src/ui/components/autocomplete/autocompleteReducer.ts +0 -47
- package/src/ui/components/autocomplete/constants.ts +0 -28
- package/src/ui/components/autocomplete/index.ts +0 -2
- package/src/ui/components/autocomplete/types.ts +0 -108
- package/src/ui/components/breadcrumbs/__workshop__/example.tsx +0 -62
- package/src/ui/components/breadcrumbs/breadcrumbs.tsx +0 -127
- package/src/ui/components/breadcrumbs/index.ts +0 -1
- package/src/ui/components/dialog/__workshop__/activate.tsx +0 -134
- package/src/ui/components/dialog/__workshop__/autoFocus.tsx +0 -29
- package/src/ui/components/dialog/__workshop__/onScroll.tsx +0 -39
- package/src/ui/components/dialog/__workshop__/panes.tsx +0 -82
- package/src/ui/components/dialog/__workshop__/position.tsx +0 -30
- package/src/ui/components/dialog/__workshop__/props.tsx +0 -77
- package/src/ui/components/dialog/__workshop__/wrapped.tsx +0 -76
- package/src/ui/components/dialog/dialog.tsx +0 -433
- package/src/ui/components/dialog/dialogContext.ts +0 -20
- package/src/ui/components/dialog/dialogProvider.tsx +0 -35
- package/src/ui/components/dialog/index.ts +0 -4
- package/src/ui/components/dialog/useDialog.ts +0 -11
- package/src/ui/components/hotkeys/hotkeys.tsx +0 -54
- package/src/ui/components/hotkeys/index.ts +0 -1
- package/src/ui/components/index.ts +0 -9
- package/src/ui/components/menu/__workshop__/asComponent.tsx +0 -45
- package/src/ui/components/menu/__workshop__/avatarMenu.tsx +0 -51
- package/src/ui/components/menu/__workshop__/closableMenuButton.tsx +0 -46
- package/src/ui/components/menu/__workshop__/constrainedInBoundary.tsx +0 -134
- package/src/ui/components/menu/__workshop__/customMenuItem.tsx +0 -45
- package/src/ui/components/menu/__workshop__/customSelectedState.tsx +0 -39
- package/src/ui/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
- package/src/ui/components/menu/__workshop__/groups.tsx +0 -156
- package/src/ui/components/menu/__workshop__/menuButton.tsx +0 -80
- package/src/ui/components/menu/__workshop__/menuGroupRight.tsx +0 -65
- package/src/ui/components/menu/__workshop__/nestedMenu.tsx +0 -22
- package/src/ui/components/menu/__workshop__/onCloseMenuButton.tsx +0 -41
- package/src/ui/components/menu/__workshop__/selectedItem.tsx +0 -69
- package/src/ui/components/menu/__workshop__/shouldFocus.tsx +0 -47
- package/src/ui/components/menu/__workshop__/tones.tsx +0 -25
- package/src/ui/components/menu/__workshop__/withoutArrow.tsx +0 -32
- package/src/ui/components/menu/helpers.ts +0 -82
- package/src/ui/components/menu/index.ts +0 -5
- package/src/ui/components/menu/menu.test.tsx +0 -128
- package/src/ui/components/menu/menu.tsx +0 -200
- package/src/ui/components/menu/menuButton.tsx +0 -275
- package/src/ui/components/menu/menuContext.ts +0 -31
- package/src/ui/components/menu/menuDivider.tsx +0 -22
- package/src/ui/components/menu/menuGroup.tsx +0 -228
- package/src/ui/components/menu/menuItem.tsx +0 -180
- package/src/ui/components/menu/useMenu.ts +0 -21
- package/src/ui/components/menu/useMenuController.ts +0 -241
- package/src/ui/components/skeleton/__workshop__/delay.tsx +0 -70
- package/src/ui/components/skeleton/__workshop__/index.ts +0 -11
- package/src/ui/components/skeleton/__workshop__/skeleton.tsx +0 -64
- package/src/ui/components/skeleton/index.ts +0 -2
- package/src/ui/components/skeleton/skeleton.tsx +0 -53
- package/src/ui/components/skeleton/textSkeleton.tsx +0 -132
- package/src/ui/components/tab/__workshop__/example.tsx +0 -79
- package/src/ui/components/tab/index.ts +0 -3
- package/src/ui/components/tab/tab.tsx +0 -105
- package/src/ui/components/tab/tabList.tsx +0 -74
- package/src/ui/components/tab/tabPanel.tsx +0 -40
- package/src/ui/components/toast/__workshop__/hook.tsx +0 -71
- package/src/ui/components/toast/__workshop__/toast.tsx +0 -26
- package/src/ui/components/toast/index.ts +0 -4
- package/src/ui/components/toast/toast.test.tsx +0 -101
- package/src/ui/components/toast/toast.tsx +0 -211
- package/src/ui/components/toast/toastContext.ts +0 -7
- package/src/ui/components/toast/toastLayer.tsx +0 -38
- package/src/ui/components/toast/toastProvider.tsx +0 -113
- package/src/ui/components/toast/types.ts +0 -28
- package/src/ui/components/toast/useToast.ts +0 -25
- package/src/ui/components/tree/__workshop__/basic.perf.ts +0 -19
- package/src/ui/components/tree/__workshop__/basic.tsx +0 -105
- package/src/ui/components/tree/__workshop__/tabFromElement.tsx +0 -84
- package/src/ui/components/tree/helpers.ts +0 -105
- package/src/ui/components/tree/index.ts +0 -4
- package/src/ui/components/tree/tree.tsx +0 -244
- package/src/ui/components/tree/treeContext.ts +0 -10
- package/src/ui/components/tree/treeGroup.tsx +0 -30
- package/src/ui/components/tree/treeItem.tsx +0 -220
- package/src/ui/components/tree/types.ts +0 -25
- package/src/ui/components/tree/useTree.ts +0 -17
- package/src/ui/constants.ts +0 -79
- package/src/ui/helpers/focus.ts +0 -100
- package/src/ui/helpers/index.ts +0 -5
- package/src/ui/helpers/props.ts +0 -10
- package/src/ui/hooks/index.ts +0 -12
- package/src/ui/hooks/useArrayProp.ts +0 -29
- package/src/ui/hooks/useClickOutside.test.tsx +0 -482
- package/src/ui/hooks/useClickOutside.ts +0 -117
- package/src/ui/hooks/useClickOutsideEvent.test.tsx +0 -115
- package/src/ui/hooks/useClickOutsideEvent.ts +0 -73
- package/src/ui/hooks/useDelayed.test.ts +0 -68
- package/src/ui/hooks/useDelayedState.ts +0 -28
- package/src/ui/hooks/useElementRect/__workshop__/example.tsx +0 -32
- package/src/ui/hooks/useElementRect/index.ts +0 -1
- package/src/ui/hooks/useElementSize.ts +0 -19
- package/src/ui/hooks/useForwardedRef.ts +0 -19
- package/src/ui/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
- package/src/ui/hooks/useMediaIndex/index.ts +0 -1
- package/src/ui/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -36
- package/src/ui/hooks/useMediaIndex/useMediaIndex.ts +0 -104
- package/src/ui/hooks/usePrefersDark.hydration.test.tsx +0 -56
- package/src/ui/hooks/usePrefersDark.test.tsx +0 -19
- package/src/ui/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
- package/src/ui/hooks/usePrefersReducedMotion.test.tsx +0 -19
- package/src/ui/index.ts +0 -9
- package/src/ui/middleware/origin.ts +0 -47
- package/src/ui/observers/elementSizeObserver.ts +0 -116
- package/src/ui/observers/index.ts +0 -2
- package/src/ui/primitives/_selectable/index.ts +0 -1
- package/src/ui/primitives/_selectable/selectable.tsx +0 -31
- package/src/ui/primitives/avatar/__workshop__/asButton.tsx +0 -14
- package/src/ui/primitives/avatar/__workshop__/stack.tsx +0 -25
- package/src/ui/primitives/avatar/__workshop__/withinButton.tsx +0 -63
- package/src/ui/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -72
- package/src/ui/primitives/avatar/avatar.tsx +0 -158
- package/src/ui/primitives/avatar/avatarCounter.tsx +0 -62
- package/src/ui/primitives/avatar/avatarStack.tsx +0 -82
- package/src/ui/primitives/avatar/index.ts +0 -4
- package/src/ui/primitives/avatar/types.ts +0 -17
- package/src/ui/primitives/badge/__workshop__/props.tsx +0 -30
- package/src/ui/primitives/badge/__workshop__/tones.tsx +0 -21
- package/src/ui/primitives/badge/badge.test.tsx +0 -16
- package/src/ui/primitives/badge/badge.tsx +0 -64
- package/src/ui/primitives/badge/index.ts +0 -1
- package/src/ui/primitives/badge/types.ts +0 -8
- package/src/ui/primitives/box/__workshop__/props.tsx +0 -20
- package/src/ui/primitives/box/__workshop__/responsive.tsx +0 -20
- package/src/ui/primitives/box/box.tsx +0 -155
- package/src/ui/primitives/box/index.ts +0 -1
- package/src/ui/primitives/button/__workshop__/custom.tsx +0 -50
- package/src/ui/primitives/button/__workshop__/customIcons.tsx +0 -30
- package/src/ui/primitives/button/__workshop__/disabled.tsx +0 -74
- package/src/ui/primitives/button/__workshop__/index.ts +0 -59
- package/src/ui/primitives/button/__workshop__/props.tsx +0 -58
- package/src/ui/primitives/button/__workshop__/sanityUploadButton.tsx +0 -36
- package/src/ui/primitives/button/__workshop__/stacked.tsx +0 -59
- package/src/ui/primitives/button/__workshop__/uploadButton.tsx +0 -28
- package/src/ui/primitives/button/button.test.tsx +0 -44
- package/src/ui/primitives/button/button.tsx +0 -206
- package/src/ui/primitives/button/index.ts +0 -1
- package/src/ui/primitives/card/__workshop__/allTones.tsx +0 -27
- package/src/ui/primitives/card/__workshop__/asButton.tsx +0 -107
- package/src/ui/primitives/card/__workshop__/asComponent.tsx +0 -27
- package/src/ui/primitives/card/__workshop__/checkered.tsx +0 -26
- package/src/ui/primitives/card/__workshop__/index.ts +0 -18
- package/src/ui/primitives/card/__workshop__/interactive.tsx +0 -30
- package/src/ui/primitives/card/__workshop__/listNavigation.tsx +0 -80
- package/src/ui/primitives/card/__workshop__/props.tsx +0 -55
- package/src/ui/primitives/card/__workshop__/selected.tsx +0 -93
- package/src/ui/primitives/card/card.tsx +0 -119
- package/src/ui/primitives/card/cardContext.ts +0 -10
- package/src/ui/primitives/card/cardProvider.tsx +0 -19
- package/src/ui/primitives/card/index.ts +0 -4
- package/src/ui/primitives/card/types.ts +0 -27
- package/src/ui/primitives/card/useCard.ts +0 -7
- package/src/ui/primitives/checkbox/__workshop__/props.tsx +0 -33
- package/src/ui/primitives/checkbox/__workshop__/tones.tsx +0 -28
- package/src/ui/primitives/checkbox/checkbox.tsx +0 -74
- package/src/ui/primitives/checkbox/index.ts +0 -1
- package/src/ui/primitives/code/__workshop__/opticalAlignment.tsx +0 -48
- package/src/ui/primitives/code/__workshop__/props.tsx +0 -21
- package/src/ui/primitives/code/code.tsx +0 -49
- package/src/ui/primitives/code/index.ts +0 -1
- package/src/ui/primitives/code/refractor.tsx +0 -20
- package/src/ui/primitives/container/__workshop__/example.tsx +0 -20
- package/src/ui/primitives/container/container.tsx +0 -35
- package/src/ui/primitives/container/index.ts +0 -2
- package/src/ui/primitives/flex/__workshop__/example.tsx +0 -34
- package/src/ui/primitives/flex/flex.tsx +0 -29
- package/src/ui/primitives/flex/index.ts +0 -1
- package/src/ui/primitives/grid/grid.tsx +0 -30
- package/src/ui/primitives/grid/index.ts +0 -1
- package/src/ui/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
- package/src/ui/primitives/heading/__workshop__/plain.tsx +0 -32
- package/src/ui/primitives/heading/heading.tsx +0 -62
- package/src/ui/primitives/heading/index.ts +0 -1
- package/src/ui/primitives/index.ts +0 -27
- package/src/ui/primitives/inline/__workshop__/plain.tsx +0 -27
- package/src/ui/primitives/inline/index.ts +0 -1
- package/src/ui/primitives/inline/inline.tsx +0 -50
- package/src/ui/primitives/inline/types.ts +0 -6
- package/src/ui/primitives/kbd/index.ts +0 -1
- package/src/ui/primitives/kbd/kbd.tsx +0 -55
- package/src/ui/primitives/label/__workshop__/plain.tsx +0 -37
- package/src/ui/primitives/label/index.ts +0 -1
- package/src/ui/primitives/label/label.tsx +0 -67
- package/src/ui/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
- package/src/ui/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
- package/src/ui/primitives/popover/__workshop__/PlainStory.tsx +0 -71
- package/src/ui/primitives/popover/__workshop__/RecursiveStory.tsx +0 -70
- package/src/ui/primitives/popover/__workshop__/SidePanelStory.tsx +0 -93
- package/src/ui/primitives/popover/__workshop__/TestStory.tsx +0 -98
- package/src/ui/primitives/popover/constants.ts +0 -22
- package/src/ui/primitives/popover/floating-ui/size.ts +0 -83
- package/src/ui/primitives/popover/helpers.ts +0 -32
- package/src/ui/primitives/popover/index.ts +0 -2
- package/src/ui/primitives/popover/popover.tsx +0 -492
- package/src/ui/primitives/popover/popoverCard.tsx +0 -155
- package/src/ui/primitives/popover/types.ts +0 -6
- package/src/ui/primitives/radio/__workshop__/example.tsx +0 -63
- package/src/ui/primitives/radio/__workshop__/plain.tsx +0 -28
- package/src/ui/primitives/radio/index.ts +0 -1
- package/src/ui/primitives/radio/radio.tsx +0 -49
- package/src/ui/primitives/select/__workshop__/plain.tsx +0 -30
- package/src/ui/primitives/select/__workshop__/readOnly.tsx +0 -23
- package/src/ui/primitives/select/index.ts +0 -1
- package/src/ui/primitives/select/select.tsx +0 -85
- package/src/ui/primitives/spinner/__workshop__/Props.tsx +0 -16
- package/src/ui/primitives/spinner/animatedSpinnerIcon.tsx +0 -16
- package/src/ui/primitives/spinner/index.ts +0 -1
- package/src/ui/primitives/spinner/spinner.tsx +0 -33
- package/src/ui/primitives/stack/__workshop__/plain.tsx +0 -32
- package/src/ui/primitives/stack/index.ts +0 -1
- package/src/ui/primitives/stack/stack.tsx +0 -40
- package/src/ui/primitives/switch/index.ts +0 -1
- package/src/ui/primitives/switch/switch.tsx +0 -75
- package/src/ui/primitives/text/__workshop__/colored.tsx +0 -23
- package/src/ui/primitives/text/__workshop__/example.tsx +0 -39
- package/src/ui/primitives/text/__workshop__/opticalAlignment.tsx +0 -48
- package/src/ui/primitives/text/index.ts +0 -1
- package/src/ui/primitives/text/text.tsx +0 -64
- package/src/ui/primitives/textArea/__workshop__/plain.tsx +0 -50
- package/src/ui/primitives/textArea/index.ts +0 -1
- package/src/ui/primitives/textArea/textArea.tsx +0 -71
- package/src/ui/primitives/textInput/__workshop__/customValidity.tsx +0 -17
- package/src/ui/primitives/textInput/__workshop__/plain.tsx +0 -104
- package/src/ui/primitives/textInput/__workshop__/states.tsx +0 -53
- package/src/ui/primitives/textInput/__workshop__/tones.tsx +0 -277
- package/src/ui/primitives/textInput/__workshop__/typed.tsx +0 -23
- package/src/ui/primitives/textInput/index.ts +0 -1
- package/src/ui/primitives/textInput/textInput.tsx +0 -286
- package/src/ui/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
- package/src/ui/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
- package/src/ui/primitives/tooltip/__workshop__/props.tsx +0 -111
- package/src/ui/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
- package/src/ui/primitives/tooltip/constants.ts +0 -23
- package/src/ui/primitives/tooltip/index.ts +0 -2
- package/src/ui/primitives/tooltip/tooltip.test.tsx +0 -453
- package/src/ui/primitives/tooltip/tooltip.tsx +0 -467
- package/src/ui/primitives/tooltip/tooltipCard.tsx +0 -115
- package/src/ui/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -11
- package/src/ui/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -55
- package/src/ui/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
- package/src/ui/primitives/types.ts +0 -166
- package/src/ui/types/avatar.ts +0 -19
- package/src/ui/types/badge.ts +0 -12
- package/src/ui/types/button.ts +0 -24
- package/src/ui/types/card.ts +0 -6
- package/src/ui/types/dialog.ts +0 -4
- package/src/ui/types/flex.ts +0 -27
- package/src/ui/types/index.ts +0 -15
- package/src/ui/types/popover.ts +0 -4
- package/src/ui/types/props.ts +0 -18
- package/src/ui/types/radius.ts +0 -7
- package/src/ui/types/selectable.ts +0 -7
- package/src/ui/utils/arrow/arrow.tsx +0 -59
- package/src/ui/utils/arrow/index.ts +0 -1
- package/src/ui/utils/boundaryElement/boundaryElement.test.tsx +0 -100
- package/src/ui/utils/boundaryElement/boundaryElementContext.ts +0 -7
- package/src/ui/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
- package/src/ui/utils/boundaryElement/index.ts +0 -3
- package/src/ui/utils/boundaryElement/types.ts +0 -7
- package/src/ui/utils/boundaryElement/useBoundaryElement.ts +0 -26
- package/src/ui/utils/conditionalWrapper/conditionalWrapper.tsx +0 -23
- package/src/ui/utils/conditionalWrapper/index.ts +0 -1
- package/src/ui/utils/elementQuery/__workshop__/customMedia.tsx +0 -30
- package/src/ui/utils/elementQuery/elementQuery.tsx +0 -53
- package/src/ui/utils/elementQuery/index.ts +0 -1
- package/src/ui/utils/errorBoundary.tsx +0 -48
- package/src/ui/utils/getElementRef.ts +0 -26
- package/src/ui/utils/index.ts +0 -9
- package/src/ui/utils/layer/__workshop__/index.ts +0 -24
- package/src/ui/utils/layer/__workshop__/multipleRoots.tsx +0 -49
- package/src/ui/utils/layer/__workshop__/nested.tsx +0 -98
- package/src/ui/utils/layer/__workshop__/responsiveZOffset.tsx +0 -13
- package/src/ui/utils/layer/getLayerContext.test.ts +0 -30
- package/src/ui/utils/layer/getLayerContext.ts +0 -21
- package/src/ui/utils/layer/index.ts +0 -4
- package/src/ui/utils/layer/layer.test.tsx +0 -108
- package/src/ui/utils/layer/layer.tsx +0 -112
- package/src/ui/utils/layer/layerContext.ts +0 -7
- package/src/ui/utils/layer/layerProvider.tsx +0 -110
- package/src/ui/utils/layer/useLayer.ts +0 -26
- package/src/ui/utils/portal/__workshop__/named.tsx +0 -63
- package/src/ui/utils/portal/index.ts +0 -4
- package/src/ui/utils/portal/portal.test.tsx +0 -103
- package/src/ui/utils/portal/portal.ts +0 -46
- package/src/ui/utils/portal/portalContext.ts +0 -31
- package/src/ui/utils/portal/portalProvider.tsx +0 -79
- package/src/ui/utils/portal/types.ts +0 -9
- package/src/ui/utils/portal/usePortal.ts +0 -25
- package/src/ui/utils/srOnly/index.ts +0 -1
- package/src/ui/utils/srOnly/srOnly.tsx +0 -35
- package/src/ui/utils/virtualList/__workshop__/index.ts +0 -29
- package/src/ui/utils/virtualList/__workshop__/infiniteList.tsx +0 -48
- package/src/ui/utils/virtualList/index.ts +0 -1
- package/src/ui/utils/virtualList/virtualList.tsx +0 -189
- /package/src/{ui/global.ts → core/__DEV__.ts} +0 -0
- /package/src/{ui/components/autocomplete/__mocks__ → core/components/autocomplete/__workshop__/mock}/apiStore.ts +0 -0
- /package/src/{ui/components/autocomplete/__mocks__ → core/components/autocomplete/__workshop__/mock}/countries.ts +0 -0
- /package/src/{ui → core}/components/autocomplete/__workshop__/types.ts +0 -0
- /package/src/{ui → core}/components/breadcrumbs/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/components/dialog/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/components/dialog/__workshop__/layering.tsx +0 -0
- /package/src/{ui → core}/components/dialog/__workshop__/nested.tsx +0 -0
- /package/src/{ui → core}/components/dialog/__workshop__/provider.tsx +0 -0
- /package/src/{ui → core}/components/hotkeys/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/components/hotkeys/__workshop__/plain.tsx +0 -0
- /package/src/{ui → core}/components/menu/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/components/tab/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/components/toast/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/components/toast/toastState.ts +0 -0
- /package/src/{ui → core}/components/tree/__workshop__/index.ts +0 -0
- /package/src/{ui/utils → core/components}/virtualList/__workshop__/changingProps.tsx +0 -0
- /package/src/{ui/utils → core/components}/virtualList/__workshop__/elementScroll.tsx +0 -0
- /package/src/{ui/utils → core/components}/virtualList/__workshop__/windowScrolll.tsx +0 -0
- /package/src/{ui → core}/helpers/animation.ts +0 -0
- /package/src/{ui → core}/helpers/element.ts +0 -0
- /package/src/{ui → core}/helpers/scroll.ts +0 -0
- /package/src/{ui → core}/hooks/useCustomValidity.ts +0 -0
- /package/src/{ui → core}/hooks/useElementRect/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/hooks/useElementRect/useElementRect.ts +0 -0
- /package/src/{ui → core}/hooks/useGlobalKeyDown.ts +0 -0
- /package/src/{ui → core}/hooks/useIsomorphicEffect.ts +0 -0
- /package/src/{ui → core}/hooks/useMatchMedia.ts +0 -0
- /package/src/{ui → core}/hooks/useMediaIndex/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/hooks/useMounted.ts +0 -0
- /package/src/{ui → core}/hooks/usePrefersDark.ts +0 -0
- /package/src/{ui → core}/hooks/usePrefersReducedMotion.ts +0 -0
- /package/src/{ui → core}/lib/createGlobalScopedContext.ts +0 -0
- /package/src/{ui → core}/lib/globalScope.ts +0 -0
- /package/src/{theme/build → core}/lib/isRecord.ts +0 -0
- /package/src/{ui/observers/resizeObserver.ts → core/observers/resize.ts} +0 -0
- /package/src/{ui/utils → core/primitives}/arrow/cmds.ts +0 -0
- /package/src/{ui → core}/primitives/avatar/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/badge/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/box/__workshop__/index.ts +0 -0
- /package/src/{ui/types/box.ts → core/primitives/box/types.ts} +0 -0
- /package/src/{ui → core}/primitives/button/__workshop__/mixedChildren.tsx +0 -0
- /package/src/{ui → core}/primitives/button/__workshop__/styled1.tsx +0 -0
- /package/src/{ui → core}/primitives/button/__workshop__/styled2.tsx +0 -0
- /package/src/{ui → core}/primitives/card/__workshop__/styled.tsx +0 -0
- /package/src/{ui → core}/primitives/checkbox/__workshop__/example.tsx +0 -0
- /package/src/{ui → core}/primitives/checkbox/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/checkbox/__workshop__/readOnly.tsx +0 -0
- /package/src/{ui → core}/primitives/code/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/container/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/container/types.ts +0 -0
- /package/src/{ui → core}/primitives/flex/__workshop__/gap.tsx +0 -0
- /package/src/{ui → core}/primitives/flex/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/grid/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/grid/__workshop__/responsive.tsx +0 -0
- /package/src/{ui/types/grid.ts → core/primitives/grid/types.ts} +0 -0
- /package/src/{ui → core}/primitives/heading/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/inline/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/kbd/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/kbd/__workshop__/plain.tsx +0 -0
- /package/src/{ui → core}/primitives/label/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/label/__workshop__/opticalAlignment.tsx +0 -0
- /package/src/{ui/utils → core/primitives}/layer/__workshop__/_debug.tsx +0 -0
- /package/src/{ui/utils → core/primitives}/layer/types.ts +0 -0
- /package/src/{ui → core}/primitives/popover/__workshop__/MarginsStory.tsx +0 -0
- /package/src/{ui → core}/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -0
- /package/src/{ui → core}/primitives/popover/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/radio/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/select/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/spinner/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/stack/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/switch/__workshop__/example.tsx +0 -0
- /package/src/{ui → core}/primitives/switch/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/switch/__workshop__/props.tsx +0 -0
- /package/src/{ui → core}/primitives/text/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/textArea/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/textInput/__workshop__/clearButton.tsx +0 -0
- /package/src/{ui → core}/primitives/textInput/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/textInput/__workshop__/readOnly.tsx +0 -0
- /package/src/{ui → core}/primitives/tooltip/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/index.ts +0 -0
- /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/types.ts +0 -0
- /package/src/{ui → core}/types/gridItem.ts +0 -0
- /package/src/{ui → core}/types/placement.ts +0 -0
- /package/src/{ui/types/text.ts → core/types/textAlign.ts} +0 -0
- /package/src/{ui → core}/utils/boundaryElement/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/utils/boundaryElement/__workshop__/plain.tsx +0 -0
- /package/src/{ui → core}/utils/elementQuery/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/utils/elementQuery/helpers.ts +0 -0
- /package/src/{ui → core}/utils/portal/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/utils/spanWithTextOverflow.tsx +0 -0
- /package/src/css/{aspects → props}/pointerEvents/types.ts +0 -0
- /package/src/theme/{build → v2/build}/_deprecated/color/index.ts +0 -0
- /package/src/theme/{build → v2/build}/colorToken/index.ts +0 -0
- /package/src/theme/{build → v2/build}/index.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/blend/index.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/index.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/rgba.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/types.ts +0 -0
- /package/src/{ui → theme/v2/build}/lib/isRecord.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/utils.ts +0 -0
- /package/src/theme/{build → v2/build}/merge.ts +0 -0
- /package/src/theme/{config → v2/config}/index.ts +0 -0
- /package/src/theme/{config → v2/config}/tokens/color/index.ts +0 -0
- /package/src/theme/{palette → v3/palette}/index.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_visual-editing.cjs","sources":["../../src/core/lib/globalScope.ts","../../src/core/lib/createGlobalScopedContext.ts","../../src/core/primitives/card/cardContext.ts","../../src/core/primitives/card/cardProvider.tsx","../../src/core/_compat/theme/themeContext.ts","../../src/core/_compat/theme/themeProvider.tsx","../../src/core/_compat/theme/useRootTheme.ts","../../src/core/_compat/theme/themeColorProvider.tsx","../../src/core/_compat/theme/useTheme.ts","../../src/core/constants.ts","../../src/core/helpers/element.ts","../../src/core/lib/isArray.ts","../../src/core/lib/isRecord.ts","../../src/core/helpers/props.ts","../../src/core/hooks/useResponsiveProp.ts","../../src/core/primitives/box/box.tsx","../../src/core/primitives/text/text.tsx","../../src/core/primitives/spinner/animatedSpinnerIcon.tsx","../../src/core/primitives/spinner/spinner.tsx","../../src/core/primitives/button/button.tsx","../../src/core/hooks/useMatchMedia.ts","../../src/core/hooks/usePrefersReducedMotion.ts","../../src/core/middleware/origin.ts","../../src/core/utils/boundaryElement/boundaryElementContext.ts","../../src/core/utils/boundaryElement/useBoundaryElement.ts","../../src/core/primitives/card/useCard.ts","../../src/core/utils/portal/portalContext.ts","../../src/core/utils/portal/usePortal.ts","../../src/core/utils/portal/portal.tsx","../../src/core/primitives/layer/getLayerContext.ts","../../src/core/primitives/layer/layerContext.ts","../../src/core/primitives/layer/useLayer.ts","../../src/core/primitives/popover/constants.ts","../../src/core/primitives/popover/floating-ui/size.ts","../../src/core/primitives/arrow/cmds.ts","../../src/core/primitives/arrow/arrow.tsx","../../src/core/primitives/flex/flex.tsx","../../src/core/primitives/card/card.tsx","../../src/core/primitives/layer/layerCard.tsx","../../src/core/hooks/useMediaIndex/useMediaIndex.ts","../../src/core/primitives/layer/layerProvider.tsx","../../src/core/primitives/layer/layer.tsx","../../src/core/primitives/popover/popoverLayer.tsx","../../src/core/primitives/popover/popover.tsx","../../src/core/primitives/selectable/selectable.tsx","../../src/core/primitives/stack/stack.tsx","../../src/core/hooks/useCustomValidity.ts","../../src/core/primitives/textInput/textInput.tsx","../../src/core/hooks/useClickOutsideEvent.ts","../../src/core/hooks/useGlobalKeyDown.ts","../../src/core/primitives/kbd/kbd.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/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","../../src/core/primitives/grid/grid.tsx","../../src/core/hooks/usePrefersDark.ts","../../src/core/utils/portal/portalProvider.tsx","../../src/core/hooks/useDelayedState.ts","../../src/core/utils/getElementRef.ts","../../src/core/primitives/tooltip/constants.ts","../../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../../src/core/primitives/tooltip/tooltipLayer.tsx","../../src/core/primitives/tooltip/tooltip.tsx"],"sourcesContent":["/**\n * Gets the global scope instance in a given environment.\n *\n * The strategy is to return the most modern, and if not, the most common:\n * - The `globalThis` variable is the modern approach to accessing the global scope\n * - The `window` variable is the global scope in a web browser\n * - The `self` variable is the global scope in workers and others\n * - The `global` variable is the global scope in Node.js\n */\nfunction getGlobalScope() {\n if (typeof globalThis !== 'undefined') return globalThis\n if (typeof window !== 'undefined') return window\n if (typeof self !== 'undefined') return self\n if (typeof global !== 'undefined') return global\n\n throw new Error('@sanity/ui: could not locate global scope')\n}\n\nexport const globalScope = getGlobalScope() as any\n","/**\n * As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions\n * it's critical that vital react contexts are shared even when there is a duplicate.\n * If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as\n * those libraries enforce single instances.\n * Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then\n * read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.\n * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.\n */\n\nimport {type Context, createContext} from 'react'\n\nimport {globalScope} from './globalScope'\n\nexport function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(\n /**\n * Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix\n */\n key: `@sanity/ui/context/${string}`,\n defaultValue: T,\n): Context<ContextType> {\n const symbol = Symbol.for(key)\n\n /**\n * Prevent errors about re-renders on React SSR on Next.js App Router\n */\n if (typeof document === 'undefined') {\n return createContext<ContextType>(defaultValue)\n }\n\n globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)\n\n return globalScope[symbol]\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {CardContextValue} from './types'\n\n/**\n * @internal\n */\nexport const CardContext: Context<CardContextValue | null> =\n createGlobalScopedContext<CardContextValue | null>('@sanity/ui/context/card', null)\n","import type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {type ReactNode, useMemo} from 'react'\n\nimport {CardContext} from './cardContext'\nimport type {_CardCompatProviderComponent} from './types'\n\n/** @public */\nexport function CardProvider(props: {\n children?: ReactNode\n tone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n /** @internal */\n unstable_CompatProvider?: _CardCompatProviderComponent\n}) {\n const {children, tone, scheme, unstable_CompatProvider} = props\n\n return (\n <CardContext.Provider\n value={useMemo(\n () => ({tone, scheme, unstable_CompatProvider}),\n [tone, scheme, unstable_CompatProvider],\n )}\n >\n {children}\n </CardContext.Provider>\n )\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {ThemeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const ThemeContext: Context<ThemeContextValue | null> =\n createGlobalScopedContext<ThemeContextValue | null>('@sanity/ui/context/theme', null)\n","import {\n getScopedTheme,\n type RootTheme,\n type Theme,\n type ThemeColorCardToneKey,\n type ThemeColorSchemeKey,\n} from '@sanity/ui/theme'\nimport {type ReactElement, type ReactNode, useContext, useMemo} from 'react'\nimport {ThemeProvider as StyledThemeProvider} from 'styled-components'\n\nimport {CardProvider} from '../../primitives/card/cardProvider'\nimport {ThemeColorProvider} from './themeColorProvider'\nimport {ThemeContext} from './themeContext'\nimport type {ThemeContextValue} from './types'\n\n/** @public */\nexport interface ThemeProviderProps {\n children?: ReactNode\n scheme?: ThemeColorSchemeKey\n theme?: RootTheme\n tone?: ThemeColorCardToneKey\n}\n\n/** @public */\nexport function ThemeProvider(props: ThemeProviderProps): ReactElement {\n const parentTheme = useContext(ThemeContext)\n const {children} = props\n const scheme = props.scheme ?? (parentTheme?.scheme || 'light')\n const rootTheme = props.theme ?? (parentTheme?.theme || null)\n const tone = props.tone ?? (parentTheme?.tone || 'default')\n\n const themeContext: ThemeContextValue | null = useMemo(() => {\n if (!rootTheme) return null\n\n return {\n version: 0.0,\n theme: rootTheme,\n scheme,\n tone,\n }\n }, [rootTheme, scheme, tone])\n\n const theme: Theme | null = useMemo(() => {\n if (!rootTheme) return null\n\n return getScopedTheme(rootTheme, scheme, tone)\n }, [scheme, rootTheme, tone])\n\n if (!theme) {\n return <pre>ThemeProvider: no \"theme\" property provided</pre>\n }\n\n return (\n <CardProvider\n scheme={scheme}\n tone={tone}\n unstable_CompatProvider={\n // Render a theme provider around the card if the scheme or tone differs from the root theme.\n // This is needed for backwards compatibility with the legacy theme API.\n ThemeColorProvider\n }\n >\n <ThemeContext.Provider value={themeContext}>\n <StyledThemeProvider theme={theme}>{children}</StyledThemeProvider>\n </ThemeContext.Provider>\n </CardProvider>\n )\n}\n","import {useContext} from 'react'\n\nimport {ThemeContext} from './themeContext'\nimport type {ThemeContextValue} from './types'\n\n/** @public */\nexport function useRootTheme(): ThemeContextValue {\n const value = useContext(ThemeContext)\n\n if (!value) {\n throw new Error('useRootTheme(): missing context value')\n }\n\n return value as unknown as ThemeContextValue\n}\n","import type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport type {ReactElement, ReactNode} from 'react'\n\nimport {ThemeProvider} from './themeProvider'\nimport {useRootTheme} from './useRootTheme'\n\n/** @public */\nexport interface ThemeColorProviderProps {\n children?: ReactNode\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/** @public */\nexport function ThemeColorProvider(props: ThemeColorProviderProps): ReactElement {\n const {children, scheme, tone} = props\n const root = useRootTheme()\n\n return (\n <ThemeProvider scheme={scheme || root.scheme} theme={root.theme} tone={tone}>\n {children}\n </ThemeProvider>\n )\n}\n","import {getTheme_v2, type Theme, type Theme_v2} from '@sanity/ui/theme'\nimport {useTheme as useStyledTheme} from 'styled-components'\n\n/** @public */\nexport function useTheme(): Theme {\n return useStyledTheme() as Theme\n}\n\n/** @public */\nexport function useTheme_v2(): Theme_v2 {\n return getTheme_v2(useStyledTheme() as Theme)\n}\n","import type {Transition, Variant} from 'framer-motion'\n\n/**\n * @internal\n */\nexport const EMPTY_ARRAY: never[] = []\n\n/**\n * @internal\n */\nexport const EMPTY_RECORD: Record<string, never> = {}\n\nconst POPOVER_MOTION_DURATION = 0.2\n\n/**\n * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.\n * @internal\n */\nexport const POPOVER_MOTION_PROPS: {\n card: {\n initial: Variant\n hidden: Variant\n visible: Variant\n scaleIn: Variant\n scaleOut: Variant\n }\n children: {\n hidden: Variant\n visible: Variant\n }\n transition: Transition\n} = {\n card: {\n initial: {\n scale: 0.97,\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n duration: POPOVER_MOTION_DURATION / 2,\n },\n },\n scaleIn: {\n scale: 1,\n },\n scaleOut: {\n scale: 0.97,\n },\n },\n children: {\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n },\n transition: {\n type: 'spring',\n visualDuration: POPOVER_MOTION_DURATION,\n bounce: 0.25,\n },\n}\n\n/**\n * @internal\n * @deprecated No longer used.\n */\nexport const FLOATING_STATIC_SIDES: Record<string, 'bottom' | 'left' | 'top' | 'right'> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n\nexport const Z_OFFSETS = {\n dialog: 600,\n popover: 400,\n tooltip: 200,\n}\n","/**\n * @internal\n */\nexport function _isEnterToClickElement(element: HTMLElement): boolean {\n return isHTMLAnchorElement(element) || isHTMLButtonElement(element)\n}\n\n/**\n * @internal\n */\nexport function isHTMLElement(node: unknown): node is HTMLElement {\n return node instanceof Node && node.nodeType === Node.ELEMENT_NODE\n}\n\n/**\n * @internal\n */\nexport function isHTMLAnchorElement(element: unknown): element is HTMLAnchorElement {\n return isHTMLElement(element) && element.nodeName === 'A'\n}\n\n/**\n * @internal\n */\nexport function isHTMLInputElement(element: unknown): element is HTMLInputElement {\n return isHTMLElement(element) && element.nodeName === 'INPUT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLButtonElement(element: unknown): element is HTMLButtonElement {\n return isHTMLElement(element) && element.nodeName === 'BUTTON'\n}\n\n/**\n * @internal\n */\nexport function isHTMLSelectElement(element: unknown): element is HTMLSelectElement {\n return isHTMLElement(element) && element.nodeName === 'SELECT'\n}\n\n/**\n * @internal\n */\nexport function isHTMLTextAreaElement(element: unknown): element is HTMLTextAreaElement {\n return isHTMLElement(element) && element.nodeName === 'TEXTAREA'\n}\n\n/**\n * @internal\n */\nexport function containsOrEqualsElement(element: HTMLElement, node: Node): boolean {\n return element.contains(node) || element === node\n}\n","export function isArray(val: unknown): val is unknown[] {\n return Array.isArray(val)\n}\n","export function isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value && typeof value === 'object' && !Array.isArray(value))\n}\n","import type {Breakpoint, ResponsiveProp} from '@sanity/ui/css'\n\nimport {EMPTY_ARRAY} from '../constants'\nimport {isArray} from '../lib/isArray'\nimport {isRecord} from '../lib/isRecord'\n\n/**\n * @internal\n */\nexport function _getArrayProp<T>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n if (val === undefined) return defaultVal || EMPTY_ARRAY\n\n return Array.isArray(val) ? val : [val]\n}\n\n/**\n * @internal\n */\nexport function _getResponsiveProp<T>(\n val: ResponsiveProp<T> | undefined,\n defaultVal?: Partial<Record<Breakpoint, T>>,\n): Partial<Record<Breakpoint, T>> {\n if (val === undefined) {\n return (defaultVal || EMPTY_ARRAY) as Partial<Record<Breakpoint, T>>\n }\n\n return (isArray(val) || isRecord(val) ? val : [val]) as Partial<Record<Breakpoint, T>>\n}\n","import type {Breakpoint, ResponsiveProp} from '@sanity/ui/css'\nimport {useState} from 'react'\n\nimport {_getResponsiveProp} from '../helpers/props'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useResponsiveProp<T>(\n val: ResponsiveProp<T> | undefined,\n defaultVal?: Partial<Record<Breakpoint, T>>,\n): Partial<Record<Breakpoint, T>> {\n const [[cachedVal, cachedHash], setCache] = useState<[Partial<Record<Breakpoint, T>>, string]>(\n () => [_getResponsiveProp(val, defaultVal), JSON.stringify(val ?? defaultVal)],\n )\n\n const hash = JSON.stringify(val ?? defaultVal)\n\n if (hash !== cachedHash) {\n // If the cached hash has changed, update the cache right away.\n // Calling setState during render is fine in this case, and preferred over a useEffect loop\n // https://19.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n setCache([_getResponsiveProp(val, defaultVal), hash])\n }\n\n return cachedVal\n}\n","import type {\n BoxStyleProps,\n GapStyleProps,\n InsetStyleProps,\n PositionStyleProps,\n} from '@sanity/ui/css'\nimport {box} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @public */\nexport const DEFAULT_BOX_ELEMENT = 'div'\n\n/** @public */\nexport type BoxOwnProps = BoxStyleProps & GapStyleProps & InsetStyleProps & PositionStyleProps\n\n/** @public */\nexport type BoxElementType =\n | 'a'\n | 'article'\n | 'aside'\n | 'blockquote'\n | 'body'\n | 'button'\n | 'details'\n | 'div'\n | 'header'\n | 'fieldset'\n | 'figure'\n | 'figcaption'\n | 'footer'\n | 'form'\n | 'html'\n | 'iframe'\n | 'kbd'\n | 'label'\n | 'legend'\n | 'li'\n | 'main'\n | 'nav'\n | 'ol'\n | 'pre'\n | 'section'\n | 'span'\n | 'summary'\n | 'ul'\n | ComponentType\n\n/** @public */\nexport type BoxProps<E extends BoxElementType = BoxElementType> = Props<BoxOwnProps, E>\n\n/**\n * The `Box` component is a basic layout wrapper component which provides utility properties\n * for flex, margins and padding.\n *\n * @public\n */\nexport function Box<E extends BoxElementType = typeof DEFAULT_BOX_ELEMENT>(props: BoxProps<E>) {\n const {\n alignItems,\n as: Element = DEFAULT_BOX_ELEMENT,\n autoCols,\n autoFlow,\n autoRows,\n border = false,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n className,\n children,\n column,\n columnStart,\n columnEnd,\n columns,\n display = 'block',\n flex,\n flexDirection,\n flexWrap,\n gap,\n gapX,\n gapY,\n gridAutoColumns,\n gridAutoFlow,\n gridAutoRows,\n gridColumn,\n gridColumnEnd,\n gridColumnStart,\n gridRow,\n gridRowEnd,\n gridRowStart,\n gridTemplateColumns,\n gridTemplateRows,\n height,\n inset,\n insetBottom,\n insetLeft,\n insetRight,\n insetTop,\n justifyContent,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n minHeight = 0,\n minWidth = 0,\n muted,\n outline,\n overflow,\n overflowX,\n overflowY,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n radius,\n row,\n rows,\n rowStart,\n rowEnd,\n shadow,\n sizing = 'border',\n textAlign,\n width,\n ...rest\n } = props as BoxProps<typeof DEFAULT_BOX_ELEMENT>\n\n return (\n <Element\n data-ui=\"Box\"\n {...rest}\n className={box({\n className,\n alignItems,\n autoCols,\n autoFlow,\n autoRows,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n column,\n columnStart,\n columnEnd,\n columns,\n display,\n flex,\n flexDirection,\n flexWrap,\n gap,\n gapX,\n gapY,\n gridAutoColumns,\n gridAutoFlow,\n gridAutoRows,\n gridColumn,\n gridColumnEnd,\n gridColumnStart,\n gridRow,\n gridRowEnd,\n gridRowStart,\n gridTemplateColumns,\n gridTemplateRows,\n height,\n inset,\n insetBottom,\n insetLeft,\n insetRight,\n insetTop,\n justifyContent,\n margin,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n minHeight,\n minWidth,\n muted,\n outline,\n overflow,\n overflowX,\n overflowY,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n radius,\n row,\n rows,\n rowStart,\n rowEnd,\n shadow,\n sizing,\n textAlign,\n width,\n })}\n >\n {children}\n </Element>\n )\n}\n","import {text, textOverflow, type TextOverflowStyleProps, type TextStyleProps} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @public */\nexport const DEFAULT_TEXT_ELEMENT = 'div'\n\n/** @public */\nexport type TextOwnProps = TextStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type TextElementType =\n | 'div'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'label'\n | 'li'\n | 'p'\n | 'span'\n | ComponentType\n\n/** @public */\nexport type TextProps<E extends TextElementType = TextElementType> = Props<TextOwnProps, E>\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport function Text<E extends TextElementType = typeof DEFAULT_TEXT_ELEMENT>(props: TextProps<E>) {\n const {\n accent,\n align,\n as: Element = DEFAULT_TEXT_ELEMENT,\n children,\n className,\n flex,\n maxWidth = 'fill',\n muted,\n size = 2,\n textOverflow: textOverflowProp,\n weight = 'regular',\n ...rest\n } = props as TextProps<typeof DEFAULT_TEXT_ELEMENT>\n\n return (\n <Element\n data-ui=\"Text\"\n {...rest}\n className={text({\n className,\n accent,\n align,\n flex,\n maxWidth,\n muted,\n size,\n weight,\n })}\n >\n <span\n className={textOverflow({\n textOverflow: textOverflowProp,\n })}\n >\n {children}\n </span>\n </Element>\n )\n}\n","import {SpinnerIcon} from '@sanity/icons'\nimport {animatedSpinnerIcon} from '@sanity/ui/css'\nimport type {ReactElement, SVGProps} from 'react'\n\n/** @internal */\nexport function AnimatedSpinnerIcon(\n props: Omit<SVGProps<SVGSVGElement>, 'className'>,\n): ReactElement {\n const {...rest} = props\n\n return (\n <SpinnerIcon data-sanity-icon=\"animated-spinner\" {...rest} className={animatedSpinnerIcon()} />\n )\n}\n","import {type ResponsiveProp, spinner} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {ComponentType, Props} from '../../types/props'\nimport {Text} from '../text/text'\nimport {AnimatedSpinnerIcon} from './animatedSpinnerIcon'\n\n/** @public */\nexport const DEFAULT_SPINNER_ELEMENT = 'div'\n\n/** @public */\nexport type SpinnerOwnProps = {\n muted?: boolean\n size?: ResponsiveProp<FontTextSize>\n}\n\n/** @public */\nexport type SpinnerElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type SpinnerProps<E extends SpinnerElementType = SpinnerElementType> = Props<\n SpinnerOwnProps,\n E\n>\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport function Spinner<E extends SpinnerElementType = typeof DEFAULT_SPINNER_ELEMENT>(\n props: SpinnerProps<E>,\n) {\n const {\n as = DEFAULT_SPINNER_ELEMENT,\n className,\n ...rest\n } = props as SpinnerProps<typeof DEFAULT_SPINNER_ELEMENT>\n\n return (\n <Text as={as} data-ui=\"Spinner\" {...rest} className={spinner({className})}>\n <AnimatedSpinnerIcon />\n </Text>\n )\n}\n","import type {\n BoxStyleProps,\n ButtonStyleProps,\n DisplayStyleProps,\n GapStyleProps,\n PaddingStyleProps,\n ResponsiveProp,\n Width,\n} from '@sanity/ui/css'\nimport {button, buttonLoadingBox} from '@sanity/ui/css'\nimport type {FontTextSize, Space} from '@sanity/ui/theme'\nimport {type ElementType as ReactElementType, isValidElement, type ReactNode} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport type {ComponentType, Props} from '../../types/props'\nimport {Box} from '../box/box'\nimport {Spinner} from '../spinner/spinner'\nimport {Text, type TextOwnProps} from '../text/text'\nimport type {ButtonTextAlign} from './types'\n\n/** @public */\nexport const DEFAULT_BUTTON_ELEMENT = 'button'\n\n/** @public */\nexport type ButtonOwnProps = ButtonStyleProps &\n DisplayStyleProps &\n GapStyleProps &\n PaddingStyleProps & {\n 'align'?: BoxStyleProps['alignItems']\n 'data-ui'?: string\n 'disabled'?: boolean\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'icon'?: ReactElementType | ReactNode\n 'iconRight'?: ReactElementType | ReactNode\n 'justify'?: BoxStyleProps['justifyContent']\n /** @beta Do not use in production, as this might change.*/\n 'loading'?: boolean\n 'selected'?: boolean\n /** @deprecated Use `gap` instead. */\n 'space'?: ResponsiveProp<Space>\n 'textAlign'?: ButtonTextAlign\n 'muted'?: boolean\n 'target'?: string\n 'text'?: ReactNode\n 'textOverflow'?: TextOwnProps['textOverflow']\n 'textWeight'?: TextOwnProps['weight']\n 'width'?: ResponsiveProp<Width>\n }\n\n/** @public */\nexport type ButtonElementType = 'a' | 'button' | 'label' | ComponentType\n\n/** @public */\nexport type ButtonProps<E extends ButtonElementType = ButtonElementType> = Props<ButtonOwnProps, E>\n\n/** @public */\nexport function Button<E extends ButtonElementType = typeof DEFAULT_BUTTON_ELEMENT>(\n props: ButtonProps<E>,\n) {\n const {\n align = 'center',\n as: Element = DEFAULT_BUTTON_ELEMENT,\n children,\n className,\n disabled,\n flex,\n fontSize = 1,\n gap = props.space ?? props.padding ?? 3,\n gapX,\n gapY,\n icon: IconComponent,\n iconRight: IconRightComponent,\n justify = 'center',\n loading,\n mode = 'default',\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n radius = 2,\n selected,\n space = props.gap ?? props.space ?? props.padding ?? 3, // eslint-disable-line @typescript-eslint/no-unused-vars\n text,\n textAlign,\n textOverflow = 'ellipsis',\n textWeight = 'medium',\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...rest\n } = props as ButtonProps<typeof DEFAULT_BUTTON_ELEMENT>\n\n let href: string | undefined = undefined\n\n if ('href' in rest) {\n href = typeof rest.href === 'string' ? rest.href : href\n delete rest.href\n }\n\n return (\n <Element\n data-ui=\"Button\"\n {...rest}\n className={button({className, flex, mode, radius, tone, width})}\n data-disabled={loading || disabled ? '' : undefined}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n // @ts-expect-error - TODO: fix this\n href={disabled ? undefined : href}\n type={type}\n >\n {Boolean(loading) && (\n <Box\n alignItems=\"center\"\n as=\"span\"\n className={buttonLoadingBox()}\n display=\"flex\"\n flex={1}\n justifyContent=\"center\"\n width=\"fill\"\n >\n <Spinner size={fontSize} />\n </Box>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box\n alignItems={align}\n as=\"span\"\n display=\"flex\"\n flex={1}\n gap={gap}\n gapX={gapX}\n gapY={gapY}\n justifyContent={justify}\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n paddingTop={paddingTop}\n paddingBottom={paddingBottom}\n paddingLeft={paddingLeft}\n paddingRight={paddingRight}\n >\n {IconComponent && (\n <Text as=\"span\" flex=\"none\" muted size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box as=\"span\" maxWidth=\"auto\">\n <Text\n align={textAlign}\n as=\"span\"\n muted={muted}\n size={fontSize}\n textOverflow={textOverflow}\n weight={textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {IconRightComponent && (\n <Text as=\"span\" flex=\"none\" muted size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Box>\n )}\n\n {children && (\n <Box\n as=\"span\"\n flex={1}\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n paddingTop={paddingTop}\n paddingBottom={paddingBottom}\n paddingLeft={paddingLeft}\n paddingRight={paddingRight}\n >\n {children}\n </Box>\n )}\n </Element>\n )\n}\n","import {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 {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if motion should be reduced\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion\n * @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b\n *\n * @public\n */\nexport function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)\n}\n","import type {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","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext = createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/context/boundaryElement',\n null,\n)\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport type {BoundaryElementContextValue} from './types'\n\nconst DEFAULT_VALUE: BoundaryElementContextValue = {\n version: 0.0,\n element: null,\n}\n\n/** @public */\nexport function useBoundaryElement(): BoundaryElementContextValue {\n const value = useContext(BoundaryElementContext)\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (value && (!isRecord(value) || value.version !== 0.0)) {\n throw new Error('useBoundaryElement(): the context value is not compatible')\n }\n\n return value || DEFAULT_VALUE\n}\n","import {useContext} from 'react'\n\nimport {CardContext} from './cardContext'\nimport type {CardContextValue} from './types'\n\n/** @public */\nexport function useCard(): CardContextValue | null {\n return useContext(CardContext)\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport type {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/context/portal'\nconst elementKey = Symbol.for(`${key}/element`)\n\nglobalScope[elementKey] = null\n\nexport const defaultContextValue: PortalContextValue = {\n version: 0.0,\n boundaryElement: null,\n get element() {\n if (typeof document === 'undefined') {\n return null\n }\n\n if (globalScope[elementKey]) {\n return globalScope[elementKey]\n }\n\n globalScope[elementKey] = document.createElement('div')\n globalScope[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(globalScope[elementKey])\n\n return globalScope[elementKey]\n },\n}\n\nexport const PortalContext = createGlobalScopedContext<PortalContextValue>(key, defaultContextValue)\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {PortalContext} from './portalContext'\nimport type {PortalContextValue} from './types'\n\n/** @public */\nexport function usePortal(): PortalContextValue {\n const value = useContext(PortalContext)\n\n if (!value) {\n throw new Error('usePortal(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('usePortal(): the context value is not compatible')\n }\n\n return value\n}\n","import type {ReactNode, ReactPortal} from 'react'\nimport {createPortal} from 'react-dom'\n\nimport {CardProvider} from '../../primitives/card/cardProvider'\nimport {useCard} from '../../primitives/card/useCard'\nimport {usePortal} from './usePortal'\n\n/** @public */\nexport interface PortalProps {\n children: ReactNode\n /**\n * @beta This API might change. DO NOT USE IN PRODUCTION.\n */\n __unstable_name?: string\n}\n\n/** @public */\nexport function Portal(props: PortalProps): ReactPortal | null {\n const {children, __unstable_name: name} = props\n const card = useCard()\n const portal = usePortal()\n const portalElement =\n (name ? portal.elements && portal.elements[name] : portal.element) ||\n portal.elements?.['default']\n\n if (!portalElement) {\n return null\n }\n\n return createPortal(\n <CardProvider\n // rendered={true}\n tone=\"transparent\" // card?.tone || 'default',\n scheme={card?.scheme || 'light'}\n >\n {children}\n </CardProvider>,\n portalElement,\n )\n}\n","import {isRecord} from '../../lib/isRecord'\nimport type {LayerContextValue} from './types'\n\nexport function getLayerContext(contextValue: LayerContextValue): LayerContextValue {\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(contextValue) || contextValue.version !== 0.0) {\n throw new Error('the context value is not compatible')\n }\n\n if (!contextValue) {\n throw new Error('components using `useLayer()` should be wrapped in a <LayerProvider>.')\n }\n\n if (contextValue.version === 0.0) {\n return contextValue\n }\n\n throw new Error('could not get layer context')\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {LayerContextValue} from './types'\n\nexport const LayerContext = createGlobalScopedContext<LayerContextValue | null>(\n '@sanity/ui/context/layer',\n null,\n)\n","import {useContext} from 'react'\n\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport type {LayerContextValue} from './types'\n\n/** @public */\nexport function useLayer(): LayerContextValue {\n const value = useContext(LayerContext)\n\n if (!value) {\n throw new Error('useLayer(): missing context value')\n }\n\n try {\n return getLayerContext(value)\n } catch (err) {\n if (err instanceof Error) {\n throw new Error(`useLayer(): ${err.message}`)\n } else {\n throw new Error(`useLayer(): ${err}`)\n }\n }\n}\n","import type {Placement, PopoverMargins} from '@sanity/ui'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n 'bottom': ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n 'left': ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n 'right': ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {detectOverflow, type Elements, type Middleware} from '@floating-ui/react-dom'\n\nimport type {PopoverMargins} from '../types'\n\nexport interface SizeMiddlewareApplyOptions {\n availableWidth: number\n availableHeight: number\n elements: Elements\n referenceWidth: number\n}\n\nexport function size(options: {\n apply: (args: SizeMiddlewareApplyOptions) => void\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n padding?: number\n}): Middleware {\n const {apply, margins, padding = 0} = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n apply({\n availableWidth: maxWidth - margins[1] - margins[3],\n availableHeight: maxHeight - margins[0] - margins[2],\n elements,\n referenceWidth: reference.width - margins[1] - margins[3],\n })\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","export interface PointCmd {\n type: 'point'\n x: number\n y: number\n radius?: number\n}\n\nexport interface CurveCmd {\n type: 'curve'\n startControl: Point\n endControl: Point\n curveEnd: Point\n}\n\nexport type Cmd = PointCmd | CurveCmd\n\nexport interface Point {\n x: number\n y: number\n radius?: number\n}\n\nfunction moveTowardsLength(movingPoint: Point, targetPoint: Point, amount: number) {\n const width = targetPoint.x - movingPoint.x\n const height = targetPoint.y - movingPoint.y\n\n const distance = Math.sqrt(width * width + height * height)\n\n return moveTowardsFractional(movingPoint, targetPoint, Math.min(1, amount / distance))\n}\n\nfunction moveTowardsFractional(movingPoint: Point, targetPoint: Point, fraction: number): Point {\n return {\n x: movingPoint.x + (targetPoint.x - movingPoint.x) * fraction,\n y: movingPoint.y + (targetPoint.y - movingPoint.y) * fraction,\n }\n}\n\nexport function getRoundedCommands(points: Point[]): Cmd[] {\n const len = points.length\n\n const cmds: Cmd[] = []\n\n for (let i = 0; i < len; i += 1) {\n const point = points[i]\n const prevPoint = points[i - 1]\n const nextPoint = points[i + 1]\n\n if (prevPoint && point.radius) {\n const curveStart = moveTowardsLength(point, prevPoint, point.radius)\n const curveEnd = moveTowardsLength(point, nextPoint, point.radius)\n const startControl = moveTowardsFractional(curveStart, point, 0.5)\n const endControl = moveTowardsFractional(point, curveEnd, 0.5)\n\n cmds.push({\n type: 'point',\n ...curveStart,\n })\n\n cmds.push({\n type: 'curve',\n curveEnd,\n startControl,\n endControl,\n })\n } else {\n cmds.push({\n type: 'point',\n ...point,\n })\n }\n }\n\n return cmds\n}\n\nexport function compileCommands(cmds: Cmd[]): string {\n return cmds\n .map((n, idx) => {\n if (n.type === 'point') {\n return `${idx === 0 ? 'M' : 'L'} ${n.x} ${n.y}`\n }\n\n if (n.type === 'curve') {\n return `C ${n.startControl.x} ${n.startControl.y} ${n.endControl.x} ${n.endControl.y} ${n.curveEnd.x} ${n.curveEnd.y}`\n }\n\n return ``\n })\n .join(' ')\n}\n","import {_arrow, _arrowShape, _arrowStroke, _arrowStrokeMask, _arrowSvg, vars} from '@sanity/ui/css'\nimport {assignInlineVars} from '@vanilla-extract/dynamic'\nimport {useMemo} from 'react'\n\nimport type {ComponentType, Props} from '../../types/props'\nimport {compileCommands, getRoundedCommands, type Point} from './cmds'\n\n/** @internal */\nexport const DEFAULT_ARROW_ELEMENT = 'div'\n\n/** @internal */\nexport type ArrowOwnProps = {\n width: number\n height: number\n radius?: number\n}\n\n/** @internal */\nexport type ArrowElementType = 'div' | 'span' | ComponentType\n\n/** @internal */\nexport type ArrowProps<E extends ArrowElementType = ArrowElementType> = Props<ArrowOwnProps, E>\n\n/** @internal */\nexport function Arrow<E extends ArrowElementType = typeof DEFAULT_ARROW_ELEMENT>(\n props: ArrowProps<E>,\n) {\n const {\n as: Element = DEFAULT_ARROW_ELEMENT,\n width: w,\n height: h,\n radius = 0,\n style,\n ...rest\n } = props as ArrowProps<typeof DEFAULT_ARROW_ELEMENT>\n\n const center = w / 2\n\n const path = useMemo(() => {\n const points: Point[] = [\n {x: 0, y: 0},\n {x: radius, y: 0, radius},\n {x: center, y: h - 1, radius},\n {x: w - radius, y: 0, radius},\n {x: w, y: 0},\n ]\n\n const cmds = getRoundedCommands(points)\n\n return compileCommands(cmds)\n }, [center, h, radius, w])\n\n const strokePath = `${path}`\n const fillPath = `${path} M ${w} -1 M 0 -1 Z`\n\n return (\n <Element\n {...rest}\n className={_arrow()}\n style={{\n ...style,\n ...assignInlineVars({[vars.arrow.size]: `${w}px`}),\n }}\n >\n <svg className={_arrowSvg()} width={w} height={w} viewBox={`0 0 ${w} ${w}`}>\n <mask id=\"stroke-mask\">\n <rect className={_arrowStrokeMask()} x={0} width={w} height={w} fill=\"white\" />\n </mask>\n <path className={_arrowStroke()} d={strokePath} mask=\"url(#stroke-mask)\" />\n <path className={_arrowShape()} d={fillPath} />\n </svg>\n </Element>\n )\n}\n","import type {\n AlignItems,\n FlexDirection,\n FlexWrap,\n JustifyContent,\n ResponsiveProp,\n} from '@sanity/ui/css'\n\nimport type {Props} from '../../types/props'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box/box'\n\n/** @public */\nexport const DEFAULT_FLEX_ELEMENT = 'div'\n\n/** @public */\nexport type FlexOwnProps = Omit<BoxOwnProps, 'align' | 'display' | 'flexDirection' | 'flexWrap'> & {\n align?: ResponsiveProp<AlignItems>\n direction?: ResponsiveProp<FlexDirection>\n justify?: ResponsiveProp<JustifyContent>\n wrap?: ResponsiveProp<FlexWrap>\n}\n\n/** @public */\nexport type FlexElementType = BoxElementType\n\n/** @public */\nexport type FlexProps<E extends FlexElementType = FlexElementType> = Props<FlexOwnProps, E>\n\n/**\n * The `Flex` component is a wrapper component for flexible elements (`Box`, `Card` and `Flex`).\n *\n * @public\n */\nexport function Flex<E extends FlexElementType = typeof DEFAULT_FLEX_ELEMENT>(props: FlexProps<E>) {\n const {\n align,\n as = DEFAULT_FLEX_ELEMENT,\n direction = 'row',\n justify,\n wrap,\n ...rest\n } = props as FlexProps<typeof DEFAULT_FLEX_ELEMENT>\n\n return (\n <Box\n data-ui=\"Flex\"\n {...rest}\n alignItems={align}\n as={as}\n display=\"flex\"\n flexDirection={direction}\n flexWrap={wrap}\n justifyContent={justify}\n />\n )\n}\n","import {card, type CardStyleProps} from '@sanity/ui/css'\n\nimport type {Props} from '../../types/props'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box/box'\nimport {CardProvider} from './cardProvider'\nimport {useCard} from './useCard'\n\n/** @public */\nexport const DEFAULT_CARD_ELEMENT = 'div'\n\n/** @public */\nexport interface CardOwnProps extends BoxOwnProps, CardStyleProps {\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_checkered?: boolean\n /**\n * Do not use in production.\n * @beta\n */\n __unstable_focusRing?: boolean\n disabled?: boolean\n pressed?: boolean\n selected?: boolean\n target?: string\n}\n\n/** @public */\nexport type CardElementType = BoxElementType\n\n/** @public */\nexport type CardProps<E extends CardElementType = CardElementType> = Props<CardOwnProps, E>\n\n/**\n * The `Card` component acts much like a `Box`, but with a background and foreground color.\n * Components within a `Card` inherit its colors.\n *\n * @public\n */\nexport function Card<E extends CardElementType = typeof DEFAULT_CARD_ELEMENT>(props: CardProps<E>) {\n const {\n __unstable_checkered: checkered = false,\n __unstable_focusRing: focusRing = false,\n as = DEFAULT_CARD_ELEMENT,\n className,\n disabled,\n pressed,\n radius = 0,\n scheme: schemeProp,\n selected,\n style,\n tone: toneProp = 'default',\n ...rest\n } = props as CardProps<typeof DEFAULT_CARD_ELEMENT>\n\n const parent = useCard()\n const tone = toneProp === 'inherit' ? parent?.tone : toneProp\n const scheme = schemeProp === undefined ? parent?.scheme : schemeProp\n\n let node = (\n <Box\n data-ui=\"Card\"\n {...rest}\n as={as}\n className={card({\n className,\n scheme: scheme === parent?.scheme ? undefined : scheme,\n tone,\n })}\n data-checkered={checkered ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n data-focus-ring={focusRing ? '' : undefined}\n data-pressed={pressed ? '' : undefined}\n data-selected={selected ? '' : undefined}\n radius={radius}\n style={style}\n />\n )\n\n if (scheme === parent?.scheme && tone === parent?.tone) {\n return node\n }\n\n node = (\n <CardProvider\n scheme={scheme ?? 'light'}\n tone={tone ?? 'default'}\n unstable_CompatProvider={parent?.unstable_CompatProvider}\n >\n {node}\n </CardProvider>\n )\n\n if (parent?.unstable_CompatProvider) {\n const CompatProvider = parent.unstable_CompatProvider\n\n return (\n <CompatProvider scheme={scheme ?? 'light'} tone={tone ?? parent?.tone ?? 'default'}>\n {node}\n </CompatProvider>\n )\n }\n\n return node\n}\n","import {type FocusEvent, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers/element'\nimport {Card, type CardElementType} from '../../primitives/card/card'\nimport type {Props} from '../../types/props'\nimport type {LayerElementType, LayerOwnProps} from './layer'\nimport {useLayer} from './useLayer'\n\n/** @internal */\nexport const DEFAULT_LAYER_CARD_ELEMENT = 'div'\n\n/** @internal */\nexport type LayerCardOwnProps = Omit<LayerOwnProps, 'zOffset'>\n\n/** @internal */\nexport type LayerCardElementType = LayerElementType\n\n/** @internal */\nexport type LayerCardProps<E extends LayerCardElementType = LayerCardElementType> = Props<\n LayerCardOwnProps,\n E\n>\n\n/** @internal */\nexport function LayerCard<E extends LayerCardElementType = typeof DEFAULT_LAYER_CARD_ELEMENT>(\n props: LayerCardProps<E>,\n) {\n const {\n as = DEFAULT_LAYER_CARD_ELEMENT,\n children,\n onActivate,\n onFocus,\n position = 'relative',\n ref: forwardedRef,\n style = EMPTY_RECORD,\n ...rest\n } = props as LayerCardProps<typeof DEFAULT_LAYER_CARD_ELEMENT>\n\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <Card\n data-ui=\"Layer\"\n {...rest}\n as={as as CardElementType}\n onFocus={handleFocus}\n position={position}\n ref={ref}\n style={{...style, zIndex}}\n >\n {children}\n </Card>\n )\n}\n","import {type Breakpoint, BREAKPOINTS} from '@sanity/ui/css'\nimport {useMemo, useSyncExternalStore} from 'react'\n\nconst media = Object.values(BREAKPOINTS)\n\n/**\n * @internal\n */\nexport interface _MediaStore {\n subscribe: (onStoreChange: () => void) => () => void\n getSnapshot: () => Breakpoint\n}\n\ntype MediaQueryMinWidth = `(min-width: ${number}px)`\ntype MediaQueryMaxWidth = `(max-width: ${number}px)`\ntype MediaQueryMinMaxWidth = `${MediaQueryMinWidth} and ${MediaQueryMaxWidth}`\ntype MediaQuery = `screen and ${MediaQueryMinWidth | MediaQueryMaxWidth | MediaQueryMinMaxWidth}`\n\nfunction _getMediaQuery(media: number[], index: number): MediaQuery {\n if (index === 0) {\n return `screen and (max-width: ${media[index + 1] - 1}px)`\n }\n\n if (index === media.length - 1) {\n return `screen and (min-width: ${media[index]}px)`\n }\n\n return `screen and (min-width: ${media[index]}px) and (max-width: ${media[index + 1] - 1}px)`\n}\n\nfunction _createMediaStore(): _MediaStore {\n const mediaLen = media.length\n let sizes: {mq: MediaQueryList; index: number}[]\n\n // The _createMediaStore function is called in both server and client environments.\n // However since subscribe and getSnapshot are only called on the client we lazy init what we need for them\n // so that we don't need to run checks for wether it's safe to call `window.matchMedia`\n const getSizes = () => {\n if (!sizes) {\n sizes = []\n\n for (let index = mediaLen; index > -1; index -= 1) {\n const mediaQuery = _getMediaQuery(media, index)\n\n sizes.push({index, mq: window.matchMedia(mediaQuery)})\n }\n }\n\n return sizes\n }\n\n const getSnapshot = () => {\n for (const {index, mq} of getSizes()) {\n if (mq.matches) return index as Breakpoint\n }\n\n return 0\n }\n\n const subscribe = (onStoreChange: () => void) => {\n const disposeFns: (() => void)[] = []\n\n for (const {mq} of getSizes()) {\n const handleChange = () => {\n if (mq.matches) onStoreChange()\n }\n\n mq.addEventListener('change', handleChange)\n\n disposeFns.push(() => mq.removeEventListener('change', handleChange))\n }\n\n return () => {\n for (const disposeFn of disposeFns) {\n disposeFn()\n }\n }\n }\n\n return {getSnapshot, subscribe}\n}\n\n/**\n * Only called during server-side rendering, and hydration if using hydrateRoot\n * Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query\n * and we assume `(prefers-color-scheme: light)` since it's the most common scheme\n *\n * @link https://beta.reactjs.org/apis/react/useSyncExternalStore#adding-support-for-server-rendering\n */\nfunction getServerSnapshot(): Breakpoint {\n return 0\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useMediaIndex(): Breakpoint {\n const store = useMemo(() => _createMediaStore(), [])\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, getServerSnapshot)\n}\n","import type {Breakpoint, ResponsiveProp} from '@sanity/ui/css'\nimport {\n type ReactElement,\n type ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n} from 'react'\n\nimport {useMediaIndex} from '../../hooks/useMediaIndex/useMediaIndex'\nimport {useResponsiveProp} from '../../hooks/useResponsiveProp'\nimport {getLayerContext} from './getLayerContext'\nimport {LayerContext} from './layerContext'\nimport type {LayerContextValue} from './types'\n\n/** @public */\nexport interface LayerProviderProps {\n children?: ReactNode\n zOffset?: ResponsiveProp<number>\n}\n\n/** @public */\nexport function LayerProvider(props: LayerProviderProps): ReactElement {\n const {children, zOffset: zOffsetProp = 0} = props\n\n // Get parent context values\n const parentContextValue = useContext(LayerContext)\n const parent = parentContextValue && getLayerContext(parentContextValue)\n const parentRegisterChild = parent?.registerChild\n const parentLevel = parent?.level ?? 0\n\n // Get level\n const level = parentLevel + 1\n\n // Get z-index offset\n const zOffset = useResponsiveProp(zOffsetProp)\n\n // Get responsive z-index value\n const maxMediaIndex = Object.values(zOffset).length - 1\n const mediaIndex = Math.min(useMediaIndex(), maxMediaIndex) as Breakpoint\n const zIndex = parent ? parent.zIndex + (zOffset[mediaIndex] ?? 0) : (zOffset[mediaIndex] ?? 0)\n\n // A state value that is used to keep track of the number of child layers on each level\n const [, setChildLayers] = useState<Record<number, number>>({})\n\n // A state value that is used to keep track of the number of child levels\n const [size, setSize] = useState(0)\n\n const isTopLayer = size === 0\n\n const registerChild = useCallback(\n (childLevel?: number) => {\n // Register child layers to the parent layer\n const parentDispose = parentRegisterChild?.(childLevel)\n\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const prevLen = state[childLevel] ?? 0\n const nextState = {...state, [childLevel]: prevLen + 1}\n\n setSize(Object.keys(nextState).length)\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, increment the size by 1\n setSize((v) => v + 1)\n }\n\n return () => {\n if (childLevel !== undefined) {\n setChildLayers((state) => {\n const nextState = {...state}\n\n if (nextState[childLevel] === 1) {\n delete nextState[childLevel]\n\n setSize(Object.keys(nextState).length)\n } else {\n nextState[childLevel] -= 1\n }\n\n return nextState\n })\n } else {\n // Legacy behavior: if no child level is provided, decrement the size by 1\n setSize((v) => v - 1)\n }\n\n parentDispose?.()\n }\n },\n [parentRegisterChild, setSize, setChildLayers],\n )\n\n // Register this layer on mount\n useEffect(() => parentRegisterChild?.(level), [level, parentRegisterChild])\n\n const value: LayerContextValue = useMemo(\n () => ({\n version: 0.0,\n isTopLayer,\n level,\n registerChild,\n size,\n zIndex,\n }),\n [isTopLayer, level, registerChild, size, zIndex],\n )\n\n return <LayerContext.Provider value={value}>{children}</LayerContext.Provider>\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\n\nimport type {CardElementType, CardOwnProps} from '../../primitives/card/card'\nimport type {Props} from '../../types/props'\nimport {LayerCard} from './layerCard'\nimport {LayerProvider} from './layerProvider'\n\n/** @public */\nexport const DEFAULT_LAYER_ELEMENT = 'div'\n\n/** @public */\nexport type LayerOwnProps = CardOwnProps & {\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: ResponsiveProp<number>\n}\n\n/** @public */\nexport type LayerElementType = CardElementType\n\n/** @public */\nexport type LayerProps<E extends LayerElementType = LayerElementType> = Props<LayerOwnProps, E>\n\n/** @public */\nexport function Layer<E extends LayerElementType = typeof DEFAULT_LAYER_ELEMENT>(\n props: LayerProps<E>,\n) {\n const {\n as = DEFAULT_LAYER_ELEMENT,\n children,\n zOffset = 1,\n ...rest\n } = props as LayerProps<typeof DEFAULT_LAYER_ELEMENT>\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerCard {...rest} as={as}>\n {children}\n </LayerCard>\n </LayerProvider>\n )\n}\n","import type {Strategy} from '@floating-ui/react-dom'\nimport {popoverCard} from '@sanity/ui/css'\nimport {motion} from 'framer-motion'\nimport {type CSSProperties, type ForwardedRef, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport type {Placement} from '../../types/placement'\nimport {Arrow} from '../arrow/arrow'\nimport {Flex} from '../flex/flex'\nimport {Layer, type LayerOwnProps, type LayerProps} from '../layer/layer'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\nimport type {PopoverMargins} from './types'\n\n/** @internal */\nexport const DEFAULT_POPOVER_LAYER_ELEMENT = 'div'\n\n/** @internal */\nexport type PopoverLayerOwnProps = LayerOwnProps & {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: ForwardedRef<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n placement: Placement\n referenceWidth?: number\n strategy: Strategy\n x: number | null\n y: number | null\n}\n\n/** @internal */\nexport type PopoverLayerProps = PopoverLayerOwnProps & LayerProps<'div'>\n\n/** @internal */\nexport function PopoverLayer(props: PopoverLayerProps) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n maxWidth,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n referenceWidth,\n shadow,\n strategy,\n style,\n tone = 'inherit',\n x: xProp,\n y: yProp,\n ...rest\n } = props\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n top: y,\n width: referenceWidth,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, referenceWidth, style, x, y],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n // @ts-expect-error - TODO: fix this\n <Layer\n className={popoverCard()}\n data-ui=\"Popover\"\n {...rest}\n as={motion.div}\n data-context-tone={tone}\n data-placement={placement}\n flexDirection=\"column\"\n display=\"flex\"\n position={strategy}\n radius={radius}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n <Flex\n data-ui=\"Popover__wrapper\"\n direction=\"column\"\n flex={1}\n maxWidth={maxWidth}\n overflow={overflow}\n >\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </Flex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </Layer>\n )\n}\n","import {\n arrow,\n autoUpdate,\n flip,\n hide,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {type MaxWidth, popover as popoverCss, type ResponsiveProp} from '@sanity/ui/css'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n type ForwardedRef,\n type ReactElement,\n type ReactNode,\n type Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {useResponsiveProp} from '../../hooks/useResponsiveProp'\nimport {origin} from '../../middleware/origin'\nimport type {Placement} from '../../types/placement'\nimport type {ComponentType, Props} from '../../types/props'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {Portal} from '../../utils/portal/portal'\nimport {CardProvider} from '../card/cardProvider'\nimport {useCard} from '../card/useCard'\nimport {type LayerOwnProps} from '../layer/layer'\nimport {useLayer} from '../layer/useLayer'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {PopoverLayer} from './popoverLayer'\nimport type {PopoverMargins, PopoverUpdateCallback} from './types'\n\n/** @public */\nexport const DEFAULT_POPOVER_ELEMENT = 'div'\n\n/** @public */\nexport type PopoverOwnProps = Omit<LayerOwnProps, 'maxWidth'> & {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: HTMLElement | null\n children?: ReactElement<{ref: ForwardedRef<HTMLElement>}>\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n *\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n /**\n * When true, blocks all pointer interaction with elements beneath the popover until closed.\n *\n * @beta\n * @defaultValue false\n */\n modal?: boolean\n open?: boolean\n placement?: Placement\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n /** @beta */\n updateRef?: Ref<PopoverUpdateCallback | undefined>\n width?: ResponsiveProp<MaxWidth>\n}\n\n/** @public */\nexport type PopoverElementType = 'div' | ComponentType\n\n/** @public */\nexport type PopoverProps<E extends PopoverElementType = PopoverElementType> = Props<\n PopoverOwnProps,\n E\n>\n\nfunction ViewportOverlay() {\n const {zIndex} = useLayer()\n\n return (\n <div\n style={{\n position: 'fixed',\n inset: 0,\n width: '100vw',\n height: '100vh',\n zIndex,\n }}\n />\n )\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport function Popover<E extends PopoverElementType = typeof DEFAULT_POPOVER_ELEMENT>(\n props: PopoverProps<E>,\n) {\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n as: as = DEFAULT_POPOVER_ELEMENT,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n boundaryElement = boundaryElementContext.element,\n children: childProp,\n className,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n matchReferenceWidth,\n floatingBoundary = props.boundaryElement ?? boundaryElementContext.element,\n modal,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding,\n placement: placementProp = 'bottom',\n portal,\n preventOverflow = true,\n radius = 3,\n ref: forwardedRef,\n referenceBoundary = props.boundaryElement ?? boundaryElementContext.element,\n referenceElement,\n scheme,\n shadow = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: zOffsetProp = Z_OFFSETS.popover,\n updateRef,\n ...rest\n } = props as PopoverProps<typeof DEFAULT_POPOVER_ELEMENT>\n\n const card = useCard()\n\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const zOffset = useResponsiveProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>(undefined)\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n apply({availableWidth, availableHeight, elements, referenceWidth}) {\n // not fresh, so use refs\n\n referenceWidthRef.current = referenceWidth\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${availableWidth}px`\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n },\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n preventOverflow,\n referenceBoundary,\n ])\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: referenceElement\n ? {\n reference: referenceElement,\n }\n : undefined,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const setReference = useCallback(\n (node: HTMLElement | null) => {\n refs.setReference(node)\n\n const childRef = getElementRef(childProp as any)\n\n if (typeof childRef === 'function') {\n childRef(node)\n } else if (childRef) {\n childRef.current = node\n }\n },\n [childProp, refs],\n )\n\n const child = useMemo(() => {\n // If a reference element is defined, we don't need to clone the child\n if (referenceElement) return childProp\n\n if (!childProp) return null\n\n return cloneElement(childProp, {ref: setReference})\n }, [childProp, referenceElement, setReference])\n\n useEffect(() => {\n if (updateRef) {\n if (typeof updateRef === 'function') {\n updateRef(update)\n } else if (updateRef) {\n updateRef.current = update\n }\n }\n }, [update, updateRef])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const node = (\n <>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned\n before the below popover card. */}\n {modal && <ViewportOverlay />}\n\n <PopoverLayer\n {...rest}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n as={as}\n className={popoverCss({className})}\n hidden={referenceHidden}\n maxWidth={widthProp}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n x={x}\n y={y}\n zOffset={zOffset}\n >\n {content}\n </PopoverLayer>\n </>\n )\n\n const children =\n open &&\n (portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>\n <CardProvider\n tone={tone === 'inherit' ? (card?.tone ?? 'default') : tone}\n scheme={scheme ?? 'light'}\n >\n {node}\n </CardProvider>\n </Portal>\n ) : (\n node\n ))\n\n return (\n <>\n {/* the popover */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(\n element: ReactElement<{ref: ForwardedRef<HTMLElement>}>,\n): ForwardedRef<HTMLElement> {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return element.props.ref\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref\n}\n","import {_selectable, type SelectableStyleProps} from '@sanity/ui/css'\nimport type {ThemeColorStateToneKey} from '@sanity/ui/theme'\n\nimport type {ComponentType, Props} from '../../types/props'\nimport {Box, type BoxOwnProps} from '../box/box'\n\n/** @internal */\nexport const DEFAULT_SELECTABLE_ELEMENT = 'button'\n\n/** @internal */\nexport type SelectableOwnProps = BoxOwnProps &\n SelectableStyleProps & {\n disabled?: boolean\n href?: string\n selected?: boolean\n tone?: ThemeColorStateToneKey\n type?: 'button'\n }\n\n/** @internal */\nexport type SelectableElementType = 'button' | 'a' | ComponentType\n\n/** @internal */\nexport type SelectableProps<E extends SelectableElementType = SelectableElementType> = Props<\n SelectableOwnProps,\n E\n>\n\n/** @internal */\nexport function Selectable<E extends SelectableElementType = typeof DEFAULT_SELECTABLE_ELEMENT>(\n props: SelectableProps<E>,\n) {\n const {\n as = DEFAULT_SELECTABLE_ELEMENT,\n className,\n radius,\n selected,\n tone,\n ...rest\n } = props as SelectableProps<typeof DEFAULT_SELECTABLE_ELEMENT>\n\n return (\n <Box\n {...rest}\n as={as}\n className={_selectable({className, radius, tone})}\n data-selected={selected ? '' : undefined}\n />\n )\n}\n","import {type ResponsiveProp, stack} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types/props'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box/box'\n\n/** @public */\nexport const DEFAULT_STACK_ELEMENT = 'div'\n\n/** @public */\nexport type StackOwnProps = Omit<\n BoxOwnProps,\n | 'align'\n | 'alignItems'\n | 'columns'\n | 'gridTemplateColumns'\n | 'direction'\n | 'display'\n | 'flexDirection'\n | 'flexWrap'\n | 'gapX'\n | 'gapY'\n | 'justify'\n | 'justifyContent'\n | 'rows'\n | 'gridTemplateRows'\n> & {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type StackElementType = BoxElementType\n\n/** @public */\nexport type StackProps<E extends StackElementType = StackElementType> = Props<StackOwnProps, E>\n\n/**\n * The `Stack` component is used to place elements on top of each other.\n *\n * @public\n */\nexport function Stack<E extends StackElementType = typeof DEFAULT_STACK_ELEMENT>(\n props: StackProps<E>,\n) {\n const {\n as = DEFAULT_STACK_ELEMENT,\n className,\n gap,\n space,\n ...rest\n } = props as StackProps<typeof DEFAULT_STACK_ELEMENT>\n\n return (\n <Box\n data-ui=\"Stack\"\n {...rest}\n as={as}\n gridAutoRows=\"min\"\n className={stack({className})}\n display=\"grid\"\n gap={gap ?? space}\n />\n )\n}\n","import {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 {CloseIcon} from '@sanity/icons'\nimport {\n _inputElement,\n _inputPresentation,\n type InputStyleProps,\n type ResponsiveProp,\n textInput,\n textInputElement,\n textInputPrefix,\n textInputSuffix,\n} from '@sanity/ui/css'\nimport type {Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {\n type ElementType,\n isValidElement,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {useResponsiveProp} from '../../hooks/useResponsiveProp'\nimport {isRecord} from '../../lib/isRecord'\nimport type {ComponentType, Props} from '../../types/props'\nimport {Box} from '../box/box'\nimport {Button, type ButtonProps} from '../button/button'\nimport {Text} from '../text/text'\n\n/** @public */\nexport const DEFAULT_TEXT_INPUT_ELEMENT = 'input'\n\n/** @public */\nexport type TextInputClearButtonProps = Omit<\n ButtonProps<'button'>,\n 'as' | 'onClick' | 'onMouseDown'\n>\n\n/** @public */\nexport type TextInputOwnProps = InputStyleProps & {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n icon?: ElementType | ReactNode\n iconRight?: ElementType | ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n prefix?: ReactNode\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n suffix?: ReactNode\n weight?: ThemeFontWeightKey\n}\n\n/** @public */\nexport type TextInputElementType = 'input' | ComponentType\n\n/** @public */\nexport type TextInputProps<E extends TextInputElementType = TextInputElementType> = Props<\n TextInputOwnProps,\n E\n>\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport function TextInput<E extends TextInputElementType = typeof DEFAULT_TEXT_INPUT_ELEMENT>(\n props: TextInputProps<E>,\n) {\n const {\n __unstable_disableFocusRing,\n as: Element = DEFAULT_TEXT_INPUT_ELEMENT,\n border = true,\n className,\n clearButton,\n disabled = false,\n fontSize = 2,\n gap,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding = 3,\n prefix,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n space = 3,\n suffix,\n customValidity,\n type = 'text',\n weight: _width, // eslint-disable-line @typescript-eslint/no-unused-vars\n width,\n ...rest\n } = props as TextInputProps<typeof DEFAULT_TEXT_INPUT_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n const responsivePadding = useResponsiveProp(padding)\n\n const withClearButton = Boolean(clearButton)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n const clearButtonBoxPadding = useMemo(() => {\n return Object.fromEntries(\n Object.entries(responsivePadding).map(([key, value]) => {\n if (value === 0) return [key, 0]\n if (value === 1) return [key, 1]\n if (value === 2) return [key, 1]\n\n return [key, typeof value === 'number' ? value - 2 : 0]\n }),\n ) as ResponsiveProp<Space>\n }, [responsivePadding])\n\n const clearButtonPadding = useMemo(() => {\n return Object.fromEntries(\n Object.entries(responsivePadding).map(([key, value]) => {\n if (value === 0) return [key, 0]\n if (value === 1) return [key, 0]\n if (value === 2) return [key, 1]\n\n return [key, typeof value === 'number' ? value - 1 : 0]\n }),\n ) as ResponsiveProp<Space>\n }, [responsivePadding])\n\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (isRecord(clearButton) ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n\n return (\n <Box\n alignItems=\"center\"\n className={textInput({\n className,\n border,\n fontSize,\n padding,\n radius,\n gap: gap ?? space,\n width,\n })}\n data-icon-left={IconComponent ? '' : undefined}\n data-icon-right={IconRightComponent ? '' : undefined}\n data-invalid={customValidity ? '' : undefined}\n data-prefix={prefix ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-suffix={suffix ? '' : undefined}\n data-ui=\"TextInput\"\n display=\"flex\"\n >\n {prefix && (\n <Box className={textInputPrefix()} sizing=\"border\">\n <span>{prefix}</span>\n </Box>\n )}\n\n <Box className={textInputElement()} flex={1} position=\"relative\">\n <Element\n {...rest}\n className={_inputElement()}\n data-no-focus-ring={__unstable_disableFocusRing ? '' : undefined}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n <Box className={_inputPresentation()} position=\"absolute\">\n {IconComponent && (\n <Box padding={padding} position=\"absolute\" insetTop={0} insetLeft={0}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </Box>\n )}\n\n {!withClearButton && IconRightComponent && (\n <Box padding={padding} position=\"absolute\" insetTop={0} insetRight={0}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </Box>\n )}\n </Box>\n\n {!disabled && !readOnly && clearButton && (\n <Box\n insetTop={0}\n insetRight={0}\n padding={clearButtonBoxPadding}\n position=\"absolute\"\n style={{zIndex: 2}}\n >\n <Button\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n display=\"block\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </Box>\n )}\n </Box>\n\n {suffix && (\n <Box className={textInputSuffix()} sizing=\"border\">\n <span>{suffix}</span>\n </Box>\n )}\n </Box>\n )\n}\n","import {useDebugValue, useEffect} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/** @public */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/** @public */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/** @public */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n","import {useEffect} from 'react'\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 {kbd, type RadiusStyleProps, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {ComponentType, Props} from '../../types/props'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box/box'\nimport {Text} from '../text/text'\n\n/** @public */\nexport const DEFAULT_KBD_ELEMENT = 'kbd'\n\n/** @public */\nexport type KBDOwnProps = BoxOwnProps &\n RadiusStyleProps & {\n fontSize?: ResponsiveProp<FontTextSize>\n }\n\n/** @public */\nexport type KBDElementType = 'kbd' | ComponentType\n\n/** @public */\nexport type KBDProps<E extends KBDElementType = KBDElementType> = Props<KBDOwnProps, E>\n\n/**\n * Used to define some text as keyboard input.\n *\n * @public\n */\nexport function KBD<E extends KBDElementType = typeof DEFAULT_KBD_ELEMENT>(props: KBDProps<E>) {\n const {\n as = DEFAULT_KBD_ELEMENT,\n children,\n className,\n display = 'inline-block',\n fontSize = 1,\n padding = 1,\n radius = 2,\n ...rest\n } = props as KBDProps<typeof DEFAULT_KBD_ELEMENT>\n\n return (\n <Box\n data-ui=\"KBD\"\n {...rest}\n as={as as BoxElementType}\n className={kbd({className, radius})}\n display={display}\n muted\n padding={padding}\n >\n <Text as=\"span\" muted size={fontSize} weight=\"medium\">\n {children}\n </Text>\n </Box>\n )\n}\n","import type {GapStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport type {FontTextSize, Space} from '@sanity/ui/theme'\n\nimport {Box} from '../../primitives/box/box'\nimport {KBD} from '../../primitives/kbd/kbd'\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @public */\nexport const DEFAULT_HOTKEYS_ELEMENT = 'kbd'\n\n/** @public */\nexport interface HotkeysOwnProps extends GapStyleProps, RadiusStyleProps {\n fontSize?: ResponsiveProp<FontTextSize>\n padding?: ResponsiveProp<Space>\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n keys?: string[]\n}\n\n/** @public */\nexport type HotkeysElementType = 'kbd' | ComponentType\n\n/** @public */\nexport type HotkeysProps<E extends HotkeysElementType = HotkeysElementType> = Props<\n HotkeysOwnProps,\n E\n>\n\n/**\n * Represent hotkeys (a keyboard combination) with semantic `<kbd>` elements.\n *\n * @public\n */\nexport function Hotkeys<E extends HotkeysElementType = typeof DEFAULT_HOTKEYS_ELEMENT>(\n props: HotkeysProps<E>,\n) {\n const {\n as = DEFAULT_HOTKEYS_ELEMENT,\n fontSize,\n gap,\n gapX,\n gapY,\n keys,\n padding,\n radius,\n space = 1,\n ...rest\n } = props as HotkeysProps<typeof DEFAULT_HOTKEYS_ELEMENT>\n\n if (!keys || keys.length === 0) {\n return undefined\n }\n\n return (\n <Box\n as={as}\n data-ui=\"Hotkeys\"\n {...rest}\n display=\"flex\"\n gap={gap ?? space}\n gapX={gapX}\n gapY={gapY}\n >\n {keys.map((key, i) => (\n <KBD fontSize={fontSize} key={i} padding={padding} radius={radius}>\n {key}\n </KBD>\n ))}\n </Box>\n )\n}\n","import {type MouseEvent as ReactMouseEvent} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\n\nexport interface MenuContextValue {\n version: 0.0\n activeElement: HTMLElement | null\n activeIndex: number\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n onClickOutside?: (event: MouseEvent) => void\n onEscape?: () => void\n onItemClick?: () => void\n onItemMouseEnter?: (event: ReactMouseEvent<HTMLElement>) => void\n onItemMouseLeave?: (event: ReactMouseEvent<HTMLElement>) => void\n registerElement?: (el: HTMLElement) => () => void\n\n /**\n * @deprecated Use `onItemMouseEnter` instead\n */\n onMouseEnter: (event: ReactMouseEvent<HTMLElement>) => void\n\n /**\n * @deprecated Use `onItemMouseLeave` instead\n */\n onMouseLeave: (event: ReactMouseEvent<HTMLElement>) => void\n}\n\nexport const MenuContext = createGlobalScopedContext<MenuContextValue | null>(\n '@sanity/ui/context/menu',\n null,\n)\n","import {isHTMLAnchorElement, isHTMLButtonElement} from '../../helpers/element'\n\n/**\n * @internal\n */\nfunction _isFocusable(element: HTMLElement) {\n return (\n (isHTMLAnchorElement(element) && element.getAttribute('data-disabled') !== 'true') ||\n (isHTMLButtonElement(element) && !element.disabled)\n )\n}\n\n/**\n * @internal\n */\nexport function _getFocusableElements(elements: HTMLElement[]): HTMLElement[] {\n return elements.filter(_isFocusable)\n}\n\n/**\n * @internal\n */\nexport function _getDOMPath(rootElement: HTMLElement, el: HTMLElement): number[] {\n const path: number[] = []\n\n let e = el\n\n while (e !== rootElement) {\n const parentElement = e.parentElement\n\n if (!parentElement) return path\n\n const children = Array.from(parentElement.childNodes)\n const index = children.indexOf(e)\n\n path.unshift(index)\n\n if (parentElement === rootElement) {\n return path\n }\n\n e = parentElement\n }\n\n return path\n}\n\nconst EMPTY_PATH: number[] = []\n\n/**\n * @internal\n */\nexport function _sortElements(rootElement: HTMLElement | null, elements: HTMLElement[]): void {\n if (!rootElement) return\n\n const map = new WeakMap<HTMLElement, number[]>()\n\n for (const el of elements) {\n map.set(el, _getDOMPath(rootElement, el))\n }\n\n const _sort = (a: HTMLElement, b: HTMLElement) => {\n const _a = map.get(a) || EMPTY_PATH\n const _b = map.get(b) || EMPTY_PATH\n\n const len = Math.max(_a.length, _b.length)\n\n // Loop until there are different indexes\n for (let i = 0; i < len; i += 1) {\n const aIndex = _a[i] || -1\n const bIndex = _b[i] || -1\n\n if (aIndex !== bIndex) {\n return aIndex - bIndex\n }\n }\n\n return 0\n }\n\n elements.sort(_sort)\n}\n","import {\n type KeyboardEvent,\n type KeyboardEventHandler,\n type MouseEvent,\n type MutableRefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {_getFocusableElements, _sortElements} from './helpers'\n\n/**\n * @internal\n */\nexport interface MenuController {\n activeElement: HTMLElement | null\n activeIndex: number\n handleItemMouseEnter: (event: MouseEvent<HTMLElement>) => void\n handleItemMouseLeave: () => void\n handleKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void\n mount: (element: HTMLElement | null, selected?: boolean) => () => void\n}\n\n/**\n * This controller is responsible for controlling UI menu state.\n *\n * @internal\n */\nexport function useMenuController(props: {\n onKeyDown?: KeyboardEventHandler\n originElement?: HTMLElement | null\n shouldFocus: 'first' | 'last' | null\n rootElementRef: MutableRefObject<HTMLDivElement | null>\n}): MenuController {\n const {onKeyDown, originElement, shouldFocus, rootElementRef} = props\n const elementsRef = useRef<HTMLElement[]>([])\n const [activeIndex, _setActiveIndex] = useState(-1)\n const activeIndexRef = useRef(activeIndex)\n const activeElement = useMemo(() => elementsRef.current[activeIndex] || null, [activeIndex])\n const mounted = Boolean(rootElementRef.current)\n\n const setActiveIndex = useCallback((nextActiveIndex: number) => {\n _setActiveIndex(nextActiveIndex)\n activeIndexRef.current = nextActiveIndex\n }, [])\n\n const mount = useCallback(\n (element: HTMLElement | null, selected?: boolean): (() => void) => {\n if (!element) return () => undefined\n\n if (elementsRef.current.indexOf(element) === -1) {\n elementsRef.current.push(element)\n _sortElements(rootElementRef.current, elementsRef.current)\n }\n\n if (selected) {\n const selectedIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(selectedIndex)\n }\n\n return () => {\n const idx = elementsRef.current.indexOf(element)\n\n if (idx > -1) {\n elementsRef.current.splice(idx, 1)\n }\n }\n },\n [rootElementRef, setActiveIndex],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // Move focus to the element that opened the menu before handling the `Tab` press\n if (event.key === 'Tab') {\n if (originElement) {\n originElement.focus()\n }\n\n return\n }\n\n // Move focus to the first focusable menuitem\n if (event.key === 'Home') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n // Move focus to the last focusable menuitem\n if (event.key === 'End') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (!el) return\n\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex - 1 + focusableLen) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n event.stopPropagation()\n\n const focusableElements = _getFocusableElements(elementsRef.current)\n const focusableLen = focusableElements.length\n\n if (focusableLen === 0) return\n\n const focusedElement = elementsRef.current[activeIndexRef.current]\n\n let focusedIndex = focusableElements.indexOf(focusedElement)\n\n focusedIndex = (focusedIndex + 1) % focusableLen\n\n const el = focusableElements[focusedIndex]\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n\n return\n }\n\n if (onKeyDown) {\n onKeyDown(event)\n }\n },\n [onKeyDown, originElement, setActiveIndex],\n )\n\n const handleItemMouseEnter = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n const element = event.currentTarget\n const currentIndex = elementsRef.current.indexOf(element)\n\n setActiveIndex(currentIndex)\n },\n [setActiveIndex],\n )\n\n const handleItemMouseLeave = useCallback(() => {\n // Set the active index to -2 to deactivate all menu items\n // when the user moves the mouse away from the menu item.\n // We avoid using -1 because it would focus the first menu item,\n // which would be incorrect when the user hovers over a gap\n // between two menu items or a menu divider.\n setActiveIndex(-2)\n rootElementRef.current?.focus()\n }, [rootElementRef, setActiveIndex])\n\n // Set focus on the currently active element\n useEffect(() => {\n if (!mounted) return\n\n const rafId = requestAnimationFrame(() => {\n if (activeIndex === -1) {\n if (shouldFocus === 'first') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[0]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n if (shouldFocus === 'last') {\n const focusableElements = _getFocusableElements(elementsRef.current)\n const el = focusableElements[focusableElements.length - 1]\n\n if (el) {\n const currentIndex = elementsRef.current.indexOf(el)\n\n setActiveIndex(currentIndex)\n }\n }\n\n return\n }\n\n const element = elementsRef.current[activeIndex] || null\n\n element?.focus()\n })\n\n return () => cancelAnimationFrame(rafId)\n }, [activeIndex, mounted, setActiveIndex, shouldFocus])\n\n return {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n }\n}\n","import {menu, type PaddingStyleProps, type ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {useCallback, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\n\nimport {useClickOutsideEvent} from '../../hooks/useClickOutsideEvent'\nimport {useGlobalKeyDown} from '../../hooks/useGlobalKeyDown'\nimport {Box} from '../../primitives/box/box'\nimport {useLayer} from '../../primitives/layer/useLayer'\nimport {Stack} from '../../primitives/stack/stack'\nimport type {ComponentType, Props} from '../../types/props'\nimport {MenuContext, type MenuContextValue} from './menuContext'\nimport {useMenuController} from './useMenuController'\n\n/** @public */\nexport const DEFAULT_MENU_ELEMENT = 'div'\n\n/** @public */\nexport type MenuOwnProps = PaddingStyleProps & {\n /**\n * @deprecated Use `shouldFocus=\"first\"` instead.\n */\n 'focusFirst'?: boolean\n /**\n * @deprecated Use `shouldFocus=\"last\"` instead.\n */\n 'focusLast'?: boolean\n 'gap'?: ResponsiveProp<Space>\n 'onClickOutside'?: (event: MouseEvent) => void\n 'onEscape'?: () => void\n 'onItemClick'?: () => void\n 'onItemSelect'?: (index: number) => void\n 'originElement'?: HTMLElement | null\n 'registerElement'?: (el: HTMLElement) => () => void\n 'shouldFocus'?: 'first' | 'last' | null\n /** @deprecated Use `gap` property instead. */\n 'space'?: ResponsiveProp<Space>\n 'aria-labelledby'?: string\n // 'onBlurCapture'?: (event: FocusEvent) => void\n}\n\n/** @public */\nexport type MenuElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type MenuProps<E extends MenuElementType = MenuElementType> = Props<MenuOwnProps, E>\n\n/**\n * The `Menu` component is a building block for application menus.\n *\n * @public\n */\nexport function Menu<E extends MenuElementType = typeof DEFAULT_MENU_ELEMENT>(props: MenuProps<E>) {\n const {\n as = DEFAULT_MENU_ELEMENT,\n children,\n className,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusFirst,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusLast,\n gap,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n ref: forwardedRef,\n registerElement,\n shouldFocus: _shouldFocus,\n space = 1,\n ...rest\n } = props as MenuProps<typeof DEFAULT_MENU_ELEMENT>\n\n const shouldFocus =\n _shouldFocus ?? ((props.focusFirst && 'first') || (props.focusLast && 'last') || null)\n\n const ref = useRef<HTMLDivElement | null>(null)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const {isTopLayer} = useLayer()\n\n const {\n activeElement,\n activeIndex,\n handleItemMouseEnter,\n handleItemMouseLeave,\n handleKeyDown,\n mount,\n } = useMenuController({\n onKeyDown,\n originElement,\n shouldFocus,\n rootElementRef: ref,\n })\n\n const unregisterElementRef = useRef<(() => void) | null>(null)\n const handleRefChange = useCallback(\n (el: HTMLDivElement | null) => {\n // Run cleanup of previously registered elements\n if (unregisterElementRef.current) {\n // The `registerElement` callback were originally used in a `useEffect`, so it returns a cleanup function that is a bit gnarly to handle in a ref callback.\n // Since we can't change the `registerElement` implementation itself without making breaking change,\n // that is explained in the code comments for createGlobalScopedContext.tsx,\n // we need to handle with a ref that holds on to the cleanup function last returned when the ref callback is called.\n unregisterElementRef.current()\n unregisterElementRef.current = null\n }\n\n ref.current = el\n\n // Register root element (for nested menus)\n if (ref.current && registerElement) {\n unregisterElementRef.current = registerElement(ref.current)\n }\n },\n [registerElement],\n )\n\n // Trigger `onItemSelect` when active index changes\n useEffect(() => {\n if (onItemSelect) onItemSelect(activeIndex)\n }, [activeIndex, onItemSelect])\n\n // Close menu when clicking outside\n useClickOutsideEvent(isTopLayer && onClickOutside, () => [ref.current])\n\n // Close menu when pressing Escape\n useGlobalKeyDown(\n useCallback(\n (event) => {\n if (!isTopLayer) return\n\n if (event.key === 'Escape') {\n event.stopPropagation()\n if (onEscape) onEscape()\n }\n },\n [isTopLayer, onEscape],\n ),\n )\n\n const value: MenuContextValue = useMemo(\n () => ({\n version: 0.0,\n activeElement,\n activeIndex,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: handleItemMouseEnter,\n onItemMouseLeave: handleItemMouseLeave,\n registerElement,\n\n // deprecated\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n }),\n [\n activeElement,\n activeIndex,\n mount,\n handleItemMouseEnter,\n handleItemMouseLeave,\n onClickOutside,\n onEscape,\n onItemClick,\n registerElement,\n ],\n )\n\n return (\n <MenuContext.Provider value={value}>\n <Box\n data-ui=\"Menu\"\n {...rest}\n as={as}\n className={menu({className})}\n onKeyDown={handleKeyDown}\n overflow=\"auto\"\n outline=\"none\"\n padding={padding}\n ref={handleRefChange}\n role=\"menu\"\n tabIndex={-1}\n >\n <Stack gap={gap ?? space}>{children}</Stack>\n </Box>\n </MenuContext.Provider>\n )\n}\n","import {menuDivider} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @public */\nexport const DEFAULT_MENU_DIVIDER_ELEMENT = 'hr'\n\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type MenuDividerOwnProps = {}\n\n/** @public */\nexport type MenuDividerElementType = 'div' | 'hr' | 'span' | ComponentType\n\n/** @public */\nexport type MenuDividerProps<E extends MenuDividerElementType = MenuDividerElementType> = Props<\n MenuDividerOwnProps,\n E\n>\n\n/** @public */\nexport function MenuDivider<E extends MenuDividerElementType = typeof DEFAULT_MENU_DIVIDER_ELEMENT>(\n props: MenuDividerProps<E>,\n) {\n const {\n as: Element = DEFAULT_MENU_DIVIDER_ELEMENT,\n className,\n ...rest\n } = props as MenuDividerProps<typeof DEFAULT_MENU_DIVIDER_ELEMENT>\n\n return <Element {...rest} className={menuDivider({className})} />\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {MenuContext, type MenuContextValue} from './menuContext'\n\nexport function useMenu(): MenuContextValue {\n const value = useContext(MenuContext)\n\n if (!value) {\n throw new Error('useMenu(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useMenu(): the context value is not compatible')\n }\n\n return value\n}\n","import {ChevronRightIcon} from '@sanity/icons'\nimport type {RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport type {FontTextSize, Space, ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {\n type ElementType,\n isValidElement,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box} from '../../primitives/box/box'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Popover, type PopoverProps} from '../../primitives/popover/popover'\nimport {Selectable} from '../../primitives/selectable/selectable'\nimport {Text} from '../../primitives/text/text'\nimport type {ComponentType, Props} from '../../types/props'\nimport {DEFAULT_MENU_ELEMENT, Menu, type MenuProps} from './menu'\nimport {useMenu} from './useMenu'\n\n/** @public */\nexport const DEFAULT_MENU_GROUP_ELEMENT = 'button'\n\n/** @public */\nexport type MenuGroupOwnProps = RadiusStyleProps & {\n disabled?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n gap?: ResponsiveProp<Space>\n icon?: ElementType | ReactNode\n menu?: Omit<\n MenuProps<typeof DEFAULT_MENU_ELEMENT>,\n | 'onClickOutside'\n | 'onEscape'\n | 'onItemClick'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'registerElement'\n | 'shouldFocus'\n | 'onBlurCapture'\n >\n padding?: ResponsiveProp<Space>\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n text?: ReactNode\n tone?: ThemeColorStateToneKey\n}\n\n/** @public */\nexport type MenuGroupElementType = 'button' | ComponentType\n\n/** @public */\nexport type MenuGroupProps<E extends MenuGroupElementType = MenuGroupElementType> = Props<\n MenuGroupOwnProps,\n E\n>\n\n/** @public */\nexport function MenuGroup<E extends MenuGroupElementType = typeof DEFAULT_MENU_GROUP_ELEMENT>(\n props: MenuGroupProps<E>,\n) {\n const {\n as = DEFAULT_MENU_GROUP_ELEMENT,\n children,\n fontSize = 1,\n gap,\n icon: IconComponent,\n menu: menuProps,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n space = 3,\n text,\n tone = 'default',\n ...rest\n } = props as MenuGroupProps<typeof DEFAULT_MENU_GROUP_ELEMENT>\n\n const menu = useMenu()\n\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n registerElement,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const [rootElement, setRootElement] = useState<HTMLButtonElement | HTMLDivElement | null>(null)\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const [withinMenu, setWithinMenu] = useState(false)\n\n const handleMouseEnter = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n setWithinMenu(false)\n onItemMouseEnter(event)\n setOpen(true)\n },\n [onItemMouseEnter],\n )\n\n const handleMenuKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.stopPropagation()\n\n setOpen(false)\n\n requestAnimationFrame(() => {\n rootElement?.focus()\n })\n }\n },\n [rootElement],\n )\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n onClick?.(event)\n\n setShouldFocus('first')\n setOpen(true)\n },\n [onClick],\n )\n\n const handleChildItemClick = useCallback(() => {\n setOpen(false)\n onItemClick?.()\n }, [onItemClick])\n\n const handleMenuMouseEnter = useCallback(() => setWithinMenu(true), [])\n\n // Register the menu item element\n useEffect(() => mount(rootElement), [mount, rootElement])\n\n // Close child menu when a sibling item becomes active\n useEffect(() => {\n if (!active) setOpen(false)\n }, [active])\n\n // Update state when child menu is no longer open\n useEffect(() => {\n if (!open) setWithinMenu(false)\n }, [open])\n\n // Reset the shouldFocus state after it has been used\n useEffect(() => {\n if (!shouldFocus) return\n // The useMenuController effect that handles `shouldFocus` schedules a request animation frame where it's processed.\n // By doing the same here, we ensure that the reset is processed after the focus change.\n const rafId = requestAnimationFrame(() => setShouldFocus(null))\n\n return () => cancelAnimationFrame(rafId)\n }, [shouldFocus])\n\n const childMenu = (\n <Menu\n {...menuProps}\n onClickOutside={onClickOutside}\n onEscape={onEscape}\n onItemClick={handleChildItemClick}\n onKeyDown={handleMenuKeyDown}\n onMouseEnter={handleMenuMouseEnter}\n registerElement={registerElement}\n shouldFocus={shouldFocus}\n >\n {children}\n </Menu>\n )\n\n const handleKeyDown = useCallback((event: KeyboardEvent<HTMLButtonElement>) => {\n const target = event.currentTarget\n\n if (document.activeElement !== target) {\n return\n }\n\n if (event.key === 'ArrowRight') {\n setShouldFocus('first')\n setOpen(true)\n setWithinMenu(true)\n\n return\n }\n }, [])\n\n return (\n <Popover {...popover} content={childMenu} data-ui=\"MenuGroup__popover\" open={open}>\n <Selectable\n // data-as={as}\n data-ui=\"MenuGroup\"\n // forwardedAs={as}\n {...rest}\n aria-pressed={as === 'button' ? withinMenu : undefined}\n as={as}\n // data-pressed={as !== 'button' ? withinMenu : undefined}\n // data-selected={!withinMenu && active ? '' : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseEnter={handleMouseEnter}\n radius={radius}\n ref={setRootElement}\n selected={withinMenu}\n tabIndex={-1}\n tone={tone}\n type={as === 'button' ? 'button' : undefined}\n >\n <Flex gap={gap ?? space} padding={padding}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n\n <Text size={fontSize}>\n <ChevronRightIcon />\n </Text>\n </Flex>\n </Selectable>\n </Popover>\n )\n}\n","import type {\n GapStyleProps,\n PaddingStyleProps,\n RadiusStyleProps,\n ResponsiveProp,\n} from '@sanity/ui/css'\nimport type {FontTextSize, Space, ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {\n type ElementType,\n isValidElement,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {isValidElementType} from 'react-is'\n\nimport {Box} from '../../primitives/box/box'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Selectable} from '../../primitives/selectable/selectable'\nimport {Text} from '../../primitives/text/text'\nimport type {ComponentType, Props} from '../../types/props'\nimport {Hotkeys} from '../hotkeys/hotkeys'\nimport {useMenu} from './useMenu'\n\n/** @public */\nexport const DEFAULT_MENU_ITEM_ELEMENT = 'button'\n\n/** @public */\nexport type MenuItemOwnProps = GapStyleProps &\n PaddingStyleProps &\n RadiusStyleProps & {\n disabled?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n hotkeys?: string[]\n icon?: ElementType | ReactNode\n iconRight?: ElementType | ReactNode\n pressed?: boolean\n selected?: boolean\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n text?: ReactNode\n tone?: ThemeColorStateToneKey\n }\n\n/** @public */\nexport type MenuItemElementType = 'button' | 'a' | ComponentType\n\n/** @public */\nexport type MenuItemProps<E extends MenuItemElementType = MenuItemElementType> = Omit<\n Props<MenuItemOwnProps, E>,\n 'role'\n>\n\n/** @public */\nexport function MenuItem<E extends MenuItemElementType = typeof DEFAULT_MENU_ITEM_ELEMENT>(\n props: MenuItemProps<E>,\n) {\n const {\n as = DEFAULT_MENU_ITEM_ELEMENT,\n children,\n disabled,\n fontSize = 1,\n gap,\n gapX,\n gapY,\n hotkeys,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClick,\n padding = 3,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pressed,\n radius = 2,\n ref: forwardedRef,\n selected: selectedProp,\n space = 3,\n text,\n tone = 'default',\n ...rest\n } = props as MenuItemProps<typeof DEFAULT_MENU_ITEM_ELEMENT>\n\n const menu = useMenu()\n const {\n activeElement,\n mount,\n onItemClick,\n onItemMouseEnter: _onItemMouseEnter,\n onItemMouseLeave: _onItemMouseLeave,\n } = menu\n const onItemMouseEnter = _onItemMouseEnter ?? menu.onMouseEnter\n const onItemMouseLeave = _onItemMouseLeave ?? menu.onMouseLeave\n const [rootElement, setRootElement] = useState<HTMLButtonElement | null>(null)\n const active = Boolean(activeElement) && activeElement === rootElement\n const ref = useRef<HTMLButtonElement | null>(null)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => mount(rootElement, selectedProp), [mount, rootElement, selectedProp])\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n if (disabled) return\n if (onClick) onClick(event)\n if (onItemClick) onItemClick()\n },\n [disabled, onClick, onItemClick],\n )\n\n const paddingProps = useMemo(\n () => ({\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingRight, paddingBottom, paddingLeft],\n )\n\n const setRef = useCallback((el: HTMLButtonElement | null) => {\n ref.current = el\n setRootElement(el)\n }, [])\n\n return (\n <Selectable\n data-ui=\"MenuItem\"\n {...rest}\n as={as}\n data-pressed={pressed ? '' : undefined}\n data-selected={active ? '' : undefined}\n data-disabled={disabled ? '' : undefined}\n radius={radius}\n disabled={disabled}\n onClick={handleClick}\n onMouseEnter={onItemMouseEnter}\n onMouseLeave={onItemMouseLeave}\n ref={setRef}\n role=\"menuitem\"\n tabIndex={-1}\n tone={tone}\n type={as === 'button' ? 'button' : undefined}\n >\n {(IconComponent || text || IconRightComponent) && (\n <Flex as=\"span\" gap={gap ?? space} gapX={gapX} gapY={gapY} align=\"center\" {...paddingProps}>\n {IconComponent && (\n <Text muted size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box flex={1}>\n <Text size={fontSize} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n </Box>\n )}\n\n {hotkeys && <Hotkeys keys={hotkeys} style={{marginTop: -4, marginBottom: -4}} />}\n\n {IconRightComponent && (\n <Text muted size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n )}\n\n {children && (\n <Box as=\"span\" {...paddingProps}>\n {children}\n </Box>\n )}\n </Selectable>\n )\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\nimport type {FontTextSize, Space, ThemeColorStateToneKey} from '@sanity/ui/theme'\nimport {\n type ElementType,\n type FocusEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {Button} from '../../primitives/button/button'\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @public */\nexport const DEFAULT_TAB_ELEMENT = 'button'\n\n/** @public */\nexport type TabOwnProps = {\n /**\n * The `id` of the corresponding `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n 'icon'?: ElementType | ReactNode\n 'focused'?: boolean\n 'fontSize'?: ResponsiveProp<FontTextSize>\n 'label'?: ReactNode\n 'padding'?: ResponsiveProp<Space>\n 'selected'?: boolean\n 'tone'?: ThemeColorStateToneKey\n}\n\n/** @public */\nexport type TabElementType = 'button' | ComponentType\n\n/** @public */\nexport type TabProps<E extends TabElementType = TabElementType> = Props<TabOwnProps, E>\n\n/** @public */\nexport function Tab<E extends TabElementType = typeof DEFAULT_TAB_ELEMENT>(props: TabProps<E>) {\n const {\n as = DEFAULT_TAB_ELEMENT,\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n ref: forwardedRef,\n selected,\n ...rest\n } = props as TabProps<typeof DEFAULT_TAB_ELEMENT>\n\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <Button\n data-ui=\"Tab\"\n {...rest}\n aria-selected={selected ? 'true' : 'false'}\n as={as}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n}\n","import {type ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n Children,\n cloneElement,\n type KeyboardEvent,\n type ReactElement,\n useCallback,\n useState,\n} from 'react'\n\nimport {Flex, type FlexOwnProps} from '../../primitives/flex/flex'\nimport type {ComponentType, Props} from '../../types/props'\nimport type {TabProps} from './tab'\n\n/** @public */\nexport const DEFAULT_TAB_LIST_ELEMENT = 'div'\n\n/** @public */\nexport type TabListChild = ReactElement<Props<TabProps, 'button'>> | null | undefined | false\n\n/** @public */\nexport type TabListOwnProps = Omit<FlexOwnProps, 'as' | 'height'> & {\n children: TabListChild[]\n /** @deprecated Use `gap` instead */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type TabListElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TabListProps<E extends TabListElementType = TabListElementType> = Props<\n TabListOwnProps,\n E\n>\n\n/** @public */\nexport function TabList<E extends TabListElementType = typeof DEFAULT_TAB_LIST_ELEMENT>(\n props: TabListProps<E>,\n) {\n const {\n as = DEFAULT_TAB_LIST_ELEMENT,\n children: childrenProp,\n gap = 1,\n space = 1,\n wrap = 'nowrap',\n ...rest\n } = props as TabListProps<typeof DEFAULT_TAB_LIST_ELEMENT>\n\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children = Children.toArray(childrenProp).filter(_isReactElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <Flex\n data-ui=\"TabList\"\n {...rest}\n as={as}\n gap={gap ?? space}\n onKeyDown={handleKeyDown}\n role=\"tablist\"\n wrap={wrap}\n >\n {tabs}\n </Flex>\n )\n}\n\nfunction _isReactElement(node: unknown): node is ReactElement<Props<TabProps, 'button'>> {\n return Boolean(node)\n}\n","import type {Props} from '../../types/props'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box/box'\n\n/** @public */\nexport const DEFAULT_GRID_ELEMENT = 'div'\n\n/** @public */\nexport type GridOwnProps = Omit<BoxOwnProps, 'display'>\n\n/** @public */\nexport type GridElementType = BoxElementType\n\n/** @public */\nexport type GridProps<E extends GridElementType = GridElementType> = Props<GridOwnProps, E>\n\n/**\n * The `Grid` component is for building 2-dimensional layers (based on CSS grid).\n *\n * @public\n */\nexport function Grid<E extends GridElementType = typeof DEFAULT_GRID_ELEMENT>(props: GridProps<E>) {\n const {\n as = DEFAULT_GRID_ELEMENT,\n children,\n ...rest\n } = props as GridProps<typeof DEFAULT_GRID_ELEMENT>\n\n return (\n <Box data-ui=\"Grid\" {...rest} as={as} display=\"grid\">\n {children}\n </Box>\n )\n}\n","import {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 {type ReactElement, type ReactNode, useMemo, useRef, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './portalContext'\nimport type {PortalContextValue} from './types'\n\n/** @public */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/** @public */\nexport function PortalProvider(props: PortalProviderProps): ReactElement {\n const {boundaryElement, children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nconst emptySubscribe = () => () => {}\n\n/**\n * This is a React hook to make sure that a record identity is the same on every render. Uses strict\n * equality comparison (eg by identity), and only goes one level deep.\n */\nfunction useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {\n const valueRef = useRef<ValueType>(value)\n\n if (!_isEqual(valueRef.current, value)) {\n valueRef.current = value\n }\n\n return valueRef.current\n}\n\nfunction _isEqual(objA: Comparable, objB: Comparable): boolean {\n if (!objA || !objB) {\n return objA === objB\n }\n\n const keysA = Object.keys(objA)\n const keysB = Object.keys(objB)\n\n if (keysA.length !== keysB.length) {\n return false\n }\n\n return keysA.every((key) => objA[key] === objB[key])\n}\n\ntype Comparable = Record<string | number | symbol, unknown> | undefined | null\n","import {type 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","/** @internal */\n// Based on https://github.com/radix-ui/primitives/blob/0bade6a704e5821b90a6da0f3d8cfa8a7711127d/packages/react/slot/src/Slot.tsx#L128-L150\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nexport function getElementRef(element: React.ReactElement) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element.props as {ref?: React.Ref<unknown>}).ref\n }\n\n // Not DEV\n return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import type {Placement} from '../../types/placement'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/context/tooltipDelayGroup',\n null,\n )\n","import {useContext} from 'react'\n\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {motion, type MotionStyle} from 'framer-motion'\nimport {type CSSProperties, type ForwardedRef, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport type {Placement} from '../../types/placement'\nimport {Arrow} from '../arrow/arrow'\nimport {Layer, type LayerOwnProps, type LayerProps} from '../layer/layer'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\n/* @internal */\nexport const DEFAULT_TOOLTIP_LAYER_ELEMENT = 'div'\n\n/* @internal */\nexport interface TooltipLayerOwnProps extends LayerOwnProps {\n animate?: boolean\n arrow: boolean\n arrowRef: ForwardedRef<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n placement?: Placement\n}\n\n/** @internal */\nexport type TooltipLayerProps = TooltipLayerOwnProps & LayerProps<'div'>\n\n/** @internal */\nexport function TooltipLayer(props: TooltipLayerProps) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n scheme,\n shadow,\n style,\n tone = 'inherit',\n ...rest\n } = props\n\n const rootStyle: MotionStyle = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n // @ts-expect-error - TODO: fix this\n <Layer\n data-ui=\"Tooltip__layer\"\n {...rest}\n as={motion.div}\n data-animate={animate ? '' : undefined}\n data-placement={placement}\n padding={padding}\n radius={radius}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n tone={tone}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </Layer>\n )\n}\n","import {\n arrow,\n autoUpdate,\n flip,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {type RadiusStyleProps, type ShadowStyleProps, tooltip} from '@sanity/ui/css'\nimport type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {AnimatePresence} from 'framer-motion'\nimport {\n cloneElement,\n type FocusEvent,\n type HTMLAttributes,\n type MouseEvent as ReactMouseEvent,\n type ReactElement,\n type ReactNode,\n type RefAttributes,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {origin} from '../../middleware/origin'\nimport type {Placement} from '../../types/placement'\nimport type {ComponentType, Props} from '../../types/props'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {Portal} from '../../utils/portal/portal'\nimport {usePortal} from '../../utils/portal/usePortal'\nimport {CardProvider} from '../card/cardProvider'\nimport {useCard} from '../card/useCard'\nimport type {LayerOwnProps} from '../layer/layer'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup'\nimport {TooltipLayer} from './tooltipLayer'\n\n/** @public */\nexport const DEFAULT_TOOLTIP_ELEMENT = 'div'\n\n/** @public */\nexport type TooltipOwnProps = LayerOwnProps &\n RadiusStyleProps &\n ShadowStyleProps & {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: Placement[]\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: ReactElement<HTMLAttributes<HTMLElement> & RefAttributes<HTMLElement>>\n content?: ReactNode\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n disabled?: boolean\n fallbackPlacements?: Placement[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n }\n\n/** @public */\nexport type TooltipElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TooltipProps<E extends TooltipElementType = TooltipElementType> = Props<\n TooltipOwnProps,\n E\n>\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport function Tooltip<E extends TooltipElementType = typeof DEFAULT_TOOLTIP_ELEMENT>(\n props: TooltipProps<E>,\n) {\n const boundaryElementContext = useBoundaryElement()\n\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n as = DEFAULT_TOOLTIP_ELEMENT,\n boundaryElement = boundaryElementContext?.element,\n children: childProp,\n className,\n content,\n delay,\n disabled,\n fallbackPlacements = props.fallbackPlacements ??\n DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom'],\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 3,\n ref: forwardedRef,\n scheme,\n shadow = 2,\n zOffset = Z_OFFSETS.tooltip,\n tone = 'inherit',\n ...rest\n } = props as TooltipProps<typeof DEFAULT_TOOLTIP_ELEMENT>\n\n const card = useCard()\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, boundaryElement, fallbackPlacements])\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: {reference: referenceElement},\n transform: false,\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n setIsGroupActive?.(open, groupedOpenDelay)\n setOpenTooltipId?.(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n setIsGroupActive?.(open, groupDeactivateDelay)\n setOpenTooltipId?.(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [\n isInsideGroup,\n openDelay,\n setIsGroupActive,\n setOpenTooltipId,\n tooltipId,\n closeDelay,\n setIsOpen,\n ],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent<HTMLElement>) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent<HTMLElement>) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: ReactMouseEvent<HTMLElement>) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip, isInsideGroup})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReferenceElement,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [\n referenceElement,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const node = (\n <TooltipLayer\n data-ui=\"Tooltip\"\n {...rest}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n as={as}\n className={tooltip({className})}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n tone={tone}\n zOffset={zOffset}\n >\n {content}\n </TooltipLayer>\n )\n\n const children =\n showTooltip &&\n (portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n <CardProvider\n tone={tone === 'inherit' ? (card?.tone ?? 'default') : tone}\n scheme={scheme ?? 'light'}\n >\n {node}\n </CardProvider>\n </Portal>\n ) : (\n node\n ))\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n}\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n isInsideGroup,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n isInsideGroup: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip || isInsideGroup) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [isInsideGroup, showTooltip])\n}\n"],"names":["getGlobalScope","globalThis","window","self","global","Error","globalScope","createGlobalScopedContext","key","defaultValue","symbol","Symbol","for","document","createContext","CardContext","CardProvider","props","$","_c","children","tone","scheme","unstable_CompatProvider","t0","t1","t2","jsx","ThemeContext","ThemeProvider","parentTheme","useContext","rootTheme","theme","bb0","version","themeContext","bb1","getScopedTheme","StyledThemeProvider","t3","t4","ThemeColorProvider","useRootTheme","value","root","useTheme","useStyledTheme","useTheme_v2","getTheme_v2","EMPTY_ARRAY","EMPTY_RECORD","POPOVER_MOTION_PROPS","card","initial","scale","willChange","hidden","opacity","visible","transition","when","duration","POPOVER_MOTION_DURATION","scaleIn","scaleOut","type","visualDuration","bounce","Z_OFFSETS","dialog","popover","tooltip","_isEnterToClickElement","element","isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","node","Node","nodeType","ELEMENT_NODE","nodeName","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","containsOrEqualsElement","contains","isArray","val","Array","isRecord","Boolean","_getArrayProp","defaultVal","undefined","_getResponsiveProp","useResponsiveProp","JSON","stringify","setCache","useState","cachedVal","cachedHash","hash","DEFAULT_BOX_ELEMENT","Box","alignItems","autoCols","autoFlow","autoRows","borderBottom","borderLeft","borderRight","borderTop","className","column","columnEnd","columnStart","columns","flex","flexDirection","flexWrap","gap","gapX","gapY","gridAutoColumns","gridAutoFlow","gridAutoRows","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","gridTemplateColumns","gridTemplateRows","height","inset","insetBottom","insetLeft","insetRight","insetTop","justifyContent","marginBottom","marginLeft","marginRight","marginTop","marginX","marginY","maxWidth","muted","outline","overflow","overflowX","overflowY","paddingBottom","paddingLeft","paddingRight","paddingTop","paddingX","paddingY","pointerEvents","position","radius","rest","row","rowEnd","rowStart","rows","shadow","t5","t6","t7","t8","textAlign","width","as","border","display","margin","minHeight","minWidth","padding","sizing","Element","t9","box","t10","DEFAULT_TEXT_ELEMENT","Text","accent","align","textOverflowProp","size","textOverflow","weight","text","AnimatedSpinnerIcon","animatedSpinnerIcon","SpinnerIcon","DEFAULT_SPINNER_ELEMENT","Spinner","spinner","DEFAULT_BUTTON_ELEMENT","Button","disabled","fontSize","space","icon","IconComponent","iconRight","IconRightComponent","justify","loading","mode","selected","textWeight","href","jsxs","button","buttonLoadingBox","isValidElement","isValidElementType","useMatchMedia","mediaQueryString","getServerSnapshot","useDebugValue","onStoreChange","media","matchMedia","addEventListener","removeEventListener","matches","useSyncExternalStore","usePrefersReducedMotion","_temp","origin","name","fn","middlewareData","placement","rects","side","split","floatingWidth","floating","floatingHeight","shiftX","shift","x","shiftY","y","isVerticalPlacement","includes","originX","originY","clamp","data","num","min","max","Math","BoundaryElementContext","DEFAULT_VALUE","useBoundaryElement","useCard","elementKey","defaultContextValue","boundaryElement","createElement","setAttribute","body","appendChild","PortalContext","usePortal","Portal","__unstable_name","portal","portalElement","elements","createPortal","getLayerContext","contextValue","LayerContext","useLayer","err","message","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","options","apply","margins","args","platform","reference","detectOverflow","altBoundary","boundary","elementContext","rootBoundary","Infinity","maxHeight","floatingW","floatingH","left","right","top","bottom","availableWidth","availableHeight","referenceWidth","nextDimensions","getDimensions","targetH","targetW","reset","moveTowardsLength","movingPoint","targetPoint","amount","distance","sqrt","moveTowardsFractional","fraction","getRoundedCommands","points","len","length","cmds","i","point","prevPoint","nextPoint","curveStart","curveEnd","startControl","endControl","push","compileCommands","map","n","idx","join","DEFAULT_ARROW_ELEMENT","Arrow","h","style","w","center","path","strokePath","fillPath","_arrow","assignInlineVars","vars","arrow","_arrowSvg","_arrowStrokeMask","t11","t12","_arrowStroke","t13","t14","_arrowShape","t15","t16","t17","DEFAULT_FLEX_ELEMENT","Flex","wrap","direction","DEFAULT_CARD_ELEMENT","Card","pressed","schemeProp","__unstable_checkered","__unstable_focusRing","checkered","focusRing","toneProp","parent","CompatProvider","t18","t19","t20","DEFAULT_LAYER_CARD_ELEMENT","LayerCard","forwardedRef","onActivate","onFocus","ref","zIndex","isTopLayer","lastFocusedRef","useRef","isTopLayerRef","current","useImperativeHandle","activeElement","useEffect","event","rootElement","target","handleFocus","Object","values","BREAKPOINTS","_getMediaQuery","index","_createMediaStore","mediaLen","sizes","getSizes","mediaQuery","mq","getSnapshot","subscribe","disposeFns","handleChange","disposeFn","useMediaIndex","store","LayerProvider","zOffset","zOffsetProp","parentContextValue","parentRegisterChild","registerChild","level","maxMediaIndex","mediaIndex","setChildLayers","setSize","childLevel","parentDispose","state","prevLen","nextState","keys","state_0","nextState_0","_temp2","v_0","v","DEFAULT_LAYER_ELEMENT","Layer","PopoverLayer","animate","arrowRef","arrowX","arrowY","marginsProp","strategy","xProp","yProp","__unstable_margins","rootStyle","arrowStyle","popoverCard","motion","div","DEFAULT_POPOVER_ELEMENT","ViewportOverlay","Popover","boundaryElementContext","_animate","arrowProp","childProp","constrainSize","content","fallbackPlacements","matchReferenceWidth","floatingBoundary","modal","open","placementProp","preventOverflow","referenceBoundary","referenceElement","widthProp","updateRef","referenceWidthRef","middleware","useMemo","ret","flip","offset","mainAxis","hide","refs","update","useFloating","whileElementsMounted","autoUpdate","referenceHidden","setArrow","useCallback","arrowEl","setFloating","setReference","childRef","getElementRef","child","cloneElement","Fragment","popoverCss","AnimatePresence","getter","getOwnPropertyDescriptor","get","mayWarn","isReactWarning","DEFAULT_SELECTABLE_ELEMENT","Selectable","_selectable","DEFAULT_STACK_ELEMENT","Stack","stack","useCustomValidity","customValidity","setCustomValidity","DEFAULT_TEXT_INPUT_ELEMENT","TextInput","__unstable_disableFocusRing","clearButton","onClear","prefix","readOnly","suffix","t21","t22","t23","t24","t25","t26","t27","t28","_width","t29","t30","responsivePadding","withClearButton","handleClearMouseDown","event_0","preventDefault","stopPropagation","focus","handleClearClick","fromEntries","entries","clearButtonBoxPadding","_temp3","clearButtonPadding","clearButtonProps","textInput","textInputPrefix","textInputElement","_inputElement","_inputPresentation","t31","t32","t33","CloseIcon","t34","t35","textInputSuffix","t36","key_0","value_0","useClickOutsideEvent","listener","elementsArg","evt","resolvedBoundaryElement","flat","el","onEvent","useEffectEvent","hasListener","handleEvent","evt_0","useGlobalKeyDown","onKeyDown","handleKeyDown","handler","DEFAULT_KBD_ELEMENT","KBD","kbd","DEFAULT_HOTKEYS_ELEMENT","Hotkeys","MenuContext","_isFocusable","getAttribute","_getFocusableElements","filter","_getDOMPath","e","parentElement","from","childNodes","indexOf","unshift","EMPTY_PATH","_sortElements","WeakMap","set","_sort","a","b","_a","_b","aIndex","bIndex","sort","useMenuController","originElement","shouldFocus","rootElementRef","elementsRef","activeIndex","_setActiveIndex","activeIndexRef","mounted","setActiveIndex","nextActiveIndex","mount","selectedIndex","splice","currentIndex","focusableElements","focusableLen","focusedElement","focusedIndex","handleItemMouseEnter","currentTarget","handleItemMouseLeave","rafId","requestAnimationFrame","cancelAnimationFrame","DEFAULT_MENU_ELEMENT","Menu","_shouldFocus","onClickOutside","onEscape","onItemClick","onItemSelect","registerElement","focusFirst","focusLast","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","onMouseEnter","onMouseLeave","menu","DEFAULT_MENU_DIVIDER_ELEMENT","MenuDivider","menuDivider","useMenu","DEFAULT_MENU_GROUP_ELEMENT","MenuGroup","menuProps","onClick","_onItemMouseEnter","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMouseEnter","handleMenuKeyDown","event_1","handleClick","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","ChevronRightIcon","DEFAULT_MENU_ITEM_ELEMENT","MenuItem","hotkeys","selectedProp","_onItemMouseLeave","paddingProps","setRef","DEFAULT_TAB_ELEMENT","Tab","focused","id","label","focusedRef","handleBlur","DEFAULT_TAB_LIST_ELEMENT","TabList","childrenProp","setFocusedIndex","Children","toArray","_isReactElement","childIndex","tabs","numTabs","prevIndex","prevIndex_0","DEFAULT_GRID_ELEMENT","Grid","usePrefersDark","PortalProvider","__unstable_elements","elementsProp","useUnique","fallbackElement","emptySubscribe","valueRef","_isEqual","objA","objB","keysA","keysB","every","useDelayedState","initialState","setState","delayedAction","delay","action","clearTimeout","setTimeout","onStateChange","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipDelayGroupContext","useTooltipDelayGroup","TooltipLayer","DEFAULT_TOOLTIP_ELEMENT","Tooltip","portalProp","setReferenceElement","tooltipMaxWidth","setTooltipMaxWidth","floatingStyles","transform","tooltipId","useId","isOpen","setIsOpen","delayGroupContext","setIsGroupActive","setOpenTooltipId","showTooltip","openTooltipId","isInsideGroup","openDelayProp","closeDelayProp","close","openDelay","closeDelay","handleIsOpenChange","immediate","groupedOpenDelay","groupDeactivateDelay","minimumGroupDeactivateDelay","onBlur","handleContextMenu","onContextMenu","handleMouseLeave","handleWindowKeyDown","useLayoutEffect","availableWidths","offsetWidth","useCloseOnMouseLeave","teardown","onMouseMove","handleMouseMove"],"mappings":"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"}
|