Skip to content
SurfaceDocs
FRGet started
DocsModel reference

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>;

All references

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.

  1. Number
  2. Status
  3. Amount
  4. Last updated
ILLUSTRATIVE LAYOUTClients / Quotes app
SurfaceClients / North StudioExample
WorkspaceTableLayout · typesCollection columns and formats
Clients
Client : North StudioStatus: All ⌄Search…
NumberStatusAmountOpen
S-1042Draft12 500↗
S-1041Approved8 200↗
S-1040Sent4 750↗
Client Query resultsNext page →
Search for a concept, field or action.Esc