@pibit.ai/cure-design-system 0.3.23 → 0.3.26

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.
Files changed (52) hide show
  1. package/dist/index.d.ts +2 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +157 -140
  4. package/dist/patterns/table/TableWrapper.d.ts.map +1 -1
  5. package/dist/patterns/table/TableWrapper.js +376 -369
  6. package/dist/patterns/table/index.d.ts +4 -1
  7. package/dist/patterns/table/index.d.ts.map +1 -1
  8. package/dist/patterns/table/integrateTableUndoRedo.d.ts +41 -0
  9. package/dist/patterns/table/integrateTableUndoRedo.d.ts.map +1 -0
  10. package/dist/patterns/table/integrateTableUndoRedo.js +63 -0
  11. package/dist/patterns/table/storyHelpers/useMockTableState.d.ts +3 -1
  12. package/dist/patterns/table/storyHelpers/useMockTableState.d.ts.map +1 -1
  13. package/dist/patterns/table/table.d.ts +2 -1
  14. package/dist/patterns/table/table.d.ts.map +1 -1
  15. package/dist/patterns/table/table.js +181 -155
  16. package/dist/patterns/table/tableUndoRedo.d.ts +38 -0
  17. package/dist/patterns/table/tableUndoRedo.d.ts.map +1 -0
  18. package/dist/patterns/table/tableUndoRedo.js +147 -0
  19. package/dist/patterns/table/toolbar/ColumnHeaderMenu.d.ts +4 -0
  20. package/dist/patterns/table/toolbar/ColumnHeaderMenu.d.ts.map +1 -1
  21. package/dist/patterns/table/toolbar/ColumnHeaderMenu.js +81 -77
  22. package/dist/patterns/table/toolbar/TableToolbar.d.ts +11 -2
  23. package/dist/patterns/table/toolbar/TableToolbar.d.ts.map +1 -1
  24. package/dist/patterns/table/toolbar/TableToolbar.js +163 -114
  25. package/dist/patterns/table/toolbar/index.d.ts +1 -1
  26. package/dist/patterns/table/toolbar/index.d.ts.map +1 -1
  27. package/dist/patterns/table/toolbar/useUndoRedoShortcuts.d.ts +9 -0
  28. package/dist/patterns/table/toolbar/useUndoRedoShortcuts.d.ts.map +1 -0
  29. package/dist/patterns/table/toolbar/useUndoRedoShortcuts.js +21 -0
  30. package/dist/patterns/table/types.d.ts +5 -1
  31. package/dist/patterns/table/types.d.ts.map +1 -1
  32. package/dist/patterns/table/useTableUndoRedo.d.ts +41 -0
  33. package/dist/patterns/table/useTableUndoRedo.d.ts.map +1 -0
  34. package/dist/patterns/table/useTableUndoRedo.js +168 -0
  35. package/dist/primitives/badge/badge.js +5 -5
  36. package/dist/primitives/input/input.d.ts +1 -1
  37. package/dist/primitives/input/input.d.ts.map +1 -1
  38. package/dist/primitives/input/input.js +63 -62
  39. package/dist/primitives/select/ExpandableSearchInput.d.ts +1 -1
  40. package/dist/primitives/select/ExpandableSearchInput.d.ts.map +1 -1
  41. package/dist/primitives/select/SearchInput.d.ts +2 -2
  42. package/dist/primitives/select/SearchInput.d.ts.map +1 -1
  43. package/dist/primitives/select/SearchInput.js +38 -37
  44. package/dist/primitives/select/combobox.d.ts.map +1 -1
  45. package/dist/primitives/select/combobox.js +48 -47
  46. package/dist/primitives/select/multi-select.d.ts.map +1 -1
  47. package/dist/primitives/select/multi-select.js +50 -49
  48. package/dist/styles/components.css +1 -1
  49. package/dist/utils/keyboard-shortcut.d.ts +4 -0
  50. package/dist/utils/keyboard-shortcut.d.ts.map +1 -0
  51. package/dist/utils/keyboard-shortcut.js +29 -0
  52. package/package.json +1 -1
@@ -1,37 +1,80 @@
1
1
  import { jsx as o, jsxs as p } from "react/jsx-runtime";
