Changelog

Release history and updates for Simple Table.

2.2.1

Jan 13, 2026
  • 🐛 Fix Fixed bug when re-ordering columns that could cause incorrect column positions or rendering issues.

2.2.0

Jan 13, 2026
  • 💥 Breaking Removed rowIdAccessor prop - Simple Table no longer requires you to specify a unique identifier accessor. This simplifies configuration and reduces boilerplate.
  • 💥 Breaking Removed rowId parameter from onRowGroupExpand callback - Use row.id (or any property from your row object) instead of the internal rowId path string.

2.1.7

Jan 7, 2026
  • 🐛 Fix Fixed alignment when row grouping and siblings have children but one or more siblings does not have children - the collapse/expand icon won't show but the text in the rows will still align correctly

2.1.6

Jan 6, 2026
  • 🐛 Fix Keyboard navigation bug fix

2.1.5

Jan 6, 2026
  • 🚀 New Added hideHeader prop to hide the entire table header row while maintaining all table functionality

2.1.4

Jan 4, 2026
  • 🚀 New Added onColumnVisibilityChange callback prop that fires when users show/hide columns, providing the complete visibility state map
  • Improved Updated excludeFromRender behavior - columns with excludeFromRender are now also excluded from the column visibility drawer/popout menu

2.1.3

Jan 4, 2026
  • 🐛 Fix Fixed enum cell editing bugs that prevented proper value selection and updates
  • 🐛 Fix Fixed datepicker cell editing bugs that caused incorrect date handling and display issues

2.1.0

Jan 4, 2026
  • 🚀 New Added expandAll() method to expand all rows at all depths in hierarchical data
  • 🚀 New Added collapseAll() method to collapse all rows at all depths
  • 🚀 New Added expandDepth(depth) method to expand all rows at a specific depth level (0-indexed)
  • 🚀 New Added collapseDepth(depth) method to collapse all rows at a specific depth level
  • 🚀 New Added toggleDepth(depth) method to toggle expansion state for a specific depth level
  • 🚀 New Added setExpandedDepths(depths) method to set which depths are expanded, replacing current state - perfect for restoring saved expansion state
  • 🚀 New Added getExpandedDepths() method to retrieve currently expanded depths as a Set - useful for saving expansion state
  • 🚀 New Added getGroupingProperty(depth) method to get the grouping property name for a specific depth index
  • 🚀 New Added getGroupingDepth(property) method to get the depth index for a specific grouping property name

2.0.9

Jan 3, 2026
  • Improved Enhanced screen reader support with improved announcements for table interactions, cell selection, and data updates
  • Improved Improved keyboard navigation - Tab and Shift+Tab now properly apply and remove filters, sorting, and other table actions
  • Improved Added comprehensive ARIA attributes throughout the table for better accessibility compliance and assistive technology support

2.0.8

Dec 26, 2025
  • 🚀 New Added components prop to HeaderRendererProps containing sortIcon, filterIcon, collapseIcon, and labelContent - allowing custom positioning of header elements

2.0.6

Dec 22, 2025
  • 🚀 New Added autoExpandColumns prop to scale all column widths proportionally to fill the container - perfect for responsive tables that adapt to their container size

2.0.4

Dec 21, 2025
  • 🚀 New Added maxHeight prop to enable adaptive height with virtualization - table shrinks to fit content when there are few rows

2.0.3

Dec 16, 2025
  • 🚀 New Added getCurrentPage() method to TableRefType for retrieving the current page number
  • 🚀 New Added setPage() method to TableRefType for programmatically changing the current page

2.0.2

Dec 15, 2025
  • 🐛 Fix Bug fixes with strong border around row groups.

2.0.1

Dec 13, 2025
  • 🚀 New Added programmatic controls for sorting and filtering

1.9.8

Dec 12, 2025
  • 🐛 Fix Row index now accounts for pagination

1.9.7

Dec 11, 2025
  • Improved Enhanced CellRendererProps with rowPath property to access the path through nested data structures
  • Improved Updated CellRendererProps.formattedValue to support string[], number[], and boolean types for more flexible formatting
  • 🚀 New Added 'hovered' CSS class to cells, enabling custom hover state styling via CSS

