lkd-web-kit 0.10.1 → 0.10.2

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 (34) hide show
  1. package/codex/skills/create-table-component/SKILL.md +9 -7
  2. package/dist/components/MyTable/MyTable.cjs +172 -0
  3. package/dist/components/MyTable/MyTable.d.ts +18 -0
  4. package/dist/components/MyTable/MyTable.d.ts.map +1 -0
  5. package/dist/components/MyTable/MyTable.js +170 -0
  6. package/dist/components/MyTable/index.d.ts +3 -0
  7. package/dist/components/MyTable/index.d.ts.map +1 -0
  8. package/dist/components/TableWrapper/TableWrapper.cjs +13 -0
  9. package/dist/components/TableWrapper/TableWrapper.d.ts +8 -0
  10. package/dist/components/TableWrapper/TableWrapper.d.ts.map +1 -0
  11. package/dist/components/TableWrapper/TableWrapper.js +11 -0
  12. package/dist/components/TableWrapper/TableWrapperFooter.cjs +11 -0
  13. package/dist/components/TableWrapper/TableWrapperFooter.d.ts +5 -0
  14. package/dist/components/TableWrapper/TableWrapperFooter.d.ts.map +1 -0
  15. package/dist/components/TableWrapper/TableWrapperFooter.js +9 -0
  16. package/dist/components/TableWrapper/TableWrapperHeader.cjs +11 -0
  17. package/dist/components/TableWrapper/TableWrapperHeader.d.ts +5 -0
  18. package/dist/components/TableWrapper/TableWrapperHeader.d.ts.map +1 -0
  19. package/dist/components/TableWrapper/TableWrapperHeader.js +9 -0
  20. package/dist/components/TableWrapper/TableWrapperPagination.cjs +31 -0
  21. package/dist/components/TableWrapper/TableWrapperPagination.d.ts +16 -0
  22. package/dist/components/TableWrapper/TableWrapperPagination.d.ts.map +1 -0
  23. package/dist/components/TableWrapper/TableWrapperPagination.js +30 -0
  24. package/dist/components/TableWrapper/TableWrapperTitle.cjs +11 -0
  25. package/dist/components/TableWrapper/TableWrapperTitle.d.ts +5 -0
  26. package/dist/components/TableWrapper/TableWrapperTitle.d.ts.map +1 -0
  27. package/dist/components/TableWrapper/TableWrapperTitle.js +9 -0
  28. package/dist/components/TableWrapper/index.d.ts +11 -0
  29. package/dist/components/TableWrapper/index.d.ts.map +1 -0
  30. package/dist/components/index.d.ts +2 -0
  31. package/dist/components/index.d.ts.map +1 -1
  32. package/dist/index.cjs +12 -0
  33. package/dist/index.js +7 -1
  34. package/package.json +3 -1
@@ -14,9 +14,10 @@ Usar este skill para crear o refactorizar tablas del proyecto.
14
14
  3. Revisar un ejemplo cercano antes de editar; preferir `Table{EntityPlural}.tsx`.
15
15
  4. Crear o mantener la tabla en un componente encapsulado junto a la vista/feature que la consume.
16
16
  5. Usar `createColumnHelper<RowData>()`; no declarar `any`.
17
- 6. Usar `MyTable` para renderizar la tabla.
18
- 7. Usar `TableWrapper` como raiz visual de la tabla.
19
- 8. No usar `MyTablePagination` para nuevas tablas.
17
+ 6. Importar `MyTable` y `TableWrapper*` desde `lkd-web-kit`.
18
+ 7. Usar `MyTable` para renderizar la tabla.
19
+ 8. Usar `TableWrapper` como raiz visual de la tabla.
20
+ 9. No usar `MyTablePagination` para nuevas tablas.
20
21
 
21
22
  ## Checklist antes de escribir columnas
22
23
 
