UNPKG

@lobehub/ui

Version:

Lobe UI is an open-source UI component library for building AIGC web apps

383 lines (337 loc) 8.92 kB
import { createStaticStyles } from "antd-style"; import { cva } from "class-variance-authority"; //#region src/Toast/style.ts const styles = createStaticStyles(({ css: css$1, cssVar: cssVar$1 }) => ({ action: css$1` cursor: pointer; display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; height: 28px; padding-inline: 12px; border: none; border-radius: ${cssVar$1.borderRadiusSM}; font-size: 12px; font-weight: 500; line-height: 1; transition: background 0.2s, color 0.2s; &:focus-visible { outline: 2px solid ${cssVar$1.colorPrimaryBorder}; outline-offset: 1px; } `, actionDanger: css$1` color: ${cssVar$1.colorTextLightSolid}; background: ${cssVar$1.colorError}; &:hover { background: ${cssVar$1.colorErrorHover}; } &:active { background: ${cssVar$1.colorErrorActive}; } &:focus-visible { outline-color: ${cssVar$1.colorErrorBorder}; } `, actionGhost: css$1` border: 1px solid ${cssVar$1.colorBorder}; color: ${cssVar$1.colorText}; background: transparent; &:hover { border-color: ${cssVar$1.colorPrimary}; color: ${cssVar$1.colorPrimary}; } &:active { border-color: ${cssVar$1.colorPrimaryActive}; color: ${cssVar$1.colorPrimaryActive}; } `, actionPrimary: css$1` color: ${cssVar$1.colorTextLightSolid}; background: ${cssVar$1.colorPrimary}; &:hover { background: ${cssVar$1.colorPrimaryHover}; } &:active { background: ${cssVar$1.colorPrimaryActive}; } `, actionSecondary: css$1` color: ${cssVar$1.colorText}; background: ${cssVar$1.colorFillSecondary}; &:hover { background: ${cssVar$1.colorFillTertiary}; } &:active { background: ${cssVar$1.colorFill}; } `, actionText: css$1` color: ${cssVar$1.colorPrimary}; background: transparent; &:hover { background: ${cssVar$1.colorFillTertiary}; } &:active { background: ${cssVar$1.colorFillSecondary}; } `, actions: css$1` display: flex; flex-grow: 1; flex-shrink: 0; gap: 8px; align-items: center; align-self: flex-end; justify-content: flex-end; margin-block-start: 8px; `, close: css$1` cursor: pointer; display: flex; flex-shrink: 0; align-items: center; justify-content: center; width: 20px; height: 20px; margin-inline-start: auto; padding: 0; border: none; border-radius: ${cssVar$1.borderRadiusSM}; color: ${cssVar$1.colorTextTertiary}; background: transparent; transition: all 0.2s; &:hover { color: ${cssVar$1.colorText}; background: ${cssVar$1.colorFillSecondary}; } `, content: css$1` overflow: hidden; transition: opacity 0.2s; &[data-behind] { pointer-events: none; opacity: 0; } &[data-expanded] { pointer-events: auto; opacity: 1; } `, contentArea: css$1` display: flex; flex: 1; flex-direction: column; min-width: 0; `, description: css$1` margin: 0; font-size: 13px; line-height: 1.5; color: ${cssVar$1.colorTextSecondary}; `, icon: css$1` display: flex; flex-shrink: 0; align-items: center; justify-content: center; `, root: css$1` --toast-gap: 12px; --toast-peek: 12px; --toast-scale: calc(1 - var(--toast-index) * 0.05); --toast-shrink: calc(1 - var(--toast-scale)); --toast-collapsed-height: var(--toast-frontmost-height, var(--toast-height)); cursor: default; user-select: none; position: absolute; z-index: calc(1000 - var(--toast-index)); inset-inline: 0; box-sizing: border-box; width: 100%; height: var(--toast-collapsed-height); padding-block: 12px; padding-inline: 16px; border-radius: ${cssVar$1.borderRadiusLG}; color: ${cssVar$1.colorText}; background: ${cssVar$1.colorBgElevated}; background-clip: padding-box; box-shadow: 0 0 0 1px color-mix(in srgb, ${cssVar$1.colorBgSolid} 3%, transparent), 0 1px 1px -0.5px color-mix(in srgb, ${cssVar$1.colorBgSolid} 3%, transparent), 0 3px 3px -1.5px color-mix(in srgb, ${cssVar$1.colorBgSolid} 3%, transparent), 0 6px 6px -3px color-mix(in srgb, ${cssVar$1.colorBgSolid} 3%, transparent), 0 12px 12px -6px color-mix(in srgb, ${cssVar$1.colorBgSolid} 3%, transparent), 0 24px 24px -12px color-mix(in srgb, ${cssVar$1.colorBgSolid} 3%, transparent); transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.4s, height 0.15s; /* Fill gap between stacked toasts to prevent hover flicker */ &::after { content: ''; position: absolute; inset-inline: 0; height: calc(var(--toast-gap) + var(--toast-peek) + 8px); } &[data-limited] { opacity: 0; } &[data-swiping] { transition: none; } `, rootBottom: css$1` inset-block: auto 0; transform-origin: bottom center; transform: translateX(var(--toast-swipe-movement-x)) translateY( calc( var(--toast-swipe-movement-y) - (var(--toast-index) * var(--toast-peek)) - (var(--toast-shrink) * var(--toast-collapsed-height)) ) ) scale(var(--toast-scale)); &::after { inset-block-start: 100%; } &[data-expanded] { transform: translateX(var(--toast-swipe-movement-x)) translateY( calc( var(--toast-swipe-movement-y) + var(--toast-offset-y) * -1 + var(--toast-index) * var(--toast-gap) * -1 ) ) scale(1); height: var(--toast-height); } &[data-starting-style], &[data-ending-style] { transform: translateY(150%); opacity: 0; } `, rootTop: css$1` inset-block: 0 auto; transform-origin: top center; transform: translateX(var(--toast-swipe-movement-x)) translateY( calc( var(--toast-swipe-movement-y) + (var(--toast-index) * var(--toast-peek)) + (var(--toast-shrink) * var(--toast-collapsed-height)) ) ) scale(var(--toast-scale)); &::after { inset-block-end: 100%; } &[data-expanded] { transform: translateX(var(--toast-swipe-movement-x)) translateY( calc( var(--toast-swipe-movement-y) + var(--toast-offset-y) + var(--toast-index) * var(--toast-gap) ) ) scale(1); height: var(--toast-height); } &[data-starting-style], &[data-ending-style] { transform: translateY(-150%); opacity: 0; } `, title: css$1` margin: 0; font-size: 14px; font-weight: 500; line-height: 1.5; color: ${cssVar$1.colorText}; `, titleRow: css$1` display: flex; gap: 8px; align-items: center; `, toastBody: css$1` display: flex; gap: 12px; align-items: flex-start; `, viewport: css$1` position: fixed; z-index: 1100; width: 360px; max-width: calc(100vw - 32px); outline: 0; @media (width <= 480px) { width: calc(100vw - 32px); } `, viewportBottom: css$1` inset-block-end: 16px; inset-inline-start: 50%; transform: translateX(-50%); `, viewportBottomLeft: css$1` inset-block-end: 16px; inset-inline-start: 16px; `, viewportBottomRight: css$1` inset-block-end: 16px; inset-inline-end: 16px; `, viewportTop: css$1` inset-block-start: 16px; inset-inline-start: 50%; transform: translateX(-50%); `, viewportTopLeft: css$1` inset-block-start: 16px; inset-inline-start: 16px; `, viewportTopRight: css$1` inset-block-start: 16px; inset-inline-end: 16px; ` })); const viewportVariants = cva(styles.viewport, { defaultVariants: { position: "bottom-right" }, variants: { position: { "bottom": styles.viewportBottom, "bottom-left": styles.viewportBottomLeft, "bottom-right": styles.viewportBottomRight, "top": styles.viewportTop, "top-left": styles.viewportTopLeft, "top-right": styles.viewportTopRight } } }); const rootVariants = cva(styles.root, { defaultVariants: { position: "bottom-right" }, variants: { position: { "bottom": styles.rootBottom, "bottom-left": styles.rootBottom, "bottom-right": styles.rootBottom, "top": styles.rootTop, "top-left": styles.rootTop, "top-right": styles.rootTop } } }); const actionVariants = cva(styles.action, { defaultVariants: { variant: "primary" }, variants: { variant: { danger: styles.actionDanger, ghost: styles.actionGhost, primary: styles.actionPrimary, secondary: styles.actionSecondary, text: styles.actionText } } }); //#endregion export { actionVariants, rootVariants, styles, viewportVariants }; //# sourceMappingURL=style.mjs.map