@stfrigerio/sito-template 0.1.24 → 0.1.25

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.
@@ -62,6 +62,32 @@ export interface RowAction<T = any> {
62
62
  /** Override button styling for this specific action */
63
63
  buttonStyles?: ActionButtonStyles;
64
64
  }
65
+ /**
66
+ * Configuration for bulk action buttons that appear when rows are selected
67
+ * @template T - The type of data objects in the table
68
+ */
69
+ export interface BulkAction<T = any> {
70
+ /** Icon to display in the bulk action button */
71
+ icon: ReactNode;
72
+ /** Label for the bulk action button */
73
+ label: string;
74
+ /** Function called when bulk action is clicked with selected items */
75
+ onClick: (selectedItems: T[]) => void | Promise<void>;
76
+ /** Visual variant of the bulk action button */
77
+ variant?: 'primary' | 'secondary' | 'danger' | 'warning' | 'success' | 'custom';
78
+ /** Function to determine if bulk action should be disabled based on selected items */
79
+ disabled?: (selectedItems: T[]) => boolean;
80
+ /** Minimum number of selected items required to enable this action */
81
+ minSelection?: number;
82
+ /** Maximum number of selected items allowed for this action */
83
+ maxSelection?: number;
84
+ /** Custom CSS class for this bulk action button */
85
+ className?: string;
86
+ /** Custom inline styles for this bulk action button */
87
+ style?: React.CSSProperties;
88
+ /** Confirm message before executing action (optional) */
89
+ confirmMessage?: string | ((selectedItems: T[]) => string);
90
+ }
65
91
  /**
66
92
  * Props for the Table component
67
93
  * @template T - The type of data objects in the table
@@ -88,7 +114,9 @@ export interface TableProps<T = any> {
88
114
  onRowClick?: (item: T, index: number) => void;
89
115
  /** Function called when row selection changes (only when selectable=true) */
90
116
  onSelectionChange?: (selectedItems: T[]) => void;
91
- /** Function that returns action buttons for selected rows (only when selectable=true) */
117
+ /** Array of bulk actions available when rows are selected */
118
+ bulkActions?: BulkAction<T>[];
119
+ /** @deprecated Use bulkActions instead. Function that returns action buttons for selected rows */
92
120
  actions?: (selectedItems: T[]) => ReactNode;
93
121
  /** Configuration for action buttons displayed in each row */
94
122
  rowActions?: RowAction<T>[];
