Full document, spreadsheet, slideshow, and diagram tooling
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request 'feat(sheets): single-line tabs + freeze/hide in cell context menu' (#84) from feat/sheet-tabs-context-menu into main

scott b4a7a596 0475c697

+15
+7
src/css/app.css
··· 1994 1994 .sheet-tabs { 1995 1995 display: flex; 1996 1996 align-items: center; 1997 + flex-wrap: nowrap; 1997 1998 gap: 1px; 1998 1999 padding: var(--space-xs) var(--space-sm); 1999 2000 border-top: 1px solid var(--color-border); 2000 2001 background: var(--color-surface); 2001 2002 flex-shrink: 0; 2003 + overflow-x: auto; 2004 + overflow-y: hidden; 2005 + scrollbar-width: none; 2002 2006 } 2007 + .sheet-tabs::-webkit-scrollbar { display: none; } 2003 2008 2004 2009 .sheet-tab { 2005 2010 font-family: var(--font-body); ··· 2013 2018 cursor: pointer; 2014 2019 transition: all var(--transition-fast); 2015 2020 position: relative; 2021 + flex-shrink: 0; 2022 + white-space: nowrap; 2016 2023 } 2017 2024 .sheet-tab:hover { background: var(--color-hover); color: var(--color-text); } 2018 2025 .sheet-tab.active {
+8
src/sheets/main.ts
··· 4517 4517 { label: 'Delete Column', action: () => doDeleteColumn(col) }, 4518 4518 SEPARATOR, 4519 4519 { label: 'Clear Cells', action: () => deleteSelectedCells() }, 4520 + SEPARATOR, 4521 + { label: 'Hide Column ' + colToLetter(col), action: () => { selectedCell = { col, row }; selectionRange = { startCol: col, startRow: 1, endCol: col, endRow: rowCount }; hideSelectedCols(); } }, 4522 + { label: 'Hide Row ' + row, action: () => { selectedCell = { col: 1, row }; selectionRange = { startCol: 1, startRow: row, endCol: colCount, endRow: row }; hideSelectedRows(); } }, 4523 + ...(getFreezeCols() !== col ? [{ label: 'Freeze up to column ' + colToLetter(col), action: () => { setFreezeCols(col); renderGrid(); } }] : []), 4524 + ...(getFreezeCols() > 0 ? [{ label: 'Unfreeze Columns', action: () => { setFreezeCols(0); renderGrid(); } }] : []), 4525 + ...(getFreezeRows() !== row ? [{ label: 'Freeze at row ' + row, action: () => { setFreezeRows(row); renderGrid(); } }] : []), 4526 + ...(getFreezeRows() > 0 ? [{ label: 'Unfreeze Rows', action: () => { setFreezeRows(0); renderGrid(); } }] : []), 4527 + SEPARATOR, 4520 4528 { label: noteExists ? 'Edit Note' : 'Add Note', icon: '\uD83D\uDCDD', action: () => showNoteDialog(cid) }, 4521 4529 ...(noteExists ? [{ label: 'Delete Note', action: () => { setNoteInYjs(cid, null); renderNoteIndicators(); } }] : []), 4522 4530 ];