@templatical/editor 0.42.0 → 0.43.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 (272) hide show
  1. package/dist/{AiChatSidebar-DqSoJAXx.js → AiChatSidebar-DOCvzGBe.js} +7 -7
  2. package/dist/{AiFeatureMenu-CoBvE72q.js → AiFeatureMenu-xCJeD07B.js} +4 -4
  3. package/dist/{BlockIssueBadge-D8KsGWY6.js → BlockIssueBadge-BJ3A6mqh.js} +2 -2
  4. package/dist/{BlockPreviewCanvas-W6-MRpWz.js → BlockPreviewCanvas-BQXfqhzu.js} +2 -2
  5. package/dist/{CloudHeaderExtras-AbsNuL9T.js → CloudHeaderExtras-TFmBJ0Ry.js} +2 -2
  6. package/dist/{CloudPanels-BNL6rSeB.js → CloudPanels-BnSBbYnw.js} +4 -4
  7. package/dist/{CollaboratorBar-DlZ-wOL_.js → CollaboratorBar-7ry8EdUh.js} +2 -2
  8. package/dist/{CommentsPanel-9k1q-79y.js → CommentsPanel-CGEhbjx0.js} +1 -1
  9. package/dist/{CommentsSidebar-Bc7nORmD.js → CommentsSidebar-CUpst9ou.js} +10 -10
  10. package/dist/{CountdownToolbar-Bnq25sR-.js → CountdownToolbar-B1a_UIuB.js} +3 -3
  11. package/dist/{DesignReferenceSidebar-Cl5eE8Kn.js → DesignReferenceSidebar-DkAmsBgM.js} +5 -5
  12. package/dist/{IssuesPanel-Dnns3O9z.js → IssuesPanel-lTpsCV4a.js} +5 -5
  13. package/dist/{LogicTagInsertButton-SI6irEtn.js → LogicTagInsertButton-B5YymR4U.js} +3 -3
  14. package/dist/{MediaEditModal-C-InB-H2.js → MediaEditModal-B1X8qtJb.js} +1 -1
  15. package/dist/{MediaPanels-CTosUpeo.js → MediaPanels-DO30L1KS.js} +1 -1
  16. package/dist/{MergeTagInput-BMQGNh1k.js → MergeTagInput-B0M_-X0K.js} +1 -1
  17. package/dist/{MergeTagModeToggle-Cm9s-w6o.js → MergeTagModeToggle-B-8W1tK7.js} +3 -3
  18. package/dist/{ParagraphEditor-CnBPQCVo.js → ParagraphEditor-DVGeU0Am.js} +20 -20
  19. package/dist/{RestoreVersionDialog-B13whpxH.js → RestoreVersionDialog-DOhgYkiA.js} +3 -3
  20. package/dist/{RichTextEditorContent-DOvhgc-7.js → RichTextEditorContent-AaLAArA0.js} +4 -4
  21. package/dist/{SaveBlockDialog-b5yrQfoN.js → SaveBlockDialog-36MzPD2S.js} +8 -8
  22. package/dist/{SavedBlocksBrowserModal-DpqK4Zqp.js → SavedBlocksBrowserModal-B5nFKszf.js} +9 -9
  23. package/dist/{SavedBlocksPanels-C2wURIlT.js → SavedBlocksPanels-BZkbP7eB.js} +1 -1
  24. package/dist/{SavedBlocksPickBar-Bx9_SXVA.js → SavedBlocksPickBar-ChoCMdu7.js} +2 -2
  25. package/dist/{TemplateScoringPanel-Cs0TGtRF.js → TemplateScoringPanel-C6ellAcs.js} +11 -11
  26. package/dist/{TemplateSettings-Gn9ps1R6.js → TemplateSettings-C_0qK-zs.js} +5 -5
  27. package/dist/{TestEmailModal-DaIaklcg.js → TestEmailModal-CKW-VArm.js} +6 -6
  28. package/dist/{TestEmailPanel-CKSvzakC.js → TestEmailPanel-BylYzjyM.js} +1 -1
  29. package/dist/{TitleEditor-C66Jk73n.js → TitleEditor-DoQ286_n.js} +9 -9
  30. package/dist/{ToggleSwitch-BqttX9lY.js → ToggleSwitch-CtZ6adlX.js} +1 -1
  31. package/dist/{Toolbar-DVsKYQaC.js → Toolbar-B6dG5_IP.js} +20 -20
  32. package/dist/{TplModal-DRQln7xH.js → TplModal-DHwQXySQ.js} +1 -1
  33. package/dist/{VersionHistoryMenu-b0A8mS2_.js → VersionHistoryMenu-DdspCRSA.js} +5 -5
  34. package/dist/{VersionHistoryPanels-Df5WjNah.js → VersionHistoryPanels-C6QxmRUH.js} +1 -1
  35. package/dist/{VersionPreviewBanner-xB9r83r0.js → VersionPreviewBanner-XUuLe36h.js} +1 -1
  36. package/dist/{WrapperBlock-B0cUORGz.js → WrapperBlock-BumDudbj.js} +1 -1
  37. package/dist/{blockTypeIcons-DfQNZnl7.js → blockTypeIcons-Sg8SY1NQ.js} +2 -2
  38. package/dist/bundle-stats.json +6 -6
  39. package/dist/cdn/chunks/{AiChatSidebar-DD17BwXn.js → AiChatSidebar-DiG-EQ-E.js} +4 -4
  40. package/dist/cdn/chunks/AiChatSidebar-DiG-EQ-E.js.map +1 -0
  41. package/dist/cdn/chunks/{AiFeatureMenu-Di381OsL.js → AiFeatureMenu-4TgzmLb3.js} +3 -3
  42. package/dist/cdn/chunks/AiFeatureMenu-4TgzmLb3.js.map +1 -0
  43. package/dist/cdn/chunks/{BlockIssueBadge-BR_N3nRh.js → BlockIssueBadge-ChQ0mPf5.js} +2 -2
  44. package/dist/cdn/chunks/BlockIssueBadge-ChQ0mPf5.js.map +1 -0
  45. package/dist/cdn/chunks/{BlockPreviewCanvas-BXpcAiiY.js → BlockPreviewCanvas-BpvK3Sh9.js} +3 -3
  46. package/dist/cdn/chunks/BlockPreviewCanvas-BpvK3Sh9.js.map +1 -0
  47. package/dist/cdn/chunks/{CloudHeaderExtras-BEM2eWfF.js → CloudHeaderExtras-DqgOaWym.js} +3 -3
  48. package/dist/cdn/chunks/CloudHeaderExtras-DqgOaWym.js.map +1 -0
  49. package/dist/cdn/chunks/{CloudPanels-D7nK1-bm.js → CloudPanels-INOiwkET.js} +4 -4
  50. package/dist/cdn/chunks/CloudPanels-INOiwkET.js.map +1 -0
  51. package/dist/cdn/chunks/{CollaboratorBar-D1SUwahw.js → CollaboratorBar-CQ9EpYKQ.js} +3 -3
  52. package/dist/cdn/chunks/CollaboratorBar-CQ9EpYKQ.js.map +1 -0
  53. package/dist/cdn/chunks/{CommentsPanel-qsLMAlJU.js → CommentsPanel-CjhxGMjL.js} +2 -2
  54. package/dist/cdn/chunks/CommentsPanel-CjhxGMjL.js.map +1 -0
  55. package/dist/cdn/chunks/{CommentsSidebar-CTwEE-s_.js → CommentsSidebar-D9bqMnlt.js} +2 -2
  56. package/dist/cdn/chunks/CommentsSidebar-D9bqMnlt.js.map +1 -0
  57. package/dist/cdn/chunks/CountdownBlock-sVDjKkRw.js.map +1 -1
  58. package/dist/cdn/chunks/{CountdownToolbar-BJTcnIQ-.js → CountdownToolbar-CIRx5w1U.js} +4 -4
  59. package/dist/cdn/chunks/CountdownToolbar-CIRx5w1U.js.map +1 -0
  60. package/dist/cdn/chunks/{DesignReferenceSidebar-Dl3eEGtS.js → DesignReferenceSidebar-C1-SbE_R.js} +2 -2
  61. package/dist/cdn/chunks/DesignReferenceSidebar-C1-SbE_R.js.map +1 -0
  62. package/dist/cdn/chunks/{IssuesPanel-L9Gq_T8n.js → IssuesPanel-qKY6UDd-.js} +2 -2
  63. package/dist/cdn/chunks/IssuesPanel-qKY6UDd-.js.map +1 -0
  64. package/dist/cdn/chunks/LoadingTrack-_7DH_5aw.js.map +1 -1
  65. package/dist/cdn/chunks/{LogicTagInsertButton-3pIbVE9p.js → LogicTagInsertButton-CItDS_U1.js} +2 -2
  66. package/dist/cdn/chunks/LogicTagInsertButton-CItDS_U1.js.map +1 -0
  67. package/dist/cdn/chunks/{MediaEditModal-rTjYl-fV.js → MediaEditModal-CzUtXkpk.js} +2 -2
  68. package/dist/cdn/chunks/MediaEditModal-CzUtXkpk.js.map +1 -0
  69. package/dist/cdn/chunks/{MediaPanels-DMXRQVqg.js → MediaPanels-DOLsh7WC.js} +2 -2
  70. package/dist/cdn/chunks/MediaPanels-DOLsh7WC.js.map +1 -0
  71. package/dist/cdn/chunks/{MergeTagInput-JcBzr77a.js → MergeTagInput-B33u3nxj.js} +2 -2
  72. package/dist/cdn/chunks/MergeTagInput-B33u3nxj.js.map +1 -0
  73. package/dist/cdn/chunks/{MergeTagModeToggle-CYmueXS2.js → MergeTagModeToggle-Bz1CH3NT.js} +2 -2
  74. package/dist/cdn/chunks/MergeTagModeToggle-Bz1CH3NT.js.map +1 -0
  75. package/dist/cdn/chunks/{ParagraphEditor-DbjFDnYm.js → ParagraphEditor-B6A4yQ0A.js} +24 -24
  76. package/dist/cdn/chunks/ParagraphEditor-B6A4yQ0A.js.map +1 -0
  77. package/dist/cdn/chunks/{RestoreVersionDialog-pANCWcce.js → RestoreVersionDialog-B9rujl9w.js} +3 -3
  78. package/dist/cdn/chunks/RestoreVersionDialog-B9rujl9w.js.map +1 -0
  79. package/dist/cdn/chunks/{RichTextEditorContent-BtM1or8A.js → RichTextEditorContent-dOg1xFqv.js} +4 -4
  80. package/dist/cdn/chunks/RichTextEditorContent-dOg1xFqv.js.map +1 -0
  81. package/dist/cdn/chunks/{SaveBlockDialog-CGM3mrGj.js → SaveBlockDialog-BNAeb6--.js} +6 -6
  82. package/dist/cdn/chunks/SaveBlockDialog-BNAeb6--.js.map +1 -0
  83. package/dist/cdn/chunks/{SavedBlocksBrowserModal-C6Z8AvtD.js → SavedBlocksBrowserModal--FoVqEnT.js} +6 -6
  84. package/dist/cdn/chunks/SavedBlocksBrowserModal--FoVqEnT.js.map +1 -0
  85. package/dist/cdn/chunks/{SavedBlocksPanels-DNwKmnhp.js → SavedBlocksPanels-qKyPnVgk.js} +2 -2
  86. package/dist/cdn/chunks/SavedBlocksPanels-qKyPnVgk.js.map +1 -0
  87. package/dist/cdn/chunks/{SavedBlocksPickBar-D2p1ufB4.js → SavedBlocksPickBar-BvLwca4B.js} +3 -3
  88. package/dist/cdn/chunks/SavedBlocksPickBar-BvLwca4B.js.map +1 -0
  89. package/dist/cdn/chunks/{TemplateScoringPanel-BDB4RErx.js → TemplateScoringPanel-ebsrVge3.js} +2 -2
  90. package/dist/cdn/chunks/TemplateScoringPanel-ebsrVge3.js.map +1 -0
  91. package/dist/cdn/chunks/{TemplateSettings-DVN1t3yF.js → TemplateSettings-BaEVdUTM.js} +4 -4
  92. package/dist/cdn/chunks/TemplateSettings-BaEVdUTM.js.map +1 -0
  93. package/dist/cdn/chunks/{TestEmailModal-DZBCmBtT.js → TestEmailModal-DpYirvEL.js} +6 -6
  94. package/dist/cdn/chunks/TestEmailModal-DpYirvEL.js.map +1 -0
  95. package/dist/cdn/chunks/{TestEmailPanel-1ibwYCUl.js → TestEmailPanel-PAT70a2g.js} +2 -2
  96. package/dist/cdn/chunks/TestEmailPanel-PAT70a2g.js.map +1 -0
  97. package/dist/cdn/chunks/{TitleEditor-BRl2qKbd.js → TitleEditor-Dc7YB6Uy.js} +8 -8
  98. package/dist/cdn/chunks/TitleEditor-Dc7YB6Uy.js.map +1 -0
  99. package/dist/cdn/chunks/{ToggleSwitch-niSL2uog.js → ToggleSwitch-D-8dCEbI.js} +2 -2
  100. package/dist/cdn/chunks/ToggleSwitch-D-8dCEbI.js.map +1 -0
  101. package/dist/cdn/chunks/{Toolbar-tTl0P-rr.js → Toolbar-BDzhrmGV.js} +32 -32
  102. package/dist/cdn/chunks/Toolbar-BDzhrmGV.js.map +1 -0
  103. package/dist/cdn/chunks/{TplModal-C_eIPykE.js → TplModal-BbHRUc1Y.js} +2 -2
  104. package/dist/cdn/chunks/TplModal-BbHRUc1Y.js.map +1 -0
  105. package/dist/cdn/chunks/{VersionHistoryMenu-Ww57XAzj.js → VersionHistoryMenu-C_bBKOYU.js} +2 -2
  106. package/dist/cdn/chunks/VersionHistoryMenu-C_bBKOYU.js.map +1 -0
  107. package/dist/cdn/chunks/{VersionHistoryPanels-w0EG_qVW.js → VersionHistoryPanels-BoJsPIKa.js} +2 -2
  108. package/dist/cdn/chunks/VersionHistoryPanels-BoJsPIKa.js.map +1 -0
  109. package/dist/cdn/chunks/{VersionPreviewBanner-Bbd4C-AN.js → VersionPreviewBanner-CKyrcgxJ.js} +2 -2
  110. package/dist/cdn/chunks/VersionPreviewBanner-CKyrcgxJ.js.map +1 -0
  111. package/dist/cdn/chunks/{WrapperBlock-Ch4KeMIb.js → WrapperBlock-CGg6rBnx.js} +2 -2
  112. package/dist/cdn/chunks/WrapperBlock-CGg6rBnx.js.map +1 -0
  113. package/dist/cdn/chunks/{blockTypeIcons-CyPXFh7L.js → blockTypeIcons-CdfCfqHE.js} +2 -2
  114. package/dist/cdn/chunks/blockTypeIcons-CdfCfqHE.js.map +1 -0
  115. package/dist/cdn/chunks/ca--zGWn9AU.js.map +1 -1
  116. package/dist/cdn/chunks/ca-BTf1Zbqb.js.map +1 -1
  117. package/dist/cdn/chunks/cloud-De-eh1u6.js.map +1 -1
  118. package/dist/cdn/chunks/createCloudRuntime-DsaUaWvr.js.map +1 -1
  119. package/dist/cdn/chunks/de-BRNLKcDl.js.map +1 -1
  120. package/dist/cdn/chunks/de-mMY5yQJu.js.map +1 -1
  121. package/dist/cdn/chunks/de-xzrh9PA3.js.map +1 -1
  122. package/dist/cdn/chunks/dist-BRZhN8qJ.js.map +1 -1
  123. package/dist/cdn/chunks/dist-CXB2_kBa.js.map +1 -1
  124. package/dist/cdn/chunks/draggable-IB4x6w2O.js.map +1 -1
  125. package/dist/cdn/chunks/{editor-modal-BdI0iA5r.js → editor-modal-CZQArGNj.js} +4 -4
  126. package/dist/cdn/chunks/editor-modal-CZQArGNj.js.map +1 -0
  127. package/dist/cdn/chunks/emojiData-6m0DBh7O.js.map +1 -1
  128. package/dist/cdn/chunks/en-9unxBjV8.js +2 -0
  129. package/dist/cdn/chunks/en-ChVeGQBY.js.map +1 -1
  130. package/dist/cdn/chunks/en-JJjqHMjy.js.map +1 -1
  131. package/dist/cdn/chunks/es-BIh8BxV9.js.map +1 -1
  132. package/dist/cdn/chunks/es-BT4LSpE2.js.map +1 -1
  133. package/dist/cdn/chunks/{extensions-DK_9-6Bd.js → extensions-Dy251lPd.js} +3 -3
  134. package/dist/cdn/chunks/extensions-Dy251lPd.js.map +1 -0
  135. package/dist/cdn/chunks/formatAbsoluteDateTime-DMmop3C-.js.map +1 -1
  136. package/dist/cdn/chunks/formatRelativeTime-CtUU-QZ8.js.map +1 -1
  137. package/dist/cdn/chunks/fr-C5VUZogP.js.map +1 -1
  138. package/dist/cdn/chunks/fr-CI7OJoql.js.map +1 -1
  139. package/dist/cdn/chunks/htmlparser-ClUZ6waR.js.map +1 -1
  140. package/dist/cdn/chunks/{icons-Bad3WZ3G.js → icons-CQnjugjy.js} +38 -38
  141. package/dist/cdn/chunks/icons-CQnjugjy.js.map +1 -0
  142. package/dist/cdn/chunks/ja-DhlWUfke.js.map +1 -1
  143. package/dist/cdn/chunks/ja-x5JYxaCW.js.map +1 -1
  144. package/dist/cdn/chunks/keys-DCWeHkSF.js.map +1 -1
  145. package/dist/cdn/chunks/liquid.browser-BypTT2oc.js.map +1 -1
  146. package/dist/cdn/chunks/logger-ByvdoAwq.js.map +1 -1
  147. package/dist/cdn/chunks/nl-D8y5OWGB.js.map +1 -1
  148. package/dist/cdn/chunks/nl-UXxFyXV6.js.map +1 -1
  149. package/dist/cdn/chunks/preRenderCustomBlocks-h4ZFBKbD.js.map +1 -1
  150. package/dist/cdn/chunks/pt-BR-CoCwRUi0.js.map +1 -1
  151. package/dist/cdn/chunks/pt-BR-DHm3SP6W.js.map +1 -1
  152. package/dist/cdn/chunks/pt-BR-DMCbUBvJ.js.map +1 -1
  153. package/dist/cdn/chunks/pusher-BbIHJKf3.js.map +1 -1
  154. package/dist/cdn/chunks/readableTextColor-f8Kykfnh.js.map +1 -1
  155. package/dist/cdn/chunks/socialIcons-ZOCwCCyn.js.map +1 -1
  156. package/dist/cdn/chunks/src-BR3I3gOW.js.map +1 -1
  157. package/dist/cdn/chunks/{src-BxoLKnkl.js → src-CG5WUNg7.js} +4 -4
  158. package/dist/cdn/chunks/src-CG5WUNg7.js.map +1 -0
  159. package/dist/cdn/chunks/src-fZSLjhjy.js.map +1 -1
  160. package/dist/cdn/chunks/styleConstants-C_YAPdQS.js.map +1 -1
  161. package/dist/cdn/chunks/templateSettingsFields-YCFVBVYh.js.map +1 -1
  162. package/dist/cdn/chunks/timeouts-DHPZQ0G3.js.map +1 -1
  163. package/dist/cdn/chunks/{tiptap-DhLuKyDc.js → tiptap-D1u8JIUW.js} +1916 -1917
  164. package/dist/cdn/chunks/tiptap-D1u8JIUW.js.map +1 -0
  165. package/dist/cdn/chunks/useAliveFlag-DAlQLbM2.js.map +1 -1
  166. package/dist/cdn/chunks/useCloudI18n-CrjWbpbu.js.map +1 -1
  167. package/dist/cdn/chunks/{useEditorCore-yd40TFKy.js → useEditorCore-DoX2RgTl.js} +6 -6
  168. package/dist/cdn/chunks/useEditorCore-DoX2RgTl.js.map +1 -0
  169. package/dist/cdn/chunks/useEditorRoot-CshefZLP.js.map +1 -1
  170. package/dist/cdn/chunks/useI18n-CyO_Nmca.js.map +1 -1
  171. package/dist/cdn/chunks/useLogicTag-J_i_hvZg.js.map +1 -1
  172. package/dist/cdn/chunks/useMergeTag-C5MyHYxJ.js.map +1 -1
  173. package/dist/cdn/chunks/usePopoverPosition-DGXjXKjM.js.map +1 -1
  174. package/dist/cdn/chunks/useScrollToBlock-DgHZJvID.js.map +1 -1
  175. package/dist/cdn/editor.css +1 -1
  176. package/dist/cdn/editor.js +495 -466
  177. package/dist/cdn/editor.js.map +1 -1
  178. package/dist/{check-eqb2JhqU.js → check-BMx_TLAS.js} +1 -1
  179. package/dist/{chevron-down-Dkr-7Ywl.js → chevron-down-KZf5mh9_.js} +1 -1
  180. package/dist/{chevron-right-Bge4XF_B.js → chevron-right-BLZ60Vxw.js} +1 -1
  181. package/dist/{chevron-up-CQAyl0kC.js → chevron-up-B9ynB8eU.js} +1 -1
  182. package/dist/{circle-alert-CYgTHKWr.js → circle-alert-pjvFFDrF.js} +1 -1
  183. package/dist/{clock-BgSJZJP5.js → clock-CiiTBfF3.js} +1 -1
  184. package/dist/{copy-mw6PVnOJ.js → copy-BF0_pQjH.js} +1 -1
  185. package/dist/{createLucideIcon-BxY5yz5u.js → createLucideIcon-C2YOVVWx.js} +8 -8
  186. package/dist/{dist-CQSVro7b.js → dist-B0dkvy7z.js} +1 -1
  187. package/dist/{dist-BJM3eFyT.js → dist-BPWuzECC.js} +1 -1
  188. package/dist/{dist-EDkj3Ub1.js → dist-BUHovM4k.js} +1 -1
  189. package/dist/{dist-BmsLcnrO.js → dist-BwoEME8p.js} +1 -1
  190. package/dist/{dist-DerFNpDY.js → dist-C2Ge44fD.js} +760 -761
  191. package/dist/{dist-BdHF7nyq.js → dist-CIxmOOSG.js} +5 -5
  192. package/dist/{dist-wyXxj3R1.js → dist-CJ7RZARo.js} +1 -1
  193. package/dist/{dist-Bl4rxpX9.js → dist-CxmLZQso.js} +1 -1
  194. package/dist/{dist-DyrEOKEJ.js → dist-DRmafAUz.js} +1 -1
  195. package/dist/{dist-Djmzp6wi.js → dist-DdOAotfz.js} +1 -1
  196. package/dist/{dist-BxVnMgXZ.js → dist-W_ERo6c_.js} +1 -1
  197. package/dist/{dist-DQbOebGW.js → dist-p-LkiWIQ.js} +1 -1
  198. package/dist/{editor-modal-qzmEVcIk.js → editor-modal-99FB40dl.js} +16 -16
  199. package/dist/en-BvOjRLiw.js +2 -0
  200. package/dist/{extensions-DoT2-_pz.js → extensions-DqQXxrvP.js} +3 -3
  201. package/dist/{eye-DphkRtAD.js → eye-RdXYgrQZ.js} +1 -1
  202. package/dist/{image-up-Qi2BXD7T.js → image-up-BwdoReQt.js} +1 -1
  203. package/dist/{info-VSyAs02q.js → info-zFMSGrL1.js} +1 -1
  204. package/dist/{link-CNuozGqD.js → link-D7orqFBT.js} +1 -1
  205. package/dist/{list-BA0I5Wmu.js → list-BGt4Pgxc.js} +1 -1
  206. package/dist/{loader-circle-z5eeqasv.js → loader-circle-BVBgkRGz.js} +1 -1
  207. package/dist/{message-circle-BsQ9hEup.js → message-circle-D8YLsarv.js} +1 -1
  208. package/dist/{package-OkXfuRoO.js → package-CuFvk0L5.js} +1 -1
  209. package/dist/{pencil-DFVFA7Dj.js → pencil-DRYbmZW7.js} +1 -1
  210. package/dist/{plus-D8bkVjZ7.js → plus-Dv0b3kh0.js} +1 -1
  211. package/dist/{refresh-cw-DPB7YFuz.js → refresh-cw-gYTIS5bJ.js} +1 -1
  212. package/dist/{search-C-dCgqIa.js → search-D84_Ki_a.js} +1 -1
  213. package/dist/{send-Cm2fy2zm.js → send-Cn-8_H_U.js} +1 -1
  214. package/dist/{shield-check-COgBYFDF.js → shield-check-BOoVWJtD.js} +1 -1
  215. package/dist/{smartphone-v0u_MOEV.js → smartphone-4Ej3PBw5.js} +1 -1
  216. package/dist/{socialIcons-CACVa6m_.js → socialIcons-CzRJskEk.js} +1 -1
  217. package/dist/{sparkles-Ds0RF8Iu.js → sparkles-D3vnNe7O.js} +1 -1
  218. package/dist/style.css +1 -1
  219. package/dist/templatical-editor.js +404 -375
  220. package/dist/{text-align-start-DiavaIm6.js → text-align-start-Ci2h_Xly.js} +1 -1
  221. package/dist/{trash-DnOkfu2V.js → trash-wmi4UKvv.js} +1 -1
  222. package/dist/{triangle-alert-DGLAyXnh.js → triangle-alert-DJ0r2wmQ.js} +1 -1
  223. package/dist/{upload-BBDme2cy.js → upload-XMde-TXf.js} +1 -1
  224. package/dist/{useEditorCore-LyNoGs0m.js → useEditorCore-CAhRAya8.js} +12 -12
  225. package/dist/{useScrollToBlock-Dj4v3rxr.js → useScrollToBlock-B4F7KCrf.js} +1 -1
  226. package/dist/{x-3BHV3Q6K.js → x-BWrtpVl-.js} +1 -1
  227. package/package.json +10 -10
  228. package/dist/cdn/chunks/AiChatSidebar-DD17BwXn.js.map +0 -1
  229. package/dist/cdn/chunks/AiFeatureMenu-Di381OsL.js.map +0 -1
  230. package/dist/cdn/chunks/BlockIssueBadge-BR_N3nRh.js.map +0 -1
  231. package/dist/cdn/chunks/BlockPreviewCanvas-BXpcAiiY.js.map +0 -1
  232. package/dist/cdn/chunks/CloudHeaderExtras-BEM2eWfF.js.map +0 -1
  233. package/dist/cdn/chunks/CloudPanels-D7nK1-bm.js.map +0 -1
  234. package/dist/cdn/chunks/CollaboratorBar-D1SUwahw.js.map +0 -1
  235. package/dist/cdn/chunks/CommentsPanel-qsLMAlJU.js.map +0 -1
  236. package/dist/cdn/chunks/CommentsSidebar-CTwEE-s_.js.map +0 -1
  237. package/dist/cdn/chunks/CountdownToolbar-BJTcnIQ-.js.map +0 -1
  238. package/dist/cdn/chunks/DesignReferenceSidebar-Dl3eEGtS.js.map +0 -1
  239. package/dist/cdn/chunks/IssuesPanel-L9Gq_T8n.js.map +0 -1
  240. package/dist/cdn/chunks/LogicTagInsertButton-3pIbVE9p.js.map +0 -1
  241. package/dist/cdn/chunks/MediaEditModal-rTjYl-fV.js.map +0 -1
  242. package/dist/cdn/chunks/MediaPanels-DMXRQVqg.js.map +0 -1
  243. package/dist/cdn/chunks/MergeTagInput-JcBzr77a.js.map +0 -1
  244. package/dist/cdn/chunks/MergeTagModeToggle-CYmueXS2.js.map +0 -1
  245. package/dist/cdn/chunks/ParagraphEditor-DbjFDnYm.js.map +0 -1
  246. package/dist/cdn/chunks/RestoreVersionDialog-pANCWcce.js.map +0 -1
  247. package/dist/cdn/chunks/RichTextEditorContent-BtM1or8A.js.map +0 -1
  248. package/dist/cdn/chunks/SaveBlockDialog-CGM3mrGj.js.map +0 -1
  249. package/dist/cdn/chunks/SavedBlocksBrowserModal-C6Z8AvtD.js.map +0 -1
  250. package/dist/cdn/chunks/SavedBlocksPanels-DNwKmnhp.js.map +0 -1
  251. package/dist/cdn/chunks/SavedBlocksPickBar-D2p1ufB4.js.map +0 -1
  252. package/dist/cdn/chunks/TemplateScoringPanel-BDB4RErx.js.map +0 -1
  253. package/dist/cdn/chunks/TemplateSettings-DVN1t3yF.js.map +0 -1
  254. package/dist/cdn/chunks/TestEmailModal-DZBCmBtT.js.map +0 -1
  255. package/dist/cdn/chunks/TestEmailPanel-1ibwYCUl.js.map +0 -1
  256. package/dist/cdn/chunks/TitleEditor-BRl2qKbd.js.map +0 -1
  257. package/dist/cdn/chunks/ToggleSwitch-niSL2uog.js.map +0 -1
  258. package/dist/cdn/chunks/Toolbar-tTl0P-rr.js.map +0 -1
  259. package/dist/cdn/chunks/TplModal-C_eIPykE.js.map +0 -1
  260. package/dist/cdn/chunks/VersionHistoryMenu-Ww57XAzj.js.map +0 -1
  261. package/dist/cdn/chunks/VersionHistoryPanels-w0EG_qVW.js.map +0 -1
  262. package/dist/cdn/chunks/VersionPreviewBanner-Bbd4C-AN.js.map +0 -1
  263. package/dist/cdn/chunks/WrapperBlock-Ch4KeMIb.js.map +0 -1
  264. package/dist/cdn/chunks/blockTypeIcons-CyPXFh7L.js.map +0 -1
  265. package/dist/cdn/chunks/editor-modal-BdI0iA5r.js.map +0 -1
  266. package/dist/cdn/chunks/en-Cs-nw16K.js +0 -2
  267. package/dist/cdn/chunks/extensions-DK_9-6Bd.js.map +0 -1
  268. package/dist/cdn/chunks/icons-Bad3WZ3G.js.map +0 -1
  269. package/dist/cdn/chunks/src-BxoLKnkl.js.map +0 -1
  270. package/dist/cdn/chunks/tiptap-DhLuKyDc.js.map +0 -1
  271. package/dist/cdn/chunks/useEditorCore-yd40TFKy.js.map +0 -1
  272. package/dist/en-1tgLzB8q.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"styleConstants-C_YAPdQS.js","names":[],"sources":["../../../src/constants/styleConstants.ts"],"sourcesContent":["export const labelClass =\n \"tpl:block tpl:mb-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]\";\n\nexport const inputClass =\n \"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-[var(--tpl-shadow-sm)] 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 tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)] tpl:placeholder:text-[var(--tpl-text-dim)]\";\n\nexport const inputGroupInputClass =\n \"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-[var(--tpl-shadow-sm)] 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 tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)] tpl:placeholder:text-[var(--tpl-text-dim)]\";\n\nexport const inputSuffixClass =\n \"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)]\";\n\nexport const colorInputClass =\n \"tpl:w-10 tpl:shrink-0 tpl:h-10 tpl:p-0.5 tpl:border tpl:rounded-[var(--tpl-radius-sm)] tpl:cursor-pointer tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]\";\n\nexport const colorTextClass =\n \"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-[var(--tpl-shadow-sm)] 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 tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)]\";\n\nexport const btnClass =\n \"tpl:flex-1 tpl:px-2.5 tpl:py-[7px] tpl:text-sm tpl:font-medium tpl:cursor-pointer tpl:flex tpl:items-center tpl:justify-center tpl:rounded-[var(--tpl-radius-sm)] tpl:text-[var(--tpl-text-muted)] tpl:bg-transparent tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)] tpl:hover:bg-[var(--tpl-bg-hover)] tpl:hover:text-[var(--tpl-text)]\";\n\nexport const btnActiveClass =\n \"tpl:flex-1 tpl:px-2.5 tpl:py-[7px] tpl:text-sm tpl:font-medium tpl:cursor-pointer tpl:flex tpl:items-center tpl:justify-center tpl:rounded-[var(--tpl-radius-sm)] tpl:text-[var(--tpl-primary)] tpl:bg-[var(--tpl-primary-light)]\";\n\nexport const cardClass =\n \"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)] tpl:hover:bg-[var(--tpl-bg-hover)]\";\n\nexport const removeItemBtnClass =\n \"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:hover:border-[var(--tpl-danger)] tpl:hover:bg-[var(--tpl-danger-light)] tpl:hover:text-[var(--tpl-danger)]\";\n\nexport const addItemBtnClass =\n \"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:hover:border-[var(--tpl-primary)] tpl:hover:text-[var(--tpl-primary)]\";\n\nexport const monoTextareaClass =\n \"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:placeholder:text-[var(--tpl-text-dim)] tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[0_0_0_3px_var(--tpl-primary-light)]\";\n\n/**\n * The button system: two variants at two scales, composed from one base so a\n * change to focus, disabled or hover behaviour lands on all four at once.\n *\n * **Variants.** Primary is a Signal Amber surface, rare by design — amber\n * announces intent or selection, so a screen with several has nothing left to\n * emphasise. Secondary is the quiet default: muted at rest, saturating on hover,\n * which is how the rest of the chrome behaves so the canvas stays the foreground.\n *\n * **Scales.** The default is dialog and panel scale. The compact pair is for\n * dense chrome — the editor header, where 38px matches the viewport toggle's\n * outer box and 12px is the size every neighbouring control already uses (14px\n * beside those would be a 1.17x step at one weight, the flat scale the\n * Weight-Contrast Rule forbids).\n *\n * **Both are flat at rest.** Depth answers state, so `--tpl-shadow-sm` arrives on\n * hover. A resting shadow on a static control is the one thing DESIGN.md §5 says\n * the answer to is always no.\n *\n * **Primary's hover deepens, never lightens.** `--tpl-primary-hover` is a darker\n * amber; fading the surface with `opacity` instead washes it toward the page and\n * reads as the button going away rather than responding.\n *\n * Primary's label goes through `--tpl-on-primary` rather than naming `--tpl-bg`,\n * so the amber/label pairing is one decision — see the On-Amber Rule. It is\n * 2.80:1 in light mode, accepted under the Amber Contrast Exception, and 7.77:1\n * in dark.\n *\n * Duration and easing come from the `@theme` defaults in `styles/index.css`;\n * spelling them out per recipe is what let call sites drift off the house tempo.\n */\nconst btnBase =\n \"tpl:inline-flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:border tpl:font-medium tpl:whitespace-nowrap tpl:transition-all tpl:focus-visible:outline-none tpl:focus-visible:shadow-[var(--tpl-ring)] tpl:disabled:cursor-not-allowed tpl:disabled:opacity-50\";\n\nconst btnPrimarySkin =\n \"tpl:border-transparent tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-on-primary)] tpl:hover:bg-[var(--tpl-primary-hover)] tpl:hover:shadow-[var(--tpl-shadow-sm)]\";\n\nconst btnSecondarySkin =\n \"tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text-muted)] tpl:hover:bg-[var(--tpl-bg-hover)] tpl:hover:text-[var(--tpl-text)] tpl:hover:shadow-[var(--tpl-shadow-sm)]\";\n\n/**\n * Destructive actions. Outlined rather than filled, deliberately: a delete button\n * should be findable, not the loudest thing on the surface, and a filled danger\n * surface competes with the primary for the eye. It also costs nothing in\n * contrast — `--tpl-danger` on `--tpl-bg` and `--tpl-bg` on `--tpl-danger` are\n * the same pair, so filling buys no legibility.\n *\n * 3.76:1 in light and 5.41:1 in dark. That clears the 3:1 non-text floor in both\n * and the 4.5 text floor in dark; light mode falls short, which is the same\n * accepted trade the Amber Contrast Exception records — and a destructive action\n * is never signalled by colour alone here, since these buttons are always\n * confirm steps whose label says what they do.\n *\n * Hover deepens into `--tpl-danger-light` rather than fading, matching\n * `removeItemBtnClass`.\n */\n/**\n * Ghost: no surface of its own, so it belongs to whatever it sits on. Used where\n * a secondary action shares a tinted band with a primary one — the\n * version-preview banner's Cancel beside its Restore — and a bordered chip would\n * read as a foreign object dropped onto the tint.\n *\n * The hover wash is translucent rather than `--tpl-bg-active`. An opaque wash\n * only composes on paper: on the banner's `--tpl-primary-light` it would paint a\n * warm grey over amber, and in dark mode it would lighten where everything else\n * darkens. Mixing `--tpl-text` into transparency deepens whatever ground is\n * actually behind it, in either theme.\n */\nconst btnGhostSkin =\n \"tpl:border-transparent tpl:bg-transparent tpl:text-[var(--tpl-text-muted)] tpl:hover:bg-[color-mix(in_srgb,var(--tpl-text)_8%,transparent)] tpl:hover:text-[var(--tpl-text)]\";\n\nconst btnDangerSkin =\n \"tpl:border-[var(--tpl-danger)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-danger)] tpl:hover:bg-[var(--tpl-danger-light)] tpl:hover:shadow-[var(--tpl-shadow-sm)]\";\n\n/**\n * A state the user should notice and can undo — currently only the canvas's\n * \"Show all hidden blocks\" pill, which says the preview is hiding content.\n *\n * Outlined like danger, but **the amber sits on the border and the label stays\n * the house's muted-at-rest**, which is where this parts company with\n * `btnDangerSkin`. Copying that skin literally does not survive the token math:\n * `--tpl-danger` is a mid red (63.7% L) and reads at 3.76:1 as a label on\n * `--tpl-bg`, while `--tpl-warning` is a *light* amber (76.9% L) and manages only\n * **2.11:1** — under even the 3:1 non-text floor, let alone the 4.5:1 a label\n * has to clear. The muted label is 5.93:1 light and 5.99:1 dark, AA in both.\n *\n * That also retires a real defect: the pill previously painted `--tpl-warning`\n * on a `--tpl-warning-light` fill, which is **1.85:1** in light mode.\n *\n * The border carrying the colour is the editor's own dialect rather than a new\n * idea — Save signals dirtiness with an amber border and an otherwise ordinary\n * label. And because the amber fill now arrives only on hover, it is a response\n * rather than a permanent surface, which is what the One Signal Rule asks: this\n * pill can share the canvas with the Sample/Label switch's amber active segment\n * without two amber elements sitting next to each other at rest.\n */\nconst btnWarningSkin =\n \"tpl:border-[var(--tpl-warning)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text-muted)] tpl:hover:bg-[var(--tpl-warning-light)] tpl:hover:text-[var(--tpl-text)] tpl:hover:shadow-[var(--tpl-shadow-sm)]\";\n\n/** Dialog and panel scale. */\nconst btnSizeDefault = \"tpl:rounded-md tpl:px-3 tpl:py-1.5 tpl:text-sm\";\n\n/** Dense-chrome scale: 38px tall, matching the header's other controls. */\nconst btnSizeCompact =\n \"tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3 tpl:py-2.5 tpl:text-xs\";\n\nexport const primaryBtnClass = `${btnBase} ${btnPrimarySkin} ${btnSizeDefault}`;\nexport const secondaryBtnClass = `${btnBase} ${btnSecondarySkin} ${btnSizeDefault}`;\nexport const primaryBtnCompactClass = `${btnBase} ${btnPrimarySkin} ${btnSizeCompact}`;\nexport const secondaryBtnCompactClass = `${btnBase} ${btnSecondarySkin} ${btnSizeCompact}`;\nexport const dangerBtnClass = `${btnBase} ${btnDangerSkin} ${btnSizeDefault}`;\nexport const dangerBtnCompactClass = `${btnBase} ${btnDangerSkin} ${btnSizeCompact}`;\n/** Compact only: the one caller is canvas chrome, at the header's 38px. */\nexport const warningBtnCompactClass = `${btnBase} ${btnWarningSkin} ${btnSizeCompact}`;\nexport const ghostBtnClass = `${btnBase} ${btnGhostSkin} ${btnSizeDefault}`;\n\n// Rich text toolbar presets\nexport const FONT_SIZE_OPTIONS = [\n \"10px\",\n \"12px\",\n \"14px\",\n \"16px\",\n \"18px\",\n \"20px\",\n \"24px\",\n \"28px\",\n \"32px\",\n \"36px\",\n \"48px\",\n \"64px\",\n];\n\nexport const LINE_HEIGHT_OPTIONS = [\n \"1\",\n \"1.2\",\n \"1.4\",\n \"1.5\",\n \"1.6\",\n \"1.8\",\n \"2\",\n \"2.5\",\n];\n\nexport const LETTER_SPACING_OPTIONS = [\n { label: \"Normal\", value: \"normal\" },\n { label: \"-0.5px\", value: \"-0.5px\" },\n { label: \"0.5px\", value: \"0.5px\" },\n { label: \"1px\", value: \"1px\" },\n { label: \"1.5px\", value: \"1.5px\" },\n { label: \"2px\", value: \"2px\" },\n { label: \"3px\", value: \"3px\" },\n];\n\n// Default color constants\nexport const DEFAULT_TEXT_COLOR = \"#000000\";\nexport const DEFAULT_BG_COLOR = \"#ffffff\";\nexport const DEFAULT_HIGHLIGHT_COLOR = \"#ffff00\";\nexport const DEFAULT_TABLE_ROW_BG = \"#f2f2f2\";\n"],"mappings":";AAAA,IAAa,IACX,qFAEW,IACX,6aAEW,IACX,idAEW,IACX,8MAKW,IACX,gZAQW,IACX,yOAEW,IACX,8UAEW,IACX,qVAEW,IACX,+VAiCI,IACJ,4RAEI,IACJ,uKAEI,IACJ,sMA8BI,IACJ,gLAEI,IACJ,qKAwBI,IACJ,4MAGI,IAAiB,kDAGjB,IACJ,sEAEW,IAAkB,GAAG,EAAQ,GAAG,EAAe,GAAG,KAClD,IAAoB,GAAG,EAAQ,GAAG,EAAiB,GAAG,KACtD,IAAyB,GAAG,EAAQ,GAAG,EAAe,GAAG,KACzD,IAA2B,GAAG,EAAQ,GAAG,EAAiB,GAAG,KAC7D,IAAiB,GAAG,EAAQ,GAAG,EAAc,GAAG;AACxB,GAAG,EAAH,EAAc,EAAd,EAA+B,EAA/B;AAErC,IAAa,IAAyB,GAAG,EAAQ,GAAG,EAAe,GAAG,KACzD,IAAgB,GAAG,EAAQ,GAAG,EAAa,GAAG,KAG9C,IAAoB;CAC/B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAEa,IAAsB;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAEa,IAAyB;CACpC;EAAE,OAAO;EAAU,OAAO;CAAS;CACnC;EAAE,OAAO;EAAU,OAAO;CAAS;CACnC;EAAE,OAAO;EAAS,OAAO;CAAQ;CACjC;EAAE,OAAO;EAAO,OAAO;CAAM;CAC7B;EAAE,OAAO;EAAS,OAAO;CAAQ;CACjC;EAAE,OAAO;EAAO,OAAO;CAAM;CAC7B;EAAE,OAAO;EAAO,OAAO;CAAM;AAC/B,GAGa,IAAqB,WACrB,IAAmB,WACnB,IAA0B,WAC1B,IAAuB"}
