@grapesjs/studio-sdk-plugins 1.0.36 → 1.0.37

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 (91) hide show
  1. package/dist/accordionComponent/index.cjs.js +4 -4
  2. package/dist/accordionComponent/index.es.js +83 -70
  3. package/dist/accordionComponent/index.umd.js +4 -4
  4. package/dist/aiChat/clientToolsProcessors.d.ts +1 -2
  5. package/dist/aiChat/components/utils.d.ts +1 -0
  6. package/dist/aiChat/components/utilsTw.d.ts +11 -0
  7. package/dist/aiChat/index.cjs.js +70 -70
  8. package/dist/aiChat/index.es.js +8627 -8161
  9. package/dist/aiChat/index.js +70 -70
  10. package/dist/aiChat/index.umd.js +70 -70
  11. package/dist/aiChat/projectGeneration.d.ts +17 -0
  12. package/dist/animationComponent/index.cjs.js +3 -3
  13. package/dist/animationComponent/index.es.js +55 -42
  14. package/dist/animationComponent/index.umd.js +3 -3
  15. package/dist/canvasAbsoluteMode/index.cjs.js +1 -1
  16. package/dist/canvasAbsoluteMode/index.es.js +67 -54
  17. package/dist/canvasAbsoluteMode/index.umd.js +1 -1
  18. package/dist/canvasEmptyState/index.cjs.js +1 -1
  19. package/dist/canvasEmptyState/index.es.js +59 -46
  20. package/dist/canvasEmptyState/index.umd.js +1 -1
  21. package/dist/canvasFullSize/index.cjs.js +4 -4
  22. package/dist/canvasFullSize/index.es.js +59 -46
  23. package/dist/canvasFullSize/index.umd.js +4 -4
  24. package/dist/canvasGridMode/index.cjs.js +2 -2
  25. package/dist/canvasGridMode/index.es.js +70 -57
  26. package/dist/canvasGridMode/index.umd.js +4 -4
  27. package/dist/canvasScreenshot/index.cjs.js +1 -1
  28. package/dist/canvasScreenshot/index.es.js +37 -24
  29. package/dist/canvasScreenshot/index.umd.js +1 -1
  30. package/dist/dataSourceEjs/index.cjs.js +3 -3
  31. package/dist/dataSourceEjs/index.es.js +51 -38
  32. package/dist/dataSourceEjs/index.umd.js +3 -3
  33. package/dist/dataSourceHandlebars/index.cjs.js +2 -2
  34. package/dist/dataSourceHandlebars/index.es.js +50 -37
  35. package/dist/dataSourceHandlebars/index.umd.js +6 -6
  36. package/dist/dialogComponent/index.cjs.js +9 -9
  37. package/dist/dialogComponent/index.es.js +58 -45
  38. package/dist/dialogComponent/index.umd.js +3 -3
  39. package/dist/flexComponent/index.cjs.js +6 -6
  40. package/dist/flexComponent/index.es.js +82 -69
  41. package/dist/flexComponent/index.umd.js +6 -6
  42. package/dist/fsLightboxComponent/index.cjs.js +2 -2
  43. package/dist/fsLightboxComponent/index.es.js +70 -57
  44. package/dist/fsLightboxComponent/index.umd.js +2 -2
  45. package/dist/googleFontsAssetProvider/index.cjs.js +1 -1
  46. package/dist/googleFontsAssetProvider/index.es.js +84 -71
  47. package/dist/googleFontsAssetProvider/index.umd.js +1 -1
  48. package/dist/iconifyComponent/index.cjs.js +2 -2
  49. package/dist/iconifyComponent/index.es.js +82 -69
  50. package/dist/iconifyComponent/index.umd.js +2 -2
  51. package/dist/index.cjs.js +36 -36
  52. package/dist/index.es.js +843 -830
  53. package/dist/index.umd.js +36 -36
  54. package/dist/layoutSidebarButtons/index.cjs.js +1 -1
  55. package/dist/layoutSidebarButtons/index.es.js +81 -68
  56. package/dist/layoutSidebarButtons/index.umd.js +1 -1
  57. package/dist/lightGalleryComponent/index.cjs.js +1 -1
  58. package/dist/lightGalleryComponent/index.es.js +86 -73
  59. package/dist/lightGalleryComponent/index.umd.js +1 -1
  60. package/dist/linkImageComponent/index.cjs.js +2 -2
  61. package/dist/linkImageComponent/index.es.js +70 -57
  62. package/dist/linkImageComponent/index.umd.js +2 -2
  63. package/dist/listPagesComponent/index.cjs.js +3 -3
  64. package/dist/listPagesComponent/index.es.js +49 -36
  65. package/dist/listPagesComponent/index.umd.js +3 -3
  66. package/dist/presetPrintable/index.cjs.js +3 -3
  67. package/dist/presetPrintable/index.es.js +130 -117
  68. package/dist/presetPrintable/index.umd.js +3 -3
  69. package/dist/prosemirror/index.cjs.js +1 -1
  70. package/dist/prosemirror/index.es.js +96 -83
  71. package/dist/prosemirror/index.umd.js +1 -1
  72. package/dist/rendererReact/index.cjs.js +1 -1
  73. package/dist/rendererReact/index.es.js +143 -131
  74. package/dist/rendererReact/index.js +1 -1
  75. package/dist/rendererReact/index.umd.js +1 -1
  76. package/dist/rteTinyMce/index.cjs.js +2 -2
  77. package/dist/rteTinyMce/index.es.js +74 -61
  78. package/dist/rteTinyMce/index.umd.js +2 -2
  79. package/dist/shapeDividerComponent/index.cjs.js +3 -3
  80. package/dist/shapeDividerComponent/index.es.js +33 -20
  81. package/dist/shapeDividerComponent/index.umd.js +3 -3
  82. package/dist/swiperComponent/index.cjs.js +5 -5
  83. package/dist/swiperComponent/index.es.js +105 -92
  84. package/dist/swiperComponent/index.umd.js +5 -5
  85. package/dist/tableComponent/index.cjs.js +1 -1
  86. package/dist/tableComponent/index.es.js +163 -150
  87. package/dist/tableComponent/index.umd.js +1 -1
  88. package/dist/youtubeAssetProvider/index.cjs.js +1 -1
  89. package/dist/youtubeAssetProvider/index.es.js +36 -23
  90. package/dist/youtubeAssetProvider/index.umd.js +1 -1
  91. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- "use strict";const L="app.grapesjs.com",O="app-stage.grapesjs.com",z="app2.grapesjs.com",N="app-stage2.grapesjs.com",$=[L,z,O,N,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],U="license:check:end",_=()=>typeof window<"u",V=({isDev:e,isStage:t,isPlatform:o})=>`${e?"":`https://${t?O:L}`}/${o?"platform-api":"api"}`,j=()=>{const e=_()&&window.location.hostname;return!!e&&($.includes(e)||$.some(t=>e.endsWith(t)))};async function F({path:e,baseApiUrl:t,method:o="GET",headers:r={},params:s,body:p}){const a=`${t||V({isDev:!1,isStage:!1})}${e}`,c={method:o,headers:{"Content-Type":"application/json",...r}};p&&(c.body=JSON.stringify(p));const i=s?new URLSearchParams(s).toString():"",g=i?`?${i}`:"",n=await fetch(`${a}${g}`,c);if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);return n.json()}var h=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(h||{}),w=(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.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))(w||{});const E={[h.free]:0,[h.startup]:10,[h.business]:20,[h.enterprise]:30};function K(e){const t=e;return t.init=o=>r=>e(r,o),t}const W=e=>K(e);async function Y({editor:e,plan:t,pluginName:o,licenseKey:r,onLicenseCheckResponse:s,cleanup:p}){let d="",a;const c=n=>{console.warn("Cleanup plugin:",o,"Reason:",n),p()},i=(n={})=>{var k;const{error:b,sdkLicense:A}=n,m=(k=n.plan)==null?void 0:k.category;if(!(A||n.license)||b)c(b||"Invalid license");else if(m){const I=E[t],H=E[m];I>H&&c({pluginRequiredPlan:t,licensePlan:m})}};e.Commands.has(w.settings)&&(a=e.runCommand(w.settings),d=(a==null?void 0:a.baseUrl)||"");const g=n=>{s==null||s(n),n&&i(n)};if(!a){e.onReady(async()=>{if(!j())if(r){const n=await J({licenseKey:r,pluginName:o,baseApiUrl:d});g(n)}else c("The `licenseKey` option not provided")});return}if(a.licensePlan||a.licenseError){const n=Z(a);g(n);return}e.on(U,n=>g(n))}const Z=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function J(e){const{licenseKey:t,pluginName:o,baseApiUrl:r}=e;try{return(await F({baseApiUrl:r,path:`/sdk/${t||"na"}`,method:"POST",params:{d:window.location.hostname,pn:o}})).result||{}}catch(s){return console.error("Error during SDK license check:",s),!1}}const P=e=>t=>{var o;return((o=t.getAttribute)==null?void 0:o.call(t,T))===e},R=(...e)=>t=>e.some(o=>t.is(o)),Q=(...e)=>(t,o)=>e.some(r=>o.is(r)),x="gjs-plg-",T="data-type-role",l="accordion",q=`${l}-group`,u=`${l}-header`,y=`${l}-content`,v=`${l}-marker`,G=`${x}${u}`,M=`${x}${v}`,X=`${x}${y}`,B=`${M}-open`,f={accordion:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M5.616 20q-.691 0-1.153-.462T4 18.384V5.616q0-.691.463-1.153T5.616 4h12.769q.69 0 1.153.463T20 5.616v12.769q0 .69-.462 1.153T18.384 20zm0-1h12.769q.23 0 .423-.192t.192-.424V8.154H5v10.23q0 .232.192.424t.423.192"/></svg>',accordionGroup:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M8.116 16h10.769q.23 0 .423-.192t.192-.423V6h-12v9.385q0 .23.192.423t.423.192m0 1q-.69 0-1.153-.462T6.5 15.385V4.615q0-.69.463-1.153T8.116 3h10.769q.69 0 1.153.462t.462 1.153v10.77q0 .69-.462 1.152T18.884 17zm-3 3q-.69 0-1.153-.462T3.5 18.385V6.615h1v11.77q0 .23.192.423t.423.192h11.77v1zM7.5 4v12z"/></svg>',accordionHeader:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M5.616 20q-.691 0-1.153-.462T4 18.384V5.616q0-.691.463-1.153T5.616 4h12.769q.69 0 1.153.463T20 5.616v12.769q0 .69-.462 1.153T18.384 20zm0-1h12.769q.23 0 .423-.192t.192-.424V5.616q0-.231-.192-.424T18.384 5H5.616q-.231 0-.424.192T5 5.616v12.769q0 .23.192.423t.423.192M5 5v14zm2.616 4.192h6q.413 0 .706-.293q.294-.293.294-.707t-.294-.706q-.293-.294-.706-.294h-6q-.414 0-.707.294t-.293.706t.293.707t.707.293"/></svg>',accordionContent:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M4.616 19q-.691 0-1.153-.462T3 17.384V6.616q0-.691.463-1.153T4.615 5h14.77q.69 0 1.152.463T21 6.616v10.769q0 .69-.463 1.153T19.385 19zm0-1h14.769q.23 0 .423-.192t.192-.424V6.616q0-.231-.192-.424T19.385 6H4.615q-.23 0-.423.192T4 6.616v10.769q0 .23.192.423t.423.192M4 18V6zm2.23-2.116h11.54q.213 0 .356-.143t.143-.357t-.143-.356t-.357-.144H6.231q-.214 0-.357.144q-.143.143-.143.357q0 .213.143.356t.357.144m0-3.385h11.538q.214 0 .357-.143t.143-.357t-.143-.357t-.357-.143H6.231q-.214 0-.357.143T5.731 12t.143.357t.357.143m0-3.384H14q.214 0 .357-.144q.143-.143.143-.356q0-.214-.143-.357T14 8.116H6.23q-.213 0-.356.143t-.143.357t.143.356t.357.144"/></svg>',accordionMarker:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="m12 15.596l3.173-3.192H8.827zM5.616 20q-.672 0-1.144-.472T4 18.385V5.615q0-.67.472-1.143Q4.944 4 5.616 4h12.769q.67 0 1.143.472q.472.472.472 1.144v12.769q0 .67-.472 1.143q-.472.472-1.143.472zM5 9v9.385q0 .23.192.423t.423.192h12.77q.23 0 .423-.192t.192-.423V9z"/></svg>',caret:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m7.4 8.6 4.6 4.6 4.6-4.6L18 10l-6 6-6-6 1.4-1.4Z"/></svg>',eye:'<svg viewBox="0 0 24 24"><path d="M12 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0 8a5 5 0 0 1-5-5 5 5 0 0 1 5-5 5 5 0 0 1 5 5 5 5 0 0 1-5 5m0-12.5C7 4.5 2.7 7.6 1 12a11.8 11.8 0 0 0 22 0c-1.7-4.4-6-7.5-11-7.5Z"/></svg>'},D=(e,t)=>{const{toolbarIconOpen:o=f.eye}=t,r=e.is(l)?e:e.closestType(l);if(!o||!r)return;const{toolbar:s}=e,p={id:"accordion-toggle-open",label:o,command:()=>r.toggleOpen()};!s.find(a=>a.id===p.id)&&(s==null||s.unshift(p))},C=(e,t)=>{const{Components:o,Blocks:r}=e,{block:s={}}=t,p="Accordion",d=`${x}${l}`,a=function(c={}){const i=this,g=()=>{const{clsMarkerOpen:n}=c,b=i.querySelector('[data-type-role="accordion-marker"]');!b||!n||(i.open?b.classList.add(n):b.classList.remove(n))};i.addEventListener("toggle",()=>{g(),i.dispatchEvent(new CustomEvent("details-toggle",{bubbles:!0}))}),g()};return o.addType(l,{block:s&&{label:p,media:f.accordion,category:"Extra",select:!0,...s},isComponent:P(l),extendFn:["initToolbar"],model:{defaults:{tagName:"details",name:p,classes:d,emptyState:!0,clsMarkerOpen:B,attributes:{[T]:l},droppable:R(u,y),components:[{type:u},{type:y}],"script-props":["clsMarkerOpen"],script:a,traits:[{type:"checkbox",name:"open",label:"Open"}],styles:`