2
- import { useMemo as D, useRef as O, useState as R, useEffect as A, useLayoutEffect as L } from "react";
3
- import { FlipBackward as K, FlipForward as W, ChevronSelectorVertical as j, DotsHorizontal as k } from "@untitledui/icons";
4
- import { cx as I } from "../../../utils/cn.js";
5
- import { AlignDropdown as P } from "./AlignDropdown.js";
2
+ import { useMemo as D, isValidElement as L, cloneElement as M, useRef as A, useState as I, useEffect as K, useLayoutEffect as O } from "react";
3
+ import { FlipBackward as W, FlipForward as j, ChevronSelectorVertical as F, DotsHorizontal as P } from "@untitledui/icons";
4
+ import { cx as N } from "../../../utils/cn.js";
5
+ import { AlignDropdown as H } from "./AlignDropdown.js";
6
6
  import { GroupByDropdown as T } from "./GroupByDropdown.js";
7
- import { HideFieldsDropdown as F } from "./HideFieldsDropdown.js";
8
- import { RowHeightDropdown as G } from "./RowHeightDropdown.js";
9
- import { ShowSummaryDropdown as U } from "./ShowSummaryDropdown.js";
10
- import { resolveColumnLabel as _ } from "./tableToolbarHelpers.js";
11
- import { ExpandableSearchInput as B } from "../../../primitives/select/ExpandableSearchInput.js";
12
- import { Button as C } from "../../../primitives/button/button.js";
13
- import { Dropdown as w } from "../../../primitives/dropdown/dropdown.js";
14
- import { Icon as H } from "../../../primitives/icon/icon.js";
15
- const $ = () => /* @__PURE__ */ p("div", { className: "flex items-center gap-2", children: [
16
- /* @__PURE__ */ o(C, { size: "xs", color: "secondary", iconLeading: /* @__PURE__ */ o(K, { size: 16 }), "aria-label": "Undo", title: "Undo" }),
17
- /* @__PURE__ */ o(C, { size: "xs", color: "secondary", iconLeading: /* @__PURE__ */ o(W, { size: 16 }), "aria-label": "Redo", title: "Redo" })
18
- ] }), V = ({ config: e, content: a }) => {
19
- const l = e.sorts.some((i) => i.field !== "" && i.direction !== "");
7
+ import { HideFieldsDropdown as G } from "./HideFieldsDropdown.js";
8
+ import { RowHeightDropdown as _ } from "./RowHeightDropdown.js";
9
+ import { ShowSummaryDropdown as B } from "./ShowSummaryDropdown.js";
10
+ import { resolveColumnLabel as V } from "./tableToolbarHelpers.js";
11
+ import { useUndoRedoShortcuts as $ } from "./useUndoRedoShortcuts.js";
12
+ import { ExpandableSearchInput as q } from "../../../primitives/select/ExpandableSearchInput.js";
13
+ import { Button as y } from "../../../primitives/button/button.js";
14
+ import { Dropdown as x } from "../../../primitives/dropdown/dropdown.js";
15
+ import { Icon as E } from "../../../primitives/icon/icon.js";
16
+ function J(e, i) {
17
+ return L(e) ? M(e, {
18
+ onApply: i.onApply,
19
+ onClear: i.onClear,
20
+ clearAllSorts: i.onClear
21
+ }) : e;
22
+ }
23
+ function Q(e, i) {
24
+ return L(e) ? M(e, {
25
+ onApply: i.onApply,
26
+ onClearAll: i.onClearAll
27
+ }) : e;
28
+ }
29
+ const X = ({ config: e }) => ($({
30
+ enabled: e.shortcut ?? !0,
31
+ canUndo: e.canUndo,
32
+ canRedo: e.canRedo,
33
+ onUndo: e.onUndo,
34
+ onRedo: e.onRedo,
35
+ isDisabled: e.isDisabled
36
+ }), /* @__PURE__ */ p("div", { className: "flex items-center gap-2", children: [
37
+ /* @__PURE__ */ o(
38
+ y,
39
+ {
40
+ size: "xs",
41
+ color: "secondary",
42
+ iconLeading: /* @__PURE__ */ o(W, { size: 16 }),
43
+ "aria-label": "Undo",
44
+ title: "Undo",
45
+ isDisabled: e.isDisabled || !e.canUndo,
46
+ onClick: e.onUndo
47
+ }
48
+ ),
49
+ /* @__PURE__ */ o(
50
+ y,
51
+ {
52
+ size: "xs",
53
+ color: "secondary",
54
+ iconLeading: /* @__PURE__ */ o(j, { size: 16 }),
55
+ "aria-label": "Redo",
56
+ title: "Redo",
57
+ isDisabled: e.isDisabled || !e.canRedo,
58
+ onClick: e.onRedo
59
+ }
60
+ )
61
+ ] })), Y = ({ config: e, content: i }) => {
62
+ const l = e.sorts.some((r) => r.field !== "" && r.direction !== "");
20
63
  return /* @__PURE__ */ p(
21
- w.Root,
64
+ x.Root,
22
65
  {
23
66
  isOpen: e.isOpen,
24
- onOpenChange: (i) => {
25
- i && e.onSortsChange(e.sorts.map((d) => ({ ...d }))), e.onOpenChange(i);
67
+ onOpenChange: (r) => {
68
+ r && e.onSortsChange(e.sorts.map((t) => ({ ...t }))), e.onOpenChange(r);
26
69
  },
27
70
  children: [
28
71
  /* @__PURE__ */ p(
29
- C,
72
+ y,
30
73
  {
31
74
  size: "xs",
32
75
  color: "secondary",
33
- iconLeading: /* @__PURE__ */ o(j, { size: 12 }),
34
- className: I(
76
+ iconLeading: /* @__PURE__ */ o(F, { size: 12 }),
77
+ className: N(
35
78
  l && "ring-1 ring-brand-600 bg-brand-primary text-brand-600 hover:bg-brand-primary hover:text-brand-600"
36
79
  ),
37
80
  children: [
@@ -40,20 +83,20 @@ const $ = () => /* @__PURE__ */ p("div", { className: "flex items-center gap-2",
40
83
  ]
41
84
  }
42
85
  ),
43
- /* @__PURE__ */ o(w.Popover, { className: "w-auto min-w-[300px]", children: a })
86
+ /* @__PURE__ */ o(x.Popover, { className: "w-auto min-w-[300px]", children: i })
44
87
  ]
45
88
  }
46
89
  );
47
- }, q = ({ config: e, content: a }) => {
90
+ }, Z = ({ config: e, content: i }) => {
48
91
  const l = e.meaningfulConditionsCount > 0;
49
- return /* @__PURE__ */ p(w.Root, { isOpen: e.isOpen, onOpenChange: e.onOpenChange, children: [
92
+ return /* @__PURE__ */ p(x.Root, { isOpen: e.isOpen, onOpenChange: e.onOpenChange, children: [
50
93
  /* @__PURE__ */ p(
51
- C,
94
+ y,
52
95
  {
53
96
  size: "xs",
54
97
  color: "secondary",
55
- iconLeading: /* @__PURE__ */ o(H, { name: "FilterLines", size: 12 }),
56
- className: I(
98
+ iconLeading: /* @__PURE__ */ o(E, { name: "FilterLines", size: 12 }),
99
+ className: N(
57
100
  l && "ring-1 ring-brand-600 bg-brand-primary text-brand-600 hover:bg-brand-primary hover:text-brand-600"
58
101
  ),
59
102
  children: [
@@ -62,167 +105,173 @@ const $ = () => /* @__PURE__ */ p("div", { className: "flex items-center gap-2",
62
105
  ]
63
106
  }
64
107
  ),
65
- /* @__PURE__ */ o(w.Popover, { className: "w-auto min-w-[300px]", children: a })
108
+ /* @__PURE__ */ o(x.Popover, { className: "w-auto min-w-[300px]", children: i })
66
109
  ] });
67
- }, ce = ({
110
+ }, be = ({
68
111
  className: e,
69
- fallbackTitle: a,
70
- showUndoRedo: l = !1,
71
- sort: i,
72
- filter: d,
73
- search: f,
74
- rowHeight: b,
75
- hideFields: u,
112
+ fallbackTitle: i,
113
+ undoRedo: l,
114
+ sort: r,
115
+ filter: t,
116
+ search: u,
117
+ rowHeight: C,
118
+ hideFields: v,
76
119
  align: h,
77
120
  groupBy: m,
78
121
  summary: g,
79
- trailing: S,
80
- searchCollapsible: z,
122
+ trailing: z,
123
+ searchCollapsible: R,
81
124
  disableExtendedTools: n = !1,
82
- sortContent: r,
83
- filterContent: t
125
+ sortContent: s,
126
+ filterContent: a
84
127
  }) => {
85
- const c = D(() => {
86
- const s = [];
87
- if (l && s.push({ id: "undo-redo", node: /* @__PURE__ */ o($, {}) }), i && r) {
88
- const v = i.sorts.some((x) => x.field !== "" && x.direction !== "");
89
- s.push({
128
+ const d = D(
129
+ () => r && s ? J(s, r) : s,
130
+ [r, s]
131
+ ), b = D(
132
+ () => t && a ? Q(a, t) : a,
133
+ [t, a]
134
+ ), S = D(() => {
135
+ const c = [];
136
+ if (l && c.push({ id: "undo-redo", node: /* @__PURE__ */ o(X, { config: l }) }), r && d) {
137
+ const w = r.sorts.some((f) => f.field !== "" && f.direction !== "");
138
+ c.push({
90
139
  id: "sort",
91
- widthKey: v ? String(i.sorts.length) : "",
92
- node: /* @__PURE__ */ o(V, { config: i, content: r })
140
+ widthKey: w ? String(r.sorts.length) : "",
141
+ node: /* @__PURE__ */ o(Y, { config: r, content: d })
93
142
  });
94
143
  }
95
- if (d && t && s.push({
144
+ if (t && b && c.push({
96
145
  id: "filter",
97
- widthKey: d.meaningfulConditionsCount > 0 ? String(d.meaningfulConditionsCount) : "",
98
- node: /* @__PURE__ */ o(q, { config: d, content: t })
99
- }), b && s.push({
146
+ widthKey: t.meaningfulConditionsCount > 0 ? String(t.meaningfulConditionsCount) : "",
147
+ node: /* @__PURE__ */ o(Z, { config: t, content: b })
148
+ }), C && c.push({
100
149
  id: "row-height",
101
- node: /* @__PURE__ */ o(G, { ...b, isDisabled: n })
102
- }), u && s.push({
150
+ node: /* @__PURE__ */ o(_, { ...C, isDisabled: n })
151
+ }), v && c.push({
103
152
  id: "hide-fields",
104
- widthKey: u.hiddenColumns.size > 0 ? String(u.hiddenColumns.size) : "",
105
- node: /* @__PURE__ */ o(F, { ...u, isDisabled: n })
106
- }), h && s.push({ id: "align", node: /* @__PURE__ */ o(P, { ...h, isDisabled: n }) }), m) {
107
- const v = m.value ? m.schema.find((N) => N.value === m.value) : void 0, x = v ? _(v, m.labelMeta) : "";
108
- s.push({
153
+ widthKey: v.hiddenColumns.size > 0 ? String(v.hiddenColumns.size) : "",
154
+ node: /* @__PURE__ */ o(G, { ...v, isDisabled: n })
155
+ }), h && c.push({ id: "align", node: /* @__PURE__ */ o(H, { ...h, isDisabled: n }) }), m) {
156
+ const w = m.value ? m.schema.find((k) => k.value === m.value) : void 0, f = w ? V(w, m.labelMeta) : "";
157
+ c.push({
109
158
  id: "group-by",
110
- widthKey: x,
159
+ widthKey: f,
111
160
  node: /* @__PURE__ */ o(T, { ...m, isDisabled: n })
112
161
  });
113
162
  }
114
- return g && s.push({
163
+ return g && c.push({
115
164
  id: "summary",
116
- node: /* @__PURE__ */ o(U, { ...g, isDisabled: n })
117
- }), s;
165
+ node: /* @__PURE__ */ o(B, { ...g, isDisabled: n })
166
+ }), c;
118
167
  }, [
119
168
  l,
120
- i,
121
169
  r,
122
170
  d,
123
171
  t,
124
172
  b,
125
- u,
173
+ C,
174
+ v,
126
175
  h,
127
176
  m,
128
177
  g,
129
178
  n
130
179
  ]);
131
- return /* @__PURE__ */ p("div", { className: I("flex justify-between items-center gap-2", e), children: [
132
- c.length > 0 ? /* @__PURE__ */ o(Q, { items: c }) : a ? /* @__PURE__ */ o("h4", { className: "text-sm font-normal text-secondary", children: a }) : /* @__PURE__ */ o("div", {}),
180
+ return /* @__PURE__ */ p("div", { className: N("flex justify-between items-center gap-2", e), children: [
181
+ S.length > 0 ? /* @__PURE__ */ o(ne, { items: S }) : i ? /* @__PURE__ */ o("h4", { className: "text-sm font-normal text-secondary", children: i }) : /* @__PURE__ */ o("div", {}),
133
182
  /* @__PURE__ */ p("div", { className: "flex items-center gap-2 shrink-0", children: [
134
- f && /* @__PURE__ */ o(
135
- B,
183
+ u && /* @__PURE__ */ o(
184
+ q,
136
185
  {
137
186
  size: "sm",
138
187
  placeholder: "Search",
139
- value: f.value,
140
- onChange: f.onChange,
141
- collapsible: z,
188
+ value: u.value,
189
+ onChange: u.onChange,
190
+ collapsible: R,
142
191
  isDisabled: n,
143
- shortcut: f.shortcut
192
+ shortcut: u.shortcut
144
193
  }
145
194
  ),
146
- S
195
+ z
147
196
  ] })
148
197
  ] });
149
- }, J = 40, M = 8, Q = ({ items: e }) => {
150
- const a = O(null), l = O(/* @__PURE__ */ new Map()), [i, d] = R(() => /* @__PURE__ */ new Map()), [f, b] = R(null), u = D(() => e.map((n) => `${n.id}:${n.widthKey ?? ""}`).join("|"), [e]);
151
- A(() => {
152
- d(/* @__PURE__ */ new Map());
153
- }, [u]), L(() => {
154
- if (i.size === e.length) return;
198
+ }, ee = 40, U = 8, ne = ({ items: e }) => {
199
+ const i = A(null), l = A(/* @__PURE__ */ new Map()), [r, t] = I(() => /* @__PURE__ */ new Map()), [u, C] = I(null), v = D(() => e.map((n) => `${n.id}:${n.widthKey ?? ""}`).join("|"), [e]);
200
+ K(() => {
201
+ t(/* @__PURE__ */ new Map());
202
+ }, [v]), O(() => {
203
+ if (r.size === e.length) return;
155
204
  const n = /* @__PURE__ */ new Map();
156
- for (const r of e) {
157
- const t = l.current.get(r.id);
158
- t && n.set(r.id, t.getBoundingClientRect().width);
205
+ for (const s of e) {
206
+ const a = l.current.get(s.id);
207
+ a && n.set(s.id, a.getBoundingClientRect().width);
159
208
  }
160
- n.size === e.length && d(n);
161
- }, [e, i]), L(() => {
162
- const n = a.current;
209
+ n.size === e.length && t(n);
210
+ }, [e, r]), O(() => {
211
+ const n = i.current;
163
212
  if (!n) return;
164
- const r = () => {
165
- a.current && b(a.current.clientWidth);
213
+ const s = () => {
214
+ i.current && C(i.current.clientWidth);
166
215
  };
167
- r();
168
- const t = new ResizeObserver(r);
169
- return t.observe(n), () => t.disconnect();
216
+ s();
217
+ const a = new ResizeObserver(s);
218
+ return a.observe(n), () => a.disconnect();
170
219
  }, []);
171
- const h = i.size === e.length, { visibleIds: m, overflowIds: g } = D(() => {
172
- if (!h || f == null)
220
+ const h = r.size === e.length, { visibleIds: m, overflowIds: g } = D(() => {
221
+ if (!h || u == null)
173
222
  return {
174
- visibleIds: new Set(e.map((c) => c.id)),
223
+ visibleIds: new Set(e.map((d) => d.id)),
175
224
  overflowIds: /* @__PURE__ */ new Set()
176
225
  };
177
226
  let n = 0;
178
- const r = /* @__PURE__ */ new Set(), t = /* @__PURE__ */ new Set();
179
- for (let c = 0; c < e.length; c++) {
180
- const s = e[c].id, v = i.get(s) ?? 0, N = e.length - c - 1 > 0 ? J + M : 0;
181
- if (n + v + N > f) {
182
- for (let y = c; y < e.length; y++) t.add(e[y].id);
227
+ const s = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set();
228
+ for (let d = 0; d < e.length; d++) {
229
+ const b = e[d].id, S = r.get(b) ?? 0, w = e.length - d - 1 > 0 ? ee + U : 0;
230
+ if (n + S + w > u) {
231
+ for (let f = d; f < e.length; f++) a.add(e[f].id);
183
232
  break;
184
233
  }
185
- n += v + M, r.add(s);
234
+ n += S + U, s.add(b);
186
235
  }
187
- return { visibleIds: r, overflowIds: t };
188
- }, [e, i, f, h]), S = e.filter((n) => m.has(n.id)), z = e.filter((n) => g.has(n.id));
236
+ return { visibleIds: s, overflowIds: a };
237
+ }, [e, r, u, h]), z = e.filter((n) => m.has(n.id)), R = e.filter((n) => g.has(n.id));
189
238
  return /* @__PURE__ */ p(
190
239
  "div",
191
240
  {
192
- ref: a,
241
+ ref: i,
193
242
  className: "flex items-center gap-2 min-w-0 flex-1 overflow-hidden",
194
243
  style: h ? void 0 : { visibility: "hidden" },
195
244
  children: [
196
- (h ? S : e).map((n) => /* @__PURE__ */ o(
245
+ (h ? z : e).map((n) => /* @__PURE__ */ o(
197
246
  "div",
198
247
  {
199
- ref: (r) => {
200
- l.current.set(n.id, r);
248
+ ref: (s) => {
249
+ l.current.set(n.id, s);
201
250
  },
202
251
  className: "shrink-0",
203
252
  children: n.node
204
253
  },
205
254
  n.id
206
255
  )),
207
- h && z.length > 0 && /* @__PURE__ */ p(w.Root, { children: [
256
+ h && R.length > 0 && /* @__PURE__ */ p(x.Root, { children: [
208
257
  /* @__PURE__ */ o(
209
- C,
258
+ y,
210
259
  {
211
260
  size: "xs",
212
261
  color: "secondary",
213
- iconLeading: /* @__PURE__ */ o(k, { size: 16 }),
262
+ iconLeading: /* @__PURE__ */ o(P, { size: 16 }),
214
263
  "aria-label": "More tools",
215
264
  title: "More tools",
216
265
  className: "shrink-0"
217
266
  }
218
267
  ),
219
- /* @__PURE__ */ o(w.Popover, { className: "w-auto", children: /* @__PURE__ */ o("div", { className: "flex flex-col items-stretch gap-2 p-2 min-w-[180px]", children: z.map((n) => /* @__PURE__ */ o("div", { className: "[&>*]:w-full", children: n.node }, n.id)) }) })
268
+ /* @__PURE__ */ o(x.Popover, { className: "w-auto", children: /* @__PURE__ */ o("div", { className: "flex flex-col items-stretch gap-2 p-2 min-w-[180px]", children: R.map((n) => /* @__PURE__ */ o("div", { className: "[&>*]:w-full", children: n.node }, n.id)) }) })
220
269
  ] })
221
270
  ]
222
271
  }
223
272
  );
224
273
  };
225
- function he(e) {
274
+ function we(e) {
226
275
  return {
227
276
  sort: e.sort,
228
277
  filter: e.filter,
@@ -230,6 +279,6 @@ function he(e) {
230
279
  };
231
280
  }
232
281
  export {
233
- ce as TableToolbar,
234
- he as pickCoreToolbarProps
282
+ be as TableToolbar,
283
+ we as pickCoreToolbarProps
235
284
  };
@@ -1,5 +1,5 @@
1
1
  export { TableToolbar, pickCoreToolbarProps } from './TableToolbar';
2
- export type { TableToolbarProps, SortToolConfig, FilterToolConfig, SearchToolConfig, RowHeightToolConfig, HideFieldsToolConfig, AlignToolConfig, GroupByToolConfig, SummaryToolConfig, } from './TableToolbar';
2
+ export type { TableToolbarProps, SortToolConfig, FilterToolConfig, SearchToolConfig, RowHeightToolConfig, HideFieldsToolConfig, AlignToolConfig, GroupByToolConfig, SummaryToolConfig, UndoRedoToolConfig, } from './TableToolbar';
3
3
  export { RowHeightDropdown } from './RowHeightDropdown';
4
4
  export type { RowHeightOption } from './RowHeightDropdown';
5
5
  export { ROW_HEIGHT_CLASS } from './tableToolbarHelpers';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/patterns/table/toolbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE7G,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACtF,YAAY,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACtE,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACrB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAClB,8BAA8B,EAC9B,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/patterns/table/toolbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACpE,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE7G,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACtF,YAAY,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACtE,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,UAAU,GACX,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,qBAAqB,EACrB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,SAAS,EACT,kBAAkB,EAClB,8BAA8B,EAC9B,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare function useUndoRedoShortcuts(options: {
2
+ enabled?: boolean;
3
+ canUndo: boolean;
4
+ canRedo: boolean;
5
+ onUndo: () => void;
6
+ onRedo: () => void;
7
+ isDisabled?: boolean;
8
+ }): void;
9
+ //# sourceMappingURL=useUndoRedoShortcuts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUndoRedoShortcuts.d.ts","sourceRoot":"","sources":["../../../../src/patterns/table/toolbar/useUndoRedoShortcuts.ts"],"names":[],"mappings":"AAUA,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,IAAI,CA6BP"}
@@ -0,0 +1,21 @@
1
+ import { useEffect as l } from "react";
2
+ function y(t) {
3
+ if (!(t instanceof HTMLElement)) return !1;
4
+ const o = t.tagName;
5
+ return !!(o === "INPUT" || o === "TEXTAREA" || o === "SELECT" || t.isContentEditable);
6
+ }
7
+ function m(t) {
8
+ const { enabled: o = !0, canUndo: r, canRedo: s, onUndo: i, onRedo: a, isDisabled: u = !1 } = t;
9
+ l(() => {
10
+ if (!o || u) return;
11
+ const d = (e) => {
12
+ if (y(e.target) || !(e.metaKey || e.ctrlKey) || e.altKey) return;
13
+ const n = e.key.toLowerCase(), f = n === "z" && !e.shiftKey, c = n === "z" && e.shiftKey || n === "y";
14
+ f && r ? (e.preventDefault(), e.stopPropagation(), i()) : c && s && (e.preventDefault(), e.stopPropagation(), a());
15
+ };
16
+ return window.addEventListener("keydown", d, { capture: !0 }), () => window.removeEventListener("keydown", d, { capture: !0 });
17
+ }, [o, u, r, s, i, a]);
18
+ }
19
+ export {
20
+ m as useUndoRedoShortcuts
21
+ };
@@ -1,7 +1,8 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { TablePaginationConfig } from './TablePagination';
3
- import { AlignToolConfig, GroupByToolConfig, HideFieldsToolConfig, RowHeightToolConfig, SearchToolConfig, SummaryToolConfig, CellAlignment, ColumnMenuAction, ColumnMenuCapabilities, RowActionsConfig, RowGroup, SummaryFooterRowProps } from './toolbar';
3
+ import { UndoRedoToolConfig } from './toolbar/TableToolbar';
4
4
  import { LegacyFilterToolConfig, LegacySortToolConfig } from './toolbar/legacyToolbarTypes';
5
+ import { AlignToolConfig, GroupByToolConfig, HideFieldsToolConfig, RowHeightToolConfig, SearchToolConfig, SummaryToolConfig, CellAlignment, ColumnMenuAction, ColumnMenuCapabilities, RowActionsConfig, RowGroup, SummaryFooterRowProps } from './toolbar';
5
6
  /** Value type used for alignment defaults and aggregation eligibility. */
6
7
  export type TableColumnValueType = "string" | "number" | "currency" | "date" | "percentage" | "decimal_percentage" | "array" | "link";
7
8
  /**
@@ -44,6 +45,8 @@ export type TableWrapperToolbarConfig = {
44
45
  sortContent?: ReactNode;
45
46
  /** Consumer-rendered filter UI. Required for filter popover content when `filter` is configured. */
46
47
  filterContent?: ReactNode;
48
+ /** Consumer-owned undo/redo state — renders toolbar buttons and keyboard shortcuts when provided. */
49
+ undoRedo?: UndoRedoToolConfig;
47
50
  };
48
51
  /** Controlled selection value for TableWrapper (`"all"` = every row in the current body). */
49
52
  export type TableWrapperSelectedKeys = "all" | ReadonlySet<string>;
@@ -68,6 +71,7 @@ export type ColumnConfig = {
68
71
  sticky?: "left" | "right";
69
72
  stickyOffset?: number;
70
73
  allowsSorting?: boolean;
74
+ width?: string;
71
75
  maxWidth?: string;
72
76
  minWidth?: string;
73
77
  headClassName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patterns/table/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/patterns/table/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { TableUndoSnapshotSources } from './tableUndoRedo';
3
+ export type UseTableUndoRedoOptions = TableUndoSnapshotSources & {
4
+ enabled?: boolean;
5
+ tableId?: string;
6
+ sharedUndoGroup?: TableUndoRedoScopeApi | null;
7
+ onDataRestore?: (data: unknown[]) => void;
8
+ };
9
+ export type TableUndoRedoState = {
10
+ canUndo: boolean;
11
+ canRedo: boolean;
12
+ undo: () => void;
13
+ redo: () => void;
14
+ commitBeforeMutation: () => void;
15
+ shortcut?: boolean;
16
+ };
17
+ export type TableUndoRedoRegistration = {
18
+ tableId: string;
19
+ canUndo: boolean;
20
+ canRedo: boolean;
21
+ undo: () => void;
22
+ redo: () => void;
23
+ };
24
+ export type TableUndoRedoScopeApi = {
25
+ canUndo: boolean;
26
+ canRedo: boolean;
27
+ undo: () => void;
28
+ redo: () => void;
29
+ recordCommit: (tableId: string) => void;
30
+ registerTable: (registration: TableUndoRedoRegistration) => () => void;
31
+ unregisterTable: (tableId: string) => void;
32
+ };
33
+ export declare function useTableUndoRedoScope(): TableUndoRedoScopeApi | null;
34
+ export declare function TableUndoRedoProvider({ children, shortcuts, isDisabled, }: PropsWithChildren<{
35
+ shortcuts?: boolean;
36
+ isDisabled?: boolean;
37
+ }>): import('react').FunctionComponentElement<import('react').ProviderProps<TableUndoRedoScopeApi | null>>;
38
+ export declare function useTableUndoRedo({ enabled, tableId, sharedUndoGroup, toolbar, columnAlignments, summaryFooterProps, appliedFilterConditions, data, getData, onDataRestore, }: UseTableUndoRedoOptions): TableUndoRedoState;
39
+ export type { TableUndoSnapshot } from './tableUndoRedo';
40
+ export { applyTableUndoSnapshot, captureTableUndoSnapshot, wrapColumnHeaderActionWithUndoRedo, wrapEditChromeWithUndoRedo, wrapRowActionsWithUndoRedo, wrapSummaryFooterWithUndoRedo, wrapToolbarWithUndoRedo, } from './tableUndoRedo';
41
+ //# sourceMappingURL=useTableUndoRedo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableUndoRedo.d.ts","sourceRoot":"","sources":["../../../src/patterns/table/useTableUndoRedo.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EAOvB,MAAM,OAAO,CAAC;AACf,OAAO,EAIL,KAAK,wBAAwB,EAC9B,MAAM,iBAAiB,CAAC;AAIzB,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,GAAG;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC/C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,aAAa,EAAE,CAAC,YAAY,EAAE,yBAAyB,KAAK,MAAM,IAAI,CAAC;IACvE,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C,CAAC;AAYF,wBAAgB,qBAAqB,IAAI,qBAAqB,GAAG,IAAI,CAEpE;AAED,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,SAAgB,EAChB,UAAkB,GACnB,EAAE,iBAAiB,CAAC;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,yGA8GlE;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,OAAe,EACf,OAAO,EACP,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,IAAI,EACJ,OAAO,EACP,aAAa,GACd,EAAE,uBAAuB,GAAG,kBAAkB,CAqG9C;AAED,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kCAAkC,EAClC,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,iBAAiB,CAAC"}