@templatical/editor 0.39.2 → 0.39.3

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 (137) hide show
  1. package/dist/{AiChatSidebar-pOxCZWz9.js → AiChatSidebar-5qqrS6uy.js} +69 -63
  2. package/dist/{AiFeatureMenu-Bljk6Qjv.js → AiFeatureMenu-BBO_Ojlp.js} +1 -1
  3. package/dist/{BlockPreviewCanvas-DXGjUECG.js → BlockPreviewCanvas-BMC16_QU.js} +1 -1
  4. package/dist/{CloudHeaderExtras-DaocwNmy.js → CloudHeaderExtras-Cg6uF-yQ.js} +1 -1
  5. package/dist/{CloudPanels-CyZAnSJY.js → CloudPanels-D1Gg4qrG.js} +80 -66
  6. package/dist/{CollaboratorBar-C7Zca3g1.js → CollaboratorBar-Cmn0LccS.js} +3 -3
  7. package/dist/{CommentsPanel-CNOb7YCm.js → CommentsPanel-twNhYUqZ.js} +1 -1
  8. package/dist/{CommentsSidebar-VmwjU9va.js → CommentsSidebar-DDO0Qx8U.js} +122 -112
  9. package/dist/{CountdownToolbar-C2kfS6Oy.js → CountdownToolbar-nvHxu8Gu.js} +1 -1
  10. package/dist/DesignReferenceSidebar-C8ohNhOd.js +280 -0
  11. package/dist/{IssuesPanel-DL2Xr14_.js → IssuesPanel-Ck0EGoV5.js} +4 -4
  12. package/dist/{LoadingTrack-C2jKCU2d.js → LoadingTrack-C1Epulqq.js} +1 -1
  13. package/dist/{ParagraphEditor-DkkPSexG.js → ParagraphEditor-D6FRxr8Y.js} +2 -2
  14. package/dist/{RestoreVersionDialog-BgueZnZr.js → RestoreVersionDialog--b0qfNaK.js} +1 -1
  15. package/dist/{SaveBlockDialog-BuTuVlLr.js → SaveBlockDialog-C0BdEGeL.js} +6 -6
  16. package/dist/{SavedBlocksBrowserModal-Srhix8BB.js → SavedBlocksBrowserModal-BzDgXtr4.js} +8 -8
  17. package/dist/{SavedBlocksPanels-B2iScCS-.js → SavedBlocksPanels-DN-bDZzy.js} +1 -1
  18. package/dist/SavedBlocksPickBar-pEi9Et8Q.js +53 -0
  19. package/dist/{TemplateScoringPanel-C2Rdlyn6.js → TemplateScoringPanel-B1wcfE0w.js} +62 -56
  20. package/dist/{TestEmailModal-DJ5q_u4N.js → TestEmailModal-maM8SLBV.js} +6 -6
  21. package/dist/{TestEmailPanel-CP24UGst.js → TestEmailPanel-8iAZYpCK.js} +1 -1
  22. package/dist/{TitleEditor-QBBOXtxx.js → TitleEditor-L26QXwna.js} +1 -1
  23. package/dist/{Toolbar-COD2TW20.js → Toolbar-B2kDLFhn.js} +314 -314
  24. package/dist/{TplModal-C8xGjC1l.js → TplModal-DVMS_nAn.js} +1 -1
  25. package/dist/{VersionHistoryPanels-BrK6na4A.js → VersionHistoryPanels-D8f8KvKX.js} +1 -1
  26. package/dist/bundle-stats.json +6 -6
  27. package/dist/{ca-YlPDhElv.js → ca-Bqeygp1_.js} +1 -0
  28. package/dist/cdn/chunks/{AiChatSidebar-CjSEoK4x.js → AiChatSidebar-ctfIU4i0.js} +67 -61
  29. package/dist/cdn/chunks/AiChatSidebar-ctfIU4i0.js.map +1 -0
  30. package/dist/cdn/chunks/{AiFeatureMenu-l0K5TOSn.js → AiFeatureMenu-ByygdH_9.js} +2 -2
  31. package/dist/cdn/chunks/{AiFeatureMenu-l0K5TOSn.js.map → AiFeatureMenu-ByygdH_9.js.map} +1 -1
  32. package/dist/cdn/chunks/{BlockPreviewCanvas-lQrAdgG3.js → BlockPreviewCanvas-DeS7Sa--.js} +2 -2
  33. package/dist/cdn/chunks/{BlockPreviewCanvas-lQrAdgG3.js.map → BlockPreviewCanvas-DeS7Sa--.js.map} +1 -1
  34. package/dist/cdn/chunks/{CloudHeaderExtras-CXNe7Q-4.js → CloudHeaderExtras-BxsMpvVr.js} +2 -2
  35. package/dist/cdn/chunks/{CloudHeaderExtras-CXNe7Q-4.js.map → CloudHeaderExtras-BxsMpvVr.js.map} +1 -1
  36. package/dist/cdn/chunks/{CloudPanels-bHhh9AUA.js → CloudPanels-DmxmqAS_.js} +78 -64
  37. package/dist/cdn/chunks/CloudPanels-DmxmqAS_.js.map +1 -0
  38. package/dist/cdn/chunks/{CollaboratorBar-DgqcaGGI.js → CollaboratorBar-B8ttqAqX.js} +4 -4
  39. package/dist/cdn/chunks/CollaboratorBar-B8ttqAqX.js.map +1 -0
  40. package/dist/cdn/chunks/{CommentsPanel-Cy4TlTHC.js → CommentsPanel-C8ibhaiK.js} +2 -2
  41. package/dist/cdn/chunks/{CommentsPanel-Cy4TlTHC.js.map → CommentsPanel-C8ibhaiK.js.map} +1 -1
  42. package/dist/cdn/chunks/{CommentsSidebar-C7oAP3Mx.js → CommentsSidebar-CybWfZ3V.js} +118 -108
  43. package/dist/cdn/chunks/CommentsSidebar-CybWfZ3V.js.map +1 -0
  44. package/dist/cdn/chunks/{CountdownToolbar-CN9h4nlC.js → CountdownToolbar-DRESXiVD.js} +2 -2
  45. package/dist/cdn/chunks/{CountdownToolbar-CN9h4nlC.js.map → CountdownToolbar-DRESXiVD.js.map} +1 -1
  46. package/dist/cdn/chunks/DesignReferenceSidebar-CtaoY-hl.js +230 -0
  47. package/dist/cdn/chunks/DesignReferenceSidebar-CtaoY-hl.js.map +1 -0
  48. package/dist/cdn/chunks/{IssuesPanel-DdFk-Blf.js → IssuesPanel-C6RlIxoi.js} +5 -5
  49. package/dist/cdn/chunks/IssuesPanel-C6RlIxoi.js.map +1 -0
  50. package/dist/cdn/chunks/{LoadingTrack-Ba5xh5HD.js → LoadingTrack-_7DH_5aw.js} +2 -2
  51. package/dist/cdn/chunks/{LoadingTrack-Ba5xh5HD.js.map → LoadingTrack-_7DH_5aw.js.map} +1 -1
  52. package/dist/cdn/chunks/{ParagraphEditor-DO4RzP8l.js → ParagraphEditor-R2ph_UOo.js} +3 -3
  53. package/dist/cdn/chunks/ParagraphEditor-R2ph_UOo.js.map +1 -0
  54. package/dist/cdn/chunks/{RestoreVersionDialog-CzZ_sFnz.js → RestoreVersionDialog-C-dwbb7T.js} +2 -2
  55. package/dist/cdn/chunks/{RestoreVersionDialog-CzZ_sFnz.js.map → RestoreVersionDialog-C-dwbb7T.js.map} +1 -1
  56. package/dist/cdn/chunks/{SaveBlockDialog-LgxYrXyx.js → SaveBlockDialog-C_BPjVv6.js} +7 -7
  57. package/dist/cdn/chunks/SaveBlockDialog-C_BPjVv6.js.map +1 -0
  58. package/dist/cdn/chunks/{SavedBlocksBrowserModal-CdeSsTpb.js → SavedBlocksBrowserModal-CrrGEfFb.js} +9 -9
  59. package/dist/cdn/chunks/SavedBlocksBrowserModal-CrrGEfFb.js.map +1 -0
  60. package/dist/cdn/chunks/{SavedBlocksPanels-B5hakNJj.js → SavedBlocksPanels-DfTaMPAr.js} +2 -2
  61. package/dist/cdn/chunks/{SavedBlocksPanels-B5hakNJj.js.map → SavedBlocksPanels-DfTaMPAr.js.map} +1 -1
  62. package/dist/cdn/chunks/SavedBlocksPickBar-DziwHYSu.js +55 -0
  63. package/dist/cdn/chunks/SavedBlocksPickBar-DziwHYSu.js.map +1 -0
  64. package/dist/cdn/chunks/{TemplateScoringPanel--JxR6CsQ.js → TemplateScoringPanel-CR6RG6dZ.js} +95 -89
  65. package/dist/cdn/chunks/TemplateScoringPanel-CR6RG6dZ.js.map +1 -0
  66. package/dist/cdn/chunks/{TestEmailModal-BAuDxJtD.js → TestEmailModal-DId9Og-N.js} +7 -7
  67. package/dist/cdn/chunks/TestEmailModal-DId9Og-N.js.map +1 -0
  68. package/dist/cdn/chunks/{TestEmailPanel-GUGZisLp.js → TestEmailPanel-B8LwXmeX.js} +2 -2
  69. package/dist/cdn/chunks/{TestEmailPanel-GUGZisLp.js.map → TestEmailPanel-B8LwXmeX.js.map} +1 -1
  70. package/dist/cdn/chunks/{TitleEditor-uKu33Nwr.js → TitleEditor-C7KMzX1e.js} +2 -2
  71. package/dist/cdn/chunks/{TitleEditor-uKu33Nwr.js.map → TitleEditor-C7KMzX1e.js.map} +1 -1
  72. package/dist/cdn/chunks/{Toolbar-dxDYwN5E.js → Toolbar-DqFhWxgW.js} +310 -310
  73. package/dist/cdn/chunks/Toolbar-DqFhWxgW.js.map +1 -0
  74. package/dist/cdn/chunks/{TplModal-DuwS2ifK.js → TplModal-BKqDFLq3.js} +2 -2
  75. package/dist/cdn/chunks/{TplModal-DuwS2ifK.js.map → TplModal-BKqDFLq3.js.map} +1 -1
  76. package/dist/cdn/chunks/{VersionHistoryPanels-GeR6MStB.js → VersionHistoryPanels-DcCFFDK6.js} +2 -2
  77. package/dist/cdn/chunks/{VersionHistoryPanels-GeR6MStB.js.map → VersionHistoryPanels-DcCFFDK6.js.map} +1 -1
  78. package/dist/cdn/chunks/{ca-YlPDhElv.js → ca-Bqeygp1_.js} +2 -1
  79. package/dist/cdn/chunks/{ca-YlPDhElv.js.map → ca-Bqeygp1_.js.map} +1 -1
  80. package/dist/cdn/chunks/{de-CONjnzrF.js → de-CY6SlqBx.js} +2 -1
  81. package/dist/cdn/chunks/{de-CONjnzrF.js.map → de-CY6SlqBx.js.map} +1 -1
  82. package/dist/{de-BytZwgn6.js → cdn/chunks/de-mMY5yQJu.js} +5 -0
  83. package/dist/cdn/chunks/de-mMY5yQJu.js.map +1 -0
  84. package/dist/cdn/chunks/{en-BAMooiOF.js → en-8V-2kDcp.js} +2 -1
  85. package/dist/cdn/chunks/{en-BAMooiOF.js.map → en-8V-2kDcp.js.map} +1 -1
  86. package/dist/{en-DyOSV0lY.js → cdn/chunks/en-ChVeGQBY.js} +5 -0
  87. package/dist/cdn/chunks/en-ChVeGQBY.js.map +1 -0
  88. package/dist/cdn/chunks/{es-I47lHs2m.js → es-Cmn1rT3l.js} +2 -1
  89. package/dist/cdn/chunks/{es-I47lHs2m.js.map → es-Cmn1rT3l.js.map} +1 -1
  90. package/dist/cdn/chunks/{fr-B8MIKjT4.js → fr-2yDa4zXM.js} +2 -1
  91. package/dist/cdn/chunks/{fr-B8MIKjT4.js.map → fr-2yDa4zXM.js.map} +1 -1
  92. package/dist/cdn/chunks/{nl-CBLxcb-0.js → nl-Bzk2zRI8.js} +2 -1
  93. package/dist/cdn/chunks/{nl-CBLxcb-0.js.map → nl-Bzk2zRI8.js.map} +1 -1
  94. package/dist/cdn/chunks/{pt-BR-C1WLSGDh.js → pt-BR-CoCwRUi0.js} +4 -1
  95. package/dist/cdn/chunks/pt-BR-CoCwRUi0.js.map +1 -0
  96. package/dist/cdn/chunks/{pt-BR-CMSRfX7t.js → pt-BR-DqtSCTUi.js} +2 -1
  97. package/dist/cdn/chunks/{pt-BR-CMSRfX7t.js.map → pt-BR-DqtSCTUi.js.map} +1 -1
  98. package/dist/cdn/chunks/{src-O5Sp_qJ7.js → src-kSeXM7B2.js} +2 -2
  99. package/dist/cdn/chunks/{src-O5Sp_qJ7.js.map → src-kSeXM7B2.js.map} +1 -1
  100. package/dist/cdn/chunks/{useEditorCore-BHmIp1hW.js → useEditorCore-CXYI14ux.js} +14 -14
  101. package/dist/cdn/chunks/{useEditorCore-BHmIp1hW.js.map → useEditorCore-CXYI14ux.js.map} +1 -1
  102. package/dist/cdn/editor.css +1 -1
  103. package/dist/cdn/editor.js +14 -14
  104. package/dist/cdn/editor.js.map +1 -1
  105. package/dist/{de-CONjnzrF.js → de-CY6SlqBx.js} +1 -0
  106. package/dist/{cdn/chunks/de-BytZwgn6.js → de-mMY5yQJu.js} +3 -2
  107. package/dist/{en-BAMooiOF.js → en-8V-2kDcp.js} +1 -0
  108. package/dist/{cdn/chunks/en-DyOSV0lY.js → en-ChVeGQBY.js} +3 -2
  109. package/dist/{es-I47lHs2m.js → es-Cmn1rT3l.js} +1 -0
  110. package/dist/{fr-B8MIKjT4.js → fr-2yDa4zXM.js} +1 -0
  111. package/dist/{nl-CBLxcb-0.js → nl-Bzk2zRI8.js} +1 -0
  112. package/dist/{pt-BR-C1WLSGDh.js → pt-BR-CoCwRUi0.js} +3 -0
  113. package/dist/{pt-BR-CMSRfX7t.js → pt-BR-DqtSCTUi.js} +1 -0
  114. package/dist/style.css +1 -1
  115. package/dist/templatical-editor.js +13 -13
  116. package/dist/{useEditorCore-C5APBjjV.js → useEditorCore-BUVbQgwb.js} +13 -13
  117. package/package.json +7 -7
  118. package/dist/DesignReferenceSidebar-QC4gEUWp.js +0 -273
  119. package/dist/SavedBlocksPickBar-cI7bDQQi.js +0 -52
  120. package/dist/cdn/chunks/AiChatSidebar-CjSEoK4x.js.map +0 -1
  121. package/dist/cdn/chunks/CloudPanels-bHhh9AUA.js.map +0 -1
  122. package/dist/cdn/chunks/CollaboratorBar-DgqcaGGI.js.map +0 -1
  123. package/dist/cdn/chunks/CommentsSidebar-C7oAP3Mx.js.map +0 -1
  124. package/dist/cdn/chunks/DesignReferenceSidebar-Bjo0M-AY.js +0 -223
  125. package/dist/cdn/chunks/DesignReferenceSidebar-Bjo0M-AY.js.map +0 -1
  126. package/dist/cdn/chunks/IssuesPanel-DdFk-Blf.js.map +0 -1
  127. package/dist/cdn/chunks/ParagraphEditor-DO4RzP8l.js.map +0 -1
  128. package/dist/cdn/chunks/SaveBlockDialog-LgxYrXyx.js.map +0 -1
  129. package/dist/cdn/chunks/SavedBlocksBrowserModal-CdeSsTpb.js.map +0 -1
  130. package/dist/cdn/chunks/SavedBlocksPickBar-Cl6PLwwV.js +0 -54
  131. package/dist/cdn/chunks/SavedBlocksPickBar-Cl6PLwwV.js.map +0 -1
  132. package/dist/cdn/chunks/TemplateScoringPanel--JxR6CsQ.js.map +0 -1
  133. package/dist/cdn/chunks/TestEmailModal-BAuDxJtD.js.map +0 -1
  134. package/dist/cdn/chunks/Toolbar-dxDYwN5E.js.map +0 -1
  135. package/dist/cdn/chunks/de-BytZwgn6.js.map +0 -1
  136. package/dist/cdn/chunks/en-DyOSV0lY.js.map +0 -1
  137. package/dist/cdn/chunks/pt-BR-C1WLSGDh.js.map +0 -1