@@ -108,6 +136,8 @@ export interface TableProps<T = any> {
108
136
  stickyHeader?: boolean;
109
137
  /** Enable Framer Motion animations (disable for better performance with large datasets) */
110
138
  animated?: boolean;
139
+ /** Enable horizontal scrolling for tables with many columns */
140
+ horizontalScroll?: boolean;
111
141
  /** Additional CSS class for the table container */
112
142
  className?: string;
113
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/Table/Table.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/Table/Table.tsx"],"names":[],"mappings":"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"}
@@ -40,4 +40,6 @@ export declare const WithSimpleActions: Story;
40
40
  export declare const CustomStyledActions: Story;
41
41
  export declare const WithRowActions: Story;
42
42
  export declare const CustomRendering: Story;
43
+ export declare const WithBulkActions: Story;
44
+ export declare const HorizontalScrolling: Story;
43
45
  //# sourceMappingURL=Table.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/Table/Table.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAkDtD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;CAaoB,CAAA;AAE9B,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAElC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KA6B3B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAmB5B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAe1B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAOnB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAUzB,CAAA;AAwCD,eAAO,MAAM,YAAY,EAAE,KAkB1B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAoB/B,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KA+CjC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KA4D5B,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAyG7B,CAAA"}
1
+ {"version":3,"file":"Table.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/Table/Table.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAkDtD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;CAaoB,CAAA;AAE9B,eAAe,IAAI,CAAA;AACnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAElC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KA6B3B,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAmB5B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAe1B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAOnB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAUzB,CAAA;AAwCD,eAAO,MAAM,YAAY,EAAE,KAkB1B,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAoB/B,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KA+CjC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KA4D5B,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAyG7B,CAAA;AA2BD,eAAO,MAAM,eAAe,EAAE,KA0C7B,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,KAuCjC,CAAA"}
@@ -1,3 +1,3 @@
1
1
  export { Table } from './Table';
2
- export type { Column, TableProps, RowAction, ActionButtonStyles } from './Table';
2
+ export type { Column, TableProps, RowAction, BulkAction, ActionButtonStyles } from './Table';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/Table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/Table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA"}
@@ -15,6 +15,6 @@ export { PieChart } from './charts/PieChart/PieChart';
15
15
  export { ImageSlideshow } from './ImageSlideshow';
16
16
  export type { ImageSlideshowProps, SlideshowImage } from './ImageSlideshow';
17
17
  export { Table } from './Table';
18
- export type { Column, TableProps, RowAction, ActionButtonStyles } from './Table';
18
+ export type { Column, TableProps, RowAction, BulkAction, ActionButtonStyles } from './Table';
19
19
  export * from './charts';
20
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/organisms/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG/E,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG5D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACxE,YAAY,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAC;AACnG,YAAY,EAAE,QAAQ,EAAE,MAAM,0DAA0D,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,YAAY,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAGtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAG5E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGjF,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/organisms/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG/E,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG5D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACxE,YAAY,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAC;AACnG,YAAY,EAAE,QAAQ,EAAE,MAAM,0DAA0D,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,YAAY,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAGtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAG5E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7F,cAAc,UAAU,CAAC"}
package/dist/index.esm.js CHANGED
@@ -3864,7 +3864,7 @@ const ImageSlideshow = ({ images, autoPlay = false, autoPlayInterval = 3000, sho
3864
3864
  } }), lazyLoading && !isImageLoaded && (jsx("div", { className: styles$1.imageLoader, children: jsx("div", { className: styles$1.spinner }) }))] }, currentIndex) }), showControls && imageOrder.length > 1 && (jsxs(Fragment, { children: [jsx("button", { className: `${styles$1.control} ${styles$1.controlPrev}`, onClick: goToPrevious, disabled: !loop && currentIndex === 0, "aria-label": "Previous image", children: jsx(FiChevronLeft, {}) }), jsx("button", { className: `${styles$1.control} ${styles$1.controlNext}`, onClick: goToNext, disabled: !loop && currentIndex === imageOrder.length - 1, "aria-label": "Next image", children: jsx(FiChevronRight, {}) })] })), jsxs("div", { className: styles$1.topControls, children: [enableFullscreen && (jsx("button", { className: `${styles$1.control} ${styles$1.controlAction}`, onClick: toggleFullscreen, "aria-label": isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen', title: isFullscreen ? 'Exit fullscreen (F)' : 'Enter fullscreen (F)', children: jsx("span", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', width: '100%', height: '100%' }, children: jsx(FiMaximize, {}) }) })), enableDownload && (jsx("button", { className: `${styles$1.control} ${styles$1.controlAction}`, onClick: handleDownload, "aria-label": "Download image", title: "Download image", children: jsx("span", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', width: '100%', height: '100%' }, children: jsx(FiDownload, {}) }) })), enableShare && (jsx("button", { className: `${styles$1.control} ${styles$1.controlAction}`, onClick: handleShare, "aria-label": "Share image", title: "Share image", children: jsx("span", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', width: '100%', height: '100%' }, children: jsx(FiShare2, {}) }) }))] }), autoPlay && imageOrder.length > 1 && (jsx("button", { className: `${styles$1.control} ${styles$1.controlPlay}`, onClick: togglePlayPause, "aria-label": isPlaying ? 'Pause slideshow' : 'Play slideshow', title: isPlaying ? 'Pause slideshow (Space)' : 'Play slideshow (Space)', children: isPlaying ? jsx(FiPause, {}) : jsx(FiPlay, {}) })), showCaptions && (currentImage.caption || currentImage.title) && (jsxs(motion.div, { className: styles$1.caption, initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { delay: 0.3 }, children: [currentImage.title && (jsx("h3", { className: styles$1.captionTitle, children: currentImage.title })), currentImage.caption && (jsx("p", { className: styles$1.captionText, children: currentImage.caption })), currentImage.metadata && (jsxs("div", { className: styles$1.imageMetadata, children: [currentImage.metadata.photographer && (jsxs("span", { className: styles$1.metadataItem, children: ["\uD83D\uDCF7 ", currentImage.metadata.photographer] })), currentImage.metadata.location && (jsxs("span", { className: styles$1.metadataItem, children: ["\uD83D\uDCCD ", currentImage.metadata.location] })), currentImage.metadata.camera && (jsxs("span", { className: styles$1.metadataItem, children: ["\uD83D\uDCF9 ", currentImage.metadata.camera] }))] }))] }))] }), showIndicators && imageOrder.length > 1 && (jsx("div", { className: styles$1.indicators, children: imageOrder.map((_, index) => (jsx(motion.button, { className: `${styles$1.indicator} ${index === currentIndex ? styles$1.indicatorActive : ''}`, onClick: () => goToSlide(index), whileHover: { scale: 1.2 }, whileTap: { scale: 0.8 }, "aria-label": `Go to slide ${index + 1}` }, index))) })), showThumbnails && imageOrder.length > 1 && (jsx("div", { className: `${styles$1.thumbnails} ${isDragging ? styles$1.thumbnailsDragging : ''}`, children: imageOrder.map((image, index) => (jsx(motion.button, { className: `${styles$1.thumbnail} ${index === currentIndex ? styles$1.thumbnailActive : ''} ${draggedIndex === index ? styles$1.thumbnailDragged : ''}`, onClick: () => goToSlide(index), whileHover: { scale: 1.05 }, whileTap: { scale: 0.95 }, "aria-label": `Go to ${image.alt}`, draggable: enableDragReorder, onDragStart: (e) => handleDragStart(e, index), onDragOver: handleDragOver, onDrop: (e) => handleDrop(e, index), title: image.title || image.alt, children: jsx("img", { src: image.src, alt: image.alt, className: styles$1.thumbnailImage, draggable: false }) }, image.id))) }))] }));
