@maildeno/editor 0.4.5 → 0.4.6

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 (237) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/DatePicker-6dMK-shv.js +5639 -0
  3. package/dist/DatePicker-CEm1DPgG.js +5640 -0
  4. package/dist/HealthIndicator-Ch5Ck0BL.js +1954 -0
  5. package/dist/HealthIndicator-Dr5vMr1T.js +1953 -0
  6. package/dist/PreviewCanvas-CG52GC5m.js +667 -0
  7. package/dist/PreviewCanvas-CjOrVIGt.js +668 -0
  8. package/dist/RichTextEditor-DaaHuVox.js +13487 -0
  9. package/dist/RichTextEditor-DoWpYF0R.js +13432 -0
  10. package/dist/RowPreviewChildren-DQoyExvw.js +4 -0
  11. package/dist/RowPreviewChildren-yl3aB7hb.js +4 -0
  12. package/dist/RowPreviewLegacyComponent-CHxbwy9l.js +454 -0
  13. package/dist/RowPreviewLegacyComponent-Dv7OCys4.js +454 -0
  14. package/dist/RowPreviewRow-Bizr4PTf.js +86 -0
  15. package/dist/RowPreviewRow-CLhz0YQ5.js +86 -0
  16. package/dist/SavedRowsPanel-C0DkAzHi.js +611 -0
  17. package/dist/SavedRowsPanel-Cp3gADrK.js +610 -0
  18. package/dist/babel-Bmz1GpKj.js +7218 -0
  19. package/dist/editor.css +1 -2
  20. package/dist/element-CRfWpZos.js +40842 -0
  21. package/dist/element.js +2 -2
  22. package/dist/estree-C5xyFN_T.js +4831 -0
  23. package/dist/html-Dc_r73Xn.js +3062 -0
  24. package/dist/index-BlYp4vAp.js +34092 -0
  25. package/dist/index.js +14 -48471
  26. package/dist/init.js +94 -82
  27. package/dist/standalone-Yv8gSIWN.js +2336 -0
  28. package/package.json +2 -2
  29. package/dist/RowPreviewLegacyComponent-3QuwvWmT.js +0 -402
  30. package/dist/RowPreviewLegacyComponent-DVxrCJ14.js +0 -402
  31. package/dist/RowPreviewRow-0pEQLmS4.js +0 -80
  32. package/dist/RowPreviewRow-Eum1wh1W.js +0 -80
  33. package/dist/adapters/index.d.ts +0 -38
  34. package/dist/babel-DV7WPQI0.js +0 -10043
  35. package/dist/baseStyles.d.ts +0 -13
  36. package/dist/blocks/canvasStyleHelpers.d.ts +0 -17
  37. package/dist/blocks/definitions/anchor.d.ts +0 -2
  38. package/dist/blocks/definitions/button.d.ts +0 -2
  39. package/dist/blocks/definitions/divider.d.ts +0 -2
  40. package/dist/blocks/definitions/heading.d.ts +0 -2
  41. package/dist/blocks/definitions/image.d.ts +0 -2
  42. package/dist/blocks/definitions/list.d.ts +0 -2
  43. package/dist/blocks/definitions/menu.d.ts +0 -2
  44. package/dist/blocks/definitions/paragraph.d.ts +0 -2
  45. package/dist/blocks/definitions/socials.d.ts +0 -2
  46. package/dist/blocks/definitions/spacer.d.ts +0 -2
  47. package/dist/blocks/definitions/video.d.ts +0 -2
  48. package/dist/blocks/index.d.ts +0 -8
  49. package/dist/brand.d.ts +0 -15
  50. package/dist/components/DesktopOnlyNotice.vue.d.ts +0 -20
  51. package/dist/components/features/emailBuilder/assistant/AssistantPanel.vue.d.ts +0 -37
  52. package/dist/components/features/emailBuilder/blocks/AnchorBlock.vue.d.ts +0 -3
  53. package/dist/components/features/emailBuilder/blocks/ButtonBlock.vue.d.ts +0 -3
  54. package/dist/components/features/emailBuilder/blocks/DividerBlock.vue.d.ts +0 -3
  55. package/dist/components/features/emailBuilder/blocks/HeadingBlock.vue.d.ts +0 -3
  56. package/dist/components/features/emailBuilder/blocks/ImageBlock.vue.d.ts +0 -3
  57. package/dist/components/features/emailBuilder/blocks/ListBlock.vue.d.ts +0 -3
  58. package/dist/components/features/emailBuilder/blocks/MenuBlock.vue.d.ts +0 -3
  59. package/dist/components/features/emailBuilder/blocks/ParagraphBlock.vue.d.ts +0 -3
  60. package/dist/components/features/emailBuilder/blocks/SocialsBlock.vue.d.ts +0 -3
  61. package/dist/components/features/emailBuilder/blocks/SpacerBlock.vue.d.ts +0 -3
  62. package/dist/components/features/emailBuilder/blocks/VideoBlock.vue.d.ts +0 -3
  63. package/dist/components/features/emailBuilder/canvas/Canvas.vue.d.ts +0 -3
  64. package/dist/components/features/emailBuilder/canvas/CanvasColumn.vue.d.ts +0 -49
  65. package/dist/components/features/emailBuilder/canvas/CanvasComponent.vue.d.ts +0 -56
  66. package/dist/components/features/emailBuilder/canvas/CanvasElement.vue.d.ts +0 -21
  67. package/dist/components/features/emailBuilder/canvas/CanvasRow.vue.d.ts +0 -49
  68. package/dist/components/features/emailBuilder/canvas/CanvasRowSpacer.vue.d.ts +0 -40
  69. package/dist/components/features/emailBuilder/health/HealthIndicator.vue.d.ts +0 -3
  70. package/dist/components/features/emailBuilder/layout/Header.vue.d.ts +0 -54
  71. package/dist/components/features/emailBuilder/layout/SendEmail.vue.d.ts +0 -21
  72. package/dist/components/features/emailBuilder/layout/SidebarLeft.vue.d.ts +0 -3
  73. package/dist/components/features/emailBuilder/layout/SidebarRight.vue.d.ts +0 -3
  74. package/dist/components/features/emailBuilder/panels/AnchorPanel.vue.d.ts +0 -3
  75. package/dist/components/features/emailBuilder/panels/ButtonPanel.vue.d.ts +0 -3
  76. package/dist/components/features/emailBuilder/panels/DividerPanel.vue.d.ts +0 -3
  77. package/dist/components/features/emailBuilder/panels/HeadingPanel.vue.d.ts +0 -3
  78. package/dist/components/features/emailBuilder/panels/ImagePanel.vue.d.ts +0 -3
  79. package/dist/components/features/emailBuilder/panels/ListPanel.vue.d.ts +0 -3
  80. package/dist/components/features/emailBuilder/panels/MenuPanel.vue.d.ts +0 -3
  81. package/dist/components/features/emailBuilder/panels/ParagraphPanel.vue.d.ts +0 -3
  82. package/dist/components/features/emailBuilder/panels/RowColumnPanel.vue.d.ts +0 -13
  83. package/dist/components/features/emailBuilder/panels/RowPanel.vue.d.ts +0 -13
  84. package/dist/components/features/emailBuilder/panels/RowSpacerPanel.vue.d.ts +0 -13
  85. package/dist/components/features/emailBuilder/panels/SocialsPanel.vue.d.ts +0 -3
  86. package/dist/components/features/emailBuilder/panels/SpacerPanel.vue.d.ts +0 -3
  87. package/dist/components/features/emailBuilder/panels/VideoPanel.vue.d.ts +0 -3
  88. package/dist/components/features/emailBuilder/panels/shared/DeviceTabs.vue.d.ts +0 -19
  89. package/dist/components/features/emailBuilder/panels/shared/LinkFieldMergeTags.vue.d.ts +0 -31
  90. package/dist/components/features/emailBuilder/panels/shared/OverrideBadge.vue.d.ts +0 -9
  91. package/dist/components/features/emailBuilder/panels/shared/PreviewBadge.vue.d.ts +0 -11
  92. package/dist/components/features/emailBuilder/panels/shared/TextFieldMergeTags.vue.d.ts +0 -25
  93. package/dist/components/features/emailBuilder/panels/ui/BoxStylingSection.vue.d.ts +0 -7
  94. package/dist/components/features/emailBuilder/panels/ui/PropertyAlignment.vue.d.ts +0 -30
  95. package/dist/components/features/emailBuilder/panels/ui/PropertyColor.vue.d.ts +0 -75
  96. package/dist/components/features/emailBuilder/panels/ui/PropertyGradientColor.vue.d.ts +0 -27
  97. package/dist/components/features/emailBuilder/panels/ui/PropertyNumberSlider.vue.d.ts +0 -74
  98. package/dist/components/features/emailBuilder/panels/ui/PropertySection.vue.d.ts +0 -17
  99. package/dist/components/features/emailBuilder/panels/ui/PropertySelect.vue.d.ts +0 -74
  100. package/dist/components/features/emailBuilder/panels/ui/PropertyTextStyle.vue.d.ts +0 -52
  101. package/dist/components/features/emailBuilder/panels/ui/PropertyTextStylePanel.vue.d.ts +0 -72
  102. package/dist/components/features/emailBuilder/panels/ui/PropertyToggle.vue.d.ts +0 -45
  103. package/dist/components/features/emailBuilder/panels/ui/PropertyVisibility.vue.d.ts +0 -32
  104. package/dist/components/features/emailBuilder/panels/ui/SpacingControl.vue.d.ts +0 -19
  105. package/dist/components/features/emailBuilder/panels/ui/color-picker/AlphaSlider.vue.d.ts +0 -28
  106. package/dist/components/features/emailBuilder/panels/ui/color-picker/ColorPickerPanel.vue.d.ts +0 -31
  107. package/dist/components/features/emailBuilder/panels/ui/color-picker/HueSlider.vue.d.ts +0 -19
  108. package/dist/components/features/emailBuilder/panels/ui/color-picker/RecentColors.vue.d.ts +0 -20
  109. package/dist/components/features/emailBuilder/panels/ui/color-picker/SVPanel.vue.d.ts +0 -39
  110. package/dist/components/features/emailBuilder/panels/ui/visibility-rule/Rule.vue.d.ts +0 -28
  111. package/dist/components/features/emailBuilder/preview/PreviewScreen.vue.d.ts +0 -7
  112. package/dist/components/features/emailBuilder/preview/ui/PreviewCanvas.vue.d.ts +0 -10
  113. package/dist/components/features/emailBuilder/preview/ui/PreviewCapabilityBadges.vue.d.ts +0 -12
  114. package/dist/components/features/emailBuilder/preview/ui/PreviewClientCard.vue.d.ts +0 -20
  115. package/dist/components/features/emailBuilder/preview/ui/PreviewClientList.vue.d.ts +0 -21
  116. package/dist/components/features/emailBuilder/preview/ui/PreviewClientPicker.vue.d.ts +0 -16
  117. package/dist/components/features/emailBuilder/preview/ui/PreviewComponent.vue.d.ts +0 -10
  118. package/dist/components/features/emailBuilder/preview/ui/PreviewDetailView.vue.d.ts +0 -41
  119. package/dist/components/features/emailBuilder/preview/ui/PreviewRendered.vue.d.ts +0 -8
  120. package/dist/components/features/emailBuilder/product/RowPreview.vue.d.ts +0 -8
  121. package/dist/components/features/emailBuilder/product/RowPreviewChildren.vue.d.ts +0 -14
  122. package/dist/components/features/emailBuilder/product/RowPreviewLegacyComponent.vue.d.ts +0 -14
  123. package/dist/components/features/emailBuilder/product/RowPreviewRow.vue.d.ts +0 -9
  124. package/dist/components/features/emailBuilder/product/SavedRowsPanel.vue.d.ts +0 -3
  125. package/dist/components/features/emailBuilder/product/SavedTemplatesPanel.vue.d.ts +0 -13
  126. package/dist/components/features/emailBuilder/product/VersionHistoryPanel.vue.d.ts +0 -14
  127. package/dist/components/features/emailBuilder/sidebar/SidebarBlockButton.vue.d.ts +0 -35
  128. package/dist/components/features/emailBuilder/tabs/GeneralTab.vue.d.ts +0 -3
  129. package/dist/components/features/emailBuilder/tabs/LayoutTab.vue.d.ts +0 -3
  130. package/dist/components/features/emailBuilder/tabs/content/ContentTab.vue.d.ts +0 -3
  131. package/dist/components/features/emailBuilder/tabs/content/LayersPanel.vue.d.ts +0 -7
  132. package/dist/components/features/emailBuilder/tabs/general/MergeTagsTab.vue.d.ts +0 -3
  133. package/dist/components/features/emailBuilder/tabs/general/StylesTab.vue.d.ts +0 -3
  134. package/dist/components/features/emailBuilder/tabs/general/VisibilityTab.vue.d.ts +0 -3
  135. package/dist/components/features/emailBuilder/tabs/general/VisibilityWrapESPTab.vue.d.ts +0 -3
  136. package/dist/components/features/emailBuilder/tabs/general/merge-tags/LinkTagTab.vue.d.ts +0 -3
  137. package/dist/components/features/emailBuilder/tabs/general/merge-tags/MergeTagTab.vue.d.ts +0 -3
  138. package/dist/components/features/emailBuilder/ui/LinkInputDialog.vue.d.ts +0 -17
  139. package/dist/components/features/emailBuilder/ui/canvas/CanvasRowDropZone.vue.d.ts +0 -12
  140. package/dist/components/features/emailBuilder/ui/canvas/DropZone.vue.d.ts +0 -10
  141. package/dist/components/features/emailBuilder/ui/canvas/Loader.vue.d.ts +0 -19
  142. package/dist/components/features/emailBuilder/ui/layers-panel/ComponentIcon.vue.d.ts +0 -7
  143. package/dist/components/features/emailBuilder/ui/layers-panel/LayerColumnChildren.vue.d.ts +0 -42
  144. package/dist/components/features/emailBuilder/ui/layers-panel/LayerDropLine.vue.d.ts +0 -8
  145. package/dist/components/features/emailBuilder/ui/renderers/AnchorRenderer.vue.d.ts +0 -10
  146. package/dist/components/features/emailBuilder/ui/renderers/DividerRenderer.vue.d.ts +0 -10
  147. package/dist/components/features/emailBuilder/ui/renderers/HeadingRenderer.vue.d.ts +0 -10
  148. package/dist/components/features/emailBuilder/ui/renderers/ImageRenderer.vue.d.ts +0 -10
  149. package/dist/components/features/emailBuilder/ui/renderers/ListRenderer.vue.d.ts +0 -10
  150. package/dist/components/features/emailBuilder/ui/renderers/MenuRenderer.vue.d.ts +0 -10
  151. package/dist/components/features/emailBuilder/ui/renderers/ParagraphRenderer.vue.d.ts +0 -10
  152. package/dist/components/features/emailBuilder/ui/renderers/SocialsRenderer.vue.d.ts +0 -10
  153. package/dist/components/features/emailBuilder/ui/renderers/SpacerRenderer.vue.d.ts +0 -10
  154. package/dist/components/features/emailBuilder/ui/renderers/VideoRenderer.vue.d.ts +0 -10
  155. package/dist/components/features/emailBuilder/ui/rich-text-editor/RichTextEditor.vue.d.ts +0 -12
  156. package/dist/components/features/emailBuilder/ui/rich-text-editor/pickers/MergeTagPicker.vue.d.ts +0 -18
  157. package/dist/components/features/emailBuilder/ui/rich-text-editor/pickers/RichTextColorPicker.vue.d.ts +0 -15
  158. package/dist/components/features/emailBuilder/ui/visibility/SupportBadge.vue.d.ts +0 -10
  159. package/dist/components/features/emailBuilder/ui/visibility/VisibilityPopover.vue.d.ts +0 -45
  160. package/dist/components/ui/ConfirmDialog.vue.d.ts +0 -3
  161. package/dist/components/ui/Icon.vue.d.ts +0 -33
  162. package/dist/components/ui/InfoDialog.vue.d.ts +0 -12
  163. package/dist/components/ui/Loading.vue.d.ts +0 -6
  164. package/dist/components/ui/ShadowSafeToast.vue.d.ts +0 -3
  165. package/dist/components/ui/primitives/Button.vue.d.ts +0 -23
  166. package/dist/components/ui/primitives/DatePicker.vue.d.ts +0 -16
  167. package/dist/components/ui/primitives/Dialog.vue.d.ts +0 -34
  168. package/dist/components/ui/primitives/InputText.vue.d.ts +0 -29
  169. package/dist/components/ui/primitives/Message.vue.d.ts +0 -20
  170. package/dist/components/ui/primitives/Select.vue.d.ts +0 -22
  171. package/dist/composables/emailBuilder/components/useComponentStyleEditor.d.ts +0 -72
  172. package/dist/composables/emailBuilder/components/useProductRowActions.d.ts +0 -3
  173. package/dist/composables/emailBuilder/components/useProductRows.d.ts +0 -59
  174. package/dist/composables/emailBuilder/components/useSystemRows.d.ts +0 -22
  175. package/dist/composables/emailBuilder/core/config/componentConfig.d.ts +0 -29
  176. package/dist/composables/emailBuilder/core/link-tags/useLinkTagInsert.d.ts +0 -13
  177. package/dist/composables/emailBuilder/core/merge-tags/mergeTagDefinitions.d.ts +0 -64
  178. package/dist/composables/emailBuilder/core/merge-tags/resolveMergeTags.d.ts +0 -27
  179. package/dist/composables/emailBuilder/core/ui/useLayerHoverScroll.d.ts +0 -20
  180. package/dist/composables/emailBuilder/core/ui/useLayoutDrag.d.ts +0 -85
  181. package/dist/composables/emailBuilder/core/ui/useRichTextEditors.d.ts +0 -6
  182. package/dist/composables/emailBuilder/core/ui/visibilityBadgeHelpers.d.ts +0 -22
  183. package/dist/composables/emailBuilder/core/useEmailBuilder.d.ts +0 -292
  184. package/dist/composables/emailBuilder/core/useEmailBuilderDefault.d.ts +0 -507
  185. package/dist/composables/emailBuilder/core/useEmailBuilderOperations.d.ts +0 -31
  186. package/dist/composables/emailBuilder/core/useEmailBuilderVisibility.d.ts +0 -31
  187. package/dist/composables/emailBuilder/export/actions/download.d.ts +0 -24
  188. package/dist/composables/emailBuilder/export/generators/html.d.ts +0 -3
  189. package/dist/composables/emailBuilder/export/generators/mjml.d.ts +0 -6
  190. package/dist/composables/emailBuilder/export/generators/react-email.d.ts +0 -61
  191. package/dist/composables/emailBuilder/export/helpers/generatorHelpers.d.ts +0 -53
  192. package/dist/composables/emailBuilder/export/logic/reactLogicWrapper.d.ts +0 -31
  193. package/dist/composables/emailBuilder/export/merge-tags/mergeTagMapper.d.ts +0 -42
  194. package/dist/composables/emailBuilder/export/merge-tags/reactMergeTagMapper.d.ts +0 -26
  195. package/dist/composables/emailBuilder/export/shared/containers.d.ts +0 -18
  196. package/dist/composables/emailBuilder/export/shared/styles.d.ts +0 -12
  197. package/dist/composables/emailBuilder/export/shared/tagIdentifier.d.ts +0 -1
  198. package/dist/composables/emailBuilder/export/targets/htmlExport.d.ts +0 -20
  199. package/dist/composables/emailBuilder/export/targets/jsonExport.d.ts +0 -28
  200. package/dist/composables/emailBuilder/export/targets/mjmlExport.d.ts +0 -19
  201. package/dist/composables/emailBuilder/export/targets/reactEmailExport.d.ts +0 -20
  202. package/dist/composables/emailBuilder/export/targets/templateSnapshot.d.ts +0 -24
  203. package/dist/composables/emailBuilder/export/transformers/espWrapper.d.ts +0 -2
  204. package/dist/composables/emailBuilder/export/transformers/formatting.d.ts +0 -3
  205. package/dist/composables/emailBuilder/export/transformers/minify.d.ts +0 -33
  206. package/dist/composables/emailBuilder/export/transformers/tagMapper.d.ts +0 -29
  207. package/dist/composables/emailBuilder/export/types/export.d.ts +0 -24
  208. package/dist/composables/emailBuilder/export/useEmailExportEngine.d.ts +0 -63
  209. package/dist/composables/emailBuilder/export/useEmailExportMobileStyles.d.ts +0 -3
  210. package/dist/composables/emailBuilder/export/useExportSettings.d.ts +0 -5
  211. package/dist/composables/emailBuilder/health/accessibilityChecker.d.ts +0 -64
  212. package/dist/composables/emailBuilder/health/healthIndicator.d.ts +0 -19
  213. package/dist/composables/emailBuilder/history/useEmailBuilderHistory.d.ts +0 -26
  214. package/dist/composables/emailBuilder/history/useHistory.d.ts +0 -16
  215. package/dist/composables/emailBuilder/preview/useClientPreview.d.ts +0 -127
  216. package/dist/composables/emailBuilder/transform/pipeline/hydrate.d.ts +0 -54
  217. package/dist/composables/emailBuilder/types/emailBuilder.d.ts +0 -79
  218. package/dist/composables/system/useColor.d.ts +0 -26
  219. package/dist/composables/system/useDeviceDetection.d.ts +0 -5
  220. package/dist/composables/system/useGoogleFonts.d.ts +0 -11
  221. package/dist/composables/system/useImageUpload.d.ts +0 -23
  222. package/dist/composables/system/useSavedRowsPanel.d.ts +0 -35
  223. package/dist/composables/ui/useConfirm.d.ts +0 -33
  224. package/dist/composables/ui/useInfoDialog.d.ts +0 -22
  225. package/dist/composables/ui/useTeleportTarget.d.ts +0 -49
  226. package/dist/composables/ui/useToast.d.ts +0 -32
  227. package/dist/devStyleMirror.d.ts +0 -20
  228. package/dist/documentScopedStyles.d.ts +0 -39
  229. package/dist/element-Dq6bmt2l.js +0 -48454
  230. package/dist/estree-DY9POgc0.js +0 -8195
  231. package/dist/html-wb0gSX1o.js +0 -7273
  232. package/dist/lightDom.d.ts +0 -30
  233. package/dist/shadowStyles.d.ts +0 -8
  234. package/dist/standalone-DHvJ30Td.js +0 -3554
  235. package/dist/utils/generateId.d.ts +0 -1
  236. package/dist/utils/shadowDom.d.ts +0 -30
  237. package/dist/vue.runtime.esm-bundler-CsdyQceJ.js +0 -6118
