@nccirtu/tablefy 0.6.2 → 0.6.4

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 (63) hide show
  1. package/README.md +34 -0
  2. package/cli/templates/tablefy/data-table-empty.tsx +0 -1
  3. package/cli/templates/tablefy/data-table-header.tsx +0 -1
  4. package/cli/templates/tablefy/data-table-pagination.tsx +0 -1
  5. package/dist/builders/empty-state.d.ts +46 -0
  6. package/dist/builders/index.d.ts +2 -0
  7. package/dist/builders/table-schema.d.ts +84 -0
  8. package/dist/columns/actions-column.d.ts +3 -3
  9. package/dist/columns/base-column.d.ts +2 -2
  10. package/dist/columns/builders/empty-state.d.ts +46 -0
  11. package/dist/columns/builders/index.d.ts +2 -0
  12. package/dist/columns/builders/table-schema.d.ts +84 -0
  13. package/dist/columns/checkbox-column.d.ts +1 -1
  14. package/dist/columns/columns/actions-column.d.ts +3 -3
  15. package/dist/columns/columns/base-column.d.ts +2 -2
  16. package/dist/columns/columns/checkbox-column.d.ts +1 -1
  17. package/dist/columns/columns/date-column.d.ts +5 -5
  18. package/dist/columns/columns/icon-column.d.ts +7 -7
  19. package/dist/columns/columns/image-column.d.ts +7 -7
  20. package/dist/columns/columns/link-column.d.ts +6 -6
  21. package/dist/columns/columns/number-column.d.ts +3 -3
  22. package/dist/columns/columns/progress-column.d.ts +7 -7
  23. package/dist/columns/columns/text-column.d.ts +3 -3
  24. package/dist/columns/columns/types.d.ts +5 -5
  25. package/dist/columns/date-column.d.ts +5 -5
  26. package/dist/columns/icon-column.d.ts +7 -7
  27. package/dist/columns/image-column.d.ts +7 -7
  28. package/dist/columns/index.d.ts +2 -2
  29. package/dist/columns/index.esm.js +189 -167
  30. package/dist/columns/index.esm.js.map +1 -1
  31. package/dist/columns/index.js +189 -167
  32. package/dist/columns/index.js.map +1 -1
  33. package/dist/columns/link-column.d.ts +6 -6
  34. package/dist/columns/number-column.d.ts +3 -3
  35. package/dist/columns/progress-column.d.ts +7 -7
  36. package/dist/columns/tablefy/data-table-empty.d.ts +1 -1
  37. package/dist/columns/tablefy/data-table-header.d.ts +1 -1
  38. package/dist/columns/tablefy/data-table-pagination.d.ts +1 -1
  39. package/dist/columns/tablefy/data-table.d.ts +1 -1
  40. package/dist/columns/text-column.d.ts +3 -3
  41. package/dist/columns/types/actions.d.ts +20 -0
  42. package/dist/columns/types/empty-state.d.ts +18 -0
  43. package/dist/columns/types/filters.d.ts +25 -0
  44. package/dist/columns/types/index.d.ts +4 -0
  45. package/dist/columns/types/table.d.ts +41 -0
  46. package/dist/columns/types.d.ts +5 -5
  47. package/dist/columns/utils.d.ts +1 -0
  48. package/dist/index.d.ts +2 -2
  49. package/dist/index.esm.js +189 -167
  50. package/dist/index.esm.js.map +1 -1
  51. package/dist/index.js +189 -167
  52. package/dist/index.js.map +1 -1
  53. package/dist/tablefy/data-table-empty.d.ts +1 -1
  54. package/dist/tablefy/data-table-header.d.ts +1 -1
  55. package/dist/tablefy/data-table-pagination.d.ts +1 -1
  56. package/dist/tablefy/data-table.d.ts +1 -1
  57. package/dist/types/actions.d.ts +20 -0
  58. package/dist/types/empty-state.d.ts +18 -0
  59. package/dist/types/filters.d.ts +25 -0
  60. package/dist/types/index.d.ts +4 -0
  61. package/dist/types/table.d.ts +41 -0
  62. package/dist/utils.d.ts +1 -0
  63. package/package.json +1 -1
