Skip to content

Commit 39fef70

Browse files
committed
chore(spec): regenerate the component reference page and the ui strictness counts (#21229)
Claude-Session: https://claude.ai/code/session_01UtnxvdiN376GF3sgXwAw4d Co-authored-by: Claude <noreply@anthropic.com>
1 parent af3b363 commit 39fef70

2 files changed

Lines changed: 17 additions & 7 deletions

File tree

  • content/docs/references/ui
  • docs/audits/2026-07-unknown-key-strictness-ledger.counts

‎content/docs/references/ui/component.mdx‎

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -724,7 +724,7 @@ Sort field and direction pair
724724
| **reorderableColumns** | `boolean` | optional | Allow column drag-reorder |
725725
| **frozenColumns** | `number` | optional | How many leading columns stay frozen (default 1) |
726726
| **showColumnTypeIcons** | `boolean` | optional | Show field-type icons in column headers |
727-
| **exportOptions** | `any` | optional | Export config (`{ formats, maxRecords, includeHeaders, fileNamePrefix, streaming }`). Unvalidated here (`z.unknown()`), so this list is the whole account of the shape; `ListViewSchema.exportOptions` declares the same five members with their per-member contract |
727+
| **exportOptions** | `{ formats?: Enum<'csv' \| 'xlsx' \| 'json'>[]; maxRecords?: integer; includeHeaders?: boolean; fileNamePrefix?: string; … }` | optional | Export config — the object `{ formats?, maxRecords?, includeHeaders?, fileNamePrefix?, streaming? }`, the same block a list view's `exportOptions` declares, with `formats` drawn from `csv`, `xlsx` and `json`. A bare format array is refused: the grid reads `exportOptions.formats`, so write `{ formats: ['csv', 'xlsx'] }` |
728728
| **operations** | `any` | optional | Operation toggles (`{ export: false, … }`) |
729729
| **data** | `{ provider: 'object'; object: string } \| { provider: 'api'; read?: object; write?: object } \| { provider: 'value'; items: any[] } \| { provider: 'schema'; schemaId: string; schema?: Record<string, any> }` | optional | Data source binding (ViewDataSchema — discriminated on `provider`: object \| api \| value \| schema). Static inline rows live at `{ provider: 'value', items: [...] }`; the bare-array shortcut is refused — see migration `object-grid-data-view-data-converged` |
730730
| **staticData** | `any[]` | optional | Deprecated bare-array static-rows shortcut the renderer still reads. Prefer `data: { provider: 'value', items: [...] }` |
@@ -772,6 +772,16 @@ Sort field and direction pair
772772
| :--- | :--- | :--- | :--- |
773773
| **fields** | `{ field: string; order: Enum<'asc' \| 'desc'>; collapsed: boolean }[]` | ✅ | Fields to group by, in nesting order — the first entry is the outermost group and each later entry nests one level deeper (at least one field); the same order as the group header query's `groupBy` |
774774

775+
### Nested Shape: `ObjectGridProps.exportOptions`
776+
777+
| Property | Type | Required | Description |
778+
| :--- | :--- | :--- | :--- |
779+
| **formats** | `Enum<'csv' \| 'xlsx' \| 'json'>[]` | optional | Formats offered in the export menu (default: ['csv', 'json']). XLSX is delivered by the server stream only. |
780+
| **maxRecords** | `integer` | optional | Maximum number of records to export; 0 or absent = unlimited |
781+
| **includeHeaders** | `boolean` | optional | Include column headers in the exported file (default true) |
782+
| **fileNamePrefix** | `string` | optional | Download file name prefix — replaces the object label and suppresses the view label in the generated file name |
783+
| **streaming** | `boolean` | optional | Set false to force the client-side export path (csv/json only) instead of the server stream |
784+
775785
### Nested Shape: `ObjectGridProps.data[provider='object']`
776786

777787
| Property | Type | Required | Description |

‎docs/audits/2026-07-unknown-key-strictness-ledger.counts/ui.md‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ The `strict` column is the one the campaign schedules against; it counts both th
2121

2222
| Dir | Sites | strict | passthrough | catchall | strip |
2323
|---|---|---|---|---|---|
24-
| `ui/` | 189 | 179 | 3 | 0 | 7 |
24+
| `ui/` | 188 | 178 | 3 | 0 | 7 |
2525

2626
## `ui/` — sites
2727

@@ -44,25 +44,25 @@ classify and is not listed (it becomes reportable the day it grows its first sit
4444
| `report.zod.ts` | 3 |
4545
| `responsive.zod.ts` | 1 |
4646
| `sharing.zod.ts` | 1 |
47-
| `view.zod.ts` | 61 |
47+
| `view.zod.ts` | 60 |
4848
| `widget.zod.ts` | 1 |
49-
| **total** | **189** |
49+
| **total** | **188** |
5050

5151
## `ui/` — open
5252

5353
Per file, how many of its sites still silently discard unknown keys. The `Class`
5454
column that decides the bucket split is hand-written in the ledger; the arithmetic
5555
over it is here.
5656

57-
**7 strip of 189**, in 4 file(s).
57+
**7 strip of 188**, in 4 file(s).
5858

5959
| File | Strip | Sites |
6060
|---|---|---|
6161
| `action-params.zod.ts` | 1 | 1 |
6262
| `app.zod.ts` | 1 | 19 |
63-
| `view.zod.ts` | 4 | 61 |
63+
| `view.zod.ts` | 4 | 60 |
6464
| `widget.zod.ts` | 1 | 1 |
65-
| **total** | **7** | **189** |
65+
| **total** | **7** | **188** |
6666

6767
| Bucket | Sites |
6868
|---|---|

0 commit comments

Comments
 (0)