cat / 012
clone

a spreadsheet for the terminal: lotus 1-2-3 looks, google sheets keys and formulas, one go binary

Add a command palette that searches every command

Dami committed a893c00
Ctrl+K, Alt+/ (Sheets' "Search the menus") or Ctrl+Shift+P open a
search box over the grid listing every registered command with its
menu path and shortcut chip. Typing fuzzy-matches titles and menu paths
with sahilm/fuzzy and highlights the matched characters; Up/Down or the
mouse pick a result, Enter or a click runs it, Esc closes. Unavailable
commands stay listed but dimmed, and the status line says what the
highlighted command does.

Golden screens now ignore the foreground of blank cells, which isn't
visible and varied with how the renderer cleared them.
commit
a893c005940270149034acf83c947bb3845652cd
parent
f59a529b9025e20c88796cddd913f62404d25e6f
author
Dami <dami.etoile@gmail.com>
42 files changed, +1407 -770
Me2e/app_test.go4+-
Me2e/render_test.go15+-
Me2e/screens_test.go17+-
Me2e/shell_test.go12+
Me2e/testdata/screens/budget-light.html58+++---
Me2e/testdata/screens/budget.html58+++---
Me2e/testdata/screens/column-select.html58+++---
Me2e/testdata/screens/copy-marker-light.html60+++---
Me2e/testdata/screens/copy-marker-selected-light.html60+++---
Me2e/testdata/screens/copy-marker-selected.html60+++---
Me2e/testdata/screens/copy-marker.html60+++---
Me2e/testdata/screens/edit-error.html60+++---
Me2e/testdata/screens/entry-formula.html60+++---
Me2e/testdata/screens/error-goto.html58+++---
Me2e/testdata/screens/help-light.html24+-
Me2e/testdata/screens/help.html24+-
Me2e/testdata/screens/hover-resize-handle.html58+++---
Me2e/testdata/screens/menu-light.html50++--
Me2e/testdata/screens/menu.html50++--
Me2e/testdata/screens/narrow-copy.html32+-
Me2e/testdata/screens/narrow.html30+-
Ae2e/testdata/screens/palette-narrow.html16+
Ae2e/testdata/screens/palette-search-light.html30+++
Ae2e/testdata/screens/palette-search.html30+++
Ae2e/testdata/screens/palette.html30+++
Me2e/testdata/screens/point-range-light.html60+++---
Me2e/testdata/screens/point-range.html60+++---
Me2e/testdata/screens/prompt-width.html60+++---
Me2e/testdata/screens/quit-confirm-light.html60+++---
Me2e/testdata/screens/quit-confirm.html60+++---
Me2e/testdata/screens/ready-empty.html58+++---
Me2e/testdata/screens/resizing-column-light.html60+++---
Me2e/testdata/screens/resizing-column.html60+++---
Me2e/testdata/screens/selection-stats-light.html58+++---
Me2e/testdata/screens/selection-stats.html58+++---
Me2e/testdata/screens/undo-note.html58+++---
Mgo.mod1+
Mgo.sum4+
Minternal/ui/entry.go5+
Ainternal/ui/palette.go337++++++++++++++++++++++++++++++
Ainternal/ui/palette_test.go147+++++++++++++
Minternal/ui/shell_test.go17+-
M e2e/app_test.go +2 -2
M e2e/render_test.go +9 -6
@@ -64,7 +64,7 @@ func renderHTML(vt *ghostty.Terminal) (string, error) {
6464 }6565 css := ""6666 if st, err := ref.Style(); err == nil && !st.IsDefault() {67- css = styleCSS(st)67+ css = styleCSS(st, strings.TrimSpace(text) == "")6868 }6969 // Cells erased with a background color hold just that color.7070 switch tag, _ := cell.ContentTag(); tag {
@@ -88,25 +88,28 @@ func renderHTML(vt *ghostty.Terminal) (string, error) {
8888 return `<pre class="screen">` + strings.TrimRight(b.String(), "\n") + "</pre>", nil8989 }9090 91-func styleCSS(st *ghostty.Style) string {91+// styleCSS converts a cell style to CSS. For blank cells only what shows92+// is kept (background, lines), so snapshots don't depend on whether the93+// renderer wrote spaces or erased cells.94+func styleCSS(st *ghostty.Style, blank bool) string {9295 fg, bg := cssColor(st.FgColor(), ""), cssColor(st.BgColor(), "")9396 if st.Inverse() {9497 fg, bg = cmp.Or(bg, "var(--bg)"), cmp.Or(fg, "var(--fg)")9598 }9699 var parts []string97- if fg != "" {100+ if fg != "" && !blank {98101 parts = append(parts, "color:"+fg)99102 }100103 if bg != "" {101104 parts = append(parts, "background:"+bg)102105 }103- if st.Bold() {106+ if st.Bold() && !blank {104107 parts = append(parts, "font-weight:bold")105108 }106- if st.Italic() {109+ if st.Italic() && !blank {107110 parts = append(parts, "font-style:italic")108111 }109- if st.Faint() {112+ if st.Faint() && !blank {110113 parts = append(parts, "opacity:.6")111114 }112115 if u := st.Underline(); u != ghostty.UnderlineNone {
M e2e/screens_test.go +16 -1
M e2e/shell_test.go +12 -0
M e2e/testdata/screens/budget-light.html +29 -29
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> B7 </span> =SUM(B3:B5)1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">B7</span><span style="background:var(--vt-palette-7)"> </span> =SUM(B3:B5)33 4-<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> A </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 2 </span>7-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 3 </span> Rent 14508-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 4 </span> Groceries 612.49-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 5 </span> Transit 9610-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 7 </span> Total <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 2158.4 </span>12-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 8 </span>13-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 9 </span>14-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 10 </span>15-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 11 </span>16-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 12 </span>17-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 13 </span>18-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 14 </span>19-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 15 </span>20-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 16 </span>21-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 17 </span>22-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 18 </span>23-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 19 </span>24-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 20 </span>25-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 21 </span>26-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 22 </span>27-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 23 </span>28-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 24 </span>29-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 25 </span>30-untitled<span style="color:var(--vt-palette-0)"> modified</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Ctrl+/ </span> <span style="color:var(--vt-palette-0)">shortcuts</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> F10 </span> <span style="color:var(--vt-palette-0)">menu</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Ctrl+Q </span> <span style="color:var(--vt-palette-0)">quit</span></pre>\ No newline at end of file4+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">A</span><span style="background:var(--vt-palette-7)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">C</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">D</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">E</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">F</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">G</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">H</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">I</span><span style="background:var(--vt-palette-7)"> </span>5+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">1</span><span style="background:var(--vt-palette-7)"> </span> Household budget 20266+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">2</span><span style="background:var(--vt-palette-7)"> </span>7+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">3</span><span style="background:var(--vt-palette-7)"> </span> Rent 14508+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">4</span><span style="background:var(--vt-palette-7)"> </span> Groceries 612.49+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">5</span><span style="background:var(--vt-palette-7)"> </span> Transit 9610+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">6</span><span style="background:var(--vt-palette-7)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">7</span><span style="background:var(--vt-palette-6)"> </span> Total <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">2158.4</span><span style="background:var(--vt-palette-6)"> </span>12+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">8</span><span style="background:var(--vt-palette-7)"> </span>13+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">9</span><span style="background:var(--vt-palette-7)"> </span>14+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">10</span><span style="background:var(--vt-palette-7)"> </span>15+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">11</span><span style="background:var(--vt-palette-7)"> </span>16+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">12</span><span style="background:var(--vt-palette-7)"> </span>17+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">13</span><span style="background:var(--vt-palette-7)"> </span>18+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">14</span><span style="background:var(--vt-palette-7)"> </span>19+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">15</span><span style="background:var(--vt-palette-7)"> </span>20+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">16</span><span style="background:var(--vt-palette-7)"> </span>21+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">17</span><span style="background:var(--vt-palette-7)"> </span>22+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">18</span><span style="background:var(--vt-palette-7)"> </span>23+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">19</span><span style="background:var(--vt-palette-7)"> </span>24+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">20</span><span style="background:var(--vt-palette-7)"> </span>25+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">21</span><span style="background:var(--vt-palette-7)"> </span>26+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">22</span><span style="background:var(--vt-palette-7)"> </span>27+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">23</span><span style="background:var(--vt-palette-7)"> </span>28+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">24</span><span style="background:var(--vt-palette-7)"> </span>29+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">25</span><span style="background:var(--vt-palette-7)"> </span>30+untitled <span style="color:var(--vt-palette-0)">modified</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+/</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">shortcuts</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">F10</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">menu</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+Q</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">quit</span></pre>\ No newline at end of file
M e2e/testdata/screens/budget.html +29 -29
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> B7 </span> =SUM(B3:B5)1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B7</span><span style="background:var(--vt-palette-8)"> </span> =SUM(B3:B5)33 4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 2 </span>7-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 3 </span> Rent 14508-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 4 </span> Groceries 612.49-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 5 </span> Transit 9610-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 7 </span> Total <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 2158.4 </span>12-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 8 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 12 </span>17-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 13 </span>18-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 14 </span>19-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 15 </span>20-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 16 </span>21-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 17 </span>22-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 18 </span>23-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 19 </span>24-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 20 </span>25-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 21 </span>26-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 22 </span>27-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 23 </span>28-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 24 </span>29-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 25 </span>30-untitled<span style="color:var(--vt-palette-8)"> modified</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+/ </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> F10 </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+Q </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file4+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A</span><span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">1</span><span style="background:var(--vt-palette-8)"> </span> Household budget 20266+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">3</span><span style="background:var(--vt-palette-8)"> </span> Rent 14508+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">4</span><span style="background:var(--vt-palette-8)"> </span> Groceries 612.49+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">5</span><span style="background:var(--vt-palette-8)"> </span> Transit 9610+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">7</span><span style="background:var(--vt-palette-6)"> </span> Total <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">2158.4</span><span style="background:var(--vt-palette-6)"> </span>12+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+untitled <span style="color:var(--vt-palette-8)">modified</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+/</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F10</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Q</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file
M e2e/testdata/screens/column-select.html +29 -29
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> B1:B8192 </span> =SUM(B3:B5)1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B1:B8192</span><span style="background:var(--vt-palette-8)"> </span> =SUM(B3:B5)33 4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 1 </span> Household<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> budget 20</span>266-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 2 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>7-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 3 </span> Rent <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 1450 </span>8-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 4 </span> Groceries<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 612.4 </span>9-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 5 </span> Transit <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 96 </span>10-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 6 </span> Savings r<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 7 </span> Total <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 2158.4 </span>12-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 8 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>13-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 9 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>14-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 10 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>15-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 11 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>16-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 12 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>17-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 13 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>18-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 14 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>19-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 15 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>20-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 16 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>21-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 17 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>22-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 18 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>23-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 19 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>24-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 20 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>25-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 21 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>26-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 22 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>27-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 23 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>28-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 24 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>29-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 25 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> </span>30-untitled<span style="color:var(--vt-palette-8)"> modified</span> <span style="font-weight:bold">B1:B8192</span> <span style="color:var(--vt-palette-8)">Sum </span>4316.8 <span style="color:var(--vt-palette-8)">Avg </span>1079.2 <span style="color:var(--vt-palette-8)">Count </span>5</pre>\ No newline at end of file4+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A</span><span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">1</span><span style="background:var(--vt-palette-4)"> </span> Household<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">budget</span><span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">20</span>266+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">2</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>7+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">3</span><span style="background:var(--vt-palette-4)"> </span> Rent <span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">1450</span><span style="background:var(--vt-palette-4)"> </span>8+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">4</span><span style="background:var(--vt-palette-4)"> </span> Groceries<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">612.4</span><span style="background:var(--vt-palette-4)"> </span>9+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">5</span><span style="background:var(--vt-palette-4)"> </span> Transit <span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">96</span><span style="background:var(--vt-palette-4)"> </span>10+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">6</span><span style="background:var(--vt-palette-4)"> </span> Savings r<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">#DIV/0!</span><span style="background:var(--vt-palette-4)"> </span>11+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">7</span><span style="background:var(--vt-palette-6)"> </span> Total <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">2158.4</span><span style="background:var(--vt-palette-6)"> </span>12+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">8</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>13+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">9</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>14+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">10</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>15+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">11</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>16+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">12</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>17+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">13</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>18+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">14</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>19+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">15</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>20+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">16</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>21+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">17</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>22+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">18</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>23+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">19</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>24+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">20</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>25+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">21</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>26+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">22</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>27+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">23</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>28+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">24</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>29+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">25</span><span style="background:var(--vt-palette-4)"> </span> <span style="background:var(--vt-palette-4)"> </span>30+untitled <span style="color:var(--vt-palette-8)">modified</span> <span style="font-weight:bold">B1:B8192</span> <span style="color:var(--vt-palette-8)">Sum</span> 4316.8 <span style="color:var(--vt-palette-8)">Avg</span> 1079.2 <span style="color:var(--vt-palette-8)">Count</span> 5</pre>\ No newline at end of file
M e2e/testdata/screens/copy-marker-light.html +30 -30
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> C2 </span>3-Copied B3:B5 <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Ctrl+V </span> <span style="color:var(--vt-palette-0)">paste</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Ctrl+Shift+V </span> <span style="color:var(--vt-palette-0)">paste values</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Esc </span> <span style="color:var(--vt-palette-0)">clear</span>4-<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> A B </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> C </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> D E F G H I </span>5-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 2 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> </span>7-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 3 </span> Rent <span style="color:var(--vt-palette-5);text-decoration:underline"> </span><span style="color:var(--vt-palette-5);text-decoration:underline dashed">1450</span><span style="color:var(--vt-palette-5);text-decoration:underline"> </span>8-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 4 </span> Groceries<span style="color:var(--vt-palette-5);text-decoration:underline"> </span><span style="color:var(--vt-palette-5);text-decoration:underline dashed">612.4</span><span style="color:var(--vt-palette-5);text-decoration:underline"> </span>9-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 5 </span> Transit <span style="color:var(--vt-palette-5);text-decoration:underline"> </span><span style="color:var(--vt-palette-5);text-decoration:underline dashed">96</span><span style="color:var(--vt-palette-5);text-decoration:underline"> </span>10-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 7 </span> Total 2158.412-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 8 </span>13-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 9 </span>14-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 10 </span>15-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 11 </span>16-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 12 </span>17-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 13 </span>18-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 14 </span>19-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 15 </span>20-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 16 </span>21-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 17 </span>22-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 18 </span>23-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 19 </span>24-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 20 </span>25-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 21 </span>26-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 22 </span>27-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 23 </span>28-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 24 </span>29-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 25 </span>30-untitled<span style="color:var(--vt-palette-0)"> modified</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Ctrl+/ </span> <span style="color:var(--vt-palette-0)">shortcuts</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> F10 </span> <span style="color:var(--vt-palette-0)">menu</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Ctrl+Q </span> <span style="color:var(--vt-palette-0)">quit</span></pre>\ No newline at end of file1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">C2</span><span style="background:var(--vt-palette-7)"> </span>3+Copied B3:B5 <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+V</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">paste</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+Shift+V</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">paste</span> <span style="color:var(--vt-palette-0)">values</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Esc</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">clear</span>4+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">A</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">B</span><span style="background:var(--vt-palette-7)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">C</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">D</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">E</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">F</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">G</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">H</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">I</span><span style="background:var(--vt-palette-7)"> </span>5+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">1</span><span style="background:var(--vt-palette-7)"> </span> Household budget 20266+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">2</span><span style="background:var(--vt-palette-6)"> </span> <span style="background:var(--vt-palette-6)"> </span>7+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">3</span><span style="background:var(--vt-palette-7)"> </span> Rent <span style="text-decoration:underline"> </span><span style="color:var(--vt-palette-5);text-decoration:underline dashed">1450</span><span style="text-decoration:underline"> </span>8+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">4</span><span style="background:var(--vt-palette-7)"> </span> Groceries<span style="text-decoration:underline"> </span><span style="color:var(--vt-palette-5);text-decoration:underline dashed">612.4</span><span style="text-decoration:underline"> </span>9+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">5</span><span style="background:var(--vt-palette-7)"> </span> Transit <span style="text-decoration:underline"> </span><span style="color:var(--vt-palette-5);text-decoration:underline dashed">96</span><span style="text-decoration:underline"> </span>10+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">6</span><span style="background:var(--vt-palette-7)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">7</span><span style="background:var(--vt-palette-7)"> </span> Total 2158.412+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">8</span><span style="background:var(--vt-palette-7)"> </span>13+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">9</span><span style="background:var(--vt-palette-7)"> </span>14+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">10</span><span style="background:var(--vt-palette-7)"> </span>15+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">11</span><span style="background:var(--vt-palette-7)"> </span>16+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">12</span><span style="background:var(--vt-palette-7)"> </span>17+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">13</span><span style="background:var(--vt-palette-7)"> </span>18+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">14</span><span style="background:var(--vt-palette-7)"> </span>19+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">15</span><span style="background:var(--vt-palette-7)"> </span>20+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">16</span><span style="background:var(--vt-palette-7)"> </span>21+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">17</span><span style="background:var(--vt-palette-7)"> </span>22+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">18</span><span style="background:var(--vt-palette-7)"> </span>23+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">19</span><span style="background:var(--vt-palette-7)"> </span>24+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">20</span><span style="background:var(--vt-palette-7)"> </span>25+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">21</span><span style="background:var(--vt-palette-7)"> </span>26+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">22</span><span style="background:var(--vt-palette-7)"> </span>27+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">23</span><span style="background:var(--vt-palette-7)"> </span>28+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">24</span><span style="background:var(--vt-palette-7)"> </span>29+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">25</span><span style="background:var(--vt-palette-7)"> </span>30+untitled <span style="color:var(--vt-palette-0)">modified</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+/</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">shortcuts</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">F10</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">menu</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+Q</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">quit</span></pre>\ No newline at end of file
M e2e/testdata/screens/copy-marker-selected-light.html +30 -30
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> A3:B5 </span> Rent3-Cut A3:B5 <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Ctrl+V </span> <span style="color:var(--vt-palette-0)">move here</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Esc </span> <span style="color:var(--vt-palette-0)">cancel</span>4-<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> A </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4)"> B </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 2 </span>7-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 3 </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);text-decoration:underline"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);text-decoration:underline dashed">Rent</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);text-decoration:underline"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline dashed">1450</span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline"> </span>8-<span style="color:var(--vt-palette-15);background:var(--vt-palette-4)"> 4 </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline dashed">Groceries</span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline dashed">612.4</span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline"> </span>9-<span style="color:var(--vt-palette-15);background:var(--vt-palette-4)"> 5 </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline dashed">Transit</span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline dashed">96</span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline"> </span>10-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 7 </span> Total 2158.412-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 8 </span>13-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 9 </span>14-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 10 </span>15-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 11 </span>16-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 12 </span>17-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 13 </span>18-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 14 </span>19-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 15 </span>20-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 16 </span>21-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 17 </span>22-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 18 </span>23-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 19 </span>24-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 20 </span>25-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 21 </span>26-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 22 </span>27-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 23 </span>28-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 24 </span>29-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 25 </span>30-untitled<span style="color:var(--vt-palette-0)"> modified</span> <span style="font-weight:bold">A3:B5</span> <span style="color:var(--vt-palette-0)">Sum </span>2158.4 <span style="color:var(--vt-palette-0)">Avg </span>719.47 <span style="color:var(--vt-palette-0)">Count </span>6</pre>\ No newline at end of file1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">A3:B5</span><span style="background:var(--vt-palette-7)"> </span> Rent3+Cut A3:B5 <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+V</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">move</span> <span style="color:var(--vt-palette-0)">here</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Esc</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">cancel</span>4+<span style="background:var(--vt-palette-7)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">A</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4)">B</span><span style="background:var(--vt-palette-4)"> </span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">C</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">D</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">E</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">F</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">G</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">H</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">I</span><span style="background:var(--vt-palette-7)"> </span>5+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">1</span><span style="background:var(--vt-palette-7)"> </span> Household budget 20266+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">2</span><span style="background:var(--vt-palette-7)"> </span>7+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">3</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-6);text-decoration:underline"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);text-decoration:underline dashed">Rent</span><span style="background:var(--vt-palette-6);text-decoration:underline"> </span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline dashed">1450</span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span>8+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4)">4</span><span style="background:var(--vt-palette-4)"> </span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline dashed">Groceries</span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline dashed">612.4</span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span>9+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4)">5</span><span style="background:var(--vt-palette-4)"> </span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline dashed">Transit</span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4);text-decoration:underline dashed">96</span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span>10+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">6</span><span style="background:var(--vt-palette-7)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">7</span><span style="background:var(--vt-palette-7)"> </span> Total 2158.412+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">8</span><span style="background:var(--vt-palette-7)"> </span>13+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">9</span><span style="background:var(--vt-palette-7)"> </span>14+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">10</span><span style="background:var(--vt-palette-7)"> </span>15+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">11</span><span style="background:var(--vt-palette-7)"> </span>16+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">12</span><span style="background:var(--vt-palette-7)"> </span>17+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">13</span><span style="background:var(--vt-palette-7)"> </span>18+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">14</span><span style="background:var(--vt-palette-7)"> </span>19+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">15</span><span style="background:var(--vt-palette-7)"> </span>20+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">16</span><span style="background:var(--vt-palette-7)"> </span>21+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">17</span><span style="background:var(--vt-palette-7)"> </span>22+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">18</span><span style="background:var(--vt-palette-7)"> </span>23+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">19</span><span style="background:var(--vt-palette-7)"> </span>24+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">20</span><span style="background:var(--vt-palette-7)"> </span>25+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">21</span><span style="background:var(--vt-palette-7)"> </span>26+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">22</span><span style="background:var(--vt-palette-7)"> </span>27+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">23</span><span style="background:var(--vt-palette-7)"> </span>28+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">24</span><span style="background:var(--vt-palette-7)"> </span>29+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">25</span><span style="background:var(--vt-palette-7)"> </span>30+untitled <span style="color:var(--vt-palette-0)">modified</span> <span style="font-weight:bold">A3:B5</span> <span style="color:var(--vt-palette-0)">Sum</span> 2158.4 <span style="color:var(--vt-palette-0)">Avg</span> 719.47 <span style="color:var(--vt-palette-0)">Count</span> 6</pre>\ No newline at end of file
M e2e/testdata/screens/copy-marker-selected.html +30 -30
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A3:B5 </span> Rent3-Cut A3:B5 <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+V </span> <span style="color:var(--vt-palette-8)">move here</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Esc </span> <span style="color:var(--vt-palette-8)">cancel</span>4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> A </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> B </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 2 </span>7-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 3 </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);text-decoration:underline"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);text-decoration:underline dashed">Rent</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);text-decoration:underline"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline dashed">1450</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline"> </span>8-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 4 </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline dashed">Groceries</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline dashed">612.4</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline"> </span>9-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 5 </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline dashed">Transit</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline dashed">96</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline"> </span>10-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 7 </span> Total 2158.412-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 8 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 12 </span>17-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 13 </span>18-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 14 </span>19-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 15 </span>20-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 16 </span>21-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 17 </span>22-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 18 </span>23-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 19 </span>24-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 20 </span>25-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 21 </span>26-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 22 </span>27-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 23 </span>28-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 24 </span>29-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 25 </span>30-untitled<span style="color:var(--vt-palette-8)"> modified</span> <span style="font-weight:bold">A3:B5</span> <span style="color:var(--vt-palette-8)">Sum </span>2158.4 <span style="color:var(--vt-palette-8)">Avg </span>719.47 <span style="color:var(--vt-palette-8)">Count </span>6</pre>\ No newline at end of file1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A3:B5</span><span style="background:var(--vt-palette-8)"> </span> Rent3+Cut A3:B5 <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+V</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">move</span> <span style="color:var(--vt-palette-8)">here</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Esc</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">cancel</span>4+<span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">A</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">B</span><span style="background:var(--vt-palette-4)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">1</span><span style="background:var(--vt-palette-8)"> </span> Household budget 20266+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span>7+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">3</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-6);text-decoration:underline"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);text-decoration:underline dashed">Rent</span><span style="background:var(--vt-palette-6);text-decoration:underline"> </span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline dashed">1450</span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span>8+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">4</span><span style="background:var(--vt-palette-4)"> </span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline dashed">Groceries</span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline dashed">612.4</span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span>9+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">5</span><span style="background:var(--vt-palette-4)"> </span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline dashed">Transit</span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4);text-decoration:underline dashed">96</span><span style="background:var(--vt-palette-4);text-decoration:underline"> </span>10+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">7</span><span style="background:var(--vt-palette-8)"> </span> Total 2158.412+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+untitled <span style="color:var(--vt-palette-8)">modified</span> <span style="font-weight:bold">A3:B5</span> <span style="color:var(--vt-palette-8)">Sum</span> 2158.4 <span style="color:var(--vt-palette-8)">Avg</span> 719.47 <span style="color:var(--vt-palette-8)">Count</span> 6</pre>\ No newline at end of file
M e2e/testdata/screens/copy-marker.html +30 -30
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> C2 </span>3-Copied B3:B5 <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+V </span> <span style="color:var(--vt-palette-8)">paste</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+Shift+V </span> <span style="color:var(--vt-palette-8)">paste values</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Esc </span> <span style="color:var(--vt-palette-8)">clear</span>4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A B </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> C </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> D E F G H I </span>5-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 2 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> </span>7-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 3 </span> Rent <span style="color:var(--vt-palette-5);text-decoration:underline"> </span><span style="color:var(--vt-palette-5);text-decoration:underline dashed">1450</span><span style="color:var(--vt-palette-5);text-decoration:underline"> </span>8-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 4 </span> Groceries<span style="color:var(--vt-palette-5);text-decoration:underline"> </span><span style="color:var(--vt-palette-5);text-decoration:underline dashed">612.4</span><span style="color:var(--vt-palette-5);text-decoration:underline"> </span>9-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 5 </span> Transit <span style="color:var(--vt-palette-5);text-decoration:underline"> </span><span style="color:var(--vt-palette-5);text-decoration:underline dashed">96</span><span style="color:var(--vt-palette-5);text-decoration:underline"> </span>10-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 7 </span> Total 2158.412-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 8 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 12 </span>17-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 13 </span>18-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 14 </span>19-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 15 </span>20-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 16 </span>21-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 17 </span>22-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 18 </span>23-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 19 </span>24-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 20 </span>25-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 21 </span>26-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 22 </span>27-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 23 </span>28-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 24 </span>29-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 25 </span>30-untitled<span style="color:var(--vt-palette-8)"> modified</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+/ </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> F10 </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+Q </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C2</span><span style="background:var(--vt-palette-8)"> </span>3+Copied B3:B5 <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+V</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">paste</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Shift+V</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">paste</span> <span style="color:var(--vt-palette-8)">values</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Esc</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">clear</span>4+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B</span><span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">C</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">1</span><span style="background:var(--vt-palette-8)"> </span> Household budget 20266+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">2</span><span style="background:var(--vt-palette-6)"> </span> <span style="background:var(--vt-palette-6)"> </span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">3</span><span style="background:var(--vt-palette-8)"> </span> Rent <span style="text-decoration:underline"> </span><span style="color:var(--vt-palette-5);text-decoration:underline dashed">1450</span><span style="text-decoration:underline"> </span>8+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">4</span><span style="background:var(--vt-palette-8)"> </span> Groceries<span style="text-decoration:underline"> </span><span style="color:var(--vt-palette-5);text-decoration:underline dashed">612.4</span><span style="text-decoration:underline"> </span>9+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">5</span><span style="background:var(--vt-palette-8)"> </span> Transit <span style="text-decoration:underline"> </span><span style="color:var(--vt-palette-5);text-decoration:underline dashed">96</span><span style="text-decoration:underline"> </span>10+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">7</span><span style="background:var(--vt-palette-8)"> </span> Total 2158.412+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+untitled <span style="color:var(--vt-palette-8)">modified</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+/</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F10</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Q</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file
M e2e/testdata/screens/edit-error.html +30 -30
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> EDIT</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A1 </span> =SUM(A13-<span style="color:var(--vt-palette-3)">Expected , or ) in SUM</span>4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> A </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> B C D E F G H I </span>5-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 1 </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> =SUM(A1 </span>6-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 2 </span>7-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 3 </span>8-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 4 </span>9-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 5 </span>10-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span>11-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 7 </span>12-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 8 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 12 </span>17-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 13 </span>18-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 14 </span>19-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 15 </span>20-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 16 </span>21-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 17 </span>22-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 18 </span>23-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 19 </span>24-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 20 </span>25-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 21 </span>26-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 22 </span>27-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 23 </span>28-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 24 </span>29-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 25 </span>30-untitled <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+/ </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> F10 </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+Q </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">EDIT</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A1</span><span style="background:var(--vt-palette-8)"> </span> =SUM(A13+<span style="color:var(--vt-palette-3)">Expected</span> <span style="color:var(--vt-palette-3)">,</span> <span style="color:var(--vt-palette-3)">or</span> <span style="color:var(--vt-palette-3)">)</span> <span style="color:var(--vt-palette-3)">in</span> <span style="color:var(--vt-palette-3)">SUM</span>4+<span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">A</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">1</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">=SUM(A1</span><span style="background:var(--vt-palette-6)"> </span>6+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">3</span><span style="background:var(--vt-palette-8)"> </span>8+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">4</span><span style="background:var(--vt-palette-8)"> </span>9+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">5</span><span style="background:var(--vt-palette-8)"> </span>10+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span>11+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">7</span><span style="background:var(--vt-palette-8)"> </span>12+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+untitled <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+/</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F10</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Q</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file
M e2e/testdata/screens/entry-formula.html +30 -30
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> ENTER</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> B8 </span> =B7*123-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Enter </span> <span style="color:var(--vt-palette-8)">accept</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Tab </span> <span style="color:var(--vt-palette-8)">accept and go right</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Arrows </span> <span style="color:var(--vt-palette-8)">pick cells after an operator</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Esc </span> <span style="color:var(--vt-palette-8)">cancel</span>4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 2 </span>7-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 3 </span> Rent 14508-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 4 </span> Groceries 612.49-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 5 </span> Transit 9610-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 7 </span> Total 2158.412-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 8 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> =B7*12 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 12 </span>17-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 13 </span>18-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 14 </span>19-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 15 </span>20-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 16 </span>21-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 17 </span>22-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 18 </span>23-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 19 </span>24-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 20 </span>25-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 21 </span>26-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 22 </span>27-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 23 </span>28-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 24 </span>29-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 25 </span>30-untitled<span style="color:var(--vt-palette-8)"> modified</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+/ </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> F10 </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+Q </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">ENTER</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B8</span><span style="background:var(--vt-palette-8)"> </span> =B7*123+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Enter</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">accept</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Tab</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">accept</span> <span style="color:var(--vt-palette-8)">and</span> <span style="color:var(--vt-palette-8)">go</span> <span style="color:var(--vt-palette-8)">right</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Arrows</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">pick</span> <span style="color:var(--vt-palette-8)">cells</span> <span style="color:var(--vt-palette-8)">after</span> <span style="color:var(--vt-palette-8)">an</span> <span style="color:var(--vt-palette-8)">operator</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Esc</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">cancel</span>4+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A</span><span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">1</span><span style="background:var(--vt-palette-8)"> </span> Household budget 20266+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">3</span><span style="background:var(--vt-palette-8)"> </span> Rent 14508+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">4</span><span style="background:var(--vt-palette-8)"> </span> Groceries 612.49+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">5</span><span style="background:var(--vt-palette-8)"> </span> Transit 9610+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">7</span><span style="background:var(--vt-palette-8)"> </span> Total 2158.412+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">8</span><span style="background:var(--vt-palette-6)"> </span> <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">=B7*12</span><span style="background:var(--vt-palette-6)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+untitled <span style="color:var(--vt-palette-8)">modified</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+/</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F10</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Q</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file
M e2e/testdata/screens/error-goto.html +29 -29
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> ERROR</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A1 </span>1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">ERROR</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A1</span><span style="background:var(--vt-palette-8)"> </span>33 4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> A </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> B C D E F G H I </span>5-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 1 </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> </span>6-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 2 </span>7-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 3 </span>8-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 4 </span>9-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 5 </span>10-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span>11-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 7 </span>12-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 8 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 12 </span>17-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 13 </span>18-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 14 </span>19-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 15 </span>20-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 16 </span>21-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 17 </span>22-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 18 </span>23-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 19 </span>24-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 20 </span>25-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 21 </span>26-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 22 </span>27-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 23 </span>28-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 24 </span>29-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 25 </span>30-<span style="color:var(--vt-palette-9);font-weight:bold">Not a cell address: nope</span><span style="color:var(--vt-palette-8)"> press any key</span></pre>\ No newline at end of file4+<span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">A</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">1</span><span style="background:var(--vt-palette-6)"> </span>6+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">3</span><span style="background:var(--vt-palette-8)"> </span>8+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">4</span><span style="background:var(--vt-palette-8)"> </span>9+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">5</span><span style="background:var(--vt-palette-8)"> </span>10+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span>11+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">7</span><span style="background:var(--vt-palette-8)"> </span>12+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+<span style="color:var(--vt-palette-9);font-weight:bold">Not</span> <span style="color:var(--vt-palette-9);font-weight:bold">a</span> <span style="color:var(--vt-palette-9);font-weight:bold">cell</span> <span style="color:var(--vt-palette-9);font-weight:bold">address:</span> <span style="color:var(--vt-palette-9);font-weight:bold">nope</span> <span style="color:var(--vt-palette-8)">press</span> <span style="color:var(--vt-palette-8)">any</span> <span style="color:var(--vt-palette-8)">key</span></pre>\ No newline at end of file
M e2e/testdata/screens/help-light.html +12 -12
@@ -1,4 +1,4 @@
1-<pre class="screen"><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> HELP </span> Keyboard shortcuts <span style="color:var(--vt-palette-0)">(press any key to return)</span>1+<pre class="screen"><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">HELP</span><span style="background:var(--vt-palette-6)"> </span> Keyboard shortcuts <span style="color:var(--vt-palette-0)">(press</span> <span style="color:var(--vt-palette-0)">any</span> <span style="color:var(--vt-palette-0)">key</span> <span style="color:var(--vt-palette-0)">to</span> <span style="color:var(--vt-palette-0)">return)</span>22 33 Arrows Move Shift+arrows Select44 Ctrl+arrows Jump to the edge of the data (add Shift to select)
@@ -7,17 +7,17 @@
77 Mouse Click, drag or Shift+click to select; click headers88 for whole columns or rows; double-click to edit99 10- Del / Backspace Clear Ctrl+O Open11- Ctrl+C Copy Ctrl+V Paste12- Ctrl+X Cut Ctrl+Shift+V Paste values only13- Ctrl+Alt+- Delete rows or columns Ctrl+Q Quit14- Esc Deselect Ctrl+Shift+Z / Ctrl+Y Redo15- F2 / Enter Edit cell Ctrl+S Save16- Ctrl+D Fill down Ctrl+A Select all17- Ctrl+R Fill right Ctrl+Space Select columns18- Ctrl+G / F5 Go to Shift+Space Select rows19- Ctrl+Alt+= Insert rows or columns Ctrl+Z Undo20- F10 Menu10+ Del / Backspace Clear Ctrl+O Open11+ Ctrl+C Copy Ctrl+V Paste12+ Ctrl+X Cut Ctrl+Shift+V Paste values only13+ Ctrl+Alt+- Delete rows or columns Ctrl+Q Quit14+ Esc Deselect Ctrl+Shift+Z / Ctrl+Y Redo15+ F2 / Enter Edit cell Ctrl+S Save16+ Ctrl+D Fill down Ctrl+K / Ctrl+Shift+P / Alt+/Search the menus17+ Ctrl+R Fill right Ctrl+A Select all18+ Ctrl+G / F5 Go to Ctrl+Space Select columns19+ Ctrl+Alt+= Insert rows or columns Shift+Space Select rows20+ F10 Menu Ctrl+Z Undo2121 2222 Typing replaces the cell. Start with = for a formula, &#39; to force text.2323 While typing a formula, arrows after an operator pick cells.
M e2e/testdata/screens/help.html +12 -12
@@ -1,4 +1,4 @@
1-<pre class="screen"><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> HELP </span> Keyboard shortcuts <span style="color:var(--vt-palette-8)">(press any key to return)</span>1+<pre class="screen"><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">HELP</span><span style="background:var(--vt-palette-6)"> </span> Keyboard shortcuts <span style="color:var(--vt-palette-8)">(press</span> <span style="color:var(--vt-palette-8)">any</span> <span style="color:var(--vt-palette-8)">key</span> <span style="color:var(--vt-palette-8)">to</span> <span style="color:var(--vt-palette-8)">return)</span>22 33 Arrows Move Shift+arrows Select44 Ctrl+arrows Jump to the edge of the data (add Shift to select)
@@ -7,17 +7,17 @@
77 Mouse Click, drag or Shift+click to select; click headers88 for whole columns or rows; double-click to edit99 10- Del / Backspace Clear Ctrl+O Open11- Ctrl+C Copy Ctrl+V Paste12- Ctrl+X Cut Ctrl+Shift+V Paste values only13- Ctrl+Alt+- Delete rows or columns Ctrl+Q Quit14- Esc Deselect Ctrl+Shift+Z / Ctrl+Y Redo15- F2 / Enter Edit cell Ctrl+S Save16- Ctrl+D Fill down Ctrl+A Select all17- Ctrl+R Fill right Ctrl+Space Select columns18- Ctrl+G / F5 Go to Shift+Space Select rows19- Ctrl+Alt+= Insert rows or columns Ctrl+Z Undo20- F10 Menu10+ Del / Backspace Clear Ctrl+O Open11+ Ctrl+C Copy Ctrl+V Paste12+ Ctrl+X Cut Ctrl+Shift+V Paste values only13+ Ctrl+Alt+- Delete rows or columns Ctrl+Q Quit14+ Esc Deselect Ctrl+Shift+Z / Ctrl+Y Redo15+ F2 / Enter Edit cell Ctrl+S Save16+ Ctrl+D Fill down Ctrl+K / Ctrl+Shift+P / Alt+/Search the menus17+ Ctrl+R Fill right Ctrl+A Select all18+ Ctrl+G / F5 Go to Ctrl+Space Select columns19+ Ctrl+Alt+= Insert rows or columns Shift+Space Select rows20+ F10 Menu Ctrl+Z Undo2121 2222 Typing replaces the cell. Start with = for a formula, &#39; to force text.2323 While typing a formula, arrows after an operator pick cells.
M e2e/testdata/screens/hover-resize-handle.html +29 -29
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> B7 </span> =SUM(B3:B5)1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B7</span><span style="background:var(--vt-palette-8)"> </span> =SUM(B3:B5)33 4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-6);background:var(--vt-palette-8);font-weight:bold"> A ▐</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 2 </span>7-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 3 </span> Rent 14508-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 4 </span> Groceries 612.49-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 5 </span> Transit 9610-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 7 </span> Total <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 2158.4 </span>12-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 8 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 12 </span>17-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 13 </span>18-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 14 </span>19-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 15 </span>20-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 16 </span>21-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 17 </span>22-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 18 </span>23-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 19 </span>24-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 20 </span>25-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 21 </span>26-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 22 </span>27-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 23 </span>28-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 24 </span>29-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 25 </span>30-untitled<span style="color:var(--vt-palette-8)"> modified</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+/ </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> F10 </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+Q </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file4+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-6);background:var(--vt-palette-8);font-weight:bold">A</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-6);background:var(--vt-palette-8);font-weight:bold">▐</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">1</span><span style="background:var(--vt-palette-8)"> </span> Household budget 20266+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">3</span><span style="background:var(--vt-palette-8)"> </span> Rent 14508+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">4</span><span style="background:var(--vt-palette-8)"> </span> Groceries 612.49+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">5</span><span style="background:var(--vt-palette-8)"> </span> Transit 9610+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">7</span><span style="background:var(--vt-palette-6)"> </span> Total <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">2158.4</span><span style="background:var(--vt-palette-6)"> </span>12+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+untitled <span style="color:var(--vt-palette-8)">modified</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+/</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F10</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Q</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file
M e2e/testdata/screens/menu-light.html +25 -25
@@ -1,30 +1,30 @@
1-<pre class="screen"><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);text-decoration:underline">F</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">ile </span> <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> MENU</span><span style="background:var(--vt-palette-6)"> </span>1+<pre class="screen"><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);text-decoration:underline">F</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">ile</span><span style="background:var(--vt-palette-6)"> </span> <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">MENU</span><span style="background:var(--vt-palette-6)"> </span>22 <span style="color:var(--vt-palette-8)">┌────────────────────┐</span>)33 <span style="color:var(--vt-palette-8)">│</span> New <span style="color:var(--vt-palette-8)">│</span>4-<span style="color:var(--vt-palette-8)">│</span> Open <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Ctrl+O </span> <span style="color:var(--vt-palette-8)">│</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-8)">│</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> Save Ctrl+S </span><span style="color:var(--vt-palette-8)">│</span>t 20264+<span style="color:var(--vt-palette-8)">│</span> Open <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+O</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-8)">│</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">C</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">D</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">E</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">F</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">G</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">H</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">I</span><span style="background:var(--vt-palette-7)"> </span>5+<span style="color:var(--vt-palette-8)">│</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">Save</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">Ctrl+S</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-8)">│</span>t 202666 <span style="color:var(--vt-palette-8)">│</span> Save as <span style="color:var(--vt-palette-8)">│</span>77 <span style="color:var(--vt-palette-8)">├────────────────────┤</span>4508-<span style="color:var(--vt-palette-8)">│</span> Quit <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Ctrl+Q </span> <span style="color:var(--vt-palette-8)">│</span>2.48+<span style="color:var(--vt-palette-8)">│</span> Quit <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+Q</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-8)">│</span>2.499 <span style="color:var(--vt-palette-8)">└────────────────────┘</span> 9610-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 7 </span> Total <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 2158.4 </span>12-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 8 </span>13-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 9 </span>14-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 10 </span>15-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 11 </span>16-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 12 </span>17-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 13 </span>18-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 14 </span>19-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 15 </span>20-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 16 </span>21-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 17 </span>22-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 18 </span>23-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 19 </span>24-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 20 </span>25-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 21 </span>26-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 22 </span>27-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 23 </span>28-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 24 </span>29-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 25 </span>30-Save the sheet <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Arrows </span> <span style="color:var(--vt-palette-0)">move</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Enter </span> <span style="color:var(--vt-palette-0)">choose</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Esc </span> <span style="color:var(--vt-palette-0)">close</span></pre>\ No newline at end of file10+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">6</span><span style="background:var(--vt-palette-7)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">7</span><span style="background:var(--vt-palette-6)"> </span> Total <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">2158.4</span><span style="background:var(--vt-palette-6)"> </span>12+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">8</span><span style="background:var(--vt-palette-7)"> </span>13+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">9</span><span style="background:var(--vt-palette-7)"> </span>14+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">10</span><span style="background:var(--vt-palette-7)"> </span>15+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">11</span><span style="background:var(--vt-palette-7)"> </span>16+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">12</span><span style="background:var(--vt-palette-7)"> </span>17+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">13</span><span style="background:var(--vt-palette-7)"> </span>18+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">14</span><span style="background:var(--vt-palette-7)"> </span>19+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">15</span><span style="background:var(--vt-palette-7)"> </span>20+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">16</span><span style="background:var(--vt-palette-7)"> </span>21+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">17</span><span style="background:var(--vt-palette-7)"> </span>22+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">18</span><span style="background:var(--vt-palette-7)"> </span>23+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">19</span><span style="background:var(--vt-palette-7)"> </span>24+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">20</span><span style="background:var(--vt-palette-7)"> </span>25+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">21</span><span style="background:var(--vt-palette-7)"> </span>26+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">22</span><span style="background:var(--vt-palette-7)"> </span>27+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">23</span><span style="background:var(--vt-palette-7)"> </span>28+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">24</span><span style="background:var(--vt-palette-7)"> </span>29+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">25</span><span style="background:var(--vt-palette-7)"> </span>30+Save the sheet <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Arrows</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">move</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Enter</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">choose</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Esc</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">close</span></pre>\ No newline at end of file
M e2e/testdata/screens/menu.html +25 -25
@@ -1,30 +1,30 @@
1-<pre class="screen"><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);text-decoration:underline">F</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">ile </span> <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> MENU</span><span style="background:var(--vt-palette-6)"> </span>1+<pre class="screen"><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);text-decoration:underline">F</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">ile</span><span style="background:var(--vt-palette-6)"> </span> <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">MENU</span><span style="background:var(--vt-palette-6)"> </span>22 <span style="color:var(--vt-palette-8)">┌────────────────────┐</span>)33 <span style="color:var(--vt-palette-8)">│</span> New <span style="color:var(--vt-palette-8)">│</span>4-<span style="color:var(--vt-palette-8)">│</span> Open <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+O </span> <span style="color:var(--vt-palette-8)">│</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-8)">│</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> Save Ctrl+S </span><span style="color:var(--vt-palette-8)">│</span>t 20264+<span style="color:var(--vt-palette-8)">│</span> Open <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+O</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="color:var(--vt-palette-8)">│</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">Save</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">Ctrl+S</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-8)">│</span>t 202666 <span style="color:var(--vt-palette-8)">│</span> Save as <span style="color:var(--vt-palette-8)">│</span>77 <span style="color:var(--vt-palette-8)">├────────────────────┤</span>4508-<span style="color:var(--vt-palette-8)">│</span> Quit <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+Q </span> <span style="color:var(--vt-palette-8)">│</span>2.48+<span style="color:var(--vt-palette-8)">│</span> Quit <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Q</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>2.499 <span style="color:var(--vt-palette-8)">└────────────────────┘</span> 9610-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 7 </span> Total <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 2158.4 </span>12-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 8 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 12 </span>17-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 13 </span>18-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 14 </span>19-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 15 </span>20-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 16 </span>21-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 17 </span>22-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 18 </span>23-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 19 </span>24-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 20 </span>25-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 21 </span>26-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 22 </span>27-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 23 </span>28-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 24 </span>29-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 25 </span>30-Save the sheet <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Arrows </span> <span style="color:var(--vt-palette-8)">move</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Enter </span> <span style="color:var(--vt-palette-8)">choose</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Esc </span> <span style="color:var(--vt-palette-8)">close</span></pre>\ No newline at end of file10+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">7</span><span style="background:var(--vt-palette-6)"> </span> Total <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">2158.4</span><span style="background:var(--vt-palette-6)"> </span>12+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+Save the sheet <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Arrows</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">move</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Enter</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">choose</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Esc</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">close</span></pre>\ No newline at end of file
M e2e/testdata/screens/narrow-copy.html +16 -16
@@ -1,16 +1,16 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> B8 </span>3-Copied B7 <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+V </span> <span style="color:var(--vt-palette-8)">paste</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Esc </span> <span style="color:var(--vt-palette-8)">clear</span>4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> C D E </span>5-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 2 </span>7-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 3 </span> Rent 14508-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 4 </span> Groceries 612.49-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 5 </span> Transit 9610-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 7 </span> Total <span style="color:var(--vt-palette-5);text-decoration:underline"> </span><span style="color:var(--vt-palette-5);text-decoration:underline dashed">2158.4</span><span style="color:var(--vt-palette-5);text-decoration:underline"> </span>12-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 8 </span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-untitled<span style="color:var(--vt-palette-8)"> modified</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+/ </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> F10 </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+Q </span></pre>\ No newline at end of file1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B8</span><span style="background:var(--vt-palette-8)"> </span>3+Copied B7 <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+V</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">paste</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Esc</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">clear</span>4+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A</span><span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">1</span><span style="background:var(--vt-palette-8)"> </span> Household budget 20266+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">3</span><span style="background:var(--vt-palette-8)"> </span> Rent 14508+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">4</span><span style="background:var(--vt-palette-8)"> </span> Groceries 612.49+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">5</span><span style="background:var(--vt-palette-8)"> </span> Transit 9610+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">7</span><span style="background:var(--vt-palette-8)"> </span> Total <span style="text-decoration:underline"> </span><span style="color:var(--vt-palette-5);text-decoration:underline dashed">2158.4</span><span style="text-decoration:underline"> </span>12+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">8</span><span style="background:var(--vt-palette-6)"> </span> <span style="background:var(--vt-palette-6)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+untitled <span style="color:var(--vt-palette-8)">modified</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+/</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F10</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Q</span><span style="background:var(--vt-palette-8)"> </span></pre>\ No newline at end of file
M e2e/testdata/screens/narrow.html +15 -15
@@ -1,16 +1,16 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> B7 </span> =SUM(B3:B5)1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B7</span><span style="background:var(--vt-palette-8)"> </span> =SUM(B3:B5)33 4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> C D E </span>5-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 2 </span>7-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 3 </span> Rent 14508-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 4 </span> Groceries 612.49-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 5 </span> Transit 9610-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 7 </span> Total <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 2158.4 </span>12-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 8 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-untitled<span style="color:var(--vt-palette-8)"> modified</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+/ </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> F10 </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+Q </span></pre>\ No newline at end of file4+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A</span><span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">1</span><span style="background:var(--vt-palette-8)"> </span> Household budget 20266+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">3</span><span style="background:var(--vt-palette-8)"> </span> Rent 14508+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">4</span><span style="background:var(--vt-palette-8)"> </span> Groceries 612.49+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">5</span><span style="background:var(--vt-palette-8)"> </span> Transit 9610+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">7</span><span style="background:var(--vt-palette-6)"> </span> Total <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">2158.4</span><span style="background:var(--vt-palette-6)"> </span>12+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+untitled <span style="color:var(--vt-palette-8)">modified</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+/</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F10</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Q</span><span style="background:var(--vt-palette-8)"> </span></pre>\ No newline at end of file
A e2e/testdata/screens/palette-narrow.html +16 -0
@@ -0,0 +1,16 @@
1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">MENU</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B7</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-8)">┌─</span> <span style="font-weight:bold">Search</span> <span style="font-weight:bold">the</span> <span style="font-weight:bold">menus</span> <span style="color:var(--vt-palette-8)">───────────────────────────────┐</span>3+ <span style="color:var(--vt-palette-8)">│</span> <span style="font-weight:bold">›</span> sa <span style="color:var(--vt-palette-8)">│</span>4+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-8)">├──────────────────────────────────────────────────┤</span>5+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-8)">│</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold;text-decoration:underline">S</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">ave</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold;text-decoration:underline">a</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">s</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">File</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-8)">│</span>6+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-8)">│</span> <span style="color:var(--vt-palette-3);font-weight:bold">S</span>elect <span style="color:var(--vt-palette-3);font-weight:bold">a</span>ll <span style="color:var(--vt-palette-8)">Edit</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+A</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-8)">│</span> <span style="color:var(--vt-palette-3);font-weight:bold">Sa</span>ve <span style="color:var(--vt-palette-8)">File</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+S</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>8+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-8)">│</span> In<span style="color:var(--vt-palette-3);font-weight:bold">s</span>ert rows <span style="color:var(--vt-palette-3);font-weight:bold">a</span>bove <span style="color:var(--vt-palette-8)">Insert</span> <span style="color:var(--vt-palette-8)">│</span>9+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-8)">│</span> Pa<span style="color:var(--vt-palette-3);font-weight:bold">s</span>te v<span style="color:var(--vt-palette-3);font-weight:bold">a</span>lues only <span style="color:var(--vt-palette-8)">Edit</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Shift+V</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>10+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-8)">│</span> Re<span style="color:var(--vt-palette-3);font-weight:bold">s</span>et column width <span style="color:var(--vt-palette-8)">Form</span><span style="color:var(--vt-palette-3);font-weight:bold">a</span><span style="color:var(--vt-palette-8)">t</span> <span style="color:var(--vt-palette-8)">│</span>11+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-8)">└────────────────────────────────────────</span> <span style="color:var(--vt-palette-8)">6</span> <span style="color:var(--vt-palette-8)">of</span> <span style="color:var(--vt-palette-8)">32</span> <span style="color:var(--vt-palette-8)">─┘</span>12+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+Save the sheet under a new name</pre>\ No newline at end of file
A e2e/testdata/screens/palette-search-light.html +30 -0
@@ -0,0 +1,30 @@
1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">MENU</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">B7</span><span style="background:var(--vt-palette-7)"> </span> =SUM(B3:B5) <span style="color:var(--vt-palette-8)">┌─</span> <span style="font-weight:bold">Search</span> <span style="font-weight:bold">the</span> <span style="font-weight:bold">menus</span> <span style="color:var(--vt-palette-8)">───────────────────────────────┐</span>3+ <span style="color:var(--vt-palette-8)">│</span> <span style="font-weight:bold">›</span> col <span style="color:var(--vt-palette-8)">│</span>4+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">A</span><span style="background:var(--vt-palette-7)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-8)">├──────────────────────────────────────────────────┤</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">H</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">I</span><span style="background:var(--vt-palette-7)"> </span>5+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">1</span><span style="background:var(--vt-palette-7)"> </span> Household budget <span style="color:var(--vt-palette-8)">│</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold;text-decoration:underline">Col</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">umn</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">width</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">Format</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-8)">│</span>6+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">2</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-8)">│</span> Select <span style="color:var(--vt-palette-4);font-weight:bold">col</span>umns <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+Space</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-8)">│</span>7+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">3</span><span style="background:var(--vt-palette-7)"> </span> Rent 145<span style="color:var(--vt-palette-8)">│</span> Delete <span style="color:var(--vt-palette-4);font-weight:bold">col</span>umns <span style="color:var(--vt-palette-0)">Edit</span> <span style="color:var(--vt-palette-8)">│</span>8+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">4</span><span style="background:var(--vt-palette-7)"> </span> Groceries 612.<span style="color:var(--vt-palette-8)">│</span> Insert <span style="color:var(--vt-palette-4);font-weight:bold">co</span>lumns <span style="color:var(--vt-palette-4);font-weight:bold">l</span>eft <span style="color:var(--vt-palette-0)">Insert</span> <span style="color:var(--vt-palette-8)">│</span>9+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">5</span><span style="background:var(--vt-palette-7)"> </span> Transit 9<span style="color:var(--vt-palette-8)">│</span> Delete rows or <span style="color:var(--vt-palette-4);font-weight:bold">col</span>umns <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+Alt+-</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-8)">│</span>10+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">6</span><span style="background:var(--vt-palette-7)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span><span style="color:var(--vt-palette-8)">│</span> Insert rows or <span style="color:var(--vt-palette-4);font-weight:bold">col</span>umns <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+Alt+=</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-8)">│</span>11+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">7</span><span style="background:var(--vt-palette-6)"> </span> Total <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">2158.</span><span style="color:var(--vt-palette-8)">│</span> Reset <span style="color:var(--vt-palette-4);font-weight:bold">col</span>umn width <span style="color:var(--vt-palette-0)">Format</span> <span style="color:var(--vt-palette-8)">│</span>12+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">8</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-8)">│</span> Insert <span style="color:var(--vt-palette-4);font-weight:bold">col</span>umns right <span style="color:var(--vt-palette-0)">Insert</span> <span style="color:var(--vt-palette-8)">│</span>13+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">9</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-8)">└────────────────────────────────────────</span> <span style="color:var(--vt-palette-0)">8</span> <span style="color:var(--vt-palette-0)">of</span> <span style="color:var(--vt-palette-0)">32</span> <span style="color:var(--vt-palette-8)">─┘</span>14+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">10</span><span style="background:var(--vt-palette-7)"> </span>15+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">11</span><span style="background:var(--vt-palette-7)"> </span>16+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">12</span><span style="background:var(--vt-palette-7)"> </span>17+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">13</span><span style="background:var(--vt-palette-7)"> </span>18+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">14</span><span style="background:var(--vt-palette-7)"> </span>19+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">15</span><span style="background:var(--vt-palette-7)"> </span>20+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">16</span><span style="background:var(--vt-palette-7)"> </span>21+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">17</span><span style="background:var(--vt-palette-7)"> </span>22+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">18</span><span style="background:var(--vt-palette-7)"> </span>23+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">19</span><span style="background:var(--vt-palette-7)"> </span>24+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">20</span><span style="background:var(--vt-palette-7)"> </span>25+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">21</span><span style="background:var(--vt-palette-7)"> </span>26+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">22</span><span style="background:var(--vt-palette-7)"> </span>27+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">23</span><span style="background:var(--vt-palette-7)"> </span>28+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">24</span><span style="background:var(--vt-palette-7)"> </span>29+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">25</span><span style="background:var(--vt-palette-7)"> </span>30+Set the width of the selected columns <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Up/Down</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">move</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Enter</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">run</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Esc</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">close</span></pre>\ No newline at end of file
A e2e/testdata/screens/palette-search.html +30 -0
@@ -0,0 +1,30 @@
1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">MENU</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B7</span><span style="background:var(--vt-palette-8)"> </span> =SUM(B3:B5) <span style="color:var(--vt-palette-8)">┌─</span> <span style="font-weight:bold">Search</span> <span style="font-weight:bold">the</span> <span style="font-weight:bold">menus</span> <span style="color:var(--vt-palette-8)">───────────────────────────────┐</span>3+ <span style="color:var(--vt-palette-8)">│</span> <span style="font-weight:bold">›</span> col <span style="color:var(--vt-palette-8)">│</span>4+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A</span><span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-8)">├──────────────────────────────────────────────────┤</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">1</span><span style="background:var(--vt-palette-8)"> </span> Household budget <span style="color:var(--vt-palette-8)">│</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold;text-decoration:underline">Col</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">umn</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">width</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">Format</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-8)">│</span>6+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span> Select <span style="color:var(--vt-palette-3);font-weight:bold">col</span>umns <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Space</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">3</span><span style="background:var(--vt-palette-8)"> </span> Rent 145<span style="color:var(--vt-palette-8)">│</span> Delete <span style="color:var(--vt-palette-3);font-weight:bold">col</span>umns <span style="color:var(--vt-palette-8)">Edit</span> <span style="color:var(--vt-palette-8)">│</span>8+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">4</span><span style="background:var(--vt-palette-8)"> </span> Groceries 612.<span style="color:var(--vt-palette-8)">│</span> Insert <span style="color:var(--vt-palette-3);font-weight:bold">co</span>lumns <span style="color:var(--vt-palette-3);font-weight:bold">l</span>eft <span style="color:var(--vt-palette-8)">Insert</span> <span style="color:var(--vt-palette-8)">│</span>9+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">5</span><span style="background:var(--vt-palette-8)"> </span> Transit 9<span style="color:var(--vt-palette-8)">│</span> Delete rows or <span style="color:var(--vt-palette-3);font-weight:bold">col</span>umns <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Alt+-</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>10+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span><span style="color:var(--vt-palette-8)">│</span> Insert rows or <span style="color:var(--vt-palette-3);font-weight:bold">col</span>umns <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Alt+=</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>11+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">7</span><span style="background:var(--vt-palette-6)"> </span> Total <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">2158.</span><span style="color:var(--vt-palette-8)">│</span> Reset <span style="color:var(--vt-palette-3);font-weight:bold">col</span>umn width <span style="color:var(--vt-palette-8)">Format</span> <span style="color:var(--vt-palette-8)">│</span>12+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span> Insert <span style="color:var(--vt-palette-3);font-weight:bold">col</span>umns right <span style="color:var(--vt-palette-8)">Insert</span> <span style="color:var(--vt-palette-8)">│</span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">└────────────────────────────────────────</span> <span style="color:var(--vt-palette-8)">8</span> <span style="color:var(--vt-palette-8)">of</span> <span style="color:var(--vt-palette-8)">32</span> <span style="color:var(--vt-palette-8)">─┘</span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+Set the width of the selected columns <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Up/Down</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">move</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Enter</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">run</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Esc</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">close</span></pre>\ No newline at end of file
A e2e/testdata/screens/palette.html +30 -0
@@ -0,0 +1,30 @@
1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">MENU</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B7</span><span style="background:var(--vt-palette-8)"> </span> =SUM(B3:B5) <span style="color:var(--vt-palette-8)">┌─</span> <span style="font-weight:bold">Search</span> <span style="font-weight:bold">the</span> <span style="font-weight:bold">menus</span> <span style="color:var(--vt-palette-8)">───────────────────────────────┐</span>3+ <span style="color:var(--vt-palette-8)">│</span> <span style="font-weight:bold">›</span> <span style="color:var(--vt-palette-8)">Type</span> <span style="color:var(--vt-palette-8)">a</span> <span style="color:var(--vt-palette-8)">command,</span> <span style="color:var(--vt-palette-8)">e.g.</span> <span style="color:var(--vt-palette-8)">save</span> <span style="color:var(--vt-palette-8)">or</span> <span style="color:var(--vt-palette-8)">width</span> <span style="color:var(--vt-palette-8)">│</span>4+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A</span><span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-8)">├──────────────────────────────────────────────────┤</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">1</span><span style="background:var(--vt-palette-8)"> </span> Household budget <span style="color:var(--vt-palette-8)">│</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">New</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">File</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-8)">│</span>6+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span> Open <span style="color:var(--vt-palette-8)">File</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+O</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">3</span><span style="background:var(--vt-palette-8)"> </span> Rent 145<span style="color:var(--vt-palette-8)">│</span> Save <span style="color:var(--vt-palette-8)">File</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+S</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>8+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">4</span><span style="background:var(--vt-palette-8)"> </span> Groceries 612.<span style="color:var(--vt-palette-8)">│</span> Save as <span style="color:var(--vt-palette-8)">File</span> <span style="color:var(--vt-palette-8)">│</span>9+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">5</span><span style="background:var(--vt-palette-8)"> </span> Transit 9<span style="color:var(--vt-palette-8)">│</span> Quit <span style="color:var(--vt-palette-8)">File</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Q</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>10+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span><span style="color:var(--vt-palette-8)">│</span> Undo <span style="color:var(--vt-palette-8)">Edit</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Z</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>11+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">7</span><span style="background:var(--vt-palette-6)"> </span> Total <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">2158.</span><span style="color:var(--vt-palette-8)">│</span> Redo <span style="color:var(--vt-palette-8)">Edit</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Shift+Z</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>12+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span> Cut <span style="color:var(--vt-palette-8)">Edit</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+X</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span> Copy <span style="color:var(--vt-palette-8)">Edit</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+C</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span> Paste <span style="color:var(--vt-palette-8)">Edit</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+V</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span> Paste values only <span style="color:var(--vt-palette-8)">Edit</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Shift+V</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span> Fill down <span style="color:var(--vt-palette-8)">Edit</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+D</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">│</span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">└───────────────────────────────────────</span> <span style="color:var(--vt-palette-8)">32</span> <span style="color:var(--vt-palette-8)">of</span> <span style="color:var(--vt-palette-8)">32</span> <span style="color:var(--vt-palette-8)">─┘</span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+Start a new, empty sheet <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Up/Down</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">move</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Enter</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">run</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Esc</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">close</span></pre>\ No newline at end of file
M e2e/testdata/screens/point-range-light.html +30 -30
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> POINT</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> C7 </span> =AVERAGE(<span style="color:var(--vt-palette-15);background:var(--vt-palette-4)">B3:B5</span>3-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Arrows </span> <span style="color:var(--vt-palette-0)">pick a cell</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Shift+arrows </span> <span style="color:var(--vt-palette-0)">pick a range</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Enter </span> <span style="color:var(--vt-palette-0)">accept</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Esc </span> <span style="color:var(--vt-palette-0)">back</span>4-<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> A </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 2 </span>7-<span style="color:var(--vt-palette-15);background:var(--vt-palette-4)"> 3 </span> Rent <span style="color:var(--vt-palette-15);background:var(--vt-palette-4)"> 1450 </span>8-<span style="color:var(--vt-palette-15);background:var(--vt-palette-4)"> 4 </span> Groceries<span style="color:var(--vt-palette-15);background:var(--vt-palette-4)"> 612.4 </span>9-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 5 </span> Transit <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 96 </span>10-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 7 </span> Total 2158.412-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 8 </span>13-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 9 </span>14-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 10 </span>15-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 11 </span>16-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 12 </span>17-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 13 </span>18-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 14 </span>19-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 15 </span>20-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 16 </span>21-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 17 </span>22-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 18 </span>23-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 19 </span>24-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 20 </span>25-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 21 </span>26-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 22 </span>27-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 23 </span>28-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 24 </span>29-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 25 </span>30-untitled<span style="color:var(--vt-palette-0)"> modified</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Ctrl+/ </span> <span style="color:var(--vt-palette-0)">shortcuts</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> F10 </span> <span style="color:var(--vt-palette-0)">menu</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Ctrl+Q </span> <span style="color:var(--vt-palette-0)">quit</span></pre>\ No newline at end of file1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">POINT</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">C7</span><span style="background:var(--vt-palette-7)"> </span> =AVERAGE(<span style="color:var(--vt-palette-15);background:var(--vt-palette-4)">B3:B5</span>3+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Arrows</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">pick</span> <span style="color:var(--vt-palette-0)">a</span> <span style="color:var(--vt-palette-0)">cell</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Shift+arrows</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">pick</span> <span style="color:var(--vt-palette-0)">a</span> <span style="color:var(--vt-palette-0)">range</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Enter</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">accept</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Esc</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">back</span>4+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">A</span><span style="background:var(--vt-palette-7)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">C</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">D</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">E</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">F</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">G</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">H</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">I</span><span style="background:var(--vt-palette-7)"> </span>5+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">1</span><span style="background:var(--vt-palette-7)"> </span> Household budget 20266+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">2</span><span style="background:var(--vt-palette-7)"> </span>7+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4)">3</span><span style="background:var(--vt-palette-4)"> </span> Rent <span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4)">1450</span><span style="background:var(--vt-palette-4)"> </span>8+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4)">4</span><span style="background:var(--vt-palette-4)"> </span> Groceries<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4)">612.4</span><span style="background:var(--vt-palette-4)"> </span>9+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">5</span><span style="background:var(--vt-palette-6)"> </span> Transit <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">96</span><span style="background:var(--vt-palette-6)"> </span>10+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">6</span><span style="background:var(--vt-palette-7)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">7</span><span style="background:var(--vt-palette-7)"> </span> Total 2158.412+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">8</span><span style="background:var(--vt-palette-7)"> </span>13+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">9</span><span style="background:var(--vt-palette-7)"> </span>14+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">10</span><span style="background:var(--vt-palette-7)"> </span>15+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">11</span><span style="background:var(--vt-palette-7)"> </span>16+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">12</span><span style="background:var(--vt-palette-7)"> </span>17+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">13</span><span style="background:var(--vt-palette-7)"> </span>18+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">14</span><span style="background:var(--vt-palette-7)"> </span>19+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">15</span><span style="background:var(--vt-palette-7)"> </span>20+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">16</span><span style="background:var(--vt-palette-7)"> </span>21+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">17</span><span style="background:var(--vt-palette-7)"> </span>22+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">18</span><span style="background:var(--vt-palette-7)"> </span>23+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">19</span><span style="background:var(--vt-palette-7)"> </span>24+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">20</span><span style="background:var(--vt-palette-7)"> </span>25+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">21</span><span style="background:var(--vt-palette-7)"> </span>26+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">22</span><span style="background:var(--vt-palette-7)"> </span>27+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">23</span><span style="background:var(--vt-palette-7)"> </span>28+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">24</span><span style="background:var(--vt-palette-7)"> </span>29+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">25</span><span style="background:var(--vt-palette-7)"> </span>30+untitled <span style="color:var(--vt-palette-0)">modified</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+/</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">shortcuts</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">F10</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">menu</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+Q</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">quit</span></pre>\ No newline at end of file
M e2e/testdata/screens/point-range.html +30 -30
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> POINT</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> C7 </span> =AVERAGE(<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">B3:B5</span>3-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Arrows </span> <span style="color:var(--vt-palette-8)">pick a cell</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Shift+arrows </span> <span style="color:var(--vt-palette-8)">pick a range</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Enter </span> <span style="color:var(--vt-palette-8)">accept</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Esc </span> <span style="color:var(--vt-palette-8)">back</span>4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 2 </span>7-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 3 </span> Rent <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 1450 </span>8-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 4 </span> Groceries<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 612.4 </span>9-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 5 </span> Transit <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 96 </span>10-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 7 </span> Total 2158.412-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 8 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 12 </span>17-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 13 </span>18-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 14 </span>19-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 15 </span>20-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 16 </span>21-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 17 </span>22-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 18 </span>23-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 19 </span>24-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 20 </span>25-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 21 </span>26-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 22 </span>27-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 23 </span>28-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 24 </span>29-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 25 </span>30-untitled<span style="color:var(--vt-palette-8)"> modified</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+/ </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> F10 </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+Q </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">POINT</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C7</span><span style="background:var(--vt-palette-8)"> </span> =AVERAGE(<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">B3:B5</span>3+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Arrows</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">pick</span> <span style="color:var(--vt-palette-8)">a</span> <span style="color:var(--vt-palette-8)">cell</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Shift+arrows</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">pick</span> <span style="color:var(--vt-palette-8)">a</span> <span style="color:var(--vt-palette-8)">range</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Enter</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">accept</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Esc</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">back</span>4+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A</span><span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">1</span><span style="background:var(--vt-palette-8)"> </span> Household budget 20266+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span>7+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">3</span><span style="background:var(--vt-palette-4)"> </span> Rent <span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">1450</span><span style="background:var(--vt-palette-4)"> </span>8+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">4</span><span style="background:var(--vt-palette-4)"> </span> Groceries<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">612.4</span><span style="background:var(--vt-palette-4)"> </span>9+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">5</span><span style="background:var(--vt-palette-6)"> </span> Transit <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">96</span><span style="background:var(--vt-palette-6)"> </span>10+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">7</span><span style="background:var(--vt-palette-8)"> </span> Total 2158.412+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+untitled <span style="color:var(--vt-palette-8)">modified</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+/</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F10</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Q</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file
M e2e/testdata/screens/prompt-width.html +30 -30
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> WIDTH</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A1 </span> Household budget 20263-Column width (1-240): 13 <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Left/Right </span> <span style="color:var(--vt-palette-8)">adjust</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Enter </span> <span style="color:var(--vt-palette-8)">apply</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Esc </span> <span style="color:var(--vt-palette-8)">cancel</span>4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> A </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> B C D E F G H I </span>5-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 1 </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> Household bu</span>dget 20266-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 2 </span>7-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 3 </span> Rent 14508-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 4 </span> Groceries 612.49-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 5 </span> Transit 9610-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span> Savings rate<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 7 </span> Total 2158.412-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 8 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 12 </span>17-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 13 </span>18-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 14 </span>19-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 15 </span>20-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 16 </span>21-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 17 </span>22-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 18 </span>23-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 19 </span>24-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 20 </span>25-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 21 </span>26-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 22 </span>27-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 23 </span>28-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 24 </span>29-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 25 </span>30-untitled<span style="color:var(--vt-palette-8)"> modified</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+/ </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> F10 </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+Q </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">WIDTH</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A1</span><span style="background:var(--vt-palette-8)"> </span> Household budget 20263+Column width (1-240): 13 <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Left/Right</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">adjust</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Enter</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">apply</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Esc</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">cancel</span>4+<span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">A</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">1</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">Household</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">bu</span>dget 20266+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">3</span><span style="background:var(--vt-palette-8)"> </span> Rent 14508+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">4</span><span style="background:var(--vt-palette-8)"> </span> Groceries 612.49+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">5</span><span style="background:var(--vt-palette-8)"> </span> Transit 9610+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span> Savings rate <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">7</span><span style="background:var(--vt-palette-8)"> </span> Total 2158.412+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+untitled <span style="color:var(--vt-palette-8)">modified</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+/</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F10</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Q</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file
M e2e/testdata/screens/quit-confirm-light.html +30 -30
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> MENU</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> B7 </span> =SUM(B3:B5)3-<span style="color:var(--vt-palette-3)">You have unsaved changes.</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Enter </span> Save and quit <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> D </span> Discard <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Esc </span> Cancel4-<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> A </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 2 </span>7-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 3 </span> Rent 14508-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 4 </span> Groceries 612.49-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 5 </span> Transit 9610-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 7 </span> Total <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 2158.4 </span>12-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 8 </span>13-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 9 </span>14-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 10 </span>15-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 11 </span>16-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 12 </span>17-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 13 </span>18-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 14 </span>19-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 15 </span>20-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 16 </span>21-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 17 </span>22-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 18 </span>23-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 19 </span>24-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 20 </span>25-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 21 </span>26-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 22 </span>27-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 23 </span>28-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 24 </span>29-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 25 </span>30-untitled<span style="color:var(--vt-palette-0)"> modified</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Ctrl+/ </span> <span style="color:var(--vt-palette-0)">shortcuts</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> F10 </span> <span style="color:var(--vt-palette-0)">menu</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Ctrl+Q </span> <span style="color:var(--vt-palette-0)">quit</span></pre>\ No newline at end of file1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">MENU</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">B7</span><span style="background:var(--vt-palette-7)"> </span> =SUM(B3:B5)3+<span style="color:var(--vt-palette-3)">You</span> <span style="color:var(--vt-palette-3)">have</span> <span style="color:var(--vt-palette-3)">unsaved</span> <span style="color:var(--vt-palette-3)">changes.</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Enter</span><span style="background:var(--vt-palette-7)"> </span> Save and quit <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">D</span><span style="background:var(--vt-palette-7)"> </span> Discard <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Esc</span><span style="background:var(--vt-palette-7)"> </span> Cancel4+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">A</span><span style="background:var(--vt-palette-7)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">C</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">D</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">E</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">F</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">G</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">H</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">I</span><span style="background:var(--vt-palette-7)"> </span>5+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">1</span><span style="background:var(--vt-palette-7)"> </span> Household budget 20266+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">2</span><span style="background:var(--vt-palette-7)"> </span>7+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">3</span><span style="background:var(--vt-palette-7)"> </span> Rent 14508+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">4</span><span style="background:var(--vt-palette-7)"> </span> Groceries 612.49+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">5</span><span style="background:var(--vt-palette-7)"> </span> Transit 9610+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">6</span><span style="background:var(--vt-palette-7)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">7</span><span style="background:var(--vt-palette-6)"> </span> Total <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">2158.4</span><span style="background:var(--vt-palette-6)"> </span>12+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">8</span><span style="background:var(--vt-palette-7)"> </span>13+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">9</span><span style="background:var(--vt-palette-7)"> </span>14+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">10</span><span style="background:var(--vt-palette-7)"> </span>15+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">11</span><span style="background:var(--vt-palette-7)"> </span>16+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">12</span><span style="background:var(--vt-palette-7)"> </span>17+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">13</span><span style="background:var(--vt-palette-7)"> </span>18+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">14</span><span style="background:var(--vt-palette-7)"> </span>19+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">15</span><span style="background:var(--vt-palette-7)"> </span>20+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">16</span><span style="background:var(--vt-palette-7)"> </span>21+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">17</span><span style="background:var(--vt-palette-7)"> </span>22+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">18</span><span style="background:var(--vt-palette-7)"> </span>23+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">19</span><span style="background:var(--vt-palette-7)"> </span>24+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">20</span><span style="background:var(--vt-palette-7)"> </span>25+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">21</span><span style="background:var(--vt-palette-7)"> </span>26+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">22</span><span style="background:var(--vt-palette-7)"> </span>27+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">23</span><span style="background:var(--vt-palette-7)"> </span>28+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">24</span><span style="background:var(--vt-palette-7)"> </span>29+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">25</span><span style="background:var(--vt-palette-7)"> </span>30+untitled <span style="color:var(--vt-palette-0)">modified</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+/</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">shortcuts</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">F10</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">menu</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+Q</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">quit</span></pre>\ No newline at end of file
M e2e/testdata/screens/quit-confirm.html +30 -30
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> MENU</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> B7 </span> =SUM(B3:B5)3-<span style="color:var(--vt-palette-3)">You have unsaved changes.</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Enter </span> Save and quit <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> D </span> Discard <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Esc </span> Cancel4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 2 </span>7-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 3 </span> Rent 14508-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 4 </span> Groceries 612.49-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 5 </span> Transit 9610-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 7 </span> Total <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 2158.4 </span>12-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 8 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 12 </span>17-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 13 </span>18-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 14 </span>19-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 15 </span>20-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 16 </span>21-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 17 </span>22-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 18 </span>23-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 19 </span>24-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 20 </span>25-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 21 </span>26-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 22 </span>27-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 23 </span>28-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 24 </span>29-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 25 </span>30-untitled<span style="color:var(--vt-palette-8)"> modified</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+/ </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> F10 </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+Q </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">MENU</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B7</span><span style="background:var(--vt-palette-8)"> </span> =SUM(B3:B5)3+<span style="color:var(--vt-palette-3)">You</span> <span style="color:var(--vt-palette-3)">have</span> <span style="color:var(--vt-palette-3)">unsaved</span> <span style="color:var(--vt-palette-3)">changes.</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Enter</span><span style="background:var(--vt-palette-8)"> </span> Save and quit <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span> Discard <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Esc</span><span style="background:var(--vt-palette-8)"> </span> Cancel4+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A</span><span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">1</span><span style="background:var(--vt-palette-8)"> </span> Household budget 20266+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">3</span><span style="background:var(--vt-palette-8)"> </span> Rent 14508+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">4</span><span style="background:var(--vt-palette-8)"> </span> Groceries 612.49+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">5</span><span style="background:var(--vt-palette-8)"> </span> Transit 9610+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">7</span><span style="background:var(--vt-palette-6)"> </span> Total <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">2158.4</span><span style="background:var(--vt-palette-6)"> </span>12+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+untitled <span style="color:var(--vt-palette-8)">modified</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+/</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F10</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Q</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file
M e2e/testdata/screens/ready-empty.html +29 -29
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A1 </span>1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A1</span><span style="background:var(--vt-palette-8)"> </span>33 4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> A </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> B C D E F G H I </span>5-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 1 </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> </span>6-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 2 </span>7-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 3 </span>8-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 4 </span>9-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 5 </span>10-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span>11-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 7 </span>12-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 8 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 12 </span>17-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 13 </span>18-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 14 </span>19-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 15 </span>20-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 16 </span>21-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 17 </span>22-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 18 </span>23-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 19 </span>24-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 20 </span>25-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 21 </span>26-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 22 </span>27-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 23 </span>28-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 24 </span>29-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 25 </span>30-untitled <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+/ </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> F10 </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+Q </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file4+<span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">A</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">1</span><span style="background:var(--vt-palette-6)"> </span>6+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">3</span><span style="background:var(--vt-palette-8)"> </span>8+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">4</span><span style="background:var(--vt-palette-8)"> </span>9+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">5</span><span style="background:var(--vt-palette-8)"> </span>10+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span>11+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">7</span><span style="background:var(--vt-palette-8)"> </span>12+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+untitled <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+/</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F10</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Q</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file
M e2e/testdata/screens/resizing-column-light.html +30 -30
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> B7 </span> =SUM(B3:B5)3-<span style="font-weight:bold">Column A</span><span style="color:var(--vt-palette-0)"> width </span>16<span style="color:var(--vt-palette-0)"> double-click the border to fit</span>4-<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> A </span><span style="color:var(--vt-palette-6);background:var(--vt-palette-7);font-weight:bold">▐</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> C D E F G H </span>5-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 2 </span>7-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 3 </span> Rent 14508-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 4 </span> Groceries 612.49-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 5 </span> Transit 9610-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 6 </span> Savings rate <span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 7 </span> Total <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 2158.4 </span>12-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 8 </span>13-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 9 </span>14-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 10 </span>15-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 11 </span>16-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 12 </span>17-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 13 </span>18-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 14 </span>19-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 15 </span>20-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 16 </span>21-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 17 </span>22-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 18 </span>23-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 19 </span>24-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 20 </span>25-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 21 </span>26-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 22 </span>27-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 23 </span>28-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 24 </span>29-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 25 </span>30-untitled<span style="color:var(--vt-palette-0)"> modified</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Ctrl+/ </span> <span style="color:var(--vt-palette-0)">shortcuts</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> F10 </span> <span style="color:var(--vt-palette-0)">menu</span> <span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> Ctrl+Q </span> <span style="color:var(--vt-palette-0)">quit</span></pre>\ No newline at end of file1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">B7</span><span style="background:var(--vt-palette-7)"> </span> =SUM(B3:B5)3+<span style="font-weight:bold">Column</span> <span style="font-weight:bold">A</span> <span style="color:var(--vt-palette-0)">width</span> 16 <span style="color:var(--vt-palette-0)">double-click</span> <span style="color:var(--vt-palette-0)">the</span> <span style="color:var(--vt-palette-0)">border</span> <span style="color:var(--vt-palette-0)">to</span> <span style="color:var(--vt-palette-0)">fit</span>4+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">A</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-6);background:var(--vt-palette-7);font-weight:bold">▐</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">C</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">D</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">E</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">F</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">G</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">H</span><span style="background:var(--vt-palette-7)"> </span>5+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">1</span><span style="background:var(--vt-palette-7)"> </span> Household budget 20266+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">2</span><span style="background:var(--vt-palette-7)"> </span>7+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">3</span><span style="background:var(--vt-palette-7)"> </span> Rent 14508+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">4</span><span style="background:var(--vt-palette-7)"> </span> Groceries 612.49+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">5</span><span style="background:var(--vt-palette-7)"> </span> Transit 9610+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">6</span><span style="background:var(--vt-palette-7)"> </span> Savings rate <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">7</span><span style="background:var(--vt-palette-6)"> </span> Total <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">2158.4</span><span style="background:var(--vt-palette-6)"> </span>12+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">8</span><span style="background:var(--vt-palette-7)"> </span>13+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">9</span><span style="background:var(--vt-palette-7)"> </span>14+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">10</span><span style="background:var(--vt-palette-7)"> </span>15+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">11</span><span style="background:var(--vt-palette-7)"> </span>16+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">12</span><span style="background:var(--vt-palette-7)"> </span>17+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">13</span><span style="background:var(--vt-palette-7)"> </span>18+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">14</span><span style="background:var(--vt-palette-7)"> </span>19+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">15</span><span style="background:var(--vt-palette-7)"> </span>20+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">16</span><span style="background:var(--vt-palette-7)"> </span>21+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">17</span><span style="background:var(--vt-palette-7)"> </span>22+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">18</span><span style="background:var(--vt-palette-7)"> </span>23+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">19</span><span style="background:var(--vt-palette-7)"> </span>24+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">20</span><span style="background:var(--vt-palette-7)"> </span>25+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">21</span><span style="background:var(--vt-palette-7)"> </span>26+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">22</span><span style="background:var(--vt-palette-7)"> </span>27+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">23</span><span style="background:var(--vt-palette-7)"> </span>28+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">24</span><span style="background:var(--vt-palette-7)"> </span>29+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">25</span><span style="background:var(--vt-palette-7)"> </span>30+untitled <span style="color:var(--vt-palette-0)">modified</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+/</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">shortcuts</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">F10</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">menu</span> <span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">Ctrl+Q</span><span style="background:var(--vt-palette-7)"> </span> <span style="color:var(--vt-palette-0)">quit</span></pre>\ No newline at end of file
M e2e/testdata/screens/resizing-column.html +30 -30
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> B7 </span> =SUM(B3:B5)3-<span style="font-weight:bold">Column A</span><span style="color:var(--vt-palette-8)"> width </span>16<span style="color:var(--vt-palette-8)"> double-click the border to fit</span>4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A </span><span style="color:var(--vt-palette-6);background:var(--vt-palette-8);font-weight:bold">▐</span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> C D E F G H </span>5-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 2 </span>7-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 3 </span> Rent 14508-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 4 </span> Groceries 612.49-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 5 </span> Transit 9610-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span> Savings rate <span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 7 </span> Total <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 2158.4 </span>12-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 8 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 12 </span>17-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 13 </span>18-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 14 </span>19-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 15 </span>20-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 16 </span>21-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 17 </span>22-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 18 </span>23-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 19 </span>24-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 20 </span>25-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 21 </span>26-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 22 </span>27-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 23 </span>28-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 24 </span>29-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 25 </span>30-untitled<span style="color:var(--vt-palette-8)"> modified</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+/ </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> F10 </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> Ctrl+Q </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file1+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B7</span><span style="background:var(--vt-palette-8)"> </span> =SUM(B3:B5)3+<span style="font-weight:bold">Column</span> <span style="font-weight:bold">A</span> <span style="color:var(--vt-palette-8)">width</span> 16 <span style="color:var(--vt-palette-8)">double-click</span> <span style="color:var(--vt-palette-8)">the</span> <span style="color:var(--vt-palette-8)">border</span> <span style="color:var(--vt-palette-8)">to</span> <span style="color:var(--vt-palette-8)">fit</span>4+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-6);background:var(--vt-palette-8);font-weight:bold">▐</span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">1</span><span style="background:var(--vt-palette-8)"> </span> Household budget 20266+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">3</span><span style="background:var(--vt-palette-8)"> </span> Rent 14508+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">4</span><span style="background:var(--vt-palette-8)"> </span> Groceries 612.49+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">5</span><span style="background:var(--vt-palette-8)"> </span> Transit 9610+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span> Savings rate <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">7</span><span style="background:var(--vt-palette-6)"> </span> Total <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">2158.4</span><span style="background:var(--vt-palette-6)"> </span>12+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+untitled <span style="color:var(--vt-palette-8)">modified</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+/</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">shortcuts</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F10</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">menu</span> <span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">Ctrl+Q</span><span style="background:var(--vt-palette-8)"> </span> <span style="color:var(--vt-palette-8)">quit</span></pre>\ No newline at end of file
M e2e/testdata/screens/selection-stats-light.html +29 -29
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> B3:B5 </span> 14501+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">B3:B5</span><span style="background:var(--vt-palette-7)"> </span> 145033 4-<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> A </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 2 </span>7-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 3 </span> Rent <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 1450 </span>8-<span style="color:var(--vt-palette-15);background:var(--vt-palette-4)"> 4 </span> Groceries<span style="color:var(--vt-palette-15);background:var(--vt-palette-4)"> 612.4 </span>9-<span style="color:var(--vt-palette-15);background:var(--vt-palette-4)"> 5 </span> Transit <span style="color:var(--vt-palette-15);background:var(--vt-palette-4)"> 96 </span>10-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 7 </span> Total 2158.412-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 8 </span>13-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 9 </span>14-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 10 </span>15-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 11 </span>16-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 12 </span>17-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 13 </span>18-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 14 </span>19-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 15 </span>20-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 16 </span>21-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 17 </span>22-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 18 </span>23-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 19 </span>24-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 20 </span>25-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 21 </span>26-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 22 </span>27-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 23 </span>28-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 24 </span>29-<span style="color:var(--vt-palette-0);background:var(--vt-palette-7)"> 25 </span>30-untitled<span style="color:var(--vt-palette-0)"> modified</span> <span style="font-weight:bold">B3:B5</span> <span style="color:var(--vt-palette-0)">Sum </span>2158.4 <span style="color:var(--vt-palette-0)">Avg </span>719.47 <span style="color:var(--vt-palette-0)">Count </span>3</pre>\ No newline at end of file4+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">A</span><span style="background:var(--vt-palette-7)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">C</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">D</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">E</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">F</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">G</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">H</span><span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">I</span><span style="background:var(--vt-palette-7)"> </span>5+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">1</span><span style="background:var(--vt-palette-7)"> </span> Household budget 20266+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">2</span><span style="background:var(--vt-palette-7)"> </span>7+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">3</span><span style="background:var(--vt-palette-6)"> </span> Rent <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">1450</span><span style="background:var(--vt-palette-6)"> </span>8+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4)">4</span><span style="background:var(--vt-palette-4)"> </span> Groceries<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4)">612.4</span><span style="background:var(--vt-palette-4)"> </span>9+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4)">5</span><span style="background:var(--vt-palette-4)"> </span> Transit <span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-4)">96</span><span style="background:var(--vt-palette-4)"> </span>10+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">6</span><span style="background:var(--vt-palette-7)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">7</span><span style="background:var(--vt-palette-7)"> </span> Total 2158.412+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">8</span><span style="background:var(--vt-palette-7)"> </span>13+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">9</span><span style="background:var(--vt-palette-7)"> </span>14+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">10</span><span style="background:var(--vt-palette-7)"> </span>15+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">11</span><span style="background:var(--vt-palette-7)"> </span>16+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">12</span><span style="background:var(--vt-palette-7)"> </span>17+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">13</span><span style="background:var(--vt-palette-7)"> </span>18+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">14</span><span style="background:var(--vt-palette-7)"> </span>19+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">15</span><span style="background:var(--vt-palette-7)"> </span>20+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">16</span><span style="background:var(--vt-palette-7)"> </span>21+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">17</span><span style="background:var(--vt-palette-7)"> </span>22+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">18</span><span style="background:var(--vt-palette-7)"> </span>23+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">19</span><span style="background:var(--vt-palette-7)"> </span>24+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">20</span><span style="background:var(--vt-palette-7)"> </span>25+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">21</span><span style="background:var(--vt-palette-7)"> </span>26+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">22</span><span style="background:var(--vt-palette-7)"> </span>27+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">23</span><span style="background:var(--vt-palette-7)"> </span>28+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">24</span><span style="background:var(--vt-palette-7)"> </span>29+<span style="background:var(--vt-palette-7)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-7)">25</span><span style="background:var(--vt-palette-7)"> </span>30+untitled <span style="color:var(--vt-palette-0)">modified</span> <span style="font-weight:bold">B3:B5</span> <span style="color:var(--vt-palette-0)">Sum</span> 2158.4 <span style="color:var(--vt-palette-0)">Avg</span> 719.47 <span style="color:var(--vt-palette-0)">Count</span> 3</pre>\ No newline at end of file
M e2e/testdata/screens/selection-stats.html +29 -29
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> B3:B5 </span> 14501+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B3:B5</span><span style="background:var(--vt-palette-8)"> </span> 145033 4-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 2 </span>7-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 3 </span> Rent <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 1450 </span>8-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 4 </span> Groceries<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 612.4 </span>9-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 5 </span> Transit <span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 96 </span>10-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 6 </span> Savings r<span style="color:var(--vt-palette-1)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 7 </span> Total 2158.412-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 8 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 12 </span>17-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 13 </span>18-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 14 </span>19-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 15 </span>20-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 16 </span>21-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 17 </span>22-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 18 </span>23-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 19 </span>24-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 20 </span>25-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 21 </span>26-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 22 </span>27-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 23 </span>28-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 24 </span>29-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 25 </span>30-untitled<span style="color:var(--vt-palette-8)"> modified</span> <span style="font-weight:bold">B3:B5</span> <span style="color:var(--vt-palette-8)">Sum </span>2158.4 <span style="color:var(--vt-palette-8)">Avg </span>719.47 <span style="color:var(--vt-palette-8)">Count </span>3</pre>\ No newline at end of file4+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A</span><span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">1</span><span style="background:var(--vt-palette-8)"> </span> Household budget 20266+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span>7+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">3</span><span style="background:var(--vt-palette-6)"> </span> Rent <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">1450</span><span style="background:var(--vt-palette-6)"> </span>8+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">4</span><span style="background:var(--vt-palette-4)"> </span> Groceries<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">612.4</span><span style="background:var(--vt-palette-4)"> </span>9+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">5</span><span style="background:var(--vt-palette-4)"> </span> Transit <span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">96</span><span style="background:var(--vt-palette-4)"> </span>10+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">6</span><span style="background:var(--vt-palette-8)"> </span> Savings r <span style="color:var(--vt-palette-1)">#DIV/0!</span>11+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">7</span><span style="background:var(--vt-palette-8)"> </span> Total 2158.412+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+untitled <span style="color:var(--vt-palette-8)">modified</span> <span style="font-weight:bold">B3:B5</span> <span style="color:var(--vt-palette-8)">Sum</span> 2158.4 <span style="color:var(--vt-palette-8)">Avg</span> 719.47 <span style="color:var(--vt-palette-8)">Count</span> 3</pre>\ No newline at end of file
M e2e/testdata/screens/undo-note.html +29 -29
@@ -1,30 +1,30 @@
1-<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> READY</span><span style="background:var(--vt-palette-6)"> </span>2-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> B5:B6 </span> 961+<pre class="screen"> <span style="text-decoration:underline">F</span>ile <span style="text-decoration:underline">E</span>dit <span style="text-decoration:underline">V</span>iew <span style="text-decoration:underline">I</span>nsert F<span style="text-decoration:underline">o</span>rmat <span style="text-decoration:underline">H</span>elp <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">READY</span><span style="background:var(--vt-palette-6)"> </span>2+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">B5:B6</span><span style="background:var(--vt-palette-8)"> </span> 9633 Undid: clear B5:B64-<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> A </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> B </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> C D E F G H I </span>5-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 1 </span> Household budget 20266-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 2 </span>7-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 3 </span> Rent 14508-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 4 </span> Groceries 612.49-<span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold"> 5 </span> Transit <span style="color:var(--vt-palette-0);background:var(--vt-palette-6)"> 96 </span>10-<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> 6 </span> Savings r<span style="color:var(--vt-palette-0);background:var(--vt-palette-4)"> #DIV/0! </span>11-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 7 </span> Total 2158.412-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 8 </span>13-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 9 </span>14-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 10 </span>15-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 11 </span>16-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 12 </span>17-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 13 </span>18-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 14 </span>19-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 15 </span>20-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 16 </span>21-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 17 </span>22-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 18 </span>23-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 19 </span>24-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 20 </span>25-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 21 </span>26-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 22 </span>27-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 23 </span>28-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 24 </span>29-<span style="color:var(--vt-palette-15);background:var(--vt-palette-8)"> 25 </span>30-untitled<span style="color:var(--vt-palette-8)"> modified</span> <span style="font-weight:bold">B5:B6</span> <span style="color:var(--vt-palette-8)">Sum </span>96 <span style="color:var(--vt-palette-8)">Avg </span>96 <span style="color:var(--vt-palette-8)">Count </span>2</pre>\ No newline at end of file4+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">A</span><span style="background:var(--vt-palette-8)"> </span><span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">B</span><span style="background:var(--vt-palette-6)"> </span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">C</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">D</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">E</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">F</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">G</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">H</span><span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">I</span><span style="background:var(--vt-palette-8)"> </span>5+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">1</span><span style="background:var(--vt-palette-8)"> </span> Household budget 20266+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">2</span><span style="background:var(--vt-palette-8)"> </span>7+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">3</span><span style="background:var(--vt-palette-8)"> </span> Rent 14508+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">4</span><span style="background:var(--vt-palette-8)"> </span> Groceries 612.49+<span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6);font-weight:bold">5</span><span style="background:var(--vt-palette-6)"> </span> Transit <span style="background:var(--vt-palette-6)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-6)">96</span><span style="background:var(--vt-palette-6)"> </span>10+<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">6</span><span style="background:var(--vt-palette-4)"> </span> Savings r<span style="background:var(--vt-palette-4)"> </span><span style="color:var(--vt-palette-0);background:var(--vt-palette-4)">#DIV/0!</span><span style="background:var(--vt-palette-4)"> </span>11+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">7</span><span style="background:var(--vt-palette-8)"> </span> Total 2158.412+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">8</span><span style="background:var(--vt-palette-8)"> </span>13+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">9</span><span style="background:var(--vt-palette-8)"> </span>14+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">10</span><span style="background:var(--vt-palette-8)"> </span>15+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">11</span><span style="background:var(--vt-palette-8)"> </span>16+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">12</span><span style="background:var(--vt-palette-8)"> </span>17+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">13</span><span style="background:var(--vt-palette-8)"> </span>18+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">14</span><span style="background:var(--vt-palette-8)"> </span>19+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">15</span><span style="background:var(--vt-palette-8)"> </span>20+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">16</span><span style="background:var(--vt-palette-8)"> </span>21+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">17</span><span style="background:var(--vt-palette-8)"> </span>22+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">18</span><span style="background:var(--vt-palette-8)"> </span>23+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">19</span><span style="background:var(--vt-palette-8)"> </span>24+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">20</span><span style="background:var(--vt-palette-8)"> </span>25+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">21</span><span style="background:var(--vt-palette-8)"> </span>26+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">22</span><span style="background:var(--vt-palette-8)"> </span>27+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">23</span><span style="background:var(--vt-palette-8)"> </span>28+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">24</span><span style="background:var(--vt-palette-8)"> </span>29+<span style="background:var(--vt-palette-8)"> </span><span style="color:var(--vt-palette-15);background:var(--vt-palette-8)">25</span><span style="background:var(--vt-palette-8)"> </span>30+untitled <span style="color:var(--vt-palette-8)">modified</span> <span style="font-weight:bold">B5:B6</span> <span style="color:var(--vt-palette-8)">Sum</span> 96 <span style="color:var(--vt-palette-8)">Avg</span> 96 <span style="color:var(--vt-palette-8)">Count</span> 2</pre>\ No newline at end of file
M go.mod +1 -0
M go.sum +4 -0
@@ -22,6 +22,8 @@ github.com/clipperhouse/displaywidth v0.11.0 h1:lBc6kY44VFw+TDx4I8opi/EtL9m20WSE
2222 github.com/clipperhouse/displaywidth v0.11.0/go.mod h1:bkrFNkf81G8HyVqmKGxsPufD3JhNl3dSqnGhOoSD/o0=2323 github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk=2424 github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM=25+github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=26+github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=2527 github.com/lucasb-eyer/go-colorful v1.4.1 h1:1EO+WB73+EH8EVbzlrG3KLAfEypQWVHIBqlTf+2hNss=2628 github.com/lucasb-eyer/go-colorful v1.4.1/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=2729 github.com/mattn/go-runewidth v0.0.24 h1:cpokDiIn0MGnhdHwuWnJBITySJ20QyNGnY2kR/ay2DU=
@@ -30,6 +32,8 @@ github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELU
3032 github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=3133 github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=3234 github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=35+github.com/sahilm/fuzzy v0.1.3 h1:juByESSS32nVD81vr6tHmKmA/8zde7gE+x5CLxrzXPU=36+github.com/sahilm/fuzzy v0.1.3/go.mod h1:au6//VbVSqu6DFrkL2CfjlJ5iURpNCPeE+1GwY3XsT8=3337 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no=3438 github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=3539 golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI=
M internal/ui/entry.go +5 -0
A internal/ui/palette.go +337 -0
@@ -0,0 +1,337 @@
1+package ui2+3+import (4+ "cmp"5+ "slices"6+ "strconv"7+ "strings"8+9+ tea "charm.land/bubbletea/v2"10+ "charm.land/lipgloss/v2"11+ "github.com/charmbracelet/x/ansi"12+ "github.com/sahilm/fuzzy"13+)14+15+// The command palette ("Search the menus" in Sheets, Alt+/) finds any16+// registered command by fuzzy matching its title and menu path, and shows17+// its shortcut. The function list uses the same picker.18+19+func init() {20+ register(&command{id: "palette", title: "Search the menus", desc: "Find and run any command by name", run: func(m *Model) tea.Cmd {21+ m.openOverlay(newPicker(m, "Search the menus", "Type a command, e.g. save or width", 76, paletteItems(m)))22+ return nil23+ }})24+ for _, k := range []string{"alt+/", "ctrl+k", "ctrl+shift+p"} {25+ keymap[k] = "palette"26+ }27+}28+29+// paletteItems lists every command: those in menus first, in menu order30+// with their menu path, then the rest by title.31+func paletteItems(m *Model) []pickItem {32+ var items []pickItem33+ seen := map[string]bool{"palette": true}34+ add := func(id, path string) {35+ if seen[id] {36+ return37+ }38+ seen[id] = true39+ c := commands[id]40+ items = append(items, pickItem{41+ title: c.title, name: len(c.title), detail: path, key: shortcut(id), desc: c.desc,42+ off: !c.available(m), pick: func(m *Model) tea.Cmd { return m.runFromOverlay(id) },43+ })44+ }45+ var walk func(items []menuItem, path string)46+ walk = func(items []menuItem, path string) {47+ for _, it := range items {48+ switch {49+ case it.items != nil:50+ walk(it.items, path+" › "+it.label())51+ case !it.sep:52+ add(it.cmd, path)53+ }54+ }55+ }56+ for _, d := range menuBar {57+ walk(visibleItems(d.items), d.title)58+ }59+ rest := make([]string, 0, len(commands))60+ for id := range commands {61+ rest = append(rest, id)62+ }63+ slices.SortFunc(rest, func(a, b string) int { return cmp.Compare(commands[a].title, commands[b].title) })64+ for _, id := range rest {65+ add(id, "")66+ }67+ return items68+}69+70+// pickItem is one row of a picker.71+type pickItem struct {72+ title string // e.g. "Save as"73+ name int // bytes of title that are searched, e.g. just "SUM" of "SUM(value, ...)"74+ detail string // a dimmed second column, also searched, e.g. the menu path75+ key string // shortcut, shown as a key chip76+ desc string // what it does, for the status line77+ off bool // unavailable right now78+ pick func(m *Model) tea.Cmd79+}80+81+// haystack is what a search matches against.82+func (it pickItem) haystack() string { return it.title[:it.name] + " " + it.detail }83+84+// pickMatch is an item that matches the search, with the matched byte85+// offsets in its title and detail.86+type pickMatch struct {87+ item *pickItem88+ inTitle, inDesc []int89+}90+91+// picker is a searchable list in a box, in the manner of fzf: a search92+// field on top, results below with matched characters highlighted, and93+// the highlighted result's description on the status line. The search is94+// edited in m.buf with the usual line-editing keys.95+type picker struct {96+ title string97+ placeholder string98+ maxW int99+ items []pickItem100+ shown []pickMatch101+ list102+}103+104+const (105+ pickerID = "picker"106+ searchPrompt = " › "107+)108+109+func newPicker(m *Model, title, placeholder string, maxW int, items []pickItem) *picker {110+ p := &picker{title: title, placeholder: placeholder, maxW: maxW, items: items}111+ m.buf, m.bufPos = nil, 0112+ p.changed(m)113+ return p114+}115+116+func (p *picker) indicator() string { return "MENU" }117+118+// changed filters the items by the search. Best matches come first; ties119+// keep menu order.120+func (p *picker) changed(m *Model) {121+ p.sel, p.top = 0, 0122+ p.shown = p.shown[:0]123+ q := strings.TrimSpace(string(m.buf))124+ if q == "" {125+ for i := range p.items {126+ p.shown = append(p.shown, pickMatch{item: &p.items[i]})127+ }128+ return129+ }130+ hay := make([]string, len(p.items))131+ for i, it := range p.items {132+ hay[i] = it.haystack()133+ }134+ matches := fuzzy.FindNoSort(q, hay)135+ slices.SortStableFunc(matches, func(a, b fuzzy.Match) int { return cmp.Compare(b.Score, a.Score) })136+ for _, mt := range matches {137+ it := &p.items[mt.Index]138+ pm := pickMatch{item: it}139+ for _, i := range mt.MatchedIndexes {140+ switch {141+ case i < it.name:142+ pm.inTitle = append(pm.inTitle, i)143+ case i >= it.name+2:144+ pm.inDesc = append(pm.inDesc, i-it.name-2)145+ }146+ }147+ p.shown = append(p.shown, pm)148+ }149+}150+151+func (p *picker) key(m *Model, k tea.KeyPressMsg) tea.Cmd {152+ rows := p.rows(m)153+ switch k.String() {154+ case "up", "ctrl+p", "shift+tab":155+ p.move(-1, len(p.shown))156+ case "down", "ctrl+n", "tab":157+ p.move(1, len(p.shown))158+ case "pgup":159+ p.sel = max(p.sel-rows, 0)160+ case "pgdown":161+ p.sel = max(min(p.sel+rows, len(p.shown)-1), 0)162+ case "enter":163+ return p.pick(m)164+ case "esc":165+ m.closeOverlay()166+ default:167+ before := string(m.buf)168+ m.lineKey(k)169+ if string(m.buf) != before {170+ p.changed(m)171+ }172+ }173+ return nil174+}175+176+func (p *picker) pick(m *Model) tea.Cmd {177+ if p.sel >= len(p.shown) || p.shown[p.sel].item.off {178+ return nil179+ }180+ return p.shown[p.sel].item.pick(m)181+}182+183+// Rows of the box: the top border, the search field, a separator, then184+// the results.185+const pickerFirstRow = 3186+187+func (p *picker) mouse(m *Model, e mouseEvent) tea.Cmd {188+ if e.box != pickerID {189+ if e.kind == mousePress {190+ m.closeOverlay()191+ }192+ return nil193+ }194+ i := p.top + e.row - pickerFirstRow195+ switch {196+ case e.kind == mouseWheel && e.button == tea.MouseWheelUp:197+ p.move(-1, len(p.shown))198+ case e.kind == mouseWheel && e.button == tea.MouseWheelDown:199+ p.move(1, len(p.shown))200+ case e.row < pickerFirstRow || i >= len(p.shown) || i >= p.top+p.rows(m):201+ case e.kind == mouseMotion:202+ p.sel = i203+ case e.kind == mousePress && e.button == tea.MouseLeft:204+ p.sel = i205+ return p.pick(m)206+ }207+ return nil208+}209+210+func (p *picker) status(m *Model) (string, string) {211+ keys := m.keyHints("Up/Down", "move", "Enter", "run", "Esc", "close")212+ if p.sel >= len(p.shown) {213+ return "", keys214+ }215+ it := p.shown[p.sel].item216+ if it.off {217+ return it.desc + " (not available now)", keys218+ }219+ return it.desc, keys220+}221+222+// rows is how many results show. The box shrinks from the bottom as the223+// search narrows, so the search field never moves, and it leaves the224+// status line visible.225+func (p *picker) rows(m *Model) int {226+ return max(min(len(p.shown), 12, m.height-1-menuLine-1-4), 1)227+}228+229+func (p *picker) box(m *Model) (x, y, inner int) {230+ tw, dw, kw := 0, 0, 0231+ for _, it := range p.items {232+ tw = max(tw, ansi.StringWidth(it.title))233+ dw = max(dw, ansi.StringWidth(it.detail))234+ kw = max(kw, ansi.StringWidth(it.key)+2)235+ }236+ inner = min(1+tw+3+dw+3+kw+1, p.maxW, m.width-2)237+ inner = max(inner, min(40, m.width-2))238+ return (m.width - inner - 2) / 2, menuLine + 1, inner239+}240+241+func (p *picker) cursor(m *Model) (int, int) {242+ x, y, _ := p.box(m)243+ return x + 1 + ansi.StringWidth(searchPrompt) + ansi.StringWidth(string(m.buf[:m.bufPos])), y + 1244+}245+246+func (p *picker) layout(m *Model) []box {247+ x, y, inner := p.box(m)248+ rows := p.rows(m)249+ if len(p.shown) > 0 {250+ p.show(rows)251+ }252+ input := m.th.title.Render(searchPrompt) + string(m.buf)253+ if len(m.buf) == 0 {254+ input += m.th.muted.Render(p.placeholder)255+ }256+ lines := []string{cells(m.th.menuBar, input, inner), sepRow}257+ lines = append(lines, p.resultRows(m, inner, rows)...)258+ footer := strconv.Itoa(len(p.shown)) + " of " + strconv.Itoa(len(p.items))259+ return []box{{id: pickerID, x: x, y: y, lines: m.frame(inner, p.title, footer, lines)}}260+}261+262+// resultRows lays out the visible results in columns: title, detail and263+// the shortcut chip at the right. The detail column is dropped when the264+// box is too narrow for it.265+func (p *picker) resultRows(m *Model, inner, rows int) []string {266+ tw, kw := 0, 0267+ for _, it := range p.items {268+ tw = max(tw, ansi.StringWidth(it.title))269+ if it.key != "" {270+ kw = max(kw, ansi.StringWidth(it.key)+2)271+ }272+ }273+ tw = min(tw, inner*3/5)274+ dw := inner - 1 - tw - 3 - kw - 2275+ out := make([]string, 0, rows)276+ for r := range rows {277+ i := p.top + r278+ if i >= len(p.shown) {279+ text := ""280+ if r == 0 {281+ text = m.th.muted.Render(" No matches")282+ }283+ out = append(out, cells(m.th.menuBar, text, inner))284+ continue285+ }286+ pm := p.shown[i]287+ base, dim, hl := m.th.menuBar, m.th.muted, m.th.match288+ switch {289+ case i == p.sel:290+ base, dim, hl = m.th.menuSelected, m.th.menuSelected, m.th.matchSelected291+ case pm.item.off:292+ base, dim, hl = m.th.disabled, m.th.disabled, m.th.disabled293+ }294+ row := base.Render(" ") + m.highlightMatches(pm.item.title, pm.inTitle, tw, base, hl)295+ if dw >= 8 {296+ row += base.Render(" ") + m.highlightMatches(pm.item.detail, pm.inDesc, dw, dim, hl)297+ }298+ k := ""299+ switch {300+ case pm.item.key == "":301+ case i == p.sel:302+ k = base.Render(" " + pm.item.key + " ")303+ case pm.item.off:304+ k = m.th.disabled.Render(" " + pm.item.key + " ")305+ default:306+ k = m.chip(pm.item.key)307+ }308+ row += base.Render(strings.Repeat(" ", max(inner-ansi.StringWidth(row)-ansi.StringWidth(k)-1, 0))) + k + base.Render(" ")309+ out = append(out, ansi.Truncate(row, inner, ""))310+ }311+ return out312+}313+314+// highlightMatches renders s in w columns with the bytes at idx in the hl style,315+// truncating with an ellipsis.316+func (m *Model) highlightMatches(s string, idx []int, w int, base, hl lipgloss.Style) string {317+ s = ansi.Truncate(s, w, "…")318+ var b strings.Builder319+ run, lit := "", false320+ flush := func() {321+ if lit {322+ b.WriteString(hl.Render(run))323+ } else {324+ b.WriteString(base.Render(run))325+ }326+ run = ""327+ }328+ for i, r := range s {329+ if on := slices.Contains(idx, i); on != lit {330+ flush()331+ lit = on332+ }333+ run += string(r)334+ }335+ flush()336+ return b.String() + base.Render(strings.Repeat(" ", max(w-ansi.StringWidth(s), 0)))337+}
A internal/ui/palette_test.go +147 -0
@@ -0,0 +1,147 @@
1+package ui2+3+import (4+ "slices"5+ "strings"6+ "testing"7+8+ tea "charm.land/bubbletea/v2"9+)10+11+func openPicker(t *testing.T, m *Model) *picker {12+ t.Helper()13+ p, ok := m.overlay.(*picker)14+ if !ok {15+ t.Fatalf("no picker open (mode %v, overlay %T)", m.mode, m.overlay)16+ }17+ return p18+}19+20+func selected(t *testing.T, m *Model) string {21+ t.Helper()22+ p := openPicker(t, m)23+ if p.sel >= len(p.shown) {24+ return ""25+ }26+ return p.shown[p.sel].item.title27+}28+29+func TestPaletteKeys(t *testing.T) {30+ for _, key := range []string{"<ctrl+k>", "<alt+/>", "<ctrl+shift+p>"} {31+ m := newModel()32+ press(t, m, key)33+ if p := openPicker(t, m); len(p.shown) != len(p.items) || !strings.HasSuffix(line(m, menuLine), "MENU") {34+ t.Errorf("%s: %d of %d shown", key, len(p.shown), len(p.items))35+ }36+ }37+}38+39+func TestPaletteSearchRunsCommand(t *testing.T) {40+ m := newModel()41+ press(t, m, "<ctrl+k>", "colwid")42+ p := openPicker(t, m)43+ if got := selected(t, m); got != "Column width" {44+ t.Fatalf("best match %q", got)45+ }46+ if len(p.shown[0].inTitle) != len("colwid") {47+ t.Errorf("matched %v", p.shown[0].inTitle)48+ }49+ if !strings.Contains(screen(m), "Column width") || !strings.Contains(screen(m), "Format") {50+ t.Errorf("result should show its menu path:\n%s", screen(m))51+ }52+ x, y, _ := m.cursorPos()53+ if b := p.layout(m)[0]; y != b.y+1 || x != b.x+1+3+len("colwid") {54+ t.Errorf("cursor at %d,%d, box at %d,%d", x, y, b.x, b.y)55+ }56+ press(t, m, "<enter>")57+ if m.overlay != nil || m.mode != modePrompt || m.prompt.kind != promptWidth {58+ t.Errorf("Enter: mode %v overlay %T", m.mode, m.overlay)59+ }60+}61+62+func TestPaletteMatchesMenuPath(t *testing.T) {63+ m := newModel()64+ // "file" matches every File menu command through its path.65+ press(t, m, "<ctrl+k>", "file")66+ var got []string67+ for _, pm := range openPicker(t, m).shown {68+ got = append(got, pm.item.title)69+ }70+ slices.Sort(got[:5])71+ if s := strings.Join(got[:5], ","); s != "New,Open,Quit,Save,Save as" {72+ t.Errorf("file matched %s", strings.Join(got, ","))73+ }74+ press(t, m, "<down>", "<down>")75+ if selected(t, m) != "Save" || !strings.Contains(line(m, m.height-1), "Save the sheet") {76+ t.Errorf("selected %q, status %q", selected(t, m), line(m, m.height-1))77+ }78+ // Up from the top wraps to the bottom.79+ press(t, m, "<up>", "<up>", "<up>")80+ if p := openPicker(t, m); p.sel != len(p.shown)-1 {81+ t.Errorf("wrapped to %d of %d", p.sel, len(p.shown))82+ }83+}84+85+func TestPaletteNoMatchAndEsc(t *testing.T) {86+ m := newModel()87+ press(t, m, "<ctrl+k>", "zzqx")88+ if !strings.Contains(screen(m), "No matches") || !strings.Contains(screen(m), "0 of ") {89+ t.Errorf("no-match screen:\n%s", screen(m))90+ }91+ press(t, m, "<enter>")92+ openPicker(t, m)93+ press(t, m, "<backspace>", "<backspace>", "<backspace>", "<backspace>")94+ if p := openPicker(t, m); len(p.shown) != len(p.items) {95+ t.Error("clearing the search did not show everything")96+ }97+ send(m, tea.PasteMsg{Content: "goto"})98+ if selected(t, m) != "Go to" {99+ t.Errorf("paste searched for %q", selected(t, m))100+ }101+ press(t, m, "<esc>")102+ if m.overlay != nil || m.mode != modeReady || len(m.buf) != 0 {103+ t.Errorf("Esc: mode %v buf %q", m.mode, string(m.buf))104+ }105+}106+107+func TestPaletteUnavailableCommand(t *testing.T) {108+ runs := fakeCommand(t, "edit.undo", "Undo", func(*Model) bool { return false })109+ m := newModel()110+ press(t, m, "<ctrl+k>", "undo")111+ if selected(t, m) != "Undo" {112+ t.Fatalf("selected %q", selected(t, m))113+ }114+ press(t, m, "<enter>")115+ if *runs != 0 || m.overlay == nil {116+ t.Error("an unavailable command ran")117+ }118+ if !strings.Contains(line(m, m.height-1), "not available") {119+ t.Errorf("status %q", line(m, m.height-1))120+ }121+}122+123+func TestPaletteMouse(t *testing.T) {124+ m := newModel()125+ press(t, m, "<ctrl+k>", "go")126+ p := openPicker(t, m)127+ b := p.layout(m)[0]128+ var row int129+ for i, pm := range p.shown {130+ if pm.item.title == "Go to" {131+ row = i132+ }133+ }134+ mouseAt(m, tea.MouseMotionMsg{X: b.x + 4, Y: b.y + pickerFirstRow + row})135+ if selected(t, m) != "Go to" {136+ t.Fatalf("hover selected %q", selected(t, m))137+ }138+ leftClick(m, b.x+4, b.y+pickerFirstRow+row)139+ if m.mode != modePrompt || m.prompt.label != "Go to:" {140+ t.Errorf("click ran: mode %v", m.mode)141+ }142+ press(t, m, "<esc>", "<ctrl+k>")143+ leftClick(m, 1, m.height-2)144+ if m.overlay != nil {145+ t.Error("click outside did not close the palette")146+ }147+}
M internal/ui/shell_test.go +12 -5