@sanity/ui 0.38.1-next.6 → 0.38.2-next.22
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 +4 -5
- package/dist/sanity-ui.cjs +10101 -254
- package/dist/sanity-ui.cjs.map +1 -1
- package/dist/sanity-ui.js +9977 -254
- package/dist/sanity-ui.js.map +1 -1
- package/dist/types/src/index.d.ts +236 -245
- package/package.json +17 -18
- package/src/__workshop__/color/overview.tsx +1 -1
- package/src/components/autocomplete/__workshop__/async.tsx +1 -1
- package/src/components/autocomplete/__workshop__/constrainedHeight.tsx +1 -1
- package/src/components/autocomplete/__workshop__/custom.tsx +1 -1
- package/src/components/autocomplete/__workshop__/example.tsx +1 -1
- package/src/components/autocomplete/__workshop__/focusAndBlur.tsx +1 -1
- package/src/components/autocomplete/__workshop__/fullscreen.tsx +1 -1
- package/src/components/autocomplete/autocomplete.tsx +1 -1
- package/src/components/autocomplete/autocompleteOption.tsx +1 -1
- package/src/components/breadcrumbs/__workshop__/example.tsx +0 -1
- package/src/components/breadcrumbs/breadcrumbs.tsx +1 -9
- package/src/components/dialog/__workshop__/autoFocus.tsx +0 -1
- package/src/components/dialog/__workshop__/layering.tsx +0 -1
- package/src/components/dialog/__workshop__/nested.tsx +1 -1
- package/src/components/dialog/__workshop__/onScroll.tsx +1 -1
- package/src/components/dialog/__workshop__/position.tsx +0 -1
- package/src/components/dialog/__workshop__/props.tsx +1 -1
- package/src/components/dialog/__workshop__/provider.tsx +0 -1
- package/src/components/dialog/dialog.tsx +1 -1
- package/src/components/dialog/dialogProvider.tsx +1 -1
- package/src/components/hotkeys/__workshop__/plain.tsx +0 -1
- package/src/components/hotkeys/hotkeys.tsx +1 -1
- package/src/components/menu/__workshop__/asComponent.tsx +1 -1
- package/src/components/menu/__workshop__/closableMenuButton.tsx +1 -1
- package/src/components/menu/__workshop__/constrainedInBoundary.tsx +1 -1
- package/src/components/menu/__workshop__/customMenuItem.tsx +0 -1
- package/src/components/menu/__workshop__/disableFocusOnClose.tsx +0 -1
- package/src/components/menu/__workshop__/groups.tsx +0 -1
- package/src/components/menu/__workshop__/menuButton.tsx +0 -1
- package/src/components/menu/__workshop__/menuGroupRight.tsx +0 -1
- package/src/components/menu/__workshop__/nestedMenu.tsx +0 -1
- package/src/components/menu/__workshop__/onCloseMenuButton.tsx +1 -1
- package/src/components/menu/__workshop__/selectedItem.tsx +1 -1
- package/src/components/menu/__workshop__/tones.tsx +0 -1
- package/src/components/menu/__workshop__/withoutArrow.tsx +0 -1
- package/src/components/menu/menu.test.tsx +5 -4
- package/src/components/menu/menu.tsx +1 -1
- package/src/components/menu/menuButton.tsx +1 -9
- package/src/components/menu/menuGroup.tsx +1 -1
- package/src/components/menu/menuItem.tsx +1 -1
- package/src/components/menu/useMenuController.ts +1 -1
- package/src/components/skeleton/__workshop__/delay.tsx +0 -1
- package/src/components/skeleton/__workshop__/skeleton.tsx +0 -1
- package/src/components/skeleton/skeleton.tsx +1 -1
- package/src/components/skeleton/textSkeleton.tsx +1 -1
- package/src/components/tab/__workshop__/example.tsx +1 -1
- package/src/components/tab/tab.tsx +1 -1
- package/src/components/tab/tabList.tsx +1 -1
- package/src/components/tab/tabPanel.tsx +1 -1
- package/src/components/toast/__workshop__/hook.tsx +0 -1
- package/src/components/toast/__workshop__/toast.tsx +0 -1
- package/src/components/toast/toast.test.tsx +4 -4
- package/src/components/toast/toast.tsx +0 -1
- package/src/components/toast/toastProvider.tsx +1 -1
- package/src/components/tree/__workshop__/basic.tsx +1 -1
- package/src/components/tree/tree.tsx +1 -1
- package/src/components/tree/treeGroup.tsx +1 -1
- package/src/components/tree/treeItem.tsx +3 -3
- package/src/hooks/useArrayProp.ts +3 -2
- package/src/hooks/useElementRect/__workshop__/example.tsx +0 -1
- package/src/hooks/useElementRect/useElementRect.ts +2 -0
- package/src/hooks/useForwardedRef.ts +1 -1
- package/src/hooks/useMediaIndex/__workshop__/test.tsx +0 -1
- package/src/icons/__workshop__/overview.tsx +1 -1
- package/src/primitives/avatar/__workshop__/asButton.tsx +0 -1
- package/src/primitives/avatar/__workshop__/stack.tsx +0 -1
- package/src/primitives/avatar/avatar.tsx +9 -4
- package/src/primitives/avatar/avatarCounter.tsx +1 -1
- package/src/primitives/avatar/avatarStack.tsx +1 -1
- package/src/primitives/badge/__workshop__/props.tsx +0 -1
- package/src/primitives/badge/__workshop__/tones.tsx +0 -1
- package/src/primitives/badge/badge.tsx +1 -1
- package/src/primitives/box/__workshop__/props.tsx +0 -1
- package/src/primitives/box/__workshop__/responsive.tsx +0 -1
- package/src/primitives/box/box.tsx +1 -1
- package/src/primitives/button/__workshop__/custom.tsx +0 -1
- package/src/primitives/button/__workshop__/customIcons.tsx +0 -1
- package/src/primitives/button/__workshop__/mixedChildren.tsx +0 -1
- package/src/primitives/button/__workshop__/props.tsx +0 -1
- package/src/primitives/button/__workshop__/sanityUploadButton.tsx +0 -1
- package/src/primitives/button/__workshop__/stacked.tsx +0 -1
- package/src/primitives/button/__workshop__/styled1.tsx +0 -1
- package/src/primitives/button/__workshop__/styled2.tsx +0 -1
- package/src/primitives/button/__workshop__/uploadButton.tsx +1 -1
- package/src/primitives/button/button.tsx +1 -1
- package/src/primitives/card/__workshop__/allTones.tsx +0 -1
- package/src/primitives/card/__workshop__/asButton.tsx +0 -1
- package/src/primitives/card/__workshop__/asComponent.tsx +1 -1
- package/src/primitives/card/__workshop__/checkered.tsx +0 -1
- package/src/primitives/card/__workshop__/interactive.tsx +0 -1
- package/src/primitives/card/__workshop__/listNavigation.tsx +0 -1
- package/src/primitives/card/__workshop__/props.tsx +0 -1
- package/src/primitives/card/__workshop__/selected.tsx +0 -1
- package/src/primitives/card/__workshop__/styled.tsx +0 -1
- package/src/primitives/card/card.tsx +1 -1
- package/src/primitives/checkbox/__workshop__/example.tsx +1 -1
- package/src/primitives/checkbox/__workshop__/props.tsx +0 -1
- package/src/primitives/checkbox/__workshop__/readOnly.tsx +0 -1
- package/src/primitives/checkbox/__workshop__/tones.tsx +0 -1
- package/src/primitives/checkbox/checkbox.tsx +1 -1
- package/src/primitives/code/__workshop__/opticalAlignment.tsx +0 -1
- package/src/primitives/code/__workshop__/props.tsx +0 -1
- package/src/primitives/code/code.tsx +1 -1
- package/src/primitives/container/__workshop__/example.tsx +0 -1
- package/src/primitives/container/container.tsx +1 -1
- package/src/primitives/flex/__workshop__/example.tsx +0 -1
- package/src/primitives/flex/__workshop__/gap.tsx +0 -1
- package/src/primitives/flex/flex.tsx +1 -1
- package/src/primitives/grid/__workshop__/responsive.tsx +0 -1
- package/src/primitives/grid/grid.tsx +1 -1
- package/src/primitives/heading/__workshop__/opticalAlignment.tsx +0 -1
- package/src/primitives/heading/__workshop__/plain.tsx +0 -1
- package/src/primitives/heading/heading.tsx +1 -1
- package/src/primitives/inline/__workshop__/plain.tsx +0 -1
- package/src/primitives/inline/inline.tsx +1 -1
- package/src/primitives/kbd/__workshop__/plain.tsx +0 -1
- package/src/primitives/kbd/kbd.tsx +1 -1
- package/src/primitives/label/__workshop__/opticalAlignment.tsx +0 -1
- package/src/primitives/label/__workshop__/plain.tsx +0 -1
- package/src/primitives/label/label.tsx +1 -1
- package/src/primitives/popover/__workshop__/MarginsStory.tsx +0 -1
- package/src/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -1
- package/src/primitives/popover/__workshop__/PlainStory.tsx +1 -1
- package/src/primitives/popover/__workshop__/RecursiveStory.tsx +1 -1
- package/src/primitives/popover/__workshop__/RightAlignedStory.tsx +1 -1
- package/src/primitives/popover/__workshop__/TestStory.tsx +1 -1
- package/src/primitives/popover/arrow.tsx +1 -1
- package/src/primitives/popover/popover.tsx +1 -9
- package/src/primitives/radio/__workshop__/example.tsx +1 -1
- package/src/primitives/radio/__workshop__/plain.tsx +0 -1
- package/src/primitives/radio/radio.tsx +1 -1
- package/src/primitives/select/__workshop__/plain.tsx +0 -1
- package/src/primitives/select/__workshop__/readOnly.tsx +0 -1
- package/src/primitives/select/select.tsx +1 -1
- package/src/primitives/spinner/__workshop__/Props.tsx +0 -1
- package/src/primitives/spinner/spinner.tsx +1 -1
- package/src/primitives/stack/__workshop__/plain.tsx +0 -1
- package/src/primitives/stack/stack.tsx +1 -1
- package/src/primitives/switch/__workshop__/example.tsx +1 -1
- package/src/primitives/switch/__workshop__/props.tsx +1 -1
- package/src/primitives/switch/switch.tsx +1 -1
- package/src/primitives/text/__workshop__/colored.tsx +0 -1
- package/src/primitives/text/__workshop__/example.tsx +0 -1
- package/src/primitives/text/__workshop__/opticalAlignment.tsx +0 -1
- package/src/primitives/text/text.tsx +1 -1
- package/src/primitives/textArea/__workshop__/plain.tsx +0 -1
- package/src/primitives/textArea/textArea.tsx +1 -1
- package/src/primitives/textInput/__workshop__/clearButton.tsx +1 -1
- package/src/primitives/textInput/__workshop__/customValidity.tsx +0 -1
- package/src/primitives/textInput/__workshop__/multipleTones.tsx +0 -1
- package/src/primitives/textInput/__workshop__/plain.tsx +1 -1
- package/src/primitives/textInput/__workshop__/readOnly.tsx +0 -1
- package/src/primitives/textInput/__workshop__/states.tsx +0 -1
- package/src/primitives/textInput/__workshop__/tones.tsx +0 -1
- package/src/primitives/textInput/__workshop__/typed.tsx +1 -1
- package/src/primitives/textInput/textInput.tsx +1 -1
- package/src/primitives/tooltip/__workshop__/props.tsx +0 -1
- package/src/primitives/tooltip/tooltip.tsx +1 -1
- package/src/primitives/tooltip/tooltipArrow.tsx +1 -1
- package/src/styles/font/responsiveFont.ts +13 -0
- package/src/theme/__workshop__/canvas.tsx +1 -1
- package/src/theme/__workshop__/color.tsx +0 -1
- package/src/theme/__workshop__/layer.tsx +1 -1
- package/src/theme/__workshop__/nestedProvider.tsx +0 -1
- package/src/theme/lib/theme/color/button/types.ts +1 -1
- package/src/theme/lib/theme/shadow.ts +1 -1
- package/src/theme/theme.test.tsx +4 -4
- package/src/theme/themeColorProvider.tsx +0 -1
- package/src/theme/themeProvider.tsx +1 -1
- package/src/theme/types.ts +1 -1
- package/src/utils/boundaryElement/__workshop__/plain.tsx +1 -1
- package/src/utils/boundaryElement/boundaryElement.test.tsx +4 -4
- package/src/utils/boundaryElement/boundaryElementProvider.tsx +1 -1
- package/src/utils/elementQuery/__workshop__/customMedia.tsx +0 -1
- package/src/utils/elementQuery/elementQuery.tsx +1 -1
- package/src/utils/errorBoundary.tsx +4 -4
- package/src/utils/layer/__workshop__/_debug.tsx +0 -1
- package/src/utils/layer/__workshop__/multipleRoots.tsx +0 -1
- package/src/utils/layer/__workshop__/plain.tsx +1 -1
- package/src/utils/layer/__workshop__/responsiveZOffset.tsx +0 -1
- package/src/utils/layer/layer.test.tsx +4 -4
- package/src/utils/layer/layer.tsx +1 -1
- package/src/utils/layer/layerProvider.tsx +1 -1
- package/src/utils/portal/__workshop__/named.tsx +1 -1
- package/src/utils/portal/portal.test.tsx +4 -4
- package/src/utils/portal/portal.ts +2 -3
- package/src/utils/portal/portalProvider.tsx +1 -1
- package/src/utils/srOnly/srOnly.tsx +1 -1
- package/src/utils/virtualList/__workshop__/changingProps.tsx +1 -1
- package/src/utils/virtualList/__workshop__/elementScroll.tsx +1 -1
- package/src/utils/virtualList/__workshop__/infiniteList.tsx +1 -1
- package/src/utils/virtualList/__workshop__/windowScrolll.tsx +1 -1
- package/src/utils/virtualList/virtualList.tsx +1 -1
- package/src/primitives/badge/badge.test.tsx +0 -14
- package/src/primitives/button/button.test.tsx +0 -42
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {Flex, Switch, useTheme} from '@sanity/ui'
|
|
2
2
|
import {useBoolean, useNumber} from '@sanity/ui-workshop'
|
|
3
|
-
import
|
|
3
|
+
import {useCallback, useMemo} from 'react'
|
|
4
4
|
import {ThemeProvider} from 'styled-components'
|
|
5
5
|
|
|
6
6
|
export default function PropsStory() {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {Flex, Text, Theme, ThemeColorSpotKey, useTheme} from '@sanity/ui'
|
|
2
2
|
import {useSelect} from '@sanity/ui-workshop'
|
|
3
|
-
import React from 'react'
|
|
4
3
|
import styled, {css} from 'styled-components'
|
|
5
4
|
import {WORKSHOP_SPOT_COLOR_OPTIONS} from '../../../__workshop__/constants'
|
|
6
5
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {Box, TextInput} from '@sanity/ui'
|
|
2
2
|
import {useText} from '@sanity/ui-workshop'
|
|
3
|
-
import
|
|
3
|
+
import {useCallback, useState} from 'react'
|
|
4
4
|
|
|
5
5
|
export default function ClearButtonStory() {
|
|
6
6
|
const customValidity = useText('Custom validitiy')
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {Button, Card, Container, Stack, TextInput} from '@sanity/ui'
|
|
2
2
|
import {useText} from '@sanity/ui-workshop'
|
|
3
|
-
import React from 'react'
|
|
4
3
|
|
|
5
4
|
export default function CustomValidityStory() {
|
|
6
5
|
const customValidity = useText('Custom validity', 'Invalid value', 'Props') || undefined
|
|
@@ -2,7 +2,7 @@ import {icons, IconSymbol} from '@sanity/icons'
|
|
|
2
2
|
import {Container, Flex, Stack, Text, TextInput} from '@sanity/ui'
|
|
3
3
|
import {PerfTestProps, useBoolean, usePerfTest, useSelect, useText} from '@sanity/ui-workshop'
|
|
4
4
|
import {fireEvent} from '@testing-library/dom'
|
|
5
|
-
import
|
|
5
|
+
import {useCallback, useState} from 'react'
|
|
6
6
|
import {
|
|
7
7
|
WORKSHOP_TEXT_FONT_SIZE_OPTIONS,
|
|
8
8
|
WORKSHOP_FONT_WEIGHT_OPTIONS,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {Box, Container, TextInput} from '@sanity/ui'
|
|
2
2
|
import {useSelect} from '@sanity/ui-workshop'
|
|
3
|
-
import
|
|
3
|
+
import {useCallback, useState} from 'react'
|
|
4
4
|
import {WORKSHOP_TEXT_INPUT_TYPE_OPTIONS} from '../../../__workshop__/constants'
|
|
5
5
|
|
|
6
6
|
export default function TypedStory() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {CloseIcon} from '@sanity/icons'
|
|
2
|
-
import
|
|
2
|
+
import {createElement, forwardRef, isValidElement, useCallback, useMemo} from 'react'
|
|
3
3
|
import {isValidElementType} from 'react-is'
|
|
4
4
|
import styled from 'styled-components'
|
|
5
5
|
import {EMPTY_RECORD} from '../../constants'
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {Box, Button, Card, Flex, Text, Tooltip} from '@sanity/ui'
|
|
2
2
|
import {useSelect, useText} from '@sanity/ui-workshop'
|
|
3
|
-
import React from 'react'
|
|
4
3
|
import {WORKSHOP_PLACEMENT_OPTIONS} from '../../../__workshop__/constants'
|
|
5
4
|
|
|
6
5
|
export default function PropsStory() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {cloneElement, forwardRef, useCallback, useEffect, useRef, useState} from 'react'
|
|
2
2
|
import {usePopper} from 'react-popper'
|
|
3
3
|
import styled from 'styled-components'
|
|
4
4
|
import {useArrayProp, useForwardedRef} from '../../hooks'
|
|
@@ -48,6 +48,19 @@ export function responsiveFont(
|
|
|
48
48
|
},
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
// @TODO fix the real condition that is causing $size to be undefined sometimes
|
|
52
|
+
if (!$size) {
|
|
53
|
+
// @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it
|
|
54
|
+
if (!responsiveFont.warned) {
|
|
55
|
+
// eslint-disable-next-line no-console
|
|
56
|
+
console.warn('No size specified for responsive font', {fontKey, $size, props, base})
|
|
57
|
+
// @ts-expect-error: `warned` isn't typed, the underlying issue should be solved rather than typing it
|
|
58
|
+
responsiveFont.warned = true
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return [base]
|
|
62
|
+
}
|
|
63
|
+
|
|
51
64
|
const resp = _responsive(media, $size, (sizeIndex) => fontSize(sizes[sizeIndex] || defaultSize))
|
|
52
65
|
|
|
53
66
|
return [base, ...resp]
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
useRootTheme,
|
|
23
23
|
} from '@sanity/ui'
|
|
24
24
|
import {useBoolean} from '@sanity/ui-workshop'
|
|
25
|
-
import
|
|
25
|
+
import {createContext, useContext} from 'react'
|
|
26
26
|
import {ThemeColorCard} from '../lib/theme'
|
|
27
27
|
|
|
28
28
|
interface Features {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {Box, Button, Container, Dialog, Flex, Popover, Stack, Text, Tooltip} from '@sanity/ui'
|
|
2
|
-
import
|
|
2
|
+
import {useCallback, useState} from 'react'
|
|
3
3
|
|
|
4
4
|
export default function LayerStory() {
|
|
5
5
|
const [dialogOpen, setDialogOpen] = useState(false)
|
package/src/theme/theme.test.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {vi} from 'vitest'
|
|
2
2
|
import {render} from '../../test'
|
|
3
3
|
import {studioTheme} from './studioTheme'
|
|
4
4
|
import {ThemeContext} from './themeContext'
|
|
@@ -8,7 +8,7 @@ import {useRootTheme} from './useRootTheme'
|
|
|
8
8
|
describe('theme', () => {
|
|
9
9
|
describe('useRootTheme', () => {
|
|
10
10
|
it('should get context value', async () => {
|
|
11
|
-
const log =
|
|
11
|
+
const log = vi.fn()
|
|
12
12
|
|
|
13
13
|
function Debug() {
|
|
14
14
|
const rootTheme = useRootTheme()
|
|
@@ -41,7 +41,7 @@ describe('theme', () => {
|
|
|
41
41
|
})
|
|
42
42
|
|
|
43
43
|
it('should fail when no context value is provided', async () => {
|
|
44
|
-
const log =
|
|
44
|
+
const log = vi.fn()
|
|
45
45
|
|
|
46
46
|
function Debug() {
|
|
47
47
|
try {
|
|
@@ -69,7 +69,7 @@ describe('theme', () => {
|
|
|
69
69
|
})
|
|
70
70
|
|
|
71
71
|
it('should fail when context value is not compatible', async () => {
|
|
72
|
-
const log =
|
|
72
|
+
const log = vi.fn()
|
|
73
73
|
|
|
74
74
|
function Debug() {
|
|
75
75
|
try {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {useContext, useMemo} from 'react'
|
|
2
2
|
import {ThemeProvider as StyledThemeProvider} from 'styled-components'
|
|
3
3
|
import {DEFAULT_THEME_LAYER} from './defaults'
|
|
4
4
|
import {ThemeColorSchemeKey, ThemeColorName} from './lib/theme'
|
package/src/theme/types.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {Box, BoundaryElementProvider, Button, Card, Text, Tooltip} from '@sanity/ui'
|
|
2
|
-
import
|
|
2
|
+
import {useState} from 'react'
|
|
3
3
|
|
|
4
4
|
export default function PlainStory() {
|
|
5
5
|
const [boundaryElement, setBoundaryElement] = useState<HTMLDivElement | null>(null)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {vi} from 'vitest'
|
|
2
2
|
import {render} from '../../../test'
|
|
3
3
|
import {BoundaryElementContext} from './boundaryElementContext'
|
|
4
4
|
import {BoundaryElementContextValue} from './types'
|
|
@@ -7,7 +7,7 @@ import {useBoundaryElement} from './useBoundaryElement'
|
|
|
7
7
|
describe('utils/boundaryElement', () => {
|
|
8
8
|
describe('useBoundaryElement', () => {
|
|
9
9
|
it('should get context value', async () => {
|
|
10
|
-
const log =
|
|
10
|
+
const log = vi.fn()
|
|
11
11
|
|
|
12
12
|
function Debug() {
|
|
13
13
|
const rootBoundaryElement = useBoundaryElement()
|
|
@@ -37,7 +37,7 @@ describe('utils/boundaryElement', () => {
|
|
|
37
37
|
})
|
|
38
38
|
|
|
39
39
|
it('should provide default value when no context value is provided', async () => {
|
|
40
|
-
const log =
|
|
40
|
+
const log = vi.fn()
|
|
41
41
|
|
|
42
42
|
function Debug() {
|
|
43
43
|
const rootBoundaryElement = useBoundaryElement()
|
|
@@ -64,7 +64,7 @@ describe('utils/boundaryElement', () => {
|
|
|
64
64
|
})
|
|
65
65
|
|
|
66
66
|
it('should fail when context value is not compatible', async () => {
|
|
67
|
-
const log =
|
|
67
|
+
const log = vi.fn()
|
|
68
68
|
|
|
69
69
|
function Debug() {
|
|
70
70
|
try {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {forwardRef, useCallback, useMemo, useState} from 'react'
|
|
2
2
|
import {useElementSize, useForwardedRef} from '../../hooks'
|
|
3
3
|
import {useTheme} from '../../theme'
|
|
4
4
|
import {findMaxBreakpoints, findMinBreakpoints} from './helpers'
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {Component, PropsWithChildren} from 'react'
|
|
2
2
|
import {Code} from '../primitives/code'
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* DO NOT USE IN PRODUCTION
|
|
6
6
|
* @beta
|
|
7
7
|
*/
|
|
8
|
-
export
|
|
8
|
+
export type ErrorBoundaryProps = PropsWithChildren<{
|
|
9
9
|
onCatch: (params: {error: Error; info: React.ErrorInfo}) => void
|
|
10
|
-
}
|
|
10
|
+
}>
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* DO NOT USE IN PRODUCTION
|
|
@@ -21,7 +21,7 @@ export interface ErrorBoundaryState {
|
|
|
21
21
|
* DO NOT USE IN PRODUCTION
|
|
22
22
|
* @beta
|
|
23
23
|
*/
|
|
24
|
-
export class ErrorBoundary extends
|
|
24
|
+
export class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
|
|
25
25
|
state: ErrorBoundaryState = {error: null}
|
|
26
26
|
|
|
27
27
|
static getDerivedStateFromError(error: Error): ErrorBoundaryState {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {CloseIcon} from '@sanity/icons'
|
|
2
2
|
import {Box, Button, Card, Flex, Layer, LayerProvider, Stack, Text} from '@sanity/ui'
|
|
3
|
-
import
|
|
3
|
+
import {useCallback, useState} from 'react'
|
|
4
4
|
import {LayerDebugInfo} from './_debug'
|
|
5
5
|
|
|
6
6
|
export default function PlainStory() {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {vi} from 'vitest'
|
|
2
2
|
import {render} from '../../../test'
|
|
3
3
|
import {LayerContext} from './layerContext'
|
|
4
4
|
import {LayerContextValue} from './types'
|
|
@@ -7,7 +7,7 @@ import {useLayer} from './useLayer'
|
|
|
7
7
|
describe('utils/layer', () => {
|
|
8
8
|
describe('useLayer', () => {
|
|
9
9
|
it('should get context value', async () => {
|
|
10
|
-
const log =
|
|
10
|
+
const log = vi.fn()
|
|
11
11
|
|
|
12
12
|
function Debug() {
|
|
13
13
|
const rootLayer = useLayer()
|
|
@@ -43,7 +43,7 @@ describe('utils/layer', () => {
|
|
|
43
43
|
})
|
|
44
44
|
|
|
45
45
|
it('should fail when no context value is provided', async () => {
|
|
46
|
-
const log =
|
|
46
|
+
const log = vi.fn()
|
|
47
47
|
|
|
48
48
|
function Debug() {
|
|
49
49
|
try {
|
|
@@ -71,7 +71,7 @@ describe('utils/layer', () => {
|
|
|
71
71
|
})
|
|
72
72
|
|
|
73
73
|
it('should fail when context value is not compatible', async () => {
|
|
74
|
-
const log =
|
|
74
|
+
const log = vi.fn()
|
|
75
75
|
|
|
76
76
|
function Debug() {
|
|
77
77
|
try {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {useCallback, useContext, useEffect, useMemo, useState} from 'react'
|
|
2
2
|
import {useMediaIndex, useArrayProp} from '../../hooks'
|
|
3
3
|
import {LayerContext} from './layerContext'
|
|
4
4
|
import {LayerContextValue} from './types'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {Card, Container, Portal, PortalProvider, Stack, Text} from '@sanity/ui'
|
|
2
|
-
import
|
|
2
|
+
import {useState} from 'react'
|
|
3
3
|
|
|
4
4
|
export default function NamedStory() {
|
|
5
5
|
const [portal1Element, setPortal1Element] = useState<HTMLDivElement | null>(null)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import {vi} from 'vitest'
|
|
2
2
|
import {render} from '../../../test'
|
|
3
3
|
import {PortalContext} from './portalContext'
|
|
4
4
|
import {PortalContextValue} from './types'
|
|
@@ -7,7 +7,7 @@ import {usePortal} from './usePortal'
|
|
|
7
7
|
describe('utils/portal', () => {
|
|
8
8
|
describe('usePortal', () => {
|
|
9
9
|
it('should get context value', async () => {
|
|
10
|
-
const log =
|
|
10
|
+
const log = vi.fn()
|
|
11
11
|
|
|
12
12
|
function Debug() {
|
|
13
13
|
const rootPortal = usePortal()
|
|
@@ -39,7 +39,7 @@ describe('utils/portal', () => {
|
|
|
39
39
|
})
|
|
40
40
|
|
|
41
41
|
it('should fail when no context value is provided', async () => {
|
|
42
|
-
const log =
|
|
42
|
+
const log = vi.fn()
|
|
43
43
|
|
|
44
44
|
function Debug() {
|
|
45
45
|
try {
|
|
@@ -67,7 +67,7 @@ describe('utils/portal', () => {
|
|
|
67
67
|
})
|
|
68
68
|
|
|
69
69
|
it('should fail when context value is not compatible', async () => {
|
|
70
|
-
const log =
|
|
70
|
+
const log = vi.fn()
|
|
71
71
|
|
|
72
72
|
function Debug() {
|
|
73
73
|
try {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import ReactDOM from 'react-dom'
|
|
1
|
+
import {createPortal} from 'react-dom'
|
|
3
2
|
import {usePortal} from './usePortal'
|
|
4
3
|
|
|
5
4
|
/**
|
|
@@ -26,5 +25,5 @@ export function Portal(props: PortalProps): React.ReactPortal | null {
|
|
|
26
25
|
return null
|
|
27
26
|
}
|
|
28
27
|
|
|
29
|
-
return
|
|
28
|
+
return createPortal(children, portalElement)
|
|
30
29
|
}
|