1.9.5

Dec 9, 2025
  • 🐛 Fix Fixed bug with nested data that had the same ID as the parent row

1.9.4

Dec 8, 2025
  • 🚀 New Added canExpandRowGroup callback prop to conditionally control which row groups can be expanded
  • 🚀 New Added getAllRows() method to TableRefType for retrieving all flattened rows including nested/grouped data
  • 🚀 New Added getHeaders() method to TableRefType for retrieving the table's current header/column definitions
  • 🚀 New Default skeleton loading state now appears automatically for dynamic row groups when no custom loadingStateRenderer is defined
  • 🚀 New Accessor type now supports nested array paths (e.g., 'albums[0].title' or 'awards[0]') for accessing array data
  • 🚀 New initialSortColumn now supports nested array paths (e.g., initialSortColumn='awards[0]')
  • Improved ValueFormatter return type extended to support string[] and number[] for array formatting
  • Improved ComparatorProps enhanced with valueA, valueB, and formattedValue properties for more flexible sorting logic
  • 🐛 Fix CSV export with pagination now exports all data instead of only the current page

1.9.3

Dec 4, 2025
  • 🐛 Fix Horizontal scrollbar showing up when it shouldn't
  • 🐛 Fix Filter input on click on mobile sometimes closes the filter dropdown
  • 🐛 Fix Height undefined should not use virtualization

1.9.2

Dec 3, 2025
  • 🚀 New Added copyHeadersToClipboard prop to include column headers when copying selected cells to clipboard
  • 🚀 New Added includeHeadersInCSVExport prop to control whether headers are included in CSV exports (defaults to true)
  • 🚀 New Added tableEmptyStateRenderer prop to customize the display when the table has no rows (e.g., after filtering or with no data)

1.9.0

Dec 1, 2025
  • 🚀 New Added setLoading, setError, and setEmpty helper functions to OnRowGroupExpandProps for managing row-level states during async data fetching
  • 🚀 New Added rowIndexPath to OnRowGroupExpandProps - provides array path to navigate nested data structure (e.g., [0, 'teams', 1] for rows[0].teams[1])
  • 🚀 New Added groupingKeys array to OnRowGroupExpandProps - provides all grouping keys from the hierarchy for better context awareness
  • 🚀 New Added loadingStateRenderer, errorStateRenderer, and emptyStateRenderer props for customizing state displays during dynamic loading
  • Improved Enhanced dynamic row loading example with comprehensive three-level hierarchy (Departments → Teams → Employees) showcasing state management
  • Improved Improved OnRowGroupExpandProps documentation with detailed examples of rowIndexPath usage for direct nested data updates

1.8.9

Nov 29, 2025
  • 🚀 New Added onRowGroupExpand callback prop for handling row expand/collapse events with detailed context
  • 🚀 New OnRowGroupExpandProps interface provides row, depth, groupingKey, and isExpanded for flexible data loading
  • Improved Enhanced row grouping documentation with lazy-loading patterns and best practices

1.8.8

Nov 28, 2025
  • 🐛 Fix excludeFromRender does not affect copied values anymore.

1.8.6

Nov 25, 2025
  • 🚀 New Added initialSortColumn and initialSortDirection props to set default sorting on table load
  • 🚀 New Added collapseDefault attribute to start collapsible/expandable columns in collapsed state
  • 🚀 New Added excludeFromRender to hide columns from table while keeping them in CSV exports (perfect for ID columns)
  • 🚀 New Added excludeFromCsv to hide columns from CSV exports while showing in table (perfect for action buttons)
  • 🚀 New Enhanced CellRendererProps with value and formattedValue props for easier custom rendering
  • Improved useFormattedValueForClipboard and useFormattedValueForCSV now default to true when valueFormatter exists (reduces boilerplate)
  • Improved Added distinct CSS variables for sub-column hover (--st-sub-cell-hover-background-color), dragging sub-headers (--st-dragging-sub-header-background-color), and selected sub-cells (--st-selected-sub-cell-background-color, --st-selected-sub-cell-color)

1.8.5

Nov 24, 2025
  • Improved Improved virtual scrolling performance with improved memory usage and faster rendering of large datasets.

