@marimo-team/frontend 0.23.14-dev19 → 0.23.14-dev21

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 (90) hide show
  1. package/dist/assets/{CellStatus-B3d9WY2x.js → CellStatus-CSZHI8sz.js} +1 -1
  2. package/dist/assets/{JsonOutput-C3c9GGaV.js → JsonOutput-CYIo9GSP.js} +12 -12
  3. package/dist/assets/MarimoErrorOutput-BokuSnpU.js +11 -0
  4. package/dist/assets/{RenderHTML-v15QgtRg.js → RenderHTML-B9mw7TD1.js} +1 -1
  5. package/dist/assets/{RunButton-Bz4eaTJM.js → RunButton-CX_nNY62.js} +1 -1
  6. package/dist/assets/{add-cell-with-ai-wau9Yzcj.js → add-cell-with-ai-DwzlK27e.js} +47 -34
  7. package/dist/assets/{add-connection-dialog-_KCPEn7U.js → add-connection-dialog-fmiSisf0.js} +6 -6
  8. package/dist/assets/{agent-panel-Bn9AgwJH.js → agent-panel-BDO44WWH.js} +5 -5
  9. package/dist/assets/{ai-model-dropdown-BeZrAec-.js → ai-model-dropdown-BP8gjnOy.js} +3 -3
  10. package/dist/assets/{app-config-button-BG9ONWMU.js → app-config-button-CVpG64c2.js} +1 -1
  11. package/dist/assets/{cell-editor-24ykqaHj.js → cell-editor-Bbir67_U.js} +10 -10
  12. package/dist/assets/cell-link-CBRggkzf.js +1 -0
  13. package/dist/assets/{cells-DENsmH9t.js → cells-RJTD-euN.js} +44 -44
  14. package/dist/assets/{chat-display-CcL_dydg.js → chat-display-17k5Uy0b.js} +1 -1
  15. package/dist/assets/{chat-panel-CA-2-S1C.js → chat-panel-CGwZggen.js} +2 -2
  16. package/dist/assets/{chat-ui-DQeA0_b5.js → chat-ui-BrSyHh93.js} +1 -1
  17. package/dist/assets/{column-preview-BPgYXdDd.js → column-preview-dW7xtQ7S.js} +1 -1
  18. package/dist/assets/{command-palette-WlkKgdrI.js → command-palette-DtKhXIMn.js} +1 -1
  19. package/dist/assets/{common-DdBQICbD.js → common-DHzo8K8C.js} +1 -1
  20. package/dist/assets/components-ChBJEsmj.js +1 -0
  21. package/dist/assets/datasource-RP7m6Xrh.js +3 -0
  22. package/dist/assets/{dependency-graph-panel-nYHPHFU4.js → dependency-graph-panel-CjdEazj5.js} +4 -4
  23. package/dist/assets/{documentation-panel-Dw9tYBNf.js → documentation-panel-BcUF41gA.js} +1 -1
  24. package/dist/assets/{download-4NoBestd.js → download-CJ6tdZ-1.js} +4 -4
  25. package/dist/assets/{edit-page-CAfBRrHn.js → edit-page-lo6LC4Ie.js} +6 -6
  26. package/dist/assets/{error-panel-Ddr_mbqR.js → error-panel-D_1OmgVJ.js} +1 -1
  27. package/dist/assets/{file-explorer-panel-DhpN8_pR.js → file-explorer-panel-CG5na8ox.js} +3 -3
  28. package/dist/assets/{file-icons-BFLcd4J7.js → file-icons-CGJ6uWXm.js} +1 -1
  29. package/dist/assets/{file-name-input-x53prQQ6.js → file-name-input-DC8-M5r1.js} +1 -1
  30. package/dist/assets/{floating-outline--OlHG_yX.js → floating-outline-BOkj3eC_.js} +1 -1
  31. package/dist/assets/{focus-CZUEQpxX.js → focus-BViZMdHR.js} +1 -1
  32. package/dist/assets/{form-CJ3pB1ow.js → form-BbqpGicG.js} +2 -2
  33. package/dist/assets/{home-page-pH8-XovY.js → home-page-CU6li-ts.js} +2 -2
  34. package/dist/assets/{hooks-BqjZMbeu.js → hooks-CPpze3O4.js} +1 -1
  35. package/dist/assets/{html-to-image-B6eCuh-2.js → html-to-image-B8ja7wwq.js} +2 -2
  36. package/dist/assets/{index-CNmQbGXF.js → index-BcxGcwkJ.js} +6 -6
  37. package/dist/assets/kiosk-mode-BP35ALfP.js +1 -0
  38. package/dist/assets/{layout-DLJQyOOv.js → layout-BSHt96Sb.js} +5 -5
  39. package/dist/assets/{logs-panel-BBGNeMzu.js → logs-panel-CbZLi2XS.js} +1 -1
  40. package/dist/assets/{markdown-renderer-CcLl4-oB.js → markdown-renderer-jghC8PFL.js} +2 -2
  41. package/dist/assets/{name-cell-input-CNq9BTL7.js → name-cell-input-CN4MRZOm.js} +1 -1
  42. package/dist/assets/{outline-panel-CnGBTEs0.js → outline-panel-CvB3hUJ2.js} +1 -1
  43. package/dist/assets/{packages-panel-B17awHIF.js → packages-panel-BGgZLApn.js} +1 -1
  44. package/dist/assets/{panels-P8wFgP-8.js → panels-DCWntQim.js} +1 -1
  45. package/dist/assets/process-output-xDK6-i-G.js +1 -0
  46. package/dist/assets/{radio-group-B8OldelF.js → radio-group-DFkF8CeQ.js} +1 -1
  47. package/dist/assets/{readonly-code-display-bvftv2Nk.js → readonly-code-display-BHx0vyug.js} +1 -1
  48. package/dist/assets/{readonly-python-code-CoFR55Yt.js → readonly-python-code-Cla-uJpn.js} +1 -1
  49. package/dist/assets/{reveal-component-CfBFUsP0.js → reveal-component-Bvxyfpeh.js} +15 -15
  50. package/dist/assets/{run-page-CFoRuGGY.js → run-page-Cxc4jqCp.js} +1 -1
  51. package/dist/assets/scratchpad-panel-Bp4sg_00.js +1 -0
  52. package/dist/assets/{session-panel-D5OQ5JSm.js → session-panel-WkryRIGA.js} +1 -1
  53. package/dist/assets/{snippets-panel-DvfXacKM.js → snippets-panel-BcDwLUNv.js} +1 -1
  54. package/dist/assets/{state-CQn0dE8X.js → state-CXzKtmF5.js} +2 -2
  55. package/dist/assets/{state-LM4pQmYL.js → state-DHqaTLr2.js} +1 -1
  56. package/dist/assets/{textarea-Tswrj-fB.js → textarea-B5Bp08T3.js} +1 -1
  57. package/dist/assets/{tracing-BMvzhCBv.js → tracing-clJBeQm6.js} +1 -1
  58. package/dist/assets/{tracing-panel-DJF6cCQK.js → tracing-panel-7j9NY9lO.js} +2 -2
  59. package/dist/assets/{tree-actions-Bnmh7YGo.js → tree-actions-DLySKXUq.js} +1 -1
  60. package/dist/assets/useCellActionButton-CvQRbg1P.js +1 -0
  61. package/dist/assets/{useDeleteCell-DwNTIWuB.js → useDeleteCell-Sj06CzJn.js} +1 -1
  62. package/dist/assets/{useDependencyPanelTab-BH_Eu2Kq.js → useDependencyPanelTab-BTgQmu1R.js} +1 -1
  63. package/dist/assets/{useNotebookActions-BmO8IOgN.js → useNotebookActions-9PPlpXk8.js} +1 -1
  64. package/dist/assets/useRunCells-D5aAUcAa.js +1 -0
  65. package/dist/assets/useSplitCell-CGE6jkuF.js +1 -0
  66. package/dist/index.html +22 -22
  67. package/package.json +2 -2
  68. package/src/components/editor/errors/__tests__/auto-fix.test.ts +11 -107
  69. package/src/components/editor/errors/auto-fix.tsx +11 -31
  70. package/src/components/editor/output/MarimoTracebackOutput.tsx +2 -2
  71. package/src/core/ai/context/__tests__/registry.test.ts +133 -3
  72. package/src/core/ai/context/providers/__tests__/datasource.test.ts +3 -1
  73. package/src/core/ai/context/providers/__tests__/error.test.ts +200 -15
  74. package/src/core/ai/context/providers/datasource.ts +27 -2
  75. package/src/core/ai/context/providers/error.ts +226 -36
  76. package/src/core/ai/context/registry.ts +77 -43
  77. package/src/core/codemirror/ai/resources.ts +15 -10
  78. package/src/core/errors/errors.ts +2 -1
  79. package/src/core/mime.ts +11 -4
  80. package/dist/assets/MarimoErrorOutput-D07aAGkQ.js +0 -12
  81. package/dist/assets/cell-link-exzcyUhT.js +0 -1
  82. package/dist/assets/components-DinLkTiR.js +0 -1
  83. package/dist/assets/datasource-BCOYpQ69.js +0 -3
  84. package/dist/assets/kiosk-mode-BBfHxqEx.js +0 -1
  85. package/dist/assets/process-output-BGcDSQBk.js +0 -1
  86. package/dist/assets/scratchpad-panel-DdKvJKy4.js +0 -1
  87. package/dist/assets/useCellActionButton-ibDHNca0.js +0 -1
  88. package/dist/assets/useRunCells-CTpvxsqp.js +0 -1
  89. package/dist/assets/useSplitCell-CFO4Cg5B.js +0 -1
  90. package/src/core/ai/context/providers/__tests__/__snapshots__/error.test.ts.snap +0 -3
