@marimo-team/islands 0.25.3-dev94 → 0.25.3-dev96

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 (43) hide show
  1. package/dist/{ErrorBoundary-4VHhuyZ5.js → ErrorBoundary-DJjRNeOW.js} +1 -1
  2. package/dist/{chat-ui-D0jT6WV3.js → chat-ui-ChmqaLQA.js} +4 -3
  3. package/dist/{code-visibility-C791KvaY.js → code-visibility-BqP2qZal.js} +2 -2
  4. package/dist/{common-CLwhauF1.js → common-Dwl0aTge.js} +27 -26
  5. package/dist/{data-grid-overlay-editor-BjOR7Wwc.js → data-grid-overlay-editor-DadR_9Qe.js} +1 -1
  6. package/dist/{error-entries-BZiemZfD.js → error-entries-Cq0m-sO5.js} +1 -0
  7. package/dist/{feedback-button--whPjjUB.js → feedback-button-PDt2V0S1.js} +3 -3
  8. package/dist/{glide-data-editor-DKzHt0kS.js → glide-data-editor-D2mdZ_2N.js} +3 -3
  9. package/dist/{globals-BwLJnxj2.js → globals-B8YEfM4c.js} +1 -1
  10. package/dist/{html-to-image-DBOTlHF9.js → html-to-image-D00_TX1M.js} +1 -1
  11. package/dist/main.js +38 -28
  12. package/dist/{number-overlay-editor-Df9kpoTU.js → number-overlay-editor-DdzFRhUf.js} +1 -1
  13. package/dist/{process-output-BKLVbFnU.js → process-output-ByXe3l6a.js} +2 -2
  14. package/dist/{reveal-component-Di7acYGi.js → reveal-component-ClNTWzdK.js} +3 -3
  15. package/package.json +1 -1
  16. package/src/components/app-config/ai-config.tsx +1 -0
  17. package/src/components/chat/chat-components.tsx +2 -0
  18. package/src/components/chat/chat-panel.tsx +6 -1
  19. package/src/components/data-table/__tests__/column-explorer.test.tsx +27 -1
  20. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
  21. package/src/components/datasources/__tests__/column-actions.test.tsx +97 -0
  22. package/src/components/datasources/__tests__/column-preview.test.tsx +63 -2
  23. package/src/components/datasources/column-preview.tsx +8 -2
  24. package/src/components/datasources/datasources.tsx +12 -14
  25. package/src/components/debugger/debugger-code.tsx +5 -0
  26. package/src/components/dependency-graph/panels.tsx +2 -1
  27. package/src/components/editor/ai/ai-completion-editor.tsx +1 -0
  28. package/src/components/editor/alerts/startup-logs-alert.tsx +1 -0
  29. package/src/components/editor/cell/DeleteButton.tsx +1 -0
  30. package/src/components/editor/chrome/panels/cache-panel.tsx +1 -0
  31. package/src/components/editor/chrome/wrapper/__tests__/pending-ai-cells.test.tsx +58 -1
  32. package/src/components/editor/chrome/wrapper/pending-ai-cells.tsx +12 -2
  33. package/src/components/editor/notebook-banner.tsx +1 -0
  34. package/src/components/editor/package-alert.tsx +2 -0
  35. package/src/components/editor/renderers/vertical-layout/sidebar/toggle.tsx +7 -1
  36. package/src/components/mcp/mcp-status-indicator.tsx +1 -1
  37. package/src/components/pages/__tests__/home-page.test.tsx +116 -0
  38. package/src/components/pages/home-page.tsx +24 -3
  39. package/src/components/slides/slide-form.tsx +1 -0
  40. package/src/core/codemirror/language/panel/panel.tsx +1 -0
  41. package/src/plugins/impl/RefreshPlugin.tsx +1 -0
  42. package/src/plugins/impl/chat/chat-ui.tsx +1 -0
  43. package/src/stories/button.stories.tsx +1 -0
