@sanity/ui 3.0.0-static.3 → 3.0.0-static.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -9
- package/dist/_chunks-cjs/_visual-editing.cjs +2358 -0
- package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -0
- package/dist/_chunks-cjs/refractor.cjs +26 -0
- package/dist/_chunks-cjs/refractor.cjs.map +1 -0
- package/dist/_chunks-es/_visual-editing.js +2371 -0
- package/dist/_chunks-es/_visual-editing.js.map +1 -0
- package/dist/_chunks-es/refractor.js +25 -0
- package/dist/_chunks-es/refractor.js.map +1 -0
- package/dist/_visual-editing.cjs +30 -0
- package/dist/_visual-editing.cjs.map +1 -0
- package/dist/_visual-editing.d.cts +894 -0
- package/dist/_visual-editing.d.ts +504 -418
- package/dist/_visual-editing.js +29 -30
- package/dist/_visual-editing.js.map +1 -1
- package/dist/css/index.cjs +617 -0
- package/dist/css/index.cjs.map +1 -0
- package/dist/css/index.css +1 -0
- package/dist/css/index.d.cts +14902 -0
- package/dist/css/index.d.ts +14902 -0
- package/dist/css/index.js +617 -0
- package/dist/css/index.js.map +1 -0
- package/dist/css/layers.css +4 -0
- package/dist/css/primitives/popover/popover.css +4 -0
- package/dist/index.cjs +2470 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3212 -0
- package/dist/index.d.ts +1325 -982
- package/dist/index.js +1614 -692
- package/dist/index.js.map +1 -1
- package/dist/theme.cjs +4791 -0
- package/dist/theme.cjs.map +1 -0
- package/dist/theme.d.cts +1903 -0
- package/dist/theme.d.ts +329 -309
- package/dist/theme.js +3188 -1384
- package/dist/theme.js.map +1 -1
- package/exports/_visual-editing.ts +26 -27
- package/exports/index.ts +1 -1
- package/package.json +67 -79
- package/src/core/_compat/helpers.ts +72 -0
- package/src/core/_compat/styles/_responsive.ts +19 -0
- package/src/core/_compat/theme/theme.test.tsx +72 -0
- package/src/core/_compat/theme/themeColorProvider.tsx +24 -0
- package/src/core/_compat/theme/themeContext.ts +10 -0
- package/src/core/_compat/theme/themeProvider.tsx +68 -0
- package/src/core/_compat/theme/types.ts +10 -0
- package/src/core/_compat/theme/useRootTheme.ts +15 -0
- package/src/core/_compat/theme/useTheme.ts +12 -0
- package/src/core/_compat/types.ts +191 -0
- package/src/core/components/autocomplete/__workshop__/async.tsx +156 -0
- package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +131 -0
- package/src/core/components/autocomplete/__workshop__/custom.tsx +91 -0
- package/src/core/components/autocomplete/__workshop__/example.tsx +80 -0
- package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +36 -0
- package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +292 -0
- package/src/core/components/autocomplete/__workshop__/index.ts +39 -0
- package/src/core/components/autocomplete/autocomplete.tsx +690 -0
- package/src/core/components/autocomplete/autocompleteOption.tsx +45 -0
- package/src/core/components/autocomplete/autocompleteReducer.ts +47 -0
- package/src/core/components/autocomplete/constants.ts +28 -0
- package/src/core/components/autocomplete/types.ts +103 -0
- package/src/core/components/breadcrumbs/__workshop__/example.tsx +61 -0
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +136 -0
- package/src/core/components/dialog/__workshop__/activate.tsx +141 -0
- package/src/core/components/dialog/__workshop__/autoFocus.tsx +29 -0
- package/src/core/components/dialog/__workshop__/onScroll.tsx +51 -0
- package/src/core/components/dialog/__workshop__/panes.tsx +89 -0
- package/src/core/components/dialog/__workshop__/position.tsx +30 -0
- package/src/core/components/dialog/__workshop__/props.tsx +77 -0
- package/src/core/components/dialog/__workshop__/wrapped.tsx +76 -0
- package/src/core/components/dialog/dialog.tsx +233 -0
- package/src/core/components/dialog/dialogCard.tsx +226 -0
- package/src/core/components/dialog/dialogContext.ts +22 -0
- package/src/core/components/dialog/dialogProvider.tsx +34 -0
- package/src/core/components/dialog/isTargetWithinScope.ts +14 -0
- package/src/core/components/dialog/types.ts +2 -0
- package/src/core/components/dialog/useDialog.ts +11 -0
- package/src/core/components/hotkeys/hotkeys.tsx +71 -0
- package/src/core/components/menu/__workshop__/asComponent.tsx +45 -0
- package/src/core/components/menu/__workshop__/avatarMenu.tsx +57 -0
- package/src/core/components/menu/__workshop__/closableMenuButton.tsx +47 -0
- package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +133 -0
- package/src/core/components/menu/__workshop__/customMenuItem.tsx +45 -0
- package/src/core/components/menu/__workshop__/customSelectedState.tsx +35 -0
- package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +40 -0
- package/src/core/components/menu/__workshop__/groups.tsx +156 -0
- package/src/core/components/menu/__workshop__/menuButton.tsx +80 -0
- package/src/core/components/menu/__workshop__/menuGroupRight.tsx +65 -0
- package/src/core/components/menu/__workshop__/nestedMenu.tsx +22 -0
- package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +50 -0
- package/src/core/components/menu/__workshop__/selectedItem.tsx +69 -0
- package/src/core/components/menu/__workshop__/shouldFocus.tsx +42 -0
- package/src/core/components/menu/__workshop__/tones.tsx +25 -0
- package/src/core/components/menu/__workshop__/withoutArrow.tsx +32 -0
- package/src/core/components/menu/helpers.ts +82 -0
- package/src/core/components/menu/menu.test.tsx +127 -0
- package/src/core/components/menu/menu.tsx +194 -0
- package/src/core/components/menu/menuButton.tsx +271 -0
- package/src/core/components/menu/menuContext.ts +31 -0
- package/src/core/components/menu/menuDivider.tsx +32 -0
- package/src/core/components/menu/menuGroup.tsx +238 -0
- package/src/core/components/menu/menuItem.tsx +194 -0
- package/src/core/components/menu/useMenu.ts +21 -0
- package/src/core/components/menu/useMenuController.ts +241 -0
- package/src/core/components/tab/__workshop__/example.tsx +79 -0
- package/src/core/components/tab/tab.tsx +107 -0
- package/src/core/components/tab/tabList.tsx +95 -0
- package/src/core/components/tab/tabPanel.tsx +47 -0
- package/src/core/components/toast/__workshop__/hook.tsx +71 -0
- package/src/core/components/toast/__workshop__/toast.tsx +26 -0
- package/src/core/components/toast/toast.test.tsx +101 -0
- package/src/core/components/toast/toast.tsx +189 -0
- package/src/core/components/toast/toastContext.ts +7 -0
- package/src/core/components/toast/toastLayer.tsx +54 -0
- package/src/core/components/toast/toastProvider.tsx +112 -0
- package/src/core/components/toast/types.ts +24 -0
- package/src/core/components/toast/useToast.ts +23 -0
- package/src/core/components/tree/__workshop__/basic.perf.ts +19 -0
- package/src/core/components/tree/__workshop__/basic.tsx +105 -0
- package/src/core/components/tree/__workshop__/tabFromElement.tsx +84 -0
- package/src/core/components/tree/helpers.ts +105 -0
- package/src/core/components/tree/tree.tsx +249 -0
- package/src/core/components/tree/treeContext.ts +10 -0
- package/src/core/components/tree/treeGroup.tsx +48 -0
- package/src/core/components/tree/treeItem.tsx +237 -0
- package/src/core/components/tree/types.ts +24 -0
- package/src/core/components/tree/useTree.ts +17 -0
- package/src/core/components/virtualList/__workshop__/index.ts +29 -0
- package/src/core/components/virtualList/__workshop__/infiniteList.tsx +48 -0
- package/src/core/components/virtualList/virtualList.tsx +209 -0
- package/src/core/constants.ts +85 -0
- package/src/core/helpers/focus.ts +92 -0
- package/src/core/helpers/props.ts +28 -0
- package/src/core/hooks/useArrayProp.ts +26 -0
- package/src/core/hooks/useClickOutside.test.tsx +481 -0
- package/src/core/hooks/useClickOutside.ts +113 -0
- package/src/core/hooks/useClickOutsideEvent.test.tsx +114 -0
- package/src/core/hooks/useClickOutsideEvent.ts +67 -0
- package/src/core/hooks/useDelayed.test.ts +67 -0
- package/src/core/hooks/useDelayedState.ts +28 -0
- package/src/core/hooks/useElementRect/__workshop__/example.tsx +30 -0
- package/src/core/hooks/useElementSize.ts +19 -0
- package/src/core/hooks/useForwardedRef.ts +19 -0
- package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +14 -0
- package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +21 -0
- package/src/core/hooks/useMediaIndex/useMediaIndex.ts +102 -0
- package/src/core/hooks/usePrefersDark.hydration.test.tsx +56 -0
- package/src/core/hooks/usePrefersDark.test.tsx +20 -0
- package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +56 -0
- package/src/core/hooks/usePrefersReducedMotion.test.tsx +20 -0
- package/src/core/hooks/useResponsiveProp.ts +28 -0
- package/src/core/index.ts +136 -0
- package/src/core/lib/isArray.ts +3 -0
- package/src/core/middleware/origin.ts +47 -0
- package/src/core/observers/elementSize.ts +116 -0
- package/src/core/primitives/arrow/arrow.tsx +74 -0
- package/src/core/primitives/avatar/__workshop__/asButton.tsx +14 -0
- package/src/core/primitives/avatar/__workshop__/stack.tsx +25 -0
- package/src/core/primitives/avatar/__workshop__/withinButton.tsx +55 -0
- package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +72 -0
- package/src/core/primitives/avatar/avatar.tsx +154 -0
- package/src/core/primitives/avatar/avatarCounter.tsx +69 -0
- package/src/core/primitives/avatar/avatarStack.tsx +81 -0
- package/src/core/primitives/avatar/types.ts +34 -0
- package/src/core/primitives/badge/__workshop__/props.tsx +19 -0
- package/src/core/primitives/badge/__workshop__/tones.tsx +16 -0
- package/src/core/primitives/badge/badge.test.tsx +15 -0
- package/src/core/primitives/badge/badge.tsx +60 -0
- package/src/core/primitives/badge/types.ts +18 -0
- package/src/core/primitives/box/__workshop__/props.tsx +20 -0
- package/src/core/primitives/box/__workshop__/responsive.tsx +20 -0
- package/src/core/primitives/box/box.tsx +219 -0
- package/src/core/primitives/button/__workshop__/custom.tsx +27 -0
- package/src/core/primitives/button/__workshop__/customIcons.tsx +30 -0
- package/src/core/primitives/button/__workshop__/disabled.tsx +54 -0
- package/src/core/primitives/button/__workshop__/index.ts +64 -0
- package/src/core/primitives/button/__workshop__/props.tsx +55 -0
- package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +36 -0
- package/src/core/primitives/button/__workshop__/stacked.tsx +58 -0
- package/src/core/primitives/button/__workshop__/textOverflow.tsx +13 -0
- package/src/core/primitives/button/__workshop__/uploadButton.tsx +29 -0
- package/src/core/primitives/button/button.test.tsx +29 -0
- package/src/core/primitives/button/button.tsx +196 -0
- package/src/core/primitives/button/types.ts +22 -0
- package/src/core/primitives/card/__workshop__/asButton.tsx +107 -0
- package/src/core/primitives/card/__workshop__/asComponent.tsx +27 -0
- package/src/core/primitives/card/__workshop__/checkered.tsx +26 -0
- package/src/core/primitives/card/__workshop__/index.ts +18 -0
- package/src/core/primitives/card/__workshop__/interactive.tsx +29 -0
- package/src/core/primitives/card/__workshop__/listNavigation.tsx +78 -0
- package/src/core/primitives/card/__workshop__/props.tsx +52 -0
- package/src/core/primitives/card/__workshop__/selected.tsx +62 -0
- package/src/core/primitives/card/__workshop__/tones.tsx +27 -0
- package/src/core/primitives/card/card.tsx +106 -0
- package/src/core/primitives/card/cardContext.ts +10 -0
- package/src/core/primitives/card/cardProvider.tsx +27 -0
- package/src/core/primitives/card/types.ts +31 -0
- package/src/core/primitives/card/useCard.ts +9 -0
- package/src/core/primitives/checkbox/__workshop__/props.tsx +35 -0
- package/src/core/primitives/checkbox/__workshop__/tones.tsx +27 -0
- package/src/core/primitives/checkbox/checkbox.tsx +80 -0
- package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +23 -0
- package/src/core/primitives/code/__workshop__/props.tsx +18 -0
- package/src/core/primitives/code/code.tsx +46 -0
- package/src/core/primitives/code/refractor.tsx +18 -0
- package/src/core/primitives/container/__workshop__/example.tsx +20 -0
- package/src/core/primitives/container/container.tsx +37 -0
- package/src/core/primitives/flex/__workshop__/example.tsx +34 -0
- package/src/core/primitives/flex/flex.tsx +56 -0
- package/src/core/primitives/flex/types.ts +27 -0
- package/src/core/primitives/grid/grid.tsx +33 -0
- package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +54 -0
- package/src/core/primitives/heading/__workshop__/plain.tsx +29 -0
- package/src/core/primitives/heading/heading.tsx +80 -0
- package/src/core/primitives/inline/__workshop__/plain.tsx +24 -0
- package/src/core/primitives/inline/inline.tsx +69 -0
- package/src/core/primitives/kbd/kbd.tsx +55 -0
- package/src/core/primitives/label/__workshop__/plain.tsx +28 -0
- package/src/core/primitives/label/label.tsx +77 -0
- package/src/core/primitives/layer/__workshop__/index.ts +24 -0
- package/src/core/primitives/layer/__workshop__/multipleRoots.tsx +49 -0
- package/src/core/primitives/layer/__workshop__/nested.tsx +98 -0
- package/src/core/primitives/layer/__workshop__/responsiveZOffset.tsx +17 -0
- package/src/core/primitives/layer/getLayerContext.test.ts +32 -0
- package/src/core/primitives/layer/getLayerContext.ts +21 -0
- package/src/core/primitives/layer/layer.test.tsx +108 -0
- package/src/core/primitives/layer/layer.tsx +42 -0
- package/src/core/primitives/layer/layerCard.tsx +90 -0
- package/src/core/primitives/layer/layerContext.ts +7 -0
- package/src/core/primitives/layer/layerProvider.tsx +114 -0
- package/src/core/primitives/layer/useLayer.ts +24 -0
- package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +77 -0
- package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +32 -0
- package/src/core/primitives/popover/__workshop__/PlainStory.tsx +71 -0
- package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +69 -0
- package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +96 -0
- package/src/core/primitives/popover/__workshop__/TestStory.tsx +100 -0
- package/src/core/primitives/popover/constants.ts +22 -0
- package/src/core/primitives/popover/floating-ui/size.ts +83 -0
- package/src/core/primitives/popover/helpers.ts +32 -0
- package/src/core/primitives/popover/popover.tsx +453 -0
- package/src/core/primitives/popover/popoverLayer.tsx +149 -0
- package/src/core/primitives/popover/types.ts +12 -0
- package/src/core/primitives/radio/__workshop__/example.tsx +63 -0
- package/src/core/primitives/radio/__workshop__/plain.tsx +28 -0
- package/src/core/primitives/radio/radio.tsx +64 -0
- package/src/core/primitives/root/Root.tsx +84 -0
- package/src/core/primitives/root/RootProvider.tsx +40 -0
- package/src/core/primitives/root/__workshop__/boundary.tsx +5 -0
- package/src/core/primitives/root/__workshop__/index.ts +8 -0
- package/src/core/primitives/select/__workshop__/plain.tsx +39 -0
- package/src/core/primitives/select/__workshop__/readOnly.tsx +23 -0
- package/src/core/primitives/select/select.tsx +85 -0
- package/src/core/primitives/selectable/selectable.tsx +50 -0
- package/src/core/primitives/selectable/types.ts +7 -0
- package/src/core/primitives/skeleton/__workshop__/delay.tsx +70 -0
- package/src/core/primitives/skeleton/__workshop__/index.ts +11 -0
- package/src/core/primitives/skeleton/__workshop__/skeleton.tsx +64 -0
- package/src/core/primitives/skeleton/codeSkeleton.tsx +49 -0
- package/src/core/primitives/skeleton/headingSkeleton.tsx +48 -0
- package/src/core/primitives/skeleton/labelSkeleton.tsx +47 -0
- package/src/core/primitives/skeleton/skeleton.tsx +71 -0
- package/src/core/primitives/skeleton/textSkeleton.tsx +49 -0
- package/src/core/primitives/spinner/__workshop__/Props.tsx +15 -0
- package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +14 -0
- package/src/core/primitives/spinner/spinner.tsx +45 -0
- package/src/core/primitives/srOnly/srOnly.tsx +33 -0
- package/src/core/primitives/stack/__workshop__/plain.tsx +32 -0
- package/src/core/primitives/stack/stack.tsx +65 -0
- package/src/core/primitives/switch/switch.tsx +84 -0
- package/src/core/primitives/text/__workshop__/colored.tsx +23 -0
- package/src/core/primitives/text/__workshop__/example.tsx +28 -0
- package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +23 -0
- package/src/core/primitives/text/text.tsx +74 -0
- package/src/core/primitives/textArea/__workshop__/plain.tsx +61 -0
- package/src/core/primitives/textArea/textArea.tsx +96 -0
- package/src/core/primitives/textInput/__workshop__/customValidity.tsx +17 -0
- package/src/core/primitives/textInput/__workshop__/plain.tsx +110 -0
- package/src/core/primitives/textInput/__workshop__/states.tsx +53 -0
- package/src/core/primitives/textInput/__workshop__/tones.tsx +277 -0
- package/src/core/primitives/textInput/__workshop__/typed.tsx +23 -0
- package/src/core/primitives/textInput/textInput.tsx +261 -0
- package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +102 -0
- package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +74 -0
- package/src/core/primitives/tooltip/__workshop__/props.tsx +112 -0
- package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +86 -0
- package/src/core/primitives/tooltip/constants.ts +23 -0
- package/src/core/primitives/tooltip/tooltip.test.tsx +454 -0
- package/src/core/primitives/tooltip/tooltip.tsx +489 -0
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +11 -0
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +53 -0
- package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +13 -0
- package/src/core/primitives/tooltip/tooltipLayer.tsx +106 -0
- package/src/core/primitives/types.ts +153 -0
- package/src/core/types/props.ts +28 -0
- package/src/core/types/radius.ts +7 -0
- package/src/core/utils/boundaryElement/boundaryElement.test.tsx +100 -0
- package/src/core/utils/boundaryElement/boundaryElementContext.ts +7 -0
- package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +18 -0
- package/src/core/utils/boundaryElement/types.ts +5 -0
- package/src/core/utils/boundaryElement/useBoundaryElement.ts +24 -0
- package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +41 -0
- package/src/core/utils/elementQuery/elementQuery.tsx +75 -0
- package/src/core/utils/errorBoundary.tsx +50 -0
- package/src/core/utils/getElementRef.ts +27 -0
- package/src/core/utils/portal/__workshop__/named.tsx +63 -0
- package/src/core/utils/portal/portal.test.tsx +103 -0
- package/src/core/utils/portal/portal.tsx +40 -0
- package/src/core/utils/portal/portalContext.ts +31 -0
- package/src/core/utils/portal/portalProvider.tsx +73 -0
- package/src/core/utils/portal/types.ts +7 -0
- package/src/core/utils/portal/usePortal.ts +23 -0
- package/src/css/_assign.ts +3 -0
- package/src/css/_composeClassNames.ts +12 -0
- package/src/css/_fromEntries.ts +3 -0
- package/src/css/_getClassNames.ts +9 -0
- package/src/css/_responsiveClassName.ts +45 -0
- package/src/css/_responsiveStyle.css.ts +34 -0
- package/src/css/_style.css.ts +9 -0
- package/src/css/components/breadcrumbs/breadcrumbs.css.ts +6 -0
- package/src/css/components/breadcrumbs/breadcrumbs.ts +5 -3
- package/src/css/components/dialog/dialog.css.ts +106 -0
- package/src/css/components/dialog/dialog.ts +42 -14
- package/src/css/components/menu/menu.css.ts +14 -0
- package/src/css/components/menu/menu.ts +8 -5
- package/src/css/components/skeleton/skeleton.css.ts +132 -0
- package/src/css/components/skeleton/skeleton.ts +16 -9
- package/src/css/components/skeleton/types.ts +16 -6
- package/src/css/components/toast/toast.css.ts +17 -0
- package/src/css/components/toast/toast.ts +5 -15
- package/src/css/components/tree/tree.css.ts +65 -0
- package/src/css/components/tree/tree.ts +5 -3
- package/src/css/constants.ts +10 -1
- package/src/css/defaultTheme.css.ts +521 -0
- package/src/css/index.ts +141 -39
- package/src/css/layers.css.ts +9 -0
- package/src/css/primitives/_arrow/_arrow.css.ts +68 -0
- package/src/css/primitives/_arrow/_arrow.ts +16 -4
- package/src/css/primitives/_input/_input.css.ts +261 -0
- package/src/css/primitives/_input/input.ts +16 -12
- package/src/css/primitives/_input/types.ts +4 -3
- package/src/css/primitives/_selectable/_selectable.css.ts +131 -0
- package/src/css/primitives/_selectable/selectable.ts +5 -5
- package/src/css/primitives/_selectable/types.ts +3 -2
- package/src/css/primitives/avatar/avatar.css.ts +198 -0
- package/src/css/primitives/avatar/avatar.ts +52 -11
- package/src/css/primitives/avatar/types.ts +5 -3
- package/src/css/primitives/badge/badge.css.ts +27 -0
- package/src/css/primitives/badge/badge.ts +4 -4
- package/src/css/primitives/badge/types.ts +4 -5
- package/src/css/primitives/box/box.css.ts +19 -0
- package/src/css/primitives/box/box.ts +63 -31
- package/src/css/primitives/box/types.ts +56 -30
- package/src/css/primitives/button/button.css.ts +289 -0
- package/src/css/primitives/button/button.ts +19 -34
- package/src/css/primitives/button/types.ts +12 -0
- package/src/css/primitives/card/__workshop__/color.tsx +75 -0
- package/src/css/primitives/card/__workshop__/index.ts +14 -0
- package/src/css/primitives/card/card.css.ts +370 -0
- package/src/css/primitives/card/card.ts +9 -10
- package/src/css/primitives/card/types.ts +4 -6
- package/src/css/primitives/checkbox/checkbox.css.ts +193 -0
- package/src/css/primitives/checkbox/checkbox.ts +13 -5
- package/src/css/primitives/code/code.css.ts +271 -0
- package/src/css/primitives/code/code.ts +15 -5
- package/src/css/primitives/code/types.ts +5 -3
- package/src/css/primitives/container/container.css.ts +4 -0
- package/src/css/primitives/container/container.ts +14 -4
- package/src/css/primitives/container/types.ts +4 -2
- package/src/css/primitives/heading/heading.css.ts +85 -0
- package/src/css/primitives/heading/heading.ts +16 -11
- package/src/css/primitives/heading/types.ts +8 -3
- package/src/css/primitives/kbd/kbd.css.ts +16 -0
- package/src/css/primitives/kbd/kbd.ts +6 -4
- package/src/css/primitives/kbd/types.ts +2 -3
- package/src/css/primitives/label/label.css.ts +86 -0
- package/src/css/primitives/label/label.ts +16 -10
- package/src/css/primitives/label/types.ts +15 -5
- package/src/css/primitives/popover/popover.css.ts +6 -0
- package/src/css/primitives/popover/popover.ts +10 -3
- package/src/css/primitives/radio/radio.css.ts +78 -0
- package/src/css/primitives/radio/radio.ts +15 -3
- package/src/css/primitives/root/root.css.ts +15 -0
- package/src/css/primitives/root/root.ts +17 -0
- package/src/css/primitives/root/types.ts +10 -0
- package/src/css/primitives/select/select.css.ts +24 -0
- package/src/css/primitives/select/select.ts +8 -6
- package/src/css/primitives/select/types.ts +1 -1
- package/src/css/primitives/spinner/spinner.css.ts +23 -0
- package/src/css/primitives/spinner/spinner.ts +9 -5
- package/src/css/primitives/spinner/types.ts +4 -0
- package/src/css/primitives/srOnly/srOnly.css.ts +10 -0
- package/src/css/primitives/srOnly/srOnly.ts +7 -0
- package/src/css/primitives/stack/stack.css.ts +6 -0
- package/src/css/primitives/stack/stack.ts +7 -0
- package/src/css/primitives/switch/switch.css.ts +98 -0
- package/src/css/primitives/switch/switch.ts +13 -7
- package/src/css/primitives/text/text.css.ts +85 -0
- package/src/css/primitives/text/text.ts +18 -11
- package/src/css/primitives/text/types.ts +12 -3
- package/src/css/primitives/textArea/textArea.css.ts +4 -0
- package/src/css/primitives/textArea/textArea.ts +6 -5
- package/src/css/primitives/textArea/types.ts +5 -3
- package/src/css/primitives/textInput/textInput.css.ts +41 -0
- package/src/css/primitives/textInput/textInput.ts +21 -5
- package/src/css/primitives/textInput/types.ts +3 -7
- package/src/css/primitives/tooltip/tooltip.css.ts +4 -0
- package/src/css/primitives/tooltip/tooltip.ts +6 -7
- package/src/css/primitives/tooltip/types.ts +4 -0
- package/src/css/props/alignItems/alignItems.css.ts +22 -0
- package/src/css/props/alignItems/alignItems.ts +8 -0
- package/src/css/props/alignItems/types.ts +9 -0
- package/src/css/props/border/border.css.ts +65 -0
- package/src/css/props/border/border.ts +36 -0
- package/src/css/props/border/types.ts +13 -0
- package/src/css/props/boxSizing/boxSizing.css.ts +11 -0
- package/src/css/props/boxSizing/boxSizing.ts +10 -0
- package/src/css/props/boxSizing/types.ts +7 -0
- package/src/css/props/display/display.css.ts +56 -0
- package/src/css/props/display/display.ts +17 -0
- package/src/css/props/display/types.ts +16 -0
- package/src/css/props/flex/flex.css.ts +52 -0
- package/src/css/props/flex/flex.ts +8 -0
- package/src/css/props/flex/types.ts +9 -0
- package/src/css/props/flexDirection/flexDirection.css.ts +19 -0
- package/src/css/props/flexDirection/flexDirection.ts +8 -0
- package/src/css/props/flexDirection/types.ts +9 -0
- package/src/css/props/flexWrap/flexWrap.css.ts +16 -0
- package/src/css/props/flexWrap/flexWrap.ts +8 -0
- package/src/css/props/flexWrap/types.ts +9 -0
- package/src/css/props/font/font.css.ts +93 -0
- package/src/css/props/font/font.ts +8 -0
- package/src/css/props/font/types.ts +6 -0
- package/src/css/props/gap/gap.css.ts +40 -0
- package/src/css/props/gap/gap.ts +13 -0
- package/src/css/props/gap/types.ts +10 -0
- package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +19 -0
- package/src/css/props/gridAutoColumns/gridAutoColumns.ts +8 -0
- package/src/css/props/gridAutoColumns/types.ts +19 -0
- package/src/css/props/gridAutoFlow/gridAutoFlow.css.ts +19 -0
- package/src/css/props/gridAutoFlow/gridAutoFlow.ts +8 -0
- package/src/css/props/gridAutoFlow/types.ts +13 -0
- package/src/css/props/gridAutoRows/gridAutoRows.css.ts +19 -0
- package/src/css/props/gridAutoRows/gridAutoRows.ts +8 -0
- package/src/css/props/gridAutoRows/types.ts +13 -0
- package/src/css/props/gridColumn/gridColumn.css.ts +49 -0
- package/src/css/props/gridColumn/gridColumn.ts +8 -0
- package/src/css/props/gridColumn/types.ts +19 -0
- package/src/css/props/gridColumnEnd/gridColumnEnd.css.ts +46 -0
- package/src/css/props/gridColumnEnd/gridColumnEnd.ts +8 -0
- package/src/css/props/gridColumnEnd/types.ts +19 -0
- package/src/css/props/gridColumnStart/gridColumnStart.css.ts +46 -0
- package/src/css/props/gridColumnStart/gridColumnStart.ts +11 -0
- package/src/css/props/gridColumnStart/types.ts +19 -0
- package/src/css/props/gridRow/gridRow.css.ts +49 -0
- package/src/css/props/gridRow/gridRow.ts +8 -0
- package/src/css/props/gridRow/types.ts +19 -0
- package/src/css/props/gridRowEnd/gridRowEnd.css.ts +46 -0
- package/src/css/props/gridRowEnd/gridRowEnd.ts +8 -0
- package/src/css/props/gridRowEnd/types.ts +19 -0
- package/src/css/props/gridRowStart/gridRowStart.css.ts +46 -0
- package/src/css/props/gridRowStart/gridRowStart.ts +8 -0
- package/src/css/props/gridRowStart/types.ts +19 -0
- package/src/css/props/gridTemplateColumns/gridTemplateColumns.css.ts +43 -0
- package/src/css/props/gridTemplateColumns/gridTemplateColumns.ts +8 -0
- package/src/css/props/gridTemplateColumns/types.ts +19 -0
- package/src/css/props/gridTemplateRows/gridTemplateRows.css.ts +43 -0
- package/src/css/props/gridTemplateRows/gridTemplateRows.ts +8 -0
- package/src/css/props/gridTemplateRows/types.ts +19 -0
- package/src/css/props/height/height.css.ts +25 -0
- package/src/css/props/height/height.ts +8 -0
- package/src/css/props/height/types.ts +15 -0
- package/src/css/props/inset/inset.css.ts +37 -0
- package/src/css/props/inset/inset.ts +21 -0
- package/src/css/props/inset/types.ts +13 -0
- package/src/css/props/justifyContent/justifyContent.css.ts +25 -0
- package/src/css/props/justifyContent/justifyContent.ts +8 -0
- package/src/css/props/justifyContent/types.ts +15 -0
- package/src/css/props/margin/margin.css.ts +117 -0
- package/src/css/props/margin/margin.ts +25 -0
- package/src/css/props/margin/types.ts +17 -0
- package/src/css/props/maxWidth/maxWidth.css.ts +32 -0
- package/src/css/props/maxWidth/maxWidth.ts +8 -0
- package/src/css/props/maxWidth/types.ts +11 -0
- package/src/css/props/minHeight/minHeight.css.ts +13 -0
- package/src/css/props/minHeight/minHeight.ts +8 -0
- package/src/css/props/minHeight/types.ts +9 -0
- package/src/css/props/minWidth/minWidth.css.ts +25 -0
- package/src/css/props/minWidth/minWidth.ts +8 -0
- package/src/css/props/minWidth/types.ts +9 -0
- package/src/css/props/outline/outline.css.ts +10 -0
- package/src/css/props/outline/outline.ts +8 -0
- package/src/css/props/outline/types.ts +7 -0
- package/src/css/props/overflow/overflow.css.ts +16 -0
- package/src/css/props/overflow/overflow.ts +8 -0
- package/src/css/props/overflow/types.ts +17 -0
- package/src/css/props/padding/padding.css.ts +87 -0
- package/src/css/props/padding/padding.ts +25 -0
- package/src/css/props/padding/types.ts +17 -0
- package/src/css/props/pointerEvents/pointerEvents.css.ts +13 -0
- package/src/css/props/pointerEvents/pointerEvents.ts +8 -0
- package/src/css/props/position/position.css.ts +22 -0
- package/src/css/props/position/position.ts +8 -0
- package/src/css/props/position/types.ts +9 -0
- package/src/css/props/radius/radius.css.ts +21 -0
- package/src/css/props/radius/radius.ts +8 -0
- package/src/css/props/radius/types.ts +8 -0
- package/src/css/props/shadow/shadow.css.ts +23 -0
- package/src/css/props/shadow/shadow.ts +8 -0
- package/src/css/props/shadow/types.ts +8 -0
- package/src/css/props/textAlign/textAlign.css.ts +22 -0
- package/src/css/props/textAlign/textAlign.ts +8 -0
- package/src/css/props/textAlign/types.ts +7 -0
- package/src/css/props/textOverflow/textOverflow.css.ts +19 -0
- package/src/css/props/textOverflow/textOverflow.ts +8 -0
- package/src/css/props/textOverflow/types.ts +12 -0
- package/src/css/props/width/types.ts +11 -0
- package/src/css/props/width/width.css.ts +31 -0
- package/src/css/props/width/width.ts +8 -0
- package/src/css/types.ts +221 -810
- package/src/css/util.ts +3 -8
- package/src/css/vars.css.ts +676 -0
- package/src/theme/getScopedTheme.ts +4 -4
- package/src/theme/index.ts +0 -5
- package/src/theme/types.ts +6 -10
- package/src/theme/v0/color/_generic.ts +1 -1
- package/src/theme/v0/color/button.ts +1 -1
- package/src/theme/v0/color/card.ts +1 -1
- package/src/theme/v0/color/color.ts +11 -11
- package/src/theme/v0/color/input.ts +1 -1
- package/src/theme/v0/color/muted.ts +1 -1
- package/src/theme/v0/color/selectable.ts +1 -1
- package/src/theme/v0/color/solid.ts +1 -1
- package/src/theme/v0/color/spot.ts +1 -1
- package/src/theme/v0/focusRing.ts +1 -3
- package/src/theme/v0/font.ts +6 -19
- package/src/theme/v0/layer.ts +1 -3
- package/src/theme/v0/shadow.ts +2 -6
- package/src/theme/v0/styles.ts +1 -1
- package/src/theme/v0/theme.ts +7 -7
- package/src/theme/v2/avatar.ts +2 -4
- package/src/theme/v2/build/_deprecated/color/_selectable/createSelectableTones.ts +76 -0
- package/src/theme/v2/build/_deprecated/color/_solid/createSolidTones.ts +54 -0
- package/src/theme/v2/build/_deprecated/color/button/createButtonModes.ts +22 -0
- package/src/theme/v2/build/_deprecated/color/button/createButtonTones.ts +55 -0
- package/src/theme/v2/build/_deprecated/color/card/createCardStates.ts +60 -0
- package/src/theme/v2/build/_deprecated/color/color.test.ts +63 -0
- package/src/theme/v2/build/_deprecated/color/defaults.ts +390 -0
- package/src/theme/v2/build/_deprecated/color/factory.ts +141 -0
- package/src/theme/v2/build/_deprecated/color/input/createInputModes.ts +86 -0
- package/src/theme/v2/build/_deprecated/color/muted/createMuted.ts +54 -0
- package/src/theme/v2/build/_deprecated/color/spot/createSpot.ts +20 -0
- package/src/theme/v2/build/buildColorTheme.test.ts +185 -0
- package/src/theme/v2/build/buildColorTheme.ts +494 -0
- package/src/theme/v2/build/buildTheme.test.ts +89 -0
- package/src/theme/v2/build/buildTheme.ts +37 -0
- package/src/theme/v2/build/colorToken/colorToken.ts +19 -0
- package/src/theme/v2/build/colorToken/compileColorToken.ts +21 -0
- package/src/theme/v2/build/colorToken/types.ts +6 -0
- package/src/theme/v2/build/lib/color-fns/blend/mix.ts +21 -0
- package/src/theme/v2/build/lib/color-fns/blend/multiply.ts +18 -0
- package/src/theme/v2/build/lib/color-fns/blend/screen.ts +18 -0
- package/src/theme/v2/build/lib/color-fns/color-fns.test.ts +68 -0
- package/src/theme/v2/build/lib/color-fns/contrastRatio.ts +34 -0
- package/src/theme/v2/build/lib/color-fns/convert.ts +150 -0
- package/src/theme/v2/build/lib/color-fns/parse.ts +60 -0
- package/src/theme/v2/build/mixThemeColor.test.ts +23 -0
- package/src/theme/v2/build/mixThemeColor.ts +53 -0
- package/src/theme/v2/build/renderColorTheme.ts +532 -0
- package/src/theme/v2/build/renderColorValue.ts +85 -0
- package/src/theme/v2/build/resolveColorTokens.ts +268 -0
- package/src/theme/v2/color/_helpers.ts +2 -2
- package/src/theme/v2/color/_system.ts +2 -4
- package/src/theme/v2/color/avatar.ts +3 -7
- package/src/theme/v2/color/badge.ts +3 -7
- package/src/theme/v2/color/button.ts +5 -11
- package/src/theme/v2/color/color.ts +10 -16
- package/src/theme/v2/color/input.ts +8 -10
- package/src/theme/v2/color/kbd.ts +1 -3
- package/src/theme/v2/color/selectable.ts +4 -8
- package/src/theme/v2/color/state.ts +5 -7
- package/src/theme/v2/color/syntax.ts +1 -3
- package/src/theme/v2/config/helpers.ts +48 -0
- package/src/theme/v2/config/system.ts +114 -0
- package/src/theme/v2/config/tokens/color/types.ts +137 -0
- package/src/theme/v2/config/tokens/index.ts +3 -0
- package/src/theme/v2/config/tokens/parseTokenValue.test.ts +44 -0
- package/src/theme/v2/config/tokens/parseTokenValue.ts +133 -0
- package/src/theme/v2/config/tokens/types.ts +53 -0
- package/src/theme/v2/config/types.ts +47 -0
- package/src/theme/v2/defaults/colorPalette.ts +5 -0
- package/src/theme/v2/defaults/colorTokens.ts +648 -0
- package/src/theme/v2/defaults/config.ts +84 -0
- package/src/theme/v2/defaults/fonts.ts +227 -0
- package/src/theme/v2/index.ts +2 -0
- package/src/theme/v2/input.ts +2 -4
- package/src/theme/v2/theme.ts +10 -14
- package/src/theme/v3/_constants.ts +29 -0
- package/src/theme/v3/_parseColorToken.ts +180 -0
- package/src/theme/v3/buildTheme_v3.ts +20 -11
- package/src/theme/v3/color/_constants.ts +15 -0
- package/src/theme/v3/color/avatar.ts +14 -0
- package/src/theme/v3/color/card.ts +58 -95
- package/src/theme/v3/color/color.ts +75 -71
- package/src/theme/v3/color/element.ts +8 -8
- package/src/theme/v3/color/index.ts +2 -2
- package/src/theme/v3/color/token.ts +19 -4
- package/src/theme/v3/color/tokens.ts +2 -2
- package/src/theme/v3/defaultFonts.ts +250 -0
- package/src/theme/v3/defaultTokens.ts +199 -0
- package/src/theme/v3/index.ts +4 -1
- package/src/theme/v3/palette/constants.ts +15 -0
- package/src/theme/v3/palette/types.ts +7 -0
- package/src/theme/v3/resolveTokens.ts +70 -65
- package/src/theme/v3/tokens.ts +2 -2
- package/src/theme/v3/types.ts +97 -12
- package/src/theme/versioning/getTheme_v2.ts +3 -3
- package/src/theme/versioning/is_v0.ts +2 -2
- package/src/theme/versioning/is_v2.ts +2 -2
- package/src/theme/versioning/themeColor_v0_v2.ts +2 -2
- package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -1
- package/src/theme/versioning/themeColor_v3_v2.ts +229 -52
- package/src/theme/versioning/v0_v2.ts +3 -3
- package/src/theme/versioning/v2_v0.ts +4 -4
- package/src/theme/versioning/v3_v2.ts +62 -40
- package/bin/ui.js +0 -5
- package/dist/_chunks-cjs/_visual-editing.js +0 -3100
- package/dist/_chunks-cjs/_visual-editing.js.map +0 -1
- package/dist/_chunks-cjs/buildCommand.js +0 -32
- package/dist/_chunks-cjs/buildCommand.js.map +0 -1
- package/dist/_chunks-cjs/refractor.js +0 -27
- package/dist/_chunks-cjs/refractor.js.map +0 -1
- package/dist/_chunks-cjs/v3_v2.js +0 -251
- package/dist/_chunks-cjs/v3_v2.js.map +0 -1
- package/dist/_chunks-es/_visual-editing.mjs +0 -3107
- package/dist/_chunks-es/_visual-editing.mjs.map +0 -1
- package/dist/_chunks-es/refractor.mjs +0 -26
- package/dist/_chunks-es/refractor.mjs.map +0 -1
- package/dist/_chunks-es/v3_v2.mjs +0 -252
- package/dist/_chunks-es/v3_v2.mjs.map +0 -1
- package/dist/_visual-editing.d.mts +0 -808
- package/dist/_visual-editing.mjs +0 -31
- package/dist/_visual-editing.mjs.map +0 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +0 -357
- package/dist/cli.js.map +0 -1
- package/dist/css.d.mts +0 -2197
- package/dist/css.d.ts +0 -2197
- package/dist/css.js +0 -4769
- package/dist/css.js.map +0 -1
- package/dist/css.mjs +0 -4770
- package/dist/css.mjs.map +0 -1
- package/dist/index.d.mts +0 -2869
- package/dist/index.mjs +0 -1545
- package/dist/index.mjs.map +0 -1
- package/dist/sanity-palette.css +0 -9
- package/dist/sanity-theme.css +0 -1
- package/dist/system.css +0 -22813
- package/dist/theme.d.mts +0 -1883
- package/dist/theme.mjs +0 -2989
- package/dist/theme.mjs.map +0 -1
- package/src/cli/buildCommand.ts +0 -48
- package/src/cli/index.ts +0 -38
- package/src/css/_comp.test.ts +0 -7
- package/src/css/_comp.ts +0 -10
- package/src/css/_mergeStyles.ts +0 -31
- package/src/css/_resp.ts +0 -38
- package/src/css/_responsiveRule.ts +0 -38
- package/src/css/aspects/border/border.style.ts +0 -13
- package/src/css/aspects/border/border.ts +0 -14
- package/src/css/aspects/border/index.ts +0 -2
- package/src/css/aspects/border/types.ts +0 -10
- package/src/css/aspects/display/display.style.ts +0 -34
- package/src/css/aspects/display/display.ts +0 -7
- package/src/css/aspects/display/index.ts +0 -2
- package/src/css/aspects/display/types.ts +0 -17
- package/src/css/aspects/flex/flex.style.ts +0 -30
- package/src/css/aspects/flex/flex.ts +0 -13
- package/src/css/aspects/flex/flexAlign.style.ts +0 -12
- package/src/css/aspects/flex/flexDirection.style.ts +0 -11
- package/src/css/aspects/flex/flexJustify.style.ts +0 -13
- package/src/css/aspects/flex/flexWrap.style.ts +0 -10
- package/src/css/aspects/flex/index.ts +0 -2
- package/src/css/aspects/flex/types.ts +0 -35
- package/src/css/aspects/flexItem/flex.style.ts +0 -22
- package/src/css/aspects/flexItem/flexItem.ts +0 -8
- package/src/css/aspects/flexItem/index.ts +0 -2
- package/src/css/aspects/flexItem/types.ts +0 -27
- package/src/css/aspects/font/font.style.ts +0 -151
- package/src/css/aspects/font/font.ts +0 -12
- package/src/css/aspects/font/index.ts +0 -2
- package/src/css/aspects/font/types.ts +0 -12
- package/src/css/aspects/gap/gap.style.ts +0 -21
- package/src/css/aspects/gap/gap.ts +0 -8
- package/src/css/aspects/gap/index.ts +0 -2
- package/src/css/aspects/gap/types.ts +0 -10
- package/src/css/aspects/grid/grid.ts +0 -13
- package/src/css/aspects/grid/gridAutoColumns.style.ts +0 -11
- package/src/css/aspects/grid/gridAutoFlow.style.ts +0 -11
- package/src/css/aspects/grid/gridAutoRows.style.ts +0 -11
- package/src/css/aspects/grid/gridColumns.style.ts +0 -18
- package/src/css/aspects/grid/gridRows.style.ts +0 -18
- package/src/css/aspects/grid/index.ts +0 -2
- package/src/css/aspects/grid/types.ts +0 -29
- package/src/css/aspects/gridItem/gridColumn.style.ts +0 -20
- package/src/css/aspects/gridItem/gridColumnEnd.style.ts +0 -20
- package/src/css/aspects/gridItem/gridColumnStart.style.ts +0 -20
- package/src/css/aspects/gridItem/gridItem.ts +0 -15
- package/src/css/aspects/gridItem/gridRow.style.ts +0 -20
- package/src/css/aspects/gridItem/gridRowEnd.style.ts +0 -20
- package/src/css/aspects/gridItem/gridRowStart.style.ts +0 -20
- package/src/css/aspects/gridItem/index.ts +0 -2
- package/src/css/aspects/gridItem/types.ts +0 -41
- package/src/css/aspects/height/height.style.ts +0 -9
- package/src/css/aspects/height/height.ts +0 -17
- package/src/css/aspects/height/index.ts +0 -1
- package/src/css/aspects/height/rules.ts +0 -7
- package/src/css/aspects/index.ts +0 -20
- package/src/css/aspects/inset/index.ts +0 -2
- package/src/css/aspects/inset/inset.style.ts +0 -12
- package/src/css/aspects/inset/inset.ts +0 -13
- package/src/css/aspects/inset/types.ts +0 -13
- package/src/css/aspects/margin/index.ts +0 -2
- package/src/css/aspects/margin/margin.style.ts +0 -46
- package/src/css/aspects/margin/margin.ts +0 -15
- package/src/css/aspects/margin/types.ts +0 -11
- package/src/css/aspects/maxWidth/index.ts +0 -2
- package/src/css/aspects/maxWidth/maxWidth.style.ts +0 -16
- package/src/css/aspects/maxWidth/maxWidth.ts +0 -6
- package/src/css/aspects/maxWidth/types.ts +0 -7
- package/src/css/aspects/outline/outline.style.ts +0 -9
- package/src/css/aspects/overflow/index.ts +0 -2
- package/src/css/aspects/overflow/overflow.style.ts +0 -11
- package/src/css/aspects/overflow/overflow.ts +0 -11
- package/src/css/aspects/overflow/types.ts +0 -11
- package/src/css/aspects/padding/index.ts +0 -2
- package/src/css/aspects/padding/padding.style.ts +0 -46
- package/src/css/aspects/padding/padding.ts +0 -15
- package/src/css/aspects/padding/types.ts +0 -14
- package/src/css/aspects/pointerEvents/index.ts +0 -2
- package/src/css/aspects/pointerEvents/pointerEvents.style.ts +0 -13
- package/src/css/aspects/pointerEvents/pointerEvents.ts +0 -6
- package/src/css/aspects/position/index.ts +0 -2
- package/src/css/aspects/position/position.style.ts +0 -12
- package/src/css/aspects/position/position.ts +0 -7
- package/src/css/aspects/position/types.ts +0 -9
- package/src/css/aspects/radius/index.ts +0 -2
- package/src/css/aspects/radius/radius.style.ts +0 -16
- package/src/css/aspects/radius/radius.ts +0 -8
- package/src/css/aspects/radius/types.ts +0 -8
- package/src/css/aspects/shadow/index.ts +0 -2
- package/src/css/aspects/shadow/shadow.style.ts +0 -49
- package/src/css/aspects/shadow/shadow.ts +0 -7
- package/src/css/aspects/shadow/types.ts +0 -8
- package/src/css/aspects/textOverflow/index.ts +0 -2
- package/src/css/aspects/textOverflow/textOverflow.style.ts +0 -21
- package/src/css/aspects/textOverflow/textOverflow.ts +0 -6
- package/src/css/aspects/textOverflow/types.ts +0 -8
- package/src/css/aspects/width/index.ts +0 -2
- package/src/css/aspects/width/rules.ts +0 -8
- package/src/css/aspects/width/types.ts +0 -9
- package/src/css/aspects/width/width.style.ts +0 -11
- package/src/css/aspects/width/width.ts +0 -6
- package/src/css/compile/compilePalette.ts +0 -60
- package/src/css/compile/compileRule.ts +0 -96
- package/src/css/compile/compileRules.test.ts +0 -36
- package/src/css/compile/compileRules.ts +0 -43
- package/src/css/compile/compileStyle.ts +0 -148
- package/src/css/compile/compileSystem.ts +0 -10
- package/src/css/compile/compileTheme.ts +0 -15
- package/src/css/compile/compileTheme_v3.ts +0 -410
- package/src/css/compile/types.ts +0 -6
- package/src/css/components/breadcrumbs/breadcrumbs.style.ts +0 -9
- package/src/css/components/breadcrumbs/index.ts +0 -1
- package/src/css/components/breadcrumbs/rules.ts +0 -25
- package/src/css/components/dialog/dialog.style.ts +0 -79
- package/src/css/components/dialog/index.ts +0 -1
- package/src/css/components/dialog/rules.ts +0 -78
- package/src/css/components/menu/index.ts +0 -1
- package/src/css/components/menu/menu.style.ts +0 -17
- package/src/css/components/menu/rules.ts +0 -15
- package/src/css/components/skeleton/index.ts +0 -2
- package/src/css/components/skeleton/rules.ts +0 -113
- package/src/css/components/skeleton/skeleton.style.ts +0 -96
- package/src/css/components/toast/index.ts +0 -1
- package/src/css/components/toast/rules.ts +0 -18
- package/src/css/components/toast/toast.style.ts +0 -20
- package/src/css/components/tree/index.ts +0 -1
- package/src/css/components/tree/rules.ts +0 -168
- package/src/css/components/tree/tree.style.ts +0 -55
- package/src/css/composeClassNames.ts +0 -17
- package/src/css/primitives/_arrow/_arrow.style.ts +0 -73
- package/src/css/primitives/_arrow/index.ts +0 -1
- package/src/css/primitives/_input/__workshop__/customInput.tsx +0 -16
- package/src/css/primitives/_input/__workshop__/index.ts +0 -14
- package/src/css/primitives/_input/_input.style.ts +0 -162
- package/src/css/primitives/_input/index.ts +0 -2
- package/src/css/primitives/_selectable/__style.ts +0 -117
- package/src/css/primitives/_selectable/_contants.ts +0 -11
- package/src/css/primitives/_selectable/_selectable.style.ts +0 -132
- package/src/css/primitives/_selectable/index.ts +0 -2
- package/src/css/primitives/avatar/avatar.style.ts +0 -175
- package/src/css/primitives/avatar/index.ts +0 -2
- package/src/css/primitives/avatar/rules.ts +0 -176
- package/src/css/primitives/badge/badge.style.ts +0 -22
- package/src/css/primitives/badge/index.ts +0 -2
- package/src/css/primitives/box/box.style.ts +0 -31
- package/src/css/primitives/box/index.ts +0 -2
- package/src/css/primitives/button/_constants.ts +0 -17
- package/src/css/primitives/button/button.style.ts +0 -182
- package/src/css/primitives/button/index.ts +0 -1
- package/src/css/primitives/button/rules.ts +0 -302
- package/src/css/primitives/card/_constants.ts +0 -13
- package/src/css/primitives/card/card.style.ts +0 -198
- package/src/css/primitives/card/index.ts +0 -2
- package/src/css/primitives/card/rules.ts +0 -473
- package/src/css/primitives/checkbox/__styles.ts +0 -129
- package/src/css/primitives/checkbox/checkbox.style.ts +0 -154
- package/src/css/primitives/checkbox/index.ts +0 -1
- package/src/css/primitives/checkbox/rules.ts +0 -152
- package/src/css/primitives/code/code.style.ts +0 -62
- package/src/css/primitives/code/index.ts +0 -2
- package/src/css/primitives/code/rules.ts +0 -96
- package/src/css/primitives/container/container.style.ts +0 -10
- package/src/css/primitives/container/index.ts +0 -2
- package/src/css/primitives/container/rules.ts +0 -8
- package/src/css/primitives/heading/heading.style.ts +0 -47
- package/src/css/primitives/heading/index.ts +0 -2
- package/src/css/primitives/heading/rules.ts +0 -155
- package/src/css/primitives/kbd/index.ts +0 -2
- package/src/css/primitives/kbd/kbd.style.ts +0 -22
- package/src/css/primitives/kbd/rules.ts +0 -20
- package/src/css/primitives/label/index.ts +0 -2
- package/src/css/primitives/label/label.style.ts +0 -48
- package/src/css/primitives/label/rules.ts +0 -137
- package/src/css/primitives/popover/index.ts +0 -1
- package/src/css/primitives/popover/popover.style.ts +0 -5
- package/src/css/primitives/popover/rules.ts +0 -5
- package/src/css/primitives/radio/index.ts +0 -1
- package/src/css/primitives/radio/radio.style.ts +0 -123
- package/src/css/primitives/radio/rules.ts +0 -121
- package/src/css/primitives/select/index.ts +0 -2
- package/src/css/primitives/select/rules.ts +0 -22
- package/src/css/primitives/select/select.style.ts +0 -24
- package/src/css/primitives/spinner/index.ts +0 -1
- package/src/css/primitives/spinner/rules.ts +0 -21
- package/src/css/primitives/spinner/spinner.style.ts +0 -22
- package/src/css/primitives/switch/index.ts +0 -1
- package/src/css/primitives/switch/rules.ts +0 -340
- package/src/css/primitives/switch/switch.style.ts +0 -169
- package/src/css/primitives/text/index.ts +0 -2
- package/src/css/primitives/text/rules.ts +0 -164
- package/src/css/primitives/text/text.style.ts +0 -56
- package/src/css/primitives/textArea/index.ts +0 -2
- package/src/css/primitives/textArea/rules.ts +0 -7
- package/src/css/primitives/textArea/textArea.style.ts +0 -9
- package/src/css/primitives/textInput/index.ts +0 -2
- package/src/css/primitives/textInput/rules.ts +0 -224
- package/src/css/primitives/textInput/textInput.style.ts +0 -167
- package/src/css/primitives/token/rules.ts +0 -45
- package/src/css/primitives/token/token.style.ts +0 -49
- package/src/css/primitives/tooltip/index.ts +0 -1
- package/src/css/primitives/tooltip/rules.ts +0 -19
- package/src/css/primitives/tooltip/tooltip.style.ts +0 -21
- package/src/css/responsiveRules.ts +0 -25
- package/src/css/scopeClassName.ts +0 -6
- package/src/css/system.style.ts +0 -154
- package/src/css/utils/srOnly/index.ts +0 -1
- package/src/css/utils/srOnly/srOnly.style.ts +0 -14
- package/src/css/utils/srOnly/srOnly.ts +0 -5
- package/src/css/varNames.ts +0 -486
- package/src/css/vars.ts +0 -456
- package/src/theme/_constants.ts +0 -26
- package/src/theme/_types.ts +0 -41
- package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -76
- package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +0 -54
- package/src/theme/build/_deprecated/color/button/createButtonModes.ts +0 -17
- package/src/theme/build/_deprecated/color/button/createButtonTones.ts +0 -55
- package/src/theme/build/_deprecated/color/card/createCardStates.ts +0 -60
- package/src/theme/build/_deprecated/color/color.test.ts +0 -63
- package/src/theme/build/_deprecated/color/defaults.ts +0 -390
- package/src/theme/build/_deprecated/color/factory.ts +0 -141
- package/src/theme/build/_deprecated/color/input/createInputModes.ts +0 -81
- package/src/theme/build/_deprecated/color/muted/createMuted.ts +0 -54
- package/src/theme/build/_deprecated/color/spot/createSpot.ts +0 -20
- package/src/theme/build/buildColorTheme.test.ts +0 -183
- package/src/theme/build/buildColorTheme.ts +0 -494
- package/src/theme/build/buildTheme.test.ts +0 -87
- package/src/theme/build/buildTheme.ts +0 -12
- package/src/theme/build/colorToken/colorToken.ts +0 -19
- package/src/theme/build/colorToken/compileColorToken.ts +0 -21
- package/src/theme/build/colorToken/types.ts +0 -6
- package/src/theme/build/lib/color-fns/blend/mix.ts +0 -21
- package/src/theme/build/lib/color-fns/blend/multiply.ts +0 -18
- package/src/theme/build/lib/color-fns/blend/screen.ts +0 -18
- package/src/theme/build/lib/color-fns/color-fns.test.ts +0 -68
- package/src/theme/build/lib/color-fns/contrastRatio.ts +0 -31
- package/src/theme/build/lib/color-fns/convert.ts +0 -150
- package/src/theme/build/lib/color-fns/parse.ts +0 -60
- package/src/theme/build/mixThemeColor.test.ts +0 -21
- package/src/theme/build/mixThemeColor.ts +0 -53
- package/src/theme/build/renderColorTheme.ts +0 -532
- package/src/theme/build/renderColorValue.ts +0 -85
- package/src/theme/build/resolveColorTokens.ts +0 -268
- package/src/theme/build/theme.test.ts +0 -27
- package/src/theme/config/helpers.ts +0 -55
- package/src/theme/config/system.ts +0 -115
- package/src/theme/config/tokens/color/types.ts +0 -133
- package/src/theme/config/tokens/index.ts +0 -4
- package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
- package/src/theme/config/tokens/parseTokenKey.ts +0 -67
- package/src/theme/config/tokens/parseTokenValue.test.ts +0 -42
- package/src/theme/config/tokens/parseTokenValue.ts +0 -133
- package/src/theme/config/tokens/types.ts +0 -53
- package/src/theme/config/types.ts +0 -45
- package/src/theme/defaults/colorPalette.ts +0 -5
- package/src/theme/defaults/colorTokens.ts +0 -648
- package/src/theme/defaults/config.ts +0 -84
- package/src/theme/defaults/fonts.ts +0 -228
- package/src/theme/palette/constants.ts +0 -15
- package/src/theme/palette/types.ts +0 -16
- package/src/theme/v3/buildTheme_v3.test.ts +0 -40
- package/src/theme/v3/color/buildColor_v3.ts +0 -193
- package/src/theme/v3/color/parseColor.test.ts +0 -79
- package/src/theme/v3/color/parseColor.ts +0 -167
- package/src/theme/v3/color/renderColor.test.ts +0 -19
- package/src/theme/v3/color/renderColor.ts +0 -33
- package/src/theme/v3/defaults.ts +0 -205
- package/src/ui/StyleTags.tsx +0 -24
- package/src/ui/_compat/index.ts +0 -9
- package/src/ui/_compat/styles/_responsive.ts +0 -19
- package/src/ui/_compat/styles/index.ts +0 -1
- package/src/ui/_compat/theme/index.ts +0 -5
- package/src/ui/_compat/theme/theme.test.tsx +0 -73
- package/src/ui/_compat/theme/themeColorProvider.tsx +0 -30
- package/src/ui/_compat/theme/themeContext.ts +0 -10
- package/src/ui/_compat/theme/themeProvider.tsx +0 -74
- package/src/ui/_compat/theme/types.ts +0 -12
- package/src/ui/_compat/theme/useRootTheme.ts +0 -17
- package/src/ui/_compat/theme/useTheme.ts +0 -16
- package/src/ui/_compat/types.ts +0 -274
- package/src/ui/components/autocomplete/__workshop__/async.tsx +0 -157
- package/src/ui/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -131
- package/src/ui/components/autocomplete/__workshop__/custom.tsx +0 -90
- package/src/ui/components/autocomplete/__workshop__/example.tsx +0 -80
- package/src/ui/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
- package/src/ui/components/autocomplete/__workshop__/fullscreen.tsx +0 -293
- package/src/ui/components/autocomplete/__workshop__/index.ts +0 -39
- package/src/ui/components/autocomplete/autocomplete.tsx +0 -731
- package/src/ui/components/autocomplete/autocompleteOption.tsx +0 -45
- package/src/ui/components/autocomplete/autocompleteReducer.ts +0 -47
- package/src/ui/components/autocomplete/constants.ts +0 -28
- package/src/ui/components/autocomplete/index.ts +0 -2
- package/src/ui/components/autocomplete/types.ts +0 -108
- package/src/ui/components/breadcrumbs/__workshop__/example.tsx +0 -62
- package/src/ui/components/breadcrumbs/breadcrumbs.tsx +0 -127
- package/src/ui/components/breadcrumbs/index.ts +0 -1
- package/src/ui/components/dialog/__workshop__/activate.tsx +0 -134
- package/src/ui/components/dialog/__workshop__/autoFocus.tsx +0 -29
- package/src/ui/components/dialog/__workshop__/onScroll.tsx +0 -39
- package/src/ui/components/dialog/__workshop__/panes.tsx +0 -82
- package/src/ui/components/dialog/__workshop__/position.tsx +0 -30
- package/src/ui/components/dialog/__workshop__/props.tsx +0 -77
- package/src/ui/components/dialog/__workshop__/wrapped.tsx +0 -76
- package/src/ui/components/dialog/dialog.tsx +0 -433
- package/src/ui/components/dialog/dialogContext.ts +0 -20
- package/src/ui/components/dialog/dialogProvider.tsx +0 -35
- package/src/ui/components/dialog/index.ts +0 -4
- package/src/ui/components/dialog/useDialog.ts +0 -11
- package/src/ui/components/hotkeys/hotkeys.tsx +0 -54
- package/src/ui/components/hotkeys/index.ts +0 -1
- package/src/ui/components/index.ts +0 -9
- package/src/ui/components/menu/__workshop__/asComponent.tsx +0 -45
- package/src/ui/components/menu/__workshop__/avatarMenu.tsx +0 -51
- package/src/ui/components/menu/__workshop__/closableMenuButton.tsx +0 -46
- package/src/ui/components/menu/__workshop__/constrainedInBoundary.tsx +0 -134
- package/src/ui/components/menu/__workshop__/customMenuItem.tsx +0 -45
- package/src/ui/components/menu/__workshop__/customSelectedState.tsx +0 -39
- package/src/ui/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
- package/src/ui/components/menu/__workshop__/groups.tsx +0 -156
- package/src/ui/components/menu/__workshop__/menuButton.tsx +0 -80
- package/src/ui/components/menu/__workshop__/menuGroupRight.tsx +0 -65
- package/src/ui/components/menu/__workshop__/nestedMenu.tsx +0 -22
- package/src/ui/components/menu/__workshop__/onCloseMenuButton.tsx +0 -41
- package/src/ui/components/menu/__workshop__/selectedItem.tsx +0 -69
- package/src/ui/components/menu/__workshop__/shouldFocus.tsx +0 -47
- package/src/ui/components/menu/__workshop__/tones.tsx +0 -25
- package/src/ui/components/menu/__workshop__/withoutArrow.tsx +0 -32
- package/src/ui/components/menu/helpers.ts +0 -82
- package/src/ui/components/menu/index.ts +0 -5
- package/src/ui/components/menu/menu.test.tsx +0 -128
- package/src/ui/components/menu/menu.tsx +0 -200
- package/src/ui/components/menu/menuButton.tsx +0 -275
- package/src/ui/components/menu/menuContext.ts +0 -31
- package/src/ui/components/menu/menuDivider.tsx +0 -22
- package/src/ui/components/menu/menuGroup.tsx +0 -228
- package/src/ui/components/menu/menuItem.tsx +0 -180
- package/src/ui/components/menu/useMenu.ts +0 -21
- package/src/ui/components/menu/useMenuController.ts +0 -241
- package/src/ui/components/skeleton/__workshop__/delay.tsx +0 -70
- package/src/ui/components/skeleton/__workshop__/index.ts +0 -11
- package/src/ui/components/skeleton/__workshop__/skeleton.tsx +0 -64
- package/src/ui/components/skeleton/index.ts +0 -2
- package/src/ui/components/skeleton/skeleton.tsx +0 -53
- package/src/ui/components/skeleton/textSkeleton.tsx +0 -132
- package/src/ui/components/tab/__workshop__/example.tsx +0 -79
- package/src/ui/components/tab/index.ts +0 -3
- package/src/ui/components/tab/tab.tsx +0 -105
- package/src/ui/components/tab/tabList.tsx +0 -74
- package/src/ui/components/tab/tabPanel.tsx +0 -40
- package/src/ui/components/toast/__workshop__/hook.tsx +0 -71
- package/src/ui/components/toast/__workshop__/toast.tsx +0 -26
- package/src/ui/components/toast/index.ts +0 -4
- package/src/ui/components/toast/toast.test.tsx +0 -101
- package/src/ui/components/toast/toast.tsx +0 -211
- package/src/ui/components/toast/toastContext.ts +0 -7
- package/src/ui/components/toast/toastLayer.tsx +0 -38
- package/src/ui/components/toast/toastProvider.tsx +0 -113
- package/src/ui/components/toast/types.ts +0 -28
- package/src/ui/components/toast/useToast.ts +0 -25
- package/src/ui/components/tree/__workshop__/basic.perf.ts +0 -19
- package/src/ui/components/tree/__workshop__/basic.tsx +0 -105
- package/src/ui/components/tree/__workshop__/tabFromElement.tsx +0 -84
- package/src/ui/components/tree/helpers.ts +0 -105
- package/src/ui/components/tree/index.ts +0 -4
- package/src/ui/components/tree/tree.tsx +0 -244
- package/src/ui/components/tree/treeContext.ts +0 -10
- package/src/ui/components/tree/treeGroup.tsx +0 -30
- package/src/ui/components/tree/treeItem.tsx +0 -220
- package/src/ui/components/tree/types.ts +0 -25
- package/src/ui/components/tree/useTree.ts +0 -17
- package/src/ui/constants.ts +0 -79
- package/src/ui/helpers/focus.ts +0 -100
- package/src/ui/helpers/index.ts +0 -5
- package/src/ui/helpers/props.ts +0 -10
- package/src/ui/hooks/index.ts +0 -12
- package/src/ui/hooks/useArrayProp.ts +0 -29
- package/src/ui/hooks/useClickOutside.test.tsx +0 -482
- package/src/ui/hooks/useClickOutside.ts +0 -117
- package/src/ui/hooks/useClickOutsideEvent.test.tsx +0 -115
- package/src/ui/hooks/useClickOutsideEvent.ts +0 -73
- package/src/ui/hooks/useDelayed.test.ts +0 -68
- package/src/ui/hooks/useDelayedState.ts +0 -28
- package/src/ui/hooks/useElementRect/__workshop__/example.tsx +0 -32
- package/src/ui/hooks/useElementRect/index.ts +0 -1
- package/src/ui/hooks/useElementSize.ts +0 -19
- package/src/ui/hooks/useForwardedRef.ts +0 -19
- package/src/ui/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
- package/src/ui/hooks/useMediaIndex/index.ts +0 -1
- package/src/ui/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -36
- package/src/ui/hooks/useMediaIndex/useMediaIndex.ts +0 -104
- package/src/ui/hooks/usePrefersDark.hydration.test.tsx +0 -56
- package/src/ui/hooks/usePrefersDark.test.tsx +0 -19
- package/src/ui/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
- package/src/ui/hooks/usePrefersReducedMotion.test.tsx +0 -19
- package/src/ui/index.ts +0 -9
- package/src/ui/middleware/origin.ts +0 -47
- package/src/ui/observers/elementSizeObserver.ts +0 -116
- package/src/ui/observers/index.ts +0 -2
- package/src/ui/primitives/_selectable/index.ts +0 -1
- package/src/ui/primitives/_selectable/selectable.tsx +0 -31
- package/src/ui/primitives/avatar/__workshop__/asButton.tsx +0 -14
- package/src/ui/primitives/avatar/__workshop__/stack.tsx +0 -25
- package/src/ui/primitives/avatar/__workshop__/withinButton.tsx +0 -63
- package/src/ui/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -72
- package/src/ui/primitives/avatar/avatar.tsx +0 -158
- package/src/ui/primitives/avatar/avatarCounter.tsx +0 -62
- package/src/ui/primitives/avatar/avatarStack.tsx +0 -82
- package/src/ui/primitives/avatar/index.ts +0 -4
- package/src/ui/primitives/avatar/types.ts +0 -17
- package/src/ui/primitives/badge/__workshop__/props.tsx +0 -30
- package/src/ui/primitives/badge/__workshop__/tones.tsx +0 -21
- package/src/ui/primitives/badge/badge.test.tsx +0 -16
- package/src/ui/primitives/badge/badge.tsx +0 -64
- package/src/ui/primitives/badge/index.ts +0 -1
- package/src/ui/primitives/badge/types.ts +0 -8
- package/src/ui/primitives/box/__workshop__/props.tsx +0 -20
- package/src/ui/primitives/box/__workshop__/responsive.tsx +0 -20
- package/src/ui/primitives/box/box.tsx +0 -155
- package/src/ui/primitives/box/index.ts +0 -1
- package/src/ui/primitives/button/__workshop__/custom.tsx +0 -50
- package/src/ui/primitives/button/__workshop__/customIcons.tsx +0 -30
- package/src/ui/primitives/button/__workshop__/disabled.tsx +0 -74
- package/src/ui/primitives/button/__workshop__/index.ts +0 -59
- package/src/ui/primitives/button/__workshop__/props.tsx +0 -58
- package/src/ui/primitives/button/__workshop__/sanityUploadButton.tsx +0 -36
- package/src/ui/primitives/button/__workshop__/stacked.tsx +0 -59
- package/src/ui/primitives/button/__workshop__/uploadButton.tsx +0 -28
- package/src/ui/primitives/button/button.test.tsx +0 -44
- package/src/ui/primitives/button/button.tsx +0 -206
- package/src/ui/primitives/button/index.ts +0 -1
- package/src/ui/primitives/card/__workshop__/allTones.tsx +0 -27
- package/src/ui/primitives/card/__workshop__/asButton.tsx +0 -107
- package/src/ui/primitives/card/__workshop__/asComponent.tsx +0 -27
- package/src/ui/primitives/card/__workshop__/checkered.tsx +0 -26
- package/src/ui/primitives/card/__workshop__/index.ts +0 -18
- package/src/ui/primitives/card/__workshop__/interactive.tsx +0 -30
- package/src/ui/primitives/card/__workshop__/listNavigation.tsx +0 -80
- package/src/ui/primitives/card/__workshop__/props.tsx +0 -55
- package/src/ui/primitives/card/__workshop__/selected.tsx +0 -93
- package/src/ui/primitives/card/card.tsx +0 -119
- package/src/ui/primitives/card/cardContext.ts +0 -10
- package/src/ui/primitives/card/cardProvider.tsx +0 -19
- package/src/ui/primitives/card/index.ts +0 -4
- package/src/ui/primitives/card/types.ts +0 -27
- package/src/ui/primitives/card/useCard.ts +0 -7
- package/src/ui/primitives/checkbox/__workshop__/props.tsx +0 -33
- package/src/ui/primitives/checkbox/__workshop__/tones.tsx +0 -28
- package/src/ui/primitives/checkbox/checkbox.tsx +0 -74
- package/src/ui/primitives/checkbox/index.ts +0 -1
- package/src/ui/primitives/code/__workshop__/opticalAlignment.tsx +0 -48
- package/src/ui/primitives/code/__workshop__/props.tsx +0 -21
- package/src/ui/primitives/code/code.tsx +0 -49
- package/src/ui/primitives/code/index.ts +0 -1
- package/src/ui/primitives/code/refractor.tsx +0 -20
- package/src/ui/primitives/container/__workshop__/example.tsx +0 -20
- package/src/ui/primitives/container/container.tsx +0 -35
- package/src/ui/primitives/container/index.ts +0 -2
- package/src/ui/primitives/flex/__workshop__/example.tsx +0 -34
- package/src/ui/primitives/flex/flex.tsx +0 -29
- package/src/ui/primitives/flex/index.ts +0 -1
- package/src/ui/primitives/grid/grid.tsx +0 -30
- package/src/ui/primitives/grid/index.ts +0 -1
- package/src/ui/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
- package/src/ui/primitives/heading/__workshop__/plain.tsx +0 -32
- package/src/ui/primitives/heading/heading.tsx +0 -62
- package/src/ui/primitives/heading/index.ts +0 -1
- package/src/ui/primitives/index.ts +0 -27
- package/src/ui/primitives/inline/__workshop__/plain.tsx +0 -27
- package/src/ui/primitives/inline/index.ts +0 -1
- package/src/ui/primitives/inline/inline.tsx +0 -50
- package/src/ui/primitives/inline/types.ts +0 -6
- package/src/ui/primitives/kbd/index.ts +0 -1
- package/src/ui/primitives/kbd/kbd.tsx +0 -55
- package/src/ui/primitives/label/__workshop__/plain.tsx +0 -37
- package/src/ui/primitives/label/index.ts +0 -1
- package/src/ui/primitives/label/label.tsx +0 -67
- package/src/ui/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
- package/src/ui/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
- package/src/ui/primitives/popover/__workshop__/PlainStory.tsx +0 -71
- package/src/ui/primitives/popover/__workshop__/RecursiveStory.tsx +0 -70
- package/src/ui/primitives/popover/__workshop__/SidePanelStory.tsx +0 -93
- package/src/ui/primitives/popover/__workshop__/TestStory.tsx +0 -98
- package/src/ui/primitives/popover/constants.ts +0 -22
- package/src/ui/primitives/popover/floating-ui/size.ts +0 -83
- package/src/ui/primitives/popover/helpers.ts +0 -32
- package/src/ui/primitives/popover/index.ts +0 -2
- package/src/ui/primitives/popover/popover.tsx +0 -492
- package/src/ui/primitives/popover/popoverCard.tsx +0 -155
- package/src/ui/primitives/popover/types.ts +0 -6
- package/src/ui/primitives/radio/__workshop__/example.tsx +0 -63
- package/src/ui/primitives/radio/__workshop__/plain.tsx +0 -28
- package/src/ui/primitives/radio/index.ts +0 -1
- package/src/ui/primitives/radio/radio.tsx +0 -49
- package/src/ui/primitives/select/__workshop__/plain.tsx +0 -30
- package/src/ui/primitives/select/__workshop__/readOnly.tsx +0 -23
- package/src/ui/primitives/select/index.ts +0 -1
- package/src/ui/primitives/select/select.tsx +0 -85
- package/src/ui/primitives/spinner/__workshop__/Props.tsx +0 -16
- package/src/ui/primitives/spinner/animatedSpinnerIcon.tsx +0 -16
- package/src/ui/primitives/spinner/index.ts +0 -1
- package/src/ui/primitives/spinner/spinner.tsx +0 -33
- package/src/ui/primitives/stack/__workshop__/plain.tsx +0 -32
- package/src/ui/primitives/stack/index.ts +0 -1
- package/src/ui/primitives/stack/stack.tsx +0 -40
- package/src/ui/primitives/switch/index.ts +0 -1
- package/src/ui/primitives/switch/switch.tsx +0 -75
- package/src/ui/primitives/text/__workshop__/colored.tsx +0 -23
- package/src/ui/primitives/text/__workshop__/example.tsx +0 -39
- package/src/ui/primitives/text/__workshop__/opticalAlignment.tsx +0 -48
- package/src/ui/primitives/text/index.ts +0 -1
- package/src/ui/primitives/text/text.tsx +0 -64
- package/src/ui/primitives/textArea/__workshop__/plain.tsx +0 -50
- package/src/ui/primitives/textArea/index.ts +0 -1
- package/src/ui/primitives/textArea/textArea.tsx +0 -71
- package/src/ui/primitives/textInput/__workshop__/customValidity.tsx +0 -17
- package/src/ui/primitives/textInput/__workshop__/plain.tsx +0 -104
- package/src/ui/primitives/textInput/__workshop__/states.tsx +0 -53
- package/src/ui/primitives/textInput/__workshop__/tones.tsx +0 -277
- package/src/ui/primitives/textInput/__workshop__/typed.tsx +0 -23
- package/src/ui/primitives/textInput/index.ts +0 -1
- package/src/ui/primitives/textInput/textInput.tsx +0 -286
- package/src/ui/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
- package/src/ui/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
- package/src/ui/primitives/tooltip/__workshop__/props.tsx +0 -111
- package/src/ui/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
- package/src/ui/primitives/tooltip/constants.ts +0 -23
- package/src/ui/primitives/tooltip/index.ts +0 -2
- package/src/ui/primitives/tooltip/tooltip.test.tsx +0 -453
- package/src/ui/primitives/tooltip/tooltip.tsx +0 -467
- package/src/ui/primitives/tooltip/tooltipCard.tsx +0 -115
- package/src/ui/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -11
- package/src/ui/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -55
- package/src/ui/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
- package/src/ui/primitives/types.ts +0 -166
- package/src/ui/types/avatar.ts +0 -19
- package/src/ui/types/badge.ts +0 -12
- package/src/ui/types/button.ts +0 -24
- package/src/ui/types/card.ts +0 -6
- package/src/ui/types/dialog.ts +0 -4
- package/src/ui/types/flex.ts +0 -27
- package/src/ui/types/index.ts +0 -15
- package/src/ui/types/popover.ts +0 -4
- package/src/ui/types/props.ts +0 -18
- package/src/ui/types/radius.ts +0 -7
- package/src/ui/types/selectable.ts +0 -7
- package/src/ui/utils/arrow/arrow.tsx +0 -59
- package/src/ui/utils/arrow/index.ts +0 -1
- package/src/ui/utils/boundaryElement/boundaryElement.test.tsx +0 -100
- package/src/ui/utils/boundaryElement/boundaryElementContext.ts +0 -7
- package/src/ui/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
- package/src/ui/utils/boundaryElement/index.ts +0 -3
- package/src/ui/utils/boundaryElement/types.ts +0 -7
- package/src/ui/utils/boundaryElement/useBoundaryElement.ts +0 -26
- package/src/ui/utils/conditionalWrapper/conditionalWrapper.tsx +0 -23
- package/src/ui/utils/conditionalWrapper/index.ts +0 -1
- package/src/ui/utils/elementQuery/__workshop__/customMedia.tsx +0 -30
- package/src/ui/utils/elementQuery/elementQuery.tsx +0 -53
- package/src/ui/utils/elementQuery/index.ts +0 -1
- package/src/ui/utils/errorBoundary.tsx +0 -48
- package/src/ui/utils/getElementRef.ts +0 -26
- package/src/ui/utils/index.ts +0 -9
- package/src/ui/utils/layer/__workshop__/index.ts +0 -24
- package/src/ui/utils/layer/__workshop__/multipleRoots.tsx +0 -49
- package/src/ui/utils/layer/__workshop__/nested.tsx +0 -98
- package/src/ui/utils/layer/__workshop__/responsiveZOffset.tsx +0 -13
- package/src/ui/utils/layer/getLayerContext.test.ts +0 -30
- package/src/ui/utils/layer/getLayerContext.ts +0 -21
- package/src/ui/utils/layer/index.ts +0 -4
- package/src/ui/utils/layer/layer.test.tsx +0 -108
- package/src/ui/utils/layer/layer.tsx +0 -112
- package/src/ui/utils/layer/layerContext.ts +0 -7
- package/src/ui/utils/layer/layerProvider.tsx +0 -110
- package/src/ui/utils/layer/useLayer.ts +0 -26
- package/src/ui/utils/portal/__workshop__/named.tsx +0 -63
- package/src/ui/utils/portal/index.ts +0 -4
- package/src/ui/utils/portal/portal.test.tsx +0 -103
- package/src/ui/utils/portal/portal.ts +0 -46
- package/src/ui/utils/portal/portalContext.ts +0 -31
- package/src/ui/utils/portal/portalProvider.tsx +0 -79
- package/src/ui/utils/portal/types.ts +0 -9
- package/src/ui/utils/portal/usePortal.ts +0 -25
- package/src/ui/utils/srOnly/index.ts +0 -1
- package/src/ui/utils/srOnly/srOnly.tsx +0 -35
- package/src/ui/utils/virtualList/__workshop__/index.ts +0 -29
- package/src/ui/utils/virtualList/__workshop__/infiniteList.tsx +0 -48
- package/src/ui/utils/virtualList/index.ts +0 -1
- package/src/ui/utils/virtualList/virtualList.tsx +0 -189
- /package/src/{ui/global.ts → core/__DEV__.ts} +0 -0
- /package/src/{ui/components/autocomplete/__mocks__ → core/components/autocomplete/__workshop__/mock}/apiStore.ts +0 -0
- /package/src/{ui/components/autocomplete/__mocks__ → core/components/autocomplete/__workshop__/mock}/countries.ts +0 -0
- /package/src/{ui → core}/components/autocomplete/__workshop__/types.ts +0 -0
- /package/src/{ui → core}/components/breadcrumbs/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/components/dialog/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/components/dialog/__workshop__/layering.tsx +0 -0
- /package/src/{ui → core}/components/dialog/__workshop__/nested.tsx +0 -0
- /package/src/{ui → core}/components/dialog/__workshop__/provider.tsx +0 -0
- /package/src/{ui → core}/components/hotkeys/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/components/hotkeys/__workshop__/plain.tsx +0 -0
- /package/src/{ui → core}/components/menu/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/components/tab/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/components/toast/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/components/toast/toastState.ts +0 -0
- /package/src/{ui → core}/components/tree/__workshop__/index.ts +0 -0
- /package/src/{ui/utils → core/components}/virtualList/__workshop__/changingProps.tsx +0 -0
- /package/src/{ui/utils → core/components}/virtualList/__workshop__/elementScroll.tsx +0 -0
- /package/src/{ui/utils → core/components}/virtualList/__workshop__/windowScrolll.tsx +0 -0
- /package/src/{ui → core}/helpers/animation.ts +0 -0
- /package/src/{ui → core}/helpers/element.ts +0 -0
- /package/src/{ui → core}/helpers/scroll.ts +0 -0
- /package/src/{ui → core}/hooks/useCustomValidity.ts +0 -0
- /package/src/{ui → core}/hooks/useElementRect/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/hooks/useElementRect/useElementRect.ts +0 -0
- /package/src/{ui → core}/hooks/useGlobalKeyDown.ts +0 -0
- /package/src/{ui → core}/hooks/useIsomorphicEffect.ts +0 -0
- /package/src/{ui → core}/hooks/useMatchMedia.ts +0 -0
- /package/src/{ui → core}/hooks/useMediaIndex/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/hooks/useMounted.ts +0 -0
- /package/src/{ui → core}/hooks/usePrefersDark.ts +0 -0
- /package/src/{ui → core}/hooks/usePrefersReducedMotion.ts +0 -0
- /package/src/{ui → core}/lib/createGlobalScopedContext.ts +0 -0
- /package/src/{ui → core}/lib/globalScope.ts +0 -0
- /package/src/{theme/build → core}/lib/isRecord.ts +0 -0
- /package/src/{ui/observers/resizeObserver.ts → core/observers/resize.ts} +0 -0
- /package/src/{ui/utils → core/primitives}/arrow/cmds.ts +0 -0
- /package/src/{ui → core}/primitives/avatar/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/badge/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/box/__workshop__/index.ts +0 -0
- /package/src/{ui/types/box.ts → core/primitives/box/types.ts} +0 -0
- /package/src/{ui → core}/primitives/button/__workshop__/mixedChildren.tsx +0 -0
- /package/src/{ui → core}/primitives/button/__workshop__/styled1.tsx +0 -0
- /package/src/{ui → core}/primitives/button/__workshop__/styled2.tsx +0 -0
- /package/src/{ui → core}/primitives/card/__workshop__/styled.tsx +0 -0
- /package/src/{ui → core}/primitives/checkbox/__workshop__/example.tsx +0 -0
- /package/src/{ui → core}/primitives/checkbox/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/checkbox/__workshop__/readOnly.tsx +0 -0
- /package/src/{ui → core}/primitives/code/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/container/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/container/types.ts +0 -0
- /package/src/{ui → core}/primitives/flex/__workshop__/gap.tsx +0 -0
- /package/src/{ui → core}/primitives/flex/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/grid/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/grid/__workshop__/responsive.tsx +0 -0
- /package/src/{ui/types/grid.ts → core/primitives/grid/types.ts} +0 -0
- /package/src/{ui → core}/primitives/heading/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/inline/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/kbd/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/kbd/__workshop__/plain.tsx +0 -0
- /package/src/{ui → core}/primitives/label/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/label/__workshop__/opticalAlignment.tsx +0 -0
- /package/src/{ui/utils → core/primitives}/layer/__workshop__/_debug.tsx +0 -0
- /package/src/{ui/utils → core/primitives}/layer/types.ts +0 -0
- /package/src/{ui → core}/primitives/popover/__workshop__/MarginsStory.tsx +0 -0
- /package/src/{ui → core}/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -0
- /package/src/{ui → core}/primitives/popover/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/radio/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/select/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/spinner/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/stack/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/switch/__workshop__/example.tsx +0 -0
- /package/src/{ui → core}/primitives/switch/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/switch/__workshop__/props.tsx +0 -0
- /package/src/{ui → core}/primitives/text/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/textArea/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/textInput/__workshop__/clearButton.tsx +0 -0
- /package/src/{ui → core}/primitives/textInput/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/textInput/__workshop__/readOnly.tsx +0 -0
- /package/src/{ui → core}/primitives/tooltip/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/index.ts +0 -0
- /package/src/{ui → core}/primitives/tooltip/tooltipDelayGroup/types.ts +0 -0
- /package/src/{ui → core}/types/gridItem.ts +0 -0
- /package/src/{ui → core}/types/placement.ts +0 -0
- /package/src/{ui/types/text.ts → core/types/textAlign.ts} +0 -0
- /package/src/{ui → core}/utils/boundaryElement/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/utils/boundaryElement/__workshop__/plain.tsx +0 -0
- /package/src/{ui → core}/utils/elementQuery/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/utils/elementQuery/helpers.ts +0 -0
- /package/src/{ui → core}/utils/portal/__workshop__/index.ts +0 -0
- /package/src/{ui → core}/utils/spanWithTextOverflow.tsx +0 -0
- /package/src/css/{aspects → props}/pointerEvents/types.ts +0 -0
- /package/src/theme/{build → v2/build}/_deprecated/color/index.ts +0 -0
- /package/src/theme/{build → v2/build}/colorToken/index.ts +0 -0
- /package/src/theme/{build → v2/build}/index.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/blend/index.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/index.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/rgba.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/types.ts +0 -0
- /package/src/{ui → theme/v2/build}/lib/isRecord.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/utils.ts +0 -0
- /package/src/theme/{build → v2/build}/merge.ts +0 -0
- /package/src/theme/{config → v2/config}/index.ts +0 -0
- /package/src/theme/{config → v2/config}/tokens/color/index.ts +0 -0
- /package/src/theme/{palette → v3/palette}/index.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/core/_compat/helpers.ts","../src/core/_compat/styles/_responsive.ts","../src/core/helpers/animation.ts","../src/core/helpers/focus.ts","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/primitives/container/container.tsx","../src/core/components/dialog/isTargetWithinScope.ts","../src/core/components/dialog/dialogCard.tsx","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastLayer.tsx","../src/core/components/toast/toastState.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx","../src/core/helpers/scroll.ts","../src/core/observers/resize.ts","../src/core/components/virtualList/virtualList.tsx","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../src/core/observers/elementSize.ts","../src/core/hooks/useElementSize.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/primitives/label/label.tsx","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/badge/badge.tsx","../src/core/primitives/checkbox/checkbox.tsx","../src/core/primitives/code/code.tsx","../src/core/primitives/heading/heading.tsx","../src/core/primitives/inline/inline.tsx","../src/core/primitives/radio/radio.tsx","../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/primitives/root/RootProvider.tsx","../src/core/primitives/root/Root.tsx","../src/core/primitives/select/select.tsx","../src/core/primitives/skeleton/skeleton.tsx","../src/core/primitives/skeleton/codeSkeleton.tsx","../src/core/primitives/skeleton/headingSkeleton.tsx","../src/core/primitives/skeleton/labelSkeleton.tsx","../src/core/primitives/skeleton/textSkeleton.tsx","../src/core/primitives/srOnly/srOnly.tsx","../src/core/primitives/switch/switch.tsx","../src/core/primitives/textArea/textArea.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/utils/elementQuery/helpers.ts","../src/core/utils/elementQuery/elementQuery.tsx","../src/core/utils/errorBoundary.tsx"],"sourcesContent":["import {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgba as _rgba,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n screen as _screen,\n} from '@sanity/ui/theme'\n\nexport {\n /** @deprecated use `px` from `@sanity/ui/css` */\n px,\n /** @deprecated use `rem` from `@sanity/ui/css` */\n rem,\n} from '@sanity/ui/css'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n","import type {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n * @deprecated do not use\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","import {\n isHTMLAnchorElement,\n isHTMLButtonElement,\n isHTMLElement,\n isHTMLInputElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n try {\n element.focus()\n } catch {\n // ignore\n }\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","import {type KeyboardEvent, type ReactElement, type ReactNode, useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers/element'\n\nexport interface AutocompleteOptionProps {\n children: ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import type {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import type {Placement} from '../../types/placement'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport type {ResponsiveProp} from '@sanity/ui/css'\nimport type {Radius, Space} from '@sanity/ui/theme'\nimport {\n type ChangeEvent,\n cloneElement,\n type ElementType,\n type FocusEvent,\n type ForwardedRef,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_raf} from '../../helpers/animation'\nimport {_hasFocus, focusFirstDescendant} from '../../helpers/focus'\nimport {useResponsiveProp} from '../../hooks/useResponsiveProp'\nimport {Box, type BoxOwnProps} from '../../primitives/box/box'\nimport {Button} from '../../primitives/button/button'\nimport {Popover, type PopoverProps} from '../../primitives/popover/popover'\nimport {Selectable} from '../../primitives/selectable/selectable'\nimport {AnimatedSpinnerIcon} from '../../primitives/spinner/animatedSpinnerIcon'\nimport {Stack} from '../../primitives/stack/stack'\nimport {Text} from '../../primitives/text/text'\nimport {TextInput, type TextInputOwnProps} from '../../primitives/textInput/textInput'\nimport type {ComponentType, Props} from '../../types/props'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport type {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/** @public */\nexport const DEFAULT_AUTOCOMPLETE_ELEMENT = 'input'\n\n/** @public */\nexport type AutocompleteOwnProps<O extends BaseAutocompleteOption = BaseAutocompleteOption> =\n TextInputOwnProps & {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: O) => boolean\n icon?: ElementType | ReactNode\n /** @beta */\n listBox?: BoxOwnProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: O[]\n padding?: ResponsiveProp<Space>\n popover?: Omit<Props<PopoverProps, 'div'>, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: O) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: ForwardedRef<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: O) => string\n suffix?: ReactNode\n value?: string\n }\n\n/** @public */\nexport type AutocompleteElementType = 'input' | ComponentType\n\n/** @public */\nexport type AutocompleteProps<\n E extends AutocompleteElementType = AutocompleteElementType,\n O extends BaseAutocompleteOption = BaseAutocompleteOption,\n> = Props<AutocompleteOwnProps<O>, E>\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport function Autocomplete<\n E extends AutocompleteElementType = typeof DEFAULT_AUTOCOMPLETE_ELEMENT,\n O extends BaseAutocompleteOption = BaseAutocompleteOption,\n>(props: AutocompleteProps<E, O>) {\n const {\n as = DEFAULT_AUTOCOMPLETE_ELEMENT,\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...rest\n } = props as AutocompleteProps<typeof DEFAULT_AUTOCOMPLETE_ELEMENT, O>\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Selectable as=\"button\" padding={paddingProp} radius={2}>\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Selectable>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLUListElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useResponsiveProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(() => {\n const result = Object.fromEntries(\n Object.entries(padding).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, (value as Space) - 2]\n }),\n ) as ResponsiveProp<Space>\n\n return result\n }, [padding])\n\n const openButtonPadding = useMemo(\n () => Object.values(padding).map((v) => Math.max((v as Space) - 1, 0)) as ResponsiveProp<Space>,\n [padding],\n )\n\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n display=\"block\"\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...rest}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n as={as}\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={inputElementRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <Box\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n gap={1}\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </Box>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={3}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n renderPopover,\n ])\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </div>\n )\n}\n","import {breadcrumbs, type GapStyleProps} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n Children,\n Fragment,\n isValidElement,\n type ReactNode,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useClickOutsideEvent} from '../../hooks/useClickOutsideEvent'\nimport {Box} from '../../primitives/box/box'\nimport {Button, type ButtonProps} from '../../primitives/button/button'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Popover} from '../../primitives/popover/popover'\nimport {Stack} from '../../primitives/stack/stack'\nimport {Text} from '../../primitives/text/text'\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @beta */\nexport const DEFAULT_BREADCRUMBS_ELEMENT = 'nav'\n\n/** @beta */\nexport type BreadcrumbsOwnProps = GapStyleProps & {\n expandButton?: Omit<ButtonProps<'button'>, 'as' | 'onClick' | 'selected'>\n maxLength?: number\n separator?: ReactNode\n /** @deprecated - Use `gap`, `gapX`, `gapY` instead */\n space?: number | number[]\n}\n\n/** @beta */\nexport type BreadcrumbsElementType = 'div' | 'nav' | ComponentType\n\n/** @beta */\nexport type BreadcrumbsProps<E extends BreadcrumbsElementType = BreadcrumbsElementType> = Props<\n BreadcrumbsOwnProps,\n E\n>\n\n/** @beta */\nexport function Breadcrumbs<E extends BreadcrumbsElementType = typeof DEFAULT_BREADCRUMBS_ELEMENT>(\n props: BreadcrumbsProps<E>,\n) {\n const {\n as = DEFAULT_BREADCRUMBS_ELEMENT,\n children,\n className,\n expandButton: expandButtonProps,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n gap: _gapProp,\n gapX = props.gap ?? (props.space as Space | undefined) ?? 2,\n gapY = props.gap ?? (props.space as Space | undefined) ?? 2,\n maxLength,\n separator,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n space: _spaceProp,\n ...rest\n } = props as BreadcrumbsProps<typeof DEFAULT_BREADCRUMBS_ELEMENT>\n\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" gap={gapY} overflow=\"auto\">\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n padding={2}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <Button\n mode=\"bleed\"\n padding={0}\n text=\"…\"\n {...expandButtonProps}\n onClick={open ? collapse : expand}\n ref={expandElementRef}\n selected={open}\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, expandButtonProps, gapY, maxLength, open, rawItems])\n\n return (\n <Flex\n as={as}\n data-ui=\"Breadcrumbs\"\n {...rest}\n className={breadcrumbs({className})}\n gapX={gapX}\n gapY={gapY}\n >\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\">\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Flex>\n )\n}\n","import {container, type ContainerStyleProps} from '@sanity/ui/css'\n\nimport type {Props} from '../../types/props'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box/box'\n\n/** @public */\nexport const DEFAULT_CONTAINER_ELEMENT = 'div'\n\n/** @public */\nexport type ContainerOwnProps = Omit<BoxOwnProps, 'width'> & ContainerStyleProps\n\n/** @public */\nexport type ContainerElementType = BoxElementType\n\n/** @public */\nexport type ContainerProps<E extends ContainerElementType = ContainerElementType> = Props<\n ContainerOwnProps,\n E\n>\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport function Container<E extends ContainerElementType = typeof DEFAULT_CONTAINER_ELEMENT>(\n props: ContainerProps<E>,\n) {\n const {\n as = DEFAULT_CONTAINER_ELEMENT,\n className,\n width = 2,\n ...rest\n } = props as ContainerProps<typeof DEFAULT_CONTAINER_ELEMENT>\n\n return <Box data-ui=\"Container\" {...rest} as={as} className={container({className, width})} />\n}\n","import {containsOrEqualsElement} from '../../helpers/element'\n\nexport function isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {\n dialogCard,\n dialogContent,\n dialogFooter,\n dialogHeader,\n dialogScroller,\n dialogScrollerShadowBottom,\n dialogScrollerShadowTop,\n} from '@sanity/ui/css'\nimport {\n type ForwardedRef,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\n\nimport {focusFirstDescendant} from '../../helpers/focus'\nimport {useClickOutsideEvent} from '../../hooks/useClickOutsideEvent'\nimport {useGlobalKeyDown} from '../../hooks/useGlobalKeyDown'\nimport {Box} from '../../primitives/box/box'\nimport {Button} from '../../primitives/button/button'\nimport {Card, type CardElementType, type CardOwnProps} from '../../primitives/card/card'\nimport {Flex} from '../../primitives/flex/flex'\nimport {useLayer} from '../../primitives/layer/useLayer'\nimport {Text} from '../../primitives/text/text'\nimport type {Props} from '../../types/props'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {usePortal} from '../../utils/portal/usePortal'\nimport {isTargetWithinScope} from './isTargetWithinScope'\n\n/** @internal */\nexport const DEFAULT_DIALOG_CARD_ELEMENT = 'div'\n\n/** @internal */\nexport type DialogCardOwnProps = CardOwnProps & {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: ReactNode\n contentRef?: ForwardedRef<HTMLDivElement>\n footer: ReactNode\n header: ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n}\n\n/** @internal */\nexport type DialogCardElementType = CardElementType\n\n/** @internal */\nexport type DialogCardProps<E extends DialogCardElementType = DialogCardElementType> = Props<\n DialogCardOwnProps,\n E\n>\n\n/** @internal */\n\nexport function DialogCard<E extends DialogCardElementType = typeof DEFAULT_DIALOG_CARD_ELEMENT>(\n props: DialogCardProps<E>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n as = DEFAULT_DIALOG_CARD_ELEMENT,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n ref: forwardedRef,\n ...rest\n } = props as DialogCardProps<typeof DEFAULT_DIALOG_CARD_ELEMENT>\n\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n const [scrollTop, setScrollTop] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n useEffect(() => {\n const el = contentRef.current\n\n if (!el) return\n\n const handleScroll = () => {\n // console.log('scroll', el.scrollTop)\n setScrollTop(el.scrollTop)\n }\n\n el.addEventListener('scroll', handleScroll, {passive: true})\n\n return () => {\n el.removeEventListener('scroll', handleScroll)\n }\n }, [])\n\n return (\n <Card\n {...rest}\n as={as}\n className={dialogCard()}\n display=\"flex\"\n flexDirection=\"column\"\n ref={ref}\n >\n {showHeader && (\n <Flex align=\"flex-start\" className={dialogHeader()} padding={3} position=\"relative\">\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n )}\n\n <Box className={dialogContent()} flex={1} position=\"relative\" tabIndex={-1}>\n {showHeader && (\n <div\n className={dialogScrollerShadowTop()}\n style={{opacity: Math.min(scrollTop, 32) / 32}}\n />\n )}\n\n <Box className={dialogScroller()} overflow=\"auto\" ref={contentRef}>\n {children}\n </Box>\n\n {footer && <div className={dialogScrollerShadowBottom()} />}\n </Box>\n\n {footer && (\n <Box className={dialogFooter()} position=\"relative\">\n {footer}\n </Box>\n )}\n </Card>\n )\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {DialogPosition} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: ResponsiveProp<DialogPosition>\n zOffset?: ResponsiveProp<number>\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\n\nimport {DialogContext, type DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {\n type ContainerStyleProps,\n dialog,\n dialogContainer,\n type ResponsiveProp,\n} from '@sanity/ui/css'\nimport type {Radius, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {type FocusEvent, type ForwardedRef, type ReactNode, useCallback, useRef} from 'react'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {isHTMLElement} from '../../helpers/element'\nimport {focusFirstDescendant, focusLastDescendant} from '../../helpers/focus'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {useResponsiveProp} from '../../hooks/useResponsiveProp'\nimport type {CardTone} from '../../primitives/card/types'\nimport {Container} from '../../primitives/container/container'\nimport {Layer, type LayerOwnProps, type LayerProps} from '../../primitives/layer/layer'\nimport type {ComponentType, Props} from '../../types/props'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {Portal} from '../../utils/portal/portal'\nimport {usePortal} from '../../utils/portal/usePortal'\nimport {DialogCard} from './dialogCard'\nimport {isTargetWithinScope} from './isTargetWithinScope'\nimport type {DialogPosition} from './types'\nimport {useDialog} from './useDialog'\n\n/** @public */\nexport const DEFAULT_DIALOG_ELEMENT = 'div'\n\n/** @public */\nexport type DialogOwnProps = ContainerStyleProps &\n Omit<LayerOwnProps, 'width'> & {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n cardRadius?: ResponsiveProp<Radius>\n contentRef?: ForwardedRef<HTMLDivElement>\n footer?: ReactNode\n header?: ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n open?: boolean\n portal?: string\n position?: ResponsiveProp<DialogPosition>\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n zOffset?: number | number[]\n }\n\n/** @public */\nexport type DialogElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type DialogProps<E extends DialogElementType = DialogElementType> = Props<DialogOwnProps, E>\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport function Dialog<E extends DialogElementType = typeof DEFAULT_DIALOG_ELEMENT>(\n props: DialogProps<E>,\n) {\n const context = useDialog()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n animate: _animate = false,\n cardRadius: cardRadiusProp = 4,\n children,\n className,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n shadow: cardShadow = 4,\n width = 0,\n zOffset: _zOffsetProp,\n tone,\n ...rest\n } = props as DialogProps<typeof DEFAULT_DIALOG_ELEMENT>\n\n const positionProp = _positionProp ?? context.position ?? 'fixed'\n const zOffsetProp = _zOffsetProp ?? context.zOffset ?? Z_OFFSETS.dialog\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = useResponsiveProp(cardRadiusProp)\n const position = useResponsiveProp(positionProp)\n const zOffset = useResponsiveProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <Layer\n {...rest}\n aria-labelledby={labelId}\n aria-modal\n className={dialog({className})}\n data-animate={animate ? '' : undefined}\n data-ui=\"Dialog\"\n display=\"flex\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n padding={padding}\n position={position}\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <Container\n alignItems=\"center\"\n className={dialogContainer()}\n data-ui=\"DialogCard\"\n flexDirection=\"column\"\n display=\"flex\"\n justifyContent=\"center\"\n width={width}\n >\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n tone={tone}\n width={width}\n >\n {children}\n </DialogCard>\n </Container>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </Layer>\n </Portal>\n )\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\nimport {type ReactElement, type ReactNode, useMemo} from 'react'\n\nimport {DialogContext, type DialogContextValue} from './dialogContext'\nimport type {DialogPosition} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: ReactNode\n position?: ResponsiveProp<DialogPosition>\n zOffset?: ResponsiveProp<number>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): ReactElement {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","import type {Radius, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n type FocusEvent,\n type ForwardedRef,\n type KeyboardEvent,\n type MouseEvent as ReactMouseEvent,\n type ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport type {ButtonProps} from '../../primitives/button/button'\nimport {Popover, type PopoverProps} from '../../primitives/popover/popover'\nimport type {Placement} from '../../types/placement'\nimport type {Props} from '../../types/props'\nimport type {MenuProps} from './menu'\n\n/** @public */\nexport type MenuButtonProps = {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: ReactElement<ButtonProps>\n id: string\n menu?: ReactElement\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n ref?: ForwardedRef<HTMLButtonElement | null>\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport function MenuButton(props: MenuButtonProps) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n ref: forwardedRef,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: ReactMouseEvent<HTMLElement>) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: Props<MenuProps, 'div'> = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(() => {\n if (!buttonProp) return null\n\n const buttonProps: ButtonProps<'button'> = {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n }\n\n return cloneElement(buttonProp, buttonProps)\n }, [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open])\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n}\n","import {Box, type BoxOwnProps} from '../../primitives/box/box'\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @public */\nexport const DEFAULT_TAB_PANEL_ELEMENT = 'div'\n\n/** @public */\nexport type TabPanelOwnProps = BoxOwnProps & {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/** @public */\nexport type TabPanelElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TabPanelProps<E extends TabPanelElementType = TabPanelElementType> = Props<\n TabPanelOwnProps,\n E\n>\n\n/** @public */\nexport function TabPanel<E extends TabPanelElementType = typeof DEFAULT_TAB_PANEL_ELEMENT>(\n props: TabPanelProps<E>,\n) {\n const {\n as = DEFAULT_TAB_PANEL_ELEMENT,\n children,\n tabIndex,\n ...rest\n } = props as TabPanelProps<typeof DEFAULT_TAB_PANEL_ELEMENT>\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...rest}\n as={as}\n role=\"tabpanel\"\n tabIndex={tabIndex === undefined ? 0 : tabIndex}\n >\n {children}\n </Box>\n )\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {type RadiusStyleProps, toast} from '@sanity/ui/css'\nimport {motion, type Variant, type Variants} from 'framer-motion'\nimport {type ReactNode} from 'react'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives/box/box'\nimport {Button} from '../../primitives/button/button'\nimport {Card} from '../../primitives/card/card'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Stack} from '../../primitives/stack/stack'\nimport {Text} from '../../primitives/text/text'\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @internal */\nexport const DEFAULT_TOAST_ELEMENT = 'li'\n\n/** @internal */\nexport type ToastOwnProps = RadiusStyleProps & {\n closable?: boolean\n description?: ReactNode\n onClose?: () => void\n title?: ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n}\n\n/** @internal */\nexport type ToastElementType = 'li' | ComponentType\n\n/** @internal */\nexport type ToastProps<E extends ToastElementType = ToastElementType> = Props<ToastOwnProps, E>\n\n// Support pattern used by Sanity Studio, that works around the lack of `duration: Infinity` support in older @sanity/ui versions\n// https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\nconst LONG_ENOUGH_BUT_NOT_TOO_LONG = 1000 * 60 * 60 * 24 * 24\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst STATUS_CARD_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} as const\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} as const\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss when the duration expires.\n *\n * @internal\n */\nexport function Toast<E extends ToastElementType = typeof DEFAULT_TOAST_ELEMENT>(\n props: ToastProps<E>,\n) {\n const {\n as = DEFAULT_TOAST_ELEMENT,\n closable,\n description,\n duration,\n onClose,\n radius = 3,\n title,\n status,\n ...rest\n } = props as ToastProps<typeof DEFAULT_TOAST_ELEMENT>\n\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n const prefersReducedMotion = usePrefersReducedMotion()\n\n const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n const transition = visualDuration ? {type: 'spring', visualDuration, bounce: 0.25} : {duration: 0}\n\n const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG\n const initial: ContainerVariants[] = ['hidden', 'initial']\n const animate: ContainerVariants[] = ['visible', 'slideIn']\n const exit: ContainerVariants[] = ['hidden', 'slideOut']\n\n return (\n <MotionCard\n as={as}\n className={toast()}\n data-ui=\"Toast\"\n role={role}\n {...rest}\n custom={visualDuration}\n data-has-duration={hasDuration ? '' : undefined}\n radius={radius}\n shadow={2}\n tone={cardTone}\n layout=\"position\"\n variants={container}\n initial={initial}\n animate={animate}\n exit={exit}\n transition={transition}\n position=\"relative\"\n >\n <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n <Flex flex={1} overflowX=\"auto\" padding={3}>\n <Stack gap={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <MotionText muted size={1} variants={content} transition={transition}>\n {description}\n </MotionText>\n )}\n </Stack>\n </Flex>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </MotionFlex>\n </MotionCard>\n )\n}\n\nconst container = {\n initial: {y: 32, scale: 0.5, zIndex: 1},\n hidden: {opacity: 0},\n visible: (visualDuration: number) => {\n if (!visualDuration) return {opacity: 1}\n\n return {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n staggerChildren: visualDuration / 3,\n duration: visualDuration / 3,\n },\n }\n },\n slideIn: {\n y: 0,\n scale: 1,\n },\n slideOut: {\n zIndex: 0,\n scale: 0.75,\n },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n initial: {\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionCard = motion.create(Card)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {type GapStyleProps, type PaddingStyleProps, toastLayer} from '@sanity/ui/css'\n\nimport {Grid} from '../../primitives/grid/grid'\nimport {useLayer} from '../../primitives/layer/useLayer'\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @internal */\nexport const DEFAULT_TOAST_LAYER_ELEMENT = 'ul'\n\n/** @internal */\nexport type ToastLayerOwnProps = GapStyleProps & PaddingStyleProps\n\n/** @internal */\nexport type ToastLayerElementType = 'ul' | ComponentType\n\n/** @internal */\nexport type ToastLayerProps<E extends ToastLayerElementType = ToastLayerElementType> = Props<\n ToastLayerOwnProps,\n E\n>\n\n/**\n * @internal\n */\nexport function ToastLayer<E extends ToastLayerElementType = typeof DEFAULT_TOAST_LAYER_ELEMENT>(\n props: ToastLayerProps<E>,\n) {\n const {\n as = DEFAULT_TOAST_LAYER_ELEMENT,\n children,\n padding = 4,\n paddingX,\n paddingY,\n gap = 3,\n } = props as ToastLayerProps<typeof DEFAULT_TOAST_LAYER_ELEMENT>\n\n const {zIndex} = useLayer()\n\n return (\n <Grid\n as={as}\n className={toastLayer()}\n data-ui=\"ToastProvider\"\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n gap={gap}\n columns={1}\n style={{zIndex}}\n >\n {children}\n </Grid>\n )\n}\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\nimport {AnimatePresence} from 'framer-motion'\nimport {startTransition, useMemo, useState} from 'react'\n\nimport {useMounted} from '../../hooks/useMounted'\nimport {LayerProvider} from '../../primitives/layer/layerProvider'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastLayer, type ToastLayerProps} from './toastLayer'\nimport {generateToastId} from './toastState'\nimport type {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n params: ToastParams\n}[]\n\n/** @public */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n children?: React.ReactNode\n zOffset?: ResponsiveProp<number>\n}\n\n/** @public */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n const [state, setState] = useState<ToastState>([])\n const mounted = useMounted()\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n const id = params.id ?? generateToastId()\n const duration = params.duration ?? 5000\n\n startTransition(() => {\n setState((prevState): ToastState => {\n /**\n * Backwards compatibility for `sanity` patterns workaround a lack of programatically dismissible toasts.\n * It uses a super short duration that closes the toast immediately in previous versions of `@sanity/ui`.\n * We interpret this as a request to dismiss the toast immediately, and remove it from the state right away.\n * Even once we support programatic dismissal we'll need to keep this for backwards compatibility with v2 and v1.\n */\n if (duration === 0.01) {\n return prevState.filter((toast) => toast.id !== id)\n }\n\n /**\n * Creates a function to dismiss this specific toast.\n * This function will be passed to the Toast component\n * and called either on close button click or after duration.\n */\n const dismiss = () => {\n startTransition(() => {\n if (timeoutId) {\n clearTimeout(timeoutId)\n }\n\n setState((currentState) => currentState.filter((toast) => toast.id !== id))\n })\n }\n\n const timeoutId = setTimeout(dismiss, duration)\n\n /**\n * Create updated state by:\n * 1. Removing any existing toast with the same ID (prevents duplicates)\n * 2. Adding the new toast with its dismiss handler\n * 3. Updates the `updatedAt` timestamp, which resets progress bar count downs.\n */\n return [\n ...prevState.filter((toast) => toast.id !== id),\n {\n dismiss,\n id,\n params: {...params, duration},\n },\n ]\n })\n })\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <LayerProvider zOffset={zOffset}>\n <ToastLayer padding={padding} paddingX={paddingX} paddingY={paddingY} gap={gap}>\n <AnimatePresence initial={false} mode=\"popLayout\">\n {state.map(({dismiss, id, params}) => (\n <Toast\n key={id}\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n />\n ))}\n </AnimatePresence>\n </ToastLayer>\n </LayerProvider>\n )}\n </ToastContext.Provider>\n )\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport type {ToastContextValue} from './types'\n\n/** @public */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): 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('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import type {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import type {ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n type FocusEvent,\n type KeyboardEvent,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Stack} from '../../primitives/stack/stack'\nimport type {ComponentType, Props} from '../../types/props'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport type {TreeContextValue, TreeState} from './types'\n\n/** @beta */\nexport const DEFAULT_TREE_ELEMENT = 'div'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type TreeOwnProps = {\n gap?: ResponsiveProp<Space>\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @beta */\nexport type TreeElementType = 'div' | ComponentType\n\n/** @beta */\nexport type TreeProps<E extends TreeElementType = TreeElementType> = Props<TreeOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Tree<E extends TreeElementType = typeof DEFAULT_TREE_ELEMENT>(props: TreeProps<E>) {\n const {\n children,\n gap,\n space = 1,\n onFocus,\n ref: forwardedRef,\n ...rest\n } = props as TreeProps<typeof DEFAULT_TREE_ELEMENT>\n\n const ref = useRef<HTMLDivElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...rest}\n gap={gap ?? space}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n}\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport type {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {memo, type ReactElement} from 'react'\n\nimport {Stack} from '../../primitives/stack/stack'\nimport type {ComponentType, Props} from '../../types/props'\nimport {useTree} from './useTree'\n\n/** @public */\nexport const DEFAULT_TREE_GROUP_ELEMENT = 'div'\n\n/** @public */\nexport type TreeGroupElementType = 'div' | ComponentType\n\n/** @public */\nexport type TreeGroupOwnProps = {\n expanded?: boolean\n}\n\n/** @public */\nexport type TreeGroupProps<E extends TreeGroupElementType = TreeGroupElementType> = Props<\n TreeGroupOwnProps,\n E\n>\n\nexport const TreeGroup = memo(function TreeGroup(\n props: Props<TreeGroupProps, 'div'>,\n): ReactElement {\n const {\n children,\n expanded = false,\n ...rest\n } = props as TreeGroupProps<typeof DEFAULT_TREE_GROUP_ELEMENT>\n\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...rest}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n gap={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {type ResponsiveProp, treeItem, vars} from '@sanity/ui/css'\nimport type {FontTextSize, Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {\n type ElementType,\n type KeyboardEvent,\n type MouseEvent,\n type MouseEventHandler,\n type ReactNode,\n type Ref,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n} from 'react'\n\nimport {Box, type BoxProps} from '../../primitives/box/box'\nimport type {CardOwnProps} from '../../primitives/card/card'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Selectable, type SelectableElementType} from '../../primitives/selectable/selectable'\nimport {Text} from '../../primitives/text/text'\nimport type {ComponentType, Props} from '../../types/props'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/** @beta */\nexport const DEFAULT_TREE_ITEM_ELEMENT = 'a'\n\n/** @beta */\nexport type TreeItemOwnProps = CardOwnProps & {\n expanded?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType\n /**\n * Allows passing a custom element type to the link component\n * @internal\n */\n linkAs?: SelectableElementType\n onClick?: MouseEventHandler<HTMLAnchorElement | HTMLLIElement>\n padding?: ResponsiveProp<Space>\n space?: ResponsiveProp<Space>\n text?: ReactNode\n weight?: ThemeFontWeightKey\n}\n\n/** @beta */\nexport type TreeItemElementType = 'a' | 'li' | ComponentType\n\n/** @beta */\nexport type TreeItemProps<E extends TreeItemElementType = TreeItemElementType> = Props<\n TreeItemOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TreeItem<E extends TreeItemElementType = typeof DEFAULT_TREE_ITEM_ELEMENT>(\n props: TreeItemProps<E>,\n) {\n const {\n children,\n className,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs = 'a',\n muted,\n onClick,\n padding = 2,\n radius = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...rest\n } = props as TreeItemProps<typeof DEFAULT_TREE_ITEM_ELEMENT>\n\n const rootRef = useRef<HTMLElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const itemPath = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const focused = tree.focusedElement && tree.focusedElement === rootRef.current\n const tabIndex = focused ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: MouseEvent<HTMLAnchorElement> | MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex gap={space} padding={padding}>\n <Box\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\n </Text>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <Box\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...(rest as BoxProps<'li'>)}\n as=\"li\"\n className={treeItem({className})}\n onClick={handleClick}\n ref={rootRef as Ref<HTMLLIElement>}\n role=\"none\"\n >\n <Selectable\n aria-expanded={expanded}\n as={linkAs}\n // data-pressed={selected ? '' : undefined}\n data-ui=\"TreeItem__box\"\n href={href}\n radius={radius}\n ref={treeitemRef}\n role=\"treeitem\"\n selected={selected}\n tabIndex={tabIndex}\n style={{\n paddingLeft: `calc(${vars.space[2]} * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n }\n\n return (\n <Box\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...(rest as BoxProps<'a'>)}\n aria-expanded={expanded}\n className={treeItem({className})}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef as Ref<HTMLAnchorElement>}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <Selectable\n as=\"button\"\n // data-pressed={selected ? '' : undefined}\n data-focused={focused ? '' : undefined}\n data-ui=\"TreeItem__box\"\n radius={radius}\n selected={selected}\n style={{\n paddingLeft: `calc(${vars.space[2]} * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'\n\n/**\n * @internal\n */\nexport const _ResizeObserver: typeof ResizeObserver =\n typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver\n ? window.ResizeObserver\n : ResizeObserverPolyfill\n","import {vars} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n type CSSProperties,\n type ReactNode,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {_isScrollable} from '../../helpers/scroll'\nimport {_ResizeObserver} from '../../observers/resize'\nimport {Box} from '../../primitives/box/box'\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @beta */\nexport const DEFAULT_VIRTUAL_LIST_ELEMENT = 'div'\n\n/** @beta */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/** @beta */\nexport type VirtualListOwnProps<Item = any> = {\n gap?: Space\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => ReactNode\n}\n\n/** @beta */\nexport type VirtualListElementType = 'div' | ComponentType\n\n/** @beta */\nexport type VirtualListProps<E extends VirtualListElementType = VirtualListElementType> = Props<\n VirtualListOwnProps,\n E\n>\n\n/** @beta */\nexport function VirtualList<E extends VirtualListElementType = typeof DEFAULT_VIRTUAL_LIST_ELEMENT>(\n props: VirtualListProps<E>,\n) {\n const {\n as = DEFAULT_VIRTUAL_LIST_ELEMENT,\n gap = 0,\n getItemKey,\n items = [],\n onChange,\n renderItem,\n ref: forwardedRef,\n ...rest\n } = props as VirtualListProps<typeof DEFAULT_VIRTUAL_LIST_ELEMENT>\n\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n const [gapValue, setGapValue] = useState(0)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect((): (() => void) | undefined => {\n if (!ref.current) return\n\n const scrollEl = findScrollable(ref.current.parentNode)\n\n if (scrollEl) {\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new _ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + gapValue) - gapValue : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n onChange?.({\n fromIndex,\n gap: gapValue,\n itemHeight,\n scrollHeight,\n scrollTop,\n toIndex,\n })\n }, [fromIndex, gapValue, itemHeight, onChange, scrollHeight, scrollTop, toIndex])\n\n useEffect(() => {\n // console.log('renderItem', renderItem)\n setItemHeight(-1)\n }, [renderItem])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [\n <>\n <Box\n ref={(el) => (el ? setItemHeight(el.offsetHeight) : undefined)}\n insetTop={0}\n insetLeft={0}\n insetRight={0}\n key={0}\n position=\"absolute\"\n >\n {renderItem(items[0])}\n </Box>\n <div\n ref={(el) => (el ? setGapValue(el.offsetHeight) : undefined)}\n style={{height: vars.space[gap]}}\n />\n </>,\n ]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <Box\n insetLeft={0}\n insetRight={0}\n key={key}\n position=\"absolute\"\n style={{top: itemIndex * (itemHeight + gapValue)}}\n >\n {node}\n </Box>\n )\n })\n }, [fromIndex, gap, gapValue, getItemKey, itemHeight, items, renderItem, toIndex])\n\n const wrapperStyle: CSSProperties = useMemo(() => ({height}), [height])\n\n return (\n <Box data-ui=\"VirtualList\" {...rest} as={as} position=\"relative\" ref={ref}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Box>\n )\n}\n\nfunction findScrollable(parentNode: ParentNode | null) {\n let _scrollEl = parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n return _scrollEl\n}\n","import {useState} from 'react'\n\nimport {_getArrayProp} from '../helpers/props'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n * @deprecated Use `useResponsiveProp` instead.\n */\nexport function useArrayProp<T>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n const [[cachedVal, cachedHash], setCache] = useState<[T[], string]>(() => [\n _getArrayProp(val, defaultVal),\n JSON.stringify(val ?? defaultVal),\n ])\n\n const hash = JSON.stringify(val ?? defaultVal)\n\n if (hash !== cachedHash) {\n // If the cached hash has changed, update the cache right away.\n // Calling setState during render is fine in this case, and preferred over a useEffect loop\n // https://19.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n setCache([_getArrayProp(val, defaultVal), hash])\n }\n\n return cachedVal\n}\n","import {useEffect, useRef, useState} from 'react'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/** @public */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/** @public */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n listener: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {_ResizeObserver} from './resize'\n\n/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new _ResizeObserver(([entry]) => {\n subscriber({\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\n\nimport {_elementSizeObserver, type ElementSize} from '../observers/elementSize'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {type ForwardedRef, type MutableRefObject, useImperativeHandle, useRef} from 'react'\n\n/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef<T>(ref: ForwardedRef<T>): MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {\n label,\n type LabelStyleProps,\n textOverflow,\n type TextOverflowStyleProps,\n} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @public */\nexport const DEFAULT_LABEL_ELEMENT = 'div'\n\n/** @public */\nexport type LabelOwnProps = LabelStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type LabelElementType =\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 LabelProps<E extends LabelElementType = LabelElementType> = Props<LabelOwnProps, E>\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport function Label<E extends LabelElementType = typeof DEFAULT_LABEL_ELEMENT>(\n props: LabelProps<E>,\n) {\n const {\n accent,\n align,\n as: Element = DEFAULT_LABEL_ELEMENT,\n children,\n className,\n muted = false,\n size = 1,\n textOverflow: textOverflowProp,\n weight = 'regular',\n ...rest\n } = props\n\n return (\n <Element\n data-ui=\"Label\"\n {...rest}\n className={label({\n className,\n accent,\n align,\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 {\n avatar,\n avatarArrow,\n avatarImage,\n avatarImageOutline,\n avatarInitials,\n type ResponsiveProp,\n} from '@sanity/ui/css'\nimport type {AvatarColor, AvatarSize, FontLabelSize} from '@sanity/ui/theme'\nimport {useCallback, useEffect, useMemo, useState} from 'react'\n\nimport {useResponsiveProp} from '../../hooks/useResponsiveProp'\nimport type {ComponentType, Props} from '../../types/props'\nimport {Box} from '../box/box'\nimport {Label} from '../label/label'\nimport type {AvatarPosition, AvatarStatus} from './types'\n\n/** @public */\nexport const DEFAULT_AVATAR_ELEMENT = 'span'\n\n/** @public */\nexport interface AvatarOwnProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n color?: AvatarColor\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: ResponsiveProp<AvatarSize>\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @deprecated Will be removed in next major version.\n */\n status?: AvatarStatus\n title?: string\n}\n\n/** @public */\nexport type AvatarElementType = 'a' | 'button' | 'div' | 'span' | ComponentType\n\n/** @public */\nexport type AvatarProps<E extends AvatarElementType = AvatarElementType> = Props<AvatarOwnProps, E>\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport function Avatar<E extends AvatarElementType = typeof DEFAULT_AVATAR_ELEMENT>(\n props: AvatarProps<E>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: Element = DEFAULT_AVATAR_ELEMENT,\n className,\n color = 'magenta',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n status = 'online',\n size: sizeProp = 1,\n ...rest\n } = props as AvatarProps<typeof DEFAULT_AVATAR_ELEMENT>\n\n const size = useResponsiveProp(sizeProp)\n\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageError, setImageError] = useState<boolean>(false)\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n if (src) setImageError(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageError(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(\n () =>\n Object.values(size).map((s) => {\n if (s === 1) return 1 satisfies FontLabelSize\n if (s === 2) return 3 satisfies FontLabelSize\n if (s === 3) return 5 satisfies FontLabelSize\n\n return 0 satisfies FontLabelSize\n }) as ResponsiveProp<FontLabelSize>,\n [size],\n )\n\n return (\n <Element\n data-hide-inner-stroke={__unstable_hideInnerStroke ? '' : undefined}\n data-ui=\"Avatar\"\n {...rest}\n aria-label={title}\n className={avatar({className, color, size: sizeProp})}\n data-arrow-position={arrowPosition}\n data-image-error={imageError ? '' : undefined}\n title={title}\n >\n <span className={avatarArrow()}>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </span>\n\n <Box\n alignItems=\"center\"\n as=\"span\"\n className={avatarInitials()}\n display=\"flex\"\n justifyContent=\"center\"\n position=\"absolute\"\n inset={0}\n >\n <Label align=\"center\" as=\"span\" size={initialsSize} weight=\"medium\">\n {initials}\n </Label>\n </Box>\n\n {src && (\n <Box className={avatarImage()} inset={0} position=\"absolute\">\n <img alt={initials} onError={handleImageError} src={src} />\n <span className={avatarImageOutline()} />\n </Box>\n )}\n </Element>\n )\n}\n","import {avatarCounter, type ResponsiveProp} from '@sanity/ui/css'\nimport type {AvatarSize, FontLabelSize} from '@sanity/ui/theme'\nimport {useMemo} from 'react'\n\nimport {useResponsiveProp} from '../../hooks/useResponsiveProp'\nimport type {ComponentType, Props} from '../../types/props'\nimport {Box} from '../box/box'\nimport {Label} from '../label/label'\n\n/** @public */\nexport const DEFAULT_AVATAR_COUNTER_ELEMENT = 'span'\n\n/** @public */\nexport interface AvatarCounterOwnProps {\n count: number\n size?: ResponsiveProp<AvatarSize>\n}\n\n/** @public */\nexport type AvatarCounterElementType = 'button' | 'div' | 'span' | ComponentType\n\n/** @public */\nexport type AvatarCounterProps<E extends AvatarCounterElementType = AvatarCounterElementType> =\n Props<AvatarCounterOwnProps, E>\n\n/** @public */\nexport function AvatarCounter<\n E extends AvatarCounterElementType = typeof DEFAULT_AVATAR_COUNTER_ELEMENT,\n>(props: AvatarCounterProps<E>) {\n const {\n as = DEFAULT_AVATAR_COUNTER_ELEMENT,\n className,\n count,\n size: sizeProp = 1,\n ...rest\n } = props as AvatarCounterProps<typeof DEFAULT_AVATAR_COUNTER_ELEMENT>\n const size = useResponsiveProp(sizeProp)\n\n const labelSize = useMemo(\n () =>\n Object.values(size).map((s) => {\n if (s === 1) return 1 satisfies FontLabelSize\n if (s === 2) return 3 satisfies FontLabelSize\n if (s === 3) return 5 satisfies FontLabelSize\n\n return 0 satisfies FontLabelSize\n }) as ResponsiveProp<FontLabelSize>,\n [size],\n )\n\n return (\n <Box\n data-ui=\"AvatarCounter\"\n {...rest}\n alignItems=\"center\"\n as={as}\n className={avatarCounter({className, size})}\n display=\"flex\"\n flex=\"none\"\n justifyContent=\"center\"\n paddingX={2}\n sizing=\"border\"\n >\n <Label align=\"center\" as=\"span\" size={labelSize} weight=\"medium\">\n {count}\n </Label>\n </Box>\n )\n}\n","import {avatarStack, type ResponsiveProp} from '@sanity/ui/css'\nimport type {AvatarSize} from '@sanity/ui/theme'\nimport {Children, cloneElement, Fragment, isValidElement, type ReactElement} from 'react'\n\nimport {useResponsiveProp} from '../../hooks/useResponsiveProp'\nimport type {ComponentType, Props} from '../../types/props'\nimport {Box, type BoxOwnProps} from '../box/box'\nimport type {AvatarProps} from './avatar'\nimport {AvatarCounter} from './avatarCounter'\n\n/** @public */\nexport const DEFAULT_AVATAR_STACK_ELEMENT = 'span'\n\n/** @public */\nexport type AvatarStackChild = ReactElement<AvatarProps<'div'>> | null | undefined | false\n\n/** @public */\nexport type AvatarStackOwnProps = Omit<\n BoxOwnProps,\n 'align' | 'alignItems' | 'display' | 'justify' | 'justifyContent'\n> & {\n children: AvatarStackChild | AvatarStackChild[]\n maxLength?: number\n size?: ResponsiveProp<AvatarSize>\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/** @public */\nexport type AvatarStackElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type AvatarStackProps<E extends AvatarStackElementType = AvatarStackElementType> = Props<\n AvatarStackOwnProps,\n E\n>\n\n/** @public */\nexport function AvatarStack<E extends AvatarStackElementType = typeof DEFAULT_AVATAR_STACK_ELEMENT>(\n props: AvatarStackProps<E>,\n) {\n const {\n as = DEFAULT_AVATAR_STACK_ELEMENT,\n children: childrenProp,\n className,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...rest\n } = props as AvatarStackProps<typeof DEFAULT_AVATAR_STACK_ELEMENT>\n\n const children = Children.toArray(childrenProp).filter(isValidElement) as ReactElement<\n AvatarProps<'span'>\n >[]\n const maxLength = Math.max(maxLengthProp, 0)\n const size = useResponsiveProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <Box\n data-ui=\"AvatarStack\"\n {...rest}\n alignItems=\"center\"\n as={as}\n className={avatarStack({className, size})}\n display=\"flex\"\n justifyContent=\"flex-start\"\n >\n {len === 0 && <AvatarCounter count={len} size={size} />}\n\n {len !== 0 && extraCount > 1 && <AvatarCounter count={extraCount} size={size} />}\n\n {visibleChildren.map((child, childIndex) => (\n <Fragment key={String(childIndex)}>{cloneElement(child, {size})}</Fragment>\n ))}\n </Box>\n )\n}\n","import type {PaddingStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {badge} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {ComponentType, Props} from '../../types/props'\nimport {Box} from '../box/box'\nimport {Text} from '../text/text'\nimport type {BadgeTone} from './types'\n\n/** @public */\nexport const DEFAULT_BADGE_ELEMENT = 'span'\n\n/** @public */\nexport type BadgeOwnProps = PaddingStyleProps &\n RadiusStyleProps & {\n fontSize?: ResponsiveProp<FontTextSize>\n tone?: BadgeTone\n }\n\n/** @public */\nexport type BadgeElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type BadgeProps<E extends BadgeElementType = BadgeElementType> = Props<BadgeOwnProps, E>\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport function Badge<E extends BadgeElementType = typeof DEFAULT_BADGE_ELEMENT>(\n props: BadgeProps<E>,\n) {\n const {\n as = DEFAULT_BADGE_ELEMENT,\n children,\n className,\n fontSize = 1,\n padding = 1,\n radius = 2,\n tone = 'default',\n ...rest\n } = props as BadgeProps<typeof DEFAULT_BADGE_ELEMENT>\n\n return (\n <Box\n data-ui=\"Badge\"\n {...rest}\n as={as}\n className={badge({className, tone})}\n display=\"flex\"\n maxWidth=\"fill\"\n padding={padding}\n radius={radius}\n width=\"min\"\n >\n <Text size={fontSize}>{children}</Text>\n </Box>\n )\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {checkbox, checkboxInput, checkboxPresentation} from '@sanity/ui/css'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @public */\nexport const DEFAULT_CHECKBOX_ELEMENT = 'input'\n\n/** @public */\nexport type CheckboxOwnProps = {\n indeterminate?: boolean\n customValidity?: string\n}\n\n/** @public */\nexport type CheckboxElementType = 'input' | ComponentType\n\n/** @public */\nexport type CheckboxProps<E extends CheckboxElementType = CheckboxElementType> = Props<\n CheckboxOwnProps,\n E\n>\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport function Checkbox<E extends CheckboxElementType = typeof DEFAULT_CHECKBOX_ELEMENT>(\n props: CheckboxProps<E>,\n) {\n const {\n as: Element = DEFAULT_CHECKBOX_ELEMENT,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n ref: forwardedRef,\n style,\n ...rest\n } = props as CheckboxProps<typeof DEFAULT_CHECKBOX_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span className={checkbox({className})} data-ui=\"Checkbox\" style={style}>\n <Element\n {...rest}\n className={checkboxInput()}\n data-invalid={customValidity ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span className={checkboxPresentation()}>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </span>\n )\n}\n","import {code, type CodeStyleProps, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontCodeSize} from '@sanity/ui/theme'\nimport {lazy, Suspense} from 'react'\n\nimport type {ComponentType, Props} from '../../types/props'\n\nconst LazyRefractor = lazy(() => import('./refractor'))\n\n/** @public */\nexport const DEFAULT_CODE_ELEMENT = 'pre'\n\n/** @public */\nexport type CodeOwnProps = CodeStyleProps & {\n /** Define the language to use for syntax highlighting. */\n language?: string\n size?: ResponsiveProp<FontCodeSize>\n}\n\n/** @public */\nexport type CodeElementType = 'div' | 'pre' | ComponentType\n\n/** @public */\nexport type CodeProps<E extends CodeElementType = CodeElementType> = Props<CodeOwnProps, E>\n\n/** @public */\nexport function Code<E extends CodeElementType = typeof DEFAULT_CODE_ELEMENT>(props: CodeProps<E>) {\n const {\n as: Element = DEFAULT_CODE_ELEMENT,\n children,\n className,\n language: languageProp,\n size = 2,\n weight = 'regular',\n ...rest\n } = props as CodeProps<typeof DEFAULT_CODE_ELEMENT>\n\n const language = typeof languageProp === 'string' ? languageProp : undefined\n\n return (\n <Element data-ui=\"Code\" {...rest} className={code({className, size, weight})}>\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </Element>\n )\n}\n","import {\n heading,\n type HeadingStyleProps,\n textOverflow,\n type TextOverflowStyleProps,\n} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @public */\nexport const DEFAULT_HEADING_ELEMENT = 'div'\n\n/** @public */\nexport type HeadingOwnProps = HeadingStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type HeadingElementType =\n | 'div'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'label'\n | 'span'\n | ComponentType\n\n/** @public */\nexport type HeadingProps<E extends HeadingElementType = HeadingElementType> = Props<\n HeadingOwnProps,\n E\n>\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport function Heading<E extends HeadingElementType = typeof DEFAULT_HEADING_ELEMENT>(\n props: HeadingProps<E>,\n) {\n const {\n accent = false,\n align,\n as: Element = DEFAULT_HEADING_ELEMENT,\n children,\n className,\n flex,\n muted = false,\n size = 2,\n textOverflow: textOverflowProp,\n weight = 'regular',\n ...rest\n } = props as HeadingProps<typeof DEFAULT_HEADING_ELEMENT>\n\n return (\n <Element\n data-ui=\"Heading\"\n {...rest}\n className={heading({\n className,\n accent,\n align,\n flex,\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 type {ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types/props'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box/box'\n\n/** @public */\nexport const DEFAULT_INLINE_ELEMENT = 'div'\n\n/** @public */\nexport type InlineOwnProps = Omit<\n BoxOwnProps,\n | 'alignItems'\n | 'flexDirection'\n | 'flexWrap'\n | 'justifyContent'\n | 'gridAutoColumns'\n | 'gridAutoFlow'\n | 'gridAutoRows'\n | 'gridColumnEnd'\n | 'gridColumnStart'\n | 'gridColumn'\n | 'gridRowEnd'\n | 'gridRowStart'\n | 'gridRow'\n | 'gridTemplateColumns'\n | 'gridTemplateRows'\n // todo: omit deprecated flex and grid props\n> & {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type InlineElementType = BoxElementType\n\n/** @public */\nexport type InlineProps<E extends InlineElementType = InlineElementType> = Props<InlineOwnProps, E>\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport function Inline<E extends InlineElementType = typeof DEFAULT_INLINE_ELEMENT>(\n props: InlineProps<E>,\n) {\n const {\n as = DEFAULT_INLINE_ELEMENT,\n children,\n gap,\n space,\n ...rest\n } = props as InlineProps<typeof DEFAULT_INLINE_ELEMENT>\n\n return (\n <Box\n data-ui=\"Inline\"\n {...rest}\n alignItems=\"center\"\n as={as}\n display=\"flex\"\n gap={gap ?? space}\n flexWrap=\"wrap\"\n >\n {children}\n </Box>\n )\n}\n","import {radio, radioInput, radioPresentation} from '@sanity/ui/css'\nimport {useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @public */\nexport const DEFAULT_RADIO_ELEMENT = 'input'\n\n/** @public */\nexport type RadioOwnProps = {\n customValidity?: string\n}\n\n/** @public */\nexport type RadioElementType = 'input' | ComponentType\n\n/** @public */\nexport type RadioProps<E extends RadioElementType = RadioElementType> = Props<RadioOwnProps, E>\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport function Radio<E extends RadioElementType = typeof DEFAULT_RADIO_ELEMENT>(\n props: RadioProps<E>,\n) {\n const {\n as: Element = DEFAULT_RADIO_ELEMENT,\n className,\n disabled,\n style,\n customValidity,\n readOnly,\n ref: forwardedRef,\n ...rest\n } = props as RadioProps<typeof DEFAULT_RADIO_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <div className={radio({className})} data-ui=\"Radio\" style={style}>\n <Element\n {...rest}\n className={radioInput()}\n data-invalid={customValidity ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span className={radioPresentation()} />\n </div>\n )\n}\n","import {type ReactElement, type ReactNode, useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport type {BoundaryElementContextValue} from './types'\n\n/** @public */\nexport interface BoundaryElementProviderProps {\n children: ReactNode\n element: HTMLElement | null\n}\n\n/** @public */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): ReactElement {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n","import type {ThemeColorCardToneKey, ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport type {ReactNode} from 'react'\n\nimport {ToastProvider} from '../../components/toast/toastProvider'\nimport {BoundaryElementProvider} from '../../utils/boundaryElement/boundaryElementProvider'\nimport {PortalProvider} from '../../utils/portal/portalProvider'\nimport {CardProvider} from '../card/cardProvider'\nimport {LayerProvider} from '../layer/layerProvider'\n\n/** @public */\nexport interface RootProviderProps {\n boundaryElement?: HTMLElement | null\n children?: ReactNode\n portalElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: ThemeColorCardToneKey\n}\n\n/** @public */\nexport function RootProvider(props: RootProviderProps) {\n const {\n boundaryElement = null,\n children,\n portalElement = null,\n scheme = 'light',\n tone = 'transparent',\n } = props\n\n return (\n <LayerProvider>\n <CardProvider scheme={scheme} tone={tone}>\n <ToastProvider>\n <BoundaryElementProvider element={boundaryElement}>\n <PortalProvider element={portalElement}>{children}</PortalProvider>\n </BoundaryElementProvider>\n </ToastProvider>\n </CardProvider>\n </LayerProvider>\n )\n}\n","import {box, root, type RootStyleProps} from '@sanity/ui/css'\nimport {useCallback, useImperativeHandle, useRef, useState} from 'react'\n\nimport type {Props} from '../../types/props'\nimport {Box, type BoxOwnProps} from '../box/box'\nimport {RootProvider} from './RootProvider'\n\n/** @public */\nexport const DEFAULT_ROOT_ELEMENT = 'html'\n\n/** @public */\nexport interface RootOwnProps extends BoxOwnProps, RootStyleProps {}\n\n/** @public */\nexport type RootElementType = 'html' | 'body' | 'div'\n\n/** @public */\nexport type RootProps<E extends RootElementType = RootElementType> = Props<RootOwnProps, E>\n\n/**\n * The `Root` component.\n *\n * @public\n */\nexport function Root<E extends RootElementType = typeof DEFAULT_ROOT_ELEMENT>(props: RootProps<E>) {\n const {\n as: as = DEFAULT_ROOT_ELEMENT,\n children,\n className,\n height = 'fill',\n ref: forwardedRef,\n scheme = 'light',\n tone = 'transparent',\n ...rest\n } = props as RootProps<typeof DEFAULT_ROOT_ELEMENT>\n\n const ref = useRef<HTMLHtmlElement | null>(null)\n\n useImperativeHandle<HTMLHtmlElement | null, HTMLHtmlElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null)\n const [boundaryElement, setBoundaryElement] = useState<HTMLElement | null>(null)\n\n const handleRef = useCallback((el: HTMLHtmlElement | null) => {\n setBoundaryElement(el)\n ref.current = el\n }, [])\n\n let node = (\n <RootProvider\n boundaryElement={boundaryElement}\n portalElement={portalElement}\n scheme={scheme}\n tone={tone}\n >\n {children}\n <div data-portal=\"\" ref={setPortalElement} />\n </RootProvider>\n )\n\n if (as === 'html') {\n node = <body className={box({height, margin: 0})}>{node}</body>\n }\n\n return (\n <Box\n as={as}\n data-ui=\"Root\"\n {...rest}\n className={root({\n className,\n height,\n scheme,\n tone,\n })}\n ref={handleRef}\n >\n {node}\n </Box>\n )\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n _inputElement,\n type ResponsiveProp,\n select,\n selectPresentation,\n type SelectStyleProps,\n} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport type {ComponentType, Props} from '../../types/props'\nimport {Box} from '../box/box'\nimport {Text} from '../text/text'\n\n/** @public */\nexport const DEFAULT_SELECT_ELEMENT = 'select'\n\n/** @public */\nexport type SelectOwnProps = SelectStyleProps & {\n customValidity?: string\n readOnly?: boolean\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type SelectElementType = 'select' | ComponentType\n\n/** @public */\nexport type SelectProps<E extends SelectElementType = SelectElementType> = Props<SelectOwnProps, E>\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport function Select<E extends SelectElementType = typeof DEFAULT_SELECT_ELEMENT>(\n props: SelectProps<E>,\n) {\n const {\n as: Element = DEFAULT_SELECT_ELEMENT,\n border = true,\n children,\n customValidity,\n disabled,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 1,\n readOnly,\n ref: forwardedRef,\n space = 2,\n ...rest\n } = props as SelectProps<typeof DEFAULT_SELECT_ELEMENT>\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <div\n data-ui=\"Select\"\n className={select({border, fontSize, padding, radius, gap: gap ?? space})}\n data-icon-right=\"\"\n >\n <Element {...rest} className={_inputElement()} disabled={disabled || readOnly} ref={ref}>\n {children}\n </Element>\n <span className={selectPresentation()}>\n <Box as=\"span\" display=\"inline-block\" padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </Box>\n </span>\n </div>\n )\n}\n","import {skeleton, type SkeletonStyleProps} from '@sanity/ui/css'\nimport {useEffect, useState} from 'react'\n\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @beta */\nexport const DEFAULT_SKELETON_ELEMENT = 'div'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type SkeletonOwnProps = SkeletonStyleProps & {\n animated?: boolean\n delay?: number\n}\n\n/** @beta */\nexport type SkeletonElementType = 'div' | 'span' | ComponentType\n\n/** @beta */\nexport type SkeletonProps<E extends SkeletonElementType = SkeletonElementType> = Props<\n SkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Skeleton<E extends SkeletonElementType = typeof DEFAULT_SKELETON_ELEMENT>(\n props: SkeletonProps<E>,\n) {\n const {\n as: As = DEFAULT_SKELETON_ELEMENT,\n animated = false,\n className,\n delay,\n radius,\n ...rest\n } = props as SkeletonProps<typeof DEFAULT_SKELETON_ELEMENT>\n\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <As\n data-ui=\"Skeleton\"\n {...rest}\n className={skeleton({\n className,\n radius,\n })}\n data-animated={animated ? '' : undefined}\n data-visible={visible ? '' : undefined}\n />\n )\n}\n","import {codeSkeleton, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontCodeSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types/props'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @beta */\nexport const DEFAULT_CODE_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type CodeSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontCodeSize>\n}\n\n/** @beta */\nexport type CodeSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type CodeSkeletonProps<E extends CodeSkeletonElementType = CodeSkeletonElementType> = Props<\n CodeSkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function CodeSkeleton<\n E extends CodeSkeletonElementType = typeof DEFAULT_CODE_SKELETON_ELEMENT,\n>(props: CodeSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as CodeSkeletonProps<typeof DEFAULT_CODE_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={codeSkeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {headingSkeleton, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontHeadingSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types/props'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @beta */\nexport const DEFAULT_HEADING_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type HeadingSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontHeadingSize>\n}\n\n/** @beta */\nexport type HeadingSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type HeadingSkeletonProps<\n E extends HeadingSkeletonElementType = HeadingSkeletonElementType,\n> = Props<HeadingSkeletonOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function HeadingSkeleton<\n E extends HeadingSkeletonElementType = typeof DEFAULT_HEADING_SKELETON_ELEMENT,\n>(props: HeadingSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as HeadingSkeletonProps<typeof DEFAULT_HEADING_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={headingSkeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {labelSkeleton, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontLabelSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types/props'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @beta */\nexport const DEFAULT_LABEL_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type LabelSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontLabelSize>\n}\n\n/** @beta */\nexport type LabelSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type LabelSkeletonProps<E extends LabelSkeletonElementType = LabelSkeletonElementType> =\n Props<LabelSkeletonOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function LabelSkeleton<\n E extends LabelSkeletonElementType = typeof DEFAULT_LABEL_SKELETON_ELEMENT,\n>(props: LabelSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as LabelSkeletonProps<typeof DEFAULT_LABEL_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={labelSkeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {type ResponsiveProp, textSkeleton} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types/props'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @beta */\nexport const DEFAULT_TEXT_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type TextSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontTextSize>\n}\n\n/** @beta */\nexport type TextSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type TextSkeletonProps<E extends TextSkeletonElementType = TextSkeletonElementType> = Props<\n TextSkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TextSkeleton<\n E extends TextSkeletonElementType = typeof DEFAULT_TEXT_SKELETON_ELEMENT,\n>(props: TextSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as TextSkeletonProps<typeof DEFAULT_TEXT_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={textSkeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {srOnly} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @public */\nexport const DEFAULT_SR_ONLY_ELEMENT = 'span'\n\n/** @public */\nexport type SrOnlyOwnProps = {} // eslint-disable-line @typescript-eslint/no-empty-object-type\n\n/** @public */\nexport type SrOnlyElementType = 'span' | ComponentType\n\n/** @public */\nexport type SrOnlyProps<E extends SrOnlyElementType = SrOnlyElementType> = Props<SrOnlyOwnProps, E>\n\n/** @public */\nexport function SrOnly<E extends SrOnlyElementType = typeof DEFAULT_SR_ONLY_ELEMENT>(\n props: SrOnlyProps<E>,\n) {\n const {\n as: Element = DEFAULT_SR_ONLY_ELEMENT,\n children,\n className,\n ...rest\n } = props as SrOnlyProps<typeof DEFAULT_SR_ONLY_ELEMENT>\n\n return (\n <Element data-ui=\"SrOnly\" {...rest} aria-hidden className={srOnly({className})}>\n {children}\n </Element>\n )\n}\n","import {\n _switch,\n _switchElement,\n _switchPresentation,\n _switchThumb,\n _switchTrack,\n} from '@sanity/ui/css'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\n\nimport type {ComponentType, Props} from '../../types/props'\nimport {Box} from '../box/box'\n\n/** @public */\nexport const DEFAULT_SWITCH_ELEMENT = 'input'\n\n/** @public */\nexport type SwitchOwnProps = {\n indeterminate?: boolean\n}\n\n/** @public */\nexport type SwitchElementType = 'input' | ComponentType\n\n/** @public */\nexport type SwitchProps<E extends SwitchElementType = SwitchElementType> = Props<SwitchOwnProps, E>\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport function Switch<E extends SwitchElementType = typeof DEFAULT_SWITCH_ELEMENT>(\n props: SwitchProps<E>,\n) {\n const {\n as: Element = DEFAULT_SWITCH_ELEMENT,\n className,\n disabled,\n indeterminate,\n readOnly,\n ref: forwardedRef,\n style,\n ...rest\n } = props as SwitchProps<typeof DEFAULT_SWITCH_ELEMENT>\n\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <Box\n className={_switch({className})}\n data-ui=\"Switch\"\n display=\"block\"\n position=\"relative\"\n style={style}\n >\n <Element\n {...rest}\n className={_switchElement()}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <span aria-hidden className={_switchPresentation()}>\n <span className={_switchTrack()} />\n <span className={_switchThumb()} />\n </span>\n </Box>\n )\n}\n","import {\n _inputElement,\n _inputPresentation,\n type ResponsiveProp,\n textArea,\n type TextAreaStyleProps,\n} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport type {ComponentType, Props} from '../../types/props'\n\n/** @public */\nexport const DEFAULT_TEXT_AREA_ELEMENT = 'textarea'\n\n/** @public */\nexport type TextAreaOwnProps = TextAreaStyleProps & {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n customValidity?: string\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type TextAreaElementType = 'textarea' | ComponentType\n\n/** @public */\nexport type TextAreaProps<E extends TextAreaElementType = TextAreaElementType> = Props<\n TextAreaOwnProps,\n E\n>\n\n/**\n * A multiline text input.\n *\n * @public\n */\nexport function TextArea<E extends TextAreaElementType = typeof DEFAULT_TEXT_AREA_ELEMENT>(\n props: TextAreaProps<E>,\n) {\n const {\n // TODO: fix this\n\n __unstable_disableFocusRing,\n as: Element = DEFAULT_TEXT_AREA_ELEMENT,\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n space = 3,\n ...rest\n } = props as TextAreaProps<typeof DEFAULT_TEXT_AREA_ELEMENT>\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span\n className={textArea({\n border,\n fontSize,\n padding,\n radius,\n gap: gap ?? space,\n })}\n data-invalid={customValidity ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"TextArea\"\n >\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 />\n <span className={_inputPresentation()} />\n </span>\n )\n}\n","import {type ReactElement, type ReactNode, useMemo} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport type {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(props: TooltipDelayGroupProviderProps): ReactElement {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {BREAKPOINTS} from '@sanity/ui/css'\nimport {useImperativeHandle, useMemo, useState} from 'react'\n\nimport {useElementSize} from '../../hooks/useElementSize'\nimport type {ComponentType, Props} from '../../types/props'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/** @beta */\nexport const DEFAULT_ELEMENT_QUERY_ELEMENT = 'div'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type ElementQueryOwnProps = {\n media?: number[]\n}\n\n/** @beta */\nexport type ElementQueryElementType = 'div' | ComponentType\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type ElementQueryProps<E extends ElementQueryElementType = ElementQueryElementType> = Props<\n ElementQueryOwnProps,\n E\n>\n\nconst DEFAULT_BREAKPOINTS = Object.values(BREAKPOINTS)\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function ElementQuery<\n E extends ElementQueryElementType = typeof DEFAULT_ELEMENT_QUERY_ELEMENT,\n>(props: ElementQueryProps<E>) {\n const {\n as: Element = DEFAULT_ELEMENT_QUERY_ELEMENT,\n children,\n media: mediaProp,\n ref: forwardedRef,\n ...rest\n } = props as ElementQueryProps<typeof DEFAULT_ELEMENT_QUERY_ELEMENT>\n\n const breakpoints = mediaProp ?? DEFAULT_BREAKPOINTS\n\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => {\n const eq = findMaxBreakpoints(breakpoints, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [breakpoints, width])\n\n const min = useMemo(() => {\n const eq = findMinBreakpoints(breakpoints, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [breakpoints, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <Element data-ui=\"ElementQuery\" {...rest} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </Element>\n )\n}\n","import {Component, type ErrorInfo, type PropsWithChildren, type ReactNode} from 'react'\n\nimport {Code} from '../primitives/code/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n override state: ErrorBoundaryState = {error: null}\n\n static displayName = 'ErrorBoundary'\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n override componentDidCatch(error: Error, info: ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n override render(): ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","_responsive","media","values","callback","map","statement","mediaIndex","_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","outerDispose","_hasFocus","element","Boolean","document","activeElement","contains","isFocusable","tabIndex","getAttribute","isHTMLAnchorElement","href","rel","isHTMLInputElement","type","disabled","isHTMLButtonElement","isHTMLSelectElement","isHTMLTextAreaElement","attemptFocus","focus","focusFirstDescendant","i","childNodes","length","child","isHTMLElement","focusLastDescendant","AutocompleteOption","props","$","_c","children","id","onSelect","selected","value","t0","setTimeout","handleClick","t1","event","key","_isEnterToClickElement","currentTarget","handleKeyDown","t2","jsx","autocompleteReducer","state","msg","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_AUTOCOMPLETE_ELEMENT","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","Autocomplete","as","border","customValidity","filterOption","filterOptionProp","fontSize","icon","listBox","EMPTY_RECORD","loading","onBlur","onChange","onFocus","onQueryChange","openButton","openOnFocus","options","optionsProp","padding","paddingProp","popover","prefix","radius","readOnly","ref","forwardedRef","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","suffix","valueProp","rest","dispatch","useReducer","defaultRenderOption","useCallback","Selectable","Text","rootElementRef","useRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","current","listBoxId","Array","isArray","EMPTY_ARRAY","useResponsiveProp","currentOption","useMemo","find","o","undefined","filteredOptions","filter","filteredOptionsLen","activeItemId","expanded","handleRootBlur","elements","concat","focusInside","e","handleRootFocus","listBoxElement","focusedElement","target","HTMLElement","handleOptionSelect","v","handleRootKeyDown","preventDefault","activeOption","activeIndex","nextActiveOption","listEl","includes","handleInputChange","nextQuery","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","useEffect","listElement","activeItemElement","clearButton","openButtonBoxPadding","Object","fromEntries","entries","openButtonPadding","Math","max","openButtonProps","handleOpenClick","onClick","openButtonNode","Box","Button","ChevronDownIcon","inputValue","input","TextInput","AnimatedSpinnerIcon","handleListBoxKeyDown","content","Stack","active","cloneElement","results","hidden","inputElement","onMouseEnter","onMouseLeave","Popover","jsxs","DEFAULT_BREADCRUMBS_ELEMENT","Breadcrumbs","className","expandButton","expandButtonProps","gap","_gapProp","gapX","space","gapY","maxLength","separator","_spaceProp","open","setOpen","useState","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","rawItems","Children","toArray","isValidElement","items","len","beforeLength","ceil","afterLength","floor","slice","Flex","breadcrumbs","item","itemIndex","Fragment","DEFAULT_CONTAINER_ELEMENT","Container","width","t3","container","t4","isTargetWithinScope","boundaryElement","portalElement","containsOrEqualsElement","DEFAULT_DIALOG_CARD_ELEMENT","DialogCard","autoFocus","footer","forwardedContentRef","header","hideCloseButton","onClickOutside","onClose","portalProp","__unstable_autoFocus","__unstable_hideCloseButton","contentRef","portal","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","scrollTop","setScrollTop","Symbol","for","useImperativeHandle","t5","t6","stopPropagation","useGlobalKeyDown","t7","event_0","target_0","t8","t10","t9","el","handleScroll","addEventListener","passive","removeEventListener","t11","dialogCard","t12","dialogHeader","CloseIcon","t13","dialogContent","t14","dialogScrollerShadowTop","opacity","min","t15","dialogScroller","t16","t17","dialogScrollerShadowBottom","t18","t19","dialogFooter","t20","Card","DialogContext","createGlobalScopedContext","version","useDialog","useContext","DEFAULT_DIALOG_ELEMENT","Dialog","context","_positionProp","_zOffsetProp","onActivate","scheme","tone","animate","cardRadius","position","shadow","zOffset","_animate","cardRadiusProp","cardShadow","positionProp","zOffsetProp","Z_OFFSETS","dialog","usePrefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","body","cardElement_0","handleRootClick","dialogContainer","Layer","Portal","DialogProvider","contextValue","MenuButton","__unstable_disableRestoreFocusOnClose","deprecated_boundaryElement","button","buttonProp","menu","menuProp","onOpen","placement","deprecated_placement","popoverScheme","deprecated_popoverScheme","popoverRadius","deprecated_popoverRadius","preventOverflow","deprecated_preventOverflow","disableRestoreFocusOnClose","deprecated_portal","shouldFocus","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","_temp","handleButtonClick","handleMouseDown","handleButtonKeyDown","event_1","Node","handleMenuClickOutside","handleMenuEscape","event_2","relatedTarget","el_0","handleBlur","handleItemClick","el_1","els","els_0","_el","registerElement","bb0","t21","t22","t23","overflow","popoverProps","t24","t25","DEFAULT_TAB_PANEL_ELEMENT","TabPanel","DEFAULT_TOAST_ELEMENT","LONG_ENOUGH_BUT_NOT_TOO_LONG","ROLES","error","warning","success","info","STATUS_CARD_TONE","BUTTON_TONE","Toast","closable","description","duration","status","title","cardTone","buttonTone","role","visualDuration","bounce","transition","hasDuration","isFinite","initial","exit","toast","verticalAlign","y","scale","zIndex","visible","when","staggerChildren","slideIn","slideOut","willChange","MotionCard","motion","create","MotionFlex","MotionText","useMounted","useSyncExternalStore","subscribe","_temp2","ToastContext","DEFAULT_TOAST_LAYER_ELEMENT","ToastLayer","paddingX","paddingY","toastLayer","Grid","toastId","generateToastId","String","ToastProvider","setState","mounted","push","params","startTransition","prevState","dismiss","timeoutId","currentState","toast_0","toast_1","LayerProvider","AnimatePresence","dismiss_0","id_0","params_0","useToast","Error","isRecord","_findPrevItemElement","itemElements","idx","itemKey","segments","split","pop","p","j","k","join","_findNextItemElement","_focusItemElement","firstChild","TreeContext","DEFAULT_TREE_ELEMENT","Tree","setFocusedElement","path","setItemElements","stateRef","path_0","s","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","level","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","from","querySelectorAll","useTree","tree","TreeGroup","memo","DEFAULT_TREE_ITEM_ELEMENT","TreeItem","expandedProp","IconComponent","idProp","linkAs","muted","text","weight","rootRef","treeitemRef","_id","useId","closest","click","visibility","pointerEvents","ToggleArrowRightIcon","transform","treeItem","paddingLeft","vars","_isScrollable","Element","style","window","getComputedStyle","overflowX","overflowY","_ResizeObserver","ResizeObserver","ResizeObserverPolyfill","DEFAULT_VIRTUAL_LIST_ELEMENT","VirtualList","getItemKey","renderItem","wrapperRef","scrollHeight","setScrollHeight","itemHeight","setItemHeight","gapValue","setGapValue","scrollEl","findScrollable","parentNode","ro","contentRect","height","observe","unobserve","disconnect","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","toIndex","offsetHeight","_itemIndex","node","top","wrapperStyle","_scrollEl","useArrayProp","val","defaultVal","_getArrayProp","JSON","stringify","setCache","cachedVal","cachedHash","hash","_getElements","elementsArg","ret","useClickOutside","listener","setElement","setElements","elementsRef","prevElements","nextElements","handleWindowMouseDown","evt","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","subscriber","resizeObserver","entry","_contentRect","borderBoxSize","inlineSize","blockSize","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","elementRect","sub","splice","useElementSize","size","setSize","useElementRect","useForwardedRef","innerRef","DEFAULT_LABEL_ELEMENT","Label","accent","align","textOverflowProp","textOverflow","label","DEFAULT_AVATAR_ELEMENT","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","initials","onImageLoadError","src","color","arrowPosition","sizeProp","setArrowPosition","imageError","setImageError","raf","handleImageError","initialsSize","avatar","avatarArrow","avatarInitials","avatarImage","avatarImageOutline","DEFAULT_AVATAR_COUNTER_ELEMENT","AvatarCounter","count","labelSize","avatarCounter","DEFAULT_AVATAR_STACK_ELEMENT","AvatarStack","childrenProp","maxLengthProp","visibleCount","extraCount","visibleChildren","T0","avatarStack","childIndex","DEFAULT_BADGE_ELEMENT","Badge","badge","DEFAULT_CHECKBOX_ELEMENT","Checkbox","indeterminate","useCustomValidity","checkbox","checkboxInput","checkboxPresentation","CheckmarkIcon","RemoveIcon","LazyRefractor","lazy","DEFAULT_CODE_ELEMENT","Code","languageProp","language","code","Suspense","DEFAULT_HEADING_ELEMENT","Heading","flex","heading","DEFAULT_INLINE_ELEMENT","Inline","DEFAULT_RADIO_ELEMENT","Radio","radio","radioInput","radioPresentation","BoundaryElementProvider","BoundaryElementContext","RootProvider","PortalProvider","CardProvider","DEFAULT_ROOT_ELEMENT","Root","setPortalElement","setBoundaryElement","handleRef","box","margin","root","DEFAULT_SELECT_ELEMENT","Select","select","_inputElement","selectPresentation","DEFAULT_SKELETON_ELEMENT","Skeleton","delay","animated","As","setVisible","timeout","skeleton","DEFAULT_CODE_SKELETON_ELEMENT","CodeSkeleton","codeSkeleton","DEFAULT_HEADING_SKELETON_ELEMENT","HeadingSkeleton","headingSkeleton","DEFAULT_LABEL_SKELETON_ELEMENT","LabelSkeleton","labelSkeleton","DEFAULT_TEXT_SKELETON_ELEMENT","TextSkeleton","textSkeleton","DEFAULT_SR_ONLY_ELEMENT","SrOnly","srOnly","DEFAULT_SWITCH_ELEMENT","Switch","_switch","_switchElement","_switchPresentation","_switchTrack","_switchThumb","DEFAULT_TEXT_AREA_ELEMENT","TextArea","__unstable_disableFocusRing","textArea","_inputPresentation","TooltipDelayGroupProvider","isGroupActive","setIsGroupActive","useDelayedState","openTooltipId","setOpenTooltipId","openDelay","closeDelay","close","TooltipDelayGroupContext","findMaxBreakpoints","findMinBreakpoints","DEFAULT_ELEMENT_QUERY_ELEMENT","DEFAULT_BREAKPOINTS","BREAKPOINTS","ElementQuery","mediaProp","breakpoints","elementSize","innerWidth","eq","eq_0","ErrorBoundary","Component","displayName","getDerivedStateFromError","componentDidCatch","onCatch","render","message"],"mappings":"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"}
|