@sanity/ui 3.0.0-static.20 → 3.0.0-static.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/_chunks-cjs/_visual-editing.cjs +198 -862
- package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -1
- package/dist/_chunks-cjs/refractor.cjs +0 -1
- package/dist/_chunks-cjs/refractor.cjs.map +1 -1
- package/dist/_chunks-es/_visual-editing.js +211 -874
- package/dist/_chunks-es/_visual-editing.js.map +1 -1
- package/dist/_chunks-es/refractor.js +0 -1
- package/dist/_chunks-es/refractor.js.map +1 -1
- package/dist/_visual-editing.d.cts +34 -100
- package/dist/_visual-editing.d.ts +34 -100
- package/dist/css.cjs +368 -4123
- package/dist/css.cjs.map +1 -1
- package/dist/css.d.cts +13095 -8462
- package/dist/css.d.ts +13095 -8462
- package/dist/css.js +368 -4124
- package/dist/css.js.map +1 -1
- package/dist/index.cjs +769 -141
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +93 -287
- package/dist/index.d.ts +93 -287
- package/dist/index.js +740 -112
- package/dist/index.js.map +1 -1
- package/dist/theme.cjs +31 -10
- package/dist/theme.cjs.map +1 -1
- package/dist/theme.d.cts +2 -2
- package/dist/theme.d.ts +2 -2
- package/dist/theme.js +31 -10
- package/dist/theme.js.map +1 -1
- package/dist/ui.css +21459 -24610
- package/package.json +17 -12
- package/src/cli/buildCommand.ts +1 -91
- package/src/core/_compat/theme/themeColorProvider.tsx +0 -2
- package/src/core/_compat/theme/themeProvider.tsx +0 -2
- package/src/core/components/autocomplete/autocomplete.tsx +15 -15
- package/src/core/components/autocomplete/autocompleteOption.tsx +0 -2
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +2 -4
- package/src/core/components/dialog/dialog.tsx +9 -13
- package/src/core/components/dialog/dialogCard.tsx +2 -10
- package/src/core/components/dialog/dialogContext.ts +4 -2
- package/src/core/components/dialog/dialogProvider.tsx +3 -4
- package/src/core/components/hotkeys/hotkeys.tsx +0 -2
- package/src/core/components/menu/menu.tsx +2 -4
- package/src/core/components/menu/menuButton.tsx +0 -2
- package/src/core/components/menu/menuDivider.tsx +2 -4
- package/src/core/components/menu/menuGroup.tsx +0 -2
- package/src/core/components/menu/menuItem.tsx +2 -4
- package/src/core/components/skeleton/codeSkeleton.tsx +6 -10
- package/src/core/components/skeleton/headingSkeleton.tsx +6 -10
- package/src/core/components/skeleton/labelSkeleton.tsx +6 -10
- package/src/core/components/skeleton/skeleton.tsx +4 -8
- package/src/core/components/skeleton/textSkeleton.tsx +6 -10
- package/src/core/components/tab/tab.tsx +0 -2
- package/src/core/components/tab/tabList.tsx +0 -2
- package/src/core/components/tab/tabPanel.tsx +0 -2
- package/src/core/components/toast/toast.tsx +6 -36
- package/src/core/components/toast/toastLayer.tsx +0 -2
- package/src/core/components/toast/toastProvider.tsx +2 -3
- package/src/core/components/tree/tree.tsx +0 -2
- package/src/core/components/tree/treeGroup.tsx +0 -2
- package/src/core/components/tree/treeItem.tsx +3 -5
- package/src/core/helpers/props.ts +18 -0
- package/src/core/hooks/index.ts +1 -0
- package/src/core/hooks/useArrayProp.ts +1 -4
- package/src/core/hooks/useResponsiveProp.ts +28 -0
- package/src/core/index.ts +0 -1
- package/src/core/lib/isArray.ts +3 -0
- package/src/core/primitives/_selectable/selectable.tsx +2 -6
- package/src/core/primitives/avatar/avatar.tsx +15 -17
- package/src/core/primitives/avatar/avatarCounter.tsx +14 -15
- package/src/core/primitives/avatar/avatarStack.tsx +14 -22
- package/src/core/primitives/badge/badge.tsx +3 -10
- package/src/core/primitives/box/box.tsx +90 -70
- package/src/core/primitives/button/button.tsx +10 -21
- package/src/core/primitives/card/card.tsx +5 -11
- package/src/core/primitives/card/cardProvider.tsx +2 -2
- package/src/core/primitives/card/useCard.ts +1 -0
- package/src/core/primitives/checkbox/checkbox.tsx +4 -6
- package/src/core/primitives/code/code.tsx +5 -10
- package/src/core/primitives/code/refractor.tsx +0 -2
- package/src/core/primitives/container/container.tsx +2 -11
- package/src/core/primitives/flex/flex.tsx +29 -4
- package/src/core/primitives/grid/grid.tsx +0 -2
- package/src/core/primitives/heading/heading.tsx +8 -13
- package/src/core/primitives/inline/inline.tsx +22 -6
- package/src/core/primitives/kbd/kbd.tsx +2 -4
- package/src/core/primitives/label/label.tsx +7 -12
- package/src/core/primitives/popover/popover.tsx +11 -9
- package/src/core/primitives/popover/popoverLayer.tsx +1 -3
- package/src/core/primitives/radio/radio.tsx +4 -5
- package/src/core/primitives/select/select.tsx +0 -2
- package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +6 -10
- package/src/core/primitives/spinner/spinner.tsx +6 -6
- package/src/core/primitives/stack/stack.tsx +16 -6
- package/src/core/primitives/switch/switch.tsx +1 -4
- package/src/core/primitives/text/text.tsx +9 -19
- package/src/core/primitives/textArea/textArea.tsx +0 -2
- package/src/core/primitives/textInput/textInput.tsx +40 -47
- package/src/core/primitives/tooltip/tooltip.tsx +4 -12
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -2
- package/src/core/primitives/tooltip/tooltipLayer.tsx +0 -2
- package/src/core/primitives/types.ts +6 -6
- package/src/core/types/flex.ts +3 -3
- package/src/core/utils/arrow/arrow.tsx +11 -5
- package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -2
- package/src/core/utils/elementQuery/elementQuery.tsx +0 -2
- package/src/core/utils/layer/layer.tsx +3 -3
- package/src/core/utils/layer/layerCard.tsx +0 -2
- package/src/core/utils/layer/layerProvider.tsx +6 -7
- package/src/core/utils/portal/portal.tsx +0 -2
- package/src/core/utils/portal/portalProvider.tsx +0 -2
- package/src/core/utils/srOnly/srOnly.tsx +2 -9
- package/src/core/utils/virtualList/virtualList.tsx +0 -2
- package/src/css/__theme/index.ts +16 -0
- package/src/css/__theme/lib/contract/buildVarContract.ts +78 -0
- package/src/css/__theme/lib/contract/index.ts +4 -0
- package/src/css/__theme/lib/contract/types.ts +17 -0
- package/src/css/__theme/resolveTheme.ts +865 -0
- package/src/css/_responsiveClassName.ts +45 -0
- package/src/css/_responsiveStyle.css.ts +34 -0
- package/src/css/_style.css.ts +9 -0
- package/src/css/components/breadcrumbs/breadcrumbs.css.ts +6 -0
- package/src/css/components/breadcrumbs/breadcrumbs.ts +4 -3
- package/src/css/components/dialog/dialog.css.ts +81 -0
- package/src/css/components/dialog/dialog.ts +12 -12
- package/src/css/components/index.ts +6 -0
- package/src/css/components/menu/menu.css.ts +14 -0
- package/src/css/components/menu/menu.ts +6 -5
- package/src/css/components/skeleton/skeleton.css.ts +132 -0
- package/src/css/components/skeleton/skeleton.ts +8 -8
- package/src/css/components/skeleton/types.ts +9 -3
- package/src/css/components/toast/toast.css.ts +16 -0
- package/src/css/components/toast/toast.ts +3 -18
- package/src/css/components/tree/tree.css.ts +65 -0
- package/src/css/components/tree/tree.ts +4 -3
- package/src/css/defaultTheme.css.ts +468 -0
- package/src/css/index.ts +11 -37
- package/src/css/layers.css.ts +9 -0
- package/src/css/primitives/_arrow/_arrow.css.ts +68 -0
- package/src/css/primitives/_arrow/_arrow.ts +10 -5
- package/src/css/primitives/_input/_input.css.ts +258 -0
- package/src/css/primitives/_input/input.ts +10 -12
- package/src/css/primitives/_input/types.ts +1 -1
- package/src/css/primitives/_selectable/_selectable.css.ts +121 -0
- package/src/css/primitives/_selectable/selectable.ts +3 -3
- package/src/css/primitives/_selectable/types.ts +2 -1
- package/src/css/primitives/avatar/avatar.css.ts +175 -0
- package/src/css/primitives/avatar/avatar.ts +45 -10
- package/src/css/primitives/avatar/types.ts +1 -0
- package/src/css/primitives/badge/badge.css.ts +26 -0
- package/src/css/primitives/badge/badge.ts +2 -6
- package/src/css/primitives/badge/types.ts +4 -3
- package/src/css/primitives/box/box.css.ts +19 -0
- package/src/css/primitives/box/box.ts +39 -9
- package/src/css/primitives/box/types.ts +35 -8
- package/src/css/primitives/button/button.css.ts +285 -0
- package/src/css/primitives/button/button.ts +10 -7
- package/src/css/primitives/button/types.ts +10 -4
- package/src/css/primitives/card/card.css.ts +365 -0
- package/src/css/primitives/card/card.ts +5 -4
- package/src/css/primitives/card/types.ts +2 -3
- package/src/css/primitives/checkbox/checkbox.css.ts +193 -0
- package/src/css/primitives/checkbox/checkbox.ts +11 -5
- package/src/css/primitives/code/code.css.ts +271 -0
- package/src/css/primitives/code/code.ts +8 -4
- package/src/css/primitives/code/types.ts +3 -2
- package/src/css/primitives/container/container.css.ts +4 -0
- package/src/css/primitives/container/container.ts +9 -3
- package/src/css/primitives/container/types.ts +1 -0
- package/src/css/primitives/heading/heading.css.ts +85 -0
- package/src/css/primitives/heading/heading.ts +9 -10
- package/src/css/primitives/heading/types.ts +3 -2
- package/src/css/primitives/index.ts +24 -0
- package/src/css/primitives/kbd/kbd.css.ts +16 -0
- package/src/css/primitives/kbd/kbd.ts +3 -3
- package/src/css/primitives/kbd/types.ts +2 -3
- package/src/css/primitives/label/label.css.ts +85 -0
- package/src/css/primitives/label/label.ts +9 -4
- package/src/css/primitives/label/types.ts +3 -2
- package/src/css/primitives/popover/popover.css.ts +6 -0
- package/src/css/primitives/popover/popover.ts +6 -5
- package/src/css/primitives/radio/radio.css.ts +78 -0
- package/src/css/primitives/radio/radio.ts +14 -3
- package/src/css/primitives/select/select.css.ts +24 -0
- package/src/css/primitives/select/select.ts +3 -3
- package/src/css/primitives/spinner/index.ts +1 -0
- package/src/css/primitives/spinner/spinner.css.ts +23 -0
- package/src/css/primitives/spinner/spinner.ts +7 -5
- package/src/css/primitives/spinner/types.ts +4 -0
- package/src/css/primitives/stack/stack.css.ts +6 -0
- package/src/css/primitives/stack/stack.ts +4 -3
- package/src/css/primitives/switch/switch.css.ts +98 -0
- package/src/css/primitives/switch/switch.ts +8 -7
- package/src/css/primitives/text/text.css.ts +85 -0
- package/src/css/primitives/text/text.ts +9 -5
- package/src/css/primitives/text/types.ts +3 -2
- package/src/css/primitives/textArea/textArea.css.ts +4 -0
- package/src/css/primitives/textArea/textArea.ts +2 -2
- package/src/css/primitives/textArea/types.ts +4 -2
- package/src/css/primitives/textInput/textInput.css.ts +41 -0
- package/src/css/primitives/textInput/textInput.ts +5 -5
- package/src/css/primitives/textInput/types.ts +4 -2
- package/src/css/primitives/tooltip/index.ts +1 -0
- package/src/css/primitives/tooltip/tooltip.css.ts +6 -0
- package/src/css/primitives/tooltip/tooltip.ts +7 -3
- package/src/css/primitives/tooltip/types.ts +4 -0
- package/src/css/props/alignItems/alignItems.css.ts +22 -0
- package/src/css/props/alignItems/alignItems.ts +8 -0
- package/src/css/props/alignItems/index.ts +2 -0
- package/src/css/props/alignItems/types.ts +9 -0
- package/src/css/props/border/border.css.ts +65 -0
- package/src/css/props/border/border.ts +36 -0
- package/src/css/props/border/types.ts +13 -0
- package/src/css/props/boxSizing/boxSizing.css.ts +11 -0
- package/src/css/props/boxSizing/boxSizing.ts +10 -0
- package/src/css/{aspects → props}/boxSizing/types.ts +1 -3
- package/src/css/props/display/display.css.ts +56 -0
- package/src/css/props/display/display.ts +17 -0
- package/src/css/props/flex/flex.css.ts +52 -0
- package/src/css/props/flex/flex.ts +8 -0
- package/src/css/props/flex/types.ts +9 -0
- package/src/css/props/flexDirection/flexDirection.css.ts +19 -0
- package/src/css/props/flexDirection/flexDirection.ts +8 -0
- package/src/css/props/flexDirection/index.ts +2 -0
- package/src/css/props/flexDirection/types.ts +9 -0
- package/src/css/props/flexWrap/flexWrap.css.ts +16 -0
- package/src/css/props/flexWrap/flexWrap.ts +8 -0
- package/src/css/props/flexWrap/index.ts +2 -0
- package/src/css/props/flexWrap/types.ts +9 -0
- package/src/css/props/font/font.css.ts +93 -0
- package/src/css/props/font/font.ts +8 -0
- package/src/css/props/gap/gap.css.ts +40 -0
- package/src/css/props/gap/gap.ts +13 -0
- package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +19 -0
- package/src/css/props/gridAutoColumns/gridAutoColumns.ts +8 -0
- package/src/css/props/gridAutoColumns/index.ts +2 -0
- package/src/css/props/gridAutoColumns/types.ts +19 -0
- package/src/css/props/gridAutoFlow/gridAutoFlow.css.ts +19 -0
- package/src/css/props/gridAutoFlow/gridAutoFlow.ts +8 -0
- package/src/css/props/gridAutoFlow/index.ts +2 -0
- package/src/css/props/gridAutoFlow/types.ts +13 -0
- package/src/css/props/gridAutoRows/gridAutoRows.css.ts +19 -0
- package/src/css/props/gridAutoRows/gridAutoRows.ts +8 -0
- package/src/css/props/gridAutoRows/index.ts +2 -0
- package/src/css/props/gridAutoRows/types.ts +13 -0
- package/src/css/props/gridColumn/gridColumn.css.ts +49 -0
- package/src/css/props/gridColumn/gridColumn.ts +8 -0
- package/src/css/props/gridColumn/index.ts +2 -0
- package/src/css/props/gridColumn/types.ts +19 -0
- package/src/css/props/gridColumnEnd/gridColumnEnd.css.ts +46 -0
- package/src/css/props/gridColumnEnd/gridColumnEnd.ts +8 -0
- package/src/css/props/gridColumnEnd/index.ts +2 -0
- package/src/css/props/gridColumnEnd/types.ts +19 -0
- package/src/css/props/gridColumnStart/gridColumnStart.css.ts +46 -0
- package/src/css/props/gridColumnStart/gridColumnStart.ts +11 -0
- package/src/css/props/gridColumnStart/index.ts +2 -0
- package/src/css/props/gridColumnStart/types.ts +19 -0
- package/src/css/props/gridRow/gridRow.css.ts +49 -0
- package/src/css/props/gridRow/gridRow.ts +8 -0
- package/src/css/props/gridRow/index.ts +2 -0
- package/src/css/props/gridRow/types.ts +19 -0
- package/src/css/props/gridRowEnd/gridRowEnd.css.ts +46 -0
- package/src/css/props/gridRowEnd/gridRowEnd.ts +8 -0
- package/src/css/props/gridRowEnd/index.ts +2 -0
- package/src/css/props/gridRowEnd/types.ts +19 -0
- package/src/css/props/gridRowStart/gridRowStart.css.ts +46 -0
- package/src/css/props/gridRowStart/gridRowStart.ts +8 -0
- package/src/css/props/gridRowStart/index.ts +2 -0
- package/src/css/props/gridRowStart/types.ts +19 -0
- package/src/css/props/gridTemplateColumns/gridTemplateColumns.css.ts +43 -0
- package/src/css/props/gridTemplateColumns/gridTemplateColumns.ts +8 -0
- package/src/css/props/gridTemplateColumns/index.ts +2 -0
- package/src/css/props/gridTemplateColumns/types.ts +19 -0
- package/src/css/props/gridTemplateRows/gridTemplateRows.css.ts +43 -0
- package/src/css/props/gridTemplateRows/gridTemplateRows.ts +8 -0
- package/src/css/props/gridTemplateRows/index.ts +2 -0
- package/src/css/props/gridTemplateRows/types.ts +19 -0
- package/src/css/props/height/height.css.ts +25 -0
- package/src/css/props/height/height.ts +8 -0
- package/src/css/{aspects → props}/height/index.ts +1 -0
- package/src/css/props/height/types.ts +15 -0
- package/src/css/{aspects → props}/index.ts +16 -3
- package/src/css/props/inset/inset.css.ts +37 -0
- package/src/css/props/inset/inset.ts +21 -0
- package/src/css/props/justifyContent/index.ts +2 -0
- package/src/css/props/justifyContent/justifyContent.css.ts +25 -0
- package/src/css/props/justifyContent/justifyContent.ts +8 -0
- package/src/css/props/justifyContent/types.ts +15 -0
- package/src/css/props/margin/margin.css.ts +117 -0
- package/src/css/props/margin/margin.ts +25 -0
- package/src/css/props/maxWidth/maxWidth.css.ts +32 -0
- package/src/css/props/maxWidth/maxWidth.ts +8 -0
- package/src/css/{aspects → props}/maxWidth/types.ts +4 -1
- package/src/css/props/minHeight/minHeight.css.ts +13 -0
- package/src/css/props/minHeight/minHeight.ts +8 -0
- package/src/css/props/minWidth/minWidth.css.ts +25 -0
- package/src/css/props/minWidth/minWidth.ts +8 -0
- package/src/css/props/outline/index.ts +2 -0
- package/src/css/props/outline/outline.css.ts +10 -0
- package/src/css/props/outline/outline.ts +8 -0
- package/src/css/props/outline/types.ts +7 -0
- package/src/css/props/overflow/overflow.css.ts +16 -0
- package/src/css/props/overflow/overflow.ts +8 -0
- package/src/css/props/overflow/types.ts +17 -0
- package/src/css/props/padding/padding.css.ts +87 -0
- package/src/css/props/padding/padding.ts +25 -0
- package/src/css/props/padding/types.ts +17 -0
- package/src/css/props/pointerEvents/pointerEvents.css.ts +13 -0
- package/src/css/props/pointerEvents/pointerEvents.ts +8 -0
- package/src/css/props/position/position.css.ts +22 -0
- package/src/css/props/position/position.ts +8 -0
- package/src/css/props/radius/radius.css.ts +21 -0
- package/src/css/props/radius/radius.ts +8 -0
- package/src/css/props/shadow/shadow.css.ts +23 -0
- package/src/css/props/shadow/shadow.ts +8 -0
- package/src/css/props/textAlign/textAlign.css.ts +22 -0
- package/src/css/props/textAlign/textAlign.ts +8 -0
- package/src/css/props/textOverflow/textOverflow.css.ts +13 -0
- package/src/css/props/textOverflow/textOverflow.ts +8 -0
- package/src/css/{aspects → props}/textOverflow/types.ts +5 -2
- package/src/css/{aspects → props}/width/types.ts +1 -1
- package/src/css/props/width/width.css.ts +28 -0
- package/src/css/props/width/width.ts +8 -0
- package/src/css/types.ts +223 -42
- package/src/css/util.ts +0 -10
- package/src/css/utils/index.ts +1 -0
- package/src/css/utils/srOnly/srOnly.css.ts +10 -0
- package/src/css/utils/srOnly/srOnly.ts +3 -3
- package/src/css/vars.css.ts +676 -0
- package/src/theme/v3/buildTheme_v3.ts +7 -2
- package/src/theme/v3/defaultFonts.ts +4 -4
- package/src/theme/v3/defaultTokens.ts +3 -3
- package/src/theme/v3/types.ts +3 -2
- package/src/theme/versioning/v3_v2.ts +24 -3
- package/dist/_chunks-cjs/buildCommand.cjs +0 -71
- package/dist/_chunks-cjs/buildCommand.cjs.map +0 -1
- package/dist/cli.cjs +0 -357
- package/dist/cli.cjs.map +0 -1
- package/dist/cli.d.cts +0 -1
- package/dist/ui-system.css +0 -24528
- package/dist/ui-system.min.css +0 -1
- package/dist/ui-theme.css +0 -1184
- package/dist/ui-theme.min.css +0 -1
- package/dist/ui.min.css +0 -1
- package/src/core/StyleTags.tsx +0 -18
- package/src/css/_compileStyle.ts +0 -156
- package/src/css/_compileSystem.ts +0 -7
- package/src/css/_compileTheme.ts +0 -13
- package/src/css/_hash.ts +0 -9
- package/src/css/_mergeStyles.ts +0 -24
- package/src/css/_resp.ts +0 -31
- package/src/css/_responsiveRule.ts +0 -38
- package/src/css/_scopeClassName.ts +0 -9
- package/src/css/_scopeClassNames.ts +0 -12
- package/src/css/_system.style.ts +0 -166
- package/src/css/aspects/border/border.style.ts +0 -13
- package/src/css/aspects/border/border.ts +0 -14
- package/src/css/aspects/border/types.ts +0 -10
- package/src/css/aspects/boxSizing/boxSizing.style.ts +0 -10
- package/src/css/aspects/boxSizing/boxSizing.ts +0 -8
- package/src/css/aspects/display/display.style.ts +0 -34
- package/src/css/aspects/display/display.ts +0 -8
- package/src/css/aspects/flex/flex.ts +0 -13
- package/src/css/aspects/flex/flexAlign.style.ts +0 -12
- package/src/css/aspects/flex/flexDirection.style.ts +0 -11
- package/src/css/aspects/flex/flexJustify.style.ts +0 -13
- package/src/css/aspects/flex/flexWrap.style.ts +0 -10
- package/src/css/aspects/flex/types.ts +0 -27
- package/src/css/aspects/flexItem/flex.style.ts +0 -22
- package/src/css/aspects/flexItem/flexItem.ts +0 -8
- package/src/css/aspects/flexItem/index.ts +0 -2
- package/src/css/aspects/flexItem/types.ts +0 -25
- package/src/css/aspects/font/font.style.ts +0 -83
- package/src/css/aspects/font/font.ts +0 -7
- package/src/css/aspects/gap/gap.style.ts +0 -21
- package/src/css/aspects/gap/gap.ts +0 -8
- package/src/css/aspects/grid/grid.ts +0 -14
- package/src/css/aspects/grid/gridAutoColumns.style.ts +0 -11
- package/src/css/aspects/grid/gridAutoFlow.style.ts +0 -11
- package/src/css/aspects/grid/gridAutoRows.style.ts +0 -11
- package/src/css/aspects/grid/gridColumns.style.ts +0 -18
- package/src/css/aspects/grid/gridRows.style.ts +0 -18
- package/src/css/aspects/grid/index.ts +0 -2
- package/src/css/aspects/grid/types.ts +0 -25
- package/src/css/aspects/gridItem/gridColumn.style.ts +0 -20
- package/src/css/aspects/gridItem/gridColumnEnd.style.ts +0 -20
- package/src/css/aspects/gridItem/gridColumnStart.style.ts +0 -20
- package/src/css/aspects/gridItem/gridItem.ts +0 -15
- package/src/css/aspects/gridItem/gridRow.style.ts +0 -20
- package/src/css/aspects/gridItem/gridRowEnd.style.ts +0 -20
- package/src/css/aspects/gridItem/gridRowStart.style.ts +0 -20
- package/src/css/aspects/gridItem/index.ts +0 -2
- package/src/css/aspects/gridItem/types.ts +0 -30
- package/src/css/aspects/height/height.style.ts +0 -9
- package/src/css/aspects/height/height.ts +0 -16
- package/src/css/aspects/inset/inset.style.ts +0 -12
- package/src/css/aspects/inset/inset.ts +0 -14
- package/src/css/aspects/margin/margin.style.ts +0 -56
- package/src/css/aspects/margin/margin.ts +0 -16
- package/src/css/aspects/maxWidth/maxWidth.style.ts +0 -16
- package/src/css/aspects/maxWidth/maxWidth.ts +0 -8
- package/src/css/aspects/minHeight/minHeight.style.ts +0 -9
- package/src/css/aspects/minHeight/minHeight.ts +0 -8
- package/src/css/aspects/minWidth/minWidth.style.ts +0 -13
- package/src/css/aspects/minWidth/minWidth.ts +0 -8
- package/src/css/aspects/outline/outline.style.ts +0 -9
- package/src/css/aspects/overflow/overflow.style.ts +0 -11
- package/src/css/aspects/overflow/overflow.ts +0 -12
- package/src/css/aspects/overflow/types.ts +0 -11
- package/src/css/aspects/padding/padding.style.ts +0 -43
- package/src/css/aspects/padding/padding.ts +0 -16
- package/src/css/aspects/padding/types.ts +0 -14
- package/src/css/aspects/pointerEvents/pointerEvents.style.ts +0 -13
- package/src/css/aspects/pointerEvents/pointerEvents.ts +0 -7
- package/src/css/aspects/position/position.style.ts +0 -12
- package/src/css/aspects/position/position.ts +0 -8
- package/src/css/aspects/radius/radius.style.ts +0 -16
- package/src/css/aspects/radius/radius.ts +0 -8
- package/src/css/aspects/shadow/shadow.style.ts +0 -24
- package/src/css/aspects/shadow/shadow.ts +0 -8
- package/src/css/aspects/textAlign/textAlign.style.ts +0 -26
- package/src/css/aspects/textAlign/textAlign.ts +0 -8
- package/src/css/aspects/textOverflow/textOverflow.style.ts +0 -21
- package/src/css/aspects/textOverflow/textOverflow.ts +0 -7
- package/src/css/aspects/width/width.style.ts +0 -11
- package/src/css/aspects/width/width.ts +0 -8
- package/src/css/components/breadcrumbs/breadcrumbs.style.ts +0 -9
- package/src/css/components/dialog/dialog.style.ts +0 -77
- package/src/css/components/menu/menu.style.ts +0 -17
- package/src/css/components/skeleton/skeleton.style.ts +0 -104
- package/src/css/components/toast/toast.style.ts +0 -20
- package/src/css/components/tree/tree.style.ts +0 -39
- package/src/css/prefix/constants.ts +0 -6
- package/src/css/prefix/index.ts +0 -2
- package/src/css/prefix/types.ts +0 -1
- package/src/css/primitives/_arrow/_arrow.style.ts +0 -69
- package/src/css/primitives/_input/_input.style.ts +0 -235
- package/src/css/primitives/_selectable/_selectable.style.ts +0 -129
- package/src/css/primitives/avatar/avatar.style.ts +0 -171
- package/src/css/primitives/badge/badge.style.ts +0 -21
- package/src/css/primitives/box/box.style.ts +0 -22
- package/src/css/primitives/button/button.style.ts +0 -275
- package/src/css/primitives/card/card.style.ts +0 -295
- package/src/css/primitives/checkbox/checkbox.style.ts +0 -178
- package/src/css/primitives/code/code.style.ts +0 -61
- package/src/css/primitives/container/container.style.ts +0 -10
- package/src/css/primitives/heading/heading.style.ts +0 -56
- package/src/css/primitives/kbd/kbd.style.ts +0 -19
- package/src/css/primitives/label/label.style.ts +0 -52
- package/src/css/primitives/popover/popover.style.ts +0 -9
- package/src/css/primitives/radio/radio.style.ts +0 -84
- package/src/css/primitives/select/select.style.ts +0 -24
- package/src/css/primitives/spinner/spinner.style.ts +0 -22
- package/src/css/primitives/stack/stack.style.ts +0 -13
- package/src/css/primitives/switch/switch.style.ts +0 -102
- package/src/css/primitives/text/text.style.ts +0 -65
- package/src/css/primitives/textArea/textArea.style.ts +0 -11
- package/src/css/primitives/textInput/textInput.style.ts +0 -46
- package/src/css/primitives/token/token.style.ts +0 -50
- package/src/css/primitives/tooltip/tooltip.style.ts +0 -9
- package/src/css/renderColor.ts +0 -31
- package/src/css/responsiveRules.ts +0 -18
- package/src/css/theme/index.ts +0 -14
- package/src/css/theme/lib/contract/buildVarContract.ts +0 -76
- package/src/css/theme/lib/contract/index.ts +0 -2
- package/src/css/theme/lib/contract/types.ts +0 -15
- package/src/css/theme/resolveTheme.ts +0 -863
- package/src/css/utils/srOnly/srOnly.style.ts +0 -14
- package/src/css/{aspects → props}/border/index.ts +0 -0
- package/src/css/{aspects → props}/boxSizing/index.ts +0 -0
- package/src/css/{aspects → props}/display/index.ts +0 -0
- package/src/css/{aspects → props}/display/types.ts +0 -0
- package/src/css/{aspects → props}/flex/index.ts +0 -0
- package/src/css/{aspects → props}/font/index.ts +0 -0
- package/src/css/{aspects → props}/font/types.ts +0 -0
- package/src/css/{aspects → props}/gap/index.ts +0 -0
- package/src/css/{aspects → props}/gap/types.ts +0 -0
- package/src/css/{aspects → props}/inset/index.ts +0 -0
- package/src/css/{aspects → props}/inset/types.ts +0 -0
- package/src/css/{aspects → props}/margin/index.ts +0 -0
- package/src/css/{aspects → props}/margin/types.ts +2 -2
- /package/src/css/{aspects → props}/maxWidth/index.ts +0 -0
- /package/src/css/{aspects → props}/minHeight/index.ts +0 -0
- /package/src/css/{aspects → props}/minHeight/types.ts +0 -0
- /package/src/css/{aspects → props}/minWidth/index.ts +0 -0
- /package/src/css/{aspects → props}/minWidth/types.ts +0 -0
- /package/src/css/{aspects → props}/overflow/index.ts +0 -0
- /package/src/css/{aspects → props}/padding/index.ts +0 -0
- /package/src/css/{aspects → props}/pointerEvents/index.ts +0 -0
- /package/src/css/{aspects → props}/pointerEvents/types.ts +0 -0
- /package/src/css/{aspects → props}/position/index.ts +0 -0
- /package/src/css/{aspects → props}/position/types.ts +0 -0
- /package/src/css/{aspects → props}/radius/index.ts +0 -0
- /package/src/css/{aspects → props}/radius/types.ts +0 -0
- /package/src/css/{aspects → props}/shadow/index.ts +0 -0
- /package/src/css/{aspects → props}/shadow/types.ts +0 -0
- /package/src/css/{aspects → props}/textAlign/index.ts +0 -0
- /package/src/css/{aspects → props}/textAlign/types.ts +0 -0
- /package/src/css/{aspects → props}/textOverflow/index.ts +0 -0
- /package/src/css/{aspects → props}/width/index.ts +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {type ResponsiveProp, textSkeleton} from '@sanity/ui/css'
|
|
2
2
|
import type {FontTextSize} from '@sanity/ui/theme'
|
|
3
3
|
|
|
4
4
|
import type {Props} from '../../types'
|
|
5
5
|
import {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'
|
|
6
6
|
|
|
7
|
-
/** @
|
|
7
|
+
/** @beta */
|
|
8
8
|
export const DEFAULT_TEXT_SKELETON_ELEMENT = 'div'
|
|
9
9
|
|
|
10
10
|
/** @beta */
|
|
@@ -12,7 +12,7 @@ export type TextSkeletonOwnProps = SkeletonOwnProps & {
|
|
|
12
12
|
size?: ResponsiveProp<FontTextSize>
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
/** @
|
|
15
|
+
/** @beta */
|
|
16
16
|
export type TextSkeletonElementType = SkeletonElementType
|
|
17
17
|
|
|
18
18
|
/**
|
|
@@ -40,14 +40,10 @@ export function TextSkeleton<
|
|
|
40
40
|
return (
|
|
41
41
|
<Skeleton
|
|
42
42
|
{...rest}
|
|
43
|
-
className={
|
|
43
|
+
className={textSkeleton({
|
|
44
44
|
className,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}),
|
|
48
|
-
)}
|
|
45
|
+
size,
|
|
46
|
+
})}
|
|
49
47
|
/>
|
|
50
48
|
)
|
|
51
49
|
}
|
|
52
|
-
|
|
53
|
-
TextSkeleton.displayName = 'TextSkeleton'
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import {CloseIcon} from '@sanity/icons'
|
|
2
|
-
import {
|
|
3
|
-
type RadiusStyleProps,
|
|
4
|
-
toast,
|
|
5
|
-
toastLoadingBar,
|
|
6
|
-
toastLoadingBarMask,
|
|
7
|
-
toastLoadingBarProgress,
|
|
8
|
-
} from '@sanity/ui/css'
|
|
2
|
+
import {type RadiusStyleProps, toast} from '@sanity/ui/css'
|
|
9
3
|
import {motion, type Variant, type Variants} from 'framer-motion'
|
|
10
4
|
import type {ReactNode} from 'react'
|
|
11
5
|
|
|
@@ -23,7 +17,9 @@ export type ToastOwnProps = RadiusStyleProps & {
|
|
|
23
17
|
onClose?: () => void
|
|
24
18
|
title?: ReactNode
|
|
25
19
|
status?: 'error' | 'warning' | 'success' | 'info'
|
|
20
|
+
/** @deprecated */
|
|
26
21
|
duration?: number
|
|
22
|
+
/** @deprecated */
|
|
27
23
|
updatedAt?: number
|
|
28
24
|
}
|
|
29
25
|
|
|
@@ -54,10 +50,6 @@ const BUTTON_TONE = {
|
|
|
54
50
|
info: 'neutral',
|
|
55
51
|
} as const
|
|
56
52
|
|
|
57
|
-
// Support pattern used by Sanity Studio, that works around the lack of `duration: Infinity` support in older @sanity/ui versions
|
|
58
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value
|
|
59
|
-
const LONG_ENOUGH_BUT_NOT_TOO_LONG = 1000 * 60 * 60 * 24 * 24
|
|
60
|
-
|
|
61
53
|
/**
|
|
62
54
|
* The `Toast` component gives feedback to users when an action has taken place.
|
|
63
55
|
*
|
|
@@ -72,11 +64,13 @@ export function Toast<E extends ToastElementType = typeof DEFAULT_TOAST_ELEMENT>
|
|
|
72
64
|
as = DEFAULT_TOAST_ELEMENT,
|
|
73
65
|
closable,
|
|
74
66
|
description,
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
75
68
|
duration,
|
|
76
69
|
onClose,
|
|
77
70
|
radius = 3,
|
|
78
71
|
title,
|
|
79
72
|
status,
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
80
74
|
updatedAt,
|
|
81
75
|
...rest
|
|
82
76
|
} = props as ToastProps<typeof DEFAULT_TOAST_ELEMENT>
|
|
@@ -90,7 +84,7 @@ export function Toast<E extends ToastElementType = typeof DEFAULT_TOAST_ELEMENT>
|
|
|
90
84
|
const visualDuration: number = prefersReducedMotion ? 0 : 0.26
|
|
91
85
|
const transition = visualDuration ? {type: 'spring', visualDuration, bounce: 0.25} : {duration: 0}
|
|
92
86
|
|
|
93
|
-
const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG
|
|
87
|
+
// const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG
|
|
94
88
|
const initial: ContainerVariants[] = ['hidden', 'initial']
|
|
95
89
|
const animate: ContainerVariants[] = ['visible', 'slideIn']
|
|
96
90
|
const exit: ContainerVariants[] = ['hidden', 'slideOut']
|
|
@@ -102,7 +96,6 @@ export function Toast<E extends ToastElementType = typeof DEFAULT_TOAST_ELEMENT>
|
|
|
102
96
|
data-ui="Toast"
|
|
103
97
|
role={role}
|
|
104
98
|
{...rest}
|
|
105
|
-
data-has-duration={hasDuration ? '' : undefined}
|
|
106
99
|
custom={visualDuration}
|
|
107
100
|
radius={radius}
|
|
108
101
|
shadow={2}
|
|
@@ -145,32 +138,10 @@ export function Toast<E extends ToastElementType = typeof DEFAULT_TOAST_ELEMENT>
|
|
|
145
138
|
</Box>
|
|
146
139
|
)}
|
|
147
140
|
</MotionFlex>
|
|
148
|
-
{hasDuration && (
|
|
149
|
-
<MotionBox className={toastLoadingBar()} variants={content} transition={transition}>
|
|
150
|
-
<Card className={toastLoadingBarMask()} tone={cardTone} radius={radius} />
|
|
151
|
-
<MotionCard
|
|
152
|
-
// const MotionToast = motion.create(Card) // StyledToast
|
|
153
|
-
// const MotionFlex = motion.create(Flex)
|
|
154
|
-
// const MotionText = motion.create(Text)
|
|
155
|
-
// const MotionLoadingBar = motion.create(Box) // LoadingBar
|
|
156
|
-
// const MotionLoadingBarProgress = motion.create(Card)
|
|
157
|
-
|
|
158
|
-
className={toastLoadingBarProgress()}
|
|
159
|
-
key={`progress-${updatedAt}`}
|
|
160
|
-
tone={cardTone}
|
|
161
|
-
initial={{scaleX: 0}}
|
|
162
|
-
animate={{scaleX: 1}}
|
|
163
|
-
transition={{delay: visualDuration, duration: duration / 1_000, ease: 'linear'}}
|
|
164
|
-
onAnimationComplete={onClose}
|
|
165
|
-
/>
|
|
166
|
-
</MotionBox>
|
|
167
|
-
)}
|
|
168
141
|
</MotionCard>
|
|
169
142
|
)
|
|
170
143
|
}
|
|
171
144
|
|
|
172
|
-
Toast.displayName = 'Toast'
|
|
173
|
-
|
|
174
145
|
const container = {
|
|
175
146
|
initial: {y: 32, scale: 0.5, zIndex: 1},
|
|
176
147
|
hidden: {opacity: 0},
|
|
@@ -212,4 +183,3 @@ const content = {
|
|
|
212
183
|
const MotionCard = motion.create(Card)
|
|
213
184
|
const MotionFlex = motion.create(Flex)
|
|
214
185
|
const MotionText = motion.create(Text)
|
|
215
|
-
const MotionBox = motion.create(Box)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type {ResponsiveProp} from '@sanity/ui/css'
|
|
1
2
|
import {AnimatePresence} from 'framer-motion'
|
|
2
3
|
import {startTransition, useMemo, useState} from 'react'
|
|
3
4
|
|
|
@@ -19,7 +20,7 @@ type ToastState = {
|
|
|
19
20
|
/** @public */
|
|
20
21
|
export interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {
|
|
21
22
|
children?: React.ReactNode
|
|
22
|
-
zOffset?: number
|
|
23
|
+
zOffset?: ResponsiveProp<number>
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
/** @public */
|
|
@@ -105,5 +106,3 @@ export function ToastProvider(props: ToastProviderProps): React.JSX.Element {
|
|
|
105
106
|
</ToastContext.Provider>
|
|
106
107
|
)
|
|
107
108
|
}
|
|
108
|
-
|
|
109
|
-
ToastProvider.displayName = 'ToastProvider'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {ToggleArrowRightIcon} from '@sanity/icons'
|
|
2
|
-
import {
|
|
2
|
+
import {type ResponsiveProp, treeItem, vars} from '@sanity/ui/css'
|
|
3
3
|
import type {FontTextSize, Space, ThemeFontWeightKey} from '@sanity/ui/theme'
|
|
4
4
|
import {
|
|
5
5
|
type ElementType,
|
|
@@ -166,7 +166,7 @@ export function TreeItem<E extends TreeItemElementType = typeof DEFAULT_TREE_ITE
|
|
|
166
166
|
data-ui="TreeItem"
|
|
167
167
|
{...(rest as BoxProps<'li'>)}
|
|
168
168
|
as="li"
|
|
169
|
-
className={
|
|
169
|
+
className={treeItem({className})}
|
|
170
170
|
onClick={handleClick}
|
|
171
171
|
ref={rootRef as Ref<HTMLLIElement>}
|
|
172
172
|
role="none"
|
|
@@ -203,7 +203,7 @@ export function TreeItem<E extends TreeItemElementType = typeof DEFAULT_TREE_ITE
|
|
|
203
203
|
data-tree-key={itemKey}
|
|
204
204
|
{...(rest as BoxProps<'a'>)}
|
|
205
205
|
aria-expanded={expanded}
|
|
206
|
-
className={
|
|
206
|
+
className={treeItem({className})}
|
|
207
207
|
onClick={handleClick}
|
|
208
208
|
onKeyDown={handleKeyDown}
|
|
209
209
|
ref={rootRef as Ref<HTMLAnchorElement>}
|
|
@@ -228,5 +228,3 @@ export function TreeItem<E extends TreeItemElementType = typeof DEFAULT_TREE_ITE
|
|
|
228
228
|
</Box>
|
|
229
229
|
)
|
|
230
230
|
}
|
|
231
|
-
|
|
232
|
-
TreeItem.displayName = 'TreeItem'
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
import type {Breakpoint, ResponsiveProp} from '@sanity/ui/css'
|
|
2
|
+
|
|
1
3
|
import {EMPTY_ARRAY} from '../constants'
|
|
4
|
+
import {isArray} from '../lib/isArray'
|
|
5
|
+
import {isRecord} from '../lib/isRecord'
|
|
2
6
|
|
|
3
7
|
/**
|
|
4
8
|
* @internal
|
|
@@ -8,3 +12,17 @@ export function _getArrayProp<T>(val: T | T[] | undefined, defaultVal?: T[]): T[
|
|
|
8
12
|
|
|
9
13
|
return Array.isArray(val) ? val : [val]
|
|
10
14
|
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
export function _getResponsiveProp<T>(
|
|
20
|
+
val: ResponsiveProp<T> | undefined,
|
|
21
|
+
defaultVal?: Partial<Record<Breakpoint, T>>,
|
|
22
|
+
): Partial<Record<Breakpoint, T>> {
|
|
23
|
+
if (val === undefined) {
|
|
24
|
+
return (defaultVal || EMPTY_ARRAY) as Partial<Record<Breakpoint, T>>
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return (isArray(val) || isRecord(val) ? val : [val]) as Partial<Record<Breakpoint, T>>
|
|
28
|
+
}
|
package/src/core/hooks/index.ts
CHANGED
|
@@ -2,14 +2,11 @@ import {useState} from 'react'
|
|
|
2
2
|
|
|
3
3
|
import {_getArrayProp} from '../helpers'
|
|
4
4
|
|
|
5
|
-
/** @beta */
|
|
6
|
-
// export type ArrayPropPrimitive = string | number | boolean | undefined | null
|
|
7
|
-
|
|
8
5
|
/**
|
|
9
6
|
* This API might change. DO NOT USE IN PRODUCTION.
|
|
10
7
|
* @beta
|
|
8
|
+
* @deprecated Use `useResponsiveProp` instead.
|
|
11
9
|
*/
|
|
12
|
-
// export function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(
|
|
13
10
|
export function useArrayProp<T>(val: T | T[] | undefined, defaultVal?: T[]): T[] {
|
|
14
11
|
const [[cachedVal, cachedHash], setCache] = useState<[T[], string]>(() => [
|
|
15
12
|
_getArrayProp(val, defaultVal),
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type {Breakpoint, ResponsiveProp} from '@sanity/ui/css'
|
|
2
|
+
import {useState} from 'react'
|
|
3
|
+
|
|
4
|
+
import {_getResponsiveProp} from '../helpers'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* This API might change. DO NOT USE IN PRODUCTION.
|
|
8
|
+
* @beta
|
|
9
|
+
*/
|
|
10
|
+
export function useResponsiveProp<T>(
|
|
11
|
+
val: ResponsiveProp<T> | undefined,
|
|
12
|
+
defaultVal?: Partial<Record<Breakpoint, T>>,
|
|
13
|
+
): Partial<Record<Breakpoint, T>> {
|
|
14
|
+
const [[cachedVal, cachedHash], setCache] = useState<[Partial<Record<Breakpoint, T>>, string]>(
|
|
15
|
+
() => [_getResponsiveProp(val, defaultVal), JSON.stringify(val ?? defaultVal)],
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
const hash = JSON.stringify(val ?? defaultVal)
|
|
19
|
+
|
|
20
|
+
if (hash !== cachedHash) {
|
|
21
|
+
// If the cached hash has changed, update the cache right away.
|
|
22
|
+
// Calling setState during render is fine in this case, and preferred over a useEffect loop
|
|
23
|
+
// https://19.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes
|
|
24
|
+
setCache([_getResponsiveProp(val, defaultVal), hash])
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return cachedVal
|
|
28
|
+
}
|
package/src/core/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {_selectable, type SelectableStyleProps} from '@sanity/ui/css'
|
|
2
2
|
|
|
3
3
|
import type {ComponentType, Props, SelectableTone} from '../../types'
|
|
4
4
|
import {Box, type BoxOwnProps} from '../box'
|
|
@@ -36,9 +36,5 @@ export function Selectable<E extends SelectableElementType = typeof DEFAULT_SELE
|
|
|
36
36
|
...rest
|
|
37
37
|
} = props as SelectableProps<typeof DEFAULT_SELECTABLE_ELEMENT>
|
|
38
38
|
|
|
39
|
-
return (
|
|
40
|
-
<Box {...rest} as={as} className={_composeClassNames(className, _selectable({radius, tone}))} />
|
|
41
|
-
)
|
|
39
|
+
return <Box {...rest} as={as} className={_selectable({className, radius, tone})} />
|
|
42
40
|
}
|
|
43
|
-
|
|
44
|
-
Selectable.displayName = 'Selectable'
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
|
-
_composeClassNames,
|
|
3
2
|
avatar,
|
|
4
3
|
avatarArrow,
|
|
5
4
|
avatarImage,
|
|
5
|
+
avatarImageOutline,
|
|
6
6
|
avatarInitials,
|
|
7
7
|
type ResponsiveProp,
|
|
8
8
|
} from '@sanity/ui/css'
|
|
9
|
-
import type {AvatarColor} from '@sanity/ui/theme'
|
|
9
|
+
import type {AvatarColor, FontLabelSize} from '@sanity/ui/theme'
|
|
10
10
|
import {useCallback, useEffect, useMemo, useState} from 'react'
|
|
11
11
|
|
|
12
|
-
import {
|
|
12
|
+
import {useResponsiveProp} from '../../hooks'
|
|
13
13
|
import type {AvatarPosition, AvatarSize, AvatarStatus, ComponentType, Props} from '../../types'
|
|
14
14
|
import {Box} from '../box'
|
|
15
15
|
import {Label} from '../label'
|
|
16
16
|
|
|
17
17
|
/** @public */
|
|
18
|
-
export const DEFAULT_AVATAR_ELEMENT = '
|
|
18
|
+
export const DEFAULT_AVATAR_ELEMENT = 'span'
|
|
19
19
|
|
|
20
20
|
/** @public */
|
|
21
21
|
export interface AvatarOwnProps {
|
|
@@ -67,7 +67,7 @@ export function Avatar<E extends AvatarElementType = typeof DEFAULT_AVATAR_ELEME
|
|
|
67
67
|
...rest
|
|
68
68
|
} = props as AvatarProps<typeof DEFAULT_AVATAR_ELEMENT>
|
|
69
69
|
|
|
70
|
-
const size =
|
|
70
|
+
const size = useResponsiveProp(sizeProp)
|
|
71
71
|
|
|
72
72
|
const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(
|
|
73
73
|
animateArrowFrom || arrowPositionProp || 'inside',
|
|
@@ -98,13 +98,13 @@ export function Avatar<E extends AvatarElementType = typeof DEFAULT_AVATAR_ELEME
|
|
|
98
98
|
|
|
99
99
|
const initialsSize = useMemo(
|
|
100
100
|
() =>
|
|
101
|
-
size.map((s) => {
|
|
102
|
-
if (s === 1) return 1
|
|
103
|
-
if (s === 2) return 3
|
|
104
|
-
if (s === 3) return 5
|
|
101
|
+
Object.values(size).map((s) => {
|
|
102
|
+
if (s === 1) return 1 satisfies FontLabelSize
|
|
103
|
+
if (s === 2) return 3 satisfies FontLabelSize
|
|
104
|
+
if (s === 3) return 5 satisfies FontLabelSize
|
|
105
105
|
|
|
106
|
-
return 0
|
|
107
|
-
})
|
|
106
|
+
return 0 satisfies FontLabelSize
|
|
107
|
+
}) as ResponsiveProp<FontLabelSize>,
|
|
108
108
|
[size],
|
|
109
109
|
)
|
|
110
110
|
|
|
@@ -114,7 +114,7 @@ export function Avatar<E extends AvatarElementType = typeof DEFAULT_AVATAR_ELEME
|
|
|
114
114
|
data-ui="Avatar"
|
|
115
115
|
{...rest}
|
|
116
116
|
aria-label={title}
|
|
117
|
-
className={
|
|
117
|
+
className={avatar({className, color, size: sizeProp})}
|
|
118
118
|
data-arrow-position={arrowPosition}
|
|
119
119
|
data-image-error={imageError ? '' : undefined}
|
|
120
120
|
title={title}
|
|
@@ -129,11 +129,11 @@ export function Avatar<E extends AvatarElementType = typeof DEFAULT_AVATAR_ELEME
|
|
|
129
129
|
</span>
|
|
130
130
|
|
|
131
131
|
<Box
|
|
132
|
-
|
|
132
|
+
alignItems="center"
|
|
133
133
|
as="span"
|
|
134
134
|
className={avatarInitials()}
|
|
135
135
|
display="flex"
|
|
136
|
-
|
|
136
|
+
justifyContent="center"
|
|
137
137
|
position="absolute"
|
|
138
138
|
inset={0}
|
|
139
139
|
>
|
|
@@ -145,11 +145,9 @@ export function Avatar<E extends AvatarElementType = typeof DEFAULT_AVATAR_ELEME
|
|
|
145
145
|
{src && (
|
|
146
146
|
<Box className={avatarImage()} inset={0} position="absolute">
|
|
147
147
|
<img alt={initials} onError={handleImageError} src={src} />
|
|
148
|
-
<span />
|
|
148
|
+
<span className={avatarImageOutline()} />
|
|
149
149
|
</Box>
|
|
150
150
|
)}
|
|
151
151
|
</Element>
|
|
152
152
|
)
|
|
153
153
|
}
|
|
154
|
-
|
|
155
|
-
Avatar.displayName = 'Avatar'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {avatarCounter, type ResponsiveProp} from '@sanity/ui/css'
|
|
2
2
|
import type {AvatarSize, FontLabelSize} from '@sanity/ui/theme'
|
|
3
3
|
import {useMemo} from 'react'
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import {useResponsiveProp} from '../../hooks'
|
|
6
6
|
import type {ComponentType, Props} from '../../types'
|
|
7
7
|
import {Box} from '../box'
|
|
8
8
|
import {Label} from '../label'
|
|
@@ -34,17 +34,17 @@ export function AvatarCounter<
|
|
|
34
34
|
size: sizeProp = 1,
|
|
35
35
|
...rest
|
|
36
36
|
} = props as AvatarCounterProps<typeof DEFAULT_AVATAR_COUNTER_ELEMENT>
|
|
37
|
-
const size =
|
|
37
|
+
const size = useResponsiveProp(sizeProp)
|
|
38
38
|
|
|
39
|
-
const labelSize
|
|
39
|
+
const labelSize = useMemo(
|
|
40
40
|
() =>
|
|
41
|
-
size.map((s) => {
|
|
42
|
-
if (s === 1) return 1
|
|
43
|
-
if (s === 2) return 3
|
|
44
|
-
if (s === 3) return 5
|
|
41
|
+
Object.values(size).map((s) => {
|
|
42
|
+
if (s === 1) return 1 satisfies FontLabelSize
|
|
43
|
+
if (s === 2) return 3 satisfies FontLabelSize
|
|
44
|
+
if (s === 3) return 5 satisfies FontLabelSize
|
|
45
45
|
|
|
46
|
-
return 0
|
|
47
|
-
})
|
|
46
|
+
return 0 satisfies FontLabelSize
|
|
47
|
+
}) as ResponsiveProp<FontLabelSize>,
|
|
48
48
|
[size],
|
|
49
49
|
)
|
|
50
50
|
|
|
@@ -52,11 +52,12 @@ export function AvatarCounter<
|
|
|
52
52
|
<Box
|
|
53
53
|
data-ui="AvatarCounter"
|
|
54
54
|
{...rest}
|
|
55
|
-
|
|
55
|
+
alignItems="center"
|
|
56
56
|
as={as}
|
|
57
|
-
className={
|
|
57
|
+
className={avatarCounter({className, size})}
|
|
58
58
|
display="flex"
|
|
59
|
-
|
|
59
|
+
flex="none"
|
|
60
|
+
justifyContent="center"
|
|
60
61
|
paddingX={2}
|
|
61
62
|
sizing="border"
|
|
62
63
|
>
|
|
@@ -66,5 +67,3 @@ export function AvatarCounter<
|
|
|
66
67
|
</Box>
|
|
67
68
|
)
|
|
68
69
|
}
|
|
69
|
-
|
|
70
|
-
AvatarCounter.displayName = 'AvatarCounter'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {avatarStack, type ResponsiveProp} from '@sanity/ui/css'
|
|
2
2
|
import type {AvatarSize} from '@sanity/ui/theme'
|
|
3
|
-
import {Children, cloneElement, isValidElement, type ReactElement} from 'react'
|
|
3
|
+
import {Children, cloneElement, Fragment, isValidElement, type ReactElement} from 'react'
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import {useResponsiveProp} from '../../hooks'
|
|
6
6
|
import type {ComponentType, Props} from '../../types'
|
|
7
7
|
import {Box, type BoxOwnProps} from '../box'
|
|
8
8
|
import type {AvatarProps} from './avatar'
|
|
@@ -15,7 +15,10 @@ export const DEFAULT_AVATAR_STACK_ELEMENT = 'div'
|
|
|
15
15
|
export type AvatarStackChild = ReactElement<AvatarProps<'div'>> | null | undefined | false
|
|
16
16
|
|
|
17
17
|
/** @public */
|
|
18
|
-
export type AvatarStackOwnProps = Omit<
|
|
18
|
+
export type AvatarStackOwnProps = Omit<
|
|
19
|
+
BoxOwnProps,
|
|
20
|
+
'align' | 'alignItems' | 'display' | 'justify' | 'justifyContent'
|
|
21
|
+
> & {
|
|
19
22
|
children: AvatarStackChild | AvatarStackChild[]
|
|
20
23
|
maxLength?: number
|
|
21
24
|
size?: ResponsiveProp<AvatarSize>
|
|
@@ -49,7 +52,7 @@ export function AvatarStack<E extends AvatarStackElementType = typeof DEFAULT_AV
|
|
|
49
52
|
AvatarProps<'div'>
|
|
50
53
|
>[]
|
|
51
54
|
const maxLength = Math.max(maxLengthProp, 0)
|
|
52
|
-
const size =
|
|
55
|
+
const size = useResponsiveProp(sizeProp)
|
|
53
56
|
|
|
54
57
|
const len = children.length
|
|
55
58
|
const visibleCount = maxLength - 1
|
|
@@ -60,30 +63,19 @@ export function AvatarStack<E extends AvatarStackElementType = typeof DEFAULT_AV
|
|
|
60
63
|
<Box
|
|
61
64
|
data-ui="AvatarStack"
|
|
62
65
|
{...rest}
|
|
63
|
-
|
|
66
|
+
alignItems="center"
|
|
64
67
|
as={as}
|
|
65
|
-
className={
|
|
68
|
+
className={avatarStack({className, size})}
|
|
66
69
|
display="flex"
|
|
70
|
+
justifyContent="flex-start"
|
|
67
71
|
>
|
|
68
|
-
{len === 0 &&
|
|
69
|
-
<Box flex="none">
|
|
70
|
-
<AvatarCounter count={len} size={size} />
|
|
71
|
-
</Box>
|
|
72
|
-
)}
|
|
72
|
+
{len === 0 && <AvatarCounter count={len} size={size} />}
|
|
73
73
|
|
|
74
|
-
{len !== 0 && extraCount > 1 &&
|
|
75
|
-
<Box flex="none">
|
|
76
|
-
<AvatarCounter count={extraCount} size={size} />
|
|
77
|
-
</Box>
|
|
78
|
-
)}
|
|
74
|
+
{len !== 0 && extraCount > 1 && <AvatarCounter count={extraCount} size={size} />}
|
|
79
75
|
|
|
80
76
|
{visibleChildren.map((child, childIndex) => (
|
|
81
|
-
<
|
|
82
|
-
{cloneElement(child, {size})}
|
|
83
|
-
</Box>
|
|
77
|
+
<Fragment key={String(childIndex)}>{cloneElement(child, {size})}</Fragment>
|
|
84
78
|
))}
|
|
85
79
|
</Box>
|
|
86
80
|
)
|
|
87
81
|
}
|
|
88
|
-
|
|
89
|
-
AvatarStack.displayName = 'AvatarStack'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type {PaddingStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'
|
|
2
|
-
import {
|
|
2
|
+
import {badge} from '@sanity/ui/css'
|
|
3
3
|
import type {FontTextSize} from '@sanity/ui/theme'
|
|
4
4
|
|
|
5
5
|
import type {BadgeTone, ComponentType, Props} from '../../types'
|
|
@@ -46,20 +46,13 @@ export function Badge<E extends BadgeElementType = typeof DEFAULT_BADGE_ELEMENT>
|
|
|
46
46
|
data-ui="Badge"
|
|
47
47
|
{...rest}
|
|
48
48
|
as={as}
|
|
49
|
-
className={
|
|
50
|
-
className,
|
|
51
|
-
badge({
|
|
52
|
-
radius,
|
|
53
|
-
tone,
|
|
54
|
-
}),
|
|
55
|
-
)}
|
|
49
|
+
className={badge({className, tone})}
|
|
56
50
|
display="inline-flex"
|
|
57
51
|
maxWidth="fill"
|
|
58
52
|
padding={padding}
|
|
53
|
+
radius={radius}
|
|
59
54
|
>
|
|
60
55
|
<Text size={fontSize}>{children}</Text>
|
|
61
56
|
</Box>
|
|
62
57
|
)
|
|
63
58
|
}
|
|
64
|
-
|
|
65
|
-
Badge.displayName = 'Badge'
|