Tags: alaarab/ogrid
Tags
feat: large-scale virtualization — scaled spacer + windowed data sour… …ce (2.14.1) AG-Grid-style virtual scrolling for very large datasets. - Scaled spacer: useVirtualScroll auto-engages past ~931k rows, clamping the DOM spacer under the browser height cap and remapping scrollTop through a scale factor. New core math: computeScaledGeometry/Window, scrollTopForRowScaled. - Windowed (lazy) data source wired into the render path: IOGridDataGridProps gains a `windowed` accessor; the virtualized body reads each visible row by index and calls requestWindow as the viewport moves. New shared component WindowedPlaceholderRow for loading/error rows. - XlsxGrid now runs fully virtualized (enabled + paginate:false) so CSV/XLSX previews scroll continuously over the whole sheet; defaultSortBy:'' keeps rows in sheet order. - Fix: infinite render loop in useOGridDataFetching (windowed effect keyed on filter object identity) — re-keyed on a content string. - Removed throwaway __spike__ code and its exceljs devDep. - New Storybook stories: WindowedDataSource (radix + fluent). All packages bumped to 2.14.1 and published to npm.
release(2.13.0): @alaarab/ogrid-react-xlsx headerRow option + auto-pr…
…omote default
- New `headerRow: 'auto' | 'header' | 'none'` option on
sheetToGridData / XlsxGrid / XlsxWorkbookGrid / mount(). Default 'auto'
promotes row 1 to column.name when it's all strings, fixes the
"double A/B/C header" UX bug for consumers using cellReferences:true.
- columnId stays as the Excel letter so cellReferences and
INDIRECT("A1") keep resolving the same way; initialFormulas row
indices shift down by one to compensate.
- publish:all script now includes react-xlsx in dep order.
release(2.12.0): swap SheetJS → ExcelJS in @alaarab/ogrid-react-xlsx The npm `xlsx` package is permanently stuck at 0.18.5 (CVE-2023-30533 prototype pollution, CVE-2024-22363 ReDoS); the patched SheetJS is only distributed via cdn.sheetjs.com. Replaced with ExcelJS — MIT, actively maintained, npm-published, no known CVEs. CSV/TSV reading is handled inline via a small RFC 4180 parser so single-sheet text files keep working. Legacy .xls (binary), .xlsm, .xlsb, and .ods are dropped — no maintained npm reader supports them. API surface: - workbookFromBlob() now returns ExcelJS.Workbook (was XLSX.WorkBook). - sheetToGridData() accepts ExcelJS.Worksheet | null | undefined. - The package no longer re-exports XLSX. Consumers parsing workbooks themselves should switch to `new ExcelJS.Workbook().xlsx.load(buf)`. - Output shape (columns, rows, initialFormulas) is unchanged. Workspace: all 11 packages bumped to 2.12.0 to keep versions aligned.
chore(release): v2.11.1 — patch SheetJS to fix CVE-2023-30533 + CVE-2… …024-22363 react-xlsx now sources xlsx from cdn.sheetjs.com (the vendor's official channel) at version 0.20.3. The npm xlsx package is permanently stuck at the vulnerable 0.18.5 — SheetJS stopped publishing there. Same API, same supported formats, same formula engine surface. All other packages bumped to keep the workspace versions aligned.
refactor: freeze react-material at v2.9.1; React surface narrows to R…
…adix + Fluent
MUI's v7 → v9 jump (no v8 ever published as a release) dropped
Typography props the adapter relies on. Rather than port to v9 and
keep paying the MUI churn tax, freeze the same way as Angular and Vue.
react-material stays on disk and on npm at v2.9.1; existing installs
keep working. Active React surface is Radix + Fluent UI.
Build / release / CI:
- Root package.json: workspaces drops packages/react-material; test:material,
dev:react-material, storybook:react-material removed; publish:all
trimmed; build:react-family + test:react-family no longer fan out
- packages/react-material/package.json: "private": true
- .size-limit.json: react-material entry removed
- playwright.shared.ts + scripts/run-playwright-matrix.mjs: react-material
/ port 3002 dropped from matrix
- packages/examples/package.json: drops @alaarab/ogrid-react-material +
@mui/material + @mui/icons-material + @mui/x-data-grid + @emotion/*;
matching dev/build scripts removed
- packages/docs/package.json: drops @alaarab/ogrid-react-material +
@mui/material + @emotion/*
- packages/docs/docusaurus.config.ts: webpack alias + footer link
removed
Docs / homepage:
- ArchitectureDiagram: react-material shown as "Frozen at v2.9.1" inside
the React column
- EpicCTA + index.tsx: React + Material card / install rotation entry /
framework picker UI kit / code example comment all stripped
- getting-started/{overview,installation,quick-start}.mdx: Material UI
install / row / table / tip removed
- installation.mdx: "Frozen adapters" section now lists react-material
alongside Angular/Vue with the MUI v9 reason called out
- README + AGENTS.md + ARCHITECTURE.md: package matrices, dependency
graphs, storybook commands updated
MCP server:
- detect_version install hint and quick-reference resource drop the
React (Material) install line
Verification:
- 11/11 active workspace builds clean (turbo)
- core 1575/1575 · react 583/583 · mcp 41/41 · js
- docusaurus build clean
- 21 audit findings still all the same upstream uuid<14 in
mermaid/sockjs (no fix available)
Thaw path unchanged: re-add packages/react-material to root workspaces,
drop "private": true, npm install. If you do thaw, port to MUI 7.3.10
or audit the v9 Typography breakage first.
PreviousNext