@a3s-lab/office 0.34.0 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -13,13 +13,13 @@
13
13
 
14
14
  <p align="center">
15
15
  <a href="https://github.com/A3S-Lab/Office/actions/workflows/ci.yml"><img alt="CI status" src="https://img.shields.io/github/actions/workflow/status/A3S-Lab/Office/ci.yml?branch=main&amp;style=flat-square&amp;label=CI"></a>
16
- <a href="https://a3s-lab.github.io/Office/"><img alt="Open the live Playground" src="https://img.shields.io/badge/Live_Playground-open-2f6fed?style=flat-square"></a>
16
+ <a href="https://a3s-lab.github.io/Office/playground/"><img alt="Open the live Playground" src="https://img.shields.io/badge/Live_Playground-open-2f6fed?style=flat-square"></a>
17
17
  <a href="#project-status"><img alt="Project status: pre-1.0" src="https://img.shields.io/badge/status-pre--1.0-7a5bd6?style=flat-square"></a>
18
18
  <a href="LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/license-MIT-159469?style=flat-square"></a>
19
19
  </p>
20
20
 
21
21
  <p align="center">
22
- <a href="https://a3s-lab.github.io/Office/">Playground</a> ·
22
+ <a href="https://a3s-lab.github.io/Office/playground/">Playground</a> ·
23
23
  <a href="https://a3s-lab.github.io/Office/docs/">Documentation</a> ·
24
24
  <a href="#quick-start">Quick start</a> ·
25
25
  <a href="#editor-capability-comparison">Editors</a> ·
@@ -56,9 +56,8 @@ workflows, and a separate Rust automation plane.
56
56
 
57
57
  ## Latest on `main`
58
58
 
59
- The `0.34.0` release plus the current `main` branch expose these capabilities
60
- as normal user-facing Playground templates, with matching implementation
61
- detail in the documentation:
59
+ The `0.36.0` release exposes these capabilities as normal user-facing
60
+ Playground templates, with matching implementation detail in the documentation:
62
61
 
63
62
  | Editor | Latest capability | Public entry |
64
63
  | --- | --- | --- |
