@marimo-team/islands 0.25.3-dev170 → 0.25.3-dev173

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 (86) hide show
  1. package/dist/{ConnectedDataExplorerComponent-BbSXV-Xa.js → ConnectedDataExplorerComponent-Le_OBfmt.js} +9 -9
  2. package/dist/{ErrorBoundary-NE86qEWZ.js → ErrorBoundary-wT3f3iJ1.js} +8 -8
  3. package/dist/{abnfDiagram-VCTEODGH-D7n07nXf.js → abnfDiagram-VCTEODGH-Tf1ghyQQ.js} +2 -2
  4. package/dist/{any-language-editor-3E24SnCV.js → any-language-editor-B92WMzoC.js} +2 -2
  5. package/dist/{architectureDiagram-5GKGNRK7-D6CjRib5.js → architectureDiagram-5GKGNRK7-xlnbTG0T.js} +1 -1
  6. package/dist/{chat-ui-CC7GekpG.js → chat-ui-CuORr6fL.js} +70 -70
  7. package/dist/{check-SpOMoCLP.js → check-C9Mp9eCK.js} +1 -1
  8. package/dist/{chunk-IMKFNOWR-6dtPz7uS.js → chunk-IMKFNOWR-Cmd4a5jy.js} +1 -1
  9. package/dist/{chunk-SHT3W25Y-BwnFNKDA.js → chunk-SHT3W25Y-mSNp-WpO.js} +1 -1
  10. package/dist/{chunk-SVP7TREG-D2eV4vBJ.js → chunk-SVP7TREG-CWC49D8X.js} +1 -1
  11. package/dist/{chunk-TICWLB2K-BDs4-_-r.js → chunk-TICWLB2K-De9FINtG.js} +1 -1
  12. package/dist/{classDiagram-ZZMXUADV-DCJnf_8v.js → classDiagram-ZZMXUADV-DweTkYdp.js} +2 -2
  13. package/dist/{classDiagram-v2-VYDZK3BY-BOmSzPBD.js → classDiagram-v2-VYDZK3BY-A6MR2TiE.js} +2 -2
  14. package/dist/{code-visibility-Bzvc6ajl.js → code-visibility-ZReaeMaF.js} +5 -5
  15. package/dist/{common-Ciw4zkh2.js → common-DCevHg1m.js} +231 -231
  16. package/dist/{copy-icon-C1trdvVt.js → copy-icon-De584pZ4.js} +2 -2
  17. package/dist/{cynefinDiagram-5FMLGOSQ-Bln_Soky.js → cynefinDiagram-5FMLGOSQ-BSvo5le-.js} +1 -1
  18. package/dist/{dagre-GXQ25YYZ-D-nf7WzW.js → dagre-GXQ25YYZ-tXRQslO6.js} +1 -1
  19. package/dist/{data-grid-overlay-editor-AQREmxI7.js → data-grid-overlay-editor-CTC-bJus.js} +1 -1
  20. package/dist/{diagram-S7CK7UJ4-PsgSMkY2.js → diagram-S7CK7UJ4-r3t5VtwI.js} +1 -1
  21. package/dist/{diagram-UQ7AKVKN-DfwfUuSw.js → diagram-UQ7AKVKN-qgbC8YnT.js} +1 -1
  22. package/dist/{diagram-VX7I27RA-C9_e-oMc.js → diagram-VX7I27RA-CiHxEwtp.js} +1 -1
  23. package/dist/{diagram-Z3DM3KII-CWLa5tuY.js → diagram-Z3DM3KII-D95u15Ev.js} +1 -1
  24. package/dist/{dialog-DgeqyrEZ.js → dialog-DVRfQuhD.js} +24 -24
  25. package/dist/{dropdown-menu-B6ftyzOg.js → dropdown-menu-DCMbbQ35.js} +691 -691
  26. package/dist/{ebnfDiagram-PWID7BFC-B1QRM58v.js → ebnfDiagram-PWID7BFC-P7e4bryK.js} +2 -2
  27. package/dist/{erDiagram-RLTQ6QDP-DJK_FqvW.js → erDiagram-RLTQ6QDP-CUHZcmRj.js} +1 -1
  28. package/dist/{error-banner-D40pmfQQ.js → error-banner-DxJ3s8YO.js} +57 -57
  29. package/dist/{error-entries-DgK3wUJR.js → error-entries-CmWMEsY_.js} +984 -961
  30. package/dist/{feedback-button-8a6SETmT.js → feedback-button-DwXkmewo.js} +29 -29
  31. package/dist/{flowDiagram-HODETNUW-Uxc25XSJ.js → flowDiagram-HODETNUW-BGZ95AzI.js} +2 -2
  32. package/dist/{formats-DQCyPd5Z.js → formats-DI7HEVv7.js} +1 -1
  33. package/dist/{glide-data-editor-B70oke_v.js → glide-data-editor-BlmcP-lw.js} +10 -10
  34. package/dist/{glide-utils-Dz_F4pAY.js → glide-utils-D98laidb.js} +2 -2
  35. package/dist/{globals-Cxd5hNlI.js → globals-BdRitZ4p.js} +3 -3
  36. package/dist/{html-to-image-D4yG5Ru0.js → html-to-image-bpiQh7ND.js} +55 -55
  37. package/dist/{infoDiagram-27XIBGKW-DmjxqwL0.js → infoDiagram-27XIBGKW-BF0YX70D.js} +1 -1
  38. package/dist/{ishikawaDiagram-5VMMS53U-NgCLHqQi.js → ishikawaDiagram-5VMMS53U-_itsAAn-.js} +1 -1
  39. package/dist/{kanban-definition-UXKFOSKX-CZaG-iam.js → kanban-definition-UXKFOSKX-VNW2Beqh.js} +1 -1
  40. package/dist/{label-D9_-zSg-.js → label-Qvw1E97W.js} +1 -1
  41. package/dist/main.js +8159 -6508
  42. package/dist/{mermaid-CSvw7c71.js → mermaid-CZ6FrClS.js} +35 -35
  43. package/dist/{mindmap-definition-YA3MSWOX-DJYQBDH_.js → mindmap-definition-YA3MSWOX-DR4ripvd.js} +1 -1
  44. package/dist/{number-overlay-editor-ChK-SKUk.js → number-overlay-editor-DQG-hFHT.js} +1 -1
  45. package/dist/{pegDiagram-XKGWAZYB-CHKO_dAe.js → pegDiagram-XKGWAZYB-CFr3XlGl.js} +2 -2
  46. package/dist/{pieDiagram-E7YTZNPT-DVevbMAo.js → pieDiagram-E7YTZNPT-j91XYSLY.js} +1 -1
  47. package/dist/{process-output-DxvBAeL3.js → process-output-BzloOI7F.js} +4 -4
  48. package/dist/{railroadDiagram-O6MQD6OU-Detj1kcB.js → railroadDiagram-O6MQD6OU-Cd47ZV9E.js} +2 -2
  49. package/dist/{requirementDiagram-BXWQKSXE-BLFD0T_Z.js → requirementDiagram-BXWQKSXE-eJH6gLtX.js} +1 -1
  50. package/dist/{reveal-component-CXMXeDZD.js → reveal-component-D3r3vSTK.js} +9 -9
  51. package/dist/{select-CkF_GBxO.js → select-2KOiReNY.js} +324 -324
  52. package/dist/{sequenceDiagram-WJ2MYXX4-BZBgatQV.js → sequenceDiagram-WJ2MYXX4-DdfFEIrm.js} +1 -1
  53. package/dist/{spec-Mnkn3XEr.js → spec-h69nC3SI.js} +4 -4
  54. package/dist/{stateDiagram-D77RDMKH-4BZW9-6_.js → stateDiagram-D77RDMKH-DkjDvip8.js} +2 -2
  55. package/dist/{stateDiagram-v2-MP3YSRHH-C4sKC8Iq.js → stateDiagram-v2-MP3YSRHH-DBHACnOo.js} +2 -2
  56. package/dist/{swimlanes-42K2YHIH-SL5yeGe2.js → swimlanes-42K2YHIH-ogImlOmp.js} +1 -1
  57. package/dist/{swimlanesDiagram-VR7AAH4N-DqPmAYUv.js → swimlanesDiagram-VR7AAH4N-D6x-zsci.js} +2 -2
  58. package/dist/{timeline-definition-24CTP7MA-BfXUMWkq.js → timeline-definition-24CTP7MA-DQpLtsHD.js} +1 -1
  59. package/dist/{toDate-TMubKIVL.js → toDate-CDzoofJo.js} +2 -2
  60. package/dist/{toast-Btbve3Lm.js → toast-B5t9o6s_.js} +47 -47
  61. package/dist/{tooltip-CJ4Rqasp.js → tooltip-s4zZxwKe.js} +67 -67
  62. package/dist/{use-restore-focus-CmGwRNId.js → use-restore-focus-BgDTd2tc.js} +1 -1
  63. package/dist/{useAsyncData-DjMGFzFy.js → useAsyncData-Bn8SxUqM.js} +1 -1
  64. package/dist/{useDateFormatter-eCL_SdeG.js → useDateFormatter-D3Tkfzej.js} +2 -2
  65. package/dist/{useDeepCompareMemoize-BQR5TJot.js → useDeepCompareMemoize-CC2tnPCk.js} +1 -1
  66. package/dist/{useLifecycle-C_GvKWbQ.js → useLifecycle-BJlxHqWa.js} +2 -2
  67. package/dist/{useTheme-Bns2gJZ6.js → useTheme-DMfQYmlG.js} +85 -85
  68. package/dist/{vega-component-BsVptuhz.js → vega-component-CovWHi60.js} +7 -7
  69. package/dist/{vennDiagram-4TSXK5OY-CH65znGa.js → vennDiagram-4TSXK5OY-BD-SL_vq.js} +1 -1
  70. package/dist/{wardleyDiagram-VM6X3IG4-z9pWKb2_.js → wardleyDiagram-VM6X3IG4-BDgJV4ah.js} +1 -1
  71. package/dist/{xychartDiagram-S5SC5T6Z-MxyaWjjq.js → xychartDiagram-S5SC5T6Z-1hIHN6Rl.js} +1 -1
  72. package/package.json +1 -1
  73. package/src/core/cells/__tests__/cells.test.ts +80 -48
  74. package/src/core/cells/__tests__/document.test.ts +37 -3
  75. package/src/core/cells/cells.ts +38 -34
  76. package/src/core/cells/document.ts +31 -2
  77. package/src/core/edit-app.tsx +7 -4
  78. package/src/core/islands/__tests__/bootstrap.test.ts +56 -0
  79. package/src/core/islands/__tests__/bridge.test.ts +42 -0
  80. package/src/core/islands/bootstrap.ts +24 -1
  81. package/src/core/islands/bridge.ts +46 -3
  82. package/src/core/kernel/__tests__/handlers.test.ts +7 -153
  83. package/src/core/kernel/handlers.ts +18 -59
  84. package/src/core/run-app.tsx +1 -7
  85. package/src/core/session/__tests__/useNotebookSession.hook.test.tsx +0 -6
  86. package/src/core/session/useNotebookSession.tsx +24 -35
@@ -2,18 +2,18 @@ import { a as e, i as t, n, r, t as i } from "./rolldown-runtime-Cb76FRpK.js";
2
2
  import { g as a, h as o, o as s, p as c, t as l } from "./button-BQRdqQi1.js";
3
3
  import { t as u } from "./react-sHtZdjeP.js";
4
4
  import { t as d } from "./compiler-runtime-CldRdSsv.js";
5
- import { i as f } from "./copy-icon-C1trdvVt.js";
6
- import { d as p, i as m, m as h, t as g } from "./tooltip-CJ4Rqasp.js";
7
- import { a as _, c as v, i as y, o as b, r as x, s as S, t as C } from "./useLifecycle-C_GvKWbQ.js";
8
- import { t as w } from "./check-SpOMoCLP.js";
9
- import { C as T, a as ee, b as te, c as ne, i as re, n as ie, o as ae, r as oe, s as se, t as ce } from "./select-CkF_GBxO.js";
10
- import { C as le, S as ue, b as de, g as fe, h as pe, o as me, t as E, x as he } from "./toDate-TMubKIVL.js";
5
+ import { i as f } from "./copy-icon-De584pZ4.js";
6
+ import { d as p, i as m, m as h, t as g } from "./tooltip-s4zZxwKe.js";
7
+ import { a as _, c as v, i as y, o as b, r as x, s as S, t as C } from "./useLifecycle-BJlxHqWa.js";
8
+ import { t as w } from "./check-C9Mp9eCK.js";
9
+ import { C as T, a as ee, b as te, c as ne, i as re, n as ie, o as ae, r as oe, s as se, t as ce } from "./select-2KOiReNY.js";
10
+ import { C as le, S as ue, b as de, g as fe, h as pe, o as me, t as E, x as he } from "./toDate-CDzoofJo.js";
11
11
  import { t as ge } from "./react-dom-DUmH0GXv.js";
12
12
  import { t as _e } from "./jsx-runtime-3BD1kT0s.js";
13
- import { C as ve, Ct as ye, D as be, Et as xe, F as Se, L as D, M as O, S as Ce, St as we, Tt as Te, j as Ee, xt as De } from "./use-restore-focus-CmGwRNId.js";
14
- import { c as k, n as Oe } from "./toast-Btbve3Lm.js";
13
+ import { C as ve, Et as ye, L as be, N as xe, Ot as Se, P as D, Tt as O, k as Ce, kt as we, w as Te, wt as Ee, z as De } from "./use-restore-focus-BgDTd2tc.js";
14
+ import { c as k, n as Oe } from "./toast-B5t9o6s_.js";
15
15
  import { t as ke } from "./debounce-C3jyATpc.js";
16
- import { C as Ae, D as A, S as je, _ as j, b as Me, c as Ne, g as Pe, l as Fe, t as Ie, w as Le, x as Re, y as ze } from "./useTheme-Bns2gJZ6.js";
16
+ import { C as Ae, D as A, S as je, _ as j, b as Me, c as Ne, g as Pe, l as Fe, t as Ie, w as Le, x as Re, y as ze } from "./useTheme-DMfQYmlG.js";
17
17
  import { $ as Be, At as Ve, B as He, Bt as Ue, Ct as We, E as Ge, Ft as Ke, H as qe, I as Je, L as Ye, Mt as Xe, Pt as Ze, Rt as Qe, S as $e, St as et, Tt as tt, U as nt, Vt as rt, X as it, Z as at, b as ot, et as st, f as ct, ht as lt, jt as ut, kt as dt, l as M, mt as ft, tt as pt, u as mt, ut as ht, vt as gt, w as _t, z as vt, zt as yt } from "./dist-DoE4XJBC.js";
18
18
  import { i as bt, o as xt, r as St, s as Ct, t as wt, u as Tt } from "./dist-CN8zI-XC.js";
19
19
  import { t as Et } from "./invariant-DLmrl-hA.js";
@@ -26,7 +26,7 @@ import { a as Bt, c as Vt, d as Ht, f as Ut, i as Wt, l as Gt, n as Kt, o as qt,
26
26
  import { n as Zt, r as Qt } from "./dist-CrSP_H1M.js";
27
27
  import { a as $t, i as en, n as tn, o as nn, r as rn } from "./dist-BorMD-uX.js";
28
28
  import { n as an } from "./stex-Btf3omL8.js";
29
- import { t as on } from "./useAsyncData-DjMGFzFy.js";
29
+ import { t as on } from "./useAsyncData-Bn8SxUqM.js";
30
30
  import { t as sn } from "./purify.es-DMv5zIkJ.js";
31
31
  var cn = h("activity", [["path", {
32
32
  d: "M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",
@@ -610,9 +610,9 @@ var cn = h("activity", [["path", {
610
610
  ]), P = /* @__PURE__ */ e(u(), 1), F = _e(), Hn = Object.defineProperty, Un = (e, t) => Hn(e, "name", {
611
611
  value: t,
612
612
  configurable: !0
613
- }), Wn = "Checkbox", [Gn, Kn] = Te(Wn), [qn, Jn] = Gn(Wn);
613
+ }), Wn = "Checkbox", [Gn, Kn] = Se(Wn), [qn, Jn] = Gn(Wn);
614
614
  function Yn(e) {
615
- let { __scopeCheckbox: t, checked: n, children: r, defaultChecked: i, disabled: a, form: o, name: s, onCheckedChange: c, required: l, value: u = "on", internal_do_not_use_render: d } = e, [f, p] = we({
615
+ let { __scopeCheckbox: t, checked: n, children: r, defaultChecked: i, disabled: a, form: o, name: s, onCheckedChange: c, required: l, value: u = "on", internal_do_not_use_render: d } = e, [f, p] = O({
616
616
  prop: n,
617
617
  defaultProp: i ?? !1,
618
618
  onChange: c,
@@ -649,7 +649,7 @@ var Xn = "CheckboxTrigger", Zn = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ Un
649
649
  let t = /* @__PURE__ */ Un(() => f(_.current), "reset");
650
650
  return e.addEventListener("reset", t), () => e.removeEventListener("reset", t);
651
651
  }
652
- }, [a, f]), /* @__PURE__ */ (0, F.jsx)(xe.button, {
652
+ }, [a, f]), /* @__PURE__ */ (0, F.jsx)(we.button, {
653
653
  type: "button",
654
654
  role: "checkbox",
655
655
  "aria-checked": ir(l) ? "mixed" : l,
@@ -691,9 +691,9 @@ var Xn = "CheckboxTrigger", Zn = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ Un
691
691
  });
692
692
  }, "Checkbox")), $n = "CheckboxIndicator", er = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ Un(function(e, t) {
693
693
  let { __scopeCheckbox: n, forceMount: r, ...i } = e, a = Jn($n, n);
694
- return /* @__PURE__ */ (0, F.jsx)(De, {
694
+ return /* @__PURE__ */ (0, F.jsx)(Ee, {
695
695
  present: r || ir(a.checked) || a.checked === !0,
696
- children: /* @__PURE__ */ (0, F.jsx)(xe.span, {
696
+ children: /* @__PURE__ */ (0, F.jsx)(we.span, {
697
697
  "data-state": ar(a.checked),
698
698
  "data-disabled": a.disabled ? "" : void 0,
699
699
  ...i,
@@ -727,7 +727,7 @@ var Xn = "CheckboxTrigger", Zn = /* @__PURE__ */ P.forwardRef(/* @__PURE__ */ Un
727
727
  a
728
728
  ]);
729
729
  let C = P.useRef(!ir(o) && o);
730
- return /* @__PURE__ */ (0, F.jsx)(xe.input, {
730
+ return /* @__PURE__ */ (0, F.jsx)(we.input, {
731
731
  type: "checkbox",
732
732
  "aria-hidden": !0,
733
733
  defaultChecked: s ?? C.current,
@@ -1281,7 +1281,7 @@ var oi = ai(), si = class {
1281
1281
  function di() {
1282
1282
  return { widths: [] };
1283
1283
  }
1284
- var fi = new li(ui, O({ widths: Ce(D([Ee(), be("contentWidth")]).default("contentWidth")) }), di);
1284
+ var fi = new li(ui, D({ widths: ve(De([xe(), Ce("contentWidth")]).default("contentWidth")) }), di);
1285
1285
  function pi(e, t) {
1286
1286
  let n = fi.get(ui).widths, r = Dt(n, e, t);
1287
1287
  fi.set(ui, { widths: r });
@@ -18294,8 +18294,8 @@ var Uu = new Vu(), Wu = Qe.define(), Gu = Qe.define(), Ku = yt.define({
18294
18294
  //#endregion
18295
18295
  //#region src/core/codemirror/language/utils.ts
18296
18296
  function qu(e, t, n) {
18297
- if (t === void 0) return tb(e.state);
18298
- let r = e.state.field($y), i = e.state.field(Ku), a = e.state.doc.toString();
18297
+ if (t === void 0) return nb(e.state);
18298
+ let r = e.state.field(eb), i = e.state.field(Ku), a = e.state.doc.toString();
18299
18299
  return r.transformOut(a.slice(t, n), i)[0];
18300
18300
  }
18301
18301
  function Ju(e) {
@@ -18346,7 +18346,7 @@ function Yu(e, t, n = {}) {
18346
18346
  //#region src/core/codemirror/format.ts
18347
18347
  var Xu = Qe.define();
18348
18348
  async function Zu(e, t) {
18349
- let { formatDialect: n } = await import("./esm-G4Fhsgng.js"), r = await Qu(Uu.getInternalDialect(t)), i = e.state.field($y), o = Ge(e.state);
18349
+ let { formatDialect: n } = await import("./esm-G4Fhsgng.js"), r = await Qu(Uu.getInternalDialect(t)), i = e.state.field(eb), o = Ge(e.state);
18350
18350
  if (i.type !== "sql") {
18351
18351
  a.error("Language adapter is not SQL");
18352
18352
  return;
@@ -20345,11 +20345,11 @@ function tf(e) {
20345
20345
  let t = j.get(ef);
20346
20346
  return t.sidebar.includes(e) ? "sidebar" : t.developerPanel.includes(e) ? "developer-panel" : null;
20347
20347
  }
20348
- var nf = "marimo:sidebar", rf = new ci(O({
20349
- selectedPanel: Se().optional().transform((e) => e),
20350
- isSidebarOpen: ve(),
20351
- isDeveloperPanelOpen: ve().optional().default(!1),
20352
- selectedDeveloperPanelTab: Se().optional().default("errors").transform((e) => e)
20348
+ var nf = "marimo:sidebar", rf = new ci(D({
20349
+ selectedPanel: be().optional().transform((e) => e),
20350
+ isSidebarOpen: Te(),
20351
+ isDeveloperPanelOpen: Te().optional().default(!1),
20352
+ selectedDeveloperPanelTab: be().optional().default("errors").transform((e) => e)
20353
20353
  }), af);
20354
20354
  function af() {
20355
20355
  return {
@@ -22154,7 +22154,7 @@ function Hp(e) {
22154
22154
  //#endregion
22155
22155
  //#region src/core/codemirror/lsp/utils.ts
22156
22156
  function Up(e) {
22157
- return Bp.is(e) ? j.get(Ox).inOrderIds.includes(Bp.parse(e)) : !1;
22157
+ return Bp.is(e) ? j.get(Ax).inOrderIds.includes(Bp.parse(e)) : !1;
22158
22158
  }
22159
22159
  function Wp() {
22160
22160
  return j.get(ri)?.rootUri ?? "file:///";
@@ -22617,7 +22617,7 @@ var Om = class {
22617
22617
  return om(e, t);
22618
22618
  }
22619
22619
  }, km = () => {
22620
- let e = Fx().cellHandles;
22620
+ let e = Lx().cellHandles;
22621
22621
  return Nt.mapValues(e, (e) => e.current?.editorViewOrNull);
22622
22622
  };
22623
22623
  function Am(e) {
@@ -22877,7 +22877,7 @@ var Rm = class {
22877
22877
  continue;
22878
22878
  }
22879
22879
  if (qu(t) !== r) {
22880
- let e = rb(t.state, r);
22880
+ let e = ib(t.state, r);
22881
22881
  e && t.dispatch(e), h++;
22882
22882
  }
22883
22883
  }
@@ -23139,30 +23139,33 @@ var Rm = class {
23139
23139
  OPEN: "OPEN",
23140
23140
  CLOSING: "CLOSING",
23141
23141
  CLOSED: "CLOSED"
23142
- }, Wm = A({ state: Um.NOT_STARTED });
23142
+ }, Wm = {
23143
+ KERNEL_DISCONNECTED: "KERNEL_DISCONNECTED",
23144
+ KERNEL_STARTUP_ERROR: "KERNEL_STARTUP_ERROR"
23145
+ }, Gm = A({ state: Um.NOT_STARTED });
23143
23146
  sr(null, (e, t) => t === null ? null : {
23144
23147
  phase: t.phase,
23145
23148
  logs: t.log_mode === "append" && e?.phase === t.phase ? e.logs + t.logs : t.logs
23146
23149
  });
23147
- function Gm() {
23148
- return ze(Wm, (e) => e.state === Um.OPEN);
23149
- }
23150
23150
  function Km() {
23151
- return fe() ? Gm() : Promise.resolve();
23151
+ return ze(Gm, (e) => e.state === Um.OPEN);
23152
+ }
23153
+ function qm() {
23154
+ return fe() ? Km() : Promise.resolve();
23152
23155
  }
23153
- A((e) => e(Wm).state === Um.CONNECTING), A((e) => e(Wm).state === Um.OPEN), A((e) => {
23154
- let t = e(Wm);
23156
+ A((e) => e(Gm).state === Um.CONNECTING), A((e) => e(Gm).state === Um.OPEN), A((e) => {
23157
+ let t = e(Gm);
23155
23158
  return t.state === Um.OPEN || t.state === Um.NOT_STARTED;
23156
- }), A((e) => e(Wm).state === Um.CLOSED), A((e) => e(Wm).state === Um.NOT_STARTED);
23159
+ }), A((e) => e(Gm).state === Um.CLOSED), A((e) => e(Gm).state === Um.NOT_STARTED);
23157
23160
  //#endregion
23158
23161
  //#region src/core/codemirror/lsp/log-messages.ts
23159
- var qm = /* @__PURE__ */ new Set([1, 2]);
23160
- function Jm(e, t) {
23162
+ var Jm = /* @__PURE__ */ new Set([1, 2]);
23163
+ function Ym(e, t) {
23161
23164
  if (!("method" in t) || t.method !== "window/logMessage") return;
23162
23165
  let n = t.params;
23163
- !$p(n) || typeof n.message != "string" || Dx({ logs: [{
23166
+ !$p(n) || typeof n.message != "string" || kx({ logs: [{
23164
23167
  timestamp: Date.now() / 1e3,
23165
- level: qm.has(n.type) ? "stderr" : "stdout",
23168
+ level: Jm.has(n.type) ? "stderr" : "stdout",
23166
23169
  message: n.message,
23167
23170
  source: {
23168
23171
  type: "lsp",
@@ -23172,35 +23175,35 @@ function Jm(e, t) {
23172
23175
  }
23173
23176
  //#endregion
23174
23177
  //#region src/core/codemirror/lsp/transports.ts
23175
- function Ym(e, t) {
23178
+ function Xm(e, t) {
23176
23179
  let n = me(), r = new Hm({
23177
23180
  getWsUrl: () => n.getLSPURL(e).toString(),
23178
23181
  waitForConnection: async () => {
23179
- await Gm();
23182
+ await Km();
23180
23183
  },
23181
23184
  onReconnect: t
23182
23185
  });
23183
- return r.onMessage((t) => Jm(e, t)), r;
23186
+ return r.onMessage((t) => Ym(e, t)), r;
23184
23187
  }
23185
23188
  Qe.define(), new dt();
23186
- function Xm(e) {
23189
+ function Zm(e) {
23187
23190
  return e.facet(ut.readOnly);
23188
23191
  }
23189
23192
  //#endregion
23190
23193
  //#region src/core/codemirror/placeholder/extensions.ts
23191
- function Zm(e) {
23194
+ function Qm(e) {
23192
23195
  return [gt(e), lt.of([{
23193
23196
  key: "ArrowRight",
23194
23197
  preventDefault: !0,
23195
- run: (t) => Qm(t, e)
23198
+ run: (t) => $m(t, e)
23196
23199
  }, {
23197
23200
  key: "Tab",
23198
23201
  preventDefault: !0,
23199
- run: (t) => Qm(t, e)
23202
+ run: (t) => $m(t, e)
23200
23203
  }])];
23201
23204
  }
23202
- function Qm(e, t) {
23203
- if (Xm(e.state)) return !1;
23205
+ function $m(e, t) {
23206
+ if (Zm(e.state)) return !1;
23204
23207
  let n = e.state.doc.length;
23205
23208
  return n === 0 && (e.dispatch({
23206
23209
  changes: {
@@ -23214,7 +23217,7 @@ function Qm(e, t) {
23214
23217
  }
23215
23218
  }), !0);
23216
23219
  }
23217
- function $m(e) {
23220
+ function eh(e) {
23218
23221
  let { beforeText: t, linkText: n, afterText: r, onClick: i } = e;
23219
23222
  return [gt((e) => {
23220
23223
  let a = document.createElement("span");
@@ -23237,9 +23240,9 @@ function $m(e) {
23237
23240
  }
23238
23241
  //#endregion
23239
23242
  //#region src/core/codemirror/language/languages/python.ts
23240
- var eh = Pt((e) => {
23243
+ var th = Pt((e) => {
23241
23244
  let t, n = {
23242
- transport: Ym("pylsp", async () => {
23245
+ transport: Xm("pylsp", async () => {
23243
23246
  await t?.();
23244
23247
  }),
23245
23248
  rootUri: Wp(),
@@ -23284,9 +23287,9 @@ var eh = Pt((e) => {
23284
23287
  }
23285
23288
  } } }, c = new Rm(new Dc({ ...n }), s);
23286
23289
  return t = () => c.resyncAllDocuments(), c;
23287
- }), th = Pt((e) => {
23290
+ }), nh = Pt((e) => {
23288
23291
  let t, n = new Rm(new Dc({
23289
- transport: Ym("ty", async () => {
23292
+ transport: Xm("ty", async () => {
23290
23293
  await t?.();
23291
23294
  }),
23292
23295
  rootUri: Wp(),
@@ -23294,9 +23297,9 @@ var eh = Pt((e) => {
23294
23297
  getWorkspaceConfiguration: () => [{ disableLanguageServices: !0 }]
23295
23298
  }), {});
23296
23299
  return t = () => n.resyncAllDocuments(), n;
23297
- }), nh = Pt((e) => {
23300
+ }), rh = Pt((e) => {
23298
23301
  let t, n = new Rm(new Dc({
23299
- transport: Ym("pyrefly", async () => {
23302
+ transport: Xm("pyrefly", async () => {
23300
23303
  await t?.();
23301
23304
  }),
23302
23305
  rootUri: Wp(),
@@ -23304,16 +23307,16 @@ var eh = Pt((e) => {
23304
23307
  initializationOptions: { pyrefly: { displayTypeErrors: e.diagnostics?.enabled ?? !1 ? "force-on" : "force-off" } }
23305
23308
  }), {});
23306
23309
  return t = () => n.resyncAllDocuments(), n;
23307
- }), rh = Pt((e) => {
23310
+ }), ih = Pt((e) => {
23308
23311
  let t, n = new Rm(new Dc({
23309
- transport: Ym("basedpyright", async () => {
23312
+ transport: Xm("basedpyright", async () => {
23310
23313
  await t?.();
23311
23314
  }),
23312
23315
  rootUri: Wp(),
23313
23316
  workspaceFolders: Gp()
23314
23317
  }), {});
23315
23318
  return t = () => n.resyncAllDocuments(), n;
23316
- }), ih = class {
23319
+ }), ah = class {
23317
23320
  parser = new Nd();
23318
23321
  type = "python";
23319
23322
  defaultCode = this.parser.defaultCode;
@@ -23341,7 +23344,7 @@ var eh = Pt((e) => {
23341
23344
  activateOnTyping: t.activate_on_typing,
23342
23345
  closeOnBlur: !1
23343
23346
  }, o = { hideOnChange: !0 }, s = [];
23344
- i?.pylsp?.enabled && ff("pylsp") && s.push(eh(i)), i?.ty?.enabled && ff("ty") && s.push(th(i)), i?.pyrefly?.enabled && ff("pyrefly") && s.push(nh(i)), i?.basedpyright?.enabled && ff("basedpyright") && s.push(rh(i));
23347
+ i?.pylsp?.enabled && ff("pylsp") && s.push(th(i)), i?.ty?.enabled && ff("ty") && s.push(nh(i)), i?.pyrefly?.enabled && ff("pyrefly") && s.push(rh(i)), i?.basedpyright?.enabled && ff("basedpyright") && s.push(ih(i));
23345
23348
  let c = t.signature_hint_on_typing, l = c ? /(\w+|\w+\.|\/)$/ : /(\w+|\w+\.|\(|\/|,)$/;
23346
23349
  if (s.length > 0) {
23347
23350
  let t = s.length === 1 ? s[0] : new Yp(s), u = (e) => {
@@ -23376,13 +23379,13 @@ var eh = Pt((e) => {
23376
23379
  override: [$f]
23377
23380
  }), Qf];
23378
23381
  })(),
23379
- sh(),
23380
- ah(r)
23382
+ ch(),
23383
+ oh(r)
23381
23384
  ];
23382
23385
  }
23383
23386
  };
23384
- function ah(e) {
23385
- return e === "marimo-import" ? Ze.highest(Zm("import marimo as mo")) : e === "ai" ? $m({
23387
+ function oh(e) {
23388
+ return e === "marimo-import" ? Ze.highest(Qm("import marimo as mo")) : e === "ai" ? eh({
23386
23389
  beforeText: "Start coding or ",
23387
23390
  linkText: "generate",
23388
23391
  afterText: " with AI.",
@@ -23391,44 +23394,44 @@ function ah(e) {
23391
23394
  }
23392
23395
  }) : [];
23393
23396
  }
23394
- var oh = $t.configure({ props: [_t.add({
23397
+ var sh = $t.configure({ props: [_t.add({
23395
23398
  ParenthesizedExpression: $e,
23396
23399
  ArgList: $e
23397
23400
  })] });
23398
- function sh() {
23399
- return new mt(oh, [oh.data.of({ autocomplete: rn }), oh.data.of({ autocomplete: tn })]);
23401
+ function ch() {
23402
+ return new mt(sh, [sh.data.of({ autocomplete: rn }), sh.data.of({ autocomplete: tn })]);
23400
23403
  }
23401
23404
  //#endregion
23402
23405
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/namespace-utils.js
23403
- function ch(e) {
23404
- return typeof e == "object" && !Array.isArray(e) && !lh(e);
23405
- }
23406
23406
  function lh(e) {
23407
+ return typeof e == "object" && !Array.isArray(e) && !uh(e);
23408
+ }
23409
+ function uh(e) {
23407
23410
  if (typeof e != "object" || Array.isArray(e) || !("self" in e) || !("children" in e)) return !1;
23408
23411
  let t = e.self;
23409
23412
  return typeof t == "object" && !!t && !Array.isArray(t) && typeof t.label == "string";
23410
23413
  }
23411
- function uh(e) {
23414
+ function dh(e) {
23412
23415
  return Array.isArray(e);
23413
23416
  }
23414
- function dh(e, t, n, r) {
23417
+ function fh(e, t, n, r) {
23415
23418
  let i = e.length;
23416
- if (t === "string" || t === "completion" && r && uh(r)) return "column";
23419
+ if (t === "string" || t === "completion" && r && dh(r)) return "column";
23417
23420
  if (t === "namespace" && n) {
23418
- if (uh(n)) return "table";
23419
- if (ch(n)) return Object.values(n).some((e) => uh(e) || lh(e) && uh(e.children)) ? i <= 1 ? "database" : "schema" : i === 0 ? "database" : "namespace";
23421
+ if (dh(n)) return "table";
23422
+ if (lh(n)) return Object.values(n).some((e) => dh(e) || uh(e) && dh(e.children)) ? i <= 1 ? "database" : "schema" : i === 0 ? "database" : "namespace";
23420
23423
  }
23421
- if (t === "completion" && n) return uh(n) ? "table" : (ch(n) && Object.values(n).some((e) => uh(e) || lh(e) && uh(e.children)), i <= 1 ? "database" : "schema");
23424
+ if (t === "completion" && n) return dh(n) ? "table" : (lh(n) && Object.values(n).some((e) => dh(e) || uh(e) && dh(e.children)), i <= 1 ? "database" : "schema");
23422
23425
  switch (i) {
23423
23426
  case 0: return "database";
23424
23427
  case 1: return "schema";
23425
23428
  default: return "namespace";
23426
23429
  }
23427
23430
  }
23428
- function fh(e, t, n = {}) {
23431
+ function ph(e, t, n = {}) {
23429
23432
  let { maxDepth: r = 10 } = n;
23430
- if ((typeof t == "string" ? t === "" : t.length === 0) && lh(e)) {
23431
- let t = dh([], "completion", e.children);
23433
+ if ((typeof t == "string" ? t === "" : t.length === 0) && uh(e)) {
23434
+ let t = fh([], "completion", e.children);
23432
23435
  return {
23433
23436
  completion: e.self,
23434
23437
  path: [],
@@ -23438,12 +23441,12 @@ function fh(e, t, n = {}) {
23438
23441
  };
23439
23442
  }
23440
23443
  let i = (typeof t == "string" ? t.split(".") : t).filter((e) => e.length > 0);
23441
- return i.length === 0 || i.length > r ? null : ph(e, i, [], n);
23444
+ return i.length === 0 || i.length > r ? null : mh(e, i, [], n);
23442
23445
  }
23443
- function ph(e, t, n, r, i) {
23446
+ function mh(e, t, n, r, i) {
23444
23447
  if (t.length === 0) {
23445
- if (lh(e)) {
23446
- let t = dh(n, "completion", e.children, i);
23448
+ if (uh(e)) {
23449
+ let t = fh(n, "completion", e.children, i);
23447
23450
  return {
23448
23451
  completion: e.self,
23449
23452
  path: n,
@@ -23455,23 +23458,23 @@ function ph(e, t, n, r, i) {
23455
23458
  return {
23456
23459
  path: n,
23457
23460
  type: "namespace",
23458
- semanticType: dh(n, "namespace", e, i),
23461
+ semanticType: fh(n, "namespace", e, i),
23459
23462
  namespace: e
23460
23463
  };
23461
23464
  }
23462
23465
  let [a, ...o] = t, { caseSensitive: s = !1 } = r;
23463
23466
  if (!a) return null;
23464
- if (ch(e)) {
23467
+ if (lh(e)) {
23465
23468
  let t = s ? Object.keys(e).find((e) => e === a) : Object.keys(e).find((e) => e.toLowerCase() === a.toLowerCase());
23466
23469
  if (t) {
23467
23470
  let i = e[t];
23468
- if (i) return ph(i, o, [...n, t], r, e);
23471
+ if (i) return mh(i, o, [...n, t], r, e);
23469
23472
  }
23470
- } else if (lh(e)) return ph(e.children, t, n, r, e);
23471
- else if (uh(e)) {
23473
+ } else if (uh(e)) return mh(e.children, t, n, r, e);
23474
+ else if (dh(e)) {
23472
23475
  for (let t of e) if (typeof t == "string") {
23473
23476
  if ((s ? t === a : t.toLowerCase() === a.toLowerCase()) && o.length === 0) {
23474
- let r = dh([...n, t], "string", void 0, e);
23477
+ let r = fh([...n, t], "string", void 0, e);
23475
23478
  return {
23476
23479
  value: t,
23477
23480
  path: [...n, t],
@@ -23480,7 +23483,7 @@ function ph(e, t, n, r, i) {
23480
23483
  };
23481
23484
  }
23482
23485
  } else if ((s ? t.label === a : t.label.toLowerCase() === a.toLowerCase()) && o.length === 0) {
23483
- let r = dh([...n, t.label], "completion", void 0, e);
23486
+ let r = fh([...n, t.label], "completion", void 0, e);
23484
23487
  return {
23485
23488
  completion: t,
23486
23489
  path: [...n, t.label],
@@ -23491,20 +23494,20 @@ function ph(e, t, n, r, i) {
23491
23494
  }
23492
23495
  return null;
23493
23496
  }
23494
- function mh(e, t, n = {}) {
23497
+ function hh(e, t, n = {}) {
23495
23498
  let r = [];
23496
23499
  if (t.includes(".")) {
23497
- let r = t.lastIndexOf("."), i = t.substring(0, r), a = t.substring(r + 1), o = fh(e, i, n);
23498
- if (o?.namespace) return hh(o.namespace, a, o.path, n);
23499
- } else return hh(e, t, [], n);
23500
+ let r = t.lastIndexOf("."), i = t.substring(0, r), a = t.substring(r + 1), o = ph(e, i, n);
23501
+ if (o?.namespace) return gh(o.namespace, a, o.path, n);
23502
+ } else return gh(e, t, [], n);
23500
23503
  return r;
23501
23504
  }
23502
- function hh(e, t, n, r) {
23505
+ function gh(e, t, n, r) {
23503
23506
  let i = [], { caseSensitive: a = !1, allowPartialMatch: o = !0 } = r;
23504
- if (ch(e)) {
23507
+ if (lh(e)) {
23505
23508
  for (let [r, s] of Object.entries(e)) if (o ? a ? r.startsWith(t) : r.toLowerCase().startsWith(t.toLowerCase()) : a ? r === t : r.toLowerCase() === t.toLowerCase()) {
23506
- if (lh(s)) {
23507
- let t = dh([...n, r], "completion", s.children, e);
23509
+ if (uh(s)) {
23510
+ let t = fh([...n, r], "completion", s.children, e);
23508
23511
  i.push({
23509
23512
  completion: s.self,
23510
23513
  path: [...n, r],
@@ -23513,7 +23516,7 @@ function hh(e, t, n, r) {
23513
23516
  namespace: s.children
23514
23517
  });
23515
23518
  } else {
23516
- let t = dh([...n, r], "namespace", s, e);
23519
+ let t = fh([...n, r], "namespace", s, e);
23517
23520
  i.push({
23518
23521
  path: [...n, r],
23519
23522
  type: "namespace",
@@ -23522,9 +23525,9 @@ function hh(e, t, n, r) {
23522
23525
  });
23523
23526
  }
23524
23527
  }
23525
- } else if (lh(e)) {
23528
+ } else if (uh(e)) {
23526
23529
  if (o ? a ? e.self.label.startsWith(t) : e.self.label.toLowerCase().startsWith(t.toLowerCase()) : a ? e.self.label === t : e.self.label.toLowerCase() === t.toLowerCase()) {
23527
- let t = dh([...n, e.self.label], "completion", e.children);
23530
+ let t = fh([...n, e.self.label], "completion", e.children);
23528
23531
  i.push({
23529
23532
  completion: e.self,
23530
23533
  path: [...n, e.self.label],
@@ -23533,11 +23536,11 @@ function hh(e, t, n, r) {
23533
23536
  namespace: e.children
23534
23537
  });
23535
23538
  }
23536
- i.push(...hh(e.children, t, n, r));
23537
- } else if (uh(e)) {
23539
+ i.push(...gh(e.children, t, n, r));
23540
+ } else if (dh(e)) {
23538
23541
  for (let r of e) if (typeof r == "string") {
23539
23542
  if (o ? a ? r.startsWith(t) : r.toLowerCase().startsWith(t.toLowerCase()) : a ? r === t : r.toLowerCase() === t.toLowerCase()) {
23540
- let t = dh([...n, r], "string", void 0, e);
23543
+ let t = fh([...n, r], "string", void 0, e);
23541
23544
  i.push({
23542
23545
  value: r,
23543
23546
  path: [...n, r],
@@ -23546,7 +23549,7 @@ function hh(e, t, n, r) {
23546
23549
  });
23547
23550
  }
23548
23551
  } else if (o ? a ? r.label.startsWith(t) : r.label.toLowerCase().startsWith(t.toLowerCase()) : a ? r.label === t : r.label.toLowerCase() === t.toLowerCase()) {
23549
- let t = dh([...n, r.label], "completion", void 0, e);
23552
+ let t = fh([...n, r.label], "completion", void 0, e);
23550
23553
  i.push({
23551
23554
  completion: r,
23552
23555
  path: [...n, r.label],
@@ -23557,49 +23560,49 @@ function hh(e, t, n, r) {
23557
23560
  }
23558
23561
  return i;
23559
23562
  }
23560
- function gh(e, t, n = {}) {
23563
+ function _h(e, t, n = {}) {
23561
23564
  let r = [], { maxDepth: i = 10 } = n;
23562
- _h(e, [], r, i);
23565
+ vh(e, [], r, i);
23563
23566
  let { caseSensitive: a = !1 } = n;
23564
23567
  return r.filter((e) => e.path.some((e) => a ? e === t : e.toLowerCase() === t.toLowerCase())).sort((e, n) => {
23565
23568
  let r = a ? e.path[e.path.length - 1] === t : e.path[e.path.length - 1]?.toLowerCase() === t.toLowerCase(), i = a ? n.path[n.path.length - 1] === t : n.path[n.path.length - 1]?.toLowerCase() === t.toLowerCase();
23566
23569
  return r && !i ? -1 : !r && i ? 1 : e.path.length - n.path.length;
23567
23570
  });
23568
23571
  }
23569
- function _h(e, t, n, r) {
23572
+ function vh(e, t, n, r) {
23570
23573
  if (!(t.length >= r)) {
23571
- if (ch(e)) for (let [i, a] of Object.entries(e)) {
23574
+ if (lh(e)) for (let [i, a] of Object.entries(e)) {
23572
23575
  let o = [...t, i];
23573
- if (lh(a)) {
23574
- let t = dh(o, "completion", a.children, e);
23576
+ if (uh(a)) {
23577
+ let t = fh(o, "completion", a.children, e);
23575
23578
  n.push({
23576
23579
  completion: a.self,
23577
23580
  path: o,
23578
23581
  type: "completion",
23579
23582
  semanticType: t,
23580
23583
  namespace: a.children
23581
- }), _h(a.children, o, n, r);
23584
+ }), vh(a.children, o, n, r);
23582
23585
  } else {
23583
- let t = dh(o, "namespace", a, e);
23586
+ let t = fh(o, "namespace", a, e);
23584
23587
  n.push({
23585
23588
  path: o,
23586
23589
  type: "namespace",
23587
23590
  semanticType: t,
23588
23591
  namespace: a
23589
- }), _h(a, o, n, r);
23592
+ }), vh(a, o, n, r);
23590
23593
  }
23591
23594
  }
23592
- else if (lh(e)) {
23593
- let i = dh(t, "completion", e.children);
23595
+ else if (uh(e)) {
23596
+ let i = fh(t, "completion", e.children);
23594
23597
  n.push({
23595
23598
  completion: e.self,
23596
23599
  path: t,
23597
23600
  type: "completion",
23598
23601
  semanticType: i,
23599
23602
  namespace: e.children
23600
- }), _h(e.children, t, n, r);
23601
- } else if (uh(e)) for (let r of e) if (typeof r == "string") {
23602
- let i = dh([...t, r], "string", void 0, e);
23603
+ }), vh(e.children, t, n, r);
23604
+ } else if (dh(e)) for (let r of e) if (typeof r == "string") {
23605
+ let i = fh([...t, r], "string", void 0, e);
23603
23606
  n.push({
23604
23607
  value: r,
23605
23608
  path: [...t, r],
@@ -23607,7 +23610,7 @@ function _h(e, t, n, r) {
23607
23610
  semanticType: i
23608
23611
  });
23609
23612
  } else {
23610
- let i = dh([...t, r.label], "completion", void 0, e);
23613
+ let i = fh([...t, r.label], "completion", void 0, e);
23611
23614
  n.push({
23612
23615
  completion: r,
23613
23616
  path: [...t, r.label],
@@ -23617,48 +23620,48 @@ function _h(e, t, n, r) {
23617
23620
  }
23618
23621
  }
23619
23622
  }
23620
- function vh(e, t, n = {}) {
23621
- let { enableFuzzySearch: r = !1 } = n, i = fh(e, t, n);
23623
+ function yh(e, t, n = {}) {
23624
+ let { enableFuzzySearch: r = !1 } = n, i = ph(e, t, n);
23622
23625
  if (i) return i;
23623
- let a = mh(e, t, n);
23626
+ let a = hh(e, t, n);
23624
23627
  if (a.length > 0) return a[0] || null;
23625
23628
  if (r) {
23626
- let r = gh(e, t, n);
23629
+ let r = _h(e, t, n);
23627
23630
  if (r.length > 0) return r[0] || null;
23628
23631
  }
23629
23632
  return null;
23630
23633
  }
23631
23634
  //#endregion
23632
23635
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/schema-facet.js
23633
- var yh = Xe.define({ combine: (e) => e[0] ?? null });
23634
- function bh(e, t) {
23635
- let n = e ?? t.state.facet(yh);
23636
+ var bh = Xe.define({ combine: (e) => e[0] ?? null });
23637
+ function xh(e, t) {
23638
+ let n = e ?? t.state.facet(bh);
23636
23639
  return n == null ? null : typeof n == "function" ? n(t) : n;
23637
23640
  }
23638
23641
  //#endregion
23639
23642
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/completion-utils.js
23640
- function xh(e, t) {
23641
- let n = e ?? t.state.facet(yh);
23643
+ function Sh(e, t) {
23644
+ let n = e ?? t.state.facet(bh);
23642
23645
  return n == null ? null : typeof n == "function" ? t.view ? n(t.view) : null : n;
23643
23646
  }
23644
- function Sh(e) {
23647
+ function Ch(e) {
23645
23648
  if (e == null) return null;
23646
- let t = lh(e) ? e.children : e;
23647
- return uh(t) ? t : null;
23649
+ let t = uh(e) ? e.children : e;
23650
+ return dh(t) ? t : null;
23648
23651
  }
23649
- function Ch(e, t) {
23650
- let n = Sh(fh(e, t, { caseSensitive: !1 })?.namespace);
23652
+ function wh(e, t) {
23653
+ let n = Ch(ph(e, t, { caseSensitive: !1 })?.namespace);
23651
23654
  if (n) return n;
23652
23655
  let r = (typeof t == "string" ? t.split(".") : t).map((e) => e.toLowerCase()), i = r[r.length - 1];
23653
23656
  if (!i) return null;
23654
- let a = gh(e, i).filter((e) => {
23655
- if (Sh(e.namespace) === null || e.path.length < r.length) return !1;
23657
+ let a = _h(e, i).filter((e) => {
23658
+ if (Ch(e.namespace) === null || e.path.length < r.length) return !1;
23656
23659
  let t = e.path.slice(-r.length).map((e) => e.toLowerCase());
23657
23660
  return r.every((e, n) => t[n] === e);
23658
23661
  });
23659
- return a.length === 1 ? Sh(a[0]?.namespace) : null;
23662
+ return a.length === 1 ? Ch(a[0]?.namespace) : null;
23660
23663
  }
23661
- function wh(e, t, n) {
23664
+ function Th(e, t, n) {
23662
23665
  if (typeof e == "string") return n === void 0 ? {
23663
23666
  label: e,
23664
23667
  type: "property",
@@ -23678,17 +23681,17 @@ function wh(e, t, n) {
23678
23681
  }
23679
23682
  //#endregion
23680
23683
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/utils.js
23681
- var Th = (e) => {
23684
+ var Eh = (e) => {
23682
23685
  let t;
23683
23686
  return async () => (t ||= e(), await t);
23684
- }, Eh = class {
23687
+ }, Dh = class {
23685
23688
  opts;
23686
23689
  parser = null;
23687
23690
  offsetRecord = {};
23688
23691
  constructor(e = {}) {
23689
23692
  this.opts = e;
23690
23693
  }
23691
- getParser = Th(async () => {
23694
+ getParser = Eh(async () => {
23692
23695
  if (this.parser) return this.parser;
23693
23696
  let t = await import("./node-sql-parser-BiZOJ-FS.js").then((t) => /* @__PURE__ */ e(t.default, 1)), { Parser: n } = t.default || t;
23694
23697
  return this.parser = new n(), this.parser;
@@ -23712,13 +23715,13 @@ var Th = (e) => {
23712
23715
  }
23713
23716
  async sanitizeSql(e, t) {
23714
23717
  if (t?.ignoreBrackets) {
23715
- let { sql: t, offsetRecord: n } = kh(e);
23718
+ let { sql: t, offsetRecord: n } = Ah(e);
23716
23719
  return this.offsetRecord = n, t;
23717
23720
  }
23718
23721
  return e;
23719
23722
  }
23720
23723
  async parseWithDuckDBSupport(e, t) {
23721
- let n = await this.getParser(), r = Dh(e).trimStart().toLowerCase();
23724
+ let n = await this.getParser(), r = Oh(e).trimStart().toLowerCase();
23722
23725
  if (r.startsWith("from") || r.includes("macro")) return {
23723
23726
  success: !0,
23724
23727
  errors: []
@@ -23796,24 +23799,24 @@ var Th = (e) => {
23796
23799
  }
23797
23800
  }
23798
23801
  };
23799
- function Dh(e, t = ["/*", "--"]) {
23802
+ function Oh(e, t = ["/*", "--"]) {
23800
23803
  let n = [];
23801
23804
  if (t.includes("/*") && n.push("/\\*[\\s\\S]*?\\*/"), t.includes("--") && n.push("--[^\\n]*"), n.length === 0) return e;
23802
23805
  let r = RegExp(`^\\s*(${n.join("|")})\\s*`, ""), i = e, a = "";
23803
23806
  for (; i !== a;) a = i, i = i.replace(r, "");
23804
23807
  return i;
23805
23808
  }
23806
- var Oh = 2;
23807
- function kh(e) {
23809
+ var kh = 2;
23810
+ function Ah(e) {
23808
23811
  let t = {};
23809
23812
  return {
23810
- sql: e.replace(/("[^"\\]*(?:\\.[^"\\]*)*")|('[^'\\]*(?:\\.[^'\\]*)*')|(\{[^}]*\})/g, (e, n, r, i, a) => n || r ? e : i ? (t[a] = Oh, `'${i}'`) : e),
23813
+ sql: e.replace(/("[^"\\]*(?:\\.[^"\\]*)*")|('[^'\\]*(?:\\.[^'\\]*)*')|(\{[^}]*\})/g, (e, n, r, i, a) => n || r ? e : i ? (t[a] = kh, `'${i}'`) : e),
23811
23814
  offsetRecord: t
23812
23815
  };
23813
23816
  }
23814
23817
  //#endregion
23815
23818
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/query-context.js
23816
- function Ah() {
23819
+ function jh() {
23817
23820
  return {
23818
23821
  tables: [],
23819
23822
  ctes: [],
@@ -23821,79 +23824,79 @@ function Ah() {
23821
23824
  selectAliases: []
23822
23825
  };
23823
23826
  }
23824
- function jh(e) {
23827
+ function Mh(e) {
23825
23828
  return typeof e == "object" && !!e && !Array.isArray(e);
23826
23829
  }
23827
- function Mh(e) {
23830
+ function Nh(e) {
23828
23831
  return Array.isArray(e) ? e : [];
23829
23832
  }
23830
- function Nh(e) {
23833
+ function Ph(e) {
23831
23834
  let t = e[0], n = e[e.length - 1];
23832
23835
  return e.length >= 2 && (t === "\"" && n === "\"" || t === "'" && n === "'" || t === "`" && n === "`" || t === "[" && n === "]") ? e.slice(1, -1) : e;
23833
23836
  }
23834
- function Ph(e) {
23835
- return typeof e == "string" ? e : jh(e) && typeof e.value == "string" ? e.value : null;
23836
- }
23837
23837
  function Fh(e) {
23838
- if (!jh(e) || e.type !== "column_ref") return null;
23838
+ return typeof e == "string" ? e : Mh(e) && typeof e.value == "string" ? e.value : null;
23839
+ }
23840
+ function Ih(e) {
23841
+ if (!Mh(e) || e.type !== "column_ref") return null;
23839
23842
  let t = e.column;
23840
23843
  if (typeof t == "string") return t;
23841
- if (jh(t)) {
23842
- let e = t.expr, n = jh(e) ? e.value : t.value;
23844
+ if (Mh(t)) {
23845
+ let e = t.expr, n = Mh(e) ? e.value : t.value;
23843
23846
  if (typeof n == "string") return n;
23844
23847
  }
23845
23848
  return null;
23846
23849
  }
23847
- function Ih(e) {
23848
- let t = Mh(e.columns).map((e) => Ph(e) ?? Fh(e) ?? Ph(e.column)).filter((e) => typeof e == "string");
23850
+ function Lh(e) {
23851
+ let t = Nh(e.columns).map((e) => Fh(e) ?? Ih(e) ?? Fh(e.column)).filter((e) => typeof e == "string");
23849
23852
  if (t.length > 0) return t;
23850
- let n = e.stmt, r = jh(n) ? n.ast ?? n : null;
23851
- if (!jh(r) || r.type !== "select") return [];
23853
+ let n = e.stmt, r = Mh(n) ? n.ast ?? n : null;
23854
+ if (!Mh(r) || r.type !== "select") return [];
23852
23855
  let i = [];
23853
- for (let e of Mh(r.columns)) if (typeof e.as == "string") i.push(e.as);
23856
+ for (let e of Nh(r.columns)) if (typeof e.as == "string") i.push(e.as);
23854
23857
  else {
23855
- let t = Fh(e.expr);
23858
+ let t = Ih(e.expr);
23856
23859
  t && t !== "*" && i.push(t);
23857
23860
  }
23858
23861
  return i;
23859
23862
  }
23860
- function Lh(e, t) {
23863
+ function Rh(e, t) {
23861
23864
  if (typeof e.table != "string" || e.table.length === 0) return;
23862
23865
  let n = [
23863
23866
  e.db ?? e.catalog,
23864
23867
  e.schema,
23865
23868
  e.table
23866
- ].filter((e) => typeof e == "string" && e.length > 0).map(Nh), r = typeof e.as == "string" ? Nh(e.as) : void 0, i = `${n.join(".").toLowerCase()}::${r?.toLowerCase() ?? ""}`;
23869
+ ].filter((e) => typeof e == "string" && e.length > 0).map(Ph), r = typeof e.as == "string" ? Ph(e.as) : void 0, i = `${n.join(".").toLowerCase()}::${r?.toLowerCase() ?? ""}`;
23867
23870
  t.seenTables.has(i) || (t.seenTables.add(i), t.tables.push({
23868
- name: Nh(e.table),
23871
+ name: Ph(e.table),
23869
23872
  path: n,
23870
23873
  ...r ? { alias: r } : {}
23871
23874
  }));
23872
23875
  }
23873
- function Rh(e, t, n) {
23876
+ function zh(e, t, n) {
23874
23877
  if (Array.isArray(e)) {
23875
- for (let r of e) Rh(r, t, n);
23878
+ for (let r of e) zh(r, t, n);
23876
23879
  return;
23877
23880
  }
23878
- if (!(!jh(e) || n.has(e))) {
23881
+ if (!(!Mh(e) || n.has(e))) {
23879
23882
  n.add(e);
23880
- for (let n of Mh(e.with)) {
23881
- let e = Ph(n.name);
23883
+ for (let n of Nh(e.with)) {
23884
+ let e = Fh(n.name);
23882
23885
  e && !t.seenCtes.has(e.toLowerCase()) && (t.seenCtes.add(e.toLowerCase()), t.ctes.push({
23883
- name: Nh(e),
23884
- columns: Ih(n).map(Nh),
23886
+ name: Ph(e),
23887
+ columns: Lh(n).map(Ph),
23885
23888
  from: -1,
23886
23889
  to: -1
23887
23890
  }));
23888
23891
  }
23889
- for (let n of ["from", "table"]) for (let r of Mh(e[n])) Lh(r, t);
23890
- for (let [r, i] of Object.entries(e)) r !== "loc" && r !== "tableList" && r !== "columnList" && Rh(i, t, n);
23892
+ for (let n of ["from", "table"]) for (let r of Nh(e[n])) Rh(r, t);
23893
+ for (let [r, i] of Object.entries(e)) r !== "loc" && r !== "tableList" && r !== "columnList" && zh(i, t, n);
23891
23894
  }
23892
23895
  }
23893
- function zh(e, t) {
23894
- if (e.type === "select") for (let n of Mh(e.columns)) typeof n.as == "string" && t.selectAliases.push(Nh(n.as));
23895
- }
23896
23896
  function Bh(e, t) {
23897
+ if (e.type === "select") for (let n of Nh(e.columns)) typeof n.as == "string" && t.selectAliases.push(Ph(n.as));
23898
+ }
23899
+ function Vh(e, t) {
23897
23900
  let n = t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), r = `(?:"${n}"|\`${n}\`|\\[${n}\\]|\\b${n})`, i = RegExp(`(${r})\\s*(?:\\([^)]*\\)\\s*)?AS\\s*\\(`, "i").exec(e);
23898
23901
  return !i || i.index < 0 || !i[1] ? {
23899
23902
  from: -1,
@@ -23903,8 +23906,8 @@ function Bh(e, t) {
23903
23906
  to: i.index + i[1].length
23904
23907
  };
23905
23908
  }
23906
- var Vh = /* @__PURE__ */ new Set(/* @__PURE__ */ "as.on.using.where.join.inner.left.right.full.cross.outer.natural.lateral.group.order.limit.offset.having.union.intersect.except.select.set.values.when.then.and.or.not.in.is.asc.desc.fetch.window.qualify.returning.with".split(".")), Hh = String.raw`(?:[\w$]+|"[^"]+"|\`[^\`]+\`|\[[^\]]+\])`, Uh = `(?!(?:${[...Vh].join("|")})\\b)`, Wh = new RegExp(String.raw`\b(?:from|join)\s+(${Hh}(?:\.${Hh})*)(?:\s+(?:as\s+)?${Uh}(${Hh}))?`, "gi");
23907
- function Gh(e) {
23909
+ var Hh = /* @__PURE__ */ new Set(/* @__PURE__ */ "as.on.using.where.join.inner.left.right.full.cross.outer.natural.lateral.group.order.limit.offset.having.union.intersect.except.select.set.values.when.then.and.or.not.in.is.asc.desc.fetch.window.qualify.returning.with".split(".")), Uh = String.raw`(?:[\w$]+|"[^"]+"|\`[^\`]+\`|\[[^\]]+\])`, Wh = `(?!(?:${[...Hh].join("|")})\\b)`, Gh = new RegExp(String.raw`\b(?:from|join)\s+(${Uh}(?:\.${Uh})*)(?:\s+(?:as\s+)?${Wh}(${Uh}))?`, "gi");
23910
+ function Kh(e) {
23908
23911
  let t = e.split(""), n = 0;
23909
23912
  for (; n < e.length;) {
23910
23913
  let r = e[n], i = e[n + 1];
@@ -23941,45 +23944,45 @@ function Gh(e) {
23941
23944
  }
23942
23945
  return t.join("");
23943
23946
  }
23944
- function Kh(e) {
23947
+ function qh(e) {
23945
23948
  let t = {
23946
23949
  tables: [],
23947
23950
  ctes: [],
23948
23951
  selectAliases: [],
23949
23952
  seenTables: /* @__PURE__ */ new Set(),
23950
23953
  seenCtes: /* @__PURE__ */ new Set()
23951
- }, n = Gh(e);
23952
- qh(n, t), Wh.lastIndex = 0;
23953
- let r = Wh.exec(n);
23954
+ }, n = Kh(e);
23955
+ Jh(n, t), Gh.lastIndex = 0;
23956
+ let r = Gh.exec(n);
23954
23957
  for (; r !== null;) {
23955
23958
  let e = r[1], i = r[2];
23956
23959
  if (e) {
23957
- let n = e.split(".").map(Nh), r = n[n.length - 1] ?? "", a = i && !Vh.has(i.toLowerCase()) ? Nh(i) : void 0, o = `${n.join(".").toLowerCase()}::${a?.toLowerCase() ?? ""}`;
23960
+ let n = e.split(".").map(Ph), r = n[n.length - 1] ?? "", a = i && !Hh.has(i.toLowerCase()) ? Ph(i) : void 0, o = `${n.join(".").toLowerCase()}::${a?.toLowerCase() ?? ""}`;
23958
23961
  r && !t.seenTables.has(o) && (t.seenTables.add(o), t.tables.push({
23959
23962
  name: r,
23960
23963
  path: n,
23961
23964
  ...a ? { alias: a } : {}
23962
23965
  }));
23963
23966
  }
23964
- r = Wh.exec(n);
23967
+ r = Gh.exec(n);
23965
23968
  }
23966
- return Xh(t);
23969
+ return Zh(t);
23967
23970
  }
23968
- function qh(e, t) {
23969
- let n = /\bWITH\s+(?:RECURSIVE\s+)?/gi, r = new RegExp(String.raw`^(${Hh})\s*(?:\(([^)]*)\)\s*)?AS\s*\(`, "i"), i = n.exec(e);
23971
+ function Jh(e, t) {
23972
+ let n = /\bWITH\s+(?:RECURSIVE\s+)?/gi, r = new RegExp(String.raw`^(${Uh})\s*(?:\(([^)]*)\)\s*)?AS\s*\(`, "i"), i = n.exec(e);
23970
23973
  for (; i !== null;) {
23971
23974
  let a = i.index + i[0].length;
23972
23975
  for (;;) {
23973
- let n = r.exec(e.slice(a)), i = n?.[1], o = i ? Nh(i) : void 0;
23976
+ let n = r.exec(e.slice(a)), i = n?.[1], o = i ? Ph(i) : void 0;
23974
23977
  if (!n || !i || !o) break;
23975
23978
  let s = a + n[0].length, c = s, l = 1;
23976
23979
  for (; c < e.length && l > 0;) e[c] === "(" ? l++ : e[c] === ")" && l--, c++;
23977
23980
  if (!t.seenCtes.has(o.toLowerCase())) {
23978
23981
  t.seenCtes.add(o.toLowerCase());
23979
- let r = (n[2] ?? "").split(",").map((e) => Nh(e.trim())).filter((e) => e.length > 0);
23982
+ let r = (n[2] ?? "").split(",").map((e) => Ph(e.trim())).filter((e) => e.length > 0);
23980
23983
  t.ctes.push({
23981
23984
  name: o,
23982
- columns: r.length > 0 ? r : Yh(e.slice(s, Math.max(s, c - 1))),
23985
+ columns: r.length > 0 ? r : Xh(e.slice(s, Math.max(s, c - 1))),
23983
23986
  from: a,
23984
23987
  to: a + i.length
23985
23988
  });
@@ -23991,19 +23994,19 @@ function qh(e, t) {
23991
23994
  i = n.exec(e);
23992
23995
  }
23993
23996
  }
23994
- function Jh(e) {
23997
+ function Yh(e) {
23995
23998
  let t = [], n = 0, r = "";
23996
23999
  for (let i of e) i === "(" ? n++ : i === ")" && (n = Math.max(0, n - 1)), i === "," && n === 0 ? (t.push(r), r = "") : r += i;
23997
24000
  return t.push(r), t;
23998
24001
  }
23999
- function Yh(e) {
24002
+ function Xh(e) {
24000
24003
  let t = /^\s*SELECT\s+(?:DISTINCT\s+)?([\s\S]*?)\s+FROM\s/i.exec(e);
24001
24004
  if (!t || !t[1]) return [];
24002
24005
  let n = [];
24003
- for (let e of Jh(t[1])) {
24004
- let t = e.trim(), r = new RegExp(String.raw`\s+AS\s+(${Hh})$`, "i").exec(t);
24006
+ for (let e of Yh(t[1])) {
24007
+ let t = e.trim(), r = new RegExp(String.raw`\s+AS\s+(${Uh})$`, "i").exec(t);
24005
24008
  if (r?.[1]) {
24006
- n.push(Nh(r[1]));
24009
+ n.push(Ph(r[1]));
24007
24010
  continue;
24008
24011
  }
24009
24012
  if (/^(?:[\w$]+\.)*[\w$]+$/.test(t)) {
@@ -24013,7 +24016,7 @@ function Yh(e) {
24013
24016
  }
24014
24017
  return n;
24015
24018
  }
24016
- function Xh(e) {
24019
+ function Zh(e) {
24017
24020
  let t = /* @__PURE__ */ new Map();
24018
24021
  for (let n of e.tables) if (n.alias) {
24019
24022
  let e = n.alias.toLowerCase();
@@ -24026,14 +24029,14 @@ function Xh(e) {
24026
24029
  selectAliases: e.selectAliases
24027
24030
  };
24028
24031
  }
24029
- async function Zh(e, t, n) {
24030
- if (!e.trim()) return Ah();
24032
+ async function Qh(e, t, n) {
24033
+ if (!e.trim()) return jh();
24031
24034
  let r = null;
24032
24035
  try {
24033
24036
  let i = await t.parse(e, n);
24034
24037
  i.success && i.ast != null && (r = i.ast);
24035
24038
  } catch {}
24036
- if (r == null) return Kh(e);
24039
+ if (r == null) return qh(e);
24037
24040
  try {
24038
24041
  let t = {
24039
24042
  tables: [],
@@ -24042,29 +24045,29 @@ async function Zh(e, t, n) {
24042
24045
  seenTables: /* @__PURE__ */ new Set(),
24043
24046
  seenCtes: /* @__PURE__ */ new Set()
24044
24047
  }, n = Array.isArray(r) ? r : [r];
24045
- for (let e of n) jh(e) && zh(e, t);
24046
- Rh(r, t, /* @__PURE__ */ new Set());
24047
- let i = Gh(e);
24048
+ for (let e of n) Mh(e) && Bh(e, t);
24049
+ zh(r, t, /* @__PURE__ */ new Set());
24050
+ let i = Kh(e);
24048
24051
  for (let e of t.ctes) {
24049
- let t = Bh(i, e.name);
24052
+ let t = Vh(i, e.name);
24050
24053
  e.from = t.from, e.to = t.to;
24051
24054
  }
24052
- return Xh(t);
24055
+ return Zh(t);
24053
24056
  } catch {
24054
- return Kh(e);
24057
+ return qh(e);
24055
24058
  }
24056
24059
  }
24057
- var Qh = class {
24060
+ var $h = class {
24058
24061
  parser;
24059
24062
  cache = /* @__PURE__ */ new Map();
24060
24063
  MAX_CACHE_SIZE = 20;
24061
- constructor(e = new Eh()) {
24064
+ constructor(e = new Dh()) {
24062
24065
  this.parser = e;
24063
24066
  }
24064
24067
  async getContext(e, t) {
24065
24068
  let n = this.cache.get(e);
24066
24069
  if (n) return n;
24067
- let r = await Zh(e, this.parser, t);
24070
+ let r = await Qh(e, this.parser, t);
24068
24071
  if (this.cache.set(e, r), this.cache.size > this.MAX_CACHE_SIZE) {
24069
24072
  let e = this.cache.keys().next().value;
24070
24073
  e !== void 0 && this.cache.delete(e);
@@ -24074,7 +24077,7 @@ var Qh = class {
24074
24077
  clearCache() {
24075
24078
  this.cache.clear();
24076
24079
  }
24077
- }, $h = class {
24080
+ }, eg = class {
24078
24081
  parser;
24079
24082
  cache = /* @__PURE__ */ new Map();
24080
24083
  MAX_CACHE_SIZE = 10;
@@ -24206,53 +24209,53 @@ var Qh = class {
24206
24209
  };
24207
24210
  //#endregion
24208
24211
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/alias-completion-source.js
24209
- function eg(e = {}) {
24210
- let t = e.parser ?? new Eh(), n = e.contextAnalyzer ?? new Qh(t), r = new $h(t);
24212
+ function tg(e = {}) {
24213
+ let t = e.parser ?? new Dh(), n = e.contextAnalyzer ?? new $h(t), r = new eg(t);
24211
24214
  return async (t) => {
24212
24215
  let i = t.matchBefore(/(?:[\w$]+|"[^"]+"|`[^`]+`|\[[^\]]+\])\.[\w$]*/);
24213
24216
  if (!i || t.state.sliceDoc(Math.max(0, i.from - 1), i.from) === ".") return null;
24214
- let a = i.text.lastIndexOf("."), o = Nh(i.text.slice(0, a)), s = await r.getStatementAtPosition(t.state, t.pos), c = s ? t.state.sliceDoc(s.from, s.to) : t.state.doc.toString(), l = await n.getContext(c, { state: t.state }), u = l.aliases.get(o.toLowerCase());
24217
+ let a = i.text.lastIndexOf("."), o = Ph(i.text.slice(0, a)), s = await r.getStatementAtPosition(t.state, t.pos), c = s ? t.state.sliceDoc(s.from, s.to) : t.state.doc.toString(), l = await n.getContext(c, { state: t.state }), u = l.aliases.get(o.toLowerCase());
24215
24218
  if (!u) return null;
24216
24219
  let d = null, f = l.ctes.find((e) => e.name.toLowerCase() === u.toLowerCase());
24217
24220
  if (f && f.columns.length > 0) d = f.columns;
24218
24221
  else if (!f) {
24219
- let n = xh(e.schema, t);
24220
- n != null && (d = Ch(n, u));
24222
+ let n = Sh(e.schema, t);
24223
+ n != null && (d = wh(n, u));
24221
24224
  }
24222
24225
  if (!d || d.length === 0) return null;
24223
24226
  let p = `column of ${u}`;
24224
24227
  return {
24225
24228
  from: i.from + a + 1,
24226
- options: d.map((e) => wh(e, p)),
24229
+ options: d.map((e) => Th(e, p)),
24227
24230
  validFor: /^[\w$]*$/
24228
24231
  };
24229
24232
  };
24230
24233
  }
24231
24234
  //#endregion
24232
24235
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/column-completion-source.js
24233
- var tg = 1, ng = /\b(?:from|join|into|update|table)\s+$/i, rg = /\bfrom\s+[\w$."`[\]]+(?:\s+(?:as\s+)?[\w$"`[\]]+)?(?:\s*,\s*[\w$."`[\]]+(?:\s+(?:as\s+)?[\w$"`[\]]+)?)*\s*,\s*$/i;
24234
- function ig(e = {}) {
24235
- let t = e.parser ?? new Eh(), n = e.contextAnalyzer ?? new Qh(t), r = new $h(t);
24236
+ var ng = 1, rg = /\b(?:from|join|into|update|table)\s+$/i, ig = /\bfrom\s+[\w$."`[\]]+(?:\s+(?:as\s+)?[\w$"`[\]]+)?(?:\s*,\s*[\w$."`[\]]+(?:\s+(?:as\s+)?[\w$"`[\]]+)?)*\s*,\s*$/i;
24237
+ function ag(e = {}) {
24238
+ let t = e.parser ?? new Dh(), n = e.contextAnalyzer ?? new $h(t), r = new eg(t);
24236
24239
  return async (t) => {
24237
24240
  let i = t.matchBefore(/[\w$]*/);
24238
24241
  if (!i || i.from === i.to && !t.explicit || t.state.sliceDoc(Math.max(0, i.from - 1), i.from) === ".") return null;
24239
24242
  let a = t.state.sliceDoc(Math.max(0, i.from - 256), i.from);
24240
- if (ng.test(a) || rg.test(a)) return null;
24241
- let o = await r.getStatementAtPosition(t.state, t.pos), s = o?.from ?? 0, c = o ? t.state.sliceDoc(o.from, o.to) : t.state.doc.toString(), l = Gh(c), u = Math.max(s, i.from - 1) - s, d = i.to - s;
24243
+ if (rg.test(a) || ig.test(a)) return null;
24244
+ let o = await r.getStatementAtPosition(t.state, t.pos), s = o?.from ?? 0, c = o ? t.state.sliceDoc(o.from, o.to) : t.state.doc.toString(), l = Kh(c), u = Math.max(s, i.from - 1) - s, d = i.to - s;
24242
24245
  if (l.slice(u, d) !== c.slice(u, d)) return null;
24243
24246
  let f = await n.getContext(c, { state: t.state });
24244
24247
  if (f.tables.length === 0) return null;
24245
- let p = xh(e.schema, t), m = [], h = /* @__PURE__ */ new Set(), g = /* @__PURE__ */ new Set();
24248
+ let p = Sh(e.schema, t), m = [], h = /* @__PURE__ */ new Set(), g = /* @__PURE__ */ new Set();
24246
24249
  for (let e of f.tables) {
24247
24250
  let t = e.path.join(".").toLowerCase();
24248
24251
  if (g.has(t)) continue;
24249
24252
  g.add(t);
24250
24253
  let n = f.ctes.find((t) => t.name.toLowerCase() === e.name.toLowerCase()), r = null;
24251
- if (n ? r = n.columns.length > 0 ? n.columns : null : p != null && (r = Ch(p, e.path)), !r) continue;
24254
+ if (n ? r = n.columns.length > 0 ? n.columns : null : p != null && (r = wh(p, e.path)), !r) continue;
24252
24255
  let i = `column of ${e.name}`;
24253
24256
  for (let e of r) {
24254
24257
  let t = (typeof e == "string" ? e : e.label).toLowerCase();
24255
- h.has(t) || (h.add(t), m.push(wh(e, i, tg)));
24258
+ h.has(t) || (h.add(t), m.push(Th(e, i, ng)));
24256
24259
  }
24257
24260
  }
24258
24261
  return m.length === 0 ? null : {
@@ -24264,30 +24267,30 @@ function ig(e = {}) {
24264
24267
  }
24265
24268
  //#endregion
24266
24269
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/references.js
24267
- var ag = /[\w$]/, og = /"[^"]*"|`[^`]*`|\[[^\]]*\]/g;
24268
- function sg(e, t) {
24270
+ var og = /[\w$]/, sg = /"[^"]*"|`[^`]*`|\[[^\]]*\]/g;
24271
+ function cg(e, t) {
24269
24272
  let n = e.doc.lineAt(t), r = n.text, i = t - n.from;
24270
- og.lastIndex = 0;
24271
- let a = og.exec(r);
24273
+ sg.lastIndex = 0;
24274
+ let a = sg.exec(r);
24272
24275
  for (; a !== null && a.index <= i;) {
24273
24276
  let e = a.index + a[0].length;
24274
24277
  if (i <= e) return {
24275
24278
  from: n.from + a.index,
24276
24279
  to: n.from + e,
24277
- text: Nh(a[0])
24280
+ text: Ph(a[0])
24278
24281
  };
24279
- a = og.exec(r);
24282
+ a = sg.exec(r);
24280
24283
  }
24281
24284
  let o = i, s = i;
24282
- for (; o > 0 && ag.test(r[o - 1] ?? "");) o--;
24283
- for (; s < r.length && ag.test(r[s] ?? "");) s++;
24285
+ for (; o > 0 && og.test(r[o - 1] ?? "");) o--;
24286
+ for (; s < r.length && og.test(r[s] ?? "");) s++;
24284
24287
  return o === s ? null : {
24285
24288
  from: n.from + o,
24286
24289
  to: n.from + s,
24287
24290
  text: r.slice(o, s)
24288
24291
  };
24289
24292
  }
24290
- async function cg(e, t, n) {
24293
+ async function lg(e, t, n) {
24291
24294
  let r = await e.analyzeDocument(t), i = null;
24292
24295
  for (let e of r) {
24293
24296
  if (n >= e.from && n <= e.to) return e;
@@ -24295,15 +24298,15 @@ async function cg(e, t, n) {
24295
24298
  }
24296
24299
  return i;
24297
24300
  }
24298
- function lg(e) {
24301
+ function ug(e) {
24299
24302
  return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
24300
24303
  }
24301
- function ug(e, t = {}) {
24302
- let n = lg(e);
24304
+ function dg(e, t = {}) {
24305
+ let n = ug(e);
24303
24306
  return `(?:"${n}"|\`${n}\`|\\[${n}\\]|${t.allowLeadingDot ? "(?<![\\w$])" : "(?<![\\w$.])"}${n}(?![\\w$]))`;
24304
24307
  }
24305
- function dg(e, t, n = {}) {
24306
- let r = new RegExp(ug(t), "gi"), i = [], a = r.exec(e);
24308
+ function fg(e, t, n = {}) {
24309
+ let r = new RegExp(dg(t), "gi"), i = [], a = r.exec(e);
24307
24310
  for (; a !== null;) {
24308
24311
  let t = a.index + a[0].length;
24309
24312
  (!n.followedByDot || e[t] === ".") && i.push({
@@ -24313,19 +24316,19 @@ function dg(e, t, n = {}) {
24313
24316
  }
24314
24317
  return i;
24315
24318
  }
24316
- function fg(e) {
24319
+ function pg(e) {
24317
24320
  let t = [], n = 0;
24318
24321
  for (let r = 0; r < e.length; r++) e[r] === ")" && (n = Math.max(0, n - 1)), t[r] = n, e[r] === "(" && n++;
24319
24322
  return t;
24320
24323
  }
24321
- var pg = /\b(select|from|where|having|qualify|on|set|values|by|join|limit|offset|union|intersect|except|window)\b/gi;
24322
- function mg(e) {
24323
- pg.lastIndex = 0;
24324
- let t = null, n = pg.exec(e);
24325
- for (; n !== null;) t = (n[1] ?? "").toLowerCase(), n = pg.exec(e);
24324
+ var mg = /\b(select|from|where|having|qualify|on|set|values|by|join|limit|offset|union|intersect|except|window)\b/gi;
24325
+ function hg(e) {
24326
+ mg.lastIndex = 0;
24327
+ let t = null, n = mg.exec(e);
24328
+ for (; n !== null;) t = (n[1] ?? "").toLowerCase(), n = mg.exec(e);
24326
24329
  return t;
24327
24330
  }
24328
- function hg(e, t) {
24331
+ function gg(e, t) {
24329
24332
  let n = t - 1;
24330
24333
  for (;;) {
24331
24334
  for (; n >= 0 && /\s/.test(e[n] ?? "");) n--;
@@ -24336,34 +24339,34 @@ function hg(e, t) {
24336
24339
  let r = t === "]" ? "[" : t;
24337
24340
  for (n--; n >= 0 && e[n] !== r;) n--;
24338
24341
  n--;
24339
- } else for (; n >= 0 && ag.test(e[n] ?? "");) n--;
24342
+ } else for (; n >= 0 && og.test(e[n] ?? "");) n--;
24340
24343
  continue;
24341
24344
  }
24342
24345
  break;
24343
24346
  }
24344
24347
  if (n < 0) return !1;
24345
- if (e[n] === ",") return mg(e.slice(0, n)) === "from";
24348
+ if (e[n] === ",") return hg(e.slice(0, n)) === "from";
24346
24349
  let r = /([A-Za-z_]+)$/.exec(e.slice(0, n + 1))?.[1]?.toLowerCase();
24347
24350
  return r === "from" || r === "join";
24348
24351
  }
24349
- function gg(e) {
24352
+ function _g(e) {
24350
24353
  let t = /* @__PURE__ */ new Map();
24351
24354
  for (let n of e) t.has(n.from) || t.set(n.from, n);
24352
24355
  return [...t.values()].sort((e, t) => e.from - t.from);
24353
24356
  }
24354
- function _g(e, t) {
24357
+ function vg(e, t) {
24355
24358
  return e.some((e) => e.from <= t.from && t.to <= e.to);
24356
24359
  }
24357
- function vg(e, t, n) {
24358
- let r = Gh(e), i = n.text.toLowerCase(), a = t.selectAliases.some((e) => e.toLowerCase() === i), o = t.ctes.find((e) => e.name.toLowerCase() === i);
24360
+ function yg(e, t, n) {
24361
+ let r = Kh(e), i = n.text.toLowerCase(), a = t.selectAliases.some((e) => e.toLowerCase() === i), o = t.ctes.find((e) => e.name.toLowerCase() === i);
24359
24362
  if (o) {
24360
24363
  let e = t.aliases.get(i);
24361
24364
  if (e && e.toLowerCase() !== i || a || o.from < 0) return null;
24362
24365
  let s = {
24363
24366
  from: o.from,
24364
24367
  to: o.to
24365
- }, c = gg([s, ...dg(r, o.name).filter((e) => r[e.to] === "." || hg(r, e.from))]);
24366
- return _g(c, n) ? {
24368
+ }, c = _g([s, ...fg(r, o.name).filter((e) => r[e.to] === "." || gg(r, e.from))]);
24369
+ return vg(c, n) ? {
24367
24370
  kind: "cte",
24368
24371
  name: o.name,
24369
24372
  definition: s,
@@ -24374,14 +24377,14 @@ function vg(e, t, n) {
24374
24377
  if (a) return null;
24375
24378
  let e = t.tables.filter((e) => e.alias?.toLowerCase() === i);
24376
24379
  if (e.length !== 1 || !e[0]) return null;
24377
- let o = e[0], s = o.alias ?? n.text, c = ug(o.name, { allowLeadingDot: !0 }), l = RegExp(`${c}\\s+(?:AS\\s+)?(${ug(s)})`, "gi"), u = l.exec(r);
24378
- for (; u !== null && !hg(r, u.index);) u = l.exec(r);
24380
+ let o = e[0], s = o.alias ?? n.text, c = dg(o.name, { allowLeadingDot: !0 }), l = RegExp(`${c}\\s+(?:AS\\s+)?(${dg(s)})`, "gi"), u = l.exec(r);
24381
+ for (; u !== null && !gg(r, u.index);) u = l.exec(r);
24379
24382
  if (!u || u[1] == null) return null;
24380
24383
  let d = {
24381
24384
  from: u.index + u[0].length - u[1].length,
24382
24385
  to: u.index + u[0].length
24383
- }, f = gg([d, ...dg(r, s, { followedByDot: !0 })]);
24384
- return _g(f, n) ? {
24386
+ }, f = _g([d, ...fg(r, s, { followedByDot: !0 })]);
24387
+ return vg(f, n) ? {
24385
24388
  kind: "table-alias",
24386
24389
  name: s,
24387
24390
  definition: d,
@@ -24390,7 +24393,7 @@ function vg(e, t, n) {
24390
24393
  }
24391
24394
  let s = t.selectAliases.find((e) => e.toLowerCase() === i);
24392
24395
  if (s) {
24393
- let e = fg(r), t = (t) => e[t] === 0, i = yg(r, /\bFROM\b/gi, t), a = i ? i.index : r.length, o = RegExp(`\\bAS\\s+(${ug(s)})`, "gi"), c = null, l = o.exec(r);
24396
+ let e = pg(r), t = (t) => e[t] === 0, i = bg(r, /\bFROM\b/gi, t), a = i ? i.index : r.length, o = RegExp(`\\bAS\\s+(${dg(s)})`, "gi"), c = null, l = o.exec(r);
24394
24397
  for (; l !== null;) {
24395
24398
  let e = l.index + l[0].length - (l[1]?.length ?? 0);
24396
24399
  if (t(l.index) && e < a) {
@@ -24403,8 +24406,8 @@ function vg(e, t, n) {
24403
24406
  l = o.exec(r);
24404
24407
  }
24405
24408
  if (!c) return null;
24406
- let u = Sg(r, t), d = dg(r, s).filter((e) => u.some((t) => e.from >= t.from && e.to <= t.to)), f = gg([c, ...d]);
24407
- return _g(f, n) ? {
24409
+ let u = Cg(r, t), d = fg(r, s).filter((e) => u.some((t) => e.from >= t.from && e.to <= t.to)), f = _g([c, ...d]);
24410
+ return vg(f, n) ? {
24408
24411
  kind: "select-alias",
24409
24412
  name: s,
24410
24413
  definition: c,
@@ -24413,7 +24416,7 @@ function vg(e, t, n) {
24413
24416
  }
24414
24417
  return null;
24415
24418
  }
24416
- function yg(e, t, n) {
24419
+ function bg(e, t, n) {
24417
24420
  let r = t.exec(e);
24418
24421
  for (; r !== null;) {
24419
24422
  if (n(r.index)) return r;
@@ -24421,45 +24424,45 @@ function yg(e, t, n) {
24421
24424
  }
24422
24425
  return null;
24423
24426
  }
24424
- var bg = /\b(?:GROUP\s+BY|ORDER\s+BY|HAVING|QUALIFY)\b/gi, xg = /\b(?:GROUP\s+BY|ORDER\s+BY|HAVING|QUALIFY|LIMIT|OFFSET|FETCH|WINDOW|UNION|INTERSECT|EXCEPT)\b/gi;
24425
- function Sg(e, t) {
24427
+ var xg = /\b(?:GROUP\s+BY|ORDER\s+BY|HAVING|QUALIFY)\b/gi, Sg = /\b(?:GROUP\s+BY|ORDER\s+BY|HAVING|QUALIFY|LIMIT|OFFSET|FETCH|WINDOW|UNION|INTERSECT|EXCEPT)\b/gi;
24428
+ function Cg(e, t) {
24426
24429
  let n = [];
24427
- bg.lastIndex = 0;
24428
- let r = bg.exec(e);
24430
+ xg.lastIndex = 0;
24431
+ let r = xg.exec(e);
24429
24432
  for (; r !== null;) {
24430
24433
  if (t(r.index)) {
24431
24434
  let i = r.index + r[0].length;
24432
- xg.lastIndex = i;
24433
- let a = e.length, o = xg.exec(e);
24435
+ Sg.lastIndex = i;
24436
+ let a = e.length, o = Sg.exec(e);
24434
24437
  for (; o !== null;) {
24435
24438
  if (t(o.index)) {
24436
24439
  a = o.index;
24437
24440
  break;
24438
24441
  }
24439
- o = xg.exec(e);
24442
+ o = Sg.exec(e);
24440
24443
  }
24441
24444
  n.push({
24442
24445
  from: i,
24443
24446
  to: a
24444
24447
  });
24445
24448
  }
24446
- r = bg.exec(e);
24449
+ r = xg.exec(e);
24447
24450
  }
24448
24451
  return n;
24449
24452
  }
24450
- var Cg = class {
24453
+ var wg = class {
24451
24454
  structureAnalyzer;
24452
24455
  contextAnalyzer;
24453
24456
  constructor(e = {}) {
24454
- let t = e.parser ?? new Eh();
24455
- this.structureAnalyzer = e.structureAnalyzer ?? new $h(t), this.contextAnalyzer = e.contextAnalyzer ?? new Qh(t);
24457
+ let t = e.parser ?? new Dh();
24458
+ this.structureAnalyzer = e.structureAnalyzer ?? new eg(t), this.contextAnalyzer = e.contextAnalyzer ?? new $h(t);
24456
24459
  }
24457
24460
  async resolve(e, t) {
24458
- let n = sg(e, t);
24461
+ let n = cg(e, t);
24459
24462
  if (!n) return null;
24460
- let r = await cg(this.structureAnalyzer, e, t);
24463
+ let r = await lg(this.structureAnalyzer, e, t);
24461
24464
  if (!r || n.from < r.from || n.to > r.to) return null;
24462
- let i = e.sliceDoc(r.from, r.to), a = vg(i, await this.contextAnalyzer.getContext(i, { state: e }), {
24465
+ let i = e.sliceDoc(r.from, r.to), a = yg(i, await this.contextAnalyzer.getContext(i, { state: e }), {
24463
24466
  from: n.from - r.from,
24464
24467
  to: n.to - r.from,
24465
24468
  text: n.text
@@ -24475,54 +24478,54 @@ var Cg = class {
24475
24478
  references: a.references.map(o)
24476
24479
  };
24477
24480
  }
24478
- }, wg = /([\w$]+|"[^"]+"|`[^`]+`|\[[^\]]+\])$/;
24479
- function Tg(e) {
24481
+ }, Tg = /([\w$]+|"[^"]+"|`[^`]+`|\[[^\]]+\])$/;
24482
+ function Eg(e) {
24480
24483
  return /\b(?:from|join)\s+$/i.test(e);
24481
24484
  }
24482
- function Eg(e) {
24485
+ function Dg(e) {
24483
24486
  return /^[A-Za-z_][\w$]*$/.test(e);
24484
24487
  }
24485
- function Dg(e) {
24488
+ function Og(e) {
24486
24489
  return {
24487
24490
  label: e.name,
24488
24491
  type: "variable",
24489
24492
  info: `Common Table Expression: ${e.name}`,
24490
24493
  boost: 10,
24491
- ...Eg(e.name) ? {} : { apply: `"${e.name}"` }
24494
+ ...Dg(e.name) ? {} : { apply: `"${e.name}"` }
24492
24495
  };
24493
24496
  }
24494
- function Og(e) {
24497
+ function kg(e) {
24495
24498
  return e.columns.map((t) => ({
24496
24499
  label: t,
24497
24500
  type: "property",
24498
24501
  detail: `column of ${e.name}`,
24499
24502
  boost: 5,
24500
- ...Eg(t) ? {} : { apply: `"${t}"` }
24503
+ ...Dg(t) ? {} : { apply: `"${t}"` }
24501
24504
  }));
24502
24505
  }
24503
- function kg(e = {}) {
24504
- let t = e.parser ?? new Eh(), n = e.contextAnalyzer ?? new Qh(t), r = e.structureAnalyzer ?? new $h(t);
24506
+ function Ag(e = {}) {
24507
+ let t = e.parser ?? new Dh(), n = e.contextAnalyzer ?? new $h(t), r = e.structureAnalyzer ?? new eg(t);
24505
24508
  return async (e) => {
24506
24509
  let t = e.matchBefore(/[\w$]*/);
24507
24510
  if (!t) return null;
24508
24511
  let i = e.state.sliceDoc(Math.max(0, t.from - 1), t.from) === ".";
24509
24512
  if (t.from === t.to && !e.explicit && !i) return null;
24510
- let a = await cg(r, e.state, e.pos), o = a ? e.state.sliceDoc(a.from, a.to) : e.state.doc.toString(), s = await n.getContext(o, { state: e.state });
24513
+ let a = await lg(r, e.state, e.pos), o = a ? e.state.sliceDoc(a.from, a.to) : e.state.doc.toString(), s = await n.getContext(o, { state: e.state });
24511
24514
  if (s.ctes.length === 0) return null;
24512
24515
  if (i) {
24513
- let n = e.state.doc.lineAt(t.from), r = e.state.sliceDoc(n.from, t.from - 1), i = wg.exec(r);
24516
+ let n = e.state.doc.lineAt(t.from), r = e.state.sliceDoc(n.from, t.from - 1), i = Tg.exec(r);
24514
24517
  if (!i || !i[1] || r.slice(0, r.length - i[1].length).endsWith(".")) return null;
24515
- let a = Nh(i[1]).toLowerCase(), o = s.ctes.find((e) => e.name.toLowerCase() === a);
24518
+ let a = Ph(i[1]).toLowerCase(), o = s.ctes.find((e) => e.name.toLowerCase() === a);
24516
24519
  return !o || o.columns.length === 0 ? null : {
24517
24520
  from: t.from,
24518
- options: Og(o),
24521
+ options: kg(o),
24519
24522
  validFor: /^[\w$]*$/
24520
24523
  };
24521
24524
  }
24522
- let c = s.ctes.map(Dg);
24523
- if (!Tg(e.state.sliceDoc(Math.max(0, t.from - 64), t.from))) {
24525
+ let c = s.ctes.map(Og);
24526
+ if (!Eg(e.state.sliceDoc(Math.max(0, t.from - 64), t.from))) {
24524
24527
  let e = new Set(s.tables.map((e) => e.name.toLowerCase())), t = /* @__PURE__ */ new Set();
24525
- for (let n of s.ctes) if (e.has(n.name.toLowerCase())) for (let e of Og(n)) {
24528
+ for (let n of s.ctes) if (e.has(n.name.toLowerCase())) for (let e of kg(n)) {
24526
24529
  let n = e.label.toLowerCase();
24527
24530
  t.has(n) || (t.add(n), c.push(e));
24528
24531
  }
@@ -24536,59 +24539,59 @@ function kg(e = {}) {
24536
24539
  }
24537
24540
  //#endregion
24538
24541
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/diagnostics.js
24539
- var Ag = 750;
24540
- function jg(e, t) {
24542
+ var jg = 750;
24543
+ function Mg(e, t) {
24541
24544
  if (t >= e.length) return e.length;
24542
24545
  let n = e.lineAt(t), r = n.text.slice(t - n.from).match(/^[\w"'`.]+/);
24543
24546
  return r ? t + r[0].length : Math.min(t + 1, e.length);
24544
24547
  }
24545
- function Mg(e, t) {
24548
+ function Ng(e, t) {
24546
24549
  let n = t.line(Math.min(e.line, t.lines)), r = Math.min(n.from + Math.max(0, e.column - 1), t.length);
24547
24550
  return {
24548
24551
  from: r,
24549
- to: jg(t, r),
24552
+ to: Mg(t, r),
24550
24553
  severity: e.severity,
24551
24554
  message: e.message,
24552
24555
  source: "sql-parser"
24553
24556
  };
24554
24557
  }
24555
- function Ng(e, t, n) {
24558
+ function Pg(e, t, n) {
24556
24559
  let r;
24557
24560
  return r = e.line <= 1 ? t.from + Math.max(0, e.column - 1) : n.line(Math.min(t.lineFrom + e.line - 1, n.lines)).from + Math.max(0, e.column - 1), r = Math.max(t.from, Math.min(r, t.to)), {
24558
24561
  from: r,
24559
- to: Math.max(r, Math.min(jg(n, r), t.to)),
24562
+ to: Math.max(r, Math.min(Mg(n, r), t.to)),
24560
24563
  severity: e.severity,
24561
24564
  message: e.message,
24562
24565
  source: "sql-parser"
24563
24566
  };
24564
24567
  }
24565
- function Pg(e = {}) {
24566
- return St(Fg(e), { delay: e.delay || Ag });
24567
- }
24568
24568
  function Fg(e = {}) {
24569
- let t = e.parser || new Eh(), n = e.perStatement !== !1, r = e.structureAnalyzer || new $h(t);
24569
+ return St(Ig(e), { delay: e.delay || jg });
24570
+ }
24571
+ function Ig(e = {}) {
24572
+ let t = e.parser || new Dh(), n = e.perStatement !== !1, r = e.structureAnalyzer || new eg(t);
24570
24573
  return async (e) => {
24571
24574
  let i = e.state.doc, a = i.toString();
24572
- return a.trim() ? n ? (await r.analyzeDocument(e.state)).flatMap((e) => e.errors.map((t) => Ng(t, e, i))) : (await t.validateSql(a, { state: e.state })).map((e) => Mg(e, i)) : [];
24575
+ return a.trim() ? n ? (await r.analyzeDocument(e.state)).flatMap((e) => e.errors.map((t) => Pg(t, e, i))) : (await t.validateSql(a, { state: e.state })).map((e) => Ng(e, i)) : [];
24573
24576
  };
24574
24577
  }
24575
24578
  //#endregion
24576
24579
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/hover.js
24577
- function Ig(e, t) {
24580
+ function Lg(e, t) {
24578
24581
  if (t.size === 0) return {};
24579
- if (ch(e)) {
24582
+ if (lh(e)) {
24580
24583
  let n = {};
24581
24584
  for (let [r, i] of Object.entries(e)) if (Array.from(t).some((e) => e.toLowerCase() === r.toLowerCase())) n[r] = i;
24582
- else if (ch(i)) {
24583
- let e = Ig(i, t);
24585
+ else if (lh(i)) {
24586
+ let e = Lg(i, t);
24584
24587
  Object.keys(e).length > 0 && (n[r] = e);
24585
24588
  }
24586
24589
  return n;
24587
24590
  }
24588
24591
  return e;
24589
24592
  }
24590
- function Lg(e = {}) {
24591
- let { schema: t, keywords: n = {}, enableKeywords: r = !0, enableTables: i = !0, enableColumns: a = !0, enableFuzzySearch: o = !0, parser: s = new Eh(), tooltipRender: c, tooltipRenderers: l = {} } = e, u = new $h(s), d = e.contextAnalyzer ?? new Qh(s), f = null;
24593
+ function Rg(e = {}) {
24594
+ let { schema: t, keywords: n = {}, enableKeywords: r = !0, enableTables: i = !0, enableColumns: a = !0, enableFuzzySearch: o = !0, parser: s = new Dh(), tooltipRender: c, tooltipRenderers: l = {} } = e, u = new eg(s), d = e.contextAnalyzer ?? new $h(s), f = null;
24592
24595
  return async (e, s, p) => {
24593
24596
  let { from: m, to: h, text: g } = e.state.doc.lineAt(s), _ = s, v = s;
24594
24597
  f === null && (f = typeof n == "function" ? n(e) : Promise.resolve(n));
@@ -24603,7 +24606,7 @@ function Lg(e = {}) {
24603
24606
  if (_ === s && p < 0 || v === s && p > 0) return null;
24604
24607
  let b = g.slice(_ - m, v - m).toLowerCase();
24605
24608
  if (!b || b.length === 0) return null;
24606
- let x = bh(t, e) ?? {}, S = null;
24609
+ let x = xh(t, e) ?? {}, S = null;
24607
24610
  `${b}`;
24608
24611
  let C = Object.hasOwn(y, b) ? y[b] : void 0;
24609
24612
  if (!S && r && C && (S = {
@@ -24616,8 +24619,8 @@ function Lg(e = {}) {
24616
24619
  info: C
24617
24620
  }
24618
24621
  }), !S && (i || a) && x) {
24619
- let t = await u.getStatementAtPosition(e.state, s), n = t ? e.state.doc.sliceString(t.from, t.to) : e.state.doc.toString(), r = await d.getContext(n, { state: e.state }), [c = "", ...l] = b.split("."), f = r.aliases.get(c), p = f ? [f, ...l].join(".").toLowerCase() : b, m = new Set(r.tables.map((e) => e.name.toLowerCase())), h = Ig(x, m), g = vh(h, p, { enableFuzzySearch: o });
24620
- if (!g && m.size === 0 && (g = vh(x, p, { enableFuzzySearch: o })), g) {
24622
+ let t = await u.getStatementAtPosition(e.state, s), n = t ? e.state.doc.sliceString(t.from, t.to) : e.state.doc.toString(), r = await d.getContext(n, { state: e.state }), [c = "", ...l] = b.split("."), f = r.aliases.get(c), p = f ? [f, ...l].join(".").toLowerCase() : b, m = new Set(r.tables.map((e) => e.name.toLowerCase())), h = Lg(x, m), g = yh(h, p, { enableFuzzySearch: o });
24623
+ if (!g && m.size === 0 && (g = yh(x, p, { enableFuzzySearch: o })), g) {
24621
24624
  let { semanticType: e } = g;
24622
24625
  (e === "table" && !i || e === "column" && !a) && (g = null);
24623
24626
  }
@@ -24646,10 +24649,10 @@ function Lg(e = {}) {
24646
24649
  if (t) return { dom: t };
24647
24650
  }
24648
24651
  let t = null;
24649
- if (w.tooltipType === "keyword" && w.keywordData) t = l.keyword ? l.keyword(w.keywordData) : Hg(w.keywordData);
24652
+ if (w.tooltipType === "keyword" && w.keywordData) t = l.keyword ? l.keyword(w.keywordData) : Ug(w.keywordData);
24650
24653
  else if (w.tooltipType === "namespace" && w.namespaceData) {
24651
24654
  let e = w.namespaceData, { semanticType: n } = e.item;
24652
- n === "table" && l.table ? t = l.table(e) : n === "column" && l.column ? t = l.column(e) : (n === "database" || n === "schema" || n === "namespace") && l.namespace ? t = l.namespace(e) : (t = Bg(e.item), e.aliasFor && (t = `<div class="sql-hover-alias"><code>${zg(e.word.split(".")[0] ?? "")}</code> is an alias for <code>${zg(e.aliasFor)}</code></div>` + t));
24655
+ n === "table" && l.table ? t = l.table(e) : n === "column" && l.column ? t = l.column(e) : (n === "database" || n === "schema" || n === "namespace") && l.namespace ? t = l.namespace(e) : (t = Vg(e.item), e.aliasFor && (t = `<div class="sql-hover-alias"><code>${Bg(e.word.split(".")[0] ?? "")}</code> is an alias for <code>${Bg(e.aliasFor)}</code></div>` + t));
24653
24656
  }
24654
24657
  if (!t) return { dom: document.createElement("div") };
24655
24658
  let n = document.createElement("div");
@@ -24658,25 +24661,25 @@ function Lg(e = {}) {
24658
24661
  };
24659
24662
  };
24660
24663
  }
24661
- function Rg(e = {}) {
24664
+ function zg(e = {}) {
24662
24665
  let { hoverTime: t = 300 } = e;
24663
- return ft(Lg(e), { hoverTime: t });
24666
+ return ft(Rg(e), { hoverTime: t });
24664
24667
  }
24665
- function zg(e) {
24668
+ function Bg(e) {
24666
24669
  return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
24667
24670
  }
24668
- function Bg(e) {
24671
+ function Vg(e) {
24669
24672
  let t = e.path.join("."), n = e.completion?.label || e.value || e.path[e.path.length - 1] || "unknown", r = `<div class="sql-hover-${e.semanticType}">`;
24670
24673
  switch (r += `<div class="sql-hover-header"><strong>${n}</strong> <span class="sql-hover-type">${e.semanticType}</span></div>`, e.semanticType) {
24671
24674
  case "database":
24672
24675
  if (r += `<div class="sql-hover-description">Database${e.completion?.detail ? `: ${e.completion.detail}` : ""}</div>`, e.namespace) {
24673
- let t = Vg(e.namespace);
24676
+ let t = Hg(e.namespace);
24674
24677
  t > 0 && (r += `<div class="sql-hover-children">Contains ${t} schema${t === 1 ? "" : "s"}</div>`);
24675
24678
  }
24676
24679
  break;
24677
24680
  case "schema":
24678
24681
  if (r += `<div class="sql-hover-description">Schema${e.completion?.detail ? `: ${e.completion.detail}` : ""}</div>`, t && (r += `<div class="sql-hover-path"><strong>Path:</strong> <code>${t}</code></div>`), e.namespace) {
24679
- let t = Vg(e.namespace);
24682
+ let t = Hg(e.namespace);
24680
24683
  t > 0 && (r += `<div class="sql-hover-children">Contains ${t} table${t === 1 ? "" : "s"}</div>`);
24681
24684
  }
24682
24685
  break;
@@ -24685,7 +24688,7 @@ function Bg(e) {
24685
24688
  let t = e.path;
24686
24689
  t.length > 1 && (r += `<div class="sql-hover-path"><strong>Schema:</strong> <code>${t.slice(0, -1).join(".")}</code></div>`);
24687
24690
  }
24688
- if (e.namespace && uh(e.namespace)) {
24691
+ if (e.namespace && dh(e.namespace)) {
24689
24692
  let t = e.namespace;
24690
24693
  if (t.length > 0) {
24691
24694
  r += `<div class="sql-hover-columns"><strong>Columns (${t.length}):</strong><br>`;
@@ -24701,16 +24704,16 @@ function Bg(e) {
24701
24704
  }
24702
24705
  break;
24703
24706
  default: if (r += `<div class="sql-hover-description">Namespace${e.completion?.detail ? `: ${e.completion.detail}` : ""}</div>`, t && (r += `<div class="sql-hover-path"><strong>Path:</strong> <code>${t}</code></div>`), e.namespace) {
24704
- let t = Vg(e.namespace);
24707
+ let t = Hg(e.namespace);
24705
24708
  t > 0 && (r += `<div class="sql-hover-children">Contains ${t} item${t === 1 ? "" : "s"}</div>`);
24706
24709
  }
24707
24710
  }
24708
24711
  return e.completion?.info && typeof e.completion.info == "string" && (r += `<div class="sql-hover-info">${e.completion.info}</div>`), r += "</div>", r;
24709
24712
  }
24710
- function Vg(e) {
24711
- return Array.isArray(e) ? e.length : typeof e == "object" && e ? "self" in e && "children" in e ? 1 + Vg(e.children) : Object.keys(e).length : 0;
24712
- }
24713
24713
  function Hg(e) {
24714
+ return Array.isArray(e) ? e.length : typeof e == "object" && e ? "self" in e && "children" in e ? 1 + Hg(e.children) : Object.keys(e).length : 0;
24715
+ }
24716
+ function Ug(e) {
24714
24717
  let { keyword: t, info: n } = e, r = "<div class=\"sql-hover-keyword\">";
24715
24718
  if (r += `<div class="sql-hover-header"><strong>${t.toUpperCase()}</strong> <span class="sql-hover-type">keyword</span></div>`, r += `<div class="sql-hover-description">${n.description}</div>`, n.syntax && (r += `<div class="sql-hover-syntax"><strong>Syntax:</strong> <code>${n.syntax}</code></div>`), n.example && (r += `<div class="sql-hover-example"><strong>Example:</strong><br><code>${n.example}</code></div>`), n.metadata && typeof n.metadata == "object" && Object.keys(n.metadata).length > 0) {
24716
24719
  r += "<div class=\"sql-hover-metadata\">";
@@ -24719,7 +24722,7 @@ function Hg(e) {
24719
24722
  }
24720
24723
  return r += "</div>", r;
24721
24724
  }
24722
- function Ug(e) {
24725
+ function Wg(e) {
24723
24726
  let { tableName: t, columns: n, metadata: r } = e, i = "<div class=\"sql-hover-table\">";
24724
24727
  if (i += `<div class="sql-hover-header"><strong>${t}</strong> <span class="sql-hover-type">table</span></div>`, i += `<div class="sql-hover-description">Table with ${n.length} column${n.length === 1 ? "" : "s"}</div>`, n.length > 0) {
24725
24728
  i += "<div class=\"sql-hover-columns\"><strong>Columns:</strong><br>";
@@ -24733,7 +24736,7 @@ function Ug(e) {
24733
24736
  }
24734
24737
  return i += "</div>", i;
24735
24738
  }
24736
- function Wg(e) {
24739
+ function Gg(e) {
24737
24740
  let { tableName: t, columnName: n, schema: r, metadata: i } = e, a = "<div class=\"sql-hover-column\">";
24738
24741
  a += `<div class="sql-hover-header"><strong>${n}</strong> <span class="sql-hover-type">column</span></div>`, a += `<div class="sql-hover-description">Column in table <code>${t}</code></div>`;
24739
24742
  let o = r[t];
@@ -24752,12 +24755,12 @@ function Wg(e) {
24752
24755
  }
24753
24756
  return a += "</div>", a;
24754
24757
  }
24755
- var Gg = {
24756
- keyword: Hg,
24757
- table: Ug,
24758
- column: Wg,
24759
- namespace: Bg
24760
- }, Kg = (e = "light") => {
24758
+ var Kg = {
24759
+ keyword: Ug,
24760
+ table: Wg,
24761
+ column: Gg,
24762
+ namespace: Vg
24763
+ }, qg = (e = "light") => {
24761
24764
  let t = e === "dark" ? {
24762
24765
  tooltipBg: "#1f2937",
24763
24766
  tooltipBorder: "#374151",
@@ -24881,32 +24884,32 @@ var Gg = {
24881
24884
  };
24882
24885
  //#endregion
24883
24886
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/navigation-extension.js
24884
- function qg(e) {
24885
- return e.resolver ?? new Cg(e);
24887
+ function Jg(e) {
24888
+ return e.resolver ?? new wg(e);
24886
24889
  }
24887
- var Jg = Be.baseTheme({
24890
+ var Yg = Be.baseTheme({
24888
24891
  ".cm-sqlReference": { backgroundColor: "rgba(96, 165, 250, 0.18)" },
24889
24892
  ".cm-sqlReference.cm-sqlDefinition": { backgroundColor: "rgba(96, 165, 250, 0.35)" },
24890
24893
  ".cm-sqlGotoTarget": {
24891
24894
  textDecoration: "underline",
24892
24895
  cursor: "pointer"
24893
24896
  }
24894
- }), Yg = at.mark({ class: "cm-sqlReference" }), Xg = at.mark({ class: "cm-sqlReference cm-sqlDefinition" }), Zg = at.mark({ class: "cm-sqlGotoTarget" });
24895
- function Qg(e) {
24896
- return at.set(e.references.map((t) => (t.from === e.definition.from ? Xg : Yg).range(t.from, t.to)), !0);
24897
+ }), Xg = at.mark({ class: "cm-sqlReference" }), Zg = at.mark({ class: "cm-sqlReference cm-sqlDefinition" }), Qg = at.mark({ class: "cm-sqlGotoTarget" });
24898
+ function $g(e) {
24899
+ return at.set(e.references.map((t) => (t.from === e.definition.from ? Zg : Xg).range(t.from, t.to)), !0);
24897
24900
  }
24898
- var $g = Qe.define(), e_ = yt.define({
24901
+ var e_ = Qe.define(), t_ = yt.define({
24899
24902
  create: () => at.none,
24900
24903
  update(e, t) {
24901
- for (let e of t.effects) if (e.is($g)) return e.value;
24904
+ for (let e of t.effects) if (e.is(e_)) return e.value;
24902
24905
  return t.docChanged ? e.map(t.changes) : e;
24903
24906
  },
24904
24907
  provide: (e) => Be.decorations.from(e)
24905
24908
  });
24906
- function t_(e = {}) {
24907
- let t = qg(e), n = e.highlightDelay ?? 150;
24909
+ function n_(e = {}) {
24910
+ let t = Jg(e), n = e.highlightDelay ?? 150;
24908
24911
  return [
24909
- e_,
24912
+ t_,
24910
24913
  pt.fromClass(class {
24911
24914
  view;
24912
24915
  timer = null;
@@ -24926,21 +24929,21 @@ function t_(e = {}) {
24926
24929
  let e = this.generation, n = this.view.state, r = n.selection.main, i = at.none;
24927
24930
  if (r.empty) try {
24928
24931
  let e = await t.resolve(n, r.head);
24929
- e && (i = Qg(e));
24932
+ e && (i = $g(e));
24930
24933
  } catch {}
24931
24934
  if (e !== this.generation) return;
24932
- let a = this.view.state.field(e_, !1);
24933
- (i.size !== 0 || a != null && a.size !== 0) && this.view.dispatch({ effects: $g.of(i) });
24935
+ let a = this.view.state.field(t_, !1);
24936
+ (i.size !== 0 || a != null && a.size !== 0) && this.view.dispatch({ effects: e_.of(i) });
24934
24937
  }
24935
24938
  destroy() {
24936
24939
  this.generation++, this.timer != null && clearTimeout(this.timer);
24937
24940
  }
24938
24941
  }),
24939
- Jg
24942
+ Yg
24940
24943
  ];
24941
24944
  }
24942
- async function n_(e, t, n = {}) {
24943
- let r = e.state, i = t ?? r.selection.main.head, a = await qg(n).resolve(r, i);
24945
+ async function r_(e, t, n = {}) {
24946
+ let r = e.state, i = t ?? r.selection.main.head, a = await Jg(n).resolve(r, i);
24944
24947
  return !a || e.state !== r ? !1 : (e.dispatch({
24945
24948
  selection: {
24946
24949
  anchor: a.definition.from,
@@ -24950,18 +24953,18 @@ async function n_(e, t, n = {}) {
24950
24953
  userEvent: "select"
24951
24954
  }), !0);
24952
24955
  }
24953
- var r_ = Qe.define(), i_ = yt.define({
24956
+ var i_ = Qe.define(), a_ = yt.define({
24954
24957
  create: () => at.none,
24955
24958
  update(e, t) {
24956
- for (let e of t.effects) if (e.is(r_)) return e.value;
24959
+ for (let e of t.effects) if (e.is(i_)) return e.value;
24957
24960
  return t.docChanged ? e.map(t.changes) : e;
24958
24961
  },
24959
24962
  provide: (e) => Be.decorations.from(e)
24960
24963
  });
24961
- function a_(e = {}) {
24962
- let t = qg(e);
24964
+ function o_(e = {}) {
24965
+ let t = Jg(e);
24963
24966
  return [
24964
- i_,
24967
+ a_,
24965
24968
  pt.fromClass(class {
24966
24969
  view;
24967
24970
  hovered = null;
@@ -24977,12 +24980,12 @@ function a_(e = {}) {
24977
24980
  clear() {
24978
24981
  if (this.hovered) {
24979
24982
  this.hovered = null;
24980
- let e = this.view.state.field(i_, !1);
24981
- e && e.size > 0 && this.view.dispatch({ effects: r_.of(at.none) });
24983
+ let e = this.view.state.field(a_, !1);
24984
+ e && e.size > 0 && this.view.dispatch({ effects: i_.of(at.none) });
24982
24985
  }
24983
24986
  }
24984
24987
  async hover(e) {
24985
- let n = sg(this.view.state, e);
24988
+ let n = cg(this.view.state, e);
24986
24989
  if (!n) {
24987
24990
  this.clear();
24988
24991
  return;
@@ -24998,7 +25001,7 @@ function a_(e = {}) {
24998
25001
  try {
24999
25002
  let a = await t.resolve(i, e);
25000
25003
  if (this.hovered !== r || this.view.state !== i) return;
25001
- r.result = a, this.view.dispatch({ effects: r_.of(a ? at.set([Zg.range(n.from, n.to)]) : at.none) });
25004
+ r.result = a, this.view.dispatch({ effects: i_.of(a ? at.set([Qg.range(n.from, n.to)]) : at.none) });
25002
25005
  } catch {}
25003
25006
  }
25004
25007
  destroy() {
@@ -25038,15 +25041,15 @@ function a_(e = {}) {
25038
25041
  }), !0) : !1;
25039
25042
  }
25040
25043
  } }),
25041
- Jg
25044
+ Yg
25042
25045
  ];
25043
25046
  }
25044
- var o_ = (e) => typeof window < "u" && typeof window.prompt == "function" ? window.prompt(`Rename '${e}' to:`, e) : null, s_ = /^[A-Za-z_][\w$]*$/, c_ = /* @__PURE__ */ new Set(/* @__PURE__ */ "all.and.as.asc.between.by.case.cross.delete.desc.distinct.else.end.except.exists.fetch.from.full.group.having.in.inner.insert.intersect.into.is.join.lateral.left.like.limit.natural.not.null.offset.on.or.order.outer.qualify.recursive.right.select.set.table.then.union.update.using.values.when.where.window.with".split("."));
25045
- async function l_(e, t = {}) {
25046
- let n = e.state, r = await qg(t).resolve(n, n.selection.main.head);
25047
+ var s_ = (e) => typeof window < "u" && typeof window.prompt == "function" ? window.prompt(`Rename '${e}' to:`, e) : null, c_ = /^[A-Za-z_][\w$]*$/, l_ = /* @__PURE__ */ new Set(/* @__PURE__ */ "all.and.as.asc.between.by.case.cross.delete.desc.distinct.else.end.except.exists.fetch.from.full.group.having.in.inner.insert.intersect.into.is.join.lateral.left.like.limit.natural.not.null.offset.on.or.order.outer.qualify.recursive.right.select.set.table.then.union.update.using.values.when.where.window.with".split("."));
25048
+ async function u_(e, t = {}) {
25049
+ let n = e.state, r = await Jg(t).resolve(n, n.selection.main.head);
25047
25050
  if (!r) return !1;
25048
- let i = await (t.prompt ?? o_)(r.name);
25049
- return !i || i === r.name || !s_.test(i) || c_.has(i.toLowerCase()) || e.state !== n ? !1 : (e.dispatch({
25051
+ let i = await (t.prompt ?? s_)(r.name);
25052
+ return !i || i === r.name || !c_.test(i) || l_.has(i.toLowerCase()) || e.state !== n ? !1 : (e.dispatch({
25050
25053
  changes: r.references.map((e) => ({
25051
25054
  from: e.from,
25052
25055
  to: e.to,
@@ -25055,36 +25058,36 @@ async function l_(e, t = {}) {
25055
25058
  userEvent: "rename"
25056
25059
  }), !0);
25057
25060
  }
25058
- function u_(e = {}) {
25061
+ function d_(e = {}) {
25059
25062
  let t = {
25060
25063
  ...e,
25061
- resolver: qg(e)
25064
+ resolver: Jg(e)
25062
25065
  }, n = e.gotoDefinitionKeys ?? ["F12", "Mod-b"], r = e.renameKey ?? "F2";
25063
25066
  return lt.of([...n.map((e) => ({
25064
25067
  key: e,
25065
- run: (e) => (n_(e, void 0, t), !0)
25068
+ run: (e) => (r_(e, void 0, t), !0)
25066
25069
  })), {
25067
25070
  key: r,
25068
- run: (e) => (l_(e, t), !0)
25071
+ run: (e) => (u_(e, t), !0)
25069
25072
  }]);
25070
25073
  }
25071
- function d_(e = {}) {
25074
+ function f_(e = {}) {
25072
25075
  let t = {
25073
25076
  ...e,
25074
- resolver: qg(e)
25075
- }, n = [t_(t), a_(t)];
25076
- return e.keymap && n.push(u_(t)), n;
25077
+ resolver: Jg(e)
25078
+ }, n = [n_(t), o_(t)];
25079
+ return e.keymap && n.push(d_(t)), n;
25077
25080
  }
25078
25081
  //#endregion
25079
25082
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/semantic-diagnostics.js
25080
- var f_ = 750;
25081
- function p_(e) {
25083
+ var p_ = 750;
25084
+ function m_(e) {
25082
25085
  return typeof e == "object" && !!e && !Array.isArray(e) && e.type === "select";
25083
25086
  }
25084
- function m_(e) {
25087
+ function h_(e) {
25085
25088
  return Array.isArray(e) ? e : [];
25086
25089
  }
25087
- function h_(e) {
25090
+ function g_(e) {
25088
25091
  return {
25089
25092
  sources: [],
25090
25093
  columnRefs: [],
@@ -25093,23 +25096,23 @@ function h_(e) {
25093
25096
  hasUsingJoin: !1
25094
25097
  };
25095
25098
  }
25096
- function g_(e, t, n) {
25097
- let r = m_(e.with);
25099
+ function __(e, t, n) {
25100
+ let r = h_(e.with);
25098
25101
  for (let e of r) {
25099
25102
  let n = e.name, r = typeof n == "string" ? n : n?.value;
25100
25103
  typeof r == "string" && t.add(r.toLowerCase());
25101
25104
  }
25102
25105
  for (let e of r) {
25103
25106
  let r = e.stmt, i = r?.ast ?? r;
25104
- p_(i) && y_(i, t, n, !1);
25107
+ m_(i) && b_(i, t, n, !1);
25105
25108
  }
25106
25109
  }
25107
- function __(e, t, n, r) {
25108
- e.using != null && (t.hasUsingJoin = !0), typeof e.join == "string" && e.join.toLowerCase().includes("natural") && (t.hasUsingJoin = !0), e.on != null && v_(e.on, t, n, r);
25110
+ function v_(e, t, n, r) {
25111
+ e.using != null && (t.hasUsingJoin = !0), typeof e.join == "string" && e.join.toLowerCase().includes("natural") && (t.hasUsingJoin = !0), e.on != null && y_(e.on, t, n, r);
25109
25112
  let i = e.expr;
25110
25113
  if (i != null) {
25111
25114
  let a = i.ast ?? i;
25112
- p_(a) && y_(a, n, r, !1), t.sources.push({
25115
+ m_(a) && b_(a, n, r, !1), t.sources.push({
25113
25116
  path: "",
25114
25117
  name: "",
25115
25118
  alias: typeof e.as == "string" ? e.as : null,
@@ -25133,10 +25136,10 @@ function __(e, t, n, r) {
25133
25136
  });
25134
25137
  }
25135
25138
  }
25136
- function v_(e, t, n, r) {
25139
+ function y_(e, t, n, r) {
25137
25140
  if (typeof e != "object" || !e) return;
25138
25141
  if (Array.isArray(e)) {
25139
- for (let i of e) v_(i, t, n, r);
25142
+ for (let i of e) y_(i, t, n, r);
25140
25143
  return;
25141
25144
  }
25142
25145
  let i = e;
@@ -25144,78 +25147,78 @@ function v_(e, t, n, r) {
25144
25147
  t.columnRefs.push(i);
25145
25148
  return;
25146
25149
  }
25147
- if (p_(i)) {
25148
- y_(i, n, r, !0);
25150
+ if (m_(i)) {
25151
+ b_(i, n, r, !0);
25149
25152
  return;
25150
25153
  }
25151
- if (p_(i.ast)) {
25152
- y_(i.ast, n, r, !0);
25154
+ if (m_(i.ast)) {
25155
+ b_(i.ast, n, r, !0);
25153
25156
  return;
25154
25157
  }
25155
- for (let [e, a] of Object.entries(i)) e !== "loc" && e !== "tableList" && e !== "columnList" && v_(a, t, n, r);
25158
+ for (let [e, a] of Object.entries(i)) e !== "loc" && e !== "tableList" && e !== "columnList" && y_(a, t, n, r);
25156
25159
  }
25157
- function y_(e, t, n, r) {
25160
+ function b_(e, t, n, r) {
25158
25161
  let i = new Set(t);
25159
- g_(e, i, n);
25160
- let a = h_(!r);
25162
+ __(e, i, n);
25163
+ let a = g_(!r);
25161
25164
  n.push(a);
25162
- for (let t of m_(e.from)) __(t, a, i, n);
25163
- for (let t of m_(e.columns)) typeof t.as == "string" && a.selectAliases.add(t.as.toLowerCase());
25164
- for (let [t, r] of Object.entries(e)) t !== "with" && t !== "from" && t !== "loc" && v_(r, a, i, n);
25165
+ for (let t of h_(e.from)) v_(t, a, i, n);
25166
+ for (let t of h_(e.columns)) typeof t.as == "string" && a.selectAliases.add(t.as.toLowerCase());
25167
+ for (let [t, r] of Object.entries(e)) t !== "with" && t !== "from" && t !== "loc" && y_(r, a, i, n);
25165
25168
  }
25166
- function b_(e, t) {
25169
+ function x_(e, t) {
25167
25170
  let n = /* @__PURE__ */ new Set();
25168
25171
  switch (e.type) {
25169
25172
  case "select":
25170
- y_(e, n, t, !1);
25173
+ b_(e, n, t, !1);
25171
25174
  return;
25172
25175
  case "update": {
25173
- g_(e, n, t);
25174
- let r = h_(!0);
25176
+ __(e, n, t);
25177
+ let r = g_(!0);
25175
25178
  t.push(r);
25176
- for (let i of m_(e.table)) __(i, r, n, t);
25177
- for (let i of m_(e.from)) __(i, r, n, t);
25178
- for (let i of m_(e.set)) i.column != null && r.columnRefs.push({
25179
+ for (let i of h_(e.table)) v_(i, r, n, t);
25180
+ for (let i of h_(e.from)) v_(i, r, n, t);
25181
+ for (let i of h_(e.set)) i.column != null && r.columnRefs.push({
25179
25182
  type: "column_ref",
25180
25183
  table: i.table ?? null,
25181
25184
  column: i.column
25182
- }), v_(i.value, r, n, t);
25183
- for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "set" && i !== "loc" && v_(a, r, n, t);
25185
+ }), y_(i.value, r, n, t);
25186
+ for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "set" && i !== "loc" && y_(a, r, n, t);
25184
25187
  return;
25185
25188
  }
25186
25189
  case "delete": {
25187
- g_(e, n, t);
25188
- let r = h_(!0);
25190
+ __(e, n, t);
25191
+ let r = g_(!0);
25189
25192
  t.push(r);
25190
- for (let i of m_(e.from)) __(i, r, n, t);
25191
- for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "loc" && v_(a, r, n, t);
25193
+ for (let i of h_(e.from)) v_(i, r, n, t);
25194
+ for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "from" && i !== "loc" && y_(a, r, n, t);
25192
25195
  return;
25193
25196
  }
25194
25197
  case "insert":
25195
25198
  case "replace": {
25196
- g_(e, n, t);
25197
- let r = h_(!1);
25199
+ __(e, n, t);
25200
+ let r = g_(!1);
25198
25201
  t.push(r);
25199
- for (let i of m_(e.table)) __(i, r, n, t);
25200
- for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "columns" && i !== "loc" && (p_(a) ? y_(a, n, t, !1) : v_(a, r, n, t));
25202
+ for (let i of h_(e.table)) v_(i, r, n, t);
25203
+ for (let [i, a] of Object.entries(e)) i !== "with" && i !== "table" && i !== "columns" && i !== "loc" && (m_(a) ? b_(a, n, t, !1) : y_(a, r, n, t));
25201
25204
  return;
25202
25205
  }
25203
25206
  case "create":
25204
25207
  case "alter":
25205
25208
  case "drop": {
25206
- let r = h_(!1);
25209
+ let r = g_(!1);
25207
25210
  t.push(r);
25208
- for (let [i, a] of Object.entries(e)) i !== "table" && i !== "loc" && (p_(a) ? y_(a, n, t, !1) : v_(a, r, n, t));
25211
+ for (let [i, a] of Object.entries(e)) i !== "table" && i !== "loc" && (m_(a) ? b_(a, n, t, !1) : y_(a, r, n, t));
25209
25212
  return;
25210
25213
  }
25211
25214
  default: {
25212
- let r = h_(!1);
25215
+ let r = g_(!1);
25213
25216
  t.push(r);
25214
- for (let [i, a] of Object.entries(e)) i !== "loc" && v_(a, r, n, t);
25217
+ for (let [i, a] of Object.entries(e)) i !== "loc" && y_(a, r, n, t);
25215
25218
  }
25216
25219
  }
25217
25220
  }
25218
- function x_(e) {
25221
+ function S_(e) {
25219
25222
  let t = e.column;
25220
25223
  if (typeof t == "string") return t;
25221
25224
  if (typeof t == "object" && t) {
@@ -25224,27 +25227,27 @@ function x_(e) {
25224
25227
  }
25225
25228
  return null;
25226
25229
  }
25227
- function S_(e) {
25230
+ function C_(e) {
25228
25231
  return typeof e.table != "string" || e.table.length === 0 ? null : typeof e.db == "string" && e.db.length > 0 ? `${e.db}.${e.table}` : e.table;
25229
25232
  }
25230
- function C_(e) {
25233
+ function w_(e) {
25231
25234
  if (e == null) return null;
25232
- let t = lh(e) ? e.children : e;
25233
- return uh(t) ? t.map((e) => typeof e == "string" ? e : e.label) : null;
25235
+ let t = uh(e) ? e.children : e;
25236
+ return dh(t) ? t.map((e) => typeof e == "string" ? e : e.label) : null;
25234
25237
  }
25235
- function w_(e, t) {
25236
- let n = fh(e, t, { caseSensitive: !1 });
25238
+ function T_(e, t) {
25239
+ let n = ph(e, t, { caseSensitive: !1 });
25237
25240
  if (n) return {
25238
25241
  exists: !0,
25239
- columns: C_(n.namespace)
25242
+ columns: w_(n.namespace)
25240
25243
  };
25241
25244
  let r = t.split(".").map((e) => e.toLowerCase()), i = r[r.length - 1];
25242
25245
  if (!i) return {
25243
25246
  exists: !1,
25244
25247
  columns: null
25245
25248
  };
25246
- let a = gh(e, i).filter((e) => {
25247
- if (C_(e.namespace) === null || e.path.length < r.length) return !1;
25249
+ let a = _h(e, i).filter((e) => {
25250
+ if (w_(e.namespace) === null || e.path.length < r.length) return !1;
25248
25251
  let t = e.path.slice(-r.length).map((e) => e.toLowerCase());
25249
25252
  return r.every((e, n) => t[n] === e);
25250
25253
  });
@@ -25253,16 +25256,16 @@ function w_(e, t) {
25253
25256
  columns: null
25254
25257
  } : {
25255
25258
  exists: !0,
25256
- columns: a.length === 1 ? C_(a[0]?.namespace) : null
25259
+ columns: a.length === 1 ? w_(a[0]?.namespace) : null
25257
25260
  };
25258
25261
  }
25259
- function T_(e, t) {
25262
+ function E_(e, t) {
25260
25263
  let n = t.toLowerCase();
25261
25264
  return e.some((e) => e.toLowerCase() === n);
25262
25265
  }
25263
- function E_(e, t) {
25266
+ function D_(e, t) {
25264
25267
  let n = [];
25265
- b_(e, n);
25268
+ x_(e, n);
25266
25269
  let r = /* @__PURE__ */ new Map(), i = (e) => {
25267
25270
  let t = `${e.kind}::${e.identifier.toLowerCase()}`;
25268
25271
  r.has(t) || r.set(t, e);
@@ -25274,7 +25277,7 @@ function E_(e, t) {
25274
25277
  exists: !0,
25275
25278
  columns: null
25276
25279
  };
25277
- let n = w_(t, e.path);
25280
+ let n = T_(t, e.path);
25278
25281
  return {
25279
25282
  source: e,
25280
25283
  exists: n.exists,
@@ -25287,12 +25290,12 @@ function E_(e, t) {
25287
25290
  message: `Unknown table '${e.path}'`
25288
25291
  });
25289
25292
  for (let t of e.columnRefs) {
25290
- let r = x_(t);
25293
+ let r = S_(t);
25291
25294
  if (!r || r === "*") continue;
25292
- let a = S_(t);
25295
+ let a = C_(t);
25293
25296
  if (a) {
25294
25297
  let e = a.toLowerCase(), t = n.find((t) => t.source.alias?.toLowerCase() === e) ?? n.find((t) => t.source.name.toLowerCase() === e || t.source.path.toLowerCase() === e);
25295
- t?.columns && !T_(t.columns, r) && i({
25298
+ t?.columns && !E_(t.columns, r) && i({
25296
25299
  kind: "unknownColumn",
25297
25300
  identifier: r,
25298
25301
  message: `Column '${r}' not found in table '${t.source.path || a}'`
@@ -25300,7 +25303,7 @@ function E_(e, t) {
25300
25303
  continue;
25301
25304
  }
25302
25305
  if (!e.checkUnqualified || e.selectAliases.has(r.toLowerCase())) continue;
25303
- let o = n.filter((e) => e.columns !== null && T_(e.columns, r));
25306
+ let o = n.filter((e) => e.columns !== null && E_(e.columns, r));
25304
25307
  if (o.length >= 2 && !e.hasUsingJoin) {
25305
25308
  i({
25306
25309
  kind: "ambiguousColumn",
@@ -25319,7 +25322,7 @@ function E_(e, t) {
25319
25322
  }
25320
25323
  return [...r.values()];
25321
25324
  }
25322
- function D_(e, t) {
25325
+ function O_(e, t) {
25323
25326
  let n = e.toLowerCase(), r = t.toLowerCase(), i = n.indexOf(r);
25324
25327
  for (; i !== -1;) {
25325
25328
  let e = i > 0 ? n[i - 1] ?? "" : "", t = n[i + r.length] ?? "";
@@ -25328,8 +25331,8 @@ function D_(e, t) {
25328
25331
  }
25329
25332
  return -1;
25330
25333
  }
25331
- function O_(e, t, n, r) {
25332
- let i = n.sliceString(t.from, t.to), a = D_(i, e.identifier), o = a === -1 ? t.from : t.from + a;
25334
+ function k_(e, t, n, r) {
25335
+ let i = n.sliceString(t.from, t.to), a = O_(i, e.identifier), o = a === -1 ? t.from : t.from + a;
25333
25336
  return {
25334
25337
  from: o,
25335
25338
  to: Math.min(a === -1 ? t.from + (i.match(/^[\w"'`.]+/)?.[0].length ?? 1) : o + e.identifier.length, t.to),
@@ -25338,18 +25341,18 @@ function O_(e, t, n, r) {
25338
25341
  source: "sql-schema"
25339
25342
  };
25340
25343
  }
25341
- function k_(e) {
25342
- return uh(e) ? e.length === 0 : ch(e) ? Object.keys(e).length === 0 : !1;
25344
+ function A_(e) {
25345
+ return dh(e) ? e.length === 0 : lh(e) ? Object.keys(e).length === 0 : !1;
25343
25346
  }
25344
- function A_(e = {}) {
25345
- let t = e.parser || new Eh(), n = e.structureAnalyzer || new $h(t), r = {
25347
+ function j_(e = {}) {
25348
+ let t = e.parser || new Dh(), n = e.structureAnalyzer || new eg(t), r = {
25346
25349
  unknownTable: e.severity?.unknownTable ?? "warning",
25347
25350
  unknownColumn: e.severity?.unknownColumn ?? "warning",
25348
25351
  ambiguousColumn: e.severity?.ambiguousColumn ?? "warning"
25349
25352
  };
25350
25353
  return async (i) => {
25351
- let a = bh(e.schema, i);
25352
- if (a == null || k_(a)) return [];
25354
+ let a = xh(e.schema, i);
25355
+ if (a == null || A_(a)) return [];
25353
25356
  let o = i.state.doc;
25354
25357
  if (!o.toString().trim()) return [];
25355
25358
  let s = [], c = await n.analyzeDocument(i.state);
@@ -25358,20 +25361,20 @@ function A_(e = {}) {
25358
25361
  let n = await t.parse(e.content, { state: i.state });
25359
25362
  if (!n.success || n.ast == null) continue;
25360
25363
  let c = Array.isArray(n.ast) ? n.ast : [n.ast];
25361
- for (let t of c) for (let n of E_(t, a)) {
25364
+ for (let t of c) for (let n of D_(t, a)) {
25362
25365
  let t = r[n.kind];
25363
- t !== "off" && s.push(O_(n, e, o, t));
25366
+ t !== "off" && s.push(k_(n, e, o, t));
25364
25367
  }
25365
25368
  }
25366
25369
  return s;
25367
25370
  };
25368
25371
  }
25369
- function j_(e = {}) {
25370
- return St(A_(e), { delay: e.delay || f_ });
25372
+ function M_(e = {}) {
25373
+ return St(j_(e), { delay: e.delay || p_ });
25371
25374
  }
25372
25375
  //#endregion
25373
25376
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/structure-extension.js
25374
- var M_ = Qe.define(), N_ = yt.define({
25377
+ var N_ = Qe.define(), P_ = yt.define({
25375
25378
  create() {
25376
25379
  return {
25377
25380
  currentStatement: null,
@@ -25381,11 +25384,11 @@ var M_ = Qe.define(), N_ = yt.define({
25381
25384
  };
25382
25385
  },
25383
25386
  update(e, t) {
25384
- for (let e of t.effects) if (e.is(M_)) return e.value;
25387
+ for (let e of t.effects) if (e.is(N_)) return e.value;
25385
25388
  return e;
25386
25389
  }
25387
25390
  });
25388
- function P_(e, t) {
25391
+ function F_(e, t) {
25389
25392
  let { isCurrent: n, isValid: r, isFocused: i } = t, a = e.backgroundColor || "#3b82f6";
25390
25393
  !r && e.showInvalid !== !1 && (a = e.errorBackgroundColor || "#ef4444");
25391
25394
  let o = n ? "1" : (e.inactiveOpacity ?? .3).toString(), s;
@@ -25394,7 +25397,7 @@ function P_(e, t) {
25394
25397
  opacity: s
25395
25398
  };
25396
25399
  }
25397
- var F_ = class extends st {
25400
+ var I_ = class extends st {
25398
25401
  config;
25399
25402
  isCurrent;
25400
25403
  isValid;
@@ -25405,7 +25408,7 @@ var F_ = class extends st {
25405
25408
  toDOM() {
25406
25409
  let e = document.createElement("div");
25407
25410
  e.className = "cm-sql-gutter-marker";
25408
- let { backgroundColor: t, opacity: n } = P_(this.config, {
25411
+ let { backgroundColor: t, opacity: n } = F_(this.config, {
25409
25412
  isCurrent: this.isCurrent,
25410
25413
  isValid: this.isValid,
25411
25414
  isFocused: this.isFocused
@@ -25423,10 +25426,10 @@ var F_ = class extends st {
25423
25426
  return this.isCurrent === e.isCurrent && this.isValid === e.isValid && this.isFocused === e.isFocused && this.config === e.config;
25424
25427
  }
25425
25428
  };
25426
- function I_(e, t) {
25429
+ function L_(e, t) {
25427
25430
  let n = Ke.empty;
25428
25431
  if (t.whenHide?.(e)) return n;
25429
- let r = e.state.field(N_, !1);
25432
+ let r = e.state.field(P_, !1);
25430
25433
  if (!r) return n;
25431
25434
  let { currentStatement: i, allStatements: a, isFocused: o } = r;
25432
25435
  try {
@@ -25435,7 +25438,7 @@ function I_(e, t) {
25435
25438
  if (c.lineTo < r || c.lineFrom > s) continue;
25436
25439
  let a = i?.from === c.from && i?.to === c.to;
25437
25440
  if (!c.isValid && t.showInvalid === !1) continue;
25438
- let l = new F_(t, a, c.isValid, o), u = Math.max(c.lineFrom, r), d = Math.min(c.lineTo, s);
25441
+ let l = new I_(t, a, c.isValid, o), u = Math.max(c.lineFrom, r), d = Math.min(c.lineTo, s);
25439
25442
  for (let t = u; t <= d; t++) try {
25440
25443
  if (t < 1 || t > e.state.doc.lines) continue;
25441
25444
  let r = e.state.doc.line(t);
@@ -25449,21 +25452,21 @@ function I_(e, t) {
25449
25452
  }
25450
25453
  return n;
25451
25454
  }
25452
- async function L_(e, t) {
25455
+ async function R_(e, t) {
25453
25456
  let { state: n } = e, r = n.selection.main.head, i = await t.analyzeDocument(n), a = {
25454
25457
  currentStatement: await t.getStatementAtPosition(n, r),
25455
25458
  allStatements: i,
25456
25459
  cursorPosition: r,
25457
25460
  isFocused: e.hasFocus
25458
25461
  };
25459
- e.dispatch({ effects: M_.of(a) });
25462
+ e.dispatch({ effects: N_.of(a) });
25460
25463
  }
25461
- function R_(e) {
25462
- return pt.define((t) => (L_(t, e), { update(t) {
25463
- !t.docChanged && !t.selectionSet && !t.focusChanged || L_(t.view, e);
25464
+ function z_(e) {
25465
+ return pt.define((t) => (R_(t, e), { update(t) {
25466
+ !t.docChanged && !t.selectionSet && !t.focusChanged || R_(t.view, e);
25464
25467
  } }));
25465
25468
  }
25466
- function z_(e) {
25469
+ function B_(e) {
25467
25470
  let t = e.width || 3;
25468
25471
  return Be.baseTheme({
25469
25472
  ".cm-sql-gutter": {
@@ -25486,35 +25489,35 @@ function z_(e) {
25486
25489
  }
25487
25490
  });
25488
25491
  }
25489
- function B_(e) {
25492
+ function V_(e) {
25490
25493
  return ht({
25491
25494
  class: `cm-sql-gutter ${e.className || ""}`,
25492
- markers: (t) => I_(t, e)
25495
+ markers: (t) => L_(t, e)
25493
25496
  });
25494
25497
  }
25495
- function V_(e = {}) {
25498
+ function H_(e = {}) {
25496
25499
  return [
25497
- N_,
25498
- R_(new $h(e.parser || new Eh())),
25499
- z_(e),
25500
- B_(e)
25500
+ P_,
25501
+ z_(new eg(e.parser || new Dh())),
25502
+ B_(e),
25503
+ V_(e)
25501
25504
  ];
25502
25505
  }
25503
25506
  //#endregion
25504
25507
  //#region ../node_modules/.pnpm/@marimo-team+codemirror-sql@0.3.0_@codemirror+autocomplete@6.20.3_@codemirror+lint@6.9._ea1055731b2d7fd34c5d3340d30da00f/node_modules/@marimo-team/codemirror-sql/dist/sql/extension.js
25505
- function H_(e = {}) {
25508
+ function U_(e = {}) {
25506
25509
  let t = [], { schema: n, enableLinting: r = !0, enableSemanticLinting: i = !0, enableGutterMarkers: a = !0, enableHover: o = !0, enableNavigation: s = !0, linterConfig: c, semanticLinterConfig: l, gutterConfig: u, hoverConfig: d, navigationConfig: f } = e;
25507
- if (n != null && t.push(yh.of(n)), r && t.push(Pg(c)), i) {
25510
+ if (n != null && t.push(bh.of(n)), r && t.push(Fg(c)), i) {
25508
25511
  let e = l?.parser ?? c?.parser, n = l?.structureAnalyzer ?? (l?.parser == null ? c?.structureAnalyzer : void 0);
25509
- t.push(j_({
25512
+ t.push(M_({
25510
25513
  ...l,
25511
25514
  parser: e,
25512
25515
  structureAnalyzer: n
25513
25516
  }));
25514
25517
  }
25515
- if (a && t.push(V_(u)), o && (t.push(Rg(d)), t.push(d?.theme ?? Kg())), s) {
25518
+ if (a && t.push(H_(u)), o && (t.push(zg(d)), t.push(d?.theme ?? qg())), s) {
25516
25519
  let e = f?.parser ?? c?.parser, n = f?.structureAnalyzer ?? (f?.parser == null ? c?.structureAnalyzer : void 0);
25517
- t.push(...d_({
25520
+ t.push(...f_({
25518
25521
  ...f,
25519
25522
  parser: e,
25520
25523
  structureAnalyzer: n
@@ -25524,7 +25527,7 @@ function H_(e = {}) {
25524
25527
  }
25525
25528
  //#endregion
25526
25529
  //#region src/core/network/CachingRequestRegistry.ts
25527
- var U_ = class e {
25530
+ var W_ = class e {
25528
25531
  delegate;
25529
25532
  toKey;
25530
25533
  cache;
@@ -25550,7 +25553,7 @@ var U_ = class e {
25550
25553
  reject(e, t) {
25551
25554
  this.delegate.reject(e, t);
25552
25555
  }
25553
- }, W_ = new bf("data-source-discovery-result", async (e) => {
25556
+ }, G_ = new bf("data-source-discovery-result", async (e) => {
25554
25557
  await xl().discoverDataSources({ requestId: e });
25555
25558
  });
25556
25559
  new bf("sql-table-preview", async (e, t) => {
@@ -25569,32 +25572,32 @@ new bf("sql-table-preview", async (e, t) => {
25569
25572
  ...t
25570
25573
  });
25571
25574
  });
25572
- var G_ = new U_(new bf("validate-sql", async (e, t) => {
25575
+ var K_ = new W_(new bf("validate-sql", async (e, t) => {
25573
25576
  await xl().validateSQL({
25574
25577
  requestId: e,
25575
25578
  ...t
25576
25579
  });
25577
- }), { maxSize: 3 }), K_ = A(/* @__PURE__ */ new Map());
25578
- function q_(e) {
25579
- let t = j.get(K_), n = new Map(t);
25580
- n.delete(e), j.set(K_, n);
25580
+ }), { maxSize: 3 }), q_ = A(/* @__PURE__ */ new Map());
25581
+ function J_(e) {
25582
+ let t = j.get(q_), n = new Map(t);
25583
+ n.delete(e), j.set(q_, n);
25581
25584
  }
25582
- function J_() {
25583
- j.set(K_, /* @__PURE__ */ new Map());
25585
+ function Y_() {
25586
+ j.set(q_, /* @__PURE__ */ new Map());
25584
25587
  }
25585
- function Y_({ cellId: e, errorMessage: t, dialect: n }) {
25586
- let r = j.get(K_), i = new Map(r), a = n === "DuckDB" ? X_(t) : Z_(t);
25587
- i.set(e, a), j.set(K_, i);
25588
+ function X_({ cellId: e, errorMessage: t, dialect: n }) {
25589
+ let r = j.get(q_), i = new Map(r), a = n === "DuckDB" ? Z_(t) : Q_(t);
25590
+ i.set(e, a), j.set(q_, i);
25588
25591
  }
25589
- function X_(e) {
25590
- let { errorType: t, errorMessage: n } = Z_(e), r = n, i, a = n.indexOf("LINE ");
25592
+ function Z_(e) {
25593
+ let { errorType: t, errorMessage: n } = Q_(e), r = n, i, a = n.indexOf("LINE ");
25591
25594
  return a !== -1 && (i = n.slice(Math.max(0, a)).trim(), r = n.slice(0, Math.max(0, a)).trim()), {
25592
25595
  errorType: t,
25593
25596
  errorMessage: r,
25594
25597
  codeblock: i
25595
25598
  };
25596
25599
  }
25597
- function Z_(e) {
25600
+ function Q_(e) {
25598
25601
  return {
25599
25602
  errorType: e.split(":")[0].trim(),
25600
25603
  errorMessage: e.split(":").slice(1).join(":").trim()
@@ -25602,26 +25605,26 @@ function Z_(e) {
25602
25605
  }
25603
25606
  //#endregion
25604
25607
  //#region src/core/codemirror/language/languages/sql/completion-sources.tsx
25605
- function Q_(e) {
25608
+ function $_(e) {
25606
25609
  return e.field(Ku);
25607
25610
  }
25608
- function $_() {
25611
+ function ev() {
25609
25612
  return (e) => {
25610
- let t = Q_(e.state).engine, n = Uu.getCompletionSource(t);
25613
+ let t = $_(e.state).engine, n = Uu.getCompletionSource(t);
25611
25614
  return n && Ut(n)(e) || null;
25612
25615
  };
25613
25616
  }
25614
- function ev() {
25617
+ function tv() {
25615
25618
  return (e) => {
25616
- let t = Q_(e.state).engine, n = Uu.getDialect(t);
25619
+ let t = $_(e.state).engine, n = Uu.getDialect(t);
25617
25620
  return e.matchBefore(/\.\w*/) ? null : Ht(n, !0, (e, t) => ({
25618
25621
  label: e,
25619
25622
  type: t,
25620
25623
  info: async () => {
25621
- let t = (await tv())[e.toLocaleLowerCase()];
25624
+ let t = (await nv())[e.toLocaleLowerCase()];
25622
25625
  if (!t) return null;
25623
25626
  let n = document.createElement("div");
25624
- return n.innerHTML = Gg.keyword({
25627
+ return n.innerHTML = Kg.keyword({
25625
25628
  keyword: e,
25626
25629
  info: t
25627
25630
  }), n;
@@ -25629,31 +25632,31 @@ function ev() {
25629
25632
  }))(e);
25630
25633
  };
25631
25634
  }
25632
- var tv = Pt(async () => {
25635
+ var nv = Pt(async () => {
25633
25636
  let e = await import("./common-keywords-8jMJIC1L.js"), t = await import("./duckdb-keywords-BGArYVVK.js");
25634
25637
  return {
25635
25638
  ...e.default.keywords,
25636
25639
  ...t.default.keywords
25637
25640
  };
25638
- }), nv = Cr("marimo:notebook-sql-mode", "default", Xd);
25639
- function rv() {
25640
- let e = (0, wr.c)(3), [t, n] = Ae(nv), r;
25641
+ }), rv = Cr("marimo:notebook-sql-mode", "default", Xd);
25642
+ function iv() {
25643
+ let e = (0, wr.c)(3), [t, n] = Ae(rv), r;
25641
25644
  return e[0] !== n || e[1] !== t ? (r = {
25642
25645
  sqlMode: t,
25643
25646
  setSQLMode: n
25644
25647
  }, e[0] = n, e[1] = t, e[2] = r) : r = e[2], r;
25645
25648
  }
25646
- function iv() {
25647
- return j.get(nv);
25649
+ function av() {
25650
+ return j.get(rv);
25648
25651
  }
25649
25652
  //#endregion
25650
25653
  //#region src/core/codemirror/language/languages/sql/sql.ts
25651
- var av = Dl, ov = "DuckDB", sv = new dt();
25652
- function cv() {
25654
+ var ov = Dl, sv = "DuckDB", cv = new dt();
25655
+ function lv() {
25653
25656
  let { latestEngineSelected: e, connectionsMap: t } = j.get(Yl);
25654
25657
  return e === null ? [...t.values()].reverse().find((e) => !Pl.has(e.name) && e.source !== "iceberg")?.name ?? "__marimo_duckdb" : e;
25655
25658
  }
25656
- var lv = class {
25659
+ var uv = class {
25657
25660
  parser = new Fd();
25658
25661
  type = "sql";
25659
25662
  sqlModeEnabled;
@@ -25663,16 +25666,16 @@ var lv = class {
25663
25666
  get defaultMetadata() {
25664
25667
  return {
25665
25668
  ...this.parser.defaultMetadata,
25666
- engine: cv() || "__marimo_duckdb"
25669
+ engine: lv() || "__marimo_duckdb"
25667
25670
  };
25668
25671
  }
25669
25672
  get defaultCode() {
25670
- let e = cv();
25673
+ let e = lv();
25671
25674
  return e && e !== "__marimo_duckdb" ? `_df = mo.sql(f"""SELECT * FROM """, engine=${e})` : this.parser.defaultCode;
25672
25675
  }
25673
25676
  static fromQuery = (e) => Fd.fromQuery(e);
25674
25677
  transformIn(e) {
25675
- this.parser.defaultMetadata.engine = cv() || "__marimo_duckdb";
25678
+ this.parser.defaultMetadata.engine = lv() || "__marimo_duckdb";
25676
25679
  let t = this.parser.transformIn(e), n = t.metadata;
25677
25680
  return n.engine && n.engine !== "__marimo_duckdb" && Ql(n.engine), [
25678
25681
  t.code,
@@ -25688,8 +25691,8 @@ var lv = class {
25688
25691
  return this.parser.isSupported(e);
25689
25692
  }
25690
25693
  getExtension({ lspConfig: e }) {
25691
- let t = uv(), n = [
25692
- sv.of(Jt({ dialect: av })),
25694
+ let t = dv(), n = [
25695
+ cv.of(Jt({ dialect: ov })),
25693
25696
  lt.of([{
25694
25697
  key: "Tab",
25695
25698
  run: (e) => Lt(e) || Tt(e),
@@ -25699,9 +25702,9 @@ var lv = class {
25699
25702
  defaultKeymap: !1,
25700
25703
  activateOnTyping: !0,
25701
25704
  override: [
25702
- $_(),
25703
- jp,
25704
25705
  ev(),
25706
+ jp,
25707
+ tv(),
25705
25708
  t.cteCompletionSource,
25706
25709
  t.aliasCompletionSource,
25707
25710
  t.columnCompletionSource
@@ -25709,9 +25712,9 @@ var lv = class {
25709
25712
  })
25710
25713
  ];
25711
25714
  if (e?.diagnostics?.sql_linter ?? !1) {
25712
- let e = j.get(Ie), r = new mv({ getParserOptions: (e) => ({ database: xv(e) ?? ov }) });
25713
- n.push(H_({
25714
- schema: yv,
25715
+ let e = j.get(Ie), r = new hv({ getParserOptions: (e) => ({ database: Sv(e) ?? sv }) });
25716
+ n.push(U_({
25717
+ schema: bv,
25715
25718
  enableLinting: !0,
25716
25719
  linterConfig: {
25717
25720
  delay: 250,
@@ -25742,7 +25745,7 @@ var lv = class {
25742
25745
  enableColumns: !0,
25743
25746
  parser: t.parser,
25744
25747
  contextAnalyzer: t.contextAnalyzer,
25745
- theme: Kg(e)
25748
+ theme: qg(e)
25746
25749
  },
25747
25750
  enableNavigation: !0,
25748
25751
  navigationConfig: {
@@ -25755,36 +25758,36 @@ var lv = class {
25755
25758
  e.focusChanged && r.setFocusState(e.view.hasFocus);
25756
25759
  }));
25757
25760
  }
25758
- return this.sqlModeEnabled && n.push(wv()), n;
25761
+ return this.sqlModeEnabled && n.push(Tv()), n;
25759
25762
  }
25760
25763
  };
25761
- function uv() {
25762
- let e = new Eh({ getParserOptions: (e) => ({ database: dv(e) }) }), t = new fv(e), n = new pv(e);
25764
+ function dv() {
25765
+ let e = new Dh({ getParserOptions: (e) => ({ database: fv(e) }) }), t = new pv(e), n = new mv(e);
25763
25766
  return {
25764
25767
  parser: e,
25765
25768
  contextAnalyzer: t,
25766
25769
  structureAnalyzer: n,
25767
- cteCompletionSource: kg({
25770
+ cteCompletionSource: Ag({
25768
25771
  parser: e,
25769
25772
  contextAnalyzer: t,
25770
25773
  structureAnalyzer: n
25771
25774
  }),
25772
- aliasCompletionSource: eg({
25773
- schema: yv,
25775
+ aliasCompletionSource: tg({
25776
+ schema: bv,
25774
25777
  parser: e,
25775
25778
  contextAnalyzer: t
25776
25779
  }),
25777
- columnCompletionSource: ig({
25778
- schema: yv,
25780
+ columnCompletionSource: ag({
25781
+ schema: bv,
25779
25782
  parser: e,
25780
25783
  contextAnalyzer: t
25781
25784
  })
25782
25785
  };
25783
25786
  }
25784
- function dv(e) {
25785
- return xv(e) ?? ov;
25787
+ function fv(e) {
25788
+ return Sv(e) ?? sv;
25786
25789
  }
25787
- var fv = class extends Qh {
25790
+ var pv = class extends $h {
25788
25791
  analyzers = /* @__PURE__ */ new Map();
25789
25792
  analysisParser;
25790
25793
  constructor(e) {
@@ -25797,10 +25800,10 @@ var fv = class extends Qh {
25797
25800
  for (let e of this.analyzers.values()) e.clearCache();
25798
25801
  }
25799
25802
  getAnalyzer(e) {
25800
- let t = dv(e), n = this.analyzers.get(t);
25801
- return n || (n = new Qh(this.analysisParser), this.analyzers.set(t, n)), n;
25803
+ let t = fv(e), n = this.analyzers.get(t);
25804
+ return n || (n = new $h(this.analysisParser), this.analyzers.set(t, n)), n;
25802
25805
  }
25803
- }, pv = class extends $h {
25806
+ }, mv = class extends eg {
25804
25807
  analyzers = /* @__PURE__ */ new Map();
25805
25808
  analysisParser;
25806
25809
  constructor(e) {
@@ -25819,10 +25822,10 @@ var fv = class extends Qh {
25819
25822
  for (let e of this.analyzers.values()) e.clearCache();
25820
25823
  }
25821
25824
  getAnalyzer(e) {
25822
- let t = dv(e), n = this.analyzers.get(t);
25823
- return n || (n = new $h(this.analysisParser), this.analyzers.set(t, n)), n;
25825
+ let t = fv(e), n = this.analyzers.get(t);
25826
+ return n || (n = new eg(this.analysisParser), this.analyzers.set(t, n)), n;
25824
25827
  }
25825
- }, mv = class extends Eh {
25828
+ }, hv = class extends Dh {
25826
25829
  validationTimeout = null;
25827
25830
  pendingValidationResolve = null;
25828
25831
  VALIDATION_DELAY_MS = 300;
@@ -25841,7 +25844,7 @@ var fv = class extends Qh {
25841
25844
  return;
25842
25845
  }
25843
25846
  try {
25844
- let r = await Tv(e, t, n, Pl.has(t) ? iv() : "default");
25847
+ let r = await Ev(e, t, n, Pl.has(t) ? av() : "default");
25845
25848
  if (r.error) {
25846
25849
  a.error("Failed to validate SQL", { error: r.error }), this.resolvePendingValidation([]);
25847
25850
  return;
@@ -25854,52 +25857,52 @@ var fv = class extends Qh {
25854
25857
  });
25855
25858
  }
25856
25859
  async validateSql(e, t) {
25857
- let n = vv(t.state), r = Sv(n.engine);
25858
- return this.isFocused ? hv(n.engine, r) ? this.validateWithDelay(e, n.engine, r ?? ov) : super.validateSql(e, t) : [];
25860
+ let n = yv(t.state), r = Cv(n.engine);
25861
+ return this.isFocused ? gv(n.engine, r) ? this.validateWithDelay(e, n.engine, r ?? sv) : super.validateSql(e, t) : [];
25859
25862
  }
25860
25863
  async parse(e, t) {
25861
- let n = vv(t.state).engine;
25862
- return hv(n, Sv(n)) ? {
25864
+ let n = yv(t.state).engine;
25865
+ return gv(n, Cv(n)) ? {
25863
25866
  success: !0,
25864
25867
  errors: []
25865
25868
  } : super.parse(e, t);
25866
25869
  }
25867
25870
  };
25868
- function hv(e, t) {
25871
+ function gv(e, t) {
25869
25872
  return e === "__marimo_duckdb" || t === "DuckDB";
25870
25873
  }
25871
- function gv(e) {
25874
+ function _v(e) {
25872
25875
  let t = Uu.getDialect(e);
25873
- return sv.reconfigure(Jt({ dialect: t }));
25876
+ return cv.reconfigure(Jt({ dialect: t }));
25874
25877
  }
25875
- function _v(e, t) {
25876
- e.dispatch({ effects: gv(t) });
25878
+ function vv(e, t) {
25879
+ e.dispatch({ effects: _v(t) });
25877
25880
  }
25878
- function vv(e) {
25881
+ function yv(e) {
25879
25882
  return e.field(Ku);
25880
25883
  }
25881
- function yv(e) {
25882
- let t = vv(e.state).engine, n = Uu.getCompletionSource(t);
25884
+ function bv(e) {
25885
+ let t = yv(e.state).engine, n = Uu.getCompletionSource(t);
25883
25886
  if (!n?.schema) return {};
25884
25887
  let r = n.schema;
25885
- if (!bv(r)) return r;
25888
+ if (!xv(r)) return r;
25886
25889
  let i = n.defaultSchema, a = i ? r[i] : void 0;
25887
- return a && !Array.isArray(a) && typeof a == "object" && "children" in a && bv(a.children) ? {
25890
+ return a && !Array.isArray(a) && typeof a == "object" && "children" in a && xv(a.children) ? {
25888
25891
  ...r,
25889
25892
  ...Object.fromEntries(Object.entries(a.children).filter(([e]) => !Object.hasOwn(r, e)))
25890
25893
  } : r;
25891
25894
  }
25892
- function bv(e) {
25895
+ function xv(e) {
25893
25896
  if (Array.isArray(e)) return !1;
25894
25897
  if (!("self" in e) || !("children" in e)) return !0;
25895
25898
  let t = e.self;
25896
25899
  return !(typeof t == "object" && t && !Array.isArray(t) && "label" in t && typeof t.label == "string");
25897
25900
  }
25898
- function xv(e) {
25899
- let t = vv(e).engine;
25900
- return Sv(t);
25901
- }
25902
25901
  function Sv(e) {
25902
+ let t = yv(e).engine;
25903
+ return Cv(t);
25904
+ }
25905
+ function Cv(e) {
25903
25906
  let t = Uu.getInternalDialect(e)?.toLowerCase();
25904
25907
  if (!t || !kl(t)) return null;
25905
25908
  switch (t) {
@@ -25938,45 +25941,45 @@ function Sv(e) {
25938
25941
  default: return T(t), null;
25939
25942
  }
25940
25943
  }
25941
- var Cv = 300;
25942
- function wv() {
25944
+ var wv = 300;
25945
+ function Tv() {
25943
25946
  return pt.define((e) => {
25944
25947
  let t, n = null, r = e.state.facet(Cl);
25945
25948
  return {
25946
25949
  update(e) {
25947
25950
  if (!e.docChanged) return;
25948
- let i = iv();
25951
+ let i = av();
25949
25952
  if (i === "default") return;
25950
- let o = vv(e.state).engine;
25953
+ let o = yv(e.state).engine;
25951
25954
  if (!Pl.has(o)) return;
25952
25955
  let s = e.state.doc.toString();
25953
25956
  t && window.clearTimeout(t), t = window.setTimeout(async () => {
25954
25957
  if (n !== s) {
25955
25958
  if (n = s, s === "") {
25956
- q_(r);
25959
+ J_(r);
25957
25960
  return;
25958
25961
  }
25959
25962
  try {
25960
- let e = Sv(o), t = (await Tv(s, o, e, i)).validate_result;
25961
- t?.error_message ? Y_({
25963
+ let e = Cv(o), t = (await Ev(s, o, e, i)).validate_result;
25964
+ t?.error_message ? X_({
25962
25965
  cellId: r,
25963
25966
  errorMessage: t.error_message,
25964
25967
  dialect: e
25965
- }) : q_(r);
25968
+ }) : J_(r);
25966
25969
  } catch (e) {
25967
25970
  a.error("Failed to validate SQL", { error: e });
25968
25971
  }
25969
25972
  }
25970
- }, Cv);
25973
+ }, wv);
25971
25974
  },
25972
25975
  destroy() {
25973
- t && window.clearTimeout(t), q_(r);
25976
+ t && window.clearTimeout(t), J_(r);
25974
25977
  }
25975
25978
  };
25976
25979
  });
25977
25980
  }
25978
- async function Tv(e, t, n, r) {
25979
- let i = await G_.request({
25981
+ async function Ev(e, t, n, r) {
25982
+ let i = await K_.request({
25980
25983
  onlyParse: r === "default",
25981
25984
  engine: t,
25982
25985
  dialect: n,
@@ -25987,17 +25990,17 @@ async function Tv(e, t, n, r) {
25987
25990
  }
25988
25991
  //#endregion
25989
25992
  //#region src/core/codemirror/language/LanguageAdapters.ts
25990
- var Ev = Pt(() => new ih()), Dv = Pt(() => new zp()), Ov = Pt(() => new lv()), kv = {
25993
+ var Dv = Pt(() => new ah()), Ov = Pt(() => new zp()), kv = Pt(() => new uv()), Av = {
25991
25994
  get python() {
25992
- return Ev();
25995
+ return Dv();
25993
25996
  },
25994
25997
  get markdown() {
25995
- return Dv();
25998
+ return Ov();
25996
25999
  },
25997
26000
  get sql() {
25998
- return Ov();
26001
+ return kv();
25999
26002
  }
26000
- }, Av = P.forwardRef((e, t) => {
26003
+ }, jv = P.forwardRef((e, t) => {
26001
26004
  let n = (0, wr.c)(13), r, i;
26002
26005
  n[0] === e ? (r = n[1], i = n[2]) : ({className: r, ...i} = e, n[0] = e, n[1] = r, n[2] = i);
26003
26006
  let a;
@@ -26017,27 +26020,27 @@ var Ev = Pt(() => new ih()), Dv = Pt(() => new zp()), Ov = Pt(() => new lv()), k
26017
26020
  children: c
26018
26021
  }), n[8] = i, n[9] = t, n[10] = a, n[11] = c, n[12] = l) : l = n[12], l;
26019
26022
  });
26020
- Av.displayName = Qn.displayName;
26021
- var jv = /* @__PURE__ */ new Set(/* @__PURE__ */ "__*.marimo.app.False.None.True.__peg_parser__.and.as.assert.async.await.break.class.continue.def.del.elif.else.except.finally.for.from.global.if.import.in.is.lambda.nonlocal.not.or.pass.raise.return.try.while.with.yield.None.setup".split("."));
26022
- function Mv(e, t = !0) {
26023
+ jv.displayName = Qn.displayName;
26024
+ var Mv = /* @__PURE__ */ new Set(/* @__PURE__ */ "__*.marimo.app.False.None.True.__peg_parser__.and.as.assert.async.await.break.class.continue.def.del.elif.else.except.finally.for.from.global.if.import.in.is.lambda.nonlocal.not.or.pass.raise.return.try.while.with.yield.None.setup".split("."));
26025
+ function Nv(e, t = !0) {
26023
26026
  return e = e.trim(), e ? (/^\d/.test(e) && (e = `_${e}`), e = e.replaceAll(/\W/g, "_"), t ? e.toLowerCase() : e) : "_";
26024
26027
  }
26025
- function Nv(e, t) {
26026
- let n = new Set(t), r = e, i = (e) => !n.has(e) && !jv.has(e);
26028
+ function Pv(e, t) {
26029
+ let n = new Set(t), r = e, i = (e) => !n.has(e) && !Mv.has(e);
26027
26030
  if (i(e)) return e;
26028
26031
  let a = 1;
26029
26032
  for (; !i(r);) r = `${e}_${a}`, a++;
26030
26033
  return r;
26031
26034
  }
26032
- function Pv(e, t) {
26033
- return Fv(e) ? `cell-${t}` : e;
26035
+ function Fv(e, t) {
26036
+ return Iv(e) ? `cell-${t}` : e;
26034
26037
  }
26035
- function Fv(e) {
26038
+ function Iv(e) {
26036
26039
  return !e || e === "_" || e === "__";
26037
26040
  }
26038
26041
  //#endregion
26039
26042
  //#region src/hooks/useAutoGrowInputProps.ts
26040
- function Iv(e) {
26043
+ function Lv(e) {
26041
26044
  let t = (0, wr.c)(15), { minWidth: n, padding: r } = e, i = n === void 0 ? 70 : n, a = r === void 0 ? 15 : r, [o, s] = (0, P.useState)(50), c = (0, P.useRef)(null), l = (0, P.useRef)(null), u;
26042
26045
  t[0] === a ? u = t[1] : (u = (e) => {
26043
26046
  if (l.current && c.current) {
@@ -26084,11 +26087,11 @@ function Iv(e) {
26084
26087
  }
26085
26088
  //#endregion
26086
26089
  //#region src/core/codemirror/language/panel/markdown.tsx
26087
- function Lv({ currentQuotePrefix: e, checked: t, prefix: n }) {
26090
+ function Rv({ currentQuotePrefix: e, checked: t, prefix: n }) {
26088
26091
  let r = e;
26089
26092
  return t ? e === "" ? r = n : e !== "rf" && n !== e && (r = "rf") : e === n ? r = "" : e === "rf" && (r = n === "r" ? "f" : "r"), r;
26090
26093
  }
26091
- var Rv = () => {
26094
+ var zv = () => {
26092
26095
  let e = (0, wr.c)(2), t;
26093
26096
  e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ (0, F.jsxs)("section", {
26094
26097
  className: "flex flex-col gap-0.5",
@@ -26144,36 +26147,36 @@ var Rv = () => {
26144
26147
  ]
26145
26148
  })]
26146
26149
  }), e[1] = n) : n = e[1], n;
26147
- }, zv = "data-cell-id";
26148
- function Bv(e) {
26149
- return { [zv]: e };
26150
+ }, Bv = "data-cell-id";
26151
+ function Vv(e) {
26152
+ return { [Bv]: e };
26150
26153
  }
26151
- var Vv = "data-for-cell-id";
26152
- function Hv(e) {
26153
- return { [Vv]: e };
26154
+ var Hv = "data-for-cell-id";
26155
+ function Uv(e) {
26156
+ return { [Hv]: e };
26154
26157
  }
26155
26158
  //#endregion
26156
26159
  //#region src/components/databases/icons/clickhouse.svg
26157
- var Uv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClickHouse%3c/title%3e%3cpath%20d='M21.333%2010H24v4h-2.667ZM16%201.335h2.667v21.33H16Zm-5.333%200h2.666v21.33h-2.666ZM0%2022.665V1.335h2.667v21.33zm5.333-21.33H8v21.33H5.333Z'/%3e%3c/svg%3e", Wv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDatabricks%3c/title%3e%3cpath%20d='M.95%2014.184L12%2020.403l9.919-5.55v2.21L12%2022.662l-10.484-5.96-.565.308v.77L12%2024l11.05-6.218v-4.317l-.515-.309L12%2019.118l-9.867-5.653v-2.21L12%2016.805l11.05-6.218V6.32l-.515-.308L12%2011.974%202.647%206.681%2012%201.388l7.76%204.368.668-.411v-.566L12%200%20.95%206.27v.72L12%2013.207l9.919-5.55v2.26L12%2015.52%201.516%209.56l-.565.308Z'/%3e%3c/svg%3e", Gv = "data:image/png;base64,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", Kv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDuckDB%3c/title%3e%3cpath%20d='M12%200C5.363%200%200%205.363%200%2012s5.363%2012%2012%2012%2012-5.363%2012-12S18.637%200%2012%200zM9.502%207.03a4.974%204.974%200%200%201%204.97%204.97%204.974%204.974%200%200%201-4.97%204.97A4.974%204.974%200%200%201%204.532%2012a4.974%204.974%200%200%201%204.97-4.97zm6.563%203.183h2.351c.98%200%201.787.782%201.787%201.762s-.807%201.789-1.787%201.789h-2.351v-3.551z'/%3e%3c/svg%3e", qv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGoogle%20BigQuery%3c/title%3e%3cpath%20d='M5.676%2010.595h2.052v5.244a5.892%205.892%200%200%201-2.052-2.088v-3.156zm18.179%2010.836a.504.504%200%200%201%200%20.708l-1.716%201.716a.504.504%200%200%201-.708%200l-4.248-4.248a.206.206%200%200%201-.007-.007c-.02-.02-.028-.045-.043-.066a10.736%2010.736%200%200%201-6.334%202.065C4.835%2021.599%200%2016.764%200%2010.799S4.835%200%2010.8%200s10.799%204.835%2010.799%2010.8c0%202.369-.772%204.553-2.066%206.333.025.017.052.028.074.05l4.248%204.248zm-5.028-10.632a8.015%208.015%200%201%200-8.028%208.028h.024a8.016%208.016%200%200%200%208.004-8.028zm-4.86%204.98a6.002%206.002%200%200%200%202.04-2.184v-1.764h-2.04v3.948zm-4.5.948c.442.057.887.08%201.332.072.4.025.8.025%201.2%200V7.692H9.468v9.035z'/%3e%3c/svg%3e", Jv = "data:image/png;base64,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", Yv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMotherDuck%3c/title%3e%3cg%20transform='scale(0.85)%20translate(0,%202)'%3e%3cpath%20fill='%23ff9538'%20d='M1.71%2015.86s7.45%205.32%207.89%205.59c.44.27%201.08.33%201.64.11.56-.22.98-.71%201.11-1.21s1.85-9.49%201.85-9.49c.02-.12.07-.48-.13-.83-.27-.47-.86-.71-1.38-.57-.42.12-.64.44-.7.55-.09.17-.26.45-.57.7-.24.19-.47.3-.58.34-.96.38-2.02.06-2.61-.72-.38-.48-1.04-.67-1.64-.43-.6.24-.94.84-.89%201.45.11.98-.44%201.94-1.4%202.32-.51.21-1.06.21-1.54.05-.12-.03-.51-.12-.89.09-.48.26-.74.84-.61%201.37.09.39.38.62.48.69z'%20/%3e%3cpath%20fill='%23ff9538'%20d='M14.12%204.21s2.65%208.76%202.83%209.24c.19.48.66.92%201.23%201.09.58.16%201.21.03%201.62-.28.41-.31%207.25-6.39%207.25-6.39.09-.08.35-.34.4-.74.07-.53-.25-1.09-.75-1.29-.4-.16-.78-.04-.89%200-.18.08-.48.2-.88.2-.3.01-.55-.05-.67-.08-.99-.28-1.64-1.18-1.63-2.16-.01-.61-.42-1.17-1.04-1.35-.62-.18-1.26.09-1.59.6-.51.84-1.53%201.27-2.52.99-.53-.15-.96-.48-1.25-.91-.07-.09-.33-.4-.76-.48-.54-.09-1.1.22-1.32.71-.16.37-.08.72-.04.84z'%20/%3e%3c/g%3e%3c/svg%3e", Xv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMySQL%3c/title%3e%3cpath%20d='M16.405%205.501c-.115%200-.193.014-.274.033v.013h.014c.054.104.146.18.214.273.054.107.1.214.154.32l.014-.015c.094-.066.14-.172.14-.333-.04-.047-.046-.094-.08-.14-.04-.067-.126-.1-.18-.153zM5.77%2018.695h-.927a50.854%2050.854%200%2000-.27-4.41h-.008l-1.41%204.41H2.45l-1.4-4.41h-.01a72.892%2072.892%200%2000-.195%204.41H0c.055-1.966.192-3.81.41-5.53h1.15l1.335%204.064h.008l1.347-4.064h1.095c.242%202.015.384%203.86.428%205.53zm4.017-4.08c-.378%202.045-.876%203.533-1.492%204.46-.482.716-1.01%201.073-1.583%201.073-.153%200-.34-.046-.566-.138v-.494c.11.017.24.026.386.026.268%200%20.483-.075.647-.222.197-.18.295-.382.295-.605%200-.155-.077-.47-.23-.944L6.23%2014.615h.91l.727%202.36c.164.536.233.91.205%201.123.4-1.064.678-2.227.835-3.483zm12.325%204.08h-2.63v-5.53h.885v4.85h1.745zm-3.32.135l-1.016-.5c.09-.076.177-.158.255-.25.433-.506.648-1.258.648-2.253%200-1.83-.718-2.746-2.155-2.746-.704%200-1.254.232-1.65.697-.43.508-.646%201.256-.646%202.245%200%20.972.19%201.686.574%202.14.35.41.877.615%201.583.615.264%200%20.506-.033.725-.098l1.325.772.36-.622zM15.5%2017.588c-.225-.36-.337-.94-.337-1.736%200-1.393.424-2.09%201.27-2.09.443%200%20.77.167.977.5.224.362.336.936.336%201.723%200%201.404-.424%202.108-1.27%202.108-.445%200-.77-.167-.978-.5zm-1.658-.425c0%20.47-.172.856-.516%201.156-.344.3-.803.45-1.384.45-.543%200-1.064-.172-1.573-.515l.237-.476c.438.22.833.328%201.19.328.332%200%20.593-.073.783-.22a.754.754%200%2000.3-.615c0-.33-.23-.61-.648-.845-.388-.213-1.163-.657-1.163-.657-.422-.307-.632-.636-.632-1.177%200-.45.157-.81.47-1.085.315-.278.72-.415%201.22-.415.512%200%20.98.136%201.4.41l-.213.476a2.726%202.726%200%2000-1.064-.23c-.283%200-.502.068-.654.206a.685.685%200%2000-.248.524c0%20.328.234.61.666.85.393.215%201.187.67%201.187.67.433.305.648.63.648%201.168zm9.382-5.852c-.535-.014-.95.04-1.297.188-.1.04-.26.04-.274.167.055.053.063.14.11.214.08.134.218.313.346.407.14.11.28.216.427.31.26.16.555.255.81.416.145.094.293.213.44.313.073.05.12.14.214.172v-.02c-.046-.06-.06-.147-.105-.214-.067-.067-.134-.127-.2-.193a3.223%203.223%200%2000-.695-.675c-.214-.146-.682-.35-.77-.595l-.013-.014c.146-.013.32-.066.46-.106.227-.06.435-.047.67-.106.106-.027.213-.06.32-.094v-.06c-.12-.12-.21-.283-.334-.395a8.867%208.867%200%2000-1.104-.823c-.21-.134-.476-.22-.697-.334-.08-.04-.214-.06-.26-.127-.12-.146-.19-.34-.275-.514a17.69%2017.69%200%2001-.547-1.163c-.12-.262-.193-.523-.34-.763-.69-1.137-1.437-1.826-2.586-2.5-.247-.14-.543-.2-.856-.274-.167-.008-.334-.02-.5-.027-.11-.047-.216-.174-.31-.235-.38-.24-1.364-.76-1.644-.072-.18.434.267.862.422%201.082.115.153.26.328.34.5.047.116.06.235.107.356.106.294.207.622.347.897.073.14.153.287.247.413.054.073.146.107.167.227-.094.136-.1.334-.154.5-.24.757-.146%201.693.194%202.25.107.166.362.534.703.393.3-.12.234-.5.32-.835.02-.08.007-.133.048-.187v.015c.094.188.188.367.274.555.206.328.566.668.867.895.16.12.287.328.487.402v-.02h-.015c-.043-.058-.1-.086-.154-.133a3.445%203.445%200%2001-.35-.4%208.76%208.76%200%2001-.747-1.218c-.11-.21-.202-.436-.29-.643-.04-.08-.04-.2-.107-.24-.1.146-.247.273-.32.453-.127.288-.14.642-.188%201.01-.027.007-.014%200-.027.014-.214-.052-.287-.274-.367-.46-.2-.475-.233-1.238-.06-1.785.047-.14.247-.582.167-.716-.042-.127-.174-.2-.247-.303a2.478%202.478%200%2001-.24-.427c-.16-.374-.24-.788-.414-1.162-.08-.173-.22-.354-.334-.513-.127-.18-.267-.307-.368-.52-.033-.073-.08-.194-.027-.274.014-.054.042-.075.094-.09.088-.072.335.022.422.062.247.1.455.194.662.334.094.066.195.193.315.226h.14c.214.047.455.014.655.073.355.114.675.28.962.46a5.953%205.953%200%20012.085%202.286c.08.154.115.295.188.455.14.33.313.663.455.982.14.315.275.636.476.897.1.14.502.213.682.286.133.06.34.115.46.188.23.14.454.3.67.454.11.076.443.243.463.378z'/%3e%3c/svg%3e", Zv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3ePostgreSQL%3c/title%3e%3cpath%20d='M23.5594%2014.7228a.5269.5269%200%200%200-.0563-.1191c-.139-.2632-.4768-.3418-1.0074-.2321-1.6533.3411-2.2935.1312-2.5256-.0191%201.342-2.0482%202.445-4.522%203.0411-6.8297.2714-1.0507.7982-3.5237.1222-4.7316a1.5641%201.5641%200%200%200-.1509-.235C21.6931.9086%2019.8007.0248%2017.5099.0005c-1.4947-.0158-2.7705.3461-3.1161.4794a9.449%209.449%200%200%200-.5159-.0816%208.044%208.044%200%200%200-1.3114-.1278c-1.1822-.0184-2.2038.2642-3.0498.8406-.8573-.3211-4.7888-1.645-7.2219.0788C.9359%202.1526.3086%203.8733.4302%206.3043c.0409.818.5069%203.334%201.2423%205.7436.4598%201.5065.9387%202.7019%201.4334%203.582.553.9942%201.1259%201.5933%201.7143%201.7895.4474.1491%201.1327.1441%201.8581-.7279.8012-.9635%201.5903-1.8258%201.9446-2.2069.4351.2355.9064.3625%201.39.3772a.0569.0569%200%200%200%20.0004.0041%2011.0312%2011.0312%200%200%200-.2472.3054c-.3389.4302-.4094.5197-1.5002.7443-.3102.064-1.1344.2339-1.1464.8115-.0025.1224.0329.2309.0919.3268.2269.4231.9216.6097%201.015.6331%201.3345.3335%202.5044.092%203.3714-.6787-.017%202.231.0775%204.4174.3454%205.0874.2212.5529.7618%201.9045%202.4692%201.9043.2505%200%20.5263-.0291.8296-.0941%201.7819-.3821%202.5557-1.1696%202.855-2.9059.1503-.8707.4016-2.8753.5388-4.1012.0169-.0703.0357-.1207.057-.1362.0007-.0005.0697-.0471.4272.0307a.3673.3673%200%200%200%20.0443.0068l.2539.0223.0149.001c.8468.0384%201.9114-.1426%202.5312-.4308.6438-.2988%201.8057-1.0323%201.5951-1.6698zM2.371%2011.8765c-.7435-2.4358-1.1779-4.8851-1.2123-5.5719-.1086-2.1714.4171-3.6829%201.5623-4.4927%201.8367-1.2986%204.8398-.5408%206.108-.13-.0032.0032-.0066.0061-.0098.0094-2.0238%202.044-1.9758%205.536-1.9708%205.7495-.0002.0823.0066.1989.0162.3593.0348.5873.0996%201.6804-.0735%202.9184-.1609%201.1504.1937%202.2764.9728%203.0892.0806.0841.1648.1631.2518.2374-.3468.3714-1.1004%201.1926-1.9025%202.1576-.5677.6825-.9597.5517-1.0886.5087-.3919-.1307-.813-.5871-1.2381-1.3223-.4796-.839-.9635-2.0317-1.4155-3.5126zm6.0072%205.0871c-.1711-.0428-.3271-.1132-.4322-.1772.0889-.0394.2374-.0902.4833-.1409%201.2833-.2641%201.4815-.4506%201.9143-1.0002.0992-.126.2116-.2687.3673-.4426a.3549.3549%200%200%200%20.0737-.1298c.1708-.1513.2724-.1099.4369-.0417.156.0646.3078.26.3695.4752.0291.1016.0619.2945-.0452.4444-.9043%201.2658-2.2216%201.2494-3.1676%201.0128zm2.094-3.988-.0525.141c-.133.3566-.2567.6881-.3334%201.003-.6674-.0021-1.3168-.2872-1.8105-.8024-.6279-.6551-.9131-1.5664-.7825-2.5004.1828-1.3079.1153-2.4468.079-3.0586-.005-.0857-.0095-.1607-.0122-.2199.2957-.2621%201.6659-.9962%202.6429-.7724.4459.1022.7176.4057.8305.928.5846%202.7038.0774%203.8307-.3302%204.7363-.084.1866-.1633.3629-.2311.5454zm7.3637%204.5725c-.0169.1768-.0358.376-.0618.5959l-.146.4383a.3547.3547%200%200%200-.0182.1077c-.0059.4747-.054.6489-.115.8693-.0634.2292-.1353.4891-.1794%201.0575-.11%201.4143-.8782%202.2267-2.4172%202.5565-1.5155.3251-1.7843-.4968-2.0212-1.2217a6.5824%206.5824%200%200%200-.0769-.2266c-.2154-.5858-.1911-1.4119-.1574-2.5551.0165-.5612-.0249-1.9013-.3302-2.6462.0044-.2932.0106-.5909.019-.8918a.3529.3529%200%200%200-.0153-.1126%201.4927%201.4927%200%200%200-.0439-.208c-.1226-.4283-.4213-.7866-.7797-.9351-.1424-.059-.4038-.1672-.7178-.0869.067-.276.1831-.5875.309-.9249l.0529-.142c.0595-.16.134-.3257.213-.5012.4265-.9476%201.0106-2.2453.3766-5.1772-.2374-1.0981-1.0304-1.6343-2.2324-1.5098-.7207.0746-1.3799.3654-1.7088.5321a5.6716%205.6716%200%200%200-.1958.1041c.0918-1.1064.4386-3.1741%201.7357-4.4823a4.0306%204.0306%200%200%201%20.3033-.276.3532.3532%200%200%200%20.1447-.0644c.7524-.5706%201.6945-.8506%202.802-.8325.4091.0067.8017.0339%201.1742.081%201.939.3544%203.2439%201.4468%204.0359%202.3827.8143.9623%201.2552%201.9315%201.4312%202.4543-1.3232-.1346-2.2234.1268-2.6797.779-.9926%201.4189.543%204.1729%201.2811%205.4964.1353.2426.2522.4522.2889.5413.2403.5825.5515.9713.7787%201.2552.0696.087.1372.1714.1885.245-.4008.1155-1.1208.3825-1.0552%201.717-.0123.1563-.0423.4469-.0834.8148-.0461.2077-.0702.4603-.0994.7662zm.8905-1.6211c-.0405-.8316.2691-.9185.5967-1.0105a2.8566%202.8566%200%200%200%20.135-.0406%201.202%201.202%200%200%200%20.1342.103c.5703.3765%201.5823.4213%203.0068.1344-.2016.1769-.5189.3994-.9533.6011-.4098.1903-1.0957.333-1.7473.3636-.7197.0336-1.0859-.0807-1.1721-.151zm.5695-9.2712c-.0059.3508-.0542.6692-.1054%201.0017-.055.3576-.112.7274-.1264%201.1762-.0142.4368.0404.8909.0932%201.3301.1066.887.216%201.8003-.2075%202.7014a3.5272%203.5272%200%200%201-.1876-.3856c-.0527-.1276-.1669-.3326-.3251-.6162-.6156-1.1041-2.0574-3.6896-1.3193-4.7446.3795-.5427%201.3408-.5661%202.1781-.463zm.2284%207.0137a12.3762%2012.3762%200%200%200-.0853-.1074l-.0355-.0444c.7262-1.1995.5842-2.3862.4578-3.4385-.0519-.4318-.1009-.8396-.0885-1.2226.0129-.4061.0666-.7543.1185-1.0911.0639-.415.1288-.8443.1109-1.3505.0134-.0531.0188-.1158.0118-.1902-.0457-.4855-.5999-1.938-1.7294-3.253-.6076-.7073-1.4896-1.4972-2.6889-2.0395.5251-.1066%201.2328-.2035%202.0244-.1859%202.0515.0456%203.6746.8135%204.8242%202.2824a.908.908%200%200%201%20.0667.1002c.7231%201.3556-.2762%206.2751-2.9867%2010.5405zm-8.8166-6.1162c-.025.1794-.3089.4225-.6211.4225a.5821.5821%200%200%201-.0809-.0056c-.1873-.026-.3765-.144-.5059-.3156-.0458-.0605-.1203-.178-.1055-.2844.0055-.0401.0261-.0985.0925-.1488.1182-.0894.3518-.1226.6096-.0867.3163.0441.6426.1938.6113.4186zm7.9305-.4114c.0111.0792-.049.201-.1531.3102-.0683.0717-.212.1961-.4079.2232a.5456.5456%200%200%201-.075.0052c-.2935%200-.5414-.2344-.5607-.3717-.024-.1765.2641-.3106.5611-.352.297-.0414.6111.0088.6356.1851z'/%3e%3c/svg%3e", Qv = {
26160
+ var Wv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClickHouse%3c/title%3e%3cpath%20d='M21.333%2010H24v4h-2.667ZM16%201.335h2.667v21.33H16Zm-5.333%200h2.666v21.33h-2.666ZM0%2022.665V1.335h2.667v21.33zm5.333-21.33H8v21.33H5.333Z'/%3e%3c/svg%3e", Gv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDatabricks%3c/title%3e%3cpath%20d='M.95%2014.184L12%2020.403l9.919-5.55v2.21L12%2022.662l-10.484-5.96-.565.308v.77L12%2024l11.05-6.218v-4.317l-.515-.309L12%2019.118l-9.867-5.653v-2.21L12%2016.805l11.05-6.218V6.32l-.515-.308L12%2011.974%202.647%206.681%2012%201.388l7.76%204.368.668-.411v-.566L12%200%20.95%206.27v.72L12%2013.207l9.919-5.55v2.26L12%2015.52%201.516%209.56l-.565.308Z'/%3e%3c/svg%3e", Kv = "data:image/png;base64,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", qv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDuckDB%3c/title%3e%3cpath%20d='M12%200C5.363%200%200%205.363%200%2012s5.363%2012%2012%2012%2012-5.363%2012-12S18.637%200%2012%200zM9.502%207.03a4.974%204.974%200%200%201%204.97%204.97%204.974%204.974%200%200%201-4.97%204.97A4.974%204.974%200%200%201%204.532%2012a4.974%204.974%200%200%201%204.97-4.97zm6.563%203.183h2.351c.98%200%201.787.782%201.787%201.762s-.807%201.789-1.787%201.789h-2.351v-3.551z'/%3e%3c/svg%3e", Jv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGoogle%20BigQuery%3c/title%3e%3cpath%20d='M5.676%2010.595h2.052v5.244a5.892%205.892%200%200%201-2.052-2.088v-3.156zm18.179%2010.836a.504.504%200%200%201%200%20.708l-1.716%201.716a.504.504%200%200%201-.708%200l-4.248-4.248a.206.206%200%200%201-.007-.007c-.02-.02-.028-.045-.043-.066a10.736%2010.736%200%200%201-6.334%202.065C4.835%2021.599%200%2016.764%200%2010.799S4.835%200%2010.8%200s10.799%204.835%2010.799%2010.8c0%202.369-.772%204.553-2.066%206.333.025.017.052.028.074.05l4.248%204.248zm-5.028-10.632a8.015%208.015%200%201%200-8.028%208.028h.024a8.016%208.016%200%200%200%208.004-8.028zm-4.86%204.98a6.002%206.002%200%200%200%202.04-2.184v-1.764h-2.04v3.948zm-4.5.948c.442.057.887.08%201.332.072.4.025.8.025%201.2%200V7.692H9.468v9.035z'/%3e%3c/svg%3e", Yv = "data:image/png;base64,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", Xv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMotherDuck%3c/title%3e%3cg%20transform='scale(0.85)%20translate(0,%202)'%3e%3cpath%20fill='%23ff9538'%20d='M1.71%2015.86s7.45%205.32%207.89%205.59c.44.27%201.08.33%201.64.11.56-.22.98-.71%201.11-1.21s1.85-9.49%201.85-9.49c.02-.12.07-.48-.13-.83-.27-.47-.86-.71-1.38-.57-.42.12-.64.44-.7.55-.09.17-.26.45-.57.7-.24.19-.47.3-.58.34-.96.38-2.02.06-2.61-.72-.38-.48-1.04-.67-1.64-.43-.6.24-.94.84-.89%201.45.11.98-.44%201.94-1.4%202.32-.51.21-1.06.21-1.54.05-.12-.03-.51-.12-.89.09-.48.26-.74.84-.61%201.37.09.39.38.62.48.69z'%20/%3e%3cpath%20fill='%23ff9538'%20d='M14.12%204.21s2.65%208.76%202.83%209.24c.19.48.66.92%201.23%201.09.58.16%201.21.03%201.62-.28.41-.31%207.25-6.39%207.25-6.39.09-.08.35-.34.4-.74.07-.53-.25-1.09-.75-1.29-.4-.16-.78-.04-.89%200-.18.08-.48.2-.88.2-.3.01-.55-.05-.67-.08-.99-.28-1.64-1.18-1.63-2.16-.01-.61-.42-1.17-1.04-1.35-.62-.18-1.26.09-1.59.6-.51.84-1.53%201.27-2.52.99-.53-.15-.96-.48-1.25-.91-.07-.09-.33-.4-.76-.48-.54-.09-1.1.22-1.32.71-.16.37-.08.72-.04.84z'%20/%3e%3c/g%3e%3c/svg%3e", Zv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMySQL%3c/title%3e%3cpath%20d='M16.405%205.501c-.115%200-.193.014-.274.033v.013h.014c.054.104.146.18.214.273.054.107.1.214.154.32l.014-.015c.094-.066.14-.172.14-.333-.04-.047-.046-.094-.08-.14-.04-.067-.126-.1-.18-.153zM5.77%2018.695h-.927a50.854%2050.854%200%2000-.27-4.41h-.008l-1.41%204.41H2.45l-1.4-4.41h-.01a72.892%2072.892%200%2000-.195%204.41H0c.055-1.966.192-3.81.41-5.53h1.15l1.335%204.064h.008l1.347-4.064h1.095c.242%202.015.384%203.86.428%205.53zm4.017-4.08c-.378%202.045-.876%203.533-1.492%204.46-.482.716-1.01%201.073-1.583%201.073-.153%200-.34-.046-.566-.138v-.494c.11.017.24.026.386.026.268%200%20.483-.075.647-.222.197-.18.295-.382.295-.605%200-.155-.077-.47-.23-.944L6.23%2014.615h.91l.727%202.36c.164.536.233.91.205%201.123.4-1.064.678-2.227.835-3.483zm12.325%204.08h-2.63v-5.53h.885v4.85h1.745zm-3.32.135l-1.016-.5c.09-.076.177-.158.255-.25.433-.506.648-1.258.648-2.253%200-1.83-.718-2.746-2.155-2.746-.704%200-1.254.232-1.65.697-.43.508-.646%201.256-.646%202.245%200%20.972.19%201.686.574%202.14.35.41.877.615%201.583.615.264%200%20.506-.033.725-.098l1.325.772.36-.622zM15.5%2017.588c-.225-.36-.337-.94-.337-1.736%200-1.393.424-2.09%201.27-2.09.443%200%20.77.167.977.5.224.362.336.936.336%201.723%200%201.404-.424%202.108-1.27%202.108-.445%200-.77-.167-.978-.5zm-1.658-.425c0%20.47-.172.856-.516%201.156-.344.3-.803.45-1.384.45-.543%200-1.064-.172-1.573-.515l.237-.476c.438.22.833.328%201.19.328.332%200%20.593-.073.783-.22a.754.754%200%2000.3-.615c0-.33-.23-.61-.648-.845-.388-.213-1.163-.657-1.163-.657-.422-.307-.632-.636-.632-1.177%200-.45.157-.81.47-1.085.315-.278.72-.415%201.22-.415.512%200%20.98.136%201.4.41l-.213.476a2.726%202.726%200%2000-1.064-.23c-.283%200-.502.068-.654.206a.685.685%200%2000-.248.524c0%20.328.234.61.666.85.393.215%201.187.67%201.187.67.433.305.648.63.648%201.168zm9.382-5.852c-.535-.014-.95.04-1.297.188-.1.04-.26.04-.274.167.055.053.063.14.11.214.08.134.218.313.346.407.14.11.28.216.427.31.26.16.555.255.81.416.145.094.293.213.44.313.073.05.12.14.214.172v-.02c-.046-.06-.06-.147-.105-.214-.067-.067-.134-.127-.2-.193a3.223%203.223%200%2000-.695-.675c-.214-.146-.682-.35-.77-.595l-.013-.014c.146-.013.32-.066.46-.106.227-.06.435-.047.67-.106.106-.027.213-.06.32-.094v-.06c-.12-.12-.21-.283-.334-.395a8.867%208.867%200%2000-1.104-.823c-.21-.134-.476-.22-.697-.334-.08-.04-.214-.06-.26-.127-.12-.146-.19-.34-.275-.514a17.69%2017.69%200%2001-.547-1.163c-.12-.262-.193-.523-.34-.763-.69-1.137-1.437-1.826-2.586-2.5-.247-.14-.543-.2-.856-.274-.167-.008-.334-.02-.5-.027-.11-.047-.216-.174-.31-.235-.38-.24-1.364-.76-1.644-.072-.18.434.267.862.422%201.082.115.153.26.328.34.5.047.116.06.235.107.356.106.294.207.622.347.897.073.14.153.287.247.413.054.073.146.107.167.227-.094.136-.1.334-.154.5-.24.757-.146%201.693.194%202.25.107.166.362.534.703.393.3-.12.234-.5.32-.835.02-.08.007-.133.048-.187v.015c.094.188.188.367.274.555.206.328.566.668.867.895.16.12.287.328.487.402v-.02h-.015c-.043-.058-.1-.086-.154-.133a3.445%203.445%200%2001-.35-.4%208.76%208.76%200%2001-.747-1.218c-.11-.21-.202-.436-.29-.643-.04-.08-.04-.2-.107-.24-.1.146-.247.273-.32.453-.127.288-.14.642-.188%201.01-.027.007-.014%200-.027.014-.214-.052-.287-.274-.367-.46-.2-.475-.233-1.238-.06-1.785.047-.14.247-.582.167-.716-.042-.127-.174-.2-.247-.303a2.478%202.478%200%2001-.24-.427c-.16-.374-.24-.788-.414-1.162-.08-.173-.22-.354-.334-.513-.127-.18-.267-.307-.368-.52-.033-.073-.08-.194-.027-.274.014-.054.042-.075.094-.09.088-.072.335.022.422.062.247.1.455.194.662.334.094.066.195.193.315.226h.14c.214.047.455.014.655.073.355.114.675.28.962.46a5.953%205.953%200%20012.085%202.286c.08.154.115.295.188.455.14.33.313.663.455.982.14.315.275.636.476.897.1.14.502.213.682.286.133.06.34.115.46.188.23.14.454.3.67.454.11.076.443.243.463.378z'/%3e%3c/svg%3e", Qv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3ePostgreSQL%3c/title%3e%3cpath%20d='M23.5594%2014.7228a.5269.5269%200%200%200-.0563-.1191c-.139-.2632-.4768-.3418-1.0074-.2321-1.6533.3411-2.2935.1312-2.5256-.0191%201.342-2.0482%202.445-4.522%203.0411-6.8297.2714-1.0507.7982-3.5237.1222-4.7316a1.5641%201.5641%200%200%200-.1509-.235C21.6931.9086%2019.8007.0248%2017.5099.0005c-1.4947-.0158-2.7705.3461-3.1161.4794a9.449%209.449%200%200%200-.5159-.0816%208.044%208.044%200%200%200-1.3114-.1278c-1.1822-.0184-2.2038.2642-3.0498.8406-.8573-.3211-4.7888-1.645-7.2219.0788C.9359%202.1526.3086%203.8733.4302%206.3043c.0409.818.5069%203.334%201.2423%205.7436.4598%201.5065.9387%202.7019%201.4334%203.582.553.9942%201.1259%201.5933%201.7143%201.7895.4474.1491%201.1327.1441%201.8581-.7279.8012-.9635%201.5903-1.8258%201.9446-2.2069.4351.2355.9064.3625%201.39.3772a.0569.0569%200%200%200%20.0004.0041%2011.0312%2011.0312%200%200%200-.2472.3054c-.3389.4302-.4094.5197-1.5002.7443-.3102.064-1.1344.2339-1.1464.8115-.0025.1224.0329.2309.0919.3268.2269.4231.9216.6097%201.015.6331%201.3345.3335%202.5044.092%203.3714-.6787-.017%202.231.0775%204.4174.3454%205.0874.2212.5529.7618%201.9045%202.4692%201.9043.2505%200%20.5263-.0291.8296-.0941%201.7819-.3821%202.5557-1.1696%202.855-2.9059.1503-.8707.4016-2.8753.5388-4.1012.0169-.0703.0357-.1207.057-.1362.0007-.0005.0697-.0471.4272.0307a.3673.3673%200%200%200%20.0443.0068l.2539.0223.0149.001c.8468.0384%201.9114-.1426%202.5312-.4308.6438-.2988%201.8057-1.0323%201.5951-1.6698zM2.371%2011.8765c-.7435-2.4358-1.1779-4.8851-1.2123-5.5719-.1086-2.1714.4171-3.6829%201.5623-4.4927%201.8367-1.2986%204.8398-.5408%206.108-.13-.0032.0032-.0066.0061-.0098.0094-2.0238%202.044-1.9758%205.536-1.9708%205.7495-.0002.0823.0066.1989.0162.3593.0348.5873.0996%201.6804-.0735%202.9184-.1609%201.1504.1937%202.2764.9728%203.0892.0806.0841.1648.1631.2518.2374-.3468.3714-1.1004%201.1926-1.9025%202.1576-.5677.6825-.9597.5517-1.0886.5087-.3919-.1307-.813-.5871-1.2381-1.3223-.4796-.839-.9635-2.0317-1.4155-3.5126zm6.0072%205.0871c-.1711-.0428-.3271-.1132-.4322-.1772.0889-.0394.2374-.0902.4833-.1409%201.2833-.2641%201.4815-.4506%201.9143-1.0002.0992-.126.2116-.2687.3673-.4426a.3549.3549%200%200%200%20.0737-.1298c.1708-.1513.2724-.1099.4369-.0417.156.0646.3078.26.3695.4752.0291.1016.0619.2945-.0452.4444-.9043%201.2658-2.2216%201.2494-3.1676%201.0128zm2.094-3.988-.0525.141c-.133.3566-.2567.6881-.3334%201.003-.6674-.0021-1.3168-.2872-1.8105-.8024-.6279-.6551-.9131-1.5664-.7825-2.5004.1828-1.3079.1153-2.4468.079-3.0586-.005-.0857-.0095-.1607-.0122-.2199.2957-.2621%201.6659-.9962%202.6429-.7724.4459.1022.7176.4057.8305.928.5846%202.7038.0774%203.8307-.3302%204.7363-.084.1866-.1633.3629-.2311.5454zm7.3637%204.5725c-.0169.1768-.0358.376-.0618.5959l-.146.4383a.3547.3547%200%200%200-.0182.1077c-.0059.4747-.054.6489-.115.8693-.0634.2292-.1353.4891-.1794%201.0575-.11%201.4143-.8782%202.2267-2.4172%202.5565-1.5155.3251-1.7843-.4968-2.0212-1.2217a6.5824%206.5824%200%200%200-.0769-.2266c-.2154-.5858-.1911-1.4119-.1574-2.5551.0165-.5612-.0249-1.9013-.3302-2.6462.0044-.2932.0106-.5909.019-.8918a.3529.3529%200%200%200-.0153-.1126%201.4927%201.4927%200%200%200-.0439-.208c-.1226-.4283-.4213-.7866-.7797-.9351-.1424-.059-.4038-.1672-.7178-.0869.067-.276.1831-.5875.309-.9249l.0529-.142c.0595-.16.134-.3257.213-.5012.4265-.9476%201.0106-2.2453.3766-5.1772-.2374-1.0981-1.0304-1.6343-2.2324-1.5098-.7207.0746-1.3799.3654-1.7088.5321a5.6716%205.6716%200%200%200-.1958.1041c.0918-1.1064.4386-3.1741%201.7357-4.4823a4.0306%204.0306%200%200%201%20.3033-.276.3532.3532%200%200%200%20.1447-.0644c.7524-.5706%201.6945-.8506%202.802-.8325.4091.0067.8017.0339%201.1742.081%201.939.3544%203.2439%201.4468%204.0359%202.3827.8143.9623%201.2552%201.9315%201.4312%202.4543-1.3232-.1346-2.2234.1268-2.6797.779-.9926%201.4189.543%204.1729%201.2811%205.4964.1353.2426.2522.4522.2889.5413.2403.5825.5515.9713.7787%201.2552.0696.087.1372.1714.1885.245-.4008.1155-1.1208.3825-1.0552%201.717-.0123.1563-.0423.4469-.0834.8148-.0461.2077-.0702.4603-.0994.7662zm.8905-1.6211c-.0405-.8316.2691-.9185.5967-1.0105a2.8566%202.8566%200%200%200%20.135-.0406%201.202%201.202%200%200%200%20.1342.103c.5703.3765%201.5823.4213%203.0068.1344-.2016.1769-.5189.3994-.9533.6011-.4098.1903-1.0957.333-1.7473.3636-.7197.0336-1.0859-.0807-1.1721-.151zm.5695-9.2712c-.0059.3508-.0542.6692-.1054%201.0017-.055.3576-.112.7274-.1264%201.1762-.0142.4368.0404.8909.0932%201.3301.1066.887.216%201.8003-.2075%202.7014a3.5272%203.5272%200%200%201-.1876-.3856c-.0527-.1276-.1669-.3326-.3251-.6162-.6156-1.1041-2.0574-3.6896-1.3193-4.7446.3795-.5427%201.3408-.5661%202.1781-.463zm.2284%207.0137a12.3762%2012.3762%200%200%200-.0853-.1074l-.0355-.0444c.7262-1.1995.5842-2.3862.4578-3.4385-.0519-.4318-.1009-.8396-.0885-1.2226.0129-.4061.0666-.7543.1185-1.0911.0639-.415.1288-.8443.1109-1.3505.0134-.0531.0188-.1158.0118-.1902-.0457-.4855-.5999-1.938-1.7294-3.253-.6076-.7073-1.4896-1.4972-2.6889-2.0395.5251-.1066%201.2328-.2035%202.0244-.1859%202.0515.0456%203.6746.8135%204.8242%202.2824a.908.908%200%200%201%20.0667.1002c.7231%201.3556-.2762%206.2751-2.9867%2010.5405zm-8.8166-6.1162c-.025.1794-.3089.4225-.6211.4225a.5821.5821%200%200%201-.0809-.0056c-.1873-.026-.3765-.144-.5059-.3156-.0458-.0605-.1203-.178-.1055-.2844.0055-.0401.0261-.0985.0925-.1488.1182-.0894.3518-.1226.6096-.0867.3163.0441.6426.1938.6113.4186zm7.9305-.4114c.0111.0792-.049.201-.1531.3102-.0683.0717-.212.1961-.4079.2232a.5456.5456%200%200%201-.075.0052c-.2935%200-.5414-.2344-.5607-.3717-.024-.1765.2641-.3106.5611-.352.297-.0414.6111.0088.6356.1851z'/%3e%3c/svg%3e", $v = {
26158
26161
  sqlite: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eSQLite%3c/title%3e%3cpath%20d='M21.678.521c-1.032-.92-2.28-.55-3.513.544a8.71%208.71%200%200%200-.547.535c-2.109%202.237-4.066%206.38-4.674%209.544.237.48.422%201.093.544%201.561a13.044%2013.044%200%200%201%20.164.703s-.019-.071-.096-.296l-.05-.146a1.689%201.689%200%200%200-.033-.08c-.138-.32-.518-.995-.686-1.289-.143.423-.27.818-.376%201.176.484.884.778%202.4.778%202.4s-.025-.099-.147-.442c-.107-.303-.644-1.244-.772-1.464-.217.804-.304%201.346-.226%201.478.152.256.296.698.422%201.186.286%201.1.485%202.44.485%202.44l.017.224a22.41%2022.41%200%200%200%20.056%202.748c.095%201.146.273%202.13.5%202.657l.155-.084c-.334-1.038-.47-2.399-.41-3.967.09-2.398.642-5.29%201.661-8.304%201.723-4.55%204.113-8.201%206.3-9.945-1.993%201.8-4.692%207.63-5.5%209.788-.904%202.416-1.545%204.684-1.931%206.857.666-2.037%202.821-2.912%202.821-2.912s1.057-1.304%202.292-3.166c-.74.169-1.955.458-2.362.629-.6.251-.762.337-.762.337s1.945-1.184%203.613-1.72C21.695%207.9%2024.195%202.767%2021.678.521m-18.573.543A1.842%201.842%200%200%200%201.27%202.9v16.608a1.84%201.84%200%200%200%201.835%201.834h9.418a22.953%2022.953%200%200%201-.052-2.707c-.006-.062-.011-.141-.016-.2a27.01%2027.01%200%200%200-.473-2.378c-.121-.47-.275-.898-.369-1.057-.116-.197-.098-.31-.097-.432%200-.12.015-.245.037-.386a9.98%209.98%200%200%201%20.234-1.045l.217-.028c-.017-.035-.014-.065-.031-.097l-.041-.381a32.8%2032.8%200%200%201%20.382-1.194l.2-.019c-.008-.016-.01-.038-.018-.053l-.043-.316c.63-3.28%202.587-7.443%204.8-9.791.066-.069.133-.128.198-.194Z'/%3e%3c/svg%3e",
26159
- duckdb: Kv,
26160
- motherduck: Yv,
26161
- postgres: Zv,
26162
- postgresql: Zv,
26163
- mysql: Xv,
26162
+ duckdb: qv,
26163
+ motherduck: Xv,
26164
+ postgres: Qv,
26165
+ postgresql: Qv,
26166
+ mysql: Zv,
26164
26167
  snowflake: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eSnowflake%3c/title%3e%3cpath%20d='M24%203.459c0%20.646-.418%201.18-1.141%201.18-.723%200-1.142-.534-1.142-1.18%200-.647.419-1.18%201.142-1.18.723%200%201.141.533%201.141%201.18zm-.228%200c0-.533-.38-.951-.913-.951s-.913.38-.913.95c0%20.533.38.952.913.952.57%200%20.913-.419.913-.951zm-1.37-.533h.495c.266%200%20.456.152.456.38%200%20.153-.076.229-.19.305l.19.266v.038h-.266l-.19-.266h-.229v.266h-.266zm.495.228h-.229v.267h.229c.114%200%20.152-.038.152-.114.038-.077-.038-.153-.152-.153zM7.602%2012.4c.038-.151.076-.304.076-.456%200-.114-.038-.228-.038-.342-.114-.343-.304-.647-.646-.838l-4.87-2.777c-.685-.38-1.56-.152-1.94.533-.381.685-.153%201.56.532%201.94l2.701%201.56-2.701%201.56c-.685.38-.913%201.256-.533%201.94.38.685%201.256.914%201.94.533l4.832-2.777c.343-.267.571-.533.647-.876zm1.332%202.626c-.266-.038-.57.038-.837.19l-4.832%202.777c-.685.38-.913%201.256-.532%201.94.38.686%201.255.914%201.94.533l2.701-1.56v3.12c0%20.8.647%201.408%201.446%201.408.799%200%201.407-.647%201.407-1.408v-5.592c0-.761-.57-1.37-1.293-1.408zm4.946-6.088c.266.038.57-.038.837-.19l4.832-2.777c.685-.38.913-1.256.532-1.94-.38-.686-1.255-.914-1.94-.533l-2.701%201.56V1.975c0-.799-.647-1.408-1.446-1.408-.799%200-1.446.609-1.446%201.408V7.53c0%20.76.609%201.37%201.332%201.407zM3.265%205.97l4.832%202.777c.266.152.533.19.837.19.723-.038%201.331-.684%201.331-1.407V1.975c0-.799-.646-1.408-1.407-1.408-.799%200-1.446.647-1.446%201.408v3.12l-2.701-1.56c-.685-.38-1.56-.152-1.94.533-.419.646-.19%201.521.494%201.902zm9.093%206.011a.412.412%200%2000-.114-.266l-.57-.571a.346.346%200%2000-.267-.114.412.412%200%2000-.266.114l-.571.57a.411.411%200%2000-.114.267c0%20.076.038.19.114.267l.57.57a.345.345%200%2000.267.114c.076%200%20.19-.038.266-.114l.571-.57a.412.412%200%2000.114-.267zm1.598.533L11.94%2014.53c-.039.038-.153.114-.229.114h-.608a.411.411%200%2001-.267-.114L8.82%2012.514a.408.408%200%2001-.076-.229v-.608c0-.076.038-.19.114-.267l2.016-2.016a.41.41%200%2001.267-.114h.608a.41.41%200%2001.267.114l2.016%202.016a.347.347%200%2001.114.267v.608c-.076.077-.114.19-.19.229zm5.593%205.44l-4.832-2.777c-.266-.152-.57-.19-.837-.152-.723.038-1.332.684-1.332%201.408v5.554c0%20.8.647%201.408%201.408%201.408.799%200%201.446-.647%201.446-1.408v-3.12l2.7%201.56c.686.38%201.561.152%201.941-.533.419-.646.19-1.521-.494-1.94zm2.549-7.533l-2.701%201.56%202.7%201.56c.686.38.914%201.256.533%201.94-.38.685-1.255.913-1.94.533l-4.832-2.778a1.644%201.644%200%2001-.647-.798c-.037-.153-.076-.305-.076-.457%200-.114.039-.228.039-.342.114-.343.342-.647.646-.837l4.832-2.778c.685-.38%201.56-.152%201.94.533.457.609.19%201.484-.494%201.864'/%3e%3c/svg%3e",
26165
- databricks: Wv,
26166
- clickhouse: Uv,
26168
+ databricks: Gv,
26169
+ clickhouse: Wv,
26167
26170
  timeplus: "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3c!--%20Generated%20by%20Pixelmator%20Pro%203.6.17%20--%3e%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Option2SymbolB'%3e%3cg%20id='Layer1-2'%3e%3cg%20id='Group'%20opacity='0.4'%3e%3cpath%20id='Path'%20fill='%23d53c97'%20stroke='none'%20d='M%2017.016802%2012.188573%20C%2017.016802%209.607646%2015.86018%207.293022%2014.039526%205.731081%20C%2013.942595%205.70038%2013.844628%205.671406%2013.745972%205.645189%20C%2013.131133%205.809095%2012.54265%206.059378%2011.998103%206.388559%20C%2013.964327%207.575191%2015.281006%209.730104%2015.281006%2012.188573%20C%2015.279476%2014.563734%2014.033739%2016.764488%2011.998103%2017.988243%20C%2012.542634%2018.317537%2013.131119%2018.567936%2013.745972%2018.731958%20C%2013.844628%2018.705742%2013.942595%2018.67642%2014.039526%2018.645721%20C%2015.86018%2017.084126%2017.016802%2014.769501%2017.016802%2012.188573%20Z'/%3e%3cpath%20id='path1'%20fill='%23d53c97'%20stroke='none'%20d='M%2013.897406%205.609659%20L%2013.894991%205.60759%20C%2013.844973%205.619663%2013.7953%205.631737%2013.745972%205.645189%20C%2013.79599%205.631737%2013.847043%205.622078%2013.897406%205.609659%20Z'/%3e%3cpath%20id='path2'%20fill='%23d53c97'%20stroke='none'%20d='M%201.735796%2012.188573%20C%201.735796%209.164728%203.728925%206.59622%206.470945%205.729357%20C%207.554634%204.797861%208.856011%204.155121%2010.254373%203.860756%20C%209.680216%203.740549%209.095179%203.679977%208.508574%203.68%20C%203.816888%203.68%20-0%207.496887%20-0%2012.188573%20C%20-0%2016.880259%203.816888%2020.697147%208.508574%2020.697147%20C%209.0952%2020.697229%209.680255%2020.636539%2010.254373%2020.516048%20C%208.855971%2020.221794%207.554568%2019.579041%206.470945%2018.647446%20C%203.728925%2017.780582%201.735796%2015.213453%201.735796%2012.188573%20Z'/%3e%3cpath%20id='path3'%20fill='%23d53c97'%20stroke='none'%20d='M%2013.745972%2018.731958%20C%2013.7953%2018.745068%2013.844973%2018.757484%2013.894991%2018.769558%20C%2013.894991%2018.769558%2013.896715%2018.769558%2013.897406%2018.767488%20C%2013.847043%2018.754379%2013.79599%2018.745411%2013.745972%2018.731958%20Z'/%3e%3c/g%3e%3cpath%20id='path4'%20fill='%23ff3b65'%20stroke='none'%20d='M%2020.508402%2012.188573%20C%2020.508402%209.606611%2019.351088%207.290262%2017.5294%205.729357%20C%2016.301817%205.342468%2014.989366%205.313629%2013.745972%205.646223%20C%2016.636665%206.418224%2018.772606%209.058484%2018.772606%2012.189609%20C%2018.772606%2015.320732%2016.636665%2017.960991%2013.745972%2018.731958%20C%2014.98947%2019.064316%2016.301983%2019.034998%2017.5294%2018.647446%20C%2019.419907%2017.034296%2020.508638%2014.673781%2020.508402%2012.188573%20Z'/%3e%3cpath%20id='path5'%20fill='%23ff3b65'%20stroke='none'%20d='M%209.962543%2018.647446%20C%207.220525%2017.780582%205.227395%2015.213453%205.227395%2012.188573%20C%205.227395%209.163693%207.220525%206.59622%209.962543%205.729357%20C%2011.046233%204.797861%2012.34761%204.155121%2013.745972%203.860756%20C%2013.171818%203.74053%2012.586779%203.679956%2012.000173%203.68%20C%207.308832%203.68%203.491599%207.496887%203.491599%2012.188573%20C%203.491599%2016.880259%207.308487%2020.697147%2012.000173%2020.697147%20C%2012.586799%2020.697247%2013.171857%2020.636557%2013.745972%2020.516048%20C%2012.34757%2020.221794%2011.046167%2019.579041%209.962543%2018.647446%20Z'/%3e%3cpath%20id='path6'%20fill='%23383838'%20stroke='none'%20d='M%2015.491772%203.68%20C%2010.800431%203.68%206.983198%207.496887%206.983198%2012.188573%20C%206.983198%2016.880259%2010.800086%2020.697147%2015.491772%2020.697147%20C%2020.183456%2020.697147%2024%2016.880259%2024%2012.188573%20C%2024%207.496887%2020.183456%203.68%2015.491772%203.68%20Z%20M%2022.264549%2012.188573%20C%2022.264549%2015.923018%2019.226215%2018.961351%2015.491772%2018.961351%20C%2011.757326%2018.961351%208.718994%2015.923018%208.718994%2012.188573%20C%208.718994%208.454128%2011.757326%205.415796%2015.491772%205.415796%20C%2019.226215%205.415796%2022.264549%208.454128%2022.264549%2012.188573%20Z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",
26168
- bigquery: qv,
26171
+ bigquery: Jv,
26169
26172
  trino: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eTrino%3c/title%3e%3cpath%20d='M14.124%2016.8529a.1615.1615%200%201%201%20.1576.1614.1577.1577%200%200%201-.1576-.1614zm-5.607-.1576a.1614.1614%200%201%200%200%20.3228.1614.1614%200%200%200%200-.3228zm10.1341-.6648v1.9869c-.031.5788-.524%201.0237-1.1029.9954h-.3843a5.0596%205.0596%200%200%201-1.1298%201.7178.3192.3192%200%200%200%200%20.465l.2382.2191a.3036.3036%200%200%201%20.0385.4304c-1.126%201.3835-2.9669%202.1521-5.0498%202.1521a6.575%206.575%200%200%201-4.8192-1.8985c-.0029-.0032-.0059-.0063-.0087-.0096a.6302.6302%200%200%201%20.0548-.8896c.137-.1265.1371-.3462%200-.4727a4.944%204.944%200%200%201-1.126-1.714h-.3497c-.5797.0284-1.0737-.416-1.1068-.9954v-1.9869c.0351-.5779.5286-1.02%201.1068-.9915h.2728a5.7648%205.7648%200%200%201%202.0791-3.0936c-.4227-1.0991-1.1529-3.2551-1.226-5.0075C6.0229%204.4705%206.2189.078%207.8253.001c1.6064-.0768%201.3719%204.0275%201.0991%206.6946a32.732%2032.732%200%200%200-.123%204.4503%206.994%206.994%200%200%201%202.4826-.4304%207.2414%207.2414%200%200%201%201.7371.2075c.2614-1.2682.8762-3.574%202.0292-5.1958%201.6717-2.352%203.4357-4.7808%204.6116-4.1006%201.176.6802-.3074%203.1398-1.3297%204.4272-1.0222%201.2874-2.7862%203.2089-3.3742%204.2274-.2114.3843-.4304.8032-.5956%201.1529a5.7375%205.7375%200%200%201%202.9169%203.6125h.073v-2.3058a.3075.3075%200%200%200-.1806-.2844.9148.9148%200%200%201-.5573-.8148%201.0184%201.0184%200%200%201%20.9045-.9044c.5593-.0598%201.061.3452%201.1208.9044a.9187.9187%200%200%201-.5534.8148.3074.3074%200%200%200-.1691.2844v2.1522a.3113.3113%200%200%200%20.1691.2805.9724.9724%200%200%201%20.5648.857zm-1.0222-3.9737a.4345.4345%200%200%200%20.4612-.4151.4151.4151%200%201%200-.4612.4151zm-.4227%203.4779c.0978.4794.148.9672.1498%201.4565v.3651h.4113a.3228.3228%200%200%200%20.3228-.319v-1.0069c-.0111-.2967-.2733-.5256-.5688-.4957h-.3151zm-3.7278-4.481.611.2383a36.6046%2036.6046%200%200%201%202.3828-3.8661c1.2874-1.7255%202.3365-3.5817%201.8715-3.8699-.465-.2883-1.6179%201.2297-2.7708%203.109a34.8978%2034.8978%200%200%200-2.0945%204.3887zm-4.0544.6726.0154%201.3335c-.0039.2007.1881.3587.3843.3152a6.4317%206.4317%200%200%201%201.4565-.1653%205.995%205.995%200%200%201%201.4527.1729c.1956.0398.3853-.1153.3843-.3151v-1.3412a.319.319%200%200%200-.2421-.3113%206.664%206.664%200%200%200-1.6026-.1845%206.7093%206.7093%200%200%200-1.6025.1845.3188.3188%200%200%200-.246.3113zm1.7063%206.8637v.3843a.6878.6878%200%200%201-.4996.269c-.3074%200-.538-.4189-.538-.4189a.073.073%200%200%200-.1-.0307l-.0024.0013a.0693.0693%200%200%200-.0245.0947c.0115.0231.2806.4957.6649.4957a.7144.7144%200%200%200%20.3843-.1268.3267.3267%200%200%201%20.3612%200%20.8332.8332%200%200%200%20.4727.1345.957.957%200%200%200%20.6572-.4803.0692.0692%200%200%200-.0269-.0961.0692.0692%200%200%200-.0999.0269c0%20.0231-.2191.3843-.5419.4074a.8036.8036%200%200%201-.5765-.269v-.3843a.3154.3154%200%200%201%20.1268-.2537c.196-.1499.415-.3958.415-.4919a.538.538%200%200%200-.5764-.4189c-.3766%200-.6533.2498-.6533.4573%200%20.1345.2536.3382.4227.4612a.3226.3226%200%200%201%20.1346.2383zM7.783%2011.6455l.5765-.3074c-.0192-1.126-.0346-3.1436%200-4.5425.0538-2.0368.1537-4.5732-.5226-4.5463S6.6877%204.2285%206.949%207.007a33.0562%2033.0562%200%200%200%20.834%204.6385zm-3.305%205.3919a.319.319%200%200%200%20.319.319h.3997a3.046%203.046%200%200%201%200-.3651%207.546%207.546%200%200%201%20.1461-1.4565c-.0493.0002-.34.0005-.3866-.0021a.4881.4881%200%200%200-.4781.4979v1.0068zm.9184%201.4718a5.3254%205.3254%200%200%201-.123-.5573.3228.3228%200%200%200-.319-.2728h-.4957c.0007.0163-.0015.34.0009.355a.5188.5188%200%200%200%20.5526.4827l.3842-.0076zm10.1265%202.917-.0884-.0807a.3229.3229%200%200%200-.3843-.0269%206.9823%206.9823%200%200%201-3.8046%201.0068%206.995%206.995%200%200%201-3.7932-1.0068.3228.3228%200%200%200-.3843.0269l-.0884.0807a.3154.3154%200%200%200%200%20.4573%206.0305%206.0305%200%200%200%204.2927%201.5988%206.0453%206.0453%200%200%200%204.2889-1.5988.315.315%200%200%200-.0384-.4573zm1.4488-4.4158c0-2.4557-1.1529-4.3273-3.0245-5.2266-.2081-.1022-.4673.0594-.465.2921v1.3297a.3269.3269%200%200%200%20.2037.296c1.7332.7109%202.9284%202.1866%202.9284%203.8776%200%202.2712-2.1559%203.8085-5.3419%203.8085-3.1859%200-5.3419-1.5411-5.3419-3.8085%200-1.691%201.1952-3.1667%202.9284-3.8776a.319.319%200%200%200%20.2037-.296v-1.322c.0048-.2315-.2536-.3963-.4612-.2921-1.887.8839-3.0399%202.767-3.0399%205.2073%200%202.9899%202.2866%204.996%205.7108%204.996%203.4282.0001%205.6994-2.0098%205.6994-4.9844zm-8.6084-.538h-.0038a.5842.5842%200%201%200%20.0038%200zm5.1614.5919c.0063.3226.2615.5789.584.5725a.5842.5842%200%201%200-.584-.5725zm4.5692.6225h-.4996a.3227.3227%200%200%200-.3151.2728c-.0346.173-.0768.3766-.1268.5573.0163.0007.3861-.0014.4012.0009a.5188.5188%200%200%200%20.5366-.5004l.0037-.3306z'/%3e%3c/svg%3e",
26170
- iceberg: Jv,
26171
- datafusion: Gv,
26173
+ iceberg: Yv,
26174
+ datafusion: Kv,
26172
26175
  pyspark: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eApache%20Spark%3c/title%3e%3cpath%20d='M10.812%200c-.425.013-.845.215-1.196.605a3.593%203.593%200%2000-.493.722c-.355.667-.425%201.415-.556%202.143a551.9%20551.9%200%2000-.726%204.087c-.027.16-.096.227-.244.273C5.83%208.386%204.06%208.94%202.3%209.514c-.387.125-.773.289-1.114.506-1.042.665-1.196%201.753-.415%202.71.346.422.79.715%201.284.936%201.1.49%202.202.976%203.3%201.47.019.01.036.013.053.019h-.004l1.306.535c0%20.023.002.045%200%20.073-.2%202.03-.39%204.063-.58%206.095-.04.419-.012.831.134%201.23.317.87%201.065%201.148%201.881.701.372-.204.666-.497.937-.818%201.372-1.623%202.746-3.244%204.113-4.872.111-.133.205-.15.363-.098.349.117.697.231%201.045.347h.001c.02.012.045.02.073.03l.142.042c1.248.416%202.68.775%203.929%201.19.4.132.622.164%201.045.098.311-.048.592-.062.828-.236.602-.33.995-.957.988-1.682-.005-.427-.154-.813-.35-1.186-.82-1.556-1.637-3.113-2.461-4.666-.078-.148-.076-.243.037-.375%201.381-1.615%202.756-3.236%204.133-4.855.272-.32.513-.658.653-1.058.308-.878-.09-1.57-1-1.741a2.783%202.783%200%2000-1.235.069c-1.974.521-3.947%201.041-5.918%201.57-.175.047-.26.015-.355-.144a353.08%20353.08%200%2000-2.421-4.018%204.61%204.61%200%2000-.652-.849c-.371-.37-.802-.549-1.227-.536zm.172%203.703a.592.592%200%2001.189.211c.87%201.446%201.742%202.89%202.609%204.338.07.118.135.16.277.121%201.525-.41%203.052-.813%204.579-1.217.367-.098.735-.193%201.103-.289a.399.399%200%2001-.1.2c-1.259%201.48-2.516%202.962-3.779%204.438-.11.13-.12.22-.04.37.937%201.803%201.768%203.309%202.498%204.76l-3.696-1.019c-.538-.18-1.077-.358-1.615-.539-.163-.055-.25-.03-.36.1-1.248%201.488-2.504%202.97-3.759%204.454a.398.398%200%2001-.18.132c.035-.378.068-.757.104-1.136.149-1.572.297-3.144.451-4.716-.03-.318.117-.405-.322-.545-1.493-.593-3.346-1.321-4.816-1.905a.595.595%200%2001.24-.134c1.797-.57%203.595-1.14%205.394-1.705.127-.04.199-.092.211-.233.013-.148.05-.294.076-.441.241-1.363.483-2.726.726-4.088.068-.386.14-.771.21-1.157z'/%3e%3c/svg%3e",
26173
26176
  redshift: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eAmazon%20Redshift%3c/title%3e%3cpath%20d='M16.639%209.932a.822.822%200%200%201-.822-.82.823.823%200%200%201%201.645%200c0%20.452-.37.82-.823.82m-2.086%204.994a.823.823%200%200%201-.822-.822.822.822%200%200%201%201.645%200%20.822.822%200%200%201-.823.822m-5.004-.833a.822.822%200%201%201%20.002-1.644.822.822%200%200%201-.002%201.644m-2.083%204.578a.823.823%200%200%201-.823-.82.823.823%200%200%201%201.645%200c0%20.452-.37.82-.822.82m9.173-11.236a1.68%201.68%200%200%200-1.68%201.676c0%20.566.285%201.066.718%201.37l-.782%201.982a1.674%201.674%200%200%200-1.923%201.104l-1.753-.398a1.675%201.675%200%200%200-3.348.103c0%20.432.169.823.438%201.12l-.764%201.79c-.028-.001-.053-.008-.08-.008a1.68%201.68%200%200%200-1.68%201.676%201.68%201.68%200%200%200%203.36%200c0-.593-.312-1.112-.778-1.41l.674-1.579c.161.052.33.088.508.088.661%200%201.228-.386%201.502-.94l1.856.42a1.68%201.68%200%200%200%203.327-.325c0-.5-.224-.943-.574-1.25l.822-2.083c.053.005.104.016.157.016a1.68%201.68%200%200%200%201.68-1.676%201.68%201.68%200%200%200-1.68-1.676M12%2023.145c-4.17%200-7.286-1.252-7.286-2.37V4.79C6.14%205.938%209.131%206.547%2012%206.547c2.869%200%205.86-.609%207.286-1.756v15.983c0%201.12-3.116%202.37-7.286%202.37M12%20.856c4.293%200%207.286%201.274%207.286%202.419%200%201.143-2.993%202.418-7.286%202.418-4.293%200-7.286-1.275-7.286-2.418C4.714%202.129%207.707.855%2012%20.855m8.143%202.419C20.143%201.147%2015.947%200%2012%200%208.052%200%203.857%201.147%203.857%203.274l.002.01h-.002v17.49C3.857%2022.87%208.052%2024%2012%2024c3.947%200%208.143-1.13%208.143-3.226V3.284h-.002l.002-.01'/%3e%3c/svg%3e",
26174
26177
  supabase: "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eSupabase%3c/title%3e%3cpath%20d='M11.9%201.036c-.015-.986-1.26-1.41-1.874-.637L.764%2012.05C-.33%2013.427.65%2015.455%202.409%2015.455h9.579l.113%207.51c.014.985%201.259%201.408%201.873.636l9.262-11.653c1.093-1.375.113-3.403-1.645-3.403h-9.642z'/%3e%3c/svg%3e"
26175
- }, $v = (e) => {
26176
- let t = (0, wr.c)(11), { name: n, className: r } = e, i = Qv[n.toLowerCase()];
26178
+ }, ey = (e) => {
26179
+ let t = (0, wr.c)(11), { name: n, className: r } = e, i = $v[n.toLowerCase()];
26177
26180
  if (!i) {
26178
26181
  let e;
26179
26182
  t[0] === r ? e = t[1] : (e = o("mt-0.5", r), t[0] = r, t[1] = e);
@@ -26191,15 +26194,15 @@ var Uv = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20x
26191
26194
  };
26192
26195
  //#endregion
26193
26196
  //#region src/core/cells/add-missing-import.ts
26194
- function ey({ moduleName: e, variableName: t, onAddImport: n, appStore: r = j }) {
26197
+ function ty({ moduleName: e, variableName: t, onAddImport: n, appStore: r = j }) {
26195
26198
  if (t in r.get(qd)) return !1;
26196
26199
  let { cellData: i, cellIds: a } = r.get($), o = RegExp(`import[ \t]+${e}[ \t]+as[ \t]+${t}`, "g");
26197
26200
  for (let e of a.inOrderIds) if (o.test(i[e].code)) return !1;
26198
26201
  return n(`import ${e} as ${t}`), !0;
26199
26202
  }
26200
- function ty({ autoInstantiate: e, createNewCell: t, fromCellId: n, before: r }) {
26203
+ function ny({ autoInstantiate: e, createNewCell: t, fromCellId: n, before: r }) {
26201
26204
  let i = xl(), a = null;
26202
- return ey({
26205
+ return ty({
26203
26206
  moduleName: "marimo",
26204
26207
  variableName: "mo",
26205
26208
  onAddImport: (o) => {
@@ -26218,9 +26221,9 @@ function ty({ autoInstantiate: e, createNewCell: t, fromCellId: n, before: r })
26218
26221
  }
26219
26222
  }) ? a : null;
26220
26223
  }
26221
- function ny({ autoInstantiate: e, createNewCell: t, fromCellId: n }) {
26224
+ function ry({ autoInstantiate: e, createNewCell: t, fromCellId: n }) {
26222
26225
  let r = xl(), i = null;
26223
- return ey({
26226
+ return ty({
26224
26227
  moduleName: "altair",
26225
26228
  variableName: "alt",
26226
26229
  onAddImport: (a) => {
@@ -26241,13 +26244,13 @@ function ny({ autoInstantiate: e, createNewCell: t, fromCellId: n }) {
26241
26244
  }
26242
26245
  //#endregion
26243
26246
  //#region src/core/cells/focus.ts
26244
- function ry() {
26247
+ function iy() {
26245
26248
  return {
26246
26249
  focusedCellId: null,
26247
26250
  lastFocusedCellId: null
26248
26251
  };
26249
26252
  }
26250
- var { reducer: iy, createActions: ay, valueAtom: oy, useActions: sy } = y(ry, {
26253
+ var { reducer: ay, createActions: oy, valueAtom: sy, useActions: cy } = y(iy, {
26251
26254
  focusCell: (e, t) => ({
26252
26255
  ...e,
26253
26256
  focusedCellId: t.cellId,
@@ -26265,15 +26268,15 @@ var { reducer: iy, createActions: ay, valueAtom: oy, useActions: sy } = y(ry, {
26265
26268
  ...e,
26266
26269
  focusedCellId: null
26267
26270
  })
26268
- }), cy = A((e) => e(oy).lastFocusedCellId);
26269
- function ly() {
26270
- return Le(cy);
26271
+ }), ly = A((e) => e(sy).lastFocusedCellId);
26272
+ function uy() {
26273
+ return Le(ly);
26271
26274
  }
26272
26275
  A((e) => {
26273
- let t = e(cy);
26274
- return !t || t === "__scratch__" ? null : uy(t, e($));
26276
+ let t = e(ly);
26277
+ return !t || t === "__scratch__" ? null : dy(t, e($));
26275
26278
  });
26276
- function uy(e, t) {
26279
+ function dy(e, t) {
26277
26280
  let { cellData: n, cellHandles: r, cellRuntime: i } = t, a = n[e], o = i[e], s = r[e]?.current;
26278
26281
  return !a || !s ? null : {
26279
26282
  cellId: e,
@@ -26287,10 +26290,10 @@ function uy(e, t) {
26287
26290
  }
26288
26291
  //#endregion
26289
26292
  //#region src/components/editor/connections/components.tsx
26290
- function dy() {
26291
- let e = (0, wr.c)(4), { createNewCell: t } = Kx(), n = ly(), r = Le(Ne), i;
26293
+ function fy() {
26294
+ let e = (0, wr.c)(4), { createNewCell: t } = Jx(), n = uy(), r = Le(Ne), i;
26292
26295
  return e[0] !== r || e[1] !== t || e[2] !== n ? (i = (e) => {
26293
- /\bmo\./.test(e) && ty({
26296
+ /\bmo\./.test(e) && ny({
26294
26297
  autoInstantiate: r,
26295
26298
  createNewCell: t,
26296
26299
  fromCellId: n
@@ -26302,44 +26305,44 @@ function dy() {
26302
26305
  });
26303
26306
  }, e[0] = r, e[1] = t, e[2] = n, e[3] = i) : i = e[3], i;
26304
26307
  }
26305
- function fy(e) {
26306
- let t = (0, wr.c)(3), n = dy(), r;
26308
+ function py(e) {
26309
+ let t = (0, wr.c)(3), n = fy(), r;
26307
26310
  return t[0] !== n || t[1] !== e ? (r = (t) => {
26308
26311
  n(t.code), e?.();
26309
26312
  }, t[0] = n, t[1] = e, t[2] = r) : r = t[2], r;
26310
26313
  }
26311
26314
  //#endregion
26312
26315
  //#region src/core/datasets/data-source-discovery.ts
26313
- function py(e, t) {
26316
+ function my(e, t) {
26314
26317
  return !t || e.category === "object-storage" == (t === "storage");
26315
26318
  }
26316
- function my(e, t) {
26319
+ function hy(e, t) {
26317
26320
  let n = e.hidesWhen;
26318
26321
  return n.kind === "dialect" ? n.substrings.some((e) => t.dialects.some((t) => t.includes(e))) : n.protocols.some((e) => t.storageProtocols.has(e)) ? !0 : n.backendTypes.some((e) => t.storageBackendTypes.has(e));
26319
26322
  }
26320
- var hy = A(0), gy, _y = 0;
26321
- function vy() {
26322
- let e = j.get(hy);
26323
- return (!gy || _y !== e) && (_y = e, gy = Km().then(() => W_.request({})).then((e) => e.sources).catch((t) => {
26324
- throw _y === e && (gy = void 0), t;
26325
- })), gy;
26323
+ var gy = A(0), _y, vy = 0;
26324
+ function yy() {
26325
+ let e = j.get(gy);
26326
+ return (!_y || vy !== e) && (vy = e, _y = qm().then(() => G_.request({})).then((e) => e.sources).catch((t) => {
26327
+ throw vy === e && (_y = void 0), t;
26328
+ })), _y;
26326
26329
  }
26327
- function yy(e, t) {
26330
+ function by(e, t) {
26328
26331
  return `${e}::${t ?? ""}`;
26329
26332
  }
26330
- function by(e) {
26333
+ function xy(e) {
26331
26334
  return `${e}::`;
26332
26335
  }
26333
26336
  //#endregion
26334
26337
  //#region src/core/storage/state.ts
26335
- function xy() {
26338
+ function Sy() {
26336
26339
  return {
26337
26340
  namespaces: [],
26338
26341
  entriesByPath: /* @__PURE__ */ new Map(),
26339
26342
  pageMetadataByPath: /* @__PURE__ */ new Map()
26340
26343
  };
26341
26344
  }
26342
- var { reducer: Sy, createActions: Cy, valueAtom: wy, useActions: Ty } = y(xy, {
26345
+ var { reducer: Cy, createActions: wy, valueAtom: Ty, useActions: Ey } = y(Sy, {
26343
26346
  setNamespaces: (e, t) => {
26344
26347
  let n = new Map(e.namespaces.map((e) => [e.name, e]));
26345
26348
  for (let e of t.namespaces) n.set(e.name, e);
@@ -26349,7 +26352,7 @@ var { reducer: Sy, createActions: Cy, valueAtom: wy, useActions: Ty } = y(xy, {
26349
26352
  };
26350
26353
  },
26351
26354
  setEntries: (e, t) => {
26352
- let n = yy(t.namespace, t.prefix), r = new Map(e.entriesByPath), i = t.append && r.has(n) ? [...r.get(n) ?? [], ...t.entries] : t.entries;
26355
+ let n = by(t.namespace, t.prefix), r = new Map(e.entriesByPath), i = t.append && r.has(n) ? [...r.get(n) ?? [], ...t.entries] : t.entries;
26353
26356
  r.set(n, i);
26354
26357
  let a = new Map(e.pageMetadataByPath);
26355
26358
  return a.set(n, { nextPageToken: t.nextPageToken ?? null }), {
@@ -26359,7 +26362,7 @@ var { reducer: Sy, createActions: Cy, valueAtom: wy, useActions: Ty } = y(xy, {
26359
26362
  };
26360
26363
  },
26361
26364
  clearNamespaceCache: (e, t) => {
26362
- let n = new Map(e.entriesByPath), r = new Map(e.pageMetadataByPath), i = by(t);
26365
+ let n = new Map(e.entriesByPath), r = new Map(e.pageMetadataByPath), i = xy(t);
26363
26366
  for (let e of n.keys()) e.startsWith(i) && n.delete(e);
26364
26367
  for (let e of r.keys()) e.startsWith(i) && r.delete(e);
26365
26368
  return {
@@ -26375,15 +26378,15 @@ var { reducer: Sy, createActions: Cy, valueAtom: wy, useActions: Ty } = y(xy, {
26375
26378
  namespaces: r
26376
26379
  };
26377
26380
  }
26378
- }), Ey = A((e) => e(wy).namespaces);
26381
+ }), Dy = A((e) => e(Ty).namespaces);
26379
26382
  //#endregion
26380
26383
  //#region src/hooks/useDataSourceDiscovery.ts
26381
- function Dy() {
26382
- let e = (0, wr.c)(2), t = Le(hy), n;
26383
- return e[0] === t ? n = e[1] : (n = [t], e[0] = t, e[1] = n), on(vy, n);
26384
+ function Oy() {
26385
+ let e = (0, wr.c)(2), t = Le(gy), n;
26386
+ return e[0] === t ? n = e[1] : (n = [t], e[0] = t, e[1] = n), on(yy, n);
26384
26387
  }
26385
- function Oy(e) {
26386
- let t = (0, wr.c)(6), { data: n } = Dy(), r = Le(Zl), i = Le(Ey), a;
26388
+ function ky(e) {
26389
+ let t = (0, wr.c)(6), { data: n } = Oy(), r = Le(Zl), i = Le(Dy), a;
26387
26390
  bb0: {
26388
26391
  if (!n) {
26389
26392
  let e;
@@ -26393,91 +26396,91 @@ function Oy(e) {
26393
26396
  let o;
26394
26397
  if (t[1] !== r || t[2] !== n || t[3] !== e || t[4] !== i) {
26395
26398
  let a = {
26396
- dialects: [...r.values()].map(jy),
26397
- storageProtocols: new Set(i.map(Ay)),
26398
- storageBackendTypes: new Set(i.map(ky))
26399
+ dialects: [...r.values()].map(My),
26400
+ storageProtocols: new Set(i.map(jy)),
26401
+ storageBackendTypes: new Set(i.map(Ay))
26399
26402
  };
26400
- o = n.filter((t) => py(t, e) && !my(t, a)), t[1] = r, t[2] = n, t[3] = e, t[4] = i, t[5] = o;
26403
+ o = n.filter((t) => my(t, e) && !hy(t, a)), t[1] = r, t[2] = n, t[3] = e, t[4] = i, t[5] = o;
26401
26404
  } else o = t[5];
26402
26405
  a = o;
26403
26406
  }
26404
26407
  return a;
26405
26408
  }
26406
- function ky(e) {
26409
+ function Ay(e) {
26407
26410
  return e.backendType.toLowerCase();
26408
26411
  }
26409
- function Ay(e) {
26412
+ function jy(e) {
26410
26413
  return e.protocol.toLowerCase();
26411
26414
  }
26412
- function jy(e) {
26415
+ function My(e) {
26413
26416
  return e.dialect.toLowerCase();
26414
26417
  }
26415
26418
  //#endregion
26416
26419
  //#region src/hooks/useNonce.ts
26417
- function My() {
26420
+ function Ny() {
26418
26421
  let e = (0, wr.c)(1), [, t] = (0, P.useState)(0), n;
26419
26422
  return e[0] === Symbol.for("react.memo_cache_sentinel") ? (n = () => {
26420
- t(Ny);
26423
+ t(Py);
26421
26424
  }, e[0] = n) : n = e[0], n;
26422
26425
  }
26423
- function Ny(e) {
26426
+ function Py(e) {
26424
26427
  return e + 1;
26425
26428
  }
26426
26429
  //#endregion
26427
26430
  //#region src/core/codemirror/language/panel/sql.tsx
26428
- var Py = (e) => {
26429
- let t = (0, wr.c)(6), n = Oy("database");
26431
+ var Fy = (e) => {
26432
+ let t = (0, wr.c)(6), n = ky("database");
26430
26433
  if (n.length === 0) {
26431
26434
  let r;
26432
- return t[0] !== n || t[1] !== e ? (r = /* @__PURE__ */ (0, F.jsx)(Iy, {
26435
+ return t[0] !== n || t[1] !== e ? (r = /* @__PURE__ */ (0, F.jsx)(Ly, {
26433
26436
  ...e,
26434
26437
  detectedDataSources: n
26435
26438
  }), t[0] = n, t[1] = e, t[2] = r) : r = t[2], r;
26436
26439
  }
26437
26440
  let r;
26438
- return t[3] !== n || t[4] !== e ? (r = /* @__PURE__ */ (0, F.jsx)(Fy, {
26441
+ return t[3] !== n || t[4] !== e ? (r = /* @__PURE__ */ (0, F.jsx)(Iy, {
26439
26442
  ...e,
26440
26443
  detectedDataSources: n
26441
26444
  }), t[3] = n, t[4] = e, t[5] = r) : r = t[5], r;
26442
- }, Fy = (e) => {
26445
+ }, Iy = (e) => {
26443
26446
  let t = (0, wr.c)(7), n, r;
26444
26447
  t[0] === e ? (n = t[1], r = t[2]) : ({detectedDataSources: n, ...r} = e, t[0] = e, t[1] = n, t[2] = r);
26445
- let i = fy(), a;
26446
- return t[3] !== i || t[4] !== n || t[5] !== r ? (a = /* @__PURE__ */ (0, F.jsx)(Iy, {
26448
+ let i = py(), a;
26449
+ return t[3] !== i || t[4] !== n || t[5] !== r ? (a = /* @__PURE__ */ (0, F.jsx)(Ly, {
26447
26450
  ...r,
26448
26451
  detectedDataSources: n,
26449
26452
  addDetectedDataSource: i
26450
26453
  }), t[3] = i, t[4] = n, t[5] = r, t[6] = a) : a = t[6], a;
26451
- }, Iy = (e) => {
26454
+ }, Ly = (e) => {
26452
26455
  let t = (0, wr.c)(42), { selectedEngine: n, onChange: r, cellId: i, detectedDataSources: a, addDetectedDataSource: o } = e, s = Le(Zl), c = [], l = [];
26453
26456
  for (let [e, t] of s.entries()) Pl.has(e) ? c.push(t) : l.push(t);
26454
- let u = My(), d;
26457
+ let u = Ny(), d;
26455
26458
  t[0] !== s || t[1] !== n ? (d = n && !s.has(n), t[0] = s, t[1] = n, t[2] = d) : d = t[2];
26456
26459
  let f = d, p;
26457
26460
  t[3] !== o || t[4] !== s || t[5] !== a || t[6] !== r || t[7] !== u ? (p = (e) => {
26458
- if (e === Ly) {
26459
- window.open(zy, "_blank");
26461
+ if (e === Ry) {
26462
+ window.open(By, "_blank");
26460
26463
  return;
26461
26464
  }
26462
- if (e.startsWith(Ry)) {
26463
- let t = e.slice(Ry.length), n = a.find((e) => e.id === t);
26465
+ if (e.startsWith(zy)) {
26466
+ let t = e.slice(zy.length), n = a.find((e) => e.id === t);
26464
26467
  n && o && o(n);
26465
26468
  return;
26466
26469
  }
26467
26470
  let t = s.get(e);
26468
26471
  t && (u(), r(t.name), Ql(t.name));
26469
26472
  }, t[3] = o, t[4] = s, t[5] = a, t[6] = r, t[7] = u, t[8] = p) : p = t[8];
26470
- let m = p, h = Wy, g = ce, _;
26471
- t[9] === i ? _ = t[10] : (_ = Hv(i), t[9] = i, t[10] = _);
26473
+ let m = p, h = Gy, g = ce, _;
26474
+ t[9] === i ? _ = t[10] : (_ = Uv(i), t[9] = i, t[10] = _);
26472
26475
  let v;
26473
26476
  t[11] === Symbol.for("react.memo_cache_sentinel") ? (v = /* @__PURE__ */ (0, F.jsx)(ne, { placeholder: "Select an engine" }), t[11] = v) : v = t[11];
26474
26477
  let y;
26475
- t[12] === _ ? y = t[13] : (y = /* @__PURE__ */ (0, F.jsx)(Vy, {
26478
+ t[12] === _ ? y = t[13] : (y = /* @__PURE__ */ (0, F.jsx)(Hy, {
26476
26479
  ..._,
26477
26480
  children: v
26478
26481
  }), t[12] = _, t[13] = y);
26479
26482
  let b = ie, x;
26480
- t[14] === i ? x = t[15] : (x = Hv(i), t[14] = i, t[15] = x);
26483
+ t[14] === i ? x = t[15] : (x = Uv(i), t[14] = i, t[15] = x);
26481
26484
  let S = oe, C;
26482
26485
  t[16] === Symbol.for("react.memo_cache_sentinel") ? (C = /* @__PURE__ */ (0, F.jsx)(ee, { children: "Database connections" }), t[16] = C) : C = t[16];
26483
26486
  let w;
@@ -26495,17 +26498,17 @@ var Py = (e) => {
26495
26498
  t[20] === a ? ue = t[21] : (ue = a.length > 0 && /* @__PURE__ */ (0, F.jsxs)(F.Fragment, { children: [
26496
26499
  /* @__PURE__ */ (0, F.jsx)(ae, {}),
26497
26500
  /* @__PURE__ */ (0, F.jsx)(ee, { children: "Detected in your environment" }),
26498
- a.map(Gy)
26501
+ a.map(Ky)
26499
26502
  ] }), t[20] = a, t[21] = ue);
26500
26503
  let de;
26501
26504
  t[22] === Symbol.for("react.memo_cache_sentinel") ? (de = /* @__PURE__ */ (0, F.jsx)(ae, {}), t[22] = de) : de = t[22];
26502
26505
  let fe;
26503
26506
  t[23] === Symbol.for("react.memo_cache_sentinel") ? (fe = /* @__PURE__ */ (0, F.jsx)(re, {
26504
26507
  className: "text-muted-foreground",
26505
- value: Ly,
26508
+ value: Ry,
26506
26509
  children: /* @__PURE__ */ (0, F.jsxs)("a", {
26507
26510
  className: "flex items-center gap-1",
26508
- href: zy,
26511
+ href: By,
26509
26512
  target: "_blank",
26510
26513
  rel: "noreferrer",
26511
26514
  children: [/* @__PURE__ */ (0, F.jsx)(le, { className: "h-3 w-3" }), /* @__PURE__ */ (0, F.jsx)("span", { children: "How to add a database connection" })]
@@ -26536,13 +26539,13 @@ var Py = (e) => {
26536
26539
  children: [y, me]
26537
26540
  })
26538
26541
  }), t[36] = g, t[37] = m, t[38] = n, t[39] = me, t[40] = y, t[41] = E) : E = t[41], E;
26539
- }, Ly = "__help__", Ry = "__detected_source__:", zy = "http://docs.marimo.io/guides/working_with_data/sql/#connecting-to-a-custom-database", By = () => {
26540
- let e = (0, wr.c)(16), { sqlMode: t, setSQLMode: n } = rv(), r;
26542
+ }, Ry = "__help__", zy = "__detected_source__:", By = "http://docs.marimo.io/guides/working_with_data/sql/#connecting-to-a-custom-database", Vy = () => {
26543
+ let e = (0, wr.c)(16), { sqlMode: t, setSQLMode: n } = iv(), r;
26541
26544
  e[0] !== n || e[1] !== t ? (r = () => {
26542
26545
  let e = t === "validate" ? "default" : "validate";
26543
- e === "default" && J_(), n(e);
26546
+ e === "default" && Y_(), n(e);
26544
26547
  }, e[0] = n, e[1] = t, e[2] = r) : r = e[2];
26545
- let i = r, a = Ky, o = qy, s;
26548
+ let i = r, a = qy, o = Jy, s;
26546
26549
  e[3] === t ? s = e[4] : (s = o(t), e[3] = t, e[4] = s);
26547
26550
  let c;
26548
26551
  e[5] === t ? c = e[6] : (c = a(t), e[5] = t, e[6] = c);
@@ -26568,7 +26571,7 @@ var Py = (e) => {
26568
26571
  children: f
26569
26572
  })
26570
26573
  }), e[13] = s, e[14] = f, e[15] = p) : p = e[15], p;
26571
- }, Vy = (e) => {
26574
+ }, Hy = (e) => {
26572
26575
  let t = (0, wr.c)(6), n, r;
26573
26576
  t[0] === e ? (n = t[1], r = t[2]) : ({children: n, ...r} = e, t[0] = e, t[1] = n, t[2] = r);
26574
26577
  let i;
@@ -26578,15 +26581,15 @@ var Py = (e) => {
26578
26581
  children: n
26579
26582
  }), t[3] = n, t[4] = r, t[5] = i) : i = t[5], i;
26580
26583
  };
26581
- function Hy(e) {
26584
+ function Uy(e) {
26582
26585
  return e.source !== "iceberg";
26583
26586
  }
26584
- function Uy(e) {
26587
+ function Wy(e) {
26585
26588
  return /* @__PURE__ */ (0, F.jsx)(re, {
26586
26589
  value: e.name,
26587
26590
  children: /* @__PURE__ */ (0, F.jsxs)("div", {
26588
26591
  className: "flex items-center gap-1",
26589
- children: [/* @__PURE__ */ (0, F.jsx)($v, {
26592
+ children: [/* @__PURE__ */ (0, F.jsx)(ey, {
26590
26593
  className: "h-3 w-3",
26591
26594
  name: e.dialect
26592
26595
  }), /* @__PURE__ */ (0, F.jsx)("span", {
@@ -26596,12 +26599,12 @@ function Uy(e) {
26596
26599
  })
26597
26600
  }, e.name);
26598
26601
  }
26599
- function Wy(e) {
26600
- return e = e.filter(Hy), e.map(Uy);
26601
- }
26602
26602
  function Gy(e) {
26603
+ return e = e.filter(Uy), e.map(Wy);
26604
+ }
26605
+ function Ky(e) {
26603
26606
  return /* @__PURE__ */ (0, F.jsx)(re, {
26604
- value: `${Ry}${e.id}`,
26607
+ value: `${zy}${e.id}`,
26605
26608
  children: /* @__PURE__ */ (0, F.jsxs)("div", {
26606
26609
  className: "flex items-center gap-1",
26607
26610
  children: [/* @__PURE__ */ (0, F.jsx)(In, { className: "h-3 w-3 text-(--blue-9)" }), /* @__PURE__ */ (0, F.jsxs)("span", {
@@ -26615,10 +26618,10 @@ function Gy(e) {
26615
26618
  })
26616
26619
  }, e.id);
26617
26620
  }
26618
- function Ky(e) {
26621
+ function qy(e) {
26619
26622
  return e === "validate" ? /* @__PURE__ */ (0, F.jsx)(Fn, { className: "h-3 w-3" }) : /* @__PURE__ */ (0, F.jsx)(yn, { className: "h-3 w-3" });
26620
26623
  }
26621
- function qy(e) {
26624
+ function Jy(e) {
26622
26625
  return e === "validate" ? /* @__PURE__ */ (0, F.jsxs)("div", {
26623
26626
  className: "text-xs",
26624
26627
  children: [/* @__PURE__ */ (0, F.jsxs)("div", {
@@ -26635,14 +26638,14 @@ function qy(e) {
26635
26638
  }
26636
26639
  //#endregion
26637
26640
  //#region src/core/codemirror/language/panel/panel.tsx
26638
- var Jy = () => {
26641
+ var Yy = () => {
26639
26642
  let e = (0, wr.c)(1), t;
26640
26643
  return e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = /* @__PURE__ */ (0, F.jsx)("div", { className: "h-4 border-r border-border" }), e[0] = t) : t = e[0], t;
26641
- }, Yy = (e) => {
26644
+ }, Xy = (e) => {
26642
26645
  let t = (0, wr.c)(102), { view: n } = e, r;
26643
26646
  t[0] === Symbol.for("react.memo_cache_sentinel") ? (r = { minWidth: 50 }, t[0] = r) : r = t[0];
26644
- let { spanProps: i, inputProps: a } = Iv(r), o;
26645
- t[1] === n.state ? o = t[2] : (o = n.state.field($y), t[1] = n.state, t[2] = o);
26647
+ let { spanProps: i, inputProps: a } = Lv(r), o;
26648
+ t[1] === n.state ? o = t[2] : (o = n.state.field(eb), t[1] = n.state, t[2] = o);
26646
26649
  let s = o, c;
26647
26650
  t[3] === n.state ? c = t[4] : (c = n.state.facet(Cl), t[3] = n.state, t[4] = c);
26648
26651
  let u = c, d;
@@ -26659,19 +26662,19 @@ var Jy = () => {
26659
26662
  });
26660
26663
  }, t[6] = n, t[7] = h);
26661
26664
  let _ = h;
26662
- if (s instanceof lv) {
26665
+ if (s instanceof uv) {
26663
26666
  let e;
26664
26667
  t[8] === n.state ? e = t[9] : (e = n.state.field(Ku), t[8] = n.state, t[9] = e);
26665
26668
  let r = e;
26666
26669
  p = !0;
26667
26670
  let o;
26668
26671
  t[10] === _ ? o = t[11] : (o = (e) => {
26669
- let t = Mv(e.currentTarget.value, !1);
26672
+ let t = Nv(e.currentTarget.value, !1);
26670
26673
  e.currentTarget.value = t, _({ dataframeName: t });
26671
26674
  }, t[10] = _, t[11] = o);
26672
26675
  let s = o, c;
26673
26676
  t[12] !== _ || t[13] !== n ? (c = (e) => {
26674
- _({ engine: e }), _v(n, e);
26677
+ _({ engine: e }), vv(n, e);
26675
26678
  }, t[12] = _, t[13] = n, t[14] = c) : c = t[14];
26676
26679
  let d = c, m;
26677
26680
  t[15] === Symbol.for("react.memo_cache_sentinel") ? (m = /* @__PURE__ */ (0, F.jsx)("span", {
@@ -26707,13 +26710,13 @@ var Jy = () => {
26707
26710
  ]
26708
26711
  }), t[28] = y, t[29] = b, t[30] = x) : x = t[30];
26709
26712
  let S;
26710
- t[31] !== u || t[32] !== r.engine || t[33] !== d ? (S = /* @__PURE__ */ (0, F.jsx)(Py, {
26713
+ t[31] !== u || t[32] !== r.engine || t[33] !== d ? (S = /* @__PURE__ */ (0, F.jsx)(Fy, {
26711
26714
  selectedEngine: r.engine,
26712
26715
  onChange: d,
26713
26716
  cellId: u
26714
26717
  }), t[31] = u, t[32] = r.engine, t[33] = d, t[34] = S) : S = t[34];
26715
26718
  let C;
26716
- t[35] === r.engine ? C = t[36] : (C = r.engine === "__marimo_duckdb" && /* @__PURE__ */ (0, F.jsx)(By, {}), t[35] = r.engine, t[36] = C);
26719
+ t[35] === r.engine ? C = t[36] : (C = r.engine === "__marimo_duckdb" && /* @__PURE__ */ (0, F.jsx)(Vy, {}), t[35] = r.engine, t[36] = C);
26717
26720
  let w;
26718
26721
  t[37] !== r.engine || t[38] !== n ? (w = async () => {
26719
26722
  await Zu(n, r.engine);
@@ -26732,7 +26735,7 @@ var Jy = () => {
26732
26735
  })
26733
26736
  }), t[41] = w, t[42] = ee);
26734
26737
  let te;
26735
- t[43] === Symbol.for("react.memo_cache_sentinel") ? (te = /* @__PURE__ */ (0, F.jsx)(Jy, {}), t[43] = te) : te = t[43];
26738
+ t[43] === Symbol.for("react.memo_cache_sentinel") ? (te = /* @__PURE__ */ (0, F.jsx)(Yy, {}), t[43] = te) : te = t[43];
26736
26739
  let ne;
26737
26740
  t[44] === _ ? ne = t[45] : (ne = (e) => {
26738
26741
  _({ showOutput: !e.target.checked });
@@ -26780,13 +26783,13 @@ var Jy = () => {
26780
26783
  let { quotePrefix: f } = n.state.field(Ku);
26781
26784
  r = f, r === void 0 && (r = "r", _({ quotePrefix: r })), d = (e, t) => {
26782
26785
  if (typeof t != "boolean") return;
26783
- let n = Lv({
26786
+ let n = Rv({
26784
26787
  currentQuotePrefix: r,
26785
26788
  checked: t,
26786
26789
  prefix: e
26787
26790
  });
26788
26791
  _({ quotePrefix: n });
26789
- }, a = "flex flex-row w-full justify-end gap-1.5 items-center", u = "flex items-center gap-1.5", t[72] === Symbol.for("react.memo_cache_sentinel") ? (i = /* @__PURE__ */ (0, F.jsx)("span", { children: "r" }), t[72] = i) : i = t[72], e = Av, s = "Toggle raw string", c = "w-3 h-3", l = r.includes("r"), o = (e) => {
26792
+ }, a = "flex flex-row w-full justify-end gap-1.5 items-center", u = "flex items-center gap-1.5", t[72] === Symbol.for("react.memo_cache_sentinel") ? (i = /* @__PURE__ */ (0, F.jsx)("span", { children: "r" }), t[72] = i) : i = t[72], e = jv, s = "Toggle raw string", c = "w-3 h-3", l = r.includes("r"), o = (e) => {
26790
26793
  d("r", e);
26791
26794
  }, t[60] = _, t[61] = n.state, t[62] = e, t[63] = r, t[64] = i, t[65] = a, t[66] = o, t[67] = s, t[68] = c, t[69] = l, t[70] = u, t[71] = d;
26792
26795
  } else e = t[62], r = t[63], i = t[64], a = t[65], o = t[66], s = t[67], c = t[68], l = t[69], u = t[70], d = t[71];
@@ -26813,7 +26816,7 @@ var Jy = () => {
26813
26816
  let x;
26814
26817
  t[88] !== y || t[89] !== b ? (x = /* @__PURE__ */ (0, F.jsxs)("div", {
26815
26818
  className: "flex items-center gap-1.5",
26816
- children: [v, /* @__PURE__ */ (0, F.jsx)(Av, {
26819
+ children: [v, /* @__PURE__ */ (0, F.jsx)(jv, {
26817
26820
  "aria-label": "Toggle f-string",
26818
26821
  className: "w-3 h-3",
26819
26822
  checked: y,
@@ -26822,7 +26825,7 @@ var Jy = () => {
26822
26825
  }), t[88] = y, t[89] = b, t[90] = x) : x = t[90];
26823
26826
  let S;
26824
26827
  t[91] === Symbol.for("react.memo_cache_sentinel") ? (S = /* @__PURE__ */ (0, F.jsx)(g, {
26825
- content: /* @__PURE__ */ (0, F.jsx)(Rv, {}),
26828
+ content: /* @__PURE__ */ (0, F.jsx)(zv, {}),
26826
26829
  children: /* @__PURE__ */ (0, F.jsx)(Tn, { className: "w-3 h-3" })
26827
26830
  }), t[91] = S) : S = t[91];
26828
26831
  let C;
@@ -26836,7 +26839,7 @@ var Jy = () => {
26836
26839
  }), t[92] = a, t[93] = h, t[94] = x, t[95] = C) : C = t[95], f = C;
26837
26840
  }
26838
26841
  let v;
26839
- t[96] === p ? v = t[97] : (v = p && /* @__PURE__ */ (0, F.jsx)(Jy, {}), t[96] = p, t[97] = v);
26842
+ t[96] === p ? v = t[97] : (v = p && /* @__PURE__ */ (0, F.jsx)(Yy, {}), t[96] = p, t[97] = v);
26840
26843
  let y;
26841
26844
  return t[98] !== f || t[99] !== s.type || t[100] !== v ? (y = /* @__PURE__ */ (0, F.jsx)(m, { children: /* @__PURE__ */ (0, F.jsxs)("div", {
26842
26845
  className: "flex justify-between items-center gap-4 pl-2 pt-2",
@@ -26846,8 +26849,8 @@ var Jy = () => {
26846
26849
  s.type
26847
26850
  ]
26848
26851
  }) }), t[98] = f, t[99] = s.type, t[100] = v, t[101] = y) : y = t[101], y;
26849
- }, Xy = new dt();
26850
- function Zy(e, t) {
26852
+ }, Zy = new dt();
26853
+ function Qy(e, t) {
26851
26854
  let n = t.getExtension({
26852
26855
  cellId: e.facet(nl),
26853
26856
  completionConfig: e.facet($c),
@@ -26855,46 +26858,46 @@ function Zy(e, t) {
26855
26858
  placeholderType: e.facet(tl),
26856
26859
  lspConfig: e.facet(rl)
26857
26860
  });
26858
- return e.field(Ct, !1) !== void 0 && n.push(Ct.init(() => ut.create({ extensions: [xt()] }).field(Ct))), [Qy.of(t), Xy.reconfigure(n)];
26861
+ return e.field(Ct, !1) !== void 0 && n.push(Ct.init(() => ut.create({ extensions: [xt()] }).field(Ct))), [$y.of(t), Zy.reconfigure(n)];
26859
26862
  }
26860
- var Qy = Qe.define(), $y = yt.define({
26863
+ var $y = Qe.define(), eb = yt.define({
26861
26864
  create() {
26862
- return kv.python;
26865
+ return Av.python;
26863
26866
  },
26864
26867
  update(e, t) {
26865
- for (let e of t.effects) if (e.is(Qy)) return e.value;
26868
+ for (let e of t.effects) if (e.is($y)) return e.value;
26866
26869
  return e;
26867
26870
  },
26868
- provide: (e) => et.from(e, (e) => e.type === "python" ? null : (e) => $u(e, Yy))
26871
+ provide: (e) => et.from(e, (e) => e.type === "python" ? null : (e) => $u(e, Xy))
26869
26872
  });
26870
- function eb(e) {
26871
- return e ? kv.markdown.isSupported(e) ? kv.markdown : kv.sql.isSupported(e) ? kv.sql : kv.python : kv.python;
26873
+ function tb(e) {
26874
+ return e ? Av.markdown.isSupported(e) ? Av.markdown : Av.sql.isSupported(e) ? Av.sql : Av.python : Av.python;
26872
26875
  }
26873
26876
  //#endregion
26874
26877
  //#region src/core/codemirror/language/cell-code.ts
26875
- function tb(e) {
26876
- let t = e.doc.toString(), n = e.field($y, !1);
26878
+ function nb(e) {
26879
+ let t = e.doc.toString(), n = e.field(eb, !1);
26877
26880
  return n ? n.transformOut(t, e.field(Ku, !1) ?? {})[0] : t;
26878
26881
  }
26879
- function nb(e, t) {
26880
- if (tb(e) === t) return !0;
26881
- let n = e.field($y, !1);
26882
+ function rb(e, t) {
26883
+ if (nb(e) === t) return !0;
26884
+ let n = e.field(eb, !1);
26882
26885
  if (!n?.isSupported(t)) return !1;
26883
26886
  let [r, , i] = n.transformIn(t);
26884
26887
  return r === e.doc.toString() && Me(i, e.field(Ku, !1));
26885
26888
  }
26886
- function rb(e, t, { initialize: n = !1 } = {}) {
26887
- let r = e.field($y, !1), i = r;
26888
- r && (n ? i = eb(t) : r.isSupported(t) || (i = kv.python));
26889
+ function ib(e, t, { initialize: n = !1 } = {}) {
26890
+ let r = e.field(eb, !1), i = r;
26891
+ r && (n ? i = tb(t) : r.isSupported(t) || (i = Av.python));
26889
26892
  let a = i?.type !== r?.type;
26890
- if (!a && nb(e, t)) return null;
26893
+ if (!a && rb(e, t)) return null;
26891
26894
  let o = [], s = t;
26892
26895
  if (i) {
26893
- a && o.push(...Zy(e, i));
26896
+ a && o.push(...Qy(e, i));
26894
26897
  let [n, , r] = i.transformIn(t);
26895
26898
  s = n;
26896
26899
  let c = !Me(r, e.field(Ku, !1));
26897
- c && o.push(Wu.of(r)), i.type === "sql" && (a || c) && o.push(gv(r.engine));
26900
+ c && o.push(Wu.of(r)), i.type === "sql" && (a || c) && o.push(_v(r.engine));
26898
26901
  }
26899
26902
  return {
26900
26903
  changes: Ki(e.doc.toString(), s, { scanLimit: 500 }).map((e) => ({
@@ -26916,7 +26919,7 @@ if (typeof document < "u") {
26916
26919
  t.tagName === "A" && t.hasAttribute(e) && (t.setAttribute("target", t.getAttribute(e) || ""), t.removeAttribute(e), t.getAttribute("target") === "_blank" && t.setAttribute("rel", "noopener noreferrer"));
26917
26920
  });
26918
26921
  }
26919
- function ib(e) {
26922
+ function ab(e) {
26920
26923
  let t = {
26921
26924
  USE_PROFILES: {
26922
26925
  html: !0,
@@ -26936,52 +26939,52 @@ function ib(e) {
26936
26939
  }
26937
26940
  //#endregion
26938
26941
  //#region src/core/dom/outline.ts
26939
- var ab = [
26942
+ var ob = [
26940
26943
  "marimo-carousel",
26941
26944
  "marimo-tabs",
26942
26945
  "marimo-accordion",
26943
26946
  "marimo-sidebar"
26944
- ], ob = "h1, h2, h3, h4, h5, h6";
26945
- function sb(e) {
26947
+ ], sb = "h1, h2, h3, h4, h5, h6";
26948
+ function cb(e) {
26946
26949
  if (typeof DOMParser > "u") return null;
26947
- let t = [], n = new DOMParser().parseFromString(e, "text/html").querySelectorAll(ob);
26950
+ let t = [], n = new DOMParser().parseFromString(e, "text/html").querySelectorAll(sb);
26948
26951
  for (let e of Array.from(n)) {
26949
26952
  let n = e.textContent;
26950
- if (ab.some((t) => e.closest(t)) || !n) continue;
26953
+ if (ob.some((t) => e.closest(t)) || !n) continue;
26951
26954
  let r = Number.parseInt(e.tagName[1], 10), i = e.innerHTML, a = {
26952
26955
  name: n,
26953
26956
  level: r,
26954
- by: lb(e)
26957
+ by: ub(e)
26955
26958
  };
26956
- i !== n && (a.html = ib(i)), t.push(a);
26959
+ i !== n && (a.html = ab(i)), t.push(a);
26957
26960
  }
26958
26961
  return { items: t };
26959
26962
  }
26960
- function cb(e) {
26963
+ function lb(e) {
26961
26964
  if (!e.includes("\"")) return `"${e}"`;
26962
26965
  if (!e.includes("'")) return `'${e}'`;
26963
26966
  let t = e.split("\""), n = [];
26964
26967
  for (let [e, r] of t.entries()) r && n.push(`"${r}"`), e < t.length - 1 && n.push("'\"'");
26965
26968
  return `concat(${n.join(", ")})`;
26966
26969
  }
26967
- function lb(e) {
26970
+ function ub(e) {
26968
26971
  let t = e.id;
26969
26972
  if (t) return { id: t };
26970
26973
  let n = e.textContent ?? "";
26971
- return { path: `//${e.tagName}[contains(., ${cb(n)})]` };
26974
+ return { path: `//${e.tagName}[contains(., ${lb(n)})]` };
26972
26975
  }
26973
- function ub(e) {
26976
+ function db(e) {
26974
26977
  return { items: e.filter(Boolean).flatMap((e) => e.items) };
26975
26978
  }
26976
- function db(e) {
26979
+ function fb(e) {
26977
26980
  if (e == null || e.mimetype !== "text/html" && e.mimetype !== "text/markdown" || e.data == null) return null;
26978
26981
  try {
26979
- return Et(typeof e.data == "string", "expected string"), sb(e.data);
26982
+ return Et(typeof e.data == "string", "expected string"), cb(e.data);
26980
26983
  } catch {
26981
26984
  return a.error("Failed to parse outline"), null;
26982
26985
  }
26983
26986
  }
26984
- function fb(e, t) {
26987
+ function pb(e, t) {
26985
26988
  let n = (e) => e.items.length === 0 ? 7 : Math.min(...e.items.map((e) => e.level)), r = t[e];
26986
26989
  if (r == null || r.items.length === 0) return a.warn("Failed to find a starting outline"), null;
26987
26990
  let i = n(r), o = e + 1;
@@ -26994,7 +26997,7 @@ function fb(e, t) {
26994
26997
  }
26995
26998
  //#endregion
26996
26999
  //#region src/components/editor/output/ansi-reduce.ts
26997
- var pb = class e {
27000
+ var mb = class e {
26998
27001
  lines = [""];
26999
27002
  cursor = {
27000
27003
  row: 0,
@@ -27083,7 +27086,7 @@ var pb = class e {
27083
27086
  render() {
27084
27087
  return this.lines.join("\n");
27085
27088
  }
27086
- }, mb = class {
27089
+ }, hb = class {
27087
27090
  ESC_REGEX = new RegExp(String.raw`\u001B(?:\[[0-9;]*[A-Za-z]|\([0-9A-Za-z])`, "gu");
27088
27091
  parse(e) {
27089
27092
  let t = [], n = 0;
@@ -27102,9 +27105,9 @@ var pb = class e {
27102
27105
  value: e.slice(n)
27103
27106
  }), t;
27104
27107
  }
27105
- }, hb = class {
27106
- parser = new mb();
27107
- buffer = new pb();
27108
+ }, gb = class {
27109
+ parser = new hb();
27110
+ buffer = new mb();
27108
27111
  reduce(e) {
27109
27112
  return this.reset(), this.append(e), this.render();
27110
27113
  }
@@ -27120,7 +27123,7 @@ var pb = class e {
27120
27123
  for (let e of t) e.type === "text" ? this.processText(e.value) : this.buffer.handleEscape(e.value);
27121
27124
  }
27122
27125
  reset() {
27123
- this.buffer = new pb();
27126
+ this.buffer = new mb();
27124
27127
  }
27125
27128
  render() {
27126
27129
  return this.buffer.render();
@@ -27163,19 +27166,19 @@ var pb = class e {
27163
27166
  for (let t of e) t >= " " && (n += t);
27164
27167
  return n;
27165
27168
  }
27166
- }, gb = class e {
27169
+ }, _b = class e {
27167
27170
  mimetype;
27168
27171
  channel;
27169
27172
  timestamp;
27170
27173
  code;
27171
27174
  id;
27172
- ansiReducer = new hb();
27175
+ ansiReducer = new gb();
27173
27176
  _data;
27174
27177
  get data() {
27175
27178
  return this._data;
27176
27179
  }
27177
27180
  static create(t) {
27178
- let n = new hb();
27181
+ let n = new gb();
27179
27182
  return n.append(t.data), new e({
27180
27183
  mimetype: t.mimetype,
27181
27184
  channel: t.channel,
@@ -27210,28 +27213,28 @@ var pb = class e {
27210
27213
  };
27211
27214
  //#endregion
27212
27215
  //#region src/core/cells/collapseConsoleOutputs.tsx
27213
- function _b(e, t = 5e3) {
27216
+ function vb(e, t = 5e3) {
27214
27217
  let n = [...e];
27215
- if (n.length < 2) return Sb(n.map(yb), t);
27218
+ if (n.length < 2) return Cb(n.map(bb), t);
27216
27219
  let r = n[n.length - 1], i = n[n.length - 2];
27217
- return vb(r, i) && (xb(r), xb(i), n[n.length - 2] = bb(i, r), n.pop()), Sb(n, t);
27220
+ return yb(r, i) && (Sb(r), Sb(i), n[n.length - 2] = xb(i, r), n.pop()), Cb(n, t);
27218
27221
  }
27219
- function vb(e, t) {
27222
+ function yb(e, t) {
27220
27223
  let n = e.mimetype === "text/plain" && t.mimetype === "text/plain";
27221
27224
  if (!n) return !1;
27222
27225
  let r = e.channel === t.channel, i = e.channel !== "stdin";
27223
27226
  return n && r && i;
27224
27227
  }
27225
- function yb(e) {
27226
- return e instanceof gb ? e : typeof e.data == "string" ? gb.create(e) : e;
27228
+ function bb(e) {
27229
+ return e instanceof _b ? e : typeof e.data == "string" ? _b.create(e) : e;
27227
27230
  }
27228
- function bb(e, t) {
27229
- return e instanceof gb ? e.appendData(t.data) : gb.create(e).appendData(t.data);
27231
+ function xb(e, t) {
27232
+ return e instanceof _b ? e.appendData(t.data) : _b.create(e).appendData(t.data);
27230
27233
  }
27231
- function xb(e) {
27234
+ function Sb(e) {
27232
27235
  Et(typeof e.data == "string", "expected string output");
27233
27236
  }
27234
- function Sb(e, t) {
27237
+ function Cb(e, t) {
27235
27238
  let n = 0, r;
27236
27239
  for (r = e.length - 1; r >= 0 && n < t; r--) {
27237
27240
  let t = e[r];
@@ -27261,10 +27264,10 @@ function Sb(e, t) {
27261
27264
  }
27262
27265
  //#endregion
27263
27266
  //#region src/core/cells/cell.ts
27264
- function Cb(e) {
27267
+ function wb(e) {
27265
27268
  return (e.at(-1)?.id ?? 0) + 1;
27266
27269
  }
27267
- function wb(e, t) {
27270
+ function Tb(e, t) {
27268
27271
  let n = { ...e };
27269
27272
  switch (t.status) {
27270
27273
  case "queued":
@@ -27294,41 +27297,41 @@ function wb(e, t) {
27294
27297
  response: e.response ?? ""
27295
27298
  } : e));
27296
27299
  let a = t.console;
27297
- a != null && (i = _b(Array.isArray(a) ? a.map((e, t) => ({
27300
+ a != null && (i = vb(Array.isArray(a) ? a.map((e, t) => ({
27298
27301
  ...e,
27299
27302
  id: t + 1
27300
27303
  })) : [...i, {
27301
27304
  ...a,
27302
- id: Cb(i)
27303
- }])), n.consoleOutputs = i, n.outline = db(n.output);
27305
+ id: wb(i)
27306
+ }])), n.consoleOutputs = i, n.outline = fb(n.output);
27304
27307
  let o = [t.console].flat().filter(Boolean).filter((e) => e.channel === "pdb");
27305
27308
  return o.length > 0 && o.some((e) => e.data === "start") && (n.debuggerActive = !0), n;
27306
27309
  }
27307
- function Tb(e) {
27310
+ function Eb(e) {
27308
27311
  let t = { ...e };
27309
27312
  return e.status !== "disabled-transitively" && (t.status = "queued"), t.interrupted = !1, t.errored = !1, t.runElapsedTimeMs = null, t.debuggerActive = !1, t;
27310
27313
  }
27311
- function Eb(e) {
27314
+ function Db(e) {
27312
27315
  return e === "running" || e === "queued";
27313
27316
  }
27314
- function Db(e, t) {
27317
+ function Ob(e, t) {
27315
27318
  let { status: n, output: r, runStartTimestamp: i, interrupted: a, staleInputs: o } = e;
27316
27319
  if (a) return !1;
27317
27320
  if (t) return !0;
27318
- let s = Eb(n), c = n === "running" && r !== null && i !== null && (r.timestamp ?? 0) > i;
27321
+ let s = Db(n), c = n === "running" && r !== null && i !== null && (r.timestamp ?? 0) > i;
27319
27322
  return s && !c ? !0 : o;
27320
27323
  }
27321
27324
  Cr("marimo:rtc:username", "", Xd);
27322
- var Ob = Pt(() => Hd("rtc_v2"));
27323
- function kb(e) {
27325
+ var kb = Pt(() => Hd("rtc_v2"));
27326
+ function Ab(e) {
27324
27327
  return e !== Wr;
27325
27328
  }
27326
27329
  //#endregion
27327
27330
  //#region src/core/session/active-notebook.ts
27328
- var Ab = A(null), jb = A(null);
27331
+ var jb = A(null), Mb = A(null);
27329
27332
  //#endregion
27330
27333
  //#region src/core/cells/columns.ts
27331
- function Mb(e) {
27334
+ function Nb(e) {
27332
27335
  let t = /* @__PURE__ */ new Map(), n = 0;
27333
27336
  for (let r of e.order) {
27334
27337
  let i = e.cells.get(r)?.config.column;
@@ -27336,9 +27339,9 @@ function Mb(e) {
27336
27339
  }
27337
27340
  return t;
27338
27341
  }
27339
- function Nb(e) {
27342
+ function Pb(e) {
27340
27343
  let t = [[]];
27341
- for (let [n, r] of Mb(e)) {
27344
+ for (let [n, r] of Nb(e)) {
27342
27345
  for (; t.length <= r;) t.push([]);
27343
27346
  t[r].push(n);
27344
27347
  }
@@ -27346,10 +27349,10 @@ function Nb(e) {
27346
27349
  }
27347
27350
  //#endregion
27348
27351
  //#region src/core/cells/types.ts
27349
- function Pb(e, t) {
27352
+ function Fb(e, t) {
27350
27353
  return e === null ? t.trim().length > 0 : e.trim() !== t.trim();
27351
27354
  }
27352
- function Fb({ id: e, name: t = "_", code: n = "", lastCodeRun: r = null, lastExecutionTime: i = null, edited: a = !1, config: o, serializedEditorState: s = null }) {
27355
+ function Ib({ id: e, name: t = "_", code: n = "", lastCodeRun: r = null, lastExecutionTime: i = null, edited: a = !1, config: o, serializedEditorState: s = null }) {
27353
27356
  return {
27354
27357
  id: e,
27355
27358
  config: o || {
@@ -27366,7 +27369,7 @@ function Fb({ id: e, name: t = "_", code: n = "", lastCodeRun: r = null, lastExe
27366
27369
  serializedEditorState: s
27367
27370
  };
27368
27371
  }
27369
- function Ib(e) {
27372
+ function Lb(e) {
27370
27373
  return {
27371
27374
  hide_code: !1,
27372
27375
  disabled: !1,
@@ -27375,7 +27378,7 @@ function Ib(e) {
27375
27378
  ...e
27376
27379
  };
27377
27380
  }
27378
- function Lb(e) {
27381
+ function Rb(e) {
27379
27382
  return {
27380
27383
  outline: null,
27381
27384
  output: null,
@@ -27394,21 +27397,21 @@ function Lb(e) {
27394
27397
  }
27395
27398
  //#endregion
27396
27399
  //#region src/core/cells/document.ts
27397
- function Rb(e, t) {
27400
+ function zb(e, t) {
27398
27401
  let n = e.getColumns();
27399
27402
  for (; n[t.length]?.length === 0;) t.push([]);
27400
27403
  return t.length === n.length && t.every((e, t) => Me(e, n[t].inOrderIds)) ? e : new vi(t.map((e, t) => _i.fromWithPreviousShape(e, n[t])));
27401
27404
  }
27402
- function zb(e, t, n) {
27403
- let r = t.code ?? e.code, i = Me(e.config, t.config) ? e.config : Ib(t.config);
27405
+ function Bb(e, t, n) {
27406
+ let r = t.code ?? e.code, i = Me(e.config, t.config) ? e.config : Lb(t.config);
27404
27407
  if (r === e.code && t.name === e.name && i === e.config) return e;
27405
27408
  if (r === e.code) return {
27406
27409
  ...e,
27407
27410
  name: t.name,
27408
27411
  config: i
27409
27412
  };
27410
- if (!Ob() || !kb(e.id)) {
27411
- let e = n?.current?.editorViewOrNull, t = e && rb(e.state, r);
27413
+ if (!kb() || !Ab(e.id)) {
27414
+ let e = n?.current?.editorViewOrNull, t = e && ib(e.state, r);
27412
27415
  t && e.dispatch(t);
27413
27416
  }
27414
27417
  return {
@@ -27416,33 +27419,33 @@ function zb(e, t, n) {
27416
27419
  code: r,
27417
27420
  name: t.name,
27418
27421
  config: i,
27419
- edited: Pb(e.lastCodeRun, r)
27422
+ edited: Fb(e.lastCodeRun, r)
27420
27423
  };
27421
27424
  }
27422
- function Bb(e, t) {
27423
- let n = Rb(e.cellIds, Nb(t)), { cellData: r, cellRuntime: i, cellHandles: a } = e;
27425
+ function Vb(e, t) {
27426
+ let n = zb(e.cellIds, Pb(t)), { cellData: r, cellRuntime: i, cellHandles: a } = e;
27424
27427
  for (let o of n.inOrderIds) {
27425
27428
  let n = t.cells.get(o), s = e.cellData[o];
27426
27429
  if (n === void 0) continue;
27427
27430
  if (s === void 0) {
27428
27431
  r = {
27429
27432
  ...r,
27430
- [o]: Fb({
27433
+ [o]: Ib({
27431
27434
  id: o,
27432
27435
  code: n.code ?? "",
27433
27436
  name: n.name,
27434
- config: Ib(n.config)
27437
+ config: Lb(n.config)
27435
27438
  })
27436
27439
  }, i = {
27437
27440
  ...i,
27438
- [o]: Lb()
27441
+ [o]: Rb()
27439
27442
  }, a = {
27440
27443
  ...a,
27441
27444
  [o]: (0, P.createRef)()
27442
27445
  };
27443
27446
  continue;
27444
27447
  }
27445
- let c = zb(s, n, e.cellHandles[o]);
27448
+ let c = Bb(s, n, e.cellHandles[o]);
27446
27449
  c !== s && (r = {
27447
27450
  ...r,
27448
27451
  [o]: c
@@ -27461,17 +27464,24 @@ function Bb(e, t) {
27461
27464
  cellHandles: a
27462
27465
  };
27463
27466
  }
27464
- var Vb = [
27467
+ function Hb({ store: e, model: t, reconcile: n, signal: r }) {
27468
+ let i = () => {
27469
+ let r = e.get(t.documentAtom);
27470
+ r !== null && n(r);
27471
+ }, a = e.sub(t.documentAtom, i);
27472
+ r.addEventListener("abort", a, { once: !0 }), i();
27473
+ }
27474
+ var Ub = [
27465
27475
  "disabled",
27466
27476
  "hide_code",
27467
27477
  "expand_output"
27468
27478
  ];
27469
- function Hb(e, t) {
27479
+ function Wb(e, t) {
27470
27480
  let n = {};
27471
- for (let r of Vb) e[r] !== t[r] && (n[r] = t[r] ?? !1);
27481
+ for (let r of Ub) e[r] !== t[r] && (n[r] = t[r] ?? !1);
27472
27482
  return Object.keys(n).length === 0 ? null : n;
27473
27483
  }
27474
- function Ub(e) {
27484
+ function Gb(e) {
27475
27485
  let t = [], n = e.cellIds.getColumns();
27476
27486
  if (n.length === 1) {
27477
27487
  for (let r of n[0].inOrderIds) {
@@ -27488,7 +27498,7 @@ function Ub(e) {
27488
27498
  }
27489
27499
  }), t;
27490
27500
  }
27491
- function Wb(e, t) {
27501
+ function Kb(e, t) {
27492
27502
  let n = [], r = e.cellIds.inOrderIds, i = t.cellIds.inOrderIds, a = new Set(r), o = new Set(i);
27493
27503
  for (let e of r) o.has(e) || n.push((t) => t.deleteCell(e));
27494
27504
  let s = [];
@@ -27505,40 +27515,40 @@ function Wb(e, t) {
27505
27515
  }
27506
27516
  if (o === i) continue;
27507
27517
  o.code !== i.code && n.push((e) => e.setCode(r, i.code)), o.name !== i.name && n.push((e) => e.setName(r, i.name));
27508
- let c = Hb(o.config, i.config);
27518
+ let c = Wb(o.config, i.config);
27509
27519
  c !== null && n.push((e) => e.updateConfig(r, c));
27510
27520
  }
27511
- for (let [e, r] of Ub(t)) n.push((t) => t.updateConfig(e, { column: r }));
27521
+ for (let [e, r] of Gb(t)) n.push((t) => t.updateConfig(e, { column: r }));
27512
27522
  let c = r.filter((e) => o.has(e));
27513
27523
  return Me(i, [...c, ...s]) || n.push((e) => e.setOrder(i)), n.length === 0 ? null : (e) => {
27514
27524
  for (let t of n) t(e);
27515
27525
  };
27516
27526
  }
27517
- function Gb(e, t, n) {
27518
- if (n.type === "setCells" || e.cellIds === t.cellIds && e.cellData === t.cellData) return;
27519
- let r = j.get(jb);
27527
+ function qb(e, t, n) {
27528
+ if (n.type === "reconcileDocument" || e.cellIds === t.cellIds && e.cellData === t.cellData) return;
27529
+ let r = j.get(Mb);
27520
27530
  if (r === null) return;
27521
- let i = Wb(e, t);
27531
+ let i = Kb(e, t);
27522
27532
  i !== null && j.set(r.editAtom, i);
27523
27533
  }
27524
- async function Kb() {
27525
- let e = j.get(jb);
27534
+ async function Jb() {
27535
+ let e = j.get(Mb);
27526
27536
  e !== null && j.get(e.syncStatusAtom).status !== "unavailable" && await e.flush();
27527
27537
  }
27528
27538
  //#endregion
27529
27539
  //#region ../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/fromUnixTime.js
27530
- function qb(e, t) {
27540
+ function Yb(e, t) {
27531
27541
  return E(e * 1e3, t?.in);
27532
27542
  }
27533
27543
  //#endregion
27534
27544
  //#region ../node_modules/.pnpm/ansi_up@6.0.6/node_modules/ansi_up/ansi_up.js
27535
- var Jb = function(e, t) {
27545
+ var Xb = function(e, t) {
27536
27546
  return Object.defineProperty ? Object.defineProperty(e, "raw", { value: t }) : e.raw = t, e;
27537
- }, Yb;
27547
+ }, Zb;
27538
27548
  (function(e) {
27539
27549
  e[e.EOS = 0] = "EOS", e[e.Text = 1] = "Text", e[e.Incomplete = 2] = "Incomplete", e[e.ESC = 3] = "ESC", e[e.Unknown = 4] = "Unknown", e[e.SGR = 5] = "SGR", e[e.OSCURL = 6] = "OSCURL";
27540
- })(Yb ||= {});
27541
- var Xb = class {
27550
+ })(Zb ||= {});
27551
+ var Qb = class {
27542
27552
  constructor() {
27543
27553
  this.VERSION = "6.0.6", this.setup_palettes(), this._use_classes = !1, this.bold = !1, this.faint = !1, this.italic = !1, this.underline = !1, this.fg = this.bg = null, this._buffer = "", this._url_allowlist = {
27544
27554
  http: 1,
@@ -27770,57 +27780,57 @@ var Xb = class {
27770
27780
  }
27771
27781
  get_next_packet() {
27772
27782
  var e = {
27773
- kind: Yb.EOS,
27783
+ kind: Zb.EOS,
27774
27784
  text: "",
27775
27785
  url: ""
27776
27786
  }, t = this._buffer.length;
27777
27787
  if (t == 0) return e;
27778
27788
  var n = this._buffer.indexOf("\x1B");
27779
- if (n == -1) return e.kind = Yb.Text, e.text = this._buffer, this._buffer = "", e;
27780
- if (n > 0) return e.kind = Yb.Text, e.text = this._buffer.slice(0, n), this._buffer = this._buffer.slice(n), e;
27789
+ if (n == -1) return e.kind = Zb.Text, e.text = this._buffer, this._buffer = "", e;
27790
+ if (n > 0) return e.kind = Zb.Text, e.text = this._buffer.slice(0, n), this._buffer = this._buffer.slice(n), e;
27781
27791
  if (n == 0) {
27782
- if (t < 3) return e.kind = Yb.Incomplete, e;
27792
+ if (t < 3) return e.kind = Zb.Incomplete, e;
27783
27793
  var r = this._buffer.charAt(1);
27784
- if (r != "[" && r != "]" && r != "(") return e.kind = Yb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27794
+ if (r != "[" && r != "]" && r != "(") return e.kind = Zb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27785
27795
  if (r == "[") {
27786
- this._csi_regex ||= Zb($b ||= Jb(["\n ^ # beginning of line\n #\n # First attempt\n (?: # legal sequence\n \x1B[ # CSI\n ([<-?]?) # private-mode char\n ([d;]*) # any digits or semicolons\n ([ -/]? # an intermediate modifier\n [@-~]) # the command\n )\n | # alternate (second attempt)\n (?: # illegal sequence\n \x1B[ # CSI\n [ -~]* # anything legal\n ([\0-:]) # anything illegal\n )\n "], ["\n ^ # beginning of line\n #\n # First attempt\n (?: # legal sequence\n \\x1b\\[ # CSI\n ([\\x3c-\\x3f]?) # private-mode char\n ([\\d;]*) # any digits or semicolons\n ([\\x20-\\x2f]? # an intermediate modifier\n [\\x40-\\x7e]) # the command\n )\n | # alternate (second attempt)\n (?: # illegal sequence\n \\x1b\\[ # CSI\n [\\x20-\\x7e]* # anything legal\n ([\\x00-\\x1f:]) # anything illegal\n )\n "]));
27796
+ this._csi_regex ||= $b(tx ||= Xb(["\n ^ # beginning of line\n #\n # First attempt\n (?: # legal sequence\n \x1B[ # CSI\n ([<-?]?) # private-mode char\n ([d;]*) # any digits or semicolons\n ([ -/]? # an intermediate modifier\n [@-~]) # the command\n )\n | # alternate (second attempt)\n (?: # illegal sequence\n \x1B[ # CSI\n [ -~]* # anything legal\n ([\0-:]) # anything illegal\n )\n "], ["\n ^ # beginning of line\n #\n # First attempt\n (?: # legal sequence\n \\x1b\\[ # CSI\n ([\\x3c-\\x3f]?) # private-mode char\n ([\\d;]*) # any digits or semicolons\n ([\\x20-\\x2f]? # an intermediate modifier\n [\\x40-\\x7e]) # the command\n )\n | # alternate (second attempt)\n (?: # illegal sequence\n \\x1b\\[ # CSI\n [\\x20-\\x7e]* # anything legal\n ([\\x00-\\x1f:]) # anything illegal\n )\n "]));
27787
27797
  let t = this._buffer.match(this._csi_regex);
27788
- if (t === null) return e.kind = Yb.Incomplete, e;
27789
- if (t[4]) return e.kind = Yb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27790
- e.kind = t[1] != "" || t[3] != "m" ? Yb.Unknown : Yb.SGR, e.text = t[2];
27798
+ if (t === null) return e.kind = Zb.Incomplete, e;
27799
+ if (t[4]) return e.kind = Zb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27800
+ e.kind = t[1] != "" || t[3] != "m" ? Zb.Unknown : Zb.SGR, e.text = t[2];
27791
27801
  var i = t[0].length;
27792
27802
  return this._buffer = this._buffer.slice(i), e;
27793
27803
  }
27794
27804
  if (r == "]") {
27795
- if (t < 4) return e.kind = Yb.Incomplete, e;
27796
- if (this._buffer.charAt(2) != "8" || this._buffer.charAt(3) != ";") return e.kind = Yb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27797
- this._osc_st ||= Qb(ex ||= Jb(["\n (?: # legal sequence\n (\x1B\\) # ESC | # alternate\n (\x07) # BEL (what xterm did)\n )\n | # alternate (second attempt)\n ( # illegal sequence\n [\0-] # anything illegal\n | # alternate\n [\b-] # anything illegal\n | # alternate\n [-] # anything illegal\n )\n "], ["\n (?: # legal sequence\n (\\x1b\\\\) # ESC \\\n | # alternate\n (\\x07) # BEL (what xterm did)\n )\n | # alternate (second attempt)\n ( # illegal sequence\n [\\x00-\\x06] # anything illegal\n | # alternate\n [\\x08-\\x1a] # anything illegal\n | # alternate\n [\\x1c-\\x1f] # anything illegal\n )\n "])), this._osc_st.lastIndex = 0;
27805
+ if (t < 4) return e.kind = Zb.Incomplete, e;
27806
+ if (this._buffer.charAt(2) != "8" || this._buffer.charAt(3) != ";") return e.kind = Zb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27807
+ this._osc_st ||= ex(nx ||= Xb(["\n (?: # legal sequence\n (\x1B\\) # ESC | # alternate\n (\x07) # BEL (what xterm did)\n )\n | # alternate (second attempt)\n ( # illegal sequence\n [\0-] # anything illegal\n | # alternate\n [\b-] # anything illegal\n | # alternate\n [-] # anything illegal\n )\n "], ["\n (?: # legal sequence\n (\\x1b\\\\) # ESC \\\n | # alternate\n (\\x07) # BEL (what xterm did)\n )\n | # alternate (second attempt)\n ( # illegal sequence\n [\\x00-\\x06] # anything illegal\n | # alternate\n [\\x08-\\x1a] # anything illegal\n | # alternate\n [\\x1c-\\x1f] # anything illegal\n )\n "])), this._osc_st.lastIndex = 0;
27798
27808
  {
27799
27809
  let t = this._osc_st.exec(this._buffer);
27800
- if (t === null) return e.kind = Yb.Incomplete, e;
27801
- if (t[3]) return e.kind = Yb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27810
+ if (t === null) return e.kind = Zb.Incomplete, e;
27811
+ if (t[3]) return e.kind = Zb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27802
27812
  }
27803
27813
  {
27804
27814
  let t = this._osc_st.exec(this._buffer);
27805
- if (t === null) return e.kind = Yb.Incomplete, e;
27806
- if (t[3]) return e.kind = Yb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27815
+ if (t === null) return e.kind = Zb.Incomplete, e;
27816
+ if (t[3]) return e.kind = Zb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27807
27817
  }
27808
- this._osc_regex ||= Zb(tx ||= Jb(["\n ^ # beginning of line\n #\n \x1B]8; # OSC Hyperlink\n [ -:<-~]* # params (excluding ;)\n ; # end of params\n ([!-~]{0,512}) # URL capture\n (?: # ST\n (?:\x1B\\) # ESC | # alternate\n (?:\x07) # BEL (what xterm did)\n )\n ([ -~]+) # TEXT capture\n \x1B]8;; # OSC Hyperlink End\n (?: # ST\n (?:\x1B\\) # ESC | # alternate\n (?:\x07) # BEL (what xterm did)\n )\n "], ["\n ^ # beginning of line\n #\n \\x1b\\]8; # OSC Hyperlink\n [\\x20-\\x3a\\x3c-\\x7e]* # params (excluding ;)\n ; # end of params\n ([\\x21-\\x7e]{0,512}) # URL capture\n (?: # ST\n (?:\\x1b\\\\) # ESC \\\n | # alternate\n (?:\\x07) # BEL (what xterm did)\n )\n ([\\x20-\\x7e]+) # TEXT capture\n \\x1b\\]8;; # OSC Hyperlink End\n (?: # ST\n (?:\\x1b\\\\) # ESC \\\n | # alternate\n (?:\\x07) # BEL (what xterm did)\n )\n "]));
27818
+ this._osc_regex ||= $b(rx ||= Xb(["\n ^ # beginning of line\n #\n \x1B]8; # OSC Hyperlink\n [ -:<-~]* # params (excluding ;)\n ; # end of params\n ([!-~]{0,512}) # URL capture\n (?: # ST\n (?:\x1B\\) # ESC | # alternate\n (?:\x07) # BEL (what xterm did)\n )\n ([ -~]+) # TEXT capture\n \x1B]8;; # OSC Hyperlink End\n (?: # ST\n (?:\x1B\\) # ESC | # alternate\n (?:\x07) # BEL (what xterm did)\n )\n "], ["\n ^ # beginning of line\n #\n \\x1b\\]8; # OSC Hyperlink\n [\\x20-\\x3a\\x3c-\\x7e]* # params (excluding ;)\n ; # end of params\n ([\\x21-\\x7e]{0,512}) # URL capture\n (?: # ST\n (?:\\x1b\\\\) # ESC \\\n | # alternate\n (?:\\x07) # BEL (what xterm did)\n )\n ([\\x20-\\x7e]+) # TEXT capture\n \\x1b\\]8;; # OSC Hyperlink End\n (?: # ST\n (?:\\x1b\\\\) # ESC \\\n | # alternate\n (?:\\x07) # BEL (what xterm did)\n )\n "]));
27809
27819
  let n = this._buffer.match(this._osc_regex);
27810
- if (n === null) return e.kind = Yb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27811
- e.kind = Yb.OSCURL, e.url = n[1], e.text = n[2];
27820
+ if (n === null) return e.kind = Zb.ESC, e.text = this._buffer.slice(0, 1), this._buffer = this._buffer.slice(1), e;
27821
+ e.kind = Zb.OSCURL, e.url = n[1], e.text = n[2];
27812
27822
  var i = n[0].length;
27813
27823
  return this._buffer = this._buffer.slice(i), e;
27814
27824
  }
27815
- if (r == "(") return e.kind = Yb.Unknown, this._buffer = this._buffer.slice(3), e;
27825
+ if (r == "(") return e.kind = Zb.Unknown, this._buffer = this._buffer.slice(3), e;
27816
27826
  }
27817
27827
  }
27818
27828
  ansi_to_html(e) {
27819
27829
  this.append_buffer(e);
27820
27830
  for (var t = [];;) {
27821
27831
  var n = this.get_next_packet();
27822
- if (n.kind == Yb.EOS || n.kind == Yb.Incomplete) break;
27823
- n.kind != Yb.ESC && n.kind != Yb.Unknown && (n.kind == Yb.Text ? t.push(this.transform_to_html(this.with_state(n))) : n.kind == Yb.SGR ? this.process_ansi(n) : n.kind == Yb.OSCURL && t.push(this.process_hyperlink(n)));
27832
+ if (n.kind == Zb.EOS || n.kind == Zb.Incomplete) break;
27833
+ n.kind != Zb.ESC && n.kind != Zb.Unknown && (n.kind == Zb.Text ? t.push(this.transform_to_html(this.with_state(n))) : n.kind == Zb.SGR ? this.process_ansi(n) : n.kind == Zb.OSCURL && t.push(this.process_hyperlink(n)));
27824
27834
  }
27825
27835
  return t.join("");
27826
27836
  }
@@ -27890,16 +27900,16 @@ var Xb = class {
27890
27900
  return t.length < 1 || !this._url_allowlist[t[0]] ? "" : `<a href="${this.escape_txt_for_html(e.url)}">${this.escape_txt_for_html(e.text)}</a>`;
27891
27901
  }
27892
27902
  };
27893
- function Zb(e, ...t) {
27903
+ function $b(e, ...t) {
27894
27904
  let n = e.raw[0].replace(/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm, "");
27895
27905
  return new RegExp(n);
27896
27906
  }
27897
- function Qb(e, ...t) {
27907
+ function ex(e, ...t) {
27898
27908
  let n = e.raw[0].replace(/^\s+|\s+\n|\s*#[\s\S]*?\n|\n/gm, "");
27899
27909
  return new RegExp(n, "g");
27900
27910
  }
27901
- var $b, ex, tx, nx = new Xb();
27902
- function rx(e) {
27911
+ var tx, nx, rx, ix = new Qb();
27912
+ function ax(e) {
27903
27913
  try {
27904
27914
  let t = document.createElement("div");
27905
27915
  return t.innerHTML = e, (t.textContent || t.innerText || "").split("\n").map((e) => e.trimEnd()).join("\n");
@@ -27907,24 +27917,24 @@ function rx(e) {
27907
27917
  return a.error("Error parsing HTML content:", t), e;
27908
27918
  }
27909
27919
  }
27910
- function ix(e) {
27920
+ function ox(e) {
27911
27921
  if (!e) return "";
27912
27922
  try {
27913
- return rx(nx.ansi_to_html(e));
27923
+ return ax(ix.ansi_to_html(e));
27914
27924
  } catch (t) {
27915
27925
  return a.error("Error converting ANSI to plain text:", t), e;
27916
27926
  }
27917
27927
  }
27918
27928
  //#endregion
27919
27929
  //#region src/core/errors/traceback-atom.ts
27920
- var ax = A(null);
27930
+ var sx = A(null);
27921
27931
  //#endregion
27922
27932
  //#region src/core/cells/logs.ts
27923
- function ox(e) {
27933
+ function cx(e) {
27924
27934
  return e.type === "cell" ? e.cellId : `lsp:${e.name}`;
27925
27935
  }
27926
- var sx = !1;
27927
- function cx(e) {
27936
+ var lx = !1;
27937
+ function ux(e) {
27928
27938
  let t = [], n = [e.console].filter(Boolean).flat();
27929
27939
  for (let r of n) {
27930
27940
  let n = r.mimetype === "text/plain", i = r.mimetype === "text/html" || r.mimetype === "application/vnd.marimo+traceback";
@@ -27934,7 +27944,7 @@ function cx(e) {
27934
27944
  case "stdout":
27935
27945
  case "stderr":
27936
27946
  case "marimo-error": {
27937
- let a = te.asString(r.data), o = i ? rx(a) : a;
27947
+ let a = te.asString(r.data), o = i ? ax(a) : a;
27938
27948
  t.push({
27939
27949
  timestamp: r.timestamp || Date.now(),
27940
27950
  level: n ? "stderr" : "stdout",
@@ -27949,9 +27959,9 @@ function cx(e) {
27949
27959
  }
27950
27960
  }
27951
27961
  }
27952
- if (t.forEach(lx.log), n.length === 0 && ol(e.output?.mimetype) && Array.isArray(e.output.data)) {
27962
+ if (t.forEach(dx.log), n.length === 0 && ol(e.output?.mimetype) && Array.isArray(e.output.data)) {
27953
27963
  e.output.data.forEach((t) => {
27954
- lx.log({
27964
+ dx.log({
27955
27965
  level: "stderr",
27956
27966
  source: {
27957
27967
  type: "cell",
@@ -27962,8 +27972,8 @@ function cx(e) {
27962
27972
  });
27963
27973
  });
27964
27974
  let t = e.output.data.filter((e) => "type" in e && e.type === "exception" || e.type === "internal"), n = j.get(pe) === "read";
27965
- if (t.length > 0 && !sx && n) {
27966
- sx = !0;
27975
+ if (t.length > 0 && !lx && n) {
27976
+ lx = !0;
27967
27977
  let e = t.find((e) => e.traceback);
27968
27978
  f(e ? {
27969
27979
  title: "An internal error occurred",
@@ -27972,7 +27982,7 @@ function cx(e) {
27972
27982
  action: P.createElement(Oe, {
27973
27983
  altText: "View traceback",
27974
27984
  onClick: () => {
27975
- j.set(ax, {
27985
+ j.set(sx, {
27976
27986
  traceback: e.traceback,
27977
27987
  errorMessage: e.msg || "An internal error occurred"
27978
27988
  });
@@ -27987,13 +27997,13 @@ function cx(e) {
27987
27997
  }
27988
27998
  return t;
27989
27999
  }
27990
- var lx = { log: (e) => {
28000
+ var dx = { log: (e) => {
27991
28001
  let t = e.level === "stdout" ? "gray" : e.level === "stderr" ? "red" : "orange", n = e.level.toUpperCase();
27992
- console.log(`%c[${n}]`, `color:${t}; padding:2px 0; border-radius:2px; font-weight:bold`, `[${ux(e.timestamp)}]`, `(${ox(e.source)}) ${e.message}`);
28002
+ console.log(`%c[${n}]`, `color:${t}; padding:2px 0; border-radius:2px; font-weight:bold`, `[${fx(e.timestamp)}]`, `(${cx(e.source)}) ${e.message}`);
27993
28003
  } };
27994
- function ux(e) {
28004
+ function fx(e) {
27995
28005
  try {
27996
- return qb(e).toLocaleTimeString(void 0, {
28006
+ return Yb(e).toLocaleTimeString(void 0, {
27997
28007
  hour12: !0,
27998
28008
  hour: "numeric",
27999
28009
  minute: "numeric",
@@ -28005,14 +28015,14 @@ function ux(e) {
28005
28015
  }
28006
28016
  //#endregion
28007
28017
  //#region src/components/editor/navigation/focus-utils.ts
28008
- function dx(e, t) {
28018
+ function px(e, t) {
28009
28019
  let n = document.getElementById(qr.create(e));
28010
- n ? px(n, t) : a.warn(`[CellFocusManager] focusCell: element not found: ${e}`);
28020
+ n ? hx(n, t) : a.warn(`[CellFocusManager] focusCell: element not found: ${e}`);
28011
28021
  }
28012
- function fx() {
28022
+ function mx() {
28013
28023
  return document.activeElement instanceof HTMLElement && document.activeElement.classList.contains("marimo-cell");
28014
28024
  }
28015
- function px(e, t) {
28025
+ function hx(e, t) {
28016
28026
  try {
28017
28027
  e.focus(t);
28018
28028
  } catch {
@@ -28021,7 +28031,7 @@ function px(e, t) {
28021
28031
  }
28022
28032
  //#endregion
28023
28033
  //#region src/utils/timeout.ts
28024
- function mx(e, t) {
28034
+ function gx(e, t) {
28025
28035
  let { retries: n, delay: r, initialDelay: i = 0 } = t, o = 0, s = () => {
28026
28036
  if (o < n) {
28027
28037
  try {
@@ -28036,18 +28046,18 @@ function mx(e, t) {
28036
28046
  }
28037
28047
  //#endregion
28038
28048
  //#region src/core/cells/scrollCellIntoView.ts
28039
- function hx({ cellId: e, cell: t, isCodeHidden: n, codeFocus: r, variableName: i }) {
28049
+ function _x({ cellId: e, cell: t, isCodeHidden: n, codeFocus: r, variableName: i }) {
28040
28050
  if (!t) return;
28041
28051
  let o = document.getElementById(qr.create(e));
28042
28052
  if (!o) {
28043
28053
  a.warn("scrollCellIntoView: element not found");
28044
28054
  return;
28045
28055
  }
28046
- if (fx()) {
28047
- px(o);
28056
+ if (mx()) {
28057
+ hx(o);
28048
28058
  return;
28049
28059
  }
28050
- if (n) px(o);
28060
+ if (n) hx(o);
28051
28061
  else {
28052
28062
  Ti.promote(e);
28053
28063
  let n = t.current?.editorView;
@@ -28056,7 +28066,7 @@ function hx({ cellId: e, cell: t, isCodeHidden: n, codeFocus: r, variableName: i
28056
28066
  return;
28057
28067
  }
28058
28068
  if (n.hasFocus || !document.hasFocus()) return;
28059
- if (mx(() => (n.focus(), n.hasFocus), {
28069
+ if (gx(() => (n.focus(), n.hasFocus), {
28060
28070
  retries: 5,
28061
28071
  delay: 20
28062
28072
  }), r === "top") n.dispatch({ selection: {
@@ -28076,14 +28086,14 @@ function hx({ cellId: e, cell: t, isCodeHidden: n, codeFocus: r, variableName: i
28076
28086
  block: "nearest"
28077
28087
  });
28078
28088
  }
28079
- function gx() {
28089
+ function vx() {
28080
28090
  let e = document.getElementById("App");
28081
28091
  e?.scrollTo({
28082
28092
  top: e.scrollHeight,
28083
28093
  behavior: "smooth"
28084
28094
  });
28085
28095
  }
28086
- function _x() {
28096
+ function yx() {
28087
28097
  document.getElementById("App")?.scrollTo({
28088
28098
  top: 0,
28089
28099
  behavior: "smooth"
@@ -28091,7 +28101,7 @@ function _x() {
28091
28101
  }
28092
28102
  //#endregion
28093
28103
  //#region src/core/cells/cells.ts
28094
- function vx(e) {
28104
+ function bx(e) {
28095
28105
  let t = {
28096
28106
  column: 0,
28097
28107
  hide_code: !1,
@@ -28101,14 +28111,14 @@ function vx(e) {
28101
28111
  return {
28102
28112
  ...e,
28103
28113
  cellData: {
28104
- [Wr]: Fb({
28114
+ [Wr]: Ib({
28105
28115
  id: Wr,
28106
28116
  config: t
28107
28117
  }),
28108
28118
  ...e.cellData
28109
28119
  },
28110
28120
  cellRuntime: {
28111
- [Wr]: Lb(),
28121
+ [Wr]: Rb(),
28112
28122
  ...e.cellRuntime
28113
28123
  },
28114
28124
  cellHandles: {
@@ -28117,8 +28127,8 @@ function vx(e) {
28117
28127
  }
28118
28128
  };
28119
28129
  }
28120
- function yx() {
28121
- return vx({
28130
+ function xx() {
28131
+ return bx({
28122
28132
  cellIds: vi.from([]),
28123
28133
  cellData: {},
28124
28134
  cellRuntime: {},
@@ -28129,7 +28139,7 @@ function yx() {
28129
28139
  untouchedNewCells: /* @__PURE__ */ new Set()
28130
28140
  });
28131
28141
  }
28132
- var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAtom: $ } = y(yx, {
28142
+ var { reducer: Sx, addMiddleware: Cx, createActions: wx, useActions: Tx, valueAtom: $ } = y(xx, {
28133
28143
  createNewCell: (e, t) => {
28134
28144
  let { cellId: n, before: r, code: i, name: a, config: o, lastCodeRun: s = null, lastExecutionTime: c = null, autoFocus: l = !0, skipIfCodeExists: u = !1, hideCode: d = void 0 } = t, f, p;
28135
28145
  if (u) {
@@ -28151,12 +28161,12 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28151
28161
  cellIds: e.cellIds.insertId(m, f, h),
28152
28162
  cellData: {
28153
28163
  ...e.cellData,
28154
- [m]: Fb({
28164
+ [m]: Ib({
28155
28165
  id: m,
28156
28166
  code: i,
28157
28167
  name: a,
28158
28168
  lastCodeRun: s,
28159
- config: Ib({
28169
+ config: Lb({
28160
28170
  ...o,
28161
28171
  ...d != null && { hide_code: d }
28162
28172
  }),
@@ -28166,7 +28176,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28166
28176
  },
28167
28177
  cellRuntime: {
28168
28178
  ...e.cellRuntime,
28169
- [m]: Lb()
28179
+ [m]: Rb()
28170
28180
  },
28171
28181
  cellHandles: {
28172
28182
  ...e.cellHandles,
@@ -28268,10 +28278,10 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28268
28278
  let { cellId: r, where: i } = t, a = n.indexOfOrThrow(r), o;
28269
28279
  o = i === "before" ? Mt(a - 1, 0, n.length - 1) : i === "after" ? Mt(a + 1, 0, n.length - 1) : a;
28270
28280
  let s = n.atOrThrow(o);
28271
- return hx({
28281
+ return _x({
28272
28282
  cellId: s,
28273
28283
  cell: e.cellHandles[s],
28274
- isCodeHidden: wx(e, s),
28284
+ isCodeHidden: Ex(e, s),
28275
28285
  codeFocus: i === "after" ? "top" : "bottom",
28276
28286
  variableName: void 0
28277
28287
  }), e;
@@ -28280,25 +28290,25 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28280
28290
  let t = e.cellIds.getColumns().at(0);
28281
28291
  if (t === void 0 || t.length === 0) return e;
28282
28292
  let n = t.first();
28283
- return hx({
28293
+ return _x({
28284
28294
  cellId: n,
28285
28295
  cell: e.cellHandles[n],
28286
- isCodeHidden: wx(e, n),
28296
+ isCodeHidden: Ex(e, n),
28287
28297
  codeFocus: void 0,
28288
28298
  variableName: void 0
28289
- }), _x(), e;
28299
+ }), yx(), e;
28290
28300
  },
28291
28301
  focusBottomCell: (e) => {
28292
28302
  let t = e.cellIds.getColumns().at(-1);
28293
28303
  if (t === void 0 || t.length === 0) return e;
28294
28304
  let n = t.last();
28295
- return hx({
28305
+ return _x({
28296
28306
  cellId: n,
28297
28307
  cell: e.cellHandles[n],
28298
- isCodeHidden: wx(e, n),
28308
+ isCodeHidden: Ex(e, n),
28299
28309
  codeFocus: void 0,
28300
28310
  variableName: void 0
28301
- }), gx(), e;
28311
+ }), vx(), e;
28302
28312
  },
28303
28313
  sendToTop: (e, t) => {
28304
28314
  let n = e.cellIds.findWithId(t.cellId);
@@ -28327,11 +28337,11 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28327
28337
  cellIds: e.cellIds.addColumn(t.columnId, [n]),
28328
28338
  cellData: {
28329
28339
  ...e.cellData,
28330
- [n]: Fb({ id: n })
28340
+ [n]: Ib({ id: n })
28331
28341
  },
28332
28342
  cellRuntime: {
28333
28343
  ...e.cellRuntime,
28334
- [n]: Lb()
28344
+ [n]: Rb()
28335
28345
  },
28336
28346
  cellHandles: {
28337
28347
  ...e.cellHandles,
@@ -28377,7 +28387,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28377
28387
  let i = r.indexOfOrThrow(n), o = i === 0 ? 1 : i - 1, s = null;
28378
28388
  r.length > 1 && (s = r.atOrThrow(o));
28379
28389
  let c = (e.cellHandles[n].current?.editorView)?.state.toJSON({ history: Ct });
28380
- c && (c.doc = e.cellData[n].code), Ux(n);
28390
+ c && (c.doc = e.cellData[n].code), Gx(n);
28381
28391
  let l = e.cellData[n];
28382
28392
  return {
28383
28393
  ...e,
@@ -28415,7 +28425,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28415
28425
  scrollKey: n[0] ?? null
28416
28426
  };
28417
28427
  }
28418
- let { name: n, serializedEditorState: r = { doc: "" }, column: i, index: a, isSetupCell: o, config: s } = t, c = o ? Gr : Kr.create(), l = Fb({
28428
+ let { name: n, serializedEditorState: r = { doc: "" }, column: i, index: a, isSetupCell: o, config: s } = t, c = o ? Gr : Kr.create(), l = Ib({
28419
28429
  id: c,
28420
28430
  name: n,
28421
28431
  code: r.doc,
@@ -28432,7 +28442,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28432
28442
  },
28433
28443
  cellRuntime: {
28434
28444
  ...e.cellRuntime,
28435
- [c]: Lb()
28445
+ [c]: Rb()
28436
28446
  },
28437
28447
  cellHandles: {
28438
28448
  ...e.cellHandles,
@@ -28444,7 +28454,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28444
28454
  },
28445
28455
  clearSerializedEditorState: (e, t) => {
28446
28456
  let { cellId: n } = t;
28447
- return Ex({
28457
+ return Ox({
28448
28458
  state: e,
28449
28459
  cellId: n,
28450
28460
  cellReducer: (e) => ({
@@ -28455,7 +28465,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28455
28465
  },
28456
28466
  updateCellCode: (e, t) => {
28457
28467
  let { cellId: n, code: r, formattingChange: i } = t;
28458
- return e.cellData[n] ? Ex({
28468
+ return e.cellData[n] ? Ox({
28459
28469
  state: e,
28460
28470
  cellId: n,
28461
28471
  cellReducer: (e) => i ? {
@@ -28471,7 +28481,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28471
28481
  },
28472
28482
  updateCellName: (e, t) => {
28473
28483
  let { cellId: n, name: r } = t;
28474
- return Ex({
28484
+ return Ox({
28475
28485
  state: e,
28476
28486
  cellId: n,
28477
28487
  cellReducer: (e) => ({
@@ -28482,23 +28492,23 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28482
28492
  },
28483
28493
  updateCellConfig: (e, t) => {
28484
28494
  let { cellId: n, config: r } = t;
28485
- return Ex({
28495
+ return Ox({
28486
28496
  state: e,
28487
28497
  cellId: n,
28488
28498
  cellReducer: (e) => ({
28489
28499
  ...e,
28490
- config: Ib({
28500
+ config: Lb({
28491
28501
  ...e.config,
28492
28502
  ...r
28493
28503
  })
28494
28504
  })
28495
28505
  });
28496
28506
  },
28497
- prepareForRun: (e, t) => Ex({
28498
- state: Tx({
28507
+ prepareForRun: (e, t) => Ox({
28508
+ state: Dx({
28499
28509
  state: e,
28500
28510
  cellId: t.cellId,
28501
- cellReducer: (e) => Tb(e)
28511
+ cellReducer: (e) => Eb(e)
28502
28512
  }),
28503
28513
  cellId: t.cellId,
28504
28514
  cellReducer: (e) => ({
@@ -28508,12 +28518,12 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28508
28518
  })
28509
28519
  }),
28510
28520
  handleCellMessage: (e, t) => {
28511
- let n = t.cell_id, r = Tx({
28521
+ let n = t.cell_id, r = Dx({
28512
28522
  state: e,
28513
28523
  cellId: n,
28514
- cellReducer: (e) => wb(e, t)
28524
+ cellReducer: (e) => Tb(e, t)
28515
28525
  });
28516
- return t.status === "queued" && (r = Ex({
28526
+ return t.status === "queued" && (r = Ox({
28517
28527
  state: r,
28518
28528
  cellId: n,
28519
28529
  cellReducer: (e) => ({
@@ -28523,7 +28533,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28523
28533
  })
28524
28534
  })), {
28525
28535
  ...r,
28526
- cellLogs: [...r.cellLogs, ...cx(t)]
28536
+ cellLogs: [...r.cellLogs, ...ux(t)]
28527
28537
  };
28528
28538
  },
28529
28539
  addLogs: (e, t) => ({
@@ -28531,13 +28541,13 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28531
28541
  cellLogs: [...e.cellLogs, ...t.logs]
28532
28542
  }),
28533
28543
  reconcileDocument: (e, t) => {
28534
- let n = Bb(e, t);
28535
- for (let t of e.cellIds.inOrderIds) t in n.cellData || Ux(t);
28544
+ let n = Vb(e, t);
28545
+ for (let t of e.cellIds.inOrderIds) t in n.cellData || Gx(t);
28536
28546
  return n;
28537
28547
  },
28538
28548
  setStdinResponse: (e, t) => {
28539
28549
  let { cellId: n, response: r, outputIndex: i } = t;
28540
- return Tx({
28550
+ return Dx({
28541
28551
  state: e,
28542
28552
  cellId: n,
28543
28553
  cellReducer: (e) => {
@@ -28557,19 +28567,32 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28557
28567
  }
28558
28568
  });
28559
28569
  },
28560
- setCells: (e, t) => {
28561
- let n = Object.fromEntries(t.map((e) => [e.id, e])), r = he(), i = (t) => {
28562
- if (!r) return Lb();
28563
- let n = e.cellRuntime[t];
28564
- return n && (n.output != null || n.consoleOutputs.length > 0) ? n : Lb();
28565
- }, a = Object.fromEntries(t.map((e) => [e.id, i(e.id)]));
28566
- return vx({
28570
+ setLastRun: (e, t) => {
28571
+ let n = { ...e.cellData };
28572
+ for (let r of e.cellIds.inOrderIds) {
28573
+ let i = e.cellData[r], a = t.lastCodeRun[r] ?? null;
28574
+ n[r] = {
28575
+ ...i,
28576
+ lastCodeRun: a,
28577
+ lastExecutionTime: t.lastExecutionTime[r] ?? null,
28578
+ edited: a !== null && Fb(a, i.code)
28579
+ };
28580
+ }
28581
+ return {
28567
28582
  ...e,
28568
- cellIds: vi.fromIdsAndColumns(t.map((e) => [e.id, e.config.column])),
28569
- cellData: n,
28570
- cellRuntime: a,
28571
- cellHandles: Object.fromEntries(t.map((e) => [e.id, (0, P.createRef)()]))
28572
- });
28583
+ cellData: n
28584
+ };
28585
+ },
28586
+ resetCellRuntimes: (e) => {
28587
+ let t = he(), n = { ...e.cellRuntime };
28588
+ for (let r of [...e.cellIds.inOrderIds, Wr]) {
28589
+ let i = e.cellRuntime[r];
28590
+ n[r] = t && i !== void 0 && (i.output != null || i.consoleOutputs.length > 0) ? i : Rb();
28591
+ }
28592
+ return {
28593
+ ...e,
28594
+ cellRuntime: n
28595
+ };
28573
28596
  },
28574
28597
  moveToNextCell: (e, t) => {
28575
28598
  let { cellId: n, before: r, noCreate: i = !1 } = t;
@@ -28582,11 +28605,11 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28582
28605
  cellIds: e.cellIds.insertId(t, a.id, s),
28583
28606
  cellData: {
28584
28607
  ...e.cellData,
28585
- [t]: Fb({ id: t })
28608
+ [t]: Ib({ id: t })
28586
28609
  },
28587
28610
  cellRuntime: {
28588
28611
  ...e.cellRuntime,
28589
- [t]: Lb()
28612
+ [t]: Rb()
28590
28613
  },
28591
28614
  cellHandles: {
28592
28615
  ...e.cellHandles,
@@ -28602,11 +28625,11 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28602
28625
  cellIds: e.cellIds.insertId(t, a.id, 0),
28603
28626
  cellData: {
28604
28627
  ...e.cellData,
28605
- [t]: Fb({ id: t })
28628
+ [t]: Ib({ id: t })
28606
28629
  },
28607
28630
  cellRuntime: {
28608
28631
  ...e.cellRuntime,
28609
- [t]: Lb()
28632
+ [t]: Rb()
28610
28633
  },
28611
28634
  cellHandles: {
28612
28635
  ...e.cellHandles,
@@ -28618,10 +28641,10 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28618
28641
  if ((c || l) && i) return e;
28619
28642
  if (s >= 0 && s < a.length) {
28620
28643
  let t = a.atOrThrow(s);
28621
- hx({
28644
+ _x({
28622
28645
  cellId: t,
28623
28646
  cell: e.cellHandles[t],
28624
- isCodeHidden: wx(e, t),
28647
+ isCodeHidden: Ex(e, t),
28625
28648
  codeFocus: r ? "bottom" : "top",
28626
28649
  variableName: void 0
28627
28650
  });
@@ -28654,10 +28677,10 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28654
28677
  let t = e.scrollKey;
28655
28678
  if (t === null) return e;
28656
28679
  let n = e.cellIds.findWithId(t), r = n.indexOfOrThrow(t), i = r === n.length - 1 ? n.last() : n.atOrThrow(r);
28657
- return hx({
28680
+ return _x({
28658
28681
  cellId: i,
28659
28682
  cell: e.cellHandles[i],
28660
- isCodeHidden: wx(e, i),
28683
+ isCodeHidden: Ex(e, i),
28661
28684
  codeFocus: void 0,
28662
28685
  variableName: void 0
28663
28686
  }), {
@@ -28672,7 +28695,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28672
28695
  cellLogs: []
28673
28696
  }),
28674
28697
  collapseCell: (e, t) => {
28675
- let { cellId: n } = t, r = e.cellIds.findWithId(n), i = r.topLevelIds.map((t) => e.cellRuntime[t].outline), a = fb(r.indexOfOrThrow(n), i);
28698
+ let { cellId: n } = t, r = e.cellIds.findWithId(n), i = r.topLevelIds.map((t) => e.cellRuntime[t].outline), a = pb(r.indexOfOrThrow(n), i);
28676
28699
  if (!a) return e;
28677
28700
  let o = r.atOrThrow(a[1]);
28678
28701
  return {
@@ -28694,7 +28717,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28694
28717
  cellIds: e.cellIds.transformAll((t) => {
28695
28718
  let n = t.topLevelIds.map((t) => e.cellRuntime[t].outline), r = [...t.nodes], i = /* @__PURE__ */ new Map(), a = [], o = r.length - 1;
28696
28719
  for (; o >= 0;) {
28697
- let e = fb(o, n);
28720
+ let e = pb(o, n);
28698
28721
  if (e) {
28699
28722
  let n = o, r = e[1], s = i.get(r) ?? r;
28700
28723
  i.set(r, n);
@@ -28724,7 +28747,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28724
28747
  splitCell: (e, t) => {
28725
28748
  let { cellId: n } = t, r = e.cellIds.findWithId(n), i = r.indexOfOrThrow(n), a = e.cellData[n], o = e.cellHandles[n].current;
28726
28749
  if (o?.editorView == null) return e;
28727
- let { beforeCursorCode: s, afterCursorCode: c } = Ju(o.editorView), l = rb(o.editorView.state, s);
28750
+ let { beforeCursorCode: s, afterCursorCode: c } = Ju(o.editorView), l = ib(o.editorView.state, s);
28728
28751
  l && o.editorView.dispatch(l);
28729
28752
  let u = Kr.create();
28730
28753
  return {
@@ -28737,7 +28760,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28737
28760
  code: s,
28738
28761
  edited: !!s && s.trim() !== a.lastCodeRun?.trim()
28739
28762
  },
28740
- [u]: Fb({
28763
+ [u]: Ib({
28741
28764
  id: u,
28742
28765
  code: c,
28743
28766
  edited: !!c
@@ -28750,7 +28773,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28750
28773
  output: null,
28751
28774
  consoleOutputs: []
28752
28775
  },
28753
- [u]: Lb()
28776
+ [u]: Rb()
28754
28777
  },
28755
28778
  cellHandles: {
28756
28779
  ...e.cellHandles,
@@ -28762,7 +28785,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28762
28785
  undoSplitCell: (e, t) => {
28763
28786
  let { cellId: n, snapshot: r } = t, i = e.cellData[n], a = e.cellHandles[n].current;
28764
28787
  if (a?.editorView == null) return e;
28765
- let o = rb(a.editorView.state, r);
28788
+ let o = ib(a.editorView.state, r);
28766
28789
  return o && a.editorView.dispatch(o), {
28767
28790
  ...e,
28768
28791
  cellIds: e.cellIds.transformWithCellId(n, (e) => {
@@ -28790,7 +28813,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28790
28813
  },
28791
28814
  clearCellOutput: (e, t) => {
28792
28815
  let { cellId: n } = t;
28793
- return Tx({
28816
+ return Dx({
28794
28817
  state: e,
28795
28818
  cellId: n,
28796
28819
  cellReducer: (e) => ({
@@ -28802,7 +28825,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28802
28825
  },
28803
28826
  clearCellConsoleOutput: (e, t) => {
28804
28827
  let { cellId: n } = t;
28805
- return Tx({
28828
+ return Dx({
28806
28829
  state: e,
28807
28830
  cellId: n,
28808
28831
  cellReducer: (e) => ({
@@ -28833,7 +28856,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28833
28856
  cellIds: e.cellIds.insertId(Gr, e.cellIds.atOrThrow(0).id, 0),
28834
28857
  cellData: {
28835
28858
  ...e.cellData,
28836
- [Gr]: Fb({
28859
+ [Gr]: Ib({
28837
28860
  id: Gr,
28838
28861
  name: Gr,
28839
28862
  code: n,
@@ -28842,7 +28865,7 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28842
28865
  },
28843
28866
  cellRuntime: {
28844
28867
  ...e.cellRuntime,
28845
- [Gr]: Lb()
28868
+ [Gr]: Rb()
28846
28869
  },
28847
28870
  cellHandles: {
28848
28871
  ...e.cellHandles,
@@ -28852,11 +28875,11 @@ var { reducer: bx, addMiddleware: xx, createActions: Sx, useActions: Cx, valueAt
28852
28875
  };
28853
28876
  }
28854
28877
  });
28855
- xx(Gb);
28856
- function wx(e, t) {
28878
+ Cx(qb);
28879
+ function Ex(e, t) {
28857
28880
  return !!e.cellData[t].config.hide_code && !e.untouchedNewCells.has(t);
28858
28881
  }
28859
- function Tx({ state: e, cellId: t, cellReducer: n }) {
28882
+ function Dx({ state: e, cellId: t, cellReducer: n }) {
28860
28883
  return t in e.cellRuntime ? {
28861
28884
  ...e,
28862
28885
  cellRuntime: {
@@ -28865,7 +28888,7 @@ function Tx({ state: e, cellId: t, cellReducer: n }) {
28865
28888
  }
28866
28889
  } : (a.warn(`Cell ${t} not found in state`), e);
28867
28890
  }
28868
- function Ex({ state: e, cellId: t, cellReducer: n }) {
28891
+ function Ox({ state: e, cellId: t, cellReducer: n }) {
28869
28892
  return t in e.cellData ? {
28870
28893
  ...e,
28871
28894
  cellData: {
@@ -28874,11 +28897,11 @@ function Ex({ state: e, cellId: t, cellReducer: n }) {
28874
28897
  }
28875
28898
  } : (a.warn(`Cell ${t} not found in state`), e);
28876
28899
  }
28877
- var Dx = Sx((e) => {
28878
- j.set($, (t) => bx(t, e));
28879
- }).addLogs, Ox = A((e) => e($).cellIds), kx = A((e) => e(Ox).hasOnlyOneId());
28900
+ var kx = wx((e) => {
28901
+ j.set($, (t) => Sx(t, e));
28902
+ }).addLogs, Ax = A((e) => e($).cellIds), jx = A((e) => e(Ax).hasOnlyOneId());
28880
28903
  A((e) => dl(e($)).length > 0), A((e) => fl(e($)).length > 0), A((e) => pl(e($))), A((e) => ml(e($))), A((e) => ll(e($)));
28881
- var Ax = A((e) => {
28904
+ var Mx = A((e) => {
28882
28905
  let { cellIds: t, cellRuntime: n, cellData: r } = e($);
28883
28906
  return t.inOrderIds.map((e) => {
28884
28907
  let t = n[e], { name: i } = r[e];
@@ -28896,43 +28919,43 @@ var Ax = A((e) => {
28896
28919
  }
28897
28920
  return null;
28898
28921
  }).filter(Boolean);
28899
- }), jx = A((e) => {
28900
- let t = e(Ox), n = e(Rx);
28901
- return ub(t.inOrderIds.map((e) => n[e].outline));
28922
+ }), Nx = A((e) => {
28923
+ let t = e(Ax), n = e(Bx);
28924
+ return db(t.inOrderIds.map((e) => n[e].outline));
28902
28925
  });
28903
- A((e) => e(Ax).length);
28904
- var Mx = Pe(A((e) => {
28926
+ A((e) => e(Mx).length);
28927
+ var Px = Pe(A((e) => {
28905
28928
  let { cellIds: t, cellData: n } = e($);
28906
28929
  return Nt.fromEntries(t.inOrderIds.map((e) => [e, n[e]?.name]));
28907
28930
  }));
28908
28931
  A((e) => e($).scrollKey);
28909
- var Nx = () => Le(Ox), Px = () => Le(Mx), Fx = () => j.get($), Ix = () => j.get($).cellIds, Lx = () => {
28932
+ var Fx = () => Le(Ax), Ix = () => Le(Px), Lx = () => j.get($), Rx = () => j.get($).cellIds, zx = () => {
28910
28933
  let { cellIds: e, cellData: t } = j.get($);
28911
28934
  return e.inOrderIds.map((e) => t[e]?.name).filter(Boolean);
28912
28935
  };
28913
28936
  yr(fr($, (e) => e.cellIds.inOrderIds.map((t) => e.cellData[t])));
28914
- var Rx = A((e) => e($).cellRuntime);
28937
+ var Bx = A((e) => e($).cellRuntime);
28915
28938
  A((e) => sl(e($))), A((e) => {
28916
28939
  let { cellRuntime: t } = e($);
28917
28940
  return Object.entries(t).every(([e, t]) => t.status !== "running" || e === "__scratch__");
28918
28941
  }), A((e) => cl(e($)));
28919
- var zx = A((e) => e($).cellIds.colLength);
28942
+ var Vx = A((e) => e($).cellIds.colLength);
28920
28943
  A((e) => e($).cellIds.idLength > 0), A((e) => e($).cellIds.getColumnIds());
28921
- var Bx = cr((e) => A((t) => t($).cellData[e])), Vx = cr((e) => A((t) => t($).cellRuntime[e])), Hx = cr((e) => A((t) => t($).cellHandles[e]));
28922
- function Ux(e) {
28923
- Bx.remove(e), Vx.remove(e), Hx.remove(e);
28944
+ var Hx = cr((e) => A((t) => t($).cellData[e])), Ux = cr((e) => A((t) => t($).cellRuntime[e])), Wx = cr((e) => A((t) => t($).cellHandles[e]));
28945
+ function Gx(e) {
28946
+ Hx.remove(e), Ux.remove(e), Wx.remove(e);
28924
28947
  }
28925
- var Wx = (e) => {
28948
+ var Kx = (e) => {
28926
28949
  let { cellHandles: t } = j.get($);
28927
28950
  return t[e].current?.editorView;
28928
- }, Gx = (e) => (Ti.promote(e), Wx(e));
28929
- function Kx(e) {
28951
+ }, qx = (e) => (Ti.promote(e), Kx(e));
28952
+ function Jx(e) {
28930
28953
  let t = (0, wr.c)(2), n;
28931
- return t[0] === e ? n = t[1] : (n = e === void 0 ? {} : e, t[0] = e, t[1] = n), Cx(n);
28954
+ return t[0] === e ? n = t[1] : (n = e === void 0 ? {} : e, t[0] = e, t[1] = n), Tx(n);
28932
28955
  }
28933
28956
  //#endregion
28934
28957
  //#region src/core/errors/error-entries.ts
28935
- function qx(e) {
28958
+ function Yx(e) {
28936
28959
  if (il(e.mimetype)) {
28937
28960
  if (!Array.isArray(e.data)) return null;
28938
28961
  let t = e.data.filter((e) => !e.type.includes("ancestor"));
@@ -28943,45 +28966,45 @@ function qx(e) {
28943
28966
  tracebackHtml: e.data
28944
28967
  } : null;
28945
28968
  }
28946
- function Jx(e) {
28969
+ function Xx(e) {
28947
28970
  return e.some((e) => "traceback" in e && e.traceback);
28948
28971
  }
28949
- function Yx(e) {
28972
+ function Zx(e) {
28950
28973
  let t = e?.find((e) => al(e.mimetype));
28951
28974
  if (!(!t || typeof t.data != "string" || t.data.length === 0)) return t.data;
28952
28975
  }
28953
- function Xx(e, t) {
28976
+ function Qx(e, t) {
28954
28977
  if (e.tracebackHtml) return e.tracebackHtml;
28955
- if (!Jx(e.errorData)) return Yx(t);
28978
+ if (!Xx(e.errorData)) return Zx(t);
28956
28979
  }
28957
- function Zx(e) {
28980
+ function $x(e) {
28958
28981
  let { cellIds: t, cellRuntime: n, cellData: r } = e.get($), i = [];
28959
28982
  for (let [e, a] of t.inOrderIds.entries()) {
28960
28983
  let t = n[a], o = t.output;
28961
28984
  if (!o || !ol(o.mimetype)) continue;
28962
- let s = qx(o);
28985
+ let s = Yx(o);
28963
28986
  if (!s) continue;
28964
- let c = Pv(r[a].name, e), l = r[a].lastCodeRun ?? r[a].code;
28987
+ let c = Fv(r[a].name, e), l = r[a].lastCodeRun ?? r[a].code;
28965
28988
  i.push({
28966
28989
  cellId: a,
28967
28990
  cellName: c,
28968
28991
  cellCode: l,
28969
28992
  errorData: s.errorData,
28970
- tracebackHtml: Xx(s, t.consoleOutputs)
28993
+ tracebackHtml: Qx(s, t.consoleOutputs)
28971
28994
  });
28972
28995
  }
28973
28996
  return i;
28974
28997
  }
28975
- function Qx(e) {
28998
+ function eS(e) {
28976
28999
  return e.type === "setup-refs" ? "The setup cell cannot have references" : e.type === "cycle" ? "This cell is in a cycle" : e.type === "multiple-defs" ? `The variable '${e.name}' was defined by another cell` : e.type === "import-star" || e.type === "lazy-import" || e.type === "ancestor-stopped" || e.type === "ancestor-prevented" || e.type === "exception" || e.type === "strict-exception" ? e.msg : e.type === "interruption" ? "This cell was interrupted and needs to be re-run" : e.type === "syntax" || e.type === "unknown" || e.type === "sql-error" ? e.msg : e.type === "internal" ? e.msg || "An internal error occurred" : (T(e), "Unknown error");
28977
29000
  }
28978
- function $x(e) {
28979
- let t = Qx(e);
28980
- return "traceback" in e && e.traceback && (t += `\n\nTraceback:\n${rx(e.traceback)}`), t;
29001
+ function tS(e) {
29002
+ let t = eS(e);
29003
+ return "traceback" in e && e.traceback && (t += `\n\nTraceback:\n${ax(e.traceback)}`), t;
28981
29004
  }
28982
- function eS(e) {
29005
+ function nS(e) {
28983
29006
  let t = [e.cellName];
28984
- return e.tracebackHtml && t.push(rx(e.tracebackHtml)), e.errorData.length > 0 && t.push(e.errorData.map($x).join("\n\n")), t.join("\n\n");
29007
+ return e.tracebackHtml && t.push(ax(e.tracebackHtml)), e.errorData.length > 0 && t.push(e.errorData.map(tS).join("\n\n")), t.join("\n\n");
28985
29008
  }
28986
29009
  //#endregion
28987
- export { up as $, Mr as $t, Db as A, bl as At, Nv as B, ni as Bt, ix as C, $l as Ct, Fb as D, Pl as Dt, Kb as E, Il as Et, ny as F, Qc as Ft, lv as G, qr as Gt, Mv as H, $r as Ht, ty as I, mi as It, Um as J, Jr as Jt, sh as K, Wr as Kt, zv as L, li as Lt, ib as M, ul as Mt, sy as N, _l as Nt, Ab as O, xl as Ot, ly as P, vl as Pt, Ep as Q, Fr as Qt, Bv as R, si as Rt, dx as S, au as St, Xb as T, eu as Tt, Av as U, ei as Ut, Fv as V, Qr as Vt, kv as W, Xr as Wt, $p as X, Br as Xt, em as Y, zr as Yt, zp as Z, Pr as Zt, zx as _, mn as _n, fu as _t, Bx as a, In as an, vf as at, Nx as b, lu as bt, Gx as c, An as cn, Yd as ct, Ix as d, Cn as dn, Hd as dt, Tr as en, lp as et, Fx as f, Sn as fn, Bd as ft, jx as g, hn as gn, du as gt, $ as h, vn as hn, Nu as ht, Zx as i, zn as in, bf as it, lb as j, gl as jt, Eb as k, yl as kt, Wx as l, On as ln, Xd as lt, yx as m, bn as mn, Md as mt, eS as n, Cr as nn, Af as nt, Ox as o, Nn as on, pf as ot, kx as p, xn as pn, Fd as pt, Wm as q, Yr as qt, $x as r, fr as rn, Sf as rt, Sx as s, Mn as sn, uf as st, Qx as t, sr as tn, X as tt, Lx as u, Tn as un, qd as ut, bx as v, fn as vn, V as vt, rx as w, Yl as wt, Px as x, su as xt, Kx as y, uu as yt, Pv as z, ci as zt };
29010
+ export { Ep as $, Fr as $t, Ob as A, yl as At, Pv as B, ci as Bt, ox as C, au as Ct, Hb as D, Il as Dt, Jb as E, eu as Et, ry as F, vl as Ft, uv as G, Xr as Gt, Nv as H, Qr as Ht, ny as I, Qc as It, Wm as J, Yr as Jt, ch as K, qr as Kt, Bv as L, mi as Lt, ab as M, gl as Mt, cy as N, ul as Nt, jb as O, Pl as Ot, uy as P, _l as Pt, zp as Q, Pr as Qt, Vv as R, li as Rt, px as S, su as St, Qb as T, Yl as Tt, jv as U, $r as Ut, Iv as V, ni as Vt, Av as W, ei as Wt, em as X, zr as Xt, Um as Y, Jr as Yt, $p as Z, Br as Zt, Vx as _, hn as _n, du as _t, Hx as a, zn as an, bf as at, Fx as b, uu as bt, qx as c, Mn as cn, uf as ct, Rx as d, Tn as dn, qd as dt, Mr as en, up as et, Lx as f, Cn as fn, Hd as ft, Nx as g, vn as gn, Nu as gt, $ as h, bn as hn, Md as ht, $x as i, fr as in, Sf as it, ub as j, bl as jt, Db as k, xl as kt, Kx as l, An as ln, Yd as lt, xx as m, xn as mn, Fd as mt, nS as n, sr as nn, X as nt, Ax as o, In as on, vf as ot, jx as p, Sn as pn, Bd as pt, Gm as q, Wr as qt, tS as r, Cr as rn, Af as rt, wx as s, Nn as sn, pf as st, eS as t, Tr as tn, lp as tt, zx as u, On as un, Xd as ut, Sx as v, mn as vn, fu as vt, ax as w, $l as wt, Ix as x, lu as xt, Jx as y, fn as yn, V as yt, Fv as z, si as zt };