[!NOTE] FreeBSD aarch64 is dropped from this release. We had to cut releases, and we cannot build this target within the 5-hour CI limit for any of the Craft apps, so we are dropping it for now. This is a known blocker, flagged for a future fix in storytold/craft-common-actions#39. FreeBSD x86_64 and every other platform are included.
What's Changed
- security: enforce HTTPS on curl downloads (SonarCloud S6506) by @dylanmtaylor in https://github.com/storytold/gridcraft/pull/2188
- Backlog integration: 230 reviewed fixes and reference app behaviour changes by @aiongg in https://github.com/storytold/gridcraft/pull/2226
- Seed the Sort dialog column from the active cell (#1906) by @bfenty in https://github.com/storytold/gridcraft/pull/1979
- Desktop theme: the watcher's link has a type off Linux, so the gate passes there by @Hamza0101 in https://github.com/storytold/gridcraft/pull/1981
- calc: LET and LAMBDA names ignore case in any script by @webglobecontact-ui in https://github.com/storytold/gridcraft/pull/1996
- Spanish formula aliases for financial functions (#1986) by @bfenty in https://github.com/storytold/gridcraft/pull/2000
- Formulas: Excel's longest legal operator chain (4,096 operands) no longer crashes entry or save by @Harrison-Booth in https://github.com/storytold/gridcraft/pull/2019
- Linux: time out the desktop theme's portal read by @bmh129 in https://github.com/storytold/gridcraft/pull/2026
- Formula entry: an incomplete formula's error describes what was typed (fixes [#2030]) by @kezmdor in https://github.com/storytold/gridcraft/pull/2032
- Row auto-fit: count line breaks only in cells that wrap by @RedBearAK in https://github.com/storytold/gridcraft/pull/2033
- Fix WebGL startup on devices with lower GPU limits by @mbaksa in https://github.com/storytold/gridcraft/pull/2038
- Word-wrap-aware automatic row height (#1969) by @bfenty in https://github.com/storytold/gridcraft/pull/2049
- i18n: Dutch (nl) interface language by @Stefanfra in https://github.com/storytold/gridcraft/pull/2061
- Use scientific notation when number_to_text rounds up to 1e15 by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/2069
- HTML export: place pictures and charts at their anchors by @bilalmughal in https://github.com/storytold/gridcraft/pull/2080
- Right-click on a chart opens the chart's menu, not the cell's (fixes [#2067]) by @dantebertuzzi in https://github.com/storytold/gridcraft/pull/2084
- Grid: paint the scrollbar's column beside the column headings (white corner in dark mode) by @dantebertuzzi in https://github.com/storytold/gridcraft/pull/2086
- fix(ui): Esc and Enter close a data validation alert, not the edit behind it, and the keyboard goes back to the entry (#2089) by @vedran-dobos in https://github.com/storytold/gridcraft/pull/2090
- Paste Special: Excel's two-column layout, translated, Paste Link button by @dantebertuzzi in https://github.com/storytold/gridcraft/pull/2093
- Dialogs: OK and Cancel in a row, so form dialogs fit their content by @dantebertuzzi in https://github.com/storytold/gridcraft/pull/2094
- Number Stored as Text: green indicator, warning button and Convert to Number (#1994) by @dantebertuzzi in https://github.com/storytold/gridcraft/pull/2095
- docs: fix Trunk website link (#2076) by @Zaxaerith in https://github.com/storytold/gridcraft/pull/2098
- Fonts: a cell font named in another language matches its installed font (fixes [#1898]) by @chessive in https://github.com/storytold/gridcraft/pull/2100
- Romanian (ro) interface language by @vioreltus in https://github.com/storytold/gridcraft/pull/2102
- Translate form-dialog field labels, choices and notes by @vioreltus in https://github.com/storytold/gridcraft/pull/2106
- Backstage: list the languages alphabetically by their own name by @nikolainyegaard in https://github.com/storytold/gridcraft/pull/2116
- Print: JIS B4/B5 and Japanese paper sizes (はがき・封筒・B6) by @midasdf in https://github.com/storytold/gridcraft/pull/2131
- PivotTable Fields pane: scan the source once per change, not every frame by @Aimarmndz in https://github.com/storytold/gridcraft/pull/2142
- Table Design: draw the Table Styles gallery in the ribbon (#2148) by @alosslessdev in https://github.com/storytold/gridcraft/pull/2150
- calc: bound SUBTOTAL/AGGREGATE input work (#2175) by @Higgs32584 in https://github.com/storytold/gridcraft/pull/2194
- calc: cap LINEST-family regressor matrices (#2177) by @Higgs32584 in https://github.com/storytold/gridcraft/pull/2195
- core: iterative number coercion for nested parentheses (#2180) by @Higgs32584 in https://github.com/storytold/gridcraft/pull/2200
- calc: cap array broadcast result size (#2182) by @Higgs32584 in https://github.com/storytold/gridcraft/pull/2201
- clipboard: bound HTML colspan/rowspan expansion (#2171) by @Higgs32584 in https://github.com/storytold/gridcraft/pull/2207
- Web: keep preferences such as dark mode between visits by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1589
- XLSX: keep custom column widths that round to the default width by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1615
- Keyboard: Ctrl+6 hides and shows objects, saved as workbookPr showObjects by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1626
- Add Advanced Filter dialog and fix copy-to data loss by @derechopiano in https://github.com/storytold/gridcraft/pull/1628
- Memory: undo steps share picture and macro bytes instead of copying them by @arcanii in https://github.com/storytold/gridcraft/pull/1629
- Memory: interface fonts are read once and shared with egui, not copied into it by @arcanii in https://github.com/storytold/gridcraft/pull/1630
- Memory: floating pictures' textures are bounded, sized to what is drawn, and dropped with their workbook by @arcanii in https://github.com/storytold/gridcraft/pull/1631
- fix(xlsx): bound repeated column expansion by @harrisonoconnorhover in https://github.com/storytold/gridcraft/pull/1648
- fix(ets): avoid repeated scans while interpolating gaps by @harrisonoconnorhover in https://github.com/storytold/gridcraft/pull/1650
- Fill handle: right-drag opens the fill menu (Copy Cells, Fill Series, Fill Formatting Only, Fill Without Formatting, Series…) by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1652
- Cell editor: the caret contrasts with the cell's fill by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1657
- macOS: bold interface text draws Cyrillic е open, not like ө by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1669
- fix: theme PivotTable field group buttons by @ozero in https://github.com/storytold/gridcraft/pull/1671
- Keep overflow text visible when its source cell scrolls out of view by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1672
- contributors: add Harrison-Booth by @Harrison-Booth in https://github.com/storytold/gridcraft/pull/1674
- [#1447]: two value fields without a column field hide the Values row by @HyakoV3 in https://github.com/storytold/gridcraft/pull/1683
- [#1447]: a PivotChart's link names the workbook by @HyakoV3 in https://github.com/storytold/gridcraft/pull/1685
- XLSX: keep Japanese phonetic runs (ふりがな) on open and save by @midasdf in https://github.com/storytold/gridcraft/pull/1692
- Charts: series that refer to defined names (
[0]!Name) plot their data, and are saved qualified by @bldred in https://github.com/storytold/gridcraft/pull/1693 - Charts: box & whisker charts honor their quartile method by @webdevtodayjason in https://github.com/storytold/gridcraft/pull/1695
- XLSX: new workbooks get <fileversion appname="gridcraft"> (fixes [#1699]) by @aviiciii in https://github.com/storytold/gridcraft/pull/1701
- Fonts: find the cell, serif, mono, Thai and Hebrew faces in Fedora's package folders (#1694) by @tydude001 in https://github.com/storytold/gridcraft/pull/1705
- Reject table.resize when the new range overlaps another table by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1706
- Rows: a big font isn't counted twice when the sheet's default height already fits it by @tisca26 in https://github.com/storytold/gridcraft/pull/1709
- Tables: add the missing Resize Table button (#935) by @adrinothiago-cpu in https://github.com/storytold/gridcraft/pull/1724
- Prefill the Remove Duplicates range from the selection by @TheRenegadeDev in https://github.com/storytold/gridcraft/pull/1725
- Fail CLI checks on incomplete or empty input discovery by @TheRenegadeDev in https://github.com/storytold/gridcraft/pull/1726
- Use the platform clock for UI timing on the web by @TheRenegadeDev in https://github.com/storytold/gridcraft/pull/1728
- Move PivotTables with their cells on row/column insert and delete by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1731
- i18n(ja): translate the dialog, message and menu strings (943 entries, matching the pt-BR coverage) by @midasdf in https://github.com/storytold/gridcraft/pull/1732
- fix(web): clean up print iframe and blob resources by @TheRenegadeDev in https://github.com/storytold/gridcraft/pull/1734
- Analysis ToolPak: moving-average standard errors use a running sum (#1043) by @TheRenegadeDev in https://github.com/storytold/gridcraft/pull/1735
- Keep chart source range in step with inserted and deleted lines by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1738
- Ctrl+Alt+letter that types a character no longer triggers the Ctrl shortcut (#1530) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1744
- Docs: §6's calculation bugs have all landed by @Hamza0101 in https://github.com/storytold/gridcraft/pull/1753
- i18n: translate sheet tab context menu and AutoSave toggle (fixes [#1537]) by @dknalp in https://github.com/storytold/gridcraft/pull/1754
- Fonts: render Lao text with an installed Lao face instead of tofu by @Laosmartsoft in https://github.com/storytold/gridcraft/pull/1758
- Sheet protection: obey the Sort and Use AutoFilter boxes by @Hamza0101 in https://github.com/storytold/gridcraft/pull/1765
- Add Ukrainian localization (uk.rs) by @War2Darius in https://github.com/storytold/gridcraft/pull/1770
- i18n: add Vietnamese interface translations by @thanhbv102-arch in https://github.com/storytold/gridcraft/pull/1772
- Added multi-column/row selection in formulas & column/row selection highlighting. by @Cyan101 in https://github.com/storytold/gridcraft/pull/1838
- Docs: correct stale chart round-trip notes by @alosslessdev in https://github.com/storytold/gridcraft/pull/1889
- Keep the in-cell editor at the cell's height for one line by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1905
- Print CJK text with a CID font instead of question marks by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1912
- Grid: row and column heading labels grow with the zoom by @DrM7md in https://github.com/storytold/gridcraft/pull/1924
- Accounting format: the documented currency
symbolis honoured by @zyzabruh in https://github.com/storytold/gridcraft/pull/1930 - Keep date text with signed parts like +3/4/2026 as text by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1937
- CSV import: read Windows-1256 Arabic files as Arabic by @Mouhand-Kaddo in https://github.com/storytold/gridcraft/pull/1942
- XLSX: keep the theme's per-script fonts (<a:font script="Arab">) on save — stacked on [#1740] by @Mouhand-Kaddo in https://github.com/storytold/gridcraft/pull/1945
- XLSX: keep cell fonts' charset (Arabic 178) and family on save by @Mouhand-Kaddo in https://github.com/storytold/gridcraft/pull/1946
- Translate and standardizes UI error feedback by locale by @Lord-Taw in https://github.com/storytold/gridcraft/pull/1958
- Control channel: a request its sender gave up on is not run later by @Hamza0101 in https://github.com/storytold/gridcraft/pull/1971
- In-cell editor: a Wrap Text cell edits wrapped at the column width (#1970) by @jcagudelo12 in https://github.com/storytold/gridcraft/pull/1974
- Select precedent/dependent cells with Ctrl+[ / Ctrl+] (#1865 part 1) by @bfenty in https://github.com/storytold/gridcraft/pull/1975
- Enter bare numbers in Percentage-formatted cells as percents by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1976
- Grid: the selection outline follows a mouse drag at once by @DrM7md in https://github.com/storytold/gridcraft/pull/1993
- Persist the AutoSave preference across restarts (#1901) by @bfenty in https://github.com/storytold/gridcraft/pull/1995
- ui: language command docs and error list every language by @webglobecontact-ui in https://github.com/storytold/gridcraft/pull/1998
- Formula editing: arrow pointing restarts from the edited cell after typing (#1949) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/2001
- AutoFill refuses a target that doesn't hold the source in a corner (whole rows into whole columns aborted the app) by @Harrison-Booth in https://github.com/storytold/gridcraft/pull/2005
- Reject unparseable conditional-format formulas (#1999) by @bfenty in https://github.com/storytold/gridcraft/pull/2022
- AutoFit Column Width measures text in the font the grid draws it with by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1320
- Keyboard: Alt+= no longer starts an edit with the
=it types by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1332 - Selection: whole columns and rows don't widen to merged cells by @DCM4711 in https://github.com/storytold/gridcraft/pull/1337
- calc: calculate long dependency chains with bounded stack by @Harrison-Booth in https://github.com/storytold/gridcraft/pull/1340
- engine: keep AutoFill text series from panicking or wrapping on i64 overflow by @midasmatterhorn in https://github.com/storytold/gridcraft/pull/1360
- Context menu: the right-click that opens it doesn't close it by @DCM4711 in https://github.com/storytold/gridcraft/pull/1363
- engine: keep case-insensitive replace from dropping text when folding shifts byte boundaries by @midasmatterhorn in https://github.com/storytold/gridcraft/pull/1364
- Fix font dropdown list resizing and keyboard up/down navigation by @mbaksa in https://github.com/storytold/gridcraft/pull/1365
- Keep Middle/Bottom vertical alignment for wrapped text taller than its row by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1371
- Protection: Protect Sheet entries unprotect, selectLockedCells enforced (#1346) by @vangel76 in https://github.com/storytold/gridcraft/pull/1373
- Header menus: Format Cells… for the selected rows or columns by @DCM4711 in https://github.com/storytold/gridcraft/pull/1375
- engine: subtotal honours header:false instead of dropping the first data row by @midasmatterhorn in https://github.com/storytold/gridcraft/pull/1379
- xlsx: keep every property of the default cell format when importing a file by @midasmatterhorn in https://github.com/storytold/gridcraft/pull/1380
- engine: rebuild cell-store bands and counts when importing a JSON workbook by @midasmatterhorn in https://github.com/storytold/gridcraft/pull/1381
- UI: Improve Command Palette keyboard navigation and layout by @mbaksa in https://github.com/storytold/gridcraft/pull/1414
- Recalc: an anchor's new formula no longer reads its old spill area by @nihilist-narwhal in https://github.com/storytold/gridcraft/pull/1427
- Recalc: formulas reading an array that loses a spill conflict see #SPILL! by @nihilist-narwhal in https://github.com/storytold/gridcraft/pull/1428
- Stop BINOM.INV/CRITBINOM hanging when trials exceed 2^53 by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1432
- Refuse table names that clash with defined names or R1C1 references by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1434
- Fix fraction numerators saturating at u64::MAX for large values by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1438
- Add Greek (el) interface localization by @Camthalion77 in https://github.com/storytold/gridcraft/pull/1468
- Let GROUPBY and PIVOTBY take a LAMBDA as their function by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1469
- fix(solver): commit solutions and reports atomically by @euisuh in https://github.com/storytold/gridcraft/pull/1470
- i18n: add Italian translation by @icsimpianti in https://github.com/storytold/gridcraft/pull/1473
- Conditional formatting: text rules never match an error value (#1162) by @wstock in https://github.com/storytold/gridcraft/pull/1474
- Control channel: ui.dialog.confirm sends what OK sends (#1459) by @wstock in https://github.com/storytold/gridcraft/pull/1477
- UI: keep PivotTable field-list scrollbar at pane edge by @derechopiano in https://github.com/storytold/gridcraft/pull/1485
- XLSX: preserve carriage returns in saved text by @derechopiano in https://github.com/storytold/gridcraft/pull/1495
- Fix number-format palette colours in grid and PDF output by @bogusyogi in https://github.com/storytold/gridcraft/pull/1500
- Read securities function dates in the workbook's date system by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1507
- Calc: a dynamic array of one value still anchors a spill range by @Hamza0101 in https://github.com/storytold/gridcraft/pull/1510
- Reject formula number literals too large for f64 as parse errors by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1512
- Fix scalar INDEX/MATCH XLSX export by @justinjohn0306 in https://github.com/storytold/gridcraft/pull/1514
- fix [#1443]: Ctrl+Q no longer closes the window outside macOS by @HyakoV3 in https://github.com/storytold/gridcraft/pull/1520
- UI: function help follows the interface language by @quantmind-br in https://github.com/storytold/gridcraft/pull/1523
- Keep leading empty columns and rows when saving CSV/text by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1525
- functions: NETWORKDAYS.INTL accepts the all-weekend string "1111111" by @midasmatterhorn in https://github.com/storytold/gridcraft/pull/1526
- engine: pageLayout.printTitles only touches the axes it is given by @midasmatterhorn in https://github.com/storytold/gridcraft/pull/1527
- fix [#1458]: one Excel sheet-name quoting rule for formulas, pivot sources and ADDRESS by @HyakoV3 in https://github.com/storytold/gridcraft/pull/1529
- xlsx: keep a table's filter criteria when the sheet AutoFilter coincides with it by @midasmatterhorn in https://github.com/storytold/gridcraft/pull/1531
- engine: a cut takes the source's notes, hyperlinks and merged areas with it by @midasmatterhorn in https://github.com/storytold/gridcraft/pull/1534
- engine: sort and remove duplicates move the rows' notes and hyperlinks by @midasmatterhorn in https://github.com/storytold/gridcraft/pull/1535
- UI: Delete dismisses the AutoComplete proposal, and deleting text never brings it back (#1521) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1547
- Focus the Find what field when Find and Replace opens (#1518) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1548
- Open the Insert Chart dialog from Recommended Charts instead of inserting a chart (#1399) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1550
- Keep nan/inf time and fraction look-alikes as text by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1552
- Sort and de-duplicate data.textToColumns fixed-width breaks by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1559
- ui: truncate long workbook titles in the title bar by @IsmaelEzequiel in https://github.com/storytold/gridcraft/pull/1560
- calc: bounded references up to 1,048,576 cells keep their full shape by @Harrison-Booth in https://github.com/storytold/gridcraft/pull/1568
- XLSX: keep dynamic-array cell metadata (cm) on save by @Harrison-Booth in https://github.com/storytold/gridcraft/pull/1570
- Calc: CELL("filename") names the workbook's file by @Hamza0101 in https://github.com/storytold/gridcraft/pull/1580
- Contributors: add Marco Arnulfo by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1596
- XLSX: keep header and footer pictures on save by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1600
- Grid: a scrolled Table's header names and filter buttons in the column headings (#1423) by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1612
- XLSX: a note keeps its box's place and size through open and save (#1608) by @switch87 in https://github.com/storytold/gridcraft/pull/1614
- Grid: a cell with line breaks and Wrap Text off draws the whole string on one line by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1618
- Reject unsupported flip param in arrange.rotate by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1621
- Keyboard: Ctrl+Shift+A after a function name inserts its argument names by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1624
- Charts: insert.chart builds a series from every area of a multi-area range by @midasmatterhorn in https://github.com/storytold/gridcraft/pull/1653
- Merged cell with Wrap Text: auto-fit skips it, so the text draws and the row keeps its default height by @midasmatterhorn in https://github.com/storytold/gridcraft/pull/1661
- Row, column and freeze commands act on the sheet they are given (
sheet, or aSheet!prefix) by @CouchRiv in https://github.com/storytold/gridcraft/pull/885 - UI: File › Account shows the version, platform and licence, with an About GridCraft button by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/898
- Keytips: Alt, F opens the File view, and its F letters still run by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/905
- Ribbon: Font Size is a box you type into, the sizes behind its arrow by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/952
- Control: Go To and Select over the control channel scroll the active cell into view by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/970
- Sheet tabs: Ctrl-drag (Cmd or Option on macOS) drops a copy of the sheet by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/973
- XLSX export: a picture shared by several sheets is one media part (#985) by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/995
- Fix Command-click and Shift-click references during formula entry by @pourie-he in https://github.com/storytold/gridcraft/pull/1056
- Flash Fill: read the text cells show by @nihilist-narwhal in https://github.com/storytold/gridcraft/pull/1057
- Format Cells: take the documented camelCase style keys by @nihilist-narwhal in https://github.com/storytold/gridcraft/pull/1058
- rows/cols parameters: accept a single row or column by @nihilist-narwhal in https://github.com/storytold/gridcraft/pull/1059
- LAMBDA helpers: #CALC! for nested arrays, #VALUE! for wrong parameter counts by @nihilist-narwhal in https://github.com/storytold/gridcraft/pull/1060
- Recalc: an array that spills as before doesn't requeue its dependents by @nihilist-narwhal in https://github.com/storytold/gridcraft/pull/1061
- Engine: formulas.evaluate refuses what cell entry refuses, saying why by @quantmind-br in https://github.com/storytold/gridcraft/pull/1066
- Ribbon: more currency symbols in the Accounting Number Format menu by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1068
- Colour menus: More Colors… and Recent Colors (#928) by @Silvertree2010 in https://github.com/storytold/gridcraft/pull/1083
- Data validation: a list typed without quotes is saved as a quoted list, and an unknown type is refused by @CouchRiv in https://github.com/storytold/gridcraft/pull/1084
- Format: Row Height and Column Width say pixels, and take points like Excel by @CouchRiv in https://github.com/storytold/gridcraft/pull/1085
- Charts: multi-level category axes (year beside month) read, drawn and written back by @Lexx143 in https://github.com/storytold/gridcraft/pull/1088
- i18n: add Polish (pl) interface, full catalog (970 labels) by @mbielski1337 in https://github.com/storytold/gridcraft/pull/1091
- fix(grid): keep cursor stable during cell dragging (#936) by @Zaxaerith in https://github.com/storytold/gridcraft/pull/1095
- CSV export: check the size cap before each field, not after the row (#1023) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1102
- Keep chart cache point positions when a reference has blank edges (#1015) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1103
- xlsx: keep the first group's series kind when importing a combination chart (#1014) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1104
- Fix row keys merging distinct text rows in UNIQUE and grouping (#1012) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1105
- Refuse a cut-paste whose destination does not fit instead of dropping cells (#997) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1108
- fix(ui): commit a pointed formula on the sheet it was started on (#996) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1109
- Size the list validation dropdown to up to 8 rows (#1089) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1110
- Respect workbook structure protection in sheet rename, move, copy, hide and unhide (#1049) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1111
- Read date text arguments in the workbook date system (#1038) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1114
- Cap CSV import fields per record at the worksheet column limit (#1037) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1115
- Fix table without header: re-point references when the data moves down (#1030) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1117
- Fix xlsx: combine escaped UTF-16 surrogate pairs when decoding strings (#1025) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1119
- Open notice: do not promise to keep macros that were dropped (#1024) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1120
- Grid: per-frame work no longer scales with the whole sheet (#1098) by @vangel76 in https://github.com/storytold/gridcraft/pull/1136
- Charts: a huge trendline forecast no longer collapses the chart (#1148) by @vangel76 in https://github.com/storytold/gridcraft/pull/1151
- XLSX: [Content_Types].xml is the first zip entry, workbook parts precede document properties, so libmagic detects the file type (#1090) by @vangel76 in https://github.com/storytold/gridcraft/pull/1156
- fix(ui): menu items highlight under the pointer (#1174) by @richard1912 in https://github.com/storytold/gridcraft/pull/1180
- fix(ui): ribbon tooltips show each platform's shortcuts (Ctrl+B on Windows, ⌘B on macOS) (#1191) by @richard1912 in https://github.com/storytold/gridcraft/pull/1194
- Grid: an armed Format Painter pastes onto the next cells clicked or dragged by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1214
- File: Save a Copy asks where to save a bare name instead of writing it to the working directory by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1215
- Sheet tabs: right-clicking a tab activates its sheet by @richard1912 in https://github.com/storytold/gridcraft/pull/1223
- XLSX: keep a dxf's protection, font size and face, and the font parts it turns off by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1225
- Journal: cap by serialized size and keep a recording's start through trims by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1230
- Fix native CJK fallback paths in Flatpak by @allenyllee in https://github.com/storytold/gridcraft/pull/1236
- BAHTTEXT: a final one after the millions reads เอ็ด by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1237
- Opening an XLSX with a part over 512 MB says how to get the data in by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1248
- Headers: mark hidden columns and rows, split cursor and double-click to unhide (#1247) by @richard1912 in https://github.com/storytold/gridcraft/pull/1249
- Dialogs move by their title bar instead of staying pinned to the centre by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1252
- Bound Undo history growth after bulk edits by @derechopiano in https://github.com/storytold/gridcraft/pull/1263
- Zoom dialog: Excel's layout, current zoom pre-selected, Fit selection (#930) by @richard1912 in https://github.com/storytold/gridcraft/pull/1277
- N() converts a computed array element by element, so it works inside SUMPRODUCT by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1281
- Sort: a Sheet! prefix on the range sorts that sheet, not the active one by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1284
- Remove Duplicates, Filter and Subtotal: a Sheet! prefix on the range works on that sheet, not the active one by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/1285
- Preserve hyperlinks in PDF export and support PDF in CLI convert by @derechopiano in https://github.com/storytold/gridcraft/pull/1292
- Filter: count empty text and ="" results as (Blanks) (#1294) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1299
- Show dynamic array source formulas read-only in spill cells by @Prachannagven in https://github.com/storytold/gridcraft/pull/1306
- engine: refuse removeDuplicates with no valid column instead of deleting all rows by @midasmatterhorn in https://github.com/storytold/gridcraft/pull/1308
- Reject a list data validation that has no formula1 (#1303) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/1326
- Slicer: find a named table on any sheet by @dev-exe in https://github.com/storytold/gridcraft/pull/1329
- Form dialogs open ready to type (Column Width, Row Height) by @Harrison-Booth in https://github.com/storytold/gridcraft/pull/1331
- Edit: text that would parse as a number or formula keeps its quote prefix in the editor (#1362) by @vangel76 in https://github.com/storytold/gridcraft/pull/1372
- perf: fill-handle double-click scans a dense neighbour column ~2.4x faster by @Dejan-Port in https://github.com/storytold/gridcraft/pull/451
- Build: the ui-egui build script reads CARGO_MANIFEST_DIR when it runs by @prxnvt in https://github.com/storytold/gridcraft/pull/488
- Refuse inserting cells that would push values off the worksheet (#580) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/584
- Make check --json list warning messages instead of a count (#526) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/629
- Cap queued pointer events from ui.click/ui.drag control requests (#525) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/630
- Open the Header & Footer dialog on the sheet's saved header and footer (#523) by @MarekSpodBiedry in https://github.com/storytold/gridcraft/pull/632
- i18n: Turkish (tr) interface language by @yeniufuklar-com in https://github.com/storytold/gridcraft/pull/663
- Keep sheet navigation on visible worksheets at workbook boundaries by @jonathanwxh-cell in https://github.com/storytold/gridcraft/pull/701
- Names: a name over several ranges reads its top-level commas as unions by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/759
- i18n: test that translations keep the shape of their English by @bmh129 in https://github.com/storytold/gridcraft/pull/831
- Closing the window asks to save unsaved workbooks by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/846
- Conditional formats: hex colours in a custom style, and no more silently empty or never-matching rules by @CouchRiv in https://github.com/storytold/gridcraft/pull/884
- Keyboard: Enter after a run of Tabs goes to the next row in the column the run started from by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/913
- Sheet tabs: New sheet (+) right after the last tab, the strip capped at 60% by @marcoarnulfo in https://github.com/storytold/gridcraft/pull/949
- fix(fill): respect the workbook date system in monthly AutoFill by @anirudhqwerty in https://github.com/storytold/gridcraft/pull/951
- README: the app icon above the title by @bflatastic in https://github.com/storytold/gridcraft/pull/2249
- scripts: require workbook trust before running embedded scripts (#2178) by @Higgs32584 in https://github.com/storytold/gridcraft/pull/2209
New Contributors
- @aiongg made their first contribution in https://github.com/storytold/gridcraft/pull/2226
- @bfenty made their first contribution in https://github.com/storytold/gridcraft/pull/1979
- @Hamza0101 made their first contribution in https://github.com/storytold/gridcraft/pull/1981
- @webglobecontact-ui made their first contribution in https://github.com/storytold/gridcraft/pull/1996
- @Harrison-Booth made their first contribution in https://github.com/storytold/gridcraft/pull/2019
- @kezmdor made their first contribution in https://github.com/storytold/gridcraft/pull/2032
- @RedBearAK made their first contribution in https://github.com/storytold/gridcraft/pull/2033
- @mbaksa made their first contribution in https://github.com/storytold/gridcraft/pull/2038
- @Stefanfra made their first contribution in https://github.com/storytold/gridcraft/pull/2061
- @bilalmughal made their first contribution in https://github.com/storytold/gridcraft/pull/2080
- @Zaxaerith made their first contribution in https://github.com/storytold/gridcraft/pull/2098
- @chessive made their first contribution in https://github.com/storytold/gridcraft/pull/2100
- @vioreltus made their first contribution in https://github.com/storytold/gridcraft/pull/2102
- @nikolainyegaard made their first contribution in https://github.com/storytold/gridcraft/pull/2116
- @midasdf made their first contribution in https://github.com/storytold/gridcraft/pull/2131
- @Aimarmndz made their first contribution in https://github.com/storytold/gridcraft/pull/2142
- @alosslessdev made their first contribution in https://github.com/storytold/gridcraft/pull/2150
- @ozero made their first contribution in https://github.com/storytold/gridcraft/pull/1671
- @bldred made their first contribution in https://github.com/storytold/gridcraft/pull/1693
- @aviiciii made their first contribution in https://github.com/storytold/gridcraft/pull/1701
- @tisca26 made their first contribution in https://github.com/storytold/gridcraft/pull/1709
- @adrinothiago-cpu made their first contribution in https://github.com/storytold/gridcraft/pull/1724
- @TheRenegadeDev made their first contribution in https://github.com/storytold/gridcraft/pull/1725
- @dknalp made their first contribution in https://github.com/storytold/gridcraft/pull/1754
- @Laosmartsoft made their first contribution in https://github.com/storytold/gridcraft/pull/1758
- @War2Darius made their first contribution in https://github.com/storytold/gridcraft/pull/1770
- @thanhbv102-arch made their first contribution in https://github.com/storytold/gridcraft/pull/1772
- @Cyan101 made their first contribution in https://github.com/storytold/gridcraft/pull/1838
- @zyzabruh made their first contribution in https://github.com/storytold/gridcraft/pull/1930
- @Lord-Taw made their first contribution in https://github.com/storytold/gridcraft/pull/1958
- @jcagudelo12 made their first contribution in https://github.com/storytold/gridcraft/pull/1974
- @DCM4711 made their first contribution in https://github.com/storytold/gridcraft/pull/1337
- @midasmatterhorn made their first contribution in https://github.com/storytold/gridcraft/pull/1360
- @Camthalion77 made their first contribution in https://github.com/storytold/gridcraft/pull/1468
- @euisuh made their first contribution in https://github.com/storytold/gridcraft/pull/1470
- @icsimpianti made their first contribution in https://github.com/storytold/gridcraft/pull/1473
- @wstock made their first contribution in https://github.com/storytold/gridcraft/pull/1474
- @bogusyogi made their first contribution in https://github.com/storytold/gridcraft/pull/1500
- @quantmind-br made their first contribution in https://github.com/storytold/gridcraft/pull/1523
- @IsmaelEzequiel made their first contribution in https://github.com/storytold/gridcraft/pull/1560
- @pourie-he made their first contribution in https://github.com/storytold/gridcraft/pull/1056
- @Lexx143 made their first contribution in https://github.com/storytold/gridcraft/pull/1088
- @mbielski1337 made their first contribution in https://github.com/storytold/gridcraft/pull/1091
- @allenyllee made their first contribution in https://github.com/storytold/gridcraft/pull/1236
- @Prachannagven made their first contribution in https://github.com/storytold/gridcraft/pull/1306
- @dev-exe made their first contribution in https://github.com/storytold/gridcraft/pull/1329
- @yeniufuklar-com made their first contribution in https://github.com/storytold/gridcraft/pull/663
- @anirudhqwerty made their first contribution in https://github.com/storytold/gridcraft/pull/951
- @bflatastic made their first contribution in https://github.com/storytold/gridcraft/pull/2249
Full Changelog: https://github.com/storytold/gridcraft/compare/v0.10.0...v0.11.1