@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,7 +1,7 @@
1
- const B = "app.grapesjs.com", O = "app-stage.grapesjs.com", $ = "app2.grapesjs.com", N = "app-stage2.grapesjs.com", x = [
1
+ const B = "app.grapesjs.com", _ = "app-stage.grapesjs.com", $ = "app2.grapesjs.com", N = "app-stage2.grapesjs.com", x = [
2
2
  B,
3
3
  $,
4
- O,
4
+ _,
5
5
  N,
6
6
  "localhost",
7
7
  "127.0.0.1",
@@ -15,12 +15,12 @@ const B = "app.grapesjs.com", O = "app-stage.grapesjs.com", $ = "app2.grapesjs.c
15
15
  // For Claude mcp app
16
16
  ".web-sandbox.oaiusercontent.com"
17
17
  // For OpenAI mcp app
18
- ], _ = "license:check:end", U = () => typeof window < "u", F = ({
18
+ ], U = "license:check:end", j = () => typeof window < "u", F = ({
19
19
  isDev: e,
20
20
  isStage: s,
21
21
  isPlatform: a
22
- }) => `${e ? "" : `https://${s ? O : B}`}/${a ? "platform-api" : "api"}`, j = () => {
23
- if (!U()) return "";
22
+ }) => `${e ? "" : `https://${s ? _ : B}`}/${a ? "platform-api" : "api"}`, W = () => {
23
+ if (!j()) return "";
24
24
  const { hostname: e } = window.location;
25
25
  if (e) return e;
26
26
  try {
@@ -28,8 +28,8 @@ const B = "app.grapesjs.com", O = "app-stage.grapesjs.com", $ = "app2.grapesjs.c
28
28
  } catch {
29
29
  return "";
30
30
  }
31
- }, W = () => {
32
- const e = j();
31
+ }, K = () => {
32
+ const e = W();
33
33
  return !!e && (x.includes(e) || x.some((s) => e.endsWith(s)));
34
34
  };
