@aswin.dev/editor 0.7.3 → 0.7.4
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.
- package/dist/{AiChatSidebar-Dt5pvG5t.js → AiChatSidebar-DM2ri7KX.js} +1 -1
- package/dist/{AiFeatureMenu-BipxcGap.js → AiFeatureMenu-BrZBJ0R5.js} +1 -1
- package/dist/{CloudEditor-CnUX0IOW.js → CloudEditor-BRpzzfQn.js} +8 -8
- package/dist/{CollaboratorBar-NaaZTjbs.js → CollaboratorBar-DsRXj3Kn.js} +1 -1
- package/dist/CountdownToolbar-B9IAZzeV.js +194 -0
- package/dist/{DesignReferenceSidebar-CZg97bbj.js → DesignReferenceSidebar-B1iw3Bb7.js} +1 -1
- package/dist/{ModuleBrowserModal-D2EVdexc.js → ModuleBrowserModal-DVnd1dqR.js} +4 -4
- package/dist/{ModulePreviewCanvas-P3N-nxkU.js → ModulePreviewCanvas-D9jBAoBQ.js} +29 -29
- package/dist/{ParagraphEditor-BbRuKhWv.js → ParagraphEditor-CO3V0H_V.js} +7 -7
- package/dist/{SaveModuleDialog-DLZa3m3O.js → SaveModuleDialog-CboNFwIA.js} +2 -2
- package/dist/{NumberWithSuffix-CihczoAd.js → SlidingPillSelect-DfcBdJqN.js} +122 -106
- package/dist/{SnapshotHistory-Csg1_jXi.js → SnapshotHistory-C26pvPre.js} +1 -1
- package/dist/{TestEmailModal-m3okLbJz.js → TestEmailModal-B4OoUWb_.js} +2 -2
- package/dist/{TitleEditor-CtJIS5ER.js → TitleEditor-DU_QWG_m.js} +2 -2
- package/dist/{TplModal-CQCrKeKP.js → TplModal-Dr6Do8oU.js} +1 -1
- package/dist/{blockTypeIcons-Dah0pgt-.js → blockTypeIcons-cRDr36gk.js} +48 -30
- package/dist/bundle-stats.json +6 -6
- package/dist/cdn/chunks/{AccessibilityPanel-Bt_fD7QT.js → AccessibilityPanel-Csd47zqI.js} +9 -9
- package/dist/cdn/chunks/{AccessibilityPanel-Bt_fD7QT.js.map → AccessibilityPanel-Csd47zqI.js.map} +1 -1
- package/dist/cdn/chunks/{AiFeatureMenu-Bn-0rgfr.js → AiFeatureMenu-BlnZF5pf.js} +7 -7
- package/dist/cdn/chunks/{AiFeatureMenu-Bn-0rgfr.js.map → AiFeatureMenu-BlnZF5pf.js.map} +1 -1
- package/dist/cdn/chunks/{BlockA11yBadge-Cj18Iw0p.js → BlockA11yBadge-VY8NqI9n.js} +4 -4
- package/dist/cdn/chunks/{BlockA11yBadge-Cj18Iw0p.js.map → BlockA11yBadge-VY8NqI9n.js.map} +1 -1
- package/dist/cdn/chunks/{CloudEditor-56lVcdot.js → CloudEditor-D0TrKlva.js} +178 -178
- package/dist/cdn/chunks/{CloudEditor-56lVcdot.js.map → CloudEditor-D0TrKlva.js.map} +1 -1
- package/dist/cdn/chunks/{CollaboratorBar-B7DCV3xp.js → CollaboratorBar-BhMNTI_h.js} +3 -3
- package/dist/cdn/chunks/{CollaboratorBar-B7DCV3xp.js.map → CollaboratorBar-BhMNTI_h.js.map} +1 -1
- package/dist/cdn/chunks/CountdownToolbar-DsP6O1fl.js +196 -0
- package/dist/cdn/chunks/CountdownToolbar-DsP6O1fl.js.map +1 -0
- package/dist/cdn/chunks/{ModuleBrowserModal-CiIY7ZGv.js → ModuleBrowserModal-CpYPeiKv.js} +8 -8
- package/dist/cdn/chunks/{ModuleBrowserModal-CiIY7ZGv.js.map → ModuleBrowserModal-CpYPeiKv.js.map} +1 -1
- package/dist/cdn/chunks/{ModulePreviewCanvas-M7_OGV2m.js → ModulePreviewCanvas-BIYYnqUq.js} +24 -24
- package/dist/cdn/chunks/{ModulePreviewCanvas-M7_OGV2m.js.map → ModulePreviewCanvas-BIYYnqUq.js.map} +1 -1
- package/dist/cdn/chunks/{ParagraphEditor-1XJOpiLX.js → ParagraphEditor-ZV5SYYw8.js} +53 -53
- package/dist/cdn/chunks/{ParagraphEditor-1XJOpiLX.js.map → ParagraphEditor-ZV5SYYw8.js.map} +1 -1
- package/dist/cdn/chunks/{RichTextEditorContent-C2q8sbp2.js → RichTextEditorContent-Dx05ETtt.js} +4 -4
- package/dist/cdn/chunks/{RichTextEditorContent-C2q8sbp2.js.map → RichTextEditorContent-Dx05ETtt.js.map} +1 -1
- package/dist/cdn/chunks/{SaveModuleDialog-BNxh1jPT.js → SaveModuleDialog-DJEEK7Wb.js} +23 -23
- package/dist/cdn/chunks/{SaveModuleDialog-BNxh1jPT.js.map → SaveModuleDialog-DJEEK7Wb.js.map} +1 -1
- package/dist/cdn/chunks/{NumberWithSuffix-DfVBnsgc.js → SlidingPillSelect-BhPCkqVu.js} +132 -116
- package/dist/cdn/chunks/SlidingPillSelect-BhPCkqVu.js.map +1 -0
- package/dist/cdn/chunks/{TitleEditor-IF7VzLTk.js → TitleEditor-fu1A87Ld.js} +21 -21
- package/dist/cdn/chunks/{TitleEditor-IF7VzLTk.js.map → TitleEditor-fu1A87Ld.js.map} +1 -1
- package/dist/cdn/chunks/blockTypeIcons-CJirTS-q.js +25 -0
- package/dist/cdn/chunks/blockTypeIcons-CJirTS-q.js.map +1 -0
- package/dist/cdn/chunks/{de-B05yW8Gi.js → de-BsYijc0r.js} +49 -2
- package/dist/cdn/chunks/de-BsYijc0r.js.map +1 -0
- package/dist/cdn/chunks/{en-BII7695P.js → en-DMu9hPIC.js} +49 -2
- package/dist/cdn/chunks/en-DMu9hPIC.js.map +1 -0
- package/dist/cdn/chunks/{extensions-B0eT-yjf.js → extensions-BbFKsjyT.js} +26 -26
- package/dist/cdn/chunks/{extensions-B0eT-yjf.js.map → extensions-BbFKsjyT.js.map} +1 -1
- package/dist/cdn/chunks/{features-BrvE2Fzv.js → features-uApxwJMz.js} +1953 -1836
- package/dist/cdn/chunks/features-uApxwJMz.js.map +1 -0
- package/dist/cdn/chunks/{icons-C7wtAD8p.js → icons-DZb4EX9m.js} +26 -9
- package/dist/cdn/chunks/icons-DZb4EX9m.js.map +1 -0
- package/dist/cdn/chunks/{media-library-Cl5XuaKy.js → media-library-B3g52j8R.js} +529 -529
- package/dist/cdn/chunks/{media-library-Cl5XuaKy.js.map → media-library-B3g52j8R.js.map} +1 -1
- package/dist/cdn/chunks/{quality-Va91a3N8.js → quality-Ug5lFGHP.js} +288 -288
- package/dist/cdn/chunks/{quality-Va91a3N8.js.map → quality-Ug5lFGHP.js.map} +1 -1
- package/dist/cdn/chunks/{renderer-si0Zgxeb.js → renderer-jXCdXjV-.js} +19 -19
- package/dist/cdn/chunks/{renderer-si0Zgxeb.js.map → renderer-jXCdXjV-.js.map} +1 -1
- package/dist/cdn/chunks/{src-BLyYIbdZ.js → src-FMtH5ZvJ.js} +9 -9
- package/dist/cdn/chunks/{src-BLyYIbdZ.js.map → src-FMtH5ZvJ.js.map} +1 -1
- package/dist/cdn/chunks/{styles-C6BQLT9F.js → styles-Co9vw4ag.js} +1332 -1101
- package/dist/cdn/chunks/styles-Co9vw4ag.js.map +1 -0
- package/dist/cdn/chunks/{tiptap-D8whBv5F.js → tiptap-qXOh0vzV.js} +2 -2
- package/dist/cdn/chunks/{tiptap-D8whBv5F.js.map → tiptap-qXOh0vzV.js.map} +1 -1
- package/dist/cdn/editor.css +1 -1
- package/dist/cdn/editor.js +85 -85
- package/dist/cdn/editor.js.map +1 -1
- package/dist/{cloud-BoS0J0vs.js → cloud-COUuu_KE.js} +1 -1
- package/dist/{de-C74F9xK3.js → de-CR1qAkAm.js} +48 -1
- package/dist/{dist-C2grMquk.js → dist-DP82Y0rs.js} +155 -131
- package/dist/{en-B24jVTeO.js → en-jbnp1n6M.js} +48 -1
- package/dist/{extensions-DsmjHqBF.js → extensions-Bg22D6c8.js} +16 -16
- package/dist/index.d.ts +6 -6
- package/dist/style.css +1 -1
- package/dist/{styles-BMFMtR9R.js → styles-DgL0UYj0.js} +1456 -1225
- package/dist/templatical-editor.js +6 -6
- package/dist/{useEditorCore-CtNAo0uy.js → useEditorCore-CSlYQZWx.js} +1756 -1661
- package/dist/{useMergeTag-2vTcVpNo.js → useMergeTag-BVL3A4OO.js} +4 -4
- package/package.json +7 -7
- package/dist/CountdownToolbar-CbhSp_uq.js +0 -210
- package/dist/cdn/chunks/CountdownToolbar-BtaD3d3-.js +0 -212
- package/dist/cdn/chunks/CountdownToolbar-BtaD3d3-.js.map +0 -1
- package/dist/cdn/chunks/NumberWithSuffix-DfVBnsgc.js.map +0 -1
- package/dist/cdn/chunks/blockTypeIcons-tPBKQ8WC.js +0 -24
- package/dist/cdn/chunks/blockTypeIcons-tPBKQ8WC.js.map +0 -1
- package/dist/cdn/chunks/de-B05yW8Gi.js.map +0 -1
- package/dist/cdn/chunks/en-BII7695P.js.map +0 -1
- package/dist/cdn/chunks/features-BrvE2Fzv.js.map +0 -1
- package/dist/cdn/chunks/icons-C7wtAD8p.js.map +0 -1
- package/dist/cdn/chunks/styles-C6BQLT9F.js.map +0 -1
|
@@ -58,7 +58,8 @@ var e = {
|
|
|
58
58
|
menu: "Menu",
|
|
59
59
|
table: "Table",
|
|
60
60
|
countdown: "Countdown",
|
|
61
|
-
form: "Form"
|
|
61
|
+
form: "Form",
|
|
62
|
+
discountCoupon: "Discount coupon"
|
|
62
63
|
},
|
|
63
64
|
sidebar: {
|
|
64
65
|
content: "Content",
|
|
@@ -307,6 +308,52 @@ var e = {
|
|
|
307
308
|
htmlHint: "HTML is allowed. Use links and small print as needed."
|
|
308
309
|
}
|
|
309
310
|
},
|
|
311
|
+
discountCoupon: {
|
|
312
|
+
description: "Attract customers to subscribe with a discount code.",
|
|
313
|
+
modeNone: "No discount",
|
|
314
|
+
modeAuto: "Discount code",
|
|
315
|
+
modeManual: "Enter Shopify discount manually",
|
|
316
|
+
autoHint: "Auto-generate a unique and non-reusable code for each subscription.",
|
|
317
|
+
selectType: "Select type",
|
|
318
|
+
types: {
|
|
319
|
+
percentageOff: "Percentage off",
|
|
320
|
+
fixedAmount: "Fixed amount",
|
|
321
|
+
freeShipping: "Free shipping"
|
|
322
|
+
},
|
|
323
|
+
value: "Value",
|
|
324
|
+
currencyCode: "Currency",
|
|
325
|
+
expiration: "Set expiration on discount",
|
|
326
|
+
expirationDaysSuffix: "Days",
|
|
327
|
+
tagCustomer: "Add the sent discount code as a tag to the customer",
|
|
328
|
+
combinations: "Combinations",
|
|
329
|
+
combineProduct: "Product discounts",
|
|
330
|
+
combineOrder: "Order discounts",
|
|
331
|
+
combineShipping: "Shipping discounts",
|
|
332
|
+
manualPlaceholder: "Discount code",
|
|
333
|
+
manualFooterLead: "Create a discount",
|
|
334
|
+
manualFooterTail: " in your Shopify admin, and enter it above.",
|
|
335
|
+
manualBlankError: "This field can't be blank",
|
|
336
|
+
confirmationTextLabel: "Confirmation text",
|
|
337
|
+
afterClickLabel: "After click",
|
|
338
|
+
afterClickNone: "Do nothing",
|
|
339
|
+
afterClickLoadPage: "Go to URL",
|
|
340
|
+
afterClickCloseCampaign: "Close campaign",
|
|
341
|
+
afterClickNextStep: "Show next step",
|
|
342
|
+
afterClickPageUrl: "Page URL",
|
|
343
|
+
afterClickUrlPlaceholder: "https://...",
|
|
344
|
+
previewNoDiscount: "No discount",
|
|
345
|
+
previewPercentage: "{value}% off",
|
|
346
|
+
previewFixed: "{value} {currency} off",
|
|
347
|
+
previewAutoUnique: "Unique code per subscription",
|
|
348
|
+
previewManualPrefix: "Code:",
|
|
349
|
+
previewManualUnset: "Enter a Shopify discount code",
|
|
350
|
+
previewExpires: "Expires after {days} day(s)",
|
|
351
|
+
previewTag: "Tag customer with code",
|
|
352
|
+
previewCombinations: "Combines with product / order / shipping discounts",
|
|
353
|
+
previewSampleCode: "THANKYOU20",
|
|
354
|
+
copyCode: "Copy code",
|
|
355
|
+
copyCodeFlash: "Copied"
|
|
356
|
+
},
|
|
310
357
|
divider: {
|
|
311
358
|
style: "Style",
|
|
312
359
|
solid: "Solid",
|
|
@@ -837,4 +884,4 @@ var e = {
|
|
|
837
884
|
//#endregion
|
|
838
885
|
export { e as default };
|
|
839
886
|
|
|
840
|
-
//# sourceMappingURL=en-
|
|
887
|
+
//# sourceMappingURL=en-DMu9hPIC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en-DMu9hPIC.js","names":[],"sources":["../../../src/i18n/locales/en.ts"],"sourcesContent":["export default {\n // Footer (OSS only)\n footer: {\n poweredBy: \"Powered by\",\n openSource: \"Open Source\",\n },\n\n // Guided tour (optional editor `tour` config)\n tour: {\n next: \"Next\",\n skip: \"Skip tour\",\n done: \"Got it!\",\n stepCounter: \"{current} of {total}\",\n defaults: {\n canvas: {\n title: \"Your email canvas\",\n text: \"This is where your email takes shape. Click any block to select and edit it.\",\n },\n sidebar: {\n title: \"Block library\",\n text: \"Drag blocks from here onto the canvas to add text, images, buttons, and more.\",\n },\n rightSidebar: {\n title: \"Content & settings\",\n text: \"Select a block to edit its content here, or switch to Settings to adjust the overall template layout.\",\n },\n },\n },\n\n // History (undo/redo)\n history: {\n undo: \"Undo\",\n redo: \"Redo\",\n collabWarning: \"Undo may affect collaborators' recent changes\",\n },\n\n // Viewport toggle\n viewport: {\n label: \"Viewport\",\n desktop: \"Desktop\",\n tablet: \"Tablet\",\n mobile: \"Mobile\",\n },\n\n // Dark mode preview\n darkMode: {\n enable: \"Dark Mode Preview\",\n disable: \"Light Mode Preview\",\n },\n\n // Preview mode\n previewMode: {\n enable: \"Preview Mode\",\n disable: \"Exit Preview\",\n },\n\n // Sidebar - Block types\n blocks: {\n section: \"Section\",\n image: \"Image\",\n title: \"Title\",\n paragraph: \"Paragraph\",\n button: \"Button\",\n input: \"Input\",\n divider: \"Divider\",\n video: \"Video\",\n social: \"Social\",\n spacer: \"Spacer\",\n html: \"HTML\",\n menu: \"Menu\",\n table: \"Table\",\n countdown: \"Countdown\",\n form: \"Form\",\n discountCoupon: \"Discount coupon\",\n },\n\n // Right sidebar\n sidebar: {\n content: \"Content\",\n settings: \"Settings\",\n noSelection: \"No element selected\",\n noSelectionHint: \"Select a block on the canvas to edit it\",\n },\n\n // Toolbar - Common\n toolbar: {\n duplicate: \"Duplicate\",\n delete: \"Delete\",\n },\n\n // Title editor toolbar\n titleEditor: {\n toolbar: \"Title formatting\",\n bold: \"Bold (Ctrl+B)\",\n italic: \"Italic (Ctrl+I)\",\n addLink: \"Add Link\",\n },\n\n // Paragraph editor toolbar\n paragraphEditor: {\n toolbar: \"Text formatting\",\n bold: \"Bold (Ctrl+B)\",\n italic: \"Italic (Ctrl+I)\",\n underline: \"Underline (Ctrl+U)\",\n strikethrough: \"Strikethrough\",\n subscript: \"Subscript\",\n superscript: \"Superscript\",\n addLink: \"Add Link\",\n bulletList: \"Bullet List\",\n numberedList: \"Numbered List\",\n alignLeft: \"Align Left\",\n alignCenter: \"Align Center\",\n alignRight: \"Align Right\",\n clearFormatting: \"Clear Formatting\",\n insertEmoji: \"Insert Emoji\",\n fontFamily: \"Font Family\",\n defaultFont: \"Default\",\n fontSize: \"Font Size\",\n defaultSize: \"Default\",\n textColor: \"Text Color\",\n highlightColor: \"Highlight Color\",\n lineHeight: \"Line Height\",\n letterSpacing: \"Letter Spacing\",\n emojiItemLabel: \"Insert emoji {emoji}\",\n closeEmojiPicker: \"Close emoji picker\",\n },\n\n // Block actions (BlockWrapper)\n blockActions: {\n drag: \"Drag to reorder, or press Space to move with keyboard\",\n dragLifted:\n \"Moving {block}. Use up and down arrow keys to reposition, Space or Enter to drop, Escape to cancel.\",\n duplicate: \"Duplicate block\",\n delete: \"Delete block\",\n hiddenOnViewport: \"Hidden on {viewport}\",\n saveAsModule: \"Save as Module\",\n conditionToggle: \"Toggle display condition\",\n comments: \"Comments ({count})\",\n lifted: \"{block} lifted. Position {position} of {total}.\",\n moved: \"{block} moved to position {position} of {total}.\",\n dropped: \"{block} dropped at position {position} of {total}.\",\n cancelled: \"Move cancelled. {block} returned to position {position}.\",\n },\n\n // Toolbar - Section\n section: {\n dropHere: \"Drop blocks here\",\n columns: \"Columns\",\n column1: \"1 Column\",\n column2: \"2 Columns\",\n column3: \"3 Columns\",\n ratio12: \"1:2 Ratio\",\n ratio21: \"2:1 Ratio\",\n },\n\n // Text editor link dialog\n linkDialog: {\n editLink: \"Edit Link\",\n insertLink: \"Insert Link\",\n updateLink: \"Update Link\",\n removeLink: \"Remove Link\",\n cancel: \"Cancel\",\n urlPlaceholder: \"https://example.com\",\n urlLabel: \"URL\",\n },\n\n // Toolbar - Title\n title: {\n level: \"Heading Level\",\n heading1: \"Heading 1 (36px)\",\n heading2: \"Heading 2 (28px)\",\n heading3: \"Heading 3 (22px)\",\n heading4: \"Heading 4 (18px)\",\n fontFamily: \"Font Family\",\n inheritFont: \"Use template font\",\n color: \"Color\",\n align: \"Align\",\n alignLeft: \"Left\",\n alignCenter: \"Center\",\n alignRight: \"Right\",\n },\n\n // Emoji picker\n emoji: {\n smileys: \"Smileys\",\n gestures: \"Gestures\",\n objects: \"Objects\",\n },\n\n // Toolbar - Image\n image: {\n imageUrl: \"Image URL\",\n imageUrlPlaceholder: \"https://...\",\n altText: \"Alt Text\",\n altTextPlaceholder: \"Image description\",\n width: \"Width\",\n fullWidth: \"Full Width\",\n linkUrl: \"Link URL\",\n openInNewTab: \"Open in new tab\",\n placeholderUrl: \"Placeholder Image\",\n placeholderUrlPlaceholder: \"https://... (design-time only)\",\n placeholderUrlTooltip:\n \"Since the image URL uses a merge tag, you can provide a real image here to preview the layout while designing. This is not included in the final output.\",\n clickToAdd: \"Click to add image URL\",\n browseMedia: \"Browse Media\",\n decorative: \"Decorative image\",\n decorativeHint:\n \"Hidden from screen readers. Use only for spacers and visual flourishes.\",\n },\n\n // Toolbar - Video\n video: {\n videoUrl: \"Video URL\",\n videoUrlPlaceholder: \"https://youtube.com/...\",\n youtube: \"YouTube\",\n vimeo: \"Vimeo\",\n detected: \"Video detected — thumbnail will be generated automatically\",\n openInNewTab: \"Open in new tab\",\n customThumbnail: \"Custom Thumbnail\",\n optional: \"(optional)\",\n thumbnailPlaceholder: \"Auto-generated from video URL\",\n altText: \"Alt Text\",\n altTextPlaceholder: \"Video description\",\n width: \"Width\",\n fullWidth: \"Full Width\",\n placeholderUrl: \"Placeholder Thumbnail\",\n placeholderUrlPlaceholder: \"https://... (design-time only)\",\n placeholderUrlTooltip:\n \"Since the video URL uses a merge tag, you can provide a real thumbnail here to preview the layout while designing. This is not included in the final output.\",\n addVideo: \"Add a video URL\",\n },\n\n // Toolbar - Button\n button: {\n fontFamily: \"Font Family\",\n inheritFont: \"Use template font\",\n text: \"Text\",\n actionOnClick: \"Action on click\",\n clickActionNone: \"Select action\",\n clickActionNextStep: \"Show next step\",\n clickActionPreviousStep: \"Show previous step\",\n clickActionLoadPage: \"Load new page\",\n clickActionScrollAnchor: \"Scroll to anchor\",\n clickActionClosePopup: \"Close the popup\",\n url: \"URL\",\n pageUrl: \"Page URL\",\n anchorId: \"Anchor ID\",\n anchorIdPlaceholder: \"section-id\",\n urlPlaceholder: \"https://...\",\n openInNewTab: \"Open in new tab\",\n background: \"Background\",\n textColor: \"Text Color\",\n border: \"Border\",\n borderColor: \"Border color\",\n borderWidth: \"Border width\",\n borderSides: \"Sides\",\n borderSidesLabels: {\n all: \"All sides\",\n top: \"Top\",\n right: \"Right\",\n bottom: \"Bottom\",\n left: \"Left\",\n },\n borderRadius: \"Border Radius\",\n fontSize: \"Font Size\",\n },\n\n // Toolbar - Input field\n input: {\n fieldType: \"Input type\",\n types: {\n text: \"Text\",\n email: \"Email\",\n date: \"Date\",\n },\n name: \"Field name\",\n label: \"Label\",\n placeholder: \"Placeholder\",\n defaultValue: \"Default value\",\n required: \"Required\",\n labelAppearance: \"Label styling\",\n labelMargin: \"Label margin\",\n labelPadding: \"Label padding\",\n fontFamily: \"Font family\",\n inheritFont: \"Use template font\",\n fontWeight: \"Font weight\",\n weightNormal: \"Normal\",\n weightBold: \"Bold\",\n alignLeft: \"Left\",\n alignCenter: \"Center\",\n alignRight: \"Right\",\n inputAppearance: \"Input styling\",\n inputMargin: \"Input margin\",\n inputPadding: \"Input padding\",\n fieldWidth: \"Width\",\n fixedWidth: \"Fixed width\",\n placeholderColor: \"Placeholder color\",\n },\n\n // Toolbar - Form (multi-field opt-in)\n form: {\n tabs: {\n sync: \"Sync\",\n fields: \"Fields\",\n button: \"Button\",\n terms: \"Terms\",\n },\n sync: {\n heading: \"Pick your marketing platform\",\n },\n fieldTypes: {\n firstName: \"First name\",\n lastName: \"Last name\",\n email: \"Email\",\n phone: \"Phone\",\n },\n fields: {\n addField: \"Add field\",\n noMoreFields: \"All field types added\",\n cancel: \"Cancel\",\n remove: \"Remove field\",\n label: \"Label\",\n labelPlaceholder: \"What is your email?\",\n optional: \"optional\",\n placeholder: \"Placeholder\",\n name: \"Field name\",\n required: \"Field is required\",\n blockExisting: \"Block existing emails\",\n blockExistingHint:\n \"Prevent signing up with the emails you've already collected.\",\n blockExistingAll: \"Check across all my campaigns\",\n blockExistingThis: \"Check only this campaign\",\n errorMessage: \"Error message\",\n },\n button: {\n submitText: \"Submit button\",\n actionOnClick: \"Action on click\",\n url: \"Page URL\",\n position: \"Position\",\n oneLine: \"One line\",\n twoLines: \"Two lines\",\n background: \"Background\",\n textColor: \"Text color\",\n borderRadius: \"Border radius\",\n },\n buttonActions: {\n nextStep: \"Show next step\",\n closePopup: \"Close the popup\",\n loadPage: \"Load new page\",\n none: \"Do nothing\",\n },\n terms: {\n enable: \"Show terms\",\n content: \"Terms content\",\n htmlHint: \"HTML is allowed. Use links and small print as needed.\",\n },\n },\n\n // Toolbar — Discount coupon (Shopify-style subscribe discount)\n discountCoupon: {\n description: \"Attract customers to subscribe with a discount code.\",\n modeNone: \"No discount\",\n modeAuto: \"Discount code\",\n modeManual: \"Enter Shopify discount manually\",\n autoHint:\n \"Auto-generate a unique and non-reusable code for each subscription.\",\n selectType: \"Select type\",\n types: {\n percentageOff: \"Percentage off\",\n fixedAmount: \"Fixed amount\",\n freeShipping: \"Free shipping\",\n },\n value: \"Value\",\n currencyCode: \"Currency\",\n expiration: \"Set expiration on discount\",\n expirationDaysSuffix: \"Days\",\n tagCustomer: \"Add the sent discount code as a tag to the customer\",\n combinations: \"Combinations\",\n combineProduct: \"Product discounts\",\n combineOrder: \"Order discounts\",\n combineShipping: \"Shipping discounts\",\n manualPlaceholder: \"Discount code\",\n manualFooterLead: \"Create a discount\",\n manualFooterTail: \" in your Shopify admin, and enter it above.\",\n manualBlankError: \"This field can't be blank\",\n confirmationTextLabel: \"Confirmation text\",\n afterClickLabel: \"After click\",\n afterClickNone: \"Do nothing\",\n afterClickLoadPage: \"Go to URL\",\n afterClickCloseCampaign: \"Close campaign\",\n afterClickNextStep: \"Show next step\",\n afterClickPageUrl: \"Page URL\",\n afterClickUrlPlaceholder: \"https://...\",\n previewNoDiscount: \"No discount\",\n previewPercentage: \"{value}% off\",\n previewFixed: \"{value} {currency} off\",\n previewAutoUnique: \"Unique code per subscription\",\n previewManualPrefix: \"Code:\",\n previewManualUnset: \"Enter a Shopify discount code\",\n previewExpires: \"Expires after {days} day(s)\",\n previewTag: \"Tag customer with code\",\n previewCombinations: \"Combines with product / order / shipping discounts\",\n previewSampleCode: \"THANKYOU20\",\n copyCode: \"Copy code\",\n copyCodeFlash: \"Copied\",\n },\n\n // Toolbar - Divider\n divider: {\n style: \"Style\",\n solid: \"Solid\",\n dashed: \"Dashed\",\n dotted: \"Dotted\",\n color: \"Color\",\n thickness: \"Thickness\",\n },\n\n // Toolbar - Social Icons\n social: {\n icons: \"Icons\",\n addIcon: \"Add Icon\",\n addIcons: \"Add social icons\",\n removeIcon: \"Remove\",\n platform: \"Platform\",\n url: \"URL\",\n urlPlaceholder: \"https://...\",\n style: \"Style\",\n styleSolid: \"Solid\",\n styleOutlined: \"Outlined\",\n styleRounded: \"Rounded\",\n styleSquare: \"Square\",\n styleCircle: \"Circle\",\n size: \"Size\",\n sizeSmall: \"S\",\n sizeMedium: \"M\",\n sizeLarge: \"L\",\n spacing: \"Spacing\",\n align: \"Alignment\",\n platforms: {\n facebook: \"Facebook\",\n twitter: \"X (Twitter)\",\n instagram: \"Instagram\",\n linkedin: \"LinkedIn\",\n youtube: \"YouTube\",\n tiktok: \"TikTok\",\n pinterest: \"Pinterest\",\n email: \"Email\",\n whatsapp: \"WhatsApp\",\n telegram: \"Telegram\",\n discord: \"Discord\",\n snapchat: \"Snapchat\",\n reddit: \"Reddit\",\n github: \"GitHub\",\n dribbble: \"Dribbble\",\n behance: \"Behance\",\n },\n },\n\n // Toolbar - Menu\n menu: {\n items: \"Menu Items\",\n addItem: \"Add Item\",\n removeItem: \"Remove\",\n text: \"Text\",\n url: \"URL\",\n urlPlaceholder: \"https://example.com\",\n openInNewTab: \"Open in new tab\",\n bold: \"Bold\",\n underline: \"Underline\",\n color: \"Color\",\n linkColor: \"Link Color\",\n fontSize: \"Font Size\",\n fontFamily: \"Font Family\",\n separator: \"Separator\",\n separatorColor: \"Separator Color\",\n spacing: \"Spacing\",\n textAlign: \"Alignment\",\n addLinks: \"Add menu links\",\n },\n\n // Toolbar - Table\n table: {\n dimensions: \"Dimensions\",\n rows: \"Rows\",\n columns: \"Columns\",\n addRow: \"Add Row\",\n removeRow: \"Remove Row\",\n addColumn: \"Add Column\",\n removeColumn: \"Remove Column\",\n hasHeaderRow: \"Header row\",\n headerBackgroundColor: \"Header Background\",\n noHeaderBg: \"No background\",\n borderColor: \"Border Color\",\n borderWidth: \"Border Width\",\n cellPadding: \"Cell Padding\",\n fontFamily: \"Font Family\",\n fontSize: \"Font Size\",\n color: \"Text Color\",\n textAlign: \"Alignment\",\n cellPlaceholder: \"Enter text...\",\n empty: \"Add a table\",\n },\n\n // Toolbar - Spacer\n spacer: {\n height: \"Height\",\n },\n\n // Toolbar - Countdown\n countdown: {\n targetDate: \"Target Date\",\n timezone: \"Timezone\",\n display: \"Display\",\n days: \"Days\",\n hours: \"Hours\",\n minutes: \"Minutes\",\n seconds: \"Seconds\",\n separator: \"Separator\",\n fontFamily: \"Font Family\",\n inheritFont: \"Default\",\n digitFontSize: \"Digit Size\",\n digitColor: \"Digit Color\",\n labelColor: \"Label Color\",\n labelFontSize: \"Label Size\",\n background: \"Background\",\n labels: \"Labels\",\n expiry: \"Expired Message\",\n expiredMessagePlaceholder: \"This offer has expired\",\n expiredImageUrl: \"Expired Image URL\",\n hideOnExpiry: \"Hide when expired\",\n setDate: \"Set a target date in the settings panel\",\n hidden: \"Hidden (expired)\",\n style: \"Style\",\n layout: \"Layout\",\n animationSpeed: \"Animation Speed\",\n accentColor: \"Accent Color\",\n cardGap: \"Card Gap\",\n cardRadius: \"Card Radius\",\n enableHoverFx: \"Enable hover effects\",\n },\n\n // Custom Blocks\n customBlocks: {\n definitionNotFound: \"Unknown block type — this block is not registered\",\n renderError:\n \"This block could not be rendered. Check the block template for errors.\",\n fields: {\n required: \"Required\",\n addItem: \"Add item\",\n removeItem: \"Remove\",\n maxItemsReached: \"Maximum items reached\",\n minItemsRequired: \"Minimum {count} items required\",\n },\n toolbar: {\n noDefinition:\n \"Register this block type in your SDK configuration to edit its properties\",\n },\n dataSource: {\n fetchButton: \"Load content\",\n changeButton: \"Change\",\n fetching: \"Loading...\",\n readOnlyTooltip: \"This value is loaded from your data source\",\n fetchError: \"Failed to load content\",\n },\n },\n\n // Toolbar - HTML\n html: {\n content: \"HTML Content\",\n preview: \"Custom HTML block\",\n empty: \"Add HTML content in the panel\",\n sanitizationHint: \"Scripts and unsafe elements are removed on export.\",\n },\n\n // Toolbar - Common block settings\n blockSettings: {\n spacing: \"Spacing\",\n padding: \"Padding\",\n margin: \"Margin\",\n background: \"Background\",\n color: \"Color\",\n display: \"Display\",\n showOnDesktop: \"Show on desktop\",\n showOnTablet: \"Show on tablet\",\n showOnMobile: \"Show on mobile\",\n hiddenOnDevice: \"Hidden on {device}\",\n customCss: \"Custom CSS\",\n css: \"CSS\",\n cssPlaceholder: \"/* Custom styles */\",\n displayCondition: \"Display Condition\",\n selectCondition: \"Select condition\",\n removeCondition: \"Remove condition\",\n noCondition: \"Always visible\",\n conditionApplied: \"Condition applied\",\n customCondition: \"Custom condition\",\n customConditionLabel: \"Condition name\",\n customConditionBefore: \"Before (opening logic)\",\n customConditionAfter: \"After (closing logic)\",\n applyCondition: \"Apply\",\n cancelCondition: \"Cancel\",\n customBadge: \"Custom\",\n restoreHiddenBlocks: \"Show all hidden blocks\",\n },\n\n // Template settings\n templateSettings: {\n layout: \"Layout\",\n widthPreset: \"Width Preset\",\n customWidth: \"Custom Width\",\n contentPadding: \"Padding\",\n appearance: \"Appearance\",\n backgroundColor: \"Background Color\",\n backgroundOpacity: \"Background Opacity\",\n backgroundShadow: \"Background Shadow\",\n fontFamily: \"Font Family\",\n preheaderText: \"Preheader Text\",\n preheaderTextPlaceholder:\n \"Preview text shown after subject line in inbox...\",\n preheaderTextHint:\n \"This text appears after the subject line in email client previews. Supports merge tags.\",\n language: \"Language\",\n contentLocale: \"Content language\",\n contentLocaleHint:\n \"BCP 47 code (e.g. en, de, pt-BR). Sets the rendered email's lang attribute so screen readers pronounce content correctly.\",\n tips: \"Tips\",\n tip1: \"600px is the standard width for email templates\",\n tip2: \"Use web-safe fonts for best compatibility\",\n tip3: \"Light backgrounds work best for readability\",\n },\n\n // Spacing control\n spacingControl: {\n lockAll: \"Lock all sides\",\n unlock: \"Unlock sides\",\n top: \"Top\",\n right: \"Right\",\n bottom: \"Bottom\",\n left: \"Left\",\n decreaseTop: \"Decrease top\",\n increaseTop: \"Increase top\",\n decreaseLeft: \"Decrease left\",\n increaseLeft: \"Increase left\",\n decreaseRight: \"Decrease right\",\n increaseRight: \"Increase right\",\n decreaseBottom: \"Decrease bottom\",\n increaseBottom: \"Increase bottom\",\n },\n\n // Color Picker\n colorPicker: {\n pickColor: \"Pick a color\",\n hexValue: \"Hex color value\",\n },\n\n // Merge Tag\n mergeTag: {\n clickToEdit: \"Click to edit\",\n remove: \"Remove merge tag\",\n insert: \"Insert merge tag\",\n add: \"Add merge tag\",\n editValue: \"Edit merge tag value\",\n deleteMergeTag: \"Delete merge tag\",\n suggestionEmpty: \"No matching merge tags\",\n },\n\n // Canvas\n canvas: {\n noBlocks: \"No blocks yet\",\n dragHint: \"Start from scratch by dragging blocks from the sidebar\",\n dropHere: \"Drop here\",\n aiHintChat: \"or let\",\n aiHintChatSuffix: \"generate a complete template for you in seconds\",\n aiHintDesign:\n \"Have an existing design? Upload a screenshot, image, or PDF and\",\n aiHintDesignSuffix: \"will instantly recreate it\",\n pages: {\n ariaStrip: \"Canvas steps\",\n addStep: \"Add step\",\n stepActions: \"Step actions\",\n rename: \"Rename\",\n delete: \"Delete\",\n renamePrompt: \"Step name\",\n unreachableLabel: \"Unreachable step\",\n unreachableTooltip:\n \"This step is unreachable. The previous step has no Button or Form block configured with “Show next step” (or equivalent) that leads here.\",\n },\n },\n\n // Media Library (cloud)\n mediaLibrary: {\n title: \"Media Library\",\n searchPlaceholder: \"Search files...\",\n allFiles: \"All Files\",\n filterAll: \"All Types\",\n filterImages: \"Images\",\n filterDocuments: \"Documents\",\n filterVideos: \"Videos\",\n filterAudio: \"Audio\",\n newFolder: \"New Folder\",\n folderName: \"Folder name\",\n noFiles: \"No files found\",\n dropOrClick: \"Drop files here or click to upload\",\n acceptedFormats: \"Images, PDF, Video, Audio, Documents (max 10MB)\",\n uploading: \"Uploading...\",\n uploadingProgress: \"Uploading {current} of {total}...\",\n selectImage: \"Select Image\",\n selectFile: \"Select File\",\n deleteSelected: \"Delete\",\n copyUrl: \"Copy URL\",\n copied: \"Copied!\",\n browseMedia: \"Browse Media Library\",\n renameFolder: \"Rename folder\",\n addSubfolder: \"Add subfolder\",\n subfolderName: \"Subfolder name\",\n sortNewest: \"Newest First\",\n sortOldest: \"Oldest First\",\n sortNameAsc: \"Name A-Z\",\n sortNameDesc: \"Name Z-A\",\n sortSizeAsc: \"Smallest First\",\n sortSizeDesc: \"Largest First\",\n moveSelected: \"Move\",\n moveToRoot: \"All Files\",\n currentFolder: \"(current)\",\n confirmDelete: \"Delete this file?\",\n renameFile: \"Rename\",\n editFile: \"Edit File\",\n fileName: \"Filename\",\n altText: \"Alt Text\",\n altTextPlaceholder: \"Describe this image for accessibility\",\n saveChanges: \"Save\",\n cancel: \"Cancel\",\n frequentlyUsed: \"Frequently Used\",\n deleteWarningTitle: \"Delete File\",\n deleteWarningMessage:\n \"This file will be permanently deleted and cannot be recovered.\",\n deleteWarningUsageNote:\n \"The following files are used in templates. Deleting them may break those templates.\",\n deleteAnyway: \"Delete file\",\n usedInTemplates: \"Used in {count} template(s)\",\n viewGrid: \"Grid view\",\n viewList: \"List view\",\n showFolders: \"Show folders\",\n hideFolders: \"Hide folders\",\n importFromUrl: \"Import from URL\",\n importUrlPlaceholder: \"https://example.com/image.jpg\",\n import: \"Import\",\n importing: \"Importing...\",\n importError: \"Failed to import from URL\",\n conversionLabel: \"Size\",\n conversionOriginal: \"Original\",\n conversionSmall: \"Small (150px)\",\n conversionMedium: \"Medium (600px)\",\n conversionLarge: \"Large (1200px)\",\n replaceFile: \"Replace File\",\n replaceWarningTitle: \"Replace File\",\n replaceWarningMessage:\n \"You are about to replace this file. The replacement must have the same file extension ({extension}).\",\n replaceWarningUsageNote:\n \"This file is used in {count} template(s). Replacing it will update all references.\",\n replaceSelectFile: \"Select replacement file\",\n replace: \"Replace\",\n replacing: \"Replacing...\",\n replaceError: \"Failed to replace file\",\n saving: \"Saving...\",\n cropAspectRatio: \"Aspect Ratio\",\n cropFree: \"Free\",\n cropSquare: \"1:1\",\n cropLandscape43: \"4:3\",\n cropLandscape169: \"16:9\",\n cropOriginal: \"Original\",\n cropMaxWidth: \"Max Width\",\n cropMaxHeight: \"Max Height\",\n cropOutputSize: \"Output Size\",\n cropPixels: \"px\",\n cropOptional: \"(optional)\",\n storageTooltip: \"{used} of {total} used ({remaining} remaining)\",\n },\n\n // Sidebar & popup chrome (icon rail)\n popupSidebar: {\n workspaceLabel: \"Popup editor tools\",\n railNavLabel: \"Editor sections\",\n railDesign: \"Design\",\n railBlocks: \"Blocks\",\n railDisplayRules: \"Display rules\",\n railSchedule: \"Schedule\",\n placeholderDesign: \"Design controls will appear here.\",\n placeholderDisplayRules: \"Display rules will appear here.\",\n placeholderSchedule: \"Scheduling options will appear here.\",\n },\n\n popupSchedule: {\n timeZone: \"Time zone\",\n startDate: \"Start date\",\n endDate: \"End date\",\n startImmediate: \"Immediate\",\n endNone: \"None\",\n clearStartDate: \"Clear start date\",\n clearEndDate: \"Clear end date\",\n needHelp: \"I need help\",\n detailedSchedule: \"Detailed schedule\",\n detailedScheduleHeading: \"Detailed schedule\",\n removeSlot: \"Remove time slot\",\n addTimeSlot: \"+ Add a time slot\",\n calendarPrevMonth: \"Previous month\",\n calendarNextMonth: \"Next month\",\n calendarToday: \"Today\",\n calendarClear: \"Clear date\",\n calendarDialogLabel: \"Choose date\",\n dayLabels: {\n everyday: \"Everyday\",\n monday: \"Monday\",\n tuesday: \"Tuesday\",\n wednesday: \"Wednesday\",\n thursday: \"Thursday\",\n friday: \"Friday\",\n saturday: \"Saturday\",\n sunday: \"Sunday\",\n },\n },\n\n popupDisplayRules: {\n debug: \"Debug\",\n tabTrigger: \"Trigger\",\n tabPages: \"Pages\",\n tabAudience: \"Audience\",\n tabFrequency: \"Frequency\",\n tabAdvanced: \"Advanced\",\n placeholderSubtab: \"This section will be available in a future update.\",\n triggerHeading: \"Trigger\",\n triggerIntro: \"Choose when your visitors will see this campaign.\",\n triggerIntroSecondary:\n \"Enable multiple triggers to fire on whichever condition is met first.\",\n learnMore: \"Learn more\",\n addTriggerConditions: \"Add trigger conditions\",\n triggerShowOnlyAfter: \"Show only after\",\n triggerSecondsOnPage: \"seconds on page\",\n triggerPageViewsSuffix: \"page views\",\n triggerAddRule: \"Add rule\",\n triggerRemoveRuleAria: \"Remove page views rule\",\n triggerOperatorGroupAria: \"Combine delay and page views\",\n operatorAndShort: \"AND\",\n operatorOrShort: \"OR\",\n triggerDelaySeconds: \"Delay (seconds)\",\n triggerPageViews: \"Minimum page views\",\n triggerOperator: \"Combine rules with\",\n operatorAnd: \"All (AND)\",\n operatorOr: \"Any (OR)\",\n triggerOnScrollUpLabel: \"Trigger when scrolling up(Mobile & Tablet)\",\n triggerOnBackButtonLabel: \"Trigger on browser back(Mobile)\",\n debugJsonTitle: \"Triggers JSON (embed shape)\",\n debugJsonHint:\n \"Short keys (landing, exit, scroll, …) for runtimes and integrations. Editor still stores onLanding, onExit, …\",\n copyJson: \"Copy JSON\",\n copyJsonDone: \"Copied\",\n debugJsonClose: \"Close\",\n scrollShowAfter: \"Show after scrolling\",\n scrollPercentSuffix: \"% of the screen\",\n clickHint:\n 'Append this fragment to your link href to trigger the popup. Example: <a href=\"#popup\"></a>',\n hoverPlaceholder: \"ID of an element\",\n help: \"Help\",\n customEventLabel: \"Event name\",\n customEventPlaceholder: \"myPopupOpen\",\n triggerOnLandingTitle: \"On Landing\",\n triggerOnLandingDesc: \"When a visitor loads a page.\",\n triggerOnExitTitle: \"On Exit (exit intent)\",\n triggerOnExitDesc:\n \"When a visitor moves to leave the page — show the popup before they go.\",\n triggerOnScrollTitle: \"On Scroll\",\n triggerOnScrollDesc: \"When a visitor scrolls down.\",\n triggerOnClickTitle: \"On Click\",\n triggerOnClickDesc: \"When a visitor clicks a link.\",\n triggerOnHoverTitle: \"On Hover\",\n triggerOnHoverDesc: \"When a visitor hovers over an element.\",\n triggerOnCustomTitle: \"On Custom Event\",\n triggerOnCustomDesc: \"Use your own trigger.\",\n },\n\n popupDesign: {\n tabStyle: \"Style\",\n tabPosition: \"Position\",\n tabClosing: \"Closing\",\n tabCss: \"CSS\",\n placeholderSubtab:\n \"CSS customization will be available in a future update.\",\n standardSize: \"Standard size\",\n shapeHeading: \"Panel shape\",\n shapeLabels: {\n normal: \"Normal\",\n circle: \"Circle\",\n semiCircle: \"Semi-circle\",\n triangle: \"Triangle\",\n pill: \"Pill\",\n hexagon: \"Hexagon\",\n diamond: \"Diamond\",\n },\n panelAppearance: \"Panel appearance\",\n panelColorHint:\n \"Solid fill uses the template background color from the Settings tab.\",\n panelBackgroundOpacity: \"Panel fill opacity\",\n contentScrimOpacity: \"Content scrim\",\n backgroundImageUrl: \"Background image URL\",\n backgroundImageFitHeading: \"Background image fit\",\n fitAuto: \"Auto (natural ratio)\",\n fitCover: \"Cover\",\n fitContain: \"Contain\",\n backgroundImageOnly: \"Image only (hide body chrome)\",\n options: \"Options\",\n useOverlay: \"Use overlay\",\n overlayBlur: \"Background blur\",\n overlayBlurHint:\n \"Blurs whatever is behind the popup. Drag to 0 for a sharp backdrop.\",\n overlayImageOpacity: \"Overlay image opacity\",\n overlayImage: \"Overlay image\",\n overlayImagePanelAriaLabel: \"Overlay image upload\",\n overlayImageDropLineBefore: \"Drag your image here or \",\n overlayImageBrowse: \"browse\",\n overlayImageDropLineAfter: \".\",\n overlayImageFormats: \"JPEG, PNG, GIF, WebP, AVIF or SVG.\",\n overlayImageDesktopPreview: \"Desktop overlay preview\",\n overlayImageMobilePreview: \"Mobile overlay preview\",\n overlayImageCrop: \"Crop\",\n overlayImageReplace: \"Replace\",\n overlayImageRemove: \"Remove\",\n backgroundImage: \"Background image\",\n multiColumn: \"Multiple columns layout\",\n rtl: \"Activate right-to-left\",\n positionHeading: \"Select where your popup will be displayed\",\n displayAnimationHeading: \"Select a display animation\",\n animationSmooth: \"Smooth\",\n animationFadeIn: \"Fade in\",\n animationSlideIn: \"Slide in\",\n animationNone: \"None\",\n positionLabels: {\n topLeft: \"Top left\",\n topCenter: \"Top center\",\n topRight: \"Top right\",\n middleLeft: \"Middle left\",\n center: \"Center\",\n middleRight: \"Middle right\",\n bottomLeft: \"Bottom left\",\n bottomCenter: \"Bottom center\",\n bottomRight: \"Bottom right\",\n },\n closingDisplayCloseButton: \"Display closing button\",\n closingButtonPosition: \"Closing button position\",\n closingButtonPositionLeft: \"Left\",\n closingButtonPositionRight: \"Right\",\n closingOnOverlayClick: \"Close when overlay is clicked\",\n sizeLabels: {\n small: \"Small\",\n medium: \"Medium\",\n large: \"Large\",\n fullscreen: \"Full screen\",\n fullHeight: \"Full height\",\n custom: \"Custom\",\n },\n },\n\n sidebarNav: {\n browseModules: \"Browse saved modules\",\n expandSidebar: \"Expand block sidebar\",\n palette: \"Block palette\",\n insertBlock: \"Insert {block} block\",\n },\n\n // Landmark region labels for assistive technology\n landmarks: {\n canvas: \"Email canvas\",\n blockToolbar: \"Block properties\",\n rightSidebar: \"Block properties and template settings\",\n reorderAnnouncements: \"Block reorder announcements\",\n },\n\n // Design Reference (cloud)\n errors: {\n editorLoading: \"Loading editor...\",\n editorLoadFailed: \"Failed to load editor.\",\n retry: \"Retry\",\n },\n\n accessibility: {\n panelTitle: \"Accessibility\",\n panelTabLabel: \"Accessibility\",\n groupErrors: \"Errors\",\n groupWarnings: \"Warnings\",\n groupInfo: \"Info\",\n jump: \"Jump to block\",\n fix: \"Fix\",\n emptyState: \"No accessibility issues — looking good.\",\n badgeError: \"Has accessibility errors\",\n badgeWarning: \"Has accessibility warnings\",\n issueCountTooltip: \"{count} accessibility issue(s)\",\n },\n};\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { A as e, C as t, G as n, I as r, P as i, T as a, W as o, _ as s, c, ct as l, d as u, dt as d, f, ft as p, g as m, h, m as g, r as _, tt as v, u as y, ut as b, v as x } from "./draggable-C-1_gch3.js";
|
|
2
|
-
import { An as S,
|
|
3
|
-
import { _ as O, g as k, h as A, n as j, r as M, t as N, v as P, y as F } from "./tiptap-
|
|
2
|
+
import { An as S, Mn as C, On as w, Vt as T, jn as E, nt as D } from "./features-uApxwJMz.js";
|
|
3
|
+
import { _ as O, g as k, h as A, n as j, r as M, t as N, v as P, y as F } from "./tiptap-qXOh0vzV.js";
|
|
4
4
|
//#region src/extensions/FontSize.ts
|
|
5
5
|
var I = A.create({
|
|
6
6
|
name: "fontSize",
|
|
@@ -82,9 +82,9 @@ var I = A.create({
|
|
|
82
82
|
updateAttributes: { type: Function }
|
|
83
83
|
},
|
|
84
84
|
setup(t) {
|
|
85
|
-
let r = t, { syntax: a } = D(), { t: f } =
|
|
85
|
+
let r = t, { syntax: a } = D(), { t: f } = T(), _ = g(() => C(r.node.attrs.value, a)), w = g(() => S(r.node.attrs.value, a)), E = v(!1), O = v(""), k = v(null), A = !1;
|
|
86
86
|
function M() {
|
|
87
|
-
O.value = r.node.attrs.value, A = !1,
|
|
87
|
+
O.value = r.node.attrs.value, A = !1, E.value = !0, e(() => {
|
|
88
88
|
k.value?.focus(), k.value?.select();
|
|
89
89
|
});
|
|
90
90
|
}
|
|
@@ -93,16 +93,16 @@ var I = A.create({
|
|
|
93
93
|
A = !0;
|
|
94
94
|
let e = O.value.trim();
|
|
95
95
|
if (!e) {
|
|
96
|
-
|
|
96
|
+
E.value = !1;
|
|
97
97
|
return;
|
|
98
98
|
}
|
|
99
99
|
e !== r.node.attrs.value && r.updateAttributes({
|
|
100
100
|
value: e,
|
|
101
|
-
keyword:
|
|
102
|
-
}),
|
|
101
|
+
keyword: C(e, a) ? S(e, a) : ""
|
|
102
|
+
}), E.value = !1;
|
|
103
103
|
}
|
|
104
104
|
function P(e) {
|
|
105
|
-
e.key === "Enter" ? (e.preventDefault(), N()) : e.key === "Escape" && (
|
|
105
|
+
e.key === "Enter" ? (e.preventDefault(), N()) : e.key === "Escape" && (E.value = !1);
|
|
106
106
|
}
|
|
107
107
|
return (e, r) => (i(), m(l(j), {
|
|
108
108
|
as: "span",
|
|
@@ -110,7 +110,7 @@ var I = A.create({
|
|
|
110
110
|
style: d(_.value ? "background-color: transparent; border: 1.5px solid color-mix(in srgb, var(--tpl-primary) 50%, transparent); color: var(--tpl-primary);" : ""),
|
|
111
111
|
contenteditable: "false"
|
|
112
112
|
}, {
|
|
113
|
-
default: o(() => [
|
|
113
|
+
default: o(() => [E.value ? n((i(), x("input", {
|
|
114
114
|
key: 0,
|
|
115
115
|
ref_key: "inputRef",
|
|
116
116
|
ref: k,
|
|
@@ -128,7 +128,7 @@ var I = A.create({
|
|
|
128
128
|
"data-tooltip": t.node.attrs.value,
|
|
129
129
|
onClick: u(M, ["stop"]),
|
|
130
130
|
onKeydown: [y(u(M, ["stop"]), ["enter"]), y(u(M, ["prevent", "stop"]), ["space"])]
|
|
131
|
-
}, p(
|
|
131
|
+
}, p(w.value), 41, ee)) : (i(), x("span", {
|
|
132
132
|
key: 2,
|
|
133
133
|
role: "button",
|
|
134
134
|
tabindex: "0",
|
|
@@ -204,12 +204,12 @@ var H = O.create({
|
|
|
204
204
|
return [{ tag: "span[data-logic-merge-tag]" }];
|
|
205
205
|
},
|
|
206
206
|
renderHTML({ node: e, HTMLAttributes: t }) {
|
|
207
|
-
if (!
|
|
207
|
+
if (!C(e.attrs.value, this.options.syntax)) return [
|
|
208
208
|
"span",
|
|
209
209
|
{},
|
|
210
210
|
e.attrs.value
|
|
211
211
|
];
|
|
212
|
-
let n =
|
|
212
|
+
let n = S(e.attrs.value, this.options.syntax);
|
|
213
213
|
return [
|
|
214
214
|
"span",
|
|
215
215
|
F(t, {
|
|
@@ -233,8 +233,8 @@ var H = O.create({
|
|
|
233
233
|
find: RegExp(this.options.syntax.logic.source + "$", ""),
|
|
234
234
|
handler: ({ state: e, range: t, match: n }) => {
|
|
235
235
|
let r = n[0];
|
|
236
|
-
if (!
|
|
237
|
-
let i =
|
|
236
|
+
if (!C(r, this.options.syntax)) return;
|
|
237
|
+
let i = S(r, this.options.syntax), a = this.type.create({
|
|
238
238
|
value: r,
|
|
239
239
|
keyword: i
|
|
240
240
|
});
|
|
@@ -247,8 +247,8 @@ var H = O.create({
|
|
|
247
247
|
find: new RegExp(this.options.syntax.logic.source, "g"),
|
|
248
248
|
handler: ({ state: e, range: t, match: n }) => {
|
|
249
249
|
let r = n[0];
|
|
250
|
-
if (!
|
|
251
|
-
let i =
|
|
250
|
+
if (!C(r, this.options.syntax)) return;
|
|
251
|
+
let i = S(r, this.options.syntax), a = this.type.create({
|
|
252
252
|
value: r,
|
|
253
253
|
keyword: i
|
|
254
254
|
});
|
|
@@ -268,21 +268,21 @@ var H = O.create({
|
|
|
268
268
|
updateAttributes: { type: Function }
|
|
269
269
|
},
|
|
270
270
|
setup(t) {
|
|
271
|
-
let r = t, { getMergeTagLabel: a } = D(), { t: s } =
|
|
271
|
+
let r = t, { getMergeTagLabel: a } = D(), { t: s } = T(), d = g(() => a(r.node.attrs.value)), f = v(!1), _ = v(""), b = v(null);
|
|
272
272
|
function S() {
|
|
273
273
|
_.value = r.node.attrs.value, f.value = !0, e(() => {
|
|
274
274
|
b.value?.focus(), b.value?.select();
|
|
275
275
|
});
|
|
276
276
|
}
|
|
277
|
-
function
|
|
277
|
+
function C() {
|
|
278
278
|
let e = _.value.trim();
|
|
279
279
|
e && e !== r.node.attrs.value && r.updateAttributes({
|
|
280
280
|
value: e,
|
|
281
281
|
label: a(e)
|
|
282
282
|
}), f.value = !1;
|
|
283
283
|
}
|
|
284
|
-
function
|
|
285
|
-
e.key === "Enter" ? (e.preventDefault(),
|
|
284
|
+
function w(e) {
|
|
285
|
+
e.key === "Enter" ? (e.preventDefault(), C()) : e.key === "Escape" && (f.value = !1);
|
|
286
286
|
}
|
|
287
287
|
return (e, r) => (i(), m(l(j), {
|
|
288
288
|
as: "span",
|
|
@@ -297,8 +297,8 @@ var H = O.create({
|
|
|
297
297
|
"onUpdate:modelValue": r[0] ||= (e) => _.value = e,
|
|
298
298
|
type: "text",
|
|
299
299
|
class: "tpl:w-32 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-0.5 tpl:py-0 tpl:text-[1em] tpl:font-medium tpl:outline-none tpl:text-[var(--tpl-primary)]",
|
|
300
|
-
onBlur:
|
|
301
|
-
onKeydown:
|
|
300
|
+
onBlur: C,
|
|
301
|
+
onKeydown: w
|
|
302
302
|
}, null, 544)), [[c, _.value]]) : (i(), x("span", {
|
|
303
303
|
key: 1,
|
|
304
304
|
role: "button",
|
|
@@ -363,7 +363,7 @@ var H = O.create({
|
|
|
363
363
|
return [{ tag: "span[data-merge-tag]" }];
|
|
364
364
|
},
|
|
365
365
|
renderHTML({ node: e, HTMLAttributes: t }) {
|
|
366
|
-
let n =
|
|
366
|
+
let n = E(e.attrs.value, this.options.mergeTags);
|
|
367
367
|
return [
|
|
368
368
|
"span",
|
|
369
369
|
F(t, {
|
|
@@ -392,7 +392,7 @@ var H = O.create({
|
|
|
392
392
|
return [new k({
|
|
393
393
|
find: RegExp(this.options.syntax.value.source + "$", ""),
|
|
394
394
|
handler: ({ state: e, range: t, match: n }) => {
|
|
395
|
-
let r = n[0], i =
|
|
395
|
+
let r = n[0], i = E(r, this.options.mergeTags), a = this.type.create({
|
|
396
396
|
label: i,
|
|
397
397
|
value: r
|
|
398
398
|
});
|
|
@@ -404,7 +404,7 @@ var H = O.create({
|
|
|
404
404
|
return [new P({
|
|
405
405
|
find: new RegExp(this.options.syntax.value.source, "g"),
|
|
406
406
|
handler: ({ state: e, range: t, match: n }) => {
|
|
407
|
-
let r = n[0], i =
|
|
407
|
+
let r = n[0], i = E(r, this.options.mergeTags), a = this.type.create({
|
|
408
408
|
label: i,
|
|
409
409
|
value: r
|
|
410
410
|
});
|
|
@@ -595,4 +595,4 @@ var oe = A.create({
|
|
|
595
595
|
//#endregion
|
|
596
596
|
export { I as FontSize, L as LetterSpacing, R as LineHeight, H as LogicMergeTagNode, K as MergeTagNode, oe as MergeTagSuggestion, Q as filterMergeTags, $ as handleSuggestionKeyDown };
|
|
597
597
|
|
|
598
|
-
//# sourceMappingURL=extensions-
|
|
598
|
+
//# sourceMappingURL=extensions-BbFKsjyT.js.map
|