laif-ds 0.1.35 → 0.1.36

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 (83) hide show
  1. package/dist/_virtual/index.js +5 -2
  2. package/dist/_virtual/index3.js +2 -7
  3. package/dist/_virtual/index4.js +2 -5
  4. package/dist/_virtual/index5.js +4 -4
  5. package/dist/_virtual/index6.js +5 -2
  6. package/dist/_virtual/index7.js +5 -2
  7. package/dist/_virtual/index8.js +5 -0
  8. package/dist/_virtual/index9.js +5 -0
  9. package/dist/_virtual/use-sync-external-store-shim.development.js +5 -0
  10. package/dist/_virtual/use-sync-external-store-shim.production.js +5 -0
  11. package/dist/components/ui/checkbox.js +12 -12
  12. package/dist/components/ui/gantt/components/Chart/Chart.js +1 -1
  13. package/dist/components/ui/message-input.js +1 -1
  14. package/dist/components/ui/tables/data-cross-table/data-cross-table.js +348 -0
  15. package/dist/components/ui/tables/data-cross-table/edit-controls.js +47 -0
  16. package/dist/components/ui/tables/data-cross-table/editable-input.js +100 -0
  17. package/dist/components/ui/tables/data-cross-table/truncated-text.js +19 -0
  18. package/dist/index.d.ts +29 -3
  19. package/dist/index.js +1 -1
  20. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +126 -122
  21. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +10 -6
  22. package/dist/node_modules/@radix-ui/react-accordion/dist/index.js +44 -42
  23. package/dist/node_modules/@radix-ui/react-avatar/dist/index.js +33 -43
  24. package/dist/node_modules/@radix-ui/react-checkbox/dist/index.js +237 -120
  25. package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js +17 -16
  26. package/dist/node_modules/@radix-ui/react-context-menu/dist/index.js +95 -94
  27. package/dist/node_modules/@radix-ui/react-dialog/dist/index.js +20 -19
  28. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +3 -3
  29. package/dist/node_modules/@radix-ui/react-hover-card/dist/index.js +14 -13
  30. package/dist/node_modules/@radix-ui/react-menu/dist/index.js +136 -136
  31. package/dist/node_modules/@radix-ui/react-menubar/dist/index.js +70 -68
  32. package/dist/node_modules/@radix-ui/react-navigation-menu/dist/index.js +66 -64
  33. package/dist/node_modules/@radix-ui/react-popover/dist/index.js +10 -9
  34. package/dist/node_modules/@radix-ui/react-presence/dist/index.js +16 -16
  35. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +11 -10
  36. package/dist/node_modules/@radix-ui/react-radio-group/dist/index.js +161 -146
  37. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js +87 -84
  38. package/dist/node_modules/@radix-ui/react-select/dist/index.js +269 -257
  39. package/dist/node_modules/@radix-ui/react-slider/dist/index.js +3 -3
  40. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +29 -28
  41. package/dist/node_modules/@radix-ui/react-switch/dist/index.js +101 -86
  42. package/dist/node_modules/@radix-ui/react-tabs/dist/index.js +23 -22
  43. package/dist/node_modules/@radix-ui/react-toggle/dist/index.js +17 -16
  44. package/dist/node_modules/@radix-ui/react-toggle-group/dist/index.js +25 -23
  45. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.js +77 -76
  46. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +43 -21
  47. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.js +16 -0
  48. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js +18 -18
  49. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index.js +36 -0
  50. package/dist/node_modules/@tanstack/virtual-core/dist/esm/index.js +491 -0
  51. package/dist/node_modules/@tanstack/virtual-core/dist/esm/utils.js +53 -0
  52. package/dist/node_modules/classnames/index.js +1 -1
  53. package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.js +1 -1
  54. package/dist/node_modules/property-information/lib/html.js +9 -9
  55. package/dist/node_modules/react-hook-form/dist/index.esm.js +88 -88
  56. package/dist/node_modules/react-is/index.js +1 -1
  57. package/dist/node_modules/react-resizable-panels/dist/react-resizable-panels.browser.esm.js +830 -801
  58. package/dist/node_modules/recharts/es6/util/ReactUtils.js +1 -1
  59. package/dist/node_modules/remeda/dist/chunk-AIG3BDKO.js +9 -0
  60. package/dist/node_modules/remeda/dist/{chunk-A3PVMI4K.js → chunk-KI5X74E2.js} +1 -1
  61. package/dist/node_modules/style-to-object/cjs/index.js +1 -1
  62. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +3 -3
  63. package/dist/node_modules/unified/lib/index.js +1 -1
  64. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +68 -0
  65. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +56 -0
  66. package/dist/node_modules/use-sync-external-store/shim/index.js +11 -0
  67. package/dist/styles.css +1 -1
  68. package/package.json +2 -1
  69. package/dist/components/ui/data-cross-table.js +0 -216
  70. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-arrow/dist/index.js +0 -25
  71. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-collection/dist/index.js +0 -49
  72. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +0 -128
  73. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-focus-scope/dist/index.js +0 -138
  74. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-menu/dist/index.js +0 -625
  75. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-popper/dist/index.js +0 -221
  76. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-portal/dist/index.js +0 -17
  77. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-primitive/dist/index.js +0 -37
  78. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-roving-focus/dist/index.js +0 -184
  79. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +0 -55
  80. package/dist/node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-collection/dist/index.js +0 -49
  81. package/dist/node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  82. package/dist/node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +0 -55
  83. package/dist/node_modules/remeda/dist/chunk-OAMXQXGR.js +0 -9
