@marimo-team/islands 0.25.3-dev154 → 0.25.3-dev157

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 (69) hide show
  1. package/dist/{ConnectedDataExplorerComponent-BAiSVaHj.js → ConnectedDataExplorerComponent-BbDrlHvG.js} +4 -4
  2. package/dist/{ErrorBoundary-BMsijJ1d.js → ErrorBoundary-yJLApVsH.js} +2 -2
  3. package/dist/{abnfDiagram-VCTEODGH-BBHN92-F.js → abnfDiagram-VCTEODGH-Dr-fo8_z.js} +2 -2
  4. package/dist/{architectureDiagram-5GKGNRK7-C0Rd64qh.js → architectureDiagram-5GKGNRK7-ByKIl9GG.js} +1 -1
  5. package/dist/assets/__vite-browser-external-DVeFf2e7.js +1 -0
  6. package/dist/assets/{worker-FKe3RHT4.js → worker-C1pfNBsx.js} +4 -4
  7. package/dist/{chat-ui-CvB8Map3.js → chat-ui-DsH3WbMM.js} +7 -7
  8. package/dist/{chunk-IMKFNOWR-hJXey5p2.js → chunk-IMKFNOWR-IKDP18MQ.js} +1 -1
  9. package/dist/{chunk-SHT3W25Y-JMzTmmVW.js → chunk-SHT3W25Y-LkIgegwh.js} +1 -1
  10. package/dist/{chunk-SVP7TREG-BIyoHTXi.js → chunk-SVP7TREG-DReBYtnB.js} +1 -1
  11. package/dist/{chunk-TICWLB2K-CCzH2Uwa.js → chunk-TICWLB2K-DQ0A0-1D.js} +1 -1
  12. package/dist/{classDiagram-ZZMXUADV-DB1kOPS6.js → classDiagram-ZZMXUADV-CwvXdCNE.js} +2 -2
  13. package/dist/{classDiagram-v2-VYDZK3BY-CPaFL0OB.js → classDiagram-v2-VYDZK3BY-D0XAxDsc.js} +2 -2
  14. package/dist/{code-visibility-D0yyIyxf.js → code-visibility-sg6NMHZ9.js} +4 -4
  15. package/dist/{common-qNqXC1Cc.js → common-DNumU4vH.js} +10 -10
  16. package/dist/{cynefinDiagram-5FMLGOSQ-CF93uliH.js → cynefinDiagram-5FMLGOSQ-BFN68nHr.js} +1 -1
  17. package/dist/{dagre-GXQ25YYZ-BBB-_p9D.js → dagre-GXQ25YYZ-CZt4rtLq.js} +1 -1
  18. package/dist/{data-grid-overlay-editor-CkmkLccE.js → data-grid-overlay-editor-dapDXQw3.js} +1 -1
  19. package/dist/{diagram-S7CK7UJ4-BynCnbyt.js → diagram-S7CK7UJ4-D5cOz47_.js} +1 -1
  20. package/dist/{diagram-UQ7AKVKN-svOxikMa.js → diagram-UQ7AKVKN-Qgdppb4a.js} +1 -1
  21. package/dist/{diagram-VX7I27RA-BVQSnPx0.js → diagram-VX7I27RA-BsDCvily.js} +1 -1
  22. package/dist/{diagram-Z3DM3KII-nR1J0BH5.js → diagram-Z3DM3KII-igTkGjKI.js} +1 -1
  23. package/dist/{dropdown-menu-GWcGCcxE.js → dropdown-menu-BWnnAstC.js} +1 -1
  24. package/dist/{ebnfDiagram-PWID7BFC-C9tq9-Qo.js → ebnfDiagram-PWID7BFC-BHuZGjIr.js} +2 -2
  25. package/dist/{erDiagram-RLTQ6QDP-BiaeB7Fi.js → erDiagram-RLTQ6QDP-DKObXTVE.js} +1 -1
  26. package/dist/{error-entries-CmFDQ9CA.js → error-entries-BpUJSLUZ.js} +5 -5
  27. package/dist/{feedback-button-CEPK9kJ7.js → feedback-button-BSsnEr1Y.js} +5 -5
  28. package/dist/{flowDiagram-HODETNUW-f-sLm87k.js → flowDiagram-HODETNUW-DZI_kit0.js} +2 -2
  29. package/dist/{formats-CCxaLPNs.js → formats-CwJHWasD.js} +1 -1
  30. package/dist/{glide-data-editor-ojrBySLx.js → glide-data-editor-DZHp-j3z.js} +5 -5
  31. package/dist/{globals-DP6KvkZF.js → globals-0TvZuVv_.js} +2 -2
  32. package/dist/{html-to-image-BrC8OJcj.js → html-to-image-CQr2-IDA.js} +5 -5
  33. package/dist/{infoDiagram-27XIBGKW-BHrWywBe.js → infoDiagram-27XIBGKW-DdPl-7-n.js} +1 -1
  34. package/dist/{ishikawaDiagram-5VMMS53U-Da4s0Reg.js → ishikawaDiagram-5VMMS53U-DbyW6l59.js} +1 -1
  35. package/dist/{kanban-definition-UXKFOSKX-DDf1GVLj.js → kanban-definition-UXKFOSKX-BMX9SyBS.js} +1 -1
  36. package/dist/main.js +22 -22
  37. package/dist/{mermaid-ClwTt7OD.js → mermaid-C8W8mTbA.js} +34 -34
  38. package/dist/{mindmap-definition-YA3MSWOX-D60oMZtT.js → mindmap-definition-YA3MSWOX-Zd_tAxWL.js} +1 -1
  39. package/dist/{number-overlay-editor-CZAj0CD6.js → number-overlay-editor-BC7kWJji.js} +1 -1
  40. package/dist/{pegDiagram-XKGWAZYB-B9wFpMga.js → pegDiagram-XKGWAZYB-DjYydPdo.js} +2 -2
  41. package/dist/{pieDiagram-E7YTZNPT-BZwvMuBT.js → pieDiagram-E7YTZNPT-R5LKjO2n.js} +1 -1
  42. package/dist/{process-output-Bw-vzyoy.js → process-output-Uw-VJE5V.js} +2 -2
  43. package/dist/{railroadDiagram-O6MQD6OU-DqhZGsN2.js → railroadDiagram-O6MQD6OU-C7uNKtfm.js} +2 -2
  44. package/dist/{requirementDiagram-BXWQKSXE-CL5dYARV.js → requirementDiagram-BXWQKSXE-CxAIzQfl.js} +1 -1
  45. package/dist/{reveal-component-DG9xjtwL.js → reveal-component-WNqfK529.js} +6 -6
  46. package/dist/{sequenceDiagram-WJ2MYXX4-BSUCRd2x.js → sequenceDiagram-WJ2MYXX4-B5tmlPd5.js} +1 -1
  47. package/dist/{spec-DiSh_qJC.js → spec-45FnujvG.js} +1 -1
  48. package/dist/{stateDiagram-D77RDMKH-B-1Hvyb0.js → stateDiagram-D77RDMKH-C1hc5H7Y.js} +2 -2
  49. package/dist/{stateDiagram-v2-MP3YSRHH--HtiR4yB.js → stateDiagram-v2-MP3YSRHH-DRWeqQTn.js} +2 -2
  50. package/dist/{swimlanes-42K2YHIH-Bdfhrd-2.js → swimlanes-42K2YHIH-NTLas--s.js} +1 -1
  51. package/dist/{swimlanesDiagram-VR7AAH4N-BJIfxSz0.js → swimlanesDiagram-VR7AAH4N-ChPggljD.js} +2 -2
  52. package/dist/{timeline-definition-24CTP7MA-Cs4EfFD3.js → timeline-definition-24CTP7MA-B4CZ9srJ.js} +1 -1
  53. package/dist/{toDate-DGvRHwTk.js → toDate-rySyYxqk.js} +1 -1
  54. package/dist/{useAsyncData-BmVgnMP5.js → useAsyncData-B7MiltyV.js} +1 -1
  55. package/dist/{useDeepCompareMemoize-Ch_AeGu6.js → useDeepCompareMemoize-DZmHBD_1.js} +1 -1
  56. package/dist/{useLifecycle-B5BX921H.js → useLifecycle-DRbRhzxg.js} +1 -1
  57. package/dist/{useTheme-Bq9pi_vz.js → useTheme-TLkqJsvo.js} +51 -48
  58. package/dist/{vega-component-BgyZ-COt.js → vega-component-Bd9nzauU.js} +5 -5
  59. package/dist/{vennDiagram-4TSXK5OY-DRu0vRjO.js → vennDiagram-4TSXK5OY-DJIvMt44.js} +1 -1
  60. package/dist/{wardleyDiagram-VM6X3IG4-DzbDxwDY.js → wardleyDiagram-VM6X3IG4-45H0zg0u.js} +1 -1
  61. package/dist/{xychartDiagram-S5SC5T6Z-CLWj6ZFQ.js → xychartDiagram-S5SC5T6Z-ZT-XzcPN.js} +1 -1
  62. package/package.json +1 -1
  63. package/src/components/app-config/user-config-form.tsx +35 -0
  64. package/src/components/editor/__tests__/data-attributes.test.tsx +6 -2
  65. package/src/components/editor/output/MarimoErrorOutput.tsx +2 -1
  66. package/src/core/config/__tests__/config-schema.test.ts +5 -3
  67. package/src/core/config/config-schema.ts +3 -0
  68. package/src/core/errors/error-entries.ts +3 -0
  69. package/dist/assets/__vite-browser-external-BgQNn4dS.js +0 -1