1
+ "use strict";const L="app.grapesjs.com",O="app-stage.grapesjs.com",z="app2.grapesjs.com",N="app-stage2.grapesjs.com",$=[L,z,O,N,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io",".claudemcpcontent.com",".web-sandbox.oaiusercontent.com"],U="license:check:end",_=()=>typeof window<"u",V=({isDev:e,isStage:t,isPlatform:o})=>`${e?"":`https://${t?O:L}`}/${o?"platform-api":"api"}`,j=()=>{if(!_())return"";const{hostname:e}=window.location;if(e)return e;try{return window.parent.location.hostname||""}catch{return""}},F=()=>{const e=j();return!!e&&($.includes(e)||$.some(t=>e.endsWith(t)))};async function K({path:e,baseApiUrl:t,method:o="GET",headers:r={},params:s,body:p}){const a=`${t||V({isDev:!1,isStage:!1})}${e}`,c={method:o,headers:{"Content-Type":"application/json",...r}};p&&(c.body=JSON.stringify(p));const i=s?new URLSearchParams(s).toString():"",u=i?`?${i}`:"",n=await fetch(`${a}${u}`,c);if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);return n.json()}var h=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(h||{}),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.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||{});const E={[h.free]:0,[h.startup]:10,[h.business]:20,[h.enterprise]:30};function W(e){const t=e;return t.init=o=>r=>e(r,o),t}const Y=e=>W(e);async function Z({editor:e,plan:t,pluginName:o,licenseKey:r,onLicenseCheckResponse:s,cleanup:p}){let d="",a;const c=n=>{console.warn("Cleanup plugin:",o,"Reason:",n),p()},i=(n={})=>{var k;const{error:b,sdkLicense:A}=n,w=(k=n.plan)==null?void 0:k.category;if(!(A||n.license)||b)c(b||"Invalid license");else if(w){const I=E[t],H=E[w];I>H&&c({pluginRequiredPlan:t,licensePlan:w})}};e.Commands.has(P.settings)&&(a=e.runCommand(P.settings),d=(a==null?void 0:a.baseUrl)||"");const u=n=>{s==null||s(n),n&&i(n)};if(!a){e.onReady(async()=>{if(!F())if(r){const n=await Q({licenseKey:r,pluginName:o,baseApiUrl:d});u(n)}else c("The `licenseKey` option not provided")});return}if(a.licensePlan||a.licenseError){const n=J(a);u(n);return}e.on(U,n=>u(n))}const J=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function Q(e){const{licenseKey:t,pluginName:o,baseApiUrl:r}=e;try{return(await K({baseApiUrl:r,path:`/sdk/${t||"na"}`,method:"POST",params:{d:window.location.hostname,pn:o}})).result||{}}catch(s){return console.error("Error during SDK license check:",s),!1}}const m=e=>t=>{var o;return((o=t.getAttribute)==null?void 0:o.call(t,T))===e},R=(...e)=>t=>e.some(o=>t.is(o)),X=(...e)=>(t,o)=>e.some(r=>o.is(r)),x="gjs-plg-",T="data-type-role",l="accordion",q=`${l}-group`,g=`${l}-header`,y=`${l}-content`,v=`${l}-marker`,G=`${x}${g}`,M=`${x}${v}`,C=`${x}${y}`,B=`${M}-open`,f={accordion:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M5.616 20q-.691 0-1.153-.462T4 18.384V5.616q0-.691.463-1.153T5.616 4h12.769q.69 0 1.153.463T20 5.616v12.769q0 .69-.462 1.153T18.384 20zm0-1h12.769q.23 0 .423-.192t.192-.424V8.154H5v10.23q0 .232.192.424t.423.192"/></svg>',accordionGroup:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M8.116 16h10.769q.23 0 .423-.192t.192-.423V6h-12v9.385q0 .23.192.423t.423.192m0 1q-.69 0-1.153-.462T6.5 15.385V4.615q0-.69.463-1.153T8.116 3h10.769q.69 0 1.153.462t.462 1.153v10.77q0 .69-.462 1.152T18.884 17zm-3 3q-.69 0-1.153-.462T3.5 18.385V6.615h1v11.77q0 .23.192.423t.423.192h11.77v1zM7.5 4v12z"/></svg>',accordionHeader:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M5.616 20q-.691 0-1.153-.462T4 18.384V5.616q0-.691.463-1.153T5.616 4h12.769q.69 0 1.153.463T20 5.616v12.769q0 .69-.462 1.153T18.384 20zm0-1h12.769q.23 0 .423-.192t.192-.424V5.616q0-.231-.192-.424T18.384 5H5.616q-.231 0-.424.192T5 5.616v12.769q0 .23.192.423t.423.192M5 5v14zm2.616 4.192h6q.413 0 .706-.293q.294-.293.294-.707t-.294-.706q-.293-.294-.706-.294h-6q-.414 0-.707.294t-.293.706t.293.707t.707.293"/></svg>',accordionContent:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M4.616 19q-.691 0-1.153-.462T3 17.384V6.616q0-.691.463-1.153T4.615 5h14.77q.69 0 1.152.463T21 6.616v10.769q0 .69-.463 1.153T19.385 19zm0-1h14.769q.23 0 .423-.192t.192-.424V6.616q0-.231-.192-.424T19.385 6H4.615q-.23 0-.423.192T4 6.616v10.769q0 .23.192.423t.423.192M4 18V6zm2.23-2.116h11.54q.213 0 .356-.143t.143-.357t-.143-.356t-.357-.144H6.231q-.214 0-.357.144q-.143.143-.143.357q0 .213.143.356t.357.144m0-3.385h11.538q.214 0 .357-.143t.143-.357t-.143-.357t-.357-.143H6.231q-.214 0-.357.143T5.731 12t.143.357t.357.143m0-3.384H14q.214 0 .357-.144q.143-.143.143-.356q0-.214-.143-.357T14 8.116H6.23q-.213 0-.356.143t-.143.357t.143.356t.357.144"/></svg>',accordionMarker:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="m12 15.596l3.173-3.192H8.827zM5.616 20q-.672 0-1.144-.472T4 18.385V5.615q0-.67.472-1.143Q4.944 4 5.616 4h12.769q.67 0 1.143.472q.472.472.472 1.144v12.769q0 .67-.472 1.143q-.472.472-1.143.472zM5 9v9.385q0 .23.192.423t.423.192h12.77q.23 0 .423-.192t.192-.423V9z"/></svg>',caret:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m7.4 8.6 4.6 4.6 4.6-4.6L18 10l-6 6-6-6 1.4-1.4Z"/></svg>',eye:'<svg viewBox="0 0 24 24"><path d="M12 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0 8a5 5 0 0 1-5-5 5 5 0 0 1 5-5 5 5 0 0 1 5 5 5 5 0 0 1-5 5m0-12.5C7 4.5 2.7 7.6 1 12a11.8 11.8 0 0 0 22 0c-1.7-4.4-6-7.5-11-7.5Z"/></svg>'},D=(e,t)=>{const{toolbarIconOpen:o=f.eye}=t,r=e.is(l)?e:e.closestType(l);if(!o||!r)return;const{toolbar:s}=e,p={id:"accordion-toggle-open",label:o,command:()=>r.toggleOpen()};!s.find(a=>a.id===p.id)&&(s==null||s.unshift(p))},S=(e,t)=>{const{Components:o,Blocks:r}=e,{block:s={}}=t,p="Accordion",d=`${x}${l}`,a=function(c={}){const i=this,u=()=>{const{clsMarkerOpen:n}=c,b=i.querySelector('[data-type-role="accordion-marker"]');!b||!n||(i.open?b.classList.add(n):b.classList.remove(n))};i.addEventListener("toggle",()=>{u(),i.dispatchEvent(new CustomEvent("details-toggle",{bubbles:!0}))}),u()};return o.addType(l,{block:s&&{label:p,media:f.accordion,category:"Extra",select:!0,...s},isComponent:m(l),extendFn:["initToolbar"],model:{defaults:{tagName:"details",name:p,classes:d,emptyState:!0,clsMarkerOpen:B,attributes:{[T]:l},droppable:R(g,y),components:[{type:g},{type:y}],"script-props":["clsMarkerOpen"],script:a,traits:[{type:"checkbox",name:"open",label:"Open"}],styles:`
2
2
  .${d}::details-content {
3
3
  opacity: 0;
4
4
  block-size: 0;
@@ -15,7 +15,7 @@
15
15
  transform: translateY(0);
16
16
  block-size: auto;
17
17
  }
18
- `},toggleOpen(){this.addAttributes({open:!this.getAttributes().open})},initToolbar(){D(this,t)}}}),()=>{r.remove(l),o.removeType(l)}},S=e=>{const{Components:t}=e;return t.addType(y,{isComponent:P(y),model:{defaults:{name:"Accordion Content",removable:!1,copyable:!1,draggable:!1,emptyState:!0,classes:X,icon:f.accordionContent,attributes:{[T]:y},components:"<div>Accordion content</div>"}}}),()=>{t.removeType(y)}},ee=(e,t)=>{const{Components:o,Blocks:r}=e,{blockGroup:s={}}=t,p="Accordion Group",d=function(c={}){if(!c.single)return;const i=this;i.addEventListener("details-toggle",g=>{const n=g.target;if(!c.single||!n||!n.open)return;i.querySelectorAll('[data-type-role="accordion"]').forEach(A=>{n!==A&&A.open&&(A.open=!1)})})},a=(c={})=>({type:l,attributes:{open:c.open},components:[{type:u,components:[`<div>${c.header}</div>`,{type:v}]},{type:y,components:`<div>${c.content}</div>`}]});return o.addType(q,{block:s&&{label:p,media:f.accordionGroup,category:"Extra",select:!0,...s},isComponent:P(q),model:{defaults:{name:p,attributes:{[T]:q},droppable:R(l),single:!0,emptyState:!0,components:Array(3).fill(0).map((c,i)=>a({open:i===0,header:`Accordion header ${i+1}`,content:`Accordion content ${i+1}`})),traits:[{type:"checkbox",name:"single",changeProp:!0,tip:"Only one accordion can be open at a time",label:"Single open"}],"script-props":["single"],script:d}}}),()=>{r.remove(q),o.removeType(q)}},te=(e,t)=>{const{Components:o}=e;return o.addType(u,{isComponent:P(u),extendFn:["initToolbar"],model:{defaults:{tagName:"summary",name:"Accordion Header",removable:!1,copyable:!1,draggable:!1,emptyState:!0,icon:f.accordionHeader,classes:G,attributes:{[T]:u},components:["<div>Accordion header</div>",{type:v}],styles:`
18
+ `},toggleOpen(){this.addAttributes({open:!this.getAttributes().open})},initToolbar(){D(this,t)}}}),()=>{r.remove(l),o.removeType(l)}},ee=e=>{const{Components:t}=e;return t.addType(y,{isComponent:m(y),model:{defaults:{name:"Accordion Content",removable:!1,copyable:!1,draggable:!1,emptyState:!0,classes:C,icon:f.accordionContent,attributes:{[T]:y},components:"<div>Accordion content</div>"}}}),()=>{t.removeType(y)}},te=(e,t)=>{const{Components:o,Blocks:r}=e,{blockGroup:s={}}=t,p="Accordion Group",d=function(c={}){if(!c.single)return;const i=this;i.addEventListener("details-toggle",u=>{const n=u.target;if(!c.single||!n||!n.open)return;i.querySelectorAll('[data-type-role="accordion"]').forEach(A=>{n!==A&&A.open&&(A.open=!1)})})},a=(c={})=>({type:l,attributes:{open:c.open},components:[{type:g,components:[`<div>${c.header}</div>`,{type:v}]},{type:y,components:`<div>${c.content}</div>`}]});return o.addType(q,{block:s&&{label:p,media:f.accordionGroup,category:"Extra",select:!0,...s},isComponent:m(q),model:{defaults:{name:p,attributes:{[T]:q},droppable:R(l),single:!0,emptyState:!0,components:Array(3).fill(0).map((c,i)=>a({open:i===0,header:`Accordion header ${i+1}`,content:`Accordion content ${i+1}`})),traits:[{type:"checkbox",name:"single",changeProp:!0,tip:"Only one accordion can be open at a time",label:"Single open"}],"script-props":["single"],script:d}}}),()=>{r.remove(q),o.removeType(q)}},oe=(e,t)=>{const{Components:o}=e;return o.addType(g,{isComponent:m(g),extendFn:["initToolbar"],model:{defaults:{tagName:"summary",name:"Accordion Header",removable:!1,copyable:!1,draggable:!1,emptyState:!0,icon:f.accordionHeader,classes:G,attributes:{[T]:g},components:["<div>Accordion header</div>",{type:v}],styles:`
19
19
  summary {
20
20
  list-style: none;
21
21
  }
@@ -26,7 +26,7 @@
26
26
  justify-content: space-between;
27
27
  gap: 1rem;
28
28
  }
