Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[docs] Clarify product split #1080

Merged
merged 4 commits into from
Feb 22, 2021
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 21 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,30 @@

<h1 align="center">Material-UI X</h1>

The Material-UI X mono-repo gathers Material-UI advanced components.
The [main repository](https://github.com/mui-org/material-ui) of Material-UI focuses on providing a ready-to-use design system, as well as empowering developers to build their own.

This Material-UI X mono-repo gathers the Material-UI advanced components. It's an extension of the core. The most fundamental features are MIT licensed and the most advanced ones commercial.
oliviertassinari marked this conversation as resolved.
Show resolved Hide resolved

## How do we decide if a feature is MIT or commercial?

We have been building MIT React components since 2014.
oliviertassinari marked this conversation as resolved.
Show resolved Hide resolved
We have learned a lot about the strength and weaknesses of the MIT license model.
oliviertassinari marked this conversation as resolved.
Show resolved Hide resolved
The health of this model is improving every day. As the community grows, it increases the probability that developers contribute improvements to the project.
However, we believe that have reached the sustainability limits of what the model can support for advancing our mission forward. We have seen too many MIT components moving slowly or getting abandoned. The community isn't contributing improvements as fast as the problems deserved to be solved.
oliviertassinari marked this conversation as resolved.
Show resolved Hide resolved

What should we do? Wait? No! We are using a commercial license to forward the development of the most advanced features, where the MIT model can't.
oliviertassinari marked this conversation as resolved.
Show resolved Hide resolved
A solution to a problem should only be commercial if it has no MIT alternatives.

We provide three options:

- Community. This plan contains the MIT components that are sustainable by the contributions of the open-source community. Free and forever.
oliviertassinari marked this conversation as resolved.
Show resolved Hide resolved
- Pro. This plan contains the features that are at the limit of what the open-source model can sustain. For instance, providing a very comprehensive set of components. From a price perspective, the plan is designed to be accessible by most professionals.
oliviertassinari marked this conversation as resolved.
Show resolved Hide resolved
- Premium. This plan contains the most advanced features.
oliviertassinari marked this conversation as resolved.
Show resolved Hide resolved

## Components

- [DataGrid](https://material-ui.com/components/data-grid/) MIT
- [XGrid](https://material-ui.com/components/data-grid/#commercial-version) Commercial license
- [DataGrid](https://material-ui.com/components/data-grid/), publised under `@material-ui/data-grid`, MIT licensed.
- [XGrid](https://material-ui.com/components/data-grid/#commercial-version), publised under `@material-ui/x-grid`, Commercial license.
oliviertassinari marked this conversation as resolved.
Show resolved Hide resolved

## Questions

Expand Down
6 changes: 3 additions & 3 deletions docs/src/pages/components/data-grid/columns/columns.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ In addition, `flex` does not work if the combined width of the columns that have

{{"demo": "pages/components/data-grid/columns/ColumnFluidWidthGrid.js", "bg": "inline"}}

## Column resizing [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-x/)
## Column resizing [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-pro/)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's temporary. It will point to the /pricing page in the future.


By default, `XGrid` allows all columns to be resized by dragging the right portion of the column separator.

Expand Down Expand Up @@ -137,7 +137,7 @@ To disable the column selector, set the prop `disableColumnSelector={true}`.

{{"demo": "pages/components/data-grid/columns/ColumnSelectorGrid.js", "bg": "inline"}}

## Column reorder [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-x/)
## Column reorder [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-pro/)

By default, `XGrid` allows all column reordering by dragging the header cells and moving them left or right.

Expand All @@ -161,7 +161,7 @@ In addition, column reordering emits the following events that can be imported:

Grouping columns allows you to have multiple levels of columns in your header and the ability, if needed, to 'open and close' column groups to show and hide additional columns.

## 🚧 Column pinning [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-x/)
## 🚧 Column pinning [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-pro/)

> ⚠️ This feature isn't implemented yet. It's coming.
>
Expand Down
4 changes: 2 additions & 2 deletions docs/src/pages/components/data-grid/export/export.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,15 @@ You will be able to export the displayed data to CSV with an API call, or using

Optimization of the layout of the grid for print mode. It can also be used to export to PDF.

## 🚧 Excel export [<span class="premium"></span>](https://material-ui.com/store/items/material-ui-x/)
## 🚧 Excel export [<span class="premium"></span>](https://material-ui.com/store/items/material-ui-pro/)

> ⚠️ This feature isn't implemented yet. It's coming.
>
> 👍 Upvote [issue #198](https://github.com/mui-org/material-ui-x/issues/198) if you want to see it land faster.

You will be able to export the displayed data to Excel with an API call, or using the grid UI.

## 🚧 Clipboard [<span class="premium"></span>](https://material-ui.com/store/items/material-ui-x/)
## 🚧 Clipboard [<span class="premium"></span>](https://material-ui.com/store/items/material-ui-pro/)

> ⚠️ This feature isn't implemented yet. It's coming.
>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ The features only available in the commercial version are suffixed with a <span
<img src="/static/x/header-icon.png" style="width: 454px; margin-bottom: 2rem;" alt="">

You can check the [feature comparison](#feature-comparison) for more details.
See [Pricing](https://material-ui.com/store/items/material-ui-x/) for details on purchasing licenses.
See [Pricing](https://material-ui.com/store/items/material-ui-pro/) for details on purchasing licenses.

### Try XGrid for free

Expand Down
10 changes: 5 additions & 5 deletions docs/src/pages/components/data-grid/group-pivot/group-pivot.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,39 +7,39 @@ components: DataGrid, XGrid

<p class="description">Use grouping, pivoting and more to analyse the data in depth.</p>

## 🚧 Tree data [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-x/)
## 🚧 Tree data [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-pro/)

> ⚠️ This feature isn't implemented yet. It's coming.
>
> 👍 Upvote [issue #210](https://github.com/mui-org/material-ui-x/issues/210) if you want to see it land faster.

Tree data allows to visualize self-referential hierarchical (tree-like structure) data.

## 🚧 Master detail [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-x/)
## 🚧 Master detail [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-pro/)

> ⚠️ This feature isn't implemented yet. It's coming.
>
> 👍 Upvote [issue #211](https://github.com/mui-org/material-ui-x/issues/211) if you want to see it land faster.

The feature allows to display row details on an expandable pane.

## 🚧 Grouping [<span class="premium"></span>](https://material-ui.com/store/items/material-ui-x/)
## 🚧 Grouping [<span class="premium"></span>](https://material-ui.com/store/items/material-ui-pro/)

> ⚠️ This feature isn't implemented yet. It's coming.
>
> 👍 Upvote [issue #212](https://github.com/mui-org/material-ui-x/issues/212) if you want to see it land faster.

Group rows together that share a column value, this creates a visible header for each group and allows the end-user to collapse groups that they don't want to see.

## 🚧 Aggregation [<span class="premium"></span>](https://material-ui.com/store/items/material-ui-x/)
## 🚧 Aggregation [<span class="premium"></span>](https://material-ui.com/store/items/material-ui-pro/)

> ⚠️ This feature isn't implemented yet. It's coming.
>
> 👍 Upvote [issue #213](https://github.com/mui-org/material-ui-x/issues/213) if you want to see it land faster.

When grouping, you will be able to apply an aggregation function to populate the group row with values.

## 🚧 Pivoting [<span class="premium"></span>](https://material-ui.com/store/items/material-ui-x/)
## 🚧 Pivoting [<span class="premium"></span>](https://material-ui.com/store/items/material-ui-pro/)

> ⚠️ This feature isn't implemented yet. It's coming.
>
Expand Down
35 changes: 28 additions & 7 deletions docs/src/pages/components/data-grid/overview/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Data tables display information in a grid-like format of rows and columns. They

The features only available in the commercial version are suffixed with a <span class="pro"></span> icon.
You can check the [feature comparison](/components/data-grid/getting-started/#feature-comparison) for more details.
See [Pricing](https://material-ui.com/store/items/material-ui-x/) for details on purchasing licenses.
See [Pricing](https://material-ui.com/store/items/material-ui-pro/) for details on purchasing licenses.

### MIT version

Expand All @@ -31,7 +31,7 @@ import { DataGrid } from '@material-ui/data-grid';

{{"demo": "pages/components/data-grid/overview/DataGridDemo.js", "defaultCodeOpen": false, "bg": "inline"}}

### Commercial version [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-x/)
### Commercial version [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-pro/)

The following grid displays 31 columns and 100,000 rows - over 3 million cells in total.

Expand All @@ -42,7 +42,25 @@ import { XGrid } from '@material-ui/x-grid';
{{"demo": "pages/components/data-grid/overview/XGridDemo.js", "defaultCodeOpen": false, "disableAd": true, "bg": "inline"}}

You can check the [feature comparison](/components/data-grid/getting-started/#feature-comparison) for more details.
See [Pricing](https://material-ui.com/store/items/material-ui-x/) for details on purchasing licenses.
See [Pricing](https://material-ui.com/store/items/material-ui-pro/) for details on purchasing licenses.

### MIT vs. commercial

_How do we decide if a feature is MIT or commercial?_

We have been building MIT React components since 2014.
We have learned a lot about the strength and weaknesses of the MIT license model.
The health of this model is improving every day. As the community grows, it increases the probability that developers contribute improvements to the project.
However, we believe that have reached the sustainability limits of what the model can support for advancing our mission forward. We have seen too many MIT components moving slowly or getting abandoned. The community isn't contributing improvements as fast as the problems deserved to be solved.

What should we do? Wait? No! We are using a commercial license to forward the development of the most advanced features, where the MIT model can't.
A solution to a problem should only be commercial if it has no MIT alternatives.

We provide three options:

- Community. This plan contains the MIT components that are sustainable by the contributions of the open-source community. Free and forever.
- Pro. This plan contains the features that are at the limit of what the open-source model can sustain. For instance, providing a very comprehensive set of components. From a price perspective, the plan is designed to be accessible by most professionals.
- Premium. This plan contains the most advanced features.

## Features

Expand All @@ -63,12 +81,15 @@ See [Pricing](https://material-ui.com/store/items/material-ui-x/) for details on

### 🚧 Upcoming features

While development of the data grid component is moving fast, there are still many additional features that we plan to implement:
While development of the data grid component is moving fast, there are still many additional features that we plan to implement. Some of them:

- [Cell editing](/components/data-grid/editing/)
- [Row & Cell editing](/components/data-grid/editing/)
- Headless (hooks only)
- [Group & Pivot](/components/data-grid/group-pivot/) <span class="premium"></span>
- [Export](/components/data-grid/export/)
- [Column pinning](/components/data-grid/columns/#column-pinning) <span class="pro"></span>
- [Tree data](/components/data-grid/group-pivot/#tree-data) <span class="pro"></span>
- [Excel export](/components/data-grid/export/) <span class="premium"></span>
- [Range selection](/components/data-grid/selection/#range-selection) <span class="premium"></span>
- [Group, Pivot, Aggregation](/components/data-grid/group-pivot/) <span class="premium"></span>

You can find more details on, the [feature comparison](/components/data-grid/getting-started/#feature-comparison), our living quarterly [roadmap](https://github.com/mui-org/material-ui-x/projects/1) as well as on the open [GitHub issues](https://github.com/mui-org/material-ui-x/issues?q=is%3Aopen+label%3A%22component%3A+DataGrid%22+label%3Aenhancement).

Expand Down
4 changes: 2 additions & 2 deletions docs/src/pages/components/data-grid/pagination/pagination.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,15 +52,15 @@ Finally, you need to handle the `onPageChange` callback to load the rows for the

You can customize the rendered of the pagination following [this section](/components/data-grid/rendering/#footer) of the documentation.

## Paginate > 100 rows [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-x/)
## Paginate > 100 rows [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-pro/)

The `DataGrid` component can display up to 100 rows per page.
The `XGrid` component removes this limitation.
The following demo displays 200 rows per page:

{{"demo": "pages/components/data-grid/pagination/200PaginationGrid.js", "disableAd": true, "bg": "inline"}}

## apiRef [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-x/)
## apiRef [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-pro/)

The grid exposes a set of methods that enables all of these features using the imperative apiRef.

Expand Down
2 changes: 1 addition & 1 deletion docs/src/pages/components/data-grid/rendering/rendering.md
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ This is a built-in feature of the rendering engine and greatly improves renderin

_unlimited\*: Browsers set a limit on the number of pixels a scroll container can host: 17.5 million pixels on Firefox, 33.5 million pixels on Chrome, Edge, and Safari. A [reproduction](https://codesandbox.io/s/beautiful-silence-1yifo?file=/src/App.js)._

### Row virtualization [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-x/)
### Row virtualization [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-pro/)

Row virtualization is the insertion and removal of rows as the grid scrolls vertically.

Expand Down
4 changes: 2 additions & 2 deletions docs/src/pages/components/data-grid/rows/rows.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ It replaces the previous values. This approach has some drawbacks:
- You need to provide all the rows.
- You might create a performance bottleneck when preparing the rows array to provide to the grid.

### apiRef [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-x/)
### apiRef [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-pro/)

The second way to update rows is to use the apiRef.
This is an imperative API that is designed to solve the previous two limitations of the declarative `rows` prop. `apiRef.current.updateRows()`, updates the rows to the grid. It **merges** the new rows with the previous ones.
Expand Down Expand Up @@ -66,7 +66,7 @@ Row spanning allows to change this default behavior.
It allows cells to span multiple rows.
This is very close to the "row spanning" in an HTML `<table>`.

## 🚧 Row reorder [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-x/)
## 🚧 Row reorder [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-pro/)

> ⚠️ This feature isn't implemented yet. It's coming.
>
Expand Down
6 changes: 3 additions & 3 deletions docs/src/pages/components/data-grid/selection/selection.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ For the `XGrid`, you need to disable multiple row selection with `disableMultipl

{{"demo": "pages/components/data-grid/selection/SingleRowSelectionGrid.js", "bg": "inline"}}

### Multiple row selection [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-x/)
### Multiple row selection [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-pro/)

To activate multiple selection, put focus the `XGrid` component and hold the <kbd>CTRL</kbd> key while selecting rows.

Expand All @@ -54,15 +54,15 @@ You might have interactive content in the cells and need to disable the selectio

{{"demo": "pages/components/data-grid/selection/ControlledSelectionGrid.js", "bg": "inline"}}

## apiRef [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-x/)
## apiRef [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-pro/)

The grid exposes a set of methods that enables all of these features using the imperative apiRef.

> ⚠️ Only use this API when you have no alternative. Always start from the declarative API that the grid exposes.

- `onSelectionChange`: Callback fired when the selection state of one or multiple rows changes.

## 🚧 Range selection [<span class="premium"></span>](https://material-ui.com/store/items/material-ui-x/)
## 🚧 Range selection [<span class="premium"></span>](https://material-ui.com/store/items/material-ui-pro/)

> ⚠️ This feature isn't implemented yet. It's coming.
>
Expand Down
4 changes: 2 additions & 2 deletions docs/src/pages/components/data-grid/sorting/sorting.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,14 @@ Then you need to handle the `onSortModelChange` callback, sort the rows on the s

{{"demo": "pages/components/data-grid/sorting/ServerSortingGrid.js", "bg": "inline"}}

## Multi-column sorting [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-x/)
## Multi-column sorting [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-pro/)

You can sort by multiple columns at the same time using `XGrid`.
Hold the <kbd>CTRL</kbd> key down while clicking the column header.

{{"demo": "pages/components/data-grid/sorting/MultiSortingGrid.js", "disableAd": true, "bg": "inline"}}

## apiRef [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-x/)
## apiRef [<span class="pro"></span>](https://material-ui.com/store/items/material-ui-pro/)

The grid exposes a set of methods that enables all of these features using the imperative apiRef.

Expand Down
2 changes: 1 addition & 1 deletion packages/grid/x-grid/LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ This is commercial software.
To use it, you need to agree to the [**End User License Agreement for Material-UI X**](https://material-ui.com/x/license/).
If you do not own a commercial license, this file shall be governed by the trial license terms.

All available Material-UI commercial licenses may be obtained at https://material-ui.com/store/items/material-ui-x/.
All available Material-UI commercial licenses may be obtained at https://material-ui.com/store/items/material-ui-pro/.
2 changes: 1 addition & 1 deletion packages/x-license/LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ This is commercial software.
To use it, you need to agree to the [**End User License Agreement for Material-UI X**](https://material-ui.com/x/license/).
If you do not own a commercial license, this file shall be governed by the trial license terms.

All available Material-UI commercial licenses may be obtained at https://material-ui.com/store/items/material-ui-x/.
All available Material-UI commercial licenses may be obtained at https://material-ui.com/store/items/material-ui-pro/.