@sanity/ui 4.0.0-beta.7 → 4.0.0-next.0
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/LICENSE +1 -1
- package/README.md +21 -7
- package/dist/_chunks/getScopedTheme.cjs +4043 -0
- package/dist/_chunks/getScopedTheme.cjs.map +1 -0
- package/dist/_chunks/getScopedTheme.js +3803 -0
- package/dist/_chunks/getScopedTheme.js.map +1 -0
- package/dist/_chunks/portalProvider.cjs +3750 -0
- package/dist/_chunks/portalProvider.cjs.map +1 -0
- package/dist/_chunks/portalProvider.d.cts +1067 -0
- package/dist/_chunks/portalProvider.d.cts.map +1 -0
- package/dist/_chunks/portalProvider.d.ts +1067 -0
- package/dist/_chunks/portalProvider.d.ts.map +1 -0
- package/dist/_chunks/portalProvider.js +3300 -0
- package/dist/_chunks/portalProvider.js.map +1 -0
- package/dist/_chunks/refractor.cjs +18 -0
- package/dist/_chunks/refractor.cjs.map +1 -0
- package/dist/_chunks/refractor.js +20 -0
- package/dist/_chunks/refractor.js.map +1 -0
- package/dist/_chunks/rgba.d.cts +929 -0
- package/dist/_chunks/rgba.d.cts.map +1 -0
- package/dist/_chunks/rgba.d.ts +929 -0
- package/dist/_chunks/rgba.d.ts.map +1 -0
- package/dist/_visual-editing.cjs +4 -0
- package/dist/_visual-editing.d.cts +2 -0
- package/dist/_visual-editing.d.ts +2 -0
- package/dist/_visual-editing.js +3 -0
- package/dist/index.cjs +3007 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1275 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts +708 -1188
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2964 -4783
- package/dist/index.js.map +1 -1
- package/dist/theme.cjs +54 -0
- package/dist/theme.cjs.map +1 -0
- package/dist/theme.d.cts +278 -0
- package/dist/theme.d.cts.map +1 -0
- package/dist/theme.d.ts +278 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +53 -0
- package/dist/theme.js.map +1 -0
- package/package.json +65 -88
- package/dist/_chunks-es/Syntax.js +0 -23
- package/dist/_chunks-es/Syntax.js.map +0 -1
- package/dist/index.css +0 -1
- package/exports/index.css +0 -1
- package/exports/index.ts +0 -125
- package/src/components/autocomplete/Autocomplete.tsx +0 -665
- package/src/components/autocomplete/AutocompleteOption.tsx +0 -42
- package/src/components/autocomplete/__workshop__/Async.tsx +0 -162
- package/src/components/autocomplete/__workshop__/ConstrainedHeight.tsx +0 -121
- package/src/components/autocomplete/__workshop__/Custom.tsx +0 -91
- package/src/components/autocomplete/__workshop__/Example.tsx +0 -70
- package/src/components/autocomplete/__workshop__/FocusAndBlur.tsx +0 -39
- package/src/components/autocomplete/__workshop__/Fullscreen.tsx +0 -307
- package/src/components/autocomplete/__workshop__/index.ts +0 -41
- package/src/components/autocomplete/__workshop__/mock/apiStore.ts +0 -49
- package/src/components/autocomplete/__workshop__/mock/countries.ts +0 -245
- package/src/components/autocomplete/__workshop__/types.ts +0 -4
- package/src/components/autocomplete/autocompleteReducer.ts +0 -47
- package/src/components/autocomplete/constants.ts +0 -28
- package/src/components/autocomplete/types.ts +0 -103
- package/src/components/breadcrumbs/Breadcrumbs.tsx +0 -163
- package/src/components/breadcrumbs/__workshop__/Example.tsx +0 -48
- package/src/components/breadcrumbs/__workshop__/index.ts +0 -16
- package/src/components/dialog/Dialog.tsx +0 -230
- package/src/components/dialog/DialogCard.tsx +0 -233
- package/src/components/dialog/DialogContext.ts +0 -21
- package/src/components/dialog/DialogProvider.tsx +0 -34
- package/src/components/dialog/__workshop__/Activate.tsx +0 -141
- package/src/components/dialog/__workshop__/AutoFocus.tsx +0 -29
- package/src/components/dialog/__workshop__/Layering.tsx +0 -41
- package/src/components/dialog/__workshop__/Nested.tsx +0 -71
- package/src/components/dialog/__workshop__/OnScroll.tsx +0 -51
- package/src/components/dialog/__workshop__/Panes.tsx +0 -75
- package/src/components/dialog/__workshop__/Position.tsx +0 -30
- package/src/components/dialog/__workshop__/Props.tsx +0 -93
- package/src/components/dialog/__workshop__/Provider.tsx +0 -11
- package/src/components/dialog/__workshop__/Wrapped.tsx +0 -76
- package/src/components/dialog/__workshop__/index.ts +0 -21
- package/src/components/dialog/isTargetWithinScope.ts +0 -14
- package/src/components/dialog/types.ts +0 -2
- package/src/components/dialog/useDialog.ts +0 -11
- package/src/components/hotkeys/Hotkeys.tsx +0 -70
- package/src/components/hotkeys/__workshop__/Plain.tsx +0 -9
- package/src/components/hotkeys/__workshop__/index.ts +0 -16
- package/src/components/menu/Menu.test.tsx +0 -125
- package/src/components/menu/Menu.tsx +0 -174
- package/src/components/menu/MenuButton.tsx +0 -231
- package/src/components/menu/MenuContext.ts +0 -19
- package/src/components/menu/MenuDivider.tsx +0 -32
- package/src/components/menu/MenuGroup.tsx +0 -240
- package/src/components/menu/MenuItem.tsx +0 -153
- package/src/components/menu/__workshop__/AsComponent.tsx +0 -45
- package/src/components/menu/__workshop__/AvatarMenu.tsx +0 -36
- package/src/components/menu/__workshop__/ClosableMenuButton.tsx +0 -47
- package/src/components/menu/__workshop__/ConstrainedInBoundary.tsx +0 -133
- package/src/components/menu/__workshop__/CustomMenuItem.tsx +0 -47
- package/src/components/menu/__workshop__/CustomSelectedState.tsx +0 -35
- package/src/components/menu/__workshop__/DataProps.tsx +0 -27
- package/src/components/menu/__workshop__/DisableFocusOnClose.tsx +0 -40
- package/src/components/menu/__workshop__/Groups.tsx +0 -164
- package/src/components/menu/__workshop__/MenuButton.tsx +0 -79
- package/src/components/menu/__workshop__/MenuGroupRight.tsx +0 -73
- package/src/components/menu/__workshop__/NestedMenu.tsx +0 -22
- package/src/components/menu/__workshop__/OnCloseMenuButton.tsx +0 -50
- package/src/components/menu/__workshop__/SelectedItem.tsx +0 -69
- package/src/components/menu/__workshop__/ShouldFocus.tsx +0 -42
- package/src/components/menu/__workshop__/Tones.tsx +0 -19
- package/src/components/menu/__workshop__/index.ts +0 -91
- package/src/components/menu/helpers.ts +0 -82
- package/src/components/menu/useMenu.ts +0 -21
- package/src/components/menu/useMenuController.ts +0 -245
- package/src/components/tab/Tab.tsx +0 -135
- package/src/components/tab/TabList.tsx +0 -157
- package/src/components/tab/TabListContext.ts +0 -10
- package/src/components/tab/TabPanel.tsx +0 -94
- package/src/components/tab/__workshop__/Example.tsx +0 -135
- package/src/components/tab/__workshop__/index.ts +0 -16
- package/src/components/tab/types.ts +0 -11
- package/src/components/toast/Toast.test.tsx +0 -103
- package/src/components/toast/Toast.tsx +0 -191
- package/src/components/toast/ToastContext.ts +0 -7
- package/src/components/toast/ToastLayer.tsx +0 -54
- package/src/components/toast/ToastProvider.tsx +0 -127
- package/src/components/toast/__workshop__/Hook.tsx +0 -71
- package/src/components/toast/__workshop__/Toast.tsx +0 -26
- package/src/components/toast/__workshop__/index.ts +0 -21
- package/src/components/toast/toastState.ts +0 -6
- package/src/components/toast/types.ts +0 -24
- package/src/components/toast/useToast.ts +0 -23
- package/src/components/tree/Tree.tsx +0 -248
- package/src/components/tree/TreeContext.ts +0 -10
- package/src/components/tree/TreeGroup.tsx +0 -46
- package/src/components/tree/TreeItem.tsx +0 -236
- package/src/components/tree/__workshop__/Basic.tsx +0 -108
- package/src/components/tree/__workshop__/TabFromElement.tsx +0 -84
- package/src/components/tree/__workshop__/basic.perf.ts +0 -19
- package/src/components/tree/__workshop__/index.ts +0 -23
- package/src/components/tree/helpers.ts +0 -105
- package/src/components/tree/types.ts +0 -24
- package/src/components/tree/useTree.ts +0 -17
- package/src/components/virtualList/VirtualList.tsx +0 -254
- package/src/components/virtualList/__workshop__/ChangingProps.tsx +0 -41
- package/src/components/virtualList/__workshop__/ElementScroll.tsx +0 -43
- package/src/components/virtualList/__workshop__/InfiniteList.tsx +0 -40
- package/src/components/virtualList/__workshop__/WindowScrolll.tsx +0 -23
- package/src/components/virtualList/__workshop__/index.ts +0 -31
- package/src/core/_keys.ts +0 -26
- package/src/core/constants.ts +0 -67
- package/src/core/getElementRef.ts +0 -29
- package/src/core/helpers/animation.ts +0 -26
- package/src/core/helpers/element.ts +0 -55
- package/src/core/helpers/focus.ts +0 -92
- package/src/core/helpers/props.ts +0 -51
- package/src/core/helpers/scroll.ts +0 -15
- package/src/core/lib/createGlobalScopedContext.ts +0 -39
- package/src/core/lib/globalScope.ts +0 -19
- package/src/core/lib/isArray.ts +0 -3
- package/src/core/lib/isRecord.ts +0 -3
- package/src/core/types.ts +0 -57
- package/src/hooks/useClickOutsideEvent.test.tsx +0 -114
- package/src/hooks/useClickOutsideEvent.ts +0 -66
- package/src/hooks/useCustomValidity.ts +0 -13
- package/src/hooks/useElementSize.ts +0 -19
- package/src/hooks/useGlobalKeyDown.ts +0 -23
- package/src/hooks/useMatchMedia.ts +0 -28
- package/src/hooks/useMediaIndex/__workshop__/Test.tsx +0 -14
- package/src/hooks/useMediaIndex/__workshop__/index.ts +0 -16
- package/src/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -21
- package/src/hooks/useMediaIndex/useMediaIndex.ts +0 -111
- package/src/hooks/useMounted.ts +0 -15
- package/src/hooks/usePrefersDark.hydration.test.tsx +0 -56
- package/src/hooks/usePrefersDark.test.tsx +0 -20
- package/src/hooks/usePrefersDark.ts +0 -16
- package/src/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
- package/src/hooks/usePrefersReducedMotion.test.tsx +0 -20
- package/src/hooks/usePrefersReducedMotion.ts +0 -16
- package/src/hooks/useResponsiveProp.ts +0 -14
- package/src/hooks/useUnique.ts +0 -54
- package/src/middleware/origin.ts +0 -47
- package/src/observers/elementSize.ts +0 -114
- package/src/primitives/_syntax/LazySyntax.tsx +0 -4
- package/src/primitives/_syntax/Syntax.tsx +0 -26
- package/src/primitives/avatar/Avatar.tsx +0 -145
- package/src/primitives/avatar/AvatarCounter.tsx +0 -69
- package/src/primitives/avatar/AvatarStack.tsx +0 -77
- package/src/primitives/avatar/__workshop__/AsButton.tsx +0 -12
- package/src/primitives/avatar/__workshop__/PropsStory.tsx +0 -24
- package/src/primitives/avatar/__workshop__/Stack.tsx +0 -27
- package/src/primitives/avatar/__workshop__/WithinButton.tsx +0 -51
- package/src/primitives/avatar/__workshop__/WithinMenuItem.tsx +0 -52
- package/src/primitives/avatar/__workshop__/index.ts +0 -36
- package/src/primitives/avatar/types.ts +0 -2
- package/src/primitives/badge/Badge.test.tsx +0 -16
- package/src/primitives/badge/Badge.tsx +0 -53
- package/src/primitives/badge/__workshop__/Props.tsx +0 -27
- package/src/primitives/badge/__workshop__/Tones.tsx +0 -15
- package/src/primitives/badge/__workshop__/index.ts +0 -26
- package/src/primitives/badge/__workshop__/within-button.tsx +0 -36
- package/src/primitives/box/Box.tsx +0 -73
- package/src/primitives/box/__workshop__/Props.tsx +0 -26
- package/src/primitives/box/__workshop__/Responsive.tsx +0 -19
- package/src/primitives/box/__workshop__/index.ts +0 -21
- package/src/primitives/button/Button.test.tsx +0 -30
- package/src/primitives/button/Button.tsx +0 -148
- package/src/primitives/button/__workshop__/Custom.tsx +0 -39
- package/src/primitives/button/__workshop__/CustomIcons.tsx +0 -37
- package/src/primitives/button/__workshop__/DataProps.tsx +0 -18
- package/src/primitives/button/__workshop__/Disabled.tsx +0 -43
- package/src/primitives/button/__workshop__/MixedChildren.tsx +0 -12
- package/src/primitives/button/__workshop__/Props.tsx +0 -60
- package/src/primitives/button/__workshop__/Stacked.tsx +0 -60
- package/src/primitives/button/__workshop__/Styled1.css.ts +0 -7
- package/src/primitives/button/__workshop__/Styled1.tsx +0 -11
- package/src/primitives/button/__workshop__/TextOverflow.tsx +0 -17
- package/src/primitives/button/__workshop__/UploadButton.tsx +0 -28
- package/src/primitives/button/__workshop__/index.ts +0 -61
- package/src/primitives/button/types.ts +0 -2
- package/src/primitives/card/Card.tsx +0 -124
- package/src/primitives/card/CardContext.ts +0 -10
- package/src/primitives/card/CardInternalContext.ts +0 -10
- package/src/primitives/card/CardInternalProvider.tsx +0 -15
- package/src/primitives/card/CardProvider.tsx +0 -16
- package/src/primitives/card/__workshop__/AsButton.tsx +0 -103
- package/src/primitives/card/__workshop__/AsComponent.tsx +0 -25
- package/src/primitives/card/__workshop__/Checkered.tsx +0 -25
- package/src/primitives/card/__workshop__/DataProps.tsx +0 -25
- package/src/primitives/card/__workshop__/Interactive.tsx +0 -29
- package/src/primitives/card/__workshop__/ListNavigation.tsx +0 -78
- package/src/primitives/card/__workshop__/Props.tsx +0 -59
- package/src/primitives/card/__workshop__/Selected.tsx +0 -62
- package/src/primitives/card/__workshop__/Styled.tsx +0 -11
- package/src/primitives/card/__workshop__/Tones.tsx +0 -26
- package/src/primitives/card/__workshop__/index.ts +0 -21
- package/src/primitives/card/types.ts +0 -21
- package/src/primitives/card/useCard.ts +0 -20
- package/src/primitives/checkbox/Checkbox.tsx +0 -80
- package/src/primitives/checkbox/__workshop__/Example.tsx +0 -25
- package/src/primitives/checkbox/__workshop__/Props.tsx +0 -35
- package/src/primitives/checkbox/__workshop__/ReadOnly.tsx +0 -16
- package/src/primitives/checkbox/__workshop__/Tones.tsx +0 -26
- package/src/primitives/checkbox/__workshop__/index.ts +0 -15
- package/src/primitives/code/Code.tsx +0 -47
- package/src/primitives/code/__workshop__/OpticalAlignment.tsx +0 -25
- package/src/primitives/code/__workshop__/Props.tsx +0 -20
- package/src/primitives/code/__workshop__/index.ts +0 -21
- package/src/primitives/container/Container.tsx +0 -43
- package/src/primitives/container/__workshop__/Example.tsx +0 -16
- package/src/primitives/container/__workshop__/index.ts +0 -16
- package/src/primitives/container/types.ts +0 -6
- package/src/primitives/flex/Flex.tsx +0 -38
- package/src/primitives/flex/__workshop__/Example.tsx +0 -26
- package/src/primitives/flex/__workshop__/Gap.tsx +0 -25
- package/src/primitives/flex/__workshop__/index.ts +0 -13
- package/src/primitives/flex/__workshop__/styles.css.ts +0 -12
- package/src/primitives/grid/Grid.tsx +0 -38
- package/src/primitives/grid/__workshop__/Responsive.tsx +0 -54
- package/src/primitives/grid/__workshop__/index.ts +0 -12
- package/src/primitives/heading/Heading.tsx +0 -68
- package/src/primitives/heading/__workshop__/OpticalAlignment.tsx +0 -27
- package/src/primitives/heading/__workshop__/Plain.tsx +0 -25
- package/src/primitives/heading/__workshop__/index.ts +0 -21
- package/src/primitives/inline/Inline.tsx +0 -37
- package/src/primitives/inline/__workshop__/Plain.tsx +0 -22
- package/src/primitives/inline/__workshop__/index.ts +0 -10
- package/src/primitives/kbd/Kbd.tsx +0 -36
- package/src/primitives/kbd/__workshop__/Plain.tsx +0 -9
- package/src/primitives/kbd/__workshop__/index.ts +0 -10
- package/src/primitives/label/Label.tsx +0 -67
- package/src/primitives/label/__workshop__/OpticalAlignment.tsx +0 -27
- package/src/primitives/label/__workshop__/Plain.tsx +0 -27
- package/src/primitives/label/__workshop__/index.ts +0 -21
- package/src/primitives/layer/Layer.test.tsx +0 -110
- package/src/primitives/layer/Layer.tsx +0 -35
- package/src/primitives/layer/LayerCard.tsx +0 -90
- package/src/primitives/layer/LayerContext.ts +0 -7
- package/src/primitives/layer/LayerProvider.tsx +0 -106
- package/src/primitives/layer/__workshop__/MultipleRoots.tsx +0 -49
- package/src/primitives/layer/__workshop__/Nested.tsx +0 -107
- package/src/primitives/layer/__workshop__/ResponsiveZOffset.tsx +0 -17
- package/src/primitives/layer/__workshop__/_debug.tsx +0 -17
- package/src/primitives/layer/__workshop__/index.ts +0 -26
- package/src/primitives/layer/getLayerContext.test.ts +0 -32
- package/src/primitives/layer/getLayerContext.ts +0 -21
- package/src/primitives/layer/types.ts +0 -9
- package/src/primitives/layer/useLayer.ts +0 -24
- package/src/primitives/popover/Popover.tsx +0 -291
- package/src/primitives/popover/PopoverLayer.tsx +0 -101
- package/src/primitives/popover/__workshop__/AlignedStory.tsx +0 -75
- package/src/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
- package/src/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
- package/src/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
- package/src/primitives/popover/__workshop__/PlainStory.tsx +0 -67
- package/src/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
- package/src/primitives/popover/__workshop__/SidePanelStory.tsx +0 -95
- package/src/primitives/popover/__workshop__/TestStory.tsx +0 -97
- package/src/primitives/popover/__workshop__/index.ts +0 -56
- package/src/primitives/popover/__workshop__/portal-inheritance.tsx +0 -15
- package/src/primitives/popover/constants.ts +0 -20
- package/src/primitives/popover/floating-ui/size.ts +0 -75
- package/src/primitives/popover/types.ts +0 -12
- package/src/primitives/popover/useMiddleware.ts +0 -126
- package/src/primitives/radio/Radio.tsx +0 -64
- package/src/primitives/radio/__workshop__/Example.tsx +0 -63
- package/src/primitives/radio/__workshop__/Plain.tsx +0 -28
- package/src/primitives/radio/__workshop__/index.ts +0 -13
- package/src/primitives/select/Select.tsx +0 -76
- package/src/primitives/select/__workshop__/Plain.tsx +0 -37
- package/src/primitives/select/__workshop__/ReadOnly.tsx +0 -23
- package/src/primitives/select/__workshop__/index.ts +0 -13
- package/src/primitives/selectable/Selectable.tsx +0 -48
- package/src/primitives/selectable/__workshop__/DataProps.tsx +0 -24
- package/src/primitives/selectable/__workshop__/as-link.tsx +0 -13
- package/src/primitives/selectable/__workshop__/index.ts +0 -19
- package/src/primitives/skeleton/CodeSkeleton.tsx +0 -49
- package/src/primitives/skeleton/HeadingSkeleton.tsx +0 -48
- package/src/primitives/skeleton/LabelSkeleton.tsx +0 -47
- package/src/primitives/skeleton/Skeleton.tsx +0 -70
- package/src/primitives/skeleton/TextSkeleton.tsx +0 -49
- package/src/primitives/skeleton/__workshop__/Delay.tsx +0 -69
- package/src/primitives/skeleton/__workshop__/Skeleton.tsx +0 -63
- package/src/primitives/skeleton/__workshop__/index.ts +0 -13
- package/src/primitives/spinner/Spinner.tsx +0 -45
- package/src/primitives/spinner/SpinnerAnimatedIcon.tsx +0 -14
- package/src/primitives/spinner/__workshop__/Props.tsx +0 -13
- package/src/primitives/spinner/__workshop__/index.ts +0 -16
- package/src/primitives/srOnly/SrOnly.tsx +0 -33
- package/src/primitives/stack/Stack.tsx +0 -38
- package/src/primitives/stack/__workshop__/Plain.tsx +0 -30
- package/src/primitives/stack/__workshop__/index.ts +0 -16
- package/src/primitives/switch/Switch.tsx +0 -76
- package/src/primitives/switch/__workshop__/Example.tsx +0 -25
- package/src/primitives/switch/__workshop__/Props.tsx +0 -23
- package/src/primitives/switch/__workshop__/index.ts +0 -13
- package/src/primitives/text/InlineCode.tsx +0 -25
- package/src/primitives/text/Text.tsx +0 -68
- package/src/primitives/text/__workshop__/Example.tsx +0 -26
- package/src/primitives/text/__workshop__/OpticalAlignment.tsx +0 -27
- package/src/primitives/text/__workshop__/index.ts +0 -26
- package/src/primitives/text/__workshop__/inline-code.tsx +0 -13
- package/src/primitives/textArea/TextArea.tsx +0 -97
- package/src/primitives/textArea/__workshop__/Plain.tsx +0 -46
- package/src/primitives/textArea/__workshop__/index.ts +0 -16
- package/src/primitives/textInput/TextInput.tsx +0 -279
- package/src/primitives/textInput/__workshop__/ClearButton.tsx +0 -32
- package/src/primitives/textInput/__workshop__/CustomValidity.tsx +0 -17
- package/src/primitives/textInput/__workshop__/Plain.tsx +0 -102
- package/src/primitives/textInput/__workshop__/ReadOnly.tsx +0 -14
- package/src/primitives/textInput/__workshop__/States.tsx +0 -53
- package/src/primitives/textInput/__workshop__/Tones.tsx +0 -40
- package/src/primitives/textInput/__workshop__/Typed.tsx +0 -23
- package/src/primitives/textInput/__workshop__/index.ts +0 -46
- package/src/primitives/tooltip/Tooltip.test.tsx +0 -496
- package/src/primitives/tooltip/Tooltip.tsx +0 -546
- package/src/primitives/tooltip/TooltipLayer.tsx +0 -72
- package/src/primitives/tooltip/__workshop__/CustomPortal.tsx +0 -102
- package/src/primitives/tooltip/__workshop__/OverflowingBoundary.tsx +0 -74
- package/src/primitives/tooltip/__workshop__/Props.tsx +0 -107
- package/src/primitives/tooltip/__workshop__/ResizableBoundary.tsx +0 -91
- package/src/primitives/tooltip/__workshop__/index.ts +0 -31
- package/src/primitives/tooltip/constants.ts +0 -24
- package/src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupContext.tsx +0 -13
- package/src/primitives/tooltip/tooltipDelayGroup/TooltipDelayGroupProvider.tsx +0 -96
- package/src/primitives/tooltip/tooltipDelayGroup/types.ts +0 -7
- package/src/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
- package/src/root/Root.tsx +0 -93
- package/src/root/RootProvider.tsx +0 -37
- package/src/root/__workshop__/Boundary.tsx +0 -43
- package/src/root/__workshop__/index.ts +0 -24
- package/src/root/__workshop__/primitives.tsx +0 -49
- package/src/root/__workshop__/tone-inheritance.tsx +0 -65
- package/src/utils/ErrorBoundary.tsx +0 -50
- package/src/utils/boundaryElement/BoundaryElementContext.ts +0 -7
- package/src/utils/boundaryElement/BoundaryElementProvider.tsx +0 -16
- package/src/utils/boundaryElement/__workshop__/Plain.tsx +0 -49
- package/src/utils/boundaryElement/__workshop__/index.ts +0 -16
- package/src/utils/boundaryElement/types.ts +0 -2
- package/src/utils/boundaryElement/useBoundaryElement.ts +0 -12
- package/src/utils/elementQuery/ElementQuery.tsx +0 -75
- package/src/utils/elementQuery/__workshop__/CustomMedia.tsx +0 -19
- package/src/utils/elementQuery/__workshop__/index.ts +0 -16
- package/src/utils/elementQuery/__workshop__/styles.css.ts +0 -31
- package/src/utils/elementQuery/helpers.ts +0 -27
- package/src/utils/portal/Portal.test.tsx +0 -105
- package/src/utils/portal/Portal.tsx +0 -42
- package/src/utils/portal/PortalContext.ts +0 -37
- package/src/utils/portal/PortalProvider.tsx +0 -38
- package/src/utils/portal/__workshop__/Named.tsx +0 -69
- package/src/utils/portal/__workshop__/index.ts +0 -16
- package/src/utils/portal/types.ts +0 -7
- package/src/utils/portal/usePortal.ts +0 -30
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import {SelectIcon} from '@sanity/icons'
|
|
2
|
-
import {_input_element, select, select_presentation, type SelectStyleProps} from '@sanity/ui-css'
|
|
3
|
-
import {useImperativeHandle, useRef} from 'react'
|
|
4
|
-
|
|
5
|
-
import type {ComponentType, Props} from '../../core/types'
|
|
6
|
-
import {useCustomValidity} from '../../hooks/useCustomValidity'
|
|
7
|
-
import {Text} from '../text/Text'
|
|
8
|
-
|
|
9
|
-
/** @public */
|
|
10
|
-
export const DEFAULT_SELECT_ELEMENT = 'select'
|
|
11
|
-
|
|
12
|
-
/** @public */
|
|
13
|
-
export type SelectOwnProps = SelectStyleProps & {
|
|
14
|
-
customValidity?: string
|
|
15
|
-
readOnly?: boolean
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/** @public */
|
|
19
|
-
export type SelectElementType = 'select' | ComponentType
|
|
20
|
-
|
|
21
|
-
/** @public */
|
|
22
|
-
export type SelectProps<E extends SelectElementType = SelectElementType> = Props<SelectOwnProps, E>
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* The `Select` component provides control of options.
|
|
26
|
-
*
|
|
27
|
-
* @public
|
|
28
|
-
*/
|
|
29
|
-
export function Select<E extends SelectElementType = typeof DEFAULT_SELECT_ELEMENT>(
|
|
30
|
-
props: SelectProps<E>,
|
|
31
|
-
): React.JSX.Element {
|
|
32
|
-
const {
|
|
33
|
-
as: Element = DEFAULT_SELECT_ELEMENT,
|
|
34
|
-
border = true,
|
|
35
|
-
children,
|
|
36
|
-
customValidity,
|
|
37
|
-
disabled,
|
|
38
|
-
flex,
|
|
39
|
-
fontSize = 2,
|
|
40
|
-
gap = 2,
|
|
41
|
-
padding = 3,
|
|
42
|
-
radius = 2,
|
|
43
|
-
readOnly,
|
|
44
|
-
ref: forwardedRef,
|
|
45
|
-
width = 'fill',
|
|
46
|
-
...rest
|
|
47
|
-
} = props as SelectProps<typeof DEFAULT_SELECT_ELEMENT>
|
|
48
|
-
|
|
49
|
-
const ref = useRef<HTMLSelectElement | null>(null)
|
|
50
|
-
|
|
51
|
-
useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(
|
|
52
|
-
forwardedRef,
|
|
53
|
-
() => ref.current,
|
|
54
|
-
)
|
|
55
|
-
|
|
56
|
-
useCustomValidity(ref, customValidity)
|
|
57
|
-
|
|
58
|
-
return (
|
|
59
|
-
<span
|
|
60
|
-
className={select({border, fontSize, flex, gap, padding, radius, width})}
|
|
61
|
-
data-icon-right=""
|
|
62
|
-
data-ui="Select"
|
|
63
|
-
>
|
|
64
|
-
<Element {...rest} ref={ref} className={_input_element()} disabled={disabled || readOnly}>
|
|
65
|
-
{children}
|
|
66
|
-
</Element>
|
|
67
|
-
<span className={select_presentation()}>
|
|
68
|
-
<span>
|
|
69
|
-
<Text size={fontSize}>
|
|
70
|
-
<SelectIcon />
|
|
71
|
-
</Text>
|
|
72
|
-
</span>
|
|
73
|
-
</span>
|
|
74
|
-
</span>
|
|
75
|
-
)
|
|
76
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import {FONT_TEXT_SIZE, RADIUS, Select, Stack, Text} from '@sanity/ui'
|
|
2
|
-
import {useBoolean, useSelect} from '@sanity/ui-workshop'
|
|
3
|
-
|
|
4
|
-
import {CardWrapper} from '$workshop'
|
|
5
|
-
|
|
6
|
-
export default function PlainStory(): React.JSX.Element {
|
|
7
|
-
const border = useBoolean('Border', true)
|
|
8
|
-
const disabled = useBoolean('Disabled', false)
|
|
9
|
-
const fontSize = useSelect('Font size', FONT_TEXT_SIZE)
|
|
10
|
-
const radius = useSelect('Radius', RADIUS)
|
|
11
|
-
const readOnly = useBoolean('Read only', false)
|
|
12
|
-
|
|
13
|
-
return (
|
|
14
|
-
<CardWrapper width={0}>
|
|
15
|
-
<Stack gap={3}>
|
|
16
|
-
<Text as="label" htmlFor="select" size={1} weight="medium">
|
|
17
|
-
Select
|
|
18
|
-
</Text>
|
|
19
|
-
|
|
20
|
-
<Select
|
|
21
|
-
border={border}
|
|
22
|
-
disabled={disabled}
|
|
23
|
-
fontSize={fontSize}
|
|
24
|
-
id="select-example"
|
|
25
|
-
radius={radius}
|
|
26
|
-
readOnly={readOnly}
|
|
27
|
-
>
|
|
28
|
-
<option value="a">Option A</option>
|
|
29
|
-
<option value="b">Option B</option>
|
|
30
|
-
<option value="c">Option C</option>
|
|
31
|
-
<option value="d">Option D</option>
|
|
32
|
-
<option value="e">Option E</option>
|
|
33
|
-
</Select>
|
|
34
|
-
</Stack>
|
|
35
|
-
</CardWrapper>
|
|
36
|
-
)
|
|
37
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import {Card, Container, Label, Select, Stack} from '@sanity/ui'
|
|
2
|
-
|
|
3
|
-
export default function ReadOnlyStory(): React.JSX.Element {
|
|
4
|
-
return (
|
|
5
|
-
<Container width={0}>
|
|
6
|
-
<Card padding={4}>
|
|
7
|
-
<Stack gap={3}>
|
|
8
|
-
<Label as="label" htmlFor="select">
|
|
9
|
-
Select
|
|
10
|
-
</Label>
|
|
11
|
-
|
|
12
|
-
<Select id="select-example" readOnly>
|
|
13
|
-
<option value="a">Option A</option>
|
|
14
|
-
<option value="b">Option B</option>
|
|
15
|
-
<option value="c">Option C</option>
|
|
16
|
-
<option value="d">Option D</option>
|
|
17
|
-
<option value="e">Option E</option>
|
|
18
|
-
</Select>
|
|
19
|
-
</Stack>
|
|
20
|
-
</Card>
|
|
21
|
-
</Container>
|
|
22
|
-
)
|
|
23
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type {WorkshopScope} from '@sanity/ui-workshop'
|
|
2
|
-
import {lazy} from 'react'
|
|
3
|
-
|
|
4
|
-
const scope: WorkshopScope = {
|
|
5
|
-
name: 'primitives/select',
|
|
6
|
-
title: 'Select',
|
|
7
|
-
stories: [
|
|
8
|
-
{name: 'plain', title: 'Plain', component: lazy(() => import('./Plain'))},
|
|
9
|
-
{name: 'read-only', title: 'Read-only', component: lazy(() => import('./ReadOnly'))},
|
|
10
|
-
],
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export default scope
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import {selectable, SELECTABLE_STYLE_PROP_KEYS, type SelectableStyleProps} from '@sanity/ui-css'
|
|
2
|
-
|
|
3
|
-
import {_splitKeys} from '../../core/_keys'
|
|
4
|
-
import type {ComponentType, Props} from '../../core/types'
|
|
5
|
-
|
|
6
|
-
/** @public */
|
|
7
|
-
export const DEFAULT_SELECTABLE_ELEMENT = 'button'
|
|
8
|
-
|
|
9
|
-
/** @public */
|
|
10
|
-
export interface SelectableOwnProps extends SelectableStyleProps {
|
|
11
|
-
selected?: boolean
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/** @public */
|
|
15
|
-
export type SelectableElementType = 'a' | 'button' | 'span' | ComponentType
|
|
16
|
-
|
|
17
|
-
/** @public */
|
|
18
|
-
export type SelectableProps<E extends SelectableElementType = SelectableElementType> = Props<
|
|
19
|
-
SelectableOwnProps,
|
|
20
|
-
E
|
|
21
|
-
>
|
|
22
|
-
|
|
23
|
-
/** @public */
|
|
24
|
-
export function Selectable<E extends SelectableElementType = typeof DEFAULT_SELECTABLE_ELEMENT>(
|
|
25
|
-
props: SelectableProps<E>,
|
|
26
|
-
): React.JSX.Element {
|
|
27
|
-
const [
|
|
28
|
-
styleProps,
|
|
29
|
-
{
|
|
30
|
-
as: Element = DEFAULT_SELECTABLE_ELEMENT,
|
|
31
|
-
selected,
|
|
32
|
-
// split DOM props
|
|
33
|
-
...domProps
|
|
34
|
-
},
|
|
35
|
-
] = _splitKeys(
|
|
36
|
-
props as SelectableProps<typeof DEFAULT_SELECTABLE_ELEMENT>,
|
|
37
|
-
SELECTABLE_STYLE_PROP_KEYS,
|
|
38
|
-
)
|
|
39
|
-
|
|
40
|
-
return (
|
|
41
|
-
<Element
|
|
42
|
-
data-ui="Selectable"
|
|
43
|
-
{...domProps}
|
|
44
|
-
className={selectable(styleProps)}
|
|
45
|
-
data-pressed={selected ? '' : props['data-pressed']}
|
|
46
|
-
/>
|
|
47
|
-
)
|
|
48
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import {Selectable, Stack, Text} from '@sanity/ui'
|
|
2
|
-
|
|
3
|
-
import {CardWrapper} from '$workshop'
|
|
4
|
-
|
|
5
|
-
export default function DataPropsStory(): React.JSX.Element {
|
|
6
|
-
return (
|
|
7
|
-
<CardWrapper>
|
|
8
|
-
<Stack gap={4}>
|
|
9
|
-
<Selectable data-enabled="" padding={3}>
|
|
10
|
-
<Text size={1}>Selectable {`[data-enabled]`}</Text>
|
|
11
|
-
</Selectable>
|
|
12
|
-
<Selectable data-hovered="" padding={3}>
|
|
13
|
-
<Text size={1}>Selectable {`[data-hovered]`}</Text>
|
|
14
|
-
</Selectable>
|
|
15
|
-
<Selectable data-pressed="" padding={3}>
|
|
16
|
-
<Text size={1}>Selectable {`[data-pressed]`}</Text>
|
|
17
|
-
</Selectable>
|
|
18
|
-
<Selectable data-selected="" padding={3}>
|
|
19
|
-
<Text size={1}>Selectable {`[data-selected]`}</Text>
|
|
20
|
-
</Selectable>
|
|
21
|
-
</Stack>
|
|
22
|
-
</CardWrapper>
|
|
23
|
-
)
|
|
24
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import {Selectable, Text} from '@sanity/ui'
|
|
2
|
-
|
|
3
|
-
import {CardWrapper} from '$workshop'
|
|
4
|
-
|
|
5
|
-
export default function AsLinkStory() {
|
|
6
|
-
return (
|
|
7
|
-
<CardWrapper>
|
|
8
|
-
<Selectable as="a" href="#" padding={4}>
|
|
9
|
-
<Text>Link</Text>
|
|
10
|
-
</Selectable>
|
|
11
|
-
</CardWrapper>
|
|
12
|
-
)
|
|
13
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import {defineScope} from '@sanity/ui-workshop'
|
|
2
|
-
import {lazy} from 'react'
|
|
3
|
-
|
|
4
|
-
export default defineScope({
|
|
5
|
-
name: 'primitives/selectable',
|
|
6
|
-
title: 'Selectable',
|
|
7
|
-
stories: [
|
|
8
|
-
{
|
|
9
|
-
name: 'data-props',
|
|
10
|
-
title: 'Data props',
|
|
11
|
-
component: lazy(() => import('./DataProps')),
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
name: 'as-link',
|
|
15
|
-
title: 'As link',
|
|
16
|
-
component: lazy(() => import('./as-link')),
|
|
17
|
-
},
|
|
18
|
-
],
|
|
19
|
-
})
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import {code_skeleton, type ResponsiveProp} from '@sanity/ui-css'
|
|
2
|
-
import type {FontCodeSize} from '@sanity/ui-tokens'
|
|
3
|
-
|
|
4
|
-
import type {Props} from '../../core/types'
|
|
5
|
-
import {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './Skeleton'
|
|
6
|
-
|
|
7
|
-
/** @beta */
|
|
8
|
-
export const DEFAULT_CODE_SKELETON_ELEMENT = 'div'
|
|
9
|
-
|
|
10
|
-
/** @beta */
|
|
11
|
-
export type CodeSkeletonOwnProps = SkeletonOwnProps & {
|
|
12
|
-
size?: ResponsiveProp<FontCodeSize>
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/** @beta */
|
|
16
|
-
export type CodeSkeletonElementType = SkeletonElementType
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* This API might change. DO NOT USE IN PRODUCTION.
|
|
20
|
-
* @beta
|
|
21
|
-
*/
|
|
22
|
-
export type CodeSkeletonProps<E extends CodeSkeletonElementType = CodeSkeletonElementType> = Props<
|
|
23
|
-
CodeSkeletonOwnProps,
|
|
24
|
-
E
|
|
25
|
-
>
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* This API might change. DO NOT USE IN PRODUCTION.
|
|
29
|
-
* @beta
|
|
30
|
-
*/
|
|
31
|
-
export function CodeSkeleton<
|
|
32
|
-
E extends CodeSkeletonElementType = typeof DEFAULT_CODE_SKELETON_ELEMENT,
|
|
33
|
-
>(props: CodeSkeletonProps<E>): React.JSX.Element {
|
|
34
|
-
const {
|
|
35
|
-
className,
|
|
36
|
-
size = 2,
|
|
37
|
-
...rest
|
|
38
|
-
} = props as CodeSkeletonProps<typeof DEFAULT_CODE_SKELETON_ELEMENT>
|
|
39
|
-
|
|
40
|
-
return (
|
|
41
|
-
<Skeleton
|
|
42
|
-
{...rest}
|
|
43
|
-
className={code_skeleton({
|
|
44
|
-
className,
|
|
45
|
-
size,
|
|
46
|
-
})}
|
|
47
|
-
/>
|
|
48
|
-
)
|
|
49
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import {heading_skeleton, type ResponsiveProp} from '@sanity/ui-css'
|
|
2
|
-
import type {FontHeadingSize} from '@sanity/ui-tokens'
|
|
3
|
-
|
|
4
|
-
import type {Props} from '../../core/types'
|
|
5
|
-
import {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './Skeleton'
|
|
6
|
-
|
|
7
|
-
/** @beta */
|
|
8
|
-
export const DEFAULT_HEADING_SKELETON_ELEMENT = 'div'
|
|
9
|
-
|
|
10
|
-
/** @beta */
|
|
11
|
-
export type HeadingSkeletonOwnProps = SkeletonOwnProps & {
|
|
12
|
-
size?: ResponsiveProp<FontHeadingSize>
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/** @beta */
|
|
16
|
-
export type HeadingSkeletonElementType = SkeletonElementType
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* This API might change. DO NOT USE IN PRODUCTION.
|
|
20
|
-
* @beta
|
|
21
|
-
*/
|
|
22
|
-
export type HeadingSkeletonProps<
|
|
23
|
-
E extends HeadingSkeletonElementType = HeadingSkeletonElementType,
|
|
24
|
-
> = Props<HeadingSkeletonOwnProps, E>
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* This API might change. DO NOT USE IN PRODUCTION.
|
|
28
|
-
* @beta
|
|
29
|
-
*/
|
|
30
|
-
export function HeadingSkeleton<
|
|
31
|
-
E extends HeadingSkeletonElementType = typeof DEFAULT_HEADING_SKELETON_ELEMENT,
|
|
32
|
-
>(props: HeadingSkeletonProps<E>): React.JSX.Element {
|
|
33
|
-
const {
|
|
34
|
-
className,
|
|
35
|
-
size = 2,
|
|
36
|
-
...rest
|
|
37
|
-
} = props as HeadingSkeletonProps<typeof DEFAULT_HEADING_SKELETON_ELEMENT>
|
|
38
|
-
|
|
39
|
-
return (
|
|
40
|
-
<Skeleton
|
|
41
|
-
{...rest}
|
|
42
|
-
className={heading_skeleton({
|
|
43
|
-
className,
|
|
44
|
-
size,
|
|
45
|
-
})}
|
|
46
|
-
/>
|
|
47
|
-
)
|
|
48
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import {label_skeleton, type ResponsiveProp} from '@sanity/ui-css'
|
|
2
|
-
import type {FontLabelSize} from '@sanity/ui-tokens'
|
|
3
|
-
|
|
4
|
-
import type {Props} from '../../core/types'
|
|
5
|
-
import {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './Skeleton'
|
|
6
|
-
|
|
7
|
-
/** @beta */
|
|
8
|
-
export const DEFAULT_LABEL_SKELETON_ELEMENT = 'div'
|
|
9
|
-
|
|
10
|
-
/** @beta */
|
|
11
|
-
export type LabelSkeletonOwnProps = SkeletonOwnProps & {
|
|
12
|
-
size?: ResponsiveProp<FontLabelSize>
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/** @beta */
|
|
16
|
-
export type LabelSkeletonElementType = SkeletonElementType
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* This API might change. DO NOT USE IN PRODUCTION.
|
|
20
|
-
* @beta
|
|
21
|
-
*/
|
|
22
|
-
export type LabelSkeletonProps<E extends LabelSkeletonElementType = LabelSkeletonElementType> =
|
|
23
|
-
Props<LabelSkeletonOwnProps, E>
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* This API might change. DO NOT USE IN PRODUCTION.
|
|
27
|
-
* @beta
|
|
28
|
-
*/
|
|
29
|
-
export function LabelSkeleton<
|
|
30
|
-
E extends LabelSkeletonElementType = typeof DEFAULT_LABEL_SKELETON_ELEMENT,
|
|
31
|
-
>(props: LabelSkeletonProps<E>): React.JSX.Element {
|
|
32
|
-
const {
|
|
33
|
-
className,
|
|
34
|
-
size = 2,
|
|
35
|
-
...rest
|
|
36
|
-
} = props as LabelSkeletonProps<typeof DEFAULT_LABEL_SKELETON_ELEMENT>
|
|
37
|
-
|
|
38
|
-
return (
|
|
39
|
-
<Skeleton
|
|
40
|
-
{...rest}
|
|
41
|
-
className={label_skeleton({
|
|
42
|
-
className,
|
|
43
|
-
size,
|
|
44
|
-
})}
|
|
45
|
-
/>
|
|
46
|
-
)
|
|
47
|
-
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import {skeleton, type SkeletonStyleProps} from '@sanity/ui-css'
|
|
2
|
-
import {useEffect, useState} from 'react'
|
|
3
|
-
|
|
4
|
-
import type {ComponentType, Props} from '../../core/types'
|
|
5
|
-
|
|
6
|
-
/** @beta */
|
|
7
|
-
export const DEFAULT_SKELETON_ELEMENT = 'div'
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* This API might change. DO NOT USE IN PRODUCTION.
|
|
11
|
-
* @beta
|
|
12
|
-
*/
|
|
13
|
-
export type SkeletonOwnProps = SkeletonStyleProps & {
|
|
14
|
-
animated?: boolean
|
|
15
|
-
delay?: number
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/** @beta */
|
|
19
|
-
export type SkeletonElementType = 'div' | 'span' | ComponentType
|
|
20
|
-
|
|
21
|
-
/** @beta */
|
|
22
|
-
export type SkeletonProps<E extends SkeletonElementType = SkeletonElementType> = Props<
|
|
23
|
-
SkeletonOwnProps,
|
|
24
|
-
E
|
|
25
|
-
>
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* This API might change. DO NOT USE IN PRODUCTION.
|
|
29
|
-
* @beta
|
|
30
|
-
*/
|
|
31
|
-
export function Skeleton<E extends SkeletonElementType = typeof DEFAULT_SKELETON_ELEMENT>(
|
|
32
|
-
props: SkeletonProps<E>,
|
|
33
|
-
): React.JSX.Element {
|
|
34
|
-
const {
|
|
35
|
-
as: As = DEFAULT_SKELETON_ELEMENT,
|
|
36
|
-
animated = false,
|
|
37
|
-
className,
|
|
38
|
-
delay,
|
|
39
|
-
...rest
|
|
40
|
-
} = props as SkeletonProps<typeof DEFAULT_SKELETON_ELEMENT>
|
|
41
|
-
|
|
42
|
-
const [visible, setVisible] = useState<boolean>(delay ? false : true)
|
|
43
|
-
|
|
44
|
-
useEffect(() => {
|
|
45
|
-
if (!delay) {
|
|
46
|
-
return undefined
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const timeout = setTimeout(() => {
|
|
50
|
-
setVisible(true)
|
|
51
|
-
}, delay)
|
|
52
|
-
|
|
53
|
-
return () => {
|
|
54
|
-
clearTimeout(timeout)
|
|
55
|
-
}
|
|
56
|
-
}, [delay])
|
|
57
|
-
|
|
58
|
-
return (
|
|
59
|
-
<As
|
|
60
|
-
data-ui="Skeleton"
|
|
61
|
-
{...rest}
|
|
62
|
-
className={skeleton({
|
|
63
|
-
className,
|
|
64
|
-
...rest,
|
|
65
|
-
})}
|
|
66
|
-
data-animated={animated ? '' : undefined}
|
|
67
|
-
data-visible={(delay ? visible : true) ? '' : undefined}
|
|
68
|
-
/>
|
|
69
|
-
)
|
|
70
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import {type ResponsiveProp, text_skeleton} from '@sanity/ui-css'
|
|
2
|
-
import type {FontTextSize} from '@sanity/ui-tokens'
|
|
3
|
-
|
|
4
|
-
import type {Props} from '../../core/types'
|
|
5
|
-
import {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './Skeleton'
|
|
6
|
-
|
|
7
|
-
/** @beta */
|
|
8
|
-
export const DEFAULT_TEXT_SKELETON_ELEMENT = 'div'
|
|
9
|
-
|
|
10
|
-
/** @beta */
|
|
11
|
-
export type TextSkeletonOwnProps = SkeletonOwnProps & {
|
|
12
|
-
size?: ResponsiveProp<FontTextSize>
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/** @beta */
|
|
16
|
-
export type TextSkeletonElementType = SkeletonElementType
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* This API might change. DO NOT USE IN PRODUCTION.
|
|
20
|
-
* @beta
|
|
21
|
-
*/
|
|
22
|
-
export type TextSkeletonProps<E extends TextSkeletonElementType = TextSkeletonElementType> = Props<
|
|
23
|
-
TextSkeletonOwnProps,
|
|
24
|
-
E
|
|
25
|
-
>
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* This API might change. DO NOT USE IN PRODUCTION.
|
|
29
|
-
* @beta
|
|
30
|
-
*/
|
|
31
|
-
export function TextSkeleton<
|
|
32
|
-
E extends TextSkeletonElementType = typeof DEFAULT_TEXT_SKELETON_ELEMENT,
|
|
33
|
-
>(props: TextSkeletonProps<E>): React.JSX.Element {
|
|
34
|
-
const {
|
|
35
|
-
className,
|
|
36
|
-
size = 2,
|
|
37
|
-
...rest
|
|
38
|
-
} = props as TextSkeletonProps<typeof DEFAULT_TEXT_SKELETON_ELEMENT>
|
|
39
|
-
|
|
40
|
-
return (
|
|
41
|
-
<Skeleton
|
|
42
|
-
{...rest}
|
|
43
|
-
className={text_skeleton({
|
|
44
|
-
className,
|
|
45
|
-
size,
|
|
46
|
-
})}
|
|
47
|
-
/>
|
|
48
|
-
)
|
|
49
|
-
}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Box,
|
|
3
|
-
Card,
|
|
4
|
-
CARD_TONES,
|
|
5
|
-
CodeSkeleton,
|
|
6
|
-
Container,
|
|
7
|
-
Flex,
|
|
8
|
-
HeadingSkeleton,
|
|
9
|
-
LabelSkeleton,
|
|
10
|
-
Skeleton,
|
|
11
|
-
Stack,
|
|
12
|
-
Text,
|
|
13
|
-
TextSkeleton,
|
|
14
|
-
} from '@sanity/ui'
|
|
15
|
-
import {useBoolean, useSelect} from '@sanity/ui-workshop'
|
|
16
|
-
|
|
17
|
-
export default function SkeletonDelayStory(): React.JSX.Element {
|
|
18
|
-
const tone = useSelect('Tone', CARD_TONES)
|
|
19
|
-
const animated = useBoolean('Animated', true)
|
|
20
|
-
|
|
21
|
-
return (
|
|
22
|
-
<Box padding={[4, 5, 6]}>
|
|
23
|
-
<Container width={1}>
|
|
24
|
-
<Text muted>Delayed by 2000ms</Text>
|
|
25
|
-
<Card border marginTop={4} padding={2} radius={2} tone={tone}>
|
|
26
|
-
<Flex align="center">
|
|
27
|
-
<Skeleton
|
|
28
|
-
animated={animated}
|
|
29
|
-
delay={1000}
|
|
30
|
-
marginRight={3}
|
|
31
|
-
radius={2}
|
|
32
|
-
style={{width: 90, height: 90}}
|
|
33
|
-
/>
|
|
34
|
-
<Stack flex={1} gap={2}>
|
|
35
|
-
<HeadingSkeleton
|
|
36
|
-
animated={animated}
|
|
37
|
-
delay={1000}
|
|
38
|
-
radius={1}
|
|
39
|
-
size={4}
|
|
40
|
-
style={{width: '100%'}}
|
|
41
|
-
/>
|
|
42
|
-
<TextSkeleton
|
|
43
|
-
animated={animated}
|
|
44
|
-
delay={1000}
|
|
45
|
-
radius={1}
|
|
46
|
-
size={1}
|
|
47
|
-
style={{width: '100%'}}
|
|
48
|
-
/>
|
|
49
|
-
<LabelSkeleton
|
|
50
|
-
animated={animated}
|
|
51
|
-
delay={1000}
|
|
52
|
-
radius={1}
|
|
53
|
-
size={1}
|
|
54
|
-
style={{width: '100%'}}
|
|
55
|
-
/>
|
|
56
|
-
<CodeSkeleton
|
|
57
|
-
animated={animated}
|
|
58
|
-
delay={1000}
|
|
59
|
-
radius={1}
|
|
60
|
-
size={1}
|
|
61
|
-
style={{width: '100%'}}
|
|
62
|
-
/>
|
|
63
|
-
</Stack>
|
|
64
|
-
</Flex>
|
|
65
|
-
</Card>
|
|
66
|
-
</Container>
|
|
67
|
-
</Box>
|
|
68
|
-
)
|
|
69
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Box,
|
|
3
|
-
Card,
|
|
4
|
-
CARD_TONES,
|
|
5
|
-
CodeSkeleton,
|
|
6
|
-
Container,
|
|
7
|
-
Flex,
|
|
8
|
-
Grid,
|
|
9
|
-
HeadingSkeleton,
|
|
10
|
-
LabelSkeleton,
|
|
11
|
-
Skeleton,
|
|
12
|
-
Stack,
|
|
13
|
-
TextSkeleton,
|
|
14
|
-
} from '@sanity/ui'
|
|
15
|
-
import {useBoolean, useSelect} from '@sanity/ui-workshop'
|
|
16
|
-
|
|
17
|
-
export default function SkeletonStory(): React.JSX.Element {
|
|
18
|
-
const tone = useSelect('Tone', CARD_TONES)
|
|
19
|
-
const animated = useBoolean('Animated', true)
|
|
20
|
-
|
|
21
|
-
return (
|
|
22
|
-
<Box padding={[4, 5, 6]}>
|
|
23
|
-
<Container width={1}>
|
|
24
|
-
<Stack gap={4}>
|
|
25
|
-
{[1, 2, 3].map((item) => (
|
|
26
|
-
<Card key={item} border padding={2} radius={2} tone={tone}>
|
|
27
|
-
<Flex align="center">
|
|
28
|
-
<Grid gap={2} gridTemplateColumns={2} marginRight={3}>
|
|
29
|
-
<Skeleton animated={animated} radius={2} style={{width: 40, height: 40}} />
|
|
30
|
-
<Skeleton animated={animated} radius={2} style={{width: 40, height: 40}} />
|
|
31
|
-
<Skeleton animated={animated} radius={2} style={{width: 40, height: 40}} />
|
|
32
|
-
<Skeleton animated={animated} radius={2} style={{width: 40, height: 40}} />
|
|
33
|
-
</Grid>
|
|
34
|
-
<Stack flex={1} gap={2}>
|
|
35
|
-
<HeadingSkeleton animated={animated} radius={1} style={{width: '100%'}} />
|
|
36
|
-
<TextSkeleton animated={animated} radius={1} style={{width: '100%'}} />
|
|
37
|
-
<LabelSkeleton animated={animated} radius={1} style={{width: '100%'}} />
|
|
38
|
-
<CodeSkeleton animated={animated} radius={1} style={{width: '100%'}} />
|
|
39
|
-
</Stack>
|
|
40
|
-
</Flex>
|
|
41
|
-
<Flex marginTop={2}>
|
|
42
|
-
<Skeleton
|
|
43
|
-
animated={animated}
|
|
44
|
-
flex={1}
|
|
45
|
-
marginRight={1}
|
|
46
|
-
radius={2}
|
|
47
|
-
style={{height: 50}}
|
|
48
|
-
/>
|
|
49
|
-
<Skeleton
|
|
50
|
-
animated={animated}
|
|
51
|
-
flex={1}
|
|
52
|
-
marginLeft={1}
|
|
53
|
-
radius={2}
|
|
54
|
-
style={{height: 50}}
|
|
55
|
-
/>
|
|
56
|
-
</Flex>
|
|
57
|
-
</Card>
|
|
58
|
-
))}
|
|
59
|
-
</Stack>
|
|
60
|
-
</Container>
|
|
61
|
-
</Box>
|
|
62
|
-
)
|
|
63
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type {WorkshopScope} from '@sanity/ui-workshop'
|
|
2
|
-
import {lazy} from 'react'
|
|
3
|
-
|
|
4
|
-
const scope: WorkshopScope = {
|
|
5
|
-
name: 'primitives/skeleton',
|
|
6
|
-
title: 'Skeleton',
|
|
7
|
-
stories: [
|
|
8
|
-
{name: 'skeleton', title: 'Skeleton', component: lazy(() => import('./Skeleton'))},
|
|
9
|
-
{name: 'skeleton-delay', title: 'Skeleton delay', component: lazy(() => import('./Delay'))},
|
|
10
|
-
],
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export default scope
|