You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit ee84fa2
Browse filesBrowse the repository at this point in the historyBrowse files
fix(spec): the form-view conversion strips a master-detail block's section pane
object-master-detail-form shares the object-form section shape, so its
sections[].pane parsed through 18.2.0 and is a tombstone now. A stored
master-detail page would have failed at parse after the upgrade.
convertBlock's page walk now strips sections[].pane on that block too
(fixture row, expectedNotices 17), the D3 entry names it, and the pane
prescription is worded for both blocks.
Claude-Session: https://claude.ai/code/session_01JQwxbWHWPRD5rZXeY69YvL
Co-authored-by: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: content/docs/references/ui/component.mdx
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -640,7 +640,7 @@ Sort field and direction pair
640
640
|**collapsed**|`boolean`| optional | Start the section closed (implies `collapsible`) |
641
641
|**visibleWhen**|`string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }`| optional | Predicate (CEL) — the whole section, heading and fields, is drawn only when TRUE |
642
642
|**columns**|`integer`| optional | Field-grid columns for this section (1-4), a number |
643
-
|**pane**|`never`| optional |[REMOVED]`object-form`property `sections[].pane` was removed in @objectstack/spec 18.3.0 (ADR-0050) — it placed a section in one pane of a `formType: 'split'` form, and `split` left the block in the same release, so no form draws panes. Delete the key. 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. |
643
+
|**pane**|`never`| optional |[REMOVED]Section property `pane` (on `object-form`and `object-master-detail-form``sections[]`) was removed in @objectstack/spec 18.3.0 (ADR-0050) — it placed a section in one pane of an `object-form``formType: 'split'` form, and `split` left that block in the same release, so no form draws panes. Delete the key. 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. |
644
644
|**group**|`string`| optional | Field group key (snake_case) whose members and presentation this section inherits, from the object's `fieldGroups`. Mutually exclusive with `fields`, and with every key the group itself declares (`name`, `label`, `description`, `visibleWhen`, and a `true``collapsible` / `collapsed`) |
645
645
|**fields**|`(string \| { field: string; type?: Enum<'text' \| 'textarea' \| 'email' \| 'url' \| 'phone' \| 'password' \| 'secret' \| …>; options?: object[]; reference?: string; … } \| { name: string; label?: string; description?: string; type?: string; … })[]`| optional | The section's fields, in order — each a field name, the form view's `{ field, … }` entry overriding that object field, or an inline form field `{ name, type, … }`. Omit only when `group` supplies the members |
646
646
@@ -1151,7 +1151,7 @@ Sort field and direction pair
1151
1151
|**recordId**|`string \| number`| optional | Parent record to load (edit mode) |
1152
1152
|**mode**|`Enum<'create' \| 'edit'>`| optional | Form mode |
1153
1153
|**formType**|`Enum<'simple' \| 'tabbed'>`| optional | Parent form presentation — the two variants the renderer honours for the parent half |
1154
-
|**sections**|`{ name?: string; label?: string; description?: string; collapsible?: boolean; … }[]`| optional | Parent form sections — the same section shape `object-form` takes: `{ name?, label?, description?, collapsible?, collapsed?, visibleWhen?, columns?, pane?, fields }` or `{ group, columns?, pane? }`|
1154
+
|**sections**|`{ name?: string; label?: string; description?: string; collapsible?: boolean; … }[]`| optional | Parent form sections — the same section shape `object-form` takes: `{ name?, label?, description?, collapsible?, collapsed?, visibleWhen?, columns?, fields }` or `{ group, columns? }`|
1155
1155
|**fields**|`string[]`| optional | Parent field names to draw, in order — bare names, as on `object-form`; a `{ name }` or `{ field }` object entry is refused |
1156
1156
|**details**|`{ childObject: string; relationshipField?: string; columns?: object[]; formFields?: string[]; … }[]`| optional | Detail collections — each a strict entry (`{ childObject, title?, addLabel?, columns?, relationshipField?, … }`) whose `columns` are the inline grid columns a relationship field's `inlineColumns` takes; the FK and columns auto-derive from child metadata when omitted |
1157
1157
|**title**|`string \| Record<string, string>`| optional | Form title |
@@ -1173,7 +1173,7 @@ Sort field and direction pair
1173
1173
|**collapsed**|`boolean`| optional | Start the section closed (implies `collapsible`) |
1174
1174
|**visibleWhen**|`string \| { dialect: Enum<'cel' \| 'cron' \| 'template'>; source: string; ast?: any; meta?: object }`| optional | Predicate (CEL) — the whole section, heading and fields, is drawn only when TRUE |
1175
1175
|**columns**|`integer`| optional | Field-grid columns for this section (1-4), a number |
1176
-
|**pane**|`never`| optional |[REMOVED]`object-form`property `sections[].pane` was removed in @objectstack/spec 18.3.0 (ADR-0050) — it placed a section in one pane of a `formType: 'split'` form, and `split` left the block in the same release, so no form draws panes. Delete the key. 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. |
1176
+
|**pane**|`never`| optional |[REMOVED]Section property `pane` (on `object-form`and `object-master-detail-form``sections[]`) was removed in @objectstack/spec 18.3.0 (ADR-0050) — it placed a section in one pane of an `object-form``formType: 'split'` form, and `split` left that block in the same release, so no form draws panes. Delete the key. 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. |
1177
1177
|**group**|`string`| optional | Field group key (snake_case) whose members and presentation this section inherits, from the object's `fieldGroups`. Mutually exclusive with `fields`, and with every key the group itself declares (`name`, `label`, `description`, `visibleWhen`, and a `true``collapsible` / `collapsed`) |
1178
1178
|**fields**|`(string \| { field: string; type?: Enum<'text' \| 'textarea' \| 'email' \| 'url' \| 'phone' \| 'password' \| 'secret' \| …>; options?: object[]; reference?: string; … } \| { name: string; label?: string; description?: string; type?: string; … })[]`| optional | The section's fields, in order — each a field name, the form view's `{ field, … }` entry overriding that object field, or an inline form field `{ name, type, … }`. Omit only when `group` supplies the members |
+'`form-view-presentation-types-removed` makes each stored or existing source parse: it DELETES a '
41
41
+'retired member, which lands the form on the `simple` default, and strips `pane`, `splitDirection`, '
42
42
+'`splitSize` and `splitResizable` (on an `object-form` page block it deletes `formType: \'split\'` '
43
-
+'and strips the same keys). What it cannot decide is the layout a former `split` form should take (`tabbed` '
43
+
+'and strips the same keys, and on an `object-master-detail-form` block it strips a section `pane`). What it cannot decide is the layout a former `split` form should take (`tabbed` '
44
44
+'keeps its sections apart, `simple` stacks them), and how the caller of a former `drawer` or `modal` '
45
45
+'form should now open it',
46
46
acceptanceCriteria:
47
47
'No form view declares `type` `split`, `drawer` or `modal`, and no form view section declares `pane`, '
48
48
+'nor a form view `splitDirection`, `splitSize` or `splitResizable`; no `object-form` page block '
49
-
+'declares `formType` `split`, `splitDirection`, `splitSize`, `splitResizable` or a section `pane`; each is refused at parse with its prescription, and '
49
+
+'declares `formType` `split`, `splitDirection`, `splitSize`, `splitResizable` or a section `pane`, and no `object-master-detail-form` block a section `pane`; each is refused at parse with its prescription, and '
50
50
+'TypeScript rejects each at a `FormView` position. Every form the conversion changed renders in the '
51
51
+'layout its author chose, and every entry point that opened it as a drawer or dialog still opens it '
0 commit comments