@marimo-team/frontend 0.24.1-dev79 → 0.24.1-dev80

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 (87) hide show
  1. package/dist/assets/{CellStatus-Bfn_Ysig.js → CellStatus-DMQfH9wD.js} +1 -1
  2. package/dist/assets/{JsonOutput-DFd7q8lz.js → JsonOutput-B7sDhGzR.js} +1 -1
  3. package/dist/assets/{MarimoErrorOutput-DfRv7_jc.js → MarimoErrorOutput-C0vk393J.js} +1 -1
  4. package/dist/assets/{RenderHTML-Di-OdQjY.js → RenderHTML-BnMaGpV8.js} +1 -1
  5. package/dist/assets/{RunButton-r21rSvYz.js → RunButton-nocIODpS.js} +1 -1
  6. package/dist/assets/{add-cell-with-ai-Cc3EENeX.js → add-cell-with-ai-B_TSaqjJ.js} +1 -1
  7. package/dist/assets/{add-connection-dialog-Bce8iA2c.js → add-connection-dialog-DOuojDa-.js} +1 -1
  8. package/dist/assets/{agent-panel-COvCNnaD.js → agent-panel-CkKCGjDp.js} +1 -1
  9. package/dist/assets/{ai-model-dropdown-D7nJTvh4.js → ai-model-dropdown-CfWMIzjl.js} +1 -1
  10. package/dist/assets/{app-config-button-C0IsSBiP.js → app-config-button-ii-Hj5CZ.js} +1 -1
  11. package/dist/assets/{blob-CbiWlEJN.js → blob-CYM8xQsK.js} +1 -1
  12. package/dist/assets/{cell-editor-DnyPiOtX.js → cell-editor-BVb6iKbw.js} +1 -1
  13. package/dist/assets/{cell-link-Z8JrraTv.js → cell-link-DCOAqVkE.js} +1 -1
  14. package/dist/assets/{cells-CD9Jbpoa.js → cells-C6lBv8kg.js} +51 -51
  15. package/dist/assets/{chat-display-Dxad67GU.js → chat-display-B6GBZDq8.js} +1 -1
  16. package/dist/assets/{chat-panel-b6eYwY8N.js → chat-panel-wWuBXhXw.js} +1 -1
  17. package/dist/assets/{chat-ui-DWgQGHiC.js → chat-ui-CQ7A3qdB.js} +1 -1
  18. package/dist/assets/click-outside-container-C5RF3h4V.js +1 -0
  19. package/dist/assets/{column-preview-_GkpGxG-.js → column-preview-CatwdUda.js} +1 -1
  20. package/dist/assets/{command-palette-BeHx267T.js → command-palette-DcPM_WiO.js} +1 -1
  21. package/dist/assets/{common-Bb2s_Imb.js → common-B4aMxphz.js} +1 -1
  22. package/dist/assets/{components-D5125bx8.js → components-D8-ffQsq.js} +1 -1
  23. package/dist/assets/data-grid-overlay-editor-CFYeXDX3.js +1 -0
  24. package/dist/assets/data-grid-types-DgHVN_Zz.js +1 -0
  25. package/dist/assets/{datasource-DTtEQWz7.js → datasource-D-_jFtGs.js} +1 -1
  26. package/dist/assets/{dependency-graph-panel-DiMc1DOt.js → dependency-graph-panel-BQli6zxh.js} +1 -1
  27. package/dist/assets/{documentation-panel-ChEa8OHk.js → documentation-panel-_QE3nPOg.js} +1 -1
  28. package/dist/assets/{download-BKMVrvLm.js → download-Cqjqrhzo.js} +1 -1
  29. package/dist/assets/{edit-page-C3Uo5Msq.js → edit-page-RuyN164g.js} +4 -4
  30. package/dist/assets/{error-entries-DI864MPn.js → error-entries-c5sIySli.js} +1 -1
  31. package/dist/assets/{error-panel-COOOtEg7.js → error-panel-CXKrWK_u.js} +1 -1
  32. package/dist/assets/{file-explorer-panel-DeF49Ng1.js → file-explorer-panel-BZiAb4x_.js} +1 -1
  33. package/dist/assets/{file-icons-CmmWEUGv.js → file-icons-uUY_hGYm.js} +1 -1
  34. package/dist/assets/{file-name-input-9sqInamo.js → file-name-input-DWUKg4LS.js} +1 -1
  35. package/dist/assets/{floating-outline-BxMKEygY.js → floating-outline-DhGtHg6T.js} +1 -1
  36. package/dist/assets/glide-data-editor-DZ2Minh8.js +131 -0
  37. package/dist/assets/glide-utils-CR1sWLZU.js +2 -0
  38. package/dist/assets/{home-page-G9DBo7dA.js → home-page-Bka_7H02.js} +1 -1
  39. package/dist/assets/index-ChbtcNW2.js +29 -0
  40. package/dist/assets/{layout-RSFs10mJ.js → layout-Uv1ZP5XB.js} +3 -3
  41. package/dist/assets/{logs-panel-DaLUKPBX.js → logs-panel-ragZa1sf.js} +1 -1
  42. package/dist/assets/{markdown-renderer-Cj57nlKH.js → markdown-renderer-B-uA_6mP.js} +1 -1
  43. package/dist/assets/{useNonce-BTM6-ANi.js → marked.esm-B_3iMIUq.js} +10 -10
  44. package/dist/assets/{name-cell-input-D0M2lddE.js → name-cell-input-gC1flbyT.js} +1 -1
  45. package/dist/assets/{outline-panel-UDArUDGw.js → outline-panel-D7H7bhOh.js} +1 -1
  46. package/dist/assets/{packages-panel-B8AaXFcI.js → packages-panel-BZnsUm4S.js} +1 -1
  47. package/dist/assets/{panel-accordion-state-COnGLerF.js → panel-accordion-state-BLU7OiMD.js} +1 -1
  48. package/dist/assets/{panels-DecWMR6G.js → panels-B3Y6fue9.js} +1 -1
  49. package/dist/assets/{process-output-CUf8H__q.js → process-output-DQQ8T5gv.js} +1 -1
  50. package/dist/assets/{readonly-code-display-Bof9MzZO.js → readonly-code-display-Bc0VX9i6.js} +1 -1
  51. package/dist/assets/{readonly-python-code-GMl_IocT.js → readonly-python-code-D2HXwAfT.js} +1 -1
  52. package/dist/assets/{reveal-component-yDciCkP9.js → reveal-component-BN1C8zFu.js} +1 -1
  53. package/dist/assets/{run-page-CCk94ccj.js → run-page-ByVvsH9G.js} +1 -1
  54. package/dist/assets/{scratchpad-panel-EL1m3Huh.js → scratchpad-panel-BJHlMBZV.js} +1 -1
  55. package/dist/assets/{session-panel-DKjUcjvg.js → session-panel-CdCKWAOf.js} +1 -1
  56. package/dist/assets/{skeleton-D71npu63.js → skeleton-DirOIQrj.js} +1 -1
  57. package/dist/assets/{snippets-panel-njDHc9qT.js → snippets-panel-2jq36DdG.js} +1 -1
  58. package/dist/assets/{state-CwrzGizs.js → state-C9O-2hQL.js} +1 -1
  59. package/dist/assets/{state-mneM4Ao8.js → state-DyxPdcEa.js} +1 -1
  60. package/dist/assets/{tracing-CGZCxvWG.js → tracing-91_akEkv.js} +1 -1
  61. package/dist/assets/{tracing-panel-4lmoUwoQ.js → tracing-panel-BvE81RYx.js} +2 -2
  62. package/dist/assets/{tree-actions-Bjyy0vFK.js → tree-actions-CGkbUSfG.js} +1 -1
  63. package/dist/assets/{useAddCell-h4OWLK5y.js → useAddCell-DqvY2ulx.js} +1 -1
  64. package/dist/assets/{useCellActionButton-BvuYvLCr.js → useCellActionButton-cv6xOsnc.js} +1 -1
  65. package/dist/assets/{useDeleteCell-Buwee6vZ.js → useDeleteCell-DB-bhhnO.js} +1 -1
  66. package/dist/assets/{useDependencyPanelTab-CLR1fyXm.js → useDependencyPanelTab-BDnVzNV-.js} +1 -1
  67. package/dist/assets/{useNotebookActions-C0Uw9roU.js → useNotebookActions-Dxp4gTEa.js} +1 -1
  68. package/dist/assets/{useRunCells-C6416Qeo.js → useRunCells-GCTS1YFv.js} +1 -1
  69. package/dist/assets/{useSplitCell-Ip3d7gP0.js → useSplitCell-DhT9BA2_.js} +1 -1
  70. package/dist/index.html +22 -21
  71. package/package.json +1 -1
  72. package/src/plugins/impl/DataEditorPlugin.tsx +38 -70
  73. package/src/plugins/impl/__tests__/DataEditorPlugin.test.ts +152 -1
  74. package/src/plugins/impl/data-editor/__tests__/data-utils.test.ts +73 -78
  75. package/src/plugins/impl/data-editor/__tests__/editor-state.test.ts +113 -0
  76. package/src/plugins/impl/data-editor/__tests__/glide-data-editor.test.tsx +49 -13
  77. package/src/plugins/impl/data-editor/__tests__/glide-utils.test.ts +44 -64
  78. package/src/plugins/impl/data-editor/data-utils.ts +76 -53
  79. package/src/plugins/impl/data-editor/editor-state.ts +108 -0
  80. package/src/plugins/impl/data-editor/glide-data-editor.tsx +40 -223
  81. package/src/plugins/impl/data-editor/glide-utils.ts +71 -31
  82. package/src/plugins/impl/data-editor/types.ts +30 -16
  83. package/dist/assets/click-outside-container-n76g8dsY.js +0 -1
  84. package/dist/assets/data-grid-overlay-editor-DCmC8-tb.js +0 -1
  85. package/dist/assets/glide-data-editor-CzalkCph.js +0 -132
  86. package/dist/assets/index-BmNpxjzV.js +0 -29
  87. package/dist/assets/types-BflGgckY.js +0 -1
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t}from"./useEvent-xfs0Sn4r.js";import{t as n}from"./react-CBDbhulC.js";import{$t as r,An as i,Mn as a,Wn as o,an as s,en as c,fn as l,hn as u,in as d,mn as f,on as p,rn as m,tn as h}from"./cells-CD9Jbpoa.js";import{t as g}from"./compiler-runtime-CYIjoINj.js";import{C as _,O as v,k as y}from"./utils-CUZQNAWJ.js";import{E as b,d as x,f as S,i as C,n as w,u as T}from"./ai-model-dropdown-D7nJTvh4.js";import{N as E}from"./config-DaNyNpZL.js";import{t as D}from"./jsx-runtime-B74pBk57.js";import{o as O}from"./alert-dialog-BVi_GyOB.js";import{l as k}from"./select-czJLm6jf.js";import{t as A}from"./tooltip-D7dq6bnc.js";import{t as j}from"./button-Btj6GXNy.js";import{s as M}from"./arrays-BqUx5USx.js";import{r as N}from"./requests-C6_IaFh7.js";import{t as P}from"./createLucideIcon-B7HeEoG2.js";import{r as F}from"./useNumberFormatter-DHJ9s6Vk.js";import{M as I,T as L,b as R,j as z,p as ee,w as B}from"./write-secret-modal-lNU_7c2x.js";import{r as V}from"./input-Daz6sk8l.js";import{t as H}from"./settings-C-cYas75.js";import{t as te}from"./use-toast-DpWHUGuF.js";import{t as U}from"./VisuallyHidden-SChAyKIQ.js";import{n as W}from"./useDebounce-Dulm61-t.js";import{t as G}from"./kbd-Cwh96ZBE.js";import{t as K}from"./Inputs-E85rt2lh.js";var ne=P(`power-off`,[[`path`,{d:`M18.36 6.64A9 9 0 0 1 20.77 15`,key:`dxknvb`}],[`path`,{d:`M6.16 6.16a9 9 0 1 0 12.68 12.68`,key:`1x7qb5`}],[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),q=g(),J=D(),Y=e=>{let t=(0,q.c)(15),{description:n,disabled:r,tooltip:i}=e,a=r!==void 0&&r,o=i===void 0?`Shutdown`:i,{openConfirm:s,closeModal:c}=R(),{sendShutdown:l}=N(),u;t[0]===l?u=t[1]:(u=()=>{l(),setTimeout(X,200)},t[0]=l,t[1]=u);let d=u;if(E())return null;let f=a?`disabled`:`red`,p;t[2]!==c||t[3]!==n||t[4]!==d||t[5]!==s?(p=e=>{e.stopPropagation(),s({title:`Shutdown`,description:n,variant:`destructive`,confirmAction:(0,J.jsx)(O,{onClick:()=>{d(),c()},"aria-label":`Confirm Shutdown`,children:`Shutdown`})})},t[2]=c,t[3]=n,t[4]=d,t[5]=s,t[6]=p):p=t[6];let m;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,J.jsx)(F,{strokeWidth:1}),t[7]=m):m=t[7];let h;t[8]!==a||t[9]!==f||t[10]!==p?(h=(0,J.jsx)(K,{"aria-label":`Shutdown`,"data-testid":`shutdown-button`,shape:`circle`,size:`small`,color:f,className:`h-[27px] w-[27px]`,disabled:a,onClick:p,children:m}),t[8]=a,t[9]=f,t[10]=p,t[11]=h):h=t[11];let g;return t[12]!==h||t[13]!==o?(g=(0,J.jsx)(A,{content:o,children:h}),t[12]=h,t[13]=o,t[14]=g):g=t[14],g};function X(){window.close()}var Z=e(n(),1),re=100,ie=()=>{let e=(0,q.c)(37),[t,n]=_(),{saveAppConfig:l}=N(),u=(0,Z.useId)(),f=(0,Z.useId)(),g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=i(v),e[0]=g):g=e[0];let y;e[1]===t?y=e[2]:(y={resolver:g,defaultValues:t},e[1]=t,e[2]=y);let b=a(y),C;e[3]!==l||e[4]!==n?(C=async e=>{await l({config:e}).then(()=>{n(e)}).catch(()=>{n(e)})},e[3]=l,e[4]=n,e[5]=C):C=e[5];let w=C,T;e[6]===w?T=e[7]:(T=e=>{w(e)},e[6]=w,e[7]=T);let E=W(T,re),D;e[8]===t.width?D=e[9]:(D=[t.width],e[8]=t.width,e[9]=D),(0,Z.useEffect)(ae,D);let O;e[10]!==E||e[11]!==b?(O=b.handleSubmit(E),e[10]=E,e[11]=b,e[12]=O):O=e[12];let k;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,J.jsxs)(`div`,{children:[(0,J.jsx)(S,{children:`Notebook Settings`}),(0,J.jsx)(x,{children:`Configure how your notebook or application looks and behaves.`})]}),e[13]=k):k=e[13];let A;e[14]===b.control?A=e[15]:(A=(0,J.jsxs)(Q,{title:`Display`,children:[(0,J.jsx)(m,{control:b.control,name:`width`,render:se}),(0,J.jsx)(m,{control:b.control,name:`app_title`,render:$})]}),e[14]=b.control,e[15]=A);let j;e[16]===b.control?j=e[17]:(j=(0,J.jsxs)(Q,{title:`Custom Files`,children:[(0,J.jsx)(m,{control:b.control,name:`css_file`,render:ce}),(0,J.jsx)(m,{control:b.control,name:`html_head_file`,render:le})]}),e[16]=b.control,e[17]=j);let P;e[18]===b.control?P=e[19]:(P=(0,J.jsx)(Q,{title:`Data`,children:(0,J.jsx)(m,{control:b.control,name:`sql_output`,render:de})}),e[18]=b.control,e[19]=P);let F;e[20]!==u||e[21]!==f?(F=e=>{let{field:t}=e;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,J.jsxs)(d,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(c,{children:(0,J.jsxs)(`div`,{className:`flex gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,J.jsx)(o,{id:u,"data-testid":`html-checkbox`,checked:t.value.includes(`html`),onCheckedChange:()=>{t.onChange(M(t.value,`html`))}}),(0,J.jsx)(s,{htmlFor:u,children:`HTML`})]}),(0,J.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,J.jsx)(o,{id:f,"data-testid":`ipynb-checkbox`,checked:t.value.includes(`ipynb`),onCheckedChange:()=>{t.onChange(M(t.value,`ipynb`))}}),(0,J.jsx)(s,{htmlFor:f,children:`IPYNB`})]})]})}),(0,J.jsx)(p,{})]}),(0,J.jsxs)(h,{children:[`When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named`,` `,(0,J.jsx)(G,{className:`inline`,children:`__marimo__`}),` next to your notebook file.`]})]})},e[20]=u,e[21]=f,e[22]=F):F=e[22];let I;e[23]!==b.control||e[24]!==F?(I=(0,J.jsx)(Q,{title:`Exporting outputs`,children:(0,J.jsx)(m,{control:b.control,name:`auto_download`,render:F})}),e[23]=b.control,e[24]=F,e[25]=I):I=e[25];let L;e[26]!==I||e[27]!==A||e[28]!==j||e[29]!==P?(L=(0,J.jsxs)(`div`,{className:`grid grid-cols-2 gap-x-8 gap-y-4`,children:[A,j,P,I]}),e[26]=I,e[27]=A,e[28]=j,e[29]=P,e[30]=L):L=e[30];let R;e[31]!==L||e[32]!==O?(R=(0,J.jsxs)(`form`,{onChange:O,className:`flex flex-col gap-6`,children:[k,L]}),e[31]=L,e[32]=O,e[33]=R):R=e[33];let z;return e[34]!==b||e[35]!==R?(z=(0,J.jsx)(r,{...b,children:R}),e[34]=b,e[35]=R,e[36]=z):z=e[36],z},Q=e=>{let t=(0,q.c)(5),{title:n,children:r}=e,i;t[0]===n?i=t[1]:(i=(0,J.jsx)(`h3`,{className:`text-base font-semibold mb-1`,children:n}),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i?(a=(0,J.jsxs)(`div`,{className:`flex flex-col gap-y-2`,children:[i,r]}),t[2]=r,t[3]=i,t[4]=a):a=t[4],a};function ae(){window.dispatchEvent(new Event(`resize`))}function oe(e){return(0,J.jsx)(`option`,{value:e,children:e},e)}function se(e){let{field:t}=e;return(0,J.jsxs)(d,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(s,{children:`Width`}),(0,J.jsx)(c,{children:(0,J.jsx)(k,{"data-testid":`app-width-select`,onChange:e=>t.onChange(e.target.value),value:t.value,disabled:t.disabled,className:`inline-flex mr-2`,children:b().map(oe)})}),(0,J.jsx)(p,{})]})}function $(e){let{field:t}=e;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,J.jsxs)(d,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(s,{children:`App title`}),(0,J.jsx)(c,{children:(0,J.jsx)(V,{...t,value:t.value??``,onChange:e=>{t.onChange(e.target.value),y.safeParse(e.target.value).success&&(document.title=e.target.value)}})}),(0,J.jsx)(p,{})]}),(0,J.jsx)(h,{children:`The application title is put in the title tag in the HTML code and typically displayed in the title bar of the browser window.`})]})}function ce(e){let{field:t}=e;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,J.jsxs)(d,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(s,{className:`shrink-0`,children:`Custom CSS`}),(0,J.jsx)(c,{children:(0,J.jsx)(V,{...t,value:t.value??``,placeholder:`custom.css`,onChange:e=>{t.onChange(e.target.value),y.safeParse(e.target.value).success&&(document.title=e.target.value)}})}),(0,J.jsx)(p,{})]}),(0,J.jsx)(h,{children:`A filepath to a custom css file to be injected into the notebook.`})]})}function le(e){let{field:t}=e;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,J.jsxs)(d,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(s,{className:`shrink-0`,children:`HTML Head`}),(0,J.jsx)(c,{children:(0,J.jsx)(V,{...t,value:t.value??``,placeholder:`head.html`,onChange:e=>{t.onChange(e.target.value)}})}),(0,J.jsx)(p,{})]}),(0,J.jsxs)(h,{children:[`A filepath to an HTML file to be injected into the`,` `,(0,J.jsx)(G,{className:`inline`,children:`<head/>`}),` section of the notebook. Use this to add analytics, custom fonts, meta tags, or external scripts.`]})]})}function ue(e){return(0,J.jsx)(`option`,{value:e.value,children:e.label},e.value)}function de(e){let{field:t}=e;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,J.jsxs)(d,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(s,{children:`SQL Output Type`}),(0,J.jsx)(c,{children:(0,J.jsx)(k,{"data-testid":`sql-output-select`,onChange:e=>{t.onChange(e.target.value),te({title:`Kernel Restart Required`,description:`This change requires a kernel restart to take effect.`})},value:t.value,disabled:t.disabled,className:`inline-flex mr-2`,children:T.map(ue)})}),(0,J.jsx)(p,{})]}),(0,J.jsxs)(h,{children:[`The Python type returned by a SQL cell. For best performance with large datasets, we recommend using`,` `,(0,J.jsx)(G,{className:`inline`,children:`native`}),`. See the`,` `,(0,J.jsx)(ee,{href:`https://docs.marimo.io/guides/working_with_data/sql`,children:`SQL guide`}),` `,`for more information.`]})]})}var fe=e=>{let n=(0,q.c)(32),{showAppConfig:r,disabled:i,tooltip:a}=e,o=r===void 0||r,s=i!==void 0&&i,c=a===void 0?`Settings`:a,[d,p]=t(w),m=s?`disabled`:`hint-green`,h;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,J.jsx)(H,{strokeWidth:1.8}),n[0]=h):h=n[0];let g;n[1]===c?g=n[2]:(g=(0,J.jsx)(A,{content:c,children:h}),n[1]=c,n[2]=g);let _;n[3]!==s||n[4]!==m||n[5]!==g?(_=(0,J.jsx)(K,{"aria-label":`Config`,"data-testid":`app-config-button`,shape:`circle`,size:`small`,className:`h-[27px] w-[27px]`,disabled:s,color:m,children:g}),n[3]=s,n[4]=m,n[5]=g,n[6]=_):_=n[6];let v=_,y;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,J.jsxs)(L,{className:`w-[90vw] h-[90vh] overflow-hidden sm:max-w-5xl top-[5vh] p-0`,children:[(0,J.jsx)(U,{children:(0,J.jsx)(z,{children:`User settings`})}),(0,J.jsx)(C,{})]}),n[7]=y):y=n[7];let b=y;if(!o){let e;n[8]===v?e=n[9]:(e=(0,J.jsx)(I,{children:v}),n[8]=v,n[9]=e);let t;return n[10]!==p||n[11]!==d||n[12]!==e?(t=(0,J.jsxs)(B,{open:d,onOpenChange:p,children:[e,b]}),n[10]=p,n[11]=d,n[12]=e,n[13]=t):t=n[13],t}let x;n[14]===v?x=n[15]:(x=(0,J.jsx)(u,{asChild:!0,children:v}),n[14]=v,n[15]=x);let S,T;n[16]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,J.jsx)(ie,{}),T=(0,J.jsx)(`div`,{className:`h-px bg-border my-2`}),n[16]=S,n[17]=T):(S=n[16],T=n[17]);let E;n[18]===p?E=n[19]:(E=()=>p(!0),n[18]=p,n[19]=E);let D;n[20]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,J.jsx)(H,{strokeWidth:1.8,className:`w-4 h-4 mr-2`}),n[20]=D):D=n[20];let O;n[21]===E?O=n[22]:(O=(0,J.jsxs)(f,{className:`w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]`,align:`end`,side:`bottom`,onFocusOutside:pe,children:[S,T,(0,J.jsxs)(j,{onClick:E,variant:`link`,className:`px-0`,children:[D,`User settings`]})]}),n[21]=E,n[22]=O);let k;n[23]!==O||n[24]!==x?(k=(0,J.jsxs)(l,{children:[x,O]}),n[23]=O,n[24]=x,n[25]=k):k=n[25];let M;n[26]!==p||n[27]!==d?(M=(0,J.jsx)(B,{open:d,onOpenChange:p,children:b}),n[26]=p,n[27]=d,n[28]=M):M=n[28];let N;return n[29]!==k||n[30]!==M?(N=(0,J.jsxs)(J.Fragment,{children:[k,M]}),n[29]=k,n[30]=M,n[31]=N):N=n[31],N};function pe(e){return e.preventDefault()}export{Y as n,ne as r,fe as t};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t}from"./useEvent-xfs0Sn4r.js";import{t as n}from"./react-CBDbhulC.js";import{$t as r,An as i,Mn as a,Wn as o,an as s,en as c,fn as l,hn as u,in as d,mn as f,on as p,rn as m,tn as h}from"./cells-C6lBv8kg.js";import{t as g}from"./compiler-runtime-CYIjoINj.js";import{C as _,O as v,k as y}from"./utils-CUZQNAWJ.js";import{E as b,d as x,f as S,i as C,n as w,u as T}from"./ai-model-dropdown-CfWMIzjl.js";import{N as E}from"./config-DaNyNpZL.js";import{t as D}from"./jsx-runtime-B74pBk57.js";import{o as O}from"./alert-dialog-BVi_GyOB.js";import{l as k}from"./select-czJLm6jf.js";import{t as A}from"./tooltip-D7dq6bnc.js";import{t as j}from"./button-Btj6GXNy.js";import{s as M}from"./arrays-BqUx5USx.js";import{r as N}from"./requests-C6_IaFh7.js";import{t as P}from"./createLucideIcon-B7HeEoG2.js";import{r as F}from"./useNumberFormatter-DHJ9s6Vk.js";import{M as I,T as L,b as R,j as z,p as ee,w as B}from"./write-secret-modal-lNU_7c2x.js";import{r as V}from"./input-Daz6sk8l.js";import{t as H}from"./settings-C-cYas75.js";import{t as te}from"./use-toast-DpWHUGuF.js";import{t as U}from"./VisuallyHidden-SChAyKIQ.js";import{n as W}from"./useDebounce-Dulm61-t.js";import{t as G}from"./kbd-Cwh96ZBE.js";import{t as K}from"./Inputs-E85rt2lh.js";var ne=P(`power-off`,[[`path`,{d:`M18.36 6.64A9 9 0 0 1 20.77 15`,key:`dxknvb`}],[`path`,{d:`M6.16 6.16a9 9 0 1 0 12.68 12.68`,key:`1x7qb5`}],[`path`,{d:`M12 2v4`,key:`3427ic`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),q=g(),J=D(),Y=e=>{let t=(0,q.c)(15),{description:n,disabled:r,tooltip:i}=e,a=r!==void 0&&r,o=i===void 0?`Shutdown`:i,{openConfirm:s,closeModal:c}=R(),{sendShutdown:l}=N(),u;t[0]===l?u=t[1]:(u=()=>{l(),setTimeout(X,200)},t[0]=l,t[1]=u);let d=u;if(E())return null;let f=a?`disabled`:`red`,p;t[2]!==c||t[3]!==n||t[4]!==d||t[5]!==s?(p=e=>{e.stopPropagation(),s({title:`Shutdown`,description:n,variant:`destructive`,confirmAction:(0,J.jsx)(O,{onClick:()=>{d(),c()},"aria-label":`Confirm Shutdown`,children:`Shutdown`})})},t[2]=c,t[3]=n,t[4]=d,t[5]=s,t[6]=p):p=t[6];let m;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,J.jsx)(F,{strokeWidth:1}),t[7]=m):m=t[7];let h;t[8]!==a||t[9]!==f||t[10]!==p?(h=(0,J.jsx)(K,{"aria-label":`Shutdown`,"data-testid":`shutdown-button`,shape:`circle`,size:`small`,color:f,className:`h-[27px] w-[27px]`,disabled:a,onClick:p,children:m}),t[8]=a,t[9]=f,t[10]=p,t[11]=h):h=t[11];let g;return t[12]!==h||t[13]!==o?(g=(0,J.jsx)(A,{content:o,children:h}),t[12]=h,t[13]=o,t[14]=g):g=t[14],g};function X(){window.close()}var Z=e(n(),1),re=100,ie=()=>{let e=(0,q.c)(37),[t,n]=_(),{saveAppConfig:l}=N(),u=(0,Z.useId)(),f=(0,Z.useId)(),g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=i(v),e[0]=g):g=e[0];let y;e[1]===t?y=e[2]:(y={resolver:g,defaultValues:t},e[1]=t,e[2]=y);let b=a(y),C;e[3]!==l||e[4]!==n?(C=async e=>{await l({config:e}).then(()=>{n(e)}).catch(()=>{n(e)})},e[3]=l,e[4]=n,e[5]=C):C=e[5];let w=C,T;e[6]===w?T=e[7]:(T=e=>{w(e)},e[6]=w,e[7]=T);let E=W(T,re),D;e[8]===t.width?D=e[9]:(D=[t.width],e[8]=t.width,e[9]=D),(0,Z.useEffect)(ae,D);let O;e[10]!==E||e[11]!==b?(O=b.handleSubmit(E),e[10]=E,e[11]=b,e[12]=O):O=e[12];let k;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,J.jsxs)(`div`,{children:[(0,J.jsx)(S,{children:`Notebook Settings`}),(0,J.jsx)(x,{children:`Configure how your notebook or application looks and behaves.`})]}),e[13]=k):k=e[13];let A;e[14]===b.control?A=e[15]:(A=(0,J.jsxs)(Q,{title:`Display`,children:[(0,J.jsx)(m,{control:b.control,name:`width`,render:se}),(0,J.jsx)(m,{control:b.control,name:`app_title`,render:$})]}),e[14]=b.control,e[15]=A);let j;e[16]===b.control?j=e[17]:(j=(0,J.jsxs)(Q,{title:`Custom Files`,children:[(0,J.jsx)(m,{control:b.control,name:`css_file`,render:ce}),(0,J.jsx)(m,{control:b.control,name:`html_head_file`,render:le})]}),e[16]=b.control,e[17]=j);let P;e[18]===b.control?P=e[19]:(P=(0,J.jsx)(Q,{title:`Data`,children:(0,J.jsx)(m,{control:b.control,name:`sql_output`,render:de})}),e[18]=b.control,e[19]=P);let F;e[20]!==u||e[21]!==f?(F=e=>{let{field:t}=e;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,J.jsxs)(d,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(c,{children:(0,J.jsxs)(`div`,{className:`flex gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,J.jsx)(o,{id:u,"data-testid":`html-checkbox`,checked:t.value.includes(`html`),onCheckedChange:()=>{t.onChange(M(t.value,`html`))}}),(0,J.jsx)(s,{htmlFor:u,children:`HTML`})]}),(0,J.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,J.jsx)(o,{id:f,"data-testid":`ipynb-checkbox`,checked:t.value.includes(`ipynb`),onCheckedChange:()=>{t.onChange(M(t.value,`ipynb`))}}),(0,J.jsx)(s,{htmlFor:f,children:`IPYNB`})]})]})}),(0,J.jsx)(p,{})]}),(0,J.jsxs)(h,{children:[`When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named`,` `,(0,J.jsx)(G,{className:`inline`,children:`__marimo__`}),` next to your notebook file.`]})]})},e[20]=u,e[21]=f,e[22]=F):F=e[22];let I;e[23]!==b.control||e[24]!==F?(I=(0,J.jsx)(Q,{title:`Exporting outputs`,children:(0,J.jsx)(m,{control:b.control,name:`auto_download`,render:F})}),e[23]=b.control,e[24]=F,e[25]=I):I=e[25];let L;e[26]!==I||e[27]!==A||e[28]!==j||e[29]!==P?(L=(0,J.jsxs)(`div`,{className:`grid grid-cols-2 gap-x-8 gap-y-4`,children:[A,j,P,I]}),e[26]=I,e[27]=A,e[28]=j,e[29]=P,e[30]=L):L=e[30];let R;e[31]!==L||e[32]!==O?(R=(0,J.jsxs)(`form`,{onChange:O,className:`flex flex-col gap-6`,children:[k,L]}),e[31]=L,e[32]=O,e[33]=R):R=e[33];let z;return e[34]!==b||e[35]!==R?(z=(0,J.jsx)(r,{...b,children:R}),e[34]=b,e[35]=R,e[36]=z):z=e[36],z},Q=e=>{let t=(0,q.c)(5),{title:n,children:r}=e,i;t[0]===n?i=t[1]:(i=(0,J.jsx)(`h3`,{className:`text-base font-semibold mb-1`,children:n}),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i?(a=(0,J.jsxs)(`div`,{className:`flex flex-col gap-y-2`,children:[i,r]}),t[2]=r,t[3]=i,t[4]=a):a=t[4],a};function ae(){window.dispatchEvent(new Event(`resize`))}function oe(e){return(0,J.jsx)(`option`,{value:e,children:e},e)}function se(e){let{field:t}=e;return(0,J.jsxs)(d,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(s,{children:`Width`}),(0,J.jsx)(c,{children:(0,J.jsx)(k,{"data-testid":`app-width-select`,onChange:e=>t.onChange(e.target.value),value:t.value,disabled:t.disabled,className:`inline-flex mr-2`,children:b().map(oe)})}),(0,J.jsx)(p,{})]})}function $(e){let{field:t}=e;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,J.jsxs)(d,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(s,{children:`App title`}),(0,J.jsx)(c,{children:(0,J.jsx)(V,{...t,value:t.value??``,onChange:e=>{t.onChange(e.target.value),y.safeParse(e.target.value).success&&(document.title=e.target.value)}})}),(0,J.jsx)(p,{})]}),(0,J.jsx)(h,{children:`The application title is put in the title tag in the HTML code and typically displayed in the title bar of the browser window.`})]})}function ce(e){let{field:t}=e;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,J.jsxs)(d,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(s,{className:`shrink-0`,children:`Custom CSS`}),(0,J.jsx)(c,{children:(0,J.jsx)(V,{...t,value:t.value??``,placeholder:`custom.css`,onChange:e=>{t.onChange(e.target.value),y.safeParse(e.target.value).success&&(document.title=e.target.value)}})}),(0,J.jsx)(p,{})]}),(0,J.jsx)(h,{children:`A filepath to a custom css file to be injected into the notebook.`})]})}function le(e){let{field:t}=e;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,J.jsxs)(d,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(s,{className:`shrink-0`,children:`HTML Head`}),(0,J.jsx)(c,{children:(0,J.jsx)(V,{...t,value:t.value??``,placeholder:`head.html`,onChange:e=>{t.onChange(e.target.value)}})}),(0,J.jsx)(p,{})]}),(0,J.jsxs)(h,{children:[`A filepath to an HTML file to be injected into the`,` `,(0,J.jsx)(G,{className:`inline`,children:`<head/>`}),` section of the notebook. Use this to add analytics, custom fonts, meta tags, or external scripts.`]})]})}function ue(e){return(0,J.jsx)(`option`,{value:e.value,children:e.label},e.value)}function de(e){let{field:t}=e;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,J.jsxs)(d,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(s,{children:`SQL Output Type`}),(0,J.jsx)(c,{children:(0,J.jsx)(k,{"data-testid":`sql-output-select`,onChange:e=>{t.onChange(e.target.value),te({title:`Kernel Restart Required`,description:`This change requires a kernel restart to take effect.`})},value:t.value,disabled:t.disabled,className:`inline-flex mr-2`,children:T.map(ue)})}),(0,J.jsx)(p,{})]}),(0,J.jsxs)(h,{children:[`The Python type returned by a SQL cell. For best performance with large datasets, we recommend using`,` `,(0,J.jsx)(G,{className:`inline`,children:`native`}),`. See the`,` `,(0,J.jsx)(ee,{href:`https://docs.marimo.io/guides/working_with_data/sql`,children:`SQL guide`}),` `,`for more information.`]})]})}var fe=e=>{let n=(0,q.c)(32),{showAppConfig:r,disabled:i,tooltip:a}=e,o=r===void 0||r,s=i!==void 0&&i,c=a===void 0?`Settings`:a,[d,p]=t(w),m=s?`disabled`:`hint-green`,h;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,J.jsx)(H,{strokeWidth:1.8}),n[0]=h):h=n[0];let g;n[1]===c?g=n[2]:(g=(0,J.jsx)(A,{content:c,children:h}),n[1]=c,n[2]=g);let _;n[3]!==s||n[4]!==m||n[5]!==g?(_=(0,J.jsx)(K,{"aria-label":`Config`,"data-testid":`app-config-button`,shape:`circle`,size:`small`,className:`h-[27px] w-[27px]`,disabled:s,color:m,children:g}),n[3]=s,n[4]=m,n[5]=g,n[6]=_):_=n[6];let v=_,y;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,J.jsxs)(L,{className:`w-[90vw] h-[90vh] overflow-hidden sm:max-w-5xl top-[5vh] p-0`,children:[(0,J.jsx)(U,{children:(0,J.jsx)(z,{children:`User settings`})}),(0,J.jsx)(C,{})]}),n[7]=y):y=n[7];let b=y;if(!o){let e;n[8]===v?e=n[9]:(e=(0,J.jsx)(I,{children:v}),n[8]=v,n[9]=e);let t;return n[10]!==p||n[11]!==d||n[12]!==e?(t=(0,J.jsxs)(B,{open:d,onOpenChange:p,children:[e,b]}),n[10]=p,n[11]=d,n[12]=e,n[13]=t):t=n[13],t}let x;n[14]===v?x=n[15]:(x=(0,J.jsx)(u,{asChild:!0,children:v}),n[14]=v,n[15]=x);let S,T;n[16]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,J.jsx)(ie,{}),T=(0,J.jsx)(`div`,{className:`h-px bg-border my-2`}),n[16]=S,n[17]=T):(S=n[16],T=n[17]);let E;n[18]===p?E=n[19]:(E=()=>p(!0),n[18]=p,n[19]=E);let D;n[20]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,J.jsx)(H,{strokeWidth:1.8,className:`w-4 h-4 mr-2`}),n[20]=D):D=n[20];let O;n[21]===E?O=n[22]:(O=(0,J.jsxs)(f,{className:`w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]`,align:`end`,side:`bottom`,onFocusOutside:pe,children:[S,T,(0,J.jsxs)(j,{onClick:E,variant:`link`,className:`px-0`,children:[D,`User settings`]})]}),n[21]=E,n[22]=O);let k;n[23]!==O||n[24]!==x?(k=(0,J.jsxs)(l,{children:[x,O]}),n[23]=O,n[24]=x,n[25]=k):k=n[25];let M;n[26]!==p||n[27]!==d?(M=(0,J.jsx)(B,{open:d,onOpenChange:p,children:b}),n[26]=p,n[27]=d,n[28]=M):M=n[28];let N;return n[29]!==k||n[30]!==M?(N=(0,J.jsxs)(J.Fragment,{children:[k,M]}),n[29]=k,n[30]=M,n[31]=N):N=n[31],N};function pe(e){return e.preventDefault()}export{Y as n,ne as r,fe as t};
@@ -1 +1 @@
1
- import{a as e}from"./markdown-renderer-Cj57nlKH.js";function t(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=e=>{t(e.target?.result)},r.onerror=e=>{n(Error(`Failed to read blob: ${e.type}`))},r.readAsDataURL(e)})}function n(e){let[t,n]=e.split(`,`,2),r=/^data:(.+);base64$/.exec(t)?.[1],i=atob(n),a=i.length,o=new Uint8Array(a);for(let e=0;e<a;e++)o[e]=i.charCodeAt(e);return new Blob([o],{type:r})}function r({contents:t,mimeType:r,isBase64:i}){return i?n(e(t,r)):new Blob([t],{type:r})}export{r as n,t as r,n as t};
1
+ import{a as e}from"./markdown-renderer-B-uA_6mP.js";function t(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=e=>{t(e.target?.result)},r.onerror=e=>{n(Error(`Failed to read blob: ${e.type}`))},r.readAsDataURL(e)})}function n(e){let[t,n]=e.split(`,`,2),r=/^data:(.+);base64$/.exec(t)?.[1],i=atob(n),a=i.length,o=new Uint8Array(a);for(let e=0;e<a;e++)o[e]=i.charCodeAt(e);return new Blob([o],{type:r})}function r({contents:t,mimeType:r,isBase64:i}){return i?n(e(t,r)):new Blob([t],{type:r})}export{r as n,t as r,n as t};
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./loro_wasm_bg-BzjWitFM.js","./loro_wasm_bg-BRA1AbB3.js","./rolldown-runtime-B0Z9INg1.js"])))=>i.map(i=>d[i]);
2
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,d as n,f as r,l as i,o as a,r as o,s,t as c,u as l}from"./useEvent-xfs0Sn4r.js";import{t as u}from"./react-CBDbhulC.js";import{$a as d,$n as f,Aa as p,Ba as m,Bi as h,Br as g,Ci as _,Co as v,D as y,Di as b,Dr as x,Ei as S,Fr as C,Gn as w,H as ee,Hr as T,I as E,Ja as D,Jr as O,K as te,Ln as ne,Lr as k,Mo as re,Oi as A,Po as j,Qa as ie,Qi as ae,Rr as M,Sn as oe,Sr as se,St as N,Ti as ce,U as le,Ur as P,V as F,Vr as I,Vt as ue,W as de,Wn as fe,Wr as pe,Wt as me,_i as he,_o as ge,_t as _e,ai as ve,ar as ye,b as be,bn as xe,bo as Se,bt as Ce,ct as we,d as Te,da as Ee,di as De,dr as Oe,fi as ke,fn as Ae,fr as je,ga as Me,gi as Ne,gn as Pe,gt as Fe,h as Ie,ht as Le,i as Re,ja as ze,jr as Be,li as Ve,lr as He,lt as Ue,mi as We,mn as Ge,no as Ke,oi as qe,or as Je,pi as Ye,pr as Xe,qa as Ze,qo as Qe,qr as $e,si as et,sr as tt,to as nt,tr as rt,u as it,ur as at,ut as ot,vn as st,vt as ct,wi as lt,wt as ut,xi as dt,xn as ft,xt as pt,yt as mt,za as ht,zr as gt}from"./cells-CD9Jbpoa.js";import{t as _t}from"./react-dom-BQrReHnR.js";import{Cn as vt,In as yt,Jn as bt,Sn as xt,Tt as St,kt as Ct,ln as wt,xt as Tt}from"./schemas-aTUejmFi.js";import{t as Et}from"./compiler-runtime-CYIjoINj.js";import{t as Dt}from"./debounce-aFmHgJZY.js";import{D as Ot,_ as kt,c as At,g as jt,l as Mt,v as Nt}from"./utils-CUZQNAWJ.js";import{D as Pt,O as Ft,b as It,g as Lt,h as Rt,m as zt,t as Bt,w as Vt}from"./ai-model-dropdown-D7nJTvh4.js";import{_ as Ht,c as Ut,g as Wt,m as Gt,t as Kt}from"./useEventListener-D27Dii_l.js";import{t as qt}from"./invariant-Ci2dTZ72.js";import{E as Jt,N as Yt,O as Xt,S as Zt,T as Qt,m as $t,o as en,r as tn,v as nn}from"./config-DaNyNpZL.js";import{n as rn,t as an}from"./switch-Gl6cozkm.js";import{c as on,n as sn,r as cn}from"./readonly-python-code-GMl_IocT.js";import{t as ln}from"./ErrorBoundary-npvnLp9x.js";import{t as un}from"./cn-ldLVeaqm.js";import{t as dn}from"./jsx-runtime-B74pBk57.js";import{d as fn}from"./select-czJLm6jf.js";import{J as pn,Y as mn}from"./JsonOutput-DFd7q8lz.js";import{n as hn}from"./download-BKMVrvLm.js";import{t as gn}from"./tooltip-D7dq6bnc.js";import{r as _n,t as vn}from"./button-Btj6GXNy.js";import{At as yn,Bt as bn,Ct as xn,Dt as Sn,E as Cn,Et as wn,Ft as Tn,Gt as En,H as Dn,Ht as On,I as kn,P as An,Pt as jn,Qt as Mn,Rt as Nn,St as Pn,Tt as Fn,Ut as In,V as Ln,Wt as Rn,Yt as zn,Zt as L,_ as Bn,at as R,dt as Vn,en as Hn,gt as Un,ht as Wn,lt as Gn,m as Kn,ot as qn,qt as Jn,rn as Yn,st as z,ut as Xn,w as Zn,xt as Qn}from"./dist-PIe1xcZo.js";import{C as $n,E as er,I as tr,O as nr,S as rr,a as ir,c as ar,n as or,r as sr,w as cr}from"./dist-CbQrIaPV.js";import{o as lr}from"./arrays-BqUx5USx.js";import{n as ur}from"./once-Haz_uxEL.js";import{t as dr}from"./createReducer-Bq-nQJiK.js";import{a as fr,c as pr,f as mr,h as hr,i as gr,l as _r,n as vr,o as yr,t as br}from"./dist-Dz_04liz.js";import{r as xr}from"./strings-CpYReX2Q.js";import{r as Sr,t as Cr}from"./requests-C6_IaFh7.js";import{t as wr}from"./createLucideIcon-B7HeEoG2.js";import{r as Tr,t as Er}from"./layout-RSFs10mJ.js";import{r as Dr}from"./useNumberFormatter-DHJ9s6Vk.js";import{t as Or}from"./circle-check-CUWv70QX.js";import{B as kr,F as Ar,G as jr,I as Mr,L as Nr,M as Pr,R as Fr,T as Ir,V as Lr,W as Rr,c as zr,f as Br,i as Vr,n as Hr,o as Ur,r as Wr,s as Gr,w as Kr,z as qr}from"./add-cell-with-ai-Cc3EENeX.js";import{t as Jr}from"./database-zap-CloO6gbw.js";import{r as Yr,t as Xr}from"./file-icons-CmmWEUGv.js";import{t as Zr}from"./components-ib4asSo7.js";import{D as Qr,E as $r,T as ei,b as ti,j as ni}from"./write-secret-modal-lNU_7c2x.js";import{n as ri}from"./spinner-Ck-Hgfvj.js";import{n as ii,t as ai}from"./useDeleteCell-Buwee6vZ.js";import{t as oi}from"./save-BybsbOKz.js";import{I as si,Mt as ci,P as li}from"./input-Daz6sk8l.js";import{t as ui}from"./badge-D_-uqy2N.js";import{t as di}from"./preload-helper-HclGiUj8.js";import{a as fi}from"./dist-DzAWvPVK.js";import{t as pi}from"./use-toast-DpWHUGuF.js";import{n as mi}from"./paths-zcL04qUW.js";import{t as hi}from"./session-CEdta5_Q.js";import{r as gi}from"./useTheme-D3zvxdF3.js";import{t as _i}from"./context-Do8M9TDF.js";import{i as vi}from"./numbers-DKurV_vq.js";import{n as yi}from"./useAsyncData-Buhk-UgR.js";import{n as bi}from"./copy-Cg05mM3C.js";import{a as xi}from"./useRunCells-C6416Qeo.js";import{a as Si}from"./errors-DzO-nXy-.js";import{t as B}from"./extends-CvVTau-c.js";import{i as Ci,n as wi}from"./esm-Dw0vvSg2.js";import{t as Ti}from"./kbd-Cwh96ZBE.js";import{a as Ei}from"./useInstallPackage-u7d0wo79.js";import{a as Di,n as Oi}from"./state-mneM4Ao8.js";import{a as ki,o as Ai}from"./cell-link-Z8JrraTv.js";import{a as ji}from"./renderShortcut-CS4ccH3x.js";import{n as Mi,t as Ni}from"./icons-CjLa9BiH.js";import{t as Pi}from"./dist-8lhGoJ54.js";import{t as Fi}from"./requests-S_7PqcSt.js";import{n as Ii}from"./formatting-BJlT1s_3.js";import{t as Li}from"./useSplitCell-Ip3d7gP0.js";import{n as Ri,r as zi,t as Bi}from"./panel-accordion-state-COnGLerF.js";import{co as Vi,do as Hi,fo as Ui,ft as Wi,go as Gi,ho as Ki,lo as qi,mo as Ji,oo as Yi,po as Xi,so as Zi,uo as Qi}from"./loro_wasm_bg-BRA1AbB3.js";import{t as $i}from"./ws-DLVysDhS.js";import{t as ea}from"./Inputs-E85rt2lh.js";import{r as ta,t as na}from"./skeleton-D71npu63.js";var ra=wr(`file-pen`,[[`path`,{d:`M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34`,key:`o6klzx`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z`,key:`zhnas1`}]]),ia={showInput:`Mod-l`,acceptEdit:`Mod-y`,rejectEdit:`Mod-u`},aa=300,oa=En.define({combine:e=>Yn(e,{onError:console.error,inputDebounceTime:aa,keymaps:ia},{onError:(e,t)=>e&&t,inputDebounceTime:(e,t)=>e&&t,keymaps:(e,t)=>e&&t})}),sa=L.define(),ca=Mn.define({create(){return{show:!1,lineFrom:0,lineTo:0}},update(e,t){for(let e of t.effects)if(e.is(sa))return e.value;return e}}),la=L.define(),ua=L.define(),da=Mn.define({create(){return{shouldFocus:!1,inputValue:``}},update(e,t){let n=e;for(let e of t.effects)e.is(la)&&(n={...n,inputValue:e.value}),e.is(ua)&&(n={...n,shouldFocus:e.value});return n}}),fa=L.define(),pa=Mn.define({create(){return null},update(e,t){for(let e of t.effects)if(e.is(fa))return e.value;return e}}),ma=L.define(),ha=Mn.define({create(){return!1},update(e,t){for(let e of t.effects)if(e.is(ma))return e.value;return e}}),ga=1,_a=e=>{let{state:t}=e,n=t.selection.main;if(n.empty)return!1;let r=t.doc,i=r.lineAt(n.from),a=r.lineAt(n.to);if(t.sliceDoc(i.from,a.to).trim().length<ga)return!1;let o=Math.max(1,Math.min(i.number,r.lines)),s=Math.max(1,Math.min(a.number,r.lines));return e.dispatch({effects:[sa.of({show:!0,lineFrom:o,lineTo:s}),ua.of(!0),la.of(``)],selection:In.cursor(i.from)}),!0},va=e=>e.state.field(pa)?(e.dispatch({effects:[fa.of(null),sa.of({show:!1,lineFrom:0,lineTo:0}),ua.of(!1),la.of(``),ma.of(!1)]}),!0):!1,ya=e=>{let t=e.state.field(pa);return t?(e.dispatch({changes:{from:t.from,to:t.to,insert:t.oldCode},effects:[fa.of(null),sa.of({show:!1,lineFrom:0,lineTo:0}),ua.of(!1),la.of(``),ma.of(!1)]}),!0):!1},ba={mac:`⌘`,windows:`⊞ Win`,default:`Ctrl`};function xa(){return navigator.platform.startsWith(`Mac`)?ba.mac:navigator.platform.startsWith(`Win`)?ba.windows:ba.default}function Sa(e){return e.replace(`Mod`,xa()).replace(`-`,` `).toUpperCase()}function V(e,t){let n=document.createElement(e);return n.className=t,n}function Ca(e,t,n=void 0){let r=()=>{};return(...i)=>(r(),new Promise((a,o)=>{let s=setTimeout(()=>a(e(...i)),t);r=()=>{clearTimeout(s),n!==void 0&&o(n)}}))}var wa=Mn.define({create(){return{suggestion:null}},update(e,t){let n=t.effects.find(e=>e.is(Ta));return!t.docChanged&&!n&&!t.selection?e:n&&t.state.doc===n.value.doc?{suggestion:n.value.text}:{suggestion:null}}}),Ta=L.define();function Ea(e,t){let n=e.state.selection.main.head,r=[],i=R.widget({widget:new Da(t),side:1});return r.push(i.range(n)),R.set(r)}var Da=class extends Vn{suggestion;constructor(e){super(),this.suggestion=e}toDOM(){let e=document.createElement(`span`);return e.style.opacity=`0.4`,e.className=`cm-inline-suggestion`,e.textContent=this.suggestion,e.setAttribute(`role`,`suggestion`),e.setAttribute(`aria-label`,`Suggestion: ${this.suggestion}`),e}get lineBreaks(){return this.suggestion.split(`
2
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,d as n,f as r,l as i,o as a,r as o,s,t as c,u as l}from"./useEvent-xfs0Sn4r.js";import{t as u}from"./react-CBDbhulC.js";import{$a as d,$n as f,Aa as p,Ba as m,Bi as h,Br as g,Ci as _,Co as v,D as y,Di as b,Dr as x,Ei as S,Fr as C,Gn as w,H as ee,Hr as T,I as E,Ja as D,Jr as O,K as te,Ln as ne,Lr as k,Mo as re,Oi as A,Po as j,Qa as ie,Qi as ae,Rr as M,Sn as oe,Sr as se,St as N,Ti as ce,U as le,Ur as P,V as F,Vr as I,Vt as ue,W as de,Wn as fe,Wr as pe,Wt as me,_i as he,_o as ge,_t as _e,ai as ve,ar as ye,b as be,bn as xe,bo as Se,bt as Ce,ct as we,d as Te,da as Ee,di as De,dr as Oe,fi as ke,fn as Ae,fr as je,ga as Me,gi as Ne,gn as Pe,gt as Fe,h as Ie,ht as Le,i as Re,ja as ze,jr as Be,li as Ve,lr as He,lt as Ue,mi as We,mn as Ge,no as Ke,oi as qe,or as Je,pi as Ye,pr as Xe,qa as Ze,qo as Qe,qr as $e,si as et,sr as tt,to as nt,tr as rt,u as it,ur as at,ut as ot,vn as st,vt as ct,wi as lt,wt as ut,xi as dt,xn as ft,xt as pt,yt as mt,za as ht,zr as gt}from"./cells-C6lBv8kg.js";import{t as _t}from"./react-dom-BQrReHnR.js";import{Cn as vt,In as yt,Jn as bt,Sn as xt,Tt as St,kt as Ct,ln as wt,xt as Tt}from"./schemas-aTUejmFi.js";import{t as Et}from"./compiler-runtime-CYIjoINj.js";import{t as Dt}from"./debounce-aFmHgJZY.js";import{D as Ot,_ as kt,c as At,g as jt,l as Mt,v as Nt}from"./utils-CUZQNAWJ.js";import{D as Pt,O as Ft,b as It,g as Lt,h as Rt,m as zt,t as Bt,w as Vt}from"./ai-model-dropdown-CfWMIzjl.js";import{_ as Ht,c as Ut,g as Wt,m as Gt,t as Kt}from"./useEventListener-D27Dii_l.js";import{t as qt}from"./invariant-Ci2dTZ72.js";import{E as Jt,N as Yt,O as Xt,S as Zt,T as Qt,m as $t,o as en,r as tn,v as nn}from"./config-DaNyNpZL.js";import{n as rn,t as an}from"./switch-Gl6cozkm.js";import{c as on,n as sn,r as cn}from"./readonly-python-code-D2HXwAfT.js";import{t as ln}from"./ErrorBoundary-npvnLp9x.js";import{t as un}from"./cn-ldLVeaqm.js";import{t as dn}from"./jsx-runtime-B74pBk57.js";import{d as fn}from"./select-czJLm6jf.js";import{J as pn,Y as mn}from"./JsonOutput-B7sDhGzR.js";import{n as hn}from"./download-Cqjqrhzo.js";import{t as gn}from"./tooltip-D7dq6bnc.js";import{r as _n,t as vn}from"./button-Btj6GXNy.js";import{At as yn,Bt as bn,Ct as xn,Dt as Sn,E as Cn,Et as wn,Ft as Tn,Gt as En,H as Dn,Ht as On,I as kn,P as An,Pt as jn,Qt as Mn,Rt as Nn,St as Pn,Tt as Fn,Ut as In,V as Ln,Wt as Rn,Yt as zn,Zt as L,_ as Bn,at as R,dt as Vn,en as Hn,gt as Un,ht as Wn,lt as Gn,m as Kn,ot as qn,qt as Jn,rn as Yn,st as z,ut as Xn,w as Zn,xt as Qn}from"./dist-PIe1xcZo.js";import{C as $n,E as er,I as tr,O as nr,S as rr,a as ir,c as ar,n as or,r as sr,w as cr}from"./dist-CbQrIaPV.js";import{o as lr}from"./arrays-BqUx5USx.js";import{n as ur}from"./once-Haz_uxEL.js";import{t as dr}from"./createReducer-Bq-nQJiK.js";import{a as fr,c as pr,f as mr,h as hr,i as gr,l as _r,n as vr,o as yr,t as br}from"./dist-Dz_04liz.js";import{r as xr}from"./strings-CpYReX2Q.js";import{r as Sr,t as Cr}from"./requests-C6_IaFh7.js";import{t as wr}from"./createLucideIcon-B7HeEoG2.js";import{r as Tr,t as Er}from"./layout-Uv1ZP5XB.js";import{r as Dr}from"./useNumberFormatter-DHJ9s6Vk.js";import{t as Or}from"./circle-check-CUWv70QX.js";import{B as kr,F as Ar,G as jr,I as Mr,L as Nr,M as Pr,R as Fr,T as Ir,V as Lr,W as Rr,c as zr,f as Br,i as Vr,n as Hr,o as Ur,r as Wr,s as Gr,w as Kr,z as qr}from"./add-cell-with-ai-B_TSaqjJ.js";import{t as Jr}from"./database-zap-CloO6gbw.js";import{r as Yr,t as Xr}from"./file-icons-uUY_hGYm.js";import{t as Zr}from"./components-ib4asSo7.js";import{D as Qr,E as $r,T as ei,b as ti,j as ni}from"./write-secret-modal-lNU_7c2x.js";import{n as ri}from"./spinner-Ck-Hgfvj.js";import{n as ii,t as ai}from"./useDeleteCell-DB-bhhnO.js";import{t as oi}from"./save-BybsbOKz.js";import{I as si,Mt as ci,P as li}from"./input-Daz6sk8l.js";import{t as ui}from"./badge-D_-uqy2N.js";import{t as di}from"./preload-helper-HclGiUj8.js";import{a as fi}from"./dist-DzAWvPVK.js";import{t as pi}from"./use-toast-DpWHUGuF.js";import{n as mi}from"./paths-zcL04qUW.js";import{t as hi}from"./session-CEdta5_Q.js";import{r as gi}from"./useTheme-D3zvxdF3.js";import{t as _i}from"./context-Do8M9TDF.js";import{i as vi}from"./numbers-DKurV_vq.js";import{n as yi}from"./useAsyncData-Buhk-UgR.js";import{n as bi}from"./copy-Cg05mM3C.js";import{a as xi}from"./useRunCells-GCTS1YFv.js";import{a as Si}from"./errors-DzO-nXy-.js";import{t as B}from"./extends-CvVTau-c.js";import{i as Ci,n as wi}from"./esm-Dw0vvSg2.js";import{t as Ti}from"./kbd-Cwh96ZBE.js";import{a as Ei}from"./useInstallPackage-u7d0wo79.js";import{a as Di,n as Oi}from"./state-DyxPdcEa.js";import{a as ki,o as Ai}from"./cell-link-DCOAqVkE.js";import{a as ji}from"./renderShortcut-CS4ccH3x.js";import{n as Mi,t as Ni}from"./icons-CjLa9BiH.js";import{t as Pi}from"./dist-8lhGoJ54.js";import{t as Fi}from"./requests-S_7PqcSt.js";import{n as Ii}from"./formatting-BJlT1s_3.js";import{t as Li}from"./useSplitCell-DhT9BA2_.js";import{n as Ri,r as zi,t as Bi}from"./panel-accordion-state-BLU7OiMD.js";import{co as Vi,do as Hi,fo as Ui,ft as Wi,go as Gi,ho as Ki,lo as qi,mo as Ji,oo as Yi,po as Xi,so as Zi,uo as Qi}from"./loro_wasm_bg-BRA1AbB3.js";import{t as $i}from"./ws-DLVysDhS.js";import{t as ea}from"./Inputs-E85rt2lh.js";import{r as ta,t as na}from"./skeleton-DirOIQrj.js";var ra=wr(`file-pen`,[[`path`,{d:`M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34`,key:`o6klzx`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z`,key:`zhnas1`}]]),ia={showInput:`Mod-l`,acceptEdit:`Mod-y`,rejectEdit:`Mod-u`},aa=300,oa=En.define({combine:e=>Yn(e,{onError:console.error,inputDebounceTime:aa,keymaps:ia},{onError:(e,t)=>e&&t,inputDebounceTime:(e,t)=>e&&t,keymaps:(e,t)=>e&&t})}),sa=L.define(),ca=Mn.define({create(){return{show:!1,lineFrom:0,lineTo:0}},update(e,t){for(let e of t.effects)if(e.is(sa))return e.value;return e}}),la=L.define(),ua=L.define(),da=Mn.define({create(){return{shouldFocus:!1,inputValue:``}},update(e,t){let n=e;for(let e of t.effects)e.is(la)&&(n={...n,inputValue:e.value}),e.is(ua)&&(n={...n,shouldFocus:e.value});return n}}),fa=L.define(),pa=Mn.define({create(){return null},update(e,t){for(let e of t.effects)if(e.is(fa))return e.value;return e}}),ma=L.define(),ha=Mn.define({create(){return!1},update(e,t){for(let e of t.effects)if(e.is(ma))return e.value;return e}}),ga=1,_a=e=>{let{state:t}=e,n=t.selection.main;if(n.empty)return!1;let r=t.doc,i=r.lineAt(n.from),a=r.lineAt(n.to);if(t.sliceDoc(i.from,a.to).trim().length<ga)return!1;let o=Math.max(1,Math.min(i.number,r.lines)),s=Math.max(1,Math.min(a.number,r.lines));return e.dispatch({effects:[sa.of({show:!0,lineFrom:o,lineTo:s}),ua.of(!0),la.of(``)],selection:In.cursor(i.from)}),!0},va=e=>e.state.field(pa)?(e.dispatch({effects:[fa.of(null),sa.of({show:!1,lineFrom:0,lineTo:0}),ua.of(!1),la.of(``),ma.of(!1)]}),!0):!1,ya=e=>{let t=e.state.field(pa);return t?(e.dispatch({changes:{from:t.from,to:t.to,insert:t.oldCode},effects:[fa.of(null),sa.of({show:!1,lineFrom:0,lineTo:0}),ua.of(!1),la.of(``),ma.of(!1)]}),!0):!1},ba={mac:`⌘`,windows:`⊞ Win`,default:`Ctrl`};function xa(){return navigator.platform.startsWith(`Mac`)?ba.mac:navigator.platform.startsWith(`Win`)?ba.windows:ba.default}function Sa(e){return e.replace(`Mod`,xa()).replace(`-`,` `).toUpperCase()}function V(e,t){let n=document.createElement(e);return n.className=t,n}function Ca(e,t,n=void 0){let r=()=>{};return(...i)=>(r(),new Promise((a,o)=>{let s=setTimeout(()=>a(e(...i)),t);r=()=>{clearTimeout(s),n!==void 0&&o(n)}}))}var wa=Mn.define({create(){return{suggestion:null}},update(e,t){let n=t.effects.find(e=>e.is(Ta));return!t.docChanged&&!n&&!t.selection?e:n&&t.state.doc===n.value.doc?{suggestion:n.value.text}:{suggestion:null}}}),Ta=L.define();function Ea(e,t){let n=e.state.selection.main.head,r=[],i=R.widget({widget:new Da(t),side:1});return r.push(i.range(n)),R.set(r)}var Da=class extends Vn{suggestion;constructor(e){super(),this.suggestion=e}toDOM(){let e=document.createElement(`span`);return e.style.opacity=`0.4`,e.className=`cm-inline-suggestion`,e.textContent=this.suggestion,e.setAttribute(`role`,`suggestion`),e.setAttribute(`aria-label`,`Suggestion: ${this.suggestion}`),e}get lineBreaks(){return this.suggestion.split(`
3
3
  `).length-1}},Oa=class{cache=new Map;timeout;constructor(e){this.timeout=e}get(e){let t=this.cache.get(e);return t?Date.now()-t.timestamp>this.timeout?(this.cache.delete(e),null):t.result:null}set(e,t){this.cache.set(e,{result:t,timestamp:Date.now()})}},ka=(e,t)=>Xn.fromClass(class{abortController=null;cache;constructor(){this.cache=new Oa(t.cacheTimeout??1e3)}async update(n){if(!n.docChanged||t.events?.beforeSuggestionFetch?.(n.view)===!1)return;this.abortController?.abort(),this.abortController=new AbortController;let r=n.state.doc,i=r.toString(),a=this.cache.get(i);if(a){n.view.dispatch({effects:Ta.of({text:a,doc:r})});return}try{let a=await e(n.state,this.abortController.signal,n.view);if(this.abortController.signal.aborted||t.events?.shouldShowSuggestion?.(n.view,a)===!1)return;this.cache.set(i,a),n.view.dispatch({effects:Ta.of({text:a,doc:r})})}catch(e){e instanceof Error&&e.name!==`AbortError`&&console.error(`Suggestion fetch error:`,e)}}destroy(){this.abortController?.abort()}}),Aa=Xn.fromClass(class{decorations;constructor(){this.decorations=R.none}update(e){let t=e.state.field(wa)?.suggestion;if(!t){this.decorations=R.none;return}this.decorations=Ea(e.view,t)}},{decorations:e=>e.decorations});function ja(e,t,n,r){return{...e.changeByRange(i=>{if(i===e.selection.main)return{changes:{from:n,to:r,insert:t},range:In.cursor(n+t.length)};let a=r-n;return!i.empty||a&&e.sliceDoc(i.from-a,i.from)!==e.sliceDoc(n,r)?{range:i}:{changes:{from:i.from-a,to:i.from,insert:t},range:In.cursor(i.from-a+t.length)}}),userEvent:`input.complete`}}var Ma=e=>{let t=e.state.field(wa)?.suggestion;if(!t)return!1;let n=e.state.facet(Fa);return e.dispatch({...ja(e.state,t,e.state.selection.main.head,e.state.selection.main.head)}),n.events?.onSuggestionAccepted?.(e,t),!0},Na=e=>{let t=e.state.field(wa)?.suggestion;if(!t)return!1;let n=e.state.facet(Fa);return e.dispatch({effects:Ta.of({text:null,doc:e.state.doc})}),n.events?.onSuggestionRejected?.(e,t),!0},Pa=Fn.of([{key:`Tab`,run:Ma},{key:`Escape`,run:Na}]),Fa=En.define({combine:e=>e.at(-1)});function Ia(e){let{delay:t=500,includeKeymap:n=!0}=e,r=Ca(e.fetchFn,t);return[wa,Fa.of(e),ka(r,e),Aa,n?Pa:[]]}var La=z.baseTheme({".cm-ai-input-container":{display:`flex`,flexDirection:`column`,gap:`4px`,width:`min(calc(100% + 7px), 500px)`,padding:`5px 5px`,margin:`0 -6px`,backgroundColor:`light-dark(rgb(241, 243, 245), rgb(40, 40, 40))`},".cm-ai-input":{display:`block`,width:`100%`,padding:`3px 8px`,border:`2px solid rgb(51, 154, 240)`,borderRadius:`5px`,fontSize:`12px`},".cm-ai-help-info-button":{fontSize:`10px`,paddingLeft:`10px`,height:`18px`,color:`light-dark(rgb(109, 117, 125), rgb(170, 170, 170))`,display:`block`,marginRight:`auto`},".cm-ai-help-info-button:hover":{color:`light-dark(rgb(89, 97, 105), rgb(190, 190, 190))`},".cm-ai-generate-button":{background:`#0E639C`,border:`none`,padding:`2px 6px`,color:`#ffffff`,cursor:`pointer`,font:`inherit`,borderRadius:`4px`,"&:hover":{backgroundColor:`#1177bb`}},".cm-line.cm-ai-selection, .cm-line.cm-ai-selection.cm-active-line":{backgroundColor:`light-dark(color-mix(in srgb, rgb(223, 227, 232) 50%, transparent), color-mix(in srgb, rgb(50, 50, 50) 50%, transparent)) !important`},".cm-line:has(.cm-new-code-line)":{backgroundColor:`light-dark(color-mix(in srgb, rgb(183, 235, 143) 50%, transparent), color-mix(in srgb, rgb(40, 100, 40) 50%, transparent)) !important`},".cm-old-code-container":{backgroundColor:`light-dark(rgb(255, 205, 205), rgb(100, 40, 40))`,position:`relative`,display:`flex`,paddingTop:`0`,width:`100%`,alignItems:`center`},".cm-code-button":{position:`absolute`,right:`5px`,top:`50%`,transform:`translateY(-50%)`,background:`none`,border:`none`,cursor:`pointer`,fontSize:`16px`},".cm-floating-buttons":{fontFamily:`sans-serif`,position:`absolute`,top:`-20px`,left:`5px`,display:`flex`},".cm-floating-button":{fontFamily:`sans-serif`,padding:`2px 5px`,fontSize:`10px`,cursor:`pointer`,fontWeight:`700`},".cm-floating-accept":{backgroundColor:`light-dark(rgb(55, 125, 34), rgb(40, 80, 25))`,borderTopLeftRadius:`5px`,borderBottomLeftRadius:`5px`,color:`white`,filter:`brightness(90%)`,"&:hover":{filter:`brightness(100%)`}},".cm-floating-reject":{backgroundColor:`light-dark(rgb(220, 53, 69), rgb(180, 40, 50))`,color:`white`,borderTopRightRadius:`5px`,borderBottomRightRadius:`5px`,filter:`brightness(90%)`,"&:hover":{filter:`brightness(100%)`}},".hotkey":{display:`inline-block`,padding:`0 4px`,borderRadius:`3px`,backgroundColor:`rgba(255, 255, 255, 0.1)`,fontSize:`90%`},".cm-ai-loading-indicator":{fontStyle:`italic`,fontSize:`10px`,paddingLeft:`12px`,color:`light-dark(rgb(109, 117, 125), rgb(170, 170, 170))`,opacity:`0`,transition:`opacity 0.3s ease-in-out`,"&::after":{content:`""`,display:`inline-block`,animation:`ellipsis-pulse 1.5s steps(4, end) infinite`},"&:not(:empty)":{opacity:`1`}},".cm-ai-input:disabled":{opacity:`0.5`},"@keyframes ellipsis-pulse":{"0%":{content:`'.'`},"25%":{content:`'..'`},"50%":{content:`'...'`},"75%":{content:`''`}},".cm-ai-loading-container":{display:`flex`,alignItems:`center`,padding:`0 8px`},".cm-ai-cancel-button":{padding:`2px 8px`,fontSize:`10px`,borderRadius:`4px`,color:`light-dark(rgb(109, 117, 125), rgb(170, 170, 170))`,cursor:`pointer`,"&:hover":{background:`light-dark(rgb(223, 227, 232), rgb(50, 50, 50))`}},".hidden":{display:`none`}});function Ra(e){let t=e.state.facet(oa),n={...ia,...t.keymaps},r=e.state.facet(za),i=V(`div`,`cm-ai-tooltip`).appendChild(V(`div`,`cm-ai-tooltip-button`)),a=i.appendChild(document.createElement(`span`));a.textContent=`${r.label} `;let o=a.appendChild(document.createElement(`span`));return o.className=`hotkey`,o.textContent=Sa(n.showInput),i.querySelector(`span`)?.addEventListener(`mousedown`,e=>{e.stopPropagation(),e.button===0&&e.preventDefault()}),i.querySelector(`span`)?.addEventListener(`click`,t=>{t.preventDefault(),_a(e)}),i}var za=En.define({combine(e){return Yn(e,{render:Ra,hideOnBlur:!1,label:`Edit with AI`})}}),Ba=Xn.fromClass(class{view;suppress;dom;mousedown=()=>{this.suppress=!0};mouseup=()=>{this.suppress=!1,this.display(this.view)};scroll=()=>{this.display(this.view)};windowScroll=()=>{this.display(this.view)};constructor(e){this.view=e;let t=e.state.facet(za);this.suppress=!1,document.addEventListener(`mousedown`,this.mousedown),document.addEventListener(`mouseup`,this.mouseup),e.scrollDOM.addEventListener(`scroll`,this.scroll),window.addEventListener(`scroll`,this.windowScroll,!0);let n=t.render(e);e.dom.appendChild(n),this.dom=n}update(e){this.display(e.view)}docViewUpdate(e){this.display(e)}display(e){if(e.state.field(ca).show){this.dom.style.display=`none`;return}if(e.state.facet(za).hideOnBlur&&!e.hasFocus){this.dom.style.display=`none`,this.dom.setAttribute(`aria-hidden`,`true`);return}e.requestMeasure({read:this.#e})}#e=e=>{let t=e.state.selection.ranges.find(e=>!e.empty);if(t&&!this.suppress){let n=e.coordsAtPos(t.from),r=e.coordsAtPos(t.to);if(!n||!r)return;let i=e.dom.getBoundingClientRect(),a=e.dom.parentElement?.getBoundingClientRect(),o=e=>e.top>=i.top&&e.top<=i.bottom&&e.left>=i.left&&e.left<=i.right,s=e=>!a||e.top>=a.top&&e.top<=a.bottom&&e.left>=a.left&&e.left<=a.right,c=o(n)||o(r),l=s(n)||s(r);if(!c||!l){this.dom.style.display=`none`,this.dom.setAttribute(`aria-hidden`,`true`);return}this.dom.style.display=`flex`,this.dom.setAttribute(`aria-hidden`,`false`);let u=this.dom.getBoundingClientRect(),d=o(n)?n:r,f=i.right-u.width,p=Math.min(d.left,f),m=d.top-u.height,h=a?a.y:-1/0;m<h&&(m=r.bottom),this.dom.style.left=`${p}px`,this.dom.style.top=`${m}px`,requestAnimationFrame(()=>{this.dom&&this.dom.setAttribute(`aria-hidden`,`false`)})}else this.dom.style.display=`none`,this.dom.setAttribute(`aria-hidden`,`true`)};destroy(){document.removeEventListener(`mousedown`,this.mousedown),document.removeEventListener(`mouseup`,this.mouseup),this.view.scrollDOM.removeEventListener(`scroll`,this.scroll),window.removeEventListener(`scroll`,this.windowScroll,!0),this.dom.remove()}}),Va=z.baseTheme({".cm-ai-tooltip-button":{userSelect:`none`,fontFamily:`system-ui, -apple-system, sans-serif`,position:`fixed`,display:`flex`,boxSizing:`border-box`,padding:`2px 6px`,borderRadius:`4px`,fontSize:`12px`,backgroundColor:`#0E639C`,color:`#ffffff`,border:`1px solid transparent`,boxShadow:`0 2px 4px rgba(0,0,0,0.1)`,zIndex:`999`,transition:`opacity 0.5s`,"&[aria-hidden='true']":{opacity:`0`},"&[aria-hidden='false']":{opacity:`1`},"& > span":{pointerEvents:`auto`,cursor:`pointer`,display:`inline-block`,padding:`2px`},"&:hover":{backgroundColor:`#1177bb`}}});function Ha(){return[Ba,Va]}var Ua=class extends Vn{oldCode;constructor(e){super(),this.oldCode=e}toDOM(e){let t=V(`div`,`cm-old-code-container`);t.setAttribute(`role`,`region`),t.setAttribute(`aria-label`,`Previous code version`);let n=V(`div`,`cm-old-code cm-line`);n.textContent=this.oldCode;let r=V(`div`,`cm-floating-buttons`),i=e.state.facet(oa),a={...ia,...i.keymaps},o=V(`button`,`cm-floating-button cm-floating-accept`);o.innerHTML=`<span class="hotkey">${Sa(a.acceptEdit)}</span> Accept`,o.setAttribute(`aria-label`,`Accept changes`),o.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),e.focus(),va(e)});let s=V(`button`,`cm-floating-button cm-floating-reject`);return s.innerHTML=`<span class="hotkey">${Sa(a.rejectEdit)}</span> Reject`,s.setAttribute(`aria-label`,`Reject changes`),s.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),e.focus(),ya(e)}),r.append(o,s),t.append(n,r),t}updateDOM(e,t){return!0}},Wa=class extends Vn{complete;abortController=null;dom=null;input=null;loadingContainer=null;helpInfo=null;inputContainer=null;form=null;view=null;constructor(e){super(),this.complete=e}toDOM(e){if(this.dom)return this.dom;this.view=e;let t=e.state.field(da),n=e.state.field(ha),r=V(`div`,`cm-ai-input-container`);this.inputContainer=r,this.dom=r;let i=V(`form`,`cm-ai-input-form`);this.form=i,i.setAttribute(`role`,`search`),i.setAttribute(`aria-label`,`AI editing instructions`),i.addEventListener(`submit`,e=>e.preventDefault());let a=V(`input`,`cm-ai-input`);this.input=a,i.append(a),a.placeholder=`Editing instructions...`,a.setAttribute(`aria-label`,`AI editing instructions`),a.setAttribute(`autocomplete`,`off`),a.setAttribute(`spellcheck`,`true`),a.value=t.inputValue;let o=V(`div`,`cm-ai-loading-container`);this.loadingContainer=o;let s=V(`div`,`cm-ai-loading-indicator`);s.setAttribute(`role`,`status`),s.setAttribute(`aria-live`,`polite`),s.textContent=`Generating`;let c=V(`button`,`cm-ai-cancel-button`);c.textContent=`Cancel`,c.setAttribute(`aria-label`,`Cancel code generation`),c.addEventListener(`click`,this.onCancel),o.append(c,s);let l=V(`div`,`cm-ai-help-info`);this.helpInfo=l;let u=l.appendChild(document.createElement(`button`));u.className=`cm-ai-help-info-button`,u.textContent=`Esc to close`,u.addEventListener(`click`,this.onCancel);let d=V(`button`,`cm-ai-generate-button`);d.textContent=`⏎ Generate`,d.setAttribute(`aria-label`,`Generate code`),d.addEventListener(`click`,this.handleSubmit),this.toggleLoading(n),t.shouldFocus&&requestAnimationFrame(()=>{a.value=t.inputValue,a.focus(),e.dispatch({effects:ua.of(!1)})}),f(a.value),a.addEventListener(`input`,m),a.addEventListener(`keydown`,this.onKeyDown);function f(e){l.replaceChildren(e?d:u)}let p=``;function m(){e.dispatch({effects:la.of(a.value)});let t=a.value.trim();t!==p&&(p=t,f(t))}return r}toggleLoading(e){this.inputContainer&&this.form&&this.loadingContainer&&this.helpInfo&&this.inputContainer?.replaceChildren(this.form,e?this.loadingContainer:this.helpInfo)}onKeyDown=async e=>{e.key===`Enter`&&!e.shiftKey?(e.preventDefault(),await this.handleSubmit()):e.key===`Escape`&&this.onCancel()};onCancel=()=>{this.cleanup();let e=this.view;e&&(e.dispatch({effects:[sa.of({show:!1,lineFrom:0,lineTo:0}),ma.of(!1)]}),e.focus())};handleSubmit=async e=>{let t=this.view;if(!t)return;let n=t.state.facet(oa);e?.stopPropagation();let r=t.state.field(ca),{input:i}=this;if(!i)return;let a=i.value.trim();if(!r.show||!a)return;let o=t.state.doc.line(r.lineFrom),s=t.state.doc.line(r.lineTo),c=o.from,l=s.to,u=t.state.sliceDoc(c,l),d=t.state.sliceDoc(0,c),f=t.state.sliceDoc(l);this.abortController=new AbortController,t.dispatch({effects:ma.of(!0)}),this.toggleLoading(!0);try{let e=await this.complete({prompt:a,selection:u,codeBefore:d,codeAfter:f,editorView:t,signal:this.abortController.signal});if(!t.state.field(ca).show)return;if(!e||typeof e!=`string`)throw Error(`Invalid completion result`);t.dispatch({changes:{from:c,to:l,insert:e},effects:[sa.of({show:!1,lineFrom:0,lineTo:0}),fa.of({from:c,to:c+e.length,oldCode:u,newCode:e}),ma.of(!1)]})}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;n.onError?.(e)}finally{this.cleanup(),this.toggleLoading(!1),t.focus()}};updateDOM(e,t){return this.dom=e,this.input=e.querySelector(`.cm-ai-input`),!0}cleanup(){this.abortController?.abort(),this.abortController=null,this.dom?.remove(),this.input?.remove(),this.dom=null,this.input=null}destroy(){this.cleanup()}};function Ga(e){if(!e.prompt)throw Error(`prompt function is required`);let t={...ia,...e.keymaps};return[oa.of(e),ca,da,pa,ha,Ha(),La,Fn.of([{key:t.showInput,run:_a}]),Jn.highest([Fn.of([{key:t.acceptEdit,run:va},{key:t.rejectEdit,run:ya}])]),Ka,qa,Ja,Ya]}var Ka=z.updateListener.of(e=>{let t=e.state.field(ca);if(!t.show||!e.docChanged)return;let{lineFrom:n,lineTo:r}=t,i=!1;e.changes.iterChanges((t,a,o,s)=>{let c=e.state.doc.lineAt(t).number;if(c<n){let t=e.state.doc.lineAt(s).number-e.state.doc.lineAt(o).number;n+=t,r+=t,i=!0}else if(c<=r){let t=e.state.doc.lineAt(s).number-e.state.doc.lineAt(o).number;r+=t,i=!0}}),i&&e.view.dispatch({effects:[sa.of({show:!0,lineFrom:n,lineTo:r})]})}),qa=z.decorations.of(e=>{let t=e.state.field(pa);return t?R.set([R.mark({class:`cm-new-code-line`}).range(t.from,t.to)]):R.none}),Ja=z.decorations.compute([ca],e=>{let t=e.field(ca),n=e.facet(oa),r=[];if(t.show){let i=t.lineFrom,a=t.lineTo;for(let t=i;t<=a;t++){let a=e.doc.line(t).from;r.push(R.line({class:`cm-ai-selection`}).range(a)),t===i&&r.push(R.widget({widget:new Wa(n.prompt),side:-1}).range(a))}}return R.set(r)}),Ya=Mn.define({create(e){return R.none},update(e,t){let n=t.state.field(pa);return n?R.set([R.widget({widget:new Ua(n.oldCode),block:!0}).range(n.from)]):R.none},provide:e=>z.decorations.from(e)}),H=Et(),U=e(u(),1),Xa=()=>({entries:new Map}),{valueAtom:Za,useActions:Qa}=dr(Xa,{submit:(e,t)=>{let{cellIds:n,deleteCell:r,deleteManyCells:i,store:a}=t,o=a.get(be),s=a.get(ve),c=new Set(o.cellIds.inOrderIds.filter(e=>o.cellData[e].code.trim()===``)),l=new Map;for(let e of n){if(c.has(e)){l.set(e,{cellId:e,type:`simple`});continue}let t=o.cellRuntime[e],n=new Map;for(let t of Object.values(s)){let r=t.declaredBy.includes(e),i=t.usedBy.some(e=>!c.has(e));r&&i&&n.set(t.name,t.usedBy)}let r;t?.runElapsedTimeMs&&t.runElapsedTimeMs>2e3&&(r=t.runElapsedTimeMs),n.size===0&&r===void 0?l.set(e,{cellId:e,type:`simple`}):l.set(e,{cellId:e,type:`expensive`,executionDurationMs:r,defs:n})}let u=[...l.values()].every(e=>e.type===`simple`);return l.size>0&&u?(l.size===1?r({cellId:[...l.values()][0].cellId}):i({cellIds:[...l.values()].map(e=>e.cellId)}),Xa()):{...e,entries:l}},clear:()=>Xa()});function $a(){let e=n(),{submit:t,clear:r}=Qa(),{entries:a}=i(Za),o=ai(),s=ii();return(0,U.useMemo)(()=>({submit:n=>{t({cellIds:n,deleteCell:o,deleteManyCells:s,store:e})},clear:r,get idle(){return a.size===0},get shouldConfirmDelete(){return a.size>1}}),[e,t,r,a,o,s])}function eo(e){let t=(0,H.c)(16),n=i(Za),r=Qa(),a=ii(),o;t[0]!==e||t[1]!==n.entries?(o=n.entries.get(e),t[0]=e,t[1]=n.entries,t[2]=o):o=t[2];let s=o;if(!s){let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e={isPending:!1},t[3]=e):e=t[3],e}if(n.entries.size!==1){let e;return t[4]===s?e=t[5]:(e={isPending:!0,shouldConfirmDelete:!1,...s},t[4]=s,t[5]=e),e}let c;t[6]!==r||t[7]!==a||t[8]!==n.entries?(c=()=>{a({cellIds:[...n.entries.values()].map(to)}),r.clear()},t[6]=r,t[7]=a,t[8]=n.entries,t[9]=c):c=t[9];let l;t[10]===r?l=t[11]:(l=()=>r.clear(),t[10]=r,t[11]=l);let u;return t[12]!==s||t[13]!==c||t[14]!==l?(u={isPending:!0,...s,shouldConfirmDelete:!0,confirm:c,cancel:l},t[12]=s,t[13]=c,t[14]=l,t[15]=u):u=t[15],u}function to(e){return e.cellId}async function no(e){if(!e.ok)throw Error(await e.text());if(!e.body)throw Error(`Failed to get response body`);let t=null,n=!1;if(await Lr({stream:jr({stream:e.body,schema:Rr}).pipeThrough(new TransformStream({transform(e){if(!e.success)throw e.error;let r=e.value;if(Nr(r)&&r.type===Ar)t=Mr.parse(r.data).code;else if(r.type===`error`)throw Error(r.errorText);else r.type===`finish`&&(n=r.finishReason===`stop`)}})),onError:e=>{throw e}}),!n)throw Error(`AI completion ended before final validation`);if(t===null)throw Error(`AI completion returned no cell code`);return t}async function ro(e){let t=`
4
4
  ${e.codeBefore}
5
5
  <rewrite_this>
@@ -1 +1 @@
1
- import{c as e,l as t,t as n,u as r}from"./useEvent-xfs0Sn4r.js";import{Bn as i,D as a,M as o,Mo as s,P as c,_o as l,br as u}from"./cells-CD9Jbpoa.js";import{t as d}from"./compiler-runtime-CYIjoINj.js";import{m as f}from"./utils-CUZQNAWJ.js";import{g as p}from"./useEventListener-D27Dii_l.js";import{r as m}from"./constants-BDbGiS7O.js";import{T as h,v as g}from"./config-DaNyNpZL.js";import{t as _}from"./cn-ldLVeaqm.js";import{t as v}from"./jsx-runtime-B74pBk57.js";import{r as y}from"./requests-C6_IaFh7.js";import{b}from"./write-secret-modal-lNU_7c2x.js";import{n as x}from"./paths-zcL04qUW.js";import{s as S}from"./session-CEdta5_Q.js";var C=d();function w(){return t(l)}function T(){let t=(0,C.c)(5),[i]=e(g),a=r(l),{openAlert:o}=b(),{sendRename:s}=y(),c;return t[0]!==i.state||t[1]!==o||t[2]!==s||t[3]!==a?(c=async e=>{let t=f();return i.state===h.OPEN?(S(t=>{e===null?t.delete(m.filePath):t.set(m.filePath,e)}),s({filename:e}).then(()=>(a(e),document.title=t.app_title||x.basename(e)||`Untitled Notebook`,e)).catch(e=>(o(e.message),null))):(o(`Failed to save notebook: not connected to a kernel.`),null)},t[0]=i.state,t[1]=o,t[2]=s,t[3]=a,t[4]=c):c=t[4],n(c)}var E=v(),D=e=>{let t=(0,C.c)(12),{className:n,cellId:r,variant:s,onClick:l,formatCellName:u,skipScroll:d}=e,f=c()[r]??``,p=o().inOrderIds.indexOf(r),{showCellIfHidden:m}=a(),h=u??j,g;t[0]===n?g=t[1]:(g=_(`inline-block cursor-pointer text-link hover:underline`,n),t[0]=n,t[1]=g);let v;t[2]!==r||t[3]!==l||t[4]!==m||t[5]!==d||t[6]!==s?(v=e=>{if(r===`__scratch__`)return!1;m({cellId:r}),e.stopPropagation(),e.preventDefault(),requestAnimationFrame(()=>{A(r,s,d)&&l?.()})},t[2]=r,t[3]=l,t[4]=m,t[5]=d,t[6]=s,t[7]=v):v=t[7];let y=h(i(f,p)),b;return t[8]!==g||t[9]!==v||t[10]!==y?(b=(0,E.jsx)(`div`,{className:g,role:`link`,tabIndex:-1,onClick:v,children:y}),t[8]=g,t[9]=v,t[10]=y,t[11]=b):b=t[11],b},O=e=>{let t=(0,C.c)(2),n;return t[0]===e?n=t[1]:(n=(0,E.jsx)(D,{...e,variant:`destructive`}),t[0]=e,t[1]=n),n},k=e=>{let t=(0,C.c)(10),{cellId:n,lineNumber:r}=e,i=w(),a;t[0]!==n||t[1]!==r?(a=()=>u(n,r),t[0]=n,t[1]=r,t[2]=a):a=t[2];let o;t[3]!==n||t[4]!==i?(o=e=>n===`__scratch__`?`scratch`:`marimo://${i||`untitled`}#cell=${e}`,t[3]=n,t[4]=i,t[5]=o):o=t[5];let s;return t[6]!==n||t[7]!==a||t[8]!==o?(s=(0,E.jsx)(D,{cellId:n,onClick:a,skipScroll:!0,variant:`destructive`,className:`traceback-cell-link`,formatCellName:o}),t[6]=n,t[7]=a,t[8]=o,t[9]=s):s=t[9],s};function A(e,t,n){let r=s.create(e),i=document.getElementById(r),a=i?.classList.contains(`has-error`);return i===null?(p.error(`Cell ${r} not found on page.`),!1):(n||i.scrollIntoView({behavior:`smooth`,block:`center`}),(t===`destructive`||a&&t===void 0)&&(i.classList.add(`error-outline`),setTimeout(()=>{i.classList.remove(`error-outline`)},2e3)),(t===`focus`||!a&&t===void 0)&&(i.classList.add(`focus-outline`),setTimeout(()=>{i.classList.remove(`focus-outline`)},2e3)),!0)}function j(e){return e}export{w as a,A as i,O as n,T as o,k as r,D as t};
1
+ import{c as e,l as t,t as n,u as r}from"./useEvent-xfs0Sn4r.js";import{Bn as i,D as a,M as o,Mo as s,P as c,_o as l,br as u}from"./cells-C6lBv8kg.js";import{t as d}from"./compiler-runtime-CYIjoINj.js";import{m as f}from"./utils-CUZQNAWJ.js";import{g as p}from"./useEventListener-D27Dii_l.js";import{r as m}from"./constants-BDbGiS7O.js";import{T as h,v as g}from"./config-DaNyNpZL.js";import{t as _}from"./cn-ldLVeaqm.js";import{t as v}from"./jsx-runtime-B74pBk57.js";import{r as y}from"./requests-C6_IaFh7.js";import{b}from"./write-secret-modal-lNU_7c2x.js";import{n as x}from"./paths-zcL04qUW.js";import{s as S}from"./session-CEdta5_Q.js";var C=d();function w(){return t(l)}function T(){let t=(0,C.c)(5),[i]=e(g),a=r(l),{openAlert:o}=b(),{sendRename:s}=y(),c;return t[0]!==i.state||t[1]!==o||t[2]!==s||t[3]!==a?(c=async e=>{let t=f();return i.state===h.OPEN?(S(t=>{e===null?t.delete(m.filePath):t.set(m.filePath,e)}),s({filename:e}).then(()=>(a(e),document.title=t.app_title||x.basename(e)||`Untitled Notebook`,e)).catch(e=>(o(e.message),null))):(o(`Failed to save notebook: not connected to a kernel.`),null)},t[0]=i.state,t[1]=o,t[2]=s,t[3]=a,t[4]=c):c=t[4],n(c)}var E=v(),D=e=>{let t=(0,C.c)(12),{className:n,cellId:r,variant:s,onClick:l,formatCellName:u,skipScroll:d}=e,f=c()[r]??``,p=o().inOrderIds.indexOf(r),{showCellIfHidden:m}=a(),h=u??j,g;t[0]===n?g=t[1]:(g=_(`inline-block cursor-pointer text-link hover:underline`,n),t[0]=n,t[1]=g);let v;t[2]!==r||t[3]!==l||t[4]!==m||t[5]!==d||t[6]!==s?(v=e=>{if(r===`__scratch__`)return!1;m({cellId:r}),e.stopPropagation(),e.preventDefault(),requestAnimationFrame(()=>{A(r,s,d)&&l?.()})},t[2]=r,t[3]=l,t[4]=m,t[5]=d,t[6]=s,t[7]=v):v=t[7];let y=h(i(f,p)),b;return t[8]!==g||t[9]!==v||t[10]!==y?(b=(0,E.jsx)(`div`,{className:g,role:`link`,tabIndex:-1,onClick:v,children:y}),t[8]=g,t[9]=v,t[10]=y,t[11]=b):b=t[11],b},O=e=>{let t=(0,C.c)(2),n;return t[0]===e?n=t[1]:(n=(0,E.jsx)(D,{...e,variant:`destructive`}),t[0]=e,t[1]=n),n},k=e=>{let t=(0,C.c)(10),{cellId:n,lineNumber:r}=e,i=w(),a;t[0]!==n||t[1]!==r?(a=()=>u(n,r),t[0]=n,t[1]=r,t[2]=a):a=t[2];let o;t[3]!==n||t[4]!==i?(o=e=>n===`__scratch__`?`scratch`:`marimo://${i||`untitled`}#cell=${e}`,t[3]=n,t[4]=i,t[5]=o):o=t[5];let s;return t[6]!==n||t[7]!==a||t[8]!==o?(s=(0,E.jsx)(D,{cellId:n,onClick:a,skipScroll:!0,variant:`destructive`,className:`traceback-cell-link`,formatCellName:o}),t[6]=n,t[7]=a,t[8]=o,t[9]=s):s=t[9],s};function A(e,t,n){let r=s.create(e),i=document.getElementById(r),a=i?.classList.contains(`has-error`);return i===null?(p.error(`Cell ${r} not found on page.`),!1):(n||i.scrollIntoView({behavior:`smooth`,block:`center`}),(t===`destructive`||a&&t===void 0)&&(i.classList.add(`error-outline`),setTimeout(()=>{i.classList.remove(`error-outline`)},2e3)),(t===`focus`||!a&&t===void 0)&&(i.classList.add(`focus-outline`),setTimeout(()=>{i.classList.remove(`focus-outline`)},2e3)),!0)}function j(e){return e}export{w as a,A as i,O as n,T as o,k as r,D as t};