@@ -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--whPjjUB.js").then((e) => ({ default: e.FeedbackModal }))), L = (e) => {
138
+ var I = (0, T.lazy)(() => import("./feedback-button-PDt2V0S1.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-BxB3RDjN.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-CPoxUG7G.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-DBOTlHF9.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-D00_TX1M.js";
7
7
  import { h as j, t as re } from "./tooltip-CKO1pHJo.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-BZiemZfD.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-Cq0m-sO5.js";
9
9
  import { A as Oe, C as ke, M as Ae, b as je } from "./select-B0LRDH0g.js";
10
10
  import { _ as Me, f as Ne, h as Pe, i as Fe, n as Ie, t as Le } from "./dropdown-menu-B_7xD2X4.js";
11
11
  import { C as Re, d as ze } from "./toDate-DKH0_kMo.js";
12
- import { d as Be, f as Ve, i as He, n as Ue, t as We, u as Ge } from "./process-output-BKLVbFnU.js";
12
+ import { d as Be, f as Ve, i as He, n as Ue, t as We, u as Ge } from "./process-output-ByXe3l6a.js";
13
13
  import { t as Ke } from "./jsx-runtime-3BD1kT0s.js";
14
14
  import { A as qe, C as Je, D as Ye, E as Xe, F as Ze, L as Qe, M as $e, O as et, P as tt, R as nt, S as rt, T as it, V as at, b as ot, j as st, v as ct, w as lt, x as ut, y as dt, z as ft } from "./use-restore-focus-DBCITLeF.js";
15
15
  import { n as pt } from "./error-banner-Sl2FlSJ4.js";
@@ -5543,6 +5543,7 @@ var Gs = (e) => {
5543
5543
  /* @__PURE__ */ (0, q.jsx)("div", {
5544
5544
  className: "absolute top-0 right-0 flex justify-end z-10 border border-(--slate-6) bg-inherit rounded-bl-lg",
5545
5545
  children: /* @__PURE__ */ (0, q.jsx)(a, {
5546
+ "aria-label": "Reset chat",
5546
5547
  variant: "text",
5547
5548
  size: "icon",
5548
5549
  disabled: k.length === 0,
@@ -1,6 +1,6 @@
1
1
  import { g as e } from "./button-BxB3RDjN.js";
2
2
  import { t } from "./compiler-runtime-CldRdSsv.js";
3
- import { G as n, K as r } from "./error-entries-BZiemZfD.js";
3
+ import { G as n, K as r } from "./error-entries-Cq0m-sO5.js";
4
4
  import { C as i } from "./select-B0LRDH0g.js";
5
5
  import { _ as a, c as o, x as s, y as c } from "./toDate-DKH0_kMo.js";
6
6
  import { C as l, E as u, a as d, b as f } from "./useTheme-CfeaVw5D.js";
@@ -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-dev94", C = u(S), w = u(!0);
21
+ var S = x() || "0.25.3-dev96", 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-CPoxUG7G.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-DBOTlHF9.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-D00_TX1M.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-CKO1pHJo.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-BZiemZfD.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-Cq0m-sO5.js";
9
9
  import { c as et, i as tt, r as nt } from "./useLifecycle-Dum8WSXq.js";
10
10
  import { a as rt, i as it, n as at, o as ot, r as st, t as ct } from "./useDateFormatter-c_yJtkAe.js";
11
11
  import { t as lt } from "./check-P35dc2dH.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-B0LRDH0g.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, an as Pn, at as Fn, b as In, bt as Ln, cn as Rn, ct as zn, d as Bn, dn as Vn, en as Hn, et as Un, f as Wn, fn as Gn, ft as Kn, gn as qn, gt as Jn, h as Yn, hn as Xn, ht as Zn, i as Qn, in as $n, it as er, j as tr, jt as nr, k as rr, kt as ir, l as ar, ln as or, lt as sr, mn as cr, mt as lr, n as ur, nn as dr, nt as fr, o as pr, ot as mr, pn as hr, pt as gr, qt as _r, rn as vr, rt as yr, s as br, sn as xr, st as Sr, t as Cr, tt as wr, u as Tr, ut as Er, vn as Dr, vt as Or, w as kr, wt as Ar, x as jr, xt as Mr, y as Nr, yn as Pr, yt as Fr, z as Ir, zt as Lr } from "./dropdown-menu-B_7xD2X4.js";
14
14
  import { a as Rr, c as zr, d as Br, i as Vr, l as Hr, n as Ur, o as Wr, r as Gr, t as Kr, v as qr, x as Jr, y as Yr } from "./toDate-DKH0_kMo.js";
15
- import { n as Xr, t as Zr } from "./ErrorBoundary-4VHhuyZ5.js";
15
+ import { n as Xr, t as Zr } from "./ErrorBoundary-DJjRNeOW.js";
16
16
  import { t as Qr } from "./clsx-CoeGtWvn.js";
17
17
  import { t as $r } from "./react-dom-DUmH0GXv.js";
18
18
  import { t as ei } from "./jsx-runtime-3BD1kT0s.js";
@@ -28054,7 +28054,7 @@ var uB = "slide", dB = "slide", fB = "center", pB = 36, mB = Pe("marimo:slides:c
28054
28054
  children: [b, D]
28055
28055
  }), t[36] = b, t[37] = D, t[38] = O) : O = t[38], O;
28056
28056
  }, TB = (e) => {
28057
- let t = (0, J.c)(30), { configWidth: n, layout: r, setLayout: i, activeConfigCell: o } = e, [s, c] = Wi(mB), l = s ? n : pB, d;
28057
+ let t = (0, J.c)(31), { configWidth: n, layout: r, setLayout: i, activeConfigCell: o } = e, [s, c] = Wi(mB), l = s ? n : pB, d;
28058
28058
  t[0] === l ? d = t[1] : (d = { width: l }, t[0] = l, t[1] = d);
28059
28059
  let f = s ? "justify-between px-2" : "justify-center px-0", p;
28060
28060
  t[2] === f ? p = t[3] : (p = a("flex items-center h-9 shrink-0 border-b border-border/60", f), t[2] = f, t[3] = p);
@@ -28063,32 +28063,33 @@ var uB = "slide", dB = "slide", fB = "center", pB = 36, mB = Pe("marimo:slides:c
28063
28063
  className: "text-xs font-medium uppercase tracking-wide text-muted-foreground pl-1",
28064
28064
  children: "Configuration"
28065
28065
  }), t[4] = s, t[5] = m);
28066
- let h = s ? "Collapse panel" : "Expand panel", g;
28067
- t[6] === c ? g = t[7] : (g = () => c(jB), t[6] = c, t[7] = g);
28068
- let _;
28069
- t[8] === s ? _ = t[9] : (_ = s ? /* @__PURE__ */ (0, q.jsx)(ro, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, q.jsx)(io, { className: "h-4 w-4" }), t[8] = s, t[9] = _);
28066
+ let h = s ? "Collapse panel" : "Expand panel", g = s ? "Collapse panel" : "Expand panel", _;
28067
+ t[6] === c ? _ = t[7] : (_ = () => c(jB), t[6] = c, t[7] = _);
28070
28068
  let v;
28071
- t[10] !== s || t[11] !== g || t[12] !== _ ? (v = /* @__PURE__ */ (0, q.jsx)(u, {
28069
+ t[8] === s ? v = t[9] : (v = s ? /* @__PURE__ */ (0, q.jsx)(ro, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, q.jsx)(io, { className: "h-4 w-4" }), t[8] = s, t[9] = v);
28070
+ let y;
28071
+ t[10] !== s || t[11] !== g || t[12] !== _ || t[13] !== v ? (y = /* @__PURE__ */ (0, q.jsx)(u, {
28072
+ "aria-label": g,
28072
28073
  variant: "ghost",
28073
28074
  size: "icon",
28074
28075
  className: "h-7 w-7 text-muted-foreground hover:text-foreground",
28075
- onClick: g,
28076
+ onClick: _,
28076
28077
  "aria-expanded": s,
28077
28078
  "aria-controls": "slide-config-panel",
28078
- children: _
28079
- }), t[10] = s, t[11] = g, t[12] = _, t[13] = v) : v = t[13];
28080
- let y;
28081
- t[14] !== h || t[15] !== v ? (y = /* @__PURE__ */ (0, q.jsx)(U, {
28082
- content: h,
28083
28079
  children: v
28084
- }), t[14] = h, t[15] = v, t[16] = y) : y = t[16];
28080
+ }), t[10] = s, t[11] = g, t[12] = _, t[13] = v, t[14] = y) : y = t[14];
28085
28081
  let b;
28086
- t[17] !== y || t[18] !== p || t[19] !== m ? (b = /* @__PURE__ */ (0, q.jsxs)("header", {
28087
- className: p,
28088
- children: [m, y]
28089
- }), t[17] = y, t[18] = p, t[19] = m, t[20] = b) : b = t[20];
28082
+ t[15] !== y || t[16] !== h ? (b = /* @__PURE__ */ (0, q.jsx)(U, {
28083
+ content: h,
28084
+ children: y
28085
+ }), t[15] = y, t[16] = h, t[17] = b) : b = t[17];
28090
28086
  let x;
28091
- t[21] !== o || t[22] !== s || t[23] !== r || t[24] !== i ? (x = s && /* @__PURE__ */ (0, q.jsx)("div", {
28087
+ t[18] !== b || t[19] !== p || t[20] !== m ? (x = /* @__PURE__ */ (0, q.jsxs)("header", {
28088
+ className: p,
28089
+ children: [m, b]
28090
+ }), t[18] = b, t[19] = p, t[20] = m, t[21] = x) : x = t[21];
28091
+ let S;
28092
+ t[22] !== o || t[23] !== s || t[24] !== r || t[25] !== i ? (S = s && /* @__PURE__ */ (0, q.jsx)("div", {
28092
28093
  id: "slide-config-panel",
28093
28094
  className: "flex-1 overflow-y-auto overflow-x-hidden",
28094
28095
  children: o ? /* @__PURE__ */ (0, q.jsx)(yB, {
@@ -28102,15 +28103,15 @@ var uB = "slide", dB = "slide", fB = "center", pB = 36, mB = Pe("marimo:slides:c
28102
28103
  children: "No slides yet"
28103
28104
  }), /* @__PURE__ */ (0, q.jsx)("p", { children: "Run a cell that produces output to add it to the deck. Slide settings will appear here once a slide is selected." })]
28104
28105
  })
28105
- }), t[21] = o, t[22] = s, t[23] = r, t[24] = i, t[25] = x) : x = t[25];
28106
- let S;
28107
- return t[26] !== b || t[27] !== x || t[28] !== d ? (S = /* @__PURE__ */ (0, q.jsxs)("aside", {
28106
+ }), t[22] = o, t[23] = s, t[24] = r, t[25] = i, t[26] = S) : S = t[26];
28107
+ let C;
28108
+ return t[27] !== x || t[28] !== S || t[29] !== d ? (C = /* @__PURE__ */ (0, q.jsxs)("aside", {
28108
28109
  className: "h-full flex flex-col border-l border-border/60 bg-muted/20 transition-[width] duration-200 ease-out overflow-hidden",
28109
28110
  style: d,
28110
28111
  "aria-label": "Slide configuration",
28111
28112
  onKeyDown: AB,
28112
- children: [b, x]
28113
- }), t[26] = b, t[27] = x, t[28] = d, t[29] = S) : S = t[29], S;
28113
+ children: [x, S]
28114
+ }), t[27] = x, t[28] = S, t[29] = d, t[30] = C) : C = t[30], C;
28114
28115
  };
