@toolbox-web/grid-react 0.3.1 → 0.5.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/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { DataGrid } from './lib/data-grid';
2
2
  export { GridColumn } from './lib/grid-column';
3
3
  export { GridDetailPanel, type DetailPanelContext, type GridDetailPanelProps } from './lib/grid-detail-panel';
4
+ export { GridResponsiveCard, type GridResponsiveCardProps, type ResponsiveCardContext, } from './lib/grid-responsive-card';
4
5
  export { GridToolButtons, type GridToolButtonsProps } from './lib/grid-tool-button';
5
6
  export { GridToolPanel, type GridToolPanelProps, type ToolPanelContext } from './lib/grid-tool-panel';
6
7
  export { GridTypeProvider, useGridTypeDefaults, useTypeDefault, type GridTypeProviderProps, type ReactTypeDefault, type TypeDefaultsMap, } from './lib/grid-type-registry';
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../libs/grid-react/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,YAAY,CAAC;AAGpB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGtG,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGpF,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGjF,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGvH,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../libs/grid-react/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,YAAY,CAAC;AAGpB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC9G,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGtG,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGpF,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGjF,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGvH,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
package/index.js CHANGED
@@ -1,33 +1,45 @@
1
- import { jsx as T } from "react/jsx-runtime";
2
- import { DataGridElement as _ } from "@toolbox-web/grid";
3
- import { useRef as k, useCallback as D, createContext as j, useContext as F, forwardRef as $, useMemo as J, useEffect as v, useImperativeHandle as K, useState as N } from "react";
4
- import { flushSync as R } from "react-dom";
1
+ import { jsx as x } from "react/jsx-runtime";
2
+ import { DataGridElement as J } from "@toolbox-web/grid";
3
+ import { useRef as S, useCallback as E, useEffect as w, createContext as K, useContext as z, forwardRef as Q, useMemo as U, useImperativeHandle as X, useState as O } from "react";
4
+ import { flushSync as v } from "react-dom";
5
5
  import { createRoot as b } from "react-dom/client";
