@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.
package/dist/index.js CHANGED
@@ -3885,7 +3885,7 @@ const ImageSlideshow = ({ images, autoPlay = false, autoPlayInterval = 3000, sho
3885
3885
  } }), lazyLoading && !isImageLoaded && (jsxRuntime.jsx("div", { className: styles$1.imageLoader, children: jsxRuntime.jsx("div", { className: styles$1.spinner }) }))] }, currentIndex) }), showControls && imageOrder.length > 1 && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("button", { className: `${styles$1.control} ${styles$1.controlPrev}`, onClick: goToPrevious, disabled: !loop && currentIndex === 0, "aria-label": "Previous image", children: jsxRuntime.jsx(FiChevronLeft, {}) }), jsxRuntime.jsx("button", { className: `${styles$1.control} ${styles$1.controlNext}`, onClick: goToNext, disabled: !loop && currentIndex === imageOrder.length - 1, "aria-label": "Next image", children: jsxRuntime.jsx(FiChevronRight, {}) })] })), jsxRuntime.jsxs("div", { className: styles$1.topControls, children: [enableFullscreen && (jsxRuntime.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: jsxRuntime.jsx("span", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', width: '100%', height: '100%' }, children: jsxRuntime.jsx(FiMaximize, {}) }) })), enableDownload && (jsxRuntime.jsx("button", { className: `${styles$1.control} ${styles$1.controlAction}`, onClick: handleDownload, "aria-label": "Download image", title: "Download image", children: jsxRuntime.jsx("span", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', width: '100%', height: '100%' }, children: jsxRuntime.jsx(FiDownload, {}) }) })), enableShare && (jsxRuntime.jsx("button", { className: `${styles$1.control} ${styles$1.controlAction}`, onClick: handleShare, "aria-label": "Share image", title: "Share image", children: jsxRuntime.jsx("span", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', width: '100%', height: '100%' }, children: jsxRuntime.jsx(FiShare2, {}) }) }))] }), autoPlay && imageOrder.length > 1 && (jsxRuntime.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 ? jsxRuntime.jsx(FiPause, {}) : jsxRuntime.jsx(FiPlay, {}) })), showCaptions && (currentImage.caption || currentImage.title) && (jsxRuntime.jsxs(framerMotion.motion.div, { className: styles$1.caption, initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { delay: 0.3 }, children: [currentImage.title && (jsxRuntime.jsx("h3", { className: styles$1.captionTitle, children: currentImage.title })), currentImage.caption && (jsxRuntime.jsx("p", { className: styles$1.captionText, children: currentImage.caption })), currentImage.metadata && (jsxRuntime.jsxs("div", { className: styles$1.imageMetadata, children: [currentImage.metadata.photographer && (jsxRuntime.jsxs("span", { className: styles$1.metadataItem, children: ["\uD83D\uDCF7 ", currentImage.metadata.photographer] })), currentImage.metadata.location && (jsxRuntime.jsxs("span", { className: styles$1.metadataItem, children: ["\uD83D\uDCCD ", currentImage.metadata.location] })), currentImage.metadata.camera && (jsxRuntime.jsxs("span", { className: styles$1.metadataItem, children: ["\uD83D\uDCF9 ", currentImage.metadata.camera] }))] }))] }))] }), showIndicators && imageOrder.length > 1 && (jsxRuntime.jsx("div", { className: styles$1.indicators, children: imageOrder.map((_, index) => (jsxRuntime.jsx(framerMotion.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 && (jsxRuntime.jsx("div", { className: `${styles$1.thumbnails} ${isDragging ? styles$1.thumbnailsDragging : ''}`, children: imageOrder.map((image, index) => (jsxRuntime.jsx(framerMotion.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: jsxRuntime.jsx("img", { src: image.src, alt: image.alt, className: styles$1.thumbnailImage, draggable: false }) }, image.id))) }))] }));
3886
3886
  };
3887
3887
 
3888
- 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"};
3888
+ 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"};
3889
3889
 
3890
3890
  /**
3891
3891
  * A comprehensive table component with sorting, filtering, pagination, selection, and row actions.
@@ -3928,7 +3928,7 @@ var styles = {"container":"Table-module_container__CH3T9","header":"Table-module
3928
3928
  * />
3929
3929
  * ```
3930
3930
  */
3931
- 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 = '' }) {
3931
+ 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 = '' }) {
3932
3932
  // State
3933
3933
  const [selectedRows, setSelectedRows] = React.useState(new Set());
3934
3934
  const [searchQuery, setSearchQuery] = React.useState('');
@@ -4115,10 +4115,30 @@ const TableComponent = function Table({ data, columns, keyField = 'id', title, s
4115
4115
  if (data.length === 0) {
4116
4116
  return (jsxRuntime.jsxs("div", { className: `${styles.container} ${className}`, children: [title && jsxRuntime.jsx("h2", { className: styles.title, children: title }), jsxRuntime.jsxs("div", { className: styles.empty, children: [jsxRuntime.jsx("span", { className: styles.emptyIcon, children: "\uD83D\uDCCA" }), jsxRuntime.jsx("p", { children: emptyMessage })] })] }));
4117
4117
  }
4118
- return (jsxRuntime.jsxs("div", { className: `${styles.container} ${className}`, children: [(title || actions) && (jsxRuntime.jsxs("div", { className: styles.header, children: [title && jsxRuntime.jsx("h2", { className: styles.title, children: title }), actions && selectedItems.length > 0 && (jsxRuntime.jsx("div", { className: styles.actions, children: actions(selectedItems) }))] })), (searchable || hasActiveFilters) && (jsxRuntime.jsxs("div", { className: styles.controls, children: [searchable && (jsxRuntime.jsxs("div", { className: styles.searchBox, children: [jsxRuntime.jsx("span", { className: styles.searchIcon, children: "\uD83D\uDD0D" }), jsxRuntime.jsx("input", { type: "text", placeholder: "Search...", value: searchQuery, onChange: e => {
4118
+ return (jsxRuntime.jsxs("div", { className: `${styles.container} ${className}`, children: [(title || actions || bulkActions) && (jsxRuntime.jsxs("div", { className: styles.header, children: [title && jsxRuntime.jsx("h2", { className: styles.title, children: title }), selectedItems.length > 0 && (jsxRuntime.jsxs("div", { className: styles.bulkActions, children: [actions && (jsxRuntime.jsx("div", { className: styles.actions, children: actions(selectedItems) })), bulkActions && bulkActions.length > 0 && (jsxRuntime.jsx("div", { className: styles.bulkActionButtons, children: bulkActions.map((bulkAction, index) => {
4119
+ const isDisabled = (bulkAction.disabled && bulkAction.disabled(selectedItems)) ||
4120
+ (bulkAction.minSelection && selectedItems.length < bulkAction.minSelection) ||
4121
+ (bulkAction.maxSelection && selectedItems.length > bulkAction.maxSelection);
4122
+ return (jsxRuntime.jsxs("button", { className: `${styles.bulkActionButton} ${bulkAction.variant === 'primary' ? styles.bulkPrimary :
4123
+ bulkAction.variant === 'secondary' ? styles.bulkSecondary :
4124
+ bulkAction.variant === 'danger' ? styles.bulkDanger :
4125
+ bulkAction.variant === 'warning' ? styles.bulkWarning :
4126
+ bulkAction.variant === 'success' ? styles.bulkSuccess :
4127
+ bulkAction.variant === 'custom' ? styles.bulkCustom :
4128
+ styles.bulkPrimary} ${bulkAction.className || ''}`, style: bulkAction.style, disabled: !!isDisabled, onClick: async () => {
4129
+ if (bulkAction.confirmMessage) {
4130
+ const message = typeof bulkAction.confirmMessage === 'function'
4131
+ ? bulkAction.confirmMessage(selectedItems)
4132
+ : bulkAction.confirmMessage;
4133
+ if (!confirm(message))
4134
+ return;
4135
+ }
4136
+ await bulkAction.onClick(selectedItems);
4137
+ }, title: bulkAction.label, "aria-label": bulkAction.label, children: [bulkAction.icon, jsxRuntime.jsx("span", { children: bulkAction.label }), jsxRuntime.jsxs("span", { className: styles.selectionCount, children: ["(", selectedItems.length, ")"] })] }, index));
4138
+ }) }))] }))] })), (searchable || hasActiveFilters) && (jsxRuntime.jsxs("div", { className: styles.controls, children: [searchable && (jsxRuntime.jsxs("div", { className: styles.searchBox, children: [jsxRuntime.jsx("span", { className: styles.searchIcon, children: "\uD83D\uDD0D" }), jsxRuntime.jsx("input", { type: "text", placeholder: "Search...", value: searchQuery, onChange: e => {
4119
4139
  setSearchQuery(e.target.value);
4120
4140
  setCurrentPage(1);
4121
- }, className: styles.searchInput }), searchQuery && (jsxRuntime.jsx("button", { className: styles.clearButton, onClick: () => setSearchQuery(''), children: "\u2715" }))] })), hasActiveFilters && (jsxRuntime.jsx("button", { className: styles.clearFiltersButton, onClick: clearFilters, children: "Clear All Filters" })), jsxRuntime.jsxs("div", { className: styles.resultCount, children: [filteredData.length, " ", filteredData.length === 1 ? 'result' : 'results'] })] })), jsxRuntime.jsx("div", { className: `${styles.tableWrapper} ${stickyHeader ? styles.stickyHeader : ''}`, children: jsxRuntime.jsxs("table", { className: `
4141
+ }, className: styles.searchInput }), searchQuery && (jsxRuntime.jsx("button", { className: styles.clearButton, onClick: () => setSearchQuery(''), children: "\u2715" }))] })), hasActiveFilters && (jsxRuntime.jsx("button", { className: styles.clearFiltersButton, onClick: clearFilters, children: "Clear All Filters" })), jsxRuntime.jsxs("div", { className: styles.resultCount, children: [filteredData.length, " ", filteredData.length === 1 ? 'result' : 'results'] })] })), jsxRuntime.jsx("div", { className: `${styles.tableWrapper} ${stickyHeader ? styles.stickyHeader : ''} ${horizontalScroll ? styles.horizontalScroll : ''}`, children: jsxRuntime.jsxs("table", { className: `
4122
4142
  ${styles.table}
4123
4143
  ${striped ? styles.striped : ''}
4124
4144
  ${hoverable ? styles.hoverable : ''}