@sanity/ui 3.3.2 → 3.3.3
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/package.json +6 -11
- package/exports/_visual-editing.ts +0 -32
- package/exports/index.ts +0 -1
- package/exports/theme.ts +0 -1
- package/src/core/_compat.ts +0 -294
- package/src/core/components/autocomplete/autocomplete.styles.tsx +0 -39
- package/src/core/components/autocomplete/autocomplete.tsx +0 -775
- package/src/core/components/autocomplete/autocompleteOption.tsx +0 -46
- package/src/core/components/autocomplete/autocompleteReducer.ts +0 -47
- package/src/core/components/autocomplete/constants.ts +0 -28
- package/src/core/components/autocomplete/index.ts +0 -2
- package/src/core/components/autocomplete/types.ts +0 -108
- package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +0 -18
- package/src/core/components/breadcrumbs/breadcrumbs.test.tsx +0 -54
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +0 -136
- package/src/core/components/breadcrumbs/index.ts +0 -1
- package/src/core/components/dialog/dialog.tsx +0 -433
- package/src/core/components/dialog/dialogContext.ts +0 -20
- package/src/core/components/dialog/dialogProvider.tsx +0 -35
- package/src/core/components/dialog/index.ts +0 -4
- package/src/core/components/dialog/styles.ts +0 -77
- package/src/core/components/dialog/useDialog.ts +0 -11
- package/src/core/components/hotkeys/hotkeys.test.tsx +0 -47
- package/src/core/components/hotkeys/hotkeys.tsx +0 -68
- package/src/core/components/hotkeys/index.ts +0 -1
- package/src/core/components/index.ts +0 -9
- package/src/core/components/menu/helpers.ts +0 -82
- package/src/core/components/menu/index.ts +0 -5
- package/src/core/components/menu/menu.spacing.test.tsx +0 -68
- package/src/core/components/menu/menu.test.tsx +0 -128
- package/src/core/components/menu/menu.tsx +0 -180
- package/src/core/components/menu/menuButton.tsx +0 -276
- package/src/core/components/menu/menuContext.ts +0 -18
- package/src/core/components/menu/menuDivider.ts +0 -24
- package/src/core/components/menu/menuGroup.spacing.test.tsx +0 -66
- package/src/core/components/menu/menuGroup.tsx +0 -237
- package/src/core/components/menu/menuItem.spacing.test.tsx +0 -62
- package/src/core/components/menu/menuItem.tsx +0 -201
- package/src/core/components/menu/useMenu.ts +0 -21
- package/src/core/components/menu/useMenuController.ts +0 -233
- package/src/core/components/skeleton/index.ts +0 -2
- package/src/core/components/skeleton/skeleton.tsx +0 -58
- package/src/core/components/skeleton/styles.ts +0 -50
- package/src/core/components/skeleton/textSkeleton.tsx +0 -122
- package/src/core/components/tab/index.ts +0 -3
- package/src/core/components/tab/tab.tsx +0 -102
- package/src/core/components/tab/tabList.test.tsx +0 -50
- package/src/core/components/tab/tabList.tsx +0 -71
- package/src/core/components/tab/tabPanel.tsx +0 -39
- package/src/core/components/toast/index.ts +0 -4
- package/src/core/components/toast/styles.ts +0 -77
- package/src/core/components/toast/toast.test.tsx +0 -106
- package/src/core/components/toast/toast.tsx +0 -199
- package/src/core/components/toast/toastContext.ts +0 -7
- package/src/core/components/toast/toastLayer.tsx +0 -52
- package/src/core/components/toast/toastProvider.tsx +0 -113
- package/src/core/components/toast/toastState.ts +0 -6
- package/src/core/components/toast/types.ts +0 -26
- package/src/core/components/toast/useToast.ts +0 -25
- package/src/core/components/tree/helpers.ts +0 -105
- package/src/core/components/tree/index.ts +0 -4
- package/src/core/components/tree/style.ts +0 -105
- package/src/core/components/tree/tree.test.tsx +0 -60
- package/src/core/components/tree/tree.tsx +0 -242
- package/src/core/components/tree/treeContext.ts +0 -10
- package/src/core/components/tree/treeGroup.tsx +0 -29
- package/src/core/components/tree/treeItem.test.tsx +0 -70
- package/src/core/components/tree/treeItem.tsx +0 -225
- package/src/core/components/tree/types.ts +0 -25
- package/src/core/components/tree/useTree.ts +0 -17
- package/src/core/constants.ts +0 -79
- package/src/core/helpers/animation.ts +0 -27
- package/src/core/helpers/element.ts +0 -55
- package/src/core/helpers/focus.ts +0 -100
- package/src/core/helpers/index.ts +0 -4
- package/src/core/helpers/scroll.ts +0 -15
- package/src/core/hooks/index.ts +0 -13
- package/src/core/hooks/useArrayProp.ts +0 -17
- package/src/core/hooks/useClickOutside.test.tsx +0 -510
- package/src/core/hooks/useClickOutside.ts +0 -118
- package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -119
- package/src/core/hooks/useClickOutsideEvent.ts +0 -73
- package/src/core/hooks/useCustomValidity.ts +0 -13
- package/src/core/hooks/useDelayed.test.ts +0 -89
- package/src/core/hooks/useDelayedState.ts +0 -36
- package/src/core/hooks/useElementRect/index.ts +0 -1
- package/src/core/hooks/useElementRect/useElementRect.ts +0 -14
- package/src/core/hooks/useElementSize.ts +0 -19
- package/src/core/hooks/useForwardedRef.ts +0 -20
- package/src/core/hooks/useGlobalKeyDown.ts +0 -24
- package/src/core/hooks/useIsomorphicEffect.ts +0 -7
- package/src/core/hooks/useMatchMedia.ts +0 -28
- package/src/core/hooks/useMediaIndex/index.ts +0 -1
- package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -37
- package/src/core/hooks/useMediaIndex/useMediaIndex.ts +0 -102
- package/src/core/hooks/useMounted.ts +0 -15
- package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -58
- package/src/core/hooks/usePrefersDark.test.tsx +0 -21
- package/src/core/hooks/usePrefersDark.ts +0 -16
- package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -58
- package/src/core/hooks/usePrefersReducedMotion.test.tsx +0 -21
- package/src/core/hooks/usePrefersReducedMotion.ts +0 -16
- package/src/core/index.ts +0 -10
- package/src/core/lib/createGlobalScopedContext.ts +0 -37
- package/src/core/lib/globalScope.ts +0 -20
- package/src/core/lib/isRecord.ts +0 -3
- package/src/core/middleware/origin.ts +0 -47
- package/src/core/observers/elementSizeObserver.ts +0 -117
- package/src/core/observers/index.ts +0 -2
- package/src/core/observers/resizeObserver.ts +0 -9
- package/src/core/primitives/_selectable/index.ts +0 -1
- package/src/core/primitives/_selectable/selectable.tsx +0 -15
- package/src/core/primitives/_selectable/style.ts +0 -115
- package/src/core/primitives/avatar/avatar.tsx +0 -200
- package/src/core/primitives/avatar/avatarCounter.tsx +0 -91
- package/src/core/primitives/avatar/avatarStack.tsx +0 -101
- package/src/core/primitives/avatar/index.ts +0 -4
- package/src/core/primitives/avatar/styles.ts +0 -167
- package/src/core/primitives/avatar/types.ts +0 -17
- package/src/core/primitives/badge/badge.test.tsx +0 -17
- package/src/core/primitives/badge/badge.tsx +0 -72
- package/src/core/primitives/badge/index.ts +0 -1
- package/src/core/primitives/badge/styles.ts +0 -20
- package/src/core/primitives/badge/types.ts +0 -8
- package/src/core/primitives/box/box.test.tsx +0 -155
- package/src/core/primitives/box/box.tsx +0 -162
- package/src/core/primitives/box/index.ts +0 -1
- package/src/core/primitives/button/button.test.tsx +0 -86
- package/src/core/primitives/button/button.tsx +0 -214
- package/src/core/primitives/button/index.ts +0 -1
- package/src/core/primitives/button/styles.ts +0 -118
- package/src/core/primitives/card/card.tsx +0 -125
- package/src/core/primitives/card/index.ts +0 -2
- package/src/core/primitives/card/styles.ts +0 -147
- package/src/core/primitives/card/types.ts +0 -12
- package/src/core/primitives/checkbox/checkbox.tsx +0 -73
- package/src/core/primitives/checkbox/index.ts +0 -1
- package/src/core/primitives/checkbox/styles.ts +0 -128
- package/src/core/primitives/code/code.tsx +0 -56
- package/src/core/primitives/code/index.ts +0 -1
- package/src/core/primitives/code/refractor.tsx +0 -22
- package/src/core/primitives/code/styles.ts +0 -77
- package/src/core/primitives/container/container.tsx +0 -55
- package/src/core/primitives/container/index.ts +0 -2
- package/src/core/primitives/container/styles.ts +0 -23
- package/src/core/primitives/container/types.ts +0 -6
- package/src/core/primitives/flex/flex.tsx +0 -63
- package/src/core/primitives/flex/index.ts +0 -1
- package/src/core/primitives/grid/grid.test.tsx +0 -86
- package/src/core/primitives/grid/grid.tsx +0 -77
- package/src/core/primitives/grid/index.ts +0 -1
- package/src/core/primitives/heading/heading.tsx +0 -89
- package/src/core/primitives/heading/index.ts +0 -1
- package/src/core/primitives/heading/styles.ts +0 -64
- package/src/core/primitives/heading/types.ts +0 -7
- package/src/core/primitives/index.ts +0 -27
- package/src/core/primitives/inline/index.ts +0 -1
- package/src/core/primitives/inline/inline.test.tsx +0 -55
- package/src/core/primitives/inline/inline.tsx +0 -66
- package/src/core/primitives/inline/styles.ts +0 -32
- package/src/core/primitives/inline/types.ts +0 -6
- package/src/core/primitives/kbd/index.ts +0 -1
- package/src/core/primitives/kbd/kbd.tsx +0 -73
- package/src/core/primitives/label/index.ts +0 -1
- package/src/core/primitives/label/label.tsx +0 -88
- package/src/core/primitives/label/styles.ts +0 -45
- package/src/core/primitives/popover/constants.ts +0 -22
- package/src/core/primitives/popover/floating-ui/size.ts +0 -99
- package/src/core/primitives/popover/helpers.ts +0 -31
- package/src/core/primitives/popover/index.ts +0 -2
- package/src/core/primitives/popover/popover.tsx +0 -512
- package/src/core/primitives/popover/popoverCard.tsx +0 -167
- package/src/core/primitives/popover/types.ts +0 -6
- package/src/core/primitives/radio/index.ts +0 -1
- package/src/core/primitives/radio/radio.tsx +0 -51
- package/src/core/primitives/radio/styles.ts +0 -117
- package/src/core/primitives/select/index.ts +0 -1
- package/src/core/primitives/select/select.test.tsx +0 -56
- package/src/core/primitives/select/select.tsx +0 -95
- package/src/core/primitives/select/styles.ts +0 -166
- package/src/core/primitives/spinner/index.ts +0 -1
- package/src/core/primitives/spinner/spinner.tsx +0 -46
- package/src/core/primitives/stack/index.ts +0 -1
- package/src/core/primitives/stack/stack.test.tsx +0 -61
- package/src/core/primitives/stack/stack.tsx +0 -59
- package/src/core/primitives/stack/styles.ts +0 -33
- package/src/core/primitives/switch/index.ts +0 -1
- package/src/core/primitives/switch/styles.ts +0 -173
- package/src/core/primitives/switch/switch.tsx +0 -68
- package/src/core/primitives/text/index.ts +0 -1
- package/src/core/primitives/text/styles.ts +0 -74
- package/src/core/primitives/text/text.tsx +0 -90
- package/src/core/primitives/textArea/index.ts +0 -1
- package/src/core/primitives/textArea/textArea.tsx +0 -120
- package/src/core/primitives/textInput/index.ts +0 -1
- package/src/core/primitives/textInput/textInput.test.tsx +0 -52
- package/src/core/primitives/textInput/textInput.tsx +0 -398
- package/src/core/primitives/tooltip/constants.ts +0 -23
- package/src/core/primitives/tooltip/index.ts +0 -2
- package/src/core/primitives/tooltip/tooltip.test.tsx +0 -485
- package/src/core/primitives/tooltip/tooltip.tsx +0 -497
- package/src/core/primitives/tooltip/tooltipCard.tsx +0 -110
- package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -11
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -57
- package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -12
- package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
- package/src/core/primitives/types.ts +0 -179
- package/src/core/styles/border/borderStyle.ts +0 -56
- package/src/core/styles/border/index.ts +0 -2
- package/src/core/styles/border/types.ts +0 -10
- package/src/core/styles/box/boxStyle.ts +0 -69
- package/src/core/styles/box/index.ts +0 -2
- package/src/core/styles/box/types.ts +0 -11
- package/src/core/styles/card/_cardColorStyle.ts +0 -108
- package/src/core/styles/card/index.ts +0 -1
- package/src/core/styles/flex/flexItemStyle.ts +0 -27
- package/src/core/styles/flex/flexStyle.ts +0 -70
- package/src/core/styles/flex/index.ts +0 -3
- package/src/core/styles/flex/types.ts +0 -24
- package/src/core/styles/focusRing/index.ts +0 -25
- package/src/core/styles/font/codeFontStyle.ts +0 -13
- package/src/core/styles/font/headingFontStyle.ts +0 -13
- package/src/core/styles/font/index.ts +0 -6
- package/src/core/styles/font/labelFontStyle.ts +0 -13
- package/src/core/styles/font/responsiveFont.ts +0 -100
- package/src/core/styles/font/textAlignStyle.ts +0 -19
- package/src/core/styles/font/textFontStyle.ts +0 -13
- package/src/core/styles/font/types.ts +0 -33
- package/src/core/styles/grid/gridItemStyle.ts +0 -82
- package/src/core/styles/grid/gridStyle.ts +0 -109
- package/src/core/styles/grid/index.ts +0 -3
- package/src/core/styles/grid/types.ts +0 -37
- package/src/core/styles/helpers.ts +0 -72
- package/src/core/styles/index.ts +0 -5
- package/src/core/styles/input/index.ts +0 -2
- package/src/core/styles/input/responsiveInputPaddingStyle.ts +0 -78
- package/src/core/styles/input/textInputStyle.ts +0 -263
- package/src/core/styles/internal.ts +0 -12
- package/src/core/styles/margin/index.ts +0 -2
- package/src/core/styles/margin/marginStyle.ts +0 -22
- package/src/core/styles/margin/marginsStyle.test.ts +0 -34
- package/src/core/styles/margin/types.ts +0 -9
- package/src/core/styles/padding/index.ts +0 -2
- package/src/core/styles/padding/paddingStyle.test.ts +0 -34
- package/src/core/styles/padding/paddingStyle.ts +0 -22
- package/src/core/styles/padding/types.ts +0 -12
- package/src/core/styles/radius/index.ts +0 -2
- package/src/core/styles/radius/radiusStyle.ts +0 -23
- package/src/core/styles/radius/types.ts +0 -8
- package/src/core/styles/shadow/index.ts +0 -2
- package/src/core/styles/shadow/shadowStyle.ts +0 -29
- package/src/core/styles/shadow/types.ts +0 -6
- package/src/core/styles/types.ts +0 -8
- package/src/core/theme/index.ts +0 -5
- package/src/core/theme/theme.test.tsx +0 -77
- package/src/core/theme/themeColorProvider.tsx +0 -29
- package/src/core/theme/themeContext.ts +0 -10
- package/src/core/theme/themeProvider.tsx +0 -62
- package/src/core/theme/types.ts +0 -12
- package/src/core/theme/useRootTheme.ts +0 -18
- package/src/core/theme/useTheme.ts +0 -18
- package/src/core/types/avatar.ts +0 -14
- package/src/core/types/badge.ts +0 -12
- package/src/core/types/box.ts +0 -19
- package/src/core/types/button.ts +0 -21
- package/src/core/types/card.ts +0 -6
- package/src/core/types/component.ts +0 -32
- package/src/core/types/dialog.ts +0 -4
- package/src/core/types/flex.ts +0 -30
- package/src/core/types/grid.ts +0 -14
- package/src/core/types/gridItem.ts +0 -29
- package/src/core/types/index.ts +0 -15
- package/src/core/types/placement.ts +0 -18
- package/src/core/types/popover.ts +0 -4
- package/src/core/types/radius.ts +0 -4
- package/src/core/types/selectable.ts +0 -6
- package/src/core/types/text.ts +0 -4
- package/src/core/utils/arrow/arrow.tsx +0 -124
- package/src/core/utils/arrow/cmds.ts +0 -91
- package/src/core/utils/arrow/index.ts +0 -1
- package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -105
- package/src/core/utils/boundaryElement/boundaryElementContext.ts +0 -7
- package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
- package/src/core/utils/boundaryElement/index.ts +0 -3
- package/src/core/utils/boundaryElement/types.ts +0 -7
- package/src/core/utils/boundaryElement/useBoundaryElement.ts +0 -26
- package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -22
- package/src/core/utils/conditionalWrapper/index.ts +0 -1
- package/src/core/utils/elementQuery/elementQuery.tsx +0 -53
- package/src/core/utils/elementQuery/helpers.ts +0 -27
- package/src/core/utils/elementQuery/index.ts +0 -1
- package/src/core/utils/errorBoundary.tsx +0 -48
- package/src/core/utils/getElementRef.ts +0 -31
- package/src/core/utils/index.ts +0 -9
- package/src/core/utils/layer/getLayerContext.test.ts +0 -32
- package/src/core/utils/layer/getLayerContext.ts +0 -21
- package/src/core/utils/layer/index.ts +0 -4
- package/src/core/utils/layer/layer.test.tsx +0 -113
- package/src/core/utils/layer/layer.tsx +0 -99
- package/src/core/utils/layer/layerContext.ts +0 -7
- package/src/core/utils/layer/layerProvider.tsx +0 -111
- package/src/core/utils/layer/types.ts +0 -9
- package/src/core/utils/layer/useLayer.ts +0 -28
- package/src/core/utils/portal/index.ts +0 -4
- package/src/core/utils/portal/portal.test.tsx +0 -108
- package/src/core/utils/portal/portal.ts +0 -32
- package/src/core/utils/portal/portalContext.ts +0 -31
- package/src/core/utils/portal/portalProvider.tsx +0 -48
- package/src/core/utils/portal/types.ts +0 -9
- package/src/core/utils/portal/usePortal.ts +0 -25
- package/src/core/utils/spanWithTextOverflow.tsx +0 -10
- package/src/core/utils/srOnly/index.ts +0 -1
- package/src/core/utils/srOnly/srOnly.tsx +0 -36
- package/src/core/utils/virtualList/index.ts +0 -1
- package/src/core/utils/virtualList/virtualList.tsx +0 -201
- package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -86
- package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +0 -58
- package/src/theme/build/_deprecated/color/button/createButtonModes.ts +0 -27
- package/src/theme/build/_deprecated/color/button/createButtonTones.ts +0 -60
- package/src/theme/build/_deprecated/color/card/createCardStates.ts +0 -66
- package/src/theme/build/_deprecated/color/color.test.ts +0 -67
- package/src/theme/build/_deprecated/color/defaults.ts +0 -391
- package/src/theme/build/_deprecated/color/factory.ts +0 -178
- package/src/theme/build/_deprecated/color/index.ts +0 -1
- package/src/theme/build/_deprecated/color/input/createInputModes.ts +0 -86
- package/src/theme/build/_deprecated/color/muted/createMuted.ts +0 -58
- package/src/theme/build/_deprecated/color/spot/createSpot.ts +0 -23
- package/src/theme/build/buildColorTheme.test.ts +0 -185
- package/src/theme/build/buildColorTheme.ts +0 -507
- package/src/theme/build/buildTheme.test.ts +0 -89
- package/src/theme/build/buildTheme.ts +0 -36
- package/src/theme/build/colorToken/colorToken.ts +0 -19
- package/src/theme/build/colorToken/compileColorToken.ts +0 -21
- package/src/theme/build/colorToken/index.ts +0 -2
- package/src/theme/build/colorToken/types.ts +0 -6
- package/src/theme/build/index.ts +0 -3
- package/src/theme/build/lib/color-fns/blend/index.ts +0 -3
- package/src/theme/build/lib/color-fns/blend/mix.ts +0 -21
- package/src/theme/build/lib/color-fns/blend/multiply.ts +0 -18
- package/src/theme/build/lib/color-fns/blend/screen.ts +0 -18
- package/src/theme/build/lib/color-fns/color-fns.test.ts +0 -70
- package/src/theme/build/lib/color-fns/contrastRatio.ts +0 -31
- package/src/theme/build/lib/color-fns/convert.ts +0 -150
- package/src/theme/build/lib/color-fns/index.ts +0 -6
- package/src/theme/build/lib/color-fns/parse.ts +0 -60
- package/src/theme/build/lib/color-fns/rgba.ts +0 -10
- package/src/theme/build/lib/color-fns/types.ts +0 -28
- package/src/theme/build/lib/isRecord.ts +0 -3
- package/src/theme/build/lib/lazy.ts +0 -30
- package/src/theme/build/lib/utils.ts +0 -19
- package/src/theme/build/merge.ts +0 -31
- package/src/theme/build/mixThemeColor.test.ts +0 -23
- package/src/theme/build/mixThemeColor.ts +0 -53
- package/src/theme/build/renderColorTheme.ts +0 -538
- package/src/theme/build/renderColorValue.ts +0 -83
- package/src/theme/build/resolveColorTokens.ts +0 -274
- package/src/theme/build/theme.test.ts +0 -29
- package/src/theme/config/helpers.ts +0 -60
- package/src/theme/config/index.ts +0 -4
- package/src/theme/config/system.ts +0 -117
- package/src/theme/config/tokens/color/index.ts +0 -1
- package/src/theme/config/tokens/color/types.ts +0 -135
- package/src/theme/config/tokens/index.ts +0 -4
- package/src/theme/config/tokens/parseTokenKey.test.ts +0 -66
- package/src/theme/config/tokens/parseTokenKey.ts +0 -67
- package/src/theme/config/tokens/parseTokenValue.test.ts +0 -44
- package/src/theme/config/tokens/parseTokenValue.ts +0 -134
- package/src/theme/config/tokens/types.ts +0 -53
- package/src/theme/config/types.ts +0 -46
- package/src/theme/defaults/colorPalette.ts +0 -5
- package/src/theme/defaults/colorTokens.ts +0 -648
- package/src/theme/defaults/config.ts +0 -84
- package/src/theme/defaults/fonts.ts +0 -227
- package/src/theme/getScopedTheme.ts +0 -103
- package/src/theme/index.ts +0 -5
- package/src/theme/system/avatar.ts +0 -14
- package/src/theme/system/color/_constants.ts +0 -45
- package/src/theme/system/color/_helpers.ts +0 -28
- package/src/theme/system/color/_system.ts +0 -40
- package/src/theme/system/color/avatar.ts +0 -15
- package/src/theme/system/color/badge.ts +0 -16
- package/src/theme/system/color/button.ts +0 -17
- package/src/theme/system/color/color.ts +0 -34
- package/src/theme/system/color/index.ts +0 -13
- package/src/theme/system/color/input.ts +0 -25
- package/src/theme/system/color/kbd.ts +0 -8
- package/src/theme/system/color/selectable.ts +0 -12
- package/src/theme/system/color/shadow.ts +0 -7
- package/src/theme/system/color/state.ts +0 -43
- package/src/theme/system/color/syntax.ts +0 -41
- package/src/theme/system/css.ts +0 -14
- package/src/theme/system/focusRing.ts +0 -7
- package/src/theme/system/font.ts +0 -52
- package/src/theme/system/index.ts +0 -11
- package/src/theme/system/input.ts +0 -33
- package/src/theme/system/layer.ts +0 -8
- package/src/theme/system/shadow.ts +0 -19
- package/src/theme/system/styles.ts +0 -13
- package/src/theme/system/theme.ts +0 -142
- package/src/theme/system/v0/avatar.ts +0 -10
- package/src/theme/system/v0/color/_generic.ts +0 -35
- package/src/theme/system/v0/color/_system.ts +0 -18
- package/src/theme/system/v0/color/base.ts +0 -21
- package/src/theme/system/v0/color/button.ts +0 -56
- package/src/theme/system/v0/color/card.ts +0 -25
- package/src/theme/system/v0/color/color.ts +0 -51
- package/src/theme/system/v0/color/index.ts +0 -11
- package/src/theme/system/v0/color/input.ts +0 -40
- package/src/theme/system/v0/color/muted.ts +0 -37
- package/src/theme/system/v0/color/selectable.ts +0 -42
- package/src/theme/system/v0/color/solid.ts +0 -37
- package/src/theme/system/v0/color/spot.ts +0 -14
- package/src/theme/system/v0/index.ts +0 -3
- package/src/theme/system/v0/input.ts +0 -23
- package/src/theme/versioning/getTheme_v2.ts +0 -72
- package/src/theme/versioning/index.ts +0 -5
- package/src/theme/versioning/is_v0.ts +0 -6
- package/src/theme/versioning/is_v2.ts +0 -6
- package/src/theme/versioning/themeColor_v0_v2.ts +0 -250
- package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -50
- package/src/theme/versioning/v0_v2.ts +0 -106
- package/src/theme/versioning/v2_v0.ts +0 -153
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/** @vitest-environment node */
|
|
2
|
-
|
|
3
|
-
import {renderToStaticMarkup, renderToString} from 'react-dom/server'
|
|
4
|
-
import {describe, expect, it} from 'vitest'
|
|
5
|
-
|
|
6
|
-
import {usePrefersDark} from './usePrefersDark'
|
|
7
|
-
|
|
8
|
-
function Log() {
|
|
9
|
-
const dark = usePrefersDark()
|
|
10
|
-
|
|
11
|
-
return <>dark: {JSON.stringify(dark)}</>
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
describe('usePrefersDark', () => {
|
|
15
|
-
it(`SSR to static markup returns false`, () => {
|
|
16
|
-
expect(renderToStaticMarkup(<Log />)).toBe('dark: false')
|
|
17
|
-
})
|
|
18
|
-
it(`SSR to markup for hydration doesn't throw`, () => {
|
|
19
|
-
expect(renderToString(<Log />)).toMatchInlineSnapshot(`"dark: <!-- -->false"`)
|
|
20
|
-
})
|
|
21
|
-
})
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import {useMatchMedia} from './useMatchMedia'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.
|
|
5
|
-
*
|
|
6
|
-
* @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)
|
|
7
|
-
*
|
|
8
|
-
* If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.
|
|
9
|
-
* Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme
|
|
10
|
-
* @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df
|
|
11
|
-
*
|
|
12
|
-
* @public
|
|
13
|
-
*/
|
|
14
|
-
export function usePrefersDark(getServerSnapshot = () => false): boolean {
|
|
15
|
-
return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)
|
|
16
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/** @vitest-environment jsdom */
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* As this hook is used for top-level theming it's likely to be called while server-rendering
|
|
5
|
-
* and that's why it's worth it to have a testing suite for hydration
|
|
6
|
-
*/
|
|
7
|
-
import {waitFor} from '@testing-library/dom'
|
|
8
|
-
import {hydrateRoot} from 'react-dom/client'
|
|
9
|
-
import {afterAll, beforeAll, describe, expect, it, vi} from 'vitest'
|
|
10
|
-
|
|
11
|
-
import {usePrefersReducedMotion} from './usePrefersReducedMotion'
|
|
12
|
-
|
|
13
|
-
function Log() {
|
|
14
|
-
const reduceMotion = usePrefersReducedMotion()
|
|
15
|
-
|
|
16
|
-
return <>prefers-motion: {JSON.stringify(reduceMotion)}</>
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const originalMatchMedia = window.matchMedia
|
|
20
|
-
|
|
21
|
-
describe('usePrefersReducedMotion SSR hydration', () => {
|
|
22
|
-
beforeAll(() => {
|
|
23
|
-
window.matchMedia = () =>
|
|
24
|
-
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
25
|
-
({
|
|
26
|
-
addEventListener: vi.fn(),
|
|
27
|
-
removeEventListener: vi.fn(),
|
|
28
|
-
matches: true,
|
|
29
|
-
}) as any
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
afterAll(() => {
|
|
33
|
-
window.matchMedia = originalMatchMedia
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
it(`hydrates without any warnings`, async () => {
|
|
37
|
-
const spy = vi.spyOn(console, 'error').mockImplementation(() => {})
|
|
38
|
-
|
|
39
|
-
const node = document.createElement('div')
|
|
40
|
-
|
|
41
|
-
document.body.appendChild(node)
|
|
42
|
-
|
|
43
|
-
node.innerHTML = `prefers-motion: <!-- -->false`
|
|
44
|
-
|
|
45
|
-
hydrateRoot(node, <Log />)
|
|
46
|
-
|
|
47
|
-
// It's false initially
|
|
48
|
-
await waitFor(() => expect(node.innerHTML).toBe('prefers-motion: <!-- -->false'))
|
|
49
|
-
|
|
50
|
-
// After hydration it should switch to true
|
|
51
|
-
await waitFor(() => expect(node.innerHTML).toBe('prefers-motion: <!-- -->true'))
|
|
52
|
-
|
|
53
|
-
expect(console.error).not.toHaveBeenCalled()
|
|
54
|
-
|
|
55
|
-
spy.mockReset()
|
|
56
|
-
spy.mockRestore()
|
|
57
|
-
})
|
|
58
|
-
})
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/** @vitest-environment node */
|
|
2
|
-
|
|
3
|
-
import {renderToStaticMarkup, renderToString} from 'react-dom/server'
|
|
4
|
-
import {describe, expect, it} from 'vitest'
|
|
5
|
-
|
|
6
|
-
import {usePrefersReducedMotion} from './usePrefersReducedMotion'
|
|
7
|
-
|
|
8
|
-
function Log() {
|
|
9
|
-
const reduceMotion = usePrefersReducedMotion()
|
|
10
|
-
|
|
11
|
-
return <>prefers-motion: {JSON.stringify(reduceMotion)}</>
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
describe('usePrefersReducedMotion', () => {
|
|
15
|
-
it(`SSR to static markup returns false`, () => {
|
|
16
|
-
expect(renderToStaticMarkup(<Log />)).toBe('prefers-motion: false')
|
|
17
|
-
})
|
|
18
|
-
it(`SSR to markup for hydration doesn't throw`, () => {
|
|
19
|
-
expect(renderToString(<Log />)).toMatchInlineSnapshot(`"prefers-motion: <!-- -->false"`)
|
|
20
|
-
})
|
|
21
|
-
})
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import {useMatchMedia} from './useMatchMedia'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Returns true if motion should be reduced
|
|
5
|
-
*
|
|
6
|
-
* @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)
|
|
7
|
-
*
|
|
8
|
-
* If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.
|
|
9
|
-
* Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion
|
|
10
|
-
* @example https://gist.github.com/stipsan/0c0f839a27842249cada893e9fb7767b
|
|
11
|
-
*
|
|
12
|
-
* @public
|
|
13
|
-
*/
|
|
14
|
-
export function usePrefersReducedMotion(getServerSnapshot = () => false): boolean {
|
|
15
|
-
return useMatchMedia('(prefers-reduced-motion: reduce)', getServerSnapshot)
|
|
16
|
-
}
|
package/src/core/index.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from './_compat'
|
|
2
|
-
export * from './components'
|
|
3
|
-
export * from './helpers'
|
|
4
|
-
export * from './hooks'
|
|
5
|
-
export * from './observers'
|
|
6
|
-
export * from './primitives'
|
|
7
|
-
export * from './styles'
|
|
8
|
-
export * from './theme'
|
|
9
|
-
export * from './types'
|
|
10
|
-
export * from './utils'
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* As `@sanity/ui` is declared as a dependency, and may be duplicated, sometimes across major versions
|
|
3
|
-
* it's critical that vital react contexts are shared even when there is a duplicate.
|
|
4
|
-
* If we used a model similar to `sanity` itself, or `styled-components`, this would be unnecessary as
|
|
5
|
-
* those libraries enforce single instances.
|
|
6
|
-
* Since we don't enforce it we have to support a sanity plugin being able to call hooks like `useToast`, and then
|
|
7
|
-
* read the context setup by `sanity`, which calls `ToastProvider`, even if the provider and hook are different instances in memory.
|
|
8
|
-
* It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import {type Context, createContext} from 'react'
|
|
12
|
-
|
|
13
|
-
import {globalScope} from './globalScope'
|
|
14
|
-
|
|
15
|
-
// oxlint-disable-next-line no-unnecessary-type-parameters
|
|
16
|
-
export function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(
|
|
17
|
-
/**
|
|
18
|
-
* Enforce that all Symbol.for keys used for globally scoped contexts have a predictable prefix
|
|
19
|
-
*/
|
|
20
|
-
key: `@sanity/ui/context/${string}`,
|
|
21
|
-
defaultValue: T,
|
|
22
|
-
): Context<ContextType> {
|
|
23
|
-
const symbol = Symbol.for(key)
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Prevent errors about re-renders on React SSR on Next.js App Router
|
|
27
|
-
*/
|
|
28
|
-
if (typeof document === 'undefined') {
|
|
29
|
-
const context = createContext<ContextType>(defaultValue)
|
|
30
|
-
context.displayName = key
|
|
31
|
-
return context
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
globalScope[symbol] = globalScope[symbol] || createContext<T>(defaultValue)
|
|
35
|
-
|
|
36
|
-
return globalScope[symbol]
|
|
37
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gets the global scope instance in a given environment.
|
|
3
|
-
*
|
|
4
|
-
* The strategy is to return the most modern, and if not, the most common:
|
|
5
|
-
* - The `globalThis` variable is the modern approach to accessing the global scope
|
|
6
|
-
* - The `window` variable is the global scope in a web browser
|
|
7
|
-
* - The `self` variable is the global scope in workers and others
|
|
8
|
-
* - The `global` variable is the global scope in Node.js
|
|
9
|
-
*/
|
|
10
|
-
function getGlobalScope() {
|
|
11
|
-
if (typeof globalThis !== 'undefined') return globalThis
|
|
12
|
-
if (typeof window !== 'undefined') return window
|
|
13
|
-
if (typeof self !== 'undefined') return self
|
|
14
|
-
if (typeof global !== 'undefined') return global
|
|
15
|
-
|
|
16
|
-
throw new Error('@sanity/ui: could not locate global scope')
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
20
|
-
export const globalScope = getGlobalScope() as any
|
package/src/core/lib/isRecord.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import {Middleware} from '@floating-ui/react-dom'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Custom floating-ui middleware which calculates transform-origin X + Y offsets
|
|
5
|
-
* based on the current floating rect's dimensions and shift offset.
|
|
6
|
-
*
|
|
7
|
-
* Scaling popovers with these transform-origin offsets will give the effect of
|
|
8
|
-
* popvers slightly 'growing' from the origin/reference element.
|
|
9
|
-
*
|
|
10
|
-
* This middleware must be applied after both `@sanity/ui/size` and `shift` middlewares.
|
|
11
|
-
*/
|
|
12
|
-
export const origin: Middleware = {
|
|
13
|
-
name: '@sanity/ui/origin',
|
|
14
|
-
fn({middlewareData, placement, rects}) {
|
|
15
|
-
const [side] = placement.split('-')
|
|
16
|
-
|
|
17
|
-
const floatingWidth = rects.floating.width
|
|
18
|
-
const floatingHeight = rects.floating.height
|
|
19
|
-
|
|
20
|
-
const shiftX = middlewareData.shift?.x || 0
|
|
21
|
-
const shiftY = middlewareData.shift?.y || 0
|
|
22
|
-
|
|
23
|
-
if (floatingWidth <= 0 || floatingHeight <= 0) {
|
|
24
|
-
return {}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const isVerticalPlacement = ['bottom', 'top'].includes(side)
|
|
28
|
-
|
|
29
|
-
const {originX, originY}: {originX: number; originY: number} = isVerticalPlacement
|
|
30
|
-
? {
|
|
31
|
-
originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),
|
|
32
|
-
originY: side === 'bottom' ? 0 : 1,
|
|
33
|
-
}
|
|
34
|
-
: {
|
|
35
|
-
originX: side === 'left' ? 1 : 0,
|
|
36
|
-
originY: clamp(0.5 - shiftY / floatingHeight, 0, 1),
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return {
|
|
40
|
-
data: {originX, originY},
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
function clamp(num: number, min: number, max: number) {
|
|
46
|
-
return Math.min(Math.max(num, min), max)
|
|
47
|
-
}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import {_ResizeObserver} from './resizeObserver'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @beta
|
|
5
|
-
*/
|
|
6
|
-
export interface ElementRectValue {
|
|
7
|
-
width: number
|
|
8
|
-
height: number
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @beta
|
|
13
|
-
*/
|
|
14
|
-
export interface ElementSize {
|
|
15
|
-
content: ElementRectValue
|
|
16
|
-
border: ElementRectValue
|
|
17
|
-
|
|
18
|
-
/** @deprecated INTERNAL ONLY */
|
|
19
|
-
_contentRect: DOMRectReadOnly
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* @internal
|
|
24
|
-
*/
|
|
25
|
-
export type _ElementSizeSubscriber = (elementRect: ElementSize) => void
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* @internal
|
|
29
|
-
*/
|
|
30
|
-
export interface _ElementSizeObserver {
|
|
31
|
-
subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* @internal
|
|
36
|
-
*/
|
|
37
|
-
export interface _ElementSizeListener {
|
|
38
|
-
subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// Initialize element size observer
|
|
42
|
-
// NOTE: this should NOT have size effects
|
|
43
|
-
/**
|
|
44
|
-
* @internal
|
|
45
|
-
*/
|
|
46
|
-
export const _elementSizeObserver = _createElementSizeObserver()
|
|
47
|
-
|
|
48
|
-
function _createElementRectValueListener(): _ElementSizeListener {
|
|
49
|
-
return {
|
|
50
|
-
subscribe(element, subscriber) {
|
|
51
|
-
const resizeObserver = new _ResizeObserver(([entry]) => {
|
|
52
|
-
subscriber({
|
|
53
|
-
// oxlint-disable-next-line no-deprecated
|
|
54
|
-
_contentRect: entry.contentRect,
|
|
55
|
-
border: {
|
|
56
|
-
width: entry.borderBoxSize[0].inlineSize,
|
|
57
|
-
height: entry.borderBoxSize[0].blockSize,
|
|
58
|
-
},
|
|
59
|
-
content: {
|
|
60
|
-
width: entry.contentRect.width,
|
|
61
|
-
height: entry.contentRect.height,
|
|
62
|
-
},
|
|
63
|
-
})
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
resizeObserver.observe(element)
|
|
67
|
-
|
|
68
|
-
return () => {
|
|
69
|
-
resizeObserver.unobserve(element)
|
|
70
|
-
resizeObserver.disconnect()
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
function _createElementSizeObserver(): _ElementSizeObserver {
|
|
77
|
-
const disposeCache = new WeakMap<HTMLElement, () => void>()
|
|
78
|
-
const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()
|
|
79
|
-
|
|
80
|
-
return {
|
|
81
|
-
subscribe(element, subscriber) {
|
|
82
|
-
const subscribers = subscribersCache.get(element) || []
|
|
83
|
-
|
|
84
|
-
let dispose = disposeCache.get(element)
|
|
85
|
-
|
|
86
|
-
if (!subscribersCache.has(element)) {
|
|
87
|
-
subscribersCache.set(element, subscribers)
|
|
88
|
-
|
|
89
|
-
const listener = _createElementRectValueListener()
|
|
90
|
-
|
|
91
|
-
// listen
|
|
92
|
-
dispose = listener.subscribe(element, (elementRect) => {
|
|
93
|
-
for (const sub of subscribers) {
|
|
94
|
-
sub(elementRect)
|
|
95
|
-
}
|
|
96
|
-
})
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
subscribers.push(subscriber)
|
|
100
|
-
|
|
101
|
-
return () => {
|
|
102
|
-
// dispose
|
|
103
|
-
|
|
104
|
-
const idx = subscribers.indexOf(subscriber)
|
|
105
|
-
|
|
106
|
-
if (idx > -1) {
|
|
107
|
-
subscribers.splice(idx, 1)
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
if (subscribers.length === 0) {
|
|
111
|
-
// unlisten
|
|
112
|
-
if (dispose) dispose()
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
},
|
|
116
|
-
}
|
|
117
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import {ResizeObserver as ResizeObserverPolyfill} from '@juggle/resize-observer'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @internal
|
|
5
|
-
*/
|
|
6
|
-
export const _ResizeObserver: typeof ResizeObserver =
|
|
7
|
-
typeof document !== 'undefined' && typeof window !== 'undefined' && window.ResizeObserver
|
|
8
|
-
? window.ResizeObserver
|
|
9
|
-
: ResizeObserverPolyfill
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './selectable'
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import {styled} from 'styled-components'
|
|
2
|
-
|
|
3
|
-
import {responsiveRadiusStyle, ResponsiveRadiusStyleProps} from '../../styles/radius'
|
|
4
|
-
import {Box} from '../box'
|
|
5
|
-
import {selectableBaseStyle, selectableColorStyle, SelectableStyleProps} from './style'
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @internal
|
|
9
|
-
*/
|
|
10
|
-
export const Selectable = styled(Box)<SelectableStyleProps & ResponsiveRadiusStyleProps>(
|
|
11
|
-
responsiveRadiusStyle,
|
|
12
|
-
selectableBaseStyle,
|
|
13
|
-
selectableColorStyle,
|
|
14
|
-
)
|
|
15
|
-
Selectable.displayName = 'Selectable'
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import {getTheme_v2} from '@sanity/ui/theme'
|
|
2
|
-
import {css} from 'styled-components'
|
|
3
|
-
|
|
4
|
-
import {ThemeProps} from '../../styles'
|
|
5
|
-
import {_cardColorStyle} from '../../styles/card'
|
|
6
|
-
import {SelectableTone} from '../../types'
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* @internal
|
|
10
|
-
*/
|
|
11
|
-
export interface SelectableStyleProps {
|
|
12
|
-
$tone: SelectableTone
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export function selectableBaseStyle(): ReturnType<typeof css> {
|
|
16
|
-
return css`
|
|
17
|
-
background-color: inherit;
|
|
18
|
-
color: inherit;
|
|
19
|
-
|
|
20
|
-
&[data-as='button'] {
|
|
21
|
-
-webkit-font-smoothing: inherit;
|
|
22
|
-
appearance: none;
|
|
23
|
-
outline: none;
|
|
24
|
-
font: inherit;
|
|
25
|
-
text-align: inherit;
|
|
26
|
-
border: 0;
|
|
27
|
-
width: -moz-available;
|
|
28
|
-
width: -webkit-fill-available;
|
|
29
|
-
width: stretch;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/* &:is(a) */
|
|
33
|
-
&[data-as='a'] {
|
|
34
|
-
text-decoration: none;
|
|
35
|
-
}
|
|
36
|
-
`
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export function selectableColorStyle(
|
|
40
|
-
props: SelectableStyleProps & ThemeProps,
|
|
41
|
-
): ReturnType<typeof css> {
|
|
42
|
-
const {$tone} = props
|
|
43
|
-
const {color, style} = getTheme_v2(props.theme)
|
|
44
|
-
const tone = color.selectable[$tone]
|
|
45
|
-
|
|
46
|
-
return css`
|
|
47
|
-
${_cardColorStyle(color, tone.enabled)}
|
|
48
|
-
|
|
49
|
-
background-color: var(--card-bg-color);
|
|
50
|
-
color: var(--card-fg-color);
|
|
51
|
-
outline: none;
|
|
52
|
-
|
|
53
|
-
/* &:is(button) */
|
|
54
|
-
&[data-as='button'] {
|
|
55
|
-
&:disabled {
|
|
56
|
-
${_cardColorStyle(color, tone.disabled)}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
&:not(:disabled) {
|
|
60
|
-
&[aria-pressed='true'] {
|
|
61
|
-
${_cardColorStyle(color, tone.pressed)}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
&[data-selected],
|
|
65
|
-
&[aria-selected='true'] > & {
|
|
66
|
-
${_cardColorStyle(color, tone.selected)}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
@media (hover: hover) {
|
|
70
|
-
&:not([data-selected]) {
|
|
71
|
-
&[data-hovered],
|
|
72
|
-
&:hover {
|
|
73
|
-
${_cardColorStyle(color, tone.hovered)}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
&:active {
|
|
77
|
-
${_cardColorStyle(color, tone.pressed)}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/* &:is(a) */
|
|
85
|
-
&[data-as='a'] {
|
|
86
|
-
&[data-disabled] {
|
|
87
|
-
${_cardColorStyle(color, tone.disabled)}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
&:not([data-disabled]) {
|
|
91
|
-
&[data-pressed] {
|
|
92
|
-
${_cardColorStyle(color, tone.pressed)}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
&[data-selected] {
|
|
96
|
-
${_cardColorStyle(color, tone.selected)}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
@media (hover: hover) {
|
|
100
|
-
&:not([data-selected]) {
|
|
101
|
-
&[data-hovered],
|
|
102
|
-
&:hover {
|
|
103
|
-
${_cardColorStyle(color, tone.hovered)}
|
|
104
|
-
}
|
|
105
|
-
&:active {
|
|
106
|
-
${_cardColorStyle(color, tone.pressed)}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
${style?.card?.root}
|
|
114
|
-
`
|
|
115
|
-
}
|