react-bricks 4.7.8 → 5.0.0-alpha.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.
package/astro/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";require("intersection-observer");var e=require("../react-bricks-CXY4gR9A.js"),t=require("react"),r=require("../react-bricks-Dk66W1Cf.js"),n=require("react-icons/fi"),i=require("../react-bricks-CI8avgJu.js");function o(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("../react-bricks-DRIKzHUS.js"),require("classnames"),require("../react-bricks-G-FCJ1Kd.js"),require("../react-bricks-CxG_ydhT.js"),require("ts-md5");var a,s=o(t),c="c"+(a=5,e.__spreadArray([],e.__read(Array(a)),!1).map((function(){return(~~(36*Math.random())).toString(36)})).join("")),l=function(){return t.createElement(t.Fragment,null,t.createElement("style",null,"\n.".concat(c," {\n display:block;\n position: fixed;\n box-sizing: border-box;\n z-index: 999;\n bottom: 20px;\n left: 20px;\n padding: 5px 12px;\n background-color: #ffffffdd;\n display: flex;\n justify-content: center;\n align-items: center;\n color: #1e293b;\n font-size: 11px;\n font-weight: 600;\n border: 1px solid #e2e8f0cc;\n border-radius: 20px;\n text-transform: uppercase;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);\n filter: none;\n transition: all 300ms ease;\n}\n.").concat(c,":hover {\n background-color: #ffffff;\n filter: drop-shadow(0 20px 13px rgb(0 0 0 / 0.03)) drop-shadow(0 8px 5px rgb(0 0 0 / 0.08));\n}\n.").concat(c," .l {\n transition: color 300ms ease;\n}\n.").concat(c,":hover .l {\n color: #f65a8e;\n}\n ")),t.createElement("a",{href:"https://reactbricks.com?utm_campaign=site-badge",target:"_blank",className:c},t.createElement("img",{src:"https://reactbricks.com/_next/static/media/reactbricks_icon.c57a7be4.svg",style:{width:18,height:18,marginRight:6}}),t.createElement("span",null,"Made in ",t.createElement("span",{className:"l"},"React Bricks"))))},d=r.reactBricksAstroStore.getBricks,p=r.reactBricksAstroStore.getPageValues,u=r.reactBricksAstroStore.getBlockValue,f=r.reactBricksAstroStore.isAdmin;r.reactBricksAstroStore.register,Object.defineProperty(exports,"types",{enumerable:!0,get:function(){return e.types}}),exports.File=r.File,exports.Image=r.Image,exports.Link=r.Link,exports.List=r.ListAstro,exports.Repeater=r.Repeater,exports.RichText=r.CompatibleRichText,exports.RichTextExt=r.RichText,exports.Text=r.Text,exports.reactBricksAstroStore=r.reactBricksAstroStore,exports.useAdminContext=r.useAdminContext,exports.usePageValues=r.usePageValues,exports.useReactBricksContext=r.useReactBricksContext,exports.useVisualEdit=r.useVisualEdit,exports.Plain=i.Plain,exports.AstroBrick=function(n){var i=n.index,o=n.itemsCount,a=n.blockProps,s=n.page,c=n.block,l=n.pathname,d=void 0===l?"":l,p=e.__read(t.useState(r.reactBricksAstroStore.isRegistered()),2),u=p[0],f=p[1];if(t.useEffect((function(){return r.reactBricksAstroStore.__subscribeConfig((function(){f(!0)}))}),[]),"undefined"!=typeof window&&!u)return null;s&&r.reactBricksAstroStore.setPage(s);var g=r.reactBricksAstroStore.getBrick(c);return g?(r.reactBricksAstroStore.setPathname(d),t.createElement(g,e.__assign({},a,{key:a.key,index:i,itemsCount:o,__page:s,__block:c}))):("development"===process.env.NODE_ENV&&console.warn('Missing component for block type "'.concat(c.type,'"')),null)},exports.ClickToEdit=function(o){var a=o.customValues,s=o.id,c=o.language,d=e.__read(t.useState(!1),2),p=d[0],u=d[1],f=r.useReactBricksContext();if(t.useEffect((function(){u(!0)}),[]),!p)return null;var g=(null==a?void 0:a.___t)&&!i.isPaidPlan(null==a?void 0:a.___t)?t.createElement(l,null):null;if(!f)return g;var m,x=localStorage.getItem(e.AUTH_TOKEN_LS_KEY);if(x&&x.length>10&&x.startsWith("ey")){if((null==f?void 0:f.clickToEditSide)===e.types.ClickToEditSide.None)return g;var b=f||{navigate:function(){}},k=b.navigate,h=b.editorPath,_=b.clickToEditSide,y={};return _===e.types.ClickToEditSide.BottomRight&&(y.bottom=50,y.right=0,y.borderTopLeftRadius=999,y.borderBottomLeftRadius=999,y.transform="translate(8px,0)"),_===e.types.ClickToEditSide.BottomLeft&&(y.bottom=50,y.left=0,y.borderTopRightRadius=999,y.borderBottomRightRadius=999,y.transform="translate(-8px,0)"),_===e.types.ClickToEditSide.TopRight&&(y.top=50,y.right=0,y.borderTopLeftRadius=999,y.borderBottomLeftRadius=999,y.transform="translate(8px,0)"),_===e.types.ClickToEditSide.TopLeft&&(y.top=50,y.left=0,y.borderTopRightRadius=999,y.borderBottomRightRadius=999,y.transform="translate(-8px,0)"),t.createElement(t.Fragment,null,t.createElement("style",null,"\n.rb-click-to-edit {\n position: fixed;\n z-index: 10;\n width: 61px;\n height: 38px;\n background-color: #f65a8e;\n display: flex;\n justify-content: center;\n align-items: center;\n color: #fff;\n font-size: 20px;\n cursor: pointer;\n box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n transition: all 150ms ease;\n border: 2px solid #fff;\n}\n.rb-click-to-edit-left:hover {\n transform: translate(-2px,0)!important;\n}\n.rb-click-to-edit-right:hover {\n transform: translate(2px,0)!important;\n}\n "),t.createElement("div",{className:"rb-click-to-edit ".concat((m=_,m===e.types.ClickToEditSide.TopLeft||m===e.types.ClickToEditSide.BottomLeft?"rb-click-to-edit-left":"rb-click-to-edit-right")),style:y,onClick:function(){return k("".concat(h,"?p=").concat(encodeURIComponent(s),"&l=").concat(c))}},t.createElement(n.FiEdit,null)),g)}return g},exports.Icon=function(t){var r=t.icon,n=t.width,i=void 0===n?24:n,o=t.height,a=void 0===o?24:o,c=t.title,l=t.className,d=t.style,p=e.__rest(t,["icon","width","height","title","className","style"]);if(null==r?void 0:r.url){var u=d?{style:e.__assign({width:i,height:a},d)}:{style:{width:i,height:a}};return s.createElement("div",e.__assign({"aria-label":c||r.name,className:l,dangerouslySetInnerHTML:{__html:r.svg}},u,p))}return null},exports.PageWrapper=function(e){var t=e.children,r=e.pageType,n=e.page,i=e.renderEnvironment;return r.renderWrapper&&"function"==typeof r.renderWrapper?r.renderWrapper({children:t,page:n,renderEnvironment:i}):t},exports.getBlockValue=u,exports.getBricks=d,exports.getPageValues=p,exports.isAdmin=f;
1
+ "use strict";require("intersection-observer");var e=require("../react-bricks-CXY4gR9A.js"),t=require("react"),r=require("../react-bricks-BO3GhXhK.js"),n=require("react-icons/fi"),i=require("../react-bricks-CI8avgJu.js"),o=require("../react-bricks-DFQvWLhz.js");function s(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("../react-bricks-DRIKzHUS.js"),require("classnames"),require("../react-bricks-G-FCJ1Kd.js"),require("ts-md5");var a,c=s(t),l="c"+(a=5,e.__spreadArray([],e.__read(Array(a)),!1).map((function(){return(~~(36*Math.random())).toString(36)})).join("")),d=function(){return t.createElement(t.Fragment,null,t.createElement("style",null,"\n.".concat(l," {\n display:block;\n position: fixed;\n box-sizing: border-box;\n z-index: 999;\n bottom: 20px;\n left: 20px;\n padding: 5px 12px;\n background-color: #ffffffdd;\n display: flex;\n justify-content: center;\n align-items: center;\n color: #1e293b;\n font-size: 11px;\n font-weight: 600;\n border: 1px solid #e2e8f0cc;\n border-radius: 20px;\n text-transform: uppercase;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);\n filter: none;\n transition: all 300ms ease;\n}\n.").concat(l,":hover {\n background-color: #ffffff;\n filter: drop-shadow(0 20px 13px rgb(0 0 0 / 0.03)) drop-shadow(0 8px 5px rgb(0 0 0 / 0.08));\n}\n.").concat(l," .l {\n transition: color 300ms ease;\n}\n.").concat(l,":hover .l {\n color: #f65a8e;\n}\n ")),t.createElement("a",{href:"https://reactbricks.com?utm_campaign=site-badge",target:"_blank",className:l},t.createElement("img",{src:"https://reactbricks.com/_next/static/media/reactbricks_icon.c57a7be4.svg",style:{width:18,height:18,marginRight:6}}),t.createElement("span",null,"Made in ",t.createElement("span",{className:"l"},"React Bricks"))))},p=r.reactBricksAstroStore.getBricks,u=r.reactBricksAstroStore.getPageValues,f=r.reactBricksAstroStore.getBlockValue,m=r.reactBricksAstroStore.isAdmin;r.reactBricksAstroStore.register,Object.defineProperty(exports,"types",{enumerable:!0,get:function(){return e.types}}),exports.File=r.File,exports.Image=r.Image,exports.Link=r.Link,exports.List=r.ListAstro,exports.Repeater=r.Repeater,exports.RichText=r.CompatibleRichText,exports.RichTextExt=r.RichText,exports.Text=r.Text,exports.fetchForms=r.fetchForms,exports.reactBricksAstroStore=r.reactBricksAstroStore,exports.useAdminContext=r.useAdminContext,exports.usePageValues=r.usePageValues,exports.useReactBricksContext=r.useReactBricksContext,exports.useVisualEdit=r.useVisualEdit,exports.Plain=i.Plain,exports.sendFormSubmission=o.sendFormSubmission,exports.AstroBrick=function(n){var i=n.index,o=n.itemsCount,s=n.blockProps,a=n.page,c=n.block,l=n.pathname,d=void 0===l?"":l,p=e.__read(t.useState(r.reactBricksAstroStore.isRegistered()),2),u=p[0],f=p[1];if(t.useEffect((function(){return r.reactBricksAstroStore.__subscribeConfig((function(){f(!0)}))}),[]),"undefined"!=typeof window&&!u)return null;a&&r.reactBricksAstroStore.setPage(a);var m=r.reactBricksAstroStore.getBrick(c);return m?(r.reactBricksAstroStore.setPathname(d),t.createElement(m,e.__assign({},s,{key:s.key,index:i,itemsCount:o,__page:a,__block:c}))):("development"===process.env.NODE_ENV&&console.warn('Missing component for block type "'.concat(c.type,'"')),null)},exports.ClickToEdit=function(o){var s=o.customValues,a=o.id,c=o.language,l=e.__read(t.useState(!1),2),p=l[0],u=l[1],f=r.useReactBricksContext();if(t.useEffect((function(){u(!0)}),[]),!p)return null;var m=(null==s?void 0:s.___t)&&!i.isPaidPlan(null==s?void 0:s.___t)?t.createElement(d,null):null;if(!f)return m;var g,x=localStorage.getItem(e.AUTH_TOKEN_LS_KEY);if(x&&x.length>10&&x.startsWith("ey")){if((null==f?void 0:f.clickToEditSide)===e.types.ClickToEditSide.None)return m;var b=f||{navigate:function(){}},k=b.navigate,h=b.editorPath,_=b.clickToEditSide,y={};return _===e.types.ClickToEditSide.BottomRight&&(y.bottom=50,y.right=0,y.borderTopLeftRadius=999,y.borderBottomLeftRadius=999,y.transform="translate(8px,0)"),_===e.types.ClickToEditSide.BottomLeft&&(y.bottom=50,y.left=0,y.borderTopRightRadius=999,y.borderBottomRightRadius=999,y.transform="translate(-8px,0)"),_===e.types.ClickToEditSide.TopRight&&(y.top=50,y.right=0,y.borderTopLeftRadius=999,y.borderBottomLeftRadius=999,y.transform="translate(8px,0)"),_===e.types.ClickToEditSide.TopLeft&&(y.top=50,y.left=0,y.borderTopRightRadius=999,y.borderBottomRightRadius=999,y.transform="translate(-8px,0)"),t.createElement(t.Fragment,null,t.createElement("style",null,"\n.rb-click-to-edit {\n position: fixed;\n z-index: 10;\n width: 61px;\n height: 38px;\n background-color: #f65a8e;\n display: flex;\n justify-content: center;\n align-items: center;\n color: #fff;\n font-size: 20px;\n cursor: pointer;\n box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n transition: all 150ms ease;\n border: 2px solid #fff;\n}\n.rb-click-to-edit-left:hover {\n transform: translate(-2px,0)!important;\n}\n.rb-click-to-edit-right:hover {\n transform: translate(2px,0)!important;\n}\n "),t.createElement("div",{className:"rb-click-to-edit ".concat((g=_,g===e.types.ClickToEditSide.TopLeft||g===e.types.ClickToEditSide.BottomLeft?"rb-click-to-edit-left":"rb-click-to-edit-right")),style:y,onClick:function(){return k("".concat(h,"?p=").concat(encodeURIComponent(a),"&l=").concat(c))}},t.createElement(n.FiEdit,null)),m)}return m},exports.Icon=function(t){var r=t.icon,n=t.width,i=void 0===n?24:n,o=t.height,s=void 0===o?24:o,a=t.title,l=t.className,d=t.style,p=e.__rest(t,["icon","width","height","title","className","style"]);if(null==r?void 0:r.url){var u=d?{style:e.__assign({width:i,height:s},d)}:{style:{width:i,height:s}};return c.createElement("div",e.__assign({"aria-label":a||r.name,className:l,dangerouslySetInnerHTML:{__html:r.svg}},u,p))}return null},exports.PageWrapper=function(e){var t=e.children,r=e.pageType,n=e.page,i=e.renderEnvironment;return r.renderWrapper&&"function"==typeof r.renderWrapper?r.renderWrapper({children:t,page:n,renderEnvironment:i}):t},exports.getBlockValue=f,exports.getBricks=p,exports.getPageValues=u,exports.isAdmin=m;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-bricks-astro",
3
- "version": "4.7.8",
3
+ "version": "5.0.0-alpha.0",
4
4
  "main": "index.js",
5
5
  "module": "react-bricks-astro.esm.js",
6
6
  "types": "./react-bricks-astro.d.ts",
@@ -244,6 +244,15 @@ declare namespace types {
244
244
  aiText: boolean;
245
245
  aiGen: boolean;
246
246
  aiSeo: boolean;
247
+ emailMarketing: boolean;
248
+ forms: boolean;
249
+ };
250
+ emailMarketingConfig?: {
251
+ providers: Array<{
252
+ value: string;
253
+ label: string;
254
+ }>;
255
+ testRecipients: string[];
247
256
  };
248
257
  } | null;
249
258
  /**
@@ -276,6 +285,26 @@ declare namespace types {
276
285
  date: string;
277
286
  user: EditingUser;
278
287
  };
288
+ /**
289
+ * Provider to send EmailMarketing
290
+ */
291
+ export type EmailMarketingProvider = 'brevo' | 'getresponse' | 'mailchimp' | 'mailerlite' | 'resend' | 'sendgrid';
292
+ /** EmailMarketing Sender (from address) */
293
+ export type EmailMarketingSender = {
294
+ email: string;
295
+ name: string;
296
+ id?: string;
297
+ };
298
+ /**
299
+ * EmailMarketing configuration on Page
300
+ */
301
+ export type EmailMarketingConfig = {
302
+ provider: EmailMarketingProvider;
303
+ sender: string;
304
+ listId: string;
305
+ campaignName: string;
306
+ subject: string;
307
+ };
279
308
  /**
280
309
  * AppOnPage
281
310
  */
@@ -294,6 +323,7 @@ declare namespace types {
294
323
  meta: IMeta;
295
324
  customValues?: Props;
296
325
  externalData?: Props;
326
+ emailMarketingConfig?: EmailMarketingConfig;
297
327
  content: IContentBlock[];
298
328
  workingContent?: IContentBlock[];
299
329
  committedContent?: IContentBlock[];
@@ -553,6 +583,7 @@ declare namespace types {
553
583
  multiple: boolean;
554
584
  embedValues?: boolean;
555
585
  };
586
+ onChange?: (props: T) => Partial<T>;
556
587
  }
557
588
  /**
558
589
  * Sidebar Edit Props
@@ -650,12 +681,16 @@ declare namespace types {
650
681
  editable?: boolean;
651
682
  getDefaultContent?: () => (string | IBrickStory | IContentBlock)[];
652
683
  };
653
- export type RenderEnvironment = 'Frontend' | 'Preview' | 'Admin';
684
+ export type RenderEnvironment = 'Frontend' | 'Preview' | 'Admin' | 'Email';
654
685
  export interface IRenderWrapperArgs {
655
686
  children: React__default.ReactElement;
656
687
  page: PageValues;
657
688
  renderEnvironment: RenderEnvironment;
658
689
  }
690
+ export interface IRenderEmailHtmlArgs {
691
+ children: React__default.ReactElement;
692
+ page: PageValues;
693
+ }
659
694
  /**
660
695
  * Page type
661
696
  */
@@ -677,8 +712,9 @@ declare namespace types {
677
712
  slugPrefix?: ISlugPrefix;
678
713
  template?: Array<TemplateSlot>;
679
714
  headlessView?: boolean;
680
- isEmail?: boolean;
715
+ isEmailMarketing?: boolean;
681
716
  renderWrapper?: (args: IRenderWrapperArgs) => React__default.ReactElement;
717
+ renderEmailHtml?: (args: IRenderEmailHtmlArgs) => string | Promise<string>;
682
718
  }
683
719
  /**
684
720
  * Structure returned by the cleanBlocks function
@@ -1240,6 +1276,12 @@ interface TextPropsWithCustomFieldName extends BaseTextProps {
1240
1276
  type TextProps = TextPropsWithPropName | TextPropsWithMetaFieldName | TextPropsWithCustomFieldName;
1241
1277
  declare const Text: React.FC<TextProps>;
1242
1278
 
1279
+ interface Form {
1280
+ id: string;
1281
+ name: string;
1282
+ }
1283
+ declare function fetchForms(): Promise<Form[]>;
1284
+
1243
1285
  declare class ReactBricksAstroStore {
1244
1286
  static instance: any;
1245
1287
  private configListeners;
@@ -1289,9 +1331,16 @@ declare const _default: {
1289
1331
  isSlateContent: (value: any) => boolean;
1290
1332
  };
1291
1333
 
1334
+ interface SendFormSubmissionResult {
1335
+ success: boolean;
1336
+ statusCode: number;
1337
+ message: string;
1338
+ }
1339
+ declare const sendFormSubmission: ({ appId, appEnv, token, formId, emailAddress, data, }: SendFormSubmissionParams) => Promise<SendFormSubmissionResult>;
1340
+
1292
1341
  declare const getBricks: () => types.Bricks;
1293
1342
  declare const getPageValues: () => types.PageValues | null;
1294
1343
  declare const getBlockValue: (propName: string) => any | null;
1295
1344
  declare const isAdmin: () => boolean;
1296
1345
 
1297
- export { AstroBrick, ClickToEdit, File, IconViewer as Icon, Image, Link, ListAstro as List, PageWrapper, _default as Plain, Repeater, CompatibleRichText as RichText, RichText as RichTextExt, Text, getBlockValue, getBricks, getPageValues, isAdmin, reactBricksAstroStore, types, useAdminContext, usePageValues, useReactBricksContext, useVisualEdit };
1346
+ export { AstroBrick, ClickToEdit, File, IconViewer as Icon, Image, Link, ListAstro as List, PageWrapper, _default as Plain, Repeater, CompatibleRichText as RichText, RichText as RichTextExt, Text, fetchForms, getBlockValue, getBricks, getPageValues, isAdmin, reactBricksAstroStore, sendFormSubmission, types, useAdminContext, usePageValues, useReactBricksContext, useVisualEdit };
@@ -1,2 +1,2 @@
1
- import"intersection-observer";import{c as t,e as n,b as r,j as i,t as o,_ as s}from"../react-bricks-DQcHsMAz.esm.js";import*as l from"react";import m,{useState as p,useEffect as f}from"react";import{r as u,u as g}from"../react-bricks-Bbj8bihf.esm.js";export{F as File,I as Image,L as Link,a as List,R as Repeater,C as RichText,b as RichTextExt,T as Text,c as useAdminContext,d as usePageValues,e as useVisualEdit}from"../react-bricks-Bbj8bihf.esm.js";import{FiEdit as h}from"react-icons/fi";import{i as x}from"../react-bricks-tEFCCN5P.esm.js";export{P as Plain}from"../react-bricks-tEFCCN5P.esm.js";import"../react-bricks-OncRrHCV.esm.js";import"classnames";import"../react-bricks-Co69y3so.esm.js";import"../react-bricks-BI4w4a7p.esm.js";import"ts-md5";var k=function(e){var r=e.index,i=e.itemsCount,o=e.blockProps,a=e.page,s=e.block,c=e.pathname,l=void 0===c?"":c,d=t(p(u.isRegistered()),2),g=d[0],b=d[1];if(f((function(){return u.__subscribeConfig((function(){b(!0)}))}),[]),"undefined"!=typeof window&&!g)return null;a&&u.setPage(a);var h=u.getBrick(s);return h?(u.setPathname(l),m.createElement(h,n({},o,{key:o.key,index:r,itemsCount:i,__page:a,__block:s}))):("development"===process.env.NODE_ENV&&console.warn('Missing component for block type "'.concat(s.type,'"')),null)},v="c"+r([],t(Array(5)),!1).map((function(){return(~~(36*Math.random())).toString(36)})).join(""),E=function(){return m.createElement(m.Fragment,null,m.createElement("style",null,"\n.".concat(v," {\n display:block;\n position: fixed;\n box-sizing: border-box;\n z-index: 999;\n bottom: 20px;\n left: 20px;\n padding: 5px 12px;\n background-color: #ffffffdd;\n display: flex;\n justify-content: center;\n align-items: center;\n color: #1e293b;\n font-size: 11px;\n font-weight: 600;\n border: 1px solid #e2e8f0cc;\n border-radius: 20px;\n text-transform: uppercase;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);\n filter: none;\n transition: all 300ms ease;\n}\n.").concat(v,":hover {\n background-color: #ffffff;\n filter: drop-shadow(0 20px 13px rgb(0 0 0 / 0.03)) drop-shadow(0 8px 5px rgb(0 0 0 / 0.08));\n}\n.").concat(v," .l {\n transition: color 300ms ease;\n}\n.").concat(v,":hover .l {\n color: #f65a8e;\n}\n ")),m.createElement("a",{href:"https://reactbricks.com?utm_campaign=site-badge",target:"_blank",className:v},m.createElement("img",{src:"https://reactbricks.com/_next/static/media/reactbricks_icon.c57a7be4.svg",style:{width:18,height:18,marginRight:6}}),m.createElement("span",null,"Made in ",m.createElement("span",{className:"l"},"React Bricks"))))},y=function(e){var n=e.customValues,r=e.id,a=e.language,s=t(p(!1),2),c=s[0],l=s[1],d=g();if(f((function(){l(!0)}),[]),!c)return null;var u=(null==n?void 0:n.___t)&&!x(null==n?void 0:n.___t)?m.createElement(E,null):null;if(!d)return u;var b,k=localStorage.getItem(i);if(k&&k.length>10&&k.startsWith("ey")){if((null==d?void 0:d.clickToEditSide)===o.ClickToEditSide.None)return u;var v=d||{navigate:function(){}},y=v.navigate,R=v.editorPath,T=v.clickToEditSide,_={};return T===o.ClickToEditSide.BottomRight&&(_.bottom=50,_.right=0,_.borderTopLeftRadius=999,_.borderBottomLeftRadius=999,_.transform="translate(8px,0)"),T===o.ClickToEditSide.BottomLeft&&(_.bottom=50,_.left=0,_.borderTopRightRadius=999,_.borderBottomRightRadius=999,_.transform="translate(-8px,0)"),T===o.ClickToEditSide.TopRight&&(_.top=50,_.right=0,_.borderTopLeftRadius=999,_.borderBottomLeftRadius=999,_.transform="translate(8px,0)"),T===o.ClickToEditSide.TopLeft&&(_.top=50,_.left=0,_.borderTopRightRadius=999,_.borderBottomRightRadius=999,_.transform="translate(-8px,0)"),m.createElement(m.Fragment,null,m.createElement("style",null,"\n.rb-click-to-edit {\n position: fixed;\n z-index: 10;\n width: 61px;\n height: 38px;\n background-color: #f65a8e;\n display: flex;\n justify-content: center;\n align-items: center;\n color: #fff;\n font-size: 20px;\n cursor: pointer;\n box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n transition: all 150ms ease;\n border: 2px solid #fff;\n}\n.rb-click-to-edit-left:hover {\n transform: translate(-2px,0)!important;\n}\n.rb-click-to-edit-right:hover {\n transform: translate(2px,0)!important;\n}\n "),m.createElement("div",{className:"rb-click-to-edit ".concat((b=T,b===o.ClickToEditSide.TopLeft||b===o.ClickToEditSide.BottomLeft?"rb-click-to-edit-left":"rb-click-to-edit-right")),style:_,onClick:function(){return y("".concat(R,"?p=").concat(encodeURIComponent(r),"&l=").concat(a))}},m.createElement(h,null)),u)}return u},_=function(e){var t=e.icon,r=e.width,i=void 0===r?24:r,o=e.height,a=void 0===o?24:o,c=e.title,d=e.className,m=e.style,p=s(e,["icon","width","height","title","className","style"]);if(null==t?void 0:t.url){var f=m?{style:n({width:i,height:a},m)}:{style:{width:i,height:a}};return l.createElement("div",n({"aria-label":c||t.name,className:d,dangerouslySetInnerHTML:{__html:t.svg}},f,p))}return null},w=function(e){var t=e.children,n=e.pageType,r=e.page,i=e.renderEnvironment;return n.renderWrapper&&"function"==typeof n.renderWrapper?n.renderWrapper({children:t,page:r,renderEnvironment:i}):t},j=u.getBricks,S=u.getPageValues,B=u.getBlockValue,N=u.isAdmin;u.register;export{k as AstroBrick,y as ClickToEdit,_ as Icon,w as PageWrapper,B as getBlockValue,j as getBricks,S as getPageValues,N as isAdmin,u as reactBricksAstroStore,o as types,g as useReactBricksContext};
1
+ import"intersection-observer";import{c as t,e as n,b as r,j as i,t as o,_ as l}from"../react-bricks-DQcHsMAz.esm.js";import*as m from"react";import p,{useState as u,useEffect as g}from"react";import{r as h,u as x}from"../react-bricks-GjLxbz59.esm.js";export{F as File,I as Image,L as Link,a as List,R as Repeater,C as RichText,b as RichTextExt,T as Text,f as fetchForms,c as useAdminContext,d as usePageValues,e as useVisualEdit}from"../react-bricks-GjLxbz59.esm.js";import{FiEdit as k}from"react-icons/fi";import{i as v}from"../react-bricks-tEFCCN5P.esm.js";export{P as Plain}from"../react-bricks-tEFCCN5P.esm.js";export{s as sendFormSubmission}from"../react-bricks-CDsN-sgk.esm.js";import"../react-bricks-OncRrHCV.esm.js";import"classnames";import"../react-bricks-Co69y3so.esm.js";import"ts-md5";var E=function(e){var r=e.index,i=e.itemsCount,o=e.blockProps,a=e.page,s=e.block,c=e.pathname,l=void 0===c?"":c,d=t(u(h.isRegistered()),2),m=d[0],f=d[1];if(g((function(){return h.__subscribeConfig((function(){f(!0)}))}),[]),"undefined"!=typeof window&&!m)return null;a&&h.setPage(a);var b=h.getBrick(s);return b?(h.setPathname(l),p.createElement(b,n({},o,{key:o.key,index:r,itemsCount:i,__page:a,__block:s}))):("development"===process.env.NODE_ENV&&console.warn('Missing component for block type "'.concat(s.type,'"')),null)},y="c"+r([],t(Array(5)),!1).map((function(){return(~~(36*Math.random())).toString(36)})).join(""),_=function(){return p.createElement(p.Fragment,null,p.createElement("style",null,"\n.".concat(y," {\n display:block;\n position: fixed;\n box-sizing: border-box;\n z-index: 999;\n bottom: 20px;\n left: 20px;\n padding: 5px 12px;\n background-color: #ffffffdd;\n display: flex;\n justify-content: center;\n align-items: center;\n color: #1e293b;\n font-size: 11px;\n font-weight: 600;\n border: 1px solid #e2e8f0cc;\n border-radius: 20px;\n text-transform: uppercase;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);\n filter: none;\n transition: all 300ms ease;\n}\n.").concat(y,":hover {\n background-color: #ffffff;\n filter: drop-shadow(0 20px 13px rgb(0 0 0 / 0.03)) drop-shadow(0 8px 5px rgb(0 0 0 / 0.08));\n}\n.").concat(y," .l {\n transition: color 300ms ease;\n}\n.").concat(y,":hover .l {\n color: #f65a8e;\n}\n ")),p.createElement("a",{href:"https://reactbricks.com?utm_campaign=site-badge",target:"_blank",className:y},p.createElement("img",{src:"https://reactbricks.com/_next/static/media/reactbricks_icon.c57a7be4.svg",style:{width:18,height:18,marginRight:6}}),p.createElement("span",null,"Made in ",p.createElement("span",{className:"l"},"React Bricks"))))},w=function(e){var n=e.customValues,r=e.id,a=e.language,s=t(u(!1),2),c=s[0],l=s[1],d=x();if(g((function(){l(!0)}),[]),!c)return null;var m=(null==n?void 0:n.___t)&&!v(null==n?void 0:n.___t)?p.createElement(_,null):null;if(!d)return m;var f,b=localStorage.getItem(i);if(b&&b.length>10&&b.startsWith("ey")){if((null==d?void 0:d.clickToEditSide)===o.ClickToEditSide.None)return m;var h=d||{navigate:function(){}},E=h.navigate,y=h.editorPath,R=h.clickToEditSide,T={};return R===o.ClickToEditSide.BottomRight&&(T.bottom=50,T.right=0,T.borderTopLeftRadius=999,T.borderBottomLeftRadius=999,T.transform="translate(8px,0)"),R===o.ClickToEditSide.BottomLeft&&(T.bottom=50,T.left=0,T.borderTopRightRadius=999,T.borderBottomRightRadius=999,T.transform="translate(-8px,0)"),R===o.ClickToEditSide.TopRight&&(T.top=50,T.right=0,T.borderTopLeftRadius=999,T.borderBottomLeftRadius=999,T.transform="translate(8px,0)"),R===o.ClickToEditSide.TopLeft&&(T.top=50,T.left=0,T.borderTopRightRadius=999,T.borderBottomRightRadius=999,T.transform="translate(-8px,0)"),p.createElement(p.Fragment,null,p.createElement("style",null,"\n.rb-click-to-edit {\n position: fixed;\n z-index: 10;\n width: 61px;\n height: 38px;\n background-color: #f65a8e;\n display: flex;\n justify-content: center;\n align-items: center;\n color: #fff;\n font-size: 20px;\n cursor: pointer;\n box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n transition: all 150ms ease;\n border: 2px solid #fff;\n}\n.rb-click-to-edit-left:hover {\n transform: translate(-2px,0)!important;\n}\n.rb-click-to-edit-right:hover {\n transform: translate(2px,0)!important;\n}\n "),p.createElement("div",{className:"rb-click-to-edit ".concat((f=R,f===o.ClickToEditSide.TopLeft||f===o.ClickToEditSide.BottomLeft?"rb-click-to-edit-left":"rb-click-to-edit-right")),style:T,onClick:function(){return E("".concat(y,"?p=").concat(encodeURIComponent(r),"&l=").concat(a))}},p.createElement(k,null)),m)}return m},S=function(e){var t=e.icon,r=e.width,i=void 0===r?24:r,o=e.height,a=void 0===o?24:o,s=e.title,c=e.className,d=e.style,p=l(e,["icon","width","height","title","className","style"]);if(null==t?void 0:t.url){var f=d?{style:n({width:i,height:a},d)}:{style:{width:i,height:a}};return m.createElement("div",n({"aria-label":s||t.name,className:c,dangerouslySetInnerHTML:{__html:t.svg}},f,p))}return null},j=function(e){var t=e.children,n=e.pageType,r=e.page,i=e.renderEnvironment;return n.renderWrapper&&"function"==typeof n.renderWrapper?n.renderWrapper({children:t,page:r,renderEnvironment:i}):t},B=h.getBricks,N=h.getPageValues,V=h.getBlockValue,z=h.isAdmin;h.register;export{E as AstroBrick,w as ClickToEdit,S as Icon,j as PageWrapper,V as getBlockValue,B as getBricks,N as getPageValues,z as isAdmin,h as reactBricksAstroStore,o as types,x as useReactBricksContext};
2
2
  //# sourceMappingURL=react-bricks-astro.esm.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-bricks-astro-server",
3
- "version": "4.7.8",
3
+ "version": "5.0.0-alpha.0",
4
4
  "main": "index.js",
5
5
  "module": "react-bricks-astro-server.esm.js",
6
6
  "types": "./react-bricks-astro-server.d.ts",
@@ -242,6 +242,15 @@ declare namespace types {
242
242
  aiText: boolean;
243
243
  aiGen: boolean;
244
244
  aiSeo: boolean;
245
+ emailMarketing: boolean;
246
+ forms: boolean;
247
+ };
248
+ emailMarketingConfig?: {
249
+ providers: Array<{
250
+ value: string;
251
+ label: string;
252
+ }>;
253
+ testRecipients: string[];
245
254
  };
246
255
  } | null;
247
256
  /**
@@ -274,6 +283,26 @@ declare namespace types {
274
283
  date: string;
275
284
  user: EditingUser;
276
285
  };
286
+ /**
287
+ * Provider to send EmailMarketing
288
+ */
289
+ export type EmailMarketingProvider = 'brevo' | 'getresponse' | 'mailchimp' | 'mailerlite' | 'resend' | 'sendgrid';
290
+ /** EmailMarketing Sender (from address) */
291
+ export type EmailMarketingSender = {
292
+ email: string;
293
+ name: string;
294
+ id?: string;
295
+ };
296
+ /**
297
+ * EmailMarketing configuration on Page
298
+ */
299
+ export type EmailMarketingConfig = {
300
+ provider: EmailMarketingProvider;
301
+ sender: string;
302
+ listId: string;
303
+ campaignName: string;
304
+ subject: string;
305
+ };
277
306
  /**
278
307
  * AppOnPage
279
308
  */
@@ -292,6 +321,7 @@ declare namespace types {
292
321
  meta: IMeta;
293
322
  customValues?: Props;
294
323
  externalData?: Props;
324
+ emailMarketingConfig?: EmailMarketingConfig;
295
325
  content: IContentBlock[];
296
326
  workingContent?: IContentBlock[];
297
327
  committedContent?: IContentBlock[];
@@ -551,6 +581,7 @@ declare namespace types {
551
581
  multiple: boolean;
552
582
  embedValues?: boolean;
553
583
  };
584
+ onChange?: (props: T) => Partial<T>;
554
585
  }
555
586
  /**
556
587
  * Sidebar Edit Props
@@ -648,12 +679,16 @@ declare namespace types {
648
679
  editable?: boolean;
649
680
  getDefaultContent?: () => (string | IBrickStory | IContentBlock)[];
650
681
  };
651
- export type RenderEnvironment = 'Frontend' | 'Preview' | 'Admin';
682
+ export type RenderEnvironment = 'Frontend' | 'Preview' | 'Admin' | 'Email';
652
683
  export interface IRenderWrapperArgs {
653
684
  children: React.ReactElement;
654
685
  page: PageValues;
655
686
  renderEnvironment: RenderEnvironment;
656
687
  }
688
+ export interface IRenderEmailHtmlArgs {
689
+ children: React.ReactElement;
690
+ page: PageValues;
691
+ }
657
692
  /**
658
693
  * Page type
659
694
  */
@@ -675,8 +710,9 @@ declare namespace types {
675
710
  slugPrefix?: ISlugPrefix;
676
711
  template?: Array<TemplateSlot>;
677
712
  headlessView?: boolean;
678
- isEmail?: boolean;
713
+ isEmailMarketing?: boolean;
679
714
  renderWrapper?: (args: IRenderWrapperArgs) => React.ReactElement;
715
+ renderEmailHtml?: (args: IRenderEmailHtmlArgs) => string | Promise<string>;
680
716
  }
681
717
  /**
682
718
  * Structure returned by the cleanBlocks function
package/frontend/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";require("intersection-observer");var e=require("../react-bricks-BHz2hAKU.js"),r=require("../react-bricks-1q9g5617.js"),t=require("../react-bricks-CXY4gR9A.js"),s=require("../react-bricks-CI8avgJu.js"),a=require("../react-bricks-DoXRatbL.js");require("react"),require("../react-bricks-DRIKzHUS.js"),require("classnames"),require("react-lazy-load-image-component"),require("axios"),require("@tanstack/react-query"),require("ts-md5"),require("react-icons/fi"),require("react-inlinesvg"),require("../react-bricks-CI44eOAm.js"),require("../react-bricks-CxG_ydhT.js"),exports.File=e.File,exports.Icon=e.Icon,exports.Image=e.Image,exports.Link=e.Link,exports.Meta=e.Meta,exports.PageViewer=e.PageViewer,exports.Preview=e.Preview,exports.ReactBricks=e.ReactBricks,exports.Repeater=e.Repeater,exports.RichText=e.CompatibleRichText,exports.RichTextExt=e.RichText,exports.Slot=e.Slot,exports.Text=e.Text,exports.blockPluginConstructor=e.blockPluginConstructor,exports.blockWithModalPluginConstructor=e.blockWithModalPluginConstructor,exports.fetchPage=e.fetchPage,exports.fetchPages=e.fetchPages,exports.fetchTags=e.fetchTags,exports.markPluginConstructor=e.markPluginConstructor,exports.plugins=e.plugins,exports.renderJsonLd=e.renderJsonLd,exports.renderMeta=e.renderMeta,exports.useAdminContext=e.useAdminContext,exports.usePage=e.usePage,exports.usePagePublic=e.usePage$1,exports.usePageValues=e.usePageValues,exports.usePages=e.usePages,exports.usePagesPublic=e.usePagesPublic,exports.useReactBricksContext=e.useReactBricksContext,exports.useTagsPublic=e.useTagsPublic,exports.useVisualEdit=e.useVisualEdit,exports.JsonLd=r.JsonLd,exports.getPagePlainText=r.getPagePlainText,exports.getSchemaOrgData=r.getSchemaOrgData,Object.defineProperty(exports,"types",{enumerable:!0,get:function(){return t.types}}),exports.Plain=s.Plain,exports.cleanPage=a.cleanPage;
1
+ "use strict";require("intersection-observer");var e=require("../react-bricks-DLwlJ3FH.js"),r=require("../react-bricks-1q9g5617.js"),t=require("../react-bricks-DFQvWLhz.js"),s=require("../react-bricks-CXY4gR9A.js"),o=require("../react-bricks-CI8avgJu.js"),i=require("../react-bricks-DoXRatbL.js");require("react"),require("../react-bricks-DRIKzHUS.js"),require("classnames"),require("react-lazy-load-image-component"),require("axios"),require("@tanstack/react-query"),require("ts-md5"),require("react-icons/fi"),require("react-inlinesvg"),require("../react-bricks-CI44eOAm.js"),exports.File=e.File,exports.Icon=e.Icon,exports.Image=e.Image,exports.Link=e.Link,exports.Meta=e.Meta,exports.PageViewer=e.PageViewer,exports.Preview=e.Preview,exports.ReactBricks=e.ReactBricks,exports.Repeater=e.Repeater,exports.RichText=e.CompatibleRichText,exports.RichTextExt=e.RichText,exports.Slot=e.Slot,exports.Text=e.Text,exports.blockPluginConstructor=e.blockPluginConstructor,exports.blockWithModalPluginConstructor=e.blockWithModalPluginConstructor,exports.fetchForms=e.fetchForms,exports.fetchPage=e.fetchPage,exports.fetchPages=e.fetchPages,exports.fetchTags=e.fetchTags,exports.markPluginConstructor=e.markPluginConstructor,exports.plugins=e.plugins,exports.renderJsonLd=e.renderJsonLd,exports.renderMeta=e.renderMeta,exports.useAdminContext=e.useAdminContext,exports.usePage=e.usePage,exports.usePagePublic=e.usePage$1,exports.usePageValues=e.usePageValues,exports.usePages=e.usePages,exports.usePagesPublic=e.usePagesPublic,exports.useReactBricksContext=e.useReactBricksContext,exports.useTagsPublic=e.useTagsPublic,exports.useVisualEdit=e.useVisualEdit,exports.JsonLd=r.JsonLd,exports.getPagePlainText=r.getPagePlainText,exports.getSchemaOrgData=r.getSchemaOrgData,exports.sendFormSubmission=t.sendFormSubmission,Object.defineProperty(exports,"types",{enumerable:!0,get:function(){return s.types}}),exports.Plain=o.Plain,exports.cleanPage=i.cleanPage;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-bricks-frontend",
3
- "version": "4.7.8",
3
+ "version": "5.0.0-alpha.0",
4
4
  "main": "index.js",
5
5
  "module": "react-bricks-frontend.esm.js",
6
6
  "types": "../react-bricks.d.ts",
@@ -1,2 +1,2 @@
1
- import"intersection-observer";export{F as File,I as Icon,e as Image,L as Link,M as Meta,P as PageViewer,g as Preview,R as ReactBricks,i as Repeater,C as RichText,j as RichTextExt,S as Slot,T as Text,b as blockPluginConstructor,a as blockWithModalPluginConstructor,f as fetchPage,c as fetchPages,d as fetchTags,m as markPluginConstructor,p as plugins,r as renderJsonLd,h as renderMeta,u as useAdminContext,k as usePage,l as usePagePublic,q as usePageValues,n as usePages,o as usePagesPublic,s as useReactBricksContext,t as useTagsPublic,v as useVisualEdit}from"../react-bricks-CWWIdXlz.esm.js";export{J as JsonLd,g as getPagePlainText,a as getSchemaOrgData}from"../react-bricks-CjbRDz77.esm.js";export{t as types}from"../react-bricks-DQcHsMAz.esm.js";export{P as Plain}from"../react-bricks-tEFCCN5P.esm.js";export{c as cleanPage}from"../react-bricks-DqbdURsm.esm.js";import"react";import"../react-bricks-OncRrHCV.esm.js";import"classnames";import"react-lazy-load-image-component";import"axios";import"@tanstack/react-query";import"ts-md5";import"react-icons/fi";import"react-inlinesvg";import"../react-bricks-DzZdqeB7.esm.js";import"../react-bricks-BI4w4a7p.esm.js";
1
+ import"intersection-observer";export{F as File,I as Icon,g as Image,L as Link,M as Meta,P as PageViewer,h as Preview,R as ReactBricks,j as Repeater,C as RichText,k as RichTextExt,S as Slot,T as Text,b as blockPluginConstructor,a as blockWithModalPluginConstructor,f as fetchForms,c as fetchPage,d as fetchPages,e as fetchTags,m as markPluginConstructor,p as plugins,r as renderJsonLd,i as renderMeta,u as useAdminContext,l as usePage,n as usePagePublic,s as usePageValues,o as usePages,q as usePagesPublic,t as useReactBricksContext,v as useTagsPublic,w as useVisualEdit}from"../react-bricks-DVQQDmRE.esm.js";export{J as JsonLd,g as getPagePlainText,a as getSchemaOrgData}from"../react-bricks-CjbRDz77.esm.js";export{s as sendFormSubmission}from"../react-bricks-CDsN-sgk.esm.js";export{t as types}from"../react-bricks-DQcHsMAz.esm.js";export{P as Plain}from"../react-bricks-tEFCCN5P.esm.js";export{c as cleanPage}from"../react-bricks-DqbdURsm.esm.js";import"react";import"../react-bricks-OncRrHCV.esm.js";import"classnames";import"react-lazy-load-image-component";import"axios";import"@tanstack/react-query";import"ts-md5";import"react-icons/fi";import"react-inlinesvg";import"../react-bricks-DzZdqeB7.esm.js";
2
2
  //# sourceMappingURL=react-bricks-frontend.esm.js.map