vibespot 1.1.1 → 1.3.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 (56) hide show
  1. package/LICENSE +103 -33
  2. package/README.md +55 -6
  3. package/assets/blog-rules.md +251 -0
  4. package/assets/email-rules.md +390 -0
  5. package/assets/humanify-guide.md +300 -101
  6. package/assets/plan-templates/agency-services.md +42 -0
  7. package/assets/plan-templates/blog-content-hub.md +50 -0
  8. package/assets/plan-templates/ecommerce-product.md +42 -0
  9. package/assets/plan-templates/email-announcement.md +41 -0
  10. package/assets/plan-templates/email-event-invite.md +43 -0
  11. package/assets/plan-templates/email-newsletter.md +41 -0
  12. package/assets/plan-templates/email-re-engagement.md +42 -0
  13. package/assets/plan-templates/email-welcome.md +41 -0
  14. package/assets/plan-templates/event-registration.md +42 -0
  15. package/assets/plan-templates/portfolio.md +41 -0
  16. package/assets/plan-templates/restaurant.md +42 -0
  17. package/assets/plan-templates/saas-landing.md +42 -0
  18. package/dist/index.js +1485 -397
  19. package/dist/index.js.map +1 -1
  20. package/package.json +11 -7
  21. package/starters/01-saas-landing.json +43 -0
  22. package/starters/02-portfolio.json +39 -0
  23. package/starters/03-restaurant.json +39 -0
  24. package/starters/04-event.json +39 -0
  25. package/starters/05-coming-soon.json +32 -0
  26. package/starters/06-blog-content-hub.json +75 -0
  27. package/starters/06-email-welcome.json +60 -0
  28. package/starters/07-email-announcement.json +60 -0
  29. package/starters/08-email-newsletter.json +52 -0
  30. package/ui/chat.js +1604 -155
  31. package/ui/code-editor.js +49 -7
  32. package/ui/dashboard.js +551 -83
  33. package/ui/docs/docs.css +29 -0
  34. package/ui/docs/index.html +274 -117
  35. package/ui/docs/screenshots/brand-kit-preview.png +0 -0
  36. package/ui/docs/screenshots/content-type-dropdown.png +0 -0
  37. package/ui/docs/screenshots/editor-full-layout.png +0 -0
  38. package/ui/docs/screenshots/inline-wysiwyg-editing.png +0 -0
  39. package/ui/docs/screenshots/multi-page-tree.png +0 -0
  40. package/ui/docs/screenshots/onboarding-walkthrough.png +0 -0
  41. package/ui/docs/screenshots/split-pane-view.png +0 -0
  42. package/ui/docs/screenshots/visual-controls-toolbar.png +0 -0
  43. package/ui/docs/screenshots/workspace-tabs.png +0 -0
  44. package/ui/email-preview.js +109 -0
  45. package/ui/field-editor.js +71 -0
  46. package/ui/icons.js +120 -0
  47. package/ui/index.html +882 -515
  48. package/ui/inline-edit.js +710 -0
  49. package/ui/marketplace.js +218 -0
  50. package/ui/plan.js +0 -0
  51. package/ui/preview.js +219 -1
  52. package/ui/section-controls.js +628 -0
  53. package/ui/settings.js +84 -28
  54. package/ui/setup.js +1016 -118
  55. package/ui/styles.css +6119 -2456
  56. package/ui/upload-panel.js +47 -20
