Skip to content

[docs] Full screen demos in new tab #46088

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

Open
wants to merge 22 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all 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
1 change: 1 addition & 0 deletions docs/next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ export default withDocsInfra({
{
loader: require.resolve('@mui/internal-markdown/loader'),
options: {
enableOpenInNewTab: true,
Copy link
Member Author

Choose a reason for hiding this comment

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

I made it opt-in; the "Open in new tab" button in the demo toolbar is not shown by default.
But the ?scopedDemo URL is supported regardless of this setting.

I don't know if the Core wants to have this enabled for the whole repo.
You can disable enableOpenInNewTab and enable it for specific pages like this:

import * as pageProps from 'docs/data/material/components/drawers/drawers.md?muiMarkdown';

export default function Page() {
  return <MarkdownDocs {...pageProps} enableOpenInNewTab />;
}

This could be particularly useful for pages like https://mui.com/material-ui/react-drawer/

Let me know if you have a preference for this setting, and I'll update the PR accordingly.

workspaceRoot,
ignoreLanguagePages: LANGUAGES_IGNORE_PAGES,
languagesInProgress: LANGUAGES_IN_PROGRESS,
Expand Down
10 changes: 10 additions & 0 deletions docs/pages/_document.js
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,16 @@ export default class MyDocument extends Document {
<MuiInitColorSchemeScript defaultMode="system" />
<JoyInitColorSchemeScript defaultMode="system" />
<Main />
<script
// Avoid doc page being rendered before the page is hydrated and the demo is rendered
// eslint-disable-next-line react/no-danger
dangerouslySetInnerHTML={{
__html: `
if ((new URLSearchParams(window.location.search)).get('scopedDemo')) {
document.body.style.visibility = 'hidden';
}`,
}}
/>
<script
// eslint-disable-next-line react/no-danger
dangerouslySetInnerHTML={{
Expand Down
5 changes: 0 additions & 5 deletions docs/pages/joy-ui/react-button-group.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/joy/components/button-group/button-group.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/joy-ui/react-button.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/joy/components/button/button.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/about-the-lab.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/about-the-lab/about-the-lab.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/all-components/index.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/all-components/all-components.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/icons.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/icons/icons.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/material-icons.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/material-icons/material-icons.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} disableToc />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-accordion.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/accordion/accordion.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-alert.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/alert/alert.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-app-bar.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/app-bar/app-bar.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-autocomplete.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/autocomplete/autocomplete.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-avatar.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/avatars/avatars.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-backdrop.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/backdrop/backdrop.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-badge.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/badges/badges.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-bottom-navigation.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/bottom-navigation/bottom-navigation.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-box.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/box/box.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-breadcrumbs.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/breadcrumbs/breadcrumbs.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-button-group.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/button-group/button-group.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-button.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/buttons/buttons.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-card.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/cards/cards.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-checkbox.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/checkboxes/checkboxes.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-chip.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/chips/chips.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-click-away-listener.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/click-away-listener/click-away-listener.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-container.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/container/container.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-css-baseline.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/css-baseline/css-baseline.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-dialog.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/dialogs/dialogs.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-divider.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/dividers/dividers.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-drawer.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/drawers/drawers.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
5 changes: 0 additions & 5 deletions docs/pages/material-ui/react-floating-action-button.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
import * as React from 'react';
import MarkdownDocs from 'docs/src/modules/components/MarkdownDocsV2';
import AppFrame from 'docs/src/modules/components/AppFrame';
import * as pageProps from 'docs/data/material/components/floating-action-button/floating-action-button.md?muiMarkdown';

export default function Page() {
return <MarkdownDocs {...pageProps} />;
}

Page.getLayout = (page) => {
return <AppFrame>{page}</AppFrame>;
};
Loading
Loading