1
+ {"version":3,"file":"styleConstants-C_YAPdQS.js","names":["labelClass","inputClass","inputGroupInputClass","inputSuffixClass","colorTextClass","cardClass","removeItemBtnClass","addItemBtnClass","monoTextareaClass","btnBase","btnPrimarySkin","btnSecondarySkin","btnGhostSkin","btnDangerSkin","btnWarningSkin","btnSizeDefault","btnSizeCompact","primaryBtnClass","secondaryBtnClass","primaryBtnCompactClass","secondaryBtnCompactClass","dangerBtnClass","warningBtnCompactClass","ghostBtnClass","FONT_SIZE_OPTIONS","LINE_HEIGHT_OPTIONS","LETTER_SPACING_OPTIONS","DEFAULT_TEXT_COLOR","DEFAULT_BG_COLOR","DEFAULT_HIGHLIGHT_COLOR","DEFAULT_TABLE_ROW_BG"],"sources":["../../../src/constants/styleConstants.ts"],"sourcesContent":["export const labelClass =\n \"tpl:block tpl:mb-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]\";\n\nexport const inputClass =\n \"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-[var(--tpl-shadow-sm)] 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 tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)] tpl:placeholder:text-[var(--tpl-text-dim)]\";\n\nexport const inputGroupInputClass =\n \"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-[var(--tpl-shadow-sm)] 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 tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)] tpl:placeholder:text-[var(--tpl-text-dim)]\";\n\nexport const inputSuffixClass =\n \"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)]\";\n\nexport const colorInputClass =\n \"tpl:w-10 tpl:shrink-0 tpl:h-10 tpl:p-0.5 tpl:border tpl:rounded-[var(--tpl-radius-sm)] tpl:cursor-pointer tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]\";\n\nexport const colorTextClass =\n \"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-[var(--tpl-shadow-sm)] 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 tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[var(--tpl-ring)]\";\n\nexport const btnClass =\n \"tpl:flex-1 tpl:px-2.5 tpl:py-[7px] tpl:text-sm tpl:font-medium tpl:cursor-pointer tpl:flex tpl:items-center tpl:justify-center tpl:rounded-[var(--tpl-radius-sm)] tpl:text-[var(--tpl-text-muted)] tpl:bg-transparent tpl:transition-all tpl:duration-[120ms] tpl:ease-[cubic-bezier(0.16,1,0.3,1)] tpl:hover:bg-[var(--tpl-bg-hover)] tpl:hover:text-[var(--tpl-text)]\";\n\nexport const btnActiveClass =\n \"tpl:flex-1 tpl:px-2.5 tpl:py-[7px] tpl:text-sm tpl:font-medium tpl:cursor-pointer tpl:flex tpl:items-center tpl:justify-center tpl:rounded-[var(--tpl-radius-sm)] tpl:text-[var(--tpl-primary)] tpl:bg-[var(--tpl-primary-light)]\";\n\nexport const cardClass =\n \"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)] tpl:hover:bg-[var(--tpl-bg-hover)]\";\n\nexport const removeItemBtnClass =\n \"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:hover:border-[var(--tpl-danger)] tpl:hover:bg-[var(--tpl-danger-light)] tpl:hover:text-[var(--tpl-danger)]\";\n\nexport const addItemBtnClass =\n \"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:hover:border-[var(--tpl-primary)] tpl:hover:text-[var(--tpl-primary)]\";\n\nexport const monoTextareaClass =\n \"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:placeholder:text-[var(--tpl-text-dim)] tpl:focus:border-[var(--tpl-primary)] tpl:focus:shadow-[0_0_0_3px_var(--tpl-primary-light)]\";\n\n/**\n * The button system: two variants at two scales, composed from one base so a\n * change to focus, disabled or hover behaviour lands on all four at once.\n *\n * **Variants.** Primary is a Signal Amber surface, rare by design — amber\n * announces intent or selection, so a screen with several has nothing left to\n * emphasise. Secondary is the quiet default: muted at rest, saturating on hover,\n * which is how the rest of the chrome behaves so the canvas stays the foreground.\n *\n * **Scales.** The default is dialog and panel scale. The compact pair is for\n * dense chrome — the editor header, where 38px matches the viewport toggle's\n * outer box and 12px is the size every neighbouring control already uses (14px\n * beside those would be a 1.17x step at one weight, the flat scale the\n * Weight-Contrast Rule forbids).\n *\n * **Both are flat at rest.** Depth answers state, so `--tpl-shadow-sm` arrives on\n * hover. A resting shadow on a static control is the one thing DESIGN.md §5 says\n * the answer to is always no.\n *\n * **Primary's hover deepens, never lightens.** `--tpl-primary-hover` is a darker\n * amber; fading the surface with `opacity` instead washes it toward the page and\n * reads as the button going away rather than responding.\n *\n * Primary's label goes through `--tpl-on-primary` rather than naming `--tpl-bg`,\n * so the amber/label pairing is one decision — see the On-Amber Rule. It is\n * 2.80:1 in light mode, accepted under the Amber Contrast Exception, and 7.77:1\n * in dark.\n *\n * Duration and easing come from the `@theme` defaults in `styles/index.css`;\n * spelling them out per recipe is what let call sites drift off the house tempo.\n */\nconst btnBase =\n \"tpl:inline-flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:border tpl:font-medium tpl:whitespace-nowrap tpl:transition-all tpl:focus-visible:outline-none tpl:focus-visible:shadow-[var(--tpl-ring)] tpl:disabled:cursor-not-allowed tpl:disabled:opacity-50\";\n\nconst btnPrimarySkin =\n \"tpl:border-transparent tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-on-primary)] tpl:hover:bg-[var(--tpl-primary-hover)] tpl:hover:shadow-[var(--tpl-shadow-sm)]\";\n\nconst btnSecondarySkin =\n \"tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text-muted)] tpl:hover:bg-[var(--tpl-bg-hover)] tpl:hover:text-[var(--tpl-text)] tpl:hover:shadow-[var(--tpl-shadow-sm)]\";\n\n/**\n * Destructive actions. Outlined rather than filled, deliberately: a delete button\n * should be findable, not the loudest thing on the surface, and a filled danger\n * surface competes with the primary for the eye. It also costs nothing in\n * contrast — `--tpl-danger` on `--tpl-bg` and `--tpl-bg` on `--tpl-danger` are\n * the same pair, so filling buys no legibility.\n *\n * 3.76:1 in light and 5.41:1 in dark. That clears the 3:1 non-text floor in both\n * and the 4.5 text floor in dark; light mode falls short, which is the same\n * accepted trade the Amber Contrast Exception records — and a destructive action\n * is never signalled by colour alone here, since these buttons are always\n * confirm steps whose label says what they do.\n *\n * Hover deepens into `--tpl-danger-light` rather than fading, matching\n * `removeItemBtnClass`.\n */\n/**\n * Ghost: no surface of its own, so it belongs to whatever it sits on. Used where\n * a secondary action shares a tinted band with a primary one — the\n * version-preview banner's Cancel beside its Restore — and a bordered chip would\n * read as a foreign object dropped onto the tint.\n *\n * The hover wash is translucent rather than `--tpl-bg-active`. An opaque wash\n * only composes on paper: on the banner's `--tpl-primary-light` it would paint a\n * warm grey over amber, and in dark mode it would lighten where everything else\n * darkens. Mixing `--tpl-text` into transparency deepens whatever ground is\n * actually behind it, in either theme.\n */\nconst btnGhostSkin =\n \"tpl:border-transparent tpl:bg-transparent tpl:text-[var(--tpl-text-muted)] tpl:hover:bg-[color-mix(in_srgb,var(--tpl-text)_8%,transparent)] tpl:hover:text-[var(--tpl-text)]\";\n\nconst btnDangerSkin =\n \"tpl:border-[var(--tpl-danger)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-danger)] tpl:hover:bg-[var(--tpl-danger-light)] tpl:hover:shadow-[var(--tpl-shadow-sm)]\";\n\n/**\n * A state the user should notice and can undo — currently only the canvas's\n * \"Show all hidden blocks\" pill, which says the preview is hiding content.\n *\n * Outlined like danger, but **the amber sits on the border and the label stays\n * the house's muted-at-rest**, which is where this parts company with\n * `btnDangerSkin`. Copying that skin literally does not survive the token math:\n * `--tpl-danger` is a mid red (63.7% L) and reads at 3.76:1 as a label on\n * `--tpl-bg`, while `--tpl-warning` is a *light* amber (76.9% L) and manages only\n * **2.11:1** — under even the 3:1 non-text floor, let alone the 4.5:1 a label\n * has to clear. The muted label is 5.93:1 light and 5.99:1 dark, AA in both.\n *\n * That also retires a real defect: the pill previously painted `--tpl-warning`\n * on a `--tpl-warning-light` fill, which is **1.85:1** in light mode.\n *\n * The border carrying the colour is the editor's own dialect rather than a new\n * idea — Save signals dirtiness with an amber border and an otherwise ordinary\n * label. And because the amber fill now arrives only on hover, it is a response\n * rather than a permanent surface, which is what the One Signal Rule asks: this\n * pill can share the canvas with the Sample/Label switch's amber active segment\n * without two amber elements sitting next to each other at rest.\n */\nconst btnWarningSkin =\n \"tpl:border-[var(--tpl-warning)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text-muted)] tpl:hover:bg-[var(--tpl-warning-light)] tpl:hover:text-[var(--tpl-text)] tpl:hover:shadow-[var(--tpl-shadow-sm)]\";\n\n/** Dialog and panel scale. */\nconst btnSizeDefault = \"tpl:rounded-md tpl:px-3 tpl:py-1.5 tpl:text-sm\";\n\n/** Dense-chrome scale: 38px tall, matching the header's other controls. */\nconst btnSizeCompact =\n \"tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3 tpl:py-2.5 tpl:text-xs\";\n\nexport const primaryBtnClass = `${btnBase} ${btnPrimarySkin} ${btnSizeDefault}`;\nexport const secondaryBtnClass = `${btnBase} ${btnSecondarySkin} ${btnSizeDefault}`;\nexport const primaryBtnCompactClass = `${btnBase} ${btnPrimarySkin} ${btnSizeCompact}`;\nexport const secondaryBtnCompactClass = `${btnBase} ${btnSecondarySkin} ${btnSizeCompact}`;\nexport const dangerBtnClass = `${btnBase} ${btnDangerSkin} ${btnSizeDefault}`;\nexport const dangerBtnCompactClass = `${btnBase} ${btnDangerSkin} ${btnSizeCompact}`;\n/** Compact only: the one caller is canvas chrome, at the header's 38px. */\nexport const warningBtnCompactClass = `${btnBase} ${btnWarningSkin} ${btnSizeCompact}`;\nexport const ghostBtnClass = `${btnBase} ${btnGhostSkin} ${btnSizeDefault}`;\n\n// Rich text toolbar presets\nexport const FONT_SIZE_OPTIONS = [\n \"10px\",\n \"12px\",\n \"14px\",\n \"16px\",\n \"18px\",\n \"20px\",\n \"24px\",\n \"28px\",\n \"32px\",\n \"36px\",\n \"48px\",\n \"64px\",\n];\n\nexport const LINE_HEIGHT_OPTIONS = [\n \"1\",\n \"1.2\",\n \"1.4\",\n \"1.5\",\n \"1.6\",\n \"1.8\",\n \"2\",\n \"2.5\",\n];\n\nexport const LETTER_SPACING_OPTIONS = [\n { label: \"Normal\", value: \"normal\" },\n { label: \"-0.5px\", value: \"-0.5px\" },\n { label: \"0.5px\", value: \"0.5px\" },\n { label: \"1px\", value: \"1px\" },\n { label: \"1.5px\", value: \"1.5px\" },\n { label: \"2px\", value: \"2px\" },\n { label: \"3px\", value: \"3px\" },\n];\n\n// Default color constants\nexport const DEFAULT_TEXT_COLOR = \"#000000\";\nexport const DEFAULT_BG_COLOR = \"#ffffff\";\nexport const DEFAULT_HIGHLIGHT_COLOR = \"#ffff00\";\nexport const DEFAULT_TABLE_ROW_BG = \"#f2f2f2\";\n"],"mappings":";AAAA,IAAaA,IACX,qFAEWC,IACX,6aAEWC,IACX,idAEWC,IACX,8MAKWC,IACX,gZAQWC,IACX,yOAEWC,IACX,8UAEWC,IACX,qVAEWC,IACX,+VAiCIC,IACJ,4RAEIC,IACJ,uKAEIC,IACJ,sMA8BIC,IACJ,gLAEIC,IACJ,qKAwBIC,IACJ,4MAGIC,IAAiB,kDAGjBC,IACJ,sEAEWC,IAAkB,GAAGR,EAAQ,GAAGC,EAAe,GAAGK,KAClDG,IAAoB,GAAGT,EAAQ,GAAGE,EAAiB,GAAGI,KACtDI,IAAyB,GAAGV,EAAQ,GAAGC,EAAe,GAAGM,KACzDI,IAA2B,GAAGX,EAAQ,GAAGE,EAAiB,GAAGK,KAC7DK,IAAiB,GAAGZ,EAAQ,GAAGI,EAAc,GAAGE;AACxB,GAAGN,EAAH,EAAcI,EAAd,EAA+BG,EAA/B;AAErC,IAAaM,IAAyB,GAAGb,EAAQ,GAAGK,EAAe,GAAGE,KACzDO,IAAgB,GAAGd,EAAQ,GAAGG,EAAa,GAAGG,KAG9CS,IAAoB;CAC/B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAEaC,IAAsB;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAEaC,IAAyB;CACpC;EAAE,OAAO;EAAU,OAAO;CAAS;CACnC;EAAE,OAAO;EAAU,OAAO;CAAS;CACnC;EAAE,OAAO;EAAS,OAAO;CAAQ;CACjC;EAAE,OAAO;EAAO,OAAO;CAAM;CAC7B;EAAE,OAAO;EAAS,OAAO;CAAQ;CACjC;EAAE,OAAO;EAAO,OAAO;CAAM;CAC7B;EAAE,OAAO;EAAO,OAAO;CAAM;AAC/B,GAGaC,IAAqB,WACrBC,IAAmB,WACnBC,IAA0B,WAC1BC,IAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"templateSettingsFields-YCFVBVYh.js","names":[],"sources":["../../../src/utils/templateSettingsFields.ts"],"sourcesContent":["import type {\n TemplateSettings,\n TemplateSettingsConfig,\n} from \"@templatical/types\";\n\n/** A member of `TemplateSettings` — the vocabulary `templateSettings.fields` speaks. */\nexport type TemplateSettingsField = keyof TemplateSettings;\n\n/** The cards `TemplateSettings.vue` groups those fields into. */\nexport type TemplateSettingsCard =\n \"layout\" | \"appearance\" | \"language\" | \"preheader\";\n\n/**\n * Which card each setting is rendered in.\n *\n * Typed as a full `Record<TemplateSettingsField, …>` on purpose: a new\n * `TemplateSettings` member fails `vue-tsc` here until someone decides which\n * card it belongs in, so a setting cannot ship with no way to hide it. Field\n * names — not card names — are the public vocabulary, because they are already\n * a published type while the cards are a layout decision.\n */\nexport const TEMPLATE_SETTINGS_FIELD_CARDS: Record<\n TemplateSettingsField,\n TemplateSettingsCard\n> = {\n width: \"layout\",\n backgroundColor: \"appearance\",\n textColor: \"appearance\",\n linkColor: \"appearance\",\n linkUnderline: \"appearance\",\n fontFamily: \"appearance\",\n locale: \"language\",\n direction: \"language\",\n preheaderText: \"preheader\",\n};\n\nexport const ALL_TEMPLATE_SETTINGS_FIELDS = Object.keys(\n TEMPLATE_SETTINGS_FIELD_CARDS,\n) as TemplateSettingsField[];\n\nexport interface ResolvedTemplateSettingsFields {\n /** The settings the panel may render. */\n fields: ReadonlySet<TemplateSettingsField>;\n /** Entries that are not `TemplateSettings` members, for a one-time warning. */\n unknown: string[];\n}\n\nfunction isTemplateSettingsField(\n value: string,\n): value is TemplateSettingsField {\n return Object.prototype.hasOwnProperty.call(\n TEMPLATE_SETTINGS_FIELD_CARDS,\n value,\n );\n}\n\n/**\n * Resolve `config.templateSettings` into the set of settings the panel may\n * render.\n *\n * The config only ever narrows, so every absent form — no key, no `fields`,\n * `fields: true` — resolves to all of them. An empty array resolves to none,\n * read as a stated decision rather than as \"unset\" (the `allowedRecipients: []`\n * convention), which is also what makes `fields: false` and `fields: []` agree.\n */\nexport function resolveTemplateSettingsFields(\n config?: TemplateSettingsConfig,\n): ResolvedTemplateSettingsFields {\n const requested = config?.fields;\n\n if (requested === undefined || requested === true) {\n return { fields: new Set(ALL_TEMPLATE_SETTINGS_FIELDS), unknown: [] };\n }\n if (requested === false) {\n return { fields: new Set(), unknown: [] };\n }\n\n const fields = new Set<TemplateSettingsField>();\n const unknown: string[] = [];\n for (const entry of requested) {\n // A JS consumer can pass anything; TS callers get a compile error.\n if (isTemplateSettingsField(entry as string)) {\n fields.add(entry);\n } else {\n unknown.push(String(entry));\n }\n }\n return { fields, unknown };\n}\n"],"mappings":";AAqBA,IAAa,IAGT;CACF,OAAO;CACP,iBAAiB;CACjB,WAAW;CACX,WAAW;CACX,eAAe;CACf,YAAY;CACZ,QAAQ;CACR,WAAW;CACX,eAAe;AACjB,GAEa,IAA+B,OAAO,KACjD,CACF;AASA,SAAS,EACP,GACgC;CAChC,OAAO,OAAO,UAAU,eAAe,KACrC,GACA,CACF;AACF;AAWA,SAAgB,EACd,GACgC;CAChC,IAAM,IAAY,GAAQ;CAE1B,IAAI,MAAc,KAAA,KAAa,MAAc,IAC3C,OAAO;EAAE,QAAQ,IAAI,IAAI,CAA4B;EAAG,SAAS,CAAC;CAAE;CAEtE,IAAI,MAAc,IAChB,OAAO;EAAE,wBAAQ,IAAI,IAAI;EAAG,SAAS,CAAC;CAAE;CAG1C,IAAM,oBAAS,IAAI,IAA2B,GACxC,IAAoB,CAAC;CAC3B,KAAK,IAAM,KAAS,GAElB,AAAI,EAAwB,CAAe,IACzC,EAAO,IAAI,CAAK,IAEhB,EAAQ,KAAK,OAAO,CAAK,CAAC;CAG9B,OAAO;EAAE;EAAQ;CAAQ;AAC3B"}
1
+ {"version":3,"file":"templateSettingsFields-YCFVBVYh.js","names":["TEMPLATE_SETTINGS_FIELD_CARDS","ALL_TEMPLATE_SETTINGS_FIELDS","isTemplateSettingsField","value","resolveTemplateSettingsFields","requested","config","fields","unknown","entry"],"sources":["../../../src/utils/templateSettingsFields.ts"],"sourcesContent":["import type {\n TemplateSettings,\n TemplateSettingsConfig,\n} from \"@templatical/types\";\n\n/** A member of `TemplateSettings` — the vocabulary `templateSettings.fields` speaks. */\nexport type TemplateSettingsField = keyof TemplateSettings;\n\n/** The cards `TemplateSettings.vue` groups those fields into. */\nexport type TemplateSettingsCard =\n \"layout\" | \"appearance\" | \"language\" | \"preheader\";\n\n/**\n * Which card each setting is rendered in.\n *\n * Typed as a full `Record<TemplateSettingsField, …>` on purpose: a new\n * `TemplateSettings` member fails `vue-tsc` here until someone decides which\n * card it belongs in, so a setting cannot ship with no way to hide it. Field\n * names — not card names — are the public vocabulary, because they are already\n * a published type while the cards are a layout decision.\n */\nexport const TEMPLATE_SETTINGS_FIELD_CARDS: Record<\n TemplateSettingsField,\n TemplateSettingsCard\n> = {\n width: \"layout\",\n backgroundColor: \"appearance\",\n textColor: \"appearance\",\n linkColor: \"appearance\",\n linkUnderline: \"appearance\",\n fontFamily: \"appearance\",\n locale: \"language\",\n direction: \"language\",\n preheaderText: \"preheader\",\n};\n\nexport const ALL_TEMPLATE_SETTINGS_FIELDS = Object.keys(\n TEMPLATE_SETTINGS_FIELD_CARDS,\n) as TemplateSettingsField[];\n\nexport interface ResolvedTemplateSettingsFields {\n /** The settings the panel may render. */\n fields: ReadonlySet<TemplateSettingsField>;\n /** Entries that are not `TemplateSettings` members, for a one-time warning. */\n unknown: string[];\n}\n\nfunction isTemplateSettingsField(\n value: string,\n): value is TemplateSettingsField {\n return Object.prototype.hasOwnProperty.call(\n TEMPLATE_SETTINGS_FIELD_CARDS,\n value,\n );\n}\n\n/**\n * Resolve `config.templateSettings` into the set of settings the panel may\n * render.\n *\n * The config only ever narrows, so every absent form — no key, no `fields`,\n * `fields: true` — resolves to all of them. An empty array resolves to none,\n * read as a stated decision rather than as \"unset\" (the `allowedRecipients: []`\n * convention), which is also what makes `fields: false` and `fields: []` agree.\n */\nexport function resolveTemplateSettingsFields(\n config?: TemplateSettingsConfig,\n): ResolvedTemplateSettingsFields {\n const requested = config?.fields;\n\n if (requested === undefined || requested === true) {\n return { fields: new Set(ALL_TEMPLATE_SETTINGS_FIELDS), unknown: [] };\n }\n if (requested === false) {\n return { fields: new Set(), unknown: [] };\n }\n\n const fields = new Set<TemplateSettingsField>();\n const unknown: string[] = [];\n for (const entry of requested) {\n // A JS consumer can pass anything; TS callers get a compile error.\n if (isTemplateSettingsField(entry as string)) {\n fields.add(entry);\n } else {\n unknown.push(String(entry));\n }\n }\n return { fields, unknown };\n}\n"],"mappings":";AAqBA,IAAaA,IAGT;CACF,OAAO;CACP,iBAAiB;CACjB,WAAW;CACX,WAAW;CACX,eAAe;CACf,YAAY;CACZ,QAAQ;CACR,WAAW;CACX,eAAe;AACjB,GAEaC,IAA+B,OAAO,KACjDD,CACF;AASA,SAASE,EACP,GACgC;CAChC,OAAO,OAAO,UAAU,eAAe,KACrCF,GACAG,CACF;AACF;AAWA,SAAgBC,EACd,GACgC;CAChC,IAAMC,IAAYC,GAAQ;CAE1B,IAAID,MAAc,KAAA,KAAaA,MAAc,IAC3C,OAAO;EAAE,QAAQ,IAAI,IAAIJ,CAA4B;EAAG,SAAS,CAAC;CAAE;CAEtE,IAAII,MAAc,IAChB,OAAO;EAAE,wBAAQ,IAAI,IAAI;EAAG,SAAS,CAAC;CAAE;CAG1C,IAAME,oBAAS,IAAI,IAA2B,GACxCC,IAAoB,CAAC;CAC3B,KAAK,IAAMC,KAASJ,GAElB,AAAIH,EAAwBO,CAAe,IACzCF,EAAO,IAAIE,CAAK,IAEhBD,EAAQ,KAAK,OAAOC,CAAK,CAAC;CAG9B,OAAO;EAAE;EAAQ;CAAQ;AAC3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"timeouts-DHPZQ0G3.js","names":[],"sources":["../../../src/constants/timeouts.ts"],"sourcesContent":["/** Timeout in ms for editor initialization before giving up. */\nexport const INIT_TIMEOUT_MS = 30000;\n\n/** Duration in ms to show the collaboration undo warning toast. */\nexport const COLLAB_UNDO_WARNING_MS = 4000;\n\n/** Maximum upload file size in bytes (10 MB). */\nexport const MAX_UPLOAD_SIZE_BYTES = 10 * 1024 * 1024;\n\n/**\n * Debounce in ms before an edited image src is sent to `resolveImageUrl`.\n * The src input commits per keystroke, so this is what turns \"per keystroke\"\n * into \"per committed value\" for the host's resolver. The initial src of a\n * mounted block resolves immediately (template load shouldn't wait).\n */\nexport const RESOLVE_IMAGE_DEBOUNCE_MS = 300;\n"],"mappings":";AAIA,IAAa,IAAyB,KAGzB,IAAwB"}
1
+ {"version":3,"file":"timeouts-DHPZQ0G3.js","names":["COLLAB_UNDO_WARNING_MS","MAX_UPLOAD_SIZE_BYTES"],"sources":["../../../src/constants/timeouts.ts"],"sourcesContent":["/** Timeout in ms for editor initialization before giving up. */\nexport const INIT_TIMEOUT_MS = 30000;\n\n/** Duration in ms to show the collaboration undo warning toast. */\nexport const COLLAB_UNDO_WARNING_MS = 4000;\n\n/** Maximum upload file size in bytes (10 MB). */\nexport const MAX_UPLOAD_SIZE_BYTES = 10 * 1024 * 1024;\n\n/**\n * Debounce in ms before an edited image src is sent to `resolveImageUrl`.\n * The src input commits per keystroke, so this is what turns \"per keystroke\"\n * into \"per committed value\" for the host's resolver. The initial src of a\n * mounted block resolves immediately (template load shouldn't wait).\n */\nexport const RESOLVE_IMAGE_DEBOUNCE_MS = 300;\n"],"mappings":";AAIA,IAAaA,IAAyB,KAGzBC,IAAwB"}