@templatical/editor 0.19.0 → 0.21.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 (189) hide show
  1. package/README.md +1 -0
  2. package/dist/{AiChatSidebar-DAQTFuvi.js → AiChatSidebar-K_AehWc-.js} +9 -9
  3. package/dist/{AiFeatureMenu-aFSO20PR.js → AiFeatureMenu-CPdNpHpZ.js} +6 -6
  4. package/dist/{BlockIssueBadge-BQmq1bxn.js → BlockIssueBadge-Dmj9rVra.js} +4 -4
  5. package/dist/{CloudEditor-D0K-m1GA.js → CloudEditor-3a7mqMhe.js} +263 -315
  6. package/dist/{CollaboratorBar-CJO3l6Dt.js → CollaboratorBar-Ds0YZWzV.js} +3 -3
  7. package/dist/{ColorPicker-BsgpTJqK.js → ColorPicker-s9GHXjZs.js} +4 -4
  8. package/dist/CommentsSidebar-DvNEdugN.js +435 -0
  9. package/dist/{CountdownBlock-Bn5w7C-p.js → CountdownBlock-BUHYIAe9.js} +1 -1
  10. package/dist/{CountdownToolbar-PJI3ffi1.js → CountdownToolbar-DPRcv3Fu.js} +3 -4
  11. package/dist/{DesignReferenceSidebar-QfAV8XT9.js → DesignReferenceSidebar-DNmK3dxp.js} +8 -8
  12. package/dist/{IssuesPanel-CTjRgz8w.js → IssuesPanel-CEnEGFtd.js} +7 -7
  13. package/dist/{MergeTagSuggestion-DCuaSOPQ.js → MergeTagSuggestion-DMe4rqn0.js} +2 -2
  14. package/dist/NumberWithSuffix-CCPN_oCh.js +121 -0
  15. package/dist/{ParagraphEditor-Cf75UfSo.js → ParagraphEditor-CkwBirNl.js} +47 -47
  16. package/dist/{RichTextEditorContent-MdaLz6Q3.js → RichTextEditorContent-FbnWsh46.js} +6 -6
  17. package/dist/SaveBlockDialog-Cc5BSUBx.js +264 -0
  18. package/dist/SavedBlockPreviewCanvas-ubttfmKr.js +109 -0
  19. package/dist/SavedBlocksBrowserModal-LkY_U3lY.js +323 -0
  20. package/dist/SavedBlocksPanels-CET0zvH6.js +36 -0
  21. package/dist/SavedBlocksPickBar-poGS4PoI.js +52 -0
  22. package/dist/{SnapshotHistory-C_Y1LzAY.js → SnapshotHistory-BvF5IXn1.js} +8 -8
  23. package/dist/{TemplateScoringPanel-DikuKc6i.js → TemplateScoringPanel-ifGGGWs5.js} +14 -14
  24. package/dist/{TestEmailModal-BW8aTtzf.js → TestEmailModal-BRaM_eko.js} +4 -4
  25. package/dist/{TitleEditor-CCUkbRN0.js → TitleEditor-Bhgzh-iQ.js} +11 -11
  26. package/dist/{TplModal-DoOwUKlT.js → TplModal-BA-Zsg0O.js} +3 -3
  27. package/dist/{blockTypeIcons-BlPKjD7M.js → blockTypeIcons-B1-Yzp-a.js} +6 -6
  28. package/dist/bundle-stats.json +8 -8
  29. package/dist/{ca-DbWoy4rG.js → ca-BBgad6y5.js} +50 -3
  30. package/dist/cdn/chunks/{AiFeatureMenu-RwJiaPXZ.js → AiFeatureMenu--PdArSnv.js} +7 -7
  31. package/dist/cdn/chunks/{AiFeatureMenu-RwJiaPXZ.js.map → AiFeatureMenu--PdArSnv.js.map} +1 -1
  32. package/dist/cdn/chunks/{BlockIssueBadge-DM-TDKbr.js → BlockIssueBadge-DMSd0SIl.js} +4 -4
  33. package/dist/cdn/chunks/{BlockIssueBadge-DM-TDKbr.js.map → BlockIssueBadge-DMSd0SIl.js.map} +1 -1
  34. package/dist/cdn/chunks/{CloudEditor-Dufl354p.js → CloudEditor-DnTfI5GU.js} +273 -325
  35. package/dist/cdn/chunks/CloudEditor-DnTfI5GU.js.map +1 -0
  36. package/dist/cdn/chunks/{CollaboratorBar-xsU20iPl.js → CollaboratorBar-CBqd7ldq.js} +3 -3
  37. package/dist/cdn/chunks/{CollaboratorBar-xsU20iPl.js.map → CollaboratorBar-CBqd7ldq.js.map} +1 -1
  38. package/dist/cdn/chunks/{ColorPicker-y_obnw4o.js → ColorPicker-DCdWP8YB.js} +99 -99
  39. package/dist/cdn/chunks/ColorPicker-DCdWP8YB.js.map +1 -0
  40. package/dist/cdn/chunks/{CountdownBlock-sHsRMe1q.js → CountdownBlock-BDnWMAME.js} +2 -2
  41. package/dist/cdn/chunks/{CountdownBlock-sHsRMe1q.js.map → CountdownBlock-BDnWMAME.js.map} +1 -1
  42. package/dist/cdn/chunks/{CountdownToolbar-Ckc_jEi-.js → CountdownToolbar-BbLoo22S.js} +4 -5
  43. package/dist/cdn/chunks/{CountdownToolbar-Ckc_jEi-.js.map → CountdownToolbar-BbLoo22S.js.map} +1 -1
  44. package/dist/cdn/chunks/{IssuesPanel-DF5Ajuna.js → IssuesPanel-CfudrI3T.js} +7 -7
  45. package/dist/cdn/chunks/{IssuesPanel-DF5Ajuna.js.map → IssuesPanel-CfudrI3T.js.map} +1 -1
  46. package/dist/cdn/chunks/{MergeTagSuggestion-BmMmdcRg.js → MergeTagSuggestion-D7TsECll.js} +2 -2
  47. package/dist/cdn/chunks/{MergeTagSuggestion-BmMmdcRg.js.map → MergeTagSuggestion-D7TsECll.js.map} +1 -1
  48. package/dist/cdn/chunks/NumberWithSuffix-BmMx9_n_.js +123 -0
  49. package/dist/cdn/chunks/NumberWithSuffix-BmMx9_n_.js.map +1 -0
  50. package/dist/cdn/chunks/{ParagraphEditor-BkafKSju.js → ParagraphEditor-DPCUSXpx.js} +82 -82
  51. package/dist/cdn/chunks/{ParagraphEditor-BkafKSju.js.map → ParagraphEditor-DPCUSXpx.js.map} +1 -1
  52. package/dist/cdn/chunks/{RichTextEditorContent-BthhzOZS.js → RichTextEditorContent-B8dOiv_D.js} +5 -5
  53. package/dist/cdn/chunks/{RichTextEditorContent-BthhzOZS.js.map → RichTextEditorContent-B8dOiv_D.js.map} +1 -1
  54. package/dist/cdn/chunks/SaveBlockDialog-BY3SMnNV.js +259 -0
  55. package/dist/cdn/chunks/SaveBlockDialog-BY3SMnNV.js.map +1 -0
  56. package/dist/cdn/chunks/SavedBlockPreviewCanvas-LpaOcusq.js +110 -0
  57. package/dist/cdn/chunks/SavedBlockPreviewCanvas-LpaOcusq.js.map +1 -0
  58. package/dist/cdn/chunks/SavedBlocksBrowserModal-CfIcmyzF.js +318 -0
  59. package/dist/cdn/chunks/SavedBlocksBrowserModal-CfIcmyzF.js.map +1 -0
  60. package/dist/cdn/chunks/SavedBlocksPanels-kIowCfh_.js +38 -0
  61. package/dist/cdn/chunks/SavedBlocksPanels-kIowCfh_.js.map +1 -0
  62. package/dist/cdn/chunks/SavedBlocksPickBar-WSGe1GiZ.js +52 -0
  63. package/dist/cdn/chunks/SavedBlocksPickBar-WSGe1GiZ.js.map +1 -0
  64. package/dist/cdn/chunks/{TitleEditor-DLv9cXba.js → TitleEditor-iwd-O9sO.js} +11 -11
  65. package/dist/cdn/chunks/{TitleEditor-DLv9cXba.js.map → TitleEditor-iwd-O9sO.js.map} +1 -1
  66. package/dist/cdn/chunks/{blockTypeIcons-B0uibGX7.js → blockTypeIcons-BYz0fgLz.js} +7 -7
  67. package/dist/cdn/chunks/{blockTypeIcons-B0uibGX7.js.map → blockTypeIcons-BYz0fgLz.js.map} +1 -1
  68. package/dist/cdn/chunks/{ca-DbWoy4rG.js → ca-BBgad6y5.js} +51 -4
  69. package/dist/cdn/chunks/ca-BBgad6y5.js.map +1 -0
  70. package/dist/{de-CTYXVU9v.js → cdn/chunks/de-Bw6fB5JU.js} +2 -24
  71. package/dist/cdn/chunks/{de-CTYXVU9v.js.map → de-Bw6fB5JU.js.map} +1 -1
  72. package/dist/cdn/chunks/{de-CgGOnerg.js → de-D7WbpFBR.js} +50 -3
  73. package/dist/cdn/chunks/de-D7WbpFBR.js.map +1 -0
  74. package/dist/{en-DrUV9xth.js → cdn/chunks/en-BrZ0uGK2.js} +51 -2
  75. package/dist/cdn/chunks/en-BrZ0uGK2.js.map +1 -0
  76. package/dist/{en-BtmIaJeb.js → cdn/chunks/en-DAdHJz7h.js} +2 -24
  77. package/dist/cdn/chunks/{en-BtmIaJeb.js.map → en-DAdHJz7h.js.map} +1 -1
  78. package/dist/{es-DwbKjU7q.js → cdn/chunks/es-tLSLysPs.js} +51 -2
  79. package/dist/cdn/chunks/es-tLSLysPs.js.map +1 -0
  80. package/dist/cdn/chunks/{extensions-DLHvZ0UH.js → extensions-DeJh3E9b.js} +29 -29
  81. package/dist/cdn/chunks/{extensions-DLHvZ0UH.js.map → extensions-DeJh3E9b.js.map} +1 -1
  82. package/dist/cdn/chunks/{features-Cnfv4QAY.js → features-pLfGJWIB.js} +1802 -1603
  83. package/dist/cdn/chunks/features-pLfGJWIB.js.map +1 -0
  84. package/dist/cdn/chunks/{icons-DbcM69bb.js → icons-FLemooQz.js} +16 -16
  85. package/dist/cdn/chunks/{icons-DbcM69bb.js.map → icons-FLemooQz.js.map} +1 -1
  86. package/dist/cdn/chunks/{media-library-DpSMwHd4.js → media-library-mCCZieYO.js} +163 -163
  87. package/dist/cdn/chunks/{media-library-DpSMwHd4.js.map → media-library-mCCZieYO.js.map} +1 -1
  88. package/dist/cdn/chunks/{pt-BR-Bcc5Tjed.js → pt-BR-BWFokdTU.js} +50 -3
  89. package/dist/cdn/chunks/pt-BR-BWFokdTU.js.map +1 -0
  90. package/dist/{pt-BR-B2ZvFlRL.js → cdn/chunks/pt-BR-w2sGzHNX.js} +2 -24
  91. package/dist/cdn/chunks/{pt-BR-B2ZvFlRL.js.map → pt-BR-w2sGzHNX.js.map} +1 -1
  92. package/dist/cdn/chunks/{pusher-CIwiKF8H.js → pusher-R0v5p99W.js} +27 -22
  93. package/dist/cdn/chunks/pusher-R0v5p99W.js.map +1 -0
  94. package/dist/cdn/chunks/{quality-D9QqkRcU.js → quality-BRbHtAk1.js} +460 -460
  95. package/dist/cdn/chunks/{quality-D9QqkRcU.js.map → quality-BRbHtAk1.js.map} +1 -1
  96. package/dist/cdn/chunks/{renderer-BsLQZNXU.js → renderer-Yg1XhsBN.js} +18 -18
  97. package/dist/cdn/chunks/{renderer-BsLQZNXU.js.map → renderer-Yg1XhsBN.js.map} +1 -1
  98. package/dist/cdn/chunks/{src-zu1ehVNN.js → src-BDJeYiVE.js} +33 -33
  99. package/dist/cdn/chunks/{src-zu1ehVNN.js.map → src-BDJeYiVE.js.map} +1 -1
  100. package/dist/cdn/chunks/{styles-Dx-jXeCd.js → styles-Bp5Jsu9J.js} +1422 -1332
  101. package/dist/cdn/chunks/styles-Bp5Jsu9J.js.map +1 -0
  102. package/dist/cdn/chunks/{tiptap-C2indasq.js → tiptap-BMZ-OENR.js} +2012 -1863
  103. package/dist/cdn/chunks/tiptap-BMZ-OENR.js.map +1 -0
  104. package/dist/cdn/editor.css +1 -1
  105. package/dist/cdn/editor.js +123 -114
  106. package/dist/cdn/editor.js.map +1 -1
  107. package/dist/{check-Cg6Mc2pP.js → check-BpQDKiPz.js} +1 -1
  108. package/dist/{chevron-down-dClfxKrJ.js → chevron-down-j8GrdTyz.js} +1 -1
  109. package/dist/chevron-up-BACyVhyC.js +7 -0
  110. package/dist/{circle-alert-Bhzm-fNA.js → circle-alert-CgtE46ND.js} +1 -1
  111. package/dist/{clock-m7TwQw4b.js → clock-BzKLLW5L.js} +1 -1
  112. package/dist/{cloud-B-RebwxI.js → cloud-Du7mnkz2.js} +19 -47
  113. package/dist/{createLucideIcon-FSF4peHQ.js → createLucideIcon-JWHwTI6N.js} +2 -2
  114. package/dist/{cdn/chunks/de-CTYXVU9v.js → de-Bw6fB5JU.js} +0 -26
  115. package/dist/{de-CgGOnerg.js → de-D7WbpFBR.js} +49 -2
  116. package/dist/{dist-CgTKuIUN.js → dist-BEpCh2mG.js} +1158 -1125
  117. package/dist/{dist-Cx7IUM7J.js → dist-BgPYC_8-.js} +14 -6
  118. package/dist/{dist-BKKo5wPC.js → dist-BkM8A17N.js} +2 -2
  119. package/dist/{dist-CcX5sLpz.js → dist-BuNDAAVp.js} +361 -256
  120. package/dist/{dist-COSN3oDJ.js → dist-CBzCU-a-.js} +2 -2
  121. package/dist/{dist-YSCPD13F.js → dist-CDO52Rxy.js} +2 -2
  122. package/dist/{dist-Dk5AdwoQ.js → dist-CrjzhIxB.js} +2 -2
  123. package/dist/{dist-DXAZUjj3.js → dist-CtcgoC_R.js} +2 -2
  124. package/dist/{dist-D6M5FAY7.js → dist-CuXha2_7.js} +2 -2
  125. package/dist/dist-CweLDZrs.js +5 -0
  126. package/dist/dist-DOsdqAEZ.js +5 -0
  127. package/dist/{dist-8TKf-Jpg.js → dist-DYClLqy8.js} +6 -3
  128. package/dist/{cdn/chunks/en-DrUV9xth.js → en-BrZ0uGK2.js} +49 -4
  129. package/dist/{cdn/chunks/en-BtmIaJeb.js → en-DAdHJz7h.js} +0 -26
  130. package/dist/{cdn/chunks/es-DwbKjU7q.js → es-tLSLysPs.js} +49 -4
  131. package/dist/{extensions-BCA9pyer.js → extensions-ClY5Sh7S.js} +5 -5
  132. package/dist/{image-up-CDEgJqwA.js → image-up-CQdtq8ge.js} +1 -1
  133. package/dist/index.d.ts +81 -4
  134. package/dist/{info-BNP8yGsK.js → info-BUJBXoE6.js} +1 -1
  135. package/dist/{keys-DFaIbGR8.js → keys-CHPcp-Nz.js} +2 -2
  136. package/dist/{list-checks-jepi4iYr.js → list-checks-BGHaCSD5.js} +1 -1
  137. package/dist/{loader-circle-BT38qSm3.js → loader-circle-C-Z6kgI6.js} +1 -1
  138. package/dist/{message-circle-BAHcL9S-.js → message-circle-CEm5qckV.js} +1 -1
  139. package/dist/pencil-DdwmkKLb.js +10 -0
  140. package/dist/{pt-BR-Bcc5Tjed.js → pt-BR-BWFokdTU.js} +49 -2
  141. package/dist/{cdn/chunks/pt-BR-B2ZvFlRL.js → pt-BR-w2sGzHNX.js} +0 -26
  142. package/dist/{refresh-cw-as5Bmg4X.js → refresh-cw-maKlg0dl.js} +1 -1
  143. package/dist/{scan-line-IAMjPtRw.js → scan-line-BFgesTOY.js} +1 -1
  144. package/dist/{send-DvMay6bt.js → send-B70aQDrA.js} +1 -1
  145. package/dist/{shield-check-YYDhGroE.js → shield-check-B7x5OKt5.js} +1 -1
  146. package/dist/{sparkles-CCwQMMMZ.js → sparkles-DVlm1Ipp.js} +1 -1
  147. package/dist/style.css +1 -1
  148. package/dist/{styles-64uLkPJV.js → styles-DIDAJdkj.js} +1241 -1151
  149. package/dist/templatical-editor.js +134 -125
  150. package/dist/{text-align-start-BwsA6QzC.js → text-align-start-Vay3Kvo2.js} +1 -1
  151. package/dist/{trash-2-CRBDolnR.js → trash-2-DE8CmxAG.js} +1 -1
  152. package/dist/{triangle-alert-B2g0ALvq.js → triangle-alert-Djg6IG8N.js} +1 -1
  153. package/dist/{upload-y4gxiFp5.js → upload-BwwE0U6G.js} +1 -1
  154. package/dist/{useCloudI18n-PCDOC2kz.js → useCloudI18n-BmiygEM4.js} +1 -1
  155. package/dist/{useEditorCore-ea9OrrH3.js → useEditorCore-Bd9CA4L_.js} +1236 -1013
  156. package/dist/{useI18n-BNMzZTM5.js → useI18n-D2L9Mkik.js} +1 -1
  157. package/dist/{useMergeTag-DfEY0eK5.js → useMergeTag-BTdDq5DC.js} +1 -1
  158. package/dist/{usePopoverPosition-F9STHRIr.js → usePopoverPosition-BO2LNy5n.js} +1 -1
  159. package/dist/{x-Ctg_250T.js → x-CkD6A1iB.js} +1 -1
  160. package/package.json +23 -23
  161. package/dist/CommentsSidebar-BYMVucZh.js +0 -442
  162. package/dist/ModuleBrowserModal-BNalLx0k.js +0 -202
  163. package/dist/ModulePreviewCanvas-BwObwisa.js +0 -106
  164. package/dist/NumberWithSuffix-D3BKz66W.js +0 -89
  165. package/dist/SaveModuleDialog-MTjwiF9D.js +0 -125
  166. package/dist/ToggleSwitch-DUNuUPsZ.js +0 -37
  167. package/dist/cdn/chunks/CloudEditor-Dufl354p.js.map +0 -1
  168. package/dist/cdn/chunks/ColorPicker-y_obnw4o.js.map +0 -1
  169. package/dist/cdn/chunks/ModuleBrowserModal-DG4AVFjH.js +0 -198
  170. package/dist/cdn/chunks/ModuleBrowserModal-DG4AVFjH.js.map +0 -1
  171. package/dist/cdn/chunks/ModulePreviewCanvas-Bc_PcJuc.js +0 -107
  172. package/dist/cdn/chunks/ModulePreviewCanvas-Bc_PcJuc.js.map +0 -1
  173. package/dist/cdn/chunks/NumberWithSuffix-8fOO-LC_.js +0 -91
  174. package/dist/cdn/chunks/NumberWithSuffix-8fOO-LC_.js.map +0 -1
  175. package/dist/cdn/chunks/SaveModuleDialog-DhsfYf2n.js +0 -120
  176. package/dist/cdn/chunks/SaveModuleDialog-DhsfYf2n.js.map +0 -1
  177. package/dist/cdn/chunks/ToggleSwitch-OrmX_w18.js +0 -39
  178. package/dist/cdn/chunks/ToggleSwitch-OrmX_w18.js.map +0 -1
  179. package/dist/cdn/chunks/ca-DbWoy4rG.js.map +0 -1
  180. package/dist/cdn/chunks/de-CgGOnerg.js.map +0 -1
  181. package/dist/cdn/chunks/en-DrUV9xth.js.map +0 -1
  182. package/dist/cdn/chunks/es-DwbKjU7q.js.map +0 -1
  183. package/dist/cdn/chunks/features-Cnfv4QAY.js.map +0 -1
  184. package/dist/cdn/chunks/pt-BR-Bcc5Tjed.js.map +0 -1
  185. package/dist/cdn/chunks/pusher-CIwiKF8H.js.map +0 -1
  186. package/dist/cdn/chunks/styles-Dx-jXeCd.js.map +0 -1
  187. package/dist/cdn/chunks/tiptap-C2indasq.js.map +0 -1
  188. package/dist/dist-BDVm2MrW.js +0 -5
  189. package/dist/dist-DbekZDmJ.js +0 -5