28115
28116
  function EB(e) {
28116
28117
  return /* @__PURE__ */ (0, q.jsx)(lw, { children: e }, e);
@@ -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-DKzHt0kS.js";
5
+ import { a as o, i as s, n as c, r as l } from "./glide-data-editor-D2mdZ_2N.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",
@@ -26513,6 +26513,7 @@ var ky = () => {
26513
26513
  t[41] === w ? ee = t[42] : (ee = /* @__PURE__ */ (0, I.jsx)(g, {
26514
26514
  content: "Format SQL",
26515
26515
  children: /* @__PURE__ */ (0, I.jsx)(l, {
26516
+ "aria-label": "Format SQL",
26516
26517
  variant: "text",
26517
26518
  size: "icon",
26518
26519
  onClick: w,
@@ -3,14 +3,14 @@ import { h as t, t as n } from "./button-BxB3RDjN.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-CPoxUG7G.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-BZiemZfD.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-Cq0m-sO5.js";
7
7
  import { b as g } from "./select-B0LRDH0g.js";
8
- import { n as ee, t as te } from "./globals-BwLJnxj2.js";
8
+ import { n as ee, t as te } from "./globals-B8YEfM4c.js";
9
9
  import { t as _ } from "./jsx-runtime-3BD1kT0s.js";
10
10
  import { C as v, _ as ne, i as y } from "./useTheme-CfeaVw5D.js";
11
11
  import { a as re, i as ie, n as ae, r as oe } from "./dialog-C1PcpCqX.js";
12
12
  import { t as se } from "./useAsyncData-D0mLJstx.js";
13
- import { t as ce } from "./code-visibility-C791KvaY.js";
13
+ import { t as ce } from "./code-visibility-BqP2qZal.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;
@@ -6,7 +6,7 @@ import { i as s, n as c, r as l } from "./copy-icon-CPoxUG7G.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-B0LRDH0g.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-B_7xD2X4.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-Bt8_pBa2.js";
9
- import { n as ne, t as re } from "./ErrorBoundary-4VHhuyZ5.js";
9
+ import { n as ne, t as re } from "./ErrorBoundary-DJjRNeOW.js";
10
10
  import { t as ie } from "./react-dom-DUmH0GXv.js";
11
11
  import { t as M } from "./jsx-runtime-3BD1kT0s.js";
12
12
  import { t as N } from "./label-BRnUC0NX.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-BjOR7Wwc.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-DadR_9Qe.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-Df9kpoTU.js")), Us = {
9296
+ var Hs = K.lazy(async () => await import("./number-overlay-editor-DdzFRhUf.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-CKO1pHJo.js";
2
2
  import { _ as t } from "./useTheme-CfeaVw5D.js";
3
- import { r as n } from "./code-visibility-C791KvaY.js";
3
+ import { r as n } from "./code-visibility-BqP2qZal.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,7 +5,7 @@ import { t as l } from "./compiler-runtime-CldRdSsv.js";
5
5
  import { n as u, t as d } from "./copy-icon-CPoxUG7G.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-CKO1pHJo.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-BZiemZfD.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-Cq0m-sO5.js";
9
9
  import { M as Ce, O as we, k as Te } from "./select-B0LRDH0g.js";
10
10
  import { ft as Ee, q as De } from "./dropdown-menu-B_7xD2X4.js";
11
11
  import { m as Oe, y as ke } from "./toDate-DKH0_kMo.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-CPoxUG7G.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-DBOTlHF9.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-D00_TX1M.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-CKO1pHJo.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-BZiemZfD.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-Cq0m-sO5.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-CcT0slVc.js";
10
- import { $ as nn, $t as rn, A as an, At as on, B as sn, Bt as cn, C as ln, Ct as un, D as dn, Dt as fn, E as pn, Et as mn, F as hn, Ft as gn, G as _n, Gt as vn, H as yn, Ht as bn, I as xn, It as Sn, J as Cn, Jt as wn, K as Tn, Kt as En, L as Dn, Lt as On, M as kn, Mt as An, N as jn, Nt as Mn, O as Nn, Ot as Pn, P as Fn, Pt as In, Qt as Ln, R as Rn, Rt as zn, S as Bn, St as Vn, T as Hn, Tt as Un, U as Wn, Ut as Gn, V as Kn, Vt as qn, W as Jn, Wt as Yn, Xt as Xn, Y as Zn, Yt as Qn, Zt as $n, _ as er, _t as tr, at as nr, b as rr, c as ir, cn as ar, ct as or, d as sr, dn as cr, dt as lr, en as ur, et as dr, f as fr, fn as pr, ft as mr, g as hr, gt as gr, h as _r, ht as vr, in as yr, it as br, j as xr, jt as Sr, k as Cr, kt as wr, ln as Tr, lt as Er, m as Dr, mn as Or, mt as kr, nn as Ar, nt as jr, on as Mr, ot as Nr, p as Pr, pn as Fr, pt as Ir, q as Lr, qt as Rr, r as zr, rn as Br, rt as Vr, sn as Hr, st as Ur, t as Wr, tn as Gr, tt as Kr, u as qr, un as Jr, ut as Yr, v as Xr, vt as Zr, w as Qr, wt as $r, x as ei, xt as ti, y as ni, z as ri, zt as ii } from "./common-CLwhauF1.js";
10
+ import { $ as nn, $t as rn, A as an, At as on, B as sn, Bt as cn, C as ln, Ct as un, D as dn, Dt as fn, E as pn, Et as mn, F as hn, Ft as gn, G as _n, Gt as vn, H as yn, Ht as bn, I as xn, It as Sn, J as Cn, Jt as wn, K as Tn, Kt as En, L as Dn, Lt as On, M as kn, Mt as An, N as jn, Nt as Mn, O as Nn, Ot as Pn, P as Fn, Pt as In, Qt as Ln, R as Rn, Rt as zn, S as Bn, St as Vn, T as Hn, Tt as Un, U as Wn, Ut as Gn, V as Kn, Vt as qn, W as Jn, Wt as Yn, Xt as Xn, Y as Zn, Yt as Qn, Zt as $n, _ as er, _t as tr, at as nr, b as rr, c as ir, cn as ar, ct as or, d as sr, dn as cr, dt as lr, en as ur, et as dr, f as fr, fn as pr, ft as mr, g as hr, gt as gr, h as _r, ht as vr, in as yr, it as br, j as xr, jt as Sr, k as Cr, kt as wr, ln as Tr, lt as Er, m as Dr, mn as Or, mt as kr, nn as Ar, nt as jr, on as Mr, ot as Nr, p as Pr, pn as Fr, pt as Ir, q as Lr, qt as Rr, r as zr, rn as Br, rt as Vr, sn as Hr, st as Ur, t as Wr, tn as Gr, tt as Kr, u as qr, un as Jr, ut as Yr, v as Xr, vt as Zr, w as Qr, wt as $r, x as ei, xt as ti, y as ni, z as ri, zt as ii } from "./common-Dwl0aTge.js";
11
11
  import { c as ai, i as oi, n as si, o as ci, t as li } from "./useLifecycle-Dum8WSXq.js";
12
12
  import { t as ui } from "./check-P35dc2dH.js";
13
13
  import { A as di, C as fi, D as pi, E as mi, M as hi, O as gi, S as _i, T as vi, a as yi, b as bi, c as xi, i as Si, k as Ci, l as wi, n as Ti, o as Ei, r as Di, s as Oi, t as ki, w as Ai, x as ji } from "./select-B0LRDH0g.js";
14
14
  import { At as Mi, C as Ni, Dt as Pi, J as Fi, K as Ii, R as Li, S as Ri, U as zi, X as Bi, Y as Vi, _ as Hi, a as Ui, c as Wi, dt as Gi, et as Ki, f as qi, g as Ji, h as Yi, ht as Xi, i as Zi, m as Qi, n as $i, p as ea, q as ta, r as na, s as ra, t as ia, v as aa, vn as oa, x as sa, yn as ca, z as la } from "./dropdown-menu-B_7xD2X4.js";
15
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-DKH0_kMo.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-BKLVbFnU.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-ByXe3l6a.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-Bt8_pBa2.js";
18
- import { n as Va, t as Ha } from "./ErrorBoundary-4VHhuyZ5.js";
19
- import { n as Ua, t as Wa } from "./globals-BwLJnxj2.js";
18
+ import { n as Va, t as Ha } from "./ErrorBoundary-DJjRNeOW.js";
19
+ import { n as Ua, t as Wa } from "./globals-B8YEfM4c.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 { B as qa, C as H, Ct as Ja, D as Ya, E as Xa, F as U, G as Za, H as Qa, I as $a, L as eo, M as W, N as to, O as no, P as ro, Q as io, R as ao, S as G, St as oo, Tt as so, U as co, W as lo, Y as uo, Z as fo, _ as po, _t as mo, a as ho, b as go, bt as _o, c as vo, d as yo, f as bo, g as xo, h as So, ht as Co, i as wo, j as K, k as To, l as Eo, m as Do, n as Oo, o as ko, p as Ao, r as jo, s as Mo, u as No, ut as Po, v as Fo, vt as Io, w as Lo, wt as Ro, x as zo, xt as Bo, y as Vo, yt as Ho } from "./use-restore-focus-DBCITLeF.js";
@@ -39,7 +39,7 @@ import { t as Ms } from "./useAsyncData-D0mLJstx.js";
39
39
  import { i as Ns, n as Ps, r as Fs } from "./formats-V8ifA0Bk.js";
40
40
  import { D as Is, O as Ls } from "./vega-loader.browser-B9Pz0EGP.js";
41
41
  import { a as Rs, n as zs } from "./loader-Bm8cy3e8.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-C791KvaY.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-BqP2qZal.js";
43
43
  import { t as Js } from "./useDeepCompareMemoize-BpPWi3G3.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
@@ -10112,7 +10112,7 @@ var LS = (e) => {
10112
10112
  output: t
10113
10113
  };
10114
10114
  } };
10115
- } }, US = J.lazy(() => import("./chat-ui-D0jT6WV3.js").then((e) => ({ default: e.Chatbot }))), WS = G(W({
10115
+ } }, US = J.lazy(() => import("./chat-ui-ChmqaLQA.js").then((e) => ({ default: e.Chatbot }))), WS = G(W({
10116
10116
  id: U(),
10117
10117
  role: Fo([
10118
10118
  "system",
@@ -10578,7 +10578,7 @@ function VC(e, t) {
10578
10578
  }
10579
10579
  //#endregion
10580
10580
  //#region src/plugins/impl/DataEditorPlugin.tsx
10581
- var HC = J.lazy(() => import("./glide-data-editor-DKzHt0kS.js").then((e) => e.t)), UC = wS("marimo-data-editor", { cssStyles: [qS] }).withData(W({
10581
+ var HC = J.lazy(() => import("./glide-data-editor-D2mdZ_2N.js").then((e) => e.t)), UC = wS("marimo-data-editor", { cssStyles: [qS] }).withData(W({
10582
10582
  initialValue: W({ edits: G(W({
10583
10583
  rowIdx: K(),
10584
10584
  columnId: U(),
@@ -14181,34 +14181,35 @@ function bE(e, t) {
14181
14181
  });
14182
14182
  }
14183
14183
  var xE = (e) => {
14184
- let t = (0, X.c)(10), { chartCode: n } = e, r = ns(cs), i = De(), { createNewCell: a } = Dt(), o;
14185
- t[0] !== r || t[1] !== a || t[2] !== i ? (o = (e) => {
14184
+ let t = (0, X.c)(11), { chartCode: n, columnName: r } = e, i = ns(cs), a = De(), { createNewCell: o } = Dt(), s;
14185
+ t[0] !== i || t[1] !== o || t[2] !== a ? (s = (e) => {
14186
14186
  e.includes("alt") && ke({
14187
- autoInstantiate: r,
14188
- createNewCell: a,
14189
- fromCellId: i
14190
- }), a({
14187
+ autoInstantiate: i,
14188
+ createNewCell: o,
14189
+ fromCellId: a
14190
+ }), o({
14191
14191
  code: e,
14192
14192
  before: !1,
14193
- cellId: i ?? "__end__"
14193
+ cellId: a ?? "__end__"
14194
14194
  });
14195
- }, t[0] = r, t[1] = a, t[2] = i, t[3] = o) : o = t[3];
14196
- let s = o, c;
14197
- t[4] !== n || t[5] !== s ? (c = d.stopPropagation(() => s(n)), t[4] = n, t[5] = s, t[6] = c) : c = t[6];
14198
- let l;
14199
- t[7] === Symbol.for("react.memo_cache_sentinel") ? (l = /* @__PURE__ */ (0, Y.jsx)(rd, { className: "h-3 w-3" }), t[7] = l) : l = t[7];
14200
- let u;
14201
- return t[8] === c ? u = t[9] : (u = /* @__PURE__ */ (0, Y.jsx)(pe, {
14195
+ }, t[0] = i, t[1] = o, t[2] = a, t[3] = s) : s = t[3];
14196
+ let c = s, l = `Add chart to notebook for ${r}`, u;
14197
+ t[4] !== n || t[5] !== c ? (u = d.stopPropagation(() => c(n)), t[4] = n, t[5] = c, t[6] = u) : u = t[6];
14198
+ let f;
14199
+ t[7] === Symbol.for("react.memo_cache_sentinel") ? (f = /* @__PURE__ */ (0, Y.jsx)(rd, { className: "h-3 w-3" }), t[7] = f) : f = t[7];
14200
+ let p;
14201
+ return t[8] !== l || t[9] !== u ? (p = /* @__PURE__ */ (0, Y.jsx)(pe, {
14202
14202
  content: "Add chart to notebook",
14203
14203
  delayDuration: 400,
14204
14204
  children: /* @__PURE__ */ (0, Y.jsx)(g, {
14205
+ "aria-label": l,
14205
14206
  variant: "outline",
14206
14207
  size: "icon",
14207
14208
  className: "z-10 bg-background absolute right-1 -top-0.5",
14208
- onClick: c,
14209
- children: l
14209
+ onClick: u,
14210
+ children: f
14210
14211
  })
14211
- }), t[8] = c, t[9] = u), u;
14212
+ }), t[8] = l, t[9] = u, t[10] = p) : p = t[10], p;
14212
14213
  };
14213
14214
  //#endregion
14214
14215
  //#region src/components/data-table/column-explorer-panel/column-explorer.tsx
@@ -14369,7 +14370,10 @@ var wE = ({ previewColumn: e, columnName: t, dataType: n }) => {
14369
14370
  className: "px-2 py-1",
14370
14371
  children: [
14371
14372
  m,
14372
- u && /* @__PURE__ */ (0, Y.jsx)(xE, { chartCode: u }),
14373
+ u && /* @__PURE__ */ (0, Y.jsx)(xE, {
14374
+ chartCode: u,
14375
+ columnName: t
14376
+ }),
14373
14377
  g,
14374
14378
  h
14375
14379
  ]
@@ -21480,6 +21484,7 @@ var Hj = class {
21480
21484
  children: /* @__PURE__ */ (0, Y.jsxs)("span", {
21481
21485
  className: "inline-flex items-center text-secondary-foreground rounded shadow-sm-solid",
21482
21486
  children: [/* @__PURE__ */ (0, Y.jsx)(g, {
21487
+ "aria-label": "Refresh",
21483
21488
  "data-testid": "marimo-plugin-refresh-button",
21484
21489
  variant: "secondary",
21485
21490
  size: "icon",
@@ -30291,7 +30296,7 @@ function BR(e) {
30291
30296
  }
30292
30297
  //#endregion
30293
30298
  //#region src/components/editor/renderers/slides-layout/slides-layout.tsx
30294
- var VR = J.lazy(() => import("./reveal-component-Di7acYGi.js")), HR = (e) => {
30299
+ var VR = J.lazy(() => import("./reveal-component-ClNTWzdK.js")), HR = (e) => {
30295
30300
  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;
30296
30301
  t[0] !== i || t[1] !== n ? (d = RP(i, n), t[0] = i, t[1] = n, t[2] = d) : d = t[2];
30297
30302
  let { slideCells: f, skippedIds: p, noOutputIds: m, slideTypes: h, startCellIndex: g } = d, _;
@@ -30476,6 +30481,7 @@ var ZR = (e) => {
30476
30481
  t[4] === o ? l = t[5] : (l = /* @__PURE__ */ (0, Y.jsx)(pe, {
30477
30482
  content: "Next line",
30478
30483
  children: /* @__PURE__ */ (0, Y.jsx)(g, {
30484
+ "aria-label": "Next line",
30479
30485
  variant: "text",
30480
30486
  size: "icon",
30481
30487
  "data-testid": "debugger-next-button",
@@ -30495,6 +30501,7 @@ var ZR = (e) => {
30495
30501
  t[10] === u ? p = t[11] : (p = /* @__PURE__ */ (0, Y.jsx)(pe, {
30496
30502
  content: "Continue execution",
30497
30503
  children: /* @__PURE__ */ (0, Y.jsx)(g, {
30504
+ "aria-label": "Continue execution",
30498
30505
  variant: "text",
30499
30506
  size: "icon",
30500
30507
  "data-testid": "debugger-continue-button",
@@ -30514,6 +30521,7 @@ var ZR = (e) => {
30514
30521
  t[15] === m ? _ = t[16] : (_ = /* @__PURE__ */ (0, Y.jsx)(pe, {
30515
30522
  content: "Print stack trace",
30516
30523
  children: /* @__PURE__ */ (0, Y.jsx)(g, {
30524
+ "aria-label": "Print stack trace",
30517
30525
  variant: "text",
30518
30526
  size: "icon",
30519
30527
  "data-testid": "debugger-stack-button",
@@ -30533,6 +30541,7 @@ var ZR = (e) => {
30533
30541
  t[20] === v ? b = t[21] : (b = /* @__PURE__ */ (0, Y.jsx)(pe, {
30534
30542
  content: "Help",
30535
30543
  children: /* @__PURE__ */ (0, Y.jsx)(g, {
30544
+ "aria-label": "Debugger help",
30536
30545
  variant: "text",
30537
30546
  size: "icon",
30538
30547
  "data-testid": "debugger-help-button",
@@ -30545,6 +30554,7 @@ var ZR = (e) => {
30545
30554
  t[22] !== r || t[23] !== n ? (x = r && /* @__PURE__ */ (0, Y.jsx)(pe, {
30546
30555
  content: "Quit and clear",
30547
30556
  children: /* @__PURE__ */ (0, Y.jsx)(g, {
30557
+ "aria-label": "Quit and clear debugger",
30548
30558
  variant: "text",
30549
30559
  size: "icon",
30550
30560
  "data-testid": "debugger-clear-button",
@@ -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-DKzHt0kS.js";
3
+ import { a as n } from "./glide-data-editor-D2mdZ_2N.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-DBOTlHF9.js";
1
+ import { O as e } from "./html-to-image-D00_TX1M.js";
2
2
  import { h as t } from "./tooltip-CKO1pHJo.js";
3
- import { C as n, w as r } from "./error-entries-BZiemZfD.js";
3
+ import { C as n, w as r } from "./error-entries-Cq0m-sO5.js";
4
4
  import { b as i } from "./select-B0LRDH0g.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-BxB3RDjN.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-CKO1pHJo.js";
6
- import { O as u } from "./error-entries-BZiemZfD.js";
7
- import { Q as d, X as f, Z as p, an as m, cn as h, i as g, in as _, l as v, n as y, r as b, t as x, u as S } from "./common-CLwhauF1.js";
6
+ import { O as u } from "./error-entries-Cq0m-sO5.js";
7
+ import { Q as d, X as f, Z as p, an as m, cn as h, i as g, in as _, l as v, n as y, r as b, t as x, u as S } from "./common-Dwl0aTge.js";
8
8
  import { M as C } from "./select-B0LRDH0g.js";
9
9
  import { q as ee } from "./dropdown-menu-B_7xD2X4.js";
10
10
  import { _ as w } from "./toDate-DKH0_kMo.js";
11
11
  import { t as T } from "./jsx-runtime-3BD1kT0s.js";
12
12
  import { q as E } from "./use-restore-focus-DBCITLeF.js";
13
13
  import { A as D, C as O, b as k } from "./useTheme-CfeaVw5D.js";
14
- import { a as A, n as te, t as ne } from "./code-visibility-C791KvaY.js";
14
+ import { a as A, n as te, t as ne } from "./code-visibility-BqP2qZal.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",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/islands",
3
- "version": "0.25.3-dev94",
3
+ "version": "0.25.3-dev96",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -502,6 +502,7 @@ const ModelListItem: React.FC<ModelListItemProps> = ({
502
502
  <ModelInfoCard model={model} />
503
503
  {model.custom && (
504
504
  <Button
505
+ aria-label={`Delete model ${model.name}`}
505
506
  variant="ghost"
506
507
  size="icon"
507
508
  onClick={handleDelete}
@@ -124,6 +124,7 @@ export const AddContextButton = ({
124
124
  return (
125
125
  <Tooltip content="Add context">
126
126
  <Button
127
+ aria-label="Add context"
127
128
  variant="text"
128
129
  size="icon"
129
130
  onClick={handleAddContext}
@@ -148,6 +149,7 @@ export const AttachFileButton = ({
148
149
  <>
149
150
  <Tooltip content="Attach a file">
150
151
  <Button
152
+ aria-label="Attach a file"
151
153
  variant="text"
152
154
  size="icon"
153
155
  onClick={() => fileInputRef.current?.click()}
@@ -166,7 +166,12 @@ const ChatHeader: React.FC<ChatHeaderProps> = ({
166
166
  return (
167
167
  <div className="flex border-b px-2 py-1 justify-between shrink-0 items-center">
168
168
  <Tooltip content="New chat">
169
- <Button variant="text" size="icon" onClick={onNewChat}>
169
+ <Button
170
+ aria-label="New chat"
171
+ variant="text"
172
+ size="icon"
173
+ onClick={onNewChat}
174
+ >
170
175
  <PlusIcon className="h-4 w-4" />
171
176
  </Button>
172
177
  </Tooltip>
@@ -8,6 +8,7 @@ import {
8
8
  import { fireEvent, render, screen, within } from "@testing-library/react";
9
9
  import { beforeAll, describe, expect, it, vi } from "vitest";
10
10
  import { TooltipProvider } from "@/components/ui/tooltip";
11
+ import type { PreviewColumn } from "@/plugins/impl/DataTablePlugin";
11
12
  import { ColumnExplorerPanel } from "../column-explorer-panel/column-explorer";
12
13
  import type { FieldTypesWithExternalType } from "../types";
13
14
 
@@ -36,11 +37,13 @@ const TEST_COLUMNS: ColumnDef<Row>[] = [
36
37
  interface HarnessProps {
37
38
  totalColumns?: number;
38
39
  initiallyHidden?: readonly string[];
40
+ previewColumn?: PreviewColumn;
39
41
  }
40
42
 
41
43
  function PanelHarness({
42
44
  totalColumns = 3,
43
45
  initiallyHidden = EMPTY_HIDDEN_COLUMNS,
46
+ previewColumn = vi.fn().mockResolvedValue({}),
44
47
  }: HarnessProps) {
45
48
  const table = useReactTable<Row>({
46
49
  data: [],
@@ -55,7 +58,7 @@ function PanelHarness({
55
58
  });
56
59
  return (
57
60
  <ColumnExplorerPanel
58
- previewColumn={vi.fn().mockResolvedValue({})}
61
+ previewColumn={previewColumn}
59
62
  fieldTypes={FIELD_TYPES}
60
63
  totalRows={3}
61
64
  totalColumns={totalColumns}
@@ -124,6 +127,29 @@ describe("ColumnExplorerPanel search", () => {
124
127
  });
125
128
  });
126
129
 
130
+ describe("ColumnExplorerPanel chart actions", () => {
131
+ it("names chart actions for each expanded column", async () => {
132
+ const previewColumn = vi.fn<PreviewColumn>().mockResolvedValue({
133
+ chart_code: "chart_code",
134
+ chart_spec: null,
135
+ error: null,
136
+ missing_packages: null,
137
+ stats: null,
138
+ });
139
+ renderPanel({ previewColumn });
140
+ fireEvent.click(screen.getByText("cust_age"));
141
+
142
+ for (const column of ["customer_name", "cust_age"]) {
143
+ expect(
144
+ await screen.findByRole("button", {
145
+ name: `Add chart to notebook for ${column}`,
146
+ }),
147
+ ).toBeInTheDocument();
148
+ expect(previewColumn).toHaveBeenCalledWith({ column });
149
+ }
150
+ });
151
+ });
152
+
127
153
  describe("ColumnExplorerPanel header counts", () => {
128
154
  it("uses rendered-subset total when a clipped column is hidden", () => {
129
155
  // Dataset has 100 columns server-side; only 3 are rendered into the
@@ -345,7 +345,7 @@ const ColumnPreview = ({
345
345
  const chart = chart_spec && renderChart(chart_spec, theme);
346
346
 
347
347
  const addDataframeChart = chart_code && (
348
- <AddDataframeChart chartCode={chart_code} />
348
+ <AddDataframeChart chartCode={chart_code} columnName={columnName} />
349
349
  );
350
350
 
351
351
  return (