@marimo-team/frontend 0.24.1-dev41 → 0.24.1-dev43

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 (178) hide show
  1. package/dist/assets/{CellStatus-CfNQG_fZ.js → CellStatus-B6CWKORY.js} +1 -1
  2. package/dist/assets/ConnectedDataExplorerComponent-DZnvpjue.js +1 -0
  3. package/dist/assets/JsonOutput-BI2qFHVr.js +50 -0
  4. package/dist/assets/MarimoErrorOutput-BXh29HCp.js +6 -0
  5. package/dist/assets/RenderHTML-COTZYPO7.js +1 -0
  6. package/dist/assets/RunButton-DTUzITFm.js +1 -0
  7. package/dist/assets/VisuallyHidden-DurJ_JBW.js +1 -0
  8. package/dist/assets/{add-cell-with-ai-CGBEoX6T.js → add-cell-with-ai-B0RdHenk.js} +19 -19
  9. package/dist/assets/add-connection-dialog-CcnJ2LkX.js +166 -0
  10. package/dist/assets/agent-panel-PB0I1dIC.js +286 -0
  11. package/dist/assets/ai-model-dropdown-DjQy2bo-.js +3 -0
  12. package/dist/assets/app-config-button-COFLeJCU.js +1 -0
  13. package/dist/assets/{blob-ChElOQvm.js → blob-BBiZd3vX.js} +1 -1
  14. package/dist/assets/{cache-panel-CLfGxru6.js → cache-panel-MAXVmKkG.js} +1 -1
  15. package/dist/assets/cell-editor-5wcJHF0s.js +24 -0
  16. package/dist/assets/cell-link-BbAJokoX.js +1 -0
  17. package/dist/assets/cells-B1S_6FG3.js +227 -0
  18. package/dist/assets/chat-display-ClG9MRI_.js +1 -0
  19. package/dist/assets/chat-panel-BRoqCSCR.js +4 -0
  20. package/dist/assets/chat-ui-CNvkb287.js +4 -0
  21. package/dist/assets/circle--ysFeW9z.js +1 -0
  22. package/dist/assets/column-preview-D6cIOnWQ.js +1 -0
  23. package/dist/assets/command-palette-DtZy0Am-.js +1 -0
  24. package/dist/assets/common-BGLbVHCS.js +1 -0
  25. package/dist/assets/components-BAvTsivu.js +1 -0
  26. package/dist/assets/config-DcB2swfZ.js +1 -0
  27. package/dist/assets/context-Do8M9TDF.js +1 -0
  28. package/dist/assets/{datasource-C0_eJO-0.js → datasource-BrSYgi6C.js} +2 -2
  29. package/dist/assets/dependency-graph-panel-C13q-nga.js +5 -0
  30. package/dist/assets/{documentation-panel-CxjnCPq6.js → documentation-panel-CtQqNEQw.js} +1 -1
  31. package/dist/assets/{download-CxzOE8FX.js → download-CIdXYNHv.js} +1 -1
  32. package/dist/assets/dropdown-menu-CqNabM1f.js +1 -0
  33. package/dist/assets/edit-page-jAyDC21z.js +9 -0
  34. package/dist/assets/{error-entries-DCRQWi_N.js → error-entries-DEjvzkum.js} +1 -1
  35. package/dist/assets/{error-panel-Bx5cPw6N.js → error-panel-BvrDwUv8.js} +1 -1
  36. package/dist/assets/file-explorer-panel-DYujxxK-.js +1 -0
  37. package/dist/assets/{file-icons-DxXY84Jn.js → file-icons-Bo1Ewf1W.js} +1 -1
  38. package/dist/assets/file-name-input-BDGq0-ac.js +3 -0
  39. package/dist/assets/{floating-outline-gjfcwmyU.js → floating-outline-CNsG18LK.js} +1 -1
  40. package/dist/assets/{gallery-page-BI3aTl8u.js → gallery-page-4dZlIWMe.js} +1 -1
  41. package/dist/assets/{glide-data-editor-CrWGp7DP.js → glide-data-editor-BQNVc0zc.js} +2 -2
  42. package/dist/assets/home-page-CFAldshJ.js +4 -0
  43. package/dist/assets/html-to-image-DMn_7CCA.js +2 -0
  44. package/dist/assets/index-0VrRpta0.css +2 -0
  45. package/dist/assets/index-BBPHmHdW.js +29 -0
  46. package/dist/assets/input-DeyycFtq.js +7 -0
  47. package/dist/assets/{layout-BQjGHHu-.js → layout-Ddsz1eHh.js} +5 -5
  48. package/dist/assets/{logs-panel-D1RUMXL1.js → logs-panel-BSD1GETR.js} +1 -1
  49. package/dist/assets/markdown-renderer-DIXiKP4m.js +2 -0
  50. package/dist/assets/{mermaid-DtNubw9S.js → mermaid-CwvTqKGz.js} +2 -2
  51. package/dist/assets/{name-cell-input-DSKoNRk3.js → name-cell-input-zqypwqoZ.js} +1 -1
  52. package/dist/assets/{outline-panel-UIygpaO3.js → outline-panel-C5GAyqII.js} +1 -1
  53. package/dist/assets/packages-panel-CYLyGihe.js +1 -0
  54. package/dist/assets/{pair-with-agent-modal-Pl5cv7Gv.js → pair-with-agent-modal-CBIL9_6g.js} +2 -2
  55. package/dist/assets/panel-accordion-state-DmV3OgfX.js +1 -0
  56. package/dist/assets/panels-D53vWR00.js +4 -0
  57. package/dist/assets/{process-output-BWDSbk5d.js → process-output-DNhz9LLW.js} +1 -1
  58. package/dist/assets/{readonly-code-display-Bbnq-khe.js → readonly-code-display-CKT-gv1m.js} +1 -1
  59. package/dist/assets/readonly-python-code-De0vvuWh.js +1 -0
  60. package/dist/assets/{renderShortcut-Dj3NbkoC.js → renderShortcut-D9XYVNe3.js} +1 -1
  61. package/dist/assets/{reveal-component-Bgmfon3f.js → reveal-component-C0L5MU2W.js} +4 -4
  62. package/dist/assets/run-page-DXZapRtY.js +1 -0
  63. package/dist/assets/scratchpad-panel-ja6doGoa.js +1 -0
  64. package/dist/assets/secrets-panel-B7Rcwc2I.js +1 -0
  65. package/dist/assets/select-BUEX2Vfl.js +1 -0
  66. package/dist/assets/session-panel-ftyqfsYy.js +1 -0
  67. package/dist/assets/{skeleton-DGs-LrlZ.js → skeleton-CxFczTPo.js} +1 -1
  68. package/dist/assets/snippets-panel-BZ254lxN.js +1 -0
  69. package/dist/assets/{state-WVnIPIsw.js → state-MlBpc9qi.js} +3 -3
  70. package/dist/assets/{state-N_csMEH1.js → state-llVv0lIh.js} +1 -1
  71. package/dist/assets/switch-CBR-ykv3.js +1 -0
  72. package/dist/assets/tabs-c6mpccpH.js +1 -0
  73. package/dist/assets/{terminal-aLrVlOf6.js → terminal-OC_FnEas.js} +3 -3
  74. package/dist/assets/tracing-C0FGWieO.js +1 -0
  75. package/dist/assets/tracing-panel-LeIOi1Tv.js +2 -0
  76. package/dist/assets/{tree-actions-Ctf5W0DR.js → tree-actions-CrWpuExP.js} +1 -1
  77. package/dist/assets/useAddCell-DIdbaU70.js +1 -0
  78. package/dist/assets/useCellActionButton-DXyUqFdJ.js +1 -0
  79. package/dist/assets/{useDateFormatter-CfPcCT-J.js → useDateFormatter-BiqAQ-zI.js} +1 -1
  80. package/dist/assets/{useDeleteCell-6wcjnAMK.js → useDeleteCell-CSCMg7Up.js} +1 -1
  81. package/dist/assets/useDependencyPanelTab-Bt7aBDpS.js +1 -0
  82. package/dist/assets/useNotebookActions-ClT4GmnB.js +10 -0
  83. package/dist/assets/useNumberFormatter-DHJ9s6Vk.js +1 -0
  84. package/dist/assets/useRunCells-DHnbXALT.js +1 -0
  85. package/dist/assets/{useSplitCell-oIRu7Qlj.js → useSplitCell-CxlsGCB_.js} +1 -1
  86. package/dist/assets/{vega-component-D4OKyVdb.js → vega-component-CzgE5HEs.js} +1 -1
  87. package/dist/assets/write-secret-modal-BG_B6y1P.js +2 -0
  88. package/dist/index.html +57 -71
  89. package/package.json +1 -1
  90. package/src/components/chat/acp/agent-panel.tsx +4 -6
  91. package/src/components/data-table/columns.tsx +130 -132
  92. package/src/components/datasources/datasources.tsx +16 -17
  93. package/src/components/editor/actions/useNotebookActions.tsx +50 -0
  94. package/src/components/editor/chrome/panels/components.tsx +1 -1
  95. package/src/components/editor/connections/__tests__/add-connection-button.test.tsx +129 -0
  96. package/src/components/editor/connections/add-connection-button.tsx +132 -0
  97. package/src/components/editor/connections/components.tsx +11 -0
  98. package/src/components/editor/connections/quick-add-data-sources.tsx +11 -11
  99. package/src/components/editor/controls/__tests__/notebook-menu-dropdown.test.tsx +109 -1
  100. package/src/components/storage/storage-inspector.tsx +15 -17
  101. package/src/core/codemirror/language/panel/sql.test.tsx +69 -0
  102. package/src/core/codemirror/language/panel/sql.tsx +81 -4
  103. package/src/core/codemirror/markdown/commands.ts +1 -1
  104. package/src/core/codemirror/markdown/completions.ts +15 -17
  105. package/dist/assets/ConnectedDataExplorerComponent-88Ojqyhx.js +0 -1
  106. package/dist/assets/DeferredRequestRegistry-C-SpvRCH.js +0 -1
  107. package/dist/assets/ImperativeModal-68zj0lxy.js +0 -1
  108. package/dist/assets/JsonOutput-pCdkYz4X.js +0 -50
  109. package/dist/assets/MarimoErrorOutput-b7bFhjgD.js +0 -6
  110. package/dist/assets/RSPContexts-D2JcYZo2.js +0 -1
  111. package/dist/assets/RenderHTML-BUuDW4yZ.js +0 -1
  112. package/dist/assets/RunButton-4MKgVYXU.js +0 -1
  113. package/dist/assets/SSRProvider-C_WMmqnS.js +0 -1
  114. package/dist/assets/add-connection-dialog-BcLKuMHt.js +0 -166
  115. package/dist/assets/agent-panel-BVyaNGyG.js +0 -286
  116. package/dist/assets/ai-model-dropdown-C_IoSmhR.js +0 -3
  117. package/dist/assets/app-config-button-BvpunAmJ.js +0 -1
  118. package/dist/assets/cell-editor-pKuytlrm.js +0 -24
  119. package/dist/assets/cell-link-D9d1y67_.js +0 -1
  120. package/dist/assets/cells-BdoPd1mK.js +0 -226
  121. package/dist/assets/chat-display-CbsB82vm.js +0 -1
  122. package/dist/assets/chat-panel-DCPKH1gP.js +0 -4
  123. package/dist/assets/chat-ui-BwLG6iSS.js +0 -4
  124. package/dist/assets/circle-plus-cm-FRu9O.js +0 -1
  125. package/dist/assets/column-preview-fku2dKeP.js +0 -1
  126. package/dist/assets/command-Cvmdzx0n.js +0 -1
  127. package/dist/assets/command-palette-BJFR8wKv.js +0 -1
  128. package/dist/assets/common-CQ9OqrFS.js +0 -1
  129. package/dist/assets/components-CaOG3LOY.js +0 -1
  130. package/dist/assets/config-xlrIxOZJ.js +0 -1
  131. package/dist/assets/context-Bf2wPdef.js +0 -1
  132. package/dist/assets/data-source-discovery-BsrDlL04.js +0 -1
  133. package/dist/assets/dependency-graph-panel-CxZJ5e7D.js +0 -5
  134. package/dist/assets/dialog-EjSc4yoH.js +0 -1
  135. package/dist/assets/dropdown-menu-BpI5klSq.js +0 -1
  136. package/dist/assets/edit-page-DwKN7vIP.js +0 -9
  137. package/dist/assets/field-YoG_gQAY.js +0 -1
  138. package/dist/assets/file-explorer-panel-CRrPqu3s.js +0 -1
  139. package/dist/assets/file-name-input-uFNWUWCc.js +0 -3
  140. package/dist/assets/focus-DgNLvj0o.js +0 -1
  141. package/dist/assets/form-CD2uATFu.js +0 -2
  142. package/dist/assets/form-GIq5QCAI.js +0 -1
  143. package/dist/assets/home-page-CYg3rQCB.js +0 -4
  144. package/dist/assets/html-to-image-Bt7Ld74W.js +0 -2
  145. package/dist/assets/index-CrsPwq0f.js +0 -29
  146. package/dist/assets/index-H2TMW127.css +0 -2
  147. package/dist/assets/input-BuOxQ3Wy.js +0 -1
  148. package/dist/assets/label-B67m1YH7.js +0 -1
  149. package/dist/assets/links-C7oaxPJK.js +0 -1
  150. package/dist/assets/markdown-renderer-C8IbrNw3.js +0 -2
  151. package/dist/assets/packages-panel-CIwyYf45.js +0 -1
  152. package/dist/assets/panel-accordion-state-DAAi8MPY.js +0 -1
  153. package/dist/assets/panels-DcguQKjE.js +0 -4
  154. package/dist/assets/popover-CgOo22ko.js +0 -1
  155. package/dist/assets/radio-group-DZoEgN7k.js +0 -1
  156. package/dist/assets/readonly-python-code-CyfabMFb.js +0 -1
  157. package/dist/assets/refresh-ccw-DrVG5f2L.js +0 -1
  158. package/dist/assets/request-registry-mNu7sXOU.js +0 -1
  159. package/dist/assets/run-page-Buh6gERG.js +0 -1
  160. package/dist/assets/scratchpad-panel-soCf5igY.js +0 -1
  161. package/dist/assets/secrets-panel-CCb8F6PC.js +0 -1
  162. package/dist/assets/select-DwqnFsyg.js +0 -1
  163. package/dist/assets/session-panel-BO4lOJc-.js +0 -1
  164. package/dist/assets/snippets-panel-CulFiQ0V.js +0 -1
  165. package/dist/assets/sparkles-30wHhAF5.js +0 -1
  166. package/dist/assets/state-B-K0k6lb.js +0 -1
  167. package/dist/assets/switch-VzdUoXkf.js +0 -1
  168. package/dist/assets/textarea-mD3C73jw.js +0 -1
  169. package/dist/assets/tracing-B_Qlv38-.js +0 -1
  170. package/dist/assets/tracing-panel--KVMPYqh.js +0 -2
  171. package/dist/assets/useCellActionButton-BDVM-sW-.js +0 -1
  172. package/dist/assets/useDependencyPanelTab-D4TnSeLa.js +0 -1
  173. package/dist/assets/useNotebookActions-gEpi1TfO.js +0 -10
  174. package/dist/assets/useNumberFormatter-BmUQe2Pf.js +0 -1
  175. package/dist/assets/usePress-CwOqeEX3.js +0 -7
  176. package/dist/assets/useRunCells-DP6cAHq0.js +0 -1
  177. package/dist/assets/write-secret-modal-dplU5PG8.js +0 -2
  178. package/dist/assets/x-BgkoSHM-.js +0 -1
package/dist/index.html CHANGED
@@ -66,7 +66,7 @@
66
66
  <marimo-server-token data-token="{{ server_token }}" hidden></marimo-server-token>
67
67
  <!-- /TODO -->
68
68
  <title>{{ title }}</title>
69
- <script type="module" crossorigin src="./assets/index-CrsPwq0f.js"></script>
69
+ <script type="module" crossorigin src="./assets/index-BBPHmHdW.js"></script>
70
70
  <link rel="modulepreload" crossorigin href="./assets/rolldown-runtime-B0Z9INg1.js">
71
71
  <link rel="modulepreload" crossorigin href="./assets/react-CBDbhulC.js">
72
72
  <link rel="modulepreload" crossorigin href="./assets/compiler-runtime-CYIjoINj.js">
@@ -95,10 +95,13 @@
95
95
  <link rel="modulepreload" crossorigin href="./assets/dist-BgL43w5r.js">
96
96
  <link rel="modulepreload" crossorigin href="./assets/menu-items-BSVrMleU.js">
97
97
  <link rel="modulepreload" crossorigin href="./assets/button-BMBznEru.js">
98
+ <link rel="modulepreload" crossorigin href="./assets/alert-dialog-DBoy-FMx.js">
98
99
  <link rel="modulepreload" crossorigin href="./assets/createLucideIcon-B7HeEoG2.js">
99
100
  <link rel="modulepreload" crossorigin href="./assets/check-BoA6XBpj.js">
100
- <link rel="modulepreload" crossorigin href="./assets/x-BgkoSHM-.js">
101
- <link rel="modulepreload" crossorigin href="./assets/select-DwqnFsyg.js">
101
+ <link rel="modulepreload" crossorigin href="./assets/context-Do8M9TDF.js">
102
+ <link rel="modulepreload" crossorigin href="./assets/useNumberFormatter-DHJ9s6Vk.js">
103
+ <link rel="modulepreload" crossorigin href="./assets/select-BUEX2Vfl.js">
104
+ <link rel="modulepreload" crossorigin href="./assets/circle--ysFeW9z.js">
102
105
  <link rel="modulepreload" crossorigin href="./assets/tooltip-D7dq6bnc.js">
103
106
  <link rel="modulepreload" crossorigin href="./assets/dist-PIe1xcZo.js">
104
107
  <link rel="modulepreload" crossorigin href="./assets/dist-CbQrIaPV.js">
@@ -115,8 +118,14 @@
115
118
  <link rel="modulepreload" crossorigin href="./assets/useLifecycle-BUaJcygz.js">
116
119
  <link rel="modulepreload" crossorigin href="./assets/toDate-hGYJX0Ha.js">
117
120
  <link rel="modulepreload" crossorigin href="./assets/database-zap-CloO6gbw.js">
121
+ <link rel="modulepreload" crossorigin href="./assets/numbers-DKurV_vq.js">
122
+ <link rel="modulepreload" crossorigin href="./assets/useDebounce-Dulm61-t.js">
123
+ <link rel="modulepreload" crossorigin href="./assets/input-DeyycFtq.js">
118
124
  <link rel="modulepreload" crossorigin href="./assets/uuid-k9DpjH68.js">
