@marimo-team/frontend 0.25.1-dev7 → 0.25.1

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 (343) hide show
  1. package/dist/assets/{ConnectedDataExplorerComponent-DeqCS430.js → ConnectedDataExplorerComponent-DJ5jwKfp.js} +1 -1
  2. package/dist/assets/{ErrorBoundary-DDm0F3Ge.js → ErrorBoundary-BeE1cdgM.js} +2 -2
  3. package/dist/assets/{ImageComparisonComponent-DLxkuRy3.js → ImageComparisonComponent-pCLPT6RA.js} +1 -1
  4. package/dist/assets/{LazyAnyLanguageCodeMirror-DPoyi1KJ.js → LazyAnyLanguageCodeMirror-B_IYTCX5.js} +2 -2
  5. package/dist/assets/{RunButton-1O-85ifv.js → RunButton-C2kFUhyO.js} +8 -8
  6. package/dist/assets/{abnfDiagram-VCTEODGH-DhJEqQ9k.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-nJz0jCo0.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-CxgTzMTD.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-BwF4-SE1.js → architectureDiagram-5GKGNRK7-7iukRoC9.js} +1 -1
  13. package/dist/assets/{blockDiagram-I7D4REHJ-B7xaFbfk.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-Bd7XcHQd.js → cache-panel-C0oB1kE2.js} +1 -1
  16. package/dist/assets/{cells-Cu3p4E4U.js → cells-CzugpTQu.js} +4 -4
  17. package/dist/assets/channel-CGdeorQk.js +1 -0
  18. package/dist/assets/{chat-display-CKr8MVOE.js → chat-display-DevO4F8W.js} +1 -1
  19. package/dist/assets/chat-panel-BGw0bqDk.js +4 -0
  20. package/dist/assets/{chat-ui-BH1aZhD7.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-Cypkx_kh.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-V37g5TGQ.js → chunk-SHT3W25Y-BtLGdeDB.js} +1 -1
  34. package/dist/assets/{chunk-SVP7TREG-CTD0ZEkK.js → chunk-SVP7TREG-B0UfxhUP.js} +1 -1
  35. package/dist/assets/{chunk-TICWLB2K-BmUJmjwl.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-7811giS9.js → code-visibility-BFNYI7hr.js} +1 -1
  39. package/dist/assets/{command-palette-ZCeZiFkl.js → command-palette-DN4JoOLD.js} +1 -1
  40. package/dist/assets/{common-BdqirnCM.js → common-DUCPhoyP.js} +1 -1
  41. package/dist/assets/{components-BFIaoBwJ.js → components-CK7CeYlo.js} +1 -1
  42. package/dist/assets/{components-CzFNo5Dk.js → components-DAmFBASm.js} +1 -1
  43. package/dist/assets/{cynefinDiagram-5FMLGOSQ-CTXT8KNm.js → cynefinDiagram-5FMLGOSQ-BARZRQBb.js} +1 -1
  44. package/dist/assets/{dagre-B5pirN9r.js → dagre-DVyyr7Cb.js} +1 -1
  45. package/dist/assets/{dagre-GXQ25YYZ-6LiieueL.js → dagre-GXQ25YYZ-79s0lOP0.js} +1 -1
  46. package/dist/assets/data-grid-overlay-editor-DPfnIudL.js +1 -0
  47. package/dist/assets/{dependency-graph-panel-CHbDGV22.js → dependency-graph-panel-BN4CLayU.js} +3 -3
  48. package/dist/assets/{diagram-S7CK7UJ4-BZL5Ql7I.js → diagram-S7CK7UJ4-BCviGhvd.js} +1 -1
  49. package/dist/assets/{diagram-UQ7AKVKN-AhAtqSJG.js → diagram-UQ7AKVKN-Ds-BT46T.js} +1 -1
  50. package/dist/assets/{diagram-VSXAHHWV-DOQllF_r.js → diagram-VSXAHHWV-CK4GkM-q.js} +1 -1
  51. package/dist/assets/{diagram-VX7I27RA-COX-CxL0.js → diagram-VX7I27RA-BtL2eh0t.js} +1 -1
  52. package/dist/assets/{diagram-Z3DM3KII-DXw7fg_D.js → diagram-Z3DM3KII-C6SmbLBS.js} +1 -1
  53. package/dist/assets/{dist-0HQ0BMF5.js → dist-CQvJDryh.js} +1 -1
  54. package/dist/assets/{documentation-panel-DUlFjJdz.js → documentation-panel-CzRbXV5u.js} +1 -1
  55. package/dist/assets/{ebnfDiagram-PWID7BFC-Ds-CB5Z_.js → ebnfDiagram-PWID7BFC-D_JU4cMQ.js} +1 -1
  56. package/dist/assets/edit-page-jGNYBqQo.js +174 -0
  57. package/dist/assets/{erDiagram-RLTQ6QDP-RdxnwvNA.js → erDiagram-RLTQ6QDP-Z9MJ6X-r.js} +1 -1
  58. package/dist/assets/{error-entries-BUsiy4Fq.js → error-entries-CDSsy76p.js} +1 -1
  59. package/dist/assets/{error-panel-DmaQ2MSS.js → error-panel-ABvjFG3p.js} +1 -1
  60. package/dist/assets/{feedback-button-DJMAFZ1t.js → feedback-button-CZhLiwkO.js} +2 -2
  61. package/dist/assets/{file-explorer-panel-BZ4A-j8a.js → file-explorer-panel-DTiEpmVE.js} +1 -1
  62. package/dist/assets/file-name-input-C1C8xrjA.js +3 -0
  63. package/dist/assets/filename-fxG7K_MU.js +1 -0
  64. package/dist/assets/flowDiagram-HODETNUW-ncLciK2K.js +1 -0
  65. package/dist/assets/{gallery-page-DFoyByKn.js → gallery-page-Moi4ZdJ0.js} +1 -1
  66. package/dist/assets/{ganttDiagram-EL5Y4UJY-d9Qqbnau.js → ganttDiagram-EL5Y4UJY-Cgy11k0G.js} +1 -1
  67. package/dist/assets/{gitGraphDiagram-WWUBYQGX-DBunV_fz.js → gitGraphDiagram-WWUBYQGX-CVH8fay_.js} +1 -1
  68. package/dist/assets/glide-data-editor-CbsCWu-K.js +131 -0
  69. package/dist/assets/{graphlib-CWJvl2Lb.js → graphlib-3maKwbRO.js} +1 -1
  70. package/dist/assets/has-cJsIKK9t.js +1 -0
  71. package/dist/assets/{home-page-D_6gPong.js → home-page-UAgVOkCZ.js} +2 -2
  72. package/dist/assets/index--sT8xf-8.css +2 -0
  73. package/dist/assets/index-DafnX1Xx.js +62 -0
  74. package/dist/assets/{infoDiagram-27XIBGKW-B0jMwBBO.js → infoDiagram-27XIBGKW-Dk8U81nJ.js} +1 -1
  75. package/dist/assets/{ishikawaDiagram-5VMMS53U-4eji-_U4.js → ishikawaDiagram-5VMMS53U-CzHQlMUQ.js} +1 -1
  76. package/dist/assets/{journeyDiagram-3NMN7TZE-Cp4mxQrE.js → journeyDiagram-3NMN7TZE-DRc8ACzh.js} +1 -1
  77. package/dist/assets/{kanban-definition-UXKFOSKX-BYgV-VZ3.js → kanban-definition-UXKFOSKX-CVyVYiI6.js} +1 -1
  78. package/dist/assets/katex-DkE0ukCy.js +257 -0
  79. package/dist/assets/{logs-panel-CvwX6Xnb.js → logs-panel-Bz5ysVX4.js} +1 -1
  80. package/dist/assets/{mermaid-BmcDudwo.js → mermaid-D_jPUVqz.js} +4 -4
  81. package/dist/assets/mhchem-CmzEtQj8.js +1 -0
  82. package/dist/assets/{mindmap-definition-YA3MSWOX-Cz5xXQnv.js → mindmap-definition-YA3MSWOX-D5t6Aq5Z.js} +1 -1
  83. package/dist/assets/{number-overlay-editor-Jcf1i5Xj.js → number-overlay-editor-FAD8sjFU.js} +1 -1
  84. package/dist/assets/{outline-panel-4icYQ4vr.js → outline-panel-85oiQ0XX.js} +1 -1
  85. package/dist/assets/packages-panel-ClKIaP5S.js +1 -0
  86. package/dist/assets/{panels-CM1tqwz-.js → panels-B48zp96D.js} +9 -9
  87. package/dist/assets/{pegDiagram-XKGWAZYB-CCOAs3UH.js → pegDiagram-XKGWAZYB-BTkTm4ej.js} +1 -1
  88. package/dist/assets/{pieDiagram-E7YTZNPT-BBxiPx1C.js → pieDiagram-E7YTZNPT-Bq6X88M1.js} +1 -1
  89. package/dist/assets/{process-output-CXjf0zEE.js → process-output-Cg2ta3vY.js} +1 -1
  90. package/dist/assets/{quadrantDiagram-AXDQQJYC-BE-xlTLH.js → quadrantDiagram-AXDQQJYC-D_wrOwLk.js} +1 -1
  91. package/dist/assets/{railroadDiagram-O6MQD6OU-BRv2wsAz.js → railroadDiagram-O6MQD6OU-fv8HXW_g.js} +1 -1
  92. package/dist/assets/{requirementDiagram-BXWQKSXE-HAdL90iQ.js → requirementDiagram-BXWQKSXE-DDOOMUfC.js} +1 -1
  93. package/dist/assets/{reveal-component-CiQEczuZ.js → reveal-component-CR43gpTZ.js} +3 -3
  94. package/dist/assets/run-page-NR_KFWk8.js +1 -0
  95. package/dist/assets/{sankeyDiagram-P5KCCOFB-BWLQCyjK.js → sankeyDiagram-P5KCCOFB-CvvUY6tS.js} +1 -1
  96. package/dist/assets/{scratchpad-panel-Btg5EoIW.js → scratchpad-panel-DHc-oVb1.js} +1 -1
  97. package/dist/assets/{secrets-panel-C-17vrf1.js → secrets-panel-C-65ZjnM.js} +1 -1
  98. package/dist/assets/{sequenceDiagram-WJ2MYXX4-Bs66qtoH.js → sequenceDiagram-WJ2MYXX4-DdpBhQaS.js} +1 -1
  99. package/dist/assets/session-panel-DiwQqIbt.js +1 -0
  100. package/dist/assets/{SelectionIndicator-DLJBcP4e.js → shell-BSnvn9t7.js} +1 -1
  101. package/dist/assets/snippets-panel-BLmXrneD.js +1 -0
  102. package/dist/assets/{stateDiagram-D77RDMKH-CZZcOZaL.js → stateDiagram-D77RDMKH-D3p19fac.js} +1 -1
  103. package/dist/assets/stateDiagram-v2-MP3YSRHH-CplsDaDl.js +1 -0
  104. package/dist/assets/{swimlanes-42K2YHIH-DmvAwXeY.js → swimlanes-42K2YHIH-CLxCSvU4.js} +1 -1
  105. package/dist/assets/swimlanesDiagram-VR7AAH4N-DPoIFx8T.js +8 -0
  106. package/dist/assets/{swiper-component-C-iHKt3a.js → swiper-component-rqJChT_P.js} +1 -1
  107. package/dist/assets/{terminal-BJXvwDtX.js → terminal-CY4h1UmO.js} +1 -1
  108. package/dist/assets/{timeline-definition-24CTP7MA-DMBmrnDz.js → timeline-definition-24CTP7MA-Cw2PY--x.js} +1 -1
  109. package/dist/assets/tooltip-PLkI_UfK.js +61 -0
  110. package/dist/assets/{tracing-C1gfnMTz.js → tracing-Q8NAdlrA.js} +1 -1
  111. package/dist/assets/tracing-panel-Ci4kY4dr.js +2 -0
  112. package/dist/assets/{useCellActionButton-ChAk7KSd.js → useCellActionButton-DpYtVfFe.js} +1 -1
  113. package/dist/assets/{vega-component-Dyn2ovlw.js → vega-component-BpoSew4K.js} +1 -1
  114. package/dist/assets/{vega-embed-container-SaZMhvDB.js → vega-embed-container-BOJG8mCA.js} +1 -1
  115. package/dist/assets/{vennDiagram-4TSXK5OY-CU4ZQxbP.js → vennDiagram-4TSXK5OY-D8bN6lVl.js} +1 -1
  116. package/dist/assets/{wardleyDiagram-VM6X3IG4-CqJhzIbP.js → wardleyDiagram-VM6X3IG4-CbZdo0SA.js} +1 -1
  117. package/dist/assets/{write-secret-modal-CBUZw27N.js → write-secret-modal-BiG2tahJ.js} +1 -1
  118. package/dist/assets/{xychartDiagram-S5SC5T6Z-CS6EJwUz.js → xychartDiagram-S5SC5T6Z-DUUQ9tau.js} +1 -1
  119. package/dist/index.html +8 -7
  120. package/package.json +1 -2
  121. package/src/__mocks__/common.ts +3 -3
  122. package/src/__tests__/CellStatus.test.tsx +1 -1
  123. package/src/__tests__/setup.ts +7 -7
  124. package/src/components/app-config/ai-config.tsx +2 -0
  125. package/src/components/app-config/optional-features.tsx +1 -1
  126. package/src/components/chat/chat-panel.tsx +19 -8
  127. package/src/components/data-table/TableTopBar.tsx +2 -2
  128. package/src/components/data-table/__tests__/export-actions.test.tsx +662 -0
  129. package/src/components/data-table/charts/__tests__/chart-panel.test.tsx +286 -0
  130. package/src/components/data-table/charts/charts.tsx +26 -13
  131. package/src/components/data-table/column-summary/chart-spec-model.tsx +4 -4
  132. package/src/components/data-table/data-table.tsx +1 -1
  133. package/src/components/data-table/export-actions.tsx +642 -176
  134. package/src/components/data-table/schemas.ts +25 -3
  135. package/src/components/dependency-graph/elements.ts +2 -2
  136. package/src/components/editor/__tests__/package-alert.test.tsx +140 -0
  137. package/src/components/editor/actions/__tests__/pair-with-agent.test.tsx +107 -0
  138. package/src/components/editor/actions/pair-with-agent.tsx +119 -0
  139. package/src/components/editor/actions/useNotebookActions.tsx +2 -1
  140. package/src/components/editor/ai/add-cell-with-ai.tsx +2 -0
  141. package/src/components/editor/ai/staged-cell-submission.ts +2 -2
  142. package/src/components/editor/ai/transport/chat-transport.tsx +1 -1
  143. package/src/components/editor/chrome/components/contribute-snippet-button.tsx +6 -1
  144. package/src/components/editor/connections/database/as-code.ts +44 -44
  145. package/src/components/editor/connections/storage/as-code.ts +3 -3
  146. package/src/components/editor/file-tree/requesting-tree.tsx +16 -13
  147. package/src/components/editor/navigation/clipboard.ts +2 -2
  148. package/src/components/editor/notebook-cell.tsx +2 -2
  149. package/src/components/editor/output/MarimoTracebackOutput.tsx +1 -1
  150. package/src/components/editor/output/VideoOutput.tsx +1 -1
  151. package/src/components/editor/output/ansi-reduce.ts +21 -17
  152. package/src/components/editor/output/console/ConsoleOutput.tsx +3 -3
  153. package/src/components/editor/output/console/__tests__/ConsoleOutput.test.tsx +59 -0
  154. package/src/components/editor/output/console/text-rendering.tsx +3 -1
  155. package/src/components/editor/package-alert.tsx +20 -7
  156. package/src/components/home/components.tsx +1 -0
  157. package/src/components/markdown/markdown-renderer.css +1 -1
  158. package/src/components/pages/run-page.tsx +1 -0
  159. package/src/components/slides/__tests__/minimap-actions.test.tsx +7 -7
  160. package/src/components/slides/__tests__/minimap.test.ts +12 -12
  161. package/src/components/slides/__tests__/slide-scroll-hint.test.tsx +8 -8
  162. package/src/components/static-html/__tests__/share-modal.test.tsx +154 -0
  163. package/src/components/static-html/__tests__/stage-for-publish.test.ts +111 -0
  164. package/src/components/static-html/share-modal.tsx +114 -144
  165. package/src/components/static-html/stage-for-publish.ts +56 -0
  166. package/src/components/static-html/static-banner.tsx +2 -2
  167. package/src/components/ui/links.tsx +6 -1
  168. package/src/components/ui/typography.tsx +16 -8
  169. package/src/core/ai/context/__tests__/registry.test.ts +31 -28
  170. package/src/core/ai/context/providers/cell-output.ts +8 -8
  171. package/src/core/ai/context/providers/datasource.ts +10 -7
  172. package/src/core/ai/context/providers/error.ts +7 -7
  173. package/src/core/ai/context/providers/file.ts +8 -8
  174. package/src/core/ai/context/providers/tables.ts +7 -7
  175. package/src/core/ai/context/providers/variable.ts +7 -7
  176. package/src/core/ai/context/registry.ts +18 -18
  177. package/src/core/ai/ids/ids.ts +5 -5
  178. package/src/core/ai/model-registry.ts +12 -9
  179. package/src/core/ai/staged-cells.ts +6 -6
  180. package/src/core/ai/tools/base.ts +6 -6
  181. package/src/core/ai/tools/edit-notebook-tool.ts +6 -6
  182. package/src/core/ai/tools/registry.ts +4 -4
  183. package/src/core/ai/tools/run-cells-tool.ts +7 -7
  184. package/src/core/ai/tools/sample-tool.ts +6 -6
  185. package/src/core/cells/__tests__/cells.test.ts +27 -0
  186. package/src/core/cells/cells.ts +2 -1
  187. package/src/core/codemirror/cells/debugger-decorations.ts +13 -7
  188. package/src/core/codemirror/cells/line-timing-decorations.ts +9 -9
  189. package/src/core/codemirror/cells/traceback-decorations.ts +7 -4
  190. package/src/core/codemirror/code-lens/extension.ts +13 -13
  191. package/src/core/codemirror/copilot/__tests__/language-server.test.ts +6 -6
  192. package/src/core/codemirror/copilot/__tests__/transport.test.ts +12 -12
  193. package/src/core/codemirror/copilot/language-server.ts +13 -13
  194. package/src/core/codemirror/copilot/transport.ts +1 -1
  195. package/src/core/codemirror/find-replace/search-highlight.ts +5 -5
  196. package/src/core/codemirror/go-to-definition/underline.ts +3 -3
  197. package/src/core/codemirror/keymaps/vim.ts +3 -3
  198. package/src/core/codemirror/language/languages/markdown.ts +8 -8
  199. package/src/core/codemirror/language/languages/python.ts +7 -7
  200. package/src/core/codemirror/language/languages/sql/completion-builder.ts +5 -5
  201. package/src/core/codemirror/language/languages/sql/completion-store.ts +4 -4
  202. package/src/core/codemirror/language/languages/sql/sql.ts +21 -21
  203. package/src/core/codemirror/lsp/__tests__/transports.test.ts +10 -10
  204. package/src/core/codemirror/lsp/federated-lsp.ts +29 -27
  205. package/src/core/codemirror/lsp/notebook-lsp.ts +21 -21
  206. package/src/core/codemirror/misc/__tests__/dnd.test.ts +10 -10
  207. package/src/core/codemirror/misc/__tests__/paste.test.ts +7 -4
  208. package/src/core/codemirror/reactive-references/extension.ts +3 -3
  209. package/src/core/codemirror/rtc/loro/awareness.ts +12 -12
  210. package/src/core/codemirror/rtc/loro/sync.ts +5 -5
  211. package/src/core/codemirror/vim/cursor-visibility.ts +3 -3
  212. package/src/core/dom/ui-element.ts +5 -5
  213. package/src/core/dom/uiregistry.ts +10 -10
  214. package/src/core/hotkeys/hotkeys.ts +9 -9
  215. package/src/core/islands/__tests__/bridge.test.ts +4 -4
  216. package/src/core/islands/__tests__/test-utils.tsx +4 -4
  217. package/src/core/islands/bridge.ts +85 -82
  218. package/src/core/islands/components/web-components.tsx +7 -7
  219. package/src/core/islands/worker/__tests__/controller.test.ts +1 -1
  220. package/src/core/islands/worker/controller.ts +6 -3
  221. package/src/core/islands/worker-factory.ts +2 -2
  222. package/src/core/kernel/RuntimeState.ts +4 -4
  223. package/src/core/lsp/__tests__/transport.test.ts +19 -19
  224. package/src/core/lsp/transport.ts +5 -5
  225. package/src/core/network/CachingRequestRegistry.ts +2 -2
  226. package/src/core/network/DeferredRequestRegistry.ts +4 -4
  227. package/src/core/network/__tests__/export-asset-url.test.ts +45 -0
  228. package/src/core/network/export-asset-url.ts +19 -0
  229. package/src/core/network/requests-network.ts +2 -7
  230. package/src/core/runtime/runtime.ts +25 -20
  231. package/src/core/static/virtual-file-tracker.ts +5 -5
  232. package/src/core/wasm/__tests__/bridge.test.ts +2 -2
  233. package/src/core/wasm/bridge.ts +132 -133
  234. package/src/core/wasm/router.ts +5 -5
  235. package/src/core/wasm/store.ts +4 -4
  236. package/src/core/wasm/worker/bootstrap.ts +8 -5
  237. package/src/core/wasm/worker/message-buffer.ts +3 -3
  238. package/src/core/websocket/transports/__tests__/ws.test.ts +8 -8
  239. package/src/core/websocket/transports/basic.ts +15 -8
  240. package/src/core/websocket/transports/sse.ts +7 -7
  241. package/src/core/websocket/transports/transport.ts +3 -3
  242. package/src/core/websocket/transports/ws.ts +9 -7
  243. package/src/css/globals.css +18 -21
  244. package/src/css/katex.min.css +260 -241
  245. package/src/hooks/__tests__/useOverflowDetection.test.tsx +5 -5
  246. package/src/hooks/__tests__/useResizeObserver.test.tsx +12 -12
  247. package/src/plugins/core/registerReactComponent.tsx +5 -5
  248. package/src/plugins/core/sidebar-element.tsx +2 -2
  249. package/src/plugins/impl/ButtonPlugin.tsx +3 -3
  250. package/src/plugins/impl/CheckboxPlugin.tsx +3 -3
  251. package/src/plugins/impl/CodeEditorPlugin.tsx +3 -3
  252. package/src/plugins/impl/DatePickerPlugin.tsx +3 -3
  253. package/src/plugins/impl/DateRangePlugin.tsx +3 -3
  254. package/src/plugins/impl/DateTimePickerPlugin.tsx +3 -3
  255. package/src/plugins/impl/DictPlugin.tsx +3 -3
  256. package/src/plugins/impl/DropdownPlugin.tsx +3 -3
  257. package/src/plugins/impl/FileUploadPlugin.tsx +3 -3
  258. package/src/plugins/impl/MatrixPlugin.tsx +4 -4
  259. package/src/plugins/impl/MicrophonePlugin.tsx +3 -3
  260. package/src/plugins/impl/MultiselectPlugin.tsx +3 -3
  261. package/src/plugins/impl/NumberPlugin.tsx +3 -3
  262. package/src/plugins/impl/RadioPlugin.tsx +9 -5
  263. package/src/plugins/impl/RangeSliderPlugin.tsx +3 -3
  264. package/src/plugins/impl/RefreshPlugin.tsx +3 -3
  265. package/src/plugins/impl/SliderPlugin.tsx +3 -3
  266. package/src/plugins/impl/SwitchPlugin.tsx +3 -3
  267. package/src/plugins/impl/TabsPlugin.tsx +3 -3
  268. package/src/plugins/impl/TextAreaPlugin.tsx +3 -3
  269. package/src/plugins/impl/TextInputPlugin.tsx +3 -3
  270. package/src/plugins/impl/__tests__/MatrixPlugin.test.tsx +2 -2
  271. package/src/plugins/impl/anywidget/model.ts +10 -10
  272. package/src/plugins/impl/anywidget/registry.ts +12 -9
  273. package/src/plugins/impl/anywidget/runtime.ts +11 -9
  274. package/src/plugins/impl/anywidget/widget-binding.ts +6 -6
  275. package/src/plugins/impl/image-comparison/ImageComparisonComponent.tsx +7 -6
  276. package/src/plugins/impl/matplotlib/MatplotlibPlugin.tsx +3 -3
  277. package/src/plugins/impl/matplotlib/__tests__/matplotlib-renderer.test.ts +2 -2
  278. package/src/plugins/impl/matplotlib/matplotlib-renderer.ts +2 -2
  279. package/src/plugins/impl/mpl-interactive/mpl-websocket-shim.ts +10 -10
  280. package/src/plugins/impl/panel/utils.ts +5 -5
  281. package/src/plugins/impl/plotly/PlotlyPlugin.tsx +3 -3
  282. package/src/plugins/impl/vega/VegaPlugin.tsx +3 -3
  283. package/src/plugins/impl/vega/__tests__/use-vega-container-remeasure.test.ts +7 -7
  284. package/src/plugins/impl/vega/__tests__/utils.test.ts +16 -1
  285. package/src/plugins/impl/vega/__tests__/vega.test.ts +37 -0
  286. package/src/plugins/impl/vega/loader.ts +23 -1
  287. package/src/plugins/impl/vega/utils.ts +5 -4
  288. package/src/plugins/layout/AccordionPlugin.tsx +3 -3
  289. package/src/plugins/layout/CalloutPlugin.tsx +3 -3
  290. package/src/plugins/layout/ImageComparisonPlugin.tsx +5 -3
  291. package/src/plugins/layout/JsonOutputPlugin.tsx +3 -3
  292. package/src/plugins/layout/MimeRenderPlugin.tsx +3 -3
  293. package/src/plugins/layout/NavigationMenuPlugin.tsx +3 -3
  294. package/src/plugins/layout/OutlinePlugin.tsx +3 -3
  295. package/src/plugins/layout/ProgressPlugin.tsx +3 -3
  296. package/src/plugins/layout/RoutesPlugin.tsx +6 -8
  297. package/src/plugins/layout/StatPlugin.tsx +3 -3
  298. package/src/plugins/layout/TexPlugin.tsx +3 -3
  299. package/src/plugins/layout/carousel/CarouselPlugin.tsx +4 -4
  300. package/src/plugins/layout/mermaid/MermaidPlugin.tsx +3 -3
  301. package/src/utils/Deferred.ts +6 -6
  302. package/src/utils/async-capture-tracker.ts +10 -7
  303. package/src/utils/errors.ts +5 -5
  304. package/src/utils/id-tree.tsx +83 -80
  305. package/src/utils/lru.ts +1 -1
  306. package/src/utils/multi-map.ts +14 -12
  307. package/src/utils/paths.ts +6 -6
  308. package/src/utils/pluralize.ts +3 -3
  309. package/src/utils/progress.ts +6 -6
  310. package/src/utils/python-poet/poet.ts +14 -14
  311. package/src/utils/routes.ts +4 -2
  312. package/src/utils/semaphore.ts +6 -6
  313. package/src/utils/storage/storage.ts +6 -6
  314. package/src/utils/storage/typed.ts +16 -12
  315. package/src/utils/time.ts +9 -9
  316. package/src/utils/timed-cache.ts +4 -4
  317. package/src/utils/tracer.ts +9 -6
  318. package/dist/assets/add-cell-with-ai-B_rl7cPp.js +0 -76
  319. package/dist/assets/ai-model-dropdown-BmCwaRek.js +0 -3
  320. package/dist/assets/app-config-button-CtDuDui6.js +0 -1
  321. package/dist/assets/channel-ni7ei-yz.js +0 -1
  322. package/dist/assets/chat-panel-J4XhiL6i.js +0 -4
  323. package/dist/assets/classDiagram-ZZMXUADV-BS3U2jc1.js +0 -1
  324. package/dist/assets/classDiagram-v2-VYDZK3BY-BS3U2jc1.js +0 -1
  325. package/dist/assets/data-grid-overlay-editor-87bCN9IO.js +0 -1
  326. package/dist/assets/edit-page-D--nkMAI.js +0 -176
  327. package/dist/assets/file-name-input-CCRQJdng.js +0 -3
  328. package/dist/assets/flowDiagram-HODETNUW-DN8oq7vL.js +0 -1
  329. package/dist/assets/glide-data-editor-jH9-4ffy.js +0 -131
  330. package/dist/assets/has-W-yPT2HD.js +0 -1
  331. package/dist/assets/index-2TQenOiQ.css +0 -2
  332. package/dist/assets/index-Bjli4tSW.js +0 -62
  333. package/dist/assets/katex-mNPPSsir.js +0 -257
  334. package/dist/assets/katex-ukvJUC1e.js +0 -257
  335. package/dist/assets/mhchem-DcHTrqjv.js +0 -1
  336. package/dist/assets/packages-panel-pQzYAoH5.js +0 -1
  337. package/dist/assets/run-page-BTAjlR7y.js +0 -1
  338. package/dist/assets/session-panel-BYf4LDAo.js +0 -1
  339. package/dist/assets/snippets-panel-BAYAZKCH.js +0 -1
  340. package/dist/assets/stateDiagram-v2-MP3YSRHH-sU5f30Vy.js +0 -1
  341. package/dist/assets/swimlanesDiagram-VR7AAH4N-CNzkvYiI.js +0 -8
  342. package/dist/assets/tooltip-B1vGi-z4.js +0 -61
  343. package/dist/assets/tracing-panel-CzJ8ckHz.js +0 -2
