okno 1.0.0-beta.27 → 1.0.0-beta.28

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 (2) hide show
  1. package/dist/editor/index.js +376 -337
  2. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { untrack as Ue, getContext as Gt, onMount as Sr, tick as Vr, hasContext as r5, setContext as li, getAllContexts as n5, mount as Ws, unmount as o5, onDestroy as i5 } from "svelte";
1
+ import { untrack as Ue, getContext as Gt, onMount as Sr, tick as Vr, hasContext as r5, setContext as ai, getAllContexts as n5, mount as Ws, unmount as o5, onDestroy as i5 } from "svelte";
2
2
  import "svelte/internal/disclose-version";
3
3
  import "svelte/internal/flags/async";
4
4
  import * as e from "svelte/internal/client";
@@ -39,7 +39,7 @@ function f5() {
39
39
  }
40
40
  return o;
41
41
  }
42
- const $i = [], p5 = 1e3;
42
+ const Ii = [], p5 = 1e3;
43
43
  function _s(o, t, r) {
44
44
  const n = r.map((i) => {
45
45
  if (typeof i == "string") return i;
@@ -51,7 +51,7 @@ ${i.stack}`;
51
51
  return String(i);
52
52
  }
53
53
  }).join(" ");
54
- $i.push({ timestamp: Date.now(), module: o, level: t, message: n }), $i.length > p5 && $i.shift();
54
+ Ii.push({ timestamp: Date.now(), module: o, level: t, message: n }), Ii.length > p5 && Ii.shift();
55
55
  }
56
56
  function Mr(o) {
57
57
  return {
@@ -280,9 +280,9 @@ function C5() {
280
280
  const t = Number(o);
281
281
  return Number.isFinite(t) ? Date.now() > t - x5 : !1;
282
282
  }
283
- let ki = null;
283
+ let bi = null;
284
284
  function Xl() {
285
- return ki || (ki = (async () => {
285
+ return bi || (bi = (async () => {
286
286
  const o = localStorage.getItem($a);
287
287
  if (!o || !__OKNO_API_URL__) return !1;
288
288
  try {
@@ -298,9 +298,9 @@ function Xl() {
298
298
  } catch {
299
299
  return !1;
300
300
  } finally {
301
- ki = null;
301
+ bi = null;
302
302
  }
303
- })(), ki);
303
+ })(), bi);
304
304
  }
305
305
  const Wu = typeof window < "u" ? window.location.origin : "", hl = `okno-current-repo:${Wu}`, xd = "okno-github-token", Cd = 300 * 1e3, Ss = `okno-repo-token:${Wu}`;
306
306
  if (typeof window < "u")
@@ -801,7 +801,7 @@ async function Ld(o, t) {
801
801
  if (!n.ok) throw new Error(`blob ${t} ${n.status}`);
802
802
  return n.blob();
803
803
  }
804
- async function ji(o, t) {
804
+ async function $i(o, t) {
805
805
  return (await ja(o)).tree.find((n) => n.type === "blob" && n.path === t)?.sha;
806
806
  }
807
807
  async function A5(o) {
@@ -994,7 +994,7 @@ class R5 extends Ot {
994
994
  }
995
995
  }
996
996
  const ct = (o) => JSON.parse(JSON.stringify(o));
997
- function Zo(o) {
997
+ function Bo(o) {
998
998
  return o.normalize("NFD").replace(/[̀-ͯ]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
999
999
  }
1000
1000
  function Ir(o) {
@@ -1953,24 +1953,59 @@ let Z5 = class extends Ot {
1953
1953
  }
1954
1954
  /**
1955
1955
  * Compare every rendered [data-okno] element to the editor's freshly-loaded
1956
- * content. When the rendered value is stale (page built from older content,
1957
- * editor just fetched newer values from remote), patch the DOM directly so
1958
- * the visitor doesn't see stale content while Vercel rebuilds.
1956
+ * content and patch the DOM where the page is stale. The page is server-rendered
1957
+ * from the DEPLOYED (production) content, but the editor edits the `okno` working
1958
+ * branch so unpublished edits (a swapped image, retitled heading, changed link)
1959
+ * would otherwise stay invisible on the page until publish + redeploy. This makes
1960
+ * the page reflect what you're editing; the Publish button (lit while the working
1961
+ * branch is ahead) is the "not live yet" indicator.
1959
1962
  *
1960
- * Only patches plain text leaves complex elements (images, link spreads,
1961
- * etc.) are left alone; the user's site code owns those via the proxy's
1962
- * `.onedit()` subscriptions.
1963
+ * Handles text leaves, media (`{src}` img/video/source `src`) and link
1964
+ * (`{url,text}` `<a>` href + label). Generic group objects are left alone (the
1965
+ * user's site code owns those via the proxy's `.onedit()` subscriptions). All
1966
+ * swaps apply inside one View Transition for a crossfade (instant where unsupported).
1963
1967
  */
1964
1968
  patchStaleDom() {
1965
- const t = this.modules.content;
1966
- let r = 0;
1967
- for (const [n, i] of this.elements) {
1968
- const s = U5(t, n);
1969
- if (s == null || typeof s == "object") continue;
1970
- const a = String(s);
1971
- (i.textContent ?? "").trim() !== a.trim() && (document.dispatchEvent(new CustomEvent("okno:change", { detail: { path: n, value: s } })), i.children.length === 0 && (i.textContent = a, r++));
1969
+ const t = this.modules.content, r = [];
1970
+ for (const [s, a] of this.elements) {
1971
+ const l = U5(t, s);
1972
+ if (l == null) continue;
1973
+ if (typeof l == "object") {
1974
+ const u = this.mediaOrLinkPatch(a, s, l);
1975
+ u && r.push(u);
1976
+ continue;
1977
+ }
1978
+ const c = String(l);
1979
+ (a.textContent ?? "").trim() !== c.trim() && r.push(() => {
1980
+ document.dispatchEvent(new CustomEvent("okno:change", { detail: { path: s, value: l } })), a.children.length === 0 && (a.textContent = c);
1981
+ });
1982
+ }
1983
+ if (!r.length) return;
1984
+ const n = () => r.forEach((s) => s()), i = document.startViewTransition;
1985
+ typeof i == "function" ? i.call(document, n) : n(), jo.info("Patched", r.length, "stale DOM nodes with fresh content");
1986
+ }
1987
+ /** Build a patch closure for a media (`{src}`) or link (`{url,text}`) field whose
1988
+ * rendered element is stale, or null when it already matches. Media patches the
1989
+ * media element's `src` (+ `alt` for imgs); link patches the `<a>` href and, when
1990
+ * the anchor owns its label, its text. Also fires `okno:change` so any user
1991
+ * `.onedit()` hook stays in charge. */
1992
+ mediaOrLinkPatch(t, r, n) {
1993
+ if (typeof n.src == "string") {
1994
+ const i = t.tagName.toLowerCase();
1995
+ if (i !== "img" && i !== "video" && i !== "source") return null;
1996
+ const s = n.src;
1997
+ return t.getAttribute("src") === s ? null : () => {
1998
+ document.dispatchEvent(new CustomEvent("okno:change", { detail: { path: r, value: n } })), t.setAttribute("src", s), i === "img" && typeof n.alt == "string" && t.setAttribute("alt", n.alt);
1999
+ };
1972
2000
  }
1973
- r > 0 && jo.info("Patched", r, "stale DOM nodes with fresh content");
2001
+ if (typeof n.url == "string" && "text" in n) {
2002
+ if (t.tagName.toLowerCase() !== "a") return null;
2003
+ const i = n.url, s = typeof n.text == "string" ? n.text : "", a = t.getAttribute("href") !== i, l = t.children.length === 0 && (t.textContent ?? "").trim() !== s.trim();
2004
+ return !a && !l ? null : () => {
2005
+ document.dispatchEvent(new CustomEvent("okno:change", { detail: { path: r, value: n } })), a && t.setAttribute("href", i), l && (t.textContent = s);
2006
+ };
2007
+ }
2008
+ return null;
1974
2009
  }
1975
2010
  /** Idempotent — `scan()` is called on every content:ready, so binding new
1976
2011
  * closures each time would stack listeners and fire events N times. */
@@ -3084,7 +3119,7 @@ function a0(o) {
3084
3119
  });
3085
3120
  return { popup: s, closed: a };
3086
3121
  }
3087
- const Wo = 10, e1 = 200, Qu = "billing-consent", eh = "billing-month-capped", th = "billing-year-capped";
3122
+ const ji = 10, e1 = 200, Qu = "billing-consent", eh = "billing-month-capped", th = "billing-year-capped";
3088
3123
  let l0 = class extends Ot {
3089
3124
  #e = e.state(!1);
3090
3125
  get locked() {
@@ -3287,7 +3322,7 @@ let l0 = class extends Ot {
3287
3322
  async awaitHostedCheckout(t) {
3288
3323
  const { closed: r } = a0(t);
3289
3324
  let n = !0;
3290
- return r.then(() => n = !1), this.awaitDayLanded({ timeoutMs: 4 * 6e4, done: () => !n, graceMs: 2e4 });
3325
+ return r.then(() => n = !1), this.awaitDayLanded({ timeoutMs: 4 * 6e4, done: () => !n, graceMs: 8e3 });
3291
3326
  }
3292
3327
  /** Poll /api/auth/me until the new paid day shows up (spend rises, today goes
3293
3328
  * active, or a card appears), then adopt that authoritative state. Returns
@@ -5237,14 +5272,14 @@ function mt(o, t) {
5237
5272
  L() && He(Io);
5238
5273
  });
5239
5274
  }
5240
- var mi = e.sibling(Or, 2);
5275
+ var vi = e.sibling(Or, 2);
5241
5276
  {
5242
- var bi = (He) => {
5277
+ var mi = (He) => {
5243
5278
  var Tt = q3(), Er = e.child(Tt, !0);
5244
5279
  e.reset(Tt), e.template_effect(() => e.set_text(Er, t.description)), e.append(He, Tt);
5245
5280
  };
5246
- e.if(mi, (He) => {
5247
- t.description && He(bi);
5281
+ e.if(vi, (He) => {
5282
+ t.description && He(mi);
5248
5283
  });
5249
5284
  }
5250
5285
  e.reset(Kt), e.template_effect(() => e.set_class(Kt, 1, `flex flex-col items-center gap-4 p-4 text-center select-none ${t.children ? "mb-16" : ""}`)), e.append(Ht, Kt);
@@ -5355,9 +5390,9 @@ function mt(o, t) {
5355
5390
  e.snippet(Or, () => t.banner ?? e.noop);
5356
5391
  var Io = e.sibling(Or, 2);
5357
5392
  n(Io);
5358
- var mi = e.sibling(Io, 2);
5393
+ var vi = e.sibling(Io, 2);
5359
5394
  {
5360
- var bi = (He) => {
5395
+ var mi = (He) => {
5361
5396
  var Tt = e.comment(), Er = e.first_child(Tt);
5362
5397
  {
5363
5398
  var dl = ($o) => {
@@ -5373,8 +5408,8 @@ function mt(o, t) {
5373
5408
  }
5374
5409
  e.append(He, Tt);
5375
5410
  };
5376
- e.if(mi, (He) => {
5377
- t.footer && He(bi);
5411
+ e.if(vi, (He) => {
5412
+ t.footer && He(mi);
5378
5413
  });
5379
5414
  }
5380
5415
  e.reset(Wt), e.reset(Nt), e.template_effect(() => e.set_style(nr, `width: ${ht.current ?? ""}px`)), e.delegated("pointerdown", zr, ze), e.append(xt, Nt);
@@ -5455,7 +5490,7 @@ function mt(o, t) {
5455
5490
  var Qp = e.sibling(vt, 2);
5456
5491
  {
5457
5492
  var e5 = (xt) => {
5458
- var Nt = a4(), nr = e.first_child(Nt), zr = e.derived(() => yt("n")), Dr = e.sibling(nr, 2), Pn = e.derived(() => yt("s")), On = e.sibling(Dr, 2), Pr = e.derived(() => yt("w")), Fr = e.sibling(On, 2), no = e.derived(() => yt("e")), Ht = e.sibling(Fr, 2), Kt = e.derived(() => yt("nw")), Wt = e.sibling(Ht, 2), lr = e.derived(() => yt("ne")), Or = e.sibling(Wt, 2), Io = e.derived(() => yt("sw")), mi = e.sibling(Or, 2), bi = e.derived(() => yt("se"));
5493
+ var Nt = a4(), nr = e.first_child(Nt), zr = e.derived(() => yt("n")), Dr = e.sibling(nr, 2), Pn = e.derived(() => yt("s")), On = e.sibling(Dr, 2), Pr = e.derived(() => yt("w")), Fr = e.sibling(On, 2), no = e.derived(() => yt("e")), Ht = e.sibling(Fr, 2), Kt = e.derived(() => yt("nw")), Wt = e.sibling(Ht, 2), lr = e.derived(() => yt("ne")), Or = e.sibling(Wt, 2), Io = e.derived(() => yt("sw")), vi = e.sibling(Or, 2), mi = e.derived(() => yt("se"));
5459
5494
  e.delegated("pointerdown", nr, function(...He) {
5460
5495
  e.get(zr)?.apply(this, He);
5461
5496
  }), e.delegated("pointerdown", Dr, function(...He) {
@@ -5470,8 +5505,8 @@ function mt(o, t) {
5470
5505
  e.get(lr)?.apply(this, He);
5471
5506
  }), e.delegated("pointerdown", Or, function(...He) {
5472
5507
  e.get(Io)?.apply(this, He);
5473
- }), e.delegated("pointerdown", mi, function(...He) {
5474
- e.get(bi)?.apply(this, He);
5508
+ }), e.delegated("pointerdown", vi, function(...He) {
5509
+ e.get(mi)?.apply(this, He);
5475
5510
  }), e.append(xt, Nt);
5476
5511
  };
5477
5512
  e.if(Qp, (xt) => {
@@ -5591,7 +5626,7 @@ function f4(o, t) {
5591
5626
  e.remove_input_defaults(s), e.reset(n), e.bind_value(s, r), e.append(o, n), e.pop();
5592
5627
  }
5593
5628
  var p4 = e.from_html('<button class="size-24 hover:bg-sky-500/10 flex-center hover:text-sky-500 transition-colors duration-150 cursor-pointer rounded-full superellipse"><!></button>'), g4 = e.from_html('<div class="flex items-center gap-4"><!> <!></div>'), v4 = e.from_html('<header class="flex items-center justify-between px-8 select-none mb-2 text-neutral-500"><p class="text-xs/[110%] text-neutral-400"> </p> <!></header>');
5594
- function Uo(o, t) {
5629
+ function Zo(o, t) {
5595
5630
  var r = v4(), n = e.child(r), i = e.child(n, !0);
5596
5631
  e.reset(n);
5597
5632
  var s = e.sibling(n, 2);
@@ -5633,13 +5668,13 @@ function na(o, t) {
5633
5668
  var r = m4();
5634
5669
  e.template_effect(() => e.set_class(r, 1, e.clsx(["bg-white/10 rounded-md animate-pulse", t.class]))), e.append(o, r);
5635
5670
  }
5636
- const yi = new Cn("okno-folder-collapsed", []), Zd = (o, t) => `${o}:${t}`, Vo = {
5671
+ const ki = new Cn("okno-folder-collapsed", []), Zd = (o, t) => `${o}:${t}`, Wo = {
5637
5672
  isCollapsed(o, t) {
5638
- return yi.current.includes(Zd(o, t));
5673
+ return ki.current.includes(Zd(o, t));
5639
5674
  },
5640
5675
  toggle(o, t) {
5641
5676
  const r = Zd(o, t);
5642
- yi.current = yi.current.includes(r) ? yi.current.filter((n) => n !== r) : [...yi.current, r];
5677
+ ki.current = ki.current.includes(r) ? ki.current.filter((n) => n !== r) : [...ki.current, r];
5643
5678
  }
5644
5679
  };
5645
5680
  var b4 = e.from_html('<p class="px-6 text-[14px] text-(--fg-muted)">No matches</p>'), Ud = e.from_html('<div class="flex flex-col gap-2"><!> <!></div>'), k4 = e.from_html('<div class="flex flex-col gap-2"><!> <!> <!></div>'), y4 = e.from_html('<div class="flex flex-col gap-2 pl-24"></div>'), x4 = e.from_html("<!> <!>", 1), C4 = e.from_html('<div><div class="flex flex-col gap-2"><!> <!></div> <!></div>');
@@ -5698,7 +5733,7 @@ function Sh(o, t) {
5698
5733
  e.each(L, 17, () => e.get(h), e.index, (T, S) => {
5699
5734
  let R = () => e.get(S).group, $ = () => e.get(S).items;
5700
5735
  var F = Ud(), z = e.child(F);
5701
- Uo(z, {
5736
+ Zo(z, {
5702
5737
  get title() {
5703
5738
  return R().title;
5704
5739
  }
@@ -5738,7 +5773,7 @@ function Sh(o, t) {
5738
5773
  {
5739
5774
  var L = (S) => {
5740
5775
  var R = k4(), $ = e.child(R);
5741
- Uo($, {
5776
+ Zo($, {
5742
5777
  get title() {
5743
5778
  return e.get(O).title;
5744
5779
  }
@@ -5751,7 +5786,7 @@ function Sh(o, t) {
5751
5786
  var R = Ud(), $ = e.child(R);
5752
5787
  {
5753
5788
  var F = (A) => {
5754
- Uo(A, {
5789
+ Zo(A, {
5755
5790
  get title() {
5756
5791
  return e.get(O).title;
5757
5792
  }
@@ -5766,7 +5801,7 @@ function Sh(o, t) {
5766
5801
  var N = e.comment(), H = e.first_child(N);
5767
5802
  {
5768
5803
  var B = (Z) => {
5769
- const q = e.derived(() => Vo.isCollapsed(e.get(O).kind, e.get(D).id));
5804
+ const q = e.derived(() => Wo.isCollapsed(e.get(O).kind, e.get(D).id));
5770
5805
  var U = x4(), X = e.first_child(U);
5771
5806
  bn(X, {
5772
5807
  icon: "folder",
@@ -5774,7 +5809,7 @@ function Sh(o, t) {
5774
5809
  get label() {
5775
5810
  return e.get(D).name;
5776
5811
  },
5777
- onclick: () => Vo.toggle(e.get(O).kind, e.get(D).id),
5812
+ onclick: () => Wo.toggle(e.get(O).kind, e.get(D).id),
5778
5813
  trailing: (K) => {
5779
5814
  {
5780
5815
  let G = e.derived(() => [
@@ -6015,11 +6050,11 @@ const E4 = ["string", "number", "bigint", "boolean"];
6015
6050
  function o1(o) {
6016
6051
  return o == null || E4.includes(typeof o) ? !0 : Array.isArray(o) ? o.every((t) => o1(t)) : typeof o == "object" ? Object.getPrototypeOf(o) === Object.prototype : !1;
6017
6052
  }
6018
- const Qo = /* @__PURE__ */ Symbol("box"), Na = /* @__PURE__ */ Symbol("is-writable");
6053
+ const Jo = /* @__PURE__ */ Symbol("box"), Na = /* @__PURE__ */ Symbol("is-writable");
6019
6054
  function ne(o, t) {
6020
6055
  const r = e.derived(o);
6021
6056
  return t ? {
6022
- [Qo]: !0,
6057
+ [Jo]: !0,
6023
6058
  [Na]: !0,
6024
6059
  get current() {
6025
6060
  return e.get(r);
@@ -6028,14 +6063,14 @@ function ne(o, t) {
6028
6063
  t(n);
6029
6064
  }
6030
6065
  } : {
6031
- [Qo]: !0,
6066
+ [Jo]: !0,
6032
6067
  get current() {
6033
6068
  return o();
6034
6069
  }
6035
6070
  };
6036
6071
  }
6037
6072
  function rs(o) {
6038
- return ts(o) && Qo in o;
6073
+ return ts(o) && Jo in o;
6039
6074
  }
6040
6075
  function H1(o) {
6041
6076
  return rs(o) && Na in o;
@@ -6063,7 +6098,7 @@ function T4(o) {
6063
6098
  }
6064
6099
  function A4(o) {
6065
6100
  return H1(o) ? {
6066
- [Qo]: !0,
6101
+ [Jo]: !0,
6067
6102
  get current() {
6068
6103
  return o.current;
6069
6104
  }
@@ -6072,7 +6107,7 @@ function A4(o) {
6072
6107
  function hr(o) {
6073
6108
  let t = e.state(e.proxy(o));
6074
6109
  return {
6075
- [Qo]: !0,
6110
+ [Jo]: !0,
6076
6111
  [Na]: !0,
6077
6112
  get current() {
6078
6113
  return e.get(t);
@@ -6085,7 +6120,7 @@ function hr(o) {
6085
6120
  function Mo(o) {
6086
6121
  let t = e.state(e.proxy(o));
6087
6122
  return {
6088
- [Qo]: !0,
6123
+ [Jo]: !0,
6089
6124
  [Na]: !0,
6090
6125
  get current() {
6091
6126
  return e.get(t);
@@ -6249,7 +6284,7 @@ function X4(o) {
6249
6284
  function J4(o) {
6250
6285
  return o ? o[0].toLowerCase() + o.slice(1) : "";
6251
6286
  }
6252
- function Ai(o) {
6287
+ function Ti(o) {
6253
6288
  if (!o)
6254
6289
  return {};
6255
6290
  const t = {};
@@ -6266,7 +6301,7 @@ function Ai(o) {
6266
6301
  }
6267
6302
  return Z4(o, r), t;
6268
6303
  }
6269
- function Ko(...o) {
6304
+ function Uo(...o) {
6270
6305
  return (...t) => {
6271
6306
  for (const r of o)
6272
6307
  typeof r == "function" && r(...t);
@@ -6423,7 +6458,7 @@ function Be(...o) {
6423
6458
  const u = s, d = a;
6424
6459
  t[i] = Dh(u, d);
6425
6460
  } else if (l && c)
6426
- t[i] = Ko(s, a);
6461
+ t[i] = Uo(s, a);
6427
6462
  else if (i === "class") {
6428
6463
  const u = o1(s), d = o1(a);
6429
6464
  u && d ? t[i] = bl(s, a) : u ? t[i] = bl(s) : d && (t[i] = bl(a));
@@ -6432,13 +6467,13 @@ function Be(...o) {
6432
6467
  if (u && d)
6433
6468
  t[i] = { ...s, ...a };
6434
6469
  else if (u && h) {
6435
- const p = Ai(a);
6470
+ const p = Ti(a);
6436
6471
  t[i] = { ...s, ...p };
6437
6472
  } else if (f && d) {
6438
- const p = Ai(s);
6473
+ const p = Ti(s);
6439
6474
  t[i] = { ...p, ...a };
6440
6475
  } else if (f && h) {
6441
- const p = Ai(s), g = Ai(a);
6476
+ const p = Ti(s), g = Ti(a);
6442
6477
  t[i] = { ...p, ...g };
6443
6478
  } else u ? t[i] = s : d ? t[i] = a : f ? t[i] = s : h && (t[i] = a);
6444
6479
  } else
@@ -6647,7 +6682,7 @@ class vr {
6647
6682
  * Must be called during component initialisation.
6648
6683
  */
6649
6684
  set(t) {
6650
- return li(this.#t, t);
6685
+ return ai(this.#t, t);
6651
6686
  }
6652
6687
  }
6653
6688
  function m8(o, t) {
@@ -6750,7 +6785,7 @@ function V1(o) {
6750
6785
  function lt(o) {
6751
6786
  return o ? "" : void 0;
6752
6787
  }
6753
- function ci(o) {
6788
+ function li(o) {
6754
6789
  return o ? "open" : "closed";
6755
6790
  }
6756
6791
  function B1(o) {
@@ -7045,7 +7080,7 @@ function Hh(o, t) {
7045
7080
  };
7046
7081
  }
7047
7082
  const N8 = Hh((o) => o.defaultLocale, "en"), H8 = Hh((o) => o.defaultPortalTo, "body");
7048
- function di(o, t) {
7083
+ function ci(o, t) {
7049
7084
  e.push(t, !0);
7050
7085
  const r = H8(() => t.to), n = n5();
7051
7086
  let i = e.derived(s);
@@ -7148,7 +7183,7 @@ function G8(o, { select: t = !1 } = {}, r) {
7148
7183
  if (Y8(i, { select: t }), r() !== n)
7149
7184
  return !0;
7150
7185
  }
7151
- let xi = e.state(!1);
7186
+ let yi = e.state(!1);
7152
7187
  class An {
7153
7188
  static _refs = 0;
7154
7189
  // Reference counting to avoid multiple listeners.
@@ -7156,20 +7191,20 @@ class An {
7156
7191
  constructor() {
7157
7192
  e.user_effect(() => (An._refs === 0 && (An._cleanup = e.effect_root(() => {
7158
7193
  const t = [], r = (i) => {
7159
- e.set(xi, !1);
7194
+ e.set(yi, !1);
7160
7195
  }, n = (i) => {
7161
- e.set(xi, !0);
7196
+ e.set(yi, !0);
7162
7197
  };
7163
- return t.push(Ct(document, "pointerdown", r, { capture: !0 }), Ct(document, "pointermove", r, { capture: !0 }), Ct(document, "keydown", n, { capture: !0 })), Ko(...t);
7198
+ return t.push(Ct(document, "pointerdown", r, { capture: !0 }), Ct(document, "pointermove", r, { capture: !0 }), Ct(document, "keydown", n, { capture: !0 })), Uo(...t);
7164
7199
  })), An._refs++, () => {
7165
- An._refs--, An._refs === 0 && (e.set(xi, !1), An._cleanup?.());
7200
+ An._refs--, An._refs === 0 && (e.set(yi, !1), An._cleanup?.());
7166
7201
  }));
7167
7202
  }
7168
7203
  get current() {
7169
- return e.get(xi);
7204
+ return e.get(yi);
7170
7205
  }
7171
7206
  set current(t) {
7172
- e.set(xi, t, !0);
7207
+ e.set(yi, t, !0);
7173
7208
  }
7174
7209
  }
7175
7210
  var Zh = ["input:not([inert]):not([inert] *)", "select:not([inert]):not([inert] *)", "textarea:not([inert]):not([inert] *)", "a[href]:not([inert]):not([inert] *)", "button:not([inert]):not([inert] *)", "[tabindex]:not(slot):not([inert]):not([inert] *)", "audio[controls]:not([inert]):not([inert] *)", "video[controls]:not([inert]):not([inert] *)", '[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)', "details>summary:first-of-type:not([inert]):not([inert] *)", "details:not([inert]):not([inert] *)"], aa = /* @__PURE__ */ Zh.join(","), Uh = typeof Element > "u", xo = Uh ? function() {
@@ -8043,7 +8078,7 @@ class ls {
8043
8078
  role: "menu",
8044
8079
  "aria-orientation": "vertical",
8045
8080
  [this.parentMenu.root.getBitsAttr("content")]: "",
8046
- "data-state": ci(this.parentMenu.opts.open.current),
8081
+ "data-state": li(this.parentMenu.opts.open.current),
8047
8082
  ...B1(this.parentMenu.contentPresence.transitionStatus),
8048
8083
  onkeydown: this.onkeydown,
8049
8084
  onblur: this.onblur,
@@ -8231,7 +8266,7 @@ class G1 {
8231
8266
  {
8232
8267
  "aria-haspopup": "menu",
8233
8268
  "aria-expanded": gr(this.submenu.opts.open.current),
8234
- "data-state": ci(this.submenu.opts.open.current),
8269
+ "data-state": li(this.submenu.opts.open.current),
8235
8270
  "aria-controls": this.submenu.opts.open.current ? this.submenu.contentId.current : void 0,
8236
8271
  [this.submenu.root.getBitsAttr("sub-trigger")]: "",
8237
8272
  onclick: this.onclick,
@@ -8313,7 +8348,7 @@ class X1 {
8313
8348
  "aria-expanded": gr(this.parentMenu.opts.open.current),
8314
8349
  "aria-controls": e.get(this.#e),
8315
8350
  "data-disabled": lt(this.opts.disabled.current),
8316
- "data-state": ci(this.parentMenu.opts.open.current),
8351
+ "data-state": li(this.parentMenu.opts.open.current),
8317
8352
  [this.parentMenu.root.getBitsAttr("trigger")]: "",
8318
8353
  //
8319
8354
  onclick: this.onclick,
@@ -8375,7 +8410,7 @@ class J1 {
8375
8410
  id: this.opts.id.current,
8376
8411
  disabled: this.opts.disabled.current,
8377
8412
  "data-disabled": lt(this.opts.disabled.current),
8378
- "data-state": ci(this.parentMenu.opts.open.current),
8413
+ "data-state": li(this.parentMenu.opts.open.current),
8379
8414
  [Z1]: "",
8380
8415
  tabindex: -1,
8381
8416
  onpointerdown: this.onpointerdown,
@@ -8435,7 +8470,7 @@ class Q1 {
8435
8470
  });
8436
8471
  };
8437
8472
  #c() {
8438
- return Ko(
8473
+ return Uo(
8439
8474
  /**
8440
8475
  * CAPTURE INTERACTION START
8441
8476
  * mark interaction-start event as intercepted.
@@ -8443,13 +8478,13 @@ class Q1 {
8443
8478
  * to avoid checking if is responsible layer during interaction end
8444
8479
  * when a new floating element may have been opened.
8445
8480
  */
8446
- Ct(this.#i, "pointerdown", Ko(this.#f, this.#h), { capture: !0 }),
8481
+ Ct(this.#i, "pointerdown", Uo(this.#f, this.#h), { capture: !0 }),
8447
8482
  /**
8448
8483
  * BUBBLE INTERACTION START
8449
8484
  * Mark interaction-start event as non-intercepted. Debounce `onInteractOutsideStart`
8450
8485
  * to avoid prematurely checking if other events were intercepted.
8451
8486
  */
8452
- Ct(this.#i, "pointerdown", Ko(this.#p, this.#u)),
8487
+ Ct(this.#i, "pointerdown", Uo(this.#p, this.#u)),
8453
8488
  /**
8454
8489
  * HANDLE FOCUS OUTSIDE
8455
8490
  */
@@ -8771,7 +8806,7 @@ class nc {
8771
8806
  }));
8772
8807
  }
8773
8808
  #t() {
8774
- return Ko(Ct(this.domContext.getDocument(), "pointerdown", this.#r), Ct(this.domContext.getDocument(), "pointerup", Dh(this.#n, this.opts.onPointerUp.current)));
8809
+ return Uo(Ct(this.domContext.getDocument(), "pointerdown", this.#r), Ct(this.domContext.getDocument(), "pointerup", Dh(this.#n, this.opts.onPointerUp.current)));
8775
8810
  }
8776
8811
  #r = (t) => {
8777
8812
  const r = this.opts.ref.current, n = t.target;
@@ -8834,7 +8869,7 @@ class $6 {
8834
8869
  }
8835
8870
  }
8836
8871
  const Bs = new s5();
8837
- let Es = e.state(null), yl = null, Ci = null, wi = !1;
8872
+ let Es = e.state(null), yl = null, xi = null, Ci = !1;
8838
8873
  const s2 = ne(() => {
8839
8874
  for (const o of Bs.values())
8840
8875
  if (o) return !0;
@@ -8846,21 +8881,21 @@ const j6 = new $6(() => {
8846
8881
  document.body.setAttribute("style", e.get(Es) ?? ""), document.body.style.removeProperty("--scrollbar-width"), Jd && yl?.(), e.set(Es, null);
8847
8882
  }
8848
8883
  function t() {
8849
- Ci !== null && (window.clearTimeout(Ci), Ci = null);
8884
+ xi !== null && (window.clearTimeout(xi), xi = null);
8850
8885
  }
8851
8886
  function r(i, s) {
8852
- t(), wi = !0, xl = Date.now();
8887
+ t(), Ci = !0, xl = Date.now();
8853
8888
  const a = xl, l = () => {
8854
- Ci = null, xl === a && (of(Bs) ? wi = !1 : (wi = !1, s()));
8889
+ xi = null, xl === a && (of(Bs) ? Ci = !1 : (Ci = !1, s()));
8855
8890
  }, c = i === null ? 24 : i;
8856
- Ci = window.setTimeout(l, c);
8891
+ xi = window.setTimeout(l, c);
8857
8892
  }
8858
8893
  function n() {
8859
- e.get(Es) === null && Bs.size === 0 && !wi && e.set(Es, document.body.getAttribute("style"), !0);
8894
+ e.get(Es) === null && Bs.size === 0 && !Ci && e.set(Es, document.body.getAttribute("style"), !0);
8860
8895
  }
8861
8896
  return it(() => s2.current, () => {
8862
8897
  if (!s2.current) return;
8863
- n(), wi = !1;
8898
+ n(), Ci = !1;
8864
8899
  const i = getComputedStyle(document.documentElement), s = getComputedStyle(document.body), a = i.scrollbarGutter?.includes("stable") || s.scrollbarGutter?.includes("stable"), l = window.innerWidth - document.documentElement.clientWidth, u = {
8865
8900
  padding: Number.parseInt(s.paddingRight ?? "0", 10) + l,
8866
8901
  margin: Number.parseInt(s.marginRight ?? "0", 10)
@@ -8965,7 +9000,7 @@ const F6 = {
8965
9000
  31
8966
9001
  ]
8967
9002
  };
8968
- class ei {
9003
+ class Qo {
8969
9004
  fromJulianDay(t) {
8970
9005
  let r = t, n = r - sf, i = Math.floor(n / 146097), s = Cl(n, 146097), a = Math.floor(s / 36524), l = Cl(s, 36524), c = Math.floor(l / 1461), u = Cl(l, 1461), d = Math.floor(u / 365), f = i * 400 + a * 100 + c * 4 + d + (a !== 4 && d !== 4 ? 1 : 0), [h, p] = z6(f), g = r - Ts(h, p, 1, 1), v = 2;
8971
9006
  r < Ts(h, p, 3, 1) ? v = 0 : Zs(p) && (v = 1);
@@ -9201,7 +9236,7 @@ function G6(o) {
9201
9236
  return t.firstDay;
9202
9237
  }
9203
9238
  function Vn(o) {
9204
- o = Cr(o, new ei());
9239
+ o = Cr(o, new Qo());
9205
9240
  let t = oc(o.era, o.year);
9206
9241
  return df(t, o.month, o.day, o.hour, o.minute, o.second, o.millisecond);
9207
9242
  }
@@ -9262,7 +9297,7 @@ function tn(o, t, r = "compatible") {
9262
9297
  let n = Bn(o);
9263
9298
  if (t === "UTC") return Vn(n);
9264
9299
  if (t === zn() && r === "compatible" && !cf()) {
9265
- n = Cr(n, new ei());
9300
+ n = Cr(n, new Qo());
9266
9301
  let c = /* @__PURE__ */ new Date(), u = oc(n.era, n.year);
9267
9302
  return c.setFullYear(u, n.month - 1, n.day), c.setHours(n.hour, n.minute, n.second, n.millisecond), c.getTime();
9268
9303
  }
@@ -9324,7 +9359,7 @@ function tv(o, t) {
9324
9359
  let r = Vn(o) - o.offset;
9325
9360
  return Cr(nn(r, t), o.calendar);
9326
9361
  }
9327
- const _i = 36e5;
9362
+ const wi = 36e5;
9328
9363
  function Ba(o, t) {
9329
9364
  let r = o.copy(), n = "hour" in r ? iv(r, t) : 0;
9330
9365
  u1(r, t.years || 0), r.calendar.balanceYearMonth && r.calendar.balanceYearMonth(r, o), r.month += t.months || 0, h1(r), pf(r), r.day += (t.weeks || 0) * 7, r.day += t.days || 0, r.day += n, rv(r), r.calendar.balanceDate && r.calendar.balanceDate(r), r.year < 1 && (r.year = 1, r.month = 1, r.day = 1);
@@ -9477,16 +9512,16 @@ function av(o, t, r, n) {
9477
9512
  }
9478
9513
  let a = Bn(o), l = Cr(fa(a, {
9479
9514
  hour: i
9480
- }), new ei()), c = [
9515
+ }), new Qo()), c = [
9481
9516
  tn(l, o.timeZone, "earlier"),
9482
9517
  tn(l, o.timeZone, "later")
9483
9518
  ].filter((g) => nn(g, o.timeZone).day === l.day)[0], u = Cr(fa(a, {
9484
9519
  hour: s
9485
- }), new ei()), d = [
9520
+ }), new Qo()), d = [
9486
9521
  tn(u, o.timeZone, "earlier"),
9487
9522
  tn(u, o.timeZone, "later")
9488
- ].filter((g) => nn(g, o.timeZone).day === u.day).pop(), f = Vn(o) - o.offset, h = Math.floor(f / _i), p = f % _i;
9489
- return f = kn(h, r, Math.floor(c / _i), Math.floor(d / _i), n?.round) * _i + p, Cr(nn(f, o.timeZone), o.calendar);
9523
+ ].filter((g) => nn(g, o.timeZone).day === u.day).pop(), f = Vn(o) - o.offset, h = Math.floor(f / wi), p = f % wi;
9524
+ return f = kn(h, r, Math.floor(c / wi), Math.floor(d / wi), n?.round) * wi + p, Cr(nn(f, o.timeZone), o.calendar);
9490
9525
  }
9491
9526
  case "minute":
9492
9527
  case "second":
@@ -9546,7 +9581,7 @@ function hv(o) {
9546
9581
  return `${String(o.hour).padStart(2, "0")}:${String(o.minute).padStart(2, "0")}:${String(o.second).padStart(2, "0")}${o.millisecond ? String(o.millisecond / 1e3).slice(1) : ""}`;
9547
9582
  }
9548
9583
  function Cf(o) {
9549
- let t = Cr(o, new ei()), r;
9584
+ let t = Cr(o, new Qo()), r;
9550
9585
  return t.era === "BC" ? r = t.year === 1 ? "0000" : "-" + String(Math.abs(1 - t.year)).padStart(6, "00") : r = String(t.year).padStart(4, "0"), `${r}-${String(t.month).padStart(2, "0")}-${String(t.day).padStart(2, "0")}`;
9551
9586
  }
9552
9587
  function cc(o) {
@@ -9562,7 +9597,7 @@ function fv(o) {
9562
9597
  return `${cc(o)}${wf(o.offset)}[${o.timeZone}]`;
9563
9598
  }
9564
9599
  function dc(o) {
9565
- let t = typeof o[0] == "object" ? o.shift() : new ei(), r;
9600
+ let t = typeof o[0] == "object" ? o.shift() : new Qo(), r;
9566
9601
  if (typeof o[0] == "string") r = o.shift();
9567
9602
  else {
9568
9603
  let a = t.getEras();
@@ -11954,7 +11989,7 @@ function Ln(o, t) {
11954
11989
  function Sn(o) {
11955
11990
  return o.split("-")[0];
11956
11991
  }
11957
- function ui(o) {
11992
+ function di(o) {
11958
11993
  return o.split("-")[1];
11959
11994
  }
11960
11995
  function Mc(o) {
@@ -11972,7 +12007,7 @@ function Pc(o) {
11972
12007
  }
11973
12008
  function Km(o, t, r) {
11974
12009
  r === void 0 && (r = !1);
11975
- const n = ui(o), i = Pc(o), s = Dc(i);
12010
+ const n = di(o), i = Pc(o), s = Dc(i);
11976
12011
  let a = i === "x" ? n === (r ? "end" : "start") ? "right" : "left" : n === "start" ? "bottom" : "top";
11977
12012
  return t.reference[s] > t.floating[s] && (a = ma(a)), [a, ma(a)];
11978
12013
  }
@@ -11997,7 +12032,7 @@ function Xm(o, t, r) {
11997
12032
  }
11998
12033
  }
11999
12034
  function Jm(o, t, r, n) {
12000
- const i = ui(o);
12035
+ const i = di(o);
12001
12036
  let s = Xm(Sn(o), r === "start", n);
12002
12037
  return i && (s = s.map((a) => a + "-" + i), t && (s = s.concat(s.map(p1)))), s;
12003
12038
  }
@@ -12078,7 +12113,7 @@ function w2(o, t, r) {
12078
12113
  y: n.y
12079
12114
  };
12080
12115
  }
12081
- switch (ui(t)) {
12116
+ switch (di(t)) {
12082
12117
  case "start":
12083
12118
  p[a] -= h * (r && u ? -1 : 1);
12084
12119
  break;
@@ -12221,7 +12256,7 @@ const tb = 50, rb = async (o, t, r) => {
12221
12256
  }, p = Pc(i), g = Dc(p), v = await a.getDimensions(u), m = p === "y", b = m ? "top" : "left", k = m ? "bottom" : "right", y = m ? "clientHeight" : "clientWidth", x = s.reference[g] + s.reference[p] - h[p] - s.floating[g], w = h[p] - s.reference[p], C = await (a.getOffsetParent == null ? void 0 : a.getOffsetParent(u));
12222
12257
  let E = C ? C[y] : 0;
12223
12258
  (!E || !await (a.isElement == null ? void 0 : a.isElement(C))) && (E = l.floating[y] || s.floating[g]);
12224
- const P = x / 2 - w / 2, O = E / 2 - v[g] / 2 - 1, _ = Un(f[b], O), M = Un(f[k], O), L = _, T = E - v[g] - M, S = E / 2 - v[g] / 2 + P, R = f1(L, S, T), $ = !c.arrow && ui(i) != null && S !== R && s.reference[g] / 2 - (S < L ? _ : M) - v[g] / 2 < 0, F = $ ? S < L ? S - L : S - T : 0;
12259
+ const P = x / 2 - w / 2, O = E / 2 - v[g] / 2 - 1, _ = Un(f[b], O), M = Un(f[k], O), L = _, T = E - v[g] - M, S = E / 2 - v[g] / 2 + P, R = f1(L, S, T), $ = !c.arrow && di(i) != null && S !== R && s.reference[g] / 2 - (S < L ? _ : M) - v[g] / 2 < 0, F = $ ? S < L ? S - L : S - T : 0;
12225
12260
  return {
12226
12261
  [p]: h[p] + F,
12227
12262
  data: {
@@ -12375,7 +12410,7 @@ async function sb(o, t) {
12375
12410
  placement: r,
12376
12411
  platform: n,
12377
12412
  elements: i
12378
- } = o, s = await (n.isRTL == null ? void 0 : n.isRTL(i.floating)), a = Sn(r), l = ui(r), c = on(r) === "y", u = If.has(a) ? -1 : 1, d = s && c ? -1 : 1, f = Ln(t, o);
12413
+ } = o, s = await (n.isRTL == null ? void 0 : n.isRTL(i.floating)), a = Sn(r), l = di(r), c = on(r) === "y", u = If.has(a) ? -1 : 1, d = s && c ? -1 : 1, f = Ln(t, o);
12379
12414
  let {
12380
12415
  mainAxis: h,
12381
12416
  crossAxis: p,
@@ -12533,7 +12568,7 @@ const ab = function(o) {
12533
12568
  apply: c = () => {
12534
12569
  },
12535
12570
  ...u
12536
- } = Ln(o, t), d = await a.detectOverflow(t, u), f = Sn(i), h = ui(i), p = on(i) === "y", {
12571
+ } = Ln(o, t), d = await a.detectOverflow(t, u), f = Sn(i), h = di(i), p = on(i) === "y", {
12537
12572
  width: g,
12538
12573
  height: v
12539
12574
  } = s.floating;
@@ -12562,7 +12597,7 @@ const ab = function(o) {
12562
12597
  function Ka() {
12563
12598
  return typeof window < "u";
12564
12599
  }
12565
- function hi(o) {
12600
+ function ui(o) {
12566
12601
  return $f(o) ? (o.nodeName || "").toLowerCase() : "#document";
12567
12602
  }
12568
12603
  function _r(o) {
@@ -12595,7 +12630,7 @@ function fs(o) {
12595
12630
  return /auto|scroll|overlay|hidden|clip/.test(t + n + r) && i !== "inline" && i !== "contents";
12596
12631
  }
12597
12632
  function ub(o) {
12598
- return /^(table|td|th)$/.test(hi(o));
12633
+ return /^(table|td|th)$/.test(ui(o));
12599
12634
  }
12600
12635
  function Ya(o) {
12601
12636
  try {
@@ -12617,7 +12652,7 @@ function Oc(o) {
12617
12652
  }
12618
12653
  function pb(o) {
12619
12654
  let t = Kn(o);
12620
- for (; Mn(t) && !ti(t); ) {
12655
+ for (; Mn(t) && !ei(t); ) {
12621
12656
  if (Oc(t))
12622
12657
  return t;
12623
12658
  if (Ya(t))
@@ -12629,8 +12664,8 @@ function pb(o) {
12629
12664
  function Ec() {
12630
12665
  return Al == null && (Al = typeof CSS < "u" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none")), Al;
12631
12666
  }
12632
- function ti(o) {
12633
- return /^(html|body|#document)$/.test(hi(o));
12667
+ function ei(o) {
12668
+ return /^(html|body|#document)$/.test(ui(o));
12634
12669
  }
12635
12670
  function Ur(o) {
12636
12671
  return _r(o).getComputedStyle(o);
@@ -12645,7 +12680,7 @@ function Ga(o) {
12645
12680
  };
12646
12681
  }
12647
12682
  function Kn(o) {
12648
- if (hi(o) === "html")
12683
+ if (ui(o) === "html")
12649
12684
  return o;
12650
12685
  const t = (
12651
12686
  // Step into the shadow DOM of the parent of a slotted node.
@@ -12658,7 +12693,7 @@ function Kn(o) {
12658
12693
  }
12659
12694
  function jf(o) {
12660
12695
  const t = Kn(o);
12661
- return ti(t) ? o.ownerDocument ? o.ownerDocument.body : o.body : Mn(t) && fs(t) ? t : jf(t);
12696
+ return ei(t) ? o.ownerDocument ? o.ownerDocument.body : o.body : Mn(t) && fs(t) ? t : jf(t);
12662
12697
  }
12663
12698
  function Bi(o, t, r) {
12664
12699
  var n;
@@ -12686,7 +12721,7 @@ function Rf(o) {
12686
12721
  function Tc(o) {
12687
12722
  return Zr(o) ? o : o.contextElement;
12688
12723
  }
12689
- function Yo(o) {
12724
+ function Ko(o) {
12690
12725
  const t = Tc(o);
12691
12726
  if (!Mn(t))
12692
12727
  return sn(1);
@@ -12716,14 +12751,14 @@ function Lo(o, t, r, n) {
12716
12751
  t === void 0 && (t = !1), r === void 0 && (r = !1);
12717
12752
  const i = o.getBoundingClientRect(), s = Tc(o);
12718
12753
  let a = sn(1);
12719
- t && (n ? Zr(n) && (a = Yo(n)) : a = Yo(o));
12754
+ t && (n ? Zr(n) && (a = Ko(n)) : a = Ko(o));
12720
12755
  const l = vb(s, r, n) ? zf(s) : sn(0);
12721
12756
  let c = (i.left + l.x) / a.x, u = (i.top + l.y) / a.y, d = i.width / a.x, f = i.height / a.y;
12722
12757
  if (s) {
12723
12758
  const h = _r(s), p = n && Zr(n) ? _r(n) : n;
12724
12759
  let g = h, v = g1(g);
12725
12760
  for (; v && n && p !== g; ) {
12726
- const m = Yo(v), b = v.getBoundingClientRect(), k = Ur(v), y = b.left + (v.clientLeft + parseFloat(k.paddingLeft)) * m.x, x = b.top + (v.clientTop + parseFloat(k.paddingTop)) * m.y;
12761
+ const m = Ko(v), b = v.getBoundingClientRect(), k = Ur(v), y = b.left + (v.clientLeft + parseFloat(k.paddingLeft)) * m.x, x = b.top + (v.clientTop + parseFloat(k.paddingTop)) * m.y;
12727
12762
  c *= m.x, u *= m.y, d *= m.x, f *= m.y, c += y, u += x, g = _r(v), v = g1(g);
12728
12763
  }
12729
12764
  }
@@ -12760,9 +12795,9 @@ function mb(o) {
12760
12795
  scrollTop: 0
12761
12796
  }, u = sn(1);
12762
12797
  const d = sn(0), f = Mn(n);
12763
- if ((f || !f && !s) && ((hi(n) !== "body" || fs(a)) && (c = Ga(n)), f)) {
12798
+ if ((f || !f && !s) && ((ui(n) !== "body" || fs(a)) && (c = Ga(n)), f)) {
12764
12799
  const p = Lo(n);
12765
- u = Yo(n), d.x = p.x + n.clientLeft, d.y = p.y + n.clientTop;
12800
+ u = Ko(n), d.x = p.x + n.clientLeft, d.y = p.y + n.clientTop;
12766
12801
  }
12767
12802
  const h = a && !f && !s ? Ff(a, c) : sn(0);
12768
12803
  return {
@@ -12808,7 +12843,7 @@ function yb(o, t) {
12808
12843
  };
12809
12844
  }
12810
12845
  function xb(o, t) {
12811
- const r = Lo(o, !0, t === "fixed"), n = r.top + o.clientTop, i = r.left + o.clientLeft, s = Mn(o) ? Yo(o) : sn(1), a = o.clientWidth * s.x, l = o.clientHeight * s.y, c = i * s.x, u = n * s.y;
12846
+ const r = Lo(o, !0, t === "fixed"), n = r.top + o.clientTop, i = r.left + o.clientLeft, s = Mn(o) ? Ko(o) : sn(1), a = o.clientWidth * s.x, l = o.clientHeight * s.y, c = i * s.x, u = n * s.y;
12812
12847
  return {
12813
12848
  width: a,
12814
12849
  height: l,
@@ -12837,16 +12872,16 @@ function D2(o, t, r) {
12837
12872
  }
12838
12873
  function Nf(o, t) {
12839
12874
  const r = Kn(o);
12840
- return r === t || !Zr(r) || ti(r) ? !1 : Ur(r).position === "fixed" || Nf(r, t);
12875
+ return r === t || !Zr(r) || ei(r) ? !1 : Ur(r).position === "fixed" || Nf(r, t);
12841
12876
  }
12842
12877
  function Cb(o, t) {
12843
12878
  const r = t.get(o);
12844
12879
  if (r)
12845
12880
  return r;
12846
- let n = Bi(o, [], !1).filter((l) => Zr(l) && hi(l) !== "body"), i = null;
12881
+ let n = Bi(o, [], !1).filter((l) => Zr(l) && ui(l) !== "body"), i = null;
12847
12882
  const s = Ur(o).position === "fixed";
12848
12883
  let a = s ? Kn(o) : o;
12849
- for (; Zr(a) && !ti(a); ) {
12884
+ for (; Zr(a) && !ei(a); ) {
12850
12885
  const l = Ur(a), c = Oc(a);
12851
12886
  !c && l.position === "fixed" && (i = null), (s ? !c && !i : !c && l.position === "static" && !!i && (i.position === "absolute" || i.position === "fixed") || fs(a) && !c && Nf(o, a)) ? n = n.filter((d) => d !== a) : i = l, a = Kn(a);
12852
12887
  }
@@ -12893,7 +12928,7 @@ function Lb(o, t, r) {
12893
12928
  c.x = qa(i);
12894
12929
  }
12895
12930
  if (n || !n && !s)
12896
- if ((hi(t) !== "body" || fs(i)) && (l = Ga(t)), n) {
12931
+ if ((ui(t) !== "body" || fs(i)) && (l = Ga(t)), n) {
12897
12932
  const p = Lo(t, !0, s, t);
12898
12933
  c.x = p.x + t.clientLeft, c.y = p.y + t.clientTop;
12899
12934
  } else i && u();
@@ -12923,7 +12958,7 @@ function Hf(o, t) {
12923
12958
  return r;
12924
12959
  if (!Mn(o)) {
12925
12960
  let i = Kn(o);
12926
- for (; i && !ti(i); ) {
12961
+ for (; i && !ei(i); ) {
12927
12962
  if (Zr(i) && !Il(i))
12928
12963
  return i;
12929
12964
  i = Kn(i);
@@ -12933,7 +12968,7 @@ function Hf(o, t) {
12933
12968
  let n = P2(o, t);
12934
12969
  for (; n && ub(n) && Il(n); )
12935
12970
  n = P2(n, t);
12936
- return n && ti(n) && Il(n) && !Oc(n) ? r : n || pb(o) || r;
12971
+ return n && ei(n) && Il(n) && !Oc(n) ? r : n || pb(o) || r;
12937
12972
  }
12938
12973
  const Sb = async function(o) {
12939
12974
  const t = this.getOffsetParent || Hf, r = this.getDimensions, n = await r(o.floating);
@@ -12958,7 +12993,7 @@ const Db = {
12958
12993
  getElementRects: Sb,
12959
12994
  getClientRects: bb,
12960
12995
  getDimensions: _b,
12961
- getScale: Yo,
12996
+ getScale: Ko,
12962
12997
  isElement: Zr,
12963
12998
  isRTL: Mb
12964
12999
  };
@@ -13227,7 +13262,7 @@ class ya {
13227
13262
  // ids
13228
13263
  arrowId = hr(Po());
13229
13264
  #e = e.derived(() => {
13230
- if (typeof this.opts.style == "string") return Ai(this.opts.style);
13265
+ if (typeof this.opts.style == "string") return Ti(this.opts.style);
13231
13266
  if (!this.opts.style) return {};
13232
13267
  });
13233
13268
  #t = void 0;
@@ -13462,7 +13497,7 @@ function Vb(o) {
13462
13497
  function Bb(o) {
13463
13498
  return $c(o)[1];
13464
13499
  }
13465
- function fi(o, t) {
13500
+ function hi(o, t) {
13466
13501
  e.push(t, !0);
13467
13502
  let r = e.prop(t, "tooltip", 3, !1);
13468
13503
  ka.create(r());
@@ -14142,7 +14177,7 @@ function Qb(o, t) {
14142
14177
  onOpenChangeComplete: ne(() => s())
14143
14178
  },
14144
14179
  a
14145
- ), fi(o, {
14180
+ ), hi(o, {
14146
14181
  children: (l, c) => {
14147
14182
  var u = e.comment(), d = e.first_child(u);
14148
14183
  e.snippet(d, () => t.children ?? e.noop), e.append(l, u);
@@ -14158,7 +14193,7 @@ function ek(o, t) {
14158
14193
  r(s), n()?.(s);
14159
14194
  }),
14160
14195
  onOpenChangeComplete: ne(() => i())
14161
- }), fi(o, {
14196
+ }), hi(o, {
14162
14197
  children: (s, a) => {
14163
14198
  var l = e.comment(), c = e.first_child(l);
14164
14199
  e.snippet(c, () => t.children ?? e.noop), e.append(s, l);
@@ -14696,7 +14731,7 @@ function vk(o, t) {
14696
14731
  const jc = os({
14697
14732
  component: "date-field",
14698
14733
  parts: ["input", "label", "segment"]
14699
- }), pi = {
14734
+ }), fi = {
14700
14735
  day: {
14701
14736
  min: 1,
14702
14737
  max: (o) => {
@@ -15166,7 +15201,7 @@ class Fc {
15166
15201
  e.set(this.#r, t);
15167
15202
  }
15168
15203
  }
15169
- class gi {
15204
+ class pi {
15170
15205
  opts;
15171
15206
  root;
15172
15207
  announcer;
@@ -15297,11 +15332,11 @@ class gi {
15297
15332
  e.set(this.#l, t);
15298
15333
  }
15299
15334
  }
15300
- class mk extends gi {
15335
+ class mk extends pi {
15301
15336
  #e = [];
15302
15337
  #t = 0;
15303
15338
  constructor(t, r) {
15304
- super(t, r, "year", pi.year);
15339
+ super(t, r, "year", fi.year);
15305
15340
  }
15306
15341
  onkeydown(t) {
15307
15342
  if (!(t.ctrlKey || t.metaKey || this.root.disabled.current) && (t.key !== ss && t.preventDefault(), !!fc(t.key))) {
@@ -15362,19 +15397,19 @@ class mk extends gi {
15362
15397
  this.root.states.year.hasLeftFocus = !0, this.#e = [], this.#r(), this.root.updateSegment("year", (r) => r && r.length !== 4 ? I2(Number.parseInt(r)) : r);
15363
15398
  }
15364
15399
  }
15365
- class bk extends gi {
15400
+ class bk extends pi {
15366
15401
  constructor(t, r) {
15367
- super(t, r, "day", pi.day);
15402
+ super(t, r, "day", fi.day);
15368
15403
  }
15369
15404
  }
15370
- class kk extends gi {
15405
+ class kk extends pi {
15371
15406
  constructor(t, r) {
15372
- super(t, r, "month", pi.month);
15407
+ super(t, r, "month", fi.month);
15373
15408
  }
15374
15409
  }
15375
- class yk extends gi {
15410
+ class yk extends pi {
15376
15411
  constructor(t, r) {
15377
- super(t, r, "hour", pi.hour);
15412
+ super(t, r, "hour", fi.hour);
15378
15413
  }
15379
15414
  // Override to handle special hour logic
15380
15415
  onkeydown(t) {
@@ -15388,14 +15423,14 @@ class yk extends gi {
15388
15423
  super.onkeydown(t), this.root.updateSegment = this.root.updateSegment.bind(this.root);
15389
15424
  }
15390
15425
  }
15391
- class xk extends gi {
15426
+ class xk extends pi {
15392
15427
  constructor(t, r) {
15393
- super(t, r, "minute", pi.minute);
15428
+ super(t, r, "minute", fi.minute);
15394
15429
  }
15395
15430
  }
15396
- class Ck extends gi {
15431
+ class Ck extends pi {
15397
15432
  constructor(t, r) {
15398
- super(t, r, "second", pi.second);
15433
+ super(t, r, "second", fi.second);
15399
15434
  }
15400
15435
  }
15401
15436
  class Nc {
@@ -16067,7 +16102,7 @@ class Yc {
16067
16102
  id: this.opts.id.current,
16068
16103
  "aria-haspopup": "dialog",
16069
16104
  "aria-expanded": gr(this.root.opts.open.current),
16070
- "data-state": ci(this.root.opts.open.current),
16105
+ "data-state": li(this.root.opts.open.current),
16071
16106
  "aria-controls": this.#s(),
16072
16107
  [v1.trigger]: "",
16073
16108
  disabled: this.opts.disabled.current,
@@ -16149,7 +16184,7 @@ class Gc {
16149
16184
  #t = e.derived(() => ({
16150
16185
  id: this.opts.id.current,
16151
16186
  tabindex: -1,
16152
- "data-state": ci(this.root.opts.open.current),
16187
+ "data-state": li(this.root.opts.open.current),
16153
16188
  ...B1(this.root.contentPresence.transitionStatus),
16154
16189
  [v1.content]: "",
16155
16190
  style: { pointerEvents: "auto", contain: "layout style" },
@@ -16247,7 +16282,7 @@ function Tk(o, t) {
16247
16282
  })
16248
16283
  });
16249
16284
  var F = e.comment(), z = e.first_child(F);
16250
- e.component(z, () => fi, (A, D) => {
16285
+ e.component(z, () => hi, (A, D) => {
16251
16286
  D(A, {
16252
16287
  children: (I, N) => {
16253
16288
  var H = e.comment(), B = e.first_child(H);
@@ -16598,7 +16633,7 @@ function Vk(o, t) {
16598
16633
  onOpenChangeComplete: ne(() => s())
16599
16634
  },
16600
16635
  c
16601
- ), fi(o, {
16636
+ ), hi(o, {
16602
16637
  children: (u, d) => {
16603
16638
  var f = e.comment(), h = e.first_child(f);
16604
16639
  e.snippet(h, () => t.children ?? e.noop), e.append(u, f);
@@ -16825,7 +16860,7 @@ function Gk(o, t) {
16825
16860
  r(s), n()(s);
16826
16861
  }),
16827
16862
  onOpenChangeComplete: ne(() => i())
16828
- }), fi(o, {
16863
+ }), hi(o, {
16829
16864
  children: (s, a) => {
16830
16865
  var l = e.comment(), c = e.first_child(l);
16831
16866
  e.snippet(c, () => t.children ?? e.noop), e.append(s, l);
@@ -17364,7 +17399,7 @@ function Xk(o, t) {
17364
17399
  onOpenChangeComplete: ne(() => s()),
17365
17400
  tether: ne(() => t.tether)
17366
17401
  });
17367
- fi(o, {
17402
+ hi(o, {
17368
17403
  tooltip: !0,
17369
17404
  children: (l, c) => {
17370
17405
  var u = e.comment(), d = e.first_child(u);
@@ -17642,7 +17677,7 @@ function Lr(o, t) {
17642
17677
  });
17643
17678
  }
17644
17679
  var k = e.sibling(b, 2);
17645
- e.component(k, () => di, (y, x) => {
17680
+ e.component(k, () => ci, (y, x) => {
17646
17681
  x(y, {
17647
17682
  get to() {
17648
17683
  return u;
@@ -18740,22 +18775,22 @@ function Fn(o) {
18740
18775
  for (var t = 1; t < arguments.length; t++) {
18741
18776
  var r = arguments[t] != null ? arguments[t] : {};
18742
18777
  t % 2 ? W2(Object(r), !0).forEach(function(n) {
18743
- ri(o, n, r[n]);
18778
+ ti(o, n, r[n]);
18744
18779
  }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o, Object.getOwnPropertyDescriptors(r)) : W2(Object(r)).forEach(function(n) {
18745
18780
  Object.defineProperty(o, n, Object.getOwnPropertyDescriptor(r, n));
18746
18781
  });
18747
18782
  }
18748
18783
  return o;
18749
18784
  }
18750
- function Bo(o) {
18785
+ function Vo(o) {
18751
18786
  "@babel/helpers - typeof";
18752
- return Bo = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(t) {
18787
+ return Vo = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(t) {
18753
18788
  return typeof t;
18754
18789
  } : function(t) {
18755
18790
  return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
18756
- }, Bo(o);
18791
+ }, Vo(o);
18757
18792
  }
18758
- function ri(o, t, r) {
18793
+ function ti(o, t, r) {
18759
18794
  return t in o ? Object.defineProperty(o, t, {
18760
18795
  value: r,
18761
18796
  enumerable: !0,
@@ -18883,7 +18918,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
18883
18918
  };
18884
18919
  }
18885
18920
  var Gy = "finalize", qy = "consider";
18886
- function ni(o, t, r) {
18921
+ function ri(o, t, r) {
18887
18922
  o.dispatchEvent(new CustomEvent(Gy, {
18888
18923
  detail: {
18889
18924
  items: t,
@@ -19069,9 +19104,9 @@ function sx(o) {
19069
19104
  height: Math.max(0, t.bottom - t.top)
19070
19105
  };
19071
19106
  }
19072
- var Go;
19107
+ var Yo;
19073
19108
  function od() {
19074
- Go = /* @__PURE__ */ new Map();
19109
+ Yo = /* @__PURE__ */ new Map();
19075
19110
  }
19076
19111
  od();
19077
19112
  function ax(o) {
@@ -19079,7 +19114,7 @@ function ax(o) {
19079
19114
  return r.getAttribute(rl);
19080
19115
  });
19081
19116
  if (t >= 0)
19082
- return Go.has(o) || Go.set(o, /* @__PURE__ */ new Map()), Go.get(o).set(t, x1(o.children[t])), t;
19117
+ return Yo.has(o) || Yo.set(o, /* @__PURE__ */ new Map()), Yo.get(o).set(t, x1(o.children[t])), t;
19083
19118
  }
19084
19119
  function lx(o, t) {
19085
19120
  var r = x1(t);
@@ -19094,7 +19129,7 @@ function lx(o, t) {
19094
19129
  for (var i = ax(t), s = 0; s < n.length; s++) {
19095
19130
  var a = x1(n[s]);
19096
19131
  if (zi(o, a)) {
19097
- var l = Go.has(t) && Go.get(t).get(s);
19132
+ var l = Yo.has(t) && Yo.get(t).get(s);
19098
19133
  return l && !zi(o, l) ? {
19099
19134
  index: i,
19100
19135
  isProximityBased: !1
@@ -19119,7 +19154,7 @@ function lx(o, t) {
19119
19154
  isProximityBased: !0
19120
19155
  };
19121
19156
  }
19122
- function Li(o) {
19157
+ function _i(o) {
19123
19158
  return JSON.stringify(o, null, 2);
19124
19159
  }
19125
19160
  function _a(o) {
@@ -19187,7 +19222,7 @@ function hx(o, t) {
19187
19222
  function fx() {
19188
19223
  clearTimeout(C1), od();
19189
19224
  }
19190
- var Si = 30;
19225
+ var Li = 30;
19191
19226
  function px() {
19192
19227
  var o;
19193
19228
  function t() {
@@ -19204,7 +19239,7 @@ function px() {
19204
19239
  }));
19205
19240
  }
19206
19241
  function n(s) {
19207
- return Si - s;
19242
+ return Li - s;
19208
19243
  }
19209
19244
  function i(s, a) {
19210
19245
  if (!a)
@@ -19213,16 +19248,16 @@ function px() {
19213
19248
  if (l === null)
19214
19249
  return c && t(), !1;
19215
19250
  var u = !1, d = !1;
19216
- return a.scrollHeight > a.clientHeight && (l.bottom < Si ? (u = !0, o.directionObj = {
19251
+ return a.scrollHeight > a.clientHeight && (l.bottom < Li ? (u = !0, o.directionObj = {
19217
19252
  x: 0,
19218
19253
  y: 1
19219
- }, o.stepPx = n(l.bottom)) : l.top < Si && (u = !0, o.directionObj = {
19254
+ }, o.stepPx = n(l.bottom)) : l.top < Li && (u = !0, o.directionObj = {
19220
19255
  x: 0,
19221
19256
  y: -1
19222
- }, o.stepPx = n(l.top)), !c && u) || a.scrollWidth > a.clientWidth && (l.right < Si ? (d = !0, o.directionObj = {
19257
+ }, o.stepPx = n(l.top)), !c && u) || a.scrollWidth > a.clientWidth && (l.right < Li ? (d = !0, o.directionObj = {
19223
19258
  x: 1,
19224
19259
  y: 0
19225
- }, o.stepPx = n(l.right)) : l.left < Si && (d = !0, o.directionObj = {
19260
+ }, o.stepPx = n(l.right)) : l.left < Li && (d = !0, o.directionObj = {
19226
19261
  x: -1,
19227
19262
  y: 0
19228
19263
  }, o.stepPx = n(l.left)), !c && d) ? (r(a), !0) : (t(), !1);
@@ -19327,7 +19362,7 @@ function kx(o) {
19327
19362
  var Ui = Object.freeze({
19328
19363
  // This flag exists as a workaround for issue 454 (basically a browser bug) - seems like these rect values take time to update when in grid layout. Setting it to true can cause strange behaviour in the REPL for non-grid zones, see issue 470
19329
19364
  USE_COMPUTED_STYLE_INSTEAD_OF_BOUNDING_RECT: "USE_COMPUTED_STYLE_INSTEAD_OF_BOUNDING_RECT"
19330
- }), yx = ri({}, Ui.USE_COMPUTED_STYLE_INSTEAD_OF_BOUNDING_RECT, !1);
19365
+ }), yx = ti({}, Ui.USE_COMPUTED_STYLE_INSTEAD_OF_BOUNDING_RECT, !1);
19331
19366
  function ip(o) {
19332
19367
  if (!Ui[o]) throw new Error("Can't get non existing feature flag ".concat(o, "! Supported flags: ").concat(Object.keys(Ui)));
19333
19368
  return yx[o];
@@ -19425,7 +19460,7 @@ function Dx(o) {
19425
19460
  }
19426
19461
  var Px = "--any--", Ox = 100, Ex = 20, $s = 3, Tx = 80, Z2 = {
19427
19462
  outline: "rgba(255, 255, 102, 0.7) solid 2px"
19428
- }, U2 = "data-is-dnd-original-dragged-item", cr, Vt, ur, nl, _t, ol, Hn, Jt, Xr, Yt, In = !1, id = !1, sd, bs = !1, Ys = [], Fi, Jr, Ii = !1, ad = !1, Wr = /* @__PURE__ */ new Map(), At = /* @__PURE__ */ new Map(), Rl = /* @__PURE__ */ new WeakMap();
19463
+ }, U2 = "data-is-dnd-original-dragged-item", cr, Vt, ur, nl, _t, ol, Hn, Jt, Xr, Yt, In = !1, id = !1, sd, bs = !1, Ys = [], Fi, Jr, Ai = !1, ad = !1, Wr = /* @__PURE__ */ new Map(), At = /* @__PURE__ */ new Map(), Rl = /* @__PURE__ */ new WeakMap();
19429
19464
  function Ax(o, t) {
19430
19465
  Wr.has(t) || Wr.set(t, /* @__PURE__ */ new Set()), Wr.get(t).has(o) || (Wr.get(t).add(o), Qf());
19431
19466
  }
@@ -19444,7 +19479,7 @@ function Ix() {
19444
19479
  } finally {
19445
19480
  t.f();
19446
19481
  }
19447
- window.addEventListener(rd, oi);
19482
+ window.addEventListener(rd, ni);
19448
19483
  var i = Math.max.apply(Math, $r(Array.from(o.keys()).map(function(l) {
19449
19484
  return At.get(l).dropAnimationDurationMs;
19450
19485
  }))), s = i === 0 ? Ex : Math.max(i, Ox);
@@ -19473,7 +19508,7 @@ function $x() {
19473
19508
  } finally {
19474
19509
  t.f();
19475
19510
  }
19476
- window.removeEventListener(rd, oi), Fi && (Fi.destroy(), Fi = void 0), fx();
19511
+ window.removeEventListener(rd, ni), Fi && (Fi.destroy(), Fi = void 0), fx();
19477
19512
  }
19478
19513
  function il(o) {
19479
19514
  return o.findIndex(function(t) {
@@ -19482,7 +19517,7 @@ function il(o) {
19482
19517
  }
19483
19518
  function jx(o) {
19484
19519
  var t;
19485
- return Fn(Fn({}, o), {}, (t = {}, ri(t, tl, !0), ri(t, Bt, Jf), t));
19520
+ return Fn(Fn({}, o), {}, (t = {}, ti(t, tl, !0), ti(t, Bt, Jf), t));
19486
19521
  }
19487
19522
  function lp(o) {
19488
19523
  var t = At.get(o.currentTarget), r = t.items, n = t.dropFromOthersDisabled;
@@ -19554,8 +19589,8 @@ function Sa(o) {
19554
19589
  y: t.clientY
19555
19590
  }, Vt.style.transform = "translate3d(".concat(Yt.x - Xr.x, "px, ").concat(Yt.y - Xr.y, "px, 0)");
19556
19591
  }
19557
- function oi() {
19558
- id = !0, window.removeEventListener("mousemove", Sa), window.removeEventListener("touchmove", Sa), window.removeEventListener("mouseup", oi), window.removeEventListener("touchend", oi), $x(), wx(Vt), Jt || (Jt = _t);
19592
+ function ni() {
19593
+ id = !0, window.removeEventListener("mousemove", Sa), window.removeEventListener("touchmove", Sa), window.removeEventListener("mouseup", ni), window.removeEventListener("touchend", ni), $x(), wx(Vt), Jt || (Jt = _t);
19559
19594
  var o = At.get(Jt), t = o.items, r = o.type;
19560
19595
  La(Wr.get(r), function(s) {
19561
19596
  return At.get(s).dropTargetStyle;
@@ -19567,11 +19602,11 @@ function oi() {
19567
19602
  return s[tl] ? ur : s;
19568
19603
  });
19569
19604
  function i() {
19570
- sd(), ni(Jt, t, {
19605
+ sd(), ri(Jt, t, {
19571
19606
  trigger: bs ? tr.DROPPED_OUTSIDE_OF_ANY : tr.DROPPED_INTO_ZONE,
19572
19607
  id: ur[Bt],
19573
19608
  source: rr.POINTER
19574
- }), Jt !== _t && ni(_t, At.get(_t).items, {
19609
+ }), Jt !== _t && ri(_t, At.get(_t).items, {
19575
19610
  trigger: tr.DROPPED_INTO_ANOTHER,
19576
19611
  id: ur[Bt],
19577
19612
  source: rr.POINTER
@@ -19599,7 +19634,7 @@ function zx(o, t) {
19599
19634
  });
19600
19635
  }
19601
19636
  function Fx() {
19602
- Vt && Vt.remove && Vt.remove(), cr && cr.remove && cr.remove(), Vt = void 0, cr = void 0, ur = void 0, nl = void 0, _t = void 0, ol = void 0, Hn = void 0, Jt = void 0, Xr = void 0, Yt = void 0, In = !1, id = !1, sd = void 0, bs = !1, Jr && clearTimeout(Jr), Jr = void 0, Ii = !1, ad = !1, Ys.length && (Ys.forEach(function(o) {
19637
+ Vt && Vt.remove && Vt.remove(), cr && cr.remove && cr.remove(), Vt = void 0, cr = void 0, ur = void 0, nl = void 0, _t = void 0, ol = void 0, Hn = void 0, Jt = void 0, Xr = void 0, Yt = void 0, In = !1, id = !1, sd = void 0, bs = !1, Jr && clearTimeout(Jr), Jr = void 0, Ai = !1, ad = !1, Ys.length && (Ys.forEach(function(o) {
19603
19638
  var t = o.dz, r = o.destroy;
19604
19639
  r(), t.remove();
19605
19640
  }), Ys = []);
@@ -19634,7 +19669,7 @@ function Nx(o, t) {
19634
19669
  });
19635
19670
  }
19636
19671
  function a() {
19637
- window.removeEventListener("mousemove", c), window.removeEventListener("touchmove", c), window.removeEventListener("mouseup", l), window.removeEventListener("touchend", l), Jr && (clearTimeout(Jr), Jr = void 0, Ii = !1);
19672
+ window.removeEventListener("mousemove", c), window.removeEventListener("touchmove", c), window.removeEventListener("mouseup", l), window.removeEventListener("touchend", l), Jr && (clearTimeout(Jr), Jr = void 0, Ai = !1);
19638
19673
  }
19639
19674
  function l(h) {
19640
19675
  if (a(), cr = void 0, Xr = void 0, Yt = void 0, h.type === "touchend") {
@@ -19647,7 +19682,7 @@ function Nx(o, t) {
19647
19682
  }
19648
19683
  function c(h) {
19649
19684
  var p = !!h.touches, g = p ? h.touches[0] : h;
19650
- if (p && n.delayTouchStartMs > 0 && !Ii) {
19685
+ if (p && n.delayTouchStartMs > 0 && !Ai) {
19651
19686
  Yt = {
19652
19687
  x: g.clientX,
19653
19688
  y: g.clientY
@@ -19667,8 +19702,8 @@ function Nx(o, t) {
19667
19702
  Xr = {
19668
19703
  x: v.clientX,
19669
19704
  y: v.clientY
19670
- }, Yt = Fn({}, Xr), cr = h.currentTarget, g && (Ii = !1, Jr = window.setTimeout(function() {
19671
- cr && (Ii = !0, a(), d());
19705
+ }, Yt = Fn({}, Xr), cr = h.currentTarget, g && (Ai = !1, Jr = window.setTimeout(function() {
19706
+ cr && (Ai = !0, a(), d());
19672
19707
  }, n.delayTouchStartMs)), s();
19673
19708
  }
19674
19709
  }
@@ -19696,9 +19731,9 @@ function Nx(o, t) {
19696
19731
  }), window.addEventListener("touchmove", Sa, {
19697
19732
  passive: !1,
19698
19733
  capture: !1
19699
- }), window.addEventListener("mouseup", oi, {
19734
+ }), window.addEventListener("mouseup", ni, {
19700
19735
  passive: !1
19701
- }), window.addEventListener("touchend", oi, {
19736
+ }), window.addEventListener("touchend", ni, {
19702
19737
  passive: !1
19703
19738
  });
19704
19739
  }
@@ -19752,7 +19787,7 @@ function Nx(o, t) {
19752
19787
  var js, w1 = {
19753
19788
  DND_ZONE_ACTIVE: "dnd-zone-active",
19754
19789
  DND_ZONE_DRAG_DISABLED: "dnd-zone-drag-disabled"
19755
- }, up = (js = {}, ri(js, w1.DND_ZONE_ACTIVE, "Tab to one the items and press space-bar or enter to start dragging it"), ri(js, w1.DND_ZONE_DRAG_DISABLED, "This is a disabled drag and drop list"), js), Hx = "dnd-action-aria-alert", $t;
19790
+ }, up = (js = {}, ti(js, w1.DND_ZONE_ACTIVE, "Tab to one the items and press space-bar or enter to start dragging it"), ti(js, w1.DND_ZONE_DRAG_DISABLED, "This is a disabled drag and drop list"), js), Hx = "dnd-action-aria-alert", $t;
19756
19791
  function _1() {
19757
19792
  $t || ($t = document.createElement("div"), (function() {
19758
19793
  $t.id = Hx, $t.style.position = "fixed", $t.style.bottom = "0", $t.style.left = "0", $t.style.zIndex = "-5", $t.style.opacity = "0", $t.style.height = "0", $t.style.width = "0", $t.setAttribute("role", "alert");
@@ -19774,7 +19809,7 @@ function Bx(o, t) {
19774
19809
  var r = document.createElement("div");
19775
19810
  return r.id = o, r.innerHTML = "<p>".concat(t, "</p>"), r.style.display = "none", r.style.position = "fixed", r.style.zIndex = "-5", r;
19776
19811
  }
19777
- function qo(o) {
19812
+ function Go(o) {
19778
19813
  if (!nd) {
19779
19814
  $t || _1(), $t.innerHTML = "";
19780
19815
  var t = document.createTextNode(o);
@@ -19804,13 +19839,13 @@ function Kx(o) {
19804
19839
  var r = Xt.get(Qt), n = r.items, i = n.find(function(f) {
19805
19840
  return f[Bt] === rn;
19806
19841
  }), s = n.indexOf(i), a = n.splice(s, 1)[0], l = Xt.get(t), c = l.items, u = l.autoAriaDisabled;
19807
- t.getBoundingClientRect().top < Qt.getBoundingClientRect().top || t.getBoundingClientRect().left < Qt.getBoundingClientRect().left ? (c.push(a), u || qo("Moved item ".concat(Nn, " to the end of the list ").concat(bo))) : (c.unshift(a), u || qo("Moved item ".concat(Nn, " to the beginning of the list ").concat(bo)));
19842
+ t.getBoundingClientRect().top < Qt.getBoundingClientRect().top || t.getBoundingClientRect().left < Qt.getBoundingClientRect().left ? (c.push(a), u || Go("Moved item ".concat(Nn, " to the end of the list ").concat(bo))) : (c.unshift(a), u || Go("Moved item ".concat(Nn, " to the beginning of the list ").concat(bo)));
19808
19843
  var d = Qt;
19809
- ni(d, n, {
19844
+ ri(d, n, {
19810
19845
  trigger: tr.DROPPED_INTO_ANOTHER,
19811
19846
  id: rn,
19812
19847
  source: rr.KEYBOARD
19813
- }), ni(t, c, {
19848
+ }), ri(t, c, {
19814
19849
  trigger: tr.DROPPED_INTO_ZONE,
19815
19850
  id: rn,
19816
19851
  source: rr.KEYBOARD
@@ -19826,7 +19861,7 @@ function pp() {
19826
19861
  }
19827
19862
  function Ki() {
19828
19863
  var o = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !0;
19829
- Xt.get(Qt).autoAriaDisabled || qo("Stopped dragging item ".concat(Nn)), Ma.has(document.activeElement) && document.activeElement.blur(), o && Gn(Qt, Xt.get(Qt).items, {
19864
+ Xt.get(Qt).autoAriaDisabled || Go("Stopped dragging item ".concat(Nn)), Ma.has(document.activeElement) && document.activeElement.blur(), o && Gn(Qt, Xt.get(Qt).items, {
19830
19865
  trigger: tr.DRAG_STOPPED,
19831
19866
  id: rn,
19832
19867
  source: rr.KEYBOARD
@@ -19865,7 +19900,7 @@ function Yx(o, t) {
19865
19900
  if (!Ar) return;
19866
19901
  d.preventDefault(), d.stopPropagation();
19867
19902
  var f = Xt.get(o), h = f.items, p = Array.from(o.children), g = p.indexOf(d.currentTarget);
19868
- g < p.length - 1 && (r.autoAriaDisabled || qo("Moved item ".concat(Nn, " to position ").concat(g + 2, " in the list ").concat(bo)), n(h, g, g + 1), ni(o, h, {
19903
+ g < p.length - 1 && (r.autoAriaDisabled || Go("Moved item ".concat(Nn, " to position ").concat(g + 2, " in the list ").concat(bo)), n(h, g, g + 1), ri(o, h, {
19869
19904
  trigger: tr.DROPPED_INTO_ZONE,
19870
19905
  id: rn,
19871
19906
  source: rr.KEYBOARD
@@ -19877,7 +19912,7 @@ function Yx(o, t) {
19877
19912
  if (!Ar) return;
19878
19913
  d.preventDefault(), d.stopPropagation();
19879
19914
  var v = Xt.get(o), m = v.items, b = Array.from(o.children), k = b.indexOf(d.currentTarget);
19880
- k > 0 && (r.autoAriaDisabled || qo("Moved item ".concat(Nn, " to position ").concat(k, " in the list ").concat(bo)), n(m, k, k - 1), ni(o, m, {
19915
+ k > 0 && (r.autoAriaDisabled || Go("Moved item ".concat(Nn, " to position ").concat(k, " in the list ").concat(bo)), n(m, k, k - 1), ri(o, m, {
19881
19916
  trigger: tr.DROPPED_INTO_ZONE,
19882
19917
  id: rn,
19883
19918
  source: rr.KEYBOARD
@@ -19897,7 +19932,7 @@ function Yx(o, t) {
19897
19932
  return Xt.get(p).dropTargetClasses;
19898
19933
  }), !r.autoAriaDisabled) {
19899
19934
  var h = "Started dragging item ".concat(Nn, ". Use the arrow keys to move it within its list ").concat(bo);
19900
- f.length > 1 && (h += ", or tab to another list in order to move the item into it"), qo(h);
19935
+ f.length > 1 && (h += ", or tab to another list in order to move the item into it"), Go(h);
19901
19936
  }
19902
19937
  Gn(o, Xt.get(o).items, {
19903
19938
  trigger: tr.DRAG_STARTED,
@@ -19971,17 +20006,17 @@ function J2(o) {
19971
20006
  return !{}.hasOwnProperty.call(d, Bt);
19972
20007
  });
19973
20008
  if (l)
19974
- throw new Error("missing '".concat(Bt, "' property for item ").concat(Li(l)));
20009
+ throw new Error("missing '".concat(Bt, "' property for item ").concat(_i(l)));
19975
20010
  if (i && !Array.isArray(i))
19976
- throw new Error("dropTargetClasses should be an array but instead it is a ".concat(Bo(i), ", ").concat(Li(i)));
20011
+ throw new Error("dropTargetClasses should be an array but instead it is a ".concat(Vo(i), ", ").concat(_i(i)));
19977
20012
  if (r && !Q2(r))
19978
- throw new Error("zoneTabIndex should be a number but instead it is a ".concat(Bo(r), ", ").concat(Li(r)));
20013
+ throw new Error("zoneTabIndex should be a number but instead it is a ".concat(Vo(r), ", ").concat(_i(r)));
19979
20014
  if (n && !Q2(n))
19980
- throw new Error("zoneItemTabIndex should be a number but instead it is a ".concat(Bo(n), ", ").concat(Li(n)));
20015
+ throw new Error("zoneItemTabIndex should be a number but instead it is a ".concat(Vo(n), ", ").concat(_i(n)));
19981
20016
  if (s !== void 0 && s !== !1) {
19982
20017
  var c = s === !0, u = typeof s == "number" && isFinite(s) && s >= 0;
19983
20018
  if (!c && !u)
19984
- throw new Error("delayTouchStart should be a boolean (true/false) or a non-negative number but instead it is a ".concat(Bo(s), ", ").concat(Li(s)));
20019
+ throw new Error("delayTouchStart should be a boolean (true/false) or a non-negative number but instead it is a ".concat(Vo(s), ", ").concat(_i(s)));
19985
20020
  }
19986
20021
  }
19987
20022
  function Q2(o) {
@@ -20008,16 +20043,16 @@ function gp(o) {
20008
20043
  }
20009
20044
  };
20010
20045
  }
20011
- var Nr = gp(!0), Xo = gp(!1);
20046
+ var Nr = gp(!0), qo = gp(!1);
20012
20047
  function eu() {
20013
20048
  return {
20014
- dragDisabled: Xo.get() || Nr.get(),
20049
+ dragDisabled: qo.get() || Nr.get(),
20015
20050
  zoneItemTabIndex: -1
20016
20051
  };
20017
20052
  }
20018
20053
  function qn(o, t) {
20019
20054
  var r;
20020
- Xo.set((r = t?.dragDisabled) !== null && r !== void 0 ? r : !1);
20055
+ qo.set((r = t?.dragDisabled) !== null && r !== void 0 ? r : !1);
20021
20056
  var n = t, i = qx(o, Fn(Fn({}, n), eu()));
20022
20057
  function s() {
20023
20058
  i.update(Fn(Fn({}, n), eu()));
@@ -20034,7 +20069,7 @@ function qn(o, t) {
20034
20069
  return o.addEventListener("consider", a), o.addEventListener("finalize", l), {
20035
20070
  update: function(u) {
20036
20071
  var d, f;
20037
- n = u, Xo.set((d = (f = n) === null || f === void 0 ? void 0 : f.dragDisabled) !== null && d !== void 0 ? d : !1), s();
20072
+ n = u, qo.set((d = (f = n) === null || f === void 0 ? void 0 : f.dragDisabled) !== null && d !== void 0 ? d : !1), s();
20038
20073
  },
20039
20074
  destroy: function() {
20040
20075
  o.removeEventListener("consider", a), o.removeEventListener("finalize", l), Nr.unsubscribe(s);
@@ -20053,19 +20088,19 @@ function ld(o) {
20053
20088
  Nr.set(!0), window.removeEventListener("mouseup", n), window.removeEventListener("touchend", n);
20054
20089
  }
20055
20090
  var i = function() {
20056
- var a = Xo.get(), l = Nr.get();
20091
+ var a = qo.get(), l = Nr.get();
20057
20092
  a ? (o.tabIndex = -1, o.style.cursor = "") : (o.tabIndex = l ? 0 : -1, o.style.cursor = l ? "grab" : "grabbing");
20058
20093
  };
20059
- return Xo.subscribe(i), Nr.subscribe(i), o.addEventListener("mousedown", t), o.addEventListener("touchstart", t), o.addEventListener("keydown", r), {
20094
+ return qo.subscribe(i), Nr.subscribe(i), o.addEventListener("mousedown", t), o.addEventListener("touchstart", t), o.addEventListener("keydown", r), {
20060
20095
  update: function() {
20061
20096
  },
20062
20097
  destroy: function() {
20063
- o.removeEventListener("mousedown", t), o.removeEventListener("touchstart", t), o.removeEventListener("keydown", r), Xo.unsubscribe(i), Nr.unsubscribe(i);
20098
+ o.removeEventListener("mousedown", t), o.removeEventListener("touchstart", t), o.removeEventListener("keydown", r), qo.unsubscribe(i), Nr.unsubscribe(i);
20064
20099
  }
20065
20100
  };
20066
20101
  }
20067
20102
  var Jx = e.from_html('<button type="button"><!></button>'), Qx = e.from_html("<div><!></div>"), eC = e.from_html("<div><!> <!> <!></div>");
20068
- function ii(o, t) {
20103
+ function oi(o, t) {
20069
20104
  e.push(t, !0);
20070
20105
  let r = e.prop(t, "reorderable", 3, !1), n = e.prop(t, "removeLabel", 3, "Remove"), i = e.prop(t, "reorderLabel", 3, "Reorder");
20071
20106
  const s = "flex-center size-26 shrink-0 rounded-full superellipse transition-colors hover:bg-black/5 hover:text-(--fg) dark:hover:bg-white/10";
@@ -20125,7 +20160,7 @@ const tu = (o) => {
20125
20160
  e.append(o, t);
20126
20161
  };
20127
20162
  var rC = e.from_svg('<svg viewBox="0 0 70 96" fill="none" class="size-full" xmlns="http://www.w3.org/2000/svg"><path d="M0 0H44L70 26V96H0V0Z" fill="url(#paint0_linear_1423_131)"></path><path d="M43.793 0.5L69.5 26.207V95.5H0.5V0.5H43.793Z" stroke="white" stroke-opacity="0.3"></path><path d="M44 26H70L44 0V26Z" fill="url(#paint1_linear_1423_131)"></path><defs><linearGradient id="paint0_linear_1423_131" x1="48" y1="12.8616" x2="3.64182e-06" y2="96" gradientUnits="userSpaceOnUse"><stop stop-color="white" stop-opacity="0.4"></stop><stop offset="1" stop-color="white"></stop></linearGradient><linearGradient id="paint1_linear_1423_131" x1="57" y1="13" x2="44" y2="26" gradientUnits="userSpaceOnUse"><stop stop-color="white" stop-opacity="0.6"></stop><stop offset="1" stop-color="white"></stop></linearGradient></defs></svg>'), nC = e.from_html('<div class="absolute inset-0 flex items-end p-4 text-[12px]/none font-semibold tracking-wide text-neutral-500 dark:text-neutral-300"><div class="h-20 px-4 rounded-[4px] bg-sky-500 shadow-xs text-white flex-center"> </div></div>'), oC = e.from_html('<div class="absolute inset-6 flex items-center justify-center"><div class="relative aspect-[70/96] h-[92%]"><!> <!></div></div>'), iC = e.from_html('<div class="relative aspect-[70/96] h-22"><!></div>');
20128
- function si(o, t) {
20163
+ function ii(o, t) {
20129
20164
  e.push(t, !0);
20130
20165
  let r = e.prop(t, "ext", 3, ""), n = e.prop(t, "layout", 3, "grid");
20131
20166
  const i = e.derived(() => r().replace(/^\./, "").toUpperCase());
@@ -20484,7 +20519,7 @@ function MC(o, t) {
20484
20519
  var Re = cC(), We = e.child(Re);
20485
20520
  {
20486
20521
  let Ut = e.derived(() => q(e.get(Le).src));
20487
- si(We, {
20522
+ ii(We, {
20488
20523
  get ext() {
20489
20524
  return e.get(Ut);
20490
20525
  },
@@ -20601,7 +20636,7 @@ function MC(o, t) {
20601
20636
  });
20602
20637
  };
20603
20638
  let Re = e.derived(() => e.get(D).length > 1);
20604
- ii(Dt, {
20639
+ oi(Dt, {
20605
20640
  onremove: () => S(e.get(xe)),
20606
20641
  get reorderable() {
20607
20642
  return e.get(Re);
@@ -20671,7 +20706,7 @@ function MC(o, t) {
20671
20706
  var be = bC(), Pe = e.child(be);
20672
20707
  {
20673
20708
  let Ae = e.derived(() => q(e.get(h).src));
20674
- si(Pe, {
20709
+ ii(Pe, {
20675
20710
  get ext() {
20676
20711
  return e.get(Ae);
20677
20712
  },
@@ -20898,7 +20933,7 @@ function IC(o, t) {
20898
20933
  const r = (A, D = e.noop) => {
20899
20934
  {
20900
20935
  let I = e.derived(() => e.get(c) && e.get(C).length > 1);
20901
- ii(A, {
20936
+ oi(A, {
20902
20937
  onremove: () => M(D()),
20903
20938
  get reorderable() {
20904
20939
  return e.get(I);
@@ -21175,7 +21210,7 @@ function RC(o, t) {
21175
21210
  var u = e.sibling(l, 2), d = e.child(u, !0);
21176
21211
  e.reset(u);
21177
21212
  var f = e.sibling(u, 2);
21178
- ii(f, {
21213
+ oi(f, {
21179
21214
  get onremove() {
21180
21215
  return t.onremove;
21181
21216
  },
@@ -21303,7 +21338,7 @@ function VC(o, t) {
21303
21338
  children: (oe, j) => {
21304
21339
  var W = e.comment(), K = e.first_child(W);
21305
21340
  e.each(K, 17, () => k(`${t.field.path}.${e.get(H)}`, e.get(N).data ?? {}), (G) => G.key, (G, J) => {
21306
- ai(G, {
21341
+ si(G, {
21307
21342
  get field() {
21308
21343
  return e.get(J);
21309
21344
  }
@@ -21348,7 +21383,7 @@ function VC(o, t) {
21348
21383
  }, M = (L) => {
21349
21384
  var T = WC();
21350
21385
  e.each(T, 21, () => k(t.field.path, e.get(y)), (S) => S.key, (S, R) => {
21351
- ai(S, {
21386
+ si(S, {
21352
21387
  get field() {
21353
21388
  return e.get(R);
21354
21389
  }
@@ -21362,7 +21397,7 @@ function VC(o, t) {
21362
21397
  e.append(o, E), e.pop();
21363
21398
  }
21364
21399
  var BC = e.from_html('<div class="superellipse surface flex max-w-200 items-center gap-8 rounded-xl px-8 py-4 text-[13px] text-(--fg) backdrop-blur-xl"> </div>'), ZC = e.from_html("<!> <!>", 1);
21365
- function vi(o, t) {
21400
+ function gi(o, t) {
21366
21401
  e.push(t, !0);
21367
21402
  let r = e.prop(t, "side", 3, "top"), n = e.prop(t, "align", 3, "center"), i = e.prop(t, "offset", 3, 4), s = e.prop(t, "delay", 3, 100), a = e.prop(t, "disabled", 3, !1);
21368
21403
  const l = Gt("app"), c = e.derived(() => t.portalTarget ?? l?.floatingRoot ?? null);
@@ -21392,7 +21427,7 @@ function vi(o, t) {
21392
21427
  });
21393
21428
  }
21394
21429
  var E = e.sibling(C, 2);
21395
- e.component(E, () => di, (P, O) => {
21430
+ e.component(E, () => ci, (P, O) => {
21396
21431
  O(P, {
21397
21432
  get to() {
21398
21433
  return e.get(c);
@@ -21517,7 +21552,7 @@ function mp(o, t) {
21517
21552
  }
21518
21553
  };
21519
21554
  let p = e.derived(() => e.get(r).external ? "Opens in a new tab" : "Opens in the same tab");
21520
- vi(f, {
21555
+ gi(f, {
21521
21556
  get content() {
21522
21557
  return e.get(p);
21523
21558
  },
@@ -21530,7 +21565,7 @@ function mp(o, t) {
21530
21565
  var KC = e.from_html('<!> <button type="button" aria-label="Lock slug" title="Editing the URL slug — click to lock" class="flex-center absolute bottom-0 right-0 size-28 cursor-pointer rounded-[8px] text-neutral-400 transition-colors hover:bg-black/5 hover:text-neutral-700 active:bg-black/10 dark:text-white/40 dark:hover:bg-white/10 dark:hover:text-white"><!></button>', 1), YC = e.from_html('<!> <button type="button" aria-label="Edit slug" title="Locked — click to edit the URL slug" class="flex-center absolute bottom-0 right-0 size-28 cursor-pointer rounded-[8px] text-neutral-400 transition-colors hover:bg-black/5 hover:text-neutral-700 active:bg-black/10 dark:text-white/40 dark:hover:bg-white/10 dark:hover:text-white"><!></button>', 1), GC = e.from_html('<div class="relative"><!></div>');
21531
21566
  function qC(o, t) {
21532
21567
  e.push(t, !0);
21533
- const { content: r } = Se(), i = Gt(Qn) ?? r, s = e.derived(() => t.field.def.from || "title"), a = e.derived(() => Zo(String(i.formData?.[e.get(s)] ?? ""))), l = e.derived(() => t.field.value || e.get(a));
21568
+ const { content: r } = Se(), i = Gt(Qn) ?? r, s = e.derived(() => t.field.def.from || "title"), a = e.derived(() => Bo(String(i.formData?.[e.get(s)] ?? ""))), l = e.derived(() => t.field.value || e.get(a));
21534
21569
  let c = e.state(!1), u = e.state(void 0);
21535
21570
  function d() {
21536
21571
  e.set(c, !0), !t.field.value && e.get(a) && t.onchange(e.get(a)), Vr().then(() => e.get(u)?.focus());
@@ -21539,10 +21574,10 @@ function qC(o, t) {
21539
21574
  t.onchange(k.target.value);
21540
21575
  }
21541
21576
  function h(k) {
21542
- t.onchange(Zo(k.target.value)), e.set(c, !1);
21577
+ t.onchange(Bo(k.target.value)), e.set(c, !1);
21543
21578
  }
21544
21579
  function p() {
21545
- t.onchange(Zo(String(t.field.value ?? ""))), e.set(c, !1);
21580
+ t.onchange(Bo(String(t.field.value ?? ""))), e.set(c, !1);
21546
21581
  }
21547
21582
  var g = GC(), v = e.child(g);
21548
21583
  {
@@ -21696,7 +21731,7 @@ function bp(o, t) {
21696
21731
  });
21697
21732
  }), e.reset(m);
21698
21733
  var y = e.sibling(m, 2);
21699
- e.component(y, () => di, (x, w) => {
21734
+ e.component(y, () => ci, (x, w) => {
21700
21735
  w(x, {
21701
21736
  get to() {
21702
21737
  return n;
@@ -22089,7 +22124,7 @@ function kp(o, t) {
22089
22124
  });
22090
22125
  }
22091
22126
  var k = e.sibling(b, 2);
22092
- e.component(k, () => di, (y, x) => {
22127
+ e.component(k, () => ci, (y, x) => {
22093
22128
  x(y, {
22094
22129
  get to() {
22095
22130
  return i;
@@ -22269,7 +22304,7 @@ function yp(o, t) {
22269
22304
  }
22270
22305
  };
22271
22306
  let H = e.derived(() => e.get(T).value?.external ? "Opens in a new tab" : "Opens in the same tab");
22272
- vi(D, {
22307
+ gi(D, {
22273
22308
  get content() {
22274
22309
  return e.get(H);
22275
22310
  },
@@ -22281,7 +22316,7 @@ function yp(o, t) {
22281
22316
  var I = e.sibling(z, 2);
22282
22317
  {
22283
22318
  let N = e.derived(() => e.get(d).length > 1);
22284
- ii(I, {
22319
+ oi(I, {
22285
22320
  onremove: () => v(e.get(S)),
22286
22321
  get reorderable() {
22287
22322
  return e.get(N);
@@ -22357,7 +22392,7 @@ function yp(o, t) {
22357
22392
  var z = e.sibling($, 2);
22358
22393
  {
22359
22394
  let A = e.derived(() => e.get(d).length > 1);
22360
- ii(z, {
22395
+ oi(z, {
22361
22396
  onremove: () => v(e.get(S)),
22362
22397
  get reorderable() {
22363
22398
  return e.get(A);
@@ -23072,7 +23107,7 @@ function Lp(o, t) {
23072
23107
  }
23073
23108
  e.delegate(["change"]);
23074
23109
  var Mw = e.from_html("<!> <!>", 1), iu = e.from_html("<!> <!> <!>", 1), Dw = e.from_html('<span class="text-[11px]/none text-neutral-300 tabular-nums"> </span>'), Pw = e.from_html('<button><span class="size-8 rounded-full bg-sky-400"></span></button>'), Ow = e.from_html('<p class="text-sm text-red-500"> </p>'), Ew = e.from_html("<div><!></div>"), Tw = e.from_html("<p>Required</p>"), Aw = e.from_html("<p> </p>"), Iw = e.from_html("<div><!> <!></div>");
23075
- function ai(o, t) {
23110
+ function si(o, t) {
23076
23111
  e.push(t, !0);
23077
23112
  const r = (j) => {
23078
23113
  var W = iu(), K = e.first_child(W);
@@ -23728,7 +23763,7 @@ function Zw(o, t) {
23728
23763
  var _ = Vw(), M = e.first_child(_);
23729
23764
  {
23730
23765
  var L = ($) => {
23731
- vi($, { content: "Visit page", trigger: (z, A) => {
23766
+ gi($, { content: "Visit page", trigger: (z, A) => {
23732
23767
  let D = () => A?.().props;
23733
23768
  ke(z, e.spread_props(D, {
23734
23769
  tone: "idle",
@@ -23877,7 +23912,7 @@ function Zw(o, t) {
23877
23912
  }
23878
23913
  });
23879
23914
  }, N = (H) => {
23880
- ai(H, {
23915
+ si(H, {
23881
23916
  get field() {
23882
23917
  return e.get(z).item;
23883
23918
  }
@@ -24349,7 +24384,7 @@ function Mp(o, t) {
24349
24384
  });
24350
24385
  });
24351
24386
  var p = e.sibling(h, 2);
24352
- e.component(p, () => di, (g, v) => {
24387
+ e.component(p, () => ci, (g, v) => {
24353
24388
  v(g, {
24354
24389
  get to() {
24355
24390
  return i;
@@ -24771,7 +24806,7 @@ function Dp(o, t) {
24771
24806
  }
24772
24807
  }), e.reset(O), e.append(P, O);
24773
24808
  }, E = (P) => {
24774
- ai(P, {
24809
+ si(P, {
24775
24810
  get field() {
24776
24811
  return e.get(y).item;
24777
24812
  }
@@ -24809,7 +24844,7 @@ function m_(o, t) {
24809
24844
  var x = au(), w = e.first_child(x);
24810
24845
  {
24811
24846
  var C = (_) => {
24812
- vi(_, { content: "Visit page", trigger: (L, T) => {
24847
+ gi(_, { content: "Visit page", trigger: (L, T) => {
24813
24848
  let S = () => T?.().props;
24814
24849
  ke(L, e.spread_props(S, {
24815
24850
  tone: "idle",
@@ -25024,7 +25059,7 @@ function x_(o, t) {
25024
25059
  }
25025
25060
  }), e.reset($), e.append(R, $);
25026
25061
  }, S = (R) => {
25027
- ai(R, {
25062
+ si(R, {
25028
25063
  get field() {
25029
25064
  return e.get(_).item;
25030
25065
  }
@@ -25365,7 +25400,7 @@ const Ni = `<svg xmlns="http://www.w3.org/2000/svg" width="92" height="76" viewB
25365
25400
  </defs>
25366
25401
  </svg>
25367
25402
  `, O1 = "application/x-okno-files";
25368
- function Mi(o) {
25403
+ function Si(o) {
25369
25404
  return !!o.dataTransfer && Array.from(o.dataTransfer.types).includes(O1);
25370
25405
  }
25371
25406
  function Ea(o) {
@@ -25561,16 +25596,16 @@ function Op(o, t) {
25561
25596
  return G?.kind === "folder" ? G.id : G?.kind === "bin" ? ":bin" : null;
25562
25597
  }
25563
25598
  function z(j) {
25564
- !L(j) && !Mi(j) || (j.preventDefault(), _++);
25599
+ !L(j) && !Si(j) || (j.preventDefault(), _++);
25565
25600
  }
25566
25601
  function A(j) {
25567
- !L(j) && !Mi(j) || (j.preventDefault(), j.dataTransfer && (j.dataTransfer.dropEffect = Mi(j) ? "move" : "copy"), e.set(M, F(j.target), !0));
25602
+ !L(j) && !Si(j) || (j.preventDefault(), j.dataTransfer && (j.dataTransfer.dropEffect = Si(j) ? "move" : "copy"), e.set(M, F(j.target), !0));
25568
25603
  }
25569
25604
  function D(j) {
25570
- !L(j) && !Mi(j) || (_--, _ <= 0 && (_ = 0, e.set(M, null)));
25605
+ !L(j) && !Si(j) || (_--, _ <= 0 && (_ = 0, e.set(M, null)));
25571
25606
  }
25572
25607
  async function I(j) {
25573
- const W = Mi(j), K = L(j);
25608
+ const W = Si(j), K = L(j);
25574
25609
  if (!W && !K) return;
25575
25610
  j.preventDefault();
25576
25611
  const G = e.get(M);
@@ -25920,7 +25955,7 @@ function Op(o, t) {
25920
25955
  }
25921
25956
  e.append(Ee, Ae);
25922
25957
  }, Ie = (Ee) => {
25923
- si(Ee, {
25958
+ ii(Ee, {
25924
25959
  get ext() {
25925
25960
  return e.get(Q).ext;
25926
25961
  },
@@ -26158,7 +26193,7 @@ function cL(o, t) {
26158
26193
  });
26159
26194
  }
26160
26195
  var g = e.sibling(p, 2);
26161
- e.component(g, () => di, (v, m) => {
26196
+ e.component(g, () => ci, (v, m) => {
26162
26197
  m(v, {
26163
26198
  get to() {
26164
26199
  return s;
@@ -27495,13 +27530,13 @@ const lo = (o, t = e.noop, r = e.noop) => {
27495
27530
  });
27496
27531
  var s = e.sibling(i, 2);
27497
27532
  e.snippet(s, r), e.reset(n), e.append(o, n);
27498
- }, Di = (o, t = e.noop, r = e.noop) => {
27533
+ }, Mi = (o, t = e.noop, r = e.noop) => {
27499
27534
  var n = JL(), i = e.child(n), s = e.child(i, !0);
27500
27535
  e.reset(i);
27501
27536
  var a = e.sibling(i, 2), l = e.child(a);
27502
27537
  e.snippet(l, r), e.reset(a), e.reset(n), e.template_effect(() => e.set_text(s, t())), e.append(o, n);
27503
27538
  };
27504
- var XL = e.from_html('<section class="flex flex-col gap-16 py-20 first:pt-4"><!> <!></section>'), JL = e.from_html('<div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400"> </span> <div class="flex flex-wrap items-center gap-10"><!></div></div>'), Pi = e.from_html("<!> <!>", 1), Ns = e.from_html("<!> <!> <!> <!> <!>", 1), QL = e.from_html('<span class="text-center text-[11px]/none font-medium text-neutral-400"> </span>'), eS = e.from_html('<div class="flex justify-center"><!></div>'), tS = e.from_html('<span class="text-[11px]/none text-neutral-400"> </span> <!>', 1), rS = e.from_html('<div class="flex flex-col gap-20"><div class="grid grid-cols-[4.5rem_repeat(2,minmax(0,1fr))] items-center gap-x-10 gap-y-12"><span></span> <!> <!></div> <!> <!> <!></div>'), Oi = e.from_html("<!> <!> <!>", 1), nS = e.from_html('<div class="flex flex-wrap items-center gap-10 pl-8"><!> <!> <!> <!> <!></div>'), oS = e.from_html('<div class="self-center"><!></div>'), iS = e.from_html('<div class="pl-8"><!></div>'), sS = e.from_html('<div class="relative"><!> <button type="button"><!></button></div>'), aS = e.from_html('<div class="flex flex-col gap-10 pl-8"><!> <!> <!> <!> <!> <!></div>'), lS = e.from_html('<div class="flex flex-col gap-16"><!> <div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400">Toggle field</span> <div class="max-w-340"><!></div></div> <div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400">Multi-select field — label + checkbox dropdown</span> <div class="max-w-340"><!></div></div> <div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400">Select field — single-select dropdown (sky tint when set)</span> <div class="max-w-340"><!></div></div> <div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400">Toggle field — grouped in a List</span> <div class="max-w-340"><!></div></div> <div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400">Checkbox</span> <div class="flex items-center gap-10"><!> <!> <!></div> <!></div> <div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400">Radio</span> <div class="flex items-center gap-10"><!> <!> <!></div> <!></div></div>'), cS = e.from_html('<div class="flex flex-col gap-16"><!> <div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400">Skeleton</span> <div class="flex flex-col gap-6"><!> <!></div></div></div>'), dS = e.from_html(
27539
+ var XL = e.from_html('<section class="flex flex-col gap-16 py-20 first:pt-4"><!> <!></section>'), JL = e.from_html('<div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400"> </span> <div class="flex flex-wrap items-center gap-10"><!></div></div>'), Di = e.from_html("<!> <!>", 1), Ns = e.from_html("<!> <!> <!> <!> <!>", 1), QL = e.from_html('<span class="text-center text-[11px]/none font-medium text-neutral-400"> </span>'), eS = e.from_html('<div class="flex justify-center"><!></div>'), tS = e.from_html('<span class="text-[11px]/none text-neutral-400"> </span> <!>', 1), rS = e.from_html('<div class="flex flex-col gap-20"><div class="grid grid-cols-[4.5rem_repeat(2,minmax(0,1fr))] items-center gap-x-10 gap-y-12"><span></span> <!> <!></div> <!> <!> <!></div>'), Pi = e.from_html("<!> <!> <!>", 1), nS = e.from_html('<div class="flex flex-wrap items-center gap-10 pl-8"><!> <!> <!> <!> <!></div>'), oS = e.from_html('<div class="self-center"><!></div>'), iS = e.from_html('<div class="pl-8"><!></div>'), sS = e.from_html('<div class="relative"><!> <button type="button"><!></button></div>'), aS = e.from_html('<div class="flex flex-col gap-10 pl-8"><!> <!> <!> <!> <!> <!></div>'), lS = e.from_html('<div class="flex flex-col gap-16"><!> <div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400">Toggle field</span> <div class="max-w-340"><!></div></div> <div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400">Multi-select field — label + checkbox dropdown</span> <div class="max-w-340"><!></div></div> <div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400">Select field — single-select dropdown (sky tint when set)</span> <div class="max-w-340"><!></div></div> <div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400">Toggle field — grouped in a List</span> <div class="max-w-340"><!></div></div> <div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400">Checkbox</span> <div class="flex items-center gap-10"><!> <!> <!></div> <!></div> <div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400">Radio</span> <div class="flex items-center gap-10"><!> <!> <!></div> <!></div></div>'), cS = e.from_html('<div class="flex flex-col gap-16"><!> <div class="flex flex-col gap-7 pl-8"><span class="text-[11px]/none text-neutral-400">Skeleton</span> <div class="flex flex-col gap-6"><!> <!></div></div></div>'), dS = e.from_html(
27505
27540
  `<h1>The type scale</h1> <p>Body copy sets the rhythm — fifteen pixels, a calm line height, muted ink. Every other
27506
27541
  level is measured against it.</p> <section class="flex flex-col gap-6"><h2>Section heading</h2> <p>Breaks a topic into parts. Weighted, full-strength ink, no caps. Inline <code>code</code> and <a href="#prose">links</a> sit here too.</p></section> <section class="flex flex-col gap-6"><h3>Sub-heading</h3> <p>The quietest level, for the occasional aside.</p></section> <!>`,
27507
27542
  1
@@ -27520,7 +27555,7 @@ function fS(o) {
27520
27555
  var z = rS();
27521
27556
  {
27522
27557
  const V = (U) => {
27523
- var X = Pi(), oe = e.first_child(X);
27558
+ var X = Di(), oe = e.first_child(X);
27524
27559
  ke(oe, {
27525
27560
  children: (W, K) => {
27526
27561
  e.next();
@@ -27656,11 +27691,11 @@ function fS(o) {
27656
27691
  }), e.template_effect(() => e.set_text(W, e.get(X))), e.append(U, oe);
27657
27692
  }), e.reset(A);
27658
27693
  var N = e.sibling(A, 2);
27659
- Di(N, () => "Sizes", () => V);
27694
+ Mi(N, () => "Sizes", () => V);
27660
27695
  var H = e.sibling(N, 2);
27661
- Di(H, () => "Icons & icon-only", () => Z);
27696
+ Mi(H, () => "Icons & icon-only", () => Z);
27662
27697
  var B = e.sibling(H, 2);
27663
- Di(B, () => "States", () => q), e.reset(z);
27698
+ Mi(B, () => "States", () => q), e.reset(z);
27664
27699
  }
27665
27700
  e.append(F, z);
27666
27701
  }, M = (F) => {
@@ -27719,7 +27754,7 @@ function fS(o) {
27719
27754
  label: "English",
27720
27755
  icon: "languages",
27721
27756
  children: (B, V) => {
27722
- var Z = Pi(), q = e.first_child(Z);
27757
+ var Z = Di(), q = e.first_child(Z);
27723
27758
  me(q, {
27724
27759
  selected: !0,
27725
27760
  children: (X, oe) => {
@@ -27748,7 +27783,7 @@ function fS(o) {
27748
27783
  icon: "git-branch",
27749
27784
  tone: "idle",
27750
27785
  children: (B, V) => {
27751
- var Z = Pi(), q = e.first_child(Z);
27786
+ var Z = Di(), q = e.first_child(Z);
27752
27787
  me(q, {
27753
27788
  selected: !0,
27754
27789
  children: (X, oe) => {
@@ -27777,7 +27812,7 @@ function fS(o) {
27777
27812
  icon: "images",
27778
27813
  tone: "idle",
27779
27814
  children: (B, V) => {
27780
- var Z = Oi(), q = e.first_child(Z);
27815
+ var Z = Pi(), q = e.first_child(Z);
27781
27816
  me(q, {
27782
27817
  indicator: "checkbox",
27783
27818
  selected: !0,
@@ -27980,7 +28015,7 @@ function fS(o) {
27980
28015
  var z = lS();
27981
28016
  {
27982
28017
  const he = (pe) => {
27983
- var Q = Oi(), ee = e.first_child(Q);
28018
+ var Q = Pi(), ee = e.first_child(Q);
27984
28019
  Us(ee, {
27985
28020
  get checked() {
27986
28021
  return e.get(i);
@@ -28002,11 +28037,11 @@ function fS(o) {
28002
28037
  Us(fe, { checked: !0, disabled: !0 }), e.append(pe, Q);
28003
28038
  };
28004
28039
  var A = e.child(z);
28005
- Di(A, () => "Switch", () => he);
28040
+ Mi(A, () => "Switch", () => he);
28006
28041
  var D = e.sibling(A, 2), I = e.sibling(e.child(D), 2), N = e.child(I);
28007
28042
  Xe(N, {
28008
28043
  children: (pe, Q) => {
28009
- var ee = Oi(), le = e.first_child(ee);
28044
+ var ee = Pi(), le = e.first_child(ee);
28010
28045
  Rt(le, {
28011
28046
  label: "Required",
28012
28047
  get checked() {
@@ -28044,7 +28079,7 @@ function fS(o) {
28044
28079
  var H = e.sibling(D, 2), B = e.sibling(e.child(H), 2), V = e.child(B);
28045
28080
  Xe(V, {
28046
28081
  children: (pe, Q) => {
28047
- var ee = Pi(), le = e.first_child(ee);
28082
+ var ee = Di(), le = e.first_child(ee);
28048
28083
  Zi(le, {
28049
28084
  label: "Allowed types",
28050
28085
  options: [
@@ -28095,7 +28130,7 @@ function fS(o) {
28095
28130
  var Z = e.sibling(H, 2), q = e.sibling(e.child(Z), 2), U = e.child(q);
28096
28131
  Xe(U, {
28097
28132
  children: (pe, Q) => {
28098
- var ee = Pi(), le = e.first_child(ee);
28133
+ var ee = Di(), le = e.first_child(ee);
28099
28134
  wr(le, {
28100
28135
  label: "Block",
28101
28136
  placeholder: "Pick block",
@@ -28127,7 +28162,7 @@ function fS(o) {
28127
28162
  var X = e.sibling(Z, 2), oe = e.sibling(e.child(X), 2), j = e.child(oe);
28128
28163
  Xe(j, {
28129
28164
  children: (pe, Q) => {
28130
- var ee = Oi(), le = e.first_child(ee);
28165
+ var ee = Pi(), le = e.first_child(ee);
28131
28166
  Rt(le, {
28132
28167
  label: "Images",
28133
28168
  get checked() {
@@ -28189,8 +28224,8 @@ function fS(o) {
28189
28224
  var z = cS();
28190
28225
  {
28191
28226
  const B = (V) => {
28192
- var Z = Oi(), q = e.first_child(Z);
28193
- vi(q, {
28227
+ var Z = Pi(), q = e.first_child(Z);
28228
+ gi(q, {
28194
28229
  content: "A helpful hint",
28195
28230
  trigger: (j, W) => {
28196
28231
  let K = () => W?.().props;
@@ -28212,7 +28247,7 @@ function fS(o) {
28212
28247
  Yn(X, { class: "size-24" }), e.append(V, Z);
28213
28248
  };
28214
28249
  var A = e.child(z);
28215
- Di(A, () => "Tooltip & spinner", () => B);
28250
+ Mi(A, () => "Tooltip & spinner", () => B);
28216
28251
  var D = e.sibling(A, 2), I = e.sibling(e.child(D), 2), N = e.child(I);
28217
28252
  na(N, { class: "h-30 w-full rounded-[10px]" });
28218
28253
  var H = e.sibling(N, 2);
@@ -29173,7 +29208,7 @@ function lM(o, t) {
29173
29208
  }
29174
29209
  var cM = e.from_svg('<svg aria-hidden="true" style="position:absolute;width:0;height:0;overflow:hidden"><filter id="okno-noise-bg"><feTurbulence baseFrequency="0.8"></feTurbulence></filter></svg><!><!><!><!>', 1);
29175
29210
  function dM(o, t) {
29176
- e.push(t, !0), li("app", t.app);
29211
+ e.push(t, !0), ai("app", t.app);
29177
29212
  var r = cM(), n = e.sibling(e.first_child(r));
29178
29213
  JS(n, {});
29179
29214
  var i = e.sibling(n);
@@ -29318,7 +29353,7 @@ function CM(o, t) {
29318
29353
  var H = bM(), B = e.child(H), V = e.child(B);
29319
29354
  {
29320
29355
  let q = e.derived(() => e.get(S) > 0 ? L().filename.slice(e.get(S)) : "");
29321
- si(V, {
29356
+ ii(V, {
29322
29357
  get ext() {
29323
29358
  return e.get(q);
29324
29359
  },
@@ -29561,7 +29596,7 @@ function MM(o, t) {
29561
29596
  var z = _M();
29562
29597
  e.html(z, () => Ni, !0), e.reset(z), e.append(F, z);
29563
29598
  }, T = (F) => {
29564
- si(F, {
29599
+ ii(F, {
29565
29600
  get ext() {
29566
29601
  return e.get(c);
29567
29602
  },
@@ -29652,7 +29687,7 @@ function EM(o, t) {
29652
29687
  }, k = e.derived(() => e.get(p) && !yo(e.get(h).name)), y = ($) => {
29653
29688
  {
29654
29689
  let F = e.derived(() => a(e.get(h).name));
29655
- si($, {
29690
+ ii($, {
29656
29691
  get ext() {
29657
29692
  return e.get(F);
29658
29693
  },
@@ -30324,7 +30359,7 @@ function lD(o, t) {
30324
30359
  {
30325
30360
  var P = (_) => {
30326
30361
  var M = QM(), L = e.child(M);
30327
- Uo(L, { title: "Detected" });
30362
+ Zo(L, { title: "Detected" });
30328
30363
  var T = e.sibling(L, 2);
30329
30364
  e.each(T, 17, () => s.detected, (S) => S.name, (S, R) => {
30330
30365
  {
@@ -30357,7 +30392,7 @@ function lD(o, t) {
30357
30392
  {
30358
30393
  var R = ($) => {
30359
30394
  var F = sD(), z = e.child(F);
30360
- Uo(z, {
30395
+ Zo(z, {
30361
30396
  get title() {
30362
30397
  return e.get(M).title;
30363
30398
  },
@@ -30408,7 +30443,7 @@ function lD(o, t) {
30408
30443
  var N = vu(), H = e.child(N);
30409
30444
  {
30410
30445
  var B = (Z) => {
30411
- const q = e.derived(() => "f:" + e.get(I).id), U = e.derived(() => dr.indicatorFor(e.get(q))), X = e.derived(() => Vo.isCollapsed(e.get(L), e.get(I).id));
30446
+ const q = e.derived(() => "f:" + e.get(I).id), U = e.derived(() => dr.indicatorFor(e.get(q))), X = e.derived(() => Wo.isCollapsed(e.get(L), e.get(I).id));
30412
30447
  var oe = iD(), j = e.child(oe), W = e.child(j);
30413
30448
  {
30414
30449
  var K = (Y) => {
@@ -30520,11 +30555,11 @@ function lD(o, t) {
30520
30555
  e.reset(le), e.template_effect(() => {
30521
30556
  e.set_attribute(ge, "aria-label", e.get(X) ? "Expand folder" : "Collapse folder"), e.set_text(Q, e.get(I).name), e.set_attribute(le, "aria-label", e.get(X) ? "Expand folder" : "Collapse folder");
30522
30557
  }), e.delegated("click", ge, () => {
30523
- dr.dragJustEnded || Vo.toggle(e.get(L), e.get(I).id);
30558
+ dr.dragJustEnded || Wo.toggle(e.get(L), e.get(I).id);
30524
30559
  }), e.delegated("keydown", ge, (ve) => {
30525
- (ve.key === "Enter" || ve.key === " ") && (ve.preventDefault(), Vo.toggle(e.get(L), e.get(I).id));
30560
+ (ve.key === "Enter" || ve.key === " ") && (ve.preventDefault(), Wo.toggle(e.get(L), e.get(I).id));
30526
30561
  }), e.delegated("click", le, () => {
30527
- dr.dragJustEnded || Vo.toggle(e.get(L), e.get(I).id);
30562
+ dr.dragJustEnded || Wo.toggle(e.get(L), e.get(I).id);
30528
30563
  }), e.append(Y, se);
30529
30564
  };
30530
30565
  e.if(te, (Y) => {
@@ -31143,7 +31178,7 @@ function LD(o, t) {
31143
31178
  var SD = e.from_svg("<circle></circle>"), MD = e.from_html('<p class="text-[13px]/[150%] text-green-600 dark:text-green-400">Editing is free until then.</p>'), DD = e.from_html('<p class="text-[13px]/[150%] text-green-600 dark:text-green-400">Capped this month — free <!></p>'), PD = e.from_html('<p class="text-[13px]/[150%] text-(--fg-muted) px-2"> </p>'), OD = e.from_html('<p class="text-[12px]/[150%] text-(--fg-muted) px-2">Not available in local development.</p>'), ED = e.from_html('<p class="text-[12px]/[140%] text-rose-500 dark:text-rose-400"> </p>'), TD = e.from_html('<div class="flex flex-col items-start gap-6"><!> <!></div>'), AD = e.from_html("<!> <!>", 1), ID = e.from_html('<div class="flex flex-col gap-16 p-10"><section class="flex flex-col items-center gap-12 pt-8 pb-4"><svg aria-hidden="true"></svg> <div class="flex flex-col items-center gap-3 text-center"><p class="text-[14px]/[150%] text-(--fg)"><span class="font-medium"> </span> this year · <span class="font-medium"> </span> days <!></p> <!></div></section> <!></div>');
31144
31179
  function $D(o, t) {
31145
31180
  e.push(t, !0);
31146
- const { billing: r, project: n } = Se(), i = e1 / Wo, s = e.derived(() => Math.max(0, Math.min(r.days, i))), a = 44, l = 4.5, u = (a + 7 * 2) * 2, d = u / 2, f = Array.from({ length: i }, (A, D) => {
31181
+ const { billing: r, project: n } = Se(), i = e1 / ji, s = e.derived(() => Math.max(0, Math.min(r.days, i))), a = 44, l = 4.5, u = (a + 7 * 2) * 2, d = u / 2, f = Array.from({ length: i }, (A, D) => {
31147
31182
  const I = (-90 + 360 / i * D) * Math.PI / 180;
31148
31183
  return {
31149
31184
  x: d + a * Math.cos(I),
@@ -33052,7 +33087,7 @@ function NP(o, t) {
33052
33087
  s.some((v) => v.id === g) && (a.current = g);
33053
33088
  }
33054
33089
  const u = e.derived(() => s.find((g) => g.id === e.get(l)) ?? s[0]), d = e.derived(() => s.findIndex((g) => g.id === e.get(l))), f = e.derived(() => e.get(d) > 0 ? s[e.get(d) - 1] : null), h = e.derived(() => e.get(d) >= 0 && e.get(d) < s.length - 1 ? s[e.get(d) + 1] : null);
33055
- li(zp, (g) => c(g)), e.user_effect(() => {
33090
+ ai(zp, (g) => c(g)), e.user_effect(() => {
33056
33091
  const g = r.getData(n)?.topic;
33057
33092
  r.isOpen(n) && g && c(g);
33058
33093
  });
@@ -33087,7 +33122,7 @@ function NP(o, t) {
33087
33122
  var y = RP(), x = e.child(y);
33088
33123
  {
33089
33124
  var w = (E) => {
33090
- Uo(E, {
33125
+ Zo(E, {
33091
33126
  get title() {
33092
33127
  return e.get(k).title;
33093
33128
  }
@@ -33192,10 +33227,10 @@ function zo(o, t) {
33192
33227
  function Fo(o, t, r) {
33193
33228
  const n = "item", i = t === "react" ? " key={i}" : "", s = t === "react" ? `(${n}, i)` : `(${n})`;
33194
33229
  return `{${o}.map(${s} => (
33195
- ${Jo(r(n, i))}
33230
+ ${Xo(r(n, i))}
33196
33231
  ))}`;
33197
33232
  }
33198
- function Jo(o, t = " ") {
33233
+ function Xo(o, t = " ") {
33199
33234
  return o.split(`
33200
33235
  `).map((r) => r && t + r).join(`
33201
33236
  `);
@@ -33212,16 +33247,16 @@ function T1(o, t, r, n, i) {
33212
33247
  return l ? Fo(s, n, (c, u) => `<a {...${c}}${u}>${zo(c, n)}</a>`) : `<a {...${s}}>${zo(s, n)}</a>`;
33213
33248
  if (a === "reference")
33214
33249
  return l ? Fo(s, n, (c, u) => `<article {...${c}.slot}${u}>
33215
- ${Jo(`<h3 {...${c}.name}>${zo(`${c}.name`, n)}</h3>`)}
33250
+ ${Xo(`<h3 {...${c}.name}>${zo(`${c}.name`, n)}</h3>`)}
33216
33251
  </article>`) : `<span {...${s}}>${zo(s, n)}</span>`;
33217
33252
  if (a === "block" && r.fields) {
33218
33253
  const c = l ? "item" : s, u = Object.entries(r.fields).map(([d, f]) => T1(c, d, f, n, i)).join(`
33219
33254
 
33220
33255
  `);
33221
33256
  return l ? Fo(s, n, (d, f) => `<div {...${d}.slot}${f}>
33222
- ${Jo(u)}
33257
+ ${Xo(u)}
33223
33258
  </div>`) : `<div data-okno={${s}["data-okno"]}>
33224
- ${Jo(u)}
33259
+ ${Xo(u)}
33225
33260
  </div>`;
33226
33261
  }
33227
33262
  return r.fields ? Object.entries(r.fields).map(([c, u]) => T1(s, c, u, n, i)).join(`
@@ -33235,7 +33270,7 @@ function WP(o, t, r, n, i = !1) {
33235
33270
  let f;
33236
33271
  d ? a ? f = `{${t}.map(${n === "react" ? "(item, i)" : "(item)"} => (
33237
33272
  <article {...item.slot}${n === "react" ? " key={i}" : ""}>
33238
- ${Jo(Jo(d))}
33273
+ ${Xo(Xo(d))}
33239
33274
  </article>
33240
33275
  ))}` : f = d : f = a ? `{${t}.map((item) => (
33241
33276
  <article>{/* add fields */}</article>
@@ -33955,7 +33990,7 @@ function lO(o, t) {
33955
33990
  var gt = e.sibling(bt, 2);
33956
33991
  {
33957
33992
  let vt = e.derived(() => e.get(_).length > 1);
33958
- ii(gt, {
33993
+ oi(gt, {
33959
33994
  onremove: () => R(e.get(Rr).id),
33960
33995
  get reorderable() {
33961
33996
  return e.get(vt);
@@ -34649,7 +34684,7 @@ var bO = e.from_html('<div class="self-start pl-10 text-[12px]/none text-neutral
34649
34684
  function ys(o, t) {
34650
34685
  e.push(t, !0);
34651
34686
  let r = e.prop(t, "name", 15, ""), n = e.prop(t, "slug", 15, ""), i = e.prop(t, "nameLabel", 3, "Name"), s = e.prop(t, "namePlaceholder", 3, ""), a = e.prop(t, "startLocked", 3, !1), l = e.prop(t, "readonly", 3, !1), c = e.state(e.proxy(a())), u = e.state(void 0);
34652
- const d = e.derived(() => Zo(r()));
34687
+ const d = e.derived(() => Bo(r()));
34653
34688
  e.user_effect(() => {
34654
34689
  !e.get(c) && !l() && n(e.get(d));
34655
34690
  });
@@ -34660,7 +34695,7 @@ function ys(o, t) {
34660
34695
  e.set(c, !1), n(e.get(d));
34661
34696
  }
34662
34697
  function p() {
34663
- n(Zo(n())), n() || h();
34698
+ n(Bo(n())), n() || h();
34664
34699
  }
34665
34700
  var g = xO(), v = e.first_child(g), m = e.child(v);
34666
34701
  tt(m, {
@@ -36340,29 +36375,28 @@ function To(o, t) {
36340
36375
  $$slots: { default: !0 }
36341
36376
  }), e.pop();
36342
36377
  }
36343
- var DE = e.from_html('<p class="text-center text-[12px]/[140%] text-rose-400/90"> </p>'), PE = e.from_html(`<div class="flex flex-col items-center justify-center h-full px-20 pb-8 gap-12 pt-16"><div class="text-(--fg)"><!></div> <div class="flex flex-col items-center gap-6 text-center"><h2 class="text-[24px]/[110%] font-semibold tracking-[-0.01em] text-(--fg)">A day of editing</h2> <p class="text-[13px]/[152%] text-white/60"><span class="font-medium text-(--fg)"> </span> covers 24 hours unlimited editing
36344
- and publishing on your live site. You only pay on the days you publish; browsing and drafts
36345
- are free.</p></div> <div class="w-full flex-col gap-12 flex-center mt-12"><!> <p class="text-center text-[13px]/[150%] font-medium text-(--fg)">Never more than €40 a month · €200 a year.</p> <!> <!> <p class="text-center text-[10px]/[150%] text-white/30">By continuing you agree to the <a href="https://okno.build/terms" target="_blank" rel="noopener" class="underline hover:text-white/55">Terms</a> and <a href="https://okno.build/privacy" target="_blank" rel="noopener" class="underline hover:text-white/55">Privacy&nbsp;Policy</a> </p></div></div>`);
36378
+ var DE = e.from_html('<p class="text-center text-[12px]/[140%] text-rose-400/90"> </p>'), PE = e.from_html(`<div class="flex flex-col items-center justify-center h-full px-20 pb-8 gap-12 pt-16"><div class="text-(--fg)"><!></div> <div class="flex flex-col items-center gap-6 text-center"><h2 class="text-[24px]/[110%] font-semibold tracking-[-0.01em] text-(--fg)">Day of Editing</h2> <p class="text-[13px]/[152%] text-white/60">24 hours of unlimited editing and publishing on your live site. You only pay on the days
36379
+ you publish; browsing and drafts are free.</p></div> <div class="w-full flex-col gap-12 flex-center mt-12"><!> <p class="text-center text-[13px]/[150%] font-medium text-(--fg)">Never more than €40 a month · €200 a year.</p> <!> <!> <p class="text-center text-[10px]/[150%] text-white/30">By continuing you agree to the <a href="https://okno.build/terms" target="_blank" rel="noopener" class="underline hover:text-white/55">Terms</a> and <a href="https://okno.build/privacy" target="_blank" rel="noopener" class="underline hover:text-white/55">Privacy&nbsp;Policy</a> </p></div></div>`);
36346
36380
  function OE(o, t) {
36347
36381
  e.push(t, !0);
36348
36382
  let r = e.prop(t, "busy", 3, !1), n = e.prop(t, "error", 3, null);
36349
- const { billing: i } = Se(), s = e.derived(() => i.coverYear > Wo && i.coverYear <= 40);
36383
+ const { billing: i } = Se(), s = e.derived(() => i.coverYear > ji && i.coverYear <= 40);
36350
36384
  var a = PE(), l = e.child(a), c = e.child(l);
36351
36385
  Ap(c, { class: "h-20 w-auto" }), e.reset(l);
36352
- var u = e.sibling(l, 2), d = e.child(u), f = e.sibling(d, 2), h = e.child(f), p = e.child(h);
36353
- e.reset(h), e.next(), e.reset(f), e.reset(u);
36354
- var g = e.sibling(u, 2), v = e.child(g);
36386
+ var u = e.sibling(l, 2), d = e.child(u), f = e.sibling(d, 2);
36387
+ e.reset(u);
36388
+ var h = e.sibling(u, 2), p = e.child(h);
36355
36389
  {
36356
- var m = (C) => {
36357
- var E = DE(), P = e.child(E, !0);
36358
- e.reset(E), e.template_effect(() => e.set_text(P, n())), e.append(C, E);
36390
+ var g = (x) => {
36391
+ var w = DE(), C = e.child(w, !0);
36392
+ e.reset(w), e.template_effect(() => e.set_text(C, n())), e.append(x, w);
36359
36393
  };
36360
- e.if(v, (C) => {
36361
- n() && C(m);
36394
+ e.if(p, (x) => {
36395
+ n() && x(g);
36362
36396
  });
36363
36397
  }
36364
- var b = e.sibling(v, 4);
36365
- ke(b, {
36398
+ var v = e.sibling(p, 4);
36399
+ ke(v, {
36366
36400
  size: "lg",
36367
36401
  tone: "green",
36368
36402
  get loading() {
@@ -36372,47 +36406,45 @@ function OE(o, t) {
36372
36406
  return r();
36373
36407
  },
36374
36408
  onclick: () => t.onstart("day"),
36375
- children: (C, E) => {
36409
+ children: (x, w) => {
36376
36410
  e.next();
36377
- var P = e.text();
36378
- e.template_effect(() => e.set_text(P, n() ? "Try again" : `Start Today · €${Wo}`)), e.append(C, P);
36411
+ var C = e.text();
36412
+ e.template_effect(() => e.set_text(C, n() ? "Try again" : `Start Today · €${ji}`)), e.append(x, C);
36379
36413
  },
36380
36414
  $$slots: { default: !0 }
36381
36415
  });
36382
- var k = e.sibling(b, 2);
36416
+ var m = e.sibling(v, 2);
36383
36417
  {
36384
- var y = (C) => {
36385
- ke(C, {
36418
+ var b = (x) => {
36419
+ ke(x, {
36386
36420
  size: "lg",
36387
36421
  tone: "idle",
36388
36422
  get disabled() {
36389
36423
  return r();
36390
36424
  },
36391
36425
  onclick: () => t.onstart("year"),
36392
- children: (E, P) => {
36426
+ children: (w, C) => {
36393
36427
  e.next();
36394
- var O = e.text();
36395
- e.template_effect(() => e.set_text(O, `Free Year Now · €${i.coverYear ?? ""}`)), e.append(E, O);
36428
+ var E = e.text();
36429
+ e.template_effect(() => e.set_text(E, `Free Year Now · €${i.coverYear ?? ""}`)), e.append(w, E);
36396
36430
  },
36397
36431
  $$slots: { default: !0 }
36398
36432
  });
36399
36433
  };
36400
- e.if(k, (C) => {
36401
- e.get(s) && C(y);
36434
+ e.if(m, (x) => {
36435
+ e.get(s) && x(b);
36402
36436
  });
36403
36437
  }
36404
- var x = e.sibling(k, 2), w = e.sibling(e.child(x), 4);
36405
- e.reset(x), e.reset(g), e.reset(a), e.template_effect(() => {
36406
- e.set_text(p, `€${Wo}`), e.set_text(w, `,
36407
- and authorize Okno to charge your card €${Wo} on the days you publish — up to €40 a month, €200 a year. Remove your card anytime to stop.`);
36408
- }), e.transition(5, l, () => It, () => ({ delay: 80, duration: 320 })), e.transition(5, d, () => It, () => ({ delay: 140, duration: 320 })), e.transition(5, f, () => It, () => ({ delay: 220, duration: 320 })), e.transition(1, g, () => It, () => ({ delay: 380, duration: 320 })), e.append(o, a), e.pop();
36438
+ var k = e.sibling(m, 2), y = e.sibling(e.child(k), 4);
36439
+ e.reset(k), e.reset(h), e.reset(a), e.template_effect(() => e.set_text(y, `,
36440
+ and authorize Okno to charge your card €${ji} on the days you publish — up to €40 a month, €200 a year. Remove your card anytime to stop.`)), e.transition(5, l, () => It, () => ({ delay: 80, duration: 320 })), e.transition(5, d, () => It, () => ({ delay: 140, duration: 320 })), e.transition(5, f, () => It, () => ({ delay: 220, duration: 320 })), e.transition(1, h, () => It, () => ({ delay: 380, duration: 320 })), e.append(o, a), e.pop();
36409
36441
  }
36410
36442
  var EE = e.from_html('<p class="text-[14px]/[150%] text-white/60"><span class="font-medium text-(--fg)"> </span> Every editing day is free until <span class="font-medium text-green-400"> </span>.</p>'), TE = e.from_html('<p class="text-[14px]/[150%] text-white/60"><span class="font-medium text-(--fg)"> </span> Editing is free until <span class="font-medium text-green-400"> </span>.</p>'), AE = e.from_html(`<p class="text-[14px]/[150%] text-white/60"><span class="font-medium text-(--fg)"> </span> Today's editing day is open.</p>`), IE = e.from_html('<div class="flex items-center gap-8 text-[13px]"><!> <span class="font-medium text-(--fg)"> </span> <span class="text-white/40">saved</span></div>'), $E = e.from_html(`<div class="flex flex-col items-center justify-center h-full px-24 pb-8 gap-16 text-center"><div class="text-green-400"><!></div> <div class="flex flex-col items-center gap-8"><h2 class="text-[24px]/[110%] font-semibold tracking-[-0.01em] text-(--fg)"> </h2> <!></div> <div class="w-full rounded-2xl bg-white/5 border-t-[0.5px] border-white/10 px-16 py-14 flex flex-col gap-6"><!> <p class="text-[12px]/[150%] text-white/50 text-left">From now on it's automatic: days you publish charge themselves, up to €40/mo.
36411
36443
  You only see this again if a payment needs you.</p></div> <!></div>`);
36412
36444
  function jE(o, t) {
36413
36445
  e.push(t, !0);
36414
36446
  let r = e.prop(t, "plan", 3, "day");
36415
- const { billing: n } = Se(), i = e.derived(() => r() === "year" ? n.coverYear : Wo), s = e.derived(() => n.unlimited ? "year" : n.monthCapped ? "month" : "day"), a = e.derived(() => e.get(s) === "year" ? n.cycleEnd : e.get(s) === "month" ? n.monthFreeUntil : null), l = e.derived(() => e.get(a) ? new Date(e.get(a)).toLocaleDateString(void 0, { day: "numeric", month: "long", year: "numeric" }) : null), c = e.derived(() => e.get(s) === "year" ? "The year's on us" : e.get(s) === "month" ? "The rest of the month's on us" : "You're editing live");
36447
+ const { billing: n } = Se(), i = e.derived(() => r() === "year" ? n.coverYear : ji), s = e.derived(() => n.unlimited ? "year" : n.monthCapped ? "month" : "day"), a = e.derived(() => e.get(s) === "year" ? n.cycleEnd : e.get(s) === "month" ? n.monthFreeUntil : null), l = e.derived(() => e.get(a) ? new Date(e.get(a)).toLocaleDateString(void 0, { day: "numeric", month: "long", year: "numeric" }) : null), c = e.derived(() => e.get(s) === "year" ? "The year's on us" : e.get(s) === "month" ? "The rest of the month's on us" : "You're editing live");
36416
36448
  var u = $E(), d = e.child(u), f = e.child(d);
36417
36449
  _e(f, { name: "check-circle", variant: "duotone", class: "size-72" }), e.reset(d);
36418
36450
  var h = e.sibling(d, 2), p = e.child(h), g = e.child(p, !0);
@@ -37114,7 +37146,7 @@ function hT(o, t) {
37114
37146
  {
37115
37147
  var _ = (R) => {
37116
37148
  var $ = cT(), F = e.child($);
37117
- vi(F, { content: "Visit page", trigger: (A, D) => {
37149
+ gi(F, { content: "Visit page", trigger: (A, D) => {
37118
37150
  let I = () => D?.().props;
37119
37151
  ke(A, e.spread_props(I, {
37120
37152
  tone: "idle",
@@ -37235,7 +37267,7 @@ var Kl = e.from_html("<!> <!>", 1), fT = e.from_html('<div class="mt-10 first:mt
37235
37267
  function gT(o, t) {
37236
37268
  e.push(t, !0);
37237
37269
  const { content: r, can: n, modals: i, win: s } = Se(), a = Ke(), l = t.entry.session;
37238
- li(Qn, l);
37270
+ ai(Qn, l);
37239
37271
  const c = e.derived(() => r.getSchema(l.key)), u = e.derived(() => es(e.get(c), l.formData, l.originalData)), d = e.derived(() => l.formData?.title?.trim() || l.itemId), f = e.derived(() => n.editStructure), h = e.derived(() => n.canDelete("collections")), p = e.derived(() => cl(s, 380)), g = e.derived(() => ({
37240
37272
  x: e.get(p).pos.x + t.index * 28,
37241
37273
  y: e.get(p).pos.y + t.index * 28
@@ -37355,7 +37387,7 @@ function gT(o, t) {
37355
37387
  }
37356
37388
  }), e.reset(R), e.append(S, R);
37357
37389
  }, T = (S) => {
37358
- ai(S, {
37390
+ si(S, {
37359
37391
  get field() {
37360
37392
  return e.get(O).item;
37361
37393
  }
@@ -37886,7 +37918,7 @@ function $T(o, t) {
37886
37918
  e.delegate(["click"]);
37887
37919
  var jT = e.from_html("<!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!> <!>", 1);
37888
37920
  function RT(o, t) {
37889
- e.push(t, !0), li("app", t.app);
37921
+ e.push(t, !0), ai("app", t.app);
37890
37922
  var r = jT(), n = e.first_child(r);
37891
37923
  CM(n, {});
37892
37924
  var i = e.sibling(n, 2);
@@ -38140,7 +38172,7 @@ function WT(o, t) {
38140
38172
  e.delegate(["click", "pointerdown"]);
38141
38173
  var VT = e.from_html("<div></div>");
38142
38174
  function BT(o, t) {
38143
- e.push(t, !0), li("app", t.app);
38175
+ e.push(t, !0), ai("app", t.app);
38144
38176
  const { fields: r, win: n, auth: i, windowStack: s, theme: a, setup: l } = t.app.modules, c = e.derived(() => n.opened && !!i.user);
38145
38177
  let u = e.state(null), d = e.state(null), f, h = e.state(null);
38146
38178
  function p() {
@@ -38799,11 +38831,7 @@ class md {
38799
38831
  }), this.bus?.on("field:click", (t) => {
38800
38832
  t.field && this.focusField(t.field);
38801
38833
  }), this.bus?.on("content:ready", () => {
38802
- Xs("okno:content-ready");
38803
- const t = this.cacheKey;
38804
- if (!t) return;
38805
- const r = this.content.snapshot();
38806
- md.snapshotEmpty(r) || Vp(t, r);
38834
+ Xs("okno:content-ready"), this.writeBootCache();
38807
38835
  }), this.bus?.on("billing:charged", () => {
38808
38836
  const t = this.pendingEditingDayRetry;
38809
38837
  this.pendingEditingDayRetry = null, t?.();
@@ -38854,6 +38882,17 @@ class md {
38854
38882
  static snapshotEmpty(t) {
38855
38883
  return !Object.keys(t.pages ?? {}).length && !Object.keys(t.collections ?? {}).length && !Object.keys(t.globals ?? {}).length;
38856
38884
  }
38885
+ /** Refresh the boot SWR cache from current in-memory content. Runs on
38886
+ * content:ready (after a load) AND after every save/optimistic mutation — else
38887
+ * a reload right after saving hydrates the PRE-save snapshot and shows the old
38888
+ * value until the ~1.6s live load reconciles. Never caches an empty snapshot
38889
+ * (a transient blip must not clobber a good one). */
38890
+ writeBootCache() {
38891
+ const t = this.cacheKey;
38892
+ if (!t) return;
38893
+ const r = this.content.snapshot();
38894
+ md.snapshotEmpty(r) || Vp(t, r);
38895
+ }
38857
38896
  /** Optimistic paint from the SWR cache. No-op once content is ready, without a
38858
38897
  * token, or with no cache. Idempotent — safe to call at boot AND in load(). */
38859
38898
  hydrateContentCache() {
@@ -39091,7 +39130,7 @@ class md {
39091
39130
  * `from` source (default `title`), kebab-cased. Falls back to "item" when the
39092
39131
  * source is empty; de-dupes against existing items with a numeric suffix. */
39093
39132
  deriveItemSlug(t) {
39094
- const n = this.content.getSchema(t)?.fields?.slug?.from || "title", i = this.content.formData, s = i[n] ?? i.title ?? "", a = Zo(typeof s == "string" ? s : String(s ?? "")) || "item", l = new Set(this.content.getRecords(t).map((u) => u.slug));
39133
+ const n = this.content.getSchema(t)?.fields?.slug?.from || "title", i = this.content.formData, s = i[n] ?? i.title ?? "", a = Bo(typeof s == "string" ? s : String(s ?? "")) || "item", l = new Set(this.content.getRecords(t).map((u) => u.slug));
39095
39134
  if (!l.has(a)) return a;
39096
39135
  let c = 2;
39097
39136
  for (; l.has(`${a}-${c}`); ) c++;
@@ -39166,7 +39205,7 @@ class md {
39166
39205
  const y = this.content.collections[n] ?? [], x = y.findIndex((C) => C.slug === i), w = y.slice();
39167
39206
  x >= 0 ? w[x] = a : w.push(a), this.content.collections = { ...this.content.collections, [n]: w };
39168
39207
  }
39169
- nt.info(`Saved ${d}`), s.markSaved(), this.content.pendingPublish = !!p?.productionBranch && p.branch !== p.productionBranch, this.sync(d);
39208
+ nt.info(`Saved ${d}`), s.markSaved(), this.writeBootCache(), this.content.pendingPublish = !!p?.productionBranch && p.branch !== p.productionBranch, this.sync(d);
39170
39209
  }).catch((v) => {
39171
39210
  nt.error("Save failed:", v), s.saveError = v.message ?? "Save failed";
39172
39211
  }).finally(() => {
@@ -39296,7 +39335,7 @@ class md {
39296
39335
  });
39297
39336
  if (!v.ok && v.status !== 404) throw new Error(`Delete failed: ${v.status}`);
39298
39337
  delete this.content.shas[p], h && St(ot(h.owner, h.repo, h.branch, p));
39299
- })), nt.info(`Deleted item ${t}/${r}`), this.sync(), !0;
39338
+ })), nt.info(`Deleted item ${t}/${r}`), this.writeBootCache(), this.sync(), !0;
39300
39339
  } catch (p) {
39301
39340
  return nt.error("Item delete failed:", p), this.toasts.error(p?.message ?? "Delete failed"), this.content.collections = { ...this.content.collections, [t]: a }, this.content.localeData.collections[t] = c, f?.includes(r) && this.schema?.setItemOrder(t, f), !1;
39302
39341
  }
@@ -39346,7 +39385,7 @@ class md {
39346
39385
  });
39347
39386
  if (!p.ok && p.status !== 404) throw new Error(`Delete failed: ${p.status}`);
39348
39387
  delete this.content.shas[f], d && St(ot(d.owner, d.repo, d.branch, f));
39349
- })), nt.info(`Deleted ${r.length} items in ${t}`), this.sync(), !0;
39388
+ })), nt.info(`Deleted ${r.length} items in ${t}`), this.writeBootCache(), this.sync(), !0;
39350
39389
  } catch (f) {
39351
39390
  return nt.error("Bulk item delete failed:", f), this.toasts.error(f?.message ?? "Delete failed"), this.content.collections = { ...this.content.collections, [t]: n }, this.content.localeData.collections[t] = a, u && this.schema?.setItemOrder(t, u), !1;
39352
39391
  }
@@ -39388,7 +39427,7 @@ class md {
39388
39427
  });
39389
39428
  if (!p.ok) throw new Error(`Save failed: ${p.status}`);
39390
39429
  const v = (await p.json())?.commit?.fileSha;
39391
- v && (this.content.shas[u] = v), h && St(ot(h.owner, h.repo, h.branch, u)), this.content.pendingPublish = !!h?.productionBranch && h.branch !== h.productionBranch, this.sync(u);
39430
+ v && (this.content.shas[u] = v), h && St(ot(h.owner, h.repo, h.branch, u)), this.writeBootCache(), this.content.pendingPublish = !!h?.productionBranch && h.branch !== h.productionBranch, this.sync(u);
39392
39431
  } catch (p) {
39393
39432
  nt.error("Set item status failed:", p), this.toasts.error(p?.message ?? "Save failed");
39394
39433
  const g = (this.content.collections[t] ?? []).slice(), v = g.findIndex((m) => m.slug === r);
@@ -41601,7 +41640,7 @@ class DA {
41601
41640
  async snapBackToUpstream() {
41602
41641
  if (!this.project.isDev)
41603
41642
  try {
41604
- const t = this.project.oknoDir.endsWith("/") ? this.project.oknoDir : `${this.project.oknoDir}/`, r = await ji(this.project, `${t}schema.ts`);
41643
+ const t = this.project.oknoDir.endsWith("/") ? this.project.oknoDir : `${this.project.oknoDir}/`, r = await $i(this.project, `${t}schema.ts`);
41605
41644
  r && (this.content.shas["schema.ts"] = r);
41606
41645
  } catch (t) {
41607
41646
  br.warn("snapBackToUpstream failed:", t);
@@ -41610,11 +41649,11 @@ class DA {
41610
41649
  async refreshShasFor(t, r) {
41611
41650
  if (!this.project.isDev)
41612
41651
  try {
41613
- const n = this.project.oknoDir.endsWith("/") ? this.project.oknoDir : `${this.project.oknoDir}/`, i = await ji(this.project, `${n}schema.ts`);
41652
+ const n = this.project.oknoDir.endsWith("/") ? this.project.oknoDir : `${this.project.oknoDir}/`, i = await $i(this.project, `${n}schema.ts`);
41614
41653
  i && (this.content.shas["schema.ts"] = i);
41615
41654
  const s = t === "collections" || t === "blocks" ? null : `${t}/${r}.ts`;
41616
41655
  if (s) {
41617
- const a = await ji(this.project, `${n}${s}`);
41656
+ const a = await $i(this.project, `${n}${s}`);
41618
41657
  a && (this.content.shas[s] = a);
41619
41658
  }
41620
41659
  } catch (n) {
@@ -41900,7 +41939,7 @@ class PA {
41900
41939
  }
41901
41940
  }
41902
41941
  }
41903
- const Ei = Mr("users-controller");
41942
+ const Oi = Mr("users-controller");
41904
41943
  async function OA(o) {
41905
41944
  try {
41906
41945
  const t = await fetch(`https://api.github.com/users/${encodeURIComponent(o)}`, {
@@ -41998,17 +42037,17 @@ class EA {
41998
42037
  const a = this.project.currentRepo;
41999
42038
  return a && St(ot(a.owner, a.repo, a.branch, "users.json")), !0;
42000
42039
  } catch (r) {
42001
- return Ei.error("users save failed:", r), this.toasts.error(r?.message ?? "Save failed"), this.refreshSha(), !1;
42040
+ return Oi.error("users save failed:", r), this.toasts.error(r?.message ?? "Save failed"), this.refreshSha(), !1;
42002
42041
  } finally {
42003
42042
  this.content.usersSaving = !1;
42004
42043
  }
42005
42044
  }
42006
42045
  async refreshSha() {
42007
42046
  try {
42008
- const t = this.project.oknoDir.endsWith("/") ? this.project.oknoDir : `${this.project.oknoDir}/`, r = await ji(this.project, `${t}users.json`);
42047
+ const t = this.project.oknoDir.endsWith("/") ? this.project.oknoDir : `${this.project.oknoDir}/`, r = await $i(this.project, `${t}users.json`);
42009
42048
  r && (this.content.shas["users.json"] = r);
42010
42049
  } catch (t) {
42011
- Ei.warn("refreshSha failed:", t);
42050
+ Oi.warn("refreshSha failed:", t);
42012
42051
  }
42013
42052
  }
42014
42053
  // --- Invite links (shareable; accepted via the backend /invite page) ---
@@ -42026,7 +42065,7 @@ class EA {
42026
42065
  if (!i.ok) throw new Error(s.error || `Failed: ${i.status}`);
42027
42066
  return s.link;
42028
42067
  } catch (i) {
42029
- return Ei.error("createInvite failed:", i), this.toasts.error(i?.message ?? "Couldn't create invite"), null;
42068
+ return Oi.error("createInvite failed:", i), this.toasts.error(i?.message ?? "Couldn't create invite"), null;
42030
42069
  }
42031
42070
  }
42032
42071
  /** List the project's pending invites. */
@@ -42035,7 +42074,7 @@ class EA {
42035
42074
  const t = await fetch(`${this.apiUrl}/api/invites`, { headers: this.backendHeaders });
42036
42075
  return t.ok ? (await t.json()).invites ?? [] : [];
42037
42076
  } catch (t) {
42038
- return Ei.warn("listInvites failed:", t), [];
42077
+ return Oi.warn("listInvites failed:", t), [];
42039
42078
  }
42040
42079
  }
42041
42080
  /** Revoke a pending invite by token. */
@@ -42051,7 +42090,7 @@ class EA {
42051
42090
  }
42052
42091
  return !0;
42053
42092
  } catch (r) {
42054
- return Ei.error("revokeInvite failed:", r), this.toasts.error(r?.message ?? "Couldn't revoke invite"), !1;
42093
+ return Oi.error("revokeInvite failed:", r), this.toasts.error(r?.message ?? "Couldn't revoke invite"), !1;
42055
42094
  }