119
- <link rel="modulepreload" crossorigin href="./assets/DeferredRequestRegistry-C-SpvRCH.js">
125
+ <link rel="modulepreload" crossorigin href="./assets/use-toast-DpWHUGuF.js">
126
+ <link rel="modulepreload" crossorigin href="./assets/write-secret-modal-BG_B6y1P.js">
127
+ <link rel="modulepreload" crossorigin href="./assets/plus-C4J9gIE1.js">
128
+ <link rel="modulepreload" crossorigin href="./assets/trash-2-D_HX-0qx.js">
120
129
  <link rel="modulepreload" crossorigin href="./assets/badge-D_-uqy2N.js">
121
130
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-HclGiUj8.js">
122
131
  <link rel="modulepreload" crossorigin href="./assets/dist-BO5c5n_b.js">
@@ -125,66 +134,64 @@
125
134
  <link rel="modulepreload" crossorigin href="./assets/dist-DCc0VfiO.js">
126
135
  <link rel="modulepreload" crossorigin href="./assets/dist-DzAWvPVK.js">
127
136
  <link rel="modulepreload" crossorigin href="./assets/stex-Dc5bKD4z.js">
128
- <link rel="modulepreload" crossorigin href="./assets/use-toast-DpWHUGuF.js">
129
137
  <link rel="modulepreload" crossorigin href="./assets/paths-zcL04qUW.js">
130
138
  <link rel="modulepreload" crossorigin href="./assets/useTheme-BRnykVDX.js">
139
+ <link rel="modulepreload" crossorigin href="./assets/useAsyncData-Buhk-UgR.js">
131
140
  <link rel="modulepreload" crossorigin href="./assets/purify.es-DrVcFY1Q.js">
132
- <link rel="modulepreload" crossorigin href="./assets/cells-BdoPd1mK.js">
133
- <link rel="modulepreload" crossorigin href="./assets/ErrorBoundary-TUuUdxHz.js">
134
- <link rel="modulepreload" crossorigin href="./assets/chevron-right-CKA5zVsM.js">
135
- <link rel="modulepreload" crossorigin href="./assets/dropdown-menu-BpI5klSq.js">
136
- <link rel="modulepreload" crossorigin href="./assets/popover-CgOo22ko.js">
141
+ <link rel="modulepreload" crossorigin href="./assets/cells-B1S_6FG3.js">
142
+ <link rel="modulepreload" crossorigin href="./assets/get-DjNf4SIX.js">
143
+ <link rel="modulepreload" crossorigin href="./assets/_hasPath-BmRQipI0.js">
144
+ <link rel="modulepreload" crossorigin href="./assets/hasIn-yw4sIeJR.js">
145
+ <link rel="modulepreload" crossorigin href="./assets/_baseSet-gX6o3Pih.js">
146
+ <link rel="modulepreload" crossorigin href="./assets/pick-Bs4cJfJU.js">
137
147
  <link rel="modulepreload" crossorigin href="./assets/errors-DzO-nXy-.js">
138
- <link rel="modulepreload" crossorigin href="./assets/html-to-image-Bt7Ld74W.js">
139
- <link rel="modulepreload" crossorigin href="./assets/download-CxzOE8FX.js">
140
- <link rel="modulepreload" crossorigin href="./assets/LazyAnyLanguageCodeMirror-YVX2AZaI.js">
141
- <link rel="modulepreload" crossorigin href="./assets/table-CUK1W5bI.js">
148
+ <link rel="modulepreload" crossorigin href="./assets/switch-CBR-ykv3.js">
149
+ <link rel="modulepreload" crossorigin href="./assets/copy-BMXKNElG.js">
142
150
  <link rel="modulepreload" crossorigin href="./assets/eye-off-CFuPxa9F.js">
143
- <link rel="modulepreload" crossorigin href="./assets/refresh-cw-Bf-rx_aV.js">
144
- <link rel="modulepreload" crossorigin href="./assets/tree-actions-Ctf5W0DR.js">
145
151
  <link rel="modulepreload" crossorigin href="./assets/copy-Cg05mM3C.js">
152
+ <link rel="modulepreload" crossorigin href="./assets/extends-CvVTau-c.js">
153
+ <link rel="modulepreload" crossorigin href="./assets/esm-Dw0vvSg2.js">
154
+ <link rel="modulepreload" crossorigin href="./assets/useAddCell-DIdbaU70.js">
155
+ <link rel="modulepreload" crossorigin href="./assets/readonly-python-code-De0vvuWh.js">
156
+ <link rel="modulepreload" crossorigin href="./assets/LazyAnyLanguageCodeMirror-YVX2AZaI.js">
146
157
  <link rel="modulepreload" crossorigin href="./assets/micromark-factory-space-D9Dr-k4J.js">
147
158
  <link rel="modulepreload" crossorigin href="./assets/chunk-5FQGJX7Z-CRg4xQWg.js">
148
- <link rel="modulepreload" crossorigin href="./assets/focus-DgNLvj0o.js">
149
- <link rel="modulepreload" crossorigin href="./assets/useAsyncData-Buhk-UgR.js">
150
- <link rel="modulepreload" crossorigin href="./assets/markdown-renderer-C8IbrNw3.js">
151
- <link rel="modulepreload" crossorigin href="./assets/copy-BMXKNElG.js">
159
+ <link rel="modulepreload" crossorigin href="./assets/markdown-renderer-DIXiKP4m.js">
160
+ <link rel="modulepreload" crossorigin href="./assets/copy-icon-LPQzn7_f.js">
161
+ <link rel="modulepreload" crossorigin href="./assets/useRunCells-DHnbXALT.js">
162
+ <link rel="modulepreload" crossorigin href="./assets/RenderHTML-COTZYPO7.js">
163
+ <link rel="modulepreload" crossorigin href="./assets/blob-BBiZd3vX.js">
164
+ <link rel="modulepreload" crossorigin href="./assets/share-C2MPy_VX.js">
165
+ <link rel="modulepreload" crossorigin href="./assets/events-CbeVJ6OD.js">
166
+ <link rel="modulepreload" crossorigin href="./assets/state-MlBpc9qi.js">
167
+ <link rel="modulepreload" crossorigin href="./assets/ErrorBoundary-TUuUdxHz.js">
168
+ <link rel="modulepreload" crossorigin href="./assets/config-DcB2swfZ.js">
169
+ <link rel="modulepreload" crossorigin href="./assets/tabs-c6mpccpH.js">
170
+ <link rel="modulepreload" crossorigin href="./assets/chevron-right-CKA5zVsM.js">
171
+ <link rel="modulepreload" crossorigin href="./assets/dropdown-menu-CqNabM1f.js">
172
+ <link rel="modulepreload" crossorigin href="./assets/html-to-image-DMn_7CCA.js">
173
+ <link rel="modulepreload" crossorigin href="./assets/download-CIdXYNHv.js">
174
+ <link rel="modulepreload" crossorigin href="./assets/table-CUK1W5bI.js">
175
+ <link rel="modulepreload" crossorigin href="./assets/refresh-cw-Bf-rx_aV.js">
176
+ <link rel="modulepreload" crossorigin href="./assets/tree-actions-CrWpuExP.js">
152
177
  <link rel="modulepreload" crossorigin href="./assets/ellipsis-Dfik_tuW.js">
