blimpui 0.0.18 → 0.0.20

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 (30) hide show
  1. package/dist/$/components/ui/table/DesktopTable.d.ts +1 -1
  2. package/dist/$/components/ui/table/DesktopTable.d.ts.map +1 -1
  3. package/dist/$/components/ui/table/DesktopTable.js +5 -3
  4. package/dist/$/components/ui/table/MobileTable.d.ts +3 -2
  5. package/dist/$/components/ui/table/MobileTable.d.ts.map +1 -1
  6. package/dist/$/components/ui/table/MobileTable.js +22 -1
  7. package/dist/$/components/ui/table/TableEmptyState.d.ts +11 -0
  8. package/dist/$/components/ui/table/TableEmptyState.d.ts.map +1 -0
  9. package/dist/$/components/ui/table/TableEmptyState.js +26 -0
  10. package/dist/$/components/ui/table/TableSkeleton.d.ts +5 -0
  11. package/dist/$/components/ui/table/TableSkeleton.d.ts.map +1 -0
  12. package/dist/$/components/ui/table/TableSkeleton.js +12 -0
  13. package/dist/$/components/ui/table/index.d.ts +1 -1
  14. package/dist/$/components/ui/table/index.d.ts.map +1 -1
  15. package/dist/$/components/ui/table/index.js +3 -3
  16. package/dist/$/components/ui/table/types.d.ts +10 -0
  17. package/dist/$/components/ui/table/types.d.ts.map +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +1 -1
  21. package/package.json +1 -1
  22. package/dist/$/components/primitives/toast/index.d.ts +0 -2
  23. package/dist/$/components/primitives/toast/index.d.ts.map +0 -1
  24. package/dist/$/components/primitives/toast/index.js +0 -1
  25. package/dist/$/components/primitives/toast/index.web.d.ts +0 -2
  26. package/dist/$/components/primitives/toast/index.web.d.ts.map +0 -1
  27. package/dist/$/components/primitives/toast/index.web.js +0 -1
  28. package/dist/$/components/ui/table.d.ts +0 -36
  29. package/dist/$/components/ui/table.d.ts.map +0 -1
  30. package/dist/$/components/ui/table.js +0 -56
@@ -1,5 +1,5 @@
1
1
  import { TableProps } from "./types";
