Skip to content

Commit 2b82036

Browse files
committed
chore(spec): regenerate the merged generated artifacts after merging origin/main
Claude-Session: https://claude.ai/code/session_01VG6wwFJVpmLcvLnZip8Srg Co-authored-by: Claude <noreply@anthropic.com>
1 parent 0901ade commit 2b82036

6 files changed

Lines changed: 43 additions & 12 deletions

File tree

‎content/docs/references/index.mdx‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Protocol reference — every schema by module
33
navTitle: Protocol Reference
4-
description: Every schema published by @objectstack/spec — 1536 schemas across 14 protocol modules
4+
description: Every schema published by @objectstack/spec — 1537 schemas across 14 protocol modules
55
---
66

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

3939
---
4040

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

365365
## UI Protocol
366366

367-
**Source:** `packages/spec/src/ui/` · **Import:** `@objectstack/spec/ui` · **16 pages, 168 schemas**
367+
**Source:** `packages/spec/src/ui/` · **Import:** `@objectstack/spec/ui` · **16 pages, 169 schemas**
368368

369369
Apps, pages, views, dashboards, reports, actions and themes — the ObjectUI layer.
370370

@@ -381,7 +381,7 @@ Apps, pages, views, dashboards, reports, actions and themes — the ObjectUI lay
381381
| [`expression-bindable-text-keys.zod.ts`](/docs/references/ui/expression-bindable-text-keys) | `ExpressionBindableTextKey` |
382382
| [`i18n.zod.ts`](/docs/references/ui/i18n) | `AriaProps`, `I18nLabel`, `InlineLocaleMap` |
383383
| [`notification.zod.ts`](/docs/references/ui/notification) | `NotificationPosition`, `NotificationSeverity`, `NotificationType` |
384-
| [`page.zod.ts`](/docs/references/ui/page) | `ElementApiDataSource`, `ElementDataSource`, `InterfacePageConfig`, `Page`, `PageComponent`, `PageComponentType`, `PagePrint`, `PageRegion`, `PageType`, `PageVariable` |
384+
| [`page.zod.ts`](/docs/references/ui/page) | `ElementApiDataSource`, `ElementDataSource`, `InterfacePageConfig`, `Page`, `PageComponent`, `PageComponentType`, `PagePrint`, `PageRegion`, `PageTemplate`, `PageType`, `PageVariable` |
385385
| [`report.zod.ts`](/docs/references/ui/report) | `JoinedReportBlock`, `Report`, `ReportChart`, `ReportSort`, `ReportType` |
386386
| [`responsive.zod.ts`](/docs/references/ui/responsive) | `ResponsiveStyles`, `StyleMap` |
387387
| [`sharing.zod.ts`](/docs/references/ui/sharing) | `SharingConfig` |

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

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Page schema — UI Protocol property reference
33
navTitle: Page
4-
description: "Page schemas of the ObjectStack UI Protocol: ElementApiDataSource, ElementDataSource and 8 more — each property with its type, default and a TypeScript example."
4+
description: "Page schemas of the ObjectStack UI Protocol: ElementApiDataSource, ElementDataSource and 9 more — each property with its type, default and a TypeScript example."
55
---
66

77
{/* ⚠️ AUTO-GENERATED — DO NOT EDIT. Run build-docs.ts to regenerate. Hand-written docs live in the module folders under content/docs/. */}
@@ -13,8 +13,8 @@ description: "Page schemas of the ObjectStack UI Protocol: ElementApiDataSource,
1313
## TypeScript Usage
1414

1515
```typescript
16-
import { ElementApiDataSourceSchema, ElementDataSourceSchema, InterfacePageConfigSchema, PageSchema, PageComponentSchema, PageComponentType, PagePrintSchema, PageRegionSchema, PageTypeSchema, PageVariableSchema } from '@objectstack/spec/ui';
17-
import type { ElementApiDataSource, ElementDataSource, InterfacePageConfig, Page, PageComponent, PageComponentType, PagePrint, PageRegion, PageType, PageVariable } from '@objectstack/spec/ui';
16+
import { ElementApiDataSourceSchema, ElementDataSourceSchema, InterfacePageConfigSchema, PageSchema, PageComponentSchema, PageComponentType, PagePrintSchema, PageRegionSchema, PageTemplateSchema, PageTypeSchema, PageVariableSchema } from '@objectstack/spec/ui';
17+
import type { ElementApiDataSource, ElementDataSource, InterfacePageConfig, Page, PageComponent, PageComponentType, PagePrint, PageRegion, PageTemplate, PageType, PageVariable } from '@objectstack/spec/ui';
1818

1919
// Validate data
2020
const result = ElementApiDataSourceSchema.parse(data);
@@ -207,9 +207,9 @@ View filter rule
207207
| **type** | `Enum<'record' \| 'home' \| 'app' \| 'utility' \| 'list'>` | optional (default: `"record"`) | Page type |
208208
| **variables** | `{ name: string; type?: Enum<'string' \| 'number' \| 'boolean' \| 'object' \| 'array' \| 'record_id'>; defaultValue?: any; source?: string }[]` | optional | Local page state, exposed to expressions as `page.<name>` and writable by interactive elements via `source` (master/detail, filtered dashboards). |
209209
| **object** | `string` | optional | Bound object (for Record pages) |
210-
| **template** | `string` | optional (default: `"default"`) | Layout template name (e.g. "header-sidebar-main") |
210+
| **template** | `Enum<'default' \| 'header-sidebar-main' \| 'three-column' \| 'dashboard'>` | optional (default: `"default"`) | Layout template — 'default', 'header-sidebar-main', 'three-column' or 'dashboard'. Each places its own regions (PAGE_TEMPLATE_SLOTS); a region the template does not place, or a second region filling the same slot, is refused at the region's name. |
211211
| **regions** | `{ name: string; width?: Enum<'small' \| 'medium' \| 'large' \| 'full'>; components: object[] }[]` | optional | Layout regions (header, main, sidebar, footer) with their components. Optional — list pages use interfaceConfig, slotted pages use slots, and an empty full page falls back to the synthesized default layout. |
212-
| **isDefault** | `boolean` | optional (default: `false`) | Whether this record page is the default record page of its `object` — the page the record view opens. At most one `isDefault: true` record page may exist for an object in a deployment: a second is refused (by defineStack / os validate, at package registration and at metadata save), naming both pages. Saving a page under the existing default's own name is that page, not a second default. Outside this rule for a page that is not a record page bound to an object. |
212+
| **isDefault** | `boolean` | optional (default: `false`) | Whether this record page is the default record page of its `object` — the page the record view opens. At most one `isDefault: true` record page may exist for an object in a deployment: a second is refused (by defineStack / os validate, at package registration and at metadata save), naming both pages. Saving a page under the existing default's own name is that page, not a second default. Refused on any other page — a page that is not a record page bound to an object: nothing reads it there. An app opens on its first navigation item, and the root landing follows the app's own isDefault. |
213213
| **assignedProfiles** | `never` | optional | [REMOVED] `page.assignedProfiles` was removed in @objectstack/spec 17.5.0 (ADR-0090 D2, ADR-0049 enforce-or-remove) — it was named for the Profile concept ADR-0090 D2 deleted, and it gated nothing: no renderer, route or metadata read door ever read the key, so a page that "assigned profiles" stayed open to every caller who could reach it. Delete the key. Page audience is the permission set's: gate the DATA the page shows with the object's permission sets, and bind those sets to people through positions (named in a position's `permissionSets`) — those are the checks the runtime actually runs. Run `os migrate meta --from 17` to list the mechanical edits for existing sources; `--write` applies the ones it can prove, and you apply the rest by hand. |
214214
| **interfaceConfig** | `{ source?: string; columns?: string[] \| object[]; sort?: object[]; filterBy?: object[]; … }` | optional | Interface-level page configuration (for Airtable-style interface pages) |
215215
| **aria** | `{ ariaLabel?: string \| Record<string, string>; ariaDescribedBy?: string; role?: string }` | optional | ARIA accessibility attributes |
@@ -239,7 +239,7 @@ View filter rule
239239

240240
| Property | Type | Required | Description |
241241
| :--- | :--- | :--- | :--- |
242-
| **name** | `string` | ✅ | Region name (e.g. "sidebar", "main", "header") |
242+
| **name** | `string` | ✅ | Region name — a slot the page's `template` places: header, sidebar, main, aside or footer on 'default' and 'three-column'; header, sidebar or main on 'header-sidebar-main'; any name on 'dashboard' (header and footer span it, every other region is a grid cell). One region per slot. A name the template does not place, and a second region filling a slot already filled, are refused. |
243243
| **width** | `Enum<'small' \| 'medium' \| 'large' \| 'full'>` | optional | |
244244
| **components** | `{ type: Enum<'page:header' \| 'page:footer' \| 'page:sidebar' \| 'page:tabs' \| 'page:accordion' \| …> \| string; id?: string; label?: string \| Record<string, string>; properties?: Record<string, any>; … }[]` | ✅ | Components in this region |
245245

@@ -425,7 +425,7 @@ Print declaration: paper size, orientation, margins, the running header and foot
425425

426426
| Property | Type | Required | Description |
427427
| :--- | :--- | :--- | :--- |
428-
| **name** | `string` | ✅ | Region name (e.g. "sidebar", "main", "header") |
428+
| **name** | `string` | ✅ | Region name — a slot the page's `template` places: header, sidebar, main, aside or footer on 'default' and 'three-column'; header, sidebar or main on 'header-sidebar-main'; any name on 'dashboard' (header and footer span it, every other region is a grid cell). One region per slot. A name the template does not place, and a second region filling a slot already filled, are refused. |
429429
| **width** | `Enum<'small' \| 'medium' \| 'large' \| 'full'>` | optional | |
430430
| **components** | `{ type: Enum<'page:header' \| 'page:footer' \| 'page:sidebar' \| 'page:tabs' \| 'page:accordion' \| …> \| string; id?: string; label?: string \| Record<string, string>; properties?: Record<string, any>; … }[]` | ✅ | Components in this region |
431431

@@ -448,6 +448,20 @@ Print declaration: paper size, orientation, margins, the running header and foot
448448
| **aria** | `{ ariaLabel?: string \| Record<string, string>; ariaDescribedBy?: string; role?: string }` | optional | ARIA accessibility attributes |
449449

450450

451+
---
452+
453+
## PageTemplate
454+
455+
Page layout template — one the console registers: 'default' (header, sidebar, main, aside, footer), 'header-sidebar-main' (header, sidebar, main), 'three-column' (header, sidebar, main, aside, footer) or 'dashboard' (header, footer, and every other region a grid cell).
456+
457+
### Allowed Values
458+
459+
* `default`
460+
* `header-sidebar-main`
461+
* `three-column`
462+
* `dashboard`
463+
464+
451465
---
452466

453467
## PageType

‎packages/spec/api-surface/ui.json‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,8 @@
313313
"ObjectTreePropsParsed (type)",
314314
"ObjectTreePropsSchema (const)",
315315
"ObjectUserFiltersSchema (const)",
316+
"PAGE_TEMPLATE_OPEN_GRID (const)",
317+
"PAGE_TEMPLATE_SLOTS (const)",
316318
"PAGE_TYPE_ROADMAP (const)",
317319
"PRINTABLE_PAGE_COMPONENT_TYPES (const)",
318320
"PRINT_REFUSED_PAGE_COMPONENT_TYPES (const)",
@@ -339,6 +341,8 @@
339341
"PageRegionSchema (const)",
340342
"PageSchema (const)",
341343
"PageTabsProps (const)",
344+
"PageTemplate (type)",
345+
"PageTemplateSchema (const)",
342346
"PageType (type)",
343347
"PageTypeSchema (const)",
344348
"PageVariable (type)",
@@ -499,7 +503,9 @@
499503
"checkListViewCalendarVisualization (function)",
500504
"checkListViewChartBinding (function)",
501505
"checkPageComponentViewData (function)",
506+
"checkPageDefaultPlacement (function)",
502507
"checkPagePrintComposition (function)",
508+
"checkPageRegionPlacement (function)",
503509
"checkPageRequiresKind (function)",
504510
"checkPageSlotPair (function)",
505511
"checkPageSourceCompleteness (function)",
@@ -531,6 +537,7 @@
531537
"isRecordContextBlockType (function)",
532538
"isViewContainerShaped (function)",
533539
"listViewGroupKeyPredicate (function)",
540+
"misplacedDefaultPageRefusal (function)",
534541
"normalizeFilterOperator (function)",
535542
"normalizeInlineAction (function)",
536543
"objectNavTargetExclusivity (function)",

‎packages/spec/declaration-map/ui.json‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,8 @@
221221
"PageRegionSchema": "ui/PageRegion",
222222
"PageSchema": "ui/Page",
223223
"PageTabsProps": "ui/PageTabsProps",
224+
"PageTemplate": "ui/PageTemplate",
225+
"PageTemplateSchema": "ui/PageTemplate",
224226
"PageType": "ui/PageType",
225227
"PageTypeSchema": "ui/PageType",
226228
"PageVariable": "ui/PageVariable",

‎packages/spec/export-origins/ui.json‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,8 @@
309309
"ObjectTreePropsParsed": "src/ui/component.zod.ts#ObjectTreePropsParsed (type)",
310310
"ObjectTreePropsSchema": "src/ui/component.zod.ts#ObjectTreePropsSchema (const)",
311311
"ObjectUserFiltersSchema": "src/ui/view.zod.ts#ObjectUserFiltersSchema (const)",
312+
"PAGE_TEMPLATE_OPEN_GRID": "src/ui/page.zod.ts#PAGE_TEMPLATE_OPEN_GRID (const)",
313+
"PAGE_TEMPLATE_SLOTS": "src/ui/page.zod.ts#PAGE_TEMPLATE_SLOTS (const)",
312314
"PAGE_TYPE_ROADMAP": "src/ui/page.zod.ts#PAGE_TYPE_ROADMAP (const)",
313315
"PRINTABLE_PAGE_COMPONENT_TYPES": "src/ui/page.zod.ts#PRINTABLE_PAGE_COMPONENT_TYPES (const)",
314316
"PRINT_REFUSED_PAGE_COMPONENT_TYPES": "src/ui/page.zod.ts#PRINT_REFUSED_PAGE_COMPONENT_TYPES (const)",
@@ -333,6 +335,8 @@
333335
"PageRegionSchema": "src/ui/page.zod.ts#PageRegionSchema (const)",
334336
"PageSchema": "src/ui/page.zod.ts#PageSchema (const)",
335337
"PageTabsProps": "src/ui/component.zod.ts#PageTabsProps (const)",
338+
"PageTemplate": "src/ui/page.zod.ts#PageTemplate (type)",
339+
"PageTemplateSchema": "src/ui/page.zod.ts#PageTemplateSchema (const)",
336340
"PageType": "src/ui/page.zod.ts#PageType (type)",
337341
"PageTypeSchema": "src/ui/page.zod.ts#PageTypeSchema (const)",
338342
"PageVariable": "src/ui/page.zod.ts#PageVariable (type)",
@@ -483,7 +487,9 @@
483487
"checkListViewCalendarVisualization": "src/ui/view.zod.ts#checkListViewCalendarVisualization (function)",
484488
"checkListViewChartBinding": "src/ui/view.zod.ts#checkListViewChartBinding (function)",
485489
"checkPageComponentViewData": "src/ui/page.zod.ts#checkPageComponentViewData (function)",
490+
"checkPageDefaultPlacement": "src/ui/page.zod.ts#checkPageDefaultPlacement (function)",
486491
"checkPagePrintComposition": "src/ui/page.zod.ts#checkPagePrintComposition (function)",
492+
"checkPageRegionPlacement": "src/ui/page.zod.ts#checkPageRegionPlacement (function)",
487493
"checkPageRequiresKind": "src/ui/page.zod.ts#checkPageRequiresKind (function)",
488494
"checkPageSlotPair": "src/ui/page.zod.ts#checkPageSlotPair (function)",
489495
"checkPageSourceCompleteness": "src/ui/page.zod.ts#checkPageSourceCompleteness (function)",
@@ -515,6 +521,7 @@
515521
"isRecordContextBlockType": "src/ui/react-blocks.ts#isRecordContextBlockType (function)",
516522
"isViewContainerShaped": "src/ui/assembled-views.zod.ts#isViewContainerShaped (function)",
517523
"listViewGroupKeyPredicate": "src/ui/view-grouping-query.ts#listViewGroupKeyPredicate (function)",
524+
"misplacedDefaultPageRefusal": "src/ui/default-record-page.ts#misplacedDefaultPageRefusal (function)",
518525
"normalizeFilterOperator": "src/ui/view.zod.ts#normalizeFilterOperator (function)",
519526
"normalizeInlineAction": "src/ui/action.zod.ts#normalizeInlineAction (function)",
520527
"objectNavTargetExclusivity": "src/ui/app.zod.ts#objectNavTargetExclusivity (function)",

‎packages/spec/json-schema.manifest/ui.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@
122122
"ui/PagePrint",
123123
"ui/PageRegion",
124124
"ui/PageTabsProps",
125+
"ui/PageTemplate",
125126
"ui/PageType",
126127
"ui/PageVariable",
127128
"ui/PaginationConfig",

0 commit comments

Comments
 (0)