@marimo-team/frontend 0.25.1-dev90 → 0.25.2-dev0

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 (365) hide show
  1. package/dist/assets/{ConnectedDataExplorerComponent-Bdak5-o8.js → ConnectedDataExplorerComponent-DJ5jwKfp.js} +1 -1
  2. package/dist/assets/{ErrorBoundary-DrliQ_7g.js → ErrorBoundary-BeE1cdgM.js} +2 -2
  3. package/dist/assets/{ImageComparisonComponent-DLxkuRy3.js → ImageComparisonComponent-pCLPT6RA.js} +1 -1
  4. package/dist/assets/LazyAnyLanguageCodeMirror-B_IYTCX5.js +2 -0
  5. package/dist/assets/{RunButton-qknEPbRR.js → RunButton-C2kFUhyO.js} +10 -10
  6. package/dist/assets/{abnfDiagram-VCTEODGH-dm832Yw9.js → abnfDiagram-VCTEODGH-CSPJSGaM.js} +1 -1
  7. package/dist/assets/add-cell-with-ai-BFgdVPaN.js +76 -0
  8. package/dist/assets/{agent-panel-CJva58SL.js → agent-panel-Dh7yWh9P.js} +5 -5
  9. package/dist/assets/ai-model-dropdown-DJ2elMLM.js +5 -0
  10. package/dist/assets/{any-language-editor-B7QvjaYO.js → any-language-editor-Cj_HzlZY.js} +1 -1
  11. package/dist/assets/app-config-button-DBCTefOX.js +1 -0
  12. package/dist/assets/{architectureDiagram-5GKGNRK7-CiRaYU5G.js → architectureDiagram-5GKGNRK7-7iukRoC9.js} +1 -1
  13. package/dist/assets/{blockDiagram-I7D4REHJ-BK3JcsXA.js → blockDiagram-I7D4REHJ-cuhpQB60.js} +1 -1
  14. package/dist/assets/{c4Diagram-7LVT6UL2-BbMz-zwF.js → c4Diagram-7LVT6UL2-CMQEYn6T.js} +1 -1
  15. package/dist/assets/{cache-panel-DxdmvFwH.js → cache-panel-C0oB1kE2.js} +1 -1
  16. package/dist/assets/{cells-BcQ8Tm3j.js → cells-CzugpTQu.js} +33 -33
  17. package/dist/assets/channel-CGdeorQk.js +1 -0
  18. package/dist/assets/{chat-display-TI342pMF.js → chat-display-DevO4F8W.js} +1 -1
  19. package/dist/assets/chat-panel-BGw0bqDk.js +4 -0
  20. package/dist/assets/{chat-ui-B1aeiWdr.js → chat-ui-CZZFGlZi.js} +4 -4
  21. package/dist/assets/{chunk-4HAMMTFA-F3WVmmmo.js → chunk-4HAMMTFA-C6Tl7kEY.js} +1 -1
  22. package/dist/assets/{chunk-75Z2AOVW-DA_lihEi.js → chunk-75Z2AOVW-BzzYECN7.js} +1 -1
  23. package/dist/assets/{chunk-DU6HZSFF-J-califE.js → chunk-DU6HZSFF-BlpgvKzl.js} +2 -2
  24. package/dist/assets/{chunk-F27PBJKO-BzJrz4xx.js → chunk-F27PBJKO-BVIgLGPF.js} +1 -1
  25. package/dist/assets/{chunk-GMAD6QVW-mXoq4V-T.js → chunk-GMAD6QVW-hv6IsAru.js} +1 -1
  26. package/dist/assets/{chunk-GVQU2GXP-B-87l3Xt.js → chunk-GVQU2GXP-Duv4ZYb-.js} +1 -1
  27. package/dist/assets/{chunk-IMKFNOWR-yy9Ec7ZM.js → chunk-IMKFNOWR-BIILwBhp.js} +1 -1
  28. package/dist/assets/{chunk-L3NEJ4N5-DLeZO9l0.js → chunk-L3NEJ4N5-B2hafvRU.js} +1 -1
  29. package/dist/assets/{chunk-OSK3NFVY-PWoOtECb.js → chunk-OSK3NFVY-SNGRdtNA.js} +1 -1
  30. package/dist/assets/{chunk-P2QGCYS3-DsJshZeL.js → chunk-P2QGCYS3-_SeE0QXb.js} +1 -1
  31. package/dist/assets/{chunk-POPQ4Y6H-CCg5TpSp.js → chunk-POPQ4Y6H-BB5NNJFE.js} +1 -1
  32. package/dist/assets/{chunk-PWAF6VOD-CrFPAGFi.js → chunk-PWAF6VOD-BZoBqp8x.js} +1 -1
  33. package/dist/assets/{chunk-SHT3W25Y-lri4OQTX.js → chunk-SHT3W25Y-BtLGdeDB.js} +1 -1
  34. package/dist/assets/{chunk-SVP7TREG-B3ISFgJc.js → chunk-SVP7TREG-B0UfxhUP.js} +1 -1
  35. package/dist/assets/{chunk-TICWLB2K-CJ7ETjY3.js → chunk-TICWLB2K-BP7vel_P.js} +1 -1
  36. package/dist/assets/classDiagram-ZZMXUADV-CoNXKNMZ.js +1 -0
  37. package/dist/assets/classDiagram-v2-VYDZK3BY-CoNXKNMZ.js +1 -0
  38. package/dist/assets/code-visibility-BFNYI7hr.js +1 -0
  39. package/dist/assets/command-palette-DN4JoOLD.js +1 -0
  40. package/dist/assets/{common-cDzShymV.js → common-DUCPhoyP.js} +1 -1
  41. package/dist/assets/{components-B3KlHXnD.js → components-CK7CeYlo.js} +1 -1
  42. package/dist/assets/components-DAmFBASm.js +1 -0
  43. package/dist/assets/config-B4VJJibu.js +1 -0
  44. package/dist/assets/{utils-B3E7otfg.js → config-BxZgoFvi.js} +1 -1
  45. package/dist/assets/config-DpGPGznL.js +1 -0
  46. package/dist/assets/{cynefinDiagram-5FMLGOSQ-1zl1wSTB.js → cynefinDiagram-5FMLGOSQ-BARZRQBb.js} +1 -1
  47. package/dist/assets/{dagre-DM-Ch8wC.js → dagre-DVyyr7Cb.js} +1 -1
  48. package/dist/assets/{dagre-GXQ25YYZ-BqoUeivc.js → dagre-GXQ25YYZ-79s0lOP0.js} +1 -1
  49. package/dist/assets/data-grid-overlay-editor-DPfnIudL.js +1 -0
  50. package/dist/assets/{dependency-graph-panel-C-SFFOPF.js → dependency-graph-panel-BN4CLayU.js} +3 -3
  51. package/dist/assets/{diagram-S7CK7UJ4-CF90sb1m.js → diagram-S7CK7UJ4-BCviGhvd.js} +1 -1
  52. package/dist/assets/{diagram-UQ7AKVKN-DgbZAUCH.js → diagram-UQ7AKVKN-Ds-BT46T.js} +1 -1
  53. package/dist/assets/{diagram-VSXAHHWV-DOQllF_r.js → diagram-VSXAHHWV-CK4GkM-q.js} +1 -1
  54. package/dist/assets/{diagram-VX7I27RA-6dC0a_-i.js → diagram-VX7I27RA-BtL2eh0t.js} +1 -1
  55. package/dist/assets/{diagram-Z3DM3KII-C1OXYmlB.js → diagram-Z3DM3KII-C6SmbLBS.js} +1 -1
  56. package/dist/assets/{dist-0HQ0BMF5.js → dist-CQvJDryh.js} +1 -1
  57. package/dist/assets/{documentation-panel-idK3s0j3.js → documentation-panel-CzRbXV5u.js} +1 -1
  58. package/dist/assets/{ebnfDiagram-PWID7BFC-7gC3cuC7.js → ebnfDiagram-PWID7BFC-D_JU4cMQ.js} +1 -1
  59. package/dist/assets/edit-page-jGNYBqQo.js +174 -0
  60. package/dist/assets/{erDiagram-RLTQ6QDP-BsE87b_i.js → erDiagram-RLTQ6QDP-Z9MJ6X-r.js} +1 -1
  61. package/dist/assets/{error-entries-C-LFkdXb.js → error-entries-CDSsy76p.js} +1 -1
  62. package/dist/assets/{error-panel-YAFgCest.js → error-panel-ABvjFG3p.js} +1 -1
  63. package/dist/assets/{feedback-button-sRQQL2TH.js → feedback-button-CZhLiwkO.js} +2 -2
  64. package/dist/assets/file-explorer-panel-DTiEpmVE.js +1 -0
  65. package/dist/assets/file-name-input-C1C8xrjA.js +3 -0
  66. package/dist/assets/filename-fxG7K_MU.js +1 -0
  67. package/dist/assets/flowDiagram-HODETNUW-ncLciK2K.js +1 -0
  68. package/dist/assets/{gallery-page-CH8TM7bV.js → gallery-page-Moi4ZdJ0.js} +1 -1
  69. package/dist/assets/{ganttDiagram-EL5Y4UJY-d9Qqbnau.js → ganttDiagram-EL5Y4UJY-Cgy11k0G.js} +1 -1
  70. package/dist/assets/{gitGraphDiagram-WWUBYQGX-DBunV_fz.js → gitGraphDiagram-WWUBYQGX-CVH8fay_.js} +1 -1
  71. package/dist/assets/glide-data-editor-CbsCWu-K.js +131 -0
  72. package/dist/assets/{graphlib-DDJ8O6ZH.js → graphlib-3maKwbRO.js} +1 -1
  73. package/dist/assets/has-cJsIKK9t.js +1 -0
  74. package/dist/assets/home-page-UAgVOkCZ.js +4 -0
  75. package/dist/assets/index--sT8xf-8.css +2 -0
  76. package/dist/assets/index-DafnX1Xx.js +62 -0
  77. package/dist/assets/{infoDiagram-27XIBGKW-FE7De1I6.js → infoDiagram-27XIBGKW-Dk8U81nJ.js} +1 -1
  78. package/dist/assets/{ishikawaDiagram-5VMMS53U-CSEGYrJ-.js → ishikawaDiagram-5VMMS53U-CzHQlMUQ.js} +1 -1
  79. package/dist/assets/{journeyDiagram-3NMN7TZE-Cp4mxQrE.js → journeyDiagram-3NMN7TZE-DRc8ACzh.js} +1 -1
  80. package/dist/assets/{kanban-definition-UXKFOSKX-d7iAZsOb.js → kanban-definition-UXKFOSKX-CVyVYiI6.js} +1 -1
  81. package/dist/assets/katex-DkE0ukCy.js +257 -0
  82. package/dist/assets/{logs-panel-xMj01DRN.js → logs-panel-Bz5ysVX4.js} +1 -1
  83. package/dist/assets/{mermaid-CNjXdDrA.js → mermaid-D_jPUVqz.js} +4 -4
  84. package/dist/assets/mhchem-CmzEtQj8.js +1 -0
  85. package/dist/assets/{mindmap-definition-YA3MSWOX-CddM9_uP.js → mindmap-definition-YA3MSWOX-D5t6Aq5Z.js} +1 -1
  86. package/dist/assets/{number-overlay-editor-N57if5NT.js → number-overlay-editor-FAD8sjFU.js} +1 -1
  87. package/dist/assets/{outline-panel-Garp-f5k.js → outline-panel-85oiQ0XX.js} +1 -1
  88. package/dist/assets/packages-panel-ClKIaP5S.js +1 -0
  89. package/dist/assets/{panels-CnbmgzkS.js → panels-B48zp96D.js} +9 -9
  90. package/dist/assets/{pegDiagram-XKGWAZYB-CEns8d-M.js → pegDiagram-XKGWAZYB-BTkTm4ej.js} +1 -1
  91. package/dist/assets/{pieDiagram-E7YTZNPT-wyb0xQ0R.js → pieDiagram-E7YTZNPT-Bq6X88M1.js} +1 -1
  92. package/dist/assets/{process-output-ObDfw1uu.js → process-output-Cg2ta3vY.js} +1 -1
  93. package/dist/assets/{quadrantDiagram-AXDQQJYC-BE-xlTLH.js → quadrantDiagram-AXDQQJYC-D_wrOwLk.js} +1 -1
  94. package/dist/assets/{railroadDiagram-O6MQD6OU-DZZVHmr2.js → railroadDiagram-O6MQD6OU-fv8HXW_g.js} +1 -1
  95. package/dist/assets/{requirementDiagram-BXWQKSXE-C3Bf4dd5.js → requirementDiagram-BXWQKSXE-DDOOMUfC.js} +1 -1
  96. package/dist/assets/{reveal-component-DgrXq3Kv.js → reveal-component-CR43gpTZ.js} +3 -3
  97. package/dist/assets/run-page-NR_KFWk8.js +1 -0
  98. package/dist/assets/{sankeyDiagram-P5KCCOFB-BWLQCyjK.js → sankeyDiagram-P5KCCOFB-CvvUY6tS.js} +1 -1
  99. package/dist/assets/scratchpad-panel-DHc-oVb1.js +1 -0
  100. package/dist/assets/{secrets-panel-4dRIaZfY.js → secrets-panel-C-65ZjnM.js} +1 -1
  101. package/dist/assets/{sequenceDiagram-WJ2MYXX4-BIY0mgX7.js → sequenceDiagram-WJ2MYXX4-DdpBhQaS.js} +1 -1
  102. package/dist/assets/session-DXKMv4Bs.js +1 -0
  103. package/dist/assets/session-panel-DiwQqIbt.js +1 -0
  104. package/dist/assets/{SelectionIndicator-DLJBcP4e.js → shell-BSnvn9t7.js} +1 -1
  105. package/dist/assets/snippets-panel-BLmXrneD.js +1 -0
  106. package/dist/assets/{stateDiagram-D77RDMKH-D_xRHRLf.js → stateDiagram-D77RDMKH-D3p19fac.js} +1 -1
  107. package/dist/assets/stateDiagram-v2-MP3YSRHH-CplsDaDl.js +1 -0
  108. package/dist/assets/{swimlanes-42K2YHIH-CDQzpfz0.js → swimlanes-42K2YHIH-CLxCSvU4.js} +1 -1
  109. package/dist/assets/swimlanesDiagram-VR7AAH4N-DPoIFx8T.js +8 -0
  110. package/dist/assets/{swiper-component-j-Lk25wW.js → swiper-component-rqJChT_P.js} +1 -1
  111. package/dist/assets/{terminal-BToH-U1t.js → terminal-CY4h1UmO.js} +1 -1
  112. package/dist/assets/{timeline-definition-24CTP7MA-D5Jgj1fz.js → timeline-definition-24CTP7MA-Cw2PY--x.js} +1 -1
  113. package/dist/assets/tooltip-PLkI_UfK.js +61 -0
  114. package/dist/assets/{tracing-DtKLmNHj.js → tracing-Q8NAdlrA.js} +1 -1
  115. package/dist/assets/tracing-panel-Ci4kY4dr.js +2 -0
  116. package/dist/assets/useCellActionButton-DpYtVfFe.js +1 -0
  117. package/dist/assets/useTheme-DcnXlv0_.js +1 -0
  118. package/dist/assets/{constants-BDbGiS7O.js → utils-B4K466FK.js} +1 -1
  119. package/dist/assets/{vega-component-DVSvu4vP.js → vega-component-BpoSew4K.js} +1 -1
  120. package/dist/assets/{vega-embed-container-QM1zZmYi.js → vega-embed-container-BOJG8mCA.js} +1 -1
  121. package/dist/assets/{vennDiagram-4TSXK5OY-Cv6jxbpX.js → vennDiagram-4TSXK5OY-D8bN6lVl.js} +1 -1
  122. package/dist/assets/{wardleyDiagram-VM6X3IG4-lwv-YoWo.js → wardleyDiagram-VM6X3IG4-CbZdo0SA.js} +1 -1
  123. package/dist/assets/{write-secret-modal-CBUZw27N.js → write-secret-modal-BiG2tahJ.js} +1 -1
  124. package/dist/assets/{xychartDiagram-S5SC5T6Z-CGM4LlFN.js → xychartDiagram-S5SC5T6Z-DUUQ9tau.js} +1 -1
  125. package/dist/assets/youtube-A9VT7NHb.js +1 -0
  126. package/dist/index.html +14 -13
  127. package/package.json +1 -2
  128. package/src/__mocks__/common.ts +3 -3
  129. package/src/__tests__/CellStatus.test.tsx +1 -1
  130. package/src/__tests__/setup.ts +7 -7
  131. package/src/components/app-config/ai-config.tsx +2 -0
  132. package/src/components/app-config/optional-features.tsx +1 -1
  133. package/src/components/chat/chat-panel.tsx +19 -8
  134. package/src/components/data-table/TableTopBar.tsx +2 -2
  135. package/src/components/data-table/__tests__/export-actions.test.tsx +662 -0
  136. package/src/components/data-table/charts/__tests__/chart-panel.test.tsx +286 -0
  137. package/src/components/data-table/charts/charts.tsx +26 -13
  138. package/src/components/data-table/column-summary/chart-spec-model.tsx +4 -4
  139. package/src/components/data-table/data-table.tsx +1 -1
  140. package/src/components/data-table/export-actions.tsx +642 -176
  141. package/src/components/data-table/schemas.ts +25 -3
  142. package/src/components/dependency-graph/elements.ts +2 -2
  143. package/src/components/editor/__tests__/package-alert.test.tsx +140 -0
  144. package/src/components/editor/actions/__tests__/pair-with-agent.test.tsx +107 -0
  145. package/src/components/editor/actions/pair-with-agent.tsx +119 -0
  146. package/src/components/editor/actions/useNotebookActions.tsx +2 -1
  147. package/src/components/editor/ai/add-cell-with-ai.tsx +2 -0
  148. package/src/components/editor/ai/staged-cell-submission.ts +2 -2
  149. package/src/components/editor/ai/transport/chat-transport.tsx +1 -1
  150. package/src/components/editor/chrome/components/contribute-snippet-button.tsx +6 -1
  151. package/src/components/editor/connections/database/as-code.ts +44 -44
  152. package/src/components/editor/connections/storage/as-code.ts +3 -3
  153. package/src/components/editor/file-tree/requesting-tree.tsx +16 -13
  154. package/src/components/editor/navigation/clipboard.ts +2 -2
  155. package/src/components/editor/notebook-cell.tsx +2 -2
  156. package/src/components/editor/output/MarimoTracebackOutput.tsx +1 -1
  157. package/src/components/editor/output/VideoOutput.tsx +1 -1
  158. package/src/components/editor/output/ansi-reduce.ts +21 -17
  159. package/src/components/editor/output/console/ConsoleOutput.tsx +3 -3
  160. package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +59 -0
  161. package/src/components/editor/output/console/text-rendering.tsx +3 -1
  162. package/src/components/editor/package-alert.tsx +20 -7
  163. package/src/components/home/components.tsx +1 -0
  164. package/src/components/markdown/markdown-renderer.css +1 -1
  165. package/src/components/pages/run-page.tsx +1 -0
  166. package/src/components/slides/__tests__/minimap-actions.test.tsx +7 -7
  167. package/src/components/slides/__tests__/minimap.test.ts +12 -12
  168. package/src/components/slides/__tests__/slide-scroll-hint.test.tsx +8 -8
  169. package/src/components/static-html/__tests__/share-modal.test.tsx +154 -0
  170. package/src/components/static-html/__tests__/stage-for-publish.test.ts +111 -0
  171. package/src/components/static-html/share-modal.tsx +114 -144
  172. package/src/components/static-html/stage-for-publish.ts +56 -0
  173. package/src/components/static-html/static-banner.tsx +2 -2
  174. package/src/components/ui/links.tsx +6 -1
  175. package/src/components/ui/typography.tsx +16 -8
  176. package/src/core/ai/context/__tests__/registry.test.ts +31 -28
  177. package/src/core/ai/context/providers/cell-output.ts +8 -8
  178. package/src/core/ai/context/providers/datasource.ts +10 -7
  179. package/src/core/ai/context/providers/error.ts +7 -7
  180. package/src/core/ai/context/providers/file.ts +8 -8
  181. package/src/core/ai/context/providers/tables.ts +7 -7
  182. package/src/core/ai/context/providers/variable.ts +7 -7
  183. package/src/core/ai/context/registry.ts +18 -18
  184. package/src/core/ai/ids/ids.ts +5 -5
  185. package/src/core/ai/model-registry.ts +12 -9
  186. package/src/core/ai/staged-cells.ts +6 -6
  187. package/src/core/ai/tools/base.ts +6 -6
  188. package/src/core/ai/tools/edit-notebook-tool.ts +6 -6
  189. package/src/core/ai/tools/registry.ts +4 -4
  190. package/src/core/ai/tools/run-cells-tool.ts +7 -7
  191. package/src/core/ai/tools/sample-tool.ts +6 -6
  192. package/src/core/cells/__tests__/cells.test.ts +27 -0
  193. package/src/core/cells/cells.ts +2 -1
  194. package/src/core/codemirror/cells/debugger-decorations.ts +13 -7
  195. package/src/core/codemirror/cells/line-timing-decorations.ts +9 -9
  196. package/src/core/codemirror/cells/traceback-decorations.ts +7 -4
  197. package/src/core/codemirror/code-lens/extension.ts +13 -13
  198. package/src/core/codemirror/copilot/__tests__/language-server.test.ts +6 -6
  199. package/src/core/codemirror/copilot/__tests__/transport.test.ts +12 -12
  200. package/src/core/codemirror/copilot/language-server.ts +13 -13
  201. package/src/core/codemirror/copilot/transport.ts +1 -1
  202. package/src/core/codemirror/find-replace/search-highlight.ts +5 -5
  203. package/src/core/codemirror/go-to-definition/underline.ts +3 -3
  204. package/src/core/codemirror/keymaps/vim.ts +3 -3
  205. package/src/core/codemirror/language/languages/markdown.ts +8 -8
  206. package/src/core/codemirror/language/languages/python.ts +7 -7
  207. package/src/core/codemirror/language/languages/sql/completion-builder.ts +5 -5
  208. package/src/core/codemirror/language/languages/sql/completion-store.ts +4 -4
  209. package/src/core/codemirror/language/languages/sql/sql.ts +21 -21
  210. package/src/core/codemirror/lsp/__tests__/transports.test.ts +10 -10
  211. package/src/core/codemirror/lsp/federated-lsp.ts +29 -27
  212. package/src/core/codemirror/lsp/notebook-lsp.ts +21 -21
  213. package/src/core/codemirror/misc/__tests__/dnd.test.ts +10 -10
  214. package/src/core/codemirror/misc/__tests__/paste.test.ts +7 -4
  215. package/src/core/codemirror/reactive-references/extension.ts +3 -3
  216. package/src/core/codemirror/rtc/loro/awareness.ts +12 -12
  217. package/src/core/codemirror/rtc/loro/sync.ts +5 -5
  218. package/src/core/codemirror/vim/cursor-visibility.ts +3 -3
  219. package/src/core/dom/ui-element.ts +5 -5
  220. package/src/core/dom/uiregistry.ts +10 -10
  221. package/src/core/hotkeys/hotkeys.ts +9 -9
  222. package/src/core/islands/__tests__/bridge.test.ts +4 -4
  223. package/src/core/islands/__tests__/test-utils.tsx +4 -4
  224. package/src/core/islands/bridge.ts +85 -82
  225. package/src/core/islands/components/web-components.tsx +7 -7
  226. package/src/core/islands/worker/__tests__/controller.test.ts +1 -1
  227. package/src/core/islands/worker/controller.ts +6 -3
  228. package/src/core/islands/worker-factory.ts +2 -2
  229. package/src/core/kernel/RuntimeState.ts +4 -4
  230. package/src/core/kernel/__tests__/session.test.ts +110 -1
  231. package/src/core/kernel/session.ts +46 -15
  232. package/src/core/lsp/__tests__/transport.test.ts +19 -19
  233. package/src/core/lsp/transport.ts +5 -5
  234. package/src/core/network/CachingRequestRegistry.ts +2 -2
  235. package/src/core/network/DeferredRequestRegistry.ts +4 -4
  236. package/src/core/network/__tests__/export-asset-url.test.ts +45 -0
  237. package/src/core/network/export-asset-url.ts +19 -0
  238. package/src/core/network/requests-network.ts +2 -7
  239. package/src/core/runtime/runtime.ts +25 -20
  240. package/src/core/static/virtual-file-tracker.ts +5 -5
  241. package/src/core/wasm/__tests__/bridge.test.ts +2 -2
  242. package/src/core/wasm/bridge.ts +132 -133
  243. package/src/core/wasm/router.ts +5 -5
  244. package/src/core/wasm/store.ts +4 -4
  245. package/src/core/wasm/worker/bootstrap.ts +8 -5
  246. package/src/core/wasm/worker/message-buffer.ts +3 -3
  247. package/src/core/websocket/transports/__tests__/ws.test.ts +8 -8
  248. package/src/core/websocket/transports/basic.ts +15 -8
  249. package/src/core/websocket/transports/sse.ts +7 -7
  250. package/src/core/websocket/transports/transport.ts +3 -3
  251. package/src/core/websocket/transports/ws.ts +9 -7
  252. package/src/css/globals.css +18 -21
  253. package/src/css/katex.min.css +260 -241
  254. package/src/hooks/__tests__/useOverflowDetection.test.tsx +5 -5
  255. package/src/hooks/__tests__/useResizeObserver.test.tsx +12 -12
  256. package/src/plugins/core/registerReactComponent.tsx +5 -5
  257. package/src/plugins/core/sidebar-element.tsx +2 -2
  258. package/src/plugins/impl/ButtonPlugin.tsx +3 -3
  259. package/src/plugins/impl/CheckboxPlugin.tsx +3 -3
  260. package/src/plugins/impl/CodeEditorPlugin.tsx +3 -3
  261. package/src/plugins/impl/DatePickerPlugin.tsx +3 -3
  262. package/src/plugins/impl/DateRangePlugin.tsx +3 -3
  263. package/src/plugins/impl/DateTimePickerPlugin.tsx +3 -3
  264. package/src/plugins/impl/DictPlugin.tsx +3 -3
  265. package/src/plugins/impl/DropdownPlugin.tsx +3 -3
  266. package/src/plugins/impl/FileUploadPlugin.tsx +3 -3
  267. package/src/plugins/impl/MatrixPlugin.tsx +4 -4
  268. package/src/plugins/impl/MicrophonePlugin.tsx +3 -3
  269. package/src/plugins/impl/MultiselectPlugin.tsx +3 -3
  270. package/src/plugins/impl/NumberPlugin.tsx +3 -3
  271. package/src/plugins/impl/RadioPlugin.tsx +9 -5
  272. package/src/plugins/impl/RangeSliderPlugin.tsx +3 -3
  273. package/src/plugins/impl/RefreshPlugin.tsx +3 -3
  274. package/src/plugins/impl/SliderPlugin.tsx +3 -3
  275. package/src/plugins/impl/SwitchPlugin.tsx +3 -3
  276. package/src/plugins/impl/TabsPlugin.tsx +3 -3
  277. package/src/plugins/impl/TextAreaPlugin.tsx +3 -3
  278. package/src/plugins/impl/TextInputPlugin.tsx +3 -3
  279. package/src/plugins/impl/__tests__/MatrixPlugin.test.tsx +2 -2
  280. package/src/plugins/impl/anywidget/model.ts +10 -10
  281. package/src/plugins/impl/anywidget/registry.ts +12 -9
  282. package/src/plugins/impl/anywidget/runtime.ts +11 -9
  283. package/src/plugins/impl/anywidget/widget-binding.ts +6 -6
  284. package/src/plugins/impl/image-comparison/ImageComparisonComponent.tsx +7 -6
  285. package/src/plugins/impl/matplotlib/MatplotlibPlugin.tsx +3 -3
  286. package/src/plugins/impl/matplotlib/__tests__/matplotlib-renderer.test.ts +2 -2
  287. package/src/plugins/impl/matplotlib/matplotlib-renderer.ts +2 -2
  288. package/src/plugins/impl/mpl-interactive/mpl-websocket-shim.ts +10 -10
  289. package/src/plugins/impl/panel/utils.ts +5 -5
  290. package/src/plugins/impl/plotly/PlotlyPlugin.tsx +3 -3
  291. package/src/plugins/impl/vega/VegaPlugin.tsx +3 -3
  292. package/src/plugins/impl/vega/__tests__/use-vega-container-remeasure.test.ts +7 -7
  293. package/src/plugins/impl/vega/__tests__/utils.test.ts +16 -1
  294. package/src/plugins/impl/vega/__tests__/vega.test.ts +37 -0
  295. package/src/plugins/impl/vega/loader.ts +23 -1
  296. package/src/plugins/impl/vega/utils.ts +5 -4
  297. package/src/plugins/layout/AccordionPlugin.tsx +3 -3
  298. package/src/plugins/layout/CalloutPlugin.tsx +3 -3
  299. package/src/plugins/layout/ImageComparisonPlugin.tsx +5 -3
  300. package/src/plugins/layout/JsonOutputPlugin.tsx +3 -3
  301. package/src/plugins/layout/MimeRenderPlugin.tsx +3 -3
  302. package/src/plugins/layout/NavigationMenuPlugin.tsx +3 -3
  303. package/src/plugins/layout/OutlinePlugin.tsx +3 -3
  304. package/src/plugins/layout/ProgressPlugin.tsx +3 -3
  305. package/src/plugins/layout/RoutesPlugin.tsx +6 -8
  306. package/src/plugins/layout/StatPlugin.tsx +3 -3
  307. package/src/plugins/layout/TexPlugin.tsx +3 -3
  308. package/src/plugins/layout/carousel/CarouselPlugin.tsx +4 -4
  309. package/src/plugins/layout/mermaid/MermaidPlugin.tsx +3 -3
  310. package/src/utils/Deferred.ts +6 -6
  311. package/src/utils/async-capture-tracker.ts +10 -7
  312. package/src/utils/errors.ts +5 -5
  313. package/src/utils/id-tree.tsx +83 -80
  314. package/src/utils/lru.ts +1 -1
  315. package/src/utils/multi-map.ts +14 -12
  316. package/src/utils/paths.ts +6 -6
  317. package/src/utils/pluralize.ts +3 -3
  318. package/src/utils/progress.ts +6 -6
  319. package/src/utils/python-poet/poet.ts +14 -14
  320. package/src/utils/routes.ts +4 -2
  321. package/src/utils/semaphore.ts +6 -6
  322. package/src/utils/storage/storage.ts +6 -6
  323. package/src/utils/storage/typed.ts +16 -12
  324. package/src/utils/time.ts +9 -9
  325. package/src/utils/timed-cache.ts +4 -4
  326. package/src/utils/tracer.ts +9 -6
  327. package/dist/assets/LazyAnyLanguageCodeMirror-EBegnOE0.js +0 -2
  328. package/dist/assets/add-cell-with-ai-Ovbsj95O.js +0 -76
  329. package/dist/assets/ai-model-dropdown-1t7m1iFc.js +0 -3
  330. package/dist/assets/app-config-button-vCxNGhe2.js +0 -1
  331. package/dist/assets/channel-ni7ei-yz.js +0 -1
  332. package/dist/assets/chat-panel-CzdR8RG_.js +0 -4
  333. package/dist/assets/classDiagram-ZZMXUADV-CIEFh40S.js +0 -1
  334. package/dist/assets/classDiagram-v2-VYDZK3BY-CIEFh40S.js +0 -1
  335. package/dist/assets/code-visibility-G0W4ym3Y.js +0 -1
  336. package/dist/assets/command-palette-DhdK67bL.js +0 -1
  337. package/dist/assets/components-CQVZgYvR.js +0 -1
  338. package/dist/assets/config-CMqNngzA.js +0 -1
  339. package/dist/assets/config-CmBpjGXk.js +0 -1
  340. package/dist/assets/data-grid-overlay-editor-DbqMOWZn.js +0 -1
  341. package/dist/assets/edit-page-_D_Nv3dJ.js +0 -176
  342. package/dist/assets/file-explorer-panel-LAa-LxTN.js +0 -1
  343. package/dist/assets/file-name-input-BXq6eIDs.js +0 -3
  344. package/dist/assets/flowDiagram-HODETNUW-B4xRBXB1.js +0 -1
  345. package/dist/assets/glide-data-editor-DPMjaN4R.js +0 -131
  346. package/dist/assets/has-CanCEarv.js +0 -1
  347. package/dist/assets/home-page-vDWLpS4F.js +0 -4
  348. package/dist/assets/index-2TQenOiQ.css +0 -2
  349. package/dist/assets/index-CgQsZfww.js +0 -62
  350. package/dist/assets/katex-mNPPSsir.js +0 -257
  351. package/dist/assets/katex-ukvJUC1e.js +0 -257
  352. package/dist/assets/mhchem-DcHTrqjv.js +0 -1
  353. package/dist/assets/packages-panel-B8HU9FAM.js +0 -1
  354. package/dist/assets/run-page-E0qMru0p.js +0 -1
  355. package/dist/assets/scratchpad-panel-CCFyaegO.js +0 -1
  356. package/dist/assets/session-C8nQMsOE.js +0 -1
  357. package/dist/assets/session-panel-CR3BHLhQ.js +0 -1
  358. package/dist/assets/snippets-panel-Dn22yTr_.js +0 -1
  359. package/dist/assets/stateDiagram-v2-MP3YSRHH-BQvYFx_a.js +0 -1
  360. package/dist/assets/swimlanesDiagram-VR7AAH4N-BAn2JKhB.js +0 -8
  361. package/dist/assets/tooltip-B1vGi-z4.js +0 -61
  362. package/dist/assets/tracing-panel-C5ybTQyJ.js +0 -2
  363. package/dist/assets/useCellActionButton-Bm9OZdcq.js +0 -1
  364. package/dist/assets/useTheme-Ho3YdAx3.js +0 -1
  365. package/dist/assets/youtube-ELpGJEdR.js +0 -1
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t}from"./useEvent-Dc9HkKI2.js";import{t as n}from"./react-CUdNIagt.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-BcQ8Tm3j.js";import{t as g}from"./compiler-runtime-BQ9S8nyo.js";import{C as _,O as v,k as y}from"./utils-B3E7otfg.js";import{O as b,d as x,f as S,i as C,n as w,u as T}from"./ai-model-dropdown-1t7m1iFc.js";import{z as E}from"./config-CmBpjGXk.js";import{t as D}from"./jsx-runtime-B74pBk57.js";import{o as O}from"./alert-dialog-CeE3i3Qa.js";import{l as k}from"./select-BplWpfFo.js";import{t as A}from"./tooltip-DR2Z2N4w.js";import{t as j}from"./button-BoklZTGL.js";import{t as M}from"./createLucideIcon-rHn2EdoM.js";import{r as N}from"./useNumberFormatter-C4-_TnkF.js";import{b as P,p as F}from"./write-secret-modal-CBUZw27N.js";import{Ut as I,Wt as L,Xt as R,Zt as ee,r as z}from"./input-BDakodZ2.js";import{t as B}from"./settings-DlKTeV_0.js";import{t as V}from"./use-toast-CC89xOwH.js";import{s as H}from"./arrays-BqUx5USx.js";import{r as U}from"./requests-yTHMxhVa.js";import{r as W}from"./useDebounce-DMbg9X18.js";import{Ui as G,zr as K}from"./index-CgQsZfww.js";import{n as q}from"./useInterval-ChchS0Rl.js";var J=M(`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`}]]),Y=g(),X=D(),Z=e=>{let t=(0,Y.c)(15),{description:n,disabled:r,tooltip:i}=e,a=r!==void 0&&r,o=i===void 0?`Shutdown`:i,{openConfirm:s,closeModal:c}=P(),{sendShutdown:l}=U(),u;t[0]===l?u=t[1]:(u=()=>{l(),setTimeout(te,200)},t[0]=l,t[1]=u);let d=u;if(E())return null;let f=a?`disabled`:`red`,p;t[2]!==c||t[3]!==n||t[4]!==d||t[5]!==s?(p=e=>{e.stopPropagation(),s({title:`Shutdown`,description:n,variant:`destructive`,confirmAction:(0,X.jsx)(O,{onClick:()=>{d(),c()},"aria-label":`Confirm Shutdown`,children:`Shutdown`})})},t[2]=c,t[3]=n,t[4]=d,t[5]=s,t[6]=p):p=t[6];let m;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,X.jsx)(N,{strokeWidth:1}),t[7]=m):m=t[7];let h;t[8]!==a||t[9]!==f||t[10]!==p?(h=(0,X.jsx)(q,{"aria-label":`Shutdown`,"data-testid":`shutdown-button`,shape:`circle`,size:`small`,color:f,className:`h-[27px] w-[27px]`,disabled:a,onClick:p,children:m}),t[8]=a,t[9]=f,t[10]=p,t[11]=h):h=t[11];let g;return t[12]!==h||t[13]!==o?(g=(0,X.jsx)(A,{content:o,children:h}),t[12]=h,t[13]=o,t[14]=g):g=t[14],g};function te(){window.close()}var Q=e(n(),1),ne=100,re=()=>{let e=(0,Y.c)(37),[t,n]=_(),{saveAppConfig:u}=U(),d=(0,Q.useId)(),h=(0,Q.useId)(),g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=a(v),e[0]=g):g=e[0];let y;e[1]===t?y=e[2]:(y={resolver:g,defaultValues:t},e[1]=t,e[2]=y);let b=o(y),C;e[3]!==u||e[4]!==n?(C=async e=>{await u({config:e}).then(()=>{n(e)}).catch(()=>{n(e)})},e[3]=u,e[4]=n,e[5]=C):C=e[5];let w=C,T;e[6]===w?T=e[7]:(T=e=>{w(e)},e[6]=w,e[7]=T);let E=W(T,ne),D;e[8]===t.width?D=e[9]:(D=[t.width],e[8]=t.width,e[9]=D),(0,Q.useEffect)(ie,D);let O;e[10]!==E||e[11]!==b?(O=b.handleSubmit(E),e[10]=E,e[11]=b,e[12]=O):O=e[12];let k;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,X.jsxs)(`div`,{children:[(0,X.jsx)(S,{children:`Notebook Settings`}),(0,X.jsx)(x,{children:`Configure how your notebook or application looks and behaves.`})]}),e[13]=k):k=e[13];let A;e[14]===b.control?A=e[15]:(A=(0,X.jsxs)($,{title:`Display`,children:[(0,X.jsx)(r,{control:b.control,name:`width`,render:oe}),(0,X.jsx)(r,{control:b.control,name:`app_title`,render:se})]}),e[14]=b.control,e[15]=A);let j;e[16]===b.control?j=e[17]:(j=(0,X.jsxs)($,{title:`Custom Files`,children:[(0,X.jsx)(r,{control:b.control,name:`css_file`,render:ce}),(0,X.jsx)(r,{control:b.control,name:`html_head_file`,render:le})]}),e[16]=b.control,e[17]=j);let M;e[18]===b.control?M=e[19]:(M=(0,X.jsx)($,{title:`Data`,children:(0,X.jsx)(r,{control:b.control,name:`sql_output`,render:de})}),e[18]=b.control,e[19]=M);let N;e[20]!==d||e[21]!==h?(N=e=>{let{field:t}=e;return(0,X.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,X.jsxs)(f,{className:`flex flex-col gap-2`,children:[(0,X.jsx)(s,{children:(0,X.jsxs)(`div`,{className:`flex gap-4`,children:[(0,X.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,X.jsx)(i,{id:d,"data-testid":`html-checkbox`,checked:t.value.includes(`html`),onCheckedChange:()=>{t.onChange(H(t.value,`html`))}}),(0,X.jsx)(m,{htmlFor:d,children:`HTML`})]}),(0,X.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,X.jsx)(i,{id:h,"data-testid":`ipynb-checkbox`,checked:t.value.includes(`ipynb`),onCheckedChange:()=>{t.onChange(H(t.value,`ipynb`))}}),(0,X.jsx)(m,{htmlFor:h,children:`IPYNB`})]})]})}),(0,X.jsx)(p,{})]}),(0,X.jsxs)(l,{children:[`When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named`,` `,(0,X.jsx)(K,{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]!==b.control||e[24]!==N?(P=(0,X.jsx)($,{title:`Exporting outputs`,children:(0,X.jsx)(r,{control:b.control,name:`auto_download`,render:N})}),e[23]=b.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,X.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]!==O?(I=(0,X.jsxs)(`form`,{onChange:O,className:`flex flex-col gap-6`,children:[k,F]}),e[31]=F,e[32]=O,e[33]=I):I=e[33];let L;return e[34]!==b||e[35]!==I?(L=(0,X.jsx)(c,{...b,children:I}),e[34]=b,e[35]=I,e[36]=L):L=e[36],L},$=e=>{let t=(0,Y.c)(5),{title:n,children:r}=e,i;t[0]===n?i=t[1]:(i=(0,X.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,X.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 ie(){window.dispatchEvent(new Event(`resize`))}function ae(e){return(0,X.jsx)(`option`,{value:e,children:e},e)}function oe(e){let{field:t}=e;return(0,X.jsxs)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,X.jsx)(m,{children:`Width`}),(0,X.jsx)(s,{children:(0,X.jsx)(k,{"data-testid":`app-width-select`,onChange:e=>t.onChange(e.target.value),value:t.value,disabled:t.disabled,className:`inline-flex mr-2`,children:b().map(ae)})}),(0,X.jsx)(p,{})]})}function se(e){let{field:t}=e;return(0,X.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,X.jsxs)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,X.jsx)(m,{children:`App title`}),(0,X.jsx)(s,{children:(0,X.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,X.jsx)(p,{})]}),(0,X.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,X.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,X.jsxs)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,X.jsx)(m,{className:`shrink-0`,children:`Custom CSS`}),(0,X.jsx)(s,{children:(0,X.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,X.jsx)(p,{})]}),(0,X.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,X.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,X.jsxs)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,X.jsx)(m,{className:`shrink-0`,children:`HTML Head`}),(0,X.jsx)(s,{children:(0,X.jsx)(z,{...t,value:t.value??``,placeholder:`head.html`,onChange:e=>{t.onChange(e.target.value)}})}),(0,X.jsx)(p,{})]}),(0,X.jsxs)(l,{children:[`A filepath to an HTML file to be injected into the`,` `,(0,X.jsx)(K,{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,X.jsx)(`option`,{value:e.value,children:e.label},e.value)}function de(e){let{field:t}=e;return(0,X.jsxs)(`div`,{className:`flex flex-col gap-y-1`,children:[(0,X.jsxs)(f,{className:`flex flex-row items-center space-x-1 space-y-0`,children:[(0,X.jsx)(m,{children:`SQL Output Type`}),(0,X.jsx)(s,{children:(0,X.jsx)(k,{"data-testid":`sql-output-select`,onChange:e=>{t.onChange(e.target.value),V({title:`Kernel Restart Required`,description:`This change requires a kernel restart to take effect.`})},value:t.value,disabled:t.disabled,className:`inline-flex mr-2`,children:T.map(ue)})}),(0,X.jsx)(p,{})]}),(0,X.jsxs)(l,{children:[`The Python type returned by a SQL cell. For best performance with large datasets, we recommend using`,` `,(0,X.jsx)(K,{className:`inline`,children:`native`}),`. See the`,` `,(0,X.jsx)(F,{href:`https://docs.marimo.io/guides/working_with_data/sql`,children:`SQL guide`}),` `,`for more information.`]})]})}var fe=e=>{let n=(0,Y.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(w),p=s?`disabled`:`hint-green`,m;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,X.jsx)(B,{strokeWidth:1.8}),n[0]=m):m=n[0];let g;n[1]===c?g=n[2]:(g=(0,X.jsx)(A,{content:c,children:m}),n[1]=c,n[2]=g);let _;n[3]!==s||n[4]!==p||n[5]!==g?(_=(0,X.jsx)(q,{"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,X.jsxs)(L,{className:`w-[90vw] h-[90vh] overflow-hidden sm:max-w-5xl top-[5vh] p-0`,children:[(0,X.jsx)(G,{children:(0,X.jsx)(R,{children:`User settings`})}),(0,X.jsx)(C,{})]}),n[7]=y):y=n[7];let b=y;if(!o){let e;n[8]===v?e=n[9]:(e=(0,X.jsx)(ee,{children:v}),n[8]=v,n[9]=e);let t;return n[10]!==f||n[11]!==l||n[12]!==e?(t=(0,X.jsxs)(I,{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,X.jsx)(d,{asChild:!0,children:v}),n[14]=v,n[15]=x);let S,T;n[16]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,X.jsx)(re,{}),T=(0,X.jsx)(`div`,{className:`h-px bg-border my-2`}),n[16]=S,n[17]=T):(S=n[16],T=n[17]);let E;n[18]===f?E=n[19]:(E=()=>f(!0),n[18]=f,n[19]=E);let D;n[20]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,X.jsx)(B,{strokeWidth:1.8,className:`w-4 h-4 mr-2`}),n[20]=D):D=n[20];let O;n[21]===E?O=n[22]:(O=(0,X.jsxs)(h,{className:`w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]`,align:`end`,side:`bottom`,onFocusOutside:pe,children:[S,T,(0,X.jsxs)(j,{onClick:E,variant:`link`,className:`px-0`,children:[D,`User settings`]})]}),n[21]=E,n[22]=O);let k;n[23]!==O||n[24]!==x?(k=(0,X.jsxs)(u,{children:[x,O]}),n[23]=O,n[24]=x,n[25]=k):k=n[25];let M;n[26]!==f||n[27]!==l?(M=(0,X.jsx)(I,{open:l,onOpenChange:f,children:b}),n[26]=f,n[27]=l,n[28]=M):M=n[28];let N;return n[29]!==k||n[30]!==M?(N=(0,X.jsxs)(X.Fragment,{children:[k,M]}),n[29]=k,n[30]=M,n[31]=N):N=n[31],N};function pe(e){return e.preventDefault()}export{Z as n,J as r,fe as t};
@@ -1 +0,0 @@
1
- import{at as e,it as t}from"./chunk-DU6HZSFF-J-califE.js";var n=(n,r)=>e.lang.round(t.parse(n)[r]);export{n as t};
@@ -1,4 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,d as n,l as r,t as i,u as a}from"./useEvent-Dc9HkKI2.js";import{t as o}from"./react-CUdNIagt.js";import{D as s,Zn as c,ao as l,br as u,cn as d,dn as f,qa as p,un as m}from"./cells-BcQ8Tm3j.js";import{t as h}from"./compiler-runtime-BQ9S8nyo.js";import{a as g,n as _}from"./utils-B3E7otfg.js";import{c as v,j as y,r as b,t as x}from"./ai-model-dropdown-1t7m1iFc.js";import{g as S,o as C}from"./useEventListener-BdZUApHd.js";import{o as w,z as T}from"./config-CmBpjGXk.js";import{t as E}from"./cn-ldLVeaqm.js";import{t as D}from"./jsx-runtime-B74pBk57.js";import{S as O,T as k,_ as A,w as j,x as M,y as N}from"./fullscreen-BmzAqMKq.js";import{u as P}from"./menu-items-BBdeXCvU.js";import{t as ee}from"./config-CMqNngzA.js";import{a as te,i as F,m as I,n as ne,r as re,s as ie,t as ae}from"./select-BplWpfFo.js";import{i as oe,t as L}from"./tooltip-DR2Z2N4w.js";import{t as R}from"./button-BoklZTGL.js";import{t as z}from"./createLucideIcon-rHn2EdoM.js";import{ot as se}from"./panels-CnbmgzkS.js";import{B as ce,C as le,D as B,E as ue,N as de,R as fe,S as pe,U as me,_ as he,b as ge,c as V,d as _e,f as ve,g as ye,h as be,k as xe,l as Se,m as Ce,n as we,u as H,v as Te,w as U,x as Ee,y as De,z as Oe}from"./add-cell-with-ai-Ovbsj95O.js";import{t as W}from"./bot-message-square-BfGaNy9r.js";import{i as ke,n as Ae,r as je,t as Me}from"./chat-display-TI342pMF.js";import{t as Ne}from"./hat-glasses-DVgK5i5l.js";import{b as Pe,p as Fe}from"./write-secret-modal-CBUZw27N.js";import{t as Ie}from"./plus-gbN72xHe.js";import{Qt as Le,r as Re}from"./input-BDakodZ2.js";import{t as ze}from"./settings-DlKTeV_0.js";import{t as Be}from"./copy-icon-DFhUGBjO.js";import{r as Ve}from"./requests-yTHMxhVa.js";import{t as G}from"./uuid-k9DpjH68.js";import{t as He}from"./context-BFOBKCJB.js";import{Ar as Ue,Dr as We,Fn as Ge,Hn as Ke,Mr as qe,_a as Je,a as Ye,ha as K,kr as Xe}from"./index-CgQsZfww.js";import{t as Ze}from"./empty-state-CzxjZqGW.js";import{t as Qe}from"./scroll-to-bottom-button-BSCkDXet.js";import{g as $e,p as et}from"./edit-page-_D_Nv3dJ.js";var q=e(o(),1),J=D();function tt(e,t){return q.useReducer((e,n)=>t[e][n]??e,e)}var nt=`ScrollArea`,[rt,it]=j(nt),[at,Y]=rt(nt),ot=q.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:i,scrollHideDelay:a=600,...o}=e,[s,c]=q.useState(null),[l,u]=q.useState(null),[d,f]=q.useState(null),[p,m]=q.useState(null),[h,g]=q.useState(null),[_,v]=q.useState(0),[y,b]=q.useState(0),[x,S]=q.useState(!1),[w,T]=q.useState(!1),E=C(t,e=>c(e)),D=P(i);return(0,J.jsx)(at,{scope:n,type:r,dir:D,scrollHideDelay:a,scrollArea:s,viewport:l,onViewportChange:u,content:d,onContentChange:f,scrollbarX:p,onScrollbarXChange:m,scrollbarXEnabled:x,onScrollbarXEnabledChange:S,scrollbarY:h,onScrollbarYChange:g,scrollbarYEnabled:w,onScrollbarYEnabledChange:T,onCornerWidthChange:v,onCornerHeightChange:b,children:(0,J.jsx)(k.div,{dir:D,...o,ref:E,style:{position:`relative`,"--radix-scroll-area-corner-width":_+`px`,"--radix-scroll-area-corner-height":y+`px`,...e.style}})})});ot.displayName=nt;var st=`ScrollAreaViewport`,ct=q.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:i,...a}=e,o=Y(st,n),s=q.useRef(null),c=C(t,s,o.onViewportChange);return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:i}),(0,J.jsx)(k.div,{"data-radix-scroll-area-viewport":``,...a,ref:c,style:{overflowX:o.scrollbarXEnabled?`scroll`:`hidden`,overflowY:o.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,J.jsx)(`div`,{ref:o.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});ct.displayName=st;var X=`ScrollAreaScrollbar`,Z=q.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Y(X,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return q.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,J.jsx)(lt,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,J.jsx)(ut,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,J.jsx)(dt,{...r,ref:t,forceMount:n}):i.type===`always`?(0,J.jsx)(ft,{...r,ref:t}):null});Z.displayName=X;var lt=q.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Y(X,e.__scopeScrollArea),[a,o]=q.useState(!1);return q.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,J.jsx)(N,{present:n||a,children:(0,J.jsx)(dt,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),ut=q.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Y(X,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=Mt(()=>c(`SCROLL_END`),100),[s,c]=tt(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return q.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),q.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(c(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,c,o]),(0,J.jsx)(N,{present:n||s!==`hidden`,children:(0,J.jsx)(ft,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:O(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:O(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})}),dt=q.forwardRef((e,t)=>{let n=Y(X,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=q.useState(!1),s=e.orientation===`horizontal`,c=Mt(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return Q(n.viewport,c),Q(n.content,c),(0,J.jsx)(N,{present:r||a,children:(0,J.jsx)(ft,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),ft=q.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=Y(X,e.__scopeScrollArea),a=q.useRef(null),o=q.useRef(0),[s,c]=q.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=Tt(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function d(e,t){return Dt(e,o.current,s,t)}return n===`horizontal`?(0,J.jsx)(pt,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=Ot(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,J.jsx)(mt,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=Ot(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null}),pt=q.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=Y(X,e.__scopeScrollArea),[o,s]=q.useState(),c=q.useRef(null),l=C(t,c,a.onScrollbarXChange);return q.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,J.jsx)(_t,{"data-orientation":`horizontal`,...i,ref:l,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":Et(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),At(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:wt(o.paddingLeft),paddingEnd:wt(o.paddingRight)}})}})}),mt=q.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=Y(X,e.__scopeScrollArea),[o,s]=q.useState(),c=q.useRef(null),l=C(t,c,a.onScrollbarYChange);return q.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,J.jsx)(_t,{"data-orientation":`vertical`,...i,ref:l,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":Et(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),At(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:wt(o.paddingTop),paddingEnd:wt(o.paddingBottom)}})}})}),[ht,gt]=rt(X),_t=q.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:a,onThumbPointerUp:o,onThumbPointerDown:s,onThumbPositionChange:c,onDragScroll:l,onWheelScroll:u,onResize:d,...f}=e,p=Y(X,n),[m,h]=q.useState(null),g=C(t,e=>h(e)),_=q.useRef(null),v=q.useRef(``),y=p.viewport,b=r.content-r.viewport,x=A(u),S=A(c),w=Mt(d,10);function T(e){if(_.current){let t=e.clientX-_.current.left,n=e.clientY-_.current.top;l({x:t,y:n})}}return q.useEffect(()=>{let e=e=>{let t=e.target;m?.contains(t)&&x(e,b)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[y,m,b,x]),q.useEffect(S,[r,S]),Q(m,w),Q(p.content,w),(0,J.jsx)(ht,{scope:n,scrollbar:m,hasThumb:i,onThumbChange:A(a),onThumbPointerUp:A(o),onThumbPositionChange:S,onThumbPointerDown:A(s),children:(0,J.jsx)(k.div,{...f,ref:g,style:{position:`absolute`,...f.style},onPointerDown:O(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),_.current=m.getBoundingClientRect(),v.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,p.viewport&&(p.viewport.style.scrollBehavior=`auto`),T(e))}),onPointerMove:O(e.onPointerMove,T),onPointerUp:O(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=v.current,p.viewport&&(p.viewport.style.scrollBehavior=``),_.current=null})})})}),vt=`ScrollAreaThumb`,yt=q.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=gt(vt,e.__scopeScrollArea);return(0,J.jsx)(N,{present:n||i.hasThumb,children:(0,J.jsx)(bt,{ref:t,...r})})}),bt=q.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...i}=e,a=Y(vt,n),o=gt(vt,n),{onThumbPositionChange:s}=o,c=C(t,e=>o.onThumbChange(e)),l=q.useRef(void 0),u=Mt(()=>{l.current&&=(l.current(),void 0)},100);return q.useEffect(()=>{let e=a.viewport;if(e){let t=()=>{if(u(),!l.current){let t=jt(e,s);l.current=t,s()}};return s(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[a.viewport,u,s]),(0,J.jsx)(k.div,{"data-state":o.hasThumb?`visible`:`hidden`,...i,ref:c,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:O(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;o.onThumbPointerDown({x:n,y:r})}),onPointerUp:O(e.onPointerUp,o.onThumbPointerUp)})});yt.displayName=vt;var xt=`ScrollAreaCorner`,St=q.forwardRef((e,t)=>{let n=Y(xt,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,J.jsx)(Ct,{...e,ref:t}):null});St.displayName=xt;var Ct=q.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=Y(xt,n),[a,o]=q.useState(0),[s,c]=q.useState(0),l=!!(a&&s);return Q(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),Q(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),l?(0,J.jsx)(k.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function wt(e){return e?parseInt(e,10):0}function Tt(e,t){let n=e/t;return isNaN(n)?0:n}function Et(e){let t=Tt(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function Dt(e,t,n,r=`ltr`){let i=Et(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return kt([c,l],d)(e)}function Ot(e,t,n=`ltr`){let r=Et(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=n===`ltr`?[0,o]:[o*-1,0],l=I(e,c);return kt([0,o],[0,s])(l)}function kt(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function At(e,t){return e>0&&e<t}var jt=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)};function Mt(e,t){let n=A(e),r=q.useRef(0);return q.useEffect(()=>()=>window.clearTimeout(r.current),[]),q.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function Q(e,t){let n=A(t);M(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}var Nt=ot,Pt=ct,Ft=St,It=z(`notebook-text`,[[`path`,{d:`M2 6h4`,key:`aawbzj`}],[`path`,{d:`M2 10h4`,key:`l0bgd4`}],[`path`,{d:`M2 14h4`,key:`1gsvsf`}],[`path`,{d:`M2 18h4`,key:`1bu2t1`}],[`rect`,{width:`16`,height:`20`,x:`4`,y:`2`,rx:`2`,key:`1nb95v`}],[`path`,{d:`M9.5 8h5`,key:`11mslq`}],[`path`,{d:`M9.5 12H16`,key:`ktog6x`}],[`path`,{d:`M9.5 16H14`,key:`p1seyn`}]]),Lt=z(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),$=h(),Rt=({chatState:e,chatId:t,messages:n})=>{if(!t)return S.warn(`No active chat`),e;let r=e.chats.get(t);if(!r)return S.warn(`No active chat`),e;let i=new Map(e.chats),a=Date.now();return i.set(r.id,{...r,messages:n,updatedAt:a}),{...e,chats:i}},zt=class extends ce{onChunkReceived;constructor(e,t){super(e),this.onChunkReceived=t}processResponseStream(e){let t=this.onChunkReceived;return super.processResponseStream(e).pipeThrough(new TransformStream({async transform(e,n){t(e),n.enqueue(e)}}))}},Bt=q.forwardRef((e,t)=>{let n=(0,$.c)(15),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===i?o=n[5]:(o=E(`relative overflow-hidden`,i),n[4]=i,n[5]=o);let s;n[6]===r?s=n[7]:(s=(0,J.jsx)(Pt,{className:`h-full w-full rounded-[inherit]`,children:r}),n[6]=r,n[7]=s);let c,l;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,J.jsx)(Vt,{}),l=(0,J.jsx)(Ft,{}),n[8]=c,n[9]=l):(c=n[8],l=n[9]);let u;return n[10]!==a||n[11]!==t||n[12]!==o||n[13]!==s?(u=(0,J.jsxs)(Nt,{ref:t,className:o,...a,children:[s,c,l]}),n[10]=a,n[11]=t,n[12]=o,n[13]=s,n[14]=u):u=n[14],u});Bt.displayName=Nt.displayName;var Vt=q.forwardRef((e,t)=>{let n=(0,$.c)(14),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,orientation:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o=a===void 0?`vertical`:a,s=o===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-px`,c=o===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-px`,l;n[4]!==r||n[5]!==s||n[6]!==c?(l=E(`flex touch-none select-none transition-colors`,s,c,r),n[4]=r,n[5]=s,n[6]=c,n[7]=l):l=n[7];let u;n[8]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,J.jsx)(yt,{className:`relative flex-1 rounded-full bg-border`}),n[8]=u):u=n[8];let d;return n[9]!==o||n[10]!==i||n[11]!==t||n[12]!==l?(d=(0,J.jsx)(Z,{ref:t,orientation:o,className:l,...i,children:u}),n[9]=o,n[10]=i,n[11]=t,n[12]=l,n[13]=d):d=n[13],d});Vt.displayName=Z.displayName;var Ht=[{label:`Today`,days:0},{label:`Yesterday`,days:1},{label:`2d ago`,days:2},{label:`3d ago`,days:3},{label:`This week`,days:7},{label:`This month`,days:30}],Ut=e=>{let t=Date.now(),n=Ht.map(e=>({...e,chats:[]})),r={label:`Older`,days:1/0,chats:[]},i=e=>{switch(e){case 0:return n[0];case 1:return n[1];case 2:return n[2];case 3:return n[3];default:return e>=4&&e<=7?n[4]:e>=8&&e<=30?n[5]:r}};for(let n of e)i(Math.floor((t-n.updatedAt)/864e5)).chats.push(n);return[...n,r].filter(e=>e.chats.length>0)},Wt=e=>{let t=(0,$.c)(36),{activeChatId:n,setActiveChat:i}=e,a=r(Ue),{locale:o}=He(),[s,c]=(0,q.useState)(``),u;t[0]===a.chats?u=t[1]:(u=[...a.chats.values()].toSorted(Gt),t[0]=a.chats,t[1]=u);let p=u,h;bb0:{if(!s.trim()){h=p;break bb0}let e;if(t[2]!==p||t[3]!==s){let n;t[5]===s?n=t[6]:(n=e=>e.title.toLowerCase().includes(s.toLowerCase()),t[5]=s,t[6]=n),e=p.filter(n),t[2]=p,t[3]=s,t[4]=e}else e=t[4];h=e}let g=h,_;t[7]===g?_=t[8]:(_=Ut(g),t[7]=g,t[8]=_);let v=_,y;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,J.jsx)(L,{content:`Previous chats`,children:(0,J.jsx)(f,{asChild:!0,children:(0,J.jsx)(R,{variant:`text`,size:`icon`,children:(0,J.jsx)(l,{className:`h-4 w-4`})})})}),t[9]=y):y=t[9];let b;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(b=e=>c(e.target.value),t[10]=b):b=t[10];let x;t[11]===s?x=t[12]:(x=(0,J.jsx)(`div`,{className:`pt-3 px-3 w-full`,children:(0,J.jsx)(Re,{placeholder:`Search chat history...`,value:s,onChange:b,className:`text-xs`})}),t[11]=s,t[12]=x);let S;t[13]===p.length?S=t[14]:(S=p.length===0&&(0,J.jsx)(Ze,{title:`No chats yet`,description:`Start a new chat to get started`,icon:(0,J.jsx)(W,{})}),t[13]=p.length,t[14]=S);let C;t[15]!==p.length||t[16]!==g.length||t[17]!==s?(C=g.length===0&&s&&p.length>0&&(0,J.jsx)(Ze,{title:`No chats found`,description:`No chats match "${s}"`,icon:(0,J.jsx)(Le,{})}),t[15]=p.length,t[16]=g.length,t[17]=s,t[18]=C):C=t[18];let w;if(t[19]!==n||t[20]!==v||t[21]!==o||t[22]!==i){let e;t[24]!==n||t[25]!==v.length||t[26]!==o||t[27]!==i?(e=(e,t)=>(0,J.jsxs)(`div`,{className:`space-y-2`,children:[(0,J.jsx)(`div`,{className:`text-xs px-1 text-muted-foreground/60`,children:e.label}),(0,J.jsx)(`div`,{children:e.chats.map(e=>(0,J.jsxs)(`button`,{className:E(`w-full p-1 rounded-md cursor-pointer text-left flex items-center justify-between`,e.id===n&&`bg-accent`,e.id!==n&&`hover:bg-muted/20`),onClick:()=>{i(e.id)},type:`button`,children:[(0,J.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,J.jsx)(`div`,{className:`text-sm truncate`,children:e.title})}),(0,J.jsx)(`div`,{className:`text-xs text-muted-foreground/60 ml-2 shrink-0`,children:Ge(e.updatedAt,o)})]},e.id))}),t!==v.length-1&&(0,J.jsx)(`hr`,{})]},e.label),t[24]=n,t[25]=v.length,t[26]=o,t[27]=i,t[28]=e):e=t[28],w=v.map(e),t[19]=n,t[20]=v,t[21]=o,t[22]=i,t[23]=w}else w=t[23];let T;t[29]!==S||t[30]!==C||t[31]!==w?(T=(0,J.jsx)(Bt,{className:`h-[450px] p-2`,children:(0,J.jsxs)(`div`,{className:`space-y-3`,children:[S,C,w]})}),t[29]=S,t[30]=C,t[31]=w,t[32]=T):T=t[32];let D;return t[33]!==T||t[34]!==x?(D=(0,J.jsxs)(d,{children:[y,(0,J.jsxs)(m,{className:`w-[480px] p-0`,align:`start`,side:`right`,children:[x,T]})]}),t[33]=T,t[34]=x,t[35]=D):D=t[35],D};function Gt(e,t){return t.updatedAt-e.updatedAt}var Kt=()=>{let e=(0,$.c)(17),[n,r]=t(Xe),i=n.webSearch,a=i?`Capabilities (web search enabled)`:`Capabilities`,o=i||void 0,s=i&&`bg-primary/15 text-primary ring-1 ring-primary/30 opacity-100 hover:bg-primary/20`,c;e[0]===s?c=e[1]:(c=E(`h-6 w-6 shrink-0 bg-muted hover:bg-muted/30`,s),e[0]=s,e[1]=c);let l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,J.jsx)(Lt,{className:`h-3.5 w-3.5`}),e[2]=l):l=e[2];let u;e[3]!==a||e[4]!==o||e[5]!==c?(u=(0,J.jsx)(f,{asChild:!0,children:(0,J.jsx)(R,{"aria-label":`Capabilities`,title:a,"data-active":o,variant:`text`,size:`icon`,className:c,children:l})}),e[3]=a,e[4]=o,e[5]=c,e[6]=u):u=e[6];let p;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,J.jsx)(`span`,{className:`text-sm font-semibold`,children:`Web search`}),e[7]=p):p=e[7];let h;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,J.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[p,(0,J.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`Search the web when the model supports it.`,` `,(0,J.jsx)(Fe,{href:`https://docs.marimo.io/guides/editor_features/tools#web-search-and-fetch`,children:`Learn more`})]})]}),e[8]=h):h=e[8];let g;e[9]===r?g=e[10]:(g=e=>r(t=>({...t,webSearch:e})),e[9]=r,e[10]=g);let _;e[11]!==g||e[12]!==i?(_=(0,J.jsx)(m,{className:`w-76 p-3`,align:`start`,side:`top`,children:(0,J.jsxs)(`label`,{htmlFor:`web-search-toggle`,className:`flex items-start justify-between gap-3 cursor-pointer`,children:[h,(0,J.jsx)(Ye,{id:`web-search-toggle`,"aria-label":`Web search`,size:`sm`,checked:i,onCheckedChange:g})]})}),e[11]=g,e[12]=i,e[13]=_):_=e[13];let v;return e[14]!==u||e[15]!==_?(v=(0,J.jsxs)(d,{children:[u,_]}),e[14]=u,e[15]=_,e[16]=v):v=e[16],v};function qt(){return G()}function Jt(e){let t=(0,$.c)(4),[n,r]=(0,q.useState)(qt),a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=()=>r(qt()),t[0]=a):a=t[0];let o=i(a),s=e??n,c;return t[1]!==o||t[2]!==s?(c={chatControllerId:s,renewDraftChatId:o},t[1]=o,t[2]=s,t[3]=c):c=t[3],c}var Yt=`manual`,Xt=(0,q.memo)(e=>{let t=(0,$.c)(18),{message:n}=e,r;t[0]===n.parts?r=t[1]:(r=n.parts.filter(an).map(on).join(`
2
- `),t[0]=n.parts,t[1]=r);let i=r,a,o,s;if(t[2]!==n.parts){let e=n.parts.filter(sn);s=`flex justify-end`,a=`w-[95%] bg-background border border-dashed p-2 rounded-sm opacity-70`,o=e.map(cn),t[2]=n.parts,t[3]=a,t[4]=o,t[5]=s}else a=t[3],o=t[4],s=t[5];let c;t[6]===i?c=t[7]:(c=(0,J.jsx)(`span`,{className:`wrap-break-word`,children:i}),t[6]=i,t[7]=c);let l;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,J.jsx)(Je,{className:`h-3.5 w-3.5 shrink-0 animate-spin`}),t[8]=l):l=t[8];let u;t[9]===c?u=t[10]:(u=(0,J.jsxs)(`div`,{className:`flex items-center justify-end gap-2 text-sm text-muted-foreground`,children:[c,l]}),t[9]=c,t[10]=u);let d;t[11]!==a||t[12]!==o||t[13]!==u?(d=(0,J.jsxs)(`div`,{className:a,children:[o,u]}),t[11]=a,t[12]=o,t[13]=u,t[14]=d):d=t[14];let f;return t[15]!==s||t[16]!==d?(f=(0,J.jsx)(`div`,{className:s,children:d}),t[15]=s,t[16]=d,t[17]=f):f=t[17],f});Xt.displayName=`QueuedMessageDisplay`;var Zt=e=>{let t=(0,$.c)(18),{onNewChat:n,activeChatId:r,setActiveChat:i}=e,{handleClick:a}=b(),o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,J.jsx)(Ie,{className:`h-4 w-4`}),t[0]=o):o=t[0];let s;t[1]===n?s=t[2]:(s=(0,J.jsx)(L,{content:`New chat`,children:(0,J.jsx)(R,{variant:`text`,size:`icon`,onClick:n,children:o})}),t[1]=n,t[2]=s);let c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,J.jsx)(v,{}),t[3]=c):c=t[3];let l;t[4]===a?l=t[5]:(l=()=>a(`ai`),t[4]=a,t[5]=l);let u;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,J.jsx)(ze,{className:`h-4 w-4`}),t[6]=u):u=t[6];let d;t[7]===l?d=t[8]:(d=(0,J.jsx)(L,{content:`AI Settings`,children:(0,J.jsx)(R,{variant:`text`,size:`xs`,className:`hover:bg-foreground/10 py-2`,onClick:l,children:u})}),t[7]=l,t[8]=d);let f;t[9]!==r||t[10]!==i?(f=(0,J.jsx)(Wt,{activeChatId:r,setActiveChat:i}),t[9]=r,t[10]=i,t[11]=f):f=t[11];let p;t[12]!==d||t[13]!==f?(p=(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[c,d,f]}),t[12]=d,t[13]=f,t[14]=p):p=t[14];let m;return t[15]!==s||t[16]!==p?(m=(0,J.jsxs)(`div`,{className:`flex border-b px-2 py-1 justify-between shrink-0 items-center`,children:[s,p]}),t[15]=s,t[16]=p,t[17]=m):m=t[17],m},Qt=(0,q.memo)(e=>{let t=(0,$.c)(17),{message:n,index:r,onEdit:i,isStreamingReasoning:a,isLast:o,isActive:s,addToolApprovalResponse:c}=e,l;t[0]!==r||t[1]!==i?(l=e=>{let t=(e.parts?.filter(ln))?.map(un).join(`
3
- `),n=e.parts?.filter(dn);return(0,J.jsxs)(`div`,{className:`w-[95%] bg-background border p-1 rounded-sm`,children:[n?.map(fn),(0,J.jsx)(we,{value:t,placeholder:`Type your message...`,onChange:pn,onSubmit:(e,t)=>{t.trim()&&i(r,t)},onClose:mn},e.id)]})},t[0]=r,t[1]=i,t[2]=l):l=t[2];let u=l,d;t[3]!==c||t[4]!==s||t[5]!==o||t[6]!==a?(d=e=>{let t=e.parts.filter(hn).map(gn).join(`
4
- `);return(0,J.jsxs)(`div`,{className:`w-[95%] wrap-break-word`,children:[(0,J.jsx)(`div`,{className:`absolute right-1 top-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,J.jsx)(Be,{className:`h-3 w-3`,value:t||``})}),Me({message:e,isStreamingReasoning:a,isLast:o,isActive:s,addToolApprovalResponse:c})]})},t[3]=c,t[4]=s,t[5]=o,t[6]=a,t[7]=d):d=t[7];let f=d,p=n.role===`user`?`justify-end`:`justify-start`,m;t[8]===p?m=t[9]:(m=E(`flex group relative`,p),t[8]=p,t[9]=m);let h;t[10]!==n||t[11]!==f||t[12]!==u?(h=n.role===`user`?u(n):f(n),t[10]=n,t[11]=f,t[12]=u,t[13]=h):h=t[13];let g;return t[14]!==m||t[15]!==h?(g=(0,J.jsx)(`div`,{className:m,children:h}),t[14]=m,t[15]=h,t[16]=g):g=t[16],g});Qt.displayName=`ChatMessage`;var $t=(0,q.memo)(e=>{let t=(0,$.c)(43),{isEmpty:n,onSendClick:i,isLoading:a,onStop:o,fileInputRef:s,onAddFiles:c,onAddContext:l}=e,u=r(_),d=u?.mode||Yt,f=u?.models?.chat_model||`openai/gpt-4o`,p=y.parse(f).providerId,{saveModeChange:m}=ee(),h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=[{value:`manual`,label:`Manual`,subtitle:`Pure chat, no tool usage`,Icon:K},{value:`ask`,label:`Ask`,subtitle:`AI with access to read-only tools like documentation search`,Icon:It},{value:`agent`,label:`Agent`,subtitle:`AI with access to read and write tools`,Icon:Ne},{value:`code_mode`,label:`Code Mode (beta)`,subtitle:`AI with access to the notebook's kernel. Potentially destructive.`,Icon:se}],t[0]=h):h=t[0];let g=h,v=Ce.has(p),b;t[1]!==d||t[2]!==g?(b=g.find(e=>e.value===d),t[1]=d,t[2]=g,t[3]=b):b=t[3];let S=b,C=S?.Icon,w=S?.label,T;t[4]===C?T=t[5]:(T=C&&(0,J.jsx)(C,{className:`h-3 w-3`}),t[4]=C,t[5]=T);let E;t[6]===w?E=t[7]:(E=(0,J.jsx)(`span`,{className:`text-nowrap`,children:w}),t[6]=w,t[7]=E);let D;t[8]!==T||t[9]!==E?(D=(0,J.jsxs)(ie,{className:`h-6 text-xs border-border shadow-none! ring-0! bg-muted hover:bg-muted/30 py-0 px-2 gap-1.5 shrink-0`,children:[T,E]}),t[8]=T,t[9]=E,t[10]=D):D=t[10];let O;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,J.jsx)(te,{className:`text-xs uppercase tracking-wider text-muted-foreground/70 font-medium`,children:`AI Mode`}),t[11]=O):O=t[11];let k;t[12]===g?k=t[13]:(k=(0,J.jsx)(ne,{children:(0,J.jsxs)(re,{children:[O,g.map(_n)]})}),t[12]=g,t[13]=k);let A;t[14]!==d||t[15]!==m||t[16]!==D||t[17]!==k?(A=(0,J.jsxs)(ae,{value:d,onValueChange:m,children:[D,k]}),t[14]=d,t[15]=m,t[16]=D,t[17]=k,t[18]=A):A=t[18];let j,M;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,J.jsx)(x,{placeholder:`Model`,triggerClassName:`h-6 text-xs shadow-none! ring-0! bg-muted hover:bg-muted/30 rounded-sm max-w-[200px]`,iconSize:`small`,showAddCustomModelDocs:!0,forRole:`chat`}),j=(0,J.jsx)(Kt,{}),t[19]=j,t[20]=M):(j=t[19],M=t[20]);let N;t[21]===A?N=t[22]:(N=(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[A,M,j]}),t[21]=A,t[22]=N);let P;t[23]!==a||t[24]!==l?(P=(0,J.jsx)(V,{handleAddContext:l,isLoading:a}),t[23]=a,t[24]=l,t[25]=P):P=t[25];let F;t[26]!==s||t[27]!==v||t[28]!==a||t[29]!==c?(F=v&&(0,J.jsx)(Se,{fileInputRef:s,isLoading:a,onAddFiles:c}),t[26]=s,t[27]=v,t[28]=a,t[29]=c,t[30]=F):F=t[30];let I;t[31]!==n||t[32]!==a||t[33]!==i||t[34]!==o?(I=(0,J.jsx)(ve,{isLoading:a,onStop:o,onSendClick:i,isEmpty:n}),t[31]=n,t[32]=a,t[33]=i,t[34]=o,t[35]=I):I=t[35];let L;t[36]!==P||t[37]!==F||t[38]!==I?(L=(0,J.jsxs)(`div`,{className:`flex flex-row ml-auto`,children:[P,F,I]}),t[36]=P,t[37]=F,t[38]=I,t[39]=L):L=t[39];let R;return t[40]!==N||t[41]!==L?(R=(0,J.jsx)(oe,{children:(0,J.jsxs)(`div`,{className:`px-3 py-2 border-t border-border/20 flex flex-wrap items-center gap-1`,children:[N,L]})}),t[40]=N,t[41]=L,t[42]=R):R=t[42],R});$t.displayName=`ChatInputFooter`;var en=(0,q.memo)(e=>{let t=(0,$.c)(31),{placeholder:n,input:r,inputClassName:a,setInput:o,onSubmit:s,inputRef:c,isLoading:l,onStop:u,fileInputRef:d,onAddFiles:f,onClose:p}=e,m;t[0]!==r||t[1]!==s?(m=()=>{r.trim()&&s(void 0,r)},t[0]=r,t[1]=s,t[2]=m):m=t[2];let h=i(m),g;t[3]===a?g=t[4]:(g=E(`px-2 py-1.5`,a),t[3]=a,t[4]=g);let _=n||`Type your message...`,v;t[5]!==r||t[6]!==c||t[7]!==f||t[8]!==p||t[9]!==s||t[10]!==o||t[11]!==_?(v=(0,J.jsx)(we,{className:`max-h-[400px]`,inputRef:c,value:r,onChange:o,onSubmit:s,onClose:p,onAddFiles:f,placeholder:_}),t[5]=r,t[6]=c,t[7]=f,t[8]=p,t[9]=s,t[10]=o,t[11]=_,t[12]=v):v=t[12];let y;t[13]!==g||t[14]!==v?(y=(0,J.jsx)(`div`,{className:g,children:v}),t[13]=g,t[14]=v,t[15]=y):y=t[15];let b;t[16]===r?b=t[17]:(b=r.trim(),t[16]=r,t[17]=b);let x=!b,S;t[18]===c?S=t[19]:(S=()=>U(c),t[18]=c,t[19]=S);let C;t[20]!==d||t[21]!==h||t[22]!==l||t[23]!==f||t[24]!==u||t[25]!==x||t[26]!==S?(C=(0,J.jsx)($t,{isEmpty:x,onAddContext:S,onSendClick:h,isLoading:l,onStop:u,fileInputRef:d,onAddFiles:f}),t[20]=d,t[21]=h,t[22]=l,t[23]=f,t[24]=u,t[25]=x,t[26]=S,t[27]=C):C=t[27];let w;return t[28]!==y||t[29]!==C?(w=(0,J.jsxs)(`div`,{className:`relative shrink-0 flex flex-col border-t`,children:[y,C]}),t[28]=y,t[29]=C,t[30]=w):w=t[30],w});en.displayName=`ChatInput`;var tn=e=>{let t=(0,$.c)(5),{onPairWithAgent:n}=e;if(T())return null;let r,i,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsx)(p,{className:`h-3.5 w-3.5 shrink-0`}),i=(0,J.jsx)(`span`,{children:`Work on this notebook with your own agent`}),a=(0,J.jsx)($e,{className:`h-3 w-3 shrink-0`}),t[0]=r,t[1]=i,t[2]=a):(r=t[0],i=t[1],a=t[2]);let o;return t[3]===n?o=t[4]:(o=(0,J.jsxs)(R,{variant:`text`,className:`gap-1.5 text-sm text-link hover:underline`,onClick:n,children:[r,i,a]}),t[3]=n,t[4]=o),o},nn=()=>{let e=(0,$.c)(6),t=r(g),{handleClick:n}=b();if(!t){let t;e[0]===n?t=e[1]:(t=(0,J.jsx)(R,{variant:`outline`,size:`sm`,onClick:()=>n(`ai`,`ai-providers`),children:`Edit AI settings`}),e[0]=n,e[1]=t);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsx)(W,{}),e[2]=r):r=e[2];let i;return e[3]===t?i=e[4]:(i=(0,J.jsx)(Ze,{title:`Chat with AI`,description:`No AI provider configured or Chat model not selected`,action:t,icon:r}),e[3]=t,e[4]=i),i}let i;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,J.jsx)(rn,{}),e[5]=i):i=e[5],i},rn=()=>{let e=a(Ue),[r,o]=t(We),[l,d]=t(qe),[f,p]=(0,q.useState)(``),[m,h]=(0,q.useState)(``),[g,v]=(0,q.useState)(!0),{files:y,addFiles:b,clearFiles:x,removeFile:C}=pe(),{messages:T,enqueue:D,flushNext:O,clear:k,hasQueuedRef:A}=le(),j=(0,q.useRef)(null),M=(0,q.useRef)(null),N=(0,q.useRef)(null),P=(0,q.useRef)(null),ee=(0,q.useRef)(null),[te,F]=(0,q.useState)(null),I=i(()=>{ee.current=null,F(null)}),ne=w(),{invokeAiTool:re,sendRun:ie}=Ve(),{openModal:ae,closeModal:L}=Pe(),z=r?.id,{chatControllerId:se,renewDraftChatId:ce}=Jt(z),V=n(),{addStagedCell:ve}=de(),{createNewCell:Se,prepareForRun:Ce}=s(),we={addStagedCell:ve,createNewCell:Se,prepareForRun:Ce,sendRun:ie,store:V},{messages:H,sendMessage:U,error:W,status:Me,regenerate:Ne,stop:Fe,addToolOutput:Ie,addToolApprovalResponse:Le,id:Re}=Oe({id:se,throttle:100,sendAutomaticallyWhen:({messages:e})=>Te(e),messages:r?.messages||[],transport:new zt({api:ne.getAiURL(`chat`).toString(),headers:()=>ne.headers(),prepareSendMessagesRequest:async e=>{let t=await me({messages:e.messages});t.success||S.debug(`Outgoing chat messages failed AI SDK schema validation`,t.error);let n={uiMessages:e.messages,includeOtherCode:c(``),options:V.get(Xe)},r=V.get(_)?.mode||Yt,i=xe.getToolSchemas(r);return{api:ne.getAiURL(`chat`).toString(),body:{tools:i,...e,...n}}}},e=>{let t=je(e);t!==void 0&&(ee.current=t)}),onFinish:({messages:t,isError:n,isAbort:r,finishReason:i})=>{if(e(e=>Rt({chatState:e,chatId:e.activeChatId,messages:t})),r){let e=ke({isAbort:!0,streamReason:ee.current});if(I(),e!=null){let t=Ae(e);S.debug(`Chat stream aborted`,{reason:e,finishReason:i}),F(t)}}else I();Be(t,{isError:n,isAbort:r})},onToolCall:async({toolCall:e})=>{await he({invokeAiTool:re,addToolOutput:Ie,toolCall:{toolName:e.toolName,toolCallId:e.toolCallId,input:e.input},toolContext:we})},onError:e=>{S.error(`An error occurred:`,e)}}),ze=i(e=>{I(),U({role:`user`,parts:e})}),Be=i((e,t)=>{A.current&&Ee({isError:t.isError,isAbort:t.isAbort,hasPendingToolCalls:Te(e),hasUnresolvedToolCalls:De(e)})&&O(ze)}),G=Me===`submitted`||Me===`streaming`,He=(0,q.useRef)(G);He.current=G;let Ge=i(e=>{He.current||A.current?D(e):ze(e)}),Ye=i(()=>{let e=N.current;if(!e)return;let{scrollTop:t,scrollHeight:n,clientHeight:r}=e,i=n>r?Math.abs(n-r-t)<5:!0;v(i)}),K=i((e=!1)=>{let t=N.current;t&&t.scrollTo({top:t.scrollHeight,behavior:e?`smooth`:`auto`})}),Ze=G&&H.length>0&&ge(H);(0,q.useEffect)(()=>{v(!0),k(),I()},[z,k,I]),(0,q.useEffect)(()=>{if(!g)return;let e=requestAnimationFrame(()=>{K()});return()=>cancelAnimationFrame(e)},[H,T,G,g,K]),(0,q.useEffect)(()=>{G||Be(H,{isError:W!=null,isAbort:!1})},[H,G,W,Be]);let $e=i(t=>{let n=Date.now(),r={id:Re,title:ye(t),messages:[],createdAt:n,updatedAt:n};e(e=>{let t=new Map(e.chats);return t.set(r.id,r),{...e,chats:t,activeChatId:r.id}})}),tt=i(async(e,t)=>{$e(e);let n=t&&t.length>0?await be(t):void 0,{contextPart:r,attachments:i}=await B(e);U({role:`user`,parts:[{type:`text`,text:e},...r?[r]:[],...n??[],...i]}),x(),p(``)}),nt=i(()=>{ce(),o(null),p(``),h(``),k(),x()}),rt=i(()=>{ae((0,J.jsx)(et,{onClose:L}))}),it=i(async(e,t)=>{let n=H[e],r=n.parts?.filter(e=>e.type===`file`&&!ue(e))??[],{contextPart:i,attachments:a}=await B(t),o=n.id;U({messageId:o,role:`user`,parts:[{type:`text`,text:t},...i?[i]:[],...r,...a]})}),at=i(async(e,t)=>{if(!t.trim())return;M.current?.view&&fe(M.current.view);let n=y?await be(y):void 0,{contextPart:r,attachments:i}=await B(t);e?.preventDefault(),Ge([{type:`text`,text:t},...r?[r]:[],...n??[],...i]),p(``),x()}),Y=()=>{I(),Ne()},ot=i(()=>{m.trim()&&(j.current?.view&&fe(j.current.view),tt(m.trim(),y))}),st=()=>j.current?.editor?.blur(),ct=i(async e=>{z??($e(e),p(m));let{contextPart:t,attachments:n}=await B(e);Ge([{type:`text`,text:e},...t?[t]:[],...n])}),X=H.length===0;(0,q.useEffect)(()=>{if(!l)return;d(null);let{prompt:e,submit:t}=l;t?ct(e):X?(h(e),u(j)):(p(e),u(M))},[l,d,X,ct]);let Z=X?(0,J.jsx)(en,{placeholder:`Ask anything, @ to include context about tables or dataframes`,input:m,inputRef:j,inputClassName:`px-1 py-0`,setInput:h,onSubmit:ot,isLoading:G,onStop:Fe,fileInputRef:P,onAddFiles:b,onClose:st},`new-thread-input`):(0,J.jsx)(en,{input:f,setInput:p,onSubmit:at,inputRef:M,isLoading:G,onStop:Fe,onClose:()=>M.current?.editor?.blur(),fileInputRef:P,onAddFiles:b}),lt=y&&y.length>0&&(0,J.jsx)(`div`,{className:E(`flex flex-row gap-1 flex-wrap p-1`,X&&`py-2 px-1`),children:y?.map(e=>(0,J.jsx)(_e,{file:e,onRemove:()=>C(e)},e.name))});return(0,J.jsxs)(`div`,{className:`flex flex-col h-[calc(100%-53px)]`,children:[(0,J.jsx)(oe,{children:(0,J.jsx)(Zt,{onNewChat:nt,activeChatId:r?.id,setActiveChat:o})}),(0,J.jsxs)(`div`,{className:`flex-1 flex flex-col overflow-hidden relative min-h-0`,children:[(0,J.jsxs)(`div`,{className:`flex-1 px-3 bg-(--slate-1) gap-4 py-3 flex flex-col overflow-y-auto`,ref:N,onScroll:Ye,children:[X&&(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsxs)(`div`,{className:`rounded-md border bg-background`,children:[lt,Z]}),(0,J.jsx)(tn,{onPairWithAgent:rt})]}),H.map((e,t)=>(0,J.jsx)(Qt,{message:e,index:t,onEdit:it,isStreamingReasoning:Ze,isLast:t===H.length-1,isActive:G,addToolApprovalResponse:Le},e.id)),T.map(e=>(0,J.jsx)(Xt,{message:e},e.id)),G&&(0,J.jsx)(`div`,{className:`flex justify-center py-4`,children:(0,J.jsx)(Je,{className:`h-4 w-4 animate-spin`})}),W&&(0,J.jsxs)(`div`,{className:`flex items-center justify-center space-x-2 mb-4`,children:[(0,J.jsx)(Ke,{error:W||Error(`Unknown error`)}),(0,J.jsx)(R,{variant:`outline`,size:`sm`,onClick:Y,children:`Retry`})]}),te&&!G&&!W&&(0,J.jsx)(`div`,{className:`flex justify-center py-2`,children:(0,J.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:te})})]}),(0,J.jsx)(Qe,{isVisible:!g&&(H.length>0||T.length>0),onScrollToBottom:()=>K(!0)})]}),G&&(0,J.jsx)(`div`,{className:`w-full flex justify-center items-center z-20 border-t`,children:(0,J.jsx)(R,{variant:`linkDestructive`,size:`sm`,onClick:Fe,children:`Stop`})}),!X&&(0,J.jsxs)(J.Fragment,{children:[lt,Z]})]})};function an(e){return e.type===`text`}function on(e){return e.text}function sn(e){return e.type===`file`}function cn(e,t){return(0,J.jsx)(H,{attachment:e},t)}function ln(e){return e.type===`text`}function un(e){return e.text}function dn(e){return e.type===`file`}function fn(e,t){return(0,J.jsx)(H,{attachment:e},t)}function pn(){}function mn(){}function hn(e){return e.type===`text`}function gn(e){return e.text}function _n(e){return(0,J.jsx)(F,{value:e.value,className:`text-xs py-1`,children:(0,J.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[(0,J.jsx)(`span`,{className:`mt-1 text-muted-foreground`,children:(0,J.jsx)(e.Icon,{className:`h-3 w-3`})}),(0,J.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,J.jsx)(`span`,{className:`font-semibold`,children:e.label}),(0,J.jsx)(`span`,{className:`text-muted-foreground`,children:e.subtitle})]})]})},e.value)}export{nn as default};
@@ -1 +0,0 @@
1
- import"./chunk-75Z2AOVW-DA_lihEi.js";import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-Cyu5G-Tr.js";import"./chunk-DU6HZSFF-J-califE.js";import"./chunk-P2QGCYS3-DsJshZeL.js";import"./chunk-PWAF6VOD-CrFPAGFi.js";import"./chunk-GMAD6QVW-mXoq4V-T.js";import"./chunk-4HAMMTFA-F3WVmmmo.js";import"./chunk-GVQU2GXP-B-87l3Xt.js";import"./chunk-L3NEJ4N5-DLeZO9l0.js";import"./chunk-OSK3NFVY-PWoOtECb.js";import"./mermaid-CNjXdDrA.js";import"./chunk-F27PBJKO-BzJrz4xx.js";import"./chunk-XXDRQBXY-BwqwIlJV.js";import"./chunk-POPQ4Y6H-CCg5TpSp.js";import{i as t,n,r,t as i}from"./chunk-TICWLB2K-CJ7ETjY3.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- import"./chunk-75Z2AOVW-DA_lihEi.js";import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-Cyu5G-Tr.js";import"./chunk-DU6HZSFF-J-califE.js";import"./chunk-P2QGCYS3-DsJshZeL.js";import"./chunk-PWAF6VOD-CrFPAGFi.js";import"./chunk-GMAD6QVW-mXoq4V-T.js";import"./chunk-4HAMMTFA-F3WVmmmo.js";import"./chunk-GVQU2GXP-B-87l3Xt.js";import"./chunk-L3NEJ4N5-DLeZO9l0.js";import"./chunk-OSK3NFVY-PWoOtECb.js";import"./mermaid-CNjXdDrA.js";import"./chunk-F27PBJKO-BzJrz4xx.js";import"./chunk-XXDRQBXY-BwqwIlJV.js";import"./chunk-POPQ4Y6H-CCg5TpSp.js";import{i as t,n,r,t as i}from"./chunk-TICWLB2K-CJ7ETjY3.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- import{f as e,l as t}from"./useEvent-Dc9HkKI2.js";import{t as n}from"./compiler-runtime-BQ9S8nyo.js";import{t as r}from"./utils-B3E7otfg.js";import{r as i}from"./constants-BDbGiS7O.js";import{M as a,O as o,T as s,_ as c,l,z as u}from"./config-CmBpjGXk.js";import{i as d}from"./strings-BHZPE0Mc.js";import{Dt as f,Va as p,li as m,oi as h}from"./index-CgQsZfww.js";var g=n(),_={canHealthCheck:!1,canShutdown:!1,canRestart:!1,supportsLsp:!1},v={kind:`wasm`,label:`Pyodide`,capabilities:_,state:e(e=>{let t=e(m);switch(t.kind){case`loading`:return{kind:`connecting`,progress:{label:t.message}};case`ready`:return{kind:`ready`};case`error`:return{kind:`failed`,error:{message:t.message,errorKind:`init`}}}})},y={kind:`remote`,label:`Kernel`,capabilities:{canHealthCheck:!0,canShutdown:!0,canRestart:!0,supportsLsp:!0},state:e(e=>{let t=e(c);switch(t.state){case s.OPEN:return{kind:`ready`};case s.CONNECTING:return{kind:`connecting`,progress:{label:`Connecting…`}};case s.NOT_STARTED:return{kind:`connecting`,progress:{label:`Not connected`}};case s.CLOSING:case s.CLOSED:return{kind:`failed`,error:{message:t.state===s.CLOSED?t.reason:`Disconnecting`,errorKind:`runtime`}}}})},b={kind:`static`,label:`Static`,capabilities:_,state:e({kind:`ready`})},x={kind:`islands`,label:`Islands`,capabilities:_,state:e(e=>{let t=e(f);return t===!0?{kind:`ready`}:typeof t==`string`?{kind:`failed`,error:{message:t,errorKind:`init`}}:{kind:`connecting`,progress:{label:`Initializing islands…`}}})};function S(){return l()?b:r()?x:u()?v:y}var C=e(S());e(e=>{let t=e(C);return e(t.state).kind!==`ready`||t.kind===`static`?!1:t.kind!==`remote`||e(h).isInstantiated});function w(e){let n=(0,g.c)(2),r=t(o),{mode:s}=t(a),c=t(p),l=t(C).kind;if(r&&l===`remote`)return!0;switch(s){case`edit`:case`present`:return!0;case`home`:case`gallery`:return!1;case`read`:{if(!c||new URLSearchParams(window.location.search).get(i.includeCode)===`false`)return!1;let t;return n[0]===e?t=n[1]:(t=e.some(T),n[0]=e,n[1]=t),t}default:return d(s),!1}}function T(e){return!!e.code}export{C as n,w as t};
@@ -1 +0,0 @@
1
- import{c as e,l as t}from"./useEvent-Dc9HkKI2.js";import{Ft as n,_n as r,bn as i,gn as a,hn as o,mn as s,pn as c,vn as l,yn as u}from"./cells-BcQ8Tm3j.js";import{t as d}from"./compiler-runtime-BQ9S8nyo.js";import{C as f,g as p,w as m}from"./utils-B3E7otfg.js";import{D as h,O as g}from"./ai-model-dropdown-1t7m1iFc.js";import{m as _,t as v,u as y}from"./useEventListener-BdZUApHd.js";import{t as b}from"./objects-snlMn4yk.js";import{t as x}from"./jsx-runtime-B74pBk57.js";import{t as S}from"./useCellActionButton-Bm9OZdcq.js";import{r as C}from"./requests-yTHMxhVa.js";import{St as w}from"./index-CgQsZfww.js";import{i as T}from"./feedback-button-sRQQL2TH.js";import{n as E,r as D}from"./edit-page-_D_Nv3dJ.js";var O=d(),k=3;function A(){let e=(0,O.c)(7),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=[],e[0]=t):t=e[0];let[n,r]=T(`marimo:commands`,t),i;e[1]!==n||e[2]!==r?(i=e=>{let t=j([e,...n]);r(t.slice(0,k))},e[1]=n,e[2]=r,e[3]=i):i=e[3];let a;return e[4]!==n||e[5]!==i?(a={recentCommands:n,addRecentCommand:i},e[4]=n,e[5]=i,e[6]=a):a=e[6],a}function j(e){return[...new Set(e)]}function M(e){return e.dropdown!==void 0}function N(e,t=``){return e.flatMap(e=>!e.label||e.hidden?[]:M(e)?N(e.dropdown,`${t+e.label} > `):{...e,label:t+e.label,additionalKeywords:e.additionalKeywords})}function P(){let e=(0,O.c)(87),[t,n]=m(),[r,i]=f(),{saveAppConfig:a,saveUserConfig:o}=C(),s;e[0]!==o||e[1]!==n?(s=async e=>{await o({config:e}).then(()=>{n(t=>({...t,...e}))})},e[0]=o,e[1]=n,e[2]=s):s=e[2];let c=s,l;e[3]!==a||e[4]!==i?(l=async e=>{await a({config:e}).then(()=>{i(e)})},e[3]=a,e[4]=i,e[5]=l):l=e[5];let u=l,d;if(e[6]!==r||e[7]!==t.completion||e[8]!==t.display||e[9]!==t.keymap||e[10]!==u||e[11]!==c){let n;e[13]===r?n=e[14]:(n=e=>e!==r.width,e[13]=r,e[14]=n);let i;e[15]!==r||e[16]!==u?(i=e=>({label:`App config > Set width=${e}`,handle:()=>{u({...r,width:e})}}),e[15]=r,e[16]=u,e[17]=i):i=e[17];let a;e[18]!==t.display||e[19]!==c?(a={label:`Config > Set theme: dark`,handle:()=>{c({display:{...t.display,theme:`dark`}})}},e[18]=t.display,e[19]=c,e[20]=a):a=e[20];let o;e[21]!==t.display||e[22]!==c?(o={label:`Config > Set theme: light`,handle:()=>{c({display:{...t.display,theme:`light`}})}},e[21]=t.display,e[22]=c,e[23]=o):o=e[23];let s;e[24]!==t.display||e[25]!==c?(s={label:`Config > Set theme: system`,handle:()=>{c({display:{...t.display,theme:`system`}})}},e[24]=t.display,e[25]=c,e[26]=s):s=e[26];let l=t.keymap.preset===`vim`,f;e[27]!==t.keymap||e[28]!==c?(f=()=>{c({keymap:{...t.keymap,preset:`vim`}})},e[27]=t.keymap,e[28]=c,e[29]=f):f=e[29];let p;e[30]!==l||e[31]!==f?(p={label:`Config > Switch keymap to VIM`,hidden:l,handle:f},e[30]=l,e[31]=f,e[32]=p):p=e[32];let m=t.keymap.preset==="default",h;e[33]!==t.keymap||e[34]!==c?(h=()=>{c({keymap:{...t.keymap,preset:`default`}})},e[33]=t.keymap,e[34]=c,e[35]=h):h=e[35];let _;e[36]!==m||e[37]!==h?(_={label:`Config > Switch keymap to default (current: VIM)`,hidden:m,handle:h},e[36]=m,e[37]=h,e[38]=_):_=e[38];let v;e[39]!==t.completion||e[40]!==c?(v=()=>{c({completion:{...t.completion,copilot:!1}})},e[39]=t.completion,e[40]=c,e[41]=v):v=e[41];let y=t.completion.copilot!==`github`,b;e[42]!==v||e[43]!==y?(b={label:`Config > Disable GitHub Copilot`,handle:v,hidden:y},e[42]=v,e[43]=y,e[44]=b):b=e[44];let x;e[45]!==t.completion||e[46]!==c?(x=()=>{c({completion:{...t.completion,copilot:`github`}})},e[45]=t.completion,e[46]=c,e[47]=x):x=e[47];let S=t.completion.copilot===`github`,C;e[48]!==x||e[49]!==S?(C={label:`Config > Enable GitHub Copilot`,handle:x,hidden:S},e[48]=x,e[49]=S,e[50]=C):C=e[50];let w=!t.display.reference_highlighting,T;e[51]!==t.display||e[52]!==c?(T=()=>{c({display:{...t.display,reference_highlighting:!1}})},e[51]=t.display,e[52]=c,e[53]=T):T=e[53];let E;e[54]!==w||e[55]!==T?(E={label:`Config > Disable reference highlighting`,hidden:w,handle:T},e[54]=w,e[55]=T,e[56]=E):E=e[56];let D;e[57]!==t.display||e[58]!==c?(D=()=>{c({display:{...t.display,reference_highlighting:!0}})},e[57]=t.display,e[58]=c,e[59]=D):D=e[59];let O;e[60]!==t.display.reference_highlighting||e[61]!==D?(O={label:`Config > Enable reference highlighting`,hidden:t.display.reference_highlighting,handle:D},e[60]=t.display.reference_highlighting,e[61]=D,e[62]=O):O=e[62];let k=!(t.display.code_lens??!0),A;e[63]!==t.display||e[64]!==c?(A=()=>{c({display:{...t.display,code_lens:!1}})},e[63]=t.display,e[64]=c,e[65]=A):A=e[65];let j;e[66]!==k||e[67]!==A?(j={label:`Config > Disable code lens`,hidden:k,handle:A},e[66]=k,e[67]=A,e[68]=j):j=e[68];let M=t.display.code_lens??!0,N;e[69]!==t.display||e[70]!==c?(N=()=>{c({display:{...t.display,code_lens:!0}})},e[69]=t.display,e[70]=c,e[71]=N):N=e[71];let P;e[72]!==M||e[73]!==N?(P={label:`Config > Enable code lens`,hidden:M,handle:N},e[72]=M,e[73]=N,e[74]=P):P=e[74];let I=t.display.cell_output===`above`,L;e[75]!==t.display||e[76]!==c?(L=()=>{c({display:{...t.display,cell_output:`above`}})},e[75]=t.display,e[76]=c,e[77]=L):L=e[77];let R;e[78]!==I||e[79]!==L?(R={label:`Config > Set cell output area: above`,hidden:I,handle:L},e[78]=I,e[79]=L,e[80]=R):R=e[80];let z=t.display.cell_output===`below`,B;e[81]!==t.display||e[82]!==c?(B=()=>{c({display:{...t.display,cell_output:`below`}})},e[81]=t.display,e[82]=c,e[83]=B):B=e[83];let V;e[84]!==z||e[85]!==B?(V={label:`Config > Set cell output area: below`,hidden:z,handle:B},e[84]=z,e[85]=B,e[86]=V):V=e[86],d=[...g().filter(n).map(i),a,o,s,p,_,b,C,E,O,j,P,R,V].filter(F),e[6]=r,e[7]=t.completion,e[8]=t.display,e[9]=t.keymap,e[10]=u,e[11]=c,e[12]=d}else d=e[12];return d}function F(e){return!e.hidden}var I=x(),L=()=>{let d=(0,O.c)(37),[f,m]=e(D),g=h(),x=t(n),C=t(p),T;d[0]===x?T=d[1]:(T={cell:x},d[0]=x,d[1]=T);let k=S(T).flat();k=N(k);let j=P(),F=E();F=[...N(F),...N(j)];let L=F.filter(R),V=b.keyBy(L,z),{recentCommands:H,addRecentCommand:U}=A(),W;d[2]===H?W=d[3]:(W=new Set(H),d[2]=H,d[3]=W);let G=W,K;d[4]!==C||d[5]!==m?(K=e=>{_(C.getHotkey(`global.commandPalette`).key)(e)&&(e.preventDefault(),m(B))},d[4]=C,d[5]=m,d[6]=K):K=d[6],v(document,`keydown`,K);let q;d[7]!==U||d[8]!==C||d[9]!==g||d[10]!==m?(q=(e,t)=>{let n=g[e];if(!n)return null;let a=C.getHotkey(e);return(0,I.jsxs)(r,{disabled:t.disabled,keywords:a.additionalKeywords,onSelect:()=>{U(e),m(!1),requestAnimationFrame(()=>{n()})},value:a.name,children:[(0,I.jsxs)(`span`,{children:[a.name,t.tooltip&&(0,I.jsx)(`span`,{className:`ml-2`,children:t.tooltip})]}),(0,I.jsx)(i,{children:(0,I.jsx)(w,{shortcut:a.key})})]},e)},d[7]=U,d[8]=C,d[9]=g,d[10]=m,d[11]=q):q=d[11];let ee=q,J;d[12]!==U||d[13]!==C||d[14]!==m?(J=e=>{let{label:t,handle:n,props:a,hotkey:o,additionalKeywords:s}=e,c=a===void 0?{}:a;return(0,I.jsxs)(r,{disabled:c.disabled,keywords:s,onSelect:()=>{U(t),m(!1),requestAnimationFrame(()=>{n()})},value:t,children:[(0,I.jsxs)(`span`,{children:[t,c.tooltip&&(0,I.jsxs)(`span`,{className:`ml-2`,children:[`(`,c.tooltip,`)`]})]}),o&&(0,I.jsx)(i,{children:(0,I.jsx)(w,{shortcut:C.getHotkey(o).key})})]},t)},d[12]=U,d[13]=C,d[14]=m,d[15]=J):J=d[15];let Y=J,te=c,X;d[16]===Symbol.for(`react.memo_cache_sentinel`)?(X=(0,I.jsx)(a,{placeholder:`Type to search...`}),d[16]=X):X=d[16];let ne=l,Z;d[17]===Symbol.for(`react.memo_cache_sentinel`)?(Z=(0,I.jsx)(s,{children:`No results found.`}),d[17]=Z):Z=d[17];let re=H.length>0&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(o,{heading:`Recently Used`,children:H.map(e=>{let t=V[e];return y(e)?ee(e,{disabled:t?.disabled,tooltip:t?.tooltip}):t&&!M(t)?Y({label:t.label,handle:t.handleHeadless||t.handle,props:{disabled:t.disabled,tooltip:t.tooltip},additionalKeywords:t.additionalKeywords}):null})}),(0,I.jsx)(u,{})]}),ie=o,ae=C.iterate().map(e=>{if(G.has(e))return null;let t=V[e];return ee(e,{disabled:t?.disabled,tooltip:t?.tooltip})}),oe=L.map(e=>G.has(e.label)?null:Y({label:e.label,handle:e.handleHeadless||e.handle,props:{disabled:e.disabled,tooltip:e.tooltip},additionalKeywords:e.additionalKeywords})),se;d[18]!==G||d[19]!==Y?(se=e=>G.has(e.label)?null:Y({label:`Cell > ${e.label}`,handle:e.handleHeadless||e.handle,props:{disabled:e.disabled,tooltip:e.tooltip},additionalKeywords:e.additionalKeywords}),d[18]=G,d[19]=Y,d[20]=se):se=d[20];let ce=k.map(se),Q;d[21]!==ie||d[22]!==oe||d[23]!==ce||d[24]!==ae?(Q=(0,I.jsxs)(ie,{heading:`Commands`,children:[ae,oe,ce]}),d[21]=ie,d[22]=oe,d[23]=ce,d[24]=ae,d[25]=Q):Q=d[25];let $;d[26]!==ne||d[27]!==Q||d[28]!==Z||d[29]!==re?($=(0,I.jsxs)(ne,{children:[Z,re,Q]}),d[26]=ne,d[27]=Q,d[28]=Z,d[29]=re,d[30]=$):$=d[30];let le;return d[31]!==te||d[32]!==f||d[33]!==m||d[34]!==$||d[35]!==X?(le=(0,I.jsxs)(te,{open:f,onOpenChange:m,children:[X,$]}),d[31]=te,d[32]=f,d[33]=m,d[34]=$,d[35]=X,d[36]=le):le=d[36],le};function R(e){return!e.hotkey}function z(e){return e.label}function B(e){return!e}export{L as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./compiler-runtime-BQ9S8nyo.js";import{t}from"./objects-snlMn4yk.js";import{n}from"./constants-BDbGiS7O.js";import{t as r}from"./jsx-runtime-B74pBk57.js";import{a as i,p as a,r as o,t as s}from"./dropdown-menu-VuyoeQOD.js";import{t as c}from"./button-BoklZTGL.js";import{t as l}from"./createLucideIcon-rHn2EdoM.js";import{a as u,i as d,o as f,r as p}from"./paths-CzfpItSz.js";import{a as m,i as h,n as g,r as _,t as v}from"./youtube-ELpGJEdR.js";import{t as y}from"./package-BeYhVWvM.js";import{r as b}from"./requests-yTHMxhVa.js";import{Ca as x,Ia as S,Jr as C,O as w,Vn as T}from"./index-CgQsZfww.js";import{t as E}from"./github-khsXwCtv.js";import{n as D}from"./marimo-icons-B_1oPpIE.js";var O=l(`book-open`,[[`path`,{d:`M12 7v14`,key:`1akyts`}],[`path`,{d:`M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z`,key:`ruj8y`}]]),k=l(`graduation-cap`,[[`path`,{d:`M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z`,key:`j76jl0`}],[`path`,{d:`M22 10v6`,key:`1lu8f3`}],[`path`,{d:`M6 12.5V16a6 3 0 0 0 12 0v-3.5`,key:`1r8lef`}]]),A=l(`orbit`,[[`path`,{d:`M20.341 6.484A10 10 0 0 1 10.266 21.85`,key:`1enhxb`}],[`path`,{d:`M3.659 17.516A10 10 0 0 1 13.74 2.152`,key:`1crzgf`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`circle`,{cx:`19`,cy:`5`,r:`2`,key:`mhkx31`}],[`circle`,{cx:`5`,cy:`19`,r:`2`,key:`v8kfzx`}]]),j=l(`panels-top-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M9 21V9`,key:`1oto5p`}]]),M=e(),N=r(),P={intro:[`Introduction`,O,`Get started with marimo basics`],dataflow:[`Dataflow`,f,`Learn how cells interact with each other`],ui:[`UI Elements`,j,`Create interactive UI components`],markdown:[`Markdown`,p,`Format text with parameterized markdown`],plots:[`Plots`,S,`Create interactive visualizations`],sql:[`SQL`,d,`Query databases directly in marimo`],layout:[`Layout`,m,`Customize the layout of your cells' output`],fileformat:[`File format`,x,`Understand marimo's pure-Python file format`],"external-dependencies":[`External dependencies`,y,`Declare dependencies with Python script metadata`],"for-jupyter-users":[`For Jupyter users`,A,`Transiting from Jupyter to marimo`],"markdown-format":[`Markdown format`,w,`Using marimo to edit markdown files`]},F=()=>{let e=(0,M.c)(6),{openTutorial:n}=b(),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,N.jsx)(k,{className:`w-4 h-4 mr-2`}),e[0]=r):r=e[0];let l;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,N.jsx)(a,{asChild:!0,children:(0,N.jsxs)(c,{"data-testid":`open-tutorial-button`,size:`xs`,variant:`outline`,children:[r,`Tutorials`,(0,N.jsx)(C,{className:`w-3 h-3 ml-1`})]})}),e[1]=l):l=e[1];let u;e[2]===n?u=e[3]:(u=t.entries(P).map(e=>{let[t,r]=e,[a,o,s]=r;return(0,N.jsxs)(i,{onSelect:async()=>{let e=await n({tutorialId:t});e&&g(e.path)},children:[(0,N.jsx)(o,{strokeWidth:1.5,className:`w-4 h-4 mr-3 self-start mt-1.5 text-muted-foreground`}),(0,N.jsx)(`div`,{className:`flex items-center`,children:(0,N.jsxs)(`div`,{className:`flex flex-col`,children:[(0,N.jsx)(`span`,{children:a}),(0,N.jsx)(`span`,{className:`text-xs text-muted-foreground pr-1`,children:s})]})})]},t)}),e[2]=n,e[3]=u);let d;return e[4]===u?d=e[5]:(d=(0,N.jsxs)(s,{children:[l,(0,N.jsx)(o,{side:`bottom`,align:`end`,className:`print:hidden`,children:u})]}),e[4]=u,e[5]=d),d},I=[{title:`Documentation`,description:`Official marimo documentation and API reference`,icon:u,url:n.docsPage},{title:`GitHub`,description:`View source code, report issues, or contribute`,icon:E,url:n.githubPage},{title:`Community`,description:`Join the marimo Discord community`,icon:_,url:n.discordLink},{title:`molab`,description:`Run marimo notebooks in the cloud`,icon:D,url:n.molab},{title:`YouTube`,description:`Watch tutorials and demos`,icon:v,url:n.youtube},{title:`Changelog`,description:`See what's new in marimo`,icon:p,url:n.releasesPage}],L=()=>{let e=(0,M.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,N.jsx)(z,{Icon:h,children:`Resources`}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,N.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[t,(0,N.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3`,children:I.map(B)})]}),e[1]=n):n=e[1],n},R=e=>{let t=(0,M.c)(2),{fileCount:n}=e,r;return t[0]===n?r=t[1]:(r=(0,N.jsxs)(T,{kind:`warn`,className:`rounded p-4`,children:[`Showing `,n,` files. Some files and folders were skipped because your workspace is large or deeply nested. Start marimo from a subfolder to see them.`]}),t[0]=n,t[1]=r),r},z=e=>{let t=(0,M.c)(8),{Icon:n,control:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,N.jsx)(n,{className:`h-5 w-5`}),t[0]=n,t[1]=a);let o;t[2]!==i||t[3]!==a?(o=(0,N.jsxs)(`h2`,{className:`flex items-center gap-2 text-xl font-semibold text-muted-foreground select-none`,children:[a,i]}),t[2]=i,t[3]=a,t[4]=o):o=t[4];let s;return t[5]!==r||t[6]!==o?(s=(0,N.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[o,r]}),t[5]=r,t[6]=o,t[7]=s):s=t[7],s};function B(e){return(0,N.jsxs)(`a`,{href:e.url,target:`_blank`,"aria-label":`${e.title}: ${e.description}`,className:`flex items-start gap-3 py-3 px-3 rounded-lg border hover:bg-accent/20 transition-colors shadow-xs`,children:[(0,N.jsx)(e.icon,{className:`w-5 h-5 mt-1.5 text-primary`}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h3`,{className:`font-medium`,children:e.title}),(0,N.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description})]})]},e.title)}export{R as i,F as n,L as r,z as t};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{u as t}from"./useEvent-Dc9HkKI2.js";import{t as n}from"./react-CUdNIagt.js";import{t as r}from"./compiler-runtime-BQ9S8nyo.js";import{D as i,b as a}from"./utils-B3E7otfg.js";import{o}from"./useEventListener-BdZUApHd.js";import{t as s}from"./cn-ldLVeaqm.js";import{t as c}from"./jsx-runtime-B74pBk57.js";import{S as l,T as u,b as d,v as f,w as p,x as m,y as h}from"./fullscreen-BmzAqMKq.js";import{d as g,u as _}from"./menu-items-BBdeXCvU.js";import{a as v}from"./useNumberFormatter-C4-_TnkF.js";import{r as y}from"./requests-yTHMxhVa.js";var b=e(n(),1),x=c(),S=`Collapsible`,[ee,te]=p(S),[ne,C]=ee(S),w=b.forwardRef((e,t)=>{let{__scopeCollapsible:n,open:r,defaultOpen:i,disabled:a,onOpenChange:o,...s}=e,[c,l]=d({prop:r,defaultProp:i??!1,onChange:o,caller:S});return(0,x.jsx)(ne,{scope:n,disabled:a,contentId:f(),open:c,onOpenToggle:b.useCallback(()=>l(e=>!e),[l]),children:(0,x.jsx)(u.div,{"data-state":k(c),"data-disabled":a?``:void 0,...s,ref:t})})});w.displayName=S;var T=`CollapsibleTrigger`,E=b.forwardRef((e,t)=>{let{__scopeCollapsible:n,...r}=e,i=C(T,n);return(0,x.jsx)(u.button,{type:`button`,"aria-controls":i.contentId,"aria-expanded":i.open||!1,"data-state":k(i.open),"data-disabled":i.disabled?``:void 0,disabled:i.disabled,...r,ref:t,onClick:l(e.onClick,i.onOpenToggle)})});E.displayName=T;var D=`CollapsibleContent`,O=b.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=C(D,e.__scopeCollapsible);return(0,x.jsx)(h,{present:n||i.open,children:({present:e})=>(0,x.jsx)(re,{...r,ref:t,present:e})})});O.displayName=D;var re=b.forwardRef((e,t)=>{let{__scopeCollapsible:n,present:r,children:i,...a}=e,s=C(D,n),[c,l]=b.useState(r),d=b.useRef(null),f=o(t,d),p=b.useRef(0),h=p.current,g=b.useRef(0),_=g.current,v=s.open||c,y=b.useRef(v),S=b.useRef(void 0);return b.useEffect(()=>{let e=requestAnimationFrame(()=>y.current=!1);return()=>cancelAnimationFrame(e)},[]),m(()=>{let e=d.current;if(e){S.current=S.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();p.current=t.height,g.current=t.width,y.current||(e.style.transitionDuration=S.current.transitionDuration,e.style.animationName=S.current.animationName),l(r)}},[s.open,r]),(0,x.jsx)(u.div,{"data-state":k(s.open),"data-disabled":s.disabled?``:void 0,id:s.contentId,hidden:!v,...a,ref:f,style:{"--radix-collapsible-content-height":h?`${h}px`:void 0,"--radix-collapsible-content-width":_?`${_}px`:void 0,...e.style},children:v&&i})});function k(e){return e?`open`:`closed`}var ie=w,ae=E,oe=O,A=`Accordion`,se=[`Home`,`End`,`ArrowDown`,`ArrowUp`,`ArrowLeft`,`ArrowRight`],[j,ce,le]=g(A),[M,ue]=p(A,[le,te]),N=te(),P=b.forwardRef((e,t)=>{let{type:n,...r}=e,i=r,a=r;return(0,x.jsx)(j.Provider,{scope:e.__scopeAccordion,children:n===`multiple`?(0,x.jsx)(me,{...a,ref:t}):(0,x.jsx)(pe,{...i,ref:t})})});P.displayName=A;var[F,de]=M(A),[I,fe]=M(A,{collapsible:!1}),pe=b.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},collapsible:a=!1,...o}=e,[s,c]=d({prop:n,defaultProp:r??``,onChange:i,caller:A});return(0,x.jsx)(F,{scope:e.__scopeAccordion,value:b.useMemo(()=>s?[s]:[],[s]),onItemOpen:c,onItemClose:b.useCallback(()=>a&&c(``),[a,c]),children:(0,x.jsx)(I,{scope:e.__scopeAccordion,collapsible:a,children:(0,x.jsx)(R,{...o,ref:t})})})}),me=b.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=d({prop:n,defaultProp:r??[],onChange:i,caller:A}),c=b.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=b.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,x.jsx)(F,{scope:e.__scopeAccordion,value:o,onItemOpen:c,onItemClose:l,children:(0,x.jsx)(I,{scope:e.__scopeAccordion,collapsible:!0,children:(0,x.jsx)(R,{...a,ref:t})})})}),[he,L]=M(A),R=b.forwardRef((e,t)=>{let{__scopeAccordion:n,disabled:r,dir:i,orientation:a=`vertical`,...s}=e,c=b.useRef(null),d=o(c,t),f=ce(n),p=_(i)===`ltr`,m=l(e.onKeyDown,e=>{if(!se.includes(e.key))return;let t=e.target,n=f().filter(e=>!e.ref.current?.disabled),r=n.findIndex(e=>e.ref.current===t),i=n.length;if(r===-1)return;e.preventDefault();let o=r,s=i-1,c=()=>{o=r+1,o>s&&(o=0)},l=()=>{o=r-1,o<0&&(o=s)};switch(e.key){case`Home`:o=0;break;case`End`:o=s;break;case`ArrowRight`:a===`horizontal`&&(p?c():l());break;case`ArrowDown`:a===`vertical`&&c();break;case`ArrowLeft`:a===`horizontal`&&(p?l():c());break;case`ArrowUp`:a===`vertical`&&l()}n[o%i].ref.current?.focus()});return(0,x.jsx)(he,{scope:n,disabled:r,direction:i,orientation:a,children:(0,x.jsx)(j.Slot,{scope:n,children:(0,x.jsx)(u.div,{...s,"data-orientation":a,ref:d,onKeyDown:r?void 0:m})})})}),z=`AccordionItem`,[ge,B]=M(z),V=b.forwardRef((e,t)=>{let{__scopeAccordion:n,value:r,...i}=e,a=L(z,n),o=de(z,n),s=N(n),c=f(),l=r&&o.value.includes(r)||!1,u=a.disabled||e.disabled;return(0,x.jsx)(ge,{scope:n,open:l,disabled:u,triggerId:c,children:(0,x.jsx)(ie,{"data-orientation":a.orientation,"data-state":J(l),...s,...i,ref:t,disabled:u,open:l,onOpenChange:e=>{e?o.onItemOpen(r):o.onItemClose(r)}})})});V.displayName=z;var H=`AccordionHeader`,U=b.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=L(A,n),a=B(H,n);return(0,x.jsx)(u.h3,{"data-orientation":i.orientation,"data-state":J(a.open),"data-disabled":a.disabled?``:void 0,...r,ref:t})});U.displayName=H;var W=`AccordionTrigger`,G=b.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=L(A,n),a=B(W,n),o=fe(W,n),s=N(n);return(0,x.jsx)(j.ItemSlot,{scope:n,children:(0,x.jsx)(ae,{"aria-disabled":a.open&&!o.collapsible||void 0,"data-orientation":i.orientation,id:a.triggerId,...s,...r,ref:t})})});G.displayName=W;var K=`AccordionContent`,q=b.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=L(A,n),a=B(K,n),o=N(n);return(0,x.jsx)(oe,{role:`region`,"aria-labelledby":a.triggerId,"data-orientation":i.orientation,...o,...r,ref:t,style:{"--radix-accordion-content-height":`var(--radix-collapsible-content-height)`,"--radix-accordion-content-width":`var(--radix-collapsible-content-width)`,...e.style}})});q.displayName=K;function J(e){return e?`open`:`closed`}var _e=P,Y=V,ve=U,X=G,Z=q,Q=r(),ye=_e,be=b.forwardRef((e,t)=>{let n=(0,Q.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=s(`border-b`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,x.jsx)(Y,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});be.displayName=`AccordionItem`;var xe=b.forwardRef((e,t)=>{let n=(0,Q.c)(12),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]===i?o=n[5]:(o=s(`flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180 text-start`,i),n[4]=i,n[5]=o);let c;n[6]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,x.jsx)(v,{className:`h-4 w-4 transition-transform duration-200`}),n[6]=c):c=n[6];let l;return n[7]!==r||n[8]!==a||n[9]!==t||n[10]!==o?(l=(0,x.jsx)(ve,{className:`flex`,children:(0,x.jsxs)(X,{ref:t,className:o,...a,children:[r,c]})}),n[7]=r,n[8]=a,n[9]=t,n[10]=o,n[11]=l):l=n[11],l});xe.displayName=X.displayName;var $=b.forwardRef((e,t)=>{let n=(0,Q.c)(17),r,i,a,o;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4]):({className:i,children:r,wrapperClassName:o,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o);let c;n[5]===i?c=n[6]:(c=s(`overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down`,i),n[5]=i,n[6]=c);let l;n[7]===o?l=n[8]:(l=s(`pb-4 pt-0`,o),n[7]=o,n[8]=l);let u;n[9]!==r||n[10]!==l?(u=(0,x.jsx)(`div`,{className:l,children:r}),n[9]=r,n[10]=l,n[11]=u):u=n[11];let d;return n[12]!==a||n[13]!==t||n[14]!==c||n[15]!==u?(d=(0,x.jsx)(Z,{ref:t,className:c,...a,children:u}),n[12]=a,n[13]=t,n[14]=c,n[15]=u,n[16]=d):d=n[16],d});$.displayName=Z.displayName;var Se=class{map=new Map;get(e){return this.map.get(e)??[]}set(e,t){this.map.set(e,t)}add(e,t){this.map.has(e)?this.map.get(e).push(t):this.map.set(e,[t])}has(e){return this.map.has(e)}delete(e){return this.map.delete(e)}clear(){this.map.clear()}keys(){return this.map.keys()}values(){return this.map.values()}entries(){return this.map.entries()}forEach(e){this.map.forEach(e)}flatValues(){let e=[];for(let t of this.map.values())e.push(...t);return e}get size(){return this.map.size}},Ce=e=>{switch(e){case`chat`:return`chat_model`;case`autocomplete`:return`autocomplete_model`;case`edit`:return`edit_model`}},we=()=>{let e=(0,Q.c)(10),n=t(i),{saveUserConfig:r}=y(),o;e[0]!==r||e[1]!==n?(o=async e=>{let t={ai:e};await r({config:t}).then(()=>{n(e=>a(e,t))})},e[0]=r,e[1]=n,e[2]=o):o=e[2];let s=o,c;e[3]===s?c=e[4]:(c=async(e,t)=>{let n=Ce(t);n&&await s({models:{[n]:e}})},e[3]=s,e[4]=c);let l=c,u;e[5]===s?u=e[6]:(u=async e=>{await s({mode:e})},e[5]=s,e[6]=u);let d=u,f;return e[7]!==d||e[8]!==l?(f={saveModelChange:l,saveModeChange:d},e[7]=d,e[8]=l,e[9]=f):f=e[9],f};export{be as a,Y as c,$ as i,_e as l,Se as n,xe as o,ye as r,Z as s,we as t,X as u};
@@ -1 +0,0 @@
1
- import{a as e,c as t,f as n,l as r,r as i,t as a}from"./useEvent-Dc9HkKI2.js";import{t as o}from"./compiler-runtime-BQ9S8nyo.js";import{t as s}from"./utils-B3E7otfg.js";import{g as c}from"./useEventListener-BdZUApHd.js";import{t as l}from"./invariant-Ci2dTZ72.js";import{r as u}from"./constants-BDbGiS7O.js";import{t as d}from"./Deferred-CrTnjj37.js";import{t as f}from"./session-C8nQMsOE.js";var p=o();function m(e,t){if(e==null)throw Error(t||`Expected value but got ${e}`)}function h(){return typeof document<`u`&&document.querySelector(`marimo-wasm`)!==null}var g=Symbol(``);function _(e,t){return n(e,function(e,n,r){n(this,t(e(this),r))})}function v(e,t){let n=null,r=new Map,i=new Set,a=i=>{let s;if(t===void 0)s=r.get(i);else for(let[e,n]of r)if(t(e,i)){s=n;break}if(s!==void 0){if(n?.(s[1],i))a.remove(i);else return s[0]}let c=e(i);return r.set(i,[c,Date.now()]),o(`CREATE`,i,c),c},o=(e,t,n)=>{for(let r of i)r({type:e,param:t,atom:n})};return a.unstable_listen=e=>(i.add(e),()=>{i.delete(e)}),a.getParams=()=>r.keys(),a.remove=e=>{if(t===void 0){if(!r.has(e))return;let[t]=r.get(e);r.delete(e),o(`REMOVE`,e,t)}else for(let[n,[i]]of r)if(t(n,e)){r.delete(n),o(`REMOVE`,n,i);break}},a.setShouldRemove=e=>{if(n=e,n)for(let[e,[t,i]]of r)n(i,e)&&(r.delete(e),o(`REMOVE`,e,t))},a}var y=(e,t,n)=>(t.has(n)?t:t.set(n,e())).get(n),ee=new WeakMap,b=(e,t,n,r)=>y(e,y(()=>new WeakMap,y(()=>new WeakMap,ee,t),n),r);function x(e,t,r=Object.is){return b(()=>{let i=Symbol(),a=([e,n])=>{if(n===i)return t(e);let a=t(e,n);return r(n,a)?n:a},o=n(t=>{let n=t(o),r=t(e);return a([r,n])});return o.init=i,o},e,t,r)}var S=(e,t,n)=>(t.has(n)?t:t.set(n,e())).get(n),te=new WeakMap,C=(e,t,n)=>S(e,S(()=>new WeakMap,te,t),n),ne={},w=e=>!!e.write,T=e=>typeof e==`function`;function E(e,t){return C(()=>{let r=new WeakMap,i=(o,s)=>{let c=r.get(o);if(c)return c;let l=s&&r.get(s),u=[],d=[];return o.forEach((r,s)=>{let c=t?t(r):s;d[s]=c;let f=l&&l.atomList[l.keyList.indexOf(c)];if(f){u[s]=f;return}let p=t=>{let n=t(a),r=t(e),s=i(r,n?.arr).keyList.indexOf(c);if(s<0||s>=r.length){let e=o[i(o).keyList.indexOf(c)];if(e)return e;throw Error(`splitAtom: index out of bounds for read`)}return r[s]};u[s]=w(e)?n(p,(t,n,r)=>{let o=t(a),s=t(e),l=i(s,o?.arr).keyList.indexOf(c);if(l<0||l>=s.length)throw Error(`splitAtom: index out of bounds for write`);let u=T(r)?r(s[l]):r;Object.is(s[l],u)||n(e,[...s.slice(0,l),u,...s.slice(l+1)])}):n(p)}),c=l&&l.keyList.length===d.length&&l.keyList.every((e,t)=>e===d[t])?l:{arr:o,atomList:u,keyList:d},r.set(o,c),c},a=n(t=>{let n=t(a),r=t(e);return i(r,n?.arr)});a.init=void 0;let o=w(e)?n(e=>e(a).atomList,(t,n,r)=>{switch(r.type){case`remove`:{let i=t(o).indexOf(r.atom);if(i>=0){let r=t(e);n(e,[...r.slice(0,i),...r.slice(i+1)])}break}case`insert`:{let i=r.before?t(o).indexOf(r.before):t(o).length;if(i>=0){let a=t(e);n(e,[...a.slice(0,i),r.value,...a.slice(i)])}break}case`move`:{let i=t(o).indexOf(r.atom),a=r.before?t(o).indexOf(r.before):t(o).length;if(i>=0&&a>=0){let r=t(e);i<a?n(e,[...r.slice(0,i),...r.slice(i+1,a),r[i],...r.slice(a)]):n(e,[...r.slice(0,a),r[i],...r.slice(a,i),...r.slice(i+1)])}break}}}):n(e=>e(a).atomList);return o},e,t||ne)}var D=e=>typeof e?.then==`function`;function O(e=()=>{try{return window.localStorage}catch{return}},t){let n,r,i={getItem:(i,a)=>{let o=e=>{if(e||=``,n!==e){try{r=JSON.parse(e,t?.reviver)}catch{return a}n=e}return r},s=e()?.getItem(i)??null;return D(s)?s.then(o):o(s)},setItem:(n,r)=>e()?.setItem(n,JSON.stringify(r,t?.replacer)),removeItem:t=>e()?.removeItem(t)},a=e=>(n,r,i)=>e(n,e=>{let n;try{n=JSON.parse(e||``,t?.reviver)}catch{n=i}r(n)}),o;try{o=e()?.subscribe}catch{}return!o&&typeof window<`u`&&typeof window.addEventListener==`function`&&window.Storage&&(o=(t,n)=>{if(!(e()instanceof window.Storage))return()=>{};let r=r=>{r.storageArea===e()&&r.key===t&&n(r.newValue)};return window.addEventListener(`storage`,r),()=>{window.removeEventListener(`storage`,r)}}),o&&(i.subscribe=a(o)),i}var re=O();function ie(e,t,r=re,i){let a=i?.getOnInit,o=n(a?r.getItem(e,t):t);return o.onMount=n=>(n(r.getItem(e,t)),r.subscribe?.call(r,e,n,t)),n(e=>e(o),(n,i,a)=>{let s=typeof a==`function`?a(n(o)):a;return s===g?(i(o,t),r.removeItem(e)):D(s)?s.then(t=>(i(o,t),r.setItem(e,t))):(i(o,s),r.setItem(e,s))})}function ae(){let e=i.get(A);return m(e,`internal-error: initial mode not found`),l(e!==`present`,`internal-error: initial mode cannot be 'present'`),e}function oe(e){return e===`read`||e===`home`||e===`gallery`?e:e===`edit`?`present`:`edit`}async function se(e){let t=i.get(k);if(t.mode!==`edit`){await e();return}i.set(k,{...t,mode:`present`});try{await new Promise(e=>setTimeout(e,100)),await new Promise(e=>requestAnimationFrame(e)),await new Promise(e=>requestAnimationFrame(e)),await e()}finally{i.set(k,t)}}var k=n({mode:s()?`read`:`not-set`,cellAnchor:null}),A=n(void 0);function j(){let e=i.get(A);return e!==`home`&&e!==`gallery`}var M=n(!1);function N(){let e=(0,p.c)(1),{mode:t}=r(k),n=r(M),i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=new URLSearchParams(window.location.search).get(u.kiosk),e[0]=i):i=e[0],t!==`read`&&!n&&i!==`true`}var P={NOT_STARTED:`NOT_STARTED`,CONNECTING:`CONNECTING`,OPEN:`OPEN`,CLOSING:`CLOSING`,CLOSED:`CLOSED`},F={KERNEL_DISCONNECTED:`KERNEL_DISCONNECTED`,KERNEL_STARTUP_ERROR:`KERNEL_STARTUP_ERROR`},I=n({state:P.NOT_STARTED}),L=_(null,(e,t)=>t===null?null:{phase:t.phase,logs:t.log_mode===`append`&&e?.phase===t.phase?e.logs+t.logs:t.logs});function R(){return e(I,e=>e.state===P.OPEN)}function z(){return j()?R():Promise.resolve()}var B=n(e=>e(I).state===P.CONNECTING),V=n(e=>e(I).state===P.OPEN),H=n(e=>{let t=e(I);return t.state===P.OPEN||t.state===P.NOT_STARTED});n(e=>e(I).state===P.CLOSED);var U=n(e=>e(I).state===P.NOT_STARTED);function W(e){return e===P.CONNECTING}function ce(e){return e===P.OPEN}function G(e){return e===P.CLOSING}function K(e){return e===P.NOT_STARTED}function le(e){return e===P.CLOSED||e===P.CLOSING||e===P.CONNECTING}function ue(e){switch(e){case P.CLOSED:return`App disconnected`;case P.CONNECTING:return`Connecting to a runtime ...`;case P.CLOSING:return`App disconnecting...`;case P.OPEN:return``;case P.NOT_STARTED:return`Click to connect to a runtime`;default:return``}}function de(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;for(let t of Object.values(e))if(typeof t!=`string`)return!1;return!0}function fe(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=e;return!(!de(t.files)||t.modelNotifications!==void 0&&!Array.isArray(t.modelNotifications))}function q(){let e=typeof window>`u`?void 0:window.__MARIMO_STATIC__;return fe(e)?e:void 0}function J(){return q()!==void 0}function pe(){let e=q();return l(e!==void 0,`Not a static notebook`),e.files}function me(){return q()?.modelNotifications}var he=class{initialHealthyCheck=new d;config;lazy;constructor(e,t=!1){this.config=e,this.lazy=t;try{new URL(this.config.url)}catch(e){throw Error(`Invalid runtime URL: ${this.config.url}. ${e instanceof Error?e.message:`Unknown error`}`,{cause:e})}this.lazy||this.init()}get isLazy(){return this.lazy}get httpURL(){return new URL(this.config.url)}get isSameOrigin(){return this.httpURL.origin===window.location.origin}get isServerless(){return h()||s()||J()}formatHttpURL({path:e=``,searchParams:t,restrictToKnownQueryParams:n=!0}){let r=this.httpURL,i=new URLSearchParams(window.location.search);if(t)for(let[e,n]of t.entries())r.searchParams.set(e,n);for(let[e,t]of i.entries())n&&!Object.values(u).includes(e)||r.searchParams.set(e,t);return r.pathname=`${r.pathname.replace(/\/$/,``)}/${e.replace(/^\//,``)}`,r.hash=``,r}appendCrossOriginAuth(e){return!this.isSameOrigin&&this.config.authToken&&e.searchParams.set(u.accessToken,this.config.authToken),e}formatNavigableHttpURL(e,t){let n=this.formatHttpURL({path:e,searchParams:t});return n.searchParams.delete(u.accessToken),this.appendCrossOriginAuth(n)}formatWsURL(e,t){let n=this.formatHttpURL({path:e,searchParams:t,restrictToKnownQueryParams:!1});return ge(this.appendCrossOriginAuth(n).toString())}getSessionSearchParams(e){let t=new URL(this.config.url),n=new URLSearchParams(t.search);return new URLSearchParams(window.location.search).forEach((e,t)=>{n.has(t)||n.set(t,e)}),n.set(u.sessionId,e),n}getWsURL(e){return this.formatWsURL(`/ws`,this.getSessionSearchParams(e))}getSseURL(e){let t=this.formatHttpURL({path:`/sse`,searchParams:this.getSessionSearchParams(e),restrictToKnownQueryParams:!1});return t.searchParams.delete(u.accessToken),t}getWsSyncURL(e){return this.formatWsURL(`/ws_sync`,this.getSessionSearchParams(e))}getTerminalWsURL(e){let t=this.formatWsURL(`/terminal/ws`);return e&&(t.searchParams.set(`rows`,String(e.rows)),t.searchParams.set(`cols`,String(e.cols))),t}getLSPURL(e){if(e===`copilot`){let t=this.formatWsURL(`/lsp/${e}`),n=t.searchParams.get(u.accessToken);return t.search=``,n&&t.searchParams.set(u.accessToken,n),t}return this.formatWsURL(`/lsp/${e}`)}getAiURL(e){return this.formatHttpURL({path:`/api/ai/${e}`})}healthURL(){return this.formatHttpURL({path:`/health`})}async fetchHealth(){try{return await fetch(this.healthURL().toString())}catch(e){return c.error(`Failed to check health: ${e instanceof Error?e.message:`Unknown error`}`,{cause:e}),null}}async reconcileFromHealth(){if(this.isServerless)return!0;let e=await this.fetchHealth();if(!e)return!1;if(e.redirected){c.debug(`Runtime redirected to ${e.url}`);let t=new URL(e.url);t.pathname=t.pathname.replace(/\/health$/,``),this.config.url=t.toString()}return e.ok&&this.setDOMBaseUri(this.config.url),e.ok}async probeHealth(){return this.isServerless?!0:(await this.fetchHealth())?.ok??!1}setDOMBaseUri(e){e=e.split(`?`,1)[0],e.endsWith(`/`)||(e+=`/`);let t=document.querySelector(`base`);t?t.setAttribute(`href`,e):(t=document.createElement(`base`),t.setAttribute(`href`,e),document.head.append(t))}async init(e){c.debug(`Initializing runtime...`);let t=0;for(;!await this.reconcileFromHealth();){if(t>=25){c.error(`Failed to connect after 25 retries`),this.initialHealthyCheck.reject(Error(`Failed to connect after 25 retries`));return}if(!e?.disableRetryDelay){let e=Math.min(100*1.2**t,2e3);await new Promise(t=>setTimeout(t,e))}t++}c.debug(`Runtime is healthy`),this.initialHealthyCheck.resolve()}async waitForHealthy(){return this.initialHealthyCheck.promise}headers(){let e={"Marimo-Session-Id":f(),"Marimo-Server-Token":this.config.serverToken??``,"x-runtime-url":this.httpURL.toString()};return this.config.authToken&&(e.Authorization=`Bearer ${this.config.authToken}`),e}sessionHeaders(){return{"Marimo-Session-Id":f()}}};function ge(e){if(!e.startsWith(`http`)){c.warn(`URL must start with http: ${e}`);let t=new URL(e);return t.protocol=`ws`,t}return new URL(e.replace(/^http/,`ws`))}function _e(){let e=new URL(document.baseURI);return e.search=``,e.hash=``,e.toString()}var Y={lazy:!0,url:_e()},X=n(Y),Z=n(e=>{let t=e(X);return new he(t,t.lazy)});function Q(){return r(Z)}function ve(){let e=(0,p.c)(4),n=Q(),[r,i]=t(I),o;return e[0]!==r.state||e[1]!==n||e[2]!==i?(o=async()=>{K(r.state)?(i({state:P.CONNECTING}),await n.init()):c.log(`Runtime already started or starting...`)},e[0]=r.state,e[1]=n,e[2]=i,e[3]=o):o=e[3],a(o)}function $(){return i.get(Z)}function ye(e){if(e.startsWith(`http`))return new URL(e);let t=$().httpURL.toString();return t.startsWith(`blob:`)&&(t=t.replace(`blob:`,``)),new URL(e,t)}export{oe as A,m as B,z as C,A as D,ae as E,ie as F,O as I,x as L,k as M,v as N,M as O,_ as P,E as R,R as S,P as T,I as _,ve as a,U as b,pe as c,G as d,ce as f,H as g,K as h,X as i,N as j,se as k,J as l,le as m,ye as n,Q as o,W as p,$ as r,me as s,Y as t,ue as u,V as v,F as w,L as x,B as y,h as z};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-CUdNIagt.js";import{t as n}from"./react-dom-CKsE8sC1.js";import{G as r,U as i,W as a}from"./index-CgQsZfww.js";import{a as o,i as s,n as c,r as l}from"./glide-data-editor-DPMjaN4R.js";var u=e(t(),1),d=e(n(),1),ee=o(`div`)({name:`DataGridOverlayEditorStyle`,class:`gdg-d19meir1`,propsAsIs:!1,vars:{"d19meir1-0":[e=>e.targetY,`px`],"d19meir1-1":[e=>e.targetX,`px`],"d19meir1-2":[e=>e.targetWidth,`px`],"d19meir1-3":[e=>e.targetHeight,`px`],"d19meir1-4":[e=>e.targetY+10,`px`],"d19meir1-5":[e=>Math.max(0,(e.targetHeight-28)/2),`px`]}});function f(){let[e,t]=u.useState();return[e??void 0,t]}function p(){let[e,t]=f(),[n,r]=u.useState(0),[i,a]=u.useState(!0);return u.useLayoutEffect(()=>{if(e===void 0||!(`IntersectionObserver`in window))return;let t=new IntersectionObserver(e=>{e.length!==0&&a(e[0].isIntersecting)},{threshold:1});return t.observe(e),()=>t.disconnect()},[e]),u.useEffect(()=>{if(i||e===void 0)return;let t,n=()=>{let{right:i}=e.getBoundingClientRect();r(e=>Math.min(e+window.innerWidth-i-10,0)),t=requestAnimationFrame(n)};return t=requestAnimationFrame(n),()=>{t!==void 0&&cancelAnimationFrame(t)}},[e,i]),{ref:t,style:u.useMemo(()=>({transform:`translateX(${n}px)`}),[n])}}var m=e=>{let{target:t,content:n,onFinishEditing:o,forceEditMode:f,initialValue:m,imageEditorOverride:h,markdownDivCreateNode:g,highlight:_,className:v,theme:y,id:b,cell:x,bloom:S,portalElementRef:C,validateCell:w,getCellRenderer:T,provideEditor:E,isOutsideClick:te,customEventTarget:D,activation:O}=e,[k,A]=u.useState(f?n:void 0),j=u.useRef(k??n);j.current=k??n;let[M,N]=u.useState(()=>w===void 0||!(i(n)&&w?.(x,n,j.current)===!1)),P=u.useCallback((e,t)=>{o(M?e:void 0,t)},[M,o]),F=u.useCallback(e=>{if(w!==void 0&&e!==void 0&&i(e)){let t=w(x,e,j.current);t===!1?N(!1):(typeof t==`object`&&(e=t),N(!0))}A(e)},[x,w]),I=u.useRef(!1),L=u.useRef(void 0),R=u.useCallback(()=>{P(k,[0,0]),I.current=!0},[k,P]),z=u.useCallback((e,t)=>{P(e,t??L.current??[0,0]),I.current=!0},[P]),B=u.useCallback(async e=>{let t=!1;e.key===`Escape`?(e.stopPropagation(),e.preventDefault(),L.current=[0,0]):e.key===`Enter`&&!e.shiftKey?(e.stopPropagation(),e.preventDefault(),L.current=[0,1],t=!0):e.key===`Tab`&&(e.stopPropagation(),e.preventDefault(),L.current=[e.shiftKey?-1:1,0],t=!0),window.setTimeout(()=>{!I.current&&L.current!==void 0&&(P(t?k:void 0,L.current),I.current=!0)},0)},[P,k]),V=k??n,[H,U]=u.useMemo(()=>{if(a(n))return[];let e={...n,location:x,activation:O},t=E?.(e);return t===void 0?[T(n)?.provideEditor?.(e),!1]:[t,!1]},[x,n,T,E,O]),{ref:W,style:G}=p(),K=!0,q,J=!0,Y;if(H!==void 0){K=H.disablePadding!==!0,J=H.disableStyling!==!0;let e=r(H);e&&(Y=H.styleOverride);let n=e?H.editor:H;q=u.createElement(n,{portalElementRef:C,isHighlighted:_,activation:O,onChange:F,value:V,initialValue:m,onFinishedEditing:z,validatedSelection:i(V)?V.selectionRange:void 0,forceEditMode:f,target:t,imageEditorOverride:h,markdownDivCreateNode:g,isValid:M,theme:y})}Y={...Y,...G};let X=C?.current??document.getElementById(`portal`);if(X===null)return console.error('Cannot open Data Grid overlay editor, because portal not found. Please, either provide a portalElementRef or add `<div id="portal" />` as the last child of your `<body>`.'),null;let Z=J?`gdg-style`:`gdg-unstyle`;M||(Z+=` gdg-invalid`),K&&(Z+=` gdg-pad`);let Q=S?.[0]??1,$=S?.[1]??1;return(0,d.createPortal)(u.createElement(l.Provider,{value:y},u.createElement(c,{style:s(y),className:v,onClickOutside:R,isOutsideClick:te,customEventTarget:D},u.createElement(ee,{ref:W,id:b,className:Z,style:Y,as:U===!0?`label`:void 0,targetX:t.x-Q,targetY:t.y-$,targetWidth:t.width+Q*2,targetHeight:t.height+$*2},u.createElement(`div`,{className:`gdg-clip-region`,onKeyDown:B},q)))),X)};export{m as default};