@@ -1,4 +1,4 @@
1
- var Ge=Object.defineProperty;var Ve=(t,e,s)=>e in t?Ge(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var z=(t,e,s)=>Ve(t,typeof e!="symbol"?e+"":e,s);import{s as ne}from"./chunk-LvLJmgfZ.js";import{u as Ze}from"./useEvent-D91BmmQi.js";import{t as Qe}from"./react-Bj1aDYRI.js";import{At as ce,D as Je,Qn as y}from"./cells-DENsmH9t.js";import{D as M,P as _,R as u,T as D,_ as ae,i as Ye,k as w,m as Xe}from"./zod-H_cgTO0M.js";import{t as B}from"./compiler-runtime-B3qBwwSJ.js";import{v as et}from"./useEventListener-BakX-tnw.js";import{c as tt}from"./utils-Dev6I_Kv.js";import{t as G}from"./cn-X2M2usMq.js";import{t as st}from"./jsx-runtime-PbYoItBR.js";import{a as rt,c as ie,o as le,s as ot}from"./popover-DMNO6Poc.js";import{c as nt,i as ct,n as at,r as it,s as lt,t as dt}from"./select-Cjly7tmx.js";import{a as J,c as de,o as pt,p as ht,r as mt,t as ut}from"./dropdown-menu-DfGLyCbP.js";import{t as Y}from"./button-BF7GSjhW.js";import{l as bt}from"./arrays-DWxvyYxP.js";import{r as U}from"./strings-DvZlHYnD.js";import{t as ft}from"./createLucideIcon-BTp1tQDO.js";import{t as gt}from"./circle-plus-BIy1BGHw.js";import{t as yt}from"./database-zap-DIlSqcdp.js";import{c,o as _t,t as wt,u as St}from"./form-CJ3pB1ow.js";import{n as xt}from"./DeferredRequestRegistry-RuL7NV1n.js";import{o as kt,r as vt}from"./input-DB2LiTiQ.js";import{a as $t,c as jt,d as At,g as Ct,l as Tt,o as Rt,p as Lt,s as Dt,u as It}from"./textarea-Tswrj-fB.js";import{r as Pt}from"./useTheme-D_ZbTTJw.js";import{a as qt,c as Nt,l as Ft,n as Et,r as Bt,t as Ot}from"./dialog-DkJmIrsG.js";import{n as Mt}from"./ImperativeModal-B62Q6S9l.js";import{t as V}from"./links-CCkJpphF.js";import{t as Ut}from"./useIframeCapabilities-B0dNZiKK.js";import{r as Kt}from"./html-to-image-B6eCuh-2.js";import{o as Ht}from"./focus-CZUEQpxX.js";import{n as Wt}from"./useAsyncData-DAQcLiyE.js";import{n as zt,t as Gt}from"./azure-DBVzcmvx.js";import{t as Vt}from"./request-registry-K6vbazWs.js";import{n as Zt,t as Qt}from"./write-secret-modal-K2n79wHj.js";import{t as Jt}from"./github-DghuZBnj.js";var X=ft("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"}]]),ee="env:";function Or(t){return t}function K(t){return typeof t=="string"?t.startsWith(ee):!1}function te(t){return`${ee}${t}`}function pe(t){return t.replace(ee,"")}var Yt=B(),N=ne(Qe(),1),n=ne(st(),1),he=(0,N.createContext)({providerNames:[],secretKeys:[],loading:!1,error:void 0,refreshSecrets:et.NOOP});const Xt=()=>(0,N.use)(he),es=t=>{let e=(0,Yt.c)(14),{children:s}=t,o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=[],e[0]=o):o=e[0];let{data:r,isPending:d,error:i,refetch:a}=Wt(ns,o),l;e[1]===(r==null?void 0:r.secretKeys)?l=e[2]:(l=(r==null?void 0:r.secretKeys)||[],e[1]=r==null?void 0:r.secretKeys,e[2]=l);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]!==d||e[7]!==a||e[8]!==l||e[9]!==p?(h={secretKeys:l,providerNames:p,loading:d,error:i,refreshSecrets:a},e[5]=i,e[6]=d,e[7]=a,e[8]=l,e[9]=p,e[10]=h):h=e[10];let f;return e[11]!==s||e[12]!==h?(f=(0,n.jsx)(he,{value:h,children:s}),e[11]=s,e[12]=h,e[13]=f):f=e[13],f},ts={isMatch:t=>{if(t instanceof ae||t instanceof Xe){let{optionRegex:e}=c.parse(t.description||"");return!!e}return!1},Component:({schema:t,form:e,path:s})=>{let{secretKeys:o,providerNames:r,refreshSecrets:d}=Xt(),{openModal:i,closeModal:a}=Mt(),{label:l,description:p,optionRegex:h=""}=c.parse(t.description||""),[f,b]=bt(o,m=>new RegExp(h,"i").test(m));return(0,n.jsx)(jt,{control:e.control,name:s,render:({field:m})=>(0,n.jsxs)(Tt,{children:[(0,n.jsx)(It,{children:l}),(0,n.jsx)(Rt,{children:p}),(0,n.jsx)($t,{children:(0,n.jsxs)("div",{className:"flex gap-2",children:[t instanceof ae?(0,n.jsx)(vt,{...m,value:m.value,onChange:m.onChange,className:G("flex-1")}):(0,n.jsx)(kt,{...m,value:m.value,onChange:m.onChange,className:"flex-1"}),(0,n.jsxs)(ut,{children:[(0,n.jsx)(ht,{asChild:!0,children:(0,n.jsx)(Y,{variant:"outline",size:"icon",className:G(K(m.value)&&"bg-accent"),children:(0,n.jsx)(xt,{className:"h-3 w-3"})})}),(0,n.jsxs)(mt,{align:"end",className:"max-h-60 overflow-y-auto",children:[(0,n.jsxs)(J,{onSelect:()=>{i((0,n.jsx)(Qt,{providerNames:r,onSuccess:g=>{d(),m.onChange(te(g)),a()},onClose:a}))},children:[(0,n.jsx)(gt,{className:"mr-2 h-3.5 w-3.5"}),"Create a new secret"]}),f.length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(de,{}),(0,n.jsx)(pt,{children:"Recommended"})]}),f.map(g=>(0,n.jsx)(J,{onSelect:()=>m.onChange(te(g)),children:g},g)),b.length>0&&(0,n.jsx)(de,{}),b.map(g=>(0,n.jsx)(J,{onSelect:()=>m.onChange(te(g)),children:g},g))]})]})]})}),(0,n.jsx)(At,{})]})})}};function ss(t){return t.provider!=="env"}function rs(t){return t.name}function os(t){return t.keys}async function ns(){let t=await Vt.request({}),e=Zt(t.secrets).filter(ss).map(rs);return{secretKeys:t.secrets.flatMap(os).toSorted(),providerNames:e}}var H=B(),cs=[ts];const se=t=>{let e=(0,H.c)(2),{children:s}=t,o;return e[0]===s?o=e[1]:(o=(0,n.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4",children:s}),e[0]=s,e[1]=o),o},re=t=>{let e=(0,H.c)(9),{name:s,color:o,icon:r,onSelect:d}=t,i;e[0]===o?i=e[1]:(i={backgroundColor:o},e[0]=o,e[1]=i);let a;e[2]===s?a=e[3]:(a=(0,n.jsx)("span",{className:"text-white font-medium text-lg",children:s}),e[2]=s,e[3]=a);let l;return e[4]!==r||e[5]!==d||e[6]!==i||e[7]!==a?(l=(0,n.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:d,children:[r,a]}),e[4]=r,e[5]=d,e[6]=i,e[7]=a,e[8]=l):l=e[8],l},as=t=>{let e=(0,H.c)(25),{onBack:s,isValid:o,libraries:r,preferredLibrary:d,onLibraryChange:i,displayNames:a,libraryLabel:l}=t,p=l===void 0?"Preferred library":l,h;e[0]===s?h=e[1]:(h=(0,n.jsx)(Y,{type:"button",variant:"outline",onClick:s,children:"Back"}),e[0]=s,e[1]=h);let f=!o,b;e[2]===f?b=e[3]:(b=(0,n.jsx)(Y,{type:"submit",disabled:f,children:"Add"}),e[2]=f,e[3]=b);let m;e[4]!==h||e[5]!==b?(m=(0,n.jsxs)("div",{className:"flex gap-2",children:[h,b]}),e[4]=h,e[5]=b,e[6]=m):m=e[6];let g;e[7]===Symbol.for("react.memo_cache_sentinel")?(g=(0,n.jsx)(lt,{children:(0,n.jsx)(nt,{placeholder:"Select a library"})}),e[7]=g):g=e[7];let S;e[8]===p?S=e[9]:(S=(0,n.jsxs)("div",{className:"flex flex-col gap-1 items-end",children:[g,(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:p})]}),e[8]=p,e[9]=S);let $;if(e[10]!==a||e[11]!==r){let j;e[13]===a?j=e[14]:(j=R=>(0,n.jsx)(ct,{value:R,children:a[R]??R},R),e[13]=a,e[14]=j),$=r.map(j),e[10]=a,e[11]=r,e[12]=$}else $=e[12];let x;e[15]===$?x=e[16]:(x=(0,n.jsx)(at,{children:(0,n.jsx)(it,{children:$})}),e[15]=$,e[16]=x);let v;e[17]!==i||e[18]!==d||e[19]!==S||e[20]!==x?(v=(0,n.jsx)("div",{children:(0,n.jsxs)(dt,{value:d,onValueChange:i,children:[S,x]})}),e[17]=i,e[18]=d,e[19]=S,e[20]=x,e[21]=v):v=e[21];let A;return e[22]!==v||e[23]!==m?(A=(0,n.jsxs)("div",{className:"flex gap-2 justify-between",children:[m,v]}),e[22]=v,e[23]=m,e[24]=A):A=e[24],A};function is(){let t=(0,H.c)(4),{createNewCell:e}=Je(),s=Ht(),o=Ze(tt),r;return t[0]!==o||t[1]!==e||t[2]!==s?(r=d=>{/\bmo\./.test(d)&&Kt({autoInstantiate:o,createNewCell:e,fromCellId:s}),e({code:d,before:!1,cellId:s??"__end__",skipIfCodeExists:!0})},t[0]=o,t[1]=e,t[2]=s,t[3]=r):r=t[3],r}const me=t=>{let e=(0,H.c)(30),{schema:s,libraries:o,preferredLibrary:r,displayNames:d,libraryLabel:i,generateCode:a,onSubmit:l,onBack:p}=t,h;e[0]===s?h=e[1]:(h=_t(s),e[0]=s,e[1]=h);let f=h,b;e[2]===s?b=e[3]:(b=Lt(s),e[2]=s,e[3]=b);let m;e[4]!==f||e[5]!==b?(m={defaultValues:f,resolver:b,reValidateMode:"onChange"},e[4]=f,e[5]=b,e[6]=m):m=e[6];let g=Ct(m),[S,$]=N.useState(r),x=is(),v;e[7]!==a||e[8]!==x||e[9]!==l||e[10]!==S?(v=ze=>{x(a(ze,S)),l()},e[7]=a,e[8]=x,e[9]=l,e[10]=S,e[11]=v):v=e[11];let A=v,j;e[12]!==g||e[13]!==A?(j=g.handleSubmit(A),e[12]=g,e[13]=A,e[14]=j):j=e[14];let R;e[15]===Symbol.for("react.memo_cache_sentinel")?(R=(0,n.jsx)(Dt,{}),e[15]=R):R=e[15];let F;e[16]!==g||e[17]!==s?(F=(0,n.jsx)(es,{children:(0,n.jsx)(wt,{schema:s,form:g,renderers:cs,children:R})}),e[16]=g,e[17]=s,e[18]=F):F=e[18];let E;e[19]!==d||e[20]!==g.formState.isValid||e[21]!==o||e[22]!==i||e[23]!==p||e[24]!==S?(E=(0,n.jsx)(as,{onBack:p,isValid:g.formState.isValid,libraries:o,preferredLibrary:S,onLibraryChange:$,displayNames:d,libraryLabel:i}),e[19]=d,e[20]=g.formState.isValid,e[21]=o,e[22]=i,e[23]=p,e[24]=S,e[25]=E):E=e[25];let W;return e[26]!==j||e[27]!==F||e[28]!==E?(W=(0,n.jsxs)("form",{onSubmit:j,className:"space-y-4",children:[F,E]}),e[26]=j,e[27]=F,e[28]=E,e[29]=W):W=e[29],W};function I(){return u().optional().describe(c.of({label:"Password",inputType:"password",placeholder:"password",optionRegex:".*password.*"}))}function Z(t,e){let s=u();return s=e?s.nonempty():s.optional(),s=s.describe(c.of({label:t||"Token",inputType:"password",placeholder:"token",optionRegex:".*token.*"})),s}function Q(){return u().optional().describe(c.of({label:"Warehouse Name",placeholder:"warehouse",optionRegex:".*warehouse.*"}))}function oe(t,e){let s=u();return s=e?s.nonempty():s.optional(),s.describe(c.of({label:t||"URI",optionRegex:".*uri.*"}))}function L(t){return u().nonempty().describe(c.of({label:t||"Host",placeholder:"localhost",optionRegex:".*host.*"}))}function C(){return u().describe(c.of({label:"Database",placeholder:"db name",optionRegex:".*database.*"}))}function ls(){return u().describe(c.of({label:"Schema",placeholder:"schema name",optionRegex:".*schema.*"}))}function T(){return u().nonempty().describe(c.of({label:"Username",placeholder:"username",optionRegex:".*username.*"}))}function P(t){let e=Ye().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 ue(){return D().default(!1).describe(c.of({label:"Read Only"}))}const be=_({type:w("postgres"),host:L(),port:P(5432).optional(),database:C(),username:T(),password:I(),ssl:D().default(!1).describe(c.of({label:"Use SSL"}))}).describe(c.of({direction:"two-columns"})),fe=_({type:w("mysql"),host:L(),port:P(3306),database:C(),username:T(),password:I(),ssl:D().default(!1).describe(c.of({label:"Use SSL"}))}).describe(c.of({direction:"two-columns"})),ge=_({type:w("sqlite"),database:C().describe(c.of({label:"Database Path"}))}).describe(c.of({direction:"two-columns"})),ye=_({type:w("duckdb"),database:C().describe(c.of({label:"Database Path"})),read_only:ue()}).describe(c.of({direction:"two-columns"})),_e=_({type:w("motherduck"),database:C().default("my_db").describe(c.of({label:"Database Name"})),token:Z()}).describe(c.of({direction:"two-columns"})),we=_({type:w("snowflake"),account:u().nonempty().describe(c.of({label:"Account",optionRegex:".*snowflake.*"})),warehouse:u().optional().describe(c.of({label:"Warehouse",optionRegex:".*snowflake.*"})),database:C(),schema:u().optional().describe(c.of({label:"Schema",optionRegex:".*snowflake.*"})),role:u().optional().describe(c.of({label:"Role"})),authType:M("type",[_({type:w("Password"),username:T(),password:I(),enable_mfa:D().default(!1).describe(c.of({label:"Enable MFA (Duo Push)"}))}),_({type:w("SSO (Browser)"),username:T()}),_({type:w("Key Pair"),username:T(),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.*"}))}),_({type:w("OAuth / PAT"),token:Z("Token",!0)})]).default({type:"Password",username:"username",enable_mfa:!1}).describe(c.of({special:"tabs"}))}).describe(c.of({direction:"two-columns"})),Se=_({type:w("bigquery"),project:u().nonempty().describe(c.of({label:"Project ID",optionRegex:".*bigquery.*"})),dataset:u().nonempty().describe(c.of({label:"Dataset",optionRegex:".*bigquery.*"})),credentials_json:u().describe(c.of({label:"Credentials JSON",inputType:"textarea"}))}).describe(c.of({direction:"two-columns"})),xe=_({type:w("clickhouse_connect"),host:L(),port:P(8123).optional(),username:T(),password:I(),secure:D().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"})),ke=_({type:w("timeplus"),host:L().default("localhost"),port:P(8123).optional(),username:T().default("default"),password:I().default("")}).describe(c.of({direction:"two-columns"})),ve=_({type:w("chdb"),database:C().describe(c.of({label:"Database Path"})),read_only:ue()}).describe(c.of({direction:"two-columns"})),$e=_({type:w("trino"),host:L(),port:P(8080),database:C(),schema:ls().optional(),username:T(),password:I(),async_support:D().default(!1).describe(c.of({label:"Async Support"}))}).describe(c.of({direction:"two-columns"})),je=_({type:w("iceberg"),name:u().describe(c.of({label:"Catalog Name"})),catalog:M("type",[_({type:w("REST"),warehouse:Q(),uri:u().optional().describe(c.of({label:"URI",placeholder:"https://",optionRegex:".*uri.*"})),token:Z()}),_({type:w("SQL"),warehouse:Q(),uri:u().optional().describe(c.of({label:"URI",placeholder:"jdbc:iceberg://host:port/database",optionRegex:".*uri.*"}))}),_({type:w("Hive"),warehouse:Q(),uri:oe()}),_({type:w("Glue"),warehouse:Q(),uri:oe()}),_({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"})),"dynamodb.secret-access-key":u().optional().describe(c.of({label:"Secret Access Key",inputType:"password"})),"dynamodb.session-token":u().optional().describe(c.of({label:"Session Token",inputType:"password"}))})]).default({type:"REST",token:void 0}).describe(c.of({special:"tabs"}))}),Ae=_({type:w("datafusion"),sessionContext:D().optional().describe(c.of({label:"Use Session Context"}))}),Ce=_({type:w("pyspark"),host:L().optional(),port:P().optional()}),Te=_({type:w("redshift"),host:L(),port:P(5439),connectionType:M("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:".*aws_access_key_id.*"})),aws_secret_access_key:u().nonempty().describe(c.of({label:"AWS Secret Access Key",inputType:"password",optionRegex:".*aws_secret_access_key.*"})),aws_session_token:u().optional().describe(c.of({label:"AWS Session Token",inputType:"password",optionRegex:".*aws_session_token.*"}))}),_({type:w("DB credentials"),user:T(),password:I()})]).default({type:"IAM credentials",aws_access_key_id:"",aws_secret_access_key:"",region:""}),database:C()}).describe(c.of({direction:"two-columns"})),Re=_({type:w("databricks"),access_token:Z("Access Token",!0),server_hostname:L("Server Hostname"),http_path:oe("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"})),Le=_({type:w("supabase"),host:L(),port:P(5432).optional(),database:C(),username:T(),password:I(),disable_client_pooling:D().default(!1).describe(c.of({label:"Disable Client-Side Pooling"}))}).describe(c.of({direction:"two-columns"})),ds=M("type",[be,fe,ge,ye,_e,we,Se,xe,ke,ve,$e,je,Ae,Ce,Te,Re,Le]),De={sqlmodel:"SQLModel",sqlalchemy:"SQLAlchemy",duckdb:"DuckDB",clickhouse_connect:"ClickHouse Connect",chdb:"chDB",pyiceberg:"PyIceberg",ibis:"Ibis",motherduck:"MotherDuck",redshift:"Redshift",databricks:"Databricks"};var k=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}},ps=t=>`_${t}`,hs=class{constructor(){z(this,"secrets",{})}get imports(){return Object.keys(this.secrets).length===0?new Set:new Set(["import os"])}print(t,e,s){if(t=ps(t),K(e)){let o=pe(e),r=s?`os.environ.get("${o}", "${s}")`:`os.environ.get("${o}")`;return this.secrets[t]=r,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"?O(e):e?`"${e}"`:""}printInFString(t,e,s){if(e===void 0)return"";if(typeof e=="number")return`${e}`;if(typeof e=="boolean")return O(e);let o=this.print(t,e,s);return o.startsWith('"')&&o.endsWith('"')?o.slice(1,-1):`{${o}}`}printPassword(t,e,s,o){let r=s?this.printInFString.bind(this):this.print.bind(this);return K(t)?r(o||"password",t):r(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 Ge=Object.defineProperty;var Ve=(t,e,s)=>e in t?Ge(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s;var z=(t,e,s)=>Ve(t,typeof e!="symbol"?e+"":e,s);import{s as ne}from"./chunk-LvLJmgfZ.js";import{u as Ze}from"./useEvent-D91BmmQi.js";import{t as Qe}from"./react-Bj1aDYRI.js";import{$n as y,E as Je,jt as ce}from"./cells-RJTD-euN.js";import{D as M,P as _,R as u,T as D,_ as ae,i as Ye,k as w,m as Xe}from"./zod-H_cgTO0M.js";import{t as B}from"./compiler-runtime-B3qBwwSJ.js";import{v as et}from"./useEventListener-BakX-tnw.js";import{c as tt}from"./utils-Dev6I_Kv.js";import{t as G}from"./cn-X2M2usMq.js";import{t as st}from"./jsx-runtime-PbYoItBR.js";import{a as rt,c as ie,o as le,s as ot}from"./popover-DMNO6Poc.js";import{c as nt,i as ct,n as at,r as it,s as lt,t as dt}from"./select-Cjly7tmx.js";import{a as J,c as de,o as pt,p as ht,r as mt,t as ut}from"./dropdown-menu-DfGLyCbP.js";import{t as Y}from"./button-BF7GSjhW.js";import{l as bt}from"./arrays-DWxvyYxP.js";import{r as U}from"./strings-DvZlHYnD.js";import{t as ft}from"./createLucideIcon-BTp1tQDO.js";import{t as gt}from"./circle-plus-BIy1BGHw.js";import{t as yt}from"./database-zap-DIlSqcdp.js";import{c,o as _t,t as wt,u as St}from"./form-BbqpGicG.js";import{n as xt}from"./DeferredRequestRegistry-RuL7NV1n.js";import{o as kt,r as vt}from"./input-DB2LiTiQ.js";import{a as $t,c as jt,d as Ct,g as At,l as Tt,o as Rt,p as Lt,s as Dt,u as It}from"./textarea-B5Bp08T3.js";import{r as Pt}from"./useTheme-D_ZbTTJw.js";import{a as qt,c as Nt,l as Ft,n as Et,r as Bt,t as Ot}from"./dialog-DkJmIrsG.js";import{n as Mt}from"./ImperativeModal-B62Q6S9l.js";import{t as V}from"./links-CCkJpphF.js";import{t as Ut}from"./useIframeCapabilities-B0dNZiKK.js";import{r as Kt}from"./html-to-image-B8ja7wwq.js";import{o as Ht}from"./focus-BViZMdHR.js";import{n as Wt}from"./useAsyncData-DAQcLiyE.js";import{n as zt,t as Gt}from"./azure-DBVzcmvx.js";import{t as Vt}from"./request-registry-K6vbazWs.js";import{n as Zt,t as Qt}from"./write-secret-modal-K2n79wHj.js";import{t as Jt}from"./github-DghuZBnj.js";var X=ft("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"}]]),ee="env:";function Or(t){return t}function K(t){return typeof t=="string"?t.startsWith(ee):!1}function te(t){return`${ee}${t}`}function pe(t){return t.replace(ee,"")}var Yt=B(),N=ne(Qe(),1),n=ne(st(),1),he=(0,N.createContext)({providerNames:[],secretKeys:[],loading:!1,error:void 0,refreshSecrets:et.NOOP});const Xt=()=>(0,N.use)(he),es=t=>{let e=(0,Yt.c)(14),{children:s}=t,o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=[],e[0]=o):o=e[0];let{data:r,isPending:d,error:i,refetch:a}=Wt(ns,o),l;e[1]===(r==null?void 0:r.secretKeys)?l=e[2]:(l=(r==null?void 0:r.secretKeys)||[],e[1]=r==null?void 0:r.secretKeys,e[2]=l);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]!==d||e[7]!==a||e[8]!==l||e[9]!==p?(h={secretKeys:l,providerNames:p,loading:d,error:i,refreshSecrets:a},e[5]=i,e[6]=d,e[7]=a,e[8]=l,e[9]=p,e[10]=h):h=e[10];let f;return e[11]!==s||e[12]!==h?(f=(0,n.jsx)(he,{value:h,children:s}),e[11]=s,e[12]=h,e[13]=f):f=e[13],f},ts={isMatch:t=>{if(t instanceof ae||t instanceof Xe){let{optionRegex:e}=c.parse(t.description||"");return!!e}return!1},Component:({schema:t,form:e,path:s})=>{let{secretKeys:o,providerNames:r,refreshSecrets:d}=Xt(),{openModal:i,closeModal:a}=Mt(),{label:l,description:p,optionRegex:h=""}=c.parse(t.description||""),[f,b]=bt(o,m=>new RegExp(h,"i").test(m));return(0,n.jsx)(jt,{control:e.control,name:s,render:({field:m})=>(0,n.jsxs)(Tt,{children:[(0,n.jsx)(It,{children:l}),(0,n.jsx)(Rt,{children:p}),(0,n.jsx)($t,{children:(0,n.jsxs)("div",{className:"flex gap-2",children:[t instanceof ae?(0,n.jsx)(vt,{...m,value:m.value,onChange:m.onChange,className:G("flex-1")}):(0,n.jsx)(kt,{...m,value:m.value,onChange:m.onChange,className:"flex-1"}),(0,n.jsxs)(ut,{children:[(0,n.jsx)(ht,{asChild:!0,children:(0,n.jsx)(Y,{variant:"outline",size:"icon",className:G(K(m.value)&&"bg-accent"),children:(0,n.jsx)(xt,{className:"h-3 w-3"})})}),(0,n.jsxs)(mt,{align:"end",className:"max-h-60 overflow-y-auto",children:[(0,n.jsxs)(J,{onSelect:()=>{i((0,n.jsx)(Qt,{providerNames:r,onSuccess:g=>{d(),m.onChange(te(g)),a()},onClose:a}))},children:[(0,n.jsx)(gt,{className:"mr-2 h-3.5 w-3.5"}),"Create a new secret"]}),f.length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(de,{}),(0,n.jsx)(pt,{children:"Recommended"})]}),f.map(g=>(0,n.jsx)(J,{onSelect:()=>m.onChange(te(g)),children:g},g)),b.length>0&&(0,n.jsx)(de,{}),b.map(g=>(0,n.jsx)(J,{onSelect:()=>m.onChange(te(g)),children:g},g))]})]})]})}),(0,n.jsx)(Ct,{})]})})}};function ss(t){return t.provider!=="env"}function rs(t){return t.name}function os(t){return t.keys}async function ns(){let t=await Vt.request({}),e=Zt(t.secrets).filter(ss).map(rs);return{secretKeys:t.secrets.flatMap(os).toSorted(),providerNames:e}}var H=B(),cs=[ts];const se=t=>{let e=(0,H.c)(2),{children:s}=t,o;return e[0]===s?o=e[1]:(o=(0,n.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4",children:s}),e[0]=s,e[1]=o),o},re=t=>{let e=(0,H.c)(9),{name:s,color:o,icon:r,onSelect:d}=t,i;e[0]===o?i=e[1]:(i={backgroundColor:o},e[0]=o,e[1]=i);let a;e[2]===s?a=e[3]:(a=(0,n.jsx)("span",{className:"text-white font-medium text-lg",children:s}),e[2]=s,e[3]=a);let l;return e[4]!==r||e[5]!==d||e[6]!==i||e[7]!==a?(l=(0,n.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:d,children:[r,a]}),e[4]=r,e[5]=d,e[6]=i,e[7]=a,e[8]=l):l=e[8],l},as=t=>{let e=(0,H.c)(25),{onBack:s,isValid:o,libraries:r,preferredLibrary:d,onLibraryChange:i,displayNames:a,libraryLabel:l}=t,p=l===void 0?"Preferred library":l,h;e[0]===s?h=e[1]:(h=(0,n.jsx)(Y,{type:"button",variant:"outline",onClick:s,children:"Back"}),e[0]=s,e[1]=h);let f=!o,b;e[2]===f?b=e[3]:(b=(0,n.jsx)(Y,{type:"submit",disabled:f,children:"Add"}),e[2]=f,e[3]=b);let m;e[4]!==h||e[5]!==b?(m=(0,n.jsxs)("div",{className:"flex gap-2",children:[h,b]}),e[4]=h,e[5]=b,e[6]=m):m=e[6];let g;e[7]===Symbol.for("react.memo_cache_sentinel")?(g=(0,n.jsx)(lt,{children:(0,n.jsx)(nt,{placeholder:"Select a library"})}),e[7]=g):g=e[7];let S;e[8]===p?S=e[9]:(S=(0,n.jsxs)("div",{className:"flex flex-col gap-1 items-end",children:[g,(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:p})]}),e[8]=p,e[9]=S);let $;if(e[10]!==a||e[11]!==r){let j;e[13]===a?j=e[14]:(j=R=>(0,n.jsx)(ct,{value:R,children:a[R]??R},R),e[13]=a,e[14]=j),$=r.map(j),e[10]=a,e[11]=r,e[12]=$}else $=e[12];let x;e[15]===$?x=e[16]:(x=(0,n.jsx)(at,{children:(0,n.jsx)(it,{children:$})}),e[15]=$,e[16]=x);let v;e[17]!==i||e[18]!==d||e[19]!==S||e[20]!==x?(v=(0,n.jsx)("div",{children:(0,n.jsxs)(dt,{value:d,onValueChange:i,children:[S,x]})}),e[17]=i,e[18]=d,e[19]=S,e[20]=x,e[21]=v):v=e[21];let C;return e[22]!==v||e[23]!==m?(C=(0,n.jsxs)("div",{className:"flex gap-2 justify-between",children:[m,v]}),e[22]=v,e[23]=m,e[24]=C):C=e[24],C};function is(){let t=(0,H.c)(4),{createNewCell:e}=Je(),s=Ht(),o=Ze(tt),r;return t[0]!==o||t[1]!==e||t[2]!==s?(r=d=>{/\bmo\./.test(d)&&Kt({autoInstantiate:o,createNewCell:e,fromCellId:s}),e({code:d,before:!1,cellId:s??"__end__",skipIfCodeExists:!0})},t[0]=o,t[1]=e,t[2]=s,t[3]=r):r=t[3],r}const me=t=>{let e=(0,H.c)(30),{schema:s,libraries:o,preferredLibrary:r,displayNames:d,libraryLabel:i,generateCode:a,onSubmit:l,onBack:p}=t,h;e[0]===s?h=e[1]:(h=_t(s),e[0]=s,e[1]=h);let f=h,b;e[2]===s?b=e[3]:(b=Lt(s),e[2]=s,e[3]=b);let m;e[4]!==f||e[5]!==b?(m={defaultValues:f,resolver:b,reValidateMode:"onChange"},e[4]=f,e[5]=b,e[6]=m):m=e[6];let g=At(m),[S,$]=N.useState(r),x=is(),v;e[7]!==a||e[8]!==x||e[9]!==l||e[10]!==S?(v=ze=>{x(a(ze,S)),l()},e[7]=a,e[8]=x,e[9]=l,e[10]=S,e[11]=v):v=e[11];let C=v,j;e[12]!==g||e[13]!==C?(j=g.handleSubmit(C),e[12]=g,e[13]=C,e[14]=j):j=e[14];let R;e[15]===Symbol.for("react.memo_cache_sentinel")?(R=(0,n.jsx)(Dt,{}),e[15]=R):R=e[15];let F;e[16]!==g||e[17]!==s?(F=(0,n.jsx)(es,{children:(0,n.jsx)(wt,{schema:s,form:g,renderers:cs,children:R})}),e[16]=g,e[17]=s,e[18]=F):F=e[18];let E;e[19]!==d||e[20]!==g.formState.isValid||e[21]!==o||e[22]!==i||e[23]!==p||e[24]!==S?(E=(0,n.jsx)(as,{onBack:p,isValid:g.formState.isValid,libraries:o,preferredLibrary:S,onLibraryChange:$,displayNames:d,libraryLabel:i}),e[19]=d,e[20]=g.formState.isValid,e[21]=o,e[22]=i,e[23]=p,e[24]=S,e[25]=E):E=e[25];let W;return e[26]!==j||e[27]!==F||e[28]!==E?(W=(0,n.jsxs)("form",{onSubmit:j,className:"space-y-4",children:[F,E]}),e[26]=j,e[27]=F,e[28]=E,e[29]=W):W=e[29],W};function I(){return u().optional().describe(c.of({label:"Password",inputType:"password",placeholder:"password",optionRegex:".*password.*"}))}function Z(t,e){let s=u();return s=e?s.nonempty():s.optional(),s=s.describe(c.of({label:t||"Token",inputType:"password",placeholder:"token",optionRegex:".*token.*"})),s}function Q(){return u().optional().describe(c.of({label:"Warehouse Name",placeholder:"warehouse",optionRegex:".*warehouse.*"}))}function oe(t,e){let s=u();return s=e?s.nonempty():s.optional(),s.describe(c.of({label:t||"URI",optionRegex:".*uri.*"}))}function L(t){return u().nonempty().describe(c.of({label:t||"Host",placeholder:"localhost",optionRegex:".*host.*"}))}function A(){return u().describe(c.of({label:"Database",placeholder:"db name",optionRegex:".*database.*"}))}function ls(){return u().describe(c.of({label:"Schema",placeholder:"schema name",optionRegex:".*schema.*"}))}function T(){return u().nonempty().describe(c.of({label:"Username",placeholder:"username",optionRegex:".*username.*"}))}function P(t){let e=Ye().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 ue(){return D().default(!1).describe(c.of({label:"Read Only"}))}const be=_({type:w("postgres"),host:L(),port:P(5432).optional(),database:A(),username:T(),password:I(),ssl:D().default(!1).describe(c.of({label:"Use SSL"}))}).describe(c.of({direction:"two-columns"})),fe=_({type:w("mysql"),host:L(),port:P(3306),database:A(),username:T(),password:I(),ssl:D().default(!1).describe(c.of({label:"Use SSL"}))}).describe(c.of({direction:"two-columns"})),ge=_({type:w("sqlite"),database:A().describe(c.of({label:"Database Path"}))}).describe(c.of({direction:"two-columns"})),ye=_({type:w("duckdb"),database:A().describe(c.of({label:"Database Path"})),read_only:ue()}).describe(c.of({direction:"two-columns"})),_e=_({type:w("motherduck"),database:A().default("my_db").describe(c.of({label:"Database Name"})),token:Z()}).describe(c.of({direction:"two-columns"})),we=_({type:w("snowflake"),account:u().nonempty().describe(c.of({label:"Account",optionRegex:".*snowflake.*"})),warehouse:u().optional().describe(c.of({label:"Warehouse",optionRegex:".*snowflake.*"})),database:A(),schema:u().optional().describe(c.of({label:"Schema",optionRegex:".*snowflake.*"})),role:u().optional().describe(c.of({label:"Role"})),authType:M("type",[_({type:w("Password"),username:T(),password:I(),enable_mfa:D().default(!1).describe(c.of({label:"Enable MFA (Duo Push)"}))}),_({type:w("SSO (Browser)"),username:T()}),_({type:w("Key Pair"),username:T(),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.*"}))}),_({type:w("OAuth / PAT"),token:Z("Token",!0)})]).default({type:"Password",username:"username",enable_mfa:!1}).describe(c.of({special:"tabs"}))}).describe(c.of({direction:"two-columns"})),Se=_({type:w("bigquery"),project:u().nonempty().describe(c.of({label:"Project ID",optionRegex:".*bigquery.*"})),dataset:u().nonempty().describe(c.of({label:"Dataset",optionRegex:".*bigquery.*"})),credentials_json:u().describe(c.of({label:"Credentials JSON",inputType:"textarea"}))}).describe(c.of({direction:"two-columns"})),xe=_({type:w("clickhouse_connect"),host:L(),port:P(8123).optional(),username:T(),password:I(),secure:D().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"})),ke=_({type:w("timeplus"),host:L().default("localhost"),port:P(8123).optional(),username:T().default("default"),password:I().default("")}).describe(c.of({direction:"two-columns"})),ve=_({type:w("chdb"),database:A().describe(c.of({label:"Database Path"})),read_only:ue()}).describe(c.of({direction:"two-columns"})),$e=_({type:w("trino"),host:L(),port:P(8080),database:A(),schema:ls().optional(),username:T(),password:I(),async_support:D().default(!1).describe(c.of({label:"Async Support"}))}).describe(c.of({direction:"two-columns"})),je=_({type:w("iceberg"),name:u().describe(c.of({label:"Catalog Name"})),catalog:M("type",[_({type:w("REST"),warehouse:Q(),uri:u().optional().describe(c.of({label:"URI",placeholder:"https://",optionRegex:".*uri.*"})),token:Z()}),_({type:w("SQL"),warehouse:Q(),uri:u().optional().describe(c.of({label:"URI",placeholder:"jdbc:iceberg://host:port/database",optionRegex:".*uri.*"}))}),_({type:w("Hive"),warehouse:Q(),uri:oe()}),_({type:w("Glue"),warehouse:Q(),uri:oe()}),_({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"})),"dynamodb.secret-access-key":u().optional().describe(c.of({label:"Secret Access Key",inputType:"password"})),"dynamodb.session-token":u().optional().describe(c.of({label:"Session Token",inputType:"password"}))})]).default({type:"REST",token:void 0}).describe(c.of({special:"tabs"}))}),Ce=_({type:w("datafusion"),sessionContext:D().optional().describe(c.of({label:"Use Session Context"}))}),Ae=_({type:w("pyspark"),host:L().optional(),port:P().optional()}),Te=_({type:w("redshift"),host:L(),port:P(5439),connectionType:M("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:".*aws_access_key_id.*"})),aws_secret_access_key:u().nonempty().describe(c.of({label:"AWS Secret Access Key",inputType:"password",optionRegex:".*aws_secret_access_key.*"})),aws_session_token:u().optional().describe(c.of({label:"AWS Session Token",inputType:"password",optionRegex:".*aws_session_token.*"}))}),_({type:w("DB credentials"),user:T(),password:I()})]).default({type:"IAM credentials",aws_access_key_id:"",aws_secret_access_key:"",region:""}),database:A()}).describe(c.of({direction:"two-columns"})),Re=_({type:w("databricks"),access_token:Z("Access Token",!0),server_hostname:L("Server Hostname"),http_path:oe("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"})),Le=_({type:w("supabase"),host:L(),port:P(5432).optional(),database:A(),username:T(),password:I(),disable_client_pooling:D().default(!1).describe(c.of({label:"Disable Client-Side Pooling"}))}).describe(c.of({direction:"two-columns"})),ds=M("type",[be,fe,ge,ye,_e,we,Se,xe,ke,ve,$e,je,Ce,Ae,Te,Re,Le]),De={sqlmodel:"SQLModel",sqlalchemy:"SQLAlchemy",duckdb:"DuckDB",clickhouse_connect:"ClickHouse Connect",chdb:"chDB",pyiceberg:"PyIceberg",ibis:"Ibis",motherduck:"MotherDuck",redshift:"Redshift",databricks:"Databricks"};var k=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}},ps=t=>`_${t}`,hs=class{constructor(){z(this,"secrets",{})}get imports(){return Object.keys(this.secrets).length===0?new Set:new Set(["import os"])}print(t,e,s){if(t=ps(t),K(e)){let o=pe(e),r=s?`os.environ.get("${o}", "${s}")`:`os.environ.get("${o}")`;return this.secrets[t]=r,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"?O(e):e?`"${e}"`:""}printInFString(t,e,s){if(e===void 0)return"";if(typeof e=="number")return`${e}`;if(typeof e=="boolean")return O(e);let o=this.print(t,e,s);return o.startsWith('"')&&o.endsWith('"')?o.slice(1,-1):`{${o}}`}printPassword(t,e,s,o){let r=s?this.printInFString.bind(this):this.print.bind(this);return K(t)?r(o||"password",t):r(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
  `)}},ms=class extends k{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
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})
@@ -112,7 +112,7 @@ ${e}
112
112
  con = ibis.pyspark.connect(session)
113
113
  `):y(`
114
114
  con = ibis.pyspark.connect()
115
- `)}},As=class extends k{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 d=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(`
115
+ `)}},Cs=class extends k{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 d=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
116
  con = redshift_connector.connect(
117
117
  ${q({iam:!0,host:t,port:e,region:`"${this.connection.connectionType.region}"`,database:s,access_key_id:d,secret_access_key:i,...a&&{session_token:a}},l=>` ${l}`)},
118
118
  )
@@ -120,7 +120,7 @@ ${q({iam:!0,host:t,port:e,region:`"${this.connection.connectionType.region}"`,da
120
120
  con = redshift_connector.connect(
121
121
  ${q({host:t,port:e,database:s,...o&&{user:o},...r&&{password:r}},d=>` ${d}`)},
122
122
  )
123
- `)}},Cs=class extends k{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"),o=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,d=this.connection.schema?this.secrets.printInFString("schema",this.connection.schema):void 0,i=`databricks://token:${e}@${s}?http_path=${o}`;return r&&(i+=`&catalog=${r}`),d&&(i+=`&schema=${d}`),this.orm==="ibis"?y(`
123
+ `)}},As=class extends k{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"),o=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,d=this.connection.schema?this.secrets.printInFString("schema",this.connection.schema):void 0,i=`databricks://token:${e}@${s}?http_path=${o}`;return r&&(i+=`&catalog=${r}`),d&&(i+=`&schema=${d}`),this.orm==="ibis"?y(`
124
124
  engine = ibis.databricks.connect(
125
125
  server_hostname=${s},
126
126
  http_path=${o},${r?`
@@ -134,10 +134,10 @@ ${q({host:t,port:e,database:s,...o&&{user:o},...r&&{password:r}},d=>` $
134
134
  `)}},Ts=class extends k{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),o=this.secrets.printInFString("port",this.connection.port),r=this.secrets.printInFString("database",this.connection.database),d=this.connection.disable_client_pooling?", poolclass=NullPool":"";return y(`
135
135
  DATABASE_URL = f"postgresql+psycopg2://${e}:${t}@${s}:${o}/${r}?sslmode=require"
136
136
  engine = ${this.orm}.create_engine(DATABASE_URL${d})
137
- `)}},Rs=class{constructor(){z(this,"secrets",new hs)}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 bs(t,e,this.secrets);case"snowflake":return new fs(t,e,this.secrets);case"bigquery":return new gs(t,e,this.secrets);case"duckdb":return new ys(t,e,this.secrets);case"motherduck":return new _s(t,e,this.secrets);case"clickhouse_connect":return new ws(t,e,this.secrets);case"timeplus":return new Ss(t,e,this.secrets);case"chdb":return new xs(t,e,this.secrets);case"trino":return new ks(t,e,this.secrets);case"iceberg":return new vs(t,e,this.secrets);case"datafusion":return new $s(t,e,this.secrets);case"pyspark":return new js(t,e,this.secrets);case"redshift":return new As(t,e,this.secrets);case"databricks":return new Cs(t,e,this.secrets);case"supabase":return new Ts(t,e,this.secrets);default:U(t)}}};function Ls(t,e){if(!(e in De))throw Error(`Unsupported library: ${e}`);ds.parse(t);let s=new Rs,o=s.createGenerator(t,e),r=o.generateConnectionCode(),d=s.secrets,i=[...new Set([...d.imports,...o.imports])].toSorted();i.push("");let a=d.formatSecrets();return a&&i.push(a),i.push(r.trim()),i.join(`
137
+ `)}},Rs=class{constructor(){z(this,"secrets",new hs)}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 bs(t,e,this.secrets);case"snowflake":return new fs(t,e,this.secrets);case"bigquery":return new gs(t,e,this.secrets);case"duckdb":return new ys(t,e,this.secrets);case"motherduck":return new _s(t,e,this.secrets);case"clickhouse_connect":return new ws(t,e,this.secrets);case"timeplus":return new Ss(t,e,this.secrets);case"chdb":return new xs(t,e,this.secrets);case"trino":return new ks(t,e,this.secrets);case"iceberg":return new vs(t,e,this.secrets);case"datafusion":return new $s(t,e,this.secrets);case"pyspark":return new js(t,e,this.secrets);case"redshift":return new Cs(t,e,this.secrets);case"databricks":return new As(t,e,this.secrets);case"supabase":return new Ts(t,e,this.secrets);default:U(t)}}};function Ls(t,e){if(!(e in De))throw Error(`Unsupported library: ${e}`);ds.parse(t);let s=new Rs,o=s.createGenerator(t,e),r=o.generateConnectionCode(),d=s.secrets,i=[...new Set([...d.imports,...o.imports])].toSorted();i.push("");let a=d.formatSecrets();return a&&i.push(a),i.push(r.trim()),i.join(`
138
138
  `)}function O(t){return t.toString().charAt(0).toUpperCase()+t.toString().slice(1)}function q(t,e){return Object.entries(t).filter(([,s])=>s!=null&&s!=="").map(([s,o])=>e(typeof o=="boolean"?`${s}=${O(o)}`:`${s}=${o}`)).join(`,
139
139
  `)}function Ds(t,e){return Object.entries(t).filter(([,s])=>s!=null&&s!=="").map(([s,o])=>{let r=`"${s}"`;return e(typeof o=="boolean"?`${r}: ${O(o)}`:`${r}: ${o}`)}).join(`,
140
- `)}var Ie=B(),Pe=[{name:"PostgreSQL",schema:be,color:"#336791",logo:"postgres",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"MySQL",schema:fe,color:"#00758F",logo:"mysql",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"SQLite",schema:ge,color:"#003B57",logo:"sqlite",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"DuckDB",schema:ye,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:we,color:"#29B5E8",logo:"snowflake",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"ClickHouse",schema:xe,color:"#2C2C1D",logo:"clickhouse",connectionLibraries:{libraries:["clickhouse_connect"],preferred:"clickhouse_connect"}},{name:"Timeplus",schema:ke,color:"#B83280",logo:"timeplus",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"BigQuery",schema:Se,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:$e,color:"#d466b6",logo:"trino",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"DataFusion",schema:Ae,color:"#202A37",logo:"datafusion",connectionLibraries:{libraries:["ibis"],preferred:"ibis"}},{name:"PySpark",schema:Ce,color:"#1C5162",logo:"pyspark",connectionLibraries:{libraries:["ibis"],preferred:"ibis"}},{name:"Redshift",schema:Te,color:"#522BAE",logo:"redshift",connectionLibraries:{libraries:["redshift"],preferred:"redshift"}},{name:"Databricks",schema:Re,color:"#c41e0c",logo:"databricks",connectionLibraries:{libraries:["sqlalchemy","sqlmodel","ibis"],preferred:"sqlalchemy"}},{name:"Supabase",schema:Le,color:"#238F5F",logo:"supabase",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}}],qe=[{name:"Iceberg",schema:je,color:"#000000",logo:"iceberg",connectionLibraries:{libraries:["pyiceberg"],preferred:"pyiceberg"}}],Is=[...Pe,...qe],Ps=t=>{let e=(0,Ie.c)(12),{onSelect:s}=t,o;e[0]===s?o=e[1]:(o=Pe.map(p=>{let{name:h,schema:f,color:b,logo:m}=p;return(0,n.jsx)(re,{name:h,color:b,icon:(0,n.jsx)(ce,{name:m,className:"w-8 h-8 text-white brightness-0 invert dark:invert"}),onSelect:()=>s(f)},h)}),e[0]=s,e[1]=o);let r;e[2]===o?r=e[3]:(r=(0,n.jsx)(se,{children:o}),e[2]=o,e[3]=r);let d;e[4]===Symbol.for("react.memo_cache_sentinel")?(d=(0,n.jsxs)("h4",{className:"font-semibold text-muted-foreground text-lg flex items-center gap-4 my-2",children:["Data Catalogs",(0,n.jsx)("hr",{className:"flex-1"})]}),e[4]=d):d=e[4];let i;e[5]===s?i=e[6]:(i=qe.map(p=>{let{name:h,schema:f,color:b,logo:m}=p;return(0,n.jsx)(re,{name:h,color:b,icon:(0,n.jsx)(ce,{name:m,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,n.jsx)(se,{children:i}),e[7]=i,e[8]=a);let l;return e[9]!==r||e[10]!==a?(l=(0,n.jsxs)(n.Fragment,{children:[r,d,a]}),e[9]=r,e[10]=a,e[11]=l):l=e[11],l};const qs=t=>{let e=(0,Ie.c)(13),{onSubmit:s,header:o}=t,[r,d]=(0,N.useState)(null);if(!r){let b;e[0]===Symbol.for("react.memo_cache_sentinel")?(b=(0,n.jsx)("div",{children:(0,n.jsx)(Ps,{onSelect:d})}),e[0]=b):b=e[0];let m;return e[1]===o?m=e[2]:(m=(0,n.jsxs)(n.Fragment,{children:[o,b]}),e[1]=o,e[2]=m),m}let i;e[3]===r?i=e[4]:(i=Is.find(b=>b.schema===r),e[3]=r,e[4]=i);let a=i==null?void 0:i.connectionLibraries,l;e[5]===(a==null?void 0:a.libraries)?l=e[6]:(l=(a==null?void 0:a.libraries)??[],e[5]=a==null?void 0:a.libraries,e[6]=l);let p=(a==null?void 0:a.preferred)??"sqlalchemy",h;e[7]===Symbol.for("react.memo_cache_sentinel")?(h=()=>d(null),e[7]=h):h=e[7];let f;return e[8]!==s||e[9]!==r||e[10]!==l||e[11]!==p?(f=(0,n.jsx)(me,{schema:r,libraries:l,preferredLibrary:p,displayNames:De,libraryLabel:"Preferred connection library",generateCode:Ns,onSubmit:s,onBack:h}),e[8]=s,e[9]=r,e[10]=l,e[11]=p,e[12]=f):f=e[12],f};function Ns(t,e){return Ls(t,e)}var Fs="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",Es="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",Bs="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",Os="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",Ms="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",Us="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",Ks=B(),Hs={s3:{src:zt,dark:Fs},coreweave:{src:Bs,dark:Os},cloudflare:{src:Es},azure:{src:Gt},gcs:{src:Ms},http:St,file:X,"in-memory":yt,gdrive:{src:Us},github:Jt};const Ne=t=>{let e=(0,Ks.c)(11),{protocol:s,forceDark:o,className:r}=t,{theme:d}=Pt(),i=Hs[s.toLowerCase()]??X;if("src"in i){let h=i.src;i.dark&&(o||d==="dark")&&(h=i.dark);let f=h,b;e[0]===r?b=e[1]:(b=G("h-3.5 w-3.5",r),e[0]=r,e[1]=b);let m;return e[2]!==s||e[3]!==h||e[4]!==b?(m=(0,n.jsx)("img",{src:f,alt:s,className:b}),e[2]=s,e[3]=h,e[4]=b,e[5]=m):m=e[5],m}let a=i,l;e[6]===r?l=e[7]:(l=G("h-3.5 w-3.5",r),e[6]=r,e[7]=l);let p;return e[8]!==a||e[9]!==l?(p=(0,n.jsx)(a,{className:l}),e[8]=a,e[9]=l,e[10]=p):p=e[10],p},Fe=_({type:w("s3"),bucket:u().nonempty().describe(c.of({label:"Bucket",placeholder:"my-bucket"})),region:u().optional().describe(c.of({label:"Region",placeholder:"us-east-1"})),access_key_id:u().optional().describe(c.of({label:"Access Key ID",inputType:"password",optionRegex:".*access_key.*"})),secret_access_key:u().optional().describe(c.of({label:"Secret Access Key",inputType:"password",optionRegex:".*secret.*access.*"})),endpoint_url:u().optional().describe(c.of({label:"Endpoint URL",placeholder:"https://s3.amazonaws.com"}))}).describe(c.of({direction:"two-columns"})),Ee=_({type:w("gcs"),bucket:u().nonempty().describe(c.of({label:"Bucket",placeholder:"my-bucket"})),service_account_key:u().optional().describe(c.of({label:"Service Account Key (JSON)",inputType:"textarea"}))}).describe(c.of({direction:"two-columns"})),Be=_({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:".*account.*"})),account_key:u().optional().describe(c.of({label:"Account Key",inputType:"password",optionRegex:".*azure.*key.*"}))}).describe(c.of({direction:"two-columns"})),Oe=_({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"})),access_key_id:u().optional().describe(c.of({label:"Access Key ID",inputType:"password",optionRegex:".*object_storage_key.*"})),secret_access_key:u().optional().describe(c.of({label:"Secret Access Key",inputType:"password",optionRegex:".*object_storage_secret.*"}))}).describe(c.of({direction:"two-columns"})),Me=_({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"})),Ws=M("type",[Fe,Ee,Be,Oe,Me]),zs={obstore:"obstore",fsspec:"fsspec"};var Gs=class{constructor(){z(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(K(e)){let o=pe(e);return this.secrets[s]=`os.environ.get("${o}")`,s}return`"${e}"`}formatSecrets(){return Object.keys(this.secrets).length===0?"":Object.entries(this.secrets).map(([t,e])=>`${t} = ${e}`).join(`
140
+ `)}var Ie=B(),Pe=[{name:"PostgreSQL",schema:be,color:"#336791",logo:"postgres",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"MySQL",schema:fe,color:"#00758F",logo:"mysql",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"SQLite",schema:ge,color:"#003B57",logo:"sqlite",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"DuckDB",schema:ye,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:we,color:"#29B5E8",logo:"snowflake",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"ClickHouse",schema:xe,color:"#2C2C1D",logo:"clickhouse",connectionLibraries:{libraries:["clickhouse_connect"],preferred:"clickhouse_connect"}},{name:"Timeplus",schema:ke,color:"#B83280",logo:"timeplus",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"BigQuery",schema:Se,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:$e,color:"#d466b6",logo:"trino",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}},{name:"DataFusion",schema:Ce,color:"#202A37",logo:"datafusion",connectionLibraries:{libraries:["ibis"],preferred:"ibis"}},{name:"PySpark",schema:Ae,color:"#1C5162",logo:"pyspark",connectionLibraries:{libraries:["ibis"],preferred:"ibis"}},{name:"Redshift",schema:Te,color:"#522BAE",logo:"redshift",connectionLibraries:{libraries:["redshift"],preferred:"redshift"}},{name:"Databricks",schema:Re,color:"#c41e0c",logo:"databricks",connectionLibraries:{libraries:["sqlalchemy","sqlmodel","ibis"],preferred:"sqlalchemy"}},{name:"Supabase",schema:Le,color:"#238F5F",logo:"supabase",connectionLibraries:{libraries:["sqlalchemy","sqlmodel"],preferred:"sqlalchemy"}}],qe=[{name:"Iceberg",schema:je,color:"#000000",logo:"iceberg",connectionLibraries:{libraries:["pyiceberg"],preferred:"pyiceberg"}}],Is=[...Pe,...qe],Ps=t=>{let e=(0,Ie.c)(12),{onSelect:s}=t,o;e[0]===s?o=e[1]:(o=Pe.map(p=>{let{name:h,schema:f,color:b,logo:m}=p;return(0,n.jsx)(re,{name:h,color:b,icon:(0,n.jsx)(ce,{name:m,className:"w-8 h-8 text-white brightness-0 invert dark:invert"}),onSelect:()=>s(f)},h)}),e[0]=s,e[1]=o);let r;e[2]===o?r=e[3]:(r=(0,n.jsx)(se,{children:o}),e[2]=o,e[3]=r);let d;e[4]===Symbol.for("react.memo_cache_sentinel")?(d=(0,n.jsxs)("h4",{className:"font-semibold text-muted-foreground text-lg flex items-center gap-4 my-2",children:["Data Catalogs",(0,n.jsx)("hr",{className:"flex-1"})]}),e[4]=d):d=e[4];let i;e[5]===s?i=e[6]:(i=qe.map(p=>{let{name:h,schema:f,color:b,logo:m}=p;return(0,n.jsx)(re,{name:h,color:b,icon:(0,n.jsx)(ce,{name:m,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,n.jsx)(se,{children:i}),e[7]=i,e[8]=a);let l;return e[9]!==r||e[10]!==a?(l=(0,n.jsxs)(n.Fragment,{children:[r,d,a]}),e[9]=r,e[10]=a,e[11]=l):l=e[11],l};const qs=t=>{let e=(0,Ie.c)(13),{onSubmit:s,header:o}=t,[r,d]=(0,N.useState)(null);if(!r){let b;e[0]===Symbol.for("react.memo_cache_sentinel")?(b=(0,n.jsx)("div",{children:(0,n.jsx)(Ps,{onSelect:d})}),e[0]=b):b=e[0];let m;return e[1]===o?m=e[2]:(m=(0,n.jsxs)(n.Fragment,{children:[o,b]}),e[1]=o,e[2]=m),m}let i;e[3]===r?i=e[4]:(i=Is.find(b=>b.schema===r),e[3]=r,e[4]=i);let a=i==null?void 0:i.connectionLibraries,l;e[5]===(a==null?void 0:a.libraries)?l=e[6]:(l=(a==null?void 0:a.libraries)??[],e[5]=a==null?void 0:a.libraries,e[6]=l);let p=(a==null?void 0:a.preferred)??"sqlalchemy",h;e[7]===Symbol.for("react.memo_cache_sentinel")?(h=()=>d(null),e[7]=h):h=e[7];let f;return e[8]!==s||e[9]!==r||e[10]!==l||e[11]!==p?(f=(0,n.jsx)(me,{schema:r,libraries:l,preferredLibrary:p,displayNames:De,libraryLabel:"Preferred connection library",generateCode:Ns,onSubmit:s,onBack:h}),e[8]=s,e[9]=r,e[10]=l,e[11]=p,e[12]=f):f=e[12],f};function Ns(t,e){return Ls(t,e)}var Fs="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",Es="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",Bs="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",Os="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",Ms="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",Us="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",Ks=B(),Hs={s3:{src:zt,dark:Fs},coreweave:{src:Bs,dark:Os},cloudflare:{src:Es},azure:{src:Gt},gcs:{src:Ms},http:St,file:X,"in-memory":yt,gdrive:{src:Us},github:Jt};const Ne=t=>{let e=(0,Ks.c)(11),{protocol:s,forceDark:o,className:r}=t,{theme:d}=Pt(),i=Hs[s.toLowerCase()]??X;if("src"in i){let h=i.src;i.dark&&(o||d==="dark")&&(h=i.dark);let f=h,b;e[0]===r?b=e[1]:(b=G("h-3.5 w-3.5",r),e[0]=r,e[1]=b);let m;return e[2]!==s||e[3]!==h||e[4]!==b?(m=(0,n.jsx)("img",{src:f,alt:s,className:b}),e[2]=s,e[3]=h,e[4]=b,e[5]=m):m=e[5],m}let a=i,l;e[6]===r?l=e[7]:(l=G("h-3.5 w-3.5",r),e[6]=r,e[7]=l);let p;return e[8]!==a||e[9]!==l?(p=(0,n.jsx)(a,{className:l}),e[8]=a,e[9]=l,e[10]=p):p=e[10],p},Fe=_({type:w("s3"),bucket:u().nonempty().describe(c.of({label:"Bucket",placeholder:"my-bucket"})),region:u().optional().describe(c.of({label:"Region",placeholder:"us-east-1"})),access_key_id:u().optional().describe(c.of({label:"Access Key ID",inputType:"password",optionRegex:".*access_key.*"})),secret_access_key:u().optional().describe(c.of({label:"Secret Access Key",inputType:"password",optionRegex:".*secret.*access.*"})),endpoint_url:u().optional().describe(c.of({label:"Endpoint URL",placeholder:"https://s3.amazonaws.com"}))}).describe(c.of({direction:"two-columns"})),Ee=_({type:w("gcs"),bucket:u().nonempty().describe(c.of({label:"Bucket",placeholder:"my-bucket"})),service_account_key:u().optional().describe(c.of({label:"Service Account Key (JSON)",inputType:"textarea"}))}).describe(c.of({direction:"two-columns"})),Be=_({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:".*account.*"})),account_key:u().optional().describe(c.of({label:"Account Key",inputType:"password",optionRegex:".*azure.*key.*"}))}).describe(c.of({direction:"two-columns"})),Oe=_({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"})),access_key_id:u().optional().describe(c.of({label:"Access Key ID",inputType:"password",optionRegex:".*object_storage_key.*"})),secret_access_key:u().optional().describe(c.of({label:"Secret Access Key",inputType:"password",optionRegex:".*object_storage_secret.*"}))}).describe(c.of({direction:"two-columns"})),Me=_({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"})),Ws=M("type",[Fe,Ee,Be,Oe,Me]),zs={obstore:"obstore",fsspec:"fsspec"};var Gs=class{constructor(){z(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(K(e)){let o=pe(e);return this.secrets[s]=`os.environ.get("${o}")`,s}return`"${e}"`}formatSecrets(){return Object.keys(this.secrets).length===0?"":Object.entries(this.secrets).map(([t,e])=>`${t} = ${e}`).join(`
141
141
  `)}};function Vs(t,e){let s=e.print("bucket",t.bucket),o=new Set(["from obstore.store import S3Store"]),r=[];return t.region&&r.push(` region=${e.print("region",t.region)},`),t.access_key_id&&r.push(` access_key_id=${e.print("access_key_id",t.access_key_id)},`),t.secret_access_key&&r.push(` secret_access_key=${e.print("secret_access_key",t.secret_access_key)},`),t.endpoint_url&&r.push(` endpoint_url=${e.print("endpoint_url",t.endpoint_url)},`),{imports:o,code:y(`
142
142
  store = S3Store(${s},${r.length>0?`
143
143
  ${r.join(`
@@ -167,4 +167,4 @@ ${r.join(`
167
167
  `:`
168
168
  fs = GoogleDriveFileSystem(use_listings_cache=False, skip_instance_cache=True)
169
169
  `)}}function Xs(t,e){Ws.parse(t);let s=new Gs,o;switch(t.type){case"s3":o=Vs(t,s);break;case"gcs":o=Zs(t,s);break;case"azure":o=Qs(t,s);break;case"coreweave":o=Js(t,s);break;case"gdrive":o=Ys(t,{secrets:s,isEmbedded:e.isEmbedded});break;default:U(t)}let r=[...new Set([...s.imports,...o.imports])].toSorted();r.push("");let d=s.formatSecrets();return d&&r.push(d),r.push(o.code.trim()),r.join(`
170
- `)}var Ue=B(),er="#232F3E",Ke=[{name:"Amazon S3",schema:Fe,protocol:"s3",storageLibraries:{libraries:["obstore"],preferred:"obstore"}},{name:"Google Cloud Storage",schema:Ee,protocol:"gcs",storageLibraries:{libraries:["obstore"],preferred:"obstore"}},{name:"Azure Blob Storage",schema:Be,protocol:"azure",storageLibraries:{libraries:["obstore"],preferred:"obstore"}},{name:"CoreWeave",schema:Oe,protocol:"coreweave",storageLibraries:{libraries:["obstore"],preferred:"obstore"}},{name:"Google Drive",schema:Me,protocol:"gdrive",storageLibraries:{libraries:["fsspec"],preferred:"fsspec"}}],tr=t=>{let e=(0,Ue.c)(4),{onSelect:s}=t,o;e[0]===s?o=e[1]:(o=Ke.map(d=>{let{name:i,schema:a,protocol:l}=d;return(0,n.jsx)(re,{name:i,color:er,icon:(0,n.jsx)(Ne,{protocol:l,forceDark:!0,className:"w-7.5 h-7.5"}),onSelect:()=>s(a)},i)}),e[0]=s,e[1]=o);let r;return e[2]===o?r=e[3]:(r=(0,n.jsx)(se,{children:o}),e[2]=o,e[3]=r),r};const sr=t=>{let e=(0,Ue.c)(16),{onSubmit:s,header:o}=t,{isEmbedded:r}=Ut(),[d,i]=(0,N.useState)(null);if(!d){let g;e[0]===Symbol.for("react.memo_cache_sentinel")?(g=(0,n.jsx)("div",{children:(0,n.jsx)(tr,{onSelect:i})}),e[0]=g):g=e[0];let S;return e[1]===o?S=e[2]:(S=(0,n.jsxs)(n.Fragment,{children:[o,g]}),e[1]=o,e[2]=S),S}let a;e[3]===d?a=e[4]:(a=Ke.find(g=>g.schema===d),e[3]=d,e[4]=a);let l=a==null?void 0:a.storageLibraries,p;e[5]===(l==null?void 0:l.libraries)?p=e[6]:(p=(l==null?void 0:l.libraries)??[],e[5]=l==null?void 0:l.libraries,e[6]=p);let h=(l==null?void 0:l.preferred)??"obstore",f;e[7]===r?f=e[8]:(f=(g,S)=>Xs(g,{library:S,isEmbedded:r}),e[7]=r,e[8]=f);let b;e[9]===Symbol.for("react.memo_cache_sentinel")?(b=()=>i(null),e[9]=b):b=e[9];let m;return e[10]!==s||e[11]!==d||e[12]!==p||e[13]!==h||e[14]!==f?(m=(0,n.jsx)(me,{schema:d,libraries:p,preferredLibrary:h,displayNames:zs,libraryLabel:"Preferred storage library",generateCode:f,onSubmit:s,onBack:b}),e[10]=s,e[11]=d,e[12]=p,e[13]=h,e[14]=f,e[15]=m):m=e[15],m};var He=B();const rr=t=>{let e=(0,He.c)(9),{children:s,defaultTab:o}=t,r=o===void 0?"databases":o,[d,i]=(0,N.useState)(!1),a;e[0]===s?a=e[1]:(a=(0,n.jsx)(Ft,{asChild:!0,children:s}),e[0]=s,e[1]=a);let l;e[2]===Symbol.for("react.memo_cache_sentinel")?(l=()=>i(!1),e[2]=l):l=e[2];let p;e[3]===r?p=e[4]:(p=(0,n.jsx)(We,{defaultTab:r,onClose:l}),e[3]=r,e[4]=p);let h;return e[5]!==d||e[6]!==a||e[7]!==p?(h=(0,n.jsxs)(Ot,{open:d,onOpenChange:i,children:[a,p]}),e[5]=d,e[6]=a,e[7]=p,e[8]=h):h=e[8],h},We=t=>{let e=(0,He.c)(20),{defaultTab:s,onClose:o}=t,[r,d]=(0,N.useState)(s===void 0?"databases":s),i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=(0,n.jsxs)(ot,{className:"w-full mb-4",children:[(0,n.jsx)(ie,{value:"databases",className:"flex-1",children:"Databases & Catalogs"}),(0,n.jsx)(ie,{value:"storage",className:"flex-1",children:"Remote Storages"})]}),e[0]=i):i=e[0];let a=i,l;e[1]===r?l=e[2]:(l=r==="databases"?(0,n.jsxs)(n.Fragment,{children:["Don't see your database or connection method? A"," ",(0,n.jsx)(V,{href:"https://docs.marimo.io/guides/working_with_data/sql/#connecting-to-a-custom-database",children:"code snippet"})," ","is all you need."]}):(0,n.jsxs)(n.Fragment,{children:["Don't see your storage or connection method? A"," ",(0,n.jsx)(V,{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]=l);let p=l,h;e[3]===Symbol.for("react.memo_cache_sentinel")?(h=(0,n.jsx)(Nt,{children:"Add Connection"}),e[3]=h):h=e[3];let f;e[4]===Symbol.for("react.memo_cache_sentinel")?(f=(0,n.jsx)(V,{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 b;e[5]===Symbol.for("react.memo_cache_sentinel")?(b=(0,n.jsx)(V,{href:"https://docs.marimo.io/guides/working_with_data/remote_storage/",children:"remote storage"}),e[5]=b):b=e[5];let m;e[6]===p?m=e[7]:(m=(0,n.jsxs)(qt,{children:[h,(0,n.jsxs)(Bt,{children:["Connect to a"," ",f," ","or"," ",b," ","directly from your notebook.",(0,n.jsx)("span",{className:"block",children:p})]})]}),e[6]=p,e[7]=m);let g;e[8]===Symbol.for("react.memo_cache_sentinel")?(g=A=>d(A),e[8]=g):g=e[8];let S;e[9]===o?S=e[10]:(S=(0,n.jsx)(le,{value:"databases",className:"mt-0 focus-visible:ring-0 focus-visible:ring-offset-0",children:(0,n.jsx)(qs,{onSubmit:o,header:a})}),e[9]=o,e[10]=S);let $;e[11]===o?$=e[12]:($=(0,n.jsx)(le,{value:"storage",className:"mt-0 focus-visible:ring-0 focus-visible:ring-offset-0",children:(0,n.jsx)(sr,{onSubmit:o,header:a})}),e[11]=o,e[12]=$);let x;e[13]!==r||e[14]!==$||e[15]!==S?(x=(0,n.jsxs)(rt,{value:r,onValueChange:g,children:[S,$]}),e[13]=r,e[14]=$,e[15]=S,e[16]=x):x=e[16];let v;return e[17]!==x||e[18]!==m?(v=(0,n.jsxs)(Et,{className:"max-h-[75vh] overflow-y-auto",children:[m,x]}),e[17]=x,e[18]=m,e[19]=v):v=e[19],v};export{X as i,We as n,Ne as r,rr as t};
170
+ `)}var Ue=B(),er="#232F3E",Ke=[{name:"Amazon S3",schema:Fe,protocol:"s3",storageLibraries:{libraries:["obstore"],preferred:"obstore"}},{name:"Google Cloud Storage",schema:Ee,protocol:"gcs",storageLibraries:{libraries:["obstore"],preferred:"obstore"}},{name:"Azure Blob Storage",schema:Be,protocol:"azure",storageLibraries:{libraries:["obstore"],preferred:"obstore"}},{name:"CoreWeave",schema:Oe,protocol:"coreweave",storageLibraries:{libraries:["obstore"],preferred:"obstore"}},{name:"Google Drive",schema:Me,protocol:"gdrive",storageLibraries:{libraries:["fsspec"],preferred:"fsspec"}}],tr=t=>{let e=(0,Ue.c)(4),{onSelect:s}=t,o;e[0]===s?o=e[1]:(o=Ke.map(d=>{let{name:i,schema:a,protocol:l}=d;return(0,n.jsx)(re,{name:i,color:er,icon:(0,n.jsx)(Ne,{protocol:l,forceDark:!0,className:"w-7.5 h-7.5"}),onSelect:()=>s(a)},i)}),e[0]=s,e[1]=o);let r;return e[2]===o?r=e[3]:(r=(0,n.jsx)(se,{children:o}),e[2]=o,e[3]=r),r};const sr=t=>{let e=(0,Ue.c)(16),{onSubmit:s,header:o}=t,{isEmbedded:r}=Ut(),[d,i]=(0,N.useState)(null);if(!d){let g;e[0]===Symbol.for("react.memo_cache_sentinel")?(g=(0,n.jsx)("div",{children:(0,n.jsx)(tr,{onSelect:i})}),e[0]=g):g=e[0];let S;return e[1]===o?S=e[2]:(S=(0,n.jsxs)(n.Fragment,{children:[o,g]}),e[1]=o,e[2]=S),S}let a;e[3]===d?a=e[4]:(a=Ke.find(g=>g.schema===d),e[3]=d,e[4]=a);let l=a==null?void 0:a.storageLibraries,p;e[5]===(l==null?void 0:l.libraries)?p=e[6]:(p=(l==null?void 0:l.libraries)??[],e[5]=l==null?void 0:l.libraries,e[6]=p);let h=(l==null?void 0:l.preferred)??"obstore",f;e[7]===r?f=e[8]:(f=(g,S)=>Xs(g,{library:S,isEmbedded:r}),e[7]=r,e[8]=f);let b;e[9]===Symbol.for("react.memo_cache_sentinel")?(b=()=>i(null),e[9]=b):b=e[9];let m;return e[10]!==s||e[11]!==d||e[12]!==p||e[13]!==h||e[14]!==f?(m=(0,n.jsx)(me,{schema:d,libraries:p,preferredLibrary:h,displayNames:zs,libraryLabel:"Preferred storage library",generateCode:f,onSubmit:s,onBack:b}),e[10]=s,e[11]=d,e[12]=p,e[13]=h,e[14]=f,e[15]=m):m=e[15],m};var He=B();const rr=t=>{let e=(0,He.c)(9),{children:s,defaultTab:o}=t,r=o===void 0?"databases":o,[d,i]=(0,N.useState)(!1),a;e[0]===s?a=e[1]:(a=(0,n.jsx)(Ft,{asChild:!0,children:s}),e[0]=s,e[1]=a);let l;e[2]===Symbol.for("react.memo_cache_sentinel")?(l=()=>i(!1),e[2]=l):l=e[2];let p;e[3]===r?p=e[4]:(p=(0,n.jsx)(We,{defaultTab:r,onClose:l}),e[3]=r,e[4]=p);let h;return e[5]!==d||e[6]!==a||e[7]!==p?(h=(0,n.jsxs)(Ot,{open:d,onOpenChange:i,children:[a,p]}),e[5]=d,e[6]=a,e[7]=p,e[8]=h):h=e[8],h},We=t=>{let e=(0,He.c)(20),{defaultTab:s,onClose:o}=t,[r,d]=(0,N.useState)(s===void 0?"databases":s),i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=(0,n.jsxs)(ot,{className:"w-full mb-4",children:[(0,n.jsx)(ie,{value:"databases",className:"flex-1",children:"Databases & Catalogs"}),(0,n.jsx)(ie,{value:"storage",className:"flex-1",children:"Remote Storages"})]}),e[0]=i):i=e[0];let a=i,l;e[1]===r?l=e[2]:(l=r==="databases"?(0,n.jsxs)(n.Fragment,{children:["Don't see your database or connection method? A"," ",(0,n.jsx)(V,{href:"https://docs.marimo.io/guides/working_with_data/sql/#connecting-to-a-custom-database",children:"code snippet"})," ","is all you need."]}):(0,n.jsxs)(n.Fragment,{children:["Don't see your storage or connection method? A"," ",(0,n.jsx)(V,{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]=l);let p=l,h;e[3]===Symbol.for("react.memo_cache_sentinel")?(h=(0,n.jsx)(Nt,{children:"Add Connection"}),e[3]=h):h=e[3];let f;e[4]===Symbol.for("react.memo_cache_sentinel")?(f=(0,n.jsx)(V,{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 b;e[5]===Symbol.for("react.memo_cache_sentinel")?(b=(0,n.jsx)(V,{href:"https://docs.marimo.io/guides/working_with_data/remote_storage/",children:"remote storage"}),e[5]=b):b=e[5];let m;e[6]===p?m=e[7]:(m=(0,n.jsxs)(qt,{children:[h,(0,n.jsxs)(Bt,{children:["Connect to a"," ",f," ","or"," ",b," ","directly from your notebook.",(0,n.jsx)("span",{className:"block",children:p})]})]}),e[6]=p,e[7]=m);let g;e[8]===Symbol.for("react.memo_cache_sentinel")?(g=C=>d(C),e[8]=g):g=e[8];let S;e[9]===o?S=e[10]:(S=(0,n.jsx)(le,{value:"databases",className:"mt-0 focus-visible:ring-0 focus-visible:ring-offset-0",children:(0,n.jsx)(qs,{onSubmit:o,header:a})}),e[9]=o,e[10]=S);let $;e[11]===o?$=e[12]:($=(0,n.jsx)(le,{value:"storage",className:"mt-0 focus-visible:ring-0 focus-visible:ring-offset-0",children:(0,n.jsx)(sr,{onSubmit:o,header:a})}),e[11]=o,e[12]=$);let x;e[13]!==r||e[14]!==$||e[15]!==S?(x=(0,n.jsxs)(rt,{value:r,onValueChange:g,children:[S,$]}),e[13]=r,e[14]=$,e[15]=S,e[16]=x):x=e[16];let v;return e[17]!==x||e[18]!==m?(v=(0,n.jsxs)(Et,{className:"max-h-[75vh] overflow-y-auto",children:[m,x]}),e[17]=x,e[18]=m,e[19]=v):v=e[19],v};export{X as i,We as n,Ne as r,rr as t};