@a5it/sync-ui 0.1.0
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/README.md +45 -0
- package/dist/components/data-table/actions/action-delete.d.ts +8 -0
- package/dist/components/data-table/actions/action-delete.d.ts.map +1 -0
- package/dist/components/data-table/actions/action-delete.js +17 -0
- package/dist/components/data-table/actions/action-delete.js.map +1 -0
- package/dist/components/data-table/actions/action-item.d.ts +7 -0
- package/dist/components/data-table/actions/action-item.d.ts.map +1 -0
- package/dist/components/data-table/actions/action-item.js +7 -0
- package/dist/components/data-table/actions/action-item.js.map +1 -0
- package/dist/components/data-table/actions/actions-dropdown.d.ts +8 -0
- package/dist/components/data-table/actions/actions-dropdown.d.ts.map +1 -0
- package/dist/components/data-table/actions/actions-dropdown.js +9 -0
- package/dist/components/data-table/actions/actions-dropdown.js.map +1 -0
- package/dist/components/data-table/cells/date-time-cell.d.ts +16 -0
- package/dist/components/data-table/cells/date-time-cell.d.ts.map +1 -0
- package/dist/components/data-table/cells/date-time-cell.js +32 -0
- package/dist/components/data-table/cells/date-time-cell.js.map +1 -0
- package/dist/components/data-table/cells/payment-pill.d.ts +7 -0
- package/dist/components/data-table/cells/payment-pill.d.ts.map +1 -0
- package/dist/components/data-table/cells/payment-pill.js +23 -0
- package/dist/components/data-table/cells/payment-pill.js.map +1 -0
- package/dist/components/data-table/cells/record-id-cell.d.ts +7 -0
- package/dist/components/data-table/cells/record-id-cell.d.ts.map +1 -0
- package/dist/components/data-table/cells/record-id-cell.js +7 -0
- package/dist/components/data-table/cells/record-id-cell.js.map +1 -0
- package/dist/components/data-table/cells/status-pill.d.ts +6 -0
- package/dist/components/data-table/cells/status-pill.d.ts.map +1 -0
- package/dist/components/data-table/cells/status-pill.js +67 -0
- package/dist/components/data-table/cells/status-pill.js.map +1 -0
- package/dist/components/data-table/cells/table-checkbox.d.ts +4 -0
- package/dist/components/data-table/cells/table-checkbox.d.ts.map +1 -0
- package/dist/components/data-table/cells/table-checkbox.js +9 -0
- package/dist/components/data-table/cells/table-checkbox.js.map +1 -0
- package/dist/components/data-table/cells/text-cell.d.ts +8 -0
- package/dist/components/data-table/cells/text-cell.d.ts.map +1 -0
- package/dist/components/data-table/cells/text-cell.js +7 -0
- package/dist/components/data-table/cells/text-cell.js.map +1 -0
- package/dist/components/data-table/column-header.d.ts +10 -0
- package/dist/components/data-table/column-header.d.ts.map +1 -0
- package/dist/components/data-table/column-header.js +42 -0
- package/dist/components/data-table/column-header.js.map +1 -0
- package/dist/components/data-table/columns/selection.d.ts +4 -0
- package/dist/components/data-table/columns/selection.d.ts.map +1 -0
- package/dist/components/data-table/columns/selection.js +33 -0
- package/dist/components/data-table/columns/selection.js.map +1 -0
- package/dist/components/data-table/filters/all-filters.d.ts +11 -0
- package/dist/components/data-table/filters/all-filters.d.ts.map +1 -0
- package/dist/components/data-table/filters/all-filters.js +9 -0
- package/dist/components/data-table/filters/all-filters.js.map +1 -0
- package/dist/components/data-table/filters/bulk-delete.d.ts +16 -0
- package/dist/components/data-table/filters/bulk-delete.d.ts.map +1 -0
- package/dist/components/data-table/filters/bulk-delete.js +20 -0
- package/dist/components/data-table/filters/bulk-delete.js.map +1 -0
- package/dist/components/data-table/filters/filters.d.ts +4 -0
- package/dist/components/data-table/filters/filters.d.ts.map +1 -0
- package/dist/components/data-table/filters/filters.js +10 -0
- package/dist/components/data-table/filters/filters.js.map +1 -0
- package/dist/components/data-table/filters/reset.d.ts +21 -0
- package/dist/components/data-table/filters/reset.d.ts.map +1 -0
- package/dist/components/data-table/filters/reset.js +34 -0
- package/dist/components/data-table/filters/reset.js.map +1 -0
- package/dist/components/data-table/filters/search.d.ts +25 -0
- package/dist/components/data-table/filters/search.d.ts.map +1 -0
- package/dist/components/data-table/filters/search.js +89 -0
- package/dist/components/data-table/filters/search.js.map +1 -0
- package/dist/components/data-table/filters/sort-by.d.ts +7 -0
- package/dist/components/data-table/filters/sort-by.d.ts.map +1 -0
- package/dist/components/data-table/filters/sort-by.js +76 -0
- package/dist/components/data-table/filters/sort-by.js.map +1 -0
- package/dist/components/data-table/index.d.ts +26 -0
- package/dist/components/data-table/index.d.ts.map +1 -0
- package/dist/components/data-table/index.js +24 -0
- package/dist/components/data-table/index.js.map +1 -0
- package/dist/components/data-table/pagination/pagination.d.ts +66 -0
- package/dist/components/data-table/pagination/pagination.d.ts.map +1 -0
- package/dist/components/data-table/pagination/pagination.js +224 -0
- package/dist/components/data-table/pagination/pagination.js.map +1 -0
- package/dist/components/data-table/provider.d.ts +284 -0
- package/dist/components/data-table/provider.d.ts.map +1 -0
- package/dist/components/data-table/provider.js +193 -0
- package/dist/components/data-table/provider.js.map +1 -0
- package/dist/components/data-table/table.d.ts +21 -0
- package/dist/components/data-table/table.d.ts.map +1 -0
- package/dist/components/data-table/table.js +120 -0
- package/dist/components/data-table/table.js.map +1 -0
- package/dist/components/data-table/tabs.d.ts +19 -0
- package/dist/components/data-table/tabs.d.ts.map +1 -0
- package/dist/components/data-table/tabs.js +22 -0
- package/dist/components/data-table/tabs.js.map +1 -0
- package/dist/components/data-table/url-state.d.ts +54 -0
- package/dist/components/data-table/url-state.d.ts.map +1 -0
- package/dist/components/data-table/url-state.js +130 -0
- package/dist/components/data-table/url-state.js.map +1 -0
- package/dist/components/page-header/index.d.ts +3 -0
- package/dist/components/page-header/index.d.ts.map +1 -0
- package/dist/components/page-header/index.js +2 -0
- package/dist/components/page-header/index.js.map +1 -0
- package/dist/components/page-header/page-header.d.ts +56 -0
- package/dist/components/page-header/page-header.d.ts.map +1 -0
- package/dist/components/page-header/page-header.js +59 -0
- package/dist/components/page-header/page-header.js.map +1 -0
- package/dist/components/sidebar/index.d.ts +2 -0
- package/dist/components/sidebar/index.d.ts.map +1 -0
- package/dist/components/sidebar/index.js +2 -0
- package/dist/components/sidebar/index.js.map +1 -0
- package/dist/components/ui/alert-dialog.d.ts +15 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog.js +40 -0
- package/dist/components/ui/alert-dialog.js.map +1 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +36 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox.js +10 -0
- package/dist/components/ui/checkbox.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +26 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +52 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +6 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.js +14 -0
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/sheet.d.ts +14 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet.js +41 -0
- package/dist/components/ui/sheet.js.map +1 -0
- package/dist/components/ui/table.d.ts +11 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/table.js +30 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/utils.d.ts +7 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +33 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/providers/index.d.ts +2 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +3 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/styles/index.css +19 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +95 -0
package/README.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# @a5it/sync-ui
|
|
2
|
+
|
|
3
|
+
This initial version exports `data-table` (the V2 table used in `reseller/new-table`) and keeps future extension points for `sidebar`, `hooks`, `providers`, `utils`, and `types`.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @a5it/sync-ui
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
import {
|
|
15
|
+
DataTableProvider,
|
|
16
|
+
DataTableTable,
|
|
17
|
+
DataTableSearch,
|
|
18
|
+
DataTableSortBy,
|
|
19
|
+
DataTablePagination,
|
|
20
|
+
} from "@a5it/sync-ui";
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Styles
|
|
24
|
+
|
|
25
|
+
Import once in your app's root globals/index.css:
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
import "@a5it/sync-ui/styles.css";
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Theming
|
|
32
|
+
|
|
33
|
+
Set your app theme once and SyncUI will inherit it automatically using shadcn conventions.
|
|
34
|
+
|
|
35
|
+
## Tree shaking
|
|
36
|
+
|
|
37
|
+
- ESM output only (`dist/*.js`), no CommonJS wrapper.
|
|
38
|
+
- Subpath exports (`./data-table`, `./hooks`, `./providers`, etc.).
|
|
39
|
+
- CSS is the only declared side effect.
|
|
40
|
+
|
|
41
|
+
## Build
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
pnpm build
|
|
45
|
+
```
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type DataTableActionDeleteProps = {
|
|
2
|
+
label?: string;
|
|
3
|
+
confirmTitle?: string;
|
|
4
|
+
confirmDescription?: string;
|
|
5
|
+
onConfirm: () => void;
|
|
6
|
+
};
|
|
7
|
+
export declare function DataTableActionDelete({ label, confirmTitle, confirmDescription, onConfirm, }: DataTableActionDeleteProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=action-delete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-delete.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/actions/action-delete.tsx"],"names":[],"mappings":"AAiBA,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EACpC,KAAgB,EAChB,YAAoC,EACpC,kBAAoD,EACpD,SAAS,GACV,EAAE,0BAA0B,2CAmC5B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Trash2 } from "lucide-react";
|
|
5
|
+
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from "../../ui/alert-dialog";
|
|
6
|
+
import { DropdownMenuItem } from "../../ui/dropdown-menu";
|
|
7
|
+
export function DataTableActionDelete({ label = "Delete", confirmTitle = "Delete this record?", confirmDescription = "This action cannot be undone.", onConfirm, }) {
|
|
8
|
+
const [open, setOpen] = React.useState(false);
|
|
9
|
+
return (_jsxs(AlertDialog, { open: open, onOpenChange: setOpen, children: [_jsxs(DropdownMenuItem, { variant: "destructive", onSelect: (e) => {
|
|
10
|
+
e.preventDefault();
|
|
11
|
+
setOpen(true);
|
|
12
|
+
}, children: [_jsx(Trash2, { className: "h-4 w-4", "aria-hidden": true }), label] }), _jsxs(AlertDialogContent, { children: [_jsxs(AlertDialogHeader, { children: [_jsx(AlertDialogTitle, { children: confirmTitle }), _jsx(AlertDialogDescription, { children: confirmDescription })] }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { children: "Cancel" }), _jsx(AlertDialogAction, { onClick: () => {
|
|
13
|
+
onConfirm();
|
|
14
|
+
setOpen(false);
|
|
15
|
+
}, children: "Delete" })] })] })] }));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=action-delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-delete.js","sourceRoot":"","sources":["../../../../src/components/data-table/actions/action-delete.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAS1D,MAAM,UAAU,qBAAqB,CAAC,EACpC,KAAK,GAAG,QAAQ,EAChB,YAAY,GAAG,qBAAqB,EACpC,kBAAkB,GAAG,+BAA+B,EACpD,SAAS,GACkB;IAC3B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,OAAO,CACL,MAAC,WAAW,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,aAC5C,MAAC,gBAAgB,IACf,OAAO,EAAC,aAAa,EACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oBACd,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC,aAED,KAAC,MAAM,IAAC,SAAS,EAAC,SAAS,wBAAe,EACzC,KAAK,IACW,EAEnB,MAAC,kBAAkB,eACjB,MAAC,iBAAiB,eAChB,KAAC,gBAAgB,cAAE,YAAY,GAAoB,EACnD,KAAC,sBAAsB,cAAE,kBAAkB,GAA0B,IACnD,EACpB,MAAC,iBAAiB,eAChB,KAAC,iBAAiB,yBAA2B,EAC7C,KAAC,iBAAiB,IAChB,OAAO,EAAE,GAAG,EAAE;oCACZ,SAAS,EAAE,CAAC;oCACZ,OAAO,CAAC,KAAK,CAAC,CAAC;gCACjB,CAAC,uBAGiB,IACF,IACD,IACT,CACf,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { DropdownMenuItem } from "../../ui/dropdown-menu";
|
|
3
|
+
export type DataTableActionItemProps = React.ComponentProps<typeof DropdownMenuItem> & {
|
|
4
|
+
icon?: React.ReactNode;
|
|
5
|
+
};
|
|
6
|
+
export declare function DataTableActionItem({ icon, children, ...props }: DataTableActionItemProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=action-item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-item.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/actions/action-item.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,GAAG;IACrF,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,wBAAwB,2CAO1B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { DropdownMenuItem } from "../../ui/dropdown-menu";
|
|
4
|
+
export function DataTableActionItem({ icon, children, ...props }) {
|
|
5
|
+
return (_jsxs(DropdownMenuItem, { ...props, children: [icon, children] }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=action-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-item.js","sourceRoot":"","sources":["../../../../src/components/data-table/actions/action-item.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM1D,MAAM,UAAU,mBAAmB,CAAC,EAClC,IAAI,EACJ,QAAQ,EACR,GAAG,KAAK,EACiB;IACzB,OAAO,CACL,MAAC,gBAAgB,OAAK,KAAK,aACxB,IAAI,EACJ,QAAQ,IACQ,CACpB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type DataTableActionsDropdownProps = {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
className?: string;
|
|
5
|
+
contentClassName?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function DataTableActionsDropdown({ children, className, contentClassName, }: DataTableActionsDropdownProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=actions-dropdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions-dropdown.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/actions/actions-dropdown.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,SAAS,EACT,gBAAgB,GACjB,EAAE,6BAA6B,2CAsB/B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { MoreVertical } from "lucide-react";
|
|
4
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger, } from "../../ui/dropdown-menu";
|
|
5
|
+
import { cn } from "../../../lib/utils";
|
|
6
|
+
export function DataTableActionsDropdown({ children, className, contentClassName, }) {
|
|
7
|
+
return (_jsx("div", { className: cn("flex items-center justify-center", className), children: _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "flex items-center justify-center rounded-[8px] bg-[#f2f2f2] p-2", "aria-label": "Row actions", children: _jsx(MoreVertical, { className: "h-4 w-4 text-[#4d4d4d]", "aria-hidden": true }) }) }), _jsx(DropdownMenuContent, { align: "end", className: cn("min-w-[180px]", contentClassName), children: children })] }) }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=actions-dropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions-dropdown.js","sourceRoot":"","sources":["../../../../src/components/data-table/actions/actions-dropdown.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAQxC,MAAM,UAAU,wBAAwB,CAAC,EACvC,QAAQ,EACR,SAAS,EACT,gBAAgB,GACc;IAC9B,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,kCAAkC,EAAE,SAAS,CAAC,YAC/D,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,iEAAiE,gBAChE,aAAa,YAExB,KAAC,YAAY,IAAC,SAAS,EAAC,wBAAwB,wBAAe,GACxD,GACW,EACtB,KAAC,mBAAmB,IAClB,KAAK,EAAC,KAAK,EACX,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC,YAE/C,QAAQ,GACW,IACT,GACX,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type DataTableDateTimeCellProps = {
|
|
2
|
+
value: string | Date | null | undefined;
|
|
3
|
+
className?: string;
|
|
4
|
+
/**
|
|
5
|
+
* If the value is a string that cannot be parsed as a Date, we render it as-is.
|
|
6
|
+
* Set this to true if you want to force parsing (will show "N/A" on invalid).
|
|
7
|
+
*/
|
|
8
|
+
strict?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* When true (default), includes time like "05:10 PM".
|
|
11
|
+
* When false, shows only the date.
|
|
12
|
+
*/
|
|
13
|
+
showTime?: boolean;
|
|
14
|
+
};
|
|
15
|
+
export declare function DataTableDateTimeCell({ value, className, strict, showTime, }: DataTableDateTimeCellProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=date-time-cell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-time-cell.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/cells/date-time-cell.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAiBF,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,SAAS,EACT,MAAc,EACd,QAAe,GAChB,EAAE,0BAA0B,2CAgC5B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../../../lib/utils";
|
|
4
|
+
function formatDateTime(date, showTime) {
|
|
5
|
+
return new Intl.DateTimeFormat(undefined, {
|
|
6
|
+
day: "2-digit",
|
|
7
|
+
month: "short",
|
|
8
|
+
year: "numeric",
|
|
9
|
+
...(showTime
|
|
10
|
+
? {
|
|
11
|
+
hour: "2-digit",
|
|
12
|
+
minute: "2-digit",
|
|
13
|
+
hour12: true,
|
|
14
|
+
}
|
|
15
|
+
: {}),
|
|
16
|
+
}).format(date);
|
|
17
|
+
}
|
|
18
|
+
export function DataTableDateTimeCell({ value, className, strict = false, showTime = true, }) {
|
|
19
|
+
if (value === null || value === undefined || value === "") {
|
|
20
|
+
return (_jsx("span", { className: cn("text-[14px] leading-4 font-semibold text-[#1a1a1a]", className), children: "N/A" }));
|
|
21
|
+
}
|
|
22
|
+
if (value instanceof Date) {
|
|
23
|
+
return (_jsx("span", { className: cn("text-[14px] leading-4 font-semibold text-[#1a1a1a]", className), children: formatDateTime(value, showTime) }));
|
|
24
|
+
}
|
|
25
|
+
const parsed = new Date(value);
|
|
26
|
+
const isValid = !Number.isNaN(parsed.getTime());
|
|
27
|
+
if (!isValid) {
|
|
28
|
+
return (_jsx("span", { className: cn("text-[14px] leading-4 font-semibold text-[#1a1a1a]", className), children: strict ? "N/A" : value }));
|
|
29
|
+
}
|
|
30
|
+
return (_jsx("span", { className: cn("text-[14px] leading-4 font-semibold text-[#1a1a1a]", className), children: formatDateTime(parsed, showTime) }));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=date-time-cell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-time-cell.js","sourceRoot":"","sources":["../../../../src/components/data-table/cells/date-time-cell.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAiBxC,SAAS,cAAc,CAAC,IAAU,EAAE,QAAiB;IACnD,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;QACxC,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,SAAS;QACf,GAAG,CAAC,QAAQ;YACV,CAAC,CAAC;gBACE,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,IAAI;aACb;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EACpC,KAAK,EACL,SAAS,EACT,MAAM,GAAG,KAAK,EACd,QAAQ,GAAG,IAAI,GACY;IAC3B,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QAC1D,OAAO,CACL,eAAM,SAAS,EAAE,EAAE,CAAC,oDAAoD,EAAE,SAAS,CAAC,oBAE7E,CACR,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,OAAO,CACL,eAAM,SAAS,EAAE,EAAE,CAAC,oDAAoD,EAAE,SAAS,CAAC,YACjF,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,GAC3B,CACR,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CACL,eAAM,SAAS,EAAE,EAAE,CAAC,oDAAoD,EAAE,SAAS,CAAC,YACjF,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAClB,CACR,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eAAM,SAAS,EAAE,EAAE,CAAC,oDAAoD,EAAE,SAAS,CAAC,YACjF,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC5B,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type PaymentLabel = "Deferred" | "ACH Card" | "Check" | (string & {});
|
|
2
|
+
export type DataTablePaymentPillProps = {
|
|
3
|
+
label: PaymentLabel;
|
|
4
|
+
className?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function DataTablePaymentPill({ label, className }: DataTablePaymentPillProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=payment-pill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-pill.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/cells/payment-pill.tsx"],"names":[],"mappings":"AAOA,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAiB7E,MAAM,MAAM,yBAAyB,GAAG;IACtC,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,yBAAyB,2CAenF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { CreditCard } from "lucide-react";
|
|
4
|
+
import { cn } from "../../../lib/utils";
|
|
5
|
+
function getPaymentStyles(label) {
|
|
6
|
+
if (label === "Deferred") {
|
|
7
|
+
return {
|
|
8
|
+
container: "bg-[#f2f2f2] text-[#666666] font-medium justify-start",
|
|
9
|
+
icon: "text-[#666666]",
|
|
10
|
+
text: "text-[#666666] font-medium",
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
container: "bg-primary/15 text-primary font-bold justify-start",
|
|
15
|
+
icon: "text-primary",
|
|
16
|
+
text: "text-primary font-bold",
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function DataTablePaymentPill({ label, className }) {
|
|
20
|
+
const styles = getPaymentStyles(label);
|
|
21
|
+
return (_jsxs("div", { className: cn("flex min-w-[104px] max-w-fit items-center gap-2 rounded-full px-2 py-1", styles.container, className), children: [_jsx(CreditCard, { className: cn("h-6 shrink-0 w-6", styles.icon), "aria-hidden": true }), _jsx("span", { className: cn("text-[14px] leading-4", styles.text), children: label })] }));
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=payment-pill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-pill.js","sourceRoot":"","sources":["../../../../src/components/data-table/cells/payment-pill.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAIxC,SAAS,gBAAgB,CAAC,KAAmB;IAC3C,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,OAAO;YACL,SAAS,EAAE,uDAAuD;YAClE,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,4BAA4B;SACnC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,SAAS,EAAE,oDAAoD;QAC/D,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,wBAAwB;KAC/B,CAAC;AACJ,CAAC;AAOD,MAAM,UAAU,oBAAoB,CAAC,EAAE,KAAK,EAAE,SAAS,EAA6B;IAClF,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAEvC,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,wEAAwE,EACxE,MAAM,CAAC,SAAS,EAChB,SAAS,CACV,aAED,KAAC,UAAU,IAAC,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,wBAAgB,EAC1E,eAAM,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,YAAG,KAAK,GAAQ,IACrE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type DataTableRecordIdCellProps = {
|
|
2
|
+
id: string;
|
|
3
|
+
className?: string;
|
|
4
|
+
onIconClick?: () => void;
|
|
5
|
+
};
|
|
6
|
+
export declare function DataTableRecordIdCell({ id, className, }: DataTableRecordIdCellProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=record-id-cell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-id-cell.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/cells/record-id-cell.tsx"],"names":[],"mappings":"AAOA,MAAM,MAAM,0BAA0B,GAAG;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EACpC,EAAE,EACF,SAAS,GACV,EAAE,0BAA0B,2CAQ5B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../../../lib/utils";
|
|
4
|
+
export function DataTableRecordIdCell({ id, className, }) {
|
|
5
|
+
return (_jsx("div", { className: cn("flex min-w-0 items-center gap-1", className), children: _jsx("span", { className: "text-[14px] leading-4 font-semibold text-[#1a1a1a]", children: id }) }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=record-id-cell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-id-cell.js","sourceRoot":"","sources":["../../../../src/components/data-table/cells/record-id-cell.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAQxC,MAAM,UAAU,qBAAqB,CAAC,EACpC,EAAE,EACF,SAAS,GACkB;IAC3B,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,iCAAiC,EAAE,SAAS,CAAC,YAC9D,eAAM,SAAS,EAAC,oDAAoD,YACjE,EAAE,GACE,GACH,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-pill.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/cells/status-pill.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAiEF,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,wBAAwB,2CA4BjF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../../../lib/utils";
|
|
4
|
+
const statusConfig = {
|
|
5
|
+
pending: {
|
|
6
|
+
bg: "#fef3c7", // Light yellow background
|
|
7
|
+
dot: "#d97706", // Amber dot
|
|
8
|
+
text: "#d97706", // Amber text
|
|
9
|
+
},
|
|
10
|
+
processed: {
|
|
11
|
+
bg: "#dbeafe", // Light blue background
|
|
12
|
+
dot: "#2563eb", // Blue dot
|
|
13
|
+
text: "#2563eb", // Blue text
|
|
14
|
+
},
|
|
15
|
+
confirmed: {
|
|
16
|
+
bg: "#c6f3df", // Light green background
|
|
17
|
+
dot: "#12845c", // Green dot
|
|
18
|
+
text: "#12845c", // Green text
|
|
19
|
+
},
|
|
20
|
+
draft: {
|
|
21
|
+
bg: "#f5f5f5", // Neutral 100 background
|
|
22
|
+
dot: "#000000", // Black dot
|
|
23
|
+
text: "#000000", // Black text
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
function deslugify(text) {
|
|
27
|
+
// Replace underscores and hyphens with spaces
|
|
28
|
+
return text.replace(/[_-]/g, " ");
|
|
29
|
+
}
|
|
30
|
+
function capitalize(text) {
|
|
31
|
+
// Capitalize first letter of each word
|
|
32
|
+
return text
|
|
33
|
+
.toLowerCase()
|
|
34
|
+
.split(" ")
|
|
35
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
36
|
+
.join(" ");
|
|
37
|
+
}
|
|
38
|
+
function normalizeStatus(label) {
|
|
39
|
+
// Deslugify first, then normalize
|
|
40
|
+
const normalized = deslugify(label).toLowerCase().trim();
|
|
41
|
+
if (normalized.includes("pending"))
|
|
42
|
+
return "pending";
|
|
43
|
+
if (normalized.includes("processed") || normalized.includes("ready for send") || normalized.includes("ready to send"))
|
|
44
|
+
return "processed";
|
|
45
|
+
if (normalized.includes("confirmed"))
|
|
46
|
+
return "confirmed";
|
|
47
|
+
if (normalized.includes("draft"))
|
|
48
|
+
return "draft";
|
|
49
|
+
return "confirmed"; // Default fallback
|
|
50
|
+
}
|
|
51
|
+
function getDisplayLabel(label) {
|
|
52
|
+
const normalized = deslugify(label).toLowerCase().trim();
|
|
53
|
+
// Map "ready for send" or "ready to send" to just "Ready"
|
|
54
|
+
if (normalized.includes("ready for send") || normalized.includes("ready to send")) {
|
|
55
|
+
return "Ready";
|
|
56
|
+
}
|
|
57
|
+
// Otherwise, deslugify and capitalize normally
|
|
58
|
+
return capitalize(deslugify(label));
|
|
59
|
+
}
|
|
60
|
+
export function DataTableStatusPill({ label, className }) {
|
|
61
|
+
const variant = normalizeStatus(label);
|
|
62
|
+
const config = statusConfig[variant];
|
|
63
|
+
// Get the display label with special mappings
|
|
64
|
+
const displayLabel = getDisplayLabel(label);
|
|
65
|
+
return (_jsxs("div", { className: cn("flex min-w-[112px] w-fit items-center justify-center gap-2 rounded-full px-2 py-1", className), style: { backgroundColor: config.bg }, children: [_jsx("span", { className: "h-2 w-2 rounded-full", style: { backgroundColor: config.dot }, "aria-hidden": true }), _jsx("span", { className: "text-[14px] font-bold", style: { color: config.text }, children: displayLabel })] }));
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=status-pill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-pill.js","sourceRoot":"","sources":["../../../../src/components/data-table/cells/status-pill.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Checkbox } from "../../ui/checkbox";
|
|
3
|
+
export declare function DataTableCheckbox({ className, ...props }: React.ComponentProps<typeof Checkbox>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
//# sourceMappingURL=table-checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/cells/table-checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAM7C,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,2CAEvC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Checkbox } from "../../ui/checkbox";
|
|
4
|
+
import { cn } from "../../../lib/utils";
|
|
5
|
+
const baseClassName = "size-4 !grid place-items-center rounded-[5px] !border-[1.5px] !border-[#1a1a1a] !bg-transparent !text-[#1a1a1a] data-[state=checked]:!text-black data-[state=checked]:!border-[#1a1a1a] data-[state=indeterminate]:!text-black data-[state=indeterminate]:!border-[#1a1a1a] focus-visible:ring-0 focus-visible:ring-offset-0 focus-visible:border-[#1a1a1a] [&_[data-slot=checkbox-indicator]]:h-full [&_[data-slot=checkbox-indicator]]:w-full [&_[data-slot=checkbox-indicator]]:grid [&_[data-slot=checkbox-indicator]]:place-items-center [&_[data-slot=checkbox-indicator]_svg]:size-[12px]";
|
|
6
|
+
export function DataTableCheckbox({ className, ...props }) {
|
|
7
|
+
return _jsx(Checkbox, { className: cn(baseClassName, className), ...props });
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=table-checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-checkbox.js","sourceRoot":"","sources":["../../../../src/components/data-table/cells/table-checkbox.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,MAAM,aAAa,GACjB,kkBAAkkB,CAAC;AAErkB,MAAM,UAAU,iBAAiB,CAAC,EAChC,SAAS,EACT,GAAG,KAAK,EAC8B;IACtC,OAAO,KAAC,QAAQ,IAAC,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type DataTableTextCellProps = {
|
|
2
|
+
text: string;
|
|
3
|
+
className?: string;
|
|
4
|
+
textClassName?: string;
|
|
5
|
+
truncate?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare function DataTableTextCell({ text, className, textClassName, truncate, }: DataTableTextCellProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=text-cell.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-cell.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/cells/text-cell.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,SAAS,EACT,aAAa,EACb,QAAgB,GACjB,EAAE,sBAAsB,2CAcxB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../../../lib/utils";
|
|
4
|
+
export function DataTableTextCell({ text, className, textClassName, truncate = false, }) {
|
|
5
|
+
return (_jsx("div", { className: cn("flex min-w-0 items-center", className), children: _jsx("span", { className: cn("text-[14px] leading-4 font-semibold text-[#1a1a1a]", truncate && "min-w-0 flex-1 truncate", textClassName), children: text }) }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=text-cell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-cell.js","sourceRoot":"","sources":["../../../../src/components/data-table/cells/text-cell.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AASxC,MAAM,UAAU,iBAAiB,CAAC,EAChC,IAAI,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,GAAG,KAAK,GACO;IACvB,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,2BAA2B,EAAE,SAAS,CAAC,YACxD,eACE,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,QAAQ,IAAI,yBAAyB,EACrC,aAAa,CACd,YAEA,IAAI,GACA,GACH,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Column } from "@tanstack/react-table";
|
|
3
|
+
export type DataTableColumnHeaderProps<TData, TValue> = {
|
|
4
|
+
column: Column<TData, TValue>;
|
|
5
|
+
title: string;
|
|
6
|
+
className?: string;
|
|
7
|
+
menuContent?: React.ReactNode;
|
|
8
|
+
};
|
|
9
|
+
export declare function DataTableColumnHeader<TData, TValue>({ column, title, className, menuContent, }: DataTableColumnHeaderProps<TData, TValue>): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=column-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-header.d.ts","sourceRoot":"","sources":["../../../src/components/data-table/column-header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAa/C,MAAM,MAAM,0BAA0B,CAAC,KAAK,EAAE,MAAM,IAAI;IACtD,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC/B,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,EACnD,MAAM,EACN,KAAK,EACL,SAAS,EACT,WAAW,GACZ,EAAE,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,2CA4G3C"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { ArrowDown, ArrowUp, EyeOff, MoreVertical, X } from "lucide-react";
|
|
5
|
+
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "../ui/dropdown-menu";
|
|
6
|
+
import { cn } from "../../lib/utils";
|
|
7
|
+
import { useDataTable } from "./provider";
|
|
8
|
+
export function DataTableColumnHeader({ column, title, className, menuContent, }) {
|
|
9
|
+
const { urlState } = useDataTable();
|
|
10
|
+
const canSort = column.getCanSort();
|
|
11
|
+
const canHide = column.getCanHide();
|
|
12
|
+
const showMenu = Boolean(menuContent) || canSort || canHide;
|
|
13
|
+
// Check if this column is sorted via URL state
|
|
14
|
+
const isSortedByUrl = urlState.sortColumn === column.id;
|
|
15
|
+
const sortOrderFromUrl = isSortedByUrl ? urlState.sortOrder : null;
|
|
16
|
+
// Handle sort from column header
|
|
17
|
+
const handleSort = (desc) => {
|
|
18
|
+
urlState.setSorting(column.id, desc ? "desc" : "asc");
|
|
19
|
+
column.toggleSorting(desc);
|
|
20
|
+
};
|
|
21
|
+
const handleClearSort = () => {
|
|
22
|
+
urlState.setSorting(null, null);
|
|
23
|
+
column.clearSorting();
|
|
24
|
+
};
|
|
25
|
+
// Handle hide column
|
|
26
|
+
const handleHide = () => {
|
|
27
|
+
urlState.toggleColumnVisibility(column.id, false);
|
|
28
|
+
column.toggleVisibility(false);
|
|
29
|
+
};
|
|
30
|
+
// Sync visibility with URL state on mount
|
|
31
|
+
React.useEffect(() => {
|
|
32
|
+
const isHiddenInUrl = urlState.hiddenColumns.includes(column.id);
|
|
33
|
+
if (isHiddenInUrl && column.getIsVisible()) {
|
|
34
|
+
column.toggleVisibility(false);
|
|
35
|
+
}
|
|
36
|
+
else if (!isHiddenInUrl && !column.getIsVisible()) {
|
|
37
|
+
column.toggleVisibility(true);
|
|
38
|
+
}
|
|
39
|
+
}, [urlState.hiddenColumns, column]);
|
|
40
|
+
return (_jsxs("div", { className: cn("flex w-full min-w-0 items-center justify-between gap-3", className), children: [_jsx("span", { className: "min-w-0 text-[14px] leading-4 font-normal text-[#4d4d4d]", children: title }), showMenu && (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs("button", { type: "button", className: "relative flex items-center justify-center rounded-[8px] bg-[#f2f2f2] p-2", "aria-label": `${title} column options`, children: [_jsx(MoreVertical, { className: "h-4 w-4 text-[#4d4d4d]", "aria-hidden": true }), isSortedByUrl && (_jsx("div", { className: "absolute -top-1 -right-1 h-2.5 w-2.5 rounded-full bg-[#ef4444] ring-2 ring-white", "aria-label": "Sort active" }))] }) }), _jsx(DropdownMenuContent, { align: "end", className: "min-w-[180px]", children: menuContent ?? (_jsxs(_Fragment, { children: [canSort && (_jsxs(_Fragment, { children: [_jsxs(DropdownMenuItem, { onSelect: () => handleSort(false), children: [_jsx(ArrowUp, { className: "h-4 w-4", "aria-hidden": true }), "Sort ascending", sortOrderFromUrl === "asc" && (_jsx("div", { className: "ml-auto h-1.5 w-1.5 rounded-full bg-primary" }))] }), _jsxs(DropdownMenuItem, { onSelect: () => handleSort(true), children: [_jsx(ArrowDown, { className: "h-4 w-4", "aria-hidden": true }), "Sort descending", sortOrderFromUrl === "desc" && (_jsx("div", { className: "ml-auto h-1.5 w-1.5 rounded-full bg-[#f97316]" }))] }), isSortedByUrl && (_jsxs(DropdownMenuItem, { onSelect: handleClearSort, className: "text-[#dc2626]", children: [_jsx(X, { className: "h-4 w-4 text-[#dc2626]", "aria-hidden": true }), "Clear sort"] }))] })), canSort && canHide && _jsx(DropdownMenuSeparator, {}), canHide && (_jsxs(DropdownMenuItem, { onSelect: handleHide, children: [_jsx(EyeOff, { className: "h-4 w-4", "aria-hidden": true }), "Hide column"] }))] })) })] }))] }));
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=column-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-header.js","sourceRoot":"","sources":["../../../src/components/data-table/column-header.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/columns/selection.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKlD,eAAO,MAAM,8BAA8B,WAAW,CAAC;AAEvD,wBAAgB,qBAAqB,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CA+CxE"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { DataTableCheckbox } from "../cells/table-checkbox";
|
|
4
|
+
export const DATA_TABLE_SELECTION_COLUMN_ID = "select";
|
|
5
|
+
export function createSelectionColumn() {
|
|
6
|
+
return {
|
|
7
|
+
id: DATA_TABLE_SELECTION_COLUMN_ID,
|
|
8
|
+
header: ({ table }) => {
|
|
9
|
+
const allChecked = table.getIsAllRowsSelected();
|
|
10
|
+
const someChecked = table.getIsSomeRowsSelected();
|
|
11
|
+
const headerChecked = allChecked
|
|
12
|
+
? true
|
|
13
|
+
: someChecked
|
|
14
|
+
? "indeterminate"
|
|
15
|
+
: false;
|
|
16
|
+
return (_jsx(DataTableCheckbox, { checked: headerChecked, onCheckedChange: (next) => {
|
|
17
|
+
if (someChecked && !allChecked) {
|
|
18
|
+
table.toggleAllRowsSelected(false);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
table.toggleAllRowsSelected(!!next);
|
|
22
|
+
}, "aria-label": "Select all rows" }));
|
|
23
|
+
},
|
|
24
|
+
cell: ({ row }) => (_jsx("div", { onClick: (event) => event.stopPropagation(), onKeyDown: (event) => event.stopPropagation(), role: "presentation", children: _jsx(DataTableCheckbox, { checked: row.getIsSelected(), onCheckedChange: (next) => row.toggleSelected(!!next), "aria-label": `Select ${row.id}` }) })),
|
|
25
|
+
meta: {
|
|
26
|
+
label: "Select",
|
|
27
|
+
},
|
|
28
|
+
enableSorting: false,
|
|
29
|
+
enableHiding: false,
|
|
30
|
+
size: 40,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=selection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../../src/components/data-table/columns/selection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAKb,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,MAAM,CAAC,MAAM,8BAA8B,GAAG,QAAQ,CAAC;AAEvD,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,EAAE,EAAE,8BAA8B;QAClC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YACpB,MAAM,UAAU,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAChD,MAAM,WAAW,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;YAClD,MAAM,aAAa,GAA8B,UAAU;gBACzD,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,WAAW;oBACX,CAAC,CAAC,eAAe;oBACjB,CAAC,CAAC,KAAK,CAAC;YAEZ,OAAO,CACL,KAAC,iBAAiB,IAChB,OAAO,EAAE,aAAa,EACtB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;oBACxB,IAAI,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC;wBAC/B,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;wBACnC,OAAO;oBACT,CAAC;oBAED,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC,gBACU,iBAAiB,GAC5B,CACH,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CACjB,cACE,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,EAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,EAC7C,IAAI,EAAC,cAAc,YAEnB,KAAC,iBAAiB,IAChB,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,EAC5B,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,gBACzC,UAAU,GAAG,CAAC,EAAE,EAAE,GAC9B,GACE,CACP;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,QAAQ;SACc;QAC/B,aAAa,EAAE,KAAK;QACpB,YAAY,EAAE,KAAK;QACnB,IAAI,EAAE,EAAE;KACT,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { SheetContent } from "../../ui/sheet";
|
|
3
|
+
export type DataTableAllFiltersProps = {
|
|
4
|
+
title?: string;
|
|
5
|
+
side?: React.ComponentProps<typeof SheetContent>["side"];
|
|
6
|
+
buttonClassName?: string;
|
|
7
|
+
contentClassName?: string;
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
};
|
|
10
|
+
export declare function DataTableAllFilters({ title, side, buttonClassName, contentClassName, children, }: DataTableAllFiltersProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=all-filters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"all-filters.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/filters/all-filters.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAS,YAAY,EAAgB,MAAM,gBAAgB,CAAC;AAGnE,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;IACzD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,KAAiB,EACjB,IAAc,EACd,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACT,EAAE,wBAAwB,2CA0B1B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { SlidersHorizontal } from "lucide-react";
|
|
4
|
+
import { Sheet, SheetContent, SheetTrigger } from "../../ui/sheet";
|
|
5
|
+
import { cn } from "../../../lib/utils";
|
|
6
|
+
export function DataTableAllFilters({ title = "Filters", side = "right", buttonClassName, contentClassName, children, }) {
|
|
7
|
+
return (_jsxs(Sheet, { children: [_jsx(SheetTrigger, { asChild: true, children: _jsxs("button", { type: "button", className: cn("flex items-center justify-center gap-2 rounded-[12px] bg-[#f2f2f2] px-4 py-3", buttonClassName), children: [_jsx(SlidersHorizontal, { className: "h-4 w-4 text-[#1a1a1a]", "aria-hidden": true }), _jsx("span", { className: "text-[14px] leading-4 font-semibold text-[#1a1a1a]", children: "All Filters" })] }) }), _jsxs(SheetContent, { side: side, className: cn("p-0", contentClassName), children: [_jsx("div", { className: "p-6", children: _jsx("h2", { className: "text-lg font-semibold text-[#1a1a1a]", children: title }) }), _jsx("div", { className: "px-6 pb-6", children: children })] })] }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=all-filters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"all-filters.js","sourceRoot":"","sources":["../../../../src/components/data-table/filters/all-filters.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAUxC,MAAM,UAAU,mBAAmB,CAAC,EAClC,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,OAAO,EACd,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACiB;IACzB,OAAO,CACL,MAAC,KAAK,eACJ,KAAC,YAAY,IAAC,OAAO,kBACnB,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CACX,8EAA8E,EAC9E,eAAe,CAChB,aAED,KAAC,iBAAiB,IAAC,SAAS,EAAC,wBAAwB,wBAAe,EACpE,eAAM,SAAS,EAAC,oDAAoD,4BAE7D,IACA,GACI,EAEf,MAAC,YAAY,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,aAC9D,cAAK,SAAS,EAAC,KAAK,YAClB,aAAI,SAAS,EAAC,sCAAsC,YAAE,KAAK,GAAM,GAC7D,EACN,cAAK,SAAS,EAAC,WAAW,YAAE,QAAQ,GAAO,IAC9B,IACT,CACT,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type DataTableBulkDeleteProps<TData extends {
|
|
2
|
+
id: string | number;
|
|
3
|
+
}> = {
|
|
4
|
+
onConfirm: (payload: {
|
|
5
|
+
ids: string[];
|
|
6
|
+
rows: TData[];
|
|
7
|
+
}) => void;
|
|
8
|
+
confirmTitle?: string;
|
|
9
|
+
confirmDescription?: string;
|
|
10
|
+
className?: string;
|
|
11
|
+
buttonClassName?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function DataTableBulkDelete<TData extends {
|
|
14
|
+
id: string | number;
|
|
15
|
+
}>({ onConfirm, confirmTitle, confirmDescription, className, buttonClassName, }: DataTableBulkDeleteProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=bulk-delete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulk-delete.d.ts","sourceRoot":"","sources":["../../../../src/components/data-table/filters/bulk-delete.tsx"],"names":[],"mappings":"AAmBA,MAAM,MAAM,wBAAwB,CAAC,KAAK,SAAS;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,IAAI;IAC5E,SAAS,EAAE,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,KAAK,EAAE,CAAA;KAAE,KAAK,IAAI,CAAC;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,KAAK,SAAS;IAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,EAAE,EACzE,SAAS,EACT,YAAyC,EACzC,kBAAoD,EACpD,SAAS,EACT,eAAe,GAChB,EAAE,wBAAwB,CAAC,KAAK,CAAC,2CA0DjC"}
|