WorkspaceTableLayout · types
Interfaces, values and named contracts for WorkspaceTableLayout.
The following types define named objects and their relationships. Tables include inherited properties. Schema-derived types refer to their validated structures; a TypeScript declaration does not replace the compiler’s semantic checks.
WorkspaceTableLayout
Exact admitted visual options; persistence and mutation remain separate canonical owners.
export type WorkspaceTableLayout = z.infer<typeof workspaceTableLayoutSchema>;
WorkspaceTableGrouping
One declared set of grouping choices and its bounded group page size.
export type WorkspaceTableGrouping = z.infer<typeof workspaceTableGroupingSchema>;
WorkspaceTableCellFormat
The shared formatter consumes canonical scalar values, never arbitrary renderer code.
export type WorkspaceTableCellFormat = z.infer<typeof workspaceTableCellFormatSchema>;
Applied examples : Collection columns and formats
Declare each column source before its format, order and filters.
Configuration
Fragment placed in presentation.tableViews[]. Properties and accepted values.
{
"viewKey": "quotes-table",
"columns": [
{
"key": "number",
"label": "Number",
"source": {
"kind": "native",
"property": "title"
}
},
{
"key": "status",
"label": "Status",
"source": {
"kind": "field",
"fieldPath": "fields/status"
}
},
{
"key": "amount",
"label": "Amount",
"source": {
"kind": "field",
"fieldPath": "fields/amount"
}
}
],
"openLabel": "Open quote"
}
Variation and connection
Fragment placed in presentation.tableViews[].layout. Properties and accepted values.
{
"contract": "WorkspaceTableLayout@1",
"grouping": null,
"columns": [
{
"columnKey": "number",
"visible": true,
"width": null,
"frozen": true,
"format": {
"kind": "text"
},
"headerFilterParameterKey": null
},
{
"columnKey": "status",
"visible": true,
"width": null,
"frozen": false,
"format": {
"kind": "badge"
},
"headerFilterParameterKey": null
},
{
"columnKey": "amount",
"visible": true,
"width": null,
"frozen": false,
"format": {
"kind": "number",
"maximumFractionDigits": 2
},
"headerFilterParameterKey": null
}
],
"columnGroups": []
}
UI layout example
The illustrative layout below places this configuration in the Clients/Quotes app. Insert each fragment at the stated location, with Field, Query and Action references matching the Model declarations.
- Number
- Status
- Amount
- Last updated
| Number | Status | Amount | Open |
|---|---|---|---|
| S-1042 | Draft | 12 500 | ↗ |
| S-1041 | Approved | 8 200 | ↗ |
| S-1040 | Sent | 4 750 | ↗ |