@grapesjs/studio-sdk-plugins 1.0.35 → 1.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/accordionComponent/index.cjs.js +7 -7
  2. package/dist/accordionComponent/index.es.js +185 -159
  3. package/dist/accordionComponent/index.umd.js +7 -7
  4. package/dist/aiChat/clientToolsProcessors.d.ts +1 -2
  5. package/dist/aiChat/components/utils.d.ts +1 -0
  6. package/dist/aiChat/components/utilsTw.d.ts +11 -0
  7. package/dist/aiChat/index.cjs.js +75 -75
  8. package/dist/aiChat/index.es.js +9122 -8628
  9. package/dist/aiChat/index.js +75 -75
  10. package/dist/aiChat/index.umd.js +75 -75
  11. package/dist/aiChat/projectGeneration.d.ts +17 -0
  12. package/dist/animationComponent/index.cjs.js +3 -3
  13. package/dist/animationComponent/index.es.js +221 -195
  14. package/dist/animationComponent/index.umd.js +3 -3
  15. package/dist/canvasAbsoluteMode/index.cjs.js +1 -1
  16. package/dist/canvasAbsoluteMode/index.es.js +199 -173
  17. package/dist/canvasAbsoluteMode/index.umd.js +1 -1
  18. package/dist/canvasEmptyState/index.cjs.js +1 -1
  19. package/dist/canvasEmptyState/index.es.js +149 -123
  20. package/dist/canvasEmptyState/index.umd.js +1 -1
  21. package/dist/canvasFullSize/index.cjs.js +9 -9
  22. package/dist/canvasFullSize/index.es.js +186 -160
  23. package/dist/canvasFullSize/index.umd.js +9 -9
  24. package/dist/canvasGridMode/index.cjs.js +5 -5
  25. package/dist/canvasGridMode/index.es.js +263 -237
  26. package/dist/canvasGridMode/index.umd.js +2 -2
  27. package/dist/canvasScreenshot/index.cjs.js +1 -1
  28. package/dist/canvasScreenshot/index.es.js +168 -142
  29. package/dist/canvasScreenshot/index.umd.js +1 -1
  30. package/dist/dataSourceEjs/index.cjs.js +9 -9
  31. package/dist/dataSourceEjs/index.es.js +271 -245
  32. package/dist/dataSourceEjs/index.umd.js +9 -9
  33. package/dist/dataSourceHandlebars/index.cjs.js +8 -8
  34. package/dist/dataSourceHandlebars/index.es.js +232 -206
  35. package/dist/dataSourceHandlebars/index.umd.js +8 -8
  36. package/dist/dialogComponent/index.cjs.js +14 -14
  37. package/dist/dialogComponent/index.es.js +157 -131
  38. package/dist/dialogComponent/index.umd.js +14 -14
  39. package/dist/flexComponent/index.cjs.js +13 -13
  40. package/dist/flexComponent/index.es.js +497 -471
  41. package/dist/flexComponent/index.umd.js +13 -13
  42. package/dist/fsLightboxComponent/index.cjs.js +3 -3
  43. package/dist/fsLightboxComponent/index.es.js +189 -163
  44. package/dist/fsLightboxComponent/index.umd.js +3 -3
  45. package/dist/googleFontsAssetProvider/index.cjs.js +1 -1
  46. package/dist/googleFontsAssetProvider/index.es.js +175 -149
  47. package/dist/googleFontsAssetProvider/index.umd.js +1 -1
  48. package/dist/iconifyComponent/index.cjs.js +2 -2
  49. package/dist/iconifyComponent/index.es.js +207 -181
  50. package/dist/iconifyComponent/index.umd.js +2 -2
  51. package/dist/index.cjs.js +36 -36
  52. package/dist/index.es.js +917 -891
  53. package/dist/index.umd.js +36 -36
  54. package/dist/layoutSidebarButtons/index.cjs.js +1 -1
  55. package/dist/layoutSidebarButtons/index.es.js +192 -166
  56. package/dist/layoutSidebarButtons/index.umd.js +1 -1
  57. package/dist/lightGalleryComponent/index.cjs.js +1 -1
  58. package/dist/lightGalleryComponent/index.es.js +265 -239
  59. package/dist/lightGalleryComponent/index.umd.js +1 -1
  60. package/dist/linkImageComponent/index.cjs.js +2 -2
  61. package/dist/linkImageComponent/index.es.js +121 -95
  62. package/dist/linkImageComponent/index.umd.js +2 -2
  63. package/dist/listPagesComponent/index.cjs.js +5 -5
  64. package/dist/listPagesComponent/index.es.js +171 -145
  65. package/dist/listPagesComponent/index.umd.js +5 -5
  66. package/dist/presetPrintable/index.cjs.js +3 -3
  67. package/dist/presetPrintable/index.es.js +227 -201
  68. package/dist/presetPrintable/index.umd.js +3 -3
  69. package/dist/prosemirror/index.cjs.js +7 -7
  70. package/dist/prosemirror/index.es.js +457 -431
  71. package/dist/prosemirror/index.umd.js +8 -8
  72. package/dist/rendererReact/index.cjs.js +1 -1
  73. package/dist/rendererReact/index.es.js +248 -223
  74. package/dist/rendererReact/index.js +1 -1
  75. package/dist/rendererReact/index.umd.js +1 -1
  76. package/dist/rteTinyMce/index.cjs.js +2 -2
  77. package/dist/rteTinyMce/index.es.js +150 -124
  78. package/dist/rteTinyMce/index.umd.js +2 -2
  79. package/dist/shapeDividerComponent/index.cjs.js +4 -4
  80. package/dist/shapeDividerComponent/index.es.js +143 -117
  81. package/dist/shapeDividerComponent/index.umd.js +4 -4
  82. package/dist/swiperComponent/index.cjs.js +9 -9
  83. package/dist/swiperComponent/index.es.js +218 -192
  84. package/dist/swiperComponent/index.umd.js +7 -7
  85. package/dist/tableComponent/index.cjs.js +1 -1
  86. package/dist/tableComponent/index.es.js +275 -249
  87. package/dist/tableComponent/index.umd.js +1 -1
  88. package/dist/types.d.ts +1 -1
  89. package/dist/youtubeAssetProvider/index.cjs.js +1 -1
  90. package/dist/youtubeAssetProvider/index.es.js +134 -108
  91. package/dist/youtubeAssetProvider/index.umd.js +1 -1
  92. package/package.json +2 -2
@@ -1,161 +1,187 @@
1
- const D = "app.grapesjs.com", C = "app-stage.grapesjs.com", S = "app2.grapesjs.com", x = "app-stage2.grapesjs.com", v = [
2
- D,
3
- S,
4
- C,
5
- x,
1
+ const B = "app.grapesjs.com", O = "app-stage.grapesjs.com", $ = "app2.grapesjs.com", N = "app-stage2.grapesjs.com", x = [
2
+ B,
3
+ $,
4
+ O,
5
+ N,
6
6
  "localhost",
7
7
  "127.0.0.1",
8
8
  ".local-credentialless.webcontainer.io",
9
9
  // For stackblitz.com demos
10
10
  ".local.webcontainer.io",
11
11
  // For stackblitz.com demos
12
- "-sandpack.codesandbox.io"
12
+ "-sandpack.codesandbox.io",
13
13
  // For Sandpack demos
14
- ], O = "license:check:start", U = "license:check:end", k = () => typeof window < "u", W = ({
15
- isDev: t,
14
+ ".claudemcpcontent.com",
15
+ // For Claude mcp app
16
+ ".web-sandbox.oaiusercontent.com"
17
+ // For OpenAI mcp app
18
+ ], _ = "license:check:end", U = () => typeof window < "u", F = ({
19
+ isDev: e,
16
20
  isStage: s,
17
- isPlatform: i
18
- }) => `${t ? "" : `https://${s ? C : D}`}/${i ? "platform-api" : "api"}`, j = () => {
19
- const t = k() && window.location.hostname;
20
- return !!t && (v.includes(t) || v.some((s) => t.endsWith(s)));
21
+ isPlatform: a
22
+ }) => `${e ? "" : `https://${s ? O : B}`}/${a ? "platform-api" : "api"}`, j = () => {
23
+ if (!U()) return "";
24
+ const { hostname: e } = window.location;
25
+ if (e) return e;
26
+ try {
27
+ return window.parent.location.hostname || "";
28
+ } catch {
29
+ return "";
30
+ }
31
+ }, m = () => {
32
+ const e = j();
33
+ return !!e && (x.includes(e) || x.some((s) => e.endsWith(s)));
21
34
  };
