/* Content: tables */ .tiptap .tableWrapper { position: relative; overflow-x: auto; overflow-y: hidden; margin: 0.75em 0; } .tiptap table { border-collapse: collapse; table-layout: fixed; width: 100%; margin: 0; background-color: var(--color-zinc-900); border: 1px solid var(--color-zinc-700); transition: border-color 0.12s, box-shadow 0.12s; } .editor-content-shell[data-editor-mode="editable"] .tiptap .tableWrapper.has-table-handles > table { border-color: var(--color-zinc-600); box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-accent-500) 30%, transparent); } .tiptap td, .tiptap th { position: relative; vertical-align: top; box-sizing: border-box; min-width: 80px; padding: 0.5rem 0.75rem; border: 1px solid var(--color-zinc-700); color: var(--color-zinc-300); overflow-wrap: anywhere; word-break: break-word; white-space: normal; } .tiptap th { background-color: var(--color-zinc-800); color: var(--color-zinc-100); font-weight: 600; text-align: left; } .tiptap td > p, .tiptap th > p { margin: 0; } .tiptap .selectedCell::after { position: absolute; content: ""; inset: 0; background-color: color-mix(in srgb, var(--color-accent-500) 18%, transparent); pointer-events: none; z-index: 2; } .tiptap .column-resize-handle { position: absolute; right: 0; top: 0; bottom: 0; width: 4px; background-color: var(--color-accent-500); z-index: 20; pointer-events: none; } .tiptap.resize-cursor, .tiptap .resize-cursor { cursor: col-resize; } /* Overlay: table handles */ .tiptap-table-handles { position: absolute; top: 0; left: 0; width: 0; height: 0; pointer-events: none; z-index: 15; } .tiptap-table-row-handle, .tiptap-table-col-handle, .tiptap-table-corner-handle, .tiptap-table-add-col, .tiptap-table-add-row { position: absolute; pointer-events: auto; user-select: none; touch-action: none; margin: 0; padding: 0; font: inherit; color: inherit; } .tiptap-table-row-handle, .tiptap-table-col-handle, .tiptap-table-corner-handle { border: 1px solid var(--color-zinc-700); background-color: var(--color-zinc-700); border-radius: 4px; display: flex; align-items: center; justify-content: center; cursor: grab; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4); transition: background-color 0.12s, border-color 0.12s; } .tiptap-table-row-handle { width: 12px; border-top-right-radius: 0; border-bottom-right-radius: 0; border-right: none; } .tiptap-table-row-handle::before { content: ""; width: 2px; height: 14px; background-image: radial-gradient(circle, var(--color-zinc-500) 1px, transparent 1px); background-size: 2px 4px; background-repeat: repeat-y; } .tiptap-table-col-handle { height: 12px; border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-bottom: none; } .tiptap-table-col-handle::before { content: ""; height: 2px; width: 14px; background-image: radial-gradient(circle, var(--color-zinc-500) 1px, transparent 1px); background-size: 4px 2px; background-repeat: repeat-x; } .tiptap-table-corner-handle { width: 12px; height: 12px; border-bottom-right-radius: 0; cursor: pointer; } .tiptap-table-corner-handle::before { content: ""; width: 6px; height: 6px; border-radius: 999px; background-color: var(--color-zinc-500); } .tiptap-table-row-handle:hover, .tiptap-table-col-handle:hover, .tiptap-table-corner-handle:hover, .tiptap-table-row-handle:focus-visible, .tiptap-table-col-handle:focus-visible, .tiptap-table-corner-handle:focus-visible { background-color: var(--color-zinc-700); border-color: var(--color-accent-500); outline: none; } .tiptap-table-row-handle:active, .tiptap-table-col-handle:active { cursor: grabbing; } .tiptap-table-add-col, .tiptap-table-add-row { width: 20px; height: 20px; background-color: rgba(27, 24, 26, 0.96); border: 1px solid var(--color-zinc-700); color: var(--color-zinc-400); border-radius: 999px; font-size: 13px; font-weight: 600; line-height: 1; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35); opacity: 0.94; transform: scale(0.96); transition: transform 0.12s, background-color 0.12s, border-color 0.12s, color 0.12s, opacity 0.12s; } .tiptap-table-add-col:hover, .tiptap-table-add-row:hover, .tiptap-table-add-col:focus-visible, .tiptap-table-add-row:focus-visible { background-color: var(--color-zinc-800); border-color: var(--color-accent-500); color: var(--color-accent-300); opacity: 1; transform: scale(1); outline: none; } @media (pointer: coarse) { .tiptap-table-add-col, .tiptap-table-add-row { display: none; } } .tiptap-table-drop-indicator { position: absolute; background-color: var(--color-accent-500); box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-accent-500) 35%, transparent); border-radius: 1px; pointer-events: none; z-index: 30; } .tiptap .tableWrapper.is-dragging-table { cursor: grabbing; } /* Overlay: contextual table menu */ .tiptap-table-menu { display: flex; flex-direction: column; min-width: 180px; padding: 4px; background-color: var(--color-zinc-800); border: 1px solid var(--color-zinc-700); border-radius: 6px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45); z-index: 60; } .tiptap-table-menu-item { display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: none; border: none; border-radius: 4px; color: var(--color-zinc-300); font-size: 0.8125rem; text-align: left; cursor: pointer; transition: background-color 0.1s, color 0.1s; } .tiptap-table-menu-item:hover:not(:disabled), .tiptap-table-menu-item:focus-visible { background-color: var(--color-zinc-700); color: var(--color-zinc-100); outline: none; } .tiptap-table-menu-item:disabled { opacity: 0.4; cursor: not-allowed; } .tiptap-table-menu-item.is-danger { color: #f87171; } .tiptap-table-menu-item.is-danger:hover:not(:disabled), .tiptap-table-menu-item.is-danger:focus-visible { background-color: rgba(248, 113, 113, 0.1); color: #fca5a5; } .tiptap-table-menu-item-icon { display: flex; align-items: center; justify-content: center; width: 16px; color: var(--color-zinc-400); } .tiptap-table-menu-item:hover .tiptap-table-menu-item-icon, .tiptap-table-menu-item:focus-visible .tiptap-table-menu-item-icon { color: inherit; } .tiptap-table-menu-item-label { flex: 1; } .tiptap-table-menu-sep { height: 1px; background-color: var(--color-zinc-700); margin: 4px 0; }