@deepnoid/ui 0.1.92 → 0.1.93

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 (82) hide show
  1. package/.turbo/turbo-build.log +158 -158
  2. package/dist/{chunk-D6OJWEZM.mjs → chunk-4HCQMYHI.mjs} +1 -1
  3. package/dist/{chunk-RE2WH26E.mjs → chunk-AJUOSLYC.mjs} +1 -1
  4. package/dist/{chunk-Q3JMHIW5.mjs → chunk-APKDCFD4.mjs} +1 -1
  5. package/dist/{chunk-LMHSWLH2.mjs → chunk-CTEQVIV4.mjs} +4 -4
  6. package/dist/{chunk-FB6LBMGN.mjs → chunk-FCKMEDUD.mjs} +3 -3
  7. package/dist/{chunk-ZFKQOPMK.mjs → chunk-LYAPVC26.mjs} +62 -61
  8. package/dist/{chunk-5IKVOP4M.mjs → chunk-V57ADP5P.mjs} +1 -1
  9. package/dist/{chunk-D3HZG3CH.mjs → chunk-XK4JSX7G.mjs} +1 -1
  10. package/dist/components/accordion/index.mjs +3 -3
  11. package/dist/components/backdrop/backdrop.mjs +2 -2
  12. package/dist/components/backdrop/index.mjs +2 -2
  13. package/dist/components/breadcrumb/breadcrumb.mjs +4 -4
  14. package/dist/components/breadcrumb/index.mjs +4 -4
  15. package/dist/components/button/button.mjs +1 -1
  16. package/dist/components/button/icon-button.mjs +1 -1
  17. package/dist/components/button/index.mjs +3 -3
  18. package/dist/components/button/text-button.mjs +2 -2
  19. package/dist/components/checkbox/checkbox.mjs +2 -2
  20. package/dist/components/checkbox/index.mjs +2 -2
  21. package/dist/components/chip/chip.mjs +1 -1
  22. package/dist/components/chip/index.mjs +1 -1
  23. package/dist/components/dateTimePicker/calendar.mjs +1 -1
  24. package/dist/components/dateTimePicker/dateTimePicker.mjs +4 -4
  25. package/dist/components/dateTimePicker/index.mjs +4 -4
  26. package/dist/components/dateTimePicker/timePicker.mjs +3 -3
  27. package/dist/components/drawer/drawer.mjs +2 -2
  28. package/dist/components/drawer/index.mjs +2 -2
  29. package/dist/components/fileUpload/fileUpload.mjs +5 -5
  30. package/dist/components/fileUpload/index.mjs +5 -5
  31. package/dist/components/input/index.mjs +3 -3
  32. package/dist/components/input/input.mjs +3 -3
  33. package/dist/components/list/index.mjs +4 -4
  34. package/dist/components/list/listItem.mjs +2 -2
  35. package/dist/components/modal/index.mjs +5 -5
  36. package/dist/components/modal/modal.mjs +5 -5
  37. package/dist/components/pagination/index.mjs +4 -4
  38. package/dist/components/pagination/pagination.mjs +4 -4
  39. package/dist/components/progress/index.mjs +2 -2
  40. package/dist/components/progress/progress.mjs +2 -2
  41. package/dist/components/radio/index.mjs +2 -2
  42. package/dist/components/radio/radio.mjs +2 -2
  43. package/dist/components/select/index.mjs +3 -3
  44. package/dist/components/select/select.mjs +3 -3
  45. package/dist/components/table/definition-table.mjs +2 -2
  46. package/dist/components/table/index.js +57 -56
  47. package/dist/components/table/index.mjs +7 -7
  48. package/dist/components/table/table-body.d.mts +2 -1
  49. package/dist/components/table/table-body.d.ts +2 -1
  50. package/dist/components/table/table-body.js +57 -56
  51. package/dist/components/table/table-body.mjs +6 -6
  52. package/dist/components/table/table-head.d.mts +2 -2
  53. package/dist/components/table/table-head.d.ts +2 -2
  54. package/dist/components/table/table-head.js +57 -56
  55. package/dist/components/table/table-head.mjs +6 -6
  56. package/dist/components/table/table.d.mts +16 -0
  57. package/dist/components/table/table.d.ts +16 -0
  58. package/dist/components/table/table.js +57 -56
  59. package/dist/components/table/table.mjs +6 -6
  60. package/dist/components/textarea/index.mjs +2 -2
  61. package/dist/components/textarea/textarea.mjs +2 -2
  62. package/dist/components/toast/index.mjs +4 -4
  63. package/dist/components/toast/toast.mjs +3 -3
  64. package/dist/components/toast/use-toast.mjs +4 -4
  65. package/dist/components/tree/index.mjs +2 -2
  66. package/dist/components/tree/tree.mjs +2 -2
  67. package/dist/index.js +57 -56
  68. package/dist/index.mjs +38 -38
  69. package/package.json +1 -1
  70. package/dist/{chunk-5FFTHFBX.mjs → chunk-2KS64V6J.mjs} +3 -3
  71. package/dist/{chunk-XZ5DXOJQ.mjs → chunk-36SVU53P.mjs} +3 -3
  72. package/dist/{chunk-6Q2BXHJL.mjs → chunk-4EIGHKUO.mjs} +3 -3
  73. package/dist/{chunk-GH4EPD35.mjs → chunk-BJMVYWOZ.mjs} +3 -3
  74. package/dist/{chunk-MPZKOT6P.mjs → chunk-CZKOYVZM.mjs} +3 -3
  75. package/dist/{chunk-MVL7HJSH.mjs → chunk-I4NXNQWS.mjs} +3 -3
  76. package/dist/{chunk-JBSV7GCL.mjs → chunk-JF7JH3YN.mjs} +3 -3
  77. package/dist/{chunk-4BJPJ54Q.mjs → chunk-JI3IYCXH.mjs} +3 -3
  78. package/dist/{chunk-3M6VYLOU.mjs → chunk-KY3W7MBV.mjs} +3 -3
  79. package/dist/{chunk-Y5QV7T6D.mjs → chunk-MUNZ6PTR.mjs} +3 -3
  80. package/dist/{chunk-S7Y7XUBL.mjs → chunk-NO6RDCY7.mjs} +3 -3
  81. package/dist/{chunk-AF4I7ZQS.mjs → chunk-NUELPELQ.mjs} +3 -3
  82. package/dist/{chunk-I3ORSDFO.mjs → chunk-O54WOM66.mjs} +3 -3
