@uxuissk/design-system 0.6.0 → 0.7.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.
@@ -48,6 +48,79 @@ export declare interface AccordionProps {
48
48
 
49
49
  export declare type AccordionType = "single" | "multiple";
50
50
 
51
+ export declare interface AdvancedColumn<T = Record<string, any>> {
52
+ /** Unique column key — matches field name in data row */
53
+ key: string;
54
+ /** Column header label */
55
+ header: string;
56
+ /** Enable server-side sort click */
57
+ sortable?: boolean;
58
+ /** Fixed pixel or CSS width */
59
+ width?: number | string;
60
+ /** Minimum width in px (default 80) */
61
+ minWidth?: number;
62
+ /** Text alignment */
63
+ align?: "left" | "center" | "right";
64
+ /** Stick to left edge (frozen column) */
65
+ frozen?: boolean;
66
+ /** Allow hiding via column toggle. Default true */
67
+ hideable?: boolean;
68
+ /** Start hidden */
69
+ defaultHidden?: boolean;
70
+ /** Custom cell renderer */
71
+ render?: (value: any, row: T, index: number) => default_2.ReactNode;
72
+ }
73
+
74
+ export declare function AdvancedDataTable<T extends Record<string, any>>({ columns, data, rowKey, pagination, sortBy, sortOrder, onPageChange, onSortChange, selectable, selectedRows: controlledSelected, onSelectionChange, bulkActions, onRowClick, expandedRowRender, loading, loadingRows, error, emptyMessage, emptyDescription, showColumnToggle, size, stickyHeader, className, }: AdvancedDataTableProps<T>): JSX.Element;
75
+
76
+ export declare interface AdvancedDataTableProps<T = Record<string, any>> {
77
+ /** Column definitions */
78
+ columns: AdvancedColumn<T>[];
79
+ /** Row data */
80
+ data: T[];
81
+ /** Field to use as unique row key (default: "id") */
82
+ rowKey?: string;
83
+ /** Server pagination metadata */
84
+ pagination?: PaginationMeta;
85
+ /** Currently sorted column key */
86
+ sortBy?: string;
87
+ /** Current sort direction */
88
+ sortOrder?: SortOrder;
89
+ /** Called when user changes page or page size */
90
+ onPageChange?: (page: number, pageSize: number) => void;
91
+ /** Called when user clicks a sortable column */
92
+ onSortChange?: (sortBy: string, sortOrder: SortOrder) => void;
93
+ /** Enable row checkboxes */
94
+ selectable?: boolean;
95
+ /** Controlled selection (set of rowKey values) */
96
+ selectedRows?: Set<string | number>;
97
+ /** Called when selection changes */
98
+ onSelectionChange?: (selected: Set<string | number>, rows: T[]) => void;
99
+ /** Actions shown in bulk action bar when rows are selected */
100
+ bulkActions?: BulkAction[];
101
+ /** Called when a row is clicked */
102
+ onRowClick?: (row: T) => void;
103
+ /** Render function for expanded row content */
104
+ expandedRowRender?: (row: T) => default_2.ReactNode;
105
+ /** Show skeleton loading rows */
106
+ loading?: boolean;
107
+ /** Number of skeleton rows to show while loading */
108
+ loadingRows?: number;
109
+ /** Error message — renders error state instead of table body */
110
+ error?: string;
111
+ /** Custom empty state message */
112
+ emptyMessage?: string;
113
+ /** Custom empty state description */
114
+ emptyDescription?: string;
115
+ /** Show column visibility toggle button */
116
+ showColumnToggle?: boolean;
117
+ size?: AdvancedTableSize;
118
+ stickyHeader?: boolean;
119
+ className?: string;
120
+ }
121
+
122
+ export declare type AdvancedTableSize = "sm" | "md" | "lg";
123
+
51
124
  export declare function Alert({ variant, title, children, dismissible, onDismiss, action, icon, className }: AlertProps): JSX.Element | null;
52
125
 
53
126
  declare interface AlertProps {
@@ -144,6 +217,13 @@ export declare type BreadcrumbSeparator = "chevron" | "slash" | "dot";
144
217
 
145
218
  export declare type BreadcrumbSize = "sm" | "md" | "lg";
146
219
 
220
+ export declare interface BulkAction {
221
+ label: string;
222
+ icon?: default_2.ReactNode;
223
+ variant?: "default" | "destructive";
224
+ onClick: (selectedKeys: Array<string | number>) => void;
225
+ }
226
+
147
227
  export declare function ButtonGroup({ children, className, }: {
148
228
  children: default_2.ReactNode;
149
229
  className?: string;
@@ -816,6 +896,12 @@ export declare interface PageHeaderProps {
816
896
 
817
897
  export declare function Pagination({ currentPage, totalPages, onPageChange, siblingCount, showFirstLast, showPrevNext, showPageSize, pageSizeOptions, pageSize, onPageSizeChange, totalItems, size, variant, disabled, showPageInfo, showItemsInfo, prevLabel, nextLabel, }: PaginationProps): JSX.Element;
818
898
 
899
+ export declare interface PaginationMeta {
900
+ page: number;
901
+ pageSize: number;
902
+ totalCount: number;
903
+ }
904
+
819
905
  export declare interface PaginationProps {
820
906
  /** Current active page (1-indexed) */
821
907
  currentPage: number;
@@ -1034,6 +1120,8 @@ export declare function SkeletonTable(): JSX.Element;
1034
1120
 
1035
1121
  export declare type SkeletonVariant = "text" | "rectangular" | "circular" | "rounded";
1036
1122
 
1123
+ export declare type SortOrder = "asc" | "desc";
1124
+
1037
1125
  export declare function Spinner({ size, color, className }: SpinnerProps): JSX.Element;
1038
1126
 
1039
1127
  export declare namespace Spinner {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxuissk/design-system",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/sellsuki-ds.umd.cjs",