2
- export declare function DesktopTable<T>({ data, columns, handlePress, keyExtractor, className, headerRowClassName, rowClassName, bodyClassName, totalPages, currentPage, onPageChange, paginationProps, }: Pick<TableProps<T>, "data" | "columns" | "keyExtractor" | "className" | "headerRowClassName" | "rowClassName" | "bodyClassName" | "totalPages" | "currentPage" | "onPageChange" | "paginationProps"> & {
2
+ export declare function DesktopTable<T>({ data, columns, handlePress, keyExtractor, className, headerRowClassName, rowClassName, bodyClassName, totalPages, currentPage, onPageChange, paginationProps, isLoading, renderSkeleton, renderEmptyState, showEmptyState, emptyStateProps, }: Pick<TableProps<T>, "data" | "columns" | "keyExtractor" | "className" | "headerRowClassName" | "rowClassName" | "bodyClassName" | "totalPages" | "currentPage" | "onPageChange" | "paginationProps" | "isLoading" | "renderSkeleton" | "renderEmptyState" | "showEmptyState" | "emptyStateProps"> & {
3
3
  handlePress?: (row: T) => void;
4
4
  }): import("react/jsx-runtime").JSX.Element;
5
5
  //# sourceMappingURL=DesktopTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DesktopTable.d.ts","sourceRoot":"","sources":["../../../../../$/components/ui/table/DesktopTable.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC/B,IAAI,EACJ,OAAO,EACP,WAAW,EACX,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,YAAY,EACZ,eAAe,GACf,EAAE,IAAI,CACN,UAAU,CAAC,CAAC,CAAC,EACX,MAAM,GACN,SAAS,GACT,cAAc,GACd,WAAW,GACX,oBAAoB,GACpB,cAAc,GACd,eAAe,GACf,YAAY,GACZ,aAAa,GACb,cAAc,GACd,iBAAiB,CACnB,GAAG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;CAC/B,2CA8EA"}
1
+ {"version":3,"file":"DesktopTable.d.ts","sourceRoot":"","sources":["../../../../../$/components/ui/table/DesktopTable.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKrC,wBAAgB,YAAY,CAAC,CAAC,EAAE,EAC/B,IAAI,EACJ,OAAO,EACP,WAAW,EACX,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,cAAqB,EACrB,eAAe,GACf,EAAE,IAAI,CACN,UAAU,CAAC,CAAC,CAAC,EACX,MAAM,GACN,SAAS,GACT,cAAc,GACd,WAAW,GACX,oBAAoB,GACpB,cAAc,GACd,eAAe,GACf,YAAY,GACZ,aAAa,GACb,cAAc,GACd,iBAAiB,GACjB,WAAW,GACX,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,CACnB,GAAG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;CAC/B,2CA8FA"}
@@ -15,19 +15,21 @@ import { cn } from "../../../lib/utils";
15
15
  import * as TablePrimitive from "../../primitives/table";
16
16
  import { Pagination } from "../pagination";
17
17
  import { TableCellRenderer } from "./TableCellRenderer";
18
+ import { DesktopSkeleton } from "./TableSkeleton";
19
+ import { DesktopEmptyState } from "./TableEmptyState";
18
20
  export function DesktopTable(_a) {
19
- var data = _a.data, columns = _a.columns, handlePress = _a.handlePress, keyExtractor = _a.keyExtractor, className = _a.className, headerRowClassName = _a.headerRowClassName, rowClassName = _a.rowClassName, bodyClassName = _a.bodyClassName, totalPages = _a.totalPages, currentPage = _a.currentPage, onPageChange = _a.onPageChange, paginationProps = _a.paginationProps;
21
+ var data = _a.data, columns = _a.columns, handlePress = _a.handlePress, keyExtractor = _a.keyExtractor, className = _a.className, headerRowClassName = _a.headerRowClassName, rowClassName = _a.rowClassName, bodyClassName = _a.bodyClassName, totalPages = _a.totalPages, currentPage = _a.currentPage, onPageChange = _a.onPageChange, paginationProps = _a.paginationProps, isLoading = _a.isLoading, renderSkeleton = _a.renderSkeleton, renderEmptyState = _a.renderEmptyState, _b = _a.showEmptyState, showEmptyState = _b === void 0 ? true : _b, emptyStateProps = _a.emptyStateProps;
20
22
  return (_jsxs(View, { className: cn("w-full overflow-hidden not-sm:rounded-md", className), children: [_jsxs(TablePrimitive.Root, { children: [_jsx(TablePrimitive.Header, { children: _jsx(TablePrimitive.Row, { className: cn("flex-row border-b-0 bg-muted/50 hover:bg-muted/50", headerRowClassName), children: columns.map(function (col, index) {
21
23
  var _a;
22
24
  return (_jsx(TablePrimitive.Head, { className: cn("flex-1 py-4 justify-center px-4", col.className, col.headerClassName), children: typeof col.header === "string" ? (_jsx(Text, { className: "text-muted-foreground text-sm font-medium", children: col.header })) : (col.header) }, col.id || ((_a = col.accessorKey) === null || _a === void 0 ? void 0 : _a.toString()) || index));
23
- }) }) }), _jsx(TablePrimitive.Body, { className: bodyClassName, children: data.map(function (row, rowIndex) { return (_jsx(TablePrimitive.Row, { className: cn("flex-row border-b border-border text-foreground transition-colors hover:bg-muted/50", handlePress && "cursor-pointer", typeof rowClassName === "function"
25
+ }) }) }), _jsx(TablePrimitive.Body, { className: bodyClassName, children: isLoading ? (renderSkeleton ? (renderSkeleton()) : (_jsx(DesktopSkeleton, { columns: columns }))) : data.length === 0 ? (showEmptyState ? (renderEmptyState ? (renderEmptyState()) : (_jsx(DesktopEmptyState, __assign({}, emptyStateProps)))) : null) : (data.map(function (row, rowIndex) { return (_jsx(TablePrimitive.Row, { className: cn("flex-row border-b border-border text-foreground transition-colors hover:bg-muted/50", handlePress && "cursor-pointer", typeof rowClassName === "function"
24
26
  ? rowClassName(row, rowIndex)
25
27
  : rowClassName), onPress: handlePress ? function () { return handlePress(row); } : undefined, children: columns.map(function (col, colIndex) {
26
28
  var _a;
27
29
  return (_jsx(TablePrimitive.Cell, { className: cn("flex-1 justify-center p-4", col.className, col.cellClassName), children: _jsx(TableCellRenderer, { row: row, column: col }) }, col.id || ((_a = col.accessorKey) === null || _a === void 0 ? void 0 : _a.toString()) || colIndex));
28
30
  }) }, keyExtractor
29
31
  ? keyExtractor(row, rowIndex)
30
- : rowIndex)); }) })] }), totalPages !== undefined &&
32
+ : rowIndex)); })) })] }), totalPages !== undefined &&
31
33
  currentPage !== undefined &&
32
34
  onPageChange !== undefined && (_jsx(View, { className: "border-t border-border p-4", children: _jsx(Pagination, __assign({ totalPages: totalPages, currentPage: currentPage, onPageChange: onPageChange }, paginationProps)) }))] }));
