@templatical/editor 0.13.0 → 0.15.0

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 (178) hide show
  1. package/dist/{AiChatSidebar-B0-U5-sb.js → AiChatSidebar-BIKvYREk.js} +57 -56
  2. package/dist/{AiFeatureMenu-DxDwLS8B.js → AiFeatureMenu-QbD82crt.js} +23 -23
  3. package/dist/{BlockIssueBadge-C-EPqWsh.js → BlockIssueBadge-B3xVgMTh.js} +11 -11
  4. package/dist/CloudEditor-DptuSf7A.js +1234 -0
  5. package/dist/{CollaboratorBar-DgwjisX2.js → CollaboratorBar-DrA_K69w.js} +20 -20
  6. package/dist/{CommentsSidebar-CpRLN40c.js → CommentsSidebar-D_tSGvTX.js} +158 -157
  7. package/dist/CountdownBlock-apiYUhkQ.js +92 -0
  8. package/dist/CountdownToolbar-CS0axcjz.js +210 -0
  9. package/dist/{DesignReferenceSidebar-BgPDbOsl.js → DesignReferenceSidebar-DWYK9nTk.js} +58 -57
  10. package/dist/{IssuesPanel-I0z6k6-H.js → IssuesPanel-CR1MPaDE.js} +40 -40
  11. package/dist/{LoadingTrack-C7mGWPHS.js → LoadingTrack-DsecR8Rw.js} +1 -1
  12. package/dist/MergeTagSuggestion-CH2SUxBo.js +1327 -0
  13. package/dist/ModuleBrowserModal-D45rBj5C.js +202 -0
  14. package/dist/{ModulePreviewCanvas-Dni9kK4j.js → ModulePreviewCanvas-BiQ6B2-l.js} +29 -29
  15. package/dist/{NumberWithSuffix-D3fdj0iO.js → NumberWithSuffix-CrA6quxx.js} +143 -142
  16. package/dist/ParagraphEditor-1NaUJpZO.js +721 -0
  17. package/dist/{RichTextEditorContent-Q5altsx1.js → RichTextEditorContent-BqLHIZY7.js} +45 -44
  18. package/dist/{SaveModuleDialog-C38VqN2T.js → SaveModuleDialog-B0sPOTgO.js} +38 -37
  19. package/dist/{SnapshotHistory-ByloTpwh.js → SnapshotHistory-DslVzmSb.js} +34 -33
  20. package/dist/{TemplateScoringPanel-CUxiPtEf.js → TemplateScoringPanel-CZ62rGHz.js} +83 -82
  21. package/dist/{TestEmailModal-BvZBMBad.js → TestEmailModal-DWGniJVu.js} +22 -21
  22. package/dist/TitleEditor-D4t_gZZJ.js +193 -0
  23. package/dist/{TplModal-BYb-X5Bj.js → TplModal-Br2VG6cn.js} +14 -13
  24. package/dist/{blockTypeIcons-CyAom3iI.js → blockTypeIcons-CXhCS5WV.js} +5 -5
  25. package/dist/bundle-stats.json +8 -8
  26. package/dist/cdn/chunks/{AiFeatureMenu-BSoy-SoF.js → AiFeatureMenu-3Slo_LGA.js} +8 -8
  27. package/dist/cdn/chunks/{AiFeatureMenu-BSoy-SoF.js.map → AiFeatureMenu-3Slo_LGA.js.map} +1 -1
  28. package/dist/cdn/chunks/{BlockIssueBadge-BQDUuJxy.js → BlockIssueBadge-BxwEiiF3.js} +5 -5
  29. package/dist/cdn/chunks/{BlockIssueBadge-BQDUuJxy.js.map → BlockIssueBadge-BxwEiiF3.js.map} +1 -1
  30. package/dist/cdn/chunks/{CloudEditor-BZuzsQOZ.js → CloudEditor-DFIFWD9G.js} +163 -161
  31. package/dist/cdn/chunks/CloudEditor-DFIFWD9G.js.map +1 -0
  32. package/dist/cdn/chunks/{CollaboratorBar-DUpSrtDr.js → CollaboratorBar-Cu3vuN66.js} +4 -4
  33. package/dist/cdn/chunks/{CollaboratorBar-DUpSrtDr.js.map → CollaboratorBar-Cu3vuN66.js.map} +1 -1
  34. package/dist/cdn/chunks/{CountdownBlock-DChGTAsH.js → CountdownBlock-BEVAJQtQ.js} +3 -3
  35. package/dist/cdn/chunks/{CountdownBlock-DChGTAsH.js.map → CountdownBlock-BEVAJQtQ.js.map} +1 -1
  36. package/dist/cdn/chunks/{CountdownToolbar-C6gX2SJr.js → CountdownToolbar-CI2sQZv5.js} +4 -4
  37. package/dist/cdn/chunks/{CountdownToolbar-C6gX2SJr.js.map → CountdownToolbar-CI2sQZv5.js.map} +1 -1
  38. package/dist/cdn/chunks/{IssuesPanel-Bo1uhdSe.js → IssuesPanel-BdeDoTcn.js} +11 -11
  39. package/dist/cdn/chunks/{IssuesPanel-Bo1uhdSe.js.map → IssuesPanel-BdeDoTcn.js.map} +1 -1
  40. package/dist/cdn/chunks/MergeTagSuggestion-BsCAo4Co.js +213 -0
  41. package/dist/cdn/chunks/MergeTagSuggestion-BsCAo4Co.js.map +1 -0
  42. package/dist/cdn/chunks/{ModuleBrowserModal-a-tZRCcD.js → ModuleBrowserModal-Dz-I5zfj.js} +11 -8
  43. package/dist/cdn/chunks/{ModuleBrowserModal-a-tZRCcD.js.map → ModuleBrowserModal-Dz-I5zfj.js.map} +1 -1
  44. package/dist/cdn/chunks/{ModulePreviewCanvas-Bm6k0Op0.js → ModulePreviewCanvas-BfinyuAN.js} +21 -21
  45. package/dist/cdn/chunks/{ModulePreviewCanvas-Bm6k0Op0.js.map → ModulePreviewCanvas-BfinyuAN.js.map} +1 -1
  46. package/dist/cdn/chunks/{NumberWithSuffix-HTbuD3VJ.js → NumberWithSuffix-CDjEa08X.js} +4 -4
  47. package/dist/cdn/chunks/{NumberWithSuffix-HTbuD3VJ.js.map → NumberWithSuffix-CDjEa08X.js.map} +1 -1
  48. package/dist/cdn/chunks/{ParagraphEditor-pGrfSccu.js → ParagraphEditor-B3fG0vge.js} +130 -110
  49. package/dist/cdn/chunks/ParagraphEditor-B3fG0vge.js.map +1 -0
  50. package/dist/cdn/chunks/{RichTextEditorContent-D7XZix_1.js → RichTextEditorContent-C6YPCp9j.js} +4 -4
  51. package/dist/cdn/chunks/{RichTextEditorContent-D7XZix_1.js.map → RichTextEditorContent-C6YPCp9j.js.map} +1 -1
  52. package/dist/cdn/chunks/{SaveModuleDialog-C9PQ9x6j.js → SaveModuleDialog-C6UIIVAM.js} +6 -6
  53. package/dist/cdn/chunks/{SaveModuleDialog-C9PQ9x6j.js.map → SaveModuleDialog-C6UIIVAM.js.map} +1 -1
  54. package/dist/cdn/chunks/{TitleEditor-BvFbL16O.js → TitleEditor-BiZbLYF1.js} +62 -46
  55. package/dist/cdn/chunks/TitleEditor-BiZbLYF1.js.map +1 -0
  56. package/dist/cdn/chunks/blockTypeIcons-BernVG06.js +22 -0
  57. package/dist/cdn/chunks/{blockTypeIcons-Kd1MT0u8.js.map → blockTypeIcons-BernVG06.js.map} +1 -1
  58. package/dist/{de-C2wOXoxs.js → cdn/chunks/de-LsV0u1tP.js} +19 -1
  59. package/dist/cdn/chunks/de-LsV0u1tP.js.map +1 -0
  60. package/dist/cdn/chunks/{draggable-Bci-fq8y.js → draggable-kG-D5Xsm.js} +19 -10
  61. package/dist/cdn/chunks/draggable-kG-D5Xsm.js.map +1 -0
  62. package/dist/cdn/chunks/{en-dR7zfNC3.js → en-Bb8X1bOs.js} +18 -2
  63. package/dist/cdn/chunks/en-Bb8X1bOs.js.map +1 -0
  64. package/dist/cdn/chunks/extensions-Drp8UDc6.js +421 -0
  65. package/dist/cdn/chunks/extensions-Drp8UDc6.js.map +1 -0
  66. package/dist/cdn/chunks/{features-DU6lA8l1.js → features-Dpczf9Su.js} +1171 -994
  67. package/dist/cdn/chunks/features-Dpczf9Su.js.map +1 -0
  68. package/dist/cdn/chunks/{icons-BjHUZZyJ.js → icons-CuxnJiGQ.js} +170 -164
  69. package/dist/cdn/chunks/icons-CuxnJiGQ.js.map +1 -0
  70. package/dist/cdn/chunks/{liquid.browser-DKKBzRQu.js → liquid.browser-BJOEu6Cg.js} +693 -678
  71. package/dist/cdn/chunks/liquid.browser-BJOEu6Cg.js.map +1 -0
  72. package/dist/cdn/chunks/{media-library-Byelliig.js → media-library-CiYl_BO7.js} +556 -554
  73. package/dist/cdn/chunks/{media-library-Byelliig.js.map → media-library-CiYl_BO7.js.map} +1 -1
  74. package/dist/cdn/chunks/{pt-BR-BZ86xqK6.js → pt-BR-BwJY_cvb.js} +18 -2
  75. package/dist/cdn/chunks/pt-BR-BwJY_cvb.js.map +1 -0
  76. package/dist/cdn/chunks/{pusher-BICWUP2j.js → pusher-CIwiKF8H.js} +9 -6
  77. package/dist/cdn/chunks/{pusher-BICWUP2j.js.map → pusher-CIwiKF8H.js.map} +1 -1
  78. package/dist/cdn/chunks/quality-CNjGxBG0.js +2176 -0
  79. package/dist/cdn/chunks/{quality-DNnYAntR.js.map → quality-CNjGxBG0.js.map} +1 -1
  80. package/dist/cdn/chunks/{renderer-CZKO-Tav.js → renderer-CFkg8h-K.js} +40 -31
  81. package/dist/cdn/chunks/renderer-CFkg8h-K.js.map +1 -0
  82. package/dist/cdn/chunks/{src-DsqSXXjk.js → src-DRpKu4Dy.js} +11 -11
  83. package/dist/cdn/chunks/{src-DsqSXXjk.js.map → src-DRpKu4Dy.js.map} +1 -1
  84. package/dist/cdn/chunks/styles-B7wryV0l.js +3943 -0
  85. package/dist/cdn/chunks/styles-B7wryV0l.js.map +1 -0
  86. package/dist/cdn/chunks/{tiptap-CwScfbsM.js → tiptap-DF9PEiqH.js} +5429 -5373
  87. package/dist/cdn/chunks/tiptap-DF9PEiqH.js.map +1 -0
  88. package/dist/cdn/editor.css +1 -1
  89. package/dist/cdn/editor.js +117 -115
  90. package/dist/cdn/editor.js.map +1 -1
  91. package/dist/{check-BRzXxFHr.js → check-rl7ok6uJ.js} +1 -1
  92. package/dist/{chevron-down-DmEgzmYT.js → chevron-down-BKe__NOD.js} +1 -1
  93. package/dist/{circle-alert-BStvZr3O.js → circle-alert-C8xmpMsK.js} +1 -1
  94. package/dist/{clock-Blwp_1R6.js → clock-BW4JuDCN.js} +1 -1
  95. package/dist/{cloud-_olro76D.js → cloud-BQusL53H.js} +208 -208
  96. package/dist/createLucideIcon-Dx-EjR9r.js +43 -0
  97. package/dist/{cdn/chunks/de-C2wOXoxs.js → de-LsV0u1tP.js} +17 -3
  98. package/dist/{dist-BlG7k25W.js → dist-B5Sov3sS.js} +7 -7
  99. package/dist/dist-BEWiuOMi.js +251 -0
  100. package/dist/{dist-b7Ak-CuM.js → dist-BFmE-7hB.js} +2 -2
  101. package/dist/{dist-o73iaGqy.js → dist-BMoa33wT.js} +2 -2
  102. package/dist/{dist-BctFrpeA.js → dist-BibU4HNl.js} +74 -65
  103. package/dist/{dist-D6x1cQeh.js → dist-BsCGIDSt.js} +103 -102
  104. package/dist/dist-CNLKj9wa.js +5 -0
  105. package/dist/{dist-DULfKmTh.js → dist-CNXDNYQn.js} +729 -695
  106. package/dist/{dist-412xXefB.js → dist-COG3IdPK.js} +3 -3
  107. package/dist/{dist-Cz79qrLL.js → dist-CQZxDvFw.js} +3 -3
  108. package/dist/{dist-BwgjpLfr.js → dist-CRsjOQM-.js} +2 -2
  109. package/dist/dist-CTT6WYJ6.js +134 -0
  110. package/dist/dist-Cqa6aeAJ.js +5 -0
  111. package/dist/{dist-BCQZZUE9.js → dist-SXJJ2v41.js} +2 -2
  112. package/dist/{dist-DhKTdU52.js → dist-itdjZraK.js} +1445 -1420
  113. package/dist/{en-dR7zfNC3.js → en-Bb8X1bOs.js} +17 -1
  114. package/dist/extensions-DwaZAqm6.js +423 -0
  115. package/dist/{image-up-BFPbw_Zq.js → image-up-BwBCmQ4P.js} +1 -1
  116. package/dist/index.d.ts +17 -0
  117. package/dist/{info-B_qLEBN2.js → info-TCn7uWR5.js} +1 -1
  118. package/dist/keys-Cv8-8GsD.js +10 -0
  119. package/dist/{liquid.browser-CVjP5Mex.js → liquid.browser-DZLtv26k.js} +692 -677
  120. package/dist/{list-checks-CGg7JxPm.js → list-checks-CSrOWNgq.js} +1 -1
  121. package/dist/{loader-circle-CDF8eR_Q.js → loader-circle-BLmicnPG.js} +1 -1
  122. package/dist/{message-circle-C3cHsCJl.js → message-circle-C9hHMQCI.js} +1 -1
  123. package/dist/{pt-BR-BZ86xqK6.js → pt-BR-BwJY_cvb.js} +17 -1
  124. package/dist/{refresh-cw-Butml7Q4.js → refresh-cw-D1JQ1LNa.js} +1 -1
  125. package/dist/runtime-dom.esm-bundler-BzuoCyNp.js +523 -0
  126. package/dist/scan-line-DgijVq9y.js +31 -0
  127. package/dist/{send-k7npFJNO.js → send-DjPdq69F.js} +1 -1
  128. package/dist/{shield-check-CV6GbmCu.js → shield-check-Bqluu8FS.js} +1 -1
  129. package/dist/{sparkles-C965Xop4.js → sparkles-M4azPVSP.js} +1 -1
  130. package/dist/style.css +1 -1
  131. package/dist/styles-D7fQ7f_1.js +4164 -0
  132. package/dist/templatical-editor.js +155 -152
  133. package/dist/{text-align-start-Bxnps8fH.js → text-align-start-CMya5pCQ.js} +11 -11
  134. package/dist/{trash-2-DpGb7fIt.js → trash-2-C-81rkLS.js} +1 -1
  135. package/dist/{triangle-alert-BKYElAwz.js → triangle-alert-BuRWnynk.js} +1 -1
  136. package/dist/{upload-BF7sxd1_.js → upload-CWBIoLd4.js} +1 -1
  137. package/dist/{useAliveFlag-BinvbqQR.js → useAliveFlag-CECL_OUb.js} +1 -1
  138. package/dist/{useCloudI18n-L3H2XvdW.js → useCloudI18n-AKCy98qD.js} +2 -2
  139. package/dist/{useEditorCore-DKYZ7aKk.js → useEditorCore-vcWLdnjN.js} +1480 -1310
  140. package/dist/{useI18n-CTs_bP9d.js → useI18n-C-TDeJBt.js} +2 -2
  141. package/dist/{useMergeTag-e3RSY-s3.js → useMergeTag-DSrBY0-2.js} +6 -6
  142. package/dist/usePopoverRoot-DKUDnr55.js +8 -0
  143. package/dist/{vue.runtime.esm-bundler-B2k01iQh.js → vue.runtime.esm-bundler-l0XAqiyv.js} +639 -1151
  144. package/dist/{x-CGjkjdKK.js → x-CQSvXnGR.js} +1 -1
  145. package/package.json +27 -27
  146. package/dist/CloudEditor-DaEfipBn.js +0 -1230
  147. package/dist/CountdownBlock-DO9fziwf.js +0 -92
  148. package/dist/CountdownToolbar-BeII06yJ.js +0 -210
  149. package/dist/ModuleBrowserModal-DsZRr87F.js +0 -198
  150. package/dist/ParagraphEditor-CZ-cmhX3.js +0 -700
  151. package/dist/TitleEditor-DbNOcvhR.js +0 -177
  152. package/dist/cdn/chunks/CloudEditor-BZuzsQOZ.js.map +0 -1
  153. package/dist/cdn/chunks/ParagraphEditor-pGrfSccu.js.map +0 -1
  154. package/dist/cdn/chunks/TitleEditor-BvFbL16O.js.map +0 -1
  155. package/dist/cdn/chunks/blockTypeIcons-Kd1MT0u8.js +0 -22
  156. package/dist/cdn/chunks/de-C2wOXoxs.js.map +0 -1
  157. package/dist/cdn/chunks/draggable-Bci-fq8y.js.map +0 -1
  158. package/dist/cdn/chunks/en-dR7zfNC3.js.map +0 -1
  159. package/dist/cdn/chunks/extensions-CuUjSmuA.js +0 -605
  160. package/dist/cdn/chunks/extensions-CuUjSmuA.js.map +0 -1
  161. package/dist/cdn/chunks/features-DU6lA8l1.js.map +0 -1
  162. package/dist/cdn/chunks/icons-BjHUZZyJ.js.map +0 -1
  163. package/dist/cdn/chunks/liquid.browser-DKKBzRQu.js.map +0 -1
  164. package/dist/cdn/chunks/pt-BR-BZ86xqK6.js.map +0 -1
  165. package/dist/cdn/chunks/quality-DNnYAntR.js +0 -2176
  166. package/dist/cdn/chunks/renderer-CZKO-Tav.js.map +0 -1
  167. package/dist/cdn/chunks/styles-DiAdtiz9.js +0 -3428
  168. package/dist/cdn/chunks/styles-DiAdtiz9.js.map +0 -1
  169. package/dist/cdn/chunks/tiptap-CwScfbsM.js.map +0 -1
  170. package/dist/createLucideIcon-CmPAC-gt.js +0 -43
  171. package/dist/dist-BNEdeWub.js +0 -5
  172. package/dist/dist-Cgry6fNv.js +0 -382
  173. package/dist/dist-u0iIJH3V.js +0 -5
  174. package/dist/extensions-XPlNAKIL.js +0 -1720
  175. package/dist/keys-mFiJ5N0_.js +0 -10
  176. package/dist/scan-line-XYEqim_E.js +0 -25
  177. package/dist/styles-D0RCAWhB.js +0 -3647
  178. package/dist/usePopoverRoot-DVh7NY1q.js +0 -8
