@templatical/editor 0.10.1 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/{AiChatSidebar-Dz5bH1z3.js → AiChatSidebar-BMwpZx-6.js} +14 -14
  2. package/dist/{AiFeatureMenu-D2Xn0jFx.js → AiFeatureMenu-xgaIGUCo.js} +8 -8
  3. package/dist/{BlockIssueBadge-CnqD1cGo.js → BlockIssueBadge-3kNs6WoD.js} +5 -5
  4. package/dist/{CloudEditor-BizZwsfD.js → CloudEditor-Dm9hiaui.js} +21 -21
  5. package/dist/{CollaboratorBar-Bn2JDu6l.js → CollaboratorBar-Cz_evoU4.js} +4 -4
  6. package/dist/{CommentsSidebar-BAG6rdVC.js → CommentsSidebar-jFZj_CTo.js} +13 -13
  7. package/dist/{CountdownBlock-B_Hr9Bm9.js → CountdownBlock-S-SCyVye.js} +4 -4
  8. package/dist/{CountdownToolbar-DaqDLKLk.js → CountdownToolbar-Ckdo-3P-.js} +3 -3
  9. package/dist/{DesignReferenceSidebar-I9LWjvrj.js → DesignReferenceSidebar-B9QNPZNV.js} +10 -10
  10. package/dist/{IssuesPanel-B32Ifp4x.js → IssuesPanel-_E_fbSM8.js} +8 -8
  11. package/dist/{LoadingTrack-UTqOUN4O.js → LoadingTrack-BZ5KJyZ_.js} +2 -2
  12. package/dist/{ModuleBrowserModal-DodRped1.js → ModuleBrowserModal-BB22urqi.js} +10 -10
  13. package/dist/{ModulePreviewCanvas-DhcnddJF.js → ModulePreviewCanvas-CH5OdXv8.js} +3 -3
  14. package/dist/{NumberWithSuffix-DB7GyyCI.js → NumberWithSuffix-BHDXHMpo.js} +3 -3
  15. package/dist/{ParagraphEditor-pJA9BHAL.js → ParagraphEditor-BmY7LLgN.js} +24 -24
  16. package/dist/{RichTextEditorContent-dTGSUff_.js → RichTextEditorContent-COijbaWp.js} +8 -8
  17. package/dist/{SaveModuleDialog-D634e99d.js → SaveModuleDialog-D5WN-je_.js} +7 -7
  18. package/dist/{SnapshotHistory-m_nGAHlb.js → SnapshotHistory-BQ55Rhri.js} +9 -9
  19. package/dist/{TemplateScoringPanel-BOQh9neV.js → TemplateScoringPanel-Dhf_Qgr7.js} +15 -15
  20. package/dist/{TestEmailModal-DOcwoKkc.js → TestEmailModal-DH_Viz_m.js} +5 -5
  21. package/dist/{TitleEditor-t6JMWamY.js → TitleEditor-Dn613K8o.js} +12 -12
  22. package/dist/{TplModal-BAtbfDB0.js → TplModal-Dxa3rhHI.js} +4 -4
  23. package/dist/{blockTypeIcons-C4lXx3Au.js → blockTypeIcons-CrcSCTD6.js} +2 -2
  24. package/dist/bundle-stats.json +6 -6
  25. package/dist/cdn/chunks/{AiFeatureMenu-BeOyHAoZ.js → AiFeatureMenu-CCsgxyN9.js} +4 -4
  26. package/dist/cdn/chunks/{AiFeatureMenu-BeOyHAoZ.js.map → AiFeatureMenu-CCsgxyN9.js.map} +1 -1
  27. package/dist/cdn/chunks/{BlockIssueBadge-C6YilQdl.js → BlockIssueBadge-Lc3NWFV8.js} +3 -3
  28. package/dist/cdn/chunks/{BlockIssueBadge-C6YilQdl.js.map → BlockIssueBadge-Lc3NWFV8.js.map} +1 -1
  29. package/dist/cdn/chunks/{CloudEditor-DEA37rdW.js → CloudEditor-KkwvBhyt.js} +123 -123
  30. package/dist/cdn/chunks/{CloudEditor-DEA37rdW.js.map → CloudEditor-KkwvBhyt.js.map} +1 -1
  31. package/dist/cdn/chunks/{CollaboratorBar-CKW7jOW4.js → CollaboratorBar-BGIGiFSm.js} +4 -4
  32. package/dist/cdn/chunks/{CollaboratorBar-CKW7jOW4.js.map → CollaboratorBar-BGIGiFSm.js.map} +1 -1
  33. package/dist/cdn/chunks/{CountdownBlock-DU9ga9Ki.js → CountdownBlock-gqnpxKp_.js} +4 -4
  34. package/dist/cdn/chunks/{CountdownBlock-DU9ga9Ki.js.map → CountdownBlock-gqnpxKp_.js.map} +1 -1
  35. package/dist/cdn/chunks/{CountdownToolbar-BHWsxth7.js → CountdownToolbar-xHpaWQE2.js} +4 -4
  36. package/dist/cdn/chunks/{CountdownToolbar-BHWsxth7.js.map → CountdownToolbar-xHpaWQE2.js.map} +1 -1
  37. package/dist/cdn/chunks/{IssuesPanel-BkYhij39.js → IssuesPanel-DHTTHu65.js} +4 -4
  38. package/dist/cdn/chunks/{IssuesPanel-BkYhij39.js.map → IssuesPanel-DHTTHu65.js.map} +1 -1
  39. package/dist/cdn/chunks/{ModuleBrowserModal-D51w942J.js → ModuleBrowserModal-DDTjrKph.js} +6 -6
  40. package/dist/cdn/chunks/{ModuleBrowserModal-D51w942J.js.map → ModuleBrowserModal-DDTjrKph.js.map} +1 -1
  41. package/dist/cdn/chunks/{ModulePreviewCanvas-BqTqcKHS.js → ModulePreviewCanvas-DeFq0hVi.js} +3 -3
  42. package/dist/cdn/chunks/{ModulePreviewCanvas-BqTqcKHS.js.map → ModulePreviewCanvas-DeFq0hVi.js.map} +1 -1
  43. package/dist/cdn/chunks/{NumberWithSuffix-DuUcF2zG.js → NumberWithSuffix-D4wtmU9O.js} +3 -3
  44. package/dist/cdn/chunks/{NumberWithSuffix-DuUcF2zG.js.map → NumberWithSuffix-D4wtmU9O.js.map} +1 -1
  45. package/dist/cdn/chunks/{ParagraphEditor-Bqjn3ZNm.js → ParagraphEditor-CwY8GeWa.js} +18 -18
  46. package/dist/cdn/chunks/{ParagraphEditor-Bqjn3ZNm.js.map → ParagraphEditor-CwY8GeWa.js.map} +1 -1
  47. package/dist/cdn/chunks/{RichTextEditorContent-mIkkb5EK.js → RichTextEditorContent-C_bMURGF.js} +5 -5
  48. package/dist/cdn/chunks/{RichTextEditorContent-mIkkb5EK.js.map → RichTextEditorContent-C_bMURGF.js.map} +1 -1
  49. package/dist/cdn/chunks/{SaveModuleDialog-Felfmkcj.js → SaveModuleDialog-DEi8PSP6.js} +3 -3
  50. package/dist/cdn/chunks/{SaveModuleDialog-Felfmkcj.js.map → SaveModuleDialog-DEi8PSP6.js.map} +1 -1
  51. package/dist/cdn/chunks/{TitleEditor-Dcldr8D6.js → TitleEditor-Betpo8AZ.js} +9 -9
  52. package/dist/cdn/chunks/{TitleEditor-Dcldr8D6.js.map → TitleEditor-Betpo8AZ.js.map} +1 -1
  53. package/dist/cdn/chunks/{blockTypeIcons-D05Wqf5u.js → blockTypeIcons-Xz6OBq3U.js} +3 -3
  54. package/dist/cdn/chunks/{blockTypeIcons-D05Wqf5u.js.map → blockTypeIcons-Xz6OBq3U.js.map} +1 -1
  55. package/dist/cdn/chunks/{draggable-J_1CPXYc.js → draggable-BTGr7_-X.js} +19 -19
  56. package/dist/cdn/chunks/{draggable-J_1CPXYc.js.map → draggable-BTGr7_-X.js.map} +1 -1
  57. package/dist/cdn/chunks/{extensions-CNmpC18A.js → extensions-D_j4UWxi.js} +4 -4
  58. package/dist/cdn/chunks/{extensions-CNmpC18A.js.map → extensions-D_j4UWxi.js.map} +1 -1
  59. package/dist/cdn/chunks/{features-_ar9QbVv.js → features-A28DQtjE.js} +815 -810
  60. package/dist/cdn/chunks/features-A28DQtjE.js.map +1 -0
  61. package/dist/cdn/chunks/{icons-CnwCLJX-.js → icons-C9D3N0-J.js} +2 -2
  62. package/dist/cdn/chunks/{icons-CnwCLJX-.js.map → icons-C9D3N0-J.js.map} +1 -1
  63. package/dist/cdn/chunks/{liquid.browser-rMoPo2t_.js → liquid.browser-DUDc3U21.js} +10 -10
  64. package/dist/cdn/chunks/{liquid.browser-rMoPo2t_.js.map → liquid.browser-DUDc3U21.js.map} +1 -1
  65. package/dist/cdn/chunks/{media-library-9jyt7Bf9.js → media-library-CH1Wx5wP.js} +7 -7
  66. package/dist/cdn/chunks/{media-library-9jyt7Bf9.js.map → media-library-CH1Wx5wP.js.map} +1 -1
  67. package/dist/cdn/chunks/pusher-CHo5Cua0.js.map +1 -1
  68. package/dist/cdn/chunks/{quality-CO9mj_RH.js → quality-D4NeyFej.js} +530 -530
  69. package/dist/cdn/chunks/{quality-CO9mj_RH.js.map → quality-D4NeyFej.js.map} +1 -1
  70. package/dist/cdn/chunks/{renderer-m6XTCWCL.js → renderer-BQnGfLhL.js} +16 -16
  71. package/dist/cdn/chunks/{renderer-m6XTCWCL.js.map → renderer-BQnGfLhL.js.map} +1 -1
  72. package/dist/cdn/chunks/{src-DfMSYqvE.js → src-BkKEyLw1.js} +6 -6
  73. package/dist/cdn/chunks/{src-DfMSYqvE.js.map → src-BkKEyLw1.js.map} +1 -1
  74. package/dist/cdn/chunks/{styles-1uFWdD5T.js → styles-BDVaiw3K.js} +142 -142
  75. package/dist/cdn/chunks/{styles-1uFWdD5T.js.map → styles-BDVaiw3K.js.map} +1 -1
  76. package/dist/cdn/chunks/{tiptap-CJbIm_hE.js → tiptap-P5abGB13.js} +4434 -2577
  77. package/dist/cdn/chunks/tiptap-P5abGB13.js.map +1 -0
  78. package/dist/cdn/editor.js +100 -100
  79. package/dist/cdn/editor.js.map +1 -1
  80. package/dist/{check-Bs6_uQpm.js → check-KooI2jyS.js} +1 -1
  81. package/dist/{chevron-down-so1rnGwF.js → chevron-down-mnlFgueW.js} +1 -1
  82. package/dist/{circle-alert-CrKv0AuW.js → circle-alert-D89_hB8j.js} +1 -1
  83. package/dist/{clock-Cpx6GYpa.js → clock-BaadyUrg.js} +1 -1
  84. package/dist/{cloud-bHhCNRZa.js → cloud-D-FScaHx.js} +2 -2
  85. package/dist/{createLucideIcon-DFBxEm5K.js → createLucideIcon-D-6fpD2L.js} +1 -1
  86. package/dist/{dist-DwEpKyry.js → dist-BttO3Zdx.js} +44 -44
  87. package/dist/{dist-CMkZaqX1.js → dist-C1WcikEF.js} +5 -5
  88. package/dist/dist-CjULgTep.js +4072 -0
  89. package/dist/{dist-BufRk8ZY.js → dist-D6L_WdRL.js} +95 -85
  90. package/dist/{dist-DJ5YJLXn.js → dist-DaajG7Fo.js} +5 -5
  91. package/dist/dist-Df4eV6Zi.js +5 -0
  92. package/dist/{dist-BejBMbBX.js → dist-Dnqx5UF3.js} +171 -158
  93. package/dist/{dist-CIK3BYgh.js → dist-Drp5bNAu.js} +5 -5
  94. package/dist/dist-WJ1fVd5b.js +5 -0
  95. package/dist/{dist-CoaWXQ7N.js → dist-XA2i70J5.js} +8 -8
  96. package/dist/{dist-74n2Mqc6.js → dist-b52vYHb5.js} +2 -2
  97. package/dist/{dist-2-A7SaKm.js → dist-cl33Ip6W.js} +1 -1
  98. package/dist/{dist-0RguD1vS.js → dist-sqf7pq5q.js} +16 -16
  99. package/dist/{dist-B3CcePtK.js → dist-zInT3Lf6.js} +75 -57
  100. package/dist/{extensions-C810eSzv.js → extensions-DA-w1gVg.js} +29 -29
  101. package/dist/{image-up-kMLE5GsI.js → image-up-DjwfAom6.js} +1 -1
  102. package/dist/{info-xqRxLfNz.js → info-Db3HlTr8.js} +1 -1
  103. package/dist/{keys-BoYBr3PU.js → keys-BjmL5YCT.js} +1 -1
  104. package/dist/{liquid.browser-IgQrXHPQ.js → liquid.browser--qtl1Fqy.js} +9 -9
  105. package/dist/{list-checks-C81htkBJ.js → list-checks-BlAB0X8a.js} +1 -1
  106. package/dist/{loader-circle-C6cZPIum.js → loader-circle-EVqyIxjU.js} +1 -1
  107. package/dist/{message-circle-dqOBRe07.js → message-circle-BuI5pBVG.js} +1 -1
  108. package/dist/{refresh-cw-DCjNd6o0.js → refresh-cw-C2vM_6zQ.js} +1 -1
  109. package/dist/{scan-line-DXz0nZVJ.js → scan-line-AUIh_SHI.js} +1 -1
  110. package/dist/{send-C4uH_WaI.js → send-nrbwF7xg.js} +1 -1
  111. package/dist/{shield-check-B3U68ssA.js → shield-check-B55Ozmva.js} +1 -1
  112. package/dist/{sparkles-CsDweGUy.js → sparkles-oh1NUSFq.js} +1 -1
  113. package/dist/{styles-CBlNpqL9.js → styles-Byhh107n.js} +33 -33
  114. package/dist/templatical-editor.js +81 -80
  115. package/dist/{text-align-start-BkKQePFp.js → text-align-start-B2MqzZwU.js} +1 -1
  116. package/dist/{trash-2-BIOkaEz1.js → trash-2-DH8RBwAx.js} +1 -1
  117. package/dist/{triangle-alert-Bbgu6uUG.js → triangle-alert-BQHjCt3B.js} +1 -1
  118. package/dist/{useAliveFlag-Bc99FWyR.js → useAliveFlag-B_b9ubwD.js} +1 -1
  119. package/dist/{useCloudI18n-DiwsLi6z.js → useCloudI18n-BHCrmQgj.js} +2 -2
  120. package/dist/{useEditorCore-7c1QpPlw.js → useEditorCore-BEgc3KFu.js} +368 -375
  121. package/dist/{useI18n-DskZMfRJ.js → useI18n-Bb9-ha9X.js} +2 -2
  122. package/dist/{useMergeTag-Co4xYwG6.js → useMergeTag-HykzEtBn.js} +3 -3
  123. package/dist/usePopoverRoot-BZDkRRry.js +8 -0
  124. package/dist/{vue.runtime.esm-bundler-D0Hg03Ub.js → vue.runtime.esm-bundler-MzYCkFSH.js} +18 -18
  125. package/dist/{x-DWU6NCuE.js → x-DgCCENgP.js} +1 -1
  126. package/package.json +25 -25
  127. package/dist/cdn/chunks/features-_ar9QbVv.js.map +0 -1
  128. package/dist/cdn/chunks/tiptap-CJbIm_hE.js.map +0 -1
  129. package/dist/dist-Bvje_Tqb.js +0 -5
  130. package/dist/dist-BxHa6kIT.js +0 -2243
  131. package/dist/dist-D1YvgM6p.js +0 -5
  132. package/dist/usePopoverRoot-DYH_gX8o.js +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"TitleEditor-Dcldr8D6.js","names":[],"sources":["../../../src/components/blocks/TitleEditor.vue","../../../src/components/blocks/TitleEditor.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useI18n } from \"../../composables\";\nimport { useRichTextEditor } from \"../../composables/useRichTextEditor\";\nimport { usePopoverRoot } from \"../../composables/usePopoverRoot\";\nimport type { TitleBlock as TitleBlockType } from \"@templatical/types\";\nimport { Bold, Italic, Link, LoaderCircle, ScanLine } from \"@lucide/vue\";\nimport { computed, inject } from \"vue\";\nimport {\n THEME_STYLES_KEY,\n UI_THEME_KEY,\n MERGE_TAG_PICKER_KEY,\n} from \"../../keys\";\nimport RichTextLinkDialog from \"./RichTextLinkDialog.vue\";\nimport RichTextEditorContent from \"./RichTextEditorContent.vue\";\n\nconst props = defineProps<{\n block: TitleBlockType;\n toolbarPosition: { top: number; left: number };\n}>();\n\nconst emit = defineEmits<{\n (e: \"done\"): void;\n}>();\n\nconst themeStyles = inject(THEME_STYLES_KEY, null);\nconst tplUiTheme = inject(UI_THEME_KEY, null);\nconst popoverRoot = usePopoverRoot();\n// Hide the floating toolbar while the built-in merge tag picker modal is\n// open — see ParagraphToolbar.vue for the same rationale.\nconst picker = inject(MERGE_TAG_PICKER_KEY, null);\nconst pickerIsOpen = computed(() => picker?.isOpen.value ?? false);\n\nconst { t } = useI18n();\n\nconst {\n editor,\n EditorContent,\n isLoading,\n initError,\n retry,\n showLinkDialog,\n linkUrl,\n linkDialogRef,\n canRequestMergeTag,\n openLinkDialog,\n insertLink,\n removeLink,\n closeLinkDialog,\n handleLinkKeydown,\n handleAddMergeTag,\n} = useRichTextEditor({\n blockId: () => props.block.id,\n blockContent: () => props.block.content,\n onDone: () => emit(\"done\"),\n editorName: \"TitleEditor\",\n async loadExtensions({\n mergeTags,\n syntax,\n triggerChar,\n autocompleteEnabled,\n suggestionEmptyText,\n }) {\n const [\n { Editor: TiptapEditor, EditorContent: EC },\n { default: StarterKit },\n { default: LinkExt },\n { MergeTagNode, MergeTagSuggestion, LogicMergeTagNode },\n ] = await Promise.all([\n import(\"@tiptap/vue-3\"),\n import(\"@tiptap/starter-kit\"),\n import(\"@tiptap/extension-link\"),\n import(\"../../extensions\"),\n ]);\n\n return {\n TiptapEditor,\n EC,\n extensions: [\n StarterKit.configure({\n heading: false,\n codeBlock: false,\n blockquote: false,\n horizontalRule: false,\n bulletList: false,\n orderedList: false,\n listItem: false,\n strike: false,\n }),\n LinkExt.configure({\n openOnClick: false,\n HTMLAttributes: {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n },\n }),\n MergeTagNode.configure({ mergeTags, syntax }),\n LogicMergeTagNode.configure({ syntax }),\n ...(autocompleteEnabled && triggerChar && mergeTags.length > 0\n ? [\n MergeTagSuggestion.configure({\n mergeTags,\n char: triggerChar,\n emptyText: suggestionEmptyText,\n popoverRoot,\n }),\n ]\n : []),\n ],\n };\n },\n});\n</script>\n\n<template>\n <div class=\"tpl-text-editor-wrapper tpl:relative\">\n <Teleport v-if=\"popoverRoot && !pickerIsOpen\" :to=\"popoverRoot\">\n <div\n :data-tpl-theme=\"tplUiTheme\"\n role=\"toolbar\"\n :aria-label=\"t.titleEditor.toolbar\"\n class=\"tpl tpl-text-toolbar tpl:fixed tpl:z-popover tpl:flex tpl:items-center tpl:gap-1 tpl:rounded-lg tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-2 tpl:shadow-lg\"\n :style=\"{\n ...themeStyles,\n top: `${toolbarPosition.top}px`,\n left: `${toolbarPosition.left}px`,\n transform: 'translateY(-100%)',\n }\"\n >\n <template v-if=\"!isLoading && editor\">\n <!-- Bold -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('bold'),\n }\"\n :aria-label=\"t.titleEditor.bold\"\n :title=\"t.titleEditor.bold\"\n @click=\"editor?.chain().focus().toggleBold().run()\"\n >\n <Bold :size=\"16\" :stroke-width=\"2.5\" />\n </button>\n <!-- Italic -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('italic'),\n }\"\n :aria-label=\"t.titleEditor.italic\"\n :title=\"t.titleEditor.italic\"\n @click=\"editor?.chain().focus().toggleItalic().run()\"\n >\n <Italic :size=\"16\" :stroke-width=\"2\" />\n </button>\n <span\n class=\"tpl:mx-1.5 tpl:h-6 tpl:w-px tpl:bg-[var(--tpl-border)]\"\n aria-hidden=\"true\"\n ></span>\n <!-- Link -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('link'),\n }\"\n :aria-label=\"t.titleEditor.addLink\"\n :title=\"t.titleEditor.addLink\"\n @click=\"openLinkDialog\"\n >\n <Link :size=\"16\" :stroke-width=\"2\" />\n </button>\n <!-- Add Merge Tag -->\n <span\n v-if=\"canRequestMergeTag\"\n class=\"tpl:mx-1.5 tpl:h-6 tpl:w-px tpl:bg-[var(--tpl-border)]\"\n ></span>\n <button\n v-if=\"canRequestMergeTag\"\n type=\"button\"\n class=\"tpl:flex tpl:h-8 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-2.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)] tpl:transition-all tpl:duration-150 tpl:hover:bg-[var(--tpl-bg-active)]\"\n :aria-label=\"t.mergeTag.insert\"\n :title=\"t.mergeTag.insert\"\n @click=\"handleAddMergeTag\"\n >\n <ScanLine :size=\"16\" :stroke-width=\"2\" />\n {{ t.mergeTag.insert }}\n </button>\n </template>\n <template v-else>\n <div\n class=\"tpl:flex tpl:items-center tpl:gap-2 tpl:px-2 tpl:text-xs tpl:text-[var(--tpl-text-dim)]\"\n >\n <LoaderCircle class=\"tpl-spinner\" :size=\"14\" :stroke-width=\"2\" />\n {{ t.errors.editorLoading }}\n </div>\n </template>\n </div>\n </Teleport>\n\n <RichTextEditorContent\n :editor=\"editor\"\n :editor-content=\"EditorContent\"\n :is-loading=\"isLoading\"\n :init-error=\"initError\"\n @retry=\"retry\"\n />\n\n <RichTextLinkDialog\n :visible=\"showLinkDialog\"\n :is-editing-link=\"editor?.isActive('link') ?? false\"\n v-model:dialog-ref=\"linkDialogRef\"\n v-model:link-url=\"linkUrl\"\n @close=\"closeLinkDialog\"\n @insert=\"insertLink\"\n @remove=\"removeLink\"\n @keydown=\"handleLinkKeydown\"\n />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { useI18n } from \"../../composables\";\nimport { useRichTextEditor } from \"../../composables/useRichTextEditor\";\nimport { usePopoverRoot } from \"../../composables/usePopoverRoot\";\nimport type { TitleBlock as TitleBlockType } from \"@templatical/types\";\nimport { Bold, Italic, Link, LoaderCircle, ScanLine } from \"@lucide/vue\";\nimport { computed, inject } from \"vue\";\nimport {\n THEME_STYLES_KEY,\n UI_THEME_KEY,\n MERGE_TAG_PICKER_KEY,\n} from \"../../keys\";\nimport RichTextLinkDialog from \"./RichTextLinkDialog.vue\";\nimport RichTextEditorContent from \"./RichTextEditorContent.vue\";\n\nconst props = defineProps<{\n block: TitleBlockType;\n toolbarPosition: { top: number; left: number };\n}>();\n\nconst emit = defineEmits<{\n (e: \"done\"): void;\n}>();\n\nconst themeStyles = inject(THEME_STYLES_KEY, null);\nconst tplUiTheme = inject(UI_THEME_KEY, null);\nconst popoverRoot = usePopoverRoot();\n// Hide the floating toolbar while the built-in merge tag picker modal is\n// open — see ParagraphToolbar.vue for the same rationale.\nconst picker = inject(MERGE_TAG_PICKER_KEY, null);\nconst pickerIsOpen = computed(() => picker?.isOpen.value ?? false);\n\nconst { t } = useI18n();\n\nconst {\n editor,\n EditorContent,\n isLoading,\n initError,\n retry,\n showLinkDialog,\n linkUrl,\n linkDialogRef,\n canRequestMergeTag,\n openLinkDialog,\n insertLink,\n removeLink,\n closeLinkDialog,\n handleLinkKeydown,\n handleAddMergeTag,\n} = useRichTextEditor({\n blockId: () => props.block.id,\n blockContent: () => props.block.content,\n onDone: () => emit(\"done\"),\n editorName: \"TitleEditor\",\n async loadExtensions({\n mergeTags,\n syntax,\n triggerChar,\n autocompleteEnabled,\n suggestionEmptyText,\n }) {\n const [\n { Editor: TiptapEditor, EditorContent: EC },\n { default: StarterKit },\n { default: LinkExt },\n { MergeTagNode, MergeTagSuggestion, LogicMergeTagNode },\n ] = await Promise.all([\n import(\"@tiptap/vue-3\"),\n import(\"@tiptap/starter-kit\"),\n import(\"@tiptap/extension-link\"),\n import(\"../../extensions\"),\n ]);\n\n return {\n TiptapEditor,\n EC,\n extensions: [\n StarterKit.configure({\n heading: false,\n codeBlock: false,\n blockquote: false,\n horizontalRule: false,\n bulletList: false,\n orderedList: false,\n listItem: false,\n strike: false,\n }),\n LinkExt.configure({\n openOnClick: false,\n HTMLAttributes: {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n },\n }),\n MergeTagNode.configure({ mergeTags, syntax }),\n LogicMergeTagNode.configure({ syntax }),\n ...(autocompleteEnabled && triggerChar && mergeTags.length > 0\n ? [\n MergeTagSuggestion.configure({\n mergeTags,\n char: triggerChar,\n emptyText: suggestionEmptyText,\n popoverRoot,\n }),\n ]\n : []),\n ],\n };\n },\n});\n</script>\n\n<template>\n <div class=\"tpl-text-editor-wrapper tpl:relative\">\n <Teleport v-if=\"popoverRoot && !pickerIsOpen\" :to=\"popoverRoot\">\n <div\n :data-tpl-theme=\"tplUiTheme\"\n role=\"toolbar\"\n :aria-label=\"t.titleEditor.toolbar\"\n class=\"tpl tpl-text-toolbar tpl:fixed tpl:z-popover tpl:flex tpl:items-center tpl:gap-1 tpl:rounded-lg tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-2 tpl:shadow-lg\"\n :style=\"{\n ...themeStyles,\n top: `${toolbarPosition.top}px`,\n left: `${toolbarPosition.left}px`,\n transform: 'translateY(-100%)',\n }\"\n >\n <template v-if=\"!isLoading && editor\">\n <!-- Bold -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('bold'),\n }\"\n :aria-label=\"t.titleEditor.bold\"\n :title=\"t.titleEditor.bold\"\n @click=\"editor?.chain().focus().toggleBold().run()\"\n >\n <Bold :size=\"16\" :stroke-width=\"2.5\" />\n </button>\n <!-- Italic -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('italic'),\n }\"\n :aria-label=\"t.titleEditor.italic\"\n :title=\"t.titleEditor.italic\"\n @click=\"editor?.chain().focus().toggleItalic().run()\"\n >\n <Italic :size=\"16\" :stroke-width=\"2\" />\n </button>\n <span\n class=\"tpl:mx-1.5 tpl:h-6 tpl:w-px tpl:bg-[var(--tpl-border)]\"\n aria-hidden=\"true\"\n ></span>\n <!-- Link -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('link'),\n }\"\n :aria-label=\"t.titleEditor.addLink\"\n :title=\"t.titleEditor.addLink\"\n @click=\"openLinkDialog\"\n >\n <Link :size=\"16\" :stroke-width=\"2\" />\n </button>\n <!-- Add Merge Tag -->\n <span\n v-if=\"canRequestMergeTag\"\n class=\"tpl:mx-1.5 tpl:h-6 tpl:w-px tpl:bg-[var(--tpl-border)]\"\n ></span>\n <button\n v-if=\"canRequestMergeTag\"\n type=\"button\"\n class=\"tpl:flex tpl:h-8 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-2.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)] tpl:transition-all tpl:duration-150 tpl:hover:bg-[var(--tpl-bg-active)]\"\n :aria-label=\"t.mergeTag.insert\"\n :title=\"t.mergeTag.insert\"\n @click=\"handleAddMergeTag\"\n >\n <ScanLine :size=\"16\" :stroke-width=\"2\" />\n {{ t.mergeTag.insert }}\n </button>\n </template>\n <template v-else>\n <div\n class=\"tpl:flex tpl:items-center tpl:gap-2 tpl:px-2 tpl:text-xs tpl:text-[var(--tpl-text-dim)]\"\n >\n <LoaderCircle class=\"tpl-spinner\" :size=\"14\" :stroke-width=\"2\" />\n {{ t.errors.editorLoading }}\n </div>\n </template>\n </div>\n </Teleport>\n\n <RichTextEditorContent\n :editor=\"editor\"\n :editor-content=\"EditorContent\"\n :is-loading=\"isLoading\"\n :init-error=\"initError\"\n @retry=\"retry\"\n />\n\n <RichTextLinkDialog\n :visible=\"showLinkDialog\"\n :is-editing-link=\"editor?.isActive('link') ?? false\"\n v-model:dialog-ref=\"linkDialogRef\"\n v-model:link-url=\"linkUrl\"\n @close=\"closeLinkDialog\"\n @insert=\"insertLink\"\n @remove=\"removeLink\"\n @keydown=\"handleLinkKeydown\"\n />\n </div>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"TitleEditor-Betpo8AZ.js","names":[],"sources":["../../../src/components/blocks/TitleEditor.vue","../../../src/components/blocks/TitleEditor.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useI18n } from \"../../composables\";\nimport { useRichTextEditor } from \"../../composables/useRichTextEditor\";\nimport { usePopoverRoot } from \"../../composables/usePopoverRoot\";\nimport type { TitleBlock as TitleBlockType } from \"@templatical/types\";\nimport { Bold, Italic, Link, LoaderCircle, ScanLine } from \"@lucide/vue\";\nimport { computed, inject } from \"vue\";\nimport {\n THEME_STYLES_KEY,\n UI_THEME_KEY,\n MERGE_TAG_PICKER_KEY,\n} from \"../../keys\";\nimport RichTextLinkDialog from \"./RichTextLinkDialog.vue\";\nimport RichTextEditorContent from \"./RichTextEditorContent.vue\";\n\nconst props = defineProps<{\n block: TitleBlockType;\n toolbarPosition: { top: number; left: number };\n}>();\n\nconst emit = defineEmits<{\n (e: \"done\"): void;\n}>();\n\nconst themeStyles = inject(THEME_STYLES_KEY, null);\nconst tplUiTheme = inject(UI_THEME_KEY, null);\nconst popoverRoot = usePopoverRoot();\n// Hide the floating toolbar while the built-in merge tag picker modal is\n// open — see ParagraphToolbar.vue for the same rationale.\nconst picker = inject(MERGE_TAG_PICKER_KEY, null);\nconst pickerIsOpen = computed(() => picker?.isOpen.value ?? false);\n\nconst { t } = useI18n();\n\nconst {\n editor,\n EditorContent,\n isLoading,\n initError,\n retry,\n showLinkDialog,\n linkUrl,\n linkDialogRef,\n canRequestMergeTag,\n openLinkDialog,\n insertLink,\n removeLink,\n closeLinkDialog,\n handleLinkKeydown,\n handleAddMergeTag,\n} = useRichTextEditor({\n blockId: () => props.block.id,\n blockContent: () => props.block.content,\n onDone: () => emit(\"done\"),\n editorName: \"TitleEditor\",\n async loadExtensions({\n mergeTags,\n syntax,\n triggerChar,\n autocompleteEnabled,\n suggestionEmptyText,\n }) {\n const [\n { Editor: TiptapEditor, EditorContent: EC },\n { default: StarterKit },\n { default: LinkExt },\n { MergeTagNode, MergeTagSuggestion, LogicMergeTagNode },\n ] = await Promise.all([\n import(\"@tiptap/vue-3\"),\n import(\"@tiptap/starter-kit\"),\n import(\"@tiptap/extension-link\"),\n import(\"../../extensions\"),\n ]);\n\n return {\n TiptapEditor,\n EC,\n extensions: [\n StarterKit.configure({\n heading: false,\n codeBlock: false,\n blockquote: false,\n horizontalRule: false,\n bulletList: false,\n orderedList: false,\n listItem: false,\n strike: false,\n }),\n LinkExt.configure({\n openOnClick: false,\n HTMLAttributes: {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n },\n }),\n MergeTagNode.configure({ mergeTags, syntax }),\n LogicMergeTagNode.configure({ syntax }),\n ...(autocompleteEnabled && triggerChar && mergeTags.length > 0\n ? [\n MergeTagSuggestion.configure({\n mergeTags,\n char: triggerChar,\n emptyText: suggestionEmptyText,\n popoverRoot,\n }),\n ]\n : []),\n ],\n };\n },\n});\n</script>\n\n<template>\n <div class=\"tpl-text-editor-wrapper tpl:relative\">\n <Teleport v-if=\"popoverRoot && !pickerIsOpen\" :to=\"popoverRoot\">\n <div\n :data-tpl-theme=\"tplUiTheme\"\n role=\"toolbar\"\n :aria-label=\"t.titleEditor.toolbar\"\n class=\"tpl tpl-text-toolbar tpl:fixed tpl:z-popover tpl:flex tpl:items-center tpl:gap-1 tpl:rounded-lg tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-2 tpl:shadow-lg\"\n :style=\"{\n ...themeStyles,\n top: `${toolbarPosition.top}px`,\n left: `${toolbarPosition.left}px`,\n transform: 'translateY(-100%)',\n }\"\n >\n <template v-if=\"!isLoading && editor\">\n <!-- Bold -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('bold'),\n }\"\n :aria-label=\"t.titleEditor.bold\"\n :title=\"t.titleEditor.bold\"\n @click=\"editor?.chain().focus().toggleBold().run()\"\n >\n <Bold :size=\"16\" :stroke-width=\"2.5\" />\n </button>\n <!-- Italic -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('italic'),\n }\"\n :aria-label=\"t.titleEditor.italic\"\n :title=\"t.titleEditor.italic\"\n @click=\"editor?.chain().focus().toggleItalic().run()\"\n >\n <Italic :size=\"16\" :stroke-width=\"2\" />\n </button>\n <span\n class=\"tpl:mx-1.5 tpl:h-6 tpl:w-px tpl:bg-[var(--tpl-border)]\"\n aria-hidden=\"true\"\n ></span>\n <!-- Link -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('link'),\n }\"\n :aria-label=\"t.titleEditor.addLink\"\n :title=\"t.titleEditor.addLink\"\n @click=\"openLinkDialog\"\n >\n <Link :size=\"16\" :stroke-width=\"2\" />\n </button>\n <!-- Add Merge Tag -->\n <span\n v-if=\"canRequestMergeTag\"\n class=\"tpl:mx-1.5 tpl:h-6 tpl:w-px tpl:bg-[var(--tpl-border)]\"\n ></span>\n <button\n v-if=\"canRequestMergeTag\"\n type=\"button\"\n class=\"tpl:flex tpl:h-8 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-2.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)] tpl:transition-all tpl:duration-150 tpl:hover:bg-[var(--tpl-bg-active)]\"\n :aria-label=\"t.mergeTag.insert\"\n :title=\"t.mergeTag.insert\"\n @click=\"handleAddMergeTag\"\n >\n <ScanLine :size=\"16\" :stroke-width=\"2\" />\n {{ t.mergeTag.insert }}\n </button>\n </template>\n <template v-else>\n <div\n class=\"tpl:flex tpl:items-center tpl:gap-2 tpl:px-2 tpl:text-xs tpl:text-[var(--tpl-text-dim)]\"\n >\n <LoaderCircle class=\"tpl-spinner\" :size=\"14\" :stroke-width=\"2\" />\n {{ t.errors.editorLoading }}\n </div>\n </template>\n </div>\n </Teleport>\n\n <RichTextEditorContent\n :editor=\"editor\"\n :editor-content=\"EditorContent\"\n :is-loading=\"isLoading\"\n :init-error=\"initError\"\n @retry=\"retry\"\n />\n\n <RichTextLinkDialog\n :visible=\"showLinkDialog\"\n :is-editing-link=\"editor?.isActive('link') ?? false\"\n v-model:dialog-ref=\"linkDialogRef\"\n v-model:link-url=\"linkUrl\"\n @close=\"closeLinkDialog\"\n @insert=\"insertLink\"\n @remove=\"removeLink\"\n @keydown=\"handleLinkKeydown\"\n />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { useI18n } from \"../../composables\";\nimport { useRichTextEditor } from \"../../composables/useRichTextEditor\";\nimport { usePopoverRoot } from \"../../composables/usePopoverRoot\";\nimport type { TitleBlock as TitleBlockType } from \"@templatical/types\";\nimport { Bold, Italic, Link, LoaderCircle, ScanLine } from \"@lucide/vue\";\nimport { computed, inject } from \"vue\";\nimport {\n THEME_STYLES_KEY,\n UI_THEME_KEY,\n MERGE_TAG_PICKER_KEY,\n} from \"../../keys\";\nimport RichTextLinkDialog from \"./RichTextLinkDialog.vue\";\nimport RichTextEditorContent from \"./RichTextEditorContent.vue\";\n\nconst props = defineProps<{\n block: TitleBlockType;\n toolbarPosition: { top: number; left: number };\n}>();\n\nconst emit = defineEmits<{\n (e: \"done\"): void;\n}>();\n\nconst themeStyles = inject(THEME_STYLES_KEY, null);\nconst tplUiTheme = inject(UI_THEME_KEY, null);\nconst popoverRoot = usePopoverRoot();\n// Hide the floating toolbar while the built-in merge tag picker modal is\n// open — see ParagraphToolbar.vue for the same rationale.\nconst picker = inject(MERGE_TAG_PICKER_KEY, null);\nconst pickerIsOpen = computed(() => picker?.isOpen.value ?? false);\n\nconst { t } = useI18n();\n\nconst {\n editor,\n EditorContent,\n isLoading,\n initError,\n retry,\n showLinkDialog,\n linkUrl,\n linkDialogRef,\n canRequestMergeTag,\n openLinkDialog,\n insertLink,\n removeLink,\n closeLinkDialog,\n handleLinkKeydown,\n handleAddMergeTag,\n} = useRichTextEditor({\n blockId: () => props.block.id,\n blockContent: () => props.block.content,\n onDone: () => emit(\"done\"),\n editorName: \"TitleEditor\",\n async loadExtensions({\n mergeTags,\n syntax,\n triggerChar,\n autocompleteEnabled,\n suggestionEmptyText,\n }) {\n const [\n { Editor: TiptapEditor, EditorContent: EC },\n { default: StarterKit },\n { default: LinkExt },\n { MergeTagNode, MergeTagSuggestion, LogicMergeTagNode },\n ] = await Promise.all([\n import(\"@tiptap/vue-3\"),\n import(\"@tiptap/starter-kit\"),\n import(\"@tiptap/extension-link\"),\n import(\"../../extensions\"),\n ]);\n\n return {\n TiptapEditor,\n EC,\n extensions: [\n StarterKit.configure({\n heading: false,\n codeBlock: false,\n blockquote: false,\n horizontalRule: false,\n bulletList: false,\n orderedList: false,\n listItem: false,\n strike: false,\n }),\n LinkExt.configure({\n openOnClick: false,\n HTMLAttributes: {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n },\n }),\n MergeTagNode.configure({ mergeTags, syntax }),\n LogicMergeTagNode.configure({ syntax }),\n ...(autocompleteEnabled && triggerChar && mergeTags.length > 0\n ? [\n MergeTagSuggestion.configure({\n mergeTags,\n char: triggerChar,\n emptyText: suggestionEmptyText,\n popoverRoot,\n }),\n ]\n : []),\n ],\n };\n },\n});\n</script>\n\n<template>\n <div class=\"tpl-text-editor-wrapper tpl:relative\">\n <Teleport v-if=\"popoverRoot && !pickerIsOpen\" :to=\"popoverRoot\">\n <div\n :data-tpl-theme=\"tplUiTheme\"\n role=\"toolbar\"\n :aria-label=\"t.titleEditor.toolbar\"\n class=\"tpl tpl-text-toolbar tpl:fixed tpl:z-popover tpl:flex tpl:items-center tpl:gap-1 tpl:rounded-lg tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-2 tpl:shadow-lg\"\n :style=\"{\n ...themeStyles,\n top: `${toolbarPosition.top}px`,\n left: `${toolbarPosition.left}px`,\n transform: 'translateY(-100%)',\n }\"\n >\n <template v-if=\"!isLoading && editor\">\n <!-- Bold -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('bold'),\n }\"\n :aria-label=\"t.titleEditor.bold\"\n :title=\"t.titleEditor.bold\"\n @click=\"editor?.chain().focus().toggleBold().run()\"\n >\n <Bold :size=\"16\" :stroke-width=\"2.5\" />\n </button>\n <!-- Italic -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('italic'),\n }\"\n :aria-label=\"t.titleEditor.italic\"\n :title=\"t.titleEditor.italic\"\n @click=\"editor?.chain().focus().toggleItalic().run()\"\n >\n <Italic :size=\"16\" :stroke-width=\"2\" />\n </button>\n <span\n class=\"tpl:mx-1.5 tpl:h-6 tpl:w-px tpl:bg-[var(--tpl-border)]\"\n aria-hidden=\"true\"\n ></span>\n <!-- Link -->\n <button\n type=\"button\"\n class=\"tpl-text-toolbar-btn\"\n :class=\"{\n 'tpl-text-toolbar-btn--active': editor?.isActive('link'),\n }\"\n :aria-label=\"t.titleEditor.addLink\"\n :title=\"t.titleEditor.addLink\"\n @click=\"openLinkDialog\"\n >\n <Link :size=\"16\" :stroke-width=\"2\" />\n </button>\n <!-- Add Merge Tag -->\n <span\n v-if=\"canRequestMergeTag\"\n class=\"tpl:mx-1.5 tpl:h-6 tpl:w-px tpl:bg-[var(--tpl-border)]\"\n ></span>\n <button\n v-if=\"canRequestMergeTag\"\n type=\"button\"\n class=\"tpl:flex tpl:h-8 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-2.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)] tpl:transition-all tpl:duration-150 tpl:hover:bg-[var(--tpl-bg-active)]\"\n :aria-label=\"t.mergeTag.insert\"\n :title=\"t.mergeTag.insert\"\n @click=\"handleAddMergeTag\"\n >\n <ScanLine :size=\"16\" :stroke-width=\"2\" />\n {{ t.mergeTag.insert }}\n </button>\n </template>\n <template v-else>\n <div\n class=\"tpl:flex tpl:items-center tpl:gap-2 tpl:px-2 tpl:text-xs tpl:text-[var(--tpl-text-dim)]\"\n >\n <LoaderCircle class=\"tpl-spinner\" :size=\"14\" :stroke-width=\"2\" />\n {{ t.errors.editorLoading }}\n </div>\n </template>\n </div>\n </Teleport>\n\n <RichTextEditorContent\n :editor=\"editor\"\n :editor-content=\"EditorContent\"\n :is-loading=\"isLoading\"\n :init-error=\"initError\"\n @retry=\"retry\"\n />\n\n <RichTextLinkDialog\n :visible=\"showLinkDialog\"\n :is-editing-link=\"editor?.isActive('link') ?? false\"\n v-model:dialog-ref=\"linkDialogRef\"\n v-model:link-url=\"linkUrl\"\n @close=\"closeLinkDialog\"\n @insert=\"insertLink\"\n @remove=\"removeLink\"\n @keydown=\"handleLinkKeydown\"\n />\n </div>\n</template>\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { Tt as e, bt as t, ft as n, gt as r, lt as i } from "./features-_ar9QbVv.js";
