@grapesjs/studio-sdk-plugins 1.0.38-rc.0 → 1.0.39-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/dist/accordionComponent/index.cjs.js +5 -5
  2. package/dist/accordionComponent/index.es.js +70 -67
  3. package/dist/accordionComponent/index.js +39 -0
  4. package/dist/accordionComponent/index.umd.js +4 -4
  5. package/dist/aiChat/components/AiChatHeader.d.ts +4 -5
  6. package/dist/aiChat/components/AiChatInput/index.d.ts +4 -5
  7. package/dist/aiChat/components/AiChatMessage.d.ts +7 -8
  8. package/dist/aiChat/components/index.d.ts +1 -1
  9. package/dist/aiChat/components/utils.d.ts +1 -1
  10. package/dist/aiChat/index.cjs.js +10 -376
  11. package/dist/aiChat/index.es.js +4569 -28851
  12. package/dist/aiChat/index.js +10 -376
  13. package/dist/aiChat/index.umd.js +11 -377
  14. package/dist/aiChat/server/index.cjs.d.ts +0 -1
  15. package/dist/aiChat/server/index.cjs.js +45 -45
  16. package/dist/aiChat/server/index.d.ts +0 -1
  17. package/dist/aiChat/server/index.es.d.ts +0 -1
  18. package/dist/aiChat/server/index.es.js +371 -427
  19. package/dist/aiChat/server/index.js +45 -45
  20. package/dist/aiChat/server/index.umd.js +41 -41
  21. package/dist/aiChat/server/stream.test.d.ts +1 -0
  22. package/dist/aiChat/types.d.ts +18 -4
  23. package/dist/aiChat/typesSchema.d.ts +13 -0
  24. package/dist/animationComponent/index.cjs.js +3 -3
  25. package/dist/animationComponent/index.es.js +49 -46
  26. package/dist/animationComponent/index.js +519 -0
  27. package/dist/animationComponent/index.umd.js +3 -3
  28. package/dist/canvasAbsoluteMode/index.cjs.js +1 -1
  29. package/dist/canvasAbsoluteMode/index.es.js +115 -112
  30. package/dist/canvasAbsoluteMode/index.js +1 -0
  31. package/dist/canvasAbsoluteMode/index.umd.js +1 -1
  32. package/dist/canvasEmptyState/index.cjs.js +1 -1
  33. package/dist/canvasEmptyState/index.es.js +71 -68
  34. package/dist/canvasEmptyState/index.js +1 -0
  35. package/dist/canvasEmptyState/index.umd.js +1 -1
  36. package/dist/canvasFullSize/index.cjs.js +3 -3
  37. package/dist/canvasFullSize/index.es.js +69 -66
  38. package/dist/canvasFullSize/index.js +10 -0
  39. package/dist/canvasFullSize/index.umd.js +4 -4
  40. package/dist/canvasGridMode/index.cjs.js +7 -7
  41. package/dist/canvasGridMode/index.es.js +142 -139
  42. package/dist/canvasGridMode/index.js +26 -0
  43. package/dist/canvasGridMode/index.umd.js +7 -7
  44. package/dist/canvasScreenshot/index.cjs.js +1 -1
  45. package/dist/canvasScreenshot/index.es.js +78 -75
  46. package/dist/canvasScreenshot/index.js +1 -0
  47. package/dist/canvasScreenshot/index.umd.js +1 -1
  48. package/dist/dataSourceEjs/EjsExporter.d.ts +1 -1
  49. package/dist/dataSourceEjs/index.cjs.js +3 -3
  50. package/dist/dataSourceEjs/index.es.js +40 -37
  51. package/dist/dataSourceEjs/index.js +21 -0
  52. package/dist/dataSourceEjs/index.umd.js +3 -3
  53. package/dist/dataSourceHandlebars/HandlebarsExporter.d.ts +2 -2
  54. package/dist/dataSourceHandlebars/constants.d.ts +1 -1
  55. package/dist/dataSourceHandlebars/index.cjs.js +4 -4
  56. package/dist/dataSourceHandlebars/index.es.js +58 -55
  57. package/dist/dataSourceHandlebars/index.js +10 -0
  58. package/dist/dataSourceHandlebars/index.umd.js +2 -2
  59. package/dist/dialogComponent/index.cjs.js +11 -11
  60. package/dist/dialogComponent/index.es.js +72 -69
  61. package/dist/dialogComponent/index.js +59 -0
  62. package/dist/dialogComponent/index.umd.js +11 -11
  63. package/dist/flexComponent/index.cjs.js +6 -6
  64. package/dist/flexComponent/index.es.js +151 -142
  65. package/dist/flexComponent/index.js +33 -0
  66. package/dist/flexComponent/index.umd.js +8 -8
  67. package/dist/flexComponent/typesSchema.d.ts +1 -1
  68. package/dist/fsLightboxComponent/index.cjs.js +3 -3
  69. package/dist/fsLightboxComponent/index.es.js +93 -90
  70. package/dist/fsLightboxComponent/index.js +6 -0
  71. package/dist/fsLightboxComponent/index.umd.js +3 -3
  72. package/dist/googleFontsAssetProvider/index.cjs.js +1 -1
  73. package/dist/googleFontsAssetProvider/index.es.js +112 -109
  74. package/dist/googleFontsAssetProvider/index.js +1 -0
  75. package/dist/googleFontsAssetProvider/index.umd.js +1 -1
  76. package/dist/googleFontsAssetProvider/utils.d.ts +1 -1
  77. package/dist/iconifyComponent/index.cjs.js +2 -2
  78. package/dist/iconifyComponent/index.es.js +80 -77
  79. package/dist/iconifyComponent/index.js +3 -0
  80. package/dist/iconifyComponent/index.umd.js +2 -2
  81. package/dist/index.cjs.d.ts +1 -0
  82. package/dist/index.cjs.js +970 -82
  83. package/dist/index.d.ts +1 -0
  84. package/dist/index.es.d.ts +1 -0
  85. package/dist/index.es.js +7422 -6145
  86. package/dist/index.umd.js +975 -87
  87. package/dist/layoutSidebarButtons/index.cjs.js +1 -1
  88. package/dist/layoutSidebarButtons/index.es.js +95 -92
  89. package/dist/layoutSidebarButtons/index.js +1 -0
  90. package/dist/layoutSidebarButtons/index.umd.js +1 -1
  91. package/dist/lightGalleryComponent/index.cjs.js +1 -1
  92. package/dist/lightGalleryComponent/index.es.js +164 -161
  93. package/dist/lightGalleryComponent/index.js +1 -0
  94. package/dist/lightGalleryComponent/index.umd.js +1 -1
  95. package/dist/lightGalleryComponent/utils.d.ts +1 -1
  96. package/dist/linkImageComponent/index.cjs.js +2 -2
  97. package/dist/linkImageComponent/index.es.js +60 -57
  98. package/dist/linkImageComponent/index.js +12 -0
  99. package/dist/linkImageComponent/index.umd.js +2 -2
  100. package/dist/listPagesComponent/index.cjs.js +4 -4
  101. package/dist/listPagesComponent/index.es.js +57 -54
  102. package/dist/listPagesComponent/index.js +11 -0
  103. package/dist/listPagesComponent/index.umd.js +4 -4
  104. package/dist/listPagesComponent/utils.d.ts +1 -1
  105. package/dist/presetBlockLibrary/blocks.d.ts +6 -0
  106. package/dist/presetBlockLibrary/blocks.test.d.ts +2 -0
  107. package/dist/presetBlockLibrary/emailBlocks.d.ts +53 -0
  108. package/dist/presetBlockLibrary/index.cjs.d.ts +3 -0
  109. package/dist/presetBlockLibrary/index.cjs.js +889 -0
  110. package/dist/presetBlockLibrary/index.d.ts +3 -0
  111. package/dist/presetBlockLibrary/index.es.d.ts +3 -0
  112. package/dist/presetBlockLibrary/index.es.js +1408 -0
  113. package/dist/presetBlockLibrary/index.js +889 -0
  114. package/dist/presetBlockLibrary/index.test.d.ts +1 -0
  115. package/dist/presetBlockLibrary/index.umd.js +889 -0
  116. package/dist/presetBlockLibrary/shared.d.ts +3 -0
  117. package/dist/presetBlockLibrary/types.d.ts +24 -0
  118. package/dist/presetBlockLibrary/typesSchema.d.ts +47 -0
  119. package/dist/presetPrintable/index.cjs.js +3 -3
  120. package/dist/presetPrintable/index.es.js +133 -130
  121. package/dist/presetPrintable/index.js +32 -0
  122. package/dist/presetPrintable/index.umd.js +4 -4
  123. package/dist/prosemirror/index.cjs.js +8 -8
  124. package/dist/prosemirror/index.es.js +552 -549
  125. package/dist/prosemirror/index.js +10 -0
  126. package/dist/prosemirror/index.umd.js +9 -9
  127. package/dist/prosemirror/toolbar.d.ts +2 -2
  128. package/dist/prosemirror/types.d.ts +5 -5
  129. package/dist/rendererReact/index.cjs.js +1 -1
  130. package/dist/rendererReact/index.es.js +137 -134
  131. package/dist/rendererReact/index.js +1 -1
  132. package/dist/rendererReact/index.umd.js +1 -1
  133. package/dist/rteTinyMce/index.cjs.js +2 -2
  134. package/dist/rteTinyMce/index.es.js +74 -71
  135. package/dist/rteTinyMce/index.js +104 -0
  136. package/dist/rteTinyMce/index.umd.js +2 -2
  137. package/dist/shapeDividerComponent/index.cjs.js +4 -4
  138. package/dist/shapeDividerComponent/index.es.js +91 -88
  139. package/dist/shapeDividerComponent/index.js +97 -0
  140. package/dist/shapeDividerComponent/index.umd.js +4 -4
  141. package/dist/swiperComponent/index.cjs.js +7 -7
  142. package/dist/swiperComponent/index.es.js +95 -92
  143. package/dist/swiperComponent/index.js +45 -0
  144. package/dist/swiperComponent/index.umd.js +5 -5
  145. package/dist/tableComponent/index.cjs.js +1 -1
  146. package/dist/tableComponent/index.es.js +181 -178
  147. package/dist/tableComponent/index.js +1 -0
  148. package/dist/tableComponent/index.umd.js +1 -1
  149. package/dist/tableComponent/types.d.ts +3 -3
  150. package/dist/types.d.ts +14 -14
  151. package/dist/utils.d.ts +3 -2
  152. package/dist/utilsDataSources.d.ts +1 -1
  153. package/dist/youtubeAssetProvider/index.cjs.js +1 -1
  154. package/dist/youtubeAssetProvider/index.es.js +90 -87
  155. package/dist/youtubeAssetProvider/index.js +1 -0
  156. package/dist/youtubeAssetProvider/index.umd.js +1 -1
  157. package/package.json +182 -34
  158. package/dist/aiChat/server/models.d.ts +0 -15
