@sanity/ui 4.0.0-static.9 → 4.0.0
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/LICENSE +1 -1
- package/README.md +25 -7
- package/dist/_system-CTe2lb5l.d.ts +40 -0
- package/dist/_system-CTe2lb5l.d.ts.map +1 -0
- package/dist/arrow-CHE8-_G7.js +161 -0
- package/dist/arrow-CHE8-_G7.js.map +1 -0
- package/dist/autocomplete.d.ts +140 -0
- package/dist/autocomplete.d.ts.map +1 -0
- package/dist/autocomplete.js +475 -0
- package/dist/autocomplete.js.map +1 -0
- package/dist/breadcrumbs.d.ts +18 -0
- package/dist/breadcrumbs.d.ts.map +1 -0
- package/dist/breadcrumbs.js +116 -0
- package/dist/breadcrumbs.js.map +1 -0
- package/dist/button-dnqMFkWg.d.ts +76 -0
- package/dist/button-dnqMFkWg.d.ts.map +1 -0
- package/dist/button-mxfSqr0n.js +179 -0
- package/dist/button-mxfSqr0n.js.map +1 -0
- package/dist/card-C0a0wQTc.d.ts +7 -0
- package/dist/card-C0a0wQTc.d.ts.map +1 -0
- package/dist/code.d.ts +20 -0
- package/dist/code.d.ts.map +1 -0
- package/dist/code.js +90 -0
- package/dist/code.js.map +1 -0
- package/dist/codeFontStyle-DYUujk7K.js +11 -0
- package/dist/codeFontStyle-DYUujk7K.js.map +1 -0
- package/dist/component-DVlwaWB-.d.ts +25 -0
- package/dist/component-DVlwaWB-.d.ts.map +1 -0
- package/dist/element-BYgCE_iK.js +51 -0
- package/dist/element-BYgCE_iK.js.map +1 -0
- package/dist/factory-BA3gEfyI.js +3056 -0
- package/dist/factory-BA3gEfyI.js.map +1 -0
- package/dist/flex-C-5JHi1C.js +76 -0
- package/dist/flex-C-5JHi1C.js.map +1 -0
- package/dist/font-EtfxKPUz.d.ts +49 -0
- package/dist/font-EtfxKPUz.d.ts.map +1 -0
- package/dist/getElementRef-5HZQ-Owu.js +91 -0
- package/dist/getElementRef-5HZQ-Owu.js.map +1 -0
- package/dist/getScopedTheme-C-sZsyAz.js +267 -0
- package/dist/getScopedTheme-C-sZsyAz.js.map +1 -0
- package/dist/getTheme_v2-y09KqtEb.js +487 -0
- package/dist/getTheme_v2-y09KqtEb.js.map +1 -0
- package/dist/grid-BXHFJhf_.js +115 -0
- package/dist/grid-BXHFJhf_.js.map +1 -0
- package/dist/helpers-bwfx1e-Y.js +67 -0
- package/dist/helpers-bwfx1e-Y.js.map +1 -0
- package/dist/hotkeys-CmmTQZpn.js +165 -0
- package/dist/hotkeys-CmmTQZpn.js.map +1 -0
- package/dist/index.d.ts +1192 -2168
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2069 -4483
- package/dist/index.js.map +1 -1
- package/dist/layer-B98ynOf2.js +61 -0
- package/dist/layer-B98ynOf2.js.map +1 -0
- package/dist/layer-ChlP9Ik6.d.ts +242 -0
- package/dist/layer-ChlP9Ik6.d.ts.map +1 -0
- package/dist/menu.d.ts +146 -0
- package/dist/menu.d.ts.map +1 -0
- package/dist/menu.js +614 -0
- package/dist/menu.js.map +1 -0
- package/dist/popover-CMlQeKn0.d.ts +96 -0
- package/dist/popover-CMlQeKn0.d.ts.map +1 -0
- package/dist/popover-PorX5Jv9.js +419 -0
- package/dist/popover-PorX5Jv9.js.map +1 -0
- package/dist/popover.d.ts +2 -0
- package/dist/popover.js +3 -0
- package/dist/refractor-CC48DwHi.js +20 -0
- package/dist/refractor-CC48DwHi.js.map +1 -0
- package/dist/responsiveFont-hN1mZFjm.js +55 -0
- package/dist/responsiveFont-hN1mZFjm.js.map +1 -0
- package/dist/rgba-BSYaEUW6.d.ts +846 -0
- package/dist/rgba-BSYaEUW6.d.ts.map +1 -0
- package/dist/selectable-B0GUIL74.d.ts +7 -0
- package/dist/selectable-B0GUIL74.d.ts.map +1 -0
- package/dist/stack-iW9HuGLg.js +112 -0
- package/dist/stack-iW9HuGLg.js.map +1 -0
- package/dist/styles-css.d.ts +2 -0
- package/dist/styles-css.js +4 -0
- package/dist/styles.css +28 -0
- package/dist/textInput-udxyGbm1.js +321 -0
- package/dist/textInput-udxyGbm1.js.map +1 -0
- package/dist/theme.d.ts +240 -459
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +55 -870
- package/dist/theme.js.map +1 -1
- package/dist/toast.d.ts +73 -0
- package/dist/toast.d.ts.map +1 -0
- package/dist/toast.js +297 -0
- package/dist/toast.js.map +1 -0
- package/dist/tooltip.d.ts +88 -0
- package/dist/tooltip.d.ts.map +1 -0
- package/dist/tooltip.js +447 -0
- package/dist/tooltip.js.map +1 -0
- package/dist/useClickOutsideEvent-lEVhDFCQ.js +36 -0
- package/dist/useClickOutsideEvent-lEVhDFCQ.js.map +1 -0
- package/dist/useElementSize-BJvbGHq8.js +51 -0
- package/dist/useElementSize-BJvbGHq8.js.map +1 -0
- package/dist/useLayer-BAVfmbNN.js +712 -0
- package/dist/useLayer-BAVfmbNN.js.map +1 -0
- package/package.json +73 -208
- package/dist/_chunks-cjs/refractor.cjs +0 -22
- package/dist/_chunks-cjs/refractor.cjs.map +0 -1
- package/dist/_chunks-es/refractor.js +0 -25
- package/dist/_chunks-es/refractor.js.map +0 -1
- package/dist/css/index.cjs +0 -966
- package/dist/css/index.cjs.map +0 -1
- package/dist/css/index.css +0 -23387
- package/dist/css/index.css.map +0 -1
- package/dist/css/index.d.cts +0 -1394
- package/dist/css/index.d.ts +0 -1394
- package/dist/css/index.js +0 -967
- package/dist/css/index.js.map +0 -1
- package/dist/index.cjs +0 -4515
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -2521
- package/dist/theme.cjs +0 -870
- package/dist/theme.cjs.map +0 -1
- package/dist/theme.d.cts +0 -499
- package/exports/css.ts +0 -1
- package/exports/index.ts +0 -1
- package/exports/theme.ts +0 -1
- package/src/core/Root.tsx +0 -88
- package/src/core/RootProvider.tsx +0 -40
- package/src/core/__workshop__/boundary.tsx +0 -28
- package/src/core/__workshop__/index.ts +0 -16
- package/src/core/components/autocomplete/__workshop__/async.tsx +0 -156
- package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -131
- package/src/core/components/autocomplete/__workshop__/custom.tsx +0 -91
- package/src/core/components/autocomplete/__workshop__/example.tsx +0 -80
- package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
- package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +0 -292
- package/src/core/components/autocomplete/__workshop__/index.ts +0 -41
- package/src/core/components/autocomplete/__workshop__/mock/apiStore.ts +0 -49
- package/src/core/components/autocomplete/__workshop__/mock/countries.ts +0 -245
- package/src/core/components/autocomplete/__workshop__/types.ts +0 -4
- package/src/core/components/autocomplete/autocomplete.tsx +0 -690
- package/src/core/components/autocomplete/autocompleteOption.tsx +0 -45
- package/src/core/components/autocomplete/autocompleteReducer.ts +0 -47
- package/src/core/components/autocomplete/constants.ts +0 -28
- package/src/core/components/autocomplete/types.ts +0 -103
- package/src/core/components/breadcrumbs/__workshop__/example.tsx +0 -61
- package/src/core/components/breadcrumbs/__workshop__/index.ts +0 -16
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +0 -131
- package/src/core/components/dialog/__workshop__/activate.tsx +0 -141
- package/src/core/components/dialog/__workshop__/autoFocus.tsx +0 -29
- package/src/core/components/dialog/__workshop__/index.ts +0 -21
- package/src/core/components/dialog/__workshop__/layering.tsx +0 -41
- package/src/core/components/dialog/__workshop__/nested.tsx +0 -71
- package/src/core/components/dialog/__workshop__/onScroll.tsx +0 -51
- package/src/core/components/dialog/__workshop__/panes.tsx +0 -89
- package/src/core/components/dialog/__workshop__/position.tsx +0 -30
- package/src/core/components/dialog/__workshop__/props.tsx +0 -77
- package/src/core/components/dialog/__workshop__/provider.tsx +0 -11
- package/src/core/components/dialog/__workshop__/wrapped.tsx +0 -76
- package/src/core/components/dialog/dialog.tsx +0 -232
- package/src/core/components/dialog/dialogCard.tsx +0 -233
- package/src/core/components/dialog/dialogContext.ts +0 -21
- package/src/core/components/dialog/dialogProvider.tsx +0 -34
- package/src/core/components/dialog/isTargetWithinScope.ts +0 -14
- package/src/core/components/dialog/types.ts +0 -2
- package/src/core/components/dialog/useDialog.ts +0 -11
- package/src/core/components/hotkeys/__workshop__/index.ts +0 -16
- package/src/core/components/hotkeys/__workshop__/plain.tsx +0 -9
- package/src/core/components/hotkeys/hotkeys.tsx +0 -60
- package/src/core/components/menu/__workshop__/asComponent.tsx +0 -45
- package/src/core/components/menu/__workshop__/avatarMenu.tsx +0 -57
- package/src/core/components/menu/__workshop__/closableMenuButton.tsx +0 -47
- package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +0 -133
- package/src/core/components/menu/__workshop__/customMenuItem.tsx +0 -45
- package/src/core/components/menu/__workshop__/customSelectedState.tsx +0 -35
- package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
- package/src/core/components/menu/__workshop__/groups.tsx +0 -156
- package/src/core/components/menu/__workshop__/index.ts +0 -91
- package/src/core/components/menu/__workshop__/menuButton.tsx +0 -80
- package/src/core/components/menu/__workshop__/menuGroupRight.tsx +0 -65
- package/src/core/components/menu/__workshop__/nestedMenu.tsx +0 -22
- package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +0 -50
- package/src/core/components/menu/__workshop__/selectedItem.tsx +0 -69
- package/src/core/components/menu/__workshop__/shouldFocus.tsx +0 -42
- package/src/core/components/menu/__workshop__/tones.tsx +0 -25
- package/src/core/components/menu/__workshop__/withoutArrow.tsx +0 -32
- package/src/core/components/menu/helpers.ts +0 -82
- package/src/core/components/menu/menu.test.tsx +0 -129
- package/src/core/components/menu/menu.tsx +0 -179
- package/src/core/components/menu/menuButton.tsx +0 -225
- package/src/core/components/menu/menuContext.ts +0 -19
- package/src/core/components/menu/menuDivider.tsx +0 -32
- package/src/core/components/menu/menuGroup.tsx +0 -233
- package/src/core/components/menu/menuItem.tsx +0 -184
- package/src/core/components/menu/useMenu.ts +0 -21
- package/src/core/components/menu/useMenuController.ts +0 -241
- package/src/core/components/tab/__workshop__/example.tsx +0 -79
- package/src/core/components/tab/__workshop__/index.ts +0 -16
- package/src/core/components/tab/tab.tsx +0 -109
- package/src/core/components/tab/tabList.tsx +0 -90
- package/src/core/components/tab/tabPanel.tsx +0 -47
- package/src/core/components/toast/__workshop__/hook.tsx +0 -71
- package/src/core/components/toast/__workshop__/index.ts +0 -21
- package/src/core/components/toast/__workshop__/toast.tsx +0 -26
- package/src/core/components/toast/toast.test.tsx +0 -103
- package/src/core/components/toast/toast.tsx +0 -191
- package/src/core/components/toast/toastContext.ts +0 -7
- package/src/core/components/toast/toastLayer.tsx +0 -54
- package/src/core/components/toast/toastProvider.tsx +0 -112
- package/src/core/components/toast/toastState.ts +0 -6
- package/src/core/components/toast/types.ts +0 -24
- package/src/core/components/toast/useToast.ts +0 -23
- package/src/core/components/tree/__workshop__/basic.perf.ts +0 -19
- package/src/core/components/tree/__workshop__/basic.tsx +0 -105
- package/src/core/components/tree/__workshop__/index.ts +0 -23
- package/src/core/components/tree/__workshop__/tabFromElement.tsx +0 -84
- package/src/core/components/tree/helpers.ts +0 -105
- package/src/core/components/tree/tree.tsx +0 -248
- package/src/core/components/tree/treeContext.ts +0 -10
- package/src/core/components/tree/treeGroup.tsx +0 -46
- package/src/core/components/tree/treeItem.tsx +0 -237
- package/src/core/components/tree/types.ts +0 -24
- package/src/core/components/tree/useTree.ts +0 -17
- package/src/core/components/virtualList/__workshop__/changingProps.tsx +0 -36
- package/src/core/components/virtualList/__workshop__/elementScroll.tsx +0 -24
- package/src/core/components/virtualList/__workshop__/index.ts +0 -31
- package/src/core/components/virtualList/__workshop__/infiniteList.tsx +0 -48
- package/src/core/components/virtualList/__workshop__/windowScrolll.tsx +0 -22
- package/src/core/components/virtualList/virtualList.tsx +0 -209
- package/src/core/constants.ts +0 -67
- package/src/core/helpers/animation.ts +0 -27
- package/src/core/helpers/element.ts +0 -55
- package/src/core/helpers/focus.ts +0 -92
- package/src/core/helpers/props.ts +0 -28
- package/src/core/helpers/scroll.ts +0 -15
- package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -114
- package/src/core/hooks/useClickOutsideEvent.ts +0 -67
- package/src/core/hooks/useCustomValidity.ts +0 -13
- package/src/core/hooks/useDelayed.test.ts +0 -67
- package/src/core/hooks/useDelayedState.ts +0 -28
- package/src/core/hooks/useElementSize.ts +0 -19
- package/src/core/hooks/useGlobalKeyDown.ts +0 -17
- package/src/core/hooks/useMatchMedia.ts +0 -28
- package/src/core/hooks/useMediaIndex/__workshop__/index.ts +0 -16
- package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
- package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -21
- package/src/core/hooks/useMediaIndex/useMediaIndex.ts +0 -107
- package/src/core/hooks/useMounted.ts +0 -15
- package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -56
- package/src/core/hooks/usePrefersDark.test.tsx +0 -20
- package/src/core/hooks/usePrefersDark.ts +0 -16
- package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
- package/src/core/hooks/usePrefersReducedMotion.test.tsx +0 -20
- package/src/core/hooks/usePrefersReducedMotion.ts +0 -16
- package/src/core/hooks/useResponsiveProp.ts +0 -28
- package/src/core/index.ts +0 -115
- package/src/core/lib/createGlobalScopedContext.ts +0 -37
- package/src/core/lib/globalScope.ts +0 -19
- package/src/core/lib/isArray.ts +0 -3
- package/src/core/lib/isRecord.ts +0 -3
- package/src/core/middleware/origin.ts +0 -47
- package/src/core/observers/elementSize.ts +0 -116
- package/src/core/observers/resize.ts +0 -9
- package/src/core/primitives/arrow/arrow.tsx +0 -74
- package/src/core/primitives/arrow/cmds.ts +0 -91
- package/src/core/primitives/avatar/__workshop__/asButton.tsx +0 -14
- package/src/core/primitives/avatar/__workshop__/index.ts +0 -31
- package/src/core/primitives/avatar/__workshop__/stack.tsx +0 -25
- package/src/core/primitives/avatar/__workshop__/withinButton.tsx +0 -55
- package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -72
- package/src/core/primitives/avatar/avatar.tsx +0 -147
- package/src/core/primitives/avatar/avatarCounter.tsx +0 -69
- package/src/core/primitives/avatar/avatarStack.tsx +0 -79
- package/src/core/primitives/avatar/types.ts +0 -2
- package/src/core/primitives/badge/__workshop__/index.ts +0 -21
- package/src/core/primitives/badge/__workshop__/props.tsx +0 -19
- package/src/core/primitives/badge/__workshop__/tones.tsx +0 -16
- package/src/core/primitives/badge/badge.test.tsx +0 -16
- package/src/core/primitives/badge/badge.tsx +0 -61
- package/src/core/primitives/box/__workshop__/index.ts +0 -21
- package/src/core/primitives/box/__workshop__/props.tsx +0 -20
- package/src/core/primitives/box/__workshop__/responsive.tsx +0 -20
- package/src/core/primitives/box/box.tsx +0 -222
- package/src/core/primitives/button/__workshop__/custom.tsx +0 -27
- package/src/core/primitives/button/__workshop__/customIcons.tsx +0 -30
- package/src/core/primitives/button/__workshop__/disabled.tsx +0 -54
- package/src/core/primitives/button/__workshop__/index.ts +0 -66
- package/src/core/primitives/button/__workshop__/mixedChildren.tsx +0 -12
- package/src/core/primitives/button/__workshop__/props.tsx +0 -55
- package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +0 -36
- package/src/core/primitives/button/__workshop__/stacked.tsx +0 -58
- package/src/core/primitives/button/__workshop__/styled1.tsx +0 -17
- package/src/core/primitives/button/__workshop__/styled2.tsx +0 -19
- package/src/core/primitives/button/__workshop__/textOverflow.tsx +0 -13
- package/src/core/primitives/button/__workshop__/uploadButton.tsx +0 -29
- package/src/core/primitives/button/button.test.tsx +0 -30
- package/src/core/primitives/button/button.tsx +0 -193
- package/src/core/primitives/button/types.ts +0 -2
- package/src/core/primitives/card/__workshop__/asButton.tsx +0 -107
- package/src/core/primitives/card/__workshop__/asComponent.tsx +0 -27
- package/src/core/primitives/card/__workshop__/checkered.tsx +0 -26
- package/src/core/primitives/card/__workshop__/index.ts +0 -20
- package/src/core/primitives/card/__workshop__/interactive.tsx +0 -29
- package/src/core/primitives/card/__workshop__/listNavigation.tsx +0 -78
- package/src/core/primitives/card/__workshop__/props.tsx +0 -52
- package/src/core/primitives/card/__workshop__/selected.tsx +0 -62
- package/src/core/primitives/card/__workshop__/styled.tsx +0 -14
- package/src/core/primitives/card/__workshop__/tones.tsx +0 -27
- package/src/core/primitives/card/card.tsx +0 -109
- package/src/core/primitives/card/cardContext.ts +0 -10
- package/src/core/primitives/card/cardProvider.tsx +0 -27
- package/src/core/primitives/card/types.ts +0 -17
- package/src/core/primitives/card/useCard.ts +0 -15
- package/src/core/primitives/checkbox/__workshop__/example.tsx +0 -25
- package/src/core/primitives/checkbox/__workshop__/index.ts +0 -15
- package/src/core/primitives/checkbox/__workshop__/props.tsx +0 -35
- package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +0 -16
- package/src/core/primitives/checkbox/__workshop__/tones.tsx +0 -27
- package/src/core/primitives/checkbox/checkbox.tsx +0 -80
- package/src/core/primitives/code/__workshop__/index.ts +0 -21
- package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +0 -23
- package/src/core/primitives/code/__workshop__/props.tsx +0 -18
- package/src/core/primitives/code/code.tsx +0 -48
- package/src/core/primitives/code/refractor.tsx +0 -18
- package/src/core/primitives/container/__workshop__/example.tsx +0 -20
- package/src/core/primitives/container/__workshop__/index.ts +0 -10
- package/src/core/primitives/container/container.tsx +0 -37
- package/src/core/primitives/container/types.ts +0 -6
- package/src/core/primitives/flex/__workshop__/example.tsx +0 -34
- package/src/core/primitives/flex/__workshop__/gap.tsx +0 -25
- package/src/core/primitives/flex/__workshop__/index.ts +0 -13
- package/src/core/primitives/flex/flex.tsx +0 -58
- package/src/core/primitives/grid/__workshop__/index.ts +0 -12
- package/src/core/primitives/grid/__workshop__/responsive.tsx +0 -54
- package/src/core/primitives/grid/grid.tsx +0 -35
- package/src/core/primitives/heading/__workshop__/index.ts +0 -21
- package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
- package/src/core/primitives/heading/__workshop__/plain.tsx +0 -29
- package/src/core/primitives/heading/heading.tsx +0 -78
- package/src/core/primitives/inline/__workshop__/index.ts +0 -10
- package/src/core/primitives/inline/__workshop__/plain.tsx +0 -24
- package/src/core/primitives/inline/inline.tsx +0 -62
- package/src/core/primitives/kbd/__workshop__/index.ts +0 -10
- package/src/core/primitives/kbd/__workshop__/plain.tsx +0 -9
- package/src/core/primitives/kbd/kbd.tsx +0 -57
- package/src/core/primitives/label/__workshop__/index.ts +0 -21
- package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +0 -54
- package/src/core/primitives/label/__workshop__/plain.tsx +0 -28
- package/src/core/primitives/label/label.tsx +0 -75
- package/src/core/primitives/layer/__workshop__/_debug.tsx +0 -17
- package/src/core/primitives/layer/__workshop__/index.ts +0 -26
- package/src/core/primitives/layer/__workshop__/multipleRoots.tsx +0 -49
- package/src/core/primitives/layer/__workshop__/nested.tsx +0 -98
- package/src/core/primitives/layer/__workshop__/responsiveZOffset.tsx +0 -17
- package/src/core/primitives/layer/getLayerContext.test.ts +0 -32
- package/src/core/primitives/layer/getLayerContext.ts +0 -21
- package/src/core/primitives/layer/layer.test.tsx +0 -110
- package/src/core/primitives/layer/layer.tsx +0 -42
- package/src/core/primitives/layer/layerCard.tsx +0 -90
- package/src/core/primitives/layer/layerContext.ts +0 -7
- package/src/core/primitives/layer/layerProvider.tsx +0 -106
- package/src/core/primitives/layer/types.ts +0 -9
- package/src/core/primitives/layer/useLayer.ts +0 -24
- package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
- package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
- package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
- package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
- package/src/core/primitives/popover/__workshop__/PlainStory.tsx +0 -71
- package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +0 -69
- package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +0 -96
- package/src/core/primitives/popover/__workshop__/TestStory.tsx +0 -100
- package/src/core/primitives/popover/__workshop__/index.ts +0 -51
- package/src/core/primitives/popover/constants.ts +0 -22
- package/src/core/primitives/popover/floating-ui/size.ts +0 -83
- package/src/core/primitives/popover/helpers.ts +0 -32
- package/src/core/primitives/popover/popover.tsx +0 -443
- package/src/core/primitives/popover/popoverLayer.tsx +0 -149
- package/src/core/primitives/popover/types.ts +0 -12
- package/src/core/primitives/radio/__workshop__/example.tsx +0 -63
- package/src/core/primitives/radio/__workshop__/index.ts +0 -13
- package/src/core/primitives/radio/__workshop__/plain.tsx +0 -28
- package/src/core/primitives/radio/radio.tsx +0 -64
- package/src/core/primitives/select/__workshop__/index.ts +0 -13
- package/src/core/primitives/select/__workshop__/plain.tsx +0 -39
- package/src/core/primitives/select/__workshop__/readOnly.tsx +0 -23
- package/src/core/primitives/select/select.tsx +0 -75
- package/src/core/primitives/selectable/selectable.tsx +0 -50
- package/src/core/primitives/skeleton/__workshop__/delay.tsx +0 -70
- package/src/core/primitives/skeleton/__workshop__/index.ts +0 -13
- package/src/core/primitives/skeleton/__workshop__/skeleton.tsx +0 -64
- package/src/core/primitives/skeleton/codeSkeleton.tsx +0 -49
- package/src/core/primitives/skeleton/headingSkeleton.tsx +0 -48
- package/src/core/primitives/skeleton/labelSkeleton.tsx +0 -47
- package/src/core/primitives/skeleton/skeleton.tsx +0 -70
- package/src/core/primitives/skeleton/textSkeleton.tsx +0 -49
- package/src/core/primitives/spinner/__workshop__/Props.tsx +0 -15
- package/src/core/primitives/spinner/__workshop__/index.ts +0 -16
- package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +0 -14
- package/src/core/primitives/spinner/spinner.tsx +0 -45
- package/src/core/primitives/srOnly/srOnly.tsx +0 -33
- package/src/core/primitives/stack/__workshop__/index.ts +0 -16
- package/src/core/primitives/stack/__workshop__/plain.tsx +0 -32
- package/src/core/primitives/stack/stack.tsx +0 -60
- package/src/core/primitives/switch/__workshop__/example.tsx +0 -23
- package/src/core/primitives/switch/__workshop__/index.ts +0 -13
- package/src/core/primitives/switch/__workshop__/props.tsx +0 -21
- package/src/core/primitives/switch/switch.tsx +0 -84
- package/src/core/primitives/text/__workshop__/colored.tsx +0 -23
- package/src/core/primitives/text/__workshop__/example.tsx +0 -28
- package/src/core/primitives/text/__workshop__/index.ts +0 -26
- package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +0 -23
- package/src/core/primitives/text/text.tsx +0 -76
- package/src/core/primitives/textArea/__workshop__/index.ts +0 -16
- package/src/core/primitives/textArea/__workshop__/plain.tsx +0 -61
- package/src/core/primitives/textArea/textArea.tsx +0 -84
- package/src/core/primitives/textInput/__workshop__/clearButton.tsx +0 -30
- package/src/core/primitives/textInput/__workshop__/customValidity.tsx +0 -17
- package/src/core/primitives/textInput/__workshop__/index.ts +0 -46
- package/src/core/primitives/textInput/__workshop__/plain.tsx +0 -110
- package/src/core/primitives/textInput/__workshop__/readOnly.tsx +0 -9
- package/src/core/primitives/textInput/__workshop__/states.tsx +0 -53
- package/src/core/primitives/textInput/__workshop__/tones.tsx +0 -277
- package/src/core/primitives/textInput/__workshop__/typed.tsx +0 -23
- package/src/core/primitives/textInput/textInput.tsx +0 -258
- package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
- package/src/core/primitives/tooltip/__workshop__/index.ts +0 -31
- package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
- package/src/core/primitives/tooltip/__workshop__/props.tsx +0 -112
- package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
- package/src/core/primitives/tooltip/constants.ts +0 -23
- package/src/core/primitives/tooltip/tooltip.test.tsx +0 -452
- package/src/core/primitives/tooltip/tooltip.tsx +0 -482
- package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -13
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -55
- package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -10
- package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
- package/src/core/primitives/tooltip/tooltipLayer.tsx +0 -106
- package/src/core/types.ts +0 -56
- package/src/core/utils/boundaryElement/__workshop__/index.ts +0 -16
- package/src/core/utils/boundaryElement/__workshop__/plain.tsx +0 -19
- package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -102
- package/src/core/utils/boundaryElement/boundaryElementContext.ts +0 -10
- package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -18
- package/src/core/utils/boundaryElement/types.ts +0 -5
- package/src/core/utils/boundaryElement/useBoundaryElement.ts +0 -24
- package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +0 -41
- package/src/core/utils/elementQuery/__workshop__/index.ts +0 -16
- package/src/core/utils/elementQuery/elementQuery.tsx +0 -75
- package/src/core/utils/elementQuery/helpers.ts +0 -27
- package/src/core/utils/errorBoundary.tsx +0 -50
- package/src/core/utils/getElementRef.ts +0 -29
- package/src/core/utils/portal/__workshop__/index.ts +0 -16
- package/src/core/utils/portal/__workshop__/named.tsx +0 -63
- package/src/core/utils/portal/portal.test.tsx +0 -105
- package/src/core/utils/portal/portal.tsx +0 -36
- package/src/core/utils/portal/portalContext.ts +0 -37
- package/src/core/utils/portal/portalProvider.tsx +0 -70
- package/src/core/utils/portal/types.ts +0 -7
- package/src/core/utils/portal/usePortal.ts +0 -23
- package/src/css/_assign.ts +0 -3
- package/src/css/_composeClassNames.ts +0 -12
- package/src/css/_fromEntries.ts +0 -3
- package/src/css/_getClassNames.ts +0 -9
- package/src/css/_responsiveClassName.ts +0 -45
- package/src/css/_responsiveStyle.css.ts +0 -34
- package/src/css/_style.css.ts +0 -9
- package/src/css/components/breadcrumbs/breadcrumbs.css.ts +0 -6
- package/src/css/components/breadcrumbs/breadcrumbs.ts +0 -7
- package/src/css/components/dialog/dialog.css.ts +0 -98
- package/src/css/components/dialog/dialog.ts +0 -58
- package/src/css/components/menu/menu.css.ts +0 -14
- package/src/css/components/menu/menu.ts +0 -12
- package/src/css/components/skeleton/skeleton.css.ts +0 -128
- package/src/css/components/skeleton/skeleton.ts +0 -38
- package/src/css/components/skeleton/types.ts +0 -36
- package/src/css/components/toast/toast.css.ts +0 -17
- package/src/css/components/toast/toast.ts +0 -11
- package/src/css/components/tree/tree.css.ts +0 -65
- package/src/css/components/tree/tree.ts +0 -7
- package/src/css/constants.ts +0 -10
- package/src/css/getVarName.ts +0 -27
- package/src/css/index.ts +0 -146
- package/src/css/layers.css.ts +0 -12
- package/src/css/primitives/_arrow/_arrow.css.ts +0 -68
- package/src/css/primitives/_arrow/_arrow.ts +0 -26
- package/src/css/primitives/_input/_input.css.ts +0 -261
- package/src/css/primitives/_input/input.ts +0 -29
- package/src/css/primitives/_input/types.ts +0 -13
- package/src/css/primitives/avatar/avatar.css.ts +0 -201
- package/src/css/primitives/avatar/avatar.ts +0 -68
- package/src/css/primitives/avatar/types.ts +0 -10
- package/src/css/primitives/badge/badge.css.ts +0 -27
- package/src/css/primitives/badge/badge.ts +0 -8
- package/src/css/primitives/badge/types.ts +0 -13
- package/src/css/primitives/box/box.css.ts +0 -19
- package/src/css/primitives/box/box.ts +0 -82
- package/src/css/primitives/box/types.ts +0 -75
- package/src/css/primitives/button/button.css.ts +0 -287
- package/src/css/primitives/button/button.ts +0 -26
- package/src/css/primitives/button/types.ts +0 -12
- package/src/css/primitives/card/__workshop__/color.tsx +0 -75
- package/src/css/primitives/card/__workshop__/index.ts +0 -16
- package/src/css/primitives/card/card.css.ts +0 -387
- package/src/css/primitives/card/card.ts +0 -13
- package/src/css/primitives/card/types.ts +0 -9
- package/src/css/primitives/checkbox/checkbox.css.ts +0 -193
- package/src/css/primitives/checkbox/checkbox.ts +0 -17
- package/src/css/primitives/code/code.css.ts +0 -272
- package/src/css/primitives/code/code.ts +0 -19
- package/src/css/primitives/code/types.ts +0 -11
- package/src/css/primitives/container/container.css.ts +0 -4
- package/src/css/primitives/container/container.ts +0 -17
- package/src/css/primitives/container/types.ts +0 -9
- package/src/css/primitives/heading/heading.css.ts +0 -86
- package/src/css/primitives/heading/heading.ts +0 -22
- package/src/css/primitives/heading/types.ts +0 -14
- package/src/css/primitives/kbd/kbd.css.ts +0 -16
- package/src/css/primitives/kbd/kbd.ts +0 -9
- package/src/css/primitives/kbd/types.ts +0 -6
- package/src/css/primitives/label/label.css.ts +0 -87
- package/src/css/primitives/label/label.ts +0 -22
- package/src/css/primitives/label/types.ts +0 -14
- package/src/css/primitives/popover/popover.css.ts +0 -6
- package/src/css/primitives/popover/popover.ts +0 -12
- package/src/css/primitives/radio/radio.css.ts +0 -78
- package/src/css/primitives/radio/radio.ts +0 -17
- package/src/css/primitives/root/root.css.ts +0 -19
- package/src/css/primitives/root/root.ts +0 -17
- package/src/css/primitives/root/types.ts +0 -10
- package/src/css/primitives/select/select.css.ts +0 -24
- package/src/css/primitives/select/select.ts +0 -14
- package/src/css/primitives/select/types.ts +0 -5
- package/src/css/primitives/selectable/selectable.css.ts +0 -131
- package/src/css/primitives/selectable/selectable.ts +0 -9
- package/src/css/primitives/selectable/types.ts +0 -9
- package/src/css/primitives/spinner/spinner.css.ts +0 -19
- package/src/css/primitives/spinner/spinner.ts +0 -13
- package/src/css/primitives/spinner/types.ts +0 -4
- package/src/css/primitives/srOnly/srOnly.css.ts +0 -10
- package/src/css/primitives/srOnly/srOnly.ts +0 -7
- package/src/css/primitives/stack/stack.css.ts +0 -6
- package/src/css/primitives/stack/stack.ts +0 -7
- package/src/css/primitives/switch/switch.css.ts +0 -98
- package/src/css/primitives/switch/switch.ts +0 -27
- package/src/css/primitives/text/text.css.ts +0 -86
- package/src/css/primitives/text/text.ts +0 -24
- package/src/css/primitives/text/types.ts +0 -18
- package/src/css/primitives/textArea/textArea.css.ts +0 -4
- package/src/css/primitives/textArea/textArea.ts +0 -9
- package/src/css/primitives/textArea/types.ts +0 -7
- package/src/css/primitives/textInput/textInput.css.ts +0 -43
- package/src/css/primitives/textInput/textInput.ts +0 -24
- package/src/css/primitives/textInput/types.ts +0 -7
- package/src/css/primitives/tooltip/tooltip.css.ts +0 -4
- package/src/css/primitives/tooltip/tooltip.ts +0 -8
- package/src/css/primitives/tooltip/types.ts +0 -4
- package/src/css/props/alignItems/alignItems.css.ts +0 -22
- package/src/css/props/alignItems/alignItems.ts +0 -8
- package/src/css/props/alignItems/types.ts +0 -9
- package/src/css/props/border/border.css.ts +0 -65
- package/src/css/props/border/border.ts +0 -21
- package/src/css/props/border/types.ts +0 -13
- package/src/css/props/boxSizing/boxSizing.css.ts +0 -12
- package/src/css/props/boxSizing/boxSizing.ts +0 -7
- package/src/css/props/boxSizing/types.ts +0 -7
- package/src/css/props/display/display.css.ts +0 -56
- package/src/css/props/display/display.ts +0 -8
- package/src/css/props/display/types.ts +0 -16
- package/src/css/props/flex/flex.css.ts +0 -52
- package/src/css/props/flex/flex.ts +0 -8
- package/src/css/props/flex/types.ts +0 -9
- package/src/css/props/flexDirection/flexDirection.css.ts +0 -19
- package/src/css/props/flexDirection/flexDirection.ts +0 -8
- package/src/css/props/flexDirection/types.ts +0 -9
- package/src/css/props/flexWrap/flexWrap.css.ts +0 -16
- package/src/css/props/flexWrap/flexWrap.ts +0 -8
- package/src/css/props/flexWrap/types.ts +0 -9
- package/src/css/props/font/font.css.ts +0 -94
- package/src/css/props/font/font.ts +0 -8
- package/src/css/props/font/types.ts +0 -6
- package/src/css/props/gap/gap.css.ts +0 -40
- package/src/css/props/gap/gap.ts +0 -13
- package/src/css/props/gap/types.ts +0 -10
- package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +0 -19
- package/src/css/props/gridAutoColumns/gridAutoColumns.ts +0 -8
- package/src/css/props/gridAutoColumns/types.ts +0 -9
- package/src/css/props/gridAutoFlow/gridAutoFlow.css.ts +0 -19
- package/src/css/props/gridAutoFlow/gridAutoFlow.ts +0 -8
- package/src/css/props/gridAutoFlow/types.ts +0 -9
- package/src/css/props/gridAutoRows/gridAutoRows.css.ts +0 -19
- package/src/css/props/gridAutoRows/gridAutoRows.ts +0 -8
- package/src/css/props/gridAutoRows/types.ts +0 -9
- package/src/css/props/gridColumn/gridColumn.css.ts +0 -49
- package/src/css/props/gridColumn/gridColumn.ts +0 -8
- package/src/css/props/gridColumn/types.ts +0 -9
- package/src/css/props/gridColumnEnd/gridColumnEnd.css.ts +0 -46
- package/src/css/props/gridColumnEnd/gridColumnEnd.ts +0 -8
- package/src/css/props/gridColumnEnd/types.ts +0 -9
- package/src/css/props/gridColumnStart/gridColumnStart.css.ts +0 -46
- package/src/css/props/gridColumnStart/gridColumnStart.ts +0 -8
- package/src/css/props/gridColumnStart/types.ts +0 -9
- package/src/css/props/gridRow/gridRow.css.ts +0 -49
- package/src/css/props/gridRow/gridRow.ts +0 -8
- package/src/css/props/gridRow/types.ts +0 -9
- package/src/css/props/gridRowEnd/gridRowEnd.css.ts +0 -46
- package/src/css/props/gridRowEnd/gridRowEnd.ts +0 -8
- package/src/css/props/gridRowEnd/types.ts +0 -9
- package/src/css/props/gridRowStart/gridRowStart.css.ts +0 -46
- package/src/css/props/gridRowStart/gridRowStart.ts +0 -8
- package/src/css/props/gridRowStart/types.ts +0 -9
- package/src/css/props/gridTemplateColumns/gridTemplateColumns.css.ts +0 -43
- package/src/css/props/gridTemplateColumns/gridTemplateColumns.ts +0 -8
- package/src/css/props/gridTemplateColumns/types.ts +0 -9
- package/src/css/props/gridTemplateRows/gridTemplateRows.css.ts +0 -43
- package/src/css/props/gridTemplateRows/gridTemplateRows.ts +0 -8
- package/src/css/props/gridTemplateRows/types.ts +0 -9
- package/src/css/props/height/height.css.ts +0 -25
- package/src/css/props/height/height.ts +0 -8
- package/src/css/props/height/types.ts +0 -9
- package/src/css/props/inset/inset.css.ts +0 -37
- package/src/css/props/inset/inset.ts +0 -21
- package/src/css/props/inset/types.ts +0 -13
- package/src/css/props/justifyContent/justifyContent.css.ts +0 -25
- package/src/css/props/justifyContent/justifyContent.ts +0 -8
- package/src/css/props/justifyContent/types.ts +0 -15
- package/src/css/props/margin/margin.css.ts +0 -117
- package/src/css/props/margin/margin.ts +0 -25
- package/src/css/props/margin/types.ts +0 -17
- package/src/css/props/maxWidth/maxWidth.css.ts +0 -32
- package/src/css/props/maxWidth/maxWidth.ts +0 -8
- package/src/css/props/maxWidth/types.ts +0 -11
- package/src/css/props/minHeight/minHeight.css.ts +0 -13
- package/src/css/props/minHeight/minHeight.ts +0 -8
- package/src/css/props/minHeight/types.ts +0 -9
- package/src/css/props/minWidth/minWidth.css.ts +0 -25
- package/src/css/props/minWidth/minWidth.ts +0 -8
- package/src/css/props/minWidth/types.ts +0 -9
- package/src/css/props/outline/outline.css.ts +0 -10
- package/src/css/props/outline/outline.ts +0 -8
- package/src/css/props/outline/types.ts +0 -7
- package/src/css/props/overflow/overflow.css.ts +0 -16
- package/src/css/props/overflow/overflow.ts +0 -8
- package/src/css/props/overflow/types.ts +0 -11
- package/src/css/props/padding/padding.css.ts +0 -87
- package/src/css/props/padding/padding.ts +0 -25
- package/src/css/props/padding/types.ts +0 -17
- package/src/css/props/pointerEvents/pointerEvents.css.ts +0 -13
- package/src/css/props/pointerEvents/pointerEvents.ts +0 -8
- package/src/css/props/pointerEvents/types.ts +0 -7
- package/src/css/props/position/position.css.ts +0 -22
- package/src/css/props/position/position.ts +0 -8
- package/src/css/props/position/types.ts +0 -9
- package/src/css/props/radius/radius.css.ts +0 -21
- package/src/css/props/radius/radius.ts +0 -8
- package/src/css/props/radius/types.ts +0 -8
- package/src/css/props/shadow/shadow.css.ts +0 -23
- package/src/css/props/shadow/shadow.ts +0 -8
- package/src/css/props/shadow/types.ts +0 -8
- package/src/css/props/textAlign/textAlign.css.ts +0 -22
- package/src/css/props/textAlign/textAlign.ts +0 -8
- package/src/css/props/textAlign/types.ts +0 -7
- package/src/css/props/textOverflow/textOverflow.css.ts +0 -19
- package/src/css/props/textOverflow/textOverflow.ts +0 -8
- package/src/css/props/textOverflow/types.ts +0 -12
- package/src/css/props/width/types.ts +0 -11
- package/src/css/props/width/width.css.ts +0 -31
- package/src/css/props/width/width.ts +0 -8
- package/src/css/theme/buildCSSTheme.ts +0 -488
- package/src/css/theme/defaultTheme.css.ts +0 -64
- package/src/css/types.ts +0 -427
- package/src/css/vars.css.ts +0 -676
- package/src/theme/_parseColorToken.ts +0 -180
- package/src/theme/buildTheme.ts +0 -32
- package/src/theme/constants.ts +0 -90
- package/src/theme/defaults/color.ts +0 -197
- package/src/theme/defaults/common.ts +0 -71
- package/src/theme/defaults/fonts.ts +0 -250
- package/src/theme/index.ts +0 -5
- package/src/theme/merge.ts +0 -24
- package/src/theme/resolveTokens.ts +0 -204
- package/src/theme/types.ts +0 -366
package/dist/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.js","sources":["../src/theme/constants.ts","../src/theme/_parseColorToken.ts","../src/theme/defaults/color.ts","../src/theme/defaults/common.ts","../src/theme/defaults/fonts.ts","../src/theme/merge.ts","../src/theme/resolveTokens.ts","../src/theme/buildTheme.ts"],"sourcesContent":["/** @public */\nexport const HUES = [\n 'gray',\n 'blue',\n 'purple',\n 'magenta',\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'cyan',\n] as const\n\n/** @public */\nexport const TINTS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950] as const\n\n/** @public */\nexport const AVATAR_SIZE = [0, 1, 2, 3] as const\n\n/** @public */\nexport const CONTAINER_SCALE = [0, 1, 2, 3, 4, 5] as const\n\n/** @public */\nexport const CONTAINER: [...typeof CONTAINER_SCALE, 'auto'] = [...CONTAINER_SCALE, 'auto']\n\n/** @public */\nexport const RADIUS = [0, 1, 2, 3, 4, 5, 6] as const\n\n/** @public */\nexport const SPACE = [0, 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\n/** @public */\nexport const COLOR_SCHEMES = ['light', 'dark'] as const\n\n/** @public */\nexport const COLOR_VARIANTS = ['tinted', 'solid'] as const\n\n/** @public */\nexport const AVATAR_COLORS = [\n 'gray',\n 'blue',\n 'purple',\n 'magenta',\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'cyan',\n] as const\n\n/** @public */\nexport const CARD_TONES = [\n 'transparent',\n 'default',\n 'neutral',\n 'primary', // selections\n 'suggest',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const ELEMENT_TONES = [\n 'default',\n 'neutral',\n 'primary', // selections\n 'suggest',\n 'positive',\n 'caution',\n 'critical',\n] as const\n\n/** @public */\nexport const BUTTON_MODES = ['default', 'ghost', 'bleed'] as const\n","import {HUES, TINTS} from './constants'\nimport type {ColorToken, Hue, Tint} from './types'\n\nconst RE_PERCENTAGE = /^([0-9]+)%/\nconst RE_OPACITY = /^(1|0\\.[0-9]+)?/\n\n/** @internal */\nexport interface ColorNode {\n type: 'color'\n name: 'black' | 'white'\n /** Between 0 and 1 */\n opacity: number\n /** Between 0 and 1 */\n mix: number\n}\n\n/** @internal */\nexport interface ColorTintNode {\n type: 'tint'\n hue: Hue\n tint: Tint\n /** Between 0 and 1 */\n opacity: number\n /** Between 0 and 1 */\n mix: number\n}\n\n/** @internal */\nexport interface ColorInheritNode {\n type: 'inherit'\n}\n\n/** @internal */\nexport type TokenizeColorResult = ColorNode | ColorTintNode | ColorInheritNode\n\n/** @internal */\nexport function _parseColorToken(str: ColorToken, options: {defaultHue: Hue}): TokenizeColorResult {\n const {defaultHue} = options\n\n let cursor = 0\n\n return parseColorNode()\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 parseColorNode(): ColorNode | ColorTintNode | ColorInheritNode {\n ignoreWhitespace()\n\n let v = _consume('black') || _consume('white')\n\n if (v) {\n return {\n type: 'color',\n name: v as 'black' | 'white',\n opacity: parseOpacity() ?? 1,\n mix: parseMix() ?? 1,\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 \"-\" after hue key`)\n }\n\n cursor += 1\n\n const tint = parseTint()\n\n if (!tint) {\n throw new Error(`Expected tint after hue`)\n }\n\n return {\n type: 'tint',\n hue,\n tint,\n opacity: parseOpacity() ?? 1,\n mix: parseMix() ?? 1,\n }\n }\n }\n\n const tint = parseTint()\n\n if (tint) {\n return {\n type: 'tint',\n hue: defaultHue,\n tint,\n opacity: parseOpacity() ?? 1,\n mix: parseMix() ?? 1,\n }\n }\n\n if (str === 'inherit') {\n return {\n type: 'inherit',\n }\n }\n\n throw new Error(`Invalid color: ${str}`)\n }\n\n function parseTint() {\n ignoreWhitespace()\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 return undefined\n }\n\n function parseMix() {\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]) / 100\n }\n\n return undefined\n }\n\n function parseOpacity() {\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 type {ColorTokens, PartialTokens} from '../types'\n\n/** @internal */\nexport const defaultColor: PartialTokens<ColorTokens> = {\n '*': {\n backdrop: ['gray-100/0.5', 'black/0.5'],\n code: {\n bg: ['50', '950'],\n fg: ['700', '300'],\n token: {\n atrule: ['purple-600', 'purple-400'],\n attrName: ['green-600', 'green-400'],\n attrValue: ['yellow-600', 'yellow-400'],\n attribute: ['yellow-600', 'yellow-400'],\n boolean: ['purple-600', 'purple-400'],\n builtin: ['purple-600', 'purple-400'],\n cdata: ['yellow-600', 'yellow-400'],\n char: ['yellow-600', 'yellow-400'],\n class: ['orange-600', 'orange-400'],\n className: ['cyan-600', 'cyan-400'],\n comment: ['gray-400', 'gray-600'],\n constant: ['purple-600', 'purple-400'],\n deleted: ['red-600', 'red-400'],\n entity: ['red-600', 'red-400'],\n function: ['green-600', 'green-400'],\n hexcode: ['blue-600', 'blue-400'],\n id: ['purple-600', 'purple-400'],\n important: ['purple-600', 'purple-400'],\n inserted: ['green-600', 'green-400'],\n keyword: ['magenta-600', 'magenta-400'],\n number: ['purple-600', 'purple-400'],\n operator: ['magenta-600', 'magenta-400'],\n prolog: ['gray-600', 'gray-400'],\n property: ['blue-600', 'blue-400'],\n pseudoClass: ['yellow-600', 'yellow-400'],\n pseudoElement: ['yellow-600', 'yellow-400'],\n punctuation: ['gray-600', 'gray-400'],\n regex: ['blue-600', 'blue-400'],\n selector: ['red-600', 'red-400'],\n string: ['yellow-600', 'yellow-400'],\n symbol: ['purple-600', 'purple-400'],\n tag: ['red-600', 'red-400'],\n unit: ['orange-600', 'orange-400'],\n url: ['red-600', 'red-400'],\n variable: ['red-600', 'red-400'],\n },\n },\n focusRing: ['blue-500', 'blue-500'],\n link: {\n fg: ['blue-600', 'blue-400'],\n },\n shadow: {\n outline: ['600/0.3', '500/0.4'],\n umbra: ['600/0.1', 'black/0.2'],\n penumbra: ['600/0.07', 'black/0.14'],\n ambient: ['600/0.06', 'black/0.12'],\n },\n skeleton: {\n from: ['200 70%', '800 35%'],\n to: ['200 40%', '800 50%'],\n },\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['100 75%', '900 75%'],\n 4: ['300', '700'],\n },\n border: {\n 0: ['200', '700 50%'],\n 4: ['300 75%', '500'],\n },\n fg: {\n 0: ['900', '100'],\n 4: ['700', '300'],\n },\n },\n 'primary': {\n _hue: 'blue',\n bg: {0: ['inherit', 'inherit']},\n },\n 'suggest': {\n _hue: 'purple',\n bg: {0: ['inherit', 'inherit']},\n },\n 'positive': {\n _hue: 'green',\n bg: {0: ['inherit', 'inherit']},\n },\n 'caution': {\n _hue: 'yellow',\n bg: {0: ['inherit', 'inherit']},\n },\n 'critical': {\n _hue: 'red',\n bg: {0: ['inherit', 'inherit']},\n },\n },\n solid: {\n '*': {\n bg: {\n 0: ['500', '400'],\n 4: ['600', '300'],\n },\n border: {\n 0: ['400', '200'],\n 4: ['500', '100'],\n },\n fg: {\n 0: ['white', 'black'],\n 4: ['200', '700'],\n },\n },\n 'default': {\n bg: {\n 0: ['800', '200'],\n 4: ['black', 'white'],\n },\n border: {\n 0: ['700', '300'],\n 4: ['800', '200'],\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: ['gray-50', 'black'],\n 4: ['300 75%', '700 75%'],\n },\n border: {\n 0: ['200', '800 75%'],\n 4: ['400', '700'],\n },\n fg: {\n 0: ['black', '100'],\n 4: ['700', '400'],\n },\n },\n },\n },\n },\n 'default': {\n variant: {\n tinted: {\n '*': {\n bg: {\n 0: ['white', '950'],\n 4: ['300 75%', '700'],\n },\n border: {\n 0: ['100', '800 75%'],\n 4: ['300', '700'],\n },\n fg: {\n 0: ['black', 'white'],\n 4: ['600', '400'],\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","import type {Theme} from '../types'\n\nconst BORDER_WIDTH = 1\nconst OUTLINE_WIDTH = 0.5\n\nexport const defaultTheme: Omit<Theme, '_version' | '_tokens' | 'color' | 'font' | 'palette'> = {\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, 3, 7, 11, 15, 23, 43, 75, 127],\n shadow: [\n undefined,\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}\n","import type {Fonts} from '../types'\n\nexport const defaultFonts: Fonts = {\n code: {\n family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',\n weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n scale: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 10,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n customIconSize: 12,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n customIconSize: 16,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n customIconSize: 20,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18.75,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n customIconSize: 24,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 21.5,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n customIconSize: 28,\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 weight: {\n regular: 600,\n medium: 700,\n semibold: 800,\n bold: 900,\n },\n scale: [\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 13,\n iconSize: 17,\n lineHeight: 19,\n letterSpacing: 0,\n customIconSize: 12,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 16,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n customIconSize: 20,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 21,\n iconSize: 33,\n lineHeight: 29,\n letterSpacing: -0.25,\n customIconSize: 28,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 27,\n iconSize: 41,\n lineHeight: 35,\n letterSpacing: -0.5,\n customIconSize: 36,\n },\n {\n ascenderHeight: 9.5,\n descenderHeight: 8.5,\n fontSize: 33,\n iconSize: 49,\n lineHeight: 41,\n letterSpacing: -1,\n customIconSize: 44,\n },\n {\n ascenderHeight: 10.5,\n descenderHeight: 9.5,\n fontSize: 38,\n iconSize: 53,\n lineHeight: 47,\n letterSpacing: -1,\n customIconSize: 48,\n },\n ],\n },\n label: {\n family:\n 'Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Liberation Sans\", system-ui, sans-serif',\n weight: {\n regular: 500,\n medium: 600,\n semibold: 700,\n bold: 800,\n },\n scale: [\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 8.1,\n iconSize: 13,\n lineHeight: 10,\n letterSpacing: 0.5,\n customIconSize: 8,\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 customIconSize: 10,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 10.8,\n iconSize: 17,\n lineHeight: 12,\n letterSpacing: 0.5,\n customIconSize: 12,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 12.25,\n iconSize: 19,\n lineHeight: 13,\n letterSpacing: 0.5,\n customIconSize: 14,\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 customIconSize: 16,\n },\n {\n ascenderHeight: 2,\n descenderHeight: 2,\n fontSize: 15,\n iconSize: 23,\n lineHeight: 15,\n letterSpacing: 0.5,\n customIconSize: 18,\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 weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n scale: [\n {\n ascenderHeight: 4,\n descenderHeight: 4,\n fontSize: 9.75,\n iconSize: 17,\n lineHeight: 15,\n letterSpacing: 0,\n customIconSize: 12,\n },\n {\n ascenderHeight: 5,\n descenderHeight: 5,\n fontSize: 12.5,\n iconSize: 21,\n lineHeight: 19,\n letterSpacing: 0,\n customIconSize: 16,\n },\n {\n ascenderHeight: 6,\n descenderHeight: 6,\n fontSize: 15.25,\n iconSize: 25,\n lineHeight: 23,\n letterSpacing: 0,\n customIconSize: 20,\n },\n {\n ascenderHeight: 7,\n descenderHeight: 7,\n fontSize: 18,\n iconSize: 29,\n lineHeight: 27,\n letterSpacing: 0,\n customIconSize: 24,\n },\n {\n ascenderHeight: 8,\n descenderHeight: 8,\n fontSize: 20.75,\n iconSize: 33,\n lineHeight: 31,\n letterSpacing: 0,\n customIconSize: 28,\n },\n ],\n },\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nexport 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 {CARD_TONES, ELEMENT_TONES} from './constants'\nimport {merge} from './merge'\nimport type {\n CardColorTokens,\n CardTone,\n ElementColorTokens,\n ElementTone,\n PartialTokens,\n Tokens,\n} from './types'\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 ...CARD_TONES.reduce(\n (acc, tone) => {\n return {\n ...acc,\n [tone]: resolveCardColorTokens(merge(tokens.color?.['*'], tokens.color?.[tone])),\n }\n },\n {} as Record<CardTone, 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 ?? ['500', '400'],\n fg: tokens?.avatar?.gray?.fg ?? ['white', '900'],\n },\n blue: {\n _hue: tokens?.avatar?.blue?._hue ?? 'blue',\n bg: tokens?.avatar?.blue?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.blue?.fg ?? ['white', '900'],\n },\n purple: {\n _hue: tokens?.avatar?.purple?._hue ?? 'purple',\n bg: tokens?.avatar?.purple?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.purple?.fg ?? ['white', '900'],\n },\n magenta: {\n _hue: tokens?.avatar?.magenta?._hue ?? 'magenta',\n bg: tokens?.avatar?.magenta?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.magenta?.fg ?? ['white', '900'],\n },\n red: {\n _hue: tokens?.avatar?.red?._hue ?? 'red',\n bg: tokens?.avatar?.red?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.red?.fg ?? ['white', '900'],\n },\n orange: {\n _hue: tokens?.avatar?.orange?._hue ?? 'orange',\n bg: tokens?.avatar?.orange?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.orange?.fg ?? ['white', '900'],\n },\n yellow: {\n _hue: tokens?.avatar?.yellow?._hue ?? 'yellow',\n bg: tokens?.avatar?.yellow?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.yellow?.fg ?? ['white', '900'],\n },\n green: {\n _hue: tokens?.avatar?.green?._hue ?? 'green',\n bg: tokens?.avatar?.green?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.green?.fg ?? ['white', '900'],\n },\n cyan: {\n _hue: tokens?.avatar?.cyan?._hue ?? 'cyan',\n bg: tokens?.avatar?.cyan?.bg ?? ['500', '400'],\n fg: tokens?.avatar?.cyan?.fg ?? ['white', '900'],\n },\n },\n backdrop: tokens?.backdrop ?? ['100', '900'],\n code: {\n bg: tokens?.code?.bg ?? ['50', '950'],\n fg: tokens?.code?.fg ?? ['600', '400'],\n token: {\n atrule: tokens?.code?.token?.atrule ?? ['600', '400'],\n attribute: tokens?.code?.token?.attribute ?? ['600', '400'],\n attrName: tokens?.code?.token?.attrName ?? ['600', '400'],\n attrValue: tokens?.code?.token?.attrValue ?? ['600', '400'],\n boolean: tokens?.code?.token?.boolean ?? ['600', '400'],\n builtin: tokens?.code?.token?.builtin ?? ['600', '400'],\n cdata: tokens?.code?.token?.cdata ?? ['600', '400'],\n char: tokens?.code?.token?.char ?? ['600', '400'],\n class: tokens?.code?.token?.class ?? ['600', '400'],\n className: tokens?.code?.token?.className ?? ['600', '400'],\n comment: tokens?.code?.token?.comment ?? ['400', '600'],\n constant: tokens?.code?.token?.constant ?? ['600', '400'],\n deleted: tokens?.code?.token?.deleted ?? ['600', '400'],\n doctype: tokens?.code?.token?.doctype ?? ['600', '400'],\n entity: tokens?.code?.token?.entity ?? ['600', '400'],\n function: tokens?.code?.token?.function ?? ['600', '400'],\n hexcode: tokens?.code?.token?.hexcode ?? ['600', '400'],\n id: tokens?.code?.token?.id ?? ['600', '400'],\n important: tokens?.code?.token?.important ?? ['600', '400'],\n inserted: tokens?.code?.token?.inserted ?? ['600', '400'],\n keyword: tokens?.code?.token?.keyword ?? ['600', '400'],\n number: tokens?.code?.token?.number ?? ['600', '400'],\n operator: tokens?.code?.token?.operator ?? ['600', '400'],\n prolog: tokens?.code?.token?.prolog ?? ['600', '400'],\n property: tokens?.code?.token?.property ?? ['600', '400'],\n pseudoClass: tokens?.code?.token?.pseudoClass ?? ['600', '400'],\n pseudoElement: tokens?.code?.token?.pseudoElement ?? ['600', '400'],\n punctuation: tokens?.code?.token?.punctuation ?? ['600', '400'],\n regex: tokens?.code?.token?.regex ?? ['600', '400'],\n selector: tokens?.code?.token?.selector ?? ['600', '400'],\n string: tokens?.code?.token?.string ?? ['600', '400'],\n symbol: tokens?.code?.token?.symbol ?? ['600', '400'],\n tag: tokens?.code?.token?.tag ?? ['600', '400'],\n unit: tokens?.code?.token?.unit ?? ['600', '400'],\n url: tokens?.code?.token?.url ?? ['600', '400'],\n variable: tokens?.code?.token?.variable ?? ['600', '400'],\n },\n },\n focusRing: tokens?.focusRing ?? ['500', '500'],\n link: {\n fg: tokens?.link?.fg ?? ['600', '400'],\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 ?? ['100', '900'],\n to: tokens?.skeleton?.to ?? ['50', '950'],\n },\n\n variant: {\n solid: {\n '*': resolveElementTokens(tokens?.variant?.solid?.['*']),\n ...ELEMENT_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<ElementTone, ElementColorTokens>,\n ),\n },\n tinted: {\n '*': resolveElementTokens(tokens?.variant?.tinted?.['*']),\n ...ELEMENT_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<ElementTone, 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 {black, hues, white} from '@sanity/color'\n\nimport {defaultColor} from './defaults/color'\nimport {defaultTheme} from './defaults/common'\nimport {defaultFonts} from './defaults/fonts'\nimport {resolveTokens} from './resolveTokens'\nimport type {Theme, ThemeOptions} from './types'\n\n/** @public */\nexport function buildTheme(options?: ThemeOptions): Theme {\n const tokens = resolveTokens({\n color: options?.color ?? defaultColor,\n })\n\n return {\n _version: 3,\n _tokens: tokens,\n avatar: defaultTheme.avatar,\n button: defaultTheme.button,\n card: defaultTheme.card,\n color: tokens.color,\n container: defaultTheme.container,\n font: defaultFonts,\n input: defaultTheme.input,\n layer: defaultTheme.layer,\n media: defaultTheme.media,\n palette: {black, white, hues},\n radius: defaultTheme.radius,\n shadow: defaultTheme.shadow,\n space: defaultTheme.space,\n }\n}\n"],"names":["HUES","TINTS","AVATAR_SIZE","CONTAINER_SCALE","CONTAINER","RADIUS","SPACE","FONT_CODE_SIZE","FONT_HEADING_SIZE","FONT_LABEL_SIZE","FONT_TEXT_SIZE","SHADOW","COLOR_SCHEMES","COLOR_VARIANTS","AVATAR_COLORS","CARD_TONES","ELEMENT_TONES","BUTTON_MODES","RE_PERCENTAGE","RE_OPACITY","_parseColorToken","str","options","defaultHue","cursor","parseColorNode","_consume","s","startsWith","length","_peek","ignoreWhitespace","v","type","name","opacity","parseOpacity","mix","parseMix","hue","String","Error","tint","parseTint","Number","slice","includes","match","exec","parseFloat","defaultColor","backdrop","code","bg","fg","token","atrule","attrName","attrValue","attribute","boolean","builtin","cdata","char","class","className","comment","constant","deleted","entity","function","hexcode","id","important","inserted","keyword","number","operator","prolog","property","pseudoClass","pseudoElement","punctuation","regex","selector","string","symbol","tag","unit","url","variable","focusRing","link","shadow","outline","umbra","penumbra","ambient","skeleton","from","to","variant","tinted","border","_hue","solid","defaultTheme","avatar","sizes","distance","size","offset","width","button","textWeight","BORDER_WIDTH","card","OUTLINE_WIDTH","container","media","layer","dialog","zOffset","popover","tooltip","radius","undefined","space","input","checkbox","radio","markSize","switch","height","padding","transitionDurationMs","transitionTimingFunction","select","text","defaultFonts","family","weight","regular","medium","semibold","bold","scale","ascenderHeight","descenderHeight","fontSize","iconSize","lineHeight","letterSpacing","customIconSize","heading","featureSettings","label","merge","records","filter","Boolean","reduce","_merge","acc","source","key","Object","keys","prevValue","nextValue","isRecord","value","Array","isArray","defaultElementTokens","resolveTokens","tokens","color","resolveCardColorTokens","tone","gray","blue","purple","magenta","red","orange","yellow","green","cyan","doctype","resolveElementTokens","buildTheme","_version","_tokens","font","palette","black","white","hues"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theme.js","names":["parseColor","RGB","RGBA","getContrastRatio","bg","fg","rgb1","rgb2","c1","rgb_lrgb","c2","l1","lrgb_luminance","l2","Math","max","min","r","g","b","rgb_lrgb1","v","isColorButtonMode","isColorConfigBaseKey","isColorConfigBaseTone","isColorConfigBlendKey","isColorConfigStateKey","isColorConfigStateTone","TokenKeyNode","parseTokenKey","str","segments","split","segment0","shift","key","join","type","tone","segment1","segment2","mode","undefined","RootTheme","RootTheme_v2","is_v0","themeProp","_version"],"sources":["../src/theme/build/lib/color-fns/contrastRatio.ts","../src/theme/config/tokens/parseTokenKey.ts","../src/theme/versioning/is_v0.ts"],"sourcesContent":["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 {isColorButtonMode} from '../../system/color/_helpers'\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 {RootTheme, RootTheme_v2} from '../system/theme'\n\n/** @internal */\nexport function is_v0(themeProp: RootTheme | RootTheme_v2): themeProp is RootTheme {\n return themeProp._version === 0\n}\n"],"mappings":";;;;AAIA,SAAgBG,iBAAiBC,IAAYC,IAAoB;CAC/D,IAAMC,OAAON,WAAWI,EAAE,GACpBG,OAAOP,WAAWK,EAAE,GAGpBG,KAAKC,SAASH,IAAI,GAClBI,KAAKD,SAASF,IAAI,GAGlBI,KAAKC,eAAeJ,EAAE,GACtBK,KAAKD,eAAeF,EAAE;CAG5B,QAAQI,KAAKC,IAAIJ,IAAIE,EAAE,IAAI,QAASC,KAAKE,IAAIL,IAAIE,EAAE,IAAI;AACzD;AAEA,SAASJ,SAAS,EAACQ,GAAGC,GAAGC,KAA0C;CACjE,OAAO;EAACC,UAAUH,IAAI,GAAG;EAAGG,UAAUF,IAAI,GAAG;EAAGE,UAAUD,IAAI,GAAG;CAAC;AACpE;AAEA,SAASC,UAAUC,GAAW;CAC5B,OAAOA,KAAK,SAAUA,IAAI,UAAUA,IAAI,QAAS,UAAU;AAC7D;AAEA,SAAST,eAAe,CAACK,GAAGC,GAAGC,IAA8B;CAC3D,OAAO,QAASF,IAAI,QAASC,IAAI,QAASC;AAC5C;;ACnBA,SAAgBU,cAAcC,KAAuC;CACnE,IAAMC,WAAWD,IAAIE,MAAM,GAAG,GACxBC,WAAWF,SAASG,MAAM,KAAK;CAErC,IAAIV,sBAAsBS,QAAQ,GAAG;EACnC,IAAME,MAAMJ,SAASK,KAAK,GAAG;EAU7B,IARIb,qBAAqBY,GAAG,KAQxBV,sBAAsBU,GAAG,GAC3B,OAAO;GACLE,MAAM;GACNC,MAAML;GACNE;EACF;CAEJ;CAEA,IAAIF,aAAa,UAAU;EACzB,IAAMM,WAAWR,SAASG,MAAM,KAAK;EAErC,IAAIP,uBAAuBY,QAAQ,GAAG;GACpC,IAAMC,WAAWT,SAASG,MAAM,KAAK;GAErC,IAAIZ,kBAAkBkB,QAAQ,GAAG;IAC/B,IAAML,MAAMJ,SAASK,KAAK,GAAG;IAW7B,IATIV,sBAAsBS,GAAG,KASzBV,sBAAsBU,GAAG,GAC3B,OAAO;KACLE,MAAM;KACNC,MAAMC;KACNE,MAAMD;KACNL;IACF;GAEJ;EACF;CACF;AAGF;;AC/DA,SAAgBU,MAAMC,WAA6D;CACjF,OAAOA,UAAUC,aAAa;AAChC"}
|
package/dist/toast.d.ts
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @public
|
|
3
|
+
*/
|
|
4
|
+
interface ToastProps {
|
|
5
|
+
closable?: boolean;
|
|
6
|
+
description?: React.ReactNode;
|
|
7
|
+
onClose: () => void;
|
|
8
|
+
radius?: number | number[];
|
|
9
|
+
title?: React.ReactNode;
|
|
10
|
+
status?: 'error' | 'warning' | 'success' | 'info';
|
|
11
|
+
duration?: number;
|
|
12
|
+
updatedAt?: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The `Toast` component gives feedback to users when an action has taken place.
|
|
16
|
+
*
|
|
17
|
+
* Toasts can be closed with a close button, or auto-dismiss after a certain timeout.
|
|
18
|
+
*
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
declare function Toast(props: ToastProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'title' | 'onAnimationStart' | 'onDragStart' | 'onDragEnd' | 'onDrag'>): React.JSX.Element;
|
|
22
|
+
/**
|
|
23
|
+
* @public
|
|
24
|
+
*/
|
|
25
|
+
interface ToastLayerProps {
|
|
26
|
+
children: React.ReactNode;
|
|
27
|
+
padding?: number | number[];
|
|
28
|
+
paddingX?: number | number[];
|
|
29
|
+
paddingY?: number | number[];
|
|
30
|
+
gap?: number | number[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @public
|
|
34
|
+
*/
|
|
35
|
+
interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {
|
|
36
|
+
children?: React.ReactNode;
|
|
37
|
+
zOffset?: number | number[];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @public
|
|
41
|
+
*/
|
|
42
|
+
declare function ToastProvider(props: ToastProviderProps): React.JSX.Element;
|
|
43
|
+
/**
|
|
44
|
+
* @public
|
|
45
|
+
*/
|
|
46
|
+
interface ToastParams {
|
|
47
|
+
closable?: boolean;
|
|
48
|
+
description?: React.ReactNode;
|
|
49
|
+
duration?: number;
|
|
50
|
+
id?: string;
|
|
51
|
+
onClose?: () => void;
|
|
52
|
+
title?: React.ReactNode;
|
|
53
|
+
status?: 'error' | 'warning' | 'success' | 'info';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* @public
|
|
57
|
+
*/
|
|
58
|
+
interface ToastContextValue {
|
|
59
|
+
version: 0.0;
|
|
60
|
+
/**
|
|
61
|
+
* Creates or updates a toast notification.
|
|
62
|
+
* If a toast with the same ID already exists, it will be updated.
|
|
63
|
+
* If an ID is not provided, a random one will be generated.
|
|
64
|
+
* The returned ID can be used to programatically update a toast.
|
|
65
|
+
*/
|
|
66
|
+
push: (params: ToastParams) => string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
declare function useToast(): ToastContextValue;
|
|
72
|
+
export { Toast, type ToastContextValue, type ToastParams, type ToastProps, ToastProvider, type ToastProviderProps, useToast };
|
|
73
|
+
//# sourceMappingURL=toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.d.ts","names":[],"sources":["../src/core/components/toast/toast.tsx","../src/core/components/toast/toastLayer.tsx","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/types.ts","../src/core/components/toast/useToast.ts"],"mappings":"AAsBA;;;UAAiB;EACf;EACA,cAAc,MAAM;EACpB;EACA;EACA,QAAQ,MAAM;EACd;EACA;EACA;;;;;;;;;iBAqBc,MACd,OAAO,aACL,KACE,MAAM,UAAU,oHAUnB,MAAM,IAAI;;;;UCxDI;EACf,UAAU,MAAM;EAChB;EACA;EACA;EACA;;;;;UCQe,2BAA2B,KAAK;EAC/C,WAAW,MAAM;EACjB;;;;;iBAMc,cAAc,OAAO,qBAAqB,MAAM,IAAI;;;;UC1BnD;EACf;EACA,cAAc,MAAM;EACpB;EACA;EACA;EACA,QAAQ,MAAM;EACd;;;;;UAMe;EACf;;;;;;;EAOA,OAAO,QAAQ;;;;;iBCfD,YAAY"}
|
package/dist/toast.js
ADDED
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as getTheme_v2 } from "./getTheme_v2-y09KqtEb.js";
|
|
3
|
+
import { d as createGlobalScopedContext, i as usePrefersReducedMotion, n as LayerProvider, r as isRecord, s as Card, t as useLayer, y as Box } from "./useLayer-BAVfmbNN.js";
|
|
4
|
+
import { t as Flex } from "./flex-C-5JHi1C.js";
|
|
5
|
+
import { n as Text, t as Stack } from "./stack-iW9HuGLg.js";
|
|
6
|
+
import { t as Button } from "./button-mxfSqr0n.js";
|
|
7
|
+
import { t as Grid } from "./grid-BXHFJhf_.js";
|
|
8
|
+
import { c } from "react/compiler-runtime";
|
|
9
|
+
import { startTransition, useContext, useState, useSyncExternalStore } from "react";
|
|
10
|
+
import { styled } from "styled-components";
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
import { AnimatePresence, motion, stagger } from "motion/react";
|
|
13
|
+
import { CloseIcon } from "@sanity/icons/Close";
|
|
14
|
+
const STATUS_CARD_TONE = {
|
|
15
|
+
error: "critical",
|
|
16
|
+
warning: "caution",
|
|
17
|
+
success: "positive",
|
|
18
|
+
info: "neutral"
|
|
19
|
+
}, BUTTON_TONE = {
|
|
20
|
+
error: "critical",
|
|
21
|
+
warning: "caution",
|
|
22
|
+
success: "positive",
|
|
23
|
+
info: "neutral"
|
|
24
|
+
}, TextBox = styled(Flex).withConfig({
|
|
25
|
+
displayName: "TextBox",
|
|
26
|
+
componentId: "sc-xd2ehd-0"
|
|
27
|
+
})`overflow-x:auto;`, StyledToast = styled(Card).withConfig({
|
|
28
|
+
displayName: "StyledToast",
|
|
29
|
+
componentId: "sc-xd2ehd-1"
|
|
30
|
+
})`pointer-events:all;width:100%;position:relative;overflow:hidden;overflow:clip;&[data-has-duration]{padding-bottom:calc(${2}px / 2);}`, LoadingBar = styled.div.withConfig({
|
|
31
|
+
displayName: "LoadingBar",
|
|
32
|
+
componentId: "sc-xd2ehd-2"
|
|
33
|
+
})`display:flex;position:absolute;bottom:0px;top:0px;left:0px;right:0px;pointer-events:none;z-index:-1;overflow:hidden;overflow:clip;background:transparent;align-items:flex-end;will-change:opacity;`, LoadingBarMask = styled(Card).withConfig({
|
|
34
|
+
displayName: "LoadingBarMask",
|
|
35
|
+
componentId: "sc-xd2ehd-3"
|
|
36
|
+
})`position:absolute;top:0;left:-${2}px;right:-${2}px;bottom:${2}px;z-index:1;`, LoadingBarProgress = styled(Card).withConfig({
|
|
37
|
+
displayName: "LoadingBarProgress",
|
|
38
|
+
componentId: "sc-xd2ehd-4"
|
|
39
|
+
})`display:block;height:100%;width:100%;transform-origin:0% 50%;background-color:${(props) => {
|
|
40
|
+
let { color } = getTheme_v2(props.theme);
|
|
41
|
+
return color.button.default[props.tone].enabled.bg;
|
|
42
|
+
}};`, ROLES = {
|
|
43
|
+
error: "alert",
|
|
44
|
+
warning: "alert",
|
|
45
|
+
success: "alert",
|
|
46
|
+
info: "alert"
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* The `Toast` component gives feedback to users when an action has taken place.
|
|
50
|
+
*
|
|
51
|
+
* Toasts can be closed with a close button, or auto-dismiss after a certain timeout.
|
|
52
|
+
*
|
|
53
|
+
* @public
|
|
54
|
+
*/
|
|
55
|
+
function Toast(props) {
|
|
56
|
+
let $ = c(50), closable, description, duration, onClose, restProps, status, t0, title, updatedAt;
|
|
57
|
+
$[0] === props ? (closable = $[1], description = $[2], duration = $[3], onClose = $[4], restProps = $[5], status = $[6], t0 = $[7], title = $[8], updatedAt = $[9]) : ({closable, description, duration, onClose, radius: t0, title, status, updatedAt, ...restProps} = props, $[0] = props, $[1] = closable, $[2] = description, $[3] = duration, $[4] = onClose, $[5] = restProps, $[6] = status, $[7] = t0, $[8] = title, $[9] = updatedAt);
|
|
58
|
+
let radius = t0 === void 0 ? 3 : t0, cardTone = status ? STATUS_CARD_TONE[status] : "default", buttonTone = status ? BUTTON_TONE[status] : "default", role = status ? ROLES[status] : "status", visualDuration = usePrefersReducedMotion() ? 0 : .26, t1;
|
|
59
|
+
$[10] === visualDuration ? t1 = $[11] : (t1 = visualDuration ? {
|
|
60
|
+
type: "spring",
|
|
61
|
+
visualDuration,
|
|
62
|
+
bounce: .25
|
|
63
|
+
} : { duration: 0 }, $[10] = visualDuration, $[11] = t1);
|
|
64
|
+
let transition = t1, hasDuration = duration && isFinite(duration) && duration < 20736e5, t2;
|
|
65
|
+
$[12] === Symbol.for("react.memo_cache_sentinel") ? (t2 = ["hidden", "initial"], $[12] = t2) : t2 = $[12];
|
|
66
|
+
let initial = t2, t3;
|
|
67
|
+
$[13] === Symbol.for("react.memo_cache_sentinel") ? (t3 = ["visible", "slideIn"], $[13] = t3) : t3 = $[13];
|
|
68
|
+
let animate = t3, t4;
|
|
69
|
+
$[14] === Symbol.for("react.memo_cache_sentinel") ? (t4 = ["hidden", "slideOut"], $[14] = t4) : t4 = $[14];
|
|
70
|
+
let exit = t4, t5 = hasDuration ? "" : void 0, t6;
|
|
71
|
+
$[15] === title ? t6 = $[16] : (t6 = title && /* @__PURE__ */ jsx(Text, {
|
|
72
|
+
size: 1,
|
|
73
|
+
weight: "medium",
|
|
74
|
+
children: title
|
|
75
|
+
}), $[15] = title, $[16] = t6);
|
|
76
|
+
let t7;
|
|
77
|
+
$[17] !== description || $[18] !== transition ? (t7 = description && /* @__PURE__ */ jsx(MotionText, {
|
|
78
|
+
muted: !0,
|
|
79
|
+
size: 1,
|
|
80
|
+
variants: content,
|
|
81
|
+
transition,
|
|
82
|
+
children: description
|
|
83
|
+
}), $[17] = description, $[18] = transition, $[19] = t7) : t7 = $[19];
|
|
84
|
+
let t8;
|
|
85
|
+
$[20] !== t6 || $[21] !== t7 ? (t8 = /* @__PURE__ */ jsx(TextBox, {
|
|
86
|
+
flex: 1,
|
|
87
|
+
padding: 3,
|
|
88
|
+
children: /* @__PURE__ */ jsxs(Stack, {
|
|
89
|
+
gap: 3,
|
|
90
|
+
children: [t6, t7]
|
|
91
|
+
})
|
|
92
|
+
}), $[20] = t6, $[21] = t7, $[22] = t8) : t8 = $[22];
|
|
93
|
+
let t9;
|
|
94
|
+
$[23] !== buttonTone || $[24] !== closable || $[25] !== onClose ? (t9 = closable && /* @__PURE__ */ jsx(Box, {
|
|
95
|
+
padding: 1,
|
|
96
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
97
|
+
as: "button",
|
|
98
|
+
icon: CloseIcon,
|
|
99
|
+
mode: "bleed",
|
|
100
|
+
padding: 2,
|
|
101
|
+
tone: buttonTone,
|
|
102
|
+
onClick: onClose,
|
|
103
|
+
style: { verticalAlign: "top" }
|
|
104
|
+
})
|
|
105
|
+
}), $[23] = buttonTone, $[24] = closable, $[25] = onClose, $[26] = t9) : t9 = $[26];
|
|
106
|
+
let t10;
|
|
107
|
+
$[27] !== t8 || $[28] !== t9 || $[29] !== transition ? (t10 = /* @__PURE__ */ jsxs(MotionFlex, {
|
|
108
|
+
align: "flex-start",
|
|
109
|
+
variants: content,
|
|
110
|
+
transition,
|
|
111
|
+
children: [t8, t9]
|
|
112
|
+
}), $[27] = t8, $[28] = t9, $[29] = transition, $[30] = t10) : t10 = $[30];
|
|
113
|
+
let t11;
|
|
114
|
+
$[31] !== cardTone || $[32] !== duration || $[33] !== hasDuration || $[34] !== onClose || $[35] !== radius || $[36] !== transition || $[37] !== updatedAt || $[38] !== visualDuration ? (t11 = hasDuration && /* @__PURE__ */ jsxs(MotionLoadingBar, {
|
|
115
|
+
variants: content,
|
|
116
|
+
transition,
|
|
117
|
+
children: [/* @__PURE__ */ jsx(LoadingBarMask, {
|
|
118
|
+
tone: cardTone,
|
|
119
|
+
radius
|
|
120
|
+
}), /* @__PURE__ */ jsx(MotionLoadingBarProgress, {
|
|
121
|
+
tone: cardTone,
|
|
122
|
+
initial: { scaleX: 0 },
|
|
123
|
+
animate: { scaleX: 1 },
|
|
124
|
+
transition: {
|
|
125
|
+
delay: visualDuration,
|
|
126
|
+
duration: duration / 1e3,
|
|
127
|
+
ease: "linear"
|
|
128
|
+
},
|
|
129
|
+
onAnimationComplete: onClose
|
|
130
|
+
}, `progress-${updatedAt}`)]
|
|
131
|
+
}), $[31] = cardTone, $[32] = duration, $[33] = hasDuration, $[34] = onClose, $[35] = radius, $[36] = transition, $[37] = updatedAt, $[38] = visualDuration, $[39] = t11) : t11 = $[39];
|
|
132
|
+
let t12;
|
|
133
|
+
return $[40] !== cardTone || $[41] !== radius || $[42] !== restProps || $[43] !== role || $[44] !== t10 || $[45] !== t11 || $[46] !== t5 || $[47] !== transition || $[48] !== visualDuration ? (t12 = /* @__PURE__ */ jsxs(MotionToast, {
|
|
134
|
+
"data-ui": "Toast",
|
|
135
|
+
role,
|
|
136
|
+
...restProps,
|
|
137
|
+
"data-has-duration": t5,
|
|
138
|
+
custom: visualDuration,
|
|
139
|
+
radius,
|
|
140
|
+
shadow: 2,
|
|
141
|
+
tone: cardTone,
|
|
142
|
+
forwardedAs: "li",
|
|
143
|
+
layout: "position",
|
|
144
|
+
variants: container,
|
|
145
|
+
initial,
|
|
146
|
+
animate,
|
|
147
|
+
exit,
|
|
148
|
+
transition,
|
|
149
|
+
children: [t10, t11]
|
|
150
|
+
}), $[40] = cardTone, $[41] = radius, $[42] = restProps, $[43] = role, $[44] = t10, $[45] = t11, $[46] = t5, $[47] = transition, $[48] = visualDuration, $[49] = t12) : t12 = $[49], t12;
|
|
151
|
+
}
|
|
152
|
+
const container = {
|
|
153
|
+
initial: {
|
|
154
|
+
y: 32,
|
|
155
|
+
scale: .5,
|
|
156
|
+
zIndex: 1
|
|
157
|
+
},
|
|
158
|
+
hidden: { opacity: 0 },
|
|
159
|
+
visible: (visualDuration) => visualDuration ? {
|
|
160
|
+
opacity: 1,
|
|
161
|
+
transition: {
|
|
162
|
+
when: "beforeChildren",
|
|
163
|
+
delayChildren: stagger(visualDuration / 3),
|
|
164
|
+
duration: visualDuration / 3
|
|
165
|
+
}
|
|
166
|
+
} : { opacity: 1 },
|
|
167
|
+
slideIn: {
|
|
168
|
+
y: 0,
|
|
169
|
+
scale: 1
|
|
170
|
+
},
|
|
171
|
+
slideOut: {
|
|
172
|
+
zIndex: 0,
|
|
173
|
+
scale: .75
|
|
174
|
+
}
|
|
175
|
+
}, content = {
|
|
176
|
+
initial: { willChange: "transform" },
|
|
177
|
+
hidden: { opacity: 0 },
|
|
178
|
+
visible: { opacity: 1 }
|
|
179
|
+
}, MotionToast = motion.create(StyledToast), MotionFlex = motion.create(Flex), MotionText = motion.create(Text), MotionLoadingBar = motion.create(LoadingBar), MotionLoadingBarProgress = motion.create(LoadingBarProgress);
|
|
180
|
+
/**
|
|
181
|
+
* Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.
|
|
182
|
+
* @public
|
|
183
|
+
*/
|
|
184
|
+
function useMounted() {
|
|
185
|
+
return useSyncExternalStore(subscribe, _temp$1, _temp2);
|
|
186
|
+
}
|
|
187
|
+
function _temp2() {
|
|
188
|
+
return !1;
|
|
189
|
+
}
|
|
190
|
+
function _temp$1() {
|
|
191
|
+
return !0;
|
|
192
|
+
}
|
|
193
|
+
const subscribe = () => () => {}, ToastContext = createGlobalScopedContext("@sanity/ui/context/toast", null);
|
|
194
|
+
/**
|
|
195
|
+
* @internal
|
|
196
|
+
*/
|
|
197
|
+
function ToastLayer(props) {
|
|
198
|
+
let $ = c(9), { children, padding: t0, paddingX, paddingY, gap: t1 } = props, padding = t0 === void 0 ? 4 : t0, gap = t1 === void 0 ? 3 : t1, { zIndex } = useLayer(), t2;
|
|
199
|
+
$[0] === zIndex ? t2 = $[1] : (t2 = { zIndex }, $[0] = zIndex, $[1] = t2);
|
|
200
|
+
let t3;
|
|
201
|
+
return $[2] !== children || $[3] !== gap || $[4] !== padding || $[5] !== paddingX || $[6] !== paddingY || $[7] !== t2 ? (t3 = /* @__PURE__ */ jsx(StyledLayer, {
|
|
202
|
+
forwardedAs: "ul",
|
|
203
|
+
"data-ui": "ToastProvider",
|
|
204
|
+
padding,
|
|
205
|
+
paddingX,
|
|
206
|
+
paddingY,
|
|
207
|
+
gap,
|
|
208
|
+
gridTemplateColumns: 1,
|
|
209
|
+
style: t2,
|
|
210
|
+
children
|
|
211
|
+
}), $[2] = children, $[3] = gap, $[4] = padding, $[5] = paddingX, $[6] = paddingY, $[7] = t2, $[8] = t3) : t3 = $[8], t3;
|
|
212
|
+
}
|
|
213
|
+
const StyledLayer = styled(Grid).withConfig({
|
|
214
|
+
displayName: "StyledLayer",
|
|
215
|
+
componentId: "sc-kxgg1x-0"
|
|
216
|
+
})`box-sizing:border-box;position:fixed;right:0;bottom:0;list-style:none;pointer-events:none;max-width:420px;width:100%;`;
|
|
217
|
+
let toastId = 0;
|
|
218
|
+
/** @internal */
|
|
219
|
+
function generateToastId() {
|
|
220
|
+
return String(toastId++);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* @public
|
|
224
|
+
*/
|
|
225
|
+
function ToastProvider(props) {
|
|
226
|
+
let $ = c(13), { children, padding, paddingX, paddingY, gap, zOffset: t0 } = props, zOffset = t0 === void 0 ? 1 : t0, t1;
|
|
227
|
+
$[0] === Symbol.for("react.memo_cache_sentinel") ? (t1 = [], $[0] = t1) : t1 = $[0];
|
|
228
|
+
let [state, setState] = useState(t1), mounted = useMounted(), t2;
|
|
229
|
+
if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
|
|
230
|
+
let push = (params) => {
|
|
231
|
+
let id = params.id || generateToastId(), duration = params.duration || 5e3;
|
|
232
|
+
return startTransition(() => {
|
|
233
|
+
setState((prevState) => {
|
|
234
|
+
if (duration === .01) return prevState.filter((toast) => toast.id !== id);
|
|
235
|
+
let dismiss = () => startTransition(() => setState((currentState) => currentState.filter((toast_0) => toast_0.id !== id)));
|
|
236
|
+
return [...prevState.filter((toast_1) => toast_1.id !== id), {
|
|
237
|
+
dismiss,
|
|
238
|
+
id,
|
|
239
|
+
updatedAt: Date.now(),
|
|
240
|
+
params: {
|
|
241
|
+
...params,
|
|
242
|
+
duration
|
|
243
|
+
}
|
|
244
|
+
}];
|
|
245
|
+
});
|
|
246
|
+
}), id;
|
|
247
|
+
};
|
|
248
|
+
t2 = {
|
|
249
|
+
version: 0,
|
|
250
|
+
push
|
|
251
|
+
}, $[1] = t2;
|
|
252
|
+
} else t2 = $[1];
|
|
253
|
+
let value = t2, t3;
|
|
254
|
+
$[2] !== gap || $[3] !== mounted || $[4] !== padding || $[5] !== paddingX || $[6] !== paddingY || $[7] !== state || $[8] !== zOffset ? (t3 = mounted && /* @__PURE__ */ jsx(LayerProvider, {
|
|
255
|
+
zOffset,
|
|
256
|
+
children: /* @__PURE__ */ jsx(ToastLayer, {
|
|
257
|
+
padding,
|
|
258
|
+
paddingX,
|
|
259
|
+
paddingY,
|
|
260
|
+
gap,
|
|
261
|
+
children: /* @__PURE__ */ jsx(AnimatePresence, {
|
|
262
|
+
initial: !1,
|
|
263
|
+
mode: "popLayout",
|
|
264
|
+
children: state.map(_temp)
|
|
265
|
+
})
|
|
266
|
+
})
|
|
267
|
+
}), $[2] = gap, $[3] = mounted, $[4] = padding, $[5] = paddingX, $[6] = paddingY, $[7] = state, $[8] = zOffset, $[9] = t3) : t3 = $[9];
|
|
268
|
+
let t4;
|
|
269
|
+
return $[10] !== children || $[11] !== t3 ? (t4 = /* @__PURE__ */ jsxs(ToastContext.Provider, {
|
|
270
|
+
value,
|
|
271
|
+
children: [children, t3]
|
|
272
|
+
}), $[10] = children, $[11] = t3, $[12] = t4) : t4 = $[12], t4;
|
|
273
|
+
}
|
|
274
|
+
function _temp(t0) {
|
|
275
|
+
let { dismiss: dismiss_0, id: id_0, params: params_0, updatedAt } = t0;
|
|
276
|
+
return /* @__PURE__ */ jsx(Toast, {
|
|
277
|
+
closable: params_0.closable,
|
|
278
|
+
description: params_0.description,
|
|
279
|
+
onClose: dismiss_0,
|
|
280
|
+
status: params_0.status,
|
|
281
|
+
title: params_0.title,
|
|
282
|
+
duration: params_0.duration,
|
|
283
|
+
updatedAt
|
|
284
|
+
}, id_0);
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* @public
|
|
288
|
+
*/
|
|
289
|
+
function useToast() {
|
|
290
|
+
let value = useContext(ToastContext);
|
|
291
|
+
if (!value) throw Error("useToast(): missing context value");
|
|
292
|
+
if (!isRecord(value) || value.version !== 0) throw Error("useToast(): the context value is not compatible");
|
|
293
|
+
return value;
|
|
294
|
+
}
|
|
295
|
+
export { Toast, ToastProvider, useToast };
|
|
296
|
+
|
|
297
|
+
//# sourceMappingURL=toast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toast.js","names":["styled","ThemeColorStateToneKey","getTheme_v2","Card","CardProps","Flex","ButtonTone","LOADING_BAR_HEIGHT","STATUS_CARD_TONE","error","warning","success","info","key","BUTTON_TONE","TextBox","StyledToast","LoadingBar","div","LoadingBarMask","LoadingBarProgressProps","Omit","tone","LoadingBarProgress","React","ComponentType","props","color","theme","button","default","enabled","bg","CloseIcon","motion","stagger","Variant","Variants","usePrefersReducedMotion","Box","Button","Flex","Stack","Text","BUTTON_TONE","LoadingBar","LoadingBarMask","LoadingBarProgress","STATUS_CARD_TONE","StyledToast","TextBox","ToastProps","closable","description","React","ReactNode","onClose","radius","title","status","duration","updatedAt","ROLES","error","warning","success","info","const","LONG_ENOUGH_BUT_NOT_TOO_LONG","Toast","props","$","_c","restProps","t0","undefined","cardTone","buttonTone","role","prefersReducedMotion","visualDuration","t1","type","bounce","transition","hasDuration","isFinite","t2","Symbol","for","initial","t3","animate","t4","exit","t5","t6","t7","content","t8","t9","verticalAlign","t10","t11","scaleX","delay","ease","t12","container","y","scale","zIndex","hidden","opacity","visible","when","delayChildren","slideIn","slideOut","ContainerVariants","willChange","Partial","Record","MotionToast","create","MotionFlex","MotionText","MotionLoadingBar","MotionLoadingBarProgress","useSyncExternalStore","useMounted","subscribe","_temp","_temp2","createGlobalScopedContext","ToastContextValue","ToastContext","styled","Grid","useLayer","ToastLayerProps","children","React","ReactNode","padding","paddingX","paddingY","gap","ToastLayer","props","$","_c","t0","t1","undefined","zIndex","t2","t3","StyledLayer","toastId","generateToastId","String","AnimatePresence","startTransition","useMemo","useState","useMounted","LayerProvider","Toast","ToastContext","ToastLayer","ToastLayerProps","generateToastId","ToastContextValue","ToastParams","ToastState","dismiss","id","updatedAt","params","ToastProviderProps","Omit","children","React","ReactNode","zOffset","ToastProvider","props","$","_c","padding","paddingX","paddingY","gap","t0","undefined","t1","Symbol","for","state","setState","mounted","t2","push","duration","prevState","filter","toast","currentState","toast_0","toast_1","Date","now","version","value","t3","map","_temp","t4","dismiss_0","id_0","params_0","closable","description","status","title","useContext","isRecord","ToastContext","ToastContextValue","useToast","value","Error","version"],"sources":["../src/core/components/toast/styles.ts","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastLayer.tsx","../src/core/components/toast/toastState.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts"],"sourcesContent":["import {styled} from 'styled-components'\n\nimport {ThemeColorStateToneKey} from '../../../theme/system/color/_system'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {Card, type CardProps} from '../../primitives/card/card'\nimport {Flex} from '../../primitives/flex/flex'\nimport type {ButtonTone} from '../../types/button'\n\nconst LOADING_BAR_HEIGHT = 2\n\nexport const STATUS_CARD_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ThemeColorStateToneKey}\n\nexport const BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} satisfies {[key: string]: ButtonTone}\n\nexport const TextBox = styled(Flex)`\n overflow-x: auto;\n`\n\nexport const StyledToast = styled(Card)`\n pointer-events: all;\n width: 100%;\n position: relative;\n overflow: hidden;\n overflow: clip;\n\n &[data-has-duration] {\n padding-bottom: calc(${LOADING_BAR_HEIGHT}px / 2);\n }\n`\n\nexport const LoadingBar = styled.div`\n display: flex;\n position: absolute;\n bottom: 0px;\n top: 0px;\n left: 0px;\n right: 0px;\n pointer-events: none;\n z-index: -1;\n overflow: hidden;\n overflow: clip;\n background: transparent;\n align-items: flex-end;\n will-change: opacity;\n`\n\nexport const LoadingBarMask = styled(Card)`\n position: absolute;\n top: 0;\n left: -${LOADING_BAR_HEIGHT}px;\n right: -${LOADING_BAR_HEIGHT}px;\n bottom: ${LOADING_BAR_HEIGHT}px;\n z-index: 1;\n`\n\ntype LoadingBarProgressProps = Omit<CardProps, 'tone'> & {\n tone: ThemeColorStateToneKey\n}\nexport const LoadingBarProgress = styled<React.ComponentType<LoadingBarProgressProps>>(Card)`\n display: block;\n height: 100%;\n width: 100%;\n transform-origin: 0% 50%;\n background-color: ${(props) => {\n const {color} = getTheme_v2(props.theme)\n\n return color.button.default[props.tone].enabled.bg\n }};\n`\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {motion, stagger, type Variant, type Variants} from 'motion/react'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives/box/box'\nimport {Button} from '../../primitives/button/button'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Stack} from '../../primitives/stack/stack'\nimport {Text} from '../../primitives/text/text'\nimport {\n BUTTON_TONE,\n LoadingBar,\n LoadingBarMask,\n LoadingBarProgress,\n STATUS_CARD_TONE,\n StyledToast,\n TextBox,\n} from './styles'\n\n/**\n * @public\n */\nexport interface ToastProps {\n closable?: boolean\n description?: React.ReactNode\n onClose: () => void\n radius?: number | number[]\n title?: React.ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n updatedAt?: number\n}\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\n// Support pattern used by Sanity Studio, that works around the lack of `duration: Infinity` support in older @sanity/ui versions\n// https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\nconst LONG_ENOUGH_BUT_NOT_TOO_LONG = 1000 * 60 * 60 * 24 * 24\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast(\n props: ToastProps &\n Omit<\n React.HTMLProps<HTMLDivElement>,\n | 'as'\n | 'height'\n | 'ref'\n | 'title'\n | 'onAnimationStart'\n | 'onDragStart'\n | 'onDragEnd'\n | 'onDrag'\n >,\n): React.JSX.Element {\n const {\n closable,\n description,\n duration,\n onClose,\n radius = 3,\n title,\n status,\n updatedAt,\n ...restProps\n } = props\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n const prefersReducedMotion = usePrefersReducedMotion()\n\n const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n const transition = visualDuration\n ? {type: 'spring' as const, visualDuration, bounce: 0.25}\n : {duration: 0}\n\n const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG\n const initial: ContainerVariants[] = ['hidden', 'initial']\n const animate: ContainerVariants[] = ['visible', 'slideIn']\n const exit: ContainerVariants[] = ['hidden', 'slideOut']\n\n return (\n <MotionToast\n data-ui=\"Toast\"\n role={role}\n {...restProps}\n data-has-duration={hasDuration ? '' : undefined}\n custom={visualDuration}\n radius={radius}\n shadow={2}\n tone={cardTone}\n forwardedAs=\"li\"\n layout=\"position\"\n variants={container}\n initial={initial}\n animate={animate}\n exit={exit}\n transition={transition}\n >\n <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n <TextBox flex={1} padding={3}>\n <Stack gap={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <MotionText muted size={1} variants={content} transition={transition}>\n {description}\n </MotionText>\n )}\n </Stack>\n </TextBox>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </MotionFlex>\n {hasDuration && (\n <MotionLoadingBar variants={content} transition={transition}>\n <LoadingBarMask tone={cardTone} radius={radius} />\n <MotionLoadingBarProgress\n key={`progress-${updatedAt}`}\n tone={cardTone}\n initial={{scaleX: 0}}\n animate={{scaleX: 1}}\n transition={{delay: visualDuration, duration: duration / 1_000, ease: 'linear'}}\n onAnimationComplete={onClose}\n />\n </MotionLoadingBar>\n )}\n </MotionToast>\n )\n}\n\nconst container = {\n initial: {y: 32, scale: 0.5, zIndex: 1},\n hidden: {opacity: 0},\n visible: (visualDuration: number) => {\n if (!visualDuration) return {opacity: 1}\n\n return {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n delayChildren: stagger(visualDuration / 3),\n duration: visualDuration / 3,\n },\n }\n },\n slideIn: {\n y: 0,\n scale: 1,\n },\n slideOut: {\n zIndex: 0,\n scale: 0.75,\n },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n initial: {\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionToast = motion.create(StyledToast)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\nconst MotionLoadingBar = motion.create(LoadingBar)\nconst MotionLoadingBarProgress = motion.create(LoadingBarProgress)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {styled} from 'styled-components'\n\nimport {Grid} from '../../primitives/grid/grid'\nimport {useLayer} from '../../utils/layer/useLayer'\n\n/**\n * @public\n */\nexport interface ToastLayerProps {\n children: React.ReactNode\n padding?: number | number[]\n paddingX?: number | number[]\n paddingY?: number | number[]\n gap?: number | number[]\n}\n\n/**\n * @internal\n */\nexport function ToastLayer(props: ToastLayerProps): React.JSX.Element {\n const {children, padding = 4, paddingX, paddingY, gap = 3} = props\n const {zIndex} = useLayer()\n\n return (\n <StyledLayer\n forwardedAs=\"ul\"\n data-ui=\"ToastProvider\"\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n gap={gap}\n gridTemplateColumns={1}\n style={{zIndex}}\n >\n {children}\n </StyledLayer>\n )\n}\n\nconst StyledLayer = styled(Grid)`\n box-sizing: border-box;\n position: fixed;\n right: 0;\n bottom: 0;\n list-style: none;\n pointer-events: none;\n max-width: 420px;\n width: 100%;\n`\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import {AnimatePresence} from 'motion/react'\nimport {startTransition, useMemo, useState} from 'react'\n\nimport {useMounted} from '../../hooks/useMounted'\nimport {LayerProvider} from '../../utils/layer/layerProvider'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastLayer, type ToastLayerProps} from './toastLayer'\nimport {generateToastId} from './toastState'\nimport {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n updatedAt: number\n params: ToastParams\n}[]\n\n/**\n * @public\n */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/**\n * @public\n */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n const [state, setState] = useState<ToastState>([])\n const mounted = useMounted()\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n const id = params.id || generateToastId()\n const duration = params.duration || 5000\n\n startTransition(() => {\n setState((prevState): ToastState => {\n /**\n * Backwards compatibility for `sanity` patterns workaround a lack of programatically dismissible toasts.\n * It uses a super short duration that closes the toast immediately in previous versions of `@sanity/ui`.\n * We interpret this as a request to dismiss the toast immediately, and remove it from the state right away.\n * Even once we support programatic dismissal we'll need to keep this for backwards compatibility with v2 and v1.\n */\n if (duration === 0.01) {\n return prevState.filter((toast) => toast.id !== id)\n }\n\n /**\n * Creates a function to dismiss this specific toast.\n * This function will be passed to the Toast component\n * and called either on close button click or after duration.\n */\n const dismiss = () =>\n startTransition(() =>\n setState((currentState) => currentState.filter((toast) => toast.id !== id)),\n )\n\n /**\n * Create updated state by:\n * 1. Removing any existing toast with the same ID (prevents duplicates)\n * 2. Adding the new toast with its dismiss handler\n * 3. Updates the `updatedAt` timestamp, which resets progress bar count downs.\n */\n return [\n ...prevState.filter((toast) => toast.id !== id),\n {\n dismiss,\n id,\n updatedAt: Date.now(),\n params: {...params, duration},\n },\n ]\n })\n })\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <LayerProvider zOffset={zOffset}>\n <ToastLayer padding={padding} paddingX={paddingX} paddingY={paddingY} gap={gap}>\n <AnimatePresence initial={false} mode=\"popLayout\">\n {state.map(({dismiss, id, params, updatedAt}) => (\n <Toast\n key={id}\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n updatedAt={updatedAt}\n />\n ))}\n </AnimatePresence>\n </ToastLayer>\n </LayerProvider>\n )}\n </ToastContext.Provider>\n )\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport {ToastContextValue} from './types'\n\n/**\n * @public\n */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n"],"mappings":"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"}
|