From b8812a2bdae37dd35f49aa275da3a3455c067baf Mon Sep 17 00:00:00 2001 From: sukuwc Date: Sun, 2 Nov 2025 21:50:10 +0100 Subject: [PATCH 1/4] SUKU initial import of melt context menu example --- src/App.svelte | 2 + src/lib/MeltContextMenu.svelte | 171 +++++++++++++++++++++++++++++++++ 2 files changed, 173 insertions(+) create mode 100644 src/lib/MeltContextMenu.svelte diff --git a/src/App.svelte b/src/App.svelte index b92f7d7..3e74034 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -17,6 +17,7 @@ import { fly } from "svelte/transition"; import LogMessage from "./lib/LogMessage.svelte"; import { LogMessageType } from "./lib/LogMessageType.ts"; + import MeltContextMenu from "./lib/MeltContextMenu.svelte"; import { tooltip } from "./lib/tooltip.ts"; @@ -246,6 +247,7 @@
ContextMenu and context-target: + + import { createContextMenu, melt } from "@melt-ui/svelte"; + import { writable } from "svelte/store"; + + const settingsSync = writable(true); + const hideMeltUI = writable(false); + + const { + elements: { trigger, menu, item, separator }, + builders: { createSubmenu, createMenuRadioGroup, createCheckboxItem }, + } = createContextMenu(); + + const { + elements: { subMenu: subMenuA, subTrigger: subTriggerA }, + } = createSubmenu(); + + const { + elements: { radioGroup, radioItem }, + helpers: { isChecked }, + } = createMenuRadioGroup({ + defaultValue: "Hunter Johnston", + }); + + const { + elements: { checkboxItem }, + } = createCheckboxItem({ + checked: settingsSync, + }); + + const { + elements: { checkboxItem: checkboxItemA }, + } = createCheckboxItem({ + checked: hideMeltUI, + }); + + const personsArr = [ + "Hunter Johnston", + "Thomas G. Lopes", + "Adrian Gonz", + "Franck Poingt", + ]; + + + + Right click me. + + +