Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .changeset/automated-release-publishing.md

This file was deleted.

9 changes: 0 additions & 9 deletions .changeset/stable-failure-contracts.md

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:
test "$(npm --version)" = "$NPM_VERSION"
test "$(rustc --version | cut -d' ' -f2)" = "$RUST_VERSION"
- name: Changeset status
run: bun run changeset:status -- --since=origin/develop
run: bun run changeset:ci
- name: Install checksum-pinned wasm-pack
run: bun scripts/install-wasm-pack.ts
- name: Tooling contracts
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ jobs:
id: size-history
if: steps.publish.outputs.verified != '[]'
run: |
VERSION="$(node -p "require('./package.json').version")"
VERSION="$(node -p "require('./packages/core/package.json').version")"
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
bun run size:record --version="$VERSION"
bun run docs:generate
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Create a grid and wire its lifecycle once, so the React/Vue/Svelte adapters
(and any plain host) share a single, drift-free implementation instead of
each re-deriving the same create → subscribe → teardown behavior.

`initSheetwrite()` MUST already have been awaited; `createGrid` throws
`initSheetwrite()` MUST already have been awaited; [`createGrid`](/docs/api/core/create-grid/) throws
otherwise.

### Live handlers
Expand Down
2 changes: 1 addition & 1 deletion docs/src/content/docs/api/core-adapter/grid-controller.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ readonly grid: Grid;
</details>

<details class="api-member" id="grid-controller-set-theme" data-pagefind-weight="1">
<summary><code>setTheme</code> <span class="api-member-summary">Apply the host's declarative theme prop: option-level replacement via <code>Grid.replaceTheme</code>; undefined restores CSS/default resolution.</span></summary>
<summary><code>setTheme</code> <span class="api-member-summary">Apply the host's declarative theme prop: option-level replacement via <a href="/docs/api/core/grid/#grid-replace-theme"><code>Grid.replaceTheme</code></a>; undefined restores CSS/default resolution.</span></summary>