@@ -69,18 +68,20 @@ detail in the documentation:
69
68
  | Writer | Native character shading with exact `w:shd` patterns, foreground/background color identity, explicit resets, authoring, and DOCX reopen | Playground **Latest capabilities → 字符底纹** · [Document reference](docs/latest/en/components/document.mdx#native-character-shading) |
70
69
  | Writer | Independent Latin, East Asian, and bidi proofing languages plus explicit `w:noProof` inclusion/exclusion | Playground **Latest capabilities → 校对语言** · [Document reference](docs/latest/en/components/document.mdx#native-proofing-languages) |
71
70
  | Spreadsheet | Complete common Data Validation input, blank/dropdown, and Stop/Warning/Information error settings with native XLSX round trips | Playground **Latest capabilities → 数据验证** · [Spreadsheet reference](docs/latest/en/components/spreadsheet.mdx#data-validation) |
71
+ | Spreadsheet | Bounded structured-reference calculation plus automatic calculated-column fill for table names/display names, contiguous columns, header/data/totals selectors, qualified references, and table-local current-row formulas across Rust/WASM and JavaScript fallback | Playground **Latest capabilities → 结构化引用** · [Spreadsheet reference](docs/latest/en/components/spreadsheet.mdx#structured-reference-calculation) |
72
72
  | PDF | Insert, delete, rotate, reorder, extract, merge, and split pages through a dedicated Web Worker, with Blob-level Undo/Redo and independent binary reopen verification | Playground **Latest capabilities → 组织 PDF 页面** · [PDF reference](docs/latest/en/components/pdf.mdx#page-organization) |
73
73
 
74
- All eight entries are reachable from the first Playground viewport. The seven
75
- content templates also remain under **新建**; **组织 PDF 页面** opens the normal
76
- PDF file workflow because page organization must operate on host-provided source
77
- bytes. The highlighted strip keeps each capability discoverable without a deep
78
- documentation section or an `?e2e=` fixture.
74
+ All nine entries are reachable from the first Playground viewport. The
75
+ filterable capability gallery groups releases by editor, publishes the source
76
+ release on every card, and grows from one shared metadata list instead of a
77
+ fixed-width strip. The eight content templates also remain under **新建**;
78
+ **组织 PDF 页面** opens the normal PDF file workflow because page organization
79
+ must operate on host-provided source bytes.
79
80
 
80
81
  ## See it working
81
82
 
82
83
  The images below are committed visual-regression baselines from the real
83
- [Playground](https://a3s-lab.github.io/Office/), not conceptual mockups.
84
+ [Playground](https://a3s-lab.github.io/Office/playground/), not conceptual mockups.
84
85
 
85
86
  <p align="center">
86
87
  <a href="visual-tests/__snapshots__/linux/desktop-1280/document.png">
@@ -150,8 +151,8 @@ baseline rather than one specific release.
150
151
  | Cells, sheets, navigation, and history | **Supported** — multiple sheets, sparse editing, search, clipboard, four-direction fill, exact formula/value copy from above, and undo/redo | Mature grid workflows across desktop and web |
151
152
  | Formatting and style rendering | **Partial** — native fonts, colors, borders, alignment, number formats, cell styles, all 17 native non-solid OOXML pattern fills, native linear/path XLSX gradients, and one Format Cells surface that authors none, solid, pattern, or gradient fills with exact geometry and 2–256 ordered stops; static date/time entry, contrast-safe font preview, native XLSX rich-text runs, selected-text font formatting, direct formula-bar/F2 insertion or deletion, and bounded authenticated formatted-HTML paste | Disjoint multi-edit rich-text authoring, broader themes, locale formats, and advanced style effects |
152
153
  | Ribbon and shortcuts | **Partial** — common Office-style Home/Data/View commands, grid-scoped shortcuts, and focused Font-dialog aliases | Larger command catalog and platform-specific accelerators |
153
- | Formulas and recalculation | **Partial** — dependency-aware calculation and common formula paths | Wider functions, arrays, volatile semantics, and calculation parity |
154
- | Tables, pivots, charts, and rules | **Partial** — native tables, pivots, charts, conditional formatting, and common validation rules with complete input/error-setting authoring | Calculated columns, slicers, pivot charts, custom/dependent validation rules, advanced analysis, and broader browser alert flows |
154
+ | Formulas and recalculation | **Partial** — dependency-aware calculation plus bounded structured references (`Table[Column]`, contiguous ranges, `#All`/`#Headers`/`#Data`/`#Totals`/`#This Row`, and `[@Column]`) in the shared Rust/WASM and JavaScript paths | Wider functions, arrays, volatile semantics, and calculation parity |
155
+ | Tables, pivots, charts, and rules | **Partial** — native tables, bounded structured-reference formulas, calculated-column formulas with automatic fill for newly inserted body rows, pivots, charts, conditional formatting, and common validation rules with complete input/error-setting authoring | Complete totals-row authoring, slicers, pivot charts, custom/dependent validation rules, advanced analysis, and broader browser alert flows |
155
156
  | Large worksheets | **Supported with boundaries** — maximum-dimension sparse import/editing and viewport-bounded Canvas painting | Highly optimized native grid with hardware-dependent limits |
156
157
  | Files and printing | **Partial** — XLS/XLSX/ODS/CSV import, XLSX export, and PDF output | Broader round trips, external data, print fidelity, and legacy conversion |
157
158
  | External data, macros, and specialist analysis | **Gap** — active macros are never executed; bounded models are still needed for data connections and solver-like tools | Established data, macro/add-in, scenario, and optimization ecosystems |
@@ -364,7 +365,7 @@ bun run playground
364
365
  ```
365
366
 
366
367
  Then open the local URL printed by the development server. For a zero-install
367
- tour, use the [live Playground](https://a3s-lab.github.io/Office/).
368
+ tour, use the [live Playground](https://a3s-lab.github.io/Office/playground/).
368
369
  Choose **体验格式修订**, open **审阅**, then **查看修订(2)** to inspect the
369
370
  independent Formatting and Paragraph Formatting cards and exercise accept or
370
371
  reject semantics.
@@ -739,9 +740,25 @@ stable IDs, workbook-unique names, zero-based ranges, ordered columns, filters,
739
740
  header/totals flags, and built-in style identity. XLSX import and export keep
740
741
  native table parts and relationships. Table styling is resolved only for the
741
742
  visible Canvas cells; converting a table to a range materializes the confirmed
742
- appearance without densifying unrelated worksheet space. Structured-reference
743
- calculation, calculated columns, complete totals authoring, slicers, and
744
- external/query tables are not yet claimed.
743
+ appearance without densifying unrelated worksheet space.
744
+
745
+ The calculation kernel resolves a bounded common structured-reference subset:
746
+ table names or `displayName`, worksheet-qualified tables, contiguous column
747
+ ranges, `#All`, `#Headers`, `#Data`, `#Totals`, `#This Row`, and table-local
748
+ `[@Column]` formulas. Rust/WASM and JavaScript fallback share the parser,
749
+ catalog, dependency graph, and no-history projection path. Requests accept at
750
+ most 1,024 tables and materialize at most 100,000 cells per structured range;
751
+ whole-row/column, three-dimensional, external, disjoint, missing, or
752
+ over-budget references fail closed. A validated calculated-column rule is
753
+ inferred from matching current-row formulas and fills only newly inserted table
754
+ body rows. Existing values, formulas, and manual exceptions always win; a
755
+ conflicting column fails closed and drops its automatic rule. XLSX
756
+ `<calculatedColumnFormula>` metadata round-trips with the leading `=` restored
757
+ in the controlled model, while unsafe or external formulas are omitted.
758
+ The Playground's **结构化引用** template shows a calculated `Revenue` column,
759
+ an insertion hint, a totals row, and a worksheet-qualified summary. Complete
760
+ totals-row authoring, slicers, and external/query tables remain explicit
761
+ boundaries.
745
762
 
746
763
  Use `downloadArtifact` to start a browser download or
747
764
  `createArtifactBlob` when your application owns upload and persistence.
@@ -1613,16 +1630,18 @@ committed visual contracts; see [CONTRIBUTING.md](CONTRIBUTING.md).
1613
1630
 
1614
1631
  ## Documentation
1615
1632
 
1616
- The published website keeps the interactive Playground at its root and builds
1617
- the searchable Rspress documentation center under `/docs/`. Simplified Chinese
1618
- is the stable default, English remains available from the language menu, and
1619
- the version menu switches between `latest` and frozen release documentation.
1620
- Search is scoped to the active language and version. Both surfaces use the
1621
- same deployment base, so preview, Pages, and fork deployments keep working
1622
- without hard-coded return URLs.
1633
+ The published website follows the A3S UI documentation model: the searchable
1634
+ Rspress documentation center owns the website root, while Playground is a
1635
+ primary top-navigation route under `/playground/`. Simplified Chinese is the
1636
+ stable default, English remains available from the language menu, and the
1637
+ version menu switches between `latest` and frozen release documentation.
1638
+ Search is scoped to the active language and version. Both surfaces derive
1639
+ their paths from one deployment base, so preview, Pages, and fork deployments
1640
+ keep working without hard-coded return URLs.
1623
1641
 
1624
- - [Live Playground](https://a3s-lab.github.io/Office/)
1642
+ - [Live Playground](https://a3s-lab.github.io/Office/playground/)
1625
1643
  - [Documentation center](https://a3s-lab.github.io/Office/docs/)
1644
+ - [A3S Office 0.36.0 documentation](https://a3s-lab.github.io/Office/docs/0.36.0/)
1626
1645
  - [A3S Office 0.34.0 documentation](https://a3s-lab.github.io/Office/docs/0.34.0/)
1627
1646
  - [A3S Office 0.33.0 documentation](https://a3s-lab.github.io/Office/docs/0.33.0/)
1628
1647
  - [A3S Office 0.32.0 documentation](https://a3s-lab.github.io/Office/docs/0.32.0/)