@marimo-team/frontend 0.25.3-dev134 → 0.25.3-dev136

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 (98) hide show
  1. package/dist/assets/{CellStatus-DC6FFQOg.js → CellStatus-B9hoYYSq.js} +1 -1
  2. package/dist/assets/{ErrorBoundary-Ce-Ujlwj.js → ErrorBoundary-DIoi62xQ.js} +2 -2
  3. package/dist/assets/{JsonOutput-CfEBzaqW.js → JsonOutput-f0zvWw7g.js} +5 -5
  4. package/dist/assets/{MarimoErrorOutput-Bh6o9zle.js → MarimoErrorOutput-DFCWAXPj.js} +4 -4
  5. package/dist/assets/{RenderHTML-COGZsXQV.js → RenderHTML-CJOIsfDF.js} +2 -2
  6. package/dist/assets/{RunButton-DQ51plUv.js → RunButton-BhbOSnBI.js} +1 -1
  7. package/dist/assets/{add-cell-with-ai-D7gtGUsg.js → add-cell-with-ai-xzt8ZIZY.js} +26 -26
  8. package/dist/assets/{add-connection-dialog-CpMCc97S.js → add-connection-dialog-CLcZdzEt.js} +51 -51
  9. package/dist/assets/{agent-panel-BSFYqJ9B.js → agent-panel-x_kvcauj.js} +3 -3
  10. package/dist/assets/ai-model-dropdown-DcOMJlL4.js +13 -0
  11. package/dist/assets/{app-config-button-Cfcg_5Bz.js → app-config-button-gr-9epH3.js} +1 -1
  12. package/dist/assets/{blob-CszMu60N.js → blob-B25C4ORK.js} +1 -1
  13. package/dist/assets/{cache-panel-DuBsA6oO.js → cache-panel-BK4-1NJC.js} +1 -1
  14. package/dist/assets/cell-editor-CO_2xdmY.js +42 -0
  15. package/dist/assets/{cell-link-Cj0gGaMV.js → cell-link-DBP_BcJY.js} +1 -1
  16. package/dist/assets/{cells-SvbLY10y.js → cells-B9RIIuYa.js} +42 -42
  17. package/dist/assets/{chat-display-D43_g3TX.js → chat-display-CvnF2GaH.js} +1 -1
  18. package/dist/assets/{chat-panel-B_HAJMwx.js → chat-panel-CJFHiZ2R.js} +2 -2
  19. package/dist/assets/{chat-ui-BEcYCphu.js → chat-ui-DbPlwime.js} +1 -1
  20. package/dist/assets/{column-preview-CrzaJKk8.js → column-preview-j0kenrsq.js} +1 -1
  21. package/dist/assets/{command-palette-Bm9yIVcD.js → command-palette-CQ1DPGNl.js} +1 -1
  22. package/dist/assets/{common-BJyUxCzv.js → common-C9Gvbmz5.js} +1 -1
  23. package/dist/assets/{components-D1f_Cz4i.js → components-CMj235gS.js} +1 -1
  24. package/dist/assets/{datasource-C8KSVfSD.js → datasource-BsklC6tp.js} +2 -2
  25. package/dist/assets/{dependency-graph-panel-BhmyJbUl.js → dependency-graph-panel-BNqY5al9.js} +3 -3
  26. package/dist/assets/{documentation-panel-DcVG0Q0d.js → documentation-panel-UrRQcsOB.js} +1 -1
  27. package/dist/assets/{download-Bx52VRE4.js → download-BRqw2JzE.js} +1 -1
  28. package/dist/assets/{edit-page-DUrwOHR-.js → edit-page-Dqkmdmfj.js} +6 -6
  29. package/dist/assets/{error-entries-11OuHzUF.js → error-entries-CuIzi5P7.js} +1 -1
  30. package/dist/assets/{error-panel-XJy5S25F.js → error-panel-CFCs0M8e.js} +1 -1
  31. package/dist/assets/{feedback-button-B7jh_B4w.js → feedback-button-DZVOiUEf.js} +2 -2
  32. package/dist/assets/feedback-button-J9hRaX_K.js +1 -0
  33. package/dist/assets/{file-explorer-panel-CnVxbF4A.js → file-explorer-panel-Cqey5tMY.js} +1 -1
  34. package/dist/assets/{file-name-input-BJuqjQqH.js → file-name-input-khW7mtt2.js} +1 -1
  35. package/dist/assets/{floating-outline-8yyZ-MOJ.js → floating-outline-CSwtWNm9.js} +1 -1
  36. package/dist/assets/{formatting-DW2u7HXI.js → formatting-CMgDQsM2.js} +1 -1
  37. package/dist/assets/{gallery-page-DJvGHePf.js → gallery-page-CcG0Msi3.js} +1 -1
  38. package/dist/assets/{glide-data-editor-Cyc8DHZx.js → glide-data-editor-B46-8C6x.js} +1 -1
  39. package/dist/assets/{home-page-tRZJmSU6.js → home-page-C5qcnnak.js} +1 -1
  40. package/dist/assets/{hooks-CxGwybGw.js → hooks-CiNPyjez.js} +1 -1
  41. package/dist/assets/index-D1hW_v1v.js +30 -0
  42. package/dist/assets/{input-DLA5Dhn3.js → input-BQBy_25D.js} +1 -1
  43. package/dist/assets/{layout-DvXJxBiL.js → layout-DSsztKhq.js} +5 -5
  44. package/dist/assets/{logs-panel-KtsY7TrR.js → logs-panel-DZ8zJWNT.js} +1 -1
  45. package/dist/assets/{markdown-renderer-DUgV7_fm.js → markdown-renderer-DszNRkaL.js} +1 -1
  46. package/dist/assets/{name-cell-input-C3-Cj-Ek.js → name-cell-input-BIpvW2kg.js} +1 -1
  47. package/dist/assets/numbers-BB-lSqeY.js +1 -0
  48. package/dist/assets/{outline-panel-BzyY4JA6.js → outline-panel-CHwFhhFo.js} +1 -1
  49. package/dist/assets/{packages-panel-DxosbWko.js → packages-panel-qT6TuHGP.js} +1 -1
  50. package/dist/assets/{panel-accordion-state-BRbTib2B.js → panel-accordion-state-DROYE5RR.js} +1 -1
  51. package/dist/assets/panels-3HImHlAU.js +1 -0
  52. package/dist/assets/{process-output-CSwx7rvo.js → process-output-CPh21qjo.js} +1 -1
  53. package/dist/assets/{readonly-code-display-B9y9423Y.js → readonly-code-display-DKoAsBb-.js} +1 -1
  54. package/dist/assets/{readonly-python-code-Dgw6trlk.js → readonly-python-code-QqiDzhYb.js} +1 -1
  55. package/dist/assets/{reveal-component-B9A4wkG-.js → reveal-component-Dd29QoYx.js} +2 -2
  56. package/dist/assets/{run-page-C1MQ5b_A.js → run-page-J_1gGmPH.js} +1 -1
  57. package/dist/assets/{runtime-details-state-D_hOQL9T.js → runtime-details-state-BlarRoM1.js} +1 -1
  58. package/dist/assets/{scratchpad-panel-CBCsPmMW.js → scratchpad-panel-BPw7VxO6.js} +1 -1
  59. package/dist/assets/{secrets-panel-ConQpchl.js → secrets-panel-j7vcP2r2.js} +1 -1
  60. package/dist/assets/session-panel-BnszHmkW.js +1 -0
  61. package/dist/assets/{snippets-panel-C0VDE_4i.js → snippets-panel-a-A15D0n.js} +1 -1
  62. package/dist/assets/{state-DvU2AiFx.js → state-2U7LSUNv.js} +4 -4
  63. package/dist/assets/{state-DrraMmqz.js → state-B_SxQGvw.js} +1 -1
  64. package/dist/assets/{switch-D2gdC_ep.js → switch-DLzvDOLo.js} +1 -1
  65. package/dist/assets/{tracing-C5d51Nmi.js → tracing-CpbvZwxP.js} +1 -1
  66. package/dist/assets/{tracing-panel-B89R8dWE.js → tracing-panel-Dxtm4-GJ.js} +2 -2
  67. package/dist/assets/{tree-actions-Cph8FVzh.js → tree-actions-CIBdpNC-.js} +1 -1
  68. package/dist/assets/{useAddCell-VPkB72pn.js → useAddCell-B6my967m.js} +1 -1
  69. package/dist/assets/{useCellActionButton--zI3GFnt.js → useCellActionButton-BwBEO8zi.js} +1 -1
  70. package/dist/assets/{useDeleteCell-CjewKeSr.js → useDeleteCell-DYRsSrAa.js} +1 -1
  71. package/dist/assets/{useDependencyPanelTab-Bt_ka-wl.js → useDependencyPanelTab-lNbBYJZs.js} +1 -1
  72. package/dist/assets/{useInstallPackage-BfNKN33w.js → useInstallPackage-Q9agSKO7.js} +1 -1
  73. package/dist/assets/useNotebookActions-CmG2irDr.js +1 -0
  74. package/dist/assets/{useRunCells-BupCZpzk.js → useRunCells-Bl702L84.js} +1 -1
  75. package/dist/assets/{useSplitCell-CaLIR0TS.js → useSplitCell-DQRIXpFK.js} +1 -1
  76. package/dist/assets/{write-secret-modal-CBi2vNK_.js → write-secret-modal-BujVAO67.js} +1 -1
  77. package/dist/index.html +25 -25
  78. package/package.json +1 -1
  79. package/src/components/datasources/__tests__/column-preview.test.tsx +35 -3
  80. package/src/components/datasources/__tests__/datasources-interactions.test.tsx +181 -0
  81. package/src/components/datasources/__tests__/utils.test.ts +57 -6
  82. package/src/components/datasources/column-preview.tsx +5 -2
  83. package/src/components/datasources/datasources.tsx +3 -4
  84. package/src/components/datasources/utils.ts +32 -23
  85. package/src/components/ui/__tests__/range-slider.test.tsx +165 -0
  86. package/src/components/ui/range-slider.tsx +22 -9
  87. package/src/plugins/impl/RangeSliderPlugin.tsx +17 -2
  88. package/src/plugins/impl/__tests__/RangeSliderPlugin.test.tsx +109 -0
  89. package/src/utils/__tests__/numbers.test.ts +57 -0
  90. package/src/utils/numbers.ts +59 -9
  91. package/dist/assets/ai-model-dropdown-D575Vid8.js +0 -13
  92. package/dist/assets/cell-editor-BLpOlLnM.js +0 -42
  93. package/dist/assets/feedback-button-C-eKtxXE.js +0 -1
  94. package/dist/assets/index-CoxbqhGH.js +0 -30
  95. package/dist/assets/numbers-DJK15_4S.js +0 -1
  96. package/dist/assets/panels-Da3071Q4.js +0 -1
  97. package/dist/assets/session-panel-CiHCKPlx.js +0 -1
  98. package/dist/assets/useNotebookActions-DV2S6KaG.js +0 -1
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{f as t,u as n}from"./useEvent-BDjgaBtz.js";import{t as r}from"./react-DVplv7_D.js";import{t as i}from"./compiler-runtime-BrajqUja.js";import{g as a}from"./useEventListener-DPOTkksd.js";import{T as o,_ as s}from"./config-7IjqNuVp.js";import{t as c}from"./jsx-runtime-B74pBk57.js";import{o as l}from"./alert-dialog-8YiYLrfr.js";import{n as u}from"./toast-trUlkvx3.js";import{b as d}from"./write-secret-modal-CBi2vNK_.js";import{t as f}from"./use-toast-Wu434mLr.js";import{r as p}from"./requests-BIFR-h4M.js";import{t as m}from"./kbd-pdKBv96t.js";var h=e(r(),1),g=i();function _(){try{window.location.reload()}catch(e){a.error(`Failed to reload page`,e),f({title:`Failed to reload page`,description:`Please refresh the page manually.`})}}var v=t(null),y=`packages-install-input`,b=()=>{requestAnimationFrame(()=>{let e=document.getElementById(y);e&&e.focus()})},x=e=>{e.openApplication(`packages`),b()},S=c();function C(){let e=(0,g.c)(4),{openConfirm:t}=d(),r=n(s),{sendRestart:i}=p(),a;return e[0]!==t||e[1]!==i||e[2]!==r?(a=()=>{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,S.jsx)(l,{onClick:async()=>{r({state:o.CLOSING}),await i(),_()},"aria-label":`Confirm Restart`,children:`Restart`})})},e[0]=t,e[1]=i,e[2]=r,e[3]=a):a=e[3],a}var w=`Your dependency changes are saved. Restart the kernel to use the updated environment. Restarting clears in-memory variables.`,T=()=>{let e=(0,g.c)(2),t=C(),n;return e[0]===t?n=e[1]:(n=(0,S.jsx)(u,{altText:`Restart the kernel to use the updated dependencies`,onClick:t,children:`Restart Kernel`}),e[0]=t,e[1]=n),n},E=()=>{f({title:`Changes saved — restart required`,description:w,duration:1/0,action:(0,S.jsx)(T,{})})},D=()=>{f({title:`Sandbox environment synced`,description:(0,S.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Some Python packages may require a kernel restart to see changes.`})})},O=(e,t)=>{let n=Array.isArray(e)?e:[e];f(t?{title:n.length>1?`Failed to add packages`:`Failed to add package`,description:t,variant:`danger`}:{title:n.length>1?`Packages added`:`Package added`,description:(0,S.jsxs)(`div`,{children:[(0,S.jsxs)(`div`,{children:[n.length>1?`The packages `:`The package `,n.map((e,t)=>(0,S.jsxs)(`span`,{children:[t>0&&`, `,(0,S.jsx)(m,{className:`inline`,children:e})]},e)),` `,`and `,n.length>1?`their`:`its`,` dependencies have been added to your environment.`]}),(0,S.jsx)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:`Some Python packages may require a kernel restart to see changes.`})]})})},k=(e,t)=>{f(t?{title:`Failed to upgrade package`,description:t,variant:`danger`}:{title:`Package upgraded`,description:(0,S.jsxs)(`div`,{children:[(0,S.jsxs)(`div`,{children:[`The package `,(0,S.jsx)(m,{className:`inline`,children:e}),` has been upgraded.`]}),(0,S.jsx)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:`Some Python packages may require a kernel restart to see changes.`})]})})},A=(e,t)=>{f(t?{title:`Failed to remove package`,description:t,variant:`danger`}:{title:`Package removed`,description:(0,S.jsxs)(`div`,{children:[(0,S.jsxs)(`div`,{children:[`The package `,(0,S.jsx)(m,{className:`inline`,children:e}),` has been removed from your environment.`]}),(0,S.jsx)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:`Some Python packages may require a kernel restart to see changes.`})]})})};function j(){let[e,t]=(0,h.useState)(!1),{addPackage:n}=p();return{loading:e,handleInstallPackages:async(e,r)=>{t(!0);try{let t=await n({package:e.join(` `)});t.restartRequired?E():t.success?(O(e),r?.()):O(e,t.error)}catch(e){a.error(e)}finally{t(!1)}}}}export{D as a,y as c,v as d,_ as f,A as i,b as l,w as n,k as o,E as r,C as s,j as t,x as u};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{f as t,u as n}from"./useEvent-BDjgaBtz.js";import{t as r}from"./react-DVplv7_D.js";import{t as i}from"./compiler-runtime-BrajqUja.js";import{g as a}from"./useEventListener-DPOTkksd.js";import{T as o,_ as s}from"./config-7IjqNuVp.js";import{t as c}from"./jsx-runtime-B74pBk57.js";import{o as l}from"./alert-dialog-8YiYLrfr.js";import{n as u}from"./toast-trUlkvx3.js";import{b as d}from"./write-secret-modal-BujVAO67.js";import{t as f}from"./use-toast-Wu434mLr.js";import{r as p}from"./requests-BIFR-h4M.js";import{t as m}from"./kbd-pdKBv96t.js";var h=e(r(),1),g=i();function _(){try{window.location.reload()}catch(e){a.error(`Failed to reload page`,e),f({title:`Failed to reload page`,description:`Please refresh the page manually.`})}}var v=t(null),y=`packages-install-input`,b=()=>{requestAnimationFrame(()=>{let e=document.getElementById(y);e&&e.focus()})},x=e=>{e.openApplication(`packages`),b()},S=c();function C(){let e=(0,g.c)(4),{openConfirm:t}=d(),r=n(s),{sendRestart:i}=p(),a;return e[0]!==t||e[1]!==i||e[2]!==r?(a=()=>{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,S.jsx)(l,{onClick:async()=>{r({state:o.CLOSING}),await i(),_()},"aria-label":`Confirm Restart`,children:`Restart`})})},e[0]=t,e[1]=i,e[2]=r,e[3]=a):a=e[3],a}var w=`Your dependency changes are saved. Restart the kernel to use the updated environment. Restarting clears in-memory variables.`,T=()=>{let e=(0,g.c)(2),t=C(),n;return e[0]===t?n=e[1]:(n=(0,S.jsx)(u,{altText:`Restart the kernel to use the updated dependencies`,onClick:t,children:`Restart Kernel`}),e[0]=t,e[1]=n),n},E=()=>{f({title:`Changes saved — restart required`,description:w,duration:1/0,action:(0,S.jsx)(T,{})})},D=()=>{f({title:`Sandbox environment synced`,description:(0,S.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Some Python packages may require a kernel restart to see changes.`})})},O=(e,t)=>{let n=Array.isArray(e)?e:[e];f(t?{title:n.length>1?`Failed to add packages`:`Failed to add package`,description:t,variant:`danger`}:{title:n.length>1?`Packages added`:`Package added`,description:(0,S.jsxs)(`div`,{children:[(0,S.jsxs)(`div`,{children:[n.length>1?`The packages `:`The package `,n.map((e,t)=>(0,S.jsxs)(`span`,{children:[t>0&&`, `,(0,S.jsx)(m,{className:`inline`,children:e})]},e)),` `,`and `,n.length>1?`their`:`its`,` dependencies have been added to your environment.`]}),(0,S.jsx)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:`Some Python packages may require a kernel restart to see changes.`})]})})},k=(e,t)=>{f(t?{title:`Failed to upgrade package`,description:t,variant:`danger`}:{title:`Package upgraded`,description:(0,S.jsxs)(`div`,{children:[(0,S.jsxs)(`div`,{children:[`The package `,(0,S.jsx)(m,{className:`inline`,children:e}),` has been upgraded.`]}),(0,S.jsx)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:`Some Python packages may require a kernel restart to see changes.`})]})})},A=(e,t)=>{f(t?{title:`Failed to remove package`,description:t,variant:`danger`}:{title:`Package removed`,description:(0,S.jsxs)(`div`,{children:[(0,S.jsxs)(`div`,{children:[`The package `,(0,S.jsx)(m,{className:`inline`,children:e}),` has been removed from your environment.`]}),(0,S.jsx)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:`Some Python packages may require a kernel restart to see changes.`})]})})};function j(){let[e,t]=(0,h.useState)(!1),{addPackage:n}=p();return{loading:e,handleInstallPackages:async(e,r)=>{t(!0);try{let t=await n({package:e.join(` `)});t.restartRequired?E():t.success?(O(e),r?.()):O(e,t.error)}catch(e){a.error(e)}finally{t(!1)}}}}export{D as a,y as c,v as d,_ as f,A as i,b as l,w as n,k as o,E as r,C as s,j as t,x as u};
@@ -0,0 +1 @@
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as r,u as i}from"./useEvent-BDjgaBtz.js";import{t as a}from"./react-DVplv7_D.js";import{D as o,E as s,Hr as c,Ja as l,Jr as u,Kr as d,Mt as f,So as p,Xr as m,Zr as h,_ as g,ai as _,an as v,er as y,h as b,ia as x,in as S,io as C,lo as w,qa as T,qr as E,so as ee,t as te,yt as ne}from"./cells-B9RIIuYa.js";import{C as D,N as O,v as k}from"./schemas-ChRqMOTL.js";import{t as A}from"./compiler-runtime-BrajqUja.js";import{C as j,n as M}from"./config-CXnC3MRv.js";import{g as N}from"./useEventListener-DPOTkksd.js";import{t as P}from"./objects-rLPlQ3X_.js";import{n as F,r as I}from"./utils-B4K466FK.js";import{_ as L,g as R,h as z,m as re,s as B,v as V}from"./session-BHgGkjDm.js";import{M as H,O as U}from"./config-7IjqNuVp.js";import{t as W}from"./cn-ldLVeaqm.js";import{t as ie}from"./jsx-runtime-B74pBk57.js";import{$ as ae,It as oe,Lt as se}from"./JsonOutput-f0zvWw7g.js";import{a as ce,c as le,i as ue,n as de,r as fe,s as pe,t as me}from"./select-CgWQvW1F.js";import{a as he,c as ge,d as G,o as _e,t as ve}from"./download-BRqw2JzE.js";import{t as ye}from"./switch-DLzvDOLo.js";import{i as be,n as xe,r as Se,t as Ce}from"./tabs-BLczoY3k.js";import{n as we,t as K}from"./button-Cl7haVNh.js";import{t as q}from"./createLucideIcon-DfJ2oMlA.js";import{a as Te,i as Ee,n as De,r as Oe,t as ke}from"./paths-bkIFVj8h.js";import{F as Ae,I as je,L as Me,c as Ne,t as Pe}from"./layout-DSsztKhq.js";import{E as Fe,h as Ie,n as Le,r as Re}from"./ai-model-dropdown-DcOMJlL4.js";import{t as ze}from"./check-BQNapYaf.js";import{o as Be,r as Ve}from"./useCellActionButton-BwBEO8zi.js";import{s as He}from"./tree-actions-CIBdpNC-.js";import{f as Ue,n as We}from"./markdown-renderer-DszNRkaL.js";import{t as Ge}from"./code-BEiQP4pS.js";import{t as Ke}from"./eye-off-CxVozGAC.js";import{t as qe}from"./external-link-UrX9KO36.js";import{t as Je}from"./file-BPBVl9pl.js";import{t as Ye}from"./globe-UdPdIbF7.js";import{n as Xe,r as Ze,t as Qe}from"./youtube-CbJhsgLy.js";import{n as $e}from"./components-9p_w2C6e.js";import{t as et}from"./house-CpsMWsLL.js";import{t as tt}from"./image-wZvTj8WY.js";import{b as nt}from"./write-secret-modal-BujVAO67.js";import{t as rt}from"./spinner-DyNE-o8o.js";import{c as it,l as at,u as ot}from"./readonly-python-code-QqiDzhYb.js";import{Qt as st,Xt as ct,Yt as lt,Zt as ut,tn as dt}from"./input-BQBy_25D.js";import{t as ft}from"./settings-BpdQZRgT.js";import{t as pt}from"./square-BPmgQFnh.js";import{n as mt}from"./copy-74EjuZso.js";import{t as ht}from"./use-toast-Wu434mLr.js";import{t as gt}from"./copy-icon-Craaocbu.js";import{i as _t,r as vt,t as yt}from"./strings-3lNX212T.js";import{r as J}from"./requests-BIFR-h4M.js";import{t as bt}from"./shell-Fj8a65ii.js";import{n as xt}from"./useAsyncData-qvoPYHtx.js";import{r as St}from"./useRunCells-Bl702L84.js";import{s as Ct}from"./useInstallPackage-Q9agSKO7.js";import{t as wt}from"./share-BZW3tzEX.js";import{n as Tt,r as Et}from"./markdown-export-DzhB1FrN.js";import{n as Dt,t as Ot}from"./alert-DTaqCu_d.js";import{a as kt}from"./cell-link-DBP_BcJY.js";import{t as At}from"./icons-CiZ_8zS-.js";import{n as jt}from"./feedback-button-DZVOiUEf.js";import{i as Mt,n as Nt,r as Pt}from"./add-connection-dialog-CLcZdzEt.js";import{t as Ft}from"./github-DQZhN3La.js";import{n as It}from"./marimo-icons-CqliHyTr.js";import{t as Lt}from"./links-UwsB2RA1.js";import{r as Rt,t as zt}from"./hooks-CiNPyjez.js";var Bt=q(`circle-chevron-down`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16 10-4 4-4-4`,key:`894hmk`}]]),Vt=q(`circle-chevron-right`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m10 8 4 4-4 4`,key:`1wy4r4`}]]),Ht=q(`cloud-download`,[[`path`,{d:`M12 13v8l-4-4`,key:`1f5nwf`}],[`path`,{d:`m12 21 4-4`,key:`1lfcce`}],[`path`,{d:`M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284`,key:`ui1hmy`}]]),Ut=q(`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`}]]),Wt=q(`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`}]]),Gt=q(`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`}]]),Kt=q(`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`}]]),qt=q(`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`}]]),Jt=q(`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`}]]),Yt=q(`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`}]]),Xt=q(`panel-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}]]),Zt=q(`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`}]]),Qt=q(`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`}]]),$t=q(`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`}]]),en=q(`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`}]]),Y=e(a(),1),X=A();async function tn(e,t){let n=new Blob([t],{type:`text/html`});if(n.size>104857600)throw Error(`File is too large. Maximum size is 100 MB.`);let r=await fetch(`${I.molab}/api/artifacts/pending`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({fileName:e,fileSize:n.size})});if(!r.ok){let e=await r.json().catch(()=>null);throw Error(e?.error??(r.status===429?`Too many uploads, try again later`:`Failed to prepare the upload`))}let{presignedUrl:i,claimUrl:a}=await r.json();if(!(await fetch(i,{method:`PUT`,body:n})).ok)throw Error(`Failed to upload the notebook export`);return a}var Z=ie(),nn=e=>{let t=(0,X.c)(33),{onClose:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={kind:`idle`},t[0]=r):r=t[0];let[i,a]=(0,Y.useState)(r),{exportAsHTML:o}=J(),s;t[1]===o?s=t[2]:(s=async()=>{a({kind:`publishing`});try{let{contents:e,filename:t}=await o({download:!1,includeCode:!0,files:Ne.INSTANCE.filenames(),layout:await Pe(),assetUrl:`https://cdn.jsdelivr.net/npm/@marimo-team/frontend@{version}/dist`}),n=await tn(t,e);window.open(n,`_blank`,`noopener,noreferrer`),a({kind:`staged`,claimUrl:n})}catch(e){let t=e;a({kind:`failed`,message:t instanceof Error?t.message:`Something went wrong`})}},t[1]=o,t[2]=s);let c=s;if(i.kind===`staged`){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsxs)(st,{children:[(0,Z.jsx)(dt,{children:`Finish publishing`}),(0,Z.jsx)(ct,{children:`If the confirmation page didn't open in a new tab, open it below.`})]}),t[3]=e):e=t[3];let r;t[4]===n?r=t[5]:(r=(0,Z.jsx)(K,{"data-testid":`done-share-static-notebook-button`,variant:`secondary`,onClick:n,children:`Done`}),t[4]=n,t[5]=r);let a;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Z.jsx)(qe,{size:14,strokeWidth:1.5,className:`mr-2`}),t[6]=a):a=t[6];let o;t[7]===i.claimUrl?o=t[8]:(o=(0,Z.jsx)(K,{asChild:!0,variant:`default`,children:(0,Z.jsxs)(`a`,{"data-testid":`open-claim-page-link`,href:i.claimUrl,target:`_blank`,rel:`noopener noreferrer`,children:[a,`Open confirmation page`]})}),t[7]=i.claimUrl,t[8]=o);let s;return t[9]!==r||t[10]!==o?(s=(0,Z.jsxs)(lt,{className:`sm:max-w-[480px]`,children:[e,(0,Z.jsxs)(ut,{children:[r,o]})]}),t[9]=r,t[10]=o,t[11]=s):s=t[11],s}let l=i.kind===`publishing`,u;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Z.jsx)(dt,{children:`Publish HTML to web`}),t[12]=u):u=t[12];let d;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Z.jsxs)(st,{children:[u,(0,Z.jsxs)(ct,{children:[`Publish a static snapshot of this notebook to`,` `,(0,Z.jsx)(`a`,{href:I.molab,target:`_blank`,rel:`noopener noreferrer`,className:`underline`,children:`molab`}),`. Snapshots can be viewed by anyone on the internet.`]})]}),t[13]=d):d=t[13];let f;t[14]!==i.kind||t[15]!==i.message?(f=i.kind===`failed`&&(0,Z.jsxs)(`p`,{role:`alert`,className:`text-sm text-destructive`,"data-testid":`share-static-notebook-error`,children:[`Publish failed: `,i.message]}),t[14]=i.kind,t[15]=i.message,t[16]=f):f=t[16];let p;t[17]!==l||t[18]!==n?(p=(0,Z.jsx)(K,{"data-testid":`cancel-share-static-notebook-button`,variant:`secondary`,onClick:n,disabled:l,children:`Cancel`}),t[17]=l,t[18]=n,t[19]=p):p=t[19];let m;t[20]!==l||t[21]!==i.kind?(m=l?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(rt,{className:`mr-2`,size:`small`}),`Snapshotting notebook ...`]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(qe,{size:14,strokeWidth:1.5,className:`mr-2`}),i.kind===`failed`?`Try again`:`Publish`]}),t[20]=l,t[21]=i.kind,t[22]=m):m=t[22];let h;t[23]!==c||t[24]!==l||t[25]!==m?(h=(0,Z.jsx)(K,{"data-testid":`share-static-notebook-button`,variant:`default`,disabled:l,onClick:c,children:m}),t[23]=c,t[24]=l,t[25]=m,t[26]=h):h=t[26];let g;t[27]!==p||t[28]!==h?(g=(0,Z.jsxs)(ut,{children:[p,h]}),t[27]=p,t[28]=h,t[29]=g):g=t[29];let _;return t[30]!==f||t[31]!==g?(_=(0,Z.jsxs)(lt,{className:`sm:max-w-[480px]`,children:[d,f,g]}),t[30]=f,t[31]=g,t[32]=_):_=t[32],_};function rn(){let e=document.getElementsByClassName(F.outputArea);for(let t of e){let e=t.getBoundingClientRect();if(e.bottom>0&&e.top<window.innerHeight){let e=p.findElement(t);if(!e){N.warn(`Could not find HTMLCellId for visible output area`,t);continue}return{cellId:p.parse(e.id)}}}return N.warn(`No visible output area found for scroll anchor`),null}function an(e){if(!e){N.warn(`No scroll anchor provided to restore scroll position`);return}let t=document.getElementById(p.create(e.cellId));if(!t){N.warn(`Could not find cell element to restore scroll position`,e.cellId);return}if(!t.querySelector(`.${F.outputArea}`)){N.warn(`Could not find output area to restore scroll position`,e.cellId);return}t.scrollIntoView({block:`start`,behavior:`auto`})}function on(){let e=(0,X.c)(2),t=i(V),n;return e[0]===t?n=e[1]:(n=()=>{let e=rn();t(t=>({mode:R(t.mode),cellAnchor:e?.cellId??null})),requestAnimationFrame(()=>{requestAnimationFrame(()=>{an(e)})})},e[0]=t,e[1]=n),n}var sn=n(!1),cn=()=>{let e=(0,X.c)(7),{selectedLayout:t}=at(),{setLayoutView:n}=it();if(H()&&!_(`wasm_layouts`))return null;let r;e[0]===n?r=e[1]:(r=e=>n(e),e[0]=n,e[1]=r);let i;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,Z.jsx)(pe,{className:`min-w-[110px] border-border bg-background`,"data-testid":`layout-select`,children:(0,Z.jsx)(le,{placeholder:`Select a view`})}),e[2]=i):i=e[2];let a;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Z.jsx)(de,{children:(0,Z.jsxs)(fe,{children:[(0,Z.jsx)(ce,{children:`View as`}),ot.map(fn)]})}),e[3]=a):a=e[3];let o;return e[4]!==t||e[5]!==r?(o=(0,Z.jsxs)(me,{"data-testid":`layout-select`,value:t,onValueChange:r,children:[i,a]}),e[4]=t,e[5]=r,e[6]=o):o=e[6],o};function ln(e){let t=un(e);return(0,Z.jsx)(t,{className:`h-4 w-4`})}function un(e){switch(e){case`vertical`:return qt;case`grid`:return Ze;case`slides`:return Zt;default:return _t(e),pt}}function dn(e){return yt.startCase(e)}function fn(e){return(0,Z.jsx)(ue,{value:e,children:(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5 leading-5`,children:[ln(e),(0,Z.jsx)(`span`,{children:dn(e)})]})},e)}var pn=[`html`,`markdown`,`ipynb`,`pdf`,`script`,`png`],mn=[`pymdown`,`qmd`,`mystmd`,`mdx`],hn=[`topological`,`top-down`],gn=[`document`,`slides`],_n=[`source`,`flat`];function vn(e){return typeof e==`string`&&pn.some(t=>t===e)}var Q={html:{includeCode:!0},markdown:{flavor:null},ipynb:{sortMode:`topological`,includeOutputs:!1},pdf:{preset:`document`,includeInputs:!0,includeOutputs:!0,webpdf:!0},script:{type:`source`}};function $(e,t){return e.default(t).catch(t)}function yn(e){return O(e).optional().catch(void 0)}var bn=O({html:yn({includeCode:$(D(),Q.html.includeCode)}),markdown:yn({flavor:$(k(mn).nullable(),Q.markdown.flavor)}),ipynb:yn({sortMode:$(k(hn),Q.ipynb.sortMode),includeOutputs:$(D(),Q.ipynb.includeOutputs)}),pdf:yn({preset:$(k(gn),Q.pdf.preset),includeInputs:$(D(),Q.pdf.includeInputs),includeOutputs:$(D(),Q.pdf.includeOutputs),webpdf:$(D(),Q.pdf.webpdf)}),script:yn({type:$(k(_n),Q.script.type)})}).catch({});function xn(e,t){let n={...e},r=r=>{n[r]={...e[r],...t[r]}};for(let e of Object.keys(t))r(e);return n}function Sn(e){return xn(Q,bn.parse(e))}var Cn=h({toSerializable:e=>e,fromSerializable:Sn}),wn=U(`marimo:export:options:v1`,Q,Cn,{getOnInit:!0}),Tn=U(`marimo:export:last-format:v1`,`html`,h({toSerializable:e=>e,fromSerializable:e=>vn(e)?e:`html`}),{getOnInit:!0}),En={html:{requiresNamedNotebookOnServer:!0,requiresServerRuntime:!1,checksServerAvailability:!1},markdown:{requiresNamedNotebookOnServer:!0,requiresServerRuntime:!1,checksServerAvailability:!1},ipynb:{requiresNamedNotebookOnServer:!0,requiresServerRuntime:!0,checksServerAvailability:!0},pdf:{requiresNamedNotebookOnServer:!0,requiresServerRuntime:!0,checksServerAvailability:!0},script:{requiresNamedNotebookOnServer:!1,requiresServerRuntime:!1,checksServerAvailability:!1},png:{requiresNamedNotebookOnServer:!1,requiresServerRuntime:!1,checksServerAvailability:!1}};function Dn(e,t){return e===`wasm`&&t===`pdf`}function On({format:e,options:t,runtime:n,filename:r,availability:i}){let a=e===`script`&&t.script.type===`source`?{...En.script,requiresNamedNotebookOnServer:!0}:En[e],o=Dn(n,e);if(n===`wasm`&&a.requiresServerRuntime)return{available:o,reason:{type:`wasm-runtime`}};if(n===`server`&&a.requiresNamedNotebookOnServer&&!r)return{available:!1,reason:{type:`notebook-must-be-named`}};if(n===`wasm`||!a.checksServerAvailability)return{available:!0};if(i.status===`pending`)return{available:!1,reason:{type:`checking-requirements`}};if(i.status===`error`||!i.data)return{available:!0,availabilityCheckFailed:!0};let s=i.data.formats.find(t=>t.format===e);return s?s.dependenciesAvailable?{available:!0}:s.missingPackages.length>0?{available:!1,reason:{type:`missing-packages`,packages:s.missingPackages}}:s.missingSetup.length>0?{available:!1,reason:{type:`missing-setup`,requirements:s.missingSetup}}:{available:!0,availabilityCheckFailed:!0}:{available:!0,availabilityCheckFailed:!0}}function kn(e,t){return e.map(e=>({value:e,...t[e]}))}var An=kn([`automatic`,...mn],{automatic:{label:`Automatic`,description:`Chooses a format from the notebook filename. Defaults to Markdown (.md).`},pymdown:{label:`Markdown (.md)`,description:`Creates a .md file with Python code blocks.`},qmd:{label:`Quarto (.qmd)`,description:`Creates a .qmd file for Quarto.`},mystmd:{label:`MyST (.myst.md)`,description:`Creates a .myst.md file for MyST.`},mdx:{label:`MDX (.mdx)`,description:`Creates a .mdx file for MDX.`}}),jn=kn(hn,{"top-down":{label:`Top to bottom`,description:`Keeps cells in the same order as this notebook.`},topological:{label:`Dependency order`,description:`Reorders cells so each cell appears after the cells it depends on.`}}),Mn=kn(gn,{document:{label:`Document`,description:`Creates pages for reading or printing.`},slides:{label:`Slides`,description:`Creates presentation slides from the notebook.`}}),Nn=kn([`browser`,`latex`],{browser:{label:`Browser`,description:`Uses browser rendering to preserve the notebook's visual output.`},latex:{label:`LaTeX first`,description:`Uses Pandoc and TeX when available, then falls back to browser rendering.`}}),Pn=kn(_n,{source:{label:`Notebook source`,description:`Downloads the saved notebook source for continued editing in marimo.`},flat:{label:`Flat script`,description:`Reorders cells so the Python script runs from top to bottom.`}}),Fn={html:{label:`HTML`,actionLabel:`Export HTML`,description:`Save the current notebook as an HTML page.`,Icon:Ye,Options:In},markdown:{label:`Markdown`,actionLabel:`Export Markdown`,description:`Save code and text in a Markdown-based file. Cell outputs are not included.`,Icon:Oe,Options:Ln},ipynb:{label:`Jupyter`,actionLabel:`Export Jupyter notebook`,description:`Open the notebook in Jupyter and other compatible tools.`,Icon:Yt,Options:Rn},pdf:{label:`PDF`,actionLabel:`Export PDF`,description:`Save the notebook as a PDF for printing or sharing.`,Icon:Je,Options:zn},script:{label:`Python`,actionLabel:`Export flat script`,description:`Save the notebook as a Python file.`,Icon:Ge,Options:Bn},png:{label:`PNG`,actionLabel:`Export PNG`,description:`Capture the current app view as an image.`,Icon:tt,Options:Vn}};function In(e){let t=(0,X.c)(7),{options:n,updateOptions:r,disabled:i}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a={checked:`Includes code cells in the webpage.`,unchecked:`Leaves code cells out of the webpage.`},t[0]=a):a=t[0];let o;t[1]===r?o=t[2]:(o=e=>r(`html`,{includeCode:e}),t[1]=r,t[2]=o);let s;return t[3]!==i||t[4]!==n.html.includeCode||t[5]!==o?(s=(0,Z.jsx)(Hn,{children:(0,Z.jsx)(Un,{label:`Include code`,descriptions:a,checked:n.html.includeCode,disabled:i,onCheckedChange:o})}),t[3]=i,t[4]=n.html.includeCode,t[5]=o,t[6]=s):s=t[6],s}function Ln(e){let t=(0,X.c)(6),{options:n,updateOptions:r,disabled:i}=e,a=n.markdown.flavor??`automatic`,o;t[0]===r?o=t[1]:(o=e=>r(`markdown`,{flavor:e===`automatic`?null:e}),t[0]=r,t[1]=o);let s;return t[2]!==i||t[3]!==a||t[4]!==o?(s=(0,Z.jsx)(Hn,{children:(0,Z.jsx)(Kn,{label:`Format`,value:a,disabled:i,onValueChange:o,options:An})}),t[2]=i,t[3]=a,t[4]=o,t[5]=s):s=t[5],s}function Rn(e){let t=(0,X.c)(16),{options:n,updateOptions:r,disabled:i}=e,a;t[0]===r?a=t[1]:(a=e=>r(`ipynb`,{sortMode:e}),t[0]=r,t[1]=a);let o;t[2]!==i||t[3]!==n.ipynb.sortMode||t[4]!==a?(o=(0,Z.jsx)(Wn,{label:`Cell order`,value:n.ipynb.sortMode,disabled:i,onValueChange:a,options:jn}),t[2]=i,t[3]=n.ipynb.sortMode,t[4]=a,t[5]=o):o=t[5];let s;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(s={checked:`Keeps the outputs currently shown in the notebook.`,unchecked:`Leaves cell outputs out of the Jupyter notebook.`},t[6]=s):s=t[6];let c;t[7]===r?c=t[8]:(c=e=>r(`ipynb`,{includeOutputs:e}),t[7]=r,t[8]=c);let l;t[9]!==i||t[10]!==n.ipynb.includeOutputs||t[11]!==c?(l=(0,Z.jsx)(Un,{label:`Include outputs`,descriptions:s,checked:n.ipynb.includeOutputs,disabled:i,onCheckedChange:c}),t[9]=i,t[10]=n.ipynb.includeOutputs,t[11]=c,t[12]=l):l=t[12];let u;return t[13]!==o||t[14]!==l?(u=(0,Z.jsxs)(Hn,{children:[o,l]}),t[13]=o,t[14]=l,t[15]=u):u=t[15],u}function zn(e){let t=(0,X.c)(30),{options:n,updateOptions:r,disabled:i}=e,a;t[0]===r?a=t[1]:(a=e=>r(`pdf`,{preset:e}),t[0]=r,t[1]=a);let o;t[2]!==i||t[3]!==n.pdf.preset||t[4]!==a?(o=(0,Z.jsx)(Wn,{label:`Layout`,value:n.pdf.preset,disabled:i,onValueChange:a,options:Mn}),t[2]=i,t[3]=n.pdf.preset,t[4]=a,t[5]=o):o=t[5];let s;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(s={checked:`Includes code cells in the PDF.`,unchecked:`Leaves code cells out of the PDF.`},t[6]=s):s=t[6];let c;t[7]===r?c=t[8]:(c=e=>r(`pdf`,{includeInputs:e}),t[7]=r,t[8]=c);let l;t[9]!==i||t[10]!==n.pdf.includeInputs||t[11]!==c?(l=(0,Z.jsx)(Un,{label:`Include code`,descriptions:s,checked:n.pdf.includeInputs,disabled:i,onCheckedChange:c}),t[9]=i,t[10]=n.pdf.includeInputs,t[11]=c,t[12]=l):l=t[12];let u;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(u={checked:`Keeps the outputs currently shown in the notebook.`,unchecked:`Leaves cell outputs out of the PDF.`},t[13]=u):u=t[13];let d;t[14]===r?d=t[15]:(d=e=>r(`pdf`,{includeOutputs:e}),t[14]=r,t[15]=d);let f;t[16]!==i||t[17]!==n.pdf.includeOutputs||t[18]!==d?(f=(0,Z.jsx)(Un,{label:`Include outputs`,descriptions:u,checked:n.pdf.includeOutputs,disabled:i,onCheckedChange:d}),t[16]=i,t[17]=n.pdf.includeOutputs,t[18]=d,t[19]=f):f=t[19];let p;t[20]!==i||t[21]!==n.pdf.preset||t[22]!==n.pdf.webpdf||t[23]!==r?(p=n.pdf.preset===`document`?(0,Z.jsx)(Wn,{label:`Method`,value:n.pdf.webpdf?`browser`:`latex`,disabled:i,onValueChange:e=>r(`pdf`,{webpdf:e===`browser`}),options:Nn}):null,t[20]=i,t[21]=n.pdf.preset,t[22]=n.pdf.webpdf,t[23]=r,t[24]=p):p=t[24];let m;return t[25]!==o||t[26]!==l||t[27]!==f||t[28]!==p?(m=(0,Z.jsxs)(Hn,{children:[o,l,f,p]}),t[25]=o,t[26]=l,t[27]=f,t[28]=p,t[29]=m):m=t[29],m}function Bn(e){let t=(0,X.c)(6),{options:n,updateOptions:r,disabled:i}=e,a;t[0]===r?a=t[1]:(a=e=>r(`script`,{type:e}),t[0]=r,t[1]=a);let o;return t[2]!==i||t[3]!==n.script.type||t[4]!==a?(o=(0,Z.jsx)(Hn,{children:(0,Z.jsx)(Wn,{label:`Format`,value:n.script.type,disabled:i,onValueChange:a,options:Pn})}),t[2]=i,t[3]=n.script.type,t[4]=a,t[5]=o):o=t[5],o}function Vn(){return null}function Hn(e){let t=(0,X.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,Z.jsx)(`div`,{className:`divide-y rounded-md border`,children:n}),t[0]=n,t[1]=r),r}function Un(e){let t=(0,X.c)(26),{label:n,descriptions:r,descriptionOverride:i,checked:a,disabled:o,onCheckedChange:s}=e,c=(0,Y.useId)(),l=`${c}-description`,u=i??(a?r.checked:r.unchecked),d;t[0]===i?d=t[1]:(d=i?[i]:[],t[0]=i,t[1]=d);let f;t[2]!==r.checked||t[3]!==r.unchecked||t[4]!==d?(f=[r.checked,r.unchecked,...d],t[2]=r.checked,t[3]=r.unchecked,t[4]=d,t[5]=f):f=t[5];let p=f,m;t[6]!==c||t[7]!==n?(m=(0,Z.jsx)(`label`,{htmlFor:c,className:`text-sm font-medium leading-5`,children:n}),t[6]=c,t[7]=n,t[8]=m):m=t[8];let h;t[9]!==u||t[10]!==l||t[11]!==p?(h=(0,Z.jsx)(Yn,{id:l,description:u,possibleDescriptions:p}),t[9]=u,t[10]=l,t[11]=p,t[12]=h):h=t[12];let g;t[13]!==m||t[14]!==h?(g=(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[m,h]}),t[13]=m,t[14]=h,t[15]=g):g=t[15];let _;t[16]!==a||t[17]!==l||t[18]!==o||t[19]!==c||t[20]!==n||t[21]!==s?(_=(0,Z.jsx)(ye,{id:c,size:`sm`,checked:a,disabled:o,onCheckedChange:s,"aria-label":n,"aria-describedby":l}),t[16]=a,t[17]=l,t[18]=o,t[19]=c,t[20]=n,t[21]=s,t[22]=_):_=t[22];let v;return t[23]!==g||t[24]!==_?(v=(0,Z.jsxs)(`div`,{className:`flex min-h-14 items-center justify-between gap-4 px-3 py-2`,children:[g,_]}),t[23]=g,t[24]=_,t[25]=v):v=t[25],v}function Wn(e){let t=(0,X.c)(31),{label:n,value:r,disabled:i,onValueChange:a,options:o}=e,s=(0,Y.useId)(),c=`${s}-description`,l;t[0]!==o||t[1]!==r?(l=o.find(e=>e.value===r)?.description,t[0]=o,t[1]=r,t[2]=l):l=t[2];let u=l,d;t[3]===n?d=t[4]:(d=(0,Z.jsx)(`div`,{className:`text-sm font-medium leading-5`,children:n}),t[3]=n,t[4]=d);let f=u??``,p;t[5]===o?p=t[6]:(p=o.map(Gn),t[5]=o,t[6]=p);let m;t[7]!==c||t[8]!==f||t[9]!==p?(m=(0,Z.jsx)(Yn,{id:c,description:f,possibleDescriptions:p}),t[7]=c,t[8]=f,t[9]=p,t[10]=m):m=t[10];let h;t[11]!==d||t[12]!==m?(h=(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[d,m]}),t[11]=d,t[12]=m,t[13]=h):h=t[13];let g;t[14]===a?g=t[15]:(g=e=>a(e),t[14]=a,t[15]=g);let _;if(t[16]!==s||t[17]!==o){let e;t[19]===s?e=t[20]:(e=(e,t)=>{let n=`${s}-${t}`;return(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(v,{id:n,value:e.value}),(0,Z.jsx)(`label`,{htmlFor:n,className:`text-sm`,children:e.label})]},e.value)},t[19]=s,t[20]=e),_=o.map(e),t[16]=s,t[17]=o,t[18]=_}else _=t[18];let y;t[21]!==c||t[22]!==i||t[23]!==n||t[24]!==g||t[25]!==_||t[26]!==r?(y=(0,Z.jsx)(S,{value:r,onValueChange:g,className:`flex shrink-0 flex-wrap gap-x-5 gap-y-2 sm:justify-end`,"aria-label":n,"aria-describedby":c,disabled:i,children:_}),t[21]=c,t[22]=i,t[23]=n,t[24]=g,t[25]=_,t[26]=r,t[27]=y):y=t[27];let b;return t[28]!==h||t[29]!==y?(b=(0,Z.jsxs)(`div`,{className:`flex min-h-14 flex-col items-stretch gap-2 px-3 py-2 sm:flex-row sm:items-center sm:justify-between sm:gap-4`,children:[h,y]}),t[28]=h,t[29]=y,t[30]=b):b=t[30],b}function Gn(e){return e.description}function Kn(e){let t=(0,X.c)(34),{label:n,value:r,disabled:i,onValueChange:a,options:o}=e,s=(0,Y.useId)(),c=`${s}-description`,l;t[0]!==o||t[1]!==r?(l=o.find(e=>e.value===r)?.description,t[0]=o,t[1]=r,t[2]=l):l=t[2];let u=l,d;t[3]!==s||t[4]!==n?(d=(0,Z.jsx)(`label`,{htmlFor:s,className:`text-sm font-medium leading-5`,children:n}),t[3]=s,t[4]=n,t[5]=d):d=t[5];let f=u??``,p;t[6]===o?p=t[7]:(p=o.map(Jn),t[6]=o,t[7]=p);let m;t[8]!==c||t[9]!==f||t[10]!==p?(m=(0,Z.jsx)(Yn,{id:c,description:f,possibleDescriptions:p}),t[8]=c,t[9]=f,t[10]=p,t[11]=m):m=t[11];let h;t[12]!==d||t[13]!==m?(h=(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[d,m]}),t[12]=d,t[13]=m,t[14]=h):h=t[14];let g;t[15]===a?g=t[16]:(g=e=>a(e),t[15]=a,t[16]=g);let _;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,Z.jsx)(le,{}),t[17]=_):_=t[17];let v;t[18]!==c||t[19]!==s?(v=(0,Z.jsx)(pe,{id:s,"aria-describedby":c,className:`h-8 w-full shrink-0 sm:w-44`,children:_}),t[18]=c,t[19]=s,t[20]=v):v=t[20];let y;t[21]===o?y=t[22]:(y=o.map(qn),t[21]=o,t[22]=y);let b;t[23]===y?b=t[24]:(b=(0,Z.jsx)(de,{children:y}),t[23]=y,t[24]=b);let x;t[25]!==i||t[26]!==b||t[27]!==g||t[28]!==v||t[29]!==r?(x=(0,Z.jsxs)(me,{value:r,disabled:i,onValueChange:g,children:[v,b]}),t[25]=i,t[26]=b,t[27]=g,t[28]=v,t[29]=r,t[30]=x):x=t[30];let S;return t[31]!==x||t[32]!==h?(S=(0,Z.jsxs)(`div`,{className:`flex min-h-14 flex-col items-stretch gap-2 px-3 py-2 sm:flex-row sm:items-center sm:justify-between sm:gap-4`,children:[h,x]}),t[31]=x,t[32]=h,t[33]=S):S=t[33],S}function qn(e){return(0,Z.jsx)(ue,{value:e.value,children:e.label},e.value)}function Jn(e){return e.description}function Yn(e){let t=(0,X.c)(15),{id:n,description:r,possibleDescriptions:i}=e,a;t[0]===i?a=t[1]:(a=new Set(i),t[0]=i,t[1]=a);let o;t[2]===a?o=t[3]:(o=[...a],t[2]=a,t[3]=o);let s;t[4]!==r||t[5]!==o?(s=o.filter(e=>e!==r),t[4]=r,t[5]=o,t[6]=s):s=t[6];let c=s,l;t[7]!==r||t[8]!==n?(l=(0,Z.jsx)(`p`,{id:n,"aria-live":`polite`,className:`col-start-1 row-start-1`,children:r}),t[7]=r,t[8]=n,t[9]=l):l=t[9];let u;t[10]===c?u=t[11]:(u=c.map(Xn),t[10]=c,t[11]=u);let d;return t[12]!==l||t[13]!==u?(d=(0,Z.jsxs)(`div`,{className:`mt-0.5 grid text-xs leading-4 text-muted-foreground`,children:[l,u]}),t[12]=l,t[13]=u,t[14]=d):d=t[14],d}function Xn(e){return(0,Z.jsx)(`p`,{"aria-hidden":!0,className:`invisible col-start-1 row-start-1`,children:e},e)}var Zn={"playwright-chromium":{description:`PDF export requires Playwright Chromium.`}};function Qn(e){let t=(0,X.c)(10),{status:n}=e;if(n.available&&!n.availabilityCheckFailed)return null;if(n.reason?.type===`checking-requirements`){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsxs)(`span`,{className:`ml-auto flex shrink-0`,children:[(0,Z.jsx)(rt,{size:`small`,className:`size-3`}),(0,Z.jsx)(`span`,{className:`sr-only`,children:`Checking requirements`})]}),t[0]=e):e=t[0],e}let r=n.availabilityCheckFailed?`Requirements unknown`:`Unavailable`,i=n.availabilityCheckFailed?`text-muted-foreground`:`text-(--yellow-11)`,a;t[1]===i?a=t[2]:(a=W(`size-3`,i),t[1]=i,t[2]=a);let o;t[3]===a?o=t[4]:(o=(0,Z.jsx)(w,{className:a}),t[3]=a,t[4]=o);let s;t[5]===r?s=t[6]:(s=(0,Z.jsx)(`span`,{className:`sr-only`,children:r}),t[5]=r,t[6]=s);let c;return t[7]!==o||t[8]!==s?(c=(0,Z.jsxs)(`span`,{className:`ml-auto flex shrink-0`,children:[o,s]}),t[7]=o,t[8]=s,t[9]=c):c=t[9],c}function $n(e){let t=(0,X.c)(7),{format:n,formatLabel:r,status:i,onInstall:a,isInstalling:o}=e,s=o!==void 0&&o;if(i.availabilityCheckFailed){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(`div`,{className:`mb-2.5`,children:(0,Z.jsx)(er,{children:`Couldn't check whether this export is available. You can still try it.`})}),t[0]=e):e=t[0],e}if(!i.reason)return null;let c;return t[1]!==n||t[2]!==r||t[3]!==s||t[4]!==a||t[5]!==i.reason?(c=(0,Z.jsx)(`div`,{className:`mb-2.5`,children:(0,Z.jsx)(tr,{format:n,formatLabel:r,reason:i.reason,onInstall:a,isInstalling:s})}),t[1]=n,t[2]=r,t[3]=s,t[4]=a,t[5]=i.reason,t[6]=c):c=t[6],c}function er(e){let t=(0,X.c)(9),{children:n,onInstall:r,isInstalling:i}=e,a=i!==void 0&&i,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Z.jsx)(w,{className:`size-4 shrink-0`}),t[0]=o):o=t[0];let s;t[1]===n?s=t[2]:(s=(0,Z.jsx)(`span`,{className:`min-w-0 flex-1`,children:n}),t[1]=n,t[2]=s);let c;t[3]!==a||t[4]!==r?(c=r?(0,Z.jsxs)(K,{type:`button`,variant:`outline`,size:`xs`,className:`shrink-0 border-input bg-background text-foreground hover:border-input hover:bg-muted hover:text-foreground`,disabled:a,"aria-busy":a,onClick:r,children:[a?(0,Z.jsx)(rt,{size:`small`,className:`mr-1.5 size-3.5`}):(0,Z.jsx)(Ht,{className:`mr-1.5 size-3.5`}),`Install`]}):null,t[3]=a,t[4]=r,t[5]=c):c=t[5];let l;return t[6]!==s||t[7]!==c?(l=(0,Z.jsxs)(Ot,{variant:`warning`,className:`flex items-center gap-2.5 px-3 py-2 text-(--yellow-12) has-[svg]:pl-3 [&>svg]:static [&>svg+div]:translate-y-0`,children:[o,(0,Z.jsxs)(Dt,{className:`flex min-w-0 flex-1 items-center gap-3 text-sm leading-5`,children:[s,c]})]}),t[6]=s,t[7]=c,t[8]=l):l=t[8],l}function tr(e){let t=(0,X.c)(22),{format:n,formatLabel:r,reason:i,onInstall:a,isInstalling:o}=e;switch(i.type){case`checking-requirements`:{let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(rt,{className:`size-4 shrink-0`,size:`small`}),t[0]=e):e=t[0];let n;return t[1]===r?n=t[2]:(n=(0,Z.jsxs)(Ot,{role:`status`,variant:`info`,className:`flex items-center gap-2.5 p-3 has-[svg]:pl-3 [&>svg]:static [&>svg+div]:translate-y-0`,children:[e,(0,Z.jsxs)(Dt,{className:`min-w-0 flex-1 text-sm leading-5`,children:[`Checking `,r,` requirements…`]})]}),t[1]=r,t[2]=n),n}case`notebook-must-be-named`:{let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(er,{children:`Name and save this notebook before exporting.`}),t[3]=e):e=t[3],e}case`missing-packages`:{let e;t[4]===i.packages?e=t[5]:(e=i.packages.join(`, `),t[4]=i.packages,t[5]=e);let n;t[6]===e?n=t[7]:(n=(0,Z.jsx)(`code`,{className:`break-words font-mono`,children:e}),t[6]=e,t[7]=n);let s;return t[8]!==r||t[9]!==o||t[10]!==a||t[11]!==n?(s=(0,Z.jsxs)(er,{onInstall:a,isInstalling:o,children:[r,` export requires`,` `,n,`.`]}),t[8]=r,t[9]=o,t[10]=a,t[11]=n,t[12]=s):s=t[12],s}case`missing-setup`:{let e;t[13]!==a||t[14]!==i.requirements?(e=a?i.requirements.map(rr).join(` `):(0,Z.jsx)(`span`,{className:`block min-w-0`,children:i.requirements.map(nr)}),t[13]=a,t[14]=i.requirements,t[15]=e):e=t[15];let n;return t[16]!==o||t[17]!==a||t[18]!==e?(n=(0,Z.jsx)(er,{onInstall:a,isInstalling:o,children:e}),t[16]=o,t[17]=a,t[18]=e,t[19]=n):n=t[19],n}case`wasm-runtime`:{let e=n===`pdf`?`Use your browser's print dialog to save the current app view as a PDF.`:`Open this notebook in a local marimo session to use this export.`,r;return t[20]===e?r=t[21]:(r=(0,Z.jsx)(er,{children:e}),t[20]=e,t[21]=r),r}default:vt(i)}}function nr(e){let t=Zn[e.name];return(0,Z.jsxs)(`span`,{className:`block`,children:[t.description,(0,Z.jsx)(`code`,{className:`mt-1 block break-all font-mono`,children:e.command})]},e.name)}function rr(e){return Zn[e.name].description}function ir(e){return e.endsWith(`.myst.md`)?`mystmd`:e.endsWith(`.qmd`)?`qmd`:e.endsWith(`.mdx`)?`mdx`:`pymdown`}function ar(e,t){let n=t??ir(e),r=Tt[n],i=Et.find(t=>e.endsWith(t)),a=G.withoutExtension(e);i&&(a=e.slice(0,-i.length));let o=`${a}.${r}`;return o===e?`${e.slice(0,-(r.length+1))}.export.${r}`:o}function or(e){return Object.entries(e).flatMap(([e,t])=>t===null?[]:t===!0?[`--${e}`]:t===!1?[`--no-${e}`]:[`--${e}=${t}`])}function sr(e){return e.preset===`document`?e.webpdf:null}var cr={html:{subcommand:`html`,flags:({html:e})=>({"include-code":e.includeCode}),outputFilename:e=>G.toHTML(e)},markdown:{subcommand:`md`,flags:({markdown:e})=>({flavor:e.flavor}),outputFilename:(e,{markdown:t})=>ar(e,t.flavor)},ipynb:{subcommand:`ipynb`,flags:({ipynb:e})=>({sort:e.sortMode,"include-outputs":e.includeOutputs}),outputFilename:e=>G.toIPYNB(e)},pdf:{subcommand:`pdf`,flags:({pdf:e})=>({as:e.preset,"include-inputs":e.includeInputs,"include-outputs":e.includeOutputs,webpdf:sr(e)}),outputFilename:e=>G.toPDF(e)},script:{subcommand:`script`,flags:()=>({}),outputFilename:e=>`${G.withoutExtension(e)}.script.py`}};function lr({format:e,filename:t,options:n}){if(e===`png`||e===`script`&&n.script.type===`source`||!t)return null;let r=cr[e];return[`marimo`,`export`,r.subcommand,bt(t),...or(r.flags(n)),`-o`,bt(r.outputFilename(t,n))].join(` `)}async function ur(e){let{exportOptions:t,captureOutputs:n,downloadPDF:r}=e;t.includeOutputs&&await n(),await r(t)}async function dr({format:e,options:t,requests:n,sourceFilename:r,htmlFiles:i,getLayout:a,captureOutputs:o,capturePNG:s,downloadFile:c}){switch(e){case`html`:c(await n.exportAsHTML({download:!1,files:i,includeCode:t.html.includeCode,layout:await a()}));return;case`markdown`:c(await n.exportAsMarkdown({download:!1,flavor:t.markdown.flavor}));return;case`ipynb`:t.ipynb.includeOutputs&&await o(),c(await n.exportAsIPYNB({download:!1,sortMode:t.ipynb.sortMode,includeOutputs:t.ipynb.includeOutputs}));return;case`pdf`:await ur({exportOptions:t.pdf,captureOutputs:o,downloadPDF:async e=>{c(await n.exportAsPDF(e))}});return;case`script`:if(t.script.type===`source`){c({contents:(await n.readCode()).contents,filename:r,mediaType:`text/plain`});return}c(await n.exportAsScript({download:!1}));return;case`png`:await s();return;default:vt(e)}}var fr={source:{actionLabel:`Export notebook source`,progressLabel:`notebook source`},flat:{actionLabel:`Export flat script`,progressLabel:`flat script`}};function pr(e,t){if(e===`wasm`)return{status:`success`,data:null};switch(t.status){case`pending`:case`loading`:return{status:`pending`};case`error`:return{status:`error`};case`success`:return{status:`success`,data:t.data}}}function mr(e,t){return e===`server`&&t?De.basename(t):G.toPY(document.title)}function hr({usesBrowserPrint:e,hasCommand:t,format:n,isNotebookSource:r}){return e?`Uses the browser's print settings for page size and filename.`:t?`Uses the current session state. The copied command exports the saved notebook.`:n!==`png`&&!r?`Save the notebook to copy an equivalent shell command.`:null}function gr(e){let n=kt(),[r,i]=t(wn),[a,o]=t(Tn),[s,c]=(0,Y.useState)(e??a),l=H()?`wasm`:`server`,u=J(),d=L(),[f,p]=(0,Y.useState)(!1),m=xt(async()=>l===`wasm`?null:u.getExportAvailability(),[l,u]),h=pr(l,m),g=e=>On({format:e,options:r,runtime:l,filename:n,availability:h}),_=g(s),v=d&&(_.reason?.type===`missing-packages`||_.reason?.type===`missing-setup`),y=pn.map(e=>({format:e,status:g(e)})),b=Dn(l,s),x=Fn[s],S=s===`script`&&r.script.type===`source`,{actionLabel:C,progressLabel:w}=s===`script`?fr[r.script.type]:{actionLabel:x.actionLabel,progressLabel:x.label},T=b?null:lr({format:s,filename:n,options:r}),E=hr({usesBrowserPrint:b,hasCommand:!!T,format:s,isNotebookSource:S});return(0,Y.useEffect)(()=>{e&&o(e)},[e,o]),{formats:y,options:r,selected:{format:s,status:_,usesBrowserPrint:b,actionLabel:C,command:T,footerDescription:E},exportRequest:{format:s,options:r,sourceFilename:mr(l,n),available:_.available,usesBrowserPrint:b,progressLabel:w},selectFormat:e=>{vn(e)&&(c(e),o(e))},updateOptions:(e,t)=>{i(n=>{let r={...n};return r[e]={...n[e],...t},r})},canInstall:v,isInstalling:f,installRequirements:async()=>{if(!(!v||f||s===`png`)){p(!0);try{let e=await u.installExportRequirements({format:s});m.setData(e)}catch{}finally{p(!1)}}}}}async function _r(e){let t=document.getElementById(`App`);if(!t){let e=`The current app view could not be captured.`;throw ht({title:`Failed to download as PNG`,description:e,variant:`danger`}),Error(e)}let n=e?.style.visibility,r=e?.classList.contains(`print:hidden`);if(!await _e({element:t,filename:document.title,prepare:()=>{let t=ve();return e&&(e.classList.add(`print:hidden`),e.style.visibility=`hidden`),()=>{t(),e&&(r||e.classList.remove(`print:hidden`),e.style.visibility=n??``)}}}))throw Error(`Failed to capture the current app view.`)}function vr(e){e(),requestAnimationFrame(()=>{setTimeout(()=>{window.print()},0)})}function yr({format:e,options:t,sourceFilename:n,available:r,usesBrowserPrint:i,progressLabel:a,onClose:o}){let s=J(),c=Rt(),[l,u]=(0,Y.useState)(!1),d=(0,Y.useRef)(null),f=(0,Y.useRef)(!0);(0,Y.useEffect)(()=>(f.current=!0,()=>{f.current=!1}),[]);let p=async e=>{await zt({takeScreenshots:()=>c({progress:e}),updateCellOutputs:s.updateCellOutputs})},m=async()=>{await z(()=>_r(d.current?.parentElement??null))};return{dialogRef:d,isExporting:l,submit:async()=>{if(!(!r||l)){if(i){vr(o);return}u(!0);try{await ge(`Exporting ${a}…`,async r=>{await dr({format:e,options:t,requests:s,sourceFilename:n,htmlFiles:Ne.INSTANCE.filenames(),getLayout:Pe,captureOutputs:()=>p(r),capturePNG:m,downloadFile:he})}),f.current&&o()}catch(e){N.error(`Export failed`,e)}finally{f.current&&u(!1)}}}}}function br(e){let t=(0,X.c)(15),{initialFormat:n,onClose:r}=e,i=gr(n),a,o,s;t[0]===i?(a=t[1],o=t[2],s=t[3]):({exportRequest:a,selectFormat:o,...s}=i,t[0]=i,t[1]=a,t[2]=o,t[3]=s);let c;t[4]!==a||t[5]!==r?(c={...a,onClose:r},t[4]=a,t[5]=r,t[6]=c):c=t[6];let l=yr(c),u;t[7]!==l||t[8]!==o||t[9]!==s?(u=e=>{!l.isExporting&&!s.isInstalling&&o(e)},t[7]=l,t[8]=o,t[9]=s,t[10]=u):u=t[10];let d;return t[11]!==l||t[12]!==s||t[13]!==u?(d={...s,...l,selectFormat:u},t[11]=l,t[12]=s,t[13]=u,t[14]=d):d=t[14],d}var xr=`(min-width: 640px)`,Sr=e=>{let t=(0,X.c)(75),{initialFormat:n,onClose:r,returnFocusRef:i}=e,a;t[0]!==n||t[1]!==r?(a={initialFormat:n,onClose:r},t[0]=n,t[1]=r,t[2]=a):a=t[2];let{dialogRef:o,isExporting:s,isInstalling:c,canInstall:l,formats:u,options:d,selected:f,selectFormat:p,updateOptions:m,installRequirements:h,submit:g}=br(a),_=s||c,v=ae(xr),{format:y,status:b,usesBrowserPrint:x,actionLabel:S,command:C,footerDescription:w}=f,T=Fn[y],E=T.Options,ee;t[3]===i?ee=t[4]:(ee=i?{onCloseAutoFocus:e=>{e.preventDefault(),i.current?.focus()}}:{},t[3]=i,t[4]=ee);let te=ee,ne;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(ne=(0,Z.jsxs)(st,{className:`border-b px-5 py-4 pr-12`,children:[(0,Z.jsx)(dt,{children:`Export notebook`}),(0,Z.jsx)(ct,{children:`Choose a format and adjust its options.`})]}),t[5]=ne):ne=t[5];let D=v?`vertical`:`horizontal`,O;if(t[6]!==u||t[7]!==_){let e;t[9]===_?e=t[10]:(e=e=>{let{format:t,status:n}=e,r=Fn[t];return(0,Z.jsxs)(be,{value:t,disabled:_,className:`min-w-0 justify-start gap-2 px-2.5 py-2 text-xs data-[state=active]:shadow-xs sm:w-full sm:text-sm`,"data-testid":`export-format-${t}`,children:[(0,Z.jsx)(r.Icon,{className:`size-3.5 shrink-0`,strokeWidth:1.5}),(0,Z.jsx)(`span`,{className:`truncate`,children:r.label}),(0,Z.jsx)(Qn,{status:n})]},t)},t[9]=_,t[10]=e),O=u.map(e),t[6]=u,t[7]=_,t[8]=O}else O=t[8];let k;t[11]===O?k=t[12]:(k=(0,Z.jsx)(Se,{"aria-label":`Export format`,className:`grid max-h-none shrink-0 grid-cols-2 items-stretch justify-start gap-1 overflow-auto rounded-none border-b bg-muted/20 p-2 min-[360px]:grid-cols-3 sm:flex sm:h-full sm:flex-col sm:border-b-0 sm:border-r`,children:O}),t[11]=O,t[12]=k);let A;if(t[13]!==E||t[14]!==l||t[15]!==T.description||t[16]!==T.label||t[17]!==y||t[18]!==u||t[19]!==h||t[20]!==_||t[21]!==c||t[22]!==d||t[23]!==b||t[24]!==m||t[25]!==x){let e;t[27]!==E||t[28]!==l||t[29]!==T.description||t[30]!==T.label||t[31]!==y||t[32]!==h||t[33]!==_||t[34]!==c||t[35]!==d||t[36]!==b||t[37]!==m||t[38]!==x?(e=e=>{let{format:t}=e;return(0,Z.jsxs)(xe,{value:t,className:`mt-0 min-h-0 min-w-0 overflow-y-auto px-4 py-3`,children:[(0,Z.jsxs)(`div`,{className:`mb-3`,children:[(0,Z.jsx)(`h3`,{className:`text-base font-semibold`,children:T.label}),(0,Z.jsx)(`p`,{className:`mt-0.5 text-sm text-muted-foreground`,children:T.description})]}),(0,Z.jsx)($n,{format:y,formatLabel:T.label,status:b,onInstall:l?h:void 0,isInstalling:c}),x?null:(0,Z.jsx)(E,{options:d,updateOptions:m,disabled:_})]},t)},t[27]=E,t[28]=l,t[29]=T.description,t[30]=T.label,t[31]=y,t[32]=h,t[33]=_,t[34]=c,t[35]=d,t[36]=b,t[37]=m,t[38]=x,t[39]=e):e=t[39],A=u.map(e),t[13]=E,t[14]=l,t[15]=T.description,t[16]=T.label,t[17]=y,t[18]=u,t[19]=h,t[20]=_,t[21]=c,t[22]=d,t[23]=b,t[24]=m,t[25]=x,t[26]=A}else A=t[26];let j;t[40]!==y||t[41]!==p||t[42]!==D||t[43]!==k||t[44]!==A?(j=(0,Z.jsxs)(Ce,{value:y,onValueChange:p,orientation:D,className:`flex min-h-0 min-w-0 flex-col overflow-hidden sm:grid sm:grid-cols-[168px_minmax(0,1fr)]`,children:[k,A]}),t[40]=y,t[41]=p,t[42]=D,t[43]=k,t[44]=A,t[45]=j):j=t[45];let M;t[46]===C?M=t[47]:(M=C?(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 rounded-md border bg-background px-2.5 py-2 font-mono text-xs`,children:[(0,Z.jsx)(`span`,{className:`select-none text-muted-foreground`,"aria-hidden":!0,children:`$`}),(0,Z.jsx)(`code`,{className:`min-w-0 flex-1 overflow-x-auto whitespace-nowrap`,"data-testid":`export-cli-command`,"aria-label":`Equivalent POSIX shell command`,children:C}),(0,Z.jsx)(gt,{value:C,className:`size-3.5`,buttonClassName:W(we({variant:`ghost`,size:`icon`}),`shrink-0`),tooltip:`Copy POSIX shell command`,ariaLabel:`Copy POSIX shell command`,toastTitle:`Command copied`})]}):null,t[46]=C,t[47]=M);let N=C&&`mt-3`,P;t[48]===N?P=t[49]:(P=W(`flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between`,N),t[48]=N,t[49]=P);let F;t[50]===w?F=t[51]:(F=w?(0,Z.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:w}):null,t[50]=w,t[51]=F);let I=!b.available||_,L=!w&&`sm:ml-auto`,R;t[52]===L?R=t[53]:(R=W(`border-(--blue-11) bg-(--blue-11) hover:border-(--blue-12) hover:bg-(--blue-12) sm:min-w-36 dark:border-(--blue-7) dark:bg-(--blue-5) dark:text-(--blue-12) dark:hover:border-(--blue-8) dark:hover:bg-(--blue-6)`,L),t[52]=L,t[53]=R);let z;t[54]===s?z=t[55]:(z=s&&(0,Z.jsx)(rt,{size:`small`,className:`mr-2`,"aria-hidden":!0}),t[54]=s,t[55]=z);let re=x?`Print to PDF`:S,B;t[56]!==s||t[57]!==g||t[58]!==I||t[59]!==R||t[60]!==z||t[61]!==re?(B=(0,Z.jsxs)(K,{type:`button`,disabled:I,"aria-busy":s,onClick:g,className:R,"data-testid":`export-submit`,children:[z,re]}),t[56]=s,t[57]=g,t[58]=I,t[59]=R,t[60]=z,t[61]=re,t[62]=B):B=t[62];let V;t[63]!==P||t[64]!==F||t[65]!==B?(V=(0,Z.jsxs)(`div`,{className:P,children:[F,B]}),t[63]=P,t[64]=F,t[65]=B,t[66]=V):V=t[66];let H;t[67]!==V||t[68]!==M?(H=(0,Z.jsxs)(`footer`,{className:`min-w-0 border-t bg-muted/20 px-4 py-3`,children:[M,V]}),t[67]=V,t[68]=M,t[69]=H):H=t[69];let U;return t[70]!==o||t[71]!==te||t[72]!==H||t[73]!==j?(U=(0,Z.jsxs)(lt,{ref:o,className:`grid h-dvh max-h-[760px] min-w-0 w-[calc(100vw-2rem)] grid-rows-[auto_minmax(0,1fr)_auto] gap-0 overflow-hidden p-0 sm:top-[5vh] sm:h-[90vh] sm:max-h-[640px] sm:max-w-3xl`,"data-testid":`export-dialog`,...te,children:[ne,j,H]}),t[70]=o,t[71]=te,t[72]=H,t[73]=j,t[74]=U):U=t[74],U};function Cr(e){let t=(0,X.c)(5),{openPrompt:n,closeModal:r}=nt(),{sendCopy:i}=J(),a;return t[0]!==r||t[1]!==n||t[2]!==i||t[3]!==e?(a=()=>{if(!e)return null;let t=ke.guessDeliminator(e),a=De.basename(e);n({title:`Copy notebook`,description:`Enter a new filename for the notebook copy.`,defaultValue:`_${a}`,confirmText:`Copy notebook`,spellCheck:!1,onConfirm:n=>{let a=t.join(De.dirname(e),n);i({source:e,destination:a}).then(()=>{r(),ht({title:`Notebook copied`,description:`A copy of the notebook has been created.`}),Lt(a)})}})},t[0]=r,t[1]=n,t[2]=i,t[3]=e,t[4]=a):a=t[4],a}var wr=new y,Tr=e=>wr.isSupported(e)?`markdown`:`code`,Er=()=>{let e=(0,X.c)(3),{updateCellConfig:t}=o(),{saveCellConfig:n}=J(),r;return e[0]!==n||e[1]!==t?(r=async(e,r)=>{let i=b(),a={};for(let t of i.cellIds.inOrderIds){let n=i.cellData[t];n!==void 0&&n.config.hide_code!==e&&Tr(n.code)===r&&(a[t]={hide_code:e})}let o=P.entries(a);if(o.length!==0){await n({configs:a});for(let[e,n]of o)t({cellId:e,config:n})}},e[0]=n,e[1]=t,e[2]=r):r=e[2],r};function Dr(e,t){let n={};for(let r of e.cellIds.inOrderIds){let i=e.cellData[r];i!==void 0&&(i.config.expand_output??!1)!==t&&(We(e.cellRuntime[r]?.output)||(n[r]={expand_output:t}))}return n}var Or=()=>{let e=(0,X.c)(3),{updateCellConfig:t}=o(),{saveCellConfig:n}=J(),r;return e[0]!==n||e[1]!==t?(r=async e=>{let r=Dr(b(),e),i=P.entries(r);if(i.length!==0){await n({configs:r});for(let[e,n]of i)t({cellId:e,config:n})}},e[0]=n,e[1]=t,e[2]=r):r=e[2],r},kr=e=>{e?.preventDefault(),e?.stopPropagation()};function Ar(e){let n=(0,X.c)(44),a;n[0]===e?a=n[1]:(a=e===void 0?{}:e,n[0]=e,n[1]=a);let{exportDialogReturnFocusRef:p}=a,h=kt(),{openModal:_,closeModal:v}=nt(),{toggleApplication:y}=d(),{selectedPanel:S}=E(),[w]=t(V),D=r(re),O=Er(),k=Or(),[A]=j(),N=r(c),F=r(M),{updateCellConfig:L,undoDeleteCell:R,clearAllCellOutputs:z,addSetupCellIfDoesntExist:B,collapseAllCells:U,expandAllCells:W}=o(),ie=Ct(),ae=St(),ce=Cr(h),le=i(sn),ue=i(Le),{handleClick:de}=Re(),fe=i(Fe),pe=i(wn),{readCode:me,saveCellConfig:he}=J(),ge=ne(`database`),G=ne(`storage`),_e=f(),ve=r(g),ye=r(te),be=r(s),{selectedLayout:xe}=at(),{setLayoutView:Se}=it(),Ce=on(),we=A.sharing?.html??!0,K=A.sharing?.wasm??!0,q=A.sharing?.molab??!0,De=xe===`slides`,ke;if(n[2]!==_e||n[3]!==B||n[4]!==F||n[5]!==ye||n[6]!==N||n[7]!==z||n[8]!==v||n[9]!==U||n[10]!==ce||n[11]!==ge||n[12]!==G||n[13]!==W||n[14]!==p||n[15]!==h||n[16]!==ve||n[17]!==De||n[18]!==D||n[19]!==_||n[20]!==de||n[21]!==me||n[22]!==ie||n[23]!==ae||n[24]!==he||n[25]!==xe||n[26]!==S||n[27]!==O||n[28]!==le||n[29]!==pe||n[30]!==fe||n[31]!==Se||n[32]!==k||n[33]!==ue||n[34]!==we||n[35]!==q||n[36]!==K||n[37]!==y||n[38]!==Ce||n[39]!==R||n[40]!==be||n[41]!==L||n[42]!==w.mode){let e=[`db`,`sql`,...Mt],t=[`bucket`,`object storage`,...Pt],r=Gr,i=(e,t)=>{t&&pe(e=>xn(e,t)),_((0,Z.jsx)(Sr,{initialFormat:e,onClose:v,returnFocusRef:p}))};ke=[{icon:(0,Z.jsx)(oe,{size:14,strokeWidth:1.5}),label:`Export…`,additionalKeywords:[`download`,`html`,`markdown`,`ipynb`,`pdf`,`script`,`png`],handle:()=>i()},{icon:(0,Z.jsx)(oe,{size:14,strokeWidth:1.5}),label:`Download`,redundant:!0,handle:kr,dropdown:[{icon:(0,Z.jsx)(Me,{size:14,strokeWidth:1.5}),label:`Download as HTML`,handle:()=>i(`html`,{html:{includeCode:!0}})},{icon:(0,Z.jsx)(Me,{size:14,strokeWidth:1.5}),label:`Download as HTML (exclude code)`,handle:()=>i(`html`,{html:{includeCode:!1}})},{icon:(0,Z.jsx)(At,{strokeWidth:1.5,style:{width:14,height:14}}),label:`Download as Markdown`,handle:()=>i(`markdown`)},{icon:(0,Z.jsx)(Yt,{size:14,strokeWidth:1.5}),label:`Download as ipynb`,handle:()=>i(`ipynb`)},{icon:(0,Z.jsx)(Ge,{size:14,strokeWidth:1.5}),label:`Download notebook source`,handle:()=>i(`script`,{script:{type:`source`}})},{icon:(0,Z.jsx)(Ge,{size:14,strokeWidth:1.5}),label:`Download flat script`,handle:()=>i(`script`,{script:{type:`flat`}})},{divider:!0,icon:(0,Z.jsx)(tt,{size:14,strokeWidth:1.5}),label:`Download as PNG`,handle:()=>i(`png`)},De?{divider:!0,icon:(0,Z.jsx)(Je,{size:14,strokeWidth:1.5}),label:`Download as PDF`,handle:kr,dropdown:[{icon:(0,Z.jsx)(Je,{size:14,strokeWidth:1.5}),label:`Document Layout`,handle:()=>i(`pdf`,{pdf:{preset:`document`}})},{icon:(0,Z.jsx)(Je,{size:14,strokeWidth:1.5}),label:`Slides Layout`,hidden:H(),rightElement:(0,Z.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`}),handle:()=>i(`pdf`,{pdf:{preset:`slides`}})}]}:{divider:!0,icon:(0,Z.jsx)(Je,{size:14,strokeWidth:1.5}),label:`Download as PDF`,handle:()=>i(`pdf`,{pdf:{preset:`document`}})}]},{icon:(0,Z.jsx)(l,{size:14,strokeWidth:1.5}),label:`Connect your agent`,hidden:H(),handle:async()=>{_((0,Z.jsx)(Ie,{onClose:v}))},additionalKeywords:[`connect`]},{icon:(0,Z.jsx)(Qt,{size:14,strokeWidth:1.5}),label:`Share`,handle:kr,hidden:!we&&!K&&!q,dropdown:[{icon:(0,Z.jsx)(Ye,{size:14,strokeWidth:1.5}),label:`Publish HTML to web`,hidden:!we,handle:async()=>{_((0,Z.jsx)(nn,{onClose:v}))}},{icon:(0,Z.jsx)(Be,{size:14,strokeWidth:1.5}),label:`Create WebAssembly link`,hidden:!K,handle:async()=>{let e=await me(),t=wt({code:e.contents});await mt(t),ht({title:`Copied`,description:`Link copied to clipboard.`})}},{icon:(0,Z.jsx)(It,{size:14,strokeWidth:1.5}),label:`Create molab notebook`,hidden:!q,handle:async()=>{let e=await me(),t=wt({code:e.contents,baseUrl:`${I.molab}/new`});window.open(t,`_blank`)}}]},{icon:(0,Z.jsx)(Xt,{size:14,strokeWidth:1.5}),label:`Helper panel`,redundant:!0,handle:kr,dropdown:u.flatMap(e=>{let t=e.type===`ai`&&!F;if(m({panel:e,capabilities:N,aiEnabled:F})&&!t)return[];let{type:n,Icon:i,additionalKeywords:a}=e;return{label:yt.startCase(n),rightElement:r(S===n),icon:(0,Z.jsx)(i,{size:14,strokeWidth:1.5}),handle:()=>{if(t){de(`ai`,`ai-features`);return}y(n)},additionalKeywords:a}})},{icon:(0,Z.jsx)(Zt,{size:14,strokeWidth:1.5}),label:`Present as`,handle:kr,dropdown:[{icon:w.mode===`present`?(0,Z.jsx)(T,{size:14,strokeWidth:1.5}):(0,Z.jsx)(Ae,{size:14,strokeWidth:1.5}),label:`Toggle app view`,hotkey:`global.hideCode`,handle:()=>{Ce()}},...ot.map((e,t)=>{let n=un(e);return{divider:t===0,label:dn(e),icon:(0,Z.jsx)(n,{size:14,strokeWidth:1.5}),rightElement:(0,Z.jsx)(`div`,{className:`w-8 flex justify-end`,children:xe===e&&(0,Z.jsx)(ze,{size:14})}),handle:()=>{Se(e),w.mode===`edit`&&Ce()}}})]},{icon:(0,Z.jsx)(Kt,{size:14,strokeWidth:1.5}),label:`Duplicate notebook`,hidden:!h||H(),handle:ce},{icon:(0,Z.jsx)(se,{size:14,strokeWidth:1.5}),label:`Copy code to clipboard`,hidden:!h,handle:async()=>{let e=await me();await mt(e.contents),ht({title:`Copied`,description:`Code copied to clipboard.`})}},{icon:(0,Z.jsx)(Ve,{size:14,strokeWidth:1.5}),label:`Enable all cells`,hidden:!ve||D,handle:async()=>{let e=b(),t=x(e),n=P.fromEntries(t.map(Wr));await he({configs:n});for(let e of t)L({cellId:e,config:{disabled:!1}})}},{divider:!0,icon:(0,Z.jsx)(Wt,{size:14,strokeWidth:1.5}),label:`Add setup cell`,handle:()=>{B({})}},{icon:(0,Z.jsx)(Ee,{size:14,strokeWidth:1.5}),label:`Add database connection`,additionalKeywords:e,handle:()=>{_((0,Z.jsx)(Nt,{onClose:v}))},dropdown:ge.length===0?void 0:[...ge.map(e=>({icon:(0,Z.jsx)(l,{size:14,strokeWidth:1.5}),label:`Add ${e.displayName}`,description:`Detected in your environment`,handle:()=>_e(e)})),{divider:!0,icon:(0,Z.jsx)(Ee,{size:14,strokeWidth:1.5}),label:`Browse all connections`,additionalKeywords:e,handle:()=>{_((0,Z.jsx)(Nt,{onClose:v}))}}]},{icon:(0,Z.jsx)($e,{size:14,strokeWidth:1.5}),label:`Add remote storage`,additionalKeywords:t,handle:()=>{_((0,Z.jsx)(Nt,{defaultTab:`storage`,onClose:v}))},dropdown:G.length===0?void 0:[...G.map(e=>({icon:(0,Z.jsx)(l,{size:14,strokeWidth:1.5}),label:`Add ${e.displayName}`,description:`Detected in your environment`,handle:()=>_e(e)})),{divider:!0,icon:(0,Z.jsx)($e,{size:14,strokeWidth:1.5}),label:`Browse all connections`,additionalKeywords:t,handle:()=>{_((0,Z.jsx)(Nt,{defaultTab:`storage`,onClose:v}))}}]},{icon:(0,Z.jsx)(en,{size:14,strokeWidth:1.5}),label:be,hidden:!ye||D,handle:()=>{R()}},{icon:(0,Z.jsx)($t,{size:14,strokeWidth:1.5}),label:`Restart kernel`,variant:`danger`,handle:ie,additionalKeywords:[`reset`,`reload`,`restart`]},{icon:(0,Z.jsx)(Gt,{size:14,strokeWidth:1.5}),label:`Re-run all cells`,redundant:!0,hotkey:`global.runAll`,handle:async()=>{ae()}},{icon:(0,Z.jsx)(ee,{size:14,strokeWidth:1.5}),label:`Clear all outputs`,redundant:!0,handle:()=>{z()}},{icon:(0,Z.jsx)(C,{size:14,strokeWidth:1.5}),label:`Show all code`,hotkey:`global.showAllCode`,handle:()=>O(!1,`code`),redundant:!0},{icon:(0,Z.jsx)(Ke,{size:14,strokeWidth:1.5}),label:`Hide all code`,hotkey:`global.hideAllCode`,handle:()=>O(!0,`code`),redundant:!0},{icon:(0,Z.jsx)(C,{size:14,strokeWidth:1.5}),label:`Show all markdown code`,hotkey:`global.showAllMarkdownCode`,handle:()=>O(!1,`markdown`),redundant:!0},{icon:(0,Z.jsx)(Ke,{size:14,strokeWidth:1.5}),label:`Hide all markdown code`,hotkey:`global.hideAllMarkdownCode`,handle:()=>O(!0,`markdown`),redundant:!0},{icon:(0,Z.jsx)(Ue,{size:14,strokeWidth:1.5}),label:`Expand all outputs`,hotkey:`global.expandAllOutputs`,hidden:w.mode!==`edit`,handle:()=>k(!0),redundant:!0},{icon:(0,Z.jsx)(He,{size:14,strokeWidth:1.5}),label:`Clamp all outputs`,hotkey:`global.clampAllOutputs`,hidden:w.mode!==`edit`,handle:()=>k(!1),redundant:!0},{icon:(0,Z.jsx)(Vt,{size:14,strokeWidth:1.5}),label:`Collapse all sections`,hotkey:`global.collapseAllSections`,handle:U,redundant:!0},{icon:(0,Z.jsx)(Bt,{size:14,strokeWidth:1.5}),label:`Expand all sections`,hotkey:`global.expandAllSections`,handle:W,redundant:!0},{divider:!0,icon:(0,Z.jsx)(Ut,{size:14,strokeWidth:1.5}),label:`Command palette`,hotkey:`global.commandPalette`,handle:()=>le(Ur)},{icon:(0,Z.jsx)(je,{size:14,strokeWidth:1.5}),label:`Keyboard shortcuts`,hotkey:`global.showHelp`,handle:()=>fe(Hr)},{icon:(0,Z.jsx)(ft,{size:14,strokeWidth:1.5}),label:`User settings`,handle:()=>ue(Vr),redundant:!0,additionalKeywords:[`preferences`,`options`,`configuration`]},{icon:(0,Z.jsx)(Jt,{size:14,strokeWidth:1.5}),label:`Report an issue`,additionalKeywords:[`feedback`,`bug`,`issue`,`report`,`diagnostics`],handle:()=>_((0,Z.jsx)(jt,{onClose:v}))},{icon:(0,Z.jsx)(qe,{size:14,strokeWidth:1.5}),label:`Resources`,handle:kr,dropdown:[{icon:(0,Z.jsx)(Te,{size:14,strokeWidth:1.5}),label:`Documentation`,handle:Br},{icon:(0,Z.jsx)(Ft,{className:`h-3.5 w-3.5`}),label:`GitHub`,handle:zr},{icon:(0,Z.jsx)(Xe,{size:14,strokeWidth:1.5}),label:`Discord Community`,handle:Rr},{icon:(0,Z.jsx)(Qe,{className:`h-3.5 w-3.5`}),label:`YouTube`,handle:Lr},{icon:(0,Z.jsx)(Oe,{size:14,strokeWidth:1.5}),label:`Changelog`,handle:Ir}]},{divider:!0,icon:(0,Z.jsx)(et,{size:14,strokeWidth:1.5}),label:`Open home`,hidden:!location.search.includes(`file`),handle:Fr},{icon:(0,Z.jsx)(It,{size:14,strokeWidth:1.5}),label:`New notebook`,hidden:!location.search.includes(`file`),handle:Pr}].filter(Nr).map(jr),n[2]=_e,n[3]=B,n[4]=F,n[5]=ye,n[6]=N,n[7]=z,n[8]=v,n[9]=U,n[10]=ce,n[11]=ge,n[12]=G,n[13]=W,n[14]=p,n[15]=h,n[16]=ve,n[17]=De,n[18]=D,n[19]=_,n[20]=de,n[21]=me,n[22]=ie,n[23]=ae,n[24]=he,n[25]=xe,n[26]=S,n[27]=O,n[28]=le,n[29]=pe,n[30]=fe,n[31]=Se,n[32]=k,n[33]=ue,n[34]=we,n[35]=q,n[36]=K,n[37]=y,n[38]=Ce,n[39]=R,n[40]=be,n[41]=L,n[42]=w.mode,n[43]=ke}else ke=n[43];return ke}function jr(e){return e.dropdown?{...e,dropdown:e.dropdown.filter(Mr)}:e}function Mr(e){return!e.hidden}function Nr(e){return!e.hidden}function Pr(){let e=B();window.open(e,`_blank`)}function Fr(){let e=document.baseURI.split(`?`)[0];window.open(e,`_blank`,`noopener`)}function Ir(){window.open(I.releasesPage,`_blank`)}function Lr(){window.open(I.youtube,`_blank`)}function Rr(){window.open(I.discordLink,`_blank`)}function zr(){window.open(I.githubPage,`_blank`)}function Br(){window.open(I.docsPage,`_blank`)}function Vr(e){return!e}function Hr(e){return!e}function Ur(e){return!e}function Wr(e){return[e,{disabled:!1}]}function Gr(e){return(0,Z.jsx)(`div`,{className:`w-8 flex justify-end`,children:e&&(0,Z.jsx)(ze,{size:14})})}export{sn as a,Jt as c,Ht as d,cn as i,Wt as l,Or as n,on as o,Er as r,en as s,Ar as t,Ut as u};
@@ -1 +1 @@
1
- import{f as e,t,u as n}from"./useEvent-BDjgaBtz.js";import{D as r,da as i,dt as a,h as o,ia as s,ri as c}from"./cells-SvbLY10y.js";import{t as l}from"./compiler-runtime-BrajqUja.js";import{g as u}from"./useEventListener-DPOTkksd.js";import{o as d}from"./dist-qhAY4L2r.js";import{r as f}from"./requests-BIFR-h4M.js";var p=l(),m=e(!1);function h(){let e=(0,p.c)(2),n=v(),r;return e[0]===n?r=e[1]:(r=()=>n(i(o())),e[0]=n,e[1]=r),t(r)}function g(e){let n=(0,p.c)(3),r=v(),i;return n[0]!==e||n[1]!==r?(i=()=>{e!==void 0&&r([e])},n[0]=e,n[1]=r,n[2]=i):i=n[2],t(i)}function _(){let e=(0,p.c)(2),n=v(),r;return e[0]===n?r=e[1]:(r=()=>n(s(o())),e[0]=n,e[1]=r),t(r)}function v(){let e=(0,p.c)(4),{prepareForRun:i}=r(),{sendRun:a}=f(),s=n(m),c;return e[0]!==i||e[1]!==a||e[2]!==s?(c=async e=>{if(e.length===0)return;let t=o();return s(!0),y({cellIds:e,sendRun:a,prepareForRun:i,notebook:t})},e[0]=i,e[1]=a,e[2]=s,e[3]=c):c=e[3],t(c)}async function y({cellIds:e,sendRun:t,prepareForRun:n,notebook:r}){if(e.length===0)return;let{cellHandles:i,cellData:o}=r,s=[];for(let t of e){let e=i[t]?.current?.editorView,r;e?(c(e)!==`markdown`&&d(e),r=a(e)):r=o[t]?.code||``,s.push(r),n({cellId:t})}await t({cellIds:e,codes:s}).catch(e=>{u.error(e)})}export{v as a,g as i,y as n,h as o,_ as r,m as t};
1
+ import{f as e,t,u as n}from"./useEvent-BDjgaBtz.js";import{D as r,aa as i,dt as a,fa as o,h as s,ri as c}from"./cells-B9RIIuYa.js";import{t as l}from"./compiler-runtime-BrajqUja.js";import{g as u}from"./useEventListener-DPOTkksd.js";import{o as d}from"./dist-qhAY4L2r.js";import{r as f}from"./requests-BIFR-h4M.js";var p=l(),m=e(!1);function h(){let e=(0,p.c)(2),n=v(),r;return e[0]===n?r=e[1]:(r=()=>n(o(s())),e[0]=n,e[1]=r),t(r)}function g(e){let n=(0,p.c)(3),r=v(),i;return n[0]!==e||n[1]!==r?(i=()=>{e!==void 0&&r([e])},n[0]=e,n[1]=r,n[2]=i):i=n[2],t(i)}function _(){let e=(0,p.c)(2),n=v(),r;return e[0]===n?r=e[1]:(r=()=>n(i(s())),e[0]=n,e[1]=r),t(r)}function v(){let e=(0,p.c)(4),{prepareForRun:i}=r(),{sendRun:a}=f(),o=n(m),c;return e[0]!==i||e[1]!==a||e[2]!==o?(c=async e=>{if(e.length===0)return;let t=s();return o(!0),y({cellIds:e,sendRun:a,prepareForRun:i,notebook:t})},e[0]=i,e[1]=a,e[2]=o,e[3]=c):c=e[3],t(c)}async function y({cellIds:e,sendRun:t,prepareForRun:n,notebook:r}){if(e.length===0)return;let{cellHandles:i,cellData:o}=r,s=[];for(let t of e){let e=i[t]?.current?.editorView,r;e?(c(e)!==`markdown`&&d(e),r=a(e)):r=o[t]?.code||``,s.push(r),n({cellId:t})}await t({cellIds:e,codes:s}).catch(e=>{u.error(e)})}export{v as a,g as i,y as n,h as o,_ as r,m as t};
@@ -1 +1 @@
1
- import{t as e}from"./useEvent-BDjgaBtz.js";import{D as t,dt as n,f as r}from"./cells-SvbLY10y.js";import{t as i}from"./compiler-runtime-BrajqUja.js";import{t as a}from"./jsx-runtime-B74pBk57.js";import{r as o}from"./useDeleteCell-CjewKeSr.js";import{t as s}from"./use-toast-Wu434mLr.js";var c=i(),l=a();function u(){let i=(0,c.c)(3),{splitCell:a,undoSplitCell:u}=t(),d;return i[0]!==a||i[1]!==u?(d=e=>{let t=r(e.cellId);if(!t)return;let i=n(t);a(e);let{dismiss:c}=s({title:`Cell split`,action:(0,l.jsx)(o,{"data-testid":`undo-split-button`,size:`sm`,variant:`outline`,onClick:()=>{u({...e,snapshot:i}),d()},children:`Undo`})}),d=c},i[0]=a,i[1]=u,i[2]=d):d=i[2],e(d)}export{u as t};
1
+ import{t as e}from"./useEvent-BDjgaBtz.js";import{D as t,dt as n,f as r}from"./cells-B9RIIuYa.js";import{t as i}from"./compiler-runtime-BrajqUja.js";import{t as a}from"./jsx-runtime-B74pBk57.js";import{r as o}from"./useDeleteCell-DYRsSrAa.js";import{t as s}from"./use-toast-Wu434mLr.js";var c=i(),l=a();function u(){let i=(0,c.c)(3),{splitCell:a,undoSplitCell:u}=t(),d;return i[0]!==a||i[1]!==u?(d=e=>{let t=r(e.cellId);if(!t)return;let i=n(t);a(e);let{dismiss:c}=s({title:`Cell split`,action:(0,l.jsx)(o,{"data-testid":`undo-split-button`,size:`sm`,variant:`outline`,onClick:()=>{u({...e,snapshot:i}),d()},children:`Undo`})}),d=c},i[0]=a,i[1]=u,i[2]=d):d=i[2],e(d)}export{u as t};
@@ -1,2 +1,2 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-DVplv7_D.js";import{t as n}from"./compiler-runtime-BrajqUja.js";import{n as r,t as i}from"./cn-ldLVeaqm.js";import{t as a}from"./jsx-runtime-B74pBk57.js";import{C as o}from"./fullscreen-D-ldV-19.js";import{a as s,c,i as l,l as u,n as d,r as f,s as p,t as m}from"./alert-dialog-8YiYLrfr.js";import{c as h,d as g,i as _,n as ee,s as te,t as ne,u as v}from"./select-CgWQvW1F.js";import{r as y,t as b}from"./button-Cl7haVNh.js";import{t as x}from"./createLucideIcon-DfJ2oMlA.js";import{C as S,Jt as C,Lt as w,N as T,Qt as re,Xt as ie,Yt as ae,Zt as oe,r as E,tn as se,u as D,x as O}from"./input-DLA5Dhn3.js";import{t as k}from"./use-toast-Wu434mLr.js";import{r as ce,t as A}from"./requests-BIFR-h4M.js";import{t as j}from"./Deferred-CrTnjj37.js";import{t as M}from"./uuid-k9DpjH68.js";import{n as N}from"./useDebounce-DwTQ_1Pu.js";var P=x(`key`,[[`path`,{d:`m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4`,key:`g0fldk`}],[`path`,{d:`m21 2-9.6 9.6`,key:`1j0ho8`}],[`circle`,{cx:`7.5`,cy:`15.5`,r:`5.5`,key:`yqb3hr`}]]),F=e(t(),1),I=n(),L=a(),R={create(){return M()}},z=class{requests=new Map;operation;makeRequest;opts;constructor(e,t,n={}){this.operation=e,this.makeRequest=t,this.opts=n}async request(e){if(this.opts.resolveExistingRequests){let e=this.opts.resolveExistingRequests();for(let t of this.requests.values())t.resolve(e);this.requests.clear()}let t=R.create(),n=new j;return this.requests.set(t,n),await this.makeRequest(t,e).catch(e=>{n.reject(e),this.requests.delete(t)}),n.promise}resolve(e,t){let n=this.requests.get(e);n!==void 0&&(n.resolve(t),this.requests.delete(e))}reject(e,t){let n=this.requests.get(e);n!==void 0&&(n.reject(t),this.requests.delete(e))}},B=F.forwardRef((e,t)=>{let n=(0,I.c)(16),r,a,o;n[0]===e?(r=n[1],a=n[2],o=n[3]):({className:a,bottomAdornment:r,...o}=e,n[0]=e,n[1]=r,n[2]=a,n[3]=o);let s;n[4]===a?s=n[5]:(s=i(`shadow-xs-solid hover:shadow-sm-solid disabled:shadow-xs-solid focus-visible:shadow-md-solid`,`flex w-full mb-1 rounded-sm border border-input bg-background px-3 py-2 text-sm font-code ring-offset-background placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-accent disabled:cursor-not-allowed disabled:opacity-50 min-h-6`,a),n[4]=a,n[5]=s);let c;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(c=y.stopPropagation(),n[6]=c):c=n[6];let l;n[7]!==o||n[8]!==t||n[9]!==s?(l=(0,L.jsx)(`textarea`,{className:s,onClick:c,ref:t,...o}),n[7]=o,n[8]=t,n[9]=s,n[10]=l):l=n[10];let u;n[11]===r?u=n[12]:(u=r&&(0,L.jsx)(`div`,{className:`absolute right-0 bottom-1 flex items-center pr-[6px] pointer-events-none text-muted-foreground h-6`,children:r}),n[11]=r,n[12]=u);let d;return n[13]!==l||n[14]!==u?(d=(0,L.jsxs)(`div`,{className:`relative`,children:[l,u]}),n[13]=l,n[14]=u,n[15]=d):d=n[15],d});B.displayName=`Textarea`;var V=F.forwardRef((e,t)=>{let n=(0,I.c)(16),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,onValueChange:i,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]!==i||n[5]!==a.delay||n[6]!==a.value?(o={initialValue:a.value,delay:a.delay,onChange:i},n[4]=i,n[5]=a.delay,n[6]=a.value,n[7]=o):o=n[7];let{value:s,onChange:c}=N(o),l;n[8]===c?l=n[9]:(l=e=>c(e.target.value),n[8]=c,n[9]=l);let u;return n[10]!==r||n[11]!==a||n[12]!==t||n[13]!==l||n[14]!==s?(u=(0,L.jsx)(B,{ref:t,className:r,...a,onChange:l,value:s}),n[10]=r,n[11]=a,n[12]=t,n[13]=l,n[14]=s,n[15]=u):u=n[15],u});V.displayName=`DebouncedTextarea`;var H=F.forwardRef((e,t)=>{let n=(0,I.c)(23),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,onValueChange:i,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let[s,c]=F.useState(a.value),l;n[4]!==s||n[5]!==i||n[6]!==a.value?(l={prop:a.value,defaultProp:s,onChange:i},n[4]=s,n[5]=i,n[6]=a.value,n[7]=l):l=n[7];let[u,d]=o(l),f,p;n[8]===u?(f=n[9],p=n[10]):(f=()=>{c(u||``)},p=[u],n[8]=u,n[9]=f,n[10]=p),F.useEffect(f,p);let m;n[11]===Symbol.for(`react.memo_cache_sentinel`)?(m=e=>c(e.target.value),n[11]=m):m=n[11];let h,g;n[12]!==s||n[13]!==d?(h=()=>d(s),g=e=>{e.ctrlKey&&e.key===`Enter`&&(e.preventDefault(),d(s))},n[12]=s,n[13]=d,n[14]=h,n[15]=g):(h=n[14],g=n[15]);let _;return n[16]!==r||n[17]!==s||n[18]!==a||n[19]!==t||n[20]!==h||n[21]!==g?(_=(0,L.jsx)(B,{ref:t,className:r,...a,value:s,onChange:m,onBlur:h,onKeyDown:g}),n[16]=r,n[17]=s,n[18]=a,n[19]=t,n[20]=h,n[21]=g,n[22]=_):_=n[22],_});H.displayName=`OnBlurredTextarea`;var U=F.createContext({modal:null,setModal:()=>{}}),W=e=>{let t=(0,I.c)(6),[n,r]=F.useState(null),i;t[0]===n?i=t[1]:(i={modal:n,setModal:r},t[0]=n,t[1]=i);let a;return t[2]!==n||t[3]!==e.children||t[4]!==i?(a=(0,L.jsxs)(U,{value:i,children:[n,e.children]}),t[2]=n,t[3]=e.children,t[4]=i,t[5]=a):a=t[5],a};function G(){let e=F.use(U);if(e===void 0)throw Error(`useModal must be used within a ModalProvider`);let t=()=>{e.setModal(null)};return{openModal:n=>{e.setModal((0,L.jsx)(C,{open:!0,onOpenChange:e=>{e||t()},children:n}))},openAlert:n=>{e.setModal((0,L.jsx)(m,{open:!0,onOpenChange:e=>{e||t()},children:(0,L.jsxs)(l,{children:[n,(0,L.jsx)(p,{children:(0,L.jsx)(d,{autoFocus:!0,onClick:t,children:`Ok`})})]})}))},openPrompt:n=>{e.setModal((0,L.jsx)(m,{open:!0,onOpenChange:e=>{e||t()},children:(0,L.jsx)(l,{children:(0,L.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),n.onConfirm(e.currentTarget.prompt.value),t()},children:[(0,L.jsxs)(c,{children:[(0,L.jsx)(u,{children:n.title}),(0,L.jsx)(s,{children:n.description}),(0,L.jsx)(E,{spellCheck:n.spellCheck,defaultValue:n.defaultValue,className:`my-4 h-8`,name:`prompt`,required:!0,autoFocus:!0,autoComplete:`off`})]}),(0,L.jsxs)(p,{children:[(0,L.jsx)(f,{onClick:t,children:`Cancel`}),(0,L.jsx)(b,{type:`submit`,children:n.confirmText??`Ok`})]})]})})}))},openConfirm:n=>{e.setModal((0,L.jsx)(m,{open:!0,onOpenChange:e=>{e||t()},children:(0,L.jsxs)(l,{children:[(0,L.jsxs)(c,{children:[(0,L.jsx)(u,{className:n.variant===`destructive`?`text-destructive`:``,children:n.title}),(0,L.jsx)(s,{children:n.description})]}),(0,L.jsxs)(p,{children:[(0,L.jsx)(f,{onClick:t,children:`Cancel`}),n.confirmAction]})]})}))},closeModal:t}}var K=new z(`secrets-result`,async(e,t)=>{await A().listSecretKeys({requestId:e,...t})}),le=r([`text-sm font-medium leading-none`,`data-disabled:cursor-not-allowed data-disabled:opacity-70`,`group-data-invalid:text-destructive`]),ue=e=>{let t=(0,I.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(le(),n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,L.jsx)(T,{className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o},q=e=>{let t=(0,I.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`text-sm text-muted-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,L.jsx)(S,{className:a,...r,slot:`description`}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o},de=e=>{let t=(0,I.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`text-sm font-medium text-destructive`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,L.jsx)(O,{className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o},J=r(``,{variants:{variant:{default:[`relative flex w-full items-center overflow-hidden rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background`,v(),`data-focus-within:outline-hidden data-focus-within:ring-2 data-focus-within:ring-ring data-focus-within:ring-offset-2`,`data-disabled:opacity-50`],ghost:``}},defaultVariants:{variant:`default`}}),fe=e=>{let t=(0,I.c)(12),n,r,a;t[0]===e?(n=t[1],r=t[2],a=t[3]):({className:n,variant:a,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=a);let o;t[4]===a?o=t[5]:(o=e=>i(J({variant:a}),e),t[4]=a,t[5]=o);let s;t[6]!==n||t[7]!==o?(s=w(n,o),t[6]=n,t[7]=o,t[8]=s):s=t[8];let c;return t[9]!==r||t[10]!==s?(c=(0,L.jsx)(D,{className:s,...r}),t[9]=r,t[10]=s,t[11]=c):c=t[11],c},Y=e=>{let t=(0,I.c)(3),{href:n,children:r}=e,i;return t[0]!==r||t[1]!==n?(i=(0,L.jsx)(`a`,{href:n,target:`_blank`,rel:`noreferrer`,className:`text-link hover:underline`,children:r}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i},X=`path:`;function Z(e){return typeof e==`string`&&e.startsWith(X)}function pe(e){return`${X}${e}`}function me(e){return e.slice(5)}var Q=`env:`;function he(e){return e}function ge(e){return typeof e==`string`&&e.startsWith(Q)}function _e(e){return`${Q}${e}`}function ve(e){return e.replace(Q,``)}function ye(e,t){return Z(e)?{kind:`path`,path:me(e)}:{kind:`json`,expr:ge(e)?`json.loads(${t(e)})`:`json.loads(r"""${e}""")`}}function be(e){let t=e.trimStart();return t.startsWith(`{`)||t.startsWith(`[`)}function $(e){let t=e.trim();if(!t)return``;try{return JSON.stringify(JSON.parse(t))}catch{return e.replaceAll(/\r?\n/g,``)}}function xe(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`"`,`\\"`).replaceAll(`
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-DVplv7_D.js";import{t as n}from"./compiler-runtime-BrajqUja.js";import{n as r,t as i}from"./cn-ldLVeaqm.js";import{t as a}from"./jsx-runtime-B74pBk57.js";import{C as o}from"./fullscreen-D-ldV-19.js";import{a as s,c,i as l,l as u,n as d,r as f,s as p,t as m}from"./alert-dialog-8YiYLrfr.js";import{c as h,d as g,i as _,n as ee,s as te,t as ne,u as v}from"./select-CgWQvW1F.js";import{r as y,t as b}from"./button-Cl7haVNh.js";import{t as x}from"./createLucideIcon-DfJ2oMlA.js";import{C as S,Jt as C,Lt as w,N as T,Qt as re,Xt as ie,Yt as ae,Zt as oe,r as E,tn as se,u as D,x as O}from"./input-BQBy_25D.js";import{t as k}from"./use-toast-Wu434mLr.js";import{r as ce,t as A}from"./requests-BIFR-h4M.js";import{t as j}from"./Deferred-CrTnjj37.js";import{t as M}from"./uuid-k9DpjH68.js";import{n as N}from"./useDebounce-DwTQ_1Pu.js";var P=x(`key`,[[`path`,{d:`m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4`,key:`g0fldk`}],[`path`,{d:`m21 2-9.6 9.6`,key:`1j0ho8`}],[`circle`,{cx:`7.5`,cy:`15.5`,r:`5.5`,key:`yqb3hr`}]]),F=e(t(),1),I=n(),L=a(),R={create(){return M()}},z=class{requests=new Map;operation;makeRequest;opts;constructor(e,t,n={}){this.operation=e,this.makeRequest=t,this.opts=n}async request(e){if(this.opts.resolveExistingRequests){let e=this.opts.resolveExistingRequests();for(let t of this.requests.values())t.resolve(e);this.requests.clear()}let t=R.create(),n=new j;return this.requests.set(t,n),await this.makeRequest(t,e).catch(e=>{n.reject(e),this.requests.delete(t)}),n.promise}resolve(e,t){let n=this.requests.get(e);n!==void 0&&(n.resolve(t),this.requests.delete(e))}reject(e,t){let n=this.requests.get(e);n!==void 0&&(n.reject(t),this.requests.delete(e))}},B=F.forwardRef((e,t)=>{let n=(0,I.c)(16),r,a,o;n[0]===e?(r=n[1],a=n[2],o=n[3]):({className:a,bottomAdornment:r,...o}=e,n[0]=e,n[1]=r,n[2]=a,n[3]=o);let s;n[4]===a?s=n[5]:(s=i(`shadow-xs-solid hover:shadow-sm-solid disabled:shadow-xs-solid focus-visible:shadow-md-solid`,`flex w-full mb-1 rounded-sm border border-input bg-background px-3 py-2 text-sm font-code ring-offset-background placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-accent disabled:cursor-not-allowed disabled:opacity-50 min-h-6`,a),n[4]=a,n[5]=s);let c;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(c=y.stopPropagation(),n[6]=c):c=n[6];let l;n[7]!==o||n[8]!==t||n[9]!==s?(l=(0,L.jsx)(`textarea`,{className:s,onClick:c,ref:t,...o}),n[7]=o,n[8]=t,n[9]=s,n[10]=l):l=n[10];let u;n[11]===r?u=n[12]:(u=r&&(0,L.jsx)(`div`,{className:`absolute right-0 bottom-1 flex items-center pr-[6px] pointer-events-none text-muted-foreground h-6`,children:r}),n[11]=r,n[12]=u);let d;return n[13]!==l||n[14]!==u?(d=(0,L.jsxs)(`div`,{className:`relative`,children:[l,u]}),n[13]=l,n[14]=u,n[15]=d):d=n[15],d});B.displayName=`Textarea`;var V=F.forwardRef((e,t)=>{let n=(0,I.c)(16),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,onValueChange:i,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]!==i||n[5]!==a.delay||n[6]!==a.value?(o={initialValue:a.value,delay:a.delay,onChange:i},n[4]=i,n[5]=a.delay,n[6]=a.value,n[7]=o):o=n[7];let{value:s,onChange:c}=N(o),l;n[8]===c?l=n[9]:(l=e=>c(e.target.value),n[8]=c,n[9]=l);let u;return n[10]!==r||n[11]!==a||n[12]!==t||n[13]!==l||n[14]!==s?(u=(0,L.jsx)(B,{ref:t,className:r,...a,onChange:l,value:s}),n[10]=r,n[11]=a,n[12]=t,n[13]=l,n[14]=s,n[15]=u):u=n[15],u});V.displayName=`DebouncedTextarea`;var H=F.forwardRef((e,t)=>{let n=(0,I.c)(23),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,onValueChange:i,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let[s,c]=F.useState(a.value),l;n[4]!==s||n[5]!==i||n[6]!==a.value?(l={prop:a.value,defaultProp:s,onChange:i},n[4]=s,n[5]=i,n[6]=a.value,n[7]=l):l=n[7];let[u,d]=o(l),f,p;n[8]===u?(f=n[9],p=n[10]):(f=()=>{c(u||``)},p=[u],n[8]=u,n[9]=f,n[10]=p),F.useEffect(f,p);let m;n[11]===Symbol.for(`react.memo_cache_sentinel`)?(m=e=>c(e.target.value),n[11]=m):m=n[11];let h,g;n[12]!==s||n[13]!==d?(h=()=>d(s),g=e=>{e.ctrlKey&&e.key===`Enter`&&(e.preventDefault(),d(s))},n[12]=s,n[13]=d,n[14]=h,n[15]=g):(h=n[14],g=n[15]);let _;return n[16]!==r||n[17]!==s||n[18]!==a||n[19]!==t||n[20]!==h||n[21]!==g?(_=(0,L.jsx)(B,{ref:t,className:r,...a,value:s,onChange:m,onBlur:h,onKeyDown:g}),n[16]=r,n[17]=s,n[18]=a,n[19]=t,n[20]=h,n[21]=g,n[22]=_):_=n[22],_});H.displayName=`OnBlurredTextarea`;var U=F.createContext({modal:null,setModal:()=>{}}),W=e=>{let t=(0,I.c)(6),[n,r]=F.useState(null),i;t[0]===n?i=t[1]:(i={modal:n,setModal:r},t[0]=n,t[1]=i);let a;return t[2]!==n||t[3]!==e.children||t[4]!==i?(a=(0,L.jsxs)(U,{value:i,children:[n,e.children]}),t[2]=n,t[3]=e.children,t[4]=i,t[5]=a):a=t[5],a};function G(){let e=F.use(U);if(e===void 0)throw Error(`useModal must be used within a ModalProvider`);let t=()=>{e.setModal(null)};return{openModal:n=>{e.setModal((0,L.jsx)(C,{open:!0,onOpenChange:e=>{e||t()},children:n}))},openAlert:n=>{e.setModal((0,L.jsx)(m,{open:!0,onOpenChange:e=>{e||t()},children:(0,L.jsxs)(l,{children:[n,(0,L.jsx)(p,{children:(0,L.jsx)(d,{autoFocus:!0,onClick:t,children:`Ok`})})]})}))},openPrompt:n=>{e.setModal((0,L.jsx)(m,{open:!0,onOpenChange:e=>{e||t()},children:(0,L.jsx)(l,{children:(0,L.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),n.onConfirm(e.currentTarget.prompt.value),t()},children:[(0,L.jsxs)(c,{children:[(0,L.jsx)(u,{children:n.title}),(0,L.jsx)(s,{children:n.description}),(0,L.jsx)(E,{spellCheck:n.spellCheck,defaultValue:n.defaultValue,className:`my-4 h-8`,name:`prompt`,required:!0,autoFocus:!0,autoComplete:`off`})]}),(0,L.jsxs)(p,{children:[(0,L.jsx)(f,{onClick:t,children:`Cancel`}),(0,L.jsx)(b,{type:`submit`,children:n.confirmText??`Ok`})]})]})})}))},openConfirm:n=>{e.setModal((0,L.jsx)(m,{open:!0,onOpenChange:e=>{e||t()},children:(0,L.jsxs)(l,{children:[(0,L.jsxs)(c,{children:[(0,L.jsx)(u,{className:n.variant===`destructive`?`text-destructive`:``,children:n.title}),(0,L.jsx)(s,{children:n.description})]}),(0,L.jsxs)(p,{children:[(0,L.jsx)(f,{onClick:t,children:`Cancel`}),n.confirmAction]})]})}))},closeModal:t}}var K=new z(`secrets-result`,async(e,t)=>{await A().listSecretKeys({requestId:e,...t})}),le=r([`text-sm font-medium leading-none`,`data-disabled:cursor-not-allowed data-disabled:opacity-70`,`group-data-invalid:text-destructive`]),ue=e=>{let t=(0,I.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(le(),n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,L.jsx)(T,{className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o},q=e=>{let t=(0,I.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`text-sm text-muted-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,L.jsx)(S,{className:a,...r,slot:`description`}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o},de=e=>{let t=(0,I.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let a;t[3]===n?a=t[4]:(a=i(`text-sm font-medium text-destructive`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,L.jsx)(O,{className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o},J=r(``,{variants:{variant:{default:[`relative flex w-full items-center overflow-hidden rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background`,v(),`data-focus-within:outline-hidden data-focus-within:ring-2 data-focus-within:ring-ring data-focus-within:ring-offset-2`,`data-disabled:opacity-50`],ghost:``}},defaultVariants:{variant:`default`}}),fe=e=>{let t=(0,I.c)(12),n,r,a;t[0]===e?(n=t[1],r=t[2],a=t[3]):({className:n,variant:a,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=a);let o;t[4]===a?o=t[5]:(o=e=>i(J({variant:a}),e),t[4]=a,t[5]=o);let s;t[6]!==n||t[7]!==o?(s=w(n,o),t[6]=n,t[7]=o,t[8]=s):s=t[8];let c;return t[9]!==r||t[10]!==s?(c=(0,L.jsx)(D,{className:s,...r}),t[9]=r,t[10]=s,t[11]=c):c=t[11],c},Y=e=>{let t=(0,I.c)(3),{href:n,children:r}=e,i;return t[0]!==r||t[1]!==n?(i=(0,L.jsx)(`a`,{href:n,target:`_blank`,rel:`noreferrer`,className:`text-link hover:underline`,children:r}),t[0]=r,t[1]=n,t[2]=i):i=t[2],i},X=`path:`;function Z(e){return typeof e==`string`&&e.startsWith(X)}function pe(e){return`${X}${e}`}function me(e){return e.slice(5)}var Q=`env:`;function he(e){return e}function ge(e){return typeof e==`string`&&e.startsWith(Q)}function _e(e){return`${Q}${e}`}function ve(e){return e.replace(Q,``)}function ye(e,t){return Z(e)?{kind:`path`,path:me(e)}:{kind:`json`,expr:ge(e)?`json.loads(${t(e)})`:`json.loads(r"""${e}""")`}}function be(e){let t=e.trimStart();return t.startsWith(`{`)||t.startsWith(`[`)}function $(e){let t=e.trim();if(!t)return``;try{return JSON.stringify(JSON.parse(t))}catch{return e.replaceAll(/\r?\n/g,``)}}function xe(e){return e.replaceAll(`\\`,`\\\\`).replaceAll(`"`,`\\"`).replaceAll(`
2
2
  `,`\\n`).replaceAll(`\r`,`\\r`).replaceAll(` `,`\\t`)}function Se(e){return e.toSorted((e,t)=>e.provider===`env`?1:t.provider===`env`?-1:0)}var Ce=e=>{let t=(0,I.c)(47),{providerNames:n,onClose:r,onSuccess:i,initialValue:a,multiline:o}=e,s=a===void 0?``:a,c=o!==void 0&&o,{writeSecret:l}=ce(),[u,d]=F.useState(``),f;t[0]!==s||t[1]!==c?(f=()=>c?$(s):s,t[0]=s,t[1]=c,t[2]=f):f=t[2];let[p,m]=F.useState(f),[_,v]=F.useState(n[0]),y;t[3]!==u||t[4]!==_||t[5]!==c||t[6]!==i||t[7]!==p||t[8]!==l?(y=async e=>{if(e.preventDefault(),!_){k({title:`Error`,description:`No location selected for the secret.`,variant:`danger`});return}let t=c?$(p):p;if(!u||!t||!_){k({title:`Error`,description:`Please fill in all fields.`,variant:`danger`});return}try{await l({key:u,value:t,provider:`dotenv`,name:_}),k({title:`Secret created`,description:`The secret has been created successfully.`}),i(u)}catch{k({title:`Error`,description:`Failed to create secret. Please try again.`,variant:`danger`})}},t[3]=u,t[4]=_,t[5]=c,t[6]=i,t[7]=p,t[8]=l,t[9]=y):y=t[9];let x=y,S;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,L.jsxs)(re,{children:[(0,L.jsx)(se,{children:`Add Secret`}),(0,L.jsx)(ie,{children:`Add a new secret to your environment variables.`})]}),t[10]=S):S=t[10];let C;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,L.jsx)(g,{htmlFor:`key`,children:`Key`}),t[11]=C):C=t[11];let w;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(w=e=>{d(we(e.target.value))},t[12]=w):w=t[12];let T;t[13]===u?T=t[14]:(T=(0,L.jsxs)(`div`,{className:`grid gap-2`,children:[C,(0,L.jsx)(E,{id:`key`,value:u,onChange:w,placeholder:`MY_SECRET_KEY`,required:!0})]}),t[13]=u,t[14]=T);let D;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,L.jsx)(g,{htmlFor:`value`,children:`Value`}),t[15]=D):D=t[15];let O;t[16]!==c||t[17]!==p?(O=c?(0,L.jsx)(B,{id:`value`,value:p,onChange:e=>m($(e.target.value)),required:!0,className:`my-0 font-code text-xs break-all`,rows:8,autoFocus:!0,autoComplete:`off`}):(0,L.jsx)(E,{id:`value`,type:`password`,value:p,onChange:e=>m(e.target.value),required:!0,autoComplete:`off`}),t[16]=c,t[17]=p,t[18]=O):O=t[18];let A;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(A=Te()&&(0,L.jsx)(q,{children:`Note: You are sending this key over http.`}),t[19]=A):A=t[19];let j;t[20]===O?j=t[21]:(j=(0,L.jsxs)(`div`,{className:`grid gap-2`,children:[D,O,A]}),t[20]=O,t[21]=j);let M;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,L.jsx)(g,{htmlFor:`location`,children:`Location`}),t[22]=M):M=t[22];let N;t[23]===n.length?N=t[24]:(N=n.length===0&&(0,L.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No dotenv locations configured.`}),t[23]=n.length,t[24]=N);let P;t[25]!==_||t[26]!==n?(P=n.length>0&&(0,L.jsxs)(ne,{value:_,onValueChange:e=>v(e),children:[(0,L.jsx)(te,{children:(0,L.jsx)(h,{placeholder:`Select a provider`})}),(0,L.jsx)(ee,{children:n.map(Ee)})]}),t[25]=_,t[26]=n,t[27]=P):P=t[27];let R;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,L.jsxs)(q,{children:[`You can configure the location by setting the`,` `,(0,L.jsx)(Y,{href:`https://links.marimo.app/dotenv`,children:`dotenv configuration`}),`.`]}),t[28]=R):R=t[28];let z;t[29]!==N||t[30]!==P?(z=(0,L.jsxs)(`div`,{className:`grid gap-2`,children:[M,N,P,R]}),t[29]=N,t[30]=P,t[31]=z):z=t[31];let V;t[32]!==j||t[33]!==z||t[34]!==T?(V=(0,L.jsxs)(`div`,{className:`grid gap-4 py-4`,children:[T,j,z]}),t[32]=j,t[33]=z,t[34]=T,t[35]=V):V=t[35];let H;t[36]===r?H=t[37]:(H=(0,L.jsx)(b,{type:`button`,variant:`outline`,onClick:r,children:`Cancel`}),t[36]=r,t[37]=H);let U=!u||!p||!_,W;t[38]===U?W=t[39]:(W=(0,L.jsx)(b,{type:`submit`,disabled:U,children:`Add Secret`}),t[38]=U,t[39]=W);let G;t[40]!==H||t[41]!==W?(G=(0,L.jsxs)(oe,{children:[H,W]}),t[40]=H,t[41]=W,t[42]=G):G=t[42];let K;return t[43]!==x||t[44]!==V||t[45]!==G?(K=(0,L.jsx)(ae,{children:(0,L.jsxs)(`form`,{onSubmit:x,children:[S,V,G]})}),t[43]=x,t[44]=V,t[45]=G,t[46]=K):K=t[46],K};function we(e){return e.replaceAll(/\W/g,`_`)}function Te(){return window.location.href.startsWith(`http://`)}function Ee(e){return(0,L.jsx)(_,{value:e,children:e},e)}export{B as C,H as S,P as T,J as _,ye as a,G as b,_e as c,pe as d,me as f,ue as g,fe as h,be as i,ve as l,de as m,Se as n,he as o,Y as p,xe as r,ge as s,Ce as t,Z as u,K as v,z as w,V as x,W as y};
package/dist/index.html CHANGED
@@ -66,7 +66,7 @@
66
66
  <marimo-server-token data-token="{{ server_token }}" hidden></marimo-server-token>
67
67
  <!-- /TODO -->
68
68
  <title>{{ title }}</title>
69
- <script type="module" crossorigin src="./assets/index-CoxbqhGH.js"></script>
69
+ <script type="module" crossorigin src="./assets/index-D1hW_v1v.js"></script>
70
70
  <link rel="modulepreload" crossorigin href="./assets/rolldown-runtime-B0Z9INg1.js">
71
71
  <link rel="modulepreload" crossorigin href="./assets/react-DVplv7_D.js">
72
72
  <link rel="modulepreload" crossorigin href="./assets/compiler-runtime-BrajqUja.js">
@@ -110,13 +110,13 @@
110
110
  <link rel="modulepreload" crossorigin href="./assets/alert-dialog-8YiYLrfr.js">
111
111
  <link rel="modulepreload" crossorigin href="./assets/arrays-0R2reF2y.js">
112
112
  <link rel="modulepreload" crossorigin href="./assets/once-6KNTRW0u.js">
113
- <link rel="modulepreload" crossorigin href="./assets/numbers-DJK15_4S.js">
113
+ <link rel="modulepreload" crossorigin href="./assets/numbers-BB-lSqeY.js">
114
114
  <link rel="modulepreload" crossorigin href="./assets/useDebounce-DwTQ_1Pu.js">
115
- <link rel="modulepreload" crossorigin href="./assets/input-DLA5Dhn3.js">
115
+ <link rel="modulepreload" crossorigin href="./assets/input-BQBy_25D.js">
116
116
  <link rel="modulepreload" crossorigin href="./assets/use-toast-Wu434mLr.js">
117
117
  <link rel="modulepreload" crossorigin href="./assets/requests-BIFR-h4M.js">
118
118
  <link rel="modulepreload" crossorigin href="./assets/uuid-k9DpjH68.js">
119
- <link rel="modulepreload" crossorigin href="./assets/write-secret-modal-CBi2vNK_.js">
119
+ <link rel="modulepreload" crossorigin href="./assets/write-secret-modal-BujVAO67.js">
120
120
  <link rel="modulepreload" crossorigin href="./assets/plus-C5silF6g.js">
121
121
  <link rel="modulepreload" crossorigin href="./assets/trash-2-DcgaW8fn.js">
122
122
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-uBIymjUX.js">
@@ -139,7 +139,7 @@
139
139
  <link rel="modulepreload" crossorigin href="./assets/useTheme-C2dnh2vM.js">
140
140
  <link rel="modulepreload" crossorigin href="./assets/useAsyncData-qvoPYHtx.js">
141
141
  <link rel="modulepreload" crossorigin href="./assets/purify.es--06brOip.js">
142
- <link rel="modulepreload" crossorigin href="./assets/cells-SvbLY10y.js">
142
+ <link rel="modulepreload" crossorigin href="./assets/cells-B9RIIuYa.js">
143
143
  <link rel="modulepreload" crossorigin href="./assets/get-DjNf4SIX.js">
144
144
  <link rel="modulepreload" crossorigin href="./assets/_baseSet-Bpdo9AvU.js">
145
145
  <link rel="modulepreload" crossorigin href="./assets/errors-CNsgAw6m.js">
@@ -150,44 +150,44 @@
150
150
  <link rel="modulepreload" crossorigin href="./assets/copy-74EjuZso.js">
151
151
  <link rel="modulepreload" crossorigin href="./assets/micromark-factory-space-D9Dr-k4J.js">
152
152
  <link rel="modulepreload" crossorigin href="./assets/chunk-YOKDWASO-BIpRENEC.js">
153
- <link rel="modulepreload" crossorigin href="./assets/markdown-renderer-DUgV7_fm.js">
153
+ <link rel="modulepreload" crossorigin href="./assets/markdown-renderer-DszNRkaL.js">
154
154
  <link rel="modulepreload" crossorigin href="./assets/copy-Djr5m5ac.js">
155
155
  <link rel="modulepreload" crossorigin href="./assets/copy-icon-Craaocbu.js">
156
- <link rel="modulepreload" crossorigin href="./assets/useRunCells-BupCZpzk.js">
157
- <link rel="modulepreload" crossorigin href="./assets/RenderHTML-COGZsXQV.js">
158
- <link rel="modulepreload" crossorigin href="./assets/blob-CszMu60N.js">
156
+ <link rel="modulepreload" crossorigin href="./assets/useRunCells-Bl702L84.js">
157
+ <link rel="modulepreload" crossorigin href="./assets/RenderHTML-CJOIsfDF.js">
158
+ <link rel="modulepreload" crossorigin href="./assets/blob-B25C4ORK.js">
159
159
  <link rel="modulepreload" crossorigin href="./assets/kbd-pdKBv96t.js">
160
- <link rel="modulepreload" crossorigin href="./assets/useInstallPackage-BfNKN33w.js">
160
+ <link rel="modulepreload" crossorigin href="./assets/useInstallPackage-Q9agSKO7.js">
161
161
  <link rel="modulepreload" crossorigin href="./assets/share-BZW3tzEX.js">
162
162
  <link rel="modulepreload" crossorigin href="./assets/events-CbeVJ6OD.js">
163
- <link rel="modulepreload" crossorigin href="./assets/state-DvU2AiFx.js">
163
+ <link rel="modulepreload" crossorigin href="./assets/state-2U7LSUNv.js">
164
164
  <link rel="modulepreload" crossorigin href="./assets/coerce-DWjFeXOY.js">
165
165
  <link rel="modulepreload" crossorigin href="./assets/_hasPath-BmRQipI0.js">
166
166
  <link rel="modulepreload" crossorigin href="./assets/hasIn-yw4sIeJR.js">
167
167
  <link rel="modulepreload" crossorigin href="./assets/pick-DKIID_Mo.js">
168
- <link rel="modulepreload" crossorigin href="./assets/ErrorBoundary-Ce-Ujlwj.js">
168
+ <link rel="modulepreload" crossorigin href="./assets/ErrorBoundary-DIoi62xQ.js">
169
169
  <link rel="modulepreload" crossorigin href="./assets/chevron-right-eAtVhbNZ.js">
170
170
  <link rel="modulepreload" crossorigin href="./assets/dropdown-menu-Cwi17BoX.js">
171
171
  <link rel="modulepreload" crossorigin href="./assets/html-to-image-BW0fcUS8.js">
172
- <link rel="modulepreload" crossorigin href="./assets/download-Bx52VRE4.js">
173
- <link rel="modulepreload" crossorigin href="./assets/switch-D2gdC_ep.js">
172
+ <link rel="modulepreload" crossorigin href="./assets/download-BRqw2JzE.js">
173
+ <link rel="modulepreload" crossorigin href="./assets/switch-DLzvDOLo.js">
174
174
  <link rel="modulepreload" crossorigin href="./assets/tabs-BLczoY3k.js">
175
175
  <link rel="modulepreload" crossorigin href="./assets/table-DG7Ap4H4.js">
176
176
  <link rel="modulepreload" crossorigin href="./assets/eye-off-CxVozGAC.js">
177
177
  <link rel="modulepreload" crossorigin href="./assets/refresh-cw-Qw1f8Jhy.js">
178
- <link rel="modulepreload" crossorigin href="./assets/tree-actions-Cph8FVzh.js">
178
+ <link rel="modulepreload" crossorigin href="./assets/tree-actions-CIBdpNC-.js">
179
179
  <link rel="modulepreload" crossorigin href="./assets/ellipsis-63DyBLHQ.js">
180
180
  <link rel="modulepreload" crossorigin href="./assets/external-link-UrX9KO36.js">
181
181
  <link rel="modulepreload" crossorigin href="./assets/spinner-DyNE-o8o.js">
182
182
  <link rel="modulepreload" crossorigin href="./assets/message-circle-C3rKm8_a.js">
183
183
  <link rel="modulepreload" crossorigin href="./assets/hat-glasses-C8RhSVii.js">
184
184
  <link rel="modulepreload" crossorigin href="./assets/package-GSoSTiIK.js">
185
- <link rel="modulepreload" crossorigin href="./assets/datasource-C8KSVfSD.js">
186
- <link rel="modulepreload" crossorigin href="./assets/error-entries-11OuHzUF.js">
185
+ <link rel="modulepreload" crossorigin href="./assets/datasource-BsklC6tp.js">
186
+ <link rel="modulepreload" crossorigin href="./assets/error-entries-CuIzi5P7.js">
187
187
  <link rel="modulepreload" crossorigin href="./assets/alert-DTaqCu_d.js">
188
- <link rel="modulepreload" crossorigin href="./assets/state-DrraMmqz.js">
189
- <link rel="modulepreload" crossorigin href="./assets/cell-link-Cj0gGaMV.js">
190
- <link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-Bh6o9zle.js">
188
+ <link rel="modulepreload" crossorigin href="./assets/state-B_SxQGvw.js">
189
+ <link rel="modulepreload" crossorigin href="./assets/cell-link-DBP_BcJY.js">
190
+ <link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-DFCWAXPj.js">
191
191
  <link rel="modulepreload" crossorigin href="./assets/useDateFormatter-DA-62E-Y.js">
192
192
  <link rel="modulepreload" crossorigin href="./assets/en-US-Buu61juQ.js">
193
193
  <link rel="modulepreload" crossorigin href="./assets/isValid-q_Ad80ug.js">
@@ -207,7 +207,7 @@
207
207
  <link rel="modulepreload" crossorigin href="./assets/table-vrvqpuKJ.js">
208
208
  <link rel="modulepreload" crossorigin href="./assets/react-resizable-panels.browser.esm-Dbe0MrFr.js">
209
209
  <link rel="modulepreload" crossorigin href="./assets/useStateForKey-CGMJQT8x.js">
210
- <link rel="modulepreload" crossorigin href="./assets/JsonOutput-CfEBzaqW.js">
210
+ <link rel="modulepreload" crossorigin href="./assets/JsonOutput-f0zvWw7g.js">
211
211
  <link rel="modulepreload" crossorigin href="./assets/chart-no-axes-column-C4_v6fQW.js">
212
212
  <link rel="modulepreload" crossorigin href="./assets/square-function-_W_Lo0P4.js">
213
213
  <link rel="modulepreload" crossorigin href="./assets/spec-DFtwOyXT.js">
@@ -221,11 +221,11 @@
221
221
  <link rel="modulepreload" crossorigin href="./assets/file-icons-CdJgUy-I.js">
222
222
  <link rel="modulepreload" crossorigin href="./assets/globe-UdPdIbF7.js">
223
223
  <link rel="modulepreload" crossorigin href="./assets/esm-CI_o7NhW.js">
224
- <link rel="modulepreload" crossorigin href="./assets/useAddCell-VPkB72pn.js">
225
- <link rel="modulepreload" crossorigin href="./assets/readonly-python-code-Dgw6trlk.js">
224
+ <link rel="modulepreload" crossorigin href="./assets/useAddCell-B6my967m.js">
225
+ <link rel="modulepreload" crossorigin href="./assets/readonly-python-code-QqiDzhYb.js">
226
226
  <link rel="modulepreload" crossorigin href="./assets/data-grid-types-DgHVN_Zz.js">
227
227
  <link rel="modulepreload" crossorigin href="./assets/glide-utils-DsTeJ7WA.js">
228
- <link rel="modulepreload" crossorigin href="./assets/column-preview-CrzaJKk8.js">
228
+ <link rel="modulepreload" crossorigin href="./assets/column-preview-j0kenrsq.js">
229
229
  <link rel="modulepreload" crossorigin href="./assets/square-BPmgQFnh.js">
230
230
  <link rel="modulepreload" crossorigin href="./assets/triangle-alert-DmIqR8sY.js">
231
231
  <link rel="modulepreload" crossorigin href="./assets/prop-types-Djf4O40e.js">
@@ -238,7 +238,7 @@
238
238
  <link rel="modulepreload" crossorigin href="./assets/useDeepCompareMemoize-B2DVK2De.js">
239
239
  <link rel="modulepreload" crossorigin href="./assets/useDelayElapsed-BlsDT4TV.js">
240
240
  <link rel="modulepreload" crossorigin href="./assets/pathUtils-DPmlLd-r.js">
241
- <link rel="modulepreload" crossorigin href="./assets/floating-outline-8yyZ-MOJ.js">
241
+ <link rel="modulepreload" crossorigin href="./assets/floating-outline-CSwtWNm9.js">
242
242
  <link rel="stylesheet" crossorigin href="./assets/cells-0PFKL3SH.css">
243
243
  <link rel="stylesheet" crossorigin href="./assets/markdown-renderer-DjIHoF9Z.css">
244
244
  <link rel="stylesheet" crossorigin href="./assets/JsonOutput-B0GmlMnR.css">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/frontend",
3
- "version": "0.25.3-dev134",
3
+ "version": "0.25.3-dev136",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -79,7 +79,9 @@ describe("DatasetColumnPreview fullyQualifiedTableName", () => {
79
79
  it("qualifies with database and schema for flat engines", () => {
80
80
  const client = renderPreview(ctx({ database: "db", schema: "public" }));
81
81
  expect(client.previewDatasetColumn).toHaveBeenCalledWith(
82
- expect.objectContaining({ fullyQualifiedTableName: "db.public.users" }),
82
+ expect.objectContaining({
83
+ fullyQualifiedTableName: '"db"."public"."users"',
84
+ }),
83
85
  );
84
86
  });
85
87
 
@@ -87,7 +89,7 @@ describe("DatasetColumnPreview fullyQualifiedTableName", () => {
87
89
  // Regression: previously produced "db..users".
88
90
  const client = renderPreview(ctx({ database: "db", schema: "" }));
89
91
  expect(client.previewDatasetColumn).toHaveBeenCalledWith(
90
- expect.objectContaining({ fullyQualifiedTableName: "db.users" }),
92
+ expect.objectContaining({ fullyQualifiedTableName: '"db"."users"' }),
91
93
  );
92
94
  });
93
95
 
@@ -98,7 +100,37 @@ describe("DatasetColumnPreview fullyQualifiedTableName", () => {
98
100
  );
99
101
  expect(client.previewDatasetColumn).toHaveBeenCalledWith(
100
102
  expect.objectContaining({
101
- fullyQualifiedTableName: "top.nested.deep.users",
103
+ fullyQualifiedTableName: '"top"."nested"."deep"."users"',
104
+ }),
105
+ );
106
+ });
107
+
108
+ it("quotes a literal dot as one schema segment", () => {
109
+ const client = renderPreview(
110
+ ctx({
111
+ database: "memory",
112
+ schema: "finance.reports",
113
+ schemaPath: ["finance.reports"],
114
+ }),
115
+ );
116
+ expect(client.previewDatasetColumn).toHaveBeenCalledWith(
117
+ expect.objectContaining({
118
+ fullyQualifiedTableName: '"memory"."finance.reports"."users"',
119
+ }),
120
+ );
121
+ });
122
+
123
+ it("escapes quotes inside schema identifiers", () => {
124
+ const client = renderPreview(
125
+ ctx({
126
+ database: "memory",
127
+ schema: 'fi"nance',
128
+ schemaPath: ['fi"nance', "reports"],
129
+ }),
130
+ );
131
+ expect(client.previewDatasetColumn).toHaveBeenCalledWith(
132
+ expect.objectContaining({
133
+ fullyQualifiedTableName: '"memory"."fi""nance"."reports"."users"',
102
134
  }),
103
135
  );
104
136
  });
@@ -0,0 +1,181 @@
1
+ /* Copyright 2026 Marimo. All rights reserved. */
2
+
3
+ import {
4
+ act,
5
+ fireEvent,
6
+ render,
7
+ screen,
8
+ waitFor,
9
+ } from "@testing-library/react";
10
+ import { createStore, Provider } from "jotai";
11
+ import { beforeAll, describe, expect, it, vi } from "vitest";
12
+ import { MockRequestClient } from "@/__mocks__/requests";
13
+ import { Command, CommandList } from "@/components/ui/command";
14
+ import { TooltipProvider } from "@/components/ui/tooltip";
15
+ import {
16
+ dataSourceConnectionsAtom,
17
+ type SQLTableContext,
18
+ } from "@/core/datasets/data-source-connections";
19
+ import { DUCKDB_ENGINE } from "@/core/datasets/engines";
20
+ import { datasetsAtom, exportedForTesting } from "@/core/datasets/state";
21
+ import type { DataTable } from "@/core/kernel/messages";
22
+ import { requestClientAtom } from "@/core/network/requests";
23
+ import {
24
+ DataSources,
25
+ hideEmptyDatasourcesAtom,
26
+ TableList,
27
+ } from "../datasources";
28
+
29
+ beforeAll(() => {
30
+ HTMLElement.prototype.scrollIntoView = vi.fn();
31
+ });
32
+
33
+ const table: DataTable = {
34
+ name: "reports",
35
+ columns: [
36
+ {
37
+ name: "amount",
38
+ type: "integer",
39
+ external_type: "INTEGER",
40
+ sample_values: [],
41
+ },
42
+ ],
43
+ source: "memory",
44
+ source_type: "duckdb",
45
+ type: "table",
46
+ engine: null,
47
+ indexes: null,
48
+ num_columns: 1,
49
+ num_rows: null,
50
+ variable_name: null,
51
+ primary_keys: null,
52
+ };
53
+
54
+ describe("Datasource column preview responses", () => {
55
+ it.each([
56
+ { path: ["main"], qualifiedName: '"memory"."main"."reports"' },
57
+ {
58
+ path: ["finance", "reports"],
59
+ qualifiedName: '"memory"."finance"."reports"."reports"',
60
+ },
61
+ {
62
+ path: ["finance.reports"],
63
+ qualifiedName: '"memory"."finance.reports"."reports"',
64
+ },
65
+ {
66
+ path: ['fi"nance', "reports"],
67
+ qualifiedName: '"memory"."fi""nance"."reports"."reports"',
68
+ },
69
+ ])(
70
+ "renders the returned preview for $path",
71
+ async ({ path, qualifiedName }) => {
72
+ const store = createStore();
73
+ const client = MockRequestClient.create();
74
+ store.set(requestClientAtom, client);
75
+ const context: SQLTableContext = {
76
+ engine: DUCKDB_ENGINE,
77
+ database: "memory",
78
+ schema: path.at(-1) ?? "",
79
+ schemaPath: path,
80
+ dialect: "duckdb",
81
+ };
82
+ render(
83
+ <Provider store={store}>
84
+ <TooltipProvider>
85
+ <Command shouldFilter={false}>
86
+ <CommandList>
87
+ <TableList tables={[table]} sqlTableContext={context} />
88
+ </CommandList>
89
+ </Command>
90
+ </TooltipProvider>
91
+ </Provider>,
92
+ );
93
+
94
+ fireEvent.click(await screen.findByText("reports"));
95
+ fireEvent.click(await screen.findByText("amount"));
96
+ await waitFor(() => {
97
+ expect(client.previewDatasetColumn).toHaveBeenCalledWith(
98
+ expect.objectContaining({ fullyQualifiedTableName: qualifiedName }),
99
+ );
100
+ });
101
+ expect(screen.getByText("Loading...")).toBeInTheDocument();
102
+
103
+ const actions = exportedForTesting.createActions((action) => {
104
+ store.set(datasetsAtom, (state) =>
105
+ exportedForTesting.reducer(state, action),
106
+ );
107
+ });
108
+ act(() => {
109
+ actions.addColumnPreview({
110
+ table_name: qualifiedName,
111
+ column_name: "amount",
112
+ stats: { min: 42 },
113
+ error: null,
114
+ missing_packages: null,
115
+ chart_spec: null,
116
+ chart_code: null,
117
+ });
118
+ });
119
+
120
+ expect(await screen.findByText("42")).toBeInTheDocument();
121
+ expect(screen.queryByText("Loading...")).not.toBeInTheDocument();
122
+ },
123
+ );
124
+ });
125
+
126
+ it("activates a schema and a table with the same path independently using the keyboard", async () => {
127
+ const store = createStore();
128
+ store.set(requestClientAtom, MockRequestClient.create());
129
+ store.set(hideEmptyDatasourcesAtom, false);
130
+ store.set(dataSourceConnectionsAtom, {
131
+ latestEngineSelected: DUCKDB_ENGINE,
132
+ connectionsMap: new Map([
133
+ [
134
+ DUCKDB_ENGINE,
135
+ {
136
+ name: DUCKDB_ENGINE,
137
+ dialect: "duckdb",
138
+ source: "duckdb",
139
+ display_name: "DuckDB (In-Memory)",
140
+ databases: [
141
+ {
142
+ name: "memory",
143
+ dialect: "duckdb",
144
+ schemas: [
145
+ {
146
+ name: "finance",
147
+ tables: [table],
148
+ child_schemas: [{ name: "reports", tables: [] }],
149
+ },
150
+ ],
151
+ },
152
+ ],
153
+ },
154
+ ],
155
+ ]),
156
+ });
157
+ render(
158
+ <Provider store={store}>
159
+ <TooltipProvider>
160
+ <DataSources />
161
+ </TooltipProvider>
162
+ </Provider>,
163
+ );
164
+ fireEvent.click(await screen.findByText("memory"));
165
+ fireEvent.click(await screen.findByText("finance"));
166
+ await waitFor(() => {
167
+ expect(screen.getAllByText("reports")).toHaveLength(2);
168
+ });
169
+
170
+ const input = screen.getByRole("combobox");
171
+ input.focus();
172
+ fireEvent.keyDown(input, { key: "ArrowDown" });
173
+ fireEvent.keyDown(input, { key: "Enter" });
174
+ expect(await screen.findByText("No tables found")).toBeInTheDocument();
175
+ expect(screen.queryByText("amount")).not.toBeInTheDocument();
176
+
177
+ fireEvent.keyDown(input, { key: "ArrowDown" });
178
+ fireEvent.keyDown(input, { key: "Enter" });
179
+ expect(await screen.findByText("amount")).toBeInTheDocument();
180
+ expect(screen.getByText("No tables found")).toBeInTheDocument();
181
+ });