@sanity/ui 4.0.0-static.4 → 4.0.0-static.40
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/dist/_chunks-es/{refractor.js → Refractor.js} +1 -1
- package/dist/_chunks-es/{refractor.js.map → Refractor.js.map} +1 -1
- package/dist/css/index.css +2 -1
- package/dist/css/index.css.map +1 -0
- package/dist/css/index.d.ts +51 -7
- package/dist/css/index.js +17979 -55
- package/dist/css/index.js.map +1 -1
- package/dist/index.d.ts +26 -38
- package/dist/index.js +1744 -1127
- package/dist/index.js.map +1 -1
- package/exports/css/index.css +1 -0
- package/package.json +39 -51
- package/src/core/Root.tsx +1 -1
- package/src/core/RootProvider.tsx +5 -5
- package/src/core/__workshop__/index.ts +1 -1
- package/src/core/components/autocomplete/{autocomplete.tsx → Autocomplete.tsx} +90 -58
- package/src/core/components/autocomplete/__workshop__/{custom.tsx → Custom.tsx} +14 -1
- package/src/core/components/autocomplete/__workshop__/{example.tsx → Example.tsx} +12 -1
- package/src/core/components/autocomplete/__workshop__/index.ts +6 -6
- package/src/core/components/autocomplete/types.ts +1 -1
- package/src/core/components/breadcrumbs/{breadcrumbs.tsx → Breadcrumbs.tsx} +80 -47
- package/src/core/components/breadcrumbs/__workshop__/index.ts +1 -1
- package/src/core/components/dialog/{dialog.tsx → Dialog.tsx} +20 -11
- package/src/core/components/dialog/{dialogCard.tsx → DialogCard.tsx} +9 -9
- package/src/core/components/dialog/{dialogContext.ts → DialogContext.ts} +1 -1
- package/src/core/components/dialog/{dialogProvider.tsx → DialogProvider.tsx} +2 -2
- package/src/core/components/dialog/__workshop__/{panes.tsx → Panes.tsx} +9 -21
- package/src/core/components/dialog/__workshop__/{position.tsx → Position.tsx} +9 -1
- package/src/core/components/dialog/__workshop__/{props.tsx → Props.tsx} +2 -0
- package/src/core/components/dialog/__workshop__/index.ts +10 -10
- package/src/core/components/dialog/__workshop__/styles.css.ts +18 -0
- package/src/core/components/dialog/useDialog.ts +3 -3
- package/src/core/components/hotkeys/{hotkeys.tsx → Hotkeys.tsx} +2 -2
- package/src/core/components/hotkeys/__workshop__/index.ts +1 -1
- package/src/core/components/menu/{menu.test.tsx → Menu.test.tsx} +9 -13
- package/src/core/components/menu/{menu.tsx → Menu.tsx} +19 -24
- package/src/core/components/menu/{menuButton.tsx → MenuButton.tsx} +14 -9
- package/src/core/components/menu/{menuContext.ts → MenuContext.ts} +3 -4
- package/src/core/components/menu/{menuGroup.tsx → MenuGroup.tsx} +16 -11
- package/src/core/components/menu/{menuItem.tsx → MenuItem.tsx} +7 -9
- package/src/core/components/menu/__workshop__/DataProps.tsx +27 -0
- package/src/core/components/menu/__workshop__/{menuButton.tsx → MenuButton.tsx} +6 -1
- package/src/core/components/menu/__workshop__/{tones.tsx → Tones.tsx} +7 -1
- package/src/core/components/menu/__workshop__/index.ts +22 -17
- package/src/core/components/menu/useMenu.ts +5 -5
- package/src/core/components/menu/useMenuController.ts +5 -5
- package/src/core/components/tab/{tab.tsx → Tab.tsx} +1 -1
- package/src/core/components/tab/{tabList.tsx → TabList.tsx} +2 -2
- package/src/core/components/tab/{tabPanel.tsx → TabPanel.tsx} +1 -1
- package/src/core/components/tab/__workshop__/index.ts +1 -1
- package/src/core/components/toast/{toast.test.tsx → Toast.test.tsx} +7 -7
- package/src/core/components/toast/{toast.tsx → Toast.tsx} +6 -6
- package/src/core/components/toast/{toastContext.ts → ToastContext.ts} +1 -1
- package/src/core/components/toast/{toastLayer.tsx → ToastLayer.tsx} +1 -1
- package/src/core/components/toast/{toastProvider.tsx → ToastProvider.tsx} +7 -7
- package/src/core/components/toast/__workshop__/{toast.tsx → Toast.tsx} +2 -0
- package/src/core/components/toast/__workshop__/index.ts +2 -2
- package/src/core/components/toast/useToast.ts +3 -3
- package/src/core/components/tree/{tree.tsx → Tree.tsx} +4 -4
- package/src/core/components/tree/{treeContext.ts → TreeContext.ts} +1 -1
- package/src/core/components/tree/{treeGroup.tsx → TreeGroup.tsx} +1 -1
- package/src/core/components/tree/{treeItem.tsx → TreeItem.tsx} +28 -25
- package/src/core/components/tree/__workshop__/index.ts +4 -4
- package/src/core/components/tree/useTree.ts +3 -3
- package/src/core/components/virtualList/{virtualList.tsx → VirtualList.tsx} +87 -45
- package/src/core/components/virtualList/__workshop__/index.ts +4 -4
- package/src/core/helpers/props.ts +0 -9
- package/src/core/hooks/useGlobalKeyDown.ts +11 -4
- package/src/core/hooks/useMediaIndex/__workshop__/index.ts +1 -1
- package/src/core/hooks/useResponsiveProp.ts +4 -17
- package/src/core/index.ts +68 -66
- package/src/core/lib/createGlobalScopedContext.ts +5 -3
- package/src/core/primitives/avatar/{avatar.tsx → Avatar.tsx} +7 -6
- package/src/core/primitives/avatar/{avatarCounter.tsx → AvatarCounter.tsx} +2 -2
- package/src/core/primitives/avatar/{avatarStack.tsx → AvatarStack.tsx} +3 -3
- package/src/core/primitives/avatar/__workshop__/{asButton.tsx → AsButton.tsx} +8 -1
- package/src/core/primitives/avatar/__workshop__/PropsStory.tsx +22 -0
- package/src/core/primitives/avatar/__workshop__/{stack.tsx → Stack.tsx} +5 -1
- package/src/core/primitives/avatar/__workshop__/index.ts +9 -4
- package/src/core/primitives/badge/{badge.test.tsx → Badge.test.tsx} +1 -1
- package/src/core/primitives/badge/{badge.tsx → Badge.tsx} +2 -2
- package/src/core/primitives/badge/__workshop__/{props.tsx → Props.tsx} +12 -1
- package/src/core/primitives/badge/__workshop__/index.ts +2 -2
- package/src/core/primitives/box/__workshop__/{props.tsx → Props.tsx} +6 -1
- package/src/core/primitives/box/__workshop__/index.ts +2 -2
- package/src/core/primitives/button/{button.test.tsx → Button.test.tsx} +1 -1
- package/src/core/primitives/button/{button.tsx → Button.tsx} +12 -11
- package/src/core/primitives/button/__workshop__/DataProps.tsx +22 -0
- package/src/core/primitives/button/__workshop__/{props.tsx → Props.tsx} +22 -0
- package/src/core/primitives/button/__workshop__/SanityUploadButton.tsx +21 -0
- package/src/core/primitives/button/__workshop__/{stacked.tsx → Stacked.tsx} +16 -0
- package/src/core/primitives/button/__workshop__/Styled1.tsx +11 -0
- package/src/core/primitives/button/__workshop__/index.ts +15 -15
- package/src/core/primitives/button/__workshop__/styles.css.ts +30 -0
- package/src/core/primitives/card/{card.tsx → Card.tsx} +10 -10
- package/src/core/primitives/card/{cardContext.ts → CardContext.ts} +1 -1
- package/src/core/primitives/card/{cardProvider.tsx → CardProvider.tsx} +3 -12
- package/src/core/primitives/card/__workshop__/DataProps.tsx +30 -0
- package/src/core/primitives/card/__workshop__/{props.tsx → Props.tsx} +10 -0
- package/src/core/primitives/card/__workshop__/{selected.tsx → Selected.tsx} +1 -1
- package/src/core/primitives/card/__workshop__/{styled.tsx → Styled.tsx} +2 -5
- package/src/core/primitives/card/__workshop__/index.ts +10 -9
- package/src/core/primitives/card/useCard.ts +11 -6
- package/src/core/primitives/checkbox/__workshop__/index.ts +4 -4
- package/src/core/primitives/code/{code.tsx → Code.tsx} +26 -2
- package/src/core/primitives/code/__workshop__/{props.tsx → Props.tsx} +6 -1
- package/src/core/primitives/code/__workshop__/index.ts +2 -2
- package/src/core/primitives/container/{container.tsx → Container.tsx} +1 -1
- package/src/core/primitives/container/__workshop__/{example.tsx → Example.tsx} +6 -1
- package/src/core/primitives/container/__workshop__/index.ts +1 -1
- package/src/core/primitives/flex/{flex.tsx → Flex.tsx} +1 -1
- package/src/core/primitives/flex/__workshop__/{example.tsx → Example.tsx} +14 -16
- package/src/core/primitives/flex/__workshop__/index.ts +2 -2
- package/src/core/primitives/flex/__workshop__/styles.css.ts +12 -0
- package/src/core/primitives/grid/{grid.tsx → Grid.tsx} +1 -1
- package/src/core/primitives/grid/__workshop__/index.ts +1 -1
- package/src/core/primitives/heading/{heading.tsx → Heading.tsx} +16 -0
- package/src/core/primitives/heading/__workshop__/{plain.tsx → Plain.tsx} +12 -1
- package/src/core/primitives/heading/__workshop__/index.ts +2 -2
- package/src/core/primitives/inline/{inline.tsx → Inline.tsx} +2 -1
- package/src/core/primitives/inline/__workshop__/{plain.tsx → Plain.tsx} +5 -1
- package/src/core/primitives/inline/__workshop__/index.ts +1 -1
- package/src/core/primitives/kbd/{kbd.tsx → Kbd.tsx} +2 -2
- package/src/core/primitives/kbd/__workshop__/index.ts +1 -1
- package/src/core/primitives/label/{label.tsx → Label.tsx} +16 -0
- package/src/core/primitives/label/__workshop__/{plain.tsx → Plain.tsx} +15 -1
- package/src/core/primitives/label/__workshop__/index.ts +2 -2
- package/src/core/primitives/layer/{layer.test.tsx → Layer.test.tsx} +7 -7
- package/src/core/primitives/layer/{layer.tsx → Layer.tsx} +3 -3
- package/src/core/primitives/layer/{layerCard.tsx → LayerCard.tsx} +2 -2
- package/src/core/primitives/layer/{layerContext.ts → LayerContext.ts} +1 -1
- package/src/core/primitives/layer/{layerProvider.tsx → LayerProvider.tsx} +6 -6
- package/src/core/primitives/layer/__workshop__/index.ts +3 -3
- package/src/core/primitives/layer/useLayer.ts +3 -3
- package/src/core/primitives/popover/{popover.tsx → Popover.tsx} +170 -150
- package/src/core/primitives/popover/{popoverLayer.tsx → PopoverLayer.tsx} +3 -3
- package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +13 -1
- package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +2 -0
- package/src/core/primitives/popover/__workshop__/PlainStory.tsx +8 -0
- package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +7 -1
- package/src/core/primitives/popover/__workshop__/TestStory.tsx +6 -0
- package/src/core/primitives/popover/floating-ui/size.ts +17 -16
- package/src/core/primitives/radio/{radio.tsx → Radio.tsx} +2 -2
- package/src/core/primitives/radio/__workshop__/index.ts +2 -2
- package/src/core/primitives/select/{select.tsx → Select.tsx} +7 -5
- package/src/core/primitives/select/__workshop__/{plain.tsx → Plain.tsx} +4 -0
- package/src/core/primitives/select/__workshop__/index.ts +2 -2
- package/src/core/primitives/selectable/{selectable.tsx → Selectable.tsx} +2 -2
- package/src/core/primitives/selectable/__workshop__/DataProps.tsx +27 -0
- package/src/core/primitives/selectable/__workshop__/index.ts +14 -0
- package/src/core/primitives/skeleton/{codeSkeleton.tsx → CodeSkeleton.tsx} +1 -1
- package/src/core/primitives/skeleton/{headingSkeleton.tsx → HeadingSkeleton.tsx} +1 -1
- package/src/core/primitives/skeleton/{labelSkeleton.tsx → LabelSkeleton.tsx} +1 -1
- package/src/core/primitives/skeleton/{skeleton.tsx → Skeleton.tsx} +2 -2
- package/src/core/primitives/skeleton/{textSkeleton.tsx → TextSkeleton.tsx} +1 -1
- package/src/core/primitives/skeleton/__workshop__/{delay.tsx → Delay.tsx} +9 -1
- package/src/core/primitives/skeleton/__workshop__/{skeleton.tsx → Skeleton.tsx} +9 -1
- package/src/core/primitives/skeleton/__workshop__/index.ts +2 -2
- package/src/core/primitives/spinner/{spinner.tsx → Spinner.tsx} +2 -2
- package/src/core/primitives/spinner/__workshop__/Props.tsx +6 -1
- package/src/core/primitives/stack/{stack.tsx → Stack.tsx} +1 -1
- package/src/core/primitives/stack/__workshop__/{plain.tsx → Plain.tsx} +4 -1
- package/src/core/primitives/stack/__workshop__/index.ts +1 -1
- package/src/core/primitives/switch/{switch.tsx → Switch.tsx} +2 -10
- package/src/core/primitives/switch/__workshop__/index.ts +2 -2
- package/src/core/primitives/text/{text.tsx → Text.tsx} +14 -0
- package/src/core/primitives/text/__workshop__/{colored.tsx → Colored.tsx} +10 -8
- package/src/core/primitives/text/__workshop__/{example.tsx → Example.tsx} +15 -1
- package/src/core/primitives/text/__workshop__/index.ts +3 -3
- package/src/core/primitives/textArea/{textArea.tsx → TextArea.tsx} +7 -1
- package/src/core/primitives/textArea/__workshop__/{plain.tsx → Plain.tsx} +8 -0
- package/src/core/primitives/textArea/__workshop__/index.ts +1 -1
- package/src/core/primitives/textInput/{textInput.tsx → TextInput.tsx} +93 -72
- package/src/core/primitives/textInput/__workshop__/{plain.tsx → Plain.tsx} +34 -4
- package/src/core/primitives/textInput/__workshop__/{typed.tsx → Typed.tsx} +7 -1
- package/src/core/primitives/textInput/__workshop__/index.ts +7 -7
- package/src/core/primitives/tooltip/{tooltip.test.tsx → Tooltip.test.tsx} +4 -4
- package/src/core/primitives/tooltip/{tooltip.tsx → Tooltip.tsx} +102 -63
- package/src/core/primitives/tooltip/{tooltipLayer.tsx → TooltipLayer.tsx} +2 -2
- package/src/core/primitives/tooltip/__workshop__/{customPortal.tsx → CustomPortal.tsx} +2 -0
- package/src/core/primitives/tooltip/__workshop__/{overflowingBoundary.tsx → OverflowingBoundary.tsx} +2 -0
- package/src/core/primitives/tooltip/__workshop__/{props.tsx → Props.tsx} +12 -0
- package/src/core/primitives/tooltip/__workshop__/{resizableBoundary.tsx → ResizableBoundary.tsx} +5 -0
- package/src/core/primitives/tooltip/__workshop__/index.ts +4 -4
- package/src/core/primitives/tooltip/tooltipDelayGroup/{tooltipDelayGroupContext.tsx → TooltipDelayGroupContext.tsx} +1 -1
- package/src/core/primitives/tooltip/tooltipDelayGroup/{tooltipDelayGroupProvider.tsx → TooltipDelayGroupProvider.tsx} +2 -4
- package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +3 -3
- package/src/core/types.ts +6 -5
- package/src/core/utils/{errorBoundary.tsx → ErrorBoundary.tsx} +1 -1
- package/src/core/utils/boundaryElement/{boundaryElementContext.ts → BoundaryElementContext.ts} +2 -5
- package/src/core/utils/boundaryElement/BoundaryElementProvider.tsx +16 -0
- package/src/core/utils/boundaryElement/__workshop__/index.ts +1 -1
- package/src/core/utils/boundaryElement/types.ts +1 -4
- package/src/core/utils/boundaryElement/useBoundaryElement.ts +7 -19
- package/src/core/utils/elementQuery/__workshop__/CustomMedia.tsx +19 -0
- package/src/core/utils/elementQuery/__workshop__/index.ts +1 -1
- package/src/core/utils/elementQuery/__workshop__/styles.css.ts +31 -0
- package/src/core/utils/portal/{portal.test.tsx → Portal.test.tsx} +7 -7
- package/src/core/utils/portal/{portal.tsx → Portal.tsx} +7 -4
- package/src/core/utils/portal/{portalContext.ts → PortalContext.ts} +1 -1
- package/src/core/utils/portal/PortalProvider.tsx +38 -0
- package/src/core/utils/portal/__workshop__/index.ts +1 -1
- package/src/core/utils/portal/usePortal.ts +12 -5
- package/src/css/_responsiveStyle.css.ts +2 -2
- package/src/css/primitives/_input/_input.css.ts +13 -12
- package/src/css/primitives/_input/input.ts +2 -0
- package/src/css/primitives/_input/types.ts +2 -1
- package/src/css/primitives/avatar/avatar.css.ts +17 -5
- package/src/css/primitives/box/box.css.ts +19 -1
- package/src/css/primitives/button/button.css.ts +252 -183
- package/src/css/primitives/card/__workshop__/{color.tsx → Color.tsx} +9 -1
- package/src/css/primitives/card/__workshop__/index.ts +1 -1
- package/src/css/primitives/card/card.css.ts +133 -130
- package/src/css/primitives/checkbox/checkbox.css.ts +1 -0
- package/src/css/primitives/code/code.ts +4 -0
- package/src/css/primitives/code/types.ts +7 -1
- package/src/css/primitives/heading/heading.ts +4 -0
- package/src/css/primitives/heading/types.ts +7 -1
- package/src/css/primitives/label/label.ts +4 -0
- package/src/css/primitives/label/types.ts +7 -1
- package/src/css/primitives/radio/radio.css.ts +1 -1
- package/src/css/primitives/root/root.css.ts +1 -1
- package/src/css/primitives/select/select.css.ts +7 -1
- package/src/css/primitives/selectable/selectable.css.ts +79 -70
- package/src/css/primitives/switch/switch.css.ts +10 -1
- package/src/css/primitives/text/text.ts +2 -0
- package/src/css/primitives/text/types.ts +6 -1
- package/src/css/primitives/textInput/textInput.css.ts +15 -3
- package/src/css/props/width/types.ts +1 -1
- package/src/css/props/width/width.css.ts +5 -2
- package/src/css/theme/buildCSSTheme.ts +4 -0
- package/src/css/types.ts +4 -0
- package/src/css/vars.css.ts +4 -0
- package/dist/_chunks-cjs/refractor.cjs +0 -22
- package/dist/_chunks-cjs/refractor.cjs.map +0 -1
- package/dist/css/index.cjs +0 -966
- package/dist/css/index.cjs.map +0 -1
- package/dist/css/index.d.cts +0 -1370
- package/dist/index.cjs +0 -4515
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -2521
- package/dist/theme.cjs +0 -870
- package/dist/theme.cjs.map +0 -1
- package/dist/theme.d.cts +0 -499
- package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +0 -36
- package/src/core/primitives/button/__workshop__/styled1.tsx +0 -17
- package/src/core/primitives/button/__workshop__/styled2.tsx +0 -19
- package/src/core/primitives/popover/helpers.ts +0 -32
- package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
- package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -102
- package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -18
- package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +0 -41
- package/src/core/utils/portal/portalProvider.tsx +0 -70
- /package/src/core/__workshop__/{boundary.tsx → Boundary.tsx} +0 -0
- /package/src/core/components/autocomplete/{autocompleteOption.tsx → AutocompleteOption.tsx} +0 -0
- /package/src/core/components/autocomplete/__workshop__/{async.tsx → Async.tsx} +0 -0
- /package/src/core/components/autocomplete/__workshop__/{constrainedHeight.tsx → ConstrainedHeight.tsx} +0 -0
- /package/src/core/components/autocomplete/__workshop__/{focusAndBlur.tsx → FocusAndBlur.tsx} +0 -0
- /package/src/core/components/autocomplete/__workshop__/{fullscreen.tsx → Fullscreen.tsx} +0 -0
- /package/src/core/components/breadcrumbs/__workshop__/{example.tsx → Example.tsx} +0 -0
- /package/src/core/components/dialog/__workshop__/{activate.tsx → Activate.tsx} +0 -0
- /package/src/core/components/dialog/__workshop__/{autoFocus.tsx → AutoFocus.tsx} +0 -0
- /package/src/core/components/dialog/__workshop__/{layering.tsx → Layering.tsx} +0 -0
- /package/src/core/components/dialog/__workshop__/{nested.tsx → Nested.tsx} +0 -0
- /package/src/core/components/dialog/__workshop__/{onScroll.tsx → OnScroll.tsx} +0 -0
- /package/src/core/components/dialog/__workshop__/{provider.tsx → Provider.tsx} +0 -0
- /package/src/core/components/dialog/__workshop__/{wrapped.tsx → Wrapped.tsx} +0 -0
- /package/src/core/components/hotkeys/__workshop__/{plain.tsx → Plain.tsx} +0 -0
- /package/src/core/components/menu/{menuDivider.tsx → MenuDivider.tsx} +0 -0
- /package/src/core/components/menu/__workshop__/{asComponent.tsx → AsComponent.tsx} +0 -0
- /package/src/core/components/menu/__workshop__/{avatarMenu.tsx → AvatarMenu.tsx} +0 -0
- /package/src/core/components/menu/__workshop__/{closableMenuButton.tsx → ClosableMenuButton.tsx} +0 -0
- /package/src/core/components/menu/__workshop__/{constrainedInBoundary.tsx → ConstrainedInBoundary.tsx} +0 -0
- /package/src/core/components/menu/__workshop__/{customMenuItem.tsx → CustomMenuItem.tsx} +0 -0
- /package/src/core/components/menu/__workshop__/{customSelectedState.tsx → CustomSelectedState.tsx} +0 -0
- /package/src/core/components/menu/__workshop__/{disableFocusOnClose.tsx → DisableFocusOnClose.tsx} +0 -0
- /package/src/core/components/menu/__workshop__/{groups.tsx → Groups.tsx} +0 -0
- /package/src/core/components/menu/__workshop__/{menuGroupRight.tsx → MenuGroupRight.tsx} +0 -0
- /package/src/core/components/menu/__workshop__/{nestedMenu.tsx → NestedMenu.tsx} +0 -0
- /package/src/core/components/menu/__workshop__/{onCloseMenuButton.tsx → OnCloseMenuButton.tsx} +0 -0
- /package/src/core/components/menu/__workshop__/{selectedItem.tsx → SelectedItem.tsx} +0 -0
- /package/src/core/components/menu/__workshop__/{shouldFocus.tsx → ShouldFocus.tsx} +0 -0
- /package/src/core/components/menu/__workshop__/{withoutArrow.tsx → WithoutArrow.tsx} +0 -0
- /package/src/core/components/tab/__workshop__/{example.tsx → Example.tsx} +0 -0
- /package/src/core/components/toast/__workshop__/{hook.tsx → Hook.tsx} +0 -0
- /package/src/core/components/tree/__workshop__/{basic.tsx → Basic.tsx} +0 -0
- /package/src/core/components/tree/__workshop__/{tabFromElement.tsx → TabFromElement.tsx} +0 -0
- /package/src/core/components/virtualList/__workshop__/{changingProps.tsx → ChangingProps.tsx} +0 -0
- /package/src/core/components/virtualList/__workshop__/{elementScroll.tsx → ElementScroll.tsx} +0 -0
- /package/src/core/components/virtualList/__workshop__/{infiniteList.tsx → InfiniteList.tsx} +0 -0
- /package/src/core/components/virtualList/__workshop__/{windowScrolll.tsx → WindowScrolll.tsx} +0 -0
- /package/src/core/hooks/useMediaIndex/__workshop__/{test.tsx → Test.tsx} +0 -0
- /package/src/core/primitives/arrow/{arrow.tsx → Arrow.tsx} +0 -0
- /package/src/core/primitives/avatar/__workshop__/{withinButton.tsx → WithinButton.tsx} +0 -0
- /package/src/core/primitives/avatar/__workshop__/{withinMenuItem.tsx → WithinMenuItem.tsx} +0 -0
- /package/src/core/primitives/badge/__workshop__/{tones.tsx → Tones.tsx} +0 -0
- /package/src/core/primitives/box/{box.tsx → Box.tsx} +0 -0
- /package/src/core/primitives/box/__workshop__/{responsive.tsx → Responsive.tsx} +0 -0
- /package/src/core/primitives/button/__workshop__/{custom.tsx → Custom.tsx} +0 -0
- /package/src/core/primitives/button/__workshop__/{customIcons.tsx → CustomIcons.tsx} +0 -0
- /package/src/core/primitives/button/__workshop__/{disabled.tsx → Disabled.tsx} +0 -0
- /package/src/core/primitives/button/__workshop__/{mixedChildren.tsx → MixedChildren.tsx} +0 -0
- /package/src/core/primitives/button/__workshop__/{textOverflow.tsx → TextOverflow.tsx} +0 -0
- /package/src/core/primitives/button/__workshop__/{uploadButton.tsx → UploadButton.tsx} +0 -0
- /package/src/core/primitives/card/__workshop__/{asButton.tsx → AsButton.tsx} +0 -0
- /package/src/core/primitives/card/__workshop__/{asComponent.tsx → AsComponent.tsx} +0 -0
- /package/src/core/primitives/card/__workshop__/{checkered.tsx → Checkered.tsx} +0 -0
- /package/src/core/primitives/card/__workshop__/{interactive.tsx → Interactive.tsx} +0 -0
- /package/src/core/primitives/card/__workshop__/{listNavigation.tsx → ListNavigation.tsx} +0 -0
- /package/src/core/primitives/card/__workshop__/{tones.tsx → Tones.tsx} +0 -0
- /package/src/core/primitives/checkbox/{checkbox.tsx → Checkbox.tsx} +0 -0
- /package/src/core/primitives/checkbox/__workshop__/{example.tsx → Example.tsx} +0 -0
- /package/src/core/primitives/checkbox/__workshop__/{props.tsx → Props.tsx} +0 -0
- /package/src/core/primitives/checkbox/__workshop__/{readOnly.tsx → ReadOnly.tsx} +0 -0
- /package/src/core/primitives/checkbox/__workshop__/{tones.tsx → Tones.tsx} +0 -0
- /package/src/core/primitives/code/{refractor.tsx → Refractor.tsx} +0 -0
- /package/src/core/primitives/code/__workshop__/{opticalAlignment.tsx → OpticalAlignment.tsx} +0 -0
- /package/src/core/primitives/flex/__workshop__/{gap.tsx → Gap.tsx} +0 -0
- /package/src/core/primitives/grid/__workshop__/{responsive.tsx → Responsive.tsx} +0 -0
- /package/src/core/primitives/heading/__workshop__/{opticalAlignment.tsx → OpticalAlignment.tsx} +0 -0
- /package/src/core/primitives/kbd/__workshop__/{plain.tsx → Plain.tsx} +0 -0
- /package/src/core/primitives/label/__workshop__/{opticalAlignment.tsx → OpticalAlignment.tsx} +0 -0
- /package/src/core/primitives/layer/__workshop__/{multipleRoots.tsx → MultipleRoots.tsx} +0 -0
- /package/src/core/primitives/layer/__workshop__/{nested.tsx → Nested.tsx} +0 -0
- /package/src/core/primitives/layer/__workshop__/{responsiveZOffset.tsx → ResponsiveZOffset.tsx} +0 -0
- /package/src/core/primitives/radio/__workshop__/{example.tsx → Example.tsx} +0 -0
- /package/src/core/primitives/radio/__workshop__/{plain.tsx → Plain.tsx} +0 -0
- /package/src/core/primitives/select/__workshop__/{readOnly.tsx → ReadOnly.tsx} +0 -0
- /package/src/core/primitives/spinner/{animatedSpinnerIcon.tsx → AnimatedSpinnerIcon.tsx} +0 -0
- /package/src/core/primitives/srOnly/{srOnly.tsx → SrOnly.tsx} +0 -0
- /package/src/core/primitives/switch/__workshop__/{example.tsx → Example.tsx} +0 -0
- /package/src/core/primitives/switch/__workshop__/{props.tsx → Props.tsx} +0 -0
- /package/src/core/primitives/text/__workshop__/{opticalAlignment.tsx → OpticalAlignment.tsx} +0 -0
- /package/src/core/primitives/textInput/__workshop__/{clearButton.tsx → ClearButton.tsx} +0 -0
- /package/src/core/primitives/textInput/__workshop__/{customValidity.tsx → CustomValidity.tsx} +0 -0
- /package/src/core/primitives/textInput/__workshop__/{readOnly.tsx → ReadOnly.tsx} +0 -0
- /package/src/core/primitives/textInput/__workshop__/{states.tsx → States.tsx} +0 -0
- /package/src/core/primitives/textInput/__workshop__/{tones.tsx → Tones.tsx} +0 -0
- /package/src/core/utils/boundaryElement/__workshop__/{plain.tsx → Plain.tsx} +0 -0
- /package/src/core/utils/elementQuery/{elementQuery.tsx → ElementQuery.tsx} +0 -0
- /package/src/core/utils/portal/__workshop__/{named.tsx → Named.tsx} +0 -0
package/src/core/index.ts
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
// components
|
|
2
|
-
export * from './components/autocomplete/
|
|
2
|
+
export * from './components/autocomplete/Autocomplete'
|
|
3
3
|
export * from './components/autocomplete/types'
|
|
4
|
-
export * from './components/breadcrumbs/
|
|
5
|
-
export * from './components/dialog/
|
|
6
|
-
export * from './components/dialog/
|
|
7
|
-
export * from './components/dialog/
|
|
4
|
+
export * from './components/breadcrumbs/Breadcrumbs'
|
|
5
|
+
export * from './components/dialog/Dialog'
|
|
6
|
+
export * from './components/dialog/DialogContext'
|
|
7
|
+
export * from './components/dialog/DialogProvider'
|
|
8
8
|
export * from './components/dialog/types'
|
|
9
9
|
export * from './components/dialog/useDialog'
|
|
10
|
-
export * from './components/hotkeys/
|
|
11
|
-
export * from './components/menu/
|
|
12
|
-
export * from './components/menu/
|
|
13
|
-
export * from './components/menu/
|
|
14
|
-
export * from './components/menu/
|
|
15
|
-
export * from './components/menu/
|
|
16
|
-
export * from './components/tab/
|
|
17
|
-
export * from './components/tab/
|
|
18
|
-
export * from './components/tab/
|
|
19
|
-
export * from './components/toast/
|
|
20
|
-
export * from './components/toast/
|
|
10
|
+
export * from './components/hotkeys/Hotkeys'
|
|
11
|
+
export * from './components/menu/Menu'
|
|
12
|
+
export * from './components/menu/MenuButton'
|
|
13
|
+
export * from './components/menu/MenuDivider'
|
|
14
|
+
export * from './components/menu/MenuGroup'
|
|
15
|
+
export * from './components/menu/MenuItem'
|
|
16
|
+
export * from './components/tab/Tab'
|
|
17
|
+
export * from './components/tab/TabList'
|
|
18
|
+
export * from './components/tab/TabPanel'
|
|
19
|
+
export * from './components/toast/Toast'
|
|
20
|
+
export * from './components/toast/ToastProvider'
|
|
21
21
|
export * from './components/toast/types'
|
|
22
22
|
export * from './components/toast/useToast'
|
|
23
|
-
export * from './components/tree/
|
|
24
|
-
export * from './components/tree/
|
|
23
|
+
export * from './components/tree/Tree'
|
|
24
|
+
export * from './components/tree/TreeItem'
|
|
25
25
|
export * from './components/tree/types'
|
|
26
26
|
export * from './components/tree/useTree'
|
|
27
|
-
export * from './components/virtualList/
|
|
27
|
+
export * from './components/virtualList/VirtualList'
|
|
28
28
|
|
|
29
29
|
// helpers
|
|
30
30
|
export * from './helpers/animation'
|
|
@@ -42,70 +42,72 @@ export * from './hooks/useMatchMedia'
|
|
|
42
42
|
export * from './hooks/useMediaIndex/useMediaIndex'
|
|
43
43
|
export * from './hooks/usePrefersDark'
|
|
44
44
|
export * from './hooks/usePrefersReducedMotion'
|
|
45
|
-
export * from './hooks/useResponsiveProp'
|
|
46
45
|
|
|
47
46
|
// observers
|
|
48
47
|
export * from './observers/elementSize'
|
|
49
48
|
export * from './observers/resize'
|
|
50
49
|
|
|
51
50
|
// primitives
|
|
52
|
-
export * from './primitives/arrow/
|
|
53
|
-
export * from './primitives/avatar/
|
|
54
|
-
export * from './primitives/avatar/
|
|
55
|
-
export * from './primitives/avatar/
|
|
51
|
+
export * from './primitives/arrow/Arrow'
|
|
52
|
+
export * from './primitives/avatar/Avatar'
|
|
53
|
+
export * from './primitives/avatar/AvatarCounter'
|
|
54
|
+
export * from './primitives/avatar/AvatarStack'
|
|
56
55
|
export * from './primitives/avatar/types'
|
|
57
|
-
export * from './primitives/badge/
|
|
58
|
-
export * from './primitives/box/
|
|
59
|
-
export * from './primitives/button/
|
|
56
|
+
export * from './primitives/badge/Badge'
|
|
57
|
+
export * from './primitives/box/Box'
|
|
58
|
+
export * from './primitives/button/Button'
|
|
60
59
|
export * from './primitives/button/types'
|
|
61
|
-
export * from './primitives/card/
|
|
62
|
-
export * from './primitives/card/
|
|
60
|
+
export * from './primitives/card/Card'
|
|
61
|
+
export * from './primitives/card/CardProvider'
|
|
63
62
|
export * from './primitives/card/types'
|
|
64
|
-
export
|
|
65
|
-
export * from './primitives/checkbox/
|
|
66
|
-
export * from './primitives/code/
|
|
67
|
-
export * from './primitives/container/
|
|
63
|
+
export {useCard} from './primitives/card/useCard'
|
|
64
|
+
export * from './primitives/checkbox/Checkbox'
|
|
65
|
+
export * from './primitives/code/Code'
|
|
66
|
+
export * from './primitives/container/Container'
|
|
68
67
|
export * from './primitives/container/types'
|
|
69
|
-
export * from './primitives/flex/
|
|
70
|
-
export * from './primitives/grid/
|
|
71
|
-
export * from './primitives/heading/
|
|
72
|
-
export * from './primitives/inline/
|
|
73
|
-
export * from './primitives/kbd/
|
|
74
|
-
export * from './primitives/label/
|
|
75
|
-
export * from './primitives/layer/
|
|
76
|
-
export * from './primitives/layer/
|
|
68
|
+
export * from './primitives/flex/Flex'
|
|
69
|
+
export * from './primitives/grid/Grid'
|
|
70
|
+
export * from './primitives/heading/Heading'
|
|
71
|
+
export * from './primitives/inline/Inline'
|
|
72
|
+
export * from './primitives/kbd/Kbd'
|
|
73
|
+
export * from './primitives/label/Label'
|
|
74
|
+
export * from './primitives/layer/Layer'
|
|
75
|
+
export * from './primitives/layer/LayerProvider'
|
|
77
76
|
export * from './primitives/layer/types'
|
|
78
77
|
export * from './primitives/layer/useLayer'
|
|
79
|
-
export * from './primitives/popover/
|
|
78
|
+
export * from './primitives/popover/Popover'
|
|
80
79
|
export * from './primitives/popover/types'
|
|
81
|
-
export * from './primitives/radio/
|
|
82
|
-
export * from './primitives/select/
|
|
83
|
-
export * from './primitives/selectable/
|
|
84
|
-
export * from './primitives/skeleton/
|
|
85
|
-
export * from './primitives/skeleton/
|
|
86
|
-
export * from './primitives/skeleton/
|
|
87
|
-
export * from './primitives/skeleton/
|
|
88
|
-
export * from './primitives/skeleton/
|
|
89
|
-
export * from './primitives/spinner/
|
|
90
|
-
export * from './primitives/srOnly/
|
|
91
|
-
export * from './primitives/stack/
|
|
92
|
-
export * from './primitives/switch/
|
|
93
|
-
export * from './primitives/text/
|
|
94
|
-
export * from './primitives/textArea/
|
|
95
|
-
export * from './primitives/textInput/
|
|
96
|
-
export * from './primitives/tooltip/
|
|
97
|
-
export * from './primitives/tooltip/tooltipDelayGroup'
|
|
80
|
+
export * from './primitives/radio/Radio'
|
|
81
|
+
export * from './primitives/select/Select'
|
|
82
|
+
export * from './primitives/selectable/Selectable'
|
|
83
|
+
export * from './primitives/skeleton/CodeSkeleton'
|
|
84
|
+
export * from './primitives/skeleton/HeadingSkeleton'
|
|
85
|
+
export * from './primitives/skeleton/LabelSkeleton'
|
|
86
|
+
export * from './primitives/skeleton/Skeleton'
|
|
87
|
+
export * from './primitives/skeleton/TextSkeleton'
|
|
88
|
+
export * from './primitives/spinner/Spinner'
|
|
89
|
+
export * from './primitives/srOnly/SrOnly'
|
|
90
|
+
export * from './primitives/stack/Stack'
|
|
91
|
+
export * from './primitives/switch/Switch'
|
|
92
|
+
export * from './primitives/text/Text'
|
|
93
|
+
export * from './primitives/textArea/TextArea'
|
|
94
|
+
export * from './primitives/textInput/TextInput'
|
|
95
|
+
export * from './primitives/tooltip/Tooltip'
|
|
96
|
+
export * from './primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupContext'
|
|
97
|
+
export * from './primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupProvider'
|
|
98
|
+
export * from './primitives/tooltip/tooltipDelayGroup/types'
|
|
99
|
+
export {useTooltipDelayGroup} from './primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup'
|
|
98
100
|
|
|
99
101
|
// utils
|
|
100
|
-
export * from './utils/boundaryElement/
|
|
102
|
+
export * from './utils/boundaryElement/BoundaryElementProvider'
|
|
101
103
|
export * from './utils/boundaryElement/types'
|
|
102
|
-
export
|
|
103
|
-
export * from './utils/elementQuery/
|
|
104
|
-
export * from './utils/
|
|
105
|
-
export * from './utils/portal/
|
|
106
|
-
export * from './utils/portal/
|
|
104
|
+
export {useBoundaryElement} from './utils/boundaryElement/useBoundaryElement'
|
|
105
|
+
export * from './utils/elementQuery/ElementQuery'
|
|
106
|
+
export * from './utils/ErrorBoundary'
|
|
107
|
+
export * from './utils/portal/Portal'
|
|
108
|
+
export * from './utils/portal/PortalProvider'
|
|
107
109
|
export * from './utils/portal/types'
|
|
108
|
-
export
|
|
110
|
+
export {usePortal} from './utils/portal/usePortal'
|
|
109
111
|
|
|
110
112
|
// root
|
|
111
113
|
export * from './Root'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions
|
|
3
3
|
* it's critical that vital react contexts are shared even when there is a duplicate.
|
|
4
|
-
* If we used a model similar to `sanity` itself
|
|
4
|
+
* If we used a model similar to `sanity` itself this would be unnecessary as
|
|
5
5
|
* those libraries enforce single instances.
|
|
6
6
|
* Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then
|
|
7
7
|
* read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.
|
|
@@ -16,7 +16,7 @@ export function createGlobalScopedContext<ContextType, const T extends ContextTy
|
|
|
16
16
|
/**
|
|
17
17
|
* Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix
|
|
18
18
|
*/
|
|
19
|
-
key: `@sanity/ui/
|
|
19
|
+
key: `@sanity/ui/v4/${string}`,
|
|
20
20
|
defaultValue: T,
|
|
21
21
|
): Context<ContextType> {
|
|
22
22
|
const symbol = Symbol.for(key)
|
|
@@ -25,7 +25,9 @@ export function createGlobalScopedContext<ContextType, const T extends ContextTy
|
|
|
25
25
|
* Prevent errors about re-renders on React SSR on Next.js App Router
|
|
26
26
|
*/
|
|
27
27
|
if (typeof document === 'undefined') {
|
|
28
|
-
|
|
28
|
+
const context = createContext<ContextType>(defaultValue)
|
|
29
|
+
context.displayName = key
|
|
30
|
+
return context
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
// Use the global scope as a map of symbols to contexts
|
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
import type {AvatarColor, AvatarSize, FontLabelSize} from '@sanity/ui/theme'
|
|
10
10
|
import {useCallback, useEffect, useMemo, useState} from 'react'
|
|
11
11
|
|
|
12
|
-
import {
|
|
12
|
+
import {_getResponsiveProp} from '../../helpers/props'
|
|
13
13
|
import type {ComponentType, Props} from '../../types'
|
|
14
|
-
import {Box} from '../box/
|
|
15
|
-
import {Label} from '../label/
|
|
14
|
+
import {Box} from '../box/Box'
|
|
15
|
+
import {Label} from '../label/Label'
|
|
16
16
|
import type {AvatarPosition} from './types'
|
|
17
17
|
|
|
18
18
|
/** @public */
|
|
@@ -47,7 +47,7 @@ export function Avatar<E extends AvatarElementType = typeof DEFAULT_AVATAR_ELEME
|
|
|
47
47
|
props: AvatarProps<E>,
|
|
48
48
|
): React.JSX.Element {
|
|
49
49
|
const {
|
|
50
|
-
__unstable_hideInnerStroke,
|
|
50
|
+
__unstable_hideInnerStroke: hideInnerStroke,
|
|
51
51
|
as: Element = DEFAULT_AVATAR_ELEMENT,
|
|
52
52
|
className,
|
|
53
53
|
color = 'magenta',
|
|
@@ -61,7 +61,7 @@ export function Avatar<E extends AvatarElementType = typeof DEFAULT_AVATAR_ELEME
|
|
|
61
61
|
...rest
|
|
62
62
|
} = props as AvatarProps<typeof DEFAULT_AVATAR_ELEMENT>
|
|
63
63
|
|
|
64
|
-
const size =
|
|
64
|
+
const size = useMemo(() => _getResponsiveProp(sizeProp), [sizeProp])
|
|
65
65
|
|
|
66
66
|
const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(
|
|
67
67
|
animateArrowFrom || arrowPositionProp || 'inside',
|
|
@@ -79,6 +79,7 @@ export function Avatar<E extends AvatarElementType = typeof DEFAULT_AVATAR_ELEME
|
|
|
79
79
|
}, [arrowPosition, arrowPositionProp])
|
|
80
80
|
|
|
81
81
|
useEffect(() => {
|
|
82
|
+
// eslint-disable-next-line react-hooks/set-state-in-effect
|
|
82
83
|
if (src) setImageError(false)
|
|
83
84
|
}, [src])
|
|
84
85
|
|
|
@@ -104,7 +105,7 @@ export function Avatar<E extends AvatarElementType = typeof DEFAULT_AVATAR_ELEME
|
|
|
104
105
|
|
|
105
106
|
return (
|
|
106
107
|
<Element
|
|
107
|
-
data-hide-inner-stroke={
|
|
108
|
+
data-hide-inner-stroke={hideInnerStroke ? '' : undefined}
|
|
108
109
|
data-ui="Avatar"
|
|
109
110
|
{...rest}
|
|
110
111
|
aria-label={title}
|
|
@@ -4,8 +4,8 @@ import {useMemo} from 'react'
|
|
|
4
4
|
|
|
5
5
|
import {useResponsiveProp} from '../../hooks/useResponsiveProp'
|
|
6
6
|
import type {ComponentType, Props} from '../../types'
|
|
7
|
-
import {Box} from '../box/
|
|
8
|
-
import {Label} from '../label/
|
|
7
|
+
import {Box} from '../box/Box'
|
|
8
|
+
import {Label} from '../label/Label'
|
|
9
9
|
|
|
10
10
|
/** @public */
|
|
11
11
|
export const DEFAULT_AVATAR_COUNTER_ELEMENT = 'span'
|
|
@@ -4,9 +4,9 @@ import {Children, cloneElement, Fragment, isValidElement, type ReactElement} fro
|
|
|
4
4
|
|
|
5
5
|
import {useResponsiveProp} from '../../hooks/useResponsiveProp'
|
|
6
6
|
import type {ComponentType, Props} from '../../types'
|
|
7
|
-
import {Box, type BoxOwnProps} from '../box/
|
|
8
|
-
import type {AvatarProps} from './
|
|
9
|
-
import {AvatarCounter} from './
|
|
7
|
+
import {Box, type BoxOwnProps} from '../box/Box'
|
|
8
|
+
import type {AvatarProps} from './Avatar'
|
|
9
|
+
import {AvatarCounter} from './AvatarCounter'
|
|
10
10
|
|
|
11
11
|
/** @public */
|
|
12
12
|
export const DEFAULT_AVATAR_STACK_ELEMENT = 'span'
|
|
@@ -4,11 +4,18 @@ import {useSelect} from '@sanity/ui-workshop'
|
|
|
4
4
|
import {WORKSHOP_AVATAR_SIZE_OPTIONS} from '$workshop'
|
|
5
5
|
|
|
6
6
|
export default function AsButtonStory(): React.JSX.Element {
|
|
7
|
+
// @ts-expect-error - TODO: fix this
|
|
7
8
|
const size = useSelect('Size', WORKSHOP_AVATAR_SIZE_OPTIONS, 1)
|
|
8
9
|
|
|
9
10
|
return (
|
|
10
11
|
<Flex align="center" height="fill" justify="center">
|
|
11
|
-
<Avatar
|
|
12
|
+
<Avatar
|
|
13
|
+
as="button"
|
|
14
|
+
color="purple"
|
|
15
|
+
initials="uq"
|
|
16
|
+
// @ts-expect-error - TODO: fix this
|
|
17
|
+
size={size}
|
|
18
|
+
/>
|
|
12
19
|
</Flex>
|
|
13
20
|
)
|
|
14
21
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {Avatar, Box} from '@sanity/ui'
|
|
2
|
+
import type {AvatarSize} from '@sanity/ui/theme'
|
|
3
|
+
import {useBoolean, useSelect} from '@sanity/ui-workshop'
|
|
4
|
+
|
|
5
|
+
import {WORKSHOP_AVATAR_SIZE_OPTIONS, WORKSHOP_AVATAR_SRC} from '$workshop'
|
|
6
|
+
|
|
7
|
+
export default function PropsStory() {
|
|
8
|
+
const hideInnerStroke = useBoolean('Hide inner stroke', false)
|
|
9
|
+
const src = useBoolean('With image source (src)', false)
|
|
10
|
+
// @ts-expect-error - TODO: fix this
|
|
11
|
+
const size = useSelect<AvatarSize>('Size', WORKSHOP_AVATAR_SIZE_OPTIONS, 1)
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<Box alignItems="center" display="flex" height="fill" justifyContent="center">
|
|
15
|
+
<Avatar
|
|
16
|
+
__unstable_hideInnerStroke={hideInnerStroke}
|
|
17
|
+
size={size}
|
|
18
|
+
src={src ? WORKSHOP_AVATAR_SRC : undefined}
|
|
19
|
+
/>
|
|
20
|
+
</Box>
|
|
21
|
+
)
|
|
22
|
+
}
|
|
@@ -4,11 +4,15 @@ import {useSelect} from '@sanity/ui-workshop'
|
|
|
4
4
|
import {WORKSHOP_AVATAR_SIZE_OPTIONS} from '$workshop'
|
|
5
5
|
|
|
6
6
|
export default function StackStory(): React.JSX.Element {
|
|
7
|
+
// @ts-expect-error - TODO: fix this
|
|
7
8
|
const size = useSelect('Size', WORKSHOP_AVATAR_SIZE_OPTIONS, 1)
|
|
8
9
|
|
|
9
10
|
return (
|
|
10
11
|
<Flex align="center" height="fill" justify="center">
|
|
11
|
-
<AvatarStack
|
|
12
|
+
<AvatarStack
|
|
13
|
+
// @ts-expect-error - TODO: fix this
|
|
14
|
+
size={size}
|
|
15
|
+
>
|
|
12
16
|
<AvatarCounter count={2} />
|
|
13
17
|
<Avatar color="magenta" initials="uq" />
|
|
14
18
|
<Avatar
|
|
@@ -5,25 +5,30 @@ const scope: WorkshopScope = {
|
|
|
5
5
|
name: 'primitives/avatar',
|
|
6
6
|
title: 'Avatar',
|
|
7
7
|
stories: [
|
|
8
|
+
{
|
|
9
|
+
name: 'props',
|
|
10
|
+
title: 'Props',
|
|
11
|
+
component: lazy(() => import('./PropsStory')),
|
|
12
|
+
},
|
|
8
13
|
{
|
|
9
14
|
name: 'as-button',
|
|
10
15
|
title: 'As button',
|
|
11
|
-
component: lazy(() => import('./
|
|
16
|
+
component: lazy(() => import('./AsButton')),
|
|
12
17
|
},
|
|
13
18
|
{
|
|
14
19
|
name: 'avatar-stack',
|
|
15
20
|
title: 'Avatar stack',
|
|
16
|
-
component: lazy(() => import('./
|
|
21
|
+
component: lazy(() => import('./Stack')),
|
|
17
22
|
},
|
|
18
23
|
{
|
|
19
24
|
name: 'within-button',
|
|
20
25
|
title: 'Within button',
|
|
21
|
-
component: lazy(() => import('./
|
|
26
|
+
component: lazy(() => import('./WithinButton')),
|
|
22
27
|
},
|
|
23
28
|
{
|
|
24
29
|
name: 'within-menu-item',
|
|
25
30
|
title: 'Within menu item',
|
|
26
|
-
component: lazy(() => import('./
|
|
31
|
+
component: lazy(() => import('./WithinMenuItem')),
|
|
27
32
|
},
|
|
28
33
|
],
|
|
29
34
|
}
|
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
} from '@sanity/ui/css'
|
|
8
8
|
|
|
9
9
|
import type {ComponentType, Props} from '../../types'
|
|
10
|
-
import {Box} from '../box/
|
|
11
|
-
import {Text} from '../text/
|
|
10
|
+
import {Box} from '../box/Box'
|
|
11
|
+
import {Text} from '../text/Text'
|
|
12
12
|
|
|
13
13
|
/** @public */
|
|
14
14
|
export const DEFAULT_BADGE_ELEMENT = 'span'
|
|
@@ -4,14 +4,25 @@ import {useAction, useSelect, useText} from '@sanity/ui-workshop'
|
|
|
4
4
|
import {WORKSHOP_BADGE_TONE_OPTIONS, WORKSHOP_SPACE_OPTIONS} from '$workshop'
|
|
5
5
|
|
|
6
6
|
export default function PropsStory(): React.JSX.Element {
|
|
7
|
+
// @ts-expect-error - TODO: fix this
|
|
7
8
|
const paddingX = useSelect('Padding X', WORKSHOP_SPACE_OPTIONS, 1)
|
|
9
|
+
// @ts-expect-error - TODO: fix this
|
|
8
10
|
const paddingY = useSelect('Padding Y', WORKSHOP_SPACE_OPTIONS, 1)
|
|
11
|
+
// @ts-expect-error - TODO: fix this
|
|
9
12
|
const tone = useSelect('Tone', WORKSHOP_BADGE_TONE_OPTIONS, 'default')
|
|
10
13
|
const textProp = useText('Text', 'Label')
|
|
11
14
|
|
|
12
15
|
return (
|
|
13
16
|
<Flex align="center" height="fill" justify="center">
|
|
14
|
-
<Badge
|
|
17
|
+
<Badge
|
|
18
|
+
onClick={useAction('onClick')}
|
|
19
|
+
// @ts-expect-error - TODO: fix this
|
|
20
|
+
paddingX={paddingX}
|
|
21
|
+
// @ts-expect-error - TODO: fix this
|
|
22
|
+
paddingY={paddingY}
|
|
23
|
+
// @ts-expect-error - TODO: fix this
|
|
24
|
+
tone={tone}
|
|
25
|
+
>
|
|
15
26
|
{textProp}
|
|
16
27
|
</Badge>
|
|
17
28
|
</Flex>
|
|
@@ -8,12 +8,12 @@ const scope: WorkshopScope = {
|
|
|
8
8
|
{
|
|
9
9
|
name: 'props',
|
|
10
10
|
title: 'Props',
|
|
11
|
-
component: lazy(() => import('./
|
|
11
|
+
component: lazy(() => import('./Props')),
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
name: 'tones',
|
|
15
15
|
title: 'Tones',
|
|
16
|
-
component: lazy(() => import('./
|
|
16
|
+
component: lazy(() => import('./Tones')),
|
|
17
17
|
},
|
|
18
18
|
],
|
|
19
19
|
}
|
|
@@ -4,12 +4,17 @@ import {useAction, useSelect} from '@sanity/ui-workshop'
|
|
|
4
4
|
import {WORKSHOP_SPACE_OPTIONS} from '$workshop'
|
|
5
5
|
|
|
6
6
|
export default function PropsStory(): React.JSX.Element {
|
|
7
|
+
// @ts-expect-error - TODO: fix this
|
|
7
8
|
const padding = useSelect('Padding', WORKSHOP_SPACE_OPTIONS, 0)
|
|
8
9
|
|
|
9
10
|
return (
|
|
10
11
|
<Box padding={[4, 5, 6]}>
|
|
11
12
|
<Card border tone="inherit">
|
|
12
|
-
<Box
|
|
13
|
+
<Box
|
|
14
|
+
onClick={useAction('onClick')}
|
|
15
|
+
// @ts-expect-error - TODO: fix this
|
|
16
|
+
padding={padding}
|
|
17
|
+
>
|
|
13
18
|
<Text>
|
|
14
19
|
Box with <code>padding={padding}</code>
|
|
15
20
|
</Text>
|
|
@@ -8,12 +8,12 @@ const scope: WorkshopScope = {
|
|
|
8
8
|
{
|
|
9
9
|
name: 'props',
|
|
10
10
|
title: 'Props',
|
|
11
|
-
component: lazy(() => import('./
|
|
11
|
+
component: lazy(() => import('./Props')),
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
name: 'responsive',
|
|
15
15
|
title: 'Responsive',
|
|
16
|
-
component: lazy(() => import('./
|
|
16
|
+
component: lazy(() => import('./Responsive')),
|
|
17
17
|
},
|
|
18
18
|
],
|
|
19
19
|
}
|
|
@@ -9,13 +9,13 @@ import type {
|
|
|
9
9
|
} from '@sanity/ui/css'
|
|
10
10
|
import {button, buttonLoadingBox} from '@sanity/ui/css'
|
|
11
11
|
import type {FontTextSize} from '@sanity/ui/theme'
|
|
12
|
-
import {
|
|
12
|
+
import {isValidElement} from 'react'
|
|
13
13
|
import {isValidElementType} from 'react-is'
|
|
14
14
|
|
|
15
15
|
import type {ComponentType, Props} from '../../types'
|
|
16
|
-
import {Box} from '../box/
|
|
17
|
-
import {Spinner} from '../spinner/
|
|
18
|
-
import {Text, type TextOwnProps} from '../text/
|
|
16
|
+
import {Box} from '../box/Box'
|
|
17
|
+
import {Spinner} from '../spinner/Spinner'
|
|
18
|
+
import {Text, type TextOwnProps} from '../text/Text'
|
|
19
19
|
import type {ButtonTextAlign} from './types'
|
|
20
20
|
|
|
21
21
|
/** @public */
|
|
@@ -30,8 +30,8 @@ export type ButtonOwnProps = ButtonStyleProps &
|
|
|
30
30
|
'data-ui'?: string
|
|
31
31
|
'disabled'?: boolean
|
|
32
32
|
'fontSize'?: ResponsiveProp<FontTextSize>
|
|
33
|
-
'icon'?:
|
|
34
|
-
'iconRight'?:
|
|
33
|
+
'icon'?: React.ElementType | React.ReactNode
|
|
34
|
+
'iconRight'?: React.ElementType | React.ReactNode
|
|
35
35
|
'justify'?: BoxStyleProps['justifyContent']
|
|
36
36
|
/** @beta Do not use in production, as this might change.*/
|
|
37
37
|
'loading'?: boolean
|
|
@@ -39,7 +39,7 @@ export type ButtonOwnProps = ButtonStyleProps &
|
|
|
39
39
|
'textAlign'?: ButtonTextAlign
|
|
40
40
|
'muted'?: boolean
|
|
41
41
|
'target'?: string
|
|
42
|
-
'text'?: ReactNode
|
|
42
|
+
'text'?: React.ReactNode
|
|
43
43
|
'textOverflow'?: TextOwnProps['textOverflow']
|
|
44
44
|
'textWeight'?: TextOwnProps['weight']
|
|
45
45
|
'width'?: ResponsiveProp<Width>
|
|
@@ -63,7 +63,7 @@ export function Button<E extends ButtonElementType = typeof DEFAULT_BUTTON_ELEME
|
|
|
63
63
|
disabled,
|
|
64
64
|
flex,
|
|
65
65
|
fontSize = 1,
|
|
66
|
-
gap
|
|
66
|
+
gap: _gap,
|
|
67
67
|
gapX,
|
|
68
68
|
gapY,
|
|
69
69
|
icon: IconComponent,
|
|
@@ -71,6 +71,7 @@ export function Button<E extends ButtonElementType = typeof DEFAULT_BUTTON_ELEME
|
|
|
71
71
|
justify = 'center',
|
|
72
72
|
loading,
|
|
73
73
|
mode = 'default',
|
|
74
|
+
muted = false,
|
|
74
75
|
padding = 3,
|
|
75
76
|
paddingX,
|
|
76
77
|
paddingY,
|
|
@@ -86,10 +87,10 @@ export function Button<E extends ButtonElementType = typeof DEFAULT_BUTTON_ELEME
|
|
|
86
87
|
textWeight = 'medium',
|
|
87
88
|
tone = 'default',
|
|
88
89
|
type = 'button',
|
|
89
|
-
muted = false,
|
|
90
90
|
width,
|
|
91
91
|
...rest
|
|
92
92
|
} = props as ButtonProps<typeof DEFAULT_BUTTON_ELEMENT>
|
|
93
|
+
const gap = _gap ?? props.padding ?? 3
|
|
93
94
|
|
|
94
95
|
let href: string | undefined = undefined
|
|
95
96
|
|
|
@@ -103,8 +104,8 @@ export function Button<E extends ButtonElementType = typeof DEFAULT_BUTTON_ELEME
|
|
|
103
104
|
data-ui="Button"
|
|
104
105
|
{...rest}
|
|
105
106
|
className={button({className, flex, mode, radius, tone, width})}
|
|
106
|
-
data-disabled={loading || disabled ? '' :
|
|
107
|
-
data-selected={selected ? '' :
|
|
107
|
+
data-disabled={loading || disabled ? '' : props['data-disabled']}
|
|
108
|
+
data-selected={selected ? '' : props['data-selected']}
|
|
108
109
|
disabled={Boolean(loading || disabled)}
|
|
109
110
|
// @ts-expect-error - TODO: fix this
|
|
110
111
|
href={disabled ? undefined : href}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {Button, Stack} from '@sanity/ui'
|
|
2
|
+
import type {ButtonMode, ElementTone} from '@sanity/ui/theme'
|
|
3
|
+
import {useSelect} from '@sanity/ui-workshop'
|
|
4
|
+
|
|
5
|
+
import {WORKSHOP_BUTTON_MODE_OPTIONS, WORKSHOP_BUTTON_TONE_OPTIONS} from '$workshop'
|
|
6
|
+
|
|
7
|
+
export default function DataPropsStory(): React.JSX.Element {
|
|
8
|
+
// @ts-expect-error - TODO: fix this
|
|
9
|
+
const mode = useSelect('Mode', WORKSHOP_BUTTON_MODE_OPTIONS, 'default') as ButtonMode | undefined
|
|
10
|
+
|
|
11
|
+
// @ts-expect-error - TODO: fix this
|
|
12
|
+
const tone = useSelect('Tone', WORKSHOP_BUTTON_TONE_OPTIONS, 'default') as ElementTone | undefined
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<Stack gap={4} padding={4}>
|
|
16
|
+
<Button data-enabled="" mode={mode} text="Button" tone={tone} />
|
|
17
|
+
<Button data-hovered="" mode={mode} text="Button" tone={tone} />
|
|
18
|
+
<Button data-pressed="" mode={mode} text="Button" tone={tone} />
|
|
19
|
+
<Button data-selected="" mode={mode} text="Button" tone={tone} />
|
|
20
|
+
</Stack>
|
|
21
|
+
)
|
|
22
|
+
}
|
|
@@ -15,39 +15,61 @@ import {
|
|
|
15
15
|
|
|
16
16
|
export default function ButtonStory(): React.JSX.Element {
|
|
17
17
|
const disabled = useBoolean('Disabled')
|
|
18
|
+
// @ts-expect-error - TODO: fix this
|
|
18
19
|
const fontSize = useSelect('Font size', WORKSHOP_TEXT_FONT_SIZE_OPTIONS)
|
|
20
|
+
// @ts-expect-error - TODO: fix this
|
|
19
21
|
const gap = useSelect('Gap', WORKSHOP_SPACE_OPTIONS)
|
|
22
|
+
// @ts-expect-error - TODO: fix this
|
|
20
23
|
const icon = useSelect('Icon', WORKSHOP_ICON_SYMBOL_OPTIONS)
|
|
24
|
+
// @ts-expect-error - TODO: fix this
|
|
21
25
|
const iconRight = useSelect('Icon (right)', WORKSHOP_ICON_SYMBOL_OPTIONS)
|
|
26
|
+
// @ts-expect-error - TODO: fix this
|
|
22
27
|
const justify = useSelect('Justify', WORKSHOP_FLEX_JUSTIFY_OPTIONS)
|
|
23
28
|
const loading = useBoolean('Loading')
|
|
29
|
+
// @ts-expect-error - TODO: fix this
|
|
24
30
|
const mode = useSelect('Mode', WORKSHOP_BUTTON_MODE_OPTIONS)
|
|
31
|
+
// @ts-expect-error - TODO: fix this
|
|
25
32
|
const paddingX = useSelect('Padding X', WORKSHOP_SPACE_OPTIONS)
|
|
33
|
+
// @ts-expect-error - TODO: fix this
|
|
26
34
|
const paddingY = useSelect('Padding Y', WORKSHOP_SPACE_OPTIONS)
|
|
27
35
|
const selected = useBoolean('Selected')
|
|
36
|
+
// @ts-expect-error - TODO: fix this
|
|
28
37
|
const tone = useSelect('Tone', WORKSHOP_BUTTON_TONE_OPTIONS)
|
|
38
|
+
// @ts-expect-error - TODO: fix this
|
|
29
39
|
const textAlign = useSelect('Text align', WORKSHOP_BUTTON_TEXT_ALIGN_OPTIONS)
|
|
30
40
|
const textProp = useText('Text', 'Label')
|
|
41
|
+
// @ts-expect-error - TODO: fix this
|
|
31
42
|
const textWeight = useSelect('Text weight', WORKSHOP_TEXT_WEIGHT_OPTIONS)
|
|
32
43
|
|
|
33
44
|
return (
|
|
34
45
|
<Flex align="center" height="fill" justify="center">
|
|
35
46
|
<Button
|
|
36
47
|
disabled={disabled}
|
|
48
|
+
// @ts-expect-error - TODO: fix this
|
|
37
49
|
fontSize={fontSize}
|
|
50
|
+
// @ts-expect-error - TODO: fix this
|
|
38
51
|
gap={gap}
|
|
52
|
+
// @ts-expect-error - TODO: fix this
|
|
39
53
|
icon={icon && icons[icon]}
|
|
54
|
+
// @ts-expect-error - TODO: fix this
|
|
40
55
|
iconRight={iconRight && icons[iconRight]}
|
|
56
|
+
// @ts-expect-error - TODO: fix this
|
|
41
57
|
justify={justify}
|
|
42
58
|
loading={loading}
|
|
59
|
+
// @ts-expect-error - TODO: fix this
|
|
43
60
|
mode={mode}
|
|
44
61
|
onClick={useAction('onClick')}
|
|
62
|
+
// @ts-expect-error - TODO: fix this
|
|
45
63
|
paddingX={paddingX}
|
|
64
|
+
// @ts-expect-error - TODO: fix this
|
|
46
65
|
paddingY={paddingY}
|
|
47
66
|
selected={selected}
|
|
67
|
+
// @ts-expect-error - TODO: fix this
|
|
48
68
|
textAlign={textAlign}
|
|
49
69
|
text={textProp}
|
|
70
|
+
// @ts-expect-error - TODO: fix this
|
|
50
71
|
textWeight={textWeight}
|
|
72
|
+
// @ts-expect-error - TODO: fix this
|
|
51
73
|
tone={tone}
|
|
52
74
|
/>
|
|
53
75
|
</Flex>
|