# Spreadsheet: changes from GridCraft

Spreadsheet is based on GridCraft by the ArtCraft team (https://github.com/storytold/gridcraft), commit `70327cd3d9b7de9af1bcaa33488c0736a0d346d8`,
licensed under the MIT License or the Apache License 2.0; Everyapp uses it under the Apache License 2.0.
Upstream LICENSE-APACHE, LICENSE-MIT and NOTICE are included unchanged in this folder.

Everyapp changed the files below. Everything else is unmodified upstream source.

## Text and links (rebranding)

Upstream app and suite names in interface text were replaced with Everyapp names, and links to the upstream
website, community and repository were pointed to everyapp.pro or support@everyapp.pro.

| File | Changes |
|---|---|
| `(dependency a517b38) PATCHES.md` | name: 1 |
| `(dependency a517b38) docs/egui-037-migration-plan.md` | name: 50 |
| `(dependency fonts-build) README.md` | name: 3 |
| `(dependency i18n) README.md` | name: 1 |
| `(dependency ui) README.md` | name: 17 |
| `README.md` | brand: 8, links: 29, name: 29, phrases: 2 |
| `ROADMAP.md` | name: 3 |
| `apps/gridcraft-cli/src/check/report.rs` | name: 1 |
| `apps/gridcraft-cli/src/main.rs` | name: 2 |
| `apps/gridcraft-web/index.html` | name: 2 |
| `apps/gridcraft-web/src/web.rs` | name: 1 |
| `apps/gridcraft/build.rs` | name: 3 |
| `apps/gridcraft/src/main.rs` | name: 8 |
| `apps/gridcraft/src/native_menu.rs` | links: 3, name: 4, phrases: 1 |
| `apps/gridcraft/src/print.rs` | name: 1 |
| `assets/app-icon/README.md` | name: 6 |
| `crates/engine/src/cmd/extra.rs` | name: 1 |
| `crates/engine/src/cmd/formulas.rs` | name: 4 |
| `crates/engine/src/cmd/solver/reports.rs` | name: 1 |
| `crates/engine/src/cmd/spelling.rs` | name: 1 |
| `crates/engine/src/cmd/stash.rs` | name: 2 |
| `crates/engine/src/cmd/whatif/scenarios.rs` | name: 1 |
| `crates/engine/src/io.rs` | name: 5 |
| `crates/engine/src/lib.rs` | name: 1 |
| `crates/functions/src/info.rs` | name: 1 |
| `crates/mcp/src/backend.rs` | name: 2 |
| `crates/mcp/src/server.rs` | name: 2 |
| `crates/mcp/src/tools.rs` | name: 3 |
| `crates/pdf/src/lib.rs` | name: 2 |
| `crates/ui-egui/src/app/commands.rs` | name: 2 |
| `crates/ui-egui/src/app/editing.rs` | name: 4 |
| `crates/ui-egui/src/app/files.rs` | name: 3 |
| `crates/ui-egui/src/app/prefs.rs` | name: 1 |
| `crates/ui-egui/src/backstage.rs` | name: 7 |
| `crates/ui-egui/src/backstage/options.rs` | name: 1 |
| `crates/ui-egui/src/craft_fonts_policy.rs` | name: 1 |
| `crates/ui-egui/src/dialogs.rs` | name: 2 |
| `crates/ui-egui/src/dialogs/about.rs` | brand: 1, links: 3, name: 1, phrases: 1 |
| `crates/ui-egui/src/dialogs/macros.rs` | name: 1 |
| `crates/ui-egui/src/dialogs/show.rs` | name: 1 |
| `crates/ui-egui/src/formula_bar.rs` | name: 1 |
| `crates/ui-egui/src/grid/interact.rs` | name: 4 |
| `crates/ui-egui/src/grid/menus.rs` | name: 3 |
| `crates/ui-egui/src/i18n/cs.rs` | name: 6 |
| `crates/ui-egui/src/i18n/de.rs` | name: 4 |
| `crates/ui-egui/src/i18n/el.rs` | name: 6, phrases: 1, translations: 1 |
| `crates/ui-egui/src/i18n/es.rs` | name: 4 |
| `crates/ui-egui/src/i18n/fr.rs` | name: 4 |
| `crates/ui-egui/src/i18n/it.rs` | name: 6, phrases: 1, translations: 1 |
| `crates/ui-egui/src/i18n/ja.rs` | name: 6, phrases: 1, translations: 1 |
| `crates/ui-egui/src/i18n/ko.rs` | name: 4 |
| `crates/ui-egui/src/i18n/nl.rs` | name: 4 |
| `crates/ui-egui/src/i18n/pl.rs` | name: 6, phrases: 1, translations: 1 |
| `crates/ui-egui/src/i18n/pt.rs` | name: 6, phrases: 1, translations: 1 |
| `crates/ui-egui/src/i18n/ro.rs` | name: 6, phrases: 1, translations: 1 |
| `crates/ui-egui/src/i18n/ru.rs` | name: 4 |
| `crates/ui-egui/src/i18n/sr.rs` | name: 4 |
| `crates/ui-egui/src/i18n/tr.rs` | name: 2 |
| `crates/ui-egui/src/i18n/uk.rs` | name: 6, phrases: 2 |
| `crates/ui-egui/src/i18n/vi.rs` | name: 2 |
| `crates/ui-egui/src/i18n/zh.rs` | name: 4 |
| `crates/ui-egui/src/ribbon/automate.rs` | name: 3 |
| `crates/ui-egui/src/updates_ui.rs` | name: 2 |
| `crates/xlsx/src/pivot/write.rs` | name: 1 |
| `crates/xlsx/src/write.rs` | name: 1 |
| `crates/xlsx/src/xls.rs` | name: 3 |
| `crates/xlsx/src/xls/formula.rs` | name: 1 |
| `docs/architecture.md` | name: 1 |
| `docs/cell-pictures.md` | name: 2 |
| `docs/chart-parity.md` | name: 5 |
| `docs/cli.md` | name: 9 |
| `docs/control-protocol.md` | name: 2 |
| `docs/decisions.md` | name: 1 |
| `docs/egui-037-local-followups.md` | name: 9 |
| `docs/egui-037-migration-plan.md` | name: 80 |
| `docs/file-format-parity.md` | name: 16 |
| `docs/function-parity.md` | name: 2 |
| `docs/gaps.md` | name: 2 |
| `docs/hardware-parity.md` | name: 2 |
| `docs/localization-el.md` | name: 2 |
| `docs/localization-parity.md` | name: 2 |
| `docs/mcp.md` | name: 2 |
| `docs/ods-import.md` | name: 3 |
| `docs/parity-checklist.md` | name: 1 |
| `docs/release-playbook.md` | name: 3 |
| `docs/releasing.md` | brand: 2, name: 18 |
| `docs/roadmap.md` | name: 1 |
| `docs/target-app-parity.md` | name: 9 |
| `docs/ui-parity.md` | name: 8 |
| `docs/xlsb-import.md` | name: 3 |

## Images

Upstream trademarks and app icons were replaced with Everyapp artwork of the same size and format.

- `assets/app-icon/gridcraft-1024.png`
- `assets/app-icon/gridcraft-macos-512.png`
- `assets/app-icon/gridcraft.icns`
- `assets/app-icon/gridcraft.ico`
- `assets/app-icon/gridcraft.svg`
- `assets/app-icon/hicolor/128x128/apps/ai.storyteller.gridcraft.png`
- `assets/app-icon/hicolor/16x16/apps/ai.storyteller.gridcraft.png`
- `assets/app-icon/hicolor/24x24/apps/ai.storyteller.gridcraft.png`
- `assets/app-icon/hicolor/256x256/apps/ai.storyteller.gridcraft.png`
- `assets/app-icon/hicolor/32x32/apps/ai.storyteller.gridcraft.png`
- `assets/app-icon/hicolor/48x48/apps/ai.storyteller.gridcraft.png`
- `assets/app-icon/hicolor/512x512/apps/ai.storyteller.gridcraft.png`
- `assets/app-icon/hicolor/64x64/apps/ai.storyteller.gridcraft.png`
- `assets/app-icon/hicolor/scalable/apps/ai.storyteller.gridcraft.svg`
- `docs/brand/artcraft-logo-white.png`
- `docs/brand/artcraft-logo-white.svg`
- `docs/brand/artcraft-logo.png`
- `docs/brand/artcraft-logo.svg`
- `docs/brand/artcraft-mark-black.png`
- `docs/brand/artcraft-mark-black.svg`
- `docs/brand/artcraft-mark.png`
- `docs/brand/artcraft-mark.svg`

## Web page

`index.html` loads `everyapp-frame.js` first (progress, export rules, links) and sets a Content-Security-Policy
(`connect-src 'self' blob: data:`) so the app makes no requests to other sites.
