@endora-commerce/page-builder-admin 0.100.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +49 -0
  3. package/dist/chrome/AssetPickers.d.ts +16 -0
  4. package/dist/chrome/AssetPickers.d.ts.map +1 -0
  5. package/dist/chrome/AssetPickers.js +112 -0
  6. package/dist/chrome/AssetPickers.js.map +1 -0
  7. package/dist/chrome/CatalogPickers.d.ts +6 -0
  8. package/dist/chrome/CatalogPickers.d.ts.map +1 -0
  9. package/dist/chrome/CatalogPickers.js +310 -0
  10. package/dist/chrome/CatalogPickers.js.map +1 -0
  11. package/dist/chrome/ColorPaletteModal.d.ts +11 -0
  12. package/dist/chrome/ColorPaletteModal.d.ts.map +1 -0
  13. package/dist/chrome/ColorPaletteModal.js +82 -0
  14. package/dist/chrome/ColorPaletteModal.js.map +1 -0
  15. package/dist/chrome/ColorPaletteProvider.d.ts +7 -0
  16. package/dist/chrome/ColorPaletteProvider.d.ts.map +1 -0
  17. package/dist/chrome/ColorPaletteProvider.js +40 -0
  18. package/dist/chrome/ColorPaletteProvider.js.map +1 -0
  19. package/dist/chrome/PageBuilderHeaderActions.d.ts +52 -0
  20. package/dist/chrome/PageBuilderHeaderActions.d.ts.map +1 -0
  21. package/dist/chrome/PageBuilderHeaderActions.js +242 -0
  22. package/dist/chrome/PageBuilderHeaderActions.js.map +1 -0
  23. package/dist/chrome/PageBuilderOverlayBridge.d.ts +10 -0
  24. package/dist/chrome/PageBuilderOverlayBridge.d.ts.map +1 -0
  25. package/dist/chrome/PageBuilderOverlayBridge.js +25 -0
  26. package/dist/chrome/PageBuilderOverlayBridge.js.map +1 -0
  27. package/dist/chrome/QuickTooltip.d.ts +8 -0
  28. package/dist/chrome/QuickTooltip.d.ts.map +1 -0
  29. package/dist/chrome/QuickTooltip.js +33 -0
  30. package/dist/chrome/QuickTooltip.js.map +1 -0
  31. package/dist/chrome/action-bar-target.d.ts +12 -0
  32. package/dist/chrome/action-bar-target.d.ts.map +1 -0
  33. package/dist/chrome/action-bar-target.js +37 -0
  34. package/dist/chrome/action-bar-target.js.map +1 -0
  35. package/dist/chrome/cms-page-builder-api.d.ts +21 -0
  36. package/dist/chrome/cms-page-builder-api.d.ts.map +1 -0
  37. package/dist/chrome/cms-page-builder-api.js +50 -0
  38. package/dist/chrome/cms-page-builder-api.js.map +1 -0
  39. package/dist/chrome/page-builder-data.d.ts +5 -0
  40. package/dist/chrome/page-builder-data.d.ts.map +1 -0
  41. package/dist/chrome/page-builder-data.js +12 -0
  42. package/dist/chrome/page-builder-data.js.map +1 -0
  43. package/dist/email/EmailBuilderActionBar.d.ts +8 -0
  44. package/dist/email/EmailBuilderActionBar.d.ts.map +1 -0
  45. package/dist/email/EmailBuilderActionBar.js +91 -0
  46. package/dist/email/EmailBuilderActionBar.js.map +1 -0
  47. package/dist/email/EmailEditorPane.d.ts +42 -0
  48. package/dist/email/EmailEditorPane.d.ts.map +1 -0
  49. package/dist/email/EmailEditorPane.js +637 -0
  50. package/dist/email/EmailEditorPane.js.map +1 -0
  51. package/dist/email/EmailRichTextField.d.ts +14 -0
  52. package/dist/email/EmailRichTextField.d.ts.map +1 -0
  53. package/dist/email/EmailRichTextField.js +45 -0
  54. package/dist/email/EmailRichTextField.js.map +1 -0
  55. package/dist/email/EmailRowLayoutPicker.d.ts +8 -0
  56. package/dist/email/EmailRowLayoutPicker.d.ts.map +1 -0
  57. package/dist/email/EmailRowLayoutPicker.js +17 -0
  58. package/dist/email/EmailRowLayoutPicker.js.map +1 -0
  59. package/dist/email/EmailVariableFields.d.ts +13 -0
  60. package/dist/email/EmailVariableFields.d.ts.map +1 -0
  61. package/dist/email/EmailVariableFields.js +49 -0
  62. package/dist/email/EmailVariableFields.js.map +1 -0
  63. package/dist/email/EmailVariablesProvider.d.ts +15 -0
  64. package/dist/email/EmailVariablesProvider.d.ts.map +1 -0
  65. package/dist/email/EmailVariablesProvider.js +54 -0
  66. package/dist/email/EmailVariablesProvider.js.map +1 -0
  67. package/dist/email/email-builder-plugin.d.ts +6 -0
  68. package/dist/email/email-builder-plugin.d.ts.map +1 -0
  69. package/dist/email/email-builder-plugin.js +14 -0
  70. package/dist/email/email-builder-plugin.js.map +1 -0
  71. package/dist/email/email-template-layout.d.ts +16 -0
  72. package/dist/email/email-template-layout.d.ts.map +1 -0
  73. package/dist/email/email-template-layout.js +55 -0
  74. package/dist/email/email-template-layout.js.map +1 -0
  75. package/dist/email/email-templates-api.d.ts +14 -0
  76. package/dist/email/email-templates-api.d.ts.map +1 -0
  77. package/dist/email/email-templates-api.js +54 -0
  78. package/dist/email/email-templates-api.js.map +1 -0
  79. package/dist/email/index.d.ts +33 -0
  80. package/dist/email/index.d.ts.map +1 -0
  81. package/dist/email/index.js +33 -0
  82. package/dist/email/index.js.map +1 -0
  83. package/dist/email/insert-at-cursor.d.ts +8 -0
  84. package/dist/email/insert-at-cursor.d.ts.map +1 -0
  85. package/dist/email/insert-at-cursor.js +12 -0
  86. package/dist/email/insert-at-cursor.js.map +1 -0
  87. package/dist/email/variables.d.ts +20 -0
  88. package/dist/email/variables.d.ts.map +1 -0
  89. package/dist/email/variables.js +41 -0
  90. package/dist/email/variables.js.map +1 -0
  91. package/dist/index.d.ts +52 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +49 -0
  94. package/dist/index.js.map +1 -0
  95. package/package.json +69 -0
  96. package/tailwind.css +14 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailEditorPane.js","sourceRoot":"","sources":["../../src/email/EmailEditorPane.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { CustomField } from '@measured/puck';
