@sanity/ui 3.0.0-static.4 → 3.0.0-static.41
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 +2250 -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 +2261 -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 +28 -0
- package/dist/_visual-editing.cjs.map +1 -0
- package/dist/_visual-editing.d.cts +853 -0
- package/dist/_visual-editing.d.ts +503 -458
- package/dist/_visual-editing.js +27 -30
- package/dist/_visual-editing.js.map +1 -1
- package/dist/css/index.cjs +957 -0
- package/dist/css/index.cjs.map +1 -0
- package/dist/css/index.css +1 -0
- package/dist/css/index.d.cts +1352 -0
- package/dist/css/index.d.ts +1352 -0
- package/dist/css/index.js +959 -0
- package/dist/css/index.js.map +1 -0
- package/dist/index.cjs +2348 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +2512 -0
- package/dist/index.d.ts +1320 -1677
- package/dist/index.js +1576 -766
- package/dist/index.js.map +1 -1
- package/dist/theme.cjs +870 -0
- package/dist/theme.cjs.map +1 -0
- package/dist/theme.d.cts +499 -0
- package/dist/theme.d.ts +301 -1643
- package/dist/theme.js +487 -2555
- package/dist/theme.js.map +1 -1
- package/exports/_visual-editing.ts +24 -27
- package/exports/index.ts +1 -1
- package/package.json +79 -92
- package/src/core/Root.tsx +88 -0
- package/src/core/RootProvider.tsx +40 -0
- package/src/core/__workshop__/boundary.tsx +28 -0
- package/src/core/__workshop__/index.ts +16 -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 +41 -0
- package/src/core/components/autocomplete/__workshop__/mock/apiStore.ts +49 -0
- package/src/core/components/autocomplete/__workshop__/mock/countries.ts +245 -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/__workshop__/index.ts +16 -0
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +131 -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__/index.ts +21 -0
- package/src/core/components/dialog/__workshop__/layering.tsx +41 -0
- package/src/core/components/dialog/__workshop__/nested.tsx +71 -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__/provider.tsx +11 -0
- package/src/core/components/dialog/__workshop__/wrapped.tsx +76 -0
- package/src/core/components/dialog/dialog.tsx +232 -0
- package/src/core/components/dialog/dialogCard.tsx +233 -0
- package/src/core/components/dialog/dialogContext.ts +21 -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/__workshop__/index.ts +16 -0
- package/src/core/components/hotkeys/__workshop__/plain.tsx +9 -0
- package/src/core/components/hotkeys/hotkeys.tsx +60 -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__/index.ts +91 -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 +129 -0
- package/src/core/components/menu/menu.tsx +179 -0
- package/src/core/components/menu/menuButton.tsx +225 -0
- package/src/core/components/menu/menuContext.ts +19 -0
- package/src/core/components/menu/menuDivider.tsx +32 -0
- package/src/core/components/menu/menuGroup.tsx +233 -0
- package/src/core/components/menu/menuItem.tsx +183 -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/__workshop__/index.ts +16 -0
- package/src/core/components/tab/tab.tsx +109 -0
- package/src/core/components/tab/tabList.tsx +90 -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__/index.ts +21 -0
- package/src/core/components/toast/__workshop__/toast.tsx +26 -0
- package/src/core/components/toast/toast.test.tsx +103 -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__/index.ts +23 -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 +248 -0
- package/src/core/components/tree/treeContext.ts +10 -0
- package/src/core/components/tree/treeGroup.tsx +46 -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__/changingProps.tsx +36 -0
- package/src/core/components/virtualList/__workshop__/elementScroll.tsx +24 -0
- package/src/core/components/virtualList/__workshop__/index.ts +31 -0
- package/src/core/components/virtualList/__workshop__/infiniteList.tsx +48 -0
- package/src/core/components/virtualList/__workshop__/windowScrolll.tsx +22 -0
- package/src/core/components/virtualList/virtualList.tsx +209 -0
- package/src/core/constants.ts +67 -0
- package/src/core/helpers/focus.ts +92 -0
- package/src/core/helpers/props.ts +28 -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/useElementSize.ts +19 -0
- package/src/core/hooks/useMediaIndex/__workshop__/index.ts +16 -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 +107 -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 +115 -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__/index.ts +31 -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 +147 -0
- package/src/core/primitives/avatar/avatarCounter.tsx +69 -0
- package/src/core/primitives/avatar/avatarStack.tsx +79 -0
- package/src/core/primitives/avatar/types.ts +2 -0
- package/src/core/primitives/badge/__workshop__/index.ts +21 -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 +16 -0
- package/src/core/primitives/badge/badge.tsx +61 -0
- package/src/core/primitives/box/__workshop__/index.ts +21 -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 +215 -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 +66 -0
- package/src/core/primitives/button/__workshop__/mixedChildren.tsx +12 -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__/styled1.tsx +17 -0
- package/src/core/primitives/button/__workshop__/styled2.tsx +19 -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 +30 -0
- package/src/core/primitives/button/button.tsx +193 -0
- package/src/core/primitives/button/types.ts +2 -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 +20 -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__/styled.tsx +14 -0
- package/src/core/primitives/card/__workshop__/tones.tsx +27 -0
- package/src/core/primitives/card/card.tsx +109 -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 +17 -0
- package/src/core/primitives/card/useCard.ts +15 -0
- package/src/core/primitives/checkbox/__workshop__/example.tsx +25 -0
- package/src/core/primitives/checkbox/__workshop__/index.ts +15 -0
- package/src/core/primitives/checkbox/__workshop__/props.tsx +35 -0
- package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +16 -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__/index.ts +21 -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 +48 -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/__workshop__/index.ts +10 -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/__workshop__/gap.tsx +25 -0
- package/src/core/primitives/flex/__workshop__/index.ts +13 -0
- package/src/core/primitives/flex/flex.tsx +58 -0
- package/src/core/primitives/grid/__workshop__/index.ts +12 -0
- package/src/core/primitives/grid/__workshop__/responsive.tsx +54 -0
- package/src/core/primitives/grid/grid.tsx +35 -0
- package/src/core/primitives/heading/__workshop__/index.ts +21 -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 +78 -0
- package/src/core/primitives/inline/__workshop__/index.ts +10 -0
- package/src/core/primitives/inline/__workshop__/plain.tsx +24 -0
- package/src/core/primitives/inline/inline.tsx +62 -0
- package/src/core/primitives/kbd/__workshop__/index.ts +10 -0
- package/src/core/primitives/kbd/__workshop__/plain.tsx +9 -0
- package/src/core/primitives/kbd/kbd.tsx +57 -0
- package/src/core/primitives/label/__workshop__/index.ts +21 -0
- package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +54 -0
- package/src/core/primitives/label/__workshop__/plain.tsx +28 -0
- package/src/core/primitives/label/label.tsx +75 -0
- package/src/core/primitives/layer/__workshop__/_debug.tsx +17 -0
- package/src/core/primitives/layer/__workshop__/index.ts +26 -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 +110 -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 +106 -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__/MarginsStory.tsx +31 -0
- package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +32 -0
- package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +11 -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/__workshop__/index.ts +51 -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 +442 -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__/index.ts +13 -0
- package/src/core/primitives/radio/__workshop__/plain.tsx +28 -0
- package/src/core/primitives/radio/radio.tsx +64 -0
- package/src/core/primitives/select/__workshop__/index.ts +13 -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 +75 -0
- package/src/core/primitives/selectable/selectable.tsx +50 -0
- package/src/core/primitives/skeleton/__workshop__/delay.tsx +70 -0
- package/src/core/primitives/skeleton/__workshop__/index.ts +13 -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/__workshop__/index.ts +16 -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__/index.ts +16 -0
- package/src/core/primitives/stack/__workshop__/plain.tsx +32 -0
- package/src/core/primitives/stack/stack.tsx +60 -0
- package/src/core/primitives/switch/__workshop__/example.tsx +23 -0
- package/src/core/primitives/switch/__workshop__/index.ts +13 -0
- package/src/core/primitives/switch/__workshop__/props.tsx +21 -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__/index.ts +26 -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__/index.ts +16 -0
- package/src/core/primitives/textArea/__workshop__/plain.tsx +61 -0
- package/src/core/primitives/textArea/textArea.tsx +84 -0
- package/src/core/primitives/textInput/__workshop__/clearButton.tsx +30 -0
- package/src/core/primitives/textInput/__workshop__/customValidity.tsx +17 -0
- package/src/core/primitives/textInput/__workshop__/index.ts +46 -0
- package/src/core/primitives/textInput/__workshop__/plain.tsx +110 -0
- package/src/core/primitives/textInput/__workshop__/readOnly.tsx +9 -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 +258 -0
- package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +102 -0
- package/src/core/primitives/tooltip/__workshop__/index.ts +31 -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 +452 -0
- package/src/core/primitives/tooltip/tooltip.tsx +482 -0
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +13 -0
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +55 -0
- package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +13 -0
- package/src/core/primitives/tooltip/tooltipLayer.tsx +106 -0
- package/src/core/types.ts +56 -0
- package/src/core/utils/boundaryElement/__workshop__/index.ts +16 -0
- package/src/core/utils/boundaryElement/__workshop__/plain.tsx +19 -0
- package/src/core/utils/boundaryElement/boundaryElement.test.tsx +102 -0
- package/src/core/utils/boundaryElement/boundaryElementContext.ts +10 -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/__workshop__/index.ts +16 -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__/index.ts +16 -0
- package/src/core/utils/portal/__workshop__/named.tsx +63 -0
- package/src/core/utils/portal/portal.test.tsx +105 -0
- package/src/core/utils/portal/portal.tsx +36 -0
- package/src/core/utils/portal/portalContext.ts +37 -0
- package/src/core/utils/portal/portalProvider.tsx +70 -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 +98 -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 +128 -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 +7 -17
- 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/index.ts +142 -40
- package/src/css/layers.css.ts +12 -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/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 +9 -4
- package/src/css/primitives/box/box.css.ts +19 -0
- package/src/css/primitives/box/box.ts +63 -34
- 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 +18 -33
- 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 +16 -0
- package/src/css/primitives/card/card.css.ts +387 -0
- package/src/css/primitives/card/card.ts +9 -10
- package/src/css/primitives/card/types.ts +6 -8
- 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 +272 -0
- package/src/css/primitives/code/code.ts +15 -5
- package/src/css/primitives/code/types.ts +7 -6
- 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 +86 -0
- package/src/css/primitives/heading/heading.ts +16 -11
- package/src/css/primitives/heading/types.ts +9 -7
- 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 +87 -0
- package/src/css/primitives/label/label.ts +16 -10
- package/src/css/primitives/label/types.ts +9 -7
- 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 +19 -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/selectable/selectable.css.ts +131 -0
- package/src/css/primitives/selectable/selectable.ts +9 -0
- package/src/css/primitives/selectable/types.ts +9 -0
- package/src/css/primitives/spinner/spinner.css.ts +19 -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 +86 -0
- package/src/css/primitives/text/text.ts +18 -11
- package/src/css/primitives/text/types.ts +12 -5
- 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 +21 -0
- package/src/css/props/border/types.ts +13 -0
- package/src/css/props/boxSizing/boxSizing.css.ts +12 -0
- package/src/css/props/boxSizing/boxSizing.ts +7 -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 +8 -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 +94 -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 +9 -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 +9 -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 +9 -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 +9 -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 +9 -0
- package/src/css/props/gridColumnStart/gridColumnStart.css.ts +46 -0
- package/src/css/props/gridColumnStart/gridColumnStart.ts +8 -0
- package/src/css/props/gridColumnStart/types.ts +9 -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 +9 -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 +9 -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 +9 -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 +9 -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 +9 -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 +9 -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 +11 -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/theme/buildCSSTheme.ts +485 -0
- package/src/css/theme/defaultTheme.css.ts +64 -0
- package/src/css/types.ts +349 -766
- package/src/css/vars.css.ts +673 -0
- package/src/theme/_parseColorToken.ts +180 -0
- package/src/theme/buildTheme.ts +32 -0
- package/src/theme/constants.ts +90 -0
- package/src/theme/defaults/color.ts +197 -0
- package/src/theme/defaults/common.ts +71 -0
- package/src/theme/defaults/fonts.ts +38 -16
- package/src/theme/index.ts +4 -10
- package/src/theme/merge.ts +24 -0
- package/src/theme/resolveTokens.ts +204 -0
- package/src/theme/types.ts +355 -21
- package/bin/ui.js +0 -5
- package/dist/_chunks-cjs/_visual-editing.js +0 -3088
- 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 -3095
- 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 -2157
- package/dist/css.d.ts +0 -2157
- package/dist/css.js +0 -4746
- package/dist/css.js.map +0 -1
- package/dist/css.mjs +0 -4748
- package/dist/css.mjs.map +0 -1
- package/dist/index.d.mts +0 -2869
- package/dist/index.mjs +0 -1543
- package/dist/index.mjs.map +0 -1
- package/dist/sanity-palette.css +0 -1
- package/dist/sanity-theme.css +0 -1
- package/dist/system.css +0 -22813
- package/dist/theme.d.mts +0 -1841
- package/dist/theme.mjs +0 -2940
- 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 -11
- 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 -27
- 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 -392
- 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/_selectable/selectable.ts +0 -9
- package/src/css/primitives/_selectable/types.ts +0 -8
- 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 -179
- 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/util.ts +0 -27
- 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/index.ts +0 -1
- 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/index.ts +0 -2
- package/src/theme/build/colorToken/types.ts +0 -6
- package/src/theme/build/index.ts +0 -3
- package/src/theme/build/lib/color-fns/blend/index.ts +0 -3
- 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/index.ts +0 -6
- package/src/theme/build/lib/color-fns/parse.ts +0 -60
- package/src/theme/build/lib/color-fns/rgba.ts +0 -14
- package/src/theme/build/lib/color-fns/types.ts +0 -28
- package/src/theme/build/lib/utils.ts +0 -19
- 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/index.ts +0 -4
- package/src/theme/config/system.ts +0 -115
- package/src/theme/config/tokens/color/index.ts +0 -1
- 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/getScopedTheme.ts +0 -88
- package/src/theme/palette/constants.ts +0 -13
- package/src/theme/palette/index.ts +0 -2
- package/src/theme/palette/types.ts +0 -4
- package/src/theme/v0/avatar.ts +0 -10
- package/src/theme/v0/color/_generic.ts +0 -35
- package/src/theme/v0/color/_system.ts +0 -17
- package/src/theme/v0/color/base.ts +0 -21
- package/src/theme/v0/color/button.ts +0 -42
- package/src/theme/v0/color/card.ts +0 -19
- package/src/theme/v0/color/color.ts +0 -40
- package/src/theme/v0/color/index.ts +0 -11
- package/src/theme/v0/color/input.ts +0 -34
- package/src/theme/v0/color/muted.ts +0 -26
- package/src/theme/v0/color/selectable.ts +0 -31
- package/src/theme/v0/color/solid.ts +0 -26
- package/src/theme/v0/color/spot.ts +0 -13
- package/src/theme/v0/css.ts +0 -8
- package/src/theme/v0/focusRing.ts +0 -7
- package/src/theme/v0/font.ts +0 -53
- package/src/theme/v0/index.ts +0 -10
- package/src/theme/v0/input.ts +0 -23
- package/src/theme/v0/layer.ts +0 -8
- package/src/theme/v0/shadow.ts +0 -19
- package/src/theme/v0/styles.ts +0 -13
- package/src/theme/v0/theme.ts +0 -72
- package/src/theme/v2/avatar.ts +0 -14
- package/src/theme/v2/color/_constants.ts +0 -45
- package/src/theme/v2/color/_helpers.ts +0 -24
- package/src/theme/v2/color/_system.ts +0 -40
- package/src/theme/v2/color/avatar.ts +0 -15
- package/src/theme/v2/color/badge.ts +0 -16
- package/src/theme/v2/color/button.ts +0 -17
- package/src/theme/v2/color/color.ts +0 -34
- package/src/theme/v2/color/index.ts +0 -13
- package/src/theme/v2/color/input.ts +0 -25
- package/src/theme/v2/color/kbd.ts +0 -8
- package/src/theme/v2/color/selectable.ts +0 -12
- package/src/theme/v2/color/shadow.ts +0 -7
- package/src/theme/v2/color/state.ts +0 -43
- package/src/theme/v2/color/syntax.ts +0 -41
- package/src/theme/v2/index.ts +0 -4
- package/src/theme/v2/input.ts +0 -33
- package/src/theme/v2/theme.ts +0 -49
- package/src/theme/v3/buildTheme_v3.test.ts +0 -40
- package/src/theme/v3/buildTheme_v3.ts +0 -29
- package/src/theme/v3/color/buildColor_v3.ts +0 -193
- package/src/theme/v3/color/card.ts +0 -116
- package/src/theme/v3/color/color.ts +0 -94
- package/src/theme/v3/color/element.ts +0 -19
- package/src/theme/v3/color/index.ts +0 -7
- 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/color/token.ts +0 -17
- package/src/theme/v3/color/tokens.ts +0 -5
- package/src/theme/v3/defaults.ts +0 -186
- package/src/theme/v3/index.ts +0 -6
- package/src/theme/v3/merge.ts +0 -22
- package/src/theme/v3/resolveTokens.ts +0 -199
- package/src/theme/v3/tokens.ts +0 -16
- package/src/theme/v3/types.ts +0 -45
- package/src/theme/versioning/getTheme_v2.ts +0 -58
- package/src/theme/versioning/index.ts +0 -1
- package/src/theme/versioning/is_v0.ts +0 -7
- package/src/theme/versioning/is_v2.ts +0 -7
- package/src/theme/versioning/themeColor_v0_v2.ts +0 -245
- package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -49
- package/src/theme/versioning/themeColor_v3_v2.ts +0 -206
- package/src/theme/versioning/v0_v2.ts +0 -95
- package/src/theme/versioning/v2_v0.ts +0 -127
- package/src/theme/versioning/v3_v2.ts +0 -108
- 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/__mocks__/apiStore.ts +0 -49
- package/src/ui/components/autocomplete/__mocks__/countries.ts +0 -245
- 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/__workshop__/index.ts +0 -14
- 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__/index.ts +0 -19
- package/src/ui/components/dialog/__workshop__/layering.tsx +0 -41
- package/src/ui/components/dialog/__workshop__/nested.tsx +0 -72
- 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__/provider.tsx +0 -11
- 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/__workshop__/index.ts +0 -14
- package/src/ui/components/hotkeys/__workshop__/plain.tsx +0 -9
- 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__/index.ts +0 -89
- 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/__workshop__/index.ts +0 -14
- 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__/index.ts +0 -19
- 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__/index.ts +0 -21
- 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/__workshop__/index.ts +0 -14
- package/src/ui/hooks/useElementRect/index.ts +0 -1
- package/src/ui/hooks/useElementRect/useElementRect.ts +0 -13
- package/src/ui/hooks/useElementSize.ts +0 -19
- package/src/ui/hooks/useForwardedRef.ts +0 -19
- package/src/ui/hooks/useIsomorphicEffect.ts +0 -7
- package/src/ui/hooks/useMediaIndex/__workshop__/index.ts +0 -14
- 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/lib/isRecord.ts +0 -3
- 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__/index.ts +0 -29
- 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__/index.ts +0 -19
- 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__/index.ts +0 -19
- 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__/mixedChildren.tsx +0 -12
- 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__/styled1.tsx +0 -17
- package/src/ui/primitives/button/__workshop__/styled2.tsx +0 -19
- 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/__workshop__/styled.tsx +0 -14
- package/src/ui/primitives/card/card.tsx +0 -122
- 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__/example.tsx +0 -25
- package/src/ui/primitives/checkbox/__workshop__/index.ts +0 -13
- package/src/ui/primitives/checkbox/__workshop__/props.tsx +0 -33
- package/src/ui/primitives/checkbox/__workshop__/readOnly.tsx +0 -16
- 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__/index.ts +0 -19
- 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/__workshop__/index.ts +0 -8
- 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/__workshop__/gap.tsx +0 -25
- package/src/ui/primitives/flex/__workshop__/index.ts +0 -11
- package/src/ui/primitives/flex/flex.tsx +0 -29
- package/src/ui/primitives/flex/index.ts +0 -1
- package/src/ui/primitives/grid/__workshop__/index.ts +0 -10
- package/src/ui/primitives/grid/__workshop__/responsive.tsx +0 -54
- package/src/ui/primitives/grid/grid.tsx +0 -30
- package/src/ui/primitives/grid/index.ts +0 -1
- package/src/ui/primitives/heading/__workshop__/index.ts +0 -19
- 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__/index.ts +0 -8
- 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/__workshop__/index.ts +0 -8
- package/src/ui/primitives/kbd/__workshop__/plain.tsx +0 -9
- package/src/ui/primitives/kbd/index.ts +0 -1
- package/src/ui/primitives/kbd/kbd.tsx +0 -55
- package/src/ui/primitives/label/__workshop__/index.ts +0 -19
- package/src/ui/primitives/label/__workshop__/opticalAlignment.tsx +0 -54
- 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__/MarginsStory.tsx +0 -31
- package/src/ui/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
- package/src/ui/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
- 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/__workshop__/index.ts +0 -49
- 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__/index.ts +0 -11
- 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__/index.ts +0 -11
- 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/__workshop__/index.ts +0 -14
- 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__/index.ts +0 -14
- 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/__workshop__/example.tsx +0 -23
- package/src/ui/primitives/switch/__workshop__/index.ts +0 -11
- package/src/ui/primitives/switch/__workshop__/props.tsx +0 -21
- 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__/index.ts +0 -24
- 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__/index.ts +0 -14
- 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__/clearButton.tsx +0 -30
- package/src/ui/primitives/textInput/__workshop__/customValidity.tsx +0 -17
- package/src/ui/primitives/textInput/__workshop__/index.ts +0 -44
- package/src/ui/primitives/textInput/__workshop__/plain.tsx +0 -104
- package/src/ui/primitives/textInput/__workshop__/readOnly.tsx +0 -9
- 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__/index.ts +0 -29
- 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/box.ts +0 -22
- 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/grid.ts +0 -17
- package/src/ui/types/gridItem.ts +0 -32
- package/src/ui/types/index.ts +0 -15
- package/src/ui/types/placement.ts +0 -18
- 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/types/text.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/__workshop__/index.ts +0 -14
- package/src/ui/utils/boundaryElement/__workshop__/plain.tsx +0 -19
- 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/__workshop__/index.ts +0 -14
- 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__/_debug.tsx +0 -17
- 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__/index.ts +0 -14
- 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/spanWithTextOverflow.tsx +0 -10
- package/src/ui/utils/srOnly/index.ts +0 -1
- package/src/ui/utils/srOnly/srOnly.tsx +0 -35
- package/src/ui/utils/virtualList/__workshop__/changingProps.tsx +0 -36
- package/src/ui/utils/virtualList/__workshop__/elementScroll.tsx +0 -24
- 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/__workshop__/windowScrolll.tsx +0 -22
- package/src/ui/utils/virtualList/index.ts +0 -1
- package/src/ui/utils/virtualList/virtualList.tsx +0 -189
- /package/src/{ui → core}/components/autocomplete/__workshop__/types.ts +0 -0
- /package/src/{ui → core}/components/toast/toastState.ts +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/useGlobalKeyDown.ts +0 -0
- /package/src/{ui → core}/hooks/useMatchMedia.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/container/types.ts +0 -0
- /package/src/{ui/utils → core/primitives}/layer/types.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}/utils/elementQuery/helpers.ts +0 -0
- /package/src/css/{aspects → props}/pointerEvents/types.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_visual-editing.js","sources":["../../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/lib/globalScope.ts","../../src/core/lib/createGlobalScopedContext.ts","../../src/core/utils/boundaryElement/boundaryElementContext.ts","../../src/core/utils/boundaryElement/useBoundaryElement.ts","../../src/core/utils/getElementRef.ts","../../src/core/primitives/card/cardContext.ts","../../src/core/primitives/card/cardProvider.tsx","../../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/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","../../src/core/utils/portal/portalProvider.tsx"],"sourcesContent":["import type {Transition, Variant} from 'framer-motion'\n\nexport const EMPTY_ARRAY: never[] = []\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 */\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\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 {box, type BoxStyleProps} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_BOX_ELEMENT = 'div'\n\n/** @public */\nexport type BoxOwnProps = BoxStyleProps\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>(\n props: BoxProps<E>,\n): React.JSX.Element {\n const {\n alignItems,\n as: Element = DEFAULT_BOX_ELEMENT,\n // autoCols,\n // autoFlow,\n // autoRows,\n border = false,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n className,\n children,\n // column,\n // columnStart,\n // columnEnd,\n // columns,\n display = 'block',\n flex,\n flexDirection,\n flexWrap,\n gap,\n gapX,\n gapY,\n gridAutoColumns,\n gridAutoFlow,\n gridAutoRows,\n gridColumn,\n gridColumnEnd,\n gridColumnStart,\n gridRow,\n gridRowEnd,\n gridRowStart,\n gridTemplateColumns,\n gridTemplateRows,\n height,\n inset,\n insetBottom,\n insetLeft,\n insetRight,\n insetTop,\n justifyContent,\n margin = 0,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n minHeight = 0,\n minWidth = 0,\n muted,\n outline,\n overflow,\n overflowX,\n overflowY,\n padding = 0,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n radius,\n // row,\n // rows,\n // rowStart,\n // rowEnd,\n shadow,\n sizing = 'border',\n textAlign,\n width,\n ...rest\n } = props as BoxProps<typeof DEFAULT_BOX_ELEMENT>\n\n return (\n <Element\n data-ui=\"Box\"\n {...rest}\n className={box({\n className,\n alignItems,\n // autoCols,\n // autoFlow,\n // autoRows,\n border,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n // column,\n // columnStart,\n // columnEnd,\n // columns,\n display,\n flex,\n flexDirection,\n flexWrap,\n gap,\n gapX,\n gapY,\n gridAutoColumns,\n gridAutoFlow,\n gridAutoRows,\n gridColumn,\n gridColumnEnd,\n gridColumnStart,\n gridRow,\n gridRowEnd,\n gridRowStart,\n gridTemplateColumns,\n gridTemplateRows,\n height,\n inset,\n insetBottom,\n insetLeft,\n insetRight,\n insetTop,\n justifyContent,\n margin,\n marginX,\n marginY,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n maxWidth,\n minHeight,\n minWidth,\n muted,\n outline,\n overflow,\n overflowX,\n overflowY,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n pointerEvents,\n position,\n radius,\n // row,\n // rows,\n // rowStart,\n // rowEnd,\n shadow,\n sizing,\n textAlign,\n width,\n })}\n >\n {children}\n </Element>\n )\n}\n","import {text, textOverflow, type TextOverflowStyleProps, type TextStyleProps} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TEXT_ELEMENT = 'div'\n\n/** @public */\nexport type TextOwnProps = TextStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type TextElementType =\n | 'div'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'label'\n | 'li'\n | 'p'\n | 'span'\n | ComponentType\n\n/** @public */\nexport type TextProps<E extends TextElementType = TextElementType> = Props<TextOwnProps, E>\n\n/**\n * The `Text` component is an agile, themed typographic element.\n *\n * @public\n */\nexport function Text<E extends TextElementType = typeof DEFAULT_TEXT_ELEMENT>(\n props: TextProps<E>,\n): React.JSX.Element {\n const {\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 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 {SVGProps} from 'react'\n\n/** @internal */\nexport function AnimatedSpinnerIcon(\n props: Omit<SVGProps<SVGSVGElement>, 'className'>,\n): React.JSX.Element {\n const {...rest} = props\n\n return (\n <SpinnerIcon data-sanity-icon=\"animated-spinner\" {...rest} className={animatedSpinnerIcon()} />\n )\n}\n","import {type ResponsiveProp, spinner} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {ComponentType, Props} from '../../types'\nimport {Text} from '../text/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): React.JSX.Element {\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} 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'\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 '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): React.JSX.Element {\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.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 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","/**\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: typeof globalThis = 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/v3/${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 {BoundaryElementContextValue} from './types'\n\nexport const BoundaryElementContext: Context<BoundaryElementContextValue | null> =\n createGlobalScopedContext<BoundaryElementContextValue | null>(\n '@sanity/ui/v3/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): React.Ref<unknown> | undefined {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element as any).ref\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning\n\n if (mayWarn) {\n return (element.props as {ref?: React.Ref<unknown>}).ref\n }\n\n // Not DEV\n return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref\n}\n","import type {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/v3/card', null)\n","import type {CardTone, ColorScheme} 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: CardTone\n scheme: ColorScheme\n /** @internal */\n unstable_CompatProvider?: _CardCompatProviderComponent\n}): React.JSX.Element {\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 {useContext} from 'react'\n\nimport {CardContext} from './cardContext'\nimport type {CardContextValue} from './types'\n\n/** @public */\nexport function useCard(): CardContextValue {\n const card = useContext(CardContext)\n\n if (!card) {\n throw new Error('useCard(): missing context value')\n }\n\n return card\n}\n","import type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {globalScope} from '../../lib/globalScope'\nimport type {PortalContextValue} from './types'\n\nconst key = '@sanity/ui/v3/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: Context<PortalContextValue> =\n 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 tone=\"transparent\" scheme={card.scheme}>\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 type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {LayerContextValue} from './types'\n\nexport const LayerContext: Context<LayerContextValue | null> =\n createGlobalScopedContext<LayerContextValue | null>('@sanity/ui/v3/layer', null)\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'\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): React.JSX.Element {\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'\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>(\n props: FlexProps<E>,\n): React.JSX.Element {\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'\nimport {useContext} from 'react'\n\nimport type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box/box'\nimport {CardContext} from './cardContext'\nimport {CardProvider} from './cardProvider'\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>(\n props: CardProps<E>,\n): React.JSX.Element {\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 = useContext(CardContext)\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}>\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'\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): React.JSX.Element {\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\n let sizes: {mq: MediaQueryList; index: number}[] | undefined = undefined\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 (typeof window === 'undefined') {\n return sizes\n }\n\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 {type ReactNode, useCallback, useContext, useEffect, useMemo, useState} 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): React.JSX.Element {\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'\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): React.JSX.Element {\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'\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): React.JSX.Element {\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 autoPlacement,\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 {ComponentType, Placement, Props} from '../../types'\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 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 /**\n * When 'flip' (default), the placement is determined from the initial placement and the\n * fallback placements in order. Whichever fits in the viewport first.\n *\n * When 'autoPlacement', the initial placement and all fallback placements are evaluated\n * and the placement with the most viewport space available.\n *\n * Option is only relevant if either `constrainSize` or `preventOverflow` is `true`\n */\n placementStrategy?: 'flip' | 'autoPlacement'\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): React.JSX.Element {\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 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 = 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 placementStrategy = 'flip',\n portal,\n preventOverflow = true,\n radius = 3,\n ref: forwardedRef,\n referenceBoundary = 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 if (placementStrategy === 'autoPlacement') {\n ret.push(\n autoPlacement({\n allowedPlacements: [placementProp].concat(fallbackPlacements),\n }),\n )\n } else {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\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 placementProp,\n placementStrategy,\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 tone={tone === 'inherit' ? card.tone : tone} scheme={scheme ?? 'light'}>\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 {ElementTone} from '@sanity/ui/theme'\n\nimport type {ComponentType, Props} from '../../types'\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?: ElementTone\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): React.JSX.Element {\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 {stack} from '@sanity/ui/css'\n\nimport type {Props} from '../../types'\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\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): React.JSX.Element {\n const {\n as = DEFAULT_STACK_ELEMENT,\n className,\n gap,\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}\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 {FontWeight, Space} 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'\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 suffix?: ReactNode\n weight?: FontWeight\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): React.JSX.Element {\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 = 3,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding = 3,\n prefix,\n radius = 2,\n readOnly,\n ref: forwardedRef,\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,\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'\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>(\n props: KBDProps<E>,\n): React.JSX.Element {\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'\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 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): React.JSX.Element | undefined {\n const {\n as = DEFAULT_HOTKEYS_ELEMENT,\n fontSize,\n gap = 1,\n gapX,\n gapY,\n keys,\n padding,\n radius,\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 as={as} data-ui=\"Hotkeys\" {...rest} display=\"flex\" gap={gap} gapX={gapX} gapY={gapY}>\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 Context, 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\nexport const MenuContext: Context<MenuContextValue | null> =\n createGlobalScopedContext<MenuContextValue | null>('@sanity/ui/v3/menu', null)\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'\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 '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 'aria-labelledby'?: string\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>(\n props: MenuProps<E>,\n): React.JSX.Element {\n const {\n as = DEFAULT_MENU_ELEMENT,\n children,\n className,\n gap = 1,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemSelect,\n onKeyDown,\n originElement,\n padding = 1,\n ref: forwardedRef,\n registerElement,\n shouldFocus: _shouldFocus,\n ...rest\n } = props as MenuProps<typeof DEFAULT_MENU_ELEMENT>\n\n const shouldFocus = _shouldFocus ?? 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}>{children}</Stack>\n </Box>\n </MenuContext.Provider>\n )\n}\n","import {menuDivider} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_MENU_DIVIDER_ELEMENT = 'hr'\n\n/** @public */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport type MenuDividerOwnProps = {}\n\n/** @public */\nexport type MenuDividerElementType = 'div' | 'hr' | 'span' | ComponentType\n\n/** @public */\nexport type MenuDividerProps<E extends MenuDividerElementType = MenuDividerElementType> = Props<\n MenuDividerOwnProps,\n E\n>\n\n/** @public */\nexport function MenuDivider<E extends MenuDividerElementType = typeof DEFAULT_MENU_DIVIDER_ELEMENT>(\n props: MenuDividerProps<E>,\n): React.JSX.Element {\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 {ElementTone, FontTextSize, Space} 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'\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 text?: ReactNode\n tone?: ElementTone\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): React.JSX.Element {\n const {\n as = DEFAULT_MENU_GROUP_ELEMENT,\n children,\n fontSize = 1,\n gap = 3,\n icon: IconComponent,\n menu: menuProps,\n onClick,\n padding = 3,\n popover,\n radius = 2,\n text,\n tone = 'default',\n ...rest\n } = props as MenuGroupProps<typeof DEFAULT_MENU_GROUP_ELEMENT>\n\n const {\n activeElement,\n mount,\n onClickOutside,\n onEscape,\n onItemClick,\n onItemMouseEnter,\n registerElement,\n } = useMenu()\n\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} 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 {ElementTone, FontTextSize} 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'\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 text?: ReactNode\n tone?: ElementTone\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): React.JSX.Element {\n const {\n as = DEFAULT_MENU_ITEM_ELEMENT,\n children,\n disabled,\n fontSize = 1,\n gap = 3,\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 text,\n tone = 'default',\n ...rest\n } = props as MenuItemProps<typeof DEFAULT_MENU_ITEM_ELEMENT>\n\n const menu = useMenu()\n const {activeElement, mount, onItemClick, onItemMouseEnter, onItemMouseLeave} = menu\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} 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 {ElementTone, FontTextSize, Space} 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'\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'?: ElementTone\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>(\n props: TabProps<E>,\n): React.JSX.Element {\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 {\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'\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}\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): React.JSX.Element {\n const {\n as = DEFAULT_TAB_LIST_ELEMENT,\n children: childrenProp,\n gap = 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}\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'\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>(\n props: GridProps<E>,\n): React.JSX.Element {\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 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'\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 type {Context} from 'react'\n\nimport {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext: Context<TooltipDelayGroupContextValue | null> =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/v3/tooltipDelayGroup',\n null,\n )\n","import {useContext} from 'react'\n\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {motion, type MotionStyle} from 'framer-motion'\nimport {type CSSProperties, type ForwardedRef, useMemo} from 'react'\n\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport type {Placement} from '../../types'\nimport {Arrow} 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): React.JSX.Element {\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 {CardTone, ColorScheme} 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 {ComponentType, Delay, Placement, Props} from '../../types'\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 {\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 /**\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?: ColorScheme\n tone?: CardTone\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): React.JSX.Element {\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 tone={tone === 'inherit' ? card.tone : tone} scheme={scheme ?? 'light'}>\n {node}\n </CardProvider>\n </Portal>\n ) : (\n node\n ))\n\n return (\n <>\n {/* the tooltip */}\n {animate ? <AnimatePresence>{children}</AnimatePresence> : children}\n\n {/* the referred element */}\n {child}\n </>\n )\n}\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n isInsideGroup,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n isInsideGroup: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip || isInsideGroup) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [isInsideGroup, showTooltip])\n}\n","import {type ReactNode, useContext, useMemo, useRef, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './portalContext'\nimport type {PortalContextValue} from './types'\n\n/** @public */\nexport interface PortalProviderProps {\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): React.JSX.Element {\n const {children, element, __unstable_elements: elementsProp} = props\n const elements = useUnique(elementsProp)\n const parentPortal = useContext(PortalContext)\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => elements?.['default'] ?? (parentPortal.element || document.body),\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: null,\n element: element || fallbackElement,\n elements,\n }\n }, [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"],"names":["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","value","Boolean","_getArrayProp","defaultVal","undefined","_getResponsiveProp","useResponsiveProp","$","_c","t0","JSON","stringify","t1","setCache","useState","cachedVal","cachedHash","hash","DEFAULT_BOX_ELEMENT","Box","props","alignItems","borderBottom","borderLeft","borderRight","borderTop","children","className","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","shadow","t2","t3","t4","t5","t6","t7","t8","textAlign","width","as","border","display","margin","minHeight","minWidth","padding","sizing","Element","t9","box","t10","DEFAULT_TEXT_ELEMENT","Text","align","textOverflowProp","size","textOverflow","weight","text","AnimatedSpinnerIcon","Symbol","for","animatedSpinnerIcon","DEFAULT_SPINNER_ELEMENT","Spinner","spinner","DEFAULT_BUTTON_ELEMENT","Button","disabled","fontSize","icon","IconComponent","iconRight","IconRightComponent","justify","loading","mode","selected","textWeight","tone","href","button","buttonLoadingBox","isValidElement","isValidElementType","useMatchMedia","mediaQueryString","getServerSnapshot","useDebugValue","onStoreChange","media","window","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","getGlobalScope","globalThis","self","global","Error","globalScope","createGlobalScopedContext","key","defaultValue","symbol","document","createContext","symbolMap","BoundaryElementContext","DEFAULT_VALUE","version","useBoundaryElement","useContext","getElementRef","getter","Object","getOwnPropertyDescriptor","get","mayWarn","isReactWarning","ref","CardContext","CardProvider","scheme","unstable_CompatProvider","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","placementStrategy","preventOverflow","referenceBoundary","referenceElement","widthProp","updateRef","referenceWidthRef","middleware","useMemo","ret","autoPlacement","allowedPlacements","concat","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","_width","t28","t29","responsivePadding","withClearButton","handleClearMouseDown","event_0","preventDefault","stopPropagation","focus","handleClearClick","fromEntries","entries","clearButtonBoxPadding","_temp3","clearButtonPadding","clearButtonProps","textInput","textInputPrefix","textInputElement","_inputElement","_inputPresentation","t30","t31","t32","CloseIcon","t33","t34","textInputSuffix","t35","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","unregisterElementRef","handleRefChange","onItemMouseEnter","onItemMouseLeave","onMouseEnter","onMouseLeave","menu","DEFAULT_MENU_DIVIDER_ELEMENT","MenuDivider","menuDivider","useMenu","DEFAULT_MENU_GROUP_ELEMENT","MenuGroup","menuProps","onClick","setRootElement","setOpen","setShouldFocus","active","withinMenu","setWithinMenu","handleMouseEnter","handleMenuKeyDown","event_1","handleClick","handleChildItemClick","handleMenuMouseEnter","childMenu","event_2","DEFAULT_MENU_ITEM_ELEMENT","MenuItem","hotkeys","selectedProp","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","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","PortalProvider","__unstable_elements","elementsProp","useUnique","parentPortal","fallbackElement","emptySubscribe","valueRef","_isEqual","objA","objB","keysA","keysB","every"],"mappings":"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"}
|