laif-ds 0.1.34 → 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 (84) 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/data-table.js +10 -10
  13. package/dist/components/ui/gantt/components/Chart/Chart.js +1 -1
  14. package/dist/components/ui/message-input.js +1 -1
  15. package/dist/components/ui/tables/data-cross-table/data-cross-table.js +348 -0
  16. package/dist/components/ui/tables/data-cross-table/edit-controls.js +47 -0
  17. package/dist/components/ui/tables/data-cross-table/editable-input.js +100 -0
  18. package/dist/components/ui/tables/data-cross-table/truncated-text.js +19 -0
  19. package/dist/index.d.ts +29 -3
  20. package/dist/index.js +1 -1
  21. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +126 -122
  22. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +10 -6
  23. package/dist/node_modules/@radix-ui/react-accordion/dist/index.js +44 -42
  24. package/dist/node_modules/@radix-ui/react-avatar/dist/index.js +33 -43
  25. package/dist/node_modules/@radix-ui/react-checkbox/dist/index.js +237 -120
  26. package/dist/node_modules/@radix-ui/react-collapsible/dist/index.js +17 -16
  27. package/dist/node_modules/@radix-ui/react-context-menu/dist/index.js +95 -94
  28. package/dist/node_modules/@radix-ui/react-dialog/dist/index.js +20 -19
  29. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +3 -3
  30. package/dist/node_modules/@radix-ui/react-hover-card/dist/index.js +14 -13
  31. package/dist/node_modules/@radix-ui/react-menu/dist/index.js +136 -136
  32. package/dist/node_modules/@radix-ui/react-menubar/dist/index.js +70 -68
  33. package/dist/node_modules/@radix-ui/react-navigation-menu/dist/index.js +66 -64
  34. package/dist/node_modules/@radix-ui/react-popover/dist/index.js +10 -9
  35. package/dist/node_modules/@radix-ui/react-presence/dist/index.js +16 -16
  36. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +11 -10
  37. package/dist/node_modules/@radix-ui/react-radio-group/dist/index.js +161 -146
  38. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js +87 -84
  39. package/dist/node_modules/@radix-ui/react-select/dist/index.js +269 -257
  40. package/dist/node_modules/@radix-ui/react-slider/dist/index.js +3 -3
  41. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +29 -28
  42. package/dist/node_modules/@radix-ui/react-switch/dist/index.js +101 -86
  43. package/dist/node_modules/@radix-ui/react-tabs/dist/index.js +23 -22
  44. package/dist/node_modules/@radix-ui/react-toggle/dist/index.js +17 -16
  45. package/dist/node_modules/@radix-ui/react-toggle-group/dist/index.js +25 -23
  46. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.js +77 -76
  47. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +43 -21
  48. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.js +16 -0
  49. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js +18 -18
  50. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index.js +36 -0
  51. package/dist/node_modules/@tanstack/virtual-core/dist/esm/index.js +491 -0
  52. package/dist/node_modules/@tanstack/virtual-core/dist/esm/utils.js +53 -0
  53. package/dist/node_modules/classnames/index.js +1 -1
  54. package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.js +1 -1
  55. package/dist/node_modules/property-information/lib/html.js +9 -9
  56. package/dist/node_modules/react-hook-form/dist/index.esm.js +88 -88
  57. package/dist/node_modules/react-is/index.js +1 -1
  58. package/dist/node_modules/react-resizable-panels/dist/react-resizable-panels.browser.esm.js +830 -801
  59. package/dist/node_modules/recharts/es6/util/ReactUtils.js +1 -1
  60. package/dist/node_modules/remeda/dist/chunk-AIG3BDKO.js +9 -0
  61. package/dist/node_modules/remeda/dist/{chunk-A3PVMI4K.js → chunk-KI5X74E2.js} +1 -1
  62. package/dist/node_modules/style-to-object/cjs/index.js +1 -1
  63. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +3 -3
  64. package/dist/node_modules/unified/lib/index.js +1 -1
  65. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +68 -0
  66. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +56 -0
  67. package/dist/node_modules/use-sync-external-store/shim/index.js +11 -0
  68. package/dist/styles.css +1 -1
  69. package/package.json +2 -1
  70. package/dist/components/ui/data-cross-table.js +0 -216
  71. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-arrow/dist/index.js +0 -25
  72. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-collection/dist/index.js +0 -49
  73. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +0 -128
  74. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-focus-scope/dist/index.js +0 -138
  75. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-menu/dist/index.js +0 -625
  76. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-popper/dist/index.js +0 -221
  77. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-portal/dist/index.js +0 -17
  78. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-primitive/dist/index.js +0 -37
  79. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-roving-focus/dist/index.js +0 -184
  80. package/dist/node_modules/@radix-ui/react-dropdown-menu/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +0 -55
  81. package/dist/node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-collection/dist/index.js +0 -49
  82. package/dist/node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  83. package/dist/node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +0 -55
  84. package/dist/node_modules/remeda/dist/chunk-OAMXQXGR.js +0 -9
