@levo-so/site-runtime 0.3.12 → 0.3.14

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.
@@ -60,7 +60,7 @@ var Q = [
60
60
  ...r,
61
61
  children: a
62
62
  }) : null;
63
- }, te = /* @__PURE__ */ O({ PopupBody: () => oe }), ne = B(() => import("./dist-1r8apbDv.js").then((e) => e.t).then((e) => ({ default: e.CollectionFormBuilder }))), re = E({ baseSpacing: ".625rem" }), ie = { style: a({ form: { gap: "1rem" } }) }, ae = {
63
+ }, te = /* @__PURE__ */ O({ PopupBody: () => oe }), ne = B(() => import("./dist-CEdznbFW.js").then((e) => e.t).then((e) => ({ default: e.CollectionFormBuilder }))), re = E({ baseSpacing: ".625rem" }), ie = { style: a({ form: { gap: "1rem" } }) }, ae = {
64
64
  left: D,
65
65
  center: M,
66
66
  right: A
@@ -103,7 +103,7 @@ var se = (e) => (e ?? "16:9").replace(":", " / "), ce = (e) => {
103
103
  ...a,
104
104
  children: r
105
105
  }), n[15] = r, n[16] = a, n[17] = p, n[18] = m) : m = n[18], m;
106
- }, de = I(() => import("./PopupBody-BI-MJqmd-Dy94OeBQ.js").then((e) => e.n).then((e) => ({ default: e.PopupBody }))), fe = (e) => {
106
+ }, de = I(() => import("./PopupBody-BI-MJqmd-DgTQEzda.js").then((e) => e.n).then((e) => ({ default: e.PopupBody }))), fe = (e) => {
107
107
  let t = A(7), { size: n } = e, r = n ?? "medium", i;
108
108
  t[0] === r ? i = t[1] : (i = k({ size: r }), t[0] = r, t[1] = i);
109
109
  let a, o, s;
package/blog-content.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { r as e } from "./dist-1r8apbDv.js";
2
+ import { r as e } from "./dist-CEdznbFW.js";
3
3
  import { t } from "./LevoProvider-Bsjkcwc8.js";
4
4
  import { t as n } from "./inlineBaseTheme-BB9e6h5f.js";
5
- import { t as r } from "./dist-B7c9xjWu.js";
5
+ import { t as r } from "./dist-6AIgW_iB.js";
6
6
  import { _ as i, a, c as o, d as s, f as c, g as l, h as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b, v as x } from "./react-Cj_U6VZQ.js";
7
7
  import { i as S, n as C, r as w, t as T } from "./content.cssm-XdMsTGIB.js";
8
8
  import { t as E } from "./RteThemeProvider-BQmfSXSl.js";
@@ -985,7 +985,23 @@ var Ot = we.extend({
985
985
  renderHTML({ HTMLAttributes: e }) {
986
986
  return ["div", P(e, { "data-type": this.name })];
987
987
  }
988
- }), At = M.create({
988
+ }), At = he.extend({
989
+ addOptions() {
990
+ return {
991
+ ...this.parent?.(),
992
+ HTMLAttributes: { target: "_blank" }
993
+ };
994
+ },
995
+ addAttributes() {
996
+ return {
997
+ ...this.parent?.(),
998
+ rel: {
999
+ default: null,
1000
+ renderHTML: (e) => e.target === "_blank" ? { rel: "noopener" } : {}
1001
+ }
1002
+ };
1003
+ }
1004
+ }), jt = M.create({
989
1005
  name: "indentAttribute",
990
1006
  addGlobalAttributes() {
991
1007
  return [{
@@ -1009,12 +1025,12 @@ var Ot = we.extend({
1009
1025
  });
1010
1026
  //#endregion
1011
1027
  //#region ../../libraries/editor-core/dist/extensions/nodeStyling/nodeBackground.js
1012
- function jt(e, t) {
1028
+ function Mt(e, t) {
1013
1029
  if (e.length === 0) return null;
1014
1030
  for (let n of e) if ((n.node.attrs?.backgroundColor ?? null) !== t) return t;
1015
1031
  return null;
1016
1032
  }
1017
- var Mt = M.create({
1033
+ var Nt = M.create({
1018
1034
  name: "nodeBackground",
1019
1035
  addOptions() {
1020
1036
  return {
@@ -1053,21 +1069,21 @@ var Mt = M.create({
1053
1069
  return {
1054
1070
  setNodeBackgroundColor: e((e, t) => t || null),
1055
1071
  unsetNodeBackgroundColor: e(() => null),
1056
- toggleNodeBackgroundColor: e((e, t) => jt(e, t || ""))
1072
+ toggleNodeBackgroundColor: e((e, t) => Mt(e, t || ""))
1057
1073
  };
1058
1074
  }
1059
- }), Nt = 35, Pt = 120, Ft = Ne.extend({
1075
+ }), Pt = 35, Ft = 120, It = Ne.extend({
1060
1076
  group: "layoutBlock",
1061
1077
  addProseMirrorPlugins() {
1062
- let e = this.options.resizable && this.editor.isEditable, t = this.options.cellMinWidth < Pt ? Pt : this.options.cellMinWidth;
1078
+ let e = this.options.resizable && this.editor.isEditable, t = this.options.cellMinWidth < Ft ? Ft : this.options.cellMinWidth;
1063
1079
  return [...e ? [Oe({
1064
1080
  handleWidth: this.options.handleWidth,
1065
- cellMinWidth: Nt,
1081
+ cellMinWidth: Pt,
1066
1082
  defaultCellMinWidth: t,
1067
1083
  lastColumnResizable: this.options.lastColumnResizable
1068
1084
  })] : [], ke({ allowTableNodeSelection: this.options.allowTableNodeSelection })];
1069
1085
  }
1070
- }), It = Ae.extend({
1086
+ }), Lt = Ae.extend({
1071
1087
  content: "paragraph+",
1072
1088
  addAttributes() {
1073
1089
  return { ...this.parent?.() };
@@ -1099,7 +1115,7 @@ var Mt = M.create({
1099
1115
  }
1100
1116
  };
1101
1117
  }
1102
- }), Lt = je.extend({
1118
+ }), Rt = je.extend({
1103
1119
  content: "paragraph+",
1104
1120
  addAttributes() {
1105
1121
  return { ...this.parent?.() };
@@ -1116,16 +1132,16 @@ var Mt = M.create({
1116
1132
  0
1117
1133
  ];
1118
1134
  }
1119
- }), Rt = M.create({
1135
+ }), zt = M.create({
1120
1136
  name: "tableKit",
1121
1137
  addExtensions() {
1122
1138
  let e = [];
1123
- return this.options.table !== !1 && e.push(Ft.configure({
1139
+ return this.options.table !== !1 && e.push(It.configure({
1124
1140
  ...this.options.table,
1125
1141
  renderWrapper: !0
1126
- })), this.options.tableCell !== !1 && e.push(It.configure(this.options.tableCell)), this.options.tableHeader !== !1 && e.push(Lt.configure(this.options.tableHeader)), this.options.tableRow !== !1 && e.push(Me.configure(this.options.tableRow)), e;
1142
+ })), this.options.tableCell !== !1 && e.push(Lt.configure(this.options.tableCell)), this.options.tableHeader !== !1 && e.push(Rt.configure(this.options.tableHeader)), this.options.tableRow !== !1 && e.push(Me.configure(this.options.tableRow)), e;
1127
1143
  }
1128
- }), zt = (e) => {
1144
+ }), Bt = (e) => {
1129
1145
  let t = D(10), { label: n, href: r, target: i, actionType: a, onActivate: o } = e, s = n || "Button";
1130
1146
  if (B(a) === "button") {
1131
1147
  let e;
@@ -1146,13 +1162,13 @@ var Mt = M.create({
1146
1162
  rel: d,
1147
1163
  children: s
1148
1164
  }), t[5] = u, t[6] = c, t[7] = d, t[8] = s, t[9] = f) : f = t[9], f;
1149
- }, Bt = (e) => {
1165
+ }, Vt = (e) => {
1150
1166
  let t = D(16), { node: n } = e, i;
1151
1167
  t[0] === n?.attrs ? i = t[1] : (i = n?.attrs ?? {}, t[0] = n?.attrs, t[1] = i);
1152
1168
  let a = i, { openPopup: o } = r(), s = a.popupId, c;
1153
1169
  t[2] !== o || t[3] !== s ? (c = s ? () => o(s) : void 0, t[2] = o, t[3] = s, t[4] = c) : c = t[4];
1154
1170
  let l;
1155
- t[5] !== a.actionType || t[6] !== a.href || t[7] !== a.label || t[8] !== a.target || t[9] !== c ? (l = /* @__PURE__ */ k(zt, {
1171
+ t[5] !== a.actionType || t[6] !== a.href || t[7] !== a.label || t[8] !== a.target || t[9] !== c ? (l = /* @__PURE__ */ k(Bt, {
1156
1172
  label: a.label,
1157
1173
  href: a.href,
1158
1174
  target: a.target,
@@ -1167,9 +1183,9 @@ var Mt = M.create({
1167
1183
  "data-align": a.align,
1168
1184
  children: l
1169
1185
  }), t[11] = a.align, t[12] = a.size, t[13] = a.variant, t[14] = l, t[15] = u) : u = t[15], u;
1170
- }, X = null, Vt = () => (X ??= import("lowlight").then(({ common: e, createLowlight: t }) => t(e)).catch((e) => {
1186
+ }, X = null, Ht = () => (X ??= import("lowlight").then(({ common: e, createLowlight: t }) => t(e)).catch((e) => {
1171
1187
  throw X = null, e;
1172
- }), X), Ht = (e, t) => {
1188
+ }), X), Ut = (e, t) => {
1173
1189
  if (e.type === "text") return e.value;
1174
1190
  if (e.type === "element") {
1175
1191
  let { className: n, ...r } = e.properties || {};
@@ -1177,7 +1193,7 @@ var Mt = M.create({
1177
1193
  key: t,
1178
1194
  ...r,
1179
1195
  className: Array.isArray(n) ? n.join(" ") : n
1180
- }, e.children?.map((e, n) => Ht(e, `${t}-${n}`)));
1196
+ }, e.children?.map((e, n) => Ut(e, `${t}-${n}`)));
1181
1197
  }
1182
1198
  return null;
1183
1199
  }, Z = (e) => {
@@ -1195,8 +1211,8 @@ var Mt = M.create({
1195
1211
  }
1196
1212
  }
1197
1213
  return "";
1198
- }, Ut = ({ node: e, children: t }) => {
1199
- let n = oe(Vt()), r = e?.attrs?.language, i = Z(e);
1214
+ }, Wt = ({ node: e, children: t }) => {
1215
+ let n = oe(Ht()), r = e?.attrs?.language, i = Z(e);
1200
1216
  if (!i) return /* @__PURE__ */ k("pre", { children: /* @__PURE__ */ k("code", { children: t }) });
1201
1217
  let a;
1202
1218
  try {
@@ -1206,15 +1222,15 @@ var Mt = M.create({
1206
1222
  }
1207
1223
  return !a || !a.children || a.children.length === 0 ? /* @__PURE__ */ k("pre", { children: /* @__PURE__ */ k("code", { children: i }) }) : /* @__PURE__ */ k("pre", { children: /* @__PURE__ */ k("code", {
1208
1224
  className: r ? `language-${r}` : "",
1209
- children: a.children.map((e, t) => Ht(e, `code-${t}`))
1225
+ children: a.children.map((e, t) => Ut(e, `code-${t}`))
1210
1226
  }) });
1211
- }, Wt = (e) => {
1227
+ }, Gt = (e) => {
1212
1228
  let t = D(9), n;
1213
1229
  t[0] === e.node ? n = t[1] : (n = Z(e.node), t[0] = e.node, t[1] = n);
1214
1230
  let r = n, i;
1215
1231
  t[2] === r ? i = t[3] : (i = /* @__PURE__ */ k("pre", { children: /* @__PURE__ */ k("code", { children: r }) }), t[2] = r, t[3] = i);
1216
1232
  let a;
1217
- t[4] === e ? a = t[5] : (a = /* @__PURE__ */ k(Ut, { ...e }), t[4] = e, t[5] = a);
1233
+ t[4] === e ? a = t[5] : (a = /* @__PURE__ */ k(Wt, { ...e }), t[4] = e, t[5] = a);
1218
1234
  let o;
1219
1235
  return t[6] !== i || t[7] !== a ? (o = /* @__PURE__ */ k(ie.Suspense, {
1220
1236
  fallback: i,
@@ -1223,9 +1239,9 @@ var Mt = M.create({
1223
1239
  }, Q = ae({
1224
1240
  open: !1,
1225
1241
  toggle: () => {}
1226
- }), Gt = (e) => {
1242
+ }), Kt = (e) => {
1227
1243
  let t = D(15), { node: n, children: r } = e, [i, a] = j(!!n.attrs?.open), o;
1228
- t[0] === Symbol.for("react.memo_cache_sentinel") ? (o = () => a(Jt), t[0] = o) : o = t[0];
1244
+ t[0] === Symbol.for("react.memo_cache_sentinel") ? (o = () => a(Yt), t[0] = o) : o = t[0];
1229
1245
  let s = o, c = i && "is-open", l;
1230
1246
  t[1] === c ? l = t[2] : (l = te("details", c), t[1] = c, t[2] = l);
1231
1247
  let u;
@@ -1250,7 +1266,7 @@ var Mt = M.create({
1250
1266
  "data-open": i,
1251
1267
  children: [u, f]
1252
1268
  }), t[10] = i, t[11] = l, t[12] = u, t[13] = f, t[14] = p) : p = t[14], p;
1253
- }, Kt = (e) => {
1269
+ }, qt = (e) => {
1254
1270
  let t = D(7), { children: n } = e, { open: r, toggle: i } = se(Q), a;
1255
1271
  t[0] === i ? a = t[1] : (a = (e) => {
1256
1272
  (e.key === "Enter" || e.key === " ") && (e.preventDefault(), i());
@@ -1264,7 +1280,7 @@ var Mt = M.create({
1264
1280
  onKeyDown: a,
1265
1281
  children: n
1266
1282
  }), t[2] = n, t[3] = r, t[4] = a, t[5] = i, t[6] = o) : o = t[6], o;
1267
- }, qt = (e) => {
1283
+ }, Jt = (e) => {
1268
1284
  let t = D(5), { children: n } = e, { open: r } = se(Q), i;
1269
1285
  t[0] === r ? i = t[1] : (i = r ? {} : { hidden: !0 }, t[0] = r, t[1] = i);
1270
1286
  let a;
@@ -1274,12 +1290,12 @@ var Mt = M.create({
1274
1290
  children: n
1275
1291
  }), t[2] = n, t[3] = i, t[4] = a) : a = t[4], a;
1276
1292
  };
1277
- function Jt(e) {
1293
+ function Yt(e) {
1278
1294
  return !e;
1279
1295
  }
1280
1296
  //#endregion
1281
1297
  //#region ../../libraries/blog-renderer/dist/views/ImageView.cssm.js
1282
- var Yt = "_10kj0ro0", Xt = "_10kj0ro1", Zt = "_10kj0ro2", Qt = (e) => e ? typeof e == "string" && e.endsWith("%") ? e : `${e}px` : "fit-content", $t = (e) => {
1298
+ var Xt = "_10kj0ro0", Zt = "_10kj0ro1", Qt = "_10kj0ro2", $t = (e) => e ? typeof e == "string" && e.endsWith("%") ? e : `${e}px` : "fit-content", en = (e) => {
1283
1299
  let t = D(15), { node: n, children: r, imageRef: i, imageProps: a, caption: o } = e, s = n.attrs, { src: c, alt: l, srcset: u, showCaption: d } = s, f = s["data-link-href"], p = n.content.childCount > 0, m = o === void 0 ? r : o, h = (d || p) && m != null;
1284
1300
  if (!c) return null;
1285
1301
  let g = l || "", _ = u || void 0, v;
@@ -1288,7 +1304,7 @@ var Yt = "_10kj0ro0", Xt = "_10kj0ro1", Zt = "_10kj0ro2", Qt = (e) => e ? typeof
1288
1304
  src: c,
1289
1305
  alt: g,
1290
1306
  srcSet: _,
1291
- className: Zt,
1307
+ className: Qt,
1292
1308
  loading: "lazy",
1293
1309
  ...a
1294
1310
  }), t[0] = a, t[1] = i, t[2] = c, t[3] = g, t[4] = _, t[5] = v) : v = t[5];
@@ -1306,31 +1322,31 @@ var Yt = "_10kj0ro0", Xt = "_10kj0ro1", Zt = "_10kj0ro2", Qt = (e) => e ? typeof
1306
1322
  }), t[9] = m, t[10] = h, t[11] = x) : x = t[11];
1307
1323
  let S;
1308
1324
  return t[12] !== b || t[13] !== x ? (S = /* @__PURE__ */ A(ne, { children: [b, x] }), t[12] = b, t[13] = x, t[14] = S) : S = t[14], S;
1309
- }, en = (e) => {
1325
+ }, tn = (e) => {
1310
1326
  let t = D(13), { node: n, children: r } = e, i = n.attrs, a = i["data-align"];
1311
1327
  if (!i.src) return null;
1312
1328
  let o;
1313
- t[0] === i.width ? o = t[1] : (o = Qt(i.width), t[0] = i.width, t[1] = o);
1329
+ t[0] === i.width ? o = t[1] : (o = $t(i.width), t[0] = i.width, t[1] = o);
1314
1330
  let s;
1315
1331
  t[2] === o ? s = t[3] : (s = { width: o }, t[2] = o, t[3] = s);
1316
1332
  let c;
1317
- t[4] !== r || t[5] !== n ? (c = /* @__PURE__ */ k($t, {
1333
+ t[4] !== r || t[5] !== n ? (c = /* @__PURE__ */ k(en, {
1318
1334
  node: n,
1319
1335
  children: r
1320
1336
  }), t[4] = r, t[5] = n, t[6] = c) : c = t[6];
1321
1337
  let l;
1322
1338
  t[7] !== s || t[8] !== c ? (l = /* @__PURE__ */ k("div", {
1323
- className: Xt,
1339
+ className: Zt,
1324
1340
  style: s,
1325
1341
  children: c
1326
1342
  }), t[7] = s, t[8] = c, t[9] = l) : l = t[9];
1327
1343
  let u;
1328
1344
  return t[10] !== a || t[11] !== l ? (u = /* @__PURE__ */ k("div", {
1329
1345
  "data-align": a,
1330
- className: Yt,
1346
+ className: Xt,
1331
1347
  children: l
1332
1348
  }), t[10] = a, t[11] = l, t[12] = u) : u = t[12], u;
1333
- }, tn = "_1dotpmp0", nn = (t) => {
1349
+ }, nn = "_1dotpmp0", rn = (t) => {
1334
1350
  let n = D(10), { collectionId: r, workspaceId: i, preview: a, variant: o } = t, s = a === void 0 ? !1 : a, c = o ?? void 0, l;
1335
1351
  n[0] === Symbol.for("react.memo_cache_sentinel") ? (l = {
1336
1352
  show: !0,
@@ -1354,31 +1370,31 @@ var Yt = "_10kj0ro0", Xt = "_10kj0ro1", Zt = "_10kj0ro2", Qt = (e) => e ? typeof
1354
1370
  uiConfig: u,
1355
1371
  theme: d
1356
1372
  }), n[4] = r, n[5] = s, n[6] = c, n[7] = d, n[8] = i, n[9] = f) : f = n[9], f;
1357
- }, rn = (e) => {
1373
+ }, an = (e) => {
1358
1374
  let n = D(4), { node: r } = e, i = r?.attrs?.collectionId, a = r?.attrs?.variant, { workspace: o } = t();
1359
1375
  if (!i || !o) return null;
1360
1376
  let s;
1361
1377
  return n[0] !== i || n[1] !== a || n[2] !== o ? (s = /* @__PURE__ */ k("div", {
1362
- className: tn,
1363
- children: /* @__PURE__ */ k(nn, {
1378
+ className: nn,
1379
+ children: /* @__PURE__ */ k(rn, {
1364
1380
  collectionId: i,
1365
1381
  workspaceId: o,
1366
1382
  variant: a
1367
1383
  })
1368
1384
  }), n[0] = i, n[1] = a, n[2] = o, n[3] = s) : s = n[3], s;
1369
- }, an = /^((?:https?:)?\/\/)?((?:www|m|music)\.)?((?:youtube\.com|youtu\.be|youtube-nocookie\.com))(\/(?:[\w-]+\?v=|embed\/|v\/)?)([\w-]+)(\S+)?$/, on = /^((?:https?:)?\/\/)?((?:www|m|music)\.)?((?:youtube\.com|youtu\.be|youtube-nocookie\.com))(\/(?:[\w-]+\?v=|embed\/|v\/)?)([\w-]+)(\S+)?$/g, $ = (e) => e.match(an), sn = (e, t) => t ? "https://www.youtube-nocookie.com/embed/videoseries?list=" : e ? "https://www.youtube-nocookie.com/embed/" : "https://www.youtube.com/embed/", cn = (e) => {
1385
+ }, on = /^((?:https?:)?\/\/)?((?:www|m|music)\.)?((?:youtube\.com|youtu\.be|youtube-nocookie\.com))(\/(?:[\w-]+\?v=|embed\/|v\/)?)([\w-]+)(\S+)?$/, sn = /^((?:https?:)?\/\/)?((?:www|m|music)\.)?((?:youtube\.com|youtu\.be|youtube-nocookie\.com))(\/(?:[\w-]+\?v=|embed\/|v\/)?)([\w-]+)(\S+)?$/g, $ = (e) => e.match(on), cn = (e, t) => t ? "https://www.youtube-nocookie.com/embed/videoseries?list=" : e ? "https://www.youtube-nocookie.com/embed/" : "https://www.youtube.com/embed/", ln = (e) => {
1370
1386
  let { url: t, allowFullscreen: n, autoplay: r, ccLanguage: i, ccLoadPolicy: a, controls: o, disableKBcontrols: s, enableIFrameApi: c, endTime: l, interfaceLanguage: u, ivLoadPolicy: d, loop: f, modestBranding: p, nocookie: m, origin: h, playlist: g, progressBarColor: _, startAt: v, rel: y } = e;
1371
1387
  if (!$(t)) return null;
1372
1388
  if (t.includes("/embed/")) return t;
1373
1389
  if (t.includes("youtu.be")) {
1374
1390
  let e = t.split("/").pop();
1375
- return e ? `${sn(m)}${e}` : null;
1391
+ return e ? `${cn(m)}${e}` : null;
1376
1392
  }
1377
1393
  let b = /(?:(v|list)=|shorts\/)([-\w]+)/gm.exec(t);
1378
1394
  if (!b || !b[2]) return null;
1379
- let x = `${sn(m, b[1] === "list")}${b[2]}`, S = [];
1395
+ let x = `${cn(m, b[1] === "list")}${b[2]}`, S = [];
1380
1396
  return n === !1 && S.push("fs=0"), r && S.push("autoplay=1"), i && S.push(`cc_lang_pref=${i}`), a && S.push("cc_load_policy=1"), o || S.push("controls=0"), s && S.push("disablekb=1"), c && S.push("enablejsapi=1"), l && S.push(`end=${l}`), u && S.push(`hl=${u}`), d && S.push(`iv_load_policy=${d}`), f && S.push("loop=1"), p && S.push("modestbranding=1"), h && S.push(`origin=${h}`), g && S.push(`playlist=${g}`), v && S.push(`start=${v}`), _ && S.push(`color=${_}`), y !== void 0 && S.push(`rel=${y}`), S.length && (x += `${b[1] === "list" ? "&" : "?"}${S.join("&")}`), x;
1381
- }, ln = (e) => {
1397
+ }, un = (e) => {
1382
1398
  let t;
1383
1399
  try {
1384
1400
  t = new URL(e);
@@ -1404,16 +1420,16 @@ var Yt = "_10kj0ro0", Xt = "_10kj0ro1", Zt = "_10kj0ro2", Qt = (e) => e ? typeof
1404
1420
  Number.isNaN(e) || (i.start = e);
1405
1421
  }
1406
1422
  return i;
1407
- }, un = (e) => {
1423
+ }, dn = (e) => {
1408
1424
  if (!e) return null;
1409
1425
  let t = e.trim();
1410
1426
  if (t === "") return null;
1411
1427
  let n = Number(t);
1412
1428
  return Number.isNaN(n) ? t : n;
1413
- }, dn = (e) => {
1429
+ }, fn = (e) => {
1414
1430
  let t = e.getAttribute("src");
1415
- return t ? ln(t) || { src: t } : null;
1416
- }, fn = N.create({
1431
+ return t ? un(t) || { src: t } : null;
1432
+ }, pn = N.create({
1417
1433
  name: "youtube",
1418
1434
  addOptions() {
1419
1435
  return {
@@ -1452,19 +1468,19 @@ var Yt = "_10kj0ro0", Xt = "_10kj0ro1", Zt = "_10kj0ro2", Qt = (e) => e ? typeof
1452
1468
  return {
1453
1469
  src: {
1454
1470
  default: null,
1455
- parseHTML: (e) => dn(e)?.src
1471
+ parseHTML: (e) => fn(e)?.src
1456
1472
  },
1457
1473
  start: {
1458
1474
  default: 0,
1459
- parseHTML: (e) => dn(e)?.start
1475
+ parseHTML: (e) => fn(e)?.start
1460
1476
  },
1461
1477
  width: {
1462
1478
  default: this.options.width,
1463
- parseHTML: (e) => un(e.getAttribute("width"))
1479
+ parseHTML: (e) => dn(e.getAttribute("width"))
1464
1480
  },
1465
1481
  height: {
1466
1482
  default: this.options.height,
1467
- parseHTML: (e) => un(e.getAttribute("height"))
1483
+ parseHTML: (e) => dn(e.getAttribute("height"))
1468
1484
  }
1469
1485
  };
1470
1486
  },
@@ -1479,13 +1495,13 @@ var Yt = "_10kj0ro0", Xt = "_10kj0ro1", Zt = "_10kj0ro2", Qt = (e) => e ? typeof
1479
1495
  },
1480
1496
  addPasteRules() {
1481
1497
  return this.options.addPasteHandler ? [fe({
1482
- find: on,
1498
+ find: sn,
1483
1499
  type: this.type,
1484
1500
  getAttributes: (e) => ({ src: e.input })
1485
1501
  })] : [];
1486
1502
  },
1487
1503
  renderHTML({ HTMLAttributes: e }) {
1488
- return e.src = cn({
1504
+ return e.src = ln({
1489
1505
  url: e.src,
1490
1506
  allowFullscreen: this.options.allowFullscreen,
1491
1507
  autoplay: this.options.autoplay,
@@ -1538,7 +1554,7 @@ var Yt = "_10kj0ro0", Xt = "_10kj0ro1", Zt = "_10kj0ro2", Qt = (e) => e ? typeof
1538
1554
  "start"
1539
1555
  ]
1540
1556
  })
1541
- }), pn = [
1557
+ }), mn = [
1542
1558
  ct,
1543
1559
  h,
1544
1560
  d,
@@ -1553,7 +1569,7 @@ var Yt = "_10kj0ro0", Xt = "_10kj0ro1", Zt = "_10kj0ro2", Qt = (e) => e ? typeof
1553
1569
  me,
1554
1570
  c,
1555
1571
  _,
1556
- he.configure({ openOnClick: !1 }),
1572
+ At,
1557
1573
  Se,
1558
1574
  i,
1559
1575
  Ie,
@@ -1561,7 +1577,7 @@ var Yt = "_10kj0ro0", Xt = "_10kj0ro1", Zt = "_10kj0ro2", Qt = (e) => e ? typeof
1561
1577
  Pe,
1562
1578
  g,
1563
1579
  b.configure({ multicolor: !0 }),
1564
- Mt,
1580
+ Nt,
1565
1581
  x,
1566
1582
  Le.configure({ types: [
1567
1583
  "table",
@@ -1575,9 +1591,9 @@ var Yt = "_10kj0ro0", Xt = "_10kj0ro1", Zt = "_10kj0ro2", Qt = (e) => e ? typeof
1575
1591
  ] }),
1576
1592
  Ee.configure({ itemTypeName: "taskItem" }),
1577
1593
  Te.configure({ nested: !0 }),
1578
- Rt.configure({ table: { cellMinWidth: 120 } }),
1594
+ zt.configure({ table: { cellMinWidth: 120 } }),
1579
1595
  Ot,
1580
- At,
1596
+ jt,
1581
1597
  C,
1582
1598
  Qe,
1583
1599
  et,
@@ -1587,7 +1603,7 @@ var Yt = "_10kj0ro0", Xt = "_10kj0ro1", Zt = "_10kj0ro2", Qt = (e) => e ? typeof
1587
1603
  lt,
1588
1604
  tt,
1589
1605
  nt,
1590
- fn.configure({
1606
+ pn.configure({
1591
1607
  allowFullscreen: !0,
1592
1608
  nocookie: !0,
1593
1609
  HTMLAttributes: { referrerpolicy: "strict-origin-when-cross-origin" }
@@ -1595,22 +1611,22 @@ var Yt = "_10kj0ro0", Xt = "_10kj0ro1", Zt = "_10kj0ro2", Qt = (e) => e ? typeof
1595
1611
  ut,
1596
1612
  kt,
1597
1613
  $e
1598
- ], mn = (e) => m(e, pn), hn = (e) => {
1614
+ ], hn = (e) => m(e, mn), gn = (e) => {
1599
1615
  let t = D(18), n, r, i, a, o;
1600
1616
  t[0] === e ? (n = t[1], r = t[2], i = t[3], a = t[4], o = t[5]) : ({content: r, className: n, ref: i, theme: o, ...a} = e, t[0] = e, t[1] = n, t[2] = r, t[3] = i, t[4] = a, t[5] = o);
1601
1617
  let s;
1602
1618
  t[6] === r ? s = t[7] : (s = y({
1603
1619
  content: r,
1604
- extensions: pn,
1620
+ extensions: mn,
1605
1621
  options: { nodeMapping: {
1606
1622
  bookmark: Je,
1607
- button: Bt,
1608
- details: Gt,
1609
- detailsSummary: Kt,
1610
- detailsContent: qt,
1611
- codeBlock: Wt,
1612
- imageBlock: en,
1613
- levoCollection: rn
1623
+ button: Vt,
1624
+ details: Kt,
1625
+ detailsSummary: qt,
1626
+ detailsContent: Jt,
1627
+ codeBlock: Gt,
1628
+ imageBlock: tn,
1629
+ levoCollection: an
1614
1630
  } }
1615
1631
  }), t[6] = r, t[7] = s);
1616
1632
  let c = s, l;
@@ -1627,18 +1643,18 @@ var Yt = "_10kj0ro0", Xt = "_10kj0ro1", Zt = "_10kj0ro2", Qt = (e) => e ? typeof
1627
1643
  theme: o,
1628
1644
  children: u
1629
1645
  }), t[15] = u, t[16] = o, t[17] = d) : d = t[17], d;
1630
- }, gn = (e) => {
1646
+ }, _n = (e) => {
1631
1647
  if (!e) return null;
1632
- if (typeof e == "string") return e.trim() ? mn(e) : null;
1648
+ if (typeof e == "string") return e.trim() ? hn(e) : null;
1633
1649
  if (typeof e != "object") return null;
1634
1650
  let t = e;
1635
- return t.json ? t.json : typeof t.html == "string" ? t.html.trim() ? mn(t.html) : null : t.type === "doc" ? t : null;
1636
- }, _n = ({ content: e, ...t }) => {
1637
- let n = gn(e);
1638
- return n ? /* @__PURE__ */ k(hn, {
1651
+ return t.json ? t.json : typeof t.html == "string" ? t.html.trim() ? hn(t.html) : null : t.type === "doc" ? t : null;
1652
+ }, vn = ({ content: e, ...t }) => {
1653
+ let n = _n(e);
1654
+ return n ? /* @__PURE__ */ k(gn, {
1639
1655
  content: n,
1640
1656
  ...t
1641
1657
  }) : null;
1642
1658
  };
1643
1659
  //#endregion
1644
- export { _n as LevoBlogContent };
1660
+ export { vn as LevoBlogContent };
@@ -14,7 +14,7 @@ var v = /* @__PURE__ */ e({
14
14
  }), y = async (e, t) => {
15
15
  let n = {};
16
16
  return t?.site_id && (n.site_id = t.site_id), t?.locale && (n.locale = t.locale), t?.country && (n.country = t.country), (await e.url("/v1/studio/popup/list-active").query(n).get().json())?.content?.data ?? [];
17
- }, b = p(() => import("./PopupRenderer-D66Gx63H-DkprAQH7.js").then((e) => e.t).then((e) => ({ default: e.PopupRenderer }))), x = (e) => {
17
+ }, b = p(() => import("./PopupRenderer-D66Gx63H-Cd9xJv33.js").then((e) => e.t).then((e) => ({ default: e.PopupRenderer }))), x = (e) => {
18
18
  let n = u(9), { siteId: r, pageId: i } = e, { fetch: a, logger: s } = t(), [c, l] = g(null), p = h(!1), v, x;
19
19
  if (n[0] !== a || n[1] !== s || n[2] !== r ? (v = () => {
20
20
  if (p.current) return;
@@ -3630,15 +3630,15 @@ var ka = (e) => {
3630
3630
  let t = W(17), n, r, i, a;
3631
3631
  t[0] === e ? (n = t[1], r = t[2], i = t[3], a = t[4]) : ({collection_id: n, hiddenFields: r, enableVerification: a, ...i} = e, t[0] = e, t[1] = n, t[2] = r, t[3] = i, t[4] = a);
3632
3632
  let o = a === void 0 ? !0 : a, { collection: s } = g(), [c, l] = Q(!0), [u, d] = Q(null), f;
3633
- t[5] !== s || t[6] !== n || t[7] !== r || t[8] !== i?.workspace_id ? (f = () => {
3634
- n ? s?.getCollectionByIDExpanded(n, { headers: { "Levo-Workspace": i?.workspace_id } }).then((e) => {
3633
+ t[5] !== s || t[6] !== n || t[7] !== r || t[8] !== i ? (f = () => {
3634
+ n ? s?.getCollectionByIDExpanded(n, { headers: { "Levo-Workspace": i.workspace_id } }).then((e) => {
3635
3635
  let t = e?.content?.data;
3636
3636
  if (t) t.sections = t?.sections?.map((e) => (e.fields = e?.fields?.map((e) => (r?.includes(e?.key) && (e.hidden = !0), e)), e)), d(t);
3637
3637
  else throw Error(`API response invalid: ${t}`);
3638
3638
  }).catch(ja).finally(() => {
3639
3639
  l(!1);
3640
3640
  }) : (console.error("[CollectionFormBuilder] Collection ID or Workspace ID is missing."), l(!1));
3641
- }, t[5] = s, t[6] = n, t[7] = r, t[8] = i?.workspace_id, t[9] = f) : f = t[9];
3641
+ }, t[5] = s, t[6] = n, t[7] = r, t[8] = i, t[9] = f) : f = t[9];
3642
3642
  let p;
3643
3643
  t[10] === n ? p = t[11] : (p = [n], t[10] = n, t[11] = p), ae(f, p);
3644
3644
  let m;
package/index.d.ts CHANGED
@@ -902,6 +902,15 @@ export declare interface ILevoRecordConfig {
902
902
  module: ILevoSourceModule;
903
903
  /** What the module's `identifier` names — see {@link ILevoSourceModule}. Round-tripped; the event single endpoint is flat (slug only). */
904
904
  identifier: string;
905
+ /**
906
+ * Route param this binding's slug comes from — `"slug"` on `/blog/$slug`, `"events"` on
907
+ * `/legal-events/$events`. Every generated record binding carries it: it is the mapping a
908
+ * multi-param route needs, since with two variable segments nothing else in the file says
909
+ * which binding fills which slot. Round-tripped through the editor binding like the rest.
910
+ *
911
+ * Optional only for the pages written before it existed — see {@link recordSlug}.
912
+ */
913
+ param?: string;
905
914
  /**
906
915
  * Reserved for field projection. The slug endpoints return the whole record today, so
907
916
  * this is round-tripped through the binding but not yet sent to the API.
@@ -1931,7 +1940,7 @@ export declare const prefetchLevoSources: ({ queryClient, config, sources, param
1931
1940
  config: ILevoSiteConfig | undefined;
1932
1941
  /** The page's `dataSources` export (undefined = page has none). */
1933
1942
  sources: ILevoDataSources | undefined;
1934
- /** Route params; record bindings read `params.slug`. */
1943
+ /** Route params; each record binding reads the one its `param` names, else the sole segment. */
1935
1944
  params?: Record<string, string>;
1936
1945
  }) => Promise<Record<string, unknown>>;
1937
1946