@marimo-team/frontend 0.16.1 → 0.16.3

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 (310) hide show
  1. package/dist/assets/{ConnectedDataExplorerComponent-2wVcyvDj.js → ConnectedDataExplorerComponent-Brtw1DxF.js} +1 -1
  2. package/dist/assets/{ImageComparisonComponent-D2j6i0hv.js → ImageComparisonComponent-Dxl-PbZX.js} +1 -1
  3. package/dist/assets/{VegaLite-BckFaf2D.js → VegaLite-BXQF0Cx_.js} +1 -1
  4. package/dist/assets/_baseEach-BjSm9ht3.js +1 -0
  5. package/dist/assets/_baseMap-CV4Ezmtf.js +1 -0
  6. package/dist/assets/_baseUniq-Ci9yZGxz.js +1 -0
  7. package/dist/assets/{_createAggregator-C5CVY-0t.js → _createAggregator-VFK9K2d9.js} +1 -1
  8. package/dist/assets/{agent-panel-RGLNjkYe.js → agent-panel-BoscVLCT.js} +7 -7
  9. package/dist/assets/{any-language-editor-DjuXwGCA.js → any-language-editor-ChaY_VUU.js} +1 -1
  10. package/dist/assets/{architectureDiagram-W76B3OCA-Dyj4ds_R.js → architectureDiagram-W76B3OCA-CueUUFYd.js} +1 -1
  11. package/dist/assets/{between-horizontal-start-Dt2aKpPf.js → between-horizontal-start-DAHqmLYT.js} +1 -1
  12. package/dist/assets/{blockDiagram-QIGZ2CNN-o-i7DDvN.js → blockDiagram-QIGZ2CNN-BYYygyWn.js} +1 -1
  13. package/dist/assets/{c4Diagram-FPNF74CW-DGHEwWrx.js → c4Diagram-FPNF74CW-DAz3xEh1.js} +1 -1
  14. package/dist/assets/channel-6SqQ2U_X.js +1 -0
  15. package/dist/assets/chat-panel-DJkOLrw9.js +3 -0
  16. package/dist/assets/{chunk-4BX2VUAB-BJecb-Ri.js → chunk-4BX2VUAB-8g-RyHdt.js} +1 -1
  17. package/dist/assets/{chunk-55IACEB6-CAATkc4w.js → chunk-55IACEB6-iWZZ8Mt6.js} +1 -1
  18. package/dist/assets/{chunk-FMBD7UC4-DPuNbQ-f.js → chunk-FMBD7UC4-knjss4wk.js} +1 -1
  19. package/dist/assets/{chunk-K7UQS3LO-C8TWVLiH.js → chunk-K7UQS3LO-DVIwPBgZ.js} +1 -1
  20. package/dist/assets/{chunk-QN33PNHL-DiZZ09q4.js → chunk-QN33PNHL-CBU8pN6I.js} +1 -1
  21. package/dist/assets/{chunk-QZHKN3VN-BIUM7usu.js → chunk-QZHKN3VN-5ljElUF4.js} +1 -1
  22. package/dist/assets/{chunk-TVAH2DTR-vGTArPBG.js → chunk-TVAH2DTR-DkIdGINc.js} +1 -1
  23. package/dist/assets/{chunk-TZMSLE5B-D2KRqp_x.js → chunk-TZMSLE5B-CIFOSTqh.js} +1 -1
  24. package/dist/assets/{circle-play-cjeNez0N.js → circle-play-BOdsbq5u.js} +1 -1
  25. package/dist/assets/classDiagram-KNZD7YFC-DVqXcTYf.js +1 -0
  26. package/dist/assets/classDiagram-v2-RKCZMP56-DVqXcTYf.js +1 -0
  27. package/dist/assets/{clear-button-C97JtAez.js → clear-button-GAjXl0CQ.js} +1 -1
  28. package/dist/assets/clone-DSDb0xen.js +1 -0
  29. package/dist/assets/command-palette-BUXkqoLh.js +1 -0
  30. package/dist/assets/{common-Du9rSOwD.js → common-DahoYqdi.js} +1 -1
  31. package/dist/assets/{compile-CZXqyOxa.js → compile-Bg8uJ7vm.js} +1 -1
  32. package/dist/assets/{cose-bilkent-S5V4N54A-CqUN5Y9b.js → cose-bilkent-S5V4N54A-z_0gqD9K.js} +1 -1
  33. package/dist/assets/{dagre-5GWH7T2D-RJqTI9DM.js → dagre-5GWH7T2D-BMt7CNXL.js} +1 -1
  34. package/dist/assets/{data-grid-overlay-editor-DZN0q1LV.js → data-grid-overlay-editor-Ctn4XtXx.js} +1 -1
  35. package/dist/assets/datasources-panel-C7sqRIHs.js +1 -0
  36. package/dist/assets/{dependency-graph-panel-CEog_O7V.js → dependency-graph-panel-DNajptzv.js} +4 -4
  37. package/dist/assets/{diagram-N5W7TBWH-D-l4zZ9d.js → diagram-N5W7TBWH-BzwvLvAy.js} +1 -1
  38. package/dist/assets/{diagram-QEK2KX5R-CCOmBUt-.js → diagram-QEK2KX5R-DRLJ56FS.js} +1 -1
  39. package/dist/assets/{diagram-S2PKOQOG-C_I_9jnZ.js → diagram-S2PKOQOG-Bf8x4KTU.js} +1 -1
  40. package/dist/assets/{documentation-panel-C1BtMZ3M.js → documentation-panel-Dm6Ozl67.js} +1 -1
  41. package/dist/assets/{edit-page-B-oevUZ9.js → edit-page-CGc9EjuG.js} +53 -42
  42. package/dist/assets/{ellipsis-vertical-BEb-J8z6.js → ellipsis-vertical-Bj1YXvZe.js} +1 -1
  43. package/dist/assets/{empty-state-C99UyDE3.js → empty-state-CYev-D31.js} +1 -1
  44. package/dist/assets/{erDiagram-AWTI2OKA-BePOLi5M.js → erDiagram-AWTI2OKA-DmgzgN_I.js} +1 -1
  45. package/dist/assets/{error-panel-Bs34jXFh.js → error-panel-BYG4twCa.js} +1 -1
  46. package/dist/assets/{file-explorer-panel-Ck6UL861.js → file-explorer-panel-BSMiOApi.js} +1 -1
  47. package/dist/assets/{flowDiagram-PVAE7QVJ-BgjFu5l7.js → flowDiagram-PVAE7QVJ-BdRKkajr.js} +1 -1
  48. package/dist/assets/{ganttDiagram-OWAHRB6G-YOPb3XSV.js → ganttDiagram-OWAHRB6G-lfRAMnq_.js} +5 -5
  49. package/dist/assets/{gitGraphDiagram-NY62KEGX-CGhqaDTy.js → gitGraphDiagram-NY62KEGX-CQVTIrHF.js} +1 -1
  50. package/dist/assets/{glide-data-editor-9QUH6iso.js → glide-data-editor-D5A4pou7.js} +4 -4
  51. package/dist/assets/{graph-DQQFGrho.js → graph-CBNo279v.js} +1 -1
  52. package/dist/assets/{home-page-DRKpPCrF.js → home-page-CmdznBJR.js} +2 -2
  53. package/dist/assets/{index-SGLNXrGP.js → index-0dfGh-Gj.js} +1 -1
  54. package/dist/assets/{index-aE43R74q.js → index-BDYVSSzB.js} +1 -1
  55. package/dist/assets/{index-BJNCMUmG.js → index-B_KyDZ94.js} +1 -1
  56. package/dist/assets/{index-BjgnbONl.js → index-Bfy-I_lW.js} +1 -1
  57. package/dist/assets/{index-CUFv_thQ.js → index-Bh98Tp-z.js} +1 -1
  58. package/dist/assets/{index-C2MD0vgD.js → index-BhroIwBL.js} +1 -1
  59. package/dist/assets/{index-DdnKZNxM.js → index-BtQtesaI.js} +1 -1
  60. package/dist/assets/index-C0iXCvyY.css +1 -0
  61. package/dist/assets/index-C1SHFMCp.js +581 -0
  62. package/dist/assets/{index-C_tkBKNO.js → index-C6DWtSls.js} +1 -1
  63. package/dist/assets/{index-Aeo6WiK7.js → index-C71cdkH-.js} +1 -1
  64. package/dist/assets/{index-G5QZppK2.js → index-CT_FTqvK.js} +1 -1
  65. package/dist/assets/{index-B8jXZ12t.js → index-CU5rRr66.js} +1 -1
  66. package/dist/assets/{index-BAbIIxHU.js → index-Cb6duXQm.js} +1 -1
  67. package/dist/assets/{index-BW3k9Gss.js → index-D23e9zQj.js} +1 -1
  68. package/dist/assets/index-DUGecC2Z.js +68 -0
  69. package/dist/assets/{index-CFKO7WXI.js → index-DcGIOAQi.js} +1 -1
  70. package/dist/assets/{index-ClzeQrN7.js → index-PJfa9qXY.js} +1 -1
  71. package/dist/assets/{index-C1ez98sk.js → index-SPslPC2B.js} +1 -1
  72. package/dist/assets/{index-BprjMYH5.js → index-VPQlo4Uz.js} +1 -1
  73. package/dist/assets/{index-CfaDbEdi.js → index-qbTLKWyG.js} +1 -1
  74. package/dist/assets/infoDiagram-STP46IZ2-DBu8p9gd.js +2 -0
  75. package/dist/assets/{isEmpty-D-4c7sMv.js → isEmpty-CnOLuQIv.js} +1 -1
  76. package/dist/assets/{journeyDiagram-BIP6EPQ6-C94u3Mv3.js → journeyDiagram-BIP6EPQ6-6U_vHJBH.js} +1 -1
  77. package/dist/assets/{kanban-definition-6OIFK2YF-BEXYFzz7.js → kanban-definition-6OIFK2YF-DgnR14ys.js} +1 -1
  78. package/dist/assets/{layout-Bz2BJ2ru.js → layout-RHmq4fP9.js} +1 -1
  79. package/dist/assets/{linear-D8s7K76e.js → linear-CLdOVPGV.js} +1 -1
  80. package/dist/assets/links-Dd1icsEk.js +7 -0
  81. package/dist/assets/{logs-panel-DC7wpmPz.js → logs-panel-CjbuhBLx.js} +1 -1
  82. package/dist/assets/{markdown-renderer-DRdSWR9X.js → markdown-renderer-X5YJvAZq.js} +3 -3
  83. package/dist/assets/{mermaid-Y3x4hmD0.js → mermaid-Bl2T5oEC.js} +1 -1
  84. package/dist/assets/{mermaid.core-DzthE35Y.js → mermaid.core-CfukBvGI.js} +4 -4
  85. package/dist/assets/min-BXIes1Za.js +1 -0
  86. package/dist/assets/{mindmap-definition-Q6HEUPPD-DktvuLe1.js → mindmap-definition-Q6HEUPPD-BXCjP4Lu.js} +1 -1
  87. package/dist/assets/{number-overlay-editor-BEfwI1IT.js → number-overlay-editor-BUyqkSes.js} +1 -1
  88. package/dist/assets/{outline-panel-CdsnAy2w.js → outline-panel-BvGcPKdd.js} +1 -1
  89. package/dist/assets/{packages-panel-DiTA-d_D.js → packages-panel-BichDQWG.js} +1 -1
  90. package/dist/assets/{pieDiagram-ADFJNKIX-DQDNQ-de.js → pieDiagram-ADFJNKIX-CMzJFIJM.js} +1 -1
  91. package/dist/assets/{quadrantDiagram-LMRXKWRM-0kgIXc2-.js → quadrantDiagram-LMRXKWRM-CfGssUlO.js} +1 -1
  92. package/dist/assets/{react-plotly-DJqqfM7c.js → react-plotly-DR3hV0HW.js} +1 -1
  93. package/dist/assets/{requirementDiagram-4UW4RH46-B5rb0ypd.js → requirementDiagram-4UW4RH46-CfrFolth.js} +1 -1
  94. package/dist/assets/{run-page-CFmLrv1R.js → run-page-Bqd_4ePD.js} +1 -1
  95. package/dist/assets/{sankeyDiagram-GR3RE2ED-Dom7IlnF.js → sankeyDiagram-GR3RE2ED-D_UttKU0.js} +1 -1
  96. package/dist/assets/{scratchpad-panel-CuHWpHO8.js → scratchpad-panel-D5N15ji1.js} +1 -1
  97. package/dist/assets/secrets-panel-BpbnAO4R.js +1 -0
  98. package/dist/assets/{sequenceDiagram-C3RYC4MD-PNJWXQbw.js → sequenceDiagram-C3RYC4MD-MdfQQApP.js} +1 -1
  99. package/dist/assets/{slides-component-CJgaTRZ0.js → slides-component-C0z7rXmk.js} +1 -1
  100. package/dist/assets/{snippets-panel-B2EC1txM.js → snippets-panel-wlpZ_Wzx.js} +1 -1
  101. package/dist/assets/sortBy-BW_zNHP6.js +1 -0
  102. package/dist/assets/{state-CWict9RU.js → state-CDooX-dk.js} +1 -1
  103. package/dist/assets/{stateDiagram-KXAO66HF-BE58aJnr.js → stateDiagram-KXAO66HF-H7kfw3ot.js} +1 -1
  104. package/dist/assets/stateDiagram-v2-UMBNRL4Z-YMeb9qMR.js +1 -0
  105. package/dist/assets/{storage-DRaR04wR.js → storage-b1QCapTq.js} +6 -6
  106. package/dist/assets/{terminal-BX3Su5q7.js → terminal-CPV44BXz.js} +1 -1
  107. package/dist/assets/{time-hUzZfpNE.js → time-DDy3xv5Y.js} +1 -1
  108. package/dist/assets/{timeline-definition-XQNQX7LJ-CqQP9t51.js → timeline-definition-XQNQX7LJ-J-cPRT2_.js} +1 -1
  109. package/dist/assets/{tracing-B10Q1n-L.js → tracing-3eHHRUiJ.js} +2 -2
  110. package/dist/assets/{tracing-panel-Du8WCnno.js → tracing-panel-BMgy3D7d.js} +2 -2
  111. package/dist/assets/{trash-B81GTiv6.js → trash--tonOuDe.js} +1 -1
  112. package/dist/assets/{tree-6vW2ogkh.js → tree-ouIGEsVg.js} +1 -1
  113. package/dist/assets/{treemap-75Q7IDZK-CdwDwwsz.js → treemap-75Q7IDZK-CzJTJ_3R.js} +20 -20
  114. package/dist/assets/{variable-panel-D5qgJI7k.js → variable-panel-sFTn4Oih.js} +1 -1
  115. package/dist/assets/{vega-component-DJaJWMJM.js → vega-component-BkPkzX9r.js} +1 -1
  116. package/dist/assets/{xychartDiagram-6GGTOJPD-WFtXqaM9.js → xychartDiagram-6GGTOJPD-BZ8WOb_8.js} +1 -1
  117. package/dist/index.html +10 -3
  118. package/package.json +8 -8
  119. package/src/__mocks__/common.ts +5 -3
  120. package/src/__mocks__/notebook.ts +2 -2
  121. package/src/__mocks__/requests.ts +1 -0
  122. package/src/__tests__/main.test.tsx +2 -2
  123. package/src/components/ai/ai-provider-icon.tsx +2 -0
  124. package/src/components/app-config/ai-config.tsx +32 -1
  125. package/src/components/app-config/common.tsx +2 -2
  126. package/src/components/app-config/user-config-form.tsx +26 -0
  127. package/src/components/audio/audio-recorder.tsx +0 -1
  128. package/src/components/chat/acp/blocks.tsx +2 -2
  129. package/src/components/chat/acp/thread.tsx +3 -5
  130. package/src/components/chat/acp/utils.ts +5 -5
  131. package/src/components/chat/chat-panel.tsx +1 -1
  132. package/src/components/data-table/__tests__/columns.test.tsx +38 -0
  133. package/src/components/data-table/__tests__/data-table.test.tsx +2 -2
  134. package/src/components/data-table/cell-hover-template/feature.ts +1 -1
  135. package/src/components/data-table/cell-hover-template/types.ts +1 -1
  136. package/src/components/data-table/charts/__tests__/altair-generator.test.ts +1 -1
  137. package/src/components/data-table/charts/chart-spec/tooltips.ts +3 -3
  138. package/src/components/data-table/charts/components/chart-items.tsx +1 -1
  139. package/src/components/data-table/charts/components/form-fields.tsx +2 -2
  140. package/src/components/data-table/charts/constants.ts +1 -1
  141. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
  142. package/src/components/data-table/column-summary/chart-spec-model.tsx +2 -2
  143. package/src/components/data-table/columns.tsx +22 -3
  144. package/src/components/data-table/data-table.tsx +35 -3
  145. package/src/components/data-table/date-popover.tsx +1 -1
  146. package/src/components/data-table/download-actions.tsx +1 -1
  147. package/src/components/data-table/range-focus/__tests__/utils.test.ts +5 -5
  148. package/src/components/data-table/renderers.tsx +22 -13
  149. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +1 -1
  150. package/src/components/data-table/schemas.ts +16 -0
  151. package/src/components/data-table/types.ts +4 -3
  152. package/src/components/datasources/column-preview.tsx +9 -6
  153. package/src/components/debugger/debugger-code.tsx +1 -1
  154. package/src/components/dependency-graph/custom-node.tsx +15 -6
  155. package/src/components/dependency-graph/dependency-graph-minimap.tsx +2 -2
  156. package/src/components/dependency-graph/dependency-graph-tree.tsx +2 -2
  157. package/src/components/dependency-graph/dependency-graph.tsx +1 -1
  158. package/src/components/dependency-graph/elements.ts +7 -7
  159. package/src/components/dependency-graph/utils/changes.ts +4 -4
  160. package/src/components/editor/Cell.tsx +7 -1
  161. package/src/components/editor/ai/transport/chat-transport.tsx +1 -1
  162. package/src/components/editor/chrome/panels/outline/useActiveOutline.tsx +1 -1
  163. package/src/components/editor/chrome/panels/packages-panel.tsx +1 -1
  164. package/src/components/editor/columns/storage.ts +1 -1
  165. package/src/components/editor/database/__tests__/__snapshots__/as-code.test.ts.snap +36 -0
  166. package/src/components/editor/database/__tests__/as-code.test.ts +30 -7
  167. package/src/components/editor/database/add-database-form.tsx +11 -0
  168. package/src/components/editor/database/as-code.ts +104 -5
  169. package/src/components/editor/database/schemas.ts +36 -18
  170. package/src/components/editor/errors/auto-fix.tsx +12 -2
  171. package/src/components/editor/errors/sql-validation-errors.tsx +40 -0
  172. package/src/components/editor/navigation/clipboard.ts +2 -2
  173. package/src/components/editor/output/ConsoleOutput.tsx +14 -2
  174. package/src/components/editor/output/JsonOutput.tsx +1 -1
  175. package/src/components/editor/output/MarimoErrorOutput.tsx +60 -1
  176. package/src/components/editor/output/MarimoTracebackOutput.tsx +17 -2
  177. package/src/components/editor/renderers/grid-layout/types.ts +2 -2
  178. package/src/components/editor/renderers/plugins.ts +1 -1
  179. package/src/components/editor/renderers/types.ts +1 -1
  180. package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +7 -7
  181. package/src/components/forms/form.tsx +5 -5
  182. package/src/components/ui/links.tsx +1 -0
  183. package/src/core/ai/__tests__/model-registry.test.ts +0 -10
  184. package/src/core/ai/context/providers/cell-output.ts +1 -18
  185. package/src/core/ai/context/providers/error.ts +2 -2
  186. package/src/core/ai/ids/ids.ts +1 -0
  187. package/src/core/ai/model-registry.ts +2 -1
  188. package/src/core/cells/cells.ts +5 -5
  189. package/src/core/cells/logs.ts +1 -1
  190. package/src/core/cells/types.ts +1 -1
  191. package/src/core/codemirror/__tests__/format.test.ts +6 -0
  192. package/src/core/codemirror/cells/traceback-decorations.ts +1 -1
  193. package/src/core/codemirror/editing/commands.ts +2 -2
  194. package/src/core/codemirror/find-replace/navigate.ts +1 -1
  195. package/src/core/codemirror/language/__tests__/extension.test.ts +24 -0
  196. package/src/core/codemirror/language/__tests__/sql-validation.test.ts +133 -0
  197. package/src/core/codemirror/language/__tests__/sql.test.ts +764 -79
  198. package/src/core/codemirror/language/languages/markdown.ts +4 -1
  199. package/src/core/codemirror/language/languages/sql/banner-validation-errors.ts +85 -0
  200. package/src/core/codemirror/language/languages/sql/completion-builder.ts +160 -0
  201. package/src/core/codemirror/language/languages/sql/completion-sources.tsx +9 -3
  202. package/src/core/codemirror/language/languages/sql/completion-store.ts +46 -50
  203. package/src/core/codemirror/language/languages/sql/renderers.tsx +485 -0
  204. package/src/core/codemirror/language/languages/sql/sql-mode.ts +20 -0
  205. package/src/core/codemirror/language/languages/sql/sql.ts +218 -4
  206. package/src/core/codemirror/language/languages/sql/utils.ts +4 -1
  207. package/src/core/codemirror/language/panel/panel.tsx +8 -2
  208. package/src/core/codemirror/language/panel/sql.tsx +86 -4
  209. package/src/core/codemirror/language/utils/ast.ts +3 -3
  210. package/src/core/codemirror/lsp/federated-lsp.ts +4 -4
  211. package/src/core/codemirror/lsp/lens.ts +4 -4
  212. package/src/core/codemirror/lsp/notebook-lsp.ts +1 -1
  213. package/src/core/codemirror/lsp/types.ts +1 -1
  214. package/src/core/codemirror/markdown/completions.ts +1 -1
  215. package/src/core/codemirror/reactive-references/analyzer.ts +2 -2
  216. package/src/core/codemirror/rtc/loro/awareness.ts +1 -1
  217. package/src/core/config/config-schema.ts +1 -0
  218. package/src/core/config/feature-flag.tsx +6 -2
  219. package/src/core/datasets/request-registry.ts +24 -1
  220. package/src/core/dom/events.ts +1 -1
  221. package/src/core/dom/outline.ts +2 -2
  222. package/src/core/dom/uiregistry.ts +2 -8
  223. package/src/core/errors/__tests__/errors.test.ts +22 -4
  224. package/src/core/errors/errors.ts +29 -1
  225. package/src/core/errors/state.ts +1 -1
  226. package/src/core/islands/bridge.ts +1 -0
  227. package/src/core/islands/main.ts +3 -2
  228. package/src/core/islands/parse.ts +1 -3
  229. package/src/core/kernel/messages.ts +2 -1
  230. package/src/core/network/CachingRequestRegistry.ts +74 -0
  231. package/src/core/network/DeferredRequestRegistry.ts +3 -1
  232. package/src/core/network/__tests__/CachingRequestRegistry.test.ts +73 -0
  233. package/src/core/network/requests-network.ts +7 -0
  234. package/src/core/network/requests-static.ts +1 -0
  235. package/src/core/network/requests-toasting.ts +1 -0
  236. package/src/core/network/types.ts +3 -1
  237. package/src/core/variables/state.ts +2 -2
  238. package/src/core/wasm/__tests__/state.test.ts +1 -1
  239. package/src/core/wasm/bridge.ts +5 -0
  240. package/src/core/websocket/useMarimoWebSocket.tsx +9 -2
  241. package/src/custom.d.ts +1 -1
  242. package/src/hooks/useCellRenderCount.ts +1 -0
  243. package/src/hooks/useResizeHandle.ts +4 -1
  244. package/src/plugins/core/RenderHTML.tsx +1 -2
  245. package/src/plugins/core/registerReactComponent.tsx +23 -19
  246. package/src/plugins/impl/DataTablePlugin.tsx +18 -6
  247. package/src/plugins/impl/FileUploadPlugin.tsx +1 -1
  248. package/src/plugins/impl/RefreshPlugin.tsx +1 -1
  249. package/src/plugins/impl/SliderPlugin.tsx +4 -0
  250. package/src/plugins/impl/anywidget/AnyWidgetPlugin.tsx +27 -9
  251. package/src/plugins/impl/anywidget/__tests__/AnyWidgetPlugin.test.tsx +58 -2
  252. package/src/plugins/impl/anywidget/__tests__/model.test.ts +3 -4
  253. package/src/plugins/impl/anywidget/model.ts +2 -3
  254. package/src/plugins/impl/data-editor/types.ts +1 -1
  255. package/src/plugins/impl/data-explorer/components/query-form.tsx +1 -1
  256. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +17 -5
  257. package/src/plugins/impl/data-frames/types.ts +1 -1
  258. package/src/plugins/impl/panel/PanelPlugin.tsx +2 -2
  259. package/src/plugins/impl/plotly/PlotlyPlugin.tsx +3 -3
  260. package/src/plugins/impl/vega/__tests__/loader.test.ts +2 -2
  261. package/src/plugins/impl/vega/loader.ts +1 -1
  262. package/src/plugins/impl/vega/vega-component.tsx +1 -1
  263. package/src/plugins/impl/vega/vega-loader.ts +2 -2
  264. package/src/plugins/layout/NavigationMenuPlugin.tsx +1 -1
  265. package/src/plugins/layout/RoutesPlugin.tsx +1 -2
  266. package/src/plugins/plugins.ts +2 -2
  267. package/src/stories/dataframe.stories.tsx +2 -0
  268. package/src/utils/Logger.ts +1 -1
  269. package/src/utils/__tests__/data-views.test.ts +30 -68
  270. package/src/utils/__tests__/dom.test.ts +167 -0
  271. package/src/utils/__tests__/id-tree.test.ts +49 -1
  272. package/src/utils/__tests__/storage.test.ts +1 -1
  273. package/src/utils/__tests__/traceback.test.ts +13 -2
  274. package/src/utils/arrays.ts +1 -1
  275. package/src/utils/createReducer.ts +1 -5
  276. package/src/utils/data-views.ts +6 -19
  277. package/src/utils/dom.ts +55 -0
  278. package/src/utils/edit-distance.ts +1 -1
  279. package/src/utils/fileToBase64.ts +1 -1
  280. package/src/utils/id-tree.tsx +20 -18
  281. package/src/utils/json/base64.ts +13 -0
  282. package/src/utils/json/json-parser.ts +2 -2
  283. package/src/utils/lru.ts +4 -0
  284. package/src/utils/mergeRefs.ts +1 -1
  285. package/src/utils/objects.ts +3 -3
  286. package/src/utils/pluralize.ts +1 -1
  287. package/src/utils/routes.ts +2 -2
  288. package/src/utils/sets.ts +1 -1
  289. package/src/utils/traceback.ts +45 -15
  290. package/src/utils/tracer.ts +11 -9
  291. package/dist/assets/_baseEach-CvTX9w0Y.js +0 -1
  292. package/dist/assets/_baseMap-CtlwA90f.js +0 -1
  293. package/dist/assets/_baseUniq-BKktIGQ1.js +0 -1
  294. package/dist/assets/channel-Co6iMgWq.js +0 -1
  295. package/dist/assets/chat-panel-9alr8FS4.js +0 -3
  296. package/dist/assets/classDiagram-KNZD7YFC-BbJ0rY3y.js +0 -1
  297. package/dist/assets/classDiagram-v2-RKCZMP56-BbJ0rY3y.js +0 -1
  298. package/dist/assets/clone-BMP0PsTa.js +0 -1
  299. package/dist/assets/command-palette-B93Pjcky.js +0 -1
  300. package/dist/assets/datasources-panel-v7H3cR0p.js +0 -1
  301. package/dist/assets/index-2252nrk6.js +0 -68
  302. package/dist/assets/index-C7CoaNFb.js +0 -578
  303. package/dist/assets/index-DadI618h.css +0 -1
  304. package/dist/assets/infoDiagram-STP46IZ2-CJLOpSAf.js +0 -2
  305. package/dist/assets/links-BpXlz1GG.js +0 -7
  306. package/dist/assets/min-BBO3-1Hg.js +0 -1
  307. package/dist/assets/secrets-panel-CfHc5YD0.js +0 -1
  308. package/dist/assets/sortBy-DZnlX29-.js +0 -1
  309. package/dist/assets/stateDiagram-v2-UMBNRL4Z-CdThjimL.js +0 -1
  310. package/src/__tests__/lru.test.ts +0 -74