33
35
  }
@@ -1,5 +1,6 @@
1
+ import * as React from "react";
1
2
  import { TableProps } from "./types";
2
- export declare function MobileTable<T>({ data, columns, handlePress, keyExtractor, bodyClassName, rowClassName, mobileCardClassName, mobileHeaderClassName, mobileBodyClassName, onEndReached, onEndReachedThreshold, }: Pick<TableProps<T>, "data" | "columns" | "keyExtractor" | "bodyClassName" | "rowClassName" | "mobileCardClassName" | "mobileHeaderClassName" | "mobileBodyClassName" | "onEndReached" | "onEndReachedThreshold"> & {
3
+ export declare function MobileTable<T>({ data, columns, handlePress, keyExtractor, bodyClassName, rowClassName, mobileCardClassName, mobileHeaderClassName, mobileBodyClassName, onEndReached, onEndReachedThreshold, isLoading, renderSkeleton, renderEmptyState, showEmptyState, emptyStateProps, }: Pick<TableProps<T>, "data" | "columns" | "keyExtractor" | "bodyClassName" | "rowClassName" | "mobileCardClassName" | "mobileHeaderClassName" | "mobileBodyClassName" | "onEndReached" | "onEndReachedThreshold" | "isLoading" | "renderSkeleton" | "renderEmptyState" | "showEmptyState" | "emptyStateProps"> & {
3
4
  handlePress?: (row: T) => void;
4
- }): import("react/jsx-runtime").JSX.Element;
5
+ }): string | number | bigint | boolean | import("react/jsx-runtime").JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode>>;
5
6
  //# sourceMappingURL=MobileTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MobileTable.d.ts","sourceRoot":"","sources":["../../../../../$/components/ui/table/MobileTable.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAC9B,IAAI,EACJ,OAAO,EACP,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,qBAAqB,GACrB,EAAE,IAAI,CACN,UAAU,CAAC,CAAC,CAAC,EACX,MAAM,GACN,SAAS,GACT,cAAc,GACd,eAAe,GACf,cAAc,GACd,qBAAqB,GACrB,uBAAuB,GACvB,qBAAqB,GACrB,cAAc,GACd,uBAAuB,CACzB,GAAG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;CAC/B,2CA6EA"}
