import { css, html } from 'lit'; import { getThemeMode } from '../_common/utils/query.js'; export const styles = css` .affine-attachment-container { position: relative; display: flex; flex-direction: column; padding: 16px 24px; margin-top: calc(var(--affine-paragraph-space) + 8px); border-radius: 12px; border: 3px solid var(--affine-background-overlay-panel-color); background: var(--affine-card-background-blue); box-shadow: var(--affine-shadow-1); cursor: pointer; } .affine-attachment-embed-container { position: relative; display: flex; justify-content: center; margin-top: calc(var(--affine-paragraph-space) + 8px); } .affine-attachment-title { display: flex; gap: 8px; color: var(--affine-text-primary-color); font-size: var(--affine-font-sm); font-weight: 600; overflow: hidden; text-overflow: ellipsis; fill: var(--affine-icon-color); user-select: none; z-index: 1; } .affine-attachment-title > svg { /* Align icon vertically to the center of the first line of text, */ /* Assume the height of the icon is 16px */ margin-top: calc((var(--affine-line-height) - 16px) / 2); } .affine-attachment-name { flex: 1; word-wrap: break-word; overflow: hidden; } .affine-attachment-desc { color: var(--affine-text-secondary-color); font-size: var(--affine-font-xs); user-select: none; } .affine-attachment-banner { position: absolute; display: flex; right: 24px; bottom: 0; } .affine-attachment-loading { display: flex; align-items: center; gap: 8px; color: var(--affine-placeholder-color); font-size: var(--affine-font-sm); font-weight: 600; fill: var(--affine-icon-color); user-select: none; } .affine-attachment-caption { width: 100%; font-size: var(--affine-font-sm); outline: none; border: 0; font-family: inherit; text-align: center; color: var(--affine-icon-color); background: var(--affine-background-primary-color); } .affine-attachment-caption::placeholder { color: var(--affine-placeholder-color); } .overlay-mask { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } `; export const LoadingIcon = html` `; const AttachmentBannerLight = html` `; const AttachmentBannerDark = html` `; export const AttachmentBanner = () => { const mode = getThemeMode(); const isDarkMode = mode === 'dark'; return isDarkMode ? AttachmentBannerDark : AttachmentBannerLight; }; const ErrorBannerLight = html` `; const ErrorBannerDark = html` `; export const ErrorBanner = () => { const mode = getThemeMode(); const isDarkMode = mode === 'dark'; return isDarkMode ? ErrorBannerDark : ErrorBannerLight; };