@@ -1,13 +1,13 @@
1
- import { ColumnDef } from '@tanstack/react-table';
2
- import { ReactNode } from 'react';
3
- import { BaseColumn } from './base-column';
4
- import { BaseColumnConfig } from './types';
1
+ import { ColumnDef } from "@tanstack/react-table";
2
+ import { ReactNode } from "react";
3
+ import { BaseColumn } from "./base-column";
4
+ import { BaseColumnConfig } from "./types";
5
5
  interface LinkColumnConfig<TData> extends BaseColumnConfig<TData> {
6
6
  href?: string | ((row: TData) => string);
7
7
  external?: boolean;
8
8
  icon?: ReactNode;
9
9
  showExternalIcon?: boolean;
10
- underline?: 'always' | 'hover' | 'never';
10
+ underline?: "always" | "hover" | "never";
11
11
  openInNewTab?: boolean;
12
12
  onClick?: (row: TData) => void;
13
13
  }
@@ -19,7 +19,7 @@ export declare class LinkColumn<TData> extends BaseColumn<TData, LinkColumnConfi
19
19
  external(external?: boolean): this;
20
20
  icon(icon: ReactNode): this;
21
21
  showExternalIcon(show?: boolean): this;
22
- underline(style: 'always' | 'hover' | 'never'): this;
22
+ underline(style: "always" | "hover" | "never"): this;
23
23
  openInNewTab(open?: boolean): this;
24
24
  onClick(handler: (row: TData) => void): this;
25
25
  build(): ColumnDef<TData, unknown>;