@@ -0,0 +1,202 @@
1
+ import { A as e, Dt as t, I as n, N as r, O as i, Ot as a, R as o, Y as s, _ as c, c as l, d as u, g as ee, h as d, l as f, nt as p, r as m, s as h, u as te, z as g } from "./vue.runtime.esm-bundler-l0XAqiyv.js";
2
+ import { a as ne, c as _, i as re } from "./runtime-dom.esm-bundler-BzuoCyNp.js";
3
+ import "./useEditorCore-vcWLdnjN.js";
4
+ import { L as v, j as ie, m as ae } from "./keys-Cv8-8GsD.js";
5
+ import { t as oe } from "./useI18n-C-TDeJBt.js";
6
+ import { n as se, r as y, t as b } from "./blockTypeIcons-CXhCS5WV.js";
7
+ import { t as ce } from "./trash-2-C-81rkLS.js";
8
+ import { t as le } from "./x-CQSvXnGR.js";
9
+ import { n as ue } from "./useCloudI18n-AKCy98qD.js";
10
+ import { t as de } from "./TplModal-Br2VG6cn.js";
11
+ //#region src/cloud/components/ModuleBrowserModal.vue?vue&type=script&setup=true&lang.ts
12
+ var fe = {
13
+ role: "dialog",
14
+ "aria-modal": "true",
15
+ "aria-labelledby": "tpl-module-browser-title",
16
+ class: "tpl-scale-in tpl:mx-4 tpl:flex tpl:w-full tpl:max-w-[1000px] tpl:flex-col tpl:rounded-[var(--tpl-radius-lg)]",
17
+ style: {
18
+ "background-color": "var(--tpl-bg-elevated)",
19
+ "box-shadow": "var(--tpl-shadow-xl)",
20
+ "max-height": "90vh"
21
+ }
22
+ }, pe = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:px-5 tpl:py-4 tpl:border-[var(--tpl-border)]" }, me = {
23
+ id: "tpl-module-browser-title",
24
+ class: "tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
25
+ }, x = ["aria-label"], S = { class: "tpl:flex tpl:min-h-0 tpl:flex-1 tpl:overflow-hidden" }, C = { class: "tpl:flex tpl:w-[300px] tpl:shrink-0 tpl:flex-col tpl:overflow-hidden" }, w = { class: "tpl:px-4 tpl:pt-4 tpl:pb-3" }, T = { class: "tpl:relative" }, E = ["placeholder"], D = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:px-4 tpl:pb-4" }, O = {
26
+ key: 0,
27
+ class: "tpl:flex tpl:flex-col tpl:gap-1"
28
+ }, k = ["aria-pressed", "onClick"], A = { class: "tpl:flex tpl:items-center tpl:gap-2" }, j = { class: "tpl:flex-1 tpl:truncate tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, M = { class: "tpl:shrink-0 tpl:rounded-full tpl:px-1.5 tpl:py-0.5 tpl:text-[10px] tpl:font-medium tpl:bg-[var(--tpl-bg-hover)] tpl:text-[var(--tpl-text-muted)]" }, N = { class: "tpl:mt-1 tpl:flex tpl:items-center tpl:gap-1" }, P = {
29
+ key: 0,
30
+ class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]"
31
+ }, F = ["aria-label", "onClick"], I = [
32
+ "aria-label",
33
+ "title",
34
+ "onClick"
35
+ ], L = {
36
+ key: 1,
37
+ class: "tpl:flex tpl:flex-col tpl:items-center tpl:justify-center tpl:py-12"
38
+ }, R = { class: "tpl:mt-2 tpl:text-xs tpl:text-[var(--tpl-text-dim)]" }, z = { class: "tpl:flex tpl:flex-1 tpl:flex-col tpl:overflow-hidden tpl:border-l tpl:border-[var(--tpl-border)]" }, he = {
39
+ key: 0,
40
+ class: "tpl:flex tpl:flex-1 tpl:flex-col tpl:overflow-hidden"
41
+ }, ge = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, _e = {
42
+ key: 1,
43
+ class: "tpl:flex tpl:flex-1 tpl:flex-col tpl:items-center tpl:justify-center tpl:px-4"
44
+ }, ve = { class: "tpl:mt-2 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]" }, ye = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-t tpl:px-5 tpl:py-3 tpl:border-[var(--tpl-border)]" }, be = { class: "tpl:flex tpl:items-center tpl:gap-2" }, xe = { class: "tpl:shrink-0 tpl:text-xs tpl:text-[var(--tpl-text-dim)]" }, Se = ["value"], Ce = { class: "tpl:flex tpl:gap-2" }, we = ["disabled"], B = /* @__PURE__ */ c({
45
+ __name: "ModuleBrowserModal",
46
+ props: { visible: { type: Boolean } },
47
+ emits: ["close", "insert"],
48
+ setup(c, { emit: B }) {
49
+ let Te = c, V = B, Ee = ee(() => import("./ModulePreviewCanvas-BiQ6B2-l.js")), { t: De } = oe(), { t: H } = ue(), U = v(ie, "ModuleBrowserModal"), W = v(ae, "ModuleBrowserModal"), G = s(""), K = s(null), q = s(null), J = s("end"), Y = h(() => {
50
+ let e = U.modules.value;
51
+ if (!G.value) return e;
52
+ let t = G.value.toLowerCase();
53
+ return e.filter((e) => e.name.toLowerCase().includes(t));
54
+ }), X = h(() => K.value ? U.modules.value.find((e) => e.id === K.value) ?? null : null), Oe = h(() => {
55
+ let e = [{
56
+ value: "beginning",
57
+ label: H.modules.insertAtBeginning
58
+ }], t = W.content.value.blocks;
59
+ for (let n = 0; n < t.length; n++) {
60
+ let r = t[n], i = r.type, a = De.blocks[i] ?? r.type;
61
+ e.push({
62
+ value: r.id,
63
+ label: H.modules.insertAfterBlock.replace("{block}", `${a} ${n + 1}`)
64
+ });
65
+ }
66
+ return e.push({
67
+ value: "end",
68
+ label: H.modules.insertAtEnd
69
+ }), e;
70
+ }), ke = h(() => {
71
+ if (J.value === "end") return;
72
+ if (J.value === "beginning") return 0;
73
+ let e = W.content.value.blocks.findIndex((e) => e.id === J.value);
74
+ if (e !== -1) return e + 1;
75
+ });
76
+ n(() => Te.visible, (e) => {
77
+ if (e) {
78
+ G.value = "", K.value = null, q.value = null;
79
+ let e = W.state.selectedBlockId;
80
+ if (e) {
81
+ let t = W.content.value.blocks.findIndex((t) => t.id === e);
82
+ J.value = t === -1 ? "end" : e;
83
+ } else J.value = "end";
84
+ }
85
+ });
86
+ function Ae(e) {
87
+ let t = [], n = /* @__PURE__ */ new Set();
88
+ for (let r of e.content) if (!n.has(r.type) && b[r.type] && (n.add(r.type), t.push({
89
+ type: r.type,
90
+ icon: b[r.type]
91
+ })), t.length >= 5) break;
92
+ return t;
93
+ }
94
+ function Z(e) {
95
+ let t = new Set(e.content.map((e) => e.type));
96
+ return Math.max(0, t.size - 5);
97
+ }
98
+ async function je(e) {
99
+ try {
100
+ await U.deleteModule(e), K.value === e && (K.value = null);
101
+ } finally {
102
+ q.value = null;
103
+ }
104
+ }
105
+ function Q() {
106
+ X.value && V("insert", X.value, ke.value);
107
+ }
108
+ function $() {
109
+ V("close");
110
+ }
111
+ function Me(e) {
112
+ e.key === "Escape" && $(), e.key === "Enter" && X.value && (e.preventDefault(), Q());
113
+ }
114
+ return (n, s) => (i(), f(de, {
115
+ visible: c.visible,
116
+ onClose: $,
117
+ onKeydown: Me
118
+ }, {
119
+ default: o(() => [l("div", fe, [
120
+ l("div", pe, [l("h3", me, a(p(H).modules.browse), 1), l("button", {
121
+ "aria-label": p(H).modules.close,
122
+ class: "tpl:cursor-pointer tpl:rounded-md tpl:border-none tpl:bg-transparent tpl:p-1 tpl:transition-colors tpl:duration-100 tpl:text-[var(--tpl-text-dim)]",
123
+ onClick: $
124
+ }, [d(p(le), {
125
+ size: 16,
126
+ "stroke-width": 2
127
+ })], 8, x)]),
128
+ l("div", S, [l("div", C, [l("div", w, [l("div", T, [d(p(se), {
129
+ size: 14,
130
+ "stroke-width": 2,
131
+ class: "tpl:pointer-events-none tpl:absolute tpl:left-3 tpl:top-1/2 tpl:-translate-y-1/2 tpl:text-[var(--tpl-text-dim)]"
132
+ }), g(l("input", {
133
+ "onUpdate:modelValue": s[0] ||= (e) => G.value = e,
134
+ type: "text",
135
+ placeholder: p(H).modules.search,
136
+ class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:pl-9 tpl:pr-3 tpl:text-sm tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]"
137
+ }, null, 8, E), [[ne, G.value]])])]), l("div", D, [Y.value.length > 0 ? (i(), u("div", O, [(i(!0), u(m, null, e(Y.value, (n) => (i(), u("button", {
138
+ key: n.id,
139
+ type: "button",
140
+ "aria-pressed": K.value === n.id,
141
+ class: "tpl:group/card tpl:w-full tpl:cursor-pointer tpl:rounded-[var(--tpl-radius-md)] tpl:border tpl:bg-transparent tpl:px-3 tpl:py-2 tpl:text-left tpl:transition-all tpl:duration-[120ms]",
142
+ style: t({
143
+ borderColor: K.value === n.id ? "var(--tpl-primary)" : "var(--tpl-border)",
144
+ backgroundColor: K.value === n.id ? "var(--tpl-primary-light)" : "transparent"
145
+ }),
146
+ onClick: (e) => K.value = n.id
147
+ }, [l("div", A, [l("span", j, a(n.name), 1), l("span", M, a(p(H).modules.blockCount.replace("{count}", String(n.content.length))), 1)]), l("div", N, [
148
+ (i(!0), u(m, null, e(Ae(n), (e) => (i(), f(r(e.icon), {
149
+ key: e.type,
150
+ size: 14,
151
+ "stroke-width": 1.5,
152
+ class: "tpl:text-[var(--tpl-text-dim)]"
153
+ }))), 128)),
154
+ Z(n) > 0 ? (i(), u("span", P, " +" + a(Z(n)), 1)) : te("", !0),
155
+ q.value === n.id ? (i(), u("button", {
156
+ key: 1,
157
+ "aria-label": p(H).modules.deleteConfirm,
158
+ class: "tpl:ml-auto tpl:cursor-pointer tpl:rounded-md tpl:border tpl:px-2 tpl:py-0.5 tpl:text-[10px] tpl:font-medium tpl:transition-colors tpl:duration-100 tpl:border-[var(--tpl-danger)] tpl:text-[var(--tpl-danger)]",
159
+ style: { "background-color": "transparent" },
160
+ onClick: _((e) => je(n.id), ["stop"])
161
+ }, a(p(H).modules.deleteConfirm), 9, F)) : (i(), u("button", {
162
+ key: 2,
163
+ class: "tpl-module-delete-btn tpl:ml-auto tpl:cursor-pointer tpl:rounded-md tpl:border-none tpl:bg-transparent tpl:p-0.5 tpl:transition-colors tpl:duration-100 tpl:text-[var(--tpl-text-dim)]",
164
+ "aria-label": p(H).modules.delete,
165
+ title: p(H).modules.delete,
166
+ onClick: _((e) => q.value = n.id, ["stop"])
167
+ }, [d(p(ce), {
168
+ size: 12,
169
+ "stroke-width": 1.5
170
+ })], 8, I))
171
+ ])], 12, k))), 128))])) : (i(), u("div", L, [d(p(y), {
172
+ size: 32,
173
+ "stroke-width": 1,
174
+ class: "tpl:text-[var(--tpl-text-dim)]"
175
+ }), l("p", R, a(G.value ? p(H).modules.noModules : p(H).modules.noModulesHint), 1)]))])]), l("div", z, [X.value ? (i(), u("div", he, [l("div", ge, [d(p(Ee), { blocks: X.value.content }, null, 8, ["blocks"])])])) : (i(), u("div", _e, [d(p(y), {
176
+ size: 32,
177
+ "stroke-width": 1,
178
+ class: "tpl:text-[var(--tpl-text-dim)]"
179
+ }), l("p", ve, a(p(H).modules.selectToPreview), 1)]))])]),
180
+ l("div", ye, [l("div", be, [l("label", xe, a(p(H).modules.insertPosition), 1), g(l("select", {
181
+ "onUpdate:modelValue": s[1] ||= (e) => J.value = e,
182
+ class: "tpl:h-7 tpl:max-w-[220px] tpl:rounded-md tpl:border tpl:px-2 tpl:text-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]"
183
+ }, [(i(!0), u(m, null, e(Oe.value, (e) => (i(), u("option", {
184
+ key: e.value,
185
+ value: e.value
186
+ }, a(e.label), 9, Se))), 128))], 512), [[re, J.value]])]), l("div", Ce, [l("button", {
187
+ type: "button",
188
+ class: "tpl:cursor-pointer tpl:rounded-md tpl:border tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)]",
189
+ onClick: $
190
+ }, a(p(H).modules.close), 1), l("button", {
191
+ type: "button",
192
+ class: "tpl:cursor-pointer tpl:rounded-md tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:hover:opacity-90 tpl:disabled:cursor-not-allowed tpl:disabled:opacity-50 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
193
+ disabled: !X.value,
194
+ onClick: Q
195
+ }, a(p(H).modules.insert), 9, we)])])
196
+ ])]),
197
+ _: 1
198
+ }, 8, ["visible"]));
199
+ }
200
+ });
201
+ //#endregion
202
+ export { B as default };
@@ -1,15 +1,15 @@
1
- import { A as e, F as t, M as n, P as r, b as i, d as a, f as o, h as s, l as c, ot as l, p as u, rt as d, w as f } from "./vue.runtime.esm-bundler-B2k01iQh.js";
2
- import { P as p, _ as m, a as h, d as g, f as _, h as v, i as y, l as b, m as x, n as S, p as C, r as w, v as T, y as E } from "./useEditorCore-DKYZ7aKk.js";
3
- import { o as D } from "./keys-mFiJ5N0_.js";
1
+ import { A as e, Dt as t, M as n, N as r, O as i, _ as a, c as o, d as s, l as c, nt as l, r as u, s as d, x as f } from "./vue.runtime.esm-bundler-l0XAqiyv.js";
2
+ import { F as p, _ as m, a as h, d as g, f as _, h as v, i as y, l as b, m as x, n as S, p as C, r as w, v as T, y as E } from "./useEditorCore-vcWLdnjN.js";
3
+ import { o as D } from "./keys-Cv8-8GsD.js";
4
4
  //#region src/components/blocks/PreviewSectionBlock.vue?vue&type=script&setup=true&lang.ts