@@ -1,7 +1,7 @@
1
1
  import { A as e, Dt as t, O as n, Ot as r, _ as i, c as a, d as o, l as s, nt as c, r as l, s as u, u as d } from "./vue.runtime.esm-bundler-B0xoGkDv.js";
2
- import "./useEditorCore-ea9OrrH3.js";
3
- import { t as f } from "./createLucideIcon-FSF4peHQ.js";
4
- import { n as p } from "./useCloudI18n-PCDOC2kz.js";
2
+ import "./useEditorCore-Bd9CA4L_.js";
3
+ import { t as f } from "./createLucideIcon-JWHwTI6N.js";
4
+ import { n as p } from "./useCloudI18n-BmiygEM4.js";
5
5
  import { t as m } from "./readableTextColor-f8Kykfnh.js";
6
6
  var h = f("wifi-off", [
7
7
  ["path", {
@@ -1,9 +1,9 @@
1
1
  import { A as e, Dt as t, Et as n, O as r, R as i, Y as a, _ as o, c as s, d as c, h as l, i as ee, l as te, nt as u, r as ne, s as d, u as f, x as p } from "./vue.runtime.esm-bundler-B0xoGkDv.js";
2
2
  import { c as re, s as m, t as ie } from "./runtime-dom.esm-bundler-GdMI8WqG.js";
3
- import { a as ae, i as oe, n as se, r as h, s as ce, t as le } from "./usePopoverPosition-F9STHRIr.js";
4
- import { L as ue, l as de, z as fe } from "./keys-DFaIbGR8.js";
5
- import { t as pe } from "./useI18n-BNMzZTM5.js";
6
- import { t as g } from "./x-Ctg_250T.js";
3
+ import { a as ae, i as oe, n as se, r as h, s as ce, t as le } from "./usePopoverPosition-BO2LNy5n.js";
4
+ import { L as ue, l as de, z as fe } from "./keys-CHPcp-Nz.js";
5
+ import { t as pe } from "./useI18n-D2L9Mkik.js";
6
+ import { t as g } from "./x-CkD6A1iB.js";
7
7
  //#region src/constants/styleConstants.ts
8
8
  var me = "tpl:block tpl:mb-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]", _ = "tpl:w-full tpl:h-10 tpl:px-3.5 tpl:py-1.5 tpl:text-sm tpl:border tpl:rounded-[var(--tpl-radius-sm)] tpl:shadow-xs tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)] tpl:border-[var(--tpl-border)] tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)] tpl:outline-none focus:tpl:border-[var(--tpl-primary)] focus:tpl:shadow-[var(--tpl-ring)] placeholder:tpl:text-[var(--tpl-text-dim)]", v = "tpl:w-full tpl:h-10 tpl:px-3.5 tpl:py-1.5 tpl:text-sm tpl:border tpl:rounded-l-[var(--tpl-radius-sm)] tpl:rounded-r-none tpl:border-r-0 tpl:shadow-xs tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)] tpl:border-[var(--tpl-border)] tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)] tpl:outline-none focus:tpl:border-[var(--tpl-primary)] focus:tpl:shadow-[var(--tpl-ring)] placeholder:tpl:text-[var(--tpl-text-dim)]", y = "tpl:flex tpl:items-center tpl:px-2.5 tpl:text-xs tpl:border tpl:border-l-0 tpl:text-[var(--tpl-text-dim)] tpl:bg-[var(--tpl-bg-hover)] tpl:border-[var(--tpl-border)] tpl:rounded-r-[var(--tpl-radius-sm)]", b = "tpl:flex-1 tpl:h-10 tpl:px-3.5 tpl:py-1.5 tpl:text-xs tpl:font-mono tpl:border tpl:rounded-[var(--tpl-radius-sm)] tpl:shadow-xs tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)] tpl:border-[var(--tpl-border)] tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)] tpl:outline-none focus:tpl:border-[var(--tpl-primary)] focus:tpl:shadow-[var(--tpl-ring)]", x = "tpl:rounded-[var(--tpl-radius)] tpl:bg-[var(--tpl-bg-elevated)] tpl:p-4 tpl:border tpl:border-[var(--tpl-border)] tpl:transition-colors tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)] hover:tpl:bg-[var(--tpl-bg-hover)]", S = "tpl:flex tpl:size-8 tpl:shrink-0 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text-muted)] tpl:transition-all tpl:duration-150 tpl:hover:border-[var(--tpl-danger)] tpl:hover:bg-[var(--tpl-danger-light)] tpl:hover:text-[var(--tpl-danger)]", C = "tpl:flex tpl:w-full tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-md tpl:border tpl:border-dashed tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-2 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)] tpl:transition-all tpl:duration-150 tpl:hover:border-[var(--tpl-primary)] tpl:hover:text-[var(--tpl-primary)]", w = "tpl:w-full tpl:resize-y tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-2.5 tpl:py-2 tpl:font-mono tpl:text-xs tpl:text-[var(--tpl-text)] tpl:outline-none tpl:transition-all tpl:duration-150 tpl:placeholder:text-[var(--tpl-text-dim)] tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[0_0_0_3px_var(--tpl-primary-light)]", T = "tpl-btn tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:px-3.5 tpl:py-2 tpl:text-sm tpl:font-medium tpl:whitespace-nowrap tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)] hover:tpl:bg-[var(--tpl-primary)] hover:tpl:text-[var(--tpl-bg)] tpl:disabled:cursor-not-allowed tpl:disabled:opacity-50", E = [
9
9
  "10px",
@@ -0,0 +1,435 @@
1
+ import { A as e, Dt as t, Et as n, I as r, O as i, Ot as a, R as o, Y as s, _ as c, c as l, d as u, h as d, l as f, m as ee, nt as p, r as m, s as h, u as g, w as te, z as _ } from "./vue.runtime.esm-bundler-B0xoGkDv.js";
2
+ import { a as v, t as y } from "./runtime-dom.esm-bundler-GdMI8WqG.js";
3
+ import { B as b, h as ne, r as re, u as ie } from "./keys-CHPcp-Nz.js";
4
+ import { t as ae } from "./useI18n-D2L9Mkik.js";
5
+ import { t as x } from "./createLucideIcon-JWHwTI6N.js";
6
+ import { t as oe } from "./check-BpQDKiPz.js";
7
+ import { t as se } from "./chevron-down-j8GrdTyz.js";
8
+ import { t as ce } from "./chevron-up-BACyVhyC.js";
9
+ import { t as S } from "./loader-circle-C-Z6kgI6.js";
10
+ import { t as C } from "./message-circle-CEm5qckV.js";
11
+ import { t as w } from "./pencil-DdwmkKLb.js";
12
+ import { t as T } from "./send-B70aQDrA.js";
13
+ import { t as E } from "./trash-2-DE8CmxAG.js";
14
+ import { t as D } from "./x-CkD6A1iB.js";
15
+ import { t as le } from "./_plugin-vue_export-helper-B3ysoDQm.js";
16
+ import { n as ue } from "./useCloudI18n-BmiygEM4.js";
17
+ import { t as de } from "./formatRelativeTime-CtUU-QZ8.js";
18
+ var fe = x("circle-check", [["circle", {
19
+ cx: "12",
20
+ cy: "12",
21
+ r: "10",
22
+ key: "1mglay"
23
+ }], ["path", {
24
+ d: "m9 12 2 2 4-4",
25
+ key: "dzmm74"
26
+ }]]), pe = x("reply", [["path", {
27
+ d: "M20 18v-2a4 4 0 0 0-4-4H4",
28
+ key: "5vmcpk"
29
+ }], ["path", {
30
+ d: "m9 17-5-5 5-5",
31
+ key: "nvlc11"
32
+ }]]), me = {
33
+ key: 0,
34
+ class: "tpl-comments-sidebar tpl:absolute tpl:top-14 tpl:right-0 tpl:bottom-0 tpl:z-panel tpl:flex tpl:w-[360px] tpl:flex-col tpl:border-l tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)]"
35
+ }, he = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, ge = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]" }, _e = {
36
+ key: 0,
37
+ class: "tpl:ml-1 tpl:inline-flex tpl:size-5 tpl:items-center tpl:justify-center tpl:rounded-full tpl:text-[10px] tpl:font-semibold tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]"
38
+ }, ve = { class: "tpl:flex tpl:gap-1 tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-2" }, ye = { class: "tpl:flex-1 tpl:overflow-y-auto" }, be = {
39
+ key: 0,
40
+ class: "tpl:flex tpl:h-full tpl:items-center tpl:justify-center"
41
+ }, xe = {
42
+ key: 1,
43
+ class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:px-6 tpl:text-center"
44
+ }, Se = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Ce = {
45
+ key: 2,
46
+ class: "tpl:flex tpl:flex-col tpl:gap-3 tpl:p-3"
47
+ }, we = { class: "tpl-comment-card tpl:rounded-lg tpl:border tpl:px-3.5 tpl:py-3" }, Te = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, Ee = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, De = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Oe = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, ke = {
48
+ key: 0,
49
+ class: "tpl:text-[10px] tpl:italic tpl:text-[var(--tpl-text-dim)]"
50
+ }, Ae = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, je = ["title", "onClick"], Me = ["title", "onClick"], Ne = ["title", "onClick"], Pe = {
51
+ key: 0,
52
+ class: "tpl:mt-1 tpl:flex tpl:items-center tpl:gap-1 tpl:text-[10px] tpl:text-[var(--tpl-primary)]"
53
+ }, Fe = {
54
+ key: 0,
55
+ class: "tpl:mt-1 tpl:inline-flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-1.5 tpl:py-0.5 tpl:text-[10px] tpl:font-medium tpl:bg-[var(--tpl-warning-light)] tpl:text-[var(--tpl-warning)]"
56
+ }, Ie = ["onClick"], Le = {
57
+ key: 2,
58
+ class: "tpl:mt-2"
59
+ }, Re = ["onKeydown"], ze = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, Be = ["disabled", "onClick"], Ve = {
60
+ key: 3,
61
+ class: "tpl:mt-1.5 tpl:text-xs tpl:leading-relaxed tpl:whitespace-pre-wrap tpl:text-[var(--tpl-text)]"
62
+ }, He = {
63
+ key: 4,
64
+ class: "tpl:mt-2 tpl:flex tpl:items-center tpl:gap-2 tpl:rounded-md tpl:px-2.5 tpl:py-2 tpl:text-xs tpl:bg-[var(--tpl-danger-light)] tpl:text-[var(--tpl-danger)]"
65
+ }, Ue = { class: "tpl:flex-1" }, We = ["onClick"], Ge = {
66
+ key: 5,
67
+ class: "tpl:mt-2 tpl:flex tpl:items-center tpl:gap-2"
68
+ }, Ke = ["title", "onClick"], qe = ["onClick"], Je = {
69
+ key: 0,
70
+ class: "tpl-comment-replies tpl:ml-5 tpl:pl-3 tpl:pt-2"
71
+ }, Ye = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, Xe = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, Ze = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Qe = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, $e = {
72
+ key: 0,
73
+ class: "tpl:text-[10px] tpl:italic tpl:text-[var(--tpl-text-dim)]"
74
+ }, et = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, tt = ["title", "onClick"], nt = ["title", "onClick"], rt = {
75
+ key: 0,
76
+ class: "tpl:mt-1.5"
77
+ }, it = ["onKeydown"], at = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, ot = ["disabled", "onClick"], st = {
78
+ key: 1,
79
+ class: "tpl:mt-1 tpl:text-xs tpl:leading-relaxed tpl:whitespace-pre-wrap tpl:text-[var(--tpl-text)]"
80
+ }, ct = {
81
+ key: 2,
82
+ class: "tpl:mt-2 tpl:flex tpl:items-center tpl:gap-2 tpl:rounded-md tpl:px-2.5 tpl:py-2 tpl:text-xs tpl:bg-[var(--tpl-danger-light)] tpl:text-[var(--tpl-danger)]"
83
+ }, lt = { class: "tpl:flex-1" }, ut = ["onClick"], dt = {
84
+ key: 0,
85
+ class: "tpl-comment-replies tpl:ml-5 tpl:pl-3 tpl:pt-2"
86
+ }, ft = { class: "tpl:flex tpl:items-end tpl:gap-2" }, pt = ["placeholder", "onKeydown"], mt = { class: "tpl:flex tpl:shrink-0 tpl:flex-col tpl:gap-1" }, ht = ["disabled", "onClick"], gt = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, _t = {
87
+ key: 0,
88
+ class: "tpl:flex tpl:min-h-[68px] tpl:items-center tpl:rounded-md tpl:px-3 tpl:py-2 tpl:text-xs tpl:bg-[var(--tpl-warning-light)] tpl:text-[var(--tpl-warning)]"
89
+ }, vt = {
90
+ key: 1,
91
+ class: "tpl-comments-input-wrapper tpl:flex tpl:min-h-[68px] tpl:items-end tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:border tpl:px-3 tpl:py-2 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]"
92
+ }, yt = ["placeholder", "disabled"], bt = ["disabled"], O = /*#__PURE__*/ le(/* @__PURE__ */ c({
93
+ __name: "CommentsSidebar",
94
+ props: { visible: { type: Boolean } },
95
+ emits: ["close", "filterBlock"],
96
+ setup(c, { expose: x, emit: le }) {
97
+ let O = c, k = le, { format: A } = ae(), { t: j } = ue(), M = b(ne, "CommentsSidebar"), xt = b(re, "CommentsSidebar"), N = b(ie, "CommentsSidebar"), P = s("unresolved"), F = s(null), I = s(""), L = s(null), R = s(""), z = s(null), B = s(""), V = s(/* @__PURE__ */ new Set()), H = s(null), U = s(null), St = h(() => xt.userConfig?.id ?? null), Ct = h(() => {
98
+ let e = /* @__PURE__ */ new Set();
99
+ for (let t of M.content.value.blocks) if (e.add(t.id), t.type === "section") for (let n of t.children) for (let t of n) e.add(t.id);
100
+ return e;
101
+ });
102
+ function wt(e) {
103
+ return e ? !Ct.value.has(e) : !1;
104
+ }
105
+ let Tt = h(() => P.value !== "block" || !F.value ? !1 : !(M.savedBlockIds?.value.has(F.value) ?? !0)), W = h(() => {
106
+ let e = N.comments.value;
107
+ return P.value === "unresolved" ? e = e.filter((e) => !e.resolved_at) : P.value === "block" && F.value && (e = e.filter((e) => e.block_id === F.value)), e;
108
+ });
109
+ r(() => O.visible, (e) => {
110
+ e && N.loadComments();
111
+ }), r(() => M.state.selectedBlockId, (e) => {
112
+ P.value === "block" && e && (F.value = e);
113
+ });
114
+ function G(e, t) {
115
+ P.value = e, F.value = e === "block" ? t ?? null : null;
116
+ }
117
+ function Et(e) {
118
+ G("block", e), k("filterBlock", e);
119
+ }
120
+ function Dt(e) {
121
+ V.value.has(e) ? V.value.delete(e) : V.value.add(e);
122
+ }
123
+ function Ot(e) {
124
+ L.value = e, R.value = "", z.value = null, V.value.has(e) || V.value.add(e);
125
+ }
126
+ function kt() {
127
+ L.value = null, R.value = "";
128
+ }
129
+ function K(e) {
130
+ z.value = e.id, B.value = e.body, L.value = null;
131
+ }
132
+ function q() {
133
+ z.value = null, B.value = "";
134
+ }
135
+ function J(e) {
136
+ H.value = e;
137
+ }
138
+ function Y() {
139
+ H.value = null;
140
+ }
141
+ async function X() {
142
+ let e = I.value.trim();
143
+ if (!e) return;
144
+ let t = P.value === "block" ? F.value : void 0;
145
+ await N.addComment(e, t ?? void 0), I.value = "";
146
+ }
147
+ async function At(e) {
148
+ let t = R.value.trim();
149
+ if (!t) return;
150
+ let n = N.comments.value.find((t) => t.id === e);
151
+ await N.addComment(t, n?.block_id ?? void 0, e), L.value = null, R.value = "";
152
+ }
153
+ async function Z(e) {
154
+ let t = B.value.trim();
155
+ t && (await N.editComment(e, t), z.value = null, B.value = "");
156
+ }
157
+ async function jt(e) {
158
+ await N.removeComment(e), H.value = null;
159
+ }
160
+ async function Mt(e) {
161
+ await N.toggleResolve(e);
162
+ }
163
+ function Q(e) {
164
+ return e.author_identifier === St.value;
165
+ }
166
+ function Nt(e) {
167
+ return de(e, j.snapshotHistory) ?? e;
168
+ }
169
+ function Pt(e) {
170
+ e.key === "Enter" && !e.shiftKey && (e.preventDefault(), X());
171
+ }
172
+ function Ft(e, t) {
173
+ e.key === "Enter" && !e.shiftKey && (e.preventDefault(), At(t));
174
+ }
175
+ function $(e, t) {
176
+ e.key === "Enter" && !e.shiftKey && (e.preventDefault(), Z(t)), e.key === "Escape" && q();
177
+ }
178
+ function It() {
179
+ te(() => {
180
+ U.value?.focus();
181
+ });
182
+ }
183
+ return x({
184
+ filterByBlock: Et,
185
+ focusNewComment: It
186
+ }), (r, s) => (i(), f(y, {
187
+ "enter-active-class": "tpl-comments-slide-enter-active",
188
+ "enter-from-class": "tpl:translate-x-full",
189
+ "enter-to-class": "tpl:translate-x-0",
190
+ "leave-active-class": "tpl-comments-slide-leave-active",
191
+ "leave-from-class": "tpl:translate-x-0",
192
+ "leave-to-class": "tpl:translate-x-full"
193
+ }, {
194
+ default: o(() => [c.visible ? (i(), u("div", me, [
195
+ l("div", he, [l("div", ge, [
196
+ d(p(C), {
197
+ size: 13,
198
+ "stroke-width": 2
199
+ }),
200
+ l("span", null, a(p(j).comments.title), 1),
201
+ p(N).unresolvedCount.value > 0 ? (i(), u("span", _e, a(p(N).unresolvedCount.value), 1)) : g("", !0)
202
+ ]), l("button", {
203
+ class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
204
+ onClick: s[0] ||= (e) => k("close")
205
+ }, [d(p(D), {
206
+ size: 14,
207
+ "stroke-width": 2
208
+ })])]),
209
+ l("div", ve, [
210
+ l("button", {
211
+ class: n(["tpl-comment-filter tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:transition-colors tpl:duration-150", P.value === "unresolved" ? "tpl-comment-filter--active" : ""]),
212
+ onClick: s[1] ||= (e) => G("unresolved")
213
+ }, a(p(j).comments.filterUnresolved), 3),
214
+ l("button", {
215
+ class: n(["tpl-comment-filter tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:transition-colors tpl:duration-150", P.value === "all" ? "tpl-comment-filter--active" : ""]),
216
+ onClick: s[2] ||= (e) => G("all")
217
+ }, a(p(j).comments.filterAll), 3),
218
+ p(M).state.selectedBlockId ? (i(), u("button", {
219
+ key: 0,
220
+ class: n(["tpl-comment-filter tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:transition-colors tpl:duration-150", P.value === "block" ? "tpl-comment-filter--active" : ""]),
221
+ onClick: s[3] ||= (e) => G("block", p(M).state.selectedBlockId ?? void 0)
222
+ }, a(p(j).comments.filterBlock), 3)) : g("", !0)
223
+ ]),
224
+ l("div", ye, [p(N).isLoading.value ? (i(), u("div", be, [d(p(S), {
225
+ class: "tpl-spinner tpl:text-[var(--tpl-text-muted)]",
226
+ size: 24,
227
+ "stroke-width": 2
228
+ })])) : W.value.length === 0 ? (i(), u("div", xe, [d(p(C), {
229
+ size: 32,
230
+ "stroke-width": 1.5,
231
+ class: "tpl:text-[var(--tpl-text-dim)]"
232
+ }), l("p", Se, a(P.value === "all" ? p(j).comments.noCommentsHint : p(j).comments.noComments), 1)])) : (i(), u("div", Ce, [(i(!0), u(m, null, e(W.value, (r) => (i(), u("div", {
233
+ key: r.id,
234
+ class: "tpl-comment-thread"
235
+ }, [
236
+ l("div", we, [
237
+ l("div", Te, [l("div", Ee, [
238
+ l("span", De, a(Q(r) ? p(j).comments.ownedByYou : r.author_name), 1),
239
+ l("span", Oe, a(Nt(r.created_at)), 1),
240
+ r.updated_at === r.created_at ? g("", !0) : (i(), u("span", ke, " (" + a(p(j).comments.edited) + ") ", 1))
241
+ ]), l("div", Ae, [
242
+ l("button", {
243
+ class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
244
+ title: r.resolved_at ? p(j).comments.unresolve : p(j).comments.resolve,
245
+ onClick: (e) => Mt(r.id)
246
+ }, [d(p(fe), {
247
+ size: 13,
248
+ "stroke-width": 2,
249
+ class: "tpl-resolve-icon",
250
+ style: t({ color: r.resolved_at ? "var(--tpl-primary)" : void 0 })
251
+ }, null, 8, ["style"])], 8, je),
252
+ Q(r) ? (i(), u("button", {
253
+ key: 0,
254
+ class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
255
+ title: p(j).comments.edit,
256
+ onClick: (e) => K(r)
257
+ }, [d(p(w), {
258
+ size: 12,
259
+ "stroke-width": 2
260
+ })], 8, Me)) : g("", !0),
261
+ Q(r) ? (i(), u("button", {
262
+ key: 1,
263
+ class: "tpl-comment-action tpl-comment-delete tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
264
+ title: p(j).comments.delete,
265
+ onClick: (e) => J(r.id)
266
+ }, [d(p(E), {
267
+ size: 12,
268
+ "stroke-width": 2
269
+ })], 8, Ne)) : g("", !0)
270
+ ])]),
271
+ d(y, { name: "tpl-resolve" }, {
272
+ default: o(() => [r.resolved_at ? (i(), u("div", Pe, [d(p(oe), {
273
+ size: 10,
274
+ "stroke-width": 2.5
275
+ }), l("span", null, a(p(A)(p(j).comments.resolvedBy, { name: r.resolved_by_name ?? "" })), 1)])) : g("", !0)]),
276
+ _: 2
277
+ }, 1024),
278
+ r.block_id && wt(r.block_id) ? (i(), u("span", Fe, a(p(j).comments.missingBlock), 1)) : r.block_id ? (i(), u("button", {
279
+ key: 1,
280
+ class: "tpl:mt-1 tpl:inline-flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-1.5 tpl:py-0.5 tpl:text-[10px] tpl:font-medium tpl:transition-colors tpl:duration-150 tpl:bg-[var(--tpl-bg-hover)] tpl:text-[var(--tpl-text-muted)]",
281
+ onClick: (e) => p(M).selectBlock(r.block_id ?? "")
282
+ }, " Block ", 8, Ie)) : g("", !0),
283
+ z.value === r.id ? (i(), u("div", Le, [_(l("textarea", {
284
+ "onUpdate:modelValue": s[4] ||= (e) => B.value = e,
285
+ class: "tpl:w-full tpl:resize-none tpl:rounded-md tpl:border tpl:px-2.5 tpl:py-2 tpl:font-sans tpl:text-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
286
+ rows: "3",
287
+ onKeydown: (e) => $(e, r.id)
288
+ }, null, 40, Re), [[v, B.value]]), l("div", ze, [l("button", {
289
+ class: "tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:transition-colors tpl:duration-150 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
290
+ disabled: !B.value.trim() || p(N).isSubmitting.value,
291
+ onClick: (e) => Z(r.id)
292
+ }, a(p(j).comments.save), 9, Be), l("button", {
293
+ class: "tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
294
+ onClick: s[5] ||= (e) => q()
295
+ }, a(p(j).comments.cancel), 1)])])) : (i(), u("p", Ve, a(r.body), 1)),
296
+ H.value === r.id ? (i(), u("div", He, [
297
+ l("span", Ue, a(p(j).comments.deleteConfirm), 1),
298
+ l("button", {
299
+ class: "tpl:rounded tpl:px-2 tpl:py-0.5 tpl:text-xs tpl:font-medium tpl:bg-[var(--tpl-danger)] tpl:text-[var(--tpl-bg)]",
300
+ onClick: (e) => jt(r.id)
301
+ }, a(p(j).comments.delete), 9, We),
302
+ l("button", {
303
+ class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
304
+ onClick: s[6] ||= (e) => Y()
305
+ }, a(p(j).comments.cancel), 1)
306
+ ])) : g("", !0),
307
+ z.value !== r.id && H.value !== r.id ? (i(), u("div", Ge, [l("button", {
308
+ class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
309
+ title: p(j).comments.reply,
310
+ onClick: (e) => Ot(r.id)
311
+ }, [d(p(pe), {
312
+ size: 13,
313
+ "stroke-width": 2,
314
+ class: "tpl:text-[var(--tpl-primary)]"
315
+ })], 8, Ke), (r.replies?.length ?? 0) > 0 ? (i(), u("button", {
316
+ key: 0,
317
+ class: "tpl:flex tpl:items-center tpl:gap-0.5 tpl:text-[11px] tpl:font-medium tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
318
+ onClick: (e) => Dt(r.id)
319
+ }, [V.value.has(r.id) ? (i(), f(p(ce), {
320
+ key: 0,
321
+ size: 11,
322
+ "stroke-width": 2
323
+ })) : (i(), f(p(se), {
324
+ key: 1,
325
+ size: 11,
326
+ "stroke-width": 2
327
+ })), ee(" " + a((r.replies?.length ?? 0) === 1 ? p(A)(p(j).comments.replyOne, { count: String(r.replies?.length ?? 0) }) : p(A)(p(j).comments.replyMany, { count: String(r.replies?.length ?? 0) })), 1)], 8, qe)) : g("", !0)])) : g("", !0)
328
+ ]),
329
+ d(y, { name: "tpl-replies" }, {
330
+ default: o(() => [V.value.has(r.id) && (r.replies?.length ?? 0) > 0 ? (i(), u("div", Je, [(i(!0), u(m, null, e(r.replies, (e, t) => (i(), u("div", {
331
+ key: e.id,
332
+ class: n(["tpl-comment-reply-card tpl:relative tpl:rounded-lg tpl:border tpl:px-3.5 tpl:py-2.5", t < (r.replies?.length ?? 0) - 1 ? "tpl:mb-2" : ""])
333
+ }, [
334
+ l("div", Ye, [l("div", Xe, [
335
+ l("span", Ze, a(Q(e) ? p(j).comments.ownedByYou : e.author_name), 1),
336
+ l("span", Qe, a(Nt(e.created_at)), 1),
337
+ e.updated_at === e.created_at ? g("", !0) : (i(), u("span", $e, " (" + a(p(j).comments.edited) + ") ", 1))
338
+ ]), l("div", et, [Q(e) ? (i(), u("button", {
339
+ key: 0,
340
+ class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
341
+ title: p(j).comments.edit,
342
+ onClick: (t) => K(e)
343
+ }, [d(p(w), {
344
+ size: 11,
345
+ "stroke-width": 2
346
+ })], 8, tt)) : g("", !0), Q(e) ? (i(), u("button", {
347
+ key: 1,
348
+ class: "tpl-comment-action tpl-comment-delete tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
349
+ title: p(j).comments.delete,
350
+ onClick: (t) => J(e.id)
351
+ }, [d(p(E), {
352
+ size: 11,
353
+ "stroke-width": 2
354
+ })], 8, nt)) : g("", !0)])]),
355
+ z.value === e.id ? (i(), u("div", rt, [_(l("textarea", {
356
+ "onUpdate:modelValue": s[7] ||= (e) => B.value = e,
357
+ class: "tpl:w-full tpl:resize-none tpl:rounded-md tpl:border tpl:px-2.5 tpl:py-2 tpl:font-sans tpl:text-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
358
+ rows: "2",
359
+ onKeydown: (t) => $(t, e.id)
360
+ }, null, 40, it), [[v, B.value]]), l("div", at, [l("button", {
361
+ class: "tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
362
+ disabled: !B.value.trim() || p(N).isSubmitting.value,
363
+ onClick: (t) => Z(e.id)
364
+ }, a(p(j).comments.save), 9, ot), l("button", {
365
+ class: "tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
366
+ onClick: s[8] ||= (e) => q()
367
+ }, a(p(j).comments.cancel), 1)])])) : (i(), u("p", st, a(e.body), 1)),
368
+ H.value === e.id ? (i(), u("div", ct, [
369
+ l("span", lt, a(p(j).comments.deleteConfirm), 1),
370
+ l("button", {
371
+ class: "tpl:rounded tpl:px-2 tpl:py-0.5 tpl:text-xs tpl:font-medium tpl:bg-[var(--tpl-danger)] tpl:text-[var(--tpl-bg)]",
372
+ onClick: (t) => jt(e.id)
373
+ }, a(p(j).comments.delete), 9, ut),
374
+ l("button", {
375
+ class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
376
+ onClick: s[9] ||= (e) => Y()
377
+ }, a(p(j).comments.cancel), 1)
378
+ ])) : g("", !0)
379
+ ], 2))), 128))])) : g("", !0)]),
380
+ _: 2
381
+ }, 1024),
382
+ d(y, { name: "tpl-replies" }, {
383
+ default: o(() => [L.value === r.id ? (i(), u("div", dt, [l("div", ft, [_(l("textarea", {
384
+ "onUpdate:modelValue": s[10] ||= (e) => R.value = e,
385
+ class: "tpl:flex-1 tpl:resize-none tpl:rounded-md tpl:border tpl:px-2.5 tpl:py-2 tpl:font-sans tpl:text-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
386
+ placeholder: p(j).comments.replyPlaceholder,
387
+ rows: "2",
388
+ onKeydown: (e) => Ft(e, r.id)
389
+ }, null, 40, pt), [[v, R.value]]), l("div", mt, [l("button", {
390
+ class: "tpl:flex tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1.5 tpl:transition-colors tpl:duration-150 tpl:disabled:opacity-40 tpl:text-[var(--tpl-primary)]",
391
+ disabled: !R.value.trim() || p(N).isSubmitting.value,
392
+ onClick: (e) => At(r.id)
393
+ }, [d(p(T), {
394
+ size: 14,
395
+ "stroke-width": 2
396
+ })], 8, ht), l("button", {
397
+ class: "tpl:flex tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
398
+ onClick: s[11] ||= (e) => kt()
399
+ }, [d(p(D), {
400
+ size: 14,
401
+ "stroke-width": 2
402
+ })])])])])) : g("", !0)]),
403
+ _: 2
404
+ }, 1024)
405
+ ]))), 128))]))]),
406
+ l("div", gt, [Tt.value ? (i(), u("div", _t, a(p(j).comments.saveTemplateFirst), 1)) : (i(), u("div", vt, [_(l("textarea", {
407
+ ref_key: "newCommentInput",
408
+ ref: U,
409
+ "onUpdate:modelValue": s[12] ||= (e) => I.value = e,
410
+ class: "tpl:max-h-24 tpl:min-h-[48px] tpl:flex-1 tpl:resize-none tpl:border-none tpl:bg-transparent tpl:font-sans tpl:text-xs tpl:outline-none tpl:text-[var(--tpl-text)]",
411
+ placeholder: p(j).comments.placeholder,
412
+ disabled: p(N).isSubmitting.value,
413
+ rows: "2",
414
+ onKeydown: Pt
415
+ }, null, 40, yt), [[v, I.value]]), l("button", {
416
+ class: "tpl-comments-send-btn tpl:flex tpl:shrink-0 tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1.5 tpl:transition-all tpl:duration-150 tpl:disabled:opacity-40 tpl:text-[var(--tpl-primary)]",
417
+ disabled: !I.value.trim() || p(N).isSubmitting.value,
418
+ onClick: X
419
+ }, [p(N).isSubmitting.value ? (i(), f(p(S), {
420
+ key: 0,
421
+ class: "tpl-spinner",
422
+ size: 16,
423
+ "stroke-width": 2
424
+ })) : (i(), f(p(T), {
425
+ key: 1,
426
+ size: 16,
427
+ "stroke-width": 2
428
+ }))], 8, bt)]))])
429
+ ])) : g("", !0)]),
430
+ _: 1
431
+ }));
432
+ }
433
+ }), [["__scopeId", "data-v-d204f573"]]);
434
+ //#endregion
435
+ export { O as default };
@@ -1,7 +1,7 @@
1
1
  import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
2
  import { A as t, Dt as n, O as r, Ot as i, Y as a, _ as o, c as s, d as c, nt as l, r as u, s as d, u as f } from "./vue.runtime.esm-bundler-B0xoGkDv.js";
3
3
  import { p } from "./dist-DYv_Pttj.js";
4
- import { t as m } from "./useI18n-BNMzZTM5.js";
4
+ import { t as m } from "./useI18n-D2L9Mkik.js";
5
5
  //#region src/components/blocks/CountdownBlock.vue?vue&type=script&setup=true&lang.ts
6
6
  var h = {
7
7
  key: 0,
@@ -1,8 +1,7 @@
1
1
  import { A as e, Et as t, O as n, Ot as r, R as i, _ as a, c as o, d as s, h as c, l, nt as u, r as d, s as f } from "./vue.runtime.esm-bundler-B0xoGkDv.js";
2
- import { t as p } from "./useI18n-BNMzZTM5.js";
3
- import { f as m, t as h } from "./ColorPicker-BsgpTJqK.js";
4
- import { t as g } from "./ToggleSwitch-DUNuUPsZ.js";
5
- import { n as _, r as v, t as y } from "./NumberWithSuffix-D3BKz66W.js";
2
+ import { t as p } from "./useI18n-D2L9Mkik.js";
3
+ import { f as m, t as h } from "./ColorPicker-s9GHXjZs.js";
4
+ import { i as g, n as _, r as v, t as y } from "./NumberWithSuffix-CCPN_oCh.js";
6
5
  //#region src/components/toolbar/CountdownToolbar.vue?vue&type=script&setup=true&lang.ts
7
6
  var b = ["value"], x = ["value"], S = ["value"], C = { class: "tpl:grid tpl:grid-cols-2 tpl:gap-2" }, w = ["value"], T = { value: "" }, E = ["value"], D = { class: "tpl:grid tpl:grid-cols-2 tpl:gap-3" }, O = { class: "tpl:grid tpl:grid-cols-2 tpl:gap-3" }, k = { class: "tpl:grid tpl:grid-cols-2 tpl:gap-2" }, A = [
8
7
  "value",
@@ -1,15 +1,15 @@
1
1
  import { Dt as e, Et as t, I as n, O as r, Ot as i, R as ee, T as a, Y as o, _ as s, c, d as l, h as u, l as te, m as d, nt as f, s as ne, u as p, z as re } from "./vue.runtime.esm-bundler-B0xoGkDv.js";
2
2
  import { a as ie, t as ae } from "./runtime-dom.esm-bundler-GdMI8WqG.js";
3
- import { t as oe } from "./upload-y4gxiFp5.js";
4
- import { B as m, h, r as se } from "./keys-DFaIbGR8.js";
5
- import { t as g } from "./createLucideIcon-FSF4peHQ.js";
6
- import { t as ce } from "./circle-alert-Bhzm-fNA.js";
7
- import { t as _ } from "./image-up-CDEgJqwA.js";
8
- import { t as v } from "./x-Ctg_250T.js";
3
+ import { t as oe } from "./upload-BwwE0U6G.js";
4
+ import { B as m, h, r as se } from "./keys-CHPcp-Nz.js";
5
+ import { t as g } from "./createLucideIcon-JWHwTI6N.js";
6
+ import { t as ce } from "./circle-alert-CgtE46ND.js";
7
+ import { t as _ } from "./image-up-CQdtq8ge.js";
8
+ import { t as v } from "./x-CkD6A1iB.js";
9
9
  import { t as le } from "./LoadingTrack-KIcREPlS.js";
10
10
  import { t as y } from "./_plugin-vue_export-helper-B3ysoDQm.js";
11
- import { n as ue } from "./useCloudI18n-PCDOC2kz.js";
12
- import { u as de } from "./cloud-B-RebwxI.js";
11
+ import { n as ue } from "./useCloudI18n-BmiygEM4.js";
12
+ import { d as de } from "./cloud-Du7mnkz2.js";
13
13
  var fe = g("file-image", [
14
14
  ["path", {
15
15
  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",
@@ -1,11 +1,11 @@
1
1
  import { A as e, Et as t, N as n, O as r, Ot as i, _ as a, c as o, d as s, h as c, l, m as u, nt as d, r as f, s as p, u as m, x as h } from "./vue.runtime.esm-bundler-B0xoGkDv.js";
2
- import { I as g, h as _ } from "./keys-DFaIbGR8.js";
3
- import { t as v } from "./useI18n-BNMzZTM5.js";
4
- import { t as y } from "./createLucideIcon-FSF4peHQ.js";
5
- import { t as b } from "./circle-alert-Bhzm-fNA.js";
6
- import { t as x } from "./info-BNP8yGsK.js";
7
- import { t as S } from "./list-checks-jepi4iYr.js";
8
- import { t as C } from "./triangle-alert-B2g0ALvq.js";
2
+ import { I as g, h as _ } from "./keys-CHPcp-Nz.js";
3
+ import { t as v } from "./useI18n-D2L9Mkik.js";
4
+ import { t as y } from "./createLucideIcon-JWHwTI6N.js";
5
+ import { t as b } from "./circle-alert-CgtE46ND.js";
6
+ import { t as x } from "./info-BUJBXoE6.js";
7
+ import { t as S } from "./list-checks-BGHaCSD5.js";
8
+ import { t as C } from "./triangle-alert-Djg6IG8N.js";
9
9
  var w = y("arrow-right", [["path", {
10
10
  d: "M5 12h14",
11
11
  key: "1ays0h"
@@ -1,6 +1,6 @@
1
1
  import { A as e, Et as t, O as n, Ot as r, Y as i, _ as a, c as o, d as s, r as c, u as l, y as u } from "./vue.runtime.esm-bundler-B0xoGkDv.js";
2
2
  import { c as d, n as f } from "./runtime-dom.esm-bundler-GdMI8WqG.js";
3
- import { F as p, Sn as m, i as h, vn as g, xn as _, yn as v } from "./dist-CgTKuIUN.js";
3
+ import { F as p, Sn as m, i as h, vn as g, xn as _, yn as v } from "./dist-BEpCh2mG.js";
4
4
  //#region ../../node_modules/.pnpm/@floating-ui+utils@0.2.12/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs
5
5
  var y = Math.min, b = Math.max, x = Math.round, S = Math.floor, C = (e) => ({
6
6
  x: e,
@@ -704,7 +704,7 @@ var $e = _e, et = me, tt = (e, t, n) => {
704
704
  });
705
705
  };
706
706
  //#endregion
707
- //#region ../../node_modules/.pnpm/@tiptap+suggestion@3.28.0_@floating-ui+dom@1.8.0_@tiptap+core@3.28.0_@tiptap+pm@3.28.0__@tiptap+pm@3.28.0/node_modules/@tiptap/suggestion/dist/index.js
707
+ //#region ../../node_modules/.pnpm/@tiptap+suggestion@3.29.0_@floating-ui+dom@1.8.0_@tiptap+core@3.29.0_@tiptap+pm@3.29.0__@tiptap+pm@3.29.0/node_modules/@tiptap/suggestion/dist/index.js
708
708
  function nt(e) {
709
709
  let { char: t, allowSpaces: n, allowToIncludeChar: r, allowedPrefixes: i, startOfLine: a, $position: o } = e, s = n && !r, c = p(t), l = RegExp(`\\s${c}$`), u = a ? "^" : "", d = r ? "" : c, f = RegExp(s ? `${u}${c}.*?(?=\\s${d}|$)` : `${u}(?:^)?${c}[^\\s${d}]*`, "gm"), m = o.nodeBefore?.isText && o.nodeBefore.text;
710
710
  if (!m) return null;