29
- `},initToolbar(){D(this,t)}}}),()=>{o.removeType(u)}},oe=e=>{const{Components:t}=e;return t.addType(v,{extend:"icon",isComponent:P(v),model:{defaults:{name:"Accordion Marker",icon:f.accordionMarker,classes:M,attributes:{[T]:v},components:f.caret,droppable:!1,draggable:Q(u),styles:`
29
+ `},initToolbar(){D(this,t)}}}),()=>{o.removeType(g)}},ne=e=>{const{Components:t}=e;return t.addType(v,{extend:"icon",isComponent:m(v),model:{defaults:{name:"Accordion Marker",icon:f.accordionMarker,classes:M,attributes:{[T]:v},components:f.caret,droppable:!1,draggable:X(g),styles:`
30
30
  .${M} {
31
31
  min-width: 24px;
32
32
  width: 24px;
@@ -36,4 +36,4 @@
36
36
  .${B} {
37
37
  transform: rotateZ(180deg);
38
38
  }
39
- `}}}),()=>{t.removeType(v)}},ne="accordionComponent",se=h.startup,re=function(e,t={}){const o=[C(e,t),ee(e,t),te(e,t),oe(e),S(e)];Y({editor:e,licenseKey:t.licenseKey,plan:se,pluginName:ne,cleanup:()=>{o.forEach(r=>r())}})},ae=W(re);module.exports=ae;
39
+ `}}}),()=>{t.removeType(v)}},se="accordionComponent",re=h.startup,ae=function(e,t={}){const o=[S(e,t),te(e,t),oe(e,t),ne(e),ee(e)];Z({editor:e,licenseKey:t.licenseKey,plan:re,pluginName:se,cleanup:()=>{o.forEach(r=>r())}})},ce=Y(ae);module.exports=ce;
@@ -9,17 +9,30 @@ const L = "app.grapesjs.com", O = "app-stage.grapesjs.com", z = "app2.grapesjs.c
9
9
  // For stackblitz.com demos
