@marimo-team/frontend 0.23.16-dev22 → 0.23.16-dev24

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 (55) hide show
  1. package/dist/assets/{JsonOutput-BoDVlAbV.js → JsonOutput-BG5T3DG2.js} +3 -3
  2. package/dist/assets/{add-cell-with-ai-CI-OMQ6o.js → add-cell-with-ai-BBAhBpT1.js} +1 -1
  3. package/dist/assets/{add-connection-dialog-wLF3on0N.js → add-connection-dialog-DFD5BLGa.js} +1 -1
  4. package/dist/assets/{agent-panel-BnWKBlgm.js → agent-panel-TJGdsxOX.js} +1 -1
  5. package/dist/assets/{ai-model-dropdown-JakbdGqy.js → ai-model-dropdown-BMS30HMu.js} +1 -1
  6. package/dist/assets/{app-config-button-CJthjCbw.js → app-config-button-Cankwixh.js} +1 -1
  7. package/dist/assets/{cell-editor-g_X3FLOk.js → cell-editor-sBYL591r.js} +1 -1
  8. package/dist/assets/{chat-display-5IKsJo5G.js → chat-display-ZB0n2r4U.js} +1 -1
  9. package/dist/assets/{chat-panel-T0aeOGBD.js → chat-panel-BKqRvvhb.js} +1 -1
  10. package/dist/assets/{chat-ui-Bmpv2cR-.js → chat-ui-B3Pz1Tc4.js} +1 -1
  11. package/dist/assets/{column-preview-BYiduGzU.js → column-preview-CSVQtCQS.js} +1 -1
  12. package/dist/assets/{command-palette-jBZ38N6a.js → command-palette-DiUt8L1K.js} +1 -1
  13. package/dist/assets/{dependency-graph-panel-98TlJ5y7.js → dependency-graph-panel-rRXAafZ4.js} +1 -1
  14. package/dist/assets/download-Benw6kUY.js +9 -0
  15. package/dist/assets/{edit-page-DB-NYT_3.js → edit-page-CxNNXB4Y.js} +5 -5
  16. package/dist/assets/{file-explorer-panel-8_ps5wdU.js → file-explorer-panel-C9I7XP84.js} +1 -1
  17. package/dist/assets/{form-B5UJtZJr.js → form-DrCvDcRK.js} +1 -1
  18. package/dist/assets/{home-page-IUw94a9S.js → home-page-DwtZlFRD.js} +1 -1
  19. package/dist/assets/{index-BS2Sunf3.js → index-DK7_phcn.js} +21 -21
  20. package/dist/assets/{layout-CyjXUY2w.js → layout-Cdpz2zk4.js} +5 -5
  21. package/dist/assets/{packages-panel-CsjyKddU.js → packages-panel-kj52vQTZ.js} +1 -1
  22. package/dist/assets/{pair-with-agent-modal-nwd26aKZ.js → pair-with-agent-modal-BUtnUuiE.js} +1 -1
  23. package/dist/assets/{panels-B8l1VE0-.js → panels-Bs7O_Hac.js} +1 -1
  24. package/dist/assets/{readonly-python-code-BqcMp63O.js → readonly-python-code-3UXLXM0g.js} +1 -1
  25. package/dist/assets/{reveal-component-D2zYX2Tk.js → reveal-component-DTcc6OYd.js} +1 -1
  26. package/dist/assets/{run-page-B74_5nDW.js → run-page-BgzVSOZh.js} +1 -1
  27. package/dist/assets/{scratchpad-panel-BASwTNGO.js → scratchpad-panel-XnaU8Prb.js} +1 -1
  28. package/dist/assets/{session-panel-DO-4U6Ry.js → session-panel-Cs9YKkJc.js} +1 -1
  29. package/dist/assets/{skeleton-DuUCup3W.js → skeleton-BOtI6k5P.js} +1 -1
  30. package/dist/assets/{state-D2ccy8VQ.js → state-Dj8qTUAp.js} +1 -1
  31. package/dist/assets/switch-OVajJBPR.js +1 -0
  32. package/dist/assets/{useCellActionButton-BhCYWOKS.js → useCellActionButton-Bglkc3w8.js} +1 -1
  33. package/dist/assets/{useDependencyPanelTab-CAI77Oxj.js → useDependencyPanelTab-DjhiptCs.js} +1 -1
  34. package/dist/assets/useNotebookActions-Bj0q_nkr.js +12 -0
  35. package/dist/index.html +8 -8
  36. package/package.json +1 -1
  37. package/src/__mocks__/requests.ts +20 -4
  38. package/src/components/editor/actions/__tests__/pdf-export.test.ts +0 -4
  39. package/src/components/editor/actions/pdf-export.ts +1 -4
  40. package/src/components/editor/actions/useNotebookActions.tsx +7 -13
  41. package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +1 -1
  42. package/src/components/static-html/share-modal.tsx +1 -1
  43. package/src/core/network/__tests__/api.test.ts +42 -0
  44. package/src/core/network/__tests__/requests-network.test.ts +1 -0
  45. package/src/core/network/api.ts +27 -0
  46. package/src/core/network/requests-network.ts +5 -5
  47. package/src/core/network/types.ts +15 -4
  48. package/src/core/static/download-html.ts +5 -14
  49. package/src/core/wasm/bridge.ts +3 -2
  50. package/src/core/wasm/worker/types.ts +5 -2
  51. package/src/utils/__tests__/download.test.tsx +24 -1
  52. package/src/utils/download.ts +11 -6
  53. package/dist/assets/download-CnYLah74.js +0 -9
  54. package/dist/assets/switch-Drt3XC71.js +0 -1
  55. package/dist/assets/useNotebookActions-IfA6VBEA.js +0 -12
@@ -4,8 +4,8 @@ import React from "react";
4
4
  import { toast } from "@/components/ui/use-toast";
5
5
  import { type CellId, CellOutputId } from "@/core/cells/ids";
6
6
  import { getRequestClient } from "@/core/network/requests";
7
+ import type { ExportedFile } from "@/core/network/types";
7
8
  import { Filenames } from "@/utils/filenames";
8
- import { Paths } from "@/utils/paths";
9
9
  import { prettyError } from "./errors";
10
10
  import { toPng } from "./html-to-image";
11
11
  import { captureExternalIframes } from "./iframe";
@@ -191,6 +191,14 @@ export function downloadBlob(blob: Blob, filename: string) {
191
191
  URL.revokeObjectURL(url);
192
192
  }
193
193
 
194
+ export function downloadExportedFile({
195
+ contents,
196
+ filename,
197
+ mediaType,
198
+ }: ExportedFile) {
199
+ downloadBlob(new Blob([contents], { type: mediaType }), filename);
200
+ }
201
+
194
202
  export type PDFExportPreset = "document" | "slides";
195
203
 
196
204
  /**
@@ -200,7 +208,6 @@ export type PDFExportPreset = "document" | "slides";
200
208
  * Standard PDF requires Pandoc & TeX (~few GBs) but is of higher quality.
201
209
  */
