Conversation
TableFooter was never used in the codebase. Table2 uses the footer property on the Table widget instead, which wraps footer content in a div rather than using a dedicated widget. Changes: - Remove lua/wikis/commons/Widget/Table2/TableFooter.lua - Remove TableFooter import from lua/wikis/commons/Widget/Table2/All.lua All tests pass (417 successes).
- Remove wrapper-level styling props (wrapperClasses, wrapperCss, wrapperAttributes) - Remove table-level styling props (tableClasses, tableCss, tableAttributes) - Remove colspan/rowspan from Cell and CellHeader (never used) - Remove Table utility dependency from Cell and CellHeader - Consolidate props to single-level styling (classes, css, attributes on wrapper) - Reorder prop definitions: Structure → Behavior → Content → Styling - Reduces API complexity by 26% (9 props removed) - All 417 tests pass with no regressions
- Remove 'foot' from Table2SectionName alias (was defined but never used) - Remove foot handling logic from Row.lua (elseif for 'foot' section) - Remove unused sortClass and sortbottom CSS class logic - Table footer is rendered as a separate div in Table.lua, not as table rows - All 417 tests pass
- Cell and CellHeader were missing attributes = {} in defaultProps
- This caused nil to be passed to HtmlWidgets.Td/Th when attributes
weren't provided
- HtmlWidgets expects attributes to be a table, not nil
- Fixes 'bad argument to attr' error when rendering cells without
explicit attributes
- All 417 tests pass
- WidgetUtil.collect() is for flattening arrays/class lists, not for merging tables - Using it on attributes caused invalid table entries (arrays mixed with table pairs) - Changed to direct assignment: attributes['data-sort-type'] = props.sortType - This properly merges the sortType into the attributes table - Fixes 'bad argument to attr' error when rendering CellHeaders with sortType - All 417 tests pass
There was a problem hiding this comment.
Pull request overview
Introduces a new “Table2” widget foundation (Lua widgets + SCSS) to support updated table designs including column schemas, striping, sorting, and theming.
Changes:
- Added Table2 widget components (Table, Header/Body, Row/Cell, and supporting contexts/utils).
- Added SCSS styling for Table2 (light/dark surfaces, header/title, striping, theming).
- Wired Table2 stylesheet into the main stylesheet bundle.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| stylesheets/commons/Table2.scss | New Table2 styling (surface, header/title, striping, themed variant). |
| stylesheets/Main.scss | Includes the new Table2 stylesheet in the build. |
| lua/wikis/commons/Widget/Table2/Table.lua | Main Table2 widget with optional column schema + sortable support. |
| lua/wikis/commons/Widget/Table2/TableHeader.lua | Header section that auto-classifies first header row as title vs columns. |
| lua/wikis/commons/Widget/Table2/TableBody.lua | Body section with “smart striping” that accounts for rowspan grouping. |
| lua/wikis/commons/Widget/Table2/Row.lua | Row widget applying section/kind/stripe/highlight classes and cell indexing. |
| lua/wikis/commons/Widget/Table2/Cell.lua | Body cell widget that inherits column schema props and applies sizing/classes. |
| lua/wikis/commons/Widget/Table2/CellHeader.lua | Header cell widget with inherited column schema props + sorting attributes. |
| lua/wikis/commons/Widget/Table2/CellIndexer.lua | Assigns implicit column indices per row, accounting for colspan. |
| lua/wikis/commons/Widget/Table2/ColumnUtil.lua | Utilities for validating/merging column defs and building css/classes. |
| lua/wikis/commons/Widget/Table2/ColumnContext.lua | Context provider for the column schema. |
| lua/wikis/commons/Widget/Table2/ColumnIndexContext.lua | Context provider for implicit column index propagation. |
| lua/wikis/commons/Widget/Table2/Section.lua | Context provider for section (“head” vs “body”) classification. |
| lua/wikis/commons/Widget/Table2/HeaderRowKind.lua | Context provider for header row kind (“title” vs “columns”). |
| lua/wikis/commons/Widget/Table2/BodyStripe.lua | Context provider for body stripe (“odd” vs “even”). |
| lua/wikis/commons/Widget/Table2/All.lua | Convenience exports for the Table2 widget set. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
you have tables with hundreds of rows and way more columns and fwiw i think the memory issue is the biggest problem |





Summary
This PR introduces the base for the new Table widget with the new designs.
Core features:
class=table2__tableOpen questions:
Known limitations:
How did you test this change?
dev + dev tools
https://liquipedia.net/rainbowsix/User:Eetwalt
Test module:
https://liquipedia.net/commons/Module:Table2Test