6
- const H = /* @__PURE__ */ new WeakMap(), q = /* @__PURE__ */ new Map();
7
- function z(n) {
6
+ const L = /* @__PURE__ */ new WeakMap(), N = /* @__PURE__ */ new Map();
7
+ function j(n) {
8
8
  const t = n.querySelector("tbw-grid-detail");
9
9
  if (t) {
10
- const r = H.get(t);
10
+ const r = L.get(t);
11
11
  if (r) return r;
12
12
  }
13
13
  const e = n.id || n.getAttribute("data-grid-id");
14
14
  if (e)
15
- return q.get(e);
15
+ return N.get(e);
16
16
  }
17
- function le(n) {
18
- const { children: t, showExpandColumn: e = !0, animation: r = "slide" } = n, i = k(null), s = D(
17
+ function me(n) {
18
+ const { children: t, showExpandColumn: e = !0, animation: r = "slide" } = n, i = S(null), s = E(
19
19
  (c) => {
20
20
  if (i.current = c, !c) return;
21
- H.set(c, t);
22
- const u = c.closest("tbw-grid");
23
- if (u) {
24
- const l = u.id || u.getAttribute("data-grid-id");
25
- l && q.set(l, t);
21
+ L.set(c, t);
22
+ const d = c.closest("tbw-grid");
23
+ if (d) {
24
+ const u = d.id || d.getAttribute("data-grid-id");
25
+ u && N.set(u, t);
26
26
  }
27
27
  },
28
28
  [t]
29
29
  );
30
- return /* @__PURE__ */ T(
30
+ return w(() => () => {
31
+ const c = i.current;
32
+ if (c) {
33
+ L.delete(c);
34
+ const d = c.closest("tbw-grid");
35
+ if (d) {
36
+ const h = d.id || d.getAttribute("data-grid-id");
37
+ h && N.delete(h);
38
+ }
39
+ const u = c.parentNode;
40
+ u && u.contains(c);
41
+ }
42
+ }, []), /* @__PURE__ */ x(
31
43
  "tbw-grid-detail",
32
44
  {
33
45
  ref: s,
@@ -36,74 +48,115 @@ function le(n) {
36
48
  }
37
49
  );
38
50
  }
39
- const L = j(null), fe = ({ defaults: n, children: t }) => /* @__PURE__ */ T(L.Provider, { value: n, children: t });
40
- function ge() {
41
- return F(L);
51
+ const F = /* @__PURE__ */ new WeakMap(), H = /* @__PURE__ */ new Map();
52
+ function $(n) {
53
+ const t = n.querySelector("tbw-grid-responsive-card");
54
+ if (t) {
55
+ const r = F.get(t);
56
+ if (r) return r;
57
+ }
58
+ const e = n.id || n.getAttribute("data-grid-id");
59
+ if (e)
60
+ return H.get(e);
42
61
  }
43
- function me(n) {
44
- return F(L)?.[n];
62
+ function ye(n) {
63
+ const { children: t, cardRowHeight: e = "auto" } = n, r = S(null), i = E(
64
+ (o) => {
65
+ if (r.current = o, !o) return;
66
+ F.set(o, t);
67
+ const c = o.closest("tbw-grid");
68
+ if (c) {
69
+ const d = c.id || c.getAttribute("data-grid-id");
70
+ d && H.set(d, t);
71
+ }
72
+ },
73
+ [t]
74
+ );
75
+ w(() => () => {
76
+ const o = r.current;
77
+ if (o) {
78
+ F.delete(o);
79
+ const c = o.closest("tbw-grid");
80
+ if (c) {
81
+ const d = c.id || c.getAttribute("data-grid-id");
82
+ d && H.delete(d);
83
+ }
84
+ }
85
+ }, []);
86
+ const s = e === "auto" ? "auto" : String(e);
87
+ return /* @__PURE__ */ x("tbw-grid-responsive-card", { ref: i, cardRowHeight: s });
88
+ }
89
+ const T = K(null), he = ({ defaults: n, children: t }) => /* @__PURE__ */ x(T.Provider, { value: n, children: t });
90
+ function we() {
91
+ return z(T);
92
+ }
93
+ function Re(n) {
94
+ return z(T)?.[n];
45
95
  }
46
- const Q = L;
47
- function U(n) {
96
+ const Y = T;
97
+ function Z(n) {
48
98
  const t = /* @__PURE__ */ new WeakMap();
49
99
  return (e) => {
50
100
  const r = e.cellEl;
51
101
  if (r) {
52
102
  const o = t.get(r);
53
103
  if (o)
54
- return R(() => {
104
+ return v(() => {
55
105
  o.root.render(n(e));
56
106
  }), o.container;
57
107
  }
58
108
  const i = document.createElement("div");
59
109
  i.className = "react-cell-renderer", i.style.display = "contents";
60
110
  const s = b(i);
61
- return R(() => {
111
+ return v(() => {
62
112
  s.render(n(e));
63
113
  }), r && t.set(r, { root: s, container: i }), i;
64
114
  };
65
115
  }
66
- function X(n) {
116
+ function ee(n) {
67
117
  return (t) => {
68
118
  const e = document.createElement("div");
69
119
  e.className = "react-cell-editor", e.style.display = "contents";
70
120
  const r = b(e);
71
- return R(() => {
121
+ return v(() => {
72
122
  r.render(n(t));
73
123
  }), e;
74
124
  };
75
125
  }
76
- function Y(n) {
126
+ function te(n) {
77
127
  if (!n) return;
78
128
  if (!n.columns) return n;
79
129
  const t = n.columns.map((e) => {
80
130
  const { renderer: r, editor: i, ...s } = e, o = { ...s };
81
- return r && (o.renderer = U(r)), i && (o.editor = X(i)), o;
131
+ return r && (o.renderer = Z(r)), i && (o.editor = ee(i)), o;
82
132
  });
83
133
  return {
84
134
  ...n,
85
135
  columns: t
86
136
  };
87
137
  }
88
- const B = /* @__PURE__ */ new WeakMap(), O = /* @__PURE__ */ new Map();
89
- function Z(n) {
90
- const t = B.get(n);
138
+ const W = /* @__PURE__ */ new WeakMap(), q = /* @__PURE__ */ new Map();
139
+ function re(n) {
140
+ const t = W.get(n);
91
141
  if (t) return t;
92
142
  const e = n.id;
93
143
  if (e)
94
- return O.get(e);
144
+ return q.get(e);
95
145
  }
96
- function pe(n) {
97
- const { id: t, title: e, icon: r, tooltip: i, order: s = 100, children: o } = n, c = k(null), u = D(
98
- (l) => {
99
- c.current = l, l && (B.set(l, o), t && O.set(t, o));
146
+ function ve(n) {
147
+ const { id: t, title: e, icon: r, tooltip: i, order: s = 100, children: o } = n, c = S(null), d = E(
148
+ (u) => {
149
+ c.current = u, u && (W.set(u, o), t && q.set(t, o));
100
150
  },
101
151
  [o, t]
102
152
  );
103
- return /* @__PURE__ */ T(
153
+ return w(() => () => {
154
+ const u = c.current;
155
+ u && (W.delete(u), t && q.delete(t));
156
+ }, [t]), /* @__PURE__ */ x(
104
157
  "tbw-grid-tool-panel",
105
158
  {
106
- ref: u,
159
+ ref: d,
107
160
  id: t,
108
161
  title: e,
109
162
  icon: r,
@@ -112,41 +165,41 @@ function pe(n) {
112
165
  }
113
166
  );
114
167
  }
115
- const A = /* @__PURE__ */ new WeakMap(), G = /* @__PURE__ */ new Map();
116
- function ee(n, t) {
117
- const e = n.getAttribute("field"), r = A.get(n) ?? {};
118
- if (r.renderer = t, A.set(n, r), e) {
119
- const i = G.get(e) ?? {};
120
- i.renderer = t, G.set(e, i);
168
+ const G = /* @__PURE__ */ new WeakMap(), k = /* @__PURE__ */ new Map();
169
+ function ne(n, t) {
170
+ const e = n.getAttribute("field"), r = G.get(n) ?? {};
171
+ if (r.renderer = t, G.set(n, r), e) {
172
+ const i = k.get(e) ?? {};
173
+ i.renderer = t, k.set(e, i);
121
174
  }
122
175
  }
123
- function te(n, t) {
124
- const e = n.getAttribute("field"), r = A.get(n) ?? {};
125
- if (r.editor = t, A.set(n, r), e) {
126
- const i = G.get(e) ?? {};
127
- i.editor = t, G.set(e, i);
176
+ function ie(n, t) {
177
+ const e = n.getAttribute("field"), r = G.get(n) ?? {};
178
+ if (r.editor = t, G.set(n, r), e) {
179
+ const i = k.get(e) ?? {};
180
+ i.editor = t, k.set(e, i);
128
181
  }
129
182
  }
130
- function re(n) {
131
- let t = A.get(n)?.renderer;
183
+ function oe(n) {
184
+ let t = G.get(n)?.renderer;
132
185
  if (!t) {
133
186
  const e = n.getAttribute("field");
134
- e && (t = G.get(e)?.renderer);
187
+ e && (t = k.get(e)?.renderer);
135
188
  }
136
189
  return t;
137
190
  }
138
- function ne(n) {
139
- let t = A.get(n)?.editor;
191
+ function se(n) {
192
+ let t = G.get(n)?.editor;
140
193
  if (!t) {
141
194
  const e = n.getAttribute("field");
142
- e && (t = G.get(e)?.editor);
195
+ e && (t = k.get(e)?.editor);
143
196
  }
144
197
  return t;
145
198
  }
146
- function ye() {
147
- return Array.from(G.keys());
199
+ function Ce() {
200
+ return Array.from(k.keys());
148
201
  }
149
- class ie {
202
+ class ce {
150
203
  mountedViews = [];
151
204
  typeDefaults = null;
152
205
  /**
@@ -164,10 +217,10 @@ class ie {
164
217
  */
165
218
  canHandle(t) {
166
219
  const e = t.getAttribute("field");
167
- let r = A.get(t);
220
+ let r = G.get(t);
168
221
  if (!r && e) {
169
- const o = G.get(e);
170
- o && (o.renderer || o.editor) && (r = o, A.set(t, r));
222
+ const o = k.get(e);
223
+ o && (o.renderer || o.editor) && (r = o, G.set(t, r));
171
224
  }
172
225
  const i = r?.renderer !== void 0, s = r?.editor !== void 0;
173
226
  return r !== void 0 && (i || s);
@@ -184,29 +237,29 @@ class ie {
184
237
  * allowing the grid to use its default rendering.
185
238
  */
186
239
  createRenderer(t) {
187
- const e = re(t);
240
+ const e = oe(t);
188
241
  if (!e)
189
242
  return;
190
243
  const r = /* @__PURE__ */ new WeakMap();
191
244
  return (i) => {
192
245
  const s = i.cellEl;
193
246
  if (s) {
194
- const u = r.get(s);
195
- if (u)
196
- return R(() => {
197
- u.root.render(e(i));
198
- }), u.container;
199
- const l = document.createElement("div");
200
- l.className = "react-cell-renderer", l.style.display = "contents";
201
- const w = b(l);
202
- return R(() => {
203
- w.render(e(i));
204
- }), r.set(s, { root: w, container: l, lastRowIndex: i.rowIndex ?? -1 }), this.mountedViews.push({ root: w, container: l }), l;
247
+ const d = r.get(s);
248
+ if (d)
249
+ return v(() => {
250
+ d.root.render(e(i));
251
+ }), d.container;
252
+ const u = document.createElement("div");
253
+ u.className = "react-cell-renderer", u.style.display = "contents";
254
+ const h = b(u);
255
+ return v(() => {
256
+ h.render(e(i));
257
+ }), r.set(s, { root: h, container: u, lastRowIndex: i.rowIndex ?? -1 }), this.mountedViews.push({ root: h, container: u }), u;
205
258
  }
206
259
  const o = document.createElement("div");
207
260
  o.className = "react-cell-renderer", o.style.display = "contents";
208
261
  const c = b(o);
209
- return R(() => {
262
+ return v(() => {
210
263
  c.render(e(i));
211
264
  }), this.mountedViews.push({ root: c, container: o }), o;
212
265
  };
@@ -216,12 +269,12 @@ class ie {
216
269
  * with commit/cancel callbacks passed as props.
217
270
  */
218
271
  createEditor(t) {
219
- const e = ne(t);
272
+ const e = se(t);
220
273
  return e ? (r) => {
221
274
  const i = document.createElement("div");
222
275
  i.className = "react-cell-editor", i.style.display = "contents";
223
276
  const s = b(i);
224
- return R(() => {
277
+ return v(() => {
225
278
  s.render(e(r));
226
279
  }), this.mountedViews.push({ root: s, container: i }), i;
227
280
  } : () => document.createElement("div");
@@ -231,13 +284,13 @@ class ie {
231
284
  * Renders React components for expandable detail rows.
232
285
  */
233
286
  createDetailRenderer(t) {
234
- const e = z(t);
287
+ const e = j(t);
235
288
  if (e)
236
289
  return (r, i) => {
237
290
  const s = document.createElement("div");
238
291
  s.className = "react-detail-panel";
239
292
  const o = { row: r, rowIndex: i }, c = b(s);
240
- return R(() => {
293
+ return v(() => {
241
294
  c.render(e(o));
242
295
  }), this.mountedViews.push({ root: c, container: s }), s;
243
296
  };
@@ -251,12 +304,28 @@ class ie {
251
304
  if (e)
252
305
  return this.createDetailRenderer(e);
253
306
  }
307
+ /**
308
+ * Creates a responsive card renderer function for ResponsivePlugin.
309
+ * Renders React components for card layout in responsive mode.
310
+ */
311
+ createResponsiveCardRenderer(t) {
312
+ const e = $(t);
313
+ if (e)
314
+ return (r, i) => {
315
+ const s = document.createElement("div");
316
+ s.className = "react-responsive-card";
317
+ const o = { row: r, index: i }, c = b(s);
318
+ return v(() => {
319
+ c.render(e(o));
320
+ }), this.mountedViews.push({ root: c, container: s }), s;
321
+ };
322
+ }
254
323
  /**
255
324
  * Creates a tool panel renderer from a light DOM element.
256
325
  * Renders React components into tool panel containers.
257
326
  */
258
327
  createToolPanelRenderer(t) {
259
- const e = Z(t);
328
+ const e = re(t);
260
329
  if (!e)
261
330
  return;
262
331
  const r = t.closest("tbw-grid");
@@ -264,14 +333,14 @@ class ie {
264
333
  const s = {
265
334
  grid: r ?? i
266
335
  }, o = b(i);
267
- return R(() => {
336
+ return v(() => {
268
337
  o.render(e(s));
269
338
  }), this.mountedViews.push({ root: o, container: i }), () => {
270
- const c = this.mountedViews.findIndex((u) => u.container === i);
339
+ const c = this.mountedViews.findIndex((d) => d.container === i);
271
340
  if (c !== -1) {
272
- const { root: u } = this.mountedViews[c];
341
+ const { root: d } = this.mountedViews[c];
273
342
  try {
274
- u.unmount();
343
+ d.unmount();
275
344
  } catch {
276
345
  }
277
346
  this.mountedViews.splice(c, 1);
@@ -323,7 +392,7 @@ class ie {
323
392
  const r = document.createElement("span");
324
393
  r.style.display = "contents";
325
394
  const i = b(r);
326
- return this.mountedViews.push({ root: i, container: r }), R(() => {
395
+ return this.mountedViews.push({ root: i, container: r }), v(() => {
327
396
  i.render(t(e));
328
397
  }), r;
329
398
  };
@@ -337,7 +406,7 @@ class ie {
337
406
  const r = document.createElement("span");
338
407
  r.style.display = "contents";
339
408
  const i = b(r);
340
- return this.mountedViews.push({ root: i, container: r }), R(() => {
409
+ return this.mountedViews.push({ root: i, container: r }), v(() => {
341
410
  i.render(t(e));
342
411
  }), r;
343
412
  };
@@ -369,116 +438,135 @@ class ie {
369
438
  }
370
439
  }
371
440
  }
372
- let W = !1, M = null;
373
- function P() {
374
- return W || (M = new ie(), _.registerAdapter(M), W = !0), M;
441
+ let _ = !1, M = null;
442
+ function B() {
443
+ return _ || (M = new ce(), J.registerAdapter(M), _ = !0), M;
375
444
  }
376
- P();
377
- function oe(n, t) {
445
+ B();
446
+ function de(n, t) {
378
447
  const e = n, r = e.getPluginByName?.("masterDetail");
379
448
  if (r && typeof r.refreshDetailRenderer == "function") {
380
449
  r.refreshDetailRenderer();
381
450
  return;
382
451
  }
383
452
  const i = n.querySelector("tbw-grid-detail");
384
- !i || !z(n) || import("@toolbox-web/grid/all").then(({ MasterDetailPlugin: o }) => {
453
+ !i || !j(n) || import("@toolbox-web/grid/all").then(({ MasterDetailPlugin: o }) => {
385
454
  const c = t.createDetailRenderer(n);
386
455
  if (!c) return;
387
- const u = i.getAttribute("animation");
388
- let l = "slide";
389
- u === "false" ? l = !1 : u === "fade" && (l = "fade");
390
- const w = i.getAttribute("showExpandColumn") !== "false", a = new o({
456
+ const d = i.getAttribute("animation");
457
+ let u = "slide";
458
+ d === "false" ? u = !1 : d === "fade" && (u = "fade");
459
+ const h = i.getAttribute("showExpandColumn") !== "false", l = new o({
391
460
  detailRenderer: c,
392
- showExpandColumn: w,
393
- animation: l
394
- }), m = e.gridConfig || {}, S = m.plugins || [];
461
+ showExpandColumn: h,
462
+ animation: u
463
+ }), p = e.gridConfig || {}, D = p.plugins || [];
395
464
  e.gridConfig = {
396
- ...m,
397
- plugins: [...S, a]
465
+ ...p,
466
+ plugins: [...D, l]
398
467
  };
399
468
  }).catch(() => {
400
469
  });
401
470
  }
402
- const he = $(function(t, e) {
471
+ function ae(n, t) {
472
+ const e = n;
473
+ if (!n.querySelector("tbw-grid-responsive-card") || !$(n)) return;
474
+ const s = e.getPluginByName?.("responsive");
475
+ if (s && typeof s.setCardRenderer == "function") {
476
+ const o = t.createResponsiveCardRenderer(n);
477
+ o && s.setCardRenderer(o);
478
+ return;
479
+ }
480
+ console.warn(
481
+ `[tbw-grid-react] <GridResponsiveCard> found but ResponsivePlugin is not configured.
482
+ Add ResponsivePlugin to your gridConfig.plugins array:
483
+
484
+ import { ResponsivePlugin } from "@toolbox-web/grid/all";
485
+ const config = {
486
+ plugins: [new ResponsivePlugin({ breakpoint: 500 })],
487
+ };`
488
+ );
489
+ }
490
+ const be = Q(function(t, e) {
403
491
  const {
404
492
  rows: r,
405
493
  gridConfig: i,
406
494
  columns: s,
407
495
  fitMode: o,
408
496
  editOn: c,
409
- customStyles: u,
410
- className: l,
411
- style: w,
412
- children: a,
413
- onRowsChange: m,
414
- onCellEdit: S,
415
- onRowClick: E,
416
- onColumnStateChange: x,
497
+ customStyles: d,
498
+ className: u,
499
+ style: h,
500
+ children: l,
501
+ onRowsChange: p,
502
+ onCellEdit: D,
503
+ onRowClick: A,
504
+ onColumnStateChange: P,
417
505
  onSortChange: I
418
- } = t, f = k(null), V = k(null), y = F(Q), C = J(() => Y(i), [i]);
419
- return v(() => {
420
- P().setTypeDefaults(y);
421
- }, [y]), v(() => {
506
+ } = t, f = S(null), V = S(null), y = z(Y), C = U(() => te(i), [i]);
507
+ return w(() => {
508
+ B().setTypeDefaults(y);
509
+ }, [y]), w(() => {
422
510
  f.current && (f.current.rows = r);
423
- }, [r]), v(() => {
511
+ }, [r]), w(() => {
424
512
  f.current && C && (f.current.gridConfig = C);
425
- }, [C]), v(() => {
513
+ }, [C]), w(() => {
426
514
  f.current && s && (f.current.columns = s);
427
- }, [s]), v(() => {
515
+ }, [s]), w(() => {
428
516
  f.current && o !== void 0 && (f.current.fitMode = o);
429
- }, [o]), v(() => {
517
+ }, [o]), w(() => {
430
518
  f.current && c !== void 0 && (f.current.editOn = c);
431
- }, [c]), v(() => {
432
- const d = f.current;
433
- if (!d) return;
434
- const p = P();
435
- d.__frameworkAdapter = p, oe(d, p);
519
+ }, [c]), w(() => {
520
+ const a = f.current;
521
+ if (!a) return;
522
+ const m = B();
523
+ a.__frameworkAdapter = m, de(a, m), ae(a, m);
436
524
  let g = !1;
437
- const h = requestAnimationFrame(() => {
438
- g || (typeof d.refreshColumns == "function" && d.refreshColumns(), typeof d.refreshShellHeader == "function" && d.refreshShellHeader());
525
+ const R = requestAnimationFrame(() => {
526
+ g || (typeof a.refreshColumns == "function" && a.refreshColumns(), typeof a.refreshShellHeader == "function" && a.refreshShellHeader());
439
527
  });
440
528
  return () => {
441
- g = !0, cancelAnimationFrame(h);
529
+ g = !0, cancelAnimationFrame(R);
442
530
  };
443
- }, []), v(() => {
444
- if (!f.current || !u) return;
445
- const d = f.current, p = "react-custom-styles";
531
+ }, []), w(() => {
532
+ if (!f.current || !d) return;
533
+ const a = f.current, m = "react-custom-styles";
446
534
  let g = !0;
447
- return d.ready?.().then(() => {
448
- g && u && (d.registerStyles?.(p, u), V.current = p);
535
+ return a.ready?.().then(() => {
536
+ g && d && (a.registerStyles?.(m, d), V.current = m);
449
537
  }), () => {
450
- g = !1, V.current && (d.unregisterStyles?.(V.current), V.current = null);
538
+ g = !1, V.current && (a.unregisterStyles?.(V.current), V.current = null);
451
539
  };
452
- }, [u]), v(() => {
453
- const d = f.current;
454
- if (!d) return;
455
- const p = [];
456
- if (m) {
457
- const g = ((h) => m(h.detail.rows));
458
- d.addEventListener("rows-change", g), p.push(["rows-change", g]);
540
+ }, [d]), w(() => {
541
+ const a = f.current;
542
+ if (!a) return;
543
+ const m = [];
544
+ if (p) {
545
+ const g = ((R) => p(R.detail.rows));
546
+ a.addEventListener("rows-change", g), m.push(["rows-change", g]);
459
547
  }
460
- if (S) {
461
- const g = ((h) => S(h));
462
- d.addEventListener("cell-edit", g), p.push(["cell-edit", g]);
548
+ if (D) {
549
+ const g = ((R) => D(R));
550
+ a.addEventListener("cell-edit", g), m.push(["cell-edit", g]);
463
551
  }
464
- if (E) {
465
- const g = ((h) => E(h));
466
- d.addEventListener("row-click", g), p.push(["row-click", g]);
552
+ if (A) {
553
+ const g = ((R) => A(R));
554
+ a.addEventListener("row-click", g), m.push(["row-click", g]);
467
555
  }
468
- if (x) {
469
- const g = ((h) => x(h));
470
- d.addEventListener("column-state-change", g), p.push(["column-state-change", g]);
556
+ if (P) {
557
+ const g = ((R) => P(R));
558
+ a.addEventListener("column-state-change", g), m.push(["column-state-change", g]);
471
559
  }
472
560
  if (I) {
473
- const g = ((h) => I(h));
474
- d.addEventListener("sort-change", g), p.push(["sort-change", g]);
561
+ const g = ((R) => I(R));
562
+ a.addEventListener("sort-change", g), m.push(["sort-change", g]);
475
563
  }
476
564
  return () => {
477
- p.forEach(([g, h]) => {
478
- d.removeEventListener(g, h);
565
+ m.forEach(([g, R]) => {
566
+ a.removeEventListener(g, R);
479
567
  });
480
568
  };
481
- }, [m, S, E, x, I]), K(
569
+ }, [p, D, A, P, I]), X(
482
570
  e,
483
571
  () => ({
484
572
  get element() {
@@ -493,33 +581,33 @@ const he = $(function(t, e) {
493
581
  async forceLayout() {
494
582
  return f.current?.forceLayout?.();
495
583
  },
496
- async toggleGroup(d) {
497
- return f.current?.toggleGroup?.(d);
584
+ async toggleGroup(a) {
585
+ return f.current?.toggleGroup?.(a);
498
586
  },
499
- registerStyles(d, p) {
500
- f.current?.registerStyles?.(d, p);
587
+ registerStyles(a, m) {
588
+ f.current?.registerStyles?.(a, m);
501
589
  },
502
- unregisterStyles(d) {
503
- f.current?.unregisterStyles?.(d);
590
+ unregisterStyles(a) {
591
+ f.current?.unregisterStyles?.(a);
504
592
  }
505
593
  }),
506
594
  []
507
- ), /* @__PURE__ */ T(
595
+ ), /* @__PURE__ */ x(
508
596
  "tbw-grid",
509
597
  {
510
- ref: (d) => {
511
- if (f.current = d, d) {
512
- const p = d;
513
- C && (p.gridConfig = C), r && (p.rows = r), s && (p.columns = s);
598
+ ref: (a) => {
599
+ if (f.current = a, a) {
600
+ const m = a;
601
+ C && (m.gridConfig = C), r && (m.rows = r), s && (m.columns = s);
514
602
  }
515
603
  },
516
- class: l,
517
- style: w,
518
- children: a
604
+ class: u,
605
+ style: h,
606
+ children: l
519
607
  }
520
608
  );
521
609
  });
522
- function we(n) {
610
+ function Ee(n) {
523
611
  const {
524
612
  field: t,
525
613
  header: e,
@@ -528,82 +616,83 @@ function we(n) {
528
616
  sortable: s,
529
617
  resizable: o,
530
618
  width: c,
531
- minWidth: u,
532
- hidden: l,
533
- lockVisible: w,
534
- children: a,
535
- editor: m,
536
- options: S,
537
- multi: E,
538
- format: x
539
- } = n, I = k(null), f = D(
619
+ minWidth: d,
620
+ hidden: u,
621
+ lockVisible: h,
622
+ children: l,
623
+ editor: p,
624
+ options: D,
625
+ multi: A,
626
+ format: P
627
+ } = n, I = S(null), f = E(
540
628
  (C) => {
541
- I.current = C, C && (a && ee(C, a), m && te(C, m));
629
+ I.current = C, C && (l && ne(C, l), p && ie(C, p));
542
630
  },
543
- [a, m, t]
631
+ [l, p, t]
544
632
  ), V = typeof c == "number" ? `${c}px` : c, y = {
545
633
  field: t,
546
634
  ref: f
547
635
  };
548
- return e !== void 0 && (y.header = e), r !== void 0 && (y.type = r), i !== void 0 && (y.editable = i), s !== void 0 && (y.sortable = s), o !== void 0 && (y.resizable = o), V !== void 0 && (y.width = V), u !== void 0 && (y["min-width"] = u), l !== void 0 && (y.hidden = l), w !== void 0 && (y["lock-visible"] = w), E !== void 0 && (y.multi = E), x && (y["data-has-format"] = "true"), S && (y["data-has-options"] = "true"), /* @__PURE__ */ T("tbw-grid-column", { ...y });
636
+ return e !== void 0 && (y.header = e), r !== void 0 && (y.type = r), i !== void 0 && (y.editable = i), s !== void 0 && (y.sortable = s), o !== void 0 && (y.resizable = o), V !== void 0 && (y.width = V), d !== void 0 && (y["min-width"] = d), u !== void 0 && (y.hidden = u), h !== void 0 && (y["lock-visible"] = h), A !== void 0 && (y.multi = A), P && (y["data-has-format"] = "true"), D && (y["data-has-options"] = "true"), /* @__PURE__ */ x("tbw-grid-column", { ...y });
549
637
  }
550
- function ve({ children: n }) {
551
- return /* @__PURE__ */ T("tbw-grid-tool-buttons", { children: n });
638
+ function Ae({ children: n }) {
639
+ return /* @__PURE__ */ x("tbw-grid-tool-buttons", { children: n });
552
640
  }
553
- function Re() {
554
- const n = k(null), [t, e] = N(!1), [r, i] = N(null);
555
- v(() => {
556
- const a = n.current;
557
- if (!a) return;
558
- let m = !0;
641
+ function De() {
642
+ const n = S(null), [t, e] = O(!1), [r, i] = O(null);
643
+ w(() => {
644
+ const l = n.current;
645
+ if (!l) return;
646
+ let p = !0;
559
647
  return (async () => {
560
648
  try {
561
- if (await a.ready?.(), m) {
649
+ if (await l.ready?.(), p) {
562
650
  e(!0);
563
- const E = await a.getConfig?.();
564
- m && E && i(E);
651
+ const A = await l.getConfig?.();
652
+ p && A && i(A);
565
653
  }
566
654
  } catch {
567
655
  }
568
656
  })(), () => {
569
- m = !1;
657
+ p = !1;
570
658
  };
571
659
  }, []);
572
- const s = D(async () => {
573
- const a = n.current;
574
- return a ? await a.getConfig?.() ?? null : null;
575
- }, []), o = D(async () => {
576
- const a = n.current;
577
- a && await a.forceLayout?.();
578
- }, []), c = D(async (a) => {
579
- const m = n.current;
580
- m && await m.toggleGroup?.(a);
581
- }, []), u = D((a, m) => {
582
- n.current?.registerStyles?.(a, m);
583
- }, []), l = D((a) => {
584
- n.current?.unregisterStyles?.(a);
585
- }, []), w = D(() => r?.columns ? r.columns.filter((a) => !a.hidden) : [], [r]);
660
+ const s = E(async () => {
661
+ const l = n.current;
662
+ return l ? await l.getConfig?.() ?? null : null;
663
+ }, []), o = E(async () => {
664
+ const l = n.current;
665
+ l && await l.forceLayout?.();
666
+ }, []), c = E(async (l) => {
667
+ const p = n.current;
668
+ p && await p.toggleGroup?.(l);
669
+ }, []), d = E((l, p) => {
670
+ n.current?.registerStyles?.(l, p);
671
+ }, []), u = E((l) => {
672
+ n.current?.unregisterStyles?.(l);
673
+ }, []), h = E(() => r?.columns ? r.columns.filter((l) => !l.hidden) : [], [r]);
586
674
  return {
587
675
  ref: n,
676
+ element: n.current?.element ?? null,
588
677
  isReady: t,
589
678
  config: r,
590
679
  getConfig: s,
591
680
  forceLayout: o,
592
681
  toggleGroup: c,
593
- registerStyles: u,
594
- unregisterStyles: l,
595
- getVisibleColumns: w
682
+ registerStyles: d,
683
+ unregisterStyles: u,
684
+ getVisibleColumns: h
596
685
  };
597
686
  }
598
- function Ce(n, t, e, r = []) {
599
- const i = k(e);
600
- v(() => {
687
+ function Se(n, t, e, r = []) {
688
+ const i = S(e);
689
+ w(() => {
601
690
  i.current = e;
602
- }, [e, ...r]), v(() => {
691
+ }, [e, ...r]), w(() => {
603
692
  const s = n.current, o = s && "element" in s ? s.element : s;
604
693
  if (!o) return;
605
- const c = ((u) => {
606
- i.current(u);
694
+ const c = ((d) => {
695
+ i.current(d);
607
696
  });
608
697
  return o.addEventListener(t, c), () => {
609
698
  o.removeEventListener(t, c);
@@ -611,16 +700,17 @@ function Ce(n, t, e, r = []) {
611
700
  }, [n, t]);
612
701
  }
613
702
  export {
614
- he as DataGrid,
615
- we as GridColumn,
616
- le as GridDetailPanel,
617
- ve as GridToolButtons,
618
- pe as GridToolPanel,
619
- fe as GridTypeProvider,
620
- ie as ReactGridAdapter,
621
- ye as getRegisteredFields,
622
- Re as useGrid,
623
- Ce as useGridEvent,
624
- ge as useGridTypeDefaults,
625
- me as useTypeDefault
703
+ be as DataGrid,
704
+ Ee as GridColumn,
705
+ me as GridDetailPanel,
706
+ ye as GridResponsiveCard,
707
+ Ae as GridToolButtons,
708
+ ve as GridToolPanel,
709
+ he as GridTypeProvider,
710
+ ce as ReactGridAdapter,
711
+ Ce as getRegisteredFields,
712
+ De as useGrid,
713
+ Se as useGridEvent,
714
+ we as useGridTypeDefaults,
715
+ Re as useTypeDefault
626
716
  };
@@ -65,8 +65,8 @@ export interface DataGridProps<TRow = unknown> {
65
65
  * Ref handle for the DataGrid component.
66
66
  */
67
67
  export interface DataGridRef<TRow = unknown> {
68
- /** The underlying grid DOM element */
69
- element: DataGridElement | null;
68
+ /** The underlying grid DOM element with proper typing */
69
+ element: DataGridElement<TRow> | null;
70
70
  /** Get the effective configuration */
71
71
  getConfig: () => Promise<Readonly<GridConfig<TRow>>>;
72
72
  /** Wait for the grid to be ready */
@@ -1 +1 @@
1
- {"version":3,"file":"data-grid.d.ts","sourceRoot":"","sources":["../../../../libs/grid-react/src/lib/data-grid.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-grid.d.ts","sourceRoot":"","sources":["../../../../libs/grid-react/src/lib/data-grid.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"grid-detail-panel.d.ts","sourceRoot":"","sources":["../../../../libs/grid-react/src/lib/grid-detail-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,IAAI,GAAG,OAAO;IAChD,yCAAyC;IACzC,GAAG,EAAE,IAAI,CAAC;IACV,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAUD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,WAAW,GACvB,CAAC,CAAC,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,GAAG,SAAS,CAe/D;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,IAAI,GAAG,OAAO;IAClD;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;IAEvD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,eAAe,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,YAAY,CAqC/F"}
1
+ {"version":3,"file":"grid-detail-panel.d.ts","sourceRoot":"","sources":["../../../../libs/grid-react/src/lib/grid-detail-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAkC,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,IAAI,GAAG,OAAO;IAChD,yCAAyC;IACzC,GAAG,EAAE,IAAI,CAAC;IACV,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAUD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,WAAW,GACvB,CAAC,CAAC,GAAG,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,GAAG,SAAS,CAe/D;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,IAAI,GAAG,OAAO;IAClD;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;IAEvD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,eAAe,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAAG,YAAY,CAqE/F"}
@@ -0,0 +1,88 @@
1
+ import { ReactNode, ReactElement } from 'react';
2
+ /**
3
+ * Context object passed to the responsive card render function.
4
+ */
5
+ export interface ResponsiveCardContext<TRow = unknown> {
6
+ /** The row data for this card */
7
+ row: TRow;
8
+ /** The row index (zero-based) */
9
+ index: number;
10
+ }
11
+ /**
12
+ * Get the responsive card renderer for a grid element.
13
+ * @internal
14
+ */
15
+ export declare function getResponsiveCardRenderer(gridElement: HTMLElement): ((ctx: ResponsiveCardContext<unknown>) => ReactNode) | undefined;
16
+ /**
17
+ * Props for the GridResponsiveCard component.
18
+ */
19
+ export interface GridResponsiveCardProps<TRow = unknown> {
20
+ /**
21
+ * Render function for the card content.
22
+ * Receives the row data and row index.
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * <GridResponsiveCard>
27
+ * {({ row, index }) => (
28
+ * <div className="custom-card">
29
+ * <img src={row.avatar} alt={row.name} />
30
+ * <span>{row.name}</span>
31
+ * </div>
32
+ * )}
33
+ * </GridResponsiveCard>
34
+ * ```
35
+ */
36
+ children: (ctx: ResponsiveCardContext<TRow>) => ReactNode;
37
+ /**
38
+ * Card row height in pixels.
39
+ * Use 'auto' for dynamic height based on content.
40
+ * @default 'auto'
41
+ */
42
+ cardRowHeight?: number | 'auto';
43
+ }
44
+ /**
45
+ * Component for defining custom card layouts in responsive mode.
46
+ *
47
+ * Renders a `<tbw-grid-responsive-card>` custom element in the light DOM that
48
+ * the ResponsivePlugin picks up to render custom cards in mobile/narrow layouts.
49
+ *
50
+ * ## Usage
51
+ *
52
+ * ```tsx
53
+ * import { DataGrid, GridResponsiveCard } from '@toolbox-web/grid-react';
54
+ * import { ResponsivePlugin } from '@toolbox-web/grid/all';
55
+ *
56
+ * function EmployeeGrid() {
57
+ * const config = {
58
+ * plugins: [new ResponsivePlugin({ breakpoint: 500 })],
59
+ * // ... other config
60
+ * };
61
+ *
62
+ * return (
63
+ * <DataGrid rows={employees} gridConfig={config}>
64
+ * <GridResponsiveCard cardRowHeight={80}>
65
+ * {({ row, index }) => (
66
+ * <div className="employee-card">
67
+ * <img src={row.avatar} alt="" />
68
+ * <div>
69
+ * <strong>{row.name}</strong>
70
+ * <span>{row.department}</span>
71
+ * </div>
72
+ * </div>
73
+ * )}
74
+ * </GridResponsiveCard>
75
+ * </DataGrid>
76
+ * );
77
+ * }
78
+ * ```
79
+ *
80
+ * ## How it works
81
+ *
82
+ * 1. This component renders a `<tbw-grid-responsive-card>` element in the grid's light DOM
83
+ * 2. The ReactGridAdapter detects this element and creates a card renderer
84
+ * 3. When the grid enters responsive mode, the plugin calls your render function for each row
85
+ * 4. The React component is rendered into the card container
86
+ */
87
+ export declare function GridResponsiveCard<TRow = unknown>(props: GridResponsiveCardProps<TRow>): ReactElement;
88
+ //# sourceMappingURL=grid-responsive-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-responsive-card.d.ts","sourceRoot":"","sources":["../../../../libs/grid-react/src/lib/grid-responsive-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAkC,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,IAAI,GAAG,OAAO;IACnD,iCAAiC;IACjC,GAAG,EAAE,IAAI,CAAC;IACV,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAUD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,WAAW,GACvB,CAAC,CAAC,GAAG,EAAE,qBAAqB,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,GAAG,SAAS,CAelE;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,IAAI,GAAG,OAAO;IACrD;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,qBAAqB,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;IAE1D;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,GAAG,OAAO,EAAE,KAAK,EAAE,uBAAuB,CAAC,IAAI,CAAC,GAAG,YAAY,CAmDrG"}
@@ -1 +1 @@
1
- {"version":3,"file":"grid-tool-panel.d.ts","sourceRoot":"","sources":["../../../../libs/grid-react/src/lib/grid-tool-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,IAAI,EAAE,WAAW,CAAC;CACnB;AAUD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,WAAW,GAAG,CAAC,CAAC,GAAG,EAAE,gBAAgB,KAAK,SAAS,CAAC,GAAG,SAAS,CAYlH;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,EAAE,CAO5E;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,SAAS,CAAC;CAChD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAiCrE"}
1
+ {"version":3,"file":"grid-tool-panel.d.ts","sourceRoot":"","sources":["../../../../libs/grid-react/src/lib/grid-tool-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAkC,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,IAAI,EAAE,WAAW,CAAC;CACnB;AAUD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,WAAW,GAAG,CAAC,CAAC,GAAG,EAAE,gBAAgB,KAAK,SAAS,CAAC,GAAG,SAAS,CAYlH;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,EAAE,CAO5E;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,SAAS,CAAC;CAChD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAiDrE"}
@@ -98,6 +98,11 @@ export declare class ReactGridAdapter implements FrameworkAdapter {
98
98
  * Parses the <tbw-grid-detail> element and returns a React-based renderer.
99
99
  */
100
100
  parseDetailElement<TRow = unknown>(detailElement: Element): ((row: TRow, rowIndex: number) => HTMLElement | string) | undefined;
101
+ /**
102
+ * Creates a responsive card renderer function for ResponsivePlugin.
103
+ * Renders React components for card layout in responsive mode.
104
+ */
105
+ createResponsiveCardRenderer<TRow = unknown>(gridElement: HTMLElement): ((row: TRow, rowIndex: number) => HTMLElement) | undefined;
101
106
  /**
102
107
  * Creates a tool panel renderer from a light DOM element.
103
108
  * Renders React components into tool panel containers.
@@ -127,7 +132,7 @@ export declare class ReactGridAdapter implements FrameworkAdapter {
127
132
  * // Any grid with type: 'country' columns will use these components
128
133
  * ```
129
134
  */
130
- getTypeDefault(type: string): TypeDefault | undefined;
135
+ getTypeDefault<TRow = unknown>(type: string): TypeDefault<TRow> | undefined;
131
136
  /**
132
137
  * Creates a renderer function from a React render function for type defaults.
133
138
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"react-grid-adapter.d.ts","sourceRoot":"","sources":["../../../../libs/grid-react/src/lib/react-grid-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAiB9E;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,CAAC,GAAG,EAAE,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,SAAS,GAChE,IAAI,CAaN;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,CAAC,GAAG,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,SAAS,GAChE,IAAI,CAYN;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,WAAW,GACnB,CAAC,CAAC,GAAG,EAAE,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,SAAS,CAAC,GAAG,SAAS,CAYvE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,GACnB,CAAC,CAAC,GAAG,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,SAAS,CAAC,GAAG,SAAS,CAYzE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAoBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,gBAAiB,YAAW,gBAAgB;IACvD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,YAAY,CAAgC;IAEpD;;;;;OAKG;IACH,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;IAIvD;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAoBxC;;;;;;;;;;OAUG;IACH,cAAc,CAAC,IAAI,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC;IA2DxG;;;OAGG;IACH,YAAY,CAAC,IAAI,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC;IA0BpG;;;OAGG;IACH,oBAAoB,CAAC,IAAI,GAAG,OAAO,EACjC,WAAW,EAAE,WAAW,GACvB,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,WAAW,CAAC,GAAG,SAAS;IAwB7D;;;OAGG;IACH,kBAAkB,CAAC,IAAI,GAAG,OAAO,EAC/B,aAAa,EAAE,OAAO,GACrB,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,WAAW,GAAG,MAAM,CAAC,GAAG,SAAS;IAOtE;;;OAGG;IACH,uBAAuB,CAAC,OAAO,EAAE,WAAW,GAAG,CAAC,CAAC,SAAS,EAAE,WAAW,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,SAAS;IAqC5G;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IA2BrD;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;;OAGG;IACH,OAAO,IAAI,IAAI;IAWf;;OAEG;IACH,OAAO,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;CAYtC"}
1
+ {"version":3,"file":"react-grid-adapter.d.ts","sourceRoot":"","sources":["../../../../libs/grid-react/src/lib/react-grid-adapter.ts"],"names":[],"mappings":"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"}
package/lib/use-grid.d.ts CHANGED
@@ -1,16 +1,13 @@
1
1
  import { ColumnConfig, DataGridElement, GridConfig } from '../../../../dist/libs/grid/index.d.ts';
2
- /**
3
- * Extended interface for DataGridElement with all methods we need.
4
- */
5
- interface ExtendedGridElement extends DataGridElement {
6
- toggleGroup?: (key: string) => Promise<void>;
7
- }
2
+ import { DataGridRef } from './data-grid';
8
3
  /**
9
4
  * Return type for useGrid hook.
10
5
  */
11
6
  export interface UseGridReturn<TRow = unknown> {
12
- /** Ref to attach to the DataGrid component */
13
- ref: React.RefObject<ExtendedGridElement | null>;
7
+ /** Ref to attach to the DataGrid component (returns DataGridRef handle) */
8
+ ref: React.RefObject<DataGridRef<TRow> | null>;
9
+ /** Direct access to the typed grid element (convenience for ref.current?.element) */
10
+ element: DataGridElement<TRow> | null;
14
11
  /** Whether the grid is ready */
15
12
  isReady: boolean;
16
13
  /** Current grid configuration */
@@ -59,5 +56,4 @@ export interface UseGridReturn<TRow = unknown> {
59
56
  * ```
60
57
  */
61
58
  export declare function useGrid<TRow = unknown>(): UseGridReturn<TRow>;
62
- export {};
63
59
  //# sourceMappingURL=use-grid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-grid.d.ts","sourceRoot":"","sources":["../../../../libs/grid-react/src/lib/use-grid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGnF;;GAEG;AACH,UAAU,mBAAoB,SAAQ,eAAe;IACnD,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,IAAI,GAAG,OAAO;IAC3C,8CAA8C;IAC9C,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACjD,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,sCAAsC;IACtC,SAAS,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAClD,mCAAmC;IACnC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,yBAAyB;IACzB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,6BAA6B;IAC7B,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,+BAA+B;IAC/B,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,kCAAkC;IAClC,iBAAiB,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,OAAO,CAAC,IAAI,GAAG,OAAO,KAAK,aAAa,CAAC,IAAI,CAAC,CA6E7D"}
1
+ {"version":3,"file":"use-grid.d.ts","sourceRoot":"","sources":["../../../../libs/grid-react/src/lib/use-grid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,IAAI,GAAG,OAAO;IAC3C,2EAA2E;IAC3E,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/C,qFAAqF;IACrF,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtC,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,sCAAsC;IACtC,SAAS,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAClD,mCAAmC;IACnC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,yBAAyB;IACzB,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,6BAA6B;IAC7B,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,+BAA+B;IAC/B,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,kCAAkC;IAClC,iBAAiB,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,OAAO,CAAC,IAAI,GAAG,OAAO,KAAK,aAAa,CAAC,IAAI,CAAC,CA8E7D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toolbox-web/grid-react",
3
- "version": "0.3.1",
3
+ "version": "0.5.0",
4
4
  "description": "React adapter for @toolbox-web/grid data grid component",
5
5
  "type": "module",
6
6
  "main": "./index.js",