@@ -695,15 +695,11 @@ var TableHead = ({
695
695
  color,
696
696
  size,
697
697
  rowCheckbox = false,
698
- isCheckedAll,
698
+ hasCheckedRows,
699
699
  isLoading = false,
700
700
  classNames,
701
701
  onCheckAll
702
702
  }) => {
703
- const handleClickCheckAll = (e) => {
704
- e.preventDefault();
705
- onCheckAll(!isCheckedAll);
706
- };
707
703
  const renderTh = (content, key, column, isCheckbox) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
708
704
  "th",
709
705
  {
@@ -729,11 +725,11 @@ var TableHead = ({
729
725
  const renderContentRow = () => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("thead", { className: slots.thead({ class: classNames == null ? void 0 : classNames.thead }), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("tr", { className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }), children: [
730
726
  columns.map((column, idx) => renderTh(column.headerName, `${column.field}-${idx}`, column)),
731
727
  rowCheckbox && renderTh(
732
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "flex items-center justify-center", onClick: handleClickCheckAll, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
728
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { "data-checkbox": true, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
733
729
  checkbox_default,
734
730
  {
735
731
  size,
736
- checked: isCheckedAll,
732
+ checked: hasCheckedRows,
737
733
  onChange: (e) => onCheckAll(e.target.checked)
738
734
  }
739
735
  ) }),
@@ -757,6 +753,7 @@ var TableBody = ({
757
753
  rowCheckbox = false,
758
754
  checkedRows,
759
755
  onCheckRow,
756
+ onRowClick,
760
757
  isLoading = false,
761
758
  emptyContent,
762
759
  skeletonRow,
@@ -765,67 +762,54 @@ var TableBody = ({
765
762
  }) => {
766
763
  const renderTdSkeleton = (key, column) => {
767
764
  const isCheckbox = key.includes("checkbox");
768
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
769
- "td",
770
- {
771
- className: slots.td({ class: classNames == null ? void 0 : classNames.td }),
772
- style: isCheckbox ? {
773
- width: "40px",
774
- minWidth: "40px",
775
- maxWidth: "40px",
776
- flexShrink: 0,
777
- flexGrow: 0,
778
- boxSizing: "border-box"
779
- } : column ? getCellStyle(column) : void 0,
780
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(skeleton_default, { color, className: "h-full w-full", rounded: "lg", speed: "fast" })
781
- },
782
- key
783
- );
765
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("td", { className: slots.td({ class: classNames == null ? void 0 : classNames.td }), style: column ? getCellStyle(column) : {}, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(skeleton_default, { color, className: "h-full w-full", rounded: "lg", speed: "fast" }) }, key);
784
766
  };
785
767
  const renderCheckboxCell = (rowId) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
786
768
  "td",
787
769
  {
788
770
  className: clsx(slots.td({ class: classNames == null ? void 0 : classNames.td }), "text-center"),
789
- style: {
790
- width: "40px",
791
- minWidth: "40px",
792
- maxWidth: "40px",
793
- flexShrink: 0,
794
- flexGrow: 0,
795
- boxSizing: "border-box"
796
- },
797
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(checkbox_default, { size, checked: checkedRows.has(rowId), onChange: (e) => onCheckRow(rowId, e.target.checked) })
798
- }
771
+ style: { width: "40px", minWidth: "40px", textAlign: "center" },
772
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { "data-checkbox": true, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(checkbox_default, { size, checked: checkedRows.has(rowId), onChange: (e) => onCheckRow(rowId, e.target.checked) }) })
773
+ },
774
+ `checkbox-${rowId}`
799
775
  );
800
776
  const renderSkeletonRow = (rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("tr", { className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }), children: [
801
777
  columns.map((column, colIdx) => renderTdSkeleton(`skeleton-${rowIndex}-${colIdx}`, column)),
802
778
  rowCheckbox && renderTdSkeleton(`skeleton-checkbox-${rowIndex}`)
803
779
  ] }, `skeleton-${rowIndex}`);
804
780
  const renderEmptyRow = () => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("tr", { className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }), children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("td", { colSpan: columns.length + (rowCheckbox ? 1 : 0), className: slots.empty({ class: classNames == null ? void 0 : classNames.empty }), children: emptyContent }) });
805
- const renderDataRow = (row, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("tr", { className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }), children: [
806
- columns.map((column, colIdx) => {
807
- var _a;
808
- const value = row[column.field];
809
- const formattedValue = ((_a = column.valueFormatter) == null ? void 0 : _a.call(column, { value, field: column.field })) || value;
810
- const content = column.renderCell ? column.renderCell({ id: row.id, field: column.field, value, formattedValue, row }) : formattedValue;
811
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
812
- "td",
813
- {
814
- className: clsx(slots.td({ class: classNames == null ? void 0 : classNames.td }), column.className),
815
- style: getCellStyle(column),
816
- children: content
817
- },
818
- `${rowIndex}-${colIdx}`
819
- );
820
- }),
821
- rowCheckbox && renderCheckboxCell(row.id)
822
- ] }, rowIndex);
781
+ const renderDataRow = (row, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
782
+ "tr",
783
+ {
784
+ className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }),
785
+ onClick: typeof onRowClick === "function" ? (event) => onRowClick(row, rowIndex, event) : void 0,
786
+ children: [
787
+ columns.map((column, colIdx) => {
788
+ var _a;
789
+ const value = row[column.field];
790
+ const formattedValue = ((_a = column.valueFormatter) == null ? void 0 : _a.call(column, { value, field: column.field })) || value;
791
+ const content = column.renderCell ? column.renderCell({ id: row.id, field: column.field, value, formattedValue, row }) : formattedValue;
792
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
793
+ "td",
794
+ {
795
+ className: clsx(slots.td(), classNames == null ? void 0 : classNames.td, column.className),
796
+ style: getCellStyle(column),
797
+ children: content
798
+ },
799
+ `${row.id}-${column.field}-${colIdx}`
800
+ );
801
+ }),
802
+ rowCheckbox && renderCheckboxCell(row.id)
803
+ ]
804
+ },
805
+ row.id
806
+ );
823
807
  const renderRows = () => {
824
808
  if (isLoading) return skeletonRow ? Array.from({ length: skeletonRow }, (_, idx) => renderSkeletonRow(idx)) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, {});
