{"description":"Feature, licensing, pricing and framework data for Infinite Table and other data grids. Every competitor claim has a source URL; see lastVerified per product.","source":"https://github.com/infinite-table/infinite-react/blob/master/www/src/compare/matrix.ts","corrections":"https://github.com/infinite-table/infinite-react/issues/new?template=compare_page_correction.md","features":{"rowVirtualization":{"key":"rowVirtualization","label":"Row virtualization","description":"Only the visible rows are rendered, out of the box."},"columnVirtualization":{"key":"columnVirtualization","label":"Column virtualization","description":"Only the visible columns are rendered, out of the box."},"sorting":{"key":"sorting","label":"Multi-column sorting","description":"Built-in sorting UI, including sorting by several columns."},"filtering":{"key":"filtering","label":"Column filters","description":"Built-in filter UI: a filter row, header filters or a filter menu."},"columnResizing":{"key":"columnResizing","label":"Column resizing","description":"Users drag to resize columns."},"columnReordering":{"key":"columnReordering","label":"Column reordering","description":"Users drag and drop columns to reorder them."},"columnPinning":{"key":"columnPinning","label":"Column pinning","description":"Pin (freeze) columns to the left or right."},"columnGroups":{"key":"columnGroups","label":"Column groups","description":"Multi-level, grouped column headers."},"columnMenu":{"key":"columnMenu","label":"Column menu","description":"A built-in column header menu (sort, hide, pin...)."},"rowGrouping":{"key":"rowGrouping","label":"Row grouping","description":"Group rows by one or more columns, with expand and collapse."},"aggregations":{"key":"aggregations","label":"Aggregations","description":"Aggregated values (sum, average...) for groups or totals."},"pivoting":{"key":"pivoting","label":"Pivoting","description":"Pivot rows into dynamically generated columns."},"treeData":{"key":"treeData","label":"Tree data","description":"Hierarchical (tree) rows."},"masterDetail":{"key":"masterDetail","label":"Master-detail","description":"Expandable detail rows with custom content or a nested grid."},"lazyLoading":{"key":"lazyLoading","label":"Lazy loading","description":"Load rows from a server in batches as the user scrolls."},"serverSideOperations":{"key":"serverSideOperations","label":"Server-side sort, filter and group","description":"Built-in support for sorting, filtering and grouping on the server."},"pagination":{"key":"pagination","label":"Pagination UI","description":"A built-in pager."},"cellEditing":{"key":"cellEditing","label":"Cell editing","description":"Inline cell editing with built-in editors."},"rowSelection":{"key":"rowSelection","label":"Row selection","description":"Select rows, including checkbox selection."},"cellSelection":{"key":"cellSelection","label":"Cell selection","description":"Select multiple cells or ranges of cells."},"keyboardNavigation":{"key":"keyboardNavigation","label":"Keyboard navigation","description":"Move between cells with the keyboard."},"contextMenu":{"key":"contextMenu","label":"Context menu","description":"A built-in cell or row context menu."},"rowReordering":{"key":"rowReordering","label":"Row drag and drop","description":"Reorder rows by dragging them."},"clipboard":{"key":"clipboard","label":"Clipboard","description":"Copy (and paste) cells, built in."},"csvExport":{"key":"csvExport","label":"CSV export","description":"Built-in export to CSV."},"excelExport":{"key":"excelExport","label":"Excel export","description":"Built-in export to Excel (.xlsx)."},"charts":{"key":"charts","label":"Integrated charts","description":"Chart grid data from inside the grid."},"themingCssVariables":{"key":"themingCssVariables","label":"Theming with CSS variables","description":"Theme the grid through CSS custom properties or design tokens."},"accessibility":{"key":"accessibility","label":"Documented accessibility","description":"ARIA roles and screen reader support, documented by the vendor."},"rtl":{"key":"rtl","label":"Right-to-left","description":"Right-to-left layout support."}},"featureGroups":[{"id":"rendering","title":"Rendering","features":["rowVirtualization","columnVirtualization"]},{"id":"columns","title":"Columns","features":["sorting","filtering","columnResizing","columnReordering","columnPinning","columnGroups","columnMenu"]},{"id":"analysis","title":"Grouping and analysis","features":["rowGrouping","aggregations","pivoting","treeData","masterDetail"]},{"id":"server","title":"Server data","features":["lazyLoading","serverSideOperations","pagination"]},{"id":"interaction","title":"Editing and interaction","features":["cellEditing","rowSelection","cellSelection","keyboardNavigation","contextMenu","rowReordering"]},{"id":"output","title":"Export and charts","features":["clipboard","csvExport","excelExport","charts"]},{"id":"platform","title":"Styling and accessibility","features":["themingCssVariables","accessibility","rtl"]}],"products":[{"id":"infinite-table","name":"Infinite Table","vendor":"Infinite Table","homepage":"https://infinite-table.com","docs":"https://infinite-table.com/docs","pricingUrl":"https://infinite-table.com/pricing","licenseUrl":"https://infinite-table.com/eula","repo":"https://github.com/infinite-table/infinite-react","lastVerified":"2026-11-11","editions":[{"id":"infinite","name":"Infinite Table","license":"Commercial (EULA)","price":"$395 per developer per year","priceNote":"Volume discounts: 5% from 3 developers, 10% from 5, 15% from 10. For 20 or more developers, email us.","free":true,"freeConditions":"Every feature is free to use, in any product, as long as the \"Powered by Infinite Table\" footer stays visible. A license removes the footer and adds email support.","deployment":"Development licenses only: no deployment, application or SaaS licenses.","source":"https://infinite-table.com/pricing"}],"frameworks":{"list":["React","Vue"],"source":"https://www.npmjs.com/package/@infinite-table/infinite-vue","note":"React 18+ (@infinite-table/infinite-react) and Vue 3.4+ (@infinite-table/infinite-vue), same features and version."},"packages":[{"name":"@infinite-table/infinite-react"},{"name":"@infinite-table/infinite-vue","note":"for Vue 3"}],"rendering":{"text":"DOM, with row and column virtualization.","source":"https://infinite-table.com/docs/learn/examples/performance-many-rows-and-columns"},"measurements":[{"statsId":"infinite-react","label":"Infinite Table for React"},{"statsId":"infinite-vue","label":"Infinite Table for Vue"}],"features":{"rowVirtualization":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/examples/performance-many-rows-and-columns"},"columnVirtualization":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/examples/performance-many-rows-and-columns"},"sorting":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/sorting/multiple-sorting"},"filtering":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/filtering","note":"Filter row with operators, client-side or server-side."},"columnResizing":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/columns/fixed-and-flexible-size"},"columnReordering":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/columns/column-order"},"columnPinning":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/reference/infinite-table-props#columnPinning"},"columnGroups":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/columns/column-grouping"},"columnMenu":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/columns/column-menus"},"rowGrouping":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/grouping-and-pivoting/grouping-rows"},"aggregations":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/grouping-and-pivoting/group-aggregations"},"pivoting":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/grouping-and-pivoting/pivoting/overview"},"treeData":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/tree-grid/overview"},"masterDetail":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/master-detail/overview"},"lazyLoading":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/working-with-data/lazy-loading"},"serverSideOperations":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/working-with-data/lazy-loading","note":"Sorting, filtering, grouping and pivoting can all run on the server."},"pagination":{"support":"none","note":"No pager UI. Live pagination loads the next page as you scroll.","source":"https://infinite-table.com/docs/learn/working-with-data/live-pagination"},"cellEditing":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/editing/overview"},"rowSelection":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/selection/row-selection"},"cellSelection":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/selection/cell-selection"},"keyboardNavigation":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/keyboard-navigation/navigating-cells"},"contextMenu":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/context-menus/using-context-menus"},"rowReordering":{"support":"none"},"clipboard":{"support":"none"},"csvExport":{"support":"none"},"excelExport":{"support":"none"},"charts":{"support":"none","note":"Cells can render any component, for example sparklines.","source":"https://infinite-table.com/docs/learn/examples/using-sparklines"},"themingCssVariables":{"support":"full","edition":"infinite","source":"https://infinite-table.com/docs/learn/theming/css-variables"},"accessibility":{"support":"none","note":"Keyboard navigation is built in, but ARIA roles and screen reader support are not documented."},"rtl":{"support":"none"}},"strengths":[{"text":"Zero runtime dependencies: installing it adds one package to your app.","source":"https://www.npmjs.com/package/@infinite-table/infinite-react"},{"text":"Grouping, aggregations, pivoting, tree data and master-detail in the one package, free to use with a footer.","source":"https://infinite-table.com/docs/learn/getting-started/licensing"},{"text":"A declarative API: every piece of state is a prop, controlled or uncontrolled, like a React input.","source":"https://infinite-table.com/docs/learn/getting-started"},{"text":"A separate DataSource component handles loading, sorting, filtering, grouping and pivoting, locally or on the server.","source":"https://infinite-table.com/docs/learn/working-with-data"}]},{"id":"ag-grid","name":"AG Grid","vendor":"AG Grid Ltd","homepage":"https://www.ag-grid.com/","docs":"https://www.ag-grid.com/react-data-grid/getting-started/","pricingUrl":"https://www.ag-grid.com/license-pricing/","licenseUrl":"https://www.ag-grid.com/eula/AG-Grid-Enterprise-License-Latest.html","repo":"https://github.com/ag-grid/ag-grid","lastVerified":"2026-11-11","editions":[{"id":"community","name":"AG Grid Community","license":"MIT","price":"Free","free":true,"freeConditions":"Free for everyone, including production use.","deployment":"None (MIT).","source":"https://www.ag-grid.com/license-pricing/"},{"id":"enterprise","name":"AG Grid Enterprise","license":"Commercial (EULA)","price":"$999 per developer","priceNote":"Perpetual license with 1 year of support and updates. Online purchase covers 1-10 developers on internal applications; volume and renewal discounts through sales.","free":false,"freeConditions":"Can be tested locally without a license (watermark and console message). Free 30-day trial license.","deployment":"Applications used by customers or other external users are licensed through sales. All front-end developers on the project need a license.","source":"https://www.ag-grid.com/landing-pages/enterprise-data-grid/"},{"id":"enterprise-bundle","name":"AG Grid Enterprise + AG Charts Enterprise","shortName":"Enterprise Bundle","license":"Commercial (EULA)","price":"$1,498 per developer","priceNote":"Perpetual license with 1 year of support and updates. Same licensing rules as AG Grid Enterprise.","free":false,"source":"https://www.ag-grid.com/landing-pages/enterprise-data-grid/"}],"frameworks":{"list":["React","Angular","Vue","JavaScript"],"source":"https://www.ag-grid.com/react-data-grid/community-vs-enterprise/"},"packages":[{"name":"ag-grid-react","edition":"community"},{"name":"ag-grid-community","edition":"community"},{"name":"ag-grid-enterprise","edition":"enterprise"}],"rendering":{"text":"DOM, with row and column virtualization.","source":"https://www.ag-grid.com/react-data-grid/dom-virtualisation/"},"measurements":[{"statsId":"ag-grid-community","label":"AG Grid Community"},{"statsId":"ag-grid-enterprise","label":"AG Grid Enterprise"}],"features":{"rowVirtualization":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/dom-virtualisation/"},"columnVirtualization":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/dom-virtualisation/"},"sorting":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/row-sorting/"},"filtering":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/filtering/","note":"Text, number and date filters and a floating filter row in Community; Set, Multi and Advanced filters in Enterprise."},"columnResizing":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/column-sizing/"},"columnReordering":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/column-moving/"},"columnPinning":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/column-pinning/"},"columnGroups":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/column-groups/"},"columnMenu":{"support":"full","edition":"enterprise","source":"https://www.ag-grid.com/react-data-grid/column-menu/","note":"Community can open the column filter from the header, but has no column menu."},"rowGrouping":{"support":"full","edition":"enterprise","source":"https://www.ag-grid.com/react-data-grid/grouping/"},"aggregations":{"support":"full","edition":"enterprise","source":"https://www.ag-grid.com/react-data-grid/aggregation/"},"pivoting":{"support":"full","edition":"enterprise","source":"https://www.ag-grid.com/react-data-grid/pivoting/"},"treeData":{"support":"full","edition":"enterprise","source":"https://www.ag-grid.com/react-data-grid/tree-data/"},"masterDetail":{"support":"full","edition":"enterprise","source":"https://www.ag-grid.com/react-data-grid/master-detail/"},"lazyLoading":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/infinite-scrolling/","note":"Infinite Row Model in Community (no grouping); Server-Side Row Model with lazy-loaded groups in Enterprise."},"serverSideOperations":{"support":"partial","edition":"community","source":"https://www.ag-grid.com/react-data-grid/server-side-model/","note":"Community: server-side sorting and filtering through the Infinite Row Model, without grouping.","upgrade":{"edition":"enterprise","support":"full","note":"Enterprise: the Server-Side Row Model also groups, aggregates and pivots on the server."}},"pagination":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/row-pagination/"},"cellEditing":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/provided-cell-editors/","note":"Rich Select and Formula editors are Enterprise."},"rowSelection":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/row-selection-multi-row/"},"cellSelection":{"support":"full","edition":"enterprise","source":"https://www.ag-grid.com/react-data-grid/cell-selection/"},"keyboardNavigation":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/keyboard-navigation/"},"contextMenu":{"support":"full","edition":"enterprise","source":"https://www.ag-grid.com/react-data-grid/context-menu/"},"rowReordering":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/row-dragging/"},"clipboard":{"support":"full","edition":"enterprise","source":"https://www.ag-grid.com/react-data-grid/clipboard/"},"csvExport":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/csv-export/"},"excelExport":{"support":"full","edition":"enterprise","source":"https://www.ag-grid.com/react-data-grid/excel-export/"},"charts":{"support":"full","edition":"enterprise","source":"https://www.ag-grid.com/react-data-grid/integrated-charts/","note":"Integrated charts need AG Grid Enterprise; the full chart range needs the AG Charts Enterprise bundle."},"themingCssVariables":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/theming-parameters/"},"accessibility":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/accessibility/"},"rtl":{"support":"full","edition":"community","source":"https://www.ag-grid.com/react-data-grid/rtl/"}},"strengths":[{"text":"The broadest feature set of any grid here: on top of grouping, pivoting and tree data, Enterprise adds Excel and PDF export, formulas, a fill handle, tool panels and a status bar.","source":"https://www.ag-grid.com/license-pricing/"},{"text":"Integrated charts: users chart grid data from inside the grid, powered by AG Charts.","source":"https://www.ag-grid.com/react-data-grid/integrated-charts/"},{"text":"The Server-Side Row Model hands filtering, sorting, grouping, aggregation and pivoting to the server, and loads group children on expand.","source":"https://www.ag-grid.com/react-data-grid/server-side-model/"},{"text":"A generous MIT Community edition, free in production, with multi-sort, filters, editing, selection, pagination, CSV export, accessibility and RTL.","source":"https://www.ag-grid.com/react-data-grid/community-vs-enterprise/"},{"text":"One grid with official React, Angular, Vue and JavaScript versions, each with its own docs.","source":"https://www.ag-grid.com/"},{"text":"Documented accessibility: ARIA roles and states, tested with JAWS and VoiceOver.","source":"https://www.ag-grid.com/react-data-grid/accessibility/"}]},{"id":"mui-x-data-grid","name":"MUI X Data Grid","vendor":"MUI","homepage":"https://mui.com/x/react-data-grid/","docs":"https://mui.com/x/react-data-grid/quickstart/","pricingUrl":"https://mui.com/pricing/","licenseUrl":"https://mui.com/x/introduction/licensing/","repo":"https://github.com/mui/mui-x","lastVerified":"2026-11-11","editions":[{"id":"community","name":"MUI X Data Grid (Community)","shortName":"Community","license":"MIT","price":"Free","free":true,"freeConditions":"Free forever under the MIT license.","deployment":"None (MIT).","source":"https://mui.com/x/introduction/licensing/"},{"id":"pro","name":"MUI X Pro","shortName":"Pro","license":"Commercial (EULA)","price":"$299 per developer per year","priceNote":"Annual license for one application. Multi-application and perpetual licenses are also offered.","free":false,"freeConditions":"30-day evaluation in non-production environments without a key (watermark and console warnings).","deployment":"Royalty-free: no deployment or end-user fees. Licensed per front-end developer.","source":"https://mui.com/pricing/"},{"id":"premium","name":"MUI X Premium","shortName":"Premium","license":"Commercial (EULA)","price":"$599 per developer per year","priceNote":"Annual license for one application. Multi-application and perpetual licenses are also offered.","free":false,"freeConditions":"Same 30-day evaluation as Pro.","deployment":"Royalty-free: no deployment or end-user fees. Licensed per front-end developer.","source":"https://mui.com/pricing/"},{"id":"enterprise","name":"MUI X Enterprise","shortName":"Enterprise","license":"Commercial (EULA)","price":"$1,399 per developer per year","priceNote":"From 15 seats, through sales. Premium features plus priority support.","free":false,"deployment":"Royalty-free, multi-application.","source":"https://mui.com/pricing/"}],"frameworks":{"list":["React"],"source":"https://mui.com/x/react-data-grid/","note":"React 17, 18 and 19. Material UI (@mui/material) is a required peer dependency."},"packages":[{"name":"@mui/x-data-grid","edition":"community"},{"name":"@mui/x-data-grid-pro","edition":"pro"},{"name":"@mui/x-data-grid-premium","edition":"premium"}],"rendering":{"text":"DOM, with row and column virtualization.","source":"https://mui.com/x/react-data-grid/virtualization/"},"measurements":[{"statsId":"mui-x-data-grid","label":"MUI X Data Grid (Community)"},{"statsId":"mui-x-data-grid-premium","label":"MUI X Data Grid Premium"}],"features":{"rowVirtualization":{"support":"partial","edition":"community","source":"https://mui.com/x/react-data-grid/virtualization/#row-virtualization","note":"Community pages hold at most 100 rows, so it virtualizes up to 100 rows.","upgrade":{"edition":"pro","support":"full"}},"columnVirtualization":{"support":"full","edition":"community","source":"https://mui.com/x/react-data-grid/virtualization/#column-virtualization"},"sorting":{"support":"partial","edition":"community","source":"https://mui.com/x/react-data-grid/sorting/#multi-sorting","note":"Community sorts by one column at a time.","upgrade":{"edition":"pro","support":"full","note":"Multi-column sorting from Pro."}},"filtering":{"support":"partial","edition":"community","source":"https://mui.com/x/react-data-grid/filtering/","note":"Community applies one filter at a time, from the filter panel, plus a quick filter.","upgrade":{"edition":"pro","support":"full","note":"Pro adds multiple filters and a header filter row."}},"columnResizing":{"support":"full","edition":"community","source":"https://mui.com/x/react-data-grid/column-dimensions/"},"columnReordering":{"support":"full","edition":"pro","source":"https://mui.com/x/react-data-grid/column-ordering/"},"columnPinning":{"support":"full","edition":"pro","source":"https://mui.com/x/react-data-grid/column-pinning/"},"columnGroups":{"support":"full","edition":"community","source":"https://mui.com/x/react-data-grid/column-groups/"},"columnMenu":{"support":"full","edition":"community","source":"https://mui.com/x/react-data-grid/column-menu/"},"rowGrouping":{"support":"full","edition":"premium","source":"https://mui.com/x/react-data-grid/row-grouping/"},"aggregations":{"support":"full","edition":"premium","source":"https://mui.com/x/react-data-grid/aggregation/"},"pivoting":{"support":"full","edition":"premium","source":"https://mui.com/x/react-data-grid/pivoting/"},"treeData":{"support":"full","edition":"pro","source":"https://mui.com/x/react-data-grid/tree-data/"},"masterDetail":{"support":"full","edition":"pro","source":"https://mui.com/x/react-data-grid/master-detail/"},"lazyLoading":{"support":"full","edition":"pro","source":"https://mui.com/x/react-data-grid/server-side-data/lazy-loading/","note":"Viewport and infinite loading through the Data Source."},"serverSideOperations":{"support":"partial","edition":"community","source":"https://mui.com/x/react-data-grid/server-side-data/","note":"Community: server-side sorting, filtering and pagination through the Data Source.","upgrade":{"edition":"premium","support":"full","note":"Premium: also row grouping, aggregation and pivoting on the server."}},"pagination":{"support":"full","edition":"community","source":"https://mui.com/x/react-data-grid/pagination/","note":"Always on in Community, with pages of up to 100 rows."},"cellEditing":{"support":"full","edition":"community","source":"https://mui.com/x/react-data-grid/editing/"},"rowSelection":{"support":"full","edition":"community","source":"https://mui.com/x/react-data-grid/row-selection/"},"cellSelection":{"support":"full","edition":"premium","source":"https://mui.com/x/react-data-grid/cell-selection/"},"keyboardNavigation":{"support":"full","edition":"community","source":"https://mui.com/x/react-data-grid/accessibility/#keyboard-navigation"},"contextMenu":{"support":"none","note":"No built-in context menu; the docs show how to add your own through slots.","source":"https://mui.com/x/react-data-grid/components/"},"rowReordering":{"support":"full","edition":"pro","source":"https://mui.com/x/react-data-grid/row-ordering/"},"clipboard":{"support":"partial","edition":"community","source":"https://mui.com/x/react-data-grid/clipboard/","note":"Community copies the selected rows; pasting is Premium.","upgrade":{"edition":"premium","support":"full","note":"Premium: copy cell ranges and paste."}},"csvExport":{"support":"full","edition":"community","source":"https://mui.com/x/react-data-grid/export/#csv-export"},"excelExport":{"support":"full","edition":"premium","source":"https://mui.com/x/react-data-grid/export/#excel-export"},"charts":{"support":"full","edition":"premium","source":"https://mui.com/x/react-data-grid/charts-integration/","note":"Uses @mui/x-charts-premium, covered by the Premium license."},"themingCssVariables":{"support":"partial","edition":"community","source":"https://mui.com/x/react-data-grid/style/","note":"Styled through the Material UI theme, `sx` and class names; CSS variables are not a documented theming API."},"accessibility":{"support":"full","edition":"community","source":"https://mui.com/x/react-data-grid/accessibility/"},"rtl":{"support":"full","edition":"community","source":"https://mui.com/x/react-data-grid/localization/#rtl-support"}},"strengths":[{"text":"It inherits your Material UI theme (palette, typography, density), so it fits an MUI app with no extra styling.","source":"https://mui.com/x/react-data-grid/"},{"text":"A capable MIT edition: column resizing, column groups, editing, CSV export, column virtualization and a server-side data source.","source":"https://mui.com/x/introduction/licensing/"},{"text":"One license covers the whole MUI X suite at that tier: date pickers, charts and tree view too.","source":"https://mui.com/x/introduction/licensing/"},{"text":"Premium analytics: grouping, aggregation, pivoting with a pivot panel, Excel export and a charts integration that follows the grid state.","source":"https://mui.com/x/react-data-grid/charts-integration/"},{"text":"An AI assistant (Premium) that turns natural-language prompts into filters, sorting, grouping and charts.","source":"https://mui.com/x/react-data-grid/ai-assistant/"},{"text":"Careful accessibility work: it targets WCAG 2.2 AA and follows the WAI-ARIA grid pattern.","source":"https://mui.com/x/react-data-grid/accessibility/"}]},{"id":"tanstack-table","name":"TanStack Table","vendor":"TanStack","homepage":"https://tanstack.com/table","docs":"https://tanstack.com/table/latest/docs/framework/react/quick-start","licenseUrl":"https://github.com/TanStack/table/blob/main/LICENSE","repo":"https://github.com/TanStack/table","lastVerified":"2026-11-11","editions":[{"id":"oss","name":"TanStack Table","license":"MIT","price":"Free","free":true,"freeConditions":"MIT: free for any use, no license key.","deployment":"None (MIT).","source":"https://github.com/TanStack/table/blob/main/LICENSE"}],"frameworks":{"list":["React","Preact","Vue","Solid","Svelte","Angular","Ember","Lit","Alpine","JavaScript"],"source":"https://tanstack.com/table/latest/docs/overview","note":"Official adapters for React, Preact, Octane, Vue, Solid, Svelte, Angular, Ember, Lit and Alpine, plus vanilla JavaScript through @tanstack/table-core. Svelte 3 and 4 need v8."},"packages":[{"name":"@tanstack/react-table"},{"name":"@tanstack/react-virtual","note":"for virtualization"}],"rendering":{"text":"Headless: you render all the markup and styles.","source":"https://tanstack.com/table/latest/docs/overview"},"measurements":[{"statsId":"tanstack-table","label":"TanStack Table"},{"statsId":"tanstack-table-virtual","label":"TanStack Table + TanStack Virtual"}],"features":{"rowVirtualization":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/virtualization","note":"Through the separate TanStack Virtual package."},"columnVirtualization":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/virtualization","note":"Through the separate TanStack Virtual package."},"sorting":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/sorting"},"filtering":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/column-filtering","note":"Filter logic and built-in filter functions; you build the filter UI."},"columnResizing":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/column-resizing"},"columnReordering":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/column-ordering","note":"Column order state; drag and drop is yours to build."},"columnPinning":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/column-pinning"},"columnGroups":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/guide/header-groups"},"columnMenu":{"support":"none"},"rowGrouping":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/grouping"},"aggregations":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/aggregation"},"pivoting":{"support":"none"},"treeData":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/expanding","note":"Sub-rows with expand state."},"masterDetail":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/expanding","note":"Expanded-row state; you render the detail content."},"lazyLoading":{"support":"none","note":"Not built in; the official example builds it with TanStack Virtual and your own data fetching.","source":"https://github.com/TanStack/table/tree/main/examples/react/virtualized-infinite-scrolling"},"serverSideOperations":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/guide/client-side-vs-server-side","note":"Manual modes let your server sort, filter, group and paginate."},"pagination":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/pagination"},"cellEditing":{"support":"none","note":"No editing feature: editable cells are application code."},"rowSelection":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/row-selection"},"cellSelection":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/cell-selection","note":"New in v9."},"keyboardNavigation":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/cell-selection","note":"Focused-cell state and move APIs come with cell selection; you wire the keys."},"contextMenu":{"support":"none"},"rowReordering":{"support":"none","note":"The official example reorders rows with the third-party dnd-kit.","source":"https://github.com/TanStack/table/tree/main/examples/react/row-dnd"},"clipboard":{"support":"none","note":"Selected cell values are available through the API; copying is yours to build."},"csvExport":{"support":"none"},"excelExport":{"support":"none"},"charts":{"support":"none"},"themingCssVariables":{"support":"none","note":"Ships no styles: you style it with your own CSS or design system."},"accessibility":{"support":"none","note":"No accessibility guide: you render the markup, so the ARIA roles are yours too."},"rtl":{"support":"headless","edition":"oss","source":"https://tanstack.com/table/latest/docs/framework/react/guide/column-resizing","note":"Logical start/end pinning and an RTL resize mode; you set the direction on your markup."}},"strengths":[{"text":"Headless: it brings no markup or styles, so the table can match any design system exactly.","source":"https://tanstack.com/table/latest"},{"text":"One core with official adapters for React, Vue, Solid, Svelte, Angular and more.","source":"https://tanstack.com/table/latest/docs/overview"},{"text":"MIT, one free edition, no license keys and no deployment fees.","source":"https://github.com/TanStack/table/blob/main/LICENSE"},{"text":"Broad logic coverage: sorting, filtering, faceting, grouping, aggregation, expansion, row and cell selection, pagination.","source":"https://tanstack.com/table/latest"},{"text":"A tiny core: in v9 you register only the features you use.","source":"https://tanstack.com/table/latest/docs/guide/features"},{"text":"Server-side processing is first-class, with a manual mode for each feature.","source":"https://tanstack.com/table/latest/docs/guide/client-side-vs-server-side"}],"notes":[{"text":"TanStack offers paid enterprise support and workshops; prices are on request.","source":"https://tanstack.com/paid-support"}]},{"id":"handsontable","name":"Handsontable","vendor":"Handsoncode","homepage":"https://handsontable.com/","docs":"https://handsontable.com/docs/react-data-grid/","pricingUrl":"https://handsontable.com/pricing","licenseUrl":"https://handsontable.com/docs/react-data-grid/software-license/","repo":"https://github.com/handsontable/handsontable","lastVerified":"2026-11-11","editions":[{"id":"non-commercial","name":"Non-commercial and evaluation license","license":"Proprietary (non-commercial)","price":"Free","free":false,"freeConditions":"Non-commercial use only: education, research, personal use, testing and demos. In a business it covers evaluation, not production.","source":"https://handsontable.com/docs/react-data-grid/license-key/"},{"id":"commercial","name":"Handsontable commercial license","license":"Commercial","price":"Contact sales (no public list price)","priceNote":"Priced by the number of end users of your applications, as a subscription or a perpetual license, with a support plan.","free":false,"freeConditions":"45-day trial.","deployment":"Covers internal and customer-facing apps. SaaS, OEM and redistribution terms are not published.","source":"https://handsontable.com/pricing"},{"id":"bundle","name":"Handsontable + HyperFormula bundle","license":"Commercial","price":"Contact sales (no public list price)","priceNote":"Adds a commercial license for the HyperFormula formula engine (otherwise GPLv3).","free":false,"source":"https://handsontable.com/pricing"}],"frameworks":{"list":["React","Angular","Vue","JavaScript"],"source":"https://handsontable.com/docs/react-data-grid/"},"packages":[{"name":"@handsontable/react-wrapper"},{"name":"handsontable"}],"rendering":{"text":"DOM, with row and column virtualization.","source":"https://handsontable.com/docs/react-data-grid/row-virtualization/"},"measurements":[{"statsId":"handsontable","label":"Handsontable"}],"features":{"rowVirtualization":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/row-virtualization/"},"columnVirtualization":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/column-virtualization/"},"sorting":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/rows-sorting/"},"filtering":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/column-filter/","note":"Excel-like filters in the column menu."},"columnResizing":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/column-width/"},"columnReordering":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/column-moving/"},"columnPinning":{"support":"partial","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/column-freezing/","note":"Columns freeze at the start edge only."},"columnGroups":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/column-groups/","note":"Nested headers, optionally collapsible."},"columnMenu":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/column-menu/"},"rowGrouping":{"support":"none","note":"No grouping by column value; the NestedRows plugin shows parent and child rows from nested data.","source":"https://handsontable.com/docs/react-data-grid/row-parent-child/"},"aggregations":{"support":"partial","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/column-summary/","note":"The ColumnSummary plugin writes totals into cells you choose; no group or footer rows."},"pivoting":{"support":"none"},"treeData":{"support":"partial","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/row-parent-child/","note":"NestedRows plugin; not supported together with column filters or sorting."},"masterDetail":{"support":"none"},"lazyLoading":{"support":"partial","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/server-side-data/","note":"The DataProvider plugin (17.1+) loads one page at a time with the pager; loading on scroll is not documented."},"serverSideOperations":{"support":"partial","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/server-side-data/","note":"DataProvider sends paging, single-column sorting and filters to your server; no grouping."},"pagination":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/rows-pagination/"},"cellEditing":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/cell-editor/"},"rowSelection":{"support":"partial","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/selection/","note":"Select whole rows from the row headers; no checkbox selection column."},"cellSelection":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/selection/"},"keyboardNavigation":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/keyboard-shortcuts/"},"contextMenu":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/context-menu/"},"rowReordering":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/row-moving/"},"clipboard":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/basic-clipboard/"},"csvExport":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/export-to-csv/"},"excelExport":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/export-to-excel/","note":"Since 17.1; needs the ExcelJS library as a peer dependency."},"charts":{"support":"none"},"themingCssVariables":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/themes/"},"accessibility":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/accessibility/"},"rtl":{"support":"full","edition":"non-commercial","source":"https://handsontable.com/docs/react-data-grid/layout-direction/"}},"strengths":[{"text":"It looks and feels like a spreadsheet: Excel-style shortcuts, a fill handle, merged cells, comments and undo/redo.","source":"https://handsontable.com/"},{"text":"Excel-compatible formulas through the HyperFormula engine (about 400 functions).","source":"https://handsontable.com/docs/react-data-grid/formula-calculation/"},{"text":"A deep editing toolkit: many cell types and editors, sync and async validators, custom React editors.","source":"https://handsontable.com/docs/react-data-grid/cell-editor/"},{"text":"Native .xlsx export that keeps data types, styles, merged cells and frozen panes, plus CSV export.","source":"https://handsontable.com/docs/react-data-grid/export-to-excel/"},{"text":"Strong accessibility documentation: it targets WCAG 2.2 A/AA and publishes a conformance report.","source":"https://handsontable.com/docs/react-data-grid/accessibility/"},{"text":"Zero runtime dependencies in the current release, too.","source":"https://www.npmjs.com/package/handsontable"}]},{"id":"devexpress","name":"DevExtreme DataGrid","vendor":"DevExpress","homepage":"https://js.devexpress.com/","docs":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Overview/","pricingUrl":"https://www.devexpress.com/buy/js/","licenseUrl":"https://js.devexpress.com/Licensing/","repo":"https://github.com/DevExpress/DevExtreme","lastVerified":"2026-11-11","editions":[{"id":"complete","name":"DevExtreme Complete","license":"Commercial (EULA)","price":"$899.99 per developer per year","priceNote":"Subscription; renewal $449.99. Volume discounts from 2 licenses. Also included in the ASP.NET and Blazor, DXperience and Universal subscriptions.","free":false,"freeConditions":"30-day evaluation; no free or non-commercial license.","deployment":"Royalty-free: no per-server or run-time fees.","source":"https://www.devexpress.com/buy/js/"}],"frameworks":{"list":["React","Angular","Vue","jQuery","ASP.NET"],"source":"https://js.devexpress.com/","note":"ASP.NET Core and MVC wrappers come with the ASP.NET and Blazor subscription and higher."},"packages":[{"name":"devextreme-react"},{"name":"devextreme"}],"rendering":{"text":"DOM, with optional row and column virtualization.","source":"https://js.devexpress.com/React/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/scrolling/"},"measurements":[{"statsId":"devextreme","label":"DevExtreme React DataGrid"}],"features":{"rowVirtualization":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/scrolling/","note":"Opt-in virtual scrolling."},"columnVirtualization":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Enhance_Performance_on_Large_Datasets/","note":"Opt-in; needs column widths."},"sorting":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Sorting/"},"filtering":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Filtering_and_Searching/","note":"Filter row, header filter, search panel and filter builder."},"columnResizing":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Columns/Column_Sizing/"},"columnReordering":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Columns/Column_Reordering/"},"columnPinning":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Columns/Column_Fixing/"},"columnGroups":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Columns/Column_Types/Band_Columns/"},"columnMenu":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Sorting/","note":"A header context menu (right-click) for sorting, grouping and fixing."},"rowGrouping":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Grouping/"},"aggregations":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Summaries/"},"pivoting":{"support":"partial","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/PivotGrid/Overview/","note":"In the separate PivotGrid component, not in the DataGrid."},"treeData":{"support":"partial","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/TreeList/Overview/","note":"In the separate TreeList component, not in the DataGrid."},"masterDetail":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Master-Detail_Interface/"},"lazyLoading":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Scrolling/"},"serverSideOperations":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/remoteOperations/"},"pagination":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Paging/"},"cellEditing":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Editing/","note":"Row, cell, batch, form and popup modes."},"rowSelection":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Selection/"},"cellSelection":{"support":"none","note":"Not found in the DataGrid docs."},"keyboardNavigation":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Accessibility/"},"contextMenu":{"support":"partial","edition":"complete","source":"https://js.devexpress.com/React/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/#onContextMenuPreparing","note":"Built-in items for headers and group rows; data-row items are yours to add."},"rowReordering":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/rowDragging/"},"clipboard":{"support":"none","note":"Not found in the DataGrid docs."},"csvExport":{"support":"partial","edition":"complete","source":"https://js.devexpress.com/React/Documentation/ApiReference/Common/Utils/excelExporter/","note":"Through the Excel exporter API; no CSV export format option."},"excelExport":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Getting_Started_with_DataGrid/#Export_Data","note":"Needs the devextreme-exceljs-fork and file-saver packages."},"charts":{"support":"none","note":"Charts are separate components; only the PivotGrid documents chart integration."},"themingCssVariables":{"support":"none","note":"Predefined themes, customized with ThemeBuilder; CSS variables are not documented.","source":"https://js.devexpress.com/React/Documentation/Guide/Themes_and_Styles/Predefined_Themes/"},"accessibility":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Accessibility/"},"rtl":{"support":"full","edition":"complete","source":"https://js.devexpress.com/React/Demos/WidgetsGallery/Demo/DataGrid/RightToLeftSupport/"}},"strengths":[{"text":"Part of a large UI suite for React, Angular, Vue and jQuery, with a TreeList, a PivotGrid and charts next to the grid.","source":"https://js.devexpress.com/"},{"text":"Many filtering UIs: a filter row, Excel-style header filters, a search panel and a filter builder.","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Filtering_and_Searching/"},{"text":"Five editing modes (row, cell, batch, form, popup) with validation.","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Editing/"},{"text":"Built-in remote operations: filtering, sorting, paging, grouping and summaries on the server.","source":"https://js.devexpress.com/React/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/remoteOperations/"},{"text":"Excel and PDF export with customizable cells.","source":"https://js.devexpress.com/React/Documentation/Guide/UI_Components/DataGrid/Getting_Started_with_DataGrid/#Export_Data"},{"text":"Royalty-free distribution, licensed per developer only.","source":"https://js.devexpress.com/Licensing/"}],"notes":[{"text":"The older DevExtreme Reactive React Grid (@devexpress/dx-react-grid) reached end-of-life in December 2025; DevExpress points users to the DevExtreme React components compared here.","source":"https://github.com/DevExpress/devextreme-reactive"}]},{"id":"syncfusion","name":"Syncfusion React Grid","vendor":"Syncfusion","homepage":"https://www.syncfusion.com/react-components/react-data-grid","docs":"https://ej2.syncfusion.com/react/documentation/grid/getting-started","pricingUrl":"https://www.syncfusion.com/sales/pricing","licenseUrl":"https://www.syncfusion.com/eula/es/","repo":"https://github.com/syncfusion/ej2-react-ui-components","lastVerified":"2026-11-11","editions":[{"id":"community","name":"Syncfusion Community License (small companies)","shortName":"Community License","license":"Proprietary (free)","price":"Free","free":true,"freeConditions":"For companies and individuals under $1M annual revenue, with 5 or fewer developers and 10 or fewer employees, that never raised more than $3M in outside capital.","deployment":"Royalty-free distribution.","source":"https://www.syncfusion.com/products/communitylicense"},{"id":"grid-sdk","name":"Syncfusion Grid SDK","shortName":"Grid SDK","license":"Commercial (EULA)","price":"$959 per developer per year","priceNote":"Annual subscription with support; includes the Tree Grid and Pivot Table. The UI Component Suite (all SDKs) is $1,199.","free":false,"freeConditions":"30-day evaluation.","deployment":"Royalty-free distribution of builds made during the subscription.","source":"https://www.syncfusion.com/sales/pricing"}],"frameworks":{"list":["React","Angular","Vue","JavaScript","Blazor","ASP.NET"],"source":"https://www.syncfusion.com/grid-sdk","note":"Also .NET MAUI, WPF, WinForms, WinUI and UWP. Each platform has its own implementation."},"packages":[{"name":"@syncfusion/ej2-react-grids"}],"rendering":{"text":"DOM, with optional row and column virtualization.","source":"https://ej2.syncfusion.com/react/documentation/grid/overview"},"measurements":[{"statsId":"syncfusion","label":"Syncfusion React Grid"}],"features":{"rowVirtualization":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/scrolling/virtual-scrolling","note":"Opt-in; not compatible with every feature."},"columnVirtualization":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/scrolling/virtual-scrolling","note":"Opt-in; not compatible with grouping."},"sorting":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/sorting"},"filtering":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/filtering/filtering","note":"Filter bar, filter menu and Excel-like checkbox filter."},"columnResizing":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/columns/column-resizing"},"columnReordering":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/columns/column-reorder"},"columnPinning":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/columns/frozen-column"},"columnGroups":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/columns/column-headers"},"columnMenu":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/columns/column-menu"},"rowGrouping":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/grouping/grouping"},"aggregations":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/aggregates/aggregates"},"pivoting":{"support":"partial","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/pivotview/getting-started","note":"In the separate Pivot Table component, not in the Grid."},"treeData":{"support":"partial","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/treegrid/getting-started","note":"In the separate Tree Grid component, not in the Grid."},"masterDetail":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/hierarchy-grid"},"lazyLoading":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/scrolling/infinite-scrolling"},"serverSideOperations":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/data-binding/remote-data"},"pagination":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/paging"},"cellEditing":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/editing/edit"},"rowSelection":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/selection/row-selection"},"cellSelection":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/selection/cell-selection"},"keyboardNavigation":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/accessibility"},"contextMenu":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/context-menu"},"rowReordering":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/row/row-drag-and-drop"},"clipboard":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/clipboard"},"csvExport":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/excel-export/excel-exporting"},"excelExport":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/excel-export/excel-exporting"},"charts":{"support":"none","note":"Charts are separate components."},"themingCssVariables":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/appearance/theme","note":"In the Tailwind 3.4, Bootstrap 5.3, Fluent 2 and Material 3 themes."},"accessibility":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/accessibility"},"rtl":{"support":"full","edition":"community","source":"https://ej2.syncfusion.com/react/documentation/grid/global-local"}},"strengths":[{"text":"A free Community License covers the whole suite, commercial use included, for small organizations.","source":"https://www.syncfusion.com/products/communitylicense"},{"text":"Very broad platform coverage: React, Angular, Vue, JavaScript, Blazor, ASP.NET, .NET MAUI and desktop.","source":"https://www.syncfusion.com/grid-sdk"},{"text":"The Grid SDK bundles the Data Grid with a Tree Grid and a Pivot Table.","source":"https://www.syncfusion.com/sales/pricing"},{"text":"First-party Excel, CSV and PDF export, with no third-party libraries.","source":"https://ej2.syncfusion.com/react/documentation/grid/excel-export/excel-exporting"},{"text":"Rich built-in interaction: column and context menus, Excel-like filters, clipboard copy and paste, range selection.","source":"https://ej2.syncfusion.com/react/documentation/grid/context-menu"},{"text":"Server-side data through DataManager adaptors for OData, Web API, URL and GraphQL endpoints.","source":"https://ej2.syncfusion.com/react/documentation/grid/data-binding/remote-data"}]},{"id":"kendoreact","name":"KendoReact Grid","vendor":"Progress (Telerik)","homepage":"https://www.telerik.com/kendo-react-ui","docs":"https://www.telerik.com/kendo-react-ui/components/grid","pricingUrl":"https://www.telerik.com/kendo-react-ui/pricing","licenseUrl":"https://www.telerik.com/purchase/license-agreement/progress-kendoreact","repo":"https://github.com/telerik/kendo-react","lastVerified":"2026-11-11","editions":[{"id":"free","name":"KendoReact Free","shortName":"Free","license":"Proprietary (free)","price":"Free","free":true,"freeConditions":"Free in production, commercial use included, with no license key. Includes the Grid with a subset of its features; Premium features need a license.","deployment":"None.","source":"https://www.telerik.com/kendo-react-ui/components/getting-started/free-vs-premium"},{"id":"premium","name":"KendoReact (Premium)","shortName":"Premium","license":"Commercial (EULA)","price":"From $649 per developer per year","priceNote":"By support level: $649 Lite, $749 Priority, $1,199 Ultimate. Also included in Kendo UI and Telerik DevCraft bundles.","free":false,"freeConditions":"30-day trial, not for production.","deployment":"No deployment fees: only developers using the components need licenses.","source":"https://www.telerik.com/kendo-react-ui/pricing"}],"frameworks":{"list":["React"],"source":"https://www.telerik.com/kendo-react-ui/pricing","note":"KendoReact is React-only; Progress sells separate Kendo UI products for Angular, Vue and jQuery."},"packages":[{"name":"@progress/kendo-react-grid"}],"rendering":{"text":"DOM, with optional row and column virtualization.","source":"https://www.telerik.com/kendo-react-ui/components/grid/scroll-modes/virtual"},"measurements":[{"statsId":"kendoreact","label":"KendoReact Grid"}],"features":{"rowVirtualization":{"support":"full","edition":"premium","source":"https://www.telerik.com/kendo-react-ui/components/grid/scroll-modes/virtual"},"columnVirtualization":{"support":"full","edition":"free","source":"https://www.telerik.com/kendo-react-ui/components/grid/optimization/column-virtualization"},"sorting":{"support":"partial","edition":"free","source":"https://www.telerik.com/kendo-react-ui/components/grid/sorting","note":"Free: sorting by one column.","upgrade":{"edition":"premium","support":"full","note":"Premium: multi-column sorting."}},"filtering":{"support":"full","edition":"free","source":"https://www.telerik.com/kendo-react-ui/components/grid/filtering","note":"Filter row and quick filter are free; column-menu and checkbox filters are Premium."},"columnResizing":{"support":"full","edition":"free","source":"https://www.telerik.com/kendo-react-ui/components/grid/columns/resizing"},"columnReordering":{"support":"full","edition":"free","source":"https://www.telerik.com/kendo-react-ui/components/grid/columns/reordering"},"columnPinning":{"support":"full","edition":"premium","source":"https://www.telerik.com/kendo-react-ui/components/grid/columns/locked"},"columnGroups":{"support":"full","edition":"premium","source":"https://www.telerik.com/kendo-react-ui/components/grid/columns/headers"},"columnMenu":{"support":"full","edition":"premium","source":"https://www.telerik.com/kendo-react-ui/components/grid/columns/column-menu"},"rowGrouping":{"support":"full","edition":"premium","source":"https://www.telerik.com/kendo-react-ui/components/grid/grouping/grouping"},"aggregations":{"support":"full","edition":"premium","source":"https://www.telerik.com/kendo-react-ui/components/grid/grouping/grouping","note":"Group aggregates."},"pivoting":{"support":"partial","edition":"premium","source":"https://www.telerik.com/kendo-react-ui/components/pivotgrid","note":"In the separate PivotGrid component, not in the Grid."},"treeData":{"support":"partial","edition":"premium","source":"https://www.telerik.com/kendo-react-ui/components/treelist","note":"In the separate TreeList component, not in the Grid."},"masterDetail":{"support":"full","edition":"premium","source":"https://www.telerik.com/kendo-react-ui/components/grid/hierarchy"},"lazyLoading":{"support":"full","edition":"premium","source":"https://www.telerik.com/kendo-react-ui/components/grid/scroll-modes/virtual","note":"Virtual scrolling with remote data."},"serverSideOperations":{"support":"full","edition":"premium","source":"https://www.telerik.com/kendo-react-ui/components/grid/data-operations/odata-server-operations"},"pagination":{"support":"full","edition":"free","source":"https://www.telerik.com/kendo-react-ui/components/grid/paging"},"cellEditing":{"support":"full","edition":"free","source":"https://www.telerik.com/kendo-react-ui/components/grid/editing","note":"In-cell editing is free; other edit modes are Premium."},"rowSelection":{"support":"full","edition":"free","source":"https://www.telerik.com/kendo-react-ui/components/grid/selection","note":"Multiple-row selection is Premium."},"cellSelection":{"support":"full","edition":"free","source":"https://www.telerik.com/kendo-react-ui/components/grid/selection","note":"Multi-range selection is Premium."},"keyboardNavigation":{"support":"full","edition":"free","source":"https://www.telerik.com/kendo-react-ui/components/grid/accessibility/keyboard-navigation"},"contextMenu":{"support":"full","edition":"premium","source":"https://www.telerik.com/kendo-react-ui/components/grid/interactivity/context-menu"},"rowReordering":{"support":"full","edition":"free","source":"https://www.telerik.com/kendo-react-ui/components/grid/rows/row-reordering"},"clipboard":{"support":"full","edition":"premium","source":"https://www.telerik.com/kendo-react-ui/components/grid/interactivity/clipboard"},"csvExport":{"support":"full","edition":"free","source":"https://www.telerik.com/kendo-react-ui/components/grid/export/csv-export"},"excelExport":{"support":"full","edition":"premium","source":"https://www.telerik.com/kendo-react-ui/components/grid/export/excel-export"},"charts":{"support":"full","edition":"premium","source":"https://www.telerik.com/kendo-react-ui/components/grid/integration-with-chart","note":"Through the Chart Wizard."},"themingCssVariables":{"support":"full","edition":"free","source":"https://www.telerik.com/design-system/docs/themes/kendo-themes/default/customization/"},"accessibility":{"support":"full","edition":"free","source":"https://www.telerik.com/kendo-react-ui/components/grid/accessibility"},"rtl":{"support":"full","edition":"free","source":"https://www.telerik.com/kendo-react-ui/components/grid/globalization"}},"strengths":[{"text":"KendoReact Free includes a production-ready Grid at no cost, commercial use included, with no license key.","source":"https://www.telerik.com/kendo-react-ui/components/getting-started/free-vs-premium"},{"text":"Users can build charts from selected rows or cells with the Chart Wizard.","source":"https://www.telerik.com/kendo-react-ui/components/grid/integration-with-chart"},{"text":"Progress states the Grid is WCAG 2.2 AA and Section 508 compliant.","source":"https://www.telerik.com/kendo-react-ui/components/grid/accessibility"},{"text":"CSV (free), Excel and PDF (Premium) export, plus clipboard copy and paste.","source":"https://www.telerik.com/kendo-react-ui/components/grid/export/excel-export"},{"text":"Part of a large suite of React components with shared design-system themes.","source":"https://www.telerik.com/kendo-react-ui/pricing"}]},{"id":"glide-data-grid","name":"Glide Data Grid","vendor":"Glide","homepage":"https://grid.glideapps.com/","docs":"https://docs.grid.glideapps.com/","licenseUrl":"https://github.com/glideapps/glide-data-grid/blob/main/README.md","repo":"https://github.com/glideapps/glide-data-grid","lastVerified":"2026-11-11","editions":[{"id":"oss","name":"Glide Data Grid","license":"MIT","price":"Free","free":true,"freeConditions":"MIT: free for any use.","deployment":"None (MIT).","source":"https://github.com/glideapps/glide-data-grid/blob/main/README.md"}],"frameworks":{"list":["React"],"source":"https://docs.grid.glideapps.com/"},"packages":[{"name":"@glideapps/glide-data-grid"}],"rendering":{"text":"HTML canvas, drawing cells on demand.","source":"https://docs.grid.glideapps.com/faq"},"measurements":[{"statsId":"glide-data-grid","label":"Glide Data Grid"}],"features":{"rowVirtualization":{"support":"full","edition":"oss","source":"https://docs.grid.glideapps.com/","note":"Canvas rendering, cells drawn on demand."},"columnVirtualization":{"support":"full","edition":"oss","source":"https://docs.grid.glideapps.com/","note":"Canvas rendering, cells drawn on demand."},"sorting":{"support":"none","note":"Sorting is implemented in your data source.","source":"https://docs.grid.glideapps.com/faq"},"filtering":{"support":"none","note":"Filtering is implemented in your data source.","source":"https://docs.grid.glideapps.com/faq"},"columnResizing":{"support":"full","edition":"oss","source":"https://docs.grid.glideapps.com/api/dataeditor/input-interaction#oncolumnresize"},"columnReordering":{"support":"full","edition":"oss","source":"https://docs.grid.glideapps.com/api/dataeditor/input-interaction#oncolumnmoved"},"columnPinning":{"support":"partial","edition":"oss","source":"https://docs.grid.glideapps.com/api/dataeditor/important-props#freezecolumns","note":"Left side only."},"columnGroups":{"support":"partial","edition":"oss","source":"https://docs.grid.glideapps.com/api/dataeditor/styling#getgroupdetails","note":"One level of group headers."},"columnMenu":{"support":"headless","edition":"oss","source":"https://docs.grid.glideapps.com/api/dataeditor/input-interaction#onheadermenuclick","note":"A menu indicator and click event; you render the menu."},"rowGrouping":{"support":"none"},"aggregations":{"support":"none"},"pivoting":{"support":"none"},"treeData":{"support":"none"},"masterDetail":{"support":"none"},"lazyLoading":{"support":"headless","edition":"oss","source":"https://docs.grid.glideapps.com/api/dataeditor/important-props#onvisibleregionchanged","note":"Cells are requested on demand; you load the data."},"serverSideOperations":{"support":"none"},"pagination":{"support":"none"},"cellEditing":{"support":"full","edition":"oss","source":"https://docs.grid.glideapps.com/api/dataeditor/editing"},"rowSelection":{"support":"full","edition":"oss","source":"https://docs.grid.glideapps.com/api/dataeditor/row-markers#rowmarkers"},"cellSelection":{"support":"full","edition":"oss","source":"https://docs.grid.glideapps.com/api/dataeditor/selection-handling#column-range-rowselect"},"keyboardNavigation":{"support":"full","edition":"oss","source":"https://docs.grid.glideapps.com/api/dataeditor/input-interaction#keybindings"},"contextMenu":{"support":"headless","edition":"oss","source":"https://docs.grid.glideapps.com/api/dataeditor/input-interaction#oncellcontextmenu","note":"Context menu events; you render the menu."},"rowReordering":{"support":"full","edition":"oss","source":"https://docs.grid.glideapps.com/api/dataeditor/input-interaction#onrowmoved"},"clipboard":{"support":"full","edition":"oss","source":"https://docs.grid.glideapps.com/extended-quickstart-guide/copy-and-paste-support"},"csvExport":{"support":"none"},"excelExport":{"support":"none"},"charts":{"support":"partial","edition":"oss","source":"https://github.com/glideapps/glide-data-grid/releases/tag/v6.0.0","note":"In-cell sparklines only."},"themingCssVariables":{"support":"partial","edition":"oss","source":"https://github.com/glideapps/glide-data-grid/blob/main/packages/core/API.md#theme","note":"Themed mainly through a JavaScript theme object."},"accessibility":{"support":"partial","edition":"oss","source":"https://docs.grid.glideapps.com/faq","note":"The FAQ says it works with screen readers, with limited testing."},"rtl":{"support":"none"}},"strengths":[{"text":"Canvas rendering that scales to millions of rows, with cells drawn on demand.","source":"https://github.com/glideapps/glide-data-grid/blob/main/README.md"},{"text":"Very fast, smooth native scrolling.","source":"https://github.com/glideapps/glide-data-grid/blob/main/README.md"},{"text":"Fully custom cell drawing, plus many built-in cell types.","source":"https://docs.grid.glideapps.com/api/dataeditor/custom-cells"},{"text":"Spreadsheet-style interaction: multi-range selection, copy and paste, a fill handle.","source":"https://docs.grid.glideapps.com/api/dataeditor/selection-handling"},{"text":"MIT-licensed, with TypeScript types, variable row heights and merged cells.","source":"https://github.com/glideapps/glide-data-grid/blob/main/README.md"}],"notes":[{"text":"The latest stable release is 6.0.3 (February 2024); newer versions are published as alphas.","source":"https://www.npmjs.com/package/@glideapps/glide-data-grid?activeTab=versions"}]},{"id":"react-data-grid","name":"react-data-grid","vendor":"Comcast (open source, originally Adazzle)","homepage":"https://comcast.github.io/react-data-grid/","docs":"https://github.com/Comcast/react-data-grid#api-reference","licenseUrl":"https://github.com/Comcast/react-data-grid/blob/main/LICENSE","repo":"https://github.com/Comcast/react-data-grid","lastVerified":"2026-11-11","editions":[{"id":"oss","name":"react-data-grid","license":"MIT","price":"Free","free":true,"freeConditions":"MIT: free for any use.","deployment":"None (MIT).","source":"https://github.com/Comcast/react-data-grid/blob/main/LICENSE"}],"frameworks":{"list":["React"],"source":"https://github.com/Comcast/react-data-grid#features"},"packages":[{"name":"react-data-grid"}],"rendering":{"text":"DOM, with row and column virtualization.","source":"https://github.com/Comcast/react-data-grid#features"},"measurements":[{"statsId":"react-data-grid","label":"react-data-grid"}],"features":{"rowVirtualization":{"support":"full","edition":"oss","source":"https://github.com/Comcast/react-data-grid#enablevirtualization-maybeboolean"},"columnVirtualization":{"support":"full","edition":"oss","source":"https://github.com/Comcast/react-data-grid#features"},"sorting":{"support":"partial","edition":"oss","source":"https://github.com/Comcast/react-data-grid#sortcolumns-maybereadonly-sortcolumn","note":"Sortable headers and sort state; you sort the rows."},"filtering":{"support":"none","note":"The demos build header filters in app code."},"columnResizing":{"support":"full","edition":"oss","source":"https://github.com/Comcast/react-data-grid#resizable-maybeboolean"},"columnReordering":{"support":"partial","edition":"oss","source":"https://github.com/Comcast/react-data-grid#draggable-maybeboolean","note":"Drag events; you reorder the columns."},"columnPinning":{"support":"full","edition":"oss","source":"https://github.com/Comcast/react-data-grid#frozen-maybecolumnfrozen--true"},"columnGroups":{"support":"full","edition":"oss","source":"https://github.com/Comcast/react-data-grid#columngrouptrow-tsummaryrow"},"columnMenu":{"support":"none"},"rowGrouping":{"support":"full","edition":"oss","source":"https://github.com/Comcast/react-data-grid#treedatagrid-","note":"With the TreeDataGrid component."},"aggregations":{"support":"partial","edition":"oss","source":"https://github.com/Comcast/react-data-grid#topsummaryrows-maybereadonly-sr","note":"Summary rows show values you compute."},"pivoting":{"support":"none"},"treeData":{"support":"none","note":"TreeDataGrid groups by column values; the tree demo is app code."},"masterDetail":{"support":"none","note":"The demo builds it in app code."},"lazyLoading":{"support":"none","note":"The infinite scrolling demo is app code."},"serverSideOperations":{"support":"none"},"pagination":{"support":"none"},"cellEditing":{"support":"full","edition":"oss","source":"https://github.com/Comcast/react-data-grid#rendereditcell-maybeprops-rendereditcellcontentpropstrow-tsummaryrow--reactnode"},"rowSelection":{"support":"full","edition":"oss","source":"https://github.com/Comcast/react-data-grid#selectedrows-maybereadonlysetk"},"cellSelection":{"support":"none"},"keyboardNavigation":{"support":"full","edition":"oss","source":"https://github.com/Comcast/react-data-grid#keyboard-shortcuts"},"contextMenu":{"support":"headless","edition":"oss","source":"https://github.com/Comcast/react-data-grid#oncellcontextmenu-cellmouseeventhandlerr-sr","note":"A context menu event; you render the menu."},"rowReordering":{"support":"none","note":"The demo implements it in app code."},"clipboard":{"support":"partial","edition":"oss","source":"https://github.com/Comcast/react-data-grid#keyboard-shortcuts","note":"Copy and paste of the active cell, through callbacks."},"csvExport":{"support":"none"},"excelExport":{"support":"none"},"charts":{"support":"none"},"themingCssVariables":{"support":"full","edition":"oss","source":"https://github.com/Comcast/react-data-grid#css-variables"},"accessibility":{"support":"full","edition":"oss","source":"https://github.com/Comcast/react-data-grid#role-string--undefined"},"rtl":{"support":"full","edition":"oss","source":"https://github.com/Comcast/react-data-grid#direction-maybeltr--rtl"}},"strengths":[{"text":"Small and dependency-free, with tree shaking.","source":"https://github.com/Comcast/react-data-grid#features"},{"text":"Row and column virtualization.","source":"https://github.com/Comcast/react-data-grid#features"},{"text":"A modern React fit: ESM, server-side rendering support, strict TypeScript types.","source":"https://github.com/Comcast/react-data-grid#features"},{"text":"Light and dark mode out of the box, themed with CSS variables.","source":"https://github.com/Comcast/react-data-grid#styling-and-customization"},{"text":"Accessible: ARIA grid semantics, keyboard support and right-to-left layouts.","source":"https://github.com/Comcast/react-data-grid#treedatagrid-"}],"notes":[{"text":"The npm \"latest\" release is a 7.0 beta; the last stable release is 6.1.0, from 2019.","source":"https://www.npmjs.com/package/react-data-grid?activeTab=versions"}]},{"id":"material-react-table","name":"Material React Table","vendor":"Kevin Van Cott (open source)","homepage":"https://www.material-react-table.com/","docs":"https://www.material-react-table.com/docs/getting-started/install","licenseUrl":"https://github.com/KevinVandy/material-react-table/blob/v3/LICENSE","repo":"https://github.com/KevinVandy/material-react-table","lastVerified":"2026-11-11","editions":[{"id":"mit","name":"Material React Table","license":"MIT","price":"Free","free":true,"freeConditions":"MIT: free in personal and commercial projects.","deployment":"None (MIT).","source":"https://www.material-react-table.com/about"}],"frameworks":{"list":["React"],"source":"https://www.material-react-table.com/docs/getting-started/install","note":"Built on TanStack Table and Material UI, which (with Emotion and MUI date pickers) are required peer dependencies."},"packages":[{"name":"material-react-table"}],"rendering":{"text":"DOM, Material UI table built on TanStack Table; virtualization is opt-in.","source":"https://www.material-react-table.com/docs/guides/virtualization"},"measurements":[{"statsId":"material-react-table","label":"Material React Table"}],"features":{"rowVirtualization":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/virtualization","note":"Opt-in."},"columnVirtualization":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/virtualization","note":"Opt-in."},"sorting":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/sorting"},"filtering":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/column-filtering"},"columnResizing":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/column-resizing"},"columnReordering":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/column-ordering-dnd"},"columnPinning":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/column-pinning"},"columnGroups":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/examples/advanced"},"columnMenu":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/column-actions"},"rowGrouping":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/column-grouping"},"aggregations":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/aggregation"},"pivoting":{"support":"none"},"treeData":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/expanding-sub-rows"},"masterDetail":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/detail-panel"},"lazyLoading":{"support":"none","note":"The infinite scrolling example builds it with TanStack Query.","source":"https://www.material-react-table.com/docs/examples/infinite-scrolling"},"serverSideOperations":{"support":"partial","edition":"mit","source":"https://www.material-react-table.com/docs/examples/react-query","note":"Manual modes turn off client-side processing; you fetch the data."},"pagination":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/pagination"},"cellEditing":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/editing"},"rowSelection":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/row-selection"},"cellSelection":{"support":"none"},"keyboardNavigation":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/accessibility"},"contextMenu":{"support":"full","edition":"mit","source":"https://www.material-react-table.com/docs/guides/cell-actions","note":"Cell actions menu."},"rowReordering":{"support":"partial","edition":"mit","source":"https://www.material-react-table.com/docs/guides/row-ordering-dnd","note":"Drag handles; you reorder the data."},"clipboard":{"support":"partial","edition":"mit","source":"https://www.material-react-table.com/docs/guides/click-to-copy","note":"Click to copy one cell."},"csvExport":{"support":"none","note":"The docs show how to export with third-party libraries.","source":"https://www.material-react-table.com/docs/examples/export-csv"},"excelExport":{"support":"none"},"charts":{"support":"none"},"themingCssVariables":{"support":"partial","edition":"mit","source":"https://www.material-react-table.com/docs/guides/customize-components","note":"Themed through the Material UI theme."},"accessibility":{"support":"partial","edition":"mit","source":"https://www.material-react-table.com/docs/guides/accessibility","note":"Keyboard navigation and focus are documented; ARIA roles are not."},"rtl":{"support":"partial","edition":"mit","source":"https://www.material-react-table.com/docs/guides/column-resizing","note":"Follows the MUI theme direction for resizing."}},"strengths":[{"text":"A ready-made Material Design data table on top of TanStack Table: toolbar, menus, filters and pagination included.","source":"https://www.material-react-table.com/"},{"text":"It respects your Material UI theme.","source":"https://www.material-react-table.com/docs/guides/customize-components"},{"text":"MIT with no paid tier, including grouping, aggregation, tree rows and detail panels.","source":"https://www.material-react-table.com/about"},{"text":"Rich filtering: 13 filter variants, including date, range and multi-select.","source":"https://www.material-react-table.com/docs/guides/column-filtering"},{"text":"Five editing modes (modal, row, cell, table, custom).","source":"https://www.material-react-table.com/docs/guides/editing"}],"notes":[{"text":"The latest stable release, 3.2.1, is from March 2025.","source":"https://www.npmjs.com/package/material-react-table?activeTab=versions"}]},{"id":"mantine-react-table","name":"Mantine React Table","vendor":"Kevin Van Cott (open source)","homepage":"https://www.mantine-react-table.com/","docs":"https://www.mantine-react-table.com/docs/getting-started/install","licenseUrl":"https://github.com/KevinVandy/mantine-react-table/blob/v2/LICENSE","repo":"https://github.com/KevinVandy/mantine-react-table","lastVerified":"2026-11-11","editions":[{"id":"mit","name":"Mantine React Table","license":"MIT","price":"Free","free":true,"freeConditions":"MIT: free in personal and commercial projects.","deployment":"None (MIT).","source":"https://www.mantine-react-table.com/about"}],"frameworks":{"list":["React"],"source":"https://www.mantine-react-table.com/docs/getting-started/install","note":"The stable V1 needs Mantine V6; V2, for Mantine V7, is in beta."},"packages":[{"name":"mantine-react-table"}],"rendering":{"text":"DOM, Mantine table built on TanStack Table; virtualization is opt-in.","source":"https://www.mantine-react-table.com/docs/guides/virtualization"},"measurements":[{"statsId":"mantine-react-table","label":"Mantine React Table"}],"features":{"rowVirtualization":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/virtualization","note":"Opt-in."},"columnVirtualization":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/virtualization","note":"Opt-in."},"sorting":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/sorting"},"filtering":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/column-filtering"},"columnResizing":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/column-resizing"},"columnReordering":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/column-ordering-dnd"},"columnPinning":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/column-pinning"},"columnGroups":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/api/column-options"},"columnMenu":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/column-actions-menu"},"rowGrouping":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/aggregation-and-grouping"},"aggregations":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/aggregation-and-grouping"},"pivoting":{"support":"none"},"treeData":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/expanding-sub-rows"},"masterDetail":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/detail-panel"},"lazyLoading":{"support":"none","note":"The infinite scrolling example builds it with TanStack Query.","source":"https://www.mantine-react-table.com/docs/examples/infinite-scrolling"},"serverSideOperations":{"support":"partial","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/sorting","note":"Manual modes turn off client-side processing; you fetch the data."},"pagination":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/pagination"},"cellEditing":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/editing"},"rowSelection":{"support":"full","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/row-selection"},"cellSelection":{"support":"none"},"keyboardNavigation":{"support":"none"},"contextMenu":{"support":"none"},"rowReordering":{"support":"partial","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/row-ordering-dnd","note":"Drag handles; you reorder the data."},"clipboard":{"support":"partial","edition":"mit","source":"https://www.mantine-react-table.com/docs/guides/click-to-copy","note":"Click to copy one cell."},"csvExport":{"support":"none","note":"The docs show how to export with third-party libraries.","source":"https://www.mantine-react-table.com/docs/examples/export-csv"},"excelExport":{"support":"none"},"charts":{"support":"none"},"themingCssVariables":{"support":"partial","edition":"mit","source":"https://v2.mantine-react-table.com/docs/guides/customize-component-styles","note":"Mantine theme; CSS variables in the V2 beta."},"accessibility":{"support":"none"},"rtl":{"support":"partial","edition":"mit","source":"https://v2.mantine-react-table.com/docs/guides/column-resizing","note":"RTL column resizing in the V2 beta."}},"strengths":[{"text":"A ready-made Mantine data table on top of TanStack Table: toolbar, menus, filters and pagination included.","source":"https://v2.mantine-react-table.com/"},{"text":"It respects your Mantine theme.","source":"https://v2.mantine-react-table.com/docs/guides/customize-component-styles"},{"text":"MIT with no paid tier, including grouping, aggregation, tree rows and detail panels.","source":"https://www.mantine-react-table.com/about"},{"text":"Five editing modes and many filter variants.","source":"https://www.mantine-react-table.com/docs/guides/editing"},{"text":"Shares its API with Material React Table, which it was forked from.","source":"https://www.mantine-react-table.com/"}],"notes":[{"text":"npm \"latest\" is still V1 (1.3.4, November 2023, for Mantine V6). V2 is 2.0.0-beta.9 (February 2025). Neither supports Mantine 8 or 9.","source":"https://www.npmjs.com/package/mantine-react-table?activeTab=versions"}]},{"id":"revogrid","name":"RevoGrid","vendor":"Revolist","homepage":"https://rv-grid.com/","docs":"https://rv-grid.com/guide/react/","pricingUrl":"https://rv-grid.com/pricing","licenseUrl":"https://rv-grid.com/guide/licensing","repo":"https://github.com/revolist/revogrid","lastVerified":"2026-11-11","editions":[{"id":"community","name":"RevoGrid (MIT core)","shortName":"MIT core","license":"MIT","price":"Free","free":true,"freeConditions":"MIT: free for commercial use.","deployment":"None (MIT).","source":"https://rv-grid.com/pricing"},{"id":"pro-lite","name":"RevoGrid Pro Lite","shortName":"Pro Lite","license":"Commercial (EULA)","price":"$199 per developer per year","priceNote":"Annual license; Pro modules except Pivot, Kanban, Gantt and Scheduler.","free":false,"freeConditions":"30-day evaluation.","deployment":"No deployment counting, no server license.","source":"https://rv-grid.com/pricing"},{"id":"pro-advanced","name":"RevoGrid Pro Advanced","shortName":"Pro Advanced","license":"Commercial (EULA)","price":"$499 per developer per year","priceNote":"Adds the Pivot Table, Kanban, Gantt and Scheduler modules.","free":false,"freeConditions":"30-day evaluation.","deployment":"No deployment counting, no server license.","source":"https://rv-grid.com/pricing"}],"frameworks":{"list":["React","Vue","Angular","Svelte","JavaScript","Web Components"],"source":"https://github.com/revolist/revogrid/blob/main/readme.md"},"packages":[{"name":"@revolist/react-datagrid"},{"name":"@revolist/revogrid"}],"rendering":{"text":"DOM web component, with row and column virtualization.","source":"https://github.com/revolist/revogrid/blob/main/readme.md"},"measurements":[{"statsId":"revogrid","label":"RevoGrid (MIT core)"}],"features":{"rowVirtualization":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/defs"},"columnVirtualization":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/performance"},"sorting":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/sorting"},"filtering":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/filters"},"columnResizing":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/column/resize"},"columnReordering":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/column/order"},"columnPinning":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/column/pin"},"columnGroups":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/column/grouping"},"columnMenu":{"support":"none"},"rowGrouping":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/row/grouping"},"aggregations":{"support":"full","edition":"pro-lite","source":"https://rv-grid.com/guide/row/grouping"},"pivoting":{"support":"full","edition":"pro-advanced","source":"https://rv-grid.com/pricing"},"treeData":{"support":"full","edition":"pro-lite","source":"https://rv-grid.com/pro/"},"masterDetail":{"support":"full","edition":"pro-lite","source":"https://rv-grid.com/pro/"},"lazyLoading":{"support":"full","edition":"pro-lite","source":"https://rv-grid.com/pro/"},"serverSideOperations":{"support":"headless","edition":"community","source":"https://rv-grid.com/guide/server-side-data","note":"Intercept sort and filter events and load the results yourself."},"pagination":{"support":"full","edition":"pro-lite","source":"https://rv-grid.com/pro/"},"cellEditing":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/editing"},"rowSelection":{"support":"full","edition":"pro-lite","source":"https://rv-grid.com/pro/","note":"Checkbox row selection is Pro."},"cellSelection":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/defs"},"keyboardNavigation":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/defs#Keyboard"},"contextMenu":{"support":"full","edition":"pro-lite","source":"https://rv-grid.com/pro/"},"rowReordering":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/row/order"},"clipboard":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/defs"},"csvExport":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/export.plugin"},"excelExport":{"support":"full","edition":"pro-lite","source":"https://rv-grid.com/guide/data-grid-export-excel"},"charts":{"support":"partial","edition":"pro-lite","source":"https://rv-grid.com/pro/","note":"Charts in cells only."},"themingCssVariables":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/theme"},"accessibility":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/wcag"},"rtl":{"support":"full","edition":"community","source":"https://rv-grid.com/guide/rtl"}},"strengths":[{"text":"Built for large data: millions of cells and thousands of columns.","source":"https://github.com/revolist/revogrid/blob/main/readme.md"},{"text":"A web component core with official React, Vue, Angular and Svelte wrappers.","source":"https://rv-grid.com/guide/defs"},{"text":"A generous MIT core: column groups, row grouping, pinning, range selection, clipboard and CSV export.","source":"https://github.com/revolist/revogrid/blob/main/readme.md"},{"text":"Low, simple Pro pricing with no deployment counting.","source":"https://rv-grid.com/pricing"},{"text":"Pro Advanced adds Pivot Table, Gantt, Kanban and Scheduler modules on the same grid.","source":"https://rv-grid.com/pricing"}]},{"id":"wijmo","name":"Wijmo FlexGrid","vendor":"MESCIUS","homepage":"https://developer.mescius.com/wijmo","docs":"https://developer.mescius.com/wijmo/docs/GettingStarted/QuickStart/QuickStart-React","pricingUrl":"https://developer.mescius.com/wijmo/pricing","licenseUrl":"https://developer.mescius.com/wijmo/licensing","lastVerified":"2026-11-11","editions":[{"id":"enterprise","name":"Wijmo Enterprise","license":"Commercial (EULA)","price":"$799 per developer","priceNote":"Perpetual developer license with one year of updates and support; renewal $599 per year.","free":false,"freeConditions":"30-day trial with a watermark.","deployment":"Licensed per developer and deployment hostname: 5 non-commercial hostnames included; commercial deployment is $499 per hostname (one-time); SaaS needs an annual SaaS license.","source":"https://developer.mescius.com/wijmo/pricing"}],"frameworks":{"list":["React","Angular","Vue","JavaScript","Web Components"],"source":"https://developer.mescius.com/wijmo/docs/GettingStarted/Introduction"},"packages":[{"name":"@mescius/wijmo.react.grid"}],"rendering":{"text":"DOM, with row and column virtualization.","source":"https://developer.mescius.com/wijmo/api/classes/Wijmo_Grid.Flexgrid.html"},"measurements":[{"statsId":"wijmo","label":"Wijmo FlexGrid"}],"features":{"rowVirtualization":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/api/classes/Wijmo_Grid.Flexgrid.html"},"columnVirtualization":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/api/classes/Wijmo_Grid.Flexgrid.html"},"sorting":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/api/enums/Wijmo_Grid.Allowsorting.html"},"filtering":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/docs/Topics/Grid/Filtering/Excel-like-Filter","note":"Excel-style filters (wijmo.grid.filter module)."},"columnResizing":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/demos/Grid/Columns/Resizing/react"},"columnReordering":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/api/enums/Wijmo_Grid.Allowdragging.html"},"columnPinning":{"support":"partial","edition":"enterprise","source":"https://developer.mescius.com/wijmo/api/enums/Wijmo_Grid.Allowpinning.html","note":"Frozen and pinned columns on the left."},"columnGroups":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/demos/Grid/Columns/ColumnGroups/react"},"columnMenu":{"support":"none","note":"The column picker demo builds one in app code."},"rowGrouping":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/demos/Grid/Grouping/GroupPanel"},"aggregations":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/demos/Grid/Aggregation/Aggregategroup"},"pivoting":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/docs/Topics/OLAP/OLAP-Architecture","note":"With the separate OLAP module (PivotGrid)."},"treeData":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/demos/Grid/TreeGrid/ChildItems"},"masterDetail":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/demos/Grid/Rows/RowDetail/Overview"},"lazyLoading":{"support":"partial","edition":"enterprise","source":"https://developer.mescius.com/wijmo/demos/Grid/Data-binding/VirtualOData","note":"Documented for OData services."},"serverSideOperations":{"support":"partial","edition":"enterprise","source":"https://developer.mescius.com/wijmo/flexgrid-javascript-data-grid","note":"Server-side operations through CollectionViews, documented mainly for OData."},"pagination":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/demos/Core/CollectionView/NavigatingViews/CollectionViewNavigator"},"cellEditing":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/api/classes/Wijmo_Grid.Flexgrid.html"},"rowSelection":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/demos/Grid/Selection/CheckboxSelection"},"cellSelection":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/api/enums/wijmo_grid.selectionmode.html"},"keyboardNavigation":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/api/classes/Wijmo_Grid.Flexgrid.html"},"contextMenu":{"support":"none","note":"The demo builds one in app code."},"rowReordering":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/demos/Grid/Rows/Reordering"},"clipboard":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/api/classes/Wijmo_Grid.Flexgrid.html"},"csvExport":{"support":"partial","edition":"enterprise","source":"https://developer.mescius.com/wijmo/demos/Grid/ClipString","note":"CSV text through getClipString; saving the file is up to you."},"excelExport":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/demos/Grid/ImportExportPrint/Excel/Async"},"charts":{"support":"partial","edition":"enterprise","source":"https://developer.mescius.com/wijmo/demos/Grid/CustomCells/CellMaker/Sparklines/purejs","note":"In-cell sparklines; charts are separate controls."},"themingCssVariables":{"support":"partial","edition":"enterprise","source":"https://developer.mescius.com/wijmo/docs/GettingStarted/Wijmo-Sass","note":"Themed with Sass variables and bundled themes."},"accessibility":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/demos/Grid/Accessibility/AccessibilityExtender"},"rtl":{"support":"full","edition":"enterprise","source":"https://developer.mescius.com/wijmo/demos/Grid/RightToLeft"}},"strengths":[{"text":"A broad feature set in one product: Excel-style filtering, grouping with aggregates, a tree grid, master-detail and multi-level column groups.","source":"https://developer.mescius.com/wijmo/flexgrid-javascript-data-grid"},{"text":"Client-side OLAP pivoting with a pivot panel, pivot grid and pivot chart.","source":"https://developer.mescius.com/wijmo/react-ui-components"},{"text":"Modular: components ship as separate modules, with no external dependencies.","source":"https://developer.mescius.com/wijmo/docs/GettingStarted/Introduction"},{"text":"One component set for JavaScript, Angular, React, Vue and Web Components.","source":"https://developer.mescius.com/wijmo/docs/GettingStarted/Introduction"},{"text":"Perpetual developer licenses, and offline license validation.","source":"https://developer.mescius.com/wijmo/licensing"}]}],"packageStats":{"measuredAt":"2026-11-11","tools":{"node":"v22.21.0","npm":"11.19.1","esbuild":"0.25.10"},"script":"www/scripts/compare/measure-packages.mjs","results":{"infinite-react":{"label":"Infinite Table (React)","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"@infinite-table/infinite-react","version":"10.1.4"}],"directDependencies":[],"peerDependencies":["react"],"extraInstall":[],"transitiveDependencyCount":0,"firstPartyDependencyCount":0,"thirdPartyDependencyCount":0,"transitiveDependencies":[],"bundle":{"jsGzip":144878,"jsMinified":497704,"cssGzip":5701,"cssMinified":61093}},"infinite-vue":{"label":"Infinite Table (Vue)","measuredAt":"2026-11-11","framework":"vue","packages":[{"name":"@infinite-table/infinite-vue","version":"10.1.4"}],"directDependencies":[],"peerDependencies":["vue"],"extraInstall":[],"transitiveDependencyCount":0,"firstPartyDependencyCount":0,"thirdPartyDependencyCount":0,"transitiveDependencies":[],"bundle":{"jsGzip":126426,"jsMinified":440117,"cssGzip":5393,"cssMinified":59324}},"ag-grid-community":{"label":"AG Grid Community","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"ag-grid-react","version":"36.3.0"},{"name":"ag-grid-community","version":"36.3.0"}],"directDependencies":["ag-charts-types","ag-stack","prop-types"],"peerDependencies":["react","react-dom"],"extraInstall":[],"transitiveDependencyCount":7,"firstPartyDependencyCount":2,"thirdPartyDependencyCount":5,"transitiveDependencies":["ag-charts-types@14.3.0","ag-stack@36.3.0","js-tokens@4.0.0","loose-envify@1.4.0","object-assign@4.1.1","prop-types@15.8.1","react-is@16.13.1"],"bundle":{"jsGzip":343948,"jsMinified":1218469,"cssGzip":0,"cssMinified":0}},"ag-grid-enterprise":{"label":"AG Grid Enterprise","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"ag-grid-react","version":"36.3.0"},{"name":"ag-grid-community","version":"36.3.0"},{"name":"ag-grid-enterprise","version":"36.3.0"}],"directDependencies":["ag-charts-types","ag-stack","prop-types"],"peerDependencies":["react","react-dom"],"extraInstall":[],"transitiveDependencyCount":11,"firstPartyDependencyCount":6,"thirdPartyDependencyCount":5,"transitiveDependencies":["ag-charts-community@14.3.0","ag-charts-core@14.3.0","ag-charts-enterprise@14.3.0","ag-charts-locale@14.3.0","ag-charts-types@14.3.0","ag-stack@36.3.0","js-tokens@4.0.0","loose-envify@1.4.0","object-assign@4.1.1","prop-types@15.8.1","react-is@16.13.1"],"bundle":{"jsGzip":775260,"jsMinified":2763893,"cssGzip":0,"cssMinified":0}},"mui-x-data-grid":{"label":"MUI X Data Grid (Community)","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"@mui/x-data-grid","version":"9.17.0"}],"directDependencies":["@babel/runtime","@base-ui/utils","@mui/utils","@mui/x-internals","@mui/x-virtualizer","clsx","prop-types","use-sync-external-store"],"peerDependencies":["@emotion/react","@emotion/styled","@mui/material","@mui/system","react","react-dom"],"extraInstall":["@mui/material@9.5.0","@emotion/react@11.14.0","@emotion/styled@11.14.1"],"transitiveDependencyCount":86,"firstPartyDependencyCount":9,"thirdPartyDependencyCount":77,"transitiveDependencies":["@babel/code-frame@7.29.7","@babel/generator@7.29.13","@babel/helper-globals@7.29.7","@babel/helper-module-imports@7.29.7","@babel/helper-string-parser@7.29.13","@babel/helper-validator-identifier@7.29.7","@babel/parser@7.29.13","@babel/runtime@7.29.13","@babel/template@7.29.7","@babel/traverse@7.29.13","@babel/types@7.29.11","@base-ui/utils@0.5.0","@emotion/babel-plugin@11.13.5","@emotion/cache@11.14.0","@emotion/hash@0.9.2","@emotion/is-prop-valid@1.4.0","@emotion/memoize@0.9.0","@emotion/react@11.14.0","@emotion/serialize@1.3.3","@emotion/sheet@1.4.0","@emotion/styled@11.14.1","@emotion/unitless@0.10.0","@emotion/use-insertion-effect-with-fallbacks@1.2.0","@emotion/utils@1.4.2","@emotion/weak-memoize@0.4.0","@floating-ui/utils@0.2.12","@jridgewell/gen-mapping@0.3.13","@jridgewell/resolve-uri@3.1.2","@jridgewell/sourcemap-codec@1.6.0","@jridgewell/trace-mapping@0.3.31","@mui/core-downloads-tracker@9.5.0","@mui/material@9.5.0","@mui/private-theming@9.5.0","@mui/styled-engine@9.5.0","@mui/system@9.5.0","@mui/types@9.5.0","@mui/utils@9.5.0","@mui/x-internals@9.17.0","@mui/x-virtualizer@0.7.5","@popperjs/core@2.11.8","@types/parse-json@4.0.2","@types/prop-types@15.7.15","@types/react-transition-group@4.4.12","@types/react@19.3.0","babel-plugin-macros@3.1.0","callsites@3.1.0","clsx@2.1.1","convert-source-map@1.9.0","cosmiconfig@7.1.0","csstype@3.2.3","debug@4.4.3","dom-helpers@5.2.1","error-ex@1.3.4","es-errors@1.3.0","escape-string-regexp@4.0.0","find-root@1.1.0","function-bind@1.1.2","hasown@2.0.4","hoist-non-react-statics@3.3.2","import-fresh@3.3.1","is-arrayish@0.2.1","is-core-module@2.18.0","js-tokens@4.0.0","jsesc@3.1.0","json-parse-even-better-errors@2.3.1","lines-and-columns@1.2.4","loose-envify@1.4.0","ms@2.1.3","object-assign@4.1.1","parent-module@1.0.1","parse-json@5.2.0","path-parse@1.0.7","path-type@4.0.0","picocolors@1.1.1","prop-types@15.8.1","react-is@16.13.1","react-is@19.3.1","react-transition-group@4.4.5","reselect@5.3.0","resolve-from@4.0.0","resolve@1.22.14","source-map@0.5.7","stylis@4.2.0","supports-preserve-symlinks-flag@1.0.0","use-sync-external-store@1.7.0","yaml@1.10.3"],"bundle":{"jsGzip":238491,"jsMinified":776632,"cssGzip":0,"cssMinified":0}},"mui-x-data-grid-premium":{"label":"MUI X Data Grid Premium","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"@mui/x-data-grid-premium","version":"9.17.0"}],"directDependencies":["@babel/runtime","@base-ui/utils","@mui/utils","@mui/x-data-grid","@mui/x-data-grid-pro","@mui/x-internal-exceljs-fork","@mui/x-internals","@mui/x-license","clsx","prop-types"],"peerDependencies":["@emotion/react","@emotion/styled","@mui/material","@mui/system","react","react-dom"],"extraInstall":["@mui/material@9.5.0","@emotion/react@11.14.0","@emotion/styled@11.14.1"],"transitiveDependencyCount":119,"firstPartyDependencyCount":14,"thirdPartyDependencyCount":105,"transitiveDependencies":["@babel/code-frame@7.29.7","@babel/generator@7.29.13","@babel/helper-globals@7.29.7","@babel/helper-module-imports@7.29.7","@babel/helper-string-parser@7.29.13","@babel/helper-validator-identifier@7.29.7","@babel/parser@7.29.13","@babel/runtime@7.29.13","@babel/template@7.29.7","@babel/traverse@7.29.13","@babel/types@7.29.11","@base-ui/utils@0.5.0","@emotion/babel-plugin@11.13.5","@emotion/cache@11.14.0","@emotion/hash@0.9.2","@emotion/is-prop-valid@1.4.0","@emotion/memoize@0.9.0","@emotion/react@11.14.0","@emotion/serialize@1.3.3","@emotion/sheet@1.4.0","@emotion/styled@11.14.1","@emotion/unitless@0.10.0","@emotion/use-insertion-effect-with-fallbacks@1.2.0","@emotion/utils@1.4.2","@emotion/weak-memoize@0.4.0","@fast-csv/format@5.0.8","@fast-csv/parse@5.0.8","@fingerprintjs/fingerprintjs@3.4.2","@floating-ui/utils@0.2.12","@jridgewell/gen-mapping@0.3.13","@jridgewell/resolve-uri@3.1.2","@jridgewell/sourcemap-codec@1.6.0","@jridgewell/trace-mapping@0.3.31","@mui/core-downloads-tracker@9.5.0","@mui/material@9.5.0","@mui/private-theming@9.5.0","@mui/styled-engine@9.5.0","@mui/system@9.5.0","@mui/types@9.5.0","@mui/utils@9.5.0","@mui/x-data-grid-pro@9.17.0","@mui/x-data-grid@9.17.0","@mui/x-internal-exceljs-fork@5.0.0","@mui/x-internals@9.17.0","@mui/x-license@9.17.0","@mui/x-telemetry@9.17.0","@mui/x-virtualizer@0.7.5","@popperjs/core@2.11.8","@types/node@14.18.63","@types/parse-json@4.0.2","@types/prop-types@15.7.15","@types/react-transition-group@4.4.12","@types/react@19.3.0","babel-plugin-macros@3.1.0","callsites@3.1.0","ci-info@4.5.0","clsx@2.1.1","convert-source-map@1.9.0","core-util-is@1.0.3","cosmiconfig@7.1.0","csstype@3.2.3","dayjs@1.11.23","debug@4.4.3","dom-helpers@5.2.1","error-ex@1.3.4","es-errors@1.3.0","escape-string-regexp@4.0.0","fast-csv@5.0.8","find-root@1.1.0","function-bind@1.1.2","hasown@2.0.4","hoist-non-react-statics@3.3.2","immediate@3.0.6","import-fresh@3.3.1","inherits@2.0.4","is-arrayish@0.2.1","is-core-module@2.18.0","is-docker@4.0.0","isarray@1.0.0","js-tokens@4.0.0","jsesc@3.1.0","json-parse-even-better-errors@2.3.1","jszip@3.10.2","lie@3.3.0","lines-and-columns@1.2.4","loose-envify@1.4.0","ms@2.1.3","node-machine-id@1.1.12","object-assign@4.1.1","pako@1.0.11","parent-module@1.0.1","parse-json@5.2.0","path-parse@1.0.7","path-type@4.0.0","picocolors@1.1.1","process-nextick-args@2.0.1","prop-types@15.8.1","react-is@16.13.1","react-is@19.3.1","react-transition-group@4.4.5","readable-stream@2.3.8","readable-stream@3.6.2","reselect@5.3.0","resolve-from@4.0.0","resolve@1.22.14","safe-buffer@5.1.2","safe-buffer@5.2.1","saxes@5.0.1","setimmediate@1.0.5","source-map@0.5.7","string_decoder@1.1.1","string_decoder@1.3.0","stylis@4.2.0","supports-preserve-symlinks-flag@1.0.0","tslib@2.9.1","use-sync-external-store@1.7.0","util-deprecate@1.0.2","xmlchars@2.2.0","yaml@1.10.3"],"bundle":{"jsGzip":627241,"jsMinified":2121572,"cssGzip":0,"cssMinified":0}},"tanstack-table":{"label":"TanStack Table","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"@tanstack/react-table","version":"9.3.1"}],"directDependencies":["@tanstack/react-store","@tanstack/table-core"],"peerDependencies":["react"],"extraInstall":[],"transitiveDependencyCount":4,"firstPartyDependencyCount":3,"thirdPartyDependencyCount":1,"transitiveDependencies":["@tanstack/react-store@0.11.2","@tanstack/store@0.11.2","@tanstack/table-core@9.3.1","use-sync-external-store@1.7.0"],"bundle":{"jsGzip":9947,"jsMinified":30390,"cssGzip":0,"cssMinified":0}},"tanstack-table-virtual":{"label":"TanStack Table + TanStack Virtual","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"@tanstack/react-table","version":"9.3.1"},{"name":"@tanstack/react-virtual","version":"3.14.26"}],"directDependencies":["@tanstack/react-store","@tanstack/table-core","@tanstack/virtual-core"],"peerDependencies":["react","react-dom"],"extraInstall":[],"transitiveDependencyCount":5,"firstPartyDependencyCount":4,"thirdPartyDependencyCount":1,"transitiveDependencies":["@tanstack/react-store@0.11.2","@tanstack/store@0.11.2","@tanstack/table-core@9.3.1","@tanstack/virtual-core@3.19.11","use-sync-external-store@1.7.0"],"bundle":{"jsGzip":20210,"jsMinified":65300,"cssGzip":0,"cssMinified":0}},"handsontable":{"label":"Handsontable","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"@handsontable/react-wrapper","version":"18.1.2"},{"name":"handsontable","version":"18.1.2"}],"directDependencies":[],"peerDependencies":[],"extraInstall":[],"transitiveDependencyCount":0,"firstPartyDependencyCount":0,"thirdPartyDependencyCount":0,"transitiveDependencies":[],"bundle":{"jsGzip":355044,"jsMinified":1491418,"cssGzip":22753,"cssMinified":206461}},"devextreme":{"label":"DevExtreme React DataGrid","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"devextreme-react","version":"26.1.6"},{"name":"devextreme","version":"26.1.6"}],"directDependencies":["@babel/runtime","@preact/signals-core","devexpress-diagram","devexpress-gantt","devextreme-quill","inferno","inferno-create-element","jszip","prop-types","rrule","zod"],"peerDependencies":["react","react-dom"],"extraInstall":[],"transitiveDependencyCount":42,"firstPartyDependencyCount":1,"thirdPartyDependencyCount":41,"transitiveDependencies":["@babel/runtime@7.29.13","@devexpress/utils@2.1.4","@preact/signals-core@1.14.5","core-js@3.51.0","core-util-is@1.0.3","csstype@3.2.3","devexpress-diagram@2.2.31","devexpress-gantt@4.1.71","devextreme-quill@1.7.10","es6-object-assign@1.1.0","eventemitter3@4.0.7","fast-diff@1.3.0","immediate@3.0.6","inferno-create-element@8.2.3","inferno-vnode-flags@8.2.3","inferno@8.2.3","inherits@2.0.4","isarray@1.0.0","js-tokens@4.0.0","jszip@3.10.2","lie@3.3.0","lodash.clonedeep@4.5.0","lodash.isequal@4.5.0","lodash.merge@4.6.2","loose-envify@1.4.0","object-assign@4.1.1","opencollective-postinstall@2.0.3","pako@1.0.11","parchment@2.0.1","process-nextick-args@2.0.1","prop-types@15.8.1","quill-delta@5.1.0","react-is@16.13.1","readable-stream@2.3.8","rrule@2.8.1","safe-buffer@5.1.2","setimmediate@1.0.5","string_decoder@1.1.1","tslib@2.3.1","tslib@2.9.1","util-deprecate@1.0.2","zod@4.6.7"],"bundle":{"jsGzip":693267,"jsMinified":2669413,"cssGzip":94371,"cssMinified":694319}},"syncfusion":{"label":"Syncfusion React Grid","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"@syncfusion/ej2-react-grids","version":"35.1.42"}],"directDependencies":["@syncfusion/ej2-base","@syncfusion/ej2-grids","@syncfusion/ej2-react-base"],"peerDependencies":[],"extraInstall":["@syncfusion/ej2-material-theme@35.1.43"],"transitiveDependencyCount":20,"firstPartyDependencyCount":20,"thirdPartyDependencyCount":0,"transitiveDependencies":["@syncfusion/ej2-base@35.1.37","@syncfusion/ej2-buttons@35.1.41","@syncfusion/ej2-calendars@35.1.43","@syncfusion/ej2-compression@35.1.37","@syncfusion/ej2-data@35.1.37","@syncfusion/ej2-dropdowns@35.1.43","@syncfusion/ej2-excel-export@35.1.37","@syncfusion/ej2-file-utils@35.1.37","@syncfusion/ej2-grids@35.1.42","@syncfusion/ej2-icons@35.1.37","@syncfusion/ej2-inputs@35.1.43","@syncfusion/ej2-lists@35.1.43","@syncfusion/ej2-material-theme@35.1.43","@syncfusion/ej2-navigations@35.1.43","@syncfusion/ej2-notifications@35.1.37","@syncfusion/ej2-pdf-export@35.1.43","@syncfusion/ej2-popups@35.1.42","@syncfusion/ej2-querybuilder@35.1.42","@syncfusion/ej2-react-base@35.1.37","@syncfusion/ej2-splitbuttons@35.1.37"],"bundle":{"jsGzip":275436,"jsMinified":1143969,"cssGzip":223707,"cssMinified":1524428}},"kendoreact":{"label":"KendoReact Grid","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"@progress/kendo-react-grid","version":"17.0.0"}],"directDependencies":["prop-types"],"peerDependencies":["@progress/kendo-csv","@progress/kendo-data-query","@progress/kendo-drawing","@progress/kendo-file-saver","@progress/kendo-licensing","@progress/kendo-react-animation","@progress/kendo-react-buttons","@progress/kendo-react-common","@progress/kendo-react-conversational-ui","@progress/kendo-react-data-tools","@progress/kendo-react-dateinputs","@progress/kendo-react-dialogs","@progress/kendo-react-dropdowns","@progress/kendo-react-form","@progress/kendo-react-indicators","@progress/kendo-react-inputs","@progress/kendo-react-intl","@progress/kendo-react-labels","@progress/kendo-react-layout","@progress/kendo-react-popup","@progress/kendo-svg-icons","react","react-dom"],"extraInstall":["@progress/kendo-theme-default@14.10.0"],"transitiveDependencyCount":90,"firstPartyDependencyCount":39,"thirdPartyDependencyCount":51,"transitiveDependencies":["@babel/runtime@7.29.13","@isaacs/nonrecursive-glob-match@1.1.0","@progress/kendo-common@1.1.5","@progress/kendo-csv@1.0.0","@progress/kendo-data-query@1.7.4","@progress/kendo-date-math@1.5.20","@progress/kendo-dateinputs-common@0.4.13","@progress/kendo-draggable-common@0.2.3","@progress/kendo-drawing@1.25.7","@progress/kendo-file-saver@1.1.3","@progress/kendo-inputs-common@3.1.4","@progress/kendo-intl@3.2.1","@progress/kendo-licensing@1.13.0","@progress/kendo-popup-common@1.9.5","@progress/kendo-react-animation@17.0.0","@progress/kendo-react-buttons@17.0.0","@progress/kendo-react-common@17.0.0","@progress/kendo-react-conversational-ui@17.0.0","@progress/kendo-react-data-tools@17.0.0","@progress/kendo-react-dateinputs@17.0.0","@progress/kendo-react-dialogs@17.0.0","@progress/kendo-react-dropdowns@17.0.0","@progress/kendo-react-form@17.0.0","@progress/kendo-react-indicators@17.0.0","@progress/kendo-react-inputs@17.0.0","@progress/kendo-react-intl@17.0.0","@progress/kendo-react-labels@17.0.0","@progress/kendo-react-layout@17.0.0","@progress/kendo-react-notification@17.0.0","@progress/kendo-react-popup@17.0.0","@progress/kendo-react-progressbars@17.0.0","@progress/kendo-react-tooltip@17.0.0","@progress/kendo-react-treeview@17.0.0","@progress/kendo-react-upload@17.0.0","@progress/kendo-smartpaste-common@1.0.0","@progress/kendo-svg-icons@5.5.0","@progress/kendo-theme-core@14.10.0","@progress/kendo-theme-default@14.10.0","@progress/kendo-theme-utils@14.10.0","@progress/kendo-webspeech-common@1.0.1","@progress/pako-esm@1.0.2","ansi-regex@5.0.1","ansi-styles@4.3.0","balanced-match@4.0.4","brace-expansion@5.0.13","buffer-equal-constant-time@1.0.1","cliui@8.0.1","color-convert@2.0.1","color-name@1.1.4","csstype@3.2.3","dom-helpers@5.2.1","ecdsa-sig-formatter@1.0.11","emoji-regex@8.0.0","escalade@3.2.0","get-caller-file@2.0.5","glob@14.0.4","is-fullwidth-code-point@3.0.0","js-tokens@4.0.0","jsonwebtoken@9.0.3","jwa@2.0.1","jws@4.0.1","lodash.includes@4.3.0","lodash.isboolean@3.0.3","lodash.isinteger@4.0.4","lodash.isnumber@3.0.3","lodash.isplainobject@4.0.6","lodash.isstring@4.0.1","lodash.once@4.1.1","loose-envify@1.4.0","lru-cache@11.5.3","minimatch@11.0.8","minipass@7.1.3","ms@2.1.3","object-assign@4.1.1","path-scurry@3.0.0","prop-types@15.8.1","react-is@16.13.1","react-transition-group@4.4.5","require-directory@2.1.1","safe-buffer@5.2.1","semver@7.8.6","string-width@4.2.3","strip-ansi@6.0.1","tslib@1.14.1","tslib@2.8.1","tslib@2.9.1","wrap-ansi@7.0.0","y18n@5.0.8","yargs-parser@21.1.1","yargs@17.7.3"],"bundle":{"jsGzip":242125,"jsMinified":837358,"cssGzip":105202,"cssMinified":779164}},"glide-data-grid":{"label":"Glide Data Grid","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"@glideapps/glide-data-grid","version":"6.0.3"}],"directDependencies":["@linaria/react","canvas-hypertxt","react-number-format"],"peerDependencies":["lodash","marked","react","react-dom","react-responsive-carousel"],"extraInstall":[],"transitiveDependencyCount":81,"firstPartyDependencyCount":0,"thirdPartyDependencyCount":81,"transitiveDependencies":["@babel/code-frame@7.29.7","@babel/compat-data@7.29.7","@babel/core@7.29.13","@babel/generator@7.29.13","@babel/helper-compilation-targets@7.29.13","@babel/helper-globals@7.29.7","@babel/helper-module-imports@7.29.7","@babel/helper-module-transforms@7.29.13","@babel/helper-plugin-utils@7.29.7","@babel/helper-string-parser@7.29.13","@babel/helper-validator-identifier@7.29.7","@babel/helper-validator-option@7.29.7","@babel/helpers@7.29.13","@babel/parser@7.29.13","@babel/plugin-proposal-export-namespace-from@7.18.9","@babel/plugin-syntax-dynamic-import@7.8.3","@babel/plugin-syntax-export-namespace-from@7.8.3","@babel/plugin-transform-modules-commonjs@7.29.7","@babel/template@7.29.7","@babel/traverse@7.29.13","@babel/types@7.29.11","@emotion/is-prop-valid@1.4.0","@emotion/memoize@0.9.0","@jridgewell/gen-mapping@0.3.13","@jridgewell/remapping@2.3.5","@jridgewell/resolve-uri@3.1.2","@jridgewell/sourcemap-codec@1.6.0","@jridgewell/trace-mapping@0.3.31","@linaria/core@4.5.4","@linaria/logger@4.5.0","@linaria/react@4.5.4","@linaria/tags@4.5.4","@linaria/utils@4.5.3","babel-merge@3.0.0","balanced-match@1.0.2","baseline-browser-mapping@2.11.35","brace-expansion@2.1.8","browserslist@4.29.5","caniuse-lite@1.0.30001826","canvas-hypertxt@1.0.3","classnames@2.5.1","convert-source-map@2.0.0","debug@4.4.3","deepmerge@2.2.1","electron-to-chromium@1.5.481","escalade@3.2.0","find-up@5.0.0","gensync@1.0.0-beta.2","html-element-attributes@1.3.1","is-extendable@1.0.1","is-plain-object@2.0.4","isobject@3.0.1","js-tokens@4.0.0","jsesc@3.1.0","json5@2.2.3","locate-path@6.0.0","lodash@4.18.1","loose-envify@1.4.0","lru-cache@5.1.1","marked@4.3.0","minimatch@9.0.9","ms@2.1.3","node-releases@2.0.63","object-assign@4.1.1","object.omit@3.0.0","p-limit@3.1.0","p-locate@5.0.0","path-exists@4.0.0","picocolors@1.1.1","prop-types@15.8.1","react-easy-swipe@0.0.21","react-html-attributes@1.4.6","react-is@16.13.1","react-number-format@5.4.5","react-responsive-carousel@3.2.23","semver@6.3.2","ts-invariant@0.10.3","tslib@2.9.1","update-browserslist-db@1.3.4","yallist@3.1.1","yocto-queue@0.1.0"],"bundle":{"jsGzip":107710,"jsMinified":316927,"cssGzip":2254,"cssMinified":12728}},"react-data-grid":{"label":"react-data-grid","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"react-data-grid","version":"7.0.0-beta.64"}],"directDependencies":[],"peerDependencies":["react","react-dom"],"extraInstall":[],"transitiveDependencyCount":0,"firstPartyDependencyCount":0,"thirdPartyDependencyCount":0,"transitiveDependencies":[],"bundle":{"jsGzip":23933,"jsMinified":62094,"cssGzip":2172,"cssMinified":7739}},"material-react-table":{"label":"Material React Table","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"material-react-table","version":"3.2.1"}],"directDependencies":["@tanstack/match-sorter-utils","@tanstack/react-table","@tanstack/react-virtual","highlight-words"],"peerDependencies":["@emotion/react","@emotion/styled","@mui/icons-material","@mui/material","@mui/x-date-pickers","react","react-dom"],"extraInstall":[],"transitiveDependencyCount":94,"firstPartyDependencyCount":0,"thirdPartyDependencyCount":94,"transitiveDependencies":["@babel/code-frame@7.29.7","@babel/generator@7.29.13","@babel/helper-globals@7.29.7","@babel/helper-module-imports@7.29.7","@babel/helper-string-parser@7.29.13","@babel/helper-validator-identifier@7.29.7","@babel/parser@7.29.13","@babel/runtime@7.29.13","@babel/template@7.29.7","@babel/traverse@7.29.13","@babel/types@7.29.11","@base-ui/utils@0.5.0","@emotion/babel-plugin@11.13.5","@emotion/cache@11.14.0","@emotion/hash@0.9.2","@emotion/is-prop-valid@1.4.0","@emotion/memoize@0.9.0","@emotion/react@11.14.0","@emotion/serialize@1.3.3","@emotion/sheet@1.4.0","@emotion/styled@11.14.1","@emotion/unitless@0.10.0","@emotion/use-insertion-effect-with-fallbacks@1.2.0","@emotion/utils@1.4.2","@emotion/weak-memoize@0.4.0","@floating-ui/utils@0.2.12","@jridgewell/gen-mapping@0.3.13","@jridgewell/resolve-uri@3.1.2","@jridgewell/sourcemap-codec@1.6.0","@jridgewell/trace-mapping@0.3.31","@mui/core-downloads-tracker@9.5.0","@mui/icons-material@9.5.0","@mui/material@9.5.0","@mui/private-theming@9.5.0","@mui/styled-engine@9.5.0","@mui/system@9.5.0","@mui/types@9.5.0","@mui/utils@9.5.0","@mui/x-date-pickers@9.17.0","@mui/x-internals@9.17.0","@popperjs/core@2.11.8","@tanstack/match-sorter-utils@8.19.4","@tanstack/react-table@8.20.6","@tanstack/react-virtual@3.11.2","@tanstack/table-core@8.20.5","@tanstack/virtual-core@3.11.2","@types/parse-json@4.0.2","@types/prop-types@15.7.15","@types/react-transition-group@4.4.12","@types/react@19.3.0","babel-plugin-macros@3.1.0","callsites@3.1.0","clsx@2.1.1","convert-source-map@1.9.0","cosmiconfig@7.1.0","csstype@3.2.3","debug@4.4.3","dom-helpers@5.2.1","error-ex@1.3.4","es-errors@1.3.0","escape-string-regexp@4.0.0","find-root@1.1.0","function-bind@1.1.2","hasown@2.0.4","highlight-words@2.0.0","hoist-non-react-statics@3.3.2","import-fresh@3.3.1","is-arrayish@0.2.1","is-core-module@2.18.0","js-tokens@4.0.0","jsesc@3.1.0","json-parse-even-better-errors@2.3.1","lines-and-columns@1.2.4","loose-envify@1.4.0","ms@2.1.3","object-assign@4.1.1","parent-module@1.0.1","parse-json@5.2.0","path-parse@1.0.7","path-type@4.0.0","picocolors@1.1.1","prop-types@15.8.1","react-is@16.13.1","react-is@19.3.1","react-transition-group@4.4.5","remove-accents@0.5.0","reselect@5.3.0","resolve-from@4.0.0","resolve@1.22.14","source-map@0.5.7","stylis@4.2.0","supports-preserve-symlinks-flag@1.0.0","use-sync-external-store@1.7.0","yaml@1.10.3"],"bundle":{"jsGzip":242328,"jsMinified":801593,"cssGzip":0,"cssMinified":0}},"mantine-react-table":{"label":"Mantine React Table","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"mantine-react-table","version":"1.3.4"}],"directDependencies":["@tanstack/match-sorter-utils","@tanstack/react-table","@tanstack/react-virtual"],"peerDependencies":["@emotion/react","@mantine/core","@mantine/dates","@mantine/hooks","@tabler/icons-react","react","react-dom"],"extraInstall":[],"transitiveDependencyCount":106,"firstPartyDependencyCount":0,"thirdPartyDependencyCount":106,"transitiveDependencies":["@babel/code-frame@7.29.7","@babel/generator@7.29.13","@babel/helper-globals@7.29.7","@babel/helper-module-imports@7.29.7","@babel/helper-string-parser@7.29.13","@babel/helper-validator-identifier@7.29.7","@babel/parser@7.29.13","@babel/runtime@7.29.13","@babel/template@7.29.7","@babel/traverse@7.29.13","@babel/types@7.29.11","@emotion/babel-plugin@11.13.5","@emotion/cache@11.14.0","@emotion/hash@0.9.2","@emotion/memoize@0.9.0","@emotion/react@11.14.0","@emotion/serialize@1.3.3","@emotion/sheet@1.4.0","@emotion/unitless@0.10.0","@emotion/use-insertion-effect-with-fallbacks@1.2.0","@emotion/utils@1.4.2","@emotion/weak-memoize@0.4.0","@floating-ui/core@1.8.0","@floating-ui/dom@1.8.0","@floating-ui/react-dom@1.3.0","@floating-ui/react@0.19.2","@floating-ui/utils@0.2.12","@jridgewell/gen-mapping@0.3.13","@jridgewell/resolve-uri@3.1.2","@jridgewell/sourcemap-codec@1.6.0","@jridgewell/trace-mapping@0.3.31","@mantine/core@6.0.22","@mantine/dates@6.0.22","@mantine/hooks@6.0.22","@mantine/styles@6.0.22","@mantine/utils@6.0.22","@radix-ui/number@1.0.0","@radix-ui/primitive@1.0.0","@radix-ui/react-compose-refs@1.0.0","@radix-ui/react-context@1.0.0","@radix-ui/react-direction@1.0.0","@radix-ui/react-presence@1.0.0","@radix-ui/react-primitive@1.0.1","@radix-ui/react-scroll-area@1.0.2","@radix-ui/react-slot@1.0.1","@radix-ui/react-use-callback-ref@1.0.0","@radix-ui/react-use-layout-effect@1.0.0","@tabler/icons-react@3.51.0","@tabler/icons@3.51.0","@tanstack/match-sorter-utils@8.8.4","@tanstack/react-table@8.10.6","@tanstack/react-virtual@3.0.0-beta.63","@tanstack/table-core@8.10.6","@tanstack/virtual-core@3.0.0-beta.63","@types/parse-json@4.0.2","aria-hidden@1.2.6","babel-plugin-macros@3.1.0","callsites@3.1.0","clsx@1.1.1","convert-source-map@1.9.0","cosmiconfig@7.1.0","csstype@3.0.9","csstype@3.2.3","dayjs@1.11.23","debug@4.4.3","detect-node-es@1.1.0","error-ex@1.3.4","es-errors@1.3.0","escape-string-regexp@4.0.0","find-root@1.1.0","function-bind@1.1.2","get-nonce@1.0.1","hasown@2.0.4","hoist-non-react-statics@3.3.2","import-fresh@3.3.1","is-arrayish@0.2.1","is-core-module@2.18.0","js-tokens@4.0.0","jsesc@3.1.0","json-parse-even-better-errors@2.3.1","lines-and-columns@1.2.4","ms@2.1.3","parent-module@1.0.1","parse-json@5.2.0","path-parse@1.0.7","path-type@4.0.0","picocolors@1.1.1","react-is@16.13.1","react-remove-scroll-bar@2.3.8","react-remove-scroll@2.7.2","react-style-singleton@2.2.3","react-textarea-autosize@8.3.4","remove-accents@0.4.2","resolve-from@4.0.0","resolve@1.22.14","source-map@0.5.7","stylis@4.2.0","supports-preserve-symlinks-flag@1.0.0","tabbable@6.5.1","tslib@2.9.1","use-callback-ref@1.3.3","use-composed-ref@1.4.0","use-isomorphic-layout-effect@1.2.1","use-latest@1.3.0","use-sidecar@1.1.3","yaml@1.10.3"],"bundle":{"jsGzip":165256,"jsMinified":592255,"cssGzip":0,"cssMinified":0}},"revogrid":{"label":"RevoGrid","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"@revolist/react-datagrid","version":"4.31.4"}],"directDependencies":["@revolist/revogrid"],"peerDependencies":[],"extraInstall":[],"transitiveDependencyCount":1,"firstPartyDependencyCount":1,"thirdPartyDependencyCount":0,"transitiveDependencies":["@revolist/revogrid@4.31.4"],"bundle":{"jsGzip":111439,"jsMinified":376969,"cssGzip":0,"cssMinified":0}},"wijmo":{"label":"Wijmo FlexGrid","measuredAt":"2026-11-11","framework":"react","packages":[{"name":"@mescius/wijmo.react.grid","version":"5.20262.60"}],"directDependencies":["@mescius/wijmo","@mescius/wijmo.grid","@mescius/wijmo.interop.grid","@mescius/wijmo.react.base"],"peerDependencies":[],"extraInstall":["@mescius/wijmo.styles@5.20262.60"],"transitiveDependencyCount":7,"firstPartyDependencyCount":7,"thirdPartyDependencyCount":0,"transitiveDependencies":["@mescius/wijmo.grid.detail@5.20262.60","@mescius/wijmo.grid@5.20262.60","@mescius/wijmo.input@5.20262.60","@mescius/wijmo.interop.grid@5.20262.60","@mescius/wijmo.react.base@5.20262.60","@mescius/wijmo.styles@5.20262.60","@mescius/wijmo@5.20262.60"],"bundle":{"jsGzip":211969,"jsMinified":813585,"cssGzip":18391,"cssMinified":113547}}}}}