@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.js","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","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","DEFAULT_SPINNER_ELEMENT","Spinner","spinner","DEFAULT_BUTTON_ELEMENT","Button","disabled","fontSize","space","icon","IconComponent","iconRight","IconRightComponent","justify","loading","mode","selected","textWeight","href","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","popoverCss","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","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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"}
|