@sanity/ui 3.0.0-static.3 → 3.0.0-static.31
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 +2357 -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 +2370 -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 +2472 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3212 -0
- package/dist/index.d.ts +1336 -993
- package/dist/index.js +1616 -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 +81 -93
- package/src/core/__DEV__.ts +5 -0
- 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 +73 -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 +233 -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 +128 -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 +102 -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/createGlobalScopedContext.ts +37 -0
- package/src/core/lib/globalScope.ts +19 -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 +109 -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 +428 -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 +94 -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 +29 -0
- package/src/core/types/radius.ts +7 -0
- package/src/core/utils/boundaryElement/boundaryElement.test.tsx +101 -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 +29 -0
- package/src/core/utils/portal/__workshop__/named.tsx +63 -0
- package/src/core/utils/portal/portal.test.tsx +104 -0
- package/src/core/utils/portal/portal.tsx +40 -0
- package/src/core/utils/portal/portalContext.ts +34 -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 +287 -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/css.ts +2 -0
- 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/merge.ts +28 -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/merge.ts +2 -0
- 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/merge.ts +0 -26
- 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/global.ts +0 -6
- 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/lib/createGlobalScopedContext.ts +0 -34
- package/src/ui/lib/globalScope.ts +0 -19
- 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/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/{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/{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/utils/getElementRef.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/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()\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 // Use the global scope as a map of symbols to contexts\n const symbolMap = globalScope as Record<symbol, Context<ContextType>>\n\n symbolMap[symbol] = symbolMap[symbol] || createContext<T>(defaultValue)\n\n return symbolMap[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","/* eslint-disable @typescript-eslint/no-explicit-any */\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 {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\n// Use the global scope as a map of symbols to elements\nconst elementMap = globalScope as Record<symbol, HTMLDivElement | null>\n\nelementMap[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 (elementMap[elementKey]) {\n return elementMap[elementKey]\n }\n\n elementMap[elementKey] = document.createElement('div')\n elementMap[elementKey].setAttribute('data-portal', '')\n\n document.body.appendChild(elementMap[elementKey])\n\n return elementMap[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 {getElementRef} from '../../utils/getElementRef'\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 if (!childProp) return\n\n const childRef = getElementRef(childProp)\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","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","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","symbolMap","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","getElementRef","getter","Object","getOwnPropertyDescriptor","get","mayWarn","isReactWarning","ref","useCard","elementKey","elementMap","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","zIndex","isTopLayer","lastFocusedRef","useRef","isTopLayerRef","current","useImperativeHandle","activeElement","useEffect","event","rootElement","target","handleFocus","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","child","cloneElement","Fragment","popoverCss","AnimatePresence","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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"}
|