```ts generated
setTheme(theme: Partial<Theme> | undefined): void;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: "Input to RowBridge.reconcile."
<!-- api-export:@sheetwrite/core|./adapter|RowBridgeReconciliationInput -->
<div class="api-pagehead"><a class="api-backlink" href="/docs/api/core-adapter/">@sheetwrite/core/adapter</a><span class="api-status" data-kind="interface">interface</span></div>

Input to `RowBridge.reconcile`.
Input to [`RowBridge.reconcile`](/docs/api/core-adapter/row-bridge/#row-bridge-reconcile).

<dl class="api-metadata" data-pagefind-ignore>
<div><dt>Package</dt><dd><code>@sheetwrite/core/adapter</code></dd></div>
Expand Down
5 changes: 3 additions & 2 deletions docs/src/content/docs/api/core.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ description: "API reference for @sheetwrite/core."

<dl class="api-metadata" data-pagefind-ignore>
<div><dt>Declaration target</dt><dd><code>./dist/index.d.ts</code></dd></div>
<div><dt>Exports</dt><dd>313</dd></div>
<div><dt>Exports</dt><dd>314</dd></div>
</dl>

Source entry: `packages/core/src/index.ts`
Expand Down Expand Up @@ -245,7 +245,7 @@ Source entry: `packages/core/src/index.ts`
<a class="api-symbol-card" href="/docs/api/core/xlsx-workbook-warning/"><span class="api-symbol-card__head"><span class="api-symbol-badge" data-kind="interface" aria-hidden="true">I</span><code>XlsxWorkbookWarning</code></span><span class="api-symbol-card__desc">Structured fidelity warning emitted during XLSX conversion.</span></a>
</div>

### Types <span class="api-count" data-pagefind-ignore>76</span>
### Types <span class="api-count" data-pagefind-ignore>77</span>

<div class="api-symbol-grid">
<a class="api-symbol-card" href="/docs/api/core/aggregate-op/"><span class="api-symbol-card__head"><span class="api-symbol-badge" data-kind="type" aria-hidden="true">T</span><code>AggregateOp</code></span><span class="api-symbol-card__desc">Column aggregate operation for Grid.aggregate / Store data ops.</span></a>
Expand All @@ -263,6 +263,7 @@ Source entry: `packages/core/src/index.ts`
<a class="api-symbol-card" href="/docs/api/core/comment-coordinator-event/"><span class="api-symbol-card__head"><span class="api-symbol-badge" data-kind="type" aria-hidden="true">T</span><code>CommentCoordinatorEvent</code></span><span class="api-symbol-card__desc">State transition emitted by the comment coordinator.</span></a>
<a class="api-symbol-card" href="/docs/api/core/comment-mutation/"><span class="api-symbol-card__head"><span class="api-symbol-badge" data-kind="type" aria-hidden="true">T</span><code>CommentMutation</code></span><span class="api-symbol-card__desc">Serializable operation that creates or updates comment state.</span></a>
<a class="api-symbol-card" href="/docs/api/core/comment-mutation-response/"><span class="api-symbol-card__head"><span class="api-symbol-badge" data-kind="type" aria-hidden="true">T</span><code>CommentMutationResponse</code></span><span class="api-symbol-card__desc">Applied, duplicate, or conflict acknowledgement for a comment mutation.</span></a>
<a class="api-symbol-card" href="/docs/api/core/commit-reason/"><span class="api-symbol-card__head"><span class="api-symbol-badge" data-kind="type" aria-hidden="true">T</span><code>CommitReason</code></span><span class="api-symbol-card__desc">The gesture/operation that produced a committed transaction.</span></a>
<a class="api-symbol-card" href="/docs/api/core/conditional-format-predicate/"><span class="api-symbol-card__head"><span class="api-symbol-badge" data-kind="type" aria-hidden="true">T</span><code>ConditionalFormatPredicate</code></span><span class="api-symbol-card__desc">Predicate used to decide whether a conditional format applies.</span></a>
<a class="api-symbol-card" href="/docs/api/core/context-menu-action-name/"><span class="api-symbol-card__head"><span class="api-symbol-badge" data-kind="type" aria-hidden="true">T</span><code>ContextMenuActionName</code></span><span class="api-symbol-card__desc">Built-in action names accepted by custom context-menu rows.</span></a>
<a class="api-symbol-card" href="/docs/api/core/context-menu-items/"><span class="api-symbol-card__head"><span class="api-symbol-badge" data-kind="type" aria-hidden="true">T</span><code>ContextMenuItems</code></span><span class="api-symbol-card__desc">Static rows or a context-aware factory evaluated each time the menu opens.</span></a>
Expand Down
2 changes: 1 addition & 1 deletion docs/src/content/docs/api/core/cell-input-snapshot.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ View-aware editable snapshot of one cell, for hosts building a detached
formula bar or cell inspector. `address` is the translated *data* address —
the correct target for `Grid.applyTransaction` even under an active
sort/filter view — while the `(row, col)` inputs of
`Grid.getCellInput` are active-sheet view coordinates.
[`Grid.getCellInput`](/docs/api/core/grid/#grid-get-cell-input) are active-sheet view coordinates.

<dl class="api-metadata" data-pagefind-ignore>
<div><dt>Package</dt><dd><code>@sheetwrite/core</code></dd></div>
Expand Down
2 changes: 1 addition & 1 deletion docs/src/content/docs/api/core/change-event.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ changes: CellChange[];
</details>

<details class="api-member" id="change-event-commit-reason" data-pagefind-weight="1">
<summary><code>commitReason</code> <span class="api-member-summary">What produced this commit — see <code>CommitReason</code>.</span></summary>
<summary><code>commitReason</code> <span class="api-member-summary">What produced this commit — see <a href="/docs/api/core/commit-reason/"><code>CommitReason</code></a>.</span></summary>

```ts generated
commitReason: CommitReason;
Expand Down
39 changes: 39 additions & 0 deletions docs/src/content/docs/api/core/commit-reason.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
title: "CommitReason | @sheetwrite/core"
description: "The gesture/operation that produced a committed transaction."
---
<!-- api-export:@sheetwrite/core|.|CommitReason -->
<div class="api-pagehead"><a class="api-backlink" href="/docs/api/core/">@sheetwrite/core</a><span class="api-status" data-kind="type">type</span></div>