@@ -1,3 +1,6 @@
1
1
  "use client";
2
- import { __require as e } from "../node_modules/react-is/index.js";
3
- e();
2
+ import { __require as r } from "../node_modules/use-sync-external-store/shim/index.js";
3
+ var i = r();
4
+ export {
5
+ i as s
6
+ };
@@ -1,8 +1,3 @@
1
1
  "use client";
2
- import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.js";
3
- import { __require as e } from "../node_modules/style-to-js/cjs/index.js";
4
- var t = e();
5
- const a = /* @__PURE__ */ r(t);
6
- export {
7
- a as default
8
- };
2
+ import { __require as e } from "../node_modules/react-is/index.js";
3
+ e();
@@ -1,8 +1,5 @@
1
1
  "use client";
2
- import { getDefaultExportFromCjs as e } from "./_commonjsHelpers.js";
3
- import { __require as r } from "../node_modules/extend/index.js";
4
- var t = r();
5
- const x = /* @__PURE__ */ e(t);
2
+ var e = { exports: {} };
6
3
  export {
7
- x as default
4
+ e as __module
8
5
  };
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.js";
3
- import { __require as e } from "../node_modules/classnames/index.js";
4
- var s = e();
5
- const o = /* @__PURE__ */ r(s);
3
+ import { __require as e } from "../node_modules/style-to-js/cjs/index.js";
4
+ var t = e();
5
+ const a = /* @__PURE__ */ r(t);
6
6
  export {
7
- o as default
7
+ a as default
8
8
  };
@@ -1,5 +1,8 @@
1
1
  "use client";
2
- var e = {};
2
+ import { getDefaultExportFromCjs as e } from "./_commonjsHelpers.js";
3
+ import { __require as r } from "../node_modules/extend/index.js";
4
+ var t = r();
5
+ const x = /* @__PURE__ */ e(t);
3
6
  export {
4
- e as __exports
7
+ x as default
5
8
  };
@@ -1,5 +1,8 @@
1
1
  "use client";
2
- var e = { exports: {} };
2
+ import { getDefaultExportFromCjs as r } from "./_commonjsHelpers.js";
3
+ import { __require as e } from "../node_modules/classnames/index.js";
4
+ var s = e();
5
+ const o = /* @__PURE__ */ r(s);
3
6
  export {
4
- e as __module
7
+ o as default
5
8
  };
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ var e = {};
3
+ export {
4
+ e as __exports
5
+ };
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ var e = { exports: {} };
3
+ export {
4
+ e as __module
5
+ };
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ var e = {};
3
+ export {
4
+ e as __exports
5
+ };
@@ -0,0 +1,5 @@
1
+ "use client";
2
+ var e = {};
3
+ export {
4
+ e as __exports
5
+ };
@@ -1,32 +1,32 @@
1
1
  "use client";