@@ -1,13 +0,0 @@
1
- import { ComputedRef } from 'vue';
2
- interface LinkComponent {
3
- props: Record<string, any>;
4
- }
5
- export declare const useLinkTagInsert: (component: ComputedRef<LinkComponent | undefined>, defaultField?: string) => {
6
- lastFocusedField: import('vue').Ref<string, string>;
7
- trackCursor: (field: string, event: Event) => void;
8
- handleTagInsert: ({ tag, default: fallback }: {
9
- tag: string;
10
- default?: string;
11
- }, inputRefs?: Record<string, any>) => void;
12
- };
13
- export {};
@@ -1,64 +0,0 @@
1
- /**
2
- * mergeTagDefinitions.ts
3
- * Shared utilities for merge tag resolution, detection, and export flattening.
4
- *
5
- * Used by:
6
- * - EmailBuilderCanvasComponent.vue (preview resolution)
7
- * - LinkTagTab.vue (auto-detection)
8
- * - MergeTagTab.vue (auto-detection)
9
- * - mergeTagMapper.ts (export transformation)
10
- * - Build / export pipeline (flattening)
11
- */
12
- /**
13
- * Extract all unique merge tag names from a string.
14
- * Safe to call on both rich-text HTML strings and plain strings.
15
- */
16
- export declare const extractMergeTags: (text: string) => string[];
17
- /**
18
- * Extract all unique merge tags along with their inline defaults.
19
- *
20
- * Returns a map of tagName → fallback (empty string when no default is
21
- * specified). When the same tag appears multiple times with different
22
- * defaults the first-seen default wins.
23
- *
24
- * Used by the export pipeline to carry fallback values through to
25
- * mergeTagMapper.transformToken().
26
- */
27
- export declare const extractMergeTagsWithDefaults: (text: string) => Map<string, string>;
28
- /**
29
- * Resolve merge tags in a plain string using the preview context.
30
- *
31
- * Resolution priority (mirrors RichTextEditor.vue buildPreviewHTML):
32
- * 1. Explicit value in context → "Philip"
33
- * 2. Inline default in tag syntax → {{ name|'Friend' }} → "Friend"
34
- * 3. Neither set → "{{ name }}" (visually unresolved)
35
- *
36
- * When previewActive is false the original string is returned unchanged,
37
- * so callers can bind this unconditionally without a v-if guard.
38
- */
39
- export declare const resolveString: (str: string, context: Record<string, string>, previewActive: boolean) => string;
40
- /**
41
- * Flatten a plain string for canonical storage — normalises {{ tag }} tokens
42
- * to a clean, consistent `{{ tag }}` format, stripping any accidental extras.
43
- *
44
- * For rich-text HTML (paragraph / heading) use flattenRichTextContent()
45
- * instead — that one handles span[data-merge] nodes produced by TipTap.
46
- */
47
- export declare const flattenPlainString: (str: string) => string;
48
- /**
49
- * Flatten TipTap-produced HTML into the canonical {{ tag }} / {{ tag|'default' }}
50
- * format for storage. Replaces every <span data-merge="name"> with {{ name }},
51
- * and preserves the data-merge-default attribute as the inline default so the
52
- * fallback survives the storage round-trip and reaches transformHTML() at
53
- * export time.
54
- *
55
- * Examples:
56
- * <span data-merge="name" data-merge-default="Tony">…</span> → {{ name|'Tony' }}
57
- * <span data-merge="name">…</span> → {{ name }}
58
- *
59
- * This is the STORAGE flattener — it produces canonical {{ }} tokens.
60
- * For ESP-specific export use mergeTagMapper.transformHTML() instead.
61
- *
62
- * Safe to call in SSR — uses a plain regex, no DOMParser.
63
- */
64
- export declare const flattenRichTextContent: (html: string) => string;
@@ -1,27 +0,0 @@
1
- /**
2
- * Substitutes every {{ tag }} placeholder found in `source` with the
3
- * corresponding value from `context`.
4
- *
5
- * Resolution order for each placeholder:
6
- * 1. Use the context value when the tag key is present and non-empty.
7
- * 2. Fall back to the pipe-default when defined: {{ tag|'Fallback' }}
8
- * 3. Leave the raw placeholder as-is so it stays visible in the output.
9
- *
10
- * @param source - The raw string that may contain {{ tag }} placeholders.
11
- * @param context - Key→value map built by the tab component (keys already
12
- * normalised with `normaliseKey`).
13
- * @param active - When false the function is a no-op and returns `source`
14
- * unchanged. Pass `mergeTagPreviewActive.value` /
15
- * `linkTagPreviewActive.value` directly.
16
- */
17
- export declare const resolveTags: (source: string, context: Record<string, string>, active: boolean) => string;
18
- /**
19
- * Convenience overload that accepts the full context object and both active
20
- * flags, applying merge tags first and link tags second.
21
- *
22
- * This ordering matters because merge tags appear inside rich-text HTML
23
- * (paragraph / heading content) while link tags typically live in href
24
- * attributes and anchor text — there is no semantic overlap, but doing
25
- * merge → link keeps the substitution deterministic.
26
- */
27
- export declare const resolveAllTags: (source: string, mergeContext: Record<string, string>, mergeActive: boolean, linkContext: Record<string, string>, linkActive: boolean) => string;
@@ -1,20 +0,0 @@
1
- import { Ref } from 'vue';
2
- export declare function useLayerHoverScroll(layerHoveredId: Ref<string | null>, options?: {
3
- canvasSelector?: string;
4
- behavior?: ScrollBehavior;
5
- delay?: number;
6
- /**
7
- * Margin (in px) from the viewport edges within which the target is
8
- * considered "comfortably visible" and no scroll is needed. Default 80 px
9
- * gives breathing room on both sides without being so generous that
10
- * elements land right against an edge.
11
- */
12
- inViewMargin?: number;
13
- /**
14
- * If the target is more than this many pixels from the current scroll
15
- * position, use instant jump instead of smooth scroll. Default 600 px
16
- * covers roughly half a typical viewport — anything farther than that
17
- * should teleport, not animate.
18
- */
19
- instantThreshold?: number;
20
- }): void;
@@ -1,85 +0,0 @@
1
- export type LayoutDragPayload = {
2
- type: "row";
3
- columns: number | number[];
4
- } | {
5
- type: "spacer";
6
- } | {
7
- type: "product-row";
8
- entryId: string;
9
- }
10
- /** Drop a nested row inside an existing column (child insertion) */
11
- | {
12
- type: "nested-row";
13
- columns: number | number[];
14
- targetColumnId: string;
15
- targetIndex: number;
16
- };
17
- type LayoutDragInstance = ReturnType<typeof createLayoutDragInstance>;
18
- /** Called once, at the EmailEditor root. */
19
- export declare function provideLayoutDrag(): {
20
- isLayoutDragActive: import('vue').Ref<boolean, boolean>;
21
- layoutDragPayload: import('vue').Ref<{
22
- type: "row";
23
- columns: number | number[];
24
- } | {
25
- type: "spacer";
26
- } | {
27
- type: "product-row";
28
- entryId: string;
29
- } | {
30
- type: "nested-row";
31
- columns: number | number[];
32
- targetColumnId: string;
33
- targetIndex: number;
34
- } | null, LayoutDragPayload | {
35
- type: "row";
36
- columns: number | number[];
37
- } | {
38
- type: "spacer";
39
- } | {
40
- type: "product-row";
41
- entryId: string;
42
- } | {
43
- type: "nested-row";
44
- columns: number | number[];
45
- targetColumnId: string;
46
- targetIndex: number;
47
- } | null>;
48
- startLayoutDrag: (e: DragEvent, payload: LayoutDragPayload) => void;
49
- endLayoutDrag: () => void;
50
- };
51
- /** Every other file calls this exactly as before. */
52
- export declare const useLayoutDrag: () => LayoutDragInstance;
53
- declare function createLayoutDragInstance(): {
54
- isLayoutDragActive: import('vue').Ref<boolean, boolean>;
55
- layoutDragPayload: import('vue').Ref<{
56
- type: "row";
57
- columns: number | number[];
58
- } | {
59
- type: "spacer";
60
- } | {
61
- type: "product-row";
62
- entryId: string;
63
- } | {
64
- type: "nested-row";
65
- columns: number | number[];
66
- targetColumnId: string;
67
- targetIndex: number;
68
- } | null, LayoutDragPayload | {
69
- type: "row";
70
- columns: number | number[];
71
- } | {
72
- type: "spacer";
73
- } | {
74
- type: "product-row";
75
- entryId: string;
76
- } | {
77
- type: "nested-row";
78
- columns: number | number[];
79
- targetColumnId: string;
80
- targetIndex: number;
81
- } | null>;
82
- startLayoutDrag: (e: DragEvent, payload: LayoutDragPayload) => void;
83
- endLayoutDrag: () => void;
84
- };
85
- export {};
@@ -1,6 +0,0 @@
1
- import { Editor } from '@tiptap/vue-3';
2
- export declare function useRichTextEditors(): {
3
- registerEditor: (id: string, editor: Editor) => void;
4
- unregisterEditor: (id: string) => void;
5
- editorFor: (id: string | null | undefined) => Editor | undefined;
6
- };
@@ -1,22 +0,0 @@
1
- export interface VisibilityLike {
2
- enabled?: boolean;
3
- rules?: {
4
- tag: string;
5
- operator: string;
6
- value: string;
7
- }[];
8
- groups?: {
9
- match: "all" | "any";
10
- rules: any[];
11
- }[];
12
- }
13
- /**
14
- * Returns true when the visibility config should show a badge.
15
- * A badge is shown when enabled AND has at least one flat rule OR one group.
16
- */
17
- export declare const isVisibilityActive: (vis: VisibilityLike | undefined | null) => boolean;
18
- /**
19
- * Returns the total number of rules across flat rules + all group rules.
20
- * Used as the count shown on the badge pill.
21
- */
22
- export declare const visibilityRuleCount: (vis: VisibilityLike | undefined | null) => number;
@@ -1,292 +0,0 @@
1
- import { useInfoDialog } from '../../ui/useInfoDialog';
2
- import { EditorStorageAdapter } from '../../../adapters/types';
3
- type EmailBuilderInstance = ReturnType<typeof createEmailBuilderInstance>;
4
- /** Called once, at the EmailEditor root. Do not call from any other file.
5
- * storageAdapterInstance/infoDialogInstance are the already-created
6
- * return values of provideStorageAdapter()/provideInfoDialog() — see the
7
- * comment on useEmailExportEngine's matching parameter for why these are
8
- * passed directly rather than re-injected internally. */
9
- export declare function provideEmailBuilder(storageAdapterInstance?: EditorStorageAdapter, infoDialogInstance?: ReturnType<typeof useInfoDialog>): {
10
- rows: import('vue').Ref<any[], any[]>;
11
- canvasStyles: import('vue').Ref<Record<string, any>, Record<string, any>>;
12
- templateTags: import('vue').Ref<any[], any[]>;
13
- savedTemplateName: import('vue').Ref<string | null, string | null>;
14
- previewMode: import('vue').Ref<string, string>;
15
- sidebarTab: import('vue').Ref<string, string>;
16
- selectedId: import('vue').Ref<string | null, string | null>;
17
- selectedRowId: import('vue').Ref<string | null, string | null>;
18
- selectedColumn: import('vue').Ref<{
19
- rowId: string;
20
- columnId: string;
21
- } | null, {
22
- rowId: string;
23
- columnId: string;
24
- } | {
25
- rowId: string;
26
- columnId: string;
27
- } | null>;
28
- visibilityPreviewContext: import('vue').Ref<Record<string, string>, Record<string, string>>;
29
- mergeTagInsertQueue: import('vue').Ref<{
30
- componentId: string;
31
- tagName: string;
32
- default: string;
33
- } | null, {
34
- componentId: string;
35
- tagName: string;
36
- default: string;
37
- } | {
38
- componentId: string;
39
- tagName: string;
40
- default: string;
41
- } | null>;
42
- triggerMergeTagInsert: (componentId: string, tagName: string, defaultValue?: string) => void;
43
- mergeTagPreviewContext: import('vue').Ref<Record<string, string>, Record<string, string>>;
44
- mergeTagPreviewActive: import('vue').Ref<boolean, boolean>;
45
- linkTagPreviewContext: import('vue').Ref<Record<string, string>, Record<string, string>>;
46
- linkTagPreviewActive: import('vue').Ref<boolean, boolean>;
47
- isBuilderReady: import('vue').Ref<boolean, boolean>;
48
- linksActive: import('vue').Ref<boolean, boolean>;
49
- espConfig: import('vue').Ref<{
50
- syntax: import('../export/transformers/espWrapper').ESPSyntax;
51
- }, {
52
- syntax: import('../export/transformers/espWrapper').ESPSyntax;
53
- } | {
54
- syntax: import('../export/transformers/espWrapper').ESPSyntax;
55
- }>;
56
- canvasHoveredId: import('vue').Ref<string | null, string | null>;
57
- nestedRowDragId: import('vue').Ref<string | null, string | null>;
58
- isRowDragActive: import('vue').Ref<boolean, boolean>;
59
- isTopLevelRowDragActive: import('vue').Ref<boolean, boolean>;
60
- layerHoveredId: import('vue').Ref<string | null, string | null>;
61
- addRow: (layout: number | number[], silent?: boolean) => void;
62
- addNestedRow: (parentRowId: any, columnId: string, layout: number | number[], insertIndex?: number) => void;
63
- findRow: (id: any) => any;
64
- deleteRow: (id: any) => void;
65
- moveRow: (rowId: any, direction: "up" | "down") => void;
66
- moveNestedRow: (rowId: any, targetRowId: any, targetColumnId: string | null, targetIndex: number) => void;
67
- reorderRows: (fromIndex: any, toIndex: any, silent?: boolean) => void;
68
- addSpacer: (silent?: boolean) => void;
69
- duplicateRow: (rowId: any) => void;
70
- duplicateRowSpacer: (spacerId: any) => void;
71
- addRowSilent: (layout: number | number[]) => void;
72
- addSpacerSilent: () => void;
73
- reorderRowsSilent: (from: number, to: number) => void;
74
- addComponent: (rowId: any, columnId: string, type: string) => void;
75
- addComponentAtIndex: (rowId: any, columnId: string, type: string, index: any) => void;
76
- deleteComponent: (id: any) => void;
77
- moveComponent: (componentId: any, direction: "up" | "down") => void;
78
- moveComponentBetweenColumns: (componentId: any, targetRowId: any, targetColumnId: string, targetIndex: any) => void;
79
- findComponent: (id: any) => any;
80
- updateComponent: (id: any, props: any) => void;
81
- duplicateComponent: (componentId: any) => void;
82
- exportHTML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => Promise<void>;
83
- getExportedHTML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => string | null;
84
- exportReactEmail: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => Promise<void>;
85
- getExportedReactEmail: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => string | null;
86
- exportMJML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => Promise<void>;
87
- getExportedMJML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => string | null;
88
- exportJSON: (templateNameParam?: string) => void;
89
- getExportedJSON: (templateNameParam?: string) => {
90
- template_id: string;
91
- template_name: string;
92
- canvas: Partial<import('../transform/pipeline/optimize').Canvas>;
93
- rows: Partial<import('../transform/pipeline/optimize').NestedRow | import('../transform/pipeline/optimize').RowSpacer>[];
94
- schema_version: string;
95
- } | null;
96
- importJSON: (file: File) => void;
97
- clearTemplate: () => void;
98
- undo: () => void;
99
- redo: () => void;
100
- canUndo: import('vue').ComputedRef<boolean>;
101
- canRedo: import('vue').ComputedRef<boolean>;
102
- historyStatus: import('vue').ComputedRef<string>;
103
- saveToHistory: (action?: string, immediate?: boolean) => void;
104
- saveToHistoryImmediate: (action: string) => void;
105
- initFromStorage: () => string | null;
106
- clearLocal: () => void;
107
- loadFromLocal: () => import('../persistence/useEmailBuilderPersistence').RestoredDraft | null;
108
- hasDraft: (templateId?: string) => boolean;
109
- saveStatus: import('vue').Ref<import('../persistence/useEmailBuilderPersistence').AutoSaveStatus, import('../persistence/useEmailBuilderPersistence').AutoSaveStatus>;
110
- lastSaved: import('vue').Ref<Date | null, Date | null>;
111
- initForCreate: () => void;
112
- startNewTemplate: () => void;
113
- loadTemplate: (template: {
114
- canvas: any;
115
- content: {
116
- rows: any[];
117
- };
118
- name?: string;
119
- tags?: any[];
120
- }, templateId: string, onReady?: () => void) => void;
121
- loadTemplateById: (id: string) => Promise<boolean>;
122
- saveTemplate: (payload: {
123
- rows: any[];
124
- canvasStyles: Record<string, any>;
125
- name?: string;
126
- tags?: string[];
127
- }) => Promise<string>;
128
- templateId: import('vue').Ref<string | null, string | null>;
129
- builderMode: import('vue').Ref<"view" | "create" | "edit", "view" | "create" | "edit">;
130
- loadVersionSnapshot: (snapshot: {
131
- canvas: any;
132
- content: {
133
- rows: any[];
134
- };
135
- }, historyAction?: string) => void;
136
- setJson: (data: any, opts?: {
137
- history?: "undoable" | "reset";
138
- }) => void;
139
- getSelection: () => {
140
- id: string;
141
- type: string | null;
142
- } | null;
143
- setSelection: (id: string | null) => boolean;
144
- onChange: (cb: () => void) => (() => void);
145
- };
146
- /**
147
- * Every file that isn't the root calls this exactly as before —
148
- * destructuring rows/selectedId/exportHTML/etc. Same signature, same
149
- * return shape. Throws a clear error instead of silently returning
150
- * undefined if something tries to use it outside an EmailEditor tree,
151
- * which is a much easier bug to find than "canvasStyles is undefined"
152
- * three files away.
153
- */
154
- export declare const useEmailBuilder: () => EmailBuilderInstance;
155
- declare function createEmailBuilderInstance(storageAdapterInstance?: EditorStorageAdapter, infoDialogInstance?: ReturnType<typeof useInfoDialog>): {
156
- rows: import('vue').Ref<any[], any[]>;
157
- canvasStyles: import('vue').Ref<Record<string, any>, Record<string, any>>;
158
- templateTags: import('vue').Ref<any[], any[]>;
159
- savedTemplateName: import('vue').Ref<string | null, string | null>;
160
- previewMode: import('vue').Ref<string, string>;
161
- sidebarTab: import('vue').Ref<string, string>;
162
- selectedId: import('vue').Ref<string | null, string | null>;
163
- selectedRowId: import('vue').Ref<string | null, string | null>;
164
- selectedColumn: import('vue').Ref<{
165
- rowId: string;
166
- columnId: string;
167
- } | null, {
168
- rowId: string;
169
- columnId: string;
170
- } | {
171
- rowId: string;
172
- columnId: string;
173
- } | null>;
174
- visibilityPreviewContext: import('vue').Ref<Record<string, string>, Record<string, string>>;
175
- mergeTagInsertQueue: import('vue').Ref<{
176
- componentId: string;
177
- tagName: string;
178
- default: string;
179
- } | null, {
180
- componentId: string;
181
- tagName: string;
182
- default: string;
183
- } | {
184
- componentId: string;
185
- tagName: string;
186
- default: string;
187
- } | null>;
188
- triggerMergeTagInsert: (componentId: string, tagName: string, defaultValue?: string) => void;
189
- mergeTagPreviewContext: import('vue').Ref<Record<string, string>, Record<string, string>>;
190
- mergeTagPreviewActive: import('vue').Ref<boolean, boolean>;
191
- linkTagPreviewContext: import('vue').Ref<Record<string, string>, Record<string, string>>;
192
- linkTagPreviewActive: import('vue').Ref<boolean, boolean>;
193
- isBuilderReady: import('vue').Ref<boolean, boolean>;
194
- linksActive: import('vue').Ref<boolean, boolean>;
195
- espConfig: import('vue').Ref<{
196
- syntax: import('../export/transformers/espWrapper').ESPSyntax;
197
- }, {
198
- syntax: import('../export/transformers/espWrapper').ESPSyntax;
199
- } | {
200
- syntax: import('../export/transformers/espWrapper').ESPSyntax;
201
- }>;
202
- canvasHoveredId: import('vue').Ref<string | null, string | null>;
203
- nestedRowDragId: import('vue').Ref<string | null, string | null>;
204
- isRowDragActive: import('vue').Ref<boolean, boolean>;
205
- isTopLevelRowDragActive: import('vue').Ref<boolean, boolean>;
206
- layerHoveredId: import('vue').Ref<string | null, string | null>;
207
- addRow: (layout: number | number[], silent?: boolean) => void;
208
- addNestedRow: (parentRowId: any, columnId: string, layout: number | number[], insertIndex?: number) => void;
209
- findRow: (id: any) => any;
210
- deleteRow: (id: any) => void;
211
- moveRow: (rowId: any, direction: "up" | "down") => void;
212
- moveNestedRow: (rowId: any, targetRowId: any, targetColumnId: string | null, targetIndex: number) => void;
213
- reorderRows: (fromIndex: any, toIndex: any, silent?: boolean) => void;
214
- addSpacer: (silent?: boolean) => void;
215
- duplicateRow: (rowId: any) => void;
216
- duplicateRowSpacer: (spacerId: any) => void;
217
- addRowSilent: (layout: number | number[]) => void;
218
- addSpacerSilent: () => void;
219
- reorderRowsSilent: (from: number, to: number) => void;
220
- addComponent: (rowId: any, columnId: string, type: string) => void;
221
- addComponentAtIndex: (rowId: any, columnId: string, type: string, index: any) => void;
222
- deleteComponent: (id: any) => void;
223
- moveComponent: (componentId: any, direction: "up" | "down") => void;
224
- moveComponentBetweenColumns: (componentId: any, targetRowId: any, targetColumnId: string, targetIndex: any) => void;
225
- findComponent: (id: any) => any;
226
- updateComponent: (id: any, props: any) => void;
227
- duplicateComponent: (componentId: any) => void;
228
- exportHTML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => Promise<void>;
229
- getExportedHTML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => string | null;
230
- exportReactEmail: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => Promise<void>;
231
- getExportedReactEmail: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => string | null;
232
- exportMJML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => Promise<void>;
233
- getExportedMJML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => string | null;
234
- exportJSON: (templateNameParam?: string) => void;
235
- getExportedJSON: (templateNameParam?: string) => {
236
- template_id: string;
237
- template_name: string;
238
- canvas: Partial<import('../transform/pipeline/optimize').Canvas>;
239
- rows: Partial<import('../transform/pipeline/optimize').NestedRow | import('../transform/pipeline/optimize').RowSpacer>[];
240
- schema_version: string;
241
- } | null;
242
- importJSON: (file: File) => void;
243
- clearTemplate: () => void;
244
- undo: () => void;
245
- redo: () => void;
246
- canUndo: import('vue').ComputedRef<boolean>;
247
- canRedo: import('vue').ComputedRef<boolean>;
248
- historyStatus: import('vue').ComputedRef<string>;
249
- saveToHistory: (action?: string, immediate?: boolean) => void;
250
- saveToHistoryImmediate: (action: string) => void;
251
- initFromStorage: () => string | null;
252
- clearLocal: () => void;
253
- loadFromLocal: () => import('../persistence/useEmailBuilderPersistence').RestoredDraft | null;
254
- hasDraft: (templateId?: string) => boolean;
255
- saveStatus: import('vue').Ref<import('../persistence/useEmailBuilderPersistence').AutoSaveStatus, import('../persistence/useEmailBuilderPersistence').AutoSaveStatus>;
256
- lastSaved: import('vue').Ref<Date | null, Date | null>;
257
- initForCreate: () => void;
258
- startNewTemplate: () => void;
259
- loadTemplate: (template: {
260
- canvas: any;
261
- content: {
262
- rows: any[];
263
- };
264
- name?: string;
265
- tags?: any[];
266
- }, templateId: string, onReady?: () => void) => void;
267
- loadTemplateById: (id: string) => Promise<boolean>;
268
- saveTemplate: (payload: {
269
- rows: any[];
270
- canvasStyles: Record<string, any>;
271
- name?: string;
272
- tags?: string[];
273
- }) => Promise<string>;
274
- templateId: import('vue').Ref<string | null, string | null>;
275
- builderMode: import('vue').Ref<"view" | "create" | "edit", "view" | "create" | "edit">;
276
- loadVersionSnapshot: (snapshot: {
277
- canvas: any;
278
- content: {
279
- rows: any[];
280
- };
281
- }, historyAction?: string) => void;
282
- setJson: (data: any, opts?: {
283
- history?: "undoable" | "reset";
284
- }) => void;
285
- getSelection: () => {
286
- id: string;
287
- type: string | null;
288
- } | null;
289
- setSelection: (id: string | null) => boolean;
290
- onChange: (cb: () => void) => (() => void);
291
- };
292
- export {};