@marimo-team/frontend 0.25.3-dev39 → 0.25.3-dev40

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 (183) hide show
  1. package/dist/assets/CellStatus-BGIWF94J.js +1 -0
  2. package/dist/assets/{ConnectedDataExplorerComponent-DMdJT25t.js → ConnectedDataExplorerComponent-D9UK8o9A.js} +1 -1
  3. package/dist/assets/{ErrorBoundary-D1ozl9e0.js → ErrorBoundary-hliG40Pk.js} +2 -2
  4. package/dist/assets/{JsonOutput-Dqg7qwkl.js → JsonOutput-9tmC-p6h.js} +6 -6
  5. package/dist/assets/{LazyAnyLanguageCodeMirror-B4fCknq1.js → LazyAnyLanguageCodeMirror-BPYE76jR.js} +2 -2
  6. package/dist/assets/{MarimoErrorOutput-BYSTEwo1.js → MarimoErrorOutput-BaHdbtck.js} +1 -1
  7. package/dist/assets/{RenderHTML-B18UiW8r.js → RenderHTML-B1FzB5NY.js} +1 -1
  8. package/dist/assets/{RunButton-CWvRnb98.js → RunButton-DpGokdF1.js} +1 -1
  9. package/dist/assets/{add-cell-with-ai-C4pN_ho7.js → add-cell-with-ai-BYWG0iKO.js} +2 -2
  10. package/dist/assets/{add-connection-dialog-BErVOfUV.js → add-connection-dialog-BWbUVPJk.js} +1 -1
  11. package/dist/assets/{agent-panel-QQDTP8Vb.js → agent-panel-DKNiQrAl.js} +1 -1
  12. package/dist/assets/ai-model-dropdown-CIg9eu47.js +13 -0
  13. package/dist/assets/{alert-dialog-BaPGzeOK.js → alert-dialog-C-sWmKva.js} +1 -1
  14. package/dist/assets/any-language-editor-DUMe1UCk.js +1 -0
  15. package/dist/assets/{app-config-button-DBHN-U2l.js → app-config-button-BvkL2eSY.js} +1 -1
  16. package/dist/assets/arrays-0R2reF2y.js +1 -0
  17. package/dist/assets/{blob-DY_W1wFZ.js → blob-BQfLiwKr.js} +1 -1
  18. package/dist/assets/{button-COI-NGrx.js → button-D8gVKwe-.js} +1 -1
  19. package/dist/assets/{cache-panel-DTY1dqvi.js → cache-panel-Byolv2ht.js} +1 -1
  20. package/dist/assets/{capabilities-BJvf-MD4.js → capabilities-Pq1YNPlK.js} +1 -1
  21. package/dist/assets/{cell-editor-CCFDuQIT.js → cell-editor-BKKUv4d5.js} +2 -2
  22. package/dist/assets/{cell-link-BOqoitvE.js → cell-link-B_QkRkm-.js} +1 -1
  23. package/dist/assets/{cells-CN1I_0eH.js → cells-CdH98VSn.js} +2 -2
  24. package/dist/assets/{chat-display-D1_UV6v7.js → chat-display-CNbRSebo.js} +1 -1
  25. package/dist/assets/{chat-panel-C4OJDIt6.js → chat-panel-HbEKDf0c.js} +1 -1
  26. package/dist/assets/{chat-ui-wuDYPZ-w.js → chat-ui-BwMev8Bf.js} +1 -1
  27. package/dist/assets/{circle-DXf-VWZG.js → circle-B6D_6D8w.js} +1 -1
  28. package/dist/assets/{code-visibility-CnU9xZw7.js → code-visibility-sQ37CBNo.js} +1 -1
  29. package/dist/assets/{column-preview-z4bqk4HW.js → column-preview-CsEBzIUE.js} +1 -1
  30. package/dist/assets/{command-palette-TblDi15Q.js → command-palette-BzZ86pUz.js} +1 -1
  31. package/dist/assets/{common-Cbk0KIh7.js → common-S2v8dsEy.js} +1 -1
  32. package/dist/assets/{components-C88UxBXz.js → components-D-TnFWjo.js} +1 -1
  33. package/dist/assets/{components-CskjK6xZ.js → components-DrU8dOzy.js} +1 -1
  34. package/dist/assets/{components-YBmtV0p6.js → components-lDm0qi2t.js} +1 -1
  35. package/dist/assets/{config-DEzFV5-l.js → config-BoBwH7CU.js} +1 -1
  36. package/dist/assets/{config-MaHeMC9o.js → config-CYsbZpwa.js} +2 -2
  37. package/dist/assets/{config-CA1V-wjh.js → config-DGX7JYor.js} +1 -1
  38. package/dist/assets/{copy-D8O_CYCG.js → copy-KlhazlhB.js} +1 -1
  39. package/dist/assets/{copy-icon-BIiRXh_3.js → copy-icon-8-a5vovc.js} +1 -1
  40. package/dist/assets/{createReducer-DgRODTW6.js → createReducer-HKXUbqyz.js} +1 -1
  41. package/dist/assets/{datasource-DZJ6qqVI.js → datasource-BA7YF4eo.js} +1 -1
  42. package/dist/assets/{dates-CfmdTL6B.js → dates-CQMwFko2.js} +1 -1
  43. package/dist/assets/{dependency-graph-panel-DeZ66gIo.js → dependency-graph-panel-DsjI61Qa.js} +1 -1
  44. package/dist/assets/{dist-iaThVDkA.js → dist-jlhMTKo_.js} +1 -1
  45. package/dist/assets/{documentation-panel-Tl5G1cPt.js → documentation-panel-hk3IdeXy.js} +1 -1
  46. package/dist/assets/{download-s8iwxGDb.js → download-CCZkq0y4.js} +1 -1
  47. package/dist/assets/{dropdown-menu-C1rnl-0o.js → dropdown-menu-DS6umAnH.js} +1 -1
  48. package/dist/assets/{edit-page-CjoAJvyN.js → edit-page-BgS6tjth.js} +4 -4
  49. package/dist/assets/{error-banner-COZ7SfYV.js → error-banner-B5kzVf_0.js} +1 -1
  50. package/dist/assets/{error-entries-D11Bn1Hk.js → error-entries-BVXrGOTZ.js} +1 -1
  51. package/dist/assets/{error-panel-kfxFDscu.js → error-panel-DYethUUR.js} +1 -1
  52. package/dist/assets/{es-Cqst59WX.js → es-N9SHpmG7.js} +1 -1
  53. package/dist/assets/feedback-button-DDzObtF2.js +1 -0
  54. package/dist/assets/{feedback-button-DVABjD9Y.js → feedback-button-DaNc3uJa.js} +1 -1
  55. package/dist/assets/{file-explorer-panel-CvmK-rEU.js → file-explorer-panel-CqnzSSYc.js} +1 -1
  56. package/dist/assets/{file-name-input-DAj9a3RQ.js → file-name-input-D4AvwZV9.js} +1 -1
  57. package/dist/assets/{floating-outline-DDavqWJx.js → floating-outline-CTy-Iakk.js} +1 -1
  58. package/dist/assets/{formats-BkelUASr.js → formats-zylfwejq.js} +1 -1
  59. package/dist/assets/{formatting-BqrP-n49.js → formatting-uom1es4b.js} +1 -1
  60. package/dist/assets/{fullscreen-B9tHcfpV.js → fullscreen-BWTs8pYZ.js} +1 -1
  61. package/dist/assets/{gallery-page-xP6VqDyd.js → gallery-page-ByjlvM6k.js} +1 -1
  62. package/dist/assets/{glide-data-editor-32vBJJf8.js → glide-data-editor-CABBj2b0.js} +2 -2
  63. package/dist/assets/{glide-utils-CIrAxdjv.js → glide-utils-HFqhvWHI.js} +2 -2
  64. package/dist/assets/{home-page-CvGzjVr4.js → home-page-DejRSjeJ.js} +3 -3
  65. package/dist/assets/{hooks-C1_gQ8kr.js → hooks-BJgCcVXZ.js} +1 -1
  66. package/dist/assets/{html-to-image-DK9Zl1lU.js → html-to-image-D_0rd3_B.js} +1 -1
  67. package/dist/assets/{index-6b4mf8Ai.css → index-ChfDZJzP.css} +1 -1
  68. package/dist/assets/index-PDJQd7X6.js +30 -0
  69. package/dist/assets/{input-BoBxR50a.js → input-ByHt6aoV.js} +1 -1
  70. package/dist/assets/{kiosk-mode-BZECfg9k.js → kiosk-mode-BGmMSc7A.js} +1 -1
  71. package/dist/assets/{layout-BccvBeZy.js → layout-Ct0rjb-5.js} +3 -3
  72. package/dist/assets/links-CXcpNIM0.js +1 -0
  73. package/dist/assets/{logs-panel-BhXo1sVJ.js → logs-panel-TyeqEvOY.js} +1 -1
  74. package/dist/assets/{markdown-renderer-D2dafr8r.js → markdown-renderer-BFyD6Jhs.js} +1 -1
  75. package/dist/assets/{menu-items-BrwnTgyK.js → menu-items-BgUyNUpu.js} +1 -1
  76. package/dist/assets/{mermaid-D2FUGQeW.js → mermaid-B6mqMm5_.js} +1 -1
  77. package/dist/assets/{name-cell-input-SHvgfcBR.js → name-cell-input-D-0VF3qd.js} +1 -1
  78. package/dist/assets/numbers-CsZVw3Dc.js +1 -0
  79. package/dist/assets/{objects-snlMn4yk.js → objects-rLPlQ3X_.js} +1 -1
  80. package/dist/assets/{once-Haz_uxEL.js → once-6KNTRW0u.js} +1 -1
  81. package/dist/assets/{outline-panel-CpY3FH-u.js → outline-panel-DMTjk2WC.js} +1 -1
  82. package/dist/assets/{packages-panel-oZ0qZBec.js → packages-panel-DrT69k9L.js} +1 -1
  83. package/dist/assets/{panel-accordion-state-ChFIY2WQ.js → panel-accordion-state-Ban6j---.js} +1 -1
  84. package/dist/assets/{panels-91ywfwgc.js → panels-BLYQRkEc.js} +1 -1
  85. package/dist/assets/process-output-DzpQYlpY.js +1 -0
  86. package/dist/assets/{readonly-code-display-C1eH5BDP.js → readonly-code-display-Cyn3k5TX.js} +1 -1
  87. package/dist/assets/{readonly-python-code-BaElyj-4.js → readonly-python-code-DrXDDAnA.js} +1 -1
  88. package/dist/assets/{renderShortcut-C1JwYcqW.js → renderShortcut-H60uiHBp.js} +1 -1
  89. package/dist/assets/{reveal-component-FCuqfC5H.js → reveal-component-_lKImPWP.js} +1 -1
  90. package/dist/assets/{run-page-CbyMlRt1.js → run-page-7UNg--Rj.js} +1 -1
  91. package/dist/assets/{runs-BLp5jezv.js → runs-6lJxKV1w.js} +1 -1
  92. package/dist/assets/{runtime-details-state-Bpn67vTN.js → runtime-details-state-CKOKhMhv.js} +1 -1
  93. package/dist/assets/{scratchpad-panel-OF9_e0l_.js → scratchpad-panel-C7h4MgqN.js} +1 -1
  94. package/dist/assets/{scroll-to-bottom-button-1FyowpWV.js → scroll-to-bottom-button-CIkON2WJ.js} +1 -1
  95. package/dist/assets/{secrets-panel-D7KN4tVs.js → secrets-panel-CmLZsNfp.js} +1 -1
  96. package/dist/assets/{select-DTBn5eTb.js → select-3CVGlYrC.js} +1 -1
  97. package/dist/assets/{session-DqoWmb7X.js → session-B8Y-GJnS.js} +1 -1
  98. package/dist/assets/{session-panel-CExxjkjV.js → session-panel-CLiWXc5y.js} +1 -1
  99. package/dist/assets/{snippets-panel-DfRtTFJ-.js → snippets-panel-Wrqaorxa.js} +1 -1
  100. package/dist/assets/{spec-BfSBcO5B.js → spec-uCpVvaAR.js} +1 -1
  101. package/dist/assets/{state-uwRvJLb8.js → state-BY4_P6ko.js} +1 -1
  102. package/dist/assets/{state-BAJYRhmO.js → state-C0irhlOZ.js} +1 -1
  103. package/dist/assets/{state-DxQnC_1I.js → state-Ck7FMD5A.js} +1 -1
  104. package/dist/assets/{state-C3oDoyFe.js → state-DaWgt-rn.js} +1 -1
  105. package/dist/assets/{state-BUqF6L9e.js → state-TVREh4u4.js} +1 -1
  106. package/dist/assets/{state-CHojzKpZ.js → state-_uXVmwuN.js} +1 -1
  107. package/dist/assets/{strings-B2vv-ENv.js → strings-C25fhMR_.js} +1 -1
  108. package/dist/assets/{swiper-component-a07domrZ.js → swiper-component-CRGRy5_O.js} +1 -1
  109. package/dist/assets/{switch-CTaiAjrz.js → switch-1h011wlH.js} +1 -1
  110. package/dist/assets/{tabs-BuQlZFbt.js → tabs-CY8E4r9U.js} +1 -1
  111. package/dist/assets/{terminal--4gDbK7q.js → terminal-Dp5gyJ7l.js} +1 -1
  112. package/dist/assets/{toast-BGzLGnvw.js → toast-Gzxi-le_.js} +1 -1
  113. package/dist/assets/{tooltip-BsSdc1NQ.js → tooltip-Brya4Ghn.js} +1 -1
  114. package/dist/assets/{tooltip-C9TuY18o.js → tooltip-CkGm8X7m.js} +1 -1
  115. package/dist/assets/tracing-fUNLyKuj.js +1 -0
  116. package/dist/assets/{tracing-panel-DNabsbtA.js → tracing-panel-Cx4OqOoP.js} +2 -2
  117. package/dist/assets/{tree-actions-BXvnBv45.js → tree-actions-B1vsdenY.js} +1 -1
  118. package/dist/assets/{use-restore-focus-BxEGwIbk.js → use-restore-focus-DdS7Tl0F.js} +1 -1
  119. package/dist/assets/{useAddCell-6ECZ0xPG.js → useAddCell-DZ-50qEG.js} +1 -1
  120. package/dist/assets/useAsyncData-DhhdOGGd.js +1 -0
  121. package/dist/assets/{useBoolean-BvAx9Qrr.js → useBoolean-5g-bBaYF.js} +1 -1
  122. package/dist/assets/{useCellActionButton-Djyiwayj.js → useCellActionButton-DINnRstv.js} +1 -1
  123. package/dist/assets/{useDeleteCell-KX6SEwki.js → useDeleteCell-CREJXVNp.js} +1 -1
  124. package/dist/assets/{useDependencyPanelTab-B8ke9iTY.js → useDependencyPanelTab-Cw5VT16Q.js} +1 -1
  125. package/dist/assets/{useEventListener-D9cftcHj.js → useEventListener-CjDeLqFC.js} +1 -1
  126. package/dist/assets/{useIframeCapabilities-CwTkczVN.js → useIframeCapabilities-Czr9e4uG.js} +1 -1
  127. package/dist/assets/{useInstallPackage-C9-icL78.js → useInstallPackage-Cw0dVELh.js} +1 -1
  128. package/dist/assets/{useInterval--x3s1VpI.js → useInterval-DJdQmXnq.js} +1 -1
  129. package/dist/assets/{useNotebookActions-CluLEhAd.js → useNotebookActions-B4av4mLc.js} +1 -1
  130. package/dist/assets/{useRunCells-B847kPLO.js → useRunCells-BHBMk9zW.js} +1 -1
  131. package/dist/assets/{useSplitCell-CnvTmIw7.js → useSplitCell-DAgwZV0q.js} +1 -1
  132. package/dist/assets/{useTheme-n8Dj1zH7.js → useTheme-DLtPc-39.js} +1 -1
  133. package/dist/assets/{utils-CaQYvazl.js → utils-DfElfBpz.js} +1 -1
  134. package/dist/assets/vega-component-pQE2mKc1.js +1 -0
  135. package/dist/assets/{vega-embed-container-CxuIHhsS.js → vega-embed-container-DtArSJz1.js} +1 -1
  136. package/dist/assets/{write-secret-modal-DzKAInL2.js → write-secret-modal-usRSi1bb.js} +1 -1
  137. package/dist/index.html +68 -68
  138. package/package.json +1 -1
  139. package/src/components/app-config/ai-config.tsx +5 -1
  140. package/src/components/data-table/__tests__/date-popover.test.tsx +72 -0
  141. package/src/components/data-table/column-visibility-dropdown.tsx +8 -13
  142. package/src/components/data-table/columns.tsx +2 -1
  143. package/src/components/data-table/date-popover.tsx +6 -4
  144. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +2 -2
  145. package/src/components/editor/ai/add-cell-with-ai.tsx +3 -3
  146. package/src/components/editor/connections/components.tsx +1 -1
  147. package/src/components/editor/output/MarimoTracebackOutput.tsx +1 -1
  148. package/src/components/pages/home-page.tsx +4 -4
  149. package/src/components/tracing/tracing.tsx +2 -2
  150. package/src/core/cells/pending-delete-service.ts +2 -6
  151. package/src/core/datasets/__tests__/data-source-discovery.test.ts +4 -4
  152. package/src/core/datasets/data-source-discovery.ts +4 -6
  153. package/src/core/hotkeys/actions.ts +2 -4
  154. package/src/core/runtime/runtime.ts +3 -4
  155. package/src/hooks/__tests__/useAsyncData.test.tsx +148 -0
  156. package/src/hooks/useAsyncData.ts +3 -3
  157. package/src/hooks/useDataSourceDiscovery.ts +6 -4
  158. package/src/hooks/useElapsedTime.ts +3 -3
  159. package/src/plugins/core/registerReactComponent.tsx +1 -1
  160. package/src/plugins/impl/DropdownPlugin.tsx +2 -6
  161. package/src/plugins/impl/FormPlugin.tsx +1 -1
  162. package/src/plugins/impl/code/any-language-editor.tsx +2 -2
  163. package/src/plugins/impl/data-editor/glide-data-editor.tsx +8 -5
  164. package/src/plugins/impl/data-editor/glide-utils.ts +3 -1
  165. package/src/plugins/impl/vega/make-selectable.ts +3 -6
  166. package/src/utils/__tests__/arrays.test.ts +35 -0
  167. package/src/utils/__tests__/numbers.test.ts +48 -1
  168. package/src/utils/__tests__/objects.test.ts +21 -0
  169. package/src/utils/arrays.ts +10 -0
  170. package/src/utils/numbers.ts +28 -17
  171. package/src/utils/objects.ts +3 -7
  172. package/dist/assets/CellStatus-wFCGHpDX.js +0 -1
  173. package/dist/assets/ai-model-dropdown-D5Fe5GS-.js +0 -13
  174. package/dist/assets/any-language-editor-BdTWdMCI.js +0 -1
  175. package/dist/assets/arrays-BqUx5USx.js +0 -1
  176. package/dist/assets/feedback-button-3bZHpuSh.js +0 -1
  177. package/dist/assets/index-Dtv0HH-7.js +0 -30
  178. package/dist/assets/links-DkkL9DVa.js +0 -1
  179. package/dist/assets/numbers-Mk3-CcoU.js +0 -1
  180. package/dist/assets/process-output-Dvq4b2kJ.js +0 -1
  181. package/dist/assets/tracing-BnfAB-BH.js +0 -1
  182. package/dist/assets/useAsyncData-C7aJJz0Y.js +0 -1
  183. package/dist/assets/vega-component-DAkdRNSF.js +0 -1
