@grapesjs/studio-sdk-plugins 1.0.36 → 1.0.38-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 (97) 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 +5 -5
  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 +85 -85
  8. package/dist/aiChat/index.es.js +11151 -10258
  9. package/dist/aiChat/index.js +85 -85
  10. package/dist/aiChat/index.umd.js +86 -86
  11. package/dist/aiChat/locales/en.d.ts +11 -0
  12. package/dist/aiChat/projectGeneration.d.ts +17 -0
  13. package/dist/aiChat/server/index.cjs.js +1 -1
  14. package/dist/aiChat/server/index.es.js +1 -1
  15. package/dist/aiChat/server/index.js +1 -1
  16. package/dist/aiChat/server/index.umd.js +1 -1
  17. package/dist/aiChat/types.d.ts +1 -1
  18. package/dist/animationComponent/index.cjs.js +3 -3
  19. package/dist/animationComponent/index.es.js +57 -44
  20. package/dist/animationComponent/index.umd.js +3 -3
  21. package/dist/canvasAbsoluteMode/index.cjs.js +1 -1
  22. package/dist/canvasAbsoluteMode/index.es.js +63 -50
  23. package/dist/canvasAbsoluteMode/index.umd.js +1 -1
  24. package/dist/canvasEmptyState/index.cjs.js +1 -1
  25. package/dist/canvasEmptyState/index.es.js +60 -47
  26. package/dist/canvasEmptyState/index.umd.js +1 -1
  27. package/dist/canvasFullSize/index.cjs.js +3 -3
  28. package/dist/canvasFullSize/index.es.js +49 -36
  29. package/dist/canvasFullSize/index.umd.js +5 -5
  30. package/dist/canvasGridMode/index.cjs.js +2 -2
  31. package/dist/canvasGridMode/index.es.js +251 -233
  32. package/dist/canvasGridMode/index.umd.js +4 -4
  33. package/dist/canvasScreenshot/index.cjs.js +1 -1
  34. package/dist/canvasScreenshot/index.es.js +42 -29
  35. package/dist/canvasScreenshot/index.umd.js +1 -1
  36. package/dist/dataSourceEjs/index.cjs.js +3 -3
  37. package/dist/dataSourceEjs/index.es.js +51 -38
  38. package/dist/dataSourceEjs/index.umd.js +3 -3
  39. package/dist/dataSourceHandlebars/index.cjs.js +2 -2
  40. package/dist/dataSourceHandlebars/index.es.js +152 -139
  41. package/dist/dataSourceHandlebars/index.umd.js +4 -4
  42. package/dist/dialogComponent/index.cjs.js +9 -9
  43. package/dist/dialogComponent/index.es.js +73 -60
  44. package/dist/dialogComponent/index.umd.js +3 -3
  45. package/dist/flexComponent/index.cjs.js +6 -6
  46. package/dist/flexComponent/index.es.js +83 -70
  47. package/dist/flexComponent/index.umd.js +6 -6
  48. package/dist/fsLightboxComponent/index.cjs.js +2 -2
  49. package/dist/fsLightboxComponent/index.es.js +67 -54
  50. package/dist/fsLightboxComponent/index.umd.js +2 -2
  51. package/dist/googleFontsAssetProvider/index.cjs.js +1 -1
  52. package/dist/googleFontsAssetProvider/index.es.js +92 -79
  53. package/dist/googleFontsAssetProvider/index.umd.js +1 -1
  54. package/dist/iconifyComponent/index.cjs.js +2 -2
  55. package/dist/iconifyComponent/index.es.js +52 -39
  56. package/dist/iconifyComponent/index.umd.js +2 -2
  57. package/dist/index.cjs.js +42 -42
  58. package/dist/index.es.js +1167 -1149
  59. package/dist/index.umd.js +42 -42
  60. package/dist/layoutSidebarButtons/index.cjs.js +1 -1
  61. package/dist/layoutSidebarButtons/index.es.js +82 -69
  62. package/dist/layoutSidebarButtons/index.umd.js +1 -1
  63. package/dist/lightGalleryComponent/index.cjs.js +1 -1
  64. package/dist/lightGalleryComponent/index.es.js +98 -85
  65. package/dist/lightGalleryComponent/index.umd.js +1 -1
  66. package/dist/linkImageComponent/index.cjs.js +2 -2
  67. package/dist/linkImageComponent/index.es.js +71 -58
  68. package/dist/linkImageComponent/index.umd.js +2 -2
  69. package/dist/listPagesComponent/index.cjs.js +3 -3
  70. package/dist/listPagesComponent/index.es.js +49 -36
  71. package/dist/listPagesComponent/index.umd.js +3 -3
  72. package/dist/presetPrintable/index.cjs.js +5 -5
  73. package/dist/presetPrintable/index.es.js +126 -113
  74. package/dist/presetPrintable/index.umd.js +4 -4
  75. package/dist/prosemirror/index.cjs.js +1 -1
  76. package/dist/prosemirror/index.es.js +97 -84
  77. package/dist/prosemirror/index.umd.js +1 -1
  78. package/dist/rendererReact/index.cjs.js +1 -1
  79. package/dist/rendererReact/index.es.js +149 -137
  80. package/dist/rendererReact/index.js +1 -1
  81. package/dist/rendererReact/index.umd.js +1 -1
  82. package/dist/rteTinyMce/index.cjs.js +2 -2
  83. package/dist/rteTinyMce/index.es.js +92 -79
  84. package/dist/rteTinyMce/index.umd.js +2 -2
  85. package/dist/shapeDividerComponent/index.cjs.js +3 -3
  86. package/dist/shapeDividerComponent/index.es.js +38 -25
  87. package/dist/shapeDividerComponent/index.umd.js +3 -3
  88. package/dist/swiperComponent/index.cjs.js +5 -5
  89. package/dist/swiperComponent/index.es.js +106 -93
  90. package/dist/swiperComponent/index.umd.js +5 -5
  91. package/dist/tableComponent/index.cjs.js +1 -1
  92. package/dist/tableComponent/index.es.js +167 -154
  93. package/dist/tableComponent/index.umd.js +1 -1
  94. package/dist/youtubeAssetProvider/index.cjs.js +1 -1
  95. package/dist/youtubeAssetProvider/index.es.js +35 -22
  96. package/dist/youtubeAssetProvider/index.umd.js +1 -1
  97. 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",E=[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&&(E.includes(e)||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.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||{});const $={[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=$[t],H=$[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 J({licenseKey:r,pluginName:o,baseApiUrl:d});u(n)}else c("The `licenseKey` option not provided")});return}if(a.licensePlan||a.licenseError){const n=C(a);u(n);return}e.on(U,n=>u(n))}const C=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 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)),Q=(...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}`,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))},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:X,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:Q(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;
