Skip to content

Commit 5c753f9

Browse files
committed
Merge remote-tracking branch 'origin/main' into claude/issue-17393-view-row-ceiling
2 parents 5dd3911 + e233db9 commit 5c753f9

21 files changed

Lines changed: 2111 additions & 46 deletions
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
"@objectstack/spec": minor
3+
---
4+
5+
feat(spec): declare `navigation` on the standalone `object-kanban` / `object-calendar` element faces, and give `object-timeline` the `ComponentPropsMap` row it never had (#17987)
6+
7+
Clause-②: yes (widening) — one new optional key on two published element faces plus one new row, so the accept set grows. Nothing previously admitted is refused, nothing is renamed or retired, and no producer is required to write anything.
8+
9+
**What changes for an author.** A record-click navigation block written on a
10+
STANDALONE element node is now declared where it is read. Before this, the same
11+
document ran correctly in objectui's renderer and was refused by name at the
12+
authoring door:
13+
14+
```
15+
FROM ComponentPropsMap['object-kanban'].safeParse({ objectName: 'task',
16+
navigation: { mode: 'drawer' } })
17+
-> success: false, unrecognized_keys: ['navigation']
18+
TO -> success: true, navigation: { mode: 'drawer', preventNavigation: false,
19+
openNewTab: false, size: 'auto' }
20+
```
21+
22+
`object-calendar` moves identically. The value is `NavigationConfigSchema` —
23+
the same def `ListViewSchema.navigation` already declares, taken by reference,
24+
so a standalone element and a list view speak one vocabulary and the retired
25+
`navigation.view` key (17.5.0) stays retired on every face that carries it.
26+
27+
**`object-timeline` gains a row.** It was registered in objectui and reachable
28+
through the component type union's open string arm with no entry in
29+
`ComponentPropsMap`, so the authoring gate skipped it entirely: a real key and
30+
a typo rode through alike. The row declares the key set measured from the
31+
renderer's own read points at the `.objectui-sha` pin this repo builds against
32+
— `objectName`, `timeline`, `filter`, `sort`, `limit`, `data`, `items`,
33+
`variant`, `dateFormat`, `rowLabel`, `minDate`, `maxDate`, `descriptionField`,
34+
`mapping` and `navigation` — and refuses everything else, the flat `startDateField` /
35+
`titleField` / `scale` handoff spellings with a prescription pointing at the
36+
`timeline` config block that owns them.
37+
38+
**What does NOT change.** The view-level `navigation` on `ListViewSchema` is
39+
untouched: the element key is an ADDITIONAL carrier for the standalone
40+
placement, not a replacement, and both faces keep judging the same block. The
41+
parse is unchanged for every document that did not author these keys, and the
42+
component type union is not narrowed — an `object-timeline` node reaches
43+
`PageComponentSchema` through the open string arm exactly as it did before.
44+
45+
Executes the objectui#8652 maintainer ruling (verbatim `B`).

‎content/docs/references/index.mdx‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: Protocol Reference
3-
description: Every schema published by @objectstack/spec — 1531 schemas across 14 protocol modules
3+
description: Every schema published by @objectstack/spec — 1532 schemas across 14 protocol modules
44
---
55

66
{/* ⚠️ AUTO-GENERATED — DO NOT EDIT. Run build-docs.ts to regenerate. Hand-written docs live in the module folders under content/docs/. */}
@@ -32,8 +32,8 @@ counts are sums of the rows they head. Regenerate with
3232
| [Shared Protocol](/docs/references/shared) | 10 | 31 | Primitives used across every protocol — identifiers, HTTP, expressions, error maps, enums. |
3333
| [Studio Protocol](/docs/references/studio) | 3 | 35 | Studio designer metadata — the authoring surfaces for the protocols above. |
3434
| [System Protocol](/docs/references/system) | 34 | 273 | The runtime environment — logging, jobs, cache, metrics, notifications, i18n and compliance. |
35-
| [UI Protocol](/docs/references/ui) | 16 | 156 | Apps, pages, views, dashboards, reports, actions and themes — the ObjectUI layer. |
36-
| **Total** | **195** | **1531** | 14 protocol modules |
35+
| [UI Protocol](/docs/references/ui) | 16 | 157 | Apps, pages, views, dashboards, reports, actions and themes — the ObjectUI layer. |
36+
| **Total** | **195** | **1532** | 14 protocol modules |
3737

3838
---
3939

@@ -361,7 +361,7 @@ The runtime environment — logging, jobs, cache, metrics, notifications, i18n a
361361

362362
## UI Protocol
363363

364-
**Source:** `packages/spec/src/ui/` · **Import:** `@objectstack/spec/ui` · **16 pages, 156 schemas**
364+
**Source:** `packages/spec/src/ui/` · **Import:** `@objectstack/spec/ui` · **16 pages, 157 schemas**
365365

366366
Apps, pages, views, dashboards, reports, actions and themes — the ObjectUI layer.
367367

@@ -372,7 +372,7 @@ Apps, pages, views, dashboards, reports, actions and themes — the ObjectUI lay
372372
| [`app.zod.ts`](/docs/references/ui/app) | `ActionNavItem`, `App`, `AppBranding`, `AppContextSelector`, `ComponentNavItem`, `DashboardNavItem`, `GroupNavItem`, `NavigationArea`, `NavigationContribution`, `NavigationItem`, `ObjectNavItem`, `PageNavItem`, `ReportNavItem`, `UrlNavItem` |
373373
| [`bulk-action.zod.ts`](/docs/references/ui/bulk-action) | `BulkActionDef`, `BulkActionExecution`, `BulkActionOperation`, `BulkActionParam` |
374374
| [`chart.zod.ts`](/docs/references/ui/chart) | `ChartAggregate`, `ChartAggregateFunction`, `ChartAnnotation`, `ChartAxis`, `ChartConfig`, `ChartDrillDown`, `ChartGroupBy`, `ChartInteraction`, `ChartSeries`, `ChartType` |
375-
| [`component.zod.ts`](/docs/references/ui/component) | `AIChatWindowProps`, `ElementButtonProps`, `ElementFilterProps`, `ElementFormProps`, `ElementImageProps`, `ElementMetadataViewerProps`, `ElementNumberProps`, `ElementRecordPickerProps`, `ElementTextInputProps`, `ElementTextProps`, `ObjectCalendarProps`, `ObjectFormProps`, `ObjectGanttProps`, `ObjectGridProps`, `ObjectKanbanProps`, `ObjectMapProps`, `ObjectMasterDetailFormProps`, `ObjectMetricProps`, `ObjectTreeProps`, `PageAccordionProps`, `PageCardProps`, `PageContainerProps`, `PageHeaderProps`, `PageTabsProps`, `RecordActivityProps`, `RecordAlertAction`, `RecordAlertProps`, `RecordChatterProps`, `RecordDetailsProps`, `RecordHighlightsField`, `RecordHighlightsProps`, `RecordHistoryProps`, `RecordPathProps`, `RecordQuickActionsProps`, `RecordReferenceRailProps`, `RecordRelatedListProps`, `ReferenceRailEntry` |
375+
| [`component.zod.ts`](/docs/references/ui/component) | `AIChatWindowProps`, `ElementButtonProps`, `ElementFilterProps`, `ElementFormProps`, `ElementImageProps`, `ElementMetadataViewerProps`, `ElementNumberProps`, `ElementRecordPickerProps`, `ElementTextInputProps`, `ElementTextProps`, `ObjectCalendarProps`, `ObjectFormProps`, `ObjectGanttProps`, `ObjectGridProps`, `ObjectKanbanProps`, `ObjectMapProps`, `ObjectMasterDetailFormProps`, `ObjectMetricProps`, `ObjectTimelineProps`, `ObjectTreeProps`, `PageAccordionProps`, `PageCardProps`, `PageContainerProps`, `PageHeaderProps`, `PageTabsProps`, `RecordActivityProps`, `RecordAlertAction`, `RecordAlertProps`, `RecordChatterProps`, `RecordDetailsProps`, `RecordHighlightsField`, `RecordHighlightsProps`, `RecordHistoryProps`, `RecordPathProps`, `RecordQuickActionsProps`, `RecordReferenceRailProps`, `RecordRelatedListProps`, `ReferenceRailEntry` |
376376
| [`dashboard.zod.ts`](/docs/references/ui/dashboard) | `Dashboard`, `DashboardHeader`, `DashboardHeaderAction`, `DashboardWidget`, `DashboardWidgetOptions`, `GlobalFilter`, `GlobalFilterOptionsFrom`, `WidgetActionType`, `WidgetColorVariant` |
377377
| [`dataset.zod.ts`](/docs/references/ui/dataset) | `Dataset`, `DatasetDimension`, `DatasetMeasure`, `DerivedMeasureOp` |
378378
| [`expression-bindable-text-keys.zod.ts`](/docs/references/ui/expression-bindable-text-keys) | `ExpressionBindableTextKey` |

0 commit comments

Comments
 (0)