@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,485 +0,0 @@
|
|
|
1
|
-
/** @vitest-environment jsdom */
|
|
2
|
-
|
|
3
|
-
import {act, fireEvent, screen} from '@testing-library/react'
|
|
4
|
-
|
|
5
|
-
// oxlint-disable-next-line no-unassigned-import
|
|
6
|
-
import '../../../../test/mocks/resizeObserver.mock'
|
|
7
|
-
// oxlint-disable-next-line no-unassigned-import
|
|
8
|
-
import '../../../../test/mocks/matchMedia.mock'
|
|
9
|
-
import {afterEach, beforeEach, describe, expect, it, vi} from 'vitest'
|
|
10
|
-
|
|
11
|
-
import {render} from '../../../../test'
|
|
12
|
-
import {Button, Text} from '../../primitives'
|
|
13
|
-
import {Tooltip, TooltipDelayGroupProvider} from '../tooltip'
|
|
14
|
-
|
|
15
|
-
beforeEach(() => {
|
|
16
|
-
vi.useFakeTimers()
|
|
17
|
-
})
|
|
18
|
-
|
|
19
|
-
// Run all pending timers and switch back to real timers
|
|
20
|
-
afterEach(() => {
|
|
21
|
-
vi.runOnlyPendingTimers()
|
|
22
|
-
vi.useRealTimers()
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
describe('Tooltip', () => {
|
|
26
|
-
describe('Using same delay for open and close', () => {
|
|
27
|
-
it('should hide and show the tooltip content when hovered, with no delay', () => {
|
|
28
|
-
render(
|
|
29
|
-
<Tooltip content={<Text size={1}>{'Tooltip content'}</Text>} placement={'top'}>
|
|
30
|
-
<Button mode="bleed" text="Hover me" />
|
|
31
|
-
</Tooltip>,
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
const button = screen.getByText('Hover me')
|
|
35
|
-
|
|
36
|
-
// Validate tooltip content is not rendered
|
|
37
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
38
|
-
|
|
39
|
-
fireEvent.mouseEnter(button)
|
|
40
|
-
|
|
41
|
-
// Validate tooltip content is rendered
|
|
42
|
-
screen.getByText('Tooltip content')
|
|
43
|
-
|
|
44
|
-
fireEvent.mouseOut(button)
|
|
45
|
-
// Validate tooltip content is not rendered anymore
|
|
46
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
47
|
-
})
|
|
48
|
-
it('should support delays to show and hide the tooltip.', () => {
|
|
49
|
-
vi.useFakeTimers()
|
|
50
|
-
const delay = 200
|
|
51
|
-
|
|
52
|
-
render(
|
|
53
|
-
<Tooltip
|
|
54
|
-
content={<Text size={1}>{'Tooltip content'}</Text>}
|
|
55
|
-
placement={'top'}
|
|
56
|
-
delay={delay}
|
|
57
|
-
>
|
|
58
|
-
<Button mode="bleed" text="Hover me" />
|
|
59
|
-
</Tooltip>,
|
|
60
|
-
)
|
|
61
|
-
|
|
62
|
-
const button = screen.getByText('Hover me')
|
|
63
|
-
|
|
64
|
-
// Validate tooltip content is not rendered
|
|
65
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
66
|
-
|
|
67
|
-
fireEvent.mouseEnter(button)
|
|
68
|
-
|
|
69
|
-
// oxlint-disable-next-line no-floating-promises
|
|
70
|
-
act(() => vi.advanceTimersByTime(delay / 2))
|
|
71
|
-
// Content should not be rendered yet
|
|
72
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
73
|
-
// oxlint-disable-next-line no-floating-promises
|
|
74
|
-
act(() => vi.advanceTimersByTime(delay / 2))
|
|
75
|
-
|
|
76
|
-
// Validate tooltip content is rendered
|
|
77
|
-
screen.getByText('Tooltip content')
|
|
78
|
-
|
|
79
|
-
fireEvent.mouseOut(button)
|
|
80
|
-
// Validate tooltip content is still showing.
|
|
81
|
-
screen.getByText('Tooltip content')
|
|
82
|
-
// oxlint-disable-next-line no-floating-promises
|
|
83
|
-
act(() => vi.advanceTimersByTime(delay))
|
|
84
|
-
// Validate tooltip content is not rendered anymore
|
|
85
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
86
|
-
})
|
|
87
|
-
it('should support different open and close delays to show and hide the tooltip.', () => {
|
|
88
|
-
vi.useFakeTimers()
|
|
89
|
-
const openDelay = 200
|
|
90
|
-
const closeDelay = 150
|
|
91
|
-
|
|
92
|
-
render(
|
|
93
|
-
<Tooltip
|
|
94
|
-
content={<Text size={1}>{'Tooltip content'}</Text>}
|
|
95
|
-
placement={'top'}
|
|
96
|
-
delay={{
|
|
97
|
-
open: openDelay,
|
|
98
|
-
close: closeDelay,
|
|
99
|
-
}}
|
|
100
|
-
>
|
|
101
|
-
<Button mode="bleed" text="Hover me" />
|
|
102
|
-
</Tooltip>,
|
|
103
|
-
)
|
|
104
|
-
|
|
105
|
-
const button = screen.getByText('Hover me')
|
|
106
|
-
|
|
107
|
-
// Validate tooltip content is not rendered
|
|
108
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
109
|
-
|
|
110
|
-
fireEvent.mouseEnter(button)
|
|
111
|
-
|
|
112
|
-
// oxlint-disable-next-line no-floating-promises
|
|
113
|
-
act(() => vi.advanceTimersByTime(openDelay / 2))
|
|
114
|
-
// Content should not be rendered yet
|
|
115
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
116
|
-
// oxlint-disable-next-line no-floating-promises
|
|
117
|
-
act(() => vi.advanceTimersByTime(openDelay / 2))
|
|
118
|
-
|
|
119
|
-
// Validate tooltip content is rendered
|
|
120
|
-
screen.getByText('Tooltip content')
|
|
121
|
-
|
|
122
|
-
fireEvent.mouseOut(button)
|
|
123
|
-
// Validate tooltip content is still showing.
|
|
124
|
-
screen.getByText('Tooltip content')
|
|
125
|
-
// oxlint-disable-next-line no-floating-promises
|
|
126
|
-
act(() => vi.advanceTimersByTime(closeDelay))
|
|
127
|
-
// Validate tooltip content is not rendered anymore
|
|
128
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
129
|
-
})
|
|
130
|
-
})
|
|
131
|
-
|
|
132
|
-
describe('Using the <TooltipDelayGroupProvider />', () => {
|
|
133
|
-
it('should support groups with the same delay to open and close.', () => {
|
|
134
|
-
const delay = 150
|
|
135
|
-
|
|
136
|
-
vi.useFakeTimers()
|
|
137
|
-
render(
|
|
138
|
-
<TooltipDelayGroupProvider delay={delay}>
|
|
139
|
-
<Tooltip content={<Text size={1}>{'Tooltip 1'}</Text>} placement={'top'} delay={400}>
|
|
140
|
-
<Button mode="bleed" text="Button 1" />
|
|
141
|
-
</Tooltip>
|
|
142
|
-
<Tooltip
|
|
143
|
-
content={<Text size={1}>{'Tooltip 2'}</Text>}
|
|
144
|
-
placement={'top'}
|
|
145
|
-
delay={400} // This should be overridden by the group delay
|
|
146
|
-
>
|
|
147
|
-
<Button mode="bleed" text="Button 2" />
|
|
148
|
-
</Tooltip>
|
|
149
|
-
</TooltipDelayGroupProvider>,
|
|
150
|
-
)
|
|
151
|
-
|
|
152
|
-
const button1 = screen.getByText('Button 1')
|
|
153
|
-
const button2 = screen.getByText('Button 2')
|
|
154
|
-
|
|
155
|
-
// Validate tooltip content is not rendered
|
|
156
|
-
expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
|
|
157
|
-
expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
|
|
158
|
-
|
|
159
|
-
// Hovers on first button, it should show first tooltip only
|
|
160
|
-
fireEvent.mouseEnter(button1)
|
|
161
|
-
// oxlint-disable-next-line no-floating-promises
|
|
162
|
-
act(() => vi.advanceTimersByTime(delay / 2))
|
|
163
|
-
// Content should not be rendered yet, we have a delay of 150ms
|
|
164
|
-
expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
|
|
165
|
-
expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
|
|
166
|
-
// oxlint-disable-next-line no-floating-promises
|
|
167
|
-
act(() => vi.advanceTimersByTime(delay / 2))
|
|
168
|
-
|
|
169
|
-
// Validate Tooltip 1 is rendered
|
|
170
|
-
screen.getByText('Tooltip 1')
|
|
171
|
-
expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
|
|
172
|
-
|
|
173
|
-
// Hovers on second button.
|
|
174
|
-
fireEvent.mouseOut(button1)
|
|
175
|
-
fireEvent.mouseEnter(button2)
|
|
176
|
-
|
|
177
|
-
// Validate Tooltip 1 is not rendered, now tooltip 2 is open.
|
|
178
|
-
// oxlint-disable-next-line no-floating-promises
|
|
179
|
-
act(() => vi.advanceTimersByTime(1))
|
|
180
|
-
expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
|
|
181
|
-
screen.getByText('Tooltip 2')
|
|
182
|
-
|
|
183
|
-
// Validate tooltip content is not rendered anymore
|
|
184
|
-
fireEvent.mouseOut(button2)
|
|
185
|
-
// oxlint-disable-next-line no-floating-promises
|
|
186
|
-
act(() => vi.advanceTimersByTime(delay + 1))
|
|
187
|
-
expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
|
|
188
|
-
|
|
189
|
-
// Hovering again, should trigger the tooltip to show immediately, as the group is not deactivated yet
|
|
190
|
-
fireEvent.mouseEnter(button2)
|
|
191
|
-
// oxlint-disable-next-line no-floating-promises
|
|
192
|
-
act(() => vi.advanceTimersByTime(1))
|
|
193
|
-
screen.getByText('Tooltip 2')
|
|
194
|
-
|
|
195
|
-
// Validate tooltip content is not rendered anymore
|
|
196
|
-
fireEvent.mouseOut(button2)
|
|
197
|
-
// oxlint-disable-next-line no-floating-promises
|
|
198
|
-
act(() => vi.advanceTimersByTime(delay + 1))
|
|
199
|
-
expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
|
|
200
|
-
|
|
201
|
-
// Wait 200ms, the group is deactivated, hovering again should trigger the delay
|
|
202
|
-
// oxlint-disable-next-line no-floating-promises
|
|
203
|
-
act(() => vi.advanceTimersByTime(200))
|
|
204
|
-
fireEvent.mouseEnter(button2)
|
|
205
|
-
// oxlint-disable-next-line no-floating-promises
|
|
206
|
-
act(() => vi.advanceTimersByTime(delay / 2))
|
|
207
|
-
expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
|
|
208
|
-
// oxlint-disable-next-line no-floating-promises
|
|
209
|
-
act(() => vi.advanceTimersByTime(delay / 2))
|
|
210
|
-
screen.getByText('Tooltip 2')
|
|
211
|
-
})
|
|
212
|
-
it('should support groups with different open and close delay.', () => {
|
|
213
|
-
const openDelay = 250
|
|
214
|
-
const closeDelay = 150
|
|
215
|
-
|
|
216
|
-
vi.useFakeTimers()
|
|
217
|
-
render(
|
|
218
|
-
<TooltipDelayGroupProvider
|
|
219
|
-
delay={{
|
|
220
|
-
open: openDelay,
|
|
221
|
-
close: closeDelay,
|
|
222
|
-
}}
|
|
223
|
-
>
|
|
224
|
-
<Tooltip content={<Text size={1}>{'Tooltip 1'}</Text>} placement={'top'} delay={400}>
|
|
225
|
-
<Button mode="bleed" text="Button 1" />
|
|
226
|
-
</Tooltip>
|
|
227
|
-
<Tooltip
|
|
228
|
-
content={<Text size={1}>{'Tooltip 2'}</Text>}
|
|
229
|
-
placement={'top'}
|
|
230
|
-
delay={400} // This should be overridden by the group delay
|
|
231
|
-
>
|
|
232
|
-
<Button mode="bleed" text="Button 2" />
|
|
233
|
-
</Tooltip>
|
|
234
|
-
</TooltipDelayGroupProvider>,
|
|
235
|
-
)
|
|
236
|
-
|
|
237
|
-
const button1 = screen.getByText('Button 1')
|
|
238
|
-
const button2 = screen.getByText('Button 2')
|
|
239
|
-
|
|
240
|
-
// Validate tooltip content is not rendered
|
|
241
|
-
expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
|
|
242
|
-
expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
|
|
243
|
-
|
|
244
|
-
// Hovers on first button, it should show first tooltip only
|
|
245
|
-
fireEvent.mouseEnter(button1)
|
|
246
|
-
// oxlint-disable-next-line no-floating-promises
|
|
247
|
-
act(() => vi.advanceTimersByTime(openDelay / 2))
|
|
248
|
-
// Content should not be rendered yet, we have a delay of2150ms
|
|
249
|
-
expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
|
|
250
|
-
expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
|
|
251
|
-
// oxlint-disable-next-line no-floating-promises
|
|
252
|
-
act(() => vi.advanceTimersByTime(openDelay / 2))
|
|
253
|
-
|
|
254
|
-
// Validate Tooltip 1 is rendered
|
|
255
|
-
screen.getByText('Tooltip 1')
|
|
256
|
-
expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
|
|
257
|
-
|
|
258
|
-
// Hovers on second button.
|
|
259
|
-
fireEvent.mouseOut(button1)
|
|
260
|
-
fireEvent.mouseEnter(button2)
|
|
261
|
-
|
|
262
|
-
// Validate Tooltip 1 is not rendered, now tooltip 2 is open.
|
|
263
|
-
// oxlint-disable-next-line no-floating-promises
|
|
264
|
-
act(() => vi.advanceTimersByTime(1))
|
|
265
|
-
expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
|
|
266
|
-
screen.getByText('Tooltip 2')
|
|
267
|
-
|
|
268
|
-
// Validate tooltip content is not rendered anymore
|
|
269
|
-
fireEvent.mouseOut(button2)
|
|
270
|
-
// oxlint-disable-next-line no-floating-promises
|
|
271
|
-
act(() => vi.advanceTimersByTime(closeDelay + 1))
|
|
272
|
-
expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
|
|
273
|
-
|
|
274
|
-
// Hovering again, should trigger the tooltip to show immediately, as the group is not deactivated yet
|
|
275
|
-
fireEvent.mouseEnter(button2)
|
|
276
|
-
// oxlint-disable-next-line no-floating-promises
|
|
277
|
-
act(() => vi.advanceTimersByTime(1))
|
|
278
|
-
screen.getByText('Tooltip 2')
|
|
279
|
-
|
|
280
|
-
// Validate tooltip content is not rendered anymore
|
|
281
|
-
fireEvent.mouseOut(button2)
|
|
282
|
-
// oxlint-disable-next-line no-floating-promises
|
|
283
|
-
act(() => vi.advanceTimersByTime(closeDelay + 1))
|
|
284
|
-
expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
|
|
285
|
-
|
|
286
|
-
// Wait 200ms, the group is deactivated, hovering again should trigger the delay
|
|
287
|
-
// oxlint-disable-next-line no-floating-promises
|
|
288
|
-
act(() => vi.advanceTimersByTime(200))
|
|
289
|
-
fireEvent.mouseEnter(button2)
|
|
290
|
-
// oxlint-disable-next-line no-floating-promises
|
|
291
|
-
act(() => vi.advanceTimersByTime(openDelay / 2))
|
|
292
|
-
expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
|
|
293
|
-
// oxlint-disable-next-line no-floating-promises
|
|
294
|
-
act(() => vi.advanceTimersByTime(openDelay / 2))
|
|
295
|
-
screen.getByText('Tooltip 2')
|
|
296
|
-
})
|
|
297
|
-
})
|
|
298
|
-
|
|
299
|
-
describe('Closing the <Tooltip /> with the Escape key', () => {
|
|
300
|
-
it('Standalone tooltip closes immediately with Escape key', () => {
|
|
301
|
-
const delay = 150
|
|
302
|
-
|
|
303
|
-
vi.useFakeTimers()
|
|
304
|
-
|
|
305
|
-
render(
|
|
306
|
-
<Tooltip
|
|
307
|
-
content={<Text size={1}>{'Tooltip content'}</Text>}
|
|
308
|
-
placement={'top'}
|
|
309
|
-
delay={delay}
|
|
310
|
-
>
|
|
311
|
-
<Button mode="bleed" text="Hover me" />
|
|
312
|
-
</Tooltip>,
|
|
313
|
-
)
|
|
314
|
-
|
|
315
|
-
const button = screen.getByText('Hover me')
|
|
316
|
-
|
|
317
|
-
// Validate tooltip content is not rendered
|
|
318
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
319
|
-
fireEvent.focus(button)
|
|
320
|
-
// oxlint-disable-next-line no-floating-promises
|
|
321
|
-
act(() => vi.advanceTimersByTime(delay))
|
|
322
|
-
|
|
323
|
-
// Validate tooltip content is rendered
|
|
324
|
-
screen.getByText('Tooltip content')
|
|
325
|
-
|
|
326
|
-
act(() => {
|
|
327
|
-
fireEvent.keyDown(button, {key: 'Escape', code: 'Escape'})
|
|
328
|
-
})
|
|
329
|
-
// Validate tooltip content is not rendered anymore
|
|
330
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
331
|
-
})
|
|
332
|
-
it('With <TooltipDelayGroupProvider /> closes immediately with Escape key', () => {
|
|
333
|
-
const delay = 150
|
|
334
|
-
|
|
335
|
-
vi.useFakeTimers()
|
|
336
|
-
|
|
337
|
-
render(
|
|
338
|
-
<TooltipDelayGroupProvider delay={{close: delay}}>
|
|
339
|
-
<Tooltip
|
|
340
|
-
content={<Text size={1}>{'Tooltip content'}</Text>}
|
|
341
|
-
placement={'top'}
|
|
342
|
-
delay={{close: delay}}
|
|
343
|
-
>
|
|
344
|
-
<Button mode="bleed" text="Hover me" />
|
|
345
|
-
</Tooltip>
|
|
346
|
-
</TooltipDelayGroupProvider>,
|
|
347
|
-
)
|
|
348
|
-
|
|
349
|
-
const button = screen.getByText('Hover me')
|
|
350
|
-
|
|
351
|
-
// Validate tooltip content is not rendered
|
|
352
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
353
|
-
fireEvent.focus(button)
|
|
354
|
-
|
|
355
|
-
// oxlint-disable-next-line no-floating-promises
|
|
356
|
-
act(() => vi.advanceTimersByTime(delay))
|
|
357
|
-
|
|
358
|
-
// Validate tooltip content is rendered
|
|
359
|
-
screen.getByText('Tooltip content')
|
|
360
|
-
|
|
361
|
-
act(() => {
|
|
362
|
-
fireEvent.keyDown(button, {key: 'Escape', code: 'Escape'})
|
|
363
|
-
})
|
|
364
|
-
// Validate tooltip content is not rendered anymore
|
|
365
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
366
|
-
})
|
|
367
|
-
})
|
|
368
|
-
|
|
369
|
-
describe('Clicking the <Tooltip /> child should close the tooltip', () => {
|
|
370
|
-
it('Should close the tooltip when clicked', () => {
|
|
371
|
-
const delay = 150
|
|
372
|
-
|
|
373
|
-
render(
|
|
374
|
-
<Tooltip content={<Text size={1}>{'Tooltip content'}</Text>} delay={delay}>
|
|
375
|
-
<Button mode="bleed" text="Hover me" />
|
|
376
|
-
</Tooltip>,
|
|
377
|
-
)
|
|
378
|
-
|
|
379
|
-
const button = screen.getByText('Hover me')
|
|
380
|
-
|
|
381
|
-
// Assertion: tooltip does not exist in the document
|
|
382
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
383
|
-
fireEvent.focus(button)
|
|
384
|
-
|
|
385
|
-
// oxlint-disable-next-line no-floating-promises
|
|
386
|
-
act(() => vi.advanceTimersByTime(delay))
|
|
387
|
-
|
|
388
|
-
// Assertion: the tooltip is not visible
|
|
389
|
-
expect(screen.queryByText('Tooltip content')).toBeVisible()
|
|
390
|
-
|
|
391
|
-
// oxlint-disable-next-line no-floating-promises
|
|
392
|
-
act(() => fireEvent.click(button))
|
|
393
|
-
|
|
394
|
-
// Assertion: tooltip does not exist in the document
|
|
395
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
396
|
-
})
|
|
397
|
-
|
|
398
|
-
it('Should close the tooltip when the context menu is opened (right click)', () => {
|
|
399
|
-
const delay = 150
|
|
400
|
-
|
|
401
|
-
render(
|
|
402
|
-
<Tooltip content={<Text size={1}>{'Tooltip content'}</Text>} delay={delay}>
|
|
403
|
-
<Button mode="bleed" text="Hover me" />
|
|
404
|
-
</Tooltip>,
|
|
405
|
-
)
|
|
406
|
-
|
|
407
|
-
const button = screen.getByText('Hover me')
|
|
408
|
-
|
|
409
|
-
// Assertion: tooltip does not exist in the document
|
|
410
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
411
|
-
fireEvent.focus(button)
|
|
412
|
-
|
|
413
|
-
// oxlint-disable-next-line no-floating-promises
|
|
414
|
-
act(() => vi.advanceTimersByTime(delay))
|
|
415
|
-
|
|
416
|
-
// Assertion: the tooltip is not visible
|
|
417
|
-
expect(screen.queryByText('Tooltip content')).toBeVisible()
|
|
418
|
-
|
|
419
|
-
// oxlint-disable-next-line no-floating-promises
|
|
420
|
-
act(() => fireEvent.contextMenu(button))
|
|
421
|
-
|
|
422
|
-
// Assertion: tooltip does not exist in the document
|
|
423
|
-
expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
|
|
424
|
-
})
|
|
425
|
-
})
|
|
426
|
-
|
|
427
|
-
describe('Used defined events on <Tooltip /> child should fire correctly', () => {
|
|
428
|
-
const handleBlur = vi.fn()
|
|
429
|
-
const handleClick = vi.fn()
|
|
430
|
-
const handleContextMenu = vi.fn()
|
|
431
|
-
const handleFocus = vi.fn()
|
|
432
|
-
const handleMouseEnter = vi.fn()
|
|
433
|
-
const handleMouseLeave = vi.fn()
|
|
434
|
-
|
|
435
|
-
beforeEach(() => {
|
|
436
|
-
render(
|
|
437
|
-
<Tooltip content={<Text size={1}>{'Tooltip content'}</Text>}>
|
|
438
|
-
<Button
|
|
439
|
-
data-testid="btn"
|
|
440
|
-
mode="bleed"
|
|
441
|
-
onBlur={handleBlur}
|
|
442
|
-
onClick={handleClick}
|
|
443
|
-
onContextMenu={handleContextMenu}
|
|
444
|
-
onFocus={handleFocus}
|
|
445
|
-
onMouseEnter={handleMouseEnter}
|
|
446
|
-
onMouseLeave={handleMouseLeave}
|
|
447
|
-
text="Hover me"
|
|
448
|
-
/>
|
|
449
|
-
</Tooltip>,
|
|
450
|
-
)
|
|
451
|
-
})
|
|
452
|
-
|
|
453
|
-
afterEach(() => vi.clearAllMocks())
|
|
454
|
-
|
|
455
|
-
it('should fire the onBlur event', () => {
|
|
456
|
-
fireEvent.blur(screen.getByTestId('btn'))
|
|
457
|
-
expect(handleBlur).toHaveBeenCalledTimes(1)
|
|
458
|
-
})
|
|
459
|
-
|
|
460
|
-
it('should fire the onClick event', () => {
|
|
461
|
-
fireEvent.click(screen.getByTestId('btn'))
|
|
462
|
-
expect(handleClick).toHaveBeenCalledTimes(1)
|
|
463
|
-
})
|
|
464
|
-
|
|
465
|
-
it('should fire the onContextMenu event', () => {
|
|
466
|
-
fireEvent.contextMenu(screen.getByTestId('btn'))
|
|
467
|
-
expect(handleContextMenu).toHaveBeenCalledTimes(1)
|
|
468
|
-
})
|
|
469
|
-
|
|
470
|
-
it('should fire the onFocus event', () => {
|
|
471
|
-
fireEvent.focus(screen.getByTestId('btn'))
|
|
472
|
-
expect(handleFocus).toHaveBeenCalledTimes(1)
|
|
473
|
-
})
|
|
474
|
-
|
|
475
|
-
it('should fire the onMouseEnter event', () => {
|
|
476
|
-
fireEvent.mouseEnter(screen.getByTestId('btn'))
|
|
477
|
-
expect(handleMouseEnter).toHaveBeenCalledTimes(1)
|
|
478
|
-
})
|
|
479
|
-
|
|
480
|
-
it('should fire the onMouseLeave event', () => {
|
|
481
|
-
fireEvent.mouseLeave(screen.getByTestId('btn'))
|
|
482
|
-
expect(handleMouseLeave).toHaveBeenCalledTimes(1)
|
|
483
|
-
})
|
|
484
|
-
})
|
|
485
|
-
})
|