@marimo-team/frontend 0.19.3-dev4 → 0.19.3-dev42

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 (179) hide show
  1. package/dist/assets/{CellStatus-Ba6Af_Tb.js → CellStatus-b7Yo2X9j.js} +1 -1
  2. package/dist/assets/{ConnectedDataExplorerComponent-KlUs_Sz3.js → ConnectedDataExplorerComponent-Cr6-n9Em.js} +1 -1
  3. package/dist/assets/{ErrorBoundary-Drf1manw.js → ErrorBoundary-C7JBxSzd.js} +1 -1
  4. package/dist/assets/{ImperativeModal-q6QlC2aZ.js → ImperativeModal-DVhvP4lH.js} +1 -1
  5. package/dist/assets/{JsonOutput-4ruRfyOj.js → JsonOutput-C8Eo1zBR.js} +5 -5
  6. package/dist/assets/{LazyAnyLanguageCodeMirror-jpEDlD0M.js → LazyAnyLanguageCodeMirror-Cp2punaU.js} +2 -2
  7. package/dist/assets/{MarimoErrorOutput-DnjH3pD8.js → MarimoErrorOutput-CXBGzjO2.js} +2 -2
  8. package/dist/assets/{RenderHTML-DaJXe2U2.js → RenderHTML-SoetmcW2.js} +1 -1
  9. package/dist/assets/VisuallyHidden-B9t3FhTP.js +1 -0
  10. package/dist/assets/{add-cell-with-ai-Bsds_6SU.js → add-cell-with-ai-D2qS3Nos.js} +21 -21
  11. package/dist/assets/{add-database-form-CqIp3_WN.js → add-database-form-BBkiGMZ_.js} +2 -2
  12. package/dist/assets/agent-panel-BzV4XUTo.js +287 -0
  13. package/dist/assets/{ai-model-dropdown-LK8Wr5iu.js → ai-model-dropdown-CrMTCgo7.js} +1 -1
  14. package/dist/assets/{alert-dialog-k5KxevGr.js → alert-dialog-jcHA5geR.js} +1 -1
  15. package/dist/assets/{any-language-editor-DQu1Tt2N.js → any-language-editor-Cm83E7D_.js} +1 -1
  16. package/dist/assets/{app-config-button-BaVc4Y5z.js → app-config-button-9izWmQ0X.js} +1 -1
  17. package/dist/assets/button-B8cGZzP5.js +1 -0
  18. package/dist/assets/{cache-panel-C1So4Zu3.js → cache-panel-1FqnpB9y.js} +1 -1
  19. package/dist/assets/cell-editor-Do6lWWk9.js +23 -0
  20. package/dist/assets/cell-link-BP7_Ns0N.js +1 -0
  21. package/dist/assets/{cells-KYKWFk6C.js → cells-Cv9PtwL9.js} +49 -49
  22. package/dist/assets/{chat-components-O6DUIpBx.js → chat-components-Be6BPrbT.js} +1 -1
  23. package/dist/assets/{chat-display-DD3KokYi.js → chat-display-BRKfnhbm.js} +1 -1
  24. package/dist/assets/{chat-panel-D4DIcOM1.js → chat-panel-71zcilvi.js} +2 -2
  25. package/dist/assets/client-CGOlSEYr.js +4 -0
  26. package/dist/assets/{column-preview-EpCGr4Xp.js → column-preview-MC6VOHbd.js} +1 -1
  27. package/dist/assets/{command-Dqe0kvHp.js → command-n_oMaKjl.js} +1 -1
  28. package/dist/assets/{command-palette-DWacsFDk.js → command-palette-DfZNcw7W.js} +1 -1
  29. package/dist/assets/common-MUZIZluQ.js +1 -0
  30. package/dist/assets/config-DFDEcYvy.js +1 -0
  31. package/dist/assets/context-DHfVoQfl.js +1 -0
  32. package/dist/assets/{copy-icon-B69c-352.js → copy-icon-jWsqdLn1.js} +1 -1
  33. package/dist/assets/{datasource-JeWYnuIr.js → datasource-CEsMStKs.js} +2 -2
  34. package/dist/assets/{dependency-graph-panel-BJibnwCO.js → dependency-graph-panel-CNTGbfLZ.js} +4 -4
  35. package/dist/assets/{dialog-DUEuLcT2.js → dialog-CF5DtF1E.js} +1 -1
  36. package/dist/assets/{dist-DOFFh6Ii.js → dist-Dg7UO_Vw.js} +1 -1
  37. package/dist/assets/{documentation-panel-B2W3q2YB.js → documentation-panel-Cb9AHO2C.js} +1 -1
  38. package/dist/assets/{download-NfnO_JCs.js → download-24bI2vH0.js} +1 -1
  39. package/dist/assets/edit-page-DSuXLdcn.js +12 -0
  40. package/dist/assets/{error-banner-DU5Qb8a8.js → error-banner-DvT0IGDZ.js} +1 -1
  41. package/dist/assets/{error-panel-Bv-7GYgJ.js → error-panel-CpYH0GfR.js} +1 -1
  42. package/dist/assets/{es-KtEicG7U.js → es-BITbuY9w.js} +1 -1
  43. package/dist/assets/{field-DDKGFzpC.js → field-Clr_fqUr.js} +1 -1
  44. package/dist/assets/{file-explorer-panel-CToUezud.js → file-explorer-panel-CdA81LHh.js} +1 -1
  45. package/dist/assets/{floating-outline-Db40vhG8.js → floating-outline-BbJ4ldyu.js} +1 -1
  46. package/dist/assets/{focus-BCdX47jS.js → focus-D1y1tXyC.js} +1 -1
  47. package/dist/assets/{form-DwtJQd_Z.js → form-BAtvsPJL.js} +2 -2
  48. package/dist/assets/{glide-data-editor-D_bRnWfy.js → glide-data-editor-Dv8ZW9dk.js} +1 -1
  49. package/dist/assets/{globals-MS86g8oR.js → globals-C6OH39EA.js} +1 -1
  50. package/dist/assets/{home-page-BfVf41OG.js → home-page-B_YprqxM.js} +2 -2
  51. package/dist/assets/house-CncUa_LL.js +1 -0
  52. package/dist/assets/index-C30GhE0W.css +2 -0
  53. package/dist/assets/index-DoE3JZXY.js +43 -0
  54. package/dist/assets/input-B80Yt1uu.js +1 -0
  55. package/dist/assets/{kiosk-mode-CEhvsEr0.js → kiosk-mode-DfyjlR7p.js} +1 -1
  56. package/dist/assets/{label-qwandMoh.js → label-CNZLffHW.js} +1 -1
  57. package/dist/assets/{layout-Cvaok8Kj.js → layout-9uQoV-6h.js} +4 -4
  58. package/dist/assets/links-DbDrjRnm.js +1 -0
  59. package/dist/assets/{logs-panel-J2FKnKaj.js → logs-panel-svcirwjp.js} +1 -1
  60. package/dist/assets/{markdown-renderer-BlG9DgUG.js → markdown-renderer-DlVqlHOL.js} +2 -2
  61. package/dist/assets/mode-PeuS_Lp-.js +1 -0
  62. package/dist/assets/{multi-map-fjX9ImVF.js → multi-map-CQd4MZr5.js} +1 -1
  63. package/dist/assets/name-cell-input-YMoA0SQj.js +1 -0
  64. package/dist/assets/{outline-panel-Doj3GJrQ.js → outline-panel-RKJ5Mqrt.js} +1 -1
  65. package/dist/assets/{packages-panel-nqWXQzKf.js → packages-panel-BuiAGEBw.js} +1 -1
  66. package/dist/assets/panels-BKsZUDjc.js +1 -0
  67. package/dist/assets/{process-output-DiSW8Nbo.js → process-output-KJWsSvCT.js} +1 -1
  68. package/dist/assets/{readonly-python-code-CKY5LsMp.js → readonly-python-code-HPlG_YPX.js} +1 -1
  69. package/dist/assets/run-page-CBDzVDX3.js +1 -0
  70. package/dist/assets/scratchpad-panel-CarbQVYs.js +1 -0
  71. package/dist/assets/{secrets-panel-CDWmmmBS.js → secrets-panel-BMY6PPth.js} +1 -1
  72. package/dist/assets/{select-D0g5GnIs.js → select-D9lTzMzP.js} +1 -1
  73. package/dist/assets/{session-panel-CGFRSBw9.js → session-panel-Cv14Ehfm.js} +1 -1
  74. package/dist/assets/{slides-component-MkPkpql1.js → slides-component-Dp0Yv5b0.js} +1 -1
  75. package/dist/assets/{snippets-panel-ClHeSpc5.js → snippets-panel-OAdQXQ93.js} +1 -1
  76. package/dist/assets/state-DYG6kYly.js +1 -0
  77. package/dist/assets/state-xh6GqNrp.js +1 -0
  78. package/dist/assets/{switch-BmbGJWHc.js → switch-DPeh0R76.js} +1 -1
  79. package/dist/assets/{terminal-BvgBa6Ri.js → terminal-BbAhzgnR.js} +1 -1
  80. package/dist/assets/{textarea-WklymBeK.js → textarea-wbzgrXvB.js} +1 -1
  81. package/dist/assets/{tracing-D0WYhZdr.js → tracing-Bh3EJxAS.js} +1 -1
  82. package/dist/assets/{tracing-panel-CNxN58z7.js → tracing-panel-BzSQ7qvB.js} +2 -2
  83. package/dist/assets/{types-BrgXpvGt.js → types-B8Qb1FfB.js} +1 -1
  84. package/dist/assets/{useAddCell-a9qZ0_KE.js → useAddCell-DBGvrN8K.js} +1 -1
  85. package/dist/assets/{useBoolean-5kuXz69O.js → useBoolean-CyOFPk5r.js} +1 -1
  86. package/dist/assets/{useCellActionButton-9W_R41MM.js → useCellActionButton-BlS_HKk-.js} +1 -1
  87. package/dist/assets/{useDateFormatter-CV0QXb5P.js → useDateFormatter-DsANziQR.js} +1 -1
  88. package/dist/assets/useDeleteCell-BvQIJfpI.js +1 -0
  89. package/dist/assets/{useDependencyPanelTab-0reaqvvh.js → useDependencyPanelTab-BqEhbPr2.js} +1 -1
  90. package/dist/assets/useInterval-BGPIviJp.js +1 -0
  91. package/dist/assets/useNotebookActions-D1Woz3AV.js +1 -0
  92. package/dist/assets/{useNumberFormatter-D8ks3oPN.js → useNumberFormatter-FoXhpyAb.js} +1 -1
  93. package/dist/assets/usePress-DTwIUo40.js +7 -0
  94. package/dist/assets/useRunCells-B9Xr4tcH.js +1 -0
  95. package/dist/assets/useSplitCell-7xBW3b8-.js +1 -0
  96. package/dist/assets/utilities.esm-xahhGpny.js +3 -0
  97. package/dist/assets/{vega-component-DpAAiTdH.js → vega-component-dUiiVmIx.js} +1 -1
  98. package/dist/assets/{write-secret-modal-CLm48gMe.js → write-secret-modal-hOetwavI.js} +1 -1
  99. package/dist/index.html +54 -54
  100. package/package.json +5 -5
  101. package/src/__mocks__/requests.ts +1 -0
  102. package/src/__tests__/mount.test.ts +128 -0
  103. package/src/components/app-config/__tests__/get-dirty-values.test.ts +1 -1
  104. package/src/components/app-config/user-config-form.tsx +1 -1
  105. package/src/components/chat/acp/agent-panel.tsx +56 -43
  106. package/src/components/chat/chat-utils.ts +0 -19
  107. package/src/components/data-table/column-header.tsx +1 -1
  108. package/src/components/editor/KernelStartupErrorModal.tsx +101 -0
  109. package/src/components/editor/actions/name-cell-input.tsx +10 -4
  110. package/src/components/editor/ai/completion-handlers.tsx +1 -1
  111. package/src/components/editor/alerts/connecting-alert.tsx +33 -6
  112. package/src/components/editor/chrome/types.ts +2 -4
  113. package/src/components/editor/chrome/wrapper/app-chrome.tsx +55 -58
  114. package/src/components/editor/chrome/wrapper/footer-items/runtime-settings.tsx +150 -96
  115. package/src/components/editor/renderers/vertical-layout/__tests__/useFocusFirstEditor.test.ts +27 -0
  116. package/src/components/editor/renderers/vertical-layout/useFocusFirstEditor.ts +6 -0
  117. package/src/components/utils/lazy-mount.tsx +29 -8
  118. package/src/core/MarimoApp.tsx +2 -0
  119. package/src/core/cells/cells.ts +2 -0
  120. package/src/core/cells/scrollCellIntoView.ts +3 -2
  121. package/src/core/codemirror/cm.ts +2 -0
  122. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +123 -0
  123. package/src/core/codemirror/lsp/notebook-lsp.ts +44 -4
  124. package/src/core/codemirror/misc/__tests__/string-braces.test.ts +200 -0
  125. package/src/core/codemirror/misc/string-braces.ts +37 -0
  126. package/src/core/errors/state.ts +7 -1
  127. package/src/core/export/__tests__/hooks.test.ts +504 -0
  128. package/src/core/export/hooks.ts +93 -4
  129. package/src/core/islands/bridge.ts +1 -0
  130. package/src/core/islands/main.ts +2 -0
  131. package/src/core/kernel/__tests__/handlers.test.ts +2 -2
  132. package/src/core/kernel/state.ts +1 -0
  133. package/src/core/network/__tests__/requests-lazy.test.ts +1 -1
  134. package/src/core/network/__tests__/requests-network.test.ts +0 -18
  135. package/src/core/network/requests-lazy.ts +3 -2
  136. package/src/core/network/requests-network.ts +10 -7
  137. package/src/core/network/requests-static.ts +1 -0
  138. package/src/core/network/requests-toasting.tsx +1 -0
  139. package/src/core/network/types.ts +2 -0
  140. package/src/core/wasm/bridge.ts +1 -0
  141. package/src/core/websocket/types.ts +1 -0
  142. package/src/core/websocket/useMarimoKernelConnection.tsx +18 -1
  143. package/src/css/globals.css +2 -0
  144. package/src/hooks/__tests__/useInterval.test.tsx +104 -0
  145. package/src/hooks/useInterval.ts +32 -6
  146. package/src/mount.tsx +6 -0
  147. package/src/plugins/impl/chat/chat-ui.tsx +16 -4
  148. package/src/plugins/impl/chat/types.ts +5 -12
  149. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +3 -1
  150. package/src/utils/events.ts +1 -0
  151. package/dist/assets/VisuallyHidden-BodIky8L.js +0 -1
  152. package/dist/assets/agent-panel-CaAPVPdJ.js +0 -287
  153. package/dist/assets/button-DuYGqRtX.js +0 -1
  154. package/dist/assets/cell-editor-OFm-OSAP.js +0 -23
  155. package/dist/assets/cell-link-CfLJRl3p.js +0 -1
  156. package/dist/assets/client-Cha_JfGC.js +0 -4
  157. package/dist/assets/common-A6YWtmpq.js +0 -1
  158. package/dist/assets/config-babG4OBR.js +0 -1
  159. package/dist/assets/context-BAYdLMF_.js +0 -1
  160. package/dist/assets/edit-page-nuU4FVXi.js +0 -12
  161. package/dist/assets/globe-CY9im410.js +0 -1
  162. package/dist/assets/index-BI88xbv4.js +0 -43
  163. package/dist/assets/index-Chgc_07S.css +0 -2
  164. package/dist/assets/input-CaEtLL8p.js +0 -1
  165. package/dist/assets/links-ENMiP32L.js +0 -1
  166. package/dist/assets/mode-CK5Oq-Jz.js +0 -1
  167. package/dist/assets/name-cell-input-D7axzd6k.js +0 -1
  168. package/dist/assets/panels-CdYbZBqo.js +0 -1
  169. package/dist/assets/run-page-GP8eGE39.js +0 -1
  170. package/dist/assets/scratchpad-panel-B1p8zqAE.js +0 -1
  171. package/dist/assets/state-BBgXjqJI.js +0 -1
  172. package/dist/assets/state-CP7_TGWl.js +0 -1
  173. package/dist/assets/useDeleteCell-5kJUaejE.js +0 -1
  174. package/dist/assets/useInterval-DpipYmgs.js +0 -1
  175. package/dist/assets/useNotebookActions-o341ZCMJ.js +0 -1
  176. package/dist/assets/usePress-C2LPFxyv.js +0 -7
  177. package/dist/assets/useRunCells-wXhl9zOP.js +0 -1
  178. package/dist/assets/useSplitCell-mmm5jxn2.js +0 -1
  179. package/dist/assets/utilities.esm-Ckt5kMF-.js +0 -3