@@ -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
+ };
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { jsx as i, jsxs as l } from "react/jsx-runtime";
3
+ import { TooltipProvider as c, Tooltip as d, TooltipTrigger as e, TooltipContent as p } from "../../tooltip.js";
4
+ function s({
5
+ text: r,
6
+ maxLength: n,
7
+ className: o = ""
8
+ }) {
9
+ return !r || ((r == null ? void 0 : r.length) ?? 0) <= n ? /* @__PURE__ */ i("div", { className: o, children: r }) : /* @__PURE__ */ i(c, { children: /* @__PURE__ */ l(d, { children: [
10
+ /* @__PURE__ */ i(e, { asChild: !0, children: /* @__PURE__ */ l("div", { className: `truncate ${o} cursor-pointer`, children: [
11
+ r.substring(0, n),
12
+ "…"
13
+ ] }) }),
14
+ /* @__PURE__ */ i(p, { children: /* @__PURE__ */ i("p", { children: r }) })
15
+ ] }) });
16
+ }
17
+ export {
18
+ s as TruncatedText
19
+ };
package/dist/index.d.ts CHANGED
@@ -490,6 +490,18 @@ export declare function CommandShortcut({ className, ...props }: React_2.Compone
490
490
  declare const confirm_2: (payload: ConfirmOptions) => Promise<boolean>;
491
491
  export { confirm_2 as confirm }
492
492
 
493
+ declare interface ConfirmedCell {
494
+ fromId: string;
495
+ toId: string;
496
+ id?: string;
497
+ value: any;
498
+ }
499
+
500
+ declare interface ConfirmedCellsData {
501
+ editedCells: ConfirmedCell[];
502
+ toDefaultCells: ConfirmedCell[];
503
+ }
504
+
493
505
  export declare const Confirmer: () => JSX.Element;
494
506
 
495
507
  declare interface ConfirmOptions {
@@ -561,12 +573,17 @@ export declare interface CrossTableCell {
561
573
  }
562
574
 
563
575
  declare interface CrossTableData {
564
- headerTop: string[];
565
- headerLeft: string[];
576
+ headerTop: CrossTableHeader[];
577
+ headerLeft: CrossTableHeader[];
566
578
  data: (CrossTableCell | null)[][];
567
579
  }
568
580
 
569
- export declare function DataCrossTable({ crossTableData, filterable, loading, emptyComponent, className, notFoundMessage, cornerHeaderFrom, cornerHeaderTo, maxHeaderLength, minWidthCell, }: DataCrossTableProps): JSX.Element;
581
+ declare interface CrossTableHeader {
582
+ id: string;
583
+ label: string;
584
+ }
585
+
586
+ export declare function DataCrossTable({ crossTableData, filterable, loading, emptyComponent, className, notFoundMessage, cornerHeaderFrom, cornerHeaderTo, maxHeaderLength, minWidthCell, editable, editMode, editConfirmLabel, editCancelLabel, onConfirmedCells, onEditModeChange, onSelectedRow, selectedRow, rowSortAsc, }: DataCrossTableProps): JSX.Element;
570
587
 
571
588
  export declare interface DataCrossTableProps {
572
589
  crossTableData: CrossTableData;
@@ -580,6 +597,15 @@ export declare interface DataCrossTableProps {
580
597
  maxHeaderLength?: number;
581
598
  minWidthCell?: number;
582
599
  showFreezeControls?: boolean;
600
+ editable?: boolean;
601
+ editMode?: boolean;
602
+ editConfirmLabel?: string;
603
+ editCancelLabel?: string;
604
+ onConfirmedCells?: (cells: ConfirmedCellsData) => void;
605
+ onEditModeChange?: (editMode: boolean) => void;
606
+ onSelectedRow?: (row: CrossTableHeader) => void;
607
+ selectedRow?: CrossTableHeader;
608
+ rowSortAsc?: boolean;
583
609
  }
584
610
 
585
611
  export declare enum DataRepeatTypes {
package/dist/index.js CHANGED
@@ -74,7 +74,7 @@ import { AppSidebar as _a } from "./components/ui/app-sidebar.js";
74
74
  import { Confirmer as en, confirm as rn } from "./components/ui/confirmer.js";
75
75
  import { AppSelect as tn } from "./components/ui/app-select.js";
76
76
  import { AppMultipleSelectDropdown as nn } from "./components/ui/app-multiple-select-dropdown.js";
77
- import { DataCrossTable as mn } from "./components/ui/data-cross-table.js";
77
+ import { DataCrossTable as mn } from "./components/ui/tables/data-cross-table/data-cross-table.js";
78
78
  import { useAudioRecording as un } from "./hooks/use-audio-recording.js";
79
79
  import { useAutoScroll as dn } from "./hooks/use-auto-scroll.js";
80
80
  import { useAutosizeTextArea as bn } from "./hooks/use-autosize-textarea.js";