Bus UI Data Display
Readable data surfaces from node-first Go props.
Use the individual component pages for the public pkg/ui data-display wrappers.
Each page names the exact Go entry point and the return type.
Public APIs
| Component | Use it for | Public API |
|---|---|---|
| DenseTable | Dense comparable rows with validated headings and cell counts. | DenseTable(p DenseTableProps) gx.Node |
| TextTable | Compatibility tables that already own trusted row nodes. | TextTable(headers []string, rows []Node, log ControlLogSink) gx.Node |
| RecordList | Ordered record summaries with empty-state support. | RecordList(p RecordListProps) gx.Node |
| SummaryItem | Compact summary cards and list items. | SummaryItem(p SummaryItemProps) gx.Node |
| ProjectionDetail | Public-safe projection fields plus evidence actions and diagnostics. | ProjectionDetail(p ProjectionDetailProps) (ProjectionDetailResult, error) |
| ProviderError | Public provider failure surfaces and redacted field errors. | ProviderError(p ProviderErrorProps) gx.Node |
| Timeline | Ordered event history with timestamps, sequences, and status chips. | Timeline(p TimelineProps) gx.Node |
Shared example
import (
gx "github.com/busdk/bus-gx/pkg/gx"
ui "github.com/busdk/bus-ui/pkg/ui"
)
rows := []ui.DenseTableRow{
ui.DenseTableRowText("June receipts", "3 files", "Ready"),
}
node := ui.DenseTable(ui.DenseTableProps{
Caption: "Document queue",
Columns: []ui.DenseTableColumn{
ui.DenseTableColumnText("title", "Title"),
ui.DenseTableColumnText("files", "Files"),
ui.DenseTableColumnText("state", "State"),
},
Rows: rows,
})
html, err := gx.RenderHTML(node)
These shared examples now use the public pkg/ui facade.