DataTable

The console's table: a 36px header, 40px rows without lines, numbers right, sorting, resizing, selection, virtualization.

View source
12 Oct 2026, 14:19:33
200OK
gpt-5
checkout-web
/v1/responses
1,735 tokens
606 tokens
733 ms
Stream
$0.0082
12 Oct 2026, 14:18:12
200OK
gpt-5-mini
ci-runner
/v1/responses
5,569 tokens
915 tokens
1.1 s
Stream
$0.0032
12 Oct 2026, 14:17:18
200OK
gpt-5
ci-runner
/v1/responses
1,954 tokens
1,400 tokens
4.9 s
$0.0164
12 Oct 2026, 14:17:12
200OK
claude-sonnet-4-5
checkout-worker
/v1/messages
5,472 tokens
1,033 tokens
2.6 s
Stream
$0.0319
12 Oct 2026, 14:16:04
200OK
claude-haiku-4-5
checkout-web
/v1/messages
988 tokens
348 tokens
2.9 s
Stream
$0.0027
12 Oct 2026, 14:14:47
200OK
gpt-5-mini
ci-runner
/v1/responses
2,032 tokens
107 tokens
2 s
$0.0007
12 Oct 2026, 14:13:25
200OK
claude-sonnet-4-5
checkout-web
/v1/messages
2,286 tokens
261 tokens
5.7 s
Stream
$0.0108
12 Oct 2026, 14:12:42
200OK
claude-sonnet-4-5
checkout-web
/v1/messages
1,112 tokens
793 tokens
1.2 s
Stream
$0.0152
12 Oct 2026, 14:11:54
200OK
gpt-5
ci-runner
/v1/chat/completions
4,566 tokens
1,315 tokens
4.8 s
$0.0189
12 Oct 2026, 14:11:38
200OK
claude-sonnet-4-5
checkout-worker
/v1/messages
6,327 tokens
676 tokens
4.5 s
$0.0291
12 Oct 2026, 14:10:20
200OK
claude-haiku-4-5
checkout-worker
/v1/messages
1,412 tokens
621 tokens
2.1 s
Stream
$0.0045
12 Oct 2026, 14:09:58
200OK
gpt-5-mini
checkout-worker
/v1/chat/completions
1,985 tokens
645 tokens
665 ms
$0.0018
12 Oct 2026, 14:09:01
200OK
claude-sonnet-4-5
checkout-worker
/v1/messages
4,021 tokens
405 tokens
2.6 s
$0.0181
12 Oct 2026, 14:07:34
200OK
claude-haiku-4-5
checkout-worker
/v1/messages
5,949 tokens
116 tokens
1.9 s
Stream
$0.0065
12 Oct 2026, 14:06:02
200OK
claude-sonnet-4-5
checkout-web
/v1/messages
2,253 tokens
870 tokens
4.2 s
Stream
$0.0198
12 Oct 2026, 14:04:49
200OK
claude-haiku-4-5
ci-runner
/v1/messages
3,854 tokens
505 tokens
4 s
$0.0064
12 Oct 2026, 14:03:40
200OK
claude-sonnet-4-5
ci-runner
/v1/messages
5,467 tokens
1,104 tokens
5.3 s
Stream
$0.0330
12 Oct 2026, 14:02:08
200OK
claude-sonnet-4-5
checkout-web
/v1/messages
727 tokens
841 tokens
3.8 s
$0.0148
12 Oct 2026, 14:00:39
200OK
gpt-5-mini
checkout-worker
/v1/responses
3,852 tokens
879 tokens
759 ms
$0.0027
12 Oct 2026, 14:00:25
200OK
gpt-5-mini
checkout-worker
/v1/chat/completions
3,763 tokens
682 tokens
5.7 s
Stream
$0.0023
12 Oct 2026, 13:59:56
200OK
claude-haiku-4-5
checkout-worker
/v1/messages
3,731 tokens
997 tokens
4.5 s
$0.0087
12 Oct 2026, 13:59:31
200OK
gpt-5
checkout-web
/v1/chat/completions
3,048 tokens
1,170 tokens
3.9 s
Stream
$0.0155
12 Oct 2026, 13:58:55
200OK
claude-sonnet-4-5
ci-runner
/v1/messages
4,922 tokens
1,038 tokens
2 s
Stream
$0.0303
12 Oct 2026, 13:57:32
200OK
gpt-5
checkout-web
/v1/responses
3,499 tokens
1,057 tokens
644 ms
$0.0149
12 Oct 2026, 13:56:53
200OK
claude-haiku-4-5
checkout-worker
/v1/messages
4,031 tokens
246 tokens
3.2 s
$0.0053
12 Oct 2026, 13:56:35
429Rate limited
claude-haiku-4-5
checkout-web
/v1/messages
5,002 tokens
0 tokens
128 ms
Stream
$0.0050
12 Oct 2026, 13:55:13
200OK
claude-haiku-4-5
checkout-worker
/v1/messages
4,478 tokens
1,383 tokens
3.8 s
Stream
$0.0114
12 Oct 2026, 13:54:00
200OK
gpt-5-mini
checkout-web
/v1/responses
1,829 tokens
780 tokens
3.7 s
$0.0020
12 Oct 2026, 13:52:45
200OK
claude-sonnet-4-5
ci-runner
/v1/messages
1,782 tokens
208 tokens
4.8 s
Stream
$0.0085
12 Oct 2026, 13:52:30
200OK
gpt-5
ci-runner
/v1/responses
1,949 tokens
708 tokens
3.7 s
$0.0095
12 Oct 2026, 13:50:59
200OK
claude-haiku-4-5
checkout-web
/v1/messages
5,578 tokens
337 tokens
2.2 s
Stream
$0.0073
12 Oct 2026, 13:50:14
200OK
gpt-5
checkout-web
/v1/chat/completions
3,021 tokens
1,331 tokens
813 ms
$0.0171
12 Oct 2026, 13:49:47
200OK
claude-haiku-4-5
checkout-web
/v1/messages
766 tokens
1,230 tokens
1.5 s
$0.0069
12 Oct 2026, 13:49:08
200OK
claude-haiku-4-5
checkout-web
/v1/messages
3,056 tokens
799 tokens
4.3 s
Stream
$0.0071
12 Oct 2026, 13:48:04
200OK
claude-haiku-4-5
checkout-web
/v1/messages
2,705 tokens
1,310 tokens
3.6 s
Stream
$0.0093
12 Oct 2026, 13:47:00
502Bad gateway
claude-sonnet-4-5
ci-runner
/v1/messages
2,474 tokens
0 tokens
163 ms
$0.0074
12 Oct 2026, 13:46:50
200OK
claude-sonnet-4-5
ci-runner
/v1/messages
4,265 tokens
1,158 tokens
2.9 s
$0.0302
12 Oct 2026, 13:46:12
200OK
claude-sonnet-4-5
ci-runner
/v1/messages
1,721 tokens
136 tokens
791 ms
Stream
$0.0072
12 Oct 2026, 13:45:28
200OK
claude-haiku-4-5
checkout-worker
/v1/messages
3,664 tokens
1,304 tokens
2 s
Stream
$0.0102
12 Oct 2026, 13:45:05
200OK
gpt-5-mini
checkout-worker
/v1/chat/completions
6,359 tokens
661 tokens
4.6 s
$0.0029
12 Oct 2026, 13:44:26
200OK
claude-haiku-4-5
ci-runner
/v1/messages
1,749 tokens
845 tokens
2.2 s
$0.0060
12 Oct 2026, 13:43:19
502Bad gateway
claude-haiku-4-5
checkout-web
/v1/messages
3,736 tokens
0 tokens
346 ms
Stream
$0.0037
12 Oct 2026, 13:42:42
200OK
claude-haiku-4-5
checkout-web
/v1/messages
4,495 tokens
491 tokens
3.8 s
$0.0070
12 Oct 2026, 13:41:32
200OK
gpt-5
checkout-web
/v1/responses
3,265 tokens
985 tokens
4.3 s
Stream
$0.0139
12 Oct 2026, 13:40:11
200OK
gpt-5-mini
ci-runner
/v1/responses
6,359 tokens
479 tokens
4.7 s
$0.0025
12 Oct 2026, 13:39:41
200OK
claude-haiku-4-5
checkout-web
/v1/messages
2,183 tokens
1,002 tokens
2.5 s
Stream
$0.0072
12 Oct 2026, 13:38:50
200OK
gpt-5-mini
checkout-worker
/v1/responses
2,760 tokens
1,283 tokens
1.3 s
Stream
$0.0033
12 Oct 2026, 13:38:19
200OK
claude-haiku-4-5
ci-runner
/v1/messages
3,991 tokens
224 tokens
942 ms
Stream
$0.0051
12 Oct 2026, 13:37:10
200OK
claude-sonnet-4-5
ci-runner
/v1/messages
1,855 tokens
157 tokens
2.3 s
$0.0079
12 Oct 2026, 13:36:59
200OK
claude-sonnet-4-5
checkout-web
/v1/messages
2,451 tokens
167 tokens
5.1 s
Stream
$0.0099
12 Oct 2026, 13:35:35
200OK
claude-haiku-4-5
checkout-worker
/v1/messages
3,834 tokens
259 tokens
3.5 s
Stream
$0.0051
12 Oct 2026, 13:35:13
200OK
claude-sonnet-4-5
checkout-web
/v1/messages
5,822 tokens
1,367 tokens
2.2 s
Stream
$0.0380
12 Oct 2026, 13:33:50
200OK
claude-sonnet-4-5
ci-runner
/v1/messages
2,415 tokens
1,166 tokens
4.8 s
$0.0247
12 Oct 2026, 13:33:05
200OK
claude-sonnet-4-5
checkout-worker
/v1/messages
2,502 tokens
330 tokens
5.1 s
$0.0125
12 Oct 2026, 13:32:30
429Rate limited
claude-sonnet-4-5
checkout-web
/v1/messages
2,585 tokens
0 tokens
285 ms
$0.0078
12 Oct 2026, 13:31:41
200OK
gpt-5
ci-runner
/v1/chat/completions
4,194 tokens
1,472 tokens
1.5 s
Stream
$0.0200
12 Oct 2026, 13:30:42
200OK
gpt-5-mini
checkout-web
/v1/chat/completions
3,631 tokens
419 tokens
3.6 s
$0.0017
12 Oct 2026, 13:29:33
200OK
gpt-5
ci-runner
/v1/responses
5,935 tokens
425 tokens
5 s
$0.0117
12 Oct 2026, 13:28:23
200OK
gpt-5-mini
ci-runner
/v1/responses
1,277 tokens
1,438 tokens
1.3 s
Stream
$0.0032
12 Oct 2026, 13:27:51
200OK
claude-haiku-4-5
checkout-worker
/v1/messages
4,090 tokens
1,323 tokens
5.6 s
$0.0107
import { DataTable, col } from "@logicplanes/kaeso-ui";

