diff --git a/docs/src/components/pricing/PricingTable.tsx b/docs/src/components/pricing/PricingTable.tsx index d74a93cccd24be..92bf49b43365ef 100644 --- a/docs/src/components/pricing/PricingTable.tsx +++ b/docs/src/components/pricing/PricingTable.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import { alpha } from '@mui/material/styles'; +import { alpha, styled } from '@mui/material/styles'; import Box, { BoxProps } from '@mui/material/Box'; import Button from '@mui/material/Button'; import Container from '@mui/material/Container'; @@ -558,6 +558,33 @@ const rowHeaders: Record = { ), 'date-picker/simple': , 'date-picker/range': , + + // -- charts - components -- + 'charts/line': , + 'charts/bar': , + 'charts/scatter': , + 'charts/pie': , + 'charts/sparkline': , + 'charts/gauge': , + 'charts/treemap': , + 'charts/heatmap': , + 'charts/radar': , + 'charts/funnel': , + 'charts/sankey': , + 'charts/gantt': , + 'charts/gantt-advanced': , + 'charts/candlestick': , + 'charts/large-dataset': , + // -- charts - features -- + 'charts/legend': , + 'charts/tooltip': , + 'charts/mouse-zoom': , + 'charts/export': , + // -- charts - datagrid -- + 'charts/cell-with-charts': , + 'charts/filter-interaction': , + 'charts/selection-interaction': , + 'mui-x-production': , 'mui-x-development': , 'mui-x-development-perpetual': ( @@ -636,6 +663,23 @@ const rowHeaders: Record = { const yes = ; const pending = ; const no = ; +const toBeDefined = ( + svg': { color: 'primary.main', opacity: 1 }, + fontWeight: 500, + pl: '16px', + }} + title="To be determined" + > + TBD + + +); const communityData: Record = { // MUI Core @@ -644,11 +688,13 @@ const communityData: Record = { 'Material UI': yes, 'Joy UI': yes, // MUI X + // -- data grid - columns -- 'data-grid/column-groups': yes, 'data-grid/column-spanning': yes, 'data-grid/column-resizing': no, 'data-grid/column-reorder': no, 'data-grid/column-pinning': no, + // -- data grid - rows -- 'data-grid/row-height': yes, 'data-grid/row-spanning': pending, 'data-grid/row-reordering': no, @@ -656,6 +702,7 @@ const communityData: Record = { 'data-grid/row-selection': yes, 'data-grid/row-multiselection': no, 'data-grid/row-cell-selection': no, + // -- data grid - filter -- 'data-grid/filter-quick': yes, 'data-grid/filter-column': yes, 'data-grid/header-filters': no, @@ -664,8 +711,10 @@ const communityData: Record = { 'data-grid/multi-column-sorting': no, 'data-grid/pagination': yes, 'data-grid/pagination-large': no, + // -- data grid - edit -- 'data-grid/edit-row': yes, 'data-grid/edit-cell': yes, + // -- data grid - export -- 'data-grid/file-csv': yes, 'data-grid/file-print': yes, 'data-grid/file-clipboard-copy': yes, @@ -682,8 +731,38 @@ const communityData: Record = { 'data-grid/accessibility': yes, 'data-grid/keyboard-nav': yes, 'data-grid/localization': yes, + + // -- picker -- 'date-picker/simple': yes, 'date-picker/range': no, + + // -- charts - components -- + 'charts/line': yes, + 'charts/bar': yes, + 'charts/scatter': yes, + 'charts/pie': yes, + 'charts/sparkline': yes, + 'charts/gauge': pending, + 'charts/treemap': pending, + 'charts/heatmap': pending, + 'charts/radar': pending, + 'charts/funnel': no, + 'charts/sankey': no, + 'charts/gantt': no, + 'charts/gantt-advanced': no, + 'charts/candlestick': no, + 'charts/large-dataset': no, + // -- charts - features -- + 'charts/legend': yes, + 'charts/tooltip': yes, + 'charts/mouse-zoom': no, + 'charts/export': no, + // -- charts - datagrid -- + 'charts/cell-with-charts': pending, + 'charts/filter-interaction': no, + 'charts/selection-interaction': no, + + // -- general -- 'mui-x-production': yes, 'mui-x-updates': yes, 'mui-x-development': yes, @@ -706,11 +785,13 @@ const proData: Record = { 'Material UI': yes, 'Joy UI': yes, // MUI X + // -- data grid - columns -- 'data-grid/column-groups': yes, 'data-grid/column-spanning': yes, 'data-grid/column-resizing': yes, 'data-grid/column-reorder': yes, 'data-grid/column-pinning': yes, + // -- data grid - rows -- 'data-grid/row-height': yes, 'data-grid/row-spanning': pending, 'data-grid/row-reordering': yes, @@ -718,6 +799,7 @@ const proData: Record = { 'data-grid/row-selection': yes, 'data-grid/row-multiselection': yes, 'data-grid/row-cell-selection': no, + // -- data grid - filter -- 'data-grid/filter-quick': yes, 'data-grid/filter-column': yes, 'data-grid/header-filters': yes, @@ -726,8 +808,10 @@ const proData: Record = { 'data-grid/multi-column-sorting': yes, 'data-grid/pagination': yes, 'data-grid/pagination-large': yes, + // -- data grid - edit -- 'data-grid/edit-row': yes, 'data-grid/edit-cell': yes, + // -- data grid - export -- 'data-grid/file-csv': yes, 'data-grid/file-print': yes, 'data-grid/file-clipboard-copy': yes, @@ -746,6 +830,34 @@ const proData: Record = { 'data-grid/localization': yes, 'date-picker/simple': yes, 'date-picker/range': yes, + + // -- charts - components -- + 'charts/line': yes, + 'charts/bar': yes, + 'charts/scatter': yes, + 'charts/pie': yes, + 'charts/sparkline': yes, + 'charts/gauge': pending, + 'charts/treemap': pending, + 'charts/heatmap': pending, + 'charts/radar': pending, + 'charts/funnel': pending, + 'charts/sankey': pending, + 'charts/gantt': pending, + 'charts/gantt-advanced': no, + 'charts/candlestick': no, + 'charts/large-dataset': no, + // -- charts - features -- + 'charts/legend': yes, + 'charts/tooltip': yes, + 'charts/mouse-zoom': pending, + 'charts/export': pending, + // -- charts - datagrid -- + 'charts/cell-with-charts': pending, + 'charts/filter-interaction': pending, + 'charts/selection-interaction': no, + + // -- general -- 'mui-x-production': yes, 'mui-x-development': , 'mui-x-development-perpetual': , @@ -773,11 +885,13 @@ const premiumData: Record = { 'Material UI': yes, 'Joy UI': yes, // MUI X + // -- data grid - columns -- 'data-grid/column-groups': yes, 'data-grid/column-spanning': yes, 'data-grid/column-resizing': yes, 'data-grid/column-reorder': yes, 'data-grid/column-pinning': yes, + // -- data grid - rows -- 'data-grid/row-height': yes, 'data-grid/row-spanning': pending, 'data-grid/row-reordering': yes, @@ -785,6 +899,7 @@ const premiumData: Record = { 'data-grid/row-selection': yes, 'data-grid/row-multiselection': yes, 'data-grid/row-cell-selection': yes, + // -- data grid - filter -- 'data-grid/filter-quick': yes, 'data-grid/filter-column': yes, 'data-grid/header-filters': yes, @@ -793,8 +908,10 @@ const premiumData: Record = { 'data-grid/multi-column-sorting': yes, 'data-grid/pagination': yes, 'data-grid/pagination-large': yes, + // -- data grid - edit -- 'data-grid/edit-row': yes, 'data-grid/edit-cell': yes, + // -- data grid - export -- 'data-grid/file-csv': yes, 'data-grid/file-print': yes, 'data-grid/file-clipboard-copy': yes, @@ -813,6 +930,34 @@ const premiumData: Record = { 'data-grid/localization': yes, 'date-picker/simple': yes, 'date-picker/range': yes, + + // -- charts - components -- + 'charts/line': yes, + 'charts/bar': yes, + 'charts/scatter': yes, + 'charts/pie': yes, + 'charts/sparkline': yes, + 'charts/gauge': pending, + 'charts/treemap': pending, + 'charts/heatmap': pending, + 'charts/radar': pending, + 'charts/funnel': pending, + 'charts/sankey': pending, + 'charts/gantt': pending, + 'charts/gantt-advanced': toBeDefined, + 'charts/candlestick': toBeDefined, + 'charts/large-dataset': toBeDefined, + // -- charts - features -- + 'charts/legend': yes, + 'charts/tooltip': yes, + 'charts/mouse-zoom': pending, + 'charts/export': pending, + // -- charts - datagrid -- + 'charts/cell-with-charts': pending, + 'charts/filter-interaction': pending, + 'charts/selection-interaction': pending, + + // -- general -- 'mui-x-production': yes, 'mui-x-development': , 'mui-x-development-perpetual': , @@ -1030,6 +1175,22 @@ function PricingTableBuyPremium() { ); } +const StyledCollapse = styled(Collapse, { + name: 'MuiSlider', + slot: 'Track', +})(({ theme }) => { + return { + position: 'relative', + marginLeft: theme.spacing(1.5), + borderLeftWidth: '2px', + borderLeftStyle: 'solid', + borderColor: theme.palette.grey[100], + ...theme.applyDarkStyles({ + borderColor: theme.palette.primaryDark[700], + }), + }; +}); + export default function PricingTable({ columnHeaderHidden, plans = ['community', 'pro', 'premium'], @@ -1040,10 +1201,12 @@ export default function PricingTable({ }) { const router = useRouter(); const [dataGridCollapsed, setDataGridCollapsed] = React.useState(false); + const [chartsCollapsed, setChartsCollapsed] = React.useState(false); React.useEffect(() => { if (router.query['expand-path'] === 'all') { setDataGridCollapsed(true); + setChartsCollapsed(true); } }, [router.query]); @@ -1060,16 +1223,24 @@ export default function PricingTable({ ml: '-14px', '&>div:first-of-type': { ml: '14px', + width: 'calc(100% - 14px)', // avoid overflow on hover transparent background }, }; - const unfoldMore = ( + const dataGridUnfoldMore = ( ); + const chartsUnfoldMore = ( + + ); + const renderRow = (key: string) => renderMasterRow(key, gridSx, plans); const renderNestedRow = (key: string) => renderMasterRow(key, nestedGridSx, plans); @@ -1133,11 +1304,13 @@ export default function PricingTable({ }} > - {unfoldMore} + {dataGridUnfoldMore} - {unfoldMore} + {dataGridUnfoldMore} + + + {dataGridUnfoldMore} - {unfoldMore} - ({ - position: 'relative', - ml: 1.5, - borderLeftWidth: '2px', - borderLeftStyle: 'solid', - borderColor: 'grey.100', - ...theme.applyDarkStyles({ - borderColor: 'primaryDark.700', - }), - })} - > + Column features {renderNestedRow('data-grid/column-groups')} {divider} @@ -1280,12 +1440,116 @@ export default function PricingTable({ {renderNestedRow('data-grid/keyboard-nav')} {divider} {renderNestedRow('data-grid/localization')} - + {divider} {renderRow('date-picker/simple')} {divider} {renderRow('date-picker/range')} {divider} + + + {chartsUnfoldMore} + + {chartsUnfoldMore} + + {chartsUnfoldMore} + + + + Components + {renderNestedRow('charts/line')} + {divider} + {renderNestedRow('charts/bar')} + {divider} + {renderNestedRow('charts/scatter')} + {divider} + {renderNestedRow('charts/pie')} + {divider} + {renderNestedRow('charts/sparkline')} + {divider} + {renderNestedRow('charts/gauge')} + {divider} + {renderNestedRow('charts/treemap')} + {divider} + {renderNestedRow('charts/radar')} + {divider} + {renderNestedRow('charts/funnel')} + {divider} + {renderNestedRow('charts/sankey')} + {divider} + {renderNestedRow('charts/gantt')} + {divider} + {renderNestedRow('charts/gantt-advanced')} + {divider} + {renderNestedRow('charts/candlestick')} + {divider} + {renderNestedRow('charts/large-dataset')} + {divider} + Interactions + {renderNestedRow('charts/legend')} + {divider} + {renderNestedRow('charts/tooltip')} + {divider} + {renderNestedRow('charts/mouse-zoom')} + {divider} + {renderNestedRow('charts/export')} + {divider} + Data Grid Integration + {renderNestedRow('charts/cell-with-charts')} + {divider} + {renderNestedRow('charts/filter-interaction')} + {divider} + {renderNestedRow('charts/selection-interaction')} + + {divider} {renderRow('mui-x-production')} {divider}