153
178
  <link rel="modulepreload" crossorigin href="./assets/external-link-Bp3BxyRA.js">
154
179
  <link rel="modulepreload" crossorigin href="./assets/spinner-Ck-Hgfvj.js">
155
180
  <link rel="modulepreload" crossorigin href="./assets/message-circle-BQB1AIAg.js">
156
- <link rel="modulepreload" crossorigin href="./assets/plus-C4J9gIE1.js">
157
- <link rel="modulepreload" crossorigin href="./assets/SSRProvider-C_WMmqnS.js">
158
- <link rel="modulepreload" crossorigin href="./assets/usePress-CwOqeEX3.js">
159
- <link rel="modulepreload" crossorigin href="./assets/context-Bf2wPdef.js">
160
- <link rel="modulepreload" crossorigin href="./assets/useNumberFormatter-BmUQe2Pf.js">
161
- <link rel="modulepreload" crossorigin href="./assets/useDebounce-Dulm61-t.js">
162
- <link rel="modulepreload" crossorigin href="./assets/numbers-DKurV_vq.js">
163
- <link rel="modulepreload" crossorigin href="./assets/input-BuOxQ3Wy.js">
164
- <link rel="modulepreload" crossorigin href="./assets/config-xlrIxOZJ.js">
165
181
  <link rel="modulepreload" crossorigin href="./assets/hat-glasses-C8LSY3HT.js">
166
182
  <link rel="modulepreload" crossorigin href="./assets/package-DPlscLzt.js">
167
- <link rel="modulepreload" crossorigin href="./assets/sparkles-30wHhAF5.js">
168
- <link rel="modulepreload" crossorigin href="./assets/datasource-C0_eJO-0.js">
169
- <link rel="modulepreload" crossorigin href="./assets/copy-icon-LPQzn7_f.js">
170
- <link rel="modulepreload" crossorigin href="./assets/useRunCells-DP6cAHq0.js">
171
- <link rel="modulepreload" crossorigin href="./assets/RenderHTML-BUuDW4yZ.js">
183
+ <link rel="modulepreload" crossorigin href="./assets/datasource-BrSYgi6C.js">
172
184
  <link rel="modulepreload" crossorigin href="./assets/kbd-Cwh96ZBE.js">
173
- <link rel="modulepreload" crossorigin href="./assets/links-C7oaxPJK.js">
174
185
  <link rel="modulepreload" crossorigin href="./assets/alert-dmKwNsrp.js">
175
186
  <link rel="modulepreload" crossorigin href="./assets/useInstallPackage-Bq7SlWgN.js">
176
- <link rel="modulepreload" crossorigin href="./assets/state-N_csMEH1.js">
177
- <link rel="modulepreload" crossorigin href="./assets/alert-dialog-DBoy-FMx.js">
178
- <link rel="modulepreload" crossorigin href="./assets/dialog-EjSc4yoH.js">
179
- <link rel="modulepreload" crossorigin href="./assets/ImperativeModal-68zj0lxy.js">
180
- <link rel="modulepreload" crossorigin href="./assets/cell-link-D9d1y67_.js">
181
- <link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-b7bFhjgD.js">
182
- <link rel="modulepreload" crossorigin href="./assets/trash-2-D_HX-0qx.js">
187
+ <link rel="modulepreload" crossorigin href="./assets/state-llVv0lIh.js">
188
+ <link rel="modulepreload" crossorigin href="./assets/cell-link-BbAJokoX.js">
189
+ <link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-BXh29HCp.js">
190
+ <link rel="modulepreload" crossorigin href="./assets/VisuallyHidden-DurJ_JBW.js">
191
+ <link rel="modulepreload" crossorigin href="./assets/useDateFormatter-BiqAQ-zI.js">
183
192
  <link rel="modulepreload" crossorigin href="./assets/en-US-yTIMUO13.js">
184
193
  <link rel="modulepreload" crossorigin href="./assets/isValid-nQ3Iam8J.js">
185
194
  <link rel="modulepreload" crossorigin href="./assets/dates-DK5JikJo.js">
186
- <link rel="modulepreload" crossorigin href="./assets/RSPContexts-D2JcYZo2.js">
187
- <link rel="modulepreload" crossorigin href="./assets/useDateFormatter-CfPcCT-J.js">
188
195
  <link rel="modulepreload" crossorigin href="./assets/defaultLocale-CNPGWpMu.js">
189
196
  <link rel="modulepreload" crossorigin href="./assets/precisionRound-Bq_nmf5u.js">
190
197
  <link rel="modulepreload" crossorigin href="./assets/defaultLocale-Dm4DaIgg.js">
@@ -192,34 +199,13 @@
192
199
  <link rel="modulepreload" crossorigin href="./assets/tooltip-Cwltdez8.js">
193
200
  <link rel="modulepreload" crossorigin href="./assets/react-icons.esm-hr79-MCS.js">
194
201
  <link rel="modulepreload" crossorigin href="./assets/emotion-is-prop-valid.esm-nLO-SoUf.js">
195
- <link rel="modulepreload" crossorigin href="./assets/extends-CvVTau-c.js">
196
202
  <link rel="modulepreload" crossorigin href="./assets/useIframeCapabilities-DEpTCh1Q.js">
197
203
  <link rel="modulepreload" crossorigin href="./assets/error-banner-B3KYUlCX.js">
198
204
  <link rel="modulepreload" crossorigin href="./assets/utils-49LGK4zG.js">
199
205
  <link rel="modulepreload" crossorigin href="./assets/formats-DSzGCKeO.js">
200
206
  <link rel="modulepreload" crossorigin href="./assets/table-DmqOOjfe.js">