825
809
  if (!rows.length && emptyContent) return renderEmptyRow();
826
810
  return rows.map((row, index) => renderDataRow(row, index));
827
811
  };
828
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("tbody", { className: `${slots.tbody({ class: classNames == null ? void 0 : classNames.tbody })} ${className || ""}`, children: renderRows() });
812
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("tbody", { className: clsx(slots.tbody({ class: classNames == null ? void 0 : classNames.tbody }), className), children: renderRows() });
829
813
  };
830
814
  var table_body_default = TableBody;
831
815
 
@@ -6172,7 +6156,8 @@ var Table = (0, import_react5.forwardRef)((originalProps, ref) => {
6172
6156
  color,
6173
6157
  size,
6174
6158
  skeletonRow,
6175
- onCheckedRowsChange
6159
+ onCheckedRowsChange,
6160
+ onRowClick
6176
6161
  } = { ...props, ...variantProps };
6177
6162
  const { page = 1, perPage = 15 } = pagination || {};
6178
6163
  const showPagination = pagination && totalData > 0 && !isLoading;
@@ -6216,8 +6201,18 @@ var Table = (0, import_react5.forwardRef)((originalProps, ref) => {
6216
6201
  return updated;
6217
6202
  });
6218
6203
  };
6204
+ const handleRowClick = (row, index, event) => {
6205
+ const target = event.target;
6206
+ if (target.closest('input[type="checkbox"]') || target.closest("[data-checkbox]")) {
6207
+ return;
6208
+ }
6209
+ onRowClick == null ? void 0 : onRowClick(row, index, event);
6210
+ };
6219
6211
  const getCheckedRowData = (checked) => rows.filter((row) => checked.has(row.id));