@@ -1 +1 @@
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{o as r}from"./useEventListener-D9cftcHj.js";import{t as i}from"./cn-ldLVeaqm.js";import{t as a}from"./jsx-runtime-B74pBk57.js";import{C as o,i as s,s as c,w as l}from"./fullscreen-B9tHcfpV.js";import{a as u,c as ee,i as d,l as f,n as p,o as m,r as h,s as g,t as _,u as v}from"./use-restore-focus-BxEGwIbk.js";import{n as y}from"./button-COI-NGrx.js";var b=e(t(),1),x=a(),S=Object.defineProperty,C=(e,t)=>S(e,`name`,{value:t,configurable:!0}),[w,te]=l(`AlertDialog`,[v]),T=v(),E=C(e=>{let{__scopeAlertDialog:t,...n}=e,r=T(t);return(0,x.jsx)(p,{...r,...n,modal:!0})},`AlertDialog`),D=b.forwardRef(C(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=T(n);return(0,x.jsx)(f,{...i,...r,ref:t})},`AlertDialogTrigger`)),O=C(e=>{let{__scopeAlertDialog:t,...n}=e,r=T(t);return(0,x.jsx)(g,{...r,...n})},`AlertDialogPortal`),ne=b.forwardRef(C(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=T(n);return(0,x.jsx)(m,{...i,...r,ref:t})},`AlertDialogOverlay`)),[re,ie]=w(`AlertDialogContent`),ae=b.forwardRef(C(function(e,t){let{__scopeAlertDialog:n,children:i,...a}=e,s=T(n),c=b.useRef(null),l=r(t,c),u=b.useRef(null);return(0,x.jsx)(re,{scope:n,cancelRef:u,children:(0,x.jsx)(d,{role:`alertdialog`,...s,...a,ref:l,onOpenAutoFocus:o(a.onOpenAutoFocus,e=>{e.preventDefault(),u.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:i})})},`AlertDialogContent`)),k=b.forwardRef(C(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=T(n);return(0,x.jsx)(ee,{...i,...r,ref:t})},`AlertDialogTitle`)),oe=b.forwardRef(C(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=T(n);return(0,x.jsx)(u,{...i,...r,ref:t})},`AlertDialogDescription`)),se=b.forwardRef(C(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=T(n);return(0,x.jsx)(h,{...i,...r,ref:t})},`AlertDialogAction`)),A=`AlertDialogCancel`,j=b.forwardRef(C(function(e,t){let{__scopeAlertDialog:n,...i}=e,{cancelRef:a}=ie(A,n),o=T(n),s=r(t,a);return(0,x.jsx)(h,{...o,...i,ref:s})},`AlertDialogCancel`)),M=E,N=D,P=O,F=ne,I=ae,L=se,R=j,z=k,B=oe,V=n(),H=M,U=N,W=s(({children:e,...t})=>(0,x.jsx)(P,{...t,children:(0,x.jsx)(c,{children:(0,x.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-end justify-center sm:items-start sm:top-[15%]`,children:e})})}));W.displayName=P.displayName;var G=b.forwardRef((e,t)=>{let n=(0,V.c)(9),r,a;if(n[0]!==e){let{className:t,children:i,...o}=e;r=t,a=o,n[0]=e,n[1]=r,n[2]=a}else r=n[1],a=n[2];let o;n[3]===r?o=n[4]:(o=i(`fixed inset-0 z-50 bg-background/80 backdrop-blur-xs transition-opacity animate-in fade-in`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,x.jsx)(F,{className:o,...a,ref:t}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});G.displayName=F.displayName;var K=b.forwardRef((e,t)=>{let n=(0,V.c)(11),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o=_(),s;n[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,x.jsx)(G,{}),n[3]=s):s=n[3];let c;n[4]===r?c=n[5]:(c=i(`fixed z-50 grid w-full max-w-2xl scale-100 gap-4 border bg-background p-6 opacity-100 shadow-sm animate-in fade-in-90 slide-in-from-bottom-10 sm:rounded-lg sm:zoom-in-90 sm:slide-in-from-bottom-0 md:w-full`,r),n[4]=r,n[5]=c);let l;return n[6]!==a||n[7]!==t||n[8]!==o||n[9]!==c?(l=(0,x.jsxs)(W,{children:[s,(0,x.jsx)(I,{ref:t,className:c,...o,...a})]}),n[6]=a,n[7]=t,n[8]=o,n[9]=c,n[10]=l):l=n[10],l});K.displayName=I.displayName;var q=e=>{let t=(0,V.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(`flex flex-col space-y-2 text-center sm:text-left`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,x.jsx)(`div`,{className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o};q.displayName=`AlertDialogHeader`;var J=e=>{let t=(0,V.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(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,x.jsx)(`div`,{className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o};J.displayName=`AlertDialogFooter`;var Y=b.forwardRef((e,t)=>{let n=(0,V.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(`text-lg font-semibold`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,x.jsx)(z,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});Y.displayName=z.displayName;var X=b.forwardRef((e,t)=>{let n=(0,V.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(`text-muted-foreground`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,x.jsx)(B,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});X.displayName=B.displayName;var Z=b.forwardRef((e,t)=>{let n=(0,V.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(y(),r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,x.jsx)(L,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});Z.displayName=L.displayName;var Q=b.forwardRef((e,t)=>{let n=(0,V.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(y({variant:`destructive`}),r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,x.jsx)(L,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});Q.displayName=`AlertDialogDestructiveAction`;var $=b.forwardRef((e,t)=>{let n=(0,V.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(y({variant:`secondary`}),`mt-2 sm:mt-0`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,x.jsx)(R,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});$.displayName=R.displayName;export{X as a,q as c,K as i,Y as l,Z as n,Q as o,$ as r,J as s,H as t,U as u};
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{o as r}from"./useEventListener-CjDeLqFC.js";import{t as i}from"./cn-ldLVeaqm.js";import{t as a}from"./jsx-runtime-B74pBk57.js";import{C as o,i as s,s as c,w as l}from"./fullscreen-BWTs8pYZ.js";import{a as u,c as ee,i as d,l as f,n as p,o as m,r as h,s as g,t as _,u as v}from"./use-restore-focus-DdS7Tl0F.js";import{n as y}from"./button-D8gVKwe-.js";var b=e(t(),1),x=a(),S=Object.defineProperty,C=(e,t)=>S(e,`name`,{value:t,configurable:!0}),[w,te]=l(`AlertDialog`,[v]),T=v(),E=C(e=>{let{__scopeAlertDialog:t,...n}=e,r=T(t);return(0,x.jsx)(p,{...r,...n,modal:!0})},`AlertDialog`),D=b.forwardRef(C(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=T(n);return(0,x.jsx)(f,{...i,...r,ref:t})},`AlertDialogTrigger`)),O=C(e=>{let{__scopeAlertDialog:t,...n}=e,r=T(t);return(0,x.jsx)(g,{...r,...n})},`AlertDialogPortal`),ne=b.forwardRef(C(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=T(n);return(0,x.jsx)(m,{...i,...r,ref:t})},`AlertDialogOverlay`)),[re,ie]=w(`AlertDialogContent`),ae=b.forwardRef(C(function(e,t){let{__scopeAlertDialog:n,children:i,...a}=e,s=T(n),c=b.useRef(null),l=r(t,c),u=b.useRef(null);return(0,x.jsx)(re,{scope:n,cancelRef:u,children:(0,x.jsx)(d,{role:`alertdialog`,...s,...a,ref:l,onOpenAutoFocus:o(a.onOpenAutoFocus,e=>{e.preventDefault(),u.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:i})})},`AlertDialogContent`)),k=b.forwardRef(C(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=T(n);return(0,x.jsx)(ee,{...i,...r,ref:t})},`AlertDialogTitle`)),oe=b.forwardRef(C(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=T(n);return(0,x.jsx)(u,{...i,...r,ref:t})},`AlertDialogDescription`)),se=b.forwardRef(C(function(e,t){let{__scopeAlertDialog:n,...r}=e,i=T(n);return(0,x.jsx)(h,{...i,...r,ref:t})},`AlertDialogAction`)),A=`AlertDialogCancel`,j=b.forwardRef(C(function(e,t){let{__scopeAlertDialog:n,...i}=e,{cancelRef:a}=ie(A,n),o=T(n),s=r(t,a);return(0,x.jsx)(h,{...o,...i,ref:s})},`AlertDialogCancel`)),M=E,N=D,P=O,F=ne,I=ae,L=se,R=j,z=k,B=oe,V=n(),H=M,U=N,W=s(({children:e,...t})=>(0,x.jsx)(P,{...t,children:(0,x.jsx)(c,{children:(0,x.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-end justify-center sm:items-start sm:top-[15%]`,children:e})})}));W.displayName=P.displayName;var G=b.forwardRef((e,t)=>{let n=(0,V.c)(9),r,a;if(n[0]!==e){let{className:t,children:i,...o}=e;r=t,a=o,n[0]=e,n[1]=r,n[2]=a}else r=n[1],a=n[2];let o;n[3]===r?o=n[4]:(o=i(`fixed inset-0 z-50 bg-background/80 backdrop-blur-xs transition-opacity animate-in fade-in`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,x.jsx)(F,{className:o,...a,ref:t}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});G.displayName=F.displayName;var K=b.forwardRef((e,t)=>{let n=(0,V.c)(11),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o=_(),s;n[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,x.jsx)(G,{}),n[3]=s):s=n[3];let c;n[4]===r?c=n[5]:(c=i(`fixed z-50 grid w-full max-w-2xl scale-100 gap-4 border bg-background p-6 opacity-100 shadow-sm animate-in fade-in-90 slide-in-from-bottom-10 sm:rounded-lg sm:zoom-in-90 sm:slide-in-from-bottom-0 md:w-full`,r),n[4]=r,n[5]=c);let l;return n[6]!==a||n[7]!==t||n[8]!==o||n[9]!==c?(l=(0,x.jsxs)(W,{children:[s,(0,x.jsx)(I,{ref:t,className:c,...o,...a})]}),n[6]=a,n[7]=t,n[8]=o,n[9]=c,n[10]=l):l=n[10],l});K.displayName=I.displayName;var q=e=>{let t=(0,V.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(`flex flex-col space-y-2 text-center sm:text-left`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,x.jsx)(`div`,{className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o};q.displayName=`AlertDialogHeader`;var J=e=>{let t=(0,V.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(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a?(o=(0,x.jsx)(`div`,{className:a,...r}),t[5]=r,t[6]=a,t[7]=o):o=t[7],o};J.displayName=`AlertDialogFooter`;var Y=b.forwardRef((e,t)=>{let n=(0,V.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(`text-lg font-semibold`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,x.jsx)(z,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});Y.displayName=z.displayName;var X=b.forwardRef((e,t)=>{let n=(0,V.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(`text-muted-foreground`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,x.jsx)(B,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});X.displayName=B.displayName;var Z=b.forwardRef((e,t)=>{let n=(0,V.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(y(),r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,x.jsx)(L,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});Z.displayName=L.displayName;var Q=b.forwardRef((e,t)=>{let n=(0,V.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(y({variant:`destructive`}),r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,x.jsx)(L,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});Q.displayName=`AlertDialogDestructiveAction`;var $=b.forwardRef((e,t)=>{let n=(0,V.c)(9),r,a;n[0]===e?(r=n[1],a=n[2]):({className:r,...a}=e,n[0]=e,n[1]=r,n[2]=a);let o;n[3]===r?o=n[4]:(o=i(y({variant:`secondary`}),`mt-2 sm:mt-0`,r),n[3]=r,n[4]=o);let s;return n[5]!==a||n[6]!==t||n[7]!==o?(s=(0,x.jsx)(R,{ref:t,className:o,...a}),n[5]=a,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});$.displayName=R.displayName;export{X as a,q as c,K as i,Y as l,Z as n,Q as o,$ as r,J as s,H as t,U as u};
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime-B0Z9INg1.js";import{t as e}from"./react-DVplv7_D.js";import{t}from"./compiler-runtime-BrajqUja.js";import{g as n}from"./useEventListener-CjDeLqFC.js";import{t as r}from"./jsx-runtime-B74pBk57.js";import{t as i}from"./copy-icon-8-a5vovc.js";import{n as a}from"./error-banner-B5kzVf_0.js";import{t as o}from"./esm-CI_o7NhW.js";import{n as s,t as c}from"./esm-CQuf--zt.js";var l=t();e();var u=r(),d={python:`py`,python3:`py`,javascript:`js`,typescript:`ts`,shell:`sh`,bash:`sh`,unknown:`text`,undefined:`text`},f=[];function p(e){return e?e in c:!1}var m=e=>{let t=(0,l.c)(30),r,m,h,g,_;t[0]===e?(r=t[1],m=t[2],h=t[3],g=t[4],_=t[5]):({language:h,hideUnsupportedLanguageErrors:r,showCopyButton:g,extensions:_,...m}=e,t[0]=e,t[1]=r,t[2]=m,t[3]=h,t[4]=g,t[5]=_);let v=_===void 0?f:_,y=d[h||``]||h,b;t[6]===y?b=t[7]:(b=p(y),t[6]=y,t[7]=b);let x=b;x||n.warn(`Language ${y} not found in CodeMirror.`);let S;bb0:{if(!p(y)){S=v;break bb0}let e;t[8]===y?e=t[9]:(e=s(y),t[8]=y,t[9]=e);let n;t[10]!==v||t[11]!==e?(n=[e,...v].filter(Boolean),t[10]=v,t[11]=e,t[12]=n):n=t[12],S=n}let C=S,w;t[13]!==r||t[14]!==x||t[15]!==y?(w=!x&&!r&&(0,u.jsx)(a,{className:`mb-1 rounded-sm`,error:`Language ${y} not supported. Supported languages are: ${Object.keys(c).join(`, `)}`}),t[13]=r,t[14]=x,t[15]=y,t[16]=w):w=t[16];let T;t[17]!==x||t[18]!==m||t[19]!==g?(T=g&&x&&(0,u.jsx)(i,{tooltip:!1,buttonClassName:`absolute top-2 right-2 z-10 hover-action`,className:`h-4 w-4 text-muted-foreground`,value:m.value||``,toastTitle:`Copied to clipboard`}),t[17]=x,t[18]=m,t[19]=g,t[20]=T):T=t[20];let E;t[21]===C?E=t[22]:(E=[...C],t[21]=C,t[22]=E);let D;t[23]!==m||t[24]!==E?(D=(0,u.jsx)(o,{...m,extensions:E}),t[23]=m,t[24]=E,t[25]=D):D=t[25];let O;return t[26]!==w||t[27]!==T||t[28]!==D?(O=(0,u.jsxs)(`div`,{className:`relative w-full group hover-actions-parent`,children:[w,T,D]}),t[26]=w,t[27]=T,t[28]=D,t[29]=O):O=t[29],O};export{d as LANGUAGE_MAP,m as default};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t}from"./useEvent-Dfcbgjhg.js";import{t as n}from"./react-DVplv7_D.js";import{$t as r,Bn as i,En as a,On as o,Xt as s,Yt as c,Zt as l,cn as u,dn as d,en as f,nn as p,tn as m,un as h}from"./cells-CN1I_0eH.js";import{P as g}from"./config-MaHeMC9o.js";import{t as _}from"./compiler-runtime-BrajqUja.js";import{D as v,O as y,S as b}from"./config-CA1V-wjh.js";import{t as x}from"./jsx-runtime-B74pBk57.js";import{o as S}from"./alert-dialog-BaPGzeOK.js";import{l as C}from"./select-DTBn5eTb.js";import{c as w}from"./switch-CTaiAjrz.js";import{t as T}from"./tooltip-C9TuY18o.js";import{t as E}from"./button-COI-NGrx.js";import{t as D}from"./createLucideIcon-DfJ2oMlA.js";import{d as O,f as k,i as A,k as j,n as M,u as N}from"./ai-model-dropdown-D5Fe5GS-.js";import{r as P}from"./useNumberFormatter-D7O_26UI.js";import{b as F,p as I}from"./write-secret-modal-DzKAInL2.js";import{Jt as L,Yt as R,nn as ee,r as z,tn as B}from"./input-BoBxR50a.js";import{t as V}from"./settings-BpdQZRgT.js";import{t as te}from"./use-toast-Wu434mLr.js";import{s as H}from"./arrays-BqUx5USx.js";import{r as U}from"./requests-lt0JK8Jt.js";import{r as ne}from"./useDebounce-B_ccBZTp.js";import{t as W}from"./kbd-pdKBv96t.js";import{t as G}from"./Inputs-BsQm29hD.js";var K=D(`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=_(),J=x(),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}=F(),{sendShutdown:l}=U(),u;t[0]===l?u=t[1]:(u=()=>{l(),setTimeout(X,200)},t[0]=l,t[1]=u);let d=u;if(g())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)(S,{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)(P,{strokeWidth:1}),t[7]=m):m=t[7];let h;t[8]!==a||t[9]!==f||t[10]!==p?(h=(0,J.jsx)(G,{"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 _;return t[12]!==h||t[13]!==o?(_=(0,J.jsx)(T,{content:o,children:h}),t[12]=h,t[13]=o,t[14]=_):_=t[14],_};function X(){window.close()}var Z=e(n(),1),re=100,ie=()=>{let e=(0,q.c)(37),[t,n]=b(),{saveAppConfig:u}=U(),d=(0,Z.useId)(),h=(0,Z.useId)(),g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=a(v),e[0]=g):g=e[0];let _;e[1]===t?_=e[2]:(_={resolver:g,defaultValues:t},e[1]=t,e[2]=_);let y=o(_),x;e[3]!==u||e[4]!==n?(x=async e=>{await u({config:e}).then(()=>{n(e)}).catch(()=>{n(e)})},e[3]=u,e[4]=n,e[5]=x):x=e[5];let S=x,C;e[6]===S?C=e[7]:(C=e=>{S(e)},e[6]=S,e[7]=C);let w=ne(C,re),T;e[8]===t.width?T=e[9]:(T=[t.width],e[8]=t.width,e[9]=T),(0,Z.useEffect)(ae,T);let E;e[10]!==w||e[11]!==y?(E=y.handleSubmit(w),e[10]=w,e[11]=y,e[12]=E):E=e[12];let D;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,J.jsxs)(`div`,{children:[(0,J.jsx)(k,{children:`Notebook Settings`}),(0,J.jsx)(O,{children:`Configure how your notebook or application looks and behaves.`})]}),e[13]=D):D=e[13];let A;e[14]===y.control?A=e[15]:(A=(0,J.jsxs)(Q,{title:`Display`,children:[(0,J.jsx)(r,{control:y.control,name:`width`,render:se}),(0,J.jsx)(r,{control:y.control,name:`app_title`,render:$})]}),e[14]=y.control,e[15]=A);let j;e[16]===y.control?j=e[17]:(j=(0,J.jsxs)(Q,{title:`Custom Files`,children:[(0,J.jsx)(r,{control:y.control,name:`css_file`,render:ce}),(0,J.jsx)(r,{control:y.control,name:`html_head_file`,render:le})]}),e[16]=y.control,e[17]=j);let M;e[18]===y.control?M=e[19]:(M=(0,J.jsx)(Q,{title:`Data`,children:(0,J.jsx)(r,{control:y.control,name:`sql_output`,render:de})}),e[18]=y.control,e[19]=M);let N;e[20]!==d||e[21]!==h?(N=e=>{let{field:t}=e;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,J.jsxs)(f,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(s,{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)(i,{id:d,"data-testid":`html-checkbox`,checked:t.value.includes(`html`),onCheckedChange:()=>{t.onChange(H(t.value,`html`))}}),(0,J.jsx)(m,{htmlFor:d,children:`HTML`})]}),(0,J.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,J.jsx)(i,{id:h,"data-testid":`ipynb-checkbox`,checked:t.value.includes(`ipynb`),onCheckedChange:()=>{t.onChange(H(t.value,`ipynb`))}}),(0,J.jsx)(m,{htmlFor:h,children:`IPYNB`})]})]})}),(0,J.jsx)(p,{})]}),(0,J.jsxs)(l,{children:[`When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named`,` `,(0,J.jsx)(W,{className:`inline`,children:`__marimo__`}),` next to your notebook file.`]})]})},e[20]=d,e[21]=h,e[22]=N):N=e[22];let P;e[23]!==y.control||e[24]!==N?(P=(0,J.jsx)(Q,{title:`Exporting outputs`,children:(0,J.jsx)(r,{control:y.control,name:`auto_download`,render:N})}),e[23]=y.control,e[24]=N,e[25]=P):P=e[25];let F;e[26]!==P||e[27]!==A||e[28]!==j||e[29]!==M?(F=(0,J.jsxs)(`div`,{className:`grid grid-cols-2 gap-x-8 gap-y-4`,children:[A,j,M,P]}),e[26]=P,e[27]=A,e[28]=j,e[29]=M,e[30]=F):F=e[30];let I;e[31]!==F||e[32]!==E?(I=(0,J.jsxs)(`form`,{onChange:E,className:`flex flex-col gap-6`,children:[D,F]}),e[31]=F,e[32]=E,e[33]=I):I=e[33];let L;return e[34]!==y||e[35]!==I?(L=(0,J.jsx)(c,{...y,children:I}),e[34]=y,e[35]=I,e[36]=L):L=e[36],L},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)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(m,{children:`Width`}),(0,J.jsx)(s,{children:(0,J.jsx)(C,{"data-testid":`app-width-select`,onChange:e=>t.onChange(e.target.value),value:t.value,disabled:t.disabled,className:`inline-flex mr-2`,children:j().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)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(m,{children:`App title`}),(0,J.jsx)(s,{children:(0,J.jsx)(z,{...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)(l,{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)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(m,{className:`shrink-0`,children:`Custom CSS`}),(0,J.jsx)(s,{children:(0,J.jsx)(z,{...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)(l,{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)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(m,{className:`shrink-0`,children:`HTML Head`}),(0,J.jsx)(s,{children:(0,J.jsx)(z,{...t,value:t.value??``,placeholder:`head.html`,onChange:e=>{t.onChange(e.target.value)}})}),(0,J.jsx)(p,{})]}),(0,J.jsxs)(l,{children:[`A filepath to an HTML file to be injected into the`,` `,(0,J.jsx)(W,{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)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(m,{children:`SQL Output Type`}),(0,J.jsx)(s,{children:(0,J.jsx)(C,{"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:N.map(ue)})}),(0,J.jsx)(p,{})]}),(0,J.jsxs)(l,{children:[`The Python type returned by a SQL cell. For best performance with large datasets, we recommend using`,` `,(0,J.jsx)(W,{className:`inline`,children:`native`}),`. See the`,` `,(0,J.jsx)(I,{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,[l,f]=t(M),p=s?`disabled`:`hint-green`,m;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,J.jsx)(V,{strokeWidth:1.8}),n[0]=m):m=n[0];let g;n[1]===c?g=n[2]:(g=(0,J.jsx)(T,{content:c,children:m}),n[1]=c,n[2]=g);let _;n[3]!==s||n[4]!==p||n[5]!==g?(_=(0,J.jsx)(G,{"aria-label":`Config`,"data-testid":`app-config-button`,shape:`circle`,size:`small`,className:`h-[27px] w-[27px]`,disabled:s,color:p,children:g}),n[3]=s,n[4]=p,n[5]=g,n[6]=_):_=n[6];let v=_,y;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,J.jsxs)(R,{className:`w-[90vw] h-[90vh] overflow-hidden sm:max-w-5xl top-[5vh] p-0`,children:[(0,J.jsx)(w,{children:(0,J.jsx)(B,{children:`User settings`})}),(0,J.jsx)(A,{})]}),n[7]=y):y=n[7];let b=y;if(!o){let e;n[8]===v?e=n[9]:(e=(0,J.jsx)(ee,{children:v}),n[8]=v,n[9]=e);let t;return n[10]!==f||n[11]!==l||n[12]!==e?(t=(0,J.jsxs)(L,{open:l,onOpenChange:f,children:[e,b]}),n[10]=f,n[11]=l,n[12]=e,n[13]=t):t=n[13],t}let x;n[14]===v?x=n[15]:(x=(0,J.jsx)(d,{asChild:!0,children:v}),n[14]=v,n[15]=x);let S,C;n[16]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,J.jsx)(ie,{}),C=(0,J.jsx)(`div`,{className:`h-px bg-border my-2`}),n[16]=S,n[17]=C):(S=n[16],C=n[17]);let D;n[18]===f?D=n[19]:(D=()=>f(!0),n[18]=f,n[19]=D);let O;n[20]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,J.jsx)(V,{strokeWidth:1.8,className:`w-4 h-4 mr-2`}),n[20]=O):O=n[20];let k;n[21]===D?k=n[22]:(k=(0,J.jsxs)(h,{className:`w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]`,align:`end`,side:`bottom`,onFocusOutside:pe,children:[S,C,(0,J.jsxs)(E,{onClick:D,variant:`link`,className:`px-0`,children:[O,`User settings`]})]}),n[21]=D,n[22]=k);let j;n[23]!==k||n[24]!==x?(j=(0,J.jsxs)(u,{children:[x,k]}),n[23]=k,n[24]=x,n[25]=j):j=n[25];let N;n[26]!==f||n[27]!==l?(N=(0,J.jsx)(L,{open:l,onOpenChange:f,children:b}),n[26]=f,n[27]=l,n[28]=N):N=n[28];let P;return n[29]!==j||n[30]!==N?(P=(0,J.jsxs)(J.Fragment,{children:[j,N]}),n[29]=j,n[30]=N,n[31]=P):P=n[31],P};function pe(e){return e.preventDefault()}export{Y as n,K as r,fe as t};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t}from"./useEvent-Dfcbgjhg.js";import{t as n}from"./react-DVplv7_D.js";import{$t as r,Bn as i,En as a,On as o,Xt as s,Yt as c,Zt as l,cn as u,dn as d,en as f,nn as p,tn as m,un as h}from"./cells-CdH98VSn.js";import{P as g}from"./config-CYsbZpwa.js";import{t as _}from"./compiler-runtime-BrajqUja.js";import{D as v,O as y,S as b}from"./config-DGX7JYor.js";import{t as x}from"./jsx-runtime-B74pBk57.js";import{o as S}from"./alert-dialog-C-sWmKva.js";import{l as C}from"./select-3CVGlYrC.js";import{c as w}from"./switch-1h011wlH.js";import{t as T}from"./tooltip-CkGm8X7m.js";import{t as E}from"./button-D8gVKwe-.js";import{t as D}from"./createLucideIcon-DfJ2oMlA.js";import{d as O,f as k,i as A,k as j,n as M,u as N}from"./ai-model-dropdown-CIg9eu47.js";import{r as P}from"./useNumberFormatter-D7O_26UI.js";import{b as F,p as I}from"./write-secret-modal-usRSi1bb.js";import{Jt as L,Yt as R,nn as ee,r as z,tn as B}from"./input-ByHt6aoV.js";import{t as V}from"./settings-BpdQZRgT.js";import{t as te}from"./use-toast-Wu434mLr.js";import{s as H}from"./arrays-0R2reF2y.js";import{r as U}from"./requests-lt0JK8Jt.js";import{r as ne}from"./useDebounce-B_ccBZTp.js";import{t as W}from"./kbd-pdKBv96t.js";import{t as G}from"./Inputs-BsQm29hD.js";var K=D(`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=_(),J=x(),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}=F(),{sendShutdown:l}=U(),u;t[0]===l?u=t[1]:(u=()=>{l(),setTimeout(X,200)},t[0]=l,t[1]=u);let d=u;if(g())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)(S,{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)(P,{strokeWidth:1}),t[7]=m):m=t[7];let h;t[8]!==a||t[9]!==f||t[10]!==p?(h=(0,J.jsx)(G,{"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 _;return t[12]!==h||t[13]!==o?(_=(0,J.jsx)(T,{content:o,children:h}),t[12]=h,t[13]=o,t[14]=_):_=t[14],_};function X(){window.close()}var Z=e(n(),1),re=100,ie=()=>{let e=(0,q.c)(37),[t,n]=b(),{saveAppConfig:u}=U(),d=(0,Z.useId)(),h=(0,Z.useId)(),g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=a(v),e[0]=g):g=e[0];let _;e[1]===t?_=e[2]:(_={resolver:g,defaultValues:t},e[1]=t,e[2]=_);let y=o(_),x;e[3]!==u||e[4]!==n?(x=async e=>{await u({config:e}).then(()=>{n(e)}).catch(()=>{n(e)})},e[3]=u,e[4]=n,e[5]=x):x=e[5];let S=x,C;e[6]===S?C=e[7]:(C=e=>{S(e)},e[6]=S,e[7]=C);let w=ne(C,re),T;e[8]===t.width?T=e[9]:(T=[t.width],e[8]=t.width,e[9]=T),(0,Z.useEffect)(ae,T);let E;e[10]!==w||e[11]!==y?(E=y.handleSubmit(w),e[10]=w,e[11]=y,e[12]=E):E=e[12];let D;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,J.jsxs)(`div`,{children:[(0,J.jsx)(k,{children:`Notebook Settings`}),(0,J.jsx)(O,{children:`Configure how your notebook or application looks and behaves.`})]}),e[13]=D):D=e[13];let A;e[14]===y.control?A=e[15]:(A=(0,J.jsxs)(Q,{title:`Display`,children:[(0,J.jsx)(r,{control:y.control,name:`width`,render:se}),(0,J.jsx)(r,{control:y.control,name:`app_title`,render:$})]}),e[14]=y.control,e[15]=A);let j;e[16]===y.control?j=e[17]:(j=(0,J.jsxs)(Q,{title:`Custom Files`,children:[(0,J.jsx)(r,{control:y.control,name:`css_file`,render:ce}),(0,J.jsx)(r,{control:y.control,name:`html_head_file`,render:le})]}),e[16]=y.control,e[17]=j);let M;e[18]===y.control?M=e[19]:(M=(0,J.jsx)(Q,{title:`Data`,children:(0,J.jsx)(r,{control:y.control,name:`sql_output`,render:de})}),e[18]=y.control,e[19]=M);let N;e[20]!==d||e[21]!==h?(N=e=>{let{field:t}=e;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,J.jsxs)(f,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(s,{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)(i,{id:d,"data-testid":`html-checkbox`,checked:t.value.includes(`html`),onCheckedChange:()=>{t.onChange(H(t.value,`html`))}}),(0,J.jsx)(m,{htmlFor:d,children:`HTML`})]}),(0,J.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,J.jsx)(i,{id:h,"data-testid":`ipynb-checkbox`,checked:t.value.includes(`ipynb`),onCheckedChange:()=>{t.onChange(H(t.value,`ipynb`))}}),(0,J.jsx)(m,{htmlFor:h,children:`IPYNB`})]})]})}),(0,J.jsx)(p,{})]}),(0,J.jsxs)(l,{children:[`When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named`,` `,(0,J.jsx)(W,{className:`inline`,children:`__marimo__`}),` next to your notebook file.`]})]})},e[20]=d,e[21]=h,e[22]=N):N=e[22];let P;e[23]!==y.control||e[24]!==N?(P=(0,J.jsx)(Q,{title:`Exporting outputs`,children:(0,J.jsx)(r,{control:y.control,name:`auto_download`,render:N})}),e[23]=y.control,e[24]=N,e[25]=P):P=e[25];let F;e[26]!==P||e[27]!==A||e[28]!==j||e[29]!==M?(F=(0,J.jsxs)(`div`,{className:`grid grid-cols-2 gap-x-8 gap-y-4`,children:[A,j,M,P]}),e[26]=P,e[27]=A,e[28]=j,e[29]=M,e[30]=F):F=e[30];let I;e[31]!==F||e[32]!==E?(I=(0,J.jsxs)(`form`,{onChange:E,className:`flex flex-col gap-6`,children:[D,F]}),e[31]=F,e[32]=E,e[33]=I):I=e[33];let L;return e[34]!==y||e[35]!==I?(L=(0,J.jsx)(c,{...y,children:I}),e[34]=y,e[35]=I,e[36]=L):L=e[36],L},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)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(m,{children:`Width`}),(0,J.jsx)(s,{children:(0,J.jsx)(C,{"data-testid":`app-width-select`,onChange:e=>t.onChange(e.target.value),value:t.value,disabled:t.disabled,className:`inline-flex mr-2`,children:j().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)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(m,{children:`App title`}),(0,J.jsx)(s,{children:(0,J.jsx)(z,{...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)(l,{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)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(m,{className:`shrink-0`,children:`Custom CSS`}),(0,J.jsx)(s,{children:(0,J.jsx)(z,{...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)(l,{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)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(m,{className:`shrink-0`,children:`HTML Head`}),(0,J.jsx)(s,{children:(0,J.jsx)(z,{...t,value:t.value??``,placeholder:`head.html`,onChange:e=>{t.onChange(e.target.value)}})}),(0,J.jsx)(p,{})]}),(0,J.jsxs)(l,{children:[`A filepath to an HTML file to be injected into the`,` `,(0,J.jsx)(W,{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)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,J.jsx)(m,{children:`SQL Output Type`}),(0,J.jsx)(s,{children:(0,J.jsx)(C,{"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:N.map(ue)})}),(0,J.jsx)(p,{})]}),(0,J.jsxs)(l,{children:[`The Python type returned by a SQL cell. For best performance with large datasets, we recommend using`,` `,(0,J.jsx)(W,{className:`inline`,children:`native`}),`. See the`,` `,(0,J.jsx)(I,{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,[l,f]=t(M),p=s?`disabled`:`hint-green`,m;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,J.jsx)(V,{strokeWidth:1.8}),n[0]=m):m=n[0];let g;n[1]===c?g=n[2]:(g=(0,J.jsx)(T,{content:c,children:m}),n[1]=c,n[2]=g);let _;n[3]!==s||n[4]!==p||n[5]!==g?(_=(0,J.jsx)(G,{"aria-label":`Config`,"data-testid":`app-config-button`,shape:`circle`,size:`small`,className:`h-[27px] w-[27px]`,disabled:s,color:p,children:g}),n[3]=s,n[4]=p,n[5]=g,n[6]=_):_=n[6];let v=_,y;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,J.jsxs)(R,{className:`w-[90vw] h-[90vh] overflow-hidden sm:max-w-5xl top-[5vh] p-0`,children:[(0,J.jsx)(w,{children:(0,J.jsx)(B,{children:`User settings`})}),(0,J.jsx)(A,{})]}),n[7]=y):y=n[7];let b=y;if(!o){let e;n[8]===v?e=n[9]:(e=(0,J.jsx)(ee,{children:v}),n[8]=v,n[9]=e);let t;return n[10]!==f||n[11]!==l||n[12]!==e?(t=(0,J.jsxs)(L,{open:l,onOpenChange:f,children:[e,b]}),n[10]=f,n[11]=l,n[12]=e,n[13]=t):t=n[13],t}let x;n[14]===v?x=n[15]:(x=(0,J.jsx)(d,{asChild:!0,children:v}),n[14]=v,n[15]=x);let S,C;n[16]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,J.jsx)(ie,{}),C=(0,J.jsx)(`div`,{className:`h-px bg-border my-2`}),n[16]=S,n[17]=C):(S=n[16],C=n[17]);let D;n[18]===f?D=n[19]:(D=()=>f(!0),n[18]=f,n[19]=D);let O;n[20]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,J.jsx)(V,{strokeWidth:1.8,className:`w-4 h-4 mr-2`}),n[20]=O):O=n[20];let k;n[21]===D?k=n[22]:(k=(0,J.jsxs)(h,{className:`w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]`,align:`end`,side:`bottom`,onFocusOutside:pe,children:[S,C,(0,J.jsxs)(E,{onClick:D,variant:`link`,className:`px-0`,children:[O,`User settings`]})]}),n[21]=D,n[22]=k);let j;n[23]!==k||n[24]!==x?(j=(0,J.jsxs)(u,{children:[x,k]}),n[23]=k,n[24]=x,n[25]=j):j=n[25];let N;n[26]!==f||n[27]!==l?(N=(0,J.jsx)(L,{open:l,onOpenChange:f,children:b}),n[26]=f,n[27]=l,n[28]=N):N=n[28];let P;return n[29]!==j||n[30]!==N?(P=(0,J.jsxs)(J.Fragment,{children:[j,N]}),n[29]=j,n[30]=N,n[31]=P):P=n[31],P};function pe(e){return e.preventDefault()}export{Y as n,K as r,fe as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./invariant-Ci2dTZ72.js";function t(e,t,n){return Math.min(Math.max(e,t),n)}function n(e,t){let n=[...e];return n.splice(t,1),n}function r(e,n,r){n=t(n,0,e.length);let i=[...e];return i.splice(n,0,r),i}function i(e,t,n){let r=[...e],[i]=r.splice(t,1);return r.splice(n,0,i),r}function a(e,n,r){if(e.length===0)return r;n=t(n,0,e.length);let i=[...e];return i.splice(n,0,...r),i}function o(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0,r=e.length;n<r;n++)if(e[n]!==t[n])return!1;return!0}var s={EMPTY:[],intersection(e,t){let n=new Set(t);return e.filter(e=>n.has(e))},difference(e,t){let n=new Set(t);return e.filter(e=>!n.has(e))},zip:(t,n)=>(e(t.length===n.length,`Arrays must be the same length`),t.map((e,t)=>[e,n[t]]))};function c(e){return[...new Set(e)]}function l(e,t){return e.map(e=>[t(e),e]).toSorted(([e],[t])=>e==null&&t==null?0:e==null?1:t==null||e<t?-1:+(e>t)).map(([,e])=>e)}function u(e,t){if(!e)return[t];let n=e.indexOf(t);if(n===-1)return[...e,t];let r=[...e];return r.splice(n,1),r}function d(e,t){let n=[],r=new Set;for(let i of e){let e=t(i);r.has(e)||(r.add(e),n.push(i))}return n}function f(e,t){let n=new Map;for(let r of e){let e=t(r);n.set(e,r)}return[...n.values()]}function p(e,t,n){return t===0?0:e===null?n===`up`?0:t-1:n===`up`?(e+1)%t:(e-1+t)%t}export{i as a,p as c,d,f,a as i,l,n,o,t as p,r,u as s,s as t,c as u};
@@ -1 +1 @@
1
- import{a as e}from"./markdown-renderer-D2dafr8r.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-BFyD6Jhs.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 +1 @@
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{m as r,n as i,t as a}from"./useEventListener-D9cftcHj.js";import{n as o,t as s}from"./cn-ldLVeaqm.js";import{t as c}from"./jsx-runtime-B74pBk57.js";var l=e(t(),1),u=n(),d={stopPropagation:e=>t=>{t.stopPropagation(),e&&e(t)},onEnter:e=>t=>{t.key===`Enter`&&e&&e(t)},preventFocus:e=>{e.preventDefault()},fromInput:e=>{let t=d.composedTarget(e);return t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName.startsWith(`MARIMO`)||t.isContentEditable||d.fromCodeMirror(t)},fromCodeMirror:e=>e.closest(`.cm-editor`)!==null,shouldIgnoreKeyboardEvent(e){let t=d.composedTarget(e);return t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement||t instanceof HTMLElement&&(t.isContentEditable||t.tagName===`BUTTON`||t.closest(`[role='textbox']`)!==null||t.closest(`[contenteditable='true']`)!==null||d.fromCodeMirror(t))},composedTarget(e){return`composedPath`in e&&typeof e.composedPath==`function`?e.composedPath()[0]??e.target:e.target},hasModifier:e=>e.ctrlKey||e.metaKey||e.altKey||e.shiftKey,isMetaOrCtrl:e=>e.metaKey||e.ctrlKey},f=c(),p=`active:shadow-none`,m=o(s(`disabled:opacity-50 disabled:pointer-events-none`,`inline-flex items-center justify-center rounded-md text-sm font-medium focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background`,`forced-color-adjust-none forced-colors:border-[ButtonText] forced-colors:bg-[ButtonFace] forced-colors:text-[ButtonText] forced-colors:hover:bg-[Highlight] forced-colors:hover:text-[HighlightText] forced-colors:disabled:border-[GrayText] forced-colors:disabled:text-[GrayText]`),{variants:{variant:{default:s(`bg-primary text-primary-foreground hover:bg-primary/90 shadow-xs border border-primary`,p),destructive:s(`border shadow-xs`,`bg-destructive text-destructive-foreground border-destructive-border hover:bg-destructive-hover`,p),success:s(`border shadow-xs`,`bg-success text-success-foreground border-success-border hover:bg-success-hover`,p),warn:s(`border shadow-xs`,`bg-action text-action-foreground border-action-border hover:bg-action-hover`,p),action:s(`bg-action text-action-foreground shadow-xs`,`hover:bg-action-hover border border-action-border`,p),outline:s(`border border-slate-300 shadow-xs`,`hover:bg-accent hover:text-accent-foreground`,`hover:border-primary`,`aria-selected:text-accent-foreground aria-selected:border-primary`,p),secondary:s(`bg-secondary text-secondary-foreground hover:bg-secondary/80`,`border border-input shadow-xs`,p),text:s(`opacity-80 hover:opacity-100`,`active:opacity-100`),ghost:s(`border border-transparent`,`hover:bg-accent hover:text-accent-foreground hover:shadow-xs`,p,`active:text-accent-foreground`),link:`underline-offset-4 hover:underline text-link`,linkDestructive:`underline-offset-4 hover:underline text-destructive underline-destructive`,outlineDestructive:`border border-destructive text-destructive hover:bg-destructive/10`},size:{default:`h-10 py-2 px-4`,xs:`h-7 px-2 rounded-md text-xs`,sm:`h-9 px-3 rounded-md`,lg:`h-11 px-8 rounded-md`,icon:`h-6 w-6 mb-0`},disabled:{true:`opacity-50 pointer-events-none`}},defaultVariants:{variant:`default`,size:`sm`}}),h=l.forwardRef((e,t)=>{let n=(0,u.c)(19),o,c,p,h,g,_;n[0]===e?(o=n[1],c=n[2],p=n[3],h=n[4],g=n[5],_=n[6]):({className:o,variant:_,size:h,asChild:g,keyboardShortcut:c,...p}=e,n[0]=e,n[1]=o,n[2]=c,n[3]=p,n[4]=h,n[5]=g,n[6]=_);let v=g!==void 0&&g,y=l.useRef(null),b;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>y.current,n[7]=b):b=n[7],l.useImperativeHandle(t,b);let x;n[8]===c?x=n[9]:(x=e=>{!c||e.defaultPrevented||d.shouldIgnoreKeyboardEvent(e)||r(c)(e)&&(e.preventDefault(),e.stopPropagation(),y?.current&&!y.current.disabled&&y.current.click())},n[8]=c,n[9]=x),a(document,`keydown`,x);let S=v?i:`button`,C;n[10]!==o||n[11]!==p.disabled||n[12]!==h||n[13]!==_?(C=s(m({variant:_,size:h,className:o,disabled:p.disabled}),o),n[10]=o,n[11]=p.disabled,n[12]=h,n[13]=_,n[14]=C):C=n[14];let w;return n[15]!==S||n[16]!==p||n[17]!==C?(w=(0,f.jsx)(S,{className:C,ref:y,...p}),n[15]=S,n[16]=p,n[17]=C,n[18]=w):w=n[18],w});h.displayName=`Button`;export{m as n,d as r,h as t};
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{m as r,n as i,t as a}from"./useEventListener-CjDeLqFC.js";import{n as o,t as s}from"./cn-ldLVeaqm.js";import{t as c}from"./jsx-runtime-B74pBk57.js";var l=e(t(),1),u=n(),d={stopPropagation:e=>t=>{t.stopPropagation(),e&&e(t)},onEnter:e=>t=>{t.key===`Enter`&&e&&e(t)},preventFocus:e=>{e.preventDefault()},fromInput:e=>{let t=d.composedTarget(e);return t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.tagName.startsWith(`MARIMO`)||t.isContentEditable||d.fromCodeMirror(t)},fromCodeMirror:e=>e.closest(`.cm-editor`)!==null,shouldIgnoreKeyboardEvent(e){let t=d.composedTarget(e);return t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement||t instanceof HTMLSelectElement||t instanceof HTMLElement&&(t.isContentEditable||t.tagName===`BUTTON`||t.closest(`[role='textbox']`)!==null||t.closest(`[contenteditable='true']`)!==null||d.fromCodeMirror(t))},composedTarget(e){return`composedPath`in e&&typeof e.composedPath==`function`?e.composedPath()[0]??e.target:e.target},hasModifier:e=>e.ctrlKey||e.metaKey||e.altKey||e.shiftKey,isMetaOrCtrl:e=>e.metaKey||e.ctrlKey},f=c(),p=`active:shadow-none`,m=o(s(`disabled:opacity-50 disabled:pointer-events-none`,`inline-flex items-center justify-center rounded-md text-sm font-medium focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background`,`forced-color-adjust-none forced-colors:border-[ButtonText] forced-colors:bg-[ButtonFace] forced-colors:text-[ButtonText] forced-colors:hover:bg-[Highlight] forced-colors:hover:text-[HighlightText] forced-colors:disabled:border-[GrayText] forced-colors:disabled:text-[GrayText]`),{variants:{variant:{default:s(`bg-primary text-primary-foreground hover:bg-primary/90 shadow-xs border border-primary`,p),destructive:s(`border shadow-xs`,`bg-destructive text-destructive-foreground border-destructive-border hover:bg-destructive-hover`,p),success:s(`border shadow-xs`,`bg-success text-success-foreground border-success-border hover:bg-success-hover`,p),warn:s(`border shadow-xs`,`bg-action text-action-foreground border-action-border hover:bg-action-hover`,p),action:s(`bg-action text-action-foreground shadow-xs`,`hover:bg-action-hover border border-action-border`,p),outline:s(`border border-slate-300 shadow-xs`,`hover:bg-accent hover:text-accent-foreground`,`hover:border-primary`,`aria-selected:text-accent-foreground aria-selected:border-primary`,p),secondary:s(`bg-secondary text-secondary-foreground hover:bg-secondary/80`,`border border-input shadow-xs`,p),text:s(`opacity-80 hover:opacity-100`,`active:opacity-100`),ghost:s(`border border-transparent`,`hover:bg-accent hover:text-accent-foreground hover:shadow-xs`,p,`active:text-accent-foreground`),link:`underline-offset-4 hover:underline text-link`,linkDestructive:`underline-offset-4 hover:underline text-destructive underline-destructive`,outlineDestructive:`border border-destructive text-destructive hover:bg-destructive/10`},size:{default:`h-10 py-2 px-4`,xs:`h-7 px-2 rounded-md text-xs`,sm:`h-9 px-3 rounded-md`,lg:`h-11 px-8 rounded-md`,icon:`h-6 w-6 mb-0`},disabled:{true:`opacity-50 pointer-events-none`}},defaultVariants:{variant:`default`,size:`sm`}}),h=l.forwardRef((e,t)=>{let n=(0,u.c)(19),o,c,p,h,g,_;n[0]===e?(o=n[1],c=n[2],p=n[3],h=n[4],g=n[5],_=n[6]):({className:o,variant:_,size:h,asChild:g,keyboardShortcut:c,...p}=e,n[0]=e,n[1]=o,n[2]=c,n[3]=p,n[4]=h,n[5]=g,n[6]=_);let v=g!==void 0&&g,y=l.useRef(null),b;n[7]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>y.current,n[7]=b):b=n[7],l.useImperativeHandle(t,b);let x;n[8]===c?x=n[9]:(x=e=>{!c||e.defaultPrevented||d.shouldIgnoreKeyboardEvent(e)||r(c)(e)&&(e.preventDefault(),e.stopPropagation(),y?.current&&!y.current.disabled&&y.current.click())},n[8]=c,n[9]=x),a(document,`keydown`,x);let S=v?i:`button`,C;n[10]!==o||n[11]!==p.disabled||n[12]!==h||n[13]!==_?(C=s(m({variant:_,size:h,className:o,disabled:p.disabled}),o),n[10]=o,n[11]=p.disabled,n[12]=h,n[13]=_,n[14]=C):C=n[14];let w;return n[15]!==S||n[16]!==p||n[17]!==C?(w=(0,f.jsx)(S,{className:C,ref:y,...p}),n[15]=S,n[16]=p,n[17]=C,n[18]=w):w=n[18],w});h.displayName=`Button`;export{m as n,d as r,h as t};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{l as t}from"./useEvent-Dfcbgjhg.js";import{t as n}from"./react-DVplv7_D.js";import{t as r}from"./compiler-runtime-BrajqUja.js";import{t as i}from"./cn-ldLVeaqm.js";import{t as a}from"./jsx-runtime-B74pBk57.js";import{a as o,c as s,i as c,l,n as u,o as d,r as f,s as p,t as m,u as h}from"./alert-dialog-BaPGzeOK.js";import{t as g}from"./button-COI-NGrx.js";import{t as _}from"./database-zap-B_PMVg8T.js";import{t as v}from"./spinner-DyNE-o8o.js";import{t as y}from"./refresh-cw-Qw1f8Jhy.js";import{t as b}from"./trash-2-DcgaW8fn.js";import{t as x}from"./use-toast-Wu434mLr.js";import{r as S}from"./requests-lt0JK8Jt.js";import{t as C}from"./I18nProvider-Cg2I_s1_.js";import{i as w}from"./numbers-Mk3-CcoU.js";import{n as T}from"./useAsyncData-C7aJJz0Y.js";import{t as E}from"./empty-state-BaCKb7o3.js";import{t as D}from"./requests-CgSY1X4a.js";import{n as O,t as k}from"./formatting-BqrP-n49.js";var A=r(),j=e(n(),1),M=a(),N=e=>{let t=(0,A.c)(27),{children:n,title:r,description:i,onConfirm:a,confirmText:g,cancelText:_,destructive:v}=e,y=g===void 0?`Continue`:g,b=_===void 0?`Cancel`:_,x=v!==void 0&&v,[S,C]=j.useState(!1),w;t[0]===a?w=t[1]:(w=()=>{a(),C(!1)},t[0]=a,t[1]=w);let T=w,E=x?d:u,D;t[2]===n?D=t[3]:(D=(0,M.jsx)(h,{asChild:!0,children:n}),t[2]=n,t[3]=D);let O;t[4]===r?O=t[5]:(O=(0,M.jsx)(l,{children:r}),t[4]=r,t[5]=O);let k;t[6]===i?k=t[7]:(k=(0,M.jsx)(o,{children:i}),t[6]=i,t[7]=k);let N;t[8]!==O||t[9]!==k?(N=(0,M.jsxs)(s,{children:[O,k]}),t[8]=O,t[9]=k,t[10]=N):N=t[10];let P;t[11]===b?P=t[12]:(P=(0,M.jsx)(f,{children:b}),t[11]=b,t[12]=P);let F;t[13]!==E||t[14]!==y||t[15]!==T?(F=(0,M.jsx)(E,{onClick:T,children:y}),t[13]=E,t[14]=y,t[15]=T,t[16]=F):F=t[16];let I;t[17]!==F||t[18]!==P?(I=(0,M.jsxs)(p,{children:[P,F]}),t[17]=F,t[18]=P,t[19]=I):I=t[19];let L;t[20]!==I||t[21]!==N?(L=(0,M.jsxs)(c,{children:[N,I]}),t[20]=I,t[21]=N,t[22]=L):L=t[22];let R;return t[23]!==S||t[24]!==L||t[25]!==D?(R=(0,M.jsxs)(m,{open:S,onOpenChange:C,children:[D,L]}),t[23]=S,t[24]=L,t[25]=D,t[26]=R):R=t[26],R},P=()=>{let{clearCache:e,getCacheInfo:n}=S(),r=t(D),[a,o]=(0,j.useState)(!1),{locale:s}=C(),{isPending:c,isFetching:l,refetch:u}=T(async()=>{await n(),await new Promise(e=>setTimeout(e,500))},[]),d=async()=>{try{o(!0),await e(),x({title:`Cache purged`,description:`All cached data has been cleared`}),u()}catch(e){x({title:`Error`,description:e instanceof Error?e.message:`Failed to purge cache`,variant:`danger`})}finally{o(!1)}};if(c&&!r)return(0,M.jsx)(v,{size:`medium`,centered:!0});let f=(0,M.jsxs)(g,{variant:`outline`,size:`sm`,onClick:u,disabled:l,children:[l?(0,M.jsx)(v,{size:`small`,className:`w-4 h-4 mr-2`}):(0,M.jsx)(y,{className:`w-4 h-4 mr-2`}),`Refresh`]});if(!r)return(0,M.jsx)(E,{title:`No cache data`,description:`Cache information is not available.`,icon:(0,M.jsx)(_,{}),action:f});let p=r.hits,m=r.misses,h=r.time,A=r.disk_total,P=r.disk_to_free,I=p+m,L=I>0?p/I*100:0;return I===0?(0,M.jsx)(E,{title:`No cache activity`,description:`The cache has not been used yet. Cached functions will appear here once they are executed.`,icon:(0,M.jsx)(_,{}),action:f}):(0,M.jsx)(`div`,{className:`flex flex-col h-full overflow-auto`,children:(0,M.jsxs)(`div`,{className:`flex flex-col gap-4 p-4 h-full`,children:[(0,M.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,M.jsx)(g,{variant:`ghost`,size:`icon`,className:`h-6 w-6`,onClick:u,disabled:l,children:(0,M.jsx)(y,{className:i(`h-4 w-4 text-muted-foreground hover:text-foreground`,l&&`animate-[spin_0.5s]`)})})}),(0,M.jsxs)(`div`,{className:`space-y-3`,children:[(0,M.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:`Statistics`}),(0,M.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,M.jsx)(F,{label:`Time saved`,value:O(h,s),description:`Total execution time saved`}),(0,M.jsx)(F,{label:`Hit rate`,value:I>0?`${w(L,s)}%`:`—`,description:`${w(p,s)} hits / ${w(I,s)} total`}),(0,M.jsx)(F,{label:`Cache hits`,value:w(p,s),description:`Successful cache retrievals`}),(0,M.jsx)(F,{label:`Cache misses`,value:w(m,s),description:`Cache not found`})]})]}),A>0&&(0,M.jsxs)(`div`,{className:`space-y-3 pt-2 border-t`,children:[(0,M.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:`Storage`}),(0,M.jsx)(`div`,{className:`grid grid-cols-1 gap-3`,children:(0,M.jsx)(F,{label:`Disk usage`,value:k(A,s),description:P>0?`${k(P,s)} can be freed`:`Cache storage on disk`})})]}),(0,M.jsx)(`div`,{className:`my-auto`}),(0,M.jsx)(`div`,{className:`pt-2 border-t`,children:(0,M.jsx)(N,{title:`Purge cache?`,description:`This will permanently delete all cached data. This action cannot be undone.`,confirmText:`Purge`,destructive:!0,onConfirm:d,children:(0,M.jsxs)(g,{variant:`outlineDestructive`,size:`xs`,disabled:a,className:`w-full`,children:[a?(0,M.jsx)(v,{size:`small`,className:`w-3 h-3 mr-2`}):(0,M.jsx)(b,{className:`w-3 h-3 mr-2`}),`Purge Cache`]})})})]})})},F=e=>{let t=(0,A.c)(10),{label:n,value:r,description:i}=e,a;t[0]===n?a=t[1]:(a=(0,M.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=(0,M.jsx)(`span`,{className:`text-lg font-semibold`,children:r}),t[2]=r,t[3]=o);let s;t[4]===i?s=t[5]:(s=i&&(0,M.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:i}),t[4]=i,t[5]=s);let c;return t[6]!==a||t[7]!==o||t[8]!==s?(c=(0,M.jsxs)(`div`,{className:`flex flex-col gap-1 p-3 rounded-lg border bg-card`,children:[a,o,s]}),t[6]=a,t[7]=o,t[8]=s,t[9]=c):c=t[9],c};export{P as default};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{l as t}from"./useEvent-Dfcbgjhg.js";import{t as n}from"./react-DVplv7_D.js";import{t as r}from"./compiler-runtime-BrajqUja.js";import{t as i}from"./cn-ldLVeaqm.js";import{t as a}from"./jsx-runtime-B74pBk57.js";import{a as o,c as s,i as c,l,n as u,o as d,r as f,s as p,t as m,u as h}from"./alert-dialog-C-sWmKva.js";import{t as g}from"./button-D8gVKwe-.js";import{t as _}from"./database-zap-B_PMVg8T.js";import{t as v}from"./spinner-DyNE-o8o.js";import{t as y}from"./refresh-cw-Qw1f8Jhy.js";import{t as b}from"./trash-2-DcgaW8fn.js";import{t as x}from"./use-toast-Wu434mLr.js";import{r as S}from"./requests-lt0JK8Jt.js";import{t as C}from"./I18nProvider-Cg2I_s1_.js";import{i as w}from"./numbers-CsZVw3Dc.js";import{n as T}from"./useAsyncData-DhhdOGGd.js";import{t as E}from"./empty-state-BaCKb7o3.js";import{t as D}from"./requests-CgSY1X4a.js";import{n as O,t as k}from"./formatting-uom1es4b.js";var A=r(),j=e(n(),1),M=a(),N=e=>{let t=(0,A.c)(27),{children:n,title:r,description:i,onConfirm:a,confirmText:g,cancelText:_,destructive:v}=e,y=g===void 0?`Continue`:g,b=_===void 0?`Cancel`:_,x=v!==void 0&&v,[S,C]=j.useState(!1),w;t[0]===a?w=t[1]:(w=()=>{a(),C(!1)},t[0]=a,t[1]=w);let T=w,E=x?d:u,D;t[2]===n?D=t[3]:(D=(0,M.jsx)(h,{asChild:!0,children:n}),t[2]=n,t[3]=D);let O;t[4]===r?O=t[5]:(O=(0,M.jsx)(l,{children:r}),t[4]=r,t[5]=O);let k;t[6]===i?k=t[7]:(k=(0,M.jsx)(o,{children:i}),t[6]=i,t[7]=k);let N;t[8]!==O||t[9]!==k?(N=(0,M.jsxs)(s,{children:[O,k]}),t[8]=O,t[9]=k,t[10]=N):N=t[10];let P;t[11]===b?P=t[12]:(P=(0,M.jsx)(f,{children:b}),t[11]=b,t[12]=P);let F;t[13]!==E||t[14]!==y||t[15]!==T?(F=(0,M.jsx)(E,{onClick:T,children:y}),t[13]=E,t[14]=y,t[15]=T,t[16]=F):F=t[16];let I;t[17]!==F||t[18]!==P?(I=(0,M.jsxs)(p,{children:[P,F]}),t[17]=F,t[18]=P,t[19]=I):I=t[19];let L;t[20]!==I||t[21]!==N?(L=(0,M.jsxs)(c,{children:[N,I]}),t[20]=I,t[21]=N,t[22]=L):L=t[22];let R;return t[23]!==S||t[24]!==L||t[25]!==D?(R=(0,M.jsxs)(m,{open:S,onOpenChange:C,children:[D,L]}),t[23]=S,t[24]=L,t[25]=D,t[26]=R):R=t[26],R},P=()=>{let{clearCache:e,getCacheInfo:n}=S(),r=t(D),[a,o]=(0,j.useState)(!1),{locale:s}=C(),{isPending:c,isFetching:l,refetch:u}=T(async()=>{await n(),await new Promise(e=>setTimeout(e,500))},[]),d=async()=>{try{o(!0),await e(),x({title:`Cache purged`,description:`All cached data has been cleared`}),u()}catch(e){x({title:`Error`,description:e instanceof Error?e.message:`Failed to purge cache`,variant:`danger`})}finally{o(!1)}};if(c&&!r)return(0,M.jsx)(v,{size:`medium`,centered:!0});let f=(0,M.jsxs)(g,{variant:`outline`,size:`sm`,onClick:u,disabled:l,children:[l?(0,M.jsx)(v,{size:`small`,className:`w-4 h-4 mr-2`}):(0,M.jsx)(y,{className:`w-4 h-4 mr-2`}),`Refresh`]});if(!r)return(0,M.jsx)(E,{title:`No cache data`,description:`Cache information is not available.`,icon:(0,M.jsx)(_,{}),action:f});let p=r.hits,m=r.misses,h=r.time,A=r.disk_total,P=r.disk_to_free,I=p+m,L=I>0?p/I*100:0;return I===0?(0,M.jsx)(E,{title:`No cache activity`,description:`The cache has not been used yet. Cached functions will appear here once they are executed.`,icon:(0,M.jsx)(_,{}),action:f}):(0,M.jsx)(`div`,{className:`flex flex-col h-full overflow-auto`,children:(0,M.jsxs)(`div`,{className:`flex flex-col gap-4 p-4 h-full`,children:[(0,M.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,M.jsx)(g,{variant:`ghost`,size:`icon`,className:`h-6 w-6`,onClick:u,disabled:l,children:(0,M.jsx)(y,{className:i(`h-4 w-4 text-muted-foreground hover:text-foreground`,l&&`animate-[spin_0.5s]`)})})}),(0,M.jsxs)(`div`,{className:`space-y-3`,children:[(0,M.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:`Statistics`}),(0,M.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,M.jsx)(F,{label:`Time saved`,value:O(h,s),description:`Total execution time saved`}),(0,M.jsx)(F,{label:`Hit rate`,value:I>0?`${w(L,s)}%`:`—`,description:`${w(p,s)} hits / ${w(I,s)} total`}),(0,M.jsx)(F,{label:`Cache hits`,value:w(p,s),description:`Successful cache retrievals`}),(0,M.jsx)(F,{label:`Cache misses`,value:w(m,s),description:`Cache not found`})]})]}),A>0&&(0,M.jsxs)(`div`,{className:`space-y-3 pt-2 border-t`,children:[(0,M.jsx)(`h3`,{className:`text-sm font-semibold text-foreground`,children:`Storage`}),(0,M.jsx)(`div`,{className:`grid grid-cols-1 gap-3`,children:(0,M.jsx)(F,{label:`Disk usage`,value:k(A,s),description:P>0?`${k(P,s)} can be freed`:`Cache storage on disk`})})]}),(0,M.jsx)(`div`,{className:`my-auto`}),(0,M.jsx)(`div`,{className:`pt-2 border-t`,children:(0,M.jsx)(N,{title:`Purge cache?`,description:`This will permanently delete all cached data. This action cannot be undone.`,confirmText:`Purge`,destructive:!0,onConfirm:d,children:(0,M.jsxs)(g,{variant:`outlineDestructive`,size:`xs`,disabled:a,className:`w-full`,children:[a?(0,M.jsx)(v,{size:`small`,className:`w-3 h-3 mr-2`}):(0,M.jsx)(b,{className:`w-3 h-3 mr-2`}),`Purge Cache`]})})})]})})},F=e=>{let t=(0,A.c)(10),{label:n,value:r,description:i}=e,a;t[0]===n?a=t[1]:(a=(0,M.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=(0,M.jsx)(`span`,{className:`text-lg font-semibold`,children:r}),t[2]=r,t[3]=o);let s;t[4]===i?s=t[5]:(s=i&&(0,M.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:i}),t[4]=i,t[5]=s);let c;return t[6]!==a||t[7]!==o||t[8]!==s?(c=(0,M.jsxs)(`div`,{className:`flex flex-col gap-1 p-3 rounded-lg border bg-card`,children:[a,o,s]}),t[6]=a,t[7]=o,t[8]=s,t[9]=c):c=t[9],c};export{P as default};
@@ -1 +1 @@
1
- import{g as e}from"./useEventListener-D9cftcHj.js";import{n as t}from"./once-Haz_uxEL.js";function n(e){try{let t=window[e],n=`__storage_test__`,r=`test`;if(!t)return!1;t.setItem(n,r);let i=t.getItem(n);return t.removeItem(n),i===r}catch{return!1}}function r(){try{return`download`in document.createElement(`a`)}catch{return!1}}function i(){let t=window.parent!==window,i={isEmbedded:t,hasLocalStorage:n(`localStorage`),hasSessionStorage:n(`sessionStorage`),hasClipboard:navigator.clipboard!==void 0,hasDownloads:r(),hasFullscreen:document.fullscreenEnabled!==void 0&&document.fullscreenEnabled,hasMediaDevices:navigator.mediaDevices!==void 0&&typeof navigator.mediaDevices.getUserMedia==`function`};return t&&(e.log(`[iframe] Running in embedded context`),i.hasLocalStorage||e.warn(`[iframe] localStorage unavailable - using fallback storage`),i.hasClipboard||e.warn(`[iframe] Clipboard API unavailable`),i.hasDownloads||e.warn(`[iframe] Download capability may be restricted`),i.hasFullscreen||e.warn(`[iframe] Fullscreen API unavailable`),i.hasMediaDevices||e.warn(`[iframe] Media devices API unavailable`)),i}var a=t(()=>i());export{a as t};
1
+ import{g as e}from"./useEventListener-CjDeLqFC.js";import{n as t}from"./once-6KNTRW0u.js";function n(e){try{let t=window[e],n=`__storage_test__`,r=`test`;if(!t)return!1;t.setItem(n,r);let i=t.getItem(n);return t.removeItem(n),i===r}catch{return!1}}function r(){try{return`download`in document.createElement(`a`)}catch{return!1}}function i(){let t=window.parent!==window,i={isEmbedded:t,hasLocalStorage:n(`localStorage`),hasSessionStorage:n(`sessionStorage`),hasClipboard:navigator.clipboard!==void 0,hasDownloads:r(),hasFullscreen:document.fullscreenEnabled!==void 0&&document.fullscreenEnabled,hasMediaDevices:navigator.mediaDevices!==void 0&&typeof navigator.mediaDevices.getUserMedia==`function`};return t&&(e.log(`[iframe] Running in embedded context`),i.hasLocalStorage||e.warn(`[iframe] localStorage unavailable - using fallback storage`),i.hasClipboard||e.warn(`[iframe] Clipboard API unavailable`),i.hasDownloads||e.warn(`[iframe] Download capability may be restricted`),i.hasFullscreen||e.warn(`[iframe] Fullscreen API unavailable`),i.hasMediaDevices||e.warn(`[iframe] Media devices API unavailable`)),i}var a=t(()=>i());export{a as t};
@@ -1,6 +1,6 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./loro_wasm_bg-C2Fqi8D-.js","./loro_wasm_bg-Ctp2cNI9.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-Dfcbgjhg.js";import{t as u}from"./react-DVplv7_D.js";import{$i as d,Bn as f,Br as p,Bt as m,Ca as h,Ci as g,Co as _,Cr as v,D as y,Dr as b,Fr as x,H as S,I as C,Ir as w,K as T,Lr as E,Lt as D,Ni as O,Nn as ee,Nr as k,Pr as te,Qi as ne,Ri as re,Rr as A,Si as j,U as ie,Ur as M,V as N,Vn as P,W as ae,Wr as oe,Yn as se,Zn as ce,_i as le,_n as ue,_t as de,ai as fe,ar as pe,at as me,b as he,ba as ge,bi as _e,bt as ve,ca as ye,ci as be,cn as xe,cr as Se,d as Ce,dt as we,fi as Te,fn as Ee,fo as De,ft as Oe,ga as ke,gn as Ae,gt as je,h as Me,ha as Ne,ht as Pe,i as Fe,it as Ie,jo as Le,jr as Re,li as ze,lr as Be,mn as Ve,mt as He,ni as Ue,nr as We,or as Ge,ot as Ke,pi as qe,pt as Je,qa as Ye,ri as Xe,rr as Ze,sa as Qe,si as $e,sr as et,ti as tt,tr as nt,tt as rt,u as it,ui as at,un as ot,vn as st,vr as ct,vt as lt,wa as ut,wi as dt,xa as ft,xi as pt,xo as mt,yi as ht,za as gt,zr as F}from"./cells-CN1I_0eH.js";import{t as _t}from"./react-dom-_LrxgvjW.js";import{C as vt,I as yt,M as bt,N as xt,O as St,R as Ct,S as wt,b as Tt}from"./schemas-ChRqMOTL.js";import{C as Et,E as Dt,P as Ot,k as kt,m as At,o as jt,r as Mt,v as Nt}from"./config-MaHeMC9o.js";import{t as Pt}from"./compiler-runtime-BrajqUja.js";import{t as Ft}from"./debounce-aFmHgJZY.js";import{E as It,_ as Lt,c as Rt,g as zt,h as Bt,s as Vt}from"./config-CA1V-wjh.js";import{_ as Ht,c as Ut,g as Wt,m as Gt,t as Kt}from"./useEventListener-D9cftcHj.js";import{t as qt}from"./invariant-Ci2dTZ72.js";import{s as Jt}from"./config-DEzFV5-l.js";import{d as Yt,m as Xt,t as Zt}from"./session-DqoWmb7X.js";import{c as Qt}from"./state-C3oDoyFe.js";import{t as $t}from"./ErrorBoundary-D1ozl9e0.js";import{t as en}from"./cn-ldLVeaqm.js";import{t as tn}from"./jsx-runtime-B74pBk57.js";import{Q as nn,Z as rn}from"./JsonOutput-Dqg7qwkl.js";import{d as an}from"./select-DTBn5eTb.js";import{n as on}from"./download-s8iwxGDb.js";import{t as sn}from"./switch-CTaiAjrz.js";import{t as cn}from"./tooltip-C9TuY18o.js";import{r as ln,t as un}from"./button-COI-NGrx.js";import{t as dn}from"./createLucideIcon-DfJ2oMlA.js";import{i as fn,n as pn}from"./paths-bkIFVj8h.js";import{r as mn}from"./layout-BccvBeZy.js";import{A as hn,C as gn,D as _n,_ as vn,j as yn,t as bn,v as xn,y as Sn}from"./ai-model-dropdown-D5Fe5GS-.js";import{r as Cn}from"./useNumberFormatter-D7O_26UI.js";import{t as wn}from"./circle-check-BCurAHEb.js";import{B as Tn,F as En,G as Dn,I as On,L as kn,M as An,R as jn,T as Mn,V as Nn,W as Pn,c as Fn,f as In,i as Ln,n as Rn,o as zn,r as Bn,s as Vn,w as Hn,z as Un}from"./add-cell-with-ai-C4pN_ho7.js";import{t as Wn}from"./database-zap-B_PMVg8T.js";import{r as Gn,t as Kn}from"./file-icons-CdJgUy-I.js";import{t as qn}from"./components-CskjK6xZ.js";import{b as Jn}from"./write-secret-modal-DzKAInL2.js";import{n as Yn}from"./spinner-DyNE-o8o.js";import{n as Xn,o as Zn,r as Qn}from"./readonly-python-code-BaElyj-4.js";import{n as $n,t as er}from"./useDeleteCell-KX6SEwki.js";import{t as tr}from"./save-Dgoim6QF.js";import{G as nr,I as rr,Ut as ir,Xt as ar,Yt as or,Zt as sr,tn as cr}from"./input-BoBxR50a.js";import{n as lr}from"./copy-D8O_CYCG.js";import{t as ur}from"./use-toast-Wu434mLr.js";import{t as dr}from"./preload-helper-uBIymjUX.js";import{$t as fr,Ct as pr,Dt as mr,E as hr,Et as gr,Ft as _r,Gt as vr,H as yr,I as br,It as xr,Jt as Sr,Kt as Cr,Ot as wr,P as Tr,Qt as I,St as Er,Ut as Dr,V as Or,Vt as kr,Wt as Ar,Xt as jr,_ as Mr,at as L,dt as Nr,gt as Pr,ht as Fr,in as Ir,jt as Lr,lt as Rr,m as zr,ot as Br,st as R,tn as Vr,ut as Hr,w as Ur,wt as Wr,zt as Gr}from"./dist-Cny7_yZb.js";import{C as Kr,E as qr,I as Jr,O as Yr,S as Xr,a as Zr,c as Qr,n as $r,r as ei,w as ti}from"./dist-DBMV4gqt.js";import{o as ni}from"./arrays-BqUx5USx.js";import{n as ri}from"./once-Haz_uxEL.js";import{t as ii}from"./createReducer-DgRODTW6.js";import{a as ai,c as oi,f as si,h as ci,i as li,l as ui,n as di,o as fi,t as pi}from"./dist-qhAY4L2r.js";import{r as mi}from"./strings-B2vv-ENv.js";import{r as hi,t as gi}from"./requests-lt0JK8Jt.js";import{t as _i}from"./badge-crT3E0Rm.js";import{a as vi}from"./dist-DusFODSa.js";import{r as yi}from"./useTheme-n8Dj1zH7.js";import{t as bi}from"./I18nProvider-Cg2I_s1_.js";import{i as xi}from"./numbers-Mk3-CcoU.js";import{n as Si}from"./useAsyncData-C7aJJz0Y.js";import{a as Ci}from"./useRunCells-B847kPLO.js";import{l as wi}from"./useInstallPackage-C9-icL78.js";import{a as Ti}from"./errors-CNsgAw6m.js";import{t as z}from"./extends-CvVTau-c.js";import{t as Ei}from"./objectWithoutPropertiesLoose-Do6ywDBO.js";import{t as Di}from"./kbd-pdKBv96t.js";import{a as Oi,n as ki}from"./state-CHojzKpZ.js";import{a as Ai,o as ji}from"./cell-link-BOqoitvE.js";import{a as Mi}from"./renderShortcut-C1JwYcqW.js";import{n as Ni,t as Pi}from"./icons-CiZ_8zS-.js";import{n as Fi}from"./esm-CI_o7NhW.js";import{t as Ii}from"./dist-AelfNxj6.js";import{t as Li}from"./skeleton-Cqh4O9g1.js";import{t as Ri}from"./requests-CgSY1X4a.js";import{n as zi}from"./formatting-BqrP-n49.js";import{t as Bi}from"./useSplitCell-CnvTmIw7.js";import{n as Vi,r as Hi,t as Ui}from"./panel-accordion-state-ChFIY2WQ.js";import{Bo as Wi,Fo as Gi,Ho as Ki,Io as qi,Lo as Ji,No as Yi,Po as Xi,Ro as Zi,Uo as Qi,Vo as $i,ut as ea,zo as ta}from"./loro_wasm_bg-Ctp2cNI9.js";import{t as na}from"./ws-BXWY541V.js";import{t as ra}from"./Inputs-BsQm29hD.js";import{n as ia}from"./hooks-C1_gQ8kr.js";var aa=dn(`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`}]]),oa={showInput:`Mod-l`,acceptEdit:`Mod-y`,rejectEdit:`Mod-u`},sa=300,ca=Cr.define({combine:e=>Ir(e,{onError:console.error,inputDebounceTime:sa,keymaps:oa},{onError:(e,t)=>e&&t,inputDebounceTime:(e,t)=>e&&t,keymaps:(e,t)=>e&&t})}),la=I.define(),ua=fr.define({create(){return{show:!1,lineFrom:0,lineTo:0}},update(e,t){for(let e of t.effects)if(e.is(la))return e.value;return e}}),da=I.define(),fa=I.define(),pa=fr.define({create(){return{shouldFocus:!1,inputValue:``}},update(e,t){let n=e;for(let e of t.effects)e.is(da)&&(n={...n,inputValue:e.value}),e.is(fa)&&(n={...n,shouldFocus:e.value});return n}}),ma=I.define(),ha=fr.define({create(){return null},update(e,t){for(let e of t.effects)if(e.is(ma))return e.value;return e}}),ga=I.define(),_a=fr.define({create(){return!1},update(e,t){for(let e of t.effects)if(e.is(ga))return e.value;return e}}),va=1,ya=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<va)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:[la.of({show:!0,lineFrom:o,lineTo:s}),fa.of(!0),da.of(``)],selection:Ar.cursor(i.from)}),!0},ba=e=>e.state.field(ha)?(e.dispatch({effects:[ma.of(null),la.of({show:!1,lineFrom:0,lineTo:0}),fa.of(!1),da.of(``),ga.of(!1)]}),!0):!1,xa=e=>{let t=e.state.field(ha);return t?(e.dispatch({changes:{from:t.from,to:t.to,insert:t.oldCode},effects:[ma.of(null),la.of({show:!1,lineFrom:0,lineTo:0}),fa.of(!1),da.of(``),ga.of(!1)]}),!0):!1},Sa=fr.define({create(){return{suggestion:null}},update(e,t){let n=t.effects.find(e=>e.is(Ca));if(!t.docChanged&&!n&&!t.selection)return e;if(n&&t.state.doc===n.value.doc&&t.state.selection.main.head===n.value.pos)return{suggestion:n.value.text};if(e.suggestion&&t.docChanged&&t.startState.selection.ranges.length===1&&t.startState.selection.main.empty&&t.state.selection.ranges.length===1&&t.state.selection.main.empty){let n=t.startState.selection.main.head,r=``,i=0,a=!0;if(t.changes.iterChanges((e,t,o,s,c)=>{i++,a&&=e===n&&t===n,r=c.toString()}),a&&i===1&&r&&e.suggestion.startsWith(r)&&t.state.selection.main.head===n+r.length)return{suggestion:e.suggestion.slice(r.length)||null}}return{suggestion:null}}}),Ca=I.define();function wa(e,t){let n=e.state.selection.main.head,r=[],i=L.widget({widget:new Ta(t),side:1});return r.push(i.range(n)),L.set(r)}var Ta=class extends Nr{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
- `).length-1}},Ea=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){if(t){for(let[e,t]of this.cache)Date.now()-t.timestamp>this.timeout&&this.cache.delete(e);if(this.cache.delete(e),this.cache.set(e,{result:t,timestamp:Date.now()}),this.cache.size>20){let e=this.cache.keys().next().value;e!==void 0&&this.cache.delete(e)}}}},Da=(e,t)=>Hr.fromClass(class{abortController=null;timer=null;cache;constructor(){this.cache=new Ea(t.cacheTimeout??1e3)}cancel(){this.timer!==null&&clearTimeout(this.timer),this.timer=null,this.abortController?.abort(),this.abortController=null}update(n){let r=n.transactions.some(e=>e.effects.some(e=>e.is(Ca)&&e.value.text===null));if(!n.docChanged&&!n.selectionSet&&!r&&!(n.focusChanged&&!n.view.hasFocus)||(this.cancel(),!n.docChanged||n.state.field(Sa).suggestion||!n.state.selection.main.empty||n.state.selection.ranges.length!==1||t.events?.beforeSuggestionFetch?.(n.view)===!1))return;let i=new AbortController;this.abortController=i;let a=n.state.doc,o=n.state.selection.main.head,s=JSON.stringify([a.toString(),o]),c=this.cache.get(s),l=async()=>{if(!i.signal.aborted)try{let r=c??await e(n.state,i.signal,n.view);if(i.signal.aborted||n.view.state.doc!==a||n.view.state.selection.main.head!==o||t.events?.shouldShowSuggestion?.(n.view,r)===!1)return;this.cache.set(s,r),n.view.dispatch({effects:Ca.of({text:r,doc:a,pos:o})})}catch(e){!i.signal.aborted&&e instanceof Error&&e.name!==`AbortError`&&console.error(`Suggestion fetch error:`,e)}};this.timer=setTimeout(l,c?0:t.delay??500)}destroy(){this.cancel()}}),Oa=Hr.fromClass(class{decorations;constructor(){this.decorations=L.none}update(e){let t=e.state.field(Sa)?.suggestion;if(!t){this.decorations=L.none;return}this.decorations=wa(e.view,t)}},{decorations:e=>e.decorations});function ka(e,t,n,r){return{...e.changeByRange(i=>{if(i===e.selection.main)return{changes:{from:n,to:r,insert:t},range:Ar.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:Ar.cursor(i.from-a+t.length)}}),userEvent:`input.complete`}}var Aa=e=>{let t=e.state.field(Sa)?.suggestion;if(!t)return!1;let n=e.state.facet(Na);return e.dispatch({...ka(e.state,t,e.state.selection.main.head,e.state.selection.main.head)}),n.events?.onSuggestionAccepted?.(e,t),!0},ja=e=>{let t=e.state.field(Sa)?.suggestion;if(!t)return!1;let n=e.state.facet(Na);return e.dispatch({effects:Ca.of({text:null,doc:e.state.doc,pos:e.state.selection.main.head})}),n.events?.onSuggestionRejected?.(e,t),!0},Ma=gr.of([{key:`Tab`,run:Aa},{key:`Escape`,run:ja}]),Na=Cr.define({combine:e=>e.at(-1)});function Pa(e){let{includeKeymap:t=!0}=e;return[Sa,Na.of(e),Da(e.fetchFn,e),Oa,t?Ma:[]]}var Fa=R.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`}}),Ia={mac:`⌘`,windows:`Ctrl`,default:`Ctrl`};function La(){return navigator.platform.startsWith(`Mac`)?Ia.mac:navigator.platform.startsWith(`Win`)?Ia.windows:Ia.default}function Ra(e){return e.replace(`Mod`,La()).replace(`-`,` `).toUpperCase()}function B(e,t){let n=document.createElement(e);return n.className=t,n}function za(e){let t=e.state.facet(ca),n={...oa,...t.keymaps},r=e.state.facet(Ba),i=B(`div`,`cm-ai-tooltip`).appendChild(B(`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=Ra(n.showInput),i.querySelector(`span`)?.addEventListener(`mousedown`,e=>{e.stopPropagation(),e.button===0&&e.preventDefault()}),i.querySelector(`span`)?.addEventListener(`click`,t=>{t.preventDefault(),ya(e)}),i}var Ba=Cr.define({combine(e){return Ir(e,{render:za,hideOnBlur:!1,label:`Edit with AI`})}}),Va=Hr.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(Ba);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(ua).show){this.dom.style.display=`none`;return}if(e.state.facet(Ba).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()}}),Ha=R.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 Ua(){return[Va,Ha]}var Wa=class extends Nr{oldCode;constructor(e){super(),this.oldCode=e}toDOM(e){let t=B(`div`,`cm-old-code-container`);t.setAttribute(`role`,`region`),t.setAttribute(`aria-label`,`Previous code version`);let n=B(`div`,`cm-old-code cm-line`);n.textContent=this.oldCode;let r=B(`div`,`cm-floating-buttons`),i=e.state.facet(ca),a={...oa,...i.keymaps},o=B(`button`,`cm-floating-button cm-floating-accept`);o.innerHTML=`<span class="hotkey">${Ra(a.acceptEdit)}</span> Accept`,o.setAttribute(`aria-label`,`Accept changes`),o.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),e.focus(),ba(e)});let s=B(`button`,`cm-floating-button cm-floating-reject`);return s.innerHTML=`<span class="hotkey">${Ra(a.rejectEdit)}</span> Reject`,s.setAttribute(`aria-label`,`Reject changes`),s.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),e.focus(),xa(e)}),r.append(o,s),t.append(n,r),t}updateDOM(e,t){return!0}},Ga=class extends Nr{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(pa),n=e.state.field(_a),r=B(`div`,`cm-ai-input-container`);this.inputContainer=r,this.dom=r;let i=B(`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=B(`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=B(`div`,`cm-ai-loading-container`);this.loadingContainer=o;let s=B(`div`,`cm-ai-loading-indicator`);s.setAttribute(`role`,`status`),s.setAttribute(`aria-live`,`polite`),s.textContent=`Generating`;let c=B(`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=B(`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=B(`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:fa.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:da.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:[la.of({show:!1,lineFrom:0,lineTo:0}),ga.of(!1)]}),e.focus())};handleSubmit=async e=>{let t=this.view;if(!t)return;let n=t.state.facet(ca);e?.stopPropagation();let r=t.state.field(ua),{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:ga.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(ua).show)return;if(!e||typeof e!=`string`)throw Error(`Invalid completion result`);t.dispatch({changes:{from:c,to:l,insert:e},effects:[la.of({show:!1,lineFrom:0,lineTo:0}),ma.of({from:c,to:c+e.length,oldCode:u,newCode:e}),ga.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 Ka(e){if(!e.prompt)throw Error(`prompt function is required`);let t={...oa,...e.keymaps};return[ca.of(e),ua,pa,ha,_a,Ua(),Fa,gr.of([{key:t.showInput,run:ya}]),Sr.highest([gr.of([{key:t.acceptEdit,run:ba},{key:t.rejectEdit,run:xa}])]),qa,Ja,Ya,Xa]}var qa=R.updateListener.of(e=>{let t=e.state.field(ua);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:[la.of({show:!0,lineFrom:n,lineTo:r})]})}),Ja=R.decorations.of(e=>{let t=e.state.field(ha);return t?L.set([L.mark({class:`cm-new-code-line`}).range(t.from,t.to)]):L.none}),Ya=R.decorations.compute([ua],e=>{let t=e.field(ua),n=e.facet(ca),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(L.line({class:`cm-ai-selection`}).range(a)),t===i&&r.push(L.widget({widget:new Ga(n.prompt),side:-1}).range(a))}}return L.set(r)}),Xa=fr.define({create(e){return L.none},update(e,t){let n=t.state.field(ha);return n?L.set([L.widget({widget:new Wa(n.oldCode),block:!0}).range(n.from)]):L.none},provide:e=>R.decorations.from(e)}),V=e(u(),1),H=Pt(),Za=()=>({entries:new Map}),{valueAtom:Qa,useActions:$a}=ii(Za,{submit:(e,t)=>{let{cellIds:n,deleteCell:r,deleteManyCells:i,store:a}=t,o=a.get(he),s=a.get(tt),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)}),Za()):{...e,entries:l}},clear:()=>Za()});function eo(){let e=n(),{submit:t,clear:r}=$a(),{entries:a}=i(Qa),o=er(),s=$n();return{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}}}function to(e){let t=(0,H.c)(16),n=i(Qa),r=$a(),a=$n(),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(no)}),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 no(e){return e.cellId}async function ro(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 Nn({stream:Dn({stream:e.body,schema:Pn}).pipeThrough(new TransformStream({transform(e){if(!e.success)throw e.error;let r=e.value;if(kn(r)&&r.type===En)t=On.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 io(e){let t=`
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-Dfcbgjhg.js";import{t as u}from"./react-DVplv7_D.js";import{$i as d,Bn as f,Br as p,Bt as m,Ca as h,Ci as g,Co as _,Cr as v,D as y,Dr as b,Fr as x,H as S,I as C,Ir as w,K as T,Lr as E,Lt as D,Ni as O,Nn as ee,Nr as k,Pr as te,Qi as ne,Ri as re,Rr as A,Si as j,U as ie,Ur as M,V as N,Vn as P,W as ae,Wr as oe,Yn as se,Zn as ce,_i as le,_n as ue,_t as de,ai as fe,ar as pe,at as me,b as he,ba as ge,bi as _e,bt as ve,ca as ye,ci as be,cn as xe,cr as Se,d as Ce,dt as we,fi as Te,fn as Ee,fo as De,ft as Oe,ga as ke,gn as Ae,gt as je,h as Me,ha as Ne,ht as Pe,i as Fe,it as Ie,jo as Le,jr as Re,li as ze,lr as Be,mn as Ve,mt as He,ni as Ue,nr as We,or as Ge,ot as Ke,pi as qe,pt as Je,qa as Ye,ri as Xe,rr as Ze,sa as Qe,si as $e,sr as et,ti as tt,tr as nt,tt as rt,u as it,ui as at,un as ot,vn as st,vr as ct,vt as lt,wa as ut,wi as dt,xa as ft,xi as pt,xo as mt,yi as ht,za as gt,zr as F}from"./cells-CdH98VSn.js";import{t as _t}from"./react-dom-_LrxgvjW.js";import{C as vt,I as yt,M as bt,N as xt,O as St,R as Ct,S as wt,b as Tt}from"./schemas-ChRqMOTL.js";import{C as Et,E as Dt,P as Ot,k as kt,m as At,o as jt,r as Mt,v as Nt}from"./config-CYsbZpwa.js";import{t as Pt}from"./compiler-runtime-BrajqUja.js";import{t as Ft}from"./debounce-aFmHgJZY.js";import{E as It,_ as Lt,c as Rt,g as zt,h as Bt,s as Vt}from"./config-DGX7JYor.js";import{_ as Ht,c as Ut,g as Wt,m as Gt,t as Kt}from"./useEventListener-CjDeLqFC.js";import{t as qt}from"./invariant-Ci2dTZ72.js";import{s as Jt}from"./config-BoBwH7CU.js";import{d as Yt,m as Xt,t as Zt}from"./session-B8Y-GJnS.js";import{c as Qt}from"./state-DaWgt-rn.js";import{t as $t}from"./ErrorBoundary-hliG40Pk.js";import{t as en}from"./cn-ldLVeaqm.js";import{t as tn}from"./jsx-runtime-B74pBk57.js";import{Q as nn,Z as rn}from"./JsonOutput-9tmC-p6h.js";import{d as an}from"./select-3CVGlYrC.js";import{n as on}from"./download-CCZkq0y4.js";import{t as sn}from"./switch-1h011wlH.js";import{t as cn}from"./tooltip-CkGm8X7m.js";import{r as ln,t as un}from"./button-D8gVKwe-.js";import{t as dn}from"./createLucideIcon-DfJ2oMlA.js";import{i as fn,n as pn}from"./paths-bkIFVj8h.js";import{r as mn}from"./layout-Ct0rjb-5.js";import{A as hn,C as gn,D as _n,_ as vn,j as yn,t as bn,v as xn,y as Sn}from"./ai-model-dropdown-CIg9eu47.js";import{r as Cn}from"./useNumberFormatter-D7O_26UI.js";import{t as wn}from"./circle-check-BCurAHEb.js";import{B as Tn,F as En,G as Dn,I as On,L as kn,M as An,R as jn,T as Mn,V as Nn,W as Pn,c as Fn,f as In,i as Ln,n as Rn,o as zn,r as Bn,s as Vn,w as Hn,z as Un}from"./add-cell-with-ai-BYWG0iKO.js";import{t as Wn}from"./database-zap-B_PMVg8T.js";import{r as Gn,t as Kn}from"./file-icons-CdJgUy-I.js";import{t as qn}from"./components-DrU8dOzy.js";import{b as Jn}from"./write-secret-modal-usRSi1bb.js";import{n as Yn}from"./spinner-DyNE-o8o.js";import{n as Xn,o as Zn,r as Qn}from"./readonly-python-code-DrXDDAnA.js";import{n as $n,t as er}from"./useDeleteCell-CREJXVNp.js";import{t as tr}from"./save-Dgoim6QF.js";import{G as nr,I as rr,Ut as ir,Xt as ar,Yt as or,Zt as sr,tn as cr}from"./input-ByHt6aoV.js";import{n as lr}from"./copy-KlhazlhB.js";import{t as ur}from"./use-toast-Wu434mLr.js";import{t as dr}from"./preload-helper-uBIymjUX.js";import{$t as fr,Ct as pr,Dt as mr,E as hr,Et as gr,Ft as _r,Gt as vr,H as yr,I as br,It as xr,Jt as Sr,Kt as Cr,Ot as wr,P as Tr,Qt as I,St as Er,Ut as Dr,V as Or,Vt as kr,Wt as Ar,Xt as jr,_ as Mr,at as L,dt as Nr,gt as Pr,ht as Fr,in as Ir,jt as Lr,lt as Rr,m as zr,ot as Br,st as R,tn as Vr,ut as Hr,w as Ur,wt as Wr,zt as Gr}from"./dist-Cny7_yZb.js";import{C as Kr,E as qr,I as Jr,O as Yr,S as Xr,a as Zr,c as Qr,n as $r,r as ei,w as ti}from"./dist-DBMV4gqt.js";import{o as ni}from"./arrays-0R2reF2y.js";import{n as ri}from"./once-6KNTRW0u.js";import{t as ii}from"./createReducer-HKXUbqyz.js";import{a as ai,c as oi,f as si,h as ci,i as li,l as ui,n as di,o as fi,t as pi}from"./dist-qhAY4L2r.js";import{r as mi}from"./strings-C25fhMR_.js";import{r as hi,t as gi}from"./requests-lt0JK8Jt.js";import{t as _i}from"./badge-crT3E0Rm.js";import{a as vi}from"./dist-DusFODSa.js";import{r as yi}from"./useTheme-DLtPc-39.js";import{t as bi}from"./I18nProvider-Cg2I_s1_.js";import{i as xi}from"./numbers-CsZVw3Dc.js";import{n as Si}from"./useAsyncData-DhhdOGGd.js";import{a as Ci}from"./useRunCells-BHBMk9zW.js";import{l as wi}from"./useInstallPackage-Cw0dVELh.js";import{a as Ti}from"./errors-CNsgAw6m.js";import{t as z}from"./extends-CvVTau-c.js";import{t as Ei}from"./objectWithoutPropertiesLoose-Do6ywDBO.js";import{t as Di}from"./kbd-pdKBv96t.js";import{a as Oi,n as ki}from"./state-_uXVmwuN.js";import{a as Ai,o as ji}from"./cell-link-B_QkRkm-.js";import{a as Mi}from"./renderShortcut-H60uiHBp.js";import{n as Ni,t as Pi}from"./icons-CiZ_8zS-.js";import{n as Fi}from"./esm-CI_o7NhW.js";import{t as Ii}from"./dist-AelfNxj6.js";import{t as Li}from"./skeleton-Cqh4O9g1.js";import{t as Ri}from"./requests-CgSY1X4a.js";import{n as zi}from"./formatting-uom1es4b.js";import{t as Bi}from"./useSplitCell-DAgwZV0q.js";import{n as Vi,r as Hi,t as Ui}from"./panel-accordion-state-Ban6j---.js";import{Bo as Wi,Fo as Gi,Ho as Ki,Io as qi,Lo as Ji,No as Yi,Po as Xi,Ro as Zi,Uo as Qi,Vo as $i,ut as ea,zo as ta}from"./loro_wasm_bg-Ctp2cNI9.js";import{t as na}from"./ws-BXWY541V.js";import{t as ra}from"./Inputs-BsQm29hD.js";import{n as ia}from"./hooks-BJgCcVXZ.js";var aa=dn(`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`}]]),oa={showInput:`Mod-l`,acceptEdit:`Mod-y`,rejectEdit:`Mod-u`},sa=300,ca=Cr.define({combine:e=>Ir(e,{onError:console.error,inputDebounceTime:sa,keymaps:oa},{onError:(e,t)=>e&&t,inputDebounceTime:(e,t)=>e&&t,keymaps:(e,t)=>e&&t})}),la=I.define(),ua=fr.define({create(){return{show:!1,lineFrom:0,lineTo:0}},update(e,t){for(let e of t.effects)if(e.is(la))return e.value;return e}}),da=I.define(),fa=I.define(),pa=fr.define({create(){return{shouldFocus:!1,inputValue:``}},update(e,t){let n=e;for(let e of t.effects)e.is(da)&&(n={...n,inputValue:e.value}),e.is(fa)&&(n={...n,shouldFocus:e.value});return n}}),ma=I.define(),ha=fr.define({create(){return null},update(e,t){for(let e of t.effects)if(e.is(ma))return e.value;return e}}),ga=I.define(),_a=fr.define({create(){return!1},update(e,t){for(let e of t.effects)if(e.is(ga))return e.value;return e}}),va=1,ya=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<va)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:[la.of({show:!0,lineFrom:o,lineTo:s}),fa.of(!0),da.of(``)],selection:Ar.cursor(i.from)}),!0},ba=e=>e.state.field(ha)?(e.dispatch({effects:[ma.of(null),la.of({show:!1,lineFrom:0,lineTo:0}),fa.of(!1),da.of(``),ga.of(!1)]}),!0):!1,xa=e=>{let t=e.state.field(ha);return t?(e.dispatch({changes:{from:t.from,to:t.to,insert:t.oldCode},effects:[ma.of(null),la.of({show:!1,lineFrom:0,lineTo:0}),fa.of(!1),da.of(``),ga.of(!1)]}),!0):!1},Sa=fr.define({create(){return{suggestion:null}},update(e,t){let n=t.effects.find(e=>e.is(Ca));if(!t.docChanged&&!n&&!t.selection)return e;if(n&&t.state.doc===n.value.doc&&t.state.selection.main.head===n.value.pos)return{suggestion:n.value.text};if(e.suggestion&&t.docChanged&&t.startState.selection.ranges.length===1&&t.startState.selection.main.empty&&t.state.selection.ranges.length===1&&t.state.selection.main.empty){let n=t.startState.selection.main.head,r=``,i=0,a=!0;if(t.changes.iterChanges((e,t,o,s,c)=>{i++,a&&=e===n&&t===n,r=c.toString()}),a&&i===1&&r&&e.suggestion.startsWith(r)&&t.state.selection.main.head===n+r.length)return{suggestion:e.suggestion.slice(r.length)||null}}return{suggestion:null}}}),Ca=I.define();function wa(e,t){let n=e.state.selection.main.head,r=[],i=L.widget({widget:new Ta(t),side:1});return r.push(i.range(n)),L.set(r)}var Ta=class extends Nr{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
+ `).length-1}},Ea=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){if(t){for(let[e,t]of this.cache)Date.now()-t.timestamp>this.timeout&&this.cache.delete(e);if(this.cache.delete(e),this.cache.set(e,{result:t,timestamp:Date.now()}),this.cache.size>20){let e=this.cache.keys().next().value;e!==void 0&&this.cache.delete(e)}}}},Da=(e,t)=>Hr.fromClass(class{abortController=null;timer=null;cache;constructor(){this.cache=new Ea(t.cacheTimeout??1e3)}cancel(){this.timer!==null&&clearTimeout(this.timer),this.timer=null,this.abortController?.abort(),this.abortController=null}update(n){let r=n.transactions.some(e=>e.effects.some(e=>e.is(Ca)&&e.value.text===null));if(!n.docChanged&&!n.selectionSet&&!r&&!(n.focusChanged&&!n.view.hasFocus)||(this.cancel(),!n.docChanged||n.state.field(Sa).suggestion||!n.state.selection.main.empty||n.state.selection.ranges.length!==1||t.events?.beforeSuggestionFetch?.(n.view)===!1))return;let i=new AbortController;this.abortController=i;let a=n.state.doc,o=n.state.selection.main.head,s=JSON.stringify([a.toString(),o]),c=this.cache.get(s),l=async()=>{if(!i.signal.aborted)try{let r=c??await e(n.state,i.signal,n.view);if(i.signal.aborted||n.view.state.doc!==a||n.view.state.selection.main.head!==o||t.events?.shouldShowSuggestion?.(n.view,r)===!1)return;this.cache.set(s,r),n.view.dispatch({effects:Ca.of({text:r,doc:a,pos:o})})}catch(e){!i.signal.aborted&&e instanceof Error&&e.name!==`AbortError`&&console.error(`Suggestion fetch error:`,e)}};this.timer=setTimeout(l,c?0:t.delay??500)}destroy(){this.cancel()}}),Oa=Hr.fromClass(class{decorations;constructor(){this.decorations=L.none}update(e){let t=e.state.field(Sa)?.suggestion;if(!t){this.decorations=L.none;return}this.decorations=wa(e.view,t)}},{decorations:e=>e.decorations});function ka(e,t,n,r){return{...e.changeByRange(i=>{if(i===e.selection.main)return{changes:{from:n,to:r,insert:t},range:Ar.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:Ar.cursor(i.from-a+t.length)}}),userEvent:`input.complete`}}var Aa=e=>{let t=e.state.field(Sa)?.suggestion;if(!t)return!1;let n=e.state.facet(Na);return e.dispatch({...ka(e.state,t,e.state.selection.main.head,e.state.selection.main.head)}),n.events?.onSuggestionAccepted?.(e,t),!0},ja=e=>{let t=e.state.field(Sa)?.suggestion;if(!t)return!1;let n=e.state.facet(Na);return e.dispatch({effects:Ca.of({text:null,doc:e.state.doc,pos:e.state.selection.main.head})}),n.events?.onSuggestionRejected?.(e,t),!0},Ma=gr.of([{key:`Tab`,run:Aa},{key:`Escape`,run:ja}]),Na=Cr.define({combine:e=>e.at(-1)});function Pa(e){let{includeKeymap:t=!0}=e;return[Sa,Na.of(e),Da(e.fetchFn,e),Oa,t?Ma:[]]}var Fa=R.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`}}),Ia={mac:`⌘`,windows:`Ctrl`,default:`Ctrl`};function La(){return navigator.platform.startsWith(`Mac`)?Ia.mac:navigator.platform.startsWith(`Win`)?Ia.windows:Ia.default}function Ra(e){return e.replace(`Mod`,La()).replace(`-`,` `).toUpperCase()}function B(e,t){let n=document.createElement(e);return n.className=t,n}function za(e){let t=e.state.facet(ca),n={...oa,...t.keymaps},r=e.state.facet(Ba),i=B(`div`,`cm-ai-tooltip`).appendChild(B(`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=Ra(n.showInput),i.querySelector(`span`)?.addEventListener(`mousedown`,e=>{e.stopPropagation(),e.button===0&&e.preventDefault()}),i.querySelector(`span`)?.addEventListener(`click`,t=>{t.preventDefault(),ya(e)}),i}var Ba=Cr.define({combine(e){return Ir(e,{render:za,hideOnBlur:!1,label:`Edit with AI`})}}),Va=Hr.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(Ba);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(ua).show){this.dom.style.display=`none`;return}if(e.state.facet(Ba).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()}}),Ha=R.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 Ua(){return[Va,Ha]}var Wa=class extends Nr{oldCode;constructor(e){super(),this.oldCode=e}toDOM(e){let t=B(`div`,`cm-old-code-container`);t.setAttribute(`role`,`region`),t.setAttribute(`aria-label`,`Previous code version`);let n=B(`div`,`cm-old-code cm-line`);n.textContent=this.oldCode;let r=B(`div`,`cm-floating-buttons`),i=e.state.facet(ca),a={...oa,...i.keymaps},o=B(`button`,`cm-floating-button cm-floating-accept`);o.innerHTML=`<span class="hotkey">${Ra(a.acceptEdit)}</span> Accept`,o.setAttribute(`aria-label`,`Accept changes`),o.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),e.focus(),ba(e)});let s=B(`button`,`cm-floating-button cm-floating-reject`);return s.innerHTML=`<span class="hotkey">${Ra(a.rejectEdit)}</span> Reject`,s.setAttribute(`aria-label`,`Reject changes`),s.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),e.focus(),xa(e)}),r.append(o,s),t.append(n,r),t}updateDOM(e,t){return!0}},Ga=class extends Nr{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(pa),n=e.state.field(_a),r=B(`div`,`cm-ai-input-container`);this.inputContainer=r,this.dom=r;let i=B(`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=B(`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=B(`div`,`cm-ai-loading-container`);this.loadingContainer=o;let s=B(`div`,`cm-ai-loading-indicator`);s.setAttribute(`role`,`status`),s.setAttribute(`aria-live`,`polite`),s.textContent=`Generating`;let c=B(`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=B(`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=B(`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:fa.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:da.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:[la.of({show:!1,lineFrom:0,lineTo:0}),ga.of(!1)]}),e.focus())};handleSubmit=async e=>{let t=this.view;if(!t)return;let n=t.state.facet(ca);e?.stopPropagation();let r=t.state.field(ua),{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:ga.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(ua).show)return;if(!e||typeof e!=`string`)throw Error(`Invalid completion result`);t.dispatch({changes:{from:c,to:l,insert:e},effects:[la.of({show:!1,lineFrom:0,lineTo:0}),ma.of({from:c,to:c+e.length,oldCode:u,newCode:e}),ga.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 Ka(e){if(!e.prompt)throw Error(`prompt function is required`);let t={...oa,...e.keymaps};return[ca.of(e),ua,pa,ha,_a,Ua(),Fa,gr.of([{key:t.showInput,run:ya}]),Sr.highest([gr.of([{key:t.acceptEdit,run:ba},{key:t.rejectEdit,run:xa}])]),qa,Ja,Ya,Xa]}var qa=R.updateListener.of(e=>{let t=e.state.field(ua);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:[la.of({show:!0,lineFrom:n,lineTo:r})]})}),Ja=R.decorations.of(e=>{let t=e.state.field(ha);return t?L.set([L.mark({class:`cm-new-code-line`}).range(t.from,t.to)]):L.none}),Ya=R.decorations.compute([ua],e=>{let t=e.field(ua),n=e.facet(ca),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(L.line({class:`cm-ai-selection`}).range(a)),t===i&&r.push(L.widget({widget:new Ga(n.prompt),side:-1}).range(a))}}return L.set(r)}),Xa=fr.define({create(e){return L.none},update(e,t){let n=t.state.field(ha);return n?L.set([L.widget({widget:new Wa(n.oldCode),block:!0}).range(n.from)]):L.none},provide:e=>R.decorations.from(e)}),V=e(u(),1),H=Pt(),Za=()=>({entries:new Map}),{valueAtom:Qa,useActions:$a}=ii(Za,{submit:(e,t)=>{let{cellIds:n,deleteCell:r,deleteManyCells:i,store:a}=t,o=a.get(he),s=a.get(tt),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)}),Za()):{...e,entries:l}},clear:()=>Za()});function eo(){let e=(0,H.c)(10),t=n(),{submit:r,clear:a}=$a(),{entries:o}=i(Qa),s=er(),c=$n(),l;e[0]!==s||e[1]!==c||e[2]!==t||e[3]!==r?(l=e=>{r({cellIds:e,deleteCell:s,deleteManyCells:c,store:t})},e[0]=s,e[1]=c,e[2]=t,e[3]=r,e[4]=l):l=e[4];let u=o.size===0,d=o.size>1,f;return e[5]!==a||e[6]!==l||e[7]!==u||e[8]!==d?(f={submit:l,clear:a,idle:u,shouldConfirmDelete:d},e[5]=a,e[6]=l,e[7]=u,e[8]=d,e[9]=f):f=e[9],f}function to(e){let t=(0,H.c)(16),n=i(Qa),r=$a(),a=$n(),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(no)}),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 no(e){return e.cellId}async function ro(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 Nn({stream:Dn({stream:e.body,schema:Pn}).pipeThrough(new TransformStream({transform(e){if(!e.success)throw e.error;let r=e.value;if(kn(r)&&r.type===En)t=On.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 io(e){let t=`
4
4
  ${e.codeBefore}
5
5
  <rewrite_this>
6
6
  ${e.selection}
@@ -1 +1 @@
1
- import{c as e,l as t,t as n,u as r}from"./useEvent-Dfcbgjhg.js";import{D as i,In as a,M as o,P as s,gr as c,xo as l,za as u}from"./cells-CN1I_0eH.js";import{E as d,v as f}from"./config-MaHeMC9o.js";import{t as p}from"./compiler-runtime-BrajqUja.js";import{p as m}from"./config-CA1V-wjh.js";import{g as h}from"./useEventListener-D9cftcHj.js";import{i as g}from"./utils-B4K466FK.js";import{c as _}from"./session-DqoWmb7X.js";import{t as v}from"./cn-ldLVeaqm.js";import{t as y}from"./jsx-runtime-B74pBk57.js";import{n as b}from"./paths-bkIFVj8h.js";import{b as x}from"./write-secret-modal-DzKAInL2.js";import{r as S}from"./requests-lt0JK8Jt.js";var C=p();function w(){return t(u)}function T(){let t=(0,C.c)(5),[i]=e(f),a=r(u),{openAlert:o}=x(),{sendRename:s}=S(),c;return t[0]!==i.state||t[1]!==o||t[2]!==s||t[3]!==a?(c=async e=>{let t=m();return i.state===d.OPEN?(_(t=>{e===null?t.delete(g.filePath):t.set(g.filePath,e)}),s({filename:e}).then(()=>(a(e),document.title=t.app_title||b.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=y(),D=e=>{let t=(0,C.c)(12),{className:n,cellId:r,variant:c,onClick:l,formatCellName:u,skipScroll:d}=e,f=s()[r]??``,p=o().inOrderIds.indexOf(r),{showCellIfHidden:m}=i(),h=u??j,g;t[0]===n?g=t[1]:(g=v(`inline-block cursor-pointer text-link hover:underline`,n),t[0]=n,t[1]=g);let _;t[2]!==r||t[3]!==l||t[4]!==m||t[5]!==d||t[6]!==c?(_=e=>{if(r===`__scratch__`)return!1;m({cellId:r}),e.stopPropagation(),e.preventDefault(),requestAnimationFrame(()=>{A(r,c,d)&&l?.()})},t[2]=r,t[3]=l,t[4]=m,t[5]=d,t[6]=c,t[7]=_):_=t[7];let y=h(a(f,p)),b;return t[8]!==g||t[9]!==_||t[10]!==y?(b=(0,E.jsx)(`div`,{className:g,role:`link`,tabIndex:-1,onClick:_,children:y}),t[8]=g,t[9]=_,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=()=>c(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=l.create(e),i=document.getElementById(r),a=i?.classList.contains(`has-error`);return i===null?(h.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-Dfcbgjhg.js";import{D as i,In as a,M as o,P as s,gr as c,xo as l,za as u}from"./cells-CdH98VSn.js";import{E as d,v as f}from"./config-CYsbZpwa.js";import{t as p}from"./compiler-runtime-BrajqUja.js";import{p as m}from"./config-DGX7JYor.js";import{g as h}from"./useEventListener-CjDeLqFC.js";import{i as g}from"./utils-B4K466FK.js";import{c as _}from"./session-B8Y-GJnS.js";import{t as v}from"./cn-ldLVeaqm.js";import{t as y}from"./jsx-runtime-B74pBk57.js";import{n as b}from"./paths-bkIFVj8h.js";import{b as x}from"./write-secret-modal-usRSi1bb.js";import{r as S}from"./requests-lt0JK8Jt.js";var C=p();function w(){return t(u)}function T(){let t=(0,C.c)(5),[i]=e(f),a=r(u),{openAlert:o}=x(),{sendRename:s}=S(),c;return t[0]!==i.state||t[1]!==o||t[2]!==s||t[3]!==a?(c=async e=>{let t=m();return i.state===d.OPEN?(_(t=>{e===null?t.delete(g.filePath):t.set(g.filePath,e)}),s({filename:e}).then(()=>(a(e),document.title=t.app_title||b.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=y(),D=e=>{let t=(0,C.c)(12),{className:n,cellId:r,variant:c,onClick:l,formatCellName:u,skipScroll:d}=e,f=s()[r]??``,p=o().inOrderIds.indexOf(r),{showCellIfHidden:m}=i(),h=u??j,g;t[0]===n?g=t[1]:(g=v(`inline-block cursor-pointer text-link hover:underline`,n),t[0]=n,t[1]=g);let _;t[2]!==r||t[3]!==l||t[4]!==m||t[5]!==d||t[6]!==c?(_=e=>{if(r===`__scratch__`)return!1;m({cellId:r}),e.stopPropagation(),e.preventDefault(),requestAnimationFrame(()=>{A(r,c,d)&&l?.()})},t[2]=r,t[3]=l,t[4]=m,t[5]=d,t[6]=c,t[7]=_):_=t[7];let y=h(a(f,p)),b;return t[8]!==g||t[9]!==_||t[10]!==y?(b=(0,E.jsx)(`div`,{className:g,role:`link`,tabIndex:-1,onClick:_,children:y}),t[8]=g,t[9]=_,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=()=>c(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=l.create(e),i=document.getElementById(r),a=i?.classList.contains(`has-error`);return i===null?(h.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};