@marimo-team/frontend 0.15.1-dev32 → 0.15.1-dev33

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 (100) hide show
  1. package/dist/assets/{ConnectedDataExplorerComponent-A1945Aso.js → ConnectedDataExplorerComponent-B0S6KZz0.js} +1 -1
  2. package/dist/assets/{ImageComparisonComponent-D1NsIUty.js → ImageComparisonComponent-C-VZ4Tnc.js} +1 -1
  3. package/dist/assets/{VegaLite-BGGfcUZn.js → VegaLite-BnVARnZA.js} +1 -1
  4. package/dist/assets/{_baseEach-D3nH_2xn.js → _baseEach-CnkgAoU6.js} +1 -1
  5. package/dist/assets/_baseMap-BQjPNy9z.js +1 -0
  6. package/dist/assets/{_baseUniq-CQqCX6A5.js → _baseUniq-CwJ2iszo.js} +1 -1
  7. package/dist/assets/{_createAggregator-CcFqySRL.js → _createAggregator-DzNuEiXE.js} +1 -1
  8. package/dist/assets/{any-language-editor-BCrWEpOh.js → any-language-editor-CkEw-cSX.js} +1 -1
  9. package/dist/assets/{architectureDiagram-KFL7JDKH-Bi-k1FzL.js → architectureDiagram-KFL7JDKH-D5bxGLSO.js} +1 -1
  10. package/dist/assets/{blockDiagram-ZYB65J3Q-Dmpjl7Rr.js → blockDiagram-ZYB65J3Q-lBSpJVzg.js} +1 -1
  11. package/dist/assets/{c4Diagram-AAMF2YG6-adiBTZJE.js → c4Diagram-AAMF2YG6-Cp2ZcvGq.js} +1 -1
  12. package/dist/assets/channel-8Z-5YHHd.js +1 -0
  13. package/dist/assets/{chunk-ANTBXLJU-DwXFMulX.js → chunk-ANTBXLJU-BI9zlp2d.js} +1 -1
  14. package/dist/assets/{chunk-FHKO5MBM-xaGLB2hd.js → chunk-FHKO5MBM-DmqxuwHW.js} +1 -1
  15. package/dist/assets/{chunk-GLLZNHP4-Cit8A-EP.js → chunk-GLLZNHP4-DDRTaZzv.js} +1 -1
  16. package/dist/assets/{chunk-JBRWN2VN-bXiYdBHm.js → chunk-JBRWN2VN-CT2Hh2iP.js} +1 -1
  17. package/dist/assets/{chunk-LXBSTHXV-BP4Soimz.js → chunk-LXBSTHXV-DAMSTx1Q.js} +1 -1
  18. package/dist/assets/{chunk-NRVI72HA-Caq7CUfs.js → chunk-NRVI72HA-BZuYvBej.js} +1 -1
  19. package/dist/assets/{chunk-OMD6QJNC-54ZKr9c_.js → chunk-OMD6QJNC-BU_2rBlE.js} +1 -1
  20. package/dist/assets/{chunk-WVR4S24B-BdZs7vKR.js → chunk-WVR4S24B-CovEV1lg.js} +1 -1
  21. package/dist/assets/{circle-play-BDHXCb0Y.js → circle-play-D59wTwHu.js} +1 -1
  22. package/dist/assets/classDiagram-3BZAVTQC-BOvgzS6u.js +1 -0
  23. package/dist/assets/classDiagram-v2-QTMF73CY-BOvgzS6u.js +1 -0
  24. package/dist/assets/clone-DVVP9Odz.js +1 -0
  25. package/dist/assets/{compile-CGvn-4st.js → compile-BKBdwA1q.js} +1 -1
  26. package/dist/assets/{dagre-2BBEFEWP-BEa1obN_.js → dagre-2BBEFEWP-BmXAp5fB.js} +1 -1
  27. package/dist/assets/{data-grid-overlay-editor-BsrLkNwc.js → data-grid-overlay-editor-BycmLqkg.js} +1 -1
  28. package/dist/assets/{diagram-4IRLE6MV-Cf3FnnYp.js → diagram-4IRLE6MV-CI8uZuDu.js} +1 -1
  29. package/dist/assets/{diagram-GUPCWM2R-Cty98at3.js → diagram-GUPCWM2R-DM01dWOn.js} +1 -1
  30. package/dist/assets/{diagram-RP2FKANI-DWVcFwOr.js → diagram-RP2FKANI-3A7xcD_S.js} +1 -1
  31. package/dist/assets/{edit-page-DMaQm3LE.js → edit-page-r0MON4eX.js} +58 -58
  32. package/dist/assets/{erDiagram-HZWUO2LU-CyO1eOOE.js → erDiagram-HZWUO2LU-DVhn3kEV.js} +1 -1
  33. package/dist/assets/{flowDiagram-THRYKUMA-CRj5oK-a.js → flowDiagram-THRYKUMA-ByiKsMTR.js} +1 -1
  34. package/dist/assets/{ganttDiagram-WV7ZQ7D5-2EImeZRg.js → ganttDiagram-WV7ZQ7D5-C3yWfK7N.js} +1 -1
  35. package/dist/assets/{gitGraphDiagram-OJR772UL-B9tcK9BT.js → gitGraphDiagram-OJR772UL-DT2oVbFG.js} +1 -1
  36. package/dist/assets/{glide-data-editor-BvISYI3t.js → glide-data-editor-B-hKUbt8.js} +4 -4
  37. package/dist/assets/{graph-D9tj17QN.js → graph-DKF8gkY7.js} +1 -1
  38. package/dist/assets/{home-page-p4uSMJRW.js → home-page-DG5IpRSH.js} +1 -1
  39. package/dist/assets/{index-Boz2pcJb.js → index-B4KTvqjC.js} +1 -1
  40. package/dist/assets/{index-DiBzOhAN.js → index-BAre-3Jh.js} +1 -1
  41. package/dist/assets/{index-DgR-q7Mi.js → index-BDye4bMD.js} +1 -1
  42. package/dist/assets/{index-BII3QszR.js → index-BJMIm3h5.js} +1 -1
  43. package/dist/assets/{index-esTG9RN-.js → index-BKnuS3t4.js} +1 -1
  44. package/dist/assets/{index-BRMp4xor.js → index-BQCqmfXS.js} +1 -1
  45. package/dist/assets/{index-H-k8tqNe.js → index-BSq77Vg9.js} +1 -1
  46. package/dist/assets/{index-CLUiiUWQ.js → index-B_03AI_O.js} +1 -1
  47. package/dist/assets/{index-DcxPzpNS.js → index-BciA4s2J.js} +1 -1
  48. package/dist/assets/{index-BuFQpizN.js → index-C89mOURj.js} +1 -1
  49. package/dist/assets/{index-0xnfM4P4.js → index-CDxt4mvu.js} +1 -1
  50. package/dist/assets/{index-BytvWT4g.js → index-CDzLk5Q3.js} +1 -1
  51. package/dist/assets/{index-_uCXr0qE.js → index-CKZtF7JM.js} +1 -1
  52. package/dist/assets/{index-C3iPkq79.js → index-COS_Xbgw.js} +1 -1
  53. package/dist/assets/{index-DgQigf_R.js → index-CxQa_cAw.js} +1 -1
  54. package/dist/assets/{index-COVExp2x.js → index-Cxy_1y9a.js} +1 -1
  55. package/dist/assets/{index-CTYfpi2J.js → index-DTE_Lol9.js} +166 -166
  56. package/dist/assets/{index-CvsUfIK9.js → index-RfoHYoLS.js} +1 -1
  57. package/dist/assets/{index-eROqpTg3.js → index-kCp9Vp_G.js} +1 -1
  58. package/dist/assets/{index-CqyRpjaT.js → index-tI3mZqES.js} +1 -1
  59. package/dist/assets/infoDiagram-6WOFNB3A-CVxc3Oq6.js +2 -0
  60. package/dist/assets/{journeyDiagram-FFXJYRFH-D-bCUgMG.js → journeyDiagram-FFXJYRFH-yx-qCooh.js} +1 -1
  61. package/dist/assets/{kanban-definition-KOZQBZVT-B85i5eC4.js → kanban-definition-KOZQBZVT-DpJgEsNc.js} +1 -1
  62. package/dist/assets/{layout-BGrsINEZ.js → layout-HC2KG283.js} +1 -1
  63. package/dist/assets/{linear-pcSEPOwJ.js → linear-DwZzRezN.js} +1 -1
  64. package/dist/assets/{links-DZr8KDfw.js → links-_NwdJ11g.js} +1 -1
  65. package/dist/assets/{mermaid-Bu7PGvSJ.js → mermaid-BsNRTdZg.js} +4 -4
  66. package/dist/assets/{min-BIbDgP5-.js → min-DdOdESXu.js} +1 -1
  67. package/dist/assets/{mindmap-definition-LNHGMQRG-tCRSnTL_.js → mindmap-definition-LNHGMQRG-Ds3h-hI5.js} +1 -1
  68. package/dist/assets/{number-overlay-editor-Cmym0e23.js → number-overlay-editor-CYrbVyKN.js} +1 -1
  69. package/dist/assets/{pieDiagram-DBDJKBY4-DpkXENah.js → pieDiagram-DBDJKBY4-Ce-oEPaV.js} +1 -1
  70. package/dist/assets/{quadrantDiagram-YPSRARAO-CeVsWIL4.js → quadrantDiagram-YPSRARAO-Urm8U0LY.js} +1 -1
  71. package/dist/assets/{react-plotly-bhihEFAw.js → react-plotly-DGqhBdP1.js} +1 -1
  72. package/dist/assets/{requirementDiagram-EGVEC5DT-BvoCOWRy.js → requirementDiagram-EGVEC5DT-CCTq9hQZ.js} +1 -1
  73. package/dist/assets/{run-page-DbSZPud1.js → run-page-CsCj50OD.js} +1 -1
  74. package/dist/assets/{sankeyDiagram-HRAUVNP4-Cu7q4U4c.js → sankeyDiagram-HRAUVNP4-C2I9sfem.js} +1 -1
  75. package/dist/assets/{sequenceDiagram-WFGC7UMF-Bxyr66jz.js → sequenceDiagram-WFGC7UMF-CLQmyPy2.js} +1 -1
  76. package/dist/assets/{slides-component-CR8YzEwo.js → slides-component-DJCkXPus.js} +1 -1
  77. package/dist/assets/{sortBy-viAGx73S.js → sortBy-Duwc1vyP.js} +1 -1
  78. package/dist/assets/{stateDiagram-UUKSUZ4H-DJJ0rAf0.js → stateDiagram-UUKSUZ4H-VvU373AQ.js} +1 -1
  79. package/dist/assets/stateDiagram-v2-EYPG3UTE-D41Oi10c.js +1 -0
  80. package/dist/assets/{storage-TM0i2hq2.js → storage-1hHZMyeU.js} +3 -3
  81. package/dist/assets/{terminal-BbRCg6oH.js → terminal-DV-tPxSZ.js} +1 -1
  82. package/dist/assets/{time-B4nktxEd.js → time-4bh0fJAY.js} +1 -1
  83. package/dist/assets/{timeline-definition-3HZDQTIS-6vQ8-7Z5.js → timeline-definition-3HZDQTIS-D5z1lzVG.js} +1 -1
  84. package/dist/assets/{tracing-Cd6LslAY.js → tracing-C32etwYw.js} +2 -2
  85. package/dist/assets/{trash-DROPVtiT.js → trash-W9nmeKd9.js} +1 -1
  86. package/dist/assets/{treemap-75Q7IDZK-Bfo3G5Mq.js → treemap-75Q7IDZK-CHza0lWj.js} +1 -1
  87. package/dist/assets/{vega-component-BKsG4gHo.js → vega-component-BDWLTrqk.js} +1 -1
  88. package/dist/assets/{xychartDiagram-FDP5SA34-BgTU9DKZ.js → xychartDiagram-FDP5SA34-DVdoRkWV.js} +1 -1
  89. package/dist/index.html +1 -1
  90. package/package.json +1 -1
  91. package/src/components/chat/chat-panel.tsx +17 -9
  92. package/src/components/editor/ai/add-cell-with-ai.tsx +19 -16
  93. package/src/components/editor/ai/ai-completion-editor.tsx +4 -0
  94. package/dist/assets/_baseMap-DLtMmtEG.js +0 -1
  95. package/dist/assets/channel-7kaxt7IF.js +0 -1
  96. package/dist/assets/classDiagram-3BZAVTQC-Djy0cY4g.js +0 -1
  97. package/dist/assets/classDiagram-v2-QTMF73CY-Djy0cY4g.js +0 -1
  98. package/dist/assets/clone-BwvK2dmW.js +0 -1
  99. package/dist/assets/infoDiagram-6WOFNB3A-DRPEjZ3d.js +0 -2
  100. package/dist/assets/stateDiagram-v2-EYPG3UTE-CT0Gpq7L.js +0 -1