201
207
  <link rel="modulepreload" crossorigin href="./assets/react-resizable-panels.browser.esm-BSRAHC4P.js">
202
- <link rel="modulepreload" crossorigin href="./assets/command-Cvmdzx0n.js">
203
- <link rel="modulepreload" crossorigin href="./assets/field-YoG_gQAY.js">
204
- <link rel="modulepreload" crossorigin href="./assets/JsonOutput-pCdkYz4X.js">
205
- <link rel="modulepreload" crossorigin href="./assets/label-B67m1YH7.js">
206
- <link rel="modulepreload" crossorigin href="./assets/radio-group-DZoEgN7k.js">
207
- <link rel="modulepreload" crossorigin href="./assets/refresh-ccw-DrVG5f2L.js">
208
- <link rel="modulepreload" crossorigin href="./assets/form-GIq5QCAI.js">
209
- <link rel="modulepreload" crossorigin href="./assets/textarea-mD3C73jw.js">
210
- <link rel="modulepreload" crossorigin href="./assets/form-CD2uATFu.js">
211
- <link rel="modulepreload" crossorigin href="./assets/get-DjNf4SIX.js">
212
- <link rel="modulepreload" crossorigin href="./assets/_hasPath-BmRQipI0.js">
213
- <link rel="modulepreload" crossorigin href="./assets/hasIn-yw4sIeJR.js">
214
- <link rel="modulepreload" crossorigin href="./assets/_baseSet-gX6o3Pih.js">
215
- <link rel="modulepreload" crossorigin href="./assets/pick-Bs4cJfJU.js">
216
- <link rel="modulepreload" crossorigin href="./assets/switch-VzdUoXkf.js">
217
- <link rel="modulepreload" crossorigin href="./assets/esm-Dw0vvSg2.js">
218
- <link rel="modulepreload" crossorigin href="./assets/readonly-python-code-CyfabMFb.js">
219
- <link rel="modulepreload" crossorigin href="./assets/blob-ChElOQvm.js">
220
- <link rel="modulepreload" crossorigin href="./assets/share-C2MPy_VX.js">
221
- <link rel="modulepreload" crossorigin href="./assets/events-CbeVJ6OD.js">
222
- <link rel="modulepreload" crossorigin href="./assets/state-WVnIPIsw.js">
208
+ <link rel="modulepreload" crossorigin href="./assets/JsonOutput-BI2qFHVr.js">
223
209
  <link rel="modulepreload" crossorigin href="./assets/chart-no-axes-column-ChZdjJhj.js">
224
210
  <link rel="modulepreload" crossorigin href="./assets/square-function-DkZweMAs.js">
225
211
  <link rel="modulepreload" crossorigin href="./assets/spec-CUFquO6R.js">
@@ -230,25 +216,25 @@
230
216
  <link rel="modulepreload" crossorigin href="./assets/file-headphone-rFCxFRI8.js">
231
217
  <link rel="modulepreload" crossorigin href="./assets/file-DF8n85RA.js">
232
218
  <link rel="modulepreload" crossorigin href="./assets/image-ab13yGv4.js">
233
- <link rel="modulepreload" crossorigin href="./assets/file-icons-DxXY84Jn.js">
219
+ <link rel="modulepreload" crossorigin href="./assets/file-icons-Bo1Ewf1W.js">
234
220
  <link rel="modulepreload" crossorigin href="./assets/globe-BQf75qV_.js">
235
221
  <link rel="modulepreload" crossorigin href="./assets/markdown-export-0rLbaq8b.js">
236
222
  <link rel="modulepreload" crossorigin href="./assets/types-BflGgckY.js">
237
- <link rel="modulepreload" crossorigin href="./assets/column-preview-fku2dKeP.js">
223
+ <link rel="modulepreload" crossorigin href="./assets/column-preview-D6cIOnWQ.js">
238
224
  <link rel="modulepreload" crossorigin href="./assets/square-B58Ib8Ir.js">
239
225
  <link rel="modulepreload" crossorigin href="./assets/triangle-alert-MihykDYG.js">
240
226
  <link rel="modulepreload" crossorigin href="./assets/prop-types-Djf4O40e.js">
241
227
  <link rel="modulepreload" crossorigin href="./assets/es-BuMFDpR4.js">
242
- <link rel="modulepreload" crossorigin href="./assets/renderShortcut-Dj3NbkoC.js">
228
+ <link rel="modulepreload" crossorigin href="./assets/renderShortcut-D9XYVNe3.js">
243
229
  <link rel="modulepreload" crossorigin href="./assets/bundle.esm-DzY74mzC.js">
244
230
  <link rel="modulepreload" crossorigin href="./assets/icons-CjLa9BiH.js">
245
231
  <link rel="modulepreload" crossorigin href="./assets/useDeepCompareMemoize-CLytDdMl.js">
246
232
  <link rel="modulepreload" crossorigin href="./assets/pathUtils-Cryrlpma.js">
247
- <link rel="modulepreload" crossorigin href="./assets/floating-outline-gjfcwmyU.js">
233
+ <link rel="modulepreload" crossorigin href="./assets/floating-outline-CNsG18LK.js">
248
234
  <link rel="stylesheet" crossorigin href="./assets/cells-D-c15Ks-.css">
249
235
  <link rel="stylesheet" crossorigin href="./assets/markdown-renderer-CU2Wa_Bt.css">
250
236
  <link rel="stylesheet" crossorigin href="./assets/JsonOutput-BQtz7-np.css">
251
- <link rel="stylesheet" crossorigin href="./assets/index-H2TMW127.css">
237
+ <link rel="stylesheet" crossorigin href="./assets/index-0VrRpta0.css">
252
238
  </head>
253
239
  <body>
254
240
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/frontend",
3
- "version": "0.24.1-dev41",
3
+ "version": "0.24.1-dev43",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -334,12 +334,10 @@ const PromptArea = memo<PromptAreaProps>(
334
334
  // sentence has to begin with '/' to trigger autocomplete
335
335
  return {
336
336
  triggerCompletionRegex: /^\/(\w+)?/,
337
- completions: commands.map(
338
- (prompt): Completion => ({
339
- label: `/${prompt.name}`,
340
- info: prompt.description,
341
- }),
342
- ),
337
+ completions: commands.map((prompt): Completion => ({
338
+ label: `/${prompt.name}`,
339
+ info: prompt.description,
340
+ })),
343
341
  };
344
342
  }, [commands]);
