@sanity/ui 2.16.21 → 2.16.23
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/dist/_chunks-cjs/_visual-editing.js +121 -1046
- package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
- package/dist/_chunks-cjs/refractor.js.map +1 -1
- package/dist/_chunks-es/_visual-editing.mjs +116 -1041
- package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
- package/dist/_chunks-es/refractor.mjs.map +1 -1
- package/dist/_visual-editing.d.mts +411 -351
- package/dist/_visual-editing.d.ts +411 -351
- package/dist/index.d.mts +1107 -930
- package/dist/index.d.ts +1107 -930
- package/dist/index.js +67 -158
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +65 -156
- package/dist/index.mjs.map +1 -1
- package/dist/theme.d.mts +769 -681
- package/dist/theme.d.ts +769 -681
- package/dist/theme.js +47 -0
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs +47 -0
- package/dist/theme.mjs.map +1 -1
- package/exports/_visual-editing.ts +1 -0
- package/package.json +50 -163
- package/src/core/_compat.ts +30 -0
- package/src/core/components/autocomplete/autocomplete.tsx +11 -4
- package/src/core/components/autocomplete/autocompleteOption.tsx +1 -0
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +1 -0
- package/src/core/components/dialog/dialog.tsx +3 -0
- package/src/core/components/hotkeys/hotkeys.tsx +1 -0
- package/src/core/components/menu/menu.test.tsx +6 -4
- package/src/core/components/menu/menu.tsx +3 -2
- package/src/core/components/menu/menuButton.tsx +8 -0
- package/src/core/components/menu/menuGroup.tsx +5 -2
- package/src/core/components/menu/menuItem.tsx +4 -0
- package/src/core/components/menu/useMenuController.ts +6 -4
- package/src/core/components/skeleton/skeleton.tsx +2 -1
- package/src/core/components/tab/tab.tsx +1 -0
- package/src/core/components/tab/tabList.tsx +1 -0
- package/src/core/components/toast/toast.test.tsx +9 -4
- package/src/core/components/toast/toast.tsx +1 -1
- package/src/core/components/toast/toastProvider.tsx +1 -1
- package/src/core/components/tree/tree.tsx +1 -0
- package/src/core/components/tree/treeGroup.tsx +1 -0
- package/src/core/components/tree/treeItem.tsx +2 -2
- package/src/core/constants.ts +2 -2
- package/src/core/hooks/useClickOutside.test.tsx +43 -15
- package/src/core/hooks/useClickOutside.ts +1 -1
- package/src/core/hooks/useClickOutsideEvent.test.tsx +8 -4
- package/src/core/hooks/useDelayed.test.ts +7 -6
- package/src/core/hooks/useElementRect/useElementRect.ts +1 -0
- package/src/core/hooks/useForwardedRef.ts +1 -0
- package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +2 -1
- package/src/core/hooks/usePrefersDark.hydration.test.tsx +7 -5
- package/src/core/hooks/usePrefersDark.test.tsx +3 -1
- package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +7 -5
- package/src/core/hooks/usePrefersReducedMotion.test.tsx +3 -1
- package/src/core/lib/createGlobalScopedContext.ts +1 -0
- package/src/core/lib/globalScope.ts +1 -0
- package/src/core/observers/elementSizeObserver.ts +1 -0
- package/src/core/primitives/avatar/avatar.tsx +1 -2
- package/src/core/primitives/avatar/avatarStack.tsx +1 -0
- package/src/core/primitives/badge/badge.test.tsx +3 -2
- package/src/core/primitives/badge/badge.tsx +2 -1
- package/src/core/primitives/box/box.tsx +2 -1
- package/src/core/primitives/button/button.test.tsx +3 -2
- package/src/core/primitives/button/button.tsx +2 -0
- package/src/core/primitives/button/styles.ts +1 -0
- package/src/core/primitives/card/card.tsx +1 -5
- package/src/core/primitives/card/types.ts +1 -0
- package/src/core/primitives/code/refractor.tsx +2 -0
- package/src/core/primitives/flex/flex.tsx +1 -3
- package/src/core/primitives/inline/inline.tsx +1 -0
- package/src/core/primitives/popover/popover.tsx +13 -4
- package/src/core/primitives/popover/popoverCard.tsx +2 -1
- package/src/core/primitives/popover/types.ts +0 -1
- package/src/core/primitives/stack/styles.ts +1 -0
- package/src/core/primitives/textInput/textInput.tsx +2 -0
- package/src/core/primitives/tooltip/tooltip.test.tsx +82 -49
- package/src/core/primitives/tooltip/tooltip.tsx +6 -1
- package/src/core/primitives/tooltip/tooltipCard.tsx +2 -1
- package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +2 -0
- package/src/core/styles/flex/types.ts +0 -1
- package/src/core/styles/font/responsiveFont.ts +0 -3
- package/src/core/styles/font/types.ts +1 -3
- package/src/core/styles/grid/gridStyle.ts +1 -0
- package/src/core/styles/margin/marginStyle.ts +1 -0
- package/src/core/styles/margin/marginsStyle.test.ts +2 -1
- package/src/core/styles/padding/paddingStyle.test.ts +2 -1
- package/src/core/styles/padding/paddingStyle.ts +1 -0
- package/src/core/theme/theme.test.tsx +7 -3
- package/src/core/theme/useRootTheme.ts +1 -0
- package/src/core/theme/useTheme.ts +2 -0
- package/src/core/utils/arrow/arrow.tsx +1 -0
- package/src/core/utils/boundaryElement/boundaryElement.test.tsx +9 -4
- package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +1 -0
- package/src/core/utils/getElementRef.ts +5 -0
- package/src/core/utils/layer/getLayerContext.test.ts +2 -0
- package/src/core/utils/layer/layer.test.tsx +9 -4
- package/src/core/utils/layer/layer.tsx +1 -0
- package/src/core/utils/layer/useLayer.ts +2 -0
- package/src/core/utils/portal/portal.test.tsx +9 -4
- package/src/core/utils/portal/portalProvider.tsx +4 -3
- package/src/core/utils/virtualList/virtualList.tsx +2 -1
- package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +10 -0
- package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +4 -0
- package/src/theme/build/_deprecated/color/button/createButtonModes.ts +5 -0
- package/src/theme/build/_deprecated/color/button/createButtonTones.ts +5 -0
- package/src/theme/build/_deprecated/color/card/createCardStates.ts +6 -0
- package/src/theme/build/_deprecated/color/color.test.ts +5 -1
- package/src/theme/build/_deprecated/color/defaults.ts +1 -0
- package/src/theme/build/_deprecated/color/factory.ts +36 -0
- package/src/theme/build/_deprecated/color/input/createInputModes.ts +5 -0
- package/src/theme/build/_deprecated/color/muted/createMuted.ts +4 -0
- package/src/theme/build/_deprecated/color/spot/createSpot.ts +3 -0
- package/src/theme/build/buildColorTheme.test.ts +2 -0
- package/src/theme/build/buildColorTheme.ts +7 -0
- package/src/theme/build/buildTheme.test.ts +2 -0
- package/src/theme/build/lib/color-fns/color-fns.test.ts +3 -1
- package/src/theme/build/merge.ts +5 -0
- package/src/theme/build/mixThemeColor.test.ts +2 -0
- package/src/theme/build/renderColorTheme.ts +6 -0
- package/src/theme/build/renderColorValue.ts +0 -2
- package/src/theme/build/resolveColorTokens.ts +6 -0
- package/src/theme/build/theme.test.ts +2 -0
- package/src/theme/config/helpers.ts +5 -0
- package/src/theme/config/system.ts +2 -0
- package/src/theme/config/tokens/color/types.ts +6 -4
- package/src/theme/config/tokens/parseTokenKey.test.ts +2 -0
- package/src/theme/config/tokens/parseTokenValue.test.ts +2 -0
- package/src/theme/config/tokens/parseTokenValue.ts +1 -0
- package/src/theme/getScopedTheme.ts +5 -0
- package/src/theme/system/color/_helpers.ts +4 -0
- package/src/theme/system/theme.ts +4 -0
- package/src/theme/system/v0/color/_system.ts +1 -0
- package/src/theme/system/v0/color/button.ts +14 -0
- package/src/theme/system/v0/color/card.ts +6 -0
- package/src/theme/system/v0/color/color.ts +11 -0
- package/src/theme/system/v0/color/input.ts +6 -0
- package/src/theme/system/v0/color/muted.ts +11 -0
- package/src/theme/system/v0/color/selectable.ts +11 -0
- package/src/theme/system/v0/color/solid.ts +11 -0
- package/src/theme/system/v0/color/spot.ts +1 -0
- package/src/theme/versioning/getTheme_v2.ts +15 -0
- package/src/theme/versioning/themeColor_v0_v2.ts +7 -0
- package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -0
- package/src/theme/versioning/v0_v2.ts +13 -1
- package/src/theme/versioning/v2_v0.ts +15 -0
- package/src/core/__workshop__/constants.ts +0 -293
- package/src/core/components/autocomplete/__mocks__/apiStore.ts +0 -49
- package/src/core/components/autocomplete/__mocks__/countries.ts +0 -245
- package/src/core/components/autocomplete/__workshop__/async.tsx +0 -156
- package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -137
- package/src/core/components/autocomplete/__workshop__/custom.tsx +0 -89
- package/src/core/components/autocomplete/__workshop__/example.tsx +0 -79
- package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
- package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +0 -294
- package/src/core/components/autocomplete/__workshop__/index.ts +0 -39
- package/src/core/components/autocomplete/__workshop__/types.ts +0 -4
- package/src/core/components/breadcrumbs/__workshop__/example.tsx +0 -62
- package/src/core/components/breadcrumbs/__workshop__/index.ts +0 -14
- package/src/core/components/dialog/__workshop__/activate.tsx +0 -134
- package/src/core/components/dialog/__workshop__/autoFocus.tsx +0 -29
- package/src/core/components/dialog/__workshop__/index.ts +0 -19
- package/src/core/components/dialog/__workshop__/layering.tsx +0 -41
- package/src/core/components/dialog/__workshop__/nested.tsx +0 -72
- package/src/core/components/dialog/__workshop__/onScroll.tsx +0 -39
- package/src/core/components/dialog/__workshop__/panes.tsx +0 -82
- package/src/core/components/dialog/__workshop__/position.tsx +0 -30
- package/src/core/components/dialog/__workshop__/props.tsx +0 -75
- package/src/core/components/dialog/__workshop__/provider.tsx +0 -11
- package/src/core/components/dialog/__workshop__/wrapped.tsx +0 -76
- package/src/core/components/hotkeys/__workshop__/index.ts +0 -14
- package/src/core/components/hotkeys/__workshop__/plain.tsx +0 -9
- package/src/core/components/menu/__workshop__/asComponent.tsx +0 -45
- package/src/core/components/menu/__workshop__/avatarMenu.tsx +0 -51
- package/src/core/components/menu/__workshop__/closableMenuButton.tsx +0 -46
- package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +0 -134
- package/src/core/components/menu/__workshop__/customMenuItem.tsx +0 -45
- package/src/core/components/menu/__workshop__/customSelectedState.tsx +0 -39
- package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
- package/src/core/components/menu/__workshop__/groups.tsx +0 -156
- package/src/core/components/menu/__workshop__/index.ts +0 -89
- package/src/core/components/menu/__workshop__/menuButton.tsx +0 -80
- package/src/core/components/menu/__workshop__/menuGroupRight.tsx +0 -65
- package/src/core/components/menu/__workshop__/nestedMenu.tsx +0 -22
- package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +0 -41
- package/src/core/components/menu/__workshop__/selectedItem.tsx +0 -69
- package/src/core/components/menu/__workshop__/shouldFocus.tsx +0 -47
- package/src/core/components/menu/__workshop__/tones.tsx +0 -25
- package/src/core/components/menu/__workshop__/withoutArrow.tsx +0 -32
- package/src/core/components/skeleton/__workshop__/delay.tsx +0 -70
- package/src/core/components/skeleton/__workshop__/index.ts +0 -11
- package/src/core/components/skeleton/__workshop__/skeleton.tsx +0 -64
- package/src/core/components/tab/__workshop__/example.tsx +0 -79
- package/src/core/components/tab/__workshop__/index.ts +0 -14
- package/src/core/components/toast/__workshop__/hook.tsx +0 -71
- package/src/core/components/toast/__workshop__/index.ts +0 -19
- package/src/core/components/toast/__workshop__/toast.tsx +0 -26
- package/src/core/components/tree/__workshop__/basic.perf.ts +0 -19
- package/src/core/components/tree/__workshop__/basic.tsx +0 -105
- package/src/core/components/tree/__workshop__/index.ts +0 -21
- package/src/core/components/tree/__workshop__/tabFromElement.tsx +0 -84
- package/src/core/hooks/useElementRect/__workshop__/example.tsx +0 -32
- package/src/core/hooks/useElementRect/__workshop__/index.ts +0 -14
- package/src/core/hooks/useMediaIndex/__workshop__/index.ts +0 -14
- package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
- package/src/core/primitives/avatar/__workshop__/asButton.tsx +0 -14
- package/src/core/primitives/avatar/__workshop__/index.ts +0 -29
- package/src/core/primitives/avatar/__workshop__/stack.tsx +0 -25
- package/src/core/primitives/avatar/__workshop__/withinButton.tsx +0 -63
- package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -70
- package/src/core/primitives/badge/__workshop__/index.ts +0 -19
- package/src/core/primitives/badge/__workshop__/props.tsx +0 -30
- package/src/core/primitives/badge/__workshop__/tones.tsx +0 -21
- package/src/core/primitives/box/__workshop__/index.ts +0 -19
- package/src/core/primitives/box/__workshop__/props.tsx +0 -20
- package/src/core/primitives/box/__workshop__/responsive.tsx +0 -20
- package/src/core/primitives/button/__workshop__/custom.tsx +0 -51
- package/src/core/primitives/button/__workshop__/customIcons.tsx +0 -30
- package/src/core/primitives/button/__workshop__/disabled.tsx +0 -74
- package/src/core/primitives/button/__workshop__/index.ts +0 -59
- package/src/core/primitives/button/__workshop__/mixedChildren.tsx +0 -12
- package/src/core/primitives/button/__workshop__/props.tsx +0 -55
- package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +0 -36
- package/src/core/primitives/button/__workshop__/stacked.tsx +0 -58
- package/src/core/primitives/button/__workshop__/styled1.tsx +0 -17
- package/src/core/primitives/button/__workshop__/styled2.tsx +0 -19
- package/src/core/primitives/button/__workshop__/uploadButton.tsx +0 -28
- package/src/core/primitives/card/__workshop__/allTones.tsx +0 -25
- package/src/core/primitives/card/__workshop__/asButton.tsx +0 -107
- package/src/core/primitives/card/__workshop__/asComponent.tsx +0 -27
- package/src/core/primitives/card/__workshop__/checkered.tsx +0 -26
- package/src/core/primitives/card/__workshop__/index.ts +0 -18
- package/src/core/primitives/card/__workshop__/interactive.tsx +0 -30
- package/src/core/primitives/card/__workshop__/listNavigation.tsx +0 -80
- package/src/core/primitives/card/__workshop__/props.tsx +0 -53
- package/src/core/primitives/card/__workshop__/selected.tsx +0 -94
- package/src/core/primitives/card/__workshop__/styled.tsx +0 -14
- package/src/core/primitives/checkbox/__workshop__/example.tsx +0 -25
- package/src/core/primitives/checkbox/__workshop__/index.ts +0 -13
- package/src/core/primitives/checkbox/__workshop__/props.tsx +0 -33
- package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +0 -16
- package/src/core/primitives/checkbox/__workshop__/tones.tsx +0 -28
- package/src/core/primitives/code/__workshop__/index.ts +0 -19
- package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +0 -48
- package/src/core/primitives/code/__workshop__/props.tsx +0 -21
- package/src/core/primitives/container/__workshop__/example.tsx +0 -20
- package/src/core/primitives/container/__workshop__/index.ts +0 -8
- package/src/core/primitives/flex/__workshop__/example.tsx +0 -34
- package/src/core/primitives/flex/__workshop__/gap.tsx +0 -25
- package/src/core/primitives/flex/__workshop__/index.ts +0 -11
- package/src/core/primitives/grid/__workshop__/index.ts +0 -10
- package/src/core/primitives/grid/__workshop__/responsive.tsx +0 -54
- package/src/core/primitives/heading/__workshop__/index.ts +0 -19
- package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
- package/src/core/primitives/heading/__workshop__/plain.tsx +0 -32
- package/src/core/primitives/inline/__workshop__/index.ts +0 -8
- package/src/core/primitives/inline/__workshop__/plain.tsx +0 -27
- package/src/core/primitives/kbd/__workshop__/index.ts +0 -8
- package/src/core/primitives/kbd/__workshop__/plain.tsx +0 -9
- package/src/core/primitives/label/__workshop__/index.ts +0 -19
- package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +0 -48
- package/src/core/primitives/label/__workshop__/plain.tsx +0 -24
- package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
- package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
- package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
- package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
- package/src/core/primitives/popover/__workshop__/PlainStory.tsx +0 -71
- package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
- package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +0 -89
- package/src/core/primitives/popover/__workshop__/TestStory.tsx +0 -97
- package/src/core/primitives/popover/__workshop__/index.ts +0 -49
- package/src/core/primitives/radio/__workshop__/example.tsx +0 -63
- package/src/core/primitives/radio/__workshop__/index.ts +0 -11
- package/src/core/primitives/radio/__workshop__/plain.tsx +0 -28
- package/src/core/primitives/select/__workshop__/index.ts +0 -11
- package/src/core/primitives/select/__workshop__/plain.tsx +0 -27
- package/src/core/primitives/select/__workshop__/readOnly.tsx +0 -23
- package/src/core/primitives/spinner/__workshop__/Props.tsx +0 -15
- package/src/core/primitives/spinner/__workshop__/index.ts +0 -14
- package/src/core/primitives/stack/__workshop__/index.ts +0 -14
- package/src/core/primitives/stack/__workshop__/plain.tsx +0 -32
- package/src/core/primitives/switch/__workshop__/example.tsx +0 -23
- package/src/core/primitives/switch/__workshop__/index.ts +0 -11
- package/src/core/primitives/switch/__workshop__/props.tsx +0 -21
- package/src/core/primitives/text/__workshop__/colored.tsx +0 -30
- package/src/core/primitives/text/__workshop__/example.tsx +0 -39
- package/src/core/primitives/text/__workshop__/index.ts +0 -24
- package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +0 -48
- package/src/core/primitives/textArea/__workshop__/index.ts +0 -14
- package/src/core/primitives/textArea/__workshop__/plain.tsx +0 -50
- package/src/core/primitives/textInput/__workshop__/clearButton.tsx +0 -30
- package/src/core/primitives/textInput/__workshop__/customValidity.tsx +0 -17
- package/src/core/primitives/textInput/__workshop__/index.ts +0 -44
- package/src/core/primitives/textInput/__workshop__/plain.tsx +0 -98
- package/src/core/primitives/textInput/__workshop__/readOnly.tsx +0 -9
- package/src/core/primitives/textInput/__workshop__/states.tsx +0 -53
- package/src/core/primitives/textInput/__workshop__/tones.tsx +0 -277
- package/src/core/primitives/textInput/__workshop__/typed.tsx +0 -23
- package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
- package/src/core/primitives/tooltip/__workshop__/index.ts +0 -29
- package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
- package/src/core/primitives/tooltip/__workshop__/props.tsx +0 -107
- package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
- package/src/core/theme/__workshop__/build/Root.tsx +0 -367
- package/src/core/theme/__workshop__/build/helpers.ts +0 -46
- package/src/core/theme/__workshop__/build/story.tsx +0 -465
- package/src/core/theme/__workshop__/canvas.tsx +0 -352
- package/src/core/theme/__workshop__/color.tsx +0 -62
- package/src/core/theme/__workshop__/debug/story.tsx +0 -408
- package/src/core/theme/__workshop__/index.ts +0 -39
- package/src/core/theme/__workshop__/layer.tsx +0 -78
- package/src/core/theme/__workshop__/nestedProvider.tsx +0 -15
- package/src/core/utils/boundaryElement/__workshop__/index.ts +0 -14
- package/src/core/utils/boundaryElement/__workshop__/plain.tsx +0 -19
- package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +0 -30
- package/src/core/utils/elementQuery/__workshop__/index.ts +0 -14
- package/src/core/utils/layer/__workshop__/_debug.tsx +0 -17
- package/src/core/utils/layer/__workshop__/index.ts +0 -24
- package/src/core/utils/layer/__workshop__/multipleRoots.tsx +0 -49
- package/src/core/utils/layer/__workshop__/nested.tsx +0 -98
- package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +0 -13
- package/src/core/utils/portal/__workshop__/index.ts +0 -14
- package/src/core/utils/portal/__workshop__/named.tsx +0 -63
- package/src/core/utils/virtualList/__workshop__/changingProps.tsx +0 -36
- package/src/core/utils/virtualList/__workshop__/elementScroll.tsx +0 -24
- package/src/core/utils/virtualList/__workshop__/index.ts +0 -29
- package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +0 -48
- package/src/core/utils/virtualList/__workshop__/windowScrolll.tsx +0 -22
|
@@ -6,21 +6,26 @@
|
|
|
6
6
|
// Access the ref using the method that doesn't yield a warning.
|
|
7
7
|
export function getElementRef(element: React.ReactElement) {
|
|
8
8
|
// React <=18 in DEV
|
|
9
|
+
// oxlint-disable-next-line unbound-method
|
|
9
10
|
let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get
|
|
10
11
|
let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning
|
|
11
12
|
|
|
12
13
|
if (mayWarn) {
|
|
14
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
13
15
|
return (element as any).ref
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
// React 19 in DEV
|
|
19
|
+
// oxlint-disable-next-line unbound-method
|
|
17
20
|
getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get
|
|
18
21
|
mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning
|
|
19
22
|
|
|
20
23
|
if (mayWarn) {
|
|
24
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
21
25
|
return (element.props as {ref?: React.Ref<unknown>}).ref
|
|
22
26
|
}
|
|
23
27
|
|
|
24
28
|
// Not DEV
|
|
29
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
25
30
|
return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref
|
|
26
31
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
/** @
|
|
1
|
+
/** @vitest-environment jsdom */
|
|
2
|
+
|
|
3
|
+
import {describe, expect, it, vi} from 'vitest'
|
|
2
4
|
|
|
3
5
|
import {render} from '../../../../test'
|
|
4
6
|
import {LayerContext} from './layerContext'
|
|
@@ -8,7 +10,7 @@ import {useLayer} from './useLayer'
|
|
|
8
10
|
describe('utils/layer', () => {
|
|
9
11
|
describe('useLayer', () => {
|
|
10
12
|
it('should get context value', async () => {
|
|
11
|
-
const log =
|
|
13
|
+
const log = vi.fn()
|
|
12
14
|
|
|
13
15
|
function Debug() {
|
|
14
16
|
const rootLayer = useLayer()
|
|
@@ -29,6 +31,7 @@ describe('utils/layer', () => {
|
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
return (
|
|
34
|
+
// oxlint-disable-next-line jsx-no-constructed-context-values
|
|
32
35
|
<LayerContext.Provider value={value}>
|
|
33
36
|
<Debug />
|
|
34
37
|
</LayerContext.Provider>
|
|
@@ -45,7 +48,7 @@ describe('utils/layer', () => {
|
|
|
45
48
|
})
|
|
46
49
|
|
|
47
50
|
it('should fail when no context value is provided', async () => {
|
|
48
|
-
const log =
|
|
51
|
+
const log = vi.fn()
|
|
49
52
|
|
|
50
53
|
function Debug() {
|
|
51
54
|
try {
|
|
@@ -61,6 +64,7 @@ describe('utils/layer', () => {
|
|
|
61
64
|
const value = undefined
|
|
62
65
|
|
|
63
66
|
return (
|
|
67
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
64
68
|
<LayerContext.Provider value={value as any}>
|
|
65
69
|
<Debug />
|
|
66
70
|
</LayerContext.Provider>
|
|
@@ -73,7 +77,7 @@ describe('utils/layer', () => {
|
|
|
73
77
|
})
|
|
74
78
|
|
|
75
79
|
it('should fail when context value is not compatible', async () => {
|
|
76
|
-
const log =
|
|
80
|
+
const log = vi.fn()
|
|
77
81
|
|
|
78
82
|
function Debug() {
|
|
79
83
|
try {
|
|
@@ -92,6 +96,7 @@ describe('utils/layer', () => {
|
|
|
92
96
|
}
|
|
93
97
|
|
|
94
98
|
return (
|
|
99
|
+
// oxlint-disable-next-line jsx-no-constructed-context-values, no-unsafe-type-assertion
|
|
95
100
|
<LayerContext.Provider value={value as any}>
|
|
96
101
|
<Debug />
|
|
97
102
|
</LayerContext.Provider>
|
|
@@ -49,6 +49,7 @@ const LayerChildren = forwardRef(function LayerChildren(
|
|
|
49
49
|
}, [isTopLayer, onActivate])
|
|
50
50
|
|
|
51
51
|
const handleFocus = useCallback(
|
|
52
|
+
// oxlint-disable-next-line no-unnecessary-type-arguments
|
|
52
53
|
(event: FocusEvent<HTMLDivElement, Element>) => {
|
|
53
54
|
// Call the user-provided onFocus handler if any
|
|
54
55
|
onFocus?.(event)
|
|
@@ -18,8 +18,10 @@ export function useLayer(): LayerContextValue {
|
|
|
18
18
|
return getLayerContext(value)
|
|
19
19
|
} catch (err) {
|
|
20
20
|
if (err instanceof Error) {
|
|
21
|
+
// oxlint-disable-next-line preserve-caught-error
|
|
21
22
|
throw new Error(`useLayer(): ${err.message}`)
|
|
22
23
|
} else {
|
|
24
|
+
// oxlint-disable-next-line preserve-caught-error, restrict-template-expressions
|
|
23
25
|
throw new Error(`useLayer(): ${err}`)
|
|
24
26
|
}
|
|
25
27
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
/** @
|
|
1
|
+
/** @vitest-environment jsdom */
|
|
2
|
+
|
|
3
|
+
import {describe, expect, it, vi} from 'vitest'
|
|
2
4
|
|
|
3
5
|
import {render} from '../../../../test'
|
|
4
6
|
import {PortalContext} from './portalContext'
|
|
@@ -8,7 +10,7 @@ import {usePortal} from './usePortal'
|
|
|
8
10
|
describe('utils/portal', () => {
|
|
9
11
|
describe('usePortal', () => {
|
|
10
12
|
it('should get context value', async () => {
|
|
11
|
-
const log =
|
|
13
|
+
const log = vi.fn()
|
|
12
14
|
|
|
13
15
|
function Debug() {
|
|
14
16
|
const rootPortal = usePortal()
|
|
@@ -26,6 +28,7 @@ describe('utils/portal', () => {
|
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
return (
|
|
31
|
+
// oxlint-disable-next-line jsx-no-constructed-context-values
|
|
29
32
|
<PortalContext.Provider value={value}>
|
|
30
33
|
<Debug />
|
|
31
34
|
</PortalContext.Provider>
|
|
@@ -40,7 +43,7 @@ describe('utils/portal', () => {
|
|
|
40
43
|
})
|
|
41
44
|
|
|
42
45
|
it('should fail when no context value is provided', async () => {
|
|
43
|
-
const log =
|
|
46
|
+
const log = vi.fn()
|
|
44
47
|
|
|
45
48
|
function Debug() {
|
|
46
49
|
try {
|
|
@@ -56,6 +59,7 @@ describe('utils/portal', () => {
|
|
|
56
59
|
const value = undefined
|
|
57
60
|
|
|
58
61
|
return (
|
|
62
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
59
63
|
<PortalContext.Provider value={value as any}>
|
|
60
64
|
<Debug />
|
|
61
65
|
</PortalContext.Provider>
|
|
@@ -68,7 +72,7 @@ describe('utils/portal', () => {
|
|
|
68
72
|
})
|
|
69
73
|
|
|
70
74
|
it('should fail when context value is not compatible', async () => {
|
|
71
|
-
const log =
|
|
75
|
+
const log = vi.fn()
|
|
72
76
|
|
|
73
77
|
function Debug() {
|
|
74
78
|
try {
|
|
@@ -87,6 +91,7 @@ describe('utils/portal', () => {
|
|
|
87
91
|
}
|
|
88
92
|
|
|
89
93
|
return (
|
|
94
|
+
// oxlint-disable-next-line jsx-no-constructed-context-values, no-unsafe-type-assertion
|
|
90
95
|
<PortalContext.Provider value={value as any}>
|
|
91
96
|
<Debug />
|
|
92
97
|
</PortalContext.Provider>
|
|
@@ -23,6 +23,7 @@ export interface PortalProviderProps {
|
|
|
23
23
|
* @public
|
|
24
24
|
*/
|
|
25
25
|
export function PortalProvider(props: PortalProviderProps): React.JSX.Element {
|
|
26
|
+
// oxlint-disable-next-line no-deprecated
|
|
26
27
|
const {boundaryElement, children, element, __unstable_elements: elementsProp} = props
|
|
27
28
|
const elements = useUnique(elementsProp)
|
|
28
29
|
const fallbackElement = useSyncExternalStore(
|
|
@@ -54,13 +55,13 @@ const emptySubscribe = () => () => {}
|
|
|
54
55
|
function useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {
|
|
55
56
|
const valueRef = useRef<ValueType>(value)
|
|
56
57
|
|
|
57
|
-
//
|
|
58
|
+
// oxlint-disable-next-line react-compiler
|
|
58
59
|
if (!_isEqual(valueRef.current, value)) {
|
|
59
|
-
//
|
|
60
|
+
// oxlint-disable-next-line react-compiler
|
|
60
61
|
valueRef.current = value
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
//
|
|
64
|
+
// oxlint-disable-next-line react-compiler
|
|
64
65
|
return valueRef.current
|
|
65
66
|
}
|
|
66
67
|
|
|
@@ -92,6 +92,7 @@ export const VirtualList = forwardRef(function VirtualList(
|
|
|
92
92
|
|
|
93
93
|
handleScroll()
|
|
94
94
|
|
|
95
|
+
// oxlint-disable-next-line consistent-return
|
|
95
96
|
return () => {
|
|
96
97
|
scrollEl.removeEventListener('scroll', handleScroll)
|
|
97
98
|
|
|
@@ -111,11 +112,11 @@ export const VirtualList = forwardRef(function VirtualList(
|
|
|
111
112
|
window.addEventListener('scroll', handleScroll, {passive: true})
|
|
112
113
|
window.addEventListener('resize', handleResize)
|
|
113
114
|
|
|
114
|
-
// eslint-disable-next-line react-hooks/set-state-in-effect
|
|
115
115
|
setScrollHeight(window.innerHeight)
|
|
116
116
|
|
|
117
117
|
handleScroll()
|
|
118
118
|
|
|
119
|
+
// oxlint-disable-next-line consistent-return
|
|
119
120
|
return () => {
|
|
120
121
|
window.removeEventListener('scroll', handleScroll)
|
|
121
122
|
window.removeEventListener('resize', handleResize)
|
|
@@ -8,11 +8,16 @@ import {
|
|
|
8
8
|
import {ThemeColorBuilderOpts} from '../factory'
|
|
9
9
|
|
|
10
10
|
export function createSelectableTones(
|
|
11
|
+
// oxlint-disable-next-line no-deprecated
|
|
11
12
|
opts: ThemeColorBuilderOpts,
|
|
13
|
+
// oxlint-disable-next-line no-deprecated
|
|
12
14
|
base: ThemeColorBase,
|
|
13
15
|
dark: boolean,
|
|
16
|
+
// oxlint-disable-next-line no-deprecated
|
|
14
17
|
solid: ThemeColorSolid,
|
|
18
|
+
// oxlint-disable-next-line no-deprecated
|
|
15
19
|
muted: ThemeColorMuted,
|
|
20
|
+
// oxlint-disable-next-line no-deprecated
|
|
16
21
|
): ThemeColorSelectable {
|
|
17
22
|
return {
|
|
18
23
|
default: _createSelectableStates(opts, base, dark, solid, muted, 'default'),
|
|
@@ -24,12 +29,17 @@ export function createSelectableTones(
|
|
|
24
29
|
}
|
|
25
30
|
|
|
26
31
|
function _createSelectableStates(
|
|
32
|
+
// oxlint-disable-next-line no-deprecated
|
|
27
33
|
opts: ThemeColorBuilderOpts,
|
|
34
|
+
// oxlint-disable-next-line no-deprecated
|
|
28
35
|
base: ThemeColorBase,
|
|
29
36
|
dark: boolean,
|
|
37
|
+
// oxlint-disable-next-line no-deprecated
|
|
30
38
|
solid: ThemeColorSolid,
|
|
39
|
+
// oxlint-disable-next-line no-deprecated
|
|
31
40
|
muted: ThemeColorMuted,
|
|
32
41
|
tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical',
|
|
42
|
+
// oxlint-disable-next-line no-deprecated
|
|
33
43
|
): ThemeColorSelectableStates {
|
|
34
44
|
return {
|
|
35
45
|
enabled: opts.selectable({
|
|
@@ -2,10 +2,14 @@ import {ThemeColorBase, ThemeColorName, ThemeColorSolid} from '../../../../syste
|
|
|
2
2
|
import {ThemeColorBuilderOpts} from '../factory'
|
|
3
3
|
|
|
4
4
|
export function createSolidTones(
|
|
5
|
+
// oxlint-disable-next-line no-deprecated
|
|
5
6
|
opts: ThemeColorBuilderOpts,
|
|
7
|
+
// oxlint-disable-next-line no-deprecated
|
|
6
8
|
base: ThemeColorBase,
|
|
7
9
|
dark: boolean,
|
|
10
|
+
// oxlint-disable-next-line no-deprecated
|
|
8
11
|
name: ThemeColorName,
|
|
12
|
+
// oxlint-disable-next-line no-deprecated
|
|
9
13
|
): ThemeColorSolid {
|
|
10
14
|
return {
|
|
11
15
|
default: {
|
|
@@ -8,11 +8,16 @@ import {ThemeColorBuilderOpts} from '../factory'
|
|
|
8
8
|
import {createButtonTones} from './createButtonTones'
|
|
9
9
|
|
|
10
10
|
export function createButtonModes(
|
|
11
|
+
// oxlint-disable-next-line no-deprecated
|
|
11
12
|
opts: ThemeColorBuilderOpts,
|
|
13
|
+
// oxlint-disable-next-line no-deprecated
|
|
12
14
|
base: ThemeColorBase,
|
|
13
15
|
dark: boolean,
|
|
16
|
+
// oxlint-disable-next-line no-deprecated
|
|
14
17
|
solid: ThemeColorSolid,
|
|
18
|
+
// oxlint-disable-next-line no-deprecated
|
|
15
19
|
muted: ThemeColorMuted,
|
|
20
|
+
// oxlint-disable-next-line no-deprecated
|
|
16
21
|
): ThemeColorButton {
|
|
17
22
|
return {
|
|
18
23
|
default: createButtonTones(opts, base, dark, solid, muted, 'default'),
|
|
@@ -8,12 +8,17 @@ import {
|
|
|
8
8
|
import {ThemeColorBuilderOpts} from '../factory'
|
|
9
9
|
|
|
10
10
|
export function createButtonTones(
|
|
11
|
+
// oxlint-disable-next-line no-deprecated
|
|
11
12
|
opts: ThemeColorBuilderOpts,
|
|
13
|
+
// oxlint-disable-next-line no-deprecated
|
|
12
14
|
base: ThemeColorBase,
|
|
13
15
|
dark: boolean,
|
|
16
|
+
// oxlint-disable-next-line no-deprecated
|
|
14
17
|
solid: ThemeColorSolid,
|
|
18
|
+
// oxlint-disable-next-line no-deprecated
|
|
15
19
|
muted: ThemeColorMuted,
|
|
16
20
|
mode: ThemeColorButtonModeKey,
|
|
21
|
+
// oxlint-disable-next-line no-deprecated
|
|
17
22
|
): ThemeColorButtonTones {
|
|
18
23
|
return {
|
|
19
24
|
default: opts.button({
|
|
@@ -8,12 +8,18 @@ import {
|
|
|
8
8
|
import {ThemeColorBuilderOpts} from '../factory'
|
|
9
9
|
|
|
10
10
|
export function createCardStates(
|
|
11
|
+
// oxlint-disable-next-line no-deprecated
|
|
11
12
|
opts: ThemeColorBuilderOpts,
|
|
13
|
+
// oxlint-disable-next-line no-deprecated
|
|
12
14
|
base: ThemeColorBase,
|
|
13
15
|
dark: boolean,
|
|
16
|
+
// oxlint-disable-next-line no-deprecated
|
|
14
17
|
name: ThemeColorName,
|
|
18
|
+
// oxlint-disable-next-line no-deprecated
|
|
15
19
|
solid: ThemeColorSolid,
|
|
20
|
+
// oxlint-disable-next-line no-deprecated
|
|
16
21
|
muted: ThemeColorMuted,
|
|
22
|
+
// oxlint-disable-next-line no-deprecated
|
|
17
23
|
): ThemeColorCard {
|
|
18
24
|
return {
|
|
19
25
|
enabled: opts.card({
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
/** @
|
|
1
|
+
/** @vitest-environment jsdom */
|
|
2
|
+
|
|
3
|
+
import {describe, expect, it} from 'vitest'
|
|
2
4
|
|
|
3
5
|
import {createColorTheme} from './factory'
|
|
4
6
|
|
|
5
7
|
describe('color', () => {
|
|
6
8
|
describe('createColorTheme', () => {
|
|
7
9
|
it('should generate base (scheme=light, name=default)', () => {
|
|
10
|
+
// oxlint-disable-next-line no-deprecated
|
|
8
11
|
const theme = createColorTheme()
|
|
9
12
|
const scheme = 'light'
|
|
10
13
|
const name = 'default'
|
|
@@ -29,6 +32,7 @@ describe('color', () => {
|
|
|
29
32
|
})
|
|
30
33
|
|
|
31
34
|
it('should generate muted states (scheme=light, name=default)', () => {
|
|
35
|
+
// oxlint-disable-next-line no-deprecated
|
|
32
36
|
const theme = createColorTheme()
|
|
33
37
|
const scheme = 'light'
|
|
34
38
|
const name = 'default'
|
|
@@ -30,53 +30,81 @@ import {createSpot} from './spot/createSpot'
|
|
|
30
30
|
* @deprecated Use `buildColorTheme` instead.
|
|
31
31
|
*/
|
|
32
32
|
export interface ThemeColorBuilderOpts {
|
|
33
|
+
// oxlint-disable-next-line no-deprecated
|
|
33
34
|
base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase
|
|
34
35
|
solid: (opts: {
|
|
36
|
+
// oxlint-disable-next-line no-deprecated
|
|
35
37
|
base: ThemeColorBase
|
|
36
38
|
dark: boolean
|
|
39
|
+
// oxlint-disable-next-line no-deprecated
|
|
37
40
|
tone: ThemeColorName
|
|
41
|
+
// oxlint-disable-next-line no-deprecated
|
|
38
42
|
name: ThemeColorName
|
|
39
43
|
state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'
|
|
44
|
+
// oxlint-disable-next-line no-deprecated
|
|
40
45
|
}) => ThemeColorGenericState
|
|
41
46
|
muted: (opts: {
|
|
47
|
+
// oxlint-disable-next-line no-deprecated
|
|
42
48
|
base: ThemeColorBase
|
|
43
49
|
dark: boolean
|
|
50
|
+
// oxlint-disable-next-line no-deprecated
|
|
44
51
|
tone: ThemeColorToneKey
|
|
52
|
+
// oxlint-disable-next-line no-deprecated
|
|
45
53
|
name: ThemeColorName
|
|
46
54
|
state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'
|
|
55
|
+
// oxlint-disable-next-line no-deprecated
|
|
47
56
|
}) => ThemeColorGenericState
|
|
48
57
|
card: (opts: {
|
|
58
|
+
// oxlint-disable-next-line no-deprecated
|
|
49
59
|
base: ThemeColorBase
|
|
50
60
|
dark: boolean
|
|
61
|
+
// oxlint-disable-next-line no-deprecated
|
|
51
62
|
muted: ThemeColorMuted
|
|
63
|
+
// oxlint-disable-next-line no-deprecated
|
|
52
64
|
name: ThemeColorName
|
|
65
|
+
// oxlint-disable-next-line no-deprecated
|
|
53
66
|
solid: ThemeColorSolid
|
|
54
67
|
state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'
|
|
68
|
+
// oxlint-disable-next-line no-deprecated
|
|
55
69
|
}) => ThemeColorGenericState
|
|
56
70
|
button: (opts: {
|
|
57
71
|
dark: boolean
|
|
58
72
|
mode: ThemeColorButtonModeKey
|
|
73
|
+
// oxlint-disable-next-line no-deprecated
|
|
59
74
|
base: ThemeColorBase
|
|
75
|
+
// oxlint-disable-next-line no-deprecated
|
|
60
76
|
solid: ThemeColorSolidTone
|
|
77
|
+
// oxlint-disable-next-line no-deprecated
|
|
61
78
|
muted: ThemeColorMutedTone
|
|
79
|
+
// oxlint-disable-next-line no-deprecated
|
|
62
80
|
}) => ThemeColorButtonStates
|
|
63
81
|
input: (opts: {
|
|
82
|
+
// oxlint-disable-next-line no-deprecated
|
|
64
83
|
base: ThemeColorBase
|
|
84
|
+
// oxlint-disable-next-line no-deprecated
|
|
65
85
|
solid: ThemeColorSolidTone
|
|
86
|
+
// oxlint-disable-next-line no-deprecated
|
|
66
87
|
muted: ThemeColorMutedTone
|
|
67
88
|
dark: boolean
|
|
68
89
|
mode: 'default' | 'invalid'
|
|
69
90
|
state: 'enabled' | 'disabled' | 'hovered' | 'readOnly'
|
|
91
|
+
// oxlint-disable-next-line no-deprecated
|
|
70
92
|
}) => ThemeColorInputState
|
|
71
93
|
selectable: (opts: {
|
|
72
94
|
dark: boolean
|
|
95
|
+
// oxlint-disable-next-line no-deprecated
|
|
73
96
|
base: ThemeColorBase
|
|
97
|
+
// oxlint-disable-next-line no-deprecated
|
|
74
98
|
solid: ThemeColorSolid
|
|
99
|
+
// oxlint-disable-next-line no-deprecated
|
|
75
100
|
muted: ThemeColorMuted
|
|
76
101
|
state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'
|
|
77
102
|
tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'
|
|
103
|
+
// oxlint-disable-next-line no-deprecated
|
|
78
104
|
}) => ThemeColorGenericState
|
|
105
|
+
// oxlint-disable-next-line no-deprecated
|
|
79
106
|
syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax
|
|
107
|
+
// oxlint-disable-next-line no-deprecated
|
|
80
108
|
spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string
|
|
81
109
|
}
|
|
82
110
|
|
|
@@ -84,6 +112,7 @@ export interface ThemeColorBuilderOpts {
|
|
|
84
112
|
* @public
|
|
85
113
|
* @deprecated Use `ThemeConfig` instead.
|
|
86
114
|
*/
|
|
115
|
+
// oxlint-disable-next-line no-deprecated
|
|
87
116
|
export type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>
|
|
88
117
|
|
|
89
118
|
/**
|
|
@@ -91,8 +120,11 @@ export type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>
|
|
|
91
120
|
* @deprecated Use `buildColorTheme` instead.
|
|
92
121
|
*/
|
|
93
122
|
export function createColorTheme(
|
|
123
|
+
// oxlint-disable-next-line no-deprecated
|
|
94
124
|
partialOpts: PartialThemeColorBuilderOpts = {},
|
|
125
|
+
// oxlint-disable-next-line no-deprecated
|
|
95
126
|
): ThemeColorSchemes {
|
|
127
|
+
// oxlint-disable-next-line no-deprecated
|
|
96
128
|
const builders: ThemeColorBuilderOpts = {...defaultOpts, ...partialOpts}
|
|
97
129
|
|
|
98
130
|
return {
|
|
@@ -104,6 +136,7 @@ export function createColorTheme(
|
|
|
104
136
|
/**
|
|
105
137
|
* @internal
|
|
106
138
|
*/
|
|
139
|
+
// oxlint-disable-next-line no-deprecated
|
|
107
140
|
function _createColorScheme(opts: ThemeColorBuilderOpts, dark: boolean): ThemeColorScheme {
|
|
108
141
|
return {
|
|
109
142
|
default: _createColor(opts, dark, 'default'),
|
|
@@ -119,9 +152,12 @@ function _createColorScheme(opts: ThemeColorBuilderOpts, dark: boolean): ThemeCo
|
|
|
119
152
|
* @internal
|
|
120
153
|
*/
|
|
121
154
|
function _createColor(
|
|
155
|
+
// oxlint-disable-next-line no-deprecated
|
|
122
156
|
opts: ThemeColorBuilderOpts,
|
|
123
157
|
dark: boolean,
|
|
158
|
+
// oxlint-disable-next-line no-deprecated
|
|
124
159
|
name: ThemeColorName,
|
|
160
|
+
// oxlint-disable-next-line no-deprecated
|
|
125
161
|
): ThemeColor {
|
|
126
162
|
const base = opts.base({dark, name})
|
|
127
163
|
const solid = createSolidTones(opts, base, dark, name)
|
|
@@ -2,11 +2,16 @@ import {ThemeColorBase, ThemeColorInput, ThemeColorMuted, ThemeColorSolid} from
|
|
|
2
2
|
import {ThemeColorBuilderOpts} from '../factory'
|
|
3
3
|
|
|
4
4
|
export function createInputModes(
|
|
5
|
+
// oxlint-disable-next-line no-deprecated
|
|
5
6
|
opts: ThemeColorBuilderOpts,
|
|
7
|
+
// oxlint-disable-next-line no-deprecated
|
|
6
8
|
base: ThemeColorBase,
|
|
7
9
|
dark: boolean,
|
|
10
|
+
// oxlint-disable-next-line no-deprecated
|
|
8
11
|
solid: ThemeColorSolid,
|
|
12
|
+
// oxlint-disable-next-line no-deprecated
|
|
9
13
|
muted: ThemeColorMuted,
|
|
14
|
+
// oxlint-disable-next-line no-deprecated
|
|
10
15
|
): ThemeColorInput {
|
|
11
16
|
return {
|
|
12
17
|
default: {
|
|
@@ -2,10 +2,14 @@ import {ThemeColorBase, ThemeColorMuted, ThemeColorName} from '../../../../syste
|
|
|
2
2
|
import {ThemeColorBuilderOpts} from '../factory'
|
|
3
3
|
|
|
4
4
|
export function createMutedTones(
|
|
5
|
+
// oxlint-disable-next-line no-deprecated
|
|
5
6
|
opts: ThemeColorBuilderOpts,
|
|
7
|
+
// oxlint-disable-next-line no-deprecated
|
|
6
8
|
base: ThemeColorBase,
|
|
7
9
|
dark: boolean,
|
|
10
|
+
// oxlint-disable-next-line no-deprecated
|
|
8
11
|
name: ThemeColorName,
|
|
12
|
+
// oxlint-disable-next-line no-deprecated
|
|
9
13
|
): ThemeColorMuted {
|
|
10
14
|
return {
|
|
11
15
|
default: {
|
|
@@ -2,9 +2,12 @@ import {ThemeColorBase, ThemeColorSpot} from '../../../../system'
|
|
|
2
2
|
import {ThemeColorBuilderOpts} from '../factory'
|
|
3
3
|
|
|
4
4
|
export function createSpot(
|
|
5
|
+
// oxlint-disable-next-line no-deprecated
|
|
5
6
|
opts: ThemeColorBuilderOpts,
|
|
7
|
+
// oxlint-disable-next-line no-deprecated
|
|
6
8
|
base: ThemeColorBase,
|
|
7
9
|
dark: boolean,
|
|
10
|
+
// oxlint-disable-next-line no-deprecated
|
|
8
11
|
): ThemeColorSpot {
|
|
9
12
|
return {
|
|
10
13
|
gray: opts.spot({base, dark, key: 'gray'}),
|
|
@@ -47,6 +47,7 @@ function buildColorScheme(
|
|
|
47
47
|
): ThemeColorScheme_v2 {
|
|
48
48
|
const {scheme} = options
|
|
49
49
|
|
|
50
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
50
51
|
const colorScheme = {} as ThemeColorScheme_v2
|
|
51
52
|
|
|
52
53
|
for (const tone of THEME_COLOR_CARD_TONES) {
|
|
@@ -167,6 +168,7 @@ function buildBadgeColorTheme(
|
|
|
167
168
|
): ThemeColorBadge_v2 {
|
|
168
169
|
const {scheme} = options
|
|
169
170
|
|
|
171
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
170
172
|
const colorBadge = {} as ThemeColorBadge_v2
|
|
171
173
|
|
|
172
174
|
for (const tone of THEME_COLOR_STATE_TONES) {
|
|
@@ -206,6 +208,7 @@ function buildButtonColorTheme(
|
|
|
206
208
|
modes[mode] = buildButtonTonesColorTheme({cardTone, scheme, mode}, config)
|
|
207
209
|
}
|
|
208
210
|
|
|
211
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
209
212
|
return modes as ThemeColorButton_v2
|
|
210
213
|
}
|
|
211
214
|
|
|
@@ -225,6 +228,7 @@ function buildButtonTonesColorTheme(
|
|
|
225
228
|
tones[tone] = buildButtonStatesColorTheme({cardTone, mode, scheme, tone}, config)
|
|
226
229
|
}
|
|
227
230
|
|
|
231
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
228
232
|
return tones as ThemeColorButtonMode_v2
|
|
229
233
|
}
|
|
230
234
|
|
|
@@ -245,6 +249,7 @@ function buildButtonStatesColorTheme(
|
|
|
245
249
|
states[state] = buildButtonStateColorTheme({cardTone, mode, tone, scheme, state}, config)
|
|
246
250
|
}
|
|
247
251
|
|
|
252
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
248
253
|
return states as ThemeColorButtonTone_v2
|
|
249
254
|
}
|
|
250
255
|
|
|
@@ -372,6 +377,7 @@ function buildSelectableColorTheme(
|
|
|
372
377
|
tones[tone] = buildSelectableStatesColorTheme({cardTone, scheme, tone}, config)
|
|
373
378
|
}
|
|
374
379
|
|
|
380
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
375
381
|
return tones as ThemeColorButtonMode_v2
|
|
376
382
|
}
|
|
377
383
|
|
|
@@ -391,6 +397,7 @@ function buildSelectableStatesColorTheme(
|
|
|
391
397
|
states[state] = buildSelectableStateColorTheme({cardTone, tone, scheme, state}, config)
|
|
392
398
|
}
|
|
393
399
|
|
|
400
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
394
401
|
return states as ThemeColorButtonTone_v2
|
|
395
402
|
}
|
|
396
403
|
|
package/src/theme/build/merge.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import {isRecord} from './lib/isRecord'
|
|
2
2
|
|
|
3
3
|
export function merge<T extends Record<string, any>>(...records: (T | undefined)[]): T {
|
|
4
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
4
5
|
const _records = records.filter(Boolean) as T[]
|
|
5
6
|
|
|
6
7
|
if (_records.length === 0) {
|
|
8
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
7
9
|
return {} as T
|
|
8
10
|
}
|
|
9
11
|
|
|
12
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
10
13
|
return _records.reduce(_merge, {} as T)
|
|
11
14
|
}
|
|
12
15
|
|
|
@@ -16,8 +19,10 @@ function _merge<T extends Record<string, any>>(acc: T, source: T): T {
|
|
|
16
19
|
const nextValue = source[key]
|
|
17
20
|
|
|
18
21
|
if (isRecord(prevValue) && isRecord(nextValue)) {
|
|
22
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
19
23
|
;(acc as any)[key] = merge(prevValue, nextValue)
|
|
20
24
|
} else {
|
|
25
|
+
// oxlint-disable-next-line no-unsafe-type-assertion
|
|
21
26
|
;(acc as any)[key] = nextValue
|
|
22
27
|
}
|
|
23
28
|
}
|