@@ -25,9 +25,9 @@ export type CellIndex = number & { __brand?: "CellIndex" };
25
25
  export class TreeNode<T> {
26
26
  public value: T;
27
27
  public isCollapsed: boolean;
28
- public children: Array<TreeNode<T>>;
28
+ public children: TreeNode<T>[];
29
29
 
30
- constructor(value: T, isCollapsed: boolean, children: Array<TreeNode<T>>) {
30
+ constructor(value: T, isCollapsed: boolean, children: TreeNode<T>[]) {
31
31
  this.value = value;
32
32
  this.isCollapsed = isCollapsed;
33
33
  this.children = children;
@@ -77,15 +77,17 @@ export class TreeNode<T> {
77
77
  @Memoize()
78
78
  get inOrderIds(): T[] {
79
79
  const result: T[] = [];
80
- const queue = [...this.children];
81
80
 
82
- while (queue.length > 0) {
83
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
84
- const node = queue.shift()!;
81
+ // Use depth-first traversal to preserve logical document order
82
+ const traverse = (node: TreeNode<T>) => {
85
83
  result.push(node.value);
84
+ for (const child of node.children) {
85
+ traverse(child);
86
+ }
87
+ };
86
88
 
87
- // Add children to queue to maintain breadth-first traversal
88
- queue.push(...node.children);
89
+ for (const child of this.children) {
90
+ traverse(child);
89
91
  }
90
92
 
91
93
  return result;
@@ -106,10 +108,10 @@ export class TreeNode<T> {
106
108
  let uniqueId = 0;
107
109
 
108
110
  export class CollapsibleTree<T> {
109
- public readonly nodes: Array<TreeNode<T>>;
111
+ public readonly nodes: TreeNode<T>[];
110
112
  public readonly id: CellColumnId;
111
113
 
112
- private constructor(nodes: Array<TreeNode<T>>, id: CellColumnId) {
114
+ private constructor(nodes: TreeNode<T>[], id: CellColumnId) {
113
115
  this.nodes = nodes;
114
116
  this.id = id;
115
117
  }
@@ -160,7 +162,7 @@ export class CollapsibleTree<T> {
160
162
  return newTree;
161
163
  }
162
164
 
163
- withNodes(nodes: Array<TreeNode<T>>): CollapsibleTree<T> {
165
+ withNodes(nodes: TreeNode<T>[]): CollapsibleTree<T> {
164
166
  return new CollapsibleTree(nodes, this.id);
165
167
  }
166
168
 
@@ -305,7 +307,7 @@ export class CollapsibleTree<T> {
305
307
  * Does not collapse the children of already collapsed nodes
306
308
  */
307
309
  collapseAll(
308
- collapseRanges: Array<{ id: T; until: T | undefined } | null>,
310
+ collapseRanges: ({ id: T; until: T | undefined } | null)[],
309
311
  ): CollapsibleTree<T> {
310
312
  const nodes = [...this.nodes];
311
313
  if (collapseRanges.length === 0) {
@@ -539,7 +541,7 @@ export class CollapsibleTree<T> {
539
541
  */
540
542
  find(id: T): T[] {
541
543
  // We need to recursively find the node
542
- function findNode(nodes: Array<TreeNode<T>>, path: T[]): T[] {
544
+ function findNode(nodes: TreeNode<T>[], path: T[]): T[] {
543
545
  for (const node of nodes) {
544
546
  if (node.value === id) {
545
547
  return [...path, id];
@@ -585,7 +587,7 @@ export class CollapsibleTree<T> {
585
587
  toString(): string {
586
588
  let depth = 0;
587
589
  let result = "";
588
- const asString = (nodes: Array<TreeNode<T>>) => {
590
+ const asString = (nodes: TreeNode<T>[]) => {
589
591
  for (const node of nodes) {
590
592
  result += `${" ".repeat(depth * 2)}${node.toString()}\n`;
591
593
  depth += 1;
@@ -599,9 +601,9 @@ export class CollapsibleTree<T> {
599
601
  }
600
602
 
601
603
  export class MultiColumn<T> {
602
- private readonly columns: ReadonlyArray<CollapsibleTree<T>>;
604
+ private readonly columns: readonly CollapsibleTree<T>[];
603
605
 
604
- constructor(columns: ReadonlyArray<CollapsibleTree<T>>) {
606
+ constructor(columns: readonly CollapsibleTree<T>[]) {
605
607
  this.columns = columns;
606
608
 
607
609
  // Ensure there is always at least one column
@@ -662,7 +664,7 @@ export class MultiColumn<T> {
662
664
  }
663
665
 
664
666
  static fromIdsAndColumns<T>(
665
- idAndColumns: Array<[T, number | undefined | null]>,
667
+ idAndColumns: [T, number | undefined | null][],
666
668
  ): MultiColumn<T> {
667
669
  // If column is undefined, use the previous column
668
670
  // Ensure there is always at least one column
@@ -744,7 +746,7 @@ export class MultiColumn<T> {
744
746
  return this.columns.length === 1;
745
747
  }
746
748
 
747
- getColumns(): ReadonlyArray<CollapsibleTree<T>> {
749
+ getColumns(): readonly CollapsibleTree<T>[] {
748
750
  return this.columns;
749
751
  }
750
752
 
@@ -1,4 +1,6 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
+
3
+ import type { OperationMessageData } from "@/core/kernel/messages";
2
4
  import type { TypedString } from "../typed";
3
5
 
4
6
  export type JsonString<T = unknown> = TypedString<"Json"> & {
@@ -52,3 +54,14 @@ export function extractBase64FromDataURL(str: DataURLString): Base64String {
52
54
  export function byteStringToBinary(bytes: ByteString): Uint8Array {
53
55
  return Uint8Array.from(bytes, (c) => c.charCodeAt(0));
54
56
  }
57
+
58
+ export function safeExtractSetUIElementMessageBuffers(
59
+ op: OperationMessageData<"send-ui-element-message">,
60
+ ): readonly DataView[] {
61
+ // @ts-expect-error - TypeScript doesn't know that these strings are actually base64 strings
62
+ const strs: Base64String[] = op.buffers ?? [];
63
+ return strs.map((str) => {
64
+ const bytes = byteStringToBinary(typedAtob(str));
65
+ return new DataView(bytes.buffer);
66
+ });
67
+ }
@@ -34,7 +34,7 @@ export function jsonParseWithSpecialChar<T = unknown>(
34
34
  /(?<=\s|^|\[|,|:)(NaN|-Infinity|Infinity)(?=(?:[^"'\\]*(\\.|'([^'\\]*\\.)*[^'\\]*'|"([^"\\]*\\.)*[^"\\]*"))*[^"']*$)/g,
35
35
  `"${CHAR}$1${CHAR}"`,
36
36
  );
37
- return JSON.parse(value, (key, v) => {
37
+ return JSON.parse(value, (_key, v) => {
38
38
  if (typeof v !== "string") {
39
39
  return v;
40
40
  }
@@ -54,7 +54,7 @@ export function jsonParseWithSpecialChar<T = unknown>(
54
54
  }
55
55
  }
56
56
 
57
- export function jsonToTSV(json: Array<Record<string, unknown>>) {
57
+ export function jsonToTSV(json: Record<string, unknown>[]) {
58
58
  if (json.length === 0) {
59
59
  return "";
60
60
  }
package/src/utils/lru.ts CHANGED
@@ -65,4 +65,8 @@ export class LRUCache<K, V> {
65
65
  public entries() {
66
66
  return this.cache.entries();
67
67
  }
68
+
69
+ public delete(key: K) {
70
+ this.cache.delete(key);
71
+ }
68
72
  }
@@ -1,6 +1,6 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
2
  export function mergeRefs<T>(
3
- ...refs: Array<React.Ref<T>>
3
+ ...refs: React.Ref<T>[]
4
4
  ): (value: T | null) => void {
5
5
  return (value) => {
6
6
  refs.forEach((ref) => {
@@ -17,14 +17,14 @@ export const Objects = {
17
17
  /**
18
18
  * Type-safe Object.fromEntries
19
19
  */
20
- fromEntries<K extends string | number, V>(obj: Array<[K, V]>): Record<K, V> {
20
+ fromEntries<K extends string | number, V>(obj: [K, V][]): Record<K, V> {
21
21
  return Object.fromEntries(obj) as Record<K, V>;
22
22
  },
23
23
  /**
24
24
  * Type-safe Object.entries
25
25
  */
26
- entries<K extends string | number, V>(obj: Record<K, V>): Array<[K, V]> {
27
- return Object.entries(obj) as Array<[K, V]>;
26
+ entries<K extends string | number, V>(obj: Record<K, V>): [K, V][] {
27
+ return Object.entries(obj) as [K, V][];
28
28
  },
29
29
  /**
30
30
  * Type-safe Object.keys
@@ -25,7 +25,7 @@ export class PluralWords {
25
25
  this.words = words;
26
26
  }
27
27
 
28
- static of(...words: Array<PluralWord | string>) {
28
+ static of(...words: (PluralWord | string)[]) {
29
29
  return new PluralWords(
30
30
  words.map((word) => {
31
31
  if (typeof word === "string") {
@@ -8,10 +8,10 @@ import {
8
8
  } from "path-to-regexp";
9
9
 
10
10
  export class TinyRouter {
11
- private routes: Array<{
11
+ private routes: {
12
12
  template: string;
13
13
  pathFunction: MatchFunction<ParamData>;
14
- }>;
14
+ }[];
15
15
 
16
16
  constructor(templates: string[]) {
17
17
  this.routes = templates.map((template) => {
package/src/utils/sets.ts CHANGED
@@ -3,7 +3,7 @@ export const Sets = {
3
3
  /**
4
4
  * Merge multiple iterables into a single set.
5
5
  */
6
- merge<T>(...sets: Array<Iterable<T>>): Set<T> {
6
+ merge<T>(...sets: Iterable<T>[]): Set<T> {
7
7
  const result = new Set<T>();
8
8
  for (const set of sets) {
9
9
  for (const item of set) {
@@ -28,13 +28,38 @@ export const elementContainsMarimoCellFile = (domNode: Element) => {
28
28
  );
29
29
  };
30
30
 
31
- export interface TracebackInfo {
32
- cellId: CellId;
33
- lineNumber: number;
34
- }
31
+ export type TracebackInfo =
32
+ | {
33
+ kind: "file";
34
+ filePath: string;
35
+ lineNumber: number;
36
+ }
37
+ | {
38
+ kind: "cell";
39
+ cellId: CellId;
40
+ lineNumber: number;
41
+ };
35
42
 
36
43
  /**
37
44
  * Extract the cell id and line number from a traceback DOM node.
45
+ *
46
+ * Example transformation:
47
+ *
48
+ * File <span class="nb">"/tmp/marimo_<number>/__marimo__cell_<CellId>.py"</span>
49
+ * , line <span class="n">1</span>...
50
+ *
51
+ * becomes
52
+ *
53
+ * { kind: "cell", cellId: <CellID>, lineNumber: 1 }
54
+ *
55
+ * or for files:
56
+ *
57
+ * File <span class="nb">"/path/to/file.py"</span>
58
+ * , line <span class="n">42</span>...
59
+ *
60
+ * becomes
61
+ *
62
+ * { kind: "file", filePath: "/path/to/file.py", lineNumber: 42 }
38
63
  */
39
64
  export function getTracebackInfo(domNode: DOMNode): TracebackInfo | null {
40
65
  // The traceback can be manipulated either in output render or in the pygments
@@ -57,7 +82,7 @@ export function getTracebackInfo(domNode: DOMNode): TracebackInfo | null {
57
82
  if (
58
83
  domNode instanceof Element &&
59
84
  domNode.firstChild instanceof Text &&
60
- elementContainsMarimoCellFile(domNode)
85
+ matchesSelector(domNode, "span.nb")
61
86
  ) {
62
87
  const nextSibling = domNode.next;
63
88
  if (nextSibling && nextSibling instanceof Text) {
@@ -68,14 +93,22 @@ export function getTracebackInfo(domNode: DOMNode): TracebackInfo | null {
68
93
  lineSibling.firstChild instanceof Text &&
69
94
  matchesSelector(lineSibling, "span.m")
70
95
  ) {
71
- const cellId = /__marimo__cell_(\w+)_/.exec(
72
- domNode.firstChild.nodeValue,
73
- )?.[1];
74
96
  const lineNumber = Number.parseInt(
75
97
  lineSibling.firstChild.nodeValue || "0",
98
+ 10,
76
99
  );
77
- if (cellId && lineNumber) {
78
- return { cellId: cellId as CellId, lineNumber };
100
+ if (domNode.firstChild.nodeValue?.includes("__marimo__")) {
101
+ const cellId = /__marimo__cell_(\w+)_/.exec(
102
+ domNode.firstChild.nodeValue,
103
+ )?.[1] as CellId;
104
+ if (cellId && lineNumber) {
105
+ return { kind: "cell", cellId, lineNumber };
106
+ }
107
+ } else {
108
+ const filePath = /"(.+?)"/.exec(domNode.firstChild.nodeValue)?.[1];
109
+ if (filePath && lineNumber) {
110
+ return { kind: "file", filePath, lineNumber };
111
+ }
79
112
  }
80
113
  }
81
114
  }
@@ -92,11 +125,8 @@ export function extractAllTracebackInfo(traceback: string): TracebackInfo[] {
92
125
  replace: (domNode) => {
93
126
  const info = getTracebackInfo(domNode);
94
127
  if (info) {
95
- infos.push({
96
- cellId: info.cellId,
97
- lineNumber: info.lineNumber,
98
- });
99
- return `${info.cellId}:${info.lineNumber}`;
128
+ infos.push(info);
129
+ return "dummy";
100
130
  }
101
131
  },
102
132
  });
@@ -1,7 +1,9 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
2
 
3
- /* eslint-disable no-console */
4
3
  /* eslint-disable @typescript-eslint/no-explicit-any */
4
+ /** biome-ignore-all lint/suspicious/noConsole: for debugging */
5
+
6
+ import { Logger } from "./Logger";
5
7
 
6
8
  type SpanStatus = "ok" | "error";
7
9
 
@@ -88,19 +90,19 @@ export class Tracer {
88
90
  s.startTime < span.endTime,
89
91
  );
90
92
  if (childSpans.length > 0) {
91
- console.log("Child Spans:");
93
+ Logger.log("Child Spans:");
92
94
  childSpans.forEach((childSpan) => {
93
- console.log(` - ${childSpan.name}`);
95
+ Logger.log(` - ${childSpan.name}`);
94
96
  });
95
97
  }
96
- console.log(`Start Time: ${new Date(span.startTime).toISOString()}`);
98
+ Logger.log(`Start Time: ${new Date(span.startTime).toISOString()}`);
97
99
  if (span.endTime) {
98
- console.log(`End Time: ${new Date(span.endTime).toISOString()}`);
99
- console.log(`Duration: ${span.endTime - span.startTime}ms`);
100
+ Logger.log(`End Time: ${new Date(span.endTime).toISOString()}`);
101
+ Logger.log(`Duration: ${span.endTime - span.startTime}ms`);
100
102
  }
101
- console.log(`Status: ${span.status}`);
102
- console.log(`Attributes: ${JSON.stringify(span.attributes)}`);
103
- console.log("---");
103
+ Logger.log(`Status: ${span.status}`);
104
+ Logger.log(`Attributes: ${JSON.stringify(span.attributes)}`);
105
+ Logger.log("---");
104
106
  });
105
107
  }
106
108
  }
@@ -1 +0,0 @@
1
- import{eL as y,eM as l,eN as w,aO as b,eO as O,eP as g,eQ as A,eR as B,cF as F,eS as G,cG as L,B as M,eT as N,A as P}from"./index-C7CoaNFb.js";function h(r){return r==r&&!w(r)}function j(r,e){return function(n){return n!=null&&n[r]===e&&(e!==void 0||r in Object(n))}}function Q(r){var e=(function(n){for(var t=b(n),u=t.length;u--;){var i=t[u],o=n[i];t[u]=[i,o,h(o)]}return t})(r);return e.length==1&&e[0][2]?j(e[0][0],e[0][1]):function(n){return n===r||(function(t,u,i,o){var a=i.length,c=a;if(t==null)return!c;for(t=Object(t);a--;){var f=i[a];if(f[2]?f[1]!==t[f[0]]:!(f[0]in t))return!1}for(;++a<c;){var s=(f=i[a])[0],v=t[s],m=f[1];if(f[2]){if(v===void 0&&!(s in t))return!1}else{var x=new y;if(!l(m,v,3,o,x))return!1}}return!0})(n,0,e)}}function R(r){return O(r)?G(g(r)):(function(e){return function(n){return F(n,e)}})(r)}function S(r){return typeof r=="function"?r:r==null?L:typeof r=="object"?M(r)?(e=r[0],n=r[1],O(e)&&h(n)?j(g(e),n):function(t){var u=A(t,e);return u===void 0&&u===n?B(t,e):l(n,u,3)}):Q(r):R(r);var e,n}function p(r,e){return r&&N(r,e,b)}var d,T=(d=p,function(r,e){if(r==null)return r;if(!P(r))return d(r,e);for(var n=r.length,t=-1,u=Object(r);++t<n&&e(u[t],t,u)!==!1;);return r});export{S as a,T as b,p as c};
@@ -1 +0,0 @@
1
- import{b as m}from"./_baseEach-CvTX9w0Y.js";import{A as s}from"./index-C7CoaNFb.js";function e(r,o){var a=-1,t=s(r)?Array(r.length):[];return m(r,function(n,f,i){t[++a]=o(n,f,i)}),t}export{e as b};
@@ -1 +0,0 @@
1
- import{ft as p,aO as d,eH as m,fu as F,fv as Y,fw as Z,fx as _,fy as rr,fz as B,fA as D,fB as er,fC as M,H as O,cH as H,fD as A,eN as nr,fE as tr,D as cr,fF as or,fG as ar,eL as ur,fH as fr,B as g,fI as sr,cG as ir,fJ as br,cE as jr,fK as lr,fL as x,fM as I,fN as vr,fO as yr}from"./index-C7CoaNFb.js";import{b as U,a as N}from"./_baseEach-CvTX9w0Y.js";function C(){}function G(r,e){for(var n=-1,u=r==null?0:r.length;++n<u&&e(r[n],n,r)!==!1;);return r}function L(r,e,n,u){for(var s=r.length,a=n+-1;++a<s;)if(e(r[a],a,r))return a;return-1}function pr(r){return r!=r}function k(r,e,n){return e==e?(function(u,s,a){for(var c=a-1,f=u.length;++c<f;)if(u[c]===s)return c;return-1})(r,e,n):L(r,pr,n)}function P(r,e){return!!(r!=null&&r.length)&&k(r,e,0)>-1}var R=Object.getOwnPropertySymbols?function(r){for(var e=[];r;)Z(e,F(r)),r=_(r);return e}:Y;function V(r){return rr(r,m,R)}var Ar=Object.prototype.hasOwnProperty,gr=/\w*$/,z=D?D.prototype:void 0,J=z?z.valueOf:void 0;function hr(r,e,n){var u,s,a,c=r.constructor;switch(e){case"[object ArrayBuffer]":return B(r);case"[object Boolean]":case"[object Date]":return new c(+r);case"[object DataView]":return(function(f,b){var v=b?B(f.buffer):f.buffer;return new f.constructor(v,f.byteOffset,f.byteLength)})(r,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return er(r,n);case"[object Map]":case"[object Set]":return new c;case"[object Number]":case"[object String]":return new c(r);case"[object RegExp]":return(a=new(s=r).constructor(s.source,gr.exec(s))).lastIndex=s.lastIndex,a;case"[object Symbol]":return u=r,J?Object(J.call(u)):{}}}var K=A&&A.isMap,wr=K?H(K):function(r){return M(r)&&O(r)=="[object Map]"},W=A&&A.isSet,dr=W?H(W):function(r){return M(r)&&O(r)=="[object Set]"},$="[object Arguments]",q="[object Function]",Q="[object Object]",o={};function h(r,e,n,u,s,a){var c,f=1&e,b=2&e,v=4&e;if(c!==void 0)return c;if(!nr(r))return r;var l=g(r);if(l){if(c=(function(t){var i=t.length,w=new t.constructor(i);return i&&typeof t[0]=="string"&&Ar.call(t,"index")&&(w.index=t.index,w.input=t.input),w})(r),!f)return tr(r,c)}else{var j=O(r),y=j==q||j=="[object GeneratorFunction]";if(cr(r))return or(r,f);if(j==Q||j==$||y&&!s){if(c=b||y?{}:ar(r),!f)return b?(function(t,i){return p(t,R(t),i)})(r,(function(t,i){return t&&p(i,m(i),t)})(c,r)):(function(t,i){return p(t,F(t),i)})(r,(function(t,i){return t&&p(i,d(i),t)})(c,r))}else{if(!o[j])return s?r:{};c=hr(r,j,f)}}a||(a=new ur);var E=a.get(r);if(E)return E;a.set(r,c),dr(r)?r.forEach(function(t){c.add(h(t,e,n,t,r,a))}):wr(r)&&r.forEach(function(t,i){c.set(i,h(t,e,n,i,r,a))});var S=l?void 0:(v?b?V:fr:b?m:d)(r);return G(S||r,function(t,i){S&&(t=r[i=t]),sr(c,i,h(t,e,n,i,r,a))}),c}function T(r){return typeof r=="function"?r:ir}function mr(r,e){return(g(r)?G:U)(r,T(e))}function X(r,e){var n=[];return U(r,function(u,s,a){e(u,s,a)&&n.push(u)}),n}function Or(r,e){return(g(r)?br:X)(r,N(e))}function xr(r){return r==null?[]:(function(e,n){return jr(n,function(u){return e[u]})})(r,d(r))}function Ur(r){return r===void 0}function Er(r,e,n,u,s){return s(r,function(a,c,f){n=u?(u=!1,a):e(n,a,c,f)}),n}function Sr(r,e,n){var u=g(r)?lr:Er,s=arguments.length<3;return u(r,N(e),n,s,U)}o[$]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object DataView]"]=o["[object Boolean]"]=o["[object Date]"]=o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Map]"]=o["[object Number]"]=o[Q]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object Symbol]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Error]"]=o[q]=o["[object WeakMap]"]=!1;var Fr=x&&1/I(new x([,-0]))[1]==1/0?function(r){return new x(r)}:C;function Br(r,e,n){var u=-1,s=P,a=r.length,c=!0,f=[],b=f;if(a>=200){var v=e?null:Fr(r);if(v)return I(v);c=!1,s=yr,b=new vr}else b=e?[]:f;r:for(;++u<a;){var l=r[u],j=e?e(l):l;if(l=l!==0?l:0,c&&j==j){for(var y=b.length;y--;)if(b[y]===j)continue r;e&&b.push(j),f.push(l)}else s(b,j,n)||(b!==f&&b.push(j),f.push(l))}return f}export{Br as a,h as b,mr as c,L as d,T as e,Or as f,P as g,k as h,Ur as i,V as j,X as k,C as n,Sr as r,xr as v};
@@ -1 +0,0 @@
1
- import{U as r,C as s}from"./mermaid.core-DzthE35Y.js";const n=(a,o)=>r.lang.round(s.parse(a)[o]);export{n as c};
@@ -1,3 +0,0 @@
1
- import{r as h,cT as ue,cU as mr,j as s,cV as pr,cW as fe,cX as Ie,cY as $,cZ as K,c_ as hr,c$ as xr,a as O,T as V,L as me,d0 as vt,d1 as qe,d2 as gt,d3 as bt,d4 as wt,d5 as fr,d6 as jt,d7 as Ve,d8 as vr,d9 as gr,c5 as br,da as yt,db as wr,K as Je,dc as jr,dd as yr,de as Nr,df as Sr,dg as _r,dh as Cr,di as Rr,cM as G,a_ as B,ay as Ar,cp as Tr,dj as Er,ax as Pr,dk as Lr,dl as zr,dm as Ir,dn as kr,dp as Dr,dq as Mr,dr as Fr,ds as Nt,C as Wr,dt as Hr,du as Or,dv as Ur,dw as Xr,dx as Yr,dy as Br,aB as pe,dz as qr,bQ as Vr,dA as Jr,dB as $r,dC as St,dD as Kr,a0 as Gr,dE as Qr,dF as _t,dG as Ct,dH as Zr,E as es,bW as ts,a2 as rs,dI as ss,al as os,am as ns,dJ as as,an as ls,dK as is,__tla as cs}from"./index-C7CoaNFb.js";import{e as Rt,g as ds,__tla as us}from"./edit-page-B-oevUZ9.js";import{C as ms,u as At}from"./links-BpXlz1GG.js";import{P as Tt}from"./empty-state-C99UyDE3.js";import{M as $e,F as ps,A as hs,__tla as xs}from"./markdown-renderer-DRdSWR9X.js";import{i as fs}from"./isEmpty-D-4c7sMv.js";import{__tla as vs}from"./storage-DRaR04wR.js";import"./index-Aeo6WiK7.js";import"./index-CfaDbEdi.js";import"./index-BjgnbONl.js";import"./index-CUFv_thQ.js";import"./index-DdnKZNxM.js";import"./index-C_tkBKNO.js";import"./index-BJNCMUmG.js";import"./index-CFKO7WXI.js";import"./index-aE43R74q.js";import"./index-BAbIIxHU.js";import"./index-ClzeQrN7.js";import"./index-G5QZppK2.js";import"./index-C2MD0vgD.js";import"./apl-CXdQSnD-.js";import"./asciiarmor-D5V0T9Cu.js";import"./asn1-DWPaVWf6.js";import"./brainfuck-CtZaYBKt.js";import"./cobol-stawOqaz.js";import"./clike-BgBwzOhw.js";import"./clojure-DiuoqK-z.js";import"./css-ZjFoif2m.js";import"./cmake-DXn5xaP-.js";import"./coffeescript-BTDxI-eT.js";import"./commonlisp-vq6DHwts.js";import"./cypher-gJDei3ni.js";import"./python-DD-Q2bae.js";import"./crystal-CRzZ78HM.js";import"./d-BShv7fp-.js";import"./diff-UJJ5BM9S.js";import"./dtd-DI9Herc-.js";import"./dylan-DkEP81N9.js";import"./ecl-DPFc0Uaf.js";import"./eiffel-DR5c0IrL.js";import"./elm-DompmV0j.js";import"./erlang-BuqgqA5h.js";import"./factor-CFXhaUWb.js";import"./simple-mode-C3vEBAcb.js";import"./forth-POgR1ypr.js";import"./fortran-DL7KluxX.js";import"./mllike-3c2dg9RT.js";import"./gas-bV0CklSb.js";import"./gherkin-B6X1vGSW.js";import"./groovy-DnIzCrpZ.js";import"./haskell-CLQs6EAM.js";import"./haxe-D25e-2l-.js";import"./idl-pcmmZuaN.js";import"./javascript-BpzJj0-u.js";import"./jinja2-DhgKlfW7.js";import"./julia-DjdwvFuI.js";import"./livescript-HO6ttBFx.js";import"./lua-8DXOpKDz.js";import"./mirc-DkvFAiy5.js";import"./mathematica-IIbmv7SK.js";import"./modelica-DSrSSXCg.js";import"./mumps-zvxmGV4l.js";import"./mbox-z_N2Mo3d.js";import"./nsis-BvKfQ9lQ.js";import"./ntriples-BSwWqoLa.js";import"./octave-C4hdQ5Hf.js";import"./oz-qQq7irPq.js";import"./pascal-CafrKXZF.js";import"./perl-tdMlh9QA.js";import"./pig-CwGJVRC4.js";import"./powershell-D1ly3AHC.js";import"./properties-_nPj978X.js";import"./protobuf-B4y9do6W.js";import"./pug-BTvK5tSS.js";import"./puppet-Bc-yJKzi.js";import"./q-B0kTJ4cI.js";import"./r-BA4EbLKE.js";import"./rpm-DI_rRufH.js";import"./ruby-CR-u2WLS.js";import"./sas-Bqaci40L.js";import"./scheme-qjP0V5Ag.js";import"./shell-BLav31RL.js";import"./sieve-r025o_jW.js";import"./smalltalk-C7J3IyEP.js";import"./sparql-BRLJFz69.js";import"./stylus-Bdo_Aemu.js";import"./swift-B_XXVlXX.js";import"./verilog-B4LBqg_1.js";import"./tcl-B2fODqDH.js";import"./textile-BuVhTOzU.js";import"./toml-wcPdHu67.js";import"./troff-Ce85hlLp.js";import"./ttcn-BxnYHtq8.js";import"./ttcn-cfg-CKJxb-l2.js";import"./turtle-BkSuIpt-.js";import"./webidl-CGwyPRYs.js";import"./vb-BHgjm0DN.js";import"./vbscript-Dawdd5GZ.js";import"./velocity-BdD_26Jv.js";import"./vhdl-CWWH2SUo.js";import"./xquery-CVDBqZPY.js";import"./yacas-I8QjZlxf.js";import"./z80-D8p3gKXp.js";import"./mscgen-B2igx18G.js";import"./index-C1ez98sk.js";import"./trash-B81GTiv6.js";import"./_createAggregator-C5CVY-0t.js";import"./_baseEach-CvTX9w0Y.js";import{__tla as gs}from"./loro_wasm_bg-C1ks32Vm.js";import"./katex-LV4FpwlL.js";import"./between-horizontal-start-Dt2aKpPf.js";let Et,bs=Promise.all([(()=>{try{return cs}catch{}})(),(()=>{try{return us}catch{}})(),(()=>{try{return xs}catch{}})(),(()=>{try{return vs}catch{}})(),(()=>{try{return gs}catch{}})()]).then(async()=>{var ke="ScrollArea",[Ke,ws]=pr(ke),[Pt,W]=Ke(ke),Ge=h.forwardRef((t,e)=>{const{__scopeScrollArea:r,type:n="hover",dir:o,scrollHideDelay:a=600,...l}=t,[i,c]=h.useState(null),[p,d]=h.useState(null),[u,m]=h.useState(null),[f,v]=h.useState(null),[w,C]=h.useState(null),[x,g]=h.useState(0),[_,y]=h.useState(0),[b,S]=h.useState(!1),[E,T]=h.useState(!1),N=ue(e,P=>c(P)),R=mr(o);return s.jsx(Pt,{scope:r,type:n,dir:R,scrollHideDelay:a,scrollArea:i,viewport:p,onViewportChange:d,content:u,onContentChange:m,scrollbarX:f,onScrollbarXChange:v,scrollbarXEnabled:b,onScrollbarXEnabledChange:S,scrollbarY:w,onScrollbarYChange:C,scrollbarYEnabled:E,onScrollbarYEnabledChange:T,onCornerWidthChange:g,onCornerHeightChange:y,children:s.jsx(fe.div,{dir:R,...l,ref:N,style:{position:"relative","--radix-scroll-area-corner-width":x+"px","--radix-scroll-area-corner-height":_+"px",...t.style}})})});Ge.displayName=ke;var Qe="ScrollAreaViewport",Ze=h.forwardRef((t,e)=>{const{__scopeScrollArea:r,children:n,nonce:o,...a}=t,l=W(Qe,r),i=h.useRef(null),c=ue(e,i,l.onViewportChange);return s.jsxs(s.Fragment,{children:[s.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:o}),s.jsx(fe.div,{"data-radix-scroll-area-viewport":"",...a,ref:c,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...t.style},children:s.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});Ze.displayName=Qe;var X="ScrollAreaScrollbar",De=h.forwardRef((t,e)=>{const{forceMount:r,...n}=t,o=W(X,t.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:l}=o,i=t.orientation==="horizontal";return h.useEffect(()=>(i?a(!0):l(!0),()=>{i?a(!1):l(!1)}),[i,a,l]),o.type==="hover"?s.jsx(Lt,{...n,ref:e,forceMount:r}):o.type==="scroll"?s.jsx(zt,{...n,ref:e,forceMount:r}):o.type==="auto"?s.jsx(et,{...n,ref:e,forceMount:r}):o.type==="always"?s.jsx(Me,{...n,ref:e}):null});De.displayName=X;var Lt=h.forwardRef((t,e)=>{const{forceMount:r,...n}=t,o=W(X,t.__scopeScrollArea),[a,l]=h.useState(!1);return h.useEffect(()=>{const i=o.scrollArea;let c=0;if(i){const p=()=>{window.clearTimeout(c),l(!0)},d=()=>{c=window.setTimeout(()=>l(!1),o.scrollHideDelay)};return i.addEventListener("pointerenter",p),i.addEventListener("pointerleave",d),()=>{window.clearTimeout(c),i.removeEventListener("pointerenter",p),i.removeEventListener("pointerleave",d)}}},[o.scrollArea,o.scrollHideDelay]),s.jsx(Ie,{present:r||a,children:s.jsx(et,{"data-state":a?"visible":"hidden",...n,ref:e})})}),zt=h.forwardRef((t,e)=>{const{forceMount:r,...n}=t,o=W(X,t.__scopeScrollArea),a=t.orientation==="horizontal",l=we(()=>c("SCROLL_END"),100),[i,c]=(p="hidden",d={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},h.useReducer((u,m)=>d[u][m]??u,p));var p,d;return h.useEffect(()=>{if(i==="idle"){const u=window.setTimeout(()=>c("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(u)}},[i,o.scrollHideDelay,c]),h.useEffect(()=>{const u=o.viewport,m=a?"scrollLeft":"scrollTop";if(u){let f=u[m];const v=()=>{const w=u[m];f!==w&&(c("SCROLL"),l()),f=w};return u.addEventListener("scroll",v),()=>u.removeEventListener("scroll",v)}},[o.viewport,a,c,l]),s.jsx(Ie,{present:r||i!=="hidden",children:s.jsx(Me,{"data-state":i==="hidden"?"hidden":"visible",...n,ref:e,onPointerEnter:$(t.onPointerEnter,()=>c("POINTER_ENTER")),onPointerLeave:$(t.onPointerLeave,()=>c("POINTER_LEAVE"))})})}),et=h.forwardRef((t,e)=>{const r=W(X,t.__scopeScrollArea),{forceMount:n,...o}=t,[a,l]=h.useState(!1),i=t.orientation==="horizontal",c=we(()=>{if(r.viewport){const p=r.viewport.offsetWidth<r.viewport.scrollWidth,d=r.viewport.offsetHeight<r.viewport.scrollHeight;l(i?p:d)}},10);return Q(r.viewport,c),Q(r.content,c),s.jsx(Ie,{present:n||a,children:s.jsx(Me,{"data-state":a?"visible":"hidden",...o,ref:e})})}),Me=h.forwardRef((t,e)=>{const{orientation:r="vertical",...n}=t,o=W(X,t.__scopeScrollArea),a=h.useRef(null),l=h.useRef(0),[i,c]=h.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),p=nt(i.viewport,i.content),d={...n,sizes:i,onSizesChange:c,hasThumb:p>0&&p<1,onThumbChange:m=>a.current=m,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:m=>l.current=m};function u(m,f){return(function(v,w,C,x="ltr"){const g=be(C),_=g/2,y=w||_,b=g-y,S=C.scrollbar.paddingStart+y,E=C.scrollbar.size-C.scrollbar.paddingEnd-b,T=C.content-C.viewport,N=x==="ltr"?[0,T]:[-1*T,0];return lt([S,E],N)(v)})(m,l.current,i,f)}return r==="horizontal"?s.jsx(It,{...d,ref:e,onThumbPositionChange:()=>{if(o.viewport&&a.current){const m=at(o.viewport.scrollLeft,i,o.dir);a.current.style.transform=`translate3d(${m}px, 0, 0)`}},onWheelScroll:m=>{o.viewport&&(o.viewport.scrollLeft=m)},onDragScroll:m=>{o.viewport&&(o.viewport.scrollLeft=u(m,o.dir))}}):r==="vertical"?s.jsx(kt,{...d,ref:e,onThumbPositionChange:()=>{if(o.viewport&&a.current){const m=at(o.viewport.scrollTop,i);a.current.style.transform=`translate3d(0, ${m}px, 0)`}},onWheelScroll:m=>{o.viewport&&(o.viewport.scrollTop=m)},onDragScroll:m=>{o.viewport&&(o.viewport.scrollTop=u(m))}}):null}),It=h.forwardRef((t,e)=>{const{sizes:r,onSizesChange:n,...o}=t,a=W(X,t.__scopeScrollArea),[l,i]=h.useState(),c=h.useRef(null),p=ue(e,c,a.onScrollbarXChange);return h.useEffect(()=>{c.current&&i(getComputedStyle(c.current))},[c]),s.jsx(rt,{"data-orientation":"horizontal",...o,ref:p,sizes:r,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":be(r)+"px",...t.style},onThumbPointerDown:d=>t.onThumbPointerDown(d.x),onDragScroll:d=>t.onDragScroll(d.x),onWheelScroll:(d,u)=>{if(a.viewport){const m=a.viewport.scrollLeft+d.deltaX;t.onWheelScroll(m),it(m,u)&&d.preventDefault()}},onResize:()=>{c.current&&a.viewport&&l&&n({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:ge(l.paddingLeft),paddingEnd:ge(l.paddingRight)}})}})}),kt=h.forwardRef((t,e)=>{const{sizes:r,onSizesChange:n,...o}=t,a=W(X,t.__scopeScrollArea),[l,i]=h.useState(),c=h.useRef(null),p=ue(e,c,a.onScrollbarYChange);return h.useEffect(()=>{c.current&&i(getComputedStyle(c.current))},[c]),s.jsx(rt,{"data-orientation":"vertical",...o,ref:p,sizes:r,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":be(r)+"px",...t.style},onThumbPointerDown:d=>t.onThumbPointerDown(d.y),onDragScroll:d=>t.onDragScroll(d.y),onWheelScroll:(d,u)=>{if(a.viewport){const m=a.viewport.scrollTop+d.deltaY;t.onWheelScroll(m),it(m,u)&&d.preventDefault()}},onResize:()=>{c.current&&a.viewport&&l&&n({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:ge(l.paddingTop),paddingEnd:ge(l.paddingBottom)}})}})}),[Dt,tt]=Ke(X),rt=h.forwardRef((t,e)=>{const{__scopeScrollArea:r,sizes:n,hasThumb:o,onThumbChange:a,onThumbPointerUp:l,onThumbPointerDown:i,onThumbPositionChange:c,onDragScroll:p,onWheelScroll:d,onResize:u,...m}=t,f=W(X,r),[v,w]=h.useState(null),C=ue(e,N=>w(N)),x=h.useRef(null),g=h.useRef(""),_=f.viewport,y=n.content-n.viewport,b=K(d),S=K(c),E=we(u,10);function T(N){if(x.current){const R=N.clientX-x.current.left,P=N.clientY-x.current.top;p({x:R,y:P})}}return h.useEffect(()=>{const N=R=>{const P=R.target;(v==null?void 0:v.contains(P))&&b(R,y)};return document.addEventListener("wheel",N,{passive:!1}),()=>document.removeEventListener("wheel",N,{passive:!1})},[_,v,y,b]),h.useEffect(S,[n,S]),Q(v,E),Q(f.content,E),s.jsx(Dt,{scope:r,scrollbar:v,hasThumb:o,onThumbChange:K(a),onThumbPointerUp:K(l),onThumbPositionChange:S,onThumbPointerDown:K(i),children:s.jsx(fe.div,{...m,ref:C,style:{position:"absolute",...m.style},onPointerDown:$(t.onPointerDown,N=>{N.button===0&&(N.target.setPointerCapture(N.pointerId),x.current=v.getBoundingClientRect(),g.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",f.viewport&&(f.viewport.style.scrollBehavior="auto"),T(N))}),onPointerMove:$(t.onPointerMove,T),onPointerUp:$(t.onPointerUp,N=>{const R=N.target;R.hasPointerCapture(N.pointerId)&&R.releasePointerCapture(N.pointerId),document.body.style.webkitUserSelect=g.current,f.viewport&&(f.viewport.style.scrollBehavior=""),x.current=null})})})}),ve="ScrollAreaThumb",st=h.forwardRef((t,e)=>{const{forceMount:r,...n}=t,o=tt(ve,t.__scopeScrollArea);return s.jsx(Ie,{present:r||o.hasThumb,children:s.jsx(Mt,{ref:e,...n})})}),Mt=h.forwardRef((t,e)=>{const{__scopeScrollArea:r,style:n,...o}=t,a=W(ve,r),l=tt(ve,r),{onThumbPositionChange:i}=l,c=ue(e,u=>l.onThumbChange(u)),p=h.useRef(void 0),d=we(()=>{p.current&&(p.current(),p.current=void 0)},100);return h.useEffect(()=>{const u=a.viewport;if(u){const m=()=>{if(d(),!p.current){const f=Wt(u,i);p.current=f,i()}};return i(),u.addEventListener("scroll",m),()=>u.removeEventListener("scroll",m)}},[a.viewport,d,i]),s.jsx(fe.div,{"data-state":l.hasThumb?"visible":"hidden",...o,ref:c,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:$(t.onPointerDownCapture,u=>{const m=u.target.getBoundingClientRect(),f=u.clientX-m.left,v=u.clientY-m.top;l.onThumbPointerDown({x:f,y:v})}),onPointerUp:$(t.onPointerUp,l.onThumbPointerUp)})});st.displayName=ve;var Fe="ScrollAreaCorner",ot=h.forwardRef((t,e)=>{const r=W(Fe,t.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?s.jsx(Ft,{...t,ref:e}):null});ot.displayName=Fe;var Ft=h.forwardRef((t,e)=>{const{__scopeScrollArea:r,...n}=t,o=W(Fe,r),[a,l]=h.useState(0),[i,c]=h.useState(0),p=!!(a&&i);return Q(o.scrollbarX,()=>{var u;const d=((u=o.scrollbarX)==null?void 0:u.offsetHeight)||0;o.onCornerHeightChange(d),c(d)}),Q(o.scrollbarY,()=>{var u;const d=((u=o.scrollbarY)==null?void 0:u.offsetWidth)||0;o.onCornerWidthChange(d),l(d)}),p?s.jsx(fe.div,{...n,ref:e,style:{width:a,height:i,position:"absolute",right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:0,...t.style}}):null});function ge(t){return t?parseInt(t,10):0}function nt(t,e){const r=t/e;return isNaN(r)?0:r}function be(t){const e=nt(t.viewport,t.content),r=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,n=(t.scrollbar.size-r)*e;return Math.max(n,18)}function at(t,e,r="ltr"){const n=be(e),o=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,a=e.scrollbar.size-o,l=e.content-e.viewport,i=a-n,c=xr(t,r==="ltr"?[0,l]:[-1*l,0]);return lt([0,l],[0,i])(c)}function lt(t,e){return r=>{if(t[0]===t[1]||e[0]===e[1])return e[0];const n=(e[1]-e[0])/(t[1]-t[0]);return e[0]+n*(r-t[0])}}function it(t,e){return t>0&&t<e}var Wt=(t,e=()=>{})=>{let r={left:t.scrollLeft,top:t.scrollTop},n=0;return(function o(){const a={left:t.scrollLeft,top:t.scrollTop},l=r.left!==a.left,i=r.top!==a.top;(l||i)&&e(),r=a,n=window.requestAnimationFrame(o)})(),()=>window.cancelAnimationFrame(n)};function we(t,e){const r=K(t),n=h.useRef(0);return h.useEffect(()=>()=>window.clearTimeout(n.current),[]),h.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,e)},[r,e])}function Q(t,e){const r=K(e);hr(()=>{let n=0;if(t){const o=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return o.observe(t),()=>{window.cancelAnimationFrame(n),o.unobserve(t)}}},[t,r])}var ct=Ge,Ht=Ze,Ot=ot;const dt=h.forwardRef((t,e)=>{const r=O.c(15);let n,o,a,l,i,c,p,d;return r[0]!==t?({className:o,children:n,...a}=t,r[0]=t,r[1]=n,r[2]=o,r[3]=a):(n=r[1],o=r[2],a=r[3]),r[4]!==o?(l=V("relative overflow-hidden",o),r[4]=o,r[5]=l):l=r[5],r[6]!==n?(i=s.jsx(Ht,{className:"h-full w-full rounded-[inherit]",children:n}),r[6]=n,r[7]=i):i=r[7],r[8]===Symbol.for("react.memo_cache_sentinel")?(c=s.jsx(ut,{}),p=s.jsx(Ot,{}),r[8]=c,r[9]=p):(c=r[8],p=r[9]),r[10]!==a||r[11]!==e||r[12]!==l||r[13]!==i?(d=s.jsxs(ct,{ref:e,className:l,...a,children:[i,c,p]}),r[10]=a,r[11]=e,r[12]=l,r[13]=i,r[14]=d):d=r[14],d});dt.displayName=ct.displayName;const ut=h.forwardRef((t,e)=>{const r=O.c(14);let n,o,a;r[0]!==t?({className:n,orientation:a,...o}=t,r[0]=t,r[1]=n,r[2]=o,r[3]=a):(n=r[1],o=r[2],a=r[3]);const l=a===void 0?"vertical":a,i=l==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-px",c=l==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-px";let p,d,u;return r[4]!==n||r[5]!==i||r[6]!==c?(p=V("flex touch-none select-none transition-colors",i,c,n),r[4]=n,r[5]=i,r[6]=c,r[7]=p):p=r[7],r[8]===Symbol.for("react.memo_cache_sentinel")?(d=s.jsx(st,{className:"relative flex-1 rounded-full bg-border"}),r[8]=d):d=r[8],r[9]!==l||r[10]!==o||r[11]!==e||r[12]!==p?(u=s.jsx(De,{ref:e,orientation:l,className:p,...o,children:d}),r[9]=l,r[10]=o,r[11]=e,r[12]=p,r[13]=u):u=r[13],u});ut.displayName=De.displayName;const Ut=t=>{const e=O.c(13),{reasoning:r,index:n,isStreaming:o}=t,a=n===void 0?0:n,l=o!==void 0&&o,i=l?"reasoning":void 0;let c;e[0]===Symbol.for("react.memo_cache_sentinel")?(c=s.jsx(qe,{className:"h-3 w-3"}),e[0]=c):c=e[0];const p=l?"Thinking":"View reasoning";let d,u,m,f;return e[1]!==r.length||e[2]!==p?(d=s.jsx(vt,{className:"text-xs text-muted-foreground hover:bg-muted/50 px-2 py-1 h-auto rounded-sm [&[data-state=open]>svg]:rotate-180",children:s.jsxs("span",{className:"flex items-center gap-2",children:[c,p," (",r.length," ","chars)"]})}),e[1]=r.length,e[2]=p,e[3]=d):d=e[3],e[4]!==r?(u=s.jsx(gt,{className:"pb-2 px-2",children:s.jsx("div",{className:"bg-muted/30 border border-muted/50 rounded-md p-3 italic text-muted-foreground/90 relative",children:s.jsx("div",{className:"pr-6",children:s.jsx($e,{content:r})})})}),e[4]=r,e[5]=u):u=e[5],e[6]!==d||e[7]!==u?(m=s.jsxs(bt,{value:"reasoning",className:"border-0",children:[d,u]}),e[6]=d,e[7]=u,e[8]=m):m=e[8],e[9]!==a||e[10]!==i||e[11]!==m?(f=s.jsx(wt,{type:"single",collapsible:!0,className:"w-full mb-2",value:i,children:m},a),e[9]=a,e[10]=i,e[11]=m,e[12]=f):f=e[12],f},Xt=fr({status:jt().default("success"),auth_required:vr().default(!1),action_url:Ve(),next_steps:Ve(),meta:Ve(),message:jt().nullish()}).passthrough(),Yt=t=>{const e=O.c(12),{data:r}=t;let n;if(e[0]!==r){const{status:o,auth_required:a,action_url:l,meta:i,next_steps:c,message:p,...d}=r;let u,m,f,v,w;e[2]===Symbol.for("react.memo_cache_sentinel")?(u=s.jsx("h3",{className:"text-xs font-semibold text-muted-foreground",children:"Tool Result"}),e[2]=u):u=e[2],e[3]!==o?(m=s.jsx("span",{className:"text-xs px-2 py-0.5 bg-[var(--grass-2)] text-[var(--grass-11)] rounded-full font-medium capitalize",children:o}),e[3]=o,e[4]=m):m=e[4],e[5]!==a?(f=a&&s.jsx("span",{className:"text-xs px-2 py-0.5 bg-[var(--amber-2)] text-[var(--amber-11)] rounded-full",children:"Auth Required"}),e[5]=a,e[6]=f):f=e[6],e[7]!==m||e[8]!==f?(v=s.jsxs("div",{className:"flex items-center justify-between",children:[u,s.jsxs("div",{className:"flex items-center gap-2",children:[m,f]})]}),e[7]=m,e[8]=f,e[9]=v):v=e[9],e[10]!==p?(w=p&&s.jsxs("div",{className:"flex items-start gap-2",children:[s.jsx(wr,{className:"h-3 w-3 text-[var(--blue-11)] mt-0.5 flex-shrink-0"}),s.jsx("div",{className:"text-xs text-foreground",children:p})]}),e[10]=p,e[11]=w):w=e[11],n=s.jsxs("div",{className:"flex flex-col gap-1.5",children:[v,w,d&&s.jsx("div",{className:"space-y-3",children:Object.entries(d).map(Vt)})]}),e[0]=r,e[1]=n}else n=e[1];return n},Bt=t=>{const e=O.c(8),{result:r}=t;let n;e[0]!==r?(n=Xt.safeParse(r),e[0]=r,e[1]=n):n=e[1];const o=n;if(o.success){let i;return e[2]!==o.data?(i=s.jsx(Yt,{data:o.data}),e[2]=o.data,e[3]=i):i=e[3],i}let a,l;return e[4]!==r?(a=typeof r=="string"?r:JSON.stringify(r,null,2),e[4]=r,e[5]=a):a=e[5],e[6]!==a?(l=s.jsx("div",{className:"text-xs font-medium text-muted-foreground mb-1",children:a}),e[6]=a,e[7]=l):l=e[7],l},qt=t=>{const e=O.c(6),{input:r}=t;if(!(r&&r!==null))return null;const n=typeof r=="object"&&Object.keys(r).length>0;let o,a,l;return e[0]===Symbol.for("react.memo_cache_sentinel")?(o=s.jsx("h3",{className:"text-xs font-semibold text-muted-foreground",children:"Tool Request"}),e[0]=o):o=e[0],e[1]!==r||e[2]!==n?(a=n?JSON.stringify(r,null,2):String(r),e[1]=r,e[2]=n,e[3]=a):a=e[3],e[4]!==a?(l=s.jsxs("div",{className:"space-y-2",children:[o,s.jsx("pre",{className:"bg-[var(--slate-2)] p-2 text-muted-foreground border border-[var(--slate-4)] rounded text-xs overflow-auto scrollbar-thin max-h-64",children:a})]}),e[4]=a,e[5]=l):l=e[5],l},mt=t=>{const e=O.c(38),{toolName:r,result:n,error:o,index:a,state:l,className:i,input:c}=t,p=a===void 0?0:a,d=l==="output-available"&&(n||o),u=o?"error":d?"success":"loading";let m;e[0]!==u?(m=()=>{switch(u){case"loading":return s.jsx(yt,{className:"h-3 w-3 animate-spin"});case"error":return s.jsx(br,{className:"h-3 w-3 text-[var(--red-11)]"});case"success":return s.jsx(ms,{className:"h-3 w-3 text-[var(--grass-11)]"});default:return s.jsx(gr,{className:"h-3 w-3"})}},e[0]=u,e[1]=m):m=e[1];const f=m;let v;e[2]!==o||e[3]!==d||e[4]!==u?(v=()=>u==="loading"?"Running":o?"Failed":d?"Done":"Tool call",e[2]=o,e[3]=d,e[4]=u,e[5]=v):v=e[5];const w=v,C=`tool-${p}`;let x;e[6]!==i?(x=V("w-full",i),e[6]=i,e[7]=x):x=e[7];const g=u==="error"&&"text-[var(--red-11)]/80",_=u==="success"&&"text-[var(--grass-11)]/80";let y,b;e[8]!==g||e[9]!==_?(y=V("h-6 text-xs border-border shadow-none! ring-0! bg-muted/60 hover:bg-muted py-0 px-2 gap-1 rounded-sm [&[data-state=open]>svg]:rotate-180 hover:no-underline",g,_),e[8]=g,e[9]=_,e[10]=y):y=e[10],e[11]!==f?(b=f(),e[11]=f,e[12]=b):b=e[12];const S=w();let E,T,N,R,P,k,D,z;return e[13]!==r?(E=(function(F){return F.replace("tool-","")})(r),e[13]=r,e[14]=E):E=e[14],e[15]!==E?(T=s.jsx("code",{className:"font-mono text-xs",children:E}),e[15]=E,e[16]=T):T=e[16],e[17]!==S||e[18]!==T||e[19]!==b?(N=s.jsxs("span",{className:"flex items-center gap-1",children:[b,S,":",T]}),e[17]=S,e[18]=T,e[19]=b,e[20]=N):N=e[20],e[21]!==N||e[22]!==y?(R=s.jsx(vt,{className:y,children:N}),e[21]=N,e[22]=y,e[23]=R):R=e[23],e[24]!==o||e[25]!==d||e[26]!==c||e[27]!==n?(P=d&&s.jsxs("div",{className:"space-y-3",children:[s.jsx(qt,{input:c}),n!=null&&s.jsx(Bt,{result:n}),o&&s.jsxs("div",{className:"bg-[var(--red-2)] border border-[var(--red-6)] rounded-lg p-3",children:[s.jsxs("div",{className:"text-xs font-semibold text-[var(--red-11)] mb-2 flex items-center gap-2",children:[s.jsx("div",{className:"w-1.5 h-1.5 bg-[var(--red-9)] rounded-full"}),"Error"]}),s.jsx("div",{className:"text-sm text-[var(--red-11)] leading-relaxed",children:o})]})]}),e[24]=o,e[25]=d,e[26]=c,e[27]=n,e[28]=P):P=e[28],e[29]!==P?(k=s.jsx(gt,{className:"py-2 px-2",children:P}),e[29]=P,e[30]=k):k=e[30],e[31]!==R||e[32]!==k?(D=s.jsxs(bt,{value:"tool-call",className:"border-0",children:[R,k]}),e[31]=R,e[32]=k,e[33]=D):D=e[33],e[34]!==D||e[35]!==C||e[36]!==x?(z=s.jsx(wt,{type:"single",collapsible:!0,className:x,children:D},C),e[34]=D,e[35]=C,e[36]=x,e[37]=z):z=e[37],z};function Vt(t){const[e,r]=t;return fs(r)?null:s.jsxs("div",{className:"space-y-1.5",children:[s.jsxs("div",{className:"text-xs font-medium text-muted-foreground capitalize flex items-center gap-2",children:[s.jsx("div",{className:"w-1.5 h-1.5 bg-[var(--blue-9)] rounded-full"}),e]}),s.jsx("pre",{className:"bg-[var(--slate-2)] p-2 text-muted-foreground border border-[var(--slate-4)] rounded text-xs overflow-auto scrollbar-thin max-h-64",children:JSON.stringify(r,null,2)})]},e)}const Jt=new Set(["openai","google","anthropic"]),$t=["image/*","text/*"],Kt=({onNewChat:t,activeChatId:e,setActiveChat:r})=>{const{handleClick:n}=At(),o=Je(Rt),{locale:a}=ts(),l=h.useMemo(()=>[...o.chats.values()].sort((i,c)=>c.updatedAt-i.updatedAt),[o.chats]);return s.jsxs("div",{className:"flex border-b px-2 py-1 justify-between shrink-0 items-center",children:[s.jsx(pe,{content:"New chat",children:s.jsx(B,{variant:"text",size:"icon",onClick:t,children:s.jsx(rs,{className:"h-4 w-4"})})}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(pe,{content:"AI Settings",children:s.jsx(B,{variant:"text",size:"xs",className:"hover:bg-foreground/10 py-2",onClick:()=>n("ai"),children:s.jsx(ss,{className:"h-4 w-4"})})}),s.jsxs(os,{children:[s.jsx(pe,{content:"Previous chats",children:s.jsx(ns,{asChild:!0,children:s.jsx(B,{variant:"text",size:"icon",children:s.jsx(as,{className:"h-4 w-4"})})})}),s.jsx(ls,{className:"w-[520px] p-0",align:"start",side:"right",children:s.jsx(dt,{className:"h-[500px] p-4",children:s.jsxs("div",{className:"space-y-4",children:[l.length===0&&s.jsx(Tt,{title:"No chats yet",description:"Start a new chat to get started",icon:s.jsx(qe,{})}),l.map(i=>s.jsxs("button",{className:V("w-full p-3 rounded-md cursor-pointer hover:bg-accent text-left",i.id===e&&"bg-accent"),onClick:()=>{r(i.id)},type:"button",children:[s.jsx("div",{className:"font-medium",children:i.title}),s.jsx("div",{className:"text-sm text-muted-foreground",children:is(i.updatedAt,a)})]},i.id))]})})})]})]})]})},pt=h.memo(t=>{const e=O.c(15),{message:r,index:n,onEdit:o,isStreamingReasoning:a,isLast:l}=t;let i;e[0]!==n||e[1]!==o?(i=w=>{var _,y;const C=(_=w.parts)==null?void 0:_.filter(Gt),x=C==null?void 0:C.map(Qt).join(`
2
- `),g=(y=w.parts)==null?void 0:y.filter(Zt);return s.jsxs("div",{className:"w-[95%] bg-background border p-1 rounded-sm",children:[g==null?void 0:g.map(er),s.jsx(Nt,{value:x,placeholder:"Type your message...",onChange:tr,onSubmit:(b,S)=>{S.trim()&&o(n,S)},onClose:rr},w.id)]})},e[0]=n,e[1]=o,e[2]=i):i=e[2];const c=i;let p;e[3]!==l||e[4]!==a?(p=w=>{const C=w.parts.filter(sr).map(or).join(`
3
- `);return s.jsxs("div",{className:"w-[95%] break-words",children:[s.jsx("div",{className:"absolute right-1 top-1 opacity-0 group-hover:opacity-100 transition-opacity",children:s.jsx(Wr,{className:"h-3 w-3",value:C||""})}),w.parts.map((x,g)=>{if((function(_){return _.type.startsWith("tool-")})(x))return s.jsx(mt,{index:g,toolName:x.type,result:x.output,className:"my-2",state:x.state,input:x.input},g);switch(x.type){case"text":return s.jsx($e,{content:x.text},g);case"reasoning":return s.jsx(Ut,{reasoning:x.text,index:g,isStreaming:l&&a&&g===(w.parts.length||0)-1},g);case"dynamic-tool":return s.jsx(mt,{index:g,toolName:x.type,result:x.output,state:x.state,input:x.input,className:"my-2"},g);case"data-reasoning-signature":return null;default:if(x.type.startsWith("data-"))return me.log("Found data part",x),null;me.error("Unhandled part type:",x.type);try{return s.jsx("div",{className:"text-xs text-muted-foreground",children:s.jsx($e,{content:JSON.stringify(x,null,2)})},g)}catch(_){const y=_;return me.error("Error rendering part:",x.type,y),null}}})]})},e[3]=l,e[4]=a,e[5]=p):p=e[5];const d=p,u=r.role==="user"?"justify-end":"justify-start";let m,f,v;return e[6]!==u?(m=V("flex group relative",u),e[6]=u,e[7]=m):m=e[7],e[8]!==r||e[9]!==d||e[10]!==c?(f=r.role==="user"?c(r):d(r),e[8]=r,e[9]=d,e[10]=c,e[11]=f):f=e[11],e[12]!==m||e[13]!==f?(v=s.jsx("div",{className:m,children:f}),e[12]=m,e[13]=f,e[14]=v):v=e[14],v});pt.displayName="ChatMessage";const ht=h.memo(t=>{var I;const e=O.c(37),{isEmpty:r,onSendClick:n,isLoading:o,onStop:a,fileInputRef:l,onAddFiles:i,onAddContext:c}=t,p=Je(yr),d=(p==null?void 0:p.mode)||"manual",u=((I=p==null?void 0:p.models)==null?void 0:I.chat_model)||Nr,m=Sr.parse(u).providerId,{saveModeChange:f}=_r();let v;e[0]===Symbol.for("react.memo_cache_sentinel")?(v=[{value:"ask",label:"Ask",subtitle:"Use AI with access to read-only tools like documentation search"},{value:"manual",label:"Manual",subtitle:"Pure chat, no tool usage"}],e[0]=v):v=e[0];const w=v,C=Jt.has(m);let x,g,_,y,b,S,E,T,N;e[1]!==d?(x=s.jsx(Hr,{className:"h-6 text-xs border-border shadow-none! ring-0! bg-muted hover:bg-muted/30 py-0 px-2 gap-1 capitalize",children:d}),e[1]=d,e[2]=x):x=e[2],e[3]===Symbol.for("react.memo_cache_sentinel")?(g=s.jsx(Or,{children:"AI Mode"}),e[3]=g):g=e[3],e[4]!==w?(_=s.jsx(Cr,{children:s.jsxs(Rr,{children:[g,w.map(nr)]})}),e[4]=w,e[5]=_):_=e[5],e[6]!==d||e[7]!==f||e[8]!==x||e[9]!==_?(y=s.jsx(Ur,{feature:"mcp_docs",children:s.jsxs(Xr,{value:d,onValueChange:f,children:[x,_]})}),e[6]=d,e[7]=f,e[8]=x,e[9]=_,e[10]=y):y=e[10],e[11]===Symbol.for("react.memo_cache_sentinel")?(b=s.jsx(Yr,{placeholder:"Model",triggerClassName:"h-6 text-xs shadow-none! ring-0! bg-muted hover:bg-muted/30 rounded-sm",iconSize:"small",showAddCustomModelDocs:!0,forRole:"chat"}),e[11]=b):b=e[11],e[12]!==y?(S=s.jsxs("div",{className:"flex items-center gap-2",children:[y,b]}),e[12]=y,e[13]=S):S=e[13],e[14]===Symbol.for("react.memo_cache_sentinel")?(E=s.jsx(Br,{className:"h-3.5 w-3.5"}),e[14]=E):E=e[14],e[15]!==c?(T=s.jsx(pe,{content:"Add context",children:s.jsx(B,{variant:"text",size:"icon",onClick:c,children:E})}),e[15]=c,e[16]=T):T=e[16],e[17]!==l||e[18]!==C||e[19]!==i?(N=C&&s.jsxs(s.Fragment,{children:[s.jsx(pe,{content:"Attach a file",children:s.jsx(B,{variant:"text",size:"icon",className:"cursor-pointer",onClick:()=>{var Y;return(Y=l.current)==null?void 0:Y.click()},title:"Attach a file",children:s.jsx(qr,{className:"h-3.5 w-3.5"})})}),s.jsx(Vr,{ref:l,type:"file",multiple:!0,hidden:!0,onChange:Y=>{Y.target.files&&i([...Y.target.files])},accept:$t.join(",")})]}),e[17]=l,e[18]=C,e[19]=i,e[20]=N):N=e[20];const R=o?"Stop":"Submit",P=o?a:n,k=!o&&r;let D,z,F,U,q;return e[21]!==o?(D=o?s.jsx(Jr,{className:"h-3 w-3 fill-current"}):s.jsx($r,{className:"h-3 w-3"}),e[21]=o,e[22]=D):D=e[22],e[23]!==P||e[24]!==k||e[25]!==D?(z=s.jsx(B,{variant:"text",size:"sm",className:"h-6 w-6 p-0 hover:bg-muted/30 cursor-pointer",onClick:P,disabled:k,children:D}),e[23]=P,e[24]=k,e[25]=D,e[26]=z):z=e[26],e[27]!==R||e[28]!==z?(F=s.jsx(pe,{content:R,children:z}),e[27]=R,e[28]=z,e[29]=F):F=e[29],e[30]!==N||e[31]!==F||e[32]!==T?(U=s.jsxs("div",{className:"flex flex-row",children:[T,N,F]}),e[30]=N,e[31]=F,e[32]=T,e[33]=U):U=e[33],e[34]!==U||e[35]!==S?(q=s.jsx(St,{children:s.jsxs("div",{className:"px-3 py-2 border-t border-border/20 flex flex-row items-center justify-between",children:[S,U]})}),e[34]=U,e[35]=S,e[36]=q):q=e[36],q});ht.displayName="ChatInputFooter";const We=h.memo(t=>{const e=O.c(29),{placeholder:r,input:n,inputClassName:o,setInput:a,onSubmit:l,inputRef:i,isLoading:c,onStop:p,fileInputRef:d,onAddFiles:u,onClose:m}=t;let f;e[0]!==n||e[1]!==l?(f=()=>{n.trim()&&l(void 0,n)},e[0]=n,e[1]=l,e[2]=f):f=e[2];const v=G(f);let w;e[3]!==o?(w=V("px-2 py-3 flex-1",o),e[3]=o,e[4]=w):w=e[4];const C=r||"Type your message...";let x,g;e[5]!==n||e[6]!==i||e[7]!==u||e[8]!==m||e[9]!==l||e[10]!==a||e[11]!==C?(x=s.jsx(Nt,{inputRef:i,value:n,onChange:a,onSubmit:l,onClose:m,onAddFiles:u,placeholder:C}),e[5]=n,e[6]=i,e[7]=u,e[8]=m,e[9]=l,e[10]=a,e[11]=C,e[12]=x):x=e[12],e[13]!==w||e[14]!==x?(g=s.jsx("div",{className:w,children:x}),e[13]=w,e[14]=x,e[15]=g):g=e[15];const _=!n.trim();let y,b,S;return e[16]!==i?(y=()=>Kr(i),e[16]=i,e[17]=y):y=e[17],e[18]!==d||e[19]!==v||e[20]!==c||e[21]!==u||e[22]!==p||e[23]!==_||e[24]!==y?(b=s.jsx(ht,{isEmpty:_,onAddContext:y,onSendClick:v,isLoading:c,onStop:p,fileInputRef:d,onAddFiles:u}),e[18]=d,e[19]=v,e[20]=c,e[21]=u,e[22]=p,e[23]=_,e[24]=y,e[25]=b):b=e[25],e[26]!==g||e[27]!==b?(S=s.jsxs("div",{className:"relative shrink-0 min-h-[80px] flex flex-col border-t",children:[g,b]}),e[26]=g,e[27]=b,e[28]=S):S=e[28],S});We.displayName="ChatInput";let xt;Et=()=>{const t=O.c(6),e=Je(jr),{handleClick:r}=At();if(!e){let o,a,l;return t[0]!==r?(o=s.jsx(B,{variant:"outline",size:"sm",onClick:()=>r("ai"),children:"Edit AI settings"}),t[0]=r,t[1]=o):o=t[1],t[2]===Symbol.for("react.memo_cache_sentinel")?(a=s.jsx(qe,{}),t[2]=a):a=t[2],t[3]!==o?(l=s.jsx(Tt,{title:"Chat with AI",description:"AI is currently disabled. Add your API key to enable.",action:o,icon:a}),t[3]=o,t[4]=l):l=t[4],l}let n;return t[5]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx(xt,{}),t[5]=n):n=t[5],n},xt=()=>{const t=O.c(86),e=Ar(Rt),[r,n]=Tr(ds),[o,a]=h.useState(""),[l,i]=h.useState(""),[c,p]=h.useState(),d=h.useRef(null),u=h.useRef(null),m=h.useRef(null),f=h.useRef(null),v=h.useRef(null),w=Er(),{invokeAiTool:C}=Pr(),x=r==null?void 0:r.id;let g,_,y;t[0]!==(r==null?void 0:r.messages)?(g=(r==null?void 0:r.messages)||[],t[0]=r==null?void 0:r.messages,t[1]=g):g=t[1],t[2]!==w?(_=new Lr({api:w.getAiURL("chat").toString(),headers:w.headers(),prepareSendMessagesRequest:lr}),t[2]=w,t[3]=_):_=t[3],t[4]!==e?(y=j=>{const{messages:A}=j;e(L=>(({chatState:M,chatId:ce,messages:J})=>{if(!ce)return me.warn("No active chat"),M;const de=M.chats.get(ce);if(!de)return me.warn("No active chat"),M;const ft=new Map(M.chats),ur=Date.now();return ft.set(de.id,{...de,messages:J,updatedAt:ur}),{...M,chats:ft}})({chatState:L,chatId:L.activeChatId,messages:A}))},t[4]=e,t[5]=y):y=t[5];const{messages:b,sendMessage:S,error:E,status:T,regenerate:N,stop:R,addToolResult:P,id:k}=zr({id:x,sendAutomaticallyWhen:ar,messages:g,transport:_,onFinish:y,onToolCall:async j=>{const{toolCall:A}=j;await Ir({invokeAiTool:C,addToolResult:D,toolCall:{toolName:A.toolName,toolCallId:A.toolCallId,input:A.input}})},onError:ir}),D=P;let z;t[6]===Symbol.for("react.memo_cache_sentinel")?(z=j=>{if(j.length===0)return;let A=0;for(const L of j)A+=L.size;A>52428800?Gr({title:"File size exceeds 50MB limit",description:"Please remove some files and try again."}):p(L=>[...L??[],...j])},t[6]=z):z=t[6];const F=G(z);let U;t[7]!==c?(U=j=>{c&&p(c.filter(A=>A!==j))},t[7]=c,t[8]=U):U=t[8];const q=G(U),I=T==="submitted"||T==="streaming";let Y;t[9]!==I||t[10]!==b?(Y=I&&b.length>0&&kr(b),t[9]=I,t[10]=b,t[11]=Y):Y=t[11];const he=Y;let je,ye,Ne;t[12]===Symbol.for("react.memo_cache_sentinel")?(je=()=>{requestAnimationFrame(()=>{if(m.current){const j=m.current;j.scrollTop=j.scrollHeight}})},t[12]=je):je=t[12],t[13]!==x?(ye=[x],t[13]=x,t[14]=ye):ye=t[14],h.useEffect(je,ye),t[15]!==k||t[16]!==S||t[17]!==e?(Ne=async(j,A)=>{const L=Date.now(),M={id:k,title:Qr(j),messages:[],createdAt:L,updatedAt:L};e(J=>{const de=new Map(J.chats);return de.set(M.id,M),{...J,chats:de,activeChatId:M.id}});const ce=A&&A.length>0?await _t(A):void 0;S({role:"user",parts:[{type:"text",text:j},...ce??[]]}),p(void 0),a("")},t[15]=k,t[16]=S,t[17]=e,t[18]=Ne):Ne=t[18];const He=Ne;let Se;t[19]!==n?(Se=()=>{n(null),a(""),i(""),p(void 0)},t[19]=n,t[20]=Se):Se=t[20];const Oe=G(Se);let _e;t[21]!==b||t[22]!==S?(_e=(j,A)=>{var J;const L=b[j],M=(J=L.parts)==null?void 0:J.filter(cr),ce=L.id;S({messageId:ce,role:"user",parts:[{type:"text",text:A},...M]})},t[21]=b,t[22]=S,t[23]=_e):_e=t[23];const xe=G(_e);let Ce;t[24]!==c||t[25]!==S?(Ce=async(j,A)=>{var M;if(!A.trim())return;(M=u.current)!=null&&M.view&&Ct(u.current.view);const L=c?await _t(c):void 0;j==null||j.preventDefault(),S({text:A,files:L}),a(""),p(void 0)},t[24]=c,t[25]=S,t[26]=Ce):Ce=t[26];const Ue=G(Ce);let Re;t[27]!==N?(Re=()=>{N()},t[27]=N,t[28]=Re):Re=t[28];const Xe=Re;let Ae;t[29]!==He||t[30]!==c||t[31]!==l?(Ae=()=>{var j;l.trim()&&((j=d.current)!=null&&j.view&&Ct(d.current.view),He(l.trim(),c))},t[29]=He,t[30]=c,t[31]=l,t[32]=Ae):Ae=t[32];const Ye=G(Ae);let Te;t[33]===Symbol.for("react.memo_cache_sentinel")?(Te=()=>{var j,A;return(A=(j=d.current)==null?void 0:j.editor)==null?void 0:A.blur()},t[33]=Te):Te=t[33];const dr=Te,H=b.length===0;let Ee;t[34]!==Ue||t[35]!==Ye||t[36]!==o||t[37]!==I||t[38]!==H||t[39]!==l||t[40]!==F||t[41]!==R?(Ee=H?s.jsx(We,{placeholder:`Ask anything, ${Zr} to include context about tables or dataframes`,input:l,inputRef:d,inputClassName:"px-1 py-0",setInput:i,onSubmit:Ye,isLoading:I,onStop:R,fileInputRef:f,onAddFiles:F,onClose:dr},"new-thread-input"):s.jsx(We,{input:o,setInput:a,onSubmit:Ue,inputRef:u,isLoading:I,onStop:R,onClose:()=>{var j,A;return(A=(j=u.current)==null?void 0:j.editor)==null?void 0:A.blur()},fileInputRef:f,onAddFiles:F}),t[34]=Ue,t[35]=Ye,t[36]=o,t[37]=I,t[38]=H,t[39]=l,t[40]=F,t[41]=R,t[42]=Ee):Ee=t[42];const Z=Ee;let Pe;t[43]!==c||t[44]!==H||t[45]!==q?(Pe=c&&c.length>0&&s.jsx("div",{className:V("flex flex-row gap-1 flex-wrap p-1",H&&"py-2 px-1"),children:c==null?void 0:c.map(j=>s.jsx(ps,{file:j,onRemove:()=>q(j)},j.name))}),t[43]=c,t[44]=H,t[45]=q,t[46]=Pe):Pe=t[46];const ee=Pe,Be=r==null?void 0:r.id;let te,re,se,oe,ne,Le,ae,le,ie,ze;if(t[47]!==Oe||t[48]!==n||t[49]!==Be?(te=s.jsx(St,{children:s.jsx(Kt,{onNewChat:Oe,activeChatId:Be,setActiveChat:n})}),t[47]=Oe,t[48]=n,t[49]=Be,t[50]=te):te=t[50],t[51]!==Z||t[52]!==ee||t[53]!==H?(re=H&&s.jsxs("div",{className:"rounded-md border bg-background",children:[ee,Z]}),t[51]=Z,t[52]=ee,t[53]=H,t[54]=re):re=t[54],t[55]!==xe||t[56]!==he||t[57]!==b){let j;t[59]!==xe||t[60]!==he||t[61]!==b.length?(j=(A,L)=>s.jsx(pt,{message:A,index:L,onEdit:xe,isStreamingReasoning:he,isLast:L===b.length-1},A.id),t[59]=xe,t[60]=he,t[61]=b.length,t[62]=j):j=t[62],se=b.map(j),t[55]=xe,t[56]=he,t[57]=b,t[58]=se}else se=t[58];return t[63]!==I?(oe=I&&s.jsx("div",{className:"flex justify-center py-4",children:s.jsx(yt,{className:"h-4 w-4 animate-spin"})}),t[63]=I,t[64]=oe):oe=t[64],t[65]!==E||t[66]!==Xe?(ne=E&&s.jsxs("div",{className:"flex items-center justify-center space-x-2 mb-4",children:[s.jsx(es,{error:E}),s.jsx(B,{variant:"outline",size:"sm",onClick:Xe,children:"Retry"})]}),t[65]=E,t[66]=Xe,t[67]=ne):ne=t[67],t[68]===Symbol.for("react.memo_cache_sentinel")?(Le=s.jsx("div",{ref:v}),t[68]=Le):Le=t[68],t[69]!==re||t[70]!==se||t[71]!==oe||t[72]!==ne?(ae=s.jsxs("div",{className:"flex-1 px-3 bg-(--slate-1) gap-4 py-3 flex flex-col overflow-y-auto",ref:m,children:[re,se,oe,ne,Le]}),t[69]=re,t[70]=se,t[71]=oe,t[72]=ne,t[73]=ae):ae=t[73],t[74]!==I||t[75]!==R?(le=I&&s.jsx("div",{className:"w-full flex justify-center items-center z-20 border-t",children:s.jsx(B,{variant:"linkDestructive",size:"sm",onClick:R,children:"Stop"})}),t[74]=I,t[75]=R,t[76]=le):le=t[76],t[77]!==Z||t[78]!==ee||t[79]!==H?(ie=!H&&s.jsxs(s.Fragment,{children:[ee,Z]}),t[77]=Z,t[78]=ee,t[79]=H,t[80]=ie):ie=t[80],t[81]!==te||t[82]!==ae||t[83]!==le||t[84]!==ie?(ze=s.jsxs("div",{className:"flex flex-col h-[calc(100%-53px)]",children:[te,ae,le,ie]}),t[81]=te,t[82]=ae,t[83]=le,t[84]=ie,t[85]=ze):ze=t[85],ze};function Gt(t){return t.type==="text"}function Qt(t){return t.text}function Zt(t){return t.type==="file"}function er(t,e){return s.jsx(hs,{attachment:t},e)}function tr(){}function rr(){}function sr(t){return t.type==="text"}function or(t){return t.text}function nr(t){return s.jsx(Dr,{value:t.value,className:"text-xs",children:s.jsxs("div",{className:"flex flex-col",children:[t.label,s.jsx("div",{className:"text-muted-foreground text-xs pt-1 block",children:t.subtitle})]})},t.value)}function ar(t){const{messages:e}=t;return Mr(e)}async function lr(t){const e=await Fr(t.messages);return{body:{...t,...e}}}function ir(t){me.error("An error occurred:",t)}function cr(t){return t.type==="file"}});export{bs as __tla,Et as default};
@@ -1 +0,0 @@
1
- import{s,c as t,a,C as o}from"./chunk-K7UQS3LO-C8TWVLiH.js";import{_ as i}from"./mermaid.core-DzthE35Y.js";import"./transform-D9VCJYws.js";import"./chunk-FMBD7UC4-DPuNbQ-f.js";import"./chunk-55IACEB6-CAATkc4w.js";import"./chunk-QN33PNHL-DiZZ09q4.js";import"./index-C7CoaNFb.js";import"./step-BwsUM5iJ.js";import"./isEmpty-D-4c7sMv.js";import"./timer-Bqd5yn_a.js";var e={parser:a,get db(){return new o},renderer:t,styles:s,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{e as diagram};
@@ -1 +0,0 @@
1
- import{s,c as t,a,C as o}from"./chunk-K7UQS3LO-C8TWVLiH.js";import{_ as i}from"./mermaid.core-DzthE35Y.js";import"./transform-D9VCJYws.js";import"./chunk-FMBD7UC4-DPuNbQ-f.js";import"./chunk-55IACEB6-CAATkc4w.js";import"./chunk-QN33PNHL-DiZZ09q4.js";import"./index-C7CoaNFb.js";import"./step-BwsUM5iJ.js";import"./isEmpty-D-4c7sMv.js";import"./timer-Bqd5yn_a.js";var e={parser:a,get db(){return new o},renderer:t,styles:s,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{e as diagram};
@@ -1 +0,0 @@
1
- import{b as n}from"./_baseUniq-BKktIGQ1.js";function o(r){return n(r,4)}export{o as c};
@@ -1 +0,0 @@
1
- import{a as nt,r as Rt,cn as Ut,aw as $t,co as zt,ax as Et,cp as It,cq as Pt,K as St,cr as Vt,cs as Kt,ct as Ot,cu as Tt,j as a,cv as vt,cw as Jt,cx as Lt,cy as Qt,cz as Wt,cA as Xt,bC as Ht,cB as At,cC as Ft,bm as Yt,bU as Zt,__tla as te}from"./index-C7CoaNFb.js";import{c as ee,u as oe,b as ie,__tla as le}from"./edit-page-B-oevUZ9.js";import{g as re}from"./links-BpXlz1GG.js";import{__tla as ae}from"./storage-DRaR04wR.js";import"./index-Aeo6WiK7.js";import"./index-CfaDbEdi.js";import"./index-BjgnbONl.js";import"./index-CUFv_thQ.js";import"./index-DdnKZNxM.js";import"./index-C_tkBKNO.js";import"./index-BJNCMUmG.js";import"./index-CFKO7WXI.js";import"./index-aE43R74q.js";import"./index-BAbIIxHU.js";import"./index-ClzeQrN7.js";import"./index-G5QZppK2.js";import"./index-C2MD0vgD.js";import"./apl-CXdQSnD-.js";import"./asciiarmor-D5V0T9Cu.js";import"./asn1-DWPaVWf6.js";import"./brainfuck-CtZaYBKt.js";import"./cobol-stawOqaz.js";import"./clike-BgBwzOhw.js";import"./clojure-DiuoqK-z.js";import"./css-ZjFoif2m.js";import"./cmake-DXn5xaP-.js";import"./coffeescript-BTDxI-eT.js";import"./commonlisp-vq6DHwts.js";import"./cypher-gJDei3ni.js";import"./python-DD-Q2bae.js";import"./crystal-CRzZ78HM.js";import"./d-BShv7fp-.js";import"./diff-UJJ5BM9S.js";import"./dtd-DI9Herc-.js";import"./dylan-DkEP81N9.js";import"./ecl-DPFc0Uaf.js";import"./eiffel-DR5c0IrL.js";import"./elm-DompmV0j.js";import"./erlang-BuqgqA5h.js";import"./factor-CFXhaUWb.js";import"./simple-mode-C3vEBAcb.js";import"./forth-POgR1ypr.js";import"./fortran-DL7KluxX.js";import"./mllike-3c2dg9RT.js";import"./gas-bV0CklSb.js";import"./gherkin-B6X1vGSW.js";import"./groovy-DnIzCrpZ.js";import"./haskell-CLQs6EAM.js";import"./haxe-D25e-2l-.js";import"./idl-pcmmZuaN.js";import"./javascript-BpzJj0-u.js";import"./jinja2-DhgKlfW7.js";import"./julia-DjdwvFuI.js";import"./livescript-HO6ttBFx.js";import"./lua-8DXOpKDz.js";import"./mirc-DkvFAiy5.js";import"./mathematica-IIbmv7SK.js";import"./modelica-DSrSSXCg.js";import"./mumps-zvxmGV4l.js";import"./mbox-z_N2Mo3d.js";import"./nsis-BvKfQ9lQ.js";import"./ntriples-BSwWqoLa.js";import"./octave-C4hdQ5Hf.js";import"./oz-qQq7irPq.js";import"./pascal-CafrKXZF.js";import"./perl-tdMlh9QA.js";import"./pig-CwGJVRC4.js";import"./powershell-D1ly3AHC.js";import"./properties-_nPj978X.js";import"./protobuf-B4y9do6W.js";import"./pug-BTvK5tSS.js";import"./puppet-Bc-yJKzi.js";import"./q-B0kTJ4cI.js";import"./r-BA4EbLKE.js";import"./rpm-DI_rRufH.js";import"./ruby-CR-u2WLS.js";import"./sas-Bqaci40L.js";import"./scheme-qjP0V5Ag.js";import"./shell-BLav31RL.js";import"./sieve-r025o_jW.js";import"./smalltalk-C7J3IyEP.js";import"./sparql-BRLJFz69.js";import"./stylus-Bdo_Aemu.js";import"./swift-B_XXVlXX.js";import"./verilog-B4LBqg_1.js";import"./tcl-B2fODqDH.js";import"./textile-BuVhTOzU.js";import"./toml-wcPdHu67.js";import"./troff-Ce85hlLp.js";import"./ttcn-BxnYHtq8.js";import"./ttcn-cfg-CKJxb-l2.js";import"./turtle-BkSuIpt-.js";import"./webidl-CGwyPRYs.js";import"./vb-BHgjm0DN.js";import"./vbscript-Dawdd5GZ.js";import"./velocity-BdD_26Jv.js";import"./vhdl-CWWH2SUo.js";import"./xquery-CVDBqZPY.js";import"./yacas-I8QjZlxf.js";import"./z80-D8p3gKXp.js";import"./mscgen-B2igx18G.js";import"./index-C1ez98sk.js";import"./trash-B81GTiv6.js";import"./_createAggregator-C5CVY-0t.js";import"./_baseEach-CvTX9w0Y.js";import{__tla as ne}from"./loro_wasm_bg-C1ks32Vm.js";let Dt,pe=Promise.all([(()=>{try{return te}catch{}})(),(()=>{try{return le}catch{}})(),(()=>{try{return ae}catch{}})(),(()=>{try{return ne}catch{}})()]).then(async()=>{function qt(){const e=nt.c(7);let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=[],e[0]=s):s=e[0];const[r,x]=(function(m,h){const l=nt.c(11);let _;l[0]!==h?(_=new Ut(h),l[0]=h,l[1]=_):_=l[1];const u=_;let k;l[2]!==m||l[3]!==u?(k=()=>u.get(m),l[2]=m,l[3]=u,l[4]=k):k=l[4];const[b,C]=Rt.useState(k);let g;l[5]!==m||l[6]!==u?(g=w=>{C(w),u.set(m,w)},l[5]=m,l[6]=u,l[7]=g):g=l[7];const f=g;let y;return l[8]!==f||l[9]!==b?(y=[b,f],l[8]=f,l[9]=b,l[10]=y):y=l[10],y})("marimo:commands",s);let c,n;return e[1]!==r||e[2]!==x?(c=m=>{const h=(l=[m,...r],[...new Set(l)]);var l;x(h.slice(0,3))},e[1]=r,e[2]=x,e[3]=c):c=e[3],e[4]!==r||e[5]!==c?(n={recentCommands:r,addRecentCommand:c},e[4]=r,e[5]=c,e[6]=n):n=e[6],n}function kt(e){return e.dropdown!==void 0}function I(e,s=""){return e.flatMap(r=>r.label?kt(r)?I(r.dropdown,`${s+r.label} > `):{...r,label:s+r.label}:[])}function Bt(e){return!e.hidden}Dt=()=>{const e=nt.c(37),[s,r]=It(ee),x=Pt(),c=St(Vt),n=St(Kt);let m;e[0]!==c?(m={cell:c},e[0]=c,e[1]=m):m=e[1];let h=oe(m).flat();h=I(h);const l=(function(){const t=nt.c(73),[o,j]=$t(),[p,D]=zt(),{saveAppConfig:S,saveUserConfig:bt}=Et();let O;t[0]!==bt||t[1]!==j?(O=async d=>{await bt({config:d}).then(()=>{j(d)})},t[0]=bt,t[1]=j,t[2]=O):O=t[2];const i=O;let T;t[3]!==S||t[4]!==D?(T=async d=>{await S({config:d}).then(()=>{D(d)})},t[3]=S,t[4]=D,t[5]=T):T=t[5];const E=T;let J;if(t[6]!==p||t[7]!==o||t[8]!==E||t[9]!==i){let d,L,Q,W,X;t[11]!==p?(d=at=>at!==p.width,t[11]=p,t[12]=d):d=t[12],t[13]!==p||t[14]!==E?(L=at=>({label:`App config > Set width=${at}`,handle:()=>{E({...p,width:at})}}),t[13]=p,t[14]=E,t[15]=L):L=t[15],t[16]!==o||t[17]!==i?(Q={label:"Config > Set theme: dark",handle:()=>{i({...o,display:{...o.display,theme:"dark"}})}},t[16]=o,t[17]=i,t[18]=Q):Q=t[18],t[19]!==o||t[20]!==i?(W={label:"Config > Set theme: light",handle:()=>{i({...o,display:{...o.display,theme:"light"}})}},t[19]=o,t[20]=i,t[21]=W):W=t[21],t[22]!==o||t[23]!==i?(X={label:"Config > Set theme: system",handle:()=>{i({...o,display:{...o.display,theme:"system"}})}},t[22]=o,t[23]=i,t[24]=X):X=t[24];const gt=o.keymap.preset==="vim";let q,Y;t[25]!==o||t[26]!==i?(q=()=>{i({...o,keymap:{...o.keymap,preset:"vim"}})},t[25]=o,t[26]=i,t[27]=q):q=t[27],t[28]!==gt||t[29]!==q?(Y={label:"Config > Switch keymap to VIM",hidden:gt,handle:q},t[28]=gt,t[29]=q,t[30]=Y):Y=t[30];const ft=o.keymap.preset==="default";let B,Z,G;t[31]!==o||t[32]!==i?(B=()=>{i({...o,keymap:{...o.keymap,preset:"default"}})},t[31]=o,t[32]=i,t[33]=B):B=t[33],t[34]!==ft||t[35]!==B?(Z={label:"Config > Switch keymap to default (current: VIM)",hidden:ft,handle:B},t[34]=ft,t[35]=B,t[36]=Z):Z=t[36],t[37]!==o||t[38]!==i?(G=()=>{i({...o,completion:{...o.completion,copilot:!1}})},t[37]=o,t[38]=i,t[39]=G):G=t[39];const yt=o.completion.copilot!=="github";let tt,M;t[40]!==G||t[41]!==yt?(tt={label:"Config > Disable GitHub Copilot",handle:G,hidden:yt},t[40]=G,t[41]=yt,t[42]=tt):tt=t[42],t[43]!==o||t[44]!==i?(M=()=>{i({...o,completion:{...o.completion,copilot:"github"}})},t[43]=o,t[44]=i,t[45]=M):M=t[45];const _t=o.completion.copilot==="github";let et;t[46]!==M||t[47]!==_t?(et={label:"Config > Enable GitHub Copilot",handle:M,hidden:_t},t[46]=M,t[47]=_t,t[48]=et):et=t[48];const Ct=!o.display.reference_highlighting;let N,ot,R,it;t[49]!==o||t[50]!==i?(N=()=>{i({...o,display:{...o.display,reference_highlighting:!1}})},t[49]=o,t[50]=i,t[51]=N):N=t[51],t[52]!==Ct||t[53]!==N?(ot={label:"Config > Disable reference highlighting",hidden:Ct,handle:N},t[52]=Ct,t[53]=N,t[54]=ot):ot=t[54],t[55]!==o||t[56]!==i?(R=()=>{i({...o,display:{...o.display,reference_highlighting:!0}})},t[55]=o,t[56]=i,t[57]=R):R=t[57],t[58]!==o.display.reference_highlighting||t[59]!==R?(it={label:"Config > Enable reference highlighting",hidden:o.display.reference_highlighting,handle:R},t[58]=o.display.reference_highlighting,t[59]=R,t[60]=it):it=t[60];const jt=o.display.cell_output==="above";let U,lt;t[61]!==o||t[62]!==i?(U=()=>{i({...o,display:{...o.display,cell_output:"above"}})},t[61]=o,t[62]=i,t[63]=U):U=t[63],t[64]!==jt||t[65]!==U?(lt={label:"Config > Set cell output area: above",hidden:jt,handle:U},t[64]=jt,t[65]=U,t[66]=lt):lt=t[66];const xt=o.display.cell_output==="below";let $,rt;t[67]!==o||t[68]!==i?($=()=>{i({...o,display:{...o.display,cell_output:"below"}})},t[67]=o,t[68]=i,t[69]=$):$=t[69],t[70]!==xt||t[71]!==$?(rt={label:"Config > Set cell output area: below",hidden:xt,handle:$},t[70]=xt,t[71]=$,t[72]=rt):rt=t[72],J=[...re().filter(d).map(L),Q,W,X,Y,Z,tt,et,ot,it,lt,rt].filter(Bt),t[6]=p,t[7]=o,t[8]=E,t[9]=i,t[10]=J}else J=t[10];return J})();let _=ie();_=[...I(_),...I(l)];const u=_.filter(Gt),k=Ot.keyBy(u,Mt),{recentCommands:b,addRecentCommand:C}=qt();let g;e[2]!==b?(g=new Set(b),e[2]=b,e[3]=g):g=e[3];const f=g;let y,w;e[4]!==n||e[5]!==r?(y=t=>{Xt(n.getHotkey("global.commandPalette").key)(t)&&(t.preventDefault(),r(Nt))},e[4]=n,e[5]=r,e[6]=y):y=e[6],Tt(document,"keydown",y),e[7]!==C||e[8]!==n||e[9]!==x||e[10]!==r?(w=(t,o)=>{const j=x[t];if(!j)return null;const p=n.getHotkey(t);return a.jsxs(Ht,{disabled:o.disabled,onSelect:()=>{C(t),r(!1),requestAnimationFrame(()=>{j()})},value:p.name,children:[a.jsxs("span",{children:[p.name,o.tooltip&&a.jsx("span",{className:"ml-2",children:o.tooltip})]}),a.jsx(At,{children:a.jsx(Ft,{shortcut:p.key})})]},t)},e[7]=C,e[8]=n,e[9]=x,e[10]=r,e[11]=w):w=e[11];const wt=w;let P;e[12]!==C||e[13]!==n||e[14]!==r?(P=t=>{const{label:o,handle:j,props:p,hotkey:D}=t,S=p===void 0?{}:p;return a.jsxs(Ht,{disabled:S.disabled,onSelect:()=>{C(o),r(!1),requestAnimationFrame(()=>{j()})},value:o,children:[a.jsxs("span",{children:[o,S.tooltip&&a.jsxs("span",{className:"ml-2",children:["(",S.tooltip,")"]})]}),D&&a.jsx(At,{children:a.jsx(Ft,{shortcut:n.getHotkey(D).key})})]},o)},e[12]=C,e[13]=n,e[14]=r,e[15]=P):P=e[15];const z=P,pt=Wt;let v;e[16]===Symbol.for("react.memo_cache_sentinel")?(v=a.jsx(Yt,{placeholder:"Type to search..."}),e[16]=v):v=e[16];const mt=Qt;let H;e[17]===Symbol.for("react.memo_cache_sentinel")?(H=a.jsx(Zt,{children:"No results found."}),e[17]=H):H=e[17];const st=b.length>0&&a.jsxs(a.Fragment,{children:[a.jsx(vt,{heading:"Recently Used",children:b.map(t=>{const o=k[t];return Jt(t)?wt(t,{disabled:o==null?void 0:o.disabled,tooltip:o==null?void 0:o.tooltip}):o&&!kt(o)?z({label:o.label,handle:o.handleHeadless||o.handle,props:{disabled:o.disabled,tooltip:o.tooltip}}):null})}),a.jsx(Lt,{})]}),ct=vt,dt=n.iterate().map(t=>{if(f.has(t))return null;const o=k[t];return wt(t,{disabled:o==null?void 0:o.disabled,tooltip:o==null?void 0:o.tooltip})}),ht=u.map(t=>f.has(t.label)?null:z({label:t.label,handle:t.handleHeadless||t.handle,props:{disabled:t.disabled,tooltip:t.tooltip}}));let V;e[18]!==f||e[19]!==z?(V=t=>f.has(t.label)?null:z({label:`Cell > ${t.label}`,handle:t.handleHeadless||t.handle,props:{disabled:t.disabled,tooltip:t.tooltip}}),e[18]=f,e[19]=z,e[20]=V):V=e[20];const ut=h.map(V);let A,F,K;return e[21]!==ct||e[22]!==ht||e[23]!==ut||e[24]!==dt?(A=a.jsxs(ct,{heading:"Commands",children:[dt,ht,ut]}),e[21]=ct,e[22]=ht,e[23]=ut,e[24]=dt,e[25]=A):A=e[25],e[26]!==mt||e[27]!==A||e[28]!==H||e[29]!==st?(F=a.jsxs(mt,{children:[H,st,A]}),e[26]=mt,e[27]=A,e[28]=H,e[29]=st,e[30]=F):F=e[30],e[31]!==pt||e[32]!==s||e[33]!==r||e[34]!==F||e[35]!==v?(K=a.jsxs(pt,{open:s,onOpenChange:r,children:[v,F]}),e[31]=pt,e[32]=s,e[33]=r,e[34]=F,e[35]=v,e[36]=K):K=e[36],K};function Gt(e){return!e.hotkey}function Mt(e){return e.label}function Nt(e){return!e}});export{pe as __tla,Dt as default};
@@ -1 +0,0 @@
1
- import{a as V,T as M,b8 as Pe,b9 as De,j as n,ba as Le,bb as ae,av as se,bc as Ae,bd as ze,be as Ee,bf as ne,bg as Ve,d as F,ay as re,bh as oe,K as X,bi as le,bj as Be,bk as me,b as ce,bl as ie,a_ as Y,a2 as de,bm as Ke,bn as Me,bo as Oe,bp as Ge,bq as He,ax as Je,br as Re,bs as Ue,aB as Z,bt as We,bu as pe,bv as ue,bw as Q,bx as Xe,by as Ye,S as Ze,bz as he,bA as be,bB as xe,bC as ee,bD as Qe,bE as et,bF as tt,aI as at,bG as st,bH as fe,bI as nt,bJ as rt,bK as ot,bL as lt,C as mt,bM as ct,bN as it,bO as dt,__tla as pt}from"./index-C7CoaNFb.js";import{b as ut,d as ht,__tla as bt}from"./storage-DRaR04wR.js";import{P as xt}from"./empty-state-C99UyDE3.js";import{A as ge,__tla as ft}from"./edit-page-B-oevUZ9.js";import{s as je}from"./sortBy-DZnlX29-.js";import"./index-Aeo6WiK7.js";import"./index-CfaDbEdi.js";import"./index-BjgnbONl.js";import"./index-CUFv_thQ.js";import"./index-DdnKZNxM.js";import"./index-C_tkBKNO.js";import"./index-BJNCMUmG.js";import"./index-CFKO7WXI.js";import"./index-aE43R74q.js";import"./index-BAbIIxHU.js";import"./index-ClzeQrN7.js";import"./index-G5QZppK2.js";import"./index-C2MD0vgD.js";import"./apl-CXdQSnD-.js";import"./asciiarmor-D5V0T9Cu.js";import"./asn1-DWPaVWf6.js";import"./brainfuck-CtZaYBKt.js";import"./cobol-stawOqaz.js";import"./clike-BgBwzOhw.js";import"./clojure-DiuoqK-z.js";import"./css-ZjFoif2m.js";import"./cmake-DXn5xaP-.js";import"./coffeescript-BTDxI-eT.js";import"./commonlisp-vq6DHwts.js";import"./cypher-gJDei3ni.js";import"./python-DD-Q2bae.js";import"./crystal-CRzZ78HM.js";import"./d-BShv7fp-.js";import"./diff-UJJ5BM9S.js";import"./dtd-DI9Herc-.js";import"./dylan-DkEP81N9.js";import"./ecl-DPFc0Uaf.js";import"./eiffel-DR5c0IrL.js";import"./elm-DompmV0j.js";import"./erlang-BuqgqA5h.js";import"./factor-CFXhaUWb.js";import"./simple-mode-C3vEBAcb.js";import"./forth-POgR1ypr.js";import"./fortran-DL7KluxX.js";import"./mllike-3c2dg9RT.js";import"./gas-bV0CklSb.js";import"./gherkin-B6X1vGSW.js";import"./groovy-DnIzCrpZ.js";import"./haskell-CLQs6EAM.js";import"./haxe-D25e-2l-.js";import"./idl-pcmmZuaN.js";import"./javascript-BpzJj0-u.js";import"./jinja2-DhgKlfW7.js";import"./julia-DjdwvFuI.js";import"./livescript-HO6ttBFx.js";import"./lua-8DXOpKDz.js";import"./mirc-DkvFAiy5.js";import"./mathematica-IIbmv7SK.js";import"./modelica-DSrSSXCg.js";import"./mumps-zvxmGV4l.js";import"./mbox-z_N2Mo3d.js";import"./nsis-BvKfQ9lQ.js";import"./ntriples-BSwWqoLa.js";import"./octave-C4hdQ5Hf.js";import"./oz-qQq7irPq.js";import"./pascal-CafrKXZF.js";import"./perl-tdMlh9QA.js";import"./pig-CwGJVRC4.js";import"./powershell-D1ly3AHC.js";import"./properties-_nPj978X.js";import"./protobuf-B4y9do6W.js";import"./pug-BTvK5tSS.js";import"./puppet-Bc-yJKzi.js";import"./q-B0kTJ4cI.js";import"./r-BA4EbLKE.js";import"./rpm-DI_rRufH.js";import"./ruby-CR-u2WLS.js";import"./sas-Bqaci40L.js";import"./scheme-qjP0V5Ag.js";import"./shell-BLav31RL.js";import"./sieve-r025o_jW.js";import"./smalltalk-C7J3IyEP.js";import"./sparql-BRLJFz69.js";import"./stylus-Bdo_Aemu.js";import"./swift-B_XXVlXX.js";import"./verilog-B4LBqg_1.js";import"./tcl-B2fODqDH.js";import"./textile-BuVhTOzU.js";import"./toml-wcPdHu67.js";import"./troff-Ce85hlLp.js";import"./ttcn-BxnYHtq8.js";import"./ttcn-cfg-CKJxb-l2.js";import"./turtle-BkSuIpt-.js";import"./webidl-CGwyPRYs.js";import"./vb-BHgjm0DN.js";import"./vbscript-Dawdd5GZ.js";import"./velocity-BdD_26Jv.js";import"./vhdl-CWWH2SUo.js";import"./xquery-CVDBqZPY.js";import"./yacas-I8QjZlxf.js";import"./z80-D8p3gKXp.js";import"./mscgen-B2igx18G.js";import"./index-C1ez98sk.js";import"./trash-B81GTiv6.js";import"./links-BpXlz1GG.js";import"./_createAggregator-C5CVY-0t.js";import"./_baseEach-CvTX9w0Y.js";import{__tla as gt}from"./loro_wasm_bg-C1ks32Vm.js";import"./_baseMap-CtlwA90f.js";let Ne,jt=Promise.all([(()=>{try{return pt}catch{}})(),(()=>{try{return bt}catch{}})(),(()=>{try{return ft}catch{}})(),(()=>{try{return gt}catch{}})()]).then(async()=>{const _e=s=>{const e=V.c(8),{variableName:t,className:a}=s;let o;e[0]!==t?(o=()=>{const u=(function(f){const i=Le.get(ae)[f];if(i)return i.declaredBy[0]})(t);if(!u)return;const N=Pe(u);N&&De(N,t)},e[0]=t,e[1]=o):o=e[1];const c=o;let r,j;return e[2]!==a?(r=M("text-link opacity-80 hover:opacity-100 hover:underline",a),e[2]=a,e[3]=r):r=e[3],e[4]!==c||e[5]!==r||e[6]!==t?(j=n.jsx("button",{type:"button",onClick:c,className:r,children:t}),e[4]=c,e[5]=r,e[6]=t,e[7]=j):j=e[7],j},ye=se(s=>{const e=s(Ae),t=s(ae),a=s(ze);return je(e,o=>{if(!o.variable_name)return-1;const c=Object.values(t).find(j=>j.name===o.variable_name);if(!c)return 0;const r=a.inOrderIds.indexOf(c.declaredBy[0]);return r===-1?0:r})}),we=se(s=>{const e=new Map(s(Ee));for(const t of ne){const a=e.get(t);a&&(a.databases.length===0&&e.delete(t),a.databases.length===1&&a.databases[0].name===Ve&&a.databases[0].schemas.length===0&&e.delete(t))}return je([...e.values()],t=>ne.has(t.name)?1:0)}),ve=()=>{const s=V.c(32),[e,t]=F.useState(""),a=re(oe),o=X(ye),c=X(we);if(o.length===0&&c.length===0){let d;return s[0]===Symbol.for("react.memo_cache_sentinel")?(d=n.jsx(xt,{title:"No tables found",description:"Any datasets/dataframes in the global scope will be shown here.",action:n.jsx(ge,{children:n.jsxs(Y,{variant:"outline",size:"sm",children:["Add database or catalog",n.jsx(de,{className:"h-4 w-4 ml-2"})]})}),icon:n.jsx(ie,{})}),s[0]=d):d=s[0],d}const r=!!e.trim();let j,u,N,f,i,b,x,m,g,l;if(s[1]!==a?(j=d=>{a(d.length>0),t(d)},s[1]=a,s[2]=j):j=s[2],s[3]!==e||s[4]!==j?(u=n.jsx(Ke,{placeholder:"Search tables...",className:"h-6 m-1",value:e,onValueChange:j,rootClassName:"flex-1 border-r"}),s[3]=e,s[4]=j,s[5]=u):u=s[5],s[6]!==r?(N=r&&n.jsx("button",{type:"button",className:"float-right border-b px-2 m-0 h-full hover:bg-accent hover:text-accent-foreground",onClick:()=>t(""),children:n.jsx(Me,{className:"h-4 w-4"})}),s[6]=r,s[7]=N):N=s[7],s[8]===Symbol.for("react.memo_cache_sentinel")?(f=n.jsx(ge,{children:n.jsx("button",{type:"button",className:"float-right border-b px-2 m-0 h-full hover:bg-accent hover:text-accent-foreground",children:n.jsx(de,{className:"h-4 w-4"})})}),s[8]=f):f=s[8],s[9]!==u||s[10]!==N?(i=n.jsxs("div",{className:"flex items-center w-full",children:[u,N,f]}),s[9]=u,s[10]=N,s[11]=i):i=s[11],s[12]!==c||s[13]!==r||s[14]!==e){let d;s[16]!==r||s[17]!==e?(d=h=>n.jsx(Se,{connection:h,hasChildren:h.databases.length>0,children:h.databases.map(p=>n.jsx(Ce,{engineName:h.name,database:p,hasSearch:r,children:n.jsx($e,{schemas:p.schemas,defaultSchema:h.default_schema,defaultDatabase:h.default_database,engineName:h.name,databaseName:p.name,hasSearch:r,searchValue:e})},p.name))},h.name),s[16]=r,s[17]=e,s[18]=d):d=s[18],b=c.map(d),s[12]=c,s[13]=r,s[14]=e,s[15]=b}else b=s[15];return s[19]!==c.length||s[20]!==o.length?(x=c.length>0&&o.length>0&&n.jsxs(le,{children:[n.jsx(Be,{className:"h-4 w-4 text-muted-foreground"}),n.jsx("span",{className:"text-xs",children:"Python"})]}),s[19]=c.length,s[20]=o.length,s[21]=x):x=s[21],s[22]!==e||s[23]!==o?(m=o.length>0&&n.jsx(te,{tables:o,searchValue:e}),s[22]=e,s[23]=o,s[24]=m):m=s[24],s[25]!==b||s[26]!==x||s[27]!==m?(g=n.jsxs(Oe,{className:"flex flex-col",children:[b,x,m]}),s[25]=b,s[26]=x,s[27]=m,s[28]=g):g=s[28],s[29]!==i||s[30]!==g?(l=n.jsxs(Ge,{className:"border-b bg-background rounded-none h-full pb-10 overflow-auto outline-hidden",shouldFilter:!1,children:[i,g]}),s[29]=i,s[30]=g,s[31]=l):l=s[31],l},Se=s=>{const e=V.c(26),{connection:t,children:a,hasChildren:o}=s,c=t.name===He,r=c?"In-Memory":t.name,{previewDataSourceConnection:j}=Je(),[u,N]=F.useState(!1);let f;e[0]!==t.name||e[1]!==j?(f=async()=>{N(!0),await j({engine:t.name}),setTimeout(()=>N(!1),500)},e[0]=t.name,e[1]=j,e[2]=f):f=e[2];const i=f;let b,x,m;e[3]!==t.dialect?(b=n.jsx(Re,{className:"h-4 w-4 text-muted-foreground",name:t.dialect}),e[3]=t.dialect,e[4]=b):b=e[4],e[5]!==t.dialect?(x=Ue(t.dialect),e[5]=t.dialect,e[6]=x):x=e[6],e[7]!==x?(m=n.jsx("span",{className:"text-xs",children:x}),e[7]=x,e[8]=m):m=e[8];const g=r;let l,d,h,p,_;return e[9]!==g?(l=n.jsxs("span",{className:"text-xs text-muted-foreground",children:["(",n.jsx(_e,{variableName:g}),")"]}),e[9]=g,e[10]=l):l=e[10],e[11]!==i||e[12]!==c||e[13]!==u?(d=!c&&n.jsx(Z,{content:"Refresh connection",children:n.jsx(Y,{variant:"ghost",size:"icon",className:"ml-auto hover:bg-transparent hover:shadow-none",onClick:i,children:n.jsx(We,{className:M("h-4 w-4 text-muted-foreground hover:text-foreground",u&&"animate-[spin_0.5s]")})})}),e[11]=i,e[12]=c,e[13]=u,e[14]=d):d=e[14],e[15]!==b||e[16]!==m||e[17]!==l||e[18]!==d?(h=n.jsxs(le,{children:[b,m,l,d]}),e[15]=b,e[16]=m,e[17]=l,e[18]=d,e[19]=h):h=e[19],e[20]!==a||e[21]!==o?(p=o?a:n.jsx(Q,{content:"No databases available",className:"pl-2"}),e[20]=a,e[21]=o,e[22]=p):p=e[22],e[23]!==h||e[24]!==p?(_=n.jsxs(n.Fragment,{children:[h,p]}),e[23]=h,e[24]=p,e[25]=_):_=e[25],_},Ce=s=>{const e=V.c(25),{hasSearch:t,engineName:a,database:o,children:c}=s,[r,j]=F.useState(!1),[u,N]=F.useState(!1),[f,i]=F.useState(t);let b;f!==t&&(i(t),j(t)),e[0]!==r||e[1]!==u?(b=()=>{j(!r),N(!u)},e[0]=r,e[1]=u,e[2]=b):b=e[2];const x=`${a}:${o.name}`;let m;e[3]!==r?(m=n.jsx(xe,{isExpanded:r}),e[3]=r,e[4]=m):m=e[4];const g=u&&r?"text-foreground":"text-muted-foreground";let l,d;e[5]!==g?(l=M("h-4 w-4",g),e[5]=g,e[6]=l):l=e[6],e[7]!==l?(d=n.jsx(ie,{className:l}),e[7]=l,e[8]=d):d=e[8];const h=u&&r&&"font-semibold";let p,_,y,w;e[9]!==h?(p=M(h),e[9]=h,e[10]=p):p=e[10],e[11]!==o.name?(_=o.name===""?n.jsx("i",{children:"Not connected"}):o.name,e[11]=o.name,e[12]=_):_=e[12],e[13]!==p||e[14]!==_?(y=n.jsx("span",{className:p,children:_}),e[13]=p,e[14]=_,e[15]=y):y=e[15],e[16]!==b||e[17]!==y||e[18]!==x||e[19]!==m||e[20]!==d?(w=n.jsxs(ee,{className:"text-sm flex flex-row gap-1 items-center cursor-pointer rounded-none",onSelect:b,value:x,children:[m,d,y]}),e[16]=b,e[17]=y,e[18]=x,e[19]=m,e[20]=d,e[21]=w):w=e[21];const v=r&&c;let S;return e[22]!==w||e[23]!==v?(S=n.jsxs(n.Fragment,{children:[w,v]}),e[22]=w,e[23]=v,e[24]=S):S=e[24],S},$e=s=>{const e=V.c(20),{schemas:t,defaultSchema:a,defaultDatabase:o,engineName:c,databaseName:r,hasSearch:j,searchValue:u}=s;if(t.length===0){let i;return e[0]===Symbol.for("react.memo_cache_sentinel")?(i=n.jsx(Q,{content:"No schemas available",className:"pl-6"}),e[0]=i):i=e[0],i}let N,f;if(e[1]!==r||e[2]!==o||e[3]!==a||e[4]!==c||e[5]!==j||e[6]!==t||e[7]!==u){let i;e[9]!==u?(i=m=>!u||m.tables.some(g=>g.name.toLowerCase().includes(u.toLowerCase())),e[9]=u,e[10]=i):i=e[10];const b=t.filter(i);let x;e[11]!==r||e[12]!==o||e[13]!==a||e[14]!==c||e[15]!==j||e[16]!==u?(x=m=>n.jsx(ke,{databaseName:r,schema:m,hasSearch:j,children:n.jsx(te,{tables:m.tables,searchValue:u,sqlTableContext:{engine:c,database:r,schema:m.name,defaultSchema:a,defaultDatabase:o}})},m.name),e[11]=r,e[12]=o,e[13]=a,e[14]=c,e[15]=j,e[16]=u,e[17]=x):x=e[17],N=b.map(x),e[1]=r,e[2]=o,e[3]=a,e[4]=c,e[5]=j,e[6]=t,e[7]=u,e[8]=N}else N=e[8];return e[18]!==N?(f=n.jsx(n.Fragment,{children:N}),e[18]=N,e[19]=f):f=e[19],f},ke=s=>{const e=V.c(23),{databaseName:t,schema:a,children:o,hasSearch:c}=s,[r,j]=F.useState(c),[u,N]=F.useState(!1),f=`${t}:${a.name}`;if(be(a.name))return o;let i,b;e[0]!==r||e[1]!==u?(i=()=>{j(!r),N(!u)},e[0]=r,e[1]=u,e[2]=i):i=e[2],e[3]!==r?(b=n.jsx(xe,{isExpanded:r}),e[3]=r,e[4]=b):b=e[4];const x=u&&r&&"text-foreground";let m,g;e[5]!==x?(m=M("h-4 w-4 text-muted-foreground",x),e[5]=x,e[6]=m):m=e[6],e[7]!==m?(g=n.jsx(dt,{className:m}),e[7]=m,e[8]=g):g=e[8];const l=u&&r&&"font-semibold";let d,h,p;e[9]!==l?(d=M(l),e[9]=l,e[10]=d):d=e[10],e[11]!==a.name||e[12]!==d?(h=n.jsx("span",{className:d,children:a.name}),e[11]=a.name,e[12]=d,e[13]=h):h=e[13],e[14]!==i||e[15]!==b||e[16]!==g||e[17]!==h||e[18]!==f?(p=n.jsxs(ee,{className:"text-sm flex flex-row gap-1 items-center pl-5 cursor-pointer rounded-none",onSelect:i,value:f,children:[b,g,h]}),e[14]=i,e[15]=b,e[16]=g,e[17]=h,e[18]=f,e[19]=p):p=e[19];const _=r&&o;let y;return e[20]!==_||e[21]!==p?(y=n.jsxs(n.Fragment,{children:[p,_]}),e[20]=_,e[21]=p,e[22]=y):y=e[22],y},te=s=>{const e=V.c(24),{tables:t,sqlTableContext:a,searchValue:o}=s,{addTableList:c}=me(),[r,j]=F.useState(!1),[u,N]=F.useState(!1);let f,i;e[0]!==c||e[1]!==a||e[2]!==t.length||e[3]!==r?(f=async()=>{if(t.length===0&&a&&!r){j(!0),N(!0);const{engine:l,database:d,schema:h}=a,p=await ut.request({engine:l,database:d,schema:h});if(!(p!=null&&p.tables))throw N(!1),new Error("No tables available");c({tables:p.tables,sqlTableContext:a}),N(!1)}},e[0]=c,e[1]=a,e[2]=t.length,e[3]=r,e[4]=f):f=e[4],e[5]!==a||e[6]!==t.length||e[7]!==r?(i=[t.length,a,r],e[5]=a,e[6]=t.length,e[7]=r,e[8]=i):i=e[8];const{isPending:b,error:x}=ce(f,i);if(b||u){let l;return e[9]===Symbol.for("react.memo_cache_sentinel")?(l=n.jsx(pe,{message:"Loading tables...",className:"pl-12"}),e[9]=l):l=e[9],l}if(x){let l;return e[10]!==x?(l=n.jsx(ue,{error:x,className:"pl-12"}),e[10]=x,e[11]=l):l=e[11],l}if(t.length===0){let l;return e[12]===Symbol.for("react.memo_cache_sentinel")?(l=n.jsx(Q,{content:"No tables found",className:"pl-9"}),e[12]=l):l=e[12],l}let m,g;if(e[13]!==o||e[14]!==a||e[15]!==t){let l;e[17]!==o?(l=p=>!o||p.name.toLowerCase().includes(o.toLowerCase()),e[17]=o,e[18]=l):l=e[18];const d=t.filter(l);let h;e[19]!==o||e[20]!==a?(h=p=>n.jsx(Te,{table:p,sqlTableContext:a,isSearching:!!o},p.name),e[19]=o,e[20]=a,e[21]=h):h=e[21],m=d.map(h),e[13]=o,e[14]=a,e[15]=t,e[16]=m}else m=e[16];return e[22]!==m?(g=n.jsx(n.Fragment,{children:m}),e[22]=m,e[23]=g):g=e[23],g},Te=s=>{const e=V.c(64),{table:t,sqlTableContext:a,isSearching:o}=s,{addTable:c}=me(),[r,j]=F.useState(!1),[u,N]=F.useState(!1),f=t.columns.length>0;let i,b;e[0]!==c||e[1]!==r||e[2]!==a||e[3]!==t.name||e[4]!==f||e[5]!==u?(i=async()=>{if(r&&!f&&a&&!u){N(!0);const{engine:q,database:U,schema:Ie}=a,W=await ht.request({engine:q,database:U,schema:Ie,tableName:t.name});if(!(W!=null&&W.table))throw new Error("No table details available");c({table:W.table,sqlTableContext:a})}},e[0]=c,e[1]=r,e[2]=a,e[3]=t.name,e[4]=f,e[5]=u,e[6]=i):i=e[6],e[7]!==r||e[8]!==f?(b=[r,f],e[7]=r,e[8]=f,e[9]=b):b=e[9];const{isFetching:x,isPending:m,error:g}=ce(i,b),l=X(Xe),d=Ye(),{createNewCell:h}=Ze(),p=he();let _;e[10]!==p||e[11]!==l||e[12]!==h||e[13]!==d||e[14]!==a||e[15]!==t?(_=()=>{Qe({autoInstantiate:l,createNewCell:h,fromCellId:d}),p((()=>{if(t.source_type==="catalog"){const q=a!=null&&a.database?`${a.database}.${t.name}`:t.name;return`${t.engine}.load_table("${q}")`}if(a)return fe({table:t,columnName:"*",sqlTableContext:a});switch(t.source_type){case"local":return`mo.ui.table(${t.name})`;case"duckdb":case"connection":return fe({table:t,columnName:"*",sqlTableContext:a});default:return nt(t.source_type),""}})())},e[10]=p,e[11]=l,e[12]=h,e[13]=d,e[14]=a,e[15]=t,e[16]=_):_=e[16];const y=_;let w;e[17]!==t.num_columns||e[18]!==t.num_rows?(w=()=>{const q=[];return t.num_rows!=null&&q.push(`${t.num_rows} rows`),t.num_columns!=null&&q.push(`${t.num_columns} columns`),q.length===0?null:n.jsx("div",{className:"flex flex-row gap-2 items-center pl-6 group-hover:hidden",children:n.jsx("span",{className:"text-xs text-muted-foreground",children:q.join(", ")})})},e[17]=t.num_columns,e[18]=t.num_rows,e[19]=w):w=e[19];const v=w;let S;e[20]!==g||e[21]!==x||e[22]!==m||e[23]!==a||e[24]!==t?(S=()=>{if(m||x)return n.jsx(pe,{message:"Loading columns...",className:"pl-12"});if(g)return n.jsx(ue,{error:g,className:"pl-12"});const q=t.columns;return q.length===0?n.jsx(Q,{content:"No columns found",className:"pl-12"}):q.map(U=>n.jsx(qe,{table:t,column:U,sqlTableContext:a},U.name))},e[20]=g,e[21]=x,e[22]=m,e[23]=a,e[24]=t,e[25]=S):S=e[25];const D=S;let I;e[26]!==r||e[27]!==o||e[28]!==t.source_type||e[29]!==t.type?(I=()=>{if(t.source_type==="local")return;const q=t.type==="table"?et:tt;return n.jsx(q,{className:"h-3 w-3",strokeWidth:r||o?2.5:void 0})},e[26]=r,e[27]=o,e[28]=t.source_type,e[29]=t.type,e[30]=I):I=e[30];const L=I,A=a?`${a.database}.${a.schema}.${t.name}`:t.name,z=a&&(be(a.schema)?"pl-9":"pl-12"),E=(r||o)&&"font-semibold";let C,$,k,P,B,K,T,J,O,G,H,R;return e[31]!==z||e[32]!==E?(C=M("rounded-none group h-8 cursor-pointer",z,E),e[31]=z,e[32]=E,e[33]=C):C=e[33],e[34]!==r?($=()=>j(!r),e[34]=r,e[35]=$):$=e[35],e[36]!==L?(k=L(),e[36]=L,e[37]=k):k=e[37],e[38]!==t.name?(P=n.jsx("span",{className:"text-sm",children:t.name}),e[38]=t.name,e[39]=P):P=e[39],e[40]!==k||e[41]!==P?(B=n.jsxs("div",{className:"flex gap-2 items-center flex-1",children:[k,P]}),e[40]=k,e[41]=P,e[42]=B):B=e[42],e[43]!==v?(K=v(),e[43]=v,e[44]=K):K=e[44],e[45]!==y?(T=at.stopPropagation(()=>y()),e[45]=y,e[46]=T):T=e[46],e[47]===Symbol.for("react.memo_cache_sentinel")?(J=n.jsx(st,{className:"h-3 w-3"}),e[47]=J):J=e[47],e[48]!==T?(O=n.jsx(Z,{content:"Add table to notebook",delayDuration:400,children:n.jsx(Y,{className:"group-hover:inline-flex hidden",variant:"text",size:"icon",onClick:T,children:J})}),e[48]=T,e[49]=O):O=e[49],e[50]!==r||e[51]!==$||e[52]!==B||e[53]!==K||e[54]!==O||e[55]!==C||e[56]!==A?(G=n.jsxs(ee,{className:C,value:A,"aria-selected":r,forceMount:!0,onSelect:$,children:[B,K,O]}),e[50]=r,e[51]=$,e[52]=B,e[53]=K,e[54]=O,e[55]=C,e[56]=A,e[57]=G):G=e[57],e[58]!==r||e[59]!==D?(H=r&&D(),e[58]=r,e[59]=D,e[60]=H):H=e[60],e[61]!==G||e[62]!==H?(R=n.jsxs(n.Fragment,{children:[G,H]}),e[61]=G,e[62]=H,e[63]=R):R=e[63],R},qe=s=>{var B,K;const e=V.c(48),{table:t,column:a,sqlTableContext:o}=s,[c,r]=F.useState(!1),j=X(oe),u=re(rt);j&&c&&r(!1),u(c?T=>new Set([...T,`${t.name}:${a.name}`]):T=>(T.delete(`${t.name}:${a.name}`),new Set(T)));const N=he(),{columnsPreviews:f}=ot();let i;e[0]!==a.name||e[1]!==t.primary_keys?(i=((B=t.primary_keys)==null?void 0:B.includes(a.name))||!1,e[0]=a.name,e[1]=t.primary_keys,e[2]=i):i=e[2];const b=i;let x;e[3]!==a.name||e[4]!==t.indexes?(x=((K=t.indexes)==null?void 0:K.includes(a.name))||!1,e[3]=a.name,e[4]=t.indexes,e[5]=x):x=e[5];const m=x;let g;e[6]!==N?(g=T=>{N(T)},e[6]=N,e[7]=g):g=e[7];const l=g,d=Fe,h=c?"font-semibold":"";let p;e[8]!==a.name||e[9]!==h?(p=n.jsx("span",{className:h,children:a.name}),e[8]=a.name,e[9]=h,e[10]=p):p=e[10];const _=p,y=`${t.name}.${a.name}`,w=`${t.name}.${a.name}`;let v;e[11]!==c?(v=()=>r(!c),e[11]=c,e[12]=v):v=e[12];const S=o?"pl-14":"pl-7";let D,I,L,A,z,E,C,$,k,P;return e[13]!==S?(D=M("flex flex-row gap-2 items-center flex-1",S),e[13]=S,e[14]=D):D=e[14],e[15]!==a.type||e[16]!==_?(I=n.jsx(lt,{columnName:_,dataType:a.type}),e[15]=a.type,e[16]=_,e[17]=I):I=e[17],e[18]!==b?(L=b&&d({tooltipContent:"Primary key",content:"PK"}),e[18]=b,e[19]=L):L=e[19],e[20]!==m?(A=m&&d({tooltipContent:"Indexed",content:"IDX"}),e[20]=m,e[21]=A):A=e[21],e[22]!==D||e[23]!==I||e[24]!==L||e[25]!==A?(z=n.jsxs("div",{className:D,children:[I,L,A]}),e[22]=D,e[23]=I,e[24]=L,e[25]=A,e[26]=z):z=e[26],e[27]!==a.name?(E=n.jsx(Z,{content:"Copy column name",delayDuration:400,children:n.jsx(Y,{variant:"text",size:"icon",className:"group-hover:opacity-100 opacity-0 hover:bg-muted text-muted-foreground hover:text-foreground",children:n.jsx(mt,{tooltip:!1,value:a.name,className:"h-3 w-3"})})}),e[27]=a.name,e[28]=E):E=e[28],e[29]!==a.external_type?(C=n.jsx("span",{className:"text-xs text-muted-foreground",children:a.external_type}),e[29]=a.external_type,e[30]=C):C=e[30],e[31]!==z||e[32]!==E||e[33]!==C||e[34]!==y||e[35]!==w||e[36]!==v?($=n.jsxs(ee,{className:"rounded-none py-1 group cursor-pointer",value:w,onSelect:v,children:[z,E,C]},y),e[31]=z,e[32]=E,e[33]=C,e[34]=y,e[35]=w,e[36]=v,e[37]=$):$=e[37],e[38]!==a||e[39]!==f||e[40]!==l||e[41]!==c||e[42]!==o||e[43]!==t?(k=c&&n.jsx("div",{className:"pl-10 pr-2 py-2 bg-(--slate-1) shadow-inner border-b",children:n.jsx(ct,{children:n.jsx(it,{table:t,column:a,onAddColumnChart:l,preview:f.get(o?`${o.database}.${o.schema}.${t.name}:${a.name}`:`${t.name}:${a.name}`),sqlTableContext:o})})}),e[38]=a,e[39]=f,e[40]=l,e[41]=c,e[42]=o,e[43]=t,e[44]=k):k=e[44],e[45]!==$||e[46]!==k?(P=n.jsxs(n.Fragment,{children:[$,k]}),e[45]=$,e[46]=k,e[47]=P):P=e[47],P};function Fe(s){const{tooltipContent:e,content:t}=s;return n.jsx(Z,{content:e,delayDuration:100,children:n.jsx("span",{className:"text-xs text-black bg-gray-100 dark:invert rounded px-1",children:t})})}Ne=()=>{const s=V.c(1);let e;return s[0]===Symbol.for("react.memo_cache_sentinel")?(e=n.jsx(ve,{}),s[0]=e):e=s[0],e}});export{jt as __tla,Ne as default};