@@ -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 { k as n } from "./useTheme-Bq9pi_vz.js";
3
+ import { k as n } from "./useTheme-TLkqJsvo.js";
4
4
  //#region src/hooks/useDeepCompareMemoize.ts
5
5
  var r = /* @__PURE__ */ e(t(), 1);
6
6
  function i(e) {
@@ -4,7 +4,7 @@ import { t as i } from "./react-sHtZdjeP.js";
4
4
  import { t as a } from "./compiler-runtime-CldRdSsv.js";
5
5
  import { m as o } from "./tooltip-CJ4Rqasp.js";
6
6
  import { t as s } from "./jsx-runtime-3BD1kT0s.js";
7
- import { E as c, w as l } from "./useTheme-Bq9pi_vz.js";
7
+ import { E as c, w as l } from "./useTheme-TLkqJsvo.js";
8
8
  var u = o("calendar", [
9
9
  ["path", {
10
10
  d: "M8 2v4",
@@ -604,7 +604,7 @@ var ze = [
604
604
  "html",
605
605
  "markdown",
606
606
  "ipynb"
607
- ], Ue = [
607
+ ], Ue = ["off", "jedi"], We = [
608
608
  "manual",
609
609
  "ask",
610
610
  "agent",
@@ -613,13 +613,13 @@ var ze = [
613
613
  api_key: c().optional(),
614
614
  base_url: c().optional(),
615
615
  project: c().optional()
616
- }).loose(), We = u({
616
+ }).loose(), Ge = u({
617
617
  chat_model: c().nullish(),
618
618
  edit_model: c().nullish(),
619
619
  autocomplete_model: c().nullish(),
620
620
  displayed_models: p(c()).default([]),
621
621
  custom_models: p(c()).default([])
622
- }), Ge = d({
622
+ }), Ke = d({
623
623
  completion: u({
624
624
  activate_on_typing: s().prefault(!0),
625
625
  signature_hint_on_typing: s().prefault(!1),
@@ -636,7 +636,10 @@ var ze = [
636
636
  autosave_delay: m().nonnegative().transform((e) => Math.max(e, 1e3)).prefault(1e3),
637
637
  format_on_save: s().prefault(!1)
638
638
  }).prefault({}),
639
- formatting: d({ line_length: m().nonnegative().prefault(79).transform((e) => Math.min(e, 1e3)) }).prefault({}),
639
+ formatting: d({
640
+ line_length: m().nonnegative().prefault(79).transform((e) => Math.min(e, 1e3)),
641
+ infer_types: h(Ue).prefault("off")
642
+ }).prefault({}),
640
643
  keymap: d({
641
644
  preset: h(["default", "vim"]).prefault("default"),
642
645
  overrides: f(c(), c()).prefault({}),
@@ -677,7 +680,7 @@ var ze = [
677
680
  enabled: s().prefault(!0),
678
681
  rules: c().prefault(""),
679
682
  max_tokens: m().int().positive().nullable().optional(),
680
- mode: h(Ue).prefault("manual"),
683
+ mode: h(We).prefault("manual"),
681
684
  inline_tooltip: s().prefault(!1),
682
685
  allow_provider_config: s().prefault(!0),
683
686
  open_ai: J.optional(),
@@ -697,7 +700,7 @@ var ze = [
697
700
  aws_secret_access_key: c().optional()
698
701
  }).optional(),
699
702
  custom_providers: f(c(), J).prefault({}),
700
- models: We.prefault({
703
+ models: Ge.prefault({
701
704
  displayed_models: [],
702
705
  custom_models: []
703
706
  })
@@ -738,27 +741,27 @@ var ze = [
738
741
  ai: {},
739
742
  package_management: {},
740
743
  mcp: {}
741
- })), Ke = c(), qe = h(Ve).prefault("auto"), Y = u({
744
+ })), qe = c(), Je = h(Ve).prefault("auto"), Y = u({
742
745
  width: h(Be).prefault("medium").transform((e) => e === "normal" ? "compact" : e),
743
- app_title: Ke.nullish(),
746
+ app_title: qe.nullish(),
744
747
  css_file: c().nullish(),
745
748
  html_head_file: c().nullish(),
746
749
  auto_download: p(h(He)).prefault([]),
747
- sql_output: qe
750
+ sql_output: Je
748
751
  }).prefault(() => ({
749
752
  width: "medium",
750
753
  auto_download: [],
751
754
  sql_output: "auto"
752
755
  }));
753
- function Je(e) {
756
+ function Ye(e) {
754
757
  try {
755
758
  return Y.parse(e);
756
759
  } catch (e) {
757
760
  return r.error(`Marimo got an unexpected value in the configuration file: ${e}`), Y.parse({});
758
761
  }
759
762
  }
760
- function Ye() {
761
- return Ge.parse({
763
+ function Xe() {
764
+ return Ke.parse({
762
765
  completion: {},
763
766
  save: {},
764
767
  formatting: {},
@@ -776,47 +779,47 @@ function Ye() {
776
779
  }
777
780
  //#endregion
778
781
  //#region src/core/config/config.ts
779
- function Xe(...e) {
782
+ function Ze(...e) {
780
783
  return v({}, ...e, (e, t) => {
781
784
  if (Array.isArray(t)) return [...t];
782
785
  });
783
786
  }
784
- var X = R(Ye()), Ze = R({}), Z = R((e) => {
785
- let t = e(Ze);
786
- return Xe(e(X), t);
787
- }), Qe = R((e) => e(Z).runtime.auto_instantiate), $e = R((e) => e(Z).keymap.overrides ?? {}), et = R(i());
787
+ var X = R(Xe()), Qe = R({}), Z = R((e) => {
788
+ let t = e(Qe);
789
+ return Ze(e(X), t);
790
+ }), $e = R((e) => e(Z).runtime.auto_instantiate), et = R((e) => e(Z).keymap.overrides ?? {}), tt = R(i());
788
791
  R((e) => {
789
- let t = e($e), r = e(et);
792
+ let t = e(et), r = e(tt);
790
793
  return new n(t, { platform: r });
791
794
  }), R((e) => e(Z).save), R((e) => e(Z).server.transport === "sse" ? "sse" : "websocket"), R((e) => e(Z).ai), R((e) => e(Z).completion), R((e) => e(Z).keymap.preset);
792
- function tt() {
795
+ function nt() {
793
796
  let e = (0, C.c)(3), t = G(Z), n = K(X), r;
794
797
  return e[0] !== t || e[1] !== n ? (r = [t, n], e[0] = t, e[1] = n, e[2] = r) : r = e[2], r;
795
798
  }
796
- function nt() {
799
+ function rt() {
797
800
  return q.get(Z);
798
801
  }
799
- R((e) => ot(e(Z)));
800
- var rt = R((e) => st(e(Z))), it = R((e) => ct(e(Z)));
802
+ R((e) => st(e(Z)));
803
+ var it = R((e) => ct(e(Z))), at = R((e) => lt(e(Z)));
801
804
  R((e) => e(Z).display.code_editor_font_size);
802
- var at = R((e) => e(Z).display.locale);
803
- function ot(e) {
805
+ var ot = R((e) => e(Z).display.locale);
806
+ function st(e) {
804
807
  return e.ai?.enabled !== !1;
805
808
  }
806
- function st(e) {
809
+ function ct(e) {
807
810
  return !!e.ai?.models?.chat_model || !!e.ai?.models?.edit_model || !!e.ai?.models?.autocomplete_model;
808
811
  }
809
- function ct(e) {
810
- return ot(e) && st(e);
812
+ function lt(e) {
813
+ return st(e) && ct(e);
811
814
  }
812
- var lt = R(Je({}));
813
- R((e) => e(lt).width), R((e) => {
815
+ var ut = R(Ye({}));
816
+ R((e) => e(ut).width), R((e) => {
814
817
  let t = e(Z), n = t.snippets?.custom_paths ?? [], r = t.snippets?.include_default_snippets;
815
818
  return n.length > 0 || r === !0;
816
819
  }), R((e) => e(Z).server?.disable_file_downloads ?? !1);
817
820
  //#endregion
818
821
  //#region src/core/constants.ts
819
- var ut = {
822
+ var dt = {
820
823
  githubPage: "https://github.com/marimo-team/marimo",
821
824
  releasesPage: "https://github.com/marimo-team/marimo/releases",
822
825
  issuesPage: "https://github.com/marimo-team/marimo/issues",
@@ -826,7 +829,7 @@ var ut = {
826
829
  docsPage: "https://docs.marimo.io",
827
830
  youtube: "https://www.youtube.com/@marimo-team",
828
831
  molab: "https://molab.marimo.io"
829
- }, dt = {
832
+ }, ft = {
830
833
  showCode: "show-code",
831
834
  includeCode: "include-code",
832
835
  sessionId: "session_id",
@@ -837,17 +840,17 @@ var ut = {
837
840
  viewAs: "view-as",
838
841
  showChrome: "show-chrome",
839
842
  theme: "theme"
840
- }, ft = { outputArea: "output-area" }, pt = [
843
+ }, pt = { outputArea: "output-area" }, mt = [
841
844
  "light",
842
845
  "dark",
843
846
  "system"
844
847
  ];
845
- function mt() {
848
+ function ht() {
846
849
  if (typeof window > "u") return;
847
- let e = new URLSearchParams(window.location.search).get(dt.theme);
848
- return pt.includes(e) ? e : void 0;
850
+ let e = new URLSearchParams(window.location.search).get(ft.theme);
851
+ return mt.includes(e) ? e : void 0;
849
852
  }
850
- var ht = R((e) => {
853
+ var gt = R((e) => {
851
854
  if (Pe()) {
852
855
  if (document.body.classList.contains("dark-mode") || document.body.classList.contains("dark") || document.body.dataset.theme === "dark" || document.body.dataset.mode === "dark" || $() === "dark") return "dark";
853
856
  let e = window.getComputedStyle(document.body), t = e.getPropertyValue("color-scheme").trim();
@@ -859,16 +862,16 @@ var ht = R((e) => {
859
862
  }
860
863
  return "light";
861
864
  }
862
- return mt() ?? e(Z).display.theme;
865
+ return ht() ?? e(Z).display.theme;
863
866
  }), Q = R(!1);
864
- function gt() {
867
+ function _t() {
865
868
  if (typeof window > "u" || !window.matchMedia) return;
866
869
  let e = window.matchMedia("(prefers-color-scheme: dark)");
867
870
  q.set(Q, e.matches), e.addEventListener("change", (e) => {
868
871
  q.set(Q, e.matches);
869
872
  });
870
873
  }
871
- gt();
874
+ _t();
872
875
  function $() {
873
876
  switch (document.body.dataset.vscodeThemeKind) {
874
877
  case "vscode-dark": return "dark";
@@ -876,29 +879,29 @@ function $() {
876
879
  case "vscode-light": return "light";
877
880
  }
878
881
  }
879
- var _t = R($());
880
- function vt() {
882
+ var vt = R($());
883
+ function yt() {
881
884
  let e = new MutationObserver(() => {
882
885
  let e = $();
883
- q.set(_t, e);
886
+ q.set(vt, e);
884
887
  });
885
888
  return e.observe(document.body, {
886
889
  attributes: !0,
887
890
  attributeFilter: ["data-vscode-theme-kind"]
888
891
  }), () => e.disconnect();
889
892
  }
890
- vt();
891
- var yt = R((e) => {
892
- let t = e(ht), n = e(_t);
893
+ yt();
894
+ var bt = R((e) => {
895
+ let t = e(gt), n = e(vt);
893
896
  if (n !== void 0) return n;
894
897
  let r = e(Q);
895
898
  return t === "system" ? r ? "dark" : "light" : t;
896
899
  });
897
- function bt() {
900
+ function xt() {
898
901
  let e = (0, C.c)(3), t;
899
902
  e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = { store: q }, e[0] = t) : t = e[0];
900
- let n = G(yt, t), r;
903
+ let n = G(bt, t), r;
901
904
  return e[1] === n ? r = e[2] : (r = { theme: n }, e[1] = n, e[2] = r), r;
902
905
  }
903
906
  //#endregion
904
- export { x as A, G as C, z as D, R as E, D as O, Ne as S, V as T, q as _, dt as a, Pe as b, Qe as c, Xe as d, Z as f, Re as g, Y as h, ut as i, E as k, nt as l, X as m, bt as n, it as o, tt as p, ft as r, rt as s, yt as t, at as u, Ie as v, K as w, Ae as x, Fe as y };
907
+ export { x as A, G as C, z as D, R as E, D as O, Ne as S, V as T, q as _, ft as a, Pe as b, $e as c, Ze as d, Z as f, Re as g, Y as h, dt as i, E as k, rt as l, X as m, xt as n, at as o, nt as p, pt as r, it as s, bt as t, ot as u, Ie as v, K as w, Ae as x, Fe as y };
@@ -3,19 +3,19 @@ import { g as t, h as n, m as r, o as i } from "./button-BQRdqQi1.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-CJ4Rqasp.js";
6
- import { C as c, a as l } from "./toDate-DGvRHwTk.js";
6
+ import { C as c, a as l } from "./toDate-rySyYxqk.js";
7
7
  import { t as u } from "./jsx-runtime-3BD1kT0s.js";
8
8
  import { n as d } from "./error-banner-D40pmfQQ.js";
9
9
  import { t as f } from "./debounce-C3jyATpc.js";
10
- import { A as p, n as ee } from "./useTheme-Bq9pi_vz.js";
10
+ import { A as p, n as ee } from "./useTheme-TLkqJsvo.js";
11
11
  import { c as m, t as h } from "./arrays-R6JsImiT.js";
12
12
  import { t as te } from "./objects-DCmMvZtn.js";
13
- import { t as ne } from "./useAsyncData-BmVgnMP5.js";
14
- import { a as g, i as re, n as ie, t as ae } from "./formats-CCxaLPNs.js";
13
+ import { t as ne } from "./useAsyncData-B7MiltyV.js";
14
+ import { a as g, i as re, n as ie, t as ae } from "./formats-CwJHWasD.js";
15
15
  import { D as oe, n as _ } from "./vega-loader.browser-B9Pz0EGP.js";
16
16
  import { t as se } from "./react-vega-C4T9Rb_w.js";
17
17
  import { a as ce, n as le } from "./loader-DOVB0Syl.js";
18
- import { t as ue } from "./useDeepCompareMemoize-Ch_AeGu6.js";
18
+ import { t as ue } from "./useDeepCompareMemoize-DZmHBD_1.js";
19
19
  import { t as v } from "./semaphore-89jsoHtS.js";
20
20
  import { t as de } from "./use-vega-container-remeasure-Bz4PZMtt.js";
21
21
  //#region src/plugins/impl/vega/fix-relative-url.ts
@@ -3,7 +3,7 @@ import { t } from "./src-CA_m4ONl.js";
3
3
  import { n } from "./chunk-Y2CYZVJY-DKKS1VyV.js";
4
4
  import { $ as r, H as i, K as a, U as o, a as s, b as c, c as l, et as u, f as d, nt as f, tt as p, v as m, w as h, y as g } from "./chunk-DU6HZSFF-BwiyaNpg.js";
5
5
  import { t as _ } from "./rough.esm-CtV9AnV1.js";
6
- import { p as v } from "./mermaid-ClwTt7OD.js";
6
+ import { p as v } from "./mermaid-C8W8mTbA.js";
7
7
  //#region ../node_modules/.pnpm/khroma@2.1.0/node_modules/khroma/dist/methods/transparentize.js
8
8
  var y = (e, t) => p(e, "a", -t), b = 1e-10;
9
9
  function x(e, t) {
@@ -2,7 +2,7 @@ import { i as e } from "./chunk-75Z2AOVW-D7gxIs2Q.js";
2
2
  import { n as t } from "./src-CA_m4ONl.js";
3
3
  import { n } from "./chunk-Y2CYZVJY-DKKS1VyV.js";
4
4
  import { D as r, H as i, K as a, U as o, a as s, b as c, c as l, v as u, w as d, x as f, y as p } from "./chunk-DU6HZSFF-BwiyaNpg.js";
5
- import { p as m } from "./mermaid-ClwTt7OD.js";
5
+ import { p as m } from "./mermaid-C8W8mTbA.js";
6
6
  import { n as h } from "./mermaid-parser.core-DxuSfYwJ.js";
7
7
  import { t as g } from "./chunk-JWPE2WC7-DJvv1t8U.js";
8
8
  //#region ../node_modules/.pnpm/mermaid@11.17.2/node_modules/mermaid/dist/chunks/mermaid.core/wardleyDiagram-VM6X3IG4.mjs
@@ -9,7 +9,7 @@ import { n as s } from "./chunk-Y2CYZVJY-DKKS1VyV.js";
9
9
  import { D as c, H as l, K as u, U as d, a as f, b as p, c as m, f as h, v as g, w as _, y as v, z as y } from "./chunk-DU6HZSFF-BwiyaNpg.js";
10
10
  import "./chunk-PWAF6VOD-CQw5qATZ.js";
11
11
  import { t as b } from "./chunk-GMAD6QVW-BhaJx0X3.js";
12
- import { p as x } from "./mermaid-ClwTt7OD.js";
12
+ import { p as x } from "./mermaid-C8W8mTbA.js";
13
13
  //#region ../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/band.js
14
14
  function S() {
15
15
  var e = t().unknown(void 0), r = e.domain, i = e.range, o = 0, s = 1, c, l, u = !1, d = 0, f = 0, p = .5;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/islands",
3
- "version": "0.25.3-dev154",
3
+ "version": "0.25.3-dev157",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -37,6 +37,7 @@ import { capabilitiesAtom } from "@/core/config/capabilities";
37
37
  import { mergeConfig, useUserConfig } from "@/core/config/config";
38
38
  import {
39
39
  PackageManagerNames,
40
+ TYPE_INFERENCE_MODES,
40
41
  type UserConfig,
41
42
  UserConfigSchema,
42
43
  } from "@/core/config/config-schema";
@@ -403,6 +404,40 @@ export const UserConfigForm: React.FC = () => {
403
404
  </div>
404
405
  )}
405
406
  />
407
+ {!isWasmRuntime && (
408
+ <OverriddenFormField
409
+ control={form.control}
410
+ name="formatting.infer_types"
411
+ render={({ field, override }) => (
412
+ <div className="flex flex-col space-y-1">
413
+ <FormItem className={formItemClasses}>
414
+ <FormLabel>Infer types on save</FormLabel>
415
+ <FormControl>
416
+ <NativeSelect
417
+ data-testid="infer-types-select"
418
+ onChange={(e) => field.onChange(e.target.value)}
419
+ value={override.value}
420
+ disabled={field.disabled || override.isOverridden}
421
+ className="inline-flex mr-2"
422
+ >
423
+ {TYPE_INFERENCE_MODES.map((option) => (
424
+ <option value={option} key={option}>
425
+ {option}
426
+ </option>
427
+ ))}
428
+ </NativeSelect>
429
+ </FormControl>
430
+ <FormMessage />
431
+ <IsOverridden override={override} />
432
+ </FormItem>
433
+ <FormDescription>
434
+ Add inferred type annotations to cell signatures when
435
+ saving.
436
+ </FormDescription>
437
+ </div>
438
+ )}
439
+ />
440
+ )}
406
441
  </SettingGroup>
407
442
  <SettingGroup title="Autocomplete">
408
443
  <OverriddenFormField
@@ -57,7 +57,7 @@ describe("Cell data attributes", () => {
57
57
  signature_hint_on_typing: false,
58
58
  copilot: false,
59
59
  },
60
- formatting: { line_length: 88 },
60
+ formatting: { line_length: 88, infer_types: "off" },
61
61
  package_management: { manager: "pip" },
62
62
  runtime: {
63
63
  auto_instantiate: false,
@@ -75,7 +75,11 @@ describe("Cell data attributes", () => {
75
75
  browser: "default",
76
76
  follow_symlink: false,
77
77
  },
78
- save: { autosave: "off", autosave_delay: 1000, format_on_save: false },
78
+ save: {
79
+ autosave: "off",
80
+ autosave_delay: 1000,
81
+ format_on_save: false,
82
+ },
79
83
  ai: {},
80
84
  } as UserConfig;
81
85
 
@@ -207,7 +207,8 @@ export const MarimoErrorOutput = ({
207
207
  e.type === "ancestor-stopped",
208
208
  );
209
209
  const syntaxErrors = errors.filter(
210
- (e): e is Extract<MarimoError, { type: "syntax" }> => e.type === "syntax",
210
+ (e): e is Extract<MarimoError, { type: "syntax" | "lazy-import" }> =>
211
+ e.type === "syntax" || e.type === "lazy-import",
211
212
  );
212
213
  const unknownErrors = errors.filter(
213
214
  (e): e is Extract<MarimoError, { type: "unknown" }> => e.type === "unknown",
@@ -79,6 +79,7 @@ test("default UserConfig - empty", () => {
79
79
  "experimental": {},
80
80
  "file_browser": {},
81
81
  "formatting": {
82
+ "infer_types": "off",
82
83
  "line_length": 79,
83
84
  },
84
85
  "keymap": {
@@ -155,6 +156,7 @@ test("default UserConfig - one level", () => {
155
156
  "experimental": {},
156
157
  "file_browser": {},
157
158
  "formatting": {
159
+ "infer_types": "off",
158
160
  "line_length": 79,
159
161
  },
160
162
  "keymap": {
@@ -273,7 +275,7 @@ test("resolvedMarimoConfigAtom overrides correctly and does not mutate the origi
273
275
  autosave_delay: 1000,
274
276
  format_on_save: false,
275
277
  },
276
- formatting: { line_length: 79 },
278
+ formatting: { line_length: 79, infer_types: "off" },
277
279
  };
278
280
 
279
281
  const overrides = {
@@ -299,7 +301,7 @@ test("resolvedMarimoConfigAtom overrides correctly and does not mutate the origi
299
301
  autosave_delay: 1000,
300
302
  format_on_save: false,
301
303
  },
302
- formatting: { line_length: 79 },
304
+ formatting: { line_length: 79, infer_types: "off" },
303
305
  display: { theme: "dark" },
304
306
  });
305
307
 
@@ -314,7 +316,7 @@ test("resolvedMarimoConfigAtom overrides correctly and does not mutate the origi
314
316
  autosave_delay: 1000,
315
317
  format_on_save: false,
316
318
  },
317
- formatting: { line_length: 79 },
319
+ formatting: { line_length: 79, infer_types: "off" },
318
320
  });
319
321
  });
320
322
 
@@ -44,6 +44,8 @@ export const DEFAULT_AI_MODEL = "openai/gpt-4o";
44
44
  */
45
45
  const AUTO_DOWNLOAD_FORMATS = ["html", "markdown", "ipynb"] as const;
46
46
 
47
+ export const TYPE_INFERENCE_MODES = ["off", "jedi"] as const;
48
+
47
49
  export type CopilotMode = NonNullable<schemas["AiConfig"]["mode"]>;
48
50
  export const COPILOT_MODES: CopilotMode[] = [
49
51
  "manual",
@@ -112,6 +114,7 @@ export const UserConfigSchema = z
112
114
  .nonnegative()
113
115
  .prefault(79)
114
116
  .transform((n) => Math.min(n, 1000)),
117
+ infer_types: z.enum(TYPE_INFERENCE_MODES).prefault("off"),
115
118
  })
116
119
  .prefault({}),
117
120
  keymap: z
@@ -122,6 +122,9 @@ export function describeError(error: MarimoError): string {
122
122
  if (error.type === "import-star") {
123
123
  return error.msg;
124
124
  }
125
+ if (error.type === "lazy-import") {
126
+ return error.msg;
127
+ }
125
128
  if (error.type === "ancestor-stopped") {
126
129
  return error.msg;
127
130
  }
@@ -1 +0,0 @@
1
- import{t as e}from"./worker-FKe3RHT4.js";var t=e(((e,t)=>{t.exports={}}));export default t();