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
13 changes: 13 additions & 0 deletions .changeset/10685-drilldown-per-block.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,16 @@ zod mirror whose `drillDown` is the shared `DrillDownConfigSchema`, so a validat
the members of a `pivot` node's `drillDown`, and accepts `mode` there, as `DrillDownConfig`
declares it. `object-pivot` still has no mirror, so what the paragraph above says of a stored
`object-pivot` config stands. The rest of this entry is kept as the reading of this change.

⚠️ **Dated note, 2026-09-29 — the `pivot` node refuses `drillDown` whole now — objectui#10932.**
Later in this same release `drillDown` was retired on the `pivot` node on both faces:
`PivotTableSchema.drillDown` is a `?: never` tombstone, and the `pivot` arm of the zod mirror
declares it as a `retirementTombstone()`, which refuses the key by name whatever it holds
(`invalid_type` at `drillDown`). So "a validator does read the members of a `pivot` node's
`drillDown`, and accepts `mode` there" in the 2026-09-28 note above no longer holds: the
validator refuses the whole key before reading any member, so it accepts no `mode` on a `pivot`
node. Nothing ever drilled a `pivot` node; a pivot drill is authored on `object-pivot`, whose
`drillDown` type, `ObjectPivotDrillDownConfig`, refuses `mode` at the TypeScript door, as this
entry says. `object-pivot` still has no zod mirror, so what this entry says of a stored
`object-pivot` config stands. `.changeset/10932-pivot-drilldown-retired.md` (PR objectui#10972)
states what ships; the text above is kept as the reading of this change.
2 changes: 2 additions & 0 deletions .changeset/10859-pivot-object-block-zod-arms.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@
- `@object-ui/types/zod` exports `PivotTableSchema`, a member for member restatement of the TypeScript `PivotTableSchema`: `rowField`, `columnField`, `valueField` and `data` are required, as they are there; `aggregation` is one of `sum`, `count`, `avg`, `min`, `max`; `drillDown` is the shared `DrillDownConfigSchema`; `body` and `children` are refused by name, as the declaration's `?: never` members refuse them (objectui#9256). `DataDisplaySchema` lists it.
- `@object-ui/types/zod` exports `ObjectMetricBlockSchema` and `ObjectMasterDetailFormBlockSchema`, built the way the objectui#10872 public-block arms are: `BaseSchema`, the `type` literal, and `properties`, which is the block's `ComponentPropsMap` row by reference, so the spec's members, value types and strictness apply to the bag unchanged. `ObjectMasterDetailFormBlockSchema` also refuses `onSuccess`, `onError` and `onCancel` by name: they are runtime slots a React host fills (objectui#6124). Both reach `AnyComponentSchema` through a new union, `ObjectQLPublicBlockComponentSchema`.
- The strict authoring face (`StrictAnyComponentSchema`) derives from `AnyComponentSchema` and accepts the same three types, closed to undeclared keys like every other arm. As on the public blocks, a prop written flat on an `object-metric` or `object-master-detail-form` node instead of inside `properties` is not judged against the spec row. A key `BaseSchema` does not declare passes the tolerant face unjudged and is refused by name on the strict face; a key it does declare (`label` and `description`, both also members of the `object-metric` row) is judged by `BaseSchema`'s own type on both faces.

⚠️ **Dated note, 2026-09-29 — `drillDown` is retired on the `pivot` node — objectui#10932.** Later in this same release `drillDown` was retired on the `pivot` node on both faces: the TypeScript `PivotTableSchema.drillDown` is a `?: never` tombstone, and the `pivot` arm of `@object-ui/types/zod` declares `drillDown` as a `retirementTombstone()`, which refuses the key by name whatever it holds (`invalid_type` at `drillDown`, with a message naming `object-pivot`). So "`drillDown` is the shared `DrillDownConfigSchema`" above no longer holds: the arm accepts no `drillDown` at all. Nothing ever drilled a `pivot` node; a pivot whose cells open the records behind a value is authored as `object-pivot`, whose `drillDown` is typed `ObjectPivotDrillDownConfig`. The rest of the `PivotTableSchema` bullet stands, including "a member for member restatement of the TypeScript `PivotTableSchema`", because both faces retired the key together. `.changeset/10932-pivot-drilldown-retired.md` (PR objectui#10972) states what ships; the text above is kept as the reading of this change.
16 changes: 16 additions & 0 deletions .changeset/7352-drill-down-config-mirror.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,19 @@ drawer they open. The rest of this entry is kept as the reading of this change.
Later in this same release `PivotTableSchema` gains a zod mirror, and its `drillDown`
is this entry's `DrillDownConfigSchema`, so the opening paragraph's two referencing declarations are three for the release, and the first half of the second "Unchanged" bullet above (`PivotTableSchema.drillDown` has no zod mirror at all) is this change's reading, not the release's. The rest of this entry is kept as
the reading of this change.

⚠️ **Dated note, 2026-09-29 — the `pivot` arm no longer references this mirror —
objectui#10932.** Later in this same release `drillDown` was retired on the `pivot`
node on both faces: `PivotTableSchema.drillDown` is a `?: never` tombstone on the
TypeScript face, and the zod arm declares it as a `retirementTombstone()`, which
refuses the key by name whatever it holds. So "its `drillDown` is this entry's
`DrillDownConfigSchema`, so the opening paragraph's two referencing declarations
are three for the release" in the 2026-09-28 note above no longer holds: for the
release the referencing declarations are the opening paragraph's two, `ChartSchema`
and `ObjectDataTableSchema` (whose member extends this mirror per block,
objectui#10685). The rest of that note stands: `PivotTableSchema` does have a zod
mirror, so "`PivotTableSchema.drillDown` has no zod mirror at all" is still this
change's reading, not the release's, and that mirror's `drillDown` member refuses
the key rather than mirroring it. `.changeset/10932-pivot-drilldown-retired.md`
(PR objectui#10972) states what ships; the text above is kept as the reading of
this change.
Loading