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 bf2acff
Browse filesBrowse the repository at this point in the historyBrowse files
|**sharing**|`{ enabled?: boolean; publicLink?: string; password?: string; allowedDomains?: string[]; … }`| optional | Public sharing configuration for this form |
1920
1920
|**submitBehavior**|`{ kind: 'thank-you'; title?: string; message?: string } \| { kind: 'redirect'; url: string; delayMs?: integer } \| { kind: 'continue' } \| { kind: 'next-record' }`| optional | Post-submit behavior. On the `redirect` arm, `url` is relative-only and interpolates only declared record fields as `{{record.field_name}}`, URL-escaped. |
1921
-
|**buttons**|`{ submit?: object; cancel?: object; reset?: object }`| optional | Form action-button visibility & labels; folded onto the flat renderer props by ObjectUI ObjectForm. |
1921
+
|**buttons**|`{ submit?: object; cancel?: object }`| optional | Form action-button visibility & labels; folded onto the flat renderer props by ObjectUI ObjectForm. |
1922
1922
|**defaults**|`Record<string, any>`| optional | Initial field values for create-mode forms (folded into ObjectUI ObjectForm initial values;). |
|**sharing**|`{ enabled?: boolean; publicLink?: string; password?: string; allowedDomains?: string[]; … }`| optional | Public sharing configuration for this form |
1999
1999
|**submitBehavior**|`{ kind: 'thank-you'; title?: string; message?: string } \| { kind: 'redirect'; url: string; delayMs?: integer } \| { kind: 'continue' } \| { kind: 'next-record' }`| optional | Post-submit behavior. On the `redirect` arm, `url` is relative-only and interpolates only declared record fields as `{{record.field_name}}`, URL-escaped. |
2000
-
|**buttons**|`{ submit?: object; cancel?: object; reset?: object }`| optional | Form action-button visibility & labels; folded onto the flat renderer props by ObjectUI ObjectForm. |
2000
+
|**buttons**|`{ submit?: object; cancel?: object }`| optional | Form action-button visibility & labels; folded onto the flat renderer props by ObjectUI ObjectForm. |
2001
2001
|**defaults**|`Record<string, any>`| optional | Initial field values for create-mode forms (folded into ObjectUI ObjectForm initial values;). |
|**sharing**|`{ enabled?: boolean; publicLink?: string; password?: string; allowedDomains?: string[]; … }`| optional | Public sharing configuration for this form |
410
410
|**submitBehavior**|`{ kind: 'thank-you'; title?: string; message?: string } \| { kind: 'redirect'; url: string; delayMs?: integer } \| { kind: 'continue' } \| { kind: 'next-record' }`| optional | Post-submit behavior. On the `redirect` arm, `url` is relative-only and interpolates only declared record fields as `{{record.field_name}}`, URL-escaped. |
411
-
|**buttons**|`{ submit?: object; cancel?: object; reset?: object }`| optional | Form action-button visibility & labels; folded onto the flat renderer props by ObjectUI ObjectForm. |
411
+
|**buttons**|`{ submit?: object; cancel?: object }`| optional | Form action-button visibility & labels; folded onto the flat renderer props by ObjectUI ObjectForm. |
412
412
|**defaults**|`Record<string, any>`| optional | Initial field values for create-mode forms (folded into ObjectUI ObjectForm initial values;). |
|**reset**|`never`| optional |[REMOVED]`view.form.buttons.reset` was removed in @objectstack/spec 18.3.0 (ADR-0049) — no form ever drew a reset button, and its label was never read. Delete the key: a form has `submit` and `cancel` buttons only, and Cancel leaves the form without saving. `reset.show: true` used to clear the form after each save (the ObjectForm fold that ObjectView and the record form page render); a form converted by this release no longer clears after a save, and a form that should declares `submitBehavior: { kind: 'continue' }`. 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.|
508
508
509
509
510
510
---
@@ -1788,7 +1788,7 @@ Tab configuration for multi-tab view interface
|**sharing**|`{ enabled?: boolean; publicLink?: string; password?: string; allowedDomains?: string[]; … }`| optional | Public sharing configuration for this form |
1790
1790
|**submitBehavior**|`{ kind: 'thank-you'; title?: string; message?: string } \| { kind: 'redirect'; url: string; delayMs?: integer } \| { kind: 'continue' } \| { kind: 'next-record' }`| optional | Post-submit behavior. On the `redirect` arm, `url` is relative-only and interpolates only declared record fields as `{{record.field_name}}`, URL-escaped. |
1791
-
|**buttons**|`{ submit?: object; cancel?: object; reset?: object }`| optional | Form action-button visibility & labels; folded onto the flat renderer props by ObjectUI ObjectForm. |
1791
+
|**buttons**|`{ submit?: object; cancel?: object }`| optional | Form action-button visibility & labels; folded onto the flat renderer props by ObjectUI ObjectForm. |
1792
1792
|**defaults**|`Record<string, any>`| optional | Initial field values for create-mode forms (folded into ObjectUI ObjectForm initial values;). |
1793
1793
1794
1794
### Nested Shape: `View.listViews[string]`
@@ -1867,7 +1867,7 @@ Tab configuration for multi-tab view interface
|**sharing**|`{ enabled?: boolean; publicLink?: string; password?: string; allowedDomains?: string[]; … }`| optional | Public sharing configuration for this form |
1869
1869
|**submitBehavior**|`{ kind: 'thank-you'; title?: string; message?: string } \| { kind: 'redirect'; url: string; delayMs?: integer } \| { kind: 'continue' } \| { kind: 'next-record' }`| optional | Post-submit behavior. On the `redirect` arm, `url` is relative-only and interpolates only declared record fields as `{{record.field_name}}`, URL-escaped. |
1870
-
|**buttons**|`{ submit?: object; cancel?: object; reset?: object }`| optional | Form action-button visibility & labels; folded onto the flat renderer props by ObjectUI ObjectForm. |
1870
+
|**buttons**|`{ submit?: object; cancel?: object }`| optional | Form action-button visibility & labels; folded onto the flat renderer props by ObjectUI ObjectForm. |
1871
1871
|**defaults**|`Record<string, any>`| optional | Initial field values for create-mode forms (folded into ObjectUI ObjectForm initial values;). |
1872
1872
1873
1873
### Nested Shape: `View.protection`
@@ -2104,7 +2104,7 @@ This schema accepts one of the following structures:
|**sharing**|`{ enabled?: boolean; publicLink?: string; password?: string; allowedDomains?: string[]; … }`| optional | Public sharing configuration for this form |
2106
2106
|**submitBehavior**|`{ kind: 'thank-you'; title?: string; message?: string } \| { kind: 'redirect'; url: string; delayMs?: integer } \| { kind: 'continue' } \| { kind: 'next-record' }`| optional | Post-submit behavior. On the `redirect` arm, `url` is relative-only and interpolates only declared record fields as `{{record.field_name}}`, URL-escaped. |
2107
-
|**buttons**|`{ submit?: object; cancel?: object; reset?: object }`| optional | Form action-button visibility & labels; folded onto the flat renderer props by ObjectUI ObjectForm. |
2107
+
|**buttons**|`{ submit?: object; cancel?: object }`| optional | Form action-button visibility & labels; folded onto the flat renderer props by ObjectUI ObjectForm. |
2108
2108
|**defaults**|`Record<string, any>`| optional | Initial field values for create-mode forms (folded into ObjectUI ObjectForm initial values;). |
|**sharing**|`{ enabled?: boolean; publicLink?: string; password?: string; allowedDomains?: string[]; … }`| optional | Public sharing configuration for this form |
2290
2290
|**submitBehavior**|`{ kind: 'thank-you'; title?: string; message?: string } \| { kind: 'redirect'; url: string; delayMs?: integer } \| { kind: 'continue' } \| { kind: 'next-record' }`| optional | Post-submit behavior. On the `redirect` arm, `url` is relative-only and interpolates only declared record fields as `{{record.field_name}}`, URL-escaped. |
2291
-
|**buttons**|`{ submit?: object; cancel?: object; reset?: object }`| optional | Form action-button visibility & labels; folded onto the flat renderer props by ObjectUI ObjectForm. |
2291
+
|**buttons**|`{ submit?: object; cancel?: object }`| optional | Form action-button visibility & labels; folded onto the flat renderer props by ObjectUI ObjectForm. |
2292
2292
|**defaults**|`Record<string, any>`| optional | Initial field values for create-mode forms (folded into ObjectUI ObjectForm initial values;). |
Copy file name to clipboardExpand all lines: content/docs/ui/components/plugins.mdx
-1Lines changed: 0 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -310,7 +310,6 @@ Namespace `plugin-list`.
310
310
|`rowActions`|`array` of `string`|| Names of the actions offered on each row's menu. |
311
311
|`bulkActions`|`array` of `string`|| Names of the actions offered once rows are selected. Needs a multi-row `selection`. |
312
312
|`bulkActionDefs`|`array` of `object`|| Full bulk-action definitions, the spec's `BulkActionDef`: a mass update (`operation: "update"` with a `patch`) or delete, or a named action run once for the whole selection. |
313
-
|`options`|`object`|| Per-kind settings, `{ kanban, calendar, gantt, gallery, timeline, map, tree, chart }`, each judged by that kind's own block. The top-level block of the same name is the canonical spelling. |
314
313
|`kanban`|`object`|| The board, the spec's kanban block: `{ groupByField, columns, titleField, summarizeField }`. `groupByField` is the lane field and `columns` the fields on each card. |
315
314
|`calendar`|`object`|| The calendar, `{ startDateField, endDateField, titleField, colorField, allDayField }`. |
316
315
|`gantt`|`object`|| The gantt chart, `{ startDateField, endDateField, titleField, progressField, dependenciesField }`. Both date fields are needed to draw it. |
Copy file name to clipboardExpand all lines: skills/objectstack-ui/references/react-blocks.md
-1Lines changed: 0 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -60,7 +60,6 @@ Server-connected object table with toolbar and switchable visualizations (grid/k
60
60
|`data`|`ViewData — { provider: 'object', object: string } binds an object`| binding | ✓ | The object this block binds to, written as the metadata-tier data source: data={{ provider: 'object', object: '…' }}. Any ViewData provider is accepted (a 'value' provider renders static rows); nothing stamps the object on a react page, so this prop is required. |
61
61
|`navigation`|`{ mode: 'drawer' \| 'page' \| 'new_window' \| 'none' }`| binding || What a row click does. Use { mode: "none" } when you handle clicks via onRowClick. |
62
62
|`fields`|`string[]`| binding || Limit/order the columns shown (defaults to the object list fields). |
63
-
|`options`|`Record<string, any>`| binding || View-type-specific options bag (kanban/calendar/gantt extras); prefer the typed spec props where they exist. |
64
63
|`filters`|`FilterArray e.g. ['status','=','active']`| controlled || ObjectQL base filter; drive from React state for tabbed/searched lists. ([field, op, value]; ops =, !=, >, <, contains, in; compound: ["and", […], […]]). |
65
64
|`onRowClick`|`(record) => void`| callback || Called with the clicked row's record — the hook for master/detail. |
66
65
|`onNavigate`|`(recordId, action: 'view' \| 'new_window') => void`| callback || Called for page-level navigation. The second argument is a navigation-MODE token from a CLOSED vocabulary — 'view' opens the record page, 'new_window' opens it in a new browser tab; the reference implementation emits no other value and reads no other branch. |
0 commit comments