@sanity/ui 4.0.0-static.4 → 4.0.0-static.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +1752 -1132
- 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} +24 -9
- 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
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {UploadIcon} from '@sanity/icons'
|
|
2
|
+
import {Button, Flex} from '@sanity/ui'
|
|
3
|
+
|
|
4
|
+
import {sanityUploadButton} from './styles.css'
|
|
5
|
+
|
|
6
|
+
export default function SanityUploadButtonWorkaroundStory(): React.JSX.Element {
|
|
7
|
+
return (
|
|
8
|
+
<Flex align="center" height="fill" justify="center">
|
|
9
|
+
<Button
|
|
10
|
+
className={sanityUploadButton}
|
|
11
|
+
as="label"
|
|
12
|
+
htmlFor="file"
|
|
13
|
+
icon={UploadIcon}
|
|
14
|
+
tabIndex={0}
|
|
15
|
+
text="Upload"
|
|
16
|
+
>
|
|
17
|
+
<input type="file" />
|
|
18
|
+
</Button>
|
|
19
|
+
</Flex>
|
|
20
|
+
)
|
|
21
|
+
}
|
|
@@ -14,14 +14,22 @@ import {
|
|
|
14
14
|
export default function StackedStory(): React.JSX.Element {
|
|
15
15
|
const tones = Object.entries(WORKSHOP_BUTTON_TONE_OPTIONS)
|
|
16
16
|
const disabled = useBoolean('Disabled', false)
|
|
17
|
+
// @ts-expect-error - TODO: fix this
|
|
17
18
|
const fontSize = useSelect('Font size', WORKSHOP_TEXT_FONT_SIZE_OPTIONS, 2)
|
|
19
|
+
// @ts-expect-error - TODO: fix this
|
|
18
20
|
const gap = useSelect('Gap', WORKSHOP_SPACE_OPTIONS, 3)
|
|
21
|
+
// @ts-expect-error - TODO: fix this
|
|
19
22
|
const icon = useSelect('Icon', WORKSHOP_ICON_SYMBOL_OPTIONS, 'add-circle')
|
|
23
|
+
// @ts-expect-error - TODO: fix this
|
|
20
24
|
const iconRight = useSelect('Icon (right)', WORKSHOP_ICON_SYMBOL_OPTIONS)
|
|
25
|
+
// @ts-expect-error - TODO: fix this
|
|
21
26
|
const justify = useSelect('Justify', WORKSHOP_FLEX_JUSTIFY_OPTIONS, 'center')
|
|
27
|
+
// @ts-expect-error - TODO: fix this
|
|
22
28
|
const mode = useSelect('Mode', WORKSHOP_BUTTON_MODE_OPTIONS, 'default')
|
|
23
29
|
const onClick = useAction('onClick')
|
|
30
|
+
// @ts-expect-error - TODO: fix this
|
|
24
31
|
const paddingX = useSelect('Padding X', WORKSHOP_SPACE_OPTIONS, 3)
|
|
32
|
+
// @ts-expect-error - TODO: fix this
|
|
25
33
|
const paddingY = useSelect('Padding Y', WORKSHOP_SPACE_OPTIONS, 3)
|
|
26
34
|
const selected = useBoolean('Selected', false)
|
|
27
35
|
|
|
@@ -34,15 +42,23 @@ export default function StackedStory(): React.JSX.Element {
|
|
|
34
42
|
{tones.map(([title, tone]) => (
|
|
35
43
|
<Button
|
|
36
44
|
disabled={disabled}
|
|
45
|
+
// @ts-expect-error - TODO: fix this
|
|
37
46
|
fontSize={fontSize}
|
|
47
|
+
// @ts-expect-error - TODO: fix this
|
|
38
48
|
gap={gap}
|
|
49
|
+
// @ts-expect-error - TODO: fix this
|
|
39
50
|
icon={icon && icons[icon]}
|
|
51
|
+
// @ts-expect-error - TODO: fix this
|
|
40
52
|
iconRight={iconRight && icons[iconRight]}
|
|
53
|
+
// @ts-expect-error - TODO: fix this
|
|
41
54
|
justify={justify}
|
|
42
55
|
key={tone}
|
|
56
|
+
// @ts-expect-error - TODO: fix this
|
|
43
57
|
mode={mode}
|
|
44
58
|
onClick={onClick}
|
|
59
|
+
// @ts-expect-error - TODO: fix this
|
|
45
60
|
paddingX={paddingX}
|
|
61
|
+
// @ts-expect-error - TODO: fix this
|
|
46
62
|
paddingY={paddingY}
|
|
47
63
|
selected={selected}
|
|
48
64
|
text={title}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {Button, Flex} from '@sanity/ui'
|
|
2
|
+
|
|
3
|
+
import {styledButton1} from './styles.css'
|
|
4
|
+
|
|
5
|
+
export default function StyledButton1Story(): React.JSX.Element {
|
|
6
|
+
return (
|
|
7
|
+
<Flex align="center" height="fill" justify="center">
|
|
8
|
+
<Button className={styledButton1} as="a" href="#" text="Test" />
|
|
9
|
+
</Flex>
|
|
10
|
+
)
|
|
11
|
+
}
|
|
@@ -8,57 +8,57 @@ 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: 'styled-1',
|
|
15
15
|
title: 'Styled #1',
|
|
16
|
-
component: lazy(() => import('./
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: 'styled-2',
|
|
20
|
-
title: 'Styled #2',
|
|
21
|
-
component: lazy(() => import('./styled2')),
|
|
16
|
+
component: lazy(() => import('./Styled1')),
|
|
22
17
|
},
|
|
23
18
|
{
|
|
24
19
|
name: 'stacked',
|
|
25
20
|
title: 'Stacked',
|
|
26
|
-
component: lazy(() => import('./
|
|
21
|
+
component: lazy(() => import('./Stacked')),
|
|
27
22
|
},
|
|
28
23
|
{
|
|
29
24
|
name: 'custom',
|
|
30
25
|
title: 'Custom',
|
|
31
|
-
component: lazy(() => import('./
|
|
26
|
+
component: lazy(() => import('./Custom')),
|
|
32
27
|
},
|
|
33
28
|
{
|
|
34
29
|
name: 'mixed-children',
|
|
35
30
|
title: 'Mixed children',
|
|
36
|
-
component: lazy(() => import('./
|
|
31
|
+
component: lazy(() => import('./MixedChildren')),
|
|
37
32
|
},
|
|
38
33
|
{
|
|
39
34
|
name: 'upload-button',
|
|
40
35
|
title: 'Upload button',
|
|
41
|
-
component: lazy(() => import('./
|
|
36
|
+
component: lazy(() => import('./UploadButton')),
|
|
42
37
|
},
|
|
43
38
|
{
|
|
44
39
|
name: 'sanity-upload-button-workaround',
|
|
45
40
|
title: 'SanityUploadButtonWorkaroundStory',
|
|
46
|
-
component: lazy(() => import('./
|
|
41
|
+
component: lazy(() => import('./SanityUploadButton')),
|
|
47
42
|
},
|
|
48
43
|
{
|
|
49
44
|
name: 'custom-icons',
|
|
50
45
|
title: 'Custom icons',
|
|
51
|
-
component: lazy(() => import('./
|
|
46
|
+
component: lazy(() => import('./CustomIcons')),
|
|
52
47
|
},
|
|
53
48
|
{
|
|
54
49
|
name: 'disabled',
|
|
55
50
|
title: 'Disabled',
|
|
56
|
-
component: lazy(() => import('./
|
|
51
|
+
component: lazy(() => import('./Disabled')),
|
|
57
52
|
},
|
|
58
53
|
{
|
|
59
54
|
name: 'text-overflow',
|
|
60
55
|
title: 'Text overflow',
|
|
61
|
-
component: lazy(() => import('./
|
|
56
|
+
component: lazy(() => import('./TextOverflow')),
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: 'data-props',
|
|
60
|
+
title: 'Data props',
|
|
61
|
+
component: lazy(() => import('./DataProps')),
|
|
62
62
|
},
|
|
63
63
|
],
|
|
64
64
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {globalStyle, style} from '@vanilla-extract/css'
|
|
2
|
+
|
|
3
|
+
export const sanityUploadButton: string = style({})
|
|
4
|
+
|
|
5
|
+
globalStyle(`${sanityUploadButton} input`, {
|
|
6
|
+
appearance: 'none',
|
|
7
|
+
overflow: ['hidden', 'clip'],
|
|
8
|
+
top: 0,
|
|
9
|
+
left: 0,
|
|
10
|
+
height: '100%',
|
|
11
|
+
opacity: 0,
|
|
12
|
+
position: 'absolute',
|
|
13
|
+
maxWidth: 0,
|
|
14
|
+
width: ['100%', '-moz-available', '-webkit-fill-available', 'stretch'],
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
globalStyle(`${sanityUploadButton} > span:nth-child(2)`, {
|
|
18
|
+
width: 0,
|
|
19
|
+
flex: 'none',
|
|
20
|
+
padding: 0,
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
export const styledButton1: string = style({
|
|
24
|
+
selectors: {
|
|
25
|
+
'&:hover': {
|
|
26
|
+
backgroundColor: 'red',
|
|
27
|
+
boxShadow: 'none',
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
})
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {card, type CardStyleProps} from '@sanity/ui/css'
|
|
2
|
-
import {
|
|
2
|
+
import {use} from 'react'
|
|
3
3
|
|
|
4
4
|
import type {Props} from '../../types'
|
|
5
|
-
import {Box, type BoxElementType, type BoxOwnProps} from '../box/
|
|
6
|
-
import {CardContext} from './
|
|
7
|
-
import {CardProvider} from './
|
|
5
|
+
import {Box, type BoxElementType, type BoxOwnProps} from '../box/Box'
|
|
6
|
+
import {CardContext} from './CardContext'
|
|
7
|
+
import {CardProvider} from './CardProvider'
|
|
8
8
|
|
|
9
9
|
/** @public */
|
|
10
10
|
export const DEFAULT_CARD_ELEMENT = 'div'
|
|
@@ -47,7 +47,6 @@ export function Card<E extends CardElementType = typeof DEFAULT_CARD_ELEMENT>(
|
|
|
47
47
|
__unstable_focusRing: focusRing = false,
|
|
48
48
|
as = DEFAULT_CARD_ELEMENT,
|
|
49
49
|
className,
|
|
50
|
-
disabled,
|
|
51
50
|
pressed,
|
|
52
51
|
radius = 0,
|
|
53
52
|
scheme: schemeProp,
|
|
@@ -57,7 +56,7 @@ export function Card<E extends CardElementType = typeof DEFAULT_CARD_ELEMENT>(
|
|
|
57
56
|
...rest
|
|
58
57
|
} = props as CardProps<typeof DEFAULT_CARD_ELEMENT>
|
|
59
58
|
|
|
60
|
-
const parent =
|
|
59
|
+
const parent = use(CardContext)
|
|
61
60
|
const tone = toneProp === 'inherit' ? parent?.tone : toneProp
|
|
62
61
|
const scheme = schemeProp === undefined ? parent?.scheme : schemeProp
|
|
63
62
|
|
|
@@ -72,10 +71,11 @@ export function Card<E extends CardElementType = typeof DEFAULT_CARD_ELEMENT>(
|
|
|
72
71
|
tone,
|
|
73
72
|
})}
|
|
74
73
|
data-checkered={checkered ? '' : undefined}
|
|
75
|
-
|
|
76
|
-
data-
|
|
77
|
-
data-
|
|
78
|
-
data-
|
|
74
|
+
// Extract the disabled prop without removing it from `...rest` so that the underlying <button> or <a> has `[disabled]` when needed
|
|
75
|
+
data-disabled={props.disabled ? '' : props['data-disabled']}
|
|
76
|
+
data-focus-ring={focusRing ? '' : props['data-focus-ring']}
|
|
77
|
+
data-pressed={pressed ? '' : props['data-pressed']}
|
|
78
|
+
data-selected={selected ? '' : props['data-selected']}
|
|
79
79
|
radius={radius}
|
|
80
80
|
style={style}
|
|
81
81
|
/>
|
|
@@ -7,4 +7,4 @@ import type {CardContextValue} from './types'
|
|
|
7
7
|
* @internal
|
|
8
8
|
*/
|
|
9
9
|
export const CardContext: Context<CardContextValue | null> =
|
|
10
|
-
createGlobalScopedContext<CardContextValue | null>('@sanity/ui/
|
|
10
|
+
createGlobalScopedContext<CardContextValue | null>('@sanity/ui/v4/card', null)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type {CardTone, ColorScheme} from '@sanity/ui/theme'
|
|
2
|
-
import {type ReactNode
|
|
2
|
+
import {type ReactNode} from 'react'
|
|
3
3
|
|
|
4
|
-
import {CardContext} from './
|
|
4
|
+
import {CardContext} from './CardContext'
|
|
5
5
|
import type {_CardCompatProviderComponent} from './types'
|
|
6
6
|
|
|
7
7
|
/** @public */
|
|
@@ -14,14 +14,5 @@ export function CardProvider(props: {
|
|
|
14
14
|
}): React.JSX.Element {
|
|
15
15
|
const {children, tone, scheme, unstable_CompatProvider} = props
|
|
16
16
|
|
|
17
|
-
return
|
|
18
|
-
<CardContext.Provider
|
|
19
|
-
value={useMemo(
|
|
20
|
-
() => ({tone, scheme, unstable_CompatProvider}),
|
|
21
|
-
[tone, scheme, unstable_CompatProvider],
|
|
22
|
-
)}
|
|
23
|
-
>
|
|
24
|
-
{children}
|
|
25
|
-
</CardContext.Provider>
|
|
26
|
-
)
|
|
17
|
+
return <CardContext value={{tone, scheme, unstable_CompatProvider}}>{children}</CardContext>
|
|
27
18
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {Card, Stack, Text} from '@sanity/ui'
|
|
2
|
+
import type {CardTone} from '@sanity/ui/theme'
|
|
3
|
+
import {useSelect} from '@sanity/ui-workshop'
|
|
4
|
+
|
|
5
|
+
import {WORKSHOP_CARD_TONE_OPTIONS} from '$workshop'
|
|
6
|
+
|
|
7
|
+
export default function DataPropsStory(): React.JSX.Element {
|
|
8
|
+
// @ts-expect-error - TODO: fix this
|
|
9
|
+
const tone = useSelect('Tone', WORKSHOP_CARD_TONE_OPTIONS, 'default') as CardTone | undefined
|
|
10
|
+
|
|
11
|
+
return (
|
|
12
|
+
<Stack gap={1} padding={4}>
|
|
13
|
+
<Card as="button" data-enabled="" padding={3} tone={tone}>
|
|
14
|
+
<Text>Card</Text>
|
|
15
|
+
</Card>
|
|
16
|
+
<Card as="button" data-hovered="" padding={3} tone={tone}>
|
|
17
|
+
<Text>Card</Text>
|
|
18
|
+
</Card>
|
|
19
|
+
<Card as="button" data-pressed="" padding={3} tone={tone}>
|
|
20
|
+
<Text>Card</Text>
|
|
21
|
+
</Card>
|
|
22
|
+
<Card as="button" data-selected="" padding={3} tone={tone}>
|
|
23
|
+
<Text>Card</Text>
|
|
24
|
+
</Card>
|
|
25
|
+
<Card as="button" data-disabled="" padding={3} tone={tone}>
|
|
26
|
+
<Text>Card</Text>
|
|
27
|
+
</Card>
|
|
28
|
+
</Stack>
|
|
29
|
+
)
|
|
30
|
+
}
|
|
@@ -10,30 +10,40 @@ import {
|
|
|
10
10
|
} from '$workshop'
|
|
11
11
|
|
|
12
12
|
export default function PropsStory(): React.JSX.Element {
|
|
13
|
+
// @ts-expect-error - TODO: fix this
|
|
13
14
|
const as = useSelect('As', WORKSHOP_CARD_AS_OPTIONS, 'div')
|
|
14
15
|
const border = useBoolean('Border', false)
|
|
15
16
|
const checkered = useBoolean('Checkered', false)
|
|
16
17
|
const muted = useBoolean('Muted', false)
|
|
18
|
+
// @ts-expect-error - TODO: fix this
|
|
17
19
|
const padding = useSelect('Padding', WORKSHOP_SPACE_OPTIONS, 3)
|
|
18
20
|
const pressed = useBoolean('Pressed', false)
|
|
21
|
+
// @ts-expect-error - TODO: fix this
|
|
19
22
|
const radius = useSelect('Radius', WORKSHOP_RADIUS_OPTIONS, 0)
|
|
20
23
|
const selected = useBoolean('Selected', false)
|
|
24
|
+
// @ts-expect-error - TODO: fix this
|
|
21
25
|
const shadow = useSelect('Shadow', WORKSHOP_SHADOW_OPTIONS, 0)
|
|
26
|
+
// @ts-expect-error - TODO: fix this
|
|
22
27
|
const tone = useSelect('Tone', WORKSHOP_CARD_TONE_OPTIONS, 'default')
|
|
23
28
|
|
|
24
29
|
return (
|
|
25
30
|
<Flex align="center" height="fill" justify="center" padding={4} sizing="border">
|
|
26
31
|
<Card
|
|
27
32
|
__unstable_checkered={checkered}
|
|
33
|
+
// @ts-expect-error - TODO: fix this
|
|
28
34
|
as={as}
|
|
29
35
|
border={border}
|
|
30
36
|
muted={muted}
|
|
31
37
|
onClick={useAction('onClick')}
|
|
38
|
+
// @ts-expect-error - TODO: fix this
|
|
32
39
|
padding={padding}
|
|
33
40
|
pressed={pressed}
|
|
41
|
+
// @ts-expect-error - TODO: fix this
|
|
34
42
|
radius={radius}
|
|
35
43
|
selected={selected}
|
|
44
|
+
// @ts-expect-error - TODO: fix this
|
|
36
45
|
shadow={shadow}
|
|
46
|
+
// @ts-expect-error - TODO: fix this
|
|
37
47
|
tone={tone}
|
|
38
48
|
>
|
|
39
49
|
<Stack gap={3}>
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import {Card, Flex, Text} from '@sanity/ui'
|
|
2
|
-
import {styled} from 'styled-components'
|
|
3
|
-
|
|
4
|
-
const StyledCard = styled(Card).attrs({forwardedAs: 'ol'})``
|
|
5
2
|
|
|
6
3
|
export default function StyledCardStory(): React.JSX.Element {
|
|
7
4
|
return (
|
|
8
5
|
<Flex align="center" height="fill" justify="center">
|
|
9
|
-
<
|
|
6
|
+
<Card as="ol">
|
|
10
7
|
<Text as="li">Styled</Text>
|
|
11
|
-
</
|
|
8
|
+
</Card>
|
|
12
9
|
</Flex>
|
|
13
10
|
)
|
|
14
11
|
}
|
|
@@ -5,15 +5,16 @@ const scope: WorkshopScope = {
|
|
|
5
5
|
name: 'primitives/card',
|
|
6
6
|
title: 'Card',
|
|
7
7
|
stories: [
|
|
8
|
-
{name: 'props', title: 'Props', component: lazy(() => import('./
|
|
9
|
-
{name: 'styled', title: 'Styled', component: lazy(() => import('./
|
|
10
|
-
{name: 'interactive', title: 'Interactive', component: lazy(() => import('./
|
|
11
|
-
{name: 'tones', title: 'Tones', component: lazy(() => import('./
|
|
12
|
-
{name: 'as-button', title: 'As button', component: lazy(() => import('./
|
|
13
|
-
{name: 'list-nav', title: 'List navigation', component: lazy(() => import('./
|
|
14
|
-
{name: 'checkered', title: 'Checkered', component: lazy(() => import('./
|
|
15
|
-
{name: 'as-component', title: 'As component', component: lazy(() => import('./
|
|
16
|
-
{name: 'selected', title: 'Selected', component: lazy(() => import('./
|
|
8
|
+
{name: 'props', title: 'Props', component: lazy(() => import('./Props'))},
|
|
9
|
+
{name: 'styled', title: 'Styled', component: lazy(() => import('./Styled'))},
|
|
10
|
+
{name: 'interactive', title: 'Interactive', component: lazy(() => import('./Interactive'))},
|
|
11
|
+
{name: 'tones', title: 'Tones', component: lazy(() => import('./Tones'))},
|
|
12
|
+
{name: 'as-button', title: 'As button', component: lazy(() => import('./AsButton'))},
|
|
13
|
+
{name: 'list-nav', title: 'List navigation', component: lazy(() => import('./ListNavigation'))},
|
|
14
|
+
{name: 'checkered', title: 'Checkered', component: lazy(() => import('./Checkered'))},
|
|
15
|
+
{name: 'as-component', title: 'As component', component: lazy(() => import('./AsComponent'))},
|
|
16
|
+
{name: 'selected', title: 'Selected', component: lazy(() => import('./Selected'))},
|
|
17
|
+
{name: 'data-props', title: 'Data props', component: lazy(() => import('./DataProps'))},
|
|
17
18
|
],
|
|
18
19
|
}
|
|
19
20
|
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {use} from 'react'
|
|
2
2
|
|
|
3
|
-
import {CardContext} from './
|
|
3
|
+
import {CardContext} from './CardContext'
|
|
4
4
|
import type {CardContextValue} from './types'
|
|
5
5
|
|
|
6
6
|
/** @public */
|
|
7
7
|
export function useCard(): CardContextValue {
|
|
8
|
-
const card =
|
|
8
|
+
const card = use(CardContext)
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
throw new Error('useCard(): missing context value')
|
|
12
|
-
}
|
|
10
|
+
assertCardContext(card)
|
|
13
11
|
|
|
14
12
|
return card
|
|
15
13
|
}
|
|
14
|
+
|
|
15
|
+
/** @internal */
|
|
16
|
+
export function assertCardContext(card: CardContextValue | null): asserts card is CardContextValue {
|
|
17
|
+
if (!card) {
|
|
18
|
+
throw new Error('useCard(): missing context value', {cause: card})
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -5,10 +5,10 @@ const scope: WorkshopScope = {
|
|
|
5
5
|
name: 'primitives/checkbox',
|
|
6
6
|
title: 'Checkbox',
|
|
7
7
|
stories: [
|
|
8
|
-
{name: 'props', title: 'Props', component: lazy(() => import('./
|
|
9
|
-
{name: 'example', title: 'Example', component: lazy(() => import('./
|
|
10
|
-
{name: 'read-only', title: 'Read-only', component: lazy(() => import('./
|
|
11
|
-
{name: 'multiple-tones', title: 'Multiple tones', component: lazy(() => import('./
|
|
8
|
+
{name: 'props', title: 'Props', component: lazy(() => import('./Props'))},
|
|
9
|
+
{name: 'example', title: 'Example', component: lazy(() => import('./Example'))},
|
|
10
|
+
{name: 'read-only', title: 'Read-only', component: lazy(() => import('./ReadOnly'))},
|
|
11
|
+
{name: 'multiple-tones', title: 'Multiple tones', component: lazy(() => import('./Tones'))},
|
|
12
12
|
],
|
|
13
13
|
}
|
|
14
14
|
|
|
@@ -4,7 +4,7 @@ import {lazy, Suspense} from 'react'
|
|
|
4
4
|
|
|
5
5
|
import type {ComponentType, Props} from '../../types'
|
|
6
6
|
|
|
7
|
-
const LazyRefractor = lazy(() => import('./
|
|
7
|
+
const LazyRefractor = lazy(() => import('./Refractor'))
|
|
8
8
|
|
|
9
9
|
/** @public */
|
|
10
10
|
export const DEFAULT_CODE_ELEMENT = 'pre'
|
|
@@ -31,6 +31,14 @@ export function Code<E extends CodeElementType = typeof DEFAULT_CODE_ELEMENT>(
|
|
|
31
31
|
children,
|
|
32
32
|
className,
|
|
33
33
|
language: languageProp,
|
|
34
|
+
margin,
|
|
35
|
+
marginX,
|
|
36
|
+
marginY,
|
|
37
|
+
marginTop,
|
|
38
|
+
marginRight,
|
|
39
|
+
marginBottom,
|
|
40
|
+
marginLeft,
|
|
41
|
+
maxWidth,
|
|
34
42
|
size = 2,
|
|
35
43
|
weight = 'regular',
|
|
36
44
|
...rest
|
|
@@ -39,7 +47,23 @@ export function Code<E extends CodeElementType = typeof DEFAULT_CODE_ELEMENT>(
|
|
|
39
47
|
const language = typeof languageProp === 'string' ? languageProp : undefined
|
|
40
48
|
|
|
41
49
|
return (
|
|
42
|
-
<Element
|
|
50
|
+
<Element
|
|
51
|
+
data-ui="Code"
|
|
52
|
+
{...rest}
|
|
53
|
+
className={code({
|
|
54
|
+
className,
|
|
55
|
+
margin,
|
|
56
|
+
marginX,
|
|
57
|
+
marginY,
|
|
58
|
+
marginTop,
|
|
59
|
+
marginRight,
|
|
60
|
+
marginBottom,
|
|
61
|
+
marginLeft,
|
|
62
|
+
maxWidth,
|
|
63
|
+
size,
|
|
64
|
+
weight,
|
|
65
|
+
})}
|
|
66
|
+
>
|
|
43
67
|
<Suspense fallback={<code>{children}</code>}>
|
|
44
68
|
<LazyRefractor language={language} value={children} />
|
|
45
69
|
</Suspense>
|
|
@@ -6,11 +6,16 @@ import {WORKSHOP_CODE_LANGUAGE_OPTIONS, WORKSHOP_TEXT_FONT_SIZE_OPTIONS} from '$
|
|
|
6
6
|
export default function PropsStory(): React.JSX.Element {
|
|
7
7
|
const code = useText('Code', `console.log('Hello, world')`)
|
|
8
8
|
const language = useSelect('Language', WORKSHOP_CODE_LANGUAGE_OPTIONS, 'typescript')
|
|
9
|
+
// @ts-expect-error - TODO: fix this
|
|
9
10
|
const size = useSelect('Size', WORKSHOP_TEXT_FONT_SIZE_OPTIONS, 1)
|
|
10
11
|
|
|
11
12
|
return (
|
|
12
13
|
<Box padding={[4, 5, 6]}>
|
|
13
|
-
<Code
|
|
14
|
+
<Code
|
|
15
|
+
language={language}
|
|
16
|
+
// @ts-expect-error - TODO: fix this
|
|
17
|
+
size={size}
|
|
18
|
+
>
|
|
14
19
|
{code}
|
|
15
20
|
</Code>
|
|
16
21
|
</Box>
|
|
@@ -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: 'optical-alignment',
|
|
15
15
|
title: 'Optical alignment',
|
|
16
|
-
component: lazy(() => import('./
|
|
16
|
+
component: lazy(() => import('./OpticalAlignment')),
|
|
17
17
|
},
|
|
18
18
|
],
|
|
19
19
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {container, type ContainerStyleProps} from '@sanity/ui/css'
|
|
2
2
|
|
|
3
3
|
import type {Props} from '../../types'
|
|
4
|
-
import {Box, type BoxElementType, type BoxOwnProps} from '../box/
|
|
4
|
+
import {Box, type BoxElementType, type BoxOwnProps} from '../box/Box'
|
|
5
5
|
|
|
6
6
|
/** @public */
|
|
7
7
|
export const DEFAULT_CONTAINER_ELEMENT = 'div'
|
|
@@ -4,11 +4,16 @@ import {useAction, useSelect} from '@sanity/ui-workshop'
|
|
|
4
4
|
import {WORKSHOP_CONTAINER_WIDTH_OPTIONS} from '$workshop'
|
|
5
5
|
|
|
6
6
|
export default function PlainStory(): React.JSX.Element {
|
|
7
|
+
// @ts-expect-error - TODO: fix this
|
|
7
8
|
const width = useSelect('Width', WORKSHOP_CONTAINER_WIDTH_OPTIONS, 0)
|
|
8
9
|
|
|
9
10
|
return (
|
|
10
11
|
<Flex align="center" height="fill" justify="center" padding={[4, 5, 6]} sizing="border">
|
|
11
|
-
<Container
|
|
12
|
+
<Container
|
|
13
|
+
onClick={useAction('onClick')}
|
|
14
|
+
// @ts-expect-error - TODO: fix this
|
|
15
|
+
width={width}
|
|
16
|
+
>
|
|
12
17
|
<Card padding={4} shadow={1}>
|
|
13
18
|
<Text size={1}>
|
|
14
19
|
Container with <code>max-width={width}</code>
|
|
@@ -4,7 +4,7 @@ import {lazy} from 'react'
|
|
|
4
4
|
const scope: WorkshopScope = {
|
|
5
5
|
name: 'primitives/container',
|
|
6
6
|
title: 'Container',
|
|
7
|
-
stories: [{name: 'plain', title: 'Plain', component: lazy(() => import('./
|
|
7
|
+
stories: [{name: 'plain', title: 'Plain', component: lazy(() => import('./Example'))}],
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
export default scope
|
|
@@ -7,7 +7,7 @@ import type {
|
|
|
7
7
|
} from '@sanity/ui/css'
|
|
8
8
|
|
|
9
9
|
import type {Props} from '../../types'
|
|
10
|
-
import {Box, type BoxElementType, type BoxOwnProps} from '../box/
|
|
10
|
+
import {Box, type BoxElementType, type BoxOwnProps} from '../box/Box'
|
|
11
11
|
|
|
12
12
|
/** @public */
|
|
13
13
|
export const DEFAULT_FLEX_ELEMENT = 'div'
|
|
@@ -1,34 +1,32 @@
|
|
|
1
1
|
import {Card, Code, Flex} from '@sanity/ui'
|
|
2
2
|
import {useSelect} from '@sanity/ui-workshop'
|
|
3
|
-
import {styled} from 'styled-components'
|
|
4
3
|
|
|
5
4
|
import {WORKSHOP_FLEX_DIRECTION_OPTIONS} from '$workshop'
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
outline: 1px solid red;
|
|
9
|
-
&:not([hidden]) {
|
|
10
|
-
display: flex;
|
|
11
|
-
}
|
|
12
|
-
align-items: center;
|
|
13
|
-
justify-content: center;
|
|
14
|
-
`
|
|
6
|
+
import {debugCard} from './styles.css'
|
|
15
7
|
|
|
16
8
|
export default function ExampleStory(): React.JSX.Element {
|
|
9
|
+
// @ts-expect-error - TODO: fix this
|
|
17
10
|
const direction = useSelect('Direction', WORKSHOP_FLEX_DIRECTION_OPTIONS, 'row')
|
|
18
11
|
|
|
19
12
|
return (
|
|
20
|
-
<Flex
|
|
21
|
-
|
|
13
|
+
<Flex
|
|
14
|
+
// @ts-expect-error - TODO: fix this
|
|
15
|
+
direction={direction}
|
|
16
|
+
height="fill"
|
|
17
|
+
style={{width: '100%'}}
|
|
18
|
+
>
|
|
19
|
+
<Card className={debugCard} flex={1}>
|
|
22
20
|
<Code size={1}>1</Code>
|
|
23
|
-
</
|
|
21
|
+
</Card>
|
|
24
22
|
|
|
25
|
-
<
|
|
23
|
+
<Card className={debugCard} flex={[1, 2, 3]}>
|
|
26
24
|
<Code size={1}>[1,2,3]</Code>
|
|
27
|
-
</
|
|
25
|
+
</Card>
|
|
28
26
|
|
|
29
|
-
<
|
|
27
|
+
<Card className={debugCard} flex={['none', 'none', 1]}>
|
|
30
28
|
<Code size={1}>['none', 'none', 1]</Code>
|
|
31
|
-
</
|
|
29
|
+
</Card>
|
|
32
30
|
</Flex>
|
|
33
31
|
)
|
|
34
32
|
}
|
|
@@ -5,8 +5,8 @@ const scope: WorkshopScope = {
|
|
|
5
5
|
name: 'primitives/flex',
|
|
6
6
|
title: 'Flex',
|
|
7
7
|
stories: [
|
|
8
|
-
{name: 'plain', title: 'Plain', component: lazy(() => import('./
|
|
9
|
-
{name: 'gap', title: 'Gap', component: lazy(() => import('./
|
|
8
|
+
{name: 'plain', title: 'Plain', component: lazy(() => import('./Example'))},
|
|
9
|
+
{name: 'gap', title: 'Gap', component: lazy(() => import('./Gap'))},
|
|
10
10
|
],
|
|
11
11
|
}
|
|
12
12
|
|