@noxickon/onyx 6.5.0 → 6.7.0
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/components/DataTable/DataTable.d.ts +1 -1
- package/dist/components/DataTable/DataTable.js +667 -529
- package/dist/components/DataTable/DataTable.styles.d.ts +27 -0
- package/dist/components/DataTable/DataTable.styles.js +8 -1
- package/dist/components/DataTable/DataTable.types.d.ts +3 -1
- package/dist/components/ScrollArea/ScrollArea2.js +1 -1
- package/dist/components/Table/Table.d.ts +1 -1
- package/dist/components/Table/Table.js +69 -63
- package/dist/components/Table/Table.types.d.ts +7 -1
- package/dist/connect/executors/connectExecutor.d.ts +3 -0
- package/dist/connect/executors/connectExecutor.js +21 -0
- package/dist/connect/executors/connectExecutor.types.d.ts +8 -0
- package/dist/connect/executors/errorDetails.d.ts +9 -0
- package/dist/connect/executors/errorDetails.js +21 -0
- package/dist/connect/index.d.ts +4 -0
- package/dist/connect/schemas/error_details_pb.d.ts +62 -0
- package/dist/connect/schemas/error_details_pb.js +5 -0
- package/dist/connect.js +3 -0
- package/dist/hooks.js +3 -3
- package/dist/index.js +24 -24
- package/package.json +15 -1
|
@@ -6,6 +6,12 @@ export declare const dataTableVariants: import('tailwind-variants').TVReturnType
|
|
|
6
6
|
toolbar: string;
|
|
7
7
|
};
|
|
8
8
|
};
|
|
9
|
+
stickyHeader: {
|
|
10
|
+
true: {
|
|
11
|
+
scrollScrollbar: string;
|
|
12
|
+
};
|
|
13
|
+
false: {};
|
|
14
|
+
};
|
|
9
15
|
sortActive: {
|
|
10
16
|
true: {
|
|
11
17
|
headSort: string;
|
|
@@ -36,6 +42,8 @@ export declare const dataTableVariants: import('tailwind-variants').TVReturnType
|
|
|
36
42
|
filterChipsRow: string;
|
|
37
43
|
selectionActions: string;
|
|
38
44
|
scroll: string;
|
|
45
|
+
scrollViewport: string;
|
|
46
|
+
scrollScrollbar: string;
|
|
39
47
|
selectCol: string;
|
|
40
48
|
frozenHead: string;
|
|
41
49
|
frozenCell: string[];
|
|
@@ -52,6 +60,7 @@ export declare const dataTableVariants: import('tailwind-variants').TVReturnType
|
|
|
52
60
|
footer: string;
|
|
53
61
|
spinner: string;
|
|
54
62
|
empty: string;
|
|
63
|
+
virtualSpacerCell: string;
|
|
55
64
|
configPanel: string;
|
|
56
65
|
configTitle: string;
|
|
57
66
|
configList: string;
|
|
@@ -72,6 +81,12 @@ export declare const dataTableVariants: import('tailwind-variants').TVReturnType
|
|
|
72
81
|
toolbar: string;
|
|
73
82
|
};
|
|
74
83
|
};
|
|
84
|
+
stickyHeader: {
|
|
85
|
+
true: {
|
|
86
|
+
scrollScrollbar: string;
|
|
87
|
+
};
|
|
88
|
+
false: {};
|
|
89
|
+
};
|
|
75
90
|
sortActive: {
|
|
76
91
|
true: {
|
|
77
92
|
headSort: string;
|
|
@@ -102,6 +117,8 @@ export declare const dataTableVariants: import('tailwind-variants').TVReturnType
|
|
|
102
117
|
filterChipsRow: string;
|
|
103
118
|
selectionActions: string;
|
|
104
119
|
scroll: string;
|
|
120
|
+
scrollViewport: string;
|
|
121
|
+
scrollScrollbar: string;
|
|
105
122
|
selectCol: string;
|
|
106
123
|
frozenHead: string;
|
|
107
124
|
frozenCell: string[];
|
|
@@ -118,6 +135,7 @@ export declare const dataTableVariants: import('tailwind-variants').TVReturnType
|
|
|
118
135
|
footer: string;
|
|
119
136
|
spinner: string;
|
|
120
137
|
empty: string;
|
|
138
|
+
virtualSpacerCell: string;
|
|
121
139
|
configPanel: string;
|
|
122
140
|
configTitle: string;
|
|
123
141
|
configList: string;
|
|
@@ -138,6 +156,12 @@ export declare const dataTableVariants: import('tailwind-variants').TVReturnType
|
|
|
138
156
|
toolbar: string;
|
|
139
157
|
};
|
|
140
158
|
};
|
|
159
|
+
stickyHeader: {
|
|
160
|
+
true: {
|
|
161
|
+
scrollScrollbar: string;
|
|
162
|
+
};
|
|
163
|
+
false: {};
|
|
164
|
+
};
|
|
141
165
|
sortActive: {
|
|
142
166
|
true: {
|
|
143
167
|
headSort: string;
|
|
@@ -168,6 +192,8 @@ export declare const dataTableVariants: import('tailwind-variants').TVReturnType
|
|
|
168
192
|
filterChipsRow: string;
|
|
169
193
|
selectionActions: string;
|
|
170
194
|
scroll: string;
|
|
195
|
+
scrollViewport: string;
|
|
196
|
+
scrollScrollbar: string;
|
|
171
197
|
selectCol: string;
|
|
172
198
|
frozenHead: string;
|
|
173
199
|
frozenCell: string[];
|
|
@@ -184,6 +210,7 @@ export declare const dataTableVariants: import('tailwind-variants').TVReturnType
|
|
|
184
210
|
footer: string;
|
|
185
211
|
spinner: string;
|
|
186
212
|
empty: string;
|
|
213
|
+
virtualSpacerCell: string;
|
|
187
214
|
configPanel: string;
|
|
188
215
|
configTitle: string;
|
|
189
216
|
configList: string;
|
|
@@ -15,7 +15,9 @@ var t = e({
|
|
|
15
15
|
collapseClip: "overflow-hidden",
|
|
16
16
|
filterChipsRow: "flex min-h-[calc(var(--control-h-md)+1.25rem+1px)] flex-wrap items-center gap-2 border-b border-line px-3.5 py-2.5",
|
|
17
17
|
selectionActions: "flex min-w-0 items-center gap-3",
|
|
18
|
-
scroll: "relative w-full
|
|
18
|
+
scroll: "relative w-full",
|
|
19
|
+
scrollViewport: "max-h-(--ox-data-table-max-h) [-webkit-overflow-scrolling:touch]",
|
|
20
|
+
scrollScrollbar: "",
|
|
19
21
|
selectCol: "pointer-coarse:w-11",
|
|
20
22
|
frozenHead: "pointer-coarse:sticky pointer-coarse:left-(--ox-frozen-left) pointer-coarse:z-30 pointer-coarse:bg-card",
|
|
21
23
|
frozenCell: [
|
|
@@ -45,6 +47,7 @@ var t = e({
|
|
|
45
47
|
footer: "flex items-center justify-center gap-2 border-t border-line py-2.5 text-xs text-fg-subtle",
|
|
46
48
|
spinner: "size-3.5 animate-spin rounded-full border-2 border-line border-t-primary",
|
|
47
49
|
empty: "px-6 py-12 text-center text-body text-fg-subtle pointer-coarse:px-6 pointer-coarse:py-12",
|
|
50
|
+
virtualSpacerCell: "border-0 p-0",
|
|
48
51
|
configPanel: "flex w-64 flex-col",
|
|
49
52
|
configTitle: "px-2 pt-1.5 pb-2 text-body font-semibold text-fg",
|
|
50
53
|
configList: "flex flex-col gap-0.5 py-1",
|
|
@@ -64,6 +67,10 @@ var t = e({
|
|
|
64
67
|
comfortable: {},
|
|
65
68
|
compact: { toolbar: "min-h-12 py-2" }
|
|
66
69
|
},
|
|
70
|
+
stickyHeader: {
|
|
71
|
+
true: { scrollScrollbar: "data-[orientation=vertical]:pt-[calc(var(--ox-data-table-head-h,0px)+2px)]" },
|
|
72
|
+
false: {}
|
|
73
|
+
},
|
|
67
74
|
sortActive: {
|
|
68
75
|
true: {
|
|
69
76
|
headSort: "text-fg",
|
|
@@ -3,7 +3,7 @@ import { DataTableVariants } from './DataTable.styles';
|
|
|
3
3
|
type DataTableDensity = NonNullable<DataTableVariants['density']>;
|
|
4
4
|
type DataTableAlign = 'start' | 'center' | 'end';
|
|
5
5
|
type SortDirection = 'asc' | 'desc';
|
|
6
|
-
type DataTablePaginationMode = 'pages' | 'infinite';
|
|
6
|
+
type DataTablePaginationMode = 'pages' | 'infinite' | 'virtual';
|
|
7
7
|
type DataTablePaginationLayout = 'end' | 'center' | 'split';
|
|
8
8
|
type ColumnAccessor<TRow> = keyof TRow | ((row: TRow) => unknown);
|
|
9
9
|
interface OxDataTableColumn<TRow> {
|
|
@@ -47,6 +47,7 @@ interface OxDataTableProps<TRow> {
|
|
|
47
47
|
density?: DataTableDensity;
|
|
48
48
|
emptyState?: ReactNode;
|
|
49
49
|
endReachedThreshold?: number;
|
|
50
|
+
estimateSize?: (index: number) => number;
|
|
50
51
|
frozenColumns?: string[];
|
|
51
52
|
getRowCanExpand?: (row: TRow) => boolean;
|
|
52
53
|
getRowId: (row: TRow) => string;
|
|
@@ -60,6 +61,7 @@ interface OxDataTableProps<TRow> {
|
|
|
60
61
|
onPageChange?: (page: number) => void;
|
|
61
62
|
onSelectionChange?: (ids: Set<string>) => void;
|
|
62
63
|
onSortChange?: (columnId: string, direction: SortDirection | null) => void;
|
|
64
|
+
overscan?: number;
|
|
63
65
|
page?: number;
|
|
64
66
|
pageSize?: number;
|
|
65
67
|
paginationMode?: DataTablePaginationMode;
|
|
@@ -11,9 +11,9 @@ function a(a) {
|
|
|
11
11
|
if (o[13] !== s || o[14] !== c || o[15] !== l || o[16] !== u || o[17] !== w || o[18] !== C || o[19] !== S || o[20] !== b || o[21] !== x || o[22] !== d || o[23] !== f || o[24] !== g || o[25] !== _ || o[26] !== v) {
|
|
12
12
|
let t = e();
|
|
13
13
|
T = /* @__PURE__ */ r(i.Root, {
|
|
14
|
+
"data-ox-slot": "scroll-area",
|
|
14
15
|
...d,
|
|
15
16
|
className: t.root({ class: c }),
|
|
16
|
-
"data-ox-slot": "scroll-area",
|
|
17
17
|
children: [
|
|
18
18
|
/* @__PURE__ */ n(i.Viewport, {
|
|
19
19
|
className: t.viewport({ class: _ }),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OxTableBodyProps, OxTableCaptionProps, OxTableCellProps, OxTableExpandedRowProps, OxTableExpandTriggerProps, OxTableFooterProps, OxTableHeadProps, OxTableProps, OxTableRowProps, OxTableSectionProps, OxTableSelectAllCellProps, OxTableSelectCellProps } from './Table.types';
|
|
2
|
-
declare function OxTableRoot({ children, className, defaultExpandedRows, defaultSelectedRows, density, dividers, hover, onSelectedChange, selectable, selectedRows, stickyHeader, stripe, unwrapped, wrapperClassName, ...props }: OxTableProps): import("react").JSX.Element;
|
|
2
|
+
declare function OxTableRoot({ children, className, defaultExpandedRows, defaultSelectedRows, density, dividers, expandedRows, hover, onExpandedChange, onSelectedChange, selectable, selectableRowIds, selectedRows, stickyHeader, stripe, unwrapped, wrapperClassName, ...props }: OxTableProps): import("react").JSX.Element;
|
|
3
3
|
declare function OxTableHeader({ children, className, ...props }: OxTableSectionProps): import("react").JSX.Element;
|
|
4
4
|
declare function OxTableBody({ children, className, ...props }: OxTableBodyProps): import("react").JSX.Element;
|
|
5
5
|
declare function OxTableFooter({ children, className, ...props }: OxTableFooterProps): import("react").JSX.Element;
|
|
@@ -29,86 +29,92 @@ function y() {
|
|
|
29
29
|
}, e[4] = i, e[5] = p), p;
|
|
30
30
|
}
|
|
31
31
|
function b(e) {
|
|
32
|
-
let t = a(
|
|
33
|
-
t[0] === e ? (n = t[1], o = t[2], s = t[3], p = t[4], m = t[5], h = t[6], g = t[7], _ = t[8], v = t[9], b = t[10], x = t[11], S = t[12], C = t[13], w = t[14], T = t[15]) : ({children: n, className: o, defaultExpandedRows: s, defaultSelectedRows: p, density:
|
|
34
|
-
let
|
|
35
|
-
t[
|
|
36
|
-
let
|
|
37
|
-
t[
|
|
38
|
-
prop:
|
|
39
|
-
defaultProp:
|
|
40
|
-
onChange:
|
|
41
|
-
}, t[
|
|
42
|
-
let [
|
|
43
|
-
t[
|
|
44
|
-
let
|
|
45
|
-
t[
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
t[
|
|
50
|
-
|
|
32
|
+
let t = a(63), n, o, s, p, m, h, g, _, v, b, x, S, C, w, T, E, D, O;
|
|
33
|
+
t[0] === e ? (n = t[1], o = t[2], s = t[3], p = t[4], m = t[5], h = t[6], g = t[7], _ = t[8], v = t[9], b = t[10], x = t[11], S = t[12], C = t[13], w = t[14], T = t[15], E = t[16], D = t[17], O = t[18]) : ({children: n, className: o, defaultExpandedRows: s, defaultSelectedRows: p, density: x, dividers: S, expandedRows: m, hover: C, onExpandedChange: h, onSelectedChange: g, selectable: w, selectableRowIds: v, selectedRows: b, stickyHeader: T, stripe: E, unwrapped: D, wrapperClassName: O, ..._} = e, t[0] = e, t[1] = n, t[2] = o, t[3] = s, t[4] = p, t[5] = m, t[6] = h, t[7] = g, t[8] = _, t[9] = v, t[10] = b, t[11] = x, t[12] = S, t[13] = C, t[14] = w, t[15] = T, t[16] = E, t[17] = D, t[18] = O);
|
|
34
|
+
let k = x === void 0 ? "comfortable" : x, A = S === void 0 ? "rows" : S, j = C === void 0 ? !0 : C, M = w === void 0 ? !1 : w, N = T === void 0 ? !0 : T, ee = E === void 0 ? !1 : E, te = D === void 0 ? !1 : D, ne = c(), re = i({ density: k }), P;
|
|
35
|
+
t[19] === p ? P = t[20] : (P = p ?? /* @__PURE__ */ new Set(), t[19] = p, t[20] = P);
|
|
36
|
+
let F;
|
|
37
|
+
t[21] !== g || t[22] !== b || t[23] !== P ? (F = {
|
|
38
|
+
prop: b,
|
|
39
|
+
defaultProp: P,
|
|
40
|
+
onChange: g
|
|
41
|
+
}, t[21] = g, t[22] = b, t[23] = P, t[24] = F) : F = t[24];
|
|
42
|
+
let [I, L] = r(F), R;
|
|
43
|
+
t[25] === s ? R = t[26] : (R = s ?? /* @__PURE__ */ new Set(), t[25] = s, t[26] = R);
|
|
44
|
+
let z;
|
|
45
|
+
t[27] !== m || t[28] !== h || t[29] !== R ? (z = {
|
|
46
|
+
prop: m,
|
|
47
|
+
defaultProp: R,
|
|
48
|
+
onChange: h
|
|
49
|
+
}, t[27] = m, t[28] = h, t[29] = R, t[30] = z) : z = t[30];
|
|
50
|
+
let [B, ie] = r(z), { ids: ae, register: oe } = y(), V = v ?? ae, [se, ce] = u(0), H = l(0), U;
|
|
51
|
+
t[31] === Symbol.for("react.memo_cache_sentinel") ? (U = () => (H.current += 1, ce(H.current), () => {
|
|
52
|
+
--H.current, ce(H.current);
|
|
53
|
+
}), t[31] = U) : U = t[31];
|
|
54
|
+
let le = U, W;
|
|
55
|
+
t[32] === L ? W = t[33] : (W = (e) => {
|
|
56
|
+
L((t) => {
|
|
51
57
|
let n = new Set(t);
|
|
52
58
|
return n.has(e) ? n.delete(e) : n.add(e), n;
|
|
53
59
|
});
|
|
54
|
-
}, t[
|
|
60
|
+
}, t[32] = L, t[33] = W);
|
|
55
61
|
let G = W, K = "none";
|
|
56
|
-
if (
|
|
57
|
-
let e =
|
|
58
|
-
e > 0 && (K = e ===
|
|
62
|
+
if (V.length > 0) {
|
|
63
|
+
let e = V.filter((e) => I.has(e)).length;
|
|
64
|
+
e > 0 && (K = e === V.length ? "all" : "some");
|
|
59
65
|
}
|
|
60
66
|
let q;
|
|
61
|
-
t[
|
|
62
|
-
|
|
63
|
-
let t = new Set(e), n =
|
|
64
|
-
for (let e of
|
|
67
|
+
t[34] !== V || t[35] !== L ? (q = () => {
|
|
68
|
+
L((e) => {
|
|
69
|
+
let t = new Set(e), n = V.every((e) => t.has(e));
|
|
70
|
+
for (let e of V) n ? t.delete(e) : t.add(e);
|
|
65
71
|
return t;
|
|
66
72
|
});
|
|
67
|
-
}, t[
|
|
68
|
-
let
|
|
69
|
-
t[
|
|
70
|
-
|
|
73
|
+
}, t[34] = V, t[35] = L, t[36] = q) : q = t[36];
|
|
74
|
+
let ue = q, J;
|
|
75
|
+
t[37] === ie ? J = t[38] : (J = (e) => {
|
|
76
|
+
ie((t) => {
|
|
71
77
|
let n = new Set(t);
|
|
72
78
|
return n.has(e) ? n.delete(e) : n.add(e), n;
|
|
73
79
|
});
|
|
74
|
-
}, t[
|
|
75
|
-
let
|
|
76
|
-
t[
|
|
77
|
-
let
|
|
78
|
-
t[
|
|
79
|
-
let
|
|
80
|
-
t[
|
|
81
|
-
baseId:
|
|
82
|
-
columnCount:
|
|
83
|
-
density:
|
|
84
|
-
dividers:
|
|
85
|
-
hover:
|
|
86
|
-
isRowExpanded:
|
|
87
|
-
isRowSelected:
|
|
88
|
-
registerColumn:
|
|
89
|
-
registerSelectableRow:
|
|
90
|
-
selectable:
|
|
80
|
+
}, t[37] = ie, t[38] = J);
|
|
81
|
+
let de = J, Y;
|
|
82
|
+
t[39] === I ? Y = t[40] : (Y = (e) => I.has(e), t[39] = I, t[40] = Y);
|
|
83
|
+
let fe = Y, X;
|
|
84
|
+
t[41] === B ? X = t[42] : (X = (e) => B.has(e), t[41] = B, t[42] = X);
|
|
85
|
+
let Z = X, Q;
|
|
86
|
+
t[43] !== ne || t[44] !== se || t[45] !== k || t[46] !== A || t[47] !== j || t[48] !== Z || t[49] !== fe || t[50] !== oe || t[51] !== M || t[52] !== K || t[53] !== N || t[54] !== ee || t[55] !== ue || t[56] !== de || t[57] !== G ? (Q = {
|
|
87
|
+
baseId: ne,
|
|
88
|
+
columnCount: se,
|
|
89
|
+
density: k,
|
|
90
|
+
dividers: A,
|
|
91
|
+
hover: j,
|
|
92
|
+
isRowExpanded: Z,
|
|
93
|
+
isRowSelected: fe,
|
|
94
|
+
registerColumn: le,
|
|
95
|
+
registerSelectableRow: oe,
|
|
96
|
+
selectable: M,
|
|
91
97
|
selectionState: K,
|
|
92
|
-
stickyHeader:
|
|
93
|
-
stripe:
|
|
94
|
-
toggleAll:
|
|
95
|
-
toggleExpanded:
|
|
98
|
+
stickyHeader: N,
|
|
99
|
+
stripe: ee,
|
|
100
|
+
toggleAll: ue,
|
|
101
|
+
toggleExpanded: de,
|
|
96
102
|
toggleSelected: G
|
|
97
|
-
}, t[
|
|
98
|
-
let
|
|
99
|
-
...
|
|
100
|
-
className:
|
|
103
|
+
}, t[43] = ne, t[44] = se, t[45] = k, t[46] = A, t[47] = j, t[48] = Z, t[49] = fe, t[50] = oe, t[51] = M, t[52] = K, t[53] = N, t[54] = ee, t[55] = ue, t[56] = de, t[57] = G, t[58] = Q) : Q = t[58];
|
|
104
|
+
let pe = Q, me = /* @__PURE__ */ d("table", {
|
|
105
|
+
..._,
|
|
106
|
+
className: re.table({ class: o }),
|
|
101
107
|
"data-ox-slot": "table",
|
|
102
108
|
children: n
|
|
103
|
-
}),
|
|
104
|
-
className:
|
|
109
|
+
}), he = f, ge = te ? me : /* @__PURE__ */ d("div", {
|
|
110
|
+
className: re.wrapper({ class: O }),
|
|
105
111
|
"data-ox-slot": "table-wrapper",
|
|
106
|
-
children:
|
|
112
|
+
children: me
|
|
107
113
|
}), $;
|
|
108
|
-
return t[
|
|
109
|
-
value:
|
|
110
|
-
children:
|
|
111
|
-
}), t[
|
|
114
|
+
return t[59] !== he || t[60] !== pe || t[61] !== ge ? ($ = /* @__PURE__ */ d(he, {
|
|
115
|
+
value: pe,
|
|
116
|
+
children: ge
|
|
117
|
+
}), t[59] = he, t[60] = pe, t[61] = ge, t[62] = $) : $ = t[62], $;
|
|
112
118
|
}
|
|
113
119
|
function x(e) {
|
|
114
120
|
let t = a(19), n, r, o;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ComponentPropsWithoutRef, ReactNode } from 'react';
|
|
1
|
+
import { ComponentPropsWithoutRef, ReactNode, Ref } from 'react';
|
|
2
2
|
import { TableVariants } from './Table.styles';
|
|
3
3
|
type TableDensity = NonNullable<TableVariants['density']>;
|
|
4
4
|
type TableDividers = NonNullable<TableVariants['dividers']>;
|
|
@@ -11,9 +11,12 @@ interface OxTableProps extends Omit<ComponentPropsWithoutRef<'table'>, 'classNam
|
|
|
11
11
|
defaultSelectedRows?: Set<string>;
|
|
12
12
|
density?: TableDensity;
|
|
13
13
|
dividers?: TableDividers;
|
|
14
|
+
expandedRows?: Set<string>;
|
|
14
15
|
hover?: boolean;
|
|
16
|
+
onExpandedChange?: (ids: Set<string>) => void;
|
|
15
17
|
onSelectedChange?: (ids: Set<string>) => void;
|
|
16
18
|
selectable?: boolean;
|
|
19
|
+
selectableRowIds?: string[];
|
|
17
20
|
selectedRows?: Set<string>;
|
|
18
21
|
stickyHeader?: boolean;
|
|
19
22
|
stripe?: boolean;
|
|
@@ -23,6 +26,7 @@ interface OxTableProps extends Omit<ComponentPropsWithoutRef<'table'>, 'classNam
|
|
|
23
26
|
interface OxTableSectionProps extends Omit<ComponentPropsWithoutRef<'thead'>, 'className'> {
|
|
24
27
|
children: ReactNode;
|
|
25
28
|
className?: string;
|
|
29
|
+
ref?: Ref<HTMLTableSectionElement>;
|
|
26
30
|
}
|
|
27
31
|
interface OxTableBodyProps extends Omit<ComponentPropsWithoutRef<'tbody'>, 'className'> {
|
|
28
32
|
children: ReactNode;
|
|
@@ -39,6 +43,7 @@ interface OxTableCaptionProps extends Omit<ComponentPropsWithoutRef<'caption'>,
|
|
|
39
43
|
interface OxTableRowProps extends Omit<ComponentPropsWithoutRef<'tr'>, 'className'> {
|
|
40
44
|
children: ReactNode;
|
|
41
45
|
className?: string;
|
|
46
|
+
ref?: Ref<HTMLTableRowElement>;
|
|
42
47
|
rowId?: string;
|
|
43
48
|
selected?: boolean;
|
|
44
49
|
}
|
|
@@ -72,6 +77,7 @@ interface OxTableExpandedRowProps extends Omit<ComponentPropsWithoutRef<'tr'>, '
|
|
|
72
77
|
children: ReactNode;
|
|
73
78
|
className?: string;
|
|
74
79
|
colSpan?: number;
|
|
80
|
+
ref?: Ref<HTMLTableRowElement>;
|
|
75
81
|
rowId: string;
|
|
76
82
|
}
|
|
77
83
|
export type { OxTableBodyProps, OxTableCaptionProps, OxTableCellProps, OxTableExpandedRowProps, OxTableExpandTriggerProps, OxTableFooterProps, OxTableHeadProps, OxTableProps, OxTableRowProps, OxTableSectionProps, OxTableSelectAllCellProps, OxTableSelectCellProps, TableAlign, TableDensity, TableDividers, TableSticky, };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { OxExecutor } from '../../hooks';
|
|
2
|
+
import { ConnectCall, ConnectExecutorOptions } from './connectExecutor.types';
|
|
3
|
+
export declare function connectExecutor<TForm extends object, TResult = unknown>(call: ConnectCall<TForm, TResult>, options?: ConnectExecutorOptions<TForm>): OxExecutor<TForm, TResult>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { formErrors as e } from "../../hooks/useForm/useForm.js";
|
|
2
|
+
import { defaultParseErrors as t } from "./errorDetails.js";
|
|
3
|
+
import { ConnectError as n } from "@connectrpc/connect";
|
|
4
|
+
//#region src/connect/executors/connectExecutor.ts
|
|
5
|
+
function r(r, i = {}) {
|
|
6
|
+
let { parseErrors: a = t } = i;
|
|
7
|
+
return async ({ payload: t, signal: i, url: o }) => {
|
|
8
|
+
if (o !== void 0) throw Error("connectExecutor: ctx.url is meaningless for RPC (the call closes over its own client and endpoint)");
|
|
9
|
+
try {
|
|
10
|
+
return await r(t, { signal: i });
|
|
11
|
+
} catch (t) {
|
|
12
|
+
if (t instanceof n) {
|
|
13
|
+
let n = a(t);
|
|
14
|
+
if (n !== null) return e(n);
|
|
15
|
+
}
|
|
16
|
+
throw t;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { r as connectExecutor };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ConnectError } from '@connectrpc/connect';
|
|
2
|
+
import { OxFormDataErrors } from '../../internal/hooks';
|
|
3
|
+
export type ConnectCall<TForm extends object, TResult> = (payload: TForm, options: {
|
|
4
|
+
signal: AbortSignal;
|
|
5
|
+
}) => Promise<TResult>;
|
|
6
|
+
export interface ConnectExecutorOptions<TForm extends object> {
|
|
7
|
+
parseErrors?: (error: ConnectError) => OxFormDataErrors<TForm> | null;
|
|
8
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ConnectError } from '@connectrpc/connect';
|
|
2
|
+
import { OxFormDataErrors } from '../../internal/hooks';
|
|
3
|
+
export interface OxConnectErrorInfo {
|
|
4
|
+
domain: string;
|
|
5
|
+
metadata: Record<string, string>;
|
|
6
|
+
reason: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function connectErrorInfo(error: ConnectError): OxConnectErrorInfo | null;
|
|
9
|
+
export declare function defaultParseErrors<TForm extends object>(error: ConnectError): OxFormDataErrors<TForm> | null;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BadRequestSchema as e, ErrorInfoSchema as t } from "../schemas/error_details_pb.js";
|
|
2
|
+
import { Code as n } from "@connectrpc/connect";
|
|
3
|
+
//#region src/connect/executors/errorDetails.ts
|
|
4
|
+
function r(e) {
|
|
5
|
+
let [n] = e.findDetails(t);
|
|
6
|
+
return n ? {
|
|
7
|
+
domain: n.domain,
|
|
8
|
+
metadata: n.metadata,
|
|
9
|
+
reason: n.reason
|
|
10
|
+
} : null;
|
|
11
|
+
}
|
|
12
|
+
function i(t) {
|
|
13
|
+
if (t.code !== n.InvalidArgument) return null;
|
|
14
|
+
let [r] = t.findDetails(e);
|
|
15
|
+
if (!r) return null;
|
|
16
|
+
let i = {};
|
|
17
|
+
for (let { description: e, field: t } of r.fieldViolations) t && !Object.hasOwn(i, t) && (i[t] = e);
|
|
18
|
+
return Object.keys(i).length > 0 ? i : null;
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { r as connectErrorInfo, i as defaultParseErrors };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { connectExecutor } from './executors/connectExecutor';
|
|
2
|
+
export type { ConnectCall, ConnectExecutorOptions } from './executors/connectExecutor.types';
|
|
3
|
+
export { connectErrorInfo } from './executors/errorDetails';
|
|
4
|
+
export type { OxConnectErrorInfo } from './executors/errorDetails';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { GenFile, GenMessage } from '@bufbuild/protobuf/codegenv2';
|
|
2
|
+
import { Message } from '@bufbuild/protobuf';
|
|
3
|
+
/**
|
|
4
|
+
* Describes the file error_details.proto.
|
|
5
|
+
*/
|
|
6
|
+
export declare const file_error_details: GenFile;
|
|
7
|
+
/**
|
|
8
|
+
* @generated from message google.rpc.ErrorInfo
|
|
9
|
+
*/
|
|
10
|
+
export type ErrorInfo = Message<"google.rpc.ErrorInfo"> & {
|
|
11
|
+
/**
|
|
12
|
+
* @generated from field: string reason = 1;
|
|
13
|
+
*/
|
|
14
|
+
reason: string;
|
|
15
|
+
/**
|
|
16
|
+
* @generated from field: string domain = 2;
|
|
17
|
+
*/
|
|
18
|
+
domain: string;
|
|
19
|
+
/**
|
|
20
|
+
* @generated from field: map<string, string> metadata = 3;
|
|
21
|
+
*/
|
|
22
|
+
metadata: {
|
|
23
|
+
[key: string]: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Describes the message google.rpc.ErrorInfo.
|
|
28
|
+
* Use `create(ErrorInfoSchema)` to create a new message.
|
|
29
|
+
*/
|
|
30
|
+
export declare const ErrorInfoSchema: GenMessage<ErrorInfo>;
|
|
31
|
+
/**
|
|
32
|
+
* @generated from message google.rpc.BadRequest
|
|
33
|
+
*/
|
|
34
|
+
export type BadRequest = Message<"google.rpc.BadRequest"> & {
|
|
35
|
+
/**
|
|
36
|
+
* @generated from field: repeated google.rpc.BadRequest.FieldViolation field_violations = 1;
|
|
37
|
+
*/
|
|
38
|
+
fieldViolations: BadRequest_FieldViolation[];
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Describes the message google.rpc.BadRequest.
|
|
42
|
+
* Use `create(BadRequestSchema)` to create a new message.
|
|
43
|
+
*/
|
|
44
|
+
export declare const BadRequestSchema: GenMessage<BadRequest>;
|
|
45
|
+
/**
|
|
46
|
+
* @generated from message google.rpc.BadRequest.FieldViolation
|
|
47
|
+
*/
|
|
48
|
+
export type BadRequest_FieldViolation = Message<"google.rpc.BadRequest.FieldViolation"> & {
|
|
49
|
+
/**
|
|
50
|
+
* @generated from field: string field = 1;
|
|
51
|
+
*/
|
|
52
|
+
field: string;
|
|
53
|
+
/**
|
|
54
|
+
* @generated from field: string description = 2;
|
|
55
|
+
*/
|
|
56
|
+
description: string;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Describes the message google.rpc.BadRequest.FieldViolation.
|
|
60
|
+
* Use `create(BadRequest_FieldViolationSchema)` to create a new message.
|
|
61
|
+
*/
|
|
62
|
+
export declare const BadRequest_FieldViolationSchema: GenMessage<BadRequest_FieldViolation>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { fileDesc as e, messageDesc as t } from "@bufbuild/protobuf/codegenv2";
|
|
2
|
+
//#region src/connect/schemas/error_details_pb.ts
|
|
3
|
+
var n = /*@__PURE__*/ e("ChNlcnJvcl9kZXRhaWxzLnByb3RvEgpnb29nbGUucnBjIpMBCglFcnJvckluZm8SDgoGcmVhc29uGAEgASgJEg4KBmRvbWFpbhgCIAEoCRI1CghtZXRhZGF0YRgDIAMoCzIjLmdvb2dsZS5ycGMuRXJyb3JJbmZvLk1ldGFkYXRhRW50cnkaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIoMBCgpCYWRSZXF1ZXN0Ej8KEGZpZWxkX3Zpb2xhdGlvbnMYASADKAsyJS5nb29nbGUucnBjLkJhZFJlcXVlc3QuRmllbGRWaW9sYXRpb24aNAoORmllbGRWaW9sYXRpb24SDQoFZmllbGQYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAliBnByb3RvMw"), r = /*@__PURE__*/ t(n, 0), i = /*@__PURE__*/ t(n, 1);
|
|
4
|
+
//#endregion
|
|
5
|
+
export { i as BadRequestSchema, r as ErrorInfoSchema, n as file_error_details };
|
package/dist/connect.js
ADDED
package/dist/hooks.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useOxMediaQuery as e } from "./hooks/useMediaQuery/useMediaQuery.js";
|
|
2
2
|
import { useOxPagination as t } from "./hooks/usePagination/usePagination.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { useOxVirtualizer as n } from "./hooks/useVirtualizer/useVirtualizer.js";
|
|
4
|
+
import { oxBreakpoints as r, useOxBreakpoint as i, useOxBreakpointDown as a, useOxBreakpointUp as o } from "./hooks/useBreakpoint/useBreakpoint.js";
|
|
5
5
|
import { useOxCommandShortcut as s } from "./hooks/useCommandShortcut/useCommandShortcut.js";
|
|
6
6
|
import { useOxDebounce as c, useOxDebouncedValue as l } from "./hooks/useDebounce/useDebounce.js";
|
|
7
7
|
import { OxFormErrors as u, formErrors as d, useOxForm as f } from "./hooks/useForm/useForm.js";
|
|
@@ -11,4 +11,4 @@ import { useOxPoll as h } from "./hooks/usePoll/usePoll.js";
|
|
|
11
11
|
import { useOxQuery as g } from "./hooks/useQuery/useQuery.js";
|
|
12
12
|
import { oxHistoryStateAdapter as _, oxLocalStorageAdapter as v, oxSessionStorageAdapter as y } from "./hooks/useRemember/useRemember.adapters.js";
|
|
13
13
|
import { useOxRemember as b } from "./hooks/useRemember/useRemember.js";
|
|
14
|
-
export { u as OxFormErrors, d as formErrors,
|
|
14
|
+
export { u as OxFormErrors, d as formErrors, r as oxBreakpoints, _ as oxHistoryStateAdapter, v as oxLocalStorageAdapter, y as oxSessionStorageAdapter, p as standardSchemaResolver, i as useOxBreakpoint, a as useOxBreakpointDown, o as useOxBreakpointUp, s as useOxCommandShortcut, c as useOxDebounce, l as useOxDebouncedValue, m as useOxFilter, f as useOxForm, e as useOxMediaQuery, t as useOxPagination, h as useOxPoll, g as useOxQuery, b as useOxRemember, n as useOxVirtualizer };
|
package/dist/index.js
CHANGED
|
@@ -24,29 +24,29 @@ import { OxInput as D } from "./components/Input/index.js";
|
|
|
24
24
|
import { OxCopyInput as O } from "./components/CopyInput/CopyInput.js";
|
|
25
25
|
import { OxPagination as k } from "./components/Pagination/index.js";
|
|
26
26
|
import { OxPopover as A } from "./components/Popover/index.js";
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
41
|
-
import {
|
|
42
|
-
import {
|
|
43
|
-
import {
|
|
44
|
-
import {
|
|
45
|
-
import {
|
|
46
|
-
import {
|
|
47
|
-
import {
|
|
48
|
-
import {
|
|
49
|
-
import {
|
|
27
|
+
import { OxScrollArea as j } from "./components/ScrollArea/ScrollArea2.js";
|
|
28
|
+
import { OxSkeleton as M } from "./components/Skeleton/Skeleton2.js";
|
|
29
|
+
import { OxTable as N } from "./components/Table/index.js";
|
|
30
|
+
import { OxDataTable as P } from "./components/DataTable/index.js";
|
|
31
|
+
import { OxDescriptionList as F } from "./components/DescriptionList/index.js";
|
|
32
|
+
import { OxDialog as I } from "./components/Dialog/index.js";
|
|
33
|
+
import { OxDrawer as L } from "./components/Drawer/index.js";
|
|
34
|
+
import { OxField as R } from "./components/Field/index.js";
|
|
35
|
+
import { OxFieldset as z } from "./components/Fieldset/index.js";
|
|
36
|
+
import { OxFooter as B } from "./components/Footer/index.js";
|
|
37
|
+
import { OxHeader as V } from "./components/Header/index.js";
|
|
38
|
+
import { OxHoldToDelete as H } from "./components/HoldToDelete/HoldToDelete2.js";
|
|
39
|
+
import { OxKbd as U } from "./components/Kbd/Kbd.js";
|
|
40
|
+
import { OxMain as W } from "./components/Main/Main.js";
|
|
41
|
+
import { OxMeter as G } from "./components/Meter/index.js";
|
|
42
|
+
import { OxNavigationMenu as K } from "./components/NavigationMenu/index.js";
|
|
43
|
+
import { OxNumberInput as q } from "./components/NumberInput/index.js";
|
|
44
|
+
import { OxOtpField as J } from "./components/OtpField/OtpField.js";
|
|
45
|
+
import { OxPageProgress as Y } from "./components/PageProgress/PageProgress.js";
|
|
46
|
+
import { OxProgress as X } from "./components/Progress/index.js";
|
|
47
|
+
import { OxRadio as Z, OxRadioGroup as Q } from "./components/Radio/Radio.js";
|
|
48
|
+
import { OxResponsiveOverlay as $ } from "./components/ResponsiveOverlay/index.js";
|
|
49
|
+
import { OxSelect as ee } from "./components/Select/index.js";
|
|
50
50
|
import { OxSeparator as te } from "./components/Separator/Separator.js";
|
|
51
51
|
import { OxSidebar as ne } from "./components/Sidebar/index.js";
|
|
52
52
|
import { OxTooltip as re, OxTooltipProvider as ie } from "./components/Tooltip/Tooltip.js";
|
|
@@ -63,4 +63,4 @@ import { OxToast as ge } from "./components/Toast/index.js";
|
|
|
63
63
|
import { OxToggle as _e } from "./components/Toggle/index.js";
|
|
64
64
|
import { OxTypewriter as ve } from "./components/Typewriter/index.js";
|
|
65
65
|
import { OxVirtualList as ye } from "./components/VirtualList/VirtualList.js";
|
|
66
|
-
export { e as OxAccordion, t as OxAlert, r as OxAlertDialog, i as OxAnimatedGradientText, a as OxAppLayout, s as OxAutocomplete, u as OxAvatar, d as OxAvatarGroup, f as OxBadge, m as OxBlurSwitch, g as OxBreadcrumb, p as OxButton, _ as OxCard, C as OxCheckbox, w as OxCheckboxGroup, de as OxChip, v as OxCollapsible, y as OxCombobox, S as OxCommand, T as OxContextMenu, E as OxCopyButton, O as OxCopyInput,
|
|
66
|
+
export { e as OxAccordion, t as OxAlert, r as OxAlertDialog, i as OxAnimatedGradientText, a as OxAppLayout, s as OxAutocomplete, u as OxAvatar, d as OxAvatarGroup, f as OxBadge, m as OxBlurSwitch, g as OxBreadcrumb, p as OxButton, _ as OxCard, C as OxCheckbox, w as OxCheckboxGroup, de as OxChip, v as OxCollapsible, y as OxCombobox, S as OxCommand, T as OxContextMenu, E as OxCopyButton, O as OxCopyInput, P as OxDataTable, F as OxDescriptionList, I as OxDialog, L as OxDrawer, h as OxDropdown, R as OxField, z as OxFieldset, B as OxFooter, V as OxHeader, H as OxHoldToDelete, n as OxIconTile, D as OxInput, U as OxKbd, W as OxMain, G as OxMeter, K as OxNavigationMenu, q as OxNumberInput, J as OxOtpField, Y as OxPageProgress, k as OxPagination, A as OxPopover, X as OxProgress, Z as OxRadio, Q as OxRadioGroup, $ as OxResponsiveOverlay, j as OxScrollArea, ee as OxSelect, te as OxSeparator, ne as OxSidebar, ae as OxSidebarRail, M as OxSkeleton, le as OxSlider, o as OxSpinner, ue as OxStatusDisplay, oe as OxSwitch, se as OxTabBar, N as OxTable, ce as OxTabs, fe as OxTextarea, ge as OxToast, _e as OxToggle, re as OxTooltip, ie as OxTooltipProvider, ve as OxTypewriter, ye as OxVirtualList, pe as createOxToastManager, me as oxToast, c as useOxAutocompleteFilter, l as useOxAutocompleteFilteredItems, b as useOxComboboxFilter, x as useOxComboboxFilteredItems, he as useOxToast };
|