Releases: RoboFinSystems/robosystems-report-components
Release list
Release v0.2.10
@robosystems/report-components v0.2.10
Summary: This release adds markdown rendering support for text-block disclosures, enabling rich typography in ExternalTextBlock frames when the underlying data carries an rs:contentType hint.
✨ Features & Improvements
- Markdown text-block disclosures —
ExternalTextBlocknow detectsrs:contentTypeon text-block facts and renders Markdown content with proper typography instead of plain text (#20) - Content-type–aware rendering pipeline — The adapter store and data model have been extended to propagate
contentTypemetadata through to the rendering layer, keeping the component tree source-agnostic StatementTableintegration — Statement tables that embed text-block frames now correctly delegate to the new Markdown-aware path
⚠️ Breaking Changes
None.
🔧 Technical Changes
- Model extension (
model.ts,constants.ts) — AddedcontentTypefield and associated constant for thers:contentTypepredicate - Store adapter update (
adapters/store.ts) — Store now extracts and surfaces content-type metadata when hydrating text-block entries - Test coverage — New and updated unit tests in
render.test.tsxandstore.test.tscovering Markdown rendering and store-level content-type propagation
🐛 Bug Fixes
No bug fixes in this release.
📊 Release Statistics
- Commits: 4
- Files Changed: 9
- Components Updated: 5
- Styles Updated: 0
- Lines Added: 162
- Lines Deleted: 13
- Previous Release: v0.2.9
🔗 Links
- npm: @robosystems/report-components
- Full Changelog: v0.2.9...v0.2.10
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.2.9
@robosystems/report-components v0.2.9
XBRL hypercube scaffolding rows (e.g., Table and Line Items abstracts) are now automatically hidden, producing cleaner financial statement output without requiring consumer-side filtering.
Bug Fixes
- Hidden hypercube scaffolding rows — The pivot logic now filters out XBRL structural rows (
Table,Line Items) that serve as hypercube scaffolding but carry no reportable data. Previously these rows leaked into rendered statements as empty or confusing line items. (#19)
Technical / Internal
- CI hook bypass — Git hooks (
pre-commit,pre-push) now detect CI environments and skip automatically, preventing spurious failures in automated pipelines. (#18)
Breaking Changes
None.
📊 Release Statistics
- Commits: 5
- Files Changed: 5
- Components Updated: 1
- Styles Updated: 0
- Lines Added: 107
- Lines Deleted: 3
- Previous Release: v0.2.8
🔗 Links
- npm: @robosystems/report-components
- Full Changelog: v0.2.8...v0.2.9
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.2.8
@robosystems/report-components v0.2.8
XBRL role suffixes (e.g. _LineItems, _Table, _Abstract) are now automatically stripped from statement labels when data flows through the holon/store adapter, fixing mislabelled rows in rendered financial statements.
🐛 Bug Fixes
- Strip XBRL role suffixes from store-adapter labels — The store/holon data path now normalises concept labels by removing standard XBRL suffixes (
_LineItems,_Table,_Abstract, etc.) before they reach components, aligning behaviour with the SEC adapter and producing cleaner rendered output. (#17)
🏗️ Internal / Tooling
- CI workflows bumped to Node 24–compatible action majors — All GitHub Actions (
actions/checkout,actions/setup-node,actions/cache, etc.) updated to their latest major versions; Dependabot config added to keep them current. (#16) - Pre-push git hook for protected branches — A local hook now prevents accidental direct pushes to
main/releasebranches. (#15)
⚠️ Breaking Changes
None.
📊 Release Statistics
- Commits: 7
- Files Changed: 14
- Components Updated: 4
- Styles Updated: 0
- Lines Added: 152
- Lines Deleted: 28
- Previous Release: v0.2.7
🔗 Links
- npm: @robosystems/report-components
- Full Changelog: v0.2.7...v0.2.8
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.2.7
@robosystems/report-components v0.2.7
A patch release that fixes a critical performance regression in the SEC adapter's label-resolution query, eliminating an expensive 80M-edge graph scan that could stall report rendering.
Bug Fixes
- SEC adapter: anchored
LABELS_Qon taxonomy primary key — The label-lookup query now binds to the taxonomy PK instead of scanning broadly, preventing a full 80M-edge traversal in the graph layer. This restores fast label resolution for SEC-sourced financial statements. (#14)
Documentation
- Updated README to match the current library standard, reflecting the latest adapter surface area and component inventory. (#13)
Breaking Changes
None.
Technical Notes
- Performance: The
LABELS_Qfix insrc/adapters/sec.tsconstrains the Cypher query path, dramatically reducing database work when resolving XBRL labels against large SEC taxonomy graphs. - Test coverage: Corresponding test updates in
test/sec.test.tsverify the corrected query binding.
📊 Release Statistics
- Commits: 5
- Files Changed: 4
- Components Updated: 1
- Styles Updated: 0
- Lines Added: 96
- Lines Deleted: 22
- Previous Release: v0.2.6
🔗 Links
- npm: @robosystems/report-components
- Full Changelog: v0.2.6...v0.2.7
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.2.6
@robosystems/report-components v0.2.6
Summary: This release improves label resolution for SEC filings by sourcing labels from the per-report taxonomy and stripping XBRL role tags, resulting in cleaner, more human-readable financial statement labels out of the box.
✨ Features
- Report-scoped label resolution — The SEC adapter now resolves concept labels from the per-report taxonomy bundled with each filing, producing more accurate and context-appropriate display names instead of falling back to generic labels. (#12)
- XBRL role tag stripping — Resolved labels are automatically cleaned of XBRL dimension suffixes (
[Member],[Axis],[Domain],[Line Items], etc.), so rendered statements display concise, reader-friendly text without manual post-processing.
🐛 Bug Fixes
- Non-fatal label query — The
LABELS_Qquery in the SEC adapter is now non-fatal; if label data is unavailable (e.g., pending reprocessing), the viewer renders gracefully using fallback labels instead of failing to load.
🔧 Technical Changes
- New test coverage added for report-scoped label resolution and role-tag stripping (
test/sec.test.ts). - Adapter internals updated in
src/adapters/sec.ts; public exports unchanged (src/index.tsupdated to reflect internal wiring).
⚠️ Breaking Changes
None.
📊 Release Statistics
- Commits: 6
- Files Changed: 4
- Components Updated: 2
- Styles Updated: 0
- Lines Added: 284
- Lines Deleted: 20
- Previous Release: v0.2.5
🔗 Links
- npm: @robosystems/report-components
- Full Changelog: v0.2.5...v0.2.6
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.2.5
@robosystems/report-components v0.2.5
A bugfix release that corrects rendering of facts associated with multiple fact sets, ensuring all relevant data appears in pivoted financial statement views.
Bug Fixes
- Fixed facts belonging to multiple factSets not rendering in pivot tables — Facts that were associated with more than one
factSetwere previously only rendered once (or dropped entirely). The pivot logic now correctly accounts for multi-factSet membership, ensuring complete and accurate statement output. (#11)
Technical Changes
- Updated the internal data model (
model.ts) and store adapter (store.ts) to properly track and resolve facts across multiple factSet boundaries. - Pivot resolution logic (
pivot.ts) revised to iterate all matching factSet associations when building columnar output. - Added dedicated test coverage for multi-factSet scenarios (
multi-factset.test.ts).
Breaking Changes
None.
📊 Release Statistics
- Commits: 3
- Files Changed: 6
- Components Updated: 3
- Styles Updated: 0
- Lines Added: 127
- Lines Deleted: 4
- Previous Release: v0.2.4
🔗 Links
- npm: @robosystems/report-components
- Full Changelog: v0.2.4...v0.2.5
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.2.4
@robosystems/report-components v0.2.4
Summary: This release introduces structured section title parsing across both adapters, enabling richer metadata extraction (definition, title, and kind) for financial statement sections.
✨ Features & Improvements
- New
sectionsmodule — Addedsrc/sections.tsproviding a dedicated parser for structure titles, decomposing them intodefinition,title, andkindfields for cleaner downstream rendering of statement headers and section labels. - Adapter-level section parsing — Both the SEC adapter (
sec.ts) and store adapter (store.ts) now leverage the new section parser, ensuring consistent title/kind metadata regardless of data source. - Expanded model types — Updated
model.tsto reflect the new section structure, giving consumers typed access to parsed section metadata on report nodes. - Updated public exports —
src/index.tsandsrc/adapters/index.tsre-export the new sections API, making it available to library consumers without deep imports.
⚠️ Breaking Changes
- Section title shape changed — Components or code relying on raw, unparsed section title strings from adapter output may need to update to consume the new
{ definition, title, kind }structure. Check any custom renderers that read section-level metadata directly.
🔧 Technical Changes
- Pivot logic updated —
src/pivot.tsadjusted to align with the new section model, ensuring the pivot/transpose layer correctly threads parsed titles through to rendered tables. - Test coverage expanded — SEC adapter tests (
test/sec.test.ts) updated to validate the new title parsing behavior end-to-end.
🐛 Bug Fixes
- No explicit bug fixes in this release.
PR: #10 · Commits: 3 · Files changed: 9 (+151 / −72)
📊 Release Statistics
- Commits: 3
- Files Changed: 9
- Components Updated: 7
- Styles Updated: 0
- Lines Added: 151
- Lines Deleted: 72
- Previous Release: v0.2.3
🔗 Links
- npm: @robosystems/report-components
- Full Changelog: v0.2.3...v0.2.4
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.2.3
@robosystems/report-components v0.2.3
Summary: This release fixes two correctness bugs in financial statement rendering — per-share and shares-denominated facts now bypass statement-level rescaling, and dimensional/segment facts are properly consolidated on the face statement instead of appearing as separate line items.
🐛 Bug Fixes
- Per-share & shares items opt out of rescaling — Facts with
perShareorsharesunits (e.g., EPS, weighted-average shares outstanding) are no longer incorrectly divided by the statement scale factor (thousands, millions, etc.). This prevents silent misstatement of rendered values. (format) - Segment-dimensional facts consolidated on face statement — When a fact carries a segment/dimensional qualifier (e.g., operating segments reported via XBRL dimensions), the pivot layer now rolls it into the consolidated total line rather than emitting a duplicate or orphaned row. (
pivot)
✨ Improvements
- Holon dimensional facts support (PR #9) — The store adapter and pivot engine now correctly handle multi-dimensional (segment-level) facts sourced from Holon-style graph stores, broadening compatibility with dimensional XBRL taxonomies.
🧪 Tests
- Added
segment-collision.test.ts— dedicated test coverage for the case where segmented dimensional facts collide with the consolidated total, ensuring the pivot output matches expected face-statement structure. - Expanded
store.test.tswith additional adapter-level assertions.
⚠️ Breaking Changes
None.
🔧 Technical Notes
- Constants updated in
src/constants.tsto support the new unit-type classification used by the rescaling opt-out logic. - No style/CSS changes; no new dependencies; no changes to public component APIs or exports.
📊 Release Statistics
- Commits: 5
- Files Changed: 6
- Components Updated: 3
- Styles Updated: 0
- Lines Added: 213
- Lines Deleted: 2
- Previous Release: v0.2.2
🔗 Links
- npm: @robosystems/report-components
- Full Changelog: v0.2.2...v0.2.3
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.2.2
@robosystems/report-components v0.2.2
Summary: This release improves section rendering order to follow the XBRL presentation structure and adds sandboxed HTML rendering for text-block disclosures, ensuring financial statements render with correct ordering and rich narrative content.
✨ Features & Improvements
- Structure-based section ordering — Statement sections are now ordered by their structural identity (presentation linkbase position) rather than by
blockType, producing output that faithfully follows the filer's intended disclosure sequence. - Sandboxed HTML text-block rendering —
ExternalTextBlocknow renders XBRL text-block disclosures (e.g., accounting policies, footnotes) as sandboxed HTML, preserving the original formatting while isolating styles from the host application.
🔧 Technical Changes
- Extended the adapter store (
src/adapters/store.ts) to support the new ordering logic, with accompanying unit tests (test/store.test.ts). - Updated internal model types (
src/model.ts) and constants (src/constants.ts) to capture structure identity metadata used for section sorting.
⚠️ Breaking Changes
None.
🐛 Bug Fixes
- Fixed an issue where sections could render in an incorrect or non-deterministic order when multiple block types shared the same presentation group, improving correctness of multi-section financial statements.
📊 Release Statistics
- Commits: 4
- Files Changed: 7
- Components Updated: 5
- Styles Updated: 0
- Lines Added: 118
- Lines Deleted: 2
- Previous Release: v0.2.1
🔗 Links
- npm: @robosystems/report-components
- Full Changelog: v0.2.1...v0.2.2
- All Releases: View all releases
🤖 Generated with Claude Code
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