/* * Editor shell and floating chrome. * * This file owns ProseMirror root behavior, placeholder text, NodeView layout, * and editor-only floating controls. Rich prose typography lives in prose.css. */ .rich-text-editor.ProseMirror { color: var(--foreground); caret-color: var(--foreground); } .rich-text-editor.ProseMirror:focus { outline: none; } /* Placeholder */ .rich-text-editor .is-editor-empty:first-child::before { content: attr(data-placeholder); float: left; color: var(--muted-foreground); pointer-events: none; height: 0; } /* Readonly mode overrides */ .rich-text-editor.readonly.ProseMirror { caret-color: transparent; cursor: default; } /* Mention NodeView inline layout fix */ .rich-text-editor [data-node-view-wrapper] { display: inline; vertical-align: middle; } /* Block-level NodeViews (fileCard) need to override the inline default above */ .rich-text-editor .file-card-node { display: block !important; } /* Bubble menu — floating toolbar pill */ .bubble-menu { display: flex; align-items: center; gap: 1px; padding: 0.25rem; background: var(--popover); border: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent); border-radius: var(--radius); box-shadow: 0 4px 12px color-mix(in srgb, black 12%, transparent), 0 0 0 1px color-mix(in srgb, black 4%, transparent); } /* Link edit mode — inline URL input */ .bubble-menu-link-edit { display: flex; align-items: center; gap: 0.25rem; padding: 0.25rem; background: var(--popover); border: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent); border-radius: var(--radius); box-shadow: 0 4px 12px color-mix(in srgb, black 12%, transparent), 0 0 0 1px color-mix(in srgb, black 4%, transparent); min-width: 300px; } /* Link hover card — shows URL + actions on link hover */ .link-hover-card { display: flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.25rem 0.25rem 0.5rem; background: var(--popover); border: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent); border-radius: var(--radius); box-shadow: 0 4px 12px color-mix(in srgb, black 12%, transparent), 0 0 0 1px color-mix(in srgb, black 4%, transparent); max-width: min(360px, calc(100vw - 2rem)); white-space: nowrap; }