@sheetpane/grid 0.5.0 → 0.5.1
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/dist/llms-full.txt +132 -65
- package/dist/llms.txt +92 -92
- package/dist/web-types.json +1 -1
- package/package.json +4 -4
package/dist/llms-full.txt
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# sheetpane — the full public contract
|
|
2
2
|
|
|
3
|
-
> Everything llms.txt links to, inlined: the package READMEs, the docs, the laws and the component records. Version 0.5.
|
|
3
|
+
> Everything llms.txt links to, inlined: the package READMEs, the docs, the laws and the component records. Version 0.5.1; links pinned to v0.5.1.
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
<!-- source: README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
8
|
+
<!-- source: README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/README.md) -->
|
|
9
9
|
|
|
10
10
|
<div align="center">
|
|
11
11
|
|
|
@@ -40,6 +40,15 @@
|
|
|
40
40
|
|
|
41
41
|
---
|
|
42
42
|
|
|
43
|
+
## In plain words
|
|
44
|
+
|
|
45
|
+
- Your users have spreadsheets. You want them to open one **inside your app**, fix it, and get it back.
|
|
46
|
+
- sheetpane is a spreadsheet you drop into a web page. It opens `.xlsx` and `.csv`, lets people edit, and **points at the cells that are wrong**, with what the right value should be.
|
|
47
|
+
- It all happens in the browser tab: **the file is never uploaded anywhere.**
|
|
48
|
+
- When they press Download, they get **their own file back**, with only the cells they changed updated.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
43
52
|
## Three lines of HTML
|
|
44
53
|
|
|
45
54
|
```html
|
|
@@ -94,9 +103,7 @@ The rules behind it are [this JSON file](docs/readme/holdings.rules.json), with
|
|
|
94
103
|
|
|
95
104
|
## Get started
|
|
96
105
|
|
|
97
|
-
|
|
98
|
-
> **`0.1.0` is about to ship.** Until it is on npm, the install commands and the
|
|
99
|
-
> playground links will not work yet.
|
|
106
|
+
**`0.5.0` is on npm**, with all 20 packages on one version, published from CI with signed provenance.
|
|
100
107
|
|
|
101
108
|
```sh
|
|
102
109
|
npm install @sheetpane/grid
|
|
@@ -174,6 +181,23 @@ Anything else is refused with a clear message — never half-read.
|
|
|
174
181
|
|
|
175
182
|
---
|
|
176
183
|
|
|
184
|
+
## Is sheetpane for you?
|
|
185
|
+
|
|
186
|
+
**Choose sheetpane when:**
|
|
187
|
+
|
|
188
|
+
- your users bring **their own `.xlsx` or `.csv`** and must review or correct it inside your app (uploads, imports, reconciliations, data checks);
|
|
189
|
+
- the file **must not leave the browser**, for compliance, privacy or simply trust;
|
|
190
|
+
- you need the download to be **their file**, not a re-generated copy that loses their formatting;
|
|
191
|
+
- you want one component that works in **any framework**, typed, and testable.
|
|
192
|
+
|
|
193
|
+
**Look elsewhere when:**
|
|
194
|
+
|
|
195
|
+
- you need a **full spreadsheet app**: real-time collaboration, server storage, pivot recalculation, macros;
|
|
196
|
+
- your files are **`.xls`, `.xlsm`, `.ods` or `.numbers`**. They are refused by design;
|
|
197
|
+
- you need a **data grid for your own records** (sorting and paging an API's rows). sheetpane is built around a workbook file.
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
177
201
|
## How far it is proven
|
|
178
202
|
|
|
179
203
|
**Every feature has tests**, in Node and a real browser: Chromium on every
|
|
@@ -198,11 +222,53 @@ Until 1.0 the API may change between minor versions — the
|
|
|
198
222
|
|
|
199
223
|
</details>
|
|
200
224
|
|
|
201
|
-
**Found a file that opens wrongly?** [Open
|
|
225
|
+
**Found a file that opens wrongly?** [Open a file issue](https://github.com/arpitarya/sheetpane/issues/new?template=file_issue.yml)
|
|
202
226
|
with the file (or a minimal copy) attached — it is the most useful thing you can send.
|
|
203
227
|
|
|
204
228
|
---
|
|
205
229
|
|
|
230
|
+
## Roadmap
|
|
231
|
+
|
|
232
|
+
From the live queue ([`OPEN-WORK`](work/OPEN-WORK.md)) and the [backlog](work/BACKLOG.md). Nothing here is promised by a date.
|
|
233
|
+
|
|
234
|
+
| | what | state |
|
|
235
|
+
|---|---|---|
|
|
236
|
+
| 🔜 | **Files saved by Excel, Google Sheets, LibreOffice and Numbers** in the import tests (W-30) | needs those files saved by hand |
|
|
237
|
+
| 🔜 | **Firefox and WebKit green every night**, not just Chromium (W-70) | in progress |
|
|
238
|
+
| 🔜 | **The agent skills tried in Claude Code, Kiro and Codex** on a real prompt (W-48) | needs a hands-on run |
|
|
239
|
+
| 🔜 | Every sheet-protection switch honoured in Edit: format, sort, filter (B-038) | named |
|
|
240
|
+
| 🔜 | Excel 2010 `x14:` validation and conditional-format rules read and written (B-041) | named |
|
|
241
|
+
| 💭 | **Live pivot tables**, recalculated in the grid ([proposal](work/proposals/pivots.md)) | waiting for a host to ask |
|
|
242
|
+
| 💭 | **Dismiss** a workbook's own validation warning for one review ([proposal](work/proposals/dismiss-workbook-errors.md)) | proposed |
|
|
243
|
+
| 💭 | Keep the workbook in IndexedDB as well as memory (B-025) | deferred |
|
|
244
|
+
|
|
245
|
+
---
|
|
246
|
+
|
|
247
|
+
## FAQ
|
|
248
|
+
|
|
249
|
+
**Is my file uploaded anywhere?**
|
|
250
|
+
No. sheetpane reads, edits and checks it in the tab. Its only network requests are the GETs for the `src` and `rules-src` you set ([law L11](records/0013_LAW-11-workbook-stays-in-the-browser.md)).
|
|
251
|
+
|
|
252
|
+
**Do formulas work?**
|
|
253
|
+
With the [`formulas`](packages/formulas/README.md) plugin, yes: it recalculates as you edit, using IronCalc in WebAssembly, loaded only when you use it. Without it, a formula cell shows the value saved in the file.
|
|
254
|
+
|
|
255
|
+
**How do I save the edited file?**
|
|
256
|
+
Press Download, or call `export()` on `<sheetpane-excel>` for a `Blob` with every change. sheetpane keeps every change in memory; storing the file is your app's job ([law L6](records/0008_LAW-6-edits-in-memory-export-with-changes.md)).
|
|
257
|
+
|
|
258
|
+
**Can I use the reader and writer without the UI?**
|
|
259
|
+
Yes. [`@sheetpane/import`](packages/import/README.md) reads `.xlsx` / `.csv` into a plain JavaScript object, in a page or in Node. [`@sheetpane/export`](packages/export/README.md) turns one back into a file.
|
|
260
|
+
|
|
261
|
+
**Which frameworks?**
|
|
262
|
+
Any. The elements are standard web components; React, Vue, Svelte, Solid and Angular each need one line of setup ([guide](packages/grid/README.md#vue-svelte-solid-angular)).
|
|
263
|
+
|
|
264
|
+
**Will the API change?**
|
|
265
|
+
Until 1.0 it can change between minor versions. The [CHANGELOG](CHANGELOG.md) says what changed and what to do, under *Before you upgrade*.
|
|
266
|
+
|
|
267
|
+
**Where do the error rules come from?**
|
|
268
|
+
Three places: a JSON rules file, column rules you set in code, and the workbook's own data validation (with the [`validation`](packages/validation/README.md) plugin). Every error code is listed in [`docs/ERRORS.md`](docs/ERRORS.md).
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
206
272
|
## Packages
|
|
207
273
|
|
|
208
274
|
**One version for all**, ESM with types.
|
|
@@ -226,8 +292,9 @@ open source ([law L2](records/0004_LAW-2-foss-dependencies.md)).
|
|
|
226
292
|
|
|
227
293
|
## Contributing
|
|
228
294
|
|
|
229
|
-
**Welcome — especially failing files and bug reports.**
|
|
230
|
-
|
|
295
|
+
**Welcome — especially failing files and bug reports.** Read [CONTRIBUTING.md](CONTRIBUTING.md); report security issues privately ([SECURITY.md](SECURITY.md)); everyone follows the [Code of Conduct](CODE_OF_CONDUCT.md).
|
|
296
|
+
|
|
297
|
+
You need **Node 22+**, **pnpm 10** and [**just**](https://just.systems).
|
|
231
298
|
|
|
232
299
|
```sh
|
|
233
300
|
just install # pnpm install --frozen-lockfile
|
|
@@ -262,14 +329,14 @@ the evidence**. Start at [`CLAUDE.md`](CLAUDE.md) if you are one.
|
|
|
262
329
|
|
|
263
330
|
<div align="center">
|
|
264
331
|
|
|
265
|
-
[MIT](LICENSE) © Arpit Arya
|
|
332
|
+
[MIT licence](LICENSE) © Arpit Arya — free for commercial and private use
|
|
266
333
|
|
|
267
334
|
</div>
|
|
268
335
|
|
|
269
336
|
|
|
270
337
|
---
|
|
271
338
|
|
|
272
|
-
<!-- source: packages/grid/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
339
|
+
<!-- source: packages/grid/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/grid/README.md) -->
|
|
273
340
|
|
|
274
341
|
# @sheetpane/grid
|
|
275
342
|
|
|
@@ -986,7 +1053,7 @@ The specs are the records [SR-GRID](../../records/0105_GRID.md) and
|
|
|
986
1053
|
|
|
987
1054
|
---
|
|
988
1055
|
|
|
989
|
-
<!-- source: packages/export/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
1056
|
+
<!-- source: packages/export/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/export/README.md) -->
|
|
990
1057
|
|
|
991
1058
|
# @sheetpane/export
|
|
992
1059
|
|
|
@@ -1202,7 +1269,7 @@ The spec is the record [SR-EXPORT](../../records/0103_EXPORT.md).
|
|
|
1202
1269
|
|
|
1203
1270
|
---
|
|
1204
1271
|
|
|
1205
|
-
<!-- source: packages/import/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
1272
|
+
<!-- source: packages/import/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/import/README.md) -->
|
|
1206
1273
|
|
|
1207
1274
|
# @sheetpane/import
|
|
1208
1275
|
|
|
@@ -1269,7 +1336,7 @@ The spec is the record [SR-IMPORT](../../records/0104_IMPORT.md).
|
|
|
1269
1336
|
|
|
1270
1337
|
---
|
|
1271
1338
|
|
|
1272
|
-
<!-- source: packages/numfmt/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
1339
|
+
<!-- source: packages/numfmt/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/numfmt/README.md) -->
|
|
1273
1340
|
|
|
1274
1341
|
# @sheetpane/numfmt
|
|
1275
1342
|
|
|
@@ -1380,7 +1447,7 @@ How plugins plug in: [`work/compare/plugins.compare.md`](../../work/compare/plug
|
|
|
1380
1447
|
|
|
1381
1448
|
---
|
|
1382
1449
|
|
|
1383
|
-
<!-- source: packages/formulas/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
1450
|
+
<!-- source: packages/formulas/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/formulas/README.md) -->
|
|
1384
1451
|
|
|
1385
1452
|
# @sheetpane/formulas
|
|
1386
1453
|
|
|
@@ -1493,7 +1560,7 @@ How plugins plug in: [`work/compare/plugins.compare.md`](../../work/compare/plug
|
|
|
1493
1560
|
|
|
1494
1561
|
---
|
|
1495
1562
|
|
|
1496
|
-
<!-- source: packages/styles/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
1563
|
+
<!-- source: packages/styles/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/styles/README.md) -->
|
|
1497
1564
|
|
|
1498
1565
|
# @sheetpane/styles
|
|
1499
1566
|
|
|
@@ -1599,7 +1666,7 @@ How plugins plug in: [`work/compare/plugins.compare.md`](../../work/compare/plug
|
|
|
1599
1666
|
|
|
1600
1667
|
---
|
|
1601
1668
|
|
|
1602
|
-
<!-- source: packages/validation/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
1669
|
+
<!-- source: packages/validation/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/validation/README.md) -->
|
|
1603
1670
|
|
|
1604
1671
|
# @sheetpane/validation
|
|
1605
1672
|
|
|
@@ -1830,7 +1897,7 @@ the rule rows when you need them.
|
|
|
1830
1897
|
|
|
1831
1898
|
---
|
|
1832
1899
|
|
|
1833
|
-
<!-- source: packages/condfmt/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
1900
|
+
<!-- source: packages/condfmt/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/condfmt/README.md) -->
|
|
1834
1901
|
|
|
1835
1902
|
# @sheetpane/condfmt
|
|
1836
1903
|
|
|
@@ -1948,7 +2015,7 @@ How plugins plug in: [`work/compare/plugins.compare.md`](../../work/compare/plug
|
|
|
1948
2015
|
|
|
1949
2016
|
---
|
|
1950
2017
|
|
|
1951
|
-
<!-- source: packages/images/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
2018
|
+
<!-- source: packages/images/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/images/README.md) -->
|
|
1952
2019
|
|
|
1953
2020
|
# @sheetpane/images
|
|
1954
2021
|
|
|
@@ -2034,7 +2101,7 @@ LibreOffice are owed by W-30.
|
|
|
2034
2101
|
|
|
2035
2102
|
---
|
|
2036
2103
|
|
|
2037
|
-
<!-- source: packages/charts/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
2104
|
+
<!-- source: packages/charts/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/charts/README.md) -->
|
|
2038
2105
|
|
|
2039
2106
|
# @sheetpane/charts
|
|
2040
2107
|
|
|
@@ -2168,7 +2235,7 @@ How plugins plug in: [`work/compare/plugins.compare.md`](../../work/compare/plug
|
|
|
2168
2235
|
|
|
2169
2236
|
---
|
|
2170
2237
|
|
|
2171
|
-
<!-- source: packages/comments/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
2238
|
+
<!-- source: packages/comments/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/comments/README.md) -->
|
|
2172
2239
|
|
|
2173
2240
|
# @sheetpane/comments
|
|
2174
2241
|
|
|
@@ -2308,7 +2375,7 @@ Spec: [`work/open/W-22-comments.md`](../../work/open/W-22-comments.md).
|
|
|
2308
2375
|
|
|
2309
2376
|
---
|
|
2310
2377
|
|
|
2311
|
-
<!-- source: packages/visibility/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
2378
|
+
<!-- source: packages/visibility/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/visibility/README.md) -->
|
|
2312
2379
|
|
|
2313
2380
|
# @sheetpane/visibility
|
|
2314
2381
|
|
|
@@ -2348,7 +2415,7 @@ Spec: [SR-VISIBILITY](../../records/0121_VISIBILITY.md). MIT.
|
|
|
2348
2415
|
|
|
2349
2416
|
---
|
|
2350
2417
|
|
|
2351
|
-
<!-- source: packages/tables/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
2418
|
+
<!-- source: packages/tables/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/tables/README.md) -->
|
|
2352
2419
|
|
|
2353
2420
|
# @sheetpane/tables
|
|
2354
2421
|
|
|
@@ -2395,7 +2462,7 @@ Spec: [SR-TABLES](../../records/0122_TABLES.md). MIT.
|
|
|
2395
2462
|
|
|
2396
2463
|
---
|
|
2397
2464
|
|
|
2398
|
-
<!-- source: packages/compare/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
2465
|
+
<!-- source: packages/compare/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/compare/README.md) -->
|
|
2399
2466
|
|
|
2400
2467
|
# @sheetpane/compare
|
|
2401
2468
|
|
|
@@ -2467,7 +2534,7 @@ Spec: [SR-COMPARE](../../records/0124_COMPARE.md). MIT.
|
|
|
2467
2534
|
|
|
2468
2535
|
---
|
|
2469
2536
|
|
|
2470
|
-
<!-- source: packages/review/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
2537
|
+
<!-- source: packages/review/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/review/README.md) -->
|
|
2471
2538
|
|
|
2472
2539
|
# @sheetpane/review
|
|
2473
2540
|
|
|
@@ -2599,7 +2666,7 @@ Spec: [SR-REVIEW](../../records/0123_REVIEW.md). MIT.
|
|
|
2599
2666
|
|
|
2600
2667
|
---
|
|
2601
2668
|
|
|
2602
|
-
<!-- source: packages/fixtures/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
2669
|
+
<!-- source: packages/fixtures/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/fixtures/README.md) -->
|
|
2603
2670
|
|
|
2604
2671
|
# @sheetpane/fixtures
|
|
2605
2672
|
|
|
@@ -2639,7 +2706,7 @@ The spec is the record [SR-FIXTURES](../../records/0115_FIXTURES.md).
|
|
|
2639
2706
|
|
|
2640
2707
|
---
|
|
2641
2708
|
|
|
2642
|
-
<!-- source: packages/testing/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
2709
|
+
<!-- source: packages/testing/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/testing/README.md) -->
|
|
2643
2710
|
|
|
2644
2711
|
# @sheetpane/testing
|
|
2645
2712
|
|
|
@@ -2689,7 +2756,7 @@ The spec is the record [SR-TESTING](../../records/0118_TESTING.md).
|
|
|
2689
2756
|
|
|
2690
2757
|
---
|
|
2691
2758
|
|
|
2692
|
-
<!-- source: packages/skills/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
2759
|
+
<!-- source: packages/skills/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/README.md) -->
|
|
2693
2760
|
|
|
2694
2761
|
# @sheetpane/skills
|
|
2695
2762
|
|
|
@@ -2760,7 +2827,7 @@ the elements do not have. The spec is the record
|
|
|
2760
2827
|
|
|
2761
2828
|
---
|
|
2762
2829
|
|
|
2763
|
-
<!-- source: packages/mcp/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
2830
|
+
<!-- source: packages/mcp/README.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/mcp/README.md) -->
|
|
2764
2831
|
|
|
2765
2832
|
# @sheetpane/mcp
|
|
2766
2833
|
|
|
@@ -2801,7 +2868,7 @@ Spec: [SR-MCP](../../records/0119_MCP.md). MIT.
|
|
|
2801
2868
|
|
|
2802
2869
|
---
|
|
2803
2870
|
|
|
2804
|
-
<!-- source: docs/ARCHITECTURE.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
2871
|
+
<!-- source: docs/ARCHITECTURE.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/docs/ARCHITECTURE.md) -->
|
|
2805
2872
|
|
|
2806
2873
|
# sheetpane — architecture
|
|
2807
2874
|
|
|
@@ -3040,7 +3107,7 @@ How it is all tested — Vitest, real browsers, fixtures, goldens — is the
|
|
|
3040
3107
|
|
|
3041
3108
|
---
|
|
3042
3109
|
|
|
3043
|
-
<!-- source: docs/GLOSSARY.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
3110
|
+
<!-- source: docs/GLOSSARY.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/docs/GLOSSARY.md) -->
|
|
3044
3111
|
|
|
3045
3112
|
# Glossary
|
|
3046
3113
|
|
|
@@ -3081,7 +3148,7 @@ How it is all tested — Vitest, real browsers, fixtures, goldens — is the
|
|
|
3081
3148
|
|
|
3082
3149
|
---
|
|
3083
3150
|
|
|
3084
|
-
<!-- source: docs/ERRORS.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
3151
|
+
<!-- source: docs/ERRORS.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/docs/ERRORS.md) -->
|
|
3085
3152
|
|
|
3086
3153
|
# Error codes
|
|
3087
3154
|
|
|
@@ -4162,7 +4229,7 @@ throws: each problem is one `note` error, `author: 'host'`, with its `code`.
|
|
|
4162
4229
|
|
|
4163
4230
|
---
|
|
4164
4231
|
|
|
4165
|
-
<!-- source: records/0001_LAWS.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
4232
|
+
<!-- source: records/0001_LAWS.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0001_LAWS.md) -->
|
|
4166
4233
|
|
|
4167
4234
|
# SR-LAWS — the laws have exactly one home each
|
|
4168
4235
|
|
|
@@ -4250,7 +4317,7 @@ carries a law's normative text.
|
|
|
4250
4317
|
|
|
4251
4318
|
---
|
|
4252
4319
|
|
|
4253
|
-
<!-- source: records/0002_LAW-0-authority.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
4320
|
+
<!-- source: records/0002_LAW-0-authority.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0002_LAW-0-authority.md) -->
|
|
4254
4321
|
|
|
4255
4322
|
# SR-LAW-0 — L0, the records are the only source of truth
|
|
4256
4323
|
|
|
@@ -4366,7 +4433,7 @@ is never listed here.*
|
|
|
4366
4433
|
|
|
4367
4434
|
---
|
|
4368
4435
|
|
|
4369
|
-
<!-- source: records/0003_LAW-1-retired-records-archived.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
4436
|
+
<!-- source: records/0003_LAW-1-retired-records-archived.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0003_LAW-1-retired-records-archived.md) -->
|
|
4370
4437
|
|
|
4371
4438
|
# SR-LAW-1 — L1, a retired record is archived, never deleted
|
|
4372
4439
|
|
|
@@ -4459,7 +4526,7 @@ is never listed here.*
|
|
|
4459
4526
|
|
|
4460
4527
|
---
|
|
4461
4528
|
|
|
4462
|
-
<!-- source: records/0004_LAW-2-foss-dependencies.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
4529
|
+
<!-- source: records/0004_LAW-2-foss-dependencies.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0004_LAW-2-foss-dependencies.md) -->
|
|
4463
4530
|
|
|
4464
4531
|
# SR-LAW-2 — L2, every dependency is free and open source
|
|
4465
4532
|
|
|
@@ -4568,7 +4635,7 @@ is never listed here.*
|
|
|
4568
4635
|
|
|
4569
4636
|
---
|
|
4570
4637
|
|
|
4571
|
-
<!-- source: records/0005_LAW-3-xlsx-and-csv-only.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
4638
|
+
<!-- source: records/0005_LAW-3-xlsx-and-csv-only.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0005_LAW-3-xlsx-and-csv-only.md) -->
|
|
4572
4639
|
|
|
4573
4640
|
# SR-LAW-3 — L3, sheetpane supports XLSX and CSV only
|
|
4574
4641
|
|
|
@@ -4681,7 +4748,7 @@ is never listed here.*
|
|
|
4681
4748
|
|
|
4682
4749
|
---
|
|
4683
4750
|
|
|
4684
|
-
<!-- source: records/0006_LAW-4-web-component.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
4751
|
+
<!-- source: records/0006_LAW-4-web-component.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0006_LAW-4-web-component.md) -->
|
|
4685
4752
|
|
|
4686
4753
|
# SR-LAW-4 — L4, sheetpane is always a web component
|
|
4687
4754
|
|
|
@@ -4801,7 +4868,7 @@ is never listed here.*
|
|
|
4801
4868
|
|
|
4802
4869
|
---
|
|
4803
4870
|
|
|
4804
|
-
<!-- source: records/0007_LAW-5-host-font.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
4871
|
+
<!-- source: records/0007_LAW-5-host-font.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0007_LAW-5-host-font.md) -->
|
|
4805
4872
|
|
|
4806
4873
|
# SR-LAW-5 — L5, the font is the browser's default unless the host sets one
|
|
4807
4874
|
|
|
@@ -4920,7 +4987,7 @@ is never listed here.*
|
|
|
4920
4987
|
|
|
4921
4988
|
---
|
|
4922
4989
|
|
|
4923
|
-
<!-- source: records/0008_LAW-6-edits-in-memory-export-with-changes.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
4990
|
+
<!-- source: records/0008_LAW-6-edits-in-memory-export-with-changes.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0008_LAW-6-edits-in-memory-export-with-changes.md) -->
|
|
4924
4991
|
|
|
4925
4992
|
# SR-LAW-6 — L6, every change is held in memory and export carries it
|
|
4926
4993
|
|
|
@@ -5031,7 +5098,7 @@ is never listed here.*
|
|
|
5031
5098
|
|
|
5032
5099
|
---
|
|
5033
5100
|
|
|
5034
|
-
<!-- source: records/0009_LAW-7-surfaces-always-in-sync.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
5101
|
+
<!-- source: records/0009_LAW-7-surfaces-always-in-sync.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0009_LAW-7-surfaces-always-in-sync.md) -->
|
|
5035
5102
|
|
|
5036
5103
|
# SR-LAW-7 — L7, the view, edit and error components are always in sync
|
|
5037
5104
|
|
|
@@ -5140,7 +5207,7 @@ is never listed here.*
|
|
|
5140
5207
|
|
|
5141
5208
|
---
|
|
5142
5209
|
|
|
5143
|
-
<!-- source: records/0010_LAW-8-npm-package.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
5210
|
+
<!-- source: records/0010_LAW-8-npm-package.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0010_LAW-8-npm-package.md) -->
|
|
5144
5211
|
|
|
5145
5212
|
# SR-LAW-8 — L8, sheetpane is consumed as an npm package
|
|
5146
5213
|
|
|
@@ -5249,7 +5316,7 @@ is never listed here.*
|
|
|
5249
5316
|
|
|
5250
5317
|
---
|
|
5251
5318
|
|
|
5252
|
-
<!-- source: records/0011_LAW-9-memory-is-a-javascript-object.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
5319
|
+
<!-- source: records/0011_LAW-9-memory-is-a-javascript-object.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0011_LAW-9-memory-is-a-javascript-object.md) -->
|
|
5253
5320
|
|
|
5254
5321
|
# SR-LAW-9 — L9, memory means a JavaScript object, for now
|
|
5255
5322
|
|
|
@@ -5347,7 +5414,7 @@ is never listed here.*
|
|
|
5347
5414
|
|
|
5348
5415
|
---
|
|
5349
5416
|
|
|
5350
|
-
<!-- source: records/0101_DOWNLOAD.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
5417
|
+
<!-- source: records/0101_DOWNLOAD.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0101_DOWNLOAD.md) -->
|
|
5351
5418
|
|
|
5352
5419
|
# SR-DOWNLOAD — download(): export output in, a saved .xlsx or .csv out
|
|
5353
5420
|
|
|
@@ -5593,7 +5660,7 @@ is never listed here.*
|
|
|
5593
5660
|
|
|
5594
5661
|
---
|
|
5595
5662
|
|
|
5596
|
-
<!-- source: records/0102_BUILD.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
5663
|
+
<!-- source: records/0102_BUILD.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0102_BUILD.md) -->
|
|
5597
5664
|
|
|
5598
5665
|
# SR-BUILD — the monorepo build
|
|
5599
5666
|
|
|
@@ -5961,7 +6028,7 @@ is never listed here.*
|
|
|
5961
6028
|
|
|
5962
6029
|
---
|
|
5963
6030
|
|
|
5964
|
-
<!-- source: records/0103_EXPORT.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
6031
|
+
<!-- source: records/0103_EXPORT.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0103_EXPORT.md) -->
|
|
5965
6032
|
|
|
5966
6033
|
# SR-EXPORT — @sheetpane/export
|
|
5967
6034
|
|
|
@@ -6283,7 +6350,7 @@ is never listed here.*
|
|
|
6283
6350
|
|
|
6284
6351
|
---
|
|
6285
6352
|
|
|
6286
|
-
<!-- source: records/0104_IMPORT.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
6353
|
+
<!-- source: records/0104_IMPORT.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0104_IMPORT.md) -->
|
|
6287
6354
|
|
|
6288
6355
|
# SR-IMPORT — @sheetpane/import
|
|
6289
6356
|
|
|
@@ -6581,7 +6648,7 @@ is never listed here.*
|
|
|
6581
6648
|
|
|
6582
6649
|
---
|
|
6583
6650
|
|
|
6584
|
-
<!-- source: records/0105_GRID.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
6651
|
+
<!-- source: records/0105_GRID.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0105_GRID.md) -->
|
|
6585
6652
|
|
|
6586
6653
|
# SR-GRID — @sheetpane/grid
|
|
6587
6654
|
|
|
@@ -7770,7 +7837,7 @@ is never listed here.*
|
|
|
7770
7837
|
|
|
7771
7838
|
---
|
|
7772
7839
|
|
|
7773
|
-
<!-- source: records/0106_ERRORS.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
7840
|
+
<!-- source: records/0106_ERRORS.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0106_ERRORS.md) -->
|
|
7774
7841
|
|
|
7775
7842
|
# SR-ERRORS — <sheetpane-errors>
|
|
7776
7843
|
|
|
@@ -8090,7 +8157,7 @@ is never listed here.*
|
|
|
8090
8157
|
|
|
8091
8158
|
---
|
|
8092
8159
|
|
|
8093
|
-
<!-- source: records/0107_IMAGES.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
8160
|
+
<!-- source: records/0107_IMAGES.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0107_IMAGES.md) -->
|
|
8094
8161
|
|
|
8095
8162
|
# SR-IMAGES — @sheetpane/images
|
|
8096
8163
|
|
|
@@ -8218,7 +8285,7 @@ is never listed here.*
|
|
|
8218
8285
|
|
|
8219
8286
|
---
|
|
8220
8287
|
|
|
8221
|
-
<!-- source: records/0108_VALIDATION.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
8288
|
+
<!-- source: records/0108_VALIDATION.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0108_VALIDATION.md) -->
|
|
8222
8289
|
|
|
8223
8290
|
# SR-VALIDATION — @sheetpane/validation
|
|
8224
8291
|
|
|
@@ -8470,7 +8537,7 @@ is never listed here.*
|
|
|
8470
8537
|
|
|
8471
8538
|
---
|
|
8472
8539
|
|
|
8473
|
-
<!-- source: records/0109_NUMFMT.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
8540
|
+
<!-- source: records/0109_NUMFMT.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0109_NUMFMT.md) -->
|
|
8474
8541
|
|
|
8475
8542
|
# SR-NUMFMT — @sheetpane/numfmt
|
|
8476
8543
|
|
|
@@ -8606,7 +8673,7 @@ is never listed here.*
|
|
|
8606
8673
|
|
|
8607
8674
|
---
|
|
8608
8675
|
|
|
8609
|
-
<!-- source: records/0110_STYLES.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
8676
|
+
<!-- source: records/0110_STYLES.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0110_STYLES.md) -->
|
|
8610
8677
|
|
|
8611
8678
|
# SR-STYLES — @sheetpane/styles
|
|
8612
8679
|
|
|
@@ -8772,7 +8839,7 @@ is never listed here.*
|
|
|
8772
8839
|
|
|
8773
8840
|
---
|
|
8774
8841
|
|
|
8775
|
-
<!-- source: records/0111_FORMULAS.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
8842
|
+
<!-- source: records/0111_FORMULAS.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0111_FORMULAS.md) -->
|
|
8776
8843
|
|
|
8777
8844
|
# SR-FORMULAS — @sheetpane/formulas
|
|
8778
8845
|
|
|
@@ -8942,7 +9009,7 @@ is never listed here.*
|
|
|
8942
9009
|
|
|
8943
9010
|
---
|
|
8944
9011
|
|
|
8945
|
-
<!-- source: records/0112_COMMENTS.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
9012
|
+
<!-- source: records/0112_COMMENTS.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0112_COMMENTS.md) -->
|
|
8946
9013
|
|
|
8947
9014
|
# SR-COMMENTS — @sheetpane/comments
|
|
8948
9015
|
|
|
@@ -9115,7 +9182,7 @@ is never listed here.*
|
|
|
9115
9182
|
|
|
9116
9183
|
---
|
|
9117
9184
|
|
|
9118
|
-
<!-- source: records/0113_CHARTS.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
9185
|
+
<!-- source: records/0113_CHARTS.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0113_CHARTS.md) -->
|
|
9119
9186
|
|
|
9120
9187
|
# SR-CHARTS — @sheetpane/charts
|
|
9121
9188
|
|
|
@@ -9267,7 +9334,7 @@ is never listed here.*
|
|
|
9267
9334
|
|
|
9268
9335
|
---
|
|
9269
9336
|
|
|
9270
|
-
<!-- source: records/0114_CONDFMT.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
9337
|
+
<!-- source: records/0114_CONDFMT.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0114_CONDFMT.md) -->
|
|
9271
9338
|
|
|
9272
9339
|
# SR-CONDFMT — @sheetpane/condfmt
|
|
9273
9340
|
|
|
@@ -9420,7 +9487,7 @@ is never listed here.*
|
|
|
9420
9487
|
|
|
9421
9488
|
---
|
|
9422
9489
|
|
|
9423
|
-
<!-- source: records/0115_FIXTURES.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
9490
|
+
<!-- source: records/0115_FIXTURES.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0115_FIXTURES.md) -->
|
|
9424
9491
|
|
|
9425
9492
|
# SR-FIXTURES — @sheetpane/fixtures
|
|
9426
9493
|
|
|
@@ -9572,7 +9639,7 @@ is never listed here.*
|
|
|
9572
9639
|
|
|
9573
9640
|
---
|
|
9574
9641
|
|
|
9575
|
-
<!-- source: records/0116_SKILLS.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
9642
|
+
<!-- source: records/0116_SKILLS.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0116_SKILLS.md) -->
|
|
9576
9643
|
|
|
9577
9644
|
# SR-SKILLS — @sheetpane/skills
|
|
9578
9645
|
|
|
@@ -9766,7 +9833,7 @@ is never listed here.*
|
|
|
9766
9833
|
|
|
9767
9834
|
---
|
|
9768
9835
|
|
|
9769
|
-
<!-- source: records/0117_CODES.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
9836
|
+
<!-- source: records/0117_CODES.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0117_CODES.md) -->
|
|
9770
9837
|
|
|
9771
9838
|
# SR-CODES — stable error codes
|
|
9772
9839
|
|
|
@@ -9935,7 +10002,7 @@ is never listed here.*
|
|
|
9935
10002
|
|
|
9936
10003
|
---
|
|
9937
10004
|
|
|
9938
|
-
<!-- source: records/0118_TESTING.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
10005
|
+
<!-- source: records/0118_TESTING.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0118_TESTING.md) -->
|
|
9939
10006
|
|
|
9940
10007
|
# SR-TESTING — @sheetpane/testing
|
|
9941
10008
|
|
|
@@ -10037,7 +10104,7 @@ is never listed here.*
|
|
|
10037
10104
|
|
|
10038
10105
|
---
|
|
10039
10106
|
|
|
10040
|
-
<!-- source: records/0119_MCP.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
10107
|
+
<!-- source: records/0119_MCP.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0119_MCP.md) -->
|
|
10041
10108
|
|
|
10042
10109
|
# SR-MCP — @sheetpane/mcp
|
|
10043
10110
|
|
|
@@ -10218,7 +10285,7 @@ is never listed here.*
|
|
|
10218
10285
|
|
|
10219
10286
|
---
|
|
10220
10287
|
|
|
10221
|
-
<!-- source: records/0121_VISIBILITY.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
10288
|
+
<!-- source: records/0121_VISIBILITY.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0121_VISIBILITY.md) -->
|
|
10222
10289
|
|
|
10223
10290
|
# SR-VISIBILITY — @sheetpane/visibility
|
|
10224
10291
|
|
|
@@ -10332,7 +10399,7 @@ is never listed here.*
|
|
|
10332
10399
|
|
|
10333
10400
|
---
|
|
10334
10401
|
|
|
10335
|
-
<!-- source: records/0122_TABLES.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
10402
|
+
<!-- source: records/0122_TABLES.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0122_TABLES.md) -->
|
|
10336
10403
|
|
|
10337
10404
|
# SR-TABLES — @sheetpane/tables
|
|
10338
10405
|
|
|
@@ -10454,7 +10521,7 @@ is never listed here.*
|
|
|
10454
10521
|
|
|
10455
10522
|
---
|
|
10456
10523
|
|
|
10457
|
-
<!-- source: records/0123_REVIEW.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
10524
|
+
<!-- source: records/0123_REVIEW.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0123_REVIEW.md) -->
|
|
10458
10525
|
|
|
10459
10526
|
# SR-REVIEW — @sheetpane/review
|
|
10460
10527
|
|
|
@@ -10653,7 +10720,7 @@ is never listed here.*
|
|
|
10653
10720
|
|
|
10654
10721
|
---
|
|
10655
10722
|
|
|
10656
|
-
<!-- source: records/0124_COMPARE.md (https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
10723
|
+
<!-- source: records/0124_COMPARE.md (https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0124_COMPARE.md) -->
|
|
10657
10724
|
|
|
10658
10725
|
# SR-COMPARE — @sheetpane/compare
|
|
10659
10726
|
|
package/dist/llms.txt
CHANGED
|
@@ -1,114 +1,114 @@
|
|
|
1
1
|
# sheetpane
|
|
2
2
|
|
|
3
|
-
> View, edit and review .xlsx and .csv files inside any web page: two web components — <sheetpane-excel> (the sheet, View or Edit) and <sheetpane-errors> (the review list) — kept in sync through one in-memory workbook per `pane`, an export that writes every change into a copy of the upload, eight optional plugins, column rules and a JSON rules file. Nothing is uploaded. Version 0.5.
|
|
3
|
+
> View, edit and review .xlsx and .csv files inside any web page: two web components — <sheetpane-excel> (the sheet, View or Edit) and <sheetpane-errors> (the review list) — kept in sync through one in-memory workbook per `pane`, an export that writes every change into a copy of the upload, eight optional plugins, column rules and a JSON rules file. Nothing is uploaded. Version 0.5.1.
|
|
4
4
|
|
|
5
5
|
Every rule lives in one standing record; READMEs and skills point to them. The full text of everything below is in llms-full.txt.
|
|
6
6
|
|
|
7
7
|
## Start
|
|
8
|
-
- [sheetpane](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
9
|
-
- [@sheetpane/grid](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
10
|
-
- [Architecture](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
11
|
-
- [Changelog](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
8
|
+
- [sheetpane](https://github.com/arpitarya/sheetpane/blob/v0.5.1/README.md): what it is, the packages, try it
|
|
9
|
+
- [@sheetpane/grid](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/grid/README.md): the elements: attributes, properties, events, column rules, rules file, React hooks, styling
|
|
10
|
+
- [Architecture](https://github.com/arpitarya/sheetpane/blob/v0.5.1/docs/ARCHITECTURE.md): packages, elements, the one workbook, the flows
|
|
11
|
+
- [Changelog](https://github.com/arpitarya/sheetpane/blob/v0.5.1/CHANGELOG.md): what changed, breaking changes first
|
|
12
12
|
|
|
13
13
|
## Try it
|
|
14
14
|
- [Live playground](https://arpitarya.github.io/sheetpane/): the plugin gallery in plain HTML; `/react/` in React (deployed from each release)
|
|
15
|
-
- [Starters](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
15
|
+
- [Starters](https://github.com/arpitarya/sheetpane/blob/v0.5.1/examples/starters/README.md): one starter app per framework, with an Open in StackBlitz link
|
|
16
16
|
|
|
17
17
|
## Elements
|
|
18
|
-
- [SR-GRID](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
19
|
-
- [SR-ERRORS](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
20
|
-
- [custom-elements.json](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
21
|
-
- [Vue, Svelte, Solid, Angular](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
22
|
-
- [@sheetpane/import](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
23
|
-
- [@sheetpane/export](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
18
|
+
- [SR-GRID](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0105_GRID.md): the sheet, the store, the plugin host, events, rules, test hooks
|
|
19
|
+
- [SR-ERRORS](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0106_ERRORS.md): the error list and the New error form
|
|
20
|
+
- [custom-elements.json](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/grid/custom-elements.json): both elements as a Custom Elements Manifest: attributes, properties, methods, events with payload types, slots, parts, --sp-* properties
|
|
21
|
+
- [Vue, Svelte, Solid, Angular](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/grid/README.md#vue-svelte-solid-angular): the elements in each framework; typings @sheetpane/grid/jsx, /vue, /svelte, /solid
|
|
22
|
+
- [@sheetpane/import](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/import/README.md): read .xlsx / .csv into a JavaScript workbook
|
|
23
|
+
- [@sheetpane/export](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/export/README.md): write .xlsx / .csv, patch the original, download()
|
|
24
24
|
|
|
25
25
|
## Plugins
|
|
26
|
-
- [@sheetpane/numfmt](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
27
|
-
- [@sheetpane/formulas](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
28
|
-
- [@sheetpane/styles](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
29
|
-
- [@sheetpane/validation](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
30
|
-
- [@sheetpane/condfmt](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
31
|
-
- [@sheetpane/images](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
32
|
-
- [@sheetpane/charts](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
33
|
-
- [@sheetpane/comments](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
34
|
-
- [@sheetpane/visibility](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
35
|
-
- [@sheetpane/tables](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
36
|
-
- [@sheetpane/compare](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
37
|
-
- [@sheetpane/review](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
26
|
+
- [@sheetpane/numfmt](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/numfmt/README.md): Excel number formats for sheetpane — currency, dates, fractions, elapsed time, conditional sections, locales — as a plugin on the `format` hook.
|
|
27
|
+
- [@sheetpane/formulas](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/formulas/README.md): Formula recalculation for sheetpane — edit a cell and every dependent formula updates — as a plugin on the `derive` hook, backed by IronCalc (WASM, lazy-loaded).
|
|
28
|
+
- [@sheetpane/styles](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/styles/README.md): Cell styles for sheetpane — fill, bold, italic, underline, strikethrough, colour, size, borders, alignment, wrap — as a plugin on the `decorate` hook. Never a font family (SR-LAW-5): the host's font is the font.
|
|
29
|
+
- [@sheetpane/validation](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/validation/README.md): The workbook's own data-validation rules, checked when the file loads and after every edit. Each cell that breaks a rule shows up as a warning in `<sheetpane-errors>`.
|
|
30
|
+
- [@sheetpane/condfmt](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/condfmt/README.md): Conditional formatting for sheetpane — the file's own `<conditionalFormatting>` rules drawn as Excel draws them: value and text rules, duplicates, top / bottom, averages, colour scales, data bars and formula rules — as a plugin on the `decorate` hook, after `@sheetpane/styles`. Render only: nothing here writes a rule.
|
|
31
|
+
- [@sheetpane/images](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/images/README.md): Images for sheetpane — pictures anchored in the sheet drawn in sheet space through the `overlay` hook; view only, kept on export.
|
|
32
|
+
- [@sheetpane/charts](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/charts/README.md): Charts for sheetpane — each chart in a workbook shown at its anchor: a frame with its title, type, series count and Show source cells (stage 1), drawn as our own SVG for bar, column, line, pie and scatter (stage 2) — through the `overlay` hook.
|
|
33
|
+
- [@sheetpane/comments](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/comments/README.md): Excel's comments and sheetpane's errors, in both directions. When a file loads, its notes and threaded comments show up in `<sheetpane-errors>`. When you export, every error in the review goes into the file as an Excel threaded comment on its cell.
|
|
34
|
+
- [@sheetpane/visibility](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/visibility/README.md): Hide and unhide rows, columns and sheets in `<sheetpane-excel>` — as changes, written into the download.
|
|
35
|
+
- [@sheetpane/tables](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/tables/README.md): Excel tables in `<sheetpane-excel>`, drawn as their style draws them — header row, banded rows and columns, totals row.
|
|
36
|
+
- [@sheetpane/compare](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/compare/README.md): What changed between two versions of a workbook — on the sheet in `<sheetpane-excel>`, or as data in Node.
|
|
37
|
+
- [@sheetpane/review](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/review/README.md): The review written into the download as a sheet of its own. Every error is listed on a *Review* sheet with a link to its cell. Optionally, each flagged cell is filled by severity, so a reviewer can work the list in Excel, fix the file and upload it again.
|
|
38
38
|
|
|
39
39
|
## Rules and errors
|
|
40
|
-
- [Column rules](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
41
|
-
- [Rules file](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
42
|
-
- [rules.schema.json](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
43
|
-
- [Error codes](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
40
|
+
- [Column rules](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/grid/README.md#column-rules): checks by column title in code
|
|
41
|
+
- [Rules file](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/grid/README.md#rules-file): valid and invalid values as JSON, rules-src, flagging="off"
|
|
42
|
+
- [rules.schema.json](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/grid/rules.schema.json): the rules file's JSON Schema
|
|
43
|
+
- [Error codes](https://github.com/arpitarya/sheetpane/blob/v0.5.1/docs/ERRORS.md): every SP-xxxx code: meaning, cause, fix
|
|
44
44
|
|
|
45
45
|
## Testing and tooling
|
|
46
|
-
- [@sheetpane/testing](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
47
|
-
- [@sheetpane/fixtures](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
46
|
+
- [@sheetpane/testing](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/testing/README.md): Playwright and Vitest helpers for host apps
|
|
47
|
+
- [@sheetpane/fixtures](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/fixtures/README.md): known workbooks with a manifest
|
|
48
48
|
|
|
49
49
|
## Skills
|
|
50
|
-
- [@sheetpane/skills](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
51
|
-
- [@sheetpane/mcp](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
52
|
-
- [sheetpane](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
53
|
-
- [sheetpane-a11y](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
54
|
-
- [sheetpane-backend](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
55
|
-
- [sheetpane-column-rules](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
56
|
-
- [sheetpane-embed](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
57
|
-
- [sheetpane-errors](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
58
|
-
- [sheetpane-events](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
59
|
-
- [sheetpane-file-work-item](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
60
|
-
- [sheetpane-frameworks](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
61
|
-
- [sheetpane-load-export](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
62
|
-
- [sheetpane-migrate](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
63
|
-
- [sheetpane-performance](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
64
|
-
- [sheetpane-plugin-author](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
65
|
-
- [sheetpane-plugins](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
66
|
-
- [sheetpane-react](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
67
|
-
- [sheetpane-records](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
68
|
-
- [sheetpane-rules](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
69
|
-
- [sheetpane-rules-file](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
70
|
-
- [sheetpane-security](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
71
|
-
- [sheetpane-setup](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
72
|
-
- [sheetpane-test](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
73
|
-
- [sheetpane-testing](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
74
|
-
- [sheetpane-theming](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
75
|
-
- [sheetpane-troubleshoot](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
76
|
-
- [sheetpane-upgrade](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
50
|
+
- [@sheetpane/skills](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/README.md): npx sheetpane-skills install — skills for Claude Code, Kiro and Codex
|
|
51
|
+
- [@sheetpane/mcp](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/mcp/README.md): npx -y @sheetpane/mcp — an MCP server: describe the API, inspect a workbook, draft and check a rules file, explain an SP code, find a skill
|
|
52
|
+
- [sheetpane](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane/SKILL.md): Use first for any sheetpane task in a host app - a decision table pointing to the right sheetpane skill (embedding, loading, errors, events, rules, plugins, theming, testing, frameworks, troubleshooting). Not needed once you know which skill applies.
|
|
53
|
+
- [sheetpane-a11y](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-a11y/SKILL.md): Use when making a host's sheetpane page accessible - the grid's keyboard contract, labelling the host tab or dialog, focus when the pop-up closes, colour never alone. Not for the grid's own internals.
|
|
54
|
+
- [sheetpane-backend](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-backend/SKILL.md): Use when a host saves the reviewed file and review on a server and restores them, checks a file there with check(), or draws it into a report with renderStatic() - the blob, getErrors()/setErrors() JSON. Not for client-only use.
|
|
55
|
+
- [sheetpane-column-rules](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-column-rules/SKILL.md): Use when the host checks what users type by column title in code - columns, validate(ctx, signal), on-invalid flag or block, header-row. Not for rules shipped as a JSON file (sheetpane-rules-file) or the workbook's own validation (sheetpane-plugins).
|
|
56
|
+
- [sheetpane-embed](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-embed/SKILL.md): Use when placing <sheetpane-excel> and <sheetpane-errors> on a page - tab or pop-up, linking them by pane, giving the sheet a height, the host's font. Not for React specifics (sheetpane-react) or loading and saving files (sheetpane-load-export).
|
|
57
|
+
- [sheetpane-errors](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-errors/SKILL.md): Use for the review list - <sheetpane-errors>, the SheetpaneError schema, getErrors()/setErrors(), sheetpane-errors and sheetpane-reveal, error types. Not for rule-made errors (sheetpane-column-rules) or server storage (sheetpane-backend).
|
|
58
|
+
- [sheetpane-events](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-events/SKILL.md): Use when a host reacts to what the user does in the sheet - selection, hover, typing, saving, refusing a value, sheet tabs - or outlines cells with highlight(). Not for column checks (sheetpane-column-rules) or the error list (sheetpane-errors).
|
|
59
|
+
- [sheetpane-file-work-item](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-file-work-item/SKILL.md): Use when contributing to the sheetpane repo and filing a new work item W-nn - the next free id, the item file, its OPEN-WORK row and ball, the worklog and NOW. Not for host apps that use sheetpane.
|
|
60
|
+
- [sheetpane-frameworks](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-frameworks/SKILL.md): Use when embedding sheetpane in Vue, Svelte, Solid, Angular, Next.js or plain HTML with typed props and events - the custom-element setup, @sheetpane/grid/vue|svelte|solid typings, editor data. Not for React (sheetpane-react).
|
|
61
|
+
- [sheetpane-load-export](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-load-export/SKILL.md): Use when opening a file in the sheet (src, file, load()) or getting it back (the Download button, export(), sheetpane-export, download()). Not for saving the review (sheetpane-errors, sheetpane-backend) or no-UI read/write (sheetpane-setup).
|
|
62
|
+
- [sheetpane-migrate](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-migrate/SKILL.md): Use when replacing SheetJS, Handsontable or AG Grid with sheetpane - their concepts mapped to sheetpane's elements, events and plugins, and what has no equivalent. Not for a fresh project (sheetpane-setup).
|
|
63
|
+
- [sheetpane-performance](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-performance/SKILL.md): Use when a host deals with large workbooks - what loads fast, how rule checks are sliced, lazy-mounting several sheets, what to measure on your own machine and data. Not for small files, which need nothing special.
|
|
64
|
+
- [sheetpane-plugin-author](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-plugin-author/SKILL.md): Use when writing a sheetpane plugin - the six hooks, the slots and control descriptors, exportOptions, registerPlugin, what a plugin may never do. Not for choosing among the shipped plugins (sheetpane-plugins).
|
|
65
|
+
- [sheetpane-plugins](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-plugins/SKILL.md): Use when a host needs more than review - number formats, formulas, styles, validation, conditional formats, pictures, charts, comments, Excel tables, compare or a Review sheet - and must pick plugins. Not for writing one (sheetpane-plugin-author).
|
|
66
|
+
- [sheetpane-react](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-react/SKILL.md): Use when sheetpane is used from React 18 or 19 - props and onsheetpane-* events on the custom elements, refs, the copy-in hook recipes, JSX typing. Not for plain HTML (sheetpane-embed) or Vue, Angular, Svelte, Next.js (sheetpane-frameworks).
|
|
67
|
+
- [sheetpane-records](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-records/SKILL.md): Use when contributing to the sheetpane repo and a change touches a rule - finding the record that owns a module, the laws, the commit guard, where a rule lives, archive-is-not-evidence. Not for host apps.
|
|
68
|
+
- [sheetpane-rules](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-rules/SKILL.md): The /sheetpane-rules [workbook or rules file] command - drafts a rules file for a workbook, or fixes one, then runs sheetpane-skills check-rules until it is clean. Not for learning the format (sheetpane-rules-file) or rules in code.
|
|
69
|
+
- [sheetpane-rules-file](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-rules-file/SKILL.md): Use when valid and invalid values ship as a JSON file per sheet, column or cell, checked on load and listed only in the errors panel - rules / rules-src, its JSON Schema, flagging="off". Not for rules written in code (sheetpane-column-rules).
|
|
70
|
+
- [sheetpane-security](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-security/SKILL.md): Use when sheetpane handles untrusted uploads or runs under a strict CSP - what the grid reads and never sends, regexes in rules, CSV formula injection, sandboxed iframes, styles in shadow DOM. Not for general web security.
|
|
71
|
+
- [sheetpane-setup](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-setup/SKILL.md): Use when adding sheetpane to a project - which @sheetpane packages to install, a bundler import or a plain-HTML import map, one version for all. Not for placing the elements (sheetpane-embed) or choosing plugins (sheetpane-plugins).
|
|
72
|
+
- [sheetpane-test](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-test/SKILL.md): The /sheetpane-test [workbook] command - writes one end-to-end test for a host page with sheetpane - load the .xlsx or .csv (or a fixture), edit a cell, read the download. Not for the testing techniques themselves (sheetpane-testing).
|
|
73
|
+
- [sheetpane-testing](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-testing/SKILL.md): Use when writing end-to-end or browser tests for a host app that embeds sheetpane - reaching cells in shadow DOM, waiting for sheetpane-load, editing, reading a downloaded .xlsx back, known fixture files. Not for testing sheetpane itself.
|
|
74
|
+
- [sheetpane-theming](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-theming/SKILL.md): Use when matching sheetpane to a host's look - dark mode via theme, the --sp-* colour tokens, style.css, why no font is set. Not for a workbook's own colours (sheetpane-plugins - styles, condfmt).
|
|
75
|
+
- [sheetpane-troubleshoot](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-troubleshoot/SKILL.md): Use when sheetpane misbehaves in a host - a blank grid, a file refused, an SP-xxxx code in the console, SSR crashes, CORS on src, copy not working, rules errors that look wrong. Not for designing a feature.
|
|
76
|
+
- [sheetpane-upgrade](https://github.com/arpitarya/sheetpane/blob/v0.5.1/packages/skills/skills/sheetpane-upgrade/SKILL.md): Use when moving a host to a newer sheetpane version - reading CHANGELOG.md, the lockstep version rule, removed or renamed controls and events, re-checking a host's tests. Not for first-time setup (sheetpane-setup).
|
|
77
77
|
|
|
78
78
|
## Records
|
|
79
|
-
- [The register](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
80
|
-
- [SR-LAWS](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
81
|
-
- [SR-LAW-0](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
82
|
-
- [SR-LAW-1](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
83
|
-
- [SR-LAW-2](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
84
|
-
- [SR-LAW-3](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
85
|
-
- [SR-LAW-4](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
86
|
-
- [SR-LAW-5](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
87
|
-
- [SR-LAW-6](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
88
|
-
- [SR-LAW-7](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
89
|
-
- [SR-LAW-8](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
90
|
-
- [SR-LAW-9](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
91
|
-
- [SR-DOWNLOAD](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
92
|
-
- [SR-BUILD](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
93
|
-
- [SR-EXPORT](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
94
|
-
- [SR-IMPORT](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
95
|
-
- [SR-GRID](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
96
|
-
- [SR-ERRORS](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
97
|
-
- [SR-IMAGES](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
98
|
-
- [SR-VALIDATION](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
99
|
-
- [SR-NUMFMT](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
100
|
-
- [SR-STYLES](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
101
|
-
- [SR-FORMULAS](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
102
|
-
- [SR-COMMENTS](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
103
|
-
- [SR-CHARTS](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
104
|
-
- [SR-CONDFMT](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
105
|
-
- [SR-FIXTURES](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
106
|
-
- [SR-SKILLS](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
107
|
-
- [SR-CODES](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
108
|
-
- [SR-TESTING](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
109
|
-
- [SR-MCP](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
110
|
-
- [SR-VISIBILITY](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
111
|
-
- [SR-TABLES](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
112
|
-
- [SR-REVIEW](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
113
|
-
- [SR-COMPARE](https://github.com/arpitarya/sheetpane/blob/v0.5.
|
|
79
|
+
- [The register](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/README.md): every record, its state and what it owns
|
|
80
|
+
- [SR-LAWS](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0001_LAWS.md): Assigns the handles L0, L1, … and routes each to the record that states it. This record states no law itself.
|
|
81
|
+
- [SR-LAW-0](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0002_LAW-0-authority.md): Every rule is stated in exactly one record; every other artifact links to it; Law records outrank every other record; a Law changes only on the decider's ruling.
|
|
82
|
+
- [SR-LAW-1](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0003_LAW-1-retired-records-archived.md): A retired record moves to archive/records/ in the same change, with a map row, status archived and a dated banner; from then on it is named, never cited.
|
|
83
|
+
- [SR-LAW-2](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0004_LAW-2-foss-dependencies.md): Every dependency sheetpane declares or pulls in — runtime, peer, optional, dev and transitive — is released under a free and open source licence.
|
|
84
|
+
- [SR-LAW-3](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0005_LAW-3-xlsx-and-csv-only.md): sheetpane opens, views, edits and saves exactly two file formats — XLSX and CSV; every other spreadsheet format is out of scope until the decider rules otherwise.
|
|
85
|
+
- [SR-LAW-4](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0006_LAW-4-web-component.md): sheetpane ships as a standards-based web component — a custom element any framework, or none, can use — and is never tied to one framework.
|
|
86
|
+
- [SR-LAW-5](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0007_LAW-5-host-font.md): sheetpane ships no font of its own: by default it renders in the browser's default font, and when the host application sets a font, every part of sheetpane uses it.
|
|
87
|
+
- [SR-LAW-6](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0008_LAW-6-edits-in-memory-export-with-changes.md): Once a workbook is loaded, every change made to it is held in memory, and an export produces the workbook with every change applied.
|
|
88
|
+
- [SR-LAW-7](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0009_LAW-7-surfaces-always-in-sync.md): The view, edit and error components always show the same workbook: a change in any one appears in the others at once, with no refresh or save.
|
|
89
|
+
- [SR-LAW-8](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0010_LAW-8-npm-package.md): sheetpane is distributed as an npm package: published to the npm registry, installed with npm or any npm-compatible client, and imported as a module.
|
|
90
|
+
- [SR-LAW-9](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0011_LAW-9-memory-is-a-javascript-object.md): Wherever a record says memory, it means JavaScript objects held in the page; no browser storage or database is memory, until the decider rules otherwise.
|
|
91
|
+
- [SR-DOWNLOAD](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0101_DOWNLOAD.md): One function, download(data, filename, options?), turns what @sheetpane/export produces into a file the browser saves — .xlsx or .csv only, bytes unchanged, errors never silent.
|
|
92
|
+
- [SR-BUILD](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0102_BUILD.md): How the monorepo installs, type-checks, builds, tests, runs in CI and publishes every package under packages/ at one version.
|
|
93
|
+
- [SR-EXPORT](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0103_EXPORT.md): A plain Workbook object in, .xlsx bytes or .csv text out; patchXlsx rewrites only the changed cells of the uploaded file; no runtime dependencies.
|
|
94
|
+
- [SR-IMPORT](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0104_IMPORT.md): The reader: extension and magic bytes checked, .xlsx through the ZIP walk and DOMParser, .csv through a state machine; raw values beside display text; the parsed tables plugins read.
|
|
95
|
+
- [SR-GRID](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0105_GRID.md): One in-memory workbook per pane that every element reads and writes; the sheet element that views and edits it; six hooks and six slots for plugins; one undo stack per pane; freeze panes in the core grid.
|
|
96
|
+
- [SR-ERRORS](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0106_ERRORS.md): The error component reads and writes the pane's one workbook: a filterable list, the form Flag issue opens, Show in sheet, read-only sign-off — no private copy, no linked chip, no export footer.
|
|
97
|
+
- [SR-IMAGES](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0107_IMAGES.md): A view-only plugin that draws each picture a sheet's drawing anchors at its place in the grid, decoding media lazily from the package, with the anchor arithmetic @sheetpane/charts reuses.
|
|
98
|
+
- [SR-VALIDATION](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0108_VALIDATION.md): A plugin on the validate hook that checks the workbook's <dataValidations> on load and after every edit, writing one workbook-authored warning per failing cell, with a list arrow for list rules; on export it can write the host's rules file into the download as the workbook's own data validation.
|
|
99
|
+
- [SR-NUMFMT](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0109_NUMFMT.md): A plugin on the format hook that shows every numeric cell as Excel would — every built-in and custom code, locales, 1904 — with a format dropdown in Edit and the new formats written back on export.
|
|
100
|
+
- [SR-STYLES](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0110_STYLES.md): A plugin on the decorate hook that draws each cell's fill, font weight, style, size, colour, decoration, borders and alignment from the workbook — never a font family — with a format row in Edit and the changes written into styles.xml on export.
|
|
101
|
+
- [SR-FORMULAS](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0111_FORMULAS.md): A plugin on the derive and exportPatch hooks that recalculates formulas with IronCalc (WASM, loaded on the first formula), marks the cells it changed, and writes typed formulas and new cached values on export.
|
|
102
|
+
- [SR-COMMENTS](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0112_COMMENTS.md): A plugin on the validate and exportPatch hooks: a workbook's notes and threaded comments arrive as read-only file errors, and an export writes every review error as an Excel threaded comment (with its legacy note and VML) at its cell — on by default, switchable off.
|
|
103
|
+
- [SR-CHARTS](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0113_CHARTS.md): An overlay plugin that shows every chart at its anchor — a frame with title, type, series and Show source cells, then an SVG drawing for bar, column, line, pie, doughnut and scatter — from the chart's cached values, or the live cells when a formula plugin is installed; export copies charts untouched.
|
|
104
|
+
- [SR-CONDFMT](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0114_CONDFMT.md): A decorate plugin, ordered after styles, that draws the conditional formats a workbook carries — cell rules, text rules, duplicates, top/bottom, averages, colour scales, data bars and expressions — live as cells change; render only, with a hover legend and a rule count.
|
|
105
|
+
- [SR-FIXTURES](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0115_FIXTURES.md): A dependency-free package of hand-built test workbooks — the showcase, its rules sample, edge cases, CSV dialects — with a manifest of what each holds and url / path / bytes to reach them from any runner.
|
|
106
|
+
- [SR-SKILLS](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0116_SKILLS.md): A leaf package of 23 Markdown skills, entry files and a no-dependency installer that copies them where each coding agent looks; every sheetpane package depends on it; a drift check keeps the skills true to the code.
|
|
107
|
+
- [SR-CODES](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0117_CODES.md): Every throw, console warning, rules-engine note, refused load and blocked edit carries a permanent SP-xxxx code from one registry in @sheetpane/export, with an entry in docs/ERRORS.md; a test fails on any message without one.
|
|
108
|
+
- [SR-TESTING](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0118_TESTING.md): One driver API for Playwright and Vitest browser mode — locators, actions, Download read back as values, matchers — built only on the grid's committed test hooks.
|
|
109
|
+
- [SR-MCP](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0119_MCP.md): A stdio MCP server, hand-written, tools only: describe the API, inspect a workbook, draft and check a rules file, explain an SP code, find a skill — deterministic and read-only.
|
|
110
|
+
- [SR-VISIBILITY](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0121_VISIBILITY.md): The plugin that lets an editor hide and unhide rows, columns and sheets and group outlines — menus, Google Sheets' keys, a marker click — written into the download. Seeing the file's hiding is core (SR-GRID 21c).
|
|
111
|
+
- [SR-TABLES](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0122_TABLES.md): The plugin that draws a workbook's Excel tables — header row, banded rows and columns, first and last column, totals row — from a named subset of the built-in table styles, through decorate. Reading the tables is SR-IMPORT's; resolving Table[Column] is SR-EXPORT's.
|
|
112
|
+
- [SR-REVIEW](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0123_REVIEW.md): The export-only plugin that writes the review into the download as a Review sheet — every error with a link to its cell — and optionally fills each flagged cell by severity, cloning its format. A defined name marks the sheet so a host can skip it on re-upload.
|
|
113
|
+
- [SR-COMPARE](https://github.com/arpitarya/sheetpane/blob/v0.5.1/records/0124_COMPARE.md): A headless diffWorkbooks (sheets by name or content, columns by title, rows by key or alignment, cells by value, text and formula) and a grid plugin that tints the changes, sums them up in the status line, steps through them and lists them as errors — both files read in the page.
|
|
114
114
|
|
package/dist/web-types.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sheetpane/grid",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "View and edit .xlsx and .csv files inside any web page: the <sheetpane-excel> and <sheetpane-errors> web components, always in sync through one in-memory workbook.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -61,9 +61,9 @@
|
|
|
61
61
|
"customElements": "custom-elements.json",
|
|
62
62
|
"web-types": "./dist/web-types.json",
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@sheetpane/
|
|
65
|
-
"@sheetpane/
|
|
66
|
-
"@sheetpane/
|
|
64
|
+
"@sheetpane/import": "0.5.1",
|
|
65
|
+
"@sheetpane/skills": "0.5.1",
|
|
66
|
+
"@sheetpane/export": "0.5.1"
|
|
67
67
|
},
|
|
68
68
|
"publishConfig": {
|
|
69
69
|
"access": "public"
|