@storyblok/astro 6.1.0 → 6.2.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.
@@ -1,4 +1,4 @@
1
- const E = `<svg width="45px" height="53px" viewBox="0 0 45 53" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
1
+ const te = `<svg width="45px" height="53px" viewBox="0 0 45 53" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
2
  <g id="storyblok-logo-kit" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
3
3
  <g id="storyblok-partner-logo" transform="translate(-59.000000, -169.000000)" fill-rule="nonzero">
4
4
  <g id="storyblok-symbol" transform="translate(59.000000, 169.000000)">
@@ -7,74 +7,74 @@ const E = `<svg width="45px" height="53px" viewBox="0 0 45 53" version="1.1" xml
7
7
  </g>
8
8
  </g>
9
9
  </g>
10
- </svg>`, L = /[\p{Lu}]/u, T = /[\p{Ll}]/u, k = /^[\p{Lu}](?![\p{Lu}])/gu, A = /([\p{Alpha}\p{N}_]|$)/u, b = /[_.\- ]+/, j = new RegExp("^" + b.source), w = new RegExp(b.source + A.source, "gu"), $ = new RegExp("\\d+" + A.source, "gu"), R = (r, t, e, o) => {
11
- let s = !1, n = !1, a = !1, l = !1;
12
- for (let i = 0; i < r.length; i++) {
13
- const c = r[i];
14
- l = i > 2 ? r[i - 3] === "-" : !0, s && L.test(c) ? (r = r.slice(0, i) + "-" + r.slice(i), s = !1, a = n, n = !0, i++) : n && a && T.test(c) && (!l || o) ? (r = r.slice(0, i - 1) + "-" + r.slice(i - 1), a = n, n = !1, s = !0) : (s = t(c) === c && e(c) !== c, a = n, n = e(c) === c && t(c) !== c);
10
+ </svg>`, re = /[\p{Lu}]/u, oe = /[\p{Ll}]/u, M = /^[\p{Lu}](?![\p{Lu}])/gu, q = /([\p{Alpha}\p{N}_]|$)/u, j = /[_.\- ]+/, se = new RegExp("^" + j.source), N = new RegExp(j.source + q.source, "gu"), P = new RegExp("\\d+" + q.source, "gu"), ne = (t, e, r, o) => {
11
+ let n = !1, s = !1, l = !1, p = !1;
12
+ for (let c = 0; c < t.length; c++) {
13
+ const u = t[c];
14
+ p = c > 2 ? t[c - 3] === "-" : !0, n && re.test(u) ? (t = t.slice(0, c) + "-" + t.slice(c), n = !1, l = s, s = !0, c++) : s && l && oe.test(u) && (!p || o) ? (t = t.slice(0, c - 1) + "-" + t.slice(c - 1), l = s, s = !1, n = !0) : (n = e(u) === u && r(u) !== u, l = s, s = r(u) === u && e(u) !== u);
15
15
  }
16
- return r;
17
- }, M = (r, t) => (k.lastIndex = 0, r.replaceAll(k, (e) => t(e))), O = (r, t) => (w.lastIndex = 0, $.lastIndex = 0, r.replaceAll($, (e, o, s) => ["_", "-"].includes(r.charAt(s + e.length)) ? e : t(e)).replaceAll(w, (e, o) => t(o)));
18
- function P(r, t) {
19
- if (!(typeof r == "string" || Array.isArray(r)))
16
+ return t;
17
+ }, ae = (t, e) => (M.lastIndex = 0, t.replaceAll(M, (r) => e(r))), le = (t, e) => (N.lastIndex = 0, P.lastIndex = 0, t.replaceAll(P, (r, o, n) => ["_", "-"].includes(t.charAt(n + r.length)) ? r : e(r)).replaceAll(N, (r, o) => e(o)));
18
+ function ie(t, e) {
19
+ if (!(typeof t == "string" || Array.isArray(t)))
20
20
  throw new TypeError("Expected the input to be `string | string[]`");
21
- if (t = {
21
+ if (e = {
22
22
  pascalCase: !1,
23
23
  preserveConsecutiveUppercase: !1,
24
- ...t
25
- }, Array.isArray(r) ? r = r.map((n) => n.trim()).filter((n) => n.length).join("-") : r = r.trim(), r.length === 0)
24
+ ...e
25
+ }, Array.isArray(t) ? t = t.map((s) => s.trim()).filter((s) => s.length).join("-") : t = t.trim(), t.length === 0)
26
26
  return "";
27
- const e = t.locale === !1 ? (n) => n.toLowerCase() : (n) => n.toLocaleLowerCase(t.locale), o = t.locale === !1 ? (n) => n.toUpperCase() : (n) => n.toLocaleUpperCase(t.locale);
28
- return r.length === 1 ? b.test(r) ? "" : t.pascalCase ? o(r) : e(r) : (r !== e(r) && (r = R(r, e, o, t.preserveConsecutiveUppercase)), r = r.replace(j, ""), r = t.preserveConsecutiveUppercase ? M(r, e) : e(r), t.pascalCase && (r = o(r.charAt(0)) + r.slice(1)), O(r, o));
27
+ const r = e.locale === !1 ? (s) => s.toLowerCase() : (s) => s.toLocaleLowerCase(e.locale), o = e.locale === !1 ? (s) => s.toUpperCase() : (s) => s.toLocaleUpperCase(e.locale);
28
+ return t.length === 1 ? j.test(t) ? "" : e.pascalCase ? o(t) : r(t) : (t !== r(t) && (t = ne(t, r, o, e.preserveConsecutiveUppercase)), t = t.replace(se, ""), t = e.preserveConsecutiveUppercase ? ae(t, r) : r(t), e.pascalCase && (t = o(t.charAt(0)) + t.slice(1)), le(t, o));
29
29
  }
30
- function v(r) {
31
- return P(r);
30
+ function B(t) {
31
+ return ie(t);
32
32
  }
33
- function _(r, t = {}, e, o) {
34
- const s = "virtual:storyblok-components", n = `\0${s}`;
33
+ function ce(t, e = {}, r, o) {
34
+ const n = "virtual:storyblok-components", s = `\0${n}`;
35
35
  return {
36
36
  name: "vite-plugin-storyblok-components",
37
- async resolveId(a) {
38
- if (a === s)
39
- return n;
37
+ async resolveId(l) {
38
+ if (l === n)
39
+ return s;
40
40
  },
41
- async load(a) {
42
- if (a === n) {
43
- const l = [], i = [];
44
- for await (const [u, p] of Object.entries(t)) {
45
- const f = await this.resolve(
46
- `/${r}/${p}.astro`
41
+ async load(l) {
42
+ if (l === s) {
43
+ const p = [], c = [];
44
+ for await (const [f, $] of Object.entries(e)) {
45
+ const T = await this.resolve(
46
+ `/${t}/${$}.astro`
47
47
  );
48
- if (f)
49
- l.push(`import ${v(u)} from "${f.id}"`);
50
- else if (e)
51
- i.push(u);
48
+ if (T)
49
+ p.push(`import ${B(f)} from "${T.id}"`);
50
+ else if (r)
51
+ c.push(f);
52
52
  else
53
53
  throw new Error(
54
- `Component could not be found for blok "${u}"! Does "${`/${r}/${p}`}.astro" exist?`
54
+ `Component could not be found for blok "${f}"! Does "${`/${t}/${$}`}.astro" exist?`
55
55
  );
56
56
  }
57
- let c = "";
58
- if (e)
59
- if (c = ",FallbackComponent", o) {
60
- const u = await this.resolve(
61
- `/${r}/${o}.astro`
57
+ let u = "";
58
+ if (r)
59
+ if (u = ",FallbackComponent", o) {
60
+ const f = await this.resolve(
61
+ `/${t}/${o}.astro`
62
62
  );
63
- if (!u)
63
+ if (!f)
64
64
  throw new Error(
65
- `Custom fallback component could not be found. Does "${`/${r}/${o}`}.astro" exist?`
65
+ `Custom fallback component could not be found. Does "${`/${t}/${o}`}.astro" exist?`
66
66
  );
67
- l.push(
68
- `import FallbackComponent from "${u.id}"`
67
+ p.push(
68
+ `import FallbackComponent from "${f.id}"`
69
69
  );
70
70
  } else
71
- l.push(
71
+ p.push(
72
72
  "import FallbackComponent from '@storyblok/astro/FallbackComponent.astro'"
73
73
  );
74
- if (Object.values(t).length)
75
- return `${l.join(";")};export default {${Object.keys(t).filter((u) => !i.includes(u)).map((u) => v(u)).join(",")}${c}}`;
76
- if (e)
77
- return `${l[0]}; export default {${c.replace(",", "")}}`;
74
+ if (Object.values(e).length)
75
+ return `${p.join(";")};export default {${Object.keys(e).filter((f) => !c.includes(f)).map((f) => B(f)).join(",")}${u}}`;
76
+ if (r)
77
+ return `${p[0]}; export default {${u.replace(",", "")}}`;
78
78
  throw new Error(
79
79
  `Currently, no Storyblok components are registered in astro.config.mjs.
80
80
  Please register your components or enable the fallback component.
@@ -84,76 +84,76 @@ Detailed information can be found here: https://github.com/storyblok/storyblok-a
84
84
  }
85
85
  };