22
- async function B({
23
- path: t,
35
+ async function W({
36
+ path: e,
24
37
  baseApiUrl: s,
25
- method: i = "GET",
26
- headers: e = {},
27
- params: o,
28
- body: a
38
+ method: a = "GET",
39
+ headers: t = {},
40
+ params: n,
41
+ body: r
29
42
  }) {
30
- const c = `${s || W({ isDev: !1, isStage: !1 })}${t}`, u = {
31
- method: i,
43
+ const i = `${s || F({ isDev: !1, isStage: !1 })}${e}`, l = {
44
+ method: a,
32
45
  headers: {
33
46
  "Content-Type": "application/json",
34
- ...e
47
+ ...t
35
48
  }
36
49
  };
37
- a && (u.body = JSON.stringify(a));
38
- const r = o ? new URLSearchParams(o).toString() : "", p = r ? `?${r}` : "", n = await fetch(`${c}${p}`, u);
39
- if (!n.ok)
40
- throw new Error(`HTTP error! status: ${n.status}`);
41
- return n.json();
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();
42
55
  }
43
- var y = /* @__PURE__ */ ((t) => (t.free = "free", t.startup = "startup", t.business = "business", t.enterprise = "enterprise", t))(y || {});
44
- const _ = {
45
- [y.free]: 0,
46
- [y.startup]: 10,
47
- [y.business]: 20,
48
- [y.enterprise]: 30
56
+ var b = /* @__PURE__ */ ((e) => (e.free = "free", e.startup = "startup", e.business = "business", e.enterprise = "enterprise", e))(b || {}), H = /* @__PURE__ */ ((e) => (e.toastAdd = "studio:toastAdd", e.toastRemove = "studio:toastRemove", e.dialogOpen = "studio:dialogOpen", e.dialogClose = "studio:dialogClose", e.dialogExportCode = "studio:dialogExportCode", e.dialogImportCode = "studio:dialogImportCode", e.sidebarLeftSet = "studio:sidebarLeft:set", e.sidebarLeftGet = "studio:sidebarLeft:get", e.sidebarLeftToggle = "studio:sidebarLeft:toggle", e.sidebarRightSet = "studio:sidebarRight:set", e.sidebarRightGet = "studio:sidebarRight:get", e.sidebarRightToggle = "studio:sidebarRight:toggle", e.sidebarTopSet = "studio:sidebarTop:set", e.sidebarTopGet = "studio:sidebarTop:get", e.sidebarTopToggle = "studio:sidebarTop:toggle", e.sidebarBottomSet = "studio:sidebarBottom:set", e.sidebarBottomGet = "studio:sidebarBottom:get", e.sidebarBottomToggle = "studio:sidebarBottom:toggle", e.symbolAdd = "studio:symbolAdd", e.symbolDetach = "studio:symbolDetach", e.symbolOverride = "studio:symbolOverride", e.symbolPropagateStyles = "studio:propagateStyles", e.getPagesConfig = "studio:getPagesConfig", e.setPagesConfig = "studio:setPagesConfig", e.getPageSettings = "studio:getPageSettings", e.setPageSettings = "studio:setPageSettings", e.clearPage = "studio:clearPage", e.projectFiles = "studio:projectFiles", e.validateCode = "studio:validateCode", e.canvasReload = "studio:canvasReload", e.getBlocksPanel = "studio:getBlocksPanel", e.setBlocksPanel = "studio:setBlocksPanel", e.getStateContextMenu = "studio:getStateContextMenu", e.setStateContextMenu = "studio:setStateContextMenu", e.contextMenuComponent = "studio:contextMenuComponent", e.layoutAdd = "studio:layoutAdd", e.layoutRemove = "studio:layoutRemove", e.layoutToggle = "studio:layoutToggle", e.layoutUpdate = "studio:layoutUpdate", e.layoutGet = "studio:layoutGet", e.layoutConfigGet = "studio:layoutConfigGet", e.layoutConfigSet = "studio:layoutConfigSet", e.layoutComponentAdd = "studio:layoutComponentAdd", e.layoutComponentGet = "studio:layoutComponentGet", e.layoutComponentRemove = "studio:layoutComponentRemove", e.layoutComponentRender = "studio:layoutComponentRender", e.getStateTheme = "studio:getStateTheme", e.setStateTheme = "studio:setStateTheme", e.settings = "studio:settings", e.assetProviderGet = "studio:assetProviderGet", e.assetProviderAdd = "studio:assetProviderAdd", e.assetProviderRemove = "studio:assetProviderRemove", e.fontGet = "studio:fontGet", e.fontAdd = "studio:fontAdd", e.fontRemove = "studio:fontRemove", e.fontManagerOpen = "studio:fontManagerOpen", e.menuFontLoad = "studio:menuFontLoad", e.toggleStateDataSource = "studio:toggleStateDataSource", e.getStateDataSource = "studio:getStateDataSource", e.dataSourceSetGlobalData = "studio:dataSourceSetGlobalData", e.dataSourceSetImporter = "studio:dataSourceSetImporter", e.dataSourceSetExporter = "studio:dataSourceSetExporter", e.setDragAbsolute = "studio:setDragAbsolute", e))(H || {});
57
+ const G = {
58
+ [b.free]: 0,
59
+ [b.startup]: 10,
60
+ [b.business]: 20,
61
+ [b.enterprise]: 30
49
62
  };
50
- function K(t) {
51
- const s = t;
52
- return s.init = (i) => (e) => t(e, i), s;
63
+ function K(e) {
64
+ const s = e;
65
+ return s.init = (a) => (t) => e(t, a), s;
53
66
  }
54
- const G = (t) => /* @__PURE__ */ K(t);
55
- async function F({
56
- editor: t,
67
+ const q = (e) => /* @__PURE__ */ K(e);
68
+ async function X({
69
+ editor: e,
57
70
  plan: s,
58
- pluginName: i,
59
- licenseKey: e,
60
- onLicenseCheckResponse: o,
61
- cleanup: a
71
+ pluginName: a,
72
+ licenseKey: t,
73
+ onLicenseCheckResponse: n,
74
+ cleanup: r
62
75
  }) {
63
- let l = "", c = !1;
64
- const u = j(), r = (n) => {
65
- console.warn("Cleanup plugin:", i, "Reason:", n), a();
66
- }, p = (n = {}) => {
67
- var P;
68
- const { error: h, sdkLicense: A } = n, m = (P = n.plan) == null ? void 0 : P.category;
69
- if (!(A || n.license) || h)
70
- r(h || "Invalid license");
71
- else if (m) {
72
- const b = _[s], H = _[m];
73
- b > H && r({ pluginRequiredPlan: s, licensePlan: m });
76
+ let g = "", i;
77
+ const l = (o) => {
78
+ console.warn("Cleanup plugin:", a, "Reason:", o), r();
79
+ }, p = (o = {}) => {
80
+ var h;
81
+ const { error: P, sdkLicense: L } = o, u = (h = o.plan) == null ? void 0 : h.category;
82
+ if (!(L || o.license) || P)
83
+ l(P || "Invalid license");
84
+ else if (u) {
85
+ const T = G[s], I = G[u];
86
+ T > I && l({ pluginRequiredPlan: s, licensePlan: u });
74
87
  }
75
88
  };
76
- t.on(O, (n) => {
77
- l = n == null ? void 0 : n.baseApiUrl, c = !0;
78
- }), t.on(U, (n) => {
79
- o == null || o(n), p(n);
80
- }), setTimeout(async () => {
81
- if (!c) {
82
- if (u) return;
83
- if (e) {
84
- const n = await R({ licenseKey: e, pluginName: i, baseApiUrl: l });
85
- o == null || o(n), n && p(n);
86
- } else
87
- r("The `licenseKey` option not provided");
88
- }
89
- }, 2e3);
89
+ e.Commands.has(H.settings) && (i = e.runCommand(H.settings), g = (i == null ? void 0 : i.baseUrl) || "");
90
+ const c = (o) => {
91
+ n == null || n(o), o && p(o);
92
+ };
93
+ if (!i) {
94
+ e.onReady(async () => {
95
+ if (!m())
96
+ if (t) {
97
+ const o = await Z({ licenseKey: t, pluginName: a, baseApiUrl: g });
98
+ c(o);
99
+ } else
100
+ l("The `licenseKey` option not provided");
101
+ });
102
+ return;
103
+ }
104
+ if (i.licensePlan || i.licenseError) {
105
+ const o = Y(i);
106
+ c(o);
107
+ return;
108
+ }
109
+ e.on(_, (o) => c(o));
90
110
  }
91
- async function R(t) {
92
- const { licenseKey: s, pluginName: i, baseApiUrl: e } = t;
111
+ const Y = (e) => ({
112
+ sdkLicense: e.license,
113
+ license: e.license,
114
+ error: e.licenseError,
115
+ plan: e.licensePlan
116
+ });
117
+ async function Z(e) {
118
+ const { licenseKey: s, pluginName: a, baseApiUrl: t } = e;
93
119
  try {
94
- return (await B({
95
- baseApiUrl: e,
120
+ return (await W({
121
+ baseApiUrl: t,
96
122
  path: `/sdk/${s || "na"}`,
97
123
  method: "POST",
98
124
  params: {
99
125
  d: window.location.hostname,
100
- pn: i
126
+ pn: a
101
127
  }
102
128
  })).result || {};
103
- } catch (o) {
104
- return console.error("Error during SDK license check:", o), !1;
129
+ } catch (n) {
130
+ return console.error("Error during SDK license check:", n), !1;
105
131
  }
106
132
  }
107
- const N = "gjs-plg-", q = "listPagesComponent", X = y.startup;
108
- function Y(t, s, i) {
109
- let e, o, a, l, c;
110
- const u = s;
111
- function r() {
112
- const n = Date.now() - l;
113
- n < u && n >= 0 ? e = setTimeout(r, u - n) : (e = null, c = t.apply(a, o), a = o = null);
133
+ const V = "gjs-plg-", J = "listPagesComponent", z = b.startup;
134
+ function Q(e, s, a) {
135
+ let t, n, r, g, i;
136
+ const l = s;
137
+ 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);
114
140
  }
115
- const p = function() {
116
- return a = this, o = arguments, l = Date.now(), e || (e = setTimeout(r, u)), c;
141
+ const c = function() {
142
+ return r = this, n = arguments, g = Date.now(), t || (t = setTimeout(p, l)), i;
117
143
  };
118
- return p.clear = function() {
119
- e && (clearTimeout(e), e = null);
120
- }, p.flush = function() {
121
- e && (c = t.apply(a, o), a = o = null, clearTimeout(e), e = null);
122
- }, p;
144
+ return c.clear = function() {
145
+ t && (clearTimeout(t), t = null);
146
+ }, c.flush = function() {
147
+ t && (i = e.apply(r, n), r = n = null, clearTimeout(t), t = null);
148
+ }, c;
123
149
  }
124
- const $ = "page://", g = "list-pages", f = "list-pages-item", d = "list-pages-link", Z = (t) => t.components().reduce(
125
- (s, i) => {
126
- var l;
127
- const e = i.findFirstType(d), o = (l = e == null ? void 0 : e.attributes.attributes) == null ? void 0 : l.href, a = o != null && o.startsWith($) ? o.replace($, "") : "";
128
- if (a && e) {
129
- const c = s[a];
130
- c ? c.push(e) : s[a] = [e];
150
+ const k = "page://", d = "list-pages", f = "list-pages-item", y = "list-pages-link", S = (e) => e.components().reduce(
151
+ (s, a) => {
152
+ 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, "") : "";
154
+ if (r && t) {
155
+ const i = s[r];
156
+ i ? i.push(t) : s[r] = [t];
131
157
  }
132
158
  return s;
133
159
  },
134
160
  {}
135
- ), I = "data-type-role", J = "page_root", z = (t) => (s) => s.is(t), Q = (t) => (s, i) => i.is(t), w = (t) => (s) => {
136
- var i;
137
- return ((i = s.getAttribute) == null ? void 0 : i.call(s, I)) === t;
138
- }, tt = function(t, s = {}) {
139
- const { Blocks: i, Components: e, Pages: o } = t, { licenseKey: a, block: l = {} } = s, c = "List Pages", u = "List Pages Item", r = "Link", p = `${N}${g}`, n = `${N}${d}`, h = '<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>', A = '<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>';
140
- e.addType(g, {
141
- block: l && {
142
- label: c,
143
- media: h,
161
+ ), A = "data-type-role", C = "page_root", ee = (e) => (s) => s.is(e), te = (e) => (s, a) => a.is(e), M = (e) => (s) => {
162
+ var a;
163
+ return ((a = s.getAttribute) == null ? void 0 : a.call(s, A)) === e;
164
+ }, 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>';
166
+ t.addType(d, {
167
+ block: g && {
168
+ label: i,
169
+ media: P,
144
170
  category: "Extra",
145
171
  select: !0,
146
172
  ...s.block
147
173
  },
148
- isComponent: w(g),
174
+ isComponent: M(d),
149
175
  model: {
150
176
  defaults: {
151
177
  tagName: "ul",
152
- name: c,
153
- [J]: "",
154
- classes: p,
155
- attributes: { [I]: g, role: "navigation" },
156
- droppable: z(f),
178
+ name: i,
179
+ [C]: "",
180
+ classes: c,
181
+ attributes: { [A]: d, role: "navigation" },
182
+ droppable: ee(f),
157
183
  styles: `
158
- .${p} {
184
+ .${c} {
159
185
  list-style: none;
160
186
  margin: 0;
161
187
  padding: 0;
@@ -163,74 +189,74 @@ const $ = "page://", g = "list-pages", f = "list-pages-item", d = "list-pages-li
163
189
  `
164
190
  },
165
191
  init() {
166
- this.syncPageItems = Y(this.syncPageItems.bind(this), 0), this.listenTo(this.em, o.events.all, this.syncPageItems), this.syncPageItems();
192
+ this.syncPageItems = Q(this.syncPageItems.bind(this), 0), this.listenTo(this.em, n.events.all, this.syncPageItems), this.syncPageItems();
167
193
  },
168
194
  syncPageItems() {
169
- if (t.Components.getSymbolInfo(this).isInstance) return;
170
- const m = this.em.Pages.getAll(), E = this.components(), P = Z(this);
171
- m.forEach((b, H) => {
172
- const V = b.id, L = b.getName(), T = P[V];
173
- T ? T == null || T.forEach((M) => {
174
- M.getInnerHTML() !== L && M.components(L);
175
- }) : E.add(
195
+ if (e.Components.getSymbolInfo(this).isInstance) return;
196
+ const u = this.em.Pages.getAll(), w = this.components(), h = S(this);
197
+ u.forEach((T, I) => {
198
+ const E = T.id, R = T.getName(), v = h[E];
199
+ v ? v == null || v.forEach((D) => {
200
+ D.getInnerHTML() !== R && D.components(R);
201
+ }) : w.add(
176
202
  {
177
203
  type: f,
178
204
  components: [
179
205
  {
180
- type: d,
181
- attributes: { href: `page://${V}` },
182
- components: { type: "textnode", content: L }
206
+ type: y,
207
+ attributes: { href: `page://${E}` },
208
+ components: { type: "textnode", content: R }
183
209
  }
184
210
  ]
185
211
  },
186
- { at: H }
212
+ { at: I }
187
213
  );
188
214
  });
189
215
  }
190
216
  }
191
- }), e.addType(f, {
192
- isComponent: w(f),
217
+ }), t.addType(f, {
218
+ isComponent: M(f),
193
219
  model: {
194
220
  defaults: {
195
- name: u,
221
+ name: l,
196
222
  tagName: "li",
197
- icon: A,
198
- attributes: { [I]: f },
199
- components: { type: d },
200
- draggable: Q(g)
223
+ icon: L,
224
+ attributes: { [A]: f },
225
+ components: { type: y },
226
+ draggable: te(d)
201
227
  }
202
228
  }
203
- }), e.addType(d, {
229
+ }), t.addType(y, {
204
230
  extend: "link",
205
- isComponent: w(d),
231
+ isComponent: M(y),
206
232
  model: {
207
233
  defaults: {
208
234
  removable: !1,
209
235
  copyable: !1,
210
236
  delegate: {
211
- move: (m) => m.closestType(f)
237
+ move: (u) => u.closestType(f)
212
238
  },
213
- name: r,
214
- classes: n,
215
- attributes: { [I]: d },
239
+ name: p,
240
+ classes: o,
241
+ attributes: { [A]: y },
216
242
  components: { type: "textnode", content: "Item" },
217
243
  styles: `
218
- .${n} {
244
+ .${o} {
219
245
  text-decoration: none;
220
246
  }
221
247
  `
222
248
  }
223
249
  }
224
- }), F({
225
- editor: t,
226
- licenseKey: a,
227
- plan: X,
228
- pluginName: q,
250
+ }), X({
251
+ editor: e,
252
+ licenseKey: r,
253
+ plan: z,
254
+ pluginName: J,
229
255
  cleanup: () => {
230
- i.remove(g), e.removeType(g);
256
+ a.remove(d), t.removeType(d);
231
257
  }
232
258
  });
233
- }, et = G(tt);
259
+ }, oe = q(se);
234
260
  export {
235
- et as default
261
+ oe as default
236
262
  };
@@ -1,11 +1,11 @@
1
- (function(f,y){typeof exports=="object"&&typeof module<"u"?module.exports=y():typeof define=="function"&&define.amd?define(y):(f=typeof globalThis<"u"?globalThis:f||self,f.StudioSdkPlugins_listPagesComponent=y())})(this,function(){"use strict";const f="app.grapesjs.com",y="app-stage.grapesjs.com",V=[f,"app2.grapesjs.com",y,"app-stage2.grapesjs.com","localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],O="license:check:start",x="license:check:end",C=()=>typeof window<"u",U=({isDev:t,isStage:s,isPlatform:i})=>`${t?"":`https://${s?y:f}`}/${i?"platform-api":"api"}`,k=()=>{const t=C()&&window.location.hostname;return!!t&&(V.includes(t)||V.some(s=>t.endsWith(s)))};async function W({path:t,baseApiUrl:s,method:i="GET",headers:e={},params:o,body:a}){const c=`${s||U({isDev:!1,isStage:!1})}${t}`,u={method:i,headers:{"Content-Type":"application/json",...e}};a&&(u.body=JSON.stringify(a));const r=o?new URLSearchParams(o).toString():"",p=r?`?${r}`:"",n=await fetch(`${c}${p}`,u);if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);return n.json()}var h=(t=>(t.free="free",t.startup="startup",t.business="business",t.enterprise="enterprise",t))(h||{});const _={[h.free]:0,[h.startup]:10,[h.business]:20,[h.enterprise]:30};function j(t){const s=t;return s.init=i=>e=>t(e,i),s}const B=t=>j(t);async function G({editor:t,plan:s,pluginName:i,licenseKey:e,onLicenseCheckResponse:o,cleanup:a}){let l="",c=!1;const u=k(),r=n=>{console.warn("Cleanup plugin:",i,"Reason:",n),a()},p=(n={})=>{var A;const{error:T,sdkLicense:E}=n,g=(A=n.plan)==null?void 0:A.category;if(!(E||n.license)||T)r(T||"Invalid license");else if(g){const I=_[s],w=_[g];I>w&&r({pluginRequiredPlan:s,licensePlan:g})}};t.on(O,n=>{l=n==null?void 0:n.baseApiUrl,c=!0}),t.on(x,n=>{o==null||o(n),p(n)}),setTimeout(async()=>{if(!c){if(u)return;if(e){const n=await K({licenseKey:e,pluginName:i,baseApiUrl:l});o==null||o(n),n&&p(n)}else r("The `licenseKey` option not provided")}},2e3)}async function K(t){const{licenseKey:s,pluginName:i,baseApiUrl:e}=t;try{return(await W({baseApiUrl:e,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 v="gjs-plg-",F="listPagesComponent",R=h.startup;function q(t,s,i){let e,o,a,l,c;const u=s;function r(){const n=Date.now()-l;n<u&&n>=0?e=setTimeout(r,u-n):(e=null,c=t.apply(a,o),a=o=null)}const p=function(){return a=this,o=arguments,l=Date.now(),e||(e=setTimeout(r,u)),c};return p.clear=function(){e&&(clearTimeout(e),e=null)},p.flush=function(){e&&(c=t.apply(a,o),a=o=null,clearTimeout(e),e=null)},p}const N="page://",m="list-pages",P="list-pages-item",d="list-pages-link",X=t=>t.components().reduce((s,i)=>{var l;const e=i.findFirstType(d),o=(l=e==null?void 0:e.attributes.attributes)==null?void 0:l.href,a=o!=null&&o.startsWith(N)?o.replace(N,""):"";if(a&&e){const c=s[a];c?c.push(e):s[a]=[e]}return s},{}),b="data-type-role",Y="page_root",Z=t=>s=>s.is(t),J=t=>(s,i)=>i.is(t),L=t=>s=>{var i;return((i=s.getAttribute)==null?void 0:i.call(s,b))===t};return B(function(t,s={}){const{Blocks:i,Components:e,Pages:o}=t,{licenseKey:a,block:l={}}=s,c="List Pages",u="List Pages Item",r="Link",p=`${v}${m}`,n=`${v}${d}`,T='<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>';e.addType(m,{block:l&&{label:c,media:T,category:"Extra",select:!0,...s.block},isComponent:L(m),model:{defaults:{tagName:"ul",name:c,[Y]:"",classes:p,attributes:{[b]:m,role:"navigation"},droppable:Z(P),styles:`
2
- .${p} {
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""}},m=()=>{const e=U();return!!e&&(w.includes(e)||w.some(s=>e.endsWith(s)))};async function j({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.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:D}=o,f=(v=o.plan)==null?void 0:v.category;if(!(D||o.license)||A)l(A||"Invalid license");else if(f){const L=x[s],E=x[f];L>E&&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(!m())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 j({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>',D='<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:`
2
+ .${c} {
3
3
  list-style: none;
4
4
  margin: 0;
5
5
  padding: 0;
6
6
  }
7
- `},init(){this.syncPageItems=q(this.syncPageItems.bind(this),0),this.listenTo(this.em,o.events.all,this.syncPageItems),this.syncPageItems()},syncPageItems(){if(t.Components.getSymbolInfo(this).isInstance)return;const g=this.em.Pages.getAll(),$=this.components(),A=X(this);g.forEach((I,w)=>{const D=I.id,M=I.getName(),H=A[D];H?H==null||H.forEach(S=>{S.getInnerHTML()!==M&&S.components(M)}):$.add({type:P,components:[{type:d,attributes:{href:`page://${D}`},components:{type:"textnode",content:M}}]},{at:w})})}}}),e.addType(P,{isComponent:L(P),model:{defaults:{name:u,tagName:"li",icon:E,attributes:{[b]:P},components:{type:d},draggable:J(m)}}}),e.addType(d,{extend:"link",isComponent:L(d),model:{defaults:{removable:!1,copyable:!1,delegate:{move:g=>g.closestType(P)},name:r,classes:n,attributes:{[b]:d},components:{type:"textnode",content:"Item"},styles:`
8
- .${n} {
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,E)=>{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:E})})}}}),t.addType(h,{isComponent:M(h),model:{defaults:{name:l,tagName:"li",icon:D,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} {
9
9
  text-decoration: none;
10
10
  }
11
- `}}}),G({editor:t,licenseKey:a,plan:R,pluginName:F,cleanup:()=>{i.remove(m),e.removeType(m)}})})});
11
+ `}}}),K({editor:e,licenseKey:r,plan:Z,pluginName:Y,cleanup:()=>{i.remove(p),t.removeType(p)}})})});
@@ -1,4 +1,4 @@
1
- "use strict";const W="app.grapesjs.com",z="app-stage.grapesjs.com",X="app2.grapesjs.com",Z="app-stage2.grapesjs.com",U=[W,X,z,Z,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io"],Q="license:check:start",ee="license:check:end",te=()=>typeof window<"u",I=(e,s={})=>{const t=ne(e)?{id:e,src:e}:e;return new Promise((o,n)=>{var p,u;const{loadedScripts:r}=s,{id:i,src:l}=t,d=document.querySelector(`script[src="${l}"]`);if(d){if((p=s.onScript)==null||p.call(s,d),r&&!r.get(l)){d.addEventListener("load",()=>o(i)),d.addEventListener("error",()=>n(i));return}return o(i)}const g=window.define;window.define=void 0;const f=()=>{r==null||r.set(l,!0),window.define=g},a=document.createElement("script");a.src=l,a.onload=()=>{o(i),f()},a.onerror=()=>{n(i),f()},document.head.appendChild(a),(u=s.onScript)==null||u.call(s,a)})},oe=({isDev:e,isStage:s,isPlatform:t})=>`${e?"":`https://${s?z:W}`}/${t?"platform-api":"api"}`,se=()=>{const e=te()&&window.location.hostname;return!!e&&(U.includes(e)||U.some(s=>e.endsWith(s)))},ne=e=>typeof e=="string";async function ae({path:e,baseApiUrl:s,method:t="GET",headers:o={},params:n,body:r}){const l=`${s||oe({isDev:!1,isStage:!1})}${e}`,d={method:t,headers:{"Content-Type":"application/json",...o}};r&&(d.body=JSON.stringify(r));const g=n?new URLSearchParams(n).toString():"",f=g?`?${g}`:"",a=await fetch(`${l}${f}`,d);if(!a.ok)throw new Error(`HTTP error! status: ${a.status}`);return a.json()}var $=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))($||{}),K=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",e.dialogImportCode="studio:dialogImportCode",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.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={[$.free]:0,[$.startup]:10,[$.business]:20,[$.enterprise]:30};function re(e){const s=e;return s.init=t=>o=>e(o,t),s}const ie=e=>re(e);async function ce({editor:e,plan:s,pluginName:t,licenseKey:o,onLicenseCheckResponse:n,cleanup:r}){let i="",l=!1;const d=se(),g=a=>{console.warn("Cleanup plugin:",t,"Reason:",a),r()},f=(a={})=>{var c;const{error:p,sdkLicense:u}=a,m=(c=a.plan)==null?void 0:c.category;if(!(u||a.license)||p)g(p||"Invalid license");else if(m){const h=O[s],k=O[m];h>k&&g({pluginRequiredPlan:s,licensePlan:m})}};e.on(Q,a=>{i=a==null?void 0:a.baseApiUrl,l=!0}),e.on(ee,a=>{n==null||n(a),f(a)}),setTimeout(async()=>{if(!l){if(d)return;if(o){const a=await le({licenseKey:o,pluginName:t,baseApiUrl:i});n==null||n(a),a&&f(a)}else g("The `licenseKey` option not provided")}},2e3)}async function le(e){const{licenseKey:s,pluginName:t,baseApiUrl:o}=e;try{return(await ae({baseApiUrl:o,path:`/sdk/${s||"na"}`,method:"POST",params:{d:window.location.hostname,pn:t}})).result||{}}catch(n){return console.error("Error during SDK license check:",n),!1}}const de=e=>s=>{var t;return((t=s.getAttribute)==null?void 0:t.call(s,V))===e},pe=(...e)=>(s,t)=>e.some(o=>t.is(o)),C=(e,s,t)=>{const{doc:o=document}=t,n=t.target||o.head,r=n.querySelector(`style[${e}]`)||o.createElement("style");r.setAttribute(e,"true"),r.innerHTML=s,!n.contains(r)&&n.appendChild(r)},ge="gjs-plg-",q="data-gs-plg-",V="data-type-role";function N(e,s,t){let o,n,r,i,l;const d=s===void 0?100:s;function g(){const a=Date.now()-i;a<d&&a>=0?o=setTimeout(g,d-a):(o=null,l=e.apply(r,n),r=n=null)}const f=function(){return r=this,n=arguments,i=Date.now(),o||(o=setTimeout(g,d)),l};return f.clear=function(){o&&(clearTimeout(o),o=null)},f.flush=function(){o&&(l=e.apply(r,n),r=n=null,clearTimeout(o),o=null)},f}const A="page-break";var y=(e=>(e.A5="a5",e.A5Portrait="a5-portrait",e.A4="a4",e.A3="a3",e.B5="b5",e.B4="b4",e.letter="letter",e.legal="legal",e.ledger="ledger",e))(y||{});function _(e,s){const o={mm:3.7795275590551185,cm:37.79527559055118,in:96,pt:1.3333333333333333,pc:16};return o[s]?e*o[s]:null}const ue=(e,s)=>{const{name:t,id:o,width:n,height:r,unit:i}=e,{fixedHeight:l}=s,d=`${n}${i}`,g=`${r}${i}`;return{id:o||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${d} x ${g})`,sizeH:r,sizeW:n,sizeUnit:i,widthMedia:"",width:d,minHeight:l?"0":`${_(r,i)}px`,height:l?g:void 0}},G="page-breaks",D="gjs-page-breaks-spot",j=e=>e.type===G;function he(e){const{Devices:s}=e,{height:t,minHeight:o}=s.getSelected().attributes,r=parseFloat(`${t&&t!=="auto"?t:o}`),i=e.getWrapper(),l=i==null?void 0:i.getEl(),d=[];if(!i||!l)return d;const g=l.getBoundingClientRect().height,a=i.findType(A).map(u=>u.getEl()).filter(Boolean).map(u=>({top:u.offsetTop,height:u.offsetHeight}));let p=0;for(;p<g;){const u=a.find(m=>m.top>p&&m.top<p+r);u?(p=u.top+u.height,d.push(u.top)):(p+=r,p<g&&d.push(p))}return d}function fe(e,s){const{Canvas:t}=e,o=t.events,n=e.events;let r;const i=()=>{C(`${q}preset-printable-spots`,`.${D} {
1
+ "use strict";const C="app.grapesjs.com",z="app-stage.grapesjs.com",X="app2.grapesjs.com",Z="app-stage2.grapesjs.com",O=[C,X,z,Z,"localhost","127.0.0.1",".local-credentialless.webcontainer.io",".local.webcontainer.io","-sandpack.codesandbox.io",".claudemcpcontent.com",".web-sandbox.oaiusercontent.com"],Q="license:check:end",ee=()=>typeof window<"u",I=(e,n={})=>{const t=se(e)?{id:e,src:e}:e;return new Promise((o,a)=>{var d,u;const{loadedScripts:r}=n,{id:c,src:i}=t,l=document.querySelector(`script[src="${i}"]`);if(l){if((d=n.onScript)==null||d.call(n,l),r&&!r.get(i)){l.addEventListener("load",()=>o(c)),l.addEventListener("error",()=>a(c));return}return o(c)}const g=window.define;window.define=void 0;const f=()=>{r==null||r.set(i,!0),window.define=g},s=document.createElement("script");s.src=i,s.onload=()=>{o(c),f()},s.onerror=()=>{a(c),f()},document.head.appendChild(s),(u=n.onScript)==null||u.call(n,s)})},te=({isDev:e,isStage:n,isPlatform:t})=>`${e?"":`https://${n?z:C}`}/${t?"platform-api":"api"}`,oe=()=>{if(!ee())return"";const{hostname:e}=window.location;if(e)return e;try{return window.parent.location.hostname||""}catch{return""}},ne=()=>{const e=oe();return!!e&&(O.includes(e)||O.some(n=>e.endsWith(n)))},se=e=>typeof e=="string";async function ae({path:e,baseApiUrl:n,method:t="GET",headers:o={},params:a,body:r}){const i=`${n||te({isDev:!1,isStage:!1})}${e}`,l={method:t,headers:{"Content-Type":"application/json",...o}};r&&(l.body=JSON.stringify(r));const g=a?new URLSearchParams(a).toString():"",f=g?`?${g}`:"",s=await fetch(`${i}${f}`,l);if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);return s.json()}var k=(e=>(e.free="free",e.startup="startup",e.business="business",e.enterprise="enterprise",e))(k||{}),j=(e=>(e.toastAdd="studio:toastAdd",e.toastRemove="studio:toastRemove",e.dialogOpen="studio:dialogOpen",e.dialogClose="studio:dialogClose",e.dialogExportCode="studio:dialogExportCode",e.dialogImportCode="studio:dialogImportCode",e.sidebarLeftSet="studio:sidebarLeft:set",e.sidebarLeftGet="studio:sidebarLeft:get",e.sidebarLeftToggle="studio:sidebarLeft:toggle",e.sidebarRightSet="studio:sidebarRight:set",e.sidebarRightGet="studio:sidebarRight:get",e.sidebarRightToggle="studio:sidebarRight:toggle",e.sidebarTopSet="studio:sidebarTop:set",e.sidebarTopGet="studio:sidebarTop:get",e.sidebarTopToggle="studio:sidebarTop:toggle",e.sidebarBottomSet="studio:sidebarBottom:set",e.sidebarBottomGet="studio:sidebarBottom:get",e.sidebarBottomToggle="studio:sidebarBottom:toggle",e.symbolAdd="studio:symbolAdd",e.symbolDetach="studio:symbolDetach",e.symbolOverride="studio:symbolOverride",e.symbolPropagateStyles="studio:propagateStyles",e.getPagesConfig="studio:getPagesConfig",e.setPagesConfig="studio:setPagesConfig",e.getPageSettings="studio:getPageSettings",e.setPageSettings="studio:setPageSettings",e.clearPage="studio:clearPage",e.projectFiles="studio:projectFiles",e.validateCode="studio:validateCode",e.canvasReload="studio:canvasReload",e.getBlocksPanel="studio:getBlocksPanel",e.setBlocksPanel="studio:setBlocksPanel",e.getStateContextMenu="studio:getStateContextMenu",e.setStateContextMenu="studio:setStateContextMenu",e.contextMenuComponent="studio:contextMenuComponent",e.layoutAdd="studio:layoutAdd",e.layoutRemove="studio:layoutRemove",e.layoutToggle="studio:layoutToggle",e.layoutUpdate="studio:layoutUpdate",e.layoutGet="studio:layoutGet",e.layoutConfigGet="studio:layoutConfigGet",e.layoutConfigSet="studio:layoutConfigSet",e.layoutComponentAdd="studio:layoutComponentAdd",e.layoutComponentGet="studio:layoutComponentGet",e.layoutComponentRemove="studio:layoutComponentRemove",e.layoutComponentRender="studio:layoutComponentRender",e.getStateTheme="studio:getStateTheme",e.setStateTheme="studio:setStateTheme",e.settings="studio:settings",e.assetProviderGet="studio:assetProviderGet",e.assetProviderAdd="studio:assetProviderAdd",e.assetProviderRemove="studio:assetProviderRemove",e.fontGet="studio:fontGet",e.fontAdd="studio:fontAdd",e.fontRemove="studio:fontRemove",e.fontManagerOpen="studio:fontManagerOpen",e.menuFontLoad="studio:menuFontLoad",e.toggleStateDataSource="studio:toggleStateDataSource",e.getStateDataSource="studio:getStateDataSource",e.dataSourceSetGlobalData="studio:dataSourceSetGlobalData",e.dataSourceSetImporter="studio:dataSourceSetImporter",e.dataSourceSetExporter="studio:dataSourceSetExporter",e.setDragAbsolute="studio:setDragAbsolute",e))(j||{});const F={[k.free]:0,[k.startup]:10,[k.business]:20,[k.enterprise]:30};function re(e){const n=e;return n.init=t=>o=>e(o,t),n}const ie=e=>re(e);async function ce({editor:e,plan:n,pluginName:t,licenseKey:o,onLicenseCheckResponse:a,cleanup:r}){let c="",i;const l=s=>{console.warn("Cleanup plugin:",t,"Reason:",s),r()},g=(s={})=>{var p;const{error:d,sdkLicense:u}=s,b=(p=s.plan)==null?void 0:p.category;if(!(u||s.license)||d)l(d||"Invalid license");else if(b){const h=F[n],L=F[b];h>L&&l({pluginRequiredPlan:n,licensePlan:b})}};e.Commands.has(j.settings)&&(i=e.runCommand(j.settings),c=(i==null?void 0:i.baseUrl)||"");const f=s=>{a==null||a(s),s&&g(s)};if(!i){e.onReady(async()=>{if(!ne())if(o){const s=await pe({licenseKey:o,pluginName:t,baseApiUrl:c});f(s)}else l("The `licenseKey` option not provided")});return}if(i.licensePlan||i.licenseError){const s=le(i);f(s);return}e.on(Q,s=>f(s))}const le=e=>({sdkLicense:e.license,license:e.license,error:e.licenseError,plan:e.licensePlan});async function pe(e){const{licenseKey:n,pluginName:t,baseApiUrl:o}=e;try{return(await ae({baseApiUrl:o,path:`/sdk/${n||"na"}`,method:"POST",params:{d:window.location.hostname,pn:t}})).result||{}}catch(a){return console.error("Error during SDK license check:",a),!1}}const de=e=>n=>{var t;return((t=n.getAttribute)==null?void 0:t.call(n,V))===e},ge=(...e)=>(n,t)=>e.some(o=>t.is(o)),K=(e,n,t)=>{const{doc:o=document}=t,a=t.target||o.head,r=a.querySelector(`style[${e}]`)||o.createElement("style");r.setAttribute(e,"true"),r.innerHTML=n,!a.contains(r)&&a.appendChild(r)},ue="gjs-plg-",q="data-gs-plg-",V="data-type-role";function N(e,n,t){let o,a,r,c,i;const l=n===void 0?100:n;function g(){const s=Date.now()-c;s<l&&s>=0?o=setTimeout(g,l-s):(o=null,i=e.apply(r,a),r=a=null)}const f=function(){return r=this,a=arguments,c=Date.now(),o||(o=setTimeout(g,l)),i};return f.clear=function(){o&&(clearTimeout(o),o=null)},f.flush=function(){o&&(i=e.apply(r,a),r=a=null,clearTimeout(o),o=null)},f}const A="page-break";var y=(e=>(e.A5="a5",e.A5Portrait="a5-portrait",e.A4="a4",e.A3="a3",e.B5="b5",e.B4="b4",e.letter="letter",e.legal="legal",e.ledger="ledger",e))(y||{});function S(e,n){const o={mm:3.7795275590551185,cm:37.79527559055118,in:96,pt:1.3333333333333333,pc:16};return o[n]?e*o[n]:null}const he=(e,n)=>{const{name:t,id:o,width:a,height:r,unit:c}=e,{fixedHeight:i}=n,l=`${a}${c}`,g=`${r}${c}`;return{id:o||t.toLowerCase().replace(/\s/g,"-"),name:`${t} (${l} x ${g})`,sizeH:r,sizeW:a,sizeUnit:c,widthMedia:"",width:l,minHeight:i?"0":`${S(r,c)}px`,height:i?g:void 0}},_="page-breaks",D="gjs-page-breaks-spot",H=e=>e.type===_;function fe(e){const{Devices:n}=e,{height:t,minHeight:o}=n.getSelected().attributes,r=parseFloat(`${t&&t!=="auto"?t:o}`),c=e.getWrapper(),i=c==null?void 0:c.getEl(),l=[];if(!c||!i)return l;const g=i.getBoundingClientRect().height,s=c.findType(A).map(u=>u.getEl()).filter(Boolean).map(u=>({top:u.offsetTop,height:u.offsetHeight}));let d=0;for(;d<g;){const u=s.find(b=>b.top>d&&b.top<d+r);u?(d=u.top+u.height,l.push(u.top)):(d+=r,d<g&&l.push(d))}return l}function ve(e,n){const{Canvas:t}=e,o=t.events,a=e.events;let r;const c=()=>{K(`${q}preset-printable-spots`,`.${D} {
2
2
  position: absolute;
3
3
  left: 0;
4
4
  width: 100%;
@@ -16,7 +16,7 @@
16
16
  right: 0;
17
17
  transform: translate(100%, -50%);
18
18
  }
19
- `,{target:window.document.head})},l=()=>{if(s.enablePageBreaksSpot===!1)return;const c={id:G,type:G,component:e.getWrapper()};return t.getSpots(c).pop()||t.addSpot(c)},d=({spot:c})=>{const{spotEl:h}=c.attributes;!j(c)||!h||!r||r.removeChild(h)},g=({spot:c})=>{if(!j(c)||!r)return;let{spotEl:h}=c.attributes;h||(h=document.createElement("div"),h.className=`${D}__items`,c.set({spotEl:h})),r.appendChild(h)},f=({spot:c})=>{const{spotEl:h,pageBreaks:k=[]}=c.attributes;!j(c)||!h||!r||(Object.entries(c.getStyle()).forEach(([x,L])=>h.style.setProperty(x,L)),h.innerHTML="",k.forEach((x,L)=>{const E=document.createElement("div");E.setAttribute("data-page-number",`${L+2}`),E.className=D,E.style.top=`${x}px`,h.appendChild(E)}))},a=N(()=>{if(e.em.destroyed)return;const c=l();c&&c.set({pageBreaks:he(e),up:(c.attributes.up||0)+1})},150),p=N(a,200),u=()=>{r=t.getSpotsEl(),l()},m=()=>{const c=l();c&&c.set({up:(c.attributes.up||0)+1})},w=[["component:input",a],["frame:scroll",m],[n.update,a],[o.spotAdd,g],[o.spotUpdate,f],[o.spotRemove,d],[o.frameLoadBody,u]];return w.forEach(([c,h])=>e.on(c,h)),e.onReady(()=>{i(),new ResizeObserver(m).observe(t.getElement().parentElement)}),()=>{w.forEach(([c,h])=>e.off(c,h)),a.clear(),p.clear()}}var H=(e=>(e.print="presetPrintable:print",e))(H||{});const F=e=>new Promise(s=>{const t=document.createElement("iframe");t.style.cssText="position: absolute; width: 0; height: 0; border: 0; opacity: 0; pointer-events: none;",t.srcdoc=e.content,t.onload=()=>s(t),document.body.appendChild(t)});function ve(e,s){const{Commands:t,Pages:o}=e;return t.add(H.print,async(n,r,i={})=>{const l={page:i.allPages?void 0:o.getSelected(),styles:"inline",optionsHtml:{exporter:null}},g=(await t.run(K.projectFiles,l)).filter(p=>p.filename.endsWith(".html")),f=g.map(p=>p.content).join('<div style="break-before: page;"></div>'),a=[];if(i.separatePrints)for(const p of g)a.push(await F(p));else a.push(await F({content:f,filename:"",mimeType:""}));for(const p of a){const u=p.contentWindow;u.focus(),u.print()}setTimeout(()=>a.forEach(p=>p.remove()),1e3)}),t.add("presetPrintable:exp",async n=>{await I("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"),await I("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");const{Devices:r,Canvas:i}=n,{sizeW:l,sizeH:d,sizeUnit:g}=r.getSelected().attributes,f=i.getFrameEl().contentDocument,a="px",p=[_(l,g),_(d,g)],u=new window.jspdf.jsPDF({unit:a,format:p}),m=f.body;u.html(m,{callback:w=>w.save()})}),()=>{delete e.Commands.commands[H.print]}}function be(e,s){const{blockPageBreak:t={}}=s,{Components:o,Blocks:n}=e,r="Page Break",i=`${ge}${A}`;return o.addType(A,{block:t&&{label:r,media:'<svg viewBox="0 0 24 24"><path d="M18 20H6v-2H4v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2h-2v2M14 2H6a2 2 0 0 0-2 2v8h2V4h8v4h4v4h2V8l-6-6m-3 14H8v-2h3v2m5 0h-3v-2h3v2M3 14h3v2H3v-2m18 2h-3v-2h3v2Z"/></svg>',category:"Extra",select:!0,...t},isComponent:de(A),model:{defaults:{name:r,classes:i,attributes:{[V]:A},emptyState:!0,stylable:!1,droppable:!1,draggable:pe("wrapper"),styles:`.${i} { break-before: page; }`,traits:[]}}}),()=>{o.removeType(A),n.remove(A)}}const me="presetPrintable",ye=$.free,we=function(e,s={}){var M;const t={selectedDevice:y.A4,...s},{Canvas:o,Devices:n,Blocks:r}=e,i=o.events,l=e.events,d=t.selectedDevice||n.getConfig().default,g=[{id:y.A5,name:"A5",width:148,height:210,unit:"mm"},{id:y.A5Portrait,name:"A5 Portrait",width:210,height:148,unit:"mm"},{id:y.A4,name:"A4",width:210,height:297,unit:"mm"},{id:y.A3,name:"A3",width:297,height:420,unit:"mm"},{id:y.B5,name:"B5",width:176,height:250,unit:"mm"},{id:y.B4,name:"B4",width:250,height:353,unit:"mm"},{id:y.letter,name:"Letter",width:8.5,height:11,unit:"in"},{id:y.legal,name:"Legal",width:8.5,height:14,unit:"in"},{id:y.ledger,name:"Ledger",width:11,height:17,unit:"in"}],a=(((M=t.devices)==null?void 0:M.call(t,{items:g}))||g).map(v=>ue(v,t));n.devices.reset(a);const p=d&&n.get(d)||n.getAll().at(0);n.select(p),["map","video"].forEach(v=>r.remove(v));const m=(v={})=>{const b="page-rule",{rules:P}=e.Css,{width:T,height:B,minHeight:R}=n.getSelected().attributes,Y=B&&B!=="auto"?B:R,S=P.where({id:b}).pop(),J=S||P.add({id:b,selectors:[],selectorsAdd:"@page"},{at:0});(v.fromDeviceChange||!S)&&J.addStyle({size:`${T} ${Y}`,...!S&&{margin:"0"}})},w=(v,b={})=>{const P=v.document,{minHeight:T}=n.getSelected().attributes,R=`
19
+ `,{target:window.document.head})},i=()=>{if(n.enablePageBreaksSpot===!1)return;const p={id:_,type:_,component:e.getWrapper()};return t.getSpots(p).pop()||t.addSpot(p)},l=({spot:p})=>{const{spotEl:h}=p.attributes;!H(p)||!h||!r||r.removeChild(h)},g=({spot:p})=>{if(!H(p)||!r)return;let{spotEl:h}=p.attributes;h||(h=document.createElement("div"),h.className=`${D}__items`,p.set({spotEl:h})),r.appendChild(h)},f=({spot:p})=>{const{spotEl:h,pageBreaks:L=[]}=p.attributes;!H(p)||!h||!r||(Object.entries(p.getStyle()).forEach(([$,x])=>h.style.setProperty($,x)),h.innerHTML="",L.forEach(($,x)=>{const E=document.createElement("div");E.setAttribute("data-page-number",`${x+2}`),E.className=D,E.style.top=`${$}px`,h.appendChild(E)}))},s=N(()=>{if(e.em.destroyed)return;const p=i();p&&p.set({pageBreaks:fe(e),up:(p.attributes.up||0)+1})},150),d=N(s,200),u=()=>{r=t.getSpotsEl(),i()},b=()=>{const p=i();p&&p.set({up:(p.attributes.up||0)+1})},w=[["component:input",s],["frame:scroll",b],[a.update,s],[o.spotAdd,g],[o.spotUpdate,f],[o.spotRemove,l],[o.frameLoadBody,u]];return w.forEach(([p,h])=>e.on(p,h)),e.onReady(()=>{c(),new ResizeObserver(b).observe(t.getElement().parentElement)}),()=>{w.forEach(([p,h])=>e.off(p,h)),s.clear(),d.clear()}}var M=(e=>(e.print="presetPrintable:print",e))(M||{});const W=e=>new Promise(n=>{const t=document.createElement("iframe");t.style.cssText="position: absolute; width: 0; height: 0; border: 0; opacity: 0; pointer-events: none;",t.srcdoc=e.content,t.onload=()=>n(t),document.body.appendChild(t)});function me(e,n){const{Commands:t,Pages:o}=e;return t.add(M.print,async(a,r,c={})=>{const i={page:c.allPages?void 0:o.getSelected(),styles:"inline",optionsHtml:{exporter:null}},g=(await t.run(j.projectFiles,i)).filter(d=>d.filename.endsWith(".html")),f=g.map(d=>d.content).join('<div style="break-before: page;"></div>'),s=[];if(c.separatePrints)for(const d of g)s.push(await W(d));else s.push(await W({content:f,filename:"",mimeType:""}));for(const d of s){const u=d.contentWindow;u.focus(),u.print()}setTimeout(()=>s.forEach(d=>d.remove()),1e3)}),t.add("presetPrintable:exp",async a=>{await I("https://cdn.jsdelivr.net/npm/html2canvas@1.4.1/dist/html2canvas.min.js"),await I("https://cdn.jsdelivr.net/npm/jspdf@3.0.0/dist/jspdf.umd.min.js");const{Devices:r,Canvas:c}=a,{sizeW:i,sizeH:l,sizeUnit:g}=r.getSelected().attributes,f=c.getFrameEl().contentDocument,s="px",d=[S(i,g),S(l,g)],u=new window.jspdf.jsPDF({unit:s,format:d}),b=f.body;u.html(b,{callback:w=>w.save()})}),()=>{delete e.Commands.commands[M.print]}}function be(e,n){const{blockPageBreak:t={}}=n,{Components:o,Blocks:a}=e,r="Page Break",c=`${ue}${A}`;return o.addType(A,{block:t&&{label:r,media:'<svg viewBox="0 0 24 24"><path d="M18 20H6v-2H4v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2h-2v2M14 2H6a2 2 0 0 0-2 2v8h2V4h8v4h4v4h2V8l-6-6m-3 14H8v-2h3v2m5 0h-3v-2h3v2M3 14h3v2H3v-2m18 2h-3v-2h3v2Z"/></svg>',category:"Extra",select:!0,...t},isComponent:de(A),model:{defaults:{name:r,classes:c,attributes:{[V]:A},emptyState:!0,stylable:!1,droppable:!1,draggable:ge("wrapper"),styles:`.${c} { break-before: page; }`,traits:[]}}}),()=>{o.removeType(A),a.remove(A)}}const ye="presetPrintable",we=k.free,Pe=function(e,n={}){var U;const t={selectedDevice:y.A4,...n},{Canvas:o,Devices:a,Blocks:r}=e,c=o.events,i=e.events,l=t.selectedDevice||a.getConfig().default,g=[{id:y.A5,name:"A5",width:148,height:210,unit:"mm"},{id:y.A5Portrait,name:"A5 Portrait",width:210,height:148,unit:"mm"},{id:y.A4,name:"A4",width:210,height:297,unit:"mm"},{id:y.A3,name:"A3",width:297,height:420,unit:"mm"},{id:y.B5,name:"B5",width:176,height:250,unit:"mm"},{id:y.B4,name:"B4",width:250,height:353,unit:"mm"},{id:y.letter,name:"Letter",width:8.5,height:11,unit:"in"},{id:y.legal,name:"Legal",width:8.5,height:14,unit:"in"},{id:y.ledger,name:"Ledger",width:11,height:17,unit:"in"}],s=(((U=t.devices)==null?void 0:U.call(t,{items:g}))||g).map(v=>he(v,t));a.devices.reset(s);const d=l&&a.get(l)||a.getAll().at(0);a.select(d),["map","video"].forEach(v=>r.remove(v));const b=(v={})=>{const m="page-rule",{rules:P}=e.Css,{width:T,height:B,minHeight:R}=a.getSelected().attributes,Y=B&&B!=="auto"?B:R,G=P.where({id:m}).pop(),J=G||P.add({id:m,selectors:[],selectorsAdd:"@page"},{at:0});(v.fromDeviceChange||!G)&&J.addStyle({size:`${T} ${Y}`,...!G&&{margin:"0"}})},w=(v,m={})=>{const P=v.document,{minHeight:T}=a.getSelected().attributes,R=`
20
20
  ${!!parseFloat(`${T}`)?`
21
21
  [data-gjs-type="wrapper"] { min-height: ${T}; }
22
22
  `:`
@@ -29,4 +29,4 @@
29
29
  height: 100dvh;
30
30
  }
31
31
  `}
32
- `;C(`${q}preset-printable`,R,{doc:P,target:P.head}),m(b)};e.on(i.frameLoadBody,v=>{const b=v.window;if(w(b),t.fixedHeight){const T=v.model.getComponent().getEl();T==null||T.addEventListener("scroll",B=>{const R=B.target;R.scrollTop>0&&R.scrollTo(0,0)})}}),e.on(n.events.select,()=>{var b;const v=(b=o.getFrameEl().contentDocument)==null?void 0:b.defaultView;v&&w(v,{fromDeviceChange:!0})});const c=()=>{const b=e.Css.getRules().filter(P=>P.selectorsToString()==="body").pop();b==null||b.addStyle({"margin-top":"","margin-right":"","margin-bottom":"","margin-left":"",margin:"0"})},h=[[l.projectLoad,c]];h.forEach(([v,b])=>e.on(v,b));const k=fe(e,t),x=ve(e),L=be(e,t);e.onReady(()=>{e.UndoManager.clear()});const E=()=>{h.forEach(([v,b])=>e.off(v,b)),k(),x(),L()};e.on(l.destroy,E),ce({editor:e,licenseKey:t.licenseKey,plan:ye,pluginName:me,cleanup:E})},Pe=ie(we);module.exports=Pe;
32
+ `;K(`${q}preset-printable`,R,{doc:P,target:P.head}),b(m)};e.on(c.frameLoadBody,v=>{const m=v.window;if(w(m),t.fixedHeight){const T=v.model.getComponent().getEl();T==null||T.addEventListener("scroll",B=>{const R=B.target;R.scrollTop>0&&R.scrollTo(0,0)})}}),e.on(a.events.select,()=>{var m;const v=(m=o.getFrameEl().contentDocument)==null?void 0:m.defaultView;v&&w(v,{fromDeviceChange:!0})});const p=()=>{const m=e.Css.getRules().filter(P=>P.selectorsToString()==="body").pop();m==null||m.addStyle({"margin-top":"","margin-right":"","margin-bottom":"","margin-left":"",margin:"0"})},h=[[i.projectLoad,p]];h.forEach(([v,m])=>e.on(v,m));const L=ve(e,t),$=me(e),x=be(e,t);e.onReady(()=>{e.UndoManager.clear()});const E=()=>{h.forEach(([v,m])=>e.off(v,m)),L(),$(),x()};e.on(i.destroy,E),ce({editor:e,licenseKey:t.licenseKey,plan:we,pluginName:ye,cleanup:E})},Te=ie(Pe);module.exports=Te;