Props

  • activeRowId
    string

    The id of a row to show as active (open in a sheet).

  • aria-label
    string

    The table's accessible name.

  • columns
    ColumnDef<T, any>[]

    The columns, as TanStack Table column definitions.

  • data
    T[]

    The rows.

  • density
    "default" | "compact" | "comfortable"

    How much room each row gets.

  • empty
    ReactNode

    What to show when there are no rows, usually an Empty.

  • error
    ReactNode

    The rows failed to load: the table says so where its rows would be and offers Try again (onRetry). Errors are toasts, so the value isn't shown; toast the message where the request fails.

  • freshRowIds
    ReadonlySet<string>

    Rows that just arrived (a live list): each shows a fill that fades out over a second.

  • getRowId
    ((row: T) => string)

    Returns a row's stable id, for selection and keys.

  • hasMore
    boolean

    Whether more rows can be loaded.

  • loading
    boolean

    Shows skeleton rows while the first page loads.

  • loadingMore
    boolean

    Shows that more rows are loading.

  • manualSorting
    boolean

    Sorting happens on the server: the data arrives sorted.

  • onLoadMore
    (() => void)

    Called to load the next rows.

  • onRetry
    (() => void)

    Shows a Retry button when loading failed.

  • onRowClick
    ((row: T) => void)

    Called when a row is clicked; rows then show that they can be opened.

  • onSelectionChange
    ((selection: RowSelectionState) => void)

    Called with the selected rows.

  • onSortingChange
    ((sorting: SortingState) => void)

    Called with the new sort order.

  • ref
    Ref<HTMLDivElement>

    A ref to the outer element.

  • rowMenu
    ((row: T) => ReactNode)

    Items for a row's context menu (right-click).

  • selectable
    boolean

    Adds a checkbox to every row.

  • selection
    RowSelectionState

    The selected rows, when you control them.

  • sorting
    SortingState

    The sort order, when you control it.

  • stickyFirstColumn
    boolean

    Keeps the first column in view while scrolling sideways.

  • virtualizeAbove
    number

    Above this many rows, only the visible rows are rendered.