From 48e6e6075304cc2a69cce2df6747ce09c46bcac6 Mon Sep 17 00:00:00 2001 From: rajat-ht Date: Tue, 20 May 2025 20:00:30 +0530 Subject: [PATCH 01/11] Feat: Add editor popup modal --- .../components/EditorSelectionModal.vue | 173 ++++++++++++++++++ .../src/docs/.vitepress/theme/index.ts | 8 +- packages/mermaid/src/docs/index.md | 3 - 3 files changed, 178 insertions(+), 6 deletions(-) create mode 100644 packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue diff --git a/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue new file mode 100644 index 000000000..f41759f75 --- /dev/null +++ b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/packages/mermaid/src/docs/.vitepress/theme/index.ts b/packages/mermaid/src/docs/.vitepress/theme/index.ts index 3996dde1a..574ce3e81 100644 --- a/packages/mermaid/src/docs/.vitepress/theme/index.ts +++ b/packages/mermaid/src/docs/.vitepress/theme/index.ts @@ -1,12 +1,13 @@ /* eslint-disable no-console */ import DefaultTheme from 'vitepress/theme'; -import './custom.css'; -import Mermaid from './Mermaid.vue'; -import Tooltip from './Tooltip.vue'; import Contributors from '../components/Contributors.vue'; +import EditorSelectionModal from '../components/EditorSelectionModal.vue'; import HomePage from '../components/HomePage.vue'; import TopBar from '../components/TopBar.vue'; +import './custom.css'; +import Mermaid from './Mermaid.vue'; import { getRedirect } from './redirect.js'; +import Tooltip from './Tooltip.vue'; // @ts-ignore Type not available import 'uno.css'; import type { EnhanceAppContext } from 'vitepress'; @@ -22,6 +23,7 @@ export default { 'home-hero-before': () => h(TopBar), 'doc-before': () => h(TopBar), 'layout-bottom': () => h(Tooltip), + 'home-hero-after': () => h(EditorSelectionModal), }); }, enhanceApp({ app, router }: EnhanceAppContext) { diff --git a/packages/mermaid/src/docs/index.md b/packages/mermaid/src/docs/index.md index 20f3cf281..5f409f7a0 100644 --- a/packages/mermaid/src/docs/index.md +++ b/packages/mermaid/src/docs/index.md @@ -17,9 +17,6 @@ hero: actions: - theme: brand text: Try Playground - link: https://www.mermaidchart.com/play - target: _blank - rel: external - theme: alt text: Get started link: /intro/ From f23a26e528ac2196c09a3cfa5bdd0a0de1f6f388 Mon Sep 17 00:00:00 2001 From: rajat-ht Date: Wed, 21 May 2025 17:11:29 +0530 Subject: [PATCH 02/11] chore: add event listener for button. --- .../.vitepress/components/EditorSelectionModal.vue | 11 +++++++---- packages/mermaid/src/docs/.vitepress/config.ts | 4 +--- packages/mermaid/src/docs/index.md | 1 + 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue index f41759f75..a53e1c9e7 100644 --- a/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue +++ b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue @@ -83,21 +83,24 @@ const featureColumns = ref([ ], ]); -const isVisible = ref(true); +const isVisible = ref(false); const handleMouseDown = (e: MouseEvent) => { const target = e.target as HTMLElement; - if (target.matches('a[class*="editorModal"]') || target.matches('button[class*="editorModal"]')) { + if ( + (target.tagName === 'A' && target.textContent?.trim() === 'Try Playground') || + (target.tagName === 'SPAN' && target.textContent?.trim() === '💻 Open Editor') + ) { isVisible.value = !isVisible.value; } }; onMounted(() => { - document.addEventListener('mousedown', handleMouseDown); + document.addEventListener('click', handleMouseDown); }); onUnmounted(() => { - document.removeEventListener('mousedown', handleMouseDown); + document.removeEventListener('click', handleMouseDown); }); diff --git a/packages/mermaid/src/docs/.vitepress/config.ts b/packages/mermaid/src/docs/.vitepress/config.ts index cd66316a3..9771ae6f2 100644 --- a/packages/mermaid/src/docs/.vitepress/config.ts +++ b/packages/mermaid/src/docs/.vitepress/config.ts @@ -120,9 +120,7 @@ function nav() { }, { text: '💻 Open Editor', - link: 'https://mermaid.live/edit', - target: '_blank', - rel: 'external', + link: '/', }, ]; } diff --git a/packages/mermaid/src/docs/index.md b/packages/mermaid/src/docs/index.md index 5f409f7a0..9b3a6f190 100644 --- a/packages/mermaid/src/docs/index.md +++ b/packages/mermaid/src/docs/index.md @@ -17,6 +17,7 @@ hero: actions: - theme: brand text: Try Playground + link: / - theme: alt text: Get started link: /intro/ From 3c03f289b48b251c72ca333a6393322a9e568672 Mon Sep 17 00:00:00 2001 From: rajat-ht Date: Fri, 23 May 2025 15:49:12 +0530 Subject: [PATCH 03/11] chore: Update as per PR suggestion. --- docs/public/icons/icon-ai-diagram.svg | 19 +++++ docs/public/icons/icon-ai-repair.svg | 19 +++++ docs/public/icons/icon-comment.svg | 19 +++++ docs/public/icons/icon-folder.svg | 11 +++ docs/public/icons/icon-group.svg | 11 +++ docs/public/icons/icon-groups.svg | 19 +++++ docs/public/icons/icon-open-source.svg | 11 +++ docs/public/icons/icon-plugins.svg | 19 +++++ docs/public/icons/icon-presentation.svg | 19 +++++ docs/public/icons/icon-public.svg | 11 +++ docs/public/icons/icon-terminal.svg | 11 +++ docs/public/icons/icon-version-history.svg | 19 +++++ docs/public/icons/icon-whiteboard.svg | 19 +++++ .../components/EditorSelectionModal.vue | 85 ++++++++++--------- packages/mermaid/src/docs/index.md | 2 +- .../src/docs/public/icons/icon-ai-diagram.svg | 19 +++++ .../src/docs/public/icons/icon-ai-repair.svg | 19 +++++ .../src/docs/public/icons/icon-comment.svg | 19 +++++ .../src/docs/public/icons/icon-folder.svg | 11 +++ .../src/docs/public/icons/icon-group.svg | 11 +++ .../src/docs/public/icons/icon-groups.svg | 19 +++++ .../docs/public/icons/icon-open-source.svg | 11 +++ .../src/docs/public/icons/icon-plugins.svg | 19 +++++ .../docs/public/icons/icon-presentation.svg | 19 +++++ .../src/docs/public/icons/icon-public.svg | 11 +++ .../src/docs/public/icons/icon-terminal.svg | 11 +++ .../public/icons/icon-version-history.svg | 19 +++++ .../src/docs/public/icons/icon-whiteboard.svg | 19 +++++ 28 files changed, 460 insertions(+), 41 deletions(-) create mode 100644 docs/public/icons/icon-ai-diagram.svg create mode 100644 docs/public/icons/icon-ai-repair.svg create mode 100644 docs/public/icons/icon-comment.svg create mode 100644 docs/public/icons/icon-folder.svg create mode 100644 docs/public/icons/icon-group.svg create mode 100644 docs/public/icons/icon-groups.svg create mode 100644 docs/public/icons/icon-open-source.svg create mode 100644 docs/public/icons/icon-plugins.svg create mode 100644 docs/public/icons/icon-presentation.svg create mode 100644 docs/public/icons/icon-public.svg create mode 100644 docs/public/icons/icon-terminal.svg create mode 100644 docs/public/icons/icon-version-history.svg create mode 100644 docs/public/icons/icon-whiteboard.svg create mode 100644 packages/mermaid/src/docs/public/icons/icon-ai-diagram.svg create mode 100644 packages/mermaid/src/docs/public/icons/icon-ai-repair.svg create mode 100644 packages/mermaid/src/docs/public/icons/icon-comment.svg create mode 100644 packages/mermaid/src/docs/public/icons/icon-folder.svg create mode 100644 packages/mermaid/src/docs/public/icons/icon-group.svg create mode 100644 packages/mermaid/src/docs/public/icons/icon-groups.svg create mode 100644 packages/mermaid/src/docs/public/icons/icon-open-source.svg create mode 100644 packages/mermaid/src/docs/public/icons/icon-plugins.svg create mode 100644 packages/mermaid/src/docs/public/icons/icon-presentation.svg create mode 100644 packages/mermaid/src/docs/public/icons/icon-public.svg create mode 100644 packages/mermaid/src/docs/public/icons/icon-terminal.svg create mode 100644 packages/mermaid/src/docs/public/icons/icon-version-history.svg create mode 100644 packages/mermaid/src/docs/public/icons/icon-whiteboard.svg diff --git a/docs/public/icons/icon-ai-diagram.svg b/docs/public/icons/icon-ai-diagram.svg new file mode 100644 index 000000000..d3ff002f6 --- /dev/null +++ b/docs/public/icons/icon-ai-diagram.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/docs/public/icons/icon-ai-repair.svg b/docs/public/icons/icon-ai-repair.svg new file mode 100644 index 000000000..1e255ac81 --- /dev/null +++ b/docs/public/icons/icon-ai-repair.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/docs/public/icons/icon-comment.svg b/docs/public/icons/icon-comment.svg new file mode 100644 index 000000000..626bfd265 --- /dev/null +++ b/docs/public/icons/icon-comment.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/docs/public/icons/icon-folder.svg b/docs/public/icons/icon-folder.svg new file mode 100644 index 000000000..a443f1699 --- /dev/null +++ b/docs/public/icons/icon-folder.svg @@ -0,0 +1,11 @@ + + + diff --git a/docs/public/icons/icon-group.svg b/docs/public/icons/icon-group.svg new file mode 100644 index 000000000..8a7443b6e --- /dev/null +++ b/docs/public/icons/icon-group.svg @@ -0,0 +1,11 @@ + + + diff --git a/docs/public/icons/icon-groups.svg b/docs/public/icons/icon-groups.svg new file mode 100644 index 000000000..c827bebc6 --- /dev/null +++ b/docs/public/icons/icon-groups.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/docs/public/icons/icon-open-source.svg b/docs/public/icons/icon-open-source.svg new file mode 100644 index 000000000..4b121d0ab --- /dev/null +++ b/docs/public/icons/icon-open-source.svg @@ -0,0 +1,11 @@ + + + diff --git a/docs/public/icons/icon-plugins.svg b/docs/public/icons/icon-plugins.svg new file mode 100644 index 000000000..fbf4a4800 --- /dev/null +++ b/docs/public/icons/icon-plugins.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/docs/public/icons/icon-presentation.svg b/docs/public/icons/icon-presentation.svg new file mode 100644 index 000000000..4c679a19e --- /dev/null +++ b/docs/public/icons/icon-presentation.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/docs/public/icons/icon-public.svg b/docs/public/icons/icon-public.svg new file mode 100644 index 000000000..3d563baa1 --- /dev/null +++ b/docs/public/icons/icon-public.svg @@ -0,0 +1,11 @@ + + + diff --git a/docs/public/icons/icon-terminal.svg b/docs/public/icons/icon-terminal.svg new file mode 100644 index 000000000..5af2408d4 --- /dev/null +++ b/docs/public/icons/icon-terminal.svg @@ -0,0 +1,11 @@ + + + diff --git a/docs/public/icons/icon-version-history.svg b/docs/public/icons/icon-version-history.svg new file mode 100644 index 000000000..bacb28629 --- /dev/null +++ b/docs/public/icons/icon-version-history.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/docs/public/icons/icon-whiteboard.svg b/docs/public/icons/icon-whiteboard.svg new file mode 100644 index 000000000..9ac13652a --- /dev/null +++ b/docs/public/icons/icon-whiteboard.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue index a53e1c9e7..84c49d35e 100644 --- a/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue +++ b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue @@ -6,91 +6,108 @@ interface Feature { featureName: string; } -const featureColumns = ref([ +const featureColumns: Feature[][] = [ [ { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-public.svg', + iconUrl: '/icons/icon-public.svg', featureName: 'Diagram stored in URL', }, { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-terminal.svg', + iconUrl: '/icons/icon-terminal.svg', featureName: 'Code editor', }, { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-whiteboard.svg', + iconUrl: '/icons/icon-whiteboard.svg', featureName: 'Whiteboard', }, ], [ { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-folder.svg', + iconUrl: '/icons/icon-folder.svg', featureName: 'Storage', }, { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-terminal.svg', + iconUrl: '/icons/icon-terminal.svg', featureName: 'Code editor', }, { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-ai-diagrams.svg', + iconUrl: '/icons/icon-ai-diagram.svg', featureName: 'AI diagram generator', }, { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-whiteboard.svg', + iconUrl: '/icons/icon-whiteboard.svg', featureName: 'Whiteboard', }, { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-group.svg', + iconUrl: '/icons/icon-group.svg', featureName: 'Teams', }, { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-multi-user-editing.svg', + iconUrl: '/icons/icon-groups.svg', featureName: 'Multi-user editing', }, { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-ai-repair.svg', + iconUrl: '/icons/icon-ai-repair.svg', featureName: 'AI diagram repair', }, { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-version-history.svg', + iconUrl: '/icons/icon-version-history.svg', featureName: 'Version history', }, { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-comments.svg', + iconUrl: '/icons/icon-comment.svg', featureName: 'Comments', }, { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-presentations.svg', + iconUrl: '/icons/icon-presentation.svg', featureName: 'Presentations', }, { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-plugins.svg', + iconUrl: '/icons/icon-plugins.svg', featureName: 'Advanced Plugins', }, ], [ { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-public.svg', + iconUrl: '/icons/icon-public.svg', featureName: 'Diagram stored in URL', }, { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-terminal.svg', + iconUrl: '/icons/icon-terminal.svg', featureName: 'Code editor', }, { - iconUrl: 'https://static.mermaidchart.dev/assets/icon-how-to-reg.svg', + iconUrl: '/icons/icon-open-source.svg', featureName: 'Open source', }, + { + iconUrl: '/icons/icon-version-history.svg', + featureName: 'Version history', + }, ], -]); +]; + +const columnTitles = ['Playground', 'Free', 'Open Source']; +const columnDescriptions = [ + 'Basic features, no login', + 'Advanced features, free account', + 'Code only, no login', +]; +const redirectUrl = [ + 'https://www.mermaidchart.com/play?utm_source=mermaid_js&utm_medium=editor_selection&utm_campaign=playground', + 'https://www.mermaidchart.com/app/sign-up?utm_source=mermaid_js&utm_medium=editor_selection&utm_campaign=mermaid_chart', + 'https://mermaid.live/edit', +]; const isVisible = ref(false); const handleMouseDown = (e: MouseEvent) => { const target = e.target as HTMLElement; if ( - (target.tagName === 'A' && target.textContent?.trim() === 'Try Playground') || + (target.tagName === 'A' && target.textContent?.trim() === 'Try Editor') || (target.tagName === 'SPAN' && target.textContent?.trim() === '💻 Open Editor') ) { + e.preventDefault(); isVisible.value = !isVisible.value; } }; @@ -110,12 +127,12 @@ onUnmounted(() => { class="fixed top-0 left-0 z-20 flex h-screen w-screen backdrop-blur-sm items-center justify-center" @click.self="isVisible = false" > -
+
{

- {{ ['Playground', 'Free', 'Open Source'][index] }} + {{ columnTitles[index] }}

- {{ - [ - 'Basic features, no login', - 'Advanced features, free account', - 'Code only, no login', - ][index] - }} + {{ columnDescriptions[index] }}

{
  • - + {{ featureName }}
  • diff --git a/packages/mermaid/src/docs/index.md b/packages/mermaid/src/docs/index.md index 9b3a6f190..f87b86b69 100644 --- a/packages/mermaid/src/docs/index.md +++ b/packages/mermaid/src/docs/index.md @@ -16,7 +16,7 @@ hero: alt: Mermaid diagram actions: - theme: brand - text: Try Playground + text: Try Editor link: / - theme: alt text: Get started diff --git a/packages/mermaid/src/docs/public/icons/icon-ai-diagram.svg b/packages/mermaid/src/docs/public/icons/icon-ai-diagram.svg new file mode 100644 index 000000000..d3ff002f6 --- /dev/null +++ b/packages/mermaid/src/docs/public/icons/icon-ai-diagram.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/packages/mermaid/src/docs/public/icons/icon-ai-repair.svg b/packages/mermaid/src/docs/public/icons/icon-ai-repair.svg new file mode 100644 index 000000000..1e255ac81 --- /dev/null +++ b/packages/mermaid/src/docs/public/icons/icon-ai-repair.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/packages/mermaid/src/docs/public/icons/icon-comment.svg b/packages/mermaid/src/docs/public/icons/icon-comment.svg new file mode 100644 index 000000000..626bfd265 --- /dev/null +++ b/packages/mermaid/src/docs/public/icons/icon-comment.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/packages/mermaid/src/docs/public/icons/icon-folder.svg b/packages/mermaid/src/docs/public/icons/icon-folder.svg new file mode 100644 index 000000000..a443f1699 --- /dev/null +++ b/packages/mermaid/src/docs/public/icons/icon-folder.svg @@ -0,0 +1,11 @@ + + + diff --git a/packages/mermaid/src/docs/public/icons/icon-group.svg b/packages/mermaid/src/docs/public/icons/icon-group.svg new file mode 100644 index 000000000..8a7443b6e --- /dev/null +++ b/packages/mermaid/src/docs/public/icons/icon-group.svg @@ -0,0 +1,11 @@ + + + diff --git a/packages/mermaid/src/docs/public/icons/icon-groups.svg b/packages/mermaid/src/docs/public/icons/icon-groups.svg new file mode 100644 index 000000000..c827bebc6 --- /dev/null +++ b/packages/mermaid/src/docs/public/icons/icon-groups.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/packages/mermaid/src/docs/public/icons/icon-open-source.svg b/packages/mermaid/src/docs/public/icons/icon-open-source.svg new file mode 100644 index 000000000..4b121d0ab --- /dev/null +++ b/packages/mermaid/src/docs/public/icons/icon-open-source.svg @@ -0,0 +1,11 @@ + + + diff --git a/packages/mermaid/src/docs/public/icons/icon-plugins.svg b/packages/mermaid/src/docs/public/icons/icon-plugins.svg new file mode 100644 index 000000000..fbf4a4800 --- /dev/null +++ b/packages/mermaid/src/docs/public/icons/icon-plugins.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/packages/mermaid/src/docs/public/icons/icon-presentation.svg b/packages/mermaid/src/docs/public/icons/icon-presentation.svg new file mode 100644 index 000000000..4c679a19e --- /dev/null +++ b/packages/mermaid/src/docs/public/icons/icon-presentation.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/packages/mermaid/src/docs/public/icons/icon-public.svg b/packages/mermaid/src/docs/public/icons/icon-public.svg new file mode 100644 index 000000000..3d563baa1 --- /dev/null +++ b/packages/mermaid/src/docs/public/icons/icon-public.svg @@ -0,0 +1,11 @@ + + + diff --git a/packages/mermaid/src/docs/public/icons/icon-terminal.svg b/packages/mermaid/src/docs/public/icons/icon-terminal.svg new file mode 100644 index 000000000..5af2408d4 --- /dev/null +++ b/packages/mermaid/src/docs/public/icons/icon-terminal.svg @@ -0,0 +1,11 @@ + + + diff --git a/packages/mermaid/src/docs/public/icons/icon-version-history.svg b/packages/mermaid/src/docs/public/icons/icon-version-history.svg new file mode 100644 index 000000000..bacb28629 --- /dev/null +++ b/packages/mermaid/src/docs/public/icons/icon-version-history.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/packages/mermaid/src/docs/public/icons/icon-whiteboard.svg b/packages/mermaid/src/docs/public/icons/icon-whiteboard.svg new file mode 100644 index 000000000..9ac13652a --- /dev/null +++ b/packages/mermaid/src/docs/public/icons/icon-whiteboard.svg @@ -0,0 +1,19 @@ + + + + + + + + From e2e3cd2bbd41b368e72d16346a171ccd9ef0f139 Mon Sep 17 00:00:00 2001 From: rajat-ht Date: Fri, 23 May 2025 16:30:59 +0530 Subject: [PATCH 04/11] chore: code refactor --- .../components/EditorSelectionModal.vue | 158 ++++++------------ 1 file changed, 54 insertions(+), 104 deletions(-) diff --git a/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue index 84c49d35e..8ef65549e 100644 --- a/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue +++ b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue @@ -6,97 +6,55 @@ interface Feature { featureName: string; } -const featureColumns: Feature[][] = [ - [ - { - iconUrl: '/icons/icon-public.svg', - featureName: 'Diagram stored in URL', - }, - { - iconUrl: '/icons/icon-terminal.svg', - featureName: 'Code editor', - }, - { - iconUrl: '/icons/icon-whiteboard.svg', - featureName: 'Whiteboard', - }, - ], - [ - { - iconUrl: '/icons/icon-folder.svg', - featureName: 'Storage', - }, - { - iconUrl: '/icons/icon-terminal.svg', - featureName: 'Code editor', - }, - { - iconUrl: '/icons/icon-ai-diagram.svg', - featureName: 'AI diagram generator', - }, - { - iconUrl: '/icons/icon-whiteboard.svg', - featureName: 'Whiteboard', - }, - { - iconUrl: '/icons/icon-group.svg', - featureName: 'Teams', - }, - { - iconUrl: '/icons/icon-groups.svg', - featureName: 'Multi-user editing', - }, - { - iconUrl: '/icons/icon-ai-repair.svg', - featureName: 'AI diagram repair', - }, - { - iconUrl: '/icons/icon-version-history.svg', - featureName: 'Version history', - }, - { - iconUrl: '/icons/icon-comment.svg', - featureName: 'Comments', - }, - { - iconUrl: '/icons/icon-presentation.svg', - featureName: 'Presentations', - }, - { - iconUrl: '/icons/icon-plugins.svg', - featureName: 'Advanced Plugins', - }, - ], - [ - { - iconUrl: '/icons/icon-public.svg', - featureName: 'Diagram stored in URL', - }, - { - iconUrl: '/icons/icon-terminal.svg', - featureName: 'Code editor', - }, - { - iconUrl: '/icons/icon-open-source.svg', - featureName: 'Open source', - }, - { - iconUrl: '/icons/icon-version-history.svg', - featureName: 'Version history', - }, - ], -]; +interface EditorColumn { + title: string; + description: string; + redirectUrl: string; + features: Feature[]; +} -const columnTitles = ['Playground', 'Free', 'Open Source']; -const columnDescriptions = [ - 'Basic features, no login', - 'Advanced features, free account', - 'Code only, no login', -]; -const redirectUrl = [ - 'https://www.mermaidchart.com/play?utm_source=mermaid_js&utm_medium=editor_selection&utm_campaign=playground', - 'https://www.mermaidchart.com/app/sign-up?utm_source=mermaid_js&utm_medium=editor_selection&utm_campaign=mermaid_chart', - 'https://mermaid.live/edit', +const editorColumns: EditorColumn[] = [ + { + title: 'Playground', + description: 'Basic features, no login', + redirectUrl: + 'https://www.mermaidchart.com/play?utm_source=mermaid_js&utm_medium=editor_selection&utm_campaign=playground', + features: [ + { iconUrl: '/icons/icon-public.svg', featureName: 'Diagram stored in URL' }, + { iconUrl: '/icons/icon-terminal.svg', featureName: 'Code editor' }, + { iconUrl: '/icons/icon-whiteboard.svg', featureName: 'Whiteboard' }, + ], + }, + { + title: 'Free', + description: 'Advanced features, free account', + redirectUrl: + 'https://www.mermaidchart.com/app/sign-up?utm_source=mermaid_js&utm_medium=editor_selection&utm_campaign=mermaid_chart', + features: [ + { iconUrl: '/icons/icon-folder.svg', featureName: 'Storage' }, + { iconUrl: '/icons/icon-terminal.svg', featureName: 'Code editor' }, + { iconUrl: '/icons/icon-ai-diagram.svg', featureName: 'AI diagram generator' }, + { iconUrl: '/icons/icon-whiteboard.svg', featureName: 'Whiteboard' }, + { iconUrl: '/icons/icon-group.svg', featureName: 'Teams' }, + { iconUrl: '/icons/icon-groups.svg', featureName: 'Multi-user editing' }, + { iconUrl: '/icons/icon-ai-repair.svg', featureName: 'AI diagram repair' }, + { iconUrl: '/icons/icon-version-history.svg', featureName: 'Version history' }, + { iconUrl: '/icons/icon-comment.svg', featureName: 'Comments' }, + { iconUrl: '/icons/icon-presentation.svg', featureName: 'Presentations' }, + { iconUrl: '/icons/icon-plugins.svg', featureName: 'Advanced Plugins' }, + ], + }, + { + title: 'Open Source', + description: 'Code only, no login', + redirectUrl: 'https://mermaid.live/edit', + features: [ + { iconUrl: '/icons/icon-public.svg', featureName: 'Diagram stored in URL' }, + { iconUrl: '/icons/icon-terminal.svg', featureName: 'Code editor' }, + { iconUrl: '/icons/icon-open-source.svg', featureName: 'Open source' }, + { iconUrl: '/icons/icon-version-history.svg', featureName: 'Version history' }, + ], + }, ]; const isVisible = ref(false); @@ -129,7 +87,7 @@ onUnmounted(() => { >
    - - From 5fe0f53179f084111d35f923c0ed6b72c311c3ea Mon Sep 17 00:00:00 2001 From: rajat-ht Date: Fri, 23 May 2025 16:53:06 +0530 Subject: [PATCH 05/11] chore: removed index and used flag --- .../.vitepress/components/EditorSelectionModal.vue | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue index 8ef65549e..c482e5556 100644 --- a/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue +++ b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue @@ -10,6 +10,7 @@ interface EditorColumn { title: string; description: string; redirectUrl: string; + highlighted?: boolean; features: Feature[]; } @@ -30,6 +31,7 @@ const editorColumns: EditorColumn[] = [ description: 'Advanced features, free account', redirectUrl: 'https://www.mermaidchart.com/app/sign-up?utm_source=mermaid_js&utm_medium=editor_selection&utm_campaign=mermaid_chart', + highlighted: true, features: [ { iconUrl: '/icons/icon-folder.svg', featureName: 'Storage' }, { iconUrl: '/icons/icon-terminal.svg', featureName: 'Code editor' }, @@ -87,13 +89,12 @@ onUnmounted(() => { >

    Best for collaboration

    @@ -110,7 +111,9 @@ onUnmounted(() => { :href="column.redirectUrl" target="_blank" class="mb-4 flex h-10 w-full items-center justify-center rounded-xl hover:bg-[#272040] hover:text-white" - :class="index === 1 ? 'bg-[#1e1a2e] text-[#BEDDE3]' : 'bg-[#BEDDE3] text-[#1E1A2E]'" + :class=" + column.highlighted ? 'bg-[#1e1a2e] text-[#BEDDE3]' : 'bg-[#BEDDE3] text-[#1E1A2E]' + " > Start free From 0cabc6e8ed0e9cc81858254cea85492cb862e762 Mon Sep 17 00:00:00 2001 From: rajat-ht Date: Fri, 23 May 2025 22:14:18 +0530 Subject: [PATCH 06/11] chore: Update UI design --- .../components/EditorSelectionModal.vue | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue index c482e5556..48a886369 100644 --- a/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue +++ b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue @@ -87,19 +87,19 @@ onUnmounted(() => { class="fixed top-0 left-0 z-20 flex h-screen w-screen backdrop-blur-sm items-center justify-center" @click.self="isVisible = false" > -
    +
    -

    Best for collaboration

    +

    Best for collaboration

    -
    +

    {{ column.title }}

    @@ -110,14 +110,16 @@ onUnmounted(() => { Start free -
    +
    • Date: Tue, 27 May 2025 18:34:32 +0530 Subject: [PATCH 07/11] chore: UI refactor --- .../{icon-ai-diagram.svg => ai-diagram.svg} | 0 .../{icon-ai-repair.svg => ai-repair.svg} | 0 .../icons/{icon-comment.svg => comment.svg} | 0 .../icons/{icon-folder.svg => folder.svg} | 0 .../icons/{icon-group.svg => group.svg} | 0 .../icons/{icon-groups.svg => groups.svg} | 0 docs/public/icons/icon-open-source.svg | 11 ----- docs/public/icons/open-source.svg | 11 +++++ .../icons/{icon-plugins.svg => plugins.svg} | 0 ...icon-presentation.svg => presentation.svg} | 0 .../icons/{icon-public.svg => public.svg} | 0 .../icons/{icon-terminal.svg => terminal.svg} | 0 ...ersion-history.svg => version-history.svg} | 0 .../{icon-whiteboard.svg => whiteboard.svg} | 0 .../components/EditorSelectionModal.vue | 42 +++++++++---------- .../{icon-ai-diagram.svg => ai-diagram.svg} | 0 .../{icon-ai-repair.svg => ai-repair.svg} | 0 .../icons/{icon-comment.svg => comment.svg} | 0 .../icons/{icon-folder.svg => folder.svg} | 0 .../icons/{icon-group.svg => group.svg} | 0 .../icons/{icon-groups.svg => groups.svg} | 0 .../docs/public/icons/icon-open-source.svg | 11 ----- .../src/docs/public/icons/open-source.svg | 11 +++++ .../icons/{icon-plugins.svg => plugins.svg} | 0 ...icon-presentation.svg => presentation.svg} | 0 .../icons/{icon-public.svg => public.svg} | 0 .../icons/{icon-terminal.svg => terminal.svg} | 0 ...ersion-history.svg => version-history.svg} | 0 .../{icon-whiteboard.svg => whiteboard.svg} | 0 29 files changed, 43 insertions(+), 43 deletions(-) rename docs/public/icons/{icon-ai-diagram.svg => ai-diagram.svg} (100%) rename docs/public/icons/{icon-ai-repair.svg => ai-repair.svg} (100%) rename docs/public/icons/{icon-comment.svg => comment.svg} (100%) rename docs/public/icons/{icon-folder.svg => folder.svg} (100%) rename docs/public/icons/{icon-group.svg => group.svg} (100%) rename docs/public/icons/{icon-groups.svg => groups.svg} (100%) delete mode 100644 docs/public/icons/icon-open-source.svg create mode 100644 docs/public/icons/open-source.svg rename docs/public/icons/{icon-plugins.svg => plugins.svg} (100%) rename docs/public/icons/{icon-presentation.svg => presentation.svg} (100%) rename docs/public/icons/{icon-public.svg => public.svg} (100%) rename docs/public/icons/{icon-terminal.svg => terminal.svg} (100%) rename docs/public/icons/{icon-version-history.svg => version-history.svg} (100%) rename docs/public/icons/{icon-whiteboard.svg => whiteboard.svg} (100%) rename packages/mermaid/src/docs/public/icons/{icon-ai-diagram.svg => ai-diagram.svg} (100%) rename packages/mermaid/src/docs/public/icons/{icon-ai-repair.svg => ai-repair.svg} (100%) rename packages/mermaid/src/docs/public/icons/{icon-comment.svg => comment.svg} (100%) rename packages/mermaid/src/docs/public/icons/{icon-folder.svg => folder.svg} (100%) rename packages/mermaid/src/docs/public/icons/{icon-group.svg => group.svg} (100%) rename packages/mermaid/src/docs/public/icons/{icon-groups.svg => groups.svg} (100%) delete mode 100644 packages/mermaid/src/docs/public/icons/icon-open-source.svg create mode 100644 packages/mermaid/src/docs/public/icons/open-source.svg rename packages/mermaid/src/docs/public/icons/{icon-plugins.svg => plugins.svg} (100%) rename packages/mermaid/src/docs/public/icons/{icon-presentation.svg => presentation.svg} (100%) rename packages/mermaid/src/docs/public/icons/{icon-public.svg => public.svg} (100%) rename packages/mermaid/src/docs/public/icons/{icon-terminal.svg => terminal.svg} (100%) rename packages/mermaid/src/docs/public/icons/{icon-version-history.svg => version-history.svg} (100%) rename packages/mermaid/src/docs/public/icons/{icon-whiteboard.svg => whiteboard.svg} (100%) diff --git a/docs/public/icons/icon-ai-diagram.svg b/docs/public/icons/ai-diagram.svg similarity index 100% rename from docs/public/icons/icon-ai-diagram.svg rename to docs/public/icons/ai-diagram.svg diff --git a/docs/public/icons/icon-ai-repair.svg b/docs/public/icons/ai-repair.svg similarity index 100% rename from docs/public/icons/icon-ai-repair.svg rename to docs/public/icons/ai-repair.svg diff --git a/docs/public/icons/icon-comment.svg b/docs/public/icons/comment.svg similarity index 100% rename from docs/public/icons/icon-comment.svg rename to docs/public/icons/comment.svg diff --git a/docs/public/icons/icon-folder.svg b/docs/public/icons/folder.svg similarity index 100% rename from docs/public/icons/icon-folder.svg rename to docs/public/icons/folder.svg diff --git a/docs/public/icons/icon-group.svg b/docs/public/icons/group.svg similarity index 100% rename from docs/public/icons/icon-group.svg rename to docs/public/icons/group.svg diff --git a/docs/public/icons/icon-groups.svg b/docs/public/icons/groups.svg similarity index 100% rename from docs/public/icons/icon-groups.svg rename to docs/public/icons/groups.svg diff --git a/docs/public/icons/icon-open-source.svg b/docs/public/icons/icon-open-source.svg deleted file mode 100644 index 4b121d0ab..000000000 --- a/docs/public/icons/icon-open-source.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/docs/public/icons/open-source.svg b/docs/public/icons/open-source.svg new file mode 100644 index 000000000..d6c1f9843 --- /dev/null +++ b/docs/public/icons/open-source.svg @@ -0,0 +1,11 @@ + + + + diff --git a/docs/public/icons/icon-plugins.svg b/docs/public/icons/plugins.svg similarity index 100% rename from docs/public/icons/icon-plugins.svg rename to docs/public/icons/plugins.svg diff --git a/docs/public/icons/icon-presentation.svg b/docs/public/icons/presentation.svg similarity index 100% rename from docs/public/icons/icon-presentation.svg rename to docs/public/icons/presentation.svg diff --git a/docs/public/icons/icon-public.svg b/docs/public/icons/public.svg similarity index 100% rename from docs/public/icons/icon-public.svg rename to docs/public/icons/public.svg diff --git a/docs/public/icons/icon-terminal.svg b/docs/public/icons/terminal.svg similarity index 100% rename from docs/public/icons/icon-terminal.svg rename to docs/public/icons/terminal.svg diff --git a/docs/public/icons/icon-version-history.svg b/docs/public/icons/version-history.svg similarity index 100% rename from docs/public/icons/icon-version-history.svg rename to docs/public/icons/version-history.svg diff --git a/docs/public/icons/icon-whiteboard.svg b/docs/public/icons/whiteboard.svg similarity index 100% rename from docs/public/icons/icon-whiteboard.svg rename to docs/public/icons/whiteboard.svg diff --git a/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue index 48a886369..612be4fa4 100644 --- a/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue +++ b/packages/mermaid/src/docs/.vitepress/components/EditorSelectionModal.vue @@ -21,9 +21,9 @@ const editorColumns: EditorColumn[] = [ redirectUrl: 'https://www.mermaidchart.com/play?utm_source=mermaid_js&utm_medium=editor_selection&utm_campaign=playground', features: [ - { iconUrl: '/icons/icon-public.svg', featureName: 'Diagram stored in URL' }, - { iconUrl: '/icons/icon-terminal.svg', featureName: 'Code editor' }, - { iconUrl: '/icons/icon-whiteboard.svg', featureName: 'Whiteboard' }, + { iconUrl: '/icons/public.svg', featureName: 'Diagram stored in URL' }, + { iconUrl: '/icons/terminal.svg', featureName: 'Code editor' }, + { iconUrl: '/icons/whiteboard.svg', featureName: 'Whiteboard' }, ], }, { @@ -33,17 +33,17 @@ const editorColumns: EditorColumn[] = [ 'https://www.mermaidchart.com/app/sign-up?utm_source=mermaid_js&utm_medium=editor_selection&utm_campaign=mermaid_chart', highlighted: true, features: [ - { iconUrl: '/icons/icon-folder.svg', featureName: 'Storage' }, - { iconUrl: '/icons/icon-terminal.svg', featureName: 'Code editor' }, - { iconUrl: '/icons/icon-ai-diagram.svg', featureName: 'AI diagram generator' }, - { iconUrl: '/icons/icon-whiteboard.svg', featureName: 'Whiteboard' }, - { iconUrl: '/icons/icon-group.svg', featureName: 'Teams' }, - { iconUrl: '/icons/icon-groups.svg', featureName: 'Multi-user editing' }, - { iconUrl: '/icons/icon-ai-repair.svg', featureName: 'AI diagram repair' }, - { iconUrl: '/icons/icon-version-history.svg', featureName: 'Version history' }, - { iconUrl: '/icons/icon-comment.svg', featureName: 'Comments' }, - { iconUrl: '/icons/icon-presentation.svg', featureName: 'Presentations' }, - { iconUrl: '/icons/icon-plugins.svg', featureName: 'Advanced Plugins' }, + { iconUrl: '/icons/folder.svg', featureName: 'Storage' }, + { iconUrl: '/icons/terminal.svg', featureName: 'Code editor' }, + { iconUrl: '/icons/ai-diagram.svg', featureName: 'AI diagram generator' }, + { iconUrl: '/icons/whiteboard.svg', featureName: 'Whiteboard' }, + { iconUrl: '/icons/group.svg', featureName: 'Teams' }, + { iconUrl: '/icons/groups.svg', featureName: 'Multi-user editing' }, + { iconUrl: '/icons/ai-repair.svg', featureName: 'AI diagram repair' }, + { iconUrl: '/icons/version-history.svg', featureName: 'Version history' }, + { iconUrl: '/icons/comment.svg', featureName: 'Comments' }, + { iconUrl: '/icons/presentation.svg', featureName: 'Presentations' }, + { iconUrl: '/icons/plugins.svg', featureName: 'Advanced Plugins' }, ], }, { @@ -51,10 +51,10 @@ const editorColumns: EditorColumn[] = [ description: 'Code only, no login', redirectUrl: 'https://mermaid.live/edit', features: [ - { iconUrl: '/icons/icon-public.svg', featureName: 'Diagram stored in URL' }, - { iconUrl: '/icons/icon-terminal.svg', featureName: 'Code editor' }, - { iconUrl: '/icons/icon-open-source.svg', featureName: 'Open source' }, - { iconUrl: '/icons/icon-version-history.svg', featureName: 'Version history' }, + { iconUrl: '/icons/public.svg', featureName: 'Diagram stored in URL' }, + { iconUrl: '/icons/terminal.svg', featureName: 'Code editor' }, + { iconUrl: '/icons/open-source.svg', featureName: 'Open source' }, + { iconUrl: '/icons/version-history.svg', featureName: 'Version history' }, ], }, ]; @@ -84,13 +84,13 @@ onUnmounted(() => {