@pretable/react 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1421 -0
- package/dist/index.d.cts +240 -0
- package/dist/index.d.ts +240 -0
- package/dist/index.mjs +1412 -0
- package/package.json +42 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { PretableRow, PretableColumn, PretableGridOptions, PretableGrid, PretableGridSnapshot, AutosizeOptions, PretableSortDirection } from '@pretable/core';
|
|
3
|
+
export { PretableColumn, PretableGrid, PretableGridOptions, PretableGridSnapshot, PretableRow } from '@pretable/core';
|
|
4
|
+
import { HTMLAttributes, ReactNode, CSSProperties } from 'react';
|
|
5
|
+
|
|
6
|
+
interface PretableProps<TRow extends PretableRow = PretableRow> {
|
|
7
|
+
columns: PretableColumn<TRow>[];
|
|
8
|
+
getRowId?: PretableGridOptions<TRow>["getRowId"];
|
|
9
|
+
rows: TRow[];
|
|
10
|
+
}
|
|
11
|
+
declare function Pretable<TRow extends PretableRow = PretableRow>({ columns, getRowId, rows, }: PretableProps<TRow>): react_jsx_runtime.JSX.Element;
|
|
12
|
+
|
|
13
|
+
interface PlannedColumn {
|
|
14
|
+
index: number;
|
|
15
|
+
id: string;
|
|
16
|
+
left: number;
|
|
17
|
+
width: number;
|
|
18
|
+
pinned?: "left";
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface UsePretableOptions<TRow extends PretableRow = PretableRow> {
|
|
22
|
+
autosize?: boolean | AutosizeOptions;
|
|
23
|
+
columns: PretableColumn<TRow>[];
|
|
24
|
+
rows: TRow[];
|
|
25
|
+
getRowId?: PretableGridOptions<TRow>["getRowId"];
|
|
26
|
+
}
|
|
27
|
+
interface PretableRenderRow<TRow extends PretableRow = PretableRow> {
|
|
28
|
+
id: string;
|
|
29
|
+
row: TRow;
|
|
30
|
+
rowIndex: number;
|
|
31
|
+
top: number;
|
|
32
|
+
height: number;
|
|
33
|
+
}
|
|
34
|
+
interface PretableRenderSnapshot<TRow extends PretableRow = PretableRow> {
|
|
35
|
+
columns: PlannedColumn[];
|
|
36
|
+
rows: PretableRenderRow<TRow>[];
|
|
37
|
+
nodeCount: number;
|
|
38
|
+
totalHeight: number;
|
|
39
|
+
totalWidth: number;
|
|
40
|
+
}
|
|
41
|
+
interface PretableTelemetry {
|
|
42
|
+
focusedRowId: string | null;
|
|
43
|
+
rowModelRowCount: number;
|
|
44
|
+
renderedRowCount: number;
|
|
45
|
+
selectedRowId: string | null;
|
|
46
|
+
totalRowCount: number;
|
|
47
|
+
totalHeight: number;
|
|
48
|
+
visibleRowCount: number;
|
|
49
|
+
visibleRowRange: {
|
|
50
|
+
end: number;
|
|
51
|
+
start: number;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
interface PretableInteractionOverrides {
|
|
55
|
+
filters?: Record<string, string>;
|
|
56
|
+
focusedRowId?: string | null;
|
|
57
|
+
selectedRowId?: string | null;
|
|
58
|
+
sort?: {
|
|
59
|
+
columnId: string;
|
|
60
|
+
direction: PretableSortDirection;
|
|
61
|
+
} | null;
|
|
62
|
+
}
|
|
63
|
+
interface UsePretableModelOptions<TRow extends PretableRow = PretableRow> extends UsePretableOptions<TRow> {
|
|
64
|
+
viewportHeight: number;
|
|
65
|
+
viewportWidth?: number;
|
|
66
|
+
overscan?: number;
|
|
67
|
+
interactionOverrides?: PretableInteractionOverrides | null;
|
|
68
|
+
measuredHeights?: Record<string, number>;
|
|
69
|
+
}
|
|
70
|
+
interface PretableModel<TRow extends PretableRow = PretableRow> {
|
|
71
|
+
grid: PretableGrid<TRow>;
|
|
72
|
+
snapshot: PretableGridSnapshot<TRow>;
|
|
73
|
+
renderSnapshot: PretableRenderSnapshot<TRow>;
|
|
74
|
+
telemetry: PretableTelemetry;
|
|
75
|
+
}
|
|
76
|
+
declare function usePretable<TRow extends PretableRow = PretableRow>({ autosize, columns, rows, getRowId, }: UsePretableOptions<TRow>): PretableGrid<TRow>;
|
|
77
|
+
declare function usePretableModel<TRow extends PretableRow = PretableRow>({ autosize, columns, rows, getRowId, viewportHeight, viewportWidth, overscan, interactionOverrides, measuredHeights, }: UsePretableModelOptions<TRow>): PretableModel<TRow>;
|
|
78
|
+
|
|
79
|
+
interface PretableSurfaceHeaderCellRenderInput<TRow extends PretableRow = PretableRow> {
|
|
80
|
+
column: PretableColumn<TRow>;
|
|
81
|
+
label: string;
|
|
82
|
+
sortDirection: "asc" | "desc" | null;
|
|
83
|
+
}
|
|
84
|
+
interface PretableSurfaceBodyCellRenderInput<TRow extends PretableRow = PretableRow> {
|
|
85
|
+
column: PretableColumn<TRow>;
|
|
86
|
+
isFocused: boolean;
|
|
87
|
+
isSelected: boolean;
|
|
88
|
+
row: TRow;
|
|
89
|
+
rowId: string;
|
|
90
|
+
rowIndex: number;
|
|
91
|
+
value: unknown;
|
|
92
|
+
}
|
|
93
|
+
interface PretableSurfaceRowClassNameInput<TRow extends PretableRow = PretableRow> {
|
|
94
|
+
isFocused: boolean;
|
|
95
|
+
isSelected: boolean;
|
|
96
|
+
row: TRow;
|
|
97
|
+
rowId: string;
|
|
98
|
+
rowIndex: number;
|
|
99
|
+
}
|
|
100
|
+
interface PretableSurfaceHeaderClassNameInput<TRow extends PretableRow = PretableRow> {
|
|
101
|
+
column: PretableColumn<TRow>;
|
|
102
|
+
sortDirection: "asc" | "desc" | null;
|
|
103
|
+
}
|
|
104
|
+
type PretableSurfaceBodyCellClassNameInput<TRow extends PretableRow = PretableRow> = PretableSurfaceBodyCellRenderInput<TRow>;
|
|
105
|
+
type PretableSurfaceHeaderAttributesInput<TRow extends PretableRow = PretableRow> = PretableSurfaceHeaderClassNameInput<TRow>;
|
|
106
|
+
type PretableSurfaceBodyAttributesInput<TRow extends PretableRow = PretableRow> = PretableSurfaceBodyCellRenderInput<TRow>;
|
|
107
|
+
interface PretableSurfaceRowAttributesInput<TRow extends PretableRow = PretableRow> {
|
|
108
|
+
isFocused: boolean;
|
|
109
|
+
isSelected: boolean;
|
|
110
|
+
row: TRow;
|
|
111
|
+
rowId: string;
|
|
112
|
+
rowIndex: number;
|
|
113
|
+
}
|
|
114
|
+
interface PretableSurfaceInteractionState {
|
|
115
|
+
filters?: Record<string, string>;
|
|
116
|
+
focusedRowId?: string | null;
|
|
117
|
+
selectedRowId?: string | null;
|
|
118
|
+
sort?: {
|
|
119
|
+
columnId: string;
|
|
120
|
+
direction: "asc" | "desc";
|
|
121
|
+
} | null;
|
|
122
|
+
}
|
|
123
|
+
interface PretableSurfaceProps<TRow extends PretableRow = PretableRow> {
|
|
124
|
+
ariaLabel: string;
|
|
125
|
+
autosize?: boolean | AutosizeOptions;
|
|
126
|
+
columns: PretableColumn<TRow>[];
|
|
127
|
+
getBodyCellClassName?: (input: PretableSurfaceBodyCellClassNameInput<TRow>) => string | undefined;
|
|
128
|
+
getBodyCellProps?: (input: PretableSurfaceBodyAttributesInput<TRow>) => HTMLAttributes<HTMLDivElement> | undefined;
|
|
129
|
+
getHeaderCellClassName?: (input: PretableSurfaceHeaderClassNameInput<TRow>) => string | undefined;
|
|
130
|
+
getHeaderCellProps?: (input: PretableSurfaceHeaderAttributesInput<TRow>) => HTMLAttributes<HTMLButtonElement> | undefined;
|
|
131
|
+
getRowClassName?: (input: PretableSurfaceRowClassNameInput<TRow>) => string | undefined;
|
|
132
|
+
getRowId?: PretableGridOptions<TRow>["getRowId"];
|
|
133
|
+
getRowProps?: (input: PretableSurfaceRowAttributesInput<TRow>) => HTMLAttributes<HTMLDivElement> | undefined;
|
|
134
|
+
/**
|
|
135
|
+
* @experimental
|
|
136
|
+
*
|
|
137
|
+
* Inject deterministic sort/filter/selection/focus state. Used internally
|
|
138
|
+
* by the bench harness for plan replay; exposed for advanced consumers
|
|
139
|
+
* who need to drive the grid from external state. Shape may change
|
|
140
|
+
* across minor releases.
|
|
141
|
+
*/
|
|
142
|
+
interactionState?: PretableSurfaceInteractionState | null;
|
|
143
|
+
overscan?: number;
|
|
144
|
+
onSelectedRowIdChange?: (rowId: string | null) => void;
|
|
145
|
+
onSortChange?: (sort: {
|
|
146
|
+
columnId: string;
|
|
147
|
+
direction: "asc" | "desc";
|
|
148
|
+
} | null) => void;
|
|
149
|
+
onTelemetryChange?: (telemetry: PretableTelemetry) => void;
|
|
150
|
+
onGridReady?: (grid: PretableGrid<TRow>) => void;
|
|
151
|
+
renderBodyCell?: (input: PretableSurfaceBodyCellRenderInput<TRow>) => ReactNode;
|
|
152
|
+
renderHeaderCell?: (input: PretableSurfaceHeaderCellRenderInput<TRow>) => ReactNode;
|
|
153
|
+
rows: TRow[];
|
|
154
|
+
selectFocusedRowOnArrowKey?: boolean;
|
|
155
|
+
viewportStyle?: CSSProperties;
|
|
156
|
+
viewportHeight: number;
|
|
157
|
+
}
|
|
158
|
+
declare function PretableSurface<TRow extends PretableRow = PretableRow>({ ariaLabel, autosize, columns, getBodyCellClassName, getBodyCellProps, getHeaderCellClassName, getHeaderCellProps, getRowClassName, getRowId, getRowProps, interactionState, overscan, onGridReady, onSelectedRowIdChange, onSortChange, onTelemetryChange, renderBodyCell, renderHeaderCell, rows, selectFocusedRowOnArrowKey, viewportStyle, viewportHeight, }: PretableSurfaceProps<TRow>): react_jsx_runtime.JSX.Element;
|
|
159
|
+
|
|
160
|
+
type InspectionSeverity = "trace" | "info" | "warn" | "error";
|
|
161
|
+
interface InspectionRow extends Record<string, unknown> {
|
|
162
|
+
id: string;
|
|
163
|
+
timestamp: string;
|
|
164
|
+
severity: InspectionSeverity;
|
|
165
|
+
source: string;
|
|
166
|
+
owner: string;
|
|
167
|
+
tags: string[];
|
|
168
|
+
message: string;
|
|
169
|
+
}
|
|
170
|
+
type InspectionFilterableColumnId = "timestamp" | "severity" | "source" | "message";
|
|
171
|
+
|
|
172
|
+
interface InspectionGridProps {
|
|
173
|
+
ariaLabel: string;
|
|
174
|
+
filterableColumnIds: readonly InspectionFilterableColumnId[];
|
|
175
|
+
interactionState?: PretableSurfaceProps<InspectionRow>["interactionState"];
|
|
176
|
+
onSelectedRowIdChange?: (rowId: string | null) => void;
|
|
177
|
+
onSortChange?: PretableSurfaceProps<InspectionRow>["onSortChange"];
|
|
178
|
+
onTelemetryChange?: (telemetry: PretableTelemetry) => void;
|
|
179
|
+
overscan?: number;
|
|
180
|
+
rows: InspectionRow[];
|
|
181
|
+
viewportHeight: number;
|
|
182
|
+
}
|
|
183
|
+
declare function InspectionGrid({ ariaLabel, filterableColumnIds, interactionState, onSelectedRowIdChange, onSortChange, onTelemetryChange, overscan, rows, viewportHeight, }: InspectionGridProps): react_jsx_runtime.JSX.Element;
|
|
184
|
+
|
|
185
|
+
interface LabeledGridSurfaceFormatValueInput<TRow extends PretableRow = PretableRow> {
|
|
186
|
+
column: PretableColumn<TRow>;
|
|
187
|
+
row: TRow;
|
|
188
|
+
value: unknown;
|
|
189
|
+
}
|
|
190
|
+
interface LabeledGridSurfaceProps<TRow extends PretableRow = PretableRow> {
|
|
191
|
+
ariaLabel: string;
|
|
192
|
+
bodyCellClassName?: string;
|
|
193
|
+
columns: PretableColumn<TRow>[];
|
|
194
|
+
formatValue?: (input: LabeledGridSurfaceFormatValueInput<TRow>) => string;
|
|
195
|
+
getBodyCellProps?: (input: LabeledGridSurfaceFormatValueInput<TRow>) => HTMLAttributes<HTMLDivElement> | undefined;
|
|
196
|
+
getHeaderCellProps?: (input: {
|
|
197
|
+
column: PretableColumn<TRow>;
|
|
198
|
+
sortDirection: PretableSurfaceSortDirection;
|
|
199
|
+
}) => HTMLAttributes<HTMLButtonElement> | undefined;
|
|
200
|
+
getRowId?: PretableGridOptions<TRow>["getRowId"];
|
|
201
|
+
headerCellClassName?: string;
|
|
202
|
+
interactionState?: PretableSurfaceProps<TRow>["interactionState"];
|
|
203
|
+
labelClassName?: string;
|
|
204
|
+
overscan?: number;
|
|
205
|
+
onSelectedRowIdChange?: (rowId: string | null) => void;
|
|
206
|
+
onSortChange?: PretableSurfaceProps<TRow>["onSortChange"];
|
|
207
|
+
onTelemetryChange?: (telemetry: PretableTelemetry) => void;
|
|
208
|
+
pinnedClassName?: string;
|
|
209
|
+
rowClassName?: string;
|
|
210
|
+
rows: TRow[];
|
|
211
|
+
selectFocusedRowOnArrowKey?: boolean;
|
|
212
|
+
valueClassName?: string;
|
|
213
|
+
viewportHeight: number;
|
|
214
|
+
}
|
|
215
|
+
declare function LabeledGridSurface<TRow extends PretableRow = PretableRow>({ ariaLabel, bodyCellClassName, columns, formatValue, getBodyCellProps, getHeaderCellProps, getRowId, headerCellClassName, interactionState, labelClassName, overscan, onSelectedRowIdChange, onSortChange, onTelemetryChange, pinnedClassName, rowClassName, rows, selectFocusedRowOnArrowKey, valueClassName, viewportHeight, }: LabeledGridSurfaceProps<TRow>): react_jsx_runtime.JSX.Element;
|
|
216
|
+
type PretableSurfaceSortDirection = NonNullable<Parameters<NonNullable<PretableSurfaceProps["renderHeaderCell"]>>[0]["sortDirection"]> | null;
|
|
217
|
+
|
|
218
|
+
interface DensityHeights {
|
|
219
|
+
rowHeight: number;
|
|
220
|
+
headerHeight: number;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* React hook — reactive density values that update when `[data-density]`,
|
|
224
|
+
* `[data-theme]`, `class`, or inline `style` change on `<html>`.
|
|
225
|
+
*
|
|
226
|
+
* Numeric props win when passed; otherwise CSS variables; otherwise fallbacks.
|
|
227
|
+
*
|
|
228
|
+
* Currently the engine only uses `headerHeight` (replaces the legacy
|
|
229
|
+
* HEADER_HEIGHT constant). The `rowHeight` value is exposed for API parity
|
|
230
|
+
* with the spec's documented contract and for future use; row sizing in v0.0.1
|
|
231
|
+
* remains measurement-driven via `measureRenderedRowHeight()` /
|
|
232
|
+
* `estimateRowHeight()`.
|
|
233
|
+
*
|
|
234
|
+
* SSR-safe: server snapshot returns fallback values without DOM access.
|
|
235
|
+
*/
|
|
236
|
+
declare function useResolvedHeights(rowHeightProp?: number, headerHeightProp?: number): DensityHeights;
|
|
237
|
+
|
|
238
|
+
declare function measureRenderedRowHeight(row: HTMLElement): number;
|
|
239
|
+
|
|
240
|
+
export { type DensityHeights, InspectionGrid, type InspectionGridProps, LabeledGridSurface, type LabeledGridSurfaceFormatValueInput, type LabeledGridSurfaceProps, Pretable, type PretableModel, type PretableProps, type PretableRenderRow, type PretableRenderSnapshot, PretableSurface, type PretableSurfaceProps, type PretableTelemetry, type UsePretableModelOptions, type UsePretableOptions, measureRenderedRowHeight, usePretable, usePretableModel, useResolvedHeights };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { PretableRow, PretableColumn, PretableGridOptions, PretableGrid, PretableGridSnapshot, AutosizeOptions, PretableSortDirection } from '@pretable/core';
|
|
3
|
+
export { PretableColumn, PretableGrid, PretableGridOptions, PretableGridSnapshot, PretableRow } from '@pretable/core';
|
|
4
|
+
import { HTMLAttributes, ReactNode, CSSProperties } from 'react';
|
|
5
|
+
|
|
6
|
+
interface PretableProps<TRow extends PretableRow = PretableRow> {
|
|
7
|
+
columns: PretableColumn<TRow>[];
|
|
8
|
+
getRowId?: PretableGridOptions<TRow>["getRowId"];
|
|
9
|
+
rows: TRow[];
|
|
10
|
+
}
|
|
11
|
+
declare function Pretable<TRow extends PretableRow = PretableRow>({ columns, getRowId, rows, }: PretableProps<TRow>): react_jsx_runtime.JSX.Element;
|
|
12
|
+
|
|
13
|
+
interface PlannedColumn {
|
|
14
|
+
index: number;
|
|
15
|
+
id: string;
|
|
16
|
+
left: number;
|
|
17
|
+
width: number;
|
|
18
|
+
pinned?: "left";
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface UsePretableOptions<TRow extends PretableRow = PretableRow> {
|
|
22
|
+
autosize?: boolean | AutosizeOptions;
|
|
23
|
+
columns: PretableColumn<TRow>[];
|
|
24
|
+
rows: TRow[];
|
|
25
|
+
getRowId?: PretableGridOptions<TRow>["getRowId"];
|
|
26
|
+
}
|
|
27
|
+
interface PretableRenderRow<TRow extends PretableRow = PretableRow> {
|
|
28
|
+
id: string;
|
|
29
|
+
row: TRow;
|
|
30
|
+
rowIndex: number;
|
|
31
|
+
top: number;
|
|
32
|
+
height: number;
|
|
33
|
+
}
|
|
34
|
+
interface PretableRenderSnapshot<TRow extends PretableRow = PretableRow> {
|
|
35
|
+
columns: PlannedColumn[];
|
|
36
|
+
rows: PretableRenderRow<TRow>[];
|
|
37
|
+
nodeCount: number;
|
|
38
|
+
totalHeight: number;
|
|
39
|
+
totalWidth: number;
|
|
40
|
+
}
|
|
41
|
+
interface PretableTelemetry {
|
|
42
|
+
focusedRowId: string | null;
|
|
43
|
+
rowModelRowCount: number;
|
|
44
|
+
renderedRowCount: number;
|
|
45
|
+
selectedRowId: string | null;
|
|
46
|
+
totalRowCount: number;
|
|
47
|
+
totalHeight: number;
|
|
48
|
+
visibleRowCount: number;
|
|
49
|
+
visibleRowRange: {
|
|
50
|
+
end: number;
|
|
51
|
+
start: number;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
interface PretableInteractionOverrides {
|
|
55
|
+
filters?: Record<string, string>;
|
|
56
|
+
focusedRowId?: string | null;
|
|
57
|
+
selectedRowId?: string | null;
|
|
58
|
+
sort?: {
|
|
59
|
+
columnId: string;
|
|
60
|
+
direction: PretableSortDirection;
|
|
61
|
+
} | null;
|
|
62
|
+
}
|
|
63
|
+
interface UsePretableModelOptions<TRow extends PretableRow = PretableRow> extends UsePretableOptions<TRow> {
|
|
64
|
+
viewportHeight: number;
|
|
65
|
+
viewportWidth?: number;
|
|
66
|
+
overscan?: number;
|
|
67
|
+
interactionOverrides?: PretableInteractionOverrides | null;
|
|
68
|
+
measuredHeights?: Record<string, number>;
|
|
69
|
+
}
|
|
70
|
+
interface PretableModel<TRow extends PretableRow = PretableRow> {
|
|
71
|
+
grid: PretableGrid<TRow>;
|
|
72
|
+
snapshot: PretableGridSnapshot<TRow>;
|
|
73
|
+
renderSnapshot: PretableRenderSnapshot<TRow>;
|
|
74
|
+
telemetry: PretableTelemetry;
|
|
75
|
+
}
|
|
76
|
+
declare function usePretable<TRow extends PretableRow = PretableRow>({ autosize, columns, rows, getRowId, }: UsePretableOptions<TRow>): PretableGrid<TRow>;
|
|
77
|
+
declare function usePretableModel<TRow extends PretableRow = PretableRow>({ autosize, columns, rows, getRowId, viewportHeight, viewportWidth, overscan, interactionOverrides, measuredHeights, }: UsePretableModelOptions<TRow>): PretableModel<TRow>;
|
|
78
|
+
|
|
79
|
+
interface PretableSurfaceHeaderCellRenderInput<TRow extends PretableRow = PretableRow> {
|
|
80
|
+
column: PretableColumn<TRow>;
|
|
81
|
+
label: string;
|
|
82
|
+
sortDirection: "asc" | "desc" | null;
|
|
83
|
+
}
|
|
84
|
+
interface PretableSurfaceBodyCellRenderInput<TRow extends PretableRow = PretableRow> {
|
|
85
|
+
column: PretableColumn<TRow>;
|
|
86
|
+
isFocused: boolean;
|
|
87
|
+
isSelected: boolean;
|
|
88
|
+
row: TRow;
|
|
89
|
+
rowId: string;
|
|
90
|
+
rowIndex: number;
|
|
91
|
+
value: unknown;
|
|
92
|
+
}
|
|
93
|
+
interface PretableSurfaceRowClassNameInput<TRow extends PretableRow = PretableRow> {
|
|
94
|
+
isFocused: boolean;
|
|
95
|
+
isSelected: boolean;
|
|
96
|
+
row: TRow;
|
|
97
|
+
rowId: string;
|
|
98
|
+
rowIndex: number;
|
|
99
|
+
}
|
|
100
|
+
interface PretableSurfaceHeaderClassNameInput<TRow extends PretableRow = PretableRow> {
|
|
101
|
+
column: PretableColumn<TRow>;
|
|
102
|
+
sortDirection: "asc" | "desc" | null;
|
|
103
|
+
}
|
|
104
|
+
type PretableSurfaceBodyCellClassNameInput<TRow extends PretableRow = PretableRow> = PretableSurfaceBodyCellRenderInput<TRow>;
|
|
105
|
+
type PretableSurfaceHeaderAttributesInput<TRow extends PretableRow = PretableRow> = PretableSurfaceHeaderClassNameInput<TRow>;
|
|
106
|
+
type PretableSurfaceBodyAttributesInput<TRow extends PretableRow = PretableRow> = PretableSurfaceBodyCellRenderInput<TRow>;
|
|
107
|
+
interface PretableSurfaceRowAttributesInput<TRow extends PretableRow = PretableRow> {
|
|
108
|
+
isFocused: boolean;
|
|
109
|
+
isSelected: boolean;
|
|
110
|
+
row: TRow;
|
|
111
|
+
rowId: string;
|
|
112
|
+
rowIndex: number;
|
|
113
|
+
}
|
|
114
|
+
interface PretableSurfaceInteractionState {
|
|
115
|
+
filters?: Record<string, string>;
|
|
116
|
+
focusedRowId?: string | null;
|
|
117
|
+
selectedRowId?: string | null;
|
|
118
|
+
sort?: {
|
|
119
|
+
columnId: string;
|
|
120
|
+
direction: "asc" | "desc";
|
|
121
|
+
} | null;
|
|
122
|
+
}
|
|
123
|
+
interface PretableSurfaceProps<TRow extends PretableRow = PretableRow> {
|
|
124
|
+
ariaLabel: string;
|
|
125
|
+
autosize?: boolean | AutosizeOptions;
|
|
126
|
+
columns: PretableColumn<TRow>[];
|
|
127
|
+
getBodyCellClassName?: (input: PretableSurfaceBodyCellClassNameInput<TRow>) => string | undefined;
|
|
128
|
+
getBodyCellProps?: (input: PretableSurfaceBodyAttributesInput<TRow>) => HTMLAttributes<HTMLDivElement> | undefined;
|
|
129
|
+
getHeaderCellClassName?: (input: PretableSurfaceHeaderClassNameInput<TRow>) => string | undefined;
|
|
130
|
+
getHeaderCellProps?: (input: PretableSurfaceHeaderAttributesInput<TRow>) => HTMLAttributes<HTMLButtonElement> | undefined;
|
|
131
|
+
getRowClassName?: (input: PretableSurfaceRowClassNameInput<TRow>) => string | undefined;
|
|
132
|
+
getRowId?: PretableGridOptions<TRow>["getRowId"];
|
|
133
|
+
getRowProps?: (input: PretableSurfaceRowAttributesInput<TRow>) => HTMLAttributes<HTMLDivElement> | undefined;
|
|
134
|
+
/**
|
|
135
|
+
* @experimental
|
|
136
|
+
*
|
|
137
|
+
* Inject deterministic sort/filter/selection/focus state. Used internally
|
|
138
|
+
* by the bench harness for plan replay; exposed for advanced consumers
|
|
139
|
+
* who need to drive the grid from external state. Shape may change
|
|
140
|
+
* across minor releases.
|
|
141
|
+
*/
|
|
142
|
+
interactionState?: PretableSurfaceInteractionState | null;
|
|
143
|
+
overscan?: number;
|
|
144
|
+
onSelectedRowIdChange?: (rowId: string | null) => void;
|
|
145
|
+
onSortChange?: (sort: {
|
|
146
|
+
columnId: string;
|
|
147
|
+
direction: "asc" | "desc";
|
|
148
|
+
} | null) => void;
|
|
149
|
+
onTelemetryChange?: (telemetry: PretableTelemetry) => void;
|
|
150
|
+
onGridReady?: (grid: PretableGrid<TRow>) => void;
|
|
151
|
+
renderBodyCell?: (input: PretableSurfaceBodyCellRenderInput<TRow>) => ReactNode;
|
|
152
|
+
renderHeaderCell?: (input: PretableSurfaceHeaderCellRenderInput<TRow>) => ReactNode;
|
|
153
|
+
rows: TRow[];
|
|
154
|
+
selectFocusedRowOnArrowKey?: boolean;
|
|
155
|
+
viewportStyle?: CSSProperties;
|
|
156
|
+
viewportHeight: number;
|
|
157
|
+
}
|
|
158
|
+
declare function PretableSurface<TRow extends PretableRow = PretableRow>({ ariaLabel, autosize, columns, getBodyCellClassName, getBodyCellProps, getHeaderCellClassName, getHeaderCellProps, getRowClassName, getRowId, getRowProps, interactionState, overscan, onGridReady, onSelectedRowIdChange, onSortChange, onTelemetryChange, renderBodyCell, renderHeaderCell, rows, selectFocusedRowOnArrowKey, viewportStyle, viewportHeight, }: PretableSurfaceProps<TRow>): react_jsx_runtime.JSX.Element;
|
|
159
|
+
|
|
160
|
+
type InspectionSeverity = "trace" | "info" | "warn" | "error";
|
|
161
|
+
interface InspectionRow extends Record<string, unknown> {
|
|
162
|
+
id: string;
|
|
163
|
+
timestamp: string;
|
|
164
|
+
severity: InspectionSeverity;
|
|
165
|
+
source: string;
|
|
166
|
+
owner: string;
|
|
167
|
+
tags: string[];
|
|
168
|
+
message: string;
|
|
169
|
+
}
|
|
170
|
+
type InspectionFilterableColumnId = "timestamp" | "severity" | "source" | "message";
|
|
171
|
+
|
|
172
|
+
interface InspectionGridProps {
|
|
173
|
+
ariaLabel: string;
|
|
174
|
+
filterableColumnIds: readonly InspectionFilterableColumnId[];
|
|
175
|
+
interactionState?: PretableSurfaceProps<InspectionRow>["interactionState"];
|
|
176
|
+
onSelectedRowIdChange?: (rowId: string | null) => void;
|
|
177
|
+
onSortChange?: PretableSurfaceProps<InspectionRow>["onSortChange"];
|
|
178
|
+
onTelemetryChange?: (telemetry: PretableTelemetry) => void;
|
|
179
|
+
overscan?: number;
|
|
180
|
+
rows: InspectionRow[];
|
|
181
|
+
viewportHeight: number;
|
|
182
|
+
}
|
|
183
|
+
declare function InspectionGrid({ ariaLabel, filterableColumnIds, interactionState, onSelectedRowIdChange, onSortChange, onTelemetryChange, overscan, rows, viewportHeight, }: InspectionGridProps): react_jsx_runtime.JSX.Element;
|
|
184
|
+
|
|
185
|
+
interface LabeledGridSurfaceFormatValueInput<TRow extends PretableRow = PretableRow> {
|
|
186
|
+
column: PretableColumn<TRow>;
|
|
187
|
+
row: TRow;
|
|
188
|
+
value: unknown;
|
|
189
|
+
}
|
|
190
|
+
interface LabeledGridSurfaceProps<TRow extends PretableRow = PretableRow> {
|
|
191
|
+
ariaLabel: string;
|
|
192
|
+
bodyCellClassName?: string;
|
|
193
|
+
columns: PretableColumn<TRow>[];
|
|
194
|
+
formatValue?: (input: LabeledGridSurfaceFormatValueInput<TRow>) => string;
|
|
195
|
+
getBodyCellProps?: (input: LabeledGridSurfaceFormatValueInput<TRow>) => HTMLAttributes<HTMLDivElement> | undefined;
|
|
196
|
+
getHeaderCellProps?: (input: {
|
|
197
|
+
column: PretableColumn<TRow>;
|
|
198
|
+
sortDirection: PretableSurfaceSortDirection;
|
|
199
|
+
}) => HTMLAttributes<HTMLButtonElement> | undefined;
|
|
200
|
+
getRowId?: PretableGridOptions<TRow>["getRowId"];
|
|
201
|
+
headerCellClassName?: string;
|
|
202
|
+
interactionState?: PretableSurfaceProps<TRow>["interactionState"];
|
|
203
|
+
labelClassName?: string;
|
|
204
|
+
overscan?: number;
|
|
205
|
+
onSelectedRowIdChange?: (rowId: string | null) => void;
|
|
206
|
+
onSortChange?: PretableSurfaceProps<TRow>["onSortChange"];
|
|
207
|
+
onTelemetryChange?: (telemetry: PretableTelemetry) => void;
|
|
208
|
+
pinnedClassName?: string;
|
|
209
|
+
rowClassName?: string;
|
|
210
|
+
rows: TRow[];
|
|
211
|
+
selectFocusedRowOnArrowKey?: boolean;
|
|
212
|
+
valueClassName?: string;
|
|
213
|
+
viewportHeight: number;
|
|
214
|
+
}
|
|
215
|
+
declare function LabeledGridSurface<TRow extends PretableRow = PretableRow>({ ariaLabel, bodyCellClassName, columns, formatValue, getBodyCellProps, getHeaderCellProps, getRowId, headerCellClassName, interactionState, labelClassName, overscan, onSelectedRowIdChange, onSortChange, onTelemetryChange, pinnedClassName, rowClassName, rows, selectFocusedRowOnArrowKey, valueClassName, viewportHeight, }: LabeledGridSurfaceProps<TRow>): react_jsx_runtime.JSX.Element;
|
|
216
|
+
type PretableSurfaceSortDirection = NonNullable<Parameters<NonNullable<PretableSurfaceProps["renderHeaderCell"]>>[0]["sortDirection"]> | null;
|
|
217
|
+
|
|
218
|
+
interface DensityHeights {
|
|
219
|
+
rowHeight: number;
|
|
220
|
+
headerHeight: number;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* React hook — reactive density values that update when `[data-density]`,
|
|
224
|
+
* `[data-theme]`, `class`, or inline `style` change on `<html>`.
|
|
225
|
+
*
|
|
226
|
+
* Numeric props win when passed; otherwise CSS variables; otherwise fallbacks.
|
|
227
|
+
*
|
|
228
|
+
* Currently the engine only uses `headerHeight` (replaces the legacy
|
|
229
|
+
* HEADER_HEIGHT constant). The `rowHeight` value is exposed for API parity
|
|
230
|
+
* with the spec's documented contract and for future use; row sizing in v0.0.1
|
|
231
|
+
* remains measurement-driven via `measureRenderedRowHeight()` /
|
|
232
|
+
* `estimateRowHeight()`.
|
|
233
|
+
*
|
|
234
|
+
* SSR-safe: server snapshot returns fallback values without DOM access.
|
|
235
|
+
*/
|
|
236
|
+
declare function useResolvedHeights(rowHeightProp?: number, headerHeightProp?: number): DensityHeights;
|
|
237
|
+
|
|
238
|
+
declare function measureRenderedRowHeight(row: HTMLElement): number;
|
|
239
|
+
|
|
240
|
+
export { type DensityHeights, InspectionGrid, type InspectionGridProps, LabeledGridSurface, type LabeledGridSurfaceFormatValueInput, type LabeledGridSurfaceProps, Pretable, type PretableModel, type PretableProps, type PretableRenderRow, type PretableRenderSnapshot, PretableSurface, type PretableSurfaceProps, type PretableTelemetry, type UsePretableModelOptions, type UsePretableOptions, measureRenderedRowHeight, usePretable, usePretableModel, useResolvedHeights };
|