@withwiz/toolkit 0.2.0 → 0.2.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.
- package/dist/auth/index.js +19 -19
- package/dist/chunk-7IY3RQQL.js +151 -0
- package/dist/chunk-GSUQE3SZ.js +225 -0
- package/dist/chunk-IPXPCBDO.js +127 -0
- package/dist/chunk-LJEGM4OO.js +136 -0
- package/dist/chunk-MAATEX2R.js +81 -0
- package/dist/chunk-NY5QXT33.js +31 -0
- package/dist/chunk-TH45RVP7.js +110 -0
- package/dist/components/ui/DataTable.d.ts +8 -103
- package/dist/components/ui/DataTable.js +17 -602
- package/dist/components/ui/data-table/DataTable.d.ts +2 -0
- package/dist/components/ui/data-table/DataTable.js +22 -0
- package/dist/components/ui/data-table/DataTableBody.d.ts +19 -0
- package/dist/components/ui/data-table/DataTableBody.js +10 -0
- package/dist/components/ui/data-table/DataTableBulkActions.d.ts +17 -0
- package/dist/components/ui/data-table/DataTableBulkActions.js +12 -0
- package/dist/components/ui/data-table/DataTableFilters.d.ts +15 -0
- package/dist/components/ui/data-table/DataTableFilters.js +13 -0
- package/dist/components/ui/data-table/DataTablePagination.d.ts +10 -0
- package/dist/components/ui/data-table/DataTablePagination.js +11 -0
- package/dist/components/ui/data-table/DataTableSearch.d.ts +24 -0
- package/dist/components/ui/data-table/DataTableSearch.js +12 -0
- package/dist/components/ui/data-table/index.d.ts +13 -0
- package/dist/components/ui/data-table/types.d.ts +115 -0
- package/dist/error/index.d.ts +0 -4
- package/dist/error/index.js +1 -69
- package/dist/geolocation/index.js +4 -4
- package/dist/geolocation/providers/index.js +4 -4
- package/dist/hooks/useDataTable.d.ts +45 -0
- package/dist/hooks/useDataTable.js +13 -11
- package/dist/utils/format-number.js +30 -4
- package/dist/utils/short-code-generator.js +36 -4
- package/dist/utils/url-normalizer.js +194 -10
- package/package.json +3 -2
- package/dist/chunk-5ATB5D6S.js +0 -40
- package/dist/chunk-6C7HQIX4.js +0 -13
- package/dist/chunk-7VJNLGAS.js +0 -110
- package/dist/chunk-7XFHGAJP.js +0 -0
- package/dist/chunk-A6EAAWMK.js +0 -50
- package/dist/chunk-COK4ZXNG.js +0 -0
- package/dist/chunk-EQYTE7WD.js +0 -139
- package/dist/chunk-FW3IEJ7H.js +0 -71
- package/dist/chunk-HGC4CCKB.js +0 -29
- package/dist/chunk-IAJNC34M.js +0 -102
- package/dist/chunk-JS5VI3OW.js +0 -143
- package/dist/chunk-MYLGYX4K.js +0 -57
- package/dist/chunk-TDZJ6SAI.js +0 -34
- package/dist/chunk-TEIYA7U4.js +0 -72
- package/dist/chunk-ULF5RDDX.js +0 -0
- package/dist/chunk-VWODEQ5C.js +0 -204
- package/dist/chunk-Y2TUZFCP.js +0 -0
- package/dist/chunk-YJ3TLEW3.js +0 -100
- package/dist/chunk-ZHVUK5OY.js +0 -314
- package/dist/chunk-ZZIKRBJU.js +0 -96
- package/dist/error/components/EmptyState.d.ts +0 -50
- package/dist/error/components/ErrorAlert.d.ts +0 -50
- package/dist/error/components/ErrorPage.d.ts +0 -39
- package/dist/error/components/LoadingState.d.ts +0 -37
- package/dist/error/components/index.d.ts +0 -13
- package/dist/error/components/index.js +0 -18
- package/dist/error/hooks/index.d.ts +0 -7
- package/dist/error/hooks/index.js +0 -14
- package/dist/error/hooks/useErrorHandler.d.ts +0 -67
- package/dist/error/hooks/useErrorHandler.js +0 -14
- package/dist/error/logging/error-logger.d.ts +0 -77
- package/dist/error/logging/error-logger.js +0 -10
- package/dist/error/logging/index.d.ts +0 -9
- package/dist/error/logging/index.js +0 -35
- package/dist/error/logging/transports/base.d.ts +0 -30
- package/dist/error/logging/transports/base.js +0 -7
- package/dist/error/logging/transports/console.d.ts +0 -40
- package/dist/error/logging/transports/console.js +0 -9
- package/dist/error/logging/transports/file.d.ts +0 -49
- package/dist/error/logging/transports/file.js +0 -8
- package/dist/error/logging/transports/index.d.ts +0 -12
- package/dist/error/logging/transports/index.js +0 -25
- package/dist/error/logging/transports/sentry.d.ts +0 -44
- package/dist/error/logging/transports/sentry.js +0 -9
- package/dist/error/logging/transports/slack.d.ts +0 -51
- package/dist/error/logging/transports/slack.js +0 -9
- package/dist/error/logging/types.d.ts +0 -83
- package/dist/error/logging/types.js +0 -7
- package/dist/error/recovery/circuit-breaker.d.ts +0 -85
- package/dist/error/recovery/circuit-breaker.js +0 -9
- package/dist/error/recovery/degradation.d.ts +0 -56
- package/dist/error/recovery/degradation.js +0 -7
- package/dist/error/recovery/fallback.d.ts +0 -55
- package/dist/error/recovery/fallback.js +0 -11
- package/dist/error/recovery/index.d.ts +0 -12
- package/dist/error/recovery/index.js +0 -26
- package/dist/error/recovery/retry.d.ts +0 -44
- package/dist/error/recovery/retry.js +0 -7
- package/dist/utils/shared-utils.d.ts +0 -25
- package/dist/utils/shared-utils.js +0 -43
- package/dist/{chunk-S73334QY.js → chunk-QF6FH4GZ.js} +3 -3
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formatLabel
|
|
3
|
+
} from "./chunk-NY5QXT33.js";
|
|
4
|
+
import {
|
|
5
|
+
LoadingBar
|
|
6
|
+
} from "./chunk-34WAGUT5.js";
|
|
7
|
+
import {
|
|
8
|
+
Button
|
|
9
|
+
} from "./chunk-L25BNU3E.js";
|
|
10
|
+
|
|
11
|
+
// src/components/ui/data-table/DataTableBulkActions.tsx
|
|
12
|
+
import { CheckSquare, Square, Loader2 } from "lucide-react";
|
|
13
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
+
function DataTableBulkActions({
|
|
15
|
+
bulkActions,
|
|
16
|
+
localSelectedIds,
|
|
17
|
+
dataLength,
|
|
18
|
+
bulkActionLoading,
|
|
19
|
+
onSelectAll,
|
|
20
|
+
onBulkAction,
|
|
21
|
+
labels
|
|
22
|
+
}) {
|
|
23
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
24
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 p-3 bg-muted rounded-lg", children: [
|
|
25
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-col sm:flex-row items-start sm:items-center gap-3", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
26
|
+
/* @__PURE__ */ jsxs(
|
|
27
|
+
Button,
|
|
28
|
+
{
|
|
29
|
+
"data-testid": "select-all-btn",
|
|
30
|
+
variant: "outline",
|
|
31
|
+
size: "sm",
|
|
32
|
+
onClick: () => {
|
|
33
|
+
const allSelected = localSelectedIds.length === dataLength && dataLength > 0;
|
|
34
|
+
onSelectAll(!allSelected);
|
|
35
|
+
},
|
|
36
|
+
className: "flex items-center gap-1 h-9 px-3",
|
|
37
|
+
children: [
|
|
38
|
+
localSelectedIds.length === dataLength && dataLength > 0 ? /* @__PURE__ */ jsx(CheckSquare, { className: "h-4 w-4" }) : /* @__PURE__ */ jsx(Square, { className: "h-4 w-4" }),
|
|
39
|
+
/* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: labels.selectAll }),
|
|
40
|
+
/* @__PURE__ */ jsx("span", { className: "sm:hidden", children: labels.selectAllShort })
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
),
|
|
44
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: formatLabel(labels.selected, { count: localSelectedIds.length, total: dataLength }) })
|
|
45
|
+
] }) }),
|
|
46
|
+
localSelectedIds.length > 0 && /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-6 gap-2", children: bulkActions.map((action) => {
|
|
47
|
+
var _a;
|
|
48
|
+
const isLoading = bulkActionLoading === action.key;
|
|
49
|
+
const isDisabled = !!bulkActionLoading || ((_a = action.disabled) == null ? void 0 : _a.call(action, localSelectedIds)) || localSelectedIds.length === 0;
|
|
50
|
+
return /* @__PURE__ */ jsxs(
|
|
51
|
+
Button,
|
|
52
|
+
{
|
|
53
|
+
"data-testid": `bulk-action-${action.key}`,
|
|
54
|
+
variant: action.variant || "outline",
|
|
55
|
+
size: "sm",
|
|
56
|
+
onClick: () => onBulkAction(action),
|
|
57
|
+
disabled: isDisabled,
|
|
58
|
+
className: "flex items-center gap-1 h-9 text-xs",
|
|
59
|
+
children: [
|
|
60
|
+
isLoading ? /* @__PURE__ */ jsx(Loader2, { className: "h-3 w-3 animate-spin" }) : action.icon,
|
|
61
|
+
/* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: isLoading ? labels.processing : action.label }),
|
|
62
|
+
/* @__PURE__ */ jsx("span", { className: "sm:hidden", children: isLoading ? "..." : action.label.split(" ")[0] })
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
action.key
|
|
66
|
+
);
|
|
67
|
+
}) })
|
|
68
|
+
] }),
|
|
69
|
+
bulkActionLoading && /* @__PURE__ */ jsxs("div", { className: "p-3 bg-muted/50 rounded-lg", children: [
|
|
70
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
71
|
+
/* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin text-primary" }),
|
|
72
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: formatLabel(labels.processingItems, { count: localSelectedIds.length }) })
|
|
73
|
+
] }),
|
|
74
|
+
/* @__PURE__ */ jsx(LoadingBar, { size: "sm", variant: "primary", className: "mt-2" })
|
|
75
|
+
] })
|
|
76
|
+
] });
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export {
|
|
80
|
+
DataTableBulkActions
|
|
81
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// src/components/ui/data-table/types.ts
|
|
2
|
+
var DEFAULT_LABELS = {
|
|
3
|
+
search: "Search",
|
|
4
|
+
filter: "Filter",
|
|
5
|
+
filterActive: "Active",
|
|
6
|
+
clearFilters: "Clear Filters",
|
|
7
|
+
selectAll: "Select All",
|
|
8
|
+
selectAllShort: "All",
|
|
9
|
+
selected: "{count} / {total} selected",
|
|
10
|
+
processing: "Processing...",
|
|
11
|
+
processingItems: "Processing {count} items...",
|
|
12
|
+
loading: "Loading data...",
|
|
13
|
+
perPage: "{size} per page",
|
|
14
|
+
all: "All",
|
|
15
|
+
min: "Min",
|
|
16
|
+
max: "Max",
|
|
17
|
+
previous: "Previous",
|
|
18
|
+
next: "Next",
|
|
19
|
+
showing: "Showing {start} to {end} of {total} results"
|
|
20
|
+
};
|
|
21
|
+
function formatLabel(template, values) {
|
|
22
|
+
return Object.entries(values).reduce(
|
|
23
|
+
(result, [key, value]) => result.replace(new RegExp(`\\{${key}\\}`, "g"), String(value)),
|
|
24
|
+
template
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export {
|
|
29
|
+
DEFAULT_LABELS,
|
|
30
|
+
formatLabel
|
|
31
|
+
};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formatLabel
|
|
3
|
+
} from "./chunk-NY5QXT33.js";
|
|
4
|
+
import {
|
|
5
|
+
Button
|
|
6
|
+
} from "./chunk-L25BNU3E.js";
|
|
7
|
+
import {
|
|
8
|
+
Input
|
|
9
|
+
} from "./chunk-RJUVBBZG.js";
|
|
10
|
+
|
|
11
|
+
// src/components/ui/data-table/DataTableSearch.tsx
|
|
12
|
+
import { isValidElement } from "react";
|
|
13
|
+
import { Filter } from "lucide-react";
|
|
14
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
|
+
function DataTableSearch({
|
|
16
|
+
onSearch,
|
|
17
|
+
onSearchValueChange,
|
|
18
|
+
searchValue,
|
|
19
|
+
searchPlaceholder,
|
|
20
|
+
labels,
|
|
21
|
+
filters,
|
|
22
|
+
onToggleFilters,
|
|
23
|
+
showFilters,
|
|
24
|
+
hasActiveFilters,
|
|
25
|
+
pagination,
|
|
26
|
+
createButton
|
|
27
|
+
}) {
|
|
28
|
+
const handleSearch = (e) => {
|
|
29
|
+
if (e.key === "Enter" && onSearch) {
|
|
30
|
+
onSearch(searchValue);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const handleSearchClick = () => {
|
|
34
|
+
if (onSearch) {
|
|
35
|
+
onSearch(searchValue);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const handleSearchInputChange = (value) => {
|
|
39
|
+
if (onSearchValueChange) {
|
|
40
|
+
onSearchValueChange(value);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3 p-3 bg-muted rounded-lg", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center gap-2", children: [
|
|
44
|
+
onSearch && /* @__PURE__ */ jsxs("div", { className: "relative flex-1 min-w-0", children: [
|
|
45
|
+
/* @__PURE__ */ jsx(
|
|
46
|
+
Input,
|
|
47
|
+
{
|
|
48
|
+
"data-testid": "search-input",
|
|
49
|
+
placeholder: searchPlaceholder,
|
|
50
|
+
value: searchValue,
|
|
51
|
+
onChange: (e) => handleSearchInputChange(e.target.value),
|
|
52
|
+
onKeyPress: handleSearch,
|
|
53
|
+
className: "min-w-0 pr-20 h-10"
|
|
54
|
+
}
|
|
55
|
+
),
|
|
56
|
+
/* @__PURE__ */ jsx(
|
|
57
|
+
Button,
|
|
58
|
+
{
|
|
59
|
+
"data-testid": "search-btn",
|
|
60
|
+
size: "sm",
|
|
61
|
+
onClick: handleSearchClick,
|
|
62
|
+
className: "absolute right-1 top-1/2 transform -translate-y-1/2 h-8 px-3 text-sm",
|
|
63
|
+
children: labels.search
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
] }),
|
|
67
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 flex-shrink-0", children: [
|
|
68
|
+
filters.length > 0 && onToggleFilters && /* @__PURE__ */ jsxs(
|
|
69
|
+
Button,
|
|
70
|
+
{
|
|
71
|
+
"data-testid": "filter-toggle-btn",
|
|
72
|
+
variant: "outline",
|
|
73
|
+
size: "sm",
|
|
74
|
+
onClick: () => onToggleFilters(!showFilters),
|
|
75
|
+
className: "flex items-center gap-1 h-10 px-3",
|
|
76
|
+
children: [
|
|
77
|
+
/* @__PURE__ */ jsx(Filter, { className: "h-4 w-4" }),
|
|
78
|
+
/* @__PURE__ */ jsx("span", { className: "hidden sm:inline", children: labels.filter }),
|
|
79
|
+
hasActiveFilters && /* @__PURE__ */ jsx("span", { className: "ml-1 bg-primary text-primary-foreground text-xs px-1.5 py-0.5 rounded-full", children: labels.filterActive })
|
|
80
|
+
]
|
|
81
|
+
}
|
|
82
|
+
),
|
|
83
|
+
pagination && /* @__PURE__ */ jsx(
|
|
84
|
+
"select",
|
|
85
|
+
{
|
|
86
|
+
"data-testid": "page-size-select",
|
|
87
|
+
value: pagination.pageSize,
|
|
88
|
+
onChange: (e) => pagination.onPageSizeChange(Number(e.target.value)),
|
|
89
|
+
className: "border rounded px-3 py-2 text-sm bg-background h-10 min-w-[100px]",
|
|
90
|
+
children: (pagination.pageSizeOptions || [10, 20, 50]).map((size) => /* @__PURE__ */ jsx("option", { value: size, children: formatLabel(labels.perPage, { size }) }, size))
|
|
91
|
+
}
|
|
92
|
+
),
|
|
93
|
+
createButton && (isValidElement(createButton) ? createButton : /* @__PURE__ */ jsx(
|
|
94
|
+
Button,
|
|
95
|
+
{
|
|
96
|
+
"data-testid": "create-btn",
|
|
97
|
+
onClick: createButton.onClick,
|
|
98
|
+
variant: "default",
|
|
99
|
+
size: "sm",
|
|
100
|
+
className: "flex-shrink-0 h-10 px-3",
|
|
101
|
+
children: createButton.label
|
|
102
|
+
}
|
|
103
|
+
))
|
|
104
|
+
] })
|
|
105
|
+
] }) });
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export {
|
|
109
|
+
DataTableSearch
|
|
110
|
+
};
|
|
@@ -1,103 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
selected?: string;
|
|
10
|
-
processing?: string;
|
|
11
|
-
processingItems?: string;
|
|
12
|
-
loading?: string;
|
|
13
|
-
perPage?: string;
|
|
14
|
-
all?: string;
|
|
15
|
-
min?: string;
|
|
16
|
-
max?: string;
|
|
17
|
-
previous?: string;
|
|
18
|
-
next?: string;
|
|
19
|
-
showing?: string;
|
|
20
|
-
}
|
|
21
|
-
export interface ColumnDef<T> {
|
|
22
|
-
key: string;
|
|
23
|
-
header: string;
|
|
24
|
-
accessorKey?: keyof T;
|
|
25
|
-
cell?: (item: T) => React.ReactNode;
|
|
26
|
-
sortable?: boolean;
|
|
27
|
-
width?: string;
|
|
28
|
-
className?: string;
|
|
29
|
-
hidden?: boolean;
|
|
30
|
-
responsive?: {
|
|
31
|
-
sm?: boolean;
|
|
32
|
-
md?: boolean;
|
|
33
|
-
lg?: boolean;
|
|
34
|
-
xl?: boolean;
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
export interface BulkAction {
|
|
38
|
-
key: string;
|
|
39
|
-
label: string;
|
|
40
|
-
icon?: React.ReactNode;
|
|
41
|
-
variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link";
|
|
42
|
-
onClick: (selectedIds: string[]) => Promise<void>;
|
|
43
|
-
disabled?: (selectedIds: string[]) => boolean;
|
|
44
|
-
}
|
|
45
|
-
export interface FilterConfig {
|
|
46
|
-
key: string;
|
|
47
|
-
label: string;
|
|
48
|
-
type: 'text' | 'select' | 'date' | 'number' | 'switch' | 'range';
|
|
49
|
-
options?: {
|
|
50
|
-
value: string;
|
|
51
|
-
label: string;
|
|
52
|
-
}[];
|
|
53
|
-
placeholder?: string;
|
|
54
|
-
className?: string;
|
|
55
|
-
inputType?: 'text' | 'number' | 'date';
|
|
56
|
-
minPlaceholder?: string;
|
|
57
|
-
maxPlaceholder?: string;
|
|
58
|
-
}
|
|
59
|
-
export interface PaginationConfig {
|
|
60
|
-
page: number;
|
|
61
|
-
pageSize: number;
|
|
62
|
-
total: number;
|
|
63
|
-
pageSizeOptions?: number[];
|
|
64
|
-
onPageChange: (page: number) => void;
|
|
65
|
-
onPageSizeChange: (pageSize: number) => void;
|
|
66
|
-
}
|
|
67
|
-
export interface SortConfig {
|
|
68
|
-
sort: string;
|
|
69
|
-
order: 'asc' | 'desc';
|
|
70
|
-
onSortChange: (sort: string, order: 'asc' | 'desc') => void;
|
|
71
|
-
}
|
|
72
|
-
export interface DataTableProps<T> {
|
|
73
|
-
data: T[];
|
|
74
|
-
columns: ColumnDef<T>[];
|
|
75
|
-
loading?: boolean;
|
|
76
|
-
error?: string | null;
|
|
77
|
-
pagination?: PaginationConfig;
|
|
78
|
-
sort?: SortConfig;
|
|
79
|
-
bulkActions?: BulkAction[];
|
|
80
|
-
filters?: FilterConfig[];
|
|
81
|
-
filterValues?: Record<string, any>;
|
|
82
|
-
onFilterChange?: (key: string, value: any) => void;
|
|
83
|
-
onClearFilters?: () => void;
|
|
84
|
-
selectable?: boolean;
|
|
85
|
-
onSelectionChange?: (selectedIds: string[]) => void;
|
|
86
|
-
selectedIds?: string[];
|
|
87
|
-
getRowId: (item: T) => string;
|
|
88
|
-
className?: string;
|
|
89
|
-
emptyMessage?: string;
|
|
90
|
-
searchPlaceholder?: string;
|
|
91
|
-
onSearch?: (search: string) => void;
|
|
92
|
-
onSearchValueChange?: (searchValue: string) => void;
|
|
93
|
-
searchValue?: string;
|
|
94
|
-
showFilters?: boolean;
|
|
95
|
-
onToggleFilters?: (show: boolean) => void;
|
|
96
|
-
createButton?: ReactNode | {
|
|
97
|
-
label: string;
|
|
98
|
-
onClick: () => void;
|
|
99
|
-
};
|
|
100
|
-
/** i18n labels - 미제공 시 영어 기본값 사용 */
|
|
101
|
-
labels?: Partial<DataTableLabels>;
|
|
102
|
-
}
|
|
103
|
-
export declare function DataTable<T>({ data, columns, loading, error, pagination, sort, bulkActions, filters, filterValues, onFilterChange, onClearFilters, selectable, onSelectionChange, selectedIds, getRowId, className, emptyMessage, searchPlaceholder, onSearch, onSearchValueChange, searchValue, showFilters, onToggleFilters, createButton, labels: customLabels, }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
1
|
+
/**
|
|
2
|
+
* DataTable
|
|
3
|
+
*
|
|
4
|
+
* 하위 호환성을 위한 re-export wrapper
|
|
5
|
+
* 실제 구현은 ./data-table/ 디렉토리에 위치
|
|
6
|
+
*/
|
|
7
|
+
export { DataTable } from "./data-table";
|
|
8
|
+
export type { DataTableLabels, ColumnDef, BulkAction, FilterConfig, PaginationConfig, SortConfig, DataTableProps, } from "./data-table";
|