The gesture/operation that produced a committed transaction. Consumers
switching on reasons MUST keep a default branch — the union grows with new
mutation features.

<dl class="api-metadata" data-pagefind-ignore>
<div><dt>Package</dt><dd><code>@sheetwrite/core</code></dd></div>
<div><dt>Source</dt><dd><code>packages/core/src/types/document.ts#L207</code></dd></div>
</dl>

## Declaration

<div class="api-declaration-open" data-pagefind-ignore>

```ts generated
export type CommitReason =
| "edit-blur"
| "edit-enter"
| "edit-tab"
| "edit-programmatic"
| "paste"
| "cut"
| "clear"
| "fill"
| "structure"
| "style"
| "replace"
| "undo"
| "redo"
| "api";
```

</div>
4 changes: 2 additions & 2 deletions docs/src/content/docs/api/core/grid.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ replaceTheme(theme: Partial<Theme> | undefined): void;
(`DEFAULT_THEME &lt; CSS custom properties &lt; theme`) with the new partial.
`undefined` restores the CSS-variable/default resolution. Adapters call
this for their declarative `theme` prop; imperative patching stays on
<code>setTheme</code>.</p>
<a href="/docs/api/core/grid/#grid-set-theme"><code>setTheme</code></a>.</p>
</details>

<details class="api-member" id="grid-get-effective-theme" data-pagefind-weight="1">
Expand Down Expand Up @@ -726,7 +726,7 @@ styleRange(range: Range, style: Partial<CellStyle> | null): void;

<p class="api-member-doc">Merge `style` into every cell of `range` (null clears cell styles) as one
undoable transaction. Styles land in the store and paint in the canvas —
unlike <code>highlightCells</code>, which draws a translucent overlay above it.</p>
unlike <a href="/docs/api/core/grid/#grid-highlight-cells"><code>highlightCells</code></a>, which draws a translucent overlay above it.</p>
</details>

<details class="api-member" id="grid-begin-edit" data-pagefind-weight="1">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: "Input to RowBridge.reconcile."
<!-- api-export:@sheetwrite/core|.|RowBridgeReconciliationInput -->
<div class="api-pagehead"><a class="api-backlink" href="/docs/api/core/">@sheetwrite/core</a><span class="api-status" data-kind="interface">interface</span></div>