2
- import { D as a, E as o, J as s, P as c, U as l, a as u, j as d, w as f } from "./icons-CnwCLJX-.js";
1
+ import { Tt as e, bt as t, ft as n, gt as r, lt as i } from "./features-A28DQtjE.js";
2
+ import { D as a, E as o, J as s, P as c, U as l, a as u, j as d, w as f } from "./icons-C9D3N0-J.js";
3
3
  //#region src/utils/blockTypeIcons.ts
4
4
  var p = {
5
5
  section: s,
@@ -19,4 +19,4 @@ var p = {
19
19
  //#endregion
20
20
  export { p as t };
21
21
 
22
- //# sourceMappingURL=blockTypeIcons-D05Wqf5u.js.map
22
+ //# sourceMappingURL=blockTypeIcons-Xz6OBq3U.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blockTypeIcons-D05Wqf5u.js","names":[],"sources":["../../../src/utils/blockTypeIcons.ts"],"sourcesContent":["import {\n Code,\n Columns3,\n Heading,\n Image,\n Minus,\n MoveVertical,\n Navigation,\n Pilcrow,\n Play,\n RectangleHorizontal,\n Share2,\n Table,\n Timer,\n} from \"@lucide/vue\";\nimport type { Component } from \"vue\";\n\nexport const blockTypeIcons: Record<string, Component> = {\n section: Columns3,\n title: Heading,\n paragraph: Pilcrow,\n image: Image,\n button: RectangleHorizontal,\n divider: Minus,\n video: Play,\n social: Share2,\n menu: Navigation,\n table: Table,\n spacer: MoveVertical,\n countdown: Timer,\n html: Code,\n};\n"],"mappings":";;;AAiBA,IAAa,IAA4C;CACvD,SAAS;CACT,OAAO;CACP,WAAW;CACX,OAAO;CACP,QAAQ;CACR,SAAS;CACT,OAAO;CACP,QAAQ;CACR,MAAM;CACN,OAAO;CACP,QAAQ;CACR,WAAW;CACX,MAAM;AACR"}
1
+ {"version":3,"file":"blockTypeIcons-Xz6OBq3U.js","names":[],"sources":["../../../src/utils/blockTypeIcons.ts"],"sourcesContent":["import {\n Code,\n Columns3,\n Heading,\n Image,\n Minus,\n MoveVertical,\n Navigation,\n Pilcrow,\n Play,\n RectangleHorizontal,\n Share2,\n Table,\n Timer,\n} from \"@lucide/vue\";\nimport type { Component } from \"vue\";\n\nexport const blockTypeIcons: Record<string, Component> = {\n section: Columns3,\n title: Heading,\n paragraph: Pilcrow,\n image: Image,\n button: RectangleHorizontal,\n divider: Minus,\n video: Play,\n social: Share2,\n menu: Navigation,\n table: Table,\n spacer: MoveVertical,\n countdown: Timer,\n html: Code,\n};\n"],"mappings":";;;AAiBA,IAAa,IAA4C;CACvD,SAAS;CACT,OAAO;CACP,WAAW;CACX,OAAO;CACP,QAAQ;CACR,SAAS;CACT,OAAO;CACP,QAAQ;CACR,MAAM;CACN,OAAO;CACP,QAAQ;CACR,WAAW;CACX,MAAM;AACR"}
@@ -1,5 +1,5 @@
1
1
  //#region ../../node_modules/.pnpm/@vue+shared@3.5.35/node_modules/@vue/shared/dist/shared.esm-bundler.js
2
- /* @__NO_SIDE_EFFECTS__ */
2
+ // @__NO_SIDE_EFFECTS__
3
3
  function e(e) {
4
4
  let t = /* @__PURE__ */ Object.create(null);
5
5
  for (let n of e.split(",")) t[n] = 1;
@@ -682,19 +682,19 @@ function Lt(e) {
682
682
  default: return 0;
683
683
  }
684
684
  }
685
- /* @__NO_SIDE_EFFECTS__ */
685
+ // @__NO_SIDE_EFFECTS__
686
686
  function Rt(e) {
687
687
  return /* @__PURE__ */ Wt(e) ? e : Ht(e, !1, yt, kt, Nt);
688
688
  }
689
- /* @__NO_SIDE_EFFECTS__ */
689
+ // @__NO_SIDE_EFFECTS__
690
690
  function zt(e) {
691
691
  return Ht(e, !1, xt, At, Pt);
692
692
  }
693
- /* @__NO_SIDE_EFFECTS__ */
693
+ // @__NO_SIDE_EFFECTS__
694
694
  function Bt(e) {
695
695
  return Ht(e, !0, bt, jt, Ft);
696
696
  }
697
- /* @__NO_SIDE_EFFECTS__ */
697
+ // @__NO_SIDE_EFFECTS__
698
698
  function Vt(e) {
699
699
  return Ht(e, !0, St, Mt, It);
700
700
  }
@@ -707,23 +707,23 @@ function Ht(e, t, n, r, i) {
707
707
  let s = new Proxy(e, o === 2 ? r : n);
708
708
  return i.set(e, s), s;
709
709
  }
710
- /* @__NO_SIDE_EFFECTS__ */
710
+ // @__NO_SIDE_EFFECTS__
711
711
  function Ut(e) {
712
712
  return /* @__PURE__ */ Wt(e) ? /* @__PURE__ */ Ut(e.__v_raw) : !!(e && e.__v_isReactive);
713
713
  }
714
- /* @__NO_SIDE_EFFECTS__ */
714
+ // @__NO_SIDE_EFFECTS__
715
715
  function Wt(e) {
716
716
  return !!(e && e.__v_isReadonly);
717
717
  }
718
- /* @__NO_SIDE_EFFECTS__ */
718
+ // @__NO_SIDE_EFFECTS__
719
719
  function Gt(e) {
720
720
  return !!(e && e.__v_isShallow);
721
721
  }
722
- /* @__NO_SIDE_EFFECTS__ */
722
+ // @__NO_SIDE_EFFECTS__
723
723
  function Kt(e) {
724
724
  return e ? !!e.__v_raw : !1;
725
725
  }
726
- /* @__NO_SIDE_EFFECTS__ */
726
+ // @__NO_SIDE_EFFECTS__
727
727
  function P(e) {
728
728
  let t = e && e.__v_raw;
729
729
  return t ? /* @__PURE__ */ P(t) : e;
@@ -732,15 +732,15 @@ function qt(e) {
732
732
  return !u(e, "__v_skip") && Object.isExtensible(e) && A(e, "__v_skip", !0), e;
733
733
  }
734
734
  var Jt = (e) => v(e) ? /* @__PURE__ */ Rt(e) : e, Yt = (e) => v(e) ? /* @__PURE__ */ Bt(e) : e;
735
- /* @__NO_SIDE_EFFECTS__ */
735
+ // @__NO_SIDE_EFFECTS__
736
736
  function F(e) {
737
737
  return e ? e.__v_isRef === !0 : !1;
738
738
  }
739
- /* @__NO_SIDE_EFFECTS__ */
739
+ // @__NO_SIDE_EFFECTS__
740
740
  function Xt(e) {
741
741
  return Qt(e, !1);
742
742
  }
743
- /* @__NO_SIDE_EFFECTS__ */
743
+ // @__NO_SIDE_EFFECTS__
744
744
  function Zt(e) {
745
745
  return Qt(e, !0);
746
746
  }
@@ -794,7 +794,7 @@ var an = class {
794
794
  function on(e) {
795
795
  return new an(e);
796
796
  }
797
- /* @__NO_SIDE_EFFECTS__ */
797
+ // @__NO_SIDE_EFFECTS__
798
798
  function sn(e) {
799
799
  let t = d(e) ? Array(e.length) : {};
800
800
  for (let n in e) t[n] = dn(e, n);
@@ -834,7 +834,7 @@ var cn = class {
834
834
  return this._value = this._getter();
835
835
  }
836
836
  };
837
- /* @__NO_SIDE_EFFECTS__ */
837
+ // @__NO_SIDE_EFFECTS__
838
838
  function un(e, t, n) {
839
839
  return /* @__PURE__ */ F(e) ? e : h(e) ? new ln(e) : v(e) && arguments.length > 1 ? dn(e, t, n) : /* @__PURE__ */ Xt(e);
840
840
  }
@@ -856,7 +856,7 @@ var fn = class {
856
856
  this.setter && this.setter(e);
857
857
  }
858
858
  };
859
- /* @__NO_SIDE_EFFECTS__ */
859
+ // @__NO_SIDE_EFFECTS__
860
860
  function pn(e, t, n = !1) {
861
861
  let r, i;
862
862
  return h(e) ? r = e : (r = e.get, i = e.set), new fn(r, i, n);
@@ -1420,7 +1420,7 @@ function Ar(e, t = !1, n) {
1420
1420
  if (i > 1) for (let e = 0; e < r.length; e++) r[e].patchFlag = -2;
1421
1421
  return r;
1422
1422
  }
1423
- /* @__NO_SIDE_EFFECTS__ */
1423
+ // @__NO_SIDE_EFFECTS__
1424
1424
  function jr(e, t) {
1425
1425
  return h(e) ? /* @__PURE__ */ s({ name: e.name }, t, { setup: e }) : e;
1426
1426
  }
@@ -1498,7 +1498,7 @@ function Rr(e, t) {
1498
1498
  } else t(e);
1499
1499
  }
1500
1500
  var zr = (e) => !!e.type.__asyncLoader;
1501
- /* @__NO_SIDE_EFFECTS__ */
1501
+ // @__NO_SIDE_EFFECTS__
1502
1502
  function Br(e) {
1503
1503
  h(e) && (e = { loader: e });
1504
1504
  let { loader: t, loadingComponent: n, errorComponent: r, delay: i = 200, hydrate: a, timeout: o, suspensible: s = !0, onError: c } = e, l = null, u, d = 0, f = () => (d++, l = null, p()), p = () => {
@@ -4813,4 +4813,4 @@ var Vu = [
4813
4813
  //#endregion
4814
4814
  export { Zt as $, Xr as A, Xn as B, Eo as C, to as D, yi as E, fi as F, Ee as G, Un as H, oi as I, De as J, F as K, ci as L, Pa as M, Gn as N, jn as O, di as P, Vt as Q, zi as R, oo as S, Kn as T, pn as U, Hn as V, on as W, Bt as X, Rt as Y, Xt as Z, Xa as _, Rs as a, vn as at, Br as b, Gs as c, Se as ct, pr as d, P as et, To as f, za as g, Za as h, Ys as i, I as it, ei as j, $r as k, Us as l, Ba as m, Vo as n, tn as nt, Ls as o, me as ot, Ga as p, qt as q, Xs as r, en as rt, is as s, le as st, Hu as t, un as tt, ka as u, Ya as v, qn as w, jr as x, z as y, Qn as z };
4815
4815
 
4816
- //# sourceMappingURL=draggable-J_1CPXYc.js.map
4816
+ //# sourceMappingURL=draggable-BTGr7_-X.js.map