Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
4abca9d
[docs] Add the draft landing page
bharatkashyap Jul 27, 2022
caa6f61
Fix hero text alignment
bharatkashyap Jul 28, 2022
4da2545
Add Marquee footer
bharatkashyap Jul 28, 2022
d45630f
update to Figma v4 draft [1]
bharatkashyap Aug 10, 2022
5b09c52
Add demo section
bharatkashyap Aug 11, 2022
93271e3
Update pricing
bharatkashyap Aug 11, 2022
50e6a85
Pricing content updates
bharatkashyap Aug 11, 2022
b6dba83
Add beta subheading
bharatkashyap Aug 11, 2022
e2a9f0e
[docs] Use fork containing header with Toolpad
bharatkashyap Aug 11, 2022
5ef64b8
Update features.js
prakhargupta1 Aug 11, 2022
d165daf
Minor text fix.
prakhargupta1 Aug 11, 2022
fbaceae
Some of Sam's suggestions
prakhargupta1 Aug 12, 2022
d94df72
[docs] Use clearer structure for static assets
bharatkashyap Aug 16, 2022
8749c21
[docs] eslint remove unused directives
bharatkashyap Aug 16, 2022
b9af997
[docs] Add local theming to section headline
bharatkashyap Aug 16, 2022
fb4ccf4
[docs] prettier
bharatkashyap Aug 16, 2022
873c3a8
Minor text fixes
prakhargupta1 Aug 15, 2022
d3132e6
polish
oliviertassinari Aug 15, 2022
a73ef90
Text improvements
prakhargupta1 Aug 15, 2022
bc4596f
Remove version control from Community
prakhargupta1 Aug 15, 2022
1560220
Add line break
prakhargupta1 Aug 15, 2022
a8117b5
clearer label
oliviertassinari Aug 15, 2022
b2bcef0
[docs] Slight tweaks to hero
bharatkashyap Aug 16, 2022
3ddb667
[docs] Correct landing page logo text alignment
bharatkashyap Aug 16, 2022
61ad219
[docs] add marketing assets
bharatkashyap Aug 16, 2022
1d310c7
[docs] Card grid styles
bharatkashyap Aug 16, 2022
acfcd7d
[docs] Add demo video
bharatkashyap Aug 16, 2022
5653605
[docs] Dynamically load video
bharatkashyap Aug 16, 2022
58b155f
[docs] Add configured "overline"
bharatkashyap Aug 16, 2022
db6c52f
[website] Add CTAs, change theme, misc fixes
bharatkashyap Aug 17, 2022
9fd09da
Merge branch 'master' of github.com:mui/mui-toolpad into landing-page…
bharatkashyap Aug 18, 2022
ba9decd
[website] Static fill in hero eyebrow
bharatkashyap Aug 18, 2022
c9aba94
[website] Switch back from fork
bharatkashyap Aug 18, 2022
47f0728
Move back from fork
bharatkashyap Aug 18, 2022
c9a3178
Merge branch 'master' of github.com:mui/mui-toolpad into landing-page…
bharatkashyap Aug 18, 2022
bc73fc5
[website] Add Toolpad Sign Up form testing
bharatkashyap Aug 18, 2022
1eb0ac3
Add production form link
bharatkashyap Aug 18, 2022
ab5ae7a
Use Toolpad-specific gradient in Hero
bharatkashyap Aug 18, 2022
406973c
Stronger CTA line
bharatkashyap Aug 19, 2022
0e7193d
Add GA events
bharatkashyap Aug 19, 2022
c01e40e
Merge branch 'master' of github.com:mui/mui-toolpad into landing-page…
bharatkashyap Aug 19, 2022
6da945c
[website] Design review comments
bharatkashyap Aug 20, 2022
b84b2c8
[website] More contrast to the CTA in dark mode
bharatkashyap Aug 20, 2022
144c0fc
Merge branch 'master' of github.com:mui/mui-toolpad into landing-page…
bharatkashyap Aug 20, 2022
3fcd41a
[website] Fix video template and styles
bharatkashyap Aug 22, 2022
be56b89
Remove local theme override for section headling
bharatkashyap Aug 22, 2022
a9729fe
[website] stylise variables correctly
bharatkashyap Aug 24, 2022
32a53b9
reduce video file size
bharatkashyap Aug 24, 2022
128b3c4
match the convetion in the material-ui docs
bharatkashyap Aug 24, 2022
22b1bf2
[a11y] Sign Up label
bharatkashyap Aug 24, 2022
390ac8e
Fix hero layout issues without extra DOM node
bharatkashyap Aug 24, 2022
3d58bcd
Be as descriptive as possible in filenames
bharatkashyap Aug 24, 2022
9bae379
We don't `dynamic`, fix video layout issues
bharatkashyap Aug 25, 2022
8b9072a
Update the SIB form URLs
bharatkashyap Aug 25, 2022
e225501
Video v2, remove unused file
bharatkashyap Aug 26, 2022
8d37919
Use standard GradientText
bharatkashyap Aug 26, 2022
72b87c7
Outline on Safari, no truncate video on all sizes
bharatkashyap Aug 26, 2022
f8a60f2
Change upvote URL
bharatkashyap Aug 26, 2022
9ae34d6
Use standard production check
bharatkashyap Aug 26, 2022
0381cb8
Merge branch 'master' of github.com:mui/mui-toolpad into landing-page…
bharatkashyap Aug 26, 2022
377334c
[docs] Add the draft landing page
bharatkashyap Jul 27, 2022
25fd504
Fix hero text alignment
bharatkashyap Jul 28, 2022
f481676
Add Marquee footer
bharatkashyap Jul 28, 2022
3676002
update to Figma v4 draft [1]
bharatkashyap Aug 10, 2022
4639f85
Add demo section
bharatkashyap Aug 11, 2022
0785bbd
Update pricing
bharatkashyap Aug 11, 2022
7d9d193
Pricing content updates
bharatkashyap Aug 11, 2022
c4bc315
Add beta subheading
bharatkashyap Aug 11, 2022
f71faa6
[docs] Use fork containing header with Toolpad
bharatkashyap Aug 11, 2022
ca3634b
Update features.js
prakhargupta1 Aug 11, 2022
59b2283
Minor text fix.
prakhargupta1 Aug 11, 2022
4b38842
Some of Sam's suggestions
prakhargupta1 Aug 12, 2022
8997d14
[docs] Use clearer structure for static assets
bharatkashyap Aug 16, 2022
6b0f0de
[docs] eslint remove unused directives
bharatkashyap Aug 16, 2022
16ef5ee
[docs] Add local theming to section headline
bharatkashyap Aug 16, 2022
0772334
[docs] prettier
bharatkashyap Aug 16, 2022
01e4660
Minor text fixes
prakhargupta1 Aug 15, 2022
8e2e7d7
polish
oliviertassinari Aug 15, 2022
93eaac5
Text improvements
prakhargupta1 Aug 15, 2022
1a3bec7
Remove version control from Community
prakhargupta1 Aug 15, 2022
b0f7676
Add line break
prakhargupta1 Aug 15, 2022
e8a26be
clearer label
oliviertassinari Aug 15, 2022
7bd7b8d
[docs] Slight tweaks to hero
bharatkashyap Aug 16, 2022
e153d6a
[docs] Correct landing page logo text alignment
bharatkashyap Aug 16, 2022
5629876
[docs] add marketing assets
bharatkashyap Aug 16, 2022
0551820
[docs] Card grid styles
bharatkashyap Aug 16, 2022
8ae4791
[docs] Add demo video
bharatkashyap Aug 16, 2022
c2acf0e
[docs] Dynamically load video
bharatkashyap Aug 16, 2022
1233fcc
[docs] Add configured "overline"
bharatkashyap Aug 16, 2022
a98165c
[website] Add CTAs, change theme, misc fixes
bharatkashyap Aug 17, 2022
9b5956a
[website] Static fill in hero eyebrow
bharatkashyap Aug 18, 2022
bd9b18c
[website] Switch back from fork
bharatkashyap Aug 18, 2022
d713f67
Move back from fork
bharatkashyap Aug 18, 2022
f065648
[website] Add Toolpad Sign Up form testing
bharatkashyap Aug 18, 2022
ca0e726
Add production form link
bharatkashyap Aug 18, 2022
29ce5c9
Use Toolpad-specific gradient in Hero
bharatkashyap Aug 18, 2022
07ecc61
Stronger CTA line
bharatkashyap Aug 19, 2022
a02b293
Add GA events
bharatkashyap Aug 19, 2022
d6e3ca5
[website] Design review comments
bharatkashyap Aug 20, 2022
c2c208d
[website] More contrast to the CTA in dark mode
bharatkashyap Aug 20, 2022
70f4716
[website] Fix video template and styles
bharatkashyap Aug 22, 2022
9e9e186
Remove local theme override for section headling
bharatkashyap Aug 22, 2022
840dd19
[website] stylise variables correctly
bharatkashyap Aug 24, 2022
5482156
reduce video file size
bharatkashyap Aug 24, 2022
8a6b86b
match the convetion in the material-ui docs
bharatkashyap Aug 24, 2022
34aff02
[a11y] Sign Up label
bharatkashyap Aug 24, 2022
e7562c5
Fix hero layout issues without extra DOM node
bharatkashyap Aug 24, 2022
9d927d9
Be as descriptive as possible in filenames
bharatkashyap Aug 24, 2022
e63eef2
We don't `dynamic`, fix video layout issues
bharatkashyap Aug 25, 2022
66fd339
Update the SIB form URLs
bharatkashyap Aug 25, 2022
30f423b
Video v2, remove unused file
bharatkashyap Aug 26, 2022
28d2fe2
Use standard GradientText
bharatkashyap Aug 26, 2022
0767339
Outline on Safari, no truncate video on all sizes
bharatkashyap Aug 26, 2022
c97d851
Change upvote URL
bharatkashyap Aug 26, 2022
ebc45db
Use standard production check
bharatkashyap Aug 26, 2022
e7f301c
we don't need experimental MUI X features
oliviertassinari Aug 29, 2022
175fa72
we need the same ENV variables as in the mono-repo, in case
oliviertassinari Aug 29, 2022
f05cc97
it's always 4
oliviertassinari Aug 29, 2022
74d1b10
a div is more lightweight
oliviertassinari Aug 29, 2022
ed19de2
make the whole thing required
oliviertassinari Aug 29, 2022
164fa66
add label to the input
oliviertassinari Aug 29, 2022
00c2b5f
simplifications
oliviertassinari Aug 29, 2022
7cbaecc
fix ci
oliviertassinari Aug 29, 2022
5213c37
re-enable the rule
Janpot Aug 29, 2022
02e9d6f
extra comment
Janpot Aug 29, 2022
2659bc9
Merge branch 'landing-page-blue' of github.com:mui/mui-toolpad into l…
bharatkashyap Aug 31, 2022
443824d
Merge branch 'master' into landing-page-blue
bharatkashyap Aug 31, 2022
3a233f5
re-add no-unused-prop-types check
bharatkashyap Aug 31, 2022
63f5fc8
Text fixes and wip logo consistency
prakhargupta1 Aug 31, 2022
2c322ee
lint
bharatkashyap Aug 31, 2022
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
9 changes: 9 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,15 @@ module.exports = {
// Turning react/jsx-key back on.
// https://github.com/airbnb/javascript/blob/5155aa5fc1ea9bb2c6493a06ddbd5c7a05414c86/packages/eslint-config-airbnb/rules/react.js#L94
'react/jsx-key': ['error', { checkKeyMustBeforeSpread: true, warnOnDuplicates: true }],
// This got turned of in the mono-repo:
// See https://github.com/mui/mui-toolpad/pull/866#discussion_r957222171
'react/no-unused-prop-types': [
'error',
{
customValidators: [],
skipShapeProps: true,
},
],
},
overrides: [
{
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Quickly build internal tools. MUI Toolpad is a self-hosted low-code internal too

</div>

![Editor screenshot](./docs/public/static/toolpad/hero-screenshot.png)
![Editor screenshot](./docs/public/static/toolpad/docs/hero-screenshot.png)

## Notice

Expand Down
22 changes: 11 additions & 11 deletions docs/data/toolpad/getting-started/tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,39 +12,39 @@ Make sure you have a running Toolpad instance. If you don't know how to do that,

1. Open Toolpad by navigating to [http://localhost:3000/](http://localhost:3000/) if you went through the docker setup, or otherwise, the URL Toolpad is hosted under. You'll be presented with an overview screen with all the applications available. If you've started from a fresh instance, there should be none present.

![Apps overview](/static/toolpad/apps-overview.png)
![Apps overview](/static/toolpad/docs/apps-overview.png)

1. Click "create new" and choose a name for your application in the popup, then click "create". This will create a new Toolpad application and the page will navigate to the application editor.

![Editor overview](/static/toolpad/editor-overview.png)
![Editor overview](/static/toolpad/docs/editor-overview.png)

1. In the left navigation bar, you will see all the objects that are present in this application. You'll see "connections", which represent credentials needed to connect to a data source. "APIs" allow you to query your data and make it available to pages. Next to the "pages" entry click + the icon to add a new page, give it a name, and click "create". The page designer will open.

![Page editor](/static/toolpad/page-editor.png)
![Page editor](/static/toolpad/docs/page-editor.png)

1. You are now in the page designer. You can access the components catalog by hovering over the bar on the left side containing the word "components". When the catalog folds out, grab a "TextField" and drag it into the canvas over the green box that says "insert here". When the box highlights, drop the TextField. An MUI TextField will now appear on the page canvas and the component properties editor opens. This input will be used to enter the name of the person we want to greet. In the component editor, change the name to "nameInput". We will use this name, later on, to refer to this TextField, so that we can bind properties to their value.

![Added TextField](/static/toolpad/add-textfield.png)
![Added TextField](/static/toolpad/docs/add-textfield.png)

1. Open the component catalog again and drag a "Typography" component on the page. This will contain our greeting. In the component editor on the right-hand side, locate the text field for the "value" property. Try typing in this field. You'll notice the text on the screen changes. We can also make this value dynamic. To do this, click the link icon to the right of the text field to open the binding editor.

In the binding editor, you can write any JavaScript expression. For instance, try typing the javascript string `'Hello everybody!'` and click "update binding". You'll notice that the text on the screen changes to "Hello everybody!".

Now, change the JavaScript expression to `` `Hello ${nameInput.value}!` ``. Notice how we refer to our textField by the name "nameInput" that we set before. Now click "update binding" and close the binding editor.

![Added TextField](/static/toolpad/updated-binding.png)
![Added TextField](/static/toolpad/docs/updated-binding.png)

1. Select the TextField and try typing your name. See how the Text follows?

![Result](/static/toolpad/result.png)
![Result](/static/toolpad/docs/result.png)

## Deploying your first application

Now that we have our first simple application, let's make sure we can use it outside of the editor. We will deploy our application under a stable URL.

1. The first thing we need to do is to create a release for our application. When you create a release, the current state of the application is captured as a snapshot and stored. This snapshot will never change, we will always be able to access this snapshot and see the state of the application at the time that we took the snapshot. To create a release, click the launch icon in the top right corner of the menu bar. In the dialog that opens, write "Initial release" in the description field and click "create". You will be directed to the release's page. Here you'll get a list of all the pages present in this release. Go ahead and click the "open page" icon to see what your released page looks like.

![Release](/static/toolpad/release.png)
![Release](/static/toolpad/docs/release.png)

1. You just created a versioned release of your application. Click the "deploy" button to host this version under the production URL of your page. Navigate to Toolpad home to get an overview of your application and click the "open" button on the application you just deployed. You'll be presented with an overview of the pages available in this application. Click on a page to see the production version of the application.

Expand All @@ -56,18 +56,18 @@ A Toolpad aplication wouldn't be useful if you couldn't import your data into it

1. the first step is to make a connection to your data source. The connection holds the necessary credentials. In the case of a database, this may be the connection string, or in the case of a REST API this may contain an API token. For demo purposes, we will just create a dummy connection that we can use to make public HTTP requests. To get started, click on the plus button next to "Connections" in the left menu. In the popup that opens, select the "Fetch" type and click "create". In the window that opens, give your connection a name "ourData".

![Create Connection](/static/toolpad/create-connection.png)
![Create Connection](/static/toolpad/docs/create-connection.png)

1. Now that we can connect to our data source, we can make an API endpoint for it on the Toolpad application. Click the plus button next to "Apis" in the left menu and select the "ourData" connection that we will make an API for. In the editor that opens, give it a name "ourDataApi" and in the url fill in `https://gist.githubusercontent.com/Janpot/c9d1f00be8472f2a510680b7e716a43b/raw/f001e0c3c501f5a0da35474ba4854cfc69acfd78/sample-data.json`. This contains a sample dataset for us to use. If everything went well, you will see a preview in the bottom half of the page. Click "update" to accept the parameters for this API.

![Create Api](/static/toolpad/create-api.png)
![Create Api](/static/toolpad/docs/create-api.png)

1. Now we need to bring this data to our page. To do this, make a new page and click the "create query state" button in the page properties. In the popup that opens, give the state a name "ourDataState" and select the API we created before. We now have the data from this API available on the page in a variable `ourDataState` and we can bind it to components on the page.

![Create State](/static/toolpad/create-state.png)
![Create State](/static/toolpad/docs/create-state.png)

1. Now add a DataGrid on the page and in its properties click the link button next to "DataQuery". This will open our trusty binding editor in which you can type `ourDataState` and click "update binding". Close the binding editor to see the result.

![Bind Query State](/static/toolpad/bind-query-state.png)
![Bind Query State](/static/toolpad/docs/bind-query-state.png)

Read our deep dive into data fetching in the [data fetching documentation](/toolpad/data-fetching/).
26 changes: 20 additions & 6 deletions docs/next.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,24 @@ const pkg = require('../package.json');
const { findPages } = require('./src/modules/utils/find');
const { LANGUAGES, LANGUAGES_SSR } = require('./src/modules/constants');

let DEPLOY_ENV = 'development';

// Same as process.env.PULL_REQUEST === 'true'
if (process.env.CONTEXT === 'deploy-preview') {
DEPLOY_ENV = 'pull-request';
}

if (process.env.CONTEXT === 'production' || process.env.CONTEXT === 'branch-deploy') {
DEPLOY_ENV = 'production';
}

if (
process.env.CONTEXT === 'branch-deploy' &&
(process.env.HEAD === 'master' || process.env.HEAD === 'next')
) {
DEPLOY_ENV = 'staging';
}

const MONORPO_PATH = path.resolve(__dirname, './node_modules/@mui/monorepo');
const MONOREPO_PACKAGES = {
'@mui/base': path.resolve(MONORPO_PATH, './packages/mui-base/src'),
Expand Down Expand Up @@ -46,14 +64,12 @@ if (reactStrictMode) {
console.log(`Using React.StrictMode.`);
}

const isDeployment = process.env.NETLIFY === 'true';

module.exports = withTM({
eslint: {
ignoreDuringBuilds: true,
},
// Avoid conflicts with the other Next.js apps hosted under https://mui.com/
assetPrefix: isDeployment ? '/toolpad' : '',
assetPrefix: DEPLOY_ENV === 'development' ? '' : '/toolpad',
typescript: {
// Motivated by https://github.com/zeit/next.js/issues/7687
ignoreDevErrors: true,
Expand All @@ -65,14 +81,12 @@ module.exports = withTM({
ENABLE_AD: process.env.ENABLE_AD,
GITHUB_AUTH: process.env.GITHUB_AUTH,
LIB_VERSION: pkg.version,
PULL_REQUEST: process.env.PULL_REQUEST === 'true',
REACT_STRICT_MODE: reactStrictMode,
FEEDBACK_URL: process.env.FEEDBACK_URL,
// Set by Netlify
GRID_EXPERIMENTAL_ENABLED: process.env.PULL_REQUEST === 'false' ? 'false' : 'true',
// #default-branch-switch
SOURCE_CODE_ROOT_URL: 'https://github.com/mui/mui-toolpad/blob/master',
SOURCE_CODE_REPO: 'https://github.com/mui/mui-toolpad',
DEPLOY_ENV,
},
webpack5: true,
webpack: (config) => {
Expand Down
41 changes: 37 additions & 4 deletions docs/pages/toolpad/index.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,58 @@
import * as React from 'react';
import NoSsr from '@mui/material/NoSsr';
import Head from 'docs/src/modules/components/Head';
import CssBaseline from '@mui/material/CssBaseline';
import BrandingProvider from 'docs/src/BrandingProvider';
import AppHeader from 'docs/src/layouts/AppHeader';
import AppFooter from 'docs/src/layouts/AppFooter';
import AppHeaderBanner from 'docs/src/components/banner/AppHeaderBanner';
import ToolpadHero from '../../src/components/landing/ToolpadHero';
import ToolpadHero from '../../src/components/landing/Hero';
import SignUpToast from '../../src/components/landing/SignUpToast';
import CardGrid from '../../src/components/landing/CardGrid';
import Banner from '../../src/components/landing/Banner';
import Pricing from '../../src/components/landing/PricingTable';
import Marquee from '../../src/components/landing/Marquee';
import features from '../../src/content/features';
import upvote from '../../src/content/upvote';
import useCases from '../../src/content/useCases';
import marquee from '../../src/content/marquee';
import {
Headline,
plans,
planInfo,
rowHeaders,
communityData,
commercialData,
} from '../../src/content/pricing';

export default function Home() {
return (
<BrandingProvider>
<Head
title="Title"
description="Description"
title="MUI Toolpad: Low-code, admin builder"
description="Build apps with MUI components, connect to data sources, APIs and build your internal tools 10x faster. Open-source and powered by MUI."
card="/static/social-previews/toolpad-preview.jpg"
/>
<NoSsr>
<SignUpToast />
</NoSsr>
<CssBaseline />
<AppHeaderBanner />
<AppHeader />
<main>
<main id="main-content">
<ToolpadHero />
<CardGrid content={features} />
<Banner content={upvote} />
<CardGrid content={useCases} />
<Pricing
Headline={Headline}
plans={plans}
planInfo={planInfo}
rowHeaders={rowHeaders}
commercialData={commercialData}
communityData={communityData}
/>
<Marquee content={marquee} />
</main>
<AppFooter />
</BrandingProvider>
Expand Down
1 change: 1 addition & 0 deletions docs/public/static/branding/pricing/block-blue.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/public/static/branding/pricing/block-gold.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/public/static/branding/pricing/block-green.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions docs/public/static/branding/pricing/no-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions docs/public/static/branding/pricing/no-light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/public/static/branding/pricing/time-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/public/static/branding/pricing/time-light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/public/static/branding/pricing/yes-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/public/static/branding/pricing/yes-light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 27 additions & 0 deletions docs/public/static/branding/product-toolpad-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading