From a0b01193d51a89c76463eba7b22f581465651fe0 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Fri, 11 Jul 2025 06:02:28 +0200 Subject: [PATCH] feat: :sparkles: Add bubble menu to composer --- components/editor/bubble-menu.vue | 97 +++++++++++++++++++ components/editor/content.vue | 5 +- components/ui/toggle-group/ToggleGroup.vue | 45 +++++++++ .../ui/toggle-group/ToggleGroupItem.vue | 46 +++++++++ components/ui/toggle-group/index.ts | 2 + 5 files changed, 194 insertions(+), 1 deletion(-) create mode 100644 components/editor/bubble-menu.vue create mode 100644 components/ui/toggle-group/ToggleGroup.vue create mode 100644 components/ui/toggle-group/ToggleGroupItem.vue create mode 100644 components/ui/toggle-group/index.ts diff --git a/components/editor/bubble-menu.vue b/components/editor/bubble-menu.vue new file mode 100644 index 0000000..68687bd --- /dev/null +++ b/components/editor/bubble-menu.vue @@ -0,0 +1,97 @@ + + + diff --git a/components/editor/content.vue b/components/editor/content.vue index 9136c28..a57ff52 100644 --- a/components/editor/content.vue +++ b/components/editor/content.vue @@ -1,5 +1,7 @@ @@ -14,6 +16,7 @@ import Superscript from "@tiptap/extension-superscript"; import Underline from "@tiptap/extension-underline"; import StarterKit from "@tiptap/starter-kit"; import { Editor, EditorContent } from "@tiptap/vue-3"; +import BubbleMenu from "./bubble-menu.vue"; import suggestion from "./suggestion.ts"; const content = defineModel("content"); @@ -113,7 +116,7 @@ onUnmounted(() => { @apply font-bold rounded-sm text-primary-foreground bg-primary px-1 py-0.5; } -.tiptap .emoji > img { +.tiptap .emoji>img { @apply h-[1lh] align-middle inline hover:scale-110 transition-transform duration-75 ease-in-out; } diff --git a/components/ui/toggle-group/ToggleGroup.vue b/components/ui/toggle-group/ToggleGroup.vue new file mode 100644 index 0000000..3ed409c --- /dev/null +++ b/components/ui/toggle-group/ToggleGroup.vue @@ -0,0 +1,45 @@ + + + diff --git a/components/ui/toggle-group/ToggleGroupItem.vue b/components/ui/toggle-group/ToggleGroupItem.vue new file mode 100644 index 0000000..988bf26 --- /dev/null +++ b/components/ui/toggle-group/ToggleGroupItem.vue @@ -0,0 +1,46 @@ + + + diff --git a/components/ui/toggle-group/index.ts b/components/ui/toggle-group/index.ts new file mode 100644 index 0000000..c72df1e --- /dev/null +++ b/components/ui/toggle-group/index.ts @@ -0,0 +1,2 @@ +export { default as ToggleGroup } from "./ToggleGroup.vue"; +export { default as ToggleGroupItem } from "./ToggleGroupItem.vue";