DataTable

components/data/Table.vue

Column-config-driven data table with sorting, search, tone-mapped pills, and optional expandable rows.

Egress by Domain

Requests
Severity
Last Seen
s3.amazonaws.com128730Lowjust now
api.openai.com61944High1m ago
api.stripe.com24312Low2m ago
hooks.slack.com8121Medium14m ago
telemetry.vendor.io302Critical3h ago
Scenarios

Empty

Requests
Severity
Last Seen
No violations recorded.

Expandable rows

Requests
Severity
Last Seen
api.stripe.com24312Low2m ago
hooks.slack.com8121Medium14m ago
api.openai.com61944High1m ago
Requests
Severity
Last Seen
api.stripe.com24,312Low2m ago
hooks.slack.com8,121Medium14m ago
api.openai.com61,944High1m ago
components/data/Table.vue

Usage

<DataTable :columns = "—" :rows = "—" title = "undefined" empty = "No data yet." :onRow = "onRow" initialSort = "—" rowKey = "undefined" />

Props

PropTypeDefaultDescription
columnsCol[]Column config: { key, label, width?, num?, mono?, search?, sortable?, pill? }
rowsany[]Row objects keyed by column key
titleStringundefinedHeading above the table with heavy underline
emptyString'No data yet.'Message shown when rows is empty
onRowFunctionundefinedRow click handler — adds pointer cursor and hover highlight (plain rows only)
initialSortString''Column label to sort by initially
rowKeyStringundefinedRow property to use as v-for key (falls back to index)

Slots

SlotDescription
<column key>Per-column cell override — receives { row, value }. Default renders text, or a tone-mapped UxPill when the column sets pill: true
detailsExpanded row content — receives { row }. Providing this slot makes all rows expandable

Related

Qpoint Brand Style Guide