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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/dist/accordionComponent/index.cjs.js +5 -5
  2. package/dist/accordionComponent/index.es.js +70 -67
  3. package/dist/accordionComponent/index.js +39 -0
  4. package/dist/accordionComponent/index.umd.js +4 -4
  5. package/dist/aiChat/components/AiChatHeader.d.ts +4 -5
  6. package/dist/aiChat/components/AiChatInput/index.d.ts +4 -5
  7. package/dist/aiChat/components/AiChatMessage.d.ts +7 -8
  8. package/dist/aiChat/components/index.d.ts +1 -1
  9. package/dist/aiChat/components/utils.d.ts +1 -1
  10. package/dist/aiChat/index.cjs.js +10 -376
  11. package/dist/aiChat/index.es.js +4569 -28851
  12. package/dist/aiChat/index.js +10 -376
  13. package/dist/aiChat/index.umd.js +11 -377
  14. package/dist/aiChat/server/index.cjs.d.ts +0 -1
  15. package/dist/aiChat/server/index.cjs.js +45 -45
  16. package/dist/aiChat/server/index.d.ts +0 -1
  17. package/dist/aiChat/server/index.es.d.ts +0 -1
  18. package/dist/aiChat/server/index.es.js +371 -427
  19. package/dist/aiChat/server/index.js +45 -45
  20. package/dist/aiChat/server/index.umd.js +41 -41
  21. package/dist/aiChat/server/stream.test.d.ts +1 -0
  22. package/dist/aiChat/types.d.ts +18 -4
  23. package/dist/aiChat/typesSchema.d.ts +13 -0
  24. package/dist/animationComponent/index.cjs.js +3 -3
  25. package/dist/animationComponent/index.es.js +49 -46
  26. package/dist/animationComponent/index.js +519 -0
  27. package/dist/animationComponent/index.umd.js +3 -3
  28. package/dist/canvasAbsoluteMode/index.cjs.js +1 -1
  29. package/dist/canvasAbsoluteMode/index.es.js +115 -112
  30. package/dist/canvasAbsoluteMode/index.js +1 -0
  31. package/dist/canvasAbsoluteMode/index.umd.js +1 -1
  32. package/dist/canvasEmptyState/index.cjs.js +1 -1
  33. package/dist/canvasEmptyState/index.es.js +71 -68
  34. package/dist/canvasEmptyState/index.js +1 -0
  35. package/dist/canvasEmptyState/index.umd.js +1 -1
  36. package/dist/canvasFullSize/index.cjs.js +3 -3
  37. package/dist/canvasFullSize/index.es.js +69 -66
  38. package/dist/canvasFullSize/index.js +10 -0
  39. package/dist/canvasFullSize/index.umd.js +4 -4
  40. package/dist/canvasGridMode/index.cjs.js +7 -7
  41. package/dist/canvasGridMode/index.es.js +142 -139
  42. package/dist/canvasGridMode/index.js +26 -0
  43. package/dist/canvasGridMode/index.umd.js +7 -7
  44. package/dist/canvasScreenshot/index.cjs.js +1 -1
  45. package/dist/canvasScreenshot/index.es.js +78 -75
  46. package/dist/canvasScreenshot/index.js +1 -0
  47. package/dist/canvasScreenshot/index.umd.js +1 -1
  48. package/dist/dataSourceEjs/EjsExporter.d.ts +1 -1
  49. package/dist/dataSourceEjs/index.cjs.js +3 -3
  50. package/dist/dataSourceEjs/index.es.js +40 -37
  51. package/dist/dataSourceEjs/index.js +21 -0
  52. package/dist/dataSourceEjs/index.umd.js +3 -3
  53. package/dist/dataSourceHandlebars/HandlebarsExporter.d.ts +2 -2
  54. package/dist/dataSourceHandlebars/constants.d.ts +1 -1
  55. package/dist/dataSourceHandlebars/index.cjs.js +4 -4
  56. package/dist/dataSourceHandlebars/index.es.js +58 -55
  57. package/dist/dataSourceHandlebars/index.js +10 -0
  58. package/dist/dataSourceHandlebars/index.umd.js +2 -2
  59. package/dist/dialogComponent/index.cjs.js +11 -11
  60. package/dist/dialogComponent/index.es.js +72 -69
  61. package/dist/dialogComponent/index.js +59 -0
  62. package/dist/dialogComponent/index.umd.js +11 -11
  63. package/dist/flexComponent/index.cjs.js +6 -6
  64. package/dist/flexComponent/index.es.js +151 -142
  65. package/dist/flexComponent/index.js +33 -0
  66. package/dist/flexComponent/index.umd.js +8 -8
  67. package/dist/flexComponent/typesSchema.d.ts +1 -1
  68. package/dist/fsLightboxComponent/index.cjs.js +3 -3
  69. package/dist/fsLightboxComponent/index.es.js +93 -90
  70. package/dist/fsLightboxComponent/index.js +6 -0
  71. package/dist/fsLightboxComponent/index.umd.js +3 -3
  72. package/dist/googleFontsAssetProvider/index.cjs.js +1 -1
  73. package/dist/googleFontsAssetProvider/index.es.js +112 -109
  74. package/dist/googleFontsAssetProvider/index.js +1 -0
  75. package/dist/googleFontsAssetProvider/index.umd.js +1 -1
  76. package/dist/googleFontsAssetProvider/utils.d.ts +1 -1
  77. package/dist/iconifyComponent/index.cjs.js +2 -2
  78. package/dist/iconifyComponent/index.es.js +80 -77
  79. package/dist/iconifyComponent/index.js +3 -0
  80. package/dist/iconifyComponent/index.umd.js +2 -2
  81. package/dist/index.cjs.d.ts +1 -0
  82. package/dist/index.cjs.js +970 -82
  83. package/dist/index.d.ts +1 -0
  84. package/dist/index.es.d.ts +1 -0
  85. package/dist/index.es.js +7422 -6145
  86. package/dist/index.umd.js +975 -87
  87. package/dist/layoutSidebarButtons/index.cjs.js +1 -1
  88. package/dist/layoutSidebarButtons/index.es.js +95 -92
  89. package/dist/layoutSidebarButtons/index.js +1 -0
  90. package/dist/layoutSidebarButtons/index.umd.js +1 -1
  91. package/dist/lightGalleryComponent/index.cjs.js +1 -1
  92. package/dist/lightGalleryComponent/index.es.js +164 -161
  93. package/dist/lightGalleryComponent/index.js +1 -0
  94. package/dist/lightGalleryComponent/index.umd.js +1 -1
  95. package/dist/lightGalleryComponent/utils.d.ts +1 -1
  96. package/dist/linkImageComponent/index.cjs.js +2 -2
  97. package/dist/linkImageComponent/index.es.js +60 -57
  98. package/dist/linkImageComponent/index.js +12 -0
  99. package/dist/linkImageComponent/index.umd.js +2 -2
  100. package/dist/listPagesComponent/index.cjs.js +4 -4
  101. package/dist/listPagesComponent/index.es.js +57 -54
  102. package/dist/listPagesComponent/index.js +11 -0
  103. package/dist/listPagesComponent/index.umd.js +4 -4
  104. package/dist/listPagesComponent/utils.d.ts +1 -1
  105. package/dist/presetBlockLibrary/blocks.d.ts +6 -0
  106. package/dist/presetBlockLibrary/blocks.test.d.ts +2 -0
  107. package/dist/presetBlockLibrary/emailBlocks.d.ts +53 -0
  108. package/dist/presetBlockLibrary/index.cjs.d.ts +3 -0
  109. package/dist/presetBlockLibrary/index.cjs.js +889 -0
  110. package/dist/presetBlockLibrary/index.d.ts +3 -0
  111. package/dist/presetBlockLibrary/index.es.d.ts +3 -0
  112. package/dist/presetBlockLibrary/index.es.js +1408 -0
  113. package/dist/presetBlockLibrary/index.js +889 -0
  114. package/dist/presetBlockLibrary/index.test.d.ts +1 -0
  115. package/dist/presetBlockLibrary/index.umd.js +889 -0
  116. package/dist/presetBlockLibrary/shared.d.ts +3 -0
  117. package/dist/presetBlockLibrary/types.d.ts +24 -0
  118. package/dist/presetBlockLibrary/typesSchema.d.ts +47 -0
  119. package/dist/presetPrintable/index.cjs.js +3 -3
  120. package/dist/presetPrintable/index.es.js +133 -130
  121. package/dist/presetPrintable/index.js +32 -0
  122. package/dist/presetPrintable/index.umd.js +4 -4
  123. package/dist/prosemirror/index.cjs.js +8 -8
  124. package/dist/prosemirror/index.es.js +552 -549
  125. package/dist/prosemirror/index.js +10 -0
  126. package/dist/prosemirror/index.umd.js +9 -9
  127. package/dist/prosemirror/toolbar.d.ts +2 -2
  128. package/dist/prosemirror/types.d.ts +5 -5
  129. package/dist/rendererReact/index.cjs.js +1 -1
  130. package/dist/rendererReact/index.es.js +137 -134
  131. package/dist/rendererReact/index.js +1 -1
  132. package/dist/rendererReact/index.umd.js +1 -1
  133. package/dist/rteTinyMce/index.cjs.js +2 -2
  134. package/dist/rteTinyMce/index.es.js +74 -71
  135. package/dist/rteTinyMce/index.js +104 -0
  136. package/dist/rteTinyMce/index.umd.js +2 -2
  137. package/dist/shapeDividerComponent/index.cjs.js +4 -4
  138. package/dist/shapeDividerComponent/index.es.js +91 -88
  139. package/dist/shapeDividerComponent/index.js +97 -0
  140. package/dist/shapeDividerComponent/index.umd.js +4 -4
  141. package/dist/swiperComponent/index.cjs.js +7 -7
  142. package/dist/swiperComponent/index.es.js +95 -92
  143. package/dist/swiperComponent/index.js +45 -0
  144. package/dist/swiperComponent/index.umd.js +5 -5
  145. package/dist/tableComponent/index.cjs.js +1 -1
  146. package/dist/tableComponent/index.es.js +181 -178
  147. package/dist/tableComponent/index.js +1 -0
  148. package/dist/tableComponent/index.umd.js +1 -1
  149. package/dist/tableComponent/types.d.ts +3 -3
  150. package/dist/types.d.ts +14 -14
  151. package/dist/utils.d.ts +3 -2
  152. package/dist/utilsDataSources.d.ts +1 -1
  153. package/dist/youtubeAssetProvider/index.cjs.js +1 -1
  154. package/dist/youtubeAssetProvider/index.es.js +90 -87
  155. package/dist/youtubeAssetProvider/index.js +1 -0
  156. package/dist/youtubeAssetProvider/index.umd.js +1 -1
  157. package/package.json +182 -34
  158. package/dist/aiChat/server/models.d.ts +0 -15
