@marimo-team/frontend 0.23.16-dev4 → 0.23.16-dev40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/dist/assets/{CellStatus-BalYv0pK.js → CellStatus-C6Cj3oJc.js} +1 -1
  2. package/dist/assets/{ConnectedDataExplorerComponent-DI7mV-Gw.js → ConnectedDataExplorerComponent-CMaZapRd.js} +1 -1
  3. package/dist/assets/{ErrorBoundary-C7_5jjWi.js → ErrorBoundary-DzTD8LVq.js} +1 -1
  4. package/dist/assets/{ImperativeModal-BIavOiUv.js → ImperativeModal-fY-ZfT0b.js} +1 -1
  5. package/dist/assets/{JsonOutput-CkCD-FgM.js → JsonOutput-CyzvjIjx.js} +12 -12
  6. package/dist/assets/{LazyAnyLanguageCodeMirror-sVm_hz8A.js → LazyAnyLanguageCodeMirror-B2JvSXP-.js} +2 -2
  7. package/dist/assets/{MarimoErrorOutput-DO2k2fA5.js → MarimoErrorOutput-CIuzXFFo.js} +4 -4
  8. package/dist/assets/{RSPContexts-CgC81f0I.js → RSPContexts-WiCgGm__.js} +1 -1
  9. package/dist/assets/RenderHTML-Cd-PP5ZR.js +1 -0
  10. package/dist/assets/{RunButton-BKRupqr7.js → RunButton-CnYWedW4.js} +1 -1
  11. package/dist/assets/{add-cell-with-ai-CEZtaZCK.js → add-cell-with-ai-ByOBQT99.js} +8 -8
  12. package/dist/assets/add-connection-dialog-C97ylgk0.js +170 -0
  13. package/dist/assets/{agent-panel-CHB6t7Zy.js → agent-panel-Dxo9WUKV.js} +5 -5
  14. package/dist/assets/ai-model-dropdown-Bvqy98cI.js +5 -0
  15. package/dist/assets/{alert-dialog-BXegNC0I.js → alert-dialog-Bb8Lz8ko.js} +1 -1
  16. package/dist/assets/{any-language-editor-DCpZRrpx.js → any-language-editor--tRHs8C_.js} +1 -1
  17. package/dist/assets/{app-config-button-NrM9ywXA.js → app-config-button-v1lG63C2.js} +1 -1
  18. package/dist/assets/{button-eIihcbUw.js → button-DDGiD1NW.js} +1 -1
  19. package/dist/assets/{cache-panel-wllSTlbM.js → cache-panel-DcQUeUpg.js} +1 -1
  20. package/dist/assets/{capabilities-B09j1Eor.js → capabilities-DoEg0XwL.js} +1 -1
  21. package/dist/assets/{cell-editor-B5JVq7_q.js → cell-editor-BKrHbyX_.js} +16 -16
  22. package/dist/assets/cell-link-w5IbCQV4.js +1 -0
  23. package/dist/assets/cells-DzyDERZy.js +235 -0
  24. package/dist/assets/{chat-display-BG08ltQ3.js → chat-display-Ccgk4vbE.js} +1 -1
  25. package/dist/assets/{chat-panel-P2CzCtXJ.js → chat-panel--53TIc3t.js} +4 -4
  26. package/dist/assets/{chat-ui-fAJZAoTD.js → chat-ui-B5rBxgsw.js} +4 -4
  27. package/dist/assets/{column-preview-Dne1dIt0.js → column-preview-Cb8R9kfl.js} +1 -1
  28. package/dist/assets/{command-CAJLPEBq.js → command-Dqxie4gq.js} +1 -1
  29. package/dist/assets/{command-palette-iOCqUIs1.js → command-palette-B1S9PjZi.js} +1 -1
  30. package/dist/assets/{common-CD6Mj8n6.js → common-CJ3baa6D.js} +1 -1
  31. package/dist/assets/components-DpUIWGaj.js +1 -0
  32. package/dist/assets/config-B-Q7J_6d.js +1 -0
  33. package/dist/assets/{config-COUOIPEq.js → config-BJVx3eBW.js} +1 -1
  34. package/dist/assets/{copy-BtTOqPTS.js → copy-Bxb1_Gtw.js} +1 -1
  35. package/dist/assets/{copy-icon-C2pG0ZNK.js → copy-icon-neDQUo4Q.js} +1 -1
  36. package/dist/assets/{createReducer-C7kZ8zEe.js → createReducer-DGx5Af-C.js} +1 -1
  37. package/dist/assets/{datasource-ySAiC9gr.js → datasource-D_VcQMEn.js} +2 -2
  38. package/dist/assets/{dates-D-kIKDYA.js → dates-C2LWzsCZ.js} +1 -1
  39. package/dist/assets/{dependency-graph-panel-BF23EwcD.js → dependency-graph-panel-DY5lvPDx.js} +3 -3
  40. package/dist/assets/{dialog-D1DEsRZ2.js → dialog-BCVepWLJ.js} +1 -1
  41. package/dist/assets/{dist-ByVeMWkr.js → dist-BLN8PNJV.js} +1 -1
  42. package/dist/assets/dist-CiVShZKM.js +2 -0
  43. package/dist/assets/{documentation-panel-e9Fi9R7e.js → documentation-panel-CGhwxsXK.js} +1 -1
  44. package/dist/assets/download-DpS57jyt.js +9 -0
  45. package/dist/assets/{dropdown-menu-BFZLnWeO.js → dropdown-menu-dHmZR8bI.js} +1 -1
  46. package/dist/assets/{edit-page-7X3HYey7.js → edit-page-DA765yQV.js} +6 -6
  47. package/dist/assets/{error-banner-B6eIlxzg.js → error-banner-BSxEOIn2.js} +1 -1
  48. package/dist/assets/error-entries-CTYMwfsh.js +8 -0
  49. package/dist/assets/{error-panel-DdsUL6b7.js → error-panel-DGAkG5kW.js} +1 -1
  50. package/dist/assets/{es-1D83cgiu.js → es-gYgfF8y5.js} +1 -1
  51. package/dist/assets/{esm-BL7jQmzn.js → esm-B30N1GS0.js} +1 -1
  52. package/dist/assets/{field-BeZbVzXA.js → field-BsxD35VE.js} +1 -1
  53. package/dist/assets/{file-explorer-panel-Ntq1-VbF.js → file-explorer-panel-BKUo-MDh.js} +3 -3
  54. package/dist/assets/{file-icons-Cb54mIL8.js → file-icons-DfWENcb8.js} +1 -1
  55. package/dist/assets/{file-name-input-BWFcK1ey.js → file-name-input-CNVZtm5K.js} +1 -1
  56. package/dist/assets/floating-outline-LitP0wCD.js +1 -0
  57. package/dist/assets/focus-CNKbm-Xz.js +1 -0
  58. package/dist/assets/{form-B6BkSCJb.js → form-nHzLTU1m.js} +2 -2
  59. package/dist/assets/{formats-ClEFGPy-.js → formats-DzmLpc9A.js} +1 -1
  60. package/dist/assets/{formatting-B_41gSF5.js → formatting-CDf6w1Kt.js} +1 -1
  61. package/dist/assets/{fullscreen-dUjPYOmm.js → fullscreen-CTDqNQr6.js} +1 -1
  62. package/dist/assets/{gallery-page-CWQQAYpa.js → gallery-page-CJ3ms1Hn.js} +1 -1
  63. package/dist/assets/{glide-data-editor-lMARFWHS.js → glide-data-editor-j2igs9Y_.js} +1 -1
  64. package/dist/assets/home-page-DM9Z_IJ7.js +4 -0
  65. package/dist/assets/{html-to-image-CwmX28T9.js → html-to-image-JaxFFZcr.js} +2 -2
  66. package/dist/assets/index-C7_REKh1.js +38 -0
  67. package/dist/assets/index-D6Dp_PFj.css +2 -0
  68. package/dist/assets/{input-CqrUjynb.js → input-JxFwu-3G.js} +1 -1
  69. package/dist/assets/kiosk-mode-BumOFEtY.js +1 -0
  70. package/dist/assets/{label-BElwWzf0.js → label-CqjrpwRC.js} +1 -1
  71. package/dist/assets/{layout-CUlZijwG.js → layout-B29hqiiK.js} +5 -5
  72. package/dist/assets/{links-CToBjIIj.js → links-CZr5bjvo.js} +1 -1
  73. package/dist/assets/logs-panel-CQRPYS8j.js +1 -0
  74. package/dist/assets/{markdown-renderer-QvXG0CRk.js → markdown-renderer-sEayY9-m.js} +2 -2
  75. package/dist/assets/{menu-items-DbSLBfXR.js → menu-items-CCi6aOPm.js} +1 -1
  76. package/dist/assets/{mermaid-Bh0flEIb.js → mermaid-CYN0wOyG.js} +1 -1
  77. package/dist/assets/{name-cell-input-C6cukQ9k.js → name-cell-input-B-aj1KH3.js} +1 -1
  78. package/dist/assets/node-sql-parser-Si4oZ2P-.js +68 -0
  79. package/dist/assets/{numbers-CeeaFKqu.js → numbers-rmawRqQP.js} +1 -1
  80. package/dist/assets/{outline-panel-BPlg9_CE.js → outline-panel-BOryk60D.js} +1 -1
  81. package/dist/assets/{packages-panel-BzQF60rG.js → packages-panel-DoYDLty3.js} +1 -1
  82. package/dist/assets/pair-with-agent-modal-BCRSACei.js +4 -0
  83. package/dist/assets/panels-Bb4fIHgH.js +4 -0
  84. package/dist/assets/{popover-DrHQ3KEt.js → popover-Bcz1Zikb.js} +1 -1
  85. package/dist/assets/process-output-d-LEMtGI.js +1 -0
  86. package/dist/assets/{radio-group-CLBjGkt5.js → radio-group-DfioQthW.js} +1 -1
  87. package/dist/assets/{readonly-code-display-D63oRtBP.js → readonly-code-display-C9fu8tvK.js} +1 -1
  88. package/dist/assets/{readonly-python-code-CW_G5e4E.js → readonly-python-code-DHxOnQGj.js} +1 -1
  89. package/dist/assets/{renderShortcut-BZLr8D7H.js → renderShortcut-Bl8_FVn8.js} +1 -1
  90. package/dist/assets/{reveal-component-BLMTmd8T.js → reveal-component-5jf0W625.js} +60 -60
  91. package/dist/assets/{run-page-B6pgDYEJ.js → run-page-BMKx9ld_.js} +1 -1
  92. package/dist/assets/{runs-D51Xwrsk.js → runs-DBTXqJHS.js} +1 -1
  93. package/dist/assets/scratchpad-panel-C8z8vzBX.js +1 -0
  94. package/dist/assets/{scroll-to-bottom-button-Cgr10kaJ.js → scroll-to-bottom-button-C8yfT4wq.js} +1 -1
  95. package/dist/assets/{secrets-panel-Cc5KDBk6.js → secrets-panel-6J6wcuVR.js} +1 -1
  96. package/dist/assets/{select-B5TFNjmU.js → select-BP75_5jJ.js} +1 -1
  97. package/dist/assets/{session-CEFnN9Cq.js → session-BmukRjSi.js} +1 -1
  98. package/dist/assets/{session-panel-Y0Oon0sD.js → session-panel-BVVk-02h.js} +1 -1
  99. package/dist/assets/{share-CYpcX4N4.js → share-852X_cqy.js} +1 -1
  100. package/dist/assets/{skeleton-D3QPxqWC.js → skeleton-Bubr9pIj.js} +1 -1
  101. package/dist/assets/slides-DkEgzTJB.css +1 -0
  102. package/dist/assets/{snippets-panel-CXpGflMO.js → snippets-panel-U2-iok-c.js} +1 -1
  103. package/dist/assets/{spec-CzqcmYQk.js → spec-C7opZZRp.js} +1 -1
  104. package/dist/assets/{state-BvdK8eiw.js → state-D10U2MwA.js} +1 -1
  105. package/dist/assets/{state-WBgc7MiA.js → state-DDag0B_B.js} +1 -1
  106. package/dist/assets/state-DtziTd1T.js +3 -0
  107. package/dist/assets/{state-DBzEQtWz.js → state-DxQhUsG9.js} +1 -1
  108. package/dist/assets/{strings-Djnbwmfl.js → strings--BknHX9C.js} +1 -1
  109. package/dist/assets/{swiper-component-DInvCxhI.js → swiper-component-g8EXE911.js} +1 -1
  110. package/dist/assets/switch-OVajJBPR.js +1 -0
  111. package/dist/assets/{terminal-D3IQBBYo.js → terminal-217O8hlZ.js} +1 -1
  112. package/dist/assets/{textarea-CpFfEUet.js → textarea-Bmzmbbpo.js} +1 -1
  113. package/dist/assets/{tooltip-CFX4fYHU.js → tooltip-4bZlU7jl.js} +1 -1
  114. package/dist/assets/{tooltip-HLb6RxVp.js → tooltip-B7U4xkIN.js} +1 -1
  115. package/dist/assets/{tracing-CKn3gWHw.js → tracing-B5XFvMmV.js} +1 -1
  116. package/dist/assets/{tracing-panel-BU-o_LCd.js → tracing-panel-DnR2bYDe.js} +2 -2
  117. package/dist/assets/{tree-actions-CsC2XmGo.js → tree-actions-Dx9CDaxV.js} +1 -1
  118. package/dist/assets/{useBoolean-D89u30n-.js → useBoolean-CFj86iac.js} +1 -1
  119. package/dist/assets/useCellActionButton-DypR3yDt.js +1 -0
  120. package/dist/assets/{useDeleteCell-EPH4kcG7.js → useDeleteCell-vMXAr3rY.js} +1 -1
  121. package/dist/assets/{useDependencyPanelTab-CZnK7N2L.js → useDependencyPanelTab-CwdwKf7A.js} +1 -1
  122. package/dist/assets/useEventListener-C0195JsF.js +1 -0
  123. package/dist/assets/{useHotkey-DIuRH8Wu.js → useHotkey-DLZvrRZT.js} +1 -1
  124. package/dist/assets/{useIframeCapabilities-Ccb4fvKc.js → useIframeCapabilities-j6fR_dBA.js} +1 -1
  125. package/dist/assets/{useInstallPackage-BRbUAUFn.js → useInstallPackage-WiYBwhUO.js} +1 -1
  126. package/dist/assets/{useInterval-CC0vKpWm.js → useInterval-CWBTUy5W.js} +1 -1
  127. package/dist/assets/useNotebookActions-jWIcmpv0.js +12 -0
  128. package/dist/assets/{useRunCells-CSSF_mJ0.js → useRunCells-C2dvU2jA.js} +1 -1
  129. package/dist/assets/{useSplitCell-9Qz93yPZ.js → useSplitCell-C1tubdNi.js} +1 -1
  130. package/dist/assets/{useTheme-KXqAyDPC.js → useTheme-Bxv9B31g.js} +1 -1
  131. package/dist/assets/{utils-Z80SV4_d.js → utils-BWBBpCkT.js} +1 -1
  132. package/dist/assets/{vega-component-Cie3ag_T.js → vega-component-Db8KjZJG.js} +1 -1
  133. package/dist/assets/{write-secret-modal-DEEn7sZV.js → write-secret-modal-3-v-dHVj.js} +1 -1
  134. package/dist/index.html +68 -68
  135. package/package.json +3 -4
  136. package/src/__mocks__/requests.ts +45 -4
  137. package/src/components/data-table/__tests__/__snapshots__/chart-spec-model.test.ts.snap +174 -21
  138. package/src/components/data-table/__tests__/chart-spec-model.test.ts +102 -1
  139. package/src/components/data-table/column-summary/chart-spec-model.tsx +163 -103
  140. package/src/components/data-table/column-summary/legacy-chart-spec.ts +15 -7
  141. package/src/components/data-table/column-summary/utils.ts +26 -7
  142. package/src/components/data-table/types.ts +1 -1
  143. package/src/components/editor/actions/__tests__/pair-with-agent-commands.test.ts +99 -18
  144. package/src/components/editor/actions/__tests__/pdf-export.test.ts +0 -4
  145. package/src/components/editor/actions/pair-with-agent-commands.ts +21 -10
  146. package/src/components/editor/actions/pair-with-agent-modal.tsx +2 -2
  147. package/src/components/editor/actions/pdf-export.ts +1 -4
  148. package/src/components/editor/actions/useNotebookActions.tsx +7 -13
  149. package/src/components/editor/cell/code/__tests__/cell-editor-activity-lifecycle.test.ts +250 -0
  150. package/src/components/editor/cell/code/cell-editor.tsx +13 -7
  151. package/src/components/editor/chrome/panels/__tests__/logs-panel.test.tsx +25 -0
  152. package/src/components/editor/chrome/panels/logs-panel.tsx +12 -2
  153. package/src/components/editor/connections/storage/__tests__/__snapshots__/as-code.test.ts.snap +50 -0
  154. package/src/components/editor/connections/storage/__tests__/as-code.test.ts +87 -8
  155. package/src/components/editor/connections/storage/as-code.ts +40 -21
  156. package/src/components/editor/connections/storage/schemas.ts +83 -42
  157. package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +1 -1
  158. package/src/components/slides/__tests__/cell-output-block.test.tsx +40 -0
  159. package/src/components/slides/__tests__/slide-cell-view.test.tsx +33 -0
  160. package/src/components/slides/__tests__/slide-scroll-hint.test.tsx +198 -0
  161. package/src/components/slides/reveal-component.tsx +25 -19
  162. package/src/components/slides/slide-cell-view.tsx +1 -1
  163. package/src/components/slides/slide-scroll-hint.tsx +161 -0
  164. package/src/components/slides/slides.css +4 -2
  165. package/src/components/static-html/share-modal.tsx +1 -1
  166. package/src/components/ui/input.tsx +1 -1
  167. package/src/core/cells/__tests__/cells.test.ts +12 -2
  168. package/src/core/cells/__tests__/logs.test.ts +5 -5
  169. package/src/core/cells/cells.ts +17 -4
  170. package/src/core/cells/document-changes.ts +1 -0
  171. package/src/core/cells/logs.ts +14 -4
  172. package/src/core/codemirror/copilot/__tests__/language-server.test.ts +396 -100
  173. package/src/core/codemirror/copilot/__tests__/transport.test.ts +128 -540
  174. package/src/core/codemirror/copilot/language-server.ts +182 -70
  175. package/src/core/codemirror/copilot/transport.ts +15 -207
  176. package/src/core/codemirror/copilot/types.ts +9 -2
  177. package/src/core/codemirror/find-replace/__tests__/navigate.test.ts +42 -30
  178. package/src/core/codemirror/find-replace/navigate.ts +2 -0
  179. package/src/core/codemirror/go-to-definition/__tests__/commands.test.ts +24 -3
  180. package/src/core/codemirror/go-to-definition/commands.ts +3 -0
  181. package/src/core/codemirror/keymaps/__tests__/keymaps.test.ts +31 -2
  182. package/src/core/codemirror/keymaps/keymaps.ts +12 -0
  183. package/src/core/codemirror/language/__tests__/sql.test.ts +443 -61
  184. package/src/core/codemirror/language/languages/python.ts +23 -11
  185. package/src/core/codemirror/language/languages/sql/completion-store.ts +5 -1
  186. package/src/core/codemirror/language/languages/sql/sql.ts +210 -3
  187. package/src/core/codemirror/lsp/__tests__/federated-lsp.test.ts +161 -0
  188. package/src/core/codemirror/lsp/__tests__/log-messages.test.ts +53 -0
  189. package/src/core/codemirror/lsp/__tests__/normalize-markdown-math.test.ts +25 -0
  190. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +598 -156
  191. package/src/core/codemirror/lsp/__tests__/transports.test.ts +112 -0
  192. package/src/core/codemirror/lsp/federated-lsp.ts +76 -23
  193. package/src/core/codemirror/lsp/log-messages.ts +37 -0
  194. package/src/core/codemirror/lsp/normalize-markdown-math.ts +8 -4
  195. package/src/core/codemirror/lsp/notebook-lsp.ts +220 -56
  196. package/src/core/codemirror/lsp/transports.ts +8 -1
  197. package/src/core/codemirror/lsp/types.ts +68 -8
  198. package/src/core/codemirror/lsp/utils.ts +14 -0
  199. package/src/core/codemirror/utils.ts +28 -0
  200. package/src/core/hotkeys/hotkeys.ts +0 -2
  201. package/src/core/islands/__tests__/bridge.test.ts +107 -0
  202. package/src/core/islands/bridge.ts +16 -0
  203. package/src/core/lsp/__tests__/transport.test.ts +509 -337
  204. package/src/core/lsp/transport.ts +304 -132
  205. package/src/core/mode.ts +10 -0
  206. package/src/core/network/__tests__/api.test.ts +42 -0
  207. package/src/core/network/__tests__/connection.test.ts +45 -0
  208. package/src/core/network/__tests__/requests-lazy.test.ts +32 -1
  209. package/src/core/network/__tests__/requests-network.test.ts +21 -0
  210. package/src/core/network/api.ts +27 -0
  211. package/src/core/network/connection.ts +15 -0
  212. package/src/core/network/requests-lazy.ts +1 -0
  213. package/src/core/network/requests-network.ts +14 -8
  214. package/src/core/network/requests-static.ts +1 -0
  215. package/src/core/network/requests-toasting.tsx +1 -0
  216. package/src/core/network/types.ts +22 -6
  217. package/src/core/rtc/state.ts +9 -0
  218. package/src/core/static/download-html.ts +5 -14
  219. package/src/core/wasm/bridge.ts +4 -2
  220. package/src/core/wasm/worker/types.ts +5 -2
  221. package/src/css/app/codemirror.css +16 -2
  222. package/src/plugins/impl/FormPlugin.tsx +1 -1
  223. package/src/plugins/impl/__tests__/FormPlugin.test.tsx +162 -0
  224. package/src/stories/log-viewer.stories.tsx +12 -6
  225. package/src/utils/__tests__/download.test.tsx +24 -1
  226. package/src/utils/download.ts +11 -6
  227. package/dist/assets/RenderHTML-BCvU9dYz.js +0 -1
  228. package/dist/assets/add-connection-dialog-B-jCRNTN.js +0 -170
  229. package/dist/assets/ai-model-dropdown-DXgLphFa.js +0 -5
  230. package/dist/assets/cell-link-DqBkyAFe.js +0 -1
  231. package/dist/assets/cells-Cf7bHHq3.js +0 -229
  232. package/dist/assets/components-BH6gDVv6.js +0 -1
  233. package/dist/assets/config-BbOTTCYY.js +0 -1
  234. package/dist/assets/dist-BCMBu0rO.js +0 -2
  235. package/dist/assets/download-BomYt3nl.js +0 -9
  236. package/dist/assets/error-entries-Birw-8VX.js +0 -8
  237. package/dist/assets/floating-outline-wz-WSRgP.js +0 -1
  238. package/dist/assets/focus-DiEyfiAG.js +0 -1
  239. package/dist/assets/home-page-DJ4jJsZj.js +0 -4
  240. package/dist/assets/index-A71LAt6h.css +0 -2
  241. package/dist/assets/index-CMZzy-dF.js +0 -38
  242. package/dist/assets/kiosk-mode-ABm3oYgq.js +0 -1
  243. package/dist/assets/logs-panel-iFV4ZJ9b.js +0 -1
  244. package/dist/assets/node-sql-parser-BWgUjcfV.js +0 -68
  245. package/dist/assets/pair-with-agent-modal-CKOYwOYw.js +0 -4
  246. package/dist/assets/panels-Dj45fW-v.js +0 -4
  247. package/dist/assets/process-output-BEhIGfkO.js +0 -1
  248. package/dist/assets/scratchpad-panel-B0mEqBNk.js +0 -1
  249. package/dist/assets/slides-MCbMDtlY.css +0 -1
  250. package/dist/assets/state-BZQc7xxL.js +0 -3
  251. package/dist/assets/switch-CvweaCXq.js +0 -1
  252. package/dist/assets/useCellActionButton-CRfIEVB5.js +0 -1
  253. package/dist/assets/useEventListener-B_w3A283.js +0 -1
  254. package/dist/assets/useNotebookActions-DTXAoukG.js +0 -12