86
86
  }
87
- function N(r, t, e) {
88
- const o = "virtual:storyblok-init", s = `\0${o}`;
87
+ function ue(t, e, r) {
88
+ const o = "virtual:storyblok-init", n = `\0${o}`;
89
89
  return {
90
90
  name: "vite-plugin-storyblok-init",
91
- async resolveId(n) {
92
- if (n === o)
93
- return s;
91
+ async resolveId(s) {
92
+ if (s === o)
93
+ return n;
94
94
  },
95
- async load(n) {
96
- if (n === s)
95
+ async load(s) {
96
+ if (s === n)
97
97
  return `
98
98
  import { storyblokInit, apiPlugin } from "@storyblok/js";
99
99
  const { storyblokApi } = storyblokInit({
100
- accessToken: "${r}",
101
- use: ${t ? "[]" : "[apiPlugin]"},
102
- apiOptions: ${JSON.stringify(e)},
100
+ accessToken: "${t}",
101
+ use: ${e ? "[]" : "[apiPlugin]"},
102
+ apiOptions: ${JSON.stringify(r)},
103
103
  });
104
104
  export const storyblokApiInstance = storyblokApi;
105
105
  `;
106
106
  }
107
107
  };
108
108
  }
109
- function z(r) {
110
- const t = "virtual:storyblok-options", e = `\0${t}`;
109
+ function de(t) {
110
+ const e = "virtual:storyblok-options", r = `\0${e}`;
111
111
  return {
112
112
  name: "vite-plugin-storyblok-options",
113
113
  async resolveId(o) {
114
- if (o === t)
115
- return e;
114
+ if (o === e)
115
+ return r;
116
116
  },
117
117
  async load(o) {
118
- if (o === e)
119
- return `export default ${JSON.stringify(r)}`;
118
+ if (o === r)
119
+ return `export default ${JSON.stringify(t)}`;
120
120
  }
121
121
  };
122
122
  }
123
- let C = !1;
124
- const I = [], B = (r) => new Promise((t, e) => {
125
- if (typeof window > "u" || (window.storyblokRegisterEvent = (s) => {
123
+ let D = !1;
124
+ const U = [], ge = (t) => new Promise((e, r) => {
125
+ if (typeof window > "u" || (window.storyblokRegisterEvent = (n) => {
126
126
  if (window.location === window.parent.location) {
127
127
  console.warn("You are not in Draft Mode or in the Visual Editor.");
128
128
  return;
129
129
  }
130
- C ? s() : I.push(s);
130
+ D ? n() : U.push(n);
131
131
  }, document.getElementById("storyblok-javascript-bridge")))
132
132
  return;
133
133
  const o = document.createElement("script");
134
- o.async = !0, o.src = r, o.id = "storyblok-javascript-bridge", o.onerror = (s) => e(s), o.onload = (s) => {
135
- I.forEach((n) => n()), C = !0, t(s);
134
+ o.async = !0, o.src = t, o.id = "storyblok-javascript-bridge", o.onerror = (n) => r(n), o.onload = (n) => {
135
+ U.forEach((s) => s()), D = !0, e(n);
136
136
  }, document.getElementsByTagName("head")[0].appendChild(o);
137
137
  });
138
- var D = Object.defineProperty, F = (r, t, e) => t in r ? D(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e, g = (r, t, e) => F(r, typeof t != "symbol" ? t + "" : t, e);
139
- class U {
138
+ var pe = Object.defineProperty, he = (t, e, r) => e in t ? pe(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r, C = (t, e, r) => he(t, typeof e != "symbol" ? e + "" : e, r);
139
+ class fe {
140
140
  constructor() {
141
- g(this, "isCDNUrl", (t = "") => t.includes("/cdn/")), g(this, "getOptionsPage", (t, e = 25, o = 1) => ({
142
- ...t,
143
- per_page: e,
141
+ C(this, "isCDNUrl", (e = "") => e.includes("/cdn/")), C(this, "getOptionsPage", (e, r = 25, o = 1) => ({
142
+ ...e,
143
+ per_page: r,
144
144
  page: o
145
- })), g(this, "delay", (t) => new Promise((e) => setTimeout(e, t))), g(this, "arrayFrom", (t = 0, e) => Array.from({ length: t }, e)), g(this, "range", (t = 0, e = t) => {
146
- const o = Math.abs(e - t) || 0, s = t < e ? 1 : -1;
147
- return this.arrayFrom(o, (n, a) => a * s + t);
148
- }), g(this, "asyncMap", async (t, e) => Promise.all(t.map(e))), g(this, "flatMap", (t = [], e) => t.map(e).reduce((o, s) => [...o, ...s], [])), g(this, "escapeHTML", function(t) {
149
- const e = {
145
+ })), C(this, "delay", (e) => new Promise((r) => setTimeout(r, e))), C(this, "arrayFrom", (e = 0, r) => Array.from({ length: e }, r)), C(this, "range", (e = 0, r = e) => {
146
+ const o = Math.abs(r - e) || 0, n = e < r ? 1 : -1;
147
+ return this.arrayFrom(o, (s, l) => l * n + e);
148
+ }), C(this, "asyncMap", async (e, r) => Promise.all(e.map(r))), C(this, "flatMap", (e = [], r) => e.map(r).reduce((o, n) => [...o, ...n], [])), C(this, "escapeHTML", function(e) {
149
+ const r = {
150
150
  "&": "&amp;",
151
151
  "<": "&lt;",
152
152
  ">": "&gt;",
153
153
  '"': "&quot;",
154
154
  "'": "&#39;"
155
- }, o = /[&<>"']/g, s = new RegExp(o.source);
156
- return t && s.test(t) ? t.replace(o, (n) => e[n]) : t;
155
+ }, o = /[&<>"']/g, n = new RegExp(o.source);
156
+ return e && n.test(e) ? e.replace(o, (s) => r[s]) : e;
157
157
  });
158
158
  }
159
159
  /**
@@ -163,226 +163,229 @@ class U {
163
163
  * @param {boolean} isArray
164
164
  * @return {string} Stringified object
165
165
  */
166
- stringify(t, e, o) {
167
- const s = [];
168
- for (const n in t) {
169
- if (!Object.prototype.hasOwnProperty.call(t, n))
166
+ stringify(e, r, o) {
167
+ const n = [];
168
+ for (const s in e) {
169
+ if (!Object.prototype.hasOwnProperty.call(e, s))
170
170
  continue;
171
- const a = t[n], l = o ? "" : encodeURIComponent(n);
172
- let i;
173
- typeof a == "object" ? i = this.stringify(
174
- a,
175
- e ? e + encodeURIComponent(`[${l}]`) : l,
176
- Array.isArray(a)
177
- ) : i = `${e ? e + encodeURIComponent(`[${l}]`) : l}=${encodeURIComponent(a)}`, s.push(i);
171
+ const l = e[s];
172
+ if (l == null)
173
+ continue;
174
+ const p = o ? "" : encodeURIComponent(s);
175
+ let c;
176
+ typeof l == "object" ? c = this.stringify(
177
+ l,
178
+ r ? r + encodeURIComponent(`[${p}]`) : p,
179
+ Array.isArray(l)
180
+ ) : c = `${r ? r + encodeURIComponent(`[${p}]`) : p}=${encodeURIComponent(l)}`, n.push(c);
178
181
  }
179
- return s.join("&");
182
+ return n.join("&");
180
183
  }
181
184
  /**
182
185
  * @method getRegionURL
183
186
  * @param {string} regionCode region code, could be eu, us, cn, ap or ca
184
187
  * @return {string} The base URL of the region
185
188
  */
186
- getRegionURL(t) {
187
- const e = "api.storyblok.com", o = "api-us.storyblok.com", s = "app.storyblokchina.cn", n = "api-ap.storyblok.com", a = "api-ca.storyblok.com";
188
- switch (t) {
189
+ getRegionURL(e) {
190
+ const r = "api.storyblok.com", o = "api-us.storyblok.com", n = "app.storyblokchina.cn", s = "api-ap.storyblok.com", l = "api-ca.storyblok.com";
191
+ switch (e) {
189
192
  case "us":
190
193
  return o;
191
194
  case "cn":
192
- return s;
193
- case "ap":
194
195
  return n;
196
+ case "ap":
197
+ return s;
195
198
  case "ca":
196
- return a;
199
+ return l;
197
200
  default:
198
- return e;
201
+ return r;
199
202
  }
200
203
  }
201
204
  }
202
- const q = function(r, t) {
203
- const e = {};
204
- for (const o in r) {
205
- const s = r[o];
206
- t.includes(o) && s !== null && (e[o] = s);
205
+ const be = function(t, e) {
206
+ const r = {};
207
+ for (const o in t) {
208
+ const n = t[o];
209
+ e.includes(o) && n !== null && (r[o] = n);
207
210
  }
208
- return e;
209
- }, H = (r) => r === "email", J = () => ({
211
+ return r;
212
+ }, ye = (t) => t === "email", me = () => ({
210
213
  singleTag: "hr"
211
- }), W = () => ({
214
+ }), ke = () => ({
212
215
  tag: "blockquote"
213
- }), K = () => ({
216
+ }), $e = () => ({
214
217
  tag: "ul"
215
- }), V = (r) => ({
218
+ }), we = (t) => ({
216
219
  tag: [
217
220
  "pre",
218
221
  {
219
222
  tag: "code",
220
- attrs: r.attrs
223
+ attrs: t.attrs
221
224
  }
222
225
  ]
223
- }), Z = () => ({
226
+ }), Te = () => ({
224
227
  singleTag: "br"
225
- }), G = (r) => ({
226
- tag: `h${r.attrs.level}`
227
- }), Y = (r) => ({
228
+ }), ve = (t) => ({
229
+ tag: `h${t.attrs.level}`
230
+ }), Ee = (t) => ({
228
231
  singleTag: [
229
232
  {
230
233
  tag: "img",
231
- attrs: q(r.attrs, ["src", "alt", "title"])
234
+ attrs: be(t.attrs, ["src", "alt", "title"])
232
235
  }
233
236
  ]
234
- }), Q = () => ({
237
+ }), Ce = () => ({
235
238
  tag: "li"
236
- }), X = () => ({
239
+ }), Ie = () => ({
237
240
  tag: "ol"
238
- }), ee = () => ({
241
+ }), Se = () => ({
239
242
  tag: "p"
240
- }), te = (r) => ({
243
+ }), Le = (t) => ({
241
244
  tag: [
242
245
  {
243
246
  tag: "span",
244
247
  attrs: {
245
248
  "data-type": "emoji",
246
- "data-name": r.attrs.name,
247
- emoji: r.attrs.emoji
249
+ "data-name": t.attrs.name,
250
+ emoji: t.attrs.emoji
248
251
  }
249
252
  }
250
253
  ]
251
- }), re = () => ({
254
+ }), Ae = () => ({
252
255
  tag: "b"
253
- }), oe = () => ({
256
+ }), Re = () => ({
254
257
  tag: "s"
255
- }), se = () => ({
258
+ }), xe = () => ({
256
259
  tag: "u"
257
- }), ne = () => ({
260
+ }), Oe = () => ({
258
261
  tag: "strong"
259
- }), ae = () => ({
262
+ }), je = () => ({
260
263
  tag: "code"
261
- }), le = () => ({
264
+ }), _e = () => ({
262
265
  tag: "i"
263
- }), ie = (r) => {
264
- if (!r.attrs)
266
+ }), Me = (t) => {
267
+ if (!t.attrs)
265
268
  return {
266
269
  tag: ""
267
270
  };
268
- const t = new U().escapeHTML, e = { ...r.attrs }, { linktype: o = "url" } = r.attrs;
269
- if (delete e.linktype, e.href && (e.href = t(r.attrs.href || "")), H(o) && (e.href = `mailto:${e.href}`), e.anchor && (e.href = `${e.href}#${e.anchor}`, delete e.anchor), e.custom) {
270
- for (const s in e.custom)
271
- e[s] = e.custom[s];
272
- delete e.custom;
271
+ const e = new fe().escapeHTML, r = { ...t.attrs }, { linktype: o = "url" } = t.attrs;
272
+ if (delete r.linktype, r.href && (r.href = e(t.attrs.href || "")), ye(o) && (r.href = `mailto:${r.href}`), r.anchor && (r.href = `${r.href}#${r.anchor}`, delete r.anchor), r.custom) {
273
+ for (const n in r.custom)
274
+ r[n] = r.custom[n];
275
+ delete r.custom;
273
276
  }
274
277
  return {
275
278
  tag: [
276
279
  {
277
280
  tag: "a",
278
- attrs: e
281
+ attrs: r
279
282
  }
280
283
  ]
281
284
  };
282
- }, ce = (r) => ({
285
+ }, Ne = (t) => ({
283
286
  tag: [
284
287
  {
285
288
  tag: "span",
286
- attrs: r.attrs
289
+ attrs: t.attrs
287
290
  }
288
291
  ]
289
- }), ue = () => ({
292
+ }), Pe = () => ({
290
293
  tag: "sub"
291
- }), de = () => ({
294
+ }), Be = () => ({
292
295
  tag: "sup"
293
- }), ge = (r) => ({
296
+ }), De = (t) => ({
294
297
  tag: [
295
298
  {
296
299
  tag: "span",
297
- attrs: r.attrs
300
+ attrs: t.attrs
298
301
  }
299
302
  ]
300
- }), pe = (r) => {
301
- var t;
302
- return (t = r.attrs) != null && t.color ? {
303
+ }), Ue = (t) => {
304
+ var e;
305
+ return (e = t.attrs) != null && e.color ? {
303
306
  tag: [
304
307
  {
305
308
  tag: "span",
306
309
  attrs: {
307
- style: `background-color:${r.attrs.color};`
310
+ style: `background-color:${t.attrs.color};`
308
311
  }
309
312
  }
310
313
  ]
311
314
  } : {
312
315
  tag: ""
313
316
  };
314
- }, fe = (r) => {
315
- var t;
316
- return (t = r.attrs) != null && t.color ? {
317
+ }, ze = (t) => {
318
+ var e;
319
+ return (e = t.attrs) != null && e.color ? {
317
320
  tag: [
318
321
  {
319
322
  tag: "span",
320
323
  attrs: {
321
- style: `color:${r.attrs.color}`
324
+ style: `color:${t.attrs.color}`
322
325
  }
323
326
  }
324
327
  ]
325
328
  } : {
326
329
  tag: ""
327
330
  };
328
- }, he = {
331
+ }, He = {
329
332
  nodes: {
330
- horizontal_rule: J,
331
- blockquote: W,
332
- bullet_list: K,
333
- code_block: V,
334
- hard_break: Z,
335
- heading: G,
336
- image: Y,
337
- list_item: Q,
338
- ordered_list: X,
339
- paragraph: ee,
340
- emoji: te
333
+ horizontal_rule: me,
334
+ blockquote: ke,
335
+ bullet_list: $e,
336
+ code_block: we,
337
+ hard_break: Te,
338
+ heading: ve,
339
+ image: Ee,
340
+ list_item: Ce,
341
+ ordered_list: Ie,
342
+ paragraph: Se,
343
+ emoji: Le
341
344
  },
342
345
  marks: {
343
- bold: re,
344
- strike: oe,
345
- underline: se,
346
- strong: ne,
347
- code: ae,
348
- italic: le,
349
- link: ie,
350
- styled: ce,
351
- subscript: ue,
352
- superscript: de,
353
- anchor: ge,
354
- highlight: pe,
355
- textStyle: fe
346
+ bold: Ae,
347
+ strike: Re,
348
+ underline: xe,
349
+ strong: Oe,
350
+ code: je,
351
+ italic: _e,
352
+ link: Me,
353
+ styled: Ne,
354
+ subscript: Pe,
355
+ superscript: Be,
356
+ anchor: De,
357
+ highlight: Ue,
358
+ textStyle: ze
356
359
  }
357
- }, ye = function(r) {
358
- const t = {
360
+ }, Fe = function(t) {
361
+ const e = {
359
362
  "&": "&amp;",
360
363
  "<": "&lt;",
361
364
  ">": "&gt;",
362
365
  '"': "&quot;",
363
366
  "'": "&#39;"
364
- }, e = /[&<>"']/g, o = new RegExp(e.source);
365
- return r && o.test(r) ? r.replace(e, (s) => t[s]) : r;
367
+ }, r = /[&<>"']/g, o = new RegExp(r.source);
368
+ return t && o.test(t) ? t.replace(r, (n) => e[n]) : t;
366
369
  };
367
- let S = !1;
368
- class be {
369
- constructor(t) {
370
- g(this, "marks"), g(this, "nodes"), t || (t = he), this.marks = t.marks || [], this.nodes = t.nodes || [];
370
+ let z = !1;
371
+ class qe {
372
+ constructor(e) {
373
+ C(this, "marks"), C(this, "nodes"), e || (e = He), this.marks = e.marks || [], this.nodes = e.nodes || [];
371
374
  }
372
- addNode(t, e) {
373
- this.nodes[t] = e;
375
+ addNode(e, r) {
376
+ this.nodes[e] = r;
374
377
  }
375
- addMark(t, e) {
376
- this.marks[t] = e;
378
+ addMark(e, r) {
379
+ this.marks[e] = r;
377
380
  }
378
- render(t, e = { optimizeImages: !1 }, o = !0) {
379
- if (!S && o && (console.warn(
381
+ render(e, r = { optimizeImages: !1 }, o = !0) {
382
+ if (!z && o && (console.warn(
380
383
  "Warning ⚠️: The RichTextResolver class is deprecated and will be removed in the next major release. Please use the `@storyblok/richtext` package instead. https://github.com/storyblok/richtext/"
381
- ), S = !0), t && t.content && Array.isArray(t.content)) {
382
- let s = "";
383
- return t.content.forEach((n) => {
384
- s += this.renderNode(n);
385
- }), e.optimizeImages ? this.optimizeImages(s, e.optimizeImages) : s;
384
+ ), z = !0), e && e.content && Array.isArray(e.content)) {
385
+ let n = "";
386
+ return e.content.forEach((s) => {
387
+ n += this.renderNode(s);
388
+ }), r.optimizeImages ? this.optimizeImages(n, r.optimizeImages) : n;
386
389
  }
387
390
  return console.warn(
388
391
  `The render method must receive an Object with a "content" field.
@@ -411,197 +414,433 @@ class be {
411
414
  }`
412
415
  ), "";
413
416
  }
414
- optimizeImages(t, e) {
415
- let o = 0, s = 0, n = "", a = "";
416
- typeof e != "boolean" && (typeof e.width == "number" && e.width > 0 && (n += `width="${e.width}" `, o = e.width), typeof e.height == "number" && e.height > 0 && (n += `height="${e.height}" `, s = e.height), (e.loading === "lazy" || e.loading === "eager") && (n += `loading="${e.loading}" `), typeof e.class == "string" && e.class.length > 0 && (n += `class="${e.class}" `), e.filters && (typeof e.filters.blur == "number" && e.filters.blur >= 0 && e.filters.blur <= 100 && (a += `:blur(${e.filters.blur})`), typeof e.filters.brightness == "number" && e.filters.brightness >= -100 && e.filters.brightness <= 100 && (a += `:brightness(${e.filters.brightness})`), e.filters.fill && (e.filters.fill.match(/[0-9A-F]{6}/gi) || e.filters.fill === "transparent") && (a += `:fill(${e.filters.fill})`), e.filters.format && ["webp", "png", "jpeg"].includes(e.filters.format) && (a += `:format(${e.filters.format})`), typeof e.filters.grayscale == "boolean" && e.filters.grayscale && (a += ":grayscale()"), typeof e.filters.quality == "number" && e.filters.quality >= 0 && e.filters.quality <= 100 && (a += `:quality(${e.filters.quality})`), e.filters.rotate && [90, 180, 270].includes(e.filters.rotate) && (a += `:rotate(${e.filters.rotate})`), a.length > 0 && (a = `/filters${a}`))), n.length > 0 && (t = t.replace(/<img/g, `<img ${n.trim()}`));
417
- const l = o > 0 || s > 0 || a.length > 0 ? `${o}x${s}${a}` : "";
418
- return t = t.replace(
417
+ optimizeImages(e, r) {
418
+ let o = 0, n = 0, s = "", l = "";
419
+ typeof r != "boolean" && (typeof r.width == "number" && r.width > 0 && (s += `width="${r.width}" `, o = r.width), typeof r.height == "number" && r.height > 0 && (s += `height="${r.height}" `, n = r.height), (r.loading === "lazy" || r.loading === "eager") && (s += `loading="${r.loading}" `), typeof r.class == "string" && r.class.length > 0 && (s += `class="${r.class}" `), r.filters && (typeof r.filters.blur == "number" && r.filters.blur >= 0 && r.filters.blur <= 100 && (l += `:blur(${r.filters.blur})`), typeof r.filters.brightness == "number" && r.filters.brightness >= -100 && r.filters.brightness <= 100 && (l += `:brightness(${r.filters.brightness})`), r.filters.fill && (r.filters.fill.match(/[0-9A-F]{6}/gi) || r.filters.fill === "transparent") && (l += `:fill(${r.filters.fill})`), r.filters.format && ["webp", "png", "jpeg"].includes(r.filters.format) && (l += `:format(${r.filters.format})`), typeof r.filters.grayscale == "boolean" && r.filters.grayscale && (l += ":grayscale()"), typeof r.filters.quality == "number" && r.filters.quality >= 0 && r.filters.quality <= 100 && (l += `:quality(${r.filters.quality})`), r.filters.rotate && [90, 180, 270].includes(r.filters.rotate) && (l += `:rotate(${r.filters.rotate})`), l.length > 0 && (l = `/filters${l}`))), s.length > 0 && (e = e.replace(/<img/g, `<img ${s.trim()}`));
420
+ const p = o > 0 || n > 0 || l.length > 0 ? `${o}x${n}${l}` : "";
421
+ return e = e.replace(
419
422
  /a.storyblok.com\/f\/(\d+)\/([^.]+)\.(gif|jpg|jpeg|png|tif|bmp)/g,
420
- `a.storyblok.com/f/$1/$2.$3/m/${l}`
421
- ), typeof e != "boolean" && (e.sizes || e.srcset) && (t = t.replace(/<img.*?src=["|'](.*?)["|']/g, (i) => {
422
- var c, u;
423
- const p = i.match(
423
+ `a.storyblok.com/f/$1/$2.$3/m/${p}`
424
+ ), typeof r != "boolean" && (r.sizes || r.srcset) && (e = e.replace(/<img.*?src=["|'](.*?)["|']/g, (c) => {
425
+ var u, f;
426
+ const $ = c.match(
424
427
  /a.storyblok.com\/f\/(\d+)\/([^.]+)\.(gif|jpg|jpeg|png|tif|bmp)/g
425
428
  );
426
- if (p && p.length > 0) {
427
- const f = {
428
- srcset: (c = e.srcset) == null ? void 0 : c.map((d) => {
429
- if (typeof d == "number")
430
- return `//${p}/m/${d}x0${a} ${d}w`;
431
- if (typeof d == "object" && d.length === 2) {
432
- let y = 0, m = 0;
433
- return typeof d[0] == "number" && (y = d[0]), typeof d[1] == "number" && (m = d[1]), `//${p}/m/${y}x${m}${a} ${y}w`;
429
+ if ($ && $.length > 0) {
430
+ const T = {
431
+ srcset: (u = r.srcset) == null ? void 0 : u.map((h) => {
432
+ if (typeof h == "number")
433
+ return `//${$}/m/${h}x0${l} ${h}w`;
434
+ if (typeof h == "object" && h.length === 2) {
435
+ let I = 0, A = 0;
436
+ return typeof h[0] == "number" && (I = h[0]), typeof h[1] == "number" && (A = h[1]), `//${$}/m/${I}x${A}${l} ${I}w`;
434
437
  }
435
438
  return "";
436
439
  }).join(", "),
437
- sizes: (u = e.sizes) == null ? void 0 : u.map((d) => d).join(", ")
440
+ sizes: (f = r.sizes) == null ? void 0 : f.map((h) => h).join(", ")
438
441
  };
439
- let h = "";
440
- return f.srcset && (h += `srcset="${f.srcset}" `), f.sizes && (h += `sizes="${f.sizes}" `), i.replace(/<img/g, `<img ${h.trim()}`);
442
+ let S = "";
443
+ return T.srcset && (S += `srcset="${T.srcset}" `), T.sizes && (S += `sizes="${T.sizes}" `), c.replace(/<img/g, `<img ${S.trim()}`);
441
444
  }
442
- return i;
443
- })), t;
445
+ return c;
446
+ })), e;
444
447
  }
445
- renderNode(t) {
446
- const e = [];
447
- t.marks && t.marks.forEach((s) => {
448
- const n = this.getMatchingMark(s);
449
- n && n.tag !== "" && e.push(this.renderOpeningTag(n.tag));
448
+ renderNode(e) {
449
+ const r = [];
450
+ e.marks && e.marks.forEach((n) => {
451
+ const s = this.getMatchingMark(n);
452
+ s && s.tag !== "" && r.push(this.renderOpeningTag(s.tag));
450
453
  });
451
- const o = this.getMatchingNode(t);
452
- return o && o.tag && e.push(this.renderOpeningTag(o.tag)), t.content ? t.content.forEach((s) => {
453
- e.push(this.renderNode(s));
454
- }) : t.text ? e.push(ye(t.text)) : o && o.singleTag ? e.push(this.renderTag(o.singleTag, " /")) : o && o.html ? e.push(o.html) : t.type === "emoji" && e.push(this.renderEmoji(t)), o && o.tag && e.push(this.renderClosingTag(o.tag)), t.marks && t.marks.slice(0).reverse().forEach((s) => {
455
- const n = this.getMatchingMark(s);
456
- n && n.tag !== "" && e.push(this.renderClosingTag(n.tag));
457
- }), e.join("");
454
+ const o = this.getMatchingNode(e);
455
+ return o && o.tag && r.push(this.renderOpeningTag(o.tag)), e.content ? e.content.forEach((n) => {
456
+ r.push(this.renderNode(n));
457
+ }) : e.text ? r.push(Fe(e.text)) : o && o.singleTag ? r.push(this.renderTag(o.singleTag, " /")) : o && o.html ? r.push(o.html) : e.type === "emoji" && r.push(this.renderEmoji(e)), o && o.tag && r.push(this.renderClosingTag(o.tag)), e.marks && e.marks.slice(0).reverse().forEach((n) => {
458
+ const s = this.getMatchingMark(n);
459
+ s && s.tag !== "" && r.push(this.renderClosingTag(s.tag));
460
+ }), r.join("");
458
461
  }
459
- renderTag(t, e) {
460
- return t.constructor === String ? `<${t}${e}>` : t.map((o) => {
462
+ renderTag(e, r) {
463
+ return e.constructor === String ? `<${e}${r}>` : e.map((o) => {
461
464
  if (o.constructor === String)
462
- return `<${o}${e}>`;
465
+ return `<${o}${r}>`;
463
466
  {
464
- let s = `<${o.tag}`;
467
+ let n = `<${o.tag}`;
465
468
  if (o.attrs) {
466
- for (const n in o.attrs)
467
- if (Object.prototype.hasOwnProperty.call(o.attrs, n)) {
468
- const a = o.attrs[n];
469
- a !== null && (s += ` ${n}="${a}"`);
469
+ for (const s in o.attrs)
470
+ if (Object.prototype.hasOwnProperty.call(o.attrs, s)) {
471
+ const l = o.attrs[s];
472
+ l !== null && (n += ` ${s}="${l}"`);
470
473
  }
471
474
  }
472
- return `${s}${e}>`;
475
+ return `${n}${r}>`;
473
476
  }
474
477
  }).join("");
475
478
  }
476
- renderOpeningTag(t) {
477
- return this.renderTag(t, "");
479
+ renderOpeningTag(e) {
480
+ return this.renderTag(e, "");
478
481
  }
479
- renderClosingTag(t) {
480
- return t.constructor === String ? `</${t}>` : t.slice(0).reverse().map((e) => e.constructor === String ? `</${e}>` : `</${e.tag}>`).join("");
482
+ renderClosingTag(e) {
483
+ return e.constructor === String ? `</${e}>` : e.slice(0).reverse().map((r) => r.constructor === String ? `</${r}>` : `</${r.tag}>`).join("");
481
484
  }
482
- getMatchingNode(t) {
483
- const e = this.nodes[t.type];
484
- if (typeof e == "function")
485
- return e(t);
485
+ getMatchingNode(e) {
486
+ const r = this.nodes[e.type];
487
+ if (typeof r == "function")
488
+ return r(e);
486
489
  }
487
- getMatchingMark(t) {
488
- const e = this.marks[t.type];
489
- if (typeof e == "function")
490
- return e(t);
490
+ getMatchingMark(e) {
491
+ const r = this.marks[e.type];
492
+ if (typeof r == "function")
493
+ return r(e);
491
494
  }
492
- renderEmoji(t) {
493
- if (t.attrs.emoji)
494
- return t.attrs.emoji;
495
- const e = [
495
+ renderEmoji(e) {
496
+ if (e.attrs.emoji)
497
+ return e.attrs.emoji;
498
+ const r = [
496
499
  {
497
500
  tag: "img",
498
501
  attrs: {
499
- src: t.attrs.fallbackImage,
502
+ src: e.attrs.fallbackImage,
500
503
  draggable: "false",
501
504
  loading: "lazy",
502
505
  align: "absmiddle"
503
506
  }
504
507
  }
505
508
  ];
506
- return this.renderTag(e, " /");
509
+ return this.renderTag(r, " /");
507
510
  }
508
511
  }
509
- const xe = (r) => {
510
- if (typeof r != "object" || typeof r._editable > "u")
512
+ const st = (t) => {
513
+ if (typeof t != "object" || typeof t._editable > "u")
511
514
  return {};
512
515
  try {
513
- const t = JSON.parse(
514
- r._editable.replace(/^<!--#storyblok#/, "").replace(/-->$/, "")
516
+ const e = JSON.parse(
517
+ t._editable.replace(/^<!--#storyblok#/, "").replace(/-->$/, "")
515
518
  );
516
- return t ? {
517
- "data-blok-c": JSON.stringify(t),
518
- "data-blok-uid": `${t.id}-${t.uid}`
519
+ return e ? {
520
+ "data-blok-c": JSON.stringify(e),
521
+ "data-blok-uid": `${e.id}-${e.uid}`
519
522
  } : {};
520
523
  } catch {
521
524
  return {};
522
525
  }
523
526
  };
524
- let me, ke = "https://app.storyblok.com/f/storyblok-v2-latest.js";
525
- const we = (r, t) => {
526
- r.addNode("blok", (e) => {
527
+ function Ge(t, e) {
528
+ if (!e)
529
+ return { src: t, attrs: {} };
530
+ let r = 0, o = 0;
531
+ const n = {}, s = [];
532
+ function l(c, u, f, $, T) {
533
+ typeof c != "number" || c <= u || c >= f ? console.warn(`[StoryblokRichText] - ${$.charAt(0).toUpperCase() + $.slice(1)} value must be a number between ${u} and ${f} (inclusive)`) : T.push(`${$}(${c})`);
534
+ }
535
+ if (typeof e == "object") {
536
+ if (typeof e.width == "number" && e.width > 0 ? (n.width = e.width, r = e.width) : console.warn("[StoryblokRichText] - Width value must be a number greater than 0"), e.height && typeof e.height == "number" && e.height > 0 ? (n.height = e.height, o = e.height) : console.warn("[StoryblokRichText] - Height value must be a number greater than 0"), e.loading && ["lazy", "eager"].includes(e.loading) && (n.loading = e.loading), e.class && (n.class = e.class), e.filters) {
537
+ const { filters: c } = e || {}, { blur: u, brightness: f, fill: $, format: T, grayscale: S, quality: h, rotate: I } = c || {};
538
+ u && l(u, 0, 100, "blur", s), h && l(h, 0, 100, "quality", s), f && l(f, 0, 100, "brightness", s), $ && s.push(`fill(${$})`), S && s.push("grayscale()"), I && [0, 90, 180, 270].includes(e.filters.rotate || 0) && s.push(`rotate(${I})`), T && ["webp", "png", "jpeg"].includes(T) && s.push(`format(${T})`);
539
+ }
540
+ e.srcset && (n.srcset = e.srcset.map((c) => {
541
+ if (typeof c == "number")
542
+ return `${t}/m/${c}x0/${s.length > 0 ? `filters:${s.join(":")}` : ""} ${c}w`;
543
+ if (Array.isArray(c) && c.length === 2) {
544
+ const [u, f] = c;
545
+ return `${t}/m/${u}x${f}/${s.length > 0 ? `filters:${s.join(":")}` : ""} ${u}w`;
546
+ } else {
547
+ console.warn("[StoryblokRichText] - srcset entry must be a number or a tuple of two numbers");
548
+ return;
549
+ }
550
+ }).join(", ")), e.sizes && (n.sizes = e.sizes.join(", "));
551
+ }
552
+ let p = `${t}/m/`;
553
+ return r > 0 && o > 0 && (p = `${p}${r}x${o}/`), s.length > 0 && (p = `${p}filters:${s.join(":")}`), {
554
+ src: p,
555
+ attrs: n
556
+ };
557
+ }
558
+ var m = /* @__PURE__ */ ((t) => (t.DOCUMENT = "doc", t.HEADING = "heading", t.PARAGRAPH = "paragraph", t.QUOTE = "blockquote", t.OL_LIST = "ordered_list", t.UL_LIST = "bullet_list", t.LIST_ITEM = "list_item", t.CODE_BLOCK = "code_block", t.HR = "horizontal_rule", t.BR = "hard_break", t.IMAGE = "image", t.EMOJI = "emoji", t.COMPONENT = "blok", t.TABLE = "table", t.TABLE_ROW = "tableRow", t.TABLE_CELL = "tableCell", t.TABLE_HEADER = "tableHeader", t))(m || {}), E = /* @__PURE__ */ ((t) => (t.BOLD = "bold", t.STRONG = "strong", t.STRIKE = "strike", t.UNDERLINE = "underline", t.ITALIC = "italic", t.CODE = "code", t.LINK = "link", t.ANCHOR = "anchor", t.STYLED = "styled", t.SUPERSCRIPT = "superscript", t.SUBSCRIPT = "subscript", t.TEXT_STYLE = "textStyle", t.HIGHLIGHT = "highlight", t))(E || {}), G = /* @__PURE__ */ ((t) => (t.TEXT = "text", t))(G || {}), L = /* @__PURE__ */ ((t) => (t.URL = "url", t.STORY = "story", t.ASSET = "asset", t.EMAIL = "email", t))(L || {});
559
+ const Ke = [
560
+ "area",
561
+ "base",
562
+ "br",
563
+ "col",
564
+ "embed",
565
+ "hr",
566
+ "img",
567
+ "input",
568
+ "link",
569
+ "meta",
570
+ "param",
571
+ "source",
572
+ "track",
573
+ "wbr"
574
+ ], We = (t = {}) => Object.keys(t).map((e) => `${e}="${t[e]}"`).join(" "), Je = (t = {}) => Object.keys(t).map((e) => `${e}: ${t[e]}`).join("; ");
575
+ function Ye(t) {
576
+ return t.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
577
+ }
578
+ const x = (t) => Object.fromEntries(Object.entries(t).filter(([e, r]) => r !== void 0));
579
+ function H(t, e = {}, r) {
580
+ const o = We(e), n = o ? `${t} ${o}` : t, s = Array.isArray(r) ? r.join("") : r || "";
581
+ if (t) {
582
+ if (Ke.includes(t))
583
+ return `<${n}>`;
584
+ } else return s;
585
+ return `<${n}>${s}</${t}>`;
586
+ }
587
+ function nt(t = {}) {
588
+ const e = /* @__PURE__ */ new Map(), {
589
+ renderFn: r = H,
590
+ textFn: o = Ye,
591
+ resolvers: n = {},
592
+ optimizeImages: s = !1,
593
+ keyedResolvers: l = !1
594
+ } = t, p = r !== H, c = () => ({ render: (a, i = {}, d) => {
595
+ if (l && a) {
596
+ const g = e.get(a) || 0;
597
+ e.set(a, g + 1), i.key = `${a}-${g}`;
598
+ }
599
+ return r(a, i, d);
600
+ } }), u = (a) => (i, d) => {
601
+ const g = i.attrs || {};
602
+ return d.render(a, g, i.children || null);
603
+ }, f = (a, i) => {
604
+ const { src: d, alt: g, title: b, srcset: w, sizes: y } = a.attrs || {};
605
+ let k = d, v = {};
606
+ if (s) {
607
+ const { src: Q, attrs: ee } = Ge(d, s);
608
+ k = Q, v = ee;
609
+ }
610
+ const Z = {
611
+ src: k,
612
+ alt: g,
613
+ title: b,
614
+ srcset: w,
615
+ sizes: y,
616
+ ...v
617
+ };
618
+ return i.render("img", x(Z));
619
+ }, $ = (a, i) => {
620
+ const { level: d, ...g } = a.attrs || {};
621
+ return i.render(`h${d}`, g, a.children);
622
+ }, T = (a, i) => {
623
+ var d, g, b, w;
624
+ const y = i.render("img", {
625
+ src: (d = a.attrs) == null ? void 0 : d.fallbackImage,
626
+ alt: (g = a.attrs) == null ? void 0 : g.alt,
627
+ style: "width: 1.25em; height: 1.25em; vertical-align: text-top",
628
+ draggable: "false",
629
+ loading: "lazy"
630
+ });
631
+ return i.render("span", {
632
+ "data-type": "emoji",
633
+ "data-name": (b = a.attrs) == null ? void 0 : b.name,
634
+ "data-emoji": (w = a.attrs) == null ? void 0 : w.emoji
635
+ }, y);
636
+ }, S = (a, i) => i.render(
637
+ "pre",
638
+ a.attrs || {},
639
+ i.render("code", {}, a.children || "")
640
+ ), h = (a, i = !1) => ({ text: d, attrs: g }, b) => {
641
+ const { class: w, id: y, ...k } = g || {}, v = i ? {
642
+ class: w,
643
+ id: y,
644
+ style: Je(k) || void 0
645
+ } : g || {};
646
+ return b.render(a, x(v), d);
647
+ }, I = (a) => O(a), A = (a) => {
648
+ const { marks: i, ...d } = a;
649
+ if ("text" in a) {
650
+ if (i)
651
+ return i.reduce(
652
+ (b, w) => I({ ...w, text: b }),
653
+ I({ ...d, children: d.children })
654
+ );
655
+ const g = a.attrs || {};
656
+ if (l) {
657
+ const b = e.get("txt") || 0;
658
+ e.set("txt", b + 1), g.key = `txt-${b}`;
659
+ }
660
+ return o(d.text, g);
661
+ }
662
+ return "";
663
+ }, _ = (a, i) => {
664
+ const { linktype: d, href: g, anchor: b, ...w } = a.attrs || {};
665
+ let y = "";
666
+ switch (d) {
667
+ case L.ASSET:
668
+ case L.URL:
669
+ y = g;
670
+ break;
671
+ case L.EMAIL:
672
+ y = `mailto:${g}`;
673
+ break;
674
+ case L.STORY:
675
+ y = g, b && (y = `${y}#${b}`);
676
+ break;
677
+ default:
678
+ y = g;
679
+ break;
680
+ }
681
+ const k = { ...w };
682
+ return y && (k.href = y), i.render("a", k, a.text);
683
+ }, K = (a, i) => {
684
+ var d, g;
685
+ return console.warn("[StoryblokRichtText] - BLOK resolver is not available for vanilla usage"), i.render("span", {
686
+ blok: (d = a == null ? void 0 : a.attrs) == null ? void 0 : d.body[0],
687
+ id: (g = a.attrs) == null ? void 0 : g.id,
688
+ style: "display: none"
689
+ });
690
+ }, W = (a, i) => {
691
+ const d = {}, g = i.render("tbody", {}, a.children);
692
+ return i.render("table", d, g);
693
+ }, J = (a, i) => {
694
+ const d = {};
695
+ return i.render("tr", d, a.children);
696
+ }, Y = (a, i) => {
697
+ const { colspan: d, rowspan: g, colwidth: b, backgroundColor: w, ...y } = a.attrs || {}, k = {
698
+ ...y
699
+ };
700
+ d > 1 && (k.colspan = d), g > 1 && (k.rowspan = g);
701
+ const v = [];
702
+ return b && v.push(`width: ${b}px;`), w && v.push(`background-color: ${w};`), v.length > 0 && (k.style = v.join(" ")), i.render("td", x(k), a.children);
703
+ }, V = (a, i) => {
704
+ const { colspan: d, rowspan: g, colwidth: b, backgroundColor: w, ...y } = a.attrs || {}, k = {
705
+ ...y
706
+ };
707
+ d > 1 && (k.colspan = d), g > 1 && (k.rowspan = g);
708
+ const v = [];
709
+ return b && v.push(`width: ${b}px;`), w && v.push(`background-color: ${w};`), v.length > 0 && (k.style = v.join(" ")), i.render("th", x(k), a.children);
710
+ }, X = new Map([
711
+ [m.DOCUMENT, u("")],
712
+ [m.HEADING, $],
713
+ [m.PARAGRAPH, u("p")],
714
+ [m.UL_LIST, u("ul")],
715
+ [m.OL_LIST, u("ol")],
716
+ [m.LIST_ITEM, u("li")],
717
+ [m.IMAGE, f],
718
+ [m.EMOJI, T],
719
+ [m.CODE_BLOCK, S],
720
+ [m.HR, u("hr")],
721
+ [m.BR, u("br")],
722
+ [m.QUOTE, u("blockquote")],
723
+ [m.COMPONENT, K],
724
+ [G.TEXT, A],
725
+ [E.LINK, _],
726
+ [E.ANCHOR, _],
727
+ [E.STYLED, h("span", !0)],
728
+ [E.BOLD, h("strong")],
729
+ [E.TEXT_STYLE, h("span", !0)],
730
+ [E.ITALIC, h("em")],
731
+ [E.UNDERLINE, h("u")],
732
+ [E.STRIKE, h("s")],
733
+ [E.CODE, h("code")],
734
+ [E.SUPERSCRIPT, h("sup")],
735
+ [E.SUBSCRIPT, h("sub")],
736
+ [E.HIGHLIGHT, h("mark")],
737
+ [m.TABLE, W],
738
+ [m.TABLE_ROW, J],
739
+ [m.TABLE_CELL, Y],
740
+ [m.TABLE_HEADER, V],
741
+ ...Object.entries(n).map(([a, i]) => [a, i])
742
+ ]);
743
+ function R(a) {
744
+ const i = X.get(a.type);
745
+ if (!i)
746
+ return console.error("<Storyblok>", `No resolver found for node type ${a.type}`), "";
747
+ const d = c();
748
+ if (a.type === "text")
749
+ return i(a, d);
750
+ const g = a.content ? a.content.map(O) : void 0;
751
+ return i({
752
+ ...a,
753
+ children: g
754
+ }, d);
755
+ }
756
+ function O(a) {
757
+ return a.type === "doc" ? p ? a.content.map(R) : a.content.map(R).join("") : Array.isArray(a) ? a.map(R) : R(a);
758
+ }
759
+ return {
760
+ render: O
761
+ };
762
+ }
763
+ let Ve, Xe = "https://app.storyblok.com/f/storyblok-v2-latest.js";
764
+ const Ze = (t, e) => {
765
+ t.addNode("blok", (r) => {
527
766
  let o = "";
528
- return e.attrs.body.forEach((s) => {
529
- o += t(s.component, s);
767
+ return r.attrs.body.forEach((n) => {
768
+ o += e(n.component, n);
530
769
  }), {
531
770
  html: o
532
771
  };
533
772
  });
534
- }, $e = (r) => {
535
- var t;
536
- return !r || !((t = r == null ? void 0 : r.content) != null && t.some((e) => e.content || e.type === "blok" || e.type === "horizontal_rule"));
537
- }, ve = (r, t, e) => {
538
- let o = e || me;
773
+ }, Qe = (t) => {
774
+ var e;
775
+ return !t || !((e = t == null ? void 0 : t.content) != null && e.some((r) => r.content || r.type === "blok" || r.type === "horizontal_rule"));
776
+ }, et = (t, e, r) => {
777
+ let o = r || Ve;
539
778
  if (!o) {
540
779
  console.error(
541
780
  "Please initialize the Storyblok SDK before calling the renderRichText function"
542
781
  );
543
782
  return;
544
783
  }
545
- return $e(r) ? "" : (t && (o = new be(t.schema), t.resolver && we(o, t.resolver)), o.render(r, {}, !1));
546
- }, Ae = () => B(ke);
547
- function Ee() {
784
+ return Qe(t) ? "" : (e && (o = new qe(e.schema), e.resolver && Ze(o, e.resolver)), o.render(t, {}, !1));
785
+ }, at = () => ge(Xe);
786
+ function lt() {
548
787
  if (!(globalThis != null && globalThis.storyblokApiInstance))
549
788
  throw new Error("storyblokApiInstance has not been initialized correctly");
550
789
  return globalThis.storyblokApiInstance;
551
790
  }
552
- async function Le(r) {
553
- let t = null;
554
- return r && r.locals._storyblok_preview_data && (t = r.locals._storyblok_preview_data), t;
791
+ async function it(t) {
792
+ let e = null;
793
+ return t && t.locals._storyblok_preview_data && (e = t.locals._storyblok_preview_data), e;
555
794
  }
556
- function Te(r, t) {
795
+ function ct(t, e) {
557
796
  var o;
558
- const e = (o = globalThis == null ? void 0 : globalThis.storyblokApiInstance) == null ? void 0 : o.richTextResolver;
559
- if (!e)
797
+ const r = (o = globalThis == null ? void 0 : globalThis.storyblokApiInstance) == null ? void 0 : o.richTextResolver;
798
+ if (!r)
560
799
  throw new Error(
561
800
  "Please initialize the Storyblok SDK before calling the renderRichText function"
562
801
  );
563
- return ve(r, t, e);
802
+ return et(t, e, r);
564
803
  }
565
- function Ce(r) {
566
- return typeof r == "object" ? `const storyblokInstance = new StoryblokBridge(${JSON.stringify(r)});` : "const storyblokInstance = new StoryblokBridge();";
804
+ function tt(t) {
805
+ return typeof t == "object" ? `const storyblokInstance = new StoryblokBridge(${JSON.stringify(t)});` : "const storyblokInstance = new StoryblokBridge();";
567
806
  }
568
- function je(r) {
569
- const t = {
807
+ function ut(t) {
808
+ const e = {
570
809
  useCustomApi: !1,
571
810
  bridge: !0,
572
811
  componentsDir: "src",
573
812
  enableFallbackComponent: !1,
574
813
  livePreview: !1,
575
- ...r
576
- }, e = Ce(t.bridge);
814
+ ...t
815
+ }, r = tt(e.bridge);
577
816
  return {
578
817
  name: "@storyblok/astro",
579
818
  hooks: {
580
819
  "astro:config:setup": ({
581
820
  injectScript: o,
582
- updateConfig: s,
583
- addDevToolbarApp: n,
584
- addMiddleware: a,
585
- config: l
821
+ updateConfig: n,
822
+ addDevToolbarApp: s,
823
+ addMiddleware: l,
824
+ config: p
586
825
  }) => {
587
- if (s({
826
+ if (n({
588
827
  vite: {
589
828
  plugins: [
590
- N(
591
- t.accessToken,
592
- t.useCustomApi,
593
- t.apiOptions
829
+ ue(
830
+ e.accessToken,
831
+ e.useCustomApi,
832
+ e.apiOptions
594
833
  ),
595
- _(
596
- t.componentsDir,
597
- t.components,
598
- t.enableFallbackComponent,
599
- t.customFallbackComponent
834
+ ce(
835
+ e.componentsDir,
836
+ e.components,
837
+ e.enableFallbackComponent,
838
+ e.customFallbackComponent
600
839
  ),
601
- z(t)
840
+ de(e)
602
841
  ]
603
842
  }
604
- }), t.livePreview && (l == null ? void 0 : l.output) !== "server")
843
+ }), e.livePreview && (p == null ? void 0 : p.output) !== "server")
605
844
  throw new Error(
606
845
  "To utilize the Astro Storyblok Live feature, Astro must be configured to run in SSR mode. Please disable this feature or switch Astro to SSR mode."
607
846
  );
@@ -611,12 +850,12 @@ function je(r) {
611
850
  import { storyblokApiInstance } from "virtual:storyblok-init";
612
851
  globalThis.storyblokApiInstance = storyblokApiInstance;
613
852
  `
614
- ), t.bridge && !t.livePreview && o(
853
+ ), e.bridge && !e.livePreview && o(
615
854
  "page",
616
855
  `import { loadStoryblokBridge } from "@storyblok/astro";
617
856
  loadStoryblokBridge().then(() => {
618
857
  const { StoryblokBridge, location } = window;
619
- ${e}
858
+ ${r}
620
859
  storyblokInstance.on(["published", "change"], (event) => {
621
860
  if (!event.slugChanged) {
622
861
  location.reload(true);
@@ -624,74 +863,76 @@ function je(r) {
624
863
  });
625
864
  });
626
865
  `
627
- ), t.livePreview && (o(
866
+ ), e.livePreview && (o(
628
867
  "page",
629
868
  `import { loadStoryblokBridge, handleStoryblokMessage } from "@storyblok/astro";
630
869
  loadStoryblokBridge().then(() => {
631
870
  const { StoryblokBridge, location } = window;
632
- ${e}
871
+ ${r}
633
872
  storyblokInstance.on(["published", "change", "input"], handleStoryblokMessage);
634
873
  });
635
874
  `
636
- ), a({
875
+ ), l({
637
876
  entrypoint: "@storyblok/astro/middleware.ts",
638
877
  order: "pre"
639
- })), n({
878
+ })), s({
640
879
  id: "storyblok",
641
880
  name: "Storyblok",
642
- icon: E,
881
+ icon: te,
643
882
  entrypoint: "@storyblok/astro/toolbarApp.ts"
644
883
  });
645
884
  }
646
885
  }
647
886
  };
648
887
  }
649
- let x;
650
- async function Re(r) {
651
- const { action: t, story: e } = r || {};
652
- if (t === "input" && e) {
888
+ let F;
889
+ async function dt(t) {
890
+ const { action: e, story: r } = t || {};
891
+ if (e === "input" && r) {
653
892
  const o = async () => {
654
- const n = await Se(e), a = document.body;
655
- if (n.outerHTML === a.outerHTML)
893
+ const s = await ot(r), l = document.body;
894
+ if (s.outerHTML === l.outerHTML)
656
895
  return;
657
- const l = document.querySelector('[data-blok-focused="true"]');
658
- Ie(a, n, l), document.dispatchEvent(new Event("storyblok-live-preview-updated"));
896
+ const p = document.querySelector('[data-blok-focused="true"]');
897
+ rt(l, s, p), document.dispatchEvent(new Event("storyblok-live-preview-updated"));
659
898
  };
660
- clearTimeout(x), x = setTimeout(o, 500);
899
+ clearTimeout(F), F = setTimeout(o, 500);
661
900
  }
662
- ["published", "change"].includes(r == null ? void 0 : r.action) && location.reload();
901
+ ["published", "change"].includes(t == null ? void 0 : t.action) && location.reload();
663
902
  }
664
- function Ie(r, t, e) {
665
- if (e) {
666
- const o = e.getAttribute("data-blok-uid"), s = t.querySelector(
903
+ function rt(t, e, r) {
904
+ if (r) {
905
+ const o = r.getAttribute("data-blok-uid"), n = e.querySelector(
667
906
  `[data-blok-uid="${o}"]`
668
907
  );
669
- s && (s.setAttribute("data-blok-focused", "true"), e.replaceWith(s));
908
+ n && (n.setAttribute("data-blok-focused", "true"), r.replaceWith(n));
670
909
  } else
671
- r.replaceWith(t);
910
+ t.replaceWith(e);
672
911
  }
673
- async function Se(r) {
674
- const e = await (await fetch(location.href, {
912
+ async function ot(t) {
913
+ const r = await (await fetch(location.href, {
675
914
  method: "POST",
676
915
  body: JSON.stringify({
677
- ...r,
916
+ ...t,
678
917
  is_storyblok_preview: !0
679
918
  }),
680
919
  headers: {
681
920
  "Content-Type": "application/json"
682
921
  }
683
922
  })).text();
684
- return new DOMParser().parseFromString(e, "text/html").body;
923
+ return new DOMParser().parseFromString(r, "text/html").body;
685
924
  }
686
925
  export {
687
- be as RichTextResolver,
688
- he as RichTextSchema,
689
- Le as getLiveStory,
690
- Re as handleStoryblokMessage,
691
- Ae as loadStoryblokBridge,
692
- Te as renderRichText,
693
- je as storyblok,
694
- xe as storyblokEditable,
695
- v as toCamelCase,
696
- Ee as useStoryblokApi
926
+ qe as RichTextResolver,
927
+ He as RichTextSchema,
928
+ G as TextTypes,
929
+ it as getLiveStory,
930
+ dt as handleStoryblokMessage,
931
+ at as loadStoryblokBridge,
932
+ ct as renderRichText,
933
+ nt as richTextResolver,
934
+ ut as storyblok,
935
+ st as storyblokEditable,
936
+ B as toCamelCase,
937
+ lt as useStoryblokApi
697
938
  };