@@ -1,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",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:`
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",V=()=>typeof window<"u",j=({isDev:e,isStage:t,isPlatform:o})=>`${e?"":`https://${t?O:L}`}/${o?"platform-api":"api"}`,F=()=>{if(!V())return"";const{hostname:e}=window.location;if(e)return e;try{return window.parent.location.hostname||""}catch{return""}},K=()=>{const e=F();return!!e&&(E.includes(e)||E.some(t=>e.endsWith(t)))};async function W({path:e,baseApiUrl:t,method:o="GET",headers:r={},params:s,body:l}){const a=`${t||j({isDev:!1,isStage:!1})}${e}`,c={method:o,headers:{"Content-Type":"application/json",...r}};l&&(c.body=JSON.stringify(l));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||{}),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.openBlocks="studio:openBlocks",e.appendComponent="studio:appendComponent",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.settings="studio:settings",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(k||{});const $={[h.free]:0,[h.startup]:10,[h.business]:20,[h.enterprise]:30};function Y(e,t){const o=e;return o.init=r=>{const s=l=>e(l,r);return s.__gjsPluginId=t,s},o}const Z=(e,t)=>Y(e,t);async function C({editor:e,plan:t,pluginName:o,licenseKey:r,onLicenseCheckResponse:s,cleanup:l}){let d="",a;const c=n=>{console.warn("Cleanup plugin:",o,"Reason:",n),l(e,o)},i=(n={})=>{var M;const{error:b,sdkLicense:A}=n,P=(M=n.plan)==null?void 0:M.category;if(!(A||n.license)||b)c(b||"Invalid license");else if(P){const H=$[t],_=$[P];H>_&&c({pluginRequiredPlan:t,licensePlan:P})}};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(!K())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 W({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 w=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",p="accordion",q=`${p}-group`,g=`${p}-header`,y=`${p}-content`,v=`${p}-marker`,G=`${x}${g}`,m=`${x}${v}`,S=`${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(p)?e:e.closestType(p);if(!o||!r)return;const{toolbar:s}=e,l={id:"accordion-toggle-open",label:o,command:()=>r.toggleOpen()};!s.find(a=>a.id===l.id)&&(s==null||s.unshift(l))},ee=(e,t)=>{const{Components:o,Blocks:r}=e,{block:s={}}=t,l="Accordion",d=`${x}${p}`,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(p,{block:s&&{label:l,media:f.accordion,category:"Extra",select:!0,...s},isComponent:w(p),extendFn:["initToolbar"],model:{defaults:{tagName:"details",name:l,classes:d,emptyState:!0,clsMarkerOpen:B,attributes:{[T]:p},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)}},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:`
18
+ `},toggleOpen(){this.addAttributes({open:!this.getAttributes().open})},initToolbar(){D(this,t)}}}),()=>{r.remove(p),o.removeType(p)}},te=e=>{const{Components:t}=e;return t.addType(y,{isComponent:w(y),model:{defaults:{name:"Accordion Content",removable:!1,copyable:!1,draggable:!1,emptyState:!0,classes:S,icon:f.accordionContent,attributes:{[T]:y},components:"<div>Accordion content</div>"}}}),()=>{t.removeType(y)}},oe=(e,t)=>{const{Components:o,Blocks:r}=e,{blockGroup:s={}}=t,l="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:p,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:l,media:f.accordionGroup,category:"Extra",select:!0,...s},isComponent:w(q),model:{defaults:{name:l,attributes:{[T]:q},droppable:R(p),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)}},ne=(e,t)=>{const{Components:o}=e;return o.addType(g,{isComponent:w(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,8 +26,8 @@
26
26
  justify-content: space-between;
27
27
  gap: 1rem;
28
28
  }
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
- .${M} {
29
+ `},initToolbar(){D(this,t)}}}),()=>{o.removeType(g)}},se=e=>{const{Components:t}=e;return t.addType(v,{extend:"icon",isComponent:w(v),model:{defaults:{name:"Accordion Marker",icon:f.accordionMarker,classes:m,attributes:{[T]:v},components:f.caret,droppable:!1,draggable:X(g),styles:`
30
+ .${m} {
31
31
  min-width: 24px;
32
32
  width: 24px;
33
33
  height: 24px;
@@ -36,4 +36,4 @@
36
36
  .${B} {
37
37
  transform: rotateZ(180deg);
38
38
  }
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;
39
+ `}}}),()=>{t.removeType(v)}},I="accordionComponent",re=h.startup,ae=function(e,t={}){const o=[ee(e,t),oe(e,t),ne(e,t),se(e),te(e)];C({editor:e,licenseKey:t.licenseKey,plan:re,pluginName:I,cleanup:()=>{o.forEach(r=>r())}})},ce=Z(ae,I);module.exports=ce;
@@ -15,12 +15,12 @@ const L = "app.grapesjs.com", O = "app-stage.grapesjs.com", z = "app2.grapesjs.c
15
15
  // For Claude mcp app