@@ -1 +1 @@
1
- "use strict";var B=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(B||{}),T=(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.openEditCode="studio:openEditCode",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.settings="studio:settings",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))(T||{}),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",_="app2.grapesjs.com",j="app-stage2.grapesjs.com",D=[x,_,E,j,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io",".claudemcpcontent.com",".web-sandbox.oaiusercontent.com"],m="license:check:end",W=()=>typeof window<"u",C=({isDev:e,isStage:o,isPlatform:a})=>`${e?"":`https://${o?E:x}`}/${a?"platform-api":"api"}`,F=()=>{if(!W())return"";const{hostname:e}=window.location;if(e)return e;try{return window.parent.location.hostname||""}catch{return""}},S=()=>{const e=F();return!!e&&(D.includes(e)||D.some(o=>e.endsWith(o)))};async function V({path:e,baseApiUrl:o,method:a="GET",headers:c={},params:i,body:h}){const r=`${o||C({isDev:!1,isStage:!1})}${e}`,d={method:a,headers:{"Content-Type":"application/json",...c}};h&&(d.body=JSON.stringify(h));const b=i?new URLSearchParams(i).toString():"",u=b?`?${b}`:"",t=await fetch(`${r}${u}`,d);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.json()}const G={[B.free]:0,[B.startup]:10,[B.business]:20,[B.enterprise]:30};function K(e){const o=e;return o.init=a=>c=>e(c,a),o}const q=e=>K(e);async function Z({editor:e,plan:o,pluginName:a,licenseKey:c,onLicenseCheckResponse:i,cleanup:h}){let f="",r;const d=t=>{console.warn("Cleanup plugin:",a,"Reason:",t),h()},b=(t={})=>{var l;const{error:L,sdkLicense:n}=t,g=(l=t.plan)==null?void 0:l.category;if(!(n||t.license)||L)d(L||"Invalid license");else if(g){const y=G[o],p=G[g];y>p&&d({pluginRequiredPlan:o,licensePlan:g})}};e.Commands.has(T.settings)&&(r=e.runCommand(T.settings),f=(r==null?void 0:r.baseUrl)||"");const u=t=>{i==null||i(t),t&&b(t)};if(!r){e.onReady(async()=>{if(!S())if(c){const t=await J({licenseKey:c,pluginName:a,baseApiUrl:f});u(t)}else d("The `licenseKey` option not provided")});return}if(r.licensePlan||r.licenseError){const t=z(r);u(t);return}e.on(m,t=>u(t))}const z=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function J(e){const{licenseKey:o,pluginName:a,baseApiUrl:c}=e;try{return(await V({baseApiUrl:c,path:`/sdk/${o||"na"}`,method:"POST",params:{d:window.location.hostname,pn:a}})).result||{}}catch(i){return console.error("Error during SDK license check:",i),!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",R=(e,o)=>{const{id:a,icon:c,label:i,tooltip:h,className:f,skipSelfClose:r,removeLayouts:d,layoutComponent:b,layoutCommand:u}=e,{pluginOpts:t,breakpointProps:L}=o,n=a;return{id:U(a),type:"button",icon:c,tooltip:i||h,className:f,editorEvents:{[`${I.layoutToggleId}${n}`]:({fromEvent:g,setState:s,editor:l})=>{s({active:g.isOpen}),setTimeout(()=>l.refresh({tools:!0}),20)}},onClick:({editor:g,state:s})=>{var w;if(s.active&&r)return;const l=(u==null?void 0:u.placer)||{type:"static",layoutId:O},y={...l,skipCleanup:l.type==="static"},p=d||Object.keys(v).filter(k=>k!==n);$(g,{removeLayouts:p,layout:{placer:y}});const A={id:n,placer:l,header:(u==null?void 0:u.header)??{label:i,close:!r},layout:b,style:{width:280,height:"100%",borderRightWidth:1,...u==null?void 0:u.style}},P=((w=t==null?void 0:t.sidebarLayoutCommand)==null?void 0:w.call(t,{...L,layoutCommand:A,sidebarButtonProps:e}))||A;g.runCommand(T.layoutToggle,{...P})}}},U=e=>`button__${e}`,$=(e,o={})=>{(o.removeLayouts||Object.keys(v)).forEach(c=>e.runCommand(T.layoutRemove,{id:c,layout:o.layout}))},N=e=>{const o=(e==null?void 0:e.breakpointTablet)??1024,a=(e==null?void 0:e.breakpointMobile)??768,c={},i=[{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:n,editor:g})=>{var p;const s=g.getSelected(),l={type:"image",src:n.src};let y;if(s!=null&&s.is("image"))return s.set("src",n.src);s&&g.Components.canMove(s,l)?y=s.append(l)[0]:s||(y=(p=g.getWrapper())==null?void 0:p.append(l)[0]),y&&g.select(y,{scroll:!0})}}}],h=[...i,{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"}},r={type:"sidebarLeft",resizable:!1,style:{padding:"10px 5px",alignItems:"center",width:45,gap:10},children:[]},d={type:"canvasSidebarTop",sidebarTop:{leftContainer:{buttons:[]}}},b=n=>({breakpoint:n,breakpointTablet:o,breakpointMobile:a}),u=(n,g,s)=>{const l=b(g),y={pluginOpts:e,breakpointProps:l},p=n.map(P=>{const w=R(P,y);return e!=null&&e.sidebarButton?e.sidebarButton({id:P.id,buttonIds:v,buttonProps:w,sidebarButtonProps:P,...l,createSidebarButton:k=>R({...P,...k},y)}):w}).filter(Boolean);return(e!=null&&e.sidebarButtons?e==null?void 0:e.sidebarButtons({buttonIds:v,sidebarButtons:p,...l,createSidebarButton:P=>R({...P,layoutCommand:{...s==null?void 0:s.layoutCommand,...P.layoutCommand}},y)}):p).filter(Boolean)},t=(n,g,s)=>{var p;const l=b(s),y={pluginOpts:e,breakpointProps:l};return((p=e==null?void 0:e.rootLayout)==null?void 0:p.call(e,{sidebarButtons:g,rootLayout:n,layoutSidebarLeft:r,layoutSidebarTarget:f,...l,createSidebarButton:A=>R({...A},y)}))??n};if(o){const n=u(h,o);c[o]=t({type:"row",style:{height:"100%"},children:[{...r,children:n},f,d]},n,o)}if(a){const n={placer:{type:"absolute",position:"left"},style:{height:"calc(100% - 40px)"}},g=h.map(l=>({...l,layoutCommand:n})),s=u(g,a,{layoutCommand:n});c[a]=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:s}]},s,a)}const L=u(i,0);return{default:t({type:"row",style:{height:"100%"},children:[{...r,children:L},f,d,{type:"sidebarRight"}]},L,0),responsive:c}},M="layoutSidebarButtons",Q=B.free,X=function(e,o={}){const{Commands:a}=e,c=a.events,i={...o};(()=>{if(e.runCommand(T.layoutConfigGet)||i.skipLayoutConfig===!0)return;const r=N(i);e.runCommand(T.layoutConfigSet,{...r})})(),a.add(`${M}:toggleButton`,(f,r,d)=>{const b=document.getElementById(U(d==null?void 0:d.id));b==null||b.click()}),e.on(`${c.runCommand}core:preview`,()=>{$(e)}),Z({editor:e,licenseKey:i.licenseKey,plan:Q,pluginName:M,cleanup:()=>{e.runCommand(T.layoutConfigSet)}})},H=q(X);H.createLayoutConfig=e=>N(e);module.exports=H;
1
+ "use strict";var B=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(B||{}),T=(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.openEditCode="studio:openEditCode",e.openBlocks="studio:openBlocks",e.appendComponent="studio:appendComponent",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.settings="studio:settings",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))(T||{}),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",j="app-stage2.grapesjs.com",G=[x,H,E,j,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io",".claudemcpcontent.com",".web-sandbox.oaiusercontent.com"],W="license:check:end",m=()=>typeof window<"u",C=({isDev:e,isStage:o,isPlatform:a})=>`${e?"":`https://${o?E:x}`}/${a?"platform-api":"api"}`,F=()=>{if(!m())return"";const{hostname:e}=window.location;if(e)return e;try{return window.parent.location.hostname||""}catch{return""}},V=()=>{const e=F();return!!e&&(G.includes(e)||G.some(o=>e.endsWith(o)))};async function K({path:e,baseApiUrl:o,method:a="GET",headers:c={},params:s,body:p}){const r=`${o||C({isDev:!1,isStage:!1})}${e}`,d={method:a,headers:{"Content-Type":"application/json",...c}};p&&(d.body=JSON.stringify(p));const b=s?new URLSearchParams(s).toString():"",u=b?`?${b}`:"",t=await fetch(`${r}${u}`,d);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.json()}const M={[B.free]:0,[B.startup]:10,[B.business]:20,[B.enterprise]:30};function S(e,o){const a=e;return a.init=c=>{const s=p=>e(p,c);return s.__gjsPluginId=o,s},a}const q=(e,o)=>S(e,o);async function Z({editor:e,plan:o,pluginName:a,licenseKey:c,onLicenseCheckResponse:s,cleanup:p}){let h="",r;const d=t=>{console.warn("Cleanup plugin:",a,"Reason:",t),p(e,a)},b=(t={})=>{var i;const{error:L,sdkLicense:l}=t,g=(i=t.plan)==null?void 0:i.category;if(!(l||t.license)||L)d(L||"Invalid license");else if(g){const y=M[o],f=M[g];y>f&&d({pluginRequiredPlan:o,licensePlan:g})}};e.Commands.has(T.settings)&&(r=e.runCommand(T.settings),h=(r==null?void 0:r.baseUrl)||"");const u=t=>{s==null||s(t),t&&b(t)};if(!r){e.onReady(async()=>{if(!V())if(c){const t=await J({licenseKey:c,pluginName:a,baseApiUrl:h});u(t)}else d("The `licenseKey` option not provided")});return}if(r.licensePlan||r.licenseError){const t=z(r);u(t);return}e.on(W,t=>u(t))}const z=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function J(e){const{licenseKey:o,pluginName:a,baseApiUrl:c}=e;try{return(await K({baseApiUrl:c,path:`/sdk/${o||"na"}`,method:"POST",params:{d:window.location.hostname,pn:a}})).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",R=(e,o)=>{const{id:a,icon:c,label:s,tooltip:p,className:h,skipSelfClose:r,removeLayouts:d,layoutComponent:b,layoutCommand:u}=e,{pluginOpts:t,breakpointProps:L}=o,l=a;return{id:U(a),type:"button",icon:c,tooltip:s||p,className:h,editorEvents:{[`${I.layoutToggleId}${l}`]:({fromEvent:g,setState:n,editor:i})=>{n({active:g.isOpen}),setTimeout(()=>i.refresh({tools:!0}),20)}},onClick:({editor:g,state:n})=>{var w;if(n.active&&r)return;const i=(u==null?void 0:u.placer)||{type:"static",layoutId:O},y={...i,skipCleanup:i.type==="static"},f=d||Object.keys(v).filter(k=>k!==l);$(g,{removeLayouts:f,layout:{placer:y}});const A={id:l,placer:i,header:(u==null?void 0:u.header)??{label:s,close:!r},layout:b,style:{width:280,height:"100%",borderRightWidth:1,...u==null?void 0:u.style}},P=((w=t==null?void 0:t.sidebarLayoutCommand)==null?void 0:w.call(t,{...L,layoutCommand:A,sidebarButtonProps:e}))||A;g.runCommand(T.layoutToggle,{...P})}}},U=e=>`button__${e}`,$=(e,o={})=>{(o.removeLayouts||Object.keys(v)).forEach(c=>e.runCommand(T.layoutRemove,{id:c,layout:o.layout}))},_=e=>{const o=(e==null?void 0:e.breakpointTablet)??1024,a=(e==null?void 0:e.breakpointMobile)??768,c={},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:g})=>{var f;const n=g.getSelected(),i={type:"image",src:l.src};let y;if(n!=null&&n.is("image"))return n.set("src",l.src);n&&g.Components.canMove(n,i)?y=n.append(i)[0]:n||(y=(f=g.getWrapper())==null?void 0:f.append(i)[0]),y&&g.select(y,{scroll:!0})}}}],p=[...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"}}],h={id:O,type:"column",className:"gs-cmp-layout-sidebar-target",style:{overflow:"hidden"}},r={type:"sidebarLeft",resizable:!1,style:{padding:"10px 5px",alignItems:"center",width:45,gap:10},children:[]},d={type:"canvasSidebarTop",sidebarTop:{leftContainer:{buttons:[]}}},b=l=>({breakpoint:l,breakpointTablet:o,breakpointMobile:a}),u=(l,g,n)=>{const i=b(g),y={pluginOpts:e,breakpointProps:i},f=l.map(P=>{const w=R(P,y);return e!=null&&e.sidebarButton?e.sidebarButton({id:P.id,buttonIds:v,buttonProps:w,sidebarButtonProps:P,...i,createSidebarButton:k=>R({...P,...k},y)}):w}).filter(Boolean);return(e!=null&&e.sidebarButtons?e==null?void 0:e.sidebarButtons({buttonIds:v,sidebarButtons:f,...i,createSidebarButton:P=>R({...P,layoutCommand:{...n==null?void 0:n.layoutCommand,...P.layoutCommand}},y)}):f).filter(Boolean)},t=(l,g,n)=>{var f;const i=b(n),y={pluginOpts:e,breakpointProps:i};return((f=e==null?void 0:e.rootLayout)==null?void 0:f.call(e,{sidebarButtons:g,rootLayout:l,layoutSidebarLeft:r,layoutSidebarTarget:h,...i,createSidebarButton:A=>R({...A},y)}))??l};if(o){const l=u(p,o);c[o]=t({type:"row",style:{height:"100%"},children:[{...r,children:l},h,d]},l,o)}if(a){const l={placer:{type:"absolute",position:"left"},style:{height:"calc(100% - 40px)"}},g=p.map(i=>({...i,layoutCommand:l})),n=u(g,a,{layoutCommand:l});c[a]=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,a)}const L=u(s,0);return{default:t({type:"row",style:{height:"100%"},children:[{...r,children:L},h,d,{type:"sidebarRight"}]},L,0),responsive:c}},D="layoutSidebarButtons",Q=B.free,X=function(e,o={}){const{Commands:a}=e,c=a.events,s={...o};(()=>{if(e.runCommand(T.layoutConfigGet)||s.skipLayoutConfig===!0)return;const r=_(s);e.runCommand(T.layoutConfigSet,{...r})})(),a.add(`${D}:toggleButton`,(h,r,d)=>{const b=document.getElementById(U(d==null?void 0:d.id));b==null||b.click()}),e.on(`${c.runCommand}core:preview`,()=>{$(e)}),Z({editor:e,licenseKey:s.licenseKey,plan:Q,pluginName:D,cleanup:()=>{e.runCommand(T.layoutConfigSet)}})},N=q(X,D);N.createLayoutConfig=e=>_(e);module.exports=N;
@@ -1,9 +1,9 @@
1
- var B = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(B || {}), T = /* @__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.openEditCode = "studio:openEditCode", 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.settings = "studio:settings", 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))(T || {}), I = /* @__PURE__ */ ((e) => (e.layoutToggleId = "studio:layoutToggle:", e.toggleBlocksPanel = "studio:toggleBlocksPanel", e.pageSettingsUpdate = "studio:pageSettingsUpdate", e.toggleDataSourcesPreview = "studio:toggleDataSourcesPreview", e))(I || {});
2
- const x = "app.grapesjs.com", E = "app-stage.grapesjs.com", H = "app2.grapesjs.com", _ = "app-stage2.grapesjs.com", D = [
1
+ var B = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(B || {}), T = /* @__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.openEditCode = "studio:openEditCode", e.openBlocks = "studio:openBlocks", e.appendComponent = "studio:appendComponent", 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.settings = "studio:settings", 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))(T || {}), I = /* @__PURE__ */ ((e) => (e.layoutToggleId = "studio:layoutToggle:", e.toggleBlocksPanel = "studio:toggleBlocksPanel", e.pageSettingsUpdate = "studio:pageSettingsUpdate", e.toggleDataSourcesPreview = "studio:toggleDataSourcesPreview", e))(I || {});
2
+ const x = "app.grapesjs.com", E = "app-stage.grapesjs.com", N = "app2.grapesjs.com", H = "app-stage2.grapesjs.com", G = [
3
3
  x,
4
- H,
4
+ N,
5
5
  E,
6
- _,
6
+ H,
7
7
  "localhost",
8
8
  "127.0.0.1",
9
9
  ".local-credentialless.webcontainer.io",
@@ -16,12 +16,12 @@ const x = "app.grapesjs.com", E = "app-stage.grapesjs.com", H = "app2.grapesjs.c
16
16
  // For Claude mcp app
17
17
  ".web-sandbox.oaiusercontent.com"
18
18
  // For OpenAI mcp app
19
- ], j = "license:check:end", m = () => typeof window < "u", W = ({
19
+ ], j = "license:check:end", W = () => typeof window < "u", m = ({
20
20
  isDev: e,
21
21
  isStage: o,
22
22
  isPlatform: a
23
23
  }) => `${e ? "" : `https://${o ? E : x}`}/${a ? "platform-api" : "api"}`, C = () => {
24
- if (!m()) return "";
24
+ if (!W()) return "";
25
25
  const { hostname: e } = window.location;
26
26
  if (e) return e;
27
27
  try {
@@ -31,70 +31,73 @@ const x = "app.grapesjs.com", E = "app-stage.grapesjs.com", H = "app2.grapesjs.c
31
31
  }
32
32
  }, F = () => {
33
33
  const e = C();
34
- return !!e && (D.includes(e) || D.some((o) => e.endsWith(o)));
34
+ return !!e && (G.includes(e) || G.some((o) => e.endsWith(o)));
35
35
  };
36
- async function S({
36
+ async function V({
37
37
  path: e,
38
38
  baseApiUrl: o,
39
39
  method: a = "GET",
40
40
  headers: c = {},
41
- params: i,
42
- body: h
41
+ params: s,
42
+ body: p
43
43
  }) {
44
- const r = `${o || W({ isDev: !1, isStage: !1 })}${e}`, d = {
44
+ const r = `${o || m({ isDev: !1, isStage: !1 })}${e}`, d = {
45
45
  method: a,
46
46
  headers: {
47
47
  "Content-Type": "application/json",
48
48
  ...c
49
49
  }
50
50
  };
51
- h && (d.body = JSON.stringify(h));
52
- const b = i ? new URLSearchParams(i).toString() : "", u = b ? `?${b}` : "", t = await fetch(`${r}${u}`, d);
51
+ p && (d.body = JSON.stringify(p));
52
+ const b = s ? new URLSearchParams(s).toString() : "", u = b ? `?${b}` : "", t = await fetch(`${r}${u}`, d);
53
53
  if (!t.ok)
54
54
  throw new Error(`HTTP error! status: ${t.status}`);
55
55
  return t.json();
56
56
  }
57
- const G = {
57
+ const M = {
58
58
  [B.free]: 0,
59
59
  [B.startup]: 10,
60
60
  [B.business]: 20,
61
61
  [B.enterprise]: 30
62
62
  };
63
- function V(e) {
64
- const o = e;
65
- return o.init = (a) => (c) => e(c, a), o;
63
+ function K(e, o) {
64
+ const a = e;
65
+ return a.init = (c) => {
66
+ const s = (p) => e(p, c);
67
+ return s.__gjsPluginId = o, s;
68
+ }, a;
66
69
  }
67
- const K = (e) => /* @__PURE__ */ V(e);
70
+ const S = (e, o) => /* @__PURE__ */ K(e, o);
68
71
  async function q({
69
72
  editor: e,
70
73
  plan: o,
71
74
  pluginName: a,
72
75
  licenseKey: c,
73
- onLicenseCheckResponse: i,
74
- cleanup: h
76
+ onLicenseCheckResponse: s,
77
+ cleanup: p
75
78
  }) {
76
- let f = "", r;
79
+ let h = "", r;
77
80
  const d = (t) => {
78
- console.warn("Cleanup plugin:", a, "Reason:", t), h();
81
+ console.warn("Cleanup plugin:", a, "Reason:", t), p(e, a);
79
82
  }, b = (t = {}) => {
80
- var l;
81
- const { error: L, sdkLicense: n } = t, g = (l = t.plan) == null ? void 0 : l.category;
82
- if (!(n || t.license) || L)
83
+ var i;
84
+ const { error: L, sdkLicense: l } = t, g = (i = t.plan) == null ? void 0 : i.category;
85
+ if (!(l || t.license) || L)
83
86
  d(L || "Invalid license");
84
87
  else if (g) {
85
- const y = G[o], p = G[g];
86
- y > p && d({ pluginRequiredPlan: o, licensePlan: g });
88
+ const y = M[o], f = M[g];
89
+ y > f && d({ pluginRequiredPlan: o, licensePlan: g });
87
90
  }
88
91
  };
89
- e.Commands.has(T.settings) && (r = e.runCommand(T.settings), f = (r == null ? void 0 : r.baseUrl) || "");
92
+ e.Commands.has(T.settings) && (r = e.runCommand(T.settings), h = (r == null ? void 0 : r.baseUrl) || "");
90
93
  const u = (t) => {
91
- i == null || i(t), t && b(t);
94
+ s == null || s(t), t && b(t);
92
95
  };
93
96
  if (!r) {
94
97
  e.onReady(async () => {
95
98
  if (!F())
96
99
  if (c) {
97
- const t = await z({ licenseKey: c, pluginName: a, baseApiUrl: f });
100
+ const t = await z({ licenseKey: c, pluginName: a, baseApiUrl: h });
98
101
  u(t);
99
102
  } else
100
103
  d("The `licenseKey` option not provided");
@@ -117,7 +120,7 @@ const Z = (e) => ({
117
120
  async function z(e) {
118
121
  const { licenseKey: o, pluginName: a, baseApiUrl: c } = e;
119
122
  try {
120
- return (await S({
123
+ return (await V({
121
124
  baseApiUrl: c,
122
125
  path: `/sdk/${o || "na"}`,
123
126
  method: "POST",
@@ -126,33 +129,33 @@ async function z(e) {
126
129
  pn: a
127
130
  }
128
131
  })).result || {};
129
- } catch (i) {
130
- return console.error("Error during SDK license check:", i), !1;
132
+ } catch (s) {
133
+ return console.error("Error during SDK license check:", s), !1;
131
134
  }
132
135
  }
133
136
  var v = /* @__PURE__ */ ((e) => (e.panelBlocks = "panelBlocks", e.panelPagesLayers = "panelPagesLayers", e.panelGlobalStyles = "panelGlobalStyles", e.panelSidebarTabs = "panelSidebarTabs", e.panelAssets = "panelAssets", e.aiChatPanel = "aiChatPanel", e.panelDataSources = "panelDataSources", e))(v || {});
134
137
  const O = "sidebarButtonsTarget", R = (e, o) => {
135
- const { id: a, icon: c, label: i, tooltip: h, className: f, skipSelfClose: r, removeLayouts: d, layoutComponent: b, layoutCommand: u } = e, { pluginOpts: t, breakpointProps: L } = o, n = a;
138
+ const { id: a, icon: c, label: s, tooltip: p, className: h, skipSelfClose: r, removeLayouts: d, layoutComponent: b, layoutCommand: u } = e, { pluginOpts: t, breakpointProps: L } = o, l = a;
136
139
  return {
137
140
  id: U(a),
138
141
  type: "button",
139
142
  icon: c,
140
- tooltip: i || h,
141
- className: f,
143
+ tooltip: s || p,
144
+ className: h,
142
145
  editorEvents: {
143
- [`${I.layoutToggleId}${n}`]: ({ fromEvent: g, setState: s, editor: l }) => {
144
- s({ active: g.isOpen }), setTimeout(() => l.refresh({ tools: !0 }), 20);
146
+ [`${I.layoutToggleId}${l}`]: ({ fromEvent: g, setState: n, editor: i }) => {
147
+ n({ active: g.isOpen }), setTimeout(() => i.refresh({ tools: !0 }), 20);
145
148
  }
146
149
  },
147
- onClick: ({ editor: g, state: s }) => {
150
+ onClick: ({ editor: g, state: n }) => {
148
151
  var w;
149
- if (s.active && r) return;
150
- const l = (u == null ? void 0 : u.placer) || { type: "static", layoutId: O }, y = { ...l, skipCleanup: l.type === "static" }, p = d || Object.keys(v).filter((k) => k !== n);
151
- $(g, { removeLayouts: p, layout: { placer: y } });
152
+ if (n.active && r) return;
153
+ const i = (u == null ? void 0 : u.placer) || { type: "static", layoutId: O }, y = { ...i, skipCleanup: i.type === "static" }, f = d || Object.keys(v).filter((k) => k !== l);
154
+ $(g, { removeLayouts: f, layout: { placer: y } });
152
155
  const A = {
153
- id: n,
154
- placer: l,
155
- header: (u == null ? void 0 : u.header) ?? { label: i, close: !r },
156
+ id: l,
157
+ placer: i,
158
+ header: (u == null ? void 0 : u.header) ?? { label: s, close: !r },
156
159
  layout: b,
157
160
  style: {
158
161
  width: 280,
@@ -170,8 +173,8 @@ const O = "sidebarButtonsTarget", R = (e, o) => {
170
173
  };
171
174
  }, U = (e) => `button__${e}`, $ = (e, o = {}) => {
172
175
  (o.removeLayouts || Object.keys(v)).forEach((c) => e.runCommand(T.layoutRemove, { id: c, layout: o.layout }));
173
- }, N = (e) => {
174
- const o = (e == null ? void 0 : e.breakpointTablet) ?? 1024, a = (e == null ? void 0 : e.breakpointMobile) ?? 768, c = {}, i = [
176
+ }, _ = (e) => {
177
+ const o = (e == null ? void 0 : e.breakpointTablet) ?? 1024, a = (e == null ? void 0 : e.breakpointMobile) ?? 768, c = {}, s = [
175
178
  {
176
179
  id: v.panelBlocks,
177
180
  icon: "plusBox",
@@ -198,18 +201,18 @@ const O = "sidebarButtonsTarget", R = (e, o) => {
198
201
  type: "panelAssets",
199
202
  content: { itemsPerRow: 2, header: { addUrl: !1 } },
200
203
  style: { padding: 7 },
201
- onSelect: ({ assetProps: n, editor: g }) => {
202
- var p;
203
- const s = g.getSelected(), l = { type: "image", src: n.src };
204
+ onSelect: ({ assetProps: l, editor: g }) => {
205
+ var f;
206
+ const n = g.getSelected(), i = { type: "image", src: l.src };
204
207
  let y;
205
- if (s != null && s.is("image"))
206
- return s.set("src", n.src);
207
- s && g.Components.canMove(s, l) ? y = s.append(l)[0] : s || (y = (p = g.getWrapper()) == null ? void 0 : p.append(l)[0]), y && g.select(y, { scroll: !0 });
208
+ if (n != null && n.is("image"))
209
+ return n.set("src", l.src);
210
+ n && g.Components.canMove(n, i) ? y = n.append(i)[0] : n || (y = (f = g.getWrapper()) == null ? void 0 : f.append(i)[0]), y && g.select(y, { scroll: !0 });
208
211
  }
209
212
  }
210
213
  }
211
- ], h = [
212
- ...i,
214
+ ], p = [
215
+ ...s,
213
216
  {
214
217
  id: v.panelSidebarTabs,
215
218
  layoutCommand: { header: !1 },
@@ -217,7 +220,7 @@ const O = "sidebarButtonsTarget", R = (e, o) => {
217
220
  label: "Styles & Props",
218
221
  layoutComponent: { type: "panelSidebarTabs" }
219
222
  }
220
- ], f = {
223
+ ], h = {
221
224
  id: O,
222
225
  type: "column",
223
226
  className: "gs-cmp-layout-sidebar-target",
@@ -234,51 +237,51 @@ const O = "sidebarButtonsTarget", R = (e, o) => {
234
237
  buttons: []
235
238
  }
236
239
  }
237
- }, b = (n) => ({
238
- breakpoint: n,
240
+ }, b = (l) => ({
241
+ breakpoint: l,
239
242
  breakpointTablet: o,
240
243
  breakpointMobile: a
241
- }), u = (n, g, s) => {
242
- const l = b(g), y = { pluginOpts: e, breakpointProps: l }, p = n.map((P) => {
244
+ }), u = (l, g, n) => {
245
+ const i = b(g), y = { pluginOpts: e, breakpointProps: i }, f = l.map((P) => {
243
246
  const w = R(P, y);
244
247
  return e != null && e.sidebarButton ? e.sidebarButton({
245
248
  id: P.id,
246
249
  buttonIds: v,
247
250
  buttonProps: w,
248
251
  sidebarButtonProps: P,
249
- ...l,
252
+ ...i,
250
253
  createSidebarButton: (k) => R({ ...P, ...k }, y)
251
254
  }) : w;
252
255
  }).filter(Boolean);
253
256
  return (e != null && e.sidebarButtons ? e == null ? void 0 : e.sidebarButtons({
254
257
  buttonIds: v,
255
- sidebarButtons: p,
256
- ...l,
258
+ sidebarButtons: f,
259
+ ...i,
257
260
  createSidebarButton: (P) => R(
258
261
  {
259
262
  ...P,
260
263
  layoutCommand: {
261
- ...s == null ? void 0 : s.layoutCommand,
264
+ ...n == null ? void 0 : n.layoutCommand,
262
265
  ...P.layoutCommand
263
266
  }
264
267
  },
265
268
  y
266
269
  )
267
- }) : p).filter(Boolean);
268
- }, t = (n, g, s) => {
269
- var p;
270
- const l = b(s), y = { pluginOpts: e, breakpointProps: l };
271
- return ((p = e == null ? void 0 : e.rootLayout) == null ? void 0 : p.call(e, {
270
+ }) : f).filter(Boolean);
271
+ }, t = (l, g, n) => {
272
+ var f;
273
+ const i = b(n), y = { pluginOpts: e, breakpointProps: i };
274
+ return ((f = e == null ? void 0 : e.rootLayout) == null ? void 0 : f.call(e, {
272
275
  sidebarButtons: g,
273
- rootLayout: n,
276
+ rootLayout: l,
274
277
  layoutSidebarLeft: r,
275
- layoutSidebarTarget: f,
276
- ...l,
278
+ layoutSidebarTarget: h,
279
+ ...i,
277
280
  createSidebarButton: (A) => R({ ...A }, y)
278
- })) ?? n;
281
+ })) ?? l;
279
282
  };
280
283
  if (o) {
281
- const n = u(h, o);
284
+ const l = u(p, o);
282
285
  c[o] = t(
283
286
  {
284
287
  type: "row",
@@ -286,21 +289,21 @@ const O = "sidebarButtonsTarget", R = (e, o) => {
286
289
  children: [
287
290
  {
288
291
  ...r,
289
- children: n
292
+ children: l
290
293
  },
291
- f,
294
+ h,
292
295
  d
293
296
  ]
294
297
  },
295
- n,
298
+ l,
296
299
  o
297
300
  );
298
301
  }
299
302
  if (a) {
300
- const n = {
303
+ const l = {
301
304
  placer: { type: "absolute", position: "left" },
302
305
  style: { height: "calc(100% - 40px)" }
303
- }, g = h.map((l) => ({ ...l, layoutCommand: n })), s = u(g, a, { layoutCommand: n });
306
+ }, g = p.map((i) => ({ ...i, layoutCommand: l })), n = u(g, a, { layoutCommand: l });
304
307
  c[a] = t(
305
308
  {
306
309
  type: "column",
@@ -311,15 +314,15 @@ const O = "sidebarButtonsTarget", R = (e, o) => {
311
314
  {
312
315
  type: "sidebarBottom",
313
316
  style: { padding: "0 5px", alignItems: "center", gap: 10, minHeight: 39 },
314
- children: s
317
+ children: n
315
318
  }
316
319
  ]
317
320
  },
318
- s,
321
+ n,
319
322
  a
320
323
  );
321
324
  }
322
- const L = u(i, 0);
325
+ const L = u(s, 0);
323
326
  return {
324
327
  default: t(
325
328
  {
@@ -330,7 +333,7 @@ const O = "sidebarButtonsTarget", R = (e, o) => {
330
333
  ...r,
331
334
  children: L
332
335
  },
333
- f,
336
+ h,
334
337
  d,
335
338
  { type: "sidebarRight" }
336
339
  ]
@@ -340,30 +343,30 @@ const O = "sidebarButtonsTarget", R = (e, o) => {
340
343
  ),
341
344
  responsive: c
342
345
  };
343
- }, M = "layoutSidebarButtons", J = B.free, Q = function(e, o = {}) {
344
- const { Commands: a } = e, c = a.events, i = {
346
+ }, D = "layoutSidebarButtons", J = B.free, Q = function(e, o = {}) {
347
+ const { Commands: a } = e, c = a.events, s = {
345
348
  ...o
346
349
  };
347
350
  (() => {
348
- if (e.runCommand(T.layoutConfigGet) || i.skipLayoutConfig === !0) return;
349
- const r = N(i);
351
+ if (e.runCommand(T.layoutConfigGet) || s.skipLayoutConfig === !0) return;
352
+ const r = _(s);
350
353
  e.runCommand(T.layoutConfigSet, { ...r });
351
- })(), a.add(`${M}:toggleButton`, (f, r, d) => {
354
+ })(), a.add(`${D}:toggleButton`, (h, r, d) => {
352
355
  const b = document.getElementById(U(d == null ? void 0 : d.id));
353
356
  b == null || b.click();
354
357
  }), e.on(`${c.runCommand}core:preview`, () => {
355
358
  $(e);
356
359
  }), q({
357
360
  editor: e,
358
- licenseKey: i.licenseKey,
361
+ licenseKey: s.licenseKey,
359
362
  plan: J,
360
- pluginName: M,
363
+ pluginName: D,
361
364
  cleanup: () => {
362
365
  e.runCommand(T.layoutConfigSet);
363
366
  }
364
367
  });
365
- }, X = K(Q);
366
- X.createLayoutConfig = (e) => N(e);
368
+ }, X = S(Q, D);
369
+ X.createLayoutConfig = (e) => _(e);
367
370
  export {
368
371
  X as default
369
372
  };
@@ -0,0 +1 @@
1
+ "use strict";var B=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(B||{}),T=(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.openEditCode="studio:openEditCode",e.openBlocks="studio:openBlocks",e.appendComponent="studio:appendComponent",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.settings="studio:settings",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))(T||{}),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",j="app-stage2.grapesjs.com",G=[x,H,E,j,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io",".claudemcpcontent.com",".web-sandbox.oaiusercontent.com"],W="license:check:end",m=()=>typeof window<"u",C=({isDev:e,isStage:o,isPlatform:a})=>`${e?"":`https://${o?E:x}`}/${a?"platform-api":"api"}`,F=()=>{if(!m())return"";const{hostname:e}=window.location;if(e)return e;try{return window.parent.location.hostname||""}catch{return""}},V=()=>{const e=F();return!!e&&(G.includes(e)||G.some(o=>e.endsWith(o)))};async function K({path:e,baseApiUrl:o,method:a="GET",headers:c={},params:s,body:p}){const r=`${o||C({isDev:!1,isStage:!1})}${e}`,d={method:a,headers:{"Content-Type":"application/json",...c}};p&&(d.body=JSON.stringify(p));const b=s?new URLSearchParams(s).toString():"",u=b?`?${b}`:"",t=await fetch(`${r}${u}`,d);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.json()}const M={[B.free]:0,[B.startup]:10,[B.business]:20,[B.enterprise]:30};function S(e,o){const a=e;return a.init=c=>{const s=p=>e(p,c);return s.__gjsPluginId=o,s},a}const q=(e,o)=>S(e,o);async function Z({editor:e,plan:o,pluginName:a,licenseKey:c,onLicenseCheckResponse:s,cleanup:p}){let h="",r;const d=t=>{console.warn("Cleanup plugin:",a,"Reason:",t),p(e,a)},b=(t={})=>{var i;const{error:L,sdkLicense:l}=t,g=(i=t.plan)==null?void 0:i.category;if(!(l||t.license)||L)d(L||"Invalid license");else if(g){const y=M[o],f=M[g];y>f&&d({pluginRequiredPlan:o,licensePlan:g})}};e.Commands.has(T.settings)&&(r=e.runCommand(T.settings),h=(r==null?void 0:r.baseUrl)||"");const u=t=>{s==null||s(t),t&&b(t)};if(!r){e.onReady(async()=>{if(!V())if(c){const t=await J({licenseKey:c,pluginName:a,baseApiUrl:h});u(t)}else d("The `licenseKey` option not provided")});return}if(r.licensePlan||r.licenseError){const t=z(r);u(t);return}e.on(W,t=>u(t))}const z=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function J(e){const{licenseKey:o,pluginName:a,baseApiUrl:c}=e;try{return(await K({baseApiUrl:c,path:`/sdk/${o||"na"}`,method:"POST",params:{d:window.location.hostname,pn:a}})).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",R=(e,o)=>{const{id:a,icon:c,label:s,tooltip:p,className:h,skipSelfClose:r,removeLayouts:d,layoutComponent:b,layoutCommand:u}=e,{pluginOpts:t,breakpointProps:L}=o,l=a;return{id:U(a),type:"button",icon:c,tooltip:s||p,className:h,editorEvents:{[`${I.layoutToggleId}${l}`]:({fromEvent:g,setState:n,editor:i})=>{n({active:g.isOpen}),setTimeout(()=>i.refresh({tools:!0}),20)}},onClick:({editor:g,state:n})=>{var w;if(n.active&&r)return;const i=(u==null?void 0:u.placer)||{type:"static",layoutId:O},y={...i,skipCleanup:i.type==="static"},f=d||Object.keys(v).filter(k=>k!==l);$(g,{removeLayouts:f,layout:{placer:y}});const A={id:l,placer:i,header:(u==null?void 0:u.header)??{label:s,close:!r},layout:b,style:{width:280,height:"100%",borderRightWidth:1,...u==null?void 0:u.style}},P=((w=t==null?void 0:t.sidebarLayoutCommand)==null?void 0:w.call(t,{...L,layoutCommand:A,sidebarButtonProps:e}))||A;g.runCommand(T.layoutToggle,{...P})}}},U=e=>`button__${e}`,$=(e,o={})=>{(o.removeLayouts||Object.keys(v)).forEach(c=>e.runCommand(T.layoutRemove,{id:c,layout:o.layout}))},_=e=>{const o=(e==null?void 0:e.breakpointTablet)??1024,a=(e==null?void 0:e.breakpointMobile)??768,c={},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:g})=>{var f;const n=g.getSelected(),i={type:"image",src:l.src};let y;if(n!=null&&n.is("image"))return n.set("src",l.src);n&&g.Components.canMove(n,i)?y=n.append(i)[0]:n||(y=(f=g.getWrapper())==null?void 0:f.append(i)[0]),y&&g.select(y,{scroll:!0})}}}],p=[...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"}}],h={id:O,type:"column",className:"gs-cmp-layout-sidebar-target",style:{overflow:"hidden"}},r={type:"sidebarLeft",resizable:!1,style:{padding:"10px 5px",alignItems:"center",width:45,gap:10},children:[]},d={type:"canvasSidebarTop",sidebarTop:{leftContainer:{buttons:[]}}},b=l=>({breakpoint:l,breakpointTablet:o,breakpointMobile:a}),u=(l,g,n)=>{const i=b(g),y={pluginOpts:e,breakpointProps:i},f=l.map(P=>{const w=R(P,y);return e!=null&&e.sidebarButton?e.sidebarButton({id:P.id,buttonIds:v,buttonProps:w,sidebarButtonProps:P,...i,createSidebarButton:k=>R({...P,...k},y)}):w}).filter(Boolean);return(e!=null&&e.sidebarButtons?e==null?void 0:e.sidebarButtons({buttonIds:v,sidebarButtons:f,...i,createSidebarButton:P=>R({...P,layoutCommand:{...n==null?void 0:n.layoutCommand,...P.layoutCommand}},y)}):f).filter(Boolean)},t=(l,g,n)=>{var f;const i=b(n),y={pluginOpts:e,breakpointProps:i};return((f=e==null?void 0:e.rootLayout)==null?void 0:f.call(e,{sidebarButtons:g,rootLayout:l,layoutSidebarLeft:r,layoutSidebarTarget:h,...i,createSidebarButton:A=>R({...A},y)}))??l};if(o){const l=u(p,o);c[o]=t({type:"row",style:{height:"100%"},children:[{...r,children:l},h,d]},l,o)}if(a){const l={placer:{type:"absolute",position:"left"},style:{height:"calc(100% - 40px)"}},g=p.map(i=>({...i,layoutCommand:l})),n=u(g,a,{layoutCommand:l});c[a]=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,a)}const L=u(s,0);return{default:t({type:"row",style:{height:"100%"},children:[{...r,children:L},h,d,{type:"sidebarRight"}]},L,0),responsive:c}},D="layoutSidebarButtons",Q=B.free,X=function(e,o={}){const{Commands:a}=e,c=a.events,s={...o};(()=>{if(e.runCommand(T.layoutConfigGet)||s.skipLayoutConfig===!0)return;const r=_(s);e.runCommand(T.layoutConfigSet,{...r})})(),a.add(`${D}:toggleButton`,(h,r,d)=>{const b=document.getElementById(U(d==null?void 0:d.id));b==null||b.click()}),e.on(`${c.runCommand}core:preview`,()=>{$(e)}),Z({editor:e,licenseKey:s.licenseKey,plan:Q,pluginName:D,cleanup:()=>{e.runCommand(T.layoutConfigSet)}})},N=q(X,D);N.createLayoutConfig=e=>_(e);module.exports=N;
@@ -1 +1 @@
1
- (function(v,p){typeof exports=="object"&&typeof module<"u"?module.exports=p():typeof define=="function"&&define.amd?define(p):(v=typeof globalThis<"u"?globalThis:v||self,v.StudioSdkPlugins_layoutSidebarButtons=p())})(this,function(){"use strict";var v=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(v||{}),p=(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.openEditCode="studio:openEditCode",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.settings="studio:settings",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))(p||{}),D=(e=>(e.layoutToggleId="studio:layoutToggle:",e.toggleBlocksPanel="studio:toggleBlocksPanel",e.pageSettingsUpdate="studio:pageSettingsUpdate",e.toggleDataSourcesPreview="studio:toggleDataSourcesPreview",e))(D||{});const G="app.grapesjs.com",M="app-stage.grapesjs.com",I=[G,"app2.grapesjs.com",M,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io",".claudemcpcontent.com",".web-sandbox.oaiusercontent.com"],m="license:check:end",H=()=>typeof window<"u",j=({isDev:e,isStage:o,isPlatform:a})=>`${e?"":`https://${o?M:G}`}/${a?"platform-api":"api"}`,S=()=>{if(!H())return"";const{hostname:e}=window.location;if(e)return e;try{return window.parent.location.hostname||""}catch{return""}},W=()=>{const e=S();return!!e&&(I.includes(e)||I.some(o=>e.endsWith(o)))};async function C({path:e,baseApiUrl:o,method:a="GET",headers:c={},params:i,body:T}){const r=`${o||j({isDev:!1,isStage:!1})}${e}`,d={method:a,headers:{"Content-Type":"application/json",...c}};T&&(d.body=JSON.stringify(T));const b=i?new URLSearchParams(i).toString():"",u=b?`?${b}`:"",t=await fetch(`${r}${u}`,d);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.json()}const x={[v.free]:0,[v.startup]:10,[v.business]:20,[v.enterprise]:30};function F(e){const o=e;return o.init=a=>c=>e(c,a),o}const V=e=>F(e);async function K({editor:e,plan:o,pluginName:a,licenseKey:c,onLicenseCheckResponse:i,cleanup:T}){let h="",r;const d=t=>{console.warn("Cleanup plugin:",a,"Reason:",t),T()},b=(t={})=>{var l;const{error:A,sdkLicense:s}=t,g=(l=t.plan)==null?void 0:l.category;if(!(s||t.license)||A)d(A||"Invalid license");else if(g){const y=x[o],f=x[g];y>f&&d({pluginRequiredPlan:o,licensePlan:g})}};e.Commands.has(p.settings)&&(r=e.runCommand(p.settings),h=(r==null?void 0:r.baseUrl)||"");const u=t=>{i==null||i(t),t&&b(t)};if(!r){e.onReady(async()=>{if(!W())if(c){const t=await Z({licenseKey:c,pluginName:a,baseApiUrl:h});u(t)}else d("The `licenseKey` option not provided")});return}if(r.licensePlan||r.licenseError){const t=q(r);u(t);return}e.on(m,t=>u(t))}const q=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function Z(e){const{licenseKey:o,pluginName:a,baseApiUrl:c}=e;try{return(await C({baseApiUrl:c,path:`/sdk/${o||"na"}`,method:"POST",params:{d:window.location.hostname,pn:a}})).result||{}}catch(i){return console.error("Error during SDK license check:",i),!1}}var P=(e=>(e.panelBlocks="panelBlocks",e.panelPagesLayers="panelPagesLayers",e.panelGlobalStyles="panelGlobalStyles",e.panelSidebarTabs="panelSidebarTabs",e.panelAssets="panelAssets",e.aiChatPanel="aiChatPanel",e.panelDataSources="panelDataSources",e))(P||{});const O="sidebarButtonsTarget",R=(e,o)=>{const{id:a,icon:c,label:i,tooltip:T,className:h,skipSelfClose:r,removeLayouts:d,layoutComponent:b,layoutCommand:u}=e,{pluginOpts:t,breakpointProps:A}=o,s=a;return{id:E(a),type:"button",icon:c,tooltip:i||T,className:h,editorEvents:{[`${D.layoutToggleId}${s}`]:({fromEvent:g,setState:n,editor:l})=>{n({active:g.isOpen}),setTimeout(()=>l.refresh({tools:!0}),20)}},onClick:({editor:g,state:n})=>{var w;if(n.active&&r)return;const l=(u==null?void 0:u.placer)||{type:"static",layoutId:O},y={...l,skipCleanup:l.type==="static"},f=d||Object.keys(P).filter(k=>k!==s);N(g,{removeLayouts:f,layout:{placer:y}});const B={id:s,placer:l,header:(u==null?void 0:u.header)??{label:i,close:!r},layout:b,style:{width:280,height:"100%",borderRightWidth:1,...u==null?void 0:u.style}},L=((w=t==null?void 0:t.sidebarLayoutCommand)==null?void 0:w.call(t,{...A,layoutCommand:B,sidebarButtonProps:e}))||B;g.runCommand(p.layoutToggle,{...L})}}},E=e=>`button__${e}`,N=(e,o={})=>{(o.removeLayouts||Object.keys(P)).forEach(c=>e.runCommand(p.layoutRemove,{id:c,layout:o.layout}))},U=e=>{const o=(e==null?void 0:e.breakpointTablet)??1024,a=(e==null?void 0:e.breakpointMobile)??768,c={},i=[{id:P.panelBlocks,icon:"plusBox",label:"Blocks",layoutComponent:{type:"panelBlocks"}},{id:P.panelPagesLayers,icon:"layers",label:"Pages & Layers",layoutComponent:{type:"panelPagesLayers"}},{id:P.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:P.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:s,editor:g})=>{var f;const n=g.getSelected(),l={type:"image",src:s.src};let y;if(n!=null&&n.is("image"))return n.set("src",s.src);n&&g.Components.canMove(n,l)?y=n.append(l)[0]:n||(y=(f=g.getWrapper())==null?void 0:f.append(l)[0]),y&&g.select(y,{scroll:!0})}}}],T=[...i,{id:P.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"}}],h={id:O,type:"column",className:"gs-cmp-layout-sidebar-target",style:{overflow:"hidden"}},r={type:"sidebarLeft",resizable:!1,style:{padding:"10px 5px",alignItems:"center",width:45,gap:10},children:[]},d={type:"canvasSidebarTop",sidebarTop:{leftContainer:{buttons:[]}}},b=s=>({breakpoint:s,breakpointTablet:o,breakpointMobile:a}),u=(s,g,n)=>{const l=b(g),y={pluginOpts:e,breakpointProps:l},f=s.map(L=>{const w=R(L,y);return e!=null&&e.sidebarButton?e.sidebarButton({id:L.id,buttonIds:P,buttonProps:w,sidebarButtonProps:L,...l,createSidebarButton:k=>R({...L,...k},y)}):w}).filter(Boolean);return(e!=null&&e.sidebarButtons?e==null?void 0:e.sidebarButtons({buttonIds:P,sidebarButtons:f,...l,createSidebarButton:L=>R({...L,layoutCommand:{...n==null?void 0:n.layoutCommand,...L.layoutCommand}},y)}):f).filter(Boolean)},t=(s,g,n)=>{var f;const l=b(n),y={pluginOpts:e,breakpointProps:l};return((f=e==null?void 0:e.rootLayout)==null?void 0:f.call(e,{sidebarButtons:g,rootLayout:s,layoutSidebarLeft:r,layoutSidebarTarget:h,...l,createSidebarButton:B=>R({...B},y)}))??s};if(o){const s=u(T,o);c[o]=t({type:"row",style:{height:"100%"},children:[{...r,children:s},h,d]},s,o)}if(a){const s={placer:{type:"absolute",position:"left"},style:{height:"calc(100% - 40px)"}},g=T.map(l=>({...l,layoutCommand:s})),n=u(g,a,{layoutCommand:s});c[a]=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,a)}const A=u(i,0);return{default:t({type:"row",style:{height:"100%"},children:[{...r,children:A},h,d,{type:"sidebarRight"}]},A,0),responsive:c}},_="layoutSidebarButtons",z=v.free,$=V(function(e,o={}){const{Commands:a}=e,c=a.events,i={...o};(()=>{if(e.runCommand(p.layoutConfigGet)||i.skipLayoutConfig===!0)return;const r=U(i);e.runCommand(p.layoutConfigSet,{...r})})(),a.add(`${_}:toggleButton`,(h,r,d)=>{const b=document.getElementById(E(d==null?void 0:d.id));b==null||b.click()}),e.on(`${c.runCommand}core:preview`,()=>{N(e)}),K({editor:e,licenseKey:i.licenseKey,plan:z,pluginName:_,cleanup:()=>{e.runCommand(p.layoutConfigSet)}})});return $.createLayoutConfig=e=>U(e),$});
1
+ (function(P,b){typeof exports=="object"&&typeof module<"u"?module.exports=b():typeof define=="function"&&define.amd?define(b):(P=typeof globalThis<"u"?globalThis:P||self,P.StudioSdkPlugins_layoutSidebarButtons=b())})(this,function(){"use strict";var P=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(P||{}),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.openEditCode="studio:openEditCode",e.openBlocks="studio:openBlocks",e.appendComponent="studio:appendComponent",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.settings="studio:settings",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||{}),G=(e=>(e.layoutToggleId="studio:layoutToggle:",e.toggleBlocksPanel="studio:toggleBlocksPanel",e.pageSettingsUpdate="studio:pageSettingsUpdate",e.toggleDataSourcesPreview="studio:toggleDataSourcesPreview",e))(G||{});const M="app.grapesjs.com",I="app-stage.grapesjs.com",x=[M,"app2.grapesjs.com",I,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io",".claudemcpcontent.com",".web-sandbox.oaiusercontent.com"],j="license:check:end",H=()=>typeof window<"u",m=({isDev:e,isStage:o,isPlatform:a})=>`${e?"":`https://${o?I:M}`}/${a?"platform-api":"api"}`,W=()=>{if(!H())return"";const{hostname:e}=window.location;if(e)return e;try{return window.parent.location.hostname||""}catch{return""}},S=()=>{const e=W();return!!e&&(x.includes(e)||x.some(o=>e.endsWith(o)))};async function C({path:e,baseApiUrl:o,method:a="GET",headers:c={},params:n,body:f}){const r=`${o||m({isDev:!1,isStage:!1})}${e}`,d={method:a,headers:{"Content-Type":"application/json",...c}};f&&(d.body=JSON.stringify(f));const p=n?new URLSearchParams(n).toString():"",u=p?`?${p}`:"",t=await fetch(`${r}${u}`,d);if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.json()}const O={[P.free]:0,[P.startup]:10,[P.business]:20,[P.enterprise]:30};function F(e,o){const a=e;return a.init=c=>{const n=f=>e(f,c);return n.__gjsPluginId=o,n},a}const V=(e,o)=>F(e,o);async function K({editor:e,plan:o,pluginName:a,licenseKey:c,onLicenseCheckResponse:n,cleanup:f}){let v="",r;const d=t=>{console.warn("Cleanup plugin:",a,"Reason:",t),f(e,a)},p=(t={})=>{var i;const{error:B,sdkLicense:l}=t,g=(i=t.plan)==null?void 0:i.category;if(!(l||t.license)||B)d(B||"Invalid license");else if(g){const y=O[o],h=O[g];y>h&&d({pluginRequiredPlan:o,licensePlan:g})}};e.Commands.has(b.settings)&&(r=e.runCommand(b.settings),v=(r==null?void 0:r.baseUrl)||"");const u=t=>{n==null||n(t),t&&p(t)};if(!r){e.onReady(async()=>{if(!S())if(c){const t=await Z({licenseKey:c,pluginName:a,baseApiUrl:v});u(t)}else d("The `licenseKey` option not provided")});return}if(r.licensePlan||r.licenseError){const t=q(r);u(t);return}e.on(j,t=>u(t))}const q=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function Z(e){const{licenseKey:o,pluginName:a,baseApiUrl:c}=e;try{return(await C({baseApiUrl:c,path:`/sdk/${o||"na"}`,method:"POST",params:{d:window.location.hostname,pn:a}})).result||{}}catch(n){return console.error("Error during SDK license check:",n),!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 E="sidebarButtonsTarget",R=(e,o)=>{const{id:a,icon:c,label:n,tooltip:f,className:v,skipSelfClose:r,removeLayouts:d,layoutComponent:p,layoutCommand:u}=e,{pluginOpts:t,breakpointProps:B}=o,l=a;return{id:_(a),type:"button",icon:c,tooltip:n||f,className:v,editorEvents:{[`${G.layoutToggleId}${l}`]:({fromEvent:g,setState:s,editor:i})=>{s({active:g.isOpen}),setTimeout(()=>i.refresh({tools:!0}),20)}},onClick:({editor:g,state:s})=>{var w;if(s.active&&r)return;const i=(u==null?void 0:u.placer)||{type:"static",layoutId:E},y={...i,skipCleanup:i.type==="static"},h=d||Object.keys(T).filter(D=>D!==l);U(g,{removeLayouts:h,layout:{placer:y}});const A={id:l,placer:i,header:(u==null?void 0:u.header)??{label:n,close:!r},layout:p,style:{width:280,height:"100%",borderRightWidth:1,...u==null?void 0:u.style}},L=((w=t==null?void 0:t.sidebarLayoutCommand)==null?void 0:w.call(t,{...B,layoutCommand:A,sidebarButtonProps:e}))||A;g.runCommand(b.layoutToggle,{...L})}}},_=e=>`button__${e}`,U=(e,o={})=>{(o.removeLayouts||Object.keys(T)).forEach(c=>e.runCommand(b.layoutRemove,{id:c,layout:o.layout}))},N=e=>{const o=(e==null?void 0:e.breakpointTablet)??1024,a=(e==null?void 0:e.breakpointMobile)??768,c={},n=[{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:g})=>{var h;const s=g.getSelected(),i={type:"image",src:l.src};let y;if(s!=null&&s.is("image"))return s.set("src",l.src);s&&g.Components.canMove(s,i)?y=s.append(i)[0]:s||(y=(h=g.getWrapper())==null?void 0:h.append(i)[0]),y&&g.select(y,{scroll:!0})}}}],f=[...n,{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"}}],v={id:E,type:"column",className:"gs-cmp-layout-sidebar-target",style:{overflow:"hidden"}},r={type:"sidebarLeft",resizable:!1,style:{padding:"10px 5px",alignItems:"center",width:45,gap:10},children:[]},d={type:"canvasSidebarTop",sidebarTop:{leftContainer:{buttons:[]}}},p=l=>({breakpoint:l,breakpointTablet:o,breakpointMobile:a}),u=(l,g,s)=>{const i=p(g),y={pluginOpts:e,breakpointProps:i},h=l.map(L=>{const w=R(L,y);return e!=null&&e.sidebarButton?e.sidebarButton({id:L.id,buttonIds:T,buttonProps:w,sidebarButtonProps:L,...i,createSidebarButton:D=>R({...L,...D},y)}):w}).filter(Boolean);return(e!=null&&e.sidebarButtons?e==null?void 0:e.sidebarButtons({buttonIds:T,sidebarButtons:h,...i,createSidebarButton:L=>R({...L,layoutCommand:{...s==null?void 0:s.layoutCommand,...L.layoutCommand}},y)}):h).filter(Boolean)},t=(l,g,s)=>{var h;const i=p(s),y={pluginOpts:e,breakpointProps:i};return((h=e==null?void 0:e.rootLayout)==null?void 0:h.call(e,{sidebarButtons:g,rootLayout:l,layoutSidebarLeft:r,layoutSidebarTarget:v,...i,createSidebarButton:A=>R({...A},y)}))??l};if(o){const l=u(f,o);c[o]=t({type:"row",style:{height:"100%"},children:[{...r,children:l},v,d]},l,o)}if(a){const l={placer:{type:"absolute",position:"left"},style:{height:"calc(100% - 40px)"}},g=f.map(i=>({...i,layoutCommand:l})),s=u(g,a,{layoutCommand:l});c[a]=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:s}]},s,a)}const B=u(n,0);return{default:t({type:"row",style:{height:"100%"},children:[{...r,children:B},v,d,{type:"sidebarRight"}]},B,0),responsive:c}},k="layoutSidebarButtons",z=P.free,$=V(function(e,o={}){const{Commands:a}=e,c=a.events,n={...o};(()=>{if(e.runCommand(b.layoutConfigGet)||n.skipLayoutConfig===!0)return;const r=N(n);e.runCommand(b.layoutConfigSet,{...r})})(),a.add(`${k}:toggleButton`,(v,r,d)=>{const p=document.getElementById(_(d==null?void 0:d.id));p==null||p.click()}),e.on(`${c.runCommand}core:preview`,()=>{U(e)}),K({editor:e,licenseKey:n.licenseKey,plan:z,pluginName:k,cleanup:()=>{e.runCommand(b.layoutConfigSet)}})},k);return $.createLayoutConfig=e=>N(e),$});