@turtleclub/ui 0.7.0-beta.7 → 0.7.0-beta.8
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/.turbo/turbo-build.log +52 -52
- package/CHANGELOG.md +6 -0
- package/dist/index.cjs +10 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1436 -1452
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/components/features/data-table/data-table.d.ts +1 -3
- package/dist/types/components/features/data-table/data-table.d.ts.map +1 -1
- package/dist/types/components/ui/dialog.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/components/features/data-table/data-table.tsx +4 -12
- package/src/components/ui/dialog.tsx +9 -23
|
@@ -18,14 +18,12 @@ type DataTableProps<TData, TValue> = {
|
|
|
18
18
|
manualFiltering?: boolean;
|
|
19
19
|
manualSorting?: boolean;
|
|
20
20
|
manualPagination?: boolean;
|
|
21
|
-
manualSearch?: boolean;
|
|
22
21
|
pageCount?: number;
|
|
23
22
|
rowCount?: number;
|
|
24
23
|
sorting?: SortingState;
|
|
25
24
|
onSortingChange?: (sorting: SortingState) => void;
|
|
26
25
|
globalFilter?: string;
|
|
27
26
|
onGlobalFilterChange?: (filter: string) => void;
|
|
28
|
-
onSearchChange?: (searchTerm: string) => void;
|
|
29
27
|
pagination?: PaginationState;
|
|
30
28
|
onPaginationChange?: (pagination: PaginationState) => void;
|
|
31
29
|
grid?: {
|
|
@@ -39,6 +37,6 @@ type DataTableProps<TData, TValue> = {
|
|
|
39
37
|
emptyState?: React.ReactNode;
|
|
40
38
|
className?: string;
|
|
41
39
|
};
|
|
42
|
-
export declare function DataTable<TData, TValue>({ columns, data, isLoading, slot, enableExpand, enableSearch, enablePagination, enableSorting, renderSubComponent, initialSorting, initialColumnVisibility, size, grid, emptyState, className, onRowClick, manualFiltering, manualSorting, manualPagination,
|
|
40
|
+
export declare function DataTable<TData, TValue>({ columns, data, isLoading, slot, enableExpand, enableSearch, enablePagination, enableSorting, renderSubComponent, initialSorting, initialColumnVisibility, size, grid, emptyState, className, onRowClick, manualFiltering, manualSorting, manualPagination, pageCount, rowCount, sorting: controlledSorting, onSortingChange: onControlledSortingChange, globalFilter: controlledGlobalFilter, onGlobalFilterChange: onControlledGlobalFilterChange, pagination: controlledPagination, onPaginationChange: onControlledPaginationChange, }: DataTableProps<TData, TValue>): import("react/jsx-runtime").JSX.Element;
|
|
43
41
|
export {};
|
|
44
42
|
//# sourceMappingURL=data-table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/data-table/data-table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,EACL,SAAS,EAQT,eAAe,EACf,GAAG,EAEH,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAqC/B,KAAK,cAAc,CAAC,KAAK,EAAE,MAAM,IAAI;IACnC,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;IACpC,IAAI,EAAE,KAAK,EAAE,CAAC;IAEd,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,CAAC;IAGxE,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,KAAK,EAAE,OAAO,CAAC,CAAC;IAGvD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../../../../src/components/features/data-table/data-table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,EACL,SAAS,EAQT,eAAe,EACf,GAAG,EAEH,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAqC/B,KAAK,cAAc,CAAC,KAAK,EAAE,MAAM,IAAI;IACnC,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;IACpC,IAAI,EAAE,KAAK,EAAE,CAAC;IAEd,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;KAAE,KAAK,KAAK,CAAC,YAAY,CAAC;IAGxE,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,KAAK,EAAE,OAAO,CAAC,CAAC;IAGvD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAC;IAG3D,IAAI,CAAC,EAAE;QACL,aAAa,EAAE,OAAO,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,KAAK,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,KAAK,CAAC;QACxB,cAAc,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;KAClC,CAAC;IAEF,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EACvC,OAAO,EACP,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAmB,EACnB,uBAAuB,EACvB,IAAgB,EAChB,IAAI,EACJ,UAAU,EACV,SAAS,EACT,UAAU,EAEV,eAAuB,EACvB,aAAqB,EACrB,gBAAwB,EACxB,SAAS,EACT,QAAQ,EACR,OAAO,EAAE,iBAAiB,EAC1B,eAAe,EAAE,yBAAyB,EAC1C,YAAY,EAAE,sBAAsB,EACpC,oBAAoB,EAAE,8BAA8B,EACpD,UAAU,EAAE,oBAAoB,EAChC,kBAAkB,EAAE,4BAA4B,GACjD,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,2CAgV/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAK1D,iBAAS,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAK1D,iBAAS,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAE9E;AAED,iBAAS,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CAExF;AAED,iBAAS,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC,2CAEtF;AAED,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpF;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CAWtD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,2CAyBA;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQzE;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQzE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAQ/F;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,WAAW,CAAC,2CAQ1D;AAED,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,GACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@turtleclub/ui",
|
|
3
|
-
"version": "0.7.0-beta.
|
|
3
|
+
"version": "0.7.0-beta.8",
|
|
4
4
|
"description": "shadcn/ui and custom Turtle UI components library",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -84,5 +84,5 @@
|
|
|
84
84
|
"vite": "^7.1.6",
|
|
85
85
|
"vite-plugin-dts": "^4.5.4"
|
|
86
86
|
},
|
|
87
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "85b9fe2a7b77d238ad1488d663c48f9a5957fc16"
|
|
88
88
|
}
|
|
@@ -77,7 +77,7 @@ type DataTableProps<TData, TValue> = {
|
|
|
77
77
|
manualFiltering?: boolean;
|
|
78
78
|
manualSorting?: boolean;
|
|
79
79
|
manualPagination?: boolean;
|
|
80
|
-
|
|
80
|
+
|
|
81
81
|
pageCount?: number; // Total page count from server (required when manualPagination is true)
|
|
82
82
|
rowCount?: number; // Total row count from server (optional, for display purposes)
|
|
83
83
|
|
|
@@ -86,7 +86,6 @@ type DataTableProps<TData, TValue> = {
|
|
|
86
86
|
onSortingChange?: (sorting: SortingState) => void;
|
|
87
87
|
globalFilter?: string;
|
|
88
88
|
onGlobalFilterChange?: (filter: string) => void;
|
|
89
|
-
onSearchChange?: (searchTerm: string) => void; // Callback for server-side search (when manualSearch is true)
|
|
90
89
|
pagination?: PaginationState;
|
|
91
90
|
onPaginationChange?: (pagination: PaginationState) => void;
|
|
92
91
|
|
|
@@ -125,7 +124,6 @@ export function DataTable<TData, TValue>({
|
|
|
125
124
|
manualFiltering = false,
|
|
126
125
|
manualSorting = false,
|
|
127
126
|
manualPagination = false,
|
|
128
|
-
manualSearch = false,
|
|
129
127
|
pageCount,
|
|
130
128
|
rowCount,
|
|
131
129
|
sorting: controlledSorting,
|
|
@@ -134,7 +132,6 @@ export function DataTable<TData, TValue>({
|
|
|
134
132
|
onGlobalFilterChange: onControlledGlobalFilterChange,
|
|
135
133
|
pagination: controlledPagination,
|
|
136
134
|
onPaginationChange: onControlledPaginationChange,
|
|
137
|
-
onSearchChange: onControlledSearchChange,
|
|
138
135
|
}: DataTableProps<TData, TValue>) {
|
|
139
136
|
const [columnVisibility, setColumnVisibility] = React.useState(initialColumnVisibility ?? {});
|
|
140
137
|
const [rowSelection, setRowSelection] = React.useState<RowSelectionState>({});
|
|
@@ -154,12 +151,7 @@ export function DataTable<TData, TValue>({
|
|
|
154
151
|
const pagination = controlledPagination ?? internalPagination;
|
|
155
152
|
|
|
156
153
|
const setGlobalFilter = (value: string) => {
|
|
157
|
-
if (
|
|
158
|
-
// For manual search, use the dedicated callback
|
|
159
|
-
onControlledSearchChange(value);
|
|
160
|
-
// Also update internal state to keep the search bar in sync
|
|
161
|
-
setInternalGlobalFilter(value);
|
|
162
|
-
} else if (onControlledGlobalFilterChange) {
|
|
154
|
+
if (onControlledGlobalFilterChange) {
|
|
163
155
|
onControlledGlobalFilterChange(value);
|
|
164
156
|
} else {
|
|
165
157
|
setInternalGlobalFilter(value);
|
|
@@ -215,7 +207,7 @@ export function DataTable<TData, TValue>({
|
|
|
215
207
|
getRowCanExpand: enableExpand ? () => true : undefined,
|
|
216
208
|
|
|
217
209
|
// Server-side control
|
|
218
|
-
manualFiltering: manualFiltering
|
|
210
|
+
manualFiltering: manualFiltering,
|
|
219
211
|
manualSorting,
|
|
220
212
|
manualPagination,
|
|
221
213
|
pageCount: manualPagination ? pageCount : undefined,
|
|
@@ -224,7 +216,7 @@ export function DataTable<TData, TValue>({
|
|
|
224
216
|
// Core row model is always needed
|
|
225
217
|
getCoreRowModel: getCoreRowModel(),
|
|
226
218
|
// Only use client-side models when not in manual mode
|
|
227
|
-
getFilteredRowModel: !manualFiltering
|
|
219
|
+
getFilteredRowModel: !manualFiltering ? getFilteredRowModel() : undefined,
|
|
228
220
|
getSortedRowModel: !manualSorting ? getSortedRowModel() : undefined,
|
|
229
221
|
getPaginationRowModel:
|
|
230
222
|
enablePagination && !manualPagination ? getPaginationRowModel() : undefined,
|
|
@@ -6,27 +6,19 @@ import { XIcon } from "lucide-react";
|
|
|
6
6
|
|
|
7
7
|
import { cn } from "@/lib/utils";
|
|
8
8
|
|
|
9
|
-
function Dialog({
|
|
10
|
-
...props
|
|
11
|
-
}: React.ComponentProps<typeof DialogPrimitive.Root>) {
|
|
9
|
+
function Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {
|
|
12
10
|
return <DialogPrimitive.Root data-slot="dialog" {...props} />;
|
|
13
11
|
}
|
|
14
12
|
|
|
15
|
-
function DialogTrigger({
|
|
16
|
-
...props
|
|
17
|
-
}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {
|
|
13
|
+
function DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {
|
|
18
14
|
return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />;
|
|
19
15
|
}
|
|
20
16
|
|
|
21
|
-
function DialogPortal({
|
|
22
|
-
...props
|
|
23
|
-
}: React.ComponentProps<typeof DialogPrimitive.Portal>) {
|
|
17
|
+
function DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {
|
|
24
18
|
return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />;
|
|
25
19
|
}
|
|
26
20
|
|
|
27
|
-
function DialogClose({
|
|
28
|
-
...props
|
|
29
|
-
}: React.ComponentProps<typeof DialogPrimitive.Close>) {
|
|
21
|
+
function DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {
|
|
30
22
|
return <DialogPrimitive.Close data-slot="dialog-close" {...props} />;
|
|
31
23
|
}
|
|
32
24
|
|
|
@@ -38,8 +30,8 @@ function DialogOverlay({
|
|
|
38
30
|
<DialogPrimitive.Overlay
|
|
39
31
|
data-slot="dialog-overlay"
|
|
40
32
|
className={cn(
|
|
41
|
-
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
|
|
42
|
-
className
|
|
33
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 grid place-items-center overflow-y-auto bg-black/50",
|
|
34
|
+
className
|
|
43
35
|
)}
|
|
44
36
|
{...props}
|
|
45
37
|
/>
|
|
@@ -61,7 +53,7 @@ function DialogContent({
|
|
|
61
53
|
data-slot="dialog-content"
|
|
62
54
|
className={cn(
|
|
63
55
|
"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 border-gradient-soft fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg p-6 shadow-lg duration-200 sm:max-w-lg",
|
|
64
|
-
className
|
|
56
|
+
className
|
|
65
57
|
)}
|
|
66
58
|
{...props}
|
|
67
59
|
>
|
|
@@ -94,19 +86,13 @@ function DialogFooter({ className, ...props }: React.ComponentProps<"div">) {
|
|
|
94
86
|
return (
|
|
95
87
|
<div
|
|
96
88
|
data-slot="dialog-footer"
|
|
97
|
-
className={cn(
|
|
98
|
-
"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
99
|
-
className,
|
|
100
|
-
)}
|
|
89
|
+
className={cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className)}
|
|
101
90
|
{...props}
|
|
102
91
|
/>
|
|
103
92
|
);
|
|
104
93
|
}
|
|
105
94
|
|
|
106
|
-
function DialogTitle({
|
|
107
|
-
className,
|
|
108
|
-
...props
|
|
109
|
-
}: React.ComponentProps<typeof DialogPrimitive.Title>) {
|
|
95
|
+
function DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {
|
|
110
96
|
return (
|
|
111
97
|
<DialogPrimitive.Title
|
|
112
98
|
data-slot="dialog-title"
|