@@ -1,6 +1,6 @@
1
- import { ColumnDef } from '@tanstack/react-table';
2
- import { BaseColumn } from './base-column';
3
- import { BaseColumnConfig } from './types';
1
+ import { ColumnDef } from "@tanstack/react-table";
2
+ import { BaseColumn } from "./base-column";
3
+ import { BaseColumnConfig } from "./types";
4
4
  interface NumberColumnConfig<TData> extends BaseColumnConfig<TData> {
5
5
  decimals?: number;
6
6
  locale?: string;
@@ -1,12 +1,12 @@
1
- import { ColumnDef } from '@tanstack/react-table';
2
- import { BaseColumn } from './base-column';
3
- import { BaseColumnConfig } from './types';
1
+ import { ColumnDef } from "@tanstack/react-table";
2
+ import { BaseColumn } from "./base-column";
3
+ import { BaseColumnConfig } from "./types";
4
4
  interface ProgressColumnConfig<TData> extends BaseColumnConfig<TData> {
5
5
  max?: number;
6
6
  showValue?: boolean;
7
7
  showPercentage?: boolean;
8
- size?: 'sm' | 'md' | 'lg';
9
- color?: 'default' | 'success' | 'warning' | 'danger' | ((value: number, max: number) => string);
8
+ size?: "sm" | "md" | "lg";
9
+ color?: "default" | "success" | "warning" | "danger" | ((value: number, max: number) => string);
10
10
  thresholds?: {
11
11
  warning?: number;
12
12
  danger?: number;
@@ -20,8 +20,8 @@ export declare class ProgressColumn<TData> extends BaseColumn<TData, ProgressCol
20
20
  showValue(show?: boolean): this;
21
21
  showPercentage(show?: boolean): this;
22
22
  hideLabel(): this;
23
- size(size: 'sm' | 'md' | 'lg'): this;
24
- color(color: 'default' | 'success' | 'warning' | 'danger'): this;
23
+ size(size: "sm" | "md" | "lg"): this;
24
+ color(color: "default" | "success" | "warning" | "danger"): this;
25
25
  colorByThreshold(warning?: number, danger?: number): this;
26
26
  colorByThresholdInverse(warning?: number, danger?: number): this;
27
27
  format(fn: (value: number, max: number) => string): this;
@@ -1,4 +1,4 @@
1
- import { EmptyStateConfig } from "../lib/types";
1
+ import { EmptyStateConfig } from "../types";
2
2
  interface DataTableEmptyProps {
3
3
  config: EmptyStateConfig;
4
4
  colSpan: number;
@@ -1,5 +1,5 @@
1
1
  import { Table as TanstackTable } from "@tanstack/react-table";
2
- import { HeaderAction, SearchConfig } from "../lib/types";
2
+ import { HeaderAction, SearchConfig } from "../types";
3
3
  interface DataTableHeaderProps<TData> {
4
4
  title?: string;
5
5
  description?: string;
@@ -1,5 +1,5 @@
1
1
  import { Table as TanstackTable } from "@tanstack/react-table";
2
- import { PaginationConfig } from "../lib/types";
2
+ import { PaginationConfig } from "../types";
3
3
  interface DataTablePaginationProps<TData> {
4
4
  table: TanstackTable<TData>;
5
5
  config?: PaginationConfig;
@@ -1,5 +1,5 @@
1
1
  import { ColumnDef } from "@tanstack/react-table";
2
- import { DataTableConfig } from "../lib/types";
2
+ import { DataTableConfig } from "../types";
3
3
  interface DataTableProps<TData, TValue> {
4
4
  columns: ColumnDef<TData, TValue>[];
5
5
  data: TData[];
@@ -1,6 +1,6 @@
1
- import { ColumnDef, Row } from '@tanstack/react-table';
2
- import { BaseColumn } from './base-column';
3
- import { FormattedColumnConfig } from './types';
1
+ import { ColumnDef, Row } from "@tanstack/react-table";
2
+ import { BaseColumn } from "./base-column";
3
+ import { FormattedColumnConfig } from "./types";
4
4
  export declare class TextColumn<TData> extends BaseColumn<TData, FormattedColumnConfig<TData>> {
5
5
  static make<TData>(accessor: keyof TData | string): TextColumn<TData>;
6
6
  formatter(fn: (value: unknown, row: Row<TData>) => React.ReactNode): this;
@@ -0,0 +1,20 @@
1
+ import { ReactNode } from "react";
2
+ /**
3
+ * Header Action Configuration
4
+ * Defines actions that can be displayed in the table header
5
+ */
6
+ export interface HeaderAction<TData = unknown> {
7
+ id: string;
8
+ label: string;
9
+ icon?: ReactNode;
10
+ variant?: "default" | "secondary" | "outline" | "ghost" | "destructive";
11
+ size?: "default" | "sm" | "lg" | "icon";
12
+ onClick?: () => void;
13
+ href?: string;
14
+ disabled?: boolean;
15
+ loading?: boolean;
16
+ bulk?: boolean;
17
+ bulkOnClick?: (selectedRows: TData[]) => void;
18
+ hidden?: boolean;
19
+ children?: Omit<HeaderAction<TData>, "children" | "bulk">[];
20
+ }
@@ -0,0 +1,18 @@
1
+ import { ReactNode } from "react";
2
+ /**
3
+ * Empty State Configuration
4
+ * Defines how empty states are displayed in the table
5
+ */
6
+ export interface EmptyStateConfig {
7
+ icon?: ReactNode;
8
+ imageUrl?: string;
9
+ title: string;
10
+ description?: string;
11
+ action?: {
12
+ label: string;
13
+ onClick?: () => void;
14
+ href?: string;
15
+ icon?: ReactNode;
16
+ };
17
+ variant?: "default" | "search" | "filter" | "error" | "custom";
18
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Filter Configuration
3
+ * Defines filters that can be applied to table data
4
+ */
5
+ export interface FilterConfig {
6
+ id: string;
7
+ label: string;
8
+ type: "text" | "select" | "multi-select" | "date" | "date-range" | "boolean";
9
+ column: string;
10
+ placeholder?: string;
11
+ options?: Array<{
12
+ label: string;
13
+ value: string;
14
+ }>;
15
+ }
16
+ /**
17
+ * Search Configuration
18
+ * Defines search functionality for the table
19
+ */
20
+ export interface SearchConfig {
21
+ enabled: boolean;
22
+ placeholder?: string;
23
+ columns?: string[];
24
+ debounce?: number;
25
+ }
@@ -0,0 +1,4 @@
1
+ export type { HeaderAction } from "./actions";
2
+ export type { EmptyStateConfig } from "./empty-state";
3
+ export type { FilterConfig, SearchConfig } from "./filters";
4
+ export type { PaginationConfig, DataTableConfig } from "./table";
@@ -0,0 +1,41 @@
1
+ import { HeaderAction } from "./actions";
2
+ import { EmptyStateConfig } from "./empty-state";
3
+ import { FilterConfig, SearchConfig } from "./filters";
4
+ /**
5
+ * Pagination Configuration
6
+ * Defines pagination settings for the table
7
+ */
8
+ export interface PaginationConfig {
9
+ enabled: boolean;
10
+ pageSize?: number;
11
+ pageSizeOptions?: number[];
12
+ showPageInfo?: boolean;
13
+ showPageSizeSelector?: boolean;
14
+ }
15
+ /**
16
+ * Complete Data Table Configuration
17
+ * Main configuration object for the data table component
18
+ */
19
+ export interface DataTableConfig<TData> {
20
+ title?: string;
21
+ description?: string;
22
+ headerActions?: HeaderAction<TData>[];
23
+ emptyState?: EmptyStateConfig;
24
+ searchEmptyState?: EmptyStateConfig;
25
+ filterEmptyState?: EmptyStateConfig;
26
+ search?: SearchConfig;
27
+ filters?: FilterConfig[];
28
+ pagination?: PaginationConfig;
29
+ enableRowSelection?: boolean;
30
+ enableMultiRowSelection?: boolean;
31
+ enableSorting?: boolean;
32
+ defaultSort?: {
33
+ id: string;
34
+ desc: boolean;
35
+ };
36
+ enableColumnVisibility?: boolean;
37
+ density?: "compact" | "default" | "comfortable";
38
+ bordered?: boolean;
39
+ striped?: boolean;
40
+ hoverable?: boolean;
41
+ }
@@ -1,12 +1,12 @@
1
- import { Row } from '@tanstack/react-table';
2
- import { ReactNode } from 'react';
1
+ import { Row } from "@tanstack/react-table";
2
+ import { ReactNode } from "react";
3
3
  export interface BaseColumnConfig<TData> {
4
4
  accessor: keyof TData | string;
5
5
  label?: string;
6
6
  sortable?: boolean;
7
7
  searchable?: boolean;
8
8
  hidden?: boolean;
9
- align?: 'left' | 'center' | 'right';
9
+ align?: "left" | "center" | "right";
10
10
  width?: string | number;
11
11
  className?: string;
12
12
  headerClassName?: string;
@@ -21,7 +21,7 @@ export interface FormattedColumnConfig<TData> extends BaseColumnConfig<TData> {
21
21
  export interface BadgeColumnConfig<TData> extends BaseColumnConfig<TData> {
22
22
  variants?: Record<string, {
23
23
  label?: string;
24
- variant?: 'default' | 'secondary' | 'destructive' | 'outline' | 'success' | 'warning' | 'info' | 'muted';
24
+ variant?: "default" | "secondary" | "destructive" | "outline" | "success" | "warning" | "info" | "muted";
25
25
  className?: string;
26
26
  icon?: ReactNode;
27
27
  }>;
@@ -31,7 +31,7 @@ export interface ActionConfig<TData> {
31
31
  icon?: ReactNode;
32
32
  onClick?: (row: TData) => void;
33
33
  href?: (row: TData) => string;
34
- variant?: 'default' | 'destructive' | 'ghost';
34
+ variant?: "default" | "destructive" | "ghost";
35
35
  hidden?: (row: TData) => boolean;
36
36
  disabled?: (row: TData) => boolean;
37
37
  }
@@ -0,0 +1 @@
1
+ export declare function cn(...inputs: Array<string | boolean | undefined | null>): string;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { DataTable } from "./tablefy/data-table";
2
2
  export { DataTableSchema } from "./tablefy/data-table-schema";
3
- export { TableSchema, EmptyStateBuilder } from "./lib/builders";
3
+ export { TableSchema, EmptyStateBuilder } from "./builders";
4
4
  export { AvatarGroupColumn, AvatarGroupColumn as avatarGroupColumn, } from "./columns/avatar-group-column";
5
5
  export { BadgeColumn, BadgeColumn as badgeColumn, } from "./columns/badge-column";
6
6
  export { ButtonColumn, ButtonColumn as buttonColumn, } from "./columns/button-column";
@@ -16,4 +16,4 @@ export { ProgressColumn, ProgressColumn as progressColumn, } from "./columns/pro
16
16
  export { SelectColumn, SelectColumn as selectColumn, } from "./columns/select-column";
17
17
  export { TextColumn, TextColumn as textColumn } from "./columns/text-column";
18
18
  export { ActionsColumn } from "./columns/actions-column";
19
- export type { DataTableConfig, EmptyStateConfig, FilterConfig, HeaderAction, PaginationConfig, SearchConfig, } from "./lib/types";
19
+ export type { DataTableConfig, EmptyStateConfig, FilterConfig, HeaderAction, PaginationConfig, SearchConfig, } from "./types";