3865
3865
  };
3866
3866
 
3867
- var styles = {"container":"Table-module_container__CH3T9","header":"Table-module_header__qVoF2","title":"Table-module_title__DSZgm","actions":"Table-module_actions__2J1i0","controls":"Table-module_controls__3WToN","searchBox":"Table-module_searchBox__bh3f3","searchIcon":"Table-module_searchIcon__1pQ5l","searchInput":"Table-module_searchInput__SrK6l","clearButton":"Table-module_clearButton__4Fysz","clearFiltersButton":"Table-module_clearFiltersButton__yFLI9","resultCount":"Table-module_resultCount__RR7Z6","loading":"Table-module_loading__xxSIa","spinner":"Table-module_spinner__T8mdH","empty":"Table-module_empty__-qPi2","emptyIcon":"Table-module_emptyIcon__FLViS","tableWrapper":"Table-module_tableWrapper__LvHGH","stickyHeader":"Table-module_stickyHeader__Dz0O8","table":"Table-module_table__4T9xo","striped":"Table-module_striped__TBcT6","compact":"Table-module_compact__w-QVs","th":"Table-module_th__bpKfX","td":"Table-module_td__HaytM","hoverable":"Table-module_hoverable__4aHgq","headerCell":"Table-module_headerCell__WUy2w","headerText":"Table-module_headerText__WGAqz","sortButton":"Table-module_sortButton__CJwYq","sortIcon":"Table-module_sortIcon__G48h1","columnFilter":"Table-module_columnFilter__hwNd2","tr":"Table-module_tr__-j8Fa","selected":"Table-module_selected__pjiMr","clickable":"Table-module_clickable__9R5oq","checkboxColumn":"Table-module_checkboxColumn__SpbCr","actionsColumn":"Table-module_actionsColumn__7x--N","actionButtons":"Table-module_actionButtons__8JQhr","actionButton":"Table-module_actionButton__9EQZu","actionButtonPrimary":"Table-module_actionButtonPrimary__Xyzgu","actionButtonSecondary":"Table-module_actionButtonSecondary__RiR1E","actionButtonDanger":"Table-module_actionButtonDanger__7aX-2","actionButtonWarning":"Table-module_actionButtonWarning__2s73k","actionButtonSuccess":"Table-module_actionButtonSuccess__DvbtN","checkbox":"Table-module_checkbox__9LC-f","nullValue":"Table-module_nullValue__TVTmT","badge":"Table-module_badge__OO-UL","badgeSuccess":"Table-module_badgeSuccess__uIJVY","badgeDanger":"Table-module_badgeDanger__Y6RPD","code":"Table-module_code__SIFLQ","pagination":"Table-module_pagination__UVcSr","pageInfo":"Table-module_pageInfo__e-k17","pageControls":"Table-module_pageControls__htKNN","pageButton":"Table-module_pageButton__9ukDT","pageNumber":"Table-module_pageNumber__qpnbj","pageSizeSelect":"Table-module_pageSizeSelect__GbSKL"};
3867
+ var styles = {"container":"Table-module_container__CH3T9","header":"Table-module_header__qVoF2","title":"Table-module_title__DSZgm","actions":"Table-module_actions__2J1i0","controls":"Table-module_controls__3WToN","searchBox":"Table-module_searchBox__bh3f3","searchIcon":"Table-module_searchIcon__1pQ5l","searchInput":"Table-module_searchInput__SrK6l","clearButton":"Table-module_clearButton__4Fysz","clearFiltersButton":"Table-module_clearFiltersButton__yFLI9","resultCount":"Table-module_resultCount__RR7Z6","loading":"Table-module_loading__xxSIa","spinner":"Table-module_spinner__T8mdH","empty":"Table-module_empty__-qPi2","emptyIcon":"Table-module_emptyIcon__FLViS","tableWrapper":"Table-module_tableWrapper__LvHGH","stickyHeader":"Table-module_stickyHeader__Dz0O8","table":"Table-module_table__4T9xo","striped":"Table-module_striped__TBcT6","compact":"Table-module_compact__w-QVs","th":"Table-module_th__bpKfX","td":"Table-module_td__HaytM","hoverable":"Table-module_hoverable__4aHgq","headerCell":"Table-module_headerCell__WUy2w","headerText":"Table-module_headerText__WGAqz","sortButton":"Table-module_sortButton__CJwYq","sortIcon":"Table-module_sortIcon__G48h1","columnFilter":"Table-module_columnFilter__hwNd2","tr":"Table-module_tr__-j8Fa","selected":"Table-module_selected__pjiMr","clickable":"Table-module_clickable__9R5oq","checkboxColumn":"Table-module_checkboxColumn__SpbCr","actionsColumn":"Table-module_actionsColumn__7x--N","actionButtons":"Table-module_actionButtons__8JQhr","actionButton":"Table-module_actionButton__9EQZu","actionButtonPrimary":"Table-module_actionButtonPrimary__Xyzgu","actionButtonSecondary":"Table-module_actionButtonSecondary__RiR1E","actionButtonDanger":"Table-module_actionButtonDanger__7aX-2","actionButtonWarning":"Table-module_actionButtonWarning__2s73k","actionButtonSuccess":"Table-module_actionButtonSuccess__DvbtN","checkbox":"Table-module_checkbox__9LC-f","nullValue":"Table-module_nullValue__TVTmT","badge":"Table-module_badge__OO-UL","badgeSuccess":"Table-module_badgeSuccess__uIJVY","badgeDanger":"Table-module_badgeDanger__Y6RPD","code":"Table-module_code__SIFLQ","pagination":"Table-module_pagination__UVcSr","pageInfo":"Table-module_pageInfo__e-k17","pageControls":"Table-module_pageControls__htKNN","pageButton":"Table-module_pageButton__9ukDT","pageNumber":"Table-module_pageNumber__qpnbj","pageSizeSelect":"Table-module_pageSizeSelect__GbSKL","bulkActions":"Table-module_bulkActions__7Rz-X","bulkActionButtons":"Table-module_bulkActionButtons__pb8M2","bulkActionButton":"Table-module_bulkActionButton__UOTDm","selectionCount":"Table-module_selectionCount__ZwGuQ","bulkPrimary":"Table-module_bulkPrimary__qx71n","bulkSecondary":"Table-module_bulkSecondary__WNEOF","bulkDanger":"Table-module_bulkDanger__Aqmye","bulkWarning":"Table-module_bulkWarning__jEkYC","bulkSuccess":"Table-module_bulkSuccess__VQd5s","bulkCustom":"Table-module_bulkCustom__BP47V","horizontalScroll":"Table-module_horizontalScroll__Cgx7N"};
3868
3868
 