202
210
  export async function downloadAsPDF(opts: {
203
- filename: string;
204
211
  webpdf: boolean;
205
212
  preset?: PDFExportPreset;
206
213
  includeInputs?: boolean;
@@ -210,7 +217,6 @@ export async function downloadAsPDF(opts: {
210
217
  }) {
211
218
  const client = getRequestClient();
212
219
  const {
213
- filename,
214
220
  webpdf,
215
221
  preset = "document",
216
222
  includeInputs = true,
@@ -220,7 +226,7 @@ export async function downloadAsPDF(opts: {
220
226
  } = opts;
221
227
 
222
228
  try {
223
- const pdfBlob = await client.exportAsPDF({
229
+ const exportedFile = await client.exportAsPDF({
224
230
  webpdf,
225
231
  preset,
226
232
  includeInputs,
@@ -229,8 +235,7 @@ export async function downloadAsPDF(opts: {
229
235
  rasterServer,
230
236
  });
231
237
 
232
- const filenameWithoutPath = Paths.basename(filename);
233
- downloadBlob(pdfBlob, Filenames.toPDF(filenameWithoutPath));
238
+ downloadExportedFile(exportedFile);
234
239
  } catch (error) {
235
240
  toast({
236
241
  title: "Failed to download",
@@ -1,9 +0,0 @@
1
- var se=Object.defineProperty;var ue=(r,e,t)=>e in r?se(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var D=(r,e,t)=>ue(r,typeof e!="symbol"?e+"":e,t);import{s as q,t as B}from"./chunk-LvLJmgfZ.js";import{t as C}from"./react-Bj1aDYRI.js";import{qi as ce}from"./cells-D9tCNe6o.js";import{t as H}from"./compiler-runtime-B3qBwwSJ.js";import{g as O}from"./useEventListener-C0195JsF.js";import{t as W}from"./cn-DYvqRARy.js";import{t as de}from"./jsx-runtime-Blw4afVn.js";import{C as fe,w as _}from"./fullscreen-CTDqNQr6.js";import{d as me}from"./popover-Bcz1Zikb.js";import{t as pe}from"./requests-9-v2bhoi.js";import{t as ve}from"./createLucideIcon-w-Qo9n0R.js";import{t as L}from"./use-toast-BwJoaaDM.js";import{n as ge}from"./paths-BKO-pHK6.js";import{a as k}from"./errors-PgHhDa-M.js";import{t as z}from"./html-to-image-1vflBYah.js";var P=q(C(),1),v=q(de(),1),I="Progress",U=100,[he,it]=fe(I),[we,ye]=he(I),Y=P.forwardRef((r,e)=>{let{__scopeProgress:t,value:a=null,max:n,getValueLabel:i=xe,...l}=r;(n||n===0)&&!Q(n)&&console.error(be(`${n}`,"Progress"));let o=Q(n)?n:U;a!==null&&!Z(a,o)&&console.error(Pe(`${a}`,"Progress"));let s=Z(a,o)?a:null,u=R(s)?i(s,o):void 0;return(0,v.jsx)(we,{scope:t,value:s,max:o,children:(0,v.jsx)(_.div,{"aria-valuemax":o,"aria-valuemin":0,"aria-valuenow":R(s)?s:void 0,"aria-valuetext":u,role:"progressbar","data-state":K(s,o),"data-value":s??void 0,"data-max":o,...l,ref:e})})});Y.displayName=I;var X="ProgressIndicator",J=P.forwardRef((r,e)=>{let{__scopeProgress:t,...a}=r,n=ye(X,t);return(0,v.jsx)(_.div,{"data-state":K(n.value,n.max),"data-value":n.value??void 0,"data-max":n.max,...a,ref:e})});J.displayName=X;function xe(r,e){return`${Math.round(r/e*100)}%`}function K(r,e){return r==null?"indeterminate":r===e?"complete":"loading"}function R(r){return typeof r=="number"}function Q(r){return R(r)&&!isNaN(r)&&r>0}function Z(r,e){return R(r)&&!isNaN(r)&&r<=e&&r>=0}function be(r,e){return`Invalid prop \`max\` of value \`${r}\` supplied to \`${e}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${U}\`.`}function Pe(r,e){return`Invalid prop \`value\` of value \`${r}\` supplied to \`${e}\`. The \`value\` prop must be:
2
- - a positive number
3
- - less than the value passed to \`max\` (or ${U} if no \`max\` prop is set)
4
- - \`null\` or \`undefined\` if the progress is indeterminate.
5
-
6
- Defaulting to \`null\`.`}var ee=Y,Se=J,je=ve("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),te=r=>{let e,t=new Set,a=(o,s)=>{let u=typeof o=="function"?o(e):o;if(!Object.is(u,e)){let c=e;e=s??(typeof u!="object"||!u)?u:Object.assign({},e,u),t.forEach(d=>d(e,c))}},n=()=>e,i={setState:a,getState:n,getInitialState:()=>l,subscribe:o=>(t.add(o),()=>t.delete(o)),destroy:()=>{t.clear()}},l=e=r(a,n,i);return i},Ne=r=>r?te(r):te,Le=B((r=>{var e=C(),t=me();function a(c,d){return c===d&&(c!==0||1/c==1/d)||c!==c&&d!==d}var n=typeof Object.is=="function"?Object.is:a,i=t.useSyncExternalStore,l=e.useRef,o=e.useEffect,s=e.useMemo,u=e.useDebugValue;r.useSyncExternalStoreWithSelector=function(c,d,f,x,b){var g=l(null);if(g.current===null){var h={hasValue:!1,value:null};g.current=h}else h=g.current;g=s(function(){function A(p){if(!G){if(G=!0,j=p,p=x(p),b!==void 0&&h.hasValue){var w=h.value;if(b(w,p))return N=w}return N=p}if(w=N,n(j,p))return w;var V=x(p);return b!==void 0&&b(w,V)?(j=p,w):(j=p,N=V)}var G=!1,j,N,M=f===void 0?null:f;return[function(){return A(d())},M===null?void 0:function(){return A(M())}]},[d,f,x,b]);var S=i(c,g[0],g[1]);return o(function(){h.hasValue=!0,h.value=S},[S]),u(S),S}})),Re=B(((r,e)=>{e.exports=Le()}));const m={toMarkdown:r=>m.replace(r,"md"),toHTML:r=>m.replace(r,"html"),toPNG:r=>m.replace(r,"png"),toPDF:r=>m.replace(r,"pdf"),toPY:r=>m.replace(r,"py"),toIPYNB:r=>m.replace(r,"ipynb"),withoutExtension:r=>{let e=r.split(".");return e.length===1?r:e.slice(0,-1).join(".")},replace:(r,e)=>r.endsWith(`.${e}`)?r:`${m.withoutExtension(r)}.${e}`};var re={png:"png",jpg:"jpg",jpeg:"jpeg",gif:"gif",webp:"webp",avif:"avif",bmp:"bmp",tiff:"tiff",svg:"svg","svg+xml":"svg"};function Ee(r){var t;let e=r.match(/^data:image\/([^,;]+)/);if(e)return re[e[1]];try{return re[((t=new URL(r,window.location.href).pathname.split(".").pop())==null?void 0:t.toLowerCase())??""]}catch{return}}var y=320,E=180;function ne(r){if(!r||r==="about:blank")return null;try{let e=new URL(r,window.location.href);return e.origin===window.location.origin?null:e.href}catch{return r}}function $e(r,e,t){let a=[],n="";for(let i of e){let l=n+i;r.measureText(l).width<=t?n=l:(n&&a.push(n),n=i)}return n&&a.push(n),a}function F(r){let e=window.devicePixelRatio||1,t=document.createElement("canvas");t.width=y*e,t.height=E*e;let a=t.getContext("2d");if(!a)return t.toDataURL("image/png");a.scale(e,e),a.fillStyle="#f3f4f6",a.fillRect(0,0,y,E),a.strokeStyle="#d1d5db",a.strokeRect(.5,.5,y-1,E-1),a.fillStyle="#6b7280",a.font="8px sans-serif",a.textAlign="center",a.textBaseline="middle";let n=y-32,i=r?$e(a,r,n):[],l=(E-(1+i.length)*14)/2+14/2;a.fillText("External iframe",y/2,l),l+=14;for(let o of i)a.fillText(o,y/2,l),l+=14;return t.toDataURL("image/png")}async function De(r){var n;let e=r.querySelector("iframe");if(!e)return null;let t=ne(e.getAttribute("src"));if(t)return F(t);let a;try{let i=e.contentDocument||((n=e.contentWindow)==null?void 0:n.document);if(!(i!=null&&i.body))return null;a=i}catch{return F(null)}for(let i of a.querySelectorAll("iframe")){let l=ne(i.getAttribute("src"));if(l)return F(l)}return null}var ae=class le{constructor(e){D(this,"progress",0);D(this,"listeners",new Set);this.total=e}static indeterminate(){return new le("indeterminate")}addTotal(e){this.total==="indeterminate"?this.total=e:this.total+=e,this.notifyListeners()}increment(e){this.progress+=e,this.notifyListeners()}getProgress(){return this.total==="indeterminate"?"indeterminate":this.progress/this.total*100}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notifyListeners(){let e=this.getProgress();for(let t of this.listeners)t(e)}},Oe=H(),T=P.forwardRef((r,e)=>{let t=(0,Oe.c)(20),a,n,i,l;t[0]===r?(a=t[1],n=t[2],i=t[3],l=t[4]):({className:a,value:l,indeterminate:n,...i}=r,t[0]=r,t[1]=a,t[2]=n,t[3]=i,t[4]=l);let o;t[5]===a?o=t[6]:(o=W("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",a),t[5]=a,t[6]=o);let s=n?"w-1/3 animate-progress-indeterminate":"w-full transition-transform duration-300 ease-out",u;t[7]===s?u=t[8]:(u=W("h-full flex-1 bg-primary",s),t[7]=s,t[8]=u);let c;t[9]!==n||t[10]!==l?(c=n?void 0:{transform:`translateX(-${100-(l||0)}%)`},t[9]=n,t[10]=l,t[11]=c):c=t[11];let d;t[12]!==u||t[13]!==c?(d=(0,v.jsx)(Se,{className:u,style:c}),t[12]=u,t[13]=c,t[14]=d):d=t[14];let f;return t[15]!==i||t[16]!==e||t[17]!==o||t[18]!==d?(f=(0,v.jsx)(ee,{ref:e,className:o,...i,children:d}),t[15]=i,t[16]=e,t[17]=o,t[18]=d,t[19]=f):f=t[19],f});T.displayName=ee.displayName;var ke=H();const Ie=r=>{let e=(0,ke.c)(13),{progress:t,showPercentage:a}=r,n=a===void 0?!1:a,i,l;e[0]===t?(i=e[1],l=e[2]):(i=x=>t.subscribe(x),l=()=>t.getProgress(),e[0]=t,e[1]=i,e[2]=l);let o=(0,P.useSyncExternalStore)(i,l),s=o==="indeterminate"||o===100,u=s?void 0:o,c;e[3]!==s||e[4]!==u?(c=(0,v.jsx)(T,{value:u,indeterminate:s}),e[3]=s,e[4]=u,e[5]=c):c=e[5];let d;e[6]!==s||e[7]!==n||e[8]!==o?(d=!s&&n&&(0,v.jsxs)("div",{className:"mt-1 text-xs text-muted-foreground text-right",children:[Math.round(o),"%"]}),e[6]=s,e[7]=n,e[8]=o,e[9]=d):d=e[9];let f;return e[10]!==c||e[11]!==d?(f=(0,v.jsxs)("div",{className:"mt-2 w-full min-w-[200px]",children:[c,d]}),e[10]=c,e[11]=d,e[12]=f):f=e[12],f};var Ue=1200;async function Fe(r,e,t){let a=ae.indeterminate(),n=L({title:r,description:P.createElement(Ie,{progress:a}),duration:1/0});try{let i=await e(a);return t?n.update({duration:Ue,description:void 0,...t}):n.dismiss(),i}catch(i){throw n.dismiss(),i}}function Te(r){let e=document.getElementById(ce.create(r));if(!e){O.error(`Output element not found for cell ${r}`);return}return e}var Ae=500,Ge=`
7
- * { scrollbar-width: none; -ms-overflow-style: none; }
8
- *::-webkit-scrollbar { display: none; }
9
- `;async function ie(r){let e=Te(r);if(!e)return;let t=await De(e);if(t)return t;let a=Date.now(),n=await z(e,{extraStyleContent:Ge,style:{maxHeight:"none",overflow:"visible"},height:e.scrollHeight}),i=Date.now()-a;return i>Ae&&O.debug("toPng operation for element",e,`took ${i} ms (exceeds threshold)`),n}async function Me(r,e){try{let t=await ie(r);if(!t)throw Error("Failed to get image data URL");$(t,m.toPNG(e))}catch(t){L({title:"Failed to download PNG",description:k(t),variant:"danger"})}}const Ve=()=>(document.body.classList.add("printing"),()=>{document.body.classList.remove("printing")});async function qe(r){let{element:e,filename:t,prepare:a}=r,n=document.getElementById("App"),i=(n==null?void 0:n.scrollTop)??0,l;a&&(l=a(e));try{$(await z(e),m.toPNG(t))}catch(o){O.error("Error downloading as PNG",o),L({title:"Failed to download as PNG",description:k(o),variant:"danger"})}finally{l==null||l(),document.body.classList.contains("printing")&&document.body.classList.remove("printing"),requestAnimationFrame(()=>{n==null||n.scrollTo(0,i)})}}function $(r,e){let t=document.createElement("a");t.href=r,e&&(t.download=e),t.click(),t.remove()}function oe(r,e){let t=URL.createObjectURL(r);$(t,e),URL.revokeObjectURL(t)}async function Be(r){let e=pe(),{filename:t,webpdf:a,preset:n="document",includeInputs:i=!0,rasterizeOutputs:l=!0,rasterScale:o=4,rasterServer:s="static"}=r;try{let u=await e.exportAsPDF({webpdf:a,preset:n,includeInputs:i,rasterizeOutputs:l,rasterScale:o,rasterServer:s}),c=ge.basename(t);oe(u,m.toPDF(c))}catch(u){throw L({title:"Failed to download",description:k(u),variant:"danger"}),u}}export{Me as a,Fe as c,m as d,Ee as f,je as h,$ as i,T as l,Ne as m,Be as n,qe as o,Re as p,oe as r,ie as s,Ve as t,ae as u};
@@ -1 +0,0 @@
1
- import{s as N}from"./chunk-LvLJmgfZ.js";import{p as O}from"./useEvent-D91BmmQi.js";import{t as ee}from"./react-Bj1aDYRI.js";import{t as te}from"./compiler-runtime-B3qBwwSJ.js";import{g as P,o as U}from"./useEventListener-C0195JsF.js";import{r as _}from"./config-B-Q7J_6d.js";import{n as I,t as D}from"./cn-DYvqRARy.js";import{t as re}from"./jsx-runtime-Blw4afVn.js";import{C as se,w as H,x as ae,y as oe}from"./fullscreen-CTDqNQr6.js";import{o as ne}from"./dist-BLN8PNJV.js";import{m as ie}from"./select-BP75_5jJ.js";import{t as M}from"./strings--BknHX9C.js";import{r as S}from"./errors-PgHhDa-M.js";function le(){try{return window.__MARIMO_MOUNT_CONFIG__.version}catch{return P.warn("Failed to get version from mount config"),null}}const ue=O(le()||"latest"),ce=O(!0),de=O(null);var w=N(ee(),1),j=N(re(),1),$="Switch",[fe,We]=se($),[pe,he]=fe($),W=w.forwardRef((t,s)=>{let{__scopeSwitch:e,name:a,checked:r,defaultChecked:o,required:n,disabled:i,value:c="on",onCheckedChange:u,form:l,...p}=t,[h,g]=w.useState(null),v=U(s,f=>g(f)),m=w.useRef(!1),T=h?l||!!h.closest("form"):!0,[R,k]=oe({prop:r,defaultProp:o??!1,onChange:u,caller:$});return(0,j.jsxs)(pe,{scope:e,checked:R,disabled:i,children:[(0,j.jsx)(H.button,{type:"button",role:"switch","aria-checked":R,"aria-required":n,"data-state":J(R),"data-disabled":i?"":void 0,disabled:i,value:c,...p,ref:v,onClick:ae(t.onClick,f=>{k(x=>!x),T&&(m.current=f.isPropagationStopped(),m.current||f.stopPropagation())})}),T&&(0,j.jsx)(F,{control:h,bubbles:!m.current,name:a,value:c,checked:R,required:n,disabled:i,form:l,style:{transform:"translateX(-100%)"}})]})});W.displayName=$;var L="SwitchThumb",G=w.forwardRef((t,s)=>{let{__scopeSwitch:e,...a}=t,r=he(L,e);return(0,j.jsx)(H.span,{"data-state":J(r.checked),"data-disabled":r.disabled?"":void 0,...a,ref:s})});G.displayName=L;var me="SwitchBubbleInput",F=w.forwardRef(({__scopeSwitch:t,control:s,checked:e,bubbles:a=!0,...r},o)=>{let n=w.useRef(null),i=U(n,o),c=ie(e),u=ne(s);return w.useEffect(()=>{let l=n.current;if(!l)return;let p=window.HTMLInputElement.prototype,h=Object.getOwnPropertyDescriptor(p,"checked").set;if(c!==e&&h){let g=new Event("click",{bubbles:a});h.call(l,e),l.dispatchEvent(g)}},[c,e,a]),(0,j.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:e,...r,tabIndex:-1,ref:i,style:{...r.style,...u,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});F.displayName=me;function J(t){return t?"checked":"unchecked"}var V=W,ye=G,be={"Content-Type":"application/json"},we=/\{[^{}]+\}/g,ge=class extends Request{constructor(t,s){for(let e in super(t,s),s)e in this||(this[e]=s[e])}};function xe(t){let{baseUrl:s="",fetch:e=globalThis.fetch,querySerializer:a,bodySerializer:r,headers:o,...n}={...t};s.endsWith("/")&&(s=s.substring(0,s.length-1)),o=Q(be,o);let i=[];async function c(u,l){let{fetch:p=e,headers:h,params:g={},parseAs:v="json",querySerializer:m,bodySerializer:T=r??Re,...R}=l||{},k=typeof a=="function"?a:K(a);m&&(k=typeof m=="function"?m:K({...typeof a=="object"?a:{},...m}));let f={redirect:"follow",...n,...R,headers:Q(o,h,g.header)};f.body&&(f.body=T(f.body)),f.body instanceof FormData&&f.headers.delete("Content-Type");let x=new ge(ve(u,{baseUrl:s,params:g,querySerializer:k}),f),z={baseUrl:s,fetch:p,parseAs:v,querySerializer:k,bodySerializer:T};for(let y of i)if(y&&typeof y=="object"&&typeof y.onRequest=="function"){x.schemaPath=u,x.params=g;let b=await y.onRequest(x,z);if(b){if(!(b instanceof Request))throw Error("Middleware must return new Request() when modifying the request");x=b}}let d=await p(x);for(let y=i.length-1;y>=0;y--){let b=i[y];if(b&&typeof b=="object"&&typeof b.onResponse=="function"){let q=await b.onResponse(d,z);if(q){if(!(q instanceof Response))throw Error("Middleware must return new Response() when modifying the response");d=q}}}if(d.status===204||d.headers.get("Content-Length")==="0")return d.ok?{data:{},response:d}:{error:{},response:d};if(d.ok)return v==="stream"?{data:d.body,response:d}:{data:await d[v](),response:d};let C=await d.text();try{C=JSON.parse(C)}catch{}return{error:C,response:d}}return{async GET(u,l){return c(u,{...l,method:"GET"})},async PUT(u,l){return c(u,{...l,method:"PUT"})},async POST(u,l){return c(u,{...l,method:"POST"})},async DELETE(u,l){return c(u,{...l,method:"DELETE"})},async OPTIONS(u,l){return c(u,{...l,method:"OPTIONS"})},async HEAD(u,l){return c(u,{...l,method:"HEAD"})},async PATCH(u,l){return c(u,{...l,method:"PATCH"})},async TRACE(u,l){return c(u,{...l,method:"TRACE"})},use(...u){for(let l of u)if(l){if(typeof l!="object"||!("onRequest"in l||"onResponse"in l))throw Error("Middleware must be an object with one of `onRequest()` or `onResponse()`");i.push(l)}},eject(...u){for(let l of u){let p=i.indexOf(l);p!==-1&&i.splice(p,1)}}}}function E(t,s,e){if(s==null)return"";if(typeof s=="object")throw Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${(e==null?void 0:e.allowReserved)===!0?s:encodeURIComponent(s)}`}function B(t,s,e){if(!s||typeof s!="object")return"";let a=[],r={simple:",",label:".",matrix:";"}[e.style]||"&";if(e.style!=="deepObject"&&e.explode===!1){for(let i in s)a.push(i,e.allowReserved===!0?s[i]:encodeURIComponent(s[i]));let n=a.join(",");switch(e.style){case"form":return`${t}=${n}`;case"label":return`.${n}`;case"matrix":return`;${t}=${n}`;default:return n}}for(let n in s){let i=e.style==="deepObject"?`${t}[${n}]`:n;a.push(E(i,s[n],e))}let o=a.join(r);return e.style==="label"||e.style==="matrix"?`${r}${o}`:o}function X(t,s,e){if(!Array.isArray(s))return"";if(e.explode===!1){let o={form:",",spaceDelimited:"%20",pipeDelimited:"|"}[e.style]||",",n=(e.allowReserved===!0?s:s.map(i=>encodeURIComponent(i))).join(o);switch(e.style){case"simple":return n;case"label":return`.${n}`;case"matrix":return`;${t}=${n}`;default:return`${t}=${n}`}}let a={simple:",",label:".",matrix:";"}[e.style]||"&",r=[];for(let o of s)e.style==="simple"||e.style==="label"?r.push(e.allowReserved===!0?o:encodeURIComponent(o)):r.push(E(t,o,e));return e.style==="label"||e.style==="matrix"?`${a}${r.join(a)}`:r.join(a)}function K(t){return function(s){let e=[];if(s&&typeof s=="object")for(let a in s){let r=s[a];if(r!=null){if(Array.isArray(r)){e.push(X(a,r,{style:"form",explode:!0,...t==null?void 0:t.array,allowReserved:(t==null?void 0:t.allowReserved)||!1}));continue}if(typeof r=="object"){e.push(B(a,r,{style:"deepObject",explode:!0,...t==null?void 0:t.object,allowReserved:(t==null?void 0:t.allowReserved)||!1}));continue}e.push(E(a,r,t))}}return e.join("&")}}function je(t,s){let e=t;for(let a of t.match(we)??[]){let r=a.substring(1,a.length-1),o=!1,n="simple";if(r.endsWith("*")&&(o=!0,r=r.substring(0,r.length-1)),r.startsWith(".")?(n="label",r=r.substring(1)):r.startsWith(";")&&(n="matrix",r=r.substring(1)),!s||s[r]===void 0||s[r]===null)continue;let i=s[r];if(Array.isArray(i)){e=e.replace(a,X(r,i,{style:n,explode:o}));continue}if(typeof i=="object"){e=e.replace(a,B(r,i,{style:n,explode:o}));continue}if(n==="matrix"){e=e.replace(a,`;${E(r,i)}`);continue}e=e.replace(a,n==="label"?`.${i}`:i)}return e}function Re(t){return JSON.stringify(t)}function ve(t,s){var r;let e=`${s.baseUrl}${t}`;(r=s.params)!=null&&r.path&&(e=je(e,s.params.path));let a=s.querySerializer(s.params.query??{});return a.startsWith("?")&&(a=a.substring(1)),a&&(e+=`?${a}`),e}function Q(...t){let s=new Headers;for(let e of t){if(!e||typeof e!="object")continue;let a=e instanceof Headers?e.entries():Object.entries(e);for(let[r,o]of a)if(o===null)s.delete(r);else if(Array.isArray(o))for(let n of o)s.append(r,n);else o!==void 0&&s.set(r,o)}return s}function Te(t){return xe(t)}function Y(){let t=_().httpURL;return t.search="",t.hash="",t.toString()}const A={post(t,s,e={}){let a=`${M.withTrailingSlash(e.baseUrl??Y())}api${t}`;return fetch(a,{method:"POST",headers:{"Content-Type":"application/json",...A.headers(),...e.headers},body:JSON.stringify(s),signal:e.signal}).then(async r=>{var n;let o=(n=r.headers.get("Content-Type"))==null?void 0:n.startsWith("application/json");if(!r.ok){let i=o?await r.json():await r.text();throw new S(r.status,r.statusText,i)}return o?r.json():r.text()}).catch(r=>{throw P.error(`Error requesting ${a}`,r),r})},get(t,s={}){let e=`${M.withTrailingSlash(s.baseUrl??Y())}api${t}`;return fetch(e,{method:"GET",headers:{...A.headers(),...s.headers}}).then(a=>{var r;if(!a.ok)throw new S(a.status,a.statusText);return(r=a.headers.get("Content-Type"))!=null&&r.startsWith("application/json")?a.json():null}).catch(a=>{throw P.error(`Error requesting ${e}`,a),a})},headers(){return _().headers()},handleResponse:t=>t.error?Promise.reject(new S(t.response.status,t.response.statusText,t.error)):Promise.resolve(t.data),handleResponseReturnNull:t=>t.error?Promise.reject(new S(t.response.status,t.response.statusText,t.error)):Promise.resolve(null)};function ke(t){let s=Te({baseUrl:t.httpURL.toString()});return s.use({onRequest:e=>{let a=t.headers();for(let[r,o]of Object.entries(a))e.headers.set(r,o);return e}}),s}var Se=te(),$e=I("peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",{variants:{size:{default:"h-6 w-11 mb-1",sm:"h-4.5 w-8.5",xs:"h-4 w-7"}},defaultVariants:{size:"default"}}),Ee=I("pointer-events-none block rounded-full bg-background shadow-xs ring-0 transition-transform",{variants:{size:{default:"h-5 w-5 data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0",sm:"h-3.5 w-3.5 data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0",xs:"h-3 w-3 data-[state=checked]:translate-x-3 data-[state=unchecked]:translate-x-0"}},defaultVariants:{size:"default"}}),Z=w.forwardRef((t,s)=>{let e=(0,Se.c)(16),a,r,o;e[0]===t?(a=e[1],r=e[2],o=e[3]):({className:a,size:o,...r}=t,e[0]=t,e[1]=a,e[2]=r,e[3]=o);let n;e[4]!==a||e[5]!==o?(n=D($e({size:o}),a),e[4]=a,e[5]=o,e[6]=n):n=e[6];let i;e[7]===o?i=e[8]:(i=D(Ee({size:o})),e[7]=o,e[8]=i);let c;e[9]===i?c=e[10]:(c=(0,j.jsx)(ye,{className:i}),e[9]=i,e[10]=c);let u;return e[11]!==r||e[12]!==s||e[13]!==n||e[14]!==c?(u=(0,j.jsx)(V,{className:n,...r,ref:s,children:c}),e[11]=r,e[12]=s,e[13]=n,e[14]=c,e[15]=u):u=e[15],u});Z.displayName=V.displayName;export{de as a,ue as i,A as n,ce as o,ke as r,Z as t};
@@ -1,12 +0,0 @@
1
- import{s as _e}from"./chunk-LvLJmgfZ.js";import{d as R,i as St,l as At,p as _t,u as N}from"./useEvent-D91BmmQi.js";import{t as Dt}from"./react-Bj1aDYRI.js";import{Bn as Et,Dn as It,Dr as Pt,E as De,Ht as Lt,Ii as Tt,Ji as ke,On as Ot,Sr as Ht,T as Rt,_r as Bt,g as $t,ji as qt,jn as Ft,jt as Ee,kn as Ut,m as Ie,t as Yt,ti as Vt,vr as Pe,wn as Kt,y as Gt,yr as Jt}from"./cells-D9tCNe6o.js";import{t as z}from"./compiler-runtime-B3qBwwSJ.js";import{n as Xt,r as Qt,x as Zt}from"./ai-model-dropdown-JakbdGqy.js";import{g as B,n as ea}from"./useEventListener-C0195JsF.js";import{t as Le}from"./objects-BlG0ZrO0.js";import{C as ta,r as aa}from"./utils-BWBBpCkT.js";import{n as C,t as Te}from"./constants-CDyU_g2F.js";import{M as ee,O as na,T as Oe,j as He,k as oa,v as Re}from"./config-B-Q7J_6d.js";import{c as sa}from"./readonly-python-code-BqcMp63O.js";import{t as ra}from"./cn-DYvqRARy.js";import{t as la}from"./jsx-runtime-Blw4afVn.js";import{o as ia}from"./alert-dialog-Bb8Lz8ko.js";import{a as da,c as ca,i as ha,n as ma,r as pa,s as ua,t as fa}from"./select-BP75_5jJ.js";import{Lt as xa}from"./JsonOutput-BoDVlAbV.js";import{c as Be,d as we,n as ba,o as ya,r as je,t as ka}from"./download-CnYLah74.js";import{t as wa}from"./tooltip-4bZlU7jl.js";import{r as ja,t as P}from"./button-DDGiD1NW.js";import{i as ga,t as ge}from"./strings--BknHX9C.js";import{r as L}from"./requests-9-v2bhoi.js";import{t as k}from"./createLucideIcon-w-Qo9n0R.js";import{F as va,I as Ca,L as Na,R as $e,a as qe,d as za,i as Fe,u as Ue}from"./layout-CyjXUY2w.js";import{t as Ye}from"./check-rzLRd0j9.js";import{r as Ma}from"./useCellActionButton-BhCYWOKS.js";import{t as Wa}from"./code-B2aKtXoe.js";import{t as Sa}from"./copy-3iHFdt22.js";import{t as Ve}from"./eye-off-BOZA7gbn.js";import{t as Ke}from"./external-link-BOlXZUla.js";import{t as te}from"./file-CJH9JNGH.js";import{u as Aa}from"./form-B5UJtZJr.js";import{n as _a,r as Da,t as Ea}from"./youtube-OwaksuQt.js";import{i as Ia,n as Ge}from"./add-connection-dialog-wLF3on0N.js";import{t as Pa}from"./house-DS0r7dNZ.js";import{t as La}from"./image-5XI2VU-q.js";import{t as Ta}from"./link-CHdiBDr5.js";import{r as Oa}from"./input-JxFwu-3G.js";import{t as Ha}from"./settings-D_PiwXwo.js";import{t as Ra}from"./sparkles-DUCpRFlS.js";import{y as Ba}from"./textarea-BQE_pb7P.js";import{t as $a}from"./square-DFICx2Qv.js";import{t as Je}from"./triangle-alert-BL4YVsPy.js";import{t as W}from"./use-toast-BwJoaaDM.js";import{n as Xe,t as qa}from"./paths-BKO-pHK6.js";import{o as Fa}from"./session-BmukRjSi.js";import{n as ae}from"./copy-Bxb1_Gtw.js";import{t as Qe}from"./copy-icon-neDQUo4Q.js";import{r as Ua}from"./useRunCells-BpMmDGqa.js";import{a as Ze,c as et,i as Ya,n as tt,r as at}from"./dialog-BCVepWLJ.js";import{n as ne}from"./ImperativeModal-fY-ZfT0b.js";import{r as Va,t as nt}from"./share-852X_cqy.js";import{a as Ka}from"./cell-link-D1nZ5myN.js";import{n as ot}from"./useAsyncData-Bg5iAViP.js";import{a as Ga}from"./renderShortcut-Bl8_FVn8.js";import{t as Ja}from"./icons-CIPE8AIY.js";import{i as Xa,n as st}from"./error-entries-CmfGHGq1.js";import{t as Qa}from"./pair-with-agent-modal-nwd26aKZ.js";import{t as Za}from"./github-_JH-0hIO.js";import{n as rt}from"./marimo-icons-C_nFooxr.js";import{t as en}from"./links-CZr5bjvo.js";import{i as tn,n as lt,t as ve}from"./skeleton-DuUCup3W.js";import{t as it}from"./types-Da7lA5YC.js";var an=k("circle-chevron-down",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 10-4 4-4-4",key:"894hmk"}]]),nn=k("circle-chevron-right",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m10 8 4 4-4 4",key:"1wy4r4"}]]),dt=k("clipboard-copy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]),ct=k("command",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]),ht=k("diamond-plus",[["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z",key:"1ey20j"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),on=k("fast-forward",[["path",{d:"M12 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 12 18z",key:"b19h5q"}],["path",{d:"M2 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 2 18z",key:"h7h5ge"}]]),sn=k("files",[["path",{d:"M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8",key:"14sh0y"}],["path",{d:"M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z",key:"1970lx"}],["path",{d:"M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1",key:"l4dndm"}]]),rn=k("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]),mt=k("message-circle-question-mark",[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),ln=k("notebook",[["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["path",{d:"M16 2v20",key:"rotuqe"}]]),dn=k("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]),pt=k("presentation",[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]]),cn=k("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]),hn=k("square-power",[["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M7.998 9.003a5 5 0 1 0 8-.005",key:"1pek45"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),ut=k("undo-2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]),mn=z(),T=_e(Dt(),1);function Ce(e,t){let n=(0,mn.c)(11),o;n[0]===t?o=n[1]:(o=new qt(t),n[0]=t,n[1]=o);let s=o,l;n[2]!==e||n[3]!==s?(l=()=>s.get(e),n[2]=e,n[3]=s,n[4]=l):l=n[4];let[r,d]=(0,T.useState)(l),i;n[5]!==e||n[6]!==s?(i=x=>{d(x),s.set(e,x)},n[5]=e,n[6]=s,n[7]=i):i=n[7];let c=i,h;return n[8]!==c||n[9]!==r?(h=[r,c],n[8]=c,n[9]=r,n[10]=h):h=n[10],h}function pn(e,t){return{...e,Binaries:{...e.Binaries,Browser:t}}}function un(e,t,n,o){return{marimo:e,Locale:n||void 0,Binaries:{Browser:t},"Environment Collection Error":o}}function Ne(e,t){let n=Math.max(2,...Array.from(t.matchAll(/`+/g),s=>s[0].length)),o="`".repeat(n+1);return`${o}${e}
2
- ${t}
3
- ${o}`}function fn(e,t){let n=e.includes("?")?"&":"?",o=[],s=e,l=0;for(let[r,d]of Object.entries(t)){if(d.length===0)continue;let i=`${r}=${encodeURIComponent(d)}`,c=`${s}${l===0?n:"&"}${i}`;if(c.length>6e3){o.push(r);continue}s=c,l+=1}return{url:s,omitted:o}}function ze(e,t){return["<details>",`<summary>${ge.htmlEscape(e)??""}</summary>`,"",t,"","</details>"].join(`
4
- `)}function xn(e){return ze("Environment",Ne("json",JSON.stringify(e,null,2)))}function ft(e){return ze("Errors",Ne("text",e.map(st).join(`
5
-
6
- ---
7
-
8
- `)))}function bn(e){return ze("Code",Ne("python",e))}var xt=z(),a=_e(la(),1),yn=ea,bt=e=>{let t=(0,xt.c)(16),{content:n}=e,[o,s]=(0,T.useState)(!1),l=!o&&"max-h-24 overflow-hidden",r;t[0]===l?r=t[1]:(r=ra("text-xs bg-muted rounded p-2 overflow-x-auto whitespace-pre-wrap",l),t[0]=l,t[1]=r);let d;t[2]!==n||t[3]!==r?(d=(0,a.jsx)("pre",{className:r,children:n}),t[2]=n,t[3]=r,t[4]=d):d=t[4];let i;t[5]===o?i=t[6]:(i=!o&&(0,a.jsx)("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 h-10 rounded-b bg-gradient-to-b from-transparent to-muted"}),t[5]=o,t[6]=i);let c;t[7]!==d||t[8]!==i?(c=(0,a.jsxs)("div",{className:"relative",children:[d,i]}),t[7]=d,t[8]=i,t[9]=c):c=t[9];let h;t[10]===Symbol.for("react.memo_cache_sentinel")?(h=()=>s(wn),t[10]=h):h=t[10];let x=o?"Show less":"Show more",m;t[11]===x?m=t[12]:(m=(0,a.jsx)(P,{type:"button",variant:"link",size:"xs",className:"self-start",onClick:h,children:x}),t[11]=x,t[12]=m);let b;return t[13]!==c||t[14]!==m?(b=(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[c,m]}),t[13]=c,t[14]=m,t[15]=b):b=t[15],b};const kn=e=>{let t=(0,xt.c)(6),{children:n}=e,{openModal:o,closeModal:s}=ne(),l;t[0]!==s||t[1]!==o?(l=()=>o((0,a.jsx)(yt,{onClose:s})),t[0]=s,t[1]=o,t[2]=l):l=t[2];let r;return t[3]!==n||t[4]!==l?(r=(0,a.jsx)(yn,{onClick:l,children:n}),t[3]=n,t[4]=l,t[5]=r):r=t[5],r},yt=()=>{let{getEnvironmentInfo:e,readCode:t}=L(),n=ot(async()=>e(),[e]),o=N(Gt),s=(0,T.useMemo)(()=>Xa(St),[o]),l=za(o.cellIds.inOrderIds.map(p=>o.cellData[p])),r=N(Tt),d=N(Re),i=r!==null&&l&&d.state===Oe.OPEN,c=i?void 0:r===null?"Save the notebook first.":l?"Connect the notebook to include its source.":"Notebook source is hidden in this view.",[h,x]=Ce("marimo:issue-report:include-errors",!1),[m,b]=Ce("marimo:issue-report:include-code",!1),f=n.data?pn(n.data,navigator.userAgent):n.status==="error"?un(sa(),navigator.userAgent,navigator.language,"Server environment information unavailable"):void 0,y=ot(async()=>{if(!m||!i)return;let{contents:p}=await t();return p},[m,i,t]),{url:w,omitted:j}=(0,T.useMemo)(()=>{if(!f)return{url:C.bugReportUrl,omitted:[]};let p={env:xn(f)};return h&&s.length>0&&(p["bug-description"]=ft(s)),m&&y.data&&(p["reproduction-code"]=bn(y.data)),fn(C.bugReportUrl,p)},[f,s,h,m,y.data]),v=j.map(p=>p==="bug-description"?"errors":p==="reproduction-code"?"code":p).join(", ");return(0,a.jsxs)(tt,{className:"w-[540px] max-w-[90vw]",children:[(0,a.jsxs)(Ze,{children:[(0,a.jsx)(et,{children:"Report an issue"}),(0,a.jsx)(at,{children:"Open a GitHub bug report prefilled with your environment, and optionally your current errors and notebook code. Nothing is uploaded automatically; review the details before posting."})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-4 max-h-[60vh] overflow-y-auto",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsx)(P,{type:"button",variant:"default",size:"xs",asChild:!0,className:"self-start",children:(0,a.jsxs)("a",{href:w,target:"_blank",rel:"noreferrer",children:[(0,a.jsx)(Ke,{className:"w-4 h-4 mr-2"}),"Open GitHub issue"]})}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,a.jsx)(Ee,{id:"issue-include-errors",checked:h,disabled:s.length===0,onCheckedChange:p=>x(p===!0),"aria-label":"Include errors"}),(0,a.jsx)("label",{htmlFor:"issue-include-errors",children:"Include errors"})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,a.jsx)(Ee,{id:"issue-include-code",checked:m,disabled:!i,onCheckedChange:p=>b(p===!0),"aria-label":"Include notebook code"}),(0,a.jsx)("label",{htmlFor:"issue-include-code",children:"Include notebook code"})]}),c&&(0,a.jsx)("span",{className:"text-xs text-muted-foreground ml-6",children:c}),m&&y.status==="error"&&(0,a.jsx)("span",{className:"text-xs text-(--red-11) ml-6",children:"Notebook source could not be loaded."})]})]}),v?(0,a.jsxs)("div",{className:"flex items-start gap-2 text-xs text-(--yellow-11)",children:[(0,a.jsx)(Je,{className:"w-3.5 h-3.5 shrink-0 mt-0.5"}),(0,a.jsxs)("span",{children:["Too large to prefill and left out of the link: ",v,". Paste them into the issue manually."]})]}):(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Your environment is always included."})]}),n.status==="pending"&&(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:"Loading environment details\u2026"}),(0,a.jsx)(ve,{className:"h-4 w-full"}),(0,a.jsx)(ve,{className:"h-4 w-3/4"}),(0,a.jsx)(ve,{className:"h-4 w-1/2"})]}),n.status==="error"&&(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,a.jsx)(Je,{className:"w-4 h-4 text-(--yellow-11) shrink-0"}),(0,a.jsx)("span",{children:"Server environment information unavailable"}),(0,a.jsx)(P,{type:"button",variant:"link",size:"xs",onClick:()=>n.refetch(),children:"Retry"})]}),f&&(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"text-sm font-medium",children:"Environment details"}),(0,a.jsx)(Qe,{className:"w-3.5 h-3.5",value:JSON.stringify(f,null,2),ariaLabel:"Copy environment JSON",toastTitle:"Environment details copied"})]}),(0,a.jsx)(bt,{content:JSON.stringify(f,null,2)})]}),f&&s.length>0&&(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"text-sm font-medium",children:"Errors"}),(0,a.jsx)(Qe,{className:"w-3.5 h-3.5",value:ft(s),ariaLabel:"Copy errors",toastTitle:"Errors copied"})]}),(0,a.jsx)(bt,{content:s.map(st).join(`
9
-
10
- ---
11
-
12
- `)})]}),f&&s.length===0&&(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:"No errors detected."}),(0,a.jsx)("div",{className:"border-t pt-3",children:(0,a.jsxs)("p",{className:"text-sm text-muted-foreground",children:["Other feedback? Take our"," ",(0,a.jsx)("a",{href:C.feedbackForm,target:"_blank",rel:"noreferrer",className:"underline",children:"two-minute survey"})," ","or chat with us on"," ",(0,a.jsx)("a",{href:C.discordLink,target:"_blank",rel:"noreferrer",className:"underline",children:"Discord"}),"."]})})]})]})};function wn(e){return!e}var kt=z(),oe="https://static.marimo.app";const jn=e=>{let t=(0,kt.c)(25),{onClose:n}=e,[o,s]=(0,T.useState)(""),{exportAsHTML:l}=L(),r=`${o}-${Math.random().toString(36).slice(2,6)}`,d=`${oe}/static/${r}`,i;t[0]!==l||t[1]!==n||t[2]!==r?(i=async p=>{p.preventDefault(),n();let H=await l({download:!1,includeCode:!0,files:va.INSTANCE.filenames()}),S=W({title:"Uploading static notebook...",description:"Please wait."});await fetch(`${oe}/api/static`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({html:H,path:r})}).catch(()=>{S.dismiss(),W({title:"Error uploading static page",description:(0,a.jsxs)("div",{children:["Please try again later. If the problem persists, please file a bug report on"," ",(0,a.jsx)("a",{href:C.issuesPage,target:"_blank",className:"underline",children:"GitHub"}),"."]})})}),S.dismiss(),W({title:"Static page uploaded!",description:(0,a.jsxs)("div",{children:["The URL has been copied to your clipboard.",(0,a.jsx)("br",{}),"You can share it with anyone."]})})},t[0]=l,t[1]=n,t[2]=r,t[3]=i):i=t[3];let c;t[4]===Symbol.for("react.memo_cache_sentinel")?(c=(0,a.jsx)(et,{children:"Share static notebook"}),t[4]=c):c=t[4];let h;t[5]===Symbol.for("react.memo_cache_sentinel")?(h=(0,a.jsxs)(Ze,{children:[c,(0,a.jsxs)(at,{children:["You can publish a static, non-interactive version of this notebook to the public web. We will create a link for you that lives on"," ",(0,a.jsx)("a",{href:oe,target:"_blank",children:oe}),"."]})]}),t[5]=h):h=t[5];let x;t[6]===Symbol.for("react.memo_cache_sentinel")?(x=p=>{s(p.target.value.toLowerCase().replaceAll(/\s/g,"-").replaceAll(/[^\da-z-]/g,""))},t[6]=x):x=t[6];let m;t[7]===o?m=t[8]:(m=(0,a.jsx)(Oa,{"data-testid":"slug-input",id:"slug",autoFocus:!0,value:o,placeholder:"Notebook slug",onChange:x,required:!0,autoComplete:"off"}),t[7]=o,t[8]=m);let b;t[9]===d?b=t[10]:(b=(0,a.jsxs)("div",{className:"font-semibold text-sm text-muted-foreground gap-2 flex flex-col",children:["Anyone will be able to access your notebook at this URL:",(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(gn,{text:d}),(0,a.jsx)("span",{className:"text-primary",children:d})]})]}),t[9]=d,t[10]=b);let f;t[11]!==m||t[12]!==b?(f=(0,a.jsxs)("div",{className:"flex flex-col gap-6 py-4",children:[m,b]}),t[11]=m,t[12]=b,t[13]=f):f=t[13];let y;t[14]===n?y=t[15]:(y=(0,a.jsx)(P,{"data-testid":"cancel-share-static-notebook-button",variant:"secondary",onClick:n,children:"Cancel"}),t[14]=n,t[15]=y);let w;t[16]===d?w=t[17]:(w=(0,a.jsx)(P,{"data-testid":"share-static-notebook-button","aria-label":"Save",variant:"default",type:"submit",onClick:async()=>{await ae(d)},children:"Create"}),t[16]=d,t[17]=w);let j;t[18]!==y||t[19]!==w?(j=(0,a.jsxs)(Ya,{children:[y,w]}),t[18]=y,t[19]=w,t[20]=j):j=t[20];let v;return t[21]!==i||t[22]!==j||t[23]!==f?(v=(0,a.jsx)(tt,{className:"w-fit",children:(0,a.jsxs)("form",{onSubmit:i,children:[h,f,j]})}),t[21]=i,t[22]=j,t[23]=f,t[24]=v):v=t[24],v};var gn=e=>{let t=(0,kt.c)(8),[n,o]=T.useState(!1),s;t[0]===e.text?s=t[1]:(s=ja.stopPropagation(async c=>{c.preventDefault(),await ae(e.text),o(!0),setTimeout(()=>o(!1),2e3)}),t[0]=e.text,t[1]=s);let l=s,r;t[2]===Symbol.for("react.memo_cache_sentinel")?(r=(0,a.jsx)(Sa,{size:14,strokeWidth:1.5}),t[2]=r):r=t[2];let d;t[3]===l?d=t[4]:(d=(0,a.jsx)(P,{"data-testid":"copy-static-notebook-url-button",onClick:l,size:"xs",variant:"secondary",children:r}),t[3]=l,t[4]=d);let i;return t[5]!==n||t[6]!==d?(i=(0,a.jsx)(wa,{content:"Copied!",open:n,children:d}),t[5]=n,t[6]=d,t[7]=i):i=t[7],i},vn=z();function Cn(){let e=document.getElementsByClassName(Te.outputArea);for(let t of e){let n=t.getBoundingClientRect();if(n.bottom>0&&n.top<window.innerHeight){let o=ke.findElement(t);if(!o){B.warn("Could not find HTMLCellId for visible output area",t);continue}return{cellId:ke.parse(o.id)}}}return B.warn("No visible output area found for scroll anchor"),null}function Nn(e){if(!e){B.warn("No scroll anchor provided to restore scroll position");return}let t=document.getElementById(ke.create(e.cellId));if(!t){B.warn("Could not find cell element to restore scroll position",e.cellId);return}if(!t.querySelector(`.${Te.outputArea}`)){B.warn("Could not find output area to restore scroll position",e.cellId);return}t.scrollIntoView({block:"start",behavior:"auto"})}function wt(){let e=(0,vn.c)(2),t=R(He),n;return e[0]===t?n=e[1]:(n=()=>{let o=Cn();t(s=>({mode:oa(s.mode),cellAnchor:(o==null?void 0:o.cellId)??null})),requestAnimationFrame(()=>{requestAnimationFrame(()=>{Nn(o)})})},e[0]=t,e[1]=n),n}const jt=_t(!1);var zn=z();const Mn=()=>{let e=(0,zn.c)(7),{selectedLayout:t}=qe(),{setLayoutView:n}=Fe();if(ee()&&!Et("wasm_layouts"))return null;let o;e[0]===n?o=e[1]:(o=d=>n(d),e[0]=n,e[1]=o);let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)(ua,{className:"min-w-[110px] border-border bg-background","data-testid":"layout-select",children:(0,a.jsx)(ca,{placeholder:"Select a view"})}),e[2]=s):s=e[2];let l;e[3]===Symbol.for("react.memo_cache_sentinel")?(l=(0,a.jsx)(ma,{children:(0,a.jsxs)(pa,{children:[(0,a.jsx)(da,{children:"View as"}),it.map(Sn)]})}),e[3]=l):l=e[3];let r;return e[4]!==t||e[5]!==o?(r=(0,a.jsxs)(fa,{"data-testid":"layout-select",value:t,onValueChange:o,children:[s,l]}),e[4]=t,e[5]=o,e[6]=r):r=e[6],r};function Wn(e){return(0,a.jsx)(gt(e),{className:"h-4 w-4"})}function gt(e){switch(e){case"vertical":return rn;case"grid":return Da;case"slides":return pt;default:return ga(e),$a}}function vt(e){return ge.startCase(e)}function Sn(e){return(0,a.jsx)(ha,{value:e,children:(0,a.jsxs)("div",{className:"flex items-center gap-1.5 leading-5",children:[Wn(e),(0,a.jsx)("span",{children:vt(e)})]})},e)}async function An(e){let{filename:t,preset:n,downloadPDF:o}=e;await o({filename:t,webpdf:!1,preset:n,includeInputs:!0,rasterServer:"static"})}var _n=z();function Dn(e){let t=(0,_n.c)(5),{openPrompt:n,closeModal:o}=ne(),{sendCopy:s}=L(),l;return t[0]!==o||t[1]!==n||t[2]!==s||t[3]!==e?(l=()=>{if(!e)return null;let r=qa.guessDeliminator(e);n({title:"Copy notebook",description:"Enter a new filename for the notebook copy.",defaultValue:`_${Xe.basename(e)}`,confirmText:"Copy notebook",spellCheck:!1,onConfirm:d=>{let i=r.join(Xe.dirname(e),d);s({source:e,destination:i}).then(()=>{o(),W({title:"Notebook copied",description:"A copy of the notebook has been created."}),en(i)})}})},t[0]=o,t[1]=n,t[2]=s,t[3]=e,t[4]=l):l=t[4],l}var En=z();function Ct(){let e=(0,En.c)(4),{openConfirm:t}=ne(),n=R(Re),{sendRestart:o}=L(),s;return e[0]!==t||e[1]!==o||e[2]!==n?(s=()=>{t({title:"Restart Kernel",description:"This will restart the Python kernel. You'll lose all data that's in memory. You will also lose any unsaved changes, so make sure to save your work before restarting.",variant:"destructive",confirmAction:(0,a.jsx)(ia,{onClick:async()=>{n({state:Oe.CLOSING}),await o(),Va()},"aria-label":"Confirm Restart",children:"Restart"})})},e[0]=t,e[1]=o,e[2]=n,e[3]=s):s=e[3],s}var In=z(),Pn=new Lt,Ln=e=>Pn.isSupported(e)?"markdown":"code";const Nt=()=>{let e=(0,In.c)(3),{updateCellConfig:t}=De(),{saveCellConfig:n}=L(),o;return e[0]!==n||e[1]!==t?(o=async(s,l)=>{let r=Ie(),d={};for(let c of r.cellIds.inOrderIds){let h=r.cellData[c];h===void 0||h.config.hide_code===s||Ln(h.code)===l&&(d[c]={hide_code:s})}let i=Le.entries(d);if(i.length!==0){await n({configs:d});for(let[c,h]of i)t({cellId:c,config:h})}},e[0]=n,e[1]=t,e[2]=o):o=e[2],o};var Tn=z(),O=e=>{e==null||e.preventDefault(),e==null||e.stopPropagation()};function On(){var We,Se,Ae;let e=(0,Tn.c)(56),t=Ka(),{openModal:n,closeModal:o}=ne(),{toggleApplication:s}=It(),{selectedPanel:l}=Ot(),[r]=At(He),d=N(na),i=Nt(),[c]=ta(),h=N(Kt),x=N(aa),{updateCellConfig:m,undoDeleteCell:b,clearAllCellOutputs:f,addSetupCellIfDoesntExist:y,collapseAllCells:w,expandAllCells:j}=De(),v=Ct(),p=Ua(),H=Dn(t),S=R(jt),re=R(Xt),{handleClick:le}=Qt(),ie=R(Zt),{exportAsIPYNB:de,exportAsMarkdown:ce,readCode:A,saveCellConfig:he,updateCellOutputs:_}=L(),D=tn(),me=N($t),pe=N(Yt),ue=N(Rt),{selectedLayout:$}=qe(),{setLayoutView:fe}=Fe(),q=wt(),F=((We=c.sharing)==null?void 0:We.html)??!0,U=((Se=c.sharing)==null?void 0:Se.wasm)??!0,Y=((Ae=c.sharing)==null?void 0:Ae.molab)??!0,Me=!ee(),xe=$==="slides",zt=ao,Mt=to,V;e[0]!==t||e[1]!==D||e[2]!==_?(V=async u=>{let{preset:g,title:M}=u;if(!t){se();return}await Be(M,async ye=>{await lt({takeScreenshots:()=>D({progress:ye}),updateCellOutputs:_}),await An({filename:t,preset:g,downloadPDF:ba})})},e[0]=t,e[1]=D,e[2]=_,e[3]=V):V=e[3];let E=V,K;e[4]===E?K=e[5]:(K=async()=>{if(Me){await E({preset:"document",title:"Downloading Document PDF..."});return}let u=new Event("export-beforeprint"),g=new Event("export-afterprint");window.dispatchEvent(u),setTimeout(eo,0),setTimeout(()=>window.dispatchEvent(g),0)},e[4]=E,e[5]=K);let G=K,J;e[6]!==de||e[7]!==t||e[8]!==D||e[9]!==_?(J=async()=>{if(!t){se();return}await Be("Downloading IPYNB...",async u=>{await lt({takeScreenshots:()=>D({progress:u}),updateCellOutputs:_});let g=await de({download:!1});je(new Blob([g],{type:"application/x-ipynb+json"}),we.toIPYNB(document.title))})},e[6]=de,e[7]=t,e[8]=D,e[9]=_,e[10]=J):J=e[10];let be=J,X;e[11]===Symbol.for("react.memo_cache_sentinel")?(X=(0,a.jsx)(xa,{size:14,strokeWidth:1.5}),e[11]=X):X=e[11];let Q;e[12]===Symbol.for("react.memo_cache_sentinel")?(Q=(0,a.jsx)($e,{size:14,strokeWidth:1.5}),e[12]=Q):Q=e[12];let I;e[13]===t?I=e[14]:(I=async()=>{if(!t){se();return}await Ue({filename:t,includeCode:!0})},e[13]=t,e[14]=I);let Z;return e[15]!==y||e[16]!==x||e[17]!==pe||e[18]!==h||e[19]!==f||e[20]!==o||e[21]!==w||e[22]!==H||e[23]!==E||e[24]!==j||e[25]!==ce||e[26]!==t||e[27]!==G||e[28]!==be||e[29]!==me||e[30]!==xe||e[31]!==d||e[32]!==n||e[33]!==le||e[34]!==A||e[35]!==v||e[36]!==p||e[37]!==he||e[38]!==$||e[39]!==l||e[40]!==i||e[41]!==S||e[42]!==ie||e[43]!==fe||e[44]!==re||e[45]!==F||e[46]!==Y||e[47]!==U||e[48]!==I||e[49]!==s||e[50]!==q||e[51]!==b||e[52]!==ue||e[53]!==m||e[54]!==r.mode?(Z=[{icon:X,label:"Download",handle:O,dropdown:[{icon:Q,label:"Download as HTML",handle:I},{icon:(0,a.jsx)($e,{size:14,strokeWidth:1.5}),label:"Download as HTML (exclude code)",handle:async()=>{if(!t){se();return}await Ue({filename:t,includeCode:!1})}},{icon:(0,a.jsx)(Ja,{strokeWidth:1.5,style:{width:14,height:14}}),label:"Download as Markdown",handle:async()=>{let u=await ce({download:!1});je(new Blob([u],{type:"text/plain"}),we.toMarkdown(document.title))}},{icon:(0,a.jsx)(ln,{size:14,strokeWidth:1.5}),label:"Download as ipynb",handle:be},{icon:(0,a.jsx)(Wa,{size:14,strokeWidth:1.5}),label:"Download Python code",handle:async()=>{let u=await A();je(new Blob([u.contents],{type:"text/plain"}),we.toPY(document.title))}},{divider:!0,icon:(0,a.jsx)(La,{size:14,strokeWidth:1.5}),label:"Download as PNG",disabled:r.mode!=="present",tooltip:r.mode==="present"?void 0:(0,a.jsxs)("span",{children:["Only available in app view. ",(0,a.jsx)("br",{}),"Toggle with: ",Ga("global.hideCode",!1)]}),handle:Zn},xe?{divider:!0,icon:(0,a.jsx)(te,{size:14,strokeWidth:1.5}),label:"Download as PDF",handle:O,dropdown:[{icon:(0,a.jsx)(te,{size:14,strokeWidth:1.5}),label:"Document Layout",handle:G},{icon:(0,a.jsx)(te,{size:14,strokeWidth:1.5}),label:"Slides Layout",rightElement:Mt(!0),hidden:!Me,handle:async()=>{await E({preset:"slides",title:"Downloading Slides PDF..."})}}]}:{divider:!0,icon:(0,a.jsx)(te,{size:14,strokeWidth:1.5}),label:"Download as PDF",handle:G}]},{icon:(0,a.jsx)(Ra,{size:14,strokeWidth:1.5}),label:"Pair with an agent",hidden:ee(),handle:async()=>{n((0,a.jsx)(Qa,{onClose:o}))}},{icon:(0,a.jsx)(cn,{size:14,strokeWidth:1.5}),label:"Share",handle:O,hidden:!F&&!U&&!Y,dropdown:[{icon:(0,a.jsx)(Aa,{size:14,strokeWidth:1.5}),label:"Publish HTML to web",hidden:!F,handle:async()=>{n((0,a.jsx)(jn,{onClose:o}))}},{icon:(0,a.jsx)(Ta,{size:14,strokeWidth:1.5}),label:"Create WebAssembly link",hidden:!U,handle:async()=>{await ae(nt({code:(await A()).contents})),W({title:"Copied",description:"Link copied to clipboard."})}},{icon:(0,a.jsx)(rt,{size:14,strokeWidth:1.5}),label:"Create molab notebook",hidden:!Y,handle:async()=>{let u=nt({code:(await A()).contents,baseUrl:`${C.molab}/new`});window.open(u,"_blank")}}]},{icon:(0,a.jsx)(dn,{size:14,strokeWidth:1.5}),label:"Helper panel",redundant:!0,handle:O,dropdown:Ut.flatMap(u=>{let g=u.type==="ai"&&!x;if(Ft({panel:u,capabilities:h,aiEnabled:x})&&!g)return[];let{type:M,Icon:ye,additionalKeywords:Wt}=u;return{label:ge.startCase(M),rightElement:zt(l===M),icon:(0,a.jsx)(ye,{size:14,strokeWidth:1.5}),handle:()=>{if(g){le("ai","ai-features");return}s(M)},additionalKeywords:Wt}})},{icon:(0,a.jsx)(pt,{size:14,strokeWidth:1.5}),label:"Present as",handle:O,dropdown:[{icon:r.mode==="present"?(0,a.jsx)(Ba,{size:14,strokeWidth:1.5}):(0,a.jsx)(Ca,{size:14,strokeWidth:1.5}),label:"Toggle app view",hotkey:"global.hideCode",handle:()=>{q()}},...it.map((u,g)=>{let M=gt(u);return{divider:g===0,label:vt(u),icon:(0,a.jsx)(M,{size:14,strokeWidth:1.5}),rightElement:(0,a.jsx)("div",{className:"w-8 flex justify-end",children:$===u&&(0,a.jsx)(Ye,{size:14})}),handle:()=>{fe(u),r.mode==="edit"&&q()}}})]},{icon:(0,a.jsx)(sn,{size:14,strokeWidth:1.5}),label:"Duplicate notebook",hidden:!t||ee(),handle:H},{icon:(0,a.jsx)(dt,{size:14,strokeWidth:1.5}),label:"Copy code to clipboard",hidden:!t,handle:async()=>{await ae((await A()).contents),W({title:"Copied",description:"Code copied to clipboard."})}},{icon:(0,a.jsx)(Ma,{size:14,strokeWidth:1.5}),label:"Enable all cells",hidden:!me||d,handle:async()=>{let u=Vt(Ie());await he({configs:Le.fromEntries(u.map(Qn))});for(let g of u)m({cellId:g,config:{disabled:!1}})}},{divider:!0,icon:(0,a.jsx)(ht,{size:14,strokeWidth:1.5}),label:"Add setup cell",handle:()=>{y({})}},{icon:(0,a.jsx)(Jt,{size:14,strokeWidth:1.5}),label:"Add database connection",handle:()=>{n((0,a.jsx)(Ge,{onClose:o}))}},{icon:(0,a.jsx)(Ia,{size:14,strokeWidth:1.5}),label:"Add remote storage",handle:()=>{n((0,a.jsx)(Ge,{defaultTab:"storage",onClose:o}))}},{icon:(0,a.jsx)(ut,{size:14,strokeWidth:1.5}),label:ue,hidden:!pe||d,handle:()=>{b()}},{icon:(0,a.jsx)(hn,{size:14,strokeWidth:1.5}),label:"Restart kernel",variant:"danger",handle:v,additionalKeywords:["reset","reload","restart"]},{icon:(0,a.jsx)(on,{size:14,strokeWidth:1.5}),label:"Re-run all cells",redundant:!0,hotkey:"global.runAll",handle:async()=>{p()}},{icon:(0,a.jsx)(Ht,{size:14,strokeWidth:1.5}),label:"Clear all outputs",redundant:!0,handle:()=>{f()}},{icon:(0,a.jsx)(Pe,{size:14,strokeWidth:1.5}),label:"Show all code",hotkey:"global.showAllCode",handle:()=>i(!1,"code"),redundant:!0},{icon:(0,a.jsx)(Ve,{size:14,strokeWidth:1.5}),label:"Hide all code",hotkey:"global.hideAllCode",handle:()=>i(!0,"code"),redundant:!0},{icon:(0,a.jsx)(Pe,{size:14,strokeWidth:1.5}),label:"Show all markdown code",hotkey:"global.showAllMarkdownCode",handle:()=>i(!1,"markdown"),redundant:!0},{icon:(0,a.jsx)(Ve,{size:14,strokeWidth:1.5}),label:"Hide all markdown code",hotkey:"global.hideAllMarkdownCode",handle:()=>i(!0,"markdown"),redundant:!0},{icon:(0,a.jsx)(nn,{size:14,strokeWidth:1.5}),label:"Collapse all sections",hotkey:"global.collapseAllSections",handle:w,redundant:!0},{icon:(0,a.jsx)(an,{size:14,strokeWidth:1.5}),label:"Expand all sections",hotkey:"global.expandAllSections",handle:j,redundant:!0},{divider:!0,icon:(0,a.jsx)(ct,{size:14,strokeWidth:1.5}),label:"Command palette",hotkey:"global.commandPalette",handle:()=>S(Xn)},{icon:(0,a.jsx)(Na,{size:14,strokeWidth:1.5}),label:"Keyboard shortcuts",hotkey:"global.showHelp",handle:()=>ie(Jn)},{icon:(0,a.jsx)(Ha,{size:14,strokeWidth:1.5}),label:"User settings",handle:()=>re(Gn),redundant:!0,additionalKeywords:["preferences","options","configuration"]},{icon:(0,a.jsx)(mt,{size:14,strokeWidth:1.5}),label:"Report an issue",additionalKeywords:["feedback","bug","issue","report","diagnostics"],handle:()=>n((0,a.jsx)(yt,{onClose:o}))},{icon:(0,a.jsx)(Ke,{size:14,strokeWidth:1.5}),label:"Resources",handle:O,dropdown:[{icon:(0,a.jsx)(Pt,{size:14,strokeWidth:1.5}),label:"Documentation",handle:Kn},{icon:(0,a.jsx)(Za,{className:"h-3.5 w-3.5"}),label:"GitHub",handle:Vn},{icon:(0,a.jsx)(_a,{size:14,strokeWidth:1.5}),label:"Discord Community",handle:Yn},{icon:(0,a.jsx)(Ea,{className:"h-3.5 w-3.5"}),label:"YouTube",handle:Un},{icon:(0,a.jsx)(Bt,{size:14,strokeWidth:1.5}),label:"Changelog",handle:Fn}]},{divider:!0,icon:(0,a.jsx)(Pa,{size:14,strokeWidth:1.5}),label:"Open home",hidden:!location.search.includes("file"),handle:qn},{icon:(0,a.jsx)(rt,{size:14,strokeWidth:1.5}),label:"New notebook",hidden:!location.search.includes("file"),handle:$n}].filter(Bn).map(Hn),e[15]=y,e[16]=x,e[17]=pe,e[18]=h,e[19]=f,e[20]=o,e[21]=w,e[22]=H,e[23]=E,e[24]=j,e[25]=ce,e[26]=t,e[27]=G,e[28]=be,e[29]=me,e[30]=xe,e[31]=d,e[32]=n,e[33]=le,e[34]=A,e[35]=v,e[36]=p,e[37]=he,e[38]=$,e[39]=l,e[40]=i,e[41]=S,e[42]=ie,e[43]=fe,e[44]=re,e[45]=F,e[46]=Y,e[47]=U,e[48]=I,e[49]=s,e[50]=q,e[51]=b,e[52]=ue,e[53]=m,e[54]=r.mode,e[55]=Z):Z=e[55],Z}function Hn(e){return e.dropdown?{...e,dropdown:e.dropdown.filter(Rn)}:e}function Rn(e){return!e.hidden}function Bn(e){return!e.hidden}function $n(){let e=Fa();window.open(e,"_blank")}function qn(){let e=document.baseURI.split("?")[0];window.open(e,"_blank","noopener")}function Fn(){window.open(C.releasesPage,"_blank")}function Un(){window.open(C.youtube,"_blank")}function Yn(){window.open(C.discordLink,"_blank")}function Vn(){window.open(C.githubPage,"_blank")}function Kn(){window.open(C.docsPage,"_blank")}function Gn(e){return!e}function Jn(e){return!e}function Xn(e){return!e}function Qn(e){return[e,{disabled:!1}]}async function Zn(){let e=document.getElementById("App");e&&await ya({element:e,filename:document.title,prepare:ka})}function eo(){return window.print()}function to(e){return e?(0,a.jsx)("span",{className:"ml-3 shrink-0 rounded-full border border-emerald-200 bg-emerald-50 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-emerald-700",children:"Recommended"}):null}function ao(e){return(0,a.jsx)("div",{className:"w-8 flex justify-end",children:e&&(0,a.jsx)(Ye,{size:14})})}function se(){W({title:"Error",description:"Notebooks must be named to be exported.",variant:"danger"})}export{jt as a,Ce as c,ht as d,ct as f,Mn as i,ut as l,Nt as n,wt as o,dt as p,Ct as r,kn as s,On as t,mt as u};