@@ -1,4 +1,4 @@
1
- var Ue=Object.defineProperty;var Ke=(t,e,s)=>e in t?Ue(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var ne=(t,e,s)=>Ke(t,typeof e!="symbol"?e+"":e,s);import{s as me}from"./chunk-LvLJmgfZ.js";import{t as We}from"./react-BGmjiNul.js";import{C as He,dt as Me,yn as h}from"./cells-KYKWFk6C.js";import{D as oe,P as p,R as d,T as v,_ as ue,i as Qe,k as m,m as Ge}from"./zod-Cg4WLWh2.js";import{t as be}from"./compiler-runtime-DeeZ7FnK.js";import{S as Ve}from"./_Uint8Array-BGESiCQL.js";import{r as re}from"./useLifecycle-CmDXEyIC.js";import{r as ze,t as Je}from"./_baseEach-BH6a1vAB.js";import{f as Ye}from"./hotkeys-uKX61F1_.js";import{t as Xe}from"./jsx-runtime-DN_bIXfG.js";import{t as ie}from"./button-DuYGqRtX.js";import{t as fe}from"./cn-C1rgT0yh.js";import{c as Ze,i as et,n as tt,r as st,s as nt,t as ot}from"./select-D0g5GnIs.js";import{t as rt}from"./circle-plus-D1IRnTdM.js";import{a as ae,c as ge,o as it,p as at,r as ct,t as lt}from"./dropdown-menu-BP4_BZLr.js";import{n as dt}from"./DeferredRequestRegistry-B3BENoUa.js";import{o as ht,r as pt}from"./input-CaEtLL8p.js";import{a as mt,c as ut,d as bt,g as ft,l as gt,o as yt,p as St,s as _t,u as wt}from"./textarea-WklymBeK.js";import{a as xt,c as $t,l as kt,n as Ct,r as At,t as jt}from"./dialog-DUEuLcT2.js";import{n as vt}from"./ImperativeModal-q6QlC2aZ.js";import{t as Rt}from"./links-DNmjkr65.js";import{n as It}from"./useAsyncData-BJJJOr9W.js";import{o as Tt}from"./focus-BCdX47jS.js";import{o as Dt,t as qt,u as i}from"./form-DwtJQd_Z.js";import{t as Lt}from"./request-registry-CAqj3mAX.js";import{n as Pt,t as Nt}from"./write-secret-modal-CLm48gMe.js";function Ft(t,e,s,o){for(var n=-1,a=t==null?0:t.length;++n<a;){var c=t[n];e(o,c,s(c),t)}return o}var Et=Ft;function Bt(t,e,s,o){return Je(t,function(n,a,c){e(o,n,s(n),c)}),o}var Ot=Bt;function Ut(t,e){return function(s,o){var n=Ve(s)?Et:Ot,a=e?e():{};return n(s,t,ze(o,2),a)}}var Kt=Ut(function(t,e,s){t[s?0:1].push(e)},function(){return[[],[]]});function $(){return d().optional().describe(i.of({label:"Password",inputType:"password",placeholder:"password",optionRegex:".*password.*"}))}function ce(t,e){let s=d();return s=e?s.nonempty():s.optional(),s=s.describe(i.of({label:t||"Token",inputType:"password",placeholder:"token",optionRegex:".*token.*"})),s}function G(){return d().optional().describe(i.of({label:"Warehouse Name",placeholder:"warehouse",optionRegex:".*warehouse.*"}))}function le(t,e){let s=d();return s=e?s.nonempty():s.optional(),s.describe(i.of({label:t||"URI",optionRegex:".*uri.*"}))}function x(t){return d().nonempty().describe(i.of({label:t||"Host",placeholder:"localhost",optionRegex:".*host.*"}))}function w(){return d().describe(i.of({label:"Database",placeholder:"db name",optionRegex:".*database.*"}))}function Wt(){return d().describe(i.of({label:"Schema",placeholder:"schema name",optionRegex:".*schema.*"}))}function k(){return d().nonempty().describe(i.of({label:"Username",placeholder:"username",optionRegex:".*username.*"}))}function C(t){let e=Qe().describe(i.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 ye(){return v().default(!1).describe(i.of({label:"Read Only"}))}const Se=p({type:m("postgres"),host:x(),port:C(5432).optional(),database:w(),username:k(),password:$(),ssl:v().default(!1).describe(i.of({label:"Use SSL"}))}).describe(i.of({direction:"two-columns"})),_e=p({type:m("mysql"),host:x(),port:C(3306),database:w(),username:k(),password:$(),ssl:v().default(!1).describe(i.of({label:"Use SSL"}))}).describe(i.of({direction:"two-columns"})),we=p({type:m("sqlite"),database:w().describe(i.of({label:"Database Path"}))}).describe(i.of({direction:"two-columns"})),xe=p({type:m("duckdb"),database:w().describe(i.of({label:"Database Path"})),read_only:ye()}).describe(i.of({direction:"two-columns"})),$e=p({type:m("motherduck"),database:w().default("my_db").describe(i.of({label:"Database Name"})),token:ce()}).describe(i.of({direction:"two-columns"})),ke=p({type:m("snowflake"),account:d().nonempty().describe(i.of({label:"Account",optionRegex:".*snowflake.*"})),warehouse:d().optional().describe(i.of({label:"Warehouse",optionRegex:".*snowflake.*"})),database:w(),schema:d().optional().describe(i.of({label:"Schema",optionRegex:".*snowflake.*"})),username:k(),password:$(),role:d().optional().describe(i.of({label:"Role"}))}).describe(i.of({direction:"two-columns"})),Ce=p({type:m("bigquery"),project:d().nonempty().describe(i.of({label:"Project ID",optionRegex:".*bigquery.*"})),dataset:d().nonempty().describe(i.of({label:"Dataset",optionRegex:".*bigquery.*"})),credentials_json:d().describe(i.of({label:"Credentials JSON",inputType:"textarea"}))}).describe(i.of({direction:"two-columns"})),Ae=p({type:m("clickhouse_connect"),host:x(),port:C(8123).optional(),username:k(),password:$(),secure:v().default(!1).describe(i.of({label:"Use HTTPs"}))}).describe(i.of({direction:"two-columns"})),je=p({type:m("timeplus"),host:x().default("localhost"),port:C(8123).optional(),username:k().default("default"),password:$().default("")}).describe(i.of({direction:"two-columns"})),ve=p({type:m("chdb"),database:w().describe(i.of({label:"Database Path"})),read_only:ye()}).describe(i.of({direction:"two-columns"})),Re=p({type:m("trino"),host:x(),port:C(8080),database:w(),schema:Wt().optional(),username:k(),password:$(),async_support:v().default(!1).describe(i.of({label:"Async Support"}))}).describe(i.of({direction:"two-columns"})),Ie=p({type:m("iceberg"),name:d().describe(i.of({label:"Catalog Name"})),catalog:oe("type",[p({type:m("REST"),warehouse:G(),uri:d().optional().describe(i.of({label:"URI",placeholder:"https://",optionRegex:".*uri.*"})),token:ce()}),p({type:m("SQL"),warehouse:G(),uri:d().optional().describe(i.of({label:"URI",placeholder:"jdbc:iceberg://host:port/database",optionRegex:".*uri.*"}))}),p({type:m("Hive"),warehouse:G(),uri:le()}),p({type:m("Glue"),warehouse:G(),uri:le()}),p({type:m("DynamoDB"),"dynamodb.profile-name":d().optional().describe(i.of({label:"Profile Name"})),"dynamodb.region":d().optional().describe(i.of({label:"Region"})),"dynamodb.access-key-id":d().optional().describe(i.of({label:"Access Key ID"})),"dynamodb.secret-access-key":d().optional().describe(i.of({label:"Secret Access Key",inputType:"password"})),"dynamodb.session-token":d().optional().describe(i.of({label:"Session Token",inputType:"password"}))})]).default({type:"REST",token:void 0}).describe(i.of({special:"tabs"}))}),Te=p({type:m("datafusion"),sessionContext:v().optional().describe(i.of({label:"Use Session Context"}))}),De=p({type:m("pyspark"),host:x().optional(),port:C().optional()}),qe=p({type:m("redshift"),host:x(),port:C(5439),connectionType:oe("type",[p({type:m("IAM credentials"),region:d().describe(i.of({label:"Region"})),aws_access_key_id:d().nonempty().describe(i.of({label:"AWS Access Key ID",inputType:"password",optionRegex:".*aws_access_key_id.*"})),aws_secret_access_key:d().nonempty().describe(i.of({label:"AWS Secret Access Key",inputType:"password",optionRegex:".*aws_secret_access_key.*"})),aws_session_token:d().optional().describe(i.of({label:"AWS Session Token",inputType:"password",optionRegex:".*aws_session_token.*"}))}),p({type:m("DB credentials"),user:k(),password:$()})]).default({type:"IAM credentials",aws_access_key_id:"",aws_secret_access_key:"",region:""}),database:w()}).describe(i.of({direction:"two-columns"})),Le=p({type:m("databricks"),access_token:ce("Access Token",!0),server_hostname:x("Server Hostname"),http_path:le("HTTP Path",!0),catalog:d().optional().describe(i.of({label:"Catalog"})),schema:d().optional().describe(i.of({label:"Schema"}))}).describe(i.of({direction:"two-columns"})),Pe=p({type:m("supabase"),host:x(),port:C(5432).optional(),database:w(),username:k(),password:$(),disable_client_pooling:v().default(!1).describe(i.of({label:"Disable Client-Side Pooling"}))}).describe(i.of({direction:"two-columns"})),Ht=oe("type",[Se,_e,we,xe,$e,ke,Ce,Ae,je,ve,Re,Ie,Te,De,qe,Le,Pe]);var de="env:";function tn(t){return t}function V(t){return typeof t=="string"?t.startsWith(de):!1}function he(t){return`${de}${t}`}function Mt(t){return t.replace(de,"")}const Ne={sqlmodel:"SQLModel",sqlalchemy:"SQLAlchemy",duckdb:"DuckDB",clickhouse_connect:"ClickHouse Connect",chdb:"chDB",pyiceberg:"PyIceberg",ibis:"Ibis",motherduck:"MotherDuck",redshift:"Redshift",databricks:"Databricks"};var y=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}},Qt=t=>`_${t}`,Gt=class{constructor(){ne(this,"secrets",{})}get imports(){return Object.keys(this.secrets).length===0?new Set:new Set(["import os"])}print(t,e,s){if(t=Qt(t),V(e)){let o=Mt(e),n=s?`os.environ.get("${o}", "${s}")`:`os.environ.get("${o}")`;return this.secrets[t]=n,t}if(s!=null){let o=`os.environ.get("${e}", "${s}")`;return this.secrets[t]=o,t}return typeof e=="number"||typeof e=="number"?`${e}`:typeof e=="boolean"?U(e):e?`"${e}"`:""}printInFString(t,e,s){if(e===void 0)return"";if(typeof e=="number")return`${e}`;if(typeof e=="boolean")return U(e);let o=this.print(t,e,s);return o.startsWith('"')&&o.endsWith('"')?o.slice(1,-1):`{${o}}`}printPassword(t,e,s,o){let n=s?this.printInFString.bind(this):this.print.bind(this);return V(t)?n(o||"password",t):n(o||"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(`
1
+ var Ue=Object.defineProperty;var Ke=(t,e,s)=>e in t?Ue(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var ne=(t,e,s)=>Ke(t,typeof e!="symbol"?e+"":e,s);import{s as me}from"./chunk-LvLJmgfZ.js";import{t as We}from"./react-BGmjiNul.js";import{bn as h,ft as He,w as Me}from"./cells-Cv9PtwL9.js";import{D as oe,P as p,R as d,T as v,_ as ue,i as Qe,k as m,m as Ge}from"./zod-Cg4WLWh2.js";import{t as be}from"./compiler-runtime-DeeZ7FnK.js";import{S as Ve}from"./_Uint8Array-BGESiCQL.js";import{r as re}from"./useLifecycle-CmDXEyIC.js";import{r as ze,t as Je}from"./_baseEach-BH6a1vAB.js";import{f as Ye}from"./hotkeys-uKX61F1_.js";import{t as Xe}from"./jsx-runtime-DN_bIXfG.js";import{t as ie}from"./button-B8cGZzP5.js";import{t as fe}from"./cn-C1rgT0yh.js";import{c as Ze,i as et,n as tt,r as st,s as nt,t as ot}from"./select-D9lTzMzP.js";import{t as rt}from"./circle-plus-D1IRnTdM.js";import{a as ae,c as ge,o as it,p as at,r as ct,t as lt}from"./dropdown-menu-BP4_BZLr.js";import{n as dt}from"./DeferredRequestRegistry-B3BENoUa.js";import{o as ht,r as pt}from"./input-B80Yt1uu.js";import{a as mt,c as ut,d as bt,g as ft,l as gt,o as yt,p as St,s as _t,u as wt}from"./textarea-wbzgrXvB.js";import{a as xt,c as $t,l as kt,n as Ct,r as At,t as jt}from"./dialog-CF5DtF1E.js";import{n as vt}from"./ImperativeModal-DVhvP4lH.js";import{t as Rt}from"./links-DNmjkr65.js";import{n as It}from"./useAsyncData-BJJJOr9W.js";import{o as Tt}from"./focus-D1y1tXyC.js";import{o as Dt,t as qt,u as i}from"./form-BAtvsPJL.js";import{t as Lt}from"./request-registry-CAqj3mAX.js";import{n as Pt,t as Nt}from"./write-secret-modal-hOetwavI.js";function Ft(t,e,s,o){for(var n=-1,a=t==null?0:t.length;++n<a;){var c=t[n];e(o,c,s(c),t)}return o}var Et=Ft;function Bt(t,e,s,o){return Je(t,function(n,a,c){e(o,n,s(n),c)}),o}var Ot=Bt;function Ut(t,e){return function(s,o){var n=Ve(s)?Et:Ot,a=e?e():{};return n(s,t,ze(o,2),a)}}var Kt=Ut(function(t,e,s){t[s?0:1].push(e)},function(){return[[],[]]});function $(){return d().optional().describe(i.of({label:"Password",inputType:"password",placeholder:"password",optionRegex:".*password.*"}))}function ce(t,e){let s=d();return s=e?s.nonempty():s.optional(),s=s.describe(i.of({label:t||"Token",inputType:"password",placeholder:"token",optionRegex:".*token.*"})),s}function G(){return d().optional().describe(i.of({label:"Warehouse Name",placeholder:"warehouse",optionRegex:".*warehouse.*"}))}function le(t,e){let s=d();return s=e?s.nonempty():s.optional(),s.describe(i.of({label:t||"URI",optionRegex:".*uri.*"}))}function x(t){return d().nonempty().describe(i.of({label:t||"Host",placeholder:"localhost",optionRegex:".*host.*"}))}function w(){return d().describe(i.of({label:"Database",placeholder:"db name",optionRegex:".*database.*"}))}function Wt(){return d().describe(i.of({label:"Schema",placeholder:"schema name",optionRegex:".*schema.*"}))}function k(){return d().nonempty().describe(i.of({label:"Username",placeholder:"username",optionRegex:".*username.*"}))}function C(t){let e=Qe().describe(i.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 ye(){return v().default(!1).describe(i.of({label:"Read Only"}))}const Se=p({type:m("postgres"),host:x(),port:C(5432).optional(),database:w(),username:k(),password:$(),ssl:v().default(!1).describe(i.of({label:"Use SSL"}))}).describe(i.of({direction:"two-columns"})),_e=p({type:m("mysql"),host:x(),port:C(3306),database:w(),username:k(),password:$(),ssl:v().default(!1).describe(i.of({label:"Use SSL"}))}).describe(i.of({direction:"two-columns"})),we=p({type:m("sqlite"),database:w().describe(i.of({label:"Database Path"}))}).describe(i.of({direction:"two-columns"})),xe=p({type:m("duckdb"),database:w().describe(i.of({label:"Database Path"})),read_only:ye()}).describe(i.of({direction:"two-columns"})),$e=p({type:m("motherduck"),database:w().default("my_db").describe(i.of({label:"Database Name"})),token:ce()}).describe(i.of({direction:"two-columns"})),ke=p({type:m("snowflake"),account:d().nonempty().describe(i.of({label:"Account",optionRegex:".*snowflake.*"})),warehouse:d().optional().describe(i.of({label:"Warehouse",optionRegex:".*snowflake.*"})),database:w(),schema:d().optional().describe(i.of({label:"Schema",optionRegex:".*snowflake.*"})),username:k(),password:$(),role:d().optional().describe(i.of({label:"Role"}))}).describe(i.of({direction:"two-columns"})),Ce=p({type:m("bigquery"),project:d().nonempty().describe(i.of({label:"Project ID",optionRegex:".*bigquery.*"})),dataset:d().nonempty().describe(i.of({label:"Dataset",optionRegex:".*bigquery.*"})),credentials_json:d().describe(i.of({label:"Credentials JSON",inputType:"textarea"}))}).describe(i.of({direction:"two-columns"})),Ae=p({type:m("clickhouse_connect"),host:x(),port:C(8123).optional(),username:k(),password:$(),secure:v().default(!1).describe(i.of({label:"Use HTTPs"}))}).describe(i.of({direction:"two-columns"})),je=p({type:m("timeplus"),host:x().default("localhost"),port:C(8123).optional(),username:k().default("default"),password:$().default("")}).describe(i.of({direction:"two-columns"})),ve=p({type:m("chdb"),database:w().describe(i.of({label:"Database Path"})),read_only:ye()}).describe(i.of({direction:"two-columns"})),Re=p({type:m("trino"),host:x(),port:C(8080),database:w(),schema:Wt().optional(),username:k(),password:$(),async_support:v().default(!1).describe(i.of({label:"Async Support"}))}).describe(i.of({direction:"two-columns"})),Ie=p({type:m("iceberg"),name:d().describe(i.of({label:"Catalog Name"})),catalog:oe("type",[p({type:m("REST"),warehouse:G(),uri:d().optional().describe(i.of({label:"URI",placeholder:"https://",optionRegex:".*uri.*"})),token:ce()}),p({type:m("SQL"),warehouse:G(),uri:d().optional().describe(i.of({label:"URI",placeholder:"jdbc:iceberg://host:port/database",optionRegex:".*uri.*"}))}),p({type:m("Hive"),warehouse:G(),uri:le()}),p({type:m("Glue"),warehouse:G(),uri:le()}),p({type:m("DynamoDB"),"dynamodb.profile-name":d().optional().describe(i.of({label:"Profile Name"})),"dynamodb.region":d().optional().describe(i.of({label:"Region"})),"dynamodb.access-key-id":d().optional().describe(i.of({label:"Access Key ID"})),"dynamodb.secret-access-key":d().optional().describe(i.of({label:"Secret Access Key",inputType:"password"})),"dynamodb.session-token":d().optional().describe(i.of({label:"Session Token",inputType:"password"}))})]).default({type:"REST",token:void 0}).describe(i.of({special:"tabs"}))}),Te=p({type:m("datafusion"),sessionContext:v().optional().describe(i.of({label:"Use Session Context"}))}),De=p({type:m("pyspark"),host:x().optional(),port:C().optional()}),qe=p({type:m("redshift"),host:x(),port:C(5439),connectionType:oe("type",[p({type:m("IAM credentials"),region:d().describe(i.of({label:"Region"})),aws_access_key_id:d().nonempty().describe(i.of({label:"AWS Access Key ID",inputType:"password",optionRegex:".*aws_access_key_id.*"})),aws_secret_access_key:d().nonempty().describe(i.of({label:"AWS Secret Access Key",inputType:"password",optionRegex:".*aws_secret_access_key.*"})),aws_session_token:d().optional().describe(i.of({label:"AWS Session Token",inputType:"password",optionRegex:".*aws_session_token.*"}))}),p({type:m("DB credentials"),user:k(),password:$()})]).default({type:"IAM credentials",aws_access_key_id:"",aws_secret_access_key:"",region:""}),database:w()}).describe(i.of({direction:"two-columns"})),Le=p({type:m("databricks"),access_token:ce("Access Token",!0),server_hostname:x("Server Hostname"),http_path:le("HTTP Path",!0),catalog:d().optional().describe(i.of({label:"Catalog"})),schema:d().optional().describe(i.of({label:"Schema"}))}).describe(i.of({direction:"two-columns"})),Pe=p({type:m("supabase"),host:x(),port:C(5432).optional(),database:w(),username:k(),password:$(),disable_client_pooling:v().default(!1).describe(i.of({label:"Disable Client-Side Pooling"}))}).describe(i.of({direction:"two-columns"})),Ht=oe("type",[Se,_e,we,xe,$e,ke,Ce,Ae,je,ve,Re,Ie,Te,De,qe,Le,Pe]);var de="env:";function tn(t){return t}function V(t){return typeof t=="string"?t.startsWith(de):!1}function he(t){return`${de}${t}`}function Mt(t){return t.replace(de,"")}const Ne={sqlmodel:"SQLModel",sqlalchemy:"SQLAlchemy",duckdb:"DuckDB",clickhouse_connect:"ClickHouse Connect",chdb:"chDB",pyiceberg:"PyIceberg",ibis:"Ibis",motherduck:"MotherDuck",redshift:"Redshift",databricks:"Databricks"};var y=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}},Qt=t=>`_${t}`,Gt=class{constructor(){ne(this,"secrets",{})}get imports(){return Object.keys(this.secrets).length===0?new Set:new Set(["import os"])}print(t,e,s){if(t=Qt(t),V(e)){let o=Mt(e),n=s?`os.environ.get("${o}", "${s}")`:`os.environ.get("${o}")`;return this.secrets[t]=n,t}if(s!=null){let o=`os.environ.get("${e}", "${s}")`;return this.secrets[t]=o,t}return typeof e=="number"||typeof e=="number"?`${e}`:typeof e=="boolean"?U(e):e?`"${e}"`:""}printInFString(t,e,s){if(e===void 0)return"";if(typeof e=="number")return`${e}`;if(typeof e=="boolean")return U(e);let o=this.print(t,e,s);return o.startsWith('"')&&o.endsWith('"')?o.slice(1,-1):`{${o}}`}printPassword(t,e,s,o){let n=s?this.printInFString.bind(this):this.print.bind(this);return V(t)?n(o||"password",t):n(o||"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
2
  `)}},Vt=class extends y{generateImports(){return[]}generateConnectionCode(){let t=this.connection.ssl?", connect_args={'sslmode': 'require'}":"",e=this.secrets.printPassword(this.connection.password,"POSTGRES_PASSWORD",!0);return h(`
3
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
4
  engine = ${this.orm}.create_engine(DATABASE_URL${t})
@@ -108,4 +108,4 @@ ${z({host:t,port:e,database:s,...o&&{user:o},...n&&{password:n}},a=>` $
108
108
  `)}},hs=class{constructor(){ne(this,"secrets",new Gt)}createGenerator(t,e){switch(t.type){case"postgres":return new Vt(t,e,this.secrets);case"mysql":return new zt(t,e,this.secrets);case"sqlite":return new Jt(t,e,this.secrets);case"snowflake":return new Yt(t,e,this.secrets);case"bigquery":return new Xt(t,e,this.secrets);case"duckdb":return new Zt(t,e,this.secrets);case"motherduck":return new es(t,e,this.secrets);case"clickhouse_connect":return new ts(t,e,this.secrets);case"timeplus":return new ss(t,e,this.secrets);case"chdb":return new ns(t,e,this.secrets);case"trino":return new os(t,e,this.secrets);case"iceberg":return new rs(t,e,this.secrets);case"datafusion":return new is(t,e,this.secrets);case"pyspark":return new as(t,e,this.secrets);case"redshift":return new cs(t,e,this.secrets);case"databricks":return new ls(t,e,this.secrets);case"supabase":return new ds(t,e,this.secrets);default:re(t)}}};function ps(t,e){if(!(e in Ne))throw Error(`Unsupported library: ${e}`);Ht.parse(t);let s=new hs,o=s.createGenerator(t,e),n=o.generateConnectionCode(),a=s.secrets,c=[...new Set([...a.imports,...o.imports])].sort();c.push("");let l=a.formatSecrets();return l&&c.push(l),c.push(n.trim()),c.join(`
109
109
  `)}function U(t){return t.toString().charAt(0).toUpperCase()+t.toString().slice(1)}function z(t,e){return Object.entries(t).filter(([,s])=>s!=null&&s!=="").map(([s,o])=>e(typeof o=="boolean"?`${s}=${U(o)}`:`${s}=${o}`)).join(`,
110
110
  `)}function ms(t,e){return Object.entries(t).filter(([,s])=>s!=null&&s!=="").map(([s,o])=>{let n=`"${s}"`;return e(typeof o=="boolean"?`${n}: ${U(o)}`:`${n}: ${o}`)}).join(`,
111
- `)}var us=be(),K=me(We(),1),r=me(Xe(),1),Fe=(0,K.createContext)({providerNames:[],secretKeys:[],loading:!1,error:void 0,refreshSecrets:Ye.NOOP});const bs=()=>(0,K.use)(Fe),fs=t=>{let e=(0,us.c)(14),{children:s}=t,o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=[],e[0]=o):o=e[0];let{data:n,isPending:a,error:c,refetch:l}=It(ws,o),b;e[1]===(n==null?void 0:n.secretKeys)?b=e[2]:(b=(n==null?void 0:n.secretKeys)||[],e[1]=n==null?void 0:n.secretKeys,e[2]=b);let u;e[3]===(n==null?void 0:n.providerNames)?u=e[4]:(u=(n==null?void 0:n.providerNames)||[],e[3]=n==null?void 0:n.providerNames,e[4]=u);let f;e[5]!==c||e[6]!==a||e[7]!==l||e[8]!==b||e[9]!==u?(f={secretKeys:b,providerNames:u,loading:a,error:c,refreshSecrets:l},e[5]=c,e[6]=a,e[7]=l,e[8]=b,e[9]=u,e[10]=f):f=e[10];let S;return e[11]!==s||e[12]!==f?(S=(0,r.jsx)(Fe,{value:f,children:s}),e[11]=s,e[12]=f,e[13]=S):S=e[13],S},gs={isMatch:t=>{if(t instanceof ue||t instanceof Ge){let{optionRegex:e}=i.parse(t.description||"");return!!e}return!1},Component:({schema:t,form:e,path:s})=>{let{secretKeys:o,providerNames:n,refreshSecrets:a}=bs(),{openModal:c,closeModal:l}=vt(),{label:b,description:u,optionRegex:f=""}=i.parse(t.description||""),[S,A]=Kt(o,g=>new RegExp(f,"i").test(g));return(0,r.jsx)(ut,{control:e.control,name:s,render:({field:g})=>(0,r.jsxs)(gt,{children:[(0,r.jsx)(wt,{children:b}),(0,r.jsx)(yt,{children:u}),(0,r.jsx)(mt,{children:(0,r.jsxs)("div",{className:"flex gap-2",children:[t instanceof ue?(0,r.jsx)(pt,{...g,value:g.value,onChange:g.onChange,className:fe("flex-1")}):(0,r.jsx)(ht,{...g,value:g.value,onChange:g.onChange,className:"flex-1"}),(0,r.jsxs)(lt,{children:[(0,r.jsx)(at,{asChild:!0,children:(0,r.jsx)(ie,{variant:"outline",size:"icon",className:fe(V(g.value)&&"bg-accent"),children:(0,r.jsx)(dt,{className:"h-3 w-3"})})}),(0,r.jsxs)(ct,{align:"end",className:"max-h-60 overflow-y-auto",children:[(0,r.jsxs)(ae,{onSelect:()=>{c((0,r.jsx)(Nt,{providerNames:n,onSuccess:_=>{a(),g.onChange(he(_)),l()},onClose:l}))},children:[(0,r.jsx)(rt,{className:"mr-2 h-3.5 w-3.5"}),"Create a new secret"]}),S.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(ge,{}),(0,r.jsx)(it,{children:"Recommended"})]}),S.map(_=>(0,r.jsx)(ae,{onSelect:()=>g.onChange(he(_)),children:_},_)),A.length>0&&(0,r.jsx)(ge,{}),A.map(_=>(0,r.jsx)(ae,{onSelect:()=>g.onChange(he(_)),children:_},_))]})]})]})}),(0,r.jsx)(bt,{})]})})}};function ys(t){return t.provider!=="env"}function Ss(t){return t.name}function _s(t){return t.keys}async function ws(){let t=await Lt.request({}),e=Pt(t.secrets).filter(ys).map(Ss);return{secretKeys:t.secrets.flatMap(_s).sort(),providerNames:e}}var W=be(),Ee=[{name:"PostgreSQL",schema:Se,color:"#336791",logo:"postgres",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"MySQL",schema:_e,color:"#00758F",logo:"mysql",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"SQLite",schema:we,color:"#003B57",logo:"sqlite",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"DuckDB",schema:xe,color:"#FFD700",logo:"duckdb",connectionLibraries:{libraries:["duckdb"],preferred:"duckdb"}},{name:"MotherDuck",schema:$e,color:"#ff9538",logo:"motherduck",connectionLibraries:{libraries:["duckdb"],preferred:"duckdb"}},{name:"Snowflake",schema:ke,color:"#29B5E8",logo:"snowflake",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"ClickHouse",schema:Ae,color:"#2C2C1D",logo:"clickhouse",connectionLibraries:{libraries:["clickhouse_connect"],preferred:"clickhouse_connect"}},{name:"Timeplus",schema:je,color:"#B83280",logo:"timeplus",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"BigQuery",schema:Ce,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:Re,color:"#d466b6",logo:"trino",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"DataFusion",schema:Te,color:"#202A37",logo:"datafusion",connectionLibraries:{libraries:["ibis"],preferred:"ibis"}},{name:"PySpark",schema:De,color:"#1C5162",logo:"pyspark",connectionLibraries:{libraries:["ibis"],preferred:"ibis"}},{name:"Redshift",schema:qe,color:"#522BAE",logo:"redshift",connectionLibraries:{libraries:["redshift"],preferred:"redshift"}},{name:"Databricks",schema:Le,color:"#c41e0c",logo:"databricks",connectionLibraries:{libraries:["sqlalchemy","sqlmodel","ibis"],preferred:"sqlalchemy"}},{name:"Supabase",schema:Pe,color:"#238F5F",logo:"supabase",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}}],Be=[{name:"Iceberg",schema:Ie,color:"#000000",logo:"iceberg",connectionLibraries:{libraries:["pyiceberg"],preferred:"pyiceberg"}}],xs=t=>{let e=(0,W.c)(14),{onSelect:s}=t,o;e[0]===s?o=e[1]:(o=S=>{let{name:A,schema:g,color:_,logo:R}=S;return(0,r.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:{backgroundColor:_},onClick:()=>s(g),children:[(0,r.jsx)(Me,{name:R,className:"w-8 h-8 text-white brightness-0 invert dark:invert"}),(0,r.jsx)("span",{className:"text-white font-medium text-lg",children:A})]},A)},e[0]=s,e[1]=o);let n=o,a;e[2]===n?a=e[3]:(a=Ee.map(n),e[2]=n,e[3]=a);let c;e[4]===a?c=e[5]:(c=(0,r.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4",children:a}),e[4]=a,e[5]=c);let l;e[6]===Symbol.for("react.memo_cache_sentinel")?(l=(0,r.jsxs)("h4",{className:"font-semibold text-muted-foreground text-lg flex items-center gap-4",children:["Data Catalogs",(0,r.jsx)("hr",{className:"flex-1"})]}),e[6]=l):l=e[6];let b;e[7]===n?b=e[8]:(b=Be.map(n),e[7]=n,e[8]=b);let u;e[9]===b?u=e[10]:(u=(0,r.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4",children:b}),e[9]=b,e[10]=u);let f;return e[11]!==c||e[12]!==u?(f=(0,r.jsxs)(r.Fragment,{children:[c,l,u]}),e[11]=c,e[12]=u,e[13]=f):f=e[13],f},$s=[gs],ks=t=>{var pe;let e=(0,W.c)(49),{schema:s,onSubmit:o,onBack:n}=t,a;e[0]===s?a=e[1]:(a=Dt(s),e[0]=s,e[1]=a);let c=s,l;e[2]===c?l=e[3]:(l=St(c),e[2]=c,e[3]=l);let b;e[4]!==a||e[5]!==l?(b={defaultValues:a,resolver:l,reValidateMode:"onChange"},e[4]=a,e[5]=l,e[6]=b):b=e[6];let u=ft(b),f=(pe=[...Ee,...Be].find(j=>j.schema===s))==null?void 0:pe.connectionLibraries,[S,A]=(0,K.useState)((f==null?void 0:f.preferred)??"sqlalchemy"),{createNewCell:g}=He(),_=Tt(),R;e[7]!==g||e[8]!==_?(R=j=>{g({code:j,before:!1,cellId:_??"__end__",skipIfCodeExists:!0})},e[7]=g,e[8]=_,e[9]=R):R=e[9];let J=R,H;e[10]!==J||e[11]!==o||e[12]!==S?(H=j=>{J(ps(j,S)),o()},e[10]=J,e[11]=o,e[12]=S,e[13]=H):H=e[13];let Y=H,I;e[14]!==u||e[15]!==Y?(I=u.handleSubmit(Y),e[14]=u,e[15]=Y,e[16]=I):I=e[16];let M;e[17]===Symbol.for("react.memo_cache_sentinel")?(M=(0,r.jsx)(_t,{}),e[17]=M):M=e[17];let T;e[18]!==u||e[19]!==s?(T=(0,r.jsx)(fs,{children:(0,r.jsx)(qt,{schema:s,form:u,renderers:$s,children:M})}),e[18]=u,e[19]=s,e[20]=T):T=e[20];let D;e[21]===n?D=e[22]:(D=(0,r.jsx)(ie,{type:"button",variant:"outline",onClick:n,children:"Back"}),e[21]=n,e[22]=D);let X=!u.formState.isValid,q;e[23]===X?q=e[24]:(q=(0,r.jsx)(ie,{type:"submit",disabled:X,children:"Add"}),e[23]=X,e[24]=q);let L;e[25]!==D||e[26]!==q?(L=(0,r.jsxs)("div",{className:"flex gap-2",children:[D,q]}),e[25]=D,e[26]=q,e[27]=L):L=e[27];let Z=ot,P;e[28]===Symbol.for("react.memo_cache_sentinel")?(P=j=>A(j),e[28]=P):P=e[28];let N;e[29]===Symbol.for("react.memo_cache_sentinel")?(N=(0,r.jsxs)("div",{className:"flex flex-col gap-1 items-end",children:[(0,r.jsx)(nt,{children:(0,r.jsx)(Ze,{placeholder:"Select a library"})}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:"Preferred connection library"})]}),e[29]=N):N=e[29];let ee=tt,te=st,se=f==null?void 0:f.libraries.map(js),F;e[30]!==te||e[31]!==se?(F=(0,r.jsx)(te,{children:se}),e[30]=te,e[31]=se,e[32]=F):F=e[32];let E;e[33]!==ee||e[34]!==F?(E=(0,r.jsx)(ee,{children:F}),e[33]=ee,e[34]=F,e[35]=E):E=e[35];let B;e[36]!==Z||e[37]!==S||e[38]!==P||e[39]!==N||e[40]!==E?(B=(0,r.jsx)("div",{children:(0,r.jsxs)(Z,{value:S,onValueChange:P,children:[N,E]})}),e[36]=Z,e[37]=S,e[38]=P,e[39]=N,e[40]=E,e[41]=B):B=e[41];let O;e[42]!==L||e[43]!==B?(O=(0,r.jsxs)("div",{className:"flex gap-2 justify-between",children:[L,B]}),e[42]=L,e[43]=B,e[44]=O):O=e[44];let Q;return e[45]!==T||e[46]!==O||e[47]!==I?(Q=(0,r.jsxs)("form",{onSubmit:I,className:"space-y-4",children:[T,O]}),e[45]=T,e[46]=O,e[47]=I,e[48]=Q):Q=e[48],Q},Cs=t=>{let e=(0,W.c)(5),{onSubmit:s}=t,[o,n]=(0,K.useState)(null);if(!o){let l;return e[0]===Symbol.for("react.memo_cache_sentinel")?(l=(0,r.jsx)(xs,{onSelect:n}),e[0]=l):l=e[0],l}let a;e[1]===Symbol.for("react.memo_cache_sentinel")?(a=()=>n(null),e[1]=a):a=e[1];let c;return e[2]!==s||e[3]!==o?(c=(0,r.jsx)(ks,{schema:o,onSubmit:s,onBack:a}),e[2]=s,e[3]=o,e[4]=c):c=e[4],c};const As=t=>{let e=(0,W.c)(6),{children:s}=t,[o,n]=(0,K.useState)(!1),a;e[0]===s?a=e[1]:(a=(0,r.jsx)(kt,{asChild:!0,children:s}),e[0]=s,e[1]=a);let c;e[2]===Symbol.for("react.memo_cache_sentinel")?(c=(0,r.jsx)(Oe,{onClose:()=>n(!1)}),e[2]=c):c=e[2];let l;return e[3]!==o||e[4]!==a?(l=(0,r.jsxs)(jt,{open:o,onOpenChange:n,children:[a,c]}),e[3]=o,e[4]=a,e[5]=l):l=e[5],l},Oe=t=>{let e=(0,W.c)(4),{onClose:s}=t,o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=(0,r.jsx)($t,{children:"Add Connection"}),e[0]=o):o=e[0];let n;e[1]===Symbol.for("react.memo_cache_sentinel")?(n=(0,r.jsxs)(xt,{className:"mb-4",children:[o,(0,r.jsxs)(At,{children:["Connect to your database or data catalog to query data directly from your notebook. Learn more about how to connect to your database in our"," ",(0,r.jsx)(Rt,{href:"https://docs.marimo.io/guides/working_with_data/sql/#connecting-to-a-custom-database",children:"docs."})]})]}),e[1]=n):n=e[1];let a;return e[2]===s?a=e[3]:(a=(0,r.jsxs)(Ct,{className:"max-h-[75vh] overflow-y-auto",children:[n,(0,r.jsx)(Cs,{onSubmit:()=>s()})]}),e[2]=s,e[3]=a),a};function js(t){return(0,r.jsx)(et,{value:t,children:Ne[t]},t)}export{Oe as n,As as t};
111
+ `)}var us=be(),K=me(We(),1),r=me(Xe(),1),Fe=(0,K.createContext)({providerNames:[],secretKeys:[],loading:!1,error:void 0,refreshSecrets:Ye.NOOP});const bs=()=>(0,K.use)(Fe),fs=t=>{let e=(0,us.c)(14),{children:s}=t,o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=[],e[0]=o):o=e[0];let{data:n,isPending:a,error:c,refetch:l}=It(ws,o),b;e[1]===(n==null?void 0:n.secretKeys)?b=e[2]:(b=(n==null?void 0:n.secretKeys)||[],e[1]=n==null?void 0:n.secretKeys,e[2]=b);let u;e[3]===(n==null?void 0:n.providerNames)?u=e[4]:(u=(n==null?void 0:n.providerNames)||[],e[3]=n==null?void 0:n.providerNames,e[4]=u);let f;e[5]!==c||e[6]!==a||e[7]!==l||e[8]!==b||e[9]!==u?(f={secretKeys:b,providerNames:u,loading:a,error:c,refreshSecrets:l},e[5]=c,e[6]=a,e[7]=l,e[8]=b,e[9]=u,e[10]=f):f=e[10];let S;return e[11]!==s||e[12]!==f?(S=(0,r.jsx)(Fe,{value:f,children:s}),e[11]=s,e[12]=f,e[13]=S):S=e[13],S},gs={isMatch:t=>{if(t instanceof ue||t instanceof Ge){let{optionRegex:e}=i.parse(t.description||"");return!!e}return!1},Component:({schema:t,form:e,path:s})=>{let{secretKeys:o,providerNames:n,refreshSecrets:a}=bs(),{openModal:c,closeModal:l}=vt(),{label:b,description:u,optionRegex:f=""}=i.parse(t.description||""),[S,A]=Kt(o,g=>new RegExp(f,"i").test(g));return(0,r.jsx)(ut,{control:e.control,name:s,render:({field:g})=>(0,r.jsxs)(gt,{children:[(0,r.jsx)(wt,{children:b}),(0,r.jsx)(yt,{children:u}),(0,r.jsx)(mt,{children:(0,r.jsxs)("div",{className:"flex gap-2",children:[t instanceof ue?(0,r.jsx)(pt,{...g,value:g.value,onChange:g.onChange,className:fe("flex-1")}):(0,r.jsx)(ht,{...g,value:g.value,onChange:g.onChange,className:"flex-1"}),(0,r.jsxs)(lt,{children:[(0,r.jsx)(at,{asChild:!0,children:(0,r.jsx)(ie,{variant:"outline",size:"icon",className:fe(V(g.value)&&"bg-accent"),children:(0,r.jsx)(dt,{className:"h-3 w-3"})})}),(0,r.jsxs)(ct,{align:"end",className:"max-h-60 overflow-y-auto",children:[(0,r.jsxs)(ae,{onSelect:()=>{c((0,r.jsx)(Nt,{providerNames:n,onSuccess:_=>{a(),g.onChange(he(_)),l()},onClose:l}))},children:[(0,r.jsx)(rt,{className:"mr-2 h-3.5 w-3.5"}),"Create a new secret"]}),S.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(ge,{}),(0,r.jsx)(it,{children:"Recommended"})]}),S.map(_=>(0,r.jsx)(ae,{onSelect:()=>g.onChange(he(_)),children:_},_)),A.length>0&&(0,r.jsx)(ge,{}),A.map(_=>(0,r.jsx)(ae,{onSelect:()=>g.onChange(he(_)),children:_},_))]})]})]})}),(0,r.jsx)(bt,{})]})})}};function ys(t){return t.provider!=="env"}function Ss(t){return t.name}function _s(t){return t.keys}async function ws(){let t=await Lt.request({}),e=Pt(t.secrets).filter(ys).map(Ss);return{secretKeys:t.secrets.flatMap(_s).sort(),providerNames:e}}var W=be(),Ee=[{name:"PostgreSQL",schema:Se,color:"#336791",logo:"postgres",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"MySQL",schema:_e,color:"#00758F",logo:"mysql",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"SQLite",schema:we,color:"#003B57",logo:"sqlite",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"DuckDB",schema:xe,color:"#FFD700",logo:"duckdb",connectionLibraries:{libraries:["duckdb"],preferred:"duckdb"}},{name:"MotherDuck",schema:$e,color:"#ff9538",logo:"motherduck",connectionLibraries:{libraries:["duckdb"],preferred:"duckdb"}},{name:"Snowflake",schema:ke,color:"#29B5E8",logo:"snowflake",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"ClickHouse",schema:Ae,color:"#2C2C1D",logo:"clickhouse",connectionLibraries:{libraries:["clickhouse_connect"],preferred:"clickhouse_connect"}},{name:"Timeplus",schema:je,color:"#B83280",logo:"timeplus",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"BigQuery",schema:Ce,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:Re,color:"#d466b6",logo:"trino",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"DataFusion",schema:Te,color:"#202A37",logo:"datafusion",connectionLibraries:{libraries:["ibis"],preferred:"ibis"}},{name:"PySpark",schema:De,color:"#1C5162",logo:"pyspark",connectionLibraries:{libraries:["ibis"],preferred:"ibis"}},{name:"Redshift",schema:qe,color:"#522BAE",logo:"redshift",connectionLibraries:{libraries:["redshift"],preferred:"redshift"}},{name:"Databricks",schema:Le,color:"#c41e0c",logo:"databricks",connectionLibraries:{libraries:["sqlalchemy","sqlmodel","ibis"],preferred:"sqlalchemy"}},{name:"Supabase",schema:Pe,color:"#238F5F",logo:"supabase",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}}],Be=[{name:"Iceberg",schema:Ie,color:"#000000",logo:"iceberg",connectionLibraries:{libraries:["pyiceberg"],preferred:"pyiceberg"}}],xs=t=>{let e=(0,W.c)(14),{onSelect:s}=t,o;e[0]===s?o=e[1]:(o=S=>{let{name:A,schema:g,color:_,logo:R}=S;return(0,r.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:{backgroundColor:_},onClick:()=>s(g),children:[(0,r.jsx)(He,{name:R,className:"w-8 h-8 text-white brightness-0 invert dark:invert"}),(0,r.jsx)("span",{className:"text-white font-medium text-lg",children:A})]},A)},e[0]=s,e[1]=o);let n=o,a;e[2]===n?a=e[3]:(a=Ee.map(n),e[2]=n,e[3]=a);let c;e[4]===a?c=e[5]:(c=(0,r.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4",children:a}),e[4]=a,e[5]=c);let l;e[6]===Symbol.for("react.memo_cache_sentinel")?(l=(0,r.jsxs)("h4",{className:"font-semibold text-muted-foreground text-lg flex items-center gap-4",children:["Data Catalogs",(0,r.jsx)("hr",{className:"flex-1"})]}),e[6]=l):l=e[6];let b;e[7]===n?b=e[8]:(b=Be.map(n),e[7]=n,e[8]=b);let u;e[9]===b?u=e[10]:(u=(0,r.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4",children:b}),e[9]=b,e[10]=u);let f;return e[11]!==c||e[12]!==u?(f=(0,r.jsxs)(r.Fragment,{children:[c,l,u]}),e[11]=c,e[12]=u,e[13]=f):f=e[13],f},$s=[gs],ks=t=>{var pe;let e=(0,W.c)(49),{schema:s,onSubmit:o,onBack:n}=t,a;e[0]===s?a=e[1]:(a=Dt(s),e[0]=s,e[1]=a);let c=s,l;e[2]===c?l=e[3]:(l=St(c),e[2]=c,e[3]=l);let b;e[4]!==a||e[5]!==l?(b={defaultValues:a,resolver:l,reValidateMode:"onChange"},e[4]=a,e[5]=l,e[6]=b):b=e[6];let u=ft(b),f=(pe=[...Ee,...Be].find(j=>j.schema===s))==null?void 0:pe.connectionLibraries,[S,A]=(0,K.useState)((f==null?void 0:f.preferred)??"sqlalchemy"),{createNewCell:g}=Me(),_=Tt(),R;e[7]!==g||e[8]!==_?(R=j=>{g({code:j,before:!1,cellId:_??"__end__",skipIfCodeExists:!0})},e[7]=g,e[8]=_,e[9]=R):R=e[9];let J=R,H;e[10]!==J||e[11]!==o||e[12]!==S?(H=j=>{J(ps(j,S)),o()},e[10]=J,e[11]=o,e[12]=S,e[13]=H):H=e[13];let Y=H,I;e[14]!==u||e[15]!==Y?(I=u.handleSubmit(Y),e[14]=u,e[15]=Y,e[16]=I):I=e[16];let M;e[17]===Symbol.for("react.memo_cache_sentinel")?(M=(0,r.jsx)(_t,{}),e[17]=M):M=e[17];let T;e[18]!==u||e[19]!==s?(T=(0,r.jsx)(fs,{children:(0,r.jsx)(qt,{schema:s,form:u,renderers:$s,children:M})}),e[18]=u,e[19]=s,e[20]=T):T=e[20];let D;e[21]===n?D=e[22]:(D=(0,r.jsx)(ie,{type:"button",variant:"outline",onClick:n,children:"Back"}),e[21]=n,e[22]=D);let X=!u.formState.isValid,q;e[23]===X?q=e[24]:(q=(0,r.jsx)(ie,{type:"submit",disabled:X,children:"Add"}),e[23]=X,e[24]=q);let L;e[25]!==D||e[26]!==q?(L=(0,r.jsxs)("div",{className:"flex gap-2",children:[D,q]}),e[25]=D,e[26]=q,e[27]=L):L=e[27];let Z=ot,P;e[28]===Symbol.for("react.memo_cache_sentinel")?(P=j=>A(j),e[28]=P):P=e[28];let N;e[29]===Symbol.for("react.memo_cache_sentinel")?(N=(0,r.jsxs)("div",{className:"flex flex-col gap-1 items-end",children:[(0,r.jsx)(nt,{children:(0,r.jsx)(Ze,{placeholder:"Select a library"})}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:"Preferred connection library"})]}),e[29]=N):N=e[29];let ee=tt,te=st,se=f==null?void 0:f.libraries.map(js),F;e[30]!==te||e[31]!==se?(F=(0,r.jsx)(te,{children:se}),e[30]=te,e[31]=se,e[32]=F):F=e[32];let E;e[33]!==ee||e[34]!==F?(E=(0,r.jsx)(ee,{children:F}),e[33]=ee,e[34]=F,e[35]=E):E=e[35];let B;e[36]!==Z||e[37]!==S||e[38]!==P||e[39]!==N||e[40]!==E?(B=(0,r.jsx)("div",{children:(0,r.jsxs)(Z,{value:S,onValueChange:P,children:[N,E]})}),e[36]=Z,e[37]=S,e[38]=P,e[39]=N,e[40]=E,e[41]=B):B=e[41];let O;e[42]!==L||e[43]!==B?(O=(0,r.jsxs)("div",{className:"flex gap-2 justify-between",children:[L,B]}),e[42]=L,e[43]=B,e[44]=O):O=e[44];let Q;return e[45]!==T||e[46]!==O||e[47]!==I?(Q=(0,r.jsxs)("form",{onSubmit:I,className:"space-y-4",children:[T,O]}),e[45]=T,e[46]=O,e[47]=I,e[48]=Q):Q=e[48],Q},Cs=t=>{let e=(0,W.c)(5),{onSubmit:s}=t,[o,n]=(0,K.useState)(null);if(!o){let l;return e[0]===Symbol.for("react.memo_cache_sentinel")?(l=(0,r.jsx)(xs,{onSelect:n}),e[0]=l):l=e[0],l}let a;e[1]===Symbol.for("react.memo_cache_sentinel")?(a=()=>n(null),e[1]=a):a=e[1];let c;return e[2]!==s||e[3]!==o?(c=(0,r.jsx)(ks,{schema:o,onSubmit:s,onBack:a}),e[2]=s,e[3]=o,e[4]=c):c=e[4],c};const As=t=>{let e=(0,W.c)(6),{children:s}=t,[o,n]=(0,K.useState)(!1),a;e[0]===s?a=e[1]:(a=(0,r.jsx)(kt,{asChild:!0,children:s}),e[0]=s,e[1]=a);let c;e[2]===Symbol.for("react.memo_cache_sentinel")?(c=(0,r.jsx)(Oe,{onClose:()=>n(!1)}),e[2]=c):c=e[2];let l;return e[3]!==o||e[4]!==a?(l=(0,r.jsxs)(jt,{open:o,onOpenChange:n,children:[a,c]}),e[3]=o,e[4]=a,e[5]=l):l=e[5],l},Oe=t=>{let e=(0,W.c)(4),{onClose:s}=t,o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=(0,r.jsx)($t,{children:"Add Connection"}),e[0]=o):o=e[0];let n;e[1]===Symbol.for("react.memo_cache_sentinel")?(n=(0,r.jsxs)(xt,{className:"mb-4",children:[o,(0,r.jsxs)(At,{children:["Connect to your database or data catalog to query data directly from your notebook. Learn more about how to connect to your database in our"," ",(0,r.jsx)(Rt,{href:"https://docs.marimo.io/guides/working_with_data/sql/#connecting-to-a-custom-database",children:"docs."})]})]}),e[1]=n):n=e[1];let a;return e[2]===s?a=e[3]:(a=(0,r.jsxs)(Ct,{className:"max-h-[75vh] overflow-y-auto",children:[n,(0,r.jsx)(Cs,{onSubmit:()=>s()})]}),e[2]=s,e[3]=a),a};function js(t){return(0,r.jsx)(et,{value:t,children:Ne[t]},t)}export{Oe as n,As as t};