Input to `RowBridge.reconcile`.
Input to [`RowBridge.reconcile`](/docs/api/core/row-bridge/#row-bridge-reconcile).

<dl class="api-metadata" data-pagefind-ignore>
<div><dt>Package</dt><dd><code>@sheetwrite/core</code></dd></div>
Expand Down
2 changes: 1 addition & 1 deletion docs/src/content/docs/api/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The package `exports` maps define this inventory. Supported, internal, asset, an
<table class="api-entry-table">
<thead><tr><th>Entry point</th><th>Classification</th><th>Symbols</th></tr></thead>
<tbody>
<tr><td><a href="/docs/api/core/"><code>@sheetwrite/core</code></a></td><td><span class="api-status" data-status="supported">supported</span></td><td>313</td></tr>
<tr><td><a href="/docs/api/core/"><code>@sheetwrite/core</code></a></td><td><span class="api-status" data-status="supported">supported</span></td><td>314</td></tr>
<tr><td><a href="/docs/api/core-adapter/"><code>@sheetwrite/core/adapter</code></a></td><td><span class="api-status" data-status="supported">supported</span></td><td>51</td></tr>
<tr><td><a href="/docs/api/core-browser/"><code>@sheetwrite/core/browser</code></a></td><td><span class="api-status" data-status="supported">supported</span></td><td>4</td></tr>
<tr><td><a href="/docs/api/core-shell/"><code>@sheetwrite/core/shell</code></a></td><td><span class="api-status" data-status="supported">supported</span></td><td>13</td></tr>
Expand Down
8 changes: 4 additions & 4 deletions docs/src/content/docs/api/react/grid.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ getCellInput(row: number, col: number): CellInputSnapshot | null;
```

<p class="api-member-doc">Editable snapshot of the cell at a view position on the active sheet, or
null when out of bounds. See <code>CellInputSnapshot</code>.</p>
null when out of bounds. See <a href="/docs/api/core/cell-input-snapshot/"><code>CellInputSnapshot</code></a>.</p>
</details>

<details class="api-member" id="grid-get-selection" data-pagefind-weight="1">
Expand Down Expand Up @@ -139,7 +139,7 @@ replaceTheme(theme: Partial<Theme> | undefined): void;
(`DEFAULT_THEME &lt; CSS custom properties &lt; theme`) with the new partial.
`undefined` restores the CSS-variable/default resolution. Adapters call
this for their declarative `theme` prop; imperative patching stays on
<code>setTheme</code>.</p>
<a href="/docs/api/react/grid/#grid-set-theme"><code>setTheme</code></a>.</p>
</details>

<details class="api-member" id="grid-get-effective-theme" data-pagefind-weight="1">
Expand Down Expand Up @@ -470,7 +470,7 @@ replaceCurrent(replacement: string): SearchResult;
<p class="api-member-doc">Replace the active match with `replacement`, then advance to the next match
(re-scanning against the new data). Only literal text/number cells are
eligible; formula and ref cells are skipped (formula source is never
rewritten). Honors the active <code>SearchOptions</code> (matchCase; `wholeCell`
rewritten). Honors the active <a href="/docs/api/core/search-options/"><code>SearchOptions</code></a> (matchCase; `wholeCell`
swaps the entire cell). The write flows through the grid's commit path as
one undoable step. No-op when read-only or when there is no active match.</p>
</details>
Expand Down Expand Up @@ -726,7 +726,7 @@ styleRange(range: Range, style: Partial<CellStyle> | null): void;

<p class="api-member-doc">Merge `style` into every cell of `range` (null clears cell styles) as one
undoable transaction. Styles land in the store and paint in the canvas —
unlike <code>highlightCells</code>, which draws a translucent overlay above it.</p>
unlike <a href="/docs/api/react/grid/#grid-highlight-cells"><code>highlightCells</code></a>, which draws a translucent overlay above it.</p>
</details>

<details class="api-member" id="grid-begin-edit" data-pagefind-weight="1">
Expand Down
8 changes: 4 additions & 4 deletions docs/src/content/docs/api/svelte/grid.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ getCellInput(row: number, col: number): CellInputSnapshot | null;
```

<p class="api-member-doc">Editable snapshot of the cell at a view position on the active sheet, or
null when out of bounds. See <code>CellInputSnapshot</code>.</p>
null when out of bounds. See <a href="/docs/api/core/cell-input-snapshot/"><code>CellInputSnapshot</code></a>.</p>
</details>

<details class="api-member" id="grid-get-selection" data-pagefind-weight="1">
Expand Down Expand Up @@ -139,7 +139,7 @@ replaceTheme(theme: Partial<Theme> | undefined): void;
(`DEFAULT_THEME &lt; CSS custom properties &lt; theme`) with the new partial.
`undefined` restores the CSS-variable/default resolution. Adapters call
this for their declarative `theme` prop; imperative patching stays on
<code>setTheme</code>.</p>
<a href="/docs/api/svelte/grid/#grid-set-theme"><code>setTheme</code></a>.</p>
</details>

<details class="api-member" id="grid-get-effective-theme" data-pagefind-weight="1">
Expand Down Expand Up @@ -470,7 +470,7 @@ replaceCurrent(replacement: string): SearchResult;
<p class="api-member-doc">Replace the active match with `replacement`, then advance to the next match
(re-scanning against the new data). Only literal text/number cells are
eligible; formula and ref cells are skipped (formula source is never
rewritten). Honors the active <code>SearchOptions</code> (matchCase; `wholeCell`
rewritten). Honors the active <a href="/docs/api/core/search-options/"><code>SearchOptions</code></a> (matchCase; `wholeCell`
swaps the entire cell). The write flows through the grid's commit path as
one undoable step. No-op when read-only or when there is no active match.</p>
</details>
Expand Down Expand Up @@ -726,7 +726,7 @@ styleRange(range: Range, style: Partial<CellStyle> | null): void;

<p class="api-member-doc">Merge `style` into every cell of `range` (null clears cell styles) as one
undoable transaction. Styles land in the store and paint in the canvas —
unlike <code>highlightCells</code>, which draws a translucent overlay above it.</p>
unlike <a href="/docs/api/svelte/grid/#grid-highlight-cells"><code>highlightCells</code></a>, which draws a translucent overlay above it.</p>
</details>

<details class="api-member" id="grid-begin-edit" data-pagefind-weight="1">
Expand Down
8 changes: 4 additions & 4 deletions docs/src/content/docs/api/vue/grid.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ getCellInput(row: number, col: number): CellInputSnapshot | null;
```

<p class="api-member-doc">Editable snapshot of the cell at a view position on the active sheet, or
null when out of bounds. See <code>CellInputSnapshot</code>.</p>
null when out of bounds. See <a href="/docs/api/core/cell-input-snapshot/"><code>CellInputSnapshot</code></a>.</p>
</details>

<details class="api-member" id="grid-get-selection" data-pagefind-weight="1">
Expand Down Expand Up @@ -139,7 +139,7 @@ replaceTheme(theme: Partial<Theme> | undefined): void;
(`DEFAULT_THEME &lt; CSS custom properties &lt; theme`) with the new partial.
`undefined` restores the CSS-variable/default resolution. Adapters call
this for their declarative `theme` prop; imperative patching stays on
<code>setTheme</code>.</p>
<a href="/docs/api/vue/grid/#grid-set-theme"><code>setTheme</code></a>.</p>
</details>

<details class="api-member" id="grid-get-effective-theme" data-pagefind-weight="1">
Expand Down Expand Up @@ -470,7 +470,7 @@ replaceCurrent(replacement: string): SearchResult;
<p class="api-member-doc">Replace the active match with `replacement`, then advance to the next match
(re-scanning against the new data). Only literal text/number cells are
eligible; formula and ref cells are skipped (formula source is never
rewritten). Honors the active <code>SearchOptions</code> (matchCase; `wholeCell`
rewritten). Honors the active <a href="/docs/api/core/search-options/"><code>SearchOptions</code></a> (matchCase; `wholeCell`
swaps the entire cell). The write flows through the grid's commit path as
one undoable step. No-op when read-only or when there is no active match.</p>
</details>
Expand Down Expand Up @@ -726,7 +726,7 @@ styleRange(range: Range, style: Partial<CellStyle> | null): void;

<p class="api-member-doc">Merge `style` into every cell of `range` (null clears cell styles) as one
undoable transaction. Styles land in the store and paint in the canvas —
unlike <code>highlightCells</code>, which draws a translucent overlay above it.</p>
unlike <a href="/docs/api/vue/grid/#grid-highlight-cells"><code>highlightCells</code></a>, which draws a translucent overlay above it.</p>
</details>

<details class="api-member" id="grid-begin-edit" data-pagefind-weight="1">
Expand Down
Loading
Loading