@maildeno/editor 0.1.3 → 0.4.2

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 (169) hide show
  1. package/CHANGELOG.md +258 -0
  2. package/README.md +397 -381
  3. package/dist/RowPreviewChildren-DT0y0lKC.js +4 -0
  4. package/dist/RowPreviewChildren-OsbF7_vu.js +4 -0
  5. package/dist/RowPreviewLegacyComponent-BV4b5bHQ.js +487 -0
  6. package/dist/RowPreviewLegacyComponent-C08MGJVT.js +487 -0
  7. package/dist/RowPreviewRow-ByxeBYV8.js +112 -0
  8. package/dist/RowPreviewRow-N-hh5l_H.js +112 -0
  9. package/dist/adapters/errors.d.ts +59 -0
  10. package/dist/adapters/index.d.ts +31 -0
  11. package/dist/adapters/types.d.ts +68 -0
  12. package/dist/brand.d.ts +15 -0
  13. package/dist/components/DesktopOnlyNotice.vue.d.ts +20 -0
  14. package/dist/components/features/emailBuilder/EmailEditor.vue.d.ts +182 -0
  15. package/dist/components/features/emailBuilder/assistant/AssistantPanel.vue.d.ts +37 -0
  16. package/dist/components/features/emailBuilder/blocks/AnchorBlock.vue.d.ts +3 -0
  17. package/dist/components/features/emailBuilder/blocks/ButtonBlock.vue.d.ts +3 -0
  18. package/dist/components/features/emailBuilder/blocks/DividerBlock.vue.d.ts +3 -0
  19. package/dist/components/features/emailBuilder/blocks/HeadingBlock.vue.d.ts +3 -0
  20. package/dist/components/features/emailBuilder/blocks/ImageBlock.vue.d.ts +3 -0
  21. package/dist/components/features/emailBuilder/blocks/ListBlock.vue.d.ts +3 -0
  22. package/dist/components/features/emailBuilder/blocks/MenuBlock.vue.d.ts +3 -0
  23. package/dist/components/features/emailBuilder/blocks/ParagraphBlock.vue.d.ts +3 -0
  24. package/dist/components/features/emailBuilder/blocks/SocialsBlock.vue.d.ts +3 -0
  25. package/dist/components/features/emailBuilder/blocks/SpacerBlock.vue.d.ts +3 -0
  26. package/dist/components/features/emailBuilder/blocks/VideoBlock.vue.d.ts +3 -0
  27. package/dist/components/features/emailBuilder/canvas/Canvas.vue.d.ts +3 -0
  28. package/dist/components/features/emailBuilder/canvas/CanvasColumn.vue.d.ts +49 -0
  29. package/dist/components/features/emailBuilder/canvas/CanvasComponent.vue.d.ts +56 -0
  30. package/dist/components/features/emailBuilder/canvas/CanvasElement.vue.d.ts +21 -0
  31. package/dist/components/features/emailBuilder/canvas/CanvasRow.vue.d.ts +49 -0
  32. package/dist/components/features/emailBuilder/canvas/CanvasRowSpacer.vue.d.ts +40 -0
  33. package/dist/components/features/emailBuilder/health/HealthIndicator.vue.d.ts +3 -0
  34. package/dist/components/features/emailBuilder/layout/Header.vue.d.ts +54 -0
  35. package/dist/components/features/emailBuilder/layout/SendEmail.vue.d.ts +21 -0
  36. package/dist/components/features/emailBuilder/layout/SidebarLeft.vue.d.ts +3 -0
  37. package/dist/components/features/emailBuilder/layout/SidebarRight.vue.d.ts +3 -0
  38. package/dist/components/features/emailBuilder/panels/AnchorPanel.vue.d.ts +3 -0
  39. package/dist/components/features/emailBuilder/panels/ButtonPanel.vue.d.ts +3 -0
  40. package/dist/components/features/emailBuilder/panels/DividerPanel.vue.d.ts +3 -0
  41. package/dist/components/features/emailBuilder/panels/HeadingPanel.vue.d.ts +3 -0
  42. package/dist/components/features/emailBuilder/panels/ImagePanel.vue.d.ts +3 -0
  43. package/dist/components/features/emailBuilder/panels/ListPanel.vue.d.ts +3 -0
  44. package/dist/components/features/emailBuilder/panels/MenuPanel.vue.d.ts +3 -0
  45. package/dist/components/features/emailBuilder/panels/ParagraphPanel.vue.d.ts +3 -0
  46. package/dist/components/features/emailBuilder/panels/RowColumnPanel.vue.d.ts +13 -0
  47. package/dist/components/features/emailBuilder/panels/RowPanel.vue.d.ts +13 -0
  48. package/dist/components/features/emailBuilder/panels/RowSpacerPanel.vue.d.ts +13 -0
  49. package/dist/components/features/emailBuilder/panels/SocialsPanel.vue.d.ts +3 -0
  50. package/dist/components/features/emailBuilder/panels/SpacerPanel.vue.d.ts +3 -0
  51. package/dist/components/features/emailBuilder/panels/VideoPanel.vue.d.ts +3 -0
  52. package/dist/components/features/emailBuilder/panels/shared/DeviceTabs.vue.d.ts +19 -0
  53. package/dist/components/features/emailBuilder/panels/shared/LinkFieldMergeTags.vue.d.ts +31 -0
  54. package/dist/components/features/emailBuilder/panels/shared/OverrideBadge.vue.d.ts +9 -0
  55. package/dist/components/features/emailBuilder/panels/shared/PreviewBadge.vue.d.ts +11 -0
  56. package/dist/components/features/emailBuilder/panels/shared/TextFieldMergeTags.vue.d.ts +25 -0
  57. package/dist/components/features/emailBuilder/panels/ui/BoxStylingSection.vue.d.ts +7 -0
  58. package/dist/components/features/emailBuilder/panels/ui/PropertyAlignment.vue.d.ts +30 -0
  59. package/dist/components/features/emailBuilder/panels/ui/PropertyColor.vue.d.ts +75 -0
  60. package/dist/components/features/emailBuilder/panels/ui/PropertyGradientColor.vue.d.ts +27 -0
  61. package/dist/components/features/emailBuilder/panels/ui/PropertyNumberSlider.vue.d.ts +74 -0
  62. package/dist/components/features/emailBuilder/panels/ui/PropertySection.vue.d.ts +17 -0
  63. package/dist/components/features/emailBuilder/panels/ui/PropertySelect.vue.d.ts +74 -0
  64. package/dist/components/features/emailBuilder/panels/ui/PropertyTextStyle.vue.d.ts +52 -0
  65. package/dist/components/features/emailBuilder/panels/ui/PropertyTextStylePanel.vue.d.ts +72 -0
  66. package/dist/components/features/emailBuilder/panels/ui/PropertyToggle.vue.d.ts +45 -0
  67. package/dist/components/features/emailBuilder/panels/ui/PropertyVisibility.vue.d.ts +32 -0
  68. package/dist/components/features/emailBuilder/panels/ui/SpacingControl.vue.d.ts +19 -0
  69. package/dist/components/features/emailBuilder/panels/ui/color-picker/AlphaSlider.vue.d.ts +28 -0
  70. package/dist/components/features/emailBuilder/panels/ui/color-picker/ColorPickerPanel.vue.d.ts +31 -0
  71. package/dist/components/features/emailBuilder/panels/ui/color-picker/HueSlider.vue.d.ts +19 -0
  72. package/dist/components/features/emailBuilder/panels/ui/color-picker/RecentColors.vue.d.ts +20 -0
  73. package/dist/components/features/emailBuilder/panels/ui/color-picker/SVPanel.vue.d.ts +39 -0
  74. package/dist/components/features/emailBuilder/panels/ui/visibility-rule/Rule.vue.d.ts +28 -0
  75. package/dist/components/features/emailBuilder/preview/PreviewScreen.vue.d.ts +7 -0
  76. package/dist/components/features/emailBuilder/preview/ui/PreviewCanvas.vue.d.ts +10 -0
  77. package/dist/components/features/emailBuilder/preview/ui/PreviewCapabilityBadges.vue.d.ts +12 -0
  78. package/dist/components/features/emailBuilder/preview/ui/PreviewClientCard.vue.d.ts +20 -0
  79. package/dist/components/features/emailBuilder/preview/ui/PreviewClientList.vue.d.ts +21 -0
  80. package/dist/components/features/emailBuilder/preview/ui/PreviewClientPicker.vue.d.ts +16 -0
  81. package/dist/components/features/emailBuilder/preview/ui/PreviewComponent.vue.d.ts +10 -0
  82. package/dist/components/features/emailBuilder/preview/ui/PreviewDetailView.vue.d.ts +41 -0
  83. package/dist/components/features/emailBuilder/preview/ui/PreviewRendered.vue.d.ts +8 -0
  84. package/dist/components/features/emailBuilder/product/RowPreview.vue.d.ts +8 -0
  85. package/dist/components/features/emailBuilder/product/RowPreviewChildren.vue.d.ts +14 -0
  86. package/dist/components/features/emailBuilder/product/RowPreviewLegacyComponent.vue.d.ts +14 -0
  87. package/dist/components/features/emailBuilder/product/RowPreviewRow.vue.d.ts +9 -0
  88. package/dist/components/features/emailBuilder/product/SavedRowsPanel.vue.d.ts +3 -0
  89. package/dist/components/features/emailBuilder/product/SavedTemplatesPanel.vue.d.ts +13 -0
  90. package/dist/components/features/emailBuilder/product/VersionHistoryPanel.vue.d.ts +14 -0
  91. package/dist/components/features/emailBuilder/sidebar/SidebarBlockButton.vue.d.ts +35 -0
  92. package/dist/components/features/emailBuilder/tabs/GeneralTab.vue.d.ts +3 -0
  93. package/dist/components/features/emailBuilder/tabs/LayoutTab.vue.d.ts +3 -0
  94. package/dist/components/features/emailBuilder/tabs/content/ContentTab.vue.d.ts +3 -0
  95. package/dist/components/features/emailBuilder/tabs/content/LayersPanel.vue.d.ts +7 -0
  96. package/dist/components/features/emailBuilder/tabs/general/MergeTagsTab.vue.d.ts +3 -0
  97. package/dist/components/features/emailBuilder/tabs/general/StylesTab.vue.d.ts +3 -0
  98. package/dist/components/features/emailBuilder/tabs/general/VisibilityTab.vue.d.ts +3 -0
  99. package/dist/components/features/emailBuilder/tabs/general/VisibilityWrapESPTab.vue.d.ts +3 -0
  100. package/dist/components/features/emailBuilder/tabs/general/merge-tags/LinkTagTab.vue.d.ts +3 -0
  101. package/dist/components/features/emailBuilder/tabs/general/merge-tags/MergeTagTab.vue.d.ts +3 -0
  102. package/dist/components/features/emailBuilder/ui/LinkInputDialog.vue.d.ts +17 -0
  103. package/dist/components/features/emailBuilder/ui/canvas/CanvasRowDropZone.vue.d.ts +12 -0
  104. package/dist/components/features/emailBuilder/ui/canvas/DropZone.vue.d.ts +10 -0
  105. package/dist/components/features/emailBuilder/ui/canvas/Loader.vue.d.ts +19 -0
  106. package/dist/components/features/emailBuilder/ui/layers-panel/ComponentIcon.vue.d.ts +7 -0
  107. package/dist/components/features/emailBuilder/ui/layers-panel/LayerColumnChildren.vue.d.ts +42 -0
  108. package/dist/components/features/emailBuilder/ui/layers-panel/LayerDropLine.vue.d.ts +8 -0
  109. package/dist/components/features/emailBuilder/ui/renderers/AnchorRenderer.vue.d.ts +10 -0
  110. package/dist/components/features/emailBuilder/ui/renderers/DividerRenderer.vue.d.ts +10 -0
  111. package/dist/components/features/emailBuilder/ui/renderers/HeadingRenderer.vue.d.ts +10 -0
  112. package/dist/components/features/emailBuilder/ui/renderers/ImageRenderer.vue.d.ts +10 -0
  113. package/dist/components/features/emailBuilder/ui/renderers/ListRenderer.vue.d.ts +10 -0
  114. package/dist/components/features/emailBuilder/ui/renderers/MenuRenderer.vue.d.ts +10 -0
  115. package/dist/components/features/emailBuilder/ui/renderers/ParagraphRenderer.vue.d.ts +10 -0
  116. package/dist/components/features/emailBuilder/ui/renderers/SocialsRenderer.vue.d.ts +10 -0
  117. package/dist/components/features/emailBuilder/ui/renderers/SpacerRenderer.vue.d.ts +10 -0
  118. package/dist/components/features/emailBuilder/ui/renderers/VideoRenderer.vue.d.ts +10 -0
  119. package/dist/components/features/emailBuilder/ui/rich-text-editor/RichTextEditor.vue.d.ts +12 -0
  120. package/dist/components/features/emailBuilder/ui/rich-text-editor/pickers/MergeTagPicker.vue.d.ts +18 -0
  121. package/dist/components/features/emailBuilder/ui/rich-text-editor/pickers/RichTextColorPicker.vue.d.ts +15 -0
  122. package/dist/components/features/emailBuilder/ui/visibility/SupportBadge.vue.d.ts +10 -0
  123. package/dist/components/features/emailBuilder/ui/visibility/VisibilityPopover.vue.d.ts +45 -0
  124. package/dist/components/ui/ConfirmDialog.vue.d.ts +3 -0
  125. package/dist/components/ui/Icon.vue.d.ts +33 -0
  126. package/dist/components/ui/InfoDialog.vue.d.ts +12 -0
  127. package/dist/components/ui/Loading.vue.d.ts +6 -0
  128. package/dist/components/ui/ShadowSafeToast.vue.d.ts +3 -0
  129. package/dist/components/ui/primitives/Button.vue.d.ts +23 -0
  130. package/dist/components/ui/primitives/DatePicker.vue.d.ts +16 -0
  131. package/dist/components/ui/primitives/Dialog.vue.d.ts +34 -0
  132. package/dist/components/ui/primitives/InputText.vue.d.ts +29 -0
  133. package/dist/components/ui/primitives/Message.vue.d.ts +20 -0
  134. package/dist/components/ui/primitives/Select.vue.d.ts +22 -0
  135. package/dist/composables/emailBuilder/components/useSystemRows.d.ts +22 -0
  136. package/dist/composables/emailBuilder/core/ui/useLayerHoverScroll.d.ts +10 -10
  137. package/dist/composables/emailBuilder/core/useEmailBuilder.d.ts +18 -0
  138. package/dist/composables/emailBuilder/export/logic/espLogicWrapper.d.ts +4 -4
  139. package/dist/composables/emailBuilder/export/targets/templateSnapshot.d.ts +24 -0
  140. package/dist/composables/emailBuilder/persistence/useEmailBuilderPersistence.d.ts +1 -1
  141. package/dist/composables/system/useColorScheme.d.ts +16 -0
  142. package/dist/editor.css +1072 -682
  143. package/dist/element-C2ZH0Z_i.js +86561 -0
  144. package/dist/element-scoped-styles.css +1072 -682
  145. package/dist/element.d.ts +1 -1
  146. package/dist/element.js +5 -2
  147. package/dist/estree-DBJlF9un.js +4876 -0
  148. package/dist/html-3PMDtB0V.js +3123 -0
  149. package/dist/index-DhFg3uKs.js +75864 -0
  150. package/dist/index.d.ts +4 -2
  151. package/dist/index.js +16 -67053
  152. package/dist/init.d.ts +95 -2
  153. package/dist/init.js +166 -122
  154. package/dist/standalone-DKWMQftY.js +2391 -0
  155. package/dist/theme.d.ts +68 -17
  156. package/dist/types/assistant.d.ts +56 -0
  157. package/dist/typescript-l6-4tT8s.js +13240 -0
  158. package/package.json +6 -3
  159. package/dist/RowPreviewLegacyComponent-CXsY4P-R.js +0 -439
  160. package/dist/RowPreviewLegacyComponent-yjHSkZLz.js +0 -439
  161. package/dist/RowPreviewRow-CBfAnQ6o.js +0 -107
  162. package/dist/RowPreviewRow-CeowK6Q_.js +0 -107
  163. package/dist/composables/emailBuilder/transform/pipeline/optimizeAI.d.ts +0 -125
  164. package/dist/element-CMhqxYnE.js +0 -67099
  165. package/dist/estree-B67dfAo1.js +0 -7989
  166. package/dist/html-DGrfikay.js +0 -7353
  167. package/dist/standalone-Bd2oQFm3.js +0 -3639
  168. package/dist/typescript-C_Ru9PRN.js +0 -23184
  169. package/dist/vue.runtime.esm-bundler-CfYyFhW6.js +0 -9097
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Every icon in the editor, as hardcoded inline SVG. Zero dependencies —
3
+ * no icon font, no `@font-face`, and no package to keep in sync.
4
+ *
5
+ * Two deliberate design choices:
6
+ *
7
+ * 1. **Sized at 1em, not fixed px.** Callers size icons with `font-size`
8
+ * (~15 places use `style="font-size: 9px"` and similar). Rendering at
9
+ * 1em means those work unchanged, and `currentColor` inherits text
10
+ * colour the same way.
11
+ *
12
+ * 2. **Short, stable names** (`plus`, `times`, `exclamation-triangle`),
13
+ * used as the `name` prop.
14
+ *
15
+ * Inline SVG also avoids a real bug class: `@font-face` is a
16
+ * document-scoped at-rule that browsers ignore inside a shadow root, so
17
+ * icon fonts render blank in the custom-element build unless separately
18
+ * hoisted into the document. SVG works identically in both.
19
+ *
20
+ * Paths follow the Lucide geometry (24x24 viewBox, 2px round-capped
21
+ * strokes, ISC licensed).
22
+ */
23
+ type __VLS_Props = {
24
+ /** Icon name — see the ICONS map below for the full set. */
25
+ name: string;
26
+ /** Overrides the default 2px stroke — useful for very small sizes. */
27
+ strokeWidth?: number | string;
28
+ };
29
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
30
+ strokeWidth: number | string;
31
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
32
+ declare const _default: typeof __VLS_export;
33
+ export default _default;
@@ -0,0 +1,12 @@
1
+ type __VLS_Props = {
2
+ visible: boolean;
3
+ header?: string;
4
+ message: string;
5
+ };
6
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
7
+ "update:visible": (...args: any[]) => void;
8
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:visible"?: ((...args: any[]) => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,6 @@
1
+ interface Props {
2
+ message?: string;
3
+ }
4
+ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
5
+ declare const _default: typeof __VLS_export;
6
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,23 @@
1
+ type __VLS_Props = {
2
+ label?: string;
3
+ severity?: "primary" | "secondary" | "danger" | "success";
4
+ disabled?: boolean;
5
+ loading?: boolean;
6
+ };
7
+ declare var __VLS_6: {};
8
+ type __VLS_Slots = {} & {
9
+ default?: (props: typeof __VLS_6) => any;
10
+ };
11
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
12
+ disabled: boolean;
13
+ severity: "primary" | "secondary" | "danger" | "success";
14
+ loading: boolean;
15
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
16
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
17
+ declare const _default: typeof __VLS_export;
18
+ export default _default;
19
+ type __VLS_WithSlots<T, S> = T & {
20
+ new (): {
21
+ $slots: S;
22
+ };
23
+ };
@@ -0,0 +1,16 @@
1
+ type __VLS_Props = {
2
+ modelValue?: Date | string | null;
3
+ placeholder?: string;
4
+ disabled?: boolean;
5
+ };
6
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
7
+ "update:modelValue": (value: Date | null) => any;
8
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:modelValue"?: ((value: Date | null) => any) | undefined;
10
+ }>, {
11
+ modelValue: Date | string | null;
12
+ disabled: boolean;
13
+ placeholder: string;
14
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
15
+ declare const _default: typeof __VLS_export;
16
+ export default _default;
@@ -0,0 +1,34 @@
1
+ type __VLS_Props = {
2
+ visible?: boolean;
3
+ header?: string;
4
+ closable?: boolean;
5
+ /** Accepted for API compatibility; not implemented. */
6
+ draggable?: boolean;
7
+ /** Announced by screen readers when there is no visible header. */
8
+ ariaLabel?: string;
9
+ /** Accepted for API compatibility; this dialog is always modal. */
10
+ modal?: boolean;
11
+ };
12
+ declare var __VLS_12: {}, __VLS_14: {};
13
+ type __VLS_Slots = {} & {
14
+ default?: (props: typeof __VLS_12) => any;
15
+ } & {
16
+ footer?: (props: typeof __VLS_14) => any;
17
+ };
18
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
19
+ "update:visible": (value: boolean) => any;
20
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
21
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
22
+ }>, {
23
+ visible: boolean;
24
+ draggable: boolean;
25
+ closable: boolean;
26
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
27
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
28
+ declare const _default: typeof __VLS_export;
29
+ export default _default;
30
+ type __VLS_WithSlots<T, S> = T & {
31
+ new (): {
32
+ $slots: S;
33
+ };
34
+ };
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Text input.
3
+ *
4
+ * defineExpose is deliberate: several call sites do
5
+ * `inputRef.value?.focus()` / `.select()` directly on the component ref,
6
+ * so those methods are exposed explicitly as a real, typed contract
7
+ * rather than relying on internals.
8
+ */
9
+ type __VLS_Props = {
10
+ modelValue?: string | number | null;
11
+ invalid?: boolean;
12
+ disabled?: boolean;
13
+ };
14
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {
15
+ focus: () => void | undefined;
16
+ select: () => void | undefined;
17
+ blur: () => void | undefined;
18
+ readonly input: HTMLInputElement | null;
19
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
20
+ "update:modelValue": (value: string) => any;
21
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
22
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
23
+ }>, {
24
+ invalid: boolean;
25
+ modelValue: string | number | null;
26
+ disabled: boolean;
27
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
28
+ declare const _default: typeof __VLS_export;
29
+ export default _default;
@@ -0,0 +1,20 @@
1
+ type __VLS_Props = {
2
+ severity?: "info" | "success" | "warn" | "error";
3
+ closable?: boolean;
4
+ };
5
+ declare var __VLS_6: {};
6
+ type __VLS_Slots = {} & {
7
+ default?: (props: typeof __VLS_6) => any;
8
+ };
9
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
10
+ severity: "info" | "success" | "warn" | "error";
11
+ closable: boolean;
12
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
13
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
14
+ declare const _default: typeof __VLS_export;
15
+ export default _default;
16
+ type __VLS_WithSlots<T, S> = T & {
17
+ new (): {
18
+ $slots: S;
19
+ };
20
+ };
@@ -0,0 +1,22 @@
1
+ type __VLS_Props = {
2
+ modelValue?: unknown;
3
+ options?: any[];
4
+ optionLabel?: string | null;
5
+ optionValue?: string | null;
6
+ placeholder?: string;
7
+ disabled?: boolean;
8
+ filter?: boolean;
9
+ filterPlaceholder?: string;
10
+ };
11
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
12
+ "update:modelValue": (value: unknown) => any;
13
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
14
+ "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
15
+ }>, {
16
+ filter: boolean;
17
+ disabled: boolean;
18
+ options: any[];
19
+ placeholder: string;
20
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
@@ -0,0 +1,22 @@
1
+ import { SavedRow, EditorStorageAdapter } from '../../../adapters/types';
2
+ declare function createSystemRowsInstance(storageAdapterInstance?: EditorStorageAdapter): {
3
+ systemRows: import('vue').Ref<{
4
+ id: string;
5
+ name: string;
6
+ createdAt: string;
7
+ row: Record<string, any>;
8
+ }[], SavedRow[] | {
9
+ id: string;
10
+ name: string;
11
+ createdAt: string;
12
+ row: Record<string, any>;
13
+ }[]>;
14
+ isFetching: import('vue').Ref<boolean, boolean>;
15
+ isSupported: import('vue').Ref<boolean, boolean>;
16
+ fetchRows: () => Promise<void>;
17
+ cloneRowForCanvas: (entryId: string) => Record<string, any> | null;
18
+ };
19
+ export type SystemRowsInstance = ReturnType<typeof createSystemRowsInstance>;
20
+ export declare function provideSystemRows(storageAdapterInstance?: EditorStorageAdapter): SystemRowsInstance;
21
+ export declare function useSystemRows(): SystemRowsInstance;
22
+ export {};
@@ -4,17 +4,17 @@ export declare function useLayerHoverScroll(layerHoveredId: Ref<string | null>,
4
4
  behavior?: ScrollBehavior;
5
5
  delay?: number;
6
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
- */
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
12
  inViewMargin?: number;
13
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
- */
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
19
  instantThreshold?: number;
20
20
  }): void;
@@ -132,7 +132,16 @@ export declare function provideEmailBuilder(storageAdapterInstance?: EditorStora
132
132
  content: {
133
133
  rows: any[];
134
134
  };
135
+ }, historyAction?: string) => void;
136
+ setJson: (data: any, opts?: {
137
+ history?: "undoable" | "reset";
135
138
  }) => void;
