AppEditor.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <script setup lang="ts">
  2. import { Editor, EditorToolbar } from "@enesis/editor"
  3. const content = defineModel<string>("content", { required: true })
  4. const resolvedRefs = new Set(["Known Page", "Documentation"])
  5. function onPageRefClick({ pageName }: { pageName: string }) {
  6. console.log("page-ref-clicked", pageName)
  7. }
  8. function onBlockRefClick({ blockId }: { blockId: string }) {
  9. console.log("block-ref-clicked", blockId)
  10. }
  11. function onTagClick({ tag }: { tag: string }) {
  12. console.log("tag-clicked", tag)
  13. }
  14. </script>
  15. <template>
  16. <div class="flex flex-col flex-1 min-h-0 p-4 sm:p-6 dark:bg-neutral-950/50">
  17. <Editor
  18. v-model:content="content"
  19. marker-mode="live-preview"
  20. :focused="true"
  21. :resolved-refs="resolvedRefs"
  22. :resolved-refs-version="resolvedRefs.size"
  23. @page-ref-clicked="onPageRefClick"
  24. @block-ref-clicked="onBlockRefClick"
  25. @tag-clicked="onTagClick"
  26. >
  27. <template #toolbar="{ handlers, selectionVersion, canUndo, canRedo, undo, redo }">
  28. <EditorToolbar
  29. mode="bubble"
  30. :handlers="handlers"
  31. :selection-version="selectionVersion"
  32. :can-undo="canUndo"
  33. :can-redo="canRedo"
  34. :undo="undo"
  35. :redo="redo"
  36. />
  37. </template>
  38. </Editor>
  39. </div>
  40. </template>