From 3b2c7caf077ca20db91e8a4d599eece99d63997c Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Tue, 18 Mar 2025 11:11:31 -0700 Subject: [PATCH] fix: New diagram button, add MC links --- src/lib/components/Editor.svelte | 3 +- src/lib/components/MainMenu.svelte | 47 +++++++++++++++------- src/lib/components/McWrapper.svelte | 13 ++++-- src/lib/components/MermaidChartIcon.svelte | 7 ++++ src/lib/components/Share.svelte | 3 +- src/lib/util/state.ts | 1 + src/routes/edit/+page.svelte | 3 +- 7 files changed, 56 insertions(+), 21 deletions(-) create mode 100644 src/lib/components/MermaidChartIcon.svelte diff --git a/src/lib/components/Editor.svelte b/src/lib/components/Editor.svelte index 8e639c0b..b5b58898 100644 --- a/src/lib/components/Editor.svelte +++ b/src/lib/components/Editor.svelte @@ -9,6 +9,7 @@ {#snippet menuItem(options: { label: string; icon: Component; href: string; class?: string })} @@ -51,13 +69,14 @@ checked={$mode === 'dark'} onCheckedChange={(dark) => setMode(dark ? 'dark' : 'light')} /> - - {@render menuItem({ - label: 'Edit in Playground', - icon: PlaygroundIcon, - href: $urlsStore.mermaidChart.playground, - class: 'text-accent bg-background hover:bg-background/50' - })} - + + {#each mermaidChartMenuItems as item} + + {@render menuItem({ + ...item, + class: 'text-accent bg-background hover:bg-muted' + })} + + {/each} diff --git a/src/lib/components/McWrapper.svelte b/src/lib/components/McWrapper.svelte index c49192a4..d80bec7d 100644 --- a/src/lib/components/McWrapper.svelte +++ b/src/lib/components/McWrapper.svelte @@ -2,13 +2,18 @@ import { env } from '$/util/env'; import { stateStore } from '$/util/state'; import * as Tooltip from '$lib/components/ui/tooltip'; - import type { Snippet } from 'svelte'; + import type { ComponentProps, Snippet } from 'svelte'; import ExternalLinkIcon from '~icons/material-symbols/open-in-new-rounded'; let { children, - shouldCheckDiagramType = true - }: { children: Snippet; shouldCheckDiagramType?: boolean } = $props(); + shouldCheckDiagramType = true, + side = 'bottom' + }: { + children: Snippet; + shouldCheckDiagramType?: boolean; + side?: ComponentProps['side']; + } = $props(); let shouldDisableComponent = $derived( shouldCheckDiagramType && $stateStore.diagramType === 'zenuml' @@ -23,7 +28,7 @@ {@render children()} - +
{#if shouldDisableComponent}
diff --git a/src/lib/components/MermaidChartIcon.svelte b/src/lib/components/MermaidChartIcon.svelte new file mode 100644 index 00000000..058e2185 --- /dev/null +++ b/src/lib/components/MermaidChartIcon.svelte @@ -0,0 +1,7 @@ + + +Mermaid Chart diff --git a/src/lib/components/Share.svelte b/src/lib/components/Share.svelte index 0bfdd249..abd56f88 100644 --- a/src/lib/components/Share.svelte +++ b/src/lib/components/Share.svelte @@ -6,6 +6,7 @@ import { urlsStore } from '$/util/state'; import ShareIcon from '~icons/material-symbols/share'; import CopyInput from './CopyInput.svelte'; + import MermaidChartIcon from './MermaidChartIcon.svelte'; @@ -33,7 +34,7 @@

- Mermaid Chart + Mermaid Chart Playground

diff --git a/src/lib/util/state.ts b/src/lib/util/state.ts index cdb56cb1..eac0c449 100644 --- a/src/lib/util/state.ts +++ b/src/lib/util/state.ts @@ -132,6 +132,7 @@ export const urlsStore = derived([stateStore], ([{ code, serialized }]) => { save: `${MCBaseURL}/app/plugin/save?state=${serialized}`, playground: `${MCBaseURL}/play#${serialized}` }, + new: `${window.location.protocol}//${window.location.host}${window.location.pathname}/#${serializeState(defaultState)}`, png, svg: `${rendererUrl}/svg/${serialized}`, view: `/view#${serialized}` diff --git a/src/routes/edit/+page.svelte b/src/routes/edit/+page.svelte index 8b440c5f..235405b3 100644 --- a/src/routes/edit/+page.svelte +++ b/src/routes/edit/+page.svelte @@ -5,6 +5,7 @@ import Editor from '$/components/Editor.svelte'; import History from '$/components/History/History.svelte'; import McWrapper from '$/components/McWrapper.svelte'; + import MermaidChartIcon from '$/components/MermaidChartIcon.svelte'; import Navbar from '$/components/Navbar.svelte'; import PanZoomToolbar from '$/components/PanZoomToolbar.svelte'; import Preset from '$/components/Preset.svelte'; @@ -59,7 +60,7 @@