@@ -107,14 +108,15 @@ const columns = [
107
108
  "use client";
108
109
 
109
110
  import { createColumnHelper } from "@tanstack/react-table";
110
- import { useMemo, useState } from "react";
111
- import MyTable from "src/components/ui/MyTable";
112
- import TableWrapper, {
111
+ import {
112
+ MyTable,
113
+ TableWrapper,
113
114
  TableWrapperFooter,
114
115
  TableWrapperHeader,
115
116
  TableWrapperPagination,
116
117
  TableWrapperTitle,
117
- } from "src/components/ui/TableWrapper";
118
+ } from "lkd-web-kit";
119
+ import { useMemo, useState } from "react";
118
120
 
119
121
  type ItemTableData = {
120
122
  id: string;
@@ -0,0 +1,172 @@
1
+ "use client";
2
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
3
+ let _mantine_core = require("@mantine/core");
4
+ let react = require("react");
5
+ let react_jsx_runtime = require("react/jsx-runtime");
6
+ let clsx = require("clsx");
7
+ clsx = require_runtime.__toESM(clsx, 1);
8
+ let _tanstack_react_table = require("@tanstack/react-table");
9
+ //#region src/components/MyTable/MyTable.tsx
10
+ var MyTable = ({ data, columns, highlightOnHover, isLoading, onRowClick, minWidth = 720, emptyMessage = "Sin datos", enableSorting, variant, layout, manualSorting, onSortingChange, sorting, ...props }) => {
11
+ const [theadHeight, setTheadHeight] = (0, react.useState)(0);
12
+ const setTheadRef = (0, react.useCallback)((node) => {
13
+ if (node) setTheadHeight(node.offsetHeight);
14
+ }, []);
15
+ const isSortingEnabled = enableSorting ?? (Boolean(sorting) || Boolean(onSortingChange));
16
+ const table = (0, _tanstack_react_table.useReactTable)({
17
+ data,
18
+ columns,
19
+ enableSorting: isSortingEnabled,
20
+ getCoreRowModel: (0, _tanstack_react_table.getCoreRowModel)(),
21
+ getSortedRowModel: isSortingEnabled && !manualSorting ? (0, _tanstack_react_table.getSortedRowModel)() : void 0,
22
+ manualSorting,
23
+ onSortingChange,
24
+ state: sorting ? { sorting } : void 0
25
+ });
26
+ const rows = table.getRowModel().rows;
27
+ const isVertical = variant === "vertical";
28
+ const headersByColumnId = new Map(table.getFlatHeaders().map((header) => [header.column.id, header]));
29
+ const cellClassName = (0, clsx.default)(onRowClick && "cursor-pointer");
30
+ const renderHeaderContent = (header) => {
31
+ const content = (0, _tanstack_react_table.flexRender)(header.column.columnDef.header, header.getContext());
32
+ if (!isSortingEnabled || !header.column.getCanSort()) return content;
33
+ const sorted = header.column.getIsSorted();
34
+ const sortLabel = sorted === "asc" ? "Orden ascendente" : "Orden descendente";
35
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
36
+ className: "flex items-center gap-1",
37
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
38
+ className: "whitespace-nowrap font-semibold text-grey-9 text-sm",
39
+ onClick: header.column.getToggleSortingHandler(),
40
+ type: "button",
41
+ children: content
42
+ }), sorted ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Tooltip, {
43
+ label: sortLabel,
44
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.ActionIcon, {
45
+ "aria-label": sortLabel,
46
+ onClick: header.column.getToggleSortingHandler(),
47
+ size: "sm",
48
+ variant: "subtle",
49
+ children: sorted === "asc" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconOrderAscending, {
50
+ "aria-hidden": "true",
51
+ className: "size-4"
52
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconOrderDescending, {
53
+ "aria-hidden": "true",
54
+ className: "size-4"
55
+ })
56
+ })
57
+ }) : null]
58
+ });
59
+ };
60
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Table.ScrollContainer, {
61
+ minWidth,
62
+ className: "relative",
63
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.LoadingOverlay, {
64
+ visible: isLoading,
65
+ loaderProps: { type: "bars" },
66
+ overlayProps: { backgroundOpacity: .35 },
67
+ style: { top: isVertical ? 0 : theadHeight }
68
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Table, {
69
+ variant,
70
+ layout: layout ?? (isVertical ? "fixed" : void 0),
71
+ highlightOnHover: !isLoading && highlightOnHover,
72
+ ...props,
73
+ children: [isVertical ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Table.Thead, {
74
+ ref: setTheadRef,
75
+ children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Table.Tr, { children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Table.Th, { children: header.isPlaceholder ? null : renderHeaderContent(header) }, header.id)) }, headerGroup.id))
76
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Table.Tbody, { children: [
77
+ rows.length === 0 && isLoading && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Table.Tr, {
78
+ "aria-hidden": "true",
79
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Table.Td, {
80
+ colSpan: isVertical ? 2 : columns.length,
81
+ className: "py-5",
82
+ children: "\xA0"
83
+ })
84
+ }),
85
+ isVertical ? rows.flatMap((row) => row.getVisibleCells().map((cell) => {
86
+ const header = headersByColumnId.get(cell.column.id);
87
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Table.Tr, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Table.Th, { children: header?.isPlaceholder || !header ? null : (0, _tanstack_react_table.flexRender)(header.column.columnDef.header, header.getContext()) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Table.Td, {
88
+ onClick: () => onRowClick?.(cell.row),
89
+ className: cellClassName,
90
+ children: (0, _tanstack_react_table.flexRender)(cell.column.columnDef.cell, cell.getContext())
91
+ })] }, cell.id);
92
+ })) : rows.map((row) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Table.Tr, { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Table.Td, {
93
+ onClick: () => onRowClick?.(cell.row),
94
+ className: cellClassName,
95
+ children: (0, _tanstack_react_table.flexRender)(cell.column.columnDef.cell, cell.getContext())
96
+ }, cell.id)) }, row.id)),
97
+ rows.length === 0 && !isLoading && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Table.Tr, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Table.Td, {
98
+ colSpan: isVertical ? 2 : columns.length,
99
+ className: "py-5",
100
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Text, {
101
+ c: "dimmed",
102
+ size: "sm",
103
+ ta: "center",
104
+ children: emptyMessage
105
+ })
106
+ }) })
107
+ ] })]
108
+ })]
109
+ });
110
+ };
111
+ var IconOrderAscending = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
112
+ width: "24",
113
+ height: "24",
114
+ viewBox: "0 0 24 24",
115
+ fill: "none",
116
+ xmlns: "http://www.w3.org/2000/svg",
117
+ ...props,
118
+ children: [
119
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
120
+ d: "M11 5.25C11.4142 5.25 11.75 5.58579 11.75 6C11.75 6.41421 11.4142 6.75 11 6.75H4C3.58579 6.75 3.25 6.41421 3.25 6C3.25 5.58579 3.58579 5.25 4 5.25H11Z",
121
+ fill: "currentColor"
122
+ }),
123
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
124
+ d: "M11 11.25C11.4142 11.25 11.75 11.5858 11.75 12C11.75 12.4142 11.4142 12.75 11 12.75H4C3.58579 12.75 3.25 12.4142 3.25 12C3.25 11.5858 3.58579 11.25 4 11.25H11Z",
125
+ fill: "currentColor"
126
+ }),
127
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
128
+ d: "M13 17.25C13.4142 17.25 13.75 17.5858 13.75 18C13.75 18.4142 13.4142 18.75 13 18.75H4C3.58579 18.75 3.25 18.4142 3.25 18C3.25 17.5858 3.58579 17.25 4 17.25H13Z",
129
+ fill: "currentColor"
130
+ }),
131
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
132
+ d: "M17.5264 5.41796C17.821 5.17765 18.2557 5.19512 18.5303 5.46972L21.5303 8.46972C21.8232 8.76261 21.8232 9.23738 21.5303 9.53027C21.2374 9.82316 20.7626 9.82316 20.4697 9.53027L18 7.06054L15.5303 9.53027C15.2374 9.82316 14.7626 9.82316 14.4697 9.53027C14.1768 9.23738 14.1768 8.76261 14.4697 8.46972L17.4697 5.46972L17.5264 5.41796Z",
133
+ fill: "currentColor"
134
+ }),
135
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
136
+ d: "M17.25 18V6C17.25 5.58579 17.5858 5.25 18 5.25C18.4142 5.25 18.75 5.58579 18.75 6V18C18.75 18.4142 18.4142 18.75 18 18.75C17.5858 18.75 17.25 18.4142 17.25 18Z",
137
+ fill: "currentColor"
138
+ })
139
+ ]
140
+ });
141
+ var IconOrderDescending = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
142
+ width: "24",
143
+ height: "24",
144
+ viewBox: "0 0 24 24",
145
+ fill: "none",
146
+ xmlns: "http://www.w3.org/2000/svg",
147
+ ...props,
148
+ children: [
149
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
150
+ d: "M13 5.25C13.4142 5.25 13.75 5.58579 13.75 6C13.75 6.41421 13.4142 6.75 13 6.75H4C3.58579 6.75 3.25 6.41421 3.25 6C3.25 5.58579 3.58579 5.25 4 5.25H13Z",
151
+ fill: "currentColor"
152
+ }),
153
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
154
+ d: "M11 11.25C11.4142 11.25 11.75 11.5858 11.75 12C11.75 12.4142 11.4142 12.75 11 12.75H4C3.58579 12.75 3.25 12.4142 3.25 12C3.25 11.5858 3.58579 11.25 4 11.25H11Z",
155
+ fill: "currentColor"
156
+ }),
157
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
158
+ d: "M11 17.25C11.4142 17.25 11.75 17.5858 11.75 18C11.75 18.4142 11.4142 18.75 11 18.75H4C3.58579 18.75 3.25 18.4142 3.25 18C3.25 17.5858 3.58579 17.25 4 17.25H11Z",
159
+ fill: "currentColor"
160
+ }),
161
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
162
+ d: "M20.4697 14.4697C20.7626 14.1768 21.2374 14.1768 21.5303 14.4697C21.8232 14.7626 21.8232 15.2374 21.5303 15.5303L18.5303 18.5303C18.2374 18.8232 17.7626 18.8232 17.4697 18.5303L14.4697 15.5303C14.1768 15.2374 14.1768 14.7626 14.4697 14.4697C14.7626 14.1768 15.2374 14.1768 15.5303 14.4697L18 16.9395L20.4697 14.4697Z",
163
+ fill: "currentColor"
164
+ }),
165
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
166
+ d: "M17.25 18V6C17.25 5.58579 17.5858 5.25 18 5.25C18.4142 5.25 18.75 5.58579 18.75 6V18C18.75 18.4142 18.4142 18.75 18 18.75C17.5858 18.75 17.25 18.4142 17.25 18Z",
167
+ fill: "currentColor"
168
+ })
169
+ ]
170
+ });
171
+ //#endregion
172
+ exports.default = MyTable;
@@ -0,0 +1,18 @@
1
+ import { TableProps } from '@mantine/core';
2
+ import { OnChangeFn, Row, SortingState, TableOptions } from '@tanstack/react-table';
3
+ import { ReactNode } from 'react';
4
+ export interface MyTableProps<T> extends Omit<TableProps, 'data'> {
5
+ data: T[];
6
+ columns: TableOptions<T>['columns'];
7
+ isLoading?: boolean;
8
+ onRowClick?: (row: Row<T>) => void;
9
+ minWidth?: number;
10
+ emptyMessage?: ReactNode;
11
+ enableSorting?: boolean;
12
+ manualSorting?: boolean;
13
+ onSortingChange?: OnChangeFn<SortingState>;
14
+ sorting?: SortingState;
15
+ }
16
+ declare const MyTable: <T>({ data, columns, highlightOnHover, isLoading, onRowClick, minWidth, emptyMessage, enableSorting, variant, layout, manualSorting, onSortingChange, sorting, ...props }: MyTableProps<T>) => import("react/jsx-runtime").JSX.Element;
17
+ export default MyTable;
18
+ //# sourceMappingURL=MyTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MyTable.d.ts","sourceRoot":"","sources":["../../../src/components/MyTable/MyTable.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqC,UAAU,EAAiB,MAAM,eAAe,CAAA;AAC5F,OAAO,EAML,UAAU,EACV,GAAG,EACH,YAAY,EACZ,YAAY,EAEb,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAkB,SAAS,EAAyB,MAAM,OAAO,CAAA;AAExE,MAAM,WAAW,YAAY,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;IAC/D,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACnC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,eAAe,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAA;IAC1C,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB;AAED,QAAA,MAAM,OAAO,GAAI,CAAC,EAAG,uKAelB,YAAY,CAAC,CAAC,CAAC,4CA4IjB,CAAA;AAkED,eAAe,OAAO,CAAA"}
@@ -0,0 +1,170 @@
1
+ "use client";
2
+ import { ActionIcon, LoadingOverlay, Table, Text, Tooltip } from "@mantine/core";
3
+ import { useCallback, useState } from "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import clsx from "clsx";
6
+ import { flexRender, getCoreRowModel, getSortedRowModel, useReactTable } from "@tanstack/react-table";
7
+ //#region src/components/MyTable/MyTable.tsx
8
+ var MyTable = ({ data, columns, highlightOnHover, isLoading, onRowClick, minWidth = 720, emptyMessage = "Sin datos", enableSorting, variant, layout, manualSorting, onSortingChange, sorting, ...props }) => {
9
+ const [theadHeight, setTheadHeight] = useState(0);
10
+ const setTheadRef = useCallback((node) => {
11
+ if (node) setTheadHeight(node.offsetHeight);
12
+ }, []);
13
+ const isSortingEnabled = enableSorting ?? (Boolean(sorting) || Boolean(onSortingChange));
14
+ const table = useReactTable({
15
+ data,
16
+ columns,
17
+ enableSorting: isSortingEnabled,
18
+ getCoreRowModel: getCoreRowModel(),
19
+ getSortedRowModel: isSortingEnabled && !manualSorting ? getSortedRowModel() : void 0,
20
+ manualSorting,
21
+ onSortingChange,
22
+ state: sorting ? { sorting } : void 0
23
+ });
24
+ const rows = table.getRowModel().rows;
25
+ const isVertical = variant === "vertical";
26
+ const headersByColumnId = new Map(table.getFlatHeaders().map((header) => [header.column.id, header]));
27
+ const cellClassName = clsx(onRowClick && "cursor-pointer");
28
+ const renderHeaderContent = (header) => {
29
+ const content = flexRender(header.column.columnDef.header, header.getContext());
30
+ if (!isSortingEnabled || !header.column.getCanSort()) return content;
31
+ const sorted = header.column.getIsSorted();
32
+ const sortLabel = sorted === "asc" ? "Orden ascendente" : "Orden descendente";
33
+ return /* @__PURE__ */ jsxs("span", {
34
+ className: "flex items-center gap-1",
35
+ children: [/* @__PURE__ */ jsx("button", {
36
+ className: "whitespace-nowrap font-semibold text-grey-9 text-sm",
37
+ onClick: header.column.getToggleSortingHandler(),
38
+ type: "button",
39
+ children: content
40
+ }), sorted ? /* @__PURE__ */ jsx(Tooltip, {
41
+ label: sortLabel,
42
+ children: /* @__PURE__ */ jsx(ActionIcon, {
43
+ "aria-label": sortLabel,
44
+ onClick: header.column.getToggleSortingHandler(),
45
+ size: "sm",
46
+ variant: "subtle",
47
+ children: sorted === "asc" ? /* @__PURE__ */ jsx(IconOrderAscending, {
48
+ "aria-hidden": "true",
49
+ className: "size-4"
50
+ }) : /* @__PURE__ */ jsx(IconOrderDescending, {
51
+ "aria-hidden": "true",
52
+ className: "size-4"
53
+ })
54
+ })
55
+ }) : null]
56
+ });
57
+ };
58
+ return /* @__PURE__ */ jsxs(Table.ScrollContainer, {
59
+ minWidth,
60
+ className: "relative",
61
+ children: [/* @__PURE__ */ jsx(LoadingOverlay, {
62
+ visible: isLoading,
63
+ loaderProps: { type: "bars" },
64
+ overlayProps: { backgroundOpacity: .35 },
65
+ style: { top: isVertical ? 0 : theadHeight }
66
+ }), /* @__PURE__ */ jsxs(Table, {
67
+ variant,
68
+ layout: layout ?? (isVertical ? "fixed" : void 0),
69
+ highlightOnHover: !isLoading && highlightOnHover,
70
+ ...props,
71
+ children: [isVertical ? null : /* @__PURE__ */ jsx(Table.Thead, {
72
+ ref: setTheadRef,
73
+ children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(Table.Tr, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx(Table.Th, { children: header.isPlaceholder ? null : renderHeaderContent(header) }, header.id)) }, headerGroup.id))
74
+ }), /* @__PURE__ */ jsxs(Table.Tbody, { children: [
75
+ rows.length === 0 && isLoading && /* @__PURE__ */ jsx(Table.Tr, {
76
+ "aria-hidden": "true",
77
+ children: /* @__PURE__ */ jsx(Table.Td, {
78
+ colSpan: isVertical ? 2 : columns.length,
79
+ className: "py-5",
80
+ children: "\xA0"
81
+ })
82
+ }),
83
+ isVertical ? rows.flatMap((row) => row.getVisibleCells().map((cell) => {
84
+ const header = headersByColumnId.get(cell.column.id);
85
+ return /* @__PURE__ */ jsxs(Table.Tr, { children: [/* @__PURE__ */ jsx(Table.Th, { children: header?.isPlaceholder || !header ? null : flexRender(header.column.columnDef.header, header.getContext()) }), /* @__PURE__ */ jsx(Table.Td, {
86
+ onClick: () => onRowClick?.(cell.row),
87
+ className: cellClassName,
88
+ children: flexRender(cell.column.columnDef.cell, cell.getContext())
89
+ })] }, cell.id);
90
+ })) : rows.map((row) => /* @__PURE__ */ jsx(Table.Tr, { children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx(Table.Td, {
91
+ onClick: () => onRowClick?.(cell.row),
92
+ className: cellClassName,
93
+ children: flexRender(cell.column.columnDef.cell, cell.getContext())
94
+ }, cell.id)) }, row.id)),
95
+ rows.length === 0 && !isLoading && /* @__PURE__ */ jsx(Table.Tr, { children: /* @__PURE__ */ jsx(Table.Td, {
96
+ colSpan: isVertical ? 2 : columns.length,
97
+ className: "py-5",
98
+ children: /* @__PURE__ */ jsx(Text, {
99
+ c: "dimmed",
100
+ size: "sm",
101
+ ta: "center",
102
+ children: emptyMessage
103
+ })
104
+ }) })
105
+ ] })]
106
+ })]
107
+ });
108
+ };
109
+ var IconOrderAscending = (props) => /* @__PURE__ */ jsxs("svg", {
110
+ width: "24",
111
+ height: "24",
112
+ viewBox: "0 0 24 24",
113
+ fill: "none",
114
+ xmlns: "http://www.w3.org/2000/svg",
115
+ ...props,
116
+ children: [
117
+ /* @__PURE__ */ jsx("path", {
118
+ d: "M11 5.25C11.4142 5.25 11.75 5.58579 11.75 6C11.75 6.41421 11.4142 6.75 11 6.75H4C3.58579 6.75 3.25 6.41421 3.25 6C3.25 5.58579 3.58579 5.25 4 5.25H11Z",
119
+ fill: "currentColor"
120
+ }),
121
+ /* @__PURE__ */ jsx("path", {
122
+ d: "M11 11.25C11.4142 11.25 11.75 11.5858 11.75 12C11.75 12.4142 11.4142 12.75 11 12.75H4C3.58579 12.75 3.25 12.4142 3.25 12C3.25 11.5858 3.58579 11.25 4 11.25H11Z",
123
+ fill: "currentColor"
124
+ }),
125
+ /* @__PURE__ */ jsx("path", {
126
+ d: "M13 17.25C13.4142 17.25 13.75 17.5858 13.75 18C13.75 18.4142 13.4142 18.75 13 18.75H4C3.58579 18.75 3.25 18.4142 3.25 18C3.25 17.5858 3.58579 17.25 4 17.25H13Z",
127
+ fill: "currentColor"
128
+ }),
129
+ /* @__PURE__ */ jsx("path", {
130
+ d: "M17.5264 5.41796C17.821 5.17765 18.2557 5.19512 18.5303 5.46972L21.5303 8.46972C21.8232 8.76261 21.8232 9.23738 21.5303 9.53027C21.2374 9.82316 20.7626 9.82316 20.4697 9.53027L18 7.06054L15.5303 9.53027C15.2374 9.82316 14.7626 9.82316 14.4697 9.53027C14.1768 9.23738 14.1768 8.76261 14.4697 8.46972L17.4697 5.46972L17.5264 5.41796Z",
131
+ fill: "currentColor"
132
+ }),
133
+ /* @__PURE__ */ jsx("path", {
134
+ d: "M17.25 18V6C17.25 5.58579 17.5858 5.25 18 5.25C18.4142 5.25 18.75 5.58579 18.75 6V18C18.75 18.4142 18.4142 18.75 18 18.75C17.5858 18.75 17.25 18.4142 17.25 18Z",
135
+ fill: "currentColor"
136
+ })
137
+ ]
138
+ });
139
+ var IconOrderDescending = (props) => /* @__PURE__ */ jsxs("svg", {
140
+ width: "24",
141
+ height: "24",
142
+ viewBox: "0 0 24 24",
143
+ fill: "none",
144
+ xmlns: "http://www.w3.org/2000/svg",
145
+ ...props,
146
+ children: [
147
+ /* @__PURE__ */ jsx("path", {
148
+ d: "M13 5.25C13.4142 5.25 13.75 5.58579 13.75 6C13.75 6.41421 13.4142 6.75 13 6.75H4C3.58579 6.75 3.25 6.41421 3.25 6C3.25 5.58579 3.58579 5.25 4 5.25H13Z",
149
+ fill: "currentColor"
150
+ }),
151
+ /* @__PURE__ */ jsx("path", {
152
+ d: "M11 11.25C11.4142 11.25 11.75 11.5858 11.75 12C11.75 12.4142 11.4142 12.75 11 12.75H4C3.58579 12.75 3.25 12.4142 3.25 12C3.25 11.5858 3.58579 11.25 4 11.25H11Z",
153
+ fill: "currentColor"
154
+ }),
155
+ /* @__PURE__ */ jsx("path", {
156
+ d: "M11 17.25C11.4142 17.25 11.75 17.5858 11.75 18C11.75 18.4142 11.4142 18.75 11 18.75H4C3.58579 18.75 3.25 18.4142 3.25 18C3.25 17.5858 3.58579 17.25 4 17.25H11Z",
157
+ fill: "currentColor"
158
+ }),
159
+ /* @__PURE__ */ jsx("path", {
160
+ d: "M20.4697 14.4697C20.7626 14.1768 21.2374 14.1768 21.5303 14.4697C21.8232 14.7626 21.8232 15.2374 21.5303 15.5303L18.5303 18.5303C18.2374 18.8232 17.7626 18.8232 17.4697 18.5303L14.4697 15.5303C14.1768 15.2374 14.1768 14.7626 14.4697 14.4697C14.7626 14.1768 15.2374 14.1768 15.5303 14.4697L18 16.9395L20.4697 14.4697Z",
161
+ fill: "currentColor"
162
+ }),
163
+ /* @__PURE__ */ jsx("path", {
164
+ d: "M17.25 18V6C17.25 5.58579 17.5858 5.25 18 5.25C18.4142 5.25 18.75 5.58579 18.75 6V18C18.75 18.4142 18.4142 18.75 18 18.75C17.5858 18.75 17.25 18.4142 17.25 18Z",
165
+ fill: "currentColor"
166
+ })
167
+ ]
168
+ });
169
+ //#endregion
170
+ export { MyTable as default };
@@ -0,0 +1,3 @@
1
+ export type { MyTableProps } from './MyTable';
2
+ export { default as MyTable } from './MyTable';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/MyTable/index.tsx"],"names":[],"mappings":"AAEA,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,13 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ let _mantine_core = require("@mantine/core");
3
+ let react_jsx_runtime = require("react/jsx-runtime");
4
+ let clsx = require("clsx");
5
+ clsx = require_runtime.__toESM(clsx, 1);
6
+ //#region src/components/TableWrapper/TableWrapper.tsx
7
+ var TableWrapper = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Paper, {
8
+ component: "section",
9
+ className: (0, clsx.default)("flex flex-col px-1 py-0.5", className),
10
+ ...props
11
+ });
12
+ //#endregion
13
+ exports.default = TableWrapper;
@@ -0,0 +1,8 @@
1
+ import { PaperProps } from '@mantine/core';
2
+ import { ReactNode } from 'react';
3
+ export interface TableWrapperProps extends PaperProps {
4
+ children?: ReactNode;
5
+ }
6
+ declare const TableWrapper: ({ className, ...props }: TableWrapperProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default TableWrapper;
8
+ //# sourceMappingURL=TableWrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/TableWrapper/TableWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,QAAA,MAAM,YAAY,GAAI,yBAAyB,iBAAiB,4CAE/D,CAAA;AAED,eAAe,YAAY,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { Paper } from "@mantine/core";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import clsx from "clsx";
4
+ //#region src/components/TableWrapper/TableWrapper.tsx
5
+ var TableWrapper = ({ className, ...props }) => /* @__PURE__ */ jsx(Paper, {
6
+ component: "section",
7
+ className: clsx("flex flex-col px-1 py-0.5", className),
8
+ ...props
9
+ });
10
+ //#endregion
11
+ export { TableWrapper as default };
@@ -0,0 +1,11 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ let react_jsx_runtime = require("react/jsx-runtime");
3
+ let clsx = require("clsx");
4
+ clsx = require_runtime.__toESM(clsx, 1);
5
+ //#region src/components/TableWrapper/TableWrapperFooter.tsx
6
+ var TableWrapperFooter = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("footer", {
7
+ className: (0, clsx.default)("mt-3 flex justify-center p-2", className),
8
+ ...props
9
+ });
10
+ //#endregion
11
+ exports.default = TableWrapperFooter;
@@ -0,0 +1,5 @@
1
+ import { ComponentProps } from 'react';
2
+ export type TableWrapperFooterProps = ComponentProps<'footer'>;
3
+ declare const TableWrapperFooter: ({ className, ...props }: TableWrapperFooterProps) => import("react/jsx-runtime").JSX.Element;
4
+ export default TableWrapperFooter;
5
+ //# sourceMappingURL=TableWrapperFooter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableWrapperFooter.d.ts","sourceRoot":"","sources":["../../../src/components/TableWrapper/TableWrapperFooter.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;AAE9D,QAAA,MAAM,kBAAkB,GAAI,yBAAyB,uBAAuB,4CAE3E,CAAA;AAED,eAAe,kBAAkB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import clsx from "clsx";
3
+ //#region src/components/TableWrapper/TableWrapperFooter.tsx
4
+ var TableWrapperFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("footer", {
5
+ className: clsx("mt-3 flex justify-center p-2", className),
6
+ ...props
7
+ });
8
+ //#endregion
9
+ export { TableWrapperFooter as default };
@@ -0,0 +1,11 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ let react_jsx_runtime = require("react/jsx-runtime");
3
+ let clsx = require("clsx");
4
+ clsx = require_runtime.__toESM(clsx, 1);
5
+ //#region src/components/TableWrapper/TableWrapperHeader.tsx
6
+ var TableWrapperHeader = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("header", {
7
+ className: (0, clsx.default)("p-2", className),
8
+ ...props
9
+ });
10
+ //#endregion
11
+ exports.default = TableWrapperHeader;
@@ -0,0 +1,5 @@
1
+ import { ComponentProps } from 'react';
2
+ export type TableWrapperHeaderProps = ComponentProps<'header'>;
3
+ declare const TableWrapperHeader: ({ className, ...props }: TableWrapperHeaderProps) => import("react/jsx-runtime").JSX.Element;
4
+ export default TableWrapperHeader;
5
+ //# sourceMappingURL=TableWrapperHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableWrapperHeader.d.ts","sourceRoot":"","sources":["../../../src/components/TableWrapper/TableWrapperHeader.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;AAE9D,QAAA,MAAM,kBAAkB,GAAI,yBAAyB,uBAAuB,4CAE3E,CAAA;AAED,eAAe,kBAAkB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import clsx from "clsx";
3
+ //#region src/components/TableWrapper/TableWrapperHeader.tsx
4
+ var TableWrapperHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("header", {
5
+ className: clsx("p-2", className),
6
+ ...props
7
+ });
8
+ //#endregion
9
+ export { TableWrapperHeader as default };
@@ -0,0 +1,31 @@
1
+ require("../../_virtual/_rolldown/runtime.cjs");
2
+ let _mantine_core = require("@mantine/core");
3
+ let react_jsx_runtime = require("react/jsx-runtime");
4
+ //#region src/components/TableWrapper/TableWrapperPagination.tsx
5
+ var TableWrapperPagination = ({ variant = "long", text, totalRows = 15, pageSize = 10, currentRows = pageSize, value = 1, ...props }) => {
6
+ if (variant === "short") {
7
+ const start = totalRows > 0 ? (value - 1) * pageSize + 1 : 0;
8
+ const end = Math.min(start + currentRows - 1, totalRows);
9
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
10
+ className: "flex w-full items-center justify-end gap-3",
11
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
12
+ className: "text-grey-7 text-sm",
13
+ children: text ?? `${start}-${end} de ${totalRows} filas`
14
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Pagination, {
15
+ withPages: false,
16
+ value,
17
+ ...props
18
+ })]
19
+ });
20
+ }
21
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Pagination, {
22
+ boundaries: 0,
23
+ siblings: 2,
24
+ withEdges: true,
25
+ classNames: { dots: "hidden" },
26
+ value,
27
+ ...props
28
+ });
29
+ };
30
+ //#endregion
31
+ exports.default = TableWrapperPagination;
@@ -0,0 +1,16 @@
1
+ import { PaginationProps } from '@mantine/core';
2
+ type TableWrapperPaginationBaseProps = Omit<PaginationProps, 'boundaries' | 'siblings' | 'withControls' | 'withEdges' | 'variant'> & {
3
+ text?: string;
4
+ totalRows?: number;
5
+ currentRows?: number;
6
+ };
7
+ export type TableWrapperPaginationProps = (TableWrapperPaginationBaseProps & {
8
+ variant?: 'long';
9
+ pageSize?: number;
10
+ }) | (TableWrapperPaginationBaseProps & {
11
+ variant: 'short';
12
+ pageSize: number;
13
+ });
14
+ declare const TableWrapperPagination: ({ variant, text, totalRows, pageSize, currentRows, value, ...props }: TableWrapperPaginationProps) => import("react/jsx-runtime").JSX.Element;
15
+ export default TableWrapperPagination;
16
+ //# sourceMappingURL=TableWrapperPagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableWrapperPagination.d.ts","sourceRoot":"","sources":["../../../src/components/TableWrapper/TableWrapperPagination.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAE,MAAM,eAAe,CAAA;AAE3D,KAAK,+BAA+B,GAAG,IAAI,CACzC,eAAe,EACf,YAAY,GAAG,UAAU,GAAG,cAAc,GAAG,WAAW,GAAG,SAAS,CACrE,GAAG;IACF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,2BAA2B,GACnC,CAAC,+BAA+B,GAAG;IACjC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAC,GACF,CAAC,+BAA+B,GAAG;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAC,CAAA;AAEN,QAAA,MAAM,sBAAsB,GAAI,sEAQ7B,2BAA2B,4CAyB7B,CAAA;AAED,eAAe,sBAAsB,CAAA"}
@@ -0,0 +1,30 @@
1
+ import { Pagination } from "@mantine/core";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ //#region src/components/TableWrapper/TableWrapperPagination.tsx
4
+ var TableWrapperPagination = ({ variant = "long", text, totalRows = 15, pageSize = 10, currentRows = pageSize, value = 1, ...props }) => {
5
+ if (variant === "short") {
6
+ const start = totalRows > 0 ? (value - 1) * pageSize + 1 : 0;
7
+ const end = Math.min(start + currentRows - 1, totalRows);
8
+ return /* @__PURE__ */ jsxs("div", {
9
+ className: "flex w-full items-center justify-end gap-3",
10
+ children: [/* @__PURE__ */ jsx("span", {
11
+ className: "text-grey-7 text-sm",
12
+ children: text ?? `${start}-${end} de ${totalRows} filas`
13
+ }), /* @__PURE__ */ jsx(Pagination, {
14
+ withPages: false,
15
+ value,
16
+ ...props
17
+ })]
18
+ });
19
+ }
20
+ return /* @__PURE__ */ jsx(Pagination, {
21
+ boundaries: 0,
22
+ siblings: 2,
23
+ withEdges: true,
24
+ classNames: { dots: "hidden" },
25
+ value,
26
+ ...props
27
+ });
28
+ };
29
+ //#endregion
30
+ export { TableWrapperPagination as default };
@@ -0,0 +1,11 @@
1
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
2
+ let react_jsx_runtime = require("react/jsx-runtime");
3
+ let clsx = require("clsx");
4
+ clsx = require_runtime.__toESM(clsx, 1);
5
+ //#region src/components/TableWrapper/TableWrapperTitle.tsx
6
+ var TableWrapperTitle = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
7
+ className: (0, clsx.default)("font-semibold text-lg", className),
8
+ ...props
9
+ });
10
+ //#endregion
11
+ exports.default = TableWrapperTitle;
@@ -0,0 +1,5 @@
1
+ import { ComponentProps } from 'react';
2
+ export type TableWrapperTitleProps = ComponentProps<'p'>;
3
+ declare const TableWrapperTitle: ({ className, ...props }: TableWrapperTitleProps) => import("react/jsx-runtime").JSX.Element;
4
+ export default TableWrapperTitle;
5
+ //# sourceMappingURL=TableWrapperTitle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableWrapperTitle.d.ts","sourceRoot":"","sources":["../../../src/components/TableWrapper/TableWrapperTitle.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;AAExD,QAAA,MAAM,iBAAiB,GAAI,yBAAyB,sBAAsB,4CAEzE,CAAA;AAED,eAAe,iBAAiB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import clsx from "clsx";
3
+ //#region src/components/TableWrapper/TableWrapperTitle.tsx
4
+ var TableWrapperTitle = ({ className, ...props }) => /* @__PURE__ */ jsx("p", {
5
+ className: clsx("font-semibold text-lg", className),
6
+ ...props
7
+ });
8
+ //#endregion
9
+ export { TableWrapperTitle as default };
@@ -0,0 +1,11 @@
1
+ export type { TableWrapperProps } from './TableWrapper';
2
+ export { default as TableWrapper } from './TableWrapper';
3
+ export type { TableWrapperFooterProps } from './TableWrapperFooter';
4
+ export { default as TableWrapperFooter } from './TableWrapperFooter';
5
+ export type { TableWrapperHeaderProps } from './TableWrapperHeader';
6
+ export { default as TableWrapperHeader } from './TableWrapperHeader';
7
+ export type { TableWrapperPaginationProps } from './TableWrapperPagination';
8
+ export { default as TableWrapperPagination } from './TableWrapperPagination';
9
+ export type { TableWrapperTitleProps } from './TableWrapperTitle';
10
+ export { default as TableWrapperTitle } from './TableWrapperTitle';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/TableWrapper/index.tsx"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACpE,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACpE,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;AAC3E,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAC5E,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -12,8 +12,10 @@ export * from './MyNotifications';
12
12
  export * from './MyNumberInput';
