Skip to content

Release v0.2.1

Choose a tag to compare

@jfrench9 jfrench9 released this 07 Jul 00:20

@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 ReportView for a more intuitive layout
  • ISO-8601 duration humanization — Duration values like P10Y or P6M are now formatted as readable text ("10 years", "6 months") in fact displays

🐛 Bug Fixes

  • Percentage formatting — Values with unitRef of pure are 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 scopingDetails disclosures 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.ts module (~2k lines added) encapsulating all dimensional pivot logic, fully decoupled from rendering
  • Added test/pivot.test.ts and test/format.test.ts for 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.ts extended 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


🤖 Generated with Claude Code