@marimo-team/islands 0.25.3-dev28 → 0.25.3-dev29

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.
@@ -135,7 +135,7 @@ function F(e) {
135
135
  }
136
136
  //#endregion
137
137
  //#region src/components/editor/boundary/ErrorBoundary.tsx
138
- var I = (0, T.lazy)(() => import("./feedback-button-g9eH5l7Q.js").then((e) => ({ default: e.FeedbackModal }))), L = (e) => {
138
+ var I = (0, T.lazy)(() => import("./feedback-button-CykZqHY-.js").then((e) => ({ default: e.FeedbackModal }))), L = (e) => {
139
139
  let t = (0, w.c)(2), n;
140
140
  return t[0] === e.children ? n = t[1] : (n = /* @__PURE__ */ (0, j.jsx)(O, {
141
141
  FallbackComponent: R,
@@ -3,13 +3,13 @@ import { c as n, g as r, h as i, t as a } from "./button-CvjkwdSk.js";
3
3
  import { t as o } from "./react-sHtZdjeP.js";
4
4
  import { t as s } from "./compiler-runtime-CldRdSsv.js";
5
5
  import { i as c, t as l } from "./copy-icon-BgUO8jsi.js";
6
- import { F as u, H as d, U as f, V as p, X as m, Y as h, Z as g, _, a as v, c as y, d as b, f as x, g as S, h as C, l as w, m as T, n as E, p as D, r as O, t as k, v as A, x as ee, y as te, z as ne } from "./html-to-image-B5H-xKRH.js";
6
+ import { F as u, H as d, U as f, V as p, X as m, Y as h, Z as g, _, a as v, c as y, d as b, f as x, g as S, h as C, l as w, m as T, n as E, p as D, r as O, t as k, v as A, x as ee, y as te, z as ne } from "./html-to-image--r0l9wUy.js";
7
7
  import { h as j, t as re } from "./tooltip-CtBZ5q8p.js";
8
- import { Ct as ie, Et as ae, Ht as oe, L as se, Lt as ce, Nt as le, St as ue, X as de, cn as fe, ct as pe, dn as me, en as he, et as ge, h as _e, i as ve, ln as ye, mn as be, mt as xe, r as Se, rt as Ce, st as we, t as Te, w as Ee, xt as De } from "./error-entries-j85LP88u.js";
8
+ import { Ct as ie, Et as ae, Ht as oe, L as se, Lt as ce, Nt as le, St as ue, X as de, cn as fe, ct as pe, dn as me, en as he, et as ge, h as _e, i as ve, ln as ye, mn as be, mt as xe, r as Se, rt as Ce, st as we, t as Te, w as Ee, xt as De } from "./error-entries-DgtRTNaG.js";
9
9
  import { A as Oe, C as ke, M as Ae, b as je } from "./select-DemoKT4G.js";
10
10
  import { _ as Me, f as Ne, h as Pe, i as Fe, n as Ie, t as Le } from "./dropdown-menu-BuE2b8Yb.js";
11
- import { C as Re, d as ze } from "./toDate-BvdkR0aH.js";
12
- import { d as Be, f as Ve, i as He, n as Ue, t as We, u as Ge } from "./process-output-DGzGHArA.js";
11
+ import { C as Re, d as ze } from "./toDate-gyi35XS2.js";
12
+ import { d as Be, f as Ve, i as He, n as Ue, t as We, u as Ge } from "./process-output-CuIlhYwn.js";
13
13
  import { t as Ke } from "./jsx-runtime-3BD1kT0s.js";
14
14
  import { A as qe, B as Je, C as Ye, E as Xe, I as Ze, L as Qe, M as $e, N as et, O as tt, P as nt, S as rt, T as it, U as at, V as ot, b as st, k as ct, w as lt, x as ut, y as dt, z as ft } from "./use-restore-focus-CKjfFjLM.js";
15
15
  import { n as pt } from "./error-banner-CFPHFw4h.js";
@@ -1,8 +1,8 @@
1
1
  import { g as e } from "./button-CvjkwdSk.js";
2
2
  import { t } from "./compiler-runtime-CldRdSsv.js";
3
- import { G as n, K as r } from "./error-entries-j85LP88u.js";
3
+ import { G as n, K as r } from "./error-entries-DgtRTNaG.js";
4
4
  import { C as i } from "./select-DemoKT4G.js";
5
- import { _ as a, c as o, x as s, y as c } from "./toDate-BvdkR0aH.js";
5
+ import { _ as a, c as o, x as s, y as c } from "./toDate-gyi35XS2.js";
6
6
  import { C as l, E as u, a as d, b as f } from "./useTheme-Bu5bBgrh.js";
7
7
  //#region src/core/islands/state.ts
8
8
  var p = t(), m = u(!1), h = u(/* @__PURE__ */ new Set()), g = u((e) => e(h)?.size === 0), _ = u(!1), v = u((e) => e(_) && e(m) === !1), y = u({
@@ -18,7 +18,7 @@ function x() {
18
18
  return e.warn("Failed to get version from mount config"), null;
19
19
  }
20
20
  }
21
- var S = x() || "0.25.3-dev28", C = u(S), w = u(!0);
21
+ var S = x() || "0.25.3-dev29", C = u(S), w = u(!0);
22
22
  u(null);
23
23
  //#endregion
24
24
  //#region src/core/wasm/state.ts
@@ -3,16 +3,16 @@ import { _ as t, c as n, f as r, g as i, h as a, m as o, n as s, p as c, r as l,
3
3
  import { t as d } from "./react-sHtZdjeP.js";
4
4
  import { t as f } from "./compiler-runtime-CldRdSsv.js";
5
5
  import { i as p, n as m, r as h, t as g } from "./copy-icon-BgUO8jsi.js";
6
- import { $ as _, A as v, B as y, D as b, E as x, F as S, H as C, M as w, N as T, Q as E, S as D, T as O, V as k, W as A, X as j, Y as M, Z as N, _ as P, g as F, n as I, r as L, s as R, t as z, u as B, v as ee, w as V, y as te, z as ne } from "./html-to-image-B5H-xKRH.js";
6
+ import { $ as _, A as v, B as y, D as b, E as x, F as S, H as C, M as w, N as T, Q as E, S as D, T as O, V as k, W as A, X as j, Y as M, Z as N, _ as P, g as F, n as I, r as L, s as R, t as z, u as B, v as ee, w as V, y as te, z as ne } from "./html-to-image--r0l9wUy.js";
7
7
  import { a as re, d as ie, h as H, n as ae, o as oe, r as se, t as U } from "./tooltip-CtBZ5q8p.js";
8
- import { $ as ce, A as le, D as ue, Et as de, F as fe, G as pe, Ht as me, I as he, J as ge, K as _e, L as ve, Ot as ye, Rt as be, T as xe, Ut as Se, V as Ce, Xt as we, Yt as Te, Zt as Ee, _t as De, an as Oe, at as ke, b as Ae, c as je, cn as Me, dn as Ne, en as Pe, gn as Fe, gt as Ie, h as Le, hn as Re, l as ze, ln as Be, lt as Ve, mn as He, mt as Ue, on as We, ot as Ge, rn as Ke, st as qe, t as Je, un as Ye, vt as Xe, w as Ze, x as Qe, y as $e } from "./error-entries-j85LP88u.js";
8
+ import { $ as ce, A as le, D as ue, Et as de, F as fe, G as pe, Ht as me, I as he, J as ge, K as _e, L as ve, Ot as ye, Rt as be, T as xe, Ut as Se, V as Ce, Xt as we, Yt as Te, Zt as Ee, _t as De, an as Oe, at as ke, b as Ae, c as je, cn as Me, dn as Ne, en as Pe, gn as Fe, gt as Ie, h as Le, hn as Re, l as ze, ln as Be, lt as Ve, mn as He, mt as Ue, on as We, ot as Ge, rn as Ke, st as qe, t as Je, un as Ye, vt as Xe, w as Ze, x as Qe, y as $e } from "./error-entries-DgtRTNaG.js";
9
9
  import { c as et, i as tt, r as nt } from "./useLifecycle-Dfq8UD-b.js";
10
10
  import { a as rt, i as it, n as at, o as ot, r as st, t as ct } from "./useDateFormatter-DkajGwwd.js";
11
11
  import { t as lt } from "./check-BMKBBrdc.js";
12
12
  import { A as ut, C as dt, M as ft, O as pt, S as mt, _ as ht, b as gt, c as _t, d as vt, g as yt, h as bt, i as xt, l as St, m as Ct, n as wt, p as Tt, s as Et, t as Dt, u as Ot, v as kt, y as At } from "./select-DemoKT4G.js";
13
13
  import { $ as jt, $t as Mt, A as Nt, At as Pt, B as Ft, Bt as It, Ct as Lt, D as Rt, Dt as zt, E as Bt, Et as Vt, F as Ht, Ft as Ut, G as Wt, Gt, H as Kt, Ht as qt, I as Jt, It as Yt, J as Xt, Jt as Zt, Kt as Qt, L as $t, Lt as en, M as tn, Mt as nn, N as rn, Nt as an, O as on, Ot as sn, P as cn, Pt as ln, Q as un, Qt as dn, R as fn, Rt as pn, S as mn, St as hn, T as gn, Tt as _n, U as vn, Ut as yn, V as bn, Vt as xn, W as Sn, Wt as Cn, X as wn, Xt as Tn, Y as En, Yt as Dn, Z as On, Zt as kn, _ as An, _n as jn, _t as Mn, a as Nn, at as Pn, b as Fn, bt as In, cn as Ln, ct as Rn, d as zn, dn as Bn, dt as Vn, et as Hn, f as Un, fn as Wn, ft as Gn, gn as Kn, gt as qn, h as Jn, hn as Yn, ht as Xn, i as Zn, in as Qn, it as $n, j as er, jt as tr, k as nr, kt as rr, l as ir, lt as ar, mn as or, mt as sr, n as cr, nn as lr, nt as ur, o as dr, on as fr, ot as pr, pn as mr, pt as hr, qt as gr, rn as _r, rt as vr, s as yr, sn as br, st as xr, t as Sr, tn as Cr, tt as wr, u as Tr, un as Er, vn as Dr, vt as Or, w as kr, wt as Ar, x as jr, xt as Mr, y as Nr, yt as Pr, z as Fr, zt as Ir } from "./dropdown-menu-BuE2b8Yb.js";
14
- import { a as Lr, c as Rr, d as zr, i as Br, l as Vr, n as Hr, o as Ur, r as Wr, t as Gr, v as Kr, x as qr, y as Jr } from "./toDate-BvdkR0aH.js";
15
- import { n as Yr, t as Xr } from "./ErrorBoundary-CUdSBv06.js";
14
+ import { a as Lr, c as Rr, d as zr, i as Br, l as Vr, n as Hr, o as Ur, r as Wr, t as Gr, v as Kr, x as qr, y as Jr } from "./toDate-gyi35XS2.js";
15
+ import { n as Yr, t as Xr } from "./ErrorBoundary-ysC54Xwn.js";
16
16
  import { t as Zr } from "./clsx-CoeGtWvn.js";
17
17
  import { t as Qr } from "./react-dom-DUmH0GXv.js";
18
18
  import { t as $r } from "./jsx-runtime-3BD1kT0s.js";
@@ -30,7 +30,7 @@ import { n as sa, t as ca } from "./once-BtE-wKRL.js";
30
30
  import { o as la } from "./dist-BorMD-uX.js";
31
31
  import { a as ua, i as da, n as fa, o as pa, r as ma, t as ha } from "./dialog-Cc479ZEH.js";
32
32
  import { t as ga } from "./useAsyncData-BneN349z.js";
33
- import { a as _a, i as va, n as ya, r as ba, t as xa } from "./formats-Bv_5N2Ff.js";
33
+ import { a as _a, i as va, n as ya, r as ba, t as xa } from "./formats-DRHUWwSK.js";
34
34
  import { n as W, t as G } from "./objectWithoutPropertiesLoose-BRDcTsfB.js";
35
35
  import { D as Sa, n as Ca } from "./vega-loader.browser-CpbZAXub.js";
36
36
  import { a as wa, n as Ta, r as Ea, t as Da } from "./loader-BPdQhmlq.js";
@@ -2,7 +2,7 @@ import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
2
2
  import { t } from "./react-sHtZdjeP.js";
3
3
  import { t as n } from "./react-dom-DUmH0GXv.js";
4
4
  import { c as r, l as i, u as a } from "./data-grid-types-0PJ-9N5n.js";
5
- import { a as o, i as s, n as c, r as l } from "./glide-data-editor-DQ_cEi05.js";
5
+ import { a as o, i as s, n as c, r as l } from "./glide-data-editor-DLHbRbsj.js";
6
6
  //#region ../node_modules/.pnpm/@glideapps+glide-data-grid@6.0.4-alpha24_lodash@4.17.21_marked@15.0.12_react-dom@19.3.0_27cffe7f1bc30287d59ac27db3240c5b/node_modules/@glideapps/glide-data-grid/dist/esm/internal/data-grid-overlay-editor/data-grid-overlay-editor-style.js
7
7
  var u = /* @__PURE__ */ e(t(), 1), d = /* @__PURE__ */ e(n(), 1), f = /*#__PURE__*/ o("div")({
8
8
  name: "DataGridOverlayEditorStyle",
@@ -7,7 +7,7 @@ import { d as p, h as m, i as h, t as g } from "./tooltip-CtBZ5q8p.js";
7
7
  import { a as _, c as v, i as y, o as b, r as x, s as S, t as C } from "./useLifecycle-Dfq8UD-b.js";
8
8
  import { t as w } from "./check-BMKBBrdc.js";
9
9
  import { C as T, S as ee, a as te, b as ne, c as re, i as ie, n as ae, o as oe, r as se, s as ce, t as le } from "./select-DemoKT4G.js";
10
- import { C as ue, S as de, _ as fe, b as pe, g as me, h as E, o as he, t as ge, x as _e } from "./toDate-BvdkR0aH.js";
10
+ import { C as ue, S as de, _ as fe, b as pe, g as me, h as E, o as he, t as ge, x as _e } from "./toDate-gyi35XS2.js";
11
11
  import { t as ve } from "./react-dom-DUmH0GXv.js";
12
12
  import { t as ye } from "./jsx-runtime-3BD1kT0s.js";
13
13
  import { C as be, Ct as xe, Dt as Se, Et as D, L as O, N as Ce, P as we, St as Te, Tt as Ee, k as De, w as k, z as Oe } from "./use-restore-focus-CKjfFjLM.js";
@@ -3,14 +3,14 @@ import { h as t, t as n } from "./button-CvjkwdSk.js";
3
3
  import { t as r } from "./react-sHtZdjeP.js";
4
4
  import { t as i } from "./compiler-runtime-CldRdSsv.js";
5
5
  import { t as a } from "./copy-icon-BgUO8jsi.js";
6
- import { Dt as o, G as s, It as c, K as l, Rt as u, V as d, dn as f, h as p, i as m, n as h } from "./error-entries-j85LP88u.js";
6
+ import { Dt as o, G as s, It as c, K as l, Rt as u, V as d, dn as f, h as p, i as m, n as h } from "./error-entries-DgtRTNaG.js";
7
7
  import { b as g } from "./select-DemoKT4G.js";
8
- import { n as ee, t as te } from "./globals-D7vITxEX.js";
8
+ import { n as ee, t as te } from "./globals-D2g1BHQ0.js";
9
9
  import { t as _ } from "./jsx-runtime-3BD1kT0s.js";
10
10
  import { C as v, _ as ne, i as y } from "./useTheme-Bu5bBgrh.js";
11
11
  import { a as re, i as ie, n as ae, r as oe } from "./dialog-Cc479ZEH.js";
12
12
  import { t as se } from "./useAsyncData-BneN349z.js";
13
- import { t as ce } from "./code-visibility-BuxqA3v5.js";
13
+ import { t as ce } from "./code-visibility-CZmyRTO8.js";
14
14
  //#region src/components/ui/skeleton.tsx
15
15
  var b = /* @__PURE__ */ e(r(), 1), x = i(), S = _(), le = (e) => {
16
16
  let n = (0, x.c)(8), r, i;
@@ -2,7 +2,7 @@ import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
2
2
  import { h as t, r as n } from "./button-CvjkwdSk.js";
3
3
  import { t as r } from "./react-sHtZdjeP.js";
4
4
  import { t as i } from "./compiler-runtime-CldRdSsv.js";
5
- import { t as a } from "./toDate-BvdkR0aH.js";
5
+ import { t as a } from "./toDate-gyi35XS2.js";
6
6
  import { t as o } from "./jsx-runtime-3BD1kT0s.js";
7
7
  import { i as s } from "./loader-BPdQhmlq.js";
8
8
  //#region ../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isDate.js
@@ -6,7 +6,7 @@ import { i as s, n as c, r as l } from "./copy-icon-BgUO8jsi.js";
6
6
  import { C as u, c as d, i as f, n as p, s as m, t as h, x as g } from "./select-DemoKT4G.js";
7
7
  import { d as _, h as v, i as y, l as b, n as x, o as S, s as C, t as w, u as T } from "./dropdown-menu-BuE2b8Yb.js";
8
8
  import { c as E, d as D, l as O, n as k, o as A, s as ee, t as j, u as te } from "./glide-utils-pisbYVjH.js";
9
- import { n as ne, t as re } from "./ErrorBoundary-CUdSBv06.js";
9
+ import { n as ne, t as re } from "./ErrorBoundary-ysC54Xwn.js";
10
10
  import { t as M } from "./react-dom-DUmH0GXv.js";
11
11
  import { t as N } from "./jsx-runtime-3BD1kT0s.js";
12
12
  import { t as ie } from "./label-DoysmLMW.js";
@@ -7062,7 +7062,7 @@ function rs(e, t, n, r, i) {
7062
7062
  }
7063
7063
  //#endregion
7064
7064
  //#region ../node_modules/.pnpm/@glideapps+glide-data-grid@6.0.4-alpha24_lodash@4.17.21_marked@15.0.12_react-dom@19.3.0_27cffe7f1bc30287d59ac27db3240c5b/node_modules/@glideapps/glide-data-grid/dist/esm/data-editor/data-editor.js
7065
- var is = /* @__PURE__ */ e(_r(), 1), as = /* @__PURE__ */ e(xr(), 1), os = K.lazy(async () => await import("./data-grid-overlay-editor-qnbf5J94.js")), ss = 0;
7065
+ var is = /* @__PURE__ */ e(_r(), 1), as = /* @__PURE__ */ e(xr(), 1), os = K.lazy(async () => await import("./data-grid-overlay-editor-B141KnZO.js")), ss = 0;
7066
7066
  function cs(e) {
7067
7067
  return (0, is.default)((0, as.default)((0, as.default)(e).filter((e) => e.span !== void 0).map((e) => (0, Za.default)((e.span?.[0] ?? 0) + 1, (e.span?.[1] ?? 0) + 1))));
7068
7068
  }
@@ -9293,7 +9293,7 @@ function Vs(e, t, n, r, i) {
9293
9293
  }
9294
9294
  //#endregion
9295
9295
  //#region ../node_modules/.pnpm/@glideapps+glide-data-grid@6.0.4-alpha24_lodash@4.17.21_marked@15.0.12_react-dom@19.3.0_27cffe7f1bc30287d59ac27db3240c5b/node_modules/@glideapps/glide-data-grid/dist/esm/cells/number-cell.js
9296
- var Hs = K.lazy(async () => await import("./number-overlay-editor-DJHB-CGK.js")), Us = {
9296
+ var Hs = K.lazy(async () => await import("./number-overlay-editor-DHqP6YVn.js")), Us = {
9297
9297
  getAccessibilityString: (e) => e.data?.toString() ?? "",
9298
9298
  kind: W.Number,
9299
9299
  needsHover: (e) => e.hoverEffect === !0,
@@ -1,6 +1,6 @@
1
1
  import { h as e } from "./tooltip-CtBZ5q8p.js";
2
2
  import { _ as t } from "./useTheme-Bu5bBgrh.js";
3
- import { r as n } from "./code-visibility-BuxqA3v5.js";
3
+ import { r as n } from "./code-visibility-CZmyRTO8.js";
4
4
  var r = e("triangle-alert", [
5
5
  ["path", {
6
6
  d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
@@ -5,10 +5,10 @@ import { t as l } from "./compiler-runtime-CldRdSsv.js";
5
5
  import { n as u, t as d } from "./copy-icon-BgUO8jsi.js";
6
6
  import { a as f, c as p, l as m, s as h, t as g } from "./chunk-YOKDWASO-DKplTrBY.js";
7
7
  import { c as _, h as v, l as y, s as b, t as x, u as ee } from "./tooltip-CtBZ5q8p.js";
8
- import { A as te, Ct as ne, Et as re, H as ie, M as ae, P as oe, Pt as se, Qt as ce, St as le, Tt as ue, U as de, Y as fe, a as pe, bt as me, d as he, it as ge, pt as _e, tn as ve, tt as ye, xt as be, y as xe, yt as Se } from "./error-entries-j85LP88u.js";
8
+ import { A as te, Ct as ne, Et as re, H as ie, M as ae, P as oe, Pt as se, Qt as ce, St as le, Tt as ue, U as de, Y as fe, a as pe, bt as me, d as he, it as ge, pt as _e, tn as ve, tt as ye, xt as be, y as xe, yt as Se } from "./error-entries-DgtRTNaG.js";
9
9
  import { M as Ce, O as we, k as Te } from "./select-DemoKT4G.js";
10
10
  import { dt as Ee, q as De } from "./dropdown-menu-BuE2b8Yb.js";
11
- import { m as Oe, y as ke } from "./toDate-BvdkR0aH.js";
11
+ import { m as Oe, y as ke } from "./toDate-gyi35XS2.js";
12
12
  import { t as Ae } from "./jsx-runtime-3BD1kT0s.js";
13
13
  import { $ as je, Ct as S, Dt as C, Et as Me, Q as Ne, St as Pe, Tt as w, Y as Fe, dt as Ie, ft as Le, gt as Re, ht as ze, mt as Be, tt as Ve, vt as He, wt as Ue, xt as We } from "./use-restore-focus-CKjfFjLM.js";
14
14
  import { A as Ge, C as T, E as Ke, _ as E, c as qe, n as Je } from "./useTheme-Bu5bBgrh.js";
package/dist/main.js CHANGED
@@ -3,20 +3,20 @@ import { _ as a, c as o, g as s, h as c, i as l, l as u, m as d, n as f, o as p,
3
3
  import { t as v } from "./react-sHtZdjeP.js";
4
4
  import { t as y } from "./compiler-runtime-CldRdSsv.js";
5
5
  import { i as b, n as x, r as S, t as C } from "./copy-icon-BgUO8jsi.js";
6
- import { C as w, F as T, G as E, I as D, J as O, K as k, L as A, P as j, R as M, X as N, Z as P, _ as F, a as I, b as L, g as R, i as z, j as B, k as ee, n as te, o as ne, q as re, v as ie, y as ae } from "./html-to-image-B5H-xKRH.js";
6
+ import { C as w, F as T, G as E, I as D, J as O, K as k, L as A, P as j, R as M, X as N, Z as P, _ as F, a as I, b as L, g as R, i as z, j as B, k as ee, n as te, o as ne, q as re, v as ie, y as ae } from "./html-to-image--r0l9wUy.js";
7
7
  import { a as oe, d as se, f as ce, h as V, i as le, n as ue, o as de, r as fe, t as pe } from "./tooltip-CtBZ5q8p.js";
8
- import { $t as me, At as he, B as ge, Bt as _e, D as ve, Dt as ye, E as be, Et as xe, Ft as Se, Gt as Ce, J as we, Jt as Te, Kt as Ee, M as De, Mt as Oe, N as ke, O as Ae, Ot as je, Q as Me, R as Ne, S as Pe, Ut as Fe, V as Ie, Vt as Le, W as Re, Y as ze, Yt as Be, Z as Ve, _ as He, b as Ue, bt as We, cn as Ge, dt as Ke, en as qe, f as Je, fn as Ye, ft as Xe, g as Ze, gn as Qe, gt as $e, h as et, hn as tt, ht as nt, in as rt, j as it, jt as at, k as ot, kt as st, ln as ct, m as lt, nn as ut, nt as dt, o as ft, p as pt, pn as mt, q as ht, qt as gt, rt as _t, s as vt, sn as yt, st as bt, tn as xt, u as St, un as Ct, ut as wt, v as Tt, wt as Et, y as Dt, z as Ot, zt as kt } from "./error-entries-j85LP88u.js";
8
+ import { $t as me, At as he, B as ge, Bt as _e, D as ve, Dt as ye, E as be, Et as xe, Ft as Se, Gt as Ce, J as we, Jt as Te, Kt as Ee, M as De, Mt as Oe, N as ke, O as Ae, Ot as je, Q as Me, R as Ne, S as Pe, Ut as Fe, V as Ie, Vt as Le, W as Re, Y as ze, Yt as Be, Z as Ve, _ as He, b as Ue, bt as We, cn as Ge, dt as Ke, en as qe, f as Je, fn as Ye, ft as Xe, g as Ze, gn as Qe, gt as $e, h as et, hn as tt, ht as nt, in as rt, j as it, jt as at, k as ot, kt as st, ln as ct, m as lt, nn as ut, nt as dt, o as ft, p as pt, pn as mt, q as ht, qt as gt, rt as _t, s as vt, sn as yt, st as bt, tn as xt, u as St, un as Ct, ut as wt, v as Tt, wt as Et, y as Dt, z as Ot, zt as kt } from "./error-entries-DgtRTNaG.js";
9
9
  import { D as At, E as jt, O as Mt, S as Nt, T as Pt, _ as Ft, a as It, c as Lt, d as Rt, f as zt, g as Bt, h as Vt, i as Ht, l as Ut, m as Wt, n as Gt, o as Kt, p as qt, r as Jt, s as Yt, t as Xt, u as Zt, v as Qt, w as $t, x as en, y as tn } from "./spec-D_u2ipzF.js";
10
- import { $t as nn, A as rn, At as an, B as on, Bt as sn, C as cn, Ct as ln, D as un, Dt as dn, E as fn, Et as pn, F as mn, Ft as hn, G as gn, Gt as _n, H as vn, Ht as yn, I as bn, It as xn, J as Sn, Jt as Cn, K as wn, Kt as Tn, L as En, Lt as Dn, M as On, Mt as kn, N as An, Nt as jn, O as Mn, Ot as Nn, P as Pn, Pt as Fn, Qt as In, R as Ln, Rt as Rn, S as zn, St as Bn, T as Vn, Tt as Hn, U as Un, Ut as Wn, V as Gn, Vt as Kn, W as qn, Wt as Jn, X as Yn, Xt as Xn, Y as Zn, Yt as Qn, Zt as $n, _ as er, _t as tr, an as nr, at as rr, b as ir, c as ar, cn as or, ct as sr, d as cr, dn as lr, dt as ur, en as dr, et as fr, f as pr, fn as mr, ft as hr, g as gr, gt as _r, h as vr, hn as yr, ht as br, in as xr, it as Sr, j as Cr, jt as wr, k as Tr, kt as Er, ln as Dr, lt as Or, m as kr, mn as Ar, mt as jr, nn as Mr, nt as Nr, ot as Pr, p as Fr, pn as Ir, pt as Lr, q as Rr, qt as zr, r as Br, rn as Vr, rt as Hr, sn as Ur, st as Wr, t as Gr, tn as Kr, tt as qr, u as Jr, un as Yr, ut as Xr, v as Zr, vt as Qr, w as $r, wt as ei, x as ti, y as ni, yt as ri, z as ii, zt as ai } from "./common-xtZHxsM2.js";
10
+ import { $t as nn, A as rn, At as an, B as on, Bt as sn, C as cn, Ct as ln, D as un, Dt as dn, E as fn, Et as pn, F as mn, Ft as hn, G as gn, Gt as _n, H as vn, Ht as yn, I as bn, It as xn, J as Sn, Jt as Cn, K as wn, Kt as Tn, L as En, Lt as Dn, M as On, Mt as kn, N as An, Nt as jn, O as Mn, Ot as Nn, P as Pn, Pt as Fn, Qt as In, R as Ln, Rt as Rn, S as zn, St as Bn, T as Vn, Tt as Hn, U as Un, Ut as Wn, V as Gn, Vt as Kn, W as qn, Wt as Jn, X as Yn, Xt as Xn, Y as Zn, Yt as Qn, Zt as $n, _ as er, _t as tr, an as nr, at as rr, b as ir, c as ar, cn as or, ct as sr, d as cr, dn as lr, dt as ur, en as dr, et as fr, f as pr, fn as mr, ft as hr, g as gr, gt as _r, h as vr, hn as yr, ht as br, in as xr, it as Sr, j as Cr, jt as wr, k as Tr, kt as Er, ln as Dr, lt as Or, m as kr, mn as Ar, mt as jr, nn as Mr, nt as Nr, ot as Pr, p as Fr, pn as Ir, pt as Lr, q as Rr, qt as zr, r as Br, rn as Vr, rt as Hr, sn as Ur, st as Wr, t as Gr, tn as Kr, tt as qr, u as Jr, un as Yr, ut as Xr, v as Zr, vt as Qr, w as $r, wt as ei, x as ti, y as ni, yt as ri, z as ii, zt as ai } from "./common-CCrzSQnL.js";
11
11
  import { c as oi, i as si, n as ci, o as li, t as ui } from "./useLifecycle-Dfq8UD-b.js";
12
12
  import { t as di } from "./check-BMKBBrdc.js";
13
13
  import { A as fi, C as pi, D as mi, E as hi, M as gi, O as _i, S as vi, T as yi, a as bi, b as xi, c as Si, i as Ci, k as wi, l as Ti, n as Ei, o as Di, r as Oi, s as ki, t as Ai, w as ji, x as Mi } from "./select-DemoKT4G.js";
14
14
  import { $ as Ni, C as Pi, Et as Fi, J as Ii, K as Li, R as Ri, S as zi, U as Bi, Y as Vi, _ as Hi, _n as Ui, a as Wi, c as Gi, f as Ki, g as qi, h as Ji, i as Yi, kt as Xi, m as Zi, mt as Qi, n as $i, p as ea, q as ta, r as na, s as ra, t as ia, ut as aa, v as oa, vn as sa, x as ca, z as la } from "./dropdown-menu-BuE2b8Yb.js";
15
- import { C as ua, _ as da, a as fa, b as pa, c as ma, f as ha, h as ga, m as _a, p as va, s as ya, u as ba, x as xa, y as Sa } from "./toDate-BvdkR0aH.js";
16
- import { a as Ca, c as wa, d as Ta, f as Ea, i as Da, l as Oa, n as ka, o as Aa, r as ja, s as Ma, t as Na } from "./process-output-DGzGHArA.js";
15
+ import { C as ua, _ as da, a as fa, b as pa, c as ma, f as ha, h as ga, m as _a, p as va, s as ya, u as ba, x as xa, y as Sa } from "./toDate-gyi35XS2.js";
16
+ import { a as Ca, c as wa, d as Ta, f as Ea, i as Da, l as Oa, n as ka, o as Aa, r as ja, s as Ma, t as Na } from "./process-output-CuIlhYwn.js";
17
17
  import { a as Pa, c as Fa, d as Ia, i as La, l as Ra, r as za, u as Ba } from "./glide-utils-pisbYVjH.js";
18
- import { n as Va, t as Ha } from "./ErrorBoundary-CUdSBv06.js";
19
- import { n as Ua, t as Wa } from "./globals-D7vITxEX.js";
18
+ import { n as Va, t as Ha } from "./ErrorBoundary-ysC54Xwn.js";
19
+ import { n as Ua, t as Wa } from "./globals-D2g1BHQ0.js";
20
20
  import { t as Ga } from "./react-dom-DUmH0GXv.js";
21
21
  import { t as Ka } from "./jsx-runtime-3BD1kT0s.js";
22
22
  import { A as qa, B as Ja, C as H, Ct as Ya, Dt as Xa, Et as Za, F as Qa, G as $a, H as eo, I as to, J as no, K as ro, L as U, N as W, O as io, Ot as ao, P as G, Q as oo, R as so, S as co, St as lo, T as uo, Tt as fo, W as po, _ as mo, a as ho, b as go, bt as _o, c as vo, d as yo, et as bo, f as xo, g as So, h as Co, i as wo, j as To, k as Eo, m as Do, n as Oo, o as ko, p as Ao, pt as jo, r as Mo, s as No, tt as Po, u as Fo, v as Io, vt as Lo, w as K, wt as Ro, x as zo, xt as Bo, y as Vo, z as Ho } from "./use-restore-focus-CKjfFjLM.js";
@@ -36,10 +36,10 @@ import { n as Os } from "./dist-CrSP_H1M.js";
36
36
  import { i as ks } from "./dist-BorMD-uX.js";
37
37
  import { n as As, t as js } from "./esm-AMFssoNp.js";
38
38
  import { t as Ms } from "./useAsyncData-BneN349z.js";
39
- import { i as Ns, n as Ps, r as Fs } from "./formats-Bv_5N2Ff.js";
39
+ import { i as Ns, n as Ps, r as Fs } from "./formats-DRHUWwSK.js";
40
40
  import { D as Is, O as Ls } from "./vega-loader.browser-CpbZAXub.js";
41
41
  import { a as Rs, n as zs } from "./loader-BPdQhmlq.js";
42
- import { c as Bs, d as Vs, i as Hs, l as Us, o as Ws, s as Gs, t as Ks, u as qs } from "./code-visibility-BuxqA3v5.js";
42
+ import { c as Bs, d as Vs, i as Hs, l as Us, o as Ws, s as Gs, t as Ks, u as qs } from "./code-visibility-CZmyRTO8.js";
43
43
  import { t as Js } from "./useDeepCompareMemoize-Z_7R8wTt.js";
44
44
  import { t as Ys } from "./esm-D2gTsXEV.js";
45
45
  //#region ../node_modules/.pnpm/iconify-icon@2.3.0/node_modules/iconify-icon/dist/iconify-icon.mjs
@@ -10067,7 +10067,7 @@ var LS = (e) => {
10067
10067
  output: t
10068
10068
  };
10069
10069
  } };
10070
- } }, US = J.lazy(() => import("./chat-ui-BzjAsTFN.js").then((e) => ({ default: e.Chatbot }))), WS = H(G({
10070
+ } }, US = J.lazy(() => import("./chat-ui-0udY4hpv.js").then((e) => ({ default: e.Chatbot }))), WS = H(G({
10071
10071
  id: U(),
10072
10072
  role: Vo([
10073
10073
  "system",
@@ -10533,7 +10533,7 @@ function VC(e, t) {
10533
10533
  }
10534
10534
  //#endregion
10535
10535
  //#region src/plugins/impl/DataEditorPlugin.tsx
10536
- var HC = J.lazy(() => import("./glide-data-editor-DQ_cEi05.js").then((e) => e.t)), UC = wS("marimo-data-editor", { cssStyles: [qS] }).withData(G({
10536
+ var HC = J.lazy(() => import("./glide-data-editor-DLHbRbsj.js").then((e) => e.t)), UC = wS("marimo-data-editor", { cssStyles: [qS] }).withData(G({
10537
10537
  initialValue: G({ edits: H(G({
10538
10538
  rowIdx: W(),
10539
10539
  columnId: U(),
@@ -21832,7 +21832,7 @@ function $j(e, t) {
21832
21832
  }
21833
21833
  //#endregion
21834
21834
  //#region src/plugins/impl/vega/VegaPlugin.tsx
21835
- var eM = J.lazy(() => import("./vega-component-DPd52jvr.js")), tM = class {
21835
+ var eM = J.lazy(() => import("./vega-component-1lFfDE_8.js")), tM = class {
21836
21836
  tagName = "marimo-vega";
21837
21837
  validator = G({
21838
21838
  spec: G({}).passthrough().transform((e) => e),
@@ -30107,7 +30107,7 @@ function OR(e) {
30107
30107
  }
30108
30108
  //#endregion
30109
30109
  //#region src/components/editor/renderers/slides-layout/slides-layout.tsx
30110
- var kR = J.lazy(() => import("./reveal-component-BxYUpAPg.js")), AR = (e) => {
30110
+ var kR = J.lazy(() => import("./reveal-component-DYHhtPqq.js")), AR = (e) => {
30111
30111
  let t = (0, X.c)(33), { layout: n, setLayout: r, cells: i, mode: a } = e, o = ns(da), s = a === "read" || o, c = ns(He) > 1, [l, u] = (0, J.useState)(null), d;
30112
30112
  t[0] !== i || t[1] !== n ? (d = EP(i, n), t[0] = i, t[1] = n, t[2] = d) : d = t[2];
30113
30113
  let { slideCells: f, skippedIds: p, noOutputIds: m, slideTypes: h, startCellIndex: g } = d, _;
@@ -1,6 +1,6 @@
1
1
  import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
2
2
  import { t } from "./react-sHtZdjeP.js";
3
- import { a as n } from "./glide-data-editor-DQ_cEi05.js";
3
+ import { a as n } from "./glide-data-editor-DLHbRbsj.js";
4
4
  //#region ../node_modules/.pnpm/@glideapps+glide-data-grid@6.0.4-alpha24_lodash@4.17.21_marked@15.0.12_react-dom@19.3.0_27cffe7f1bc30287d59ac27db3240c5b/node_modules/@glideapps/glide-data-grid/dist/esm/internal/data-grid-overlay-editor/private/number-overlay-editor-style.js
5
5
  var r = /* @__PURE__ */ e(t()), i = /*#__PURE__*/ n("div")({
6
6
  name: "NumberOverlayEditorStyle",
@@ -1,6 +1,6 @@
1
- import { O as e } from "./html-to-image-B5H-xKRH.js";
1
+ import { O as e } from "./html-to-image--r0l9wUy.js";
2
2
  import { h as t } from "./tooltip-CtBZ5q8p.js";
3
- import { C as n, w as r } from "./error-entries-j85LP88u.js";
3
+ import { C as n, w as r } from "./error-entries-DgtRTNaG.js";
4
4
  import { b as i } from "./select-DemoKT4G.js";
5
5
  import { n as a } from "./semaphore-89jsoHtS.js";
6
6
  var o = t("file", [["path", {
@@ -3,15 +3,15 @@ import { c as t, g as n, h as r, m as i, t as a } from "./button-CvjkwdSk.js";
3
3
  import { t as o } from "./react-sHtZdjeP.js";
4
4
  import { t as s } from "./compiler-runtime-CldRdSsv.js";
5
5
  import { h as c, t as l } from "./tooltip-CtBZ5q8p.js";
6
- import { O as u } from "./error-entries-j85LP88u.js";
7
- import { $ as d, Q as f, Z as p, an as m, i as h, l as g, ln as _, n as v, on as y, r as b, t as x, u as S } from "./common-xtZHxsM2.js";
6
+ import { O as u } from "./error-entries-DgtRTNaG.js";
7
+ import { $ as d, Q as f, Z as p, an as m, i as h, l as g, ln as _, n as v, on as y, r as b, t as x, u as S } from "./common-CCrzSQnL.js";
8
8
  import { M as C } from "./select-DemoKT4G.js";
9
9
  import { q as ee } from "./dropdown-menu-BuE2b8Yb.js";
10
- import { _ as w } from "./toDate-BvdkR0aH.js";
10
+ import { _ as w } from "./toDate-gyi35XS2.js";
11
11
  import { t as T } from "./jsx-runtime-3BD1kT0s.js";
12
12
  import { X as E } from "./use-restore-focus-CKjfFjLM.js";
13
13
  import { A as D, C as O, b as k } from "./useTheme-Bu5bBgrh.js";
14
- import { a as A, n as te, t as ne } from "./code-visibility-BuxqA3v5.js";
14
+ import { a as A, n as te, t as ne } from "./code-visibility-CZmyRTO8.js";
15
15
  /* empty css */
16
16
  var j = c("sticky-note", [["path", {
17
17
  d: "M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",
@@ -214,7 +214,7 @@ var ie = l({
214
214
  runtime_id: g([I, m()]).describe("The runtime that produced this execution. Live when it equals the current runtime's id. Null when the producer is unknown."),
215
215
  caused_by: g([R, m()]).describe("The execution in the same run that caused this one. Null for executions requested directly."),
216
216
  cell_id: g([B, m()]).describe("The cell this execution belongs to. Null for scratch code, a cell outside the document."),
217
- code: c().nullable().describe("The submitted code for an execution with no cell. Null for a cell's execution, since the cell holds its code."),
217
+ code: c().nullable().describe("The submitted code for an execution with no cell. Null for a cell's execution; its source is available through the cell when the host exposes it."),
218
218
  code_hash: q.describe("The `code_hash` of the code that was evaluated, computed as a cell's is."),
219
219
  depends_on: s(c(), g([U, m()])).describe("The variables the execution used, by name, each at the revision the runtime holds its result valid against. Null for a name no retained cell execution had bound. Empty while queued, stamped as the execution ends, and final from then on."),
220
220
  status: V,
@@ -236,7 +236,7 @@ var ie = l({
236
236
  }).describe("A value an execution showed as a side effect, such as a figure\nfrom `plt.show()`. A producer replaces one by sending it again\nwith the same id, which is how a progress bar updates in place.\n"), Te = l({
237
237
  column: o().nullable().describe("The column the cell sits in, for multi-column layouts. Null in a single column."),
238
238
  disabled: p().describe("Whether the cell is kept from running."),
239
- hide_code: p().describe("Whether clients hide the code by default."),
239
+ hide_code: p().describe("Whether clients hide the code by default. This is a presentation preference; source availability is represented by `Cell.code`."),
240
240
  expand_output: p().describe("Whether clients show the full output rather than a scrolled box.")
241
241
  }).describe("How a cell is laid out and whether it runs. Every field is always present, so a cell's etag is well defined."), Ee = l({
242
242
  defs: a(c()).describe("Names this cell defines."),
@@ -249,11 +249,11 @@ var ie = l({
249
249
  }).describe("What a document's cells imply, computed together over one\nrevision of the document so that cross-cell errors agree. One\nper notebook, and removed with it. It follows the document it\ndescribes, and `document_etag` says which revision that is.\n"), J = l({
250
250
  id: B,
251
251
  notebook_id: F,
252
- code: c().describe("The cell's source code, with newline line endings. A host normalizes other line endings when it loads a file."),
252
+ code: c().nullable().describe("The cell's source code, with newline line endings, or null when the host does not expose source to this client. An empty string is an empty cell. A host normalizes other line endings when it loads a file. Source availability does not grant editing permission; see the notebook's operations."),
253
253
  name: c().describe("The cell's name. `_` for an anonymous cell; otherwise a Python identifier, unique within the notebook."),
254
254
  config: Te,
255
255
  etag: q.describe("Identifies code, name, and config together, and is the precondition for editing the cell. Its text is `code_hash`, `name`, and the config values `column`, `disabled`, `hide_code`, and `expand_output` in that order, each written as a JSON scalar such as `null`, `0`, or `true`."),
256
- code_hash: q.describe("Identifies the code alone. Its text is `code`. Unchanged by renaming the cell or editing its config. Compare with an execution's `code_hash` to tell whether a result came from the current code."),
256
+ code_hash: q.describe("Identifies the code alone. Its text is the actual source, even when `code` is null. Withholding source does not change this hash, the cell or document etags, or their versions. Unchanged by renaming the cell or editing its config. Compare with an execution's `code_hash` to tell whether a result came from the current code without needing the source."),
257
257
  version: o().min(1).describe("The document version at which the cell was created or last changed.")
258
258
  }).describe("A unit of code and configuration in the document. A cell event\nfires when its code, name, or config changes. Markdown and SQL\ncells are code that calls `mo.md` or `mo.sql`; a client chooses\nthe editor to show.\n"), Y = l({
259
259
  notebook_id: F.describe("The notebook this document belongs to."),
@@ -497,7 +497,7 @@ var bt = l({
497
497
  code: c().describe("The cell's source code."),
498
498
  name: c().default("_").describe("The cell's name. `_` for an anonymous cell."),
499
499
  config: bt.optional()
500
- }).describe("A cell as a client writes it. The host derives the etags and the analysis."), St = l({
500
+ }).describe("A cell as a client writes it. Code must be a string, even when the host withholds source in cell records. Null is not an edit or a request to preserve existing source. The host derives the etags and the analysis."), St = l({
501
501
  kind: h(["put_cell"]),
502
502
  base_etag: c().nullable().describe("The cell's etag as last read, `*` to skip the check, or null to create the cell. Null when the cell exists, or an etag when it does not, is a `conflict`."),
503
503
  cell: xt,
@@ -3,7 +3,7 @@ import { g as t, h as n, m as r, o as i } from "./button-CvjkwdSk.js";
3
3
  import { t as a } from "./react-sHtZdjeP.js";
4
4
  import { t as o } from "./compiler-runtime-CldRdSsv.js";
5
5
  import { t as s } from "./tooltip-CtBZ5q8p.js";
6
- import { C as c, a as l } from "./toDate-BvdkR0aH.js";
6
+ import { C as c, a as l } from "./toDate-gyi35XS2.js";
7
7
  import { t as u } from "./jsx-runtime-3BD1kT0s.js";
8
8
  import { n as d } from "./error-banner-CFPHFw4h.js";
9
9
  import { t as f } from "./debounce-C3jyATpc.js";
@@ -11,7 +11,7 @@ import { A as p, n as ee } from "./useTheme-Bu5bBgrh.js";
11
11
  import { c as m } from "./arrays-CN1djC4k.js";
12
12
  import { t as te } from "./objects-CzUgoMIF.js";
13
13
  import { t as h } from "./useAsyncData-BneN349z.js";
14
- import { a as ne, i as re, n as ie, t as g } from "./formats-Bv_5N2Ff.js";
14
+ import { a as ne, i as re, n as ie, t as g } from "./formats-DRHUWwSK.js";
15
15
  import { D as ae, n as oe } from "./vega-loader.browser-CpbZAXub.js";
16
16
  import { t as se } from "./react-vega-BDpbvBCb.js";
17
17
  import { a as ce, n as _ } from "./loader-BPdQhmlq.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/islands",
3
- "version": "0.25.3-dev28",
3
+ "version": "0.25.3-dev29",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -19,6 +19,7 @@ function readFixture(name: string): unknown {
19
19
  const records = {
20
20
  "record.json": Protocol.HostRecord,
21
21
  "cell.json": Protocol.Cell,
22
+ "cell-withheld.json": Protocol.Cell,
22
23
  "analysis.json": Protocol.Analysis,
23
24
  "diagnostic.json": Protocol.Error,
24
25
  "edit.json": Protocol.EditRequest,
@@ -111,6 +112,20 @@ describe("host protocol bindings", () => {
111
112
  expect(Protocol.Document.parse(configured)).toEqual(configured);
112
113
  });
113
114
 
115
+ it("requires source in edits while allowing withheld source in records", () => {
116
+ expectTypeOf<Protocol.Cell["code"]>().toEqualTypeOf<string | null>();
117
+ expectTypeOf<Protocol.CellInput["code"]>().toEqualTypeOf<string>();
118
+ const cell = Protocol.Cell.parse(readFixture("cell.json"));
119
+ const { code, ...missing } = cell;
120
+ expect(Protocol.Cell.safeParse(missing).success).toBe(false);
121
+ expect(Protocol.Cell.parse({ ...cell, code: "" }).code).toBe("");
122
+ for (const input of [{ id: cell.id }, { id: cell.id, code: null }]) {
123
+ expect(Protocol.CellInput.safeParse(input).success).toBe(false);
124
+ }
125
+ expect(Protocol.CellInput.parse({ id: cell.id, code }).code).toBe(code);
126
+ expect(Protocol.CellInput.parse({ id: cell.id, code: "" }).code).toBe("");
127
+ });
128
+
114
129
  it("applies the defaults declared for cell inputs", () => {
115
130
  expect(
116
131
  Protocol.CellInput.parse({ id: "c3", code: "x = 1", config: {} }),
@@ -618,7 +618,7 @@ export const Execution = zod
618
618
  .string()
619
619
  .nullable()
620
620
  .describe(
621
- "The submitted code for an execution with no cell. Null for a cell's execution, since the cell holds its code.",
621
+ "The submitted code for an execution with no cell. Null for a cell's execution; its source is available through the cell when the host exposes it.",
622
622
  ),
623
623
  code_hash: Etag.describe(
624
624
  "The `code_hash` of the code that was evaluated, computed as a cell's is.",
@@ -715,7 +715,9 @@ export const CellConfig = zod
715
715
  disabled: zod.boolean().describe("Whether the cell is kept from running."),
716
716
  hide_code: zod
717
717
  .boolean()
718
- .describe("Whether clients hide the code by default."),
718
+ .describe(
719
+ "Whether clients hide the code by default. This is a presentation preference; source availability is represented by `Cell.code`.",
720
+ ),
719
721
  expand_output: zod
720
722
  .boolean()
721
723
  .describe(
@@ -771,8 +773,9 @@ export const Cell = zod
771
773
  notebook_id: NotebookId,
772
774
  code: zod
773
775
  .string()
776
+ .nullable()
774
777
  .describe(
775
- "The cell's source code, with newline line endings. A host normalizes other line endings when it loads a file.",
778
+ "The cell's source code, with newline line endings, or null when the host does not expose source to this client. An empty string is an empty cell. A host normalizes other line endings when it loads a file. Source availability does not grant editing permission; see the notebook's operations.",
776
779
  ),
777
780
  name: zod
778
781
  .string()
@@ -784,7 +787,7 @@ export const Cell = zod
784
787
  "Identifies code, name, and config together, and is the precondition for editing the cell. Its text is `code_hash`, `name`, and the config values `column`, `disabled`, `hide_code`, and `expand_output` in that order, each written as a JSON scalar such as `null`, `0`, or `true`.",
785
788
  ),
786
789
  code_hash: Etag.describe(
787
- "Identifies the code alone. Its text is `code`. Unchanged by renaming the cell or editing its config. Compare with an execution's `code_hash` to tell whether a result came from the current code.",
790
+ "Identifies the code alone. Its text is the actual source, even when `code` is null. Withholding source does not change this hash, the cell or document etags, or their versions. Unchanged by renaming the cell or editing its config. Compare with an execution's `code_hash` to tell whether a result came from the current code without needing the source.",
788
791
  ),
789
792
  version: zod
790
793
  .int()
@@ -1800,7 +1803,7 @@ export const CellInput = zod
1800
1803
  config: CellConfigInput.optional(),
1801
1804
  })
1802
1805
  .describe(
1803
- "A cell as a client writes it. The host derives the etags and the analysis.",
1806
+ "A cell as a client writes it. Code must be a string, even when the host withholds source in cell records. Null is not an edit or a request to preserve existing source. The host derives the etags and the analysis.",
1804
1807
  );
1805
1808
 
1806
1809
  export type CellInput = zod.input<typeof CellInput>;