13
13
  export * from './MyRadioGroup';
14
14
  export * from './MySelect';
15
+ export * from './MyTable';
15
16
  export * from './MyTextarea';
16
17
  export * from './MyTextInput';
17
18
  export * from './MyTimeInput';
18
19
  export * from './NavItems';
20
+ export * from './TableWrapper';
19
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAE7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAE7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
package/dist/index.cjs CHANGED
@@ -14,10 +14,16 @@ const require_index$9 = require("./components/MyNotifications/index.cjs");
14
14
  const require_index$10 = require("./components/MyNumberInput/index.cjs");
15
15
  const require_index$11 = require("./components/MyRadioGroup/index.cjs");
16
16
  const require_index$12 = require("./components/MySelect/index.cjs");
17
+ const require_MyTable = require("./components/MyTable/MyTable.cjs");
17
18
  const require_index$13 = require("./components/MyTextarea/index.cjs");
18
19
  const require_index$14 = require("./components/MyTextInput/index.cjs");
19
20
  const require_index$15 = require("./components/MyTimeInput/index.cjs");
20
21
  const require_NavItems = require("./components/NavItems.cjs");
22
+ const require_TableWrapper = require("./components/TableWrapper/TableWrapper.cjs");
23
+ const require_TableWrapperFooter = require("./components/TableWrapper/TableWrapperFooter.cjs");
24
+ const require_TableWrapperHeader = require("./components/TableWrapper/TableWrapperHeader.cjs");
25
+ const require_TableWrapperPagination = require("./components/TableWrapper/TableWrapperPagination.cjs");
26
+ const require_TableWrapperTitle = require("./components/TableWrapper/TableWrapperTitle.cjs");
21
27
  const require_http_status = require("./consts/http-status.cjs");