35
35
  async function m({
@@ -37,7 +37,7 @@ async function m({
37
37
  baseApiUrl: s,
38
38
  method: a = "GET",
39
39
  headers: t = {},
40
- params: n,
40
+ params: o,
41
41
  body: r
42
42
  }) {
43
43
  const i = `${s || F({ isDev: !1, isStage: !1 })}${e}`, l = {
@@ -48,38 +48,41 @@ async function m({
48
48
  }
49
49
  };
50
50
  r && (l.body = JSON.stringify(r));
51
- const p = n ? new URLSearchParams(n).toString() : "", c = p ? `?${p}` : "", o = await fetch(`${i}${c}`, l);
52
- if (!o.ok)
53
- throw new Error(`HTTP error! status: ${o.status}`);
54
- return o.json();
51
+ const p = o ? new URLSearchParams(o).toString() : "", c = p ? `?${p}` : "", n = await fetch(`${i}${c}`, l);
52
+ if (!n.ok)
53
+ throw new Error(`HTTP error! status: ${n.status}`);
54
+ return n.json();
55
55
  }
56
- var b = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(b || {}), E = /* @__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))(E || {});
56
+ var b = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(b || {}), E = /* @__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))(E || {});
57
57
  const G = {
58
58
  [b.free]: 0,
59
59
  [b.startup]: 10,
60
60
  [b.business]: 20,
61
61
  [b.enterprise]: 30
62
62
  };
63
- function K(e) {
64
- const s = e;
65
- return s.init = (a) => (t) => e(t, a), s;
63
+ function q(e, s) {
64
+ const a = e;
65
+ return a.init = (t) => {
66
+ const o = (r) => e(r, t);
67
+ return o.__gjsPluginId = s, o;
68
+ }, a;
66
69
  }
67
- const q = (e) => /* @__PURE__ */ K(e);
68
- async function X({
70
+ const X = (e, s) => /* @__PURE__ */ q(e, s);
71
+ async function Y({
69
72
  editor: e,
70
73
  plan: s,
71
74
  pluginName: a,
72
75
  licenseKey: t,
73
- onLicenseCheckResponse: n,
76
+ onLicenseCheckResponse: o,
74
77
  cleanup: r
75
78
  }) {
76
79
  let g = "", i;
77
- const l = (o) => {
78
- console.warn("Cleanup plugin:", a, "Reason:", o), r();
79
- }, p = (o = {}) => {
80
+ const l = (n) => {
81
+ console.warn("Cleanup plugin:", a, "Reason:", n), r(e, a);
82
+ }, p = (n = {}) => {
80
83
  var h;
81
- const { error: P, sdkLicense: L } = o, u = (h = o.plan) == null ? void 0 : h.category;
82
- if (!(L || o.license) || P)
84
+ const { error: P, sdkLicense: L } = n, u = (h = n.plan) == null ? void 0 : h.category;
85
+ if (!(L || n.license) || P)
83
86
  l(P || "Invalid license");
84
87
  else if (u) {
85
88
  const T = G[s], I = G[u];
@@ -87,34 +90,34 @@ async function X({
87
90
  }
88
91
  };
89
92
  e.Commands.has(E.settings) && (i = e.runCommand(E.settings), g = (i == null ? void 0 : i.baseUrl) || "");
90
- const c = (o) => {
91
- n == null || n(o), o && p(o);
93
+ const c = (n) => {
94
+ o == null || o(n), n && p(n);
92
95
  };
93
96
  if (!i) {
94
97
  e.onReady(async () => {
95
- if (!W())
98
+ if (!K())
96
99
  if (t) {
97
- const o = await Z({ licenseKey: t, pluginName: a, baseApiUrl: g });
98
- c(o);
100
+ const n = await J({ licenseKey: t, pluginName: a, baseApiUrl: g });
101
+ c(n);
99
102
  } else
100
103
  l("The `licenseKey` option not provided");
101
104
  });
102
105
  return;
103
106
  }
104
107
  if (i.licensePlan || i.licenseError) {
105
- const o = Y(i);
106
- c(o);
108
+ const n = Z(i);
109
+ c(n);
107
110
  return;
108
111
  }
109
- e.on(_, (o) => c(o));
112
+ e.on(U, (n) => c(n));
110
113
  }
111
- const Y = (e) => ({
114
+ const Z = (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 Z(e) {
120
+ async function J(e) {
118
121
  const { licenseKey: s, pluginName: a, baseApiUrl: t } = e;
119
122
  try {
120
123
  return (await m({
@@ -126,31 +129,31 @@ async function Z(e) {
126
129
  pn: a
127
130
  }
128
131
  })).result || {};
129
- } catch (n) {
130
- return console.error("Error during SDK license check:", n), !1;
132
+ } catch (o) {
133
+ return console.error("Error during SDK license check:", o), !1;
131
134
  }
132
135
  }
133
- const V = "gjs-plg-", J = "listPagesComponent", z = b.startup;
136
+ const V = "gjs-plg-", O = "listPagesComponent", z = b.startup;
134
137
  function Q(e, s, a) {
135
- let t, n, r, g, i;
138
+ let t, o, r, g, i;
136
139
  const l = s;
137
140
  function p() {
138
- const o = Date.now() - g;
139
- o < l && o >= 0 ? t = setTimeout(p, l - o) : (t = null, i = e.apply(r, n), r = n = null);
141
+ const n = Date.now() - g;
142
+ n < l && n >= 0 ? t = setTimeout(p, l - n) : (t = null, i = e.apply(r, o), r = o = null);
140
143
  }
141
144
  const c = function() {
142
- return r = this, n = arguments, g = Date.now(), t || (t = setTimeout(p, l)), i;
145
+ return r = this, o = arguments, g = Date.now(), t || (t = setTimeout(p, l)), i;
143
146
  };
144
147
  return c.clear = function() {
145
148
  t && (clearTimeout(t), t = null);
146
149
  }, c.flush = function() {
147
- t && (i = e.apply(r, n), r = n = null, clearTimeout(t), t = null);
150
+ t && (i = e.apply(r, o), r = o = null, clearTimeout(t), t = null);
148
151
  }, c;
149
152
  }
150
- const k = "page://", d = "list-pages", f = "list-pages-item", y = "list-pages-link", S = (e) => e.components().reduce(
153
+ const k = "page://", d = "list-pages", f = "list-pages-item", y = "list-pages-link", C = (e) => e.components().reduce(
151
154
  (s, a) => {
152
155
  var g;
153
- const t = a.findFirstType(y), n = (g = t == null ? void 0 : t.attributes.attributes) == null ? void 0 : g.href, r = n != null && n.startsWith(k) ? n.replace(k, "") : "";
156
+ const t = a.findFirstType(y), o = (g = t == null ? void 0 : t.attributes.attributes) == null ? void 0 : g.href, r = o != null && o.startsWith(k) ? o.replace(k, "") : "";
154
157
  if (r && t) {
155
158
  const i = s[r];
156
159
  i ? i.push(t) : s[r] = [t];
@@ -158,11 +161,11 @@ const k = "page://", d = "list-pages", f = "list-pages-item", y = "list-pages-li
158
161
  return s;
159
162
  },
160
163
  {}
161
- ), A = "data-type-role", C = "page_root", ee = (e) => (s) => s.is(e), te = (e) => (s, a) => a.is(e), M = (e) => (s) => {
164
+ ), A = "data-type-role", S = "page_root", ee = (e) => (s) => s.is(e), te = (e) => (s, a) => a.is(e), M = (e) => (s) => {
162
165
  var a;
163
166
  return ((a = s.getAttribute) == null ? void 0 : a.call(s, A)) === e;
164
167
  }, se = function(e, s = {}) {
165
- const { Blocks: a, Components: t, Pages: n } = e, { licenseKey: r, block: g = {} } = s, i = "List Pages", l = "List Pages Item", p = "Link", c = `${V}${d}`, o = `${V}${y}`, P = '<svg viewBox="0 0 24 24"><path d="M11 15H17V17H11V15M9 7H7V9H9V7M11 13H17V11H11V13M11 9H17V7H11V9M9 11H7V13H9V11M21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5M19 5H5V19H19V5M9 15H7V17H9V15Z"/></svg>', L = '<svg viewBox="0 0 24 24"><path d="M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z" /></svg>';
168
+ const { Blocks: a, Components: t, Pages: o } = e, { licenseKey: r, block: g = {} } = s, i = "List Pages", l = "List Pages Item", p = "Link", c = `${V}${d}`, n = `${V}${y}`, P = '<svg viewBox="0 0 24 24"><path d="M11 15H17V17H11V15M9 7H7V9H9V7M11 13H17V11H11V13M11 9H17V7H11V9M9 11H7V13H9V11M21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5M19 5H5V19H19V5M9 15H7V17H9V15Z"/></svg>', L = '<svg viewBox="0 0 24 24"><path d="M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z" /></svg>';
166
169
  t.addType(d, {
167
170
  block: g && {
168
171
  label: i,
@@ -176,7 +179,7 @@ const k = "page://", d = "list-pages", f = "list-pages-item", y = "list-pages-li
176
179
  defaults: {
177
180
  tagName: "ul",
178
181
  name: i,
179
- [C]: "",
182
+ [S]: "",
180
183
  classes: c,
181
184
  attributes: { [A]: d, role: "navigation" },
182
185
  droppable: ee(f),
@@ -189,11 +192,11 @@ const k = "page://", d = "list-pages", f = "list-pages-item", y = "list-pages-li
189
192
  `
190
193
  },
191
194
  init() {
192
- this.syncPageItems = Q(this.syncPageItems.bind(this), 0), this.listenTo(this.em, n.events.all, this.syncPageItems), this.syncPageItems();
195
+ this.syncPageItems = Q(this.syncPageItems.bind(this), 0), this.listenTo(this.em, o.events.all, this.syncPageItems), this.syncPageItems();
193
196
  },
194
197
  syncPageItems() {
195
198
  if (e.Components.getSymbolInfo(this).isInstance) return;
196
- const u = this.em.Pages.getAll(), H = this.components(), h = S(this);
199
+ const u = this.em.Pages.getAll(), H = this.components(), h = C(this);
197
200
  u.forEach((T, I) => {
198
201
  const w = T.id, R = T.getName(), v = h[w];
199
202
  v ? v == null || v.forEach((D) => {
@@ -237,26 +240,26 @@ const k = "page://", d = "list-pages", f = "list-pages-item", y = "list-pages-li
237
240
  move: (u) => u.closestType(f)
238
241
  },
239
242
  name: p,
240
- classes: o,
243
+ classes: n,
241
244
  attributes: { [A]: y },
242
245
  components: { type: "textnode", content: "Item" },
243
246
  styles: `
244
- .${o} {
247
+ .${n} {
245
248
  text-decoration: none;
246
249
  }
247
250
  `
248
251
  }
249
252
  }
250
- }), X({
253
+ }), Y({
251
254
  editor: e,
252
255
  licenseKey: r,
253
256
  plan: z,
254
- pluginName: J,
257
+ pluginName: O,
255
258
  cleanup: () => {
256
259
  a.remove(d), t.removeType(d);
257
260
  }
258
261
  });
259
- }, oe = q(se);
262
+ }, oe = X(se, O);
260
263
  export {
261
264
  oe as default
262
265
  };
@@ -0,0 +1,11 @@
1
+ "use strict";const B="app.grapesjs.com",_="app-stage.grapesjs.com",$="app2.grapesjs.com",N="app-stage2.grapesjs.com",x=[B,$,_,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",j=()=>typeof window<"u",F=({isDev:e,isStage:s,isPlatform:a})=>`${e?"":`https://${s?_:B}`}/${a?"platform-api":"api"}`,W=()=>{if(!j())return"";const{hostname:e}=window.location;if(e)return e;try{return window.parent.location.hostname||""}catch{return""}},K=()=>{const e=W();return!!e&&(x.includes(e)||x.some(s=>e.endsWith(s)))};async function m({path:e,baseApiUrl:s,method:a="GET",headers:t={},params:o,body:r}){const i=`${s||F({isDev:!1,isStage:!1})}${e}`,l={method:a,headers:{"Content-Type":"application/json",...t}};r&&(l.body=JSON.stringify(r));const p=o?new URLSearchParams(o).toString():"",c=p?`?${p}`:"",n=await fetch(`${i}${c}`,l);if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);return n.json()}var b=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(b||{}),E=(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))(E||{});const G={[b.free]:0,[b.startup]:10,[b.business]:20,[b.enterprise]:30};function q(e,s){const a=e;return a.init=t=>{const o=r=>e(r,t);return o.__gjsPluginId=s,o},a}const X=(e,s)=>q(e,s);async function Y({editor:e,plan:s,pluginName:a,licenseKey:t,onLicenseCheckResponse:o,cleanup:r}){let g="",i;const l=n=>{console.warn("Cleanup plugin:",a,"Reason:",n),r(e,a)},p=(n={})=>{var h;const{error:P,sdkLicense:L}=n,u=(h=n.plan)==null?void 0:h.category;if(!(L||n.license)||P)l(P||"Invalid license");else if(u){const T=G[s],I=G[u];T>I&&l({pluginRequiredPlan:s,licensePlan:u})}};e.Commands.has(E.settings)&&(i=e.runCommand(E.settings),g=(i==null?void 0:i.baseUrl)||"");const c=n=>{o==null||o(n),n&&p(n)};if(!i){e.onReady(async()=>{if(!K())if(t){const n=await J({licenseKey:t,pluginName:a,baseApiUrl:g});c(n)}else l("The `licenseKey` option not provided")});return}if(i.licensePlan||i.licenseError){const n=Z(i);c(n);return}e.on(U,n=>c(n))}const Z=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function J(e){const{licenseKey:s,pluginName:a,baseApiUrl:t}=e;try{return(await m({baseApiUrl:t,path:`/sdk/${s||"na"}`,method:"POST",params:{d:window.location.hostname,pn:a}})).result||{}}catch(o){return console.error("Error during SDK license check:",o),!1}}const V="gjs-plg-",O="listPagesComponent",z=b.startup;function Q(e,s,a){let t,o,r,g,i;const l=s;function p(){const n=Date.now()-g;n<l&&n>=0?t=setTimeout(p,l-n):(t=null,i=e.apply(r,o),r=o=null)}const c=function(){return r=this,o=arguments,g=Date.now(),t||(t=setTimeout(p,l)),i};return c.clear=function(){t&&(clearTimeout(t),t=null)},c.flush=function(){t&&(i=e.apply(r,o),r=o=null,clearTimeout(t),t=null)},c}const k="page://",d="list-pages",f="list-pages-item",y="list-pages-link",C=e=>e.components().reduce((s,a)=>{var g;const t=a.findFirstType(y),o=(g=t==null?void 0:t.attributes.attributes)==null?void 0:g.href,r=o!=null&&o.startsWith(k)?o.replace(k,""):"";if(r&&t){const i=s[r];i?i.push(t):s[r]=[t]}return s},{}),A="data-type-role",S="page_root",ee=e=>s=>s.is(e),te=e=>(s,a)=>a.is(e),M=e=>s=>{var a;return((a=s.getAttribute)==null?void 0:a.call(s,A))===e},se=function(e,s={}){const{Blocks:a,Components:t,Pages:o}=e,{licenseKey:r,block:g={}}=s,i="List Pages",l="List Pages Item",p="Link",c=`${V}${d}`,n=`${V}${y}`,P='<svg viewBox="0 0 24 24"><path d="M11 15H17V17H11V15M9 7H7V9H9V7M11 13H17V11H11V13M11 9H17V7H11V9M9 11H7V13H9V11M21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5M19 5H5V19H19V5M9 15H7V17H9V15Z"/></svg>',L='<svg viewBox="0 0 24 24"><path d="M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z" /></svg>';t.addType(d,{block:g&&{label:i,media:P,category:"Extra",select:!0,...s.block},isComponent:M(d),model:{defaults:{tagName:"ul",name:i,[S]:"",classes:c,attributes:{[A]:d,role:"navigation"},droppable:ee(f),styles:`
2
+ .${c} {
3
+ list-style: none;
4
+ margin: 0;
5
+ padding: 0;
6
+ }
7
+ `},init(){this.syncPageItems=Q(this.syncPageItems.bind(this),0),this.listenTo(this.em,o.events.all,this.syncPageItems),this.syncPageItems()},syncPageItems(){if(e.Components.getSymbolInfo(this).isInstance)return;const u=this.em.Pages.getAll(),H=this.components(),h=C(this);u.forEach((T,I)=>{const w=T.id,R=T.getName(),v=h[w];v?v==null||v.forEach(D=>{D.getInnerHTML()!==R&&D.components(R)}):H.add({type:f,components:[{type:y,attributes:{href:`page://${w}`},components:{type:"textnode",content:R}}]},{at:I})})}}}),t.addType(f,{isComponent:M(f),model:{defaults:{name:l,tagName:"li",icon:L,attributes:{[A]:f},components:{type:y},draggable:te(d)}}}),t.addType(y,{extend:"link",isComponent:M(y),model:{defaults:{removable:!1,copyable:!1,delegate:{move:u=>u.closestType(f)},name:p,classes:n,attributes:{[A]:y},components:{type:"textnode",content:"Item"},styles:`
8
+ .${n} {
9
+ text-decoration: none;
10
+ }
11
+ `}}}),Y({editor:e,licenseKey:r,plan:z,pluginName:O,cleanup:()=>{a.remove(d),t.removeType(d)}})},oe=X(se,O);module.exports=oe;
@@ -1,11 +1,11 @@
1
- (function(y,b){typeof exports=="object"&&typeof module<"u"?module.exports=b():typeof define=="function"&&define.amd?define(b):(y=typeof globalThis<"u"?globalThis:y||self,y.StudioSdkPlugins_listPagesComponent=b())})(this,function(){"use strict";const y="app.grapesjs.com",b="app-stage.grapesjs.com",w=[y,"app2.grapesjs.com",b,"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"],N="license:check:end",B=()=>typeof window<"u",$=({isDev:e,isStage:s,isPlatform:i})=>`${e?"":`https://${s?b:y}`}/${i?"platform-api":"api"}`,U=()=>{if(!B())return"";const{hostname:e}=window.location;if(e)return e;try{return window.parent.location.hostname||""}catch{return""}},j=()=>{const e=U();return!!e&&(w.includes(e)||w.some(s=>e.endsWith(s)))};async function m({path:e,baseApiUrl:s,method:i="GET",headers:t={},params:n,body:r}){const a=`${s||$({isDev:!1,isStage:!1})}${e}`,l={method:i,headers:{"Content-Type":"application/json",...t}};r&&(l.body=JSON.stringify(r));const u=n?new URLSearchParams(n).toString():"",c=u?`?${u}`:"",o=await fetch(`${a}${c}`,l);if(!o.ok)throw new Error(`HTTP error! status: ${o.status}`);return o.json()}var P=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(P||{}),R=(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))(R||{});const x={[P.free]:0,[P.startup]:10,[P.business]:20,[P.enterprise]:30};function F(e){const s=e;return s.init=i=>t=>e(t,i),s}const W=e=>F(e);async function K({editor:e,plan:s,pluginName:i,licenseKey:t,onLicenseCheckResponse:n,cleanup:r}){let g="",a;const l=o=>{console.warn("Cleanup plugin:",i,"Reason:",o),r()},u=(o={})=>{var v;const{error:A,sdkLicense:E}=o,f=(v=o.plan)==null?void 0:v.category;if(!(E||o.license)||A)l(A||"Invalid license");else if(f){const L=x[s],D=x[f];L>D&&l({pluginRequiredPlan:s,licensePlan:f})}};e.Commands.has(R.settings)&&(a=e.runCommand(R.settings),g=(a==null?void 0:a.baseUrl)||"");const c=o=>{n==null||n(o),o&&u(o)};if(!a){e.onReady(async()=>{if(!j())if(t){const o=await X({licenseKey:t,pluginName:i,baseApiUrl:g});c(o)}else l("The `licenseKey` option not provided")});return}if(a.licensePlan||a.licenseError){const o=q(a);c(o);return}e.on(N,o=>c(o))}const q=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function X(e){const{licenseKey:s,pluginName:i,baseApiUrl:t}=e;try{return(await m({baseApiUrl:t,path:`/sdk/${s||"na"}`,method:"POST",params:{d:window.location.hostname,pn:i}})).result||{}}catch(n){return console.error("Error during SDK license check:",n),!1}}const G="gjs-plg-",Y="listPagesComponent",Z=P.startup;function J(e,s,i){let t,n,r,g,a;const l=s;function u(){const o=Date.now()-g;o<l&&o>=0?t=setTimeout(u,l-o):(t=null,a=e.apply(r,n),r=n=null)}const c=function(){return r=this,n=arguments,g=Date.now(),t||(t=setTimeout(u,l)),a};return c.clear=function(){t&&(clearTimeout(t),t=null)},c.flush=function(){t&&(a=e.apply(r,n),r=n=null,clearTimeout(t),t=null)},c}const V="page://",p="list-pages",h="list-pages-item",d="list-pages-link",z=e=>e.components().reduce((s,i)=>{var g;const t=i.findFirstType(d),n=(g=t==null?void 0:t.attributes.attributes)==null?void 0:g.href,r=n!=null&&n.startsWith(V)?n.replace(V,""):"";if(r&&t){const a=s[r];a?a.push(t):s[r]=[t]}return s},{}),T="data-type-role",Q="page_root",S=e=>s=>s.is(e),C=e=>(s,i)=>i.is(e),M=e=>s=>{var i;return((i=s.getAttribute)==null?void 0:i.call(s,T))===e};return W(function(e,s={}){const{Blocks:i,Components:t,Pages:n}=e,{licenseKey:r,block:g={}}=s,a="List Pages",l="List Pages Item",u="Link",c=`${G}${p}`,o=`${G}${d}`,A='<svg viewBox="0 0 24 24"><path d="M11 15H17V17H11V15M9 7H7V9H9V7M11 13H17V11H11V13M11 9H17V7H11V9M9 11H7V13H9V11M21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5M19 5H5V19H19V5M9 15H7V17H9V15Z"/></svg>',E='<svg viewBox="0 0 24 24"><path d="M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z" /></svg>';t.addType(p,{block:g&&{label:a,media:A,category:"Extra",select:!0,...s.block},isComponent:M(p),model:{defaults:{tagName:"ul",name:a,[Q]:"",classes:c,attributes:{[T]:p,role:"navigation"},droppable:S(h),styles:`
1
+ (function(y,b){typeof exports=="object"&&typeof module<"u"?module.exports=b():typeof define=="function"&&define.amd?define(b):(y=typeof globalThis<"u"?globalThis:y||self,y.StudioSdkPlugins_listPagesComponent=b())})(this,function(){"use strict";const y="app.grapesjs.com",b="app-stage.grapesjs.com",w=[y,"app2.grapesjs.com",b,"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"],N="license:check:end",$=()=>typeof window<"u",U=({isDev:e,isStage:s,isPlatform:i})=>`${e?"":`https://${s?b:y}`}/${i?"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&&(w.includes(e)||w.some(s=>e.endsWith(s)))};async function W({path:e,baseApiUrl:s,method:i="GET",headers:t={},params:o,body:r}){const a=`${s||U({isDev:!1,isStage:!1})}${e}`,l={method:i,headers:{"Content-Type":"application/json",...t}};r&&(l.body=JSON.stringify(r));const p=o?new URLSearchParams(o).toString():"",c=p?`?${p}`:"",n=await fetch(`${a}${c}`,l);if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);return n.json()}var P=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(P||{}),R=(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))(R||{});const x={[P.free]:0,[P.startup]:10,[P.business]:20,[P.enterprise]:30};function m(e,s){const i=e;return i.init=t=>{const o=r=>e(r,t);return o.__gjsPluginId=s,o},i}const K=(e,s)=>m(e,s);async function q({editor:e,plan:s,pluginName:i,licenseKey:t,onLicenseCheckResponse:o,cleanup:r}){let g="",a;const l=n=>{console.warn("Cleanup plugin:",i,"Reason:",n),r(e,i)},p=(n={})=>{var v;const{error:A,sdkLicense:E}=n,f=(v=n.plan)==null?void 0:v.category;if(!(E||n.license)||A)l(A||"Invalid license");else if(f){const L=x[s],D=x[f];L>D&&l({pluginRequiredPlan:s,licensePlan:f})}};e.Commands.has(R.settings)&&(a=e.runCommand(R.settings),g=(a==null?void 0:a.baseUrl)||"");const c=n=>{o==null||o(n),n&&p(n)};if(!a){e.onReady(async()=>{if(!F())if(t){const n=await Y({licenseKey:t,pluginName:i,baseApiUrl:g});c(n)}else l("The `licenseKey` option not provided")});return}if(a.licensePlan||a.licenseError){const n=X(a);c(n);return}e.on(N,n=>c(n))}const X=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function Y(e){const{licenseKey:s,pluginName:i,baseApiUrl:t}=e;try{return(await W({baseApiUrl:t,path:`/sdk/${s||"na"}`,method:"POST",params:{d:window.location.hostname,pn:i}})).result||{}}catch(o){return console.error("Error during SDK license check:",o),!1}}const G="gjs-plg-",V="listPagesComponent",Z=P.startup;function J(e,s,i){let t,o,r,g,a;const l=s;function p(){const n=Date.now()-g;n<l&&n>=0?t=setTimeout(p,l-n):(t=null,a=e.apply(r,o),r=o=null)}const c=function(){return r=this,o=arguments,g=Date.now(),t||(t=setTimeout(p,l)),a};return c.clear=function(){t&&(clearTimeout(t),t=null)},c.flush=function(){t&&(a=e.apply(r,o),r=o=null,clearTimeout(t),t=null)},c}const _="page://",u="list-pages",h="list-pages-item",d="list-pages-link",z=e=>e.components().reduce((s,i)=>{var g;const t=i.findFirstType(d),o=(g=t==null?void 0:t.attributes.attributes)==null?void 0:g.href,r=o!=null&&o.startsWith(_)?o.replace(_,""):"";if(r&&t){const a=s[r];a?a.push(t):s[r]=[t]}return s},{}),T="data-type-role",Q="page_root",S=e=>s=>s.is(e),C=e=>(s,i)=>i.is(e),M=e=>s=>{var i;return((i=s.getAttribute)==null?void 0:i.call(s,T))===e};return K(function(e,s={}){const{Blocks:i,Components:t,Pages:o}=e,{licenseKey:r,block:g={}}=s,a="List Pages",l="List Pages Item",p="Link",c=`${G}${u}`,n=`${G}${d}`,A='<svg viewBox="0 0 24 24"><path d="M11 15H17V17H11V15M9 7H7V9H9V7M11 13H17V11H11V13M11 9H17V7H11V9M9 11H7V13H9V11M21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V5C3 3.9 3.9 3 5 3H19C20.1 3 21 3.9 21 5M19 5H5V19H19V5M9 15H7V17H9V15Z"/></svg>',E='<svg viewBox="0 0 24 24"><path d="M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z" /></svg>';t.addType(u,{block:g&&{label:a,media:A,category:"Extra",select:!0,...s.block},isComponent:M(u),model:{defaults:{tagName:"ul",name:a,[Q]:"",classes:c,attributes:{[T]:u,role:"navigation"},droppable:S(h),styles:`
2
2
  .${c} {
3
3
  list-style: none;
4
4
  margin: 0;
5
5
  padding: 0;
6
6
  }
7
- `},init(){this.syncPageItems=J(this.syncPageItems.bind(this),0),this.listenTo(this.em,n.events.all,this.syncPageItems),this.syncPageItems()},syncPageItems(){if(e.Components.getSymbolInfo(this).isInstance)return;const f=this.em.Pages.getAll(),O=this.components(),v=z(this);f.forEach((L,D)=>{const _=L.id,H=L.getName(),I=v[_];I?I==null||I.forEach(k=>{k.getInnerHTML()!==H&&k.components(H)}):O.add({type:h,components:[{type:d,attributes:{href:`page://${_}`},components:{type:"textnode",content:H}}]},{at:D})})}}}),t.addType(h,{isComponent:M(h),model:{defaults:{name:l,tagName:"li",icon:E,attributes:{[T]:h},components:{type:d},draggable:C(p)}}}),t.addType(d,{extend:"link",isComponent:M(d),model:{defaults:{removable:!1,copyable:!1,delegate:{move:f=>f.closestType(h)},name:u,classes:o,attributes:{[T]:d},components:{type:"textnode",content:"Item"},styles:`
8
- .${o} {
7
+ `},init(){this.syncPageItems=J(this.syncPageItems.bind(this),0),this.listenTo(this.em,o.events.all,this.syncPageItems),this.syncPageItems()},syncPageItems(){if(e.Components.getSymbolInfo(this).isInstance)return;const f=this.em.Pages.getAll(),k=this.components(),v=z(this);f.forEach((L,D)=>{const O=L.id,H=L.getName(),I=v[O];I?I==null||I.forEach(B=>{B.getInnerHTML()!==H&&B.components(H)}):k.add({type:h,components:[{type:d,attributes:{href:`page://${O}`},components:{type:"textnode",content:H}}]},{at:D})})}}}),t.addType(h,{isComponent:M(h),model:{defaults:{name:l,tagName:"li",icon:E,attributes:{[T]:h},components:{type:d},draggable:C(u)}}}),t.addType(d,{extend:"link",isComponent:M(d),model:{defaults:{removable:!1,copyable:!1,delegate:{move:f=>f.closestType(h)},name:p,classes:n,attributes:{[T]:d},components:{type:"textnode",content:"Item"},styles:`
8
+ .${n} {
9
9
  text-decoration: none;
10
10
  }
11
- `}}}),K({editor:e,licenseKey:r,plan:Z,pluginName:Y,cleanup:()=>{i.remove(p),t.removeType(p)}})})});
11
+ `}}}),q({editor:e,licenseKey:r,plan:Z,pluginName:V,cleanup:()=>{i.remove(u),t.removeType(u)}})},V)});
@@ -1,5 +1,5 @@
1
1
  import { Component } from 'grapesjs';
2
- export { default as debounce } from '@studio/editor/src/utils/debounce';
2
+ export { default as debounce } from '@grapesjs/studio-sdk/dist/utils/debounce';
3
3
  export declare const typeListPages = "list-pages";
4
4
  export declare const typeListPagesItem = "list-pages-item";
5
5
  export declare const typeListPagesLink = "list-pages-link";
@@ -0,0 +1,6 @@
1
+ import { BlockProperties, Editor } from '../types';
2
+ import { PresetBlockLibraryOptions } from './types';
3
+ export declare const getPresetBlockLibraryBlocks: (opts?: PresetBlockLibraryOptions) => BlockProperties[];
4
+ export default function loadBlocks(editor: Editor, opts: PresetBlockLibraryOptions): {
5
+ blocks: BlockProperties[];
6
+ };
@@ -0,0 +1,2 @@
1
+ export declare const EMAIL_PRESET_CATEGORY_LIST: string[];
2
+ export declare const EMAIL_PRESET_CATEGORY_IDS: string[];
@@ -0,0 +1,53 @@
1
+ import { LibraryProperties } from 'grapesjs';
2
+ import { BlockProperties } from '../types';
3
+ import { PresetBlockLibraryOptions } from './types';
4
+ export declare const EMAIL_PRESET_CATEGORIES: {
5
+ header: {
6
+ id: string;
7
+ open: false;
8
+ label: string;
9
+ icon: string;
10
+ };
11
+ hero: {
12
+ id: string;
13
+ open: false;
14
+ label: string;
15
+ icon: string;
16
+ };
17
+ content: {
18
+ id: string;
19
+ open: false;
20
+ label: string;
21
+ icon: string;
22
+ };
23
+ cta: {
24
+ id: string;
25
+ open: false;
26
+ label: string;
27
+ icon: string;
28
+ };
29
+ gallery: {
30
+ id: string;
31
+ open: false;
32
+ label: string;
33
+ icon: string;
34
+ };
35
+ people: {
36
+ id: string;
37
+ open: false;
38
+ label: string;
39
+ icon: string;
40
+ };
41
+ footer: {
42
+ id: string;
43
+ open: false;
44
+ label: string;
45
+ icon: string;
46
+ };
47
+ };
48
+ export declare const PRESET_BLOCK_LIBRARY: LibraryProperties;
49
+ export declare const createPresetBlockLibrary: (opts: PresetBlockLibraryOptions) => LibraryProperties;
50
+ export declare const createEmailPresetBlocks: ({ library, options }: {
51
+ library?: LibraryProperties;
52
+ options: PresetBlockLibraryOptions;
53
+ }) => BlockProperties[];
@@ -0,0 +1,3 @@
1
+ import { PresetBlockLibraryOptions } from './types';
2
+ declare const _default: import('../utils').PluginWithInit<PresetBlockLibraryOptions>;
3
+ export default _default;