42056
42095
  }
42057
42096
  }
@@ -42123,14 +42162,14 @@ class AA {
42123
42162
  }
42124
42163
  async refreshSha() {
42125
42164
  try {
42126
- const t = this.project.oknoDir.endsWith("/") ? this.project.oknoDir : `${this.project.oknoDir}/`, r = await ji(this.project, `${t}origins.json`);
42165
+ const t = this.project.oknoDir.endsWith("/") ? this.project.oknoDir : `${this.project.oknoDir}/`, r = await $i(this.project, `${t}origins.json`);
42127
42166
  r && (this.content.shas["origins.json"] = r);
42128
42167
  } catch (t) {
42129
42168
  Ru.warn("refreshSha failed:", t);
42130
42169
  }
42131
42170
  }
42132
42171
  }
42133
- const Ti = Mr("app");
42172
+ const Ei = Mr("app");
42134
42173
  function IA(o, t, r) {
42135
42174
  const n = [], i = performance.now(), s = (c) => c ? (c.shadowRoot?.textContent?.length ?? 0) + (c.textContent?.length ?? 0) : 0, a = () => {
42136
42175
  const c = o.setup, u = o.project, d = o.router, f = o.content, h = o.files, p = o.win;
@@ -42197,14 +42236,14 @@ const $A = (o) => {
42197
42236
  users: new EA(t.content, t.project, t.auth, t.toasts),
42198
42237
  origins: new AA(t.content, t.project, t.toasts)
42199
42238
  };
42200
- Ti.ok("All modules initialized.");
42239
+ Ei.ok("All modules initialized.");
42201
42240
  const i = o.floatingRoot;
42202
42241
  return window.okno = {
42203
42242
  modules: t,
42204
42243
  controllers: n,
42205
42244
  /** Build marker — bump/rename to confirm which editor bundle is actually
42206
42245
  * loaded (worktree vs main dist). Check `window.okno.build` in the console. */
42207
- build: "windowframe-unified-r22-dedupe-setupready-load",
42246
+ build: "windowframe-unified-r24-media-stale-patch",
42208
42247
  /** Boot timing milestones (ms since page load): `window.okno.perf()`. */
42209
42248
  perf: () => f5(),
42210
42249
  /** Boot flash tracer dump — set localStorage.oknoTrace="1", reload, then call
@@ -42220,7 +42259,7 @@ const $A = (o) => {
42220
42259
  * flash to see exactly what ran (content loaded 1× or 2×? setup re-ran?
42221
42260
  * branch churned?) with ms since the first entry. */
42222
42261
  logs: () => {
42223
- const l = $i[0]?.timestamp ?? 0, c = $i.map((u) => ({
42262
+ const l = Ii[0]?.timestamp ?? 0, c = Ii.map((u) => ({
42224
42263
  ms: u.timestamp - l,
42225
42264
  module: u.module,
42226
42265
  level: u.level,
@@ -42261,16 +42300,16 @@ const $A = (o) => {
42261
42300
  return;
42262
42301
  }
42263
42302
  t.bus.on("auth:login", async () => {
42264
- Ti.info("bus auth:login → setup.start()"), await n.setup.start();
42303
+ Ei.info("bus auth:login → setup.start()"), await n.setup.start();
42265
42304
  });
42266
42305
  let u = null;
42267
42306
  t.bus.on("setup:ready", async () => {
42268
42307
  const f = t.project.currentRepo, h = f ? `${f.owner}/${f.repo}@${f.branch}` : "none";
42269
42308
  if (h === u && t.content.ready) {
42270
- Ti.info(`bus setup:ready (dup, ${h}) → skip redundant reload`);
42309
+ Ei.info(`bus setup:ready (dup, ${h}) → skip redundant reload`);
42271
42310
  return;
42272
42311
  }
42273
- u = h, Ti.info(`bus setup:ready (${h}) → load content+files`), await Promise.all([n.content.load(), n.files.load()]), n.content.initLocaleFromUrl(), t.router.applyUrlRoute(), Ti.info("bus setup:ready → load done + route applied");
42312
+ u = h, Ei.info(`bus setup:ready (${h}) → load content+files`), await Promise.all([n.content.load(), n.files.load()]), n.content.initLocaleFromUrl(), t.router.applyUrlRoute(), Ei.info("bus setup:ready → load done + route applied");
42274
42313
  }), t.bus.on("content:reload", () => {
42275
42314
  n.content.load();
42276
42315
  }), console.log("[okno] start: calling auth.init()"), await n.auth.init(), console.log("[okno] start: auth.init() resolved — auth.user:", t.auth.user ? "logged-in" : "anonymous");