22
28
  const require_revalidate = require("./consts/revalidate.cjs");
23
29
  const require_index$16 = require("./contexts/ModalManagerContext/index.cjs");
@@ -93,6 +99,7 @@ exports.MyNotifications = require_index$9.MyNotifications;
93
99
  exports.MyNumberInput = require_index$10.MyNumberInput;
94
100
  exports.MyRadioGroup = require_index$11.MyRadioGroup;
95
101
  exports.MySelect = require_index$12.MySelect;
102
+ exports.MyTable = require_MyTable;
96
103
  exports.MyTextInput = require_index$14.MyTextInput;
97
104
  exports.MyTextarea = require_index$13.MyTextarea;
98
105
  exports.MyTimeInput = require_index$15.MyTimeInput;
@@ -101,6 +108,11 @@ exports.NavigationHistoryProvider = require_index$17.NavigationHistoryProvider;
101
108
  exports.PageDataProvider = require_index$18.PageDataProvider;
102
109
  exports.QP_BACK_URL_NAME = require_hook.QP_BACK_URL_NAME;
103
110
  exports.Revalidate = require_revalidate.Revalidate;
111
+ exports.TableWrapper = require_TableWrapper;
112
+ exports.TableWrapperFooter = require_TableWrapperFooter;
113
+ exports.TableWrapperHeader = require_TableWrapperHeader;
114
+ exports.TableWrapperPagination = require_TableWrapperPagination;
115
+ exports.TableWrapperTitle = require_TableWrapperTitle;
104
116
  exports.addBodyJsonHook = require_addBodyJsonHook.addBodyJsonHook;