@@ -0,0 +1,60 @@
1
+ {
2
+ "id": "email-welcome",
3
+ "name": "Welcome Email",
4
+ "description": "Onboarding email with getting-started steps and primary CTA",
5
+ "category": "Email",
6
+ "contentType": "email",
7
+ "modules": [
8
+ {
9
+ "moduleName": "preheader",
10
+ "fieldsJson": "[{\"name\":\"preview_text\",\"label\":\"Preview Text\",\"type\":\"text\",\"default\":\"Welcome aboard. Here's how to get started in under 5 minutes.\"}]",
11
+ "metaJson": "{\"label\":\"Preheader\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
12
+ "moduleHtml": "<!--[if !mso]><!-->\n<div style=\"display:none;font-size:1px;color:#f4f4f4;line-height:1px;max-height:0;max-width:0;opacity:0;overflow:hidden;mso-hide:all;\">\n {{ module.preview_text }}\n &zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;\n</div>\n<!--<![endif]-->",
13
+ "moduleCss": "",
14
+ "moduleJs": ""
15
+ },
16
+ {
17
+ "moduleName": "header",
18
+ "fieldsJson": "[{\"name\":\"logo_image\",\"label\":\"Logo Image\",\"type\":\"image\",\"default\":{\"src\":\"https://placehold.co/180x40/333333/ffffff?text=YourLogo\",\"alt\":\"Company Logo\",\"width\":180,\"height\":40}},{\"name\":\"logo_link\",\"label\":\"Logo Link\",\"type\":\"link\",\"default\":{\"url\":{\"href\":\"https://example.com\",\"type\":\"EXTERNAL\"},\"open_in_new_tab\":false}}]",
19
+ "metaJson": "{\"label\":\"Header\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
20
+ "moduleHtml": "<!--[if mso]><table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr><td><![endif]-->\n<table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"max-width:600px;margin:0 auto;\">\n <tr>\n <td style=\"padding:24px 30px;text-align:center;background-color:#ffffff;\">\n <a href=\"{{ module.logo_link.url.href }}\" style=\"text-decoration:none;\">\n <img src=\"{{ module.logo_image.src }}\" alt=\"{{ module.logo_image.alt }}\" width=\"{{ module.logo_image.width }}\" height=\"{{ module.logo_image.height }}\" style=\"display:block;margin:0 auto;border:0;outline:none;text-decoration:none;max-width:100%;height:auto;\" />\n </a>\n </td>\n </tr>\n</table>\n<!--[if mso]></td></tr></table><![endif]-->",
21
+ "moduleCss": "",
22
+ "moduleJs": ""
23
+ },
24
+ {
25
+ "moduleName": "hero",
26
+ "fieldsJson": "[{\"name\":\"greeting\",\"label\":\"Greeting\",\"type\":\"text\",\"default\":\"Welcome to Acme\"},{\"name\":\"message\",\"label\":\"Message\",\"type\":\"text\",\"default\":\"You just made a great decision. Your account is ready, and getting started takes less than 5 minutes.\"}]",
27
+ "metaJson": "{\"label\":\"Hero\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
28
+ "moduleHtml": "<!--[if mso]><table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr><td><![endif]-->\n<table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"max-width:600px;margin:0 auto;\">\n <tr>\n <td style=\"padding:40px 30px 20px;background-color:#ffffff;\">\n <h1 style=\"margin:0 0 16px;font-family:Georgia,'Times New Roman',Times,serif;font-size:28px;line-height:1.2;color:#1a1a1a;font-weight:700;\">{{ module.greeting }}</h1>\n <p style=\"margin:0;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#555555;\">{{ module.message }}</p>\n </td>\n </tr>\n</table>\n<!--[if mso]></td></tr></table><![endif]-->",
29
+ "moduleCss": "",
30
+ "moduleJs": ""
31
+ },
32
+ {
33
+ "moduleName": "getting-started",
34
+ "fieldsJson": "[{\"name\":\"section_title\",\"label\":\"Section Title\",\"type\":\"text\",\"default\":\"Get started in 3 steps\"},{\"name\":\"steps\",\"label\":\"Steps\",\"type\":\"group\",\"occurrence\":{\"min\":1,\"max\":5,\"default\":3},\"default\":[{\"step_number\":\"1\",\"step_title\":\"Complete your profile\",\"step_description\":\"Add your company details and preferences so we can personalize your experience.\"},{\"step_number\":\"2\",\"step_title\":\"Connect your tools\",\"step_description\":\"Link your existing accounts. It takes about 60 seconds per integration.\"},{\"step_number\":\"3\",\"step_title\":\"Send your first campaign\",\"step_description\":\"Pick a template, customize it, and hit send. Your audience is waiting.\"}],\"children\":[{\"name\":\"step_number\",\"label\":\"Step Number\",\"type\":\"text\",\"default\":\"1\"},{\"name\":\"step_title\",\"label\":\"Step Title\",\"type\":\"text\",\"default\":\"Step Title\"},{\"name\":\"step_description\",\"label\":\"Step Description\",\"type\":\"text\",\"default\":\"Step description here.\"}]}]",
35
+ "metaJson": "{\"label\":\"Getting Started Steps\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
36
+ "moduleHtml": "<!--[if mso]><table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr><td><![endif]-->\n<table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"max-width:600px;margin:0 auto;\">\n <tr>\n <td style=\"padding:20px 30px 10px;background-color:#ffffff;\">\n <h2 style=\"margin:0 0 24px;font-family:Georgia,'Times New Roman',Times,serif;font-size:22px;line-height:1.3;color:#1a1a1a;font-weight:700;\">{{ module.section_title }}</h2>\n </td>\n </tr>\n {% for step in module.steps %}\n <tr>\n <td style=\"padding:0 30px 24px;background-color:#ffffff;\">\n <table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n <tr>\n <td width=\"48\" valign=\"top\" style=\"padding-right:16px;\">\n <table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td style=\"width:40px;height:40px;border-radius:20px;background-color:#e8613a;text-align:center;vertical-align:middle;font-family:Arial,Helvetica,sans-serif;font-size:18px;font-weight:700;color:#ffffff;line-height:40px;\">\n {{ step.step_number }}\n </td>\n </tr>\n </table>\n </td>\n <td valign=\"top\">\n <h3 style=\"margin:0 0 4px;font-family:Arial,Helvetica,sans-serif;font-size:17px;line-height:1.3;color:#1a1a1a;font-weight:600;\">{{ step.step_title }}</h3>\n <p style=\"margin:0;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.5;color:#666666;\">{{ step.step_description }}</p>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n {% endfor %}\n</table>\n<!--[if mso]></td></tr></table><![endif]-->",
37
+ "moduleCss": "",
38
+ "moduleJs": ""
39
+ },
40
+ {
41
+ "moduleName": "cta-block",
42
+ "fieldsJson": "[{\"name\":\"button_text\",\"label\":\"Button Text\",\"type\":\"text\",\"default\":\"Go to Your Dashboard\"},{\"name\":\"button_link\",\"label\":\"Button Link\",\"type\":\"link\",\"default\":{\"url\":{\"href\":\"https://example.com/dashboard\",\"type\":\"EXTERNAL\"},\"open_in_new_tab\":false}},{\"name\":\"button_color\",\"label\":\"Button Color\",\"type\":\"color\",\"default\":{\"color\":\"#e8613a\",\"opacity\":100}}]",
43
+ "metaJson": "{\"label\":\"CTA Block\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
44
+ "moduleHtml": "<!--[if mso]><table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr><td><![endif]-->\n<table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"max-width:600px;margin:0 auto;\">\n <tr>\n <td style=\"padding:10px 30px 40px;background-color:#ffffff;text-align:center;\">\n <!--[if mso]>\n <v:roundrect xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" href=\"{{ module.button_link.url.href }}\" style=\"height:48px;v-text-anchor:middle;width:220px;\" arcsize=\"10%\" strokecolor=\"{{ module.button_color.color }}\" fillcolor=\"{{ module.button_color.color }}\">\n <w:anchorlock/>\n <center style=\"color:#ffffff;font-family:Arial,Helvetica,sans-serif;font-size:16px;font-weight:bold;\">{{ module.button_text }}</center>\n </v:roundrect>\n <![endif]-->\n <!--[if !mso]><!-->\n <a href=\"{{ module.button_link.url.href }}\" style=\"display:inline-block;padding:14px 36px;background-color:{{ module.button_color.color }};color:#ffffff;font-family:Arial,Helvetica,sans-serif;font-size:16px;font-weight:700;text-decoration:none;border-radius:6px;line-height:1.2;\">{{ module.button_text }}</a>\n <!--<![endif]-->\n </td>\n </tr>\n</table>\n<!--[if mso]></td></tr></table><![endif]-->",
45
+ "moduleCss": "",
46
+ "moduleJs": ""
47
+ },
48
+ {
49
+ "moduleName": "footer",
50
+ "fieldsJson": "[{\"name\":\"company_name\",\"label\":\"Company Name\",\"type\":\"text\",\"default\":\"Acme Inc.\"},{\"name\":\"address_line\",\"label\":\"Address\",\"type\":\"text\",\"default\":\"123 Main Street, Suite 100, San Francisco, CA 94105\"}]",
51
+ "metaJson": "{\"label\":\"Footer\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
52
+ "moduleHtml": "<!--[if mso]><table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr><td><![endif]-->\n<table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"max-width:600px;margin:0 auto;\">\n <tr>\n <td style=\"padding:30px;background-color:#f8f8f8;text-align:center;border-top:1px solid #e0e0e0;\">\n <p style=\"margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.5;color:#999999;\">{{ module.company_name }}</p>\n <p style=\"margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.5;color:#999999;\">{{ module.address_line }}</p>\n <p style=\"margin:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.5;color:#999999;\">\n <a href=\"{{ unsubscribe_link }}\" style=\"color:#999999;text-decoration:underline;\">Unsubscribe</a>\n &nbsp;&middot;&nbsp;\n <a href=\"{{ unsubscribe_link_all }}\" style=\"color:#999999;text-decoration:underline;\">Manage Preferences</a>\n </p>\n </td>\n </tr>\n</table>\n<!--[if mso]></td></tr></table><![endif]-->",
53
+ "moduleCss": "",
54
+ "moduleJs": ""
55
+ }
56
+ ],
57
+ "moduleOrder": ["preheader", "header", "hero", "getting-started", "cta-block", "footer"],
58
+ "sharedCss": "",
59
+ "sharedJs": ""
60
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "id": "email-announcement",
3
+ "name": "Product Announcement",
4
+ "description": "Announce a new feature or product update with hero image and benefit highlights",
5
+ "category": "Email",
6
+ "contentType": "email",
7
+ "modules": [
8
+ {
9
+ "moduleName": "preheader",
10
+ "fieldsJson": "[{\"name\":\"preview_text\",\"label\":\"Preview Text\",\"type\":\"text\",\"default\":\"Big update: we just shipped the feature you asked for.\"}]",
11
+ "metaJson": "{\"label\":\"Preheader\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
12
+ "moduleHtml": "<!--[if !mso]><!-->\n<div style=\"display:none;font-size:1px;color:#f4f4f4;line-height:1px;max-height:0;max-width:0;opacity:0;overflow:hidden;mso-hide:all;\">\n {{ module.preview_text }}\n &zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;\n</div>\n<!--<![endif]-->",
13
+ "moduleCss": "",
14
+ "moduleJs": ""
15
+ },
16
+ {
17
+ "moduleName": "header",
18
+ "fieldsJson": "[{\"name\":\"logo_image\",\"label\":\"Logo\",\"type\":\"image\",\"default\":{\"src\":\"https://placehold.co/180x40/333333/ffffff?text=YourLogo\",\"alt\":\"Company Logo\",\"width\":180,\"height\":40}},{\"name\":\"badge_text\",\"label\":\"Badge Text\",\"type\":\"text\",\"default\":\"What's New\"}]",
19
+ "metaJson": "{\"label\":\"Header\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
20
+ "moduleHtml": "<!--[if mso]><table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr><td><![endif]-->\n<table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"max-width:600px;margin:0 auto;\">\n <tr>\n <td style=\"padding:24px 30px;background-color:#ffffff;\">\n <table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n <tr>\n <td style=\"text-align:left;\">\n <img src=\"{{ module.logo_image.src }}\" alt=\"{{ module.logo_image.alt }}\" width=\"{{ module.logo_image.width }}\" height=\"{{ module.logo_image.height }}\" style=\"display:block;border:0;outline:none;text-decoration:none;max-width:100%;height:auto;\" />\n </td>\n <td style=\"text-align:right;vertical-align:middle;\">\n <span style=\"display:inline-block;padding:4px 12px;background-color:#e8613a;color:#ffffff;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:700;border-radius:12px;letter-spacing:0.5px;\">{{ module.badge_text }}</span>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n</table>\n<!--[if mso]></td></tr></table><![endif]-->",
21
+ "moduleCss": "",
22
+ "moduleJs": ""
23
+ },
24
+ {
25
+ "moduleName": "hero",
26
+ "fieldsJson": "[{\"name\":\"headline\",\"label\":\"Headline\",\"type\":\"text\",\"default\":\"Smart Scheduling is here\"},{\"name\":\"subheadline\",\"label\":\"Subheadline\",\"type\":\"text\",\"default\":\"No more back-and-forth. Let your calendar do the work.\"},{\"name\":\"hero_image\",\"label\":\"Hero Image\",\"type\":\"image\",\"default\":{\"src\":\"https://placehold.co/600x300/f0f0f0/333333?text=Product+Screenshot\",\"alt\":\"Product screenshot showing the new feature\",\"width\":600,\"height\":300}}]",
27
+ "metaJson": "{\"label\":\"Hero\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
28
+ "moduleHtml": "<!--[if mso]><table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr><td><![endif]-->\n<table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"max-width:600px;margin:0 auto;\">\n <tr>\n <td style=\"padding:30px 30px 20px;background-color:#ffffff;text-align:center;\">\n <h1 style=\"margin:0 0 12px;font-family:Georgia,'Times New Roman',Times,serif;font-size:30px;line-height:1.2;color:#1a1a1a;font-weight:700;\">{{ module.headline }}</h1>\n <p style=\"margin:0 0 24px;font-family:Arial,Helvetica,sans-serif;font-size:17px;line-height:1.5;color:#555555;\">{{ module.subheadline }}</p>\n </td>\n </tr>\n <tr>\n <td style=\"padding:0;background-color:#ffffff;\">\n <img src=\"{{ module.hero_image.src }}\" alt=\"{{ module.hero_image.alt }}\" width=\"600\" style=\"display:block;width:100%;max-width:600px;height:auto;border:0;outline:none;text-decoration:none;\" />\n </td>\n </tr>\n</table>\n<!--[if mso]></td></tr></table><![endif]-->",
29
+ "moduleCss": "",
30
+ "moduleJs": ""
31
+ },
32
+ {
33
+ "moduleName": "benefits",
34
+ "fieldsJson": "[{\"name\":\"section_title\",\"label\":\"Section Title\",\"type\":\"text\",\"default\":\"What this means for you\"},{\"name\":\"benefit_items\",\"label\":\"Benefits\",\"type\":\"group\",\"occurrence\":{\"min\":1,\"max\":4,\"default\":3},\"default\":[{\"benefit_title\":\"Save 3 hours every week\",\"benefit_description\":\"Automated scheduling eliminates the email tennis. Clients pick a time that works for both of you.\"},{\"benefit_title\":\"Fewer no-shows\",\"benefit_description\":\"Automatic reminders go out 24 hours and 1 hour before. No-show rate drops by 40% on average.\"},{\"benefit_title\":\"Works with your calendar\",\"benefit_description\":\"Google Calendar, Outlook, and iCal sync both ways. Your availability is always current.\"}],\"children\":[{\"name\":\"benefit_title\",\"label\":\"Benefit Title\",\"type\":\"text\",\"default\":\"Benefit Title\"},{\"name\":\"benefit_description\",\"label\":\"Benefit Description\",\"type\":\"text\",\"default\":\"Benefit description here.\"}]}]",
35
+ "metaJson": "{\"label\":\"Benefits\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
36
+ "moduleHtml": "<!--[if mso]><table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr><td><![endif]-->\n<table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"max-width:600px;margin:0 auto;\">\n <tr>\n <td style=\"padding:30px 30px 10px;background-color:#ffffff;\">\n <h2 style=\"margin:0 0 20px;font-family:Georgia,'Times New Roman',Times,serif;font-size:22px;line-height:1.3;color:#1a1a1a;font-weight:700;\">{{ module.section_title }}</h2>\n </td>\n </tr>\n {% for item in module.benefit_items %}\n <tr>\n <td style=\"padding:0 30px 20px;background-color:#ffffff;\">\n <table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"background-color:#f9f9f9;border-radius:8px;\">\n <tr>\n <td style=\"padding:20px;\">\n <h3 style=\"margin:0 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:17px;line-height:1.3;color:#1a1a1a;font-weight:600;\">{{ item.benefit_title }}</h3>\n <p style=\"margin:0;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.5;color:#666666;\">{{ item.benefit_description }}</p>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n {% endfor %}\n</table>\n<!--[if mso]></td></tr></table><![endif]-->",
37
+ "moduleCss": "",
38
+ "moduleJs": ""
39
+ },
40
+ {
41
+ "moduleName": "cta-block",
42
+ "fieldsJson": "[{\"name\":\"button_text\",\"label\":\"Button Text\",\"type\":\"text\",\"default\":\"Try Smart Scheduling\"},{\"name\":\"button_link\",\"label\":\"Button Link\",\"type\":\"link\",\"default\":{\"url\":{\"href\":\"https://example.com/features/scheduling\",\"type\":\"EXTERNAL\"},\"open_in_new_tab\":false}},{\"name\":\"button_color\",\"label\":\"Button Color\",\"type\":\"color\",\"default\":{\"color\":\"#e8613a\",\"opacity\":100}}]",
43
+ "metaJson": "{\"label\":\"CTA Block\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
44
+ "moduleHtml": "<!--[if mso]><table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr><td><![endif]-->\n<table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"max-width:600px;margin:0 auto;\">\n <tr>\n <td style=\"padding:10px 30px 40px;background-color:#ffffff;text-align:center;\">\n <!--[if mso]>\n <v:roundrect xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" href=\"{{ module.button_link.url.href }}\" style=\"height:48px;v-text-anchor:middle;width:240px;\" arcsize=\"10%\" strokecolor=\"{{ module.button_color.color }}\" fillcolor=\"{{ module.button_color.color }}\">\n <w:anchorlock/>\n <center style=\"color:#ffffff;font-family:Arial,Helvetica,sans-serif;font-size:16px;font-weight:bold;\">{{ module.button_text }}</center>\n </v:roundrect>\n <![endif]-->\n <!--[if !mso]><!-->\n <a href=\"{{ module.button_link.url.href }}\" style=\"display:inline-block;padding:14px 40px;background-color:{{ module.button_color.color }};color:#ffffff;font-family:Arial,Helvetica,sans-serif;font-size:16px;font-weight:700;text-decoration:none;border-radius:6px;line-height:1.2;\">{{ module.button_text }}</a>\n <!--<![endif]-->\n </td>\n </tr>\n</table>\n<!--[if mso]></td></tr></table><![endif]-->",
45
+ "moduleCss": "",
46
+ "moduleJs": ""
47
+ },
48
+ {
49
+ "moduleName": "footer",
50
+ "fieldsJson": "[{\"name\":\"company_name\",\"label\":\"Company Name\",\"type\":\"text\",\"default\":\"Acme Inc.\"},{\"name\":\"address_line\",\"label\":\"Address\",\"type\":\"text\",\"default\":\"123 Main Street, Suite 100, San Francisco, CA 94105\"}]",
51
+ "metaJson": "{\"label\":\"Footer\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
52
+ "moduleHtml": "<!--[if mso]><table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr><td><![endif]-->\n<table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"max-width:600px;margin:0 auto;\">\n <tr>\n <td style=\"padding:30px;background-color:#f8f8f8;text-align:center;border-top:1px solid #e0e0e0;\">\n <p style=\"margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.5;color:#999999;\">{{ module.company_name }}</p>\n <p style=\"margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.5;color:#999999;\">{{ module.address_line }}</p>\n <p style=\"margin:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.5;color:#999999;\">\n <a href=\"{{ unsubscribe_link }}\" style=\"color:#999999;text-decoration:underline;\">Unsubscribe</a>\n &nbsp;&middot;&nbsp;\n <a href=\"{{ unsubscribe_link_all }}\" style=\"color:#999999;text-decoration:underline;\">Manage Preferences</a>\n </p>\n </td>\n </tr>\n</table>\n<!--[if mso]></td></tr></table><![endif]-->",
53
+ "moduleCss": "",
54
+ "moduleJs": ""
55
+ }
56
+ ],
57
+ "moduleOrder": ["preheader", "header", "hero", "benefits", "cta-block", "footer"],
58
+ "sharedCss": "",
59
+ "sharedJs": ""
60
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "id": "email-newsletter",
3
+ "name": "Newsletter",
4
+ "description": "Content digest with featured article and curated story grid",
5
+ "category": "Email",
6
+ "contentType": "email",
7
+ "modules": [
8
+ {
9
+ "moduleName": "preheader",
10
+ "fieldsJson": "[{\"name\":\"preview_text\",\"label\":\"Preview Text\",\"type\":\"text\",\"default\":\"This week: 3 stories worth 5 minutes of your time.\"}]",
11
+ "metaJson": "{\"label\":\"Preheader\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
12
+ "moduleHtml": "<!--[if !mso]><!-->\n<div style=\"display:none;font-size:1px;color:#f4f4f4;line-height:1px;max-height:0;max-width:0;opacity:0;overflow:hidden;mso-hide:all;\">\n {{ module.preview_text }}\n &zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;&zwnj;&nbsp;\n</div>\n<!--<![endif]-->",
13
+ "moduleCss": "",
14
+ "moduleJs": ""
15
+ },
16
+ {
17
+ "moduleName": "header",
18
+ "fieldsJson": "[{\"name\":\"newsletter_title\",\"label\":\"Newsletter Name\",\"type\":\"text\",\"default\":\"The Weekly Brief\"},{\"name\":\"edition\",\"label\":\"Edition\",\"type\":\"text\",\"default\":\"Issue #42 \\u2014 April 2026\"}]",
19
+ "metaJson": "{\"label\":\"Header\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
20
+ "moduleHtml": "<!--[if mso]><table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr><td><![endif]-->\n<table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"max-width:600px;margin:0 auto;\">\n <tr>\n <td style=\"padding:28px 30px;background-color:#1a1a1a;text-align:center;\">\n <h1 style=\"margin:0 0 4px;font-family:Georgia,'Times New Roman',Times,serif;font-size:24px;line-height:1.2;color:#ffffff;font-weight:700;letter-spacing:0.5px;\">{{ module.newsletter_title }}</h1>\n <p style=\"margin:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.4;color:#999999;\">{{ module.edition }}</p>\n </td>\n </tr>\n</table>\n<!--[if mso]></td></tr></table><![endif]-->",
21
+ "moduleCss": "",
22
+ "moduleJs": ""
23
+ },
24
+ {
25
+ "moduleName": "featured-article",
26
+ "fieldsJson": "[{\"name\":\"article_image\",\"label\":\"Featured Image\",\"type\":\"image\",\"default\":{\"src\":\"https://placehold.co/600x280/e8e8e8/333333?text=Featured+Article\",\"alt\":\"Featured article image\",\"width\":600,\"height\":280}},{\"name\":\"article_title\",\"label\":\"Article Title\",\"type\":\"text\",\"default\":\"Why your onboarding flow is losing 40% of signups\"},{\"name\":\"article_summary\",\"label\":\"Summary\",\"type\":\"text\",\"default\":\"We analyzed 200 SaaS onboarding sequences and found three patterns that predict churn within the first week. The fix is simpler than you think.\"},{\"name\":\"article_link\",\"label\":\"Read More Link\",\"type\":\"link\",\"default\":{\"url\":{\"href\":\"https://example.com/blog/onboarding-churn\",\"type\":\"EXTERNAL\"},\"open_in_new_tab\":true}}]",
27
+ "metaJson": "{\"label\":\"Featured Article\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
28
+ "moduleHtml": "<!--[if mso]><table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr><td><![endif]-->\n<table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"max-width:600px;margin:0 auto;\">\n <tr>\n <td style=\"padding:0;background-color:#ffffff;\">\n <a href=\"{{ module.article_link.url.href }}\" style=\"text-decoration:none;\">\n <img src=\"{{ module.article_image.src }}\" alt=\"{{ module.article_image.alt }}\" width=\"600\" style=\"display:block;width:100%;max-width:600px;height:auto;border:0;outline:none;text-decoration:none;\" />\n </a>\n </td>\n </tr>\n <tr>\n <td style=\"padding:24px 30px 30px;background-color:#ffffff;\">\n <h2 style=\"margin:0 0 10px;font-family:Georgia,'Times New Roman',Times,serif;font-size:24px;line-height:1.3;color:#1a1a1a;font-weight:700;\">\n <a href=\"{{ module.article_link.url.href }}\" style=\"color:#1a1a1a;text-decoration:none;\">{{ module.article_title }}</a>\n </h2>\n <p style=\"margin:0 0 16px;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6;color:#555555;\">{{ module.article_summary }}</p>\n <a href=\"{{ module.article_link.url.href }}\" style=\"font-family:Arial,Helvetica,sans-serif;font-size:15px;font-weight:600;color:#e8613a;text-decoration:none;\">Read the full article &rarr;</a>\n </td>\n </tr>\n</table>\n<!--[if mso]></td></tr></table><![endif]-->",
29
+ "moduleCss": "",
30
+ "moduleJs": ""
31
+ },
32
+ {
33
+ "moduleName": "story-grid",
34
+ "fieldsJson": "[{\"name\":\"section_title\",\"label\":\"Section Title\",\"type\":\"text\",\"default\":\"Also worth reading\"},{\"name\":\"stories\",\"label\":\"Stories\",\"type\":\"group\",\"occurrence\":{\"min\":1,\"max\":4,\"default\":3},\"default\":[{\"story_title\":\"The 5-minute retention check\",\"story_summary\":\"A quick framework to diagnose where users drop off. No analytics degree required.\",\"story_link_url\":\"https://example.com/blog/retention-check\"},{\"story_title\":\"Case study: How Relay tripled activations\",\"story_summary\":\"Their secret was removing 3 steps from signup. Here's exactly what they cut.\",\"story_link_url\":\"https://example.com/blog/relay-case-study\"},{\"story_title\":\"Template: User feedback survey\",\"story_summary\":\"Steal our 6-question survey that gets 35% response rates. Copy, paste, send.\",\"story_link_url\":\"https://example.com/resources/survey-template\"}],\"children\":[{\"name\":\"story_title\",\"label\":\"Title\",\"type\":\"text\",\"default\":\"Story title\"},{\"name\":\"story_summary\",\"label\":\"Summary\",\"type\":\"text\",\"default\":\"Brief summary of the story.\"},{\"name\":\"story_link_url\",\"label\":\"Link URL\",\"type\":\"text\",\"default\":\"https://example.com\"}]}]",
35
+ "metaJson": "{\"label\":\"Story Grid\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
36
+ "moduleHtml": "<!--[if mso]><table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr><td><![endif]-->\n<table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"max-width:600px;margin:0 auto;\">\n <tr>\n <td style=\"padding:30px 30px 10px;background-color:#ffffff;border-top:1px solid #e0e0e0;\">\n <h2 style=\"margin:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.4;color:#999999;text-transform:uppercase;letter-spacing:1px;font-weight:600;\">{{ module.section_title }}</h2>\n </td>\n </tr>\n {% for story in module.stories %}\n <tr>\n <td style=\"padding:16px 30px;background-color:#ffffff;{% if not loop.last %}border-bottom:1px solid #f0f0f0;{% endif %}\">\n <h3 style=\"margin:0 0 4px;font-family:Georgia,'Times New Roman',Times,serif;font-size:18px;line-height:1.3;font-weight:700;\">\n <a href=\"{{ story.story_link_url }}\" style=\"color:#1a1a1a;text-decoration:none;\">{{ story.story_title }}</a>\n </h3>\n <p style=\"margin:0;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.5;color:#666666;\">{{ story.story_summary }}</p>\n </td>\n </tr>\n {% endfor %}\n</table>\n<!--[if mso]></td></tr></table><![endif]-->",
37
+ "moduleCss": "",
38
+ "moduleJs": ""
39
+ },
40
+ {
41
+ "moduleName": "footer",
42
+ "fieldsJson": "[{\"name\":\"company_name\",\"label\":\"Company Name\",\"type\":\"text\",\"default\":\"Acme Inc.\"},{\"name\":\"address_line\",\"label\":\"Address\",\"type\":\"text\",\"default\":\"123 Main Street, Suite 100, San Francisco, CA 94105\"}]",
43
+ "metaJson": "{\"label\":\"Footer\",\"host_template_types\":[\"EMAIL\"],\"is_available_for_new_content\":true,\"css_assets\":[],\"js_assets\":[],\"icon\":\"module\"}",
44
+ "moduleHtml": "<!--[if mso]><table role=\"presentation\" width=\"600\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" align=\"center\"><tr><td><![endif]-->\n<table role=\"presentation\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" style=\"max-width:600px;margin:0 auto;\">\n <tr>\n <td style=\"padding:30px;background-color:#1a1a1a;text-align:center;\">\n <p style=\"margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.5;color:#999999;\">{{ module.company_name }} | {{ module.address_line }}</p>\n <p style=\"margin:0;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.5;color:#999999;\">\n <a href=\"{{ unsubscribe_link }}\" style=\"color:#999999;text-decoration:underline;\">Unsubscribe</a>\n &nbsp;&middot;&nbsp;\n <a href=\"{{ view_as_page_url }}\" style=\"color:#999999;text-decoration:underline;\">View in browser</a>\n </p>\n </td>\n </tr>\n</table>\n<!--[if mso]></td></tr></table><![endif]-->",
45
+ "moduleCss": "",
46
+ "moduleJs": ""
47
+ }
48
+ ],
49
+ "moduleOrder": ["preheader", "header", "featured-article", "story-grid", "footer"],
50
+ "sharedCss": "",
51
+ "sharedJs": ""
52
+ }