@@ -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-Cu3p4E4U.js";import{t as g}from"./compiler-runtime-BQ9S8nyo.js";import{D as _,O as v,S as y}from"./config-BxZgoFvi.js";import{O as b,d as x,f as S,i as C,n as w,u as T}from"./ai-model-dropdown-BmCwaRek.js";import{M as E}from"./config-DpGPGznL.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-Bjli4tSW.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]=y(),{saveAppConfig:u}=U(),d=(0,Q.useId)(),h=(0,Q.useId)(),g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=a(_),e[0]=g):g=e[0];let v;e[1]===t?v=e[2]:(v={resolver:g,defaultValues:t},e[1]=t,e[2]=v);let b=o(v),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),v.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),v.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-Cu3p4E4U.js";import{t as h}from"./compiler-runtime-BQ9S8nyo.js";import{i as g,t as _}from"./config-BxZgoFvi.js";import{c as v,j as y,r as b,t as x}from"./ai-model-dropdown-BmCwaRek.js";import{g as S,o as C}from"./useEventListener-BdZUApHd.js";import{M as w,o as T}from"./config-DpGPGznL.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-B4VJJibu.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-CM1tqwz-.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-B_rl7cPp.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-CKr8MVOE.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-Bjli4tSW.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--nkMAI.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(w())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:w,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=T(),{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,w,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)),w.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||w.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-BmcDudwo.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-BmUJmjwl.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-BmcDudwo.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-BmUJmjwl.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{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-Bjli4tSW.js";import{a as o,i as s,n as c,r as l}from"./glide-data-editor-jH9-4ffy.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};