@@ -0,0 +1,280 @@
1
+ import { A as e, At as t, B as n, D as ee, R as r, V as te, Z as i, at as a, c as o, d as s, g as c, h as l, jt as u, kt as d, l as ne, s as re, u as f, v as p } from "./vue.runtime.esm-bundler-CyqhBwpY.js";
2
+ import { a as ie, t as ae } from "./runtime-dom.esm-bundler-BGbPz4-g.js";
3
+ import { Z as m, g as oe, i as se } from "./keys-BdoSgsz9.js";
4
+ import "./timeouts-DHPZQ0G3.js";
5
+ import { t as h } from "./createLucideIcon-BxY5yz5u.js";
6
+ import { t as ce } from "./circle-alert-CYgTHKWr.js";
7
+ import { t as g } from "./image-up-Qi2BXD7T.js";
8
+ import { t as _ } from "./upload-BBDme2cy.js";
9
+ import { t as v } from "./x-3BHV3Q6K.js";
10
+ import { t as le } from "./LoadingTrack-C1Epulqq.js";
11
+ import { t as y } from "./_plugin-vue_export-helper-B3ysoDQm.js";
12
+ import { n as ue } from "./useCloudI18n-D1iedlP3.js";
13
+ import { v as b } from "./styleConstants-C_YAPdQS.js";
14
+ import { _ as de } from "./cloud-C9xWZXhg.js";
15
+ var fe = h({
16
+ name: "file-image",
17
+ size: 24,
18
+ node: [
19
+ ["path", {
20
+ d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
21
+ key: "1oefj6"
22
+ }],
23
+ ["path", {
24
+ d: "M14 2v5a1 1 0 0 0 1 1h5",
25
+ key: "wfsgrz"
26
+ }],
27
+ ["circle", {
28
+ cx: "10",
29
+ cy: "12",
30
+ r: "2",
31
+ key: "737tya"
32
+ }],
33
+ ["path", {
34
+ d: "m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",
35
+ key: "wt3hpn"
36
+ }]
37
+ ]
38
+ }), x = h({
39
+ name: "file-text",
40
+ size: 24,
41
+ node: [
42
+ ["path", {
43
+ d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
44
+ key: "1oefj6"
45
+ }],
46
+ ["path", {
47
+ d: "M14 2v5a1 1 0 0 0 1 1h5",
48
+ key: "wfsgrz"
49
+ }],
50
+ ["path", {
51
+ d: "M10 9H8",
52
+ key: "b1mrlr"
53
+ }],
54
+ ["path", {
55
+ d: "M16 13H8",
56
+ key: "t4e002"
57
+ }],
58
+ ["path", {
59
+ d: "M16 17H8",
60
+ key: "z1uh3a"
61
+ }]
62
+ ]
63
+ }), pe = ["aria-label"], me = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, he = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, S = ["aria-label"], C = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, w = {
64
+ key: 0,
65
+ class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
66
+ }, T = { class: "tpl:flex tpl:w-full tpl:flex-col tpl:items-center tpl:gap-3" }, E = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, D = {
67
+ key: 1,
68
+ class: "tpl:flex tpl:flex-col tpl:gap-4"
69
+ }, O = { class: "tpl:flex tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1 tpl:bg-[var(--tpl-bg-hover)]" }, k = {
70
+ key: 0,
71
+ class: "tpl:flex tpl:flex-col tpl:gap-2"
72
+ }, A = { class: "tpl:relative tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, j = ["src", "alt"], M = {
73
+ key: 1,
74
+ class: "tpl:flex tpl:h-32 tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2"
75
+ }, N = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, P = { class: "tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, F = { class: "tpl:text-center tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, I = ["accept"], L = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, R = { class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, ge = ["placeholder"], _e = {
76
+ key: 0,
77
+ class: "tpl:flex tpl:flex-col tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:px-3 tpl:py-3 tpl:bg-[var(--tpl-warning-light)] tpl:border tpl:border-[var(--tpl-warning)]"
78
+ }, ve = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, ye = { class: "tpl:flex tpl:gap-2" }, be = {
79
+ key: 1,
80
+ class: "tpl:flex tpl:items-start tpl:gap-2 tpl:rounded-lg tpl:px-3 tpl:py-2 tpl:text-xs tpl:bg-[var(--tpl-danger-light)] tpl:text-[var(--tpl-danger)]"
81
+ }, xe = ["disabled"], Se = { class: "tpl:m-0 tpl:pt-1 tpl:text-center tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, z = /*#__PURE__*/ y(/* @__PURE__ */ p({
82
+ __name: "DesignReferenceSidebar",
83
+ props: {
84
+ visible: { type: Boolean },
85
+ hasExistingBlocks: { type: Boolean }
86
+ },
87
+ emits: ["close", "apply"],
88
+ setup(p, { emit: h }) {
89
+ let y = p, z = h, { t: B } = ue(), Ce = m(oe, "DesignReferenceSidebar"), we = m(se, "DesignReferenceSidebar"), V = de({
90
+ authManager: we,
91
+ getTemplateId: () => Ce.state.template?.id ?? null,
92
+ onApply: (e) => z("apply", e)
93
+ }), H = i(null), U = i("image"), W = i(null), G = i(""), K = i(null), q = i(!1), J = i(!1), Y = re(() => !V.isGenerating.value && W.value !== null);
94
+ function X(e) {
95
+ U.value = e, Q();
96
+ }
97
+ function Te(e) {
98
+ let t = e.target, n = t.files?.[0];
99
+ n && Z(n), t.value = "";
100
+ }
101
+ function Z(e) {
102
+ if (e.size > 10485760) {
103
+ V.error.value = B.designReference.fileTooLarge;
104
+ return;
105
+ }
106
+ if (U.value === "image") {
107
+ if (![
108
+ "image/png",
109
+ "image/jpeg",
110
+ "image/jpg",
111
+ "image/webp"
112
+ ].includes(e.type)) {
113
+ V.error.value = B.designReference.invalidFileType;
114
+ return;
115
+ }
116
+ } else if (U.value === "pdf" && e.type !== "application/pdf") {
117
+ V.error.value = B.designReference.invalidFileType;
118
+ return;
119
+ }
120
+ W.value = e, V.error.value = null, K.value && URL.revokeObjectURL(K.value), e.type.startsWith("image/") ? K.value = URL.createObjectURL(e) : K.value = null;
121
+ }
122
+ function Q() {
123
+ K.value &&= (URL.revokeObjectURL(K.value), null), W.value = null;
124
+ }
125
+ function Ee(e) {
126
+ e.preventDefault(), J.value = !0;
127
+ }
128
+ function De() {
129
+ J.value = !1;
130
+ }
131
+ function Oe(e) {
132
+ e.preventDefault(), J.value = !1;
133
+ let t = e.dataTransfer?.files?.[0];
134
+ t && Z(t);
135
+ }
136
+ function $() {
137
+ if (!Y.value) return;
138
+ if (y.hasExistingBlocks && !q.value) {
139
+ q.value = !0;
140
+ return;
141
+ }
142
+ q.value = !1;
143
+ let e = {};
144
+ G.value.trim() && (e.prompt = G.value.trim()), U.value === "image" && W.value ? e.imageUpload = W.value : U.value === "pdf" && W.value && (e.pdfUpload = W.value), V.generate(e);
145
+ }
146
+ function ke() {
147
+ q.value = !1;
148
+ }
149
+ return r(() => y.visible, (e) => {
150
+ e || (q.value = !1);
151
+ }), ee(() => {
152
+ K.value &&= (URL.revokeObjectURL(K.value), null);
153
+ }), (ee, r) => (e(), ne(ae, {
154
+ "enter-active-class": "tpl-design-slide-enter-active",
155
+ "enter-from-class": "tpl:translate-x-full",
156
+ "enter-to-class": "tpl:translate-x-0",
157
+ "leave-active-class": "tpl-design-slide-leave-active",
158
+ "leave-from-class": "tpl:translate-x-0",
159
+ "leave-to-class": "tpl:translate-x-full"
160
+ }, {
161
+ default: n(() => [p.visible ? (e(), s("div", {
162
+ key: 0,
163
+ role: "complementary",
164
+ "aria-label": a(B).designReference.title,
165
+ class: "tpl-design-sidebar tpl:absolute tpl:top-14 tpl:right-0 tpl:bottom-0 tpl:flex tpl:w-[360px] tpl:flex-col tpl:border-l tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)]"
166
+ }, [o("div", me, [o("div", he, [c(a(g), {
167
+ size: 13,
168
+ "stroke-width": 2
169
+ }), o("span", null, u(a(B).designReference.title), 1)]), o("button", {
170
+ type: "button",
171
+ class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:text-[var(--tpl-text-muted)]",
172
+ "aria-label": a(B).designReference.close,
173
+ onClick: r[0] ||= (e) => z("close")
174
+ }, [c(a(v), {
175
+ size: 14,
176
+ "stroke-width": 2
177
+ })], 8, S)]), o("div", C, [a(V).isGenerating.value ? (e(), s("div", w, [o("div", T, [c(le), o("p", E, u(a(B).designReference.generating), 1)])])) : (e(), s("div", D, [
178
+ o("div", O, [o("button", {
179
+ class: "tpl:flex tpl:flex-1 tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-[var(--tpl-radius-sm)] tpl:px-2 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:transition-all",
180
+ style: t({
181
+ backgroundColor: U.value === "image" ? "var(--tpl-bg)" : "transparent",
182
+ color: U.value === "image" ? "var(--tpl-primary)" : "var(--tpl-text-muted)",
183
+ boxShadow: U.value === "image" ? "var(--tpl-shadow)" : "none"
184
+ }),
185
+ onClick: r[1] ||= (e) => X("image")
186
+ }, [c(a(fe), {
187
+ size: 12,
188
+ "stroke-width": 2
189
+ }), l(" " + u(a(B).designReference.uploadImage), 1)], 4), o("button", {
190
+ class: "tpl:flex tpl:flex-1 tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-[var(--tpl-radius-sm)] tpl:px-2 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:transition-all",
191
+ style: t({
192
+ backgroundColor: U.value === "pdf" ? "var(--tpl-bg)" : "transparent",
193
+ color: U.value === "pdf" ? "var(--tpl-primary)" : "var(--tpl-text-muted)",
194
+ boxShadow: U.value === "pdf" ? "var(--tpl-shadow)" : "none"
195
+ }),
196
+ onClick: r[2] ||= (e) => X("pdf")
197
+ }, [c(a(x), {
198
+ size: 12,
199
+ "stroke-width": 2
200
+ }), l(" " + u(a(B).designReference.uploadPdf), 1)], 4)]),
201
+ o("div", null, [W.value ? (e(), s("div", k, [o("div", A, [K.value ? (e(), s("img", {
202
+ key: 0,
203
+ src: K.value,
204
+ alt: W.value.name,
205
+ class: "tpl:h-auto tpl:max-h-48 tpl:w-full tpl:object-contain"
206
+ }, null, 8, j)) : (e(), s("div", M, [c(a(x), {
207
+ size: 32,
208
+ "stroke-width": 1.5,
209
+ class: "tpl:text-[var(--tpl-text-dim)]"
210
+ }), o("span", N, u(W.value.name), 1)])), o("button", {
211
+ class: "tpl:absolute tpl:top-2 tpl:right-2 tpl:rounded-full tpl:p-1 tpl:transition-colors tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text-muted)] tpl:shadow-[var(--tpl-shadow)]",
212
+ onClick: Q
213
+ }, [c(a(v), {
214
+ size: 12,
215
+ "stroke-width": 2
216
+ })])])])) : (e(), s("div", {
217
+ key: 1,
218
+ class: "tpl-design-dropzone tpl:flex tpl:cursor-pointer tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:border-2 tpl:border-dashed tpl:px-4 tpl:py-8 tpl:transition-colors",
219
+ style: t({
220
+ borderColor: J.value ? "var(--tpl-primary)" : "var(--tpl-border-light)",
221
+ backgroundColor: J.value ? "var(--tpl-primary-light)" : "var(--tpl-bg)"
222
+ }),
223
+ onClick: r[3] ||= (e) => H.value?.click(),
224
+ onDragover: Ee,
225
+ onDragleave: De,
226
+ onDrop: Oe
227
+ }, [
228
+ c(a(_), {
229
+ size: 24,
230
+ "stroke-width": 1.5,
231
+ class: "tpl:text-[var(--tpl-text-dim)]"
232
+ }),
233
+ o("span", P, u(a(B).designReference.dropHint), 1),
234
+ o("span", F, u(U.value === "image" ? a(B).designReference.acceptedImages : a(B).designReference.acceptedPdf), 1)
235
+ ], 36)), o("input", {
236
+ ref_key: "fileInput",
237
+ ref: H,
238
+ type: "file",
239
+ class: "tpl:hidden",
240
+ accept: U.value === "image" ? "image/png,image/jpeg,image/webp" : "application/pdf",
241
+ onChange: Te
242
+ }, null, 40, I)]),
243
+ o("div", L, [o("label", R, u(a(B).designReference.promptLabel), 1), te(o("textarea", {
244
+ "onUpdate:modelValue": r[4] ||= (e) => G.value = e,
245
+ class: d(["tpl:min-h-[72px] tpl:w-full tpl:resize-none tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:px-3 tpl:py-2 tpl:font-sans tpl:text-sm tpl:outline-none tpl:transition-colors tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)] tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)]", ["tpl-design-prompt-input"]]),
246
+ placeholder: a(B).designReference.promptPlaceholder,
247
+ rows: "3"
248
+ }, null, 8, ge), [[ie, G.value]])]),
249
+ q.value ? (e(), s("div", _e, [o("p", ve, u(a(B).designReference.replaceWarning), 1), o("div", ye, [o("button", {
250
+ class: "tpl:flex-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:transition-all tpl:text-[var(--tpl-text-muted)] tpl:border tpl:border-[var(--tpl-border)]",
251
+ style: { "background-color": "transparent" },
252
+ onClick: ke
253
+ }, u(a(B).designReference.replaceCancel), 1), o("button", {
254
+ type: "button",
255
+ class: d([a(b), "tpl:flex-1"]),
256
+ onClick: $
257
+ }, u(a(B).designReference.replaceConfirm), 3)])])) : f("", !0),
258
+ a(V).error.value ? (e(), s("div", be, [c(a(ce), {
259
+ size: 14,
260
+ "stroke-width": 2,
261
+ class: "tpl:mt-0.5 tpl:shrink-0"
262
+ }), o("span", null, u(a(B).designReference.error), 1)])) : f("", !0),
263
+ q.value ? f("", !0) : (e(), s("button", {
264
+ key: 2,
265
+ type: "button",
266
+ class: d([a(b), "tpl:w-full"]),
267
+ disabled: !Y.value,
268
+ onClick: $
269
+ }, [c(a(g), {
270
+ size: 16,
271
+ "stroke-width": 2
272
+ }), l(" " + u(a(B).designReference.generate), 1)], 10, xe)),
273
+ o("p", Se, u(a(B).aiMenu.disclaimer), 1)
274
+ ]))])], 8, pe)) : f("", !0)]),
275
+ _: 1
276
+ }));
277
+ }
278
+ }), [["__scopeId", "data-v-a5a76ec5"]]);
279
+ //#endregion
280
+ export { z as default };
@@ -50,7 +50,7 @@ var T = y({
50
50
  a("h3", k, l(i(y).issues.panelTitle), 1),
51
51
  q.value > 0 ? (e(), o("span", {
52
52
  key: 0,
53
- class: "tpl:ml-auto tpl:rounded-full tpl:bg-[var(--tpl-bg-hover)] tpl:px-2 tpl:py-0.5 tpl:text-[11px] tpl:text-[var(--tpl-text-muted)]",
53
+ class: "tpl:ml-auto tpl:rounded-full tpl:bg-[var(--tpl-bg-hover)] tpl:px-2 tpl:py-0.5 tpl:text-[10px] tpl:text-[var(--tpl-text-muted)]",
54
54
  title: i(B)(i(y).issues.issueCountTooltip, { count: q.value })
55
55
  }, l(q.value), 9, A)) : m("", !0)
56
56
  ]), !i(V) || i(V).unavailable.value ? (e(), o("div", j)) : q.value === 0 ? (e(), o("div", M, l(i(y).issues.emptyState), 1)) : (e(!0), o(f, { key: 2 }, n([
@@ -77,7 +77,7 @@ var T = y({
77
77
  }
78
78
  ], (r) => (e(), o("section", { key: r.key }, [r.items.length > 0 ? (e(), o("header", {
79
79
  key: 0,
80
- class: u(["tpl:mb-2 tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-[11px] tpl:font-semibold tpl:uppercase tpl:tracking-wide", r.tone])
80
+ class: u(["tpl:mb-2 tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:font-semibold tpl:uppercase tpl:tracking-wide", r.tone])
81
81
  }, [
82
82
  (e(), d(t(r.icon), {
83
83
  size: 12,
@@ -95,7 +95,7 @@ var T = y({
95
95
  key: 0,
96
96
  type: "button",
97
97
  "data-testid": "issue-jump",
98
- class: "tpl:flex tpl:items-center tpl:gap-1 tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-hover)] tpl:px-2 tpl:py-1 tpl:text-[11px] tpl:font-medium tpl:text-[var(--tpl-text)]",
98
+ class: "tpl:flex tpl:items-center tpl:gap-1 tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-hover)] tpl:px-2 tpl:py-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]",
99
99
  onClick: (e) => J(t)
100
100
  }, [s(i(T), {
101
101
  size: 10,
@@ -103,7 +103,7 @@ var T = y({
103
103
  }), c(" " + l(i(y).issues.jump), 1)], 8, R)) : m("", !0), t.fix ? (e(), o("button", {
104
104
  key: 1,
105
105
  type: "button",
106
- class: "tpl:flex tpl:items-center tpl:gap-1 tpl:rounded-md tpl:bg-[var(--tpl-primary)] tpl:px-2 tpl:py-1 tpl:text-[11px] tpl:font-medium tpl:text-[var(--tpl-on-primary)]",
106
+ class: "tpl:flex tpl:items-center tpl:gap-1 tpl:rounded-md tpl:bg-[var(--tpl-primary)] tpl:px-2 tpl:py-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-on-primary)]",
107
107
  title: t.fix.description,
108
108
  onClick: (e) => Y(t)
109
109
  }, [s(i(E), {
@@ -5,6 +5,6 @@ var r = {}, i = { class: "tpl-loading-track" };
5
5
  function a(n, r) {
6
6
  return e(), t("div", i);
7
7
  }
8
- var o = /*#__PURE__*/ n(r, [["render", a], ["__scopeId", "data-v-c3d50014"]]);
8
+ var o = /*#__PURE__*/ n(r, [["render", a], ["__scopeId", "data-v-e61f3b63"]]);
9
9
  //#endregion
10
10
  export { o as t };
@@ -2,7 +2,7 @@ import { A as e, At as t, F as n, K as r, M as i, S as a, Z as o, at as s, c, d
2
2
  import { c as b, s as x } from "./runtime-dom.esm-bundler-BGbPz4-g.js";
3
3
  import { R as S } from "./dist-tGkjkX-v.js";
4
4
  import { t as C } from "./dist-BDuPwOyn.js";
5
- import { C as w, b as T, w as E, x as D } from "./useEditorCore-C5APBjjV.js";
5
+ import { C as w, b as T, w as E, x as D } from "./useEditorCore-BUVbQgwb.js";
6
6
  import { K as O, T as k, Y as A, Z as j, g as M, k as N, v as P } from "./keys-BdoSgsz9.js";
7
7
  import { t as ee } from "./useI18n-Ds_-druD.js";
8
8
  import { n as F } from "./usePopoverPosition-Du-Ah8E9.js";
@@ -289,7 +289,7 @@ var Q = /*#__PURE__*/ B(Y, [["render", Z]]), Ce = [
289
289
  return typeof e == "string" ? e : e.label;
290
290
  }
291
291
  return (n, r) => (e(), l("select", {
292
- class: m(["tpl:h-8 tpl:cursor-pointer tpl:rounded tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-2 tpl:text-xs tpl:text-[var(--tpl-text)] tpl:outline-none", t.widthClass ?? "tpl:w-20"]),
292
+ class: m(["tpl:h-8 tpl:cursor-pointer tpl:rounded tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-2 tpl:text-xs tpl:text-[var(--tpl-text)] tpl:outline-none tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)]", t.widthClass ?? "tpl:w-20"]),
293
293
  value: t.modelValue,
294
294
  "aria-label": t.label,
295
295
  title: t.label,
@@ -3,7 +3,7 @@ import { t as f } from "./useI18n-Ds_-druD.js";
3
3
  import { t as p } from "./loader-circle-z5eeqasv.js";
4
4
  import { t as m } from "./triangle-alert-DGLAyXnh.js";
5
5
  import { d as h, v as g, x as _ } from "./styleConstants-C_YAPdQS.js";
6
- import { t as v } from "./TplModal-C8xGjC1l.js";
6
+ import { t as v } from "./TplModal-DVMS_nAn.js";
7
7
  //#region src/components/RestoreVersionDialog.vue?vue&type=script&setup=true&lang.ts
8
8
  var y = ["aria-busy"], b = { class: "tpl:flex tpl:items-center tpl:gap-2" }, x = {
9
9
  id: "tpl-restore-version-title",
@@ -1,7 +1,7 @@
1
1
  import { A as e, At as t, B as n, D as r, F as i, M as a, O as o, R as s, S as c, V as l, Z as u, at as d, c as f, d as p, g as m, h, jt as g, kt as _, l as v, r as y, s as b, u as x, v as S } from "./vue.runtime.esm-bundler-CyqhBwpY.js";
2
2
  import { a as C, c as w, s as T } from "./runtime-dom.esm-bundler-BGbPz4-g.js";
3
3
  import { d as ee } from "./socialIcons-DkGcpEwC.js";
4
- import { E, s as D } from "./useEditorCore-C5APBjjV.js";
4
+ import { E, s as D } from "./useEditorCore-BUVbQgwb.js";
5
5
  import { H as O, Z as k, g as A, p as te } from "./keys-BdoSgsz9.js";
6
6
  import { t as j } from "./useI18n-Ds_-druD.js";
7
7
  import { t as M } from "./chevron-down-Dkr-7Ywl.js";
@@ -9,8 +9,8 @@ import { t as N } from "./chevron-up-CQAyl0kC.js";
9
9
  import { t as P } from "./loader-circle-z5eeqasv.js";
10
10
  import { v as F } from "./styleConstants-C_YAPdQS.js";
11
11
  import { n as I } from "./emailFrameWidth-BmFCN2dp.js";
12
- import { t as L } from "./TplModal-C8xGjC1l.js";
13
- import { t as R } from "./BlockPreviewCanvas-DXGjUECG.js";
12
+ import { t as L } from "./TplModal-DVMS_nAn.js";
13
+ import { t as R } from "./BlockPreviewCanvas-BMC16_QU.js";
14
14
  //#region src/components/SavedBlockPreviewRow.vue?vue&type=script&setup=true&lang.ts
15
15
  var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relative tpl:min-w-0 tpl:flex-1" }, H = {
16
16
  key: 0,
@@ -102,7 +102,7 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
102
102
  class: "tpl:mb-1.5 tpl:shrink-0 tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
103
103
  }, se = { class: "tpl:text-[var(--tpl-text-dim)]" }, ce = {
104
104
  key: 0,
105
- class: "tpl:mb-1.5 tpl:shrink-0 tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]"
105
+ class: "tpl:mb-1.5 tpl:shrink-0 tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]"
106
106
  }, le = {
107
107
  class: "tpl-sr-only",
108
108
  role: "status",
@@ -193,7 +193,7 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
193
193
  type: "text",
194
194
  "data-testid": "saved-blocks-name-input",
195
195
  placeholder: d(S).savedBlocks.namePlaceholder,
196
- class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-[var(--tpl-shadow-sm)] tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
196
+ class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-[var(--tpl-shadow-sm)] tpl:outline-none tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)] tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
197
197
  disabled: R.value
198
198
  }, null, 8, X), [[C, N.value]])]),
199
199
  f("div", Z, [
@@ -205,7 +205,7 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
205
205
  "data-testid": "saved-blocks-category-input",
206
206
  list: "tpl-saved-block-categories",
207
207
  placeholder: d(S).savedBlocks.categoryPlaceholder,
208
- class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-[var(--tpl-shadow-sm)] tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
208
+ class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-[var(--tpl-shadow-sm)] tpl:outline-none tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)] tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
209
209
  disabled: R.value
210
210
  }, null, 8, re), [[C, I.value]]),
211
211
  f("datalist", ie, [(e(!0), p(y, null, a(d(E).categories.value, (t) => (e(), p("option", {
@@ -1,6 +1,6 @@
1
1
  import { A as e, At as t, B as n, E as r, F as i, M as a, R as o, S as ee, V as s, Z as c, _ as te, at as l, c as u, d, g as f, jt as p, kt as m, l as h, r as g, s as _, u as v, v as y } from "./vue.runtime.esm-bundler-CyqhBwpY.js";
2
2
  import { a as b, c as x, i as S, s as C } from "./runtime-dom.esm-bundler-BGbPz4-g.js";
3
- import "./useEditorCore-C5APBjjV.js";
3
+ import "./useEditorCore-BUVbQgwb.js";
4
4
  import { H as ne, J as re, Z as w, g as ie } from "./keys-BdoSgsz9.js";
5
5
  import { t as ae } from "./useI18n-Ds_-druD.js";
6
6
  import { t as T } from "./blockTypeIcons-CdXugKyV.js";
@@ -12,7 +12,7 @@ import { t as le } from "./x-3BHV3Q6K.js";
12
12
  import { v as ue } from "./styleConstants-C_YAPdQS.js";
13
13
  import { t as de } from "./formatAbsoluteDateTime-DMmop3C-.js";
14
14
  import { t as fe } from "./formatRelativeTime-CtUU-QZ8.js";
15
- import { t as pe } from "./TplModal-C8xGjC1l.js";
15
+ import { t as pe } from "./TplModal-DVMS_nAn.js";
16
16
  //#region src/components/SavedBlocksBrowserModal.vue?vue&type=script&setup=true&lang.ts
17
17
  var me = {
18
18
  role: "dialog",
@@ -68,7 +68,7 @@ var me = {
68
68
  props: { visible: { type: Boolean } },
69
69
  emits: ["close", "insert"],
70
70
  setup(y, { emit: k }) {
71
- let at = y, A = k, ot = te(() => import("./BlockPreviewCanvas-DXGjUECG.js").then((e) => e.n)), { t: j, format: M } = ae(), N = w(ne, "SavedBlocksBrowserModal"), P = w(ie, "SavedBlocksBrowserModal"), st = ee(re, void 0), F = c(""), I = c(""), L = c(null), R = c(null), z = c(null), B = c(""), V = c(""), H = c(null), U = c("end"), W = _(() => {
71
+ let at = y, A = k, ot = te(() => import("./BlockPreviewCanvas-BMC16_QU.js").then((e) => e.n)), { t: j, format: M } = ae(), N = w(ne, "SavedBlocksBrowserModal"), P = w(ie, "SavedBlocksBrowserModal"), st = ee(re, void 0), F = c(""), I = c(""), L = c(null), R = c(null), z = c(null), B = c(""), V = c(""), H = c(null), U = c("end"), W = _(() => {
72
72
  let e = F.value.trim().toLowerCase(), t = I.value;
73
73
  return N.savedBlocks.value.filter((n) => !(e && !n.name.toLowerCase().includes(e) || t && n.category !== t));
74
74
  }), G = _(() => N.isLoading.value && N.savedBlocks.value.length === 0), ct = _(() => F.value.trim().length > 0 || I.value !== ""), K = _(() => L.value ? N.savedBlocks.value.find((e) => e.id === L.value) ?? null : null), lt = _(() => {
@@ -186,13 +186,13 @@ var me = {
186
186
  type: "text",
187
187
  placeholder: l(j).savedBlocks.search,
188
188
  disabled: G.value,
189
- 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:disabled:opacity-50 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]"
189
+ 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:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)] tpl:disabled:opacity-50 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]"
190
190
  }, null, 8, Se), [[b, F.value]])]), l(N).categories.value.length > 0 ? s((e(), d("select", {
191
191
  key: 0,
192
192
  "onUpdate:modelValue": o[1] ||= (e) => I.value = e,
193
193
  "data-testid": "saved-blocks-category-filter",
194
194
  "aria-label": l(j).savedBlocks.filterByCategory,
195
- class: "tpl:h-8 tpl:w-full 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)]"
195
+ class: "tpl:h-8 tpl:w-full tpl:rounded-md tpl:border tpl:px-2 tpl:text-xs tpl:outline-none tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)] tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]"
196
196
  }, [u("option", we, p(l(j).savedBlocks.allCategories), 1), (e(!0), d(g, null, a(l(N).categories.value, (t) => (e(), d("option", {
197
197
  key: t,
198
198
  value: t
@@ -223,7 +223,7 @@ var me = {
223
223
  "onUpdate:modelValue": o[2] ||= (e) => B.value = e,
224
224
  type: "text",
225
225
  "aria-label": l(j).savedBlocks.rename,
226
- class: "tpl:h-7 tpl:w-full 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)]",
226
+ class: "tpl:h-7 tpl:w-full tpl:rounded-md tpl:border tpl:px-2 tpl:text-xs tpl:outline-none tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)] tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
227
227
  onKeydown: [C(x((e) => Z(n.id), ["prevent", "stop"]), ["enter"]), o[3] ||= C(x((e) => X(), ["prevent", "stop"]), ["esc"])]
228
228
  }, null, 40, Ae), [[b, B.value]]), s(u("input", {
229
229
  "onUpdate:modelValue": o[4] ||= (e) => V.value = e,
@@ -232,7 +232,7 @@ var me = {
232
232
  "aria-label": l(j).savedBlocks.category,
233
233
  placeholder: l(j).savedBlocks.categoryPlaceholder,
234
234
  list: "tpl-saved-block-browser-categories",
235
- class: "tpl:h-7 tpl:w-full 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)]",
235
+ class: "tpl:h-7 tpl:w-full tpl:rounded-md tpl:border tpl:px-2 tpl:text-xs tpl:outline-none tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)] tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
236
236
  onKeydown: [C(x((e) => Z(n.id), ["prevent", "stop"]), ["enter"]), o[5] ||= C(x((e) => X(), ["prevent", "stop"]), ["esc"])]
237
237
  }, null, 40, je), [[b, V.value]])], 40, ke)) : (e(), d("button", {
238
238
  key: 1,
@@ -300,7 +300,7 @@ var me = {
300
300
  }), u("p", Qe, p(l(j).savedBlocks.selectToPreview), 1)]))])]),
301
301
  u("div", $e, [u("div", et, [u("label", tt, p(l(j).savedBlocks.insertPosition), 1), s(u("select", {
302
302
  "onUpdate:modelValue": o[6] ||= (e) => U.value = e,
303
- 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)]"
303
+ class: "tpl:h-7 tpl:max-w-[220px] tpl:rounded-md tpl:border tpl:px-2 tpl:text-xs tpl:outline-none tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)] tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]"
304
304
  }, [(e(!0), d(g, null, a(lt.value, (t) => (e(), d("option", {
305
305
  key: t.value,
306
306
  value: t.value
@@ -5,7 +5,7 @@ var c = /* @__PURE__ */ s({
5
5
  __name: "SavedBlocksPanels",
6
6
  props: { feature: {} },
7
7
  setup(s) {
8
- let c = s, l = t(() => import("./SavedBlocksPickBar-cI7bDQQi.js")), u = t(() => import("./SaveBlockDialog-BuTuVlLr.js")), d = t(() => import("./SavedBlocksBrowserModal-Srhix8BB.js"));
8
+ let c = s, l = t(() => import("./SavedBlocksPickBar-pEi9Et8Q.js")), u = t(() => import("./SaveBlockDialog-C0BdEGeL.js")), d = t(() => import("./SavedBlocksBrowserModal-BzDgXtr4.js"));
9
9
  function f(e, t) {
10
10
  c.feature.insert(e, t);
11
11
  }
@@ -0,0 +1,53 @@
1
+ import { A as e, at as t, c as n, d as r, g as i, h as a, jt as o, kt as s, v as c } from "./vue.runtime.esm-bundler-CyqhBwpY.js";
2
+ import { O as l } from "./useEditorCore-BUVbQgwb.js";
3
+ import { t as u } from "./useI18n-Ds_-druD.js";
4
+ import { t as d } from "./x-3BHV3Q6K.js";
5
+ import { v as f, x as p } from "./styleConstants-C_YAPdQS.js";
6
+ //#region src/components/SavedBlocksPickBar.vue?vue&type=script&setup=true&lang.ts
7
+ var m = {
8
+ "data-testid": "saved-blocks-pick-bar",
9
+ class: "tpl:absolute tpl:bottom-10 tpl:left-12 tpl:right-[320px] tpl:z-50 tpl:flex tpl:justify-center tpl:px-4",
10
+ style: { "pointer-events": "none" }
11
+ }, h = ["aria-label"], g = { class: "tpl:flex tpl:flex-col" }, _ = {
12
+ "data-testid": "saved-blocks-pick-count",
13
+ class: "tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]"
14
+ }, v = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, y = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, b = ["disabled"], x = /* @__PURE__ */ c({
15
+ __name: "SavedBlocksPickBar",
16
+ props: { count: {} },
17
+ emits: ["confirm", "cancel"],
18
+ setup(c, { emit: x }) {
19
+ let S = c, C = x, { t: w, format: T } = u();
20
+ function E() {
21
+ S.count > 0 && C("confirm");
22
+ }
23
+ return (u, x) => (e(), r("div", m, [n("div", {
24
+ role: "toolbar",
25
+ "aria-label": t(w).savedBlocks.pickToolbar,
26
+ class: "tpl-scale-in tpl:flex tpl:items-center tpl:gap-3 tpl:rounded-[var(--tpl-radius-lg)] tpl:border tpl:py-2 tpl:pl-4 tpl:pr-2 tpl:border-[var(--tpl-border)]",
27
+ style: {
28
+ "pointer-events": "auto",
29
+ "background-color": "var(--tpl-bg-elevated)",
30
+ "box-shadow": "var(--tpl-shadow-xl)"
31
+ }
32
+ }, [n("div", g, [n("span", _, o(t(T)(t(w).savedBlocks.pickCount, { count: c.count })), 1), n("span", v, o(t(w).savedBlocks.pickHint), 1)]), n("div", y, [n("button", {
33
+ type: "button",
34
+ "data-testid": "saved-blocks-pick-cancel",
35
+ class: s(t(p)),
36
+ onClick: x[0] ||= (e) => C("cancel")
37
+ }, [i(t(d), {
38
+ size: 13,
39
+ "stroke-width": 2
40
+ }), a(" " + o(t(w).savedBlocks.cancel), 1)], 2), n("button", {
41
+ type: "button",
42
+ "data-testid": "saved-blocks-pick-confirm",
43
+ class: s(t(f)),
44
+ disabled: c.count === 0,
45
+ onClick: E
46
+ }, [i(t(l), {
47
+ size: 13,
48
+ "stroke-width": 2
49
+ }), a(" " + o(t(w).savedBlocks.save), 1)], 10, b)])], 8, h)]));
50
+ }
51
+ });
52
+ //#endregion
53
+ export { x as default };