@@ -0,0 +1,170 @@
1
+ var yt=Object.defineProperty;var _t=(t,e,s)=>e in t?yt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var ue=(t,e,s)=>_t(t,typeof e!="symbol"?e+"":e,s);import{s as Re}from"./chunk-LvLJmgfZ.js";import{u as wt}from"./useEvent-D91BmmQi.js";import{t as xt}from"./react-Bj1aDYRI.js";import{Ct as Te,E as St,rr as y}from"./cells-DzyDERZy.js";import{D as ne,P as _,R as u,T as P,_ as kt,i as vt,k as w}from"./zod-H_cgTO0M.js";import{t as M}from"./compiler-runtime-B3qBwwSJ.js";import{_ as $t}from"./useEventListener-C0195JsF.js";import{c as jt}from"./utils-BWBBpCkT.js";import{t as ce}from"./cn-DYvqRARy.js";import{t as Ct}from"./jsx-runtime-Blw4afVn.js";import{a as At,c as Le,i as Rt,o as Ne,r as Tt,s as Lt,t as Nt}from"./popover-Bcz1Zikb.js";import{c as It,i as Dt,n as Pt,r as Ft,s as Et,t as qt}from"./select-BP75_5jJ.js";import{t as Ie}from"./button-DDGiD1NW.js";import{r as ie}from"./strings--BknHX9C.js";import{t as Bt}from"./createLucideIcon-w-Qo9n0R.js";import{r as Ot,t as Mt}from"./x-C-Eq0ag8.js";import{t as Ut}from"./circle-plus-BluydVNx.js";import{t as Kt}from"./database-zap-CKO8g4BU.js";import{c,o as Ht,t as zt,u as Wt}from"./form-nHzLTU1m.js";import{n as Se}from"./DeferredRequestRegistry-C8EV1PoE.js";import{a as Gt,c as Vt,d as Zt,g as Qt,l as Jt,o as Yt,p as Xt,s as es,u as ts}from"./textarea-Bmzmbbpo.js";import{r as ss}from"./useTheme-Bxv9B31g.js";import{a as rs,c as ns,l as os,n as as,r as cs,t as is}from"./dialog-BCVepWLJ.js";import{n as ls}from"./ImperativeModal-fY-ZfT0b.js";import{t as be}from"./links-wcQA1Np1.js";import{t as ds}from"./useIframeCapabilities-j6fR_dBA.js";import{r as ps}from"./html-to-image-JaxFFZcr.js";import{o as hs}from"./focus-CNKbm-Xz.js";import{n as ms}from"./useAsyncData-Bg5iAViP.js";import{a as us,c as ke,i as fe,o as ge,s as bs,t as fs}from"./command-Dqxie4gq.js";import{n as gs,t as ys}from"./azure-nN8APleF.js";import{t as _s}from"./request-registry-DHocQ_4I.js";import{n as ws,t as xs}from"./write-secret-modal-3-v-dHVj.js";import{t as Ss}from"./github-_JH-0hIO.js";var ve=Bt("hard-drive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]),$e="env:";function un(t){return t}function U(t){return typeof t=="string"?t.startsWith($e):!1}function De(t){return`${$e}${t}`}function Pe(t){return t.replace($e,"")}var ks=M(),F=Re(xt(),1),o=Re(Ct(),1);function vs(t,e){if(!e)return{recommended:[],other:[...t]};let s;try{s=new RegExp(e,"i")}catch{return{recommended:[],other:[...t]}}let n=[],r=[];for(let l of t)s.test(l)?n.push(l):r.push(l);return{recommended:n,other:r}}const $s=t=>{let e=(0,ks.c)(67),{value:s,onChange:n,placeholder:r,secretsOnly:l,recommendedKeys:i,otherKeys:a,onCreateSecret:d,className:p}=t,h=l===void 0?!1:l,[f,m]=(0,F.useState)(!1),[b,g]=(0,F.useState)(""),x;e[0]===b?x=e[1]:(x=b.trim(),e[0]=b,e[1]=x);let S=x,k=!h&&S.length>0&&S!==s,v;e:{if(!s){v=null;break e}if(U(s)){let $;e[2]===s?$=e[3]:($=s,e[2]=s,e[3]=$),v=$;break e}v=s}let R=v,C;e[4]===n?C=e[5]:(C=$=>{n(De($)),m(!1),g("")},e[4]=n,e[5]=C);let A=C,T;e[6]===n?T=e[7]:(T=$=>{n($),m(!1),g("")},e[6]=n,e[7]=T);let L=T,D;e[8]===n?D=e[9]:(D=()=>{n(""),g(""),m(!1)},e[8]=n,e[9]=D);let ae=D,K;e[10]===p?K=e[11]:(K=ce("flex w-full min-w-48 mb-1 items-center gap-1",p),e[10]=p,e[11]=K);let de;e[12]===Symbol.for("react.memo_cache_sentinel")?(de=$=>{m($),$||g("")},e[12]=de):de=e[12];let H;e[13]===s?H=e[14]:(H=ce("flex h-6 min-w-0 flex-1 shadow-xs-solid items-center justify-between","rounded-sm border border-input bg-background px-1.5 text-sm font-code ring-offset-background placeholder:text-muted-foreground","hover:shadow-sm-solid focus:outline-hidden focus:ring-1 focus:ring-ring focus:border-primary focus:shadow-md-solid",U(s)&&"bg-accent"),e[13]=s,e[14]=H);let z;e[15]!==R||e[16]!==r||e[17]!==s?(z=(0,o.jsx)("span",{className:"truncate flex-1 min-w-0 text-left flex items-center gap-1.5",children:R?(0,o.jsxs)(o.Fragment,{children:[U(s)&&(0,o.jsx)(Se,{className:"h-3 w-3 shrink-0 opacity-70"}),(0,o.jsx)("span",{className:"truncate",children:R})]}):(0,o.jsx)("span",{className:"text-muted-foreground",children:r})}),e[15]=R,e[16]=r,e[17]=s,e[18]=z):z=e[18];let pe;e[19]===Symbol.for("react.memo_cache_sentinel")?(pe=(0,o.jsx)(Ot,{className:"ml-1 h-4 w-4 opacity-50 shrink-0"}),e[19]=pe):pe=e[19];let W;e[20]!==f||e[21]!==z||e[22]!==H?(W=(0,o.jsx)(Rt,{asChild:!0,children:(0,o.jsxs)("button",{type:"button",className:H,"aria-expanded":f,children:[z,pe]})}),e[20]=f,e[21]=z,e[22]=H,e[23]=W):W=e[23];let we=h?"Search secrets...":"Type a value or search secrets...",G;e[24]!==b||e[25]!==we?(G=(0,o.jsx)(us,{placeholder:we,rootClassName:"px-1 h-8",autoFocus:!0,value:b,onValueChange:g}),e[24]=b,e[25]=we,e[26]=G):G=e[26];let V;e[27]!==L||e[28]!==k||e[29]!==S?(V=k&&(0,o.jsx)(fe,{children:(0,o.jsxs)(ge,{value:`use custom value ${S}`,onSelect:()=>L(S),children:['Use "',S,'"']})}),e[27]=L,e[28]=k,e[29]=S,e[30]=V):V=e[30];let Z;e[31]===k?Z=e[32]:(Z=k&&(0,o.jsx)(ke,{}),e[31]=k,e[32]=Z);let xe=`create new secret ${S}`,Q;e[33]!==d||e[34]!==S?(Q=()=>{let $=S||void 0;m(!1),g(""),d($)},e[33]=d,e[34]=S,e[35]=Q):Q=e[35];let he;e[36]===Symbol.for("react.memo_cache_sentinel")?(he=(0,o.jsx)(Ut,{className:"mr-2 h-3.5 w-3.5"}),e[36]=he):he=e[36];let J;e[37]!==xe||e[38]!==Q?(J=(0,o.jsx)(fe,{className:"mt-0",children:(0,o.jsxs)(ge,{value:xe,onSelect:Q,children:[he,"Create a new secret"]})}),e[37]=xe,e[38]=Q,e[39]=J):J=e[39];let Y;e[40]!==i||e[41]!==A?(Y=i.length>0&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(ke,{className:"mt-0"}),(0,o.jsx)(fe,{heading:"Recommended",children:i.map($=>(0,o.jsxs)(ge,{value:$,onSelect:()=>A($),children:[(0,o.jsx)(Se,{className:"mr-2 h-3 w-3 opacity-70"}),$]},$))})]}),e[40]=i,e[41]=A,e[42]=Y):Y=e[42];let X;e[43]!==a||e[44]!==i.length||e[45]!==A?(X=a.length>0&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(ke,{className:"mt-0"}),(0,o.jsx)(fe,{heading:i.length>0?"Other":void 0,children:a.map($=>(0,o.jsxs)(ge,{value:$,onSelect:()=>A($),children:[(0,o.jsx)(Se,{className:"mr-2 h-3 w-3 opacity-70"}),$]},$))})]}),e[43]=a,e[44]=i.length,e[45]=A,e[46]=X):X=e[46];let ee;e[47]!==V||e[48]!==Z||e[49]!==J||e[50]!==Y||e[51]!==X?(ee=(0,o.jsxs)(bs,{className:"max-h-60 overscroll-contain",children:[V,Z,J,Y,X]}),e[47]=V,e[48]=Z,e[49]=J,e[50]=Y,e[51]=X,e[52]=ee):ee=e[52];let te;e[53]!==G||e[54]!==ee?(te=(0,o.jsx)(Tt,{className:"w-(--radix-popover-trigger-width) p-0",align:"start",children:(0,o.jsxs)(fs,{children:[G,ee]})}),e[53]=G,e[54]=ee,e[55]=te):te=e[55];let se;e[56]!==f||e[57]!==W||e[58]!==te?(se=(0,o.jsxs)(Nt,{modal:!0,open:f,onOpenChange:de,children:[W,te]}),e[56]=f,e[57]=W,e[58]=te,e[59]=se):se=e[59];let re;e[60]!==ae||e[61]!==s?(re=s&&(0,o.jsx)("button",{type:"button","aria-label":"Clear",className:ce("flex h-6 w-6 shrink-0 items-center justify-center rounded-sm","text-muted-foreground hover:bg-muted hover:text-foreground","focus:outline-hidden focus:ring-1 focus:ring-ring"),onClick:ae,children:(0,o.jsx)(Mt,{className:"h-3.5 w-3.5"})}),e[60]=ae,e[61]=s,e[62]=re):re=e[62];let me;return e[63]!==se||e[64]!==re||e[65]!==K?(me=(0,o.jsxs)("div",{className:K,children:[se,re]}),e[63]=se,e[64]=re,e[65]=K,e[66]=me):me=e[66],me};var js=M(),Fe=(0,F.createContext)({providerNames:[],secretKeys:[],loading:!1,error:void 0,refreshSecrets:$t.NOOP});const Cs=()=>(0,F.use)(Fe),As=t=>{let e=(0,js.c)(14),{children:s}=t,n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=[],e[0]=n):n=e[0];let{data:r,isPending:l,error:i,refetch:a}=ms(Is,n);r==null||r.secretKeys,r==null||r.providerNames;let d;e[1]===(r==null?void 0:r.secretKeys)?d=e[2]:(d=(r==null?void 0:r.secretKeys)||[],e[1]=r==null?void 0:r.secretKeys,e[2]=d);let p;e[3]===(r==null?void 0:r.providerNames)?p=e[4]:(p=(r==null?void 0:r.providerNames)||[],e[3]=r==null?void 0:r.providerNames,e[4]=p);let h;e[5]!==i||e[6]!==l||e[7]!==a||e[8]!==d||e[9]!==p?(h={secretKeys:d,providerNames:p,loading:l,error:i,refreshSecrets:a},e[5]=i,e[6]=l,e[7]=a,e[8]=d,e[9]=p,e[10]=h):h=e[10];let f=h,m;return e[11]!==s||e[12]!==f?(m=(0,o.jsx)(Fe,{value:f,children:s}),e[11]=s,e[12]=f,e[13]=m):m=e[13],m},Rs={isMatch:t=>{if(t instanceof kt){let{optionRegex:e}=c.parse(t.description||"");return!!e}return!1},Component:({schema:t,form:e,path:s})=>{let{secretKeys:n,providerNames:r,refreshSecrets:l}=Cs(),{openModal:i,closeModal:a}=ls(),{label:d,description:p,placeholder:h,optionRegex:f="",inputType:m}=c.parse(t.description||""),b=m==="password",{recommended:g,other:x}=vs(n,f);return(0,o.jsx)(Vt,{control:e.control,name:s,render:({field:S})=>(0,o.jsxs)(Jt,{children:[(0,o.jsx)(ts,{children:d}),(0,o.jsx)(Yt,{children:p}),(0,o.jsx)(Gt,{children:(0,o.jsx)($s,{value:S.value?String(S.value):"",onChange:S.onChange,placeholder:h,secretsOnly:b,recommendedKeys:g,otherKeys:x,onCreateSecret:k=>{i((0,o.jsx)(xs,{providerNames:r,initialValue:k,onSuccess:v=>{l(),S.onChange(De(v)),a()},onClose:a}))}})}),(0,o.jsx)(Zt,{})]})})}};function Ts(t){return t.provider!=="env"}function Ls(t){return t.name}function Ns(t){return t.keys}async function Is(){let t=await _s.request({}),e=ws(t.secrets).filter(Ts).map(Ls);return{secretKeys:t.secrets.flatMap(Ns).toSorted(),providerNames:e}}var le=M(),Ds=[Rs];const je=t=>{let e=(0,le.c)(2),{children:s}=t,n;return e[0]===s?n=e[1]:(n=(0,o.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4",children:s}),e[0]=s,e[1]=n),n},Ce=t=>{let e=(0,le.c)(9),{name:s,color:n,icon:r,onSelect:l}=t,i;e[0]===n?i=e[1]:(i={backgroundColor:n},e[0]=n,e[1]=i);let a;e[2]===s?a=e[3]:(a=(0,o.jsx)("span",{className:"text-white font-medium text-lg",children:s}),e[2]=s,e[3]=a);let d;return e[4]!==r||e[5]!==l||e[6]!==i||e[7]!==a?(d=(0,o.jsxs)("button",{type:"button",className:"py-3 flex flex-col items-center justify-center gap-1 transition-all hover:scale-105 hover:brightness-110 rounded shadow-sm-solid hover:shadow-md-solid",style:i,onClick:l,children:[r,a]}),e[4]=r,e[5]=l,e[6]=i,e[7]=a,e[8]=d):d=e[8],d},Ps=t=>{let e=(0,le.c)(25),{onBack:s,isValid:n,libraries:r,preferredLibrary:l,onLibraryChange:i,displayNames:a,libraryLabel:d}=t,p=d===void 0?"Preferred library":d,h;e[0]===s?h=e[1]:(h=(0,o.jsx)(Ie,{type:"button",variant:"outline",onClick:s,children:"Back"}),e[0]=s,e[1]=h);let f=!n,m;e[2]===f?m=e[3]:(m=(0,o.jsx)(Ie,{type:"submit",disabled:f,children:"Add"}),e[2]=f,e[3]=m);let b;e[4]!==h||e[5]!==m?(b=(0,o.jsxs)("div",{className:"flex gap-2",children:[h,m]}),e[4]=h,e[5]=m,e[6]=b):b=e[6];let g;e[7]===Symbol.for("react.memo_cache_sentinel")?(g=(0,o.jsx)(Et,{children:(0,o.jsx)(It,{placeholder:"Select a library"})}),e[7]=g):g=e[7];let x;e[8]===p?x=e[9]:(x=(0,o.jsxs)("div",{className:"flex flex-col gap-1 items-end",children:[g,(0,o.jsx)("span",{className:"text-xs text-muted-foreground",children:p})]}),e[8]=p,e[9]=x);let S;if(e[10]!==a||e[11]!==r){let C;e[13]===a?C=e[14]:(C=A=>(0,o.jsx)(Dt,{value:A,children:a[A]??A},A),e[13]=a,e[14]=C),S=r.map(C),e[10]=a,e[11]=r,e[12]=S}else S=e[12];let k;e[15]===S?k=e[16]:(k=(0,o.jsx)(Pt,{children:(0,o.jsx)(Ft,{children:S})}),e[15]=S,e[16]=k);let v;e[17]!==i||e[18]!==l||e[19]!==x||e[20]!==k?(v=(0,o.jsx)("div",{children:(0,o.jsxs)(qt,{value:l,onValueChange:i,children:[x,k]})}),e[17]=i,e[18]=l,e[19]=x,e[20]=k,e[21]=v):v=e[21];let R;return e[22]!==v||e[23]!==b?(R=(0,o.jsxs)("div",{className:"flex gap-2 justify-between",children:[b,v]}),e[22]=v,e[23]=b,e[24]=R):R=e[24],R};function Fs(){let t=(0,le.c)(4),{createNewCell:e}=St(),s=hs(),n=wt(jt),r;return t[0]!==n||t[1]!==e||t[2]!==s?(r=l=>{/\bmo\./.test(l)&&ps({autoInstantiate:n,createNewCell:e,fromCellId:s}),e({code:l,before:!1,cellId:s??"__end__",skipIfCodeExists:!0})},t[0]=n,t[1]=e,t[2]=s,t[3]=r):r=t[3],r}const Ee=t=>{let e=(0,le.c)(30),{schema:s,libraries:n,preferredLibrary:r,displayNames:l,libraryLabel:i,generateCode:a,onSubmit:d,onBack:p}=t,h;e[0]===s?h=e[1]:(h=Ht(s),e[0]=s,e[1]=h);let f=h,m;e[2]===s?m=e[3]:(m=Xt(s),e[2]=s,e[3]=m);let b;e[4]!==f||e[5]!==m?(b={defaultValues:f,resolver:m,reValidateMode:"onChange"},e[4]=f,e[5]=m,e[6]=b):b=e[6];let g=Qt(b),[x,S]=F.useState(r),k=Fs(),v;e[7]!==a||e[8]!==k||e[9]!==d||e[10]!==x?(v=ae=>{k(a(ae,x)),d()},e[7]=a,e[8]=k,e[9]=d,e[10]=x,e[11]=v):v=e[11];let R=v,C;e[12]!==g||e[13]!==R?(C=g.handleSubmit(R),e[12]=g,e[13]=R,e[14]=C):C=e[14];let A;e[15]===Symbol.for("react.memo_cache_sentinel")?(A=(0,o.jsx)(es,{}),e[15]=A):A=e[15];let T;e[16]!==g||e[17]!==s?(T=(0,o.jsx)(As,{children:(0,o.jsx)(zt,{schema:s,form:g,renderers:Ds,children:A})}),e[16]=g,e[17]=s,e[18]=T):T=e[18];let L;e[19]!==l||e[20]!==g.formState.isValid||e[21]!==n||e[22]!==i||e[23]!==p||e[24]!==x?(L=(0,o.jsx)(Ps,{onBack:p,isValid:g.formState.isValid,libraries:n,preferredLibrary:x,onLibraryChange:S,displayNames:l,libraryLabel:i}),e[19]=l,e[20]=g.formState.isValid,e[21]=n,e[22]=i,e[23]=p,e[24]=x,e[25]=L):L=e[25];let D;return e[26]!==C||e[27]!==T||e[28]!==L?(D=(0,o.jsxs)("form",{onSubmit:C,className:"space-y-4",children:[T,L]}),e[26]=C,e[27]=T,e[28]=L,e[29]=D):D=e[29],D};function q(){return u().optional().describe(c.of({label:"Password",inputType:"password",optionRegex:"(password|passwd|pgpassword|db.?pass(word)?)"}))}function ye(t,e){let s=u();return s=e?s.nonempty():s.optional(),s=s.describe(c.of({label:t||"Token",inputType:"password",optionRegex:"(token|api.?key|access.?token|auth.?token|(^|_)pat(_|$))"})),s}function _e(){return u().optional().describe(c.of({label:"Warehouse Name",optionRegex:"(warehouse|snowflake.?warehouse)"}))}function Ae(t,e){let s=u();return s=e?s.nonempty():s.optional(),s.describe(c.of({label:t||"URI",optionRegex:"(uri|url|connection.?string|database.?url|jdbc)"}))}function E(t){return u().nonempty().describe(c.of({label:t||"Host",optionRegex:"^(?!.*(kubernetes|gpg)).*(host(name)?|pghost|db.?host|database.?host|mysql.?host|postgres.?host|server.?host)"}))}function N(){return u().describe(c.of({label:"Database",optionRegex:"(database|db.?name|pgdatabase|^DB$|^DATABASE$)"}))}function Es(){return u().describe(c.of({label:"Schema",optionRegex:"(^SCHEMA$|db.?schema|postgres.?schema|pg.?schema|_SCHEMA$)"}))}function I(){return u().nonempty().describe(c.of({label:"Username",optionRegex:"(username|pguser|db.?user|^USER$|_USER$)"}))}function B(t){let e=vt().describe(c.of({label:"Port",inputType:"number",placeholder:t==null?void 0:t.toString()})).transform(Number).refine(s=>s>=0&&s<=65535,{message:"Port must be between 0 and 65535"});return t===void 0?e:e.default(t)}function qe(){return P().default(!1).describe(c.of({label:"Read Only"}))}const Be=_({type:w("postgres"),host:E(),port:B(5432).optional(),database:N(),username:I(),password:q(),ssl:P().default(!1).describe(c.of({label:"Use SSL"}))}).describe(c.of({direction:"two-columns"})),Oe=_({type:w("mysql"),host:E(),port:B(3306),database:N(),username:I(),password:q(),ssl:P().default(!1).describe(c.of({label:"Use SSL"}))}).describe(c.of({direction:"two-columns"})),Me=_({type:w("sqlite"),database:N().describe(c.of({label:"Database Path"}))}).describe(c.of({direction:"two-columns"})),Ue=_({type:w("duckdb"),database:N().describe(c.of({label:"Database Path"})),read_only:qe()}).describe(c.of({direction:"two-columns"})),Ke=_({type:w("motherduck"),database:N().default("my_db").describe(c.of({label:"Database Name"})),token:ye()}).describe(c.of({direction:"two-columns"})),He=_({type:w("snowflake"),account:u().nonempty().describe(c.of({label:"Account",optionRegex:"(snowflake.?account|^SNOWFLAKE_ACCOUNT$|account.?id)"})),warehouse:u().optional().describe(c.of({label:"Warehouse",optionRegex:"(snowflake.?warehouse|warehouse)"})),database:N(),schema:u().optional().describe(c.of({label:"Schema",optionRegex:"(snowflake.?schema|^SCHEMA$|_SCHEMA$)"})),role:u().optional().describe(c.of({label:"Role"})),authType:ne("type",[_({type:w("Password"),username:I(),password:q(),enable_mfa:P().default(!1).describe(c.of({label:"Enable MFA (Duo Push)"}))}),_({type:w("SSO (Browser)"),username:I()}),_({type:w("Key Pair"),username:I(),private_key_path:u().nonempty().describe(c.of({label:"Private Key Path",placeholder:"/path/to/rsa_key.p8"})),private_key_passphrase:u().optional().describe(c.of({label:"Private Key Passphrase",inputType:"password",optionRegex:"(passphrase|private.?key.?passphrase|key.?passphrase)"}))}),_({type:w("OAuth / PAT"),token:ye("Token",!0)})]).default({type:"Password",username:"username",enable_mfa:!1}).describe(c.of({special:"tabs"}))}).describe(c.of({direction:"two-columns"})),ze=_({type:w("bigquery"),project:u().nonempty().describe(c.of({label:"Project ID",optionRegex:"(bigquery.?project|gcp.?project|google.?cloud.?project|project.?id)"})),dataset:u().nonempty().describe(c.of({label:"Dataset",optionRegex:"(bigquery.?dataset|dataset)"})),credentials_json:u().describe(c.of({label:"Credentials JSON",inputType:"textarea"}))}).describe(c.of({direction:"two-columns"})),We=_({type:w("clickhouse_connect"),host:E(),port:B(8123).optional(),username:I(),password:q(),secure:P().default(!1).describe(c.of({label:"Use HTTPs"})),proxy_path:u().optional().describe(c.of({label:"Proxy Path",placeholder:"/clickhouse"}))}).describe(c.of({direction:"two-columns"})),Ge=_({type:w("timeplus"),host:E().default("localhost"),port:B(8123).optional(),username:I().default("default"),password:q().default("")}).describe(c.of({direction:"two-columns"})),Ve=_({type:w("chdb"),database:N().describe(c.of({label:"Database Path"})),read_only:qe()}).describe(c.of({direction:"two-columns"})),Ze=_({type:w("trino"),host:E(),port:B(8080),database:N(),schema:Es().optional(),username:I(),password:q(),async_support:P().default(!1).describe(c.of({label:"Async Support"}))}).describe(c.of({direction:"two-columns"})),Qe=_({type:w("iceberg"),name:u().describe(c.of({label:"Catalog Name"})),catalog:ne("type",[_({type:w("REST"),warehouse:_e(),uri:u().optional().describe(c.of({label:"URI",placeholder:"https://",optionRegex:"(uri|url|connection.?string|database.?url|jdbc)"})),token:ye()}),_({type:w("SQL"),warehouse:_e(),uri:u().optional().describe(c.of({label:"URI",placeholder:"jdbc:iceberg://host:port/database",optionRegex:"(uri|url|connection.?string|database.?url|jdbc)"}))}),_({type:w("Hive"),warehouse:_e(),uri:Ae()}),_({type:w("Glue"),warehouse:_e(),uri:Ae()}),_({type:w("DynamoDB"),"dynamodb.profile-name":u().optional().describe(c.of({label:"Profile Name"})),"dynamodb.region":u().optional().describe(c.of({label:"Region"})),"dynamodb.access-key-id":u().optional().describe(c.of({label:"Access Key ID",inputType:"password",optionRegex:"(access.?key.?id|aws.?access.?key)"})),"dynamodb.secret-access-key":u().optional().describe(c.of({label:"Secret Access Key",inputType:"password",optionRegex:"(secret.?access.?key|aws.?secret)"})),"dynamodb.session-token":u().optional().describe(c.of({label:"Session Token",inputType:"password",optionRegex:"(session.?token|aws.?session)"}))})]).default({type:"REST",token:void 0}).describe(c.of({special:"tabs"}))}),Je=_({type:w("datafusion"),sessionContext:P().optional().describe(c.of({label:"Use Session Context"}))}),Ye=_({type:w("pyspark"),host:E().optional(),port:B().optional()}),Xe=_({type:w("redshift"),host:E(),port:B(5439),connectionType:ne("type",[_({type:w("IAM credentials"),region:u().describe(c.of({label:"Region"})),aws_access_key_id:u().nonempty().describe(c.of({label:"AWS Access Key ID",inputType:"password",optionRegex:"(access.?key.?id|aws.?access.?key)"})),aws_secret_access_key:u().nonempty().describe(c.of({label:"AWS Secret Access Key",inputType:"password",optionRegex:"(secret.?access.?key|aws.?secret)"})),aws_session_token:u().optional().describe(c.of({label:"AWS Session Token",inputType:"password",optionRegex:"(session.?token|aws.?session)"}))}),_({type:w("DB credentials"),user:I(),password:q()})]).default({type:"IAM credentials",aws_access_key_id:"",aws_secret_access_key:"",region:""}),database:N()}).describe(c.of({direction:"two-columns"})),et=_({type:w("databricks"),access_token:ye("Access Token",!0),server_hostname:E("Server Hostname"),http_path:Ae("HTTP Path",!0),catalog:u().optional().describe(c.of({label:"Catalog"})),schema:u().optional().describe(c.of({label:"Schema"}))}).describe(c.of({direction:"two-columns"})),tt=_({type:w("supabase"),host:E(),port:B(5432).optional(),database:N(),username:I(),password:q(),disable_client_pooling:P().default(!1).describe(c.of({label:"Disable Client-Side Pooling"}))}).describe(c.of({direction:"two-columns"})),qs=ne("type",[Be,Oe,Me,Ue,Ke,He,ze,We,Ge,Ve,Ze,Qe,Je,Ye,Xe,et,tt]),st={sqlmodel:"SQLModel",sqlalchemy:"SQLAlchemy",duckdb:"DuckDB",clickhouse_connect:"ClickHouse Connect",chdb:"chDB",pyiceberg:"PyIceberg",ibis:"Ibis",motherduck:"MotherDuck",redshift:"Redshift",databricks:"Databricks"};var j=class{constructor(t,e,s){this.connection=t,this.orm=e,this.secrets=s}get imports(){let t=new Set(this.generateImports());switch(this.orm){case"sqlalchemy":t.add("import sqlalchemy");break;case"sqlmodel":t.add("import sqlmodel");break;case"duckdb":t.add("import duckdb");break;case"ibis":t.add("import ibis");break}return t}},Bs=t=>`_${t}`,Os=class{constructor(){ue(this,"secrets",{})}get imports(){return Object.keys(this.secrets).length===0?new Set:new Set(["import os"])}print(t,e,s){if(t=Bs(t),U(e)){let n=Pe(e),r=s?`os.environ.get("${n}", "${s}")`:`os.environ.get("${n}")`;return this.secrets[t]=r,t}if(s!=null){let n=`os.environ.get("${e}", "${s}")`;return this.secrets[t]=n,t}return typeof e=="number"||typeof e=="number"?`${e}`:typeof e=="boolean"?oe(e):e?`"${e}"`:""}printInFString(t,e,s){if(e===void 0)return"";if(typeof e=="number")return`${e}`;if(typeof e=="boolean")return oe(e);let n=this.print(t,e,s);return n.startsWith('"')&&n.endsWith('"')?n.slice(1,-1):`{${n}}`}printPassword(t,e,s,n){let r=s?this.printInFString.bind(this):this.print.bind(this);return U(t)?r(n||"password",t):r(n||"password",e,t)}getSecrets(){return this.secrets}formatSecrets(){return Object.keys(this.secrets).length===0?"":Object.entries(this.secrets).map(([t,e])=>`${t} = ${e}`).join(`
2
+ `)}},Ms=class extends j{generateImports(){return[]}generateConnectionCode(){let t=this.connection.ssl?", connect_args={'sslmode': 'require'}":"",e=this.secrets.printPassword(this.connection.password,"POSTGRES_PASSWORD",!0);return y(`
3
+ DATABASE_URL = f"postgresql://${this.secrets.printInFString("username",this.connection.username)}:${e}@${this.secrets.printInFString("host",this.connection.host)}:${this.secrets.printInFString("port",this.connection.port)}/${this.secrets.printInFString("database",this.connection.database)}"
4
+ engine = ${this.orm}.create_engine(DATABASE_URL${t})
5
+ `)}},Us=class extends j{generateImports(){return[]}generateConnectionCode(){let t=this.connection.ssl?", connect_args={'ssl': {'ssl-mode': 'preferred'}}":"",e=this.secrets.printPassword(this.connection.password,"MYSQL_PASSWORD",!0),s=this.secrets.printInFString("database",this.connection.database);return y(`
6
+ DATABASE_URL = f"mysql+pymysql://${this.secrets.printInFString("username",this.connection.username)}:${e}@${this.secrets.printInFString("host",this.connection.host)}:${this.secrets.printInFString("port",this.connection.port)}/${s}"
7
+ engine = ${this.orm}.create_engine(DATABASE_URL${t})
8
+ `)}},Ks=class extends j{generateImports(){return[]}generateConnectionCode(){let t=this.connection.database?this.secrets.printInFString("database",this.connection.database):"";return y(`
9
+ ${t.startsWith("{")&&t.endsWith("}")?`DATABASE_URL = f"sqlite:///${t}"`:`DATABASE_URL = "sqlite:///${t}"`}
10
+ engine = ${this.orm}.create_engine(DATABASE_URL)
11
+ `)}},Hs=class extends j{generateImports(){return["from snowflake.sqlalchemy import URL"]}generateConnectionCode(){let{authType:t,account:e,database:s,warehouse:n,schema:r,role:l}=this.connection,i={account:this.secrets.print("account",e),database:this.secrets.print("database",s),warehouse:n?this.secrets.print("warehouse",n):void 0,schema:r?this.secrets.print("schema",r):void 0,role:l?this.secrets.print("role",l):void 0};switch(t.type){case"Password":{let a=this.secrets.printPassword(t.password,"SNOWFLAKE_PASSWORD",!1),d={...i,user:this.secrets.print("user",t.username),password:a};return t.enable_mfa?y(`
12
+ engine = ${this.orm}.create_engine(
13
+ URL(
14
+ ${O(d,p=>` ${p}`)},
15
+ ),
16
+ connect_args={"authenticator": "username_password_mfa"},
17
+ )
18
+ `):y(`
19
+ engine = ${this.orm}.create_engine(
20
+ URL(
21
+ ${O(d,p=>` ${p}`)},
22
+ )
23
+ )
24
+ `)}case"SSO (Browser)":{let a={...i,user:this.secrets.print("user",t.username),authenticator:'"externalbrowser"'};return y(`
25
+ engine = ${this.orm}.create_engine(
26
+ URL(
27
+ ${O(a,d=>` ${d}`)},
28
+ )
29
+ )
30
+ `)}case"Key Pair":{let a={...i,user:this.secrets.print("user",t.username)},d=this.secrets.print("private_key_path",t.private_key_path),p=t.private_key_passphrase?this.secrets.printPassword(t.private_key_passphrase,"SNOWFLAKE_PRIVATE_KEY_PASSPHRASE",!1):void 0,h=[' "authenticator": "SNOWFLAKE_JWT"',` "private_key_file": ${d}`];return p&&h.push(` "private_key_file_pwd": ${p}`),y(`
31
+ engine = ${this.orm}.create_engine(
32
+ URL(
33
+ ${O(a,f=>` ${f}`)},
34
+ ),
35
+ connect_args={
36
+ ${h.join(`,
37
+ `)},
38
+ },
39
+ )
40
+ `)}case"OAuth / PAT":{let a=this.secrets.printPassword(t.token,"SNOWFLAKE_TOKEN",!1),d={...i,authenticator:'"oauth"',token:a};return y(`
41
+ engine = ${this.orm}.create_engine(
42
+ URL(
43
+ ${O(d,p=>` ${p}`)},
44
+ )
45
+ )
46
+ `)}default:ie(t)}}},zs=class extends j{generateImports(){return["import json"]}generateConnectionCode(){let t=this.secrets.printInFString("project",this.connection.project),e=this.secrets.printInFString("dataset",this.connection.dataset);return y(`
47
+ credentials = json.loads("""${this.connection.credentials_json}""")
48
+ engine = ${this.orm}.create_engine(f"bigquery://${t}/${e}", credentials_info=credentials)
49
+ `)}},Ws=class extends j{generateImports(){return[]}generateConnectionCode(){return y(`
50
+ DATABASE_URL = "${this.secrets.printInFString("database",this.connection.database||":memory:")}"
51
+ engine = ${this.orm}.connect(DATABASE_URL, read_only=${oe(this.connection.read_only)})
52
+ `)}},Gs=class extends j{generateImports(){return[]}generateConnectionCode(){let t=this.secrets.printInFString("database",this.connection.database);return this.connection.token?y(`
53
+ conn = duckdb.connect("md:${t}", config={"motherduck_token": ${this.secrets.printPassword(this.connection.token,"MOTHERDUCK_TOKEN",!1)}})
54
+ `):y(`
55
+ conn = duckdb.connect("md:${t}")
56
+ `)}},Vs=class extends j{generateImports(){return["import clickhouse_connect"]}generateConnectionCode(){let t=this.secrets.printPassword(this.connection.password,"CLICKHOUSE_PASSWORD",!1),e={host:this.secrets.print("host",this.connection.host),user:this.secrets.print("user",this.connection.username),secure:this.secrets.print("secure",this.connection.secure),port:this.connection.port?this.secrets.print("port",this.connection.port):void 0,password:this.connection.password?t:void 0,proxy_path:this.connection.proxy_path?this.secrets.print("proxy_path",this.connection.proxy_path):void 0};return y(`
57
+ engine = ${this.orm}.get_client(
58
+ ${O(e,s=>` ${s}`)},
59
+ )
60
+ `)}},Zs=class extends j{generateImports(){return[]}generateConnectionCode(){let t=this.secrets.printPassword(this.connection.password,"TIMEPLUS_PASSWORD",!0);return y(`
61
+ DATABASE_URL = f"timeplus://${this.secrets.printInFString("username",this.connection.username)}:${t}@${this.secrets.printInFString("host",this.connection.host)}:${this.secrets.printInFString("port",this.connection.port)}"
62
+ engine = ${this.orm}.create_engine(DATABASE_URL)
63
+ `)}},Qs=class extends j{generateImports(){return["import chdb"]}generateConnectionCode(){let t=this.secrets.print("database",this.connection.database)||'""';return y(`
64
+ engine = ${this.orm}.connect(${t}, read_only=${oe(this.connection.read_only)})
65
+ `)}},Js=class extends j{generateImports(){return this.connection.async_support?["import aiotrino"]:["import trino.sqlalchemy"]}generateConnectionCode(){let t=this.connection.async_support?"aiotrino":"trino",e=this.connection.schema?`/${this.connection.schema}`:"",s=this.secrets.printInFString("username",this.connection.username),n=this.secrets.printInFString("host",this.connection.host),r=this.secrets.printInFString("port",this.connection.port),l=this.secrets.printInFString("database",this.connection.database),i=this.secrets.printPassword(this.connection.password,"TRINO_PASSWORD",!0);return y(`
66
+ engine = ${this.orm}.create_engine(f"${t}://${s}:${i}@${n}:${r}/${l}${e}")
67
+ `)}},Ys=class extends j{generateImports(){switch(this.connection.catalog.type){case"REST":return["from pyiceberg.catalog.rest import RestCatalog"];case"SQL":return["from pyiceberg.catalog.sql import SqlCatalog"];case"Hive":return["from pyiceberg.catalog.hive import HiveCatalog"];case"Glue":return["from pyiceberg.catalog.glue import GlueCatalog"];case"DynamoDB":return["from pyiceberg.catalog.dynamodb import DynamoDBCatalog"];default:ie(this.connection.catalog)}}generateConnectionCode(){let t={...this.connection.catalog};t=Object.fromEntries(Object.entries(t).filter(([n,r])=>r!=null&&r!==""&&n!=="type"));for(let[n,r]of Object.entries(t))U(r)?t[n]=this.secrets.print(n,r):typeof r=="string"&&(t[n]=`"${r}"`);let e=ar(t,n=>` ${n}`),s=`"${this.connection.name}"`;switch(this.connection.catalog.type){case"REST":return y(`
68
+ catalog = RestCatalog(
69
+ ${s},
70
+ **{
71
+ ${e}
72
+ },
73
+ )
74
+ `);case"SQL":return y(`
75
+ catalog = SqlCatalog(
76
+ ${s},
77
+ **{
78
+ ${e}
79
+ },
80
+ )
81
+ `);case"Hive":return y(`
82
+ catalog = HiveCatalog(
83
+ ${s},
84
+ **{
85
+ ${e}
86
+ },
87
+ )
88
+ `);case"Glue":return y(`
89
+ catalog = GlueCatalog(
90
+ ${s},
91
+ **{
92
+ ${e}
93
+ },
94
+ )
95
+ `);case"DynamoDB":return y(`
96
+ catalog = DynamoDBCatalog(
97
+ ${s},
98
+ **{
99
+ ${e}
100
+ },
101
+ )
102
+ `);default:ie(this.connection.catalog)}}},Xs=class extends j{generateImports(){return["from datafusion import SessionContext"]}generateConnectionCode(){return this.connection.sessionContext?y(`
103
+ ctx = SessionContext()
104
+ # Sample table
105
+ _ = ctx.from_pydict({"a": [1, 2, 3]}, "my_table")
106
+
107
+ con = ibis.datafusion.connect(ctx)
108
+ `):y(`
109
+ con = ibis.datafusion.connect()
110
+ `)}},er=class extends j{generateImports(){return["from pyspark.sql import SparkSession"]}generateConnectionCode(){return this.connection.host||this.connection.port?y(`
111
+ session = SparkSession.builder.remote(f"sc://${this.secrets.printInFString("host",this.connection.host)}:${this.secrets.printInFString("port",this.connection.port)}").getOrCreate()
112
+ con = ibis.pyspark.connect(session)
113
+ `):y(`
114
+ con = ibis.pyspark.connect()
115
+ `)}},tr=class extends j{generateImports(){return["import redshift_connector"]}generateConnectionCode(){let t=this.secrets.print("host",this.connection.host),e=this.secrets.print("port",this.connection.port),s=this.secrets.print("database",this.connection.database);if(this.connection.connectionType.type==="IAM credentials"){let l=this.secrets.print("aws_access_key_id",this.connection.connectionType.aws_access_key_id),i=this.secrets.print("aws_secret_access_key",this.connection.connectionType.aws_secret_access_key),a=this.connection.connectionType.aws_session_token?this.secrets.print("aws_session_token",this.connection.connectionType.aws_session_token):void 0;return y(`
116
+ con = redshift_connector.connect(
117
+ ${O({iam:!0,host:t,port:e,region:`"${this.connection.connectionType.region}"`,database:s,access_key_id:l,secret_access_key:i,...a&&{session_token:a}},d=>` ${d}`)},
118
+ )
119
+ `)}let n=this.connection.connectionType.user?this.secrets.print("user",this.connection.connectionType.user):void 0,r=this.connection.connectionType.password?this.secrets.printPassword(this.connection.connectionType.password,"REDSHIFT_PASSWORD",!1):void 0;return y(`
120
+ con = redshift_connector.connect(
121
+ ${O({host:t,port:e,database:s,...n&&{user:n},...r&&{password:r}},l=>` ${l}`)},
122
+ )
123
+ `)}},sr=class extends j{generateImports(){return[]}generateConnectionCode(){let t=this.orm!=="ibis",e=this.secrets.printPassword(this.connection.access_token,"DATABRICKS_ACCESS_TOKEN",t,"access_token"),s=this.secrets.printPassword(this.connection.server_hostname,"DATABRICKS_SERVER_HOSTNAME",t,"server_hostname"),n=this.secrets.printPassword(this.connection.http_path,"DATABRICKS_HTTP_PATH",t,"http_path"),r=this.connection.catalog?this.secrets.printInFString("catalog",this.connection.catalog):void 0,l=this.connection.schema?this.secrets.printInFString("schema",this.connection.schema):void 0,i=`databricks://token:${e}@${s}?http_path=${n}`;return r&&(i+=`&catalog=${r}`),l&&(i+=`&schema=${l}`),this.orm==="ibis"?y(`
124
+ engine = ibis.databricks.connect(
125
+ server_hostname=${s},
126
+ http_path=${n},${r?`
127
+ catalog=${r},`:""}${l?`
128
+ schema=${l},`:""}
129
+ access_token=${e}
130
+ )
131
+ `):y(`
132
+ DATABASE_URL = f"${i}"
133
+ engine = ${this.orm}.create_engine(DATABASE_URL)
134
+ `)}},rr=class extends j{generateImports(){return this.connection.disable_client_pooling?["from sqlalchemy.pool import NullPool"]:[]}generateConnectionCode(){let t=this.secrets.printPassword(this.connection.password,"SUPABASE_PASSWORD",!0),e=this.secrets.printInFString("username",this.connection.username),s=this.secrets.printInFString("host",this.connection.host),n=this.secrets.printInFString("port",this.connection.port),r=this.secrets.printInFString("database",this.connection.database),l=this.connection.disable_client_pooling?", poolclass=NullPool":"";return y(`
135
+ DATABASE_URL = f"postgresql+psycopg2://${e}:${t}@${s}:${n}/${r}?sslmode=require"
136
+ engine = ${this.orm}.create_engine(DATABASE_URL${l})
137
+ `)}},nr=class{constructor(){ue(this,"secrets",new Os)}createGenerator(t,e){switch(t.type){case"postgres":return new Ms(t,e,this.secrets);case"mysql":return new Us(t,e,this.secrets);case"sqlite":return new Ks(t,e,this.secrets);case"snowflake":return new Hs(t,e,this.secrets);case"bigquery":return new zs(t,e,this.secrets);case"duckdb":return new Ws(t,e,this.secrets);case"motherduck":return new Gs(t,e,this.secrets);case"clickhouse_connect":return new Vs(t,e,this.secrets);case"timeplus":return new Zs(t,e,this.secrets);case"chdb":return new Qs(t,e,this.secrets);case"trino":return new Js(t,e,this.secrets);case"iceberg":return new Ys(t,e,this.secrets);case"datafusion":return new Xs(t,e,this.secrets);case"pyspark":return new er(t,e,this.secrets);case"redshift":return new tr(t,e,this.secrets);case"databricks":return new sr(t,e,this.secrets);case"supabase":return new rr(t,e,this.secrets);default:ie(t)}}};function or(t,e){if(!(e in st))throw Error(`Unsupported library: ${e}`);qs.parse(t);let s=new nr,n=s.createGenerator(t,e),r=n.generateConnectionCode(),l=s.secrets,i=[...new Set([...l.imports,...n.imports])].toSorted();i.push("");let a=l.formatSecrets();return a&&i.push(a),i.push(r.trim()),i.join(`
138
+ `)}function oe(t){return t.toString().charAt(0).toUpperCase()+t.toString().slice(1)}function O(t,e){return Object.entries(t).filter(([,s])=>s!=null&&s!=="").map(([s,n])=>e(typeof n=="boolean"?`${s}=${oe(n)}`:`${s}=${n}`)).join(`,
139
+ `)}function ar(t,e){return Object.entries(t).filter(([,s])=>s!=null&&s!=="").map(([s,n])=>{let r=`"${s}"`;return e(typeof n=="boolean"?`${r}: ${oe(n)}`:`${r}: ${n}`)}).join(`,
140
+ `)}var rt=M(),nt=[{name:"PostgreSQL",schema:Be,color:"#336791",logo:"postgres",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"MySQL",schema:Oe,color:"#00758F",logo:"mysql",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"SQLite",schema:Me,color:"#003B57",logo:"sqlite",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"DuckDB",schema:Ue,color:"#FFD700",logo:"duckdb",connectionLibraries:{libraries:["duckdb"],preferred:"duckdb"}},{name:"MotherDuck",schema:Ke,color:"#ff9538",logo:"motherduck",connectionLibraries:{libraries:["duckdb"],preferred:"duckdb"}},{name:"Snowflake",schema:He,color:"#29B5E8",logo:"snowflake",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"ClickHouse",schema:We,color:"#2C2C1D",logo:"clickhouse",connectionLibraries:{libraries:["clickhouse_connect"],preferred:"clickhouse_connect"}},{name:"Timeplus",schema:Ge,color:"#B83280",logo:"timeplus",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"BigQuery",schema:ze,color:"#4285F4",logo:"bigquery",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"ClickHouse Embedded",schema:Ve,color:"#f2b611",logo:"clickhouse",connectionLibraries:{libraries:["chdb"],preferred:"chdb"}},{name:"Trino",schema:Ze,color:"#d466b6",logo:"trino",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"DataFusion",schema:Je,color:"#202A37",logo:"datafusion",connectionLibraries:{libraries:["ibis"],preferred:"ibis"}},{name:"PySpark",schema:Ye,color:"#1C5162",logo:"pyspark",connectionLibraries:{libraries:["ibis"],preferred:"ibis"}},{name:"Redshift",schema:Xe,color:"#522BAE",logo:"redshift",connectionLibraries:{libraries:["redshift"],preferred:"redshift"}},{name:"Databricks",schema:et,color:"#c41e0c",logo:"databricks",connectionLibraries:{libraries:["sqlalchemy","sqlmodel","ibis"],preferred:"sqlalchemy"}},{name:"Supabase",schema:tt,color:"#238F5F",logo:"supabase",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}}],ot=[{name:"Iceberg",schema:Qe,color:"#000000",logo:"iceberg",connectionLibraries:{libraries:["pyiceberg"],preferred:"pyiceberg"}}],cr=[...nt,...ot],ir=t=>{let e=(0,rt.c)(12),{onSelect:s}=t,n;e[0]===s?n=e[1]:(n=nt.map(p=>{let{name:h,schema:f,color:m,logo:b}=p;return(0,o.jsx)(Ce,{name:h,color:m,icon:(0,o.jsx)(Te,{name:b,className:"w-8 h-8 text-white brightness-0 invert dark:invert"}),onSelect:()=>s(f)},h)}),e[0]=s,e[1]=n);let r;e[2]===n?r=e[3]:(r=(0,o.jsx)(je,{children:n}),e[2]=n,e[3]=r);let l;e[4]===Symbol.for("react.memo_cache_sentinel")?(l=(0,o.jsxs)("h4",{className:"font-semibold text-muted-foreground text-lg flex items-center gap-4 my-2",children:["Data Catalogs",(0,o.jsx)("hr",{className:"flex-1"})]}),e[4]=l):l=e[4];let i;e[5]===s?i=e[6]:(i=ot.map(p=>{let{name:h,schema:f,color:m,logo:b}=p;return(0,o.jsx)(Ce,{name:h,color:m,icon:(0,o.jsx)(Te,{name:b,className:"w-8 h-8 text-white brightness-0 invert dark:invert"}),onSelect:()=>s(f)},h)}),e[5]=s,e[6]=i);let a;e[7]===i?a=e[8]:(a=(0,o.jsx)(je,{children:i}),e[7]=i,e[8]=a);let d;return e[9]!==r||e[10]!==a?(d=(0,o.jsxs)(o.Fragment,{children:[r,l,a]}),e[9]=r,e[10]=a,e[11]=d):d=e[11],d};const lr=t=>{let e=(0,rt.c)(13),{onSubmit:s,header:n}=t,[r,l]=(0,F.useState)(null);if(!r){let m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=(0,o.jsx)("div",{children:(0,o.jsx)(ir,{onSelect:l})}),e[0]=m):m=e[0];let b;return e[1]===n?b=e[2]:(b=(0,o.jsxs)(o.Fragment,{children:[n,m]}),e[1]=n,e[2]=b),b}let i;e[3]===r?i=e[4]:(i=cr.find(m=>m.schema===r),e[3]=r,e[4]=i);let a=i==null?void 0:i.connectionLibraries,d;e[5]===(a==null?void 0:a.libraries)?d=e[6]:(d=(a==null?void 0:a.libraries)??[],e[5]=a==null?void 0:a.libraries,e[6]=d);let p=(a==null?void 0:a.preferred)??"sqlalchemy",h;e[7]===Symbol.for("react.memo_cache_sentinel")?(h=()=>l(null),e[7]=h):h=e[7];let f;return e[8]!==s||e[9]!==r||e[10]!==d||e[11]!==p?(f=(0,o.jsx)(Ee,{schema:r,libraries:d,preferredLibrary:p,displayNames:st,libraryLabel:"Preferred connection library",generateCode:dr,onSubmit:s,onBack:h}),e[8]=s,e[9]=r,e[10]=d,e[11]=p,e[12]=f):f=e[12],f};function dr(t,e){return or(t,e)}var pr="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20id='Layer_1'%20x='0'%20y='0'%20version='1.1'%20viewBox='0.02%20102.6%20511.9%20306.4'%3e%3cstyle%3e.st1{fill-rule:evenodd;clip-rule:evenodd;fill:%23f90}%3c/style%3e%3cpath%20d='M144.3%20214.1c0%206.3.7%2011.4%201.9%2015.2%201.4%203.7%203.1%207.8%205.4%2012.3.9%201.4%201.2%202.7%201.2%203.9%200%201.7-1%203.4-3.2%205.1l-10.7%207.2c-1.5%201-3.1%201.5-4.4%201.5-1.7%200-3.4-.9-5.1-2.4-2.4-2.6-4.4-5.3-6.1-8-1.7-2.9-3.4-6.1-5.3-10-13.3%2015.7-30%2023.5-50.1%2023.5-14.3%200-25.7-4.1-34.1-12.3-8.3-8.2-12.6-19.1-12.6-32.7%200-14.5%205.1-26.2%2015.5-35.1S60.8%20169%2078.4%20169c5.8%200%2011.7.5%2018.1%201.4s12.8%202.2%2019.6%203.7v-12.4c0-12.9-2.7-22-8-27.2-5.4-5.3-14.6-7.8-27.8-7.8-6%200-12.1.7-18.4%202.2s-12.4%203.4-18.4%205.8c-2.7%201.2-4.8%201.9-6%202.2s-2%20.5-2.7.5c-2.4%200-3.6-1.7-3.6-5.3v-8.3c0-2.7.3-4.8%201.2-6s2.4-2.4%204.8-3.6c6-3.1%2013.1-5.6%2021.5-7.7%208.3-2.2%2017.2-3.2%2026.6-3.2%2020.3%200%2035.1%204.6%2044.6%2013.8%209.4%209.2%2014.1%2023.2%2014.1%2041.9v55.2h.3zM75.2%20240c5.6%200%2011.4-1%2017.5-3.1%206.1-2%2011.6-5.8%2016.2-10.9%202.7-3.2%204.8-6.8%205.8-10.9s1.7-9%201.7-14.8v-7.2c-4.9-1.2-10.2-2.2-15.7-2.9-5.4-.7-10.7-1-16-1-11.4%200-19.8%202.2-25.4%206.8S51%20207.1%2051%20215.6c0%208%202%2014%206.3%2018.1%204.1%204.2%2010%206.3%2017.9%206.3m136.7%2018.4c-3.1%200-5.1-.5-6.5-1.7-1.4-1-2.6-3.4-3.6-6.6l-40-131.6c-1-3.4-1.5-5.6-1.5-6.8%200-2.7%201.4-4.3%204.1-4.3h16.7c3.2%200%205.4.5%206.6%201.7%201.4%201%202.4%203.4%203.4%206.6l28.6%20112.7%2026.6-112.7c.9-3.4%201.9-5.6%203.2-6.6%201.4-1%203.7-1.7%206.8-1.7H270c3.2%200%205.4.5%206.8%201.7%201.4%201%202.6%203.4%203.2%206.6l26.9%20114.1%2029.5-114.1c1-3.4%202.2-5.6%203.4-6.6%201.4-1%203.6-1.7%206.6-1.7h15.8c2.7%200%204.3%201.4%204.3%204.3%200%20.9-.2%201.7-.3%202.7-.2%201-.5%202.4-1.2%204.3l-41%20131.6q-1.5%205.1-3.6%206.6c-1.4%201-3.6%201.7-6.5%201.7h-14.6c-3.2%200-5.4-.5-6.8-1.7s-2.6-3.4-3.2-6.8l-26.4-109.8L236.7%20250c-.9%203.4-1.9%205.6-3.2%206.8-1.4%201.2-3.7%201.7-6.8%201.7h-14.8zm218.8%204.6c-8.9%200-17.7-1-26.2-3.1-8.5-2-15.2-4.3-19.6-6.8-2.7-1.5-4.6-3.2-5.3-4.8s-1-3.2-1-4.8v-8.7c0-3.6%201.4-5.3%203.9-5.3%201%200%202%20.2%203.1.5%201%20.3%202.6%201%204.3%201.7%205.8%202.6%2012.1%204.6%2018.7%206%206.8%201.4%2013.5%202%2020.3%202%2010.7%200%2019.1-1.9%2024.9-5.6s8.9-9.2%208.9-16.2c0-4.8-1.5-8.7-4.6-11.9s-8.9-6.1-17.2-8.9l-24.7-7.7c-12.4-3.9-21.6-9.7-27.2-17.4-5.6-7.5-8.5-15.8-8.5-24.7%200-7.2%201.5-13.5%204.6-18.9s7.2-10.2%2012.3-14c5.1-3.9%2010.9-6.8%2017.7-8.9%206.8-2%2014-2.9%2021.5-2.9%203.7%200%207.7.2%2011.4.7%203.9.5%207.5%201.2%2011.1%201.9%203.4.9%206.6%201.7%209.7%202.7s5.4%202%207.2%203.1c2.4%201.4%204.1%202.7%205.1%204.3%201%201.4%201.5%203.2%201.5%205.6v8c0%203.6-1.4%205.4-3.9%205.4-1.4%200-3.6-.7-6.5-2q-14.55-6.6-32.7-6.6c-9.7%200-17.4%201.5-22.6%204.8s-8%208.2-8%2015.2c0%204.8%201.7%208.9%205.1%2012.1s9.7%206.5%2018.7%209.4l24.2%207.7c12.3%203.9%2021.1%209.4%2026.4%2016.3s7.8%2015%207.8%2023.8c0%207.3-1.5%2014-4.4%2019.8-3.1%205.8-7.2%2010.9-12.4%2015-5.3%204.3-11.6%207.3-18.9%209.5-8%202.5-16%203.7-24.7%203.7'%20style='fill:%23fff'/%3e%3cpath%20fill='%23fff'%20d='M462.9%20345.7c-56%2041.4-137.4%2063.3-207.4%2063.3-98.1%200-186.5-36.3-253.2-96.6-5.3-4.8-.5-11.2%205.8-7.5%2072.2%2041.9%20161.3%2067.3%20253.4%2067.3%2062.2%200%20130.4-12.9%20193.3-39.5%209.3-4.2%2017.3%206.2%208.1%2013'%20class='st1'/%3e%3cpath%20fill='%23fff'%20d='M486.2%20319.2c-7.2-9.2-47.3-4.4-65.6-2.2-5.4.7-6.3-4.1-1.4-7.7%2032-22.5%2084.6-16%2090.8-8.5%206.1%207.7-1.7%2060.3-31.7%2085.5-4.6%203.9-9%201.9-7-3.2%206.9-16.9%2022.1-54.9%2014.9-63.9'%20class='st1'/%3e%3c/svg%3e",hr="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20128%20128'%3e%3cpath%20fill='%23FFF'%20d='m115.679%2069.288-15.591-8.94-2.689-1.163-63.781.436v32.381h82.061z'/%3e%3cpath%20fill='%23F38020'%20d='M87.295%2089.022c.763-2.617.472-5.015-.8-6.796-1.163-1.635-3.125-2.58-5.488-2.689l-44.737-.581c-.291%200-.545-.145-.691-.363s-.182-.509-.109-.8c.145-.436.581-.763%201.054-.8l45.137-.581c5.342-.254%2011.157-4.579%2013.192-9.885l2.58-6.723c.109-.291.145-.581.073-.872-2.906-13.158-14.644-22.97-28.672-22.97-12.938%200-23.913%208.359-27.838%2019.952a13.35%2013.35%200%200%200-9.267-2.58c-6.215.618-11.193%205.597-11.811%2011.811-.145%201.599-.036%203.162.327%204.615C10.104%2070.051%202%2078.337%202%2088.549c0%20.909.073%201.817.182%202.726a.895.895%200%200%200%20.872.763h82.57c.472%200%20.909-.327%201.054-.8l.617-2.216z'/%3e%3cpath%20fill='%23FAAE40'%20d='M101.542%2060.275c-.4%200-.836%200-1.236.036-.291%200-.545.218-.654.509l-1.744%206.069c-.763%202.617-.472%205.015.8%206.796%201.163%201.635%203.125%202.58%205.488%202.689l9.522.581c.291%200%20.545.145.691.363.145.218.182.545.109.8-.145.436-.581.763-1.054.8l-9.924.582c-5.379.254-11.157%204.579-13.192%209.885l-.727%201.853c-.145.363.109.727.509.727h34.089c.4%200%20.763-.254.872-.654.581-2.108.909-4.325.909-6.614%200-13.447-10.975-24.422-24.458-24.422'/%3e%3c/svg%3e",mr="data:image/svg+xml,%3csvg%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xmlns='http://www.w3.org/2000/svg'%20id='Layer_1'%20data-name='Layer%201'%20viewBox='0%200%20224.09%20161.1'%20width='224.09'%20height='161.1'%20%3e%3cdefs%3e%3cstyle%3e%20.cls-1,%20.cls-2%20{%20fill:%20%23000;%20stroke-width:%200px;%20}%20.cls-2%20{%20fill-rule:%20evenodd;%20}%20%3c/style%3e%3c/defs%3e%3cpath%20class='cls-2'%20d='M92.1,112.3h-27.07c-1.65,0-3.3-.99-4.29-2.64l-12.55-22.47c-.66-1.65-.66-3.3,0-4.62l12.55-22.47c.99-1.65,2.64-2.64,4.29-2.64h15.52c1.65,0,3.3-.99,4.29-2.64l11.23-20.16c.99-1.65-.33-3.63-1.98-3.63h-41.6c-3.63,0-6.6,1.98-8.58,4.96l-24.76,44.28c-1.65,2.97-1.65,6.61,0,9.58l24.76,43.94c1.65,2.97,4.95,4.96,8.58,4.96h53.15c1.98,0,2.97-1.98,1.98-3.64l-11.55-20.49c-.33-1.65-1.98-2.31-3.96-2.31Z'/%3e%3cpath%20class='cls-1'%20d='M165.4,50.51l-10.57-17.84c-.99-1.65-3.3-1.65-4.29,0l-44.57,79.3c-.66,1.65-.66,3.3,0,4.63l11.55,20.82c.99,1.65,3.3,1.65,4.29,0l43.58-77.32c1.65-2.97,1.65-6.61,0-9.58Z'/%3e%3cpath%20class='cls-2'%20d='M111.58,86.86l13.21-23.46c.66-1.32.66-3.3,0-4.96l-15.19-26.1c-.99-1.65-3.3-1.65-4.29,0l-12.88,22.8c-.66,1.32-.66,3.3,0,4.63l14.86,26.76c.99,1.98,3.63,1.98,4.29.33Z'/%3e%3cpath%20class='cls-1'%20d='M204.35,50.51l-10.57-17.84c-.99-1.65-3.3-1.65-4.29,0l-44.57,79.3c-.66,1.65-.66,3.3,0,4.63l11.89,20.82c.99,1.65,3.3,1.65,4.29,0l43.58-77.32c1.65-2.97,1.65-6.61-.33-9.58Z'/%3e%3c/svg%3e",ur="data:image/svg+xml,%3csvg%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xmlns='http://www.w3.org/2000/svg'%20id='Layer_1'%20data-name='Layer%201'%20viewBox='0%200%20224.09%20161.1'%20width='224.09'%20height='161.1'%3e%3cdefs%3e%3cstyle%3e%20.cls-1,%20.cls-2%20{%20fill:%20%23fff;%20stroke-width:%200px;%20}%20.cls-2%20{%20fill-rule:%20evenodd;%20}%20%3c/style%3e%3c/defs%3e%3cpath%20class='cls-2'%20d='M92.1,112.3h-27.07c-1.65,0-3.3-.99-4.29-2.64l-12.55-22.47c-.66-1.65-.66-3.3,0-4.62l12.55-22.47c.99-1.65,2.64-2.64,4.29-2.64h15.52c1.65,0,3.3-.99,4.29-2.64l11.23-20.16c.99-1.65-.33-3.63-1.98-3.63h-41.6c-3.63,0-6.6,1.98-8.58,4.96l-24.76,44.28c-1.65,2.97-1.65,6.61,0,9.58l24.76,43.94c1.65,2.97,4.95,4.96,8.58,4.96h53.15c1.98,0,2.97-1.98,1.98-3.64l-11.55-20.49c-.33-1.65-1.98-2.31-3.96-2.31Z'%3e%3c/path%3e%3cpath%20class='cls-1'%20d='M165.4,50.51l-10.57-17.84c-.99-1.65-3.3-1.65-4.29,0l-44.57,79.3c-.66,1.65-.66,3.3,0,4.63l11.55,20.82c.99,1.65,3.3,1.65,4.29,0l43.58-77.32c1.65-2.97,1.65-6.61,0-9.58Z'%3e%3c/path%3e%3cpath%20class='cls-2'%20d='M111.58,86.86l13.21-23.46c.66-1.32.66-3.3,0-4.96l-15.19-26.1c-.99-1.65-3.3-1.65-4.29,0l-12.88,22.8c-.66,1.32-.66,3.3,0,4.63l14.86,26.76c.99,1.98,3.63,1.98,4.29.33Z'%3e%3c/path%3e%3cpath%20class='cls-1'%20d='M204.35,50.51l-10.57-17.84c-.99-1.65-3.3-1.65-4.29,0l-44.57,79.3c-.66,1.65-.66,3.3,0,4.63l11.89,20.82c.99,1.65,3.3,1.65,4.29,0l43.58-77.32c1.65-2.97,1.65-6.61-.33-9.58Z'%3e%3c/path%3e%3c/svg%3e",br="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='standard_product_icon'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%20viewBox='0%200%20512%20512'%3e%3c!--%20Generator:%20Adobe%20Illustrator%2029.1.0,%20SVG%20Export%20Plug-In%20.%20SVG%20Version:%202.1.0%20Build%20142)%20--%3e%3cdefs%3e%3cstyle%3e%20.st0%20{%20fill:%20none;%20}%20.st1%20{%20fill:%20%234285f4;%20}%20.st2%20{%20fill:%20%2334a853;%20}%20.st3%20{%20fill:%20%23fbbc04;%20}%20.st4%20{%20fill:%20%23ea4335;%20}%20%3c/style%3e%3c/defs%3e%3cg%20id='bounding_box'%3e%3crect%20class='st0'%20width='512'%20height='512'/%3e%3c/g%3e%3cg%20id='art'%3e%3cpath%20class='st2'%20d='M442,277.9H70c-8.8,0-16,7.2-16,16v148.1c0,8.8,7.2,16,16,16h107.2c1.5.5,3.1.7,4.8.7s3.3-.3,4.8-.7h255.2c8.8,0,16-7.2,16-16v-148.1c0-8.8-7.2-16-16-16ZM86,309.9h80v116.1h-80v-116.1ZM426,425.9h-228v-116.1h228v116.1Z'/%3e%3cpath%20class='st3'%20d='M442,54H70c-8.8,0-16,7.2-16,16v148.8c0,8.8,7.2,16,16,16h372c8.8,0,16-7.2,16-16V70c0-8.8-7.2-16-16-16ZM86,86h80v116.8h-80v-116.8ZM426,202.8h-228v-116.8h228v116.8Z'/%3e%3cpath%20class='st4'%20d='M442,234.8h-16V86H54v-16c0-8.8,7.2-16,16-16h372c8.8,0,16,7.2,16,16v148.8c0,8.8-7.2,16-16,16Z'/%3e%3cpath%20class='st1'%20d='M442,457.9h-16v-148.1H54v-16c0-8.8,7.2-16,16-16h372c8.8,0,16,7.2,16,16v148.1c0,8.8-7.2,16-16,16Z'/%3e%3ccircle%20class='st4'%20cx='349'%20cy='144.4'%20r='37'/%3e%3ccircle%20class='st1'%20cx='349'%20cy='367.9'%20r='37'/%3e%3c/g%3e%3c/svg%3e",fr="data:image/svg+xml,%3csvg%20viewBox='0%200%2087.3%2078'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='m6.6%2066.85%203.85%206.65c.8%201.4%201.95%202.5%203.3%203.3l13.75-23.8h-27.5c0%201.55.4%203.1%201.2%204.5z'%20fill='%230066da'/%3e%3cpath%20d='m43.65%2025-13.75-23.8c-1.35.8-2.5%201.9-3.3%203.3l-25.4%2044a9.06%209.06%200%200%200%20-1.2%204.5h27.5z'%20fill='%2300ac47'/%3e%3cpath%20d='m73.55%2076.8c1.35-.8%202.5-1.9%203.3-3.3l1.6-2.75%207.65-13.25c.8-1.4%201.2-2.95%201.2-4.5h-27.502l5.852%2011.5z'%20fill='%23ea4335'/%3e%3cpath%20d='m43.65%2025%2013.75-23.8c-1.35-.8-2.9-1.2-4.5-1.2h-18.5c-1.6%200-3.15.45-4.5%201.2z'%20fill='%2300832d'/%3e%3cpath%20d='m59.8%2053h-32.3l-13.75%2023.8c1.35.8%202.9%201.2%204.5%201.2h50.8c1.6%200%203.15-.45%204.5-1.2z'%20fill='%232684fc'/%3e%3cpath%20d='m73.4%2026.5-12.7-22c-.8-1.4-1.95-2.5-3.3-3.3l-13.75%2023.8%2016.15%2028h27.45c0-1.55-.4-3.1-1.2-4.5z'%20fill='%23ffba00'/%3e%3c/svg%3e",gr=M(),yr={s3:{src:gs,dark:pr},coreweave:{src:mr,dark:ur},cloudflare:{src:hr},azure:{src:ys},gcs:{src:br},http:Wt,file:ve,"in-memory":Kt,gdrive:{src:fr},github:Ss};const at=t=>{let e=(0,gr.c)(11),{protocol:s,forceDark:n,className:r}=t,{theme:l}=ss(),i=yr[s.toLowerCase()]??ve;if("src"in i){let h=i.src;i.dark&&(n||l==="dark")&&(h=i.dark);let f=h,m;e[0]===r?m=e[1]:(m=ce("h-3.5 w-3.5",r),e[0]=r,e[1]=m);let b;return e[2]!==s||e[3]!==h||e[4]!==m?(b=(0,o.jsx)("img",{src:f,alt:s,className:m}),e[2]=s,e[3]=h,e[4]=m,e[5]=b):b=e[5],b}let a=i,d;e[6]===r?d=e[7]:(d=ce("h-3.5 w-3.5",r),e[6]=r,e[7]=d);let p;return e[8]!==a||e[9]!==d?(p=(0,o.jsx)(a,{className:d}),e[8]=a,e[9]=d,e[10]=p):p=e[10],p};var ct=()=>ne("type",[_({type:w("Access keys"),access_key_id:u().optional().describe(c.of({label:"Access Key ID",description:"Leave empty to use the default credential chain",inputType:"password",optionRegex:"(access.?key.?id|object.?storage.?key|aws.?access.?key)"})),secret_access_key:u().optional().describe(c.of({label:"Secret Access Key",inputType:"password",optionRegex:"(secret.?access.?key|object.?storage.?secret|aws.?secret)"}))}),_({type:w("Container credentials"),container_credentials_full_uri:u().nonempty().describe(c.of({label:"Credentials URI",description:"Endpoint that vends credentials to the container",placeholder:"http://169.254.170.23/v1/credentials",optionRegex:"container.?credentials"})),container_authorization_token_file:u().nonempty().describe(c.of({label:"Authorization Token File",description:"File holding the token sent to the credentials URI",placeholder:"/var/run/secrets/token",optionRegex:"(container.?authorization.?token.?file|container.?auth.?token)"}))})]).default({type:"Access keys"}).describe(c.of({label:"Credentials",special:"tabs"}));const it=_({type:w("s3"),bucket:u().nonempty().describe(c.of({label:"Bucket",placeholder:"my-bucket",optionRegex:"(bucket|s3.?bucket)"})),region:u().optional().describe(c.of({label:"Region",placeholder:"us-east-1",optionRegex:"(region|aws.?region)"})),endpoint_url:u().optional().describe(c.of({label:"Endpoint URL",description:"Ignored if the AWS_ENDPOINT_URL_S3 environment variable is set",placeholder:"https://s3.amazonaws.com",optionRegex:"(endpoint|s3.?url|s3.?endpoint)"})),allow_http:P().default(!1).describe(c.of({label:"Allow HTTP",description:"Required for plain-http (non-TLS) endpoints"})),auth:ct()}).describe(c.of({direction:"two-columns"})),lt=_({type:w("gcs"),bucket:u().nonempty().describe(c.of({label:"Bucket",placeholder:"my-bucket",optionRegex:"(bucket|gcs.?bucket|google.?bucket)"})),service_account_key:u().optional().describe(c.of({label:"Service Account Key (JSON)",inputType:"textarea"}))}).describe(c.of({direction:"two-columns"})),dt=_({type:w("azure"),container:u().nonempty().describe(c.of({label:"Container",placeholder:"my-container"})),account_name:u().nonempty().describe(c.of({label:"Account Name",placeholder:"storageaccount",optionRegex:"(azure.?account|account.?name|storage.?account)"})),account_key:u().optional().describe(c.of({label:"Account Key",inputType:"password",optionRegex:"(azure.?key|account.?key|storage.?key)"}))}).describe(c.of({direction:"two-columns"})),pt=_({type:w("coreweave"),bucket:u().nonempty().describe(c.of({label:"Bucket",placeholder:"bucket-name"})),region:u().nonempty().describe(c.of({label:"Region",placeholder:"US-EAST-04A"})),auth:ct()}).describe(c.of({direction:"two-columns"})),ht=_({type:w("gdrive"),credentials_json:u().optional().describe(c.of({label:"Service Account JSON",description:"Leave empty to use browser-based authentication",inputType:"textarea"}))}).describe(c.of({direction:"two-columns"})),_r=ne("type",[it,lt,dt,pt,ht]),wr={obstore:"obstore",fsspec:"fsspec"};var xr=class{constructor(){ue(this,"secrets",{})}get imports(){return Object.keys(this.secrets).length===0?new Set:new Set(["import os"])}print(t,e){if(e===void 0||e==="")return"";let s=`_${t}`;if(U(e)){let n=Pe(e);return this.secrets[s]=`os.environ.get("${n}")`,s}return`"${e}"`}formatSecrets(){return Object.keys(this.secrets).length===0?"":Object.entries(this.secrets).map(([t,e])=>`${t} = ${e}`).join(`
141
+ `)}};function mt(t,e){if((t==null?void 0:t.type)==="Container credentials")return[` container_credentials_full_uri=${e.print("container_credentials_full_uri",t.container_credentials_full_uri)},`,` container_authorization_token_file=${e.print("container_authorization_token_file",t.container_authorization_token_file)},`];let s=[];return t!=null&&t.access_key_id&&s.push(` access_key_id=${e.print("access_key_id",t.access_key_id)},`),t!=null&&t.secret_access_key&&s.push(` secret_access_key=${e.print("secret_access_key",t.secret_access_key)},`),s}function Sr(t,e){let s=e.print("bucket",t.bucket),n=new Set(["from obstore.store import S3Store"]),r=[];return t.region&&r.push(` region=${e.print("region",t.region)},`),r.push(...mt(t.auth,e)),t.endpoint_url&&r.push(` endpoint_url=${e.print("endpoint_url",t.endpoint_url)},`),t.allow_http&&r.push(" allow_http=True,"),{imports:n,code:y(`
142
+ store = S3Store(${s},${r.length>0?`
143
+ ${r.join(`
144
+ `)}
145
+ `:""})
146
+ `)}}function kr(t,e){let s=e.print("bucket",t.bucket),n=new Set(["from obstore.store import GCSStore"]),r;return t.service_account_key?(n.add("import json"),r=y(`
147
+ _credentials = json.loads("""${t.service_account_key}""")
148
+ store = GCSStore(${s},
149
+ service_account_key=_credentials,
150
+ )
151
+ `)):r=y(`
152
+ store = GCSStore(${s})
153
+ `),{imports:n,code:r}}function vr(t,e){let s=e.print("container",t.container),n=e.print("account_name",t.account_name),r=new Set(["from obstore.store import AzureStore"]),l=[`account_name=${n},`];return t.account_key&&l.push(`account_key=${e.print("account_key",t.account_key)},`),{imports:r,code:`store = AzureStore(${s},
154
+ ${l.map(i=>` ${i}`).join(`
155
+ `)}
156
+ )`}}function $r(t,e){let s=e.print("bucket",t.bucket),n=new Set(["from obstore.store import S3Store"]),r=[` region=${e.print("region",t.region)},`];return r.push(...mt(t.auth,e)),r.push(` endpoint="https://${t.bucket}.cwobject.com",`," virtual_hosted_style_request=True,"),{imports:n,code:y(`
157
+ store = S3Store(${s},${`
158
+ ${r.join(`
159
+ `)}
160
+ `})
161
+ `)}}function jr(t,e){var l;let{secrets:s,isEmbedded:n=!1}=e,r=new Set(["from gdrive_fsspec import GoogleDriveFileSystem"]);if(t.credentials_json){r.add("import json");let i=s.print("credentials_json",t.credentials_json);return{imports:r,code:y(`
162
+ _creds = json.loads("""${(l=t.credentials_json)!=null&&l.startsWith("ENV:")?`{${i}}`:t.credentials_json}""")
163
+ fs = GoogleDriveFileSystem(creds=_creds, token="service_account", use_listings_cache=False, skip_instance_cache=True)
164
+ `)}}return{imports:r,code:y(n?`
165
+ fs = GoogleDriveFileSystem(use_listings_cache=False, skip_instance_cache=True, auth_kwargs={"use_local_webserver": False})
166
+ mo.output.clear_console()
167
+ `:`
168
+ fs = GoogleDriveFileSystem(use_listings_cache=False, skip_instance_cache=True)
169
+ `)}}function Cr(t,e){_r.parse(t);let s=new xr,n;switch(t.type){case"s3":n=Sr(t,s);break;case"gcs":n=kr(t,s);break;case"azure":n=vr(t,s);break;case"coreweave":n=$r(t,s);break;case"gdrive":n=jr(t,{secrets:s,isEmbedded:e.isEmbedded});break;default:ie(t)}let r=[...new Set([...s.imports,...n.imports])].toSorted();r.push("");let l=s.formatSecrets();return l&&r.push(l),r.push(n.code.trim()),r.join(`
170
+ `)}var ut=M(),Ar="#232F3E",bt=[{name:"Amazon S3",schema:it,protocol:"s3",storageLibraries:{libraries:["obstore"],preferred:"obstore"}},{name:"Google Cloud Storage",schema:lt,protocol:"gcs",storageLibraries:{libraries:["obstore"],preferred:"obstore"}},{name:"Azure Blob Storage",schema:dt,protocol:"azure",storageLibraries:{libraries:["obstore"],preferred:"obstore"}},{name:"CoreWeave",schema:pt,protocol:"coreweave",storageLibraries:{libraries:["obstore"],preferred:"obstore"}},{name:"Google Drive",schema:ht,protocol:"gdrive",storageLibraries:{libraries:["fsspec"],preferred:"fsspec"}}],Rr=t=>{let e=(0,ut.c)(4),{onSelect:s}=t,n;e[0]===s?n=e[1]:(n=bt.map(l=>{let{name:i,schema:a,protocol:d}=l;return(0,o.jsx)(Ce,{name:i,color:Ar,icon:(0,o.jsx)(at,{protocol:d,forceDark:!0,className:"w-7.5 h-7.5"}),onSelect:()=>s(a)},i)}),e[0]=s,e[1]=n);let r;return e[2]===n?r=e[3]:(r=(0,o.jsx)(je,{children:n}),e[2]=n,e[3]=r),r};const Tr=t=>{let e=(0,ut.c)(16),{onSubmit:s,header:n}=t,{isEmbedded:r}=ds(),[l,i]=(0,F.useState)(null);if(!l){let g;e[0]===Symbol.for("react.memo_cache_sentinel")?(g=(0,o.jsx)("div",{children:(0,o.jsx)(Rr,{onSelect:i})}),e[0]=g):g=e[0];let x;return e[1]===n?x=e[2]:(x=(0,o.jsxs)(o.Fragment,{children:[n,g]}),e[1]=n,e[2]=x),x}let a;e[3]===l?a=e[4]:(a=bt.find(g=>g.schema===l),e[3]=l,e[4]=a);let d=a==null?void 0:a.storageLibraries,p;e[5]===(d==null?void 0:d.libraries)?p=e[6]:(p=(d==null?void 0:d.libraries)??[],e[5]=d==null?void 0:d.libraries,e[6]=p);let h=(d==null?void 0:d.preferred)??"obstore",f;e[7]===r?f=e[8]:(f=(g,x)=>Cr(g,{library:x,isEmbedded:r}),e[7]=r,e[8]=f);let m;e[9]===Symbol.for("react.memo_cache_sentinel")?(m=()=>i(null),e[9]=m):m=e[9];let b;return e[10]!==s||e[11]!==l||e[12]!==p||e[13]!==h||e[14]!==f?(b=(0,o.jsx)(Ee,{schema:l,libraries:p,preferredLibrary:h,displayNames:wr,libraryLabel:"Preferred storage library",generateCode:f,onSubmit:s,onBack:m}),e[10]=s,e[11]=l,e[12]=p,e[13]=h,e[14]=f,e[15]=b):b=e[15],b};var ft=M();const Lr=t=>{let e=(0,ft.c)(9),{children:s,defaultTab:n}=t,r=n===void 0?"databases":n,[l,i]=(0,F.useState)(!1),a;e[0]===s?a=e[1]:(a=(0,o.jsx)(os,{asChild:!0,children:s}),e[0]=s,e[1]=a);let d;e[2]===Symbol.for("react.memo_cache_sentinel")?(d=()=>i(!1),e[2]=d):d=e[2];let p;e[3]===r?p=e[4]:(p=(0,o.jsx)(gt,{defaultTab:r,onClose:d}),e[3]=r,e[4]=p);let h;return e[5]!==l||e[6]!==a||e[7]!==p?(h=(0,o.jsxs)(is,{open:l,onOpenChange:i,children:[a,p]}),e[5]=l,e[6]=a,e[7]=p,e[8]=h):h=e[8],h},gt=t=>{let e=(0,ft.c)(20),{defaultTab:s,onClose:n}=t,[r,l]=(0,F.useState)(s===void 0?"databases":s),i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=(0,o.jsxs)(Lt,{className:"w-full mb-4",children:[(0,o.jsx)(Le,{value:"databases",className:"flex-1",children:"Databases & Catalogs"}),(0,o.jsx)(Le,{value:"storage",className:"flex-1",children:"Remote Storages"})]}),e[0]=i):i=e[0];let a=i,d;e[1]===r?d=e[2]:(d=r==="databases"?(0,o.jsxs)(o.Fragment,{children:["Don't see your database or connection method? A"," ",(0,o.jsx)(be,{href:"https://docs.marimo.io/guides/working_with_data/sql/#connecting-to-a-custom-database",children:"code snippet"})," ","is all you need."]}):(0,o.jsxs)(o.Fragment,{children:["Don't see your storage or connection method? A"," ",(0,o.jsx)(be,{href:"https://docs.marimo.io/guides/working_with_data/remote_storage/#creating-a-storage-connection",children:"code snippet"})," ","is all you need."]}),e[1]=r,e[2]=d);let p=d,h;e[3]===Symbol.for("react.memo_cache_sentinel")?(h=(0,o.jsx)(ns,{children:"Add Connection"}),e[3]=h):h=e[3];let f;e[4]===Symbol.for("react.memo_cache_sentinel")?(f=(0,o.jsx)(be,{href:"https://docs.marimo.io/guides/working_with_data/sql/#connecting-to-a-custom-database",children:"database, data catalog"}),e[4]=f):f=e[4];let m;e[5]===Symbol.for("react.memo_cache_sentinel")?(m=(0,o.jsx)(be,{href:"https://docs.marimo.io/guides/working_with_data/remote_storage/",children:"remote storage"}),e[5]=m):m=e[5];let b;e[6]===p?b=e[7]:(b=(0,o.jsxs)(rs,{children:[h,(0,o.jsxs)(cs,{children:["Connect to a"," ",f," ","or"," ",m," ","directly from your notebook.",(0,o.jsx)("span",{className:"block",children:p})]})]}),e[6]=p,e[7]=b);let g;e[8]===Symbol.for("react.memo_cache_sentinel")?(g=R=>l(R),e[8]=g):g=e[8];let x;e[9]===n?x=e[10]:(x=(0,o.jsx)(Ne,{value:"databases",className:"mt-0 focus-visible:ring-0 focus-visible:ring-offset-0",children:(0,o.jsx)(lr,{onSubmit:n,header:a})}),e[9]=n,e[10]=x);let S;e[11]===n?S=e[12]:(S=(0,o.jsx)(Ne,{value:"storage",className:"mt-0 focus-visible:ring-0 focus-visible:ring-offset-0",children:(0,o.jsx)(Tr,{onSubmit:n,header:a})}),e[11]=n,e[12]=S);let k;e[13]!==r||e[14]!==S||e[15]!==x?(k=(0,o.jsxs)(At,{value:r,onValueChange:g,children:[x,S]}),e[13]=r,e[14]=S,e[15]=x,e[16]=k):k=e[16];let v;return e[17]!==k||e[18]!==b?(v=(0,o.jsxs)(as,{className:"max-h-[75vh] overflow-y-auto",children:[b,k]}),e[17]=k,e[18]=b,e[19]=v):v=e[19],v};export{ve as i,gt as n,at as r,Lr as t};