@marimo-team/frontend 0.23.2-dev25 → 0.23.2-dev6

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 (72) hide show
  1. package/dist/assets/{CellStatus-zTcdYfqx.js → CellStatus-Bwtcvgko.js} +1 -1
  2. package/dist/assets/{JsonOutput-CavtrueA.js → JsonOutput-ZBMYDZ3q.js} +1 -1
  3. package/dist/assets/{MarimoErrorOutput-Bmp8DLLo.js → MarimoErrorOutput-DLREr23s.js} +1 -1
  4. package/dist/assets/{RenderHTML-CM3WMmA8.js → RenderHTML-5FjN3OZH.js} +1 -1
  5. package/dist/assets/{add-cell-with-ai-_Y6SqxBB.js → add-cell-with-ai-DbPkyXyg.js} +1 -1
  6. package/dist/assets/{add-connection-dialog-BGZvJkor.js → add-connection-dialog-sNnLlFNN.js} +1 -1
  7. package/dist/assets/{agent-panel-BvL9Lu9c.js → agent-panel-DMb4Q9pS.js} +1 -1
  8. package/dist/assets/{ai-model-dropdown-Dyxi3_nW.js → ai-model-dropdown-CZB8Xt_D.js} +1 -1
  9. package/dist/assets/{app-config-button-BT2Do4RJ.js → app-config-button-b2p8_NdZ.js} +1 -1
  10. package/dist/assets/{cell-editor-B40o_zx_.js → cell-editor-BhmiBBOV.js} +1 -1
  11. package/dist/assets/{cell-link-CRkrHl-y.js → cell-link-DMyOfytV.js} +1 -1
  12. package/dist/assets/{cells-BqYYXi6G.js → cells-CAft_y9h.js} +56 -56
  13. package/dist/assets/{chat-display-M_nvYuHH.js → chat-display-CnlcyHaA.js} +1 -1
  14. package/dist/assets/{chat-panel-BMOW93uQ.js → chat-panel-DujR1b5z.js} +1 -1
  15. package/dist/assets/{chat-ui-DyeimpVh.js → chat-ui-D-qk0TXi.js} +1 -1
  16. package/dist/assets/{column-preview-AfcgbFG_.js → column-preview-D2B6qQUU.js} +1 -1
  17. package/dist/assets/{command-palette-BgvdyU3B.js → command-palette-eS5sJOYR.js} +1 -1
  18. package/dist/assets/{common-DeoGL9rK.js → common-BK4i6reD.js} +1 -1
  19. package/dist/assets/{components-CDgxb-5o.js → components-CviIANwr.js} +1 -1
  20. package/dist/assets/{components-DKHyHZBv.js → components-Dta3XEEY.js} +1 -1
  21. package/dist/assets/{datasource-COFRe84u.js → datasource-C1kSlT4s.js} +1 -1
  22. package/dist/assets/{dependency-graph-panel-BXSe6z1R.js → dependency-graph-panel-CMZnqwyn.js} +1 -1
  23. package/dist/assets/{documentation-panel-DUPcsi8P.js → documentation-panel-D9WN55Gq.js} +1 -1
  24. package/dist/assets/{download-5XbM3TL_.js → download-COyB8G-Y.js} +1 -1
  25. package/dist/assets/{edit-page-DD4uEDmX.js → edit-page-DlRqSgY9.js} +3 -3
  26. package/dist/assets/{error-panel-DQOeSv5-.js → error-panel-5I4mWGfs.js} +1 -1
  27. package/dist/assets/{file-explorer-panel-B67zjs2X.js → file-explorer-panel-B86r63YC.js} +1 -1
  28. package/dist/assets/{file-icons-Bj5YoM7H.js → file-icons-CRsc39Ny.js} +1 -1
  29. package/dist/assets/{floating-outline-XObNWtN8.js → floating-outline-Cj9Gdjkf.js} +1 -1
  30. package/dist/assets/{focus-DzMo6UAI.js → focus-BtOH5aLt.js} +1 -1
  31. package/dist/assets/{form-BJ6VFU8l.js → form-Dd-gRdD5.js} +1 -1
  32. package/dist/assets/{home-page-BUdd5uTz.js → home-page-B320ImBG.js} +1 -1
  33. package/dist/assets/{hooks-DvwShzDb.js → hooks-B5RY2sms.js} +1 -1
  34. package/dist/assets/{html-to-image-DGqJ93hW.js → html-to-image-WCAzCguU.js} +1 -1
  35. package/dist/assets/{index-y6osgSWB.js → index-BjVgEJVi.js} +18 -18
  36. package/dist/assets/{kiosk-mode-DYHoqMaZ.js → kiosk-mode-CJ7p0kAg.js} +1 -1
  37. package/dist/assets/{layout-erv8pLIP.js → layout-CnhRBcnG.js} +1 -1
  38. package/dist/assets/{logs-panel-CRW4c2IL.js → logs-panel-DG3RlQaY.js} +1 -1
  39. package/dist/assets/{markdown-renderer-DNANigO8.js → markdown-renderer-BDdzHOwK.js} +1 -1
  40. package/dist/assets/{name-cell-input-3iKP6YTw.js → name-cell-input-68gHDuvg.js} +1 -1
  41. package/dist/assets/{outline-panel-VIqWcHj6.js → outline-panel-Dr0105mz.js} +1 -1
  42. package/dist/assets/{packages-panel-D_z4ylBE.js → packages-panel-CZHZDUXZ.js} +1 -1
  43. package/dist/assets/{panels-1u-RE72f.js → panels-DkMIu1eO.js} +1 -1
  44. package/dist/assets/{process-output-Q6wVr7a-.js → process-output-CGSREMph.js} +1 -1
  45. package/dist/assets/{readonly-python-code-CI_b818F.js → readonly-python-code-3lQBDicq.js} +1 -1
  46. package/dist/assets/{run-page-DfWH_1mz.js → run-page-DX60GJ1i.js} +1 -1
  47. package/dist/assets/{scratchpad-panel-CnaiXtoJ.js → scratchpad-panel-DxI-sH1n.js} +1 -1
  48. package/dist/assets/{session-panel-C68GBFwH.js → session-panel-DxZNtbiE.js} +1 -1
  49. package/dist/assets/{snippets-panel-BmIdR0lc.js → snippets-panel-CFXjJW29.js} +1 -1
  50. package/dist/assets/{state-D1n-olwf.js → state-BFn0AerH.js} +1 -1
  51. package/dist/assets/{state-DPomuurt.js → state-CDUQVvOe.js} +1 -1
  52. package/dist/assets/{textarea-CS2o3y4W.js → textarea-CWy4stSy.js} +1 -1
  53. package/dist/assets/{tracing-CPDDwzIA.js → tracing-CIygWG5q.js} +1 -1
  54. package/dist/assets/{tracing-panel-Ku1LapXJ.js → tracing-panel-Dk7FE-7H.js} +2 -2
  55. package/dist/assets/{useAddCell-B6yUY_RG.js → useAddCell-BZ5oFC7U.js} +1 -1
  56. package/dist/assets/{useCellActionButton-SxeK4dmW.js → useCellActionButton-Dd3hgOb6.js} +1 -1
  57. package/dist/assets/{useDeleteCell-DHUjJQJx.js → useDeleteCell-BHcPGuXL.js} +1 -1
  58. package/dist/assets/{useDependencyPanelTab-CflgayoH.js → useDependencyPanelTab-B94SJnJl.js} +1 -1
  59. package/dist/assets/{useNotebookActions-Ch1o32Jw.js → useNotebookActions-PmHNCN16.js} +1 -1
  60. package/dist/assets/{useRunCells-DFYAOTWd.js → useRunCells-BJn5ZEb6.js} +1 -1
  61. package/dist/assets/{useSplitCell-Bh-NZsBl.js → useSplitCell-Bfb8riCm.js} +1 -1
  62. package/dist/index.html +22 -22
  63. package/package.json +1 -1
  64. package/src/components/editor/Output.tsx +1 -1
  65. package/src/core/codemirror/language/languages/python.ts +9 -9
  66. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +8 -1
  67. package/src/core/codemirror/lsp/federated-lsp.ts +2 -2
  68. package/src/core/codemirror/lsp/notebook-lsp.ts +2 -2
  69. package/src/core/codemirror/lsp/utils.ts +21 -6
  70. package/src/plugins/impl/plotly/__tests__/PlotlyPlugin.test.tsx +50 -0
  71. package/src/plugins/impl/plotly/__tests__/selection.test.ts +82 -0
  72. package/src/plugins/impl/plotly/selection.ts +62 -3