@@ -9,6 +9,7 @@ import {
9
9
  import { markdown } from "@codemirror/lang-markdown";
10
10
  import { sql } from "@codemirror/lang-sql";
11
11
  import { Prec } from "@codemirror/state";
12
+ import { promptHistory, storePrompt } from "@marimo-team/codemirror-ai";
12
13
  import ReactCodeMirror, {
13
14
  EditorView,
14
15
  keymap,
@@ -26,8 +27,9 @@ import {
26
27
  SparklesIcon,
27
28
  XIcon,
28
29
  } from "lucide-react";
29
- import { useMemo, useState } from "react";
30
+ import { useMemo, useRef, useState } from "react";
30
31
  import useEvent from "react-use-event-hook";
32
+ import { z } from "zod";
31
33
  import { AIModelDropdown } from "@/components/ai/ai-model-dropdown";
32
34
  import { Button } from "@/components/ui/button";
33
35
  import {
@@ -48,6 +50,7 @@ import { useRuntimeManager } from "@/core/runtime/config";
48
50
  import { useTheme } from "@/theme/useTheme";
49
51
  import { cn } from "@/utils/cn";
50
52
  import { prettyError } from "@/utils/errors";
53
+ import { ZodLocalStorage } from "@/utils/localStorage";
51
54
  import { useCellActions } from "../../../core/cells/cells";
52
55
  import { PythonIcon } from "../cell/code/icons";
53
56
  import {
@@ -71,6 +74,10 @@ const languageAtom = atomWithStorage<"python" | "sql">(
71
74
  "python",
72
75
  );
73
76
 
77
+ const KEY = "marimo:ai-prompt-history";
78
+ // Store the prompt history in local storage
79
+ const promptHistoryStorage = new ZodLocalStorage(z.array(z.string()), () => []);
80
+
74
81
  /**
75
82
  * Add a cell with AI.
76
83
  */
@@ -86,6 +93,7 @@ export const AddCellWithAI: React.FC<{
86
93
  const ai = useAtomValue(aiAtom);
87
94
  const editModel = ai?.models?.edit_model || DEFAULT_AI_MODEL;
88
95
  const { saveModelChange } = useModelChange();
96
+ const inputRef = useRef<ReactCodeMirrorRef>(null);
89
97
 
90
98
  const {
91
99
  completion,
@@ -120,6 +128,9 @@ export const AddCellWithAI: React.FC<{
120
128
 
121
129
  const submit = () => {
122
130
  if (!isLoading) {
131
+ if (inputRef.current?.view) {
132
+ storePrompt(inputRef.current.view);
133
+ }
123
134
  handleSubmit();
124
135
  }
125
136
  };
@@ -185,6 +196,7 @@ export const AddCellWithAI: React.FC<{
185
196
  <div className="flex items-center px-3">
186
197
  <SparklesIcon className="size-4 text-(--blue-11) mr-2" />
187
198
  <PromptInput
199
+ inputRef={inputRef}
188
200
  onClose={() => {
189
201
  setCompletion("");
190
202
  onClose();
@@ -338,6 +350,12 @@ export const PromptInput = ({
338
350
  markdownLanguage.language.data.of({
339
351
  autocomplete: additionalCompletionsSource,
340
352
  }),
353
+ promptHistory({
354
+ storage: {
355
+ load: () => promptHistoryStorage.get(KEY),
356
+ save: (prompts) => promptHistoryStorage.set(KEY, prompts),
357
+ },
358
+ }),
341
359
  EditorView.lineWrapping,
342
360
  minimalSetup(),
343
361
  Prec.highest(
@@ -392,21 +410,6 @@ export const PromptInput = ({
392
410
  },
393
411
  },
394
412
  ]),
395
- // Trap arrow up/down to prevent them from being used to navigate the editor
396
- keymap.of([
397
- {
398
- key: "ArrowUp",
399
- preventDefault: true,
400
- stopPropagation: true,
401
- },
402
- ]),
403
- keymap.of([
404
- {
405
- key: "ArrowDown",
406
- preventDefault: true,
407
- stopPropagation: true,
408
- },
409
- ]),
410
413
  ];
411
414
  }, [store, additionalCompletionsSource, handleSubmit, handleEscape]);
412
415
 
@@ -9,6 +9,7 @@ import { Button } from "@/components/ui/button";
9
9
  import { customPythonLanguageSupport } from "@/core/codemirror/language/languages/python";
10
10
 
11
11
  import "./merge-editor.css";
12
+ import { storePrompt } from "@marimo-team/codemirror-ai";
12
13
  import type { ReactCodeMirrorRef } from "@uiw/react-codemirror";
13
14
  import { useAtom } from "jotai";
14
15
  import { Checkbox } from "@/components/ui/checkbox";
@@ -175,6 +176,9 @@ export const AiCompletionEditor: React.FC<Props> = ({
175
176
  }}
176
177
  onSubmit={() => {
177
178
  if (!isLoading) {
179
+ if (inputRef.current?.view) {
180
+ storePrompt(inputRef.current.view);
181
+ }
178
182
  handleSubmit();
179
183
  }
180
184
  }}
@@ -1 +0,0 @@
1
- import{b as m}from"./_baseEach-D3nH_2xn.js";import{x as s}from"./index-CTYfpi2J.js";function e(r,o){var a=-1,t=s(r)?Array(r.length):[];return m(r,function(n,f,i){t[++a]=o(n,f,i)}),t}export{e as b};
@@ -1 +0,0 @@
1
- import{U as s,C as o}from"./mermaid-Bu7PGvSJ.js";const n=(a,r)=>s.lang.round(o.parse(a)[r]);export{n as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as t,C as o}from"./chunk-JBRWN2VN-bXiYdBHm.js";import{_ as e}from"./mermaid-Bu7PGvSJ.js";import"./transform-B8bpuzxV.js";import"./chunk-GLLZNHP4-Cit8A-EP.js";import"./chunk-WVR4S24B-BdZs7vKR.js";import"./chunk-NRVI72HA-Caq7CUfs.js";import"./index-CTYfpi2J.js";import"./step-BwsUM5iJ.js";import"./timer-BwIYMJWC.js";var i={parser:t,get db(){return new o},renderer:s,styles:a,init:e(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{i as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as t,C as o}from"./chunk-JBRWN2VN-bXiYdBHm.js";import{_ as e}from"./mermaid-Bu7PGvSJ.js";import"./transform-B8bpuzxV.js";import"./chunk-GLLZNHP4-Cit8A-EP.js";import"./chunk-WVR4S24B-BdZs7vKR.js";import"./chunk-NRVI72HA-Caq7CUfs.js";import"./index-CTYfpi2J.js";import"./step-BwsUM5iJ.js";import"./timer-BwIYMJWC.js";var i={parser:t,get db(){return new o},renderer:s,styles:a,init:e(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{i as diagram};
@@ -1 +0,0 @@
1
- import{b as n}from"./_baseUniq-CQqCX6A5.js";function o(r){return n(r,4)}export{o as c};
@@ -1,2 +0,0 @@
1
- import{_ as a,l as i,I as s,d as p,K as n}from"./mermaid-Bu7PGvSJ.js";import{p as m}from"./treemap-75Q7IDZK-Bfo3G5Mq.js";import"./index-CTYfpi2J.js";import"./transform-B8bpuzxV.js";import"./timer-BwIYMJWC.js";import"./step-BwsUM5iJ.js";import"./_baseEach-D3nH_2xn.js";import"./_baseUniq-CQqCX6A5.js";import"./min-BIbDgP5-.js";import"./_baseMap-DLtMmtEG.js";import"./clone-BwvK2dmW.js";import"./_createAggregator-CcFqySRL.js";var d={parse:a(async r=>{const t=await m("info",r);i.debug(t)},"parse")},g={version:n.version+""},v={parser:d,db:{getVersion:a(()=>g.version,"getVersion")},renderer:{draw:a((r,t,o)=>{i.debug(`rendering info diagram
2
- `+r);const e=s(t);p(e,100,400,!0),e.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${o}`)},"draw")}};export{v as diagram};
@@ -1 +0,0 @@
1
- import{s as t,b as a,a as e,S as o}from"./chunk-LXBSTHXV-BP4Soimz.js";import{_ as s}from"./mermaid-Bu7PGvSJ.js";import"./transform-B8bpuzxV.js";import"./chunk-WVR4S24B-BdZs7vKR.js";import"./chunk-NRVI72HA-Caq7CUfs.js";import"./index-CTYfpi2J.js";import"./step-BwsUM5iJ.js";import"./timer-BwIYMJWC.js";var i={parser:e,get db(){return new o(2)},renderer:a,styles:t,init:s(r=>{r.state||(r.state={}),r.state.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{i as diagram};