6220
- const slots = (0, import_react5.useMemo)(() => tableStyle(variantProps), [variantProps]);
6212
+ const slots = (0, import_react5.useMemo)(
6213
+ () => tableStyle({ ...variantProps, rowClickable: typeof onRowClick === "function" }),
6214
+ [variantProps, onRowClick]
6215
+ );
6221
6216
  return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { "data-table": "base", className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
6222
6217
  /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(scrollArea_default, { direction: "x", size: size === "xl" ? "lg" : size, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
6223
6218
  "table",
@@ -6236,7 +6231,7 @@ var Table = (0, import_react5.forwardRef)((originalProps, ref) => {
6236
6231
  size,
6237
6232
  color,
6238
6233
  rowCheckbox,
6239
- isCheckedAll: checkedRows.size === rows.length && rows.length > 0,
6234
+ hasCheckedRows: checkedRows.size > 0,
6240
6235
  onCheckAll: handleAllRowCheck,
6241
6236
  isLoading,
6242
6237
  classNames,
@@ -6254,8 +6249,9 @@ var Table = (0, import_react5.forwardRef)((originalProps, ref) => {
6254
6249
  rowCheckbox,
6255
6250
  checkedRows,
6256
6251
  onCheckRow: handleRowCheck,
6257
- emptyContent,
6252
+ onRowClick: handleRowClick,
6258
6253
  isLoading,
6254
+ emptyContent,
6259
6255
  skeletonRow,
6260
6256
  className: clsx(
6261
6257
  "transition-all duration-150 ease-out",
@@ -6365,6 +6361,11 @@ var tableStyle = (0, import_tailwind_variants7.tv)({
6365
6361
  height: {
6366
6362
  narrow: {},
6367
6363
  wide: {}
6364
+ },
6365
+ rowClickable: {
6366
+ true: {
6367
+ tr: ["cursor-pointer"]
6368
+ }
6368
6369
  }
6369
6370
  },
6370
6371
  compoundVariants: [
@@ -2,24 +2,24 @@
2
2
  import {
3
3
  getCellStyle,
4
4
  table_default
5
- } from "../../chunk-ZFKQOPMK.mjs";
5
+ } from "../../chunk-LYAPVC26.mjs";
6
6
  import "../../chunk-MZ76AA76.mjs";
7
7
  import "../../chunk-6PN3DGOE.mjs";
8
8
  import "../../chunk-DQRAFUDA.mjs";
9
9
  import "../../chunk-M37VBNB3.mjs";
10
10
  import "../../chunk-7B7LRG5J.mjs";
11
- import "../../chunk-LMHSWLH2.mjs";
11
+ import "../../chunk-CTEQVIV4.mjs";
12
12
  import "../../chunk-F3HENRVM.mjs";
13
13
  import "../../chunk-2GCSFWHD.mjs";
14
- import "../../chunk-MVL7HJSH.mjs";
14
+ import "../../chunk-I4NXNQWS.mjs";
15
15
  import "../../chunk-QZ3LVYJW.mjs";
16
- import "../../chunk-XZ5DXOJQ.mjs";
16
+ import "../../chunk-36SVU53P.mjs";
17
17
  import "../../chunk-ZYIIXWVY.mjs";
18
18
  import "../../chunk-JP4TEWP7.mjs";
19
- import "../../chunk-E3G5QXSH.mjs";
19
+ import "../../chunk-27Y6K5NK.mjs";
20
20
  import "../../chunk-RRONV7YA.mjs";
21
+ import "../../chunk-E3G5QXSH.mjs";
21
22
  import "../../chunk-CDXBML6O.mjs";
22
- import "../../chunk-27Y6K5NK.mjs";
23
23
  import "../../chunk-AC6TWLRT.mjs";
24
24
  export {
25
25
  table_default as default,
@@ -2,9 +2,9 @@
2
2
  import "../../chunk-RRAZM5D3.mjs";
3
3
  import {
4
4
  textarea_default
5
- } from "../../chunk-6Q2BXHJL.mjs";
6
- import "../../chunk-E3G5QXSH.mjs";
5
+ } from "../../chunk-4EIGHKUO.mjs";
7
6
  import "../../chunk-27Y6K5NK.mjs";
7
+ import "../../chunk-E3G5QXSH.mjs";
8
8
  import "../../chunk-AC6TWLRT.mjs";
9
9
  export {
10
10
  textarea_default as Textarea
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import {
3
3
  textarea_default
4
- } from "../../chunk-6Q2BXHJL.mjs";
5
- import "../../chunk-E3G5QXSH.mjs";
4
+ } from "../../chunk-4EIGHKUO.mjs";
6
5
  import "../../chunk-27Y6K5NK.mjs";
6
+ import "../../chunk-E3G5QXSH.mjs";
7
7
  import "../../chunk-AC6TWLRT.mjs";
8
8
  export {
9
9
  textarea_default as default
@@ -3,17 +3,17 @@ import "../../chunk-LUWGOKLG.mjs";
3
3
  import {
4
4
  ToastProvider,
5
5
  useToast
6
- } from "../../chunk-D3HZG3CH.mjs";
6
+ } from "../../chunk-XK4JSX7G.mjs";
7
7
  import "../../chunk-ZOTHPHXA.mjs";
8
8
  import {
9
9
  toast_default
10
- } from "../../chunk-4BJPJ54Q.mjs";
10
+ } from "../../chunk-JI3IYCXH.mjs";
11
11
  import "../../chunk-ZYIIXWVY.mjs";
12
12
  import "../../chunk-JP4TEWP7.mjs";
13
- import "../../chunk-E3G5QXSH.mjs";
13
+ import "../../chunk-27Y6K5NK.mjs";
14
14
  import "../../chunk-RRONV7YA.mjs";
15
+ import "../../chunk-E3G5QXSH.mjs";
15
16
  import "../../chunk-CDXBML6O.mjs";
16
- import "../../chunk-27Y6K5NK.mjs";
17
17
  import "../../chunk-AC6TWLRT.mjs";
18
18
  export {
19
19
  toast_default as Toast,
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import {
3
3
  toast_default
4
- } from "../../chunk-4BJPJ54Q.mjs";
4
+ } from "../../chunk-JI3IYCXH.mjs";
5
5
  import "../../chunk-ZYIIXWVY.mjs";
6
6
  import "../../chunk-JP4TEWP7.mjs";
7
- import "../../chunk-E3G5QXSH.mjs";
7
+ import "../../chunk-27Y6K5NK.mjs";
8
8
  import "../../chunk-RRONV7YA.mjs";
9
+ import "../../chunk-E3G5QXSH.mjs";
9
10
  import "../../chunk-CDXBML6O.mjs";
10
- import "../../chunk-27Y6K5NK.mjs";
11
11
  import "../../chunk-AC6TWLRT.mjs";
12
12
  export {
13
13
  toast_default as default
@@ -2,15 +2,15 @@
2
2
  import {
3
3
  ToastProvider,
4
4
  useToast
5
- } from "../../chunk-D3HZG3CH.mjs";
5
+ } from "../../chunk-XK4JSX7G.mjs";
6
6
  import "../../chunk-ZOTHPHXA.mjs";
7
- import "../../chunk-4BJPJ54Q.mjs";
7
+ import "../../chunk-JI3IYCXH.mjs";
8
8
  import "../../chunk-ZYIIXWVY.mjs";
9
9
  import "../../chunk-JP4TEWP7.mjs";
10
- import "../../chunk-E3G5QXSH.mjs";
10
+ import "../../chunk-27Y6K5NK.mjs";
11
11
  import "../../chunk-RRONV7YA.mjs";
12
+ import "../../chunk-E3G5QXSH.mjs";
12
13
  import "../../chunk-CDXBML6O.mjs";
13
- import "../../chunk-27Y6K5NK.mjs";
14
14
  import "../../chunk-AC6TWLRT.mjs";
15
15
  export {
16
16
  ToastProvider,
@@ -2,12 +2,12 @@
2
2
  import "../../chunk-MBLZYQCN.mjs";
3
3
  import {
4
4
  tree_default
5
- } from "../../chunk-Y5QV7T6D.mjs";
5
+ } from "../../chunk-MUNZ6PTR.mjs";
6
6
  import "../../chunk-ZYIIXWVY.mjs";
7
7
  import "../../chunk-JP4TEWP7.mjs";
8
+ import "../../chunk-27Y6K5NK.mjs";
8
9
  import "../../chunk-RRONV7YA.mjs";
9
10
  import "../../chunk-CDXBML6O.mjs";
10
- import "../../chunk-27Y6K5NK.mjs";
11
11
  import "../../chunk-AC6TWLRT.mjs";
12
12
  export {
13
13
  tree_default as Tree
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  Tree,
4
4
  tree_default
5
- } from "../../chunk-Y5QV7T6D.mjs";
5
+ } from "../../chunk-MUNZ6PTR.mjs";
6
6
  import "../../chunk-ZYIIXWVY.mjs";
7
7
  import "../../chunk-JP4TEWP7.mjs";
8
+ import "../../chunk-27Y6K5NK.mjs";
8
9
  import "../../chunk-RRONV7YA.mjs";
9
10
  import "../../chunk-CDXBML6O.mjs";
10
- import "../../chunk-27Y6K5NK.mjs";
11
11
  import "../../chunk-AC6TWLRT.mjs";
12
12
  export {
13
13
  Tree,
package/dist/index.js CHANGED
@@ -8034,15 +8034,11 @@ var TableHead = ({
8034
8034
  color,
8035
8035
  size,
8036
8036
  rowCheckbox = false,
8037
- isCheckedAll,
8037
+ hasCheckedRows,
8038
8038
  isLoading = false,
8039
8039
  classNames,
8040
8040
  onCheckAll
8041
8041
  }) => {
8042
- const handleClickCheckAll = (e) => {
8043
- e.preventDefault();
8044
- onCheckAll(!isCheckedAll);
8045
- };
8046
8042
  const renderTh = (content, key, column, isCheckbox) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
8047
8043
  "th",
8048
8044
  {
@@ -8068,11 +8064,11 @@ var TableHead = ({
8068
8064
  const renderContentRow = () => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("thead", { className: slots.thead({ class: classNames == null ? void 0 : classNames.thead }), children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("tr", { className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }), children: [
8069
8065
  columns.map((column, idx) => renderTh(column.headerName, `${column.field}-${idx}`, column)),
8070
8066
  rowCheckbox && renderTh(
8071
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "flex items-center justify-center", onClick: handleClickCheckAll, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
8067
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { "data-checkbox": true, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
8072
8068
  checkbox_default,
8073
8069
  {
8074
8070
  size,
8075
- checked: isCheckedAll,
8071
+ checked: hasCheckedRows,
8076
8072
  onChange: (e) => onCheckAll(e.target.checked)
8077
8073
  }
8078
8074
  ) }),
@@ -8096,6 +8092,7 @@ var TableBody = ({
8096
8092
  rowCheckbox = false,
8097
8093
  checkedRows,
8098
8094
  onCheckRow,
8095
+ onRowClick,
8099
8096
  isLoading = false,
8100
8097
  emptyContent,
8101
8098
  skeletonRow,
@@ -8104,67 +8101,54 @@ var TableBody = ({
8104
8101
  }) => {
8105
8102
  const renderTdSkeleton = (key, column) => {
8106
8103
  const isCheckbox = key.includes("checkbox");
8107
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
8108
- "td",
8109
- {
8110
- className: slots.td({ class: classNames == null ? void 0 : classNames.td }),
8111
- style: isCheckbox ? {
8112
- width: "40px",
8113
- minWidth: "40px",
8114
- maxWidth: "40px",
8115
- flexShrink: 0,
8116
- flexGrow: 0,
8117
- boxSizing: "border-box"
8118
- } : column ? getCellStyle(column) : void 0,
8119
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(skeleton_default, { color, className: "h-full w-full", rounded: "lg", speed: "fast" })
8120
- },
8121
- key
8122
- );
8104
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("td", { className: slots.td({ class: classNames == null ? void 0 : classNames.td }), style: column ? getCellStyle(column) : {}, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(skeleton_default, { color, className: "h-full w-full", rounded: "lg", speed: "fast" }) }, key);
8123
8105
  };
8124
8106
  const renderCheckboxCell = (rowId) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
8125
8107
  "td",
8126
8108
  {
8127
8109
  className: clsx(slots.td({ class: classNames == null ? void 0 : classNames.td }), "text-center"),
8128
- style: {
8129
- width: "40px",
8130
- minWidth: "40px",
8131
- maxWidth: "40px",
8132
- flexShrink: 0,
8133
- flexGrow: 0,
8134
- boxSizing: "border-box"
8135
- },
8136
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(checkbox_default, { size, checked: checkedRows.has(rowId), onChange: (e) => onCheckRow(rowId, e.target.checked) })
8137
- }
8110
+ style: { width: "40px", minWidth: "40px", textAlign: "center" },
8111
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { "data-checkbox": true, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(checkbox_default, { size, checked: checkedRows.has(rowId), onChange: (e) => onCheckRow(rowId, e.target.checked) }) })
8112
+ },
8113
+ `checkbox-${rowId}`
8138
8114
  );
8139
8115
  const renderSkeletonRow = (rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("tr", { className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }), children: [
8140
8116
  columns.map((column, colIdx) => renderTdSkeleton(`skeleton-${rowIndex}-${colIdx}`, column)),
8141
8117
  rowCheckbox && renderTdSkeleton(`skeleton-checkbox-${rowIndex}`)
8142
8118
  ] }, `skeleton-${rowIndex}`);
8143
8119
  const renderEmptyRow = () => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("tr", { className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }), children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("td", { colSpan: columns.length + (rowCheckbox ? 1 : 0), className: slots.empty({ class: classNames == null ? void 0 : classNames.empty }), children: emptyContent }) });
8144
- const renderDataRow = (row, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("tr", { className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }), children: [
8145
- columns.map((column, colIdx) => {
8146
- var _a;
8147
- const value = row[column.field];
8148
- const formattedValue = ((_a = column.valueFormatter) == null ? void 0 : _a.call(column, { value, field: column.field })) || value;
8149
- const content = column.renderCell ? column.renderCell({ id: row.id, field: column.field, value, formattedValue, row }) : formattedValue;
8150
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
8151
- "td",
8152
- {
8153
- className: clsx(slots.td({ class: classNames == null ? void 0 : classNames.td }), column.className),
8154
- style: getCellStyle(column),
8155
- children: content
8156
- },
8157
- `${rowIndex}-${colIdx}`
8158
- );
8159
- }),
8160
- rowCheckbox && renderCheckboxCell(row.id)
8161
- ] }, rowIndex);
8120
+ const renderDataRow = (row, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
8121
+ "tr",
8122
+ {
8123
+ className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }),
8124
+ onClick: typeof onRowClick === "function" ? (event) => onRowClick(row, rowIndex, event) : void 0,
8125
+ children: [
8126
+ columns.map((column, colIdx) => {
8127
+ var _a;
8128
+ const value = row[column.field];
8129
+ const formattedValue = ((_a = column.valueFormatter) == null ? void 0 : _a.call(column, { value, field: column.field })) || value;
8130
+ const content = column.renderCell ? column.renderCell({ id: row.id, field: column.field, value, formattedValue, row }) : formattedValue;
8131
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
8132
+ "td",
8133
+ {
8134
+ className: clsx(slots.td(), classNames == null ? void 0 : classNames.td, column.className),
8135
+ style: getCellStyle(column),
8136
+ children: content
8137
+ },
8138
+ `${row.id}-${column.field}-${colIdx}`
8139
+ );
8140
+ }),
8141
+ rowCheckbox && renderCheckboxCell(row.id)
8142
+ ]
8143
+ },
8144
+ row.id
8145
+ );
8162
8146
  const renderRows = () => {
8163
8147
  if (isLoading) return skeletonRow ? Array.from({ length: skeletonRow }, (_, idx) => renderSkeletonRow(idx)) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_jsx_runtime19.Fragment, {});
8164
8148
  if (!rows.length && emptyContent) return renderEmptyRow();
8165
8149
  return rows.map((row, index) => renderDataRow(row, index));
8166
8150
  };
8167
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("tbody", { className: `${slots.tbody({ class: classNames == null ? void 0 : classNames.tbody })} ${className || ""}`, children: renderRows() });
8151
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("tbody", { className: clsx(slots.tbody({ class: classNames == null ? void 0 : classNames.tbody }), className), children: renderRows() });
8168
8152
  };
8169
8153
  var table_body_default = TableBody;
8170
8154
 
@@ -8508,7 +8492,8 @@ var Table = (0, import_react17.forwardRef)((originalProps, ref) => {
8508
8492
  color,
8509
8493
  size,
8510
8494
  skeletonRow,
8511
- onCheckedRowsChange
8495
+ onCheckedRowsChange,
8496
+ onRowClick
8512
8497
  } = { ...props, ...variantProps };
8513
8498
  const { page = 1, perPage = 15 } = pagination || {};
8514
8499
  const showPagination = pagination && totalData > 0 && !isLoading;
@@ -8552,8 +8537,18 @@ var Table = (0, import_react17.forwardRef)((originalProps, ref) => {
8552
8537
  return updated;
8553
8538
  });
8554
8539
  };
8540
+ const handleRowClick = (row, index, event) => {
8541
+ const target = event.target;
8542
+ if (target.closest('input[type="checkbox"]') || target.closest("[data-checkbox]")) {
8543
+ return;
8544
+ }
8545
+ onRowClick == null ? void 0 : onRowClick(row, index, event);
8546
+ };
8555
8547
  const getCheckedRowData = (checked) => rows.filter((row) => checked.has(row.id));
8556
- const slots = (0, import_react17.useMemo)(() => tableStyle(variantProps), [variantProps]);
8548
+ const slots = (0, import_react17.useMemo)(
8549
+ () => tableStyle({ ...variantProps, rowClickable: typeof onRowClick === "function" }),
8550
+ [variantProps, onRowClick]
8551
+ );
8557
8552
  return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { "data-table": "base", className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
8558
8553
  /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(scrollArea_default, { direction: "x", size: size === "xl" ? "lg" : size, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
8559
8554
  "table",
@@ -8572,7 +8567,7 @@ var Table = (0, import_react17.forwardRef)((originalProps, ref) => {
8572
8567
  size,
8573
8568
  color,
8574
8569
  rowCheckbox,
8575
- isCheckedAll: checkedRows.size === rows.length && rows.length > 0,
8570
+ hasCheckedRows: checkedRows.size > 0,
8576
8571
  onCheckAll: handleAllRowCheck,
8577
8572
  isLoading,
8578
8573
  classNames,
@@ -8590,8 +8585,9 @@ var Table = (0, import_react17.forwardRef)((originalProps, ref) => {
8590
8585
  rowCheckbox,
8591
8586
  checkedRows,
8592
8587
  onCheckRow: handleRowCheck,
8593
- emptyContent,
8588
+ onRowClick: handleRowClick,
8594
8589
  isLoading,
8590
+ emptyContent,
8595
8591
  skeletonRow,
8596
8592
  className: clsx(
8597
8593
  "transition-all duration-150 ease-out",
@@ -8701,6 +8697,11 @@ var tableStyle = (0, import_tailwind_variants18.tv)({
8701
8697
  height: {
8702
8698
  narrow: {},
8703
8699
  wide: {}
8700
+ },
8701
+ rowClickable: {
8702
+ true: {
8703
+ tr: ["cursor-pointer"]
8704
+ }
8704
8705
  }
8705
8706
  },
8706
8707
  compoundVariants: [