345
343
 
@@ -196,150 +196,148 @@ export function generateColumns<T>({
196
196
  columnKeys.splice(indexColumnIdx, 1);
197
197
  }
198
198
 
199
- const columns = columnKeys.map(
200
- (key, idx): ColumnDef<T> => ({
201
- id: key || `${NAMELESS_COLUMN_PREFIX}${idx}`,
202
- // Use an accessorFn instead of an accessorKey because column names
203
- // may have periods in them ...
204
- // https://github.com/TanStack/table/issues/1671
205
- accessorFn: (row) => {
206
- return row[key as keyof T];
207
- },
208
- enableHiding: !rowHeadersSet.has(key) && key !== "",
209
- header: ({ column, table }) => {
210
- const stats = chartSpecModel?.getColumnStats(key);
211
- const dtype = column.columnDef.meta?.dtype;
212
- const headerTitle = headerTooltip?.[key];
213
- const headerJustify = textJustifyColumns?.[key];
214
-
215
- const dtypeHeader =
216
- showDataTypes && dtype ? (
217
- <div
218
- className={cn(
219
- "flex flex-row gap-1",
220
- headerJustify === "center" && "justify-center",
221
- headerJustify === "right" && "justify-end",
222
- )}
223
- >
224
- <span className="text-xs text-muted-foreground">{dtype}</span>
225
- {stats && typeof stats.nulls === "number" && stats.nulls > 0 && (
226
- <span className="text-xs text-muted-foreground">
227
- (nulls: {stats.nulls})
228
- </span>
229
- )}
230
- </div>
231
- ) : null;
232
-
233
- const headerName = (
234
- <span
199
+ const columns = columnKeys.map((key, idx): ColumnDef<T> => ({
200
+ id: key || `${NAMELESS_COLUMN_PREFIX}${idx}`,
201
+ // Use an accessorFn instead of an accessorKey because column names
202
+ // may have periods in them ...
203
+ // https://github.com/TanStack/table/issues/1671
204
+ accessorFn: (row) => {
205
+ return row[key as keyof T];
206
+ },
207
+ enableHiding: !rowHeadersSet.has(key) && key !== "",
208
+ header: ({ column, table }) => {
209
+ const stats = chartSpecModel?.getColumnStats(key);
210
+ const dtype = column.columnDef.meta?.dtype;
211
+ const headerTitle = headerTooltip?.[key];
212
+ const headerJustify = textJustifyColumns?.[key];
213
+
214
+ const dtypeHeader =
215
+ showDataTypes && dtype ? (
216
+ <div
235
217
  className={cn(
236
- "font-bold",
237
- headerTitle && "underline decoration-dotted",
218
+ "flex flex-row gap-1",
219
+ headerJustify === "center" && "justify-center",
220
+ headerJustify === "right" && "justify-end",
238
221
  )}
239
222
  >
240
- {key === "" ? " " : key}
241
- </span>
242
- );
223
+ <span className="text-xs text-muted-foreground">{dtype}</span>
224
+ {stats && typeof stats.nulls === "number" && stats.nulls > 0 && (
225
+ <span className="text-xs text-muted-foreground">
226
+ (nulls: {stats.nulls})
227
+ </span>
228
+ )}
229
+ </div>
230
+ ) : null;
243
231
 
244
- const headerWithTooltip = headerTitle ? (
245
- <Tooltip content={headerTitle} delayDuration={300}>
246
- {headerName}
247
- </Tooltip>
248
- ) : (
249
- headerName
250
- );
232
+ const headerName = (
233
+ <span
234
+ className={cn(
235
+ "font-bold",
236
+ headerTitle && "underline decoration-dotted",
237
+ )}
238
+ >
239
+ {key === "" ? " " : key}
240
+ </span>
241
+ );
251
242
 
252
- const dataTableColumnHeader = (
253
- <DataTableColumnHeader
254
- header={headerWithTooltip}
255
- subheader={dtypeHeader}
256
- column={column}
257
- justify={headerJustify}
258
- calculateTopKRows={calculateTopKRows}
259
- table={table}
260
- />
261
- );
243
+ const headerWithTooltip = headerTitle ? (
244
+ <Tooltip content={headerTitle} delayDuration={300}>
245
+ {headerName}
246
+ </Tooltip>
247
+ ) : (
248
+ headerName
249
+ );
262
250
 
263
- // Row headers have no summaries
264
- if (rowHeadersSet.has(key)) {
265
- return dataTableColumnHeader;
266
- }
251
+ const dataTableColumnHeader = (
252
+ <DataTableColumnHeader
253
+ header={headerWithTooltip}
254
+ subheader={dtypeHeader}
255
+ column={column}
256
+ justify={headerJustify}
257
+ calculateTopKRows={calculateTopKRows}
258
+ table={table}
259
+ />
260
+ );
267
261
 
268
- return (
269
- <div
270
- className={cn(
271
- "flex flex-col h-full pt-0.5 pb-3 justify-between items-start",
272
- headerJustify === "center" && "items-center",
273
- headerJustify === "right" && "items-end",
274
- )}
275
- >
276
- {dataTableColumnHeader}
277
- <TableColumnSummary columnId={key} />
278
- </div>
279
- );
280
- },
262
+ // Row headers have no summaries
263
+ if (rowHeadersSet.has(key)) {
264
+ return dataTableColumnHeader;
265
+ }
281
266
 
282
- cell: ({ column, renderValue, getValue, cell }) => {
283
- function selectCell() {
284
- if (selection !== "single-cell" && selection !== "multi-cell") {
285
- return;
286
- }
267
+ return (
268
+ <div
269
+ className={cn(
270
+ "flex flex-col h-full pt-0.5 pb-3 justify-between items-start",
271
+ headerJustify === "center" && "items-center",
272
+ headerJustify === "right" && "items-end",
273
+ )}
274
+ >
275
+ {dataTableColumnHeader}
276
+ <TableColumnSummary columnId={key} />
277
+ </div>
278
+ );
279
+ },
287
280
 
288
- cell.toggleSelected?.();
281
+ cell: ({ column, renderValue, getValue, cell }) => {
282
+ function selectCell() {
283
+ if (selection !== "single-cell" && selection !== "multi-cell") {
284
+ return;
289
285
  }
290
286
 
291
- const justify = getJustify(key);
292
- const wrapped = wrappedColumns?.includes(key);
293
- const isCellSelected = cell?.getIsSelected?.() || false;
294
- const canSelectCell =
295
- (selection === "single-cell" || selection === "multi-cell") &&
296
- !isCellSelected;
297
-
298
- const dataType = column.columnDef.meta?.dataType;
299
- const isNumeric = isNumericType(dataType);
300
- const cellStyles = getCellStyleClass({
301
- justify,
302
- wrapped,
303
- canSelectCell,
304
- isSelected: isCellSelected,
305
- isNumeric,
306
- });
307
-
308
- const renderedCell = renderCellValue({
309
- column,
310
- renderValue,
311
- getValue,
312
- selectCell,
313
- cellStyles,
314
- });
315
-
316
- // Row headers are bold
317
- if (rowHeadersSet.has(key)) {
318
- return <b>{renderedCell}</b>;
319
- }
287
+ cell.toggleSelected?.();
288
+ }
320
289
 
321
- return renderedCell;
322
- },
323
- // Remove any default filtering
324
- filterFn: undefined,
325
- // Unnamed index columns and geometry columns are not sortable
326
- enableSorting: !!key && getMeta(key).dataType !== "geometry",
327
- meta: {
328
- ...getMeta(key),
329
- width: columnWidths?.[key],
330
- },
331
- // size seeds the width before measurement; minSize/maxSize pin
332
- // getSize() to the fixed width so the per-paint measurement writeback
333
- // cannot drift the header width or sticky-pin offsets.
334
- ...(columnWidths?.[key] !== undefined
335
- ? {
336
- size: columnWidths[key],
337
- minSize: columnWidths[key],
338
- maxSize: columnWidths[key],
339
- }
340
- : {}),
341
- }),
342
- );
290
+ const justify = getJustify(key);
291
+ const wrapped = wrappedColumns?.includes(key);
292
+ const isCellSelected = cell?.getIsSelected?.() || false;
293
+ const canSelectCell =
294
+ (selection === "single-cell" || selection === "multi-cell") &&
295
+ !isCellSelected;
296
+
297
+ const dataType = column.columnDef.meta?.dataType;
298
+ const isNumeric = isNumericType(dataType);
299
+ const cellStyles = getCellStyleClass({
300
+ justify,
301
+ wrapped,
302
+ canSelectCell,
303
+ isSelected: isCellSelected,
304
+ isNumeric,
305
+ });
306
+
307
+ const renderedCell = renderCellValue({
308
+ column,
309
+ renderValue,
310
+ getValue,
311
+ selectCell,
312
+ cellStyles,
313
+ });
314
+
315
+ // Row headers are bold
316
+ if (rowHeadersSet.has(key)) {
317
+ return <b>{renderedCell}</b>;
318
+ }
319
+
320
+ return renderedCell;
321
+ },
322
+ // Remove any default filtering
323
+ filterFn: undefined,
324
+ // Unnamed index columns and geometry columns are not sortable
325
+ enableSorting: !!key && getMeta(key).dataType !== "geometry",
326
+ meta: {
327
+ ...getMeta(key),
328
+ width: columnWidths?.[key],
329
+ },
330
+ // size seeds the width before measurement; minSize/maxSize pin
331
+ // getSize() to the fixed width so the per-paint measurement writeback
332
+ // cannot drift the header width or sticky-pin offsets.
333
+ ...(columnWidths?.[key] !== undefined
334
+ ? {
335
+ size: columnWidths[key],
336
+ minSize: columnWidths[key],
337
+ maxSize: columnWidths[key],
338
+ }
339
+ : {}),
340
+ }));
343
341
 
344
342
  if (selection === "single" || selection === "multi") {
345
343
  columns.unshift({
@@ -3,7 +3,7 @@
3
3
  import { CommandList } from "cmdk";
4
4
  import { atom, useAtom, useAtomValue, useSetAtom } from "jotai";
5
5
  import { atomWithStorage } from "jotai/utils";
6
- import { PlusIcon, PlusSquareIcon, XIcon } from "lucide-react";
6
+ import { PlusSquareIcon, XIcon } from "lucide-react";
7
7
  import React from "react";
8
8
  import { dbDisplayName } from "@/components/databases/display";
9
9
  import { EngineVariable } from "@/components/databases/engine-variable";
@@ -64,7 +64,7 @@ import { ErrorBoundary } from "../editor/boundary/ErrorBoundary";
64
64
  import { PythonIcon } from "../editor/cell/code/icons";
65
65
  import { useAddCodeToNewCell } from "../editor/cell/useAddCell";
66
66
  import { PanelEmptyState } from "../editor/chrome/panels/empty-state";
67
- import { AddConnectionDialog } from "../editor/connections/add-connection-dialog";
67
+ import { AddConnectionButton } from "../editor/connections/add-connection-button";
68
68
  import { DatasetColumnPreview } from "./column-preview";
69
69
  import {
70
70
  ColumnName,
@@ -250,12 +250,12 @@ export const DataSources: React.FC = () => {
250
250
  title="No tables found"
251
251
  description="Any datasets/dataframes in the global scope will be shown here."
252
252
  action={
253
- <AddConnectionDialog>
254
- <Button variant="outline" size="sm">
255
- Add database or catalog
256
- <PlusIcon className="h-4 w-4 ml-2" />
257
- </Button>
258
- </AddConnectionDialog>
253
+ <AddConnectionButton
254
+ group="database"
255
+ label="Add database or catalog"
256
+ variant="outline"
257
+ size="sm"
258
+ />
259
259
  }
260
260
  icon={<DatabaseIcon />}
261
261
  />
@@ -301,15 +301,14 @@ export const DataSources: React.FC = () => {
301
301
  className="px-2 rounded-none focus-visible:outline-hidden"
302
302
  />
303
303
 
304
- <AddConnectionDialog>
305
- <Button
306
- variant="ghost"
307
- size="sm"
308
- className="px-2 rounded-none focus-visible:outline-hidden"
309
- >
310
- <PlusIcon className="h-4 w-4" />
311
- </Button>
312
- </AddConnectionDialog>
304
+ <AddConnectionButton
305
+ group="database"
306
+ label="Add database or catalog"
307
+ compact={true}
308
+ variant="ghost"
309
+ size="sm"
310
+ className="px-2 rounded-none focus-visible:outline-hidden"
311
+ />
313
312
  </div>
314
313
 
315
314
  <CommandList className="flex flex-col">