2
+ import { htmlFromTiptap } from '@endora-commerce/cms-components';
3
+ /**
4
+ * Reuses the CMS Page Builder Rich Content TipTap field, plus an email Variable
5
+ * button. Persisted authoring value is TipTap JSON (`content`); `html` is synced
6
+ * in resolveData via sanitizeEmailHtml(htmlFromTiptap(...)).
7
+ */
8
+ type TipTapJson = Parameters<typeof htmlFromTiptap>[0];
9
+ /** Puck custom field bound to EmailRichText `content` (TipTap JSON). */
10
+ export declare const emailRichTextContentField: CustomField<TipTapJson | null>;
11
+ /** Sync TipTap JSON → email-safe HTML string. */
12
+ export declare function emailHtmlFromRichContent(content: unknown): string;
13
+ export {};
14
+ //# sourceMappingURL=EmailRichTextField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailRichTextField.d.ts","sourceRoot":"","sources":["../../src/email/EmailRichTextField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAKjE;;;;GAIG;AAEH,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAsDvD,wEAAwE;AACxE,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,UAAU,GAAG,IAAI,CAUpE,CAAC;AAUF,iDAAiD;AACjD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAOjE"}
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { lazy, Suspense } from 'react';
3
+ import { sanitizeEmailHtml } from '@endora-commerce/email-components';
4
+ import { htmlFromTiptap } from '@endora-commerce/cms-components';
5
+ import { Button } from '@endora-commerce/admin-kit/ui';
6
+ import { toAbsoluteAssetUrl } from '@endora-commerce/admin-kit/lib';
7
+ import { useEmailVariables } from './EmailVariablesProvider.js';
8
+ const LazyRichContentEditorField = lazy(async () => {
9
+ const mod = await import('@endora-commerce/cms-components');
10
+ return { default: mod.RichContentEditorField };
11
+ });
12
+ function VariableToolbarButton({ insert, }) {
13
+ const { openPicker } = useEmailVariables();
14
+ return (_jsx(Button, { type: "button", variant: "outline", size: "sm", className: "h-[30px] px-2 text-xs", onMouseDown: (e) => e.preventDefault(), onClick: () => openPicker(insert), children: "Variable" }));
15
+ }
16
+ function EmailRichTextContentEditor({ value, onChange, readOnly = false, }) {
17
+ return (_jsx(Suspense, { fallback: _jsx("p", { className: "text-sm text-muted-foreground", children: "Loading editor\u2026" }), children: _jsx(LazyRichContentEditorField, { value: value ?? null, onChange: onChange, ...(readOnly ? { readOnly: true } : {}), toolbarExtra: (editor) => (_jsx(VariableToolbarButton, { insert: (snippet) => {
18
+ editor.chain().focus().insertContent(snippet).run();
19
+ } })) }) }));
20
+ }
21
+ /** Puck custom field bound to EmailRichText `content` (TipTap JSON). */
22
+ export const emailRichTextContentField = {
23
+ type: 'custom',
24
+ label: 'Rich text',
25
+ render: ({ value, onChange, readOnly }) => (_jsx(EmailRichTextContentEditor, { value: value, onChange: onChange, ...(readOnly !== undefined ? { readOnly } : {}) })),
26
+ };
27
+ /** Make host-relative image URLs absolute so email clients / preview can load them. */
28
+ function absolutizeImgSrcs(html) {
29
+ return html.replace(/<img\b([^>]*?)\bsrc="([^"]*)"/gi, (_full, before, src) => {
30
+ const absolute = toAbsoluteAssetUrl(src);
31
+ return `<img${before}src="${absolute.replace(/"/g, '&quot;')}"`;
32
+ });
33
+ }
34
+ /** Sync TipTap JSON → email-safe HTML string. */
35
+ export function emailHtmlFromRichContent(content) {
36
+ if (!content || typeof content !== 'object')
37
+ return '';
38
+ try {
39
+ return absolutizeImgSrcs(sanitizeEmailHtml(htmlFromTiptap(content)));
40
+ }
41
+ catch {
42
+ return '';
43
+ }
44
+ }
45
+ //# sourceMappingURL=EmailRichTextField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailRichTextField.js","sourceRoot":"","sources":["../../src/email/EmailRichTextField.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ReactElement } from 'react';
2
+ import { type EmailRowLayoutPresetId } from '@endora-commerce/email-components';
3
+ export declare function EmailRowLayoutPicker({ open, onOpenChange, onSelect, }: {
4
+ open: boolean;
5
+ onOpenChange: (open: boolean) => void;
6
+ onSelect: (presetId: EmailRowLayoutPresetId) => void;
7
+ }): ReactElement | null;
8
+ //# sourceMappingURL=EmailRowLayoutPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailRowLayoutPicker.d.ts","sourceRoot":"","sources":["../../src/email/EmailRowLayoutPicker.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,mCAAmC,CAAC;AAG3C,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,YAAY,EACZ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,QAAQ,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACtD,GAAG,YAAY,GAAG,IAAI,CAqDtB"}
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { createPortal } from 'react-dom';
4
+ import { EMAIL_ROW_LAYOUT_PRESETS, } from '@endora-commerce/email-components';
5
+ import { Button } from '@endora-commerce/admin-kit/ui';
6
+ export function EmailRowLayoutPicker({ open, onOpenChange, onSelect, }) {
7
+ if (!open || typeof document === 'undefined')
8
+ return null;
9
+ return createPortal(_jsx("div", { className: "fixed inset-0 flex items-center justify-center bg-black/40 p-4", style: { zIndex: 10000 }, role: "presentation", onPointerDown: (e) => {
10
+ if (e.target === e.currentTarget)
11
+ onOpenChange(false);
12
+ }, children: _jsxs("div", { className: "w-full max-w-md rounded-lg border bg-background p-5 shadow-lg", role: "dialog", "aria-modal": "true", "aria-labelledby": "email-row-layout-picker-title", onPointerDown: (e) => e.stopPropagation(), children: [_jsxs("div", { className: "mb-4 space-y-1", children: [_jsx("h2", { id: "email-row-layout-picker-title", className: "text-lg font-semibold", children: "Choose column layout" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Pick how many columns this row should have (max 6). You can change it later from the row action bar." })] }), _jsx("div", { className: "grid grid-cols-2 gap-2", children: EMAIL_ROW_LAYOUT_PRESETS.map((preset) => (_jsx(Button, { type: "button", variant: "outline", className: "h-auto justify-start py-3", onClick: () => {
13
+ onSelect(preset.id);
14
+ onOpenChange(false);
15
+ }, children: _jsx("span", { className: "font-medium", children: preset.label }) }, preset.id))) }), _jsx("div", { className: "mt-4 flex justify-end", children: _jsx(Button, { type: "button", variant: "ghost", onClick: () => onOpenChange(false), children: "Skip" }) })] }) }), document.body);
16
+ }
17
+ //# sourceMappingURL=EmailRowLayoutPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailRowLayoutPicker.js","sourceRoot":"","sources":["../../src/email/EmailRowLayoutPicker.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EACL,wBAAwB,GAEzB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAEvD,MAAM,UAAU,oBAAoB,CAAC,EACnC,IAAI,EACJ,YAAY,EACZ,QAAQ,GAKT;IACC,IAAI,CAAC,IAAI,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAE1D,OAAO,YAAY,CACjB,cACE,SAAS,EAAC,gEAAgE,EAC1E,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EACxB,IAAI,EAAC,cAAc,EACnB,aAAa,EAAE,CAAC,CAAC,EAAQ,EAAE;YACzB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,aAAa;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC,YAED,eACE,SAAS,EAAC,+DAA+D,EACzE,IAAI,EAAC,QAAQ,gBACF,MAAM,qBACD,+BAA+B,EAC/C,aAAa,EAAE,CAAC,CAAC,EAAQ,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,aAE/C,eAAK,SAAS,EAAC,gBAAgB,aAC7B,aAAI,EAAE,EAAC,+BAA+B,EAAC,SAAS,EAAC,uBAAuB,qCAEnE,EACL,YAAG,SAAS,EAAC,+BAA+B,qHAGxC,IACA,EACN,cAAK,SAAS,EAAC,wBAAwB,YACpC,wBAAwB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACxC,KAAC,MAAM,IAEL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,2BAA2B,EACrC,OAAO,EAAE,GAAS,EAAE;4BAClB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BACpB,YAAY,CAAC,KAAK,CAAC,CAAC;wBACtB,CAAC,YAED,eAAM,SAAS,EAAC,aAAa,YAAE,MAAM,CAAC,KAAK,GAAQ,IAT9C,MAAM,CAAC,EAAE,CAUP,CACV,CAAC,GACE,EACN,cAAK,SAAS,EAAC,uBAAuB,YACpC,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAE,GAAS,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,qBAErE,GACL,IACF,GACF,EACN,QAAQ,CAAC,IAAI,CACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { CustomField } from '@measured/puck';
2
+ /** Puck custom field: single-line text + variable insert. */
3
+ export declare const emailTextWithVariablesField: CustomField<string>;
4
+ /** Puck custom field: textarea + variable insert. */
5
+ export declare const emailTextareaWithVariablesField: CustomField<string>;
6
+ export declare function EmailSubjectWithVariables({ value, onChange, disabled, id, placeholder, }: {
7
+ value: string;
8
+ onChange: (value: string) => void;
9
+ disabled?: boolean;
10
+ id?: string;
11
+ placeholder?: string;
12
+ }): React.ReactElement;
13
+ //# sourceMappingURL=EmailVariableFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailVariableFields.d.ts","sourceRoot":"","sources":["../../src/email/EmailVariableFields.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAiElD,6DAA6D;AAC7D,eAAO,MAAM,2BAA2B,EAAE,WAAW,CAAC,MAAM,CAG3D,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,+BAA+B,EAAE,WAAW,CAAC,MAAM,CAG/D,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACxC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,EAAE,EACF,WAAW,GACZ,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,KAAK,CAAC,YAAY,CAgCrB"}
@@ -0,0 +1,49 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useRef } from 'react';
3
+ import { Button, Input, Textarea } from '@endora-commerce/admin-kit/ui';
4
+ import { insertAtCursor } from './insert-at-cursor.js';
5
+ import { useEmailVariables } from './EmailVariablesProvider.js';
6
+ function VariableFieldShell({ multiline, value, onChange, readOnly, field, }) {
7
+ const ref = useRef(null);
8
+ const { openPicker } = useEmailVariables();
9
+ const insert = (snippet) => {
10
+ const el = ref.current;
11
+ const current = value ?? '';
12
+ const start = el?.selectionStart ?? current.length;
13
+ const end = el?.selectionEnd ?? start;
14
+ const next = insertAtCursor(current, snippet, start, end);
15
+ onChange(next.value);
16
+ requestAnimationFrame(() => {
17
+ el?.focus();
18
+ el?.setSelectionRange(next.selectionStart, next.selectionEnd);
19
+ });
20
+ };
21
+ return (_jsxs("div", { className: "space-y-1", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [field.label ? _jsx("span", { className: "text-sm font-medium", children: field.label }) : _jsx("span", {}), _jsx(Button, { type: "button", variant: "outline", size: "sm", disabled: readOnly, onClick: () => openPicker(insert), children: "Variable" })] }), multiline ? (_jsx(Textarea, { ref: ref, value: value ?? '', onChange: (e) => onChange(e.target.value), disabled: readOnly, rows: 4, placeholder: field.placeholder })) : (_jsx(Input, { ref: ref, value: value ?? '', onChange: (e) => onChange(e.target.value), disabled: readOnly, placeholder: field.placeholder }))] }));
22
+ }
23
+ /** Puck custom field: single-line text + variable insert. */
24
+ export const emailTextWithVariablesField = {
25
+ type: 'custom',
26
+ render: (props) => _jsx(VariableFieldShell, { ...props, multiline: false }),
27
+ };
28
+ /** Puck custom field: textarea + variable insert. */
29
+ export const emailTextareaWithVariablesField = {
30
+ type: 'custom',
31
+ render: (props) => _jsx(VariableFieldShell, { ...props, multiline: true }),
32
+ };
33
+ export function EmailSubjectWithVariables({ value, onChange, disabled, id, placeholder, }) {
34
+ const ref = useRef(null);
35
+ const { openPicker } = useEmailVariables();
36
+ const insert = (snippet) => {
37
+ const el = ref.current;
38
+ const start = el?.selectionStart ?? value.length;
39
+ const end = el?.selectionEnd ?? start;
40
+ const next = insertAtCursor(value, snippet, start, end);
41
+ onChange(next.value);
42
+ requestAnimationFrame(() => {
43
+ el?.focus();
44
+ el?.setSelectionRange(next.selectionStart, next.selectionEnd);
45
+ });
46
+ };
47
+ return (_jsxs("div", { className: "flex gap-2", children: [_jsx(Input, { id: id, ref: ref, value: value, onChange: (e) => onChange(e.target.value), disabled: disabled, placeholder: placeholder, className: "flex-1" }), _jsx(Button, { type: "button", variant: "outline", disabled: disabled, onClick: () => openPicker(insert), children: "Variable" })] }));
48
+ }
49
+ //# sourceMappingURL=EmailVariableFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailVariableFields.js","sourceRoot":"","sources":["../../src/email/EmailVariableFields.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { EmailVariableItem } from './variables.js';
3
+ export type { EmailVariableItem } from './variables.js';
4
+ export { varSnippet } from './insert-at-cursor.js';
5
+ type InsertHandler = (snippet: string) => void;
6
+ interface EmailVariablesContextValue {
7
+ variables: EmailVariableItem[];
8
+ openPicker: (onInsert: InsertHandler) => void;
9
+ }
10
+ export declare function useEmailVariables(): EmailVariablesContextValue;
11
+ export declare function EmailVariablesProvider({ variables, children, }: {
12
+ variables: EmailVariableItem[];
13
+ children: ReactNode;
14
+ }): React.ReactElement;
15
+ //# sourceMappingURL=EmailVariablesProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailVariablesProvider.d.ts","sourceRoot":"","sources":["../../src/email/EmailVariablesProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6D,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIlG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,KAAK,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAE/C,UAAU,0BAA0B;IAClC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,UAAU,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;CAC/C;AAID,wBAAgB,iBAAiB,IAAI,0BAA0B,CAW9D;AAED,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,QAAQ,GACT,EAAE;IACD,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,KAAK,CAAC,YAAY,CAiGrB"}
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { createContext, useCallback, useContext, useMemo, useState } from 'react';
3
+ import { Button, Input } from '@endora-commerce/admin-kit/ui';
4
+ import { normalize } from '@endora-commerce/admin-kit/lib';
5
+ import { varSnippet } from './insert-at-cursor.js';
6
+ export { varSnippet } from './insert-at-cursor.js';
7
+ const EmailVariablesContext = createContext(null);
8
+ export function useEmailVariables() {
9
+ const ctx = useContext(EmailVariablesContext);
10
+ if (!ctx) {
11
+ return {
12
+ variables: [],
13
+ openPicker: () => {
14
+ /* no-op when provider is absent */
15
+ },
16
+ };
17
+ }
18
+ return ctx;
19
+ }
20
+ export function EmailVariablesProvider({ variables, children, }) {
21
+ const [open, setOpen] = useState(false);
22
+ const [query, setQuery] = useState('');
23
+ const [pendingInsert, setPendingInsert] = useState(null);
24
+ const openPicker = useCallback((onInsert) => {
25
+ setPendingInsert(() => onInsert);
26
+ setQuery('');
27
+ setOpen(true);
28
+ }, []);
29
+ const value = useMemo(() => ({ variables, openPicker }), [variables, openPicker]);
30
+ const filtered = useMemo(() => {
31
+ const q = normalize(query);
32
+ if (!q)
33
+ return variables;
34
+ return variables.filter((v) => normalize(v.key).includes(q) ||
35
+ normalize(v.label).includes(q) ||
36
+ (v.description !== undefined && normalize(v.description).includes(q)));
37
+ }, [variables, query]);
38
+ const pick = (item) => {
39
+ const snippet = item.snippet ?? varSnippet(item.key);
40
+ pendingInsert?.(snippet);
41
+ setOpen(false);
42
+ setPendingInsert(null);
43
+ };
44
+ return (_jsxs(EmailVariablesContext.Provider, { value: value, children: [children, open ? (_jsx("div", { className: "fixed inset-0 z-[80] flex items-center justify-center bg-black/40 p-4", role: "dialog", "aria-modal": "true", "aria-label": "Insert variable", onClick: (e) => {
45
+ if (e.target === e.currentTarget) {
46
+ setOpen(false);
47
+ setPendingInsert(null);
48
+ }
49
+ }, children: _jsxs("div", { className: "flex max-h-[80vh] w-full max-w-lg flex-col rounded-lg border bg-background shadow-lg", children: [_jsxs("div", { className: "space-y-2 border-b p-4", children: [_jsx("h2", { className: "text-sm font-semibold", children: "Insert variable" }), _jsx(Input, { autoFocus: true, placeholder: "Search variables\u2026", value: query, onChange: (e) => setQuery(e.target.value) })] }), _jsxs("ul", { className: "min-h-0 flex-1 overflow-y-auto p-2", children: [filtered.map((v) => (_jsx("li", { children: _jsxs("button", { type: "button", className: "flex w-full flex-col items-start gap-0.5 rounded-md px-3 py-2 text-left hover:bg-muted", onClick: () => pick(v), children: [_jsx("span", { className: "text-sm font-medium", children: v.label }), _jsx("span", { className: "font-mono text-xs text-muted-foreground", children: v.snippet ?? varSnippet(v.key) }), v.description ? (_jsx("span", { className: "text-xs text-muted-foreground", children: v.description })) : null] }) }, v.key))), filtered.length === 0 ? (_jsx("li", { className: "px-3 py-6 text-center text-sm text-muted-foreground", children: "No matches." })) : null] }), _jsx("div", { className: "flex justify-end border-t p-3", children: _jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: () => {
50
+ setOpen(false);
51
+ setPendingInsert(null);
52
+ }, children: "Cancel" }) })] }) })) : null] }));
53
+ }
54
+ //# sourceMappingURL=EmailVariablesProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailVariablesProvider.js","sourceRoot":"","sources":["../../src/email/EmailVariablesProvider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Plugin } from '@measured/puck';
2
+ /**
3
+ * Email builder plugin — Outline like CMS, without CMS viewport / responsive field wiring.
4
+ */
5
+ export declare function createEmailBuilderEditorPlugin(): Plugin;
6
+ //# sourceMappingURL=email-builder-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-builder-plugin.d.ts","sourceRoot":"","sources":["../../src/email/email-builder-plugin.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAG7C;;GAEG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CAQvD"}
@@ -0,0 +1,14 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { PageBuilderOutline } from '@endora-commerce/page-builder-core/editor';
4
+ /**
5
+ * Email builder plugin — Outline like CMS, without CMS viewport / responsive field wiring.
6
+ */
7
+ export function createEmailBuilderEditorPlugin() {
8
+ return {
9
+ overrides: {
10
+ outline: ({ children }) => (_jsx(PageBuilderOutline, { children: children })),
11
+ },
12
+ };
13
+ }
14
+ //# sourceMappingURL=email-builder-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-builder-plugin.js","sourceRoot":"","sources":["../../src/email/email-builder-plugin.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAIb,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAE/E;;GAEG;AACH,MAAM,UAAU,8BAA8B;IAC5C,OAAO;QACL,SAAS,EAAE;YACT,OAAO,EAAE,CAAC,EAAE,QAAQ,EAA2B,EAAgB,EAAE,CAAC,CAChE,KAAC,kBAAkB,cAAE,QAAQ,GAAsB,CACpD;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { Data } from '@measured/puck';
2
+ import type { EmailTemplateDetail } from '@endora-commerce/contracts';
3
+ export declare function saveCanvasAsEmailTemplate(input: {
4
+ name: string;
5
+ code: string;
6
+ data: Data;
7
+ salesChannelIds?: string[];
8
+ languages: string[];
9
+ activeLanguage: string | null;
10
+ }): Promise<EmailTemplateDetail>;
11
+ export declare function listEmailTemplatesForApply(salesChannelId?: string | null): Promise<Array<{
12
+ id: string;
13
+ label: string;
14
+ }>>;
15
+ export declare function loadEmailTemplateCanvas(templateId: string, preferredLanguage: string | null): Promise<Data>;
16
+ //# sourceMappingURL=email-template-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-template-layout.d.ts","sourceRoot":"","sources":["../../src/email/email-template-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAwB,MAAM,4BAA4B,CAAC;AAS5F,wBAAsB,yBAAyB,CAAC,KAAK,EAAE;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAwB/B;AAED,wBAAsB,0BAA0B,CAC9C,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAC7B,OAAO,CAAC,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAM/C;AAED,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAC/B,OAAO,CAAC,IAAI,CAAC,CAqBf"}
@@ -0,0 +1,55 @@
1
+ import { emptyPageBuilderData, isEmptyPageBuilderData } from '../chrome/page-builder-data.js';
2
+ import { createEmailTemplate, getEmailTemplate, listEmailTemplates, putEmailTemplateContent, } from './email-templates-api.js';
3
+ export async function saveCanvasAsEmailTemplate(input) {
4
+ if (isEmptyPageBuilderData(input.data)) {
5
+ throw new Error('EMPTY_CANVAS');
6
+ }
7
+ if (input.languages.length === 0) {
8
+ throw new Error('MISSING_SCOPE');
9
+ }
10
+ const language = input.activeLanguage ?? input.languages[0];
11
+ if (!language) {
12
+ throw new Error('MISSING_SCOPE');
13
+ }
14
+ const created = await createEmailTemplate({
15
+ name: input.name.trim(),
16
+ code: input.code.trim(),
17
+ languages: input.languages,
18
+ ...(input.salesChannelIds && input.salesChannelIds.length > 0
19
+ ? { salesChannelIds: input.salesChannelIds }
20
+ : {}),
21
+ });
22
+ return putEmailTemplateContent(created.id, language, {
23
+ content: input.data,
24
+ expectedVersion: created.version,
25
+ });
26
+ }
27
+ export async function listEmailTemplatesForApply(salesChannelId) {
28
+ const res = await listEmailTemplates(salesChannelId ?? undefined);
29
+ return res.items.map((tpl) => ({
30
+ id: tpl.id,
31
+ label: tpl.name ? `${tpl.name} (${tpl.code})` : tpl.code,
32
+ }));
33
+ }
34
+ export async function loadEmailTemplateCanvas(templateId, preferredLanguage) {
35
+ const detail = await getEmailTemplate(templateId);
36
+ const language = (preferredLanguage && detail.languages.includes(preferredLanguage)
37
+ ? preferredLanguage
38
+ : null) ??
39
+ detail.languages[0] ??
40
+ Object.keys(detail.content)[0] ??
41
+ null;
42
+ if (!language) {
43
+ return emptyPageBuilderData();
44
+ }
45
+ const tree = detail.content[language];
46
+ if (tree && typeof tree === 'object') {
47
+ return structuredClone(tree);
48
+ }
49
+ const fallback = Object.values(detail.content)[0];
50
+ if (fallback && typeof fallback === 'object') {
51
+ return structuredClone(fallback);
52
+ }
53
+ return emptyPageBuilderData();
54
+ }
55
+ //# sourceMappingURL=email-template-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-template-layout.js","sourceRoot":"","sources":["../../src/email/email-template-layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { CreateEmailTemplateRequest, EmailBranding, EmailTemplateDetail, EmailTemplateSummary, PutEmailBlockContentRequest } from '@endora-commerce/contracts';
2
+ /** The logo and accent colour the preview resolves `{{var branding.*}}` from. */
3
+ export declare function getEmailBranding(salesChannelId: string | null): Promise<EmailBranding>;
4
+ /** The templates offered by the "apply a template" picker. */
5
+ export declare function listEmailTemplates(salesChannelId?: string): Promise<{
6
+ items: EmailTemplateSummary[];
7
+ }>;
8
+ /** One template with its per-language canvases. */
9
+ export declare function getEmailTemplate(id: string): Promise<EmailTemplateDetail>;
10
+ /** Create the template a "save canvas as template" writes into. */
11
+ export declare function createEmailTemplate(body: CreateEmailTemplateRequest): Promise<EmailTemplateDetail>;
12
+ /** Write one language's canvas into an existing template. */
13
+ export declare function putEmailTemplateContent(id: string, language: string, body: PutEmailBlockContentRequest): Promise<EmailTemplateDetail>;
14
+ //# sourceMappingURL=email-templates-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-templates-api.d.ts","sourceRoot":"","sources":["../../src/email/email-templates-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,0BAA0B,EAC1B,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,4BAA4B,CAAC;AAuCpC,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAEtF;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAChC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC;IAAE,KAAK,EAAE,oBAAoB,EAAE,CAAA;CAAE,CAAC,CAM5C;AAED,mDAAmD;AACnD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAIzE;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAE9B;AAED,6DAA6D;AAC7D,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,2BAA2B,GAChC,OAAO,CAAC,mBAAmB,CAAC,CAO9B"}
@@ -0,0 +1,54 @@
1
+ import { apiClient } from '@endora-commerce/admin-kit/lib';
2
+ /**
3
+ * The five e-mail-template calls and the one branding read, rebuilt on the
4
+ * published `apiClient` — the **client exit**
5
+ * (`specs/091-module-owned-admin-surfaces/contracts/admin-component-contribution.md`
6
+ * Z1.2, which is P2's clarification of R6 and needs no new rule).
7
+ *
8
+ * `email-template-layout.ts` and `EmailEditorPane` reached
9
+ * `transactional_emails`' own `transactionalEmailsClient` for these. That is the
10
+ * one kind of module knowledge a published component may carry and rebuild — an
11
+ * HTTP path plus a contract type — and every type it needs is already
12
+ * `@endora-commerce/contracts`', so nothing here is a copy of a
13
+ * `transactional_emails` type.
14
+ *
15
+ * **The rejected alternative is why this is not a shortcut.** Having
16
+ * `transactional_emails` publish the three template operations on its own
17
+ * package would re-create the coupling this removes: `newsletter` would reach
18
+ * `@endora-commerce/mod-transactional-emails` for its template hub, a real
19
+ * cross-module reach ledgered for as long as it stood, where three `GET`/`POST`s
20
+ * over published types are none.
21
+ *
22
+ * **The branding exposure is carried across unchanged and is recorded rather
23
+ * than solved** (Z1.2). The endpoint is `transactional_emails`', so an operator
24
+ * who switches that module off gets a 503 here — as they did before this package
25
+ * existed. The call site degrades to an empty logo and the builder still opens,
26
+ * which is honest.
27
+ */
28
+ const BASE = '/api/v1/admin/transactional-emails';
29
+ const unwrap = (p) => p.then((r) => r.data);
30
+ /** `?salesChannelId=…`, or the empty string for the unscoped read. */
31
+ function scopeQs(salesChannelId) {
32
+ return salesChannelId ? `?salesChannelId=${encodeURIComponent(salesChannelId)}` : '';
33
+ }
34
+ /** The logo and accent colour the preview resolves `{{var branding.*}}` from. */
35
+ export function getEmailBranding(salesChannelId) {
36
+ return unwrap(apiClient.get(`${BASE}/branding${scopeQs(salesChannelId)}`));
37
+ }
38
+ /** The templates offered by the "apply a template" picker. */
39
+ export function listEmailTemplates(salesChannelId) {
40
+ return unwrap(apiClient.get(`${BASE}/templates${scopeQs(salesChannelId ?? null)}`));
41
+ }
42
+ /** One template with its per-language canvases. */
43
+ export function getEmailTemplate(id) {
44
+ return unwrap(apiClient.get(`${BASE}/templates/${encodeURIComponent(id)}`));
45
+ }
46
+ /** Create the template a "save canvas as template" writes into. */
47
+ export function createEmailTemplate(body) {
48
+ return unwrap(apiClient.post(`${BASE}/templates`, body));
49
+ }
50
+ /** Write one language's canvas into an existing template. */
51
+ export function putEmailTemplateContent(id, language, body) {
52
+ return unwrap(apiClient.put(`${BASE}/templates/${encodeURIComponent(id)}/content/${language}`, body));
53
+ }
54
+ //# sourceMappingURL=email-templates-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-templates-api.js","sourceRoot":"","sources":["../../src/email/email-templates-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAS3D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,IAAI,GAAG,oCAAoC,CAAC;AAIlD,MAAM,MAAM,GAAG,CAAI,CAAmB,EAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAE7E,sEAAsE;AACtE,SAAS,OAAO,CAAC,cAA6B;IAC5C,OAAO,cAAc,CAAC,CAAC,CAAC,mBAAmB,kBAAkB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvF,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,gBAAgB,CAAC,cAA6B;IAC5D,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAsB,GAAG,IAAI,YAAY,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,kBAAkB,CAChC,cAAuB;IAEvB,OAAO,MAAM,CACX,SAAS,CAAC,GAAG,CACX,GAAG,IAAI,aAAa,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,EAAE,CACtD,CACF,CAAC;AACJ,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,gBAAgB,CAAC,EAAU;IACzC,OAAO,MAAM,CACX,SAAS,CAAC,GAAG,CAA4B,GAAG,IAAI,cAAc,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CACxF,CAAC;AACJ,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,mBAAmB,CACjC,IAAgC;IAEhC,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAA4B,GAAG,IAAI,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,uBAAuB,CACrC,EAAU,EACV,QAAgB,EAChB,IAAiC;IAEjC,OAAO,MAAM,CACX,SAAS,CAAC,GAAG,CACX,GAAG,IAAI,cAAc,kBAAkB,CAAC,EAAE,CAAC,YAAY,QAAQ,EAAE,EACjE,IAAI,CACL,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * `@endora-commerce/page-builder-admin/email` — the e-mail builder: the editor
3
+ * pane, its variable provider and fields, the row-layout picker, the rich-text
4
+ * field, the action bar and the template save/apply operations.
5
+ *
6
+ * It lived in `admin/src/modules/_shared/email-builder/`, a directory the admin
7
+ * application owned and no module did — which is what made it invisible to every
8
+ * instrument in the estate: `check:admin-surface` attributes ownership from the
9
+ * route table and the nav, and `_shared` is claimed by neither, so eighteen
10
+ * cross-directory reaches sat in no ledger and drained without anybody
11
+ * reporting it (`admin-component-contribution.md` Z1.2).
12
+ *
13
+ * The twelve reaches **out** of it are not now unwatched; they are impossible.
14
+ * `@/` is a Vite and `tsc` alias a package cannot resolve, so this package's own
15
+ * type-check refuses one — a stronger instrument than a ledger, and one nobody
16
+ * has to remember. The six reaches **in** are bare specifiers into a published
17
+ * `exports` map, which is what a package split *produces* rather than a coupling
18
+ * it breaks.
19
+ *
20
+ * Both remaining pieces of module knowledge take the **client exit**: the
21
+ * template operations and the branding read are rebuilt on `apiClient` over
22
+ * `@endora-commerce/contracts` types in `email-templates-api.ts`, and the colour
23
+ * palette in the chrome's `cms-page-builder-api.ts`. `newsletterVariables` took
24
+ * the third exit and lives in `newsletter`, its only consumer.
25
+ */
26
+ export { EmailEditorPane, previewNode, type EmailEditorPaneProps, type EmailEmbedCodeOption, type EmailPreviewWidth, } from './EmailEditorPane.js';
27
+ export { EmailVariablesProvider, useEmailVariables, type EmailVariableItem, } from './EmailVariablesProvider.js';
28
+ export { EmailSubjectWithVariables } from './EmailVariableFields.js';
29
+ export { BRANDING_VARIABLES, mergeEmailVariables } from './variables.js';
30
+ export { insertAtCursor, varSnippet } from './insert-at-cursor.js';
31
+ export { createEmailBuilderEditorPlugin } from './email-builder-plugin.js';
32
+ export { listEmailTemplatesForApply, loadEmailTemplateCanvas, saveCanvasAsEmailTemplate, } from './email-template-layout.js';
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/email/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EACL,eAAe,EACf,WAAW,EACX,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,KAAK,iBAAiB,GACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * `@endora-commerce/page-builder-admin/email` — the e-mail builder: the editor
3
+ * pane, its variable provider and fields, the row-layout picker, the rich-text
4
+ * field, the action bar and the template save/apply operations.
5
+ *
6
+ * It lived in `admin/src/modules/_shared/email-builder/`, a directory the admin
7
+ * application owned and no module did — which is what made it invisible to every
8
+ * instrument in the estate: `check:admin-surface` attributes ownership from the
9
+ * route table and the nav, and `_shared` is claimed by neither, so eighteen
10
+ * cross-directory reaches sat in no ledger and drained without anybody
11
+ * reporting it (`admin-component-contribution.md` Z1.2).
12
+ *
13
+ * The twelve reaches **out** of it are not now unwatched; they are impossible.
14
+ * `@/` is a Vite and `tsc` alias a package cannot resolve, so this package's own
15
+ * type-check refuses one — a stronger instrument than a ledger, and one nobody
16
+ * has to remember. The six reaches **in** are bare specifiers into a published
17
+ * `exports` map, which is what a package split *produces* rather than a coupling
18
+ * it breaks.
19
+ *
20
+ * Both remaining pieces of module knowledge take the **client exit**: the
21
+ * template operations and the branding read are rebuilt on `apiClient` over
22
+ * `@endora-commerce/contracts` types in `email-templates-api.ts`, and the colour
23
+ * palette in the chrome's `cms-page-builder-api.ts`. `newsletterVariables` took
24
+ * the third exit and lives in `newsletter`, its only consumer.
25
+ */
26
+ export { EmailEditorPane, previewNode, } from './EmailEditorPane.js';
27
+ export { EmailVariablesProvider, useEmailVariables, } from './EmailVariablesProvider.js';
28
+ export { EmailSubjectWithVariables } from './EmailVariableFields.js';
29
+ export { BRANDING_VARIABLES, mergeEmailVariables } from './variables.js';
30
+ export { insertAtCursor, varSnippet } from './insert-at-cursor.js';
31
+ export { createEmailBuilderEditorPlugin } from './email-builder-plugin.js';
32
+ export { listEmailTemplatesForApply, loadEmailTemplateCanvas, saveCanvasAsEmailTemplate, } from './email-template-layout.js';
33
+ //# sourceMappingURL=index.js.map