3869
3869
  /**
3870
3870
  * A comprehensive table component with sorting, filtering, pagination, selection, and row actions.
@@ -3907,7 +3907,7 @@ var styles = {"container":"Table-module_container__CH3T9","header":"Table-module
3907
3907
  * />
3908
3908
  * ```
3909
3909
  */
3910
- const TableComponent = function Table({ data, columns, keyField = 'id', title, searchable = false, selectable = false, pagination = false, onRowClick, onSelectionChange, actions, rowActions, actionButtonStyles, emptyMessage = 'No data available', loading = false, striped = false, hoverable = true, compact = false, stickyHeader = false, animated = true, className = '' }) {
3910
+ const TableComponent = function Table({ data, columns, keyField = 'id', title, searchable = false, selectable = false, pagination = false, onRowClick, onSelectionChange, actions, bulkActions, rowActions, actionButtonStyles, emptyMessage = 'No data available', loading = false, striped = false, hoverable = true, compact = false, stickyHeader = false, animated = true, horizontalScroll = false, className = '' }) {
3911
3911
  // State
3912
3912
  const [selectedRows, setSelectedRows] = useState(new Set());
3913
3913
  const [searchQuery, setSearchQuery] = useState('');
@@ -4094,10 +4094,30 @@ const TableComponent = function Table({ data, columns, keyField = 'id', title, s
4094
4094
  if (data.length === 0) {
4095
4095
  return (jsxs("div", { className: `${styles.container} ${className}`, children: [title && jsx("h2", { className: styles.title, children: title }), jsxs("div", { className: styles.empty, children: [jsx("span", { className: styles.emptyIcon, children: "\uD83D\uDCCA" }), jsx("p", { children: emptyMessage })] })] }));
4096
4096
  }
4097
- return (jsxs("div", { className: `${styles.container} ${className}`, children: [(title || actions) && (jsxs("div", { className: styles.header, children: [title && jsx("h2", { className: styles.title, children: title }), actions && selectedItems.length > 0 && (jsx("div", { className: styles.actions, children: actions(selectedItems) }))] })), (searchable || hasActiveFilters) && (jsxs("div", { className: styles.controls, children: [searchable && (jsxs("div", { className: styles.searchBox, children: [jsx("span", { className: styles.searchIcon, children: "\uD83D\uDD0D" }), jsx("input", { type: "text", placeholder: "Search...", value: searchQuery, onChange: e => {
4097
+ return (jsxs("div", { className: `${styles.container} ${className}`, children: [(title || actions || bulkActions) && (jsxs("div", { className: styles.header, children: [title && jsx("h2", { className: styles.title, children: title }), selectedItems.length > 0 && (jsxs("div", { className: styles.bulkActions, children: [actions && (jsx("div", { className: styles.actions, children: actions(selectedItems) })), bulkActions && bulkActions.length > 0 && (jsx("div", { className: styles.bulkActionButtons, children: bulkActions.map((bulkAction, index) => {
4098
+ const isDisabled = (bulkAction.disabled && bulkAction.disabled(selectedItems)) ||
4099
+ (bulkAction.minSelection && selectedItems.length < bulkAction.minSelection) ||
4100
+ (bulkAction.maxSelection && selectedItems.length > bulkAction.maxSelection);
4101
+ return (jsxs("button", { className: `${styles.bulkActionButton} ${bulkAction.variant === 'primary' ? styles.bulkPrimary :
4102
+ bulkAction.variant === 'secondary' ? styles.bulkSecondary :
4103
+ bulkAction.variant === 'danger' ? styles.bulkDanger :
4104
+ bulkAction.variant === 'warning' ? styles.bulkWarning :
4105
+ bulkAction.variant === 'success' ? styles.bulkSuccess :
4106
+ bulkAction.variant === 'custom' ? styles.bulkCustom :
4107
+ styles.bulkPrimary} ${bulkAction.className || ''}`, style: bulkAction.style, disabled: !!isDisabled, onClick: async () => {
4108
+ if (bulkAction.confirmMessage) {
4109
+ const message = typeof bulkAction.confirmMessage === 'function'
4110
+ ? bulkAction.confirmMessage(selectedItems)
4111
+ : bulkAction.confirmMessage;
4112
+ if (!confirm(message))
4113
+ return;
4114
+ }
4115
+ await bulkAction.onClick(selectedItems);
4116
+ }, title: bulkAction.label, "aria-label": bulkAction.label, children: [bulkAction.icon, jsx("span", { children: bulkAction.label }), jsxs("span", { className: styles.selectionCount, children: ["(", selectedItems.length, ")"] })] }, index));
4117
+ }) }))] }))] })), (searchable || hasActiveFilters) && (jsxs("div", { className: styles.controls, children: [searchable && (jsxs("div", { className: styles.searchBox, children: [jsx("span", { className: styles.searchIcon, children: "\uD83D\uDD0D" }), jsx("input", { type: "text", placeholder: "Search...", value: searchQuery, onChange: e => {
4098
4118
  setSearchQuery(e.target.value);
4099
4119
  setCurrentPage(1);
4100
- }, className: styles.searchInput }), searchQuery && (jsx("button", { className: styles.clearButton, onClick: () => setSearchQuery(''), children: "\u2715" }))] })), hasActiveFilters && (jsx("button", { className: styles.clearFiltersButton, onClick: clearFilters, children: "Clear All Filters" })), jsxs("div", { className: styles.resultCount, children: [filteredData.length, " ", filteredData.length === 1 ? 'result' : 'results'] })] })), jsx("div", { className: `${styles.tableWrapper} ${stickyHeader ? styles.stickyHeader : ''}`, children: jsxs("table", { className: `
4120
+ }, className: styles.searchInput }), searchQuery && (jsx("button", { className: styles.clearButton, onClick: () => setSearchQuery(''), children: "\u2715" }))] })), hasActiveFilters && (jsx("button", { className: styles.clearFiltersButton, onClick: clearFilters, children: "Clear All Filters" })), jsxs("div", { className: styles.resultCount, children: [filteredData.length, " ", filteredData.length === 1 ? 'result' : 'results'] })] })), jsx("div", { className: `${styles.tableWrapper} ${stickyHeader ? styles.stickyHeader : ''} ${horizontalScroll ? styles.horizontalScroll : ''}`, children: jsxs("table", { className: `
4101
4121
  ${styles.table}
4102
4122
  ${striped ? styles.striped : ''}
4103
4123
  ${hoverable ? styles.hoverable : ''}