2
- import { jsx as r } from "react/jsx-runtime";
3
- import { Root as t, Indicator as d } from "../../node_modules/@radix-ui/react-checkbox/dist/index.js";
4
- import { cn as a } from "../../lib/utils.js";
2
+ import { jsx as e } from "react/jsx-runtime";
3
+ import { Checkbox as t, CheckboxIndicator as a } from "../../node_modules/@radix-ui/react-checkbox/dist/index.js";
4
+ import { cn as d } from "../../lib/utils.js";
5
5
  import o from "../../node_modules/lucide-react/dist/esm/icons/check.js";
6
- function u({
7
- className: e,
6
+ function b({
7
+ className: r,
8
8
  ...i
9
9
  }) {
10
- return /* @__PURE__ */ r(
10
+ return /* @__PURE__ */ e(
11
11
  t,
12
12
  {
13
13
  "data-slot": "checkbox",
14
- className: a(
14
+ className: d(
15
15
  "peer border-d-input dark:bg-d-input/30 data-[state=checked]:bg-d-primary data-[state=checked]:text-d-primary-foreground dark:data-[state=checked]:bg-d-primary data-[state=checked]:border-d-primary focus-visible:border-d-ring focus-visible:ring-d-ring/50 aria-invalid:ring-d-destructive/20 dark:aria-invalid:ring-d-destructive/40 aria-invalid:border-d-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
16
- e
16
+ r
17
17
  ),
18
18
  ...i,
19
- children: /* @__PURE__ */ r(
20
- d,
19
+ children: /* @__PURE__ */ e(
20
+ a,
21
21
  {
22
22
  "data-slot": "checkbox-indicator",
23
23
  className: "flex items-center justify-center text-current transition-none",
24
- children: /* @__PURE__ */ r(o, { className: "size-3.5" })
24
+ children: /* @__PURE__ */ e(o, { className: "size-3.5" })
25
25
  }
26
26
  )
27
27
  }
28
28
  );
29
29
  }
30
30
  export {
31
- u as Checkbox
31
+ b as Checkbox
32
32
  };
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx as o, jsxs as M, Fragment as N } from "react/jsx-runtime";
3
3
  import { useContext as R, useRef as a, useState as s, useCallback as k, useMemo as y, useEffect as u } from "react";
4
- import A from "../../../../../_virtual/index5.js";
4
+ import A from "../../../../../_virtual/index7.js";
5
5
  import B from "../../../../../_virtual/debounce.js";
6
6
  import { GanttContext as F } from "../Gantt/GanttContext.js";
7
7
  import { transformData as O } from "../../utils/transformData.js";
@@ -2,7 +2,7 @@
2
2
  import { jsxs as d, jsx as e } from "react/jsx-runtime";
3
3
  import { useState as y, useEffect as C, useRef as Y } from "react";
4
4
  import { AnimatePresence as v, motion as x } from "framer-motion";
5
- import { a as I } from "../../node_modules/remeda/dist/chunk-A3PVMI4K.js";
5
+ import { a as I } from "../../node_modules/remeda/dist/chunk-KI5X74E2.js";
6
6
  import { cn as R } from "../../lib/utils.js";
7
7
  import { useAudioRecording as Z } from "../../hooks/use-audio-recording.js";
8
8
  import { useAutosizeTextArea as _ } from "../../hooks/use-autosize-textarea.js";
@@ -0,0 +1,348 @@
1
+ "use client";
2
+ import { jsxs as O, jsx as i } from "react/jsx-runtime";
3
+ import { useState as g, useEffect as Y, useMemo as B, useRef as ce } from "react";
4
+ import { useReactTable as fe, flexRender as q } from "../../../../node_modules/@tanstack/react-table/build/lib/index.js";
5
+ import { useVirtualizer as me } from "../../../../node_modules/@tanstack/react-virtual/dist/esm/index.js";
6
+ import { TableSkeleton as pe } from "../../table-skeleton.js";
7
+ import { TruncatedText as I } from "./truncated-text.js";
8
+ import { EditControls as ge } from "./edit-controls.js";
9
+ import { EditableInput as he } from "./editable-input.js";
10
+ import { Button as G } from "../../button.js";
11
+ import { TableRow as F, TableCell as J, Table as xe, TableHeader as be, TableHead as ve, TableBody as ye } from "../../table.js";
12
+ import { getSortedRowModel as Ce, getCoreRowModel as Se } from "../../../../node_modules/@tanstack/table-core/build/lib/index.js";
13
+ function De({
14
+ crossTableData: N,
15
+ filterable: h = !1,
16
+ loading: Q = !1,
17
+ emptyComponent: X,
18
+ className: z,
19
+ notFoundMessage: Z = "Nessun risultato trovato.",
20
+ cornerHeaderFrom: T = "Da",
21
+ cornerHeaderTo: j = "A",
22
+ maxHeaderLength: x = 15,
23
+ minWidthCell: k = 160,
24
+ editable: V = !1,
25
+ editMode: H = !1,
26
+ editConfirmLabel: W = "Conferma",
27
+ editCancelLabel: ee = "Annulla",
28
+ onConfirmedCells: R,
29
+ onEditModeChange: E,
30
+ onSelectedRow: _,
31
+ selectedRow: a,
32
+ rowSortAsc: te = !0
33
+ }) {
34
+ const [re, oe] = g([]), u = N.headerTop, d = N.headerLeft, f = N.data, [b, $] = g(
35
+ (a == null ? void 0 : a.id) ?? null
36
+ ), [A, M] = g(te), [S, ne] = g(V && H);
37
+ Y(() => {
38
+ E && E(!!S);
39
+ }, [S, E]), Y(() => {
40
+ a != null && a.id && $(a.id);
41
+ }, [a]);
42
+ const [v, w] = g({}), [K, D] = g({}), le = (l) => l && typeof l == "object" && "value" in l ? l.value : l, c = B(() => {
43
+ if (!b || !d.find((e) => e.id === b)) return u;
44
+ const t = d.findIndex(
45
+ (e) => e.id === b
46
+ );
47
+ if (t === -1) return u;
48
+ const r = u.map((e, s) => {
49
+ var m;
50
+ const o = ((m = f[t]) == null ? void 0 : m[s]) ?? null, n = le(o);
51
+ return { header: e, value: n };
52
+ });
53
+ return r.sort((e, s) => {
54
+ if (typeof e.value == "number" && typeof s.value == "number")
55
+ return A ? e.value - s.value : s.value - e.value;
56
+ const o = String(e.value ?? ""), n = String(s.value ?? "");
57
+ return A ? o.localeCompare(n) : n.localeCompare(o);
58
+ }), r.map((e) => e.header);
59
+ }, [u, d, f, b, A]), se = B(() => {
60
+ const l = [
61
+ {
62
+ id: "cross-header",
63
+ header: () => /* @__PURE__ */ O("div", { className: "relative", children: [
64
+ /* @__PURE__ */ i("div", { className: "absolute top-0 left-2 text-xs", children: T }),
65
+ /* @__PURE__ */ i("div", { className: "absolute right-2 bottom-0 text-xs", children: j })
66
+ ] }),
67
+ accessorFn: (t) => t.item,
68
+ cell: (t) => {
69
+ const r = t.getValue();
70
+ if (!h)
71
+ return /* @__PURE__ */ i(
72
+ I,
73
+ {
74
+ text: r.label,
75
+ maxLength: x,
76
+ className: "w-full"
77
+ }
78
+ );
79
+ const e = b === r.id;
80
+ return /* @__PURE__ */ i(
81
+ G,
82
+ {
83
+ variant: "ghost",
84
+ size: "sm",
85
+ iconLeft: "ArrowLeftRight",
86
+ className: "text-right",
87
+ onClick: () => {
88
+ h && (e ? M((s) => !s) : ($(d[t.row.index].id), M(!0), _ && _(d[t.row.index])));
89
+ },
90
+ children: /* @__PURE__ */ i(I, { text: r.label, maxLength: x })
91
+ }
92
+ );
93
+ }
94
+ }
95
+ ];
96
+ return c.forEach((t) => {
97
+ l.push({
98
+ id: t.id,
99
+ accessorFn: (r) => r[t.id],
100
+ header: ({ column: r }) => h ? /* @__PURE__ */ i(
101
+ G,
102
+ {
103
+ variant: "ghost",
104
+ size: "sm",
105
+ iconLeft: "ArrowUpDown",
106
+ onClick: h ? () => r.toggleSorting(r.getIsSorted() === "asc") : void 0,
107
+ children: /* @__PURE__ */ i(I, { text: t.label, maxLength: x })
108
+ }
109
+ ) : /* @__PURE__ */ i(
110
+ I,
111
+ {
112
+ text: t.label,
113
+ maxLength: x,
114
+ className: "font-medium"
115
+ }
116
+ ),
117
+ sortingFn: (r, e, s) => {
118
+ let o = r.getValue(s), n = e.getValue(s);
119
+ return o == null && n == null ? 0 : o == null ? 1 : n == null ? -1 : (o && typeof o == "object" && "value" in o && (o = o.value), n && typeof n == "object" && "value" in n && (n = n.value), typeof o == "number" && typeof n == "number" ? o - n : String(o).localeCompare(String(n)));
120
+ },
121
+ cell: (r) => {
122
+ const e = r.getValue();
123
+ return e ? e.render ? e.render(e.fromId, e.toId, e.id) : /* @__PURE__ */ i("div", { children: e.value }) : null;
124
+ }
125
+ });
126
+ }), l;
127
+ }, [
128
+ c,
129
+ T,
130
+ j,
131
+ a,
132
+ h,
133
+ x,
134
+ $,
135
+ M
136
+ ]), ie = B(() => d.map((l, t) => {
137
+ const r = { item: l };
138
+ return c.forEach((e) => {
139
+ var o;
140
+ const s = u.findIndex((n) => n.id === e.id);
141
+ r[e.id] = s !== -1 ? ((o = f[t]) == null ? void 0 : o[s]) ?? null : null;
142
+ }), r;
143
+ }), [d, c, f, u]), L = fe({
144
+ data: ie,
145
+ columns: se,
146
+ state: { sorting: re },
147
+ onSortingChange: oe,
148
+ getCoreRowModel: Se(),
149
+ getSortedRowModel: Ce()
150
+ });
151
+ if (!f || f.length === 0)
152
+ return /* @__PURE__ */ i("div", { className: z, children: /* @__PURE__ */ i(F, { children: /* @__PURE__ */ i(J, { colSpan: c.length + 1, children: X || Z }) }) });
153
+ if (Q)
154
+ return /* @__PURE__ */ i(
155
+ pe,
156
+ {
157
+ headerRow: c.map((l) => l.label),
158
+ rowCount: d.length || 5,
159
+ columnCount: c.length || 5,
160
+ className: z,
161
+ cornerHeaderFrom: T,
162
+ cornerHeaderTo: j
163
+ }
164
+ );
165
+ const ae = (l) => {
166
+ const t = l.column.id === "cross-header", r = t, e = ["bg-d-secondary"];
167
+ t || e.push("border-r"), t && e.push("sticky left-0"), e.push("sticky top-0 z-20"), r ? e.push("z-40") : t && e.push("z-30");
168
+ let s = "none";
169
+ return t && (s = "inset -1px 0 0 0 var(--d-border), 0 1px 0 0 var(--d-border)"), {
170
+ className: e.join(" "),
171
+ style: { boxShadow: s, width: `${k}px` }
172
+ };
173
+ }, P = ce(null), U = me({
174
+ count: L.getRowModel().rows.length,
175
+ getScrollElement: () => P.current,
176
+ estimateSize: () => 40,
177
+ overscan: 5,
178
+ measureElement: typeof window < "u" ? (l) => l.getBoundingClientRect().height : void 0
179
+ });
180
+ return /* @__PURE__ */ O("div", { className: `w-[900px] ${z || ""}`, children: [
181
+ V && /* @__PURE__ */ i(
182
+ ge,
183
+ {
184
+ editable: V,
185
+ editConfirmLabel: W,
186
+ editCancelLabel: ee,
187
+ editMode: S,
188
+ setEditMode: ne,
189
+ editedCount: Object.keys(v).length,
190
+ confirmAll: () => {
191
+ if (R && (Object.keys(v).length > 0 || Object.keys(K).length > 0)) {
192
+ const t = Object.entries(v).map(
193
+ ([s, { value: o, cell: n }]) => ({
194
+ fromId: n.fromId,
195
+ toId: n.toId,
196
+ id: n.id,
197
+ value: o
198
+ })
199
+ ), r = Object.entries(K).map(
200
+ ([s, { value: o, cell: n }]) => ({
201
+ fromId: n.fromId,
202
+ toId: n.toId,
203
+ id: n.id,
204
+ value: o
205
+ })
206
+ );
207
+ R({
208
+ editedCells: t,
209
+ toDefaultCells: r
210
+ });
211
+ }
212
+ w({}), D({});
213
+ },
214
+ cancelAll: () => {
215
+ w({}), D({});
216
+ }
217
+ }
218
+ ),
219
+ /* @__PURE__ */ i(
220
+ "div",
221
+ {
222
+ ref: P,
223
+ className: "max-h-[600px] overflow-auto rounded-md border",
224
+ children: /* @__PURE__ */ O(xe, { className: "relative w-full table-fixed border-collapse", children: [
225
+ /* @__PURE__ */ i(
226
+ be,
227
+ {
228
+ className: "bg-d-secondary sticky top-0 z-20",
229
+ style: { boxShadow: "0 1px 0 0 var(--d-border)" },
230
+ children: L.getHeaderGroups().map((l) => /* @__PURE__ */ i(
231
+ F,
232
+ {
233
+ className: "bg-d-secondary sticky top-0 z-20",
234
+ children: l.headers.map((t) => {
235
+ const r = ae(t);
236
+ return /* @__PURE__ */ i(
237
+ ve,
238
+ {
239
+ className: r.className,
240
+ style: r.style,
241
+ children: t.isPlaceholder ? null : q(
242
+ t.column.columnDef.header,
243
+ t.getContext()
244
+ )
245
+ },
246
+ t.id
247
+ );
248
+ })
249
+ },
250
+ l.id
251
+ ))
252
+ }
253
+ ),
254
+ /* @__PURE__ */ i(
255
+ ye,
256
+ {
257
+ style: {
258
+ height: `${U.getTotalSize()}px`,
259
+ position: "relative",
260
+ width: "100%"
261
+ },
262
+ children: U.getVirtualItems().map((l) => {
263
+ const t = L.getRowModel().rows[l.index];
264
+ return /* @__PURE__ */ i(
265
+ F,
266
+ {
267
+ "data-index": l.index,
268
+ style: {
269
+ position: "absolute",
270
+ top: 0,
271
+ left: 0,
272
+ transform: `translateY(${l.start}px)`,
273
+ width: "100%",
274
+ height: `${l.size}px`,
275
+ display: "flex"
276
+ },
277
+ children: t.getVisibleCells().map((r, e) => {
278
+ const s = e === 0, o = r.getValue(), n = s ? "var(--d-secondary)" : (o == null ? void 0 : o.color) || "transparent";
279
+ return /* @__PURE__ */ i(
280
+ J,
281
+ {
282
+ className: `text-center ${s ? "sticky left-0 z-10" : "border-r"}`,
283
+ style: {
284
+ boxShadow: s ? "inset -1px 0 0 0 var(--d-border)" : "none",
285
+ backgroundColor: n,
286
+ width: `${k}px`,
287
+ flex: s ? "0 0 auto" : `1 0 ${k}px`,
288
+ display: "flex",
289
+ alignItems: "center",
290
+ justifyContent: "center"
291
+ },
292
+ children: s || !S || !o ? (
293
+ // Rendering normale per la prima colonna o quando non siamo in modalità edit
294
+ q(
295
+ r.column.columnDef.cell,
296
+ r.getContext()
297
+ )
298
+ ) : (
299
+ // Rendering con EditableInput per le celle modificabili
300
+ (() => {
301
+ const m = `${t.index}-${r.column.id}`, de = m in v ? v[m].value : o.value || "";
302
+ return /* @__PURE__ */ i(
303
+ he,
304
+ {
305
+ value: de,
306
+ originalValue: o.value || "",
307
+ cellKey: m,
308
+ cellData: o,
309
+ onChange: (y, C) => {
310
+ w((p) => ({
311
+ ...p,
312
+ [y]: { value: C, cell: o }
313
+ }));
314
+ },
315
+ resetCell: (y) => {
316
+ w((C) => {
317
+ const p = { ...C };
318
+ return delete p[y], p;
319
+ });
320
+ },
321
+ resetToDefault: (y, C, p) => {
322
+ D((ue) => ({
323
+ ...ue,
324
+ [y]: { value: C, cell: p }
325
+ }));
326
+ }
327
+ }
328
+ );
329
+ })()
330
+ )
331
+ },
332
+ r.id
333
+ );
334
+ })
335
+ },
336
+ t.id
337
+ );
338
+ })
339
+ }
340
+ )
341
+ ] })
342
+ }
343
+ )
344
+ ] });
345
+ }
346
+ export {
347
+ De as DataCrossTable
348
+ };
@@ -0,0 +1,47 @@
1
+ "use client";
2
+ import { jsxs as o, jsx as r, Fragment as h } from "react/jsx-runtime";
3
+ import { memo as l } from "react";
4
+ import { Switch as u } from "../../switch.js";
5
+ import { Button as m } from "../../button.js";
6
+ const f = l(
7
+ ({
8
+ onClick: e,
9
+ label: t,
10
+ count: n
11
+ }) => /* @__PURE__ */ o(m, { size: "sm", onClick: e, children: [
12
+ t,
13
+ " ",
14
+ n > 0 && `(${n})`
15
+ ] })
16
+ ), p = l(
17
+ ({ onClick: e, label: t }) => /* @__PURE__ */ r(m, { variant: "ghost", size: "sm", onClick: e, children: t })
18
+ );
19
+ function k({
20
+ editConfirmLabel: e,
21
+ editCancelLabel: t,
22
+ editMode: n,
23
+ setEditMode: c,
24
+ editedCount: i,
25
+ confirmAll: s,
26
+ cancelAll: a,
27
+ editable: d
28
+ }) {
29
+ return d ? /* @__PURE__ */ o("div", { className: "mb-2 flex items-center gap-2", children: [
30
+ /* @__PURE__ */ r(u, { id: "edit-mode", checked: n, onCheckedChange: c }),
31
+ /* @__PURE__ */ r("label", { htmlFor: "edit-mode", className: "text-sm select-none", children: "Edit mode" }),
32
+ n && i > 0 && /* @__PURE__ */ o(h, { children: [
33
+ /* @__PURE__ */ r(
34
+ f,
35
+ {
36
+ onClick: s,
37
+ label: e,
38
+ count: i
39
+ }
40
+ ),
41
+ /* @__PURE__ */ r(p, { onClick: a, label: t })
42
+ ] })
43
+ ] }) : null;
44
+ }
45
+ export {
46
+ k as EditControls
47
+ };
@@ -0,0 +1,100 @@
1
+ "use client";
2
+ import { jsxs as t, jsx as e } from "react/jsx-runtime";
3
+ import { memo as k, useState as v, useCallback as o } from "react";
4
+ import { Popover as z, PopoverTrigger as I, PopoverContent as P } from "../../popover.js";
5
+ import { Icon as h } from "../../icon.js";
6
+ import { Button as p } from "../../button.js";
7
+ const E = k(
8
+ ({
9
+ value: i,
10
+ onChange: u,
11
+ resetCell: a,
12
+ resetToDefault: l,
13
+ cellKey: n,
14
+ originalValue: s,
15
+ cellData: m
16
+ }) => {
17
+ const [N, r] = v(!1), [d, f] = v(i), C = (c) => {
18
+ c && f(i), r(c);
19
+ }, g = o(
20
+ (c) => {
21
+ f(c.target.value);
22
+ },
23
+ []
24
+ ), w = o(() => {
25
+ u(n, d), r(!1);
26
+ }, [u, n, d]), b = o(() => {
27
+ f(s ?? null), a(n), r(!1);
28
+ }, [s, a, n]), j = o(() => {
29
+ a(n), m && l && l(n, s, m), r(!1);
30
+ }, [l, a, n, s, m]), x = i !== s;
31
+ return /* @__PURE__ */ t(z, { open: N, onOpenChange: C, children: [
32
+ /* @__PURE__ */ e(I, { asChild: !0, children: /* @__PURE__ */ e("div", { className: "flex w-full cursor-pointer items-center justify-center", children: /* @__PURE__ */ t("div", { className: "relative w-full flex-1 items-center justify-center text-center", children: [
33
+ i || "",
34
+ x && /* @__PURE__ */ e("div", { className: "bg-d-primary text-d-primary-foreground absolute top-0 left-0 rounded p-1" }),
35
+ /* @__PURE__ */ e("span", { className: "text-d-muted-foreground ml-1 inline-flex items-center", children: /* @__PURE__ */ e(h, { name: "Pencil", size: "sm", className: "h-3 w-3" }) })
36
+ ] }) }) }),
37
+ /* @__PURE__ */ e(P, { className: "w-[400px] p-4", children: /* @__PURE__ */ t("div", { className: "space-y-4", children: [
38
+ /* @__PURE__ */ t("div", { className: "flex items-center justify-between", children: [
39
+ /* @__PURE__ */ e("div", { className: "font-medium", children: "Modifica valore" }),
40
+ x && /* @__PURE__ */ e("div", { className: "text-d-muted-foreground text-xs", children: "Valore modificato" })
41
+ ] }),
42
+ /* @__PURE__ */ e(
43
+ "input",
44
+ {
45
+ type: "text",
46
+ className: "bg-d-secondary w-full rounded border p-2",
47
+ value: d || "",
48
+ onChange: g,
49
+ autoFocus: !0
50
+ }
51
+ ),
52
+ /* @__PURE__ */ t("div", { className: "flex items-center justify-between", children: [
53
+ /* @__PURE__ */ t(
54
+ p,
55
+ {
56
+ variant: "destructive",
57
+ size: "sm",
58
+ onClick: j,
59
+ className: "text-xs",
60
+ title: "Ripristina il valore originale e segna la cella come da ripristinare",
61
+ children: [
62
+ /* @__PURE__ */ e(h, { name: "RotateCcw", className: "mr-1 h-3 w-3" }),
63
+ "Ripristina"
64
+ ]
65
+ }
66
+ ),
67
+ /* @__PURE__ */ t("div", { className: "flex space-x-2", children: [
68
+ /* @__PURE__ */ e(
69
+ p,
70
+ {
71
+ variant: "ghost",
72
+ size: "sm",
73
+ onClick: b,
74
+ className: "text-xs",
75
+ title: "Annulla le modifiche correnti e chiudi",
76
+ children: "Annulla"
77
+ }
78
+ ),
79
+ /* @__PURE__ */ t(
80
+ p,
81
+ {
82
+ size: "sm",
83
+ onClick: w,
84
+ className: "text-xs",
85
+ title: "Conferma le modifiche e salva",
86
+ children: [
87
+ /* @__PURE__ */ e(h, { name: "Check", className: "mr-1 h-3 w-3" }),
88
+ "Conferma"
89
+ ]
90
+ }
91
+ )
92
+ ] })
93
+ ] })
94
+ ] }) })
95
+ ] });
96
+ }
97
+ );
98
+ export {
99
+ E as EditableInput
100
+ };