@@ -1,4 +1,4 @@
1
- const L = "app.grapesjs.com", O = "app-stage.grapesjs.com", z = "app2.grapesjs.com", N = "app-stage2.grapesjs.com", $ = [
1
+ const L = "app.grapesjs.com", O = "app-stage.grapesjs.com", z = "app2.grapesjs.com", N = "app-stage2.grapesjs.com", E = [
2
2
  L,
3
3
  z,
4
4
  O,
@@ -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;
20
- return !!e && ($.includes(e) || $.some((t) => e.endsWith(t)));
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();
33
+ return !!e && (E.includes(e) || 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 || {});
44
- const E = {
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.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 || {});
57
+ const $ = {
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,37 +78,37 @@ 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 = $[t], H = $[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
97
  const n = await J({ licenseKey: r, pluginName: o, baseApiUrl: d });
85
- g(n);
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 = C(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 C = (e) => ({
99
112
  sdkLicense: e.license,
100
113
  license: e.license,
101
114
  error: e.licenseError,
@@ -104,7 +117,7 @@ const Z = (e) => ({
104
117
  async function J(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)), Q = (...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}`, X = `${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",
@@ -217,7 +230,7 @@ const P = (e) => (t) => {
217
230
  draggable: !1,
218
231
  emptyState: !0,
219
232
  classes: X,
220
- icon: f.accordionContent,
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: Q(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",$=[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&&($.includes(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.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))(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}`,E=`${w}${b}`,Z=`${w}${y}`,R=`${E}-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,8 +26,8 @@
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:`
30
- .${$} {
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:E,attributes:{[q]:b},components:f.caret,droppable:!1,draggable:Y(g),styles:`
30
+ .${E} {
31
31
  min-width: 24px;
32
32
  width: 24px;
33
33
  height: 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 {};