105
117
  exports.breakpointsWithPx = require_breakpoints_with_px.breakpointsWithPx;
106
118
  exports.createNewRoute = require_new_route.createNewRoute;
package/dist/index.js CHANGED
@@ -13,10 +13,16 @@ import { MyNotifications } from "./components/MyNotifications/index.js";
13
13
  import { MyNumberInput } from "./components/MyNumberInput/index.js";
14
14
  import { MyRadioGroup } from "./components/MyRadioGroup/index.js";
15
15
  import { MySelect } from "./components/MySelect/index.js";
16
+ import MyTable from "./components/MyTable/MyTable.js";
16
17
  import { MyTextarea } from "./components/MyTextarea/index.js";
17
18
  import { MyTextInput } from "./components/MyTextInput/index.js";
18
19
  import { MyTimeInput } from "./components/MyTimeInput/index.js";
19
20
  import { NavItems } from "./components/NavItems.js";
21
+ import TableWrapper from "./components/TableWrapper/TableWrapper.js";
22
+ import TableWrapperFooter from "./components/TableWrapper/TableWrapperFooter.js";
23
+ import TableWrapperHeader from "./components/TableWrapper/TableWrapperHeader.js";
24
+ import TableWrapperPagination from "./components/TableWrapper/TableWrapperPagination.js";
25
+ import TableWrapperTitle from "./components/TableWrapper/TableWrapperTitle.js";
20
26
  import { HttpStatus } from "./consts/http-status.js";