139
+ getSelection: () => {
140
+ id: string;
141
+ type: string | null;
142
+ } | null;
143
+ setSelection: (id: string | null) => boolean;
144
+ onChange: (cb: () => void) => (() => void);
136
145
  };
137
146
  /**
138
147
  * Every file that isn't the root calls this exactly as before —
@@ -269,6 +278,15 @@ declare function createEmailBuilderInstance(storageAdapterInstance?: EditorStora
269
278
  content: {
270
279
  rows: any[];
271
280
  };
281
+ }, historyAction?: string) => void;
282
+ setJson: (data: any, opts?: {
283
+ history?: "undoable" | "reset";
272
284
  }) => void;
285
+ getSelection: () => {
286
+ id: string;
287
+ type: string | null;
288
+ } | null;
289
+ setSelection: (id: string | null) => boolean;
290
+ onChange: (cb: () => void) => (() => void);
273
291
  };
274
292
  export {};
@@ -6,10 +6,10 @@ export interface ESPSyntaxMeta {
6
6
  description: string;
7
7
  docsUrl?: string;
8
8
  /**
9
- * Whether this ESP supports boolean nesting / parenthesised sub-expressions.
10
- * When false, buildFullExpression flattens all rules to a single level and
11
- * the UI should warn the user that nested groups are not supported.
12
- */
9
+ * Whether this ESP supports boolean nesting / parenthesised sub-expressions.
10
+ * When false, buildFullExpression flattens all rules to a single level and
11
+ * the UI should warn the user that nested groups are not supported.
12
+ */
13
13
  supportsNesting: boolean;