10
10
  ".local.webcontainer.io",
11
11
  // For stackblitz.com demos
12
- "-sandpack.codesandbox.io"
12
+ "-sandpack.codesandbox.io",
13
13
  // For Sandpack demos
14
+ ".claudemcpcontent.com",
15
+ // For Claude mcp app
16
+ ".web-sandbox.oaiusercontent.com"
17
+ // For OpenAI mcp app
14
18
  ], U = "license:check:end", _ = () => typeof window < "u", V = ({
15
19
  isDev: e,
16
20
  isStage: t,
17
21
  isPlatform: o
18
22
  }) => `${e ? "" : `https://${t ? O : L}`}/${o ? "platform-api" : "api"}`, j = () => {
19
- const e = _() && window.location.hostname;
23
+ if (!_()) return "";
24
+ const { hostname: e } = window.location;
25
+ if (e) return e;
26
+ try {
27
+ return window.parent.location.hostname || "";
28
+ } catch {
29
+ return "";
30
+ }
31
+ }, F = () => {
32
+ const e = j();
20
33
  return !!e && ($.includes(e) || $.some((t) => e.endsWith(t)));
21
34
  };
22
- async function F({
35
+ async function K({
23
36
  path: e,
24
37
  baseApiUrl: t,
25
38
  method: o = "GET",
@@ -35,24 +48,24 @@ async function F({
35
48
  }
36
49
  };
37
50
  p && (c.body = JSON.stringify(p));
38
- const i = s ? new URLSearchParams(s).toString() : "", g = i ? `?${i}` : "", n = await fetch(`${a}${g}`, c);
51
+ const i = s ? new URLSearchParams(s).toString() : "", u = i ? `?${i}` : "", n = await fetch(`${a}${u}`, c);
39
52
  if (!n.ok)
40
53
  throw new Error(`HTTP error! status: ${n.status}`);
41
54
  return n.json();
42
55
  }
43
- var h = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(h || {}), w = /* @__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.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))(w || {});
56
+ var h = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(h || {}), P = /* @__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.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 || {});
44
57
  const E = {
45
58
  [h.free]: 0,
46
59
  [h.startup]: 10,
47
60
  [h.business]: 20,
48
61
  [h.enterprise]: 30
49
62
  };
50
- function K(e) {
63
+ function W(e) {
51
64
  const t = e;
52
65
  return t.init = (o) => (r) => e(r, o), t;
53
66
  }
54
- const W = (e) => /* @__PURE__ */ K(e);
55
- async function Y({
67
+ const Y = (e) => /* @__PURE__ */ W(e);
68
+ async function Z({
56
69
  editor: e,
57
70
  plan: t,
58
71
  pluginName: o,
@@ -65,46 +78,46 @@ async function Y({
65
78
  console.warn("Cleanup plugin:", o, "Reason:", n), p();
66
79
  }, i = (n = {}) => {
67
80
  var k;
68
- const { error: b, sdkLicense: A } = n, m = (k = n.plan) == null ? void 0 : k.category;
81
+ const { error: b, sdkLicense: A } = n, w = (k = n.plan) == null ? void 0 : k.category;
69
82
  if (!(A || n.license) || b)
70
83
  c(b || "Invalid license");
71
- else if (m) {
72
- const I = E[t], H = E[m];
73
- I > H && c({ pluginRequiredPlan: t, licensePlan: m });
84
+ else if (w) {
85
+ const I = E[t], H = E[w];
86
+ I > H && c({ pluginRequiredPlan: t, licensePlan: w });
74
87
  }
75
88
  };
76
- e.Commands.has(w.settings) && (a = e.runCommand(w.settings), d = (a == null ? void 0 : a.baseUrl) || "");
77
- const g = (n) => {
89
+ e.Commands.has(P.settings) && (a = e.runCommand(P.settings), d = (a == null ? void 0 : a.baseUrl) || "");
90
+ const u = (n) => {
78
91
  s == null || s(n), n && i(n);
79
92
  };
80
93
  if (!a) {
81
94
  e.onReady(async () => {
82
- if (!j())
95
+ if (!F())
83
96
  if (r) {
84
- const n = await J({ licenseKey: r, pluginName: o, baseApiUrl: d });
85
- g(n);
97
+ const n = await Q({ licenseKey: r, pluginName: o, baseApiUrl: d });
98
+ u(n);
86
99
  } else
87
100
  c("The `licenseKey` option not provided");
88
101
  });
89
102
  return;
90
103
  }
91
104
  if (a.licensePlan || a.licenseError) {
92
- const n = Z(a);
93
- g(n);
105
+ const n = J(a);
106
+ u(n);
94
107
  return;
95
108
  }
96
- e.on(U, (n) => g(n));
109
+ e.on(U, (n) => u(n));
97
110
  }
98
- const Z = (e) => ({
111
+ const J = (e) => ({
99
112
  sdkLicense: e.license,
100
113
  license: e.license,
101
114
  error: e.licenseError,
102
115
  plan: e.licensePlan
103
116
  });
104
- async function J(e) {
117
+ async function Q(e) {
105
118
  const { licenseKey: t, pluginName: o, baseApiUrl: r } = e;
106
119
  try {
107
- return (await F({
120
+ return (await K({
108
121
  baseApiUrl: r,
109
122
  path: `/sdk/${t || "na"}`,
110
123
  method: "POST",
@@ -117,10 +130,10 @@ async function J(e) {
117
130
  return console.error("Error during SDK license check:", s), !1;
118
131
  }
119
132
  }
120
- const P = (e) => (t) => {
133
+ const m = (e) => (t) => {
121
134
  var o;
122
135
  return ((o = t.getAttribute) == null ? void 0 : o.call(t, T)) === e;
123
- }, R = (...e) => (t) => e.some((o) => t.is(o)), Q = (...e) => (t, o) => e.some((r) => o.is(r)), x = "gjs-plg-", T = "data-type-role", l = "accordion", q = `${l}-group`, u = `${l}-header`, y = `${l}-content`, v = `${l}-marker`, G = `${x}${u}`, M = `${x}${v}`, X = `${x}${y}`, B = `${M}-open`, f = {
136
+ }, R = (...e) => (t) => e.some((o) => t.is(o)), X = (...e) => (t, o) => e.some((r) => o.is(r)), x = "gjs-plg-", T = "data-type-role", l = "accordion", q = `${l}-group`, g = `${l}-header`, y = `${l}-content`, f = `${l}-marker`, G = `${x}${g}`, M = `${x}${f}`, C = `${x}${y}`, B = `${M}-open`, v = {
124
137
  accordion: '<svg viewBox="0 0 24 24"><path fill="currentColor" d="M5.616 20q-.691 0-1.153-.462T4 18.384V5.616q0-.691.463-1.153T5.616 4h12.769q.69 0 1.153.463T20 5.616v12.769q0 .69-.462 1.153T18.384 20zm0-1h12.769q.23 0 .423-.192t.192-.424V8.154H5v10.23q0 .232.192.424t.423.192"/></svg>',
125
138
  accordionGroup: '<svg viewBox="0 0 24 24"><path fill="currentColor" d="M8.116 16h10.769q.23 0 .423-.192t.192-.423V6h-12v9.385q0 .23.192.423t.423.192m0 1q-.69 0-1.153-.462T6.5 15.385V4.615q0-.69.463-1.153T8.116 3h10.769q.69 0 1.153.462t.462 1.153v10.77q0 .69-.462 1.152T18.884 17zm-3 3q-.69 0-1.153-.462T3.5 18.385V6.615h1v11.77q0 .23.192.423t.423.192h11.77v1zM7.5 4v12z"/></svg>',
126
139
  accordionHeader: '<svg viewBox="0 0 24 24"><path fill="currentColor" d="M5.616 20q-.691 0-1.153-.462T4 18.384V5.616q0-.691.463-1.153T5.616 4h12.769q.69 0 1.153.463T20 5.616v12.769q0 .69-.462 1.153T18.384 20zm0-1h12.769q.23 0 .423-.192t.192-.424V5.616q0-.231-.192-.424T18.384 5H5.616q-.231 0-.424.192T5 5.616v12.769q0 .23.192.423t.423.192M5 5v14zm2.616 4.192h6q.413 0 .706-.293q.294-.293.294-.707t-.294-.706q-.293-.294-.706-.294h-6q-.414 0-.707.294t-.293.706t.293.707t.707.293"/></svg>',
@@ -129,7 +142,7 @@ const P = (e) => (t) => {
129
142
  caret: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m7.4 8.6 4.6 4.6 4.6-4.6L18 10l-6 6-6-6 1.4-1.4Z"/></svg>',
130
143
  eye: '<svg viewBox="0 0 24 24"><path d="M12 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0 8a5 5 0 0 1-5-5 5 5 0 0 1 5-5 5 5 0 0 1 5 5 5 5 0 0 1-5 5m0-12.5C7 4.5 2.7 7.6 1 12a11.8 11.8 0 0 0 22 0c-1.7-4.4-6-7.5-11-7.5Z"/></svg>'
131
144
  }, D = (e, t) => {
132
- const { toolbarIconOpen: o = f.eye } = t, r = e.is(l) ? e : e.closestType(l);
145
+ const { toolbarIconOpen: o = v.eye } = t, r = e.is(l) ? e : e.closestType(l);
133
146
  if (!o || !r) return;
134
147
  const { toolbar: s } = e, p = {
135
148
  id: "accordion-toggle-open",
@@ -137,25 +150,25 @@ const P = (e) => (t) => {
137
150
  command: () => r.toggleOpen()
138
151
  };
139
152
  !s.find((a) => a.id === p.id) && (s == null || s.unshift(p));
140
- }, C = (e, t) => {
153
+ }, S = (e, t) => {
141
154
  const { Components: o, Blocks: r } = e, { block: s = {} } = t, p = "Accordion", d = `${x}${l}`, a = function(c = {}) {
142
- const i = this, g = () => {
155
+ const i = this, u = () => {
143
156
  const { clsMarkerOpen: n } = c, b = i.querySelector('[data-type-role="accordion-marker"]');
144
157
  !b || !n || (i.open ? b.classList.add(n) : b.classList.remove(n));
145
158
  };
146
159
  i.addEventListener("toggle", () => {
147
- g(), i.dispatchEvent(new CustomEvent("details-toggle", { bubbles: !0 }));
148
- }), g();
160
+ u(), i.dispatchEvent(new CustomEvent("details-toggle", { bubbles: !0 }));
161
+ }), u();
149
162
  };
150
163
  return o.addType(l, {
151
164
  block: s && {
152
165
  label: p,
153
- media: f.accordion,
166
+ media: v.accordion,
154
167
  category: "Extra",
155
168
  select: !0,
156
169
  ...s
157
170
  },
158
- isComponent: P(l),
171
+ isComponent: m(l),
159
172
  extendFn: ["initToolbar"],
160
173
  model: {
161
174
  defaults: {
@@ -165,8 +178,8 @@ const P = (e) => (t) => {
165
178
  emptyState: !0,
166
179
  clsMarkerOpen: B,
167
180
  attributes: { [T]: l },
168
- droppable: R(u, y),
169
- components: [{ type: u }, { type: y }],
181
+ droppable: R(g, y),
182
+ components: [{ type: g }, { type: y }],
170
183
  "script-props": ["clsMarkerOpen"],
171
184
  script: a,
172
185
  traits: [
@@ -205,10 +218,10 @@ const P = (e) => (t) => {
205
218
  }), () => {
206
219
  r.remove(l), o.removeType(l);
207
220
  };
208
- }, S = (e) => {
221
+ }, ee = (e) => {
209
222
  const { Components: t } = e;
210
223
  return t.addType(y, {
211
- isComponent: P(y),
224
+ isComponent: m(y),
212
225
  model: {
213
226
  defaults: {
214
227
  name: "Accordion Content",
@@ -216,8 +229,8 @@ const P = (e) => (t) => {
216
229
  copyable: !1,
217
230
  draggable: !1,
218
231
  emptyState: !0,
219
- classes: X,
220
- icon: f.accordionContent,
232
+ classes: C,
233
+ icon: v.accordionContent,
221
234
  attributes: { [T]: y },
222
235
  components: "<div>Accordion content</div>"
223
236
  }
@@ -225,12 +238,12 @@ const P = (e) => (t) => {
225
238
  }), () => {
226
239
  t.removeType(y);
227
240
  };
228
- }, ee = (e, t) => {
241
+ }, te = (e, t) => {
229
242
  const { Components: o, Blocks: r } = e, { blockGroup: s = {} } = t, p = "Accordion Group", d = function(c = {}) {
230
243
  if (!c.single) return;
231
244
  const i = this;
232
- i.addEventListener("details-toggle", (g) => {
233
- const n = g.target;
245
+ i.addEventListener("details-toggle", (u) => {
246
+ const n = u.target;
234
247
  if (!c.single || !n || !n.open) return;
235
248
  i.querySelectorAll('[data-type-role="accordion"]').forEach((A) => {
236
249
  n !== A && A.open && (A.open = !1);
@@ -241,8 +254,8 @@ const P = (e) => (t) => {
241
254
  attributes: { open: c.open },
242
255
  components: [
243
256
  {
244
- type: u,
245
- components: [`<div>${c.header}</div>`, { type: v }]
257
+ type: g,
258
+ components: [`<div>${c.header}</div>`, { type: f }]
246
259
  },
247
260
  {
248
261
  type: y,
@@ -253,12 +266,12 @@ const P = (e) => (t) => {
253
266
  return o.addType(q, {
254
267
  block: s && {
255
268
  label: p,
256
- media: f.accordionGroup,
269
+ media: v.accordionGroup,
257
270
  category: "Extra",
258
271
  select: !0,
259
272
  ...s
260
273
  },
261
- isComponent: P(q),
274
+ isComponent: m(q),
262
275
  model: {
263
276
  defaults: {
264
277
  name: p,
@@ -289,10 +302,10 @@ const P = (e) => (t) => {
289
302
  }), () => {
290
303
  r.remove(q), o.removeType(q);
291
304
  };
292
- }, te = (e, t) => {
305
+ }, oe = (e, t) => {
293
306
  const { Components: o } = e;
294
- return o.addType(u, {
295
- isComponent: P(u),
307
+ return o.addType(g, {
308
+ isComponent: m(g),
296
309
  extendFn: ["initToolbar"],
297
310
  model: {
298
311
  defaults: {
@@ -302,10 +315,10 @@ const P = (e) => (t) => {
302
315
  copyable: !1,
303
316
  draggable: !1,
304
317
  emptyState: !0,
305
- icon: f.accordionHeader,
318
+ icon: v.accordionHeader,
306
319
  classes: G,
307
- attributes: { [T]: u },
308
- components: ["<div>Accordion header</div>", { type: v }],
320
+ attributes: { [T]: g },
321
+ components: ["<div>Accordion header</div>", { type: f }],
309
322
  styles: `
310
323
  summary {
311
324
  list-style: none;
@@ -324,22 +337,22 @@ const P = (e) => (t) => {
324
337
  }
325
338
  }
326
339
  }), () => {
327
- o.removeType(u);
340
+ o.removeType(g);
328
341
  };
329
- }, oe = (e) => {
342
+ }, ne = (e) => {
330
343
  const { Components: t } = e;
331
- return t.addType(v, {
344
+ return t.addType(f, {
332
345
  extend: "icon",
333
- isComponent: P(v),
346
+ isComponent: m(f),
334
347
  model: {
335
348
  defaults: {
336
349
  name: "Accordion Marker",
337
- icon: f.accordionMarker,
350
+ icon: v.accordionMarker,
338
351
  classes: M,
339
- attributes: { [T]: v },
340
- components: f.caret,
352
+ attributes: { [T]: f },
353
+ components: v.caret,
341
354
  droppable: !1,
342
- draggable: Q(u),
355
+ draggable: X(g),
343
356
  styles: `
344
357
  .${M} {
345
358
  min-width: 24px;
@@ -354,26 +367,26 @@ const P = (e) => (t) => {
354
367
  }
355
368
  }
356
369
  }), () => {
357
- t.removeType(v);
370
+ t.removeType(f);
358
371
  };
359
- }, ne = "accordionComponent", se = h.startup, re = function(e, t = {}) {
372
+ }, se = "accordionComponent", re = h.startup, ae = function(e, t = {}) {
360
373
  const o = [
361
- C(e, t),
362
- ee(e, t),
374
+ S(e, t),
363
375
  te(e, t),
364
- oe(e),
365
- S(e)
376
+ oe(e, t),
377
+ ne(e),
378
+ ee(e)
366
379
  ];
367
- Y({
380
+ Z({
368
381
  editor: e,
369
382
  licenseKey: t.licenseKey,
370
- plan: se,
371
- pluginName: ne,
383
+ plan: re,
384
+ pluginName: se,
372
385
  cleanup: () => {
373
386
  o.forEach((r) => r());
374
387
  }
375
388
  });
376
- }, ce = W(re);
389
+ }, ie = Y(ae);
377
390
  export {
378
- ce as default
391
+ ie as default
379
392
  };
@@ -1,4 +1,4 @@
1
- (function(h,T){typeof exports=="object"&&typeof module<"u"?module.exports=T():typeof define=="function"&&define.amd?define(T):(h=typeof globalThis<"u"?globalThis:h||self,h.StudioSdkPlugins_accordionComponent=T())})(this,function(){"use strict";const h="app.grapesjs.com",T="app-stage.grapesjs.com",E=[h,"app2.grapesjs.com",T,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],I="license:check:end",H=()=>typeof window<"u",N=({isDev:e,isStage:t,isPlatform:o})=>`${e?"":`https://${t?T:h}`}/${o?"platform-api":"api"}`,_=()=>{const e=H()&&window.location.hostname;return!!e&&(E.includes(e)||E.some(t=>e.endsWith(t)))};async function z({path:e,baseApiUrl:t,method:o="GET",headers:r={},params:s,body:p}){const a=`${t||N({isDev:!1,isStage:!1})}${e}`,c={method:o,headers:{"Content-Type":"application/json",...r}};p&&(c.body=JSON.stringify(p));const i=s?new URLSearchParams(s).toString():"",u=i?`?${i}`:"",n=await fetch(`${a}${u}`,c);if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);return n.json()}var A=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(A||{}),w=(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.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))(w||{});const O={[A.free]:0,[A.startup]:10,[A.business]:20,[A.enterprise]:30};function U(e){const t=e;return t.init=o=>r=>e(r,o),t}const V=e=>U(e);async function j({editor:e,plan:t,pluginName:o,licenseKey:r,onLicenseCheckResponse:s,cleanup:p}){let d="",a;const c=n=>{console.warn("Cleanup plugin:",o,"Reason:",n),p()},i=(n={})=>{var B;const{error:v,sdkLicense:x}=n,k=(B=n.plan)==null?void 0:B.category;if(!(x||n.license)||v)c(v||"Invalid license");else if(k){const te=O[t],oe=O[k];te>oe&&c({pluginRequiredPlan:t,licensePlan:k})}};e.Commands.has(w.settings)&&(a=e.runCommand(w.settings),d=(a==null?void 0:a.baseUrl)||"");const u=n=>{s==null||s(n),n&&i(n)};if(!a){e.onReady(async()=>{if(!_())if(r){const n=await K({licenseKey:r,pluginName:o,baseApiUrl:d});u(n)}else c("The `licenseKey` option not provided")});return}if(a.licensePlan||a.licenseError){const n=F(a);u(n);return}e.on(I,n=>u(n))}const F=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function K(e){const{licenseKey:t,pluginName:o,baseApiUrl:r}=e;try{return(await z({baseApiUrl:r,path:`/sdk/${t||"na"}`,method:"POST",params:{d:window.location.hostname,pn:o}})).result||{}}catch(s){return console.error("Error during SDK license check:",s),!1}}const m=e=>t=>{var o;return((o=t.getAttribute)==null?void 0:o.call(t,q))===e},G=(...e)=>t=>e.some(o=>t.is(o)),W=(...e)=>(t,o)=>e.some(r=>o.is(r)),M="gjs-plg-",q="data-type-role",l="accordion",P=`${l}-group`,g=`${l}-header`,y=`${l}-content`,b=`${l}-marker`,L=`${M}${g}`,$=`${M}${b}`,Y=`${M}${y}`,R=`${$}-open`,f={accordion:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M5.616 20q-.691 0-1.153-.462T4 18.384V5.616q0-.691.463-1.153T5.616 4h12.769q.69 0 1.153.463T20 5.616v12.769q0 .69-.462 1.153T18.384 20zm0-1h12.769q.23 0 .423-.192t.192-.424V8.154H5v10.23q0 .232.192.424t.423.192"/></svg>',accordionGroup:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M8.116 16h10.769q.23 0 .423-.192t.192-.423V6h-12v9.385q0 .23.192.423t.423.192m0 1q-.69 0-1.153-.462T6.5 15.385V4.615q0-.69.463-1.153T8.116 3h10.769q.69 0 1.153.462t.462 1.153v10.77q0 .69-.462 1.152T18.884 17zm-3 3q-.69 0-1.153-.462T3.5 18.385V6.615h1v11.77q0 .23.192.423t.423.192h11.77v1zM7.5 4v12z"/></svg>',accordionHeader:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M5.616 20q-.691 0-1.153-.462T4 18.384V5.616q0-.691.463-1.153T5.616 4h12.769q.69 0 1.153.463T20 5.616v12.769q0 .69-.462 1.153T18.384 20zm0-1h12.769q.23 0 .423-.192t.192-.424V5.616q0-.231-.192-.424T18.384 5H5.616q-.231 0-.424.192T5 5.616v12.769q0 .23.192.423t.423.192M5 5v14zm2.616 4.192h6q.413 0 .706-.293q.294-.293.294-.707t-.294-.706q-.293-.294-.706-.294h-6q-.414 0-.707.294t-.293.706t.293.707t.707.293"/></svg>',accordionContent:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M4.616 19q-.691 0-1.153-.462T3 17.384V6.616q0-.691.463-1.153T4.615 5h14.77q.69 0 1.152.463T21 6.616v10.769q0 .69-.463 1.153T19.385 19zm0-1h14.769q.23 0 .423-.192t.192-.424V6.616q0-.231-.192-.424T19.385 6H4.615q-.23 0-.423.192T4 6.616v10.769q0 .23.192.423t.423.192M4 18V6zm2.23-2.116h11.54q.213 0 .356-.143t.143-.357t-.143-.356t-.357-.144H6.231q-.214 0-.357.144q-.143.143-.143.357q0 .213.143.356t.357.144m0-3.385h11.538q.214 0 .357-.143t.143-.357t-.143-.357t-.357-.143H6.231q-.214 0-.357.143T5.731 12t.143.357t.357.143m0-3.384H14q.214 0 .357-.144q.143-.143.143-.356q0-.214-.143-.357T14 8.116H6.23q-.213 0-.356.143t-.143.357t.143.356t.357.144"/></svg>',accordionMarker:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="m12 15.596l3.173-3.192H8.827zM5.616 20q-.672 0-1.144-.472T4 18.385V5.615q0-.67.472-1.143Q4.944 4 5.616 4h12.769q.67 0 1.143.472q.472.472.472 1.144v12.769q0 .67-.472 1.143q-.472.472-1.143.472zM5 9v9.385q0 .23.192.423t.423.192h12.77q.23 0 .423-.192t.192-.423V9z"/></svg>',caret:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m7.4 8.6 4.6 4.6 4.6-4.6L18 10l-6 6-6-6 1.4-1.4Z"/></svg>',eye:'<svg viewBox="0 0 24 24"><path d="M12 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0 8a5 5 0 0 1-5-5 5 5 0 0 1 5-5 5 5 0 0 1 5 5 5 5 0 0 1-5 5m0-12.5C7 4.5 2.7 7.6 1 12a11.8 11.8 0 0 0 22 0c-1.7-4.4-6-7.5-11-7.5Z"/></svg>'},D=(e,t)=>{const{toolbarIconOpen:o=f.eye}=t,r=e.is(l)?e:e.closestType(l);if(!o||!r)return;const{toolbar:s}=e,p={id:"accordion-toggle-open",label:o,command:()=>r.toggleOpen()};!s.find(a=>a.id===p.id)&&(s==null||s.unshift(p))},Z=(e,t)=>{const{Components:o,Blocks:r}=e,{block:s={}}=t,p="Accordion",d=`${M}${l}`,a=function(c={}){const i=this,u=()=>{const{clsMarkerOpen:n}=c,v=i.querySelector('[data-type-role="accordion-marker"]');!v||!n||(i.open?v.classList.add(n):v.classList.remove(n))};i.addEventListener("toggle",()=>{u(),i.dispatchEvent(new CustomEvent("details-toggle",{bubbles:!0}))}),u()};return o.addType(l,{block:s&&{label:p,media:f.accordion,category:"Extra",select:!0,...s},isComponent:m(l),extendFn:["initToolbar"],model:{defaults:{tagName:"details",name:p,classes:d,emptyState:!0,clsMarkerOpen:R,attributes:{[q]:l},droppable:G(g,y),components:[{type:g},{type:y}],"script-props":["clsMarkerOpen"],script:a,traits:[{type:"checkbox",name:"open",label:"Open"}],styles:`
1
+ (function(v,T){typeof exports=="object"&&typeof module<"u"?module.exports=T():typeof define=="function"&&define.amd?define(T):(v=typeof globalThis<"u"?globalThis:v||self,v.StudioSdkPlugins_accordionComponent=T())})(this,function(){"use strict";const v="app.grapesjs.com",T="app-stage.grapesjs.com",E=[v,"app2.grapesjs.com",T,"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"],I="license:check:end",H=()=>typeof window<"u",N=({isDev:e,isStage:t,isPlatform:o})=>`${e?"":`https://${t?T:v}`}/${o?"platform-api":"api"}`,_=()=>{if(!H())return"";const{hostname:e}=window.location;if(e)return e;try{return window.parent.location.hostname||""}catch{return""}},z=()=>{const e=_();return!!e&&(E.includes(e)||E.some(t=>e.endsWith(t)))};async function U({path:e,baseApiUrl:t,method:o="GET",headers:r={},params:s,body:p}){const a=`${t||N({isDev:!1,isStage:!1})}${e}`,c={method:o,headers:{"Content-Type":"application/json",...r}};p&&(c.body=JSON.stringify(p));const i=s?new URLSearchParams(s).toString():"",u=i?`?${i}`:"",n=await fetch(`${a}${u}`,c);if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);return n.json()}var A=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(A||{}),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.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))(k||{});const O={[A.free]:0,[A.startup]:10,[A.business]:20,[A.enterprise]:30};function V(e){const t=e;return t.init=o=>r=>e(r,o),t}const j=e=>V(e);async function F({editor:e,plan:t,pluginName:o,licenseKey:r,onLicenseCheckResponse:s,cleanup:p}){let d="",a;const c=n=>{console.warn("Cleanup plugin:",o,"Reason:",n),p()},i=(n={})=>{var B;const{error:h,sdkLicense:P}=n,M=(B=n.plan)==null?void 0:B.category;if(!(P||n.license)||h)c(h||"Invalid license");else if(M){const oe=O[t],ne=O[M];oe>ne&&c({pluginRequiredPlan:t,licensePlan:M})}};e.Commands.has(k.settings)&&(a=e.runCommand(k.settings),d=(a==null?void 0:a.baseUrl)||"");const u=n=>{s==null||s(n),n&&i(n)};if(!a){e.onReady(async()=>{if(!z())if(r){const n=await W({licenseKey:r,pluginName:o,baseApiUrl:d});u(n)}else c("The `licenseKey` option not provided")});return}if(a.licensePlan||a.licenseError){const n=K(a);u(n);return}e.on(I,n=>u(n))}const K=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function W(e){const{licenseKey:t,pluginName:o,baseApiUrl:r}=e;try{return(await U({baseApiUrl:r,path:`/sdk/${t||"na"}`,method:"POST",params:{d:window.location.hostname,pn:o}})).result||{}}catch(s){return console.error("Error during SDK license check:",s),!1}}const m=e=>t=>{var o;return((o=t.getAttribute)==null?void 0:o.call(t,q))===e},G=(...e)=>t=>e.some(o=>t.is(o)),Y=(...e)=>(t,o)=>e.some(r=>o.is(r)),w="gjs-plg-",q="data-type-role",l="accordion",x=`${l}-group`,g=`${l}-header`,y=`${l}-content`,b=`${l}-marker`,L=`${w}${g}`,$=`${w}${b}`,Z=`${w}${y}`,R=`${$}-open`,f={accordion:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M5.616 20q-.691 0-1.153-.462T4 18.384V5.616q0-.691.463-1.153T5.616 4h12.769q.69 0 1.153.463T20 5.616v12.769q0 .69-.462 1.153T18.384 20zm0-1h12.769q.23 0 .423-.192t.192-.424V8.154H5v10.23q0 .232.192.424t.423.192"/></svg>',accordionGroup:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M8.116 16h10.769q.23 0 .423-.192t.192-.423V6h-12v9.385q0 .23.192.423t.423.192m0 1q-.69 0-1.153-.462T6.5 15.385V4.615q0-.69.463-1.153T8.116 3h10.769q.69 0 1.153.462t.462 1.153v10.77q0 .69-.462 1.152T18.884 17zm-3 3q-.69 0-1.153-.462T3.5 18.385V6.615h1v11.77q0 .23.192.423t.423.192h11.77v1zM7.5 4v12z"/></svg>',accordionHeader:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M5.616 20q-.691 0-1.153-.462T4 18.384V5.616q0-.691.463-1.153T5.616 4h12.769q.69 0 1.153.463T20 5.616v12.769q0 .69-.462 1.153T18.384 20zm0-1h12.769q.23 0 .423-.192t.192-.424V5.616q0-.231-.192-.424T18.384 5H5.616q-.231 0-.424.192T5 5.616v12.769q0 .23.192.423t.423.192M5 5v14zm2.616 4.192h6q.413 0 .706-.293q.294-.293.294-.707t-.294-.706q-.293-.294-.706-.294h-6q-.414 0-.707.294t-.293.706t.293.707t.707.293"/></svg>',accordionContent:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="M4.616 19q-.691 0-1.153-.462T3 17.384V6.616q0-.691.463-1.153T4.615 5h14.77q.69 0 1.152.463T21 6.616v10.769q0 .69-.463 1.153T19.385 19zm0-1h14.769q.23 0 .423-.192t.192-.424V6.616q0-.231-.192-.424T19.385 6H4.615q-.23 0-.423.192T4 6.616v10.769q0 .23.192.423t.423.192M4 18V6zm2.23-2.116h11.54q.213 0 .356-.143t.143-.357t-.143-.356t-.357-.144H6.231q-.214 0-.357.144q-.143.143-.143.357q0 .213.143.356t.357.144m0-3.385h11.538q.214 0 .357-.143t.143-.357t-.143-.357t-.357-.143H6.231q-.214 0-.357.143T5.731 12t.143.357t.357.143m0-3.384H14q.214 0 .357-.144q.143-.143.143-.356q0-.214-.143-.357T14 8.116H6.23q-.213 0-.356.143t-.143.357t.143.356t.357.144"/></svg>',accordionMarker:'<svg viewBox="0 0 24 24"><path fill="currentColor" d="m12 15.596l3.173-3.192H8.827zM5.616 20q-.672 0-1.144-.472T4 18.385V5.615q0-.67.472-1.143Q4.944 4 5.616 4h12.769q.67 0 1.143.472q.472.472.472 1.144v12.769q0 .67-.472 1.143q-.472.472-1.143.472zM5 9v9.385q0 .23.192.423t.423.192h12.77q.23 0 .423-.192t.192-.423V9z"/></svg>',caret:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m7.4 8.6 4.6 4.6 4.6-4.6L18 10l-6 6-6-6 1.4-1.4Z"/></svg>',eye:'<svg viewBox="0 0 24 24"><path d="M12 9a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0 8a5 5 0 0 1-5-5 5 5 0 0 1 5-5 5 5 0 0 1 5 5 5 5 0 0 1-5 5m0-12.5C7 4.5 2.7 7.6 1 12a11.8 11.8 0 0 0 22 0c-1.7-4.4-6-7.5-11-7.5Z"/></svg>'},D=(e,t)=>{const{toolbarIconOpen:o=f.eye}=t,r=e.is(l)?e:e.closestType(l);if(!o||!r)return;const{toolbar:s}=e,p={id:"accordion-toggle-open",label:o,command:()=>r.toggleOpen()};!s.find(a=>a.id===p.id)&&(s==null||s.unshift(p))},C=(e,t)=>{const{Components:o,Blocks:r}=e,{block:s={}}=t,p="Accordion",d=`${w}${l}`,a=function(c={}){const i=this,u=()=>{const{clsMarkerOpen:n}=c,h=i.querySelector('[data-type-role="accordion-marker"]');!h||!n||(i.open?h.classList.add(n):h.classList.remove(n))};i.addEventListener("toggle",()=>{u(),i.dispatchEvent(new CustomEvent("details-toggle",{bubbles:!0}))}),u()};return o.addType(l,{block:s&&{label:p,media:f.accordion,category:"Extra",select:!0,...s},isComponent:m(l),extendFn:["initToolbar"],model:{defaults:{tagName:"details",name:p,classes:d,emptyState:!0,clsMarkerOpen:R,attributes:{[q]:l},droppable:G(g,y),components:[{type:g},{type:y}],"script-props":["clsMarkerOpen"],script:a,traits:[{type:"checkbox",name:"open",label:"Open"}],styles:`
2
2
  .${d}::details-content {
3
3
  opacity: 0;
4
4
  block-size: 0;
@@ -15,7 +15,7 @@
15
15
  transform: translateY(0);
16
16
  block-size: auto;
17
17
  }
18
- `},toggleOpen(){this.addAttributes({open:!this.getAttributes().open})},initToolbar(){D(this,t)}}}),()=>{r.remove(l),o.removeType(l)}},C=e=>{const{Components:t}=e;return t.addType(y,{isComponent:m(y),model:{defaults:{name:"Accordion Content",removable:!1,copyable:!1,draggable:!1,emptyState:!0,classes:Y,icon:f.accordionContent,attributes:{[q]:y},components:"<div>Accordion content</div>"}}}),()=>{t.removeType(y)}},J=(e,t)=>{const{Components:o,Blocks:r}=e,{blockGroup:s={}}=t,p="Accordion Group",d=function(c={}){if(!c.single)return;const i=this;i.addEventListener("details-toggle",u=>{const n=u.target;if(!c.single||!n||!n.open)return;i.querySelectorAll('[data-type-role="accordion"]').forEach(x=>{n!==x&&x.open&&(x.open=!1)})})},a=(c={})=>({type:l,attributes:{open:c.open},components:[{type:g,components:[`<div>${c.header}</div>`,{type:b}]},{type:y,components:`<div>${c.content}</div>`}]});return o.addType(P,{block:s&&{label:p,media:f.accordionGroup,category:"Extra",select:!0,...s},isComponent:m(P),model:{defaults:{name:p,attributes:{[q]:P},droppable:G(l),single:!0,emptyState:!0,components:Array(3).fill(0).map((c,i)=>a({open:i===0,header:`Accordion header ${i+1}`,content:`Accordion content ${i+1}`})),traits:[{type:"checkbox",name:"single",changeProp:!0,tip:"Only one accordion can be open at a time",label:"Single open"}],"script-props":["single"],script:d}}}),()=>{r.remove(P),o.removeType(P)}},Q=(e,t)=>{const{Components:o}=e;return o.addType(g,{isComponent:m(g),extendFn:["initToolbar"],model:{defaults:{tagName:"summary",name:"Accordion Header",removable:!1,copyable:!1,draggable:!1,emptyState:!0,icon:f.accordionHeader,classes:L,attributes:{[q]:g},components:["<div>Accordion header</div>",{type:b}],styles:`
18
+ `},toggleOpen(){this.addAttributes({open:!this.getAttributes().open})},initToolbar(){D(this,t)}}}),()=>{r.remove(l),o.removeType(l)}},J=e=>{const{Components:t}=e;return t.addType(y,{isComponent:m(y),model:{defaults:{name:"Accordion Content",removable:!1,copyable:!1,draggable:!1,emptyState:!0,classes:Z,icon:f.accordionContent,attributes:{[q]:y},components:"<div>Accordion content</div>"}}}),()=>{t.removeType(y)}},Q=(e,t)=>{const{Components:o,Blocks:r}=e,{blockGroup:s={}}=t,p="Accordion Group",d=function(c={}){if(!c.single)return;const i=this;i.addEventListener("details-toggle",u=>{const n=u.target;if(!c.single||!n||!n.open)return;i.querySelectorAll('[data-type-role="accordion"]').forEach(P=>{n!==P&&P.open&&(P.open=!1)})})},a=(c={})=>({type:l,attributes:{open:c.open},components:[{type:g,components:[`<div>${c.header}</div>`,{type:b}]},{type:y,components:`<div>${c.content}</div>`}]});return o.addType(x,{block:s&&{label:p,media:f.accordionGroup,category:"Extra",select:!0,...s},isComponent:m(x),model:{defaults:{name:p,attributes:{[q]:x},droppable:G(l),single:!0,emptyState:!0,components:Array(3).fill(0).map((c,i)=>a({open:i===0,header:`Accordion header ${i+1}`,content:`Accordion content ${i+1}`})),traits:[{type:"checkbox",name:"single",changeProp:!0,tip:"Only one accordion can be open at a time",label:"Single open"}],"script-props":["single"],script:d}}}),()=>{r.remove(x),o.removeType(x)}},X=(e,t)=>{const{Components:o}=e;return o.addType(g,{isComponent:m(g),extendFn:["initToolbar"],model:{defaults:{tagName:"summary",name:"Accordion Header",removable:!1,copyable:!1,draggable:!1,emptyState:!0,icon:f.accordionHeader,classes:L,attributes:{[q]:g},components:["<div>Accordion header</div>",{type:b}],styles:`
19
19
  summary {
20
20
  list-style: none;
21
21
  }
@@ -26,7 +26,7 @@
26
26
  justify-content: space-between;
27
27
  gap: 1rem;
28
28
  }
29
- `},initToolbar(){D(this,t)}}}),()=>{o.removeType(g)}},X=e=>{const{Components:t}=e;return t.addType(b,{extend:"icon",isComponent:m(b),model:{defaults:{name:"Accordion Marker",icon:f.accordionMarker,classes:$,attributes:{[q]:b},components:f.caret,droppable:!1,draggable:W(g),styles:`
29
+ `},initToolbar(){D(this,t)}}}),()=>{o.removeType(g)}},S=e=>{const{Components:t}=e;return t.addType(b,{extend:"icon",isComponent:m(b),model:{defaults:{name:"Accordion Marker",icon:f.accordionMarker,classes:$,attributes:{[q]:b},components:f.caret,droppable:!1,draggable:Y(g),styles:`
30
30
  .${$} {
31
31
  min-width: 24px;
32
32
  width: 24px;
@@ -36,4 +36,4 @@
36
36
  .${R} {
37
37
  transform: rotateZ(180deg);
38
38
  }
39
- `}}}),()=>{t.removeType(b)}},S="accordionComponent",ee=A.startup;return V(function(e,t={}){const o=[Z(e,t),J(e,t),Q(e,t),X(e),C(e)];j({editor:e,licenseKey:t.licenseKey,plan:ee,pluginName:S,cleanup:()=>{o.forEach(r=>r())}})})});
39
+ `}}}),()=>{t.removeType(b)}},ee="accordionComponent",te=A.startup;return j(function(e,t={}){const o=[C(e,t),Q(e,t),X(e,t),S(e),J(e)];F({editor:e,licenseKey:t.licenseKey,plan:te,pluginName:ee,cleanup:()=>{o.forEach(r=>r())}})})});
@@ -2,7 +2,7 @@ import { UIMessage } from '@ai-sdk/react';
2
2
  import { ChatOnDataCallback } from 'ai';
3
3
  import { Component, Editor } from 'grapesjs';
4
4
  import { UpdatesFromStream } from './components/utils';
5
- import { AiChatTools, AiChatToolName, AiChatToolsArguments, ChatApi, ChatToolAgentCode, ToolDataAddComponent, ToolDataAddPage, ToolDataAddProjectPage, ToolDataEditComponent, ToolDataTypes } from './types';
5
+ import { AiChatToolName, AiChatTools, AiChatToolsArguments, ChatApi, ChatToolAgentCode, ToolDataAddComponent, ToolDataAddPage, ToolDataAddProjectPage, ToolDataEditComponent, ToolDataTypes } from './types';
6
6
  export interface ToolAddComponentSetupResult {
7
7
  target: Component | undefined;
8
8
  at: number | undefined;
@@ -86,7 +86,6 @@ export declare function processToolAddPage(props: {
86
86
  toolStatusProgress: ToolStatusProgressMap;
87
87
  }): void;
88
88
  export declare function toolAddProjectPageEnd(editor: Editor, content: string, name: string): void;
89
- export declare const commandMjmlToHtml = "mjml-code-to-html";
90
89
  export declare function processToolNewProjectPage(props: {
91
90
  editor: Editor;
92
91
  toolStatus: ToolDataAddProjectPage;
@@ -18,6 +18,7 @@ export declare const renderLayoutComponent: (editor: Editor, components: StudioL
18
18
  export declare function clearGeneratedCode(code: string): string;
19
19
  export declare const updateDomWithStreamContent: (content?: string, el?: HTMLElement, opts?: {
20
20
  skipScroll?: boolean;
21
+ scrollDocument?: boolean;
21
22
  }) => void;
22
23
  export declare const getComponentCodeWithIds: (component?: Component) => string;
23
24
  export declare function setContentStreamStart(editor: Editor): void;
@@ -0,0 +1,11 @@
1
+ import { ProjectContext } from '../types';
2
+ export declare const DEFAULT_TAILWIND_SCRIPT_URL = "https://cdn.tailwindcss.com";
3
+ type TwDevices = ProjectContext['devices'];
4
+ export declare function ensureTailwindPreviewRuntime(props: {
5
+ docHead?: HTMLHeadElement;
6
+ devices: TwDevices;
7
+ moveEditorStyles?: boolean;
8
+ scriptUrl?: string;
9
+ }): void;
10
+ export declare function removeTailwindPreviewRuntime(docHead?: HTMLHeadElement): void;
11
+ export {};