@sanity/ui 3.0.0-static.2 → 3.0.0-static.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -6
- package/bin/{ui.js → sanity-ui.cjs} +1 -1
- package/dist/_chunks-cjs/_visual-editing.cjs +2488 -0
- package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -0
- package/dist/_chunks-cjs/{refractor.js → refractor.cjs} +1 -2
- package/dist/_chunks-cjs/refractor.cjs.map +1 -0
- package/dist/_chunks-es/_visual-editing.js +2500 -0
- package/dist/_chunks-es/_visual-editing.js.map +1 -0
- package/dist/_chunks-es/{refractor.mjs → refractor.js} +1 -2
- package/dist/_chunks-es/refractor.js.map +1 -0
- package/dist/_visual-editing.cjs +30 -0
- package/dist/_visual-editing.cjs.map +1 -0
- package/dist/_visual-editing.d.cts +893 -0
- package/dist/_visual-editing.d.ts +503 -416
- package/dist/_visual-editing.js +29 -30
- package/dist/_visual-editing.js.map +1 -1
- package/dist/css.cjs +598 -0
- package/dist/css.cjs.map +1 -0
- package/dist/css.d.cts +14884 -0
- package/dist/css.d.ts +14379 -1630
- package/dist/css.js +480 -4594
- package/dist/css.js.map +1 -1
- package/dist/index.cjs +2222 -0
- package/dist/index.cjs.map +1 -0
- package/dist/{index.d.mts → index.d.cts} +1284 -961
- package/dist/index.d.ts +1284 -961
- package/dist/index.js +1270 -592
- package/dist/index.js.map +1 -1
- package/dist/{theme.mjs → theme.cjs} +2843 -2571
- package/dist/theme.cjs.map +1 -0
- package/dist/{theme.d.mts → theme.d.cts} +331 -311
- package/dist/theme.d.ts +331 -311
- package/dist/theme.js +2843 -2569
- package/dist/theme.js.map +1 -1
- package/dist/ui.css +22564 -0
- package/exports/_visual-editing.ts +0 -1
- package/package.json +84 -79
- package/src/cli/buildCommand.ts +3 -41
- package/src/cli/index.ts +2 -14
- package/src/core/_compat/helpers.ts +72 -0
- package/src/core/_compat/index.ts +1 -6
- package/src/core/_compat/styles/_responsive.ts +1 -1
- package/src/core/_compat/theme/theme.test.tsx +4 -5
- package/src/core/_compat/theme/themeColorProvider.tsx +4 -10
- package/src/core/_compat/theme/themeContext.ts +5 -5
- package/src/core/_compat/theme/themeProvider.tsx +19 -13
- package/src/core/_compat/theme/types.ts +2 -4
- package/src/core/_compat/theme/useRootTheme.ts +2 -4
- package/src/core/_compat/theme/useTheme.ts +3 -7
- package/src/core/_compat/types.ts +0 -73
- package/src/core/components/autocomplete/__workshop__/async.tsx +6 -6
- package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +11 -18
- package/src/core/components/autocomplete/__workshop__/custom.tsx +21 -20
- package/src/core/components/autocomplete/__workshop__/example.tsx +17 -17
- package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +5 -5
- package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +57 -59
- package/src/core/components/autocomplete/autocomplete.tsx +106 -140
- package/src/core/components/autocomplete/autocompleteOption.tsx +1 -1
- package/src/core/components/autocomplete/autocompleteReducer.ts +1 -1
- package/src/core/components/autocomplete/constants.ts +1 -1
- package/src/core/components/autocomplete/types.ts +4 -9
- package/src/core/components/breadcrumbs/__workshop__/example.tsx +2 -3
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +32 -28
- package/src/core/components/dialog/__workshop__/activate.tsx +4 -4
- package/src/core/components/dialog/__workshop__/autoFocus.tsx +2 -2
- package/src/core/components/dialog/__workshop__/onScroll.tsx +16 -4
- package/src/core/components/dialog/__workshop__/position.tsx +4 -4
- package/src/core/components/dialog/__workshop__/props.tsx +7 -7
- package/src/core/components/dialog/__workshop__/wrapped.tsx +2 -2
- package/src/core/components/dialog/dialog.tsx +104 -304
- package/src/core/components/dialog/dialogCard.tsx +190 -0
- package/src/core/components/dialog/dialogContext.ts +5 -3
- package/src/core/components/dialog/dialogProvider.tsx +6 -7
- package/src/core/components/dialog/isTargetWithinScope.ts +14 -0
- package/src/core/components/dialog/useDialog.ts +1 -1
- package/src/core/components/hotkeys/hotkeys.tsx +41 -27
- package/src/core/components/menu/__workshop__/asComponent.tsx +6 -6
- package/src/core/components/menu/__workshop__/closableMenuButton.tsx +5 -4
- package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +2 -2
- package/src/core/components/menu/__workshop__/customMenuItem.tsx +3 -3
- package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +1 -1
- package/src/core/components/menu/__workshop__/groups.tsx +2 -2
- package/src/core/components/menu/__workshop__/menuButton.tsx +4 -4
- package/src/core/components/menu/__workshop__/menuGroupRight.tsx +1 -1
- package/src/core/components/menu/__workshop__/nestedMenu.tsx +1 -1
- package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +13 -4
- package/src/core/components/menu/__workshop__/selectedItem.tsx +2 -2
- package/src/core/components/menu/__workshop__/tones.tsx +3 -3
- package/src/core/components/menu/__workshop__/withoutArrow.tsx +1 -1
- package/src/core/components/menu/menu.test.tsx +6 -7
- package/src/core/components/menu/menu.tsx +27 -35
- package/src/core/components/menu/menuButton.tsx +18 -24
- package/src/core/components/menu/menuContext.ts +1 -1
- package/src/core/components/menu/menuDivider.tsx +25 -15
- package/src/core/components/menu/menuGroup.tsx +39 -33
- package/src/core/components/menu/menuItem.tsx +58 -46
- package/src/core/components/menu/useMenu.ts +1 -1
- package/src/core/components/menu/useMenuController.ts +4 -4
- package/src/core/components/skeleton/__workshop__/delay.tsx +3 -3
- package/src/core/components/skeleton/__workshop__/skeleton.tsx +4 -4
- package/src/core/components/skeleton/codeSkeleton.tsx +49 -0
- package/src/core/components/skeleton/headingSkeleton.tsx +48 -0
- package/src/core/components/skeleton/index.ts +3 -0
- package/src/core/components/skeleton/labelSkeleton.tsx +47 -0
- package/src/core/components/skeleton/skeleton.tsx +37 -18
- package/src/core/components/skeleton/textSkeleton.tsx +29 -112
- package/src/core/components/tab/__workshop__/example.tsx +2 -2
- package/src/core/components/tab/tab.tsx +28 -26
- package/src/core/components/tab/tabList.tsx +49 -28
- package/src/core/components/tab/tabPanel.tsx +29 -22
- package/src/core/components/toast/__workshop__/hook.tsx +1 -1
- package/src/core/components/toast/__workshop__/toast.tsx +5 -5
- package/src/core/components/toast/toast.test.tsx +5 -5
- package/src/core/components/toast/toast.tsx +30 -57
- package/src/core/components/toast/toastContext.ts +1 -1
- package/src/core/components/toast/toastLayer.tsx +29 -13
- package/src/core/components/toast/toastProvider.tsx +5 -10
- package/src/core/components/toast/types.ts +3 -7
- package/src/core/components/toast/useToast.ts +2 -4
- package/src/core/components/tree/__workshop__/basic.perf.ts +1 -1
- package/src/core/components/tree/__workshop__/basic.tsx +1 -1
- package/src/core/components/tree/__workshop__/tabFromElement.tsx +1 -1
- package/src/core/components/tree/helpers.ts +1 -1
- package/src/core/components/tree/tree.tsx +196 -191
- package/src/core/components/tree/treeContext.ts +1 -1
- package/src/core/components/tree/treeGroup.tsx +24 -6
- package/src/core/components/tree/treeItem.tsx +44 -34
- package/src/core/components/tree/types.ts +2 -2
- package/src/core/components/tree/useTree.ts +1 -1
- package/src/core/constants.ts +6 -0
- package/src/core/helpers/props.ts +18 -0
- package/src/core/hooks/index.ts +1 -0
- package/src/core/hooks/useArrayProp.ts +1 -4
- package/src/core/hooks/useClickOutside.test.tsx +15 -16
- package/src/core/hooks/useClickOutside.ts +2 -6
- package/src/core/hooks/useClickOutsideEvent.test.tsx +4 -5
- package/src/core/hooks/useClickOutsideEvent.ts +3 -9
- package/src/core/hooks/useDelayed.test.ts +6 -7
- package/src/core/hooks/useDelayedState.ts +1 -1
- package/src/core/hooks/useElementRect/__workshop__/example.tsx +1 -1
- package/src/core/hooks/useElementSize.ts +1 -1
- package/src/core/hooks/useForwardedRef.ts +1 -1
- package/src/core/hooks/useMatchMedia.ts +13 -31
- package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +1 -1
- package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +3 -18
- package/src/core/hooks/useMediaIndex/useMediaIndex.ts +12 -12
- package/src/core/hooks/usePrefersDark.hydration.test.tsx +4 -4
- package/src/core/hooks/usePrefersDark.test.tsx +1 -0
- package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +4 -4
- package/src/core/hooks/usePrefersReducedMotion.test.tsx +1 -0
- package/src/core/hooks/useResponsiveProp.ts +28 -0
- package/src/core/index.ts +0 -1
- package/src/core/lib/isArray.ts +3 -0
- package/src/core/middleware/origin.ts +1 -1
- package/src/core/primitives/_selectable/selectable.tsx +33 -24
- package/src/core/primitives/avatar/__workshop__/asButton.tsx +2 -2
- package/src/core/primitives/avatar/__workshop__/stack.tsx +2 -2
- package/src/core/primitives/avatar/__workshop__/withinButton.tsx +2 -2
- package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +1 -1
- package/src/core/primitives/avatar/avatar.tsx +43 -48
- package/src/core/primitives/avatar/avatarCounter.tsx +46 -39
- package/src/core/primitives/avatar/avatarStack.tsx +44 -45
- package/src/core/primitives/avatar/types.ts +3 -3
- package/src/core/primitives/badge/__workshop__/props.tsx +6 -17
- package/src/core/primitives/badge/__workshop__/tones.tsx +1 -6
- package/src/core/primitives/badge/badge.test.tsx +2 -3
- package/src/core/primitives/badge/badge.tsx +34 -40
- package/src/core/primitives/badge/types.ts +2 -1
- package/src/core/primitives/box/__workshop__/props.tsx +2 -2
- package/src/core/primitives/box/__workshop__/responsive.tsx +2 -1
- package/src/core/primitives/box/box.tsx +153 -88
- package/src/core/primitives/button/__workshop__/custom.tsx +19 -42
- package/src/core/primitives/button/__workshop__/customIcons.tsx +3 -3
- package/src/core/primitives/button/__workshop__/disabled.tsx +9 -9
- package/src/core/primitives/button/__workshop__/props.tsx +19 -22
- package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +3 -3
- package/src/core/primitives/button/__workshop__/stacked.tsx +15 -16
- package/src/core/primitives/button/__workshop__/uploadButton.tsx +2 -1
- package/src/core/primitives/button/button.test.tsx +3 -18
- package/src/core/primitives/button/button.tsx +67 -76
- package/src/core/primitives/card/__workshop__/asButton.tsx +14 -14
- package/src/core/primitives/card/__workshop__/asComponent.tsx +3 -3
- package/src/core/primitives/card/__workshop__/checkered.tsx +1 -1
- package/src/core/primitives/card/__workshop__/index.ts +1 -1
- package/src/core/primitives/card/__workshop__/interactive.tsx +3 -4
- package/src/core/primitives/card/__workshop__/listNavigation.tsx +3 -3
- package/src/core/primitives/card/__workshop__/props.tsx +14 -17
- package/src/core/primitives/card/__workshop__/selected.tsx +10 -41
- package/src/core/primitives/card/__workshop__/{allTones.tsx → tones.tsx} +3 -3
- package/src/core/primitives/card/card.tsx +52 -48
- package/src/core/primitives/card/cardContext.ts +10 -0
- package/src/core/primitives/card/cardProvider.tsx +27 -0
- package/src/core/primitives/card/index.ts +2 -0
- package/src/core/primitives/card/types.ts +19 -3
- package/src/core/primitives/card/useCard.ts +9 -0
- package/src/core/primitives/checkbox/__workshop__/props.tsx +6 -4
- package/src/core/primitives/checkbox/__workshop__/tones.tsx +11 -20
- package/src/core/primitives/checkbox/checkbox.tsx +30 -23
- package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +1 -1
- package/src/core/primitives/code/__workshop__/props.tsx +4 -7
- package/src/core/primitives/code/code.tsx +27 -30
- package/src/core/primitives/code/refractor.tsx +0 -2
- package/src/core/primitives/container/__workshop__/example.tsx +2 -2
- package/src/core/primitives/container/container.tsx +27 -25
- package/src/core/primitives/flex/__workshop__/example.tsx +2 -2
- package/src/core/primitives/flex/flex.tsx +44 -17
- package/src/core/primitives/grid/grid.tsx +20 -17
- package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +2 -2
- package/src/core/primitives/heading/__workshop__/plain.tsx +12 -15
- package/src/core/primitives/heading/heading.tsx +51 -33
- package/src/core/primitives/inline/__workshop__/plain.tsx +2 -5
- package/src/core/primitives/inline/inline.tsx +46 -27
- package/src/core/primitives/inline/types.ts +1 -0
- package/src/core/primitives/kbd/kbd.tsx +28 -28
- package/src/core/primitives/label/__workshop__/plain.tsx +8 -17
- package/src/core/primitives/label/label.tsx +49 -39
- package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +6 -6
- package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +3 -3
- package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +1 -1
- package/src/core/primitives/popover/__workshop__/PlainStory.tsx +3 -3
- package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +3 -4
- package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +10 -6
- package/src/core/primitives/popover/__workshop__/TestStory.tsx +5 -4
- package/src/core/primitives/popover/constants.ts +1 -1
- package/src/core/primitives/popover/floating-ui/size.ts +2 -2
- package/src/core/primitives/popover/helpers.ts +1 -1
- package/src/core/primitives/popover/popover.tsx +299 -335
- package/src/core/primitives/popover/popoverLayer.tsx +147 -0
- package/src/core/primitives/popover/types.ts +3 -2
- package/src/core/primitives/radio/__workshop__/example.tsx +3 -3
- package/src/core/primitives/radio/__workshop__/plain.tsx +3 -3
- package/src/core/primitives/radio/radio.tsx +34 -19
- package/src/core/primitives/select/__workshop__/plain.tsx +15 -6
- package/src/core/primitives/select/__workshop__/readOnly.tsx +1 -1
- package/src/core/primitives/select/select.tsx +28 -28
- package/src/core/primitives/spinner/__workshop__/Props.tsx +4 -5
- package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +7 -9
- package/src/core/primitives/spinner/spinner.tsx +27 -15
- package/src/core/primitives/stack/__workshop__/plain.tsx +2 -2
- package/src/core/primitives/stack/stack.tsx +44 -20
- package/src/core/primitives/switch/switch.tsx +31 -17
- package/src/core/primitives/text/__workshop__/colored.tsx +6 -6
- package/src/core/primitives/text/__workshop__/example.tsx +9 -20
- package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +1 -1
- package/src/core/primitives/text/text.tsx +52 -44
- package/src/core/primitives/textArea/__workshop__/plain.tsx +44 -33
- package/src/core/primitives/textArea/textArea.tsx +47 -22
- package/src/core/primitives/textInput/__workshop__/customValidity.tsx +2 -2
- package/src/core/primitives/textInput/__workshop__/plain.tsx +36 -30
- package/src/core/primitives/textInput/__workshop__/states.tsx +5 -5
- package/src/core/primitives/textInput/__workshop__/tones.tsx +2 -2
- package/src/core/primitives/textInput/__workshop__/typed.tsx +2 -2
- package/src/core/primitives/textInput/textInput.tsx +80 -106
- package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +5 -5
- package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +2 -2
- package/src/core/primitives/tooltip/__workshop__/props.tsx +9 -8
- package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +1 -1
- package/src/core/primitives/tooltip/constants.ts +1 -1
- package/src/core/primitives/tooltip/tooltip.test.tsx +61 -60
- package/src/core/primitives/tooltip/tooltip.tsx +107 -90
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +1 -1
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +3 -5
- package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +1 -1
- package/src/core/primitives/tooltip/tooltipLayer.tsx +105 -0
- package/src/core/primitives/types.ts +19 -30
- package/src/core/types/avatar.ts +3 -6
- package/src/core/types/badge.ts +2 -4
- package/src/core/types/button.ts +2 -4
- package/src/core/types/card.ts +2 -4
- package/src/core/types/dialog.ts +1 -3
- package/src/core/types/flex.ts +3 -3
- package/src/core/types/props.ts +20 -10
- package/src/core/types/selectable.ts +1 -1
- package/src/core/utils/arrow/arrow.tsx +43 -28
- package/src/core/utils/boundaryElement/boundaryElement.test.tsx +5 -5
- package/src/core/utils/boundaryElement/boundaryElementContext.ts +1 -1
- package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +4 -10
- package/src/core/utils/boundaryElement/types.ts +1 -3
- package/src/core/utils/boundaryElement/useBoundaryElement.ts +2 -4
- package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +15 -8
- package/src/core/utils/elementQuery/elementQuery.tsx +41 -19
- package/src/core/utils/errorBoundary.tsx +6 -4
- package/src/core/utils/index.ts +0 -1
- package/src/core/utils/layer/__workshop__/multipleRoots.tsx +5 -5
- package/src/core/utils/layer/__workshop__/nested.tsx +3 -3
- package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +9 -5
- package/src/core/utils/layer/getLayerContext.test.ts +3 -1
- package/src/core/utils/layer/getLayerContext.ts +1 -1
- package/src/core/utils/layer/layer.test.tsx +5 -5
- package/src/core/utils/layer/layer.tsx +25 -95
- package/src/core/utils/layer/layerCard.tsx +90 -0
- package/src/core/utils/layer/layerContext.ts +1 -1
- package/src/core/utils/layer/layerProvider.tsx +20 -17
- package/src/core/utils/layer/useLayer.ts +2 -4
- package/src/core/utils/portal/__workshop__/named.tsx +3 -3
- package/src/core/utils/portal/portal.test.tsx +5 -5
- package/src/core/utils/portal/{portal.ts → portal.tsx} +17 -11
- package/src/core/utils/portal/portalContext.ts +1 -1
- package/src/core/utils/portal/portalProvider.tsx +4 -10
- package/src/core/utils/portal/types.ts +1 -3
- package/src/core/utils/portal/usePortal.ts +2 -4
- package/src/core/utils/srOnly/srOnly.tsx +25 -27
- package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +1 -1
- package/src/core/utils/virtualList/virtualList.tsx +71 -55
- package/src/css/__theme/index.ts +16 -0
- package/src/css/__theme/lib/contract/buildVarContract.ts +78 -0
- package/src/css/__theme/lib/contract/index.ts +4 -0
- package/src/css/__theme/lib/contract/types.ts +17 -0
- package/src/css/__theme/resolveTheme.ts +865 -0
- package/src/css/_assign.ts +3 -0
- package/src/css/_composeClassNames.ts +12 -0
- package/src/css/_fromEntries.ts +3 -0
- package/src/css/_getClassNames.ts +9 -0
- package/src/css/_responsiveClassName.ts +45 -0
- package/src/css/_responsiveStyle.css.ts +34 -0
- package/src/css/_style.css.ts +9 -0
- package/src/css/components/breadcrumbs/breadcrumbs.css.ts +6 -0
- package/src/css/components/breadcrumbs/breadcrumbs.ts +5 -3
- package/src/css/components/dialog/dialog.css.ts +81 -0
- package/src/css/components/dialog/dialog.ts +20 -11
- package/src/css/components/index.ts +6 -0
- package/src/css/components/menu/menu.css.ts +14 -0
- package/src/css/components/menu/menu.ts +8 -5
- package/src/css/components/skeleton/skeleton.css.ts +132 -0
- package/src/css/components/skeleton/skeleton.ts +14 -9
- package/src/css/components/skeleton/types.ts +13 -5
- package/src/css/components/toast/toast.css.ts +16 -0
- package/src/css/components/toast/toast.ts +5 -15
- package/src/css/components/tree/tree.css.ts +65 -0
- package/src/css/components/tree/tree.ts +5 -3
- package/src/css/constants.ts +10 -0
- package/src/css/defaultTheme.css.ts +468 -0
- package/src/css/index.ts +12 -38
- package/src/css/layers.css.ts +9 -0
- package/src/css/primitives/_arrow/_arrow.css.ts +68 -0
- package/src/css/primitives/_arrow/_arrow.ts +18 -6
- package/src/css/primitives/_input/_input.css.ts +258 -0
- package/src/css/primitives/_input/input.ts +17 -14
- package/src/css/primitives/_input/types.ts +3 -3
- package/src/css/primitives/_selectable/_selectable.css.ts +121 -0
- package/src/css/primitives/_selectable/selectable.ts +5 -5
- package/src/css/primitives/_selectable/types.ts +3 -2
- package/src/css/primitives/avatar/avatar.css.ts +175 -0
- package/src/css/primitives/avatar/avatar.ts +52 -11
- package/src/css/primitives/avatar/types.ts +5 -3
- package/src/css/primitives/badge/badge.css.ts +26 -0
- package/src/css/primitives/badge/badge.ts +4 -4
- package/src/css/primitives/badge/types.ts +5 -4
- package/src/css/primitives/box/box.css.ts +19 -0
- package/src/css/primitives/box/box.ts +52 -16
- package/src/css/primitives/box/types.ts +46 -22
- package/src/css/primitives/button/button.css.ts +285 -0
- package/src/css/primitives/button/button.ts +15 -33
- package/src/css/primitives/button/index.ts +1 -0
- package/src/css/primitives/button/types.ts +19 -0
- package/src/css/primitives/card/card.css.ts +365 -0
- package/src/css/primitives/card/card.ts +9 -12
- package/src/css/primitives/card/types.ts +4 -6
- package/src/css/primitives/checkbox/checkbox.css.ts +193 -0
- package/src/css/primitives/checkbox/checkbox.ts +13 -5
- package/src/css/primitives/code/code.css.ts +271 -0
- package/src/css/primitives/code/code.ts +13 -5
- package/src/css/primitives/code/types.ts +4 -3
- package/src/css/primitives/container/container.css.ts +4 -0
- package/src/css/primitives/container/container.ts +12 -4
- package/src/css/primitives/container/types.ts +4 -2
- package/src/css/primitives/heading/heading.css.ts +85 -0
- package/src/css/primitives/heading/heading.ts +13 -11
- package/src/css/primitives/heading/types.ts +6 -3
- package/src/css/primitives/index.ts +24 -0
- package/src/css/primitives/kbd/kbd.css.ts +16 -0
- package/src/css/primitives/kbd/kbd.ts +6 -4
- package/src/css/primitives/kbd/types.ts +2 -3
- package/src/css/primitives/label/label.css.ts +85 -0
- package/src/css/primitives/label/label.ts +13 -10
- package/src/css/primitives/label/types.ts +13 -5
- package/src/css/primitives/popover/popover.css.ts +6 -0
- package/src/css/primitives/popover/popover.ts +10 -3
- package/src/css/primitives/radio/radio.css.ts +78 -0
- package/src/css/primitives/radio/radio.ts +15 -3
- package/src/css/primitives/select/select.css.ts +24 -0
- package/src/css/primitives/select/select.ts +7 -4
- package/src/css/primitives/select/types.ts +1 -1
- package/src/css/primitives/spinner/index.ts +1 -0
- package/src/css/primitives/spinner/spinner.css.ts +23 -0
- package/src/css/primitives/spinner/spinner.ts +9 -5
- package/src/css/primitives/spinner/types.ts +4 -0
- package/src/css/primitives/stack/index.ts +1 -0
- package/src/css/primitives/stack/stack.css.ts +6 -0
- package/src/css/primitives/stack/stack.ts +7 -0
- package/src/css/primitives/switch/switch.css.ts +98 -0
- package/src/css/primitives/switch/switch.ts +13 -7
- package/src/css/primitives/text/text.css.ts +85 -0
- package/src/css/primitives/text/text.ts +13 -11
- package/src/css/primitives/text/types.ts +9 -3
- package/src/css/primitives/textArea/textArea.css.ts +4 -0
- package/src/css/primitives/textArea/textArea.ts +5 -3
- package/src/css/primitives/textArea/types.ts +5 -3
- package/src/css/primitives/textInput/textInput.css.ts +41 -0
- package/src/css/primitives/textInput/textInput.ts +20 -4
- package/src/css/primitives/textInput/types.ts +3 -7
- package/src/css/primitives/tooltip/index.ts +1 -0
- package/src/css/primitives/tooltip/tooltip.css.ts +6 -0
- package/src/css/primitives/tooltip/tooltip.ts +8 -7
- package/src/css/primitives/tooltip/types.ts +4 -0
- package/src/css/props/alignItems/alignItems.css.ts +22 -0
- package/src/css/props/alignItems/alignItems.ts +8 -0
- package/src/css/props/alignItems/index.ts +2 -0
- package/src/css/props/alignItems/types.ts +9 -0
- package/src/css/props/border/border.css.ts +65 -0
- package/src/css/props/border/border.ts +36 -0
- package/src/css/props/border/types.ts +13 -0
- package/src/css/props/boxSizing/boxSizing.css.ts +11 -0
- package/src/css/props/boxSizing/boxSizing.ts +10 -0
- package/src/css/props/boxSizing/index.ts +2 -0
- package/src/css/props/boxSizing/types.ts +7 -0
- package/src/css/props/display/display.css.ts +56 -0
- package/src/css/props/display/display.ts +17 -0
- package/src/css/{styles → props}/display/types.ts +3 -4
- package/src/css/props/flex/flex.css.ts +52 -0
- package/src/css/props/flex/flex.ts +8 -0
- package/src/css/props/flex/types.ts +9 -0
- package/src/css/props/flexDirection/flexDirection.css.ts +19 -0
- package/src/css/props/flexDirection/flexDirection.ts +8 -0
- package/src/css/props/flexDirection/index.ts +2 -0
- package/src/css/props/flexDirection/types.ts +9 -0
- package/src/css/props/flexWrap/flexWrap.css.ts +16 -0
- package/src/css/props/flexWrap/flexWrap.ts +8 -0
- package/src/css/props/flexWrap/index.ts +2 -0
- package/src/css/props/flexWrap/types.ts +9 -0
- package/src/css/props/font/font.css.ts +93 -0
- package/src/css/props/font/font.ts +8 -0
- package/src/css/props/font/types.ts +6 -0
- package/src/css/props/gap/gap.css.ts +40 -0
- package/src/css/props/gap/gap.ts +13 -0
- package/src/css/{styles → props}/gap/types.ts +2 -2
- package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +19 -0
- package/src/css/props/gridAutoColumns/gridAutoColumns.ts +8 -0
- package/src/css/props/gridAutoColumns/index.ts +2 -0
- package/src/css/props/gridAutoColumns/types.ts +19 -0
- package/src/css/props/gridAutoFlow/gridAutoFlow.css.ts +19 -0
- package/src/css/props/gridAutoFlow/gridAutoFlow.ts +8 -0
- package/src/css/props/gridAutoFlow/index.ts +2 -0
- package/src/css/props/gridAutoFlow/types.ts +13 -0
- package/src/css/props/gridAutoRows/gridAutoRows.css.ts +19 -0
- package/src/css/props/gridAutoRows/gridAutoRows.ts +8 -0
- package/src/css/props/gridAutoRows/index.ts +2 -0
- package/src/css/props/gridAutoRows/types.ts +13 -0
- package/src/css/props/gridColumn/gridColumn.css.ts +49 -0
- package/src/css/props/gridColumn/gridColumn.ts +8 -0
- package/src/css/props/gridColumn/index.ts +2 -0
- package/src/css/props/gridColumn/types.ts +19 -0
- package/src/css/props/gridColumnEnd/gridColumnEnd.css.ts +46 -0
- package/src/css/props/gridColumnEnd/gridColumnEnd.ts +8 -0
- package/src/css/props/gridColumnEnd/index.ts +2 -0
- package/src/css/props/gridColumnEnd/types.ts +19 -0
- package/src/css/props/gridColumnStart/gridColumnStart.css.ts +46 -0
- package/src/css/props/gridColumnStart/gridColumnStart.ts +11 -0
- package/src/css/props/gridColumnStart/index.ts +2 -0
- package/src/css/props/gridColumnStart/types.ts +19 -0
- package/src/css/props/gridRow/gridRow.css.ts +49 -0
- package/src/css/props/gridRow/gridRow.ts +8 -0
- package/src/css/props/gridRow/index.ts +2 -0
- package/src/css/props/gridRow/types.ts +19 -0
- package/src/css/props/gridRowEnd/gridRowEnd.css.ts +46 -0
- package/src/css/props/gridRowEnd/gridRowEnd.ts +8 -0
- package/src/css/props/gridRowEnd/index.ts +2 -0
- package/src/css/props/gridRowEnd/types.ts +19 -0
- package/src/css/props/gridRowStart/gridRowStart.css.ts +46 -0
- package/src/css/props/gridRowStart/gridRowStart.ts +8 -0
- package/src/css/props/gridRowStart/index.ts +2 -0
- package/src/css/props/gridRowStart/types.ts +19 -0
- package/src/css/props/gridTemplateColumns/gridTemplateColumns.css.ts +43 -0
- package/src/css/props/gridTemplateColumns/gridTemplateColumns.ts +8 -0
- package/src/css/props/gridTemplateColumns/index.ts +2 -0
- package/src/css/props/gridTemplateColumns/types.ts +19 -0
- package/src/css/props/gridTemplateRows/gridTemplateRows.css.ts +43 -0
- package/src/css/props/gridTemplateRows/gridTemplateRows.ts +8 -0
- package/src/css/props/gridTemplateRows/index.ts +2 -0
- package/src/css/props/gridTemplateRows/types.ts +19 -0
- package/src/css/props/height/height.css.ts +25 -0
- package/src/css/props/height/height.ts +8 -0
- package/src/css/props/height/index.ts +2 -0
- package/src/css/props/height/types.ts +15 -0
- package/src/css/props/index.ts +37 -0
- package/src/css/props/inset/inset.css.ts +37 -0
- package/src/css/props/inset/inset.ts +21 -0
- package/src/css/{styles → props}/inset/types.ts +1 -1
- package/src/css/props/justifyContent/index.ts +2 -0
- package/src/css/props/justifyContent/justifyContent.css.ts +25 -0
- package/src/css/props/justifyContent/justifyContent.ts +8 -0
- package/src/css/props/justifyContent/types.ts +15 -0
- package/src/css/props/margin/margin.css.ts +117 -0
- package/src/css/props/margin/margin.ts +25 -0
- package/src/css/props/margin/types.ts +17 -0
- package/src/css/props/maxWidth/maxWidth.css.ts +32 -0
- package/src/css/props/maxWidth/maxWidth.ts +8 -0
- package/src/css/props/maxWidth/types.ts +11 -0
- package/src/css/props/minHeight/index.ts +2 -0
- package/src/css/props/minHeight/minHeight.css.ts +13 -0
- package/src/css/props/minHeight/minHeight.ts +8 -0
- package/src/css/props/minHeight/types.ts +9 -0
- package/src/css/props/minWidth/index.ts +2 -0
- package/src/css/props/minWidth/minWidth.css.ts +25 -0
- package/src/css/props/minWidth/minWidth.ts +8 -0
- package/src/css/props/minWidth/types.ts +9 -0
- package/src/css/props/outline/index.ts +2 -0
- package/src/css/props/outline/outline.css.ts +10 -0
- package/src/css/props/outline/outline.ts +8 -0
- package/src/css/props/outline/types.ts +7 -0
- package/src/css/props/overflow/overflow.css.ts +16 -0
- package/src/css/props/overflow/overflow.ts +8 -0
- package/src/css/props/overflow/types.ts +17 -0
- package/src/css/props/padding/padding.css.ts +87 -0
- package/src/css/props/padding/padding.ts +25 -0
- package/src/css/props/padding/types.ts +17 -0
- package/src/css/props/pointerEvents/pointerEvents.css.ts +13 -0
- package/src/css/props/pointerEvents/pointerEvents.ts +8 -0
- package/src/css/props/position/position.css.ts +22 -0
- package/src/css/props/position/position.ts +8 -0
- package/src/css/{styles → props}/position/types.ts +1 -1
- package/src/css/props/radius/radius.css.ts +21 -0
- package/src/css/props/radius/radius.ts +8 -0
- package/src/css/props/radius/types.ts +8 -0
- package/src/css/props/shadow/shadow.css.ts +23 -0
- package/src/css/props/shadow/shadow.ts +8 -0
- package/src/css/props/shadow/types.ts +8 -0
- package/src/css/props/textAlign/index.ts +2 -0
- package/src/css/props/textAlign/textAlign.css.ts +22 -0
- package/src/css/props/textAlign/textAlign.ts +8 -0
- package/src/css/props/textAlign/types.ts +7 -0
- package/src/css/props/textOverflow/textOverflow.css.ts +13 -0
- package/src/css/props/textOverflow/textOverflow.ts +8 -0
- package/src/css/{styles → props}/textOverflow/types.ts +5 -1
- package/src/css/props/width/types.ts +11 -0
- package/src/css/props/width/width.css.ts +28 -0
- package/src/css/props/width/width.ts +8 -0
- package/src/css/types.ts +221 -766
- package/src/css/util.ts +3 -8
- package/src/css/utils/index.ts +1 -0
- package/src/css/utils/srOnly/srOnly.css.ts +10 -0
- package/src/css/utils/srOnly/srOnly.ts +5 -3
- package/src/css/vars.css.ts +676 -0
- package/src/theme/getScopedTheme.ts +4 -4
- package/src/theme/index.ts +0 -5
- package/src/theme/types.ts +6 -10
- package/src/theme/v0/color/_generic.ts +1 -1
- package/src/theme/v0/color/button.ts +1 -1
- package/src/theme/v0/color/card.ts +1 -1
- package/src/theme/v0/color/color.ts +11 -11
- package/src/theme/v0/color/input.ts +1 -1
- package/src/theme/v0/color/muted.ts +1 -1
- package/src/theme/v0/color/selectable.ts +1 -1
- package/src/theme/v0/color/solid.ts +1 -1
- package/src/theme/v0/color/spot.ts +1 -1
- package/src/theme/v0/focusRing.ts +1 -3
- package/src/theme/v0/font.ts +6 -19
- package/src/theme/v0/layer.ts +1 -3
- package/src/theme/v0/shadow.ts +2 -6
- package/src/theme/v0/styles.ts +1 -1
- package/src/theme/v0/theme.ts +7 -7
- package/src/theme/v2/avatar.ts +2 -4
- package/src/theme/{build → v2/build}/_deprecated/color/_selectable/createSelectableTones.ts +3 -3
- package/src/theme/{build → v2/build}/_deprecated/color/_solid/createSolidTones.ts +2 -2
- package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonModes.ts +7 -2
- package/src/theme/{build → v2/build}/_deprecated/color/button/createButtonTones.ts +4 -4
- package/src/theme/{build → v2/build}/_deprecated/color/card/createCardStates.ts +3 -3
- package/src/theme/{build → v2/build}/_deprecated/color/color.test.ts +1 -1
- package/src/theme/{build → v2/build}/_deprecated/color/defaults.ts +1 -1
- package/src/theme/{build → v2/build}/_deprecated/color/factory.ts +3 -3
- package/src/theme/{build → v2/build}/_deprecated/color/input/createInputModes.ts +7 -2
- package/src/theme/{build → v2/build}/_deprecated/color/muted/createMuted.ts +2 -2
- package/src/theme/{build → v2/build}/_deprecated/color/spot/createSpot.ts +2 -2
- package/src/theme/{build → v2/build}/buildColorTheme.test.ts +3 -1
- package/src/theme/{build → v2/build}/buildColorTheme.ts +24 -24
- package/src/theme/{build → v2/build}/buildTheme.test.ts +10 -8
- package/src/theme/v2/build/buildTheme.ts +12 -0
- package/src/theme/{build → v2/build}/colorToken/colorToken.ts +2 -2
- package/src/theme/{build → v2/build}/colorToken/compileColorToken.ts +1 -1
- package/src/theme/{build → v2/build}/colorToken/types.ts +2 -2
- package/src/theme/{build → v2/build}/lib/color-fns/blend/mix.ts +1 -1
- package/src/theme/{build → v2/build}/lib/color-fns/blend/multiply.ts +1 -1
- package/src/theme/{build → v2/build}/lib/color-fns/blend/screen.ts +1 -1
- package/src/theme/{build → v2/build}/lib/color-fns/color-fns.test.ts +1 -1
- package/src/theme/{build → v2/build}/lib/color-fns/contrastRatio.ts +5 -2
- package/src/theme/{build → v2/build}/lib/color-fns/convert.ts +1 -1
- package/src/theme/{build → v2/build}/lib/color-fns/parse.ts +1 -1
- package/src/theme/{build → v2/build}/mixThemeColor.test.ts +2 -0
- package/src/theme/{build → v2/build}/mixThemeColor.ts +1 -1
- package/src/theme/{build → v2/build}/renderColorTheme.ts +27 -27
- package/src/theme/{build → v2/build}/renderColorValue.ts +3 -3
- package/src/theme/{build → v2/build}/resolveColorTokens.ts +13 -13
- package/src/theme/v2/color/_helpers.ts +2 -2
- package/src/theme/v2/color/_system.ts +2 -4
- package/src/theme/v2/color/avatar.ts +3 -7
- package/src/theme/v2/color/badge.ts +3 -7
- package/src/theme/v2/color/button.ts +5 -11
- package/src/theme/v2/color/color.ts +10 -16
- package/src/theme/v2/color/input.ts +8 -10
- package/src/theme/v2/color/kbd.ts +1 -3
- package/src/theme/v2/color/selectable.ts +4 -8
- package/src/theme/v2/color/state.ts +5 -7
- package/src/theme/v2/color/syntax.ts +1 -3
- package/src/theme/{config → v2/config}/helpers.ts +6 -13
- package/src/theme/{config → v2/config}/system.ts +11 -12
- package/src/theme/{config → v2/config}/tokens/color/types.ts +14 -10
- package/src/theme/{config → v2/config}/tokens/index.ts +0 -1
- package/src/theme/{config → v2/config}/tokens/parseTokenValue.test.ts +2 -0
- package/src/theme/{config → v2/config}/tokens/parseTokenValue.ts +2 -2
- package/src/theme/{config → v2/config}/tokens/types.ts +3 -3
- package/src/theme/{config → v2/config}/types.ts +8 -6
- package/src/theme/{defaults → v2/defaults}/colorPalette.ts +1 -1
- package/src/theme/{defaults → v2/defaults}/colorTokens.ts +3 -3
- package/src/theme/{defaults → v2/defaults}/config.ts +2 -2
- package/src/theme/{defaults → v2/defaults}/fonts.ts +5 -6
- package/src/theme/v2/index.ts +2 -0
- package/src/theme/v2/input.ts +2 -4
- package/src/theme/v2/theme.ts +10 -14
- package/src/theme/{_constants.ts → v3/_constants.ts} +6 -3
- package/src/theme/v3/{color/parseColor.ts → _parseColorToken.ts} +59 -46
- package/src/theme/v3/buildTheme_v3.ts +20 -11
- package/src/theme/v3/color/_constants.ts +15 -0
- package/src/theme/v3/color/avatar.ts +14 -0
- package/src/theme/v3/color/card.ts +58 -95
- package/src/theme/v3/color/color.ts +75 -71
- package/src/theme/v3/color/element.ts +8 -8
- package/src/theme/v3/color/index.ts +2 -2
- package/src/theme/v3/color/token.ts +19 -4
- package/src/theme/v3/color/tokens.ts +2 -2
- package/src/theme/v3/defaultFonts.ts +250 -0
- package/src/theme/v3/defaultTokens.ts +199 -0
- package/src/theme/v3/index.ts +4 -1
- package/src/theme/{palette → v3/palette}/constants.ts +3 -3
- package/src/theme/v3/palette/types.ts +7 -0
- package/src/theme/v3/resolveTokens.ts +70 -65
- package/src/theme/v3/tokens.ts +2 -2
- package/src/theme/v3/types.ts +97 -12
- package/src/theme/versioning/getTheme_v2.ts +3 -3
- package/src/theme/versioning/is_v0.ts +2 -2
- package/src/theme/versioning/is_v2.ts +2 -2
- package/src/theme/versioning/themeColor_v0_v2.ts +2 -2
- package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -1
- package/src/theme/versioning/themeColor_v3_v2.ts +229 -52
- package/src/theme/versioning/v0_v2.ts +3 -3
- package/src/theme/versioning/v2_v0.ts +4 -4
- package/src/theme/versioning/v3_v2.ts +62 -40
- package/dist/_chunks-cjs/_visual-editing.js +0 -3059
- package/dist/_chunks-cjs/_visual-editing.js.map +0 -1
- package/dist/_chunks-cjs/buildCommand.js +0 -32
- package/dist/_chunks-cjs/buildCommand.js.map +0 -1
- package/dist/_chunks-cjs/refractor.js.map +0 -1
- package/dist/_chunks-cjs/v3_v2.js +0 -251
- package/dist/_chunks-cjs/v3_v2.js.map +0 -1
- package/dist/_chunks-es/_visual-editing.mjs +0 -3066
- package/dist/_chunks-es/_visual-editing.mjs.map +0 -1
- package/dist/_chunks-es/refractor.mjs.map +0 -1
- package/dist/_chunks-es/v3_v2.mjs +0 -252
- package/dist/_chunks-es/v3_v2.mjs.map +0 -1
- package/dist/_visual-editing.d.mts +0 -806
- package/dist/_visual-editing.mjs +0 -31
- package/dist/_visual-editing.mjs.map +0 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +0 -357
- package/dist/cli.js.map +0 -1
- package/dist/css.d.mts +0 -2135
- package/dist/css.mjs +0 -4713
- package/dist/css.mjs.map +0 -1
- package/dist/index.mjs +0 -1542
- package/dist/index.mjs.map +0 -1
- package/dist/sanity-palette.css +0 -9
- package/dist/sanity-theme.css +0 -1
- package/dist/system.css +0 -3577
- package/dist/theme.mjs.map +0 -1
- package/src/core/StyleTags.tsx +0 -24
- package/src/core/primitives/popover/popoverCard.tsx +0 -148
- package/src/core/primitives/tooltip/tooltipCard.tsx +0 -115
- package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -23
- package/src/core/utils/conditionalWrapper/index.ts +0 -1
- package/src/css/_resp.ts +0 -31
- package/src/css/compile/compilePalette.ts +0 -60
- package/src/css/compile/compileRule.ts +0 -90
- package/src/css/compile/compileRules.test.ts +0 -35
- package/src/css/compile/compileRules.ts +0 -40
- package/src/css/compile/compileSystem.ts +0 -7
- package/src/css/compile/compileTheme.ts +0 -15
- package/src/css/compile/compileTheme_v3.ts +0 -410
- package/src/css/compile/types.ts +0 -6
- package/src/css/components/breadcrumbs/rules.ts +0 -25
- package/src/css/components/dialog/rules.ts +0 -76
- package/src/css/components/menu/rules.ts +0 -15
- package/src/css/components/skeleton/rules.ts +0 -112
- package/src/css/components/toast/rules.ts +0 -17
- package/src/css/components/tree/rules.ts +0 -168
- package/src/css/composeClassNames.ts +0 -13
- package/src/css/primitives/_arrow/rules.ts +0 -71
- package/src/css/primitives/_input/rules.ts +0 -163
- package/src/css/primitives/_selectable/__style.ts +0 -117
- package/src/css/primitives/_selectable/_contants.ts +0 -11
- package/src/css/primitives/_selectable/rules.ts +0 -129
- package/src/css/primitives/avatar/rules.ts +0 -176
- package/src/css/primitives/badge/rules.ts +0 -22
- package/src/css/primitives/box/rules.ts +0 -28
- package/src/css/primitives/button/_constants.ts +0 -17
- package/src/css/primitives/button/rules.ts +0 -293
- package/src/css/primitives/card/_constants.ts +0 -13
- package/src/css/primitives/card/rules.ts +0 -471
- package/src/css/primitives/checkbox/__styles.ts +0 -129
- package/src/css/primitives/checkbox/rules.ts +0 -152
- package/src/css/primitives/code/rules.ts +0 -96
- package/src/css/primitives/container/rules.ts +0 -8
- package/src/css/primitives/heading/rules.ts +0 -155
- package/src/css/primitives/kbd/rules.ts +0 -20
- package/src/css/primitives/label/rules.ts +0 -137
- package/src/css/primitives/popover/rules.ts +0 -5
- package/src/css/primitives/radio/rules.ts +0 -121
- package/src/css/primitives/select/rules.ts +0 -22
- package/src/css/primitives/spinner/rules.ts +0 -20
- package/src/css/primitives/switch/rules.ts +0 -340
- package/src/css/primitives/text/rules.ts +0 -164
- package/src/css/primitives/textArea/rules.ts +0 -7
- package/src/css/primitives/textInput/rules.ts +0 -224
- package/src/css/primitives/token/rules.ts +0 -45
- package/src/css/primitives/tooltip/rules.ts +0 -19
- package/src/css/responsiveRules.ts +0 -25
- package/src/css/rules.ts +0 -113
- package/src/css/styles/border/border.ts +0 -22
- package/src/css/styles/border/rules.ts +0 -24
- package/src/css/styles/border/types.ts +0 -10
- package/src/css/styles/display/display.ts +0 -7
- package/src/css/styles/display/rules.ts +0 -62
- package/src/css/styles/flex/flex.ts +0 -20
- package/src/css/styles/flex/rules.ts +0 -28
- package/src/css/styles/flex/types.ts +0 -35
- package/src/css/styles/flexItem/flexItem.ts +0 -8
- package/src/css/styles/flexItem/index.ts +0 -2
- package/src/css/styles/flexItem/rules.ts +0 -12
- package/src/css/styles/flexItem/types.ts +0 -11
- package/src/css/styles/font/font.ts +0 -17
- package/src/css/styles/font/rules.ts +0 -148
- package/src/css/styles/font/types.ts +0 -12
- package/src/css/styles/gap/gap.ts +0 -8
- package/src/css/styles/gap/rules.ts +0 -34
- package/src/css/styles/grid/grid.ts +0 -13
- package/src/css/styles/grid/index.ts +0 -2
- package/src/css/styles/grid/rules.ts +0 -146
- package/src/css/styles/grid/types.ts +0 -29
- package/src/css/styles/gridItem/gridItem.ts +0 -15
- package/src/css/styles/gridItem/index.ts +0 -2
- package/src/css/styles/gridItem/rules.ts +0 -96
- package/src/css/styles/gridItem/types.ts +0 -41
- package/src/css/styles/height/rules.ts +0 -7
- package/src/css/styles/index.ts +0 -19
- package/src/css/styles/inset/inset.ts +0 -13
- package/src/css/styles/inset/rules.ts +0 -16
- package/src/css/styles/margin/margin.ts +0 -15
- package/src/css/styles/margin/rules.ts +0 -64
- package/src/css/styles/margin/types.ts +0 -11
- package/src/css/styles/maxWidth/maxWidth.ts +0 -6
- package/src/css/styles/maxWidth/rules.ts +0 -13
- package/src/css/styles/maxWidth/types.ts +0 -7
- package/src/css/styles/outline/rules.ts +0 -7
- package/src/css/styles/overflow/overflow.ts +0 -11
- package/src/css/styles/overflow/rules.ts +0 -9
- package/src/css/styles/overflow/types.ts +0 -11
- package/src/css/styles/padding/padding.ts +0 -15
- package/src/css/styles/padding/rules.ts +0 -62
- package/src/css/styles/padding/types.ts +0 -14
- package/src/css/styles/pointerEvents/pointerEvents.ts +0 -6
- package/src/css/styles/pointerEvents/rules.ts +0 -11
- package/src/css/styles/position/position.ts +0 -7
- package/src/css/styles/position/rules.ts +0 -24
- package/src/css/styles/radius/radius.ts +0 -8
- package/src/css/styles/radius/rules.ts +0 -13
- package/src/css/styles/radius/types.ts +0 -8
- package/src/css/styles/shadow/rules.ts +0 -53
- package/src/css/styles/shadow/shadow.ts +0 -7
- package/src/css/styles/shadow/types.ts +0 -8
- package/src/css/styles/textOverflow/rules.ts +0 -17
- package/src/css/styles/textOverflow/textOverflow.ts +0 -6
- package/src/css/styles/width/rules.ts +0 -7
- package/src/css/styles/width/types.ts +0 -9
- package/src/css/styles/width/width.ts +0 -6
- package/src/css/utils/srOnly/rules.ts +0 -11
- package/src/css/varNames.ts +0 -473
- package/src/css/vars.ts +0 -443
- package/src/theme/_types.ts +0 -41
- package/src/theme/build/buildTheme.ts +0 -12
- package/src/theme/build/theme.test.ts +0 -27
- package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
- package/src/theme/config/tokens/parseTokenKey.ts +0 -67
- package/src/theme/palette/types.ts +0 -16
- package/src/theme/v3/buildTheme_v3.test.ts +0 -40
- package/src/theme/v3/color/buildColor_v3.ts +0 -193
- package/src/theme/v3/color/parseColor.test.ts +0 -79
- package/src/theme/v3/color/renderColor.test.ts +0 -19
- package/src/theme/v3/color/renderColor.ts +0 -33
- package/src/theme/v3/defaults.ts +0 -205
- /package/src/core/components/autocomplete/{__mocks__ → __workshop__/mock}/apiStore.ts +0 -0
- /package/src/core/components/autocomplete/{__mocks__ → __workshop__/mock}/countries.ts +0 -0
- /package/src/css/{styles → props}/border/index.ts +0 -0
- /package/src/css/{styles → props}/display/index.ts +0 -0
- /package/src/css/{styles → props}/flex/index.ts +0 -0
- /package/src/css/{styles → props}/font/index.ts +0 -0
- /package/src/css/{styles → props}/gap/index.ts +0 -0
- /package/src/css/{styles → props}/inset/index.ts +0 -0
- /package/src/css/{styles → props}/margin/index.ts +0 -0
- /package/src/css/{styles → props}/maxWidth/index.ts +0 -0
- /package/src/css/{styles → props}/overflow/index.ts +0 -0
- /package/src/css/{styles → props}/padding/index.ts +0 -0
- /package/src/css/{styles → props}/pointerEvents/index.ts +0 -0
- /package/src/css/{styles → props}/pointerEvents/types.ts +0 -0
- /package/src/css/{styles → props}/position/index.ts +0 -0
- /package/src/css/{styles → props}/radius/index.ts +0 -0
- /package/src/css/{styles → props}/shadow/index.ts +0 -0
- /package/src/css/{styles → props}/textOverflow/index.ts +0 -0
- /package/src/css/{styles → props}/width/index.ts +0 -0
- /package/src/theme/{build → v2/build}/_deprecated/color/index.ts +0 -0
- /package/src/theme/{build → v2/build}/colorToken/index.ts +0 -0
- /package/src/theme/{build → v2/build}/index.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/blend/index.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/index.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/rgba.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/color-fns/types.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/isRecord.ts +0 -0
- /package/src/theme/{build → v2/build}/lib/utils.ts +0 -0
- /package/src/theme/{build → v2/build}/merge.ts +0 -0
- /package/src/theme/{config → v2/config}/index.ts +0 -0
- /package/src/theme/{config → v2/config}/tokens/color/index.ts +0 -0
- /package/src/theme/{palette → v3/palette}/index.ts +0 -0
package/dist/theme.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"theme.mjs","sources":["../src/theme/v2/color/_helpers.ts","../src/theme/_constants.ts","../src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts","../src/theme/build/_deprecated/color/_solid/createSolidTones.ts","../src/theme/build/_deprecated/color/button/createButtonTones.ts","../src/theme/build/_deprecated/color/button/createButtonModes.ts","../src/theme/build/_deprecated/color/card/createCardStates.ts","../src/theme/build/_deprecated/color/defaults.ts","../src/theme/build/_deprecated/color/input/createInputModes.ts","../src/theme/build/_deprecated/color/muted/createMuted.ts","../src/theme/build/_deprecated/color/spot/createSpot.ts","../src/theme/build/_deprecated/color/factory.ts","../src/theme/defaults/config.ts","../src/theme/defaults/fonts.ts","../src/theme/palette/constants.ts","../src/theme/v3/color/parseColor.ts","../src/theme/v3/color/renderColor.ts","../src/theme/v3/color/buildColor_v3.ts","../src/theme/v3/defaults.ts","../src/theme/v3/merge.ts","../src/theme/v3/resolveTokens.ts","../src/theme/v3/buildTheme_v3.ts","../src/theme/versioning/v2_v0.ts","../src/theme/build/buildTheme.ts","../src/theme/build/lib/color-fns/blend/mix.ts","../src/theme/build/lib/color-fns/blend/multiply.ts","../src/theme/build/lib/color-fns/blend/screen.ts","../src/theme/build/lib/utils.ts","../src/theme/build/lib/color-fns/convert.ts","../src/theme/build/lib/color-fns/parse.ts","../src/theme/build/lib/color-fns/contrastRatio.ts","../src/theme/build/lib/color-fns/rgba.ts","../src/theme/config/system.ts","../src/theme/config/tokens/parseTokenKey.ts","../src/theme/config/tokens/parseTokenValue.ts","../src/theme/config/helpers.ts","../src/theme/versioning/is_v2.ts","../src/theme/versioning/themeColor_v2_v2_9.ts","../src/theme/versioning/themeColor_v0_v2.ts","../src/theme/versioning/v0_v2.ts","../src/theme/getScopedTheme.ts","../src/theme/versioning/getTheme_v2.ts"],"sourcesContent":["import {COLOR_HUES, COLOR_TINTS, ColorHueKey, ColorTintKey} from '@sanity/color'\n\nimport {THEME_COLOR_BLEND_MODES, THEME_COLOR_BUTTON_MODES} from './_constants'\nimport {ThemeColorBlendModeKey, ThemeColorButtonModeKey} from './_system'\n\n/** @internal */\nexport function isColorBlendModeValue(str: string): str is ThemeColorBlendModeKey {\n return THEME_COLOR_BLEND_MODES.includes(str as ThemeColorBlendModeKey)\n}\n\n/** @internal */\nexport function isColorHueKey(str: string): str is ColorHueKey {\n return COLOR_HUES.includes(str as ColorHueKey)\n}\n\n/** @internal */\nexport function isColorTintKey(str: string): str is ColorTintKey {\n return COLOR_TINTS.includes(str as ColorTintKey)\n}\n\n/** @internal */\nexport function isColorButtonMode(str: string): str is ThemeColorButtonModeKey {\n return THEME_COLOR_BUTTON_MODES.includes(str as ThemeColorButtonModeKey)\n}\n","/** @public */\nexport const AVATAR_SIZE = [0, 1, 2, 3] as const\n\n/** @public */\nexport const CONTAINER = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const RADIUS = [0, 1, 2, 3, 4, 5, 6, 'full'] as const\n\n/** @public */\nexport const SPACE = [0, 0.5, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const\n\n/** @public */\nexport const FONT_CODE_SIZE = [0, 1, 2, 3, 4] as const\n\n/** @public */\nexport const FONT_HEADING_SIZE = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const FONT_LABEL_SIZE = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const FONT_TEXT_SIZE = [0, 1, 2, 3, 4] as const\n\n/** @public */\nexport const SHADOW = [0, 1, 2, 3, 4, 5] as const\n","import {\n ThemeColorBase,\n ThemeColorMuted,\n ThemeColorSelectable,\n ThemeColorSelectableStates,\n ThemeColorSolid,\n} from '../../../../v0'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSelectableTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorSelectable {\n return {\n default: _createSelectableStates(opts, base, dark, solid, muted, 'default'),\n primary: _createSelectableStates(opts, base, dark, solid, muted, 'primary'),\n positive: _createSelectableStates(opts, base, dark, solid, muted, 'positive'),\n caution: _createSelectableStates(opts, base, dark, solid, muted, 'caution'),\n critical: _createSelectableStates(opts, base, dark, solid, muted, 'critical'),\n }\n}\n\nfunction _createSelectableStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical',\n): ThemeColorSelectableStates {\n return {\n enabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'enabled',\n tone,\n }),\n hovered: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'hovered',\n tone,\n }),\n pressed: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'pressed',\n tone,\n }),\n selected: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'selected',\n tone,\n }),\n disabled: opts.selectable({\n base,\n dark,\n solid,\n muted,\n state: 'disabled',\n tone,\n }),\n }\n}\n","import {ThemeColorBase, ThemeColorName, ThemeColorSolid} from '../../../../v0'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSolidTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColorSolid {\n return {\n default: {\n enabled: opts.solid({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.solid({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.solid({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.solid({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.solid({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.solid({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.solid({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.solid({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.solid({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.solid({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {\n ThemeColorBase,\n ThemeColorButtonTones,\n ThemeColorMuted,\n ThemeColorSolid,\n} from '../../../../v0'\nimport {ThemeColorButtonModeKey} from '../../../../v2'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createButtonTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n mode: ThemeColorButtonModeKey,\n): ThemeColorButtonTones {\n return {\n default: opts.button({\n base,\n dark,\n solid: solid.default,\n muted: muted.default,\n mode,\n }),\n primary: opts.button({\n base,\n dark,\n solid: solid.primary,\n muted: muted.primary,\n mode,\n }),\n positive: opts.button({\n base,\n dark,\n solid: solid.positive,\n muted: muted.positive,\n mode,\n }),\n caution: opts.button({\n base,\n dark,\n solid: solid.caution,\n muted: muted.caution,\n mode,\n }),\n critical: opts.button({\n base,\n dark,\n solid: solid.critical,\n muted: muted.critical,\n mode,\n }),\n }\n}\n","import {ThemeColorBase, ThemeColorButton, ThemeColorMuted, ThemeColorSolid} from '../../../../v0'\nimport {ThemeColorBuilderOpts} from '../factory'\nimport {createButtonTones} from './createButtonTones'\n\nexport function createButtonModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorButton {\n return {\n default: createButtonTones(opts, base, dark, solid, muted, 'default'),\n ghost: createButtonTones(opts, base, dark, solid, muted, 'ghost'),\n bleed: createButtonTones(opts, base, dark, solid, muted, 'bleed'),\n }\n}\n","import {\n ThemeColorBase,\n ThemeColorCard,\n ThemeColorMuted,\n ThemeColorName,\n ThemeColorSolid,\n} from '../../../../v0'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createCardStates(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorCard {\n return {\n enabled: opts.card({\n base,\n dark,\n name,\n state: 'enabled',\n solid,\n muted,\n }),\n disabled: opts.card({\n base,\n dark,\n name,\n state: 'disabled',\n solid,\n muted,\n }),\n hovered: opts.card({\n base,\n dark,\n name,\n state: 'hovered',\n solid,\n muted,\n }),\n pressed: opts.card({\n base,\n dark,\n name,\n state: 'pressed',\n solid,\n muted,\n }),\n selected: opts.card({\n base,\n dark,\n name,\n state: 'selected',\n solid,\n muted,\n }),\n }\n}\n","import {ThemeColorBuilderOpts} from './factory'\n\nconst black = 'hsl(0, 0%, 0%)'\nconst white = 'hsl(0, 0%, 100%)'\n\nconst colors = {\n default: {\n lightest: 'hsl(0, 0%, 95%)',\n lighter: 'hsl(0, 0%, 70%)',\n light: 'hsl(0, 0%, 65%)',\n base: 'hsl(0, 0%, 50%)',\n dark: 'hsl(0, 0%, 35%)',\n darker: 'hsl(0, 0%, 20%)',\n darkest: 'hsl(0, 0%, 5%)',\n },\n transparent: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n primary: {\n lightest: 'hsl(240, 100%, 95%)',\n lighter: 'hsl(240, 100%, 70%)',\n light: 'hsl(240, 100%, 65%)',\n base: 'hsl(240, 100%, 50%)',\n dark: 'hsl(240, 100%, 35%)',\n darker: 'hsl(240, 100%, 20%)',\n darkest: 'hsl(240, 100%, 5%)',\n },\n positive: {\n lightest: 'hsl(120, 100%, 95%)',\n lighter: 'hsl(120, 100%, 70%)',\n light: 'hsl(120, 100%, 65%)',\n base: 'hsl(120, 100%, 50%)',\n dark: 'hsl(120, 100%, 35%)',\n darker: 'hsl(120, 100%, 20%)',\n darkest: 'hsl(120, 100%, 5%)',\n },\n caution: {\n lightest: 'hsl(60, 100%, 95%)',\n lighter: 'hsl(60, 100%, 70%)',\n light: 'hsl(60, 100%, 65%)',\n base: 'hsl(60, 100%, 50%)',\n dark: 'hsl(60, 100%, 35%)',\n darker: 'hsl(60, 100%, 20%)',\n darkest: 'hsl(60, 100%, 5%)',\n },\n critical: {\n lightest: 'hsl(0, 100%, 95%)',\n lighter: 'hsl(0, 100%, 70%)',\n light: 'hsl(0, 100%, 65%)',\n base: 'hsl(0, 100%, 50%)',\n dark: 'hsl(0, 100%, 35%)',\n darker: 'hsl(0, 100%, 20%)',\n darkest: 'hsl(0, 100%, 5%)',\n },\n}\n\nconst spots = {\n gray: 'hsl(0, 0%, 50%)',\n red: 'hsl(0, 100%, 50%)',\n orange: 'hsl(30, 100%, 50%)',\n yellow: 'hsl(60, 100%, 50%)',\n green: 'hsl(120, 100%, 50%)',\n cyan: 'hsl(180, 100%, 50%)',\n blue: 'hsl(240, 100%, 50%)',\n purple: 'hsl(270, 100%, 50%)',\n magenta: 'hsl(300, 100%, 50%)',\n}\n\nconst tones = {\n transparent: {\n bg: [colors.transparent.darkest, colors.transparent.lightest],\n fg: [colors.transparent.lightest, colors.transparent.darkest],\n border: [colors.transparent.darker, colors.transparent.lighter],\n focusRing: [colors.transparent.base, colors.transparent.base],\n },\n primary: {\n bg: [colors.primary.darkest, colors.primary.lightest],\n fg: [colors.primary.lightest, colors.primary.darkest],\n border: [colors.primary.darker, colors.primary.lighter],\n focusRing: [colors.primary.base, colors.primary.base],\n },\n positive: {\n bg: [colors.positive.darkest, colors.positive.lightest],\n fg: [colors.positive.lightest, colors.positive.darkest],\n border: [colors.positive.darker, colors.positive.lighter],\n focusRing: [colors.positive.base, colors.positive.base],\n },\n caution: {\n bg: [colors.caution.darkest, colors.caution.lightest],\n fg: [colors.caution.lightest, colors.caution.darkest],\n border: [colors.caution.darker, colors.caution.lighter],\n focusRing: [colors.caution.base, colors.caution.base],\n },\n critical: {\n bg: [colors.critical.darkest, colors.critical.lightest],\n fg: [colors.critical.lightest, colors.critical.darkest],\n border: [colors.critical.darker, colors.critical.lighter],\n focusRing: [colors.critical.base, colors.critical.base],\n },\n}\n\nexport const defaultOpts: ThemeColorBuilderOpts = {\n base: ({dark, name}) => {\n if (name === 'default') {\n return {\n bg: dark ? black : white,\n fg: dark ? white : black,\n border: dark ? colors.default.darkest : colors.default.lightest,\n focusRing: colors.primary.base,\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n }\n\n // Variants:\n // - primary\n // - positive\n // - caution\n // - critical\n return {\n bg: tones[name].bg[dark ? 0 : 1],\n fg: tones[name].fg[dark ? 0 : 1],\n border: tones[name].border[dark ? 0 : 1],\n focusRing: tones[name].focusRing[dark ? 0 : 1],\n shadow: {\n outline: black,\n umbra: black,\n penumbra: black,\n ambient: black,\n },\n skeleton: {\n from: dark ? white : black,\n to: dark ? white : black,\n },\n }\n },\n\n solid: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.light : color.dark,\n bg2: dark ? color.light : color.dark,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.darkest : color.lightest,\n icon: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: color.base,\n bg2: color.base,\n border: dark ? color.light : color.dark,\n fg: dark ? color.darkest : color.lightest,\n icon: dark ? color.darkest : color.lightest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n muted: ({base, dark, state, tone}) => {\n const color = colors[tone]\n\n if (state === 'hovered') {\n return {\n bg: dark ? color.darker : color.lighter,\n bg2: dark ? color.darker : color.lighter,\n border: dark ? color.lighter : color.darker,\n fg: dark ? color.lightest : color.darkest,\n icon: dark ? color.lightest : color.darkest,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n }\n\n return {\n bg: dark ? color.darkest : color.lightest,\n bg2: dark ? color.darkest : color.lightest,\n border: dark ? color.darker : color.lighter,\n fg: dark ? color.lighter : color.darker,\n icon: dark ? color.lighter : color.darker,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n button: ({base, mode, muted, solid}) => {\n if (mode === 'bleed') {\n return {\n ...muted,\n enabled: {\n bg: 'transparent',\n bg2: 'transparent',\n fg: muted.enabled.fg,\n icon: muted.enabled.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n hovered: {\n bg: muted.enabled.bg,\n bg2: muted.enabled.bg,\n fg: muted.hovered.fg,\n icon: muted.hovered.fg,\n border: 'transparent',\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n },\n }\n }\n\n if (mode === 'ghost')\n return {\n ...solid,\n enabled: muted.enabled,\n }\n\n return solid\n },\n\n card: ({base}) => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n icon: black,\n border: black,\n muted: {\n fg: black,\n },\n accent: {\n fg: black,\n },\n link: {\n fg: black,\n },\n code: {\n bg: black,\n fg: black,\n },\n skeleton: base.skeleton,\n }\n },\n\n input: () => {\n return {\n bg: black,\n bg2: black,\n fg: black,\n border: black,\n placeholder: black,\n }\n },\n\n selectable: ({muted, state, tone}) => {\n return muted[tone][state]\n },\n\n spot: ({key}) => {\n return spots[key]\n },\n\n syntax: () => ({\n atrule: black,\n attrName: black,\n attrValue: black,\n attribute: black,\n boolean: black,\n builtin: black,\n cdata: black,\n char: black,\n class: black,\n className: black,\n comment: black,\n constant: black,\n deleted: black,\n doctype: black,\n entity: black,\n function: black,\n hexcode: black,\n id: black,\n important: black,\n inserted: black,\n keyword: black,\n number: black,\n operator: black,\n prolog: black,\n property: black,\n pseudoClass: black,\n pseudoElement: black,\n punctuation: black,\n regex: black,\n selector: black,\n string: black,\n symbol: black,\n tag: black,\n unit: black,\n url: black,\n variable: black,\n }),\n}\n","import {ThemeColorBase, ThemeColorInput, ThemeColorMuted, ThemeColorSolid} from '../../../../v0'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createInputModes(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n solid: ThemeColorSolid,\n muted: ThemeColorMuted,\n): ThemeColorInput {\n return {\n default: {\n enabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'default',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n invalid: {\n enabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'enabled',\n solid: solid.default,\n muted: muted.default,\n }),\n disabled: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'disabled',\n solid: solid.default,\n muted: muted.default,\n }),\n hovered: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'hovered',\n solid: solid.default,\n muted: muted.default,\n }),\n readOnly: opts.input({\n base,\n dark,\n mode: 'invalid',\n state: 'readOnly',\n solid: solid.default,\n muted: muted.default,\n }),\n },\n }\n}\n","import {ThemeColorBase, ThemeColorMuted, ThemeColorName} from '../../../../v0'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createMutedTones(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColorMuted {\n return {\n default: {\n enabled: opts.muted({base, dark, tone: 'default', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'default', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'default', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'default', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'default', name, state: 'selected'}),\n },\n transparent: {\n enabled: opts.muted({base, dark, tone: 'transparent', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'transparent', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'transparent', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'transparent', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'transparent', name, state: 'selected'}),\n },\n primary: {\n enabled: opts.muted({base, dark, tone: 'primary', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'primary', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'primary', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'primary', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'primary', name, state: 'selected'}),\n },\n positive: {\n enabled: opts.muted({base, dark, tone: 'positive', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'positive', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'positive', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'positive', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'positive', name, state: 'selected'}),\n },\n caution: {\n enabled: opts.muted({base, dark, tone: 'caution', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'caution', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'caution', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'caution', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'caution', name, state: 'selected'}),\n },\n critical: {\n enabled: opts.muted({base, dark, tone: 'critical', name, state: 'enabled'}),\n disabled: opts.muted({base, dark, tone: 'critical', name, state: 'disabled'}),\n hovered: opts.muted({base, dark, tone: 'critical', name, state: 'hovered'}),\n pressed: opts.muted({base, dark, tone: 'critical', name, state: 'pressed'}),\n selected: opts.muted({base, dark, tone: 'critical', name, state: 'selected'}),\n },\n }\n}\n","import {ThemeColorBase, ThemeColorSpot} from '../../../../v0'\nimport {ThemeColorBuilderOpts} from '../factory'\n\nexport function createSpot(\n opts: ThemeColorBuilderOpts,\n base: ThemeColorBase,\n dark: boolean,\n): ThemeColorSpot {\n return {\n gray: opts.spot({base, dark, key: 'gray'}),\n blue: opts.spot({base, dark, key: 'blue'}),\n purple: opts.spot({base, dark, key: 'purple'}),\n magenta: opts.spot({base, dark, key: 'magenta'}),\n red: opts.spot({base, dark, key: 'red'}),\n orange: opts.spot({base, dark, key: 'orange'}),\n yellow: opts.spot({base, dark, key: 'yellow'}),\n green: opts.spot({base, dark, key: 'green'}),\n cyan: opts.spot({base, dark, key: 'cyan'}),\n }\n}\n","import {\n ThemeColor,\n ThemeColorBase,\n ThemeColorButtonStates,\n ThemeColorGenericState,\n ThemeColorInputState,\n ThemeColorMuted,\n ThemeColorMutedTone,\n ThemeColorName,\n ThemeColorScheme,\n ThemeColorSchemes,\n ThemeColorSolid,\n ThemeColorSolidTone,\n ThemeColorSpotKey,\n ThemeColorToneKey,\n} from '../../../v0'\nimport {ThemeColorButtonModeKey, ThemeColorSyntax} from '../../../v2'\nimport {createSelectableTones} from './_selectable/createSelectableTones'\nimport {createSolidTones} from './_solid/createSolidTones'\nimport {createButtonModes} from './button/createButtonModes'\nimport {createCardStates} from './card/createCardStates'\nimport {defaultOpts} from './defaults'\nimport {createInputModes} from './input/createInputModes'\nimport {createMutedTones} from './muted/createMuted'\nimport {createSpot} from './spot/createSpot'\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport interface ThemeColorBuilderOpts {\n base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase\n solid: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorName\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n muted: (opts: {\n base: ThemeColorBase\n dark: boolean\n tone: ThemeColorToneKey\n name: ThemeColorName\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n card: (opts: {\n base: ThemeColorBase\n dark: boolean\n muted: ThemeColorMuted\n name: ThemeColorName\n solid: ThemeColorSolid\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n }) => ThemeColorGenericState\n button: (opts: {\n dark: boolean\n mode: ThemeColorButtonModeKey\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n }) => ThemeColorButtonStates\n input: (opts: {\n base: ThemeColorBase\n solid: ThemeColorSolidTone\n muted: ThemeColorMutedTone\n dark: boolean\n mode: 'default' | 'invalid'\n state: 'enabled' | 'disabled' | 'hovered' | 'readOnly'\n }) => ThemeColorInputState\n selectable: (opts: {\n dark: boolean\n base: ThemeColorBase\n solid: ThemeColorSolid\n muted: ThemeColorMuted\n state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'\n tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'\n }) => ThemeColorGenericState\n syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax\n spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string\n}\n\n/**\n * @public\n * @deprecated Use `ThemeConfig` instead.\n */\nexport type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>\n\n/**\n * @public\n * @deprecated Use `buildColorTheme` instead.\n */\nexport function createColorTheme(\n partialOpts: PartialThemeColorBuilderOpts = {},\n): ThemeColorSchemes {\n const builders: ThemeColorBuilderOpts = {...defaultOpts, ...partialOpts}\n\n return {\n light: _createColorScheme(builders, false),\n dark: _createColorScheme(builders, true),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColorScheme(opts: ThemeColorBuilderOpts, dark: boolean): ThemeColorScheme {\n return {\n default: _createColor(opts, dark, 'default'),\n transparent: _createColor(opts, dark, 'transparent'),\n primary: _createColor(opts, dark, 'primary'),\n positive: _createColor(opts, dark, 'positive'),\n caution: _createColor(opts, dark, 'caution'),\n critical: _createColor(opts, dark, 'critical'),\n }\n}\n\n/**\n * @internal\n */\nfunction _createColor(\n opts: ThemeColorBuilderOpts,\n dark: boolean,\n name: ThemeColorName,\n): ThemeColor {\n const base = opts.base({dark, name})\n const solid = createSolidTones(opts, base, dark, name)\n const muted = createMutedTones(opts, base, dark, name)\n\n return {\n base,\n button: createButtonModes(opts, base, dark, solid, muted),\n card: createCardStates(opts, base, dark, name, solid, muted),\n dark,\n input: createInputModes(opts, base, dark, solid, muted),\n selectable: createSelectableTones(opts, base, dark, solid, muted),\n spot: createSpot(opts, base, dark),\n syntax: opts.syntax({base, dark}),\n solid,\n muted,\n }\n}\n","import {RootTheme_v2} from '../v2'\n\nconst BORDER_WIDTH = 1\nconst OUTLINE_WIDTH = 0.5\n\nexport const defaultThemeConfig: Omit<RootTheme_v2, 'color' | 'font'> = {\n _version: 2,\n avatar: {\n sizes: [\n {distance: -4, size: 19},\n {distance: -4, size: 25},\n {distance: -8, size: 33},\n {distance: -12, size: 49},\n ],\n focusRing: {offset: 1, width: 1},\n },\n button: {\n textWeight: 'medium',\n border: {width: BORDER_WIDTH},\n focusRing: {offset: -1, width: 1},\n },\n card: {\n border: {width: BORDER_WIDTH},\n focusRing: {offset: -1, width: 1},\n shadow: {outline: OUTLINE_WIDTH},\n },\n container: [320, 640, 960, 1280, 1600, 1920],\n media: [360, 600, 900, 1200, 1800, 2400],\n layer: {\n dialog: {zOffset: 600},\n popover: {zOffset: 400},\n tooltip: {zOffset: 200},\n },\n radius: [0, 1, 5, 9, 13, 17, 25, 45, 77, 129],\n shadow: [\n null,\n {umbra: [0, 0, 0, 0], penumbra: [0, 0, 0, 0], ambient: [0, 0, 0, 0]},\n {umbra: [0, 3, 5, -2], penumbra: [0, 6, 10, 0], ambient: [0, 1, 18, 1]},\n {umbra: [0, 7, 8, -4], penumbra: [0, 12, 17, 2], ambient: [0, 5, 22, 4]},\n {umbra: [0, 9, 11, -5], penumbra: [0, 18, 28, 2], ambient: [0, 7, 34, 6]},\n {umbra: [0, 11, 15, -7], penumbra: [0, 24, 38, 3], ambient: [0, 9, 46, 8]},\n ],\n space: [0, 4, 8, 12, 20, 32, 52, 84, 136, 220],\n input: {\n border: {\n width: BORDER_WIDTH,\n },\n checkbox: {\n size: 17,\n focusRing: {offset: -1, width: 1},\n },\n radio: {\n size: 17,\n markSize: 9,\n focusRing: {offset: -1, width: 1},\n },\n switch: {\n width: 25,\n height: 17,\n padding: 5,\n transitionDurationMs: 150,\n transitionTimingFunction: 'ease-out',\n focusRing: {offset: 1, width: 1},\n },\n select: {\n focusRing: {offset: -1, width: 1},\n },\n text: {\n focusRing: {offset: -1, width: 1},\n },\n },\n style: {\n button: {\n root: {\n transition: 'background-color 100ms,border-color 100ms,color 100ms',\n },\n },\n // card: {\n // root: {\n // transition: 'background-color 100ms,border-color 100ms,color 100ms',\n // },\n // },\n },\n}\n","import {ThemeFonts} from '../v0'\n\nexport const defaultThemeFonts: ThemeFonts = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 19,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 22,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n },\n ],\n },\n heading: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n featureSettings: `'liga' 1, 'calt' 1, 'ss01' 1, 'ss03' 1, 'zero' 1`,\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 17,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: -0.25,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 35,\n letterSpacing: -0.5,\n },\n {\n ascenderHeight: 9.5,\n descenderHeight: 8.5,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 41,\n letterSpacing: -1,\n },\n {\n ascenderHeight: 10.5,\n descenderHeight: 9.5,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 47,\n letterSpacing: -1,\n },\n ],\n },\n label: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weights: {\n regular: 500,\n medium: 600,\n semibold: 700,\n bold: 800,\n },\n sizes: [\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 8.1,\n iconSize: 13,\n lineHeight: 10,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 1.5,\n descenderHeight: 2.5,\n fontSize: 9.5,\n iconSize: 15,\n lineHeight: 11,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 10.8,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.25,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 1.5,\n descenderHeight: 2.5,\n fontSize: 13.6,\n iconSize: 21,\n lineHeight: 14,\n letterSpacing: 0.5,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n },\n ],\n },\n text: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", Helvetica, Arial, system-ui, sans-serif',\n weights: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n sizes: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 15,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n },\n ],\n },\n}\n","export const HUES = [\n 'gray',\n 'blue',\n 'purple',\n 'magenta',\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'cyan',\n] as const\n\nexport const TINTS = [\n 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650, 700, 750, 800, 850, 900, 950,\n] as const\n","import {Hue, HUES, Tint, TINTS} from '../../palette'\n\nconst RE_PERCENTAGE = /^([0-9]+)%/\nconst RE_OPACITY = /^(1|0\\.[0-9]+)?/\n\nexport interface TokenizeColorResult {\n color: {type: 'black' | 'white'} | {type: 'hue'; hue: Hue | undefined; tint: Tint | undefined}\n opacity: number | undefined\n mix: number | undefined\n}\n\nexport function parseColor(str: string): TokenizeColorResult {\n let cursor = 0\n\n const color = getColor()\n\n if (!color) {\n throw new Error(`Invalid color: ${str}`)\n }\n\n const opacity = getOpacity()\n const mix = getMixPercentage()\n\n return {\n color,\n mix,\n opacity,\n }\n\n function _consume(s: string) {\n if (str.startsWith(s, cursor)) {\n cursor += s.length\n\n return s\n }\n\n return undefined\n }\n\n function _peek() {\n return str[cursor]\n }\n\n function getColor(): TokenizeColorResult['color'] | undefined {\n ignoreWhitespace()\n\n let v = _consume('black') || _consume('white')\n\n if (v) {\n return {\n type: v as 'black' | 'white',\n }\n }\n\n for (const hue of HUES) {\n v = _consume(String(hue))\n\n if (v) {\n if (_peek() !== '/') {\n throw new Error(`Expected slash after hue`)\n }\n\n cursor += 1\n\n const tint = getTint()\n\n if (!tint) {\n throw new Error(`Expected tint after hue`)\n }\n\n return {\n type: 'hue',\n hue,\n tint,\n }\n }\n }\n\n const tint = getTint()\n\n if (tint) {\n return {\n type: 'hue',\n hue: undefined,\n tint,\n }\n }\n\n return undefined\n }\n\n function getTint() {\n ignoreWhitespace()\n\n // if (_peek() === '/') {\n // cursor += 1\n\n let v = Number(str.slice(cursor, cursor + 3)) as Tint\n\n if (TINTS.includes(v)) {\n cursor += 3\n\n return v\n }\n\n v = Number(str.slice(cursor, cursor + 2)) as Tint\n\n if (TINTS.includes(v)) {\n cursor += 2\n\n return v\n }\n\n // for (const tint of COLOR_TINTS) {\n // const v = _consume(String(tint))\n\n // if (v) {\n // return tint\n // }\n // }\n\n // cursor -= 1\n // }\n\n return undefined\n }\n\n function getMixPercentage() {\n ignoreWhitespace()\n\n const match = RE_PERCENTAGE.exec(str.slice(cursor))\n\n if (match) {\n cursor += match[0].length\n\n return parseFloat(match[1])\n }\n\n return undefined\n }\n\n function getOpacity() {\n ignoreWhitespace()\n\n if (_peek() === '/') {\n cursor += 1\n\n const match = RE_OPACITY.exec(str.slice(cursor))\n\n if (match) {\n cursor += match[0].length\n\n return parseFloat(match[1])\n }\n\n cursor -= 1\n }\n\n return undefined\n }\n\n function ignoreWhitespace() {\n while (_peek() === ' ') {\n cursor++\n }\n }\n}\n","import {Hue} from '../../palette'\nimport {ThemeColorSchemeKey} from '../../v2'\nimport {parseColor} from './parseColor'\nimport {ColorToken} from './token'\n\ntype CSSVariableKey = `--${string}`\n\nexport interface RenderColorContext {\n bgVar: CSSVariableKey\n hue: Hue\n scheme: ThemeColorSchemeKey\n}\n\nexport function renderColor(token: [ColorToken, ColorToken], context: RenderColorContext): string {\n const {bgVar, hue, scheme} = context\n\n const result = parseColor(token[scheme === 'dark' ? 0 : 1])\n\n const colorVar =\n result.color.type === 'hue'\n ? `--${result.color.hue ?? hue}-${result.color.tint}`\n : `--${result.color.type}`\n\n if (result.mix !== undefined) {\n return `color-mix(in srgb, var(${bgVar}), var(${colorVar}) ${result.mix}%)`\n }\n\n if (result.opacity !== undefined) {\n return `color-mix(in srgb, transparent, var(${colorVar}) ${result.opacity * 100}%)`\n }\n\n return `var(${colorVar})`\n}\n","import {\n THEME_COLOR_AVATAR_COLORS,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_STATE_TONES,\n ThemeColorAvatar_v2,\n ThemeColorCardToneKey,\n ThemeColorSchemeKey,\n ThemeColorStateToneKey,\n} from '../../v2'\nimport {CardColorTokens} from './card'\nimport {\n ThemeColor_v3,\n ThemeColorCard_v3,\n ThemeColorElement,\n ThemeColorScheme_v3,\n ThemeColorVariant,\n} from './color'\nimport {ElementColorTokens} from './element'\nimport {renderColor, RenderColorContext} from './renderColor'\nimport {ColorTokens} from './tokens'\n\nconst debug = false\n\nlet nodeLen = 0\n\n/** @internal */\nexport function buildColor_v3(tokens: ColorTokens): ThemeColor_v3 {\n return {\n dark: buildColorScheme_v3(tokens, {scheme: 'dark'}),\n light: buildColorScheme_v3(tokens, {scheme: 'light'}),\n }\n}\n\nfunction buildColorScheme_v3(\n tokens: ColorTokens,\n options: {scheme: ThemeColorSchemeKey},\n): ThemeColorScheme_v3 {\n const {scheme} = options\n\n return {\n card: THEME_COLOR_CARD_TONES.reduce(\n (acc, tone) => {\n acc[tone] = buildColorCard_v3(tokens[tone], {cardTone: tone, scheme})\n\n return acc\n },\n {} as Record<ThemeColorCardToneKey, ThemeColorCard_v3>,\n ),\n }\n}\n\nfunction buildColorCard_v3(\n tokens: CardColorTokens,\n options: {\n cardTone: ThemeColorCardToneKey\n scheme: ThemeColorSchemeKey\n },\n): ThemeColorCard_v3 {\n const {cardTone, scheme} = options\n const context: RenderColorContext = {bgVar: `--color-bg-1`, hue: tokens._hue, scheme}\n\n return {\n _hue: tokens._hue ?? 'gray',\n avatar: THEME_COLOR_AVATAR_COLORS.reduce<ThemeColorAvatar_v2>((acc, hue) => {\n const avatarTokens = tokens.avatar[hue]\n\n acc[hue] = {\n bg: renderColor(avatarTokens.bg, {bgVar: `--color-bg-1`, hue: avatarTokens._hue, scheme}),\n fg: renderColor(avatarTokens.fg, {bgVar: `--color-bg-1`, hue: avatarTokens._hue, scheme}),\n }\n\n return acc\n }, {} as ThemeColorAvatar_v2),\n backdrop: renderColor(tokens.backdrop, context),\n focusRing: renderColor(tokens.focusRing, context),\n shadow: {\n outline: renderColor(tokens.shadow.outline, context),\n umbra: renderColor(tokens.shadow.umbra, context),\n penumbra: renderColor(tokens.shadow.penumbra, context),\n ambient: renderColor(tokens.shadow.ambient, context),\n },\n skeleton: {\n from: renderColor(tokens.skeleton.from, context),\n to: renderColor(tokens.skeleton.to, context),\n },\n token: {\n atrule: renderColor(tokens.token.atrule, context),\n attrName: renderColor(tokens.token.attrName, context),\n attrValue: renderColor(tokens.token.attrValue, context),\n attribute: renderColor(tokens.token.attribute, context),\n boolean: renderColor(tokens.token.boolean, context),\n builtin: renderColor(tokens.token.builtin, context),\n cdata: renderColor(tokens.token.cdata, context),\n char: renderColor(tokens.token.char, context),\n class: renderColor(tokens.token.class, context),\n className: renderColor(tokens.token.className, context),\n comment: renderColor(tokens.token.comment, context),\n constant: renderColor(tokens.token.constant, context),\n deleted: renderColor(tokens.token.deleted, context),\n doctype: renderColor(tokens.token.doctype, context),\n entity: renderColor(tokens.token.entity, context),\n function: renderColor(tokens.token.function, context),\n hexcode: renderColor(tokens.token.hexcode, context),\n id: renderColor(tokens.token.id, context),\n important: renderColor(tokens.token.important, context),\n inserted: renderColor(tokens.token.inserted, context),\n keyword: renderColor(tokens.token.keyword, context),\n number: renderColor(tokens.token.number, context),\n operator: renderColor(tokens.token.operator, context),\n prolog: renderColor(tokens.token.prolog, context),\n property: renderColor(tokens.token.property, context),\n pseudoClass: renderColor(tokens.token.pseudoClass, context),\n pseudoElement: renderColor(tokens.token.pseudoElement, context),\n punctuation: renderColor(tokens.token.punctuation, context),\n regex: renderColor(tokens.token.regex, context),\n selector: renderColor(tokens.token.selector, context),\n string: renderColor(tokens.token.string, context),\n symbol: renderColor(tokens.token.symbol, context),\n tag: renderColor(tokens.token.tag, context),\n unit: renderColor(tokens.token.unit, context),\n url: renderColor(tokens.token.url, context),\n variable: renderColor(tokens.token.variable, context),\n },\n variant: {\n solid: {\n ...THEME_COLOR_STATE_TONES.reduce(\n (acc, tone) => ({\n ...acc,\n [tone]: buildColorElement_v3(tokens.variant.solid[tone], {\n cardTone,\n debugId: `solid`,\n scheme,\n tone,\n }),\n }),\n {} as ThemeColorVariant,\n ),\n },\n tinted: {\n ...THEME_COLOR_STATE_TONES.reduce(\n (acc, tone) => ({\n ...acc,\n [tone]: buildColorElement_v3(tokens.variant.tinted[tone], {\n cardTone,\n debugId: `tinted`,\n scheme,\n tone,\n }),\n }),\n {} as ThemeColorVariant,\n ),\n },\n },\n }\n}\n\nfunction buildColorElement_v3(\n tokens: ElementColorTokens,\n options: {\n cardTone: ThemeColorCardToneKey\n debugId?: string\n scheme: ThemeColorSchemeKey\n tone?: ThemeColorStateToneKey\n },\n): ThemeColorElement {\n const {cardTone, debugId, scheme, tone} = options\n\n const path = [scheme, cardTone, debugId, tone].filter(Boolean).join('/')\n\n if (debug) {\n // eslint-disable-next-line no-console\n console.log(nodeLen, path)\n nodeLen += 1\n }\n\n const context: RenderColorContext = {bgVar: `--bg`, hue: tokens._hue, scheme}\n\n return {\n _hue: tokens._hue ?? 'gray',\n bg: {\n 0: renderColor(tokens.bg[0], context),\n 4: renderColor(tokens.bg[4], context),\n },\n border: {\n 0: renderColor(tokens.border[0], context),\n 4: renderColor(tokens.border[4], context),\n },\n fg: {\n 0: renderColor(tokens.fg[0], context),\n 4: renderColor(tokens.fg[4], context),\n },\n }\n}\n","import {PaletteConfig} from '../palette'\nimport {PartialTokens, Tokens} from './tokens'\n\nexport const defaultPalette: PaletteConfig = {\n chroma: {min: 0.005, max: 0.2325},\n luminosity: {min: 0.1875, max: 1},\n hues: {\n gray: {h: 277, c: 0.04},\n blue: {h: 273, c: 0.185},\n purple: {h: 295, c: 0.4},\n magenta: {h: 12, c: 0.4},\n red: {h: 30, c: 0.4},\n orange: {h: 68, c: 0.4},\n yellow: {h: 90, c: 0.4},\n green: {h: 171, c: 0.4},\n cyan: {h: 194, c: 0.4},\n },\n}\n\nexport const defaultTokens: PartialTokens<Tokens> = {\n color: {\n '*': {\n // backdrop: ['black/0.2', '200/0.2'],\n backdrop: ['black/0.5', 'gray/100/0.5'],\n focusRing: ['blue/500', 'blue/300'],\n link: {\n fg: ['blue/400', 'blue/600'],\n },\n shadow: {\n outline: ['500/0.4', '500/0.3'],\n umbra: ['black/0.2', '500/0.1'],\n penumbra: ['black/0.14', '500/0.07'],\n ambient: ['black/0.12', '500/0.06'],\n },\n token: {\n atrule: ['purple/300', 'purple/600'],\n attrName: ['green/300', 'green/600'],\n attrValue: ['yellow/300', 'yellow/600'],\n attribute: ['yellow/300', 'yellow/600'],\n boolean: ['purple/300', 'purple/600'],\n builtin: ['purple/300', 'purple/600'],\n cdata: ['yellow/300', 'yellow/600'],\n char: ['yellow/300', 'yellow/600'],\n class: ['orange/300', 'orange/600'],\n className: ['cyan/300', 'cyan/600'],\n comment: ['gray/600', 'gray/300'],\n constant: ['purple/300', 'purple/600'],\n deleted: ['red/300', 'red/600'],\n entity: ['red/300', 'red/600'],\n function: ['green/300', 'green/600'],\n hexcode: ['blue/300', 'blue/600'],\n id: ['purple/300', 'purple/600'],\n important: ['purple/300', 'purple/600'],\n inserted: ['green/300', 'green/600'],\n keyword: ['magenta/300', 'magenta/600'],\n number: ['purple/300', 'purple/600'],\n operator: ['magenta/300', 'magenta/600'],\n prolog: ['gray/300', 'gray/600'],\n property: ['blue/300', 'blue/600'],\n pseudoClass: ['yellow/300', 'yellow/600'],\n pseudoElement: ['yellow/300', 'yellow/600'],\n punctuation: ['gray/300', 'gray/600'],\n regex: ['blue/300', 'blue/600'],\n selector: ['red/300', 'red/600'],\n string: ['yellow/300', 'yellow/600'],\n symbol: ['purple/300', 'purple/600'],\n tag: ['red/300', 'red/600'],\n unit: ['orange/300', 'orange/600'],\n url: ['red/300', 'red/600'],\n variable: ['red/300', 'red/600'],\n },\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['900', '50'],\n 4: ['800', '150'],\n },\n border: {\n 0: ['800', '150'],\n 4: ['600', '350'],\n },\n fg: {\n 0: ['100', '900'],\n 4: ['300', '700'],\n },\n },\n 'primary': {\n _hue: 'blue',\n },\n 'suggest': {\n _hue: 'purple',\n },\n 'positive': {\n _hue: 'green',\n },\n 'caution': {\n _hue: 'yellow',\n },\n 'critical': {\n _hue: 'red',\n },\n },\n solid: {\n '*': {\n bg: {\n 0: ['300', '500'],\n 4: ['200', '600'],\n },\n border: {\n 0: ['200', '400'],\n 4: ['100', '500'],\n },\n fg: {\n 0: ['black', 'white'],\n 4: ['600', '400'],\n },\n },\n 'default': {\n bg: {\n 0: ['200', '800'],\n 4: ['white', 'black'],\n },\n border: {\n 0: ['300', '700'],\n 4: ['200', '800'],\n },\n },\n 'primary': {\n _hue: 'blue',\n },\n 'suggest': {\n _hue: 'purple',\n },\n 'positive': {\n _hue: 'green',\n },\n 'caution': {\n _hue: 'yellow',\n },\n 'critical': {\n _hue: 'red',\n },\n },\n },\n },\n 'transparent': {\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['black', 'gray/50'],\n 4: ['900', '150'],\n },\n border: {\n 0: ['900', '150'],\n 4: ['700', '350'],\n },\n fg: {\n 0: ['150', 'black'],\n 4: ['550', '600'],\n },\n },\n },\n },\n },\n 'default': {\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['gray/950', 'white'],\n 4: ['850', '100'],\n },\n border: {\n 0: ['850', '100'],\n 4: ['650', '300'],\n },\n fg: {\n 0: ['white', 'black'],\n 4: ['400', '600'],\n },\n },\n },\n },\n },\n 'primary': {\n _hue: 'blue',\n },\n 'suggest': {\n _hue: 'purple',\n },\n 'positive': {\n _hue: 'green',\n },\n 'caution': {\n _hue: 'yellow',\n },\n 'critical': {\n _hue: 'red',\n },\n },\n}\n\n// export const defaultTheme = buildTheme_v3()\n","export function merge<T extends Record<string, any>>(...records: (T | undefined)[]): T {\n return (records.filter(Boolean) as T[]).reduce(_merge, {} as T)\n}\n\nfunction _merge<T extends Record<string, any>>(acc: T, source: T): T {\n for (const key of Object.keys(source)) {\n const prevValue = acc[key]\n const nextValue = source[key]\n\n if (isRecord(prevValue) && isRecord(nextValue)) {\n ;(acc as any)[key] = merge(prevValue, nextValue)\n } else {\n ;(acc as any)[key] = nextValue\n }\n }\n\n return acc\n}\n\nfunction isRecord(value: unknown): value is Record<string, any> {\n return value !== null && typeof value === 'object' && !Array.isArray(value)\n}\n","import {\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_STATE_TONES,\n ThemeColorCardToneKey,\n ThemeColorStateToneKey,\n} from '../v2'\nimport {CardColorTokens} from './color/card'\nimport {ElementColorTokens} from './color/element'\nimport {merge} from './merge'\nimport {PartialTokens, Tokens} from './tokens'\n\nconst defaultElementTokens: ElementColorTokens = {\n _hue: 'gray',\n bg: {\n 0: ['950', '50'],\n 4: ['700', '300'],\n },\n border: {\n 0: ['700', '300'],\n 4: ['400', '600'],\n },\n fg: {\n 0: ['100', '900'],\n 4: ['400', '600'],\n },\n}\n\n/** @internal */\nexport function resolveTokens(tokens: PartialTokens<Tokens> = {}): Tokens {\n return {\n color: {\n '*': resolveCardColorTokens(tokens.color?.['*']),\n\n ...THEME_COLOR_CARD_TONES.reduce(\n (acc, tone) => {\n return {\n ...acc,\n [tone]: resolveCardColorTokens(merge(tokens.color?.['*'], tokens.color?.[tone])),\n }\n },\n {} as Record<ThemeColorCardToneKey, CardColorTokens>,\n ),\n },\n }\n}\n\nfunction resolveCardColorTokens(\n tokens: PartialTokens<CardColorTokens> | undefined,\n): CardColorTokens {\n return {\n _hue: tokens?._hue ?? 'gray',\n avatar: {\n gray: {\n _hue: tokens?.avatar?.gray?._hue ?? 'gray',\n bg: tokens?.avatar?.gray?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.gray?.fg ?? ['900', '900'],\n },\n blue: {\n _hue: tokens?.avatar?.blue?._hue ?? 'blue',\n bg: tokens?.avatar?.blue?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.blue?.fg ?? ['900', '900'],\n },\n purple: {\n _hue: tokens?.avatar?.purple?._hue ?? 'purple',\n bg: tokens?.avatar?.purple?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.purple?.fg ?? ['900', '900'],\n },\n magenta: {\n _hue: tokens?.avatar?.magenta?._hue ?? 'magenta',\n bg: tokens?.avatar?.magenta?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.magenta?.fg ?? ['900', '900'],\n },\n red: {\n _hue: tokens?.avatar?.red?._hue ?? 'red',\n bg: tokens?.avatar?.red?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.red?.fg ?? ['900', '900'],\n },\n orange: {\n _hue: tokens?.avatar?.orange?._hue ?? 'orange',\n bg: tokens?.avatar?.orange?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.orange?.fg ?? ['900', '900'],\n },\n yellow: {\n _hue: tokens?.avatar?.yellow?._hue ?? 'yellow',\n bg: tokens?.avatar?.yellow?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.yellow?.fg ?? ['900', '900'],\n },\n green: {\n _hue: tokens?.avatar?.green?._hue ?? 'green',\n bg: tokens?.avatar?.green?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.green?.fg ?? ['900', '900'],\n },\n cyan: {\n _hue: tokens?.avatar?.cyan?._hue ?? 'cyan',\n bg: tokens?.avatar?.cyan?.bg ?? ['400', '400'],\n fg: tokens?.avatar?.cyan?.fg ?? ['900', '900'],\n },\n },\n backdrop: tokens?.backdrop ?? ['900', '100'],\n focusRing: tokens?.focusRing ?? ['500', '500'],\n link: {\n fg: tokens?.link?.fg ?? ['400', '600'],\n },\n shadow: {\n outline: tokens?.shadow?.outline ?? ['500', '500'],\n umbra: tokens?.shadow?.umbra ?? ['500', '500'],\n penumbra: tokens?.shadow?.penumbra ?? ['500', '500'],\n ambient: tokens?.shadow?.ambient ?? ['500', '500'],\n },\n skeleton: {\n from: tokens?.skeleton?.from ?? ['900', '100'],\n to: tokens?.skeleton?.to ?? ['950', '50'],\n },\n token: {\n atrule: tokens?.token?.atrule ?? ['400', '600'],\n attribute: tokens?.token?.attribute ?? ['400', '600'],\n attrName: tokens?.token?.attrName ?? ['400', '600'],\n attrValue: tokens?.token?.attrValue ?? ['400', '600'],\n boolean: tokens?.token?.boolean ?? ['400', '600'],\n builtin: tokens?.token?.builtin ?? ['400', '600'],\n cdata: tokens?.token?.cdata ?? ['400', '600'],\n char: tokens?.token?.char ?? ['400', '600'],\n class: tokens?.token?.class ?? ['400', '600'],\n className: tokens?.token?.className ?? ['400', '600'],\n comment: tokens?.token?.comment ?? ['600', '400'],\n constant: tokens?.token?.constant ?? ['400', '600'],\n deleted: tokens?.token?.deleted ?? ['400', '600'],\n doctype: tokens?.token?.doctype ?? ['400', '600'],\n entity: tokens?.token?.entity ?? ['400', '600'],\n function: tokens?.token?.function ?? ['400', '600'],\n hexcode: tokens?.token?.hexcode ?? ['400', '600'],\n id: tokens?.token?.id ?? ['400', '600'],\n important: tokens?.token?.important ?? ['400', '600'],\n inserted: tokens?.token?.inserted ?? ['400', '600'],\n keyword: tokens?.token?.keyword ?? ['400', '600'],\n number: tokens?.token?.number ?? ['400', '600'],\n operator: tokens?.token?.operator ?? ['400', '600'],\n prolog: tokens?.token?.prolog ?? ['400', '600'],\n property: tokens?.token?.property ?? ['400', '600'],\n pseudoClass: tokens?.token?.pseudoClass ?? ['400', '600'],\n pseudoElement: tokens?.token?.pseudoElement ?? ['400', '600'],\n punctuation: tokens?.token?.punctuation ?? ['400', '600'],\n regex: tokens?.token?.regex ?? ['400', '600'],\n selector: tokens?.token?.selector ?? ['400', '600'],\n string: tokens?.token?.string ?? ['400', '600'],\n symbol: tokens?.token?.symbol ?? ['400', '600'],\n tag: tokens?.token?.tag ?? ['400', '600'],\n unit: tokens?.token?.unit ?? ['400', '600'],\n url: tokens?.token?.url ?? ['400', '600'],\n variable: tokens?.token?.variable ?? ['400', '600'],\n },\n variant: {\n solid: {\n '*': resolveElementTokens(tokens?.variant?.solid?.['*']),\n ...THEME_COLOR_STATE_TONES.reduce(\n (acc, tone) => {\n acc[tone] = resolveElementTokens(\n merge(tokens, tokens?.variant?.solid?.['*'], tokens?.variant?.solid?.[tone]),\n )\n\n return acc\n },\n {} as Record<ThemeColorStateToneKey, ElementColorTokens>,\n ),\n },\n tinted: {\n '*': resolveElementTokens(tokens?.variant?.tinted?.['*']),\n ...THEME_COLOR_STATE_TONES.reduce(\n (acc, tone) => {\n acc[tone] = resolveElementTokens(\n merge(tokens, tokens?.variant?.tinted?.['*'], tokens?.variant?.tinted?.[tone]),\n )\n\n return acc\n },\n {} as Record<ThemeColorStateToneKey, ElementColorTokens>,\n ),\n },\n },\n }\n}\n\nfunction resolveElementTokens(tokens?: PartialTokens<ElementColorTokens>): ElementColorTokens {\n return {\n _hue: tokens?._hue ?? 'gray',\n bg: {\n 0: tokens?.bg?.[0] ?? defaultElementTokens.bg[0],\n 4: tokens?.bg?.[4] ?? defaultElementTokens.bg[4],\n },\n border: {\n 0: tokens?.border?.[0] ?? defaultElementTokens.border[0],\n 4: tokens?.border?.[4] ?? defaultElementTokens.border[4],\n },\n fg: {\n 0: tokens?.fg?.[0] ?? defaultElementTokens.fg[0],\n 4: tokens?.fg?.[4] ?? defaultElementTokens.fg[4],\n },\n }\n}\n","import {defaultThemeConfig} from '../defaults/config'\nimport {defaultThemeFonts} from '../defaults/fonts'\nimport {buildColor_v3} from './color/buildColor_v3'\nimport {defaultPalette, defaultTokens} from './defaults'\nimport {resolveTokens} from './resolveTokens'\nimport {Theme_v3, ThemeOptions} from './types'\n\nexport function buildTheme_v3(options?: ThemeOptions): Theme_v3 {\n const {v2} = options ?? {}\n\n const tokens = resolveTokens(options?.tokens ?? defaultTokens)\n\n return {\n _version: 3,\n _palette: options?.palette ?? defaultPalette,\n _tokens: tokens,\n avatar: v2?.avatar ?? defaultThemeConfig.avatar,\n button: v2?.button ?? defaultThemeConfig.button,\n card: v2?.card ?? defaultThemeConfig.card,\n color: buildColor_v3(tokens.color),\n container: v2?.container ?? defaultThemeConfig.container,\n font: v2?.font ?? defaultThemeFonts,\n input: v2?.input ?? defaultThemeConfig.input,\n layer: v2?.layer ?? defaultThemeConfig.layer,\n media: v2?.media ?? defaultThemeConfig.media,\n radius: v2?.radius ?? defaultThemeConfig.radius,\n shadow: v2?.shadow ?? defaultThemeConfig.shadow,\n space: v2?.space ?? defaultThemeConfig.space,\n }\n}\n","import {RootTheme} from '../types'\nimport {ThemeColor, ThemeColorInputState, ThemeColorInputStates} from '../v0'\nimport {\n RootTheme_v2,\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n} from '../v2'\nimport {Theme_v3} from '../v3'\n\nconst cache = new WeakMap<RootTheme_v2, RootTheme>()\n\n/** @internal */\nexport function v2_v0(v2: RootTheme_v2, v3?: Theme_v3): RootTheme {\n const cachedTheme = cache.get(v2)\n\n if (cachedTheme) return cachedTheme\n\n const {\n avatar,\n button,\n color,\n container,\n font: fonts,\n input,\n media,\n radius,\n shadow: shadows,\n space,\n style: styles,\n } = v2\n\n return {\n _version: 0,\n avatar,\n button,\n container,\n color: {\n light: {\n transparent: themeColor_v2_v0(color.light.transparent),\n default: themeColor_v2_v0(color.light.default),\n primary: themeColor_v2_v0(color.light.primary),\n positive: themeColor_v2_v0(color.light.positive),\n caution: themeColor_v2_v0(color.light.caution),\n critical: themeColor_v2_v0(color.light.critical),\n },\n dark: {\n transparent: themeColor_v2_v0(color.dark.transparent),\n default: themeColor_v2_v0(color.dark.default),\n primary: themeColor_v2_v0(color.dark.primary),\n positive: themeColor_v2_v0(color.dark.positive),\n caution: themeColor_v2_v0(color.dark.caution),\n critical: themeColor_v2_v0(color.dark.critical),\n },\n },\n focusRing: input.text.focusRing,\n fonts,\n input,\n media,\n radius,\n shadows,\n space,\n styles,\n\n v2,\n v3,\n }\n}\n\nfunction themeColor_v2_v0(color_v2: ThemeColorCard_v2): ThemeColor {\n return {\n base: {\n bg: color_v2.bg,\n fg: color_v2.fg,\n border: color_v2.border,\n focusRing: color_v2.focusRing,\n shadow: color_v2.shadow,\n },\n button: color_v2.button,\n card: color_v2.selectable.default,\n dark: color_v2._dark,\n input: {\n default: inputStatesThemeColor_v2_v0(color_v2.input.default),\n invalid: inputStatesThemeColor_v2_v0(color_v2.input.invalid),\n },\n muted: {\n ...color_v2.button.ghost,\n transparent: color_v2.button.ghost.default,\n },\n solid: {\n ...color_v2.button.default,\n transparent: color_v2.button.default.default,\n },\n selectable: color_v2.selectable,\n spot: {\n gray: color_v2.avatar.gray.bg,\n blue: color_v2.avatar.blue.bg,\n purple: color_v2.avatar.purple.bg,\n magenta: color_v2.avatar.magenta.bg,\n red: color_v2.avatar.red.bg,\n orange: color_v2.avatar.orange.bg,\n yellow: color_v2.avatar.yellow.bg,\n green: color_v2.avatar.green.bg,\n cyan: color_v2.avatar.cyan.bg,\n },\n syntax: color_v2.syntax,\n }\n}\n\nfunction inputStatesThemeColor_v2_v0(t: ThemeColorInputMode_v2): ThemeColorInputStates {\n return {\n enabled: inputStateThemeColor_v2_v0(t.enabled),\n disabled: inputStateThemeColor_v2_v0(t.disabled),\n readOnly: inputStateThemeColor_v2_v0(t.readOnly),\n hovered: inputStateThemeColor_v2_v0(t.hovered),\n }\n}\n\nfunction inputStateThemeColor_v2_v0(t: ThemeColorInputState_v2): ThemeColorInputState {\n return {\n bg: t.bg,\n bg2: t.muted.bg,\n border: t.border,\n fg: t.fg,\n placeholder: t.placeholder,\n }\n}\n","import {type ThemeConfig} from '../config'\nimport {type RootTheme} from '../types'\nimport {buildTheme_v3, type Theme_v3} from '../v3'\nimport {v2_v0} from '../versioning/v2_v0'\nimport {v3_v2} from '../versioning/v3_v2'\n\n/** @internal */\nexport function buildTheme(_config?: ThemeConfig): RootTheme {\n const v3: Theme_v3 = buildTheme_v3({v2: _config})\n\n return v2_v0(v3_v2(v3), v3)\n}\n","import {RGB, RGBA} from '../types'\n\nfunction mixChannel(b: number, s: number, weight: number) {\n const diff = s - b\n\n const delta = diff * weight\n\n return b + delta\n}\n\n/**\n * Apply the \\`mix\\` blend mode\n * @internal\n */\nexport function mix(b: RGB | RGBA, s: RGB | RGBA, weight: number): RGB {\n return {\n r: mixChannel(b.r, s.r, weight),\n g: mixChannel(b.g, s.g, weight),\n b: mixChannel(b.b, s.b, weight),\n }\n}\n","import {RGB, RGBA} from '../types'\n\nfunction multiplyChannel(b: number, s: number) {\n return b * s\n}\n\n/**\n * Apply the \\`multiply\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingmultiply\n * @internal\n */\nexport function multiply(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: multiplyChannel(b.r / 255, s.r / 255) * 255,\n g: multiplyChannel(b.g / 255, s.g / 255) * 255,\n b: multiplyChannel(b.b / 255, s.b / 255) * 255,\n }\n}\n","import {RGB, RGBA} from '../types'\n\nfunction screenChannel(b: number, s: number) {\n return b + s - b * s\n}\n\n/**\n * Apply the \\`screen\\` blend mode\n * Source: https://www.w3.org/TR/compositing-1/#blendingscreen\n * @internal\n */\nexport function screen(b: RGB | RGBA, s: RGB | RGBA): RGB {\n return {\n r: screenChannel(b.r / 255, s.r / 255) * 255,\n g: screenChannel(b.g / 255, s.g / 255) * 255,\n b: screenChannel(b.b / 255, s.b / 255) * 255,\n }\n}\n","export function lerp(x: number, y: number, a: number): number {\n return x * (1 - a) + y * a\n}\n\nexport function invlerp(x: number, y: number, a: number): number {\n return clamp((a - x) / (y - x))\n}\n\nexport function clamp(a: number, min = 0, max = 1): number {\n return Math.min(max, Math.max(min, a))\n}\n\nexport function range(x1: number, y1: number, x2: number, y2: number, a: number): number {\n return lerp(x2, y2, invlerp(x1, y1, a))\n}\n\nexport function round(value: number): number {\n return Math.round(value)\n}\n","import {clamp, round} from '../utils'\nimport {HSL, RGB, RGBA} from './types'\n\n/**\n * @internal\n */\nexport function hexToRgb(hex: string): RGB {\n if (hex.length === 4) {\n const hexR = hex.slice(1, 2)\n const hexG = hex.slice(2, 3)\n const hexB = hex.slice(3, 4)\n\n return {\n r: parseInt(hexR + hexR, 16),\n g: parseInt(hexG + hexG, 16),\n b: parseInt(hexB + hexB, 16),\n }\n }\n\n return {\n r: parseInt(hex.slice(1, 3), 16),\n g: parseInt(hex.slice(3, 5), 16),\n b: parseInt(hex.slice(5, 7), 16),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbaToRGBA(rgba: string): RGBA {\n const values = rgba.replace(/rgba\\(|\\)/g, '').split(',')\n\n return {\n r: parseInt(values[0]),\n g: parseInt(values[1]),\n b: parseInt(values[2]),\n a: parseFloat(values[3]),\n }\n}\n\n/**\n * @internal\n */\nexport function rgbToHex(color: RGB | RGBA): string {\n const r = round(clamp(Math.round(color.r), 0, 255))\n const g = round(clamp(Math.round(color.g), 0, 255))\n const b = round(clamp(Math.round(color.b), 0, 255))\n\n if ('a' in color) {\n return `rgba(${r},${g},${b},${color.a})`\n }\n\n return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)\n}\n\n/**\n * @internal\n * @see https://css-tricks.com/converting-color-spaces-in-javascript/\n */\nexport function rgbToHsl({r, g, b}: RGB): HSL {\n // Make r, g, and b fractions of 1\n r /= 255\n g /= 255\n b /= 255\n\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b)\n const cmax = Math.max(r, g, b)\n const delta = cmax - cmin\n\n let h = 0\n let s = 0\n let l = 0\n\n // Calculate hue\n // No difference\n if (delta == 0) h = 0\n // Red is max\n else if (cmax == r) h = ((g - b) / delta) % 6\n // Green is max\n else if (cmax == g) h = (b - r) / delta + 2\n // Blue is max\n else h = (r - g) / delta + 4\n\n h = Math.round(h * 60)\n\n // Make negative hues positive behind 360°\n if (h < 0) h += 360\n\n // Calculate lightness\n l = (cmax + cmin) / 2\n\n // Calculate saturation\n s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1))\n\n // Multiply l and s by 100\n s = +(s * 100).toFixed(1)\n l = +(l * 100).toFixed(1)\n\n return {h, s, l}\n}\n\n/**\n * @internal\n */\nexport function hslToRgb(hsl: HSL): RGB {\n // Must be fractions of 1\n const s = hsl.s / 100\n const l = hsl.l / 100\n\n const c = (1 - Math.abs(2 * l - 1)) * s\n const x = c * (1 - Math.abs(((hsl.h / 60) % 2) - 1))\n const m = l - c / 2\n\n let r = 0\n let g = 0\n let b = 0\n\n if (0 <= hsl.h && hsl.h < 60) {\n r = c\n g = x\n b = 0\n } else if (60 <= hsl.h && hsl.h < 120) {\n r = x\n g = c\n b = 0\n } else if (120 <= hsl.h && hsl.h < 180) {\n r = 0\n g = c\n b = x\n } else if (180 <= hsl.h && hsl.h < 240) {\n r = 0\n g = x\n b = c\n } else if (240 <= hsl.h && hsl.h < 300) {\n r = x\n g = 0\n b = c\n } else if (300 <= hsl.h && hsl.h < 360) {\n r = c\n g = 0\n b = x\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n }\n}\n","import {hexToRgb, hslToRgb, rgbaToRGBA} from './convert'\nimport {HSL, RGB, RGBA} from './types'\n\nconst HEX_CHARS = '0123456789ABCDEFabcdef'\n\nconst HSL_RE = /hsl\\(\\s*(\\d+)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*,\\s*((\\d+(?:\\.\\d+)?)%)\\s*\\)/i\n\nfunction isHexChars(str: string) {\n for (const c of str) {\n if (HEX_CHARS.indexOf(c) === -1) {\n return false\n }\n }\n\n return true\n}\n\nfunction isHex(str: string) {\n if (str[0] !== '#') return false\n\n // Accept both #000 and #000000\n if (!(str.length === 4 || str.length === 7)) return false\n\n return isHexChars(str.slice(1))\n}\n\nfunction parseHsl(str: string): HSL {\n const res = HSL_RE.exec(str)\n\n if (!res) {\n throw new Error(`parseHsl: string is not a HSL color: \"${str}\"`)\n }\n\n return {h: parseInt(res[1]), s: parseFloat(res[3]), l: parseFloat(res[5])}\n}\n\n/**\n * @internal\n */\nexport function parseColor(color: unknown): RGB | RGBA {\n if (!color) return {r: 0, g: 0, b: 0}\n\n if (typeof color !== 'string') {\n throw new Error('parseColor: expected a string')\n }\n\n if (isHex(color)) {\n return hexToRgb(color)\n }\n\n if (color.startsWith('hsl(')) {\n return hslToRgb(parseHsl(color))\n }\n\n if (color.startsWith('rgba(')) {\n return rgbaToRGBA(color)\n }\n\n throw new Error(`parseColor: unexpected color format: \"${color}\"`)\n}\n","import {parseColor} from './parse'\nimport {RGB, RGBA} from './types'\n\n/** @internal */\nexport function getContrastRatio(bg: string, fg: string): number {\n const rgb1 = parseColor(bg) // bg: RGB | RGBA, fg: RGB | RGBA\n const rgb2 = parseColor(fg)\n\n // convert the two colors from sRGB to linear-light RGB\n const c1 = rgb_lrgb(rgb1)\n const c2 = rgb_lrgb(rgb2)\n\n // compute the relative luminances\n const l1 = lrgb_luminance(c1)\n const l2 = lrgb_luminance(c2)\n\n // compute the contrast ratio\n return (Math.max(l1, l2) + 0.05) / (Math.min(l1, l2) + 0.05)\n}\n\nfunction rgb_lrgb({r, g, b}: RGB | RGBA): [number, number, number] {\n return [rgb_lrgb1(r / 255), rgb_lrgb1(g / 255), rgb_lrgb1(b / 255)]\n}\n\nfunction rgb_lrgb1(v: number) {\n return v <= 0.04045 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4\n}\n\nfunction lrgb_luminance([r, g, b]: [number, number, number]) {\n return 0.2126 * r + 0.7152 * g + 0.0722 * b\n}\n","import {parseColor} from './parse'\n\n/**\n * @internal\n */\nexport function rgba(color: unknown, a: number): string {\n if (typeof color === 'string' && color.startsWith('var(')) {\n return `color-mix(in srgb, transparent, ${color} ${a * 100}%)`\n }\n\n const rgb = parseColor(color)\n\n return `rgba(${rgb.r},${rgb.g},${rgb.b},${a})`\n}\n","import {ColorHueKey, ColorTintKey} from '@sanity/color'\n\nimport {\n THEME_COLOR_AVATAR_COLORS,\n THEME_COLOR_CARD_TONES,\n THEME_COLOR_INPUT_MODES,\n THEME_COLOR_INPUT_STATES,\n THEME_COLOR_STATE_TONES,\n THEME_COLOR_STATES,\n ThemeColorBlendModeKey,\n} from '../v2'\n\n/** @public */\nexport const COLOR_CONFIG_STATE_KEYS = [\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'muted/fg',\n 'accent/fg',\n 'link/fg',\n 'code/bg',\n 'code/fg',\n 'skeleton/from',\n 'skeleton/to',\n 'status/dot',\n 'status/icon',\n] as const\n\n/** @public */\nexport type ColorConfigStateKey = (typeof COLOR_CONFIG_STATE_KEYS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_KEYS = [\n ...COLOR_CONFIG_STATE_KEYS,\n '_hue',\n 'bg',\n 'fg',\n 'border',\n 'focusRing',\n 'shadow/outline',\n 'shadow/umbra',\n 'shadow/penumbra',\n 'shadow/ambient',\n] as const\n\n/** @public */\nexport type ColorConfigCardKey = (typeof COLOR_CONFIG_CARD_KEYS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_BLEND_KEYS = ['_blend'] as const\n\n/** @public */\nexport type ColorConfigBlendKey = (typeof COLOR_CONFIG_BLEND_KEYS)[number]\n\n/** @public */\nexport type ColorConfigOpacityValue = `0` | `0.${number}` | `1`\n\n/** @public */\nexport type ColorConfigValue =\n | `black`\n | `white`\n | `black/${ColorConfigOpacityValue}`\n | `white/${ColorConfigOpacityValue}`\n | `${ColorHueKey}`\n | `${ColorHueKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}`\n | `${ColorHueKey}/${ColorTintKey} ${number}%`\n | `${ColorHueKey}/${ColorTintKey}/${ColorConfigOpacityValue}`\n | `${ColorTintKey}`\n | `${ColorTintKey} ${number}%`\n | `${ColorTintKey}/${ColorConfigOpacityValue}`\n\n/** @public */\nexport type ThemeColorTokenValue = [ColorConfigValue, ColorConfigValue]\n\n/** @public */\nexport type ColorBlendModeTokenValue = [ThemeColorBlendModeKey, ThemeColorBlendModeKey]\n\n/** @public */\nexport const COLOR_CONFIG_AVATAR_COLORS = ['*', ...THEME_COLOR_AVATAR_COLORS] as const\n\n/** @public */\nexport type ColorConfigAvatarColor = (typeof COLOR_CONFIG_AVATAR_COLORS)[number]\n\n/** @public */\nexport const COLOR_CONFIG_CARD_TONES = ['*', ...THEME_COLOR_CARD_TONES] as const\n\n/** @public */\nexport type ColorConfigCardTone = (typeof COLOR_CONFIG_CARD_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATE_TONES = ['*', ...THEME_COLOR_STATE_TONES] as const\n\n/** @public */\nexport type ColorConfigStateTone = (typeof COLOR_CONFIG_STATE_TONES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_STATES = ['*', ...THEME_COLOR_STATES] as const\n\n/** @public */\nexport type ColorConfigState = (typeof COLOR_CONFIG_STATES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_MODES = ['*', ...THEME_COLOR_INPUT_MODES] as const\n\n/** @public */\nexport type ColorConfigInputMode = (typeof COLOR_CONFIG_INPUT_MODES)[number]\n\n/** @public */\nexport const COLOR_CONFIG_INPUT_STATES = ['*', ...THEME_COLOR_INPUT_STATES] as const\n\n/** @public */\nexport type ColorConfigInputState = (typeof COLOR_CONFIG_INPUT_STATES)[number]\n","import {isColorButtonMode} from '../../v2'\nimport {\n isColorConfigBaseKey,\n isColorConfigBaseTone,\n isColorConfigBlendKey,\n isColorConfigStateKey,\n isColorConfigStateTone,\n} from '../helpers'\nimport {TokenKeyNode} from './types'\n\n/** @internal */\nexport function parseTokenKey(str: string): TokenKeyNode | undefined {\n const segments = str.split('/')\n const segment0 = segments.shift() || ''\n\n if (isColorConfigBaseTone(segment0)) {\n const key = segments.join('/')\n\n if (isColorConfigBaseKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'base',\n tone: segment0,\n key,\n }\n }\n }\n\n if (segment0 === 'button') {\n const segment1 = segments.shift() || ''\n\n if (isColorConfigStateTone(segment1)) {\n const segment2 = segments.shift() || ''\n\n if (isColorButtonMode(segment2)) {\n const key = segments.join('/')\n\n if (isColorConfigStateKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n\n if (isColorConfigBlendKey(key)) {\n return {\n type: 'button',\n tone: segment1,\n mode: segment2,\n key,\n }\n }\n }\n }\n }\n\n return undefined\n}\n","import {isColorBlendModeValue, isColorHueKey, isColorTintKey} from '../../v2'\nimport {isColorOpacityValue, isColorValue} from '../helpers'\nimport {TokenValueNode} from './types'\n\nfunction isColorMixPercentValue(str: string): str is `${number}%` {\n return /^\\d+%$/.test(str)\n}\n\n/** @internal */\nexport function parseTokenValue(str: string): TokenValueNode | undefined {\n const segments = str.split('/')\n\n let nextSegment = segments.shift() || ''\n\n const [segment0, segment0mix] = nextSegment.split(' ')\n\n if (isColorTintKey(segment0)) {\n const tint = segment0\n const segment1 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment0mix)) {\n const mix = Number(segment0mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n tint,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n tint,\n }\n }\n\n if (isColorValue(segment0)) {\n const key = segment0 as 'black' | 'white'\n const segment1 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment0mix)) {\n const mix = Number(segment0mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n key,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment1)) {\n const opacity = Number(segment1)\n\n return {\n type: 'color',\n key,\n opacity,\n }\n }\n\n return {\n type: 'color',\n key,\n }\n }\n\n if (isColorHueKey(segment0)) {\n const hue = segment0\n\n nextSegment = segments.shift() || ''\n\n const [segment1, segment1mix] = nextSegment.split(' ')\n\n if (isColorTintKey(segment1)) {\n const tint = segment1\n const segment2 = segments.shift() || ''\n\n if (isColorMixPercentValue(segment1mix)) {\n const mix = Number(segment1mix.slice(0, -1)) / 100\n\n return {\n type: 'color',\n hue,\n tint,\n mix,\n }\n }\n\n if (isColorOpacityValue(segment2)) {\n const opacity = Number(segment2)\n\n return {\n type: 'color',\n hue,\n tint,\n opacity,\n }\n }\n\n return {\n type: 'color',\n hue,\n tint,\n }\n }\n\n return {\n type: 'hue',\n value: hue,\n }\n }\n\n if (isColorBlendModeValue(segment0)) {\n const value = segment0\n\n return {\n type: 'blendMode',\n value,\n }\n }\n\n return undefined\n}\n","import {\n COLOR_CONFIG_BLEND_KEYS,\n COLOR_CONFIG_CARD_KEYS,\n COLOR_CONFIG_CARD_TONES,\n COLOR_CONFIG_STATE_KEYS,\n COLOR_CONFIG_STATE_TONES,\n ColorConfigBlendKey,\n ColorConfigCardKey,\n ColorConfigCardTone,\n ColorConfigOpacityValue,\n ColorConfigStateKey,\n ColorConfigStateTone,\n ColorConfigValue,\n} from './system'\nimport {parseTokenValue} from './tokens'\n\n/** @internal */\nexport function isColorConfigBaseTone(str: string): str is ColorConfigCardTone {\n return COLOR_CONFIG_CARD_TONES.includes(str as ColorConfigCardTone)\n}\n\n/** @internal */\nexport function isColorConfigBaseKey(str: string): str is ColorConfigCardKey {\n return COLOR_CONFIG_CARD_KEYS.includes(str as ColorConfigCardKey)\n}\n\n/** @internal */\nexport function isColorConfigStateKey(str: string): str is ColorConfigStateKey {\n return COLOR_CONFIG_STATE_KEYS.includes(str as ColorConfigStateKey)\n}\n\n/** @internal */\nexport function isColorConfigStateTone(str: string): str is ColorConfigStateTone {\n return COLOR_CONFIG_STATE_TONES.includes(str as ColorConfigStateTone)\n}\n\n/** @internal */\nexport function isColorConfigBlendKey(str: string): str is ColorConfigBlendKey {\n return COLOR_CONFIG_BLEND_KEYS.includes(str as ColorConfigBlendKey)\n}\n\n/** @internal */\nexport function isColorTokenValue(str: string): str is ColorConfigValue {\n return parseTokenValue(str)?.type === 'color' || parseTokenValue(str)?.type === 'hue'\n}\n\n/** @internal */\nexport function isColorValue(str: string): str is 'black' | 'white' {\n return str === 'black' || str === 'white'\n}\n\n/** @internal */\nexport function isColorOpacityValue(str: string): str is ColorConfigOpacityValue {\n return str === '0' || /^0\\.[0-9]+$/.test(str) || str === '1'\n}\n","import {RootTheme} from '../types'\nimport {RootTheme_v2} from '../v2'\n\n/** @internal */\nexport function is_v2(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme_v2 {\n return themeProp._version === 2\n}\n","import {ThemeColorCard_v2} from '../v2'\n\n/**\n * Apply `neutral` and `suggest` if they're not already part of the color object,\n * as this was introduced in v2.9, but is not compatible with v2.0.\n *\n * @param color - The color object to upgrade\n * @returns The upgraded color object. Returns as-is if already upgraded.\n * @internal\n */\nexport function themeColor_v0_v2_9(color: ThemeColorCard_v2): ThemeColorCard_v2 {\n if ('neutral' in color.badge) {\n return color // Already at >= v2.9\n }\n\n // TypeScript narrows to `never` because the above should always be true\n const colors = color as ThemeColorCard_v2\n\n return {\n ...colors,\n badge: {\n ...colors.badge,\n neutral: colors.badge.default,\n suggest: colors.badge.primary,\n },\n button: {\n bleed: {\n ...colors.button.bleed,\n neutral: colors.button.bleed.default,\n suggest: colors.button.bleed.primary,\n },\n default: {\n ...colors.button.default,\n neutral: colors.button.default.default,\n suggest: colors.button.default.primary,\n },\n ghost: {\n ...colors.button.ghost,\n neutral: colors.button.ghost.default,\n suggest: colors.button.ghost.primary,\n },\n },\n selectable: {\n ...colors.selectable,\n neutral: colors.selectable.default,\n suggest: colors.selectable.primary,\n },\n }\n}\n","import {\n ThemeColor,\n ThemeColorGenericState,\n ThemeColorInputState,\n ThemeColorInputStates,\n ThemeColorMuted,\n} from '../v0'\nimport {\n ThemeColorCard_v2,\n ThemeColorInputMode_v2,\n ThemeColorInputState_v2,\n ThemeColorSelectable_v2,\n ThemeColorState_v2,\n} from '../v2'\n\nconst cache = new WeakMap<ThemeColor, ThemeColorCard_v2>()\n\n/** @internal */\nexport function themeColor_v0_v2(color_v0: ThemeColor): ThemeColorCard_v2 {\n const cached_v2 = cache.get(color_v0)\n\n if (cached_v2) return cached_v2\n\n const base = stateThemeColor_v0_v2(color_v0, color_v0.card.enabled)\n\n const color_v2: ThemeColorCard_v2 = {\n _blend: color_v0._blend || (color_v0.dark ? 'screen' : 'multiply'),\n _dark: color_v0.dark,\n accent: base.accent,\n avatar: base.avatar,\n backdrop: color_v0.base.shadow.ambient,\n badge: base.badge,\n bg: color_v0.base.bg,\n border: color_v0.base.border,\n button: {\n default: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.default),\n ghost: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.ghost),\n bleed: stateTonesThemeColor_v0_v2(color_v0, color_v0.button.bleed),\n },\n code: base.code,\n fg: color_v0.base.fg,\n focusRing: color_v0.base.focusRing,\n icon: base.muted.fg,\n input: {\n default: inputStatesThemeColor_v0_v2(color_v0.input.default),\n invalid: inputStatesThemeColor_v0_v2(color_v0.input.invalid),\n },\n kbd: base.kbd,\n link: base.link,\n muted: {\n ...base.muted,\n bg: color_v0.selectable?.default.enabled.bg2 || color_v0.base.bg,\n },\n selectable: stateTonesThemeColor_v0_v2(color_v0, color_v0.selectable || color_v0.muted),\n shadow: color_v0.base.shadow,\n skeleton: {\n from: color_v0.skeleton?.from || color_v0.base.border,\n to: color_v0.skeleton?.to || color_v0.base.border,\n },\n syntax: color_v0.syntax,\n }\n\n cache.set(color_v0, color_v2)\n\n return color_v2\n}\n\nfunction stateTonesThemeColor_v0_v2(\n v0: ThemeColor,\n t: Omit<ThemeColorMuted, 'transparent'>,\n): ThemeColorSelectable_v2 {\n return {\n default: {\n enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n selected: stateThemeColor_v0_v2(v0, t.default.selected),\n disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n },\n neutral: {\n enabled: stateThemeColor_v0_v2(v0, t.default.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.default.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.default.pressed),\n selected: stateThemeColor_v0_v2(v0, t.default.selected),\n disabled: stateThemeColor_v0_v2(v0, t.default.disabled),\n },\n primary: {\n enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n },\n suggest: {\n enabled: stateThemeColor_v0_v2(v0, t.primary.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.primary.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.primary.pressed),\n selected: stateThemeColor_v0_v2(v0, t.primary.selected),\n disabled: stateThemeColor_v0_v2(v0, t.primary.disabled),\n },\n positive: {\n enabled: stateThemeColor_v0_v2(v0, t.positive.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.positive.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.positive.pressed),\n selected: stateThemeColor_v0_v2(v0, t.positive.selected),\n disabled: stateThemeColor_v0_v2(v0, t.positive.disabled),\n },\n caution: {\n enabled: stateThemeColor_v0_v2(v0, t.caution.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.caution.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.caution.pressed),\n selected: stateThemeColor_v0_v2(v0, t.caution.selected),\n disabled: stateThemeColor_v0_v2(v0, t.caution.disabled),\n },\n critical: {\n enabled: stateThemeColor_v0_v2(v0, t.critical.enabled),\n hovered: stateThemeColor_v0_v2(v0, t.critical.hovered),\n pressed: stateThemeColor_v0_v2(v0, t.critical.pressed),\n selected: stateThemeColor_v0_v2(v0, t.critical.selected),\n disabled: stateThemeColor_v0_v2(v0, t.critical.disabled),\n },\n }\n}\n\nfunction stateThemeColor_v0_v2(v0: ThemeColor, state: ThemeColorGenericState): ThemeColorState_v2 {\n return {\n ...state,\n avatar: {\n gray: {\n bg: v0.spot.gray,\n fg: v0.base.bg,\n },\n blue: {\n bg: v0.spot.blue,\n fg: v0.base.bg,\n },\n purple: {\n bg: v0.spot.purple,\n fg: v0.base.bg,\n },\n magenta: {\n bg: v0.spot.magenta,\n fg: v0.base.bg,\n },\n red: {\n bg: v0.spot.red,\n fg: v0.base.bg,\n },\n orange: {\n bg: v0.spot.orange,\n fg: v0.base.bg,\n },\n yellow: {\n bg: v0.spot.yellow,\n fg: v0.base.bg,\n },\n green: {\n bg: v0.spot.green,\n fg: v0.base.bg,\n },\n cyan: {\n bg: v0.spot.cyan,\n fg: v0.base.bg,\n },\n },\n badge: {\n default: {\n bg: v0.muted.default.enabled.bg,\n fg: v0.muted.default.enabled.fg,\n dot: v0.muted.default.enabled.muted.fg,\n icon: v0.muted.default.enabled.muted.fg,\n },\n neutral: {\n bg: v0.muted.transparent.enabled.bg,\n fg: v0.muted.transparent.enabled.fg,\n dot: v0.muted.transparent.enabled.muted.fg,\n icon: v0.muted.transparent.enabled.muted.fg,\n },\n primary: {\n bg: v0.muted.primary.enabled.bg,\n fg: v0.muted.primary.enabled.fg,\n dot: v0.muted.primary.enabled.muted.fg,\n icon: v0.muted.primary.enabled.muted.fg,\n },\n suggest: {\n bg: v0.muted.primary.enabled.bg,\n fg: v0.muted.primary.enabled.fg,\n dot: v0.muted.primary.enabled.muted.fg,\n icon: v0.muted.primary.enabled.muted.fg,\n },\n positive: {\n bg: v0.muted.positive.enabled.bg,\n fg: v0.muted.positive.enabled.fg,\n dot: v0.muted.positive.enabled.muted.fg,\n icon: v0.muted.positive.enabled.muted.fg,\n },\n caution: {\n bg: v0.muted.caution.enabled.bg,\n fg: v0.muted.caution.enabled.fg,\n dot: v0.muted.caution.enabled.muted.fg,\n icon: v0.muted.caution.enabled.muted.fg,\n },\n critical: {\n bg: v0.muted.critical.enabled.bg,\n fg: v0.muted.critical.enabled.fg,\n dot: v0.muted.critical.enabled.muted.fg,\n icon: v0.muted.critical.enabled.muted.fg,\n },\n },\n kbd: {\n bg: v0.muted.default.enabled.bg,\n fg: v0.muted.default.enabled.fg,\n border: v0.muted.default.enabled.border,\n },\n muted: {\n ...v0.muted.default.enabled.muted,\n bg: state.bg2 || state.bg,\n },\n skeleton: {\n from: state.skeleton?.from || state.border,\n to: state.skeleton?.to || state.border,\n },\n }\n}\n\nfunction inputStatesThemeColor_v0_v2(states: ThemeColorInputStates): ThemeColorInputMode_v2 {\n return {\n enabled: inputStateThemeColor_v0_v2(states.enabled),\n disabled: inputStateThemeColor_v0_v2(states.disabled),\n readOnly: inputStateThemeColor_v0_v2(states.readOnly),\n hovered: inputStateThemeColor_v0_v2(states.hovered),\n }\n}\n\nfunction inputStateThemeColor_v0_v2(state: ThemeColorInputState): ThemeColorInputState_v2 {\n return {\n bg: state.bg,\n border: state.border,\n fg: state.fg,\n muted: {\n bg: state.bg2,\n },\n placeholder: state.placeholder,\n }\n}\n","import {defaultThemeConfig} from '../defaults/config'\nimport {RootTheme} from '../types'\nimport {RootTheme_v2} from '../v2'\nimport {themeColor_v0_v2} from './themeColor_v0_v2'\n\nconst cache = new WeakMap<RootTheme, RootTheme_v2>()\n\n/** @internal */\nexport function v0_v2(v0: RootTheme): RootTheme_v2 {\n if (v0.v2) return v0.v2\n\n const cached_v2 = cache.get(v0)\n\n if (cached_v2) return cached_v2\n\n const {\n avatar,\n button,\n color,\n container,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n focusRing: _unused_focusRing,\n fonts: font,\n input,\n layer,\n media,\n radius,\n shadows: shadow,\n space,\n styles: style,\n } = v0\n\n const v2: RootTheme_v2 = {\n _version: 2,\n avatar: {\n ...defaultThemeConfig.avatar,\n ...avatar,\n },\n button: {\n ...defaultThemeConfig.button,\n ...button,\n },\n card: defaultThemeConfig.card,\n color: {\n light: {\n transparent: themeColor_v0_v2(color.light.transparent),\n default: themeColor_v0_v2(color.light.default),\n neutral: themeColor_v0_v2(color.light.transparent),\n primary: themeColor_v0_v2(color.light.primary),\n suggest: themeColor_v0_v2(color.light.primary),\n positive: themeColor_v0_v2(color.light.positive),\n caution: themeColor_v0_v2(color.light.caution),\n critical: themeColor_v0_v2(color.light.critical),\n },\n dark: {\n transparent: themeColor_v0_v2(color.dark.transparent),\n default: themeColor_v0_v2(color.dark.default),\n neutral: themeColor_v0_v2(color.dark.transparent),\n primary: themeColor_v0_v2(color.dark.primary),\n suggest: themeColor_v0_v2(color.dark.primary),\n positive: themeColor_v0_v2(color.dark.positive),\n caution: themeColor_v0_v2(color.dark.caution),\n critical: themeColor_v0_v2(color.dark.critical),\n },\n },\n container,\n font,\n input: {\n ...defaultThemeConfig.input,\n ...input,\n checkbox: {\n ...defaultThemeConfig.input.checkbox,\n ...input.checkbox,\n },\n radio: {\n ...defaultThemeConfig.input.radio,\n ...input.radio,\n },\n switch: {\n ...defaultThemeConfig.input.switch,\n ...input.switch,\n },\n },\n layer: layer ?? defaultThemeConfig.layer,\n media,\n radius,\n shadow,\n space,\n style,\n }\n\n cache.set(v0, v2)\n\n return v2\n}\n","import {defaultThemeConfig} from './defaults/config'\nimport {RootTheme, Theme} from './types'\nimport {ThemeColor} from './v0'\nimport {RootTheme_v2, ThemeColorCardToneKey, ThemeColorSchemeKey} from './v2'\nimport {is_v2} from './versioning/is_v2'\nimport {themeColor_v0_v2_9} from './versioning/themeColor_v2_v2_9'\nimport {v0_v2} from './versioning/v0_v2'\nimport {v2_v0} from './versioning/v2_v0'\n\n// cache[scheme][tone][rootTheme] = theme\nconst cache = new Map<\n ThemeColorSchemeKey,\n Map<ThemeColorCardToneKey, WeakMap<RootTheme | RootTheme_v2, Theme>>\n>()\n\n/** @internal */\nexport function getScopedTheme(\n themeProp: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n): Theme {\n const cachedTheme = _getCachedTheme(themeProp, scheme, tone)\n\n if (cachedTheme) return cachedTheme\n\n const v0 = is_v2(themeProp) ? v2_v0(themeProp) : themeProp\n const v2 = is_v2(themeProp) ? themeProp : v0_v2(themeProp)\n\n const colorScheme_v0 = v0.color[scheme] || v0.color.light\n const color_v0 = (colorScheme_v0 as Record<string, ThemeColor>)[tone] || colorScheme_v0.default\n const layer_v0 = v0.layer || defaultThemeConfig.layer\n\n const colorScheme_v2 = v2.color[scheme] || v2.color.light\n const color_v2 = colorScheme_v2[tone] || colorScheme_v2.default\n const color_v2_9 = themeColor_v0_v2_9(color_v2)\n const layer_v2 = v2.layer || defaultThemeConfig.layer\n\n const theme: Theme = {\n sanity: {\n ...v0,\n color: color_v0,\n layer: layer_v0,\n v2: {\n ...v2,\n _resolved: true,\n color: color_v2_9,\n layer: layer_v2,\n },\n },\n }\n\n _setCachedTheme(themeProp, scheme, tone, theme)\n\n return theme\n}\n\nfunction _getCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n) {\n const schemeCache = cache.get(scheme)\n\n if (!schemeCache) return undefined\n\n const toneCache = schemeCache.get(tone)\n\n if (!toneCache) return undefined\n\n return toneCache.get(rootTheme)\n}\n\nfunction _setCachedTheme(\n rootTheme: RootTheme | RootTheme_v2,\n scheme: ThemeColorSchemeKey,\n tone: ThemeColorCardToneKey,\n theme: Theme,\n) {\n if (!cache.has(scheme)) cache.set(scheme, new Map())\n\n const schemeCache = cache.get(scheme)!\n\n if (!schemeCache.has(tone)) schemeCache.set(tone, new WeakMap())\n\n const toneCache = schemeCache.get(tone)!\n\n toneCache.set(rootTheme, theme)\n}\n","import {defaultThemeConfig} from '../defaults/config'\nimport {Theme} from '../types'\nimport {Theme_v2} from '../v2'\nimport {themeColor_v0_v2} from './themeColor_v0_v2'\n\nconst cache = new WeakMap<Theme, Theme_v2>()\n\n/** @public */\nexport function getTheme_v2(theme: Theme): Theme_v2 {\n if (theme.sanity.v2?._resolved) return theme.sanity.v2\n\n const cached_v2 = cache.get(theme)\n\n if (cached_v2) return cached_v2\n\n const v2: Theme_v2 = {\n _version: 2,\n _resolved: true,\n avatar: {\n ...defaultThemeConfig.avatar,\n ...theme.sanity.avatar,\n },\n button: {\n ...defaultThemeConfig.button,\n ...theme.sanity.button,\n },\n card: defaultThemeConfig.card,\n color: themeColor_v0_v2(theme.sanity.color),\n container: theme.sanity.container,\n font: theme.sanity.fonts,\n input: {\n ...defaultThemeConfig.input,\n ...theme.sanity.input,\n checkbox: {\n ...defaultThemeConfig.input.checkbox,\n ...theme.sanity.input.checkbox,\n },\n radio: {\n ...defaultThemeConfig.input.radio,\n ...theme.sanity.input.radio,\n },\n switch: {\n ...defaultThemeConfig.input.switch,\n ...theme.sanity.input.switch,\n },\n },\n layer: theme.sanity.layer ?? defaultThemeConfig.layer,\n media: theme.sanity.media,\n radius: theme.sanity.radius,\n shadow: theme.sanity.shadows,\n space: theme.sanity.space,\n style: theme.sanity.styles,\n }\n\n cache.set(theme, v2)\n\n return v2\n}\n"],"names":["isColorBlendModeValue","str","THEME_COLOR_BLEND_MODES","includes","isColorHueKey","COLOR_HUES","isColorTintKey","COLOR_TINTS","isColorButtonMode","THEME_COLOR_BUTTON_MODES","AVATAR_SIZE","CONTAINER","RADIUS","SPACE","FONT_CODE_SIZE","FONT_HEADING_SIZE","FONT_LABEL_SIZE","FONT_TEXT_SIZE","SHADOW","createSelectableTones","opts","base","dark","solid","muted","default","_createSelectableStates","primary","positive","caution","critical","tone","enabled","selectable","state","hovered","pressed","selected","disabled","createSolidTones","name","transparent","createButtonTones","mode","button","createButtonModes","ghost","bleed","createCardStates","card","black","white","colors","lightest","lighter","light","darker","darkest","spots","gray","red","orange","yellow","green","cyan","blue","purple","magenta","tones","bg","fg","border","focusRing","defaultOpts","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","color","bg2","icon","accent","link","code","input","placeholder","spot","key","syntax","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","doctype","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","createInputModes","readOnly","invalid","createMutedTones","createSpot","createColorTheme","partialOpts","builders","_createColorScheme","_createColor","defaultThemeConfig","avatar","sizes","distance","size","offset","width","textWeight","BORDER_WIDTH","OUTLINE_WIDTH","container","media","layer","dialog","zOffset","popover","tooltip","radius","space","checkbox","radio","markSize","switch","height","padding","transitionDurationMs","transitionTimingFunction","select","text","defaultThemeFonts","family","weights","regular","medium","semibold","bold","ascenderHeight","descenderHeight","fontSize","iconSize","lineHeight","letterSpacing","heading","featureSettings","label","HUES","TINTS","RE_PERCENTAGE","RE_OPACITY","parseColor","cursor","getColor","Error","opacity","getOpacity","mix","getMixPercentage","_consume","s","startsWith","length","_peek","v","type","hue","String","tint","getTint","undefined","Number","slice","match","exec","parseFloat","ignoreWhitespace","renderColor","token","context","bgVar","scheme","result","colorVar","buildColor_v3","tokens","buildColorScheme_v3","options","THEME_COLOR_CARD_TONES","reduce","acc","buildColorCard_v3","_hue","THEME_COLOR_AVATAR_COLORS","avatarTokens","backdrop","variant","THEME_COLOR_STATE_TONES","buildColorElement_v3","tinted","defaultPalette","chroma","min","max","luminosity","hues","h","c","defaultTokens","merge","records","filter","Boolean","_merge","source","Object","keys","prevValue","nextValue","isRecord","value","Array","isArray","defaultElementTokens","resolveTokens","resolveCardColorTokens","resolveElementTokens","buildTheme_v3","v2","_version","_palette","palette","_tokens","font","cache","WeakMap","v2_v0","v3","cachedTheme","get","fonts","shadows","style","styles","themeColor_v2_v0","color_v2","_dark","inputStatesThemeColor_v2_v0","t","inputStateThemeColor_v2_v0","buildTheme","_config","v3_v2","mixChannel","b","weight","delta","r","g","multiplyChannel","multiply","screenChannel","screen","clamp","a","Math","round","hexToRgb","hex","hexR","hexG","hexB","parseInt","rgbaToRGBA","rgba","values","replace","split","rgbToHex","toString","rgbToHsl","cmin","cmax","l","abs","toFixed","hslToRgb","hsl","x","m","HEX_CHARS","HSL_RE","isHexChars","indexOf","isHex","parseHsl","res","getContrastRatio","rgb1","rgb2","c1","rgb_lrgb","c2","l1","lrgb_luminance","l2","rgb_lrgb1","rgb","COLOR_CONFIG_STATE_KEYS","COLOR_CONFIG_CARD_KEYS","COLOR_CONFIG_BLEND_KEYS","COLOR_CONFIG_AVATAR_COLORS","COLOR_CONFIG_CARD_TONES","COLOR_CONFIG_STATE_TONES","COLOR_CONFIG_STATES","THEME_COLOR_STATES","COLOR_CONFIG_INPUT_MODES","THEME_COLOR_INPUT_MODES","COLOR_CONFIG_INPUT_STATES","THEME_COLOR_INPUT_STATES","parseTokenKey","segments","segment0","shift","isColorConfigBaseTone","join","isColorConfigBaseKey","isColorConfigBlendKey","segment1","isColorConfigStateTone","segment2","isColorConfigStateKey","isColorMixPercentValue","test","parseTokenValue","nextSegment","segment0mix","isColorOpacityValue","isColorValue","segment1mix","isColorTokenValue","is_v2","themeProp","themeColor_v0_v2_9","badge","neutral","suggest","themeColor_v0_v2","color_v0","cached_v2","stateThemeColor_v0_v2","_blend","stateTonesThemeColor_v0_v2","inputStatesThemeColor_v0_v2","kbd","set","v0","dot","states","inputStateThemeColor_v0_v2","v0_v2","Map","getScopedTheme","_getCachedTheme","colorScheme_v0","layer_v0","colorScheme_v2","color_v2_9","layer_v2","theme","sanity","_resolved","_setCachedTheme","rootTheme","schemeCache","toneCache","has","getTheme_v2"],"mappings":"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"}
|
package/src/core/StyleTags.tsx
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import {compilePalette, compileSystem, compileTheme} from '@sanity/ui/css'
|
|
2
|
-
import {buildTheme_v3, RootTheme, Theme_v3} from '@sanity/ui/theme'
|
|
3
|
-
import {ReactNode} from 'react'
|
|
4
|
-
|
|
5
|
-
/* @beta */
|
|
6
|
-
export function StyleTags(props: {theme?: Theme_v3}): ReactNode {
|
|
7
|
-
const {theme: themeProp} = props
|
|
8
|
-
|
|
9
|
-
const theme = themeProp ?? buildTheme_v3()
|
|
10
|
-
|
|
11
|
-
return (
|
|
12
|
-
<>
|
|
13
|
-
<style href="sanity-palette" precedence="palette">
|
|
14
|
-
{compilePalette(theme._palette)}
|
|
15
|
-
</style>
|
|
16
|
-
<style href="sanity-theme" precedence="theme">
|
|
17
|
-
{compileTheme({v3: theme} as RootTheme)}
|
|
18
|
-
</style>
|
|
19
|
-
<style href="sanity-system" precedence="system">
|
|
20
|
-
{compileSystem()}
|
|
21
|
-
</style>
|
|
22
|
-
</>
|
|
23
|
-
)
|
|
24
|
-
}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import {Strategy} from '@floating-ui/react-dom'
|
|
2
|
-
import {motion, MotionProps} from 'framer-motion'
|
|
3
|
-
import {CSSProperties, ForwardedRef, forwardRef, memo, useMemo} from 'react'
|
|
4
|
-
|
|
5
|
-
import {POPOVER_MOTION_PROPS} from '../../constants'
|
|
6
|
-
import {Placement, PopoverMargins, Props} from '../../types'
|
|
7
|
-
import {Arrow, useLayer} from '../../utils'
|
|
8
|
-
import {Card, CardProps} from '../card'
|
|
9
|
-
import {Flex} from '../flex'
|
|
10
|
-
import {
|
|
11
|
-
DEFAULT_POPOVER_ARROW_HEIGHT,
|
|
12
|
-
DEFAULT_POPOVER_ARROW_RADIUS,
|
|
13
|
-
DEFAULT_POPOVER_ARROW_WIDTH,
|
|
14
|
-
DEFAULT_POPOVER_MARGINS,
|
|
15
|
-
} from './constants'
|
|
16
|
-
|
|
17
|
-
/** @internal */
|
|
18
|
-
export interface PopoverCardProps extends CardProps {
|
|
19
|
-
/** @beta*/
|
|
20
|
-
__unstable_margins?: PopoverMargins
|
|
21
|
-
animate?: boolean
|
|
22
|
-
arrow: boolean
|
|
23
|
-
arrowRef: ForwardedRef<HTMLDivElement>
|
|
24
|
-
arrowX?: number
|
|
25
|
-
arrowY?: number
|
|
26
|
-
originX?: number
|
|
27
|
-
originY?: number
|
|
28
|
-
placement: Placement
|
|
29
|
-
referenceWidth?: number
|
|
30
|
-
strategy: Strategy
|
|
31
|
-
x: number | null
|
|
32
|
-
y: number | null
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const MotionCard = motion.create(Card)
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* @internal
|
|
39
|
-
*/
|
|
40
|
-
export const PopoverCard = memo(
|
|
41
|
-
forwardRef(function PopoverCard(
|
|
42
|
-
props: Props<PopoverCardProps, 'div'>,
|
|
43
|
-
ref: ForwardedRef<HTMLDivElement>,
|
|
44
|
-
) {
|
|
45
|
-
const {
|
|
46
|
-
__unstable_margins: marginsProp,
|
|
47
|
-
animate,
|
|
48
|
-
arrow,
|
|
49
|
-
arrowRef,
|
|
50
|
-
arrowX,
|
|
51
|
-
arrowY,
|
|
52
|
-
children,
|
|
53
|
-
padding,
|
|
54
|
-
placement,
|
|
55
|
-
originX,
|
|
56
|
-
originY,
|
|
57
|
-
overflow,
|
|
58
|
-
radius,
|
|
59
|
-
referenceWidth,
|
|
60
|
-
scheme,
|
|
61
|
-
shadow,
|
|
62
|
-
strategy,
|
|
63
|
-
style,
|
|
64
|
-
tone,
|
|
65
|
-
// width,
|
|
66
|
-
x: xProp,
|
|
67
|
-
y: yProp,
|
|
68
|
-
...restProps
|
|
69
|
-
} = props
|
|
70
|
-
|
|
71
|
-
const {zIndex} = useLayer()
|
|
72
|
-
|
|
73
|
-
// Get margins: [top, right, bottom, left]
|
|
74
|
-
const margins: PopoverMargins = useMemo(
|
|
75
|
-
() => marginsProp || DEFAULT_POPOVER_MARGINS,
|
|
76
|
-
[marginsProp],
|
|
77
|
-
)
|
|
78
|
-
|
|
79
|
-
// Translate according to margins
|
|
80
|
-
const x = (xProp ?? 0) + margins[3]
|
|
81
|
-
const y = (yProp ?? 0) + margins[0]
|
|
82
|
-
|
|
83
|
-
const rootStyle: CSSProperties = useMemo(
|
|
84
|
-
() => ({
|
|
85
|
-
left: x,
|
|
86
|
-
originX,
|
|
87
|
-
originY,
|
|
88
|
-
position: strategy,
|
|
89
|
-
top: y,
|
|
90
|
-
width: referenceWidth,
|
|
91
|
-
zIndex,
|
|
92
|
-
willChange: animate ? 'transform' : undefined,
|
|
93
|
-
...style,
|
|
94
|
-
}),
|
|
95
|
-
[animate, originX, originY, referenceWidth, strategy, style, x, y, zIndex],
|
|
96
|
-
)
|
|
97
|
-
|
|
98
|
-
const arrowStyle: CSSProperties = useMemo(
|
|
99
|
-
() => ({
|
|
100
|
-
left: arrowX !== null ? arrowX : undefined,
|
|
101
|
-
top: arrowY !== null ? arrowY : undefined,
|
|
102
|
-
right: undefined,
|
|
103
|
-
bottom: undefined,
|
|
104
|
-
}),
|
|
105
|
-
[arrowX, arrowY],
|
|
106
|
-
)
|
|
107
|
-
|
|
108
|
-
return (
|
|
109
|
-
<MotionCard
|
|
110
|
-
className="popover-card"
|
|
111
|
-
data-ui="Popover"
|
|
112
|
-
{...(restProps as CardProps & MotionProps)}
|
|
113
|
-
data-placement={placement}
|
|
114
|
-
direction="column"
|
|
115
|
-
display="flex"
|
|
116
|
-
radius={radius}
|
|
117
|
-
ref={ref}
|
|
118
|
-
scheme={scheme}
|
|
119
|
-
shadow={shadow}
|
|
120
|
-
sizing="border"
|
|
121
|
-
style={rootStyle}
|
|
122
|
-
tone={tone}
|
|
123
|
-
variants={POPOVER_MOTION_PROPS.card}
|
|
124
|
-
transition={POPOVER_MOTION_PROPS.transition}
|
|
125
|
-
initial={animate ? ['hidden', 'initial'] : undefined}
|
|
126
|
-
animate={animate ? ['visible', 'scaleIn'] : undefined}
|
|
127
|
-
exit={animate ? ['hidden', 'scaleOut'] : undefined}
|
|
128
|
-
>
|
|
129
|
-
<Flex data-ui="Popover__wrapper" direction="column" flex={1} overflow={overflow}>
|
|
130
|
-
<Flex direction="column" flex={1} padding={padding}>
|
|
131
|
-
{children}
|
|
132
|
-
</Flex>
|
|
133
|
-
</Flex>
|
|
134
|
-
|
|
135
|
-
{arrow && (
|
|
136
|
-
<Arrow
|
|
137
|
-
ref={arrowRef}
|
|
138
|
-
style={arrowStyle}
|
|
139
|
-
width={DEFAULT_POPOVER_ARROW_WIDTH}
|
|
140
|
-
height={DEFAULT_POPOVER_ARROW_HEIGHT}
|
|
141
|
-
radius={DEFAULT_POPOVER_ARROW_RADIUS}
|
|
142
|
-
/>
|
|
143
|
-
)}
|
|
144
|
-
</MotionCard>
|
|
145
|
-
)
|
|
146
|
-
}),
|
|
147
|
-
)
|
|
148
|
-
PopoverCard.displayName = 'Memo(ForwardRef(PopoverCard))'
|