1
+ {"version":3,"file":"MobileTable.d.ts","sourceRoot":"","sources":["../../../../../$/components/ui/table/MobileTable.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAC9B,IAAI,EACJ,OAAO,EACP,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EACZ,qBAAqB,EACrB,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,cAAqB,EACrB,eAAe,GACf,EAAE,IAAI,CACN,UAAU,CAAC,CAAC,CAAC,EACX,MAAM,GACN,SAAS,GACT,cAAc,GACd,eAAe,GACf,cAAc,GACd,qBAAqB,GACrB,uBAAuB,GACvB,qBAAqB,GACrB,cAAc,GACd,uBAAuB,GACvB,WAAW,GACX,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,CACnB,GAAG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;CAC/B,mRA0FA"}
@@ -1,10 +1,31 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
1
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
13
  import { LegendList } from "@legendapp/list";
3
14
  import { Pressable, Text, View } from "react-native";
4
15
  import { cn } from "../../../lib/utils";
5
16
  import { TableCellRenderer } from "./TableCellRenderer";
17
+ import { MobileEmptyState } from "./TableEmptyState";
18
+ import { MobileSkeleton } from "./TableSkeleton";
6
19
  export function MobileTable(_a) {
7
- var data = _a.data, columns = _a.columns, handlePress = _a.handlePress, keyExtractor = _a.keyExtractor, bodyClassName = _a.bodyClassName, rowClassName = _a.rowClassName, mobileCardClassName = _a.mobileCardClassName, mobileHeaderClassName = _a.mobileHeaderClassName, mobileBodyClassName = _a.mobileBodyClassName, onEndReached = _a.onEndReached, onEndReachedThreshold = _a.onEndReachedThreshold;
20
+ var data = _a.data, columns = _a.columns, handlePress = _a.handlePress, keyExtractor = _a.keyExtractor, bodyClassName = _a.bodyClassName, rowClassName = _a.rowClassName, mobileCardClassName = _a.mobileCardClassName, mobileHeaderClassName = _a.mobileHeaderClassName, mobileBodyClassName = _a.mobileBodyClassName, onEndReached = _a.onEndReached, onEndReachedThreshold = _a.onEndReachedThreshold, isLoading = _a.isLoading, renderSkeleton = _a.renderSkeleton, renderEmptyState = _a.renderEmptyState, _b = _a.showEmptyState, showEmptyState = _b === void 0 ? true : _b, emptyStateProps = _a.emptyStateProps;
21
+ if (isLoading) {
22
+ return renderSkeleton ? renderSkeleton() : _jsx(MobileSkeleton, {});
23
+ }
24
+ if (!isLoading && data.length === 0) {
25
+ if (showEmptyState === false)
26
+ return null;
27
+ return renderEmptyState ? (renderEmptyState()) : (_jsx(MobileEmptyState, __assign({}, emptyStateProps)));
28
+ }
8
29
  return (_jsx(LegendList, { data: data, estimatedItemSize: 200, keyExtractor: keyExtractor, className: bodyClassName, onEndReached: onEndReached, onEndReachedThreshold: onEndReachedThreshold, renderItem: function (_a) {
9
30
  var item = _a.item, index = _a.index;
10
31
  var headerColumns = columns.filter(function (col) { var _a; return (_a = col.meta) === null || _a === void 0 ? void 0 : _a.isMobileHeader; });
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ interface EmptyStateProps {
3
+ title?: string;
4
+ description?: string;
5
+ className?: string;
6
+ icon?: React.ElementType;
7
+ }
8
+ export declare function DesktopEmptyState(props: EmptyStateProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function MobileEmptyState(props: EmptyStateProps): import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=TableEmptyState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableEmptyState.d.ts","sourceRoot":"","sources":["../../../../../$/components/ui/table/TableEmptyState.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,UAAU,eAAe;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;CACzB;AA8BD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,2CAQvD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,2CAEtD"}
@@ -0,0 +1,26 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { Inbox } from "lucide-react-native";
14
+ import { Text, View } from "react-native";
15
+ import { cn } from "../../../lib/utils";
16
+ import * as TablePrimitive from "../../primitives/table";
17
+ function EmptyStateContent(_a) {
18
+ var _b = _a.title, title = _b === void 0 ? "No data available" : _b, description = _a.description, className = _a.className, _c = _a.icon, Icon = _c === void 0 ? Inbox : _c;
19
+ return (_jsxs(View, { className: cn("flex-col items-center justify-center p-8 gap-1", className), children: [_jsx(View, { className: "flex h-20 w-20 items-center justify-center rounded-full bg-muted/50 mb-4", children: _jsx(Icon, { className: "h-10 w-10 text-muted-foreground", size: 40 }) }), _jsx(Text, { className: "text-muted-foreground text-center font-semibold text-lg", children: title }), description && (_jsx(Text, { className: "text-muted-foreground text-center text-sm max-w-xs", children: description }))] }));
20
+ }
21
+ export function DesktopEmptyState(props) {
22
+ return (_jsx(TablePrimitive.Row, { className: "flex-row border-b border-border hover:bg-transparent", children: _jsx(TablePrimitive.Cell, { className: "flex-1 justify-center p-0", children: _jsx(EmptyStateContent, __assign({}, props)) }) }));
23
+ }
24
+ export function MobileEmptyState(props) {
25
+ return _jsx(EmptyStateContent, __assign({}, props));
26
+ }
@@ -0,0 +1,5 @@
1
+ export declare function DesktopSkeleton({ columns }: {
2
+ columns: any[];
3
+ }): import("react/jsx-runtime").JSX.Element;
4
+ export declare function MobileSkeleton(): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=TableSkeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSkeleton.d.ts","sourceRoot":"","sources":["../../../../../$/components/ui/table/TableSkeleton.tsx"],"names":[],"mappings":"AAMA,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,GAAG,EAAE,CAAA;CAAE,2CAwB9D;AAED,wBAAgB,cAAc,4CA2B7B"}
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { View } from "react-native";
3
+ import { cn } from "../../../lib/utils";
4
+ import * as TablePrimitive from "../../primitives/table";
5
+ import { Skeleton } from "../skeleton";
6
+ export function DesktopSkeleton(_a) {
7
+ var columns = _a.columns;
8
+ return (_jsx(_Fragment, { children: Array.from({ length: 5 }).map(function (_, i) { return (_jsx(TablePrimitive.Row, { className: "flex-row border-b border-border hover:bg-transparent", children: columns.map(function (col, j) { return (_jsx(TablePrimitive.Cell, { className: cn("flex-1 px-4 py-4", col.className, col.cellClassName), children: _jsx(Skeleton, { className: "h-4 w-full" }) }, "skeleton-cell-".concat(i, "-").concat(j))); }) }, "skeleton-row-".concat(i))); }) }));
9
+ }
10
+ export function MobileSkeleton() {
11
+ return (_jsx(View, { className: "gap-4", children: Array.from({ length: 3 }).map(function (_, i) { return (_jsxs(View, { className: "mb-4 rounded-xl border border-border bg-card p-4", children: [_jsxs(View, { className: "mb-4 flex-row items-center justify-between border-b border-border pb-4", children: [_jsx(Skeleton, { className: "h-4 w-1/3" }), _jsx(Skeleton, { className: "h-4 w-1/4" })] }), _jsx(View, { className: "gap-4", children: Array.from({ length: 3 }).map(function (__, j) { return (_jsxs(View, { className: "flex-row items-center justify-between", children: [_jsx(Skeleton, { className: "h-3 w-1/4" }), _jsx(Skeleton, { className: "h-3 w-1/2" })] }, "mobile-skeleton-row-".concat(i, "-").concat(j))); }) })] }, "mobile-skeleton-".concat(i))); }) }));
12
+ }
@@ -1,4 +1,4 @@
1
1
  import { TableProps } from "./types";
2
- export declare function Table<T>({ data, columns, mobileBreakpoint, onRowPress, onItemPress, totalPages, currentPage, onPageChange, paginationProps, onEndReached, onEndReachedThreshold, ...props }: TableProps<T>): import("react/jsx-runtime").JSX.Element;
2
+ export declare function Table<T>({ data, columns, mobileBreakpoint, onRowPress, onItemPress, totalPages, currentPage, onPageChange, paginationProps, onEndReached, onEndReachedThreshold, isLoading, renderSkeleton, renderEmptyState, showEmptyState, emptyStateProps, ...props }: TableProps<T>): import("react/jsx-runtime").JSX.Element;
3
3
  export * from "./types";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../$/components/ui/table/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,wBAAgB,KAAK,CAAC,CAAC,EAAE,EACxB,IAAI,EACJ,OAAO,EACP,gBAAsB,EACtB,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,GAAG,KAAK,EACR,EAAE,UAAU,CAAC,CAAC,CAAC,2CA8Bf;AAED,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../$/components/ui/table/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,wBAAgB,KAAK,CAAC,CAAC,EAAE,EACxB,IAAI,EACJ,OAAO,EACP,gBAAsB,EACtB,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,GAAG,KAAK,EACR,EAAE,UAAU,CAAC,CAAC,CAAC,2CAwCf;AAED,cAAc,SAAS,CAAC"}
@@ -25,13 +25,13 @@ import { useWindowDimensions } from "react-native";
25
25
  import { DesktopTable } from "./DesktopTable";
26
26
  import { MobileTable } from "./MobileTable";
27
27
  export function Table(_a) {
28
- var data = _a.data, columns = _a.columns, _b = _a.mobileBreakpoint, mobileBreakpoint = _b === void 0 ? 768 : _b, onRowPress = _a.onRowPress, onItemPress = _a.onItemPress, totalPages = _a.totalPages, currentPage = _a.currentPage, onPageChange = _a.onPageChange, paginationProps = _a.paginationProps, onEndReached = _a.onEndReached, onEndReachedThreshold = _a.onEndReachedThreshold, props = __rest(_a, ["data", "columns", "mobileBreakpoint", "onRowPress", "onItemPress", "totalPages", "currentPage", "onPageChange", "paginationProps", "onEndReached", "onEndReachedThreshold"]);
28
+ var data = _a.data, columns = _a.columns, _b = _a.mobileBreakpoint, mobileBreakpoint = _b === void 0 ? 768 : _b, onRowPress = _a.onRowPress, onItemPress = _a.onItemPress, totalPages = _a.totalPages, currentPage = _a.currentPage, onPageChange = _a.onPageChange, paginationProps = _a.paginationProps, onEndReached = _a.onEndReached, onEndReachedThreshold = _a.onEndReachedThreshold, isLoading = _a.isLoading, renderSkeleton = _a.renderSkeleton, renderEmptyState = _a.renderEmptyState, showEmptyState = _a.showEmptyState, emptyStateProps = _a.emptyStateProps, props = __rest(_a, ["data", "columns", "mobileBreakpoint", "onRowPress", "onItemPress", "totalPages", "currentPage", "onPageChange", "paginationProps", "onEndReached", "onEndReachedThreshold", "isLoading", "renderSkeleton", "renderEmptyState", "showEmptyState", "emptyStateProps"]);
29
29
  var width = useWindowDimensions().width;
30
30
  var isMobile = width < mobileBreakpoint;
31
31
  var handlePress = onItemPress || onRowPress;
32
32
  if (isMobile) {
33
- return (_jsx(MobileTable, __assign({ data: data, columns: columns, handlePress: handlePress, onEndReached: onEndReached, onEndReachedThreshold: onEndReachedThreshold }, props)));
33
+ return (_jsx(MobileTable, __assign({ data: data, columns: columns, handlePress: handlePress, onEndReached: onEndReached, onEndReachedThreshold: onEndReachedThreshold, isLoading: isLoading, renderSkeleton: renderSkeleton, renderEmptyState: renderEmptyState, showEmptyState: showEmptyState, emptyStateProps: emptyStateProps }, props)));
34
34
  }
35
- return (_jsx(DesktopTable, __assign({ data: data, columns: columns, handlePress: handlePress, totalPages: totalPages, currentPage: currentPage, onPageChange: onPageChange, paginationProps: paginationProps }, props)));
35
+ return (_jsx(DesktopTable, __assign({ data: data, columns: columns, handlePress: handlePress, totalPages: totalPages, currentPage: currentPage, onPageChange: onPageChange, paginationProps: paginationProps, isLoading: isLoading, renderSkeleton: renderSkeleton, renderEmptyState: renderEmptyState, showEmptyState: showEmptyState, emptyStateProps: emptyStateProps }, props)));
36
36
  }
37
37
  export * from "./types";
@@ -37,5 +37,15 @@ export interface TableProps<T> {
37
37
  paginationProps?: Partial<PaginationProps>;
38
38
  onEndReached?: () => void;
39
39
  onEndReachedThreshold?: number;
40
+ isLoading?: boolean;
41
+ renderSkeleton?: () => React.ReactNode;
42
+ renderEmptyState?: () => React.ReactNode;
43
+ showEmptyState?: boolean;
44
+ emptyStateProps?: {
45
+ title?: string;
46
+ description?: string;
47
+ icon?: React.ElementType;
48
+ className?: string;
49
+ };
40
50
  }
41
51
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../$/components/ui/table/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,WAAW,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;IACtB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IACzD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE;QACN,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,eAAe,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAG3C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAC/B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../$/components/ui/table/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,WAAW,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;IACtB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IACzD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE;QACN,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,eAAe,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAG3C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -28,7 +28,7 @@ export * from "./$/components/ui/label";
28
28
  export * from "./$/components/ui/list";
29
29
  export * from "./$/components/ui/toast";
30
30
  export * from "./$/components/ui/menubar";
31
- export * from "./$/components/ui/table";
31
+ export * from "./$/components/ui/table/index";
32
32
  export * from "./$/components/primitives/pagination";
33
33
  export * from "./$/components/ui/popover";
34
34
  export * from "./$/components/ui/picker";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAE/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAE/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAEhD,cAAc,8BAA8B,CAAC;AAE7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,yBAAyB,CAAC;AAExC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AAExC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sCAAsC,CAAC;AAErD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,+BAA+B,CAAC;AAE9C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAElD,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAE/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAE/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAEhD,cAAc,8BAA8B,CAAC;AAE7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,yBAAyB,CAAC;AAExC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AAExC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AAErD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,+BAA+B,CAAC;AAE9C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mCAAmC,CAAC;AAElD,cAAc,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -28,7 +28,7 @@ export * from "./$/components/ui/label";
28
28
  export * from "./$/components/ui/list";
29
29
  export * from "./$/components/ui/toast";
30
30
  export * from "./$/components/ui/menubar";
31
- export * from "./$/components/ui/table";
31
+ export * from "./$/components/ui/table/index";
32
32
  export * from "./$/components/primitives/pagination";
33
33
  export * from "./$/components/ui/popover";
34
34
  export * from "./$/components/ui/picker";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blimpui",
3
- "version": "0.0.18",
3
+ "version": "0.0.20",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,2 +0,0 @@
1
- export * from 'sonner-native';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../$/components/primitives/toast/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- export * from 'sonner-native';
@@ -1,2 +0,0 @@
1
- export * from 'sonner';
2
- //# sourceMappingURL=index.web.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../../$/components/primitives/toast/index.web.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -1 +0,0 @@
1
- export * from 'sonner';
@@ -1,36 +0,0 @@
1
- import * as React from "react";
2
- export interface TableColumn<T> {
3
- header: string | React.ReactNode;
4
- accessorKey?: keyof T;
5
- cell?: (info: {
6
- row: T;
7
- value: any;
8
- }) => React.ReactNode;
9
- id?: string;
10
- meta?: {
11
- isMobileHeader?: boolean;
12
- mobileLabel?: string;
13
- mobileClassName?: string;
14
- };
15
- className?: string;
16
- headerClassName?: string;
17
- cellClassName?: string;
18
- }
19
- interface TableProps<T> {
20
- data: T[];
21
- columns: TableColumn<T>[];
22
- mobileBreakpoint?: number;
23
- className?: string;
24
- onRowPress?: (row: T) => void;
25
- onItemPress?: (row: T) => void;
26
- keyExtractor?: (item: T, index: number) => string;
27
- headerRowClassName?: string;
28
- rowClassName?: string | ((row: T, index: number) => string);
29
- bodyClassName?: string;
30
- mobileCardClassName?: string;
31
- mobileHeaderClassName?: string;
32
- mobileBodyClassName?: string;
33
- }
34
- export declare function Table<T>({ data, columns, mobileBreakpoint, className, onRowPress, onItemPress, keyExtractor, headerRowClassName, rowClassName, bodyClassName, mobileCardClassName, mobileHeaderClassName, mobileBodyClassName, }: TableProps<T>): import("react/jsx-runtime").JSX.Element;
35
- export {};
36
- //# sourceMappingURL=table.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../$/components/ui/table.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,WAAW,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;IACtB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC;IACzD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE;QACN,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,eAAe,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,UAAU,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,EACxB,IAAI,EACJ,OAAO,EACP,gBAAsB,EACtB,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,GACnB,EAAE,UAAU,CAAC,CAAC,CAAC,2CA+Kf"}
@@ -1,56 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { LegendList } from "@legendapp/list";
3
- import { Pressable, Text, View, useWindowDimensions } from "react-native";
4
- import { cn } from "../../lib/utils";
5
- import * as TablePrimitive from "../primitives/table";
6
- export function Table(_a) {
7
- var data = _a.data, columns = _a.columns, _b = _a.mobileBreakpoint, mobileBreakpoint = _b === void 0 ? 768 : _b, className = _a.className, onRowPress = _a.onRowPress, onItemPress = _a.onItemPress, keyExtractor = _a.keyExtractor, headerRowClassName = _a.headerRowClassName, rowClassName = _a.rowClassName, bodyClassName = _a.bodyClassName, mobileCardClassName = _a.mobileCardClassName, mobileHeaderClassName = _a.mobileHeaderClassName, mobileBodyClassName = _a.mobileBodyClassName;
8
- var width = useWindowDimensions().width;
9
- var isMobile = width < mobileBreakpoint;
10
- var handlePress = onItemPress || onRowPress;
11
- var getValue = function (row, column) {
12
- if (column.accessorKey) {
13
- return row[column.accessorKey];
14
- }
15
- return null;
16
- };
17
- var renderCell = function (row, column) {
18
- var value = getValue(row, column);
19
- if (column.cell) {
20
- return column.cell({ row: row, value: value });
21
- }
22
- return (_jsx(Text, { className: "text-foreground text-sm font-medium", children: value }));
23
- };
24
- if (isMobile) {
25
- return (_jsx(LegendList, { data: data, estimatedItemSize: 200, keyExtractor: keyExtractor, className: bodyClassName, renderItem: function (_a) {
26
- var item = _a.item, index = _a.index;
27
- // Separate header columns (shown at top) from body columns
28
- var headerColumns = columns.filter(function (col) { var _a; return (_a = col.meta) === null || _a === void 0 ? void 0 : _a.isMobileHeader; });
29
- var bodyColumns = columns.filter(function (col) { var _a; return !((_a = col.meta) === null || _a === void 0 ? void 0 : _a.isMobileHeader); });
30
- var cardContent = (_jsxs(View, { className: cn("mb-4 rounded-xl border border-border bg-card p-4", mobileCardClassName, typeof rowClassName === "function"
31
- ? rowClassName(item, index)
32
- : rowClassName), children: [headerColumns.length > 0 && (_jsx(View, { className: cn("mb-4 flex-row items-center justify-between border-b border-border pb-4", mobileHeaderClassName), children: headerColumns.map(function (col, idx) {
33
- var _a, _b;
34
- return (_jsx(View, { className: cn((_a = col.meta) === null || _a === void 0 ? void 0 : _a.mobileClassName, col.className), children: renderCell(item, col) }, col.id || ((_b = col.accessorKey) === null || _b === void 0 ? void 0 : _b.toString()) || idx));
35
- }) })), _jsx(View, { className: cn("gap-4", mobileBodyClassName), children: bodyColumns.map(function (col, idx) {
36
- var _a, _b;
37
- return (_jsxs(View, { className: "flex-row items-center justify-between", children: [_jsx(Text, { className: "text-muted-foreground text-sm font-medium", children: ((_a = col.meta) === null || _a === void 0 ? void 0 : _a.mobileLabel) || col.header }), _jsx(View, { className: cn("flex-1 items-end pl-4", col.className, col.cellClassName), children: renderCell(item, col) })] }, col.id || ((_b = col.accessorKey) === null || _b === void 0 ? void 0 : _b.toString()) || idx));
38
- }) })] }));
39
- if (handlePress) {
40
- return (_jsx(Pressable, { onPress: function () { return handlePress(item); }, children: cardContent }));
41
- }
42
- return cardContent;
43
- }, contentContainerStyle: { padding: 16 } }));
44
- }
45
- return (_jsx(View, { className: cn("w-full overflow-hidden not-sm:rounded-md", className), children: _jsxs(TablePrimitive.Root, { children: [_jsx(TablePrimitive.Header, { children: _jsx(TablePrimitive.Row, { className: cn("flex-row border-b-0 bg-muted/50 hover:bg-muted/50", headerRowClassName), children: columns.map(function (col, index) {
46
- var _a;
47
- return (_jsx(TablePrimitive.Head, { className: cn("flex-1 py-4 justify-center px-4", col.className, col.headerClassName), children: typeof col.header === "string" ? (_jsx(Text, { className: "text-muted-foreground text-sm font-medium", children: col.header })) : (col.header) }, col.id || ((_a = col.accessorKey) === null || _a === void 0 ? void 0 : _a.toString()) || index));
48
- }) }) }), _jsx(TablePrimitive.Body, { className: bodyClassName, children: data.map(function (row, rowIndex) { return (_jsx(TablePrimitive.Row, { className: cn("flex-row border-b border-border text-foreground transition-colors hover:bg-muted/50", handlePress && "cursor-pointer", typeof rowClassName === "function"
49
- ? rowClassName(row, rowIndex)
50
- : rowClassName), onPress: handlePress ? function () { return handlePress(row); } : undefined, children: columns.map(function (col, colIndex) {
51
- var _a;
52
- return (_jsx(TablePrimitive.Cell, { className: cn("flex-1 justify-center p-4", col.className, col.cellClassName), children: renderCell(row, col) }, col.id || ((_a = col.accessorKey) === null || _a === void 0 ? void 0 : _a.toString()) || colIndex));
53
- }) }, keyExtractor
54
- ? keyExtractor(row, rowIndex)
55
- : rowIndex)); }) })] }) }));
56
- }