14
14
  }
15
15
  export declare const ESP_SYNTAX_META: Record<KnownESPSyntax, ESPSyntaxMeta>;
@@ -0,0 +1,24 @@
1
+ export declare const CURRENT_SCHEMA_VERSION = "1.0";
2
+ /**
3
+ * The canonical snapshot shape — exactly what `getJson()` returns, which is
4
+ * what makes `setJson(getJson())` a lossless round-trip.
5
+ */
6
+ export interface TemplateSnapshotJson {
7
+ template_id: string;
8
+ template_name: string;
9
+ canvas: any;
10
+ rows: any[];
11
+ schema_version: string;
12
+ }
13
+ export declare const toTemplateId: (name: string) => string;
14
+ /**
15
+ * Normalizes any recognized template shape onto the current one.
16
+ *
17
+ * Throws with a specific message rather than returning null: callers surface
18
+ * `error.message` directly to the user, and "Unrecognized template file
19
+ * format" is more use than a silent failure. The major-version guard is the
20
+ * one case worth failing loudly on — a newer schema may contain block types
21
+ * this build cannot render, and silently dropping them would corrupt the
22
+ * user's design on the next save.
23
+ */
24
+ export declare function normalizeTemplateSnapshot(data: any): TemplateSnapshotJson;
@@ -20,7 +20,7 @@ export interface RestoredDraft {
20
20
  canvas: Record<string, any>;
21
21
  updatedAt: string;
22
22
  /** Reflects the templateId stored in the payload — use this to verify the
23
- * draft belongs to the currently open template before restoring it. */
23
+ * draft belongs to the currently open template before restoring it. */
24
24
  templateId: string | null;
25
25
  /** Cached template display name — set when the template was first loaded from DB. */
26
26
  name?: string;
@@ -0,0 +1,16 @@
1
+ import { Ref } from 'vue';
2
+ /**
3
+ * `auto` follows the host page. `light` and `dark` pin the editor regardless
4
+ * of what the page is doing — useful when the editor is embedded in a shell
5
+ * whose theme it should not inherit.
6
+ */
7
+ export type ColorMode = "light" | "dark" | "auto";
8
+ /**
9
+ * @param mode The `colorMode` prop, as a ref.
10
+ * @param host The custom-element host when running under element.ts, else
11
+ * null. Reflected onto as well, so `:host(.dark)` matches in an
12
+ * unscoped shadow build.
13
+ */
14
+ export declare function useColorScheme(mode: Ref<ColorMode | undefined>, host?: HTMLElement | null): {
15
+ isDark: import('vue').ComputedRef<boolean>;
16
+ };