16
16
  ".web-sandbox.oaiusercontent.com"
17
17
  // For OpenAI mcp app
18
- ], U = "license:check:end", _ = () => typeof window < "u", V = ({
18
+ ], U = "license:check:end", V = () => typeof window < "u", j = ({
19
19
  isDev: e,
20
20
  isStage: t,
21
21
  isPlatform: o
22
- }) => `${e ? "" : `https://${t ? O : L}`}/${o ? "platform-api" : "api"}`, j = () => {
23
- if (!_()) return "";
22
+ }) => `${e ? "" : `https://${t ? O : L}`}/${o ? "platform-api" : "api"}`, F = () => {
23
+ if (!V()) return "";
24
24
  const { hostname: e } = window.location;
25
25
  if (e) return e;
26
26
  try {
@@ -28,73 +28,76 @@ const L = "app.grapesjs.com", O = "app-stage.grapesjs.com", z = "app2.grapesjs.c
28
28
  } catch {
29
29
  return "";
30
30
  }
31
- }, F = () => {
32
- const e = j();
31
+ }, K = () => {
32
+ const e = F();
33
33
  return !!e && (E.includes(e) || E.some((t) => e.endsWith(t)));
34
34
  };
35
- async function K({
35
+ async function W({
36
36
  path: e,
37
37
  baseApiUrl: t,
38
38
  method: o = "GET",
39
39
  headers: r = {},
40
40
  params: s,
41
- body: p
41
+ body: l
42
42
  }) {
43
- const a = `${t || V({ isDev: !1, isStage: !1 })}${e}`, c = {
43
+ const a = `${t || j({ isDev: !1, isStage: !1 })}${e}`, c = {
44
44
  method: o,
45
45
  headers: {
46
46
  "Content-Type": "application/json",
47
47
  ...r
48
48
  }
49
49
  };
50
- p && (c.body = JSON.stringify(p));
50
+ l && (c.body = JSON.stringify(l));
51
51
  const i = s ? new URLSearchParams(s).toString() : "", u = i ? `?${i}` : "", n = await fetch(`${a}${u}`, c);
52
52
  if (!n.ok)
53
53
  throw new Error(`HTTP error! status: ${n.status}`);
54
54
  return n.json();
55
55
  }
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 || {});
56
+ var h = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(h || {}), k = /* @__PURE__ */ ((e) => (e.toastAdd = "studio:toastAdd", e.toastRemove = "studio:toastRemove", e.dialogOpen = "studio:dialogOpen", e.dialogClose = "studio:dialogClose", e.dialogExportCode = "studio:dialogExportCode", e.dialogImportCode = "studio:dialogImportCode", e.openEditCode = "studio:openEditCode", e.openBlocks = "studio:openBlocks", e.appendComponent = "studio:appendComponent", e.sidebarLeftSet = "studio:sidebarLeft:set", e.sidebarLeftGet = "studio:sidebarLeft:get", e.sidebarLeftToggle = "studio:sidebarLeft:toggle", e.sidebarRightSet = "studio:sidebarRight:set", e.sidebarRightGet = "studio:sidebarRight:get", e.sidebarRightToggle = "studio:sidebarRight:toggle", e.sidebarTopSet = "studio:sidebarTop:set", e.sidebarTopGet = "studio:sidebarTop:get", e.sidebarTopToggle = "studio:sidebarTop:toggle", e.sidebarBottomSet = "studio:sidebarBottom:set", e.sidebarBottomGet = "studio:sidebarBottom:get", e.sidebarBottomToggle = "studio:sidebarBottom:toggle", e.symbolAdd = "studio:symbolAdd", e.symbolDetach = "studio:symbolDetach", e.symbolOverride = "studio:symbolOverride", e.symbolPropagateStyles = "studio:propagateStyles", e.getPagesConfig = "studio:getPagesConfig", e.setPagesConfig = "studio:setPagesConfig", e.getPageSettings = "studio:getPageSettings", e.setPageSettings = "studio:setPageSettings", e.clearPage = "studio:clearPage", e.projectFiles = "studio:projectFiles", e.validateCode = "studio:validateCode", e.canvasReload = "studio:canvasReload", e.getBlocksPanel = "studio:getBlocksPanel", e.setBlocksPanel = "studio:setBlocksPanel", e.getStateContextMenu = "studio:getStateContextMenu", e.setStateContextMenu = "studio:setStateContextMenu", e.contextMenuComponent = "studio:contextMenuComponent", e.layoutAdd = "studio:layoutAdd", e.layoutRemove = "studio:layoutRemove", e.layoutToggle = "studio:layoutToggle", e.layoutUpdate = "studio:layoutUpdate", e.layoutGet = "studio:layoutGet", e.layoutConfigGet = "studio:layoutConfigGet", e.layoutConfigSet = "studio:layoutConfigSet", e.layoutComponentAdd = "studio:layoutComponentAdd", e.layoutComponentGet = "studio:layoutComponentGet", e.layoutComponentRemove = "studio:layoutComponentRemove", e.layoutComponentRender = "studio:layoutComponentRender", e.getStateTheme = "studio:getStateTheme", e.setStateTheme = "studio:setStateTheme", e.settings = "studio:settings", e.assetProviderGet = "studio:assetProviderGet", e.assetProviderAdd = "studio:assetProviderAdd", e.assetProviderRemove = "studio:assetProviderRemove", e.fontGet = "studio:fontGet", e.fontAdd = "studio:fontAdd", e.fontRemove = "studio:fontRemove", e.fontManagerOpen = "studio:fontManagerOpen", e.menuFontLoad = "studio:menuFontLoad", e.toggleStateDataSource = "studio:toggleStateDataSource", e.getStateDataSource = "studio:getStateDataSource", e.dataSourceSetGlobalData = "studio:dataSourceSetGlobalData", e.dataSourceSetImporter = "studio:dataSourceSetImporter", e.dataSourceSetExporter = "studio:dataSourceSetExporter", e.setDragAbsolute = "studio:setDragAbsolute", e))(k || {});
57
57
  const $ = {
58
58
  [h.free]: 0,
59
59
  [h.startup]: 10,
60
60
  [h.business]: 20,
61
61
  [h.enterprise]: 30
62
62
  };
63
- function W(e) {
64
- const t = e;
65
- return t.init = (o) => (r) => e(r, o), t;
63
+ function Y(e, t) {
64
+ const o = e;
65
+ return o.init = (r) => {
66
+ const s = (l) => e(l, r);
67
+ return s.__gjsPluginId = t, s;
68
+ }, o;
66
69
  }
67
- const Y = (e) => /* @__PURE__ */ W(e);
68
- async function Z({
70
+ const Z = (e, t) => /* @__PURE__ */ Y(e, t);
71
+ async function C({
69
72
  editor: e,
70
73
  plan: t,
71
74
  pluginName: o,
72
75
  licenseKey: r,
73
76
  onLicenseCheckResponse: s,
74
- cleanup: p
77
+ cleanup: l
75
78
  }) {
76
79
  let d = "", a;
77
80
  const c = (n) => {
78
- console.warn("Cleanup plugin:", o, "Reason:", n), p();
81
+ console.warn("Cleanup plugin:", o, "Reason:", n), l(e, o);
79
82
  }, i = (n = {}) => {
80
- var k;
81
- const { error: b, sdkLicense: A } = n, w = (k = n.plan) == null ? void 0 : k.category;
83
+ var M;
84
+ const { error: b, sdkLicense: A } = n, P = (M = n.plan) == null ? void 0 : M.category;
82
85
  if (!(A || n.license) || b)
83
86
  c(b || "Invalid license");
84
- else if (w) {
85
- const I = $[t], H = $[w];
86
- I > H && c({ pluginRequiredPlan: t, licensePlan: w });
87
+ else if (P) {
88
+ const H = $[t], _ = $[P];
89
+ H > _ && c({ pluginRequiredPlan: t, licensePlan: P });
87
90
  }
88
91
  };
89
- e.Commands.has(P.settings) && (a = e.runCommand(P.settings), d = (a == null ? void 0 : a.baseUrl) || "");
92
+ e.Commands.has(k.settings) && (a = e.runCommand(k.settings), d = (a == null ? void 0 : a.baseUrl) || "");
90
93
  const u = (n) => {
91
94
  s == null || s(n), n && i(n);
92
95
  };
93
96
  if (!a) {
94
97
  e.onReady(async () => {
95
- if (!F())
98
+ if (!K())
96
99
  if (r) {
97
- const n = await J({ licenseKey: r, pluginName: o, baseApiUrl: d });
100
+ const n = await Q({ licenseKey: r, pluginName: o, baseApiUrl: d });
98
101
  u(n);
99
102
  } else
100
103
  c("The `licenseKey` option not provided");
@@ -102,22 +105,22 @@ async function Z({
102
105
  return;
103
106
  }
104
107
  if (a.licensePlan || a.licenseError) {
105
- const n = C(a);
108
+ const n = J(a);
106
109
  u(n);
107
110
  return;
108
111
  }
109
112
  e.on(U, (n) => u(n));
110
113
  }
111
- const C = (e) => ({
114
+ const J = (e) => ({
112
115
  sdkLicense: e.license,
113
116
  license: e.license,
114
117
  error: e.licenseError,
115
118
  plan: e.licensePlan
116
119
  });
117
- async function J(e) {
120
+ async function Q(e) {
118
121
  const { licenseKey: t, pluginName: o, baseApiUrl: r } = e;
119
122
  try {
120
- return (await K({
123
+ return (await W({
121
124
  baseApiUrl: r,
122
125
  path: `/sdk/${t || "na"}`,
123
126
  method: "POST",
@@ -130,10 +133,10 @@ async function J(e) {
130
133
  return console.error("Error during SDK license check:", s), !1;
131
134
  }
132
135
  }
133
- const m = (e) => (t) => {
136
+ const w = (e) => (t) => {
134
137
  var o;
135
138
  return ((o = t.getAttribute) == null ? void 0 : o.call(t, T)) === e;
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 = {
139
+ }, 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", p = "accordion", q = `${p}-group`, g = `${p}-header`, y = `${p}-content`, f = `${p}-marker`, G = `${x}${g}`, m = `${x}${f}`, S = `${x}${y}`, B = `${m}-open`, v = {
137
140
  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>',
138
141
  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>',
139
142
  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>',
@@ -142,16 +145,16 @@ const m = (e) => (t) => {
142
145
  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>',
143
146
  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>'
144
147
  }, D = (e, t) => {
145
- const { toolbarIconOpen: o = v.eye } = t, r = e.is(l) ? e : e.closestType(l);
148
+ const { toolbarIconOpen: o = v.eye } = t, r = e.is(p) ? e : e.closestType(p);
146
149
  if (!o || !r) return;
147
- const { toolbar: s } = e, p = {
150
+ const { toolbar: s } = e, l = {
148
151
  id: "accordion-toggle-open",
149
152
  label: o,
150
153
  command: () => r.toggleOpen()
151
154
  };
152
- !s.find((a) => a.id === p.id) && (s == null || s.unshift(p));
153
- }, S = (e, t) => {
154
- const { Components: o, Blocks: r } = e, { block: s = {} } = t, p = "Accordion", d = `${x}${l}`, a = function(c = {}) {
155
+ !s.find((a) => a.id === l.id) && (s == null || s.unshift(l));
156
+ }, ee = (e, t) => {
157
+ const { Components: o, Blocks: r } = e, { block: s = {} } = t, l = "Accordion", d = `${x}${p}`, a = function(c = {}) {
155
158
  const i = this, u = () => {
156
159
  const { clsMarkerOpen: n } = c, b = i.querySelector('[data-type-role="accordion-marker"]');
157
160
  !b || !n || (i.open ? b.classList.add(n) : b.classList.remove(n));
@@ -160,24 +163,24 @@ const m = (e) => (t) => {
160
163
  u(), i.dispatchEvent(new CustomEvent("details-toggle", { bubbles: !0 }));
161
164
  }), u();
162
165
  };
163
- return o.addType(l, {
166
+ return o.addType(p, {
164
167
  block: s && {
165
- label: p,
168
+ label: l,
166
169
  media: v.accordion,
167
170
  category: "Extra",
168
171
  select: !0,
169
172
  ...s
170
173
  },
171
- isComponent: m(l),
174
+ isComponent: w(p),
172
175
  extendFn: ["initToolbar"],
173
176
  model: {
174
177
  defaults: {
175
178
  tagName: "details",
176
- name: p,
179
+ name: l,
177
180
  classes: d,
178
181
  emptyState: !0,
179
182
  clsMarkerOpen: B,
180
- attributes: { [T]: l },
183
+ attributes: { [T]: p },
181
184
  droppable: R(g, y),
182
185
  components: [{ type: g }, { type: y }],
183
186
  "script-props": ["clsMarkerOpen"],
@@ -216,12 +219,12 @@ const m = (e) => (t) => {
216
219
  }
217
220
  }
218
221
  }), () => {
219
- r.remove(l), o.removeType(l);
222
+ r.remove(p), o.removeType(p);
220
223
  };
221
- }, ee = (e) => {
224
+ }, te = (e) => {
222
225
  const { Components: t } = e;
223
226
  return t.addType(y, {
224
- isComponent: m(y),
227
+ isComponent: w(y),
225
228
  model: {
226
229
  defaults: {
227
230
  name: "Accordion Content",
@@ -229,7 +232,7 @@ const m = (e) => (t) => {
229
232
  copyable: !1,
230
233
  draggable: !1,
231
234
  emptyState: !0,
232
- classes: X,
235
+ classes: S,
233
236
  icon: v.accordionContent,
234
237
  attributes: { [T]: y },
235
238
  components: "<div>Accordion content</div>"
@@ -238,8 +241,8 @@ const m = (e) => (t) => {
238
241
  }), () => {
239
242
  t.removeType(y);
240
243
  };
241
- }, te = (e, t) => {
242
- const { Components: o, Blocks: r } = e, { blockGroup: s = {} } = t, p = "Accordion Group", d = function(c = {}) {
244
+ }, oe = (e, t) => {
245
+ const { Components: o, Blocks: r } = e, { blockGroup: s = {} } = t, l = "Accordion Group", d = function(c = {}) {
243
246
  if (!c.single) return;
244
247
  const i = this;
245
248
  i.addEventListener("details-toggle", (u) => {
@@ -250,7 +253,7 @@ const m = (e) => (t) => {
250
253
  });
251
254
  });
252
255
  }, a = (c = {}) => ({
253
- type: l,
256
+ type: p,
254
257
  attributes: { open: c.open },
255
258
  components: [
256
259
  {
@@ -265,18 +268,18 @@ const m = (e) => (t) => {
265
268
  });
266
269
  return o.addType(q, {
267
270
  block: s && {
268
- label: p,
271
+ label: l,
269
272
  media: v.accordionGroup,
270
273
  category: "Extra",
271
274
  select: !0,
272
275
  ...s
273
276
  },
274
- isComponent: m(q),
277
+ isComponent: w(q),
275
278
  model: {
276
279
  defaults: {
277
- name: p,
280
+ name: l,
278
281
  attributes: { [T]: q },
279
- droppable: R(l),
282
+ droppable: R(p),
280
283
  single: !0,
281
284
  emptyState: !0,
282
285
  components: Array(3).fill(0).map(
@@ -302,10 +305,10 @@ const m = (e) => (t) => {
302
305
  }), () => {
303
306
  r.remove(q), o.removeType(q);
304
307
  };
305
- }, oe = (e, t) => {
308
+ }, ne = (e, t) => {
306
309
  const { Components: o } = e;
307
310
  return o.addType(g, {
308
- isComponent: m(g),
311
+ isComponent: w(g),
309
312
  extendFn: ["initToolbar"],
310
313
  model: {
311
314
  defaults: {
@@ -339,22 +342,22 @@ const m = (e) => (t) => {
339
342
  }), () => {
340
343
  o.removeType(g);
341
344
  };
342
- }, ne = (e) => {
345
+ }, se = (e) => {
343
346
  const { Components: t } = e;
344
347
  return t.addType(f, {
345
348
  extend: "icon",
346
- isComponent: m(f),
349
+ isComponent: w(f),
347
350
  model: {
348
351
  defaults: {
349
352
  name: "Accordion Marker",
350
353
  icon: v.accordionMarker,
351
- classes: M,
354
+ classes: m,
352
355
  attributes: { [T]: f },
353
356
  components: v.caret,
354
357
  droppable: !1,
355
- draggable: Q(g),
358
+ draggable: X(g),
356
359
  styles: `
357
- .${M} {
360
+ .${m} {
358
361
  min-width: 24px;
359
362
  width: 24px;
360
363
  height: 24px;
@@ -369,24 +372,24 @@ const m = (e) => (t) => {
369
372
  }), () => {
370
373
  t.removeType(f);
371
374
  };
372
- }, se = "accordionComponent", re = h.startup, ae = function(e, t = {}) {
375
+ }, I = "accordionComponent", re = h.startup, ae = function(e, t = {}) {
373
376
  const o = [
374
- S(e, t),
375
- te(e, t),
377
+ ee(e, t),
376
378
  oe(e, t),
377
- ne(e),
378
- ee(e)
379
+ ne(e, t),
380
+ se(e),
381
+ te(e)
379
382
  ];
380
- Z({
383
+ C({
381
384
  editor: e,
382
385
  licenseKey: t.licenseKey,
383
386
  plan: re,
384
- pluginName: se,
387
+ pluginName: I,
385
388
  cleanup: () => {
386
389
  o.forEach((r) => r());
387
390
  }
388
391
  });
389
- }, ie = Y(ae);
392
+ }, ie = Z(ae, I);
390
393
  export {
391
394
  ie as default
392
395
  };
@@ -0,0 +1,39 @@
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",V=()=>typeof window<"u",j=({isDev:e,isStage:t,isPlatform:o})=>`${e?"":`https://${t?O:L}`}/${o?"platform-api":"api"}`,F=()=>{if(!V())return"";const{hostname:e}=window.location;if(e)return e;try{return window.parent.location.hostname||""}catch{return""}},K=()=>{const e=F();return!!e&&(E.includes(e)||E.some(t=>e.endsWith(t)))};async function W({path:e,baseApiUrl:t,method:o="GET",headers:r={},params:s,body:l}){const a=`${t||j({isDev:!1,isStage:!1})}${e}`,c={method:o,headers:{"Content-Type":"application/json",...r}};l&&(c.body=JSON.stringify(l));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||{}),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.openBlocks="studio:openBlocks",e.appendComponent="studio:appendComponent",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.settings="studio:settings",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(k||{});const $={[h.free]:0,[h.startup]:10,[h.business]:20,[h.enterprise]:30};function Y(e,t){const o=e;return o.init=r=>{const s=l=>e(l,r);return s.__gjsPluginId=t,s},o}const Z=(e,t)=>Y(e,t);async function C({editor:e,plan:t,pluginName:o,licenseKey:r,onLicenseCheckResponse:s,cleanup:l}){let d="",a;const c=n=>{console.warn("Cleanup plugin:",o,"Reason:",n),l(e,o)},i=(n={})=>{var M;const{error:b,sdkLicense:A}=n,P=(M=n.plan)==null?void 0:M.category;if(!(A||n.license)||b)c(b||"Invalid license");else if(P){const H=$[t],_=$[P];H>_&&c({pluginRequiredPlan:t,licensePlan:P})}};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(!K())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 W({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 w=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",p="accordion",q=`${p}-group`,g=`${p}-header`,y=`${p}-content`,v=`${p}-marker`,G=`${x}${g}`,m=`${x}${v}`,S=`${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(p)?e:e.closestType(p);if(!o||!r)return;const{toolbar:s}=e,l={id:"accordion-toggle-open",label:o,command:()=>r.toggleOpen()};!s.find(a=>a.id===l.id)&&(s==null||s.unshift(l))},ee=(e,t)=>{const{Components:o,Blocks:r}=e,{block:s={}}=t,l="Accordion",d=`${x}${p}`,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(p,{block:s&&{label:l,media:f.accordion,category:"Extra",select:!0,...s},isComponent:w(p),extendFn:["initToolbar"],model:{defaults:{tagName:"details",name:l,classes:d,emptyState:!0,clsMarkerOpen:B,attributes:{[T]:p},droppable:R(g,y),components:[{type:g},{type:y}],"script-props":["clsMarkerOpen"],script:a,traits:[{type:"checkbox",name:"open",label:"Open"}],styles:`
2
+ .${d}::details-content {
3
+ opacity: 0;
4
+ block-size: 0;
5
+ overflow: hidden;
6
+ transform: translateY(-5px);
7
+ transition-property: opacity, transform, block-size, content-visibility;
8
+ transition-behavior: normal, normal, normal, allow-discrete;
9
+ transition-timing-function: ease-in-out;
10
+ transition-duration: 0.2s;
11
+ }
12
+
13
+ .${d}[open]::details-content {
14
+ opacity: 1;
15
+ transform: translateY(0);
16
+ block-size: auto;
17
+ }
18
+ `},toggleOpen(){this.addAttributes({open:!this.getAttributes().open})},initToolbar(){D(this,t)}}}),()=>{r.remove(p),o.removeType(p)}},te=e=>{const{Components:t}=e;return t.addType(y,{isComponent:w(y),model:{defaults:{name:"Accordion Content",removable:!1,copyable:!1,draggable:!1,emptyState:!0,classes:S,icon:f.accordionContent,attributes:{[T]:y},components:"<div>Accordion content</div>"}}}),()=>{t.removeType(y)}},oe=(e,t)=>{const{Components:o,Blocks:r}=e,{blockGroup:s={}}=t,l="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:p,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:l,media:f.accordionGroup,category:"Extra",select:!0,...s},isComponent:w(q),model:{defaults:{name:l,attributes:{[T]:q},droppable:R(p),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)}},ne=(e,t)=>{const{Components:o}=e;return o.addType(g,{isComponent:w(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
+ summary {
20
+ list-style: none;
21
+ }
22
+ .${G} {
23
+ cursor: pointer;
24
+ display: flex;
25
+ align-items: center;
26
+ justify-content: space-between;
27
+ gap: 1rem;
28
+ }
29
+ `},initToolbar(){D(this,t)}}}),()=>{o.removeType(g)}},se=e=>{const{Components:t}=e;return t.addType(v,{extend:"icon",isComponent:w(v),model:{defaults:{name:"Accordion Marker",icon:f.accordionMarker,classes:m,attributes:{[T]:v},components:f.caret,droppable:!1,draggable:X(g),styles:`
30
+ .${m} {
31
+ min-width: 24px;
32
+ width: 24px;
33
+ height: 24px;
34
+ transition: transform 0.2s ease-in-out;
35
+ }
36
+ .${B} {
37
+ transform: rotateZ(180deg);
38
+ }
39
+ `}}}),()=>{t.removeType(v)}},I="accordionComponent",re=h.startup,ae=function(e,t={}){const o=[ee(e,t),oe(e,t),ne(e,t),se(e),te(e)];C({editor:e,licenseKey:t.licenseKey,plan:re,pluginName:I,cleanup:()=>{o.forEach(r=>r())}})},ce=Z(ae,I);module.exports=ce;
@@ -1,4 +1,4 @@
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:`
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"],_="license:check:end",H=()=>typeof window<"u",N=({isDev:e,isStage:t,isPlatform:o})=>`${e?"":`https://${t?T:v}`}/${o?"platform-api":"api"}`,z=()=>{if(!H())return"";const{hostname:e}=window.location;if(e)return e;try{return window.parent.location.hostname||""}catch{return""}},U=()=>{const e=z();return!!e&&($.includes(e)||$.some(t=>e.endsWith(t)))};async function j({path:e,baseApiUrl:t,method:o="GET",headers:r={},params:s,body:l}){const a=`${t||N({isDev:!1,isStage:!1})}${e}`,c={method:o,headers:{"Content-Type":"application/json",...r}};l&&(c.body=JSON.stringify(l));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||{}),M=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",e.dialogImportCode="studio:dialogImportCode",e.openEditCode="studio:openEditCode",e.openBlocks="studio:openBlocks",e.appendComponent="studio:appendComponent",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.settings="studio:settings",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(M||{});const O={[A.free]:0,[A.startup]:10,[A.business]:20,[A.enterprise]:30};function V(e,t){const o=e;return o.init=r=>{const s=l=>e(l,r);return s.__gjsPluginId=t,s},o}const F=(e,t)=>V(e,t);async function K({editor:e,plan:t,pluginName:o,licenseKey:r,onLicenseCheckResponse:s,cleanup:l}){let d="",a;const c=n=>{console.warn("Cleanup plugin:",o,"Reason:",n),l(e,o)},i=(n={})=>{var I;const{error:h,sdkLicense:x}=n,k=(I=n.plan)==null?void 0:I.category;if(!(x||n.license)||h)c(h||"Invalid license");else if(k){const oe=O[t],ne=O[k];oe>ne&&c({pluginRequiredPlan:t,licensePlan:k})}};e.Commands.has(M.settings)&&(a=e.runCommand(M.settings),d=(a==null?void 0:a.baseUrl)||"");const u=n=>{s==null||s(n),n&&i(n)};if(!a){e.onReady(async()=>{if(!U())if(r){const n=await Y({licenseKey:r,pluginName:o,baseApiUrl:d});u(n)}else c("The `licenseKey` option not provided")});return}if(a.licensePlan||a.licenseError){const n=W(a);u(n);return}e.on(_,n=>u(n))}const W=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function Y(e){const{licenseKey:t,pluginName:o,baseApiUrl:r}=e;try{return(await j({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)),Z=(...e)=>(t,o)=>e.some(r=>o.is(r)),w="gjs-plg-",q="data-type-role",p="accordion",P=`${p}-group`,g=`${p}-header`,y=`${p}-content`,b=`${p}-marker`,L=`${w}${g}`,E=`${w}${b}`,C=`${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(p)?e:e.closestType(p);if(!o||!r)return;const{toolbar:s}=e,l={id:"accordion-toggle-open",label:o,command:()=>r.toggleOpen()};!s.find(a=>a.id===l.id)&&(s==null||s.unshift(l))},J=(e,t)=>{const{Components:o,Blocks:r}=e,{block:s={}}=t,l="Accordion",d=`${w}${p}`,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(p,{block:s&&{label:l,media:f.accordion,category:"Extra",select:!0,...s},isComponent:m(p),extendFn:["initToolbar"],model:{defaults:{tagName:"details",name:l,classes:d,emptyState:!0,clsMarkerOpen:R,attributes:{[q]:p},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)}},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:`
18
+ `},toggleOpen(){this.addAttributes({open:!this.getAttributes().open})},initToolbar(){D(this,t)}}}),()=>{r.remove(p),o.removeType(p)}},Q=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:{[q]:y},components:"<div>Accordion content</div>"}}}),()=>{t.removeType(y)}},X=(e,t)=>{const{Components:o,Blocks:r}=e,{blockGroup:s={}}=t,l="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:p,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:l,media:f.accordionGroup,category:"Extra",select:!0,...s},isComponent:m(P),model:{defaults:{name:l,attributes:{[q]:P},droppable:G(p),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)}},S=(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)}},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:`
29
+ `},initToolbar(){D(this,t)}}}),()=>{o.removeType(g)}},ee=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:Z(g),styles:`
30
30
  .${E} {
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)}},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())}})})});
39
+ `}}}),()=>{t.removeType(b)}},B="accordionComponent",te=A.startup;return F(function(e,t={}){const o=[J(e,t),X(e,t),S(e,t),ee(e),Q(e)];K({editor:e,licenseKey:t.licenseKey,plan:te,pluginName:B,cleanup:()=>{o.forEach(r=>r())}})},B)});
@@ -1,6 +1,5 @@
1
- import { ButtonProps } from '@studio/editor/src/components/Button/index';
2
- import { StudioLayoutComponentsConfig } from '../../types';
3
- import { ChatApi, CommonComponentProps } from '../types';
1
+ import { ButtonProps } from '@grapesjs/studio-sdk/dist/components/Button/index';
2
+ import { ChatApi, CommonComponentProps, OptionalLayoutComponent } from '../types';
4
3
  import { AiChatHeaderPropsSchema } from '../typesSchema';
5
4
  import { UIMessage } from 'ai';
6
5
  export interface AiChatHeaderLayoutState {
@@ -17,8 +16,8 @@ export interface AiChatHeaderOnClearProps extends AiChatHeaderLayoutProps {
17
16
  event: React.MouseEvent<HTMLButtonElement>;
18
17
  }
19
18
  export interface AiChatHeaderProps extends CommonComponentProps, Omit<AiChatHeaderPropsSchema, 'layoutBefore' | 'layoutAfter' | 'clearButtonProps' | 'onClear'> {
20
- layoutBefore?: (props: AiChatHeaderLayoutProps) => StudioLayoutComponentsConfig | undefined | void;
21
- layoutAfter?: (props: AiChatHeaderLayoutProps) => StudioLayoutComponentsConfig | undefined | void;
19
+ layoutBefore?: (props: AiChatHeaderLayoutProps) => OptionalLayoutComponent;
20
+ layoutAfter?: (props: AiChatHeaderLayoutProps) => OptionalLayoutComponent;
22
21
  clearButtonProps?: Partial<Omit<ButtonProps, 'onClick'>>;
23
22
  onClear?: (props: AiChatHeaderOnClearProps) => Promise<void> | void;
24
23
  }