5
- var O = { class: "tpl:w-full" }, k = { class: "tpl:flex tpl:gap-0" }, A = /* @__PURE__ */ i({
5
+ var O = { class: "tpl:w-full" }, k = { class: "tpl:flex tpl:gap-0" }, A = /* @__PURE__ */ a({
6
6
  name: "PreviewSectionBlock",
7
7
  __name: "PreviewSectionBlock",
8
8
  props: {
9
9
  block: {},
10
10
  viewport: {}
11
11
  },
12
- setup(i) {
12
+ setup(a) {
13
13
  let A = {
14
14
  title: b,
15
15
  paragraph: C,
@@ -23,7 +23,7 @@ var O = { class: "tpl:w-full" }, k = { class: "tpl:flex tpl:gap-0" }, A = /* @__
23
23
  spacer: y,
24
24
  html: m,
25
25
  custom: E
26
- }, j = i, M = f(D, null), N = a(() => {
26
+ }, j = a, M = f(D, null), N = d(() => {
27
27
  switch (j.block.columns) {
28
28
  case "2": return ["50%", "50%"];
29
29
  case "3": return [
@@ -35,7 +35,7 @@ var O = { class: "tpl:w-full" }, k = { class: "tpl:flex tpl:gap-0" }, A = /* @__
35
35
  case "2-1": return ["66.67%", "33.33%"];
36
36
  default: return ["100%"];
37
37
  }
38
- }), P = a(() => {
38
+ }), P = d(() => {
39
39
  let e = N.value.length, t = [...j.block.children];
40
40
  for (; t.length < e;) t.push([]);
41
41
  return t.slice(0, e);
@@ -46,21 +46,21 @@ var O = { class: "tpl:w-full" }, k = { class: "tpl:flex tpl:gap-0" }, A = /* @__
46
46
  function I(e) {
47
47
  return _(e, M, A);
48
48
  }
49
- return (i, a) => {
50
- let f = r("PreviewSectionBlock", !0);
51
- return e(), s("div", O, [o("div", k, [(e(!0), s(c, null, n(P.value, (r, i) => (e(), s("div", {
52
- key: i,
53
- style: l({ width: N.value[i] })
54
- }, [(e(!0), s(c, null, n(F(i), (n) => (e(), s("div", {
55
- key: n.id,
56
- style: l(d(g)(n))
57
- }, [n.type === "section" ? (e(), u(f, {
49
+ return (a, d) => {
50
+ let f = n("PreviewSectionBlock", !0);
51
+ return i(), s("div", O, [o("div", k, [(i(!0), s(u, null, e(P.value, (n, a) => (i(), s("div", {
52
+ key: a,
53
+ style: t({ width: N.value[a] })
54
+ }, [(i(!0), s(u, null, e(F(a), (e) => (i(), s("div", {
55
+ key: e.id,
56
+ style: t(l(g)(e))
57
+ }, [e.type === "section" ? (i(), c(f, {
58
58
  key: 0,
59
- block: n,
59
+ block: e,
60
60
  viewport: "desktop"
61
- }, null, 8, ["block"])) : (e(), u(t(I(n)), {
61
+ }, null, 8, ["block"])) : (i(), c(r(I(e)), {
62
62
  key: 1,
63
- block: n,
63
+ block: e,
64
64
  viewport: "desktop"
65
65
  }, null, 8, ["block"]))], 4))), 128))], 4))), 128))])]);
66
66
  };
@@ -71,11 +71,11 @@ var O = { class: "tpl:w-full" }, k = { class: "tpl:flex tpl:gap-0" }, A = /* @__
71
71
  "background-color": "var(--tpl-canvas-bg)",
72
72
  "box-shadow": "var(--tpl-shadow-sm)"
73
73
  }
74
- }, M = /* @__PURE__ */ i({
74
+ }, M = /* @__PURE__ */ a({
75
75
  __name: "ModulePreviewCanvas",
76
76
  props: { blocks: {} },
77
- setup(r) {
78
- let i = f(D), a = {
77
+ setup(n) {
78
+ let a = f(D), o = {
79
79
  section: A,
80
80
  title: b,
81
81
  paragraph: C,
@@ -90,14 +90,14 @@ var O = { class: "tpl:w-full" }, k = { class: "tpl:flex tpl:gap-0" }, A = /* @__
90
90
  html: m,
91
91
  custom: E
92
92
  };
93
- function o(e) {
94
- return _(e, i, a);
93
+ function d(e) {
94
+ return _(e, a, o);
95
95
  }
96
- return (i, a) => (e(), s("div", j, [(e(!0), s(c, null, n(r.blocks, (n) => (e(), s("div", {
97
- key: n.id,
98
- style: l(d(g)(n))
99
- }, [(e(), u(t(o(n)), {
100
- block: n,
96
+ return (a, o) => (i(), s("div", j, [(i(!0), s(u, null, e(n.blocks, (e) => (i(), s("div", {
97
+ key: e.id,
98
+ style: t(l(g)(e))
99
+ }, [(i(), c(r(d(e)), {
100
+ block: e,
101
101
  viewport: "desktop"
102
102
  }, null, 8, ["block"]))], 4))), 128))]));
103
103
  }