1.8.4

Nov 24, 2025
  • 🚀 New Added comparator attribute to HeaderObject for custom sorting based on row-level metadata or complex logic
  • 🚀 New Added valueGetter attribute to extract values from nested objects or compute values dynamically for sorting
  • 🚀 New Added useFormattedValueForClipboard attribute to control whether cells copy formatted values (with symbols, formatting) or raw data
  • 🚀 New Added useFormattedValueForCSV attribute to use formatted values in CSV exports instead of raw data
  • 🚀 New Added exportValueGetter attribute to provide completely custom values for CSV export, different from both raw and formatted display values
  • 🚀 New Exported new TypeScript types: Comparator, ValueGetter, ExportValueGetter with full IntelliSense support
  • Improved Enhanced HR and Sales examples to showcase new clipboard and CSV formatting capabilities

1.8.2

Nov 23, 2025
  • Improved Improved chart width calculations for better responsive behavior
  • Improved Optimized virtualization engine for faster rendering and smoother scrolling

1.8.1

Nov 22, 2025
  • 🚀 New Added lineAreaChart and barChart column types for inline data visualization
  • 🚀 New Smart copy/paste for chart columns: arrays format as comma-separated values (e.g., '10, 15, 12, 18, 25')
  • 🚀 New Chart cells can be pasted with comma-separated values that automatically parse to number arrays
  • Improved Enhanced Infrastructure example with live-updating CPU history chart visualization

1.7.9

Nov 22, 2025
  • 🚀 New Added valueFormatter attribute to HeaderObject for formatting cell values without React components
  • Improved Updated documentation to clarify when to use valueFormatter vs cellRenderer for optimal performance

1.7.6

Nov 19, 2025
  • 🐛 Fix Fixed nested data accessors (e.g., accessor: 'latest.rank') to work correctly

1.7.5

Nov 19, 2025
  • 🚀 New Added isLoading prop to display skeleton loaders while data is being fetched
  • 🚀 New New CSS variable --st-loading-skeleton-bg-color for customizing skeleton appearance
  • 🚀 New New st-loading-skeleton CSS class for advanced styling customization
  • Improved Enhanced pagination demo to showcase loading states during page transitions

1.7.0

Nov 13, 2025
  • 🚀 New Added server-side pagination support with new props: onPageChange, serverSidePagination, and totalRowCount
  • 🚀 New Enable cell selection using keyboard shortcuts (Shift + Arrow keys, Ctrl/Cmd + A, etc.)
  • Improved Improved cell selection while scrolling for a smoother experience
  • Improved Pagination now shows overflow visible when no height is specified, eliminating unnecessary scrolling

1.6.7

Nov 9, 2025
  • Improved Reduced bundle size for improved loading performance

1.6.6

Nov 9, 2025
  • Improved Improved cell selection style for better visual feedback
  • Improved Enhanced scroll behavior while drag selecting cells

1.6.1

Oct 27, 2025
  • Improved Enhanced footer pagination controls for better usability and performance

1.6.0

Oct 26, 2025
  • 🐛 Fix Fixed row numbers calculation with pagination

1.5.6

Oct 26, 2025
  • 🚀 New Added filterIcon prop to customize the column filter icon

1.5.5

Oct 25, 2025
  • 🚀 New Added footerRenderer prop to completely customize table footer UI

1.5.1

Oct 19, 2025
  • 🚀 New Export table data to CSV using tableRef.current?.exportToCSV()

1.5.0

Oct 19, 2025
  • 🚀 New Pinned columns have limited width on mobile devices for better mobile UX
  • 🚀 New Pinned columns can now scroll horizontally on mobile devices
  • Improved Enhanced touch target sizes for better mobile interaction

1.4.7

Oct 18, 2025
  • Improved Improved color contrast and readability across all themes
  • Improved Enhanced styling flags for better visual customization

1.4.4

Oct 15, 2025
  • 🚀 New collapsible columns new ShowWhen attribute: "parentCollapsed" | "parentExpanded" | "always"
  • 💥 Breaking Removed summaryColumn attribute (replaced by showWhen)

View full release notes and download packages: