@grapesjs/studio-sdk-plugins 1.0.34 → 1.0.35

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 (47) hide show
  1. package/dist/aiChat/clientTools.d.ts +3 -3
  2. package/dist/aiChat/clientToolsProcessors.d.ts +5 -2
  3. package/dist/aiChat/components/AiChatHeader.d.ts +22 -2
  4. package/dist/aiChat/components/AiChatToolGenerateImage.d.ts +7 -0
  5. package/dist/aiChat/components/utils.d.ts +2 -0
  6. package/dist/aiChat/index.cjs.js +88 -99
  7. package/dist/aiChat/index.es.js +12677 -11001
  8. package/dist/aiChat/index.js +88 -99
  9. package/dist/aiChat/index.umd.js +97 -108
  10. package/dist/aiChat/locales/en.d.ts +38 -0
  11. package/dist/aiChat/server/index.cjs.js +91 -237
  12. package/dist/aiChat/server/index.es.js +721 -631
  13. package/dist/aiChat/server/index.js +91 -237
  14. package/dist/aiChat/server/index.umd.js +91 -237
  15. package/dist/aiChat/server/prompts.d.ts +15 -11
  16. package/dist/aiChat/server/tools.d.ts +74 -122
  17. package/dist/aiChat/server/types.d.ts +61 -3
  18. package/dist/aiChat/types.d.ts +69 -11
  19. package/dist/aiChat/typesSchema.d.ts +27 -0
  20. package/dist/googleFontsAssetProvider/index.cjs.js +1 -1
  21. package/dist/googleFontsAssetProvider/index.es.js +11 -11
  22. package/dist/googleFontsAssetProvider/index.umd.js +1 -1
  23. package/dist/iconifyComponent/index.cjs.js +2 -2
  24. package/dist/iconifyComponent/index.es.js +11 -11
  25. package/dist/iconifyComponent/index.umd.js +2 -2
  26. package/dist/index.cjs.js +20 -20
  27. package/dist/index.es.js +208 -208
  28. package/dist/index.umd.js +1 -1
  29. package/dist/layoutSidebarButtons/index.cjs.js +1 -1
  30. package/dist/layoutSidebarButtons/index.es.js +7 -7
  31. package/dist/layoutSidebarButtons/index.umd.js +1 -1
  32. package/dist/presetPrintable/index.cjs.js +2 -2
  33. package/dist/presetPrintable/index.es.js +5 -5
  34. package/dist/presetPrintable/index.umd.js +3 -3
  35. package/dist/prosemirror/index.cjs.js +1 -1
  36. package/dist/prosemirror/index.es.js +1 -1
  37. package/dist/prosemirror/index.umd.js +1 -1
  38. package/dist/rteTinyMce/index.cjs.js +2 -2
  39. package/dist/rteTinyMce/index.es.js +12 -12
  40. package/dist/rteTinyMce/index.umd.js +2 -2
  41. package/dist/tableComponent/index.cjs.js +1 -1
  42. package/dist/tableComponent/index.es.js +83 -83
  43. package/dist/tableComponent/index.umd.js +1 -1
  44. package/dist/youtubeAssetProvider/index.cjs.js +1 -1
  45. package/dist/youtubeAssetProvider/index.es.js +15 -15
  46. package/dist/youtubeAssetProvider/index.umd.js +1 -1
  47. package/package.json +1 -1
package/dist/index.umd.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(V,kn){typeof exports=="object"&&typeof module<"u"?kn(exports,require("handlebars/dist/cjs/handlebars")):typeof define=="function"&&define.amd?define(["exports","handlebars/dist/cjs/handlebars"],kn):(V=typeof globalThis<"u"?globalThis:V||self,kn(V.StudioSdkPlugins={},V.Handlebars))})(this,function(V,kn){"use strict";const Tr="app.grapesjs.com",Mr="app-stage.grapesjs.com",Ar=[Tr,"app2.grapesjs.com",Mr,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],Mp="license:check:start",Ap="license:check:end",Pp=()=>typeof window<"u",Ts=(n,e={})=>{const t=$p(n)?{id:n,src:n}:n;return new Promise((o,s)=>{var u,h;const{loadedScripts:i}=e,{id:r,src:l}=t,a=document.querySelector(`script[src="${l}"]`);if(a){if((u=e.onScript)==null||u.call(e,a),i&&!i.get(l)){a.addEventListener("load",()=>o(r)),a.addEventListener("error",()=>s(r));return}return o(r)}const c=window.define;window.define=void 0;const d=()=>{i==null||i.set(l,!0),window.define=c},p=document.createElement("script");p.src=l,p.onload=()=>{o(r),d()},p.onerror=()=>{s(r),d()},document.head.appendChild(p),(h=e.onScript)==null||h.call(e,p)})},Np=n=>{const e=n.map(t=>Ts(t));return Promise.allSettled(e)},Op=async n=>{const e=window.define;window.define=void 0;const t=await Np(n);return window.define=e,t},Ip=({isDev:n,isStage:e,isPlatform:t})=>`${n?"":`https://${e?Mr:Tr}`}/${t?"platform-api":"api"}`,Rp=()=>{const n=Pp()&&window.location.hostname;return!!n&&(Ar.includes(n)||Ar.some(e=>n.endsWith(e)))},Dp=n=>n.replace(/[A-Z]+(?![a-z])|[A-Z]/g,(e,t)=>(t?"-":"")+e.toLowerCase()),Lp=n=>typeof n<"u",$p=n=>typeof n=="string";function xt(n){return typeof n=="function"}async function zp({path:n,baseApiUrl:e,method:t="GET",headers:o={},params:s,body:i}){const l=`${e||Ip({isDev:!1,isStage:!1})}${n}`,a={method:t,headers:{"Content-Type":"application/json",...o}};i&&(a.body=JSON.stringify(i));const c=s?new URLSearchParams(s).toString():"",d=c?`?${c}`:"",p=await fetch(`${l}${d}`,a);if(!p.ok)throw new Error(`HTTP error! status: ${p.status}`);return p.json()}var F=(n=>(n.free="free",n.startup="startup",n.business="business",n.enterprise="enterprise",n))(F||{}),Pr=(n=>(n.Info="info",n.Error="error",n.Success="success",n.Warning="warning",n))(Pr||{}),j=(n=>(n.toastAdd="studio:toastAdd",n.toastRemove="studio:toastRemove",n.dialogOpen="studio:dialogOpen",n.dialogClose="studio:dialogClose",n.dialogExportCode="studio:dialogExportCode",n.sidebarLeftSet="studio:sidebarLeft:set",n.sidebarLeftGet="studio:sidebarLeft:get",n.sidebarLeftToggle="studio:sidebarLeft:toggle",n.sidebarRightSet="studio:sidebarRight:set",n.sidebarRightGet="studio:sidebarRight:get",n.sidebarRightToggle="studio:sidebarRight:toggle",n.sidebarTopSet="studio:sidebarTop:set",n.sidebarTopGet="studio:sidebarTop:get",n.sidebarTopToggle="studio:sidebarTop:toggle",n.sidebarBottomSet="studio:sidebarBottom:set",n.sidebarBottomGet="studio:sidebarBottom:get",n.sidebarBottomToggle="studio:sidebarBottom:toggle",n.symbolAdd="studio:symbolAdd",n.symbolDetach="studio:symbolDetach",n.symbolOverride="studio:symbolOverride",n.symbolPropagateStyles="studio:propagateStyles",n.getPagesConfig="studio:getPagesConfig",n.setPagesConfig="studio:setPagesConfig",n.getPageSettings="studio:getPageSettings",n.setPageSettings="studio:setPageSettings",n.clearPage="studio:clearPage",n.projectFiles="studio:projectFiles",n.validateCode="studio:validateCode",n.canvasReload="studio:canvasReload",n.getBlocksPanel="studio:getBlocksPanel",n.setBlocksPanel="studio:setBlocksPanel",n.getStateContextMenu="studio:getStateContextMenu",n.setStateContextMenu="studio:setStateContextMenu",n.contextMenuComponent="studio:contextMenuComponent",n.layoutAdd="studio:layoutAdd",n.layoutRemove="studio:layoutRemove",n.layoutToggle="studio:layoutToggle",n.layoutUpdate="studio:layoutUpdate",n.layoutGet="studio:layoutGet",n.layoutConfigGet="studio:layoutConfigGet",n.layoutConfigSet="studio:layoutConfigSet",n.layoutComponentAdd="studio:layoutComponentAdd",n.layoutComponentGet="studio:layoutComponentGet",n.layoutComponentRemove="studio:layoutComponentRemove",n.layoutComponentRender="studio:layoutComponentRender",n.getStateTheme="studio:getStateTheme",n.setStateTheme="studio:setStateTheme",n.assetProviderGet="studio:assetProviderGet",n.assetProviderAdd="studio:assetProviderAdd",n.assetProviderRemove="studio:assetProviderRemove",n.fontGet="studio:fontGet",n.fontAdd="studio:fontAdd",n.fontRemove="studio:fontRemove",n.fontManagerOpen="studio:fontManagerOpen",n.menuFontLoad="studio:menuFontLoad",n.toggleStateDataSource="studio:toggleStateDataSource",n.getStateDataSource="studio:getStateDataSource",n.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",n.dataSourceSetImporter="studio:dataSourceSetImporter",n.dataSourceSetExporter="studio:dataSourceSetExporter",n.setDragAbsolute="studio:setDragAbsolute",n))(j||{}),Nr=(n=>(n.layoutToggleId="studio:layoutToggle:",n.toggleBlocksPanel="studio:toggleBlocksPanel",n.pageSettingsUpdate="studio:pageSettingsUpdate",n.toggleDataSourcesPreview="studio:toggleDataSourcesPreview",n))(Nr||{}),Or=(n=>(n.dark="dark",n.light="light",n.auto="auto",n))(Or||{}),Ir=(n=>(n.web="web",n.email="email",n.document="document",n.react="react",n))(Ir||{});const Rr={[F.free]:0,[F.startup]:10,[F.business]:20,[F.enterprise]:30};function Bp(n){const e=n;return e.init=t=>o=>n(o,t),e}const G=n=>Bp(n);async function W({editor:n,plan:e,pluginName:t,licenseKey:o,onLicenseCheckResponse:s,cleanup:i}){let r="",l=!1;const a=Rp(),c=p=>{console.warn("Cleanup plugin:",t,"Reason:",p),i()},d=(p={})=>{var g;const{error:u,sdkLicense:h}=p,f=(g=p.plan)==null?void 0:g.category;if(!(h||p.license)||u)c(u||"Invalid license");else if(f){const b=Rr[e],C=Rr[f];b>C&&c({pluginRequiredPlan:e,licensePlan:f})}};n.on(Mp,p=>{r=p==null?void 0:p.baseApiUrl,l=!0}),n.on(Ap,p=>{s==null||s(p),d(p)}),setTimeout(async()=>{if(!l){if(a)return;if(o){const p=await Vp({licenseKey:o,pluginName:t,baseApiUrl:r});s==null||s(p),p&&d(p)}else c("The `licenseKey` option not provided")}},2e3)}async function Vp(n){const{licenseKey:e,pluginName:t,baseApiUrl:o}=n;try{return(await zp({baseApiUrl:o,path:`/sdk/${e||"na"}`,method:"POST",params:{d:window.location.hostname,pn:t}})).result||{}}catch(s){return console.error("Error during SDK license check:",s),!1}}const fo=(n,e)=>{var t;return!!((t=n==null?void 0:n.hasAttribute)!=null&&t.call(n,e))},ot=(n,e)=>{var t;return!!((t=n==null?void 0:n.classList)!=null&&t.contains(e))},$e=n=>e=>{var t;return((t=e.getAttribute)==null?void 0:t.call(e,Pe))===n},mo=(...n)=>e=>n.some(t=>e.is(t)),Ms=(...n)=>(e,t)=>n.some(o=>t.is(o)),Hp=(n,e={})=>{var i;const t={},o=[],s=[];for(const r in n){const{value:l,...a}=n[r];o.push({id:r,name:r,changeProp:!0,category:e.category,...a}),t[r]=l,!Lp(l)&&s.push(r);const{subTraits:c={}}=a;for(const d in a.subTraits)(i=c[d])==null||i.forEach(p=>{const u=p.id||p.name;t[u]=p.value})}return{propKeys:Object.keys(t),propsNoValues:s,props:t,traits:o}},Fp=(n,e)=>{e.forEach(t=>{if(t.subTraits){const o=`${t.id||t.name}`,s=t.changeProp?`change:${o}`:`change:attributes:${o}`;n.on(s,()=>Dr(n,o)),Dr(n,o)}})},Dr=(n,e)=>{const t=n.getTrait(e),o=t.get("category"),s=t.get("subTraits")||{},r=(Object.values(s).flat()||[]).map(c=>c.id||c.name);n.removeTrait(r);const l=s[t.getValue()],a=n.getTraitIndex(e)+1;l&&n.addTrait(l.map(c=>({category:o,...c})),{at:a})},As=(n,e,t)=>{const{doc:o=document}=t,s=t.target||o.head,i=s.querySelector(`style[${n}]`)||o.createElement("style");i.setAttribute(n,"true"),i.innerHTML=e,!s.contains(i)&&s.appendChild(i)},_p=(n,e)=>{e.forEach(t=>{const o=Dp(t);o!==t&&n.has(o)&&n.set({[t]:n.get(o),[o]:void 0})})},ke="gjs-plg-",go="data-gs-plg-",Pe="data-type-role",Lr=(...n)=>n.map(e=>`[data-gjs-type="${e}"]`).join(","),Gp="dialogComponent",Wp=G(function(n,e={}){const{Blocks:t,Components:o}=n,{licenseKey:s}=e,i="gjs-plg-dialog",r="gjs-plg-dialog-overlay",l="gjs-plg-dialog-content",a="gjs-plg-dialog-close",c="gjs-plg-dialog-title",d="gjs-plg-dialog-body",p="gjs-plg-dialog-description",u="gjs-plg-dialog-placeholder";t.add(i,{label:"Dialog",media:`
1
+ (function(V,kn){typeof exports=="object"&&typeof module<"u"?kn(exports,require("handlebars/dist/cjs/handlebars")):typeof define=="function"&&define.amd?define(["exports","handlebars/dist/cjs/handlebars"],kn):(V=typeof globalThis<"u"?globalThis:V||self,kn(V.StudioSdkPlugins={},V.Handlebars))})(this,function(V,kn){"use strict";const Tr="app.grapesjs.com",Mr="app-stage.grapesjs.com",Ar=[Tr,"app2.grapesjs.com",Mr,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],Mp="license:check:start",Ap="license:check:end",Pp=()=>typeof window<"u",Ts=(n,e={})=>{const t=$p(n)?{id:n,src:n}:n;return new Promise((o,s)=>{var u,h;const{loadedScripts:i}=e,{id:r,src:l}=t,a=document.querySelector(`script[src="${l}"]`);if(a){if((u=e.onScript)==null||u.call(e,a),i&&!i.get(l)){a.addEventListener("load",()=>o(r)),a.addEventListener("error",()=>s(r));return}return o(r)}const c=window.define;window.define=void 0;const d=()=>{i==null||i.set(l,!0),window.define=c},p=document.createElement("script");p.src=l,p.onload=()=>{o(r),d()},p.onerror=()=>{s(r),d()},document.head.appendChild(p),(h=e.onScript)==null||h.call(e,p)})},Np=n=>{const e=n.map(t=>Ts(t));return Promise.allSettled(e)},Op=async n=>{const e=window.define;window.define=void 0;const t=await Np(n);return window.define=e,t},Ip=({isDev:n,isStage:e,isPlatform:t})=>`${n?"":`https://${e?Mr:Tr}`}/${t?"platform-api":"api"}`,Rp=()=>{const n=Pp()&&window.location.hostname;return!!n&&(Ar.includes(n)||Ar.some(e=>n.endsWith(e)))},Dp=n=>n.replace(/[A-Z]+(?![a-z])|[A-Z]/g,(e,t)=>(t?"-":"")+e.toLowerCase()),Lp=n=>typeof n<"u",$p=n=>typeof n=="string";function xt(n){return typeof n=="function"}async function zp({path:n,baseApiUrl:e,method:t="GET",headers:o={},params:s,body:i}){const l=`${e||Ip({isDev:!1,isStage:!1})}${n}`,a={method:t,headers:{"Content-Type":"application/json",...o}};i&&(a.body=JSON.stringify(i));const c=s?new URLSearchParams(s).toString():"",d=c?`?${c}`:"",p=await fetch(`${l}${d}`,a);if(!p.ok)throw new Error(`HTTP error! status: ${p.status}`);return p.json()}var F=(n=>(n.free="free",n.startup="startup",n.business="business",n.enterprise="enterprise",n))(F||{}),Pr=(n=>(n.Info="info",n.Error="error",n.Success="success",n.Warning="warning",n))(Pr||{}),j=(n=>(n.toastAdd="studio:toastAdd",n.toastRemove="studio:toastRemove",n.dialogOpen="studio:dialogOpen",n.dialogClose="studio:dialogClose",n.dialogExportCode="studio:dialogExportCode",n.dialogImportCode="studio:dialogImportCode",n.sidebarLeftSet="studio:sidebarLeft:set",n.sidebarLeftGet="studio:sidebarLeft:get",n.sidebarLeftToggle="studio:sidebarLeft:toggle",n.sidebarRightSet="studio:sidebarRight:set",n.sidebarRightGet="studio:sidebarRight:get",n.sidebarRightToggle="studio:sidebarRight:toggle",n.sidebarTopSet="studio:sidebarTop:set",n.sidebarTopGet="studio:sidebarTop:get",n.sidebarTopToggle="studio:sidebarTop:toggle",n.sidebarBottomSet="studio:sidebarBottom:set",n.sidebarBottomGet="studio:sidebarBottom:get",n.sidebarBottomToggle="studio:sidebarBottom:toggle",n.symbolAdd="studio:symbolAdd",n.symbolDetach="studio:symbolDetach",n.symbolOverride="studio:symbolOverride",n.symbolPropagateStyles="studio:propagateStyles",n.getPagesConfig="studio:getPagesConfig",n.setPagesConfig="studio:setPagesConfig",n.getPageSettings="studio:getPageSettings",n.setPageSettings="studio:setPageSettings",n.clearPage="studio:clearPage",n.projectFiles="studio:projectFiles",n.validateCode="studio:validateCode",n.canvasReload="studio:canvasReload",n.getBlocksPanel="studio:getBlocksPanel",n.setBlocksPanel="studio:setBlocksPanel",n.getStateContextMenu="studio:getStateContextMenu",n.setStateContextMenu="studio:setStateContextMenu",n.contextMenuComponent="studio:contextMenuComponent",n.layoutAdd="studio:layoutAdd",n.layoutRemove="studio:layoutRemove",n.layoutToggle="studio:layoutToggle",n.layoutUpdate="studio:layoutUpdate",n.layoutGet="studio:layoutGet",n.layoutConfigGet="studio:layoutConfigGet",n.layoutConfigSet="studio:layoutConfigSet",n.layoutComponentAdd="studio:layoutComponentAdd",n.layoutComponentGet="studio:layoutComponentGet",n.layoutComponentRemove="studio:layoutComponentRemove",n.layoutComponentRender="studio:layoutComponentRender",n.getStateTheme="studio:getStateTheme",n.setStateTheme="studio:setStateTheme",n.assetProviderGet="studio:assetProviderGet",n.assetProviderAdd="studio:assetProviderAdd",n.assetProviderRemove="studio:assetProviderRemove",n.fontGet="studio:fontGet",n.fontAdd="studio:fontAdd",n.fontRemove="studio:fontRemove",n.fontManagerOpen="studio:fontManagerOpen",n.menuFontLoad="studio:menuFontLoad",n.toggleStateDataSource="studio:toggleStateDataSource",n.getStateDataSource="studio:getStateDataSource",n.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",n.dataSourceSetImporter="studio:dataSourceSetImporter",n.dataSourceSetExporter="studio:dataSourceSetExporter",n.setDragAbsolute="studio:setDragAbsolute",n))(j||{}),Nr=(n=>(n.layoutToggleId="studio:layoutToggle:",n.toggleBlocksPanel="studio:toggleBlocksPanel",n.pageSettingsUpdate="studio:pageSettingsUpdate",n.toggleDataSourcesPreview="studio:toggleDataSourcesPreview",n))(Nr||{}),Or=(n=>(n.dark="dark",n.light="light",n.auto="auto",n))(Or||{}),Ir=(n=>(n.web="web",n.email="email",n.document="document",n.react="react",n))(Ir||{});const Rr={[F.free]:0,[F.startup]:10,[F.business]:20,[F.enterprise]:30};function Bp(n){const e=n;return e.init=t=>o=>n(o,t),e}const G=n=>Bp(n);async function W({editor:n,plan:e,pluginName:t,licenseKey:o,onLicenseCheckResponse:s,cleanup:i}){let r="",l=!1;const a=Rp(),c=p=>{console.warn("Cleanup plugin:",t,"Reason:",p),i()},d=(p={})=>{var g;const{error:u,sdkLicense:h}=p,f=(g=p.plan)==null?void 0:g.category;if(!(h||p.license)||u)c(u||"Invalid license");else if(f){const b=Rr[e],C=Rr[f];b>C&&c({pluginRequiredPlan:e,licensePlan:f})}};n.on(Mp,p=>{r=p==null?void 0:p.baseApiUrl,l=!0}),n.on(Ap,p=>{s==null||s(p),d(p)}),setTimeout(async()=>{if(!l){if(a)return;if(o){const p=await Vp({licenseKey:o,pluginName:t,baseApiUrl:r});s==null||s(p),p&&d(p)}else c("The `licenseKey` option not provided")}},2e3)}async function Vp(n){const{licenseKey:e,pluginName:t,baseApiUrl:o}=n;try{return(await zp({baseApiUrl:o,path:`/sdk/${e||"na"}`,method:"POST",params:{d:window.location.hostname,pn:t}})).result||{}}catch(s){return console.error("Error during SDK license check:",s),!1}}const fo=(n,e)=>{var t;return!!((t=n==null?void 0:n.hasAttribute)!=null&&t.call(n,e))},ot=(n,e)=>{var t;return!!((t=n==null?void 0:n.classList)!=null&&t.contains(e))},$e=n=>e=>{var t;return((t=e.getAttribute)==null?void 0:t.call(e,Pe))===n},mo=(...n)=>e=>n.some(t=>e.is(t)),Ms=(...n)=>(e,t)=>n.some(o=>t.is(o)),Hp=(n,e={})=>{var i;const t={},o=[],s=[];for(const r in n){const{value:l,...a}=n[r];o.push({id:r,name:r,changeProp:!0,category:e.category,...a}),t[r]=l,!Lp(l)&&s.push(r);const{subTraits:c={}}=a;for(const d in a.subTraits)(i=c[d])==null||i.forEach(p=>{const u=p.id||p.name;t[u]=p.value})}return{propKeys:Object.keys(t),propsNoValues:s,props:t,traits:o}},Fp=(n,e)=>{e.forEach(t=>{if(t.subTraits){const o=`${t.id||t.name}`,s=t.changeProp?`change:${o}`:`change:attributes:${o}`;n.on(s,()=>Dr(n,o)),Dr(n,o)}})},Dr=(n,e)=>{const t=n.getTrait(e),o=t.get("category"),s=t.get("subTraits")||{},r=(Object.values(s).flat()||[]).map(c=>c.id||c.name);n.removeTrait(r);const l=s[t.getValue()],a=n.getTraitIndex(e)+1;l&&n.addTrait(l.map(c=>({category:o,...c})),{at:a})},As=(n,e,t)=>{const{doc:o=document}=t,s=t.target||o.head,i=s.querySelector(`style[${n}]`)||o.createElement("style");i.setAttribute(n,"true"),i.innerHTML=e,!s.contains(i)&&s.appendChild(i)},_p=(n,e)=>{e.forEach(t=>{const o=Dp(t);o!==t&&n.has(o)&&n.set({[t]:n.get(o),[o]:void 0})})},ke="gjs-plg-",go="data-gs-plg-",Pe="data-type-role",Lr=(...n)=>n.map(e=>`[data-gjs-type="${e}"]`).join(","),Gp="dialogComponent",Wp=G(function(n,e={}){const{Blocks:t,Components:o}=n,{licenseKey:s}=e,i="gjs-plg-dialog",r="gjs-plg-dialog-overlay",l="gjs-plg-dialog-content",a="gjs-plg-dialog-close",c="gjs-plg-dialog-title",d="gjs-plg-dialog-body",p="gjs-plg-dialog-description",u="gjs-plg-dialog-placeholder";t.add(i,{label:"Dialog",media:`
2
2
  <svg viewBox="0 0 24 24">
3
3
  <path d="M4 4h16v10H8l-4 4V4z"></path>
4
4
  </svg>
@@ -1 +1 @@
1
- "use strict";var A=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(A||{}),B=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(B||{}),I=(e=>(e.layoutToggleId="studio:layoutToggle:",e.toggleBlocksPanel="studio:toggleBlocksPanel",e.pageSettingsUpdate="studio:pageSettingsUpdate",e.toggleDataSourcesPreview="studio:toggleDataSourcesPreview",e))(I||{});const x="app.grapesjs.com",E="app-stage.grapesjs.com",H="app2.grapesjs.com",S="app-stage2.grapesjs.com",k=[x,H,E,S,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],j="license:check:start",W="license:check:end",K=()=>typeof window<"u",V=({isDev:e,isStage:a,isPlatform:o})=>`${e?"":`https://${a?E:x}`}/${o?"platform-api":"api"}`,m=()=>{const e=K()&&window.location.hostname;return!!e&&(k.includes(e)||k.some(a=>e.endsWith(a)))};async function F({path:e,baseApiUrl:a,method:o="GET",headers:r={},params:s,body:h}){const d=`${a||V({isDev:!1,isStage:!1})}${e}`,b={method:o,headers:{"Content-Type":"application/json",...r}};h&&(b.body=JSON.stringify(h));const g=s?new URLSearchParams(s).toString():"",u=g?`?${g}`:"",t=await fetch(`${d}${u}`,b);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.json()}const M={[A.free]:0,[A.startup]:10,[A.business]:20,[A.enterprise]:30};function q(e){const a=e;return a.init=o=>r=>e(r,o),a}const Z=e=>q(e);async function z({editor:e,plan:a,pluginName:o,licenseKey:r,onLicenseCheckResponse:s,cleanup:h}){let f="",d=!1;const b=m(),g=t=>{console.warn("Cleanup plugin:",o,"Reason:",t),h()},u=(t={})=>{var i;const{error:P,sdkLicense:l}=t,c=(i=t.plan)==null?void 0:i.category;if(!(l||t.license)||P)g(P||"Invalid license");else if(c){const y=M[a],p=M[c];y>p&&g({pluginRequiredPlan:a,licensePlan:c})}};e.on(j,t=>{f=t==null?void 0:t.baseApiUrl,d=!0}),e.on(W,t=>{s==null||s(t),u(t)}),setTimeout(async()=>{if(!d){if(b)return;if(r){const t=await C({licenseKey:r,pluginName:o,baseApiUrl:f});s==null||s(t),t&&u(t)}else g("The `licenseKey` option not provided")}},2e3)}async function C(e){const{licenseKey:a,pluginName:o,baseApiUrl:r}=e;try{return(await F({baseApiUrl:r,path:`/sdk/${a||"na"}`,method:"POST",params:{d:window.location.hostname,pn:o}})).result||{}}catch(s){return console.error("Error during SDK license check:",s),!1}}var v=(e=>(e.panelBlocks="panelBlocks",e.panelPagesLayers="panelPagesLayers",e.panelGlobalStyles="panelGlobalStyles",e.panelSidebarTabs="panelSidebarTabs",e.panelAssets="panelAssets",e.aiChatPanel="aiChatPanel",e.panelDataSources="panelDataSources",e))(v||{});const O="sidebarButtonsTarget",D=(e,a)=>{const{id:o,icon:r,label:s,tooltip:h,className:f,skipSelfClose:d,removeLayouts:b,layoutComponent:g,layoutCommand:u}=e,{pluginOpts:t,breakpointProps:P}=a,l=o;return{id:U(o),type:"button",icon:r,tooltip:s||h,className:f,editorEvents:{[`${I.layoutToggleId}${l}`]:({fromEvent:c,setState:n,editor:i})=>{n({active:c.isOpen}),setTimeout(()=>i.refresh({tools:!0}),20)}},onClick:({editor:c,state:n})=>{var w;if(n.active&&d)return;const i=(u==null?void 0:u.placer)||{type:"static",layoutId:O},y={...i,skipCleanup:i.type==="static"},p=b||Object.keys(v).filter(G=>G!==l);N(c,{removeLayouts:p,layout:{placer:y}});const L={id:l,placer:i,header:(u==null?void 0:u.header)??{label:s,close:!d},layout:g,style:{width:280,height:"100%",borderRightWidth:1,...u==null?void 0:u.style}},T=((w=t==null?void 0:t.sidebarLayoutCommand)==null?void 0:w.call(t,{...P,layoutCommand:L,sidebarButtonProps:e}))||L;c.runCommand(B.layoutToggle,{...T})}}},U=e=>`button__${e}`,N=(e,a={})=>{(a.removeLayouts||Object.keys(v)).forEach(r=>e.runCommand(B.layoutRemove,{id:r,layout:a.layout}))},$=e=>{const a=(e==null?void 0:e.breakpointTablet)??1024,o=(e==null?void 0:e.breakpointMobile)??768,r={},s=[{id:v.panelBlocks,icon:"plusBox",label:"Blocks",layoutComponent:{type:"panelBlocks"}},{id:v.panelPagesLayers,icon:"layers",label:"Pages & Layers",layoutComponent:{type:"panelPagesLayers"}},{id:v.panelGlobalStyles,icon:'<svg viewBox="0 0 24 24"> <path d="M20 14H6c-2.2 0-4 1.8-4 4s1.8 4 4 4h14a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2M6 20c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m.3-8L13 5.3a2 2 0 0 1 2.8 0l2.8 2.8c.8.8.8 2 0 2.8l-.9 1.1H6.3M2 13.5V4c0-1.1.9-2 2-2h4a2 2 0 0 1 2 2v1.5l-8 8Z"/></svg>',label:"Global Styles",layoutComponent:{type:"panelGlobalStyles"}},{id:v.panelAssets,icon:'<svg viewBox="0 0 24 24"><path d="M22,16V4A2,2 0 0,0 20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16M11,12L13.03,14.71L16,11L20,16H8M2,6V20A2,2 0 0,0 4,22H18V20H4V6" /></svg>',label:"Assets",layoutComponent:{type:"panelAssets",content:{itemsPerRow:2,header:{addUrl:!1}},style:{padding:7},onSelect:({assetProps:l,editor:c})=>{var p;const n=c.getSelected(),i={type:"image",src:l.src};let y;if(n!=null&&n.is("image"))return n.set("src",l.src);n&&c.Components.canMove(n,i)?y=n.append(i)[0]:n||(y=(p=c.getWrapper())==null?void 0:p.append(i)[0]),y&&c.select(y,{scroll:!0})}}}],h=[...s,{id:v.panelSidebarTabs,layoutCommand:{header:!1},icon:'<svg viewBox="0 0 24 24"><path d="M17.5 12a1.5 1.5 0 0 1-1.5-1.5A1.5 1.5 0 0 1 17.5 9a1.5 1.5 0 0 1 1.5 1.5 1.5 1.5 0 0 1-1.5 1.5m-3-4A1.5 1.5 0 0 1 13 6.5 1.5 1.5 0 0 1 14.5 5 1.5 1.5 0 0 1 16 6.5 1.5 1.5 0 0 1 14.5 8m-5 0A1.5 1.5 0 0 1 8 6.5 1.5 1.5 0 0 1 9.5 5 1.5 1.5 0 0 1 11 6.5 1.5 1.5 0 0 1 9.5 8m-3 4A1.5 1.5 0 0 1 5 10.5 1.5 1.5 0 0 1 6.5 9 1.5 1.5 0 0 1 8 10.5 1.5 1.5 0 0 1 6.5 12M12 3a9 9 0 0 0-9 9 9 9 0 0 0 9 9 1.5 1.5 0 0 0 1.5-1.5c0-.4-.2-.7-.4-1-.2-.3-.4-.6-.4-1a1.5 1.5 0 0 1 1.5-1.5H16a5 5 0 0 0 5-5c0-4.4-4-8-9-8Z"/></svg>',label:"Styles & Props",layoutComponent:{type:"panelSidebarTabs"}}],f={id:O,type:"column",className:"gs-cmp-layout-sidebar-target",style:{overflow:"hidden"}},d={type:"sidebarLeft",resizable:!1,style:{padding:"10px 5px",alignItems:"center",width:45,gap:10},children:[]},b={type:"canvasSidebarTop",sidebarTop:{leftContainer:{buttons:[]}}},g=l=>({breakpoint:l,breakpointTablet:a,breakpointMobile:o}),u=(l,c,n)=>{const i=g(c),y={pluginOpts:e,breakpointProps:i},p=l.map(T=>{const w=D(T,y);return e!=null&&e.sidebarButton?e.sidebarButton({id:T.id,buttonIds:v,buttonProps:w,sidebarButtonProps:T,...i,createSidebarButton:G=>D({...T,...G},y)}):w}).filter(Boolean);return(e!=null&&e.sidebarButtons?e==null?void 0:e.sidebarButtons({buttonIds:v,sidebarButtons:p,...i,createSidebarButton:T=>D({...T,layoutCommand:{...n==null?void 0:n.layoutCommand,...T.layoutCommand}},y)}):p).filter(Boolean)},t=(l,c,n)=>{var p;const i=g(n),y={pluginOpts:e,breakpointProps:i};return((p=e==null?void 0:e.rootLayout)==null?void 0:p.call(e,{sidebarButtons:c,rootLayout:l,layoutSidebarLeft:d,layoutSidebarTarget:f,...i,createSidebarButton:L=>D({...L},y)}))??l};if(a){const l=u(h,a);r[a]=t({type:"row",style:{height:"100%"},children:[{...d,children:l},f,b]},l,a)}if(o){const l={placer:{type:"absolute",position:"left"},style:{height:"calc(100% - 40px)"}},c=h.map(i=>({...i,layoutCommand:l})),n=u(c,o,{layoutCommand:l});r[o]=t({type:"column",style:{height:"100%"},children:[{type:"sidebarTop",leftContainer:{buttons:[]}},{type:"canvas",grow:!0},{type:"sidebarBottom",style:{padding:"0 5px",alignItems:"center",gap:10,minHeight:39},children:n}]},n,o)}const P=u(s,0);return{default:t({type:"row",style:{height:"100%"},children:[{...d,children:P},f,b,{type:"sidebarRight"}]},P,0),responsive:r}},R="layoutSidebarButtons",J=A.free,Q=function(e,a={}){const{Commands:o}=e,r=o.events,s={...a};(()=>{if(e.runCommand(B.layoutConfigGet)||s.skipLayoutConfig===!0)return;const d=$(s);e.runCommand(B.layoutConfigSet,{...d})})(),o.add(`${R}:toggleButton`,(f,d,b)=>{const g=document.getElementById(U(b==null?void 0:b.id));g==null||g.click()}),e.on(`${r.runCommand}core:preview`,()=>{N(e)}),z({editor:e,licenseKey:s.licenseKey,plan:J,pluginName:R,cleanup:()=>{e.runCommand(B.layoutConfigSet)}})},_=Z(Q);_.createLayoutConfig=e=>$(e);module.exports=_;
1
+ "use strict";var A=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(A||{}),B=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",e.dialogImportCode="studio:dialogImportCode",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(B||{}),I=(e=>(e.layoutToggleId="studio:layoutToggle:",e.toggleBlocksPanel="studio:toggleBlocksPanel",e.pageSettingsUpdate="studio:pageSettingsUpdate",e.toggleDataSourcesPreview="studio:toggleDataSourcesPreview",e))(I||{});const x="app.grapesjs.com",E="app-stage.grapesjs.com",H="app2.grapesjs.com",S="app-stage2.grapesjs.com",k=[x,H,E,S,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],j="license:check:start",W="license:check:end",K=()=>typeof window<"u",V=({isDev:e,isStage:a,isPlatform:o})=>`${e?"":`https://${a?E:x}`}/${o?"platform-api":"api"}`,m=()=>{const e=K()&&window.location.hostname;return!!e&&(k.includes(e)||k.some(a=>e.endsWith(a)))};async function F({path:e,baseApiUrl:a,method:o="GET",headers:r={},params:s,body:h}){const d=`${a||V({isDev:!1,isStage:!1})}${e}`,b={method:o,headers:{"Content-Type":"application/json",...r}};h&&(b.body=JSON.stringify(h));const g=s?new URLSearchParams(s).toString():"",u=g?`?${g}`:"",t=await fetch(`${d}${u}`,b);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.json()}const M={[A.free]:0,[A.startup]:10,[A.business]:20,[A.enterprise]:30};function q(e){const a=e;return a.init=o=>r=>e(r,o),a}const C=e=>q(e);async function Z({editor:e,plan:a,pluginName:o,licenseKey:r,onLicenseCheckResponse:s,cleanup:h}){let f="",d=!1;const b=m(),g=t=>{console.warn("Cleanup plugin:",o,"Reason:",t),h()},u=(t={})=>{var i;const{error:P,sdkLicense:l}=t,c=(i=t.plan)==null?void 0:i.category;if(!(l||t.license)||P)g(P||"Invalid license");else if(c){const y=M[a],p=M[c];y>p&&g({pluginRequiredPlan:a,licensePlan:c})}};e.on(j,t=>{f=t==null?void 0:t.baseApiUrl,d=!0}),e.on(W,t=>{s==null||s(t),u(t)}),setTimeout(async()=>{if(!d){if(b)return;if(r){const t=await z({licenseKey:r,pluginName:o,baseApiUrl:f});s==null||s(t),t&&u(t)}else g("The `licenseKey` option not provided")}},2e3)}async function z(e){const{licenseKey:a,pluginName:o,baseApiUrl:r}=e;try{return(await F({baseApiUrl:r,path:`/sdk/${a||"na"}`,method:"POST",params:{d:window.location.hostname,pn:o}})).result||{}}catch(s){return console.error("Error during SDK license check:",s),!1}}var v=(e=>(e.panelBlocks="panelBlocks",e.panelPagesLayers="panelPagesLayers",e.panelGlobalStyles="panelGlobalStyles",e.panelSidebarTabs="panelSidebarTabs",e.panelAssets="panelAssets",e.aiChatPanel="aiChatPanel",e.panelDataSources="panelDataSources",e))(v||{});const O="sidebarButtonsTarget",D=(e,a)=>{const{id:o,icon:r,label:s,tooltip:h,className:f,skipSelfClose:d,removeLayouts:b,layoutComponent:g,layoutCommand:u}=e,{pluginOpts:t,breakpointProps:P}=a,l=o;return{id:U(o),type:"button",icon:r,tooltip:s||h,className:f,editorEvents:{[`${I.layoutToggleId}${l}`]:({fromEvent:c,setState:n,editor:i})=>{n({active:c.isOpen}),setTimeout(()=>i.refresh({tools:!0}),20)}},onClick:({editor:c,state:n})=>{var w;if(n.active&&d)return;const i=(u==null?void 0:u.placer)||{type:"static",layoutId:O},y={...i,skipCleanup:i.type==="static"},p=b||Object.keys(v).filter(G=>G!==l);N(c,{removeLayouts:p,layout:{placer:y}});const L={id:l,placer:i,header:(u==null?void 0:u.header)??{label:s,close:!d},layout:g,style:{width:280,height:"100%",borderRightWidth:1,...u==null?void 0:u.style}},T=((w=t==null?void 0:t.sidebarLayoutCommand)==null?void 0:w.call(t,{...P,layoutCommand:L,sidebarButtonProps:e}))||L;c.runCommand(B.layoutToggle,{...T})}}},U=e=>`button__${e}`,N=(e,a={})=>{(a.removeLayouts||Object.keys(v)).forEach(r=>e.runCommand(B.layoutRemove,{id:r,layout:a.layout}))},$=e=>{const a=(e==null?void 0:e.breakpointTablet)??1024,o=(e==null?void 0:e.breakpointMobile)??768,r={},s=[{id:v.panelBlocks,icon:"plusBox",label:"Blocks",layoutComponent:{type:"panelBlocks"}},{id:v.panelPagesLayers,icon:"layers",label:"Pages & Layers",layoutComponent:{type:"panelPagesLayers"}},{id:v.panelGlobalStyles,icon:'<svg viewBox="0 0 24 24"> <path d="M20 14H6c-2.2 0-4 1.8-4 4s1.8 4 4 4h14a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2M6 20c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m.3-8L13 5.3a2 2 0 0 1 2.8 0l2.8 2.8c.8.8.8 2 0 2.8l-.9 1.1H6.3M2 13.5V4c0-1.1.9-2 2-2h4a2 2 0 0 1 2 2v1.5l-8 8Z"/></svg>',label:"Global Styles",layoutComponent:{type:"panelGlobalStyles"}},{id:v.panelAssets,icon:'<svg viewBox="0 0 24 24"><path d="M22,16V4A2,2 0 0,0 20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16M11,12L13.03,14.71L16,11L20,16H8M2,6V20A2,2 0 0,0 4,22H18V20H4V6" /></svg>',label:"Assets",layoutComponent:{type:"panelAssets",content:{itemsPerRow:2,header:{addUrl:!1}},style:{padding:7},onSelect:({assetProps:l,editor:c})=>{var p;const n=c.getSelected(),i={type:"image",src:l.src};let y;if(n!=null&&n.is("image"))return n.set("src",l.src);n&&c.Components.canMove(n,i)?y=n.append(i)[0]:n||(y=(p=c.getWrapper())==null?void 0:p.append(i)[0]),y&&c.select(y,{scroll:!0})}}}],h=[...s,{id:v.panelSidebarTabs,layoutCommand:{header:!1},icon:'<svg viewBox="0 0 24 24"><path d="M17.5 12a1.5 1.5 0 0 1-1.5-1.5A1.5 1.5 0 0 1 17.5 9a1.5 1.5 0 0 1 1.5 1.5 1.5 1.5 0 0 1-1.5 1.5m-3-4A1.5 1.5 0 0 1 13 6.5 1.5 1.5 0 0 1 14.5 5 1.5 1.5 0 0 1 16 6.5 1.5 1.5 0 0 1 14.5 8m-5 0A1.5 1.5 0 0 1 8 6.5 1.5 1.5 0 0 1 9.5 5 1.5 1.5 0 0 1 11 6.5 1.5 1.5 0 0 1 9.5 8m-3 4A1.5 1.5 0 0 1 5 10.5 1.5 1.5 0 0 1 6.5 9 1.5 1.5 0 0 1 8 10.5 1.5 1.5 0 0 1 6.5 12M12 3a9 9 0 0 0-9 9 9 9 0 0 0 9 9 1.5 1.5 0 0 0 1.5-1.5c0-.4-.2-.7-.4-1-.2-.3-.4-.6-.4-1a1.5 1.5 0 0 1 1.5-1.5H16a5 5 0 0 0 5-5c0-4.4-4-8-9-8Z"/></svg>',label:"Styles & Props",layoutComponent:{type:"panelSidebarTabs"}}],f={id:O,type:"column",className:"gs-cmp-layout-sidebar-target",style:{overflow:"hidden"}},d={type:"sidebarLeft",resizable:!1,style:{padding:"10px 5px",alignItems:"center",width:45,gap:10},children:[]},b={type:"canvasSidebarTop",sidebarTop:{leftContainer:{buttons:[]}}},g=l=>({breakpoint:l,breakpointTablet:a,breakpointMobile:o}),u=(l,c,n)=>{const i=g(c),y={pluginOpts:e,breakpointProps:i},p=l.map(T=>{const w=D(T,y);return e!=null&&e.sidebarButton?e.sidebarButton({id:T.id,buttonIds:v,buttonProps:w,sidebarButtonProps:T,...i,createSidebarButton:G=>D({...T,...G},y)}):w}).filter(Boolean);return(e!=null&&e.sidebarButtons?e==null?void 0:e.sidebarButtons({buttonIds:v,sidebarButtons:p,...i,createSidebarButton:T=>D({...T,layoutCommand:{...n==null?void 0:n.layoutCommand,...T.layoutCommand}},y)}):p).filter(Boolean)},t=(l,c,n)=>{var p;const i=g(n),y={pluginOpts:e,breakpointProps:i};return((p=e==null?void 0:e.rootLayout)==null?void 0:p.call(e,{sidebarButtons:c,rootLayout:l,layoutSidebarLeft:d,layoutSidebarTarget:f,...i,createSidebarButton:L=>D({...L},y)}))??l};if(a){const l=u(h,a);r[a]=t({type:"row",style:{height:"100%"},children:[{...d,children:l},f,b]},l,a)}if(o){const l={placer:{type:"absolute",position:"left"},style:{height:"calc(100% - 40px)"}},c=h.map(i=>({...i,layoutCommand:l})),n=u(c,o,{layoutCommand:l});r[o]=t({type:"column",style:{height:"100%"},children:[{type:"sidebarTop",leftContainer:{buttons:[]}},{type:"canvas",grow:!0},{type:"sidebarBottom",style:{padding:"0 5px",alignItems:"center",gap:10,minHeight:39},children:n}]},n,o)}const P=u(s,0);return{default:t({type:"row",style:{height:"100%"},children:[{...d,children:P},f,b,{type:"sidebarRight"}]},P,0),responsive:r}},R="layoutSidebarButtons",J=A.free,Q=function(e,a={}){const{Commands:o}=e,r=o.events,s={...a};(()=>{if(e.runCommand(B.layoutConfigGet)||s.skipLayoutConfig===!0)return;const d=$(s);e.runCommand(B.layoutConfigSet,{...d})})(),o.add(`${R}:toggleButton`,(f,d,b)=>{const g=document.getElementById(U(b==null?void 0:b.id));g==null||g.click()}),e.on(`${r.runCommand}core:preview`,()=>{N(e)}),Z({editor:e,licenseKey:s.licenseKey,plan:J,pluginName:R,cleanup:()=>{e.runCommand(B.layoutConfigSet)}})},_=C(Q);_.createLayoutConfig=e=>$(e);module.exports=_;
@@ -1,4 +1,4 @@
1
- var A = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(A || {}), B = /* @__PURE__ */ ((e) => (e.toastAdd = "studio:toastAdd", e.toastRemove = "studio:toastRemove", e.dialogOpen = "studio:dialogOpen", e.dialogClose = "studio:dialogClose", e.dialogExportCode = "studio:dialogExportCode", e.sidebarLeftSet = "studio:sidebarLeft:set", e.sidebarLeftGet = "studio:sidebarLeft:get", e.sidebarLeftToggle = "studio:sidebarLeft:toggle", e.sidebarRightSet = "studio:sidebarRight:set", e.sidebarRightGet = "studio:sidebarRight:get", e.sidebarRightToggle = "studio:sidebarRight:toggle", e.sidebarTopSet = "studio:sidebarTop:set", e.sidebarTopGet = "studio:sidebarTop:get", e.sidebarTopToggle = "studio:sidebarTop:toggle", e.sidebarBottomSet = "studio:sidebarBottom:set", e.sidebarBottomGet = "studio:sidebarBottom:get", e.sidebarBottomToggle = "studio:sidebarBottom:toggle", e.symbolAdd = "studio:symbolAdd", e.symbolDetach = "studio:symbolDetach", e.symbolOverride = "studio:symbolOverride", e.symbolPropagateStyles = "studio:propagateStyles", e.getPagesConfig = "studio:getPagesConfig", e.setPagesConfig = "studio:setPagesConfig", e.getPageSettings = "studio:getPageSettings", e.setPageSettings = "studio:setPageSettings", e.clearPage = "studio:clearPage", e.projectFiles = "studio:projectFiles", e.validateCode = "studio:validateCode", e.canvasReload = "studio:canvasReload", e.getBlocksPanel = "studio:getBlocksPanel", e.setBlocksPanel = "studio:setBlocksPanel", e.getStateContextMenu = "studio:getStateContextMenu", e.setStateContextMenu = "studio:setStateContextMenu", e.contextMenuComponent = "studio:contextMenuComponent", e.layoutAdd = "studio:layoutAdd", e.layoutRemove = "studio:layoutRemove", e.layoutToggle = "studio:layoutToggle", e.layoutUpdate = "studio:layoutUpdate", e.layoutGet = "studio:layoutGet", e.layoutConfigGet = "studio:layoutConfigGet", e.layoutConfigSet = "studio:layoutConfigSet", e.layoutComponentAdd = "studio:layoutComponentAdd", e.layoutComponentGet = "studio:layoutComponentGet", e.layoutComponentRemove = "studio:layoutComponentRemove", e.layoutComponentRender = "studio:layoutComponentRender", e.getStateTheme = "studio:getStateTheme", e.setStateTheme = "studio:setStateTheme", e.assetProviderGet = "studio:assetProviderGet", e.assetProviderAdd = "studio:assetProviderAdd", e.assetProviderRemove = "studio:assetProviderRemove", e.fontGet = "studio:fontGet", e.fontAdd = "studio:fontAdd", e.fontRemove = "studio:fontRemove", e.fontManagerOpen = "studio:fontManagerOpen", e.menuFontLoad = "studio:menuFontLoad", e.toggleStateDataSource = "studio:toggleStateDataSource", e.getStateDataSource = "studio:getStateDataSource", e.dataSourceSetGlobalData = "studio:dataSourceSetGlobalData", e.dataSourceSetImporter = "studio:dataSourceSetImporter", e.dataSourceSetExporter = "studio:dataSourceSetExporter", e.setDragAbsolute = "studio:setDragAbsolute", e))(B || {}), I = /* @__PURE__ */ ((e) => (e.layoutToggleId = "studio:layoutToggle:", e.toggleBlocksPanel = "studio:toggleBlocksPanel", e.pageSettingsUpdate = "studio:pageSettingsUpdate", e.toggleDataSourcesPreview = "studio:toggleDataSourcesPreview", e))(I || {});
1
+ var A = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(A || {}), B = /* @__PURE__ */ ((e) => (e.toastAdd = "studio:toastAdd", e.toastRemove = "studio:toastRemove", e.dialogOpen = "studio:dialogOpen", e.dialogClose = "studio:dialogClose", e.dialogExportCode = "studio:dialogExportCode", e.dialogImportCode = "studio:dialogImportCode", e.sidebarLeftSet = "studio:sidebarLeft:set", e.sidebarLeftGet = "studio:sidebarLeft:get", e.sidebarLeftToggle = "studio:sidebarLeft:toggle", e.sidebarRightSet = "studio:sidebarRight:set", e.sidebarRightGet = "studio:sidebarRight:get", e.sidebarRightToggle = "studio:sidebarRight:toggle", e.sidebarTopSet = "studio:sidebarTop:set", e.sidebarTopGet = "studio:sidebarTop:get", e.sidebarTopToggle = "studio:sidebarTop:toggle", e.sidebarBottomSet = "studio:sidebarBottom:set", e.sidebarBottomGet = "studio:sidebarBottom:get", e.sidebarBottomToggle = "studio:sidebarBottom:toggle", e.symbolAdd = "studio:symbolAdd", e.symbolDetach = "studio:symbolDetach", e.symbolOverride = "studio:symbolOverride", e.symbolPropagateStyles = "studio:propagateStyles", e.getPagesConfig = "studio:getPagesConfig", e.setPagesConfig = "studio:setPagesConfig", e.getPageSettings = "studio:getPageSettings", e.setPageSettings = "studio:setPageSettings", e.clearPage = "studio:clearPage", e.projectFiles = "studio:projectFiles", e.validateCode = "studio:validateCode", e.canvasReload = "studio:canvasReload", e.getBlocksPanel = "studio:getBlocksPanel", e.setBlocksPanel = "studio:setBlocksPanel", e.getStateContextMenu = "studio:getStateContextMenu", e.setStateContextMenu = "studio:setStateContextMenu", e.contextMenuComponent = "studio:contextMenuComponent", e.layoutAdd = "studio:layoutAdd", e.layoutRemove = "studio:layoutRemove", e.layoutToggle = "studio:layoutToggle", e.layoutUpdate = "studio:layoutUpdate", e.layoutGet = "studio:layoutGet", e.layoutConfigGet = "studio:layoutConfigGet", e.layoutConfigSet = "studio:layoutConfigSet", e.layoutComponentAdd = "studio:layoutComponentAdd", e.layoutComponentGet = "studio:layoutComponentGet", e.layoutComponentRemove = "studio:layoutComponentRemove", e.layoutComponentRender = "studio:layoutComponentRender", e.getStateTheme = "studio:getStateTheme", e.setStateTheme = "studio:setStateTheme", e.assetProviderGet = "studio:assetProviderGet", e.assetProviderAdd = "studio:assetProviderAdd", e.assetProviderRemove = "studio:assetProviderRemove", e.fontGet = "studio:fontGet", e.fontAdd = "studio:fontAdd", e.fontRemove = "studio:fontRemove", e.fontManagerOpen = "studio:fontManagerOpen", e.menuFontLoad = "studio:menuFontLoad", e.toggleStateDataSource = "studio:toggleStateDataSource", e.getStateDataSource = "studio:getStateDataSource", e.dataSourceSetGlobalData = "studio:dataSourceSetGlobalData", e.dataSourceSetImporter = "studio:dataSourceSetImporter", e.dataSourceSetExporter = "studio:dataSourceSetExporter", e.setDragAbsolute = "studio:setDragAbsolute", e))(B || {}), I = /* @__PURE__ */ ((e) => (e.layoutToggleId = "studio:layoutToggle:", e.toggleBlocksPanel = "studio:toggleBlocksPanel", e.pageSettingsUpdate = "studio:pageSettingsUpdate", e.toggleDataSourcesPreview = "studio:toggleDataSourcesPreview", e))(I || {});
2
2
  const x = "app.grapesjs.com", E = "app-stage.grapesjs.com", _ = "app2.grapesjs.com", H = "app-stage2.grapesjs.com", k = [
3
3
  x,
4
4
  _,
@@ -52,7 +52,7 @@ function F(e) {
52
52
  return a.init = (o) => (r) => e(r, o), a;
53
53
  }
54
54
  const q = (e) => /* @__PURE__ */ F(e);
55
- async function Z({
55
+ async function C({
56
56
  editor: e,
57
57
  plan: a,
58
58
  pluginName: o,
@@ -81,14 +81,14 @@ async function Z({
81
81
  if (!d) {
82
82
  if (b) return;
83
83
  if (r) {
84
- const t = await z({ licenseKey: r, pluginName: o, baseApiUrl: f });
84
+ const t = await Z({ licenseKey: r, pluginName: o, baseApiUrl: f });
85
85
  s == null || s(t), t && u(t);
86
86
  } else
87
87
  g("The `licenseKey` option not provided");
88
88
  }
89
89
  }, 2e3);
90
90
  }
91
- async function z(e) {
91
+ async function Z(e) {
92
92
  const { licenseKey: a, pluginName: o, baseApiUrl: r } = e;
93
93
  try {
94
94
  return (await m({
@@ -314,7 +314,7 @@ const O = "sidebarButtonsTarget", D = (e, a) => {
314
314
  ),
315
315
  responsive: r
316
316
  };
317
- }, R = "layoutSidebarButtons", C = A.free, J = function(e, a = {}) {
317
+ }, R = "layoutSidebarButtons", z = A.free, J = function(e, a = {}) {
318
318
  const { Commands: o } = e, r = o.events, s = {
319
319
  ...a
320
320
  };
@@ -327,10 +327,10 @@ const O = "sidebarButtonsTarget", D = (e, a) => {
327
327
  g == null || g.click();
328
328
  }), e.on(`${r.runCommand}core:preview`, () => {
329
329
  N(e);
330
- }), Z({
330
+ }), C({
331
331
  editor: e,
332
332
  licenseKey: s.licenseKey,
333
- plan: C,
333
+ plan: z,
334
334
  pluginName: R,
335
335
  cleanup: () => {
336
336
  e.runCommand(B.layoutConfigSet);
@@ -1 +1 @@
1
- (function(h,v){typeof exports=="object"&&typeof module<"u"?module.exports=v():typeof define=="function"&&define.amd?define(v):(h=typeof globalThis<"u"?globalThis:h||self,h.StudioSdkPlugins_layoutSidebarButtons=v())})(this,function(){"use strict";var h=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(h||{}),v=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(v||{}),M=(e=>(e.layoutToggleId="studio:layoutToggle:",e.toggleBlocksPanel="studio:toggleBlocksPanel",e.pageSettingsUpdate="studio:pageSettingsUpdate",e.toggleDataSourcesPreview="studio:toggleDataSourcesPreview",e))(M||{});const k="app.grapesjs.com",R="app-stage.grapesjs.com",I=[k,"app2.grapesjs.com",R,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],$="license:check:start",H="license:check:end",j=()=>typeof window<"u",W=({isDev:e,isStage:a,isPlatform:o})=>`${e?"":`https://${a?R:k}`}/${o?"platform-api":"api"}`,m=()=>{const e=j()&&window.location.hostname;return!!e&&(I.includes(e)||I.some(a=>e.endsWith(a)))};async function K({path:e,baseApiUrl:a,method:o="GET",headers:r={},params:s,body:P}){const d=`${a||W({isDev:!1,isStage:!1})}${e}`,b={method:o,headers:{"Content-Type":"application/json",...r}};P&&(b.body=JSON.stringify(P));const g=s?new URLSearchParams(s).toString():"",u=g?`?${g}`:"",t=await fetch(`${d}${u}`,b);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.json()}const x={[h.free]:0,[h.startup]:10,[h.business]:20,[h.enterprise]:30};function V(e){const a=e;return a.init=o=>r=>e(r,o),a}const F=e=>V(e);async function q({editor:e,plan:a,pluginName:o,licenseKey:r,onLicenseCheckResponse:s,cleanup:P}){let f="",d=!1;const b=m(),g=t=>{console.warn("Cleanup plugin:",o,"Reason:",t),P()},u=(t={})=>{var i;const{error:B,sdkLicense:l}=t,c=(i=t.plan)==null?void 0:i.category;if(!(l||t.license)||B)g(B||"Invalid license");else if(c){const y=x[a],p=x[c];y>p&&g({pluginRequiredPlan:a,licensePlan:c})}};e.on($,t=>{f=t==null?void 0:t.baseApiUrl,d=!0}),e.on(H,t=>{s==null||s(t),u(t)}),setTimeout(async()=>{if(!d){if(b)return;if(r){const t=await Z({licenseKey:r,pluginName:o,baseApiUrl:f});s==null||s(t),t&&u(t)}else g("The `licenseKey` option not provided")}},2e3)}async function Z(e){const{licenseKey:a,pluginName:o,baseApiUrl:r}=e;try{return(await K({baseApiUrl:r,path:`/sdk/${a||"na"}`,method:"POST",params:{d:window.location.hostname,pn:o}})).result||{}}catch(s){return console.error("Error during SDK license check:",s),!1}}var T=(e=>(e.panelBlocks="panelBlocks",e.panelPagesLayers="panelPagesLayers",e.panelGlobalStyles="panelGlobalStyles",e.panelSidebarTabs="panelSidebarTabs",e.panelAssets="panelAssets",e.aiChatPanel="aiChatPanel",e.panelDataSources="panelDataSources",e))(T||{});const O="sidebarButtonsTarget",D=(e,a)=>{const{id:o,icon:r,label:s,tooltip:P,className:f,skipSelfClose:d,removeLayouts:b,layoutComponent:g,layoutCommand:u}=e,{pluginOpts:t,breakpointProps:B}=a,l=o;return{id:E(o),type:"button",icon:r,tooltip:s||P,className:f,editorEvents:{[`${M.layoutToggleId}${l}`]:({fromEvent:c,setState:n,editor:i})=>{n({active:c.isOpen}),setTimeout(()=>i.refresh({tools:!0}),20)}},onClick:({editor:c,state:n})=>{var w;if(n.active&&d)return;const i=(u==null?void 0:u.placer)||{type:"static",layoutId:O},y={...i,skipCleanup:i.type==="static"},p=b||Object.keys(T).filter(G=>G!==l);N(c,{removeLayouts:p,layout:{placer:y}});const L={id:l,placer:i,header:(u==null?void 0:u.header)??{label:s,close:!d},layout:g,style:{width:280,height:"100%",borderRightWidth:1,...u==null?void 0:u.style}},A=((w=t==null?void 0:t.sidebarLayoutCommand)==null?void 0:w.call(t,{...B,layoutCommand:L,sidebarButtonProps:e}))||L;c.runCommand(v.layoutToggle,{...A})}}},E=e=>`button__${e}`,N=(e,a={})=>{(a.removeLayouts||Object.keys(T)).forEach(r=>e.runCommand(v.layoutRemove,{id:r,layout:a.layout}))},_=e=>{const a=(e==null?void 0:e.breakpointTablet)??1024,o=(e==null?void 0:e.breakpointMobile)??768,r={},s=[{id:T.panelBlocks,icon:"plusBox",label:"Blocks",layoutComponent:{type:"panelBlocks"}},{id:T.panelPagesLayers,icon:"layers",label:"Pages & Layers",layoutComponent:{type:"panelPagesLayers"}},{id:T.panelGlobalStyles,icon:'<svg viewBox="0 0 24 24"> <path d="M20 14H6c-2.2 0-4 1.8-4 4s1.8 4 4 4h14a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2M6 20c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m.3-8L13 5.3a2 2 0 0 1 2.8 0l2.8 2.8c.8.8.8 2 0 2.8l-.9 1.1H6.3M2 13.5V4c0-1.1.9-2 2-2h4a2 2 0 0 1 2 2v1.5l-8 8Z"/></svg>',label:"Global Styles",layoutComponent:{type:"panelGlobalStyles"}},{id:T.panelAssets,icon:'<svg viewBox="0 0 24 24"><path d="M22,16V4A2,2 0 0,0 20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16M11,12L13.03,14.71L16,11L20,16H8M2,6V20A2,2 0 0,0 4,22H18V20H4V6" /></svg>',label:"Assets",layoutComponent:{type:"panelAssets",content:{itemsPerRow:2,header:{addUrl:!1}},style:{padding:7},onSelect:({assetProps:l,editor:c})=>{var p;const n=c.getSelected(),i={type:"image",src:l.src};let y;if(n!=null&&n.is("image"))return n.set("src",l.src);n&&c.Components.canMove(n,i)?y=n.append(i)[0]:n||(y=(p=c.getWrapper())==null?void 0:p.append(i)[0]),y&&c.select(y,{scroll:!0})}}}],P=[...s,{id:T.panelSidebarTabs,layoutCommand:{header:!1},icon:'<svg viewBox="0 0 24 24"><path d="M17.5 12a1.5 1.5 0 0 1-1.5-1.5A1.5 1.5 0 0 1 17.5 9a1.5 1.5 0 0 1 1.5 1.5 1.5 1.5 0 0 1-1.5 1.5m-3-4A1.5 1.5 0 0 1 13 6.5 1.5 1.5 0 0 1 14.5 5 1.5 1.5 0 0 1 16 6.5 1.5 1.5 0 0 1 14.5 8m-5 0A1.5 1.5 0 0 1 8 6.5 1.5 1.5 0 0 1 9.5 5 1.5 1.5 0 0 1 11 6.5 1.5 1.5 0 0 1 9.5 8m-3 4A1.5 1.5 0 0 1 5 10.5 1.5 1.5 0 0 1 6.5 9 1.5 1.5 0 0 1 8 10.5 1.5 1.5 0 0 1 6.5 12M12 3a9 9 0 0 0-9 9 9 9 0 0 0 9 9 1.5 1.5 0 0 0 1.5-1.5c0-.4-.2-.7-.4-1-.2-.3-.4-.6-.4-1a1.5 1.5 0 0 1 1.5-1.5H16a5 5 0 0 0 5-5c0-4.4-4-8-9-8Z"/></svg>',label:"Styles & Props",layoutComponent:{type:"panelSidebarTabs"}}],f={id:O,type:"column",className:"gs-cmp-layout-sidebar-target",style:{overflow:"hidden"}},d={type:"sidebarLeft",resizable:!1,style:{padding:"10px 5px",alignItems:"center",width:45,gap:10},children:[]},b={type:"canvasSidebarTop",sidebarTop:{leftContainer:{buttons:[]}}},g=l=>({breakpoint:l,breakpointTablet:a,breakpointMobile:o}),u=(l,c,n)=>{const i=g(c),y={pluginOpts:e,breakpointProps:i},p=l.map(A=>{const w=D(A,y);return e!=null&&e.sidebarButton?e.sidebarButton({id:A.id,buttonIds:T,buttonProps:w,sidebarButtonProps:A,...i,createSidebarButton:G=>D({...A,...G},y)}):w}).filter(Boolean);return(e!=null&&e.sidebarButtons?e==null?void 0:e.sidebarButtons({buttonIds:T,sidebarButtons:p,...i,createSidebarButton:A=>D({...A,layoutCommand:{...n==null?void 0:n.layoutCommand,...A.layoutCommand}},y)}):p).filter(Boolean)},t=(l,c,n)=>{var p;const i=g(n),y={pluginOpts:e,breakpointProps:i};return((p=e==null?void 0:e.rootLayout)==null?void 0:p.call(e,{sidebarButtons:c,rootLayout:l,layoutSidebarLeft:d,layoutSidebarTarget:f,...i,createSidebarButton:L=>D({...L},y)}))??l};if(a){const l=u(P,a);r[a]=t({type:"row",style:{height:"100%"},children:[{...d,children:l},f,b]},l,a)}if(o){const l={placer:{type:"absolute",position:"left"},style:{height:"calc(100% - 40px)"}},c=P.map(i=>({...i,layoutCommand:l})),n=u(c,o,{layoutCommand:l});r[o]=t({type:"column",style:{height:"100%"},children:[{type:"sidebarTop",leftContainer:{buttons:[]}},{type:"canvas",grow:!0},{type:"sidebarBottom",style:{padding:"0 5px",alignItems:"center",gap:10,minHeight:39},children:n}]},n,o)}const B=u(s,0);return{default:t({type:"row",style:{height:"100%"},children:[{...d,children:B},f,b,{type:"sidebarRight"}]},B,0),responsive:r}},S="layoutSidebarButtons",z=h.free,U=F(function(e,a={}){const{Commands:o}=e,r=o.events,s={...a};(()=>{if(e.runCommand(v.layoutConfigGet)||s.skipLayoutConfig===!0)return;const d=_(s);e.runCommand(v.layoutConfigSet,{...d})})(),o.add(`${S}:toggleButton`,(f,d,b)=>{const g=document.getElementById(E(b==null?void 0:b.id));g==null||g.click()}),e.on(`${r.runCommand}core:preview`,()=>{N(e)}),q({editor:e,licenseKey:s.licenseKey,plan:z,pluginName:S,cleanup:()=>{e.runCommand(v.layoutConfigSet)}})});return U.createLayoutConfig=e=>_(e),U});
1
+ (function(h,v){typeof exports=="object"&&typeof module<"u"?module.exports=v():typeof define=="function"&&define.amd?define(v):(h=typeof globalThis<"u"?globalThis:h||self,h.StudioSdkPlugins_layoutSidebarButtons=v())})(this,function(){"use strict";var h=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(h||{}),v=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",e.dialogImportCode="studio:dialogImportCode",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(v||{}),M=(e=>(e.layoutToggleId="studio:layoutToggle:",e.toggleBlocksPanel="studio:toggleBlocksPanel",e.pageSettingsUpdate="studio:pageSettingsUpdate",e.toggleDataSourcesPreview="studio:toggleDataSourcesPreview",e))(M||{});const k="app.grapesjs.com",R="app-stage.grapesjs.com",I=[k,"app2.grapesjs.com",R,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],$="license:check:start",H="license:check:end",j=()=>typeof window<"u",W=({isDev:e,isStage:a,isPlatform:o})=>`${e?"":`https://${a?R:k}`}/${o?"platform-api":"api"}`,m=()=>{const e=j()&&window.location.hostname;return!!e&&(I.includes(e)||I.some(a=>e.endsWith(a)))};async function K({path:e,baseApiUrl:a,method:o="GET",headers:r={},params:s,body:P}){const d=`${a||W({isDev:!1,isStage:!1})}${e}`,b={method:o,headers:{"Content-Type":"application/json",...r}};P&&(b.body=JSON.stringify(P));const g=s?new URLSearchParams(s).toString():"",u=g?`?${g}`:"",t=await fetch(`${d}${u}`,b);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.json()}const x={[h.free]:0,[h.startup]:10,[h.business]:20,[h.enterprise]:30};function V(e){const a=e;return a.init=o=>r=>e(r,o),a}const F=e=>V(e);async function q({editor:e,plan:a,pluginName:o,licenseKey:r,onLicenseCheckResponse:s,cleanup:P}){let f="",d=!1;const b=m(),g=t=>{console.warn("Cleanup plugin:",o,"Reason:",t),P()},u=(t={})=>{var i;const{error:B,sdkLicense:l}=t,c=(i=t.plan)==null?void 0:i.category;if(!(l||t.license)||B)g(B||"Invalid license");else if(c){const y=x[a],p=x[c];y>p&&g({pluginRequiredPlan:a,licensePlan:c})}};e.on($,t=>{f=t==null?void 0:t.baseApiUrl,d=!0}),e.on(H,t=>{s==null||s(t),u(t)}),setTimeout(async()=>{if(!d){if(b)return;if(r){const t=await C({licenseKey:r,pluginName:o,baseApiUrl:f});s==null||s(t),t&&u(t)}else g("The `licenseKey` option not provided")}},2e3)}async function C(e){const{licenseKey:a,pluginName:o,baseApiUrl:r}=e;try{return(await K({baseApiUrl:r,path:`/sdk/${a||"na"}`,method:"POST",params:{d:window.location.hostname,pn:o}})).result||{}}catch(s){return console.error("Error during SDK license check:",s),!1}}var T=(e=>(e.panelBlocks="panelBlocks",e.panelPagesLayers="panelPagesLayers",e.panelGlobalStyles="panelGlobalStyles",e.panelSidebarTabs="panelSidebarTabs",e.panelAssets="panelAssets",e.aiChatPanel="aiChatPanel",e.panelDataSources="panelDataSources",e))(T||{});const O="sidebarButtonsTarget",D=(e,a)=>{const{id:o,icon:r,label:s,tooltip:P,className:f,skipSelfClose:d,removeLayouts:b,layoutComponent:g,layoutCommand:u}=e,{pluginOpts:t,breakpointProps:B}=a,l=o;return{id:E(o),type:"button",icon:r,tooltip:s||P,className:f,editorEvents:{[`${M.layoutToggleId}${l}`]:({fromEvent:c,setState:n,editor:i})=>{n({active:c.isOpen}),setTimeout(()=>i.refresh({tools:!0}),20)}},onClick:({editor:c,state:n})=>{var w;if(n.active&&d)return;const i=(u==null?void 0:u.placer)||{type:"static",layoutId:O},y={...i,skipCleanup:i.type==="static"},p=b||Object.keys(T).filter(G=>G!==l);N(c,{removeLayouts:p,layout:{placer:y}});const L={id:l,placer:i,header:(u==null?void 0:u.header)??{label:s,close:!d},layout:g,style:{width:280,height:"100%",borderRightWidth:1,...u==null?void 0:u.style}},A=((w=t==null?void 0:t.sidebarLayoutCommand)==null?void 0:w.call(t,{...B,layoutCommand:L,sidebarButtonProps:e}))||L;c.runCommand(v.layoutToggle,{...A})}}},E=e=>`button__${e}`,N=(e,a={})=>{(a.removeLayouts||Object.keys(T)).forEach(r=>e.runCommand(v.layoutRemove,{id:r,layout:a.layout}))},_=e=>{const a=(e==null?void 0:e.breakpointTablet)??1024,o=(e==null?void 0:e.breakpointMobile)??768,r={},s=[{id:T.panelBlocks,icon:"plusBox",label:"Blocks",layoutComponent:{type:"panelBlocks"}},{id:T.panelPagesLayers,icon:"layers",label:"Pages & Layers",layoutComponent:{type:"panelPagesLayers"}},{id:T.panelGlobalStyles,icon:'<svg viewBox="0 0 24 24"> <path d="M20 14H6c-2.2 0-4 1.8-4 4s1.8 4 4 4h14a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2M6 20c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m.3-8L13 5.3a2 2 0 0 1 2.8 0l2.8 2.8c.8.8.8 2 0 2.8l-.9 1.1H6.3M2 13.5V4c0-1.1.9-2 2-2h4a2 2 0 0 1 2 2v1.5l-8 8Z"/></svg>',label:"Global Styles",layoutComponent:{type:"panelGlobalStyles"}},{id:T.panelAssets,icon:'<svg viewBox="0 0 24 24"><path d="M22,16V4A2,2 0 0,0 20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16M11,12L13.03,14.71L16,11L20,16H8M2,6V20A2,2 0 0,0 4,22H18V20H4V6" /></svg>',label:"Assets",layoutComponent:{type:"panelAssets",content:{itemsPerRow:2,header:{addUrl:!1}},style:{padding:7},onSelect:({assetProps:l,editor:c})=>{var p;const n=c.getSelected(),i={type:"image",src:l.src};let y;if(n!=null&&n.is("image"))return n.set("src",l.src);n&&c.Components.canMove(n,i)?y=n.append(i)[0]:n||(y=(p=c.getWrapper())==null?void 0:p.append(i)[0]),y&&c.select(y,{scroll:!0})}}}],P=[...s,{id:T.panelSidebarTabs,layoutCommand:{header:!1},icon:'<svg viewBox="0 0 24 24"><path d="M17.5 12a1.5 1.5 0 0 1-1.5-1.5A1.5 1.5 0 0 1 17.5 9a1.5 1.5 0 0 1 1.5 1.5 1.5 1.5 0 0 1-1.5 1.5m-3-4A1.5 1.5 0 0 1 13 6.5 1.5 1.5 0 0 1 14.5 5 1.5 1.5 0 0 1 16 6.5 1.5 1.5 0 0 1 14.5 8m-5 0A1.5 1.5 0 0 1 8 6.5 1.5 1.5 0 0 1 9.5 5 1.5 1.5 0 0 1 11 6.5 1.5 1.5 0 0 1 9.5 8m-3 4A1.5 1.5 0 0 1 5 10.5 1.5 1.5 0 0 1 6.5 9 1.5 1.5 0 0 1 8 10.5 1.5 1.5 0 0 1 6.5 12M12 3a9 9 0 0 0-9 9 9 9 0 0 0 9 9 1.5 1.5 0 0 0 1.5-1.5c0-.4-.2-.7-.4-1-.2-.3-.4-.6-.4-1a1.5 1.5 0 0 1 1.5-1.5H16a5 5 0 0 0 5-5c0-4.4-4-8-9-8Z"/></svg>',label:"Styles & Props",layoutComponent:{type:"panelSidebarTabs"}}],f={id:O,type:"column",className:"gs-cmp-layout-sidebar-target",style:{overflow:"hidden"}},d={type:"sidebarLeft",resizable:!1,style:{padding:"10px 5px",alignItems:"center",width:45,gap:10},children:[]},b={type:"canvasSidebarTop",sidebarTop:{leftContainer:{buttons:[]}}},g=l=>({breakpoint:l,breakpointTablet:a,breakpointMobile:o}),u=(l,c,n)=>{const i=g(c),y={pluginOpts:e,breakpointProps:i},p=l.map(A=>{const w=D(A,y);return e!=null&&e.sidebarButton?e.sidebarButton({id:A.id,buttonIds:T,buttonProps:w,sidebarButtonProps:A,...i,createSidebarButton:G=>D({...A,...G},y)}):w}).filter(Boolean);return(e!=null&&e.sidebarButtons?e==null?void 0:e.sidebarButtons({buttonIds:T,sidebarButtons:p,...i,createSidebarButton:A=>D({...A,layoutCommand:{...n==null?void 0:n.layoutCommand,...A.layoutCommand}},y)}):p).filter(Boolean)},t=(l,c,n)=>{var p;const i=g(n),y={pluginOpts:e,breakpointProps:i};return((p=e==null?void 0:e.rootLayout)==null?void 0:p.call(e,{sidebarButtons:c,rootLayout:l,layoutSidebarLeft:d,layoutSidebarTarget:f,...i,createSidebarButton:L=>D({...L},y)}))??l};if(a){const l=u(P,a);r[a]=t({type:"row",style:{height:"100%"},children:[{...d,children:l},f,b]},l,a)}if(o){const l={placer:{type:"absolute",position:"left"},style:{height:"calc(100% - 40px)"}},c=P.map(i=>({...i,layoutCommand:l})),n=u(c,o,{layoutCommand:l});r[o]=t({type:"column",style:{height:"100%"},children:[{type:"sidebarTop",leftContainer:{buttons:[]}},{type:"canvas",grow:!0},{type:"sidebarBottom",style:{padding:"0 5px",alignItems:"center",gap:10,minHeight:39},children:n}]},n,o)}const B=u(s,0);return{default:t({type:"row",style:{height:"100%"},children:[{...d,children:B},f,b,{type:"sidebarRight"}]},B,0),responsive:r}},U="layoutSidebarButtons",Z=h.free,S=F(function(e,a={}){const{Commands:o}=e,r=o.events,s={...a};(()=>{if(e.runCommand(v.layoutConfigGet)||s.skipLayoutConfig===!0)return;const d=_(s);e.runCommand(v.layoutConfigSet,{...d})})(),o.add(`${U}:toggleButton`,(f,d,b)=>{const g=document.getElementById(E(b==null?void 0:b.id));g==null||g.click()}),e.on(`${r.runCommand}core:preview`,()=>{N(e)}),q({editor:e,licenseKey:s.licenseKey,plan:Z,pluginName:U,cleanup:()=>{e.runCommand(v.layoutConfigSet)}})});return S.createLayoutConfig=e=>_(e),S});
@@ -1,4 +1,4 @@
1
- "use strict";const W="app.grapesjs.com",z="app-stage.grapesjs.com",X="app2.grapesjs.com",Z="app-stage2.grapesjs.com",U=[W,X,z,Z,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],Q="license:check:start",ee="license:check:end",te=()=>typeof window<"u",O=(e,s={})=>{const t=ne(e)?{id:e,src:e}:e;return new Promise((o,n)=>{var p,u;const{loadedScripts:r}=s,{id:i,src:l}=t,d=document.querySelector(`script[src="${l}"]`);if(d){if((p=s.onScript)==null||p.call(s,d),r&&!r.get(l)){d.addEventListener("load",()=>o(i)),d.addEventListener("error",()=>n(i));return}return o(i)}const g=window.define;window.define=void 0;const f=()=>{r==null||r.set(l,!0),window.define=g},a=document.createElement("script");a.src=l,a.onload=()=>{o(i),f()},a.onerror=()=>{n(i),f()},document.head.appendChild(a),(u=s.onScript)==null||u.call(s,a)})},oe=({isDev:e,isStage:s,isPlatform:t})=>`${e?"":`https://${s?z:W}`}/${t?"platform-api":"api"}`,se=()=>{const e=te()&&window.location.hostname;return!!e&&(U.includes(e)||U.some(s=>e.endsWith(s)))},ne=e=>typeof e=="string";async function ae({path:e,baseApiUrl:s,method:t="GET",headers:o={},params:n,body:r}){const l=`${s||oe({isDev:!1,isStage:!1})}${e}`,d={method:t,headers:{"Content-Type":"application/json",...o}};r&&(d.body=JSON.stringify(r));const g=n?new URLSearchParams(n).toString():"",f=g?`?${g}`:"",a=await fetch(`${l}${f}`,d);if(!a.ok)throw new Error(`HTTP error! status: ${a.status}`);return a.json()}var $=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))($||{}),K=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(K||{});const I={[$.free]:0,[$.startup]:10,[$.business]:20,[$.enterprise]:30};function re(e){const s=e;return s.init=t=>o=>e(o,t),s}const ie=e=>re(e);async function ce({editor:e,plan:s,pluginName:t,licenseKey:o,onLicenseCheckResponse:n,cleanup:r}){let i="",l=!1;const d=se(),g=a=>{console.warn("Cleanup plugin:",t,"Reason:",a),r()},f=(a={})=>{var c;const{error:p,sdkLicense:u}=a,m=(c=a.plan)==null?void 0:c.category;if(!(u||a.license)||p)g(p||"Invalid license");else if(m){const h=I[s],k=I[m];h>k&&g({pluginRequiredPlan:s,licensePlan:m})}};e.on(Q,a=>{i=a==null?void 0:a.baseApiUrl,l=!0}),e.on(ee,a=>{n==null||n(a),f(a)}),setTimeout(async()=>{if(!l){if(d)return;if(o){const a=await le({licenseKey:o,pluginName:t,baseApiUrl:i});n==null||n(a),a&&f(a)}else g("The `licenseKey` option not provided")}},2e3)}async function le(e){const{licenseKey:s,pluginName:t,baseApiUrl:o}=e;try{return(await ae({baseApiUrl:o,path:`/sdk/${s||"na"}`,method:"POST",params:{d:window.location.hostname,pn:t}})).result||{}}catch(n){return console.error("Error during SDK license check:",n),!1}}const de=e=>s=>{var t;return((t=s.getAttribute)==null?void 0:t.call(s,V))===e},pe=(...e)=>(s,t)=>e.some(o=>t.is(o)),C=(e,s,t)=>{const{doc:o=document}=t,n=t.target||o.head,r=n.querySelector(`style[${e}]`)||o.createElement("style");r.setAttribute(e,"true"),r.innerHTML=s,!n.contains(r)&&n.appendChild(r)},ge="gjs-plg-",q="data-gs-plg-",V="data-type-role";function N(e,s,t){let o,n,r,i,l;const d=s===void 0?100:s;function g(){const a=Date.now()-i;a<d&&a>=0?o=setTimeout(g,d-a):(o=null,l=e.apply(r,n),r=n=null)}const f=function(){return r=this,n=arguments,i=Date.now(),o||(o=setTimeout(g,d)),l};return f.clear=function(){o&&(clearTimeout(o),o=null)},f.flush=function(){o&&(l=e.apply(r,n),r=n=null,clearTimeout(o),o=null)},f}const A="page-break";var y=(e=>(e.A5="a5",e.A5Portrait="a5-portrait",e.A4="a4",e.A3="a3",e.B5="b5",e.B4="b4",e.letter="letter",e.legal="legal",e.ledger="ledger",e))(y||{});function _(e,s){const o={mm:3.7795275590551185,cm:37.79527559055118,in:96,pt:1.3333333333333333,pc:16};return o[s]?e*o[s]:null}const ue=(e,s)=>{const{name:t,id:o,width:n,height:r,unit:i}=e,{fixedHeight:l}=s,d=`${n}${i}`,g=`${r}${i}`;return{id:o||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${d} x ${g})`,sizeH:r,sizeW:n,sizeUnit:i,widthMedia:"",width:d,minHeight:l?"0":`${_(r,i)}px`,height:l?g:void 0}},G="page-breaks",D="gjs-page-breaks-spot",j=e=>e.type===G;function he(e){const{Devices:s}=e,{height:t,minHeight:o}=s.getSelected().attributes,r=parseFloat(`${t&&t!=="auto"?t:o}`),i=e.getWrapper(),l=i==null?void 0:i.getEl(),d=[];if(!i||!l)return d;const g=l.getBoundingClientRect().height,a=i.findType(A).map(u=>u.getEl()).filter(Boolean).map(u=>({top:u.offsetTop,height:u.offsetHeight}));let p=0;for(;p<g;){const u=a.find(m=>m.top>p&&m.top<p+r);u?(p=u.top+u.height,d.push(u.top)):(p+=r,p<g&&d.push(p))}return d}function fe(e,s){const{Canvas:t}=e,o=t.events,n=e.events;let r;const i=()=>{C(`${q}preset-printable-spots`,`.${D} {
1
+ "use strict";const W="app.grapesjs.com",z="app-stage.grapesjs.com",X="app2.grapesjs.com",Z="app-stage2.grapesjs.com",U=[W,X,z,Z,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],Q="license:check:start",ee="license:check:end",te=()=>typeof window<"u",I=(e,s={})=>{const t=ne(e)?{id:e,src:e}:e;return new Promise((o,n)=>{var p,u;const{loadedScripts:r}=s,{id:i,src:l}=t,d=document.querySelector(`script[src="${l}"]`);if(d){if((p=s.onScript)==null||p.call(s,d),r&&!r.get(l)){d.addEventListener("load",()=>o(i)),d.addEventListener("error",()=>n(i));return}return o(i)}const g=window.define;window.define=void 0;const f=()=>{r==null||r.set(l,!0),window.define=g},a=document.createElement("script");a.src=l,a.onload=()=>{o(i),f()},a.onerror=()=>{n(i),f()},document.head.appendChild(a),(u=s.onScript)==null||u.call(s,a)})},oe=({isDev:e,isStage:s,isPlatform:t})=>`${e?"":`https://${s?z:W}`}/${t?"platform-api":"api"}`,se=()=>{const e=te()&&window.location.hostname;return!!e&&(U.includes(e)||U.some(s=>e.endsWith(s)))},ne=e=>typeof e=="string";async function ae({path:e,baseApiUrl:s,method:t="GET",headers:o={},params:n,body:r}){const l=`${s||oe({isDev:!1,isStage:!1})}${e}`,d={method:t,headers:{"Content-Type":"application/json",...o}};r&&(d.body=JSON.stringify(r));const g=n?new URLSearchParams(n).toString():"",f=g?`?${g}`:"",a=await fetch(`${l}${f}`,d);if(!a.ok)throw new Error(`HTTP error! status: ${a.status}`);return a.json()}var $=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))($||{}),K=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",e.dialogImportCode="studio:dialogImportCode",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(K||{});const O={[$.free]:0,[$.startup]:10,[$.business]:20,[$.enterprise]:30};function re(e){const s=e;return s.init=t=>o=>e(o,t),s}const ie=e=>re(e);async function ce({editor:e,plan:s,pluginName:t,licenseKey:o,onLicenseCheckResponse:n,cleanup:r}){let i="",l=!1;const d=se(),g=a=>{console.warn("Cleanup plugin:",t,"Reason:",a),r()},f=(a={})=>{var c;const{error:p,sdkLicense:u}=a,m=(c=a.plan)==null?void 0:c.category;if(!(u||a.license)||p)g(p||"Invalid license");else if(m){const h=O[s],k=O[m];h>k&&g({pluginRequiredPlan:s,licensePlan:m})}};e.on(Q,a=>{i=a==null?void 0:a.baseApiUrl,l=!0}),e.on(ee,a=>{n==null||n(a),f(a)}),setTimeout(async()=>{if(!l){if(d)return;if(o){const a=await le({licenseKey:o,pluginName:t,baseApiUrl:i});n==null||n(a),a&&f(a)}else g("The `licenseKey` option not provided")}},2e3)}async function le(e){const{licenseKey:s,pluginName:t,baseApiUrl:o}=e;try{return(await ae({baseApiUrl:o,path:`/sdk/${s||"na"}`,method:"POST",params:{d:window.location.hostname,pn:t}})).result||{}}catch(n){return console.error("Error during SDK license check:",n),!1}}const de=e=>s=>{var t;return((t=s.getAttribute)==null?void 0:t.call(s,V))===e},pe=(...e)=>(s,t)=>e.some(o=>t.is(o)),C=(e,s,t)=>{const{doc:o=document}=t,n=t.target||o.head,r=n.querySelector(`style[${e}]`)||o.createElement("style");r.setAttribute(e,"true"),r.innerHTML=s,!n.contains(r)&&n.appendChild(r)},ge="gjs-plg-",q="data-gs-plg-",V="data-type-role";function N(e,s,t){let o,n,r,i,l;const d=s===void 0?100:s;function g(){const a=Date.now()-i;a<d&&a>=0?o=setTimeout(g,d-a):(o=null,l=e.apply(r,n),r=n=null)}const f=function(){return r=this,n=arguments,i=Date.now(),o||(o=setTimeout(g,d)),l};return f.clear=function(){o&&(clearTimeout(o),o=null)},f.flush=function(){o&&(l=e.apply(r,n),r=n=null,clearTimeout(o),o=null)},f}const A="page-break";var y=(e=>(e.A5="a5",e.A5Portrait="a5-portrait",e.A4="a4",e.A3="a3",e.B5="b5",e.B4="b4",e.letter="letter",e.legal="legal",e.ledger="ledger",e))(y||{});function _(e,s){const o={mm:3.7795275590551185,cm:37.79527559055118,in:96,pt:1.3333333333333333,pc:16};return o[s]?e*o[s]:null}const ue=(e,s)=>{const{name:t,id:o,width:n,height:r,unit:i}=e,{fixedHeight:l}=s,d=`${n}${i}`,g=`${r}${i}`;return{id:o||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${d} x ${g})`,sizeH:r,sizeW:n,sizeUnit:i,widthMedia:"",width:d,minHeight:l?"0":`${_(r,i)}px`,height:l?g:void 0}},G="page-breaks",D="gjs-page-breaks-spot",j=e=>e.type===G;function he(e){const{Devices:s}=e,{height:t,minHeight:o}=s.getSelected().attributes,r=parseFloat(`${t&&t!=="auto"?t:o}`),i=e.getWrapper(),l=i==null?void 0:i.getEl(),d=[];if(!i||!l)return d;const g=l.getBoundingClientRect().height,a=i.findType(A).map(u=>u.getEl()).filter(Boolean).map(u=>({top:u.offsetTop,height:u.offsetHeight}));let p=0;for(;p<g;){const u=a.find(m=>m.top>p&&m.top<p+r);u?(p=u.top+u.height,d.push(u.top)):(p+=r,p<g&&d.push(p))}return d}function fe(e,s){const{Canvas:t}=e,o=t.events,n=e.events;let r;const i=()=>{C(`${q}preset-printable-spots`,`.${D} {
2
2
  position: absolute;
3
3
  left: 0;
4
4
  width: 100%;
@@ -16,7 +16,7 @@
16
16
  right: 0;
17
17
  transform: translate(100%, -50%);
18
18
  }
19
- `,{target:window.document.head})},l=()=>{if(s.enablePageBreaksSpot===!1)return;const c={id:G,type:G,component:e.getWrapper()};return t.getSpots(c).pop()||t.addSpot(c)},d=({spot:c})=>{const{spotEl:h}=c.attributes;!j(c)||!h||!r||r.removeChild(h)},g=({spot:c})=>{if(!j(c)||!r)return;let{spotEl:h}=c.attributes;h||(h=document.createElement("div"),h.className=`${D}__items`,c.set({spotEl:h})),r.appendChild(h)},f=({spot:c})=>{const{spotEl:h,pageBreaks:k=[]}=c.attributes;!j(c)||!h||!r||(Object.entries(c.getStyle()).forEach(([x,L])=>h.style.setProperty(x,L)),h.innerHTML="",k.forEach((x,L)=>{const E=document.createElement("div");E.setAttribute("data-page-number",`${L+2}`),E.className=D,E.style.top=`${x}px`,h.appendChild(E)}))},a=N(()=>{if(e.em.destroyed)return;const c=l();c&&c.set({pageBreaks:he(e),up:(c.attributes.up||0)+1})},150),p=N(a,200),u=()=>{r=t.getSpotsEl(),l()},m=()=>{const c=l();c&&c.set({up:(c.attributes.up||0)+1})},w=[["component:input",a],["frame:scroll",m],[n.update,a],[o.spotAdd,g],[o.spotUpdate,f],[o.spotRemove,d],[o.frameLoadBody,u]];return w.forEach(([c,h])=>e.on(c,h)),e.onReady(()=>{i(),new ResizeObserver(m).observe(t.getElement().parentElement)}),()=>{w.forEach(([c,h])=>e.off(c,h)),a.clear(),p.clear()}}var H=(e=>(e.print="presetPrintable:print",e))(H||{});const F=e=>new Promise(s=>{const t=document.createElement("iframe");t.style.cssText="position: absolute; width: 0; height: 0; border: 0; opacity: 0; pointer-events: none;",t.srcdoc=e.content,t.onload=()=>s(t),document.body.appendChild(t)});function ve(e,s){const{Commands:t,Pages:o}=e;return t.add(H.print,async(n,r,i={})=>{const l={page:i.allPages?void 0:o.getSelected(),styles:"inline",optionsHtml:{exporter:null}},g=(await t.run(K.projectFiles,l)).filter(p=>p.filename.endsWith(".html")),f=g.map(p=>p.content).join('<div style="break-before: page;"></div>'),a=[];if(i.separatePrints)for(const p of g)a.push(await F(p));else a.push(await F({content:f,filename:"",mimeType:""}));for(const p of a){const u=p.contentWindow;u.focus(),u.print()}setTimeout(()=>a.forEach(p=>p.remove()),1e3)}),t.add("presetPrintable:exp",async n=>{await O("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"),await O("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");const{Devices:r,Canvas:i}=n,{sizeW:l,sizeH:d,sizeUnit:g}=r.getSelected().attributes,f=i.getFrameEl().contentDocument,a="px",p=[_(l,g),_(d,g)],u=new window.jspdf.jsPDF({unit:a,format:p}),m=f.body;u.html(m,{callback:w=>w.save()})}),()=>{delete e.Commands.commands[H.print]}}function be(e,s){const{blockPageBreak:t={}}=s,{Components:o,Blocks:n}=e,r="Page Break",i=`${ge}${A}`;return o.addType(A,{block:t&&{label:r,media:'<svg viewBox="0 0 24 24"><path d="M18 20H6v-2H4v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2h-2v2M14 2H6a2 2 0 0 0-2 2v8h2V4h8v4h4v4h2V8l-6-6m-3 14H8v-2h3v2m5 0h-3v-2h3v2M3 14h3v2H3v-2m18 2h-3v-2h3v2Z"/></svg>',category:"Extra",select:!0,...t},isComponent:de(A),model:{defaults:{name:r,classes:i,attributes:{[V]:A},emptyState:!0,stylable:!1,droppable:!1,draggable:pe("wrapper"),styles:`.${i} { break-before: page; }`,traits:[]}}}),()=>{o.removeType(A),n.remove(A)}}const me="presetPrintable",ye=$.free,we=function(e,s={}){var M;const t={selectedDevice:y.A4,...s},{Canvas:o,Devices:n,Blocks:r}=e,i=o.events,l=e.events,d=t.selectedDevice||n.getConfig().default,g=[{id:y.A5,name:"A5",width:148,height:210,unit:"mm"},{id:y.A5Portrait,name:"A5 Portrait",width:210,height:148,unit:"mm"},{id:y.A4,name:"A4",width:210,height:297,unit:"mm"},{id:y.A3,name:"A3",width:297,height:420,unit:"mm"},{id:y.B5,name:"B5",width:176,height:250,unit:"mm"},{id:y.B4,name:"B4",width:250,height:353,unit:"mm"},{id:y.letter,name:"Letter",width:8.5,height:11,unit:"in"},{id:y.legal,name:"Legal",width:8.5,height:14,unit:"in"},{id:y.ledger,name:"Ledger",width:11,height:17,unit:"in"}],a=(((M=t.devices)==null?void 0:M.call(t,{items:g}))||g).map(v=>ue(v,t));n.devices.reset(a);const p=d&&n.get(d)||n.getAll().at(0);n.select(p),["map","video"].forEach(v=>r.remove(v));const m=(v={})=>{const b="page-rule",{rules:P}=e.Css,{width:T,height:B,minHeight:R}=n.getSelected().attributes,Y=B&&B!=="auto"?B:R,S=P.where({id:b}).pop(),J=S||P.add({id:b,selectors:[],selectorsAdd:"@page"},{at:0});(v.fromDeviceChange||!S)&&J.addStyle({size:`${T} ${Y}`,...!S&&{margin:"0"}})},w=(v,b={})=>{const P=v.document,{minHeight:T}=n.getSelected().attributes,R=`
19
+ `,{target:window.document.head})},l=()=>{if(s.enablePageBreaksSpot===!1)return;const c={id:G,type:G,component:e.getWrapper()};return t.getSpots(c).pop()||t.addSpot(c)},d=({spot:c})=>{const{spotEl:h}=c.attributes;!j(c)||!h||!r||r.removeChild(h)},g=({spot:c})=>{if(!j(c)||!r)return;let{spotEl:h}=c.attributes;h||(h=document.createElement("div"),h.className=`${D}__items`,c.set({spotEl:h})),r.appendChild(h)},f=({spot:c})=>{const{spotEl:h,pageBreaks:k=[]}=c.attributes;!j(c)||!h||!r||(Object.entries(c.getStyle()).forEach(([x,L])=>h.style.setProperty(x,L)),h.innerHTML="",k.forEach((x,L)=>{const E=document.createElement("div");E.setAttribute("data-page-number",`${L+2}`),E.className=D,E.style.top=`${x}px`,h.appendChild(E)}))},a=N(()=>{if(e.em.destroyed)return;const c=l();c&&c.set({pageBreaks:he(e),up:(c.attributes.up||0)+1})},150),p=N(a,200),u=()=>{r=t.getSpotsEl(),l()},m=()=>{const c=l();c&&c.set({up:(c.attributes.up||0)+1})},w=[["component:input",a],["frame:scroll",m],[n.update,a],[o.spotAdd,g],[o.spotUpdate,f],[o.spotRemove,d],[o.frameLoadBody,u]];return w.forEach(([c,h])=>e.on(c,h)),e.onReady(()=>{i(),new ResizeObserver(m).observe(t.getElement().parentElement)}),()=>{w.forEach(([c,h])=>e.off(c,h)),a.clear(),p.clear()}}var H=(e=>(e.print="presetPrintable:print",e))(H||{});const F=e=>new Promise(s=>{const t=document.createElement("iframe");t.style.cssText="position: absolute; width: 0; height: 0; border: 0; opacity: 0; pointer-events: none;",t.srcdoc=e.content,t.onload=()=>s(t),document.body.appendChild(t)});function ve(e,s){const{Commands:t,Pages:o}=e;return t.add(H.print,async(n,r,i={})=>{const l={page:i.allPages?void 0:o.getSelected(),styles:"inline",optionsHtml:{exporter:null}},g=(await t.run(K.projectFiles,l)).filter(p=>p.filename.endsWith(".html")),f=g.map(p=>p.content).join('<div style="break-before: page;"></div>'),a=[];if(i.separatePrints)for(const p of g)a.push(await F(p));else a.push(await F({content:f,filename:"",mimeType:""}));for(const p of a){const u=p.contentWindow;u.focus(),u.print()}setTimeout(()=>a.forEach(p=>p.remove()),1e3)}),t.add("presetPrintable:exp",async n=>{await I("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"),await I("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");const{Devices:r,Canvas:i}=n,{sizeW:l,sizeH:d,sizeUnit:g}=r.getSelected().attributes,f=i.getFrameEl().contentDocument,a="px",p=[_(l,g),_(d,g)],u=new window.jspdf.jsPDF({unit:a,format:p}),m=f.body;u.html(m,{callback:w=>w.save()})}),()=>{delete e.Commands.commands[H.print]}}function be(e,s){const{blockPageBreak:t={}}=s,{Components:o,Blocks:n}=e,r="Page Break",i=`${ge}${A}`;return o.addType(A,{block:t&&{label:r,media:'<svg viewBox="0 0 24 24"><path d="M18 20H6v-2H4v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2h-2v2M14 2H6a2 2 0 0 0-2 2v8h2V4h8v4h4v4h2V8l-6-6m-3 14H8v-2h3v2m5 0h-3v-2h3v2M3 14h3v2H3v-2m18 2h-3v-2h3v2Z"/></svg>',category:"Extra",select:!0,...t},isComponent:de(A),model:{defaults:{name:r,classes:i,attributes:{[V]:A},emptyState:!0,stylable:!1,droppable:!1,draggable:pe("wrapper"),styles:`.${i} { break-before: page; }`,traits:[]}}}),()=>{o.removeType(A),n.remove(A)}}const me="presetPrintable",ye=$.free,we=function(e,s={}){var M;const t={selectedDevice:y.A4,...s},{Canvas:o,Devices:n,Blocks:r}=e,i=o.events,l=e.events,d=t.selectedDevice||n.getConfig().default,g=[{id:y.A5,name:"A5",width:148,height:210,unit:"mm"},{id:y.A5Portrait,name:"A5 Portrait",width:210,height:148,unit:"mm"},{id:y.A4,name:"A4",width:210,height:297,unit:"mm"},{id:y.A3,name:"A3",width:297,height:420,unit:"mm"},{id:y.B5,name:"B5",width:176,height:250,unit:"mm"},{id:y.B4,name:"B4",width:250,height:353,unit:"mm"},{id:y.letter,name:"Letter",width:8.5,height:11,unit:"in"},{id:y.legal,name:"Legal",width:8.5,height:14,unit:"in"},{id:y.ledger,name:"Ledger",width:11,height:17,unit:"in"}],a=(((M=t.devices)==null?void 0:M.call(t,{items:g}))||g).map(v=>ue(v,t));n.devices.reset(a);const p=d&&n.get(d)||n.getAll().at(0);n.select(p),["map","video"].forEach(v=>r.remove(v));const m=(v={})=>{const b="page-rule",{rules:P}=e.Css,{width:T,height:B,minHeight:R}=n.getSelected().attributes,Y=B&&B!=="auto"?B:R,S=P.where({id:b}).pop(),J=S||P.add({id:b,selectors:[],selectorsAdd:"@page"},{at:0});(v.fromDeviceChange||!S)&&J.addStyle({size:`${T} ${Y}`,...!S&&{margin:"0"}})},w=(v,b={})=>{const P=v.document,{minHeight:T}=n.getSelected().attributes,R=`
20
20
  ${!!parseFloat(`${T}`)?`
21
21
  [data-gjs-type="wrapper"] { min-height: ${T}; }
22
22
  `:`
@@ -11,7 +11,7 @@ const W = "app.grapesjs.com", z = "app-stage.grapesjs.com", X = "app2.grapesjs.c
11
11
  // For stackblitz.com demos
12
12
  "-sandpack.codesandbox.io"
13
13
  // For Sandpack demos
14
- ], Q = "license:check:start", ee = "license:check:end", te = () => typeof window < "u", O = (e, s = {}) => {
14
+ ], Q = "license:check:start", ee = "license:check:end", te = () => typeof window < "u", I = (e, s = {}) => {
15
15
  const t = ne(e) ? { id: e, src: e } : e;
16
16
  return new Promise((o, n) => {
17
17
  var p, u;
@@ -63,8 +63,8 @@ async function ae({
63
63
  throw new Error(`HTTP error! status: ${a.status}`);
64
64
  return a.json();
65
65
  }
66
- var $ = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))($ || {}), K = /* @__PURE__ */ ((e) => (e.toastAdd = "studio:toastAdd", e.toastRemove = "studio:toastRemove", e.dialogOpen = "studio:dialogOpen", e.dialogClose = "studio:dialogClose", e.dialogExportCode = "studio:dialogExportCode", e.sidebarLeftSet = "studio:sidebarLeft:set", e.sidebarLeftGet = "studio:sidebarLeft:get", e.sidebarLeftToggle = "studio:sidebarLeft:toggle", e.sidebarRightSet = "studio:sidebarRight:set", e.sidebarRightGet = "studio:sidebarRight:get", e.sidebarRightToggle = "studio:sidebarRight:toggle", e.sidebarTopSet = "studio:sidebarTop:set", e.sidebarTopGet = "studio:sidebarTop:get", e.sidebarTopToggle = "studio:sidebarTop:toggle", e.sidebarBottomSet = "studio:sidebarBottom:set", e.sidebarBottomGet = "studio:sidebarBottom:get", e.sidebarBottomToggle = "studio:sidebarBottom:toggle", e.symbolAdd = "studio:symbolAdd", e.symbolDetach = "studio:symbolDetach", e.symbolOverride = "studio:symbolOverride", e.symbolPropagateStyles = "studio:propagateStyles", e.getPagesConfig = "studio:getPagesConfig", e.setPagesConfig = "studio:setPagesConfig", e.getPageSettings = "studio:getPageSettings", e.setPageSettings = "studio:setPageSettings", e.clearPage = "studio:clearPage", e.projectFiles = "studio:projectFiles", e.validateCode = "studio:validateCode", e.canvasReload = "studio:canvasReload", e.getBlocksPanel = "studio:getBlocksPanel", e.setBlocksPanel = "studio:setBlocksPanel", e.getStateContextMenu = "studio:getStateContextMenu", e.setStateContextMenu = "studio:setStateContextMenu", e.contextMenuComponent = "studio:contextMenuComponent", e.layoutAdd = "studio:layoutAdd", e.layoutRemove = "studio:layoutRemove", e.layoutToggle = "studio:layoutToggle", e.layoutUpdate = "studio:layoutUpdate", e.layoutGet = "studio:layoutGet", e.layoutConfigGet = "studio:layoutConfigGet", e.layoutConfigSet = "studio:layoutConfigSet", e.layoutComponentAdd = "studio:layoutComponentAdd", e.layoutComponentGet = "studio:layoutComponentGet", e.layoutComponentRemove = "studio:layoutComponentRemove", e.layoutComponentRender = "studio:layoutComponentRender", e.getStateTheme = "studio:getStateTheme", e.setStateTheme = "studio:setStateTheme", e.assetProviderGet = "studio:assetProviderGet", e.assetProviderAdd = "studio:assetProviderAdd", e.assetProviderRemove = "studio:assetProviderRemove", e.fontGet = "studio:fontGet", e.fontAdd = "studio:fontAdd", e.fontRemove = "studio:fontRemove", e.fontManagerOpen = "studio:fontManagerOpen", e.menuFontLoad = "studio:menuFontLoad", e.toggleStateDataSource = "studio:toggleStateDataSource", e.getStateDataSource = "studio:getStateDataSource", e.dataSourceSetGlobalData = "studio:dataSourceSetGlobalData", e.dataSourceSetImporter = "studio:dataSourceSetImporter", e.dataSourceSetExporter = "studio:dataSourceSetExporter", e.setDragAbsolute = "studio:setDragAbsolute", e))(K || {});
67
- const I = {
66
+ var $ = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))($ || {}), K = /* @__PURE__ */ ((e) => (e.toastAdd = "studio:toastAdd", e.toastRemove = "studio:toastRemove", e.dialogOpen = "studio:dialogOpen", e.dialogClose = "studio:dialogClose", e.dialogExportCode = "studio:dialogExportCode", e.dialogImportCode = "studio:dialogImportCode", e.sidebarLeftSet = "studio:sidebarLeft:set", e.sidebarLeftGet = "studio:sidebarLeft:get", e.sidebarLeftToggle = "studio:sidebarLeft:toggle", e.sidebarRightSet = "studio:sidebarRight:set", e.sidebarRightGet = "studio:sidebarRight:get", e.sidebarRightToggle = "studio:sidebarRight:toggle", e.sidebarTopSet = "studio:sidebarTop:set", e.sidebarTopGet = "studio:sidebarTop:get", e.sidebarTopToggle = "studio:sidebarTop:toggle", e.sidebarBottomSet = "studio:sidebarBottom:set", e.sidebarBottomGet = "studio:sidebarBottom:get", e.sidebarBottomToggle = "studio:sidebarBottom:toggle", e.symbolAdd = "studio:symbolAdd", e.symbolDetach = "studio:symbolDetach", e.symbolOverride = "studio:symbolOverride", e.symbolPropagateStyles = "studio:propagateStyles", e.getPagesConfig = "studio:getPagesConfig", e.setPagesConfig = "studio:setPagesConfig", e.getPageSettings = "studio:getPageSettings", e.setPageSettings = "studio:setPageSettings", e.clearPage = "studio:clearPage", e.projectFiles = "studio:projectFiles", e.validateCode = "studio:validateCode", e.canvasReload = "studio:canvasReload", e.getBlocksPanel = "studio:getBlocksPanel", e.setBlocksPanel = "studio:setBlocksPanel", e.getStateContextMenu = "studio:getStateContextMenu", e.setStateContextMenu = "studio:setStateContextMenu", e.contextMenuComponent = "studio:contextMenuComponent", e.layoutAdd = "studio:layoutAdd", e.layoutRemove = "studio:layoutRemove", e.layoutToggle = "studio:layoutToggle", e.layoutUpdate = "studio:layoutUpdate", e.layoutGet = "studio:layoutGet", e.layoutConfigGet = "studio:layoutConfigGet", e.layoutConfigSet = "studio:layoutConfigSet", e.layoutComponentAdd = "studio:layoutComponentAdd", e.layoutComponentGet = "studio:layoutComponentGet", e.layoutComponentRemove = "studio:layoutComponentRemove", e.layoutComponentRender = "studio:layoutComponentRender", e.getStateTheme = "studio:getStateTheme", e.setStateTheme = "studio:setStateTheme", e.assetProviderGet = "studio:assetProviderGet", e.assetProviderAdd = "studio:assetProviderAdd", e.assetProviderRemove = "studio:assetProviderRemove", e.fontGet = "studio:fontGet", e.fontAdd = "studio:fontAdd", e.fontRemove = "studio:fontRemove", e.fontManagerOpen = "studio:fontManagerOpen", e.menuFontLoad = "studio:menuFontLoad", e.toggleStateDataSource = "studio:toggleStateDataSource", e.getStateDataSource = "studio:getStateDataSource", e.dataSourceSetGlobalData = "studio:dataSourceSetGlobalData", e.dataSourceSetImporter = "studio:dataSourceSetImporter", e.dataSourceSetExporter = "studio:dataSourceSetExporter", e.setDragAbsolute = "studio:setDragAbsolute", e))(K || {});
67
+ const O = {
68
68
  [$.free]: 0,
69
69
  [$.startup]: 10,
70
70
  [$.business]: 20,
@@ -92,7 +92,7 @@ async function ce({
92
92
  if (!(u || a.license) || p)
93
93
  g(p || "Invalid license");
94
94
  else if (m) {
95
- const h = I[s], k = I[m];
95
+ const h = O[s], k = O[m];
96
96
  h > k && g({ pluginRequiredPlan: s, licensePlan: m });
97
97
  }
98
98
  };
@@ -291,7 +291,7 @@ function ve(e, s) {
291
291
  setTimeout(() => a.forEach((p) => p.remove()), 1e3);
292
292
  }
293
293
  ), t.add("presetPrintable:exp", async (n) => {
294
- await O("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"), await O("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");
294
+ await I("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"), await I("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");
295
295
  const { Devices: r, Canvas: i } = n, { sizeW: l, sizeH: d, sizeUnit: g } = r.getSelected().attributes, f = i.getFrameEl().contentDocument, a = "px", p = [_(l, g), _(d, g)], u = new window.jspdf.jsPDF({ unit: a, format: p }), m = f.body;
296
296
  u.html(m, { callback: (w) => w.save() });
297
297
  }), () => {
@@ -1,4 +1,4 @@
1
- (function(B,R){typeof exports=="object"&&typeof module<"u"?module.exports=R():typeof define=="function"&&define.amd?define(R):(B=typeof globalThis<"u"?globalThis:B||self,B.StudioSdkPlugins_presetPrintable=R())})(this,function(){"use strict";const B="app.grapesjs.com",R="app-stage.grapesjs.com",U=[B,"app2.grapesjs.com",R,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],Y="license:check:start",J="license:check:end",X=()=>typeof window<"u",I=(e,n={})=>{const t=ee(e)?{id:e,src:e}:e;return new Promise((o,s)=>{var p,u;const{loadedScripts:i}=n,{id:r,src:l}=t,d=document.querySelector(`script[src="${l}"]`);if(d){if((p=n.onScript)==null||p.call(n,d),i&&!i.get(l)){d.addEventListener("load",()=>o(r)),d.addEventListener("error",()=>s(r));return}return o(r)}const g=window.define;window.define=void 0;const f=()=>{i==null||i.set(l,!0),window.define=g},a=document.createElement("script");a.src=l,a.onload=()=>{o(r),f()},a.onerror=()=>{s(r),f()},document.head.appendChild(a),(u=n.onScript)==null||u.call(n,a)})},Z=({isDev:e,isStage:n,isPlatform:t})=>`${e?"":`https://${n?R:B}`}/${t?"platform-api":"api"}`,Q=()=>{const e=X()&&window.location.hostname;return!!e&&(U.includes(e)||U.some(n=>e.endsWith(n)))},ee=e=>typeof e=="string";async function te({path:e,baseApiUrl:n,method:t="GET",headers:o={},params:s,body:i}){const l=`${n||Z({isDev:!1,isStage:!1})}${e}`,d={method:t,headers:{"Content-Type":"application/json",...o}};i&&(d.body=JSON.stringify(i));const g=s?new URLSearchParams(s).toString():"",f=g?`?${g}`:"",a=await fetch(`${l}${f}`,d);if(!a.ok)throw new Error(`HTTP error! status: ${a.status}`);return a.json()}var $=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))($||{}),N=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(N||{});const F={[$.free]:0,[$.startup]:10,[$.business]:20,[$.enterprise]:30};function oe(e){const n=e;return n.init=t=>o=>e(o,t),n}const ne=e=>oe(e);async function se({editor:e,plan:n,pluginName:t,licenseKey:o,onLicenseCheckResponse:s,cleanup:i}){let r="",l=!1;const d=Q(),g=a=>{console.warn("Cleanup plugin:",t,"Reason:",a),i()},f=(a={})=>{var c;const{error:p,sdkLicense:u}=a,m=(c=a.plan)==null?void 0:c.category;if(!(u||a.license)||p)g(p||"Invalid license");else if(m){const h=F[n],D=F[m];h>D&&g({pluginRequiredPlan:n,licensePlan:m})}};e.on(Y,a=>{r=a==null?void 0:a.baseApiUrl,l=!0}),e.on(J,a=>{s==null||s(a),f(a)}),setTimeout(async()=>{if(!l){if(d)return;if(o){const a=await ae({licenseKey:o,pluginName:t,baseApiUrl:r});s==null||s(a),a&&f(a)}else g("The `licenseKey` option not provided")}},2e3)}async function ae(e){const{licenseKey:n,pluginName:t,baseApiUrl:o}=e;try{return(await te({baseApiUrl:o,path:`/sdk/${n||"na"}`,method:"POST",params:{d:window.location.hostname,pn:t}})).result||{}}catch(s){return console.error("Error during SDK license check:",s),!1}}const ie=e=>n=>{var t;return((t=n.getAttribute)==null?void 0:t.call(n,K))===e},re=(...e)=>(n,t)=>e.some(o=>t.is(o)),W=(e,n,t)=>{const{doc:o=document}=t,s=t.target||o.head,i=s.querySelector(`style[${e}]`)||o.createElement("style");i.setAttribute(e,"true"),i.innerHTML=n,!s.contains(i)&&s.appendChild(i)},ce="gjs-plg-",z="data-gs-plg-",K="data-type-role";function C(e,n,t){let o,s,i,r,l;const d=n===void 0?100:n;function g(){const a=Date.now()-r;a<d&&a>=0?o=setTimeout(g,d-a):(o=null,l=e.apply(i,s),i=s=null)}const f=function(){return i=this,s=arguments,r=Date.now(),o||(o=setTimeout(g,d)),l};return f.clear=function(){o&&(clearTimeout(o),o=null)},f.flush=function(){o&&(l=e.apply(i,s),i=s=null,clearTimeout(o),o=null)},f}const E="page-break";var y=(e=>(e.A5="a5",e.A5Portrait="a5-portrait",e.A4="a4",e.A3="a3",e.B5="b5",e.B4="b4",e.letter="letter",e.legal="legal",e.ledger="ledger",e))(y||{});function j(e,n){const o={mm:3.7795275590551185,cm:37.79527559055118,in:96,pt:1.3333333333333333,pc:16};return o[n]?e*o[n]:null}const le=(e,n)=>{const{name:t,id:o,width:s,height:i,unit:r}=e,{fixedHeight:l}=n,d=`${s}${r}`,g=`${i}${r}`;return{id:o||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${d} x ${g})`,sizeH:i,sizeW:s,sizeUnit:r,widthMedia:"",width:d,minHeight:l?"0":`${j(i,r)}px`,height:l?g:void 0}},G="page-breaks",_="gjs-page-breaks-spot",M=e=>e.type===G;function de(e){const{Devices:n}=e,{height:t,minHeight:o}=n.getSelected().attributes,i=parseFloat(`${t&&t!=="auto"?t:o}`),r=e.getWrapper(),l=r==null?void 0:r.getEl(),d=[];if(!r||!l)return d;const g=l.getBoundingClientRect().height,a=r.findType(E).map(u=>u.getEl()).filter(Boolean).map(u=>({top:u.offsetTop,height:u.offsetHeight}));let p=0;for(;p<g;){const u=a.find(m=>m.top>p&&m.top<p+i);u?(p=u.top+u.height,d.push(u.top)):(p+=i,p<g&&d.push(p))}return d}function pe(e,n){const{Canvas:t}=e,o=t.events,s=e.events;let i;const r=()=>{W(`${z}preset-printable-spots`,`.${_} {
1
+ (function(B,R){typeof exports=="object"&&typeof module<"u"?module.exports=R():typeof define=="function"&&define.amd?define(R):(B=typeof globalThis<"u"?globalThis:B||self,B.StudioSdkPlugins_presetPrintable=R())})(this,function(){"use strict";const B="app.grapesjs.com",R="app-stage.grapesjs.com",U=[B,"app2.grapesjs.com",R,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],Y="license:check:start",J="license:check:end",X=()=>typeof window<"u",I=(e,s={})=>{const t=ee(e)?{id:e,src:e}:e;return new Promise((o,n)=>{var p,u;const{loadedScripts:i}=s,{id:r,src:l}=t,d=document.querySelector(`script[src="${l}"]`);if(d){if((p=s.onScript)==null||p.call(s,d),i&&!i.get(l)){d.addEventListener("load",()=>o(r)),d.addEventListener("error",()=>n(r));return}return o(r)}const g=window.define;window.define=void 0;const f=()=>{i==null||i.set(l,!0),window.define=g},a=document.createElement("script");a.src=l,a.onload=()=>{o(r),f()},a.onerror=()=>{n(r),f()},document.head.appendChild(a),(u=s.onScript)==null||u.call(s,a)})},Z=({isDev:e,isStage:s,isPlatform:t})=>`${e?"":`https://${s?R:B}`}/${t?"platform-api":"api"}`,Q=()=>{const e=X()&&window.location.hostname;return!!e&&(U.includes(e)||U.some(s=>e.endsWith(s)))},ee=e=>typeof e=="string";async function te({path:e,baseApiUrl:s,method:t="GET",headers:o={},params:n,body:i}){const l=`${s||Z({isDev:!1,isStage:!1})}${e}`,d={method:t,headers:{"Content-Type":"application/json",...o}};i&&(d.body=JSON.stringify(i));const g=n?new URLSearchParams(n).toString():"",f=g?`?${g}`:"",a=await fetch(`${l}${f}`,d);if(!a.ok)throw new Error(`HTTP error! status: ${a.status}`);return a.json()}var $=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))($||{}),N=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",e.dialogImportCode="studio:dialogImportCode",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(N||{});const F={[$.free]:0,[$.startup]:10,[$.business]:20,[$.enterprise]:30};function oe(e){const s=e;return s.init=t=>o=>e(o,t),s}const se=e=>oe(e);async function ne({editor:e,plan:s,pluginName:t,licenseKey:o,onLicenseCheckResponse:n,cleanup:i}){let r="",l=!1;const d=Q(),g=a=>{console.warn("Cleanup plugin:",t,"Reason:",a),i()},f=(a={})=>{var c;const{error:p,sdkLicense:u}=a,m=(c=a.plan)==null?void 0:c.category;if(!(u||a.license)||p)g(p||"Invalid license");else if(m){const h=F[s],D=F[m];h>D&&g({pluginRequiredPlan:s,licensePlan:m})}};e.on(Y,a=>{r=a==null?void 0:a.baseApiUrl,l=!0}),e.on(J,a=>{n==null||n(a),f(a)}),setTimeout(async()=>{if(!l){if(d)return;if(o){const a=await ae({licenseKey:o,pluginName:t,baseApiUrl:r});n==null||n(a),a&&f(a)}else g("The `licenseKey` option not provided")}},2e3)}async function ae(e){const{licenseKey:s,pluginName:t,baseApiUrl:o}=e;try{return(await te({baseApiUrl:o,path:`/sdk/${s||"na"}`,method:"POST",params:{d:window.location.hostname,pn:t}})).result||{}}catch(n){return console.error("Error during SDK license check:",n),!1}}const ie=e=>s=>{var t;return((t=s.getAttribute)==null?void 0:t.call(s,K))===e},re=(...e)=>(s,t)=>e.some(o=>t.is(o)),W=(e,s,t)=>{const{doc:o=document}=t,n=t.target||o.head,i=n.querySelector(`style[${e}]`)||o.createElement("style");i.setAttribute(e,"true"),i.innerHTML=s,!n.contains(i)&&n.appendChild(i)},ce="gjs-plg-",z="data-gs-plg-",K="data-type-role";function C(e,s,t){let o,n,i,r,l;const d=s===void 0?100:s;function g(){const a=Date.now()-r;a<d&&a>=0?o=setTimeout(g,d-a):(o=null,l=e.apply(i,n),i=n=null)}const f=function(){return i=this,n=arguments,r=Date.now(),o||(o=setTimeout(g,d)),l};return f.clear=function(){o&&(clearTimeout(o),o=null)},f.flush=function(){o&&(l=e.apply(i,n),i=n=null,clearTimeout(o),o=null)},f}const E="page-break";var y=(e=>(e.A5="a5",e.A5Portrait="a5-portrait",e.A4="a4",e.A3="a3",e.B5="b5",e.B4="b4",e.letter="letter",e.legal="legal",e.ledger="ledger",e))(y||{});function j(e,s){const o={mm:3.7795275590551185,cm:37.79527559055118,in:96,pt:1.3333333333333333,pc:16};return o[s]?e*o[s]:null}const le=(e,s)=>{const{name:t,id:o,width:n,height:i,unit:r}=e,{fixedHeight:l}=s,d=`${n}${r}`,g=`${i}${r}`;return{id:o||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${d} x ${g})`,sizeH:i,sizeW:n,sizeUnit:r,widthMedia:"",width:d,minHeight:l?"0":`${j(i,r)}px`,height:l?g:void 0}},G="page-breaks",_="gjs-page-breaks-spot",M=e=>e.type===G;function de(e){const{Devices:s}=e,{height:t,minHeight:o}=s.getSelected().attributes,i=parseFloat(`${t&&t!=="auto"?t:o}`),r=e.getWrapper(),l=r==null?void 0:r.getEl(),d=[];if(!r||!l)return d;const g=l.getBoundingClientRect().height,a=r.findType(E).map(u=>u.getEl()).filter(Boolean).map(u=>({top:u.offsetTop,height:u.offsetHeight}));let p=0;for(;p<g;){const u=a.find(m=>m.top>p&&m.top<p+i);u?(p=u.top+u.height,d.push(u.top)):(p+=i,p<g&&d.push(p))}return d}function pe(e,s){const{Canvas:t}=e,o=t.events,n=e.events;let i;const r=()=>{W(`${z}preset-printable-spots`,`.${_} {
2
2
  position: absolute;
3
3
  left: 0;
4
4
  width: 100%;
@@ -16,7 +16,7 @@
16
16
  right: 0;
17
17
  transform: translate(100%, -50%);
18
18
  }
19
- `,{target:window.document.head})},l=()=>{if(n.enablePageBreaksSpot===!1)return;const c={id:G,type:G,component:e.getWrapper()};return t.getSpots(c).pop()||t.addSpot(c)},d=({spot:c})=>{const{spotEl:h}=c.attributes;!M(c)||!h||!i||i.removeChild(h)},g=({spot:c})=>{if(!M(c)||!i)return;let{spotEl:h}=c.attributes;h||(h=document.createElement("div"),h.className=`${_}__items`,c.set({spotEl:h})),i.appendChild(h)},f=({spot:c})=>{const{spotEl:h,pageBreaks:D=[]}=c.attributes;!M(c)||!h||!i||(Object.entries(c.getStyle()).forEach(([S,L])=>h.style.setProperty(S,L)),h.innerHTML="",D.forEach((S,L)=>{const A=document.createElement("div");A.setAttribute("data-page-number",`${L+2}`),A.className=_,A.style.top=`${S}px`,h.appendChild(A)}))},a=C(()=>{if(e.em.destroyed)return;const c=l();c&&c.set({pageBreaks:de(e),up:(c.attributes.up||0)+1})},150),p=C(a,200),u=()=>{i=t.getSpotsEl(),l()},m=()=>{const c=l();c&&c.set({up:(c.attributes.up||0)+1})},w=[["component:input",a],["frame:scroll",m],[s.update,a],[o.spotAdd,g],[o.spotUpdate,f],[o.spotRemove,d],[o.frameLoadBody,u]];return w.forEach(([c,h])=>e.on(c,h)),e.onReady(()=>{r(),new ResizeObserver(m).observe(t.getElement().parentElement)}),()=>{w.forEach(([c,h])=>e.off(c,h)),a.clear(),p.clear()}}var H=(e=>(e.print="presetPrintable:print",e))(H||{});const q=e=>new Promise(n=>{const t=document.createElement("iframe");t.style.cssText="position: absolute; width: 0; height: 0; border: 0; opacity: 0; pointer-events: none;",t.srcdoc=e.content,t.onload=()=>n(t),document.body.appendChild(t)});function ge(e,n){const{Commands:t,Pages:o}=e;return t.add(H.print,async(s,i,r={})=>{const l={page:r.allPages?void 0:o.getSelected(),styles:"inline",optionsHtml:{exporter:null}},g=(await t.run(N.projectFiles,l)).filter(p=>p.filename.endsWith(".html")),f=g.map(p=>p.content).join('<div style="break-before: page;"></div>'),a=[];if(r.separatePrints)for(const p of g)a.push(await q(p));else a.push(await q({content:f,filename:"",mimeType:""}));for(const p of a){const u=p.contentWindow;u.focus(),u.print()}setTimeout(()=>a.forEach(p=>p.remove()),1e3)}),t.add("presetPrintable:exp",async s=>{await I("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"),await I("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");const{Devices:i,Canvas:r}=s,{sizeW:l,sizeH:d,sizeUnit:g}=i.getSelected().attributes,f=r.getFrameEl().contentDocument,a="px",p=[j(l,g),j(d,g)],u=new window.jspdf.jsPDF({unit:a,format:p}),m=f.body;u.html(m,{callback:w=>w.save()})}),()=>{delete e.Commands.commands[H.print]}}function ue(e,n){const{blockPageBreak:t={}}=n,{Components:o,Blocks:s}=e,i="Page Break",r=`${ce}${E}`;return o.addType(E,{block:t&&{label:i,media:'<svg viewBox="0 0 24 24"><path d="M18 20H6v-2H4v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2h-2v2M14 2H6a2 2 0 0 0-2 2v8h2V4h8v4h4v4h2V8l-6-6m-3 14H8v-2h3v2m5 0h-3v-2h3v2M3 14h3v2H3v-2m18 2h-3v-2h3v2Z"/></svg>',category:"Extra",select:!0,...t},isComponent:ie(E),model:{defaults:{name:i,classes:r,attributes:{[K]:E},emptyState:!0,stylable:!1,droppable:!1,draggable:re("wrapper"),styles:`.${r} { break-before: page; }`,traits:[]}}}),()=>{o.removeType(E),s.remove(E)}}const he="presetPrintable",fe=$.free;return ne(function(e,n={}){var V;const t={selectedDevice:y.A4,...n},{Canvas:o,Devices:s,Blocks:i}=e,r=o.events,l=e.events,d=t.selectedDevice||s.getConfig().default,g=[{id:y.A5,name:"A5",width:148,height:210,unit:"mm"},{id:y.A5Portrait,name:"A5 Portrait",width:210,height:148,unit:"mm"},{id:y.A4,name:"A4",width:210,height:297,unit:"mm"},{id:y.A3,name:"A3",width:297,height:420,unit:"mm"},{id:y.B5,name:"B5",width:176,height:250,unit:"mm"},{id:y.B4,name:"B4",width:250,height:353,unit:"mm"},{id:y.letter,name:"Letter",width:8.5,height:11,unit:"in"},{id:y.legal,name:"Legal",width:8.5,height:14,unit:"in"},{id:y.ledger,name:"Ledger",width:11,height:17,unit:"in"}],a=(((V=t.devices)==null?void 0:V.call(t,{items:g}))||g).map(v=>le(v,t));s.devices.reset(a);const p=d&&s.get(d)||s.getAll().at(0);s.select(p),["map","video"].forEach(v=>i.remove(v));const m=(v={})=>{const b="page-rule",{rules:P}=e.Css,{width:T,height:k,minHeight:x}=s.getSelected().attributes,ve=k&&k!=="auto"?k:x,O=P.where({id:b}).pop(),be=O||P.add({id:b,selectors:[],selectorsAdd:"@page"},{at:0});(v.fromDeviceChange||!O)&&be.addStyle({size:`${T} ${ve}`,...!O&&{margin:"0"}})},w=(v,b={})=>{const P=v.document,{minHeight:T}=s.getSelected().attributes,x=`
19
+ `,{target:window.document.head})},l=()=>{if(s.enablePageBreaksSpot===!1)return;const c={id:G,type:G,component:e.getWrapper()};return t.getSpots(c).pop()||t.addSpot(c)},d=({spot:c})=>{const{spotEl:h}=c.attributes;!M(c)||!h||!i||i.removeChild(h)},g=({spot:c})=>{if(!M(c)||!i)return;let{spotEl:h}=c.attributes;h||(h=document.createElement("div"),h.className=`${_}__items`,c.set({spotEl:h})),i.appendChild(h)},f=({spot:c})=>{const{spotEl:h,pageBreaks:D=[]}=c.attributes;!M(c)||!h||!i||(Object.entries(c.getStyle()).forEach(([S,L])=>h.style.setProperty(S,L)),h.innerHTML="",D.forEach((S,L)=>{const A=document.createElement("div");A.setAttribute("data-page-number",`${L+2}`),A.className=_,A.style.top=`${S}px`,h.appendChild(A)}))},a=C(()=>{if(e.em.destroyed)return;const c=l();c&&c.set({pageBreaks:de(e),up:(c.attributes.up||0)+1})},150),p=C(a,200),u=()=>{i=t.getSpotsEl(),l()},m=()=>{const c=l();c&&c.set({up:(c.attributes.up||0)+1})},w=[["component:input",a],["frame:scroll",m],[n.update,a],[o.spotAdd,g],[o.spotUpdate,f],[o.spotRemove,d],[o.frameLoadBody,u]];return w.forEach(([c,h])=>e.on(c,h)),e.onReady(()=>{r(),new ResizeObserver(m).observe(t.getElement().parentElement)}),()=>{w.forEach(([c,h])=>e.off(c,h)),a.clear(),p.clear()}}var H=(e=>(e.print="presetPrintable:print",e))(H||{});const q=e=>new Promise(s=>{const t=document.createElement("iframe");t.style.cssText="position: absolute; width: 0; height: 0; border: 0; opacity: 0; pointer-events: none;",t.srcdoc=e.content,t.onload=()=>s(t),document.body.appendChild(t)});function ge(e,s){const{Commands:t,Pages:o}=e;return t.add(H.print,async(n,i,r={})=>{const l={page:r.allPages?void 0:o.getSelected(),styles:"inline",optionsHtml:{exporter:null}},g=(await t.run(N.projectFiles,l)).filter(p=>p.filename.endsWith(".html")),f=g.map(p=>p.content).join('<div style="break-before: page;"></div>'),a=[];if(r.separatePrints)for(const p of g)a.push(await q(p));else a.push(await q({content:f,filename:"",mimeType:""}));for(const p of a){const u=p.contentWindow;u.focus(),u.print()}setTimeout(()=>a.forEach(p=>p.remove()),1e3)}),t.add("presetPrintable:exp",async n=>{await I("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"),await I("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");const{Devices:i,Canvas:r}=n,{sizeW:l,sizeH:d,sizeUnit:g}=i.getSelected().attributes,f=r.getFrameEl().contentDocument,a="px",p=[j(l,g),j(d,g)],u=new window.jspdf.jsPDF({unit:a,format:p}),m=f.body;u.html(m,{callback:w=>w.save()})}),()=>{delete e.Commands.commands[H.print]}}function ue(e,s){const{blockPageBreak:t={}}=s,{Components:o,Blocks:n}=e,i="Page Break",r=`${ce}${E}`;return o.addType(E,{block:t&&{label:i,media:'<svg viewBox="0 0 24 24"><path d="M18 20H6v-2H4v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2h-2v2M14 2H6a2 2 0 0 0-2 2v8h2V4h8v4h4v4h2V8l-6-6m-3 14H8v-2h3v2m5 0h-3v-2h3v2M3 14h3v2H3v-2m18 2h-3v-2h3v2Z"/></svg>',category:"Extra",select:!0,...t},isComponent:ie(E),model:{defaults:{name:i,classes:r,attributes:{[K]:E},emptyState:!0,stylable:!1,droppable:!1,draggable:re("wrapper"),styles:`.${r} { break-before: page; }`,traits:[]}}}),()=>{o.removeType(E),n.remove(E)}}const he="presetPrintable",fe=$.free;return se(function(e,s={}){var V;const t={selectedDevice:y.A4,...s},{Canvas:o,Devices:n,Blocks:i}=e,r=o.events,l=e.events,d=t.selectedDevice||n.getConfig().default,g=[{id:y.A5,name:"A5",width:148,height:210,unit:"mm"},{id:y.A5Portrait,name:"A5 Portrait",width:210,height:148,unit:"mm"},{id:y.A4,name:"A4",width:210,height:297,unit:"mm"},{id:y.A3,name:"A3",width:297,height:420,unit:"mm"},{id:y.B5,name:"B5",width:176,height:250,unit:"mm"},{id:y.B4,name:"B4",width:250,height:353,unit:"mm"},{id:y.letter,name:"Letter",width:8.5,height:11,unit:"in"},{id:y.legal,name:"Legal",width:8.5,height:14,unit:"in"},{id:y.ledger,name:"Ledger",width:11,height:17,unit:"in"}],a=(((V=t.devices)==null?void 0:V.call(t,{items:g}))||g).map(v=>le(v,t));n.devices.reset(a);const p=d&&n.get(d)||n.getAll().at(0);n.select(p),["map","video"].forEach(v=>i.remove(v));const m=(v={})=>{const b="page-rule",{rules:P}=e.Css,{width:T,height:k,minHeight:x}=n.getSelected().attributes,ve=k&&k!=="auto"?k:x,O=P.where({id:b}).pop(),be=O||P.add({id:b,selectors:[],selectorsAdd:"@page"},{at:0});(v.fromDeviceChange||!O)&&be.addStyle({size:`${T} ${ve}`,...!O&&{margin:"0"}})},w=(v,b={})=>{const P=v.document,{minHeight:T}=n.getSelected().attributes,x=`
20
20
  ${!!parseFloat(`${T}`)?`
21
21
  [data-gjs-type="wrapper"] { min-height: ${T}; }
22
22
  `:`
@@ -29,4 +29,4 @@
29
29
  height: 100dvh;
30
30
  }
31
31
  `}
32
- `;W(`${z}preset-printable`,x,{doc:P,target:P.head}),m(b)};e.on(r.frameLoadBody,v=>{const b=v.window;if(w(b),t.fixedHeight){const T=v.model.getComponent().getEl();T==null||T.addEventListener("scroll",k=>{const x=k.target;x.scrollTop>0&&x.scrollTo(0,0)})}}),e.on(s.events.select,()=>{var b;const v=(b=o.getFrameEl().contentDocument)==null?void 0:b.defaultView;v&&w(v,{fromDeviceChange:!0})});const c=()=>{const b=e.Css.getRules().filter(P=>P.selectorsToString()==="body").pop();b==null||b.addStyle({"margin-top":"","margin-right":"","margin-bottom":"","margin-left":"",margin:"0"})},h=[[l.projectLoad,c]];h.forEach(([v,b])=>e.on(v,b));const D=pe(e,t),S=ge(e),L=ue(e,t);e.onReady(()=>{e.UndoManager.clear()});const A=()=>{h.forEach(([v,b])=>e.off(v,b)),D(),S(),L()};e.on(l.destroy,A),se({editor:e,licenseKey:t.licenseKey,plan:fe,pluginName:he,cleanup:A})})});
32
+ `;W(`${z}preset-printable`,x,{doc:P,target:P.head}),m(b)};e.on(r.frameLoadBody,v=>{const b=v.window;if(w(b),t.fixedHeight){const T=v.model.getComponent().getEl();T==null||T.addEventListener("scroll",k=>{const x=k.target;x.scrollTop>0&&x.scrollTo(0,0)})}}),e.on(n.events.select,()=>{var b;const v=(b=o.getFrameEl().contentDocument)==null?void 0:b.defaultView;v&&w(v,{fromDeviceChange:!0})});const c=()=>{const b=e.Css.getRules().filter(P=>P.selectorsToString()==="body").pop();b==null||b.addStyle({"margin-top":"","margin-right":"","margin-bottom":"","margin-left":"",margin:"0"})},h=[[l.projectLoad,c]];h.forEach(([v,b])=>e.on(v,b));const D=pe(e,t),S=ge(e),L=ue(e,t);e.onReady(()=>{e.UndoManager.clear()});const A=()=>{h.forEach(([v,b])=>e.off(v,b)),D(),S(),L()};e.on(l.destroy,A),ne({editor:e,licenseKey:t.licenseKey,plan:fe,pluginName:he,cleanup:A})})});