@@ -1 +1 @@
1
- import{s as z}from"./chunk-LvLJmgfZ.js";import{l as X}from"./useEvent-D91BmmQi.js";import{t as Z}from"./react-Bj1aDYRI.js";import{Lt as I}from"./cells-BqYYXi6G.js";import{t as H}from"./compiler-runtime-B3qBwwSJ.js";import{S as $,c as ee,i as te,l as se,n as le,u as ae}from"./ai-model-dropdown-Dyxi3_nW.js";import{C as oe,v as ne,w as Q}from"./utils-8btzWeZg.js";import{S as re}from"./config-DoZCLcOb.js";import{t as ie}from"./jsx-runtime-Blw4afVn.js";import{o as ce}from"./alert-dialog-C2mTH3GM.js";import{i as de,r as he,t as me}from"./popover-AtoFZ7i4.js";import{l as R}from"./select-BwwUWhww.js";import{t as U}from"./tooltip-DmqhBBs6.js";import{t as xe}from"./button-COIw2x9i.js";import{s as B}from"./arrays-DAC2orgH.js";import{r as Y}from"./requests-9-v2bhoi.js";import{t as pe}from"./createLucideIcon-w-Qo9n0R.js";import{t as fe}from"./x-Bv2rCglF.js";import{r as D}from"./input-DNCT6U6R.js";import{t as K}from"./settings-C1bg8A2T.js";import{a as M,c as L,d as A,g as ue,i as je,l as P,o as q,p as ve,u as S}from"./textarea-CS2o3y4W.js";import{t as ge}from"./use-toast-BDYuj3zG.js";import{i as be}from"./RSPContexts-DzigvqmT.js";import{n as we}from"./useDebounce-LVL1r3-M.js";import{c as ye,l as Ne,n as Ce,t as V}from"./dialog-H-hXtEOq.js";import{n as ke}from"./ImperativeModal-hsPVDTG-.js";import{t as O}from"./kbd-BUtlbGdu.js";import{t as _e}from"./links-DOybeRem.js";import{t as G}from"./Inputs-6ni2iCdV.js";var Se=pe("power-off",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),Te=H(),s=z(ie(),1);const Me=t=>{let e=(0,Te.c)(15),{description:a,disabled:f,tooltip:r}=t,i=f===void 0?!1:f,u=r===void 0?"Shutdown":r,{openConfirm:b,closeModal:l}=ke(),{sendShutdown:o}=Y(),w;e[0]===o?w=e[1]:(w=()=>{o(),setTimeout(Le,200)},e[0]=o,e[1]=w);let j=w;if(re())return null;let m=i?"disabled":"red",c;e[2]!==l||e[3]!==a||e[4]!==j||e[5]!==b?(c=h=>{h.stopPropagation(),b({title:"Shutdown",description:a,variant:"destructive",confirmAction:(0,s.jsx)(ce,{onClick:()=>{j(),l()},"aria-label":"Confirm Shutdown",children:"Shutdown"})})},e[2]=l,e[3]=a,e[4]=j,e[5]=b,e[6]=c):c=e[6];let n;e[7]===Symbol.for("react.memo_cache_sentinel")?(n=(0,s.jsx)(fe,{strokeWidth:1}),e[7]=n):n=e[7];let d;e[8]!==i||e[9]!==m||e[10]!==c?(d=(0,s.jsx)(G,{"aria-label":"Shutdown","data-testid":"shutdown-button",shape:"circle",size:"small",color:m,className:"h-[27px] w-[27px]",disabled:i,onClick:c,children:n}),e[8]=i,e[9]=m,e[10]=c,e[11]=d):d=e[11];let x;return e[12]!==d||e[13]!==u?(x=(0,s.jsx)(U,{content:u,children:d}),e[12]=d,e[13]=u,e[14]=x):x=e[14],x};function Le(){window.close()}var J=H(),W=z(Z(),1),Ae=100;const Pe=()=>{let t=(0,J.c)(37),[e,a]=ne(),{saveAppConfig:f}=Y(),r=(0,W.useId)(),i=(0,W.useId)(),u;t[0]===Symbol.for("react.memo_cache_sentinel")?(u=ve(oe),t[0]=u):u=t[0];let b;t[1]===e?b=t[2]:(b={resolver:u,defaultValues:e},t[1]=e,t[2]=b);let l=ue(b),o;t[3]!==f||t[4]!==a?(o=async p=>{await f({config:p}).then(()=>{a(p)}).catch(()=>{a(p)})},t[3]=f,t[4]=a,t[5]=o):o=t[5];let w=o,j;t[6]===w?j=t[7]:(j=p=>{w(p)},t[6]=w,t[7]=j);let m=we(j,Ae),c;t[8]===e.width?c=t[9]:(c=[e.width],t[8]=e.width,t[9]=c),(0,W.useEffect)(qe,c);let n;t[10]!==m||t[11]!==l?(n=l.handleSubmit(m),t[10]=m,t[11]=l,t[12]=n):n=t[12];let d;t[13]===Symbol.for("react.memo_cache_sentinel")?(d=(0,s.jsxs)("div",{children:[(0,s.jsx)(ae,{children:"Notebook Settings"}),(0,s.jsx)(se,{children:"Configure how your notebook or application looks and behaves."})]}),t[13]=d):d=t[13];let x;t[14]===l.control?x=t[15]:(x=(0,s.jsxs)(F,{title:"Display",children:[(0,s.jsx)(L,{control:l.control,name:"width",render:Fe}),(0,s.jsx)(L,{control:l.control,name:"app_title",render:He})]}),t[14]=l.control,t[15]=x);let h;t[16]===l.control?h=t[17]:(h=(0,s.jsxs)(F,{title:"Custom Files",children:[(0,s.jsx)(L,{control:l.control,name:"css_file",render:De}),(0,s.jsx)(L,{control:l.control,name:"html_head_file",render:Oe})]}),t[16]=l.control,t[17]=h);let y;t[18]===l.control?y=t[19]:(y=(0,s.jsx)(F,{title:"Data",children:(0,s.jsx)(L,{control:l.control,name:"sql_output",render:ze})}),t[18]=l.control,t[19]=y);let N;t[20]!==r||t[21]!==i?(N=p=>{let{field:_}=p;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-col gap-2",children:[(0,s.jsx)(M,{children:(0,s.jsxs)("div",{className:"flex gap-4",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(I,{id:r,"data-testid":"html-checkbox",checked:_.value.includes("html"),onCheckedChange:()=>{_.onChange(B(_.value,"html"))}}),(0,s.jsx)(S,{htmlFor:r,children:"HTML"})]}),(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(I,{id:i,"data-testid":"ipynb-checkbox",checked:_.value.includes("ipynb"),onCheckedChange:()=>{_.onChange(B(_.value,"ipynb"))}}),(0,s.jsx)(S,{htmlFor:i,children:"IPYNB"})]})]})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(q,{children:["When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named"," ",(0,s.jsx)(O,{className:"inline",children:"__marimo__"})," next to your notebook file."]})]})},t[20]=r,t[21]=i,t[22]=N):N=t[22];let v;t[23]!==l.control||t[24]!==N?(v=(0,s.jsx)(F,{title:"Exporting outputs",children:(0,s.jsx)(L,{control:l.control,name:"auto_download",render:N})}),t[23]=l.control,t[24]=N,t[25]=v):v=t[25];let C;t[26]!==v||t[27]!==x||t[28]!==h||t[29]!==y?(C=(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-x-8 gap-y-4",children:[x,h,y,v]}),t[26]=v,t[27]=x,t[28]=h,t[29]=y,t[30]=C):C=t[30];let g;t[31]!==C||t[32]!==n?(g=(0,s.jsxs)("form",{onChange:n,className:"flex flex-col gap-6",children:[d,C]}),t[31]=C,t[32]=n,t[33]=g):g=t[33];let k;return t[34]!==l||t[35]!==g?(k=(0,s.jsx)(je,{...l,children:g}),t[34]=l,t[35]=g,t[36]=k):k=t[36],k};var F=t=>{let e=(0,J.c)(5),{title:a,children:f}=t,r;e[0]===a?r=e[1]:(r=(0,s.jsx)("h3",{className:"text-base font-semibold mb-1",children:a}),e[0]=a,e[1]=r);let i;return e[2]!==f||e[3]!==r?(i=(0,s.jsxs)("div",{className:"flex flex-col gap-y-2",children:[r,f]}),e[2]=f,e[3]=r,e[4]=i):i=e[4],i};function qe(){window.dispatchEvent(new Event("resize"))}function Ee(t){return(0,s.jsx)("option",{value:t,children:t},t)}function Fe(t){let{field:e}=t;return(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"Width"}),(0,s.jsx)(M,{children:(0,s.jsx)(R,{"data-testid":"app-width-select",onChange:a=>e.onChange(a.target.value),value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:$().map(Ee)})}),(0,s.jsx)(A,{})]})}function He(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"App title"}),(0,s.jsx)(M,{children:(0,s.jsx)(D,{...e,value:e.value??"",onChange:a=>{e.onChange(a.target.value),Q.safeParse(a.target.value).success&&(document.title=a.target.value)}})}),(0,s.jsx)(A,{})]}),(0,s.jsx)(q,{children:"The application title is put in the title tag in the HTML code and typically displayed in the title bar of the browser window."})]})}function De(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{className:"shrink-0",children:"Custom CSS"}),(0,s.jsx)(M,{children:(0,s.jsx)(D,{...e,value:e.value??"",placeholder:"custom.css",onChange:a=>{e.onChange(a.target.value),Q.safeParse(a.target.value).success&&(document.title=a.target.value)}})}),(0,s.jsx)(A,{})]}),(0,s.jsx)(q,{children:"A filepath to a custom css file to be injected into the notebook."})]})}function Oe(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{className:"shrink-0",children:"HTML Head"}),(0,s.jsx)(M,{children:(0,s.jsx)(D,{...e,value:e.value??"",placeholder:"head.html",onChange:a=>{e.onChange(a.target.value)}})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(q,{children:["A filepath to an HTML file to be injected into the"," ",(0,s.jsx)(O,{className:"inline",children:"<head/>"})," section of the notebook. Use this to add analytics, custom fonts, meta tags, or external scripts."]})]})}function We(t){return(0,s.jsx)("option",{value:t.value,children:t.label},t.value)}function ze(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"SQL Output Type"}),(0,s.jsx)(M,{children:(0,s.jsx)(R,{"data-testid":"sql-output-select",onChange:a=>{e.onChange(a.target.value),ge({title:"Kernel Restart Required",description:"This change requires a kernel restart to take effect."})},value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:ee.map(We)})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(q,{children:["The Python type returned by a SQL cell. For best performance with large datasets, we recommend using"," ",(0,s.jsx)(O,{className:"inline",children:"native"}),". See the"," ",(0,s.jsx)(_e,{href:"https://docs.marimo.io/guides/working_with_data/sql",children:"SQL guide"})," ","for more information."]})]})}var Ie=H();const Qe=t=>{let e=(0,Ie.c)(32),{showAppConfig:a,disabled:f,tooltip:r}=t,i=a===void 0?!0:a,u=f===void 0?!1:f,b=r===void 0?"Settings":r,[l,o]=X(le),w=u?"disabled":"hint-green",j;e[0]===Symbol.for("react.memo_cache_sentinel")?(j=(0,s.jsx)(K,{strokeWidth:1.8}),e[0]=j):j=e[0];let m;e[1]===b?m=e[2]:(m=(0,s.jsx)(U,{content:b,children:j}),e[1]=b,e[2]=m);let c;e[3]!==u||e[4]!==w||e[5]!==m?(c=(0,s.jsx)(G,{"aria-label":"Config","data-testid":"app-config-button",shape:"circle",size:"small",className:"h-[27px] w-[27px]",disabled:u,color:w,children:m}),e[3]=u,e[4]=w,e[5]=m,e[6]=c):c=e[6];let n=c,d;e[7]===Symbol.for("react.memo_cache_sentinel")?(d=(0,s.jsxs)(Ce,{className:"w-[90vw] h-[90vh] overflow-hidden sm:max-w-5xl top-[5vh] p-0",children:[(0,s.jsx)(be,{children:(0,s.jsx)(ye,{children:"User settings"})}),(0,s.jsx)(te,{})]}),e[7]=d):d=e[7];let x=d;if(!i){let T;e[8]===n?T=e[9]:(T=(0,s.jsx)(Ne,{children:n}),e[8]=n,e[9]=T);let E;return e[10]!==o||e[11]!==l||e[12]!==T?(E=(0,s.jsxs)(V,{open:l,onOpenChange:o,children:[T,x]}),e[10]=o,e[11]=l,e[12]=T,e[13]=E):E=e[13],E}let h;e[14]===n?h=e[15]:(h=(0,s.jsx)(de,{asChild:!0,children:n}),e[14]=n,e[15]=h);let y,N;e[16]===Symbol.for("react.memo_cache_sentinel")?(y=(0,s.jsx)(Pe,{}),N=(0,s.jsx)("div",{className:"h-px bg-border my-2"}),e[16]=y,e[17]=N):(y=e[16],N=e[17]);let v;e[18]===o?v=e[19]:(v=()=>o(!0),e[18]=o,e[19]=v);let C;e[20]===Symbol.for("react.memo_cache_sentinel")?(C=(0,s.jsx)(K,{strokeWidth:1.8,className:"w-4 h-4 mr-2"}),e[20]=C):C=e[20];let g;e[21]===v?g=e[22]:(g=(0,s.jsxs)(he,{className:"w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]",align:"end",side:"bottom",onFocusOutside:Re,children:[y,N,(0,s.jsxs)(xe,{onClick:v,variant:"link",className:"px-0",children:[C,"User settings"]})]}),e[21]=v,e[22]=g);let k;e[23]!==g||e[24]!==h?(k=(0,s.jsxs)(me,{children:[h,g]}),e[23]=g,e[24]=h,e[25]=k):k=e[25];let p;e[26]!==o||e[27]!==l?(p=(0,s.jsx)(V,{open:l,onOpenChange:o,children:x}),e[26]=o,e[27]=l,e[28]=p):p=e[28];let _;return e[29]!==k||e[30]!==p?(_=(0,s.jsxs)(s.Fragment,{children:[k,p]}),e[29]=k,e[30]=p,e[31]=_):_=e[31],_};function Re(t){return t.preventDefault()}export{Me as n,Se as r,Qe as t};
1
+ import{s as z}from"./chunk-LvLJmgfZ.js";import{l as X}from"./useEvent-D91BmmQi.js";import{t as Z}from"./react-Bj1aDYRI.js";import{Lt as I}from"./cells-CAft_y9h.js";import{t as H}from"./compiler-runtime-B3qBwwSJ.js";import{S as $,c as ee,i as te,l as se,n as le,u as ae}from"./ai-model-dropdown-CZB8Xt_D.js";import{C as oe,v as ne,w as Q}from"./utils-8btzWeZg.js";import{S as re}from"./config-DoZCLcOb.js";import{t as ie}from"./jsx-runtime-Blw4afVn.js";import{o as ce}from"./alert-dialog-C2mTH3GM.js";import{i as de,r as he,t as me}from"./popover-AtoFZ7i4.js";import{l as R}from"./select-BwwUWhww.js";import{t as U}from"./tooltip-DmqhBBs6.js";import{t as xe}from"./button-COIw2x9i.js";import{s as B}from"./arrays-DAC2orgH.js";import{r as Y}from"./requests-9-v2bhoi.js";import{t as pe}from"./createLucideIcon-w-Qo9n0R.js";import{t as fe}from"./x-Bv2rCglF.js";import{r as D}from"./input-DNCT6U6R.js";import{t as K}from"./settings-C1bg8A2T.js";import{a as M,c as L,d as A,g as ue,i as je,l as P,o as q,p as ve,u as S}from"./textarea-CWy4stSy.js";import{t as ge}from"./use-toast-BDYuj3zG.js";import{i as be}from"./RSPContexts-DzigvqmT.js";import{n as we}from"./useDebounce-LVL1r3-M.js";import{c as ye,l as Ne,n as Ce,t as V}from"./dialog-H-hXtEOq.js";import{n as ke}from"./ImperativeModal-hsPVDTG-.js";import{t as O}from"./kbd-BUtlbGdu.js";import{t as _e}from"./links-DOybeRem.js";import{t as G}from"./Inputs-6ni2iCdV.js";var Se=pe("power-off",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),Te=H(),s=z(ie(),1);const Me=t=>{let e=(0,Te.c)(15),{description:a,disabled:f,tooltip:r}=t,i=f===void 0?!1:f,u=r===void 0?"Shutdown":r,{openConfirm:b,closeModal:l}=ke(),{sendShutdown:o}=Y(),w;e[0]===o?w=e[1]:(w=()=>{o(),setTimeout(Le,200)},e[0]=o,e[1]=w);let j=w;if(re())return null;let m=i?"disabled":"red",c;e[2]!==l||e[3]!==a||e[4]!==j||e[5]!==b?(c=h=>{h.stopPropagation(),b({title:"Shutdown",description:a,variant:"destructive",confirmAction:(0,s.jsx)(ce,{onClick:()=>{j(),l()},"aria-label":"Confirm Shutdown",children:"Shutdown"})})},e[2]=l,e[3]=a,e[4]=j,e[5]=b,e[6]=c):c=e[6];let n;e[7]===Symbol.for("react.memo_cache_sentinel")?(n=(0,s.jsx)(fe,{strokeWidth:1}),e[7]=n):n=e[7];let d;e[8]!==i||e[9]!==m||e[10]!==c?(d=(0,s.jsx)(G,{"aria-label":"Shutdown","data-testid":"shutdown-button",shape:"circle",size:"small",color:m,className:"h-[27px] w-[27px]",disabled:i,onClick:c,children:n}),e[8]=i,e[9]=m,e[10]=c,e[11]=d):d=e[11];let x;return e[12]!==d||e[13]!==u?(x=(0,s.jsx)(U,{content:u,children:d}),e[12]=d,e[13]=u,e[14]=x):x=e[14],x};function Le(){window.close()}var J=H(),W=z(Z(),1),Ae=100;const Pe=()=>{let t=(0,J.c)(37),[e,a]=ne(),{saveAppConfig:f}=Y(),r=(0,W.useId)(),i=(0,W.useId)(),u;t[0]===Symbol.for("react.memo_cache_sentinel")?(u=ve(oe),t[0]=u):u=t[0];let b;t[1]===e?b=t[2]:(b={resolver:u,defaultValues:e},t[1]=e,t[2]=b);let l=ue(b),o;t[3]!==f||t[4]!==a?(o=async p=>{await f({config:p}).then(()=>{a(p)}).catch(()=>{a(p)})},t[3]=f,t[4]=a,t[5]=o):o=t[5];let w=o,j;t[6]===w?j=t[7]:(j=p=>{w(p)},t[6]=w,t[7]=j);let m=we(j,Ae),c;t[8]===e.width?c=t[9]:(c=[e.width],t[8]=e.width,t[9]=c),(0,W.useEffect)(qe,c);let n;t[10]!==m||t[11]!==l?(n=l.handleSubmit(m),t[10]=m,t[11]=l,t[12]=n):n=t[12];let d;t[13]===Symbol.for("react.memo_cache_sentinel")?(d=(0,s.jsxs)("div",{children:[(0,s.jsx)(ae,{children:"Notebook Settings"}),(0,s.jsx)(se,{children:"Configure how your notebook or application looks and behaves."})]}),t[13]=d):d=t[13];let x;t[14]===l.control?x=t[15]:(x=(0,s.jsxs)(F,{title:"Display",children:[(0,s.jsx)(L,{control:l.control,name:"width",render:Fe}),(0,s.jsx)(L,{control:l.control,name:"app_title",render:He})]}),t[14]=l.control,t[15]=x);let h;t[16]===l.control?h=t[17]:(h=(0,s.jsxs)(F,{title:"Custom Files",children:[(0,s.jsx)(L,{control:l.control,name:"css_file",render:De}),(0,s.jsx)(L,{control:l.control,name:"html_head_file",render:Oe})]}),t[16]=l.control,t[17]=h);let y;t[18]===l.control?y=t[19]:(y=(0,s.jsx)(F,{title:"Data",children:(0,s.jsx)(L,{control:l.control,name:"sql_output",render:ze})}),t[18]=l.control,t[19]=y);let N;t[20]!==r||t[21]!==i?(N=p=>{let{field:_}=p;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-col gap-2",children:[(0,s.jsx)(M,{children:(0,s.jsxs)("div",{className:"flex gap-4",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(I,{id:r,"data-testid":"html-checkbox",checked:_.value.includes("html"),onCheckedChange:()=>{_.onChange(B(_.value,"html"))}}),(0,s.jsx)(S,{htmlFor:r,children:"HTML"})]}),(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(I,{id:i,"data-testid":"ipynb-checkbox",checked:_.value.includes("ipynb"),onCheckedChange:()=>{_.onChange(B(_.value,"ipynb"))}}),(0,s.jsx)(S,{htmlFor:i,children:"IPYNB"})]})]})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(q,{children:["When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named"," ",(0,s.jsx)(O,{className:"inline",children:"__marimo__"})," next to your notebook file."]})]})},t[20]=r,t[21]=i,t[22]=N):N=t[22];let v;t[23]!==l.control||t[24]!==N?(v=(0,s.jsx)(F,{title:"Exporting outputs",children:(0,s.jsx)(L,{control:l.control,name:"auto_download",render:N})}),t[23]=l.control,t[24]=N,t[25]=v):v=t[25];let C;t[26]!==v||t[27]!==x||t[28]!==h||t[29]!==y?(C=(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-x-8 gap-y-4",children:[x,h,y,v]}),t[26]=v,t[27]=x,t[28]=h,t[29]=y,t[30]=C):C=t[30];let g;t[31]!==C||t[32]!==n?(g=(0,s.jsxs)("form",{onChange:n,className:"flex flex-col gap-6",children:[d,C]}),t[31]=C,t[32]=n,t[33]=g):g=t[33];let k;return t[34]!==l||t[35]!==g?(k=(0,s.jsx)(je,{...l,children:g}),t[34]=l,t[35]=g,t[36]=k):k=t[36],k};var F=t=>{let e=(0,J.c)(5),{title:a,children:f}=t,r;e[0]===a?r=e[1]:(r=(0,s.jsx)("h3",{className:"text-base font-semibold mb-1",children:a}),e[0]=a,e[1]=r);let i;return e[2]!==f||e[3]!==r?(i=(0,s.jsxs)("div",{className:"flex flex-col gap-y-2",children:[r,f]}),e[2]=f,e[3]=r,e[4]=i):i=e[4],i};function qe(){window.dispatchEvent(new Event("resize"))}function Ee(t){return(0,s.jsx)("option",{value:t,children:t},t)}function Fe(t){let{field:e}=t;return(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"Width"}),(0,s.jsx)(M,{children:(0,s.jsx)(R,{"data-testid":"app-width-select",onChange:a=>e.onChange(a.target.value),value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:$().map(Ee)})}),(0,s.jsx)(A,{})]})}function He(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"App title"}),(0,s.jsx)(M,{children:(0,s.jsx)(D,{...e,value:e.value??"",onChange:a=>{e.onChange(a.target.value),Q.safeParse(a.target.value).success&&(document.title=a.target.value)}})}),(0,s.jsx)(A,{})]}),(0,s.jsx)(q,{children:"The application title is put in the title tag in the HTML code and typically displayed in the title bar of the browser window."})]})}function De(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{className:"shrink-0",children:"Custom CSS"}),(0,s.jsx)(M,{children:(0,s.jsx)(D,{...e,value:e.value??"",placeholder:"custom.css",onChange:a=>{e.onChange(a.target.value),Q.safeParse(a.target.value).success&&(document.title=a.target.value)}})}),(0,s.jsx)(A,{})]}),(0,s.jsx)(q,{children:"A filepath to a custom css file to be injected into the notebook."})]})}function Oe(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{className:"shrink-0",children:"HTML Head"}),(0,s.jsx)(M,{children:(0,s.jsx)(D,{...e,value:e.value??"",placeholder:"head.html",onChange:a=>{e.onChange(a.target.value)}})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(q,{children:["A filepath to an HTML file to be injected into the"," ",(0,s.jsx)(O,{className:"inline",children:"<head/>"})," section of the notebook. Use this to add analytics, custom fonts, meta tags, or external scripts."]})]})}function We(t){return(0,s.jsx)("option",{value:t.value,children:t.label},t.value)}function ze(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"SQL Output Type"}),(0,s.jsx)(M,{children:(0,s.jsx)(R,{"data-testid":"sql-output-select",onChange:a=>{e.onChange(a.target.value),ge({title:"Kernel Restart Required",description:"This change requires a kernel restart to take effect."})},value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:ee.map(We)})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(q,{children:["The Python type returned by a SQL cell. For best performance with large datasets, we recommend using"," ",(0,s.jsx)(O,{className:"inline",children:"native"}),". See the"," ",(0,s.jsx)(_e,{href:"https://docs.marimo.io/guides/working_with_data/sql",children:"SQL guide"})," ","for more information."]})]})}var Ie=H();const Qe=t=>{let e=(0,Ie.c)(32),{showAppConfig:a,disabled:f,tooltip:r}=t,i=a===void 0?!0:a,u=f===void 0?!1:f,b=r===void 0?"Settings":r,[l,o]=X(le),w=u?"disabled":"hint-green",j;e[0]===Symbol.for("react.memo_cache_sentinel")?(j=(0,s.jsx)(K,{strokeWidth:1.8}),e[0]=j):j=e[0];let m;e[1]===b?m=e[2]:(m=(0,s.jsx)(U,{content:b,children:j}),e[1]=b,e[2]=m);let c;e[3]!==u||e[4]!==w||e[5]!==m?(c=(0,s.jsx)(G,{"aria-label":"Config","data-testid":"app-config-button",shape:"circle",size:"small",className:"h-[27px] w-[27px]",disabled:u,color:w,children:m}),e[3]=u,e[4]=w,e[5]=m,e[6]=c):c=e[6];let n=c,d;e[7]===Symbol.for("react.memo_cache_sentinel")?(d=(0,s.jsxs)(Ce,{className:"w-[90vw] h-[90vh] overflow-hidden sm:max-w-5xl top-[5vh] p-0",children:[(0,s.jsx)(be,{children:(0,s.jsx)(ye,{children:"User settings"})}),(0,s.jsx)(te,{})]}),e[7]=d):d=e[7];let x=d;if(!i){let T;e[8]===n?T=e[9]:(T=(0,s.jsx)(Ne,{children:n}),e[8]=n,e[9]=T);let E;return e[10]!==o||e[11]!==l||e[12]!==T?(E=(0,s.jsxs)(V,{open:l,onOpenChange:o,children:[T,x]}),e[10]=o,e[11]=l,e[12]=T,e[13]=E):E=e[13],E}let h;e[14]===n?h=e[15]:(h=(0,s.jsx)(de,{asChild:!0,children:n}),e[14]=n,e[15]=h);let y,N;e[16]===Symbol.for("react.memo_cache_sentinel")?(y=(0,s.jsx)(Pe,{}),N=(0,s.jsx)("div",{className:"h-px bg-border my-2"}),e[16]=y,e[17]=N):(y=e[16],N=e[17]);let v;e[18]===o?v=e[19]:(v=()=>o(!0),e[18]=o,e[19]=v);let C;e[20]===Symbol.for("react.memo_cache_sentinel")?(C=(0,s.jsx)(K,{strokeWidth:1.8,className:"w-4 h-4 mr-2"}),e[20]=C):C=e[20];let g;e[21]===v?g=e[22]:(g=(0,s.jsxs)(he,{className:"w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]",align:"end",side:"bottom",onFocusOutside:Re,children:[y,N,(0,s.jsxs)(xe,{onClick:v,variant:"link",className:"px-0",children:[C,"User settings"]})]}),e[21]=v,e[22]=g);let k;e[23]!==g||e[24]!==h?(k=(0,s.jsxs)(me,{children:[h,g]}),e[23]=g,e[24]=h,e[25]=k):k=e[25];let p;e[26]!==o||e[27]!==l?(p=(0,s.jsx)(V,{open:l,onOpenChange:o,children:x}),e[26]=o,e[27]=l,e[28]=p):p=e[28];let _;return e[29]!==k||e[30]!==p?(_=(0,s.jsxs)(s.Fragment,{children:[k,p]}),e[29]=k,e[30]=p,e[31]=_):_=e[31],_};function Re(t){return t.preventDefault()}export{Me as n,Se as r,Qe as t};
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./loro_wasm_bg-BQvuJIS2.js","./loro_wasm_bg-B_AVgvOe.js","./chunk-LvLJmgfZ.js"])))=>i.map(i=>d[i]);
2
- var td=Object.defineProperty;var Ta=ne=>{throw TypeError(ne)};var nd=(ne,z,pe)=>z in ne?td(ne,z,{enumerable:!0,configurable:!0,writable:!0,value:pe}):ne[z]=pe;var p=(ne,z,pe)=>nd(ne,typeof z!="symbol"?z+"":z,pe),rd=(ne,z,pe)=>z.has(ne)||Ta("Cannot "+pe);var Ia=(ne,z,pe)=>(rd(ne,z,"read from private field"),pe?pe.call(ne):z.get(ne)),Fa=(ne,z,pe)=>z.has(ne)?Ta("Cannot add the same private member more than once"):z instanceof WeakSet?z.add(ne):z.set(ne,pe);import{s as La}from"./chunk-LvLJmgfZ.js";import{d as Oa,f as pr,i as Z,l as yn,n as se,p as Ot,s as wn,u as ie}from"./useEvent-D91BmmQi.js";import{t as od}from"./react-Bj1aDYRI.js";import{$t as ad,B as Da,Bn as id,Ct as vn,E as En,Et as Dt,F as sd,Fn as ld,G as _a,Gr as cd,Gt as ud,H as Ua,Hr as gr,In as dd,Ir as fd,Kt as hr,Ln as md,Lt as pd,Rt as Ba,Sn as br,St as yr,Ti as Nn,Tt as gd,U as ja,V as hd,Wn as bd,Wr as yd,Xr as Pa,Xt as Ma,Yr as wd,Yt as wr,Zt as Ra,_n as vd,a as Ga,b as et,d as Ja,en as Ed,fn as Nd,ft as vr,gi as kd,h as Er,hn as Cd,in as kn,it as Sd,kn as xd,kt as Ad,ot as Td,pi as Wa,pt as Id,sn as Fd,tn as Ld,u as Va,ur as Od,vn as Dd,wt as _d,xt as Ud,yn as Bd,zn as $a,__tla as jd}from"./cells-BqYYXi6G.js";import{P as Ha,R as Pd,k as Md,w as Rd}from"./zod-H_cgTO0M.js";import{t as Ge}from"./compiler-runtime-B3qBwwSJ.js";import{C as Gd,f as Jd,m as Wd,p as Vd,t as $d,v as Hd,w as qd}from"./ai-model-dropdown-Dyxi3_nW.js";import{_ as Ve,c as qa,h as Nr,t as zd,v as Kd}from"./useEventListener-DGjKht0c.js";import{t as _t}from"./invariant-CkiqGLcK.js";import{S as kr,h as za,m as Yd,o as Xd,p as Ka,s as Ya}from"./utils-8btzWeZg.js";import{S as Qd,d as Zd,h as gt,o as ef,r as Xa,x as Ut,y as Qa}from"./config-DoZCLcOb.js";import{n as tf,t as nf}from"./switch-YkPg_CVc.js";import{n as rf}from"./globals-Bu6OEURn.js";import{t as of}from"./ErrorBoundary-CxTq44MI.js";import{t as it}from"./cn-DYvqRARy.js";import{t as af}from"./jsx-runtime-Blw4afVn.js";import{l as sf,r as lf,t as cf}from"./popover-AtoFZ7i4.js";import{N as uf,__tla as df}from"./JsonOutput-CavtrueA.js";import{t as Cr}from"./label-C89F4v17.js";import{r as ff}from"./download-5XbM3TL_.js";import{t as Cn}from"./tooltip-DmqhBBs6.js";import{r as Sr,t as st}from"./button-COIw2x9i.js";import{Bt as ht,Ct as Za,Dt as mf,E as pf,Ft as xr,H as ei,Ht as Bt,I as gf,J as l,Jt as fe,Kt as hf,Lt as Sn,Mt as bf,P as yf,St as Je,V as ti,Vt as Ar,Wt as lt,Yt as $e,Zt as jt,_ as wf,a as vf,at as P,bt as Ef,ct as Ye,en as xn,ft as Nf,it as kf,lt as An,m as Cf,pt as Sf,rt as H,st as xf,vt as Af,w as Tf,wt as If,yt as Ff,zt as Lf}from"./dist-VwkX7yeV.js";import{C as Of,D as Df,_ as _f,a as Uf,c as Bf,n as Tr,r as jf,v as Pf,x as Mf,y as Rf}from"./dist-DZJfxwLb.js";import{o as ni}from"./arrays-DAC2orgH.js";import{n as Gf}from"./once-hq2TLzOp.js";import{t as Ir}from"./createReducer-CYlwteGD.js";import{a as Jf,c as Wf,f as Tn,h as Vf,i as $f,l as Pt,n as ri,o as Hf,t as qf}from"./dist-BNTOYRCs.js";import{t as zf}from"./main-BNL5rxQw.js";import{r as In,t as Kf}from"./requests-9-v2bhoi.js";import{t as Yf}from"./createLucideIcon-w-Qo9n0R.js";import{r as oi,t as Xf,__tla as Qf}from"./layout-erv8pLIP.js";import{t as Zf}from"./x-Bv2rCglF.js";import{t as em}from"./circle-check-DlWaawuO.js";import{A as tm,E as ai,O as nm,T as rm,a as ii,d as om,n as am,o as im,r as si,s as sm,x as lm}from"./add-cell-with-ai-_Y6SqxBB.js";import{r as cm,t as um}from"./file-icons-Bj5YoM7H.js";import{n as dm}from"./spinner-C5wIpWgQ.js";import{t as li}from"./save-bKSHuTCo.js";import{Y as fm,Z as ci}from"./input-DNCT6U6R.js";import{t as mm}from"./sparkles-B79Qf6ma.js";import{t as pm}from"./preload-helper-D2MJg03u.js";import{t as bt}from"./use-toast-BDYuj3zG.js";import{n as Xe}from"./paths-BzSgteR-.js";import{t as gm}from"./session-DdnWW30b.js";import{r as hm}from"./useTheme-DCDmxPD0.js";import{n as bm}from"./copy-Bizk-4hH.js";import{k as ym}from"./usePress-BXMIcLWP.js";import{a as wm}from"./useRunCells-DFYAOTWd.js";import{c as ui,i as di,n as fi,r as vm}from"./dialog-H-hXtEOq.js";import{t as mi}from"./useHotkey-DALUNe8I.js";import{n as pi}from"./ImperativeModal-hsPVDTG-.js";import{r as Em}from"./errors-CZb6hI2x.js";import{t as Y}from"./extends-Co37_JfG.js";import{t as Mt}from"./objectWithoutPropertiesLoose-smPWkHxB.js";import{t as Nm}from"./kbd-BUtlbGdu.js";import{a as Fr}from"./useInstallPackage-CeM6oPsT.js";import{i as km,n as gi}from"./state-DPomuurt.js";import{a as Cm,o as Sm}from"./cell-link-CRkrHl-y.js";import{n as xm}from"./useAsyncData-aCoWDe-l.js";import{a as Am,o as hi,r as Tm,s as bi,t as Im}from"./command-DnzBp4l4.js";import{r as yi}from"./html-to-image-DGqJ93hW.js";import{a as Fm}from"./focus-DzMo6UAI.js";import{a as wi}from"./renderShortcut-DrDh2657.js";import{n as Lm,t as Om}from"./icons-DlzgV4KY.js";import{n as yt}from"./esm-BqofWdD5.js";import{t as vi}from"./dist-C80Ed7Y5.js";import{n as Lr,t as Ei}from"./useDeleteCell-DHUjJQJx.js";import{t as Dm}from"./useSplitCell-Bh-NZsBl.js";import{co as _m,do as Or,fo as Um,ft as Bm,go as wt,ho as Ni,lo as Dr,mo as ki,oo as jm,po as Pm,so as Ci,uo as Si,__tla as Mm}from"./loro_wasm_bg-B_AVgvOe.js";import{t as Rm}from"./ws-BApgRfsy.js";import{t as xi}from"./Inputs-6ni2iCdV.js";import{n as Gm}from"./hooks-DvwShzDb.js";let Fn,_r,Ai,Ur,ct,Br,he,Rt,Gt,Ti,Ii,Fi,Li,Oi,Ln,Di,On,_i,Dn,Jm=Promise.all([(()=>{try{return jd}catch{}})(),(()=>{try{return df}catch{}})(),(()=>{try{return Qf}catch{}})(),(()=>{try{return Mm}catch{}})()]).then(async()=>{var bn,Aa,ye,we,ve,Ee,Ne,ke,Ce,Se,xe,Ae,Te,Ie,Fe,Le,Oe,De,_e,Ue,Be;var ne=Yf("file-pen",[["path",{d:"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34",key:"o6klzx"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",key:"zhnas1"}]]);const z={showInput:"Mod-l",acceptEdit:"Mod-y",rejectEdit:"Mod-u"};var pe=300;const Et=Bt.define({combine:e=>xn(e,{onError:console.error,inputDebounceTime:pe,keymaps:z},{onError:(t,n)=>t&&n,inputDebounceTime:(t,n)=>t&&n,keymaps:(t,n)=>t&&n})}),tt=fe.define(),nt=$e.define({create(){return{show:!1,lineFrom:0,lineTo:0}},update(e,t){for(let n of t.effects)if(n.is(tt))return n.value;return e}}),Nt=fe.define(),kt=fe.define(),Pr=$e.define({create(){return{shouldFocus:!1,inputValue:""}},update(e,t){let n=e;for(let r of t.effects)r.is(Nt)&&(n={...n,inputValue:r.value}),r.is(kt)&&(n={...n,shouldFocus:r.value});return n}}),Jt=fe.define(),Ct=$e.define({create(){return null},update(e,t){for(let n of t.effects)if(n.is(Jt))return n.value;return e}}),ut=fe.define(),Mr=$e.define({create(){return!1},update(e,t){for(let n of t.effects)if(n.is(ut))return n.value;return e}});var Ui=1;const Rr=e=>{let{state:t}=e,n=t.selection.main;if(n.empty)return!1;let r=t.doc,o=r.lineAt(n.from),a=r.lineAt(n.to);if(t.sliceDoc(o.from,a.to).trim().length<Ui)return!1;let i=Math.max(1,Math.min(o.number,r.lines)),s=Math.max(1,Math.min(a.number,r.lines));return e.dispatch({effects:[tt.of({show:!0,lineFrom:i,lineTo:s}),kt.of(!0),Nt.of("")],selection:ht.cursor(o.from)}),!0},Gr=e=>e.state.field(Ct)?(e.dispatch({effects:[Jt.of(null),tt.of({show:!1,lineFrom:0,lineTo:0}),kt.of(!1),Nt.of(""),ut.of(!1)]}),!0):!1,Jr=e=>{let t=e.state.field(Ct);return t?(e.dispatch({changes:{from:t.from,to:t.to,insert:t.oldCode},effects:[Jt.of(null),tt.of({show:!1,lineFrom:0,lineTo:0}),kt.of(!1),Nt.of(""),ut.of(!1)]}),!0):!1};var _n={mac:"\u2318",windows:"\u229E Win",default:"Ctrl"};function Bi(){return navigator.platform.startsWith("Mac")?_n.mac:navigator.platform.startsWith("Win")?_n.windows:_n.default}function Un(e){return e.replace("Mod",Bi()).replace("-"," ").toUpperCase()}function ce(e,t){let n=document.createElement(e);return n.className=t,n}function ji(e,t,n=void 0){let r=()=>{};return(...o)=>(r(),new Promise((a,i)=>{let s=setTimeout(()=>a(e(...o)),t);r=()=>{clearTimeout(s),n!==void 0&&i(n)}}))}var Wt=$e.define({create(){return{suggestion:null}},update(e,t){let n=t.effects.find(r=>r.is(Vt));return!t.docChanged&&!n&&!t.selection?e:n&&t.state.doc===n.value.doc?{suggestion:n.value.text}:{suggestion:null}}}),Vt=fe.define();function Pi(e,t){let n=e.state.selection.main.head,r=[],o=H.widget({widget:new Mi(t),side:1});return r.push(o.range(n)),H.set(r)}var Mi=class extends An{constructor(t){super();p(this,"suggestion");this.suggestion=t}toDOM(){let t=document.createElement("span");return t.style.opacity="0.4",t.className="cm-inline-suggestion",t.textContent=this.suggestion,t.setAttribute("role","suggestion"),t.setAttribute("aria-label",`Suggestion: ${this.suggestion}`),t}get lineBreaks(){return this.suggestion.split(`
2
+ var td=Object.defineProperty;var Ta=ne=>{throw TypeError(ne)};var nd=(ne,z,pe)=>z in ne?td(ne,z,{enumerable:!0,configurable:!0,writable:!0,value:pe}):ne[z]=pe;var p=(ne,z,pe)=>nd(ne,typeof z!="symbol"?z+"":z,pe),rd=(ne,z,pe)=>z.has(ne)||Ta("Cannot "+pe);var Ia=(ne,z,pe)=>(rd(ne,z,"read from private field"),pe?pe.call(ne):z.get(ne)),Fa=(ne,z,pe)=>z.has(ne)?Ta("Cannot add the same private member more than once"):z instanceof WeakSet?z.add(ne):z.set(ne,pe);import{s as La}from"./chunk-LvLJmgfZ.js";import{d as Oa,f as pr,i as Z,l as yn,n as se,p as Ot,s as wn,u as ie}from"./useEvent-D91BmmQi.js";import{t as od}from"./react-Bj1aDYRI.js";import{$t as ad,B as Da,Bn as id,Ct as vn,E as En,Et as Dt,F as sd,Fn as ld,G as _a,Gr as cd,Gt as ud,H as Ua,Hr as gr,In as dd,Ir as fd,Kt as hr,Ln as md,Lt as pd,Rt as Ba,Sn as br,St as yr,Ti as Nn,Tt as gd,U as ja,V as hd,Wn as bd,Wr as yd,Xr as Pa,Xt as Ma,Yr as wd,Yt as wr,Zt as Ra,_n as vd,a as Ga,b as et,d as Ja,en as Ed,fn as Nd,ft as vr,gi as kd,h as Er,hn as Cd,in as kn,it as Sd,kn as xd,kt as Ad,ot as Td,pi as Wa,pt as Id,sn as Fd,tn as Ld,u as Va,ur as Od,vn as Dd,wt as _d,xt as Ud,yn as Bd,zn as $a,__tla as jd}from"./cells-CAft_y9h.js";import{P as Ha,R as Pd,k as Md,w as Rd}from"./zod-H_cgTO0M.js";import{t as Ge}from"./compiler-runtime-B3qBwwSJ.js";import{C as Gd,f as Jd,m as Wd,p as Vd,t as $d,v as Hd,w as qd}from"./ai-model-dropdown-CZB8Xt_D.js";import{_ as Ve,c as qa,h as Nr,t as zd,v as Kd}from"./useEventListener-DGjKht0c.js";import{t as _t}from"./invariant-CkiqGLcK.js";import{S as kr,h as za,m as Yd,o as Xd,p as Ka,s as Ya}from"./utils-8btzWeZg.js";import{S as Qd,d as Zd,h as gt,o as ef,r as Xa,x as Ut,y as Qa}from"./config-DoZCLcOb.js";import{n as tf,t as nf}from"./switch-YkPg_CVc.js";import{n as rf}from"./globals-Bu6OEURn.js";import{t as of}from"./ErrorBoundary-CxTq44MI.js";import{t as it}from"./cn-DYvqRARy.js";import{t as af}from"./jsx-runtime-Blw4afVn.js";import{l as sf,r as lf,t as cf}from"./popover-AtoFZ7i4.js";import{N as uf,__tla as df}from"./JsonOutput-ZBMYDZ3q.js";import{t as Cr}from"./label-C89F4v17.js";import{r as ff}from"./download-COyB8G-Y.js";import{t as Cn}from"./tooltip-DmqhBBs6.js";import{r as Sr,t as st}from"./button-COIw2x9i.js";import{Bt as ht,Ct as Za,Dt as mf,E as pf,Ft as xr,H as ei,Ht as Bt,I as gf,J as l,Jt as fe,Kt as hf,Lt as Sn,Mt as bf,P as yf,St as Je,V as ti,Vt as Ar,Wt as lt,Yt as $e,Zt as jt,_ as wf,a as vf,at as P,bt as Ef,ct as Ye,en as xn,ft as Nf,it as kf,lt as An,m as Cf,pt as Sf,rt as H,st as xf,vt as Af,w as Tf,wt as If,yt as Ff,zt as Lf}from"./dist-VwkX7yeV.js";import{C as Of,D as Df,_ as _f,a as Uf,c as Bf,n as Tr,r as jf,v as Pf,x as Mf,y as Rf}from"./dist-DZJfxwLb.js";import{o as ni}from"./arrays-DAC2orgH.js";import{n as Gf}from"./once-hq2TLzOp.js";import{t as Ir}from"./createReducer-CYlwteGD.js";import{a as Jf,c as Wf,f as Tn,h as Vf,i as $f,l as Pt,n as ri,o as Hf,t as qf}from"./dist-BNTOYRCs.js";import{t as zf}from"./main-BNL5rxQw.js";import{r as In,t as Kf}from"./requests-9-v2bhoi.js";import{t as Yf}from"./createLucideIcon-w-Qo9n0R.js";import{r as oi,t as Xf,__tla as Qf}from"./layout-CnhRBcnG.js";import{t as Zf}from"./x-Bv2rCglF.js";import{t as em}from"./circle-check-DlWaawuO.js";import{A as tm,E as ai,O as nm,T as rm,a as ii,d as om,n as am,o as im,r as si,s as sm,x as lm}from"./add-cell-with-ai-DbPkyXyg.js";import{r as cm,t as um}from"./file-icons-CRsc39Ny.js";import{n as dm}from"./spinner-C5wIpWgQ.js";import{t as li}from"./save-bKSHuTCo.js";import{Y as fm,Z as ci}from"./input-DNCT6U6R.js";import{t as mm}from"./sparkles-B79Qf6ma.js";import{t as pm}from"./preload-helper-D2MJg03u.js";import{t as bt}from"./use-toast-BDYuj3zG.js";import{n as Xe}from"./paths-BzSgteR-.js";import{t as gm}from"./session-DdnWW30b.js";import{r as hm}from"./useTheme-DCDmxPD0.js";import{n as bm}from"./copy-Bizk-4hH.js";import{k as ym}from"./usePress-BXMIcLWP.js";import{a as wm}from"./useRunCells-BJn5ZEb6.js";import{c as ui,i as di,n as fi,r as vm}from"./dialog-H-hXtEOq.js";import{t as mi}from"./useHotkey-DALUNe8I.js";import{n as pi}from"./ImperativeModal-hsPVDTG-.js";import{r as Em}from"./errors-CZb6hI2x.js";import{t as Y}from"./extends-Co37_JfG.js";import{t as Mt}from"./objectWithoutPropertiesLoose-smPWkHxB.js";import{t as Nm}from"./kbd-BUtlbGdu.js";import{a as Fr}from"./useInstallPackage-CeM6oPsT.js";import{i as km,n as gi}from"./state-CDUQVvOe.js";import{a as Cm,o as Sm}from"./cell-link-DMyOfytV.js";import{n as xm}from"./useAsyncData-aCoWDe-l.js";import{a as Am,o as hi,r as Tm,s as bi,t as Im}from"./command-DnzBp4l4.js";import{r as yi}from"./html-to-image-WCAzCguU.js";import{a as Fm}from"./focus-BtOH5aLt.js";import{a as wi}from"./renderShortcut-DrDh2657.js";import{n as Lm,t as Om}from"./icons-DlzgV4KY.js";import{n as yt}from"./esm-BqofWdD5.js";import{t as vi}from"./dist-C80Ed7Y5.js";import{n as Lr,t as Ei}from"./useDeleteCell-BHcPGuXL.js";import{t as Dm}from"./useSplitCell-Bfb8riCm.js";import{co as _m,do as Or,fo as Um,ft as Bm,go as wt,ho as Ni,lo as Dr,mo as ki,oo as jm,po as Pm,so as Ci,uo as Si,__tla as Mm}from"./loro_wasm_bg-B_AVgvOe.js";import{t as Rm}from"./ws-BApgRfsy.js";import{t as xi}from"./Inputs-6ni2iCdV.js";import{n as Gm}from"./hooks-B5RY2sms.js";let Fn,_r,Ai,Ur,ct,Br,he,Rt,Gt,Ti,Ii,Fi,Li,Oi,Ln,Di,On,_i,Dn,Jm=Promise.all([(()=>{try{return jd}catch{}})(),(()=>{try{return df}catch{}})(),(()=>{try{return Qf}catch{}})(),(()=>{try{return Mm}catch{}})()]).then(async()=>{var bn,Aa,ye,we,ve,Ee,Ne,ke,Ce,Se,xe,Ae,Te,Ie,Fe,Le,Oe,De,_e,Ue,Be;var ne=Yf("file-pen",[["path",{d:"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34",key:"o6klzx"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",key:"zhnas1"}]]);const z={showInput:"Mod-l",acceptEdit:"Mod-y",rejectEdit:"Mod-u"};var pe=300;const Et=Bt.define({combine:e=>xn(e,{onError:console.error,inputDebounceTime:pe,keymaps:z},{onError:(t,n)=>t&&n,inputDebounceTime:(t,n)=>t&&n,keymaps:(t,n)=>t&&n})}),tt=fe.define(),nt=$e.define({create(){return{show:!1,lineFrom:0,lineTo:0}},update(e,t){for(let n of t.effects)if(n.is(tt))return n.value;return e}}),Nt=fe.define(),kt=fe.define(),Pr=$e.define({create(){return{shouldFocus:!1,inputValue:""}},update(e,t){let n=e;for(let r of t.effects)r.is(Nt)&&(n={...n,inputValue:r.value}),r.is(kt)&&(n={...n,shouldFocus:r.value});return n}}),Jt=fe.define(),Ct=$e.define({create(){return null},update(e,t){for(let n of t.effects)if(n.is(Jt))return n.value;return e}}),ut=fe.define(),Mr=$e.define({create(){return!1},update(e,t){for(let n of t.effects)if(n.is(ut))return n.value;return e}});var Ui=1;const Rr=e=>{let{state:t}=e,n=t.selection.main;if(n.empty)return!1;let r=t.doc,o=r.lineAt(n.from),a=r.lineAt(n.to);if(t.sliceDoc(o.from,a.to).trim().length<Ui)return!1;let i=Math.max(1,Math.min(o.number,r.lines)),s=Math.max(1,Math.min(a.number,r.lines));return e.dispatch({effects:[tt.of({show:!0,lineFrom:i,lineTo:s}),kt.of(!0),Nt.of("")],selection:ht.cursor(o.from)}),!0},Gr=e=>e.state.field(Ct)?(e.dispatch({effects:[Jt.of(null),tt.of({show:!1,lineFrom:0,lineTo:0}),kt.of(!1),Nt.of(""),ut.of(!1)]}),!0):!1,Jr=e=>{let t=e.state.field(Ct);return t?(e.dispatch({changes:{from:t.from,to:t.to,insert:t.oldCode},effects:[Jt.of(null),tt.of({show:!1,lineFrom:0,lineTo:0}),kt.of(!1),Nt.of(""),ut.of(!1)]}),!0):!1};var _n={mac:"\u2318",windows:"\u229E Win",default:"Ctrl"};function Bi(){return navigator.platform.startsWith("Mac")?_n.mac:navigator.platform.startsWith("Win")?_n.windows:_n.default}function Un(e){return e.replace("Mod",Bi()).replace("-"," ").toUpperCase()}function ce(e,t){let n=document.createElement(e);return n.className=t,n}function ji(e,t,n=void 0){let r=()=>{};return(...o)=>(r(),new Promise((a,i)=>{let s=setTimeout(()=>a(e(...o)),t);r=()=>{clearTimeout(s),n!==void 0&&i(n)}}))}var Wt=$e.define({create(){return{suggestion:null}},update(e,t){let n=t.effects.find(r=>r.is(Vt));return!t.docChanged&&!n&&!t.selection?e:n&&t.state.doc===n.value.doc?{suggestion:n.value.text}:{suggestion:null}}}),Vt=fe.define();function Pi(e,t){let n=e.state.selection.main.head,r=[],o=H.widget({widget:new Mi(t),side:1});return r.push(o.range(n)),H.set(r)}var Mi=class extends An{constructor(t){super();p(this,"suggestion");this.suggestion=t}toDOM(){let t=document.createElement("span");return t.style.opacity="0.4",t.className="cm-inline-suggestion",t.textContent=this.suggestion,t.setAttribute("role","suggestion"),t.setAttribute("aria-label",`Suggestion: ${this.suggestion}`),t}get lineBreaks(){return this.suggestion.split(`
3
3
  `).length-1}},Ri=class{constructor(e){p(this,"cache",new Map);p(this,"timeout");this.timeout=e}get(e){let t=this.cache.get(e);return t?Date.now()-t.timestamp>this.timeout?(this.cache.delete(e),null):t.result:null}set(e,t){this.cache.set(e,{result:t,timestamp:Date.now()})}},Gi=(e,t)=>Ye.fromClass(class{constructor(){p(this,"abortController",null);p(this,"cache");this.cache=new Ri(t.cacheTimeout??1e3)}async update(n){var i,s,u,c,d;if(!n.docChanged||((s=(i=t.events)==null?void 0:i.beforeSuggestionFetch)==null?void 0:s.call(i,n.view))===!1)return;(u=this.abortController)==null||u.abort(),this.abortController=new AbortController;let r=n.state.doc,o=r.toString(),a=this.cache.get(o);if(a){n.view.dispatch({effects:Vt.of({text:a,doc:r})});return}try{let f=await e(n.state,this.abortController.signal,n.view);if(this.abortController.signal.aborted||((d=(c=t.events)==null?void 0:c.shouldShowSuggestion)==null?void 0:d.call(c,n.view,f))===!1)return;this.cache.set(o,f),n.view.dispatch({effects:Vt.of({text:f,doc:r})})}catch(f){f instanceof Error&&f.name!=="AbortError"&&console.error("Suggestion fetch error:",f)}}destroy(){var n;(n=this.abortController)==null||n.abort()}}),Ji=Ye.fromClass(class{constructor(){p(this,"decorations");this.decorations=H.none}update(e){var n;let t=(n=e.state.field(Wt))==null?void 0:n.suggestion;if(!t){this.decorations=H.none;return}this.decorations=Pi(e.view,t)}},{decorations:e=>e.decorations});function Wi(e,t,n,r){return{...e.changeByRange(o=>{if(o===e.selection.main)return{changes:{from:n,to:r,insert:t},range:ht.cursor(n+t.length)};let a=r-n;return!o.empty||a&&e.sliceDoc(o.from-a,o.from)!==e.sliceDoc(n,r)?{range:o}:{changes:{from:o.from-a,to:o.from,insert:t},range:ht.cursor(o.from-a+t.length)}}),userEvent:"input.complete"}}var Vi=e=>{var r,o,a;let t=(r=e.state.field(Wt))==null?void 0:r.suggestion;if(!t)return!1;let n=e.state.facet(Bn);return e.dispatch({...Wi(e.state,t,e.state.selection.main.head,e.state.selection.main.head)}),(a=(o=n.events)==null?void 0:o.onSuggestionAccepted)==null||a.call(o,e,t),!0},Wr=e=>{var r,o,a;let t=(r=e.state.field(Wt))==null?void 0:r.suggestion;if(!t)return!1;let n=e.state.facet(Bn);return e.dispatch({effects:Vt.of({text:null,doc:e.state.doc})}),(a=(o=n.events)==null?void 0:o.onSuggestionRejected)==null||a.call(o,e,t),!0},$i=Je.of([{key:"Tab",run:Vi},{key:"Escape",run:Wr}]),Bn=Bt.define({combine:e=>e.at(-1)});function Vr(e){let{delay:t=500,includeKeymap:n=!0}=e,r=ji(e.fetchFn,t);return[Wt,Bn.of(e),Gi(r,e),Ji,n?$i:[]]}const Hi=P.baseTheme({".cm-ai-input-container":{display:"flex",flexDirection:"column",gap:"4px",width:"min(calc(100% + 7px), 500px)",padding:"5px 5px",margin:"0 -6px",backgroundColor:"light-dark(rgb(241, 243, 245), rgb(40, 40, 40))"},".cm-ai-input":{display:"block",width:"100%",padding:"3px 8px",border:"2px solid rgb(51, 154, 240)",borderRadius:"5px",fontSize:"12px"},".cm-ai-help-info-button":{fontSize:"10px",paddingLeft:"10px",height:"18px",color:"light-dark(rgb(109, 117, 125), rgb(170, 170, 170))",display:"block",marginRight:"auto"},".cm-ai-help-info-button:hover":{color:"light-dark(rgb(89, 97, 105), rgb(190, 190, 190))"},".cm-ai-generate-button":{background:"#0E639C",border:"none",padding:"2px 6px",color:"#ffffff",cursor:"pointer",font:"inherit",borderRadius:"4px","&:hover":{backgroundColor:"#1177bb"}},".cm-line.cm-ai-selection, .cm-line.cm-ai-selection.cm-active-line":{backgroundColor:"light-dark(color-mix(in srgb, rgb(223, 227, 232) 50%, transparent), color-mix(in srgb, rgb(50, 50, 50) 50%, transparent)) !important"},".cm-line:has(.cm-new-code-line)":{backgroundColor:"light-dark(color-mix(in srgb, rgb(183, 235, 143) 50%, transparent), color-mix(in srgb, rgb(40, 100, 40) 50%, transparent)) !important"},".cm-old-code-container":{backgroundColor:"light-dark(rgb(255, 205, 205), rgb(100, 40, 40))",position:"relative",display:"flex",paddingTop:"0",width:"100%",alignItems:"center"},".cm-code-button":{position:"absolute",right:"5px",top:"50%",transform:"translateY(-50%)",background:"none",border:"none",cursor:"pointer",fontSize:"16px"},".cm-floating-buttons":{fontFamily:"sans-serif",position:"absolute",top:"-20px",left:"5px",display:"flex"},".cm-floating-button":{fontFamily:"sans-serif",padding:"2px 5px",fontSize:"10px",cursor:"pointer",fontWeight:"700"},".cm-floating-accept":{backgroundColor:"light-dark(rgb(55, 125, 34), rgb(40, 80, 25))",borderTopLeftRadius:"5px",borderBottomLeftRadius:"5px",color:"white",filter:"brightness(90%)","&:hover":{filter:"brightness(100%)"}},".cm-floating-reject":{backgroundColor:"light-dark(rgb(220, 53, 69), rgb(180, 40, 50))",color:"white",borderTopRightRadius:"5px",borderBottomRightRadius:"5px",filter:"brightness(90%)","&:hover":{filter:"brightness(100%)"}},".hotkey":{display:"inline-block",padding:"0 4px",borderRadius:"3px",backgroundColor:"rgba(255, 255, 255, 0.1)",fontSize:"90%"},".cm-ai-loading-indicator":{fontStyle:"italic",fontSize:"10px",paddingLeft:"12px",color:"light-dark(rgb(109, 117, 125), rgb(170, 170, 170))",opacity:"0",transition:"opacity 0.3s ease-in-out","&::after":{content:'""',display:"inline-block",animation:"ellipsis-pulse 1.5s steps(4, end) infinite"},"&:not(:empty)":{opacity:"1"}},".cm-ai-input:disabled":{opacity:"0.5"},"@keyframes ellipsis-pulse":{"0%":{content:"'.'"},"25%":{content:"'..'"},"50%":{content:"'...'"},"75%":{content:"''"}},".cm-ai-loading-container":{display:"flex",alignItems:"center",padding:"0 8px"},".cm-ai-cancel-button":{padding:"2px 8px",fontSize:"10px",borderRadius:"4px",color:"light-dark(rgb(109, 117, 125), rgb(170, 170, 170))",cursor:"pointer","&:hover":{background:"light-dark(rgb(223, 227, 232), rgb(50, 50, 50))"}},".hidden":{display:"none"}});function qi(e){var o,a;let t=e.state.facet(Et),n={...z,...t.keymaps},r=ce("div","cm-ai-tooltip").appendChild(ce("div","cm-ai-tooltip-button"));return r.innerHTML=`<span>Edit <span class="hotkey">${Un(n.showInput)}</span></span>`,(o=r.querySelector("span"))==null||o.addEventListener("mousedown",i=>{i.stopPropagation(),i.button===0&&i.preventDefault()}),(a=r.querySelector("span"))==null||a.addEventListener("click",i=>{i.preventDefault(),Rr(e)}),r}const jn=Bt.define({combine(e){return xn(e,{render:qi,hideOnBlur:!1})}}),zi=Ye.fromClass((Aa=class{constructor(e){p(this,"view");p(this,"suppress");p(this,"dom");p(this,"mousedown",()=>{this.suppress=!0});p(this,"mouseup",()=>{this.suppress=!1,this.display(this.view)});p(this,"scroll",()=>{this.display(this.view)});p(this,"windowScroll",()=>{this.display(this.view)});Fa(this,bn,e=>{var n;let t=e.state.selection.ranges.find(r=>!r.empty);if(t&&!this.suppress){let r=e.coordsAtPos(t.from);if(!r)return;let o=e.dom.getBoundingClientRect(),a=(n=e.dom.parentElement)==null?void 0:n.getBoundingClientRect(),i=r.top>=o.top&&r.top<=o.bottom&&r.left>=o.left&&r.left<=o.right,s=!a||r.top>=a.top&&r.top<=a.bottom&&r.left>=a.left&&r.left<=a.right;if(!i||!s){this.dom.style.display="none",this.dom.setAttribute("aria-hidden","true");return}this.dom.style.display="flex",this.dom.setAttribute("aria-hidden","false");let u=this.dom.getBoundingClientRect(),c=o.width-u.width,d=Math.min(r.left,c),f=r.top-u.height;f=a?Math.max(a.y,f):f,this.dom.style.left=`${d}px`,this.dom.style.top=`${f}px`,requestAnimationFrame(()=>{this.dom&&this.dom.setAttribute("aria-hidden","false")})}else this.dom.style.display="none",this.dom.setAttribute("aria-hidden","true")});this.view=e;let t=e.state.facet(jn);this.suppress=!1,document.addEventListener("mousedown",this.mousedown),document.addEventListener("mouseup",this.mouseup),e.scrollDOM.addEventListener("scroll",this.scroll),window.addEventListener("scroll",this.windowScroll,!0);let n=t.render(e);e.dom.appendChild(n),this.dom=n}update(e){this.display(e.view)}docViewUpdate(e){this.display(e)}display(e){if(e.state.field(nt).show){this.dom.style.display="none";return}if(e.state.facet(jn).hideOnBlur&&!e.hasFocus){this.dom.style.display="none",this.dom.setAttribute("aria-hidden","true");return}e.requestMeasure({read:Ia(this,bn)})}destroy(){document.removeEventListener("mousedown",this.mousedown),document.removeEventListener("mouseup",this.mouseup),this.view.scrollDOM.removeEventListener("scroll",this.scroll),window.removeEventListener("scroll",this.windowScroll,!0),this.dom.remove()}},bn=new WeakMap,Aa));var Ki=P.baseTheme({".cm-ai-tooltip-button":{userSelect:"none",fontFamily:"system-ui, -apple-system, sans-serif",position:"fixed",display:"flex",boxSizing:"border-box",padding:"2px 6px",borderRadius:"4px",fontSize:"12px",backgroundColor:"#0E639C",color:"#ffffff",border:"1px solid transparent",boxShadow:"0 2px 4px rgba(0,0,0,0.1)",zIndex:"999",transition:"opacity 0.5s","&[aria-hidden='true']":{opacity:"0"},"&[aria-hidden='false']":{opacity:"1"},"& > span":{pointerEvents:"auto",cursor:"pointer",display:"inline-block",padding:"2px"},"&:hover":{backgroundColor:"#1177bb"}}});function Yi(){return[zi,Ki]}var Xi=class extends An{constructor(t){super();p(this,"oldCode");this.oldCode=t}toDOM(t){let n=ce("div","cm-old-code-container");n.setAttribute("role","region"),n.setAttribute("aria-label","Previous code version");let r=ce("div","cm-old-code cm-line");r.textContent=this.oldCode;let o=ce("div","cm-floating-buttons"),a=t.state.facet(Et),i={...z,...a.keymaps},s=ce("button","cm-floating-button cm-floating-accept");s.innerHTML=`<span class="hotkey">${Un(i.acceptEdit)}</span> Accept`,s.setAttribute("aria-label","Accept changes"),s.addEventListener("click",c=>{c.preventDefault(),c.stopPropagation(),t.focus(),Gr(t)});let u=ce("button","cm-floating-button cm-floating-reject");return u.innerHTML=`<span class="hotkey">${Un(i.rejectEdit)}</span> Reject`,u.setAttribute("aria-label","Reject changes"),u.addEventListener("click",c=>{c.preventDefault(),c.stopPropagation(),t.focus(),Jr(t)}),o.append(s,u),n.append(r,o),n}updateDOM(t,n){return!0}},Qi=class extends An{constructor(t){super();p(this,"complete");p(this,"abortController",null);p(this,"dom",null);p(this,"input",null);p(this,"loadingContainer",null);p(this,"helpInfo",null);p(this,"inputContainer",null);p(this,"form",null);p(this,"view",null);p(this,"onKeyDown",async t=>{t.key==="Enter"&&!t.shiftKey?(t.preventDefault(),await this.handleSubmit()):t.key==="Escape"&&this.onCancel()});p(this,"onCancel",()=>{this.cleanup();let t=this.view;t&&(t.dispatch({effects:[tt.of({show:!1,lineFrom:0,lineTo:0}),ut.of(!1)]}),t.focus())});p(this,"handleSubmit",async t=>{var h;let n=this.view;if(!n)return;let r=n.state.facet(Et);t==null||t.stopPropagation();let o=n.state.field(nt),{input:a}=this;if(!a)return;let i=a.value.trim();if(!o.show||!i)return;let s=n.state.doc.line(o.lineFrom),u=n.state.doc.line(o.lineTo),c=s.from,d=u.to,f=n.state.sliceDoc(c,d),g=n.state.sliceDoc(0,c),m=n.state.sliceDoc(d);this.abortController=new AbortController,n.dispatch({effects:ut.of(!0)}),this.toggleLoading(!0);try{let w=await this.complete({prompt:i,selection:f,codeBefore:g,codeAfter:m,editorView:n,signal:this.abortController.signal});if(!n.state.field(nt).show)return;if(!w||typeof w!="string")throw Error("Invalid completion result");n.dispatch({changes:{from:c,to:d,insert:w},effects:[tt.of({show:!1,lineFrom:0,lineTo:0}),Jt.of({from:c,to:c+w.length,oldCode:f,newCode:w}),ut.of(!1)]})}catch(w){if(w instanceof DOMException&&w.name==="AbortError")return;(h=r.onError)==null||h.call(r,w)}finally{this.cleanup(),this.toggleLoading(!1),n.focus()}});this.complete=t}toDOM(t){if(this.dom)return this.dom;this.view=t;let n=t.state.field(Pr),r=t.state.field(Mr),o=ce("div","cm-ai-input-container");this.inputContainer=o,this.dom=o;let a=ce("form","cm-ai-input-form");this.form=a,a.setAttribute("role","search"),a.setAttribute("aria-label","AI editing instructions"),a.addEventListener("submit",y=>y.preventDefault());let i=ce("input","cm-ai-input");this.input=i,a.append(i),i.placeholder="Editing instructions...",i.setAttribute("aria-label","AI editing instructions"),i.setAttribute("autocomplete","off"),i.setAttribute("spellcheck","true"),i.value=n.inputValue;let s=ce("div","cm-ai-loading-container");this.loadingContainer=s;let u=ce("div","cm-ai-loading-indicator");u.setAttribute("role","status"),u.setAttribute("aria-live","polite"),u.textContent="Generating";let c=ce("button","cm-ai-cancel-button");c.textContent="Cancel",c.setAttribute("aria-label","Cancel code generation"),c.addEventListener("click",this.onCancel),s.append(c,u);let d=ce("div","cm-ai-help-info");this.helpInfo=d;let f=d.appendChild(document.createElement("button"));f.className="cm-ai-help-info-button",f.textContent="Esc to close",f.addEventListener("click",this.onCancel);let g=ce("button","cm-ai-generate-button");g.textContent="\u23CE Generate",g.setAttribute("aria-label","Generate code"),g.addEventListener("click",this.handleSubmit),this.toggleLoading(r),n.shouldFocus&&requestAnimationFrame(()=>{i.value=n.inputValue,i.focus(),t.dispatch({effects:kt.of(!1)})}),m(i.value),i.addEventListener("input",w),i.addEventListener("keydown",this.onKeyDown);function m(y){d.replaceChildren(y?g:f)}let h="";function w(){t.dispatch({effects:Nt.of(i.value)});let y=i.value.trim();y!==h&&(h=y,m(y))}return o}toggleLoading(t){var n;this.inputContainer&&this.form&&this.loadingContainer&&this.helpInfo&&((n=this.inputContainer)==null||n.replaceChildren(this.form,t?this.loadingContainer:this.helpInfo))}updateDOM(t,n){return this.dom=t,this.input=t.querySelector(".cm-ai-input"),!0}cleanup(){var t,n,r;(t=this.abortController)==null||t.abort(),this.abortController=null,(n=this.dom)==null||n.remove(),(r=this.input)==null||r.remove(),this.dom=null,this.input=null}destroy(){this.cleanup()}};function Zi(e){if(!e.prompt)throw Error("prompt function is required");let t={...z,...e.keymaps};return[Et.of(e),nt,Pr,Ct,Mr,Yi(),Hi,Je.of([{key:t.showInput,run:Rr}]),lt.highest([Je.of([{key:t.acceptEdit,run:Gr},{key:t.rejectEdit,run:Jr}])]),es,ts,ns,rs]}const es=P.updateListener.of(e=>{let t=e.state.field(nt);if(!t.show||!e.docChanged)return;let{lineFrom:n,lineTo:r}=t,o=!1;e.changes.iterChanges((a,i,s,u)=>{let c=e.state.doc.lineAt(a).number;if(c<n){let d=e.state.doc.lineAt(u).number-e.state.doc.lineAt(s).number;n+=d,r+=d,o=!0}else if(c<=r){let d=e.state.doc.lineAt(u).number-e.state.doc.lineAt(s).number;r+=d,o=!0}}),o&&e.view.dispatch({effects:[tt.of({show:!0,lineFrom:n,lineTo:r})]})}),ts=P.decorations.of(e=>{let t=e.state.field(Ct);return t?H.set([H.mark({class:"cm-new-code-line"}).range(t.from,t.to)]):H.none}),ns=P.decorations.compute([nt],e=>{let t=e.field(nt),n=e.facet(Et),r=[];if(t.show){let o=t.lineFrom,a=t.lineTo;for(let i=o;i<=a;i++){let s=e.doc.line(i).from;r.push(H.line({class:"cm-ai-selection"}).range(s)),i===o&&r.push(H.widget({widget:new Qi(n.prompt),side:-1}).range(s))}}return H.set(r)}),rs=$e.define({create(e){return H.none},update(e,t){let n=t.state.field(Ct);return n?H.set([H.widget({widget:new Xi(n.oldCode),block:!0}).range(n.from)]):H.none},provide:e=>P.decorations.from(e)});var os=Ge(),F=La(od(),1),Pn=()=>({entries:new Map}),{valueAtom:$r,useActions:Hr}=Ir(Pn,{submit:(e,t)=>{let{cellIds:n,deleteCell:r,deleteManyCells:o,store:a}=t,i=a.get(et),s=a.get(ld),u=new Set(i.cellIds.inOrderIds.filter(f=>i.cellData[f].code.trim()==="")),c=new Map;for(let f of n){if(u.has(f)){c.set(f,{cellId:f,type:"simple"});continue}let g=i.cellRuntime[f],m=new Map;for(let w of Object.values(s)){let y=w.declaredBy.includes(f),E=w.usedBy.some(C=>!u.has(C));y&&E&&m.set(w.name,w.usedBy)}let h;g!=null&&g.runElapsedTimeMs&&g.runElapsedTimeMs>2e3&&(h=g.runElapsedTimeMs),m.size===0&&h===void 0?c.set(f,{cellId:f,type:"simple"}):c.set(f,{cellId:f,type:"expensive",executionDurationMs:h,defs:m})}let d=[...c.values()].every(f=>f.type==="simple");return c.size>0&&d?(c.size===1?r({cellId:[...c.values()][0].cellId}):o({cellIds:[...c.values()].map(f=>f.cellId)}),Pn()):{...e,entries:c}},clear:()=>Pn()});Dn=function(){let e=pr(),{submit:t,clear:n}=Hr(),{entries:r}=ie($r),o=Ei(),a=Lr();return(0,F.useMemo)(()=>({submit:i=>{t({cellIds:i,deleteCell:o,deleteManyCells:a,store:e})},clear:n,get idle(){return r.size===0},get shouldConfirmDelete(){return r.size>1}}),[e,t,n,r,o,a])},_i=function(e){let t=(0,os.c)(16),n=ie($r),r=Hr(),o=Lr(),a;t[0]!==e||t[1]!==n.entries?(a=n.entries.get(e),t[0]=e,t[1]=n.entries,t[2]=a):a=t[2];let i=a;if(!i){let d;return t[3]===Symbol.for("react.memo_cache_sentinel")?(d={isPending:!1},t[3]=d):d=t[3],d}if(n.entries.size!==1){let d;return t[4]===i?d=t[5]:(d={isPending:!0,shouldConfirmDelete:!1,...i},t[4]=i,t[5]=d),d}let s;t[6]!==r||t[7]!==o||t[8]!==n.entries?(s=()=>{o({cellIds:[...n.entries.values()].map(as)}),r.clear()},t[6]=r,t[7]=o,t[8]=n.entries,t[9]=s):s=t[9];let u;t[10]===r?u=t[11]:(u=()=>r.clear(),t[10]=r,t[11]=u);let c;return t[12]!==i||t[13]!==s||t[14]!==u?(c={isPending:!0,...i,shouldConfirmDelete:!0,confirm:s,cancel:u},t[12]=i,t[13]=s,t[14]=u,t[15]=c):c=t[15],c};function as(e){return e.cellId}async function is(e){var s,u;let t=`
4
4
  ${e.codeBefore}
5
5
  <rewrite_this>
@@ -1 +1 @@
1
- import{s as j}from"./chunk-LvLJmgfZ.js";import{d as E,l as L,n as P,u as O}from"./useEvent-D91BmmQi.js";import{E as T,N as w,Nt as y,Ti as A,dn as S,j as $,pi as _}from"./cells-BqYYXi6G.js";import{t as b}from"./compiler-runtime-B3qBwwSJ.js";import{_ as D}from"./useEventListener-DGjKht0c.js";import{d as F}from"./utils-8btzWeZg.js";import{r as N}from"./constants-tOPFFcLZ.js";import{h as q,x as B}from"./config-DoZCLcOb.js";import{t as H}from"./cn-DYvqRARy.js";import{t as M}from"./jsx-runtime-Blw4afVn.js";import{r as R}from"./requests-9-v2bhoi.js";import{n as U}from"./paths-BzSgteR-.js";import{s as V}from"./session-DdnWW30b.js";import{n as z}from"./ImperativeModal-hsPVDTG-.js";var G=b();function x(){return O(_)}function J(){let r=(0,G.c)(5),[t]=L(q),e=E(_),{openAlert:s}=z(),{sendRename:o}=R(),a;return r[0]!==t.state||r[1]!==s||r[2]!==o||r[3]!==e?(a=async l=>{let n=F();return t.state===B.OPEN?(V(i=>{l===null?i.delete(N.filePath):i.set(N.filePath,l)}),o({filename:l}).then(()=>(e(l),document.title=n.app_title||U.basename(l)||"Untitled Notebook",l)).catch(i=>(s(i.message),null))):(s("Failed to save notebook: not connected to a kernel."),null)},r[0]=t.state,r[1]=s,r[2]=o,r[3]=e,r[4]=a):a=r[4],P(a)}var p=b(),v=j(M(),1);const h=r=>{let t=(0,p.c)(12),{className:e,cellId:s,variant:o,onClick:a,formatCellName:l,skipScroll:n}=r,i=w()[s]??"",C=$().inOrderIds.indexOf(s),{showCellIfHidden:d}=T(),g=l??W,c;t[0]===e?c=t[1]:(c=H("inline-block cursor-pointer text-link hover:underline",e),t[0]=e,t[1]=c);let m;t[2]!==s||t[3]!==a||t[4]!==d||t[5]!==n||t[6]!==o?(m=k=>{if(s==="__scratch__")return!1;d({cellId:s}),k.stopPropagation(),k.preventDefault(),requestAnimationFrame(()=>{I(s,o,n)&&(a==null||a())})},t[2]=s,t[3]=a,t[4]=d,t[5]=n,t[6]=o,t[7]=m):m=t[7];let f=g(y(i,C)),u;return t[8]!==c||t[9]!==m||t[10]!==f?(u=(0,v.jsx)("div",{className:c,role:"link",tabIndex:-1,onClick:m,children:f}),t[8]=c,t[9]=m,t[10]=f,t[11]=u):u=t[11],u},K=r=>{let t=(0,p.c)(2),e;return t[0]===r?e=t[1]:(e=(0,v.jsx)(h,{...r,variant:"destructive"}),t[0]=r,t[1]=e),e},Q=r=>{let t=(0,p.c)(10),{cellId:e,lineNumber:s}=r,o=x(),a;t[0]!==e||t[1]!==s?(a=()=>S(e,s),t[0]=e,t[1]=s,t[2]=a):a=t[2];let l;t[3]!==e||t[4]!==o?(l=i=>e==="__scratch__"?"scratch":`marimo://${o||"untitled"}#cell=${i}`,t[3]=e,t[4]=o,t[5]=l):l=t[5];let n;return t[6]!==e||t[7]!==a||t[8]!==l?(n=(0,v.jsx)(h,{cellId:e,onClick:a,skipScroll:!0,variant:"destructive",className:"traceback-cell-link",formatCellName:l}),t[6]=e,t[7]=a,t[8]=l,t[9]=n):n=t[9],n};function I(r,t,e){let s=A.create(r),o=document.getElementById(s),a=o==null?void 0:o.classList.contains("has-error");return o===null?(D.error(`Cell ${s} not found on page.`),!1):(e||o.scrollIntoView({behavior:"smooth",block:"center"}),(t==="destructive"||a&&t===void 0)&&(o.classList.add("error-outline"),setTimeout(()=>{o.classList.remove("error-outline")},2e3)),(t==="focus"||!a&&t===void 0)&&(o.classList.add("focus-outline"),setTimeout(()=>{o.classList.remove("focus-outline")},2e3)),!0)}function W(r){return r}export{x as a,I as i,K as n,J as o,Q as r,h as t};
1
+ import{s as j}from"./chunk-LvLJmgfZ.js";import{d as E,l as L,n as P,u as O}from"./useEvent-D91BmmQi.js";import{E as T,N as w,Nt as y,Ti as A,dn as S,j as $,pi as _}from"./cells-CAft_y9h.js";import{t as b}from"./compiler-runtime-B3qBwwSJ.js";import{_ as D}from"./useEventListener-DGjKht0c.js";import{d as F}from"./utils-8btzWeZg.js";import{r as N}from"./constants-tOPFFcLZ.js";import{h as q,x as B}from"./config-DoZCLcOb.js";import{t as H}from"./cn-DYvqRARy.js";import{t as M}from"./jsx-runtime-Blw4afVn.js";import{r as R}from"./requests-9-v2bhoi.js";import{n as U}from"./paths-BzSgteR-.js";import{s as V}from"./session-DdnWW30b.js";import{n as z}from"./ImperativeModal-hsPVDTG-.js";var G=b();function x(){return O(_)}function J(){let r=(0,G.c)(5),[t]=L(q),e=E(_),{openAlert:s}=z(),{sendRename:o}=R(),a;return r[0]!==t.state||r[1]!==s||r[2]!==o||r[3]!==e?(a=async l=>{let n=F();return t.state===B.OPEN?(V(i=>{l===null?i.delete(N.filePath):i.set(N.filePath,l)}),o({filename:l}).then(()=>(e(l),document.title=n.app_title||U.basename(l)||"Untitled Notebook",l)).catch(i=>(s(i.message),null))):(s("Failed to save notebook: not connected to a kernel."),null)},r[0]=t.state,r[1]=s,r[2]=o,r[3]=e,r[4]=a):a=r[4],P(a)}var p=b(),v=j(M(),1);const h=r=>{let t=(0,p.c)(12),{className:e,cellId:s,variant:o,onClick:a,formatCellName:l,skipScroll:n}=r,i=w()[s]??"",C=$().inOrderIds.indexOf(s),{showCellIfHidden:d}=T(),g=l??W,c;t[0]===e?c=t[1]:(c=H("inline-block cursor-pointer text-link hover:underline",e),t[0]=e,t[1]=c);let m;t[2]!==s||t[3]!==a||t[4]!==d||t[5]!==n||t[6]!==o?(m=k=>{if(s==="__scratch__")return!1;d({cellId:s}),k.stopPropagation(),k.preventDefault(),requestAnimationFrame(()=>{I(s,o,n)&&(a==null||a())})},t[2]=s,t[3]=a,t[4]=d,t[5]=n,t[6]=o,t[7]=m):m=t[7];let f=g(y(i,C)),u;return t[8]!==c||t[9]!==m||t[10]!==f?(u=(0,v.jsx)("div",{className:c,role:"link",tabIndex:-1,onClick:m,children:f}),t[8]=c,t[9]=m,t[10]=f,t[11]=u):u=t[11],u},K=r=>{let t=(0,p.c)(2),e;return t[0]===r?e=t[1]:(e=(0,v.jsx)(h,{...r,variant:"destructive"}),t[0]=r,t[1]=e),e},Q=r=>{let t=(0,p.c)(10),{cellId:e,lineNumber:s}=r,o=x(),a;t[0]!==e||t[1]!==s?(a=()=>S(e,s),t[0]=e,t[1]=s,t[2]=a):a=t[2];let l;t[3]!==e||t[4]!==o?(l=i=>e==="__scratch__"?"scratch":`marimo://${o||"untitled"}#cell=${i}`,t[3]=e,t[4]=o,t[5]=l):l=t[5];let n;return t[6]!==e||t[7]!==a||t[8]!==l?(n=(0,v.jsx)(h,{cellId:e,onClick:a,skipScroll:!0,variant:"destructive",className:"traceback-cell-link",formatCellName:l}),t[6]=e,t[7]=a,t[8]=l,t[9]=n):n=t[9],n};function I(r,t,e){let s=A.create(r),o=document.getElementById(s),a=o==null?void 0:o.classList.contains("has-error");return o===null?(D.error(`Cell ${s} not found on page.`),!1):(e||o.scrollIntoView({behavior:"smooth",block:"center"}),(t==="destructive"||a&&t===void 0)&&(o.classList.add("error-outline"),setTimeout(()=>{o.classList.remove("error-outline")},2e3)),(t==="focus"||!a&&t===void 0)&&(o.classList.add("focus-outline"),setTimeout(()=>{o.classList.remove("focus-outline")},2e3)),!0)}function W(r){return r}export{x as a,I as i,K as n,J as o,Q as r,h as t};