Release v0.2.1
@robosystems/report-components v0.2.1
Summary: This release introduces a full-fledged fact pivot engine for dimensional rendering of XBRL financial statements, enabling proper breakout of line items by their dimensional members as both rows and columns — along with several formatting and correctness fixes that improve real-world SEC filing output.
✨ Features
- Fact pivot engine (
src/pivot.ts) — New dimensional pivot system that slices and reshapes reported facts along their XBRL axes, supporting both rows and columns layouts with a user-facing toggle (#7) - Dimensions as rows by default — Dimensional members now render as nested rows beneath their parent concept, with a rows/columns toggle for switching to columnar breakouts; empty cells are blanked for cleaner tables
- Dimensions toggle relocated — The dimensions rows/columns toggle now sits below the slicer controls in
ReportViewfor a more intuitive layout - ISO-8601 duration humanization — Duration values like
P10YorP6Mare now formatted as readable text ("10 years", "6 months") in fact displays
🐛 Bug Fixes
- Percentage formatting — Values with
unitRefofpureare no longer incorrectly treated as percentages; actual percentages are now correctly multiplied by 100 for display - Member row ordering — Member rows now appear above the concept total row, following standard accounting sum order
- Member column ordering — Company-namespaced dimensional members are ordered according to the presentation linkbase rather than arbitrarily
- Empty member columns dropped — Columns with no reported facts are pruned from the pivot output
- Incomplete period columns filtered — Sparse period columns are dropped using SEC-style density selection, reducing noisy or misleading empty columns
- Heading rows for member-only concepts — Concepts that contain only dimensional member facts (no top-level total) now correctly receive a heading row
- Pivot axis scoping — Only axes explicitly declared in a statement's presentation tree are pivoted; unrelated dimensions no longer leak into the table
- Details disclosure scoping —
Detailsdisclosures are now scoped to their declared members only, preventing unrelated facts from appearing - Abstract element registration — Abstract presentation elements from the SEC adapter are now registered so that section headers render in the correct position above their child line items
🔧 Technical Changes
- New
src/pivot.tsmodule (~2k lines added) encapsulating all dimensional pivot logic, fully decoupled from rendering - Added
test/pivot.test.tsandtest/format.test.tsfor dedicated unit coverage of the pivot engine and formatter - Updated SEC adapter (
src/adapters/sec.ts) to emit abstract nodes required by the presentation walk - Model types in
src/model.tsextended to support pivot metadata
⚠️ Breaking Changes
- Dimensions render as rows by default — Previously, dimensional data was not pivoted. Statements with dimensional facts will now render differently out of the box. Use the new toggle to switch to column mode if needed.
📊 Release Statistics
- Commits: 15
- Files Changed: 15
- Components Updated: 8
- Styles Updated: 0
- Lines Added: 2463
- Lines Deleted: 413
- Previous Release: v0.2.0
🔗 Links
- npm: @robosystems/report-components
- Full Changelog: v0.2.0...v0.2.1
- All Releases: View all releases
🤖 Generated with Claude Code