21
27
  import { Revalidate } from "./consts/revalidate.js";
22
28
  import { ModalManagerProvider, useModalManager } from "./contexts/ModalManagerContext/index.js";
@@ -60,4 +66,4 @@ import { addBodyJsonHook } from "./utils/ky/addBodyJsonHook.js";
60
66
  import { parseJSON } from "./utils/ky/parseJson.js";
61
67
  import { queryStringify } from "./utils/query-stringify.js";
62
68
  import { createNewRoute, newRoute } from "./utils/new-route.js";
63
- export { EmptyState, Form, FormCheckbox, FormCheckboxGroup, FormDateInput, FormDatePickerInput, FormDateTimePicker, FormInfinitySelect, FormMonthPickerInput, FormMultiSelect, FormNumberInput, FormRadioGroup, FormSelect, FormSubmitButton, FormTextInput, FormTextarea, FormTimeInput, HttpStatus, Icon, InfinityLoadMoreButton, InfinitySelect, ModalManagerProvider, MyCheckboxGroup, MyDateInput, MyDatePickerInput, MyDateTimePicker, MyMonthPickerInput, MyMultiSelect, MyNotifications, MyNumberInput, MyRadioGroup, MySelect, MyTextInput, MyTextarea, MyTimeInput, NavItems, NavigationHistoryProvider, PageDataProvider, QP_BACK_URL_NAME, Revalidate, addBodyJsonHook, breakpointsWithPx, createNewRoute, formatBytes, getVirtualContainerProps, getVirtualItemProps, groupBy, indexBy, isInfinityEmpty, myDefaultTheme, newRoute, nullableButRequired, numberToTimeInput, optionalButRequired, parseJSON, queryStringify, shuffleArray, timeInputToNumber, toTailwindColors, useBreakpoint, useFetchNextPageOnScroll, useModalManager, useNavigationHistory, useOnScrollProgress, usePageData, useUpdateSearchParams, useZodConfig, withController, withModalManager, zodValidator };
69
+ export { EmptyState, Form, FormCheckbox, FormCheckboxGroup, FormDateInput, FormDatePickerInput, FormDateTimePicker, FormInfinitySelect, FormMonthPickerInput, FormMultiSelect, FormNumberInput, FormRadioGroup, FormSelect, FormSubmitButton, FormTextInput, FormTextarea, FormTimeInput, HttpStatus, Icon, InfinityLoadMoreButton, InfinitySelect, ModalManagerProvider, MyCheckboxGroup, MyDateInput, MyDatePickerInput, MyDateTimePicker, MyMonthPickerInput, MyMultiSelect, MyNotifications, MyNumberInput, MyRadioGroup, MySelect, MyTable, MyTextInput, MyTextarea, MyTimeInput, NavItems, NavigationHistoryProvider, PageDataProvider, QP_BACK_URL_NAME, Revalidate, TableWrapper, TableWrapperFooter, TableWrapperHeader, TableWrapperPagination, TableWrapperTitle, addBodyJsonHook, breakpointsWithPx, createNewRoute, formatBytes, getVirtualContainerProps, getVirtualItemProps, groupBy, indexBy, isInfinityEmpty, myDefaultTheme, newRoute, nullableButRequired, numberToTimeInput, optionalButRequired, parseJSON, queryStringify, shuffleArray, timeInputToNumber, toTailwindColors, useBreakpoint, useFetchNextPageOnScroll, useModalManager, useNavigationHistory, useOnScrollProgress, usePageData, useUpdateSearchParams, useZodConfig, withController, withModalManager, zodValidator };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lkd-web-kit",
3
- "version": "0.10.1",
3
+ "version": "0.10.2",
4
4
  "description": "A template for creating React component libraries with Vite.",
5
5
  "author": "LKD",
6
6
  "license": "MIT",
@@ -37,6 +37,7 @@
37
37
  },
38
38
  "devDependencies": {
39
39
  "@biomejs/biome": "2.4.14",
40
+ "@tanstack/react-table": "^8.21.3",
40
41
  "@tanstack/react-virtual": "^3.13.24",
41
42
  "@testing-library/jest-dom": "^6.8.0",
42
43
  "@testing-library/react": "^16.3.0",
@@ -60,6 +61,7 @@
60
61
  "@mantine/hooks": "^9.4.1",
61
62
  "@mantine/notifications": "^9.4.1",
62
63
  "@tanstack/react-query": "^5.101.2",
64
+ "@tanstack/react-table": "^8.21.3",
63
65
  "@tanstack/react-virtual": "^3.14.4",
64
66
  "clsx": "^2.1.1",
65
67
  "ky": "^2.0.2",