-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathpage.json
More file actions
66 lines (66 loc) · 3.61 KB
/
Copy pathpage.json
File metadata and controls
66 lines (66 loc) · 3.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
{
"type": "page",
"_note": "PageSchema (UI). Renderers live in objectui, so consumers are cited as prose in `note` (not `evidence`, which resolves framework file:line). Seeded from the Studio page-design dogfood (framework#2254/#2261/#2265). Containers (variables/regions/interfaceConfig/slots/aria) classified at top level — one drill level, no divergent sub-statuses. The removed roadmap page types (record_review/blank) and their config fields (recordReview/blankLayout) were hard-removed — no longer authorable.",
"props": {
"name": {
"status": "live",
"note": "page identity; objectui page renderer + runtime route/metadata key."
},
"label": {
"status": "live",
"note": "display title (nav + page header) — objectui renderers."
},
"description": {
"status": "live",
"note": "navigation description — objectui."
},
"icon": {
"status": "live",
"note": "navigation icon — objectui."
},
"type": {
"status": "live",
"note": "objectui PageView (app-shell/src/views/PageView.tsx) + components/renderers/layout/page.tsx dispatch on the page kind (record/home/app/utility/list). Only these render — roadmap types removed (PAGE_TYPE_ROADMAP, framework#2265)."
},
"variables": {
"status": "live",
"note": "Page-local state (ADR-0049). objectui injects variables into the visible/CEL expression context as `page.<var>` (react/src/SchemaRenderer.tsx) and ships element:record_picker, which writes its selection into the variable named by PageVariableSchema.source (components/src/renderers/basic/record-picker.tsx); usePageVariableBinding resolves writer->variable. Showcase: showcase_page_variables (master/detail — picker drives a detail panel's visibility). objectui#1957."
},
"object": {
"status": "live",
"note": "record-page binding + interfaceConfig source object — objectui PageView / InterfaceListPage."
},
"template": {
"status": "live",
"note": "layout template (e.g. header-sidebar-main) selects the region arrangement — objectui components/renderers/layout/page.tsx + containers.tsx."
},
"regions": {
"status": "live",
"note": "region → component tree rendering (header/main/sidebar/footer) — objectui components/renderers/layout/page.tsx + containers.tsx."
},
"isDefault": {
"status": "live",
"note": "default-page selection for an object/page-type — objectui page resolution."
},
"assignedProfiles": {
"status": "live",
"note": "profile-scoped page audience; objectui bridges it (react/src/spec-bridge/bridges/page.ts) to PageLayout.assignedProfiles. End-to-end enforcement not independently verified (necessary-not-sufficient, ADR-0054)."
},
"interfaceConfig": {
"status": "live",
"note": "the entire Airtable-parity list surface (source/columns/filterBy/appearance/userFilters/userActions/addRecord/buttons/recordAction/...) — objectui app-shell/src/views/InterfaceListPage.tsx + PageView.tsx. Verified in browser during the dogfood (grid+kanban+filters)."
},
"aria": {
"status": "live",
"note": "ARIA attributes applied by objectui renderers."
},
"kind": {
"status": "live",
"note": "full vs slotted record-page composition — objectui plugin-detail/src/index.tsx (buildDefaultPageSchema)."
},
"slots": {
"status": "live",
"note": "slotted-page override map (header/actions/alerts/highlights/details/tabs/discussion) — objectui plugin-detail; Preview render in objectui#1948. Verified in the Studio Design slot editor during the dogfood."
}
}
}