@malloy-publisher/sdk 0.0.125 → 0.0.126
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.
- package/dist/{ServerProvider-BslSKRBW.es.js → ServerProvider-B5fJcRhV.es.js} +1 -1
- package/dist/{ServerProvider-DqZqsOlJ.cjs.js → ServerProvider-BF0Zy0a0.cjs.js} +1 -1
- package/dist/client/api.d.ts +3 -3
- package/dist/client/index.cjs.js +1 -1
- package/dist/client/index.es.js +1 -1
- package/dist/index.cjs.js +3 -3
- package/dist/index.es.js +1191 -1179
- package/package.json +1 -1
- package/src/components/Project/ConnectionExplorer.tsx +51 -34
- package/src/components/Project/Project.tsx +6 -0
- package/src/components/ServerProvider.tsx +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var Yb=Object.create;var Yd=Object.defineProperty;var Kb=Object.getOwnPropertyDescriptor;var Qb=Object.getOwnPropertyNames;var Xb=Object.getPrototypeOf,Zb=Object.prototype.hasOwnProperty;var Jb=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Qb(t))!Zb.call(e,i)&&i!==n&&Yd(e,i,{get:()=>t[i],enumerable:!(r=Kb(t,i))||r.enumerable});return e};var Rl=(e,t,n)=>(n=e!=null?Yb(Xb(e)):{},Jb(t||!e||!e.__esModule?Yd(n,"default",{value:e,enumerable:!0}):n,e));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react/jsx-runtime"),v=require("@mui/material"),B=require("react"),mr=require("@tanstack/react-query"),Je=require("./ServerProvider-
|
|
1
|
+
"use strict";var Yb=Object.create;var Yd=Object.defineProperty;var Kb=Object.getOwnPropertyDescriptor;var Qb=Object.getOwnPropertyNames;var Xb=Object.getPrototypeOf,Zb=Object.prototype.hasOwnProperty;var Jb=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Qb(t))!Zb.call(e,i)&&i!==n&&Yd(e,i,{get:()=>t[i],enumerable:!(r=Kb(t,i))||r.enumerable});return e};var Rl=(e,t,n)=>(n=e!=null?Yb(Xb(e)):{},Jb(t||!e||!e.__esModule?Yd(n,"default",{value:e,enumerable:!0}):n,e));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("react/jsx-runtime"),v=require("@mui/material"),B=require("react"),mr=require("@tanstack/react-query"),Je=require("./ServerProvider-BF0Zy0a0.cjs.js"),ex=require("axios"),ht=require("@mui/system"),tx=require("@emotion/styled"),nx=require("@emotion/react"),pn=require("@mui/icons-material"),Ao=require("react-dom"),ua=require("markdown-to-jsx"),rx=require("react-router-dom"),dm=require("@react-spring/web");function pm(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const A=pm(B),ix=pm(Ao),Kd=e=>e,ox=()=>{let e=Kd;return{configure(t){e=t},generate(t){return e(t)},reset(){e=Kd}}},sx=ox();function dr(e,...t){const n=new URL(`https://mui.com/production-error/?code=${e}`);return t.forEach(r=>n.searchParams.append("args[]",r)),`Minified MUI error #${e}; visit ${n} for the full message.`}function me(e){if(typeof e!="string")throw new Error(dr(7));return e.charAt(0).toUpperCase()+e.slice(1)}function Qd(...e){return e.reduce((t,n)=>n==null?t:function(...i){t.apply(this,i),n.apply(this,i)},()=>{})}function $a(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Nl={exports:{}},Ll,Xd;function ax(){if(Xd)return Ll;Xd=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return Ll=e,Ll}var Ol,Zd;function lx(){if(Zd)return Ol;Zd=1;var e=ax();function t(){}function n(){}return n.resetWarningCache=t,Ol=function(){function r(s,a,l,u,c,d){if(d!==e){var h=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw h.name="Invariant Violation",h}}r.isRequired=r;function i(){return r}var o={array:r,bigint:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:i,element:r,elementType:r,instanceOf:i,node:r,objectOf:i,oneOf:i,oneOfType:i,shape:i,exact:i,checkPropTypes:n,resetWarningCache:t};return o.PropTypes=o,o},Ol}var Jd;function ux(){return Jd||(Jd=1,Nl.exports=lx()()),Nl.exports}var cx=ux();const ep=$a(cx);function fm(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=fm(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function De(){for(var e,t,n=0,r="",i=arguments.length;n<i;n++)(e=arguments[n])&&(t=fm(e))&&(r&&(r+=" "),r+=t);return r}function ze(e,t,n=void 0){const r={};for(const i in e){const o=e[i];let s="",a=!0;for(let l=0;l<o.length;l+=1){const u=o[l];u&&(s+=(a===!0?"":" ")+t(u),a=!1,n&&n[u]&&(s+=" "+n[u]))}r[i]=s}return r}var Fl={exports:{}},at={};/**
|
|
2
2
|
* @license React
|
|
3
3
|
* react-is.production.js
|
|
4
4
|
*
|
|
@@ -203,11 +203,11 @@ import {${t.sourceName}}" from '${t.modelPath}'"
|
|
|
203
203
|
- [ ] `),/^\d+.\s/.test(s)&&(E=`
|
|
204
204
|
`+(parseInt(s)+1)+". "),Ni(r,E)}else if(e.code&&e.code.toLowerCase()==="keyd"&&e.ctrlKey){sa(e);var S={start:r.selectionStart,end:r.selectionEnd},I=S;S=Yo({text:r.value,selection:S});var k=r.value.slice(S.start,S.end);a.setSelectionRange({start:S.end,end:S.end}),Ni(r,`
|
|
205
205
|
`+k),a.setSelectionRange({start:I.start,end:I.end})}else e.code&&e.code.toLowerCase()==="arrowup"&&e.altKey?Xh(e,-1):e.code&&e.code.toLowerCase()==="arrowdown"&&e.altKey&&Xh(e,1)}var CL=["prefixCls","onChange"],TL=["markdown","commands","fullscreen","preview","highlightEnable","extraCommands","tabSize","defaultTabEnable","autoFocusEnd","textareaWarp","dispatch"];function vL(e){var{prefixCls:t,onChange:n}=e,r=Wt(e,CL),i=B.useContext(oo),{markdown:o,commands:s,fullscreen:a,preview:l,highlightEnable:u,extraCommands:c,tabSize:d,defaultTabEnable:h,autoFocusEnd:f,textareaWarp:g,dispatch:x}=i;Wt(i,TL);var b=B.useRef(null),y=B.useRef(),C=B.useRef({fullscreen:a,preview:l});B.useEffect(()=>{C.current={fullscreen:a,preview:l,highlightEnable:u}},[a,l,u]),B.useEffect(()=>{if(b.current&&x){var S=new Bd(b.current);y.current=S,x({textarea:b.current,commandOrchestrator:S})}},[]),B.useEffect(()=>{if(f&&b.current&&g){b.current.focus();var S=b.current.value.length;b.current.setSelectionRange(S,S),setTimeout(()=>{g&&(g.scrollTop=g.scrollHeight),b.current&&(b.current.scrollTop=b.current.scrollHeight)},0)}},[g]);var E=S=>{EL(S,d,h),sb(S,[...s||[],...c||[]],y.current,x,C.current)};return B.useEffect(()=>(b.current&&b.current.addEventListener("keydown",E),()=>{b.current&&b.current.removeEventListener("keydown",E)}),[]),p.jsx("textarea",de({autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1},r,{ref:b,className:t+"-text-input "+(r.className?r.className:""),value:o,onChange:S=>{x&&x({markdown:S.target.value}),n&&n(S)}}))}var SL=["prefixCls","className","onScroll","renderTextarea"];function kL(e){var t=e||{},{prefixCls:n,className:r,onScroll:i,renderTextarea:o}=t,s=Wt(t,SL),{markdown:a,scrollTop:l,commands:u,extraCommands:c,dispatch:d}=B.useContext(oo),h=B.useRef(null),f=B.useRef(),g=B.createRef();B.useEffect(()=>{var b={};g.current&&(b.textareaWarp=g.current||void 0,g.current.scrollTop=l||0),d&&d(de({},b))},[]),B.useEffect(()=>{if(h.current&&d){var b=new Bd(h.current);f.current=b,d({textarea:h.current,commandOrchestrator:b})}},[]);var x={WebkitTextFillColor:"initial",overflow:"auto"};return p.jsx("div",{ref:g,className:n+"-area "+(r||""),onScroll:i,children:p.jsx("div",{className:n+"-text",children:o?B.cloneElement(o(de({},s,{value:a,autoComplete:"off",autoCorrect:"off",spellCheck:"false",autoCapitalize:"off",className:n+"-text-input",style:{WebkitTextFillColor:"inherit",overflow:"auto"}}),{dispatch:d,onChange:s.onChange,shortcuts:sb,useContext:{commands:u,extraCommands:c,commandOrchestrator:f.current}}),{ref:h}):p.jsx(B.Fragment,{children:p.jsx(vL,de({prefixCls:n},s,{style:x}))})})})}function IL(e){var{prefixCls:t,groupName:n,commands:r,children:i}=e||{},{barPopup:o={}}=B.useContext(oo);return B.useMemo(()=>p.jsx("div",{className:t+"-toolbar-child "+(n&&o[n]?"active":""),onClick:s=>s.stopPropagation(),children:Array.isArray(r)?p.jsx(db,de({commands:r},e,{isChild:!0})):i}),[r,o,n,t])}function Zh(e){var{prefixCls:t,overflow:n}=e,{fullscreen:r,preview:i,barPopup:o={},components:s,commandOrchestrator:a,dispatch:l}=B.useContext(oo),u=B.useRef("");function c(d,h){if(l){var f={barPopup:de({},o)};d.keyCommand==="preview"&&(f.preview=d.value),d.keyCommand==="fullscreen"&&(f.fullscreen=!r),e.commands&&d.keyCommand==="group"?e.commands.forEach(g=>{h===g.groupName?f.barPopup[h]=!0:g.keyCommand&&(f.barPopup[g.groupName]=!1)}):(h||d.parent)&&Object.keys(f.barPopup||{}).forEach(g=>{f.barPopup[g]=!1}),Object.keys(f).length&&l(de({},f)),a&&a.executeCommand(d)}}return B.useEffect(()=>{document&&n&&(r?document.body.style.overflow="hidden":(u.current||(u.current=window.getComputedStyle(document.body,null).overflow),document.body.style.overflow=u.current))},[r,u,n]),p.jsx("ul",{children:(e.commands||[]).map((d,h)=>{if(d.keyCommand==="divider")return p.jsx("li",de({},d.liProps,{className:t+"-toolbar-divider"}),h);if(!d.keyCommand)return p.jsx(B.Fragment,{},h);var f=r&&d.keyCommand==="fullscreen"||d.keyCommand==="preview"&&i===d.value,g=d.children&&typeof d.children=="function"?d.children({getState:()=>a.getState(),textApi:a?a.textApi:void 0,close:()=>c({},d.groupName),execute:()=>c({execute:d.execute}),dispatch:l}):void 0,x=o&&i&&i==="preview"&&!/(preview|fullscreen)/.test(d.keyCommand),b=s?.toolbar||d.render,y=b&&typeof b=="function"?b(d,!!x,c,h):null;return p.jsxs("li",de({},d.liProps,{className:f?"active":"",children:[y&&B.isValidElement(y)&&y,!y&&!d.buttonProps&&d.icon,!y&&d.buttonProps&&B.createElement("button",de({type:"button",key:h,disabled:x,"data-name":d.name},d.buttonProps,{onClick:C=>{C.stopPropagation(),c(d,d.groupName)}}),d.icon),d.children&&p.jsx(IL,{overflow:n,groupName:d.groupName,prefixCls:t,children:g,commands:Array.isArray(d.children)?d.children:void 0})]}),h)})})}function db(e){e===void 0&&(e={});var{prefixCls:t,isChild:n,className:r}=e,{commands:i,extraCommands:o}=B.useContext(oo);return p.jsxs("div",{className:t+"-toolbar "+r,children:[p.jsx(Zh,de({},e,{commands:e.commands||i||[]})),!n&&p.jsx(Zh,de({},e,{commands:o||[]}))]})}function Jh(e){var{hideToolbar:t,toolbarBottom:n,placement:r,overflow:i,prefixCls:o}=e;if(t||r==="bottom"&&!n||r==="top"&&n)return null;var s=n?"bottom":"";return p.jsx(db,{prefixCls:o,overflow:i,className:s})}var AL=e=>{var{prefixCls:t,onChange:n}=e||{},r=B.useRef(null),i=B.useRef(),o=B.useRef(e.height);B.useEffect(()=>{o.current!==e.height&&(o.current=e.height)},[e.height]);function s(c){if(i.current){var d,h=c.clientY||((d=c.changedTouches[0])==null?void 0:d.clientY),f=i.current.height+h-i.current.dragY;f>=e.minHeight&&f<=e.maxHeight&&n&&n(i.current.height+(h-i.current.dragY))}}function a(){var c,d;i.current=void 0,document.removeEventListener("mousemove",s),document.removeEventListener("mouseup",a),(c=r.current)==null||c.removeEventListener("touchmove",s),(d=r.current)==null||d.removeEventListener("touchend",a)}function l(c){var d,h,f;c.preventDefault();var g=c.clientY||((d=c.changedTouches[0])==null?void 0:d.clientY);i.current={height:o.current,dragY:g},document.addEventListener("mousemove",s),document.addEventListener("mouseup",a),(h=r.current)==null||h.addEventListener("touchmove",s,{passive:!1}),(f=r.current)==null||f.addEventListener("touchend",a,{passive:!1})}B.useEffect(()=>{if(document){var c,d;(c=r.current)==null||c.addEventListener("touchstart",l,{passive:!1}),(d=r.current)==null||d.addEventListener("mousedown",l)}return()=>{if(document){var h;(h=r.current)==null||h.removeEventListener("touchstart",l),document.removeEventListener("mousemove",s)}}},[]);var u=B.useMemo(()=>p.jsx("svg",{viewBox:"0 0 512 512",height:"100%",children:p.jsx("path",{fill:"currentColor",d:"M304 256c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48 48 21.5 48 48zm120-48c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-336 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z"})}),[]);return p.jsx("div",{className:t+"-bar",ref:r,children:u})},wL=["prefixCls","className","value","commands","commandsFilter","direction","extraCommands","height","enableScroll","visibleDragbar","highlightEnable","preview","fullscreen","overflow","previewOptions","textareaProps","maxHeight","minHeight","autoFocus","autoFocusEnd","tabSize","defaultTabEnable","onChange","onStatistics","onHeightChange","hideToolbar","toolbarBottom","components","renderTextarea"];function DL(e){return e===void 0&&(e={}),Object.keys(e).forEach(t=>{e[t]=!1}),e}var _L=B.forwardRef((e,t)=>{var n=e||{},{prefixCls:r="w-md-editor",className:i,value:o,commands:s=xL(),commandsFilter:a,direction:l,extraCommands:u=yL(),height:c=200,enableScroll:d=!0,visibleDragbar:h=typeof e.visiableDragbar=="boolean"?e.visiableDragbar:!0,highlightEnable:f=!0,preview:g="live",fullscreen:x=!1,overflow:b=!0,previewOptions:y={},textareaProps:C,maxHeight:E=1200,minHeight:S=100,autoFocus:I,autoFocusEnd:k=!1,tabSize:F=2,defaultTabEnable:z=!1,onChange:U,onStatistics:D,onHeightChange:j,hideToolbar:T,toolbarBottom:L=!1,components:N,renderTextarea:M}=n,H=Wt(n,wL),X=s.map(_e=>a?a(_e,!1):_e).filter(Boolean),ue=u.map(_e=>a?a(_e,!0):_e).filter(Boolean),[$,_]=B.useReducer(jN,{markdown:o,preview:g,components:N,height:c,minHeight:S,highlightEnable:f,tabSize:F,defaultTabEnable:z,scrollTop:0,scrollTopPreview:0,commands:X,extraCommands:ue,fullscreen:x,barPopup:{}}),te=B.useRef(null),oe=B.useRef(null),P=B.useRef(d);B.useImperativeHandle(t,()=>de({},$,{container:te.current,dispatch:_})),B.useMemo(()=>P.current=d,[d]),B.useEffect(()=>{var _e={};te.current&&(_e.container=te.current||void 0),_e.markdown=o||"",_e.barPopup={},_&&_(de({},$,_e))},[]);var Ee=[i,"wmde-markdown-var",l?r+"-"+l:null,r,$.preview?r+"-show-"+$.preview:null,$.fullscreen?r+"-fullscreen":null].filter(Boolean).join(" ").trim();B.useMemo(()=>o!==$.markdown&&_({markdown:o||""}),[o,$.markdown]),B.useMemo(()=>g!==$.preview&&_({preview:g}),[g]),B.useMemo(()=>F!==$.tabSize&&_({tabSize:F}),[F]),B.useMemo(()=>f!==$.highlightEnable&&_({highlightEnable:f}),[f]),B.useMemo(()=>I!==$.autoFocus&&_({autoFocus:I}),[I]),B.useMemo(()=>k!==$.autoFocusEnd&&_({autoFocusEnd:k}),[k]),B.useMemo(()=>x!==$.fullscreen&&_({fullscreen:x}),[x]),B.useMemo(()=>c!==$.height&&_({height:c}),[c]),B.useMemo(()=>c!==$.height&&j&&j($.height,c,$),[c,j,$]),B.useMemo(()=>s!==$.commands&&_({commands:X}),[e.commands]),B.useMemo(()=>u!==$.extraCommands&&_({extraCommands:ue}),[e.extraCommands]);var se=B.useRef(),q=B.useRef("preview"),re=B.useRef(!1);B.useMemo(()=>{se.current=$.textareaWarp,$.textareaWarp&&($.textareaWarp.addEventListener("mouseover",()=>{q.current="text"}),$.textareaWarp.addEventListener("mouseleave",()=>{q.current="preview"}))},[$.textareaWarp]);var ie=(_e,ye)=>{if(P.current){var Ze=se.current,Se=oe.current?oe.current:void 0;if(re.current||(q.current=ye,re.current=!0),Ze&&Se){var Ue=(Ze.scrollHeight-Ze.offsetHeight)/(Se.scrollHeight-Se.offsetHeight);_e.target===Ze&&q.current==="text"&&(Se.scrollTop=Ze.scrollTop/Ue),_e.target===Se&&q.current==="preview"&&(Ze.scrollTop=Se.scrollTop*Ue);var xe=0;q.current==="text"?xe=Ze.scrollTop||0:q.current==="preview"&&(xe=Se.scrollTop||0),_({scrollTop:xe})}}},Te=r+"-preview "+(y.className||""),K=_e=>ie(_e,"preview"),W=B.useMemo(()=>p.jsx("div",{ref:oe,className:Te,children:p.jsx(ib,de({},y,{onScroll:K,source:$.markdown||""}))}),[Te,y,$.markdown]),Ce=N?.preview&&N?.preview($.markdown||"",$,_);Ce&&B.isValidElement(Ce)&&(W=p.jsx("div",{className:Te,ref:oe,onScroll:K,children:Ce}));var ve=de({},H.style,{height:$.height||"100%"}),ne=()=>_({barPopup:de({},DL($.barPopup))}),Be=_e=>_({height:_e}),Le=_e=>{if(U&&U(_e.target.value,_e,$),C&&C.onChange&&C.onChange(_e),$.textarea&&$.textarea instanceof HTMLTextAreaElement&&D){var ye=new Bd($.textarea),Ze=ye.getState()||{};D(de({},Ze,{lineCount:_e.target.value.split(`
|
|
206
|
-
`).length,length:_e.target.value.length}))}};return p.jsx(oo.Provider,{value:de({},$,{dispatch:_}),children:p.jsxs("div",de({ref:te,className:Ee},H,{onClick:ne,style:ve,children:[p.jsx(Jh,{hideToolbar:T,toolbarBottom:L,prefixCls:r,overflow:b,placement:"top"}),p.jsxs("div",{className:r+"-content",children:[/(edit|live)/.test($.preview||"")&&p.jsx(kL,de({className:r+"-input",prefixCls:r,autoFocus:I},C,{onChange:Le,renderTextarea:N?.textarea||M,onScroll:_e=>ie(_e,"text")})),/(live|preview)/.test($.preview||"")&&W]}),h&&!$.fullscreen&&p.jsx(AL,{prefixCls:r,height:$.height,maxHeight:E,minHeight:S,onChange:Be}),p.jsx(Jh,{hideToolbar:T,toolbarBottom:L,prefixCls:r,overflow:b,placement:"bottom"})]}))})}),pb=_L;pb.Markdown=ib;function PL({cell:e,sourceAndPaths:t,resourceUri:n,onQueryChange:r,onSourceChange:i}){const o={query:e.value,malloyResult:e.result?JSON.parse(e.result):void 0,malloyQuery:e.queryInfo?JSON.parse(e.queryInfo):void 0},s=t.findIndex(a=>a.sourceInfo.name===e.sourceName);return p.jsx(ad,{resourceUri:n,sourceAndPaths:t,selectedSourceIndex:s>=0?s:0,existingQuery:o,onQueryChange:r,onSourceChange:i})}function RL({cell:e,editingMalloy:t,editingMarkdown:n,sourceAndPaths:r,resourceUri:i,onCellChange:o,onClose:s,onEdit:a,onDelete:l,addButtonCallback:u}){const[c,d]=B.useState(e.value),[h,f]=B.useState(!1),[g,x]=B.useState(!1),[b,y]=B.useState(),[C]=B.useState(),[E,S]=B.useState(Js()),[I,k]=B.useState(!1),[F,z]=B.useState(e.sourceName?r.findIndex(te=>te.sourceInfo.name===e.sourceName):0);B.useEffect(()=>{e.isMarkdown||Sa(e.value,"malloy").then(te=>{y(te)})},[e]),B.useEffect(()=>{document.documentElement.setAttribute("data-color-mode","light")});const[U,D]=B.useState(!1),j=()=>{l(),D(!1)},T=r.length===0,L=B.useCallback(()=>{const te=r[F],oe=te?.modelPath||e.modelPath||"",P=te?.sourceInfo.name||e.sourceName||"";o({...e,value:e.isMarkdown?c:E.query,result:E.malloyResult?JSON.stringify(E.malloyResult):void 0,queryInfo:E.malloyQuery?JSON.stringify(E.malloyQuery):void 0,sourceName:P,modelPath:oe})},[e,c,E,o,F,r]),N=p.jsx(v.Tooltip,{title:"Delete Cell",children:p.jsx(v.IconButton,{size:"small",onClick:()=>D(!0),children:p.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p.jsx("path",{d:"M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2m2 0v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6h14zM10 11v6M14 11v6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})}),M=p.jsxs(v.Dialog,{open:U,onClose:()=>D(!1),children:[p.jsx(v.DialogTitle,{children:"Confirm Delete"}),p.jsx(v.DialogContent,{children:p.jsx(v.Typography,{children:"Are you sure you want to delete this cell?"})}),p.jsxs(v.DialogActions,{children:[p.jsx(v.Button,{onClick:()=>D(!1),children:"Cancel"}),p.jsx(v.Button,{onClick:j,color:"error",children:"Delete"})]})]}),H=()=>{L(),s()},X=e.isMarkdown?p.jsxs(p.Fragment,{children:[n?p.jsx(v.Tooltip,{title:"Save",children:p.jsx(v.IconButton,{size:"small",onClick:H,children:p.jsx(Hs,{})})}):p.jsx(v.Tooltip,{title:"Edit",children:p.jsx(v.IconButton,{size:"small",onClick:a,children:p.jsx(If,{})})}),!n&&N]}):p.jsxs(p.Fragment,{children:[!t&&p.jsx(v.Tooltip,{title:h?"Hide Code":"View Code",children:p.jsx(v.IconButton,{size:"small",onClick:()=>{f(!h)},children:p.jsx(Y0,{})})}),!t&&e.result&&p.jsx(v.Tooltip,{title:g?"Hide Embedding":"View Embedding",children:p.jsx(v.IconButton,{size:"small",onClick:()=>{x(!g)},children:p.jsx(Lc,{})})}),t&&p.jsx(v.Tooltip,{title:"Save",children:p.jsx(v.IconButton,{size:"small",onClick:H,children:p.jsx(Hs,{})})}),!t&&p.jsx(v.Tooltip,{title:"Edit",children:p.jsx(v.IconButton,{size:"small",onClick:a,children:p.jsx(If,{})})}),!t&&N]}),ue=t||n,$=n?p.jsx(v.Tooltip,{title:"Save",children:p.jsx(v.IconButton,{size:"small",onClick:H,children:p.jsx(Hs,{})})}):t?p.jsx(v.Tooltip,{title:"Save",children:p.jsx(v.IconButton,{size:"small",onClick:H,children:p.jsx(Hs,{})})}):null,_=I&&p.jsx(v.Box,{sx:{position:"absolute",top:"4px",right:"4px",display:"flex",gap:"8px",backgroundColor:"background.paper",border:"1px solid",borderColor:"divider",borderRadius:"8px",padding:"2px 4px",boxShadow:1,zIndex:10},children:!ue&&p.jsxs(p.Fragment,{children:[u(!0),u(!1),X]})||$});return p.jsxs(ka,{sx:{position:"relative",marginTop:"5px",marginBottom:"5px",borderWidth:"1.5px",backgroundColor:"#fff",minHeight:"50px"},onMouseEnter:()=>k(!0),onMouseLeave:()=>{k(!1)},children:[_,e.isMarkdown?p.jsx(p.Fragment,{children:n?p.jsx(pb,{value:c,preview:"edit",autoFocus:!0,onChange:te=>{d(te),o({...e,value:te})},onBlur:()=>{L(),I||H()}}):p.jsx(v.Box,{sx:{px:.5,pt:0,mt:0,"& h1, & h2, & h3, & h4, & h5, & h6":{mt:.5,mb:.5},"& p":{mt:.5,mb:.5},"& ul, & ol":{mt:.5,mb:.5},"& li":{mt:0,mb:0},"& pre, & code":{mt:.5,mb:.5},"& blockquote":{mt:.5,mb:.5}},children:e.value?p.jsx(v.Box,{onClick:a,sx:{cursor:"pointer"},children:p.jsx(ua,{children:e.value})}):p.jsxs(v.Box,{onClick:a,sx:{cursor:"pointer"},children:[p.jsx(v.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"Markdown is empty"}),p.jsx(v.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Click to edit."})]})})}):p.jsxs(p.Fragment,{children:[p.jsx(v.Collapse,{in:g,timeout:"auto",unmountOnExit:!0,children:p.jsx(v.Stack,{sx:{p:"10px",borderRadius:0,flexDirection:"row",justifyContent:"space-between"},children:p.jsx(v.Typography,{component:"div",sx:{fontSize:"12px","& .line":{textWrap:"wrap"}},dangerouslySetInnerHTML:{__html:C}})})}),p.jsx(v.Collapse,{in:h,timeout:"auto",unmountOnExit:!0,children:p.jsx(v.Stack,{sx:{p:"10px",borderRadius:0,flexDirection:"row",justifyContent:"space-between"},children:p.jsx(v.Typography,{component:"div",className:"content",sx:{fontSize:"12px","& .line":{textWrap:"wrap"}},dangerouslySetInnerHTML:{__html:b}})})}),t&&(T?p.jsxs(p.Fragment,{children:[p.jsx(v.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"No Model Imports"}),p.jsx(v.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Please add a model import above."})]}):p.jsx(PL,{sourceAndPaths:r,resourceUri:i,onQueryChange:te=>{S(te)},onSourceChange:te=>{z(te)},cell:e})),!t&&e.result&&p.jsx(ka,{variant:"outlined",sx:{borderRadius:0},children:p.jsx(ys,{result:e.result,minHeight:300,maxHeight:800})}),!t&&!e.result&&p.jsxs(v.Box,{onClick:a,sx:{cursor:"pointer"},children:[p.jsx(v.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"Explore is empty"}),p.jsx(v.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Click to edit."})]})]}),U&&M]})}const fb=B.createContext(void 0);function NL({children:e,workbookStorage:t}){const n=B.useMemo(()=>({workbookStorage:t}),[t]);return p.jsx(fb.Provider,{value:n,children:e})}function jd(){const e=B.useContext(fb);if(!e)throw new Error("useWorkbookStorage must be used within a WorkbookStorageProvider");return e}const LL=it(p.jsx("path",{d:"M18 15v3H6v-3H4v3c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-3zM7 9l1.41 1.41L11 7.83V16h2V7.83l2.59 2.58L17 9l-5-5z"}));function OL({initialSelectedModels:e,onModelChange:t,resourceUri:n}){const{projectName:r,packageName:i,versionId:o}=ct(n),{apiClients:s}=Je.useServer(),{data:a,isLoading:l,isSuccess:u,isError:c,error:d}=Qt({queryKey:["models",r,i,o],queryFn:()=>s.models.listModels(r,i,o)}),[h,f]=B.useState(e||[]),[g,x]=B.useState(null);B.useEffect(()=>{f(e||[])},[e]);const b=E=>{const S=h.filter(I=>I!==E);f(S),t(S)},y=E=>{const S=[...h,E];f(S),t(S),x(null)};let C=[];return u&&a?.data&&(C=a.data.filter(E=>!h.includes(E.path)).map(E=>E.path)),c?p.jsx(sn,{error:d,context:`${r} > ${i} > Model Picker`}):p.jsxs(p.Fragment,{children:[p.jsxs(v.FormControl,{fullWidth:!0,children:[l&&p.jsx(v.Typography,{children:"Loading..."}),p.jsxs(v.Stack,{direction:"row",spacing:1,children:[h.map(E=>p.jsx(v.Chip,{label:E,onDelete:()=>b(E),deleteIcon:p.jsx(Lr,{}),sx:{marginBottom:"5px"}},E)),p.jsx(v.Button,{size:"small",startIcon:p.jsx(LL,{}),onClick:E=>x(E.currentTarget),disabled:l||c||C.length===0,children:"Add Model"})]})]}),p.jsxs(v.Menu,{anchorEl:g,open:!!g,onClose:()=>x(null),children:[p.jsx(v.Typography,{variant:"subtitle2",sx:{ml:1},children:"Models"}),p.jsx(v.Divider,{}),C.length===0?p.jsx(v.MenuItem,{disabled:!0,children:"No models available"}):C.map(E=>p.jsx(v.MenuItem,{onClick:()=>y(E),children:p.jsx(v.Typography,{variant:"body2",children:E})},E))]})]})}function hb(){const e=rx.useNavigate();return(t,n)=>{if(!n||!n.metaKey&&!n.ctrlKey&&!n.shiftKey&&n.button!==1){e(t);return}const r=new URL(t,window.location.href).href;(n.metaKey||n.ctrlKey||n.button===1||n.shiftKey)&&window.open(r,"_blank")}}function FL({workbookPath:e,resourceUri:t}){const n=hb(),{server:r,getAccessToken:i}=Je.useServer(),{apiClients:o}=Je.useServer(),{workbookStorage:s}=jd(),{projectName:a,packageName:l}=ct(t),[u,c]=B.useState(void 0),[d,h]=B.useState(void 0);if(!s)throw new Error("Workbook storage be provided via WorkbookStorageProvider");const[f,g]=B.useState(),[x,b]=B.useState(),[y,C]=B.useState(),[E,S]=B.useState([]),[I,k]=B.useState(null),[F,z]=B.useState(null),U=!!I,D=()=>{k(null),z(null)},j=(te,oe)=>{f&&(g(f.insertCell(oe,{isMarkdown:te,value:""})),te?C(oe):b(oe),D(),console.log("handleAddCell",te,oe))},[T,L]=B.useState(!1),N=()=>{L(!0)},M=async()=>{e&&s&&await s.deleteWorkbook(e).then(()=>{h(void 0),c(void 0)}).catch(te=>{h(`Error deleting workbook: ${te.message}`),c(void 0)}),L(!1),n(`/${a}/${l}`)},H=()=>{L(!1)},X=B.useCallback(async()=>{if(!f){console.log("No workbook data ref");return}try{g(await f.saveWorkbook()),h(void 0),c("Workbook saved")}catch(te){h(`Error saving workbook: ${te.message}`),c(void 0)}},[f]);if(B.useEffect(()=>{if(!f)return;(async()=>{const oe=new Map(E.map(({modelPath:se,sourceInfos:q})=>[se,q])),P=[],Ee=[];for(const se of f.getModels())oe.has(se)?P.push({modelPath:se,sourceInfos:oe.get(se)}):(console.log("Fetching model from Publisher",se),Ee.push(o.models.getModel(a,l,se,void 0).then(q=>({modelPath:se,sourceInfos:q.data.sourceInfos.map(re=>JSON.parse(re))}))));if(Ee.length>0){const se=await Promise.all(Ee);S([...P,...se])}else S(P)})()},[i,f,l,a,r]),B.useEffect(()=>{e&&Pi.loadWorkbook(s,e).then(te=>{g(te)})},[e,s]),!f)return p.jsx("div",{children:"Loading..."});const ue=te=>{const oe=[];for(const P of te)for(const Ee of P.sourceInfos)oe.push({modelPath:P.modelPath,sourceInfo:Ee});return oe},$=(te,oe)=>p.jsx(v.Button,{size:"small",startIcon:p.jsx(bk,{}),onClick:()=>j(te,oe),variant:"contained",sx:{backgroundColor:"#fff",color:P=>P.palette.mode==="dark"?P.palette.grey[100]:P.palette.grey[700],boxShadow:"none","&:hover":{backgroundColor:P=>P.palette.mode==="dark"?P.palette.grey[500]:P.palette.grey[300],boxShadow:"none"}},children:te?"Markdown":"Explore"}),_=p.jsxs(v.Box,{sx:{display:"flex",gap:1,justifyContent:"center",flex:2},children:[$(!1,f.getCells().length),$(!0,f.getCells().length)]});return p.jsxs(ka,{variant:"outlined",children:[p.jsxs(x0,{children:[p.jsx(v.Box,{sx:{mb:2},children:p.jsx(v.Box,{sx:{minHeight:"24px"},children:d?p.jsx(v.Typography,{color:"error",variant:"body2",children:d}):u?p.jsx(v.Typography,{color:"success",variant:"body2",children:u}):p.jsx("span",{children:" "})})}),p.jsxs(yi,{sx:{flexDirection:"row",justifyContent:"space-between",alignItems:"center"},children:[p.jsxs(yi,{direction:"row",spacing:1,alignItems:"center",children:[p.jsx(v.Typography,{variant:"overline",sx:{fontSize:"13px",fontWeight:"bold",verticalAlign:"middle"},children:"Workbook"}),p.jsx(v.Typography,{variant:"subtitle2",sx:{fontSize:"13px",fontWeight:"normal",verticalAlign:"middle",ml:1},children:`${e.workspace} > ${e.path}`})]}),p.jsxs(yi,{sx:{display:"flex",flexDirection:"row",gap:1},children:[p.jsx(v.Box,{sx:{display:"flex",alignItems:"center",mt:1,mb:1},children:p.jsx(ML,{workbookData:f})}),p.jsxs(v.Box,{sx:{display:"flex",alignItems:"center",mt:1,mb:1},children:[p.jsx(v.Button,{color:"error",onClick:N,size:"small",children:"Delete"}),p.jsxs(v.Dialog,{open:T,onClose:H,children:[p.jsx(v.DialogTitle,{children:"Delete Workbook"}),p.jsx(v.DialogContent,{children:p.jsxs(v.DialogContentText,{children:['Are you sure you want to delete the workbook "',e.path,'"? This action cannot be undone.']})}),p.jsxs(v.DialogActions,{children:[p.jsx(v.Button,{onClick:H,color:"primary",size:"small",children:"Cancel"}),p.jsx(v.Button,{onClick:M,color:"error",autoFocus:!0,size:"small",children:"Delete"})]})]})]})]})]}),p.jsx(v.Divider,{}),p.jsxs(yi,{sx:{display:"flex",flexDirection:"row",width:"100%",mt:2},children:[p.jsx(v.Box,{sx:{flex:1},children:p.jsx(OL,{initialSelectedModels:f.getModels(),onModelChange:te=>{g(f.setModels(te)),X()},resourceUri:t})}),p.jsx(v.Box,{sx:{flex:1}})]})]}),p.jsx(zc,{children:p.jsxs(yi,{children:[f.getCells().length===0&&p.jsxs(p.Fragment,{children:[p.jsx(v.Typography,{sx:{textAlign:"center",p:2,variant:"subtitle2",fontWeight:"medium"},children:"Workbook is empty"}),p.jsx(v.Typography,{variant:"body2",sx:{textAlign:"center",mb:2,variant:"body2"},children:"Click the + buttons to add a markdown or code cell."})]}),f.getCells().map((te,oe)=>p.jsx(B.Fragment,{children:p.jsx(RL,{cell:te,resourceUri:t,addButtonCallback:P=>$(P,oe),sourceAndPaths:ue(E),editingMarkdown:y===oe,editingMalloy:x===oe,onDelete:()=>{g(f.deleteCell(oe)),X()},onCellChange:P=>{g(f.setCell(oe,P))},onEdit:()=>{te.isMarkdown?C(oe):b(oe)},onClose:()=>{te.isMarkdown?C(void 0):b(void 0),X()}},`${oe}-${te.isMarkdown}-${e.workspace}-${e.path}`)},`${oe}-${f.getCells().length}`)),_,p.jsxs(v.Menu,{anchorEl:I,open:U,onClose:D,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[p.jsx(v.MenuItem,{onClick:()=>j(!0,F??0),children:"Add Markdown"}),p.jsx(v.MenuItem,{onClick:()=>j(!1,F??0),children:"Add Malloy"})]}),p.jsx(yi,{sx:{flexDirection:"row",justifyContent:"flex-end",p:1}})]})})]})}function ML({workbookData:e}){const[t,n]=B.useState(!1),r=async()=>{if(!e)return;const i=e.toMalloyWorkbook();try{await navigator.clipboard.writeText(i),n(!0),setTimeout(()=>n(!1),1500)}catch{n(!1),alert("Failed to copy to clipboard")}};return p.jsx(v.Button,{color:"primary",onClick:r,size:"small",children:t?"Copied!":"Export"})}function mb({onWorkbookClick:e}){const{workbookStorage:t}=jd(),[n,r]=B.useState([]),[i,o]=B.useState(void 0);return B.useEffect(()=>{t&&t.listWorkspaces(!1).then(s=>{const a=[];Promise.all(s.map(async l=>{await t.listWorkbooks(l).then(u=>{a.push(...u)}).catch(u=>{o(`Error listing workbooks: ${u.message}`)})})).then(()=>{r(a),o(void 0)})})},[t]),p.jsxs(p.Fragment,{children:[i&&p.jsx(v.Box,{sx:{mb:2},children:p.jsx(v.Typography,{color:"error",variant:"body2",children:i})}),p.jsx(v.Divider,{}),p.jsx(v.Box,{sx:{maxHeight:"300px",overflow:"auto","&::-webkit-scrollbar":{width:"8px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{background:"rgba(0,0,0,0.2)",borderRadius:"4px"}},children:p.jsxs(v.List,{dense:!0,children:[n.length===0&&p.jsx(v.ListItem,{children:p.jsx(v.ListItemText,{primary:"No workbooks found.",sx:{textAlign:"center"}})}),n.map(s=>p.jsx(v.ListItem,{onClick:a=>e(s,a),sx:{cursor:"pointer","&:hover":{backgroundColor:"action.hover"}},children:p.jsx(v.ListItemText,{primary:s.path})},s.path))]})})]})}const em="Local";class BL{async listWorkspaces(t){return Promise.resolve([{name:em,description:"Stored locally- only accessible to this browser",writeable:!0}])}async listWorkbooks(t){const n=[];for(let r=0;r<localStorage.length;r++){const i=localStorage.key(r);n.push({path:i,workspace:em})}return n}async getWorkbook(t){const n=localStorage.getItem(t.path);if(n===null)throw new Error(`Notebook not found at path: ${t}`);return n}async deleteWorkbook(t){if(localStorage.getItem(t.path)===null)throw new Error(`Notebook not found at path: ${t}`);localStorage.removeItem(t.path)}async saveWorkbook(t,n){localStorage.setItem(t.path,n)}async moveWorkbook(t,n){const r=localStorage.getItem(t.path);if(r===null)throw new Error(`Notebook not found at path: ${t.path}`);localStorage.setItem(n.path,r),localStorage.removeItem(t.path)}}const gb=it(p.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"}));function jL({resourceUri:e}){const{apiClients:t}=Je.useServer(),{projectName:n,packageName:r,versionId:i}=ct(e),{data:o,isSuccess:s,isError:a,error:l}=Qt({queryKey:["package",n,r,i],queryFn:()=>t.packages.getPackage(n,r,i,!1)});return p.jsx(Or,{children:p.jsxs(Fr,{children:[p.jsx(ai,{children:"Package Config"}),p.jsx(v.Box,{sx:{maxHeight:"200px",overflowY:"auto"},children:p.jsxs(v.List,{dense:!0,disablePadding:!0,children:[p.jsx(v.ListItem,{dense:!0,disablePadding:!0,children:p.jsx(v.ListItemText,{primary:"Name",primaryTypographyProps:{fontWeight:"500"},secondary:r})}),!s&&!a&&p.jsx(v.ListItem,{children:p.jsx(Kt,{text:"Fetching Package Metadata..."})}),s&&(o.data&&p.jsx(v.ListItem,{dense:!0,disablePadding:!0,children:p.jsx(v.ListItemText,{primary:"Description",primaryTypographyProps:{fontWeight:"500"},secondary:o.data.description})})||p.jsxs(v.ListItem,{disablePadding:!0,dense:!0,sx:{mt:"20px"},children:[p.jsx(gb,{sx:{color:"grey.600",mr:"10px"}}),p.jsx(v.ListItemText,{primary:"No package manifest"})]})),a&&p.jsx(sn,{error:l,context:`${n} > ${r} > ${i}`})]})})]})})}function HL(e){return qe("MuiButton",e)}const $r=Me("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","colorPrimary","colorSecondary","colorSuccess","colorError","colorInfo","colorWarning","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","icon","iconSizeSmall","iconSizeMedium","iconSizeLarge","loading","loadingWrapper","loadingIconPlaceholder","loadingIndicator","loadingPositionCenter","loadingPositionStart","loadingPositionEnd"]),UL=A.createContext({}),$L=A.createContext(void 0),zL=e=>{const{color:t,disableElevation:n,fullWidth:r,size:i,variant:o,loading:s,loadingPosition:a,classes:l}=e,u={root:["root",s&&"loading",o,`${o}${me(t)}`,`size${me(i)}`,`${o}Size${me(i)}`,`color${me(t)}`,n&&"disableElevation",r&&"fullWidth",s&&`loadingPosition${me(a)}`],startIcon:["icon","startIcon",`iconSize${me(i)}`],endIcon:["icon","endIcon",`iconSize${me(i)}`],loadingIndicator:["loadingIndicator"],loadingWrapper:["loadingWrapper"]},c=ze(u,HL,l);return{...l,...c}},bb=[{props:{size:"small"},style:{"& > *:nth-of-type(1)":{fontSize:18}}},{props:{size:"medium"},style:{"& > *:nth-of-type(1)":{fontSize:20}}},{props:{size:"large"},style:{"& > *:nth-of-type(1)":{fontSize:22}}}],qL=ce(Hi,{shouldForwardProp:e=>on(e)||e==="classes",name:"MuiButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`${n.variant}${me(n.color)}`],t[`size${me(n.size)}`],t[`${n.variant}Size${me(n.size)}`],n.color==="inherit"&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth,n.loading&&t.loading]}})(Xe(({theme:e})=>{const t=e.palette.mode==="light"?e.palette.grey[300]:e.palette.grey[800],n=e.palette.mode==="light"?e.palette.grey.A100:e.palette.grey[700];return{...e.typography.button,minWidth:64,padding:"6px 16px",border:0,borderRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create(["background-color","box-shadow","border-color","color"],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:"none"},[`&.${$r.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{variant:"contained"},style:{color:"var(--variant-containedColor)",backgroundColor:"var(--variant-containedBg)",boxShadow:(e.vars||e).shadows[2],"&:hover":{boxShadow:(e.vars||e).shadows[4],"@media (hover: none)":{boxShadow:(e.vars||e).shadows[2]}},"&:active":{boxShadow:(e.vars||e).shadows[8]},[`&.${$r.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},[`&.${$r.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}},{props:{variant:"outlined"},style:{padding:"5px 15px",border:"1px solid currentColor",borderColor:"var(--variant-outlinedBorder, currentColor)",backgroundColor:"var(--variant-outlinedBg)",color:"var(--variant-outlinedColor)",[`&.${$r.disabled}`]:{border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`}}},{props:{variant:"text"},style:{padding:"6px 8px",color:"var(--variant-textColor)",backgroundColor:"var(--variant-textBg)"}},...Object.entries(e.palette).filter(nn()).map(([r])=>({props:{color:r},style:{"--variant-textColor":(e.vars||e).palette[r].main,"--variant-outlinedColor":(e.vars||e).palette[r].main,"--variant-outlinedBorder":e.alpha((e.vars||e).palette[r].main,.5),"--variant-containedColor":(e.vars||e).palette[r].contrastText,"--variant-containedBg":(e.vars||e).palette[r].main,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":(e.vars||e).palette[r].dark,"--variant-textBg":e.alpha((e.vars||e).palette[r].main,(e.vars||e).palette.action.hoverOpacity),"--variant-outlinedBorder":(e.vars||e).palette[r].main,"--variant-outlinedBg":e.alpha((e.vars||e).palette[r].main,(e.vars||e).palette.action.hoverOpacity)}}}})),{props:{color:"inherit"},style:{color:"inherit",borderColor:"currentColor","--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedBg:t,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedHoverBg:n,"--variant-textBg":e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity),"--variant-outlinedBg":e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity)}}}},{props:{size:"small",variant:"text"},style:{padding:"4px 5px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"text"},style:{padding:"8px 11px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"outlined"},style:{padding:"3px 9px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"outlined"},style:{padding:"7px 21px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"contained"},style:{padding:"4px 10px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"contained"},style:{padding:"8px 22px",fontSize:e.typography.pxToRem(15)}},{props:{disableElevation:!0},style:{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${$r.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${$r.disabled}`]:{boxShadow:"none"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{loadingPosition:"center"},style:{transition:e.transitions.create(["background-color","box-shadow","border-color"],{duration:e.transitions.duration.short}),[`&.${$r.loading}`]:{color:"transparent"}}}]}})),WL=ce("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.startIcon,n.loading&&t.startIconLoadingStart,t[`iconSize${me(n.size)}`]]}})(({theme:e})=>({display:"inherit",marginRight:8,marginLeft:-4,variants:[{props:{size:"small"},style:{marginLeft:-2}},{props:{loadingPosition:"start",loading:!0},style:{transition:e.transitions.create(["opacity"],{duration:e.transitions.duration.short}),opacity:0}},{props:{loadingPosition:"start",loading:!0,fullWidth:!0},style:{marginRight:-8}},...bb]})),VL=ce("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.endIcon,n.loading&&t.endIconLoadingEnd,t[`iconSize${me(n.size)}`]]}})(({theme:e})=>({display:"inherit",marginRight:-4,marginLeft:8,variants:[{props:{size:"small"},style:{marginRight:-2}},{props:{loadingPosition:"end",loading:!0},style:{transition:e.transitions.create(["opacity"],{duration:e.transitions.duration.short}),opacity:0}},{props:{loadingPosition:"end",loading:!0,fullWidth:!0},style:{marginLeft:-8}},...bb]})),GL=ce("span",{name:"MuiButton",slot:"LoadingIndicator"})(({theme:e})=>({display:"none",position:"absolute",visibility:"visible",variants:[{props:{loading:!0},style:{display:"flex"}},{props:{loadingPosition:"start"},style:{left:14}},{props:{loadingPosition:"start",size:"small"},style:{left:10}},{props:{variant:"text",loadingPosition:"start"},style:{left:6}},{props:{loadingPosition:"center"},style:{left:"50%",transform:"translate(-50%)",color:(e.vars||e).palette.action.disabled}},{props:{loadingPosition:"end"},style:{right:14}},{props:{loadingPosition:"end",size:"small"},style:{right:10}},{props:{variant:"text",loadingPosition:"end"},style:{right:6}},{props:{loadingPosition:"start",fullWidth:!0},style:{position:"relative",left:-10}},{props:{loadingPosition:"end",fullWidth:!0},style:{position:"relative",right:-10}}]})),tm=ce("span",{name:"MuiButton",slot:"LoadingIconPlaceholder"})({display:"inline-block",width:"1em",height:"1em"}),Dt=A.forwardRef(function(t,n){const r=A.useContext(UL),i=A.useContext($L),o=Qo(r,t),s=Ge({props:o,name:"MuiButton"}),{children:a,color:l="primary",component:u="button",className:c,disabled:d=!1,disableElevation:h=!1,disableFocusRipple:f=!1,endIcon:g,focusVisibleClassName:x,fullWidth:b=!1,id:y,loading:C=null,loadingIndicator:E,loadingPosition:S="center",size:I="medium",startIcon:k,type:F,variant:z="text",...U}=s,D=Vi(y),j=E??p.jsx(O0,{"aria-labelledby":D,color:"inherit",size:16}),T={...s,color:l,component:u,disabled:d,disableElevation:h,disableFocusRipple:f,fullWidth:b,loading:C,loadingIndicator:j,loadingPosition:S,size:I,type:F,variant:z},L=zL(T),N=(k||C&&S==="start")&&p.jsx(WL,{className:L.startIcon,ownerState:T,children:k||p.jsx(tm,{className:L.loadingIconPlaceholder,ownerState:T})}),M=(g||C&&S==="end")&&p.jsx(VL,{className:L.endIcon,ownerState:T,children:g||p.jsx(tm,{className:L.loadingIconPlaceholder,ownerState:T})}),H=i||"",X=typeof C=="boolean"?p.jsx("span",{className:L.loadingWrapper,style:{display:"contents"},children:C&&p.jsx(GL,{className:L.loadingIndicator,ownerState:T,children:j})}):null;return p.jsxs(qL,{ownerState:T,className:De(r.className,L.root,c,H),component:u,disabled:d||C,focusRipple:!f,focusVisibleClassName:De(L.focusVisible,x),ref:n,type:F,id:C?D:y,...U,classes:L,children:[N,S!=="end"&&X,a,S==="end"&&X,M]})});function YL(e){return qe("MuiDialog",e)}const ku=Me("MuiDialog",["root","scrollPaper","scrollBody","container","paper","paperScrollPaper","paperScrollBody","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","paperFullWidth","paperFullScreen"]),xb=A.createContext({}),KL=ce(H0,{name:"MuiDialog",slot:"Backdrop",overrides:(e,t)=>t.backdrop})({zIndex:-1}),QL=e=>{const{classes:t,scroll:n,maxWidth:r,fullWidth:i,fullScreen:o}=e,s={root:["root"],container:["container",`scroll${me(n)}`],paper:["paper",`paperScroll${me(n)}`,`paperWidth${me(String(r))}`,i&&"paperFullWidth",o&&"paperFullScreen"]};return ze(s,YL,t)},XL=ce(U0,{name:"MuiDialog",slot:"Root"})({"@media print":{position:"absolute !important"}}),ZL=ce("div",{name:"MuiDialog",slot:"Container",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.container,t[`scroll${me(n.scroll)}`]]}})({height:"100%","@media print":{height:"auto"},outline:0,variants:[{props:{scroll:"paper"},style:{display:"flex",justifyContent:"center",alignItems:"center"}},{props:{scroll:"body"},style:{overflowY:"auto",overflowX:"hidden",textAlign:"center","&::after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}}}]}),JL=ce(Zi,{name:"MuiDialog",slot:"Paper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.paper,t[`scrollPaper${me(n.scroll)}`],t[`paperWidth${me(String(n.maxWidth))}`],n.fullWidth&&t.paperFullWidth,n.fullScreen&&t.paperFullScreen]}})(Xe(({theme:e})=>({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"},variants:[{props:{scroll:"paper"},style:{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"}},{props:{scroll:"body"},style:{display:"inline-block",verticalAlign:"middle",textAlign:"initial"}},{props:({ownerState:t})=>!t.maxWidth,style:{maxWidth:"calc(100% - 64px)"}},{props:{maxWidth:"xs"},style:{maxWidth:e.breakpoints.unit==="px"?Math.max(e.breakpoints.values.xs,444):`max(${e.breakpoints.values.xs}${e.breakpoints.unit}, 444px)`,[`&.${ku.paperScrollBody}`]:{[e.breakpoints.down(Math.max(e.breakpoints.values.xs,444)+64)]:{maxWidth:"calc(100% - 64px)"}}}},...Object.keys(e.breakpoints.values).filter(t=>t!=="xs").map(t=>({props:{maxWidth:t},style:{maxWidth:`${e.breakpoints.values[t]}${e.breakpoints.unit}`,[`&.${ku.paperScrollBody}`]:{[e.breakpoints.down(e.breakpoints.values[t]+64)]:{maxWidth:"calc(100% - 64px)"}}}})),{props:({ownerState:t})=>t.fullWidth,style:{width:"calc(100% - 64px)"}},{props:({ownerState:t})=>t.fullScreen,style:{margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0,[`&.${ku.paperScrollBody}`]:{margin:0,maxWidth:"100%"}}}]}))),xr=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiDialog"}),i=Gi(),o={enter:i.transitions.duration.enteringScreen,exit:i.transitions.duration.leavingScreen},{"aria-describedby":s,"aria-labelledby":a,"aria-modal":l=!0,BackdropComponent:u,BackdropProps:c,children:d,className:h,disableEscapeKeyDown:f=!1,fullScreen:g=!1,fullWidth:x=!1,maxWidth:b="sm",onClick:y,onClose:C,open:E,PaperComponent:S=Zi,PaperProps:I={},scroll:k="paper",slots:F={},slotProps:z={},TransitionComponent:U=ac,transitionDuration:D=o,TransitionProps:j,...T}=r,L={...r,disableEscapeKeyDown:f,fullScreen:g,fullWidth:x,maxWidth:b,scroll:k},N=QL(L),M=A.useRef(),H=ve=>{M.current=ve.target===ve.currentTarget},X=ve=>{y&&y(ve),M.current&&(M.current=null,C&&C(ve,"backdropClick"))},ue=Vi(a),$=A.useMemo(()=>({titleId:ue}),[ue]),_={transition:U,...F},te={transition:j,paper:I,backdrop:c,...z},oe={slots:_,slotProps:te},[P,Ee]=nt("root",{elementType:XL,shouldForwardComponentProp:!0,externalForwardedProps:oe,ownerState:L,className:De(N.root,h),ref:n}),[se,q]=nt("backdrop",{elementType:KL,shouldForwardComponentProp:!0,externalForwardedProps:oe,ownerState:L}),[re,ie]=nt("paper",{elementType:JL,shouldForwardComponentProp:!0,externalForwardedProps:oe,ownerState:L,className:De(N.paper,I.className)}),[Te,K]=nt("container",{elementType:ZL,externalForwardedProps:oe,ownerState:L,className:N.container}),[W,Ce]=nt("transition",{elementType:ac,externalForwardedProps:oe,ownerState:L,additionalProps:{appear:!0,in:E,timeout:D,role:"presentation"}});return p.jsx(P,{closeAfterTransition:!0,slots:{backdrop:se},slotProps:{backdrop:{transitionDuration:D,as:u,...q}},disableEscapeKeyDown:f,onClose:C,open:E,onClick:X,...Ee,...T,children:p.jsx(W,{...Ce,children:p.jsx(Te,{onMouseDown:H,...K,children:p.jsx(re,{as:S,elevation:24,role:"dialog","aria-describedby":s,"aria-labelledby":ue,"aria-modal":l,...ie,children:p.jsx(xb.Provider,{value:$,children:d})})})})})});function e7(e){return qe("MuiDialogActions",e)}Me("MuiDialogActions",["root","spacing"]);const t7=e=>{const{classes:t,disableSpacing:n}=e;return ze({root:["root",!n&&"spacing"]},e7,t)},n7=ce("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disableSpacing&&t.spacing]}})({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto",variants:[{props:({ownerState:e})=>!e.disableSpacing,style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),yr=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiDialogActions"}),{className:i,disableSpacing:o=!1,...s}=r,a={...r,disableSpacing:o},l=t7(a);return p.jsx(n7,{className:De(l.root,i),ownerState:a,ref:n,...s})});function r7(e){return qe("MuiDialogContent",e)}Me("MuiDialogContent",["root","dividers"]);function i7(e){return qe("MuiDialogTitle",e)}const o7=Me("MuiDialogTitle",["root"]),s7=e=>{const{classes:t,dividers:n}=e;return ze({root:["root",n&&"dividers"]},r7,t)},a7=ce("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.dividers&&t.dividers]}})(Xe(({theme:e})=>({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px",variants:[{props:({ownerState:t})=>t.dividers,style:{padding:"16px 24px",borderTop:`1px solid ${(e.vars||e).palette.divider}`,borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:t})=>!t.dividers,style:{[`.${o7.root} + &`]:{paddingTop:0}}}]}))),Er=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiDialogContent"}),{className:i,dividers:o=!1,...s}=r,a={...r,dividers:o},l=s7(a);return p.jsx(a7,{className:De(l.root,i),ownerState:a,ref:n,...s})});function l7(e){return qe("MuiTypography",e)}Me("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);const u7={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},c7=w2(),d7=e=>{const{align:t,gutterBottom:n,noWrap:r,paragraph:i,variant:o,classes:s}=e,a={root:["root",o,e.align!=="inherit"&&`align${me(t)}`,n&&"gutterBottom",r&&"noWrap",i&&"paragraph"]};return ze(a,l7,s)},p7=ce("span",{name:"MuiTypography",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],n.align!=="inherit"&&t[`align${me(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom,n.paragraph&&t.paragraph]}})(Xe(({theme:e})=>({margin:0,variants:[{props:{variant:"inherit"},style:{font:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}},...Object.entries(e.typography).filter(([t,n])=>t!=="inherit"&&n&&typeof n=="object").map(([t,n])=>({props:{variant:t},style:n})),...Object.entries(e.palette).filter(nn()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette?.text||{}).filter(([,t])=>typeof t=="string").map(([t])=>({props:{color:`text${me(t)}`},style:{color:(e.vars||e).palette.text[t]}})),{props:({ownerState:t})=>t.align!=="inherit",style:{textAlign:"var(--Typography-textAlign)"}},{props:({ownerState:t})=>t.noWrap,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},{props:({ownerState:t})=>t.gutterBottom,style:{marginBottom:"0.35em"}},{props:({ownerState:t})=>t.paragraph,style:{marginBottom:16}}]}))),nm={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},As=A.forwardRef(function(t,n){const{color:r,...i}=Ge({props:t,name:"MuiTypography"}),o=!u7[r],s=c7({...i,...o&&{color:r}}),{align:a="inherit",className:l,component:u,gutterBottom:c=!1,noWrap:d=!1,paragraph:h=!1,variant:f="body1",variantMapping:g=nm,...x}=s,b={...s,align:a,color:r,className:l,component:u,gutterBottom:c,noWrap:d,paragraph:h,variant:f,variantMapping:g},y=u||(h?"p":g[f]||nm[f])||"span",C=d7(b);return p.jsx(p7,{as:y,ref:n,className:De(C.root,l),...x,ownerState:b,style:{...a!=="inherit"&&{"--Typography-textAlign":a},...x.style}})});function f7(e){return qe("MuiDialogContentText",e)}Me("MuiDialogContentText",["root"]);const h7=e=>{const{classes:t}=e,r=ze({root:["root"]},f7,t);return{...t,...r}},m7=ce(As,{shouldForwardProp:e=>on(e)||e==="classes",name:"MuiDialogContentText",slot:"Root"})({}),ao=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiDialogContentText"}),{children:i,className:o,...s}=r,a=h7(s);return p.jsx(m7,{component:"p",variant:"body1",color:"textSecondary",ref:n,ownerState:s,className:De(a.root,o),...r,classes:a})}),g7=e=>{const{classes:t}=e;return ze({root:["root"]},i7,t)},b7=ce(As,{name:"MuiDialogTitle",slot:"Root"})({padding:"16px 24px",flex:"0 0 auto"}),Cr=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiDialogTitle"}),{className:i,id:o,...s}=r,a=r,l=g7(a),{titleId:u=o}=A.useContext(xb);return p.jsx(b7,{component:"h2",className:De(l.root,i),ownerState:a,ref:n,variant:"h6",id:o??u,...s})}),rm=Me("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]),im=Me("MuiListItemIcon",["root","alignItemsFlexStart"]),om=Me("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]);function x7(e){return qe("MuiMenuItem",e)}const Io=Me("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),y7=(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},E7=e=>{const{disabled:t,dense:n,divider:r,disableGutters:i,selected:o,classes:s}=e,l=ze({root:["root",n&&"dense",t&&"disabled",!i&&"gutters",r&&"divider",o&&"selected"]},x7,s);return{...s,...l}},C7=ce(Hi,{shouldForwardProp:e=>on(e)||e==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver:y7})(Xe(({theme:e})=>({...e.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Io.selected}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),[`&.${Io.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}},[`&.${Io.selected}:hover`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity)}},[`&.${Io.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${Io.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${rm.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${rm.inset}`]:{marginLeft:52},[`& .${om.root}`]:{marginTop:0,marginBottom:0},[`& .${om.inset}`]:{paddingLeft:36},[`& .${im.root}`]:{minWidth:36},variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>t.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:t})=>!t.dense,style:{[e.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:t})=>t.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...e.typography.body2,[`& .${im.root} svg`]:{fontSize:"1.25rem"}}}]}))),yb=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiMenuItem"}),{autoFocus:i=!1,component:o="li",dense:s=!1,divider:a=!1,disableGutters:l=!1,focusVisibleClassName:u,role:c="menuitem",tabIndex:d,className:h,...f}=r,g=A.useContext(oc),x=A.useMemo(()=>({dense:s||g.dense||!1,disableGutters:l}),[g.dense,s,l]),b=A.useRef(null);Qn(()=>{i&&b.current&&b.current.focus()},[i]);const y={...r,dense:x.dense,divider:a,disableGutters:l},C=E7(r),E=mt(b,n);let S;return r.disabled||(S=d!==void 0?d:-1),p.jsx(oc.Provider,{value:x,children:p.jsx(C7,{ref:E,role:c,tabIndex:S,component:o,focusVisibleClassName:De(C.focusVisible,u),className:De(C.root,h),...f,ownerState:y,classes:C})})}),Ua={postgres:[{label:"Host",name:"host",type:"text"},{label:"Port",name:"port",type:"number"},{label:"Database Name",name:"databaseName",type:"text"},{label:"User Name",name:"userName",type:"text"},{label:"Password",name:"password",type:"password"},{label:"Connection String",name:"connectionString",type:"text"}],bigquery:[{label:"Project ID",name:"defaultProjectId",type:"text"},{label:"Billing Project ID",name:"billingProjectId",type:"text"},{label:"Location",name:"location",type:"text"},{label:"Service Account Key JSON",name:"serviceAccountKeyJson",type:"text"},{label:"Maximum Bytes Billed",name:"maximumBytesBilled",type:"text"},{label:"Query Timeout Milliseconds",name:"queryTimeoutMilliseconds",type:"text"}],snowflake:[{label:"Account",name:"account",type:"text"},{label:"Username",name:"username",type:"text"},{label:"Password",name:"password",type:"password"},{label:"Role",name:"role",type:"text"},{label:"Warehouse",name:"warehouse",type:"text"},{label:"Database",name:"database",type:"text"},{label:"Schema",name:"schema",type:"text"},{label:"Response Timeout Milliseconds",name:"responseTimeoutMilliseconds",type:"text"}],trino:[{label:"Server",name:"server",type:"text"},{label:"Port",name:"port",type:"number"},{label:"Catalog",name:"catalog",type:"text"},{label:"Schema",name:"schema",type:"text"},{label:"User",name:"user",type:"text"},{label:"Password",name:"password",type:"password"}],mysql:[{label:"Host",name:"host",type:"text"},{label:"Port",name:"port",type:"number"},{label:"User",name:"user",type:"text"},{label:"Password",name:"password",type:"password"},{label:"Database",name:"database",type:"text"}],duckdb:[],motherduck:[{label:"Access Token",name:"accessToken",type:"text"},{label:"Database",name:"database",type:"text"}]},Iu={postgres:"postgresConnection",bigquery:"bigqueryConnection",snowflake:"snowflakeConnection",trino:"trinoConnection",mysql:"mysqlConnection",duckdb:"duckdbConnection",motherduck:"motherduckConnection"};function T7({onSubmit:e,isSubmitting:t}){const[n,r]=B.useState(!1),[i,o]=B.useState("postgres"),s=()=>{r(!0)},a=()=>{r(!1)},l=async u=>{u.preventDefault();const c=new FormData(u.currentTarget),d=c.get("name")?.toString(),h=c.get("type")?.toString(),f=Ua[h];if(!d)throw new Error("Name is required");if(!h)throw new Error("Type is required");const x={name:d,type:h,[{postgres:"postgresConnection",bigquery:"bigqueryConnection",snowflake:"snowflakeConnection",trino:"trinoConnection",mysql:"mysqlConnection",motherduck:"motherduckConnection"}[h]]:f.reduce((b,y)=>(b[y.name]=c.get(y.name)?.toString(),b),{})};await e(x),a()};return p.jsxs(B.Fragment,{children:[p.jsx(Dt,{variant:"outlined",onClick:s,children:"Add Connection"}),p.jsxs(xr,{open:n,onClose:a,children:[p.jsx(Cr,{children:"Create New Connection"}),p.jsxs(Er,{children:[p.jsx(ao,{children:"Add a new connection to query your data database using Malloy."}),p.jsxs("form",{onSubmit:l,id:"connection-form",children:[p.jsx(Yt,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Connection Name",type:"text",fullWidth:!0,variant:"standard"}),p.jsx(Yt,{margin:"dense",id:"type",name:"type",label:"Connection Type",fullWidth:!0,variant:"standard",value:i,select:!0,onChange:u=>o(u.target.value),children:Object.values(Je.ConnectionTypeEnum).map(u=>p.jsx(yb,{value:u,children:u},u))}),Ua[i].map(u=>p.jsx(Yt,{margin:"dense",id:u.name,name:u.name,label:u.label,type:u.type,fullWidth:!0,variant:"standard"},u.name))]})]}),p.jsxs(yr,{children:[p.jsx(Dt,{disabled:t,onClick:a,children:"Cancel"}),p.jsx(Dt,{type:"submit",form:"connection-form",loading:t,children:"Create Connection"})]})]})]})}function v7({connection:e,onCloseDialog:t,isMutating:n,onDelete:r}){const[i,o]=B.useState(!1),[s,a]=B.useState(""),l=()=>{o(!0)},u=()=>{o(!1),t()};return p.jsxs(B.Fragment,{children:[p.jsx(Ui,{onClick:c=>{c.stopPropagation(),l()},children:p.jsx(pn.Delete,{})}),p.jsxs(xr,{onClose:u,"aria-labelledby":"customized-dialog-title",open:i,children:[p.jsx(Cr,{sx:{m:0,p:2},id:"customized-dialog-title",children:"Delete Connection"}),p.jsx(Ui,{"aria-label":"close",onClick:u,sx:c=>({position:"absolute",right:8,top:8,color:c.palette.grey[500]}),children:p.jsx(Lr,{})}),p.jsx(Er,{dividers:!0,children:p.jsxs(As,{gutterBottom:!0,children:['Are you sure you want to delete "',e.name,'"? This action cannot be undone.']})}),p.jsx(yr,{children:p.jsx(Dt,{loading:n,variant:"contained",autoFocus:!0,onClick:()=>r(),color:"error",children:"Delete"})}),p.jsx(v.Snackbar,{open:s!=="",autoHideDuration:6e3,onClose:()=>a(""),message:s})]})]})}function S7({connection:e,onSubmit:t,isSubmitting:n}){const[r,i]=B.useState(!1),[o,s]=B.useState(e.type),a=()=>{i(!0)},l=()=>{i(!1)},u=async c=>{c.preventDefault();const d=new FormData(c.currentTarget),h=d.get("name")?.toString(),f=d.get("type")?.toString(),g=Ua[f];if(!h)throw new Error("Name is required");if(!f)throw new Error("Type is required");const x={name:h,type:f,[Iu[f]]:g.reduce((b,y)=>(b[y.name]=d.get(y.name)?.toString()??e[Iu[f]][y.name],b),{})};await t(x),l()};return p.jsxs(B.Fragment,{children:[p.jsx(v.IconButton,{onClick:c=>{c.preventDefault(),c.stopPropagation(),a()},children:p.jsx(pn.Edit,{})}),p.jsxs(xr,{open:r,onClose:l,children:[p.jsx(Cr,{onClick:c=>{c.stopPropagation()},children:"Edit Connection"}),p.jsxs(Er,{onClick:c=>{c.stopPropagation()},children:[p.jsx(ao,{children:"Edit a connection to query your data database using Malloy."}),p.jsxs("form",{onSubmit:u,id:"connection-form",children:[p.jsx(Yt,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Connection Name",type:"text",fullWidth:!0,variant:"standard",value:e.name,defaultValue:e.name}),p.jsx(Yt,{margin:"dense",id:"type",name:"type",label:"Connection Type",fullWidth:!0,variant:"standard",value:o,select:!0,onChange:c=>s(c.target.value),children:Object.values(Je.ConnectionTypeEnum).map(c=>p.jsx(yb,{value:c,children:c},c))}),Ua[o].map(c=>p.jsx(Yt,{margin:"dense",id:c.name,name:c.name,label:c.label,type:c.type,fullWidth:!0,variant:"standard",defaultValue:e?.[Iu[o]??""]?.[c.name??""]??""},c.name))]})]}),p.jsxs(yr,{onClick:c=>{c.stopPropagation()},children:[p.jsx(Dt,{disabled:n,onClick:l,children:"Cancel"}),p.jsx(Dt,{type:"submit",form:"connection-form",loading:n,children:"Edit Connection"})]})]})]})}function Eb({connectionName:e,resourceUri:t,schema:n}){const{apiClients:r}=Je.useServer(),{projectName:i}=ct(t),[o,s]=B.useState(void 0),[a,l]=B.useState(n||null),[u,c]=B.useState(!1),{data:d,isError:h,isLoading:f,error:g}=Qt({queryKey:["schemas",i,e],queryFn:()=>r.connections.listSchemas(i,e)}),x=d?.data||[];return p.jsxs(v.Grid,{container:!0,spacing:1,children:[!n&&p.jsx(v.Grid,{size:{xs:12,md:4},children:p.jsxs(v.Paper,{sx:{p:1,m:0},children:[p.jsxs(v.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:0},children:[p.jsx(v.Typography,{variant:"overline",fontWeight:"bold",children:"Table Paths"}),p.jsx(v.FormControlLabel,{control:p.jsx(v.Switch,{checked:u,onChange:b=>c(b.target.checked)}),label:"Hidden Schemas"})]}),p.jsx(v.Divider,{sx:{mt:"2px"}}),p.jsxs(v.Box,{sx:{mt:"2px",maxHeight:"600px",overflowY:"auto"},children:[f&&p.jsx(Kt,{text:"Loading schemas..."}),h&&p.jsx(sn,{error:g,context:`${i} > ${e} > Schemas`}),!f&&!h&&x.length===0&&p.jsx(v.Typography,{variant:"body2",children:"No Schemas"}),!f&&!h&&x.length>0&&p.jsx(v.List,{dense:!0,disablePadding:!0,children:x.map(b=>{const y=b.name;if(b.isHidden&&!u)return null;const E=a===y;return p.jsx(v.ListItemButton,{selected:E,onClick:()=>{l(y),s(void 0)},children:p.jsx(v.ListItemText,{primary:y})},y)})})]})]})}),p.jsx(v.Grid,{size:{xs:12,md:n?6:4},children:a&&p.jsx(v.Paper,{sx:{p:1,m:0},children:p.jsx(I7,{connectionName:e,schemaName:a,onTableClick:b=>{s(b)},resourceUri:t})})}),p.jsx(v.Grid,{size:{xs:12,md:n?6:4},children:o&&p.jsx(v.Paper,{sx:{p:1,m:0},children:p.jsx(k7,{table:o})})})]})}function k7({table:e}){return p.jsxs(p.Fragment,{children:[p.jsxs(v.Typography,{variant:"overline",fontWeight:"bold",children:["Schema: ",e.resource]}),p.jsx(v.Divider,{}),p.jsx(v.Box,{sx:{mt:"10px",maxHeight:"600px",overflowY:"auto"},children:p.jsx(v.TableContainer,{children:p.jsxs(v.Table,{size:"small",sx:{"& .MuiTableCell-root":{padding:"10px"}},children:[p.jsx(v.TableHead,{children:p.jsxs(v.TableRow,{children:[p.jsx(v.TableCell,{children:"NAME"}),p.jsx(v.TableCell,{children:"TYPE"})]})}),p.jsx(v.TableBody,{children:e.columns?.sort((t,n)=>t.name.localeCompare(n.name))?.map(t=>p.jsxs(v.TableRow,{children:[p.jsx(v.TableCell,{children:t.name}),p.jsx(v.TableCell,{children:t.type})]},t.name))})]})})})]})}function I7({connectionName:e,schemaName:t,onTableClick:n,resourceUri:r}){const{projectName:i}=ct(r),{apiClients:o}=Je.useServer(),{data:s,isSuccess:a,isError:l,error:u,isLoading:c}=Qt({queryKey:["tablesInSchema",i,e,t],queryFn:()=>o.connections.listTables(i,e,t)});return p.jsxs(p.Fragment,{children:[p.jsxs(v.Typography,{variant:"overline",fontWeight:"bold",children:["Tables in ",t]}),p.jsx(v.Divider,{}),p.jsxs(v.Box,{sx:{mt:"2px",maxHeight:"600px",overflowY:"auto"},children:[c&&p.jsx(Kt,{text:"Fetching Tables..."}),l&&p.jsx(sn,{error:u,context:`${i} > ${e} > ${t}`}),a&&s?.data?.length===0&&p.jsx(v.Typography,{variant:"body2",children:"No Tables"}),a&&s?.data&&s.data.length>0&&p.jsx(v.List,{dense:!0,disablePadding:!0,children:s.data.sort((d,h)=>{const f=d.resource.split(".").pop()||d.resource,g=h.resource.split(".").pop()||h.resource;return f.localeCompare(g)}).map(d=>{const h=d.resource.split(".").pop()||d.resource;return p.jsx(v.ListItemButton,{onClick:()=>n(d),children:p.jsx(v.ListItemText,{primary:h,secondary:`${d.columns.length} columns`})},d.resource)})})]})]})}function A7({connection:e,onClick:t,onEdit:n,onDelete:r,isMutating:i,mutable:o}){return p.jsxs(v.TableRow,{sx:{"&:hover":{backgroundColor:"action.hover"}},children:[p.jsx(v.TableCell,{sx:{cursor:"pointer",flexGrow:1},onClick:t,children:p.jsxs(v.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[p.jsx(v.Typography,{variant:"body2",children:e.name}),p.jsx(Xo,{sx:{fontSize:"1rem",color:"action.active",opacity:.7}})]})}),p.jsx(v.TableCell,{sx:{minWidth:"120px"},children:p.jsx(v.Typography,{variant:"body2",children:e.type})}),o&&p.jsxs(v.TableCell,{sx:{minWidth:"120px"},children:[p.jsx(S7,{connection:e,onSubmit:n,isSubmitting:i}),p.jsx(v7,{connection:e,onCloseDialog:()=>{},isMutating:i,onDelete:()=>r(e)})]})]},e.name)}function w7({resourceUri:e}){const{apiClients:t,mutable:n}=Je.useServer(),r=mr.useQueryClient(),{projectName:i}=ct(e),[o,s]=B.useState(""),[a,l]=B.useState(null),u=tl({projectName:i,connectionName:a}),{data:c,isSuccess:d,isError:h,error:f}=Qt({queryKey:["connections",i],queryFn:()=>t.connections.listConnections(i)}),g=E=>{l(E)},x=()=>{l(null)},b=Yn({mutationFn:E=>t.projects.updateProject(i,{name:i,connections:[...c.data,E]}),onSuccess(){s("Connection added successfully"),r.invalidateQueries({queryKey:["connections",i]})},onError(E){s(E.message)}}),y=Yn({mutationFn:E=>t.projects.updateProject(i,{name:i,connections:c.data.map(S=>S.name===E.name?E:S)}),onSuccess(E,S){s(`Connection ${S.name} updated successfully`),r.invalidateQueries({queryKey:["connections",i]})},onError(E){s(E.message)}}),C=Yn({mutationFn:E=>t.projects.updateProject(i,{name:i,connections:c.data.filter(S=>S.name!==E.name)}),onSuccess(E,S){s(`Connection ${S.name} deleted successfully`),r.invalidateQueries({queryKey:["connections",i]})},onError(E){s(E.message)}});return p.jsxs(p.Fragment,{children:[p.jsx(Or,{children:p.jsxs(Fr,{children:[p.jsx(ai,{children:"Database Connections"}),p.jsxs(v.Box,{sx:{mb:1,maxHeight:"200px",overflowY:"auto"},children:[!d&&!h&&p.jsx(v.Typography,{variant:"body2",sx:{m:"auto"},children:"Fetching Connections..."}),d&&c.data.length>0&&p.jsx(v.Table,{size:"small",sx:{borderCollapse:"collapse","& .MuiTableRow-root":{display:"flex",width:"100%"},"& .MuiTableCell-root":{borderBottom:"1px solid #e0e0e0",display:"flex",alignItems:"center"},"& .MuiTableRow-root:last-child .MuiTableCell-root":{borderBottom:"none"}},children:p.jsxs(v.TableBody,{children:[p.jsxs(v.TableRow,{children:[p.jsx(v.TableCell,{sx:{flexGrow:1},children:p.jsx(v.Typography,{variant:"body2",fontWeight:"500",color:"text.secondary",children:"Connection Name"})}),p.jsx(v.TableCell,{sx:{minWidth:"120px"},children:p.jsx(v.Typography,{variant:"body2",fontWeight:"500",color:"text.secondary",children:"Type"})}),n&&p.jsx(v.TableCell,{sx:{minWidth:"120px"},children:p.jsx(v.Typography,{variant:"body2",fontWeight:"500",color:"text.secondary",sx:{mx:"auto"},children:"Actions"})})]}),c.data.map(E=>p.jsx(A7,{connection:E,onClick:()=>g(E.name),onEdit:S=>y.mutateAsync(S),onDelete:S=>C.mutateAsync(S),isMutating:y.isPending||C.isPending,mutable:n},E.name))]})}),d&&c.data.length===0&&p.jsx(v.Typography,{variant:"body2",children:"No Connections"}),h&&p.jsx(sn,{error:f,context:`${i} > Connections`})]}),n&&p.jsx(v.Box,{sx:{display:"flex",justifyContent:"flex-end"},children:p.jsx(T7,{onSubmit:E=>b.mutateAsync(E),isSubmitting:b.isPending})})]})}),p.jsx(v.Snackbar,{open:o!=="",autoHideDuration:6e3,onClose:()=>s(""),message:o}),p.jsxs(v.Dialog,{open:a!==null,onClose:x,maxWidth:"lg",fullWidth:!0,children:[p.jsxs(v.DialogTitle,{children:["Connection Explorer: ",a,p.jsx(v.IconButton,{"aria-label":"close",onClick:x,sx:{position:"absolute",right:8,top:8},children:p.jsx(v.Box,{sx:{width:24,height:24,display:"flex",alignItems:"center",justifyContent:"center"},children:"X"})})]}),p.jsx(v.DialogContent,{children:a&&p.jsx(Eb,{resourceUri:u,connectionName:a})})]})]})}function D7({resourceUri:e}){const{apiClients:t}=Je.useServer(),{projectName:n,packageName:r,versionId:i}=ct(e),[o,s]=B.useState(!1),[a,l]=B.useState(null),u=b=>{l(b),s(!0)},c=()=>{s(!1),l(null)},{data:d,isError:h,error:f,isSuccess:g}=Qt({queryKey:["databases",n,r,i],queryFn:()=>t.databases.listDatabases(n,r,i)}),x=b=>b>=1024*1024*1024*1024?`${(b/(1024*1024*1024)).toFixed(2)} T`:b>=1024*1024*1024?`${(b/(1024*1024*1024)).toFixed(2)} G`:b>=1024*1024?`${(b/(1024*1024)).toFixed(2)} M`:`${(b/1024).toFixed(2)} K`;return p.jsxs(p.Fragment,{children:[p.jsx(Or,{children:p.jsxs(Fr,{children:[p.jsx(ai,{children:"Embedded Databases"}),p.jsxs(v.Box,{sx:{maxHeight:"200px",overflowY:"auto"},children:[!g&&!h&&p.jsx(Kt,{text:"Fetching Databases..."}),h&&p.jsx(sn,{error:f,context:`${n} > ${r} > Databases`}),g&&d.data.length>0&&p.jsx(v.Table,{size:"small",sx:{borderCollapse:"collapse","& .MuiTableCell-root":{borderBottom:"1px solid #e0e0e0"},"& .MuiTableRow-root:last-child .MuiTableCell-root":{borderBottom:"none"}},children:p.jsxs(v.TableBody,{children:[p.jsxs(v.TableRow,{children:[p.jsx(v.TableCell,{children:p.jsx(v.Typography,{variant:"body2",fontWeight:"500",color:"text.secondary",children:"Name"})}),p.jsx(v.TableCell,{align:"right",children:p.jsx(v.Typography,{variant:"body2",fontWeight:"500",color:"text.secondary",children:"Rows"})})]}),d.data.map(b=>p.jsxs(v.TableRow,{onClick:()=>u(b),sx:{cursor:"pointer","&:hover":{backgroundColor:"action.hover"}},children:[p.jsx(v.TableCell,{component:"th",scope:"row",children:p.jsxs(v.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[p.jsx(v.Typography,{variant:"body2",children:b.path}),p.jsx(Xo,{sx:{fontSize:"1rem",color:"action.active",opacity:.7}})]})}),p.jsx(v.TableCell,{align:"right",children:p.jsx(v.Typography,{variant:"body2",children:x(b.info.rowCount)})})]},b.path))]})}),g&&d.data.length===0&&p.jsx(v.Typography,{variant:"body2",sx:{m:"auto"},children:"No databases found"})]})]})}),p.jsxs(v.Dialog,{open:o,onClose:c,maxWidth:"sm",fullWidth:!0,children:[p.jsxs(v.DialogTitle,{children:[a?.path,p.jsx(v.IconButton,{"aria-label":"close",onClick:c,sx:{position:"absolute",right:8,top:8},children:p.jsx(v.Box,{sx:{width:24,height:24,display:"flex",alignItems:"center",justifyContent:"center"},children:"X"})})]}),p.jsx(v.DialogContent,{children:a?.info?.columns&&p.jsx(v.TableContainer,{children:p.jsxs(v.Table,{size:"small",children:[p.jsx(v.TableHead,{children:p.jsxs(v.TableRow,{children:[p.jsx(v.TableCell,{children:"Column"}),p.jsx(v.TableCell,{children:"Type"})]})}),p.jsx(v.TableBody,{children:a.info.columns.map(b=>p.jsxs(v.TableRow,{children:[p.jsx(v.TableCell,{component:"th",scope:"row",children:b.name}),p.jsx(v.TableCell,{children:b.type})]},b.name))})]})})})]})]})}function _7(e){const{theme:t,name:n,props:r}=e;return!t||!t.components||!t.components[n]||!t.components[n].defaultProps?r:Qo(t.components[n].defaultProps,r)}function P7({props:e,name:t,defaultTheme:n,themeId:r}){let i=Hy(n);return i=i[r]||i,_7({theme:i,name:t,props:e})}function R7({props:e,name:t}){return P7({props:e,name:t,defaultTheme:Ja,themeId:el})}function N7(e){return qe("MuiCollapse",e)}Me("MuiCollapse",["root","horizontal","vertical","entered","hidden","wrapper","wrapperInner"]);const L7=e=>{const{orientation:t,classes:n}=e,r={root:["root",`${t}`],entered:["entered"],hidden:["hidden"],wrapper:["wrapper",`${t}`],wrapperInner:["wrapperInner",`${t}`]};return ze(r,N7,n)},O7=ce("div",{name:"MuiCollapse",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.orientation],n.state==="entered"&&t.entered,n.state==="exited"&&!n.in&&n.collapsedSize==="0px"&&t.hidden]}})(Xe(({theme:e})=>({height:0,overflow:"hidden",transition:e.transitions.create("height"),variants:[{props:{orientation:"horizontal"},style:{height:"auto",width:0,transition:e.transitions.create("width")}},{props:{state:"entered"},style:{height:"auto",overflow:"visible"}},{props:{state:"entered",orientation:"horizontal"},style:{width:"auto"}},{props:({ownerState:t})=>t.state==="exited"&&!t.in&&t.collapsedSize==="0px",style:{visibility:"hidden"}}]}))),F7=ce("div",{name:"MuiCollapse",slot:"Wrapper"})({display:"flex",width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),M7=ce("div",{name:"MuiCollapse",slot:"WrapperInner"})({width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),ls=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiCollapse"}),{addEndListener:i,children:o,className:s,collapsedSize:a="0px",component:l,easing:u,in:c,onEnter:d,onEntered:h,onEntering:f,onExit:g,onExited:x,onExiting:b,orientation:y="vertical",style:C,timeout:E=Tm.standard,TransitionComponent:S=jn,...I}=r,k={...r,orientation:y,collapsedSize:a},F=L7(k),z=Gi(),U=ul(),D=A.useRef(null),j=A.useRef(),T=typeof a=="number"?`${a}px`:a,L=y==="horizontal",N=L?"width":"height",M=A.useRef(null),H=mt(n,M),X=q=>re=>{if(q){const ie=M.current;re===void 0?q(ie):q(ie,re)}},ue=()=>D.current?D.current[L?"clientWidth":"clientHeight"]:0,$=X((q,re)=>{D.current&&L&&(D.current.style.position="absolute"),q.style[N]=T,d&&d(q,re)}),_=X((q,re)=>{const ie=ue();D.current&&L&&(D.current.style.position="");const{duration:Te,easing:K}=$i({style:C,timeout:E,easing:u},{mode:"enter"});if(E==="auto"){const W=z.transitions.getAutoHeightDuration(ie);q.style.transitionDuration=`${W}ms`,j.current=W}else q.style.transitionDuration=typeof Te=="string"?Te:`${Te}ms`;q.style[N]=`${ie}px`,q.style.transitionTimingFunction=K,f&&f(q,re)}),te=X((q,re)=>{q.style[N]="auto",h&&h(q,re)}),oe=X(q=>{q.style[N]=`${ue()}px`,g&&g(q)}),P=X(x),Ee=X(q=>{const re=ue(),{duration:ie,easing:Te}=$i({style:C,timeout:E,easing:u},{mode:"exit"});if(E==="auto"){const K=z.transitions.getAutoHeightDuration(re);q.style.transitionDuration=`${K}ms`,j.current=K}else q.style.transitionDuration=typeof ie=="string"?ie:`${ie}ms`;q.style[N]=T,q.style.transitionTimingFunction=Te,b&&b(q)}),se=q=>{E==="auto"&&U.start(j.current||0,q),i&&i(M.current,q)};return p.jsx(S,{in:c,onEnter:$,onEntered:te,onEntering:_,onExit:oe,onExited:P,onExiting:Ee,addEndListener:se,nodeRef:M,timeout:E==="auto"?null:E,...I,children:(q,{ownerState:re,...ie})=>p.jsx(O7,{as:l,className:De(F.root,s,{entered:F.entered,exited:!c&&T==="0px"&&F.hidden}[q]),style:{[L?"minWidth":"minHeight"]:T,...C},ref:H,ownerState:{...k,state:q},...ie,children:p.jsx(F7,{ownerState:{...k,state:q},className:F.wrapper,ref:D,children:p.jsx(M7,{ownerState:{...k,state:q},className:F.wrapperInner,children:o})})})})});ls&&(ls.muiSupportAuto=!0);function B7(e){return qe("PrivateSwitchBase",e)}Me("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);const j7=e=>{const{classes:t,checked:n,disabled:r,edge:i}=e,o={root:["root",n&&"checked",r&&"disabled",i&&`edge${me(i)}`],input:["input"]};return ze(o,B7,t)},H7=ce(Hi,{name:"MuiSwitchBase"})({padding:9,borderRadius:"50%",variants:[{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:({edge:e,ownerState:t})=>e==="start"&&t.size!=="small",style:{marginLeft:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}},{props:({edge:e,ownerState:t})=>e==="end"&&t.size!=="small",style:{marginRight:-12}}]}),U7=ce("input",{name:"MuiSwitchBase",shouldForwardProp:on})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),$7=A.forwardRef(function(t,n){const{autoFocus:r,checked:i,checkedIcon:o,defaultChecked:s,disabled:a,disableFocusRipple:l=!1,edge:u=!1,icon:c,id:d,inputProps:h,inputRef:f,name:g,onBlur:x,onChange:b,onFocus:y,readOnly:C,required:E=!1,tabIndex:S,type:I,value:k,slots:F={},slotProps:z={},...U}=t,[D,j]=wi({controlled:i,default:!!s,name:"SwitchBase",state:"checked"}),T=li(),L=se=>{y&&y(se),T&&T.onFocus&&T.onFocus(se)},N=se=>{x&&x(se),T&&T.onBlur&&T.onBlur(se)},M=se=>{if(se.nativeEvent.defaultPrevented)return;const q=se.target.checked;j(q),b&&b(se,q)};let H=a;T&&typeof H>"u"&&(H=T.disabled);const X=I==="checkbox"||I==="radio",ue={...t,checked:D,disabled:H,disableFocusRipple:l,edge:u},$=j7(ue),_={slots:F,slotProps:{input:h,...z}},[te,oe]=nt("root",{ref:n,elementType:H7,className:$.root,shouldForwardComponentProp:!0,externalForwardedProps:{..._,component:"span",...U},getSlotProps:se=>({...se,onFocus:q=>{se.onFocus?.(q),L(q)},onBlur:q=>{se.onBlur?.(q),N(q)}}),ownerState:ue,additionalProps:{centerRipple:!0,focusRipple:!l,disabled:H,role:void 0,tabIndex:null}}),[P,Ee]=nt("input",{ref:f,elementType:U7,className:$.input,externalForwardedProps:_,getSlotProps:se=>({...se,onChange:q=>{se.onChange?.(q),M(q)}}),ownerState:ue,additionalProps:{autoFocus:r,checked:i,defaultChecked:s,disabled:H,id:X?d:void 0,name:g,readOnly:C,required:E,tabIndex:S,type:I,...I==="checkbox"&&k===void 0?{}:{value:k}}});return p.jsxs(te,{...oe,children:[p.jsx(P,{...Ee}),D?o:c]})}),z7=it(p.jsx("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"})),q7=it(p.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"})),W7=it(p.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}));function V7(e){return qe("MuiCheckbox",e)}const Au=Me("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),G7=e=>{const{classes:t,indeterminate:n,color:r,size:i}=e,o={root:["root",n&&"indeterminate",`color${me(r)}`,`size${me(i)}`]},s=ze(o,V7,t);return{...t,...s}},Y7=ce($7,{shouldForwardProp:e=>on(e)||e==="classes",name:"MuiCheckbox",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.indeterminate&&t.indeterminate,t[`size${me(n.size)}`],n.color!=="default"&&t[`color${me(n.color)}`]]}})(Xe(({theme:e})=>({color:(e.vars||e).palette.text.secondary,variants:[{props:{color:"default",disableRipple:!1},style:{"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter(nn()).map(([t])=>({props:{color:t,disableRipple:!1},style:{"&:hover":{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}}})),...Object.entries(e.palette).filter(nn()).map(([t])=>({props:{color:t},style:{[`&.${Au.checked}, &.${Au.indeterminate}`]:{color:(e.vars||e).palette[t].main},[`&.${Au.disabled}`]:{color:(e.vars||e).palette.action.disabled}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}))),K7=p.jsx(q7,{}),Q7=p.jsx(z7,{}),X7=p.jsx(W7,{}),Cb=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiCheckbox"}),{checkedIcon:i=K7,color:o="primary",icon:s=Q7,indeterminate:a=!1,indeterminateIcon:l=X7,inputProps:u,size:c="medium",disableRipple:d=!1,className:h,slots:f={},slotProps:g={},...x}=r,b=a?l:s,y=a?l:i,C={...r,disableRipple:d,color:o,indeterminate:a,size:c},E=G7(C),S=g.input??u,[I,k]=nt("root",{ref:n,elementType:Y7,className:De(E.root,h),shouldForwardComponentProp:!0,externalForwardedProps:{slots:f,slotProps:g,...x},ownerState:C,additionalProps:{type:"checkbox",icon:A.cloneElement(b,{fontSize:b.props.fontSize??c}),checkedIcon:A.cloneElement(y,{fontSize:y.props.fontSize??c}),disableRipple:d,slots:f,slotProps:{input:Dm(typeof S=="function"?S(C):S,{"data-indeterminate":a})}}});return p.jsx(I,{...k,classes:E})});function Tb(e){return R7}const vb=A.createContext(null);function Z7(e){const{value:t,children:n}=e;return p.jsx(vb.Provider,{value:t,children:t.wrapRoot({children:n,instance:t.instance})})}const di=()=>{const e=A.useContext(vb);if(e==null)throw new Error(["MUI X: Could not find the Tree View context.","It looks like you rendered your component outside of a SimpleTreeView or RichTreeView parent component.","This can also happen if you are bundling multiple versions of the Tree View."].join(`
|
|
206
|
+
`).length,length:_e.target.value.length}))}};return p.jsx(oo.Provider,{value:de({},$,{dispatch:_}),children:p.jsxs("div",de({ref:te,className:Ee},H,{onClick:ne,style:ve,children:[p.jsx(Jh,{hideToolbar:T,toolbarBottom:L,prefixCls:r,overflow:b,placement:"top"}),p.jsxs("div",{className:r+"-content",children:[/(edit|live)/.test($.preview||"")&&p.jsx(kL,de({className:r+"-input",prefixCls:r,autoFocus:I},C,{onChange:Le,renderTextarea:N?.textarea||M,onScroll:_e=>ie(_e,"text")})),/(live|preview)/.test($.preview||"")&&W]}),h&&!$.fullscreen&&p.jsx(AL,{prefixCls:r,height:$.height,maxHeight:E,minHeight:S,onChange:Be}),p.jsx(Jh,{hideToolbar:T,toolbarBottom:L,prefixCls:r,overflow:b,placement:"bottom"})]}))})}),pb=_L;pb.Markdown=ib;function PL({cell:e,sourceAndPaths:t,resourceUri:n,onQueryChange:r,onSourceChange:i}){const o={query:e.value,malloyResult:e.result?JSON.parse(e.result):void 0,malloyQuery:e.queryInfo?JSON.parse(e.queryInfo):void 0},s=t.findIndex(a=>a.sourceInfo.name===e.sourceName);return p.jsx(ad,{resourceUri:n,sourceAndPaths:t,selectedSourceIndex:s>=0?s:0,existingQuery:o,onQueryChange:r,onSourceChange:i})}function RL({cell:e,editingMalloy:t,editingMarkdown:n,sourceAndPaths:r,resourceUri:i,onCellChange:o,onClose:s,onEdit:a,onDelete:l,addButtonCallback:u}){const[c,d]=B.useState(e.value),[h,f]=B.useState(!1),[g,x]=B.useState(!1),[b,y]=B.useState(),[C]=B.useState(),[E,S]=B.useState(Js()),[I,k]=B.useState(!1),[F,z]=B.useState(e.sourceName?r.findIndex(te=>te.sourceInfo.name===e.sourceName):0);B.useEffect(()=>{e.isMarkdown||Sa(e.value,"malloy").then(te=>{y(te)})},[e]),B.useEffect(()=>{document.documentElement.setAttribute("data-color-mode","light")});const[U,D]=B.useState(!1),j=()=>{l(),D(!1)},T=r.length===0,L=B.useCallback(()=>{const te=r[F],oe=te?.modelPath||e.modelPath||"",P=te?.sourceInfo.name||e.sourceName||"";o({...e,value:e.isMarkdown?c:E.query,result:E.malloyResult?JSON.stringify(E.malloyResult):void 0,queryInfo:E.malloyQuery?JSON.stringify(E.malloyQuery):void 0,sourceName:P,modelPath:oe})},[e,c,E,o,F,r]),N=p.jsx(v.Tooltip,{title:"Delete Cell",children:p.jsx(v.IconButton,{size:"small",onClick:()=>D(!0),children:p.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p.jsx("path",{d:"M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2m2 0v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6h14zM10 11v6M14 11v6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})}),M=p.jsxs(v.Dialog,{open:U,onClose:()=>D(!1),children:[p.jsx(v.DialogTitle,{children:"Confirm Delete"}),p.jsx(v.DialogContent,{children:p.jsx(v.Typography,{children:"Are you sure you want to delete this cell?"})}),p.jsxs(v.DialogActions,{children:[p.jsx(v.Button,{onClick:()=>D(!1),children:"Cancel"}),p.jsx(v.Button,{onClick:j,color:"error",children:"Delete"})]})]}),H=()=>{L(),s()},X=e.isMarkdown?p.jsxs(p.Fragment,{children:[n?p.jsx(v.Tooltip,{title:"Save",children:p.jsx(v.IconButton,{size:"small",onClick:H,children:p.jsx(Hs,{})})}):p.jsx(v.Tooltip,{title:"Edit",children:p.jsx(v.IconButton,{size:"small",onClick:a,children:p.jsx(If,{})})}),!n&&N]}):p.jsxs(p.Fragment,{children:[!t&&p.jsx(v.Tooltip,{title:h?"Hide Code":"View Code",children:p.jsx(v.IconButton,{size:"small",onClick:()=>{f(!h)},children:p.jsx(Y0,{})})}),!t&&e.result&&p.jsx(v.Tooltip,{title:g?"Hide Embedding":"View Embedding",children:p.jsx(v.IconButton,{size:"small",onClick:()=>{x(!g)},children:p.jsx(Lc,{})})}),t&&p.jsx(v.Tooltip,{title:"Save",children:p.jsx(v.IconButton,{size:"small",onClick:H,children:p.jsx(Hs,{})})}),!t&&p.jsx(v.Tooltip,{title:"Edit",children:p.jsx(v.IconButton,{size:"small",onClick:a,children:p.jsx(If,{})})}),!t&&N]}),ue=t||n,$=n?p.jsx(v.Tooltip,{title:"Save",children:p.jsx(v.IconButton,{size:"small",onClick:H,children:p.jsx(Hs,{})})}):t?p.jsx(v.Tooltip,{title:"Save",children:p.jsx(v.IconButton,{size:"small",onClick:H,children:p.jsx(Hs,{})})}):null,_=I&&p.jsx(v.Box,{sx:{position:"absolute",top:"4px",right:"4px",display:"flex",gap:"8px",backgroundColor:"background.paper",border:"1px solid",borderColor:"divider",borderRadius:"8px",padding:"2px 4px",boxShadow:1,zIndex:10},children:!ue&&p.jsxs(p.Fragment,{children:[u(!0),u(!1),X]})||$});return p.jsxs(ka,{sx:{position:"relative",marginTop:"5px",marginBottom:"5px",borderWidth:"1.5px",backgroundColor:"#fff",minHeight:"50px"},onMouseEnter:()=>k(!0),onMouseLeave:()=>{k(!1)},children:[_,e.isMarkdown?p.jsx(p.Fragment,{children:n?p.jsx(pb,{value:c,preview:"edit",autoFocus:!0,onChange:te=>{d(te),o({...e,value:te})},onBlur:()=>{L(),I||H()}}):p.jsx(v.Box,{sx:{px:.5,pt:0,mt:0,"& h1, & h2, & h3, & h4, & h5, & h6":{mt:.5,mb:.5},"& p":{mt:.5,mb:.5},"& ul, & ol":{mt:.5,mb:.5},"& li":{mt:0,mb:0},"& pre, & code":{mt:.5,mb:.5},"& blockquote":{mt:.5,mb:.5}},children:e.value?p.jsx(v.Box,{onClick:a,sx:{cursor:"pointer"},children:p.jsx(ua,{children:e.value})}):p.jsxs(v.Box,{onClick:a,sx:{cursor:"pointer"},children:[p.jsx(v.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"Markdown is empty"}),p.jsx(v.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Click to edit."})]})})}):p.jsxs(p.Fragment,{children:[p.jsx(v.Collapse,{in:g,timeout:"auto",unmountOnExit:!0,children:p.jsx(v.Stack,{sx:{p:"10px",borderRadius:0,flexDirection:"row",justifyContent:"space-between"},children:p.jsx(v.Typography,{component:"div",sx:{fontSize:"12px","& .line":{textWrap:"wrap"}},dangerouslySetInnerHTML:{__html:C}})})}),p.jsx(v.Collapse,{in:h,timeout:"auto",unmountOnExit:!0,children:p.jsx(v.Stack,{sx:{p:"10px",borderRadius:0,flexDirection:"row",justifyContent:"space-between"},children:p.jsx(v.Typography,{component:"div",className:"content",sx:{fontSize:"12px","& .line":{textWrap:"wrap"}},dangerouslySetInnerHTML:{__html:b}})})}),t&&(T?p.jsxs(p.Fragment,{children:[p.jsx(v.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"No Model Imports"}),p.jsx(v.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Please add a model import above."})]}):p.jsx(PL,{sourceAndPaths:r,resourceUri:i,onQueryChange:te=>{S(te)},onSourceChange:te=>{z(te)},cell:e})),!t&&e.result&&p.jsx(ka,{variant:"outlined",sx:{borderRadius:0},children:p.jsx(ys,{result:e.result,minHeight:300,maxHeight:800})}),!t&&!e.result&&p.jsxs(v.Box,{onClick:a,sx:{cursor:"pointer"},children:[p.jsx(v.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"Explore is empty"}),p.jsx(v.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Click to edit."})]})]}),U&&M]})}const fb=B.createContext(void 0);function NL({children:e,workbookStorage:t}){const n=B.useMemo(()=>({workbookStorage:t}),[t]);return p.jsx(fb.Provider,{value:n,children:e})}function jd(){const e=B.useContext(fb);if(!e)throw new Error("useWorkbookStorage must be used within a WorkbookStorageProvider");return e}const LL=it(p.jsx("path",{d:"M18 15v3H6v-3H4v3c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-3zM7 9l1.41 1.41L11 7.83V16h2V7.83l2.59 2.58L17 9l-5-5z"}));function OL({initialSelectedModels:e,onModelChange:t,resourceUri:n}){const{projectName:r,packageName:i,versionId:o}=ct(n),{apiClients:s}=Je.useServer(),{data:a,isLoading:l,isSuccess:u,isError:c,error:d}=Qt({queryKey:["models",r,i,o],queryFn:()=>s.models.listModels(r,i,o)}),[h,f]=B.useState(e||[]),[g,x]=B.useState(null);B.useEffect(()=>{f(e||[])},[e]);const b=E=>{const S=h.filter(I=>I!==E);f(S),t(S)},y=E=>{const S=[...h,E];f(S),t(S),x(null)};let C=[];return u&&a?.data&&(C=a.data.filter(E=>!h.includes(E.path)).map(E=>E.path)),c?p.jsx(sn,{error:d,context:`${r} > ${i} > Model Picker`}):p.jsxs(p.Fragment,{children:[p.jsxs(v.FormControl,{fullWidth:!0,children:[l&&p.jsx(v.Typography,{children:"Loading..."}),p.jsxs(v.Stack,{direction:"row",spacing:1,children:[h.map(E=>p.jsx(v.Chip,{label:E,onDelete:()=>b(E),deleteIcon:p.jsx(Lr,{}),sx:{marginBottom:"5px"}},E)),p.jsx(v.Button,{size:"small",startIcon:p.jsx(LL,{}),onClick:E=>x(E.currentTarget),disabled:l||c||C.length===0,children:"Add Model"})]})]}),p.jsxs(v.Menu,{anchorEl:g,open:!!g,onClose:()=>x(null),children:[p.jsx(v.Typography,{variant:"subtitle2",sx:{ml:1},children:"Models"}),p.jsx(v.Divider,{}),C.length===0?p.jsx(v.MenuItem,{disabled:!0,children:"No models available"}):C.map(E=>p.jsx(v.MenuItem,{onClick:()=>y(E),children:p.jsx(v.Typography,{variant:"body2",children:E})},E))]})]})}function hb(){const e=rx.useNavigate();return(t,n)=>{if(!n||!n.metaKey&&!n.ctrlKey&&!n.shiftKey&&n.button!==1){e(t);return}const r=new URL(t,window.location.href).href;(n.metaKey||n.ctrlKey||n.button===1||n.shiftKey)&&window.open(r,"_blank")}}function FL({workbookPath:e,resourceUri:t}){const n=hb(),{server:r,getAccessToken:i}=Je.useServer(),{apiClients:o}=Je.useServer(),{workbookStorage:s}=jd(),{projectName:a,packageName:l}=ct(t),[u,c]=B.useState(void 0),[d,h]=B.useState(void 0);if(!s)throw new Error("Workbook storage be provided via WorkbookStorageProvider");const[f,g]=B.useState(),[x,b]=B.useState(),[y,C]=B.useState(),[E,S]=B.useState([]),[I,k]=B.useState(null),[F,z]=B.useState(null),U=!!I,D=()=>{k(null),z(null)},j=(te,oe)=>{f&&(g(f.insertCell(oe,{isMarkdown:te,value:""})),te?C(oe):b(oe),D(),console.log("handleAddCell",te,oe))},[T,L]=B.useState(!1),N=()=>{L(!0)},M=async()=>{e&&s&&await s.deleteWorkbook(e).then(()=>{h(void 0),c(void 0)}).catch(te=>{h(`Error deleting workbook: ${te.message}`),c(void 0)}),L(!1),n(`/${a}/${l}`)},H=()=>{L(!1)},X=B.useCallback(async()=>{if(!f){console.log("No workbook data ref");return}try{g(await f.saveWorkbook()),h(void 0),c("Workbook saved")}catch(te){h(`Error saving workbook: ${te.message}`),c(void 0)}},[f]);if(B.useEffect(()=>{if(!f)return;(async()=>{const oe=new Map(E.map(({modelPath:se,sourceInfos:q})=>[se,q])),P=[],Ee=[];for(const se of f.getModels())oe.has(se)?P.push({modelPath:se,sourceInfos:oe.get(se)}):(console.log("Fetching model from Publisher",se),Ee.push(o.models.getModel(a,l,se,void 0).then(q=>({modelPath:se,sourceInfos:q.data.sourceInfos.map(re=>JSON.parse(re))}))));if(Ee.length>0){const se=await Promise.all(Ee);S([...P,...se])}else S(P)})()},[i,f,l,a,r]),B.useEffect(()=>{e&&Pi.loadWorkbook(s,e).then(te=>{g(te)})},[e,s]),!f)return p.jsx("div",{children:"Loading..."});const ue=te=>{const oe=[];for(const P of te)for(const Ee of P.sourceInfos)oe.push({modelPath:P.modelPath,sourceInfo:Ee});return oe},$=(te,oe)=>p.jsx(v.Button,{size:"small",startIcon:p.jsx(bk,{}),onClick:()=>j(te,oe),variant:"contained",sx:{backgroundColor:"#fff",color:P=>P.palette.mode==="dark"?P.palette.grey[100]:P.palette.grey[700],boxShadow:"none","&:hover":{backgroundColor:P=>P.palette.mode==="dark"?P.palette.grey[500]:P.palette.grey[300],boxShadow:"none"}},children:te?"Markdown":"Explore"}),_=p.jsxs(v.Box,{sx:{display:"flex",gap:1,justifyContent:"center",flex:2},children:[$(!1,f.getCells().length),$(!0,f.getCells().length)]});return p.jsxs(ka,{variant:"outlined",children:[p.jsxs(x0,{children:[p.jsx(v.Box,{sx:{mb:2},children:p.jsx(v.Box,{sx:{minHeight:"24px"},children:d?p.jsx(v.Typography,{color:"error",variant:"body2",children:d}):u?p.jsx(v.Typography,{color:"success",variant:"body2",children:u}):p.jsx("span",{children:" "})})}),p.jsxs(yi,{sx:{flexDirection:"row",justifyContent:"space-between",alignItems:"center"},children:[p.jsxs(yi,{direction:"row",spacing:1,alignItems:"center",children:[p.jsx(v.Typography,{variant:"overline",sx:{fontSize:"13px",fontWeight:"bold",verticalAlign:"middle"},children:"Workbook"}),p.jsx(v.Typography,{variant:"subtitle2",sx:{fontSize:"13px",fontWeight:"normal",verticalAlign:"middle",ml:1},children:`${e.workspace} > ${e.path}`})]}),p.jsxs(yi,{sx:{display:"flex",flexDirection:"row",gap:1},children:[p.jsx(v.Box,{sx:{display:"flex",alignItems:"center",mt:1,mb:1},children:p.jsx(ML,{workbookData:f})}),p.jsxs(v.Box,{sx:{display:"flex",alignItems:"center",mt:1,mb:1},children:[p.jsx(v.Button,{color:"error",onClick:N,size:"small",children:"Delete"}),p.jsxs(v.Dialog,{open:T,onClose:H,children:[p.jsx(v.DialogTitle,{children:"Delete Workbook"}),p.jsx(v.DialogContent,{children:p.jsxs(v.DialogContentText,{children:['Are you sure you want to delete the workbook "',e.path,'"? This action cannot be undone.']})}),p.jsxs(v.DialogActions,{children:[p.jsx(v.Button,{onClick:H,color:"primary",size:"small",children:"Cancel"}),p.jsx(v.Button,{onClick:M,color:"error",autoFocus:!0,size:"small",children:"Delete"})]})]})]})]})]}),p.jsx(v.Divider,{}),p.jsxs(yi,{sx:{display:"flex",flexDirection:"row",width:"100%",mt:2},children:[p.jsx(v.Box,{sx:{flex:1},children:p.jsx(OL,{initialSelectedModels:f.getModels(),onModelChange:te=>{g(f.setModels(te)),X()},resourceUri:t})}),p.jsx(v.Box,{sx:{flex:1}})]})]}),p.jsx(zc,{children:p.jsxs(yi,{children:[f.getCells().length===0&&p.jsxs(p.Fragment,{children:[p.jsx(v.Typography,{sx:{textAlign:"center",p:2,variant:"subtitle2",fontWeight:"medium"},children:"Workbook is empty"}),p.jsx(v.Typography,{variant:"body2",sx:{textAlign:"center",mb:2,variant:"body2"},children:"Click the + buttons to add a markdown or code cell."})]}),f.getCells().map((te,oe)=>p.jsx(B.Fragment,{children:p.jsx(RL,{cell:te,resourceUri:t,addButtonCallback:P=>$(P,oe),sourceAndPaths:ue(E),editingMarkdown:y===oe,editingMalloy:x===oe,onDelete:()=>{g(f.deleteCell(oe)),X()},onCellChange:P=>{g(f.setCell(oe,P))},onEdit:()=>{te.isMarkdown?C(oe):b(oe)},onClose:()=>{te.isMarkdown?C(void 0):b(void 0),X()}},`${oe}-${te.isMarkdown}-${e.workspace}-${e.path}`)},`${oe}-${f.getCells().length}`)),_,p.jsxs(v.Menu,{anchorEl:I,open:U,onClose:D,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[p.jsx(v.MenuItem,{onClick:()=>j(!0,F??0),children:"Add Markdown"}),p.jsx(v.MenuItem,{onClick:()=>j(!1,F??0),children:"Add Malloy"})]}),p.jsx(yi,{sx:{flexDirection:"row",justifyContent:"flex-end",p:1}})]})})]})}function ML({workbookData:e}){const[t,n]=B.useState(!1),r=async()=>{if(!e)return;const i=e.toMalloyWorkbook();try{await navigator.clipboard.writeText(i),n(!0),setTimeout(()=>n(!1),1500)}catch{n(!1),alert("Failed to copy to clipboard")}};return p.jsx(v.Button,{color:"primary",onClick:r,size:"small",children:t?"Copied!":"Export"})}function mb({onWorkbookClick:e}){const{workbookStorage:t}=jd(),[n,r]=B.useState([]),[i,o]=B.useState(void 0);return B.useEffect(()=>{t&&t.listWorkspaces(!1).then(s=>{const a=[];Promise.all(s.map(async l=>{await t.listWorkbooks(l).then(u=>{a.push(...u)}).catch(u=>{o(`Error listing workbooks: ${u.message}`)})})).then(()=>{r(a),o(void 0)})})},[t]),p.jsxs(p.Fragment,{children:[i&&p.jsx(v.Box,{sx:{mb:2},children:p.jsx(v.Typography,{color:"error",variant:"body2",children:i})}),p.jsx(v.Divider,{}),p.jsx(v.Box,{sx:{maxHeight:"300px",overflow:"auto","&::-webkit-scrollbar":{width:"8px"},"&::-webkit-scrollbar-track":{background:"transparent"},"&::-webkit-scrollbar-thumb":{background:"rgba(0,0,0,0.2)",borderRadius:"4px"}},children:p.jsxs(v.List,{dense:!0,children:[n.length===0&&p.jsx(v.ListItem,{children:p.jsx(v.ListItemText,{primary:"No workbooks found.",sx:{textAlign:"center"}})}),n.map(s=>p.jsx(v.ListItem,{onClick:a=>e(s,a),sx:{cursor:"pointer","&:hover":{backgroundColor:"action.hover"}},children:p.jsx(v.ListItemText,{primary:s.path})},s.path))]})})]})}const em="Local";class BL{async listWorkspaces(t){return Promise.resolve([{name:em,description:"Stored locally- only accessible to this browser",writeable:!0}])}async listWorkbooks(t){const n=[];for(let r=0;r<localStorage.length;r++){const i=localStorage.key(r);n.push({path:i,workspace:em})}return n}async getWorkbook(t){const n=localStorage.getItem(t.path);if(n===null)throw new Error(`Notebook not found at path: ${t}`);return n}async deleteWorkbook(t){if(localStorage.getItem(t.path)===null)throw new Error(`Notebook not found at path: ${t}`);localStorage.removeItem(t.path)}async saveWorkbook(t,n){localStorage.setItem(t.path,n)}async moveWorkbook(t,n){const r=localStorage.getItem(t.path);if(r===null)throw new Error(`Notebook not found at path: ${t.path}`);localStorage.setItem(n.path,r),localStorage.removeItem(t.path)}}const gb=it(p.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"}));function jL({resourceUri:e}){const{apiClients:t}=Je.useServer(),{projectName:n,packageName:r,versionId:i}=ct(e),{data:o,isSuccess:s,isError:a,error:l}=Qt({queryKey:["package",n,r,i],queryFn:()=>t.packages.getPackage(n,r,i,!1)});return p.jsx(Or,{children:p.jsxs(Fr,{children:[p.jsx(ai,{children:"Package Config"}),p.jsx(v.Box,{sx:{maxHeight:"200px",overflowY:"auto"},children:p.jsxs(v.List,{dense:!0,disablePadding:!0,children:[p.jsx(v.ListItem,{dense:!0,disablePadding:!0,children:p.jsx(v.ListItemText,{primary:"Name",primaryTypographyProps:{fontWeight:"500"},secondary:r})}),!s&&!a&&p.jsx(v.ListItem,{children:p.jsx(Kt,{text:"Fetching Package Metadata..."})}),s&&(o.data&&p.jsx(v.ListItem,{dense:!0,disablePadding:!0,children:p.jsx(v.ListItemText,{primary:"Description",primaryTypographyProps:{fontWeight:"500"},secondary:o.data.description})})||p.jsxs(v.ListItem,{disablePadding:!0,dense:!0,sx:{mt:"20px"},children:[p.jsx(gb,{sx:{color:"grey.600",mr:"10px"}}),p.jsx(v.ListItemText,{primary:"No package manifest"})]})),a&&p.jsx(sn,{error:l,context:`${n} > ${r} > ${i}`})]})})]})})}function HL(e){return qe("MuiButton",e)}const $r=Me("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","colorPrimary","colorSecondary","colorSuccess","colorError","colorInfo","colorWarning","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","icon","iconSizeSmall","iconSizeMedium","iconSizeLarge","loading","loadingWrapper","loadingIconPlaceholder","loadingIndicator","loadingPositionCenter","loadingPositionStart","loadingPositionEnd"]),UL=A.createContext({}),$L=A.createContext(void 0),zL=e=>{const{color:t,disableElevation:n,fullWidth:r,size:i,variant:o,loading:s,loadingPosition:a,classes:l}=e,u={root:["root",s&&"loading",o,`${o}${me(t)}`,`size${me(i)}`,`${o}Size${me(i)}`,`color${me(t)}`,n&&"disableElevation",r&&"fullWidth",s&&`loadingPosition${me(a)}`],startIcon:["icon","startIcon",`iconSize${me(i)}`],endIcon:["icon","endIcon",`iconSize${me(i)}`],loadingIndicator:["loadingIndicator"],loadingWrapper:["loadingWrapper"]},c=ze(u,HL,l);return{...l,...c}},bb=[{props:{size:"small"},style:{"& > *:nth-of-type(1)":{fontSize:18}}},{props:{size:"medium"},style:{"& > *:nth-of-type(1)":{fontSize:20}}},{props:{size:"large"},style:{"& > *:nth-of-type(1)":{fontSize:22}}}],qL=ce(Hi,{shouldForwardProp:e=>on(e)||e==="classes",name:"MuiButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`${n.variant}${me(n.color)}`],t[`size${me(n.size)}`],t[`${n.variant}Size${me(n.size)}`],n.color==="inherit"&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth,n.loading&&t.loading]}})(Xe(({theme:e})=>{const t=e.palette.mode==="light"?e.palette.grey[300]:e.palette.grey[800],n=e.palette.mode==="light"?e.palette.grey.A100:e.palette.grey[700];return{...e.typography.button,minWidth:64,padding:"6px 16px",border:0,borderRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create(["background-color","box-shadow","border-color","color"],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:"none"},[`&.${$r.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:{variant:"contained"},style:{color:"var(--variant-containedColor)",backgroundColor:"var(--variant-containedBg)",boxShadow:(e.vars||e).shadows[2],"&:hover":{boxShadow:(e.vars||e).shadows[4],"@media (hover: none)":{boxShadow:(e.vars||e).shadows[2]}},"&:active":{boxShadow:(e.vars||e).shadows[8]},[`&.${$r.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},[`&.${$r.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}},{props:{variant:"outlined"},style:{padding:"5px 15px",border:"1px solid currentColor",borderColor:"var(--variant-outlinedBorder, currentColor)",backgroundColor:"var(--variant-outlinedBg)",color:"var(--variant-outlinedColor)",[`&.${$r.disabled}`]:{border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`}}},{props:{variant:"text"},style:{padding:"6px 8px",color:"var(--variant-textColor)",backgroundColor:"var(--variant-textBg)"}},...Object.entries(e.palette).filter(nn()).map(([r])=>({props:{color:r},style:{"--variant-textColor":(e.vars||e).palette[r].main,"--variant-outlinedColor":(e.vars||e).palette[r].main,"--variant-outlinedBorder":e.alpha((e.vars||e).palette[r].main,.5),"--variant-containedColor":(e.vars||e).palette[r].contrastText,"--variant-containedBg":(e.vars||e).palette[r].main,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":(e.vars||e).palette[r].dark,"--variant-textBg":e.alpha((e.vars||e).palette[r].main,(e.vars||e).palette.action.hoverOpacity),"--variant-outlinedBorder":(e.vars||e).palette[r].main,"--variant-outlinedBg":e.alpha((e.vars||e).palette[r].main,(e.vars||e).palette.action.hoverOpacity)}}}})),{props:{color:"inherit"},style:{color:"inherit",borderColor:"currentColor","--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedBg:t,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedHoverBg:n,"--variant-textBg":e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity),"--variant-outlinedBg":e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity)}}}},{props:{size:"small",variant:"text"},style:{padding:"4px 5px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"text"},style:{padding:"8px 11px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"outlined"},style:{padding:"3px 9px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"outlined"},style:{padding:"7px 21px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"contained"},style:{padding:"4px 10px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"contained"},style:{padding:"8px 22px",fontSize:e.typography.pxToRem(15)}},{props:{disableElevation:!0},style:{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${$r.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${$r.disabled}`]:{boxShadow:"none"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{loadingPosition:"center"},style:{transition:e.transitions.create(["background-color","box-shadow","border-color"],{duration:e.transitions.duration.short}),[`&.${$r.loading}`]:{color:"transparent"}}}]}})),WL=ce("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.startIcon,n.loading&&t.startIconLoadingStart,t[`iconSize${me(n.size)}`]]}})(({theme:e})=>({display:"inherit",marginRight:8,marginLeft:-4,variants:[{props:{size:"small"},style:{marginLeft:-2}},{props:{loadingPosition:"start",loading:!0},style:{transition:e.transitions.create(["opacity"],{duration:e.transitions.duration.short}),opacity:0}},{props:{loadingPosition:"start",loading:!0,fullWidth:!0},style:{marginRight:-8}},...bb]})),VL=ce("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.endIcon,n.loading&&t.endIconLoadingEnd,t[`iconSize${me(n.size)}`]]}})(({theme:e})=>({display:"inherit",marginRight:-4,marginLeft:8,variants:[{props:{size:"small"},style:{marginRight:-2}},{props:{loadingPosition:"end",loading:!0},style:{transition:e.transitions.create(["opacity"],{duration:e.transitions.duration.short}),opacity:0}},{props:{loadingPosition:"end",loading:!0,fullWidth:!0},style:{marginLeft:-8}},...bb]})),GL=ce("span",{name:"MuiButton",slot:"LoadingIndicator"})(({theme:e})=>({display:"none",position:"absolute",visibility:"visible",variants:[{props:{loading:!0},style:{display:"flex"}},{props:{loadingPosition:"start"},style:{left:14}},{props:{loadingPosition:"start",size:"small"},style:{left:10}},{props:{variant:"text",loadingPosition:"start"},style:{left:6}},{props:{loadingPosition:"center"},style:{left:"50%",transform:"translate(-50%)",color:(e.vars||e).palette.action.disabled}},{props:{loadingPosition:"end"},style:{right:14}},{props:{loadingPosition:"end",size:"small"},style:{right:10}},{props:{variant:"text",loadingPosition:"end"},style:{right:6}},{props:{loadingPosition:"start",fullWidth:!0},style:{position:"relative",left:-10}},{props:{loadingPosition:"end",fullWidth:!0},style:{position:"relative",right:-10}}]})),tm=ce("span",{name:"MuiButton",slot:"LoadingIconPlaceholder"})({display:"inline-block",width:"1em",height:"1em"}),Dt=A.forwardRef(function(t,n){const r=A.useContext(UL),i=A.useContext($L),o=Qo(r,t),s=Ge({props:o,name:"MuiButton"}),{children:a,color:l="primary",component:u="button",className:c,disabled:d=!1,disableElevation:h=!1,disableFocusRipple:f=!1,endIcon:g,focusVisibleClassName:x,fullWidth:b=!1,id:y,loading:C=null,loadingIndicator:E,loadingPosition:S="center",size:I="medium",startIcon:k,type:F,variant:z="text",...U}=s,D=Vi(y),j=E??p.jsx(O0,{"aria-labelledby":D,color:"inherit",size:16}),T={...s,color:l,component:u,disabled:d,disableElevation:h,disableFocusRipple:f,fullWidth:b,loading:C,loadingIndicator:j,loadingPosition:S,size:I,type:F,variant:z},L=zL(T),N=(k||C&&S==="start")&&p.jsx(WL,{className:L.startIcon,ownerState:T,children:k||p.jsx(tm,{className:L.loadingIconPlaceholder,ownerState:T})}),M=(g||C&&S==="end")&&p.jsx(VL,{className:L.endIcon,ownerState:T,children:g||p.jsx(tm,{className:L.loadingIconPlaceholder,ownerState:T})}),H=i||"",X=typeof C=="boolean"?p.jsx("span",{className:L.loadingWrapper,style:{display:"contents"},children:C&&p.jsx(GL,{className:L.loadingIndicator,ownerState:T,children:j})}):null;return p.jsxs(qL,{ownerState:T,className:De(r.className,L.root,c,H),component:u,disabled:d||C,focusRipple:!f,focusVisibleClassName:De(L.focusVisible,x),ref:n,type:F,id:C?D:y,...U,classes:L,children:[N,S!=="end"&&X,a,S==="end"&&X,M]})});function YL(e){return qe("MuiDialog",e)}const ku=Me("MuiDialog",["root","scrollPaper","scrollBody","container","paper","paperScrollPaper","paperScrollBody","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","paperFullWidth","paperFullScreen"]),xb=A.createContext({}),KL=ce(H0,{name:"MuiDialog",slot:"Backdrop",overrides:(e,t)=>t.backdrop})({zIndex:-1}),QL=e=>{const{classes:t,scroll:n,maxWidth:r,fullWidth:i,fullScreen:o}=e,s={root:["root"],container:["container",`scroll${me(n)}`],paper:["paper",`paperScroll${me(n)}`,`paperWidth${me(String(r))}`,i&&"paperFullWidth",o&&"paperFullScreen"]};return ze(s,YL,t)},XL=ce(U0,{name:"MuiDialog",slot:"Root"})({"@media print":{position:"absolute !important"}}),ZL=ce("div",{name:"MuiDialog",slot:"Container",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.container,t[`scroll${me(n.scroll)}`]]}})({height:"100%","@media print":{height:"auto"},outline:0,variants:[{props:{scroll:"paper"},style:{display:"flex",justifyContent:"center",alignItems:"center"}},{props:{scroll:"body"},style:{overflowY:"auto",overflowX:"hidden",textAlign:"center","&::after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}}}]}),JL=ce(Zi,{name:"MuiDialog",slot:"Paper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.paper,t[`scrollPaper${me(n.scroll)}`],t[`paperWidth${me(String(n.maxWidth))}`],n.fullWidth&&t.paperFullWidth,n.fullScreen&&t.paperFullScreen]}})(Xe(({theme:e})=>({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"},variants:[{props:{scroll:"paper"},style:{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"}},{props:{scroll:"body"},style:{display:"inline-block",verticalAlign:"middle",textAlign:"initial"}},{props:({ownerState:t})=>!t.maxWidth,style:{maxWidth:"calc(100% - 64px)"}},{props:{maxWidth:"xs"},style:{maxWidth:e.breakpoints.unit==="px"?Math.max(e.breakpoints.values.xs,444):`max(${e.breakpoints.values.xs}${e.breakpoints.unit}, 444px)`,[`&.${ku.paperScrollBody}`]:{[e.breakpoints.down(Math.max(e.breakpoints.values.xs,444)+64)]:{maxWidth:"calc(100% - 64px)"}}}},...Object.keys(e.breakpoints.values).filter(t=>t!=="xs").map(t=>({props:{maxWidth:t},style:{maxWidth:`${e.breakpoints.values[t]}${e.breakpoints.unit}`,[`&.${ku.paperScrollBody}`]:{[e.breakpoints.down(e.breakpoints.values[t]+64)]:{maxWidth:"calc(100% - 64px)"}}}})),{props:({ownerState:t})=>t.fullWidth,style:{width:"calc(100% - 64px)"}},{props:({ownerState:t})=>t.fullScreen,style:{margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0,[`&.${ku.paperScrollBody}`]:{margin:0,maxWidth:"100%"}}}]}))),xr=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiDialog"}),i=Gi(),o={enter:i.transitions.duration.enteringScreen,exit:i.transitions.duration.leavingScreen},{"aria-describedby":s,"aria-labelledby":a,"aria-modal":l=!0,BackdropComponent:u,BackdropProps:c,children:d,className:h,disableEscapeKeyDown:f=!1,fullScreen:g=!1,fullWidth:x=!1,maxWidth:b="sm",onClick:y,onClose:C,open:E,PaperComponent:S=Zi,PaperProps:I={},scroll:k="paper",slots:F={},slotProps:z={},TransitionComponent:U=ac,transitionDuration:D=o,TransitionProps:j,...T}=r,L={...r,disableEscapeKeyDown:f,fullScreen:g,fullWidth:x,maxWidth:b,scroll:k},N=QL(L),M=A.useRef(),H=ve=>{M.current=ve.target===ve.currentTarget},X=ve=>{y&&y(ve),M.current&&(M.current=null,C&&C(ve,"backdropClick"))},ue=Vi(a),$=A.useMemo(()=>({titleId:ue}),[ue]),_={transition:U,...F},te={transition:j,paper:I,backdrop:c,...z},oe={slots:_,slotProps:te},[P,Ee]=nt("root",{elementType:XL,shouldForwardComponentProp:!0,externalForwardedProps:oe,ownerState:L,className:De(N.root,h),ref:n}),[se,q]=nt("backdrop",{elementType:KL,shouldForwardComponentProp:!0,externalForwardedProps:oe,ownerState:L}),[re,ie]=nt("paper",{elementType:JL,shouldForwardComponentProp:!0,externalForwardedProps:oe,ownerState:L,className:De(N.paper,I.className)}),[Te,K]=nt("container",{elementType:ZL,externalForwardedProps:oe,ownerState:L,className:N.container}),[W,Ce]=nt("transition",{elementType:ac,externalForwardedProps:oe,ownerState:L,additionalProps:{appear:!0,in:E,timeout:D,role:"presentation"}});return p.jsx(P,{closeAfterTransition:!0,slots:{backdrop:se},slotProps:{backdrop:{transitionDuration:D,as:u,...q}},disableEscapeKeyDown:f,onClose:C,open:E,onClick:X,...Ee,...T,children:p.jsx(W,{...Ce,children:p.jsx(Te,{onMouseDown:H,...K,children:p.jsx(re,{as:S,elevation:24,role:"dialog","aria-describedby":s,"aria-labelledby":ue,"aria-modal":l,...ie,children:p.jsx(xb.Provider,{value:$,children:d})})})})})});function e7(e){return qe("MuiDialogActions",e)}Me("MuiDialogActions",["root","spacing"]);const t7=e=>{const{classes:t,disableSpacing:n}=e;return ze({root:["root",!n&&"spacing"]},e7,t)},n7=ce("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disableSpacing&&t.spacing]}})({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto",variants:[{props:({ownerState:e})=>!e.disableSpacing,style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),yr=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiDialogActions"}),{className:i,disableSpacing:o=!1,...s}=r,a={...r,disableSpacing:o},l=t7(a);return p.jsx(n7,{className:De(l.root,i),ownerState:a,ref:n,...s})});function r7(e){return qe("MuiDialogContent",e)}Me("MuiDialogContent",["root","dividers"]);function i7(e){return qe("MuiDialogTitle",e)}const o7=Me("MuiDialogTitle",["root"]),s7=e=>{const{classes:t,dividers:n}=e;return ze({root:["root",n&&"dividers"]},r7,t)},a7=ce("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.dividers&&t.dividers]}})(Xe(({theme:e})=>({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px",variants:[{props:({ownerState:t})=>t.dividers,style:{padding:"16px 24px",borderTop:`1px solid ${(e.vars||e).palette.divider}`,borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:t})=>!t.dividers,style:{[`.${o7.root} + &`]:{paddingTop:0}}}]}))),Er=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiDialogContent"}),{className:i,dividers:o=!1,...s}=r,a={...r,dividers:o},l=s7(a);return p.jsx(a7,{className:De(l.root,i),ownerState:a,ref:n,...s})});function l7(e){return qe("MuiTypography",e)}Me("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom","paragraph"]);const u7={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},c7=w2(),d7=e=>{const{align:t,gutterBottom:n,noWrap:r,paragraph:i,variant:o,classes:s}=e,a={root:["root",o,e.align!=="inherit"&&`align${me(t)}`,n&&"gutterBottom",r&&"noWrap",i&&"paragraph"]};return ze(a,l7,s)},p7=ce("span",{name:"MuiTypography",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],n.align!=="inherit"&&t[`align${me(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom,n.paragraph&&t.paragraph]}})(Xe(({theme:e})=>({margin:0,variants:[{props:{variant:"inherit"},style:{font:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}},...Object.entries(e.typography).filter(([t,n])=>t!=="inherit"&&n&&typeof n=="object").map(([t,n])=>({props:{variant:t},style:n})),...Object.entries(e.palette).filter(nn()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette?.text||{}).filter(([,t])=>typeof t=="string").map(([t])=>({props:{color:`text${me(t)}`},style:{color:(e.vars||e).palette.text[t]}})),{props:({ownerState:t})=>t.align!=="inherit",style:{textAlign:"var(--Typography-textAlign)"}},{props:({ownerState:t})=>t.noWrap,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},{props:({ownerState:t})=>t.gutterBottom,style:{marginBottom:"0.35em"}},{props:({ownerState:t})=>t.paragraph,style:{marginBottom:16}}]}))),nm={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},As=A.forwardRef(function(t,n){const{color:r,...i}=Ge({props:t,name:"MuiTypography"}),o=!u7[r],s=c7({...i,...o&&{color:r}}),{align:a="inherit",className:l,component:u,gutterBottom:c=!1,noWrap:d=!1,paragraph:h=!1,variant:f="body1",variantMapping:g=nm,...x}=s,b={...s,align:a,color:r,className:l,component:u,gutterBottom:c,noWrap:d,paragraph:h,variant:f,variantMapping:g},y=u||(h?"p":g[f]||nm[f])||"span",C=d7(b);return p.jsx(p7,{as:y,ref:n,className:De(C.root,l),...x,ownerState:b,style:{...a!=="inherit"&&{"--Typography-textAlign":a},...x.style}})});function f7(e){return qe("MuiDialogContentText",e)}Me("MuiDialogContentText",["root"]);const h7=e=>{const{classes:t}=e,r=ze({root:["root"]},f7,t);return{...t,...r}},m7=ce(As,{shouldForwardProp:e=>on(e)||e==="classes",name:"MuiDialogContentText",slot:"Root"})({}),ao=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiDialogContentText"}),{children:i,className:o,...s}=r,a=h7(s);return p.jsx(m7,{component:"p",variant:"body1",color:"textSecondary",ref:n,ownerState:s,className:De(a.root,o),...r,classes:a})}),g7=e=>{const{classes:t}=e;return ze({root:["root"]},i7,t)},b7=ce(As,{name:"MuiDialogTitle",slot:"Root"})({padding:"16px 24px",flex:"0 0 auto"}),Cr=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiDialogTitle"}),{className:i,id:o,...s}=r,a=r,l=g7(a),{titleId:u=o}=A.useContext(xb);return p.jsx(b7,{component:"h2",className:De(l.root,i),ownerState:a,ref:n,variant:"h6",id:o??u,...s})}),rm=Me("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]),im=Me("MuiListItemIcon",["root","alignItemsFlexStart"]),om=Me("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]);function x7(e){return qe("MuiMenuItem",e)}const Io=Me("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),y7=(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},E7=e=>{const{disabled:t,dense:n,divider:r,disableGutters:i,selected:o,classes:s}=e,l=ze({root:["root",n&&"dense",t&&"disabled",!i&&"gutters",r&&"divider",o&&"selected"]},x7,s);return{...s,...l}},C7=ce(Hi,{shouldForwardProp:e=>on(e)||e==="classes",name:"MuiMenuItem",slot:"Root",overridesResolver:y7})(Xe(({theme:e})=>({...e.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Io.selected}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),[`&.${Io.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}},[`&.${Io.selected}:hover`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity)}},[`&.${Io.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${Io.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${rm.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${rm.inset}`]:{marginLeft:52},[`& .${om.root}`]:{marginTop:0,marginBottom:0},[`& .${om.inset}`]:{paddingLeft:36},[`& .${im.root}`]:{minWidth:36},variants:[{props:({ownerState:t})=>!t.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:t})=>t.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:t})=>!t.dense,style:{[e.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:t})=>t.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...e.typography.body2,[`& .${im.root} svg`]:{fontSize:"1.25rem"}}}]}))),yb=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiMenuItem"}),{autoFocus:i=!1,component:o="li",dense:s=!1,divider:a=!1,disableGutters:l=!1,focusVisibleClassName:u,role:c="menuitem",tabIndex:d,className:h,...f}=r,g=A.useContext(oc),x=A.useMemo(()=>({dense:s||g.dense||!1,disableGutters:l}),[g.dense,s,l]),b=A.useRef(null);Qn(()=>{i&&b.current&&b.current.focus()},[i]);const y={...r,dense:x.dense,divider:a,disableGutters:l},C=E7(r),E=mt(b,n);let S;return r.disabled||(S=d!==void 0?d:-1),p.jsx(oc.Provider,{value:x,children:p.jsx(C7,{ref:E,role:c,tabIndex:S,component:o,focusVisibleClassName:De(C.focusVisible,u),className:De(C.root,h),...f,ownerState:y,classes:C})})}),Ua={postgres:[{label:"Host",name:"host",type:"text"},{label:"Port",name:"port",type:"number"},{label:"Database Name",name:"databaseName",type:"text"},{label:"User Name",name:"userName",type:"text"},{label:"Password",name:"password",type:"password"},{label:"Connection String",name:"connectionString",type:"text"}],bigquery:[{label:"Project ID",name:"defaultProjectId",type:"text"},{label:"Billing Project ID",name:"billingProjectId",type:"text"},{label:"Location",name:"location",type:"text"},{label:"Service Account Key JSON",name:"serviceAccountKeyJson",type:"text"},{label:"Maximum Bytes Billed",name:"maximumBytesBilled",type:"text"},{label:"Query Timeout Milliseconds",name:"queryTimeoutMilliseconds",type:"text"}],snowflake:[{label:"Account",name:"account",type:"text"},{label:"Username",name:"username",type:"text"},{label:"Password",name:"password",type:"password"},{label:"Role",name:"role",type:"text"},{label:"Warehouse",name:"warehouse",type:"text"},{label:"Database",name:"database",type:"text"},{label:"Schema",name:"schema",type:"text"},{label:"Response Timeout Milliseconds",name:"responseTimeoutMilliseconds",type:"text"}],trino:[{label:"Server",name:"server",type:"text"},{label:"Port",name:"port",type:"number"},{label:"Catalog",name:"catalog",type:"text"},{label:"Schema",name:"schema",type:"text"},{label:"User",name:"user",type:"text"},{label:"Password",name:"password",type:"password"}],mysql:[{label:"Host",name:"host",type:"text"},{label:"Port",name:"port",type:"number"},{label:"User",name:"user",type:"text"},{label:"Password",name:"password",type:"password"},{label:"Database",name:"database",type:"text"}],duckdb:[],motherduck:[{label:"Access Token",name:"accessToken",type:"text"},{label:"Database",name:"database",type:"text"}]},Iu={postgres:"postgresConnection",bigquery:"bigqueryConnection",snowflake:"snowflakeConnection",trino:"trinoConnection",mysql:"mysqlConnection",duckdb:"duckdbConnection",motherduck:"motherduckConnection"};function T7({onSubmit:e,isSubmitting:t}){const[n,r]=B.useState(!1),[i,o]=B.useState("postgres"),s=()=>{r(!0)},a=()=>{r(!1)},l=async u=>{u.preventDefault();const c=new FormData(u.currentTarget),d=c.get("name")?.toString(),h=c.get("type")?.toString(),f=Ua[h];if(!d)throw new Error("Name is required");if(!h)throw new Error("Type is required");const x={name:d,type:h,[{postgres:"postgresConnection",bigquery:"bigqueryConnection",snowflake:"snowflakeConnection",trino:"trinoConnection",mysql:"mysqlConnection",motherduck:"motherduckConnection"}[h]]:f.reduce((b,y)=>(b[y.name]=c.get(y.name)?.toString(),b),{})};await e(x),a()};return p.jsxs(B.Fragment,{children:[p.jsx(Dt,{variant:"outlined",onClick:s,children:"Add Connection"}),p.jsxs(xr,{open:n,onClose:a,children:[p.jsx(Cr,{children:"Create New Connection"}),p.jsxs(Er,{children:[p.jsx(ao,{children:"Add a new connection to query your data database using Malloy."}),p.jsxs("form",{onSubmit:l,id:"connection-form",children:[p.jsx(Yt,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Connection Name",type:"text",fullWidth:!0,variant:"standard"}),p.jsx(Yt,{margin:"dense",id:"type",name:"type",label:"Connection Type",fullWidth:!0,variant:"standard",value:i,select:!0,onChange:u=>o(u.target.value),children:Object.values(Je.ConnectionTypeEnum).map(u=>p.jsx(yb,{value:u,children:u},u))}),Ua[i].map(u=>p.jsx(Yt,{margin:"dense",id:u.name,name:u.name,label:u.label,type:u.type,fullWidth:!0,variant:"standard"},u.name))]})]}),p.jsxs(yr,{children:[p.jsx(Dt,{disabled:t,onClick:a,children:"Cancel"}),p.jsx(Dt,{type:"submit",form:"connection-form",loading:t,children:"Create Connection"})]})]})]})}function v7({connection:e,onCloseDialog:t,isMutating:n,onDelete:r}){const[i,o]=B.useState(!1),[s,a]=B.useState(""),l=()=>{o(!0)},u=()=>{o(!1),t()};return p.jsxs(B.Fragment,{children:[p.jsx(Ui,{onClick:c=>{c.stopPropagation(),l()},children:p.jsx(pn.Delete,{})}),p.jsxs(xr,{onClose:u,"aria-labelledby":"customized-dialog-title",open:i,children:[p.jsx(Cr,{sx:{m:0,p:2},id:"customized-dialog-title",children:"Delete Connection"}),p.jsx(Ui,{"aria-label":"close",onClick:u,sx:c=>({position:"absolute",right:8,top:8,color:c.palette.grey[500]}),children:p.jsx(Lr,{})}),p.jsx(Er,{dividers:!0,children:p.jsxs(As,{gutterBottom:!0,children:['Are you sure you want to delete "',e.name,'"? This action cannot be undone.']})}),p.jsx(yr,{children:p.jsx(Dt,{loading:n,variant:"contained",autoFocus:!0,onClick:()=>r(),color:"error",children:"Delete"})}),p.jsx(v.Snackbar,{open:s!=="",autoHideDuration:6e3,onClose:()=>a(""),message:s})]})]})}function S7({connection:e,onSubmit:t,isSubmitting:n}){const[r,i]=B.useState(!1),[o,s]=B.useState(e.type),a=()=>{i(!0)},l=()=>{i(!1)},u=async c=>{c.preventDefault();const d=new FormData(c.currentTarget),h=d.get("name")?.toString(),f=d.get("type")?.toString(),g=Ua[f];if(!h)throw new Error("Name is required");if(!f)throw new Error("Type is required");const x={name:h,type:f,[Iu[f]]:g.reduce((b,y)=>(b[y.name]=d.get(y.name)?.toString()??e[Iu[f]][y.name],b),{})};await t(x),l()};return p.jsxs(B.Fragment,{children:[p.jsx(v.IconButton,{onClick:c=>{c.preventDefault(),c.stopPropagation(),a()},children:p.jsx(pn.Edit,{})}),p.jsxs(xr,{open:r,onClose:l,children:[p.jsx(Cr,{onClick:c=>{c.stopPropagation()},children:"Edit Connection"}),p.jsxs(Er,{onClick:c=>{c.stopPropagation()},children:[p.jsx(ao,{children:"Edit a connection to query your data database using Malloy."}),p.jsxs("form",{onSubmit:u,id:"connection-form",children:[p.jsx(Yt,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Connection Name",type:"text",fullWidth:!0,variant:"standard",value:e.name,defaultValue:e.name}),p.jsx(Yt,{margin:"dense",id:"type",name:"type",label:"Connection Type",fullWidth:!0,variant:"standard",value:o,select:!0,onChange:c=>s(c.target.value),children:Object.values(Je.ConnectionTypeEnum).map(c=>p.jsx(yb,{value:c,children:c},c))}),Ua[o].map(c=>p.jsx(Yt,{margin:"dense",id:c.name,name:c.name,label:c.label,type:c.type,fullWidth:!0,variant:"standard",defaultValue:e?.[Iu[o]??""]?.[c.name??""]??""},c.name))]})]}),p.jsxs(yr,{onClick:c=>{c.stopPropagation()},children:[p.jsx(Dt,{disabled:n,onClick:l,children:"Cancel"}),p.jsx(Dt,{type:"submit",form:"connection-form",loading:n,children:"Edit Connection"})]})]})]})}function Eb({connectionName:e,resourceUri:t,schema:n}){const{apiClients:r}=Je.useServer(),{projectName:i}=ct(t),[o,s]=B.useState(void 0),[a,l]=B.useState(n||null),[u,c]=B.useState(!1),{data:d,isError:h,isLoading:f,error:g}=Qt({queryKey:["schemas",i,e],queryFn:()=>r.connections.listSchemas(i,e)}),x=d?.data||[];return p.jsxs(v.Grid,{container:!0,spacing:1,children:[!n&&p.jsx(v.Grid,{size:{xs:12,md:4},children:p.jsxs(v.Paper,{sx:{p:1,m:0},children:[p.jsxs(v.Box,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",mb:0},children:[p.jsx(v.Typography,{variant:"overline",fontWeight:"bold",children:"Table Paths"}),p.jsx(v.FormControlLabel,{control:p.jsx(v.Switch,{checked:u,onChange:b=>c(b.target.checked)}),label:"Hidden Schemas"})]}),p.jsx(v.Divider,{sx:{mt:"2px"}}),p.jsxs(v.Box,{sx:{mt:"2px",maxHeight:"600px",overflowY:"auto"},children:[f&&p.jsx(Kt,{text:"Loading schemas..."}),h&&p.jsx(sn,{error:g,context:`${i} > ${e} > Schemas`}),!f&&!h&&x.length===0&&p.jsx(v.Typography,{variant:"body2",children:"No Schemas"}),!f&&!h&&x.length>0&&p.jsx(v.List,{dense:!0,disablePadding:!0,children:x.map(b=>{const y=b.name;if(b.isHidden&&!u)return null;const E=a===y;return p.jsx(v.ListItemButton,{selected:E,onClick:()=>{l(y),s(void 0)},children:p.jsx(v.ListItemText,{primary:y})},y)})})]})]})}),p.jsx(v.Grid,{size:{xs:12,md:n?6:4},children:a&&p.jsx(v.Paper,{sx:{p:1,m:0},children:p.jsx(I7,{connectionName:e,schemaName:a,onTableClick:b=>{s(b)},resourceUri:t})})}),p.jsx(v.Grid,{size:{xs:12,md:n?6:4},children:o&&p.jsx(v.Paper,{sx:{p:1,m:0},children:p.jsx(k7,{table:o})})})]})}function k7({table:e}){return p.jsxs(p.Fragment,{children:[p.jsxs(v.Typography,{variant:"overline",fontWeight:"bold",children:["Schema: ",e.resource]}),p.jsx(v.Divider,{}),p.jsx(v.Box,{sx:{mt:"10px",maxHeight:"600px",overflowY:"auto"},children:p.jsx(v.TableContainer,{children:p.jsxs(v.Table,{size:"small",sx:{"& .MuiTableCell-root":{padding:"10px"}},children:[p.jsx(v.TableHead,{children:p.jsxs(v.TableRow,{children:[p.jsx(v.TableCell,{children:"NAME"}),p.jsx(v.TableCell,{children:"TYPE"})]})}),p.jsx(v.TableBody,{children:e.columns?.sort((t,n)=>t.name.localeCompare(n.name))?.map(t=>p.jsxs(v.TableRow,{children:[p.jsx(v.TableCell,{children:t.name}),p.jsx(v.TableCell,{children:t.type})]},t.name))})]})})})]})}function I7({connectionName:e,schemaName:t,onTableClick:n,resourceUri:r}){const{projectName:i}=ct(r),{apiClients:o}=Je.useServer(),[s,a]=B.useState(""),{data:l,isSuccess:u,isError:c,error:d,isLoading:h}=Qt({queryKey:["tablesInSchema",i,e,t],queryFn:()=>o.connections.listTables(i,e,t)}),f=u&&l?.data?l.data.filter(g=>(g.resource.split(".").pop()?.toLowerCase()||"").includes(s.toLowerCase())).sort((g,x)=>{const b=g.resource.split(".").pop()||g.resource,y=x.resource.split(".").pop()||x.resource;return b.localeCompare(y)}):[];return p.jsxs(p.Fragment,{children:[p.jsxs(v.Typography,{variant:"overline",fontWeight:"bold",children:["Tables in ",t]}),p.jsx(v.Divider,{}),p.jsx(v.Box,{sx:{mt:1,mb:1},children:p.jsx(v.TextField,{size:"small",fullWidth:!0,placeholder:"Search tables...",value:s,onChange:g=>a(g.target.value),variant:"outlined"})}),p.jsx(v.Divider,{}),p.jsxs(v.Box,{sx:{mt:"2px",maxHeight:"600px",overflowY:"auto"},children:[h&&p.jsx(Kt,{text:"Fetching Tables..."}),c&&p.jsx(sn,{error:d,context:`${i} > ${e} > ${t}`}),u&&f.length===0&&p.jsx(v.Typography,{variant:"body2",children:"No Tables"}),u&&l?.data&&l.data.length>0&&p.jsx(v.List,{dense:!0,disablePadding:!0,children:f.map(g=>{const x=g.resource.split(".").pop()||g.resource;return p.jsx(v.ListItemButton,{onClick:()=>n(g),children:p.jsx(v.ListItemText,{primary:x,secondary:`${g.columns.length} columns`})},g.resource)})})]})]})}function A7({connection:e,onClick:t,onEdit:n,onDelete:r,isMutating:i,mutable:o}){return p.jsxs(v.TableRow,{sx:{"&:hover":{backgroundColor:"action.hover"}},children:[p.jsx(v.TableCell,{sx:{cursor:"pointer",flexGrow:1},onClick:t,children:p.jsxs(v.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[p.jsx(v.Typography,{variant:"body2",children:e.name}),p.jsx(Xo,{sx:{fontSize:"1rem",color:"action.active",opacity:.7}})]})}),p.jsx(v.TableCell,{sx:{minWidth:"120px"},children:p.jsx(v.Typography,{variant:"body2",children:e.type})}),o&&p.jsxs(v.TableCell,{sx:{minWidth:"120px"},children:[p.jsx(S7,{connection:e,onSubmit:n,isSubmitting:i}),p.jsx(v7,{connection:e,onCloseDialog:()=>{},isMutating:i,onDelete:()=>r(e)})]})]},e.name)}function w7({resourceUri:e}){const{apiClients:t,mutable:n}=Je.useServer(),r=mr.useQueryClient(),{projectName:i}=ct(e),[o,s]=B.useState(""),[a,l]=B.useState(null),u=tl({projectName:i,connectionName:a}),{data:c,isSuccess:d,isError:h,error:f}=Qt({queryKey:["connections",i],queryFn:()=>t.connections.listConnections(i)}),g=E=>{l(E)},x=()=>{l(null)},b=Yn({mutationFn:E=>t.projects.updateProject(i,{name:i,connections:[...c.data,E]}),onSuccess(){s("Connection added successfully"),r.invalidateQueries({queryKey:["connections",i]})},onError(E){s(E.message)}}),y=Yn({mutationFn:E=>t.projects.updateProject(i,{name:i,connections:c.data.map(S=>S.name===E.name?E:S)}),onSuccess(E,S){s(`Connection ${S.name} updated successfully`),r.invalidateQueries({queryKey:["connections",i]})},onError(E){s(E.message)}}),C=Yn({mutationFn:E=>t.projects.updateProject(i,{name:i,connections:c.data.filter(S=>S.name!==E.name)}),onSuccess(E,S){s(`Connection ${S.name} deleted successfully`),r.invalidateQueries({queryKey:["connections",i]})},onError(E){s(E.message)}});return p.jsxs(p.Fragment,{children:[p.jsx(Or,{children:p.jsxs(Fr,{children:[p.jsx(ai,{children:"Database Connections"}),p.jsxs(v.Box,{sx:{mb:1,maxHeight:"200px",overflowY:"auto"},children:[!d&&!h&&p.jsx(v.Typography,{variant:"body2",sx:{m:"auto"},children:"Fetching Connections..."}),d&&c.data.length>0&&p.jsx(v.Table,{size:"small",sx:{borderCollapse:"collapse","& .MuiTableRow-root":{display:"flex",width:"100%"},"& .MuiTableCell-root":{borderBottom:"1px solid #e0e0e0",display:"flex",alignItems:"center"},"& .MuiTableRow-root:last-child .MuiTableCell-root":{borderBottom:"none"}},children:p.jsxs(v.TableBody,{children:[p.jsxs(v.TableRow,{children:[p.jsx(v.TableCell,{sx:{flexGrow:1},children:p.jsx(v.Typography,{variant:"body2",fontWeight:"500",color:"text.secondary",children:"Connection Name"})}),p.jsx(v.TableCell,{sx:{minWidth:"120px"},children:p.jsx(v.Typography,{variant:"body2",fontWeight:"500",color:"text.secondary",children:"Type"})}),n&&p.jsx(v.TableCell,{sx:{minWidth:"120px"},children:p.jsx(v.Typography,{variant:"body2",fontWeight:"500",color:"text.secondary",sx:{mx:"auto"},children:"Actions"})})]}),c.data.map(E=>p.jsx(A7,{connection:E,onClick:()=>g(E.name),onEdit:S=>y.mutateAsync(S),onDelete:S=>C.mutateAsync(S),isMutating:y.isPending||C.isPending,mutable:n},E.name))]})}),d&&c.data.length===0&&p.jsx(v.Typography,{variant:"body2",children:"No Connections"}),h&&p.jsx(sn,{error:f,context:`${i} > Connections`})]}),n&&p.jsx(v.Box,{sx:{display:"flex",justifyContent:"flex-end"},children:p.jsx(T7,{onSubmit:E=>b.mutateAsync(E),isSubmitting:b.isPending})})]})}),p.jsx(v.Snackbar,{open:o!=="",autoHideDuration:6e3,onClose:()=>s(""),message:o}),p.jsxs(v.Dialog,{open:a!==null,onClose:x,maxWidth:"lg",fullWidth:!0,children:[p.jsxs(v.DialogTitle,{children:["Connection Explorer: ",a,p.jsx(v.IconButton,{"aria-label":"close",onClick:x,sx:{position:"absolute",right:8,top:8},children:p.jsx(v.Box,{sx:{width:24,height:24,display:"flex",alignItems:"center",justifyContent:"center"},children:"X"})})]}),p.jsx(v.DialogContent,{children:a&&p.jsx(Eb,{resourceUri:u,connectionName:a})})]})]})}function D7({resourceUri:e}){const{apiClients:t}=Je.useServer(),{projectName:n,packageName:r,versionId:i}=ct(e),[o,s]=B.useState(!1),[a,l]=B.useState(null),u=b=>{l(b),s(!0)},c=()=>{s(!1),l(null)},{data:d,isError:h,error:f,isSuccess:g}=Qt({queryKey:["databases",n,r,i],queryFn:()=>t.databases.listDatabases(n,r,i)}),x=b=>b>=1024*1024*1024*1024?`${(b/(1024*1024*1024)).toFixed(2)} T`:b>=1024*1024*1024?`${(b/(1024*1024*1024)).toFixed(2)} G`:b>=1024*1024?`${(b/(1024*1024)).toFixed(2)} M`:`${(b/1024).toFixed(2)} K`;return p.jsxs(p.Fragment,{children:[p.jsx(Or,{children:p.jsxs(Fr,{children:[p.jsx(ai,{children:"Embedded Databases"}),p.jsxs(v.Box,{sx:{maxHeight:"200px",overflowY:"auto"},children:[!g&&!h&&p.jsx(Kt,{text:"Fetching Databases..."}),h&&p.jsx(sn,{error:f,context:`${n} > ${r} > Databases`}),g&&d.data.length>0&&p.jsx(v.Table,{size:"small",sx:{borderCollapse:"collapse","& .MuiTableCell-root":{borderBottom:"1px solid #e0e0e0"},"& .MuiTableRow-root:last-child .MuiTableCell-root":{borderBottom:"none"}},children:p.jsxs(v.TableBody,{children:[p.jsxs(v.TableRow,{children:[p.jsx(v.TableCell,{children:p.jsx(v.Typography,{variant:"body2",fontWeight:"500",color:"text.secondary",children:"Name"})}),p.jsx(v.TableCell,{align:"right",children:p.jsx(v.Typography,{variant:"body2",fontWeight:"500",color:"text.secondary",children:"Rows"})})]}),d.data.map(b=>p.jsxs(v.TableRow,{onClick:()=>u(b),sx:{cursor:"pointer","&:hover":{backgroundColor:"action.hover"}},children:[p.jsx(v.TableCell,{component:"th",scope:"row",children:p.jsxs(v.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[p.jsx(v.Typography,{variant:"body2",children:b.path}),p.jsx(Xo,{sx:{fontSize:"1rem",color:"action.active",opacity:.7}})]})}),p.jsx(v.TableCell,{align:"right",children:p.jsx(v.Typography,{variant:"body2",children:x(b.info.rowCount)})})]},b.path))]})}),g&&d.data.length===0&&p.jsx(v.Typography,{variant:"body2",sx:{m:"auto"},children:"No databases found"})]})]})}),p.jsxs(v.Dialog,{open:o,onClose:c,maxWidth:"sm",fullWidth:!0,children:[p.jsxs(v.DialogTitle,{children:[a?.path,p.jsx(v.IconButton,{"aria-label":"close",onClick:c,sx:{position:"absolute",right:8,top:8},children:p.jsx(v.Box,{sx:{width:24,height:24,display:"flex",alignItems:"center",justifyContent:"center"},children:"X"})})]}),p.jsx(v.DialogContent,{children:a?.info?.columns&&p.jsx(v.TableContainer,{children:p.jsxs(v.Table,{size:"small",children:[p.jsx(v.TableHead,{children:p.jsxs(v.TableRow,{children:[p.jsx(v.TableCell,{children:"Column"}),p.jsx(v.TableCell,{children:"Type"})]})}),p.jsx(v.TableBody,{children:a.info.columns.map(b=>p.jsxs(v.TableRow,{children:[p.jsx(v.TableCell,{component:"th",scope:"row",children:b.name}),p.jsx(v.TableCell,{children:b.type})]},b.name))})]})})})]})]})}function _7(e){const{theme:t,name:n,props:r}=e;return!t||!t.components||!t.components[n]||!t.components[n].defaultProps?r:Qo(t.components[n].defaultProps,r)}function P7({props:e,name:t,defaultTheme:n,themeId:r}){let i=Hy(n);return i=i[r]||i,_7({theme:i,name:t,props:e})}function R7({props:e,name:t}){return P7({props:e,name:t,defaultTheme:Ja,themeId:el})}function N7(e){return qe("MuiCollapse",e)}Me("MuiCollapse",["root","horizontal","vertical","entered","hidden","wrapper","wrapperInner"]);const L7=e=>{const{orientation:t,classes:n}=e,r={root:["root",`${t}`],entered:["entered"],hidden:["hidden"],wrapper:["wrapper",`${t}`],wrapperInner:["wrapperInner",`${t}`]};return ze(r,N7,n)},O7=ce("div",{name:"MuiCollapse",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.orientation],n.state==="entered"&&t.entered,n.state==="exited"&&!n.in&&n.collapsedSize==="0px"&&t.hidden]}})(Xe(({theme:e})=>({height:0,overflow:"hidden",transition:e.transitions.create("height"),variants:[{props:{orientation:"horizontal"},style:{height:"auto",width:0,transition:e.transitions.create("width")}},{props:{state:"entered"},style:{height:"auto",overflow:"visible"}},{props:{state:"entered",orientation:"horizontal"},style:{width:"auto"}},{props:({ownerState:t})=>t.state==="exited"&&!t.in&&t.collapsedSize==="0px",style:{visibility:"hidden"}}]}))),F7=ce("div",{name:"MuiCollapse",slot:"Wrapper"})({display:"flex",width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),M7=ce("div",{name:"MuiCollapse",slot:"WrapperInner"})({width:"100%",variants:[{props:{orientation:"horizontal"},style:{width:"auto",height:"100%"}}]}),ls=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiCollapse"}),{addEndListener:i,children:o,className:s,collapsedSize:a="0px",component:l,easing:u,in:c,onEnter:d,onEntered:h,onEntering:f,onExit:g,onExited:x,onExiting:b,orientation:y="vertical",style:C,timeout:E=Tm.standard,TransitionComponent:S=jn,...I}=r,k={...r,orientation:y,collapsedSize:a},F=L7(k),z=Gi(),U=ul(),D=A.useRef(null),j=A.useRef(),T=typeof a=="number"?`${a}px`:a,L=y==="horizontal",N=L?"width":"height",M=A.useRef(null),H=mt(n,M),X=q=>re=>{if(q){const ie=M.current;re===void 0?q(ie):q(ie,re)}},ue=()=>D.current?D.current[L?"clientWidth":"clientHeight"]:0,$=X((q,re)=>{D.current&&L&&(D.current.style.position="absolute"),q.style[N]=T,d&&d(q,re)}),_=X((q,re)=>{const ie=ue();D.current&&L&&(D.current.style.position="");const{duration:Te,easing:K}=$i({style:C,timeout:E,easing:u},{mode:"enter"});if(E==="auto"){const W=z.transitions.getAutoHeightDuration(ie);q.style.transitionDuration=`${W}ms`,j.current=W}else q.style.transitionDuration=typeof Te=="string"?Te:`${Te}ms`;q.style[N]=`${ie}px`,q.style.transitionTimingFunction=K,f&&f(q,re)}),te=X((q,re)=>{q.style[N]="auto",h&&h(q,re)}),oe=X(q=>{q.style[N]=`${ue()}px`,g&&g(q)}),P=X(x),Ee=X(q=>{const re=ue(),{duration:ie,easing:Te}=$i({style:C,timeout:E,easing:u},{mode:"exit"});if(E==="auto"){const K=z.transitions.getAutoHeightDuration(re);q.style.transitionDuration=`${K}ms`,j.current=K}else q.style.transitionDuration=typeof ie=="string"?ie:`${ie}ms`;q.style[N]=T,q.style.transitionTimingFunction=Te,b&&b(q)}),se=q=>{E==="auto"&&U.start(j.current||0,q),i&&i(M.current,q)};return p.jsx(S,{in:c,onEnter:$,onEntered:te,onEntering:_,onExit:oe,onExited:P,onExiting:Ee,addEndListener:se,nodeRef:M,timeout:E==="auto"?null:E,...I,children:(q,{ownerState:re,...ie})=>p.jsx(O7,{as:l,className:De(F.root,s,{entered:F.entered,exited:!c&&T==="0px"&&F.hidden}[q]),style:{[L?"minWidth":"minHeight"]:T,...C},ref:H,ownerState:{...k,state:q},...ie,children:p.jsx(F7,{ownerState:{...k,state:q},className:F.wrapper,ref:D,children:p.jsx(M7,{ownerState:{...k,state:q},className:F.wrapperInner,children:o})})})})});ls&&(ls.muiSupportAuto=!0);function B7(e){return qe("PrivateSwitchBase",e)}Me("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);const j7=e=>{const{classes:t,checked:n,disabled:r,edge:i}=e,o={root:["root",n&&"checked",r&&"disabled",i&&`edge${me(i)}`],input:["input"]};return ze(o,B7,t)},H7=ce(Hi,{name:"MuiSwitchBase"})({padding:9,borderRadius:"50%",variants:[{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:({edge:e,ownerState:t})=>e==="start"&&t.size!=="small",style:{marginLeft:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}},{props:({edge:e,ownerState:t})=>e==="end"&&t.size!=="small",style:{marginRight:-12}}]}),U7=ce("input",{name:"MuiSwitchBase",shouldForwardProp:on})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),$7=A.forwardRef(function(t,n){const{autoFocus:r,checked:i,checkedIcon:o,defaultChecked:s,disabled:a,disableFocusRipple:l=!1,edge:u=!1,icon:c,id:d,inputProps:h,inputRef:f,name:g,onBlur:x,onChange:b,onFocus:y,readOnly:C,required:E=!1,tabIndex:S,type:I,value:k,slots:F={},slotProps:z={},...U}=t,[D,j]=wi({controlled:i,default:!!s,name:"SwitchBase",state:"checked"}),T=li(),L=se=>{y&&y(se),T&&T.onFocus&&T.onFocus(se)},N=se=>{x&&x(se),T&&T.onBlur&&T.onBlur(se)},M=se=>{if(se.nativeEvent.defaultPrevented)return;const q=se.target.checked;j(q),b&&b(se,q)};let H=a;T&&typeof H>"u"&&(H=T.disabled);const X=I==="checkbox"||I==="radio",ue={...t,checked:D,disabled:H,disableFocusRipple:l,edge:u},$=j7(ue),_={slots:F,slotProps:{input:h,...z}},[te,oe]=nt("root",{ref:n,elementType:H7,className:$.root,shouldForwardComponentProp:!0,externalForwardedProps:{..._,component:"span",...U},getSlotProps:se=>({...se,onFocus:q=>{se.onFocus?.(q),L(q)},onBlur:q=>{se.onBlur?.(q),N(q)}}),ownerState:ue,additionalProps:{centerRipple:!0,focusRipple:!l,disabled:H,role:void 0,tabIndex:null}}),[P,Ee]=nt("input",{ref:f,elementType:U7,className:$.input,externalForwardedProps:_,getSlotProps:se=>({...se,onChange:q=>{se.onChange?.(q),M(q)}}),ownerState:ue,additionalProps:{autoFocus:r,checked:i,defaultChecked:s,disabled:H,id:X?d:void 0,name:g,readOnly:C,required:E,tabIndex:S,type:I,...I==="checkbox"&&k===void 0?{}:{value:k}}});return p.jsxs(te,{...oe,children:[p.jsx(P,{...Ee}),D?o:c]})}),z7=it(p.jsx("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"})),q7=it(p.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"})),W7=it(p.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}));function V7(e){return qe("MuiCheckbox",e)}const Au=Me("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),G7=e=>{const{classes:t,indeterminate:n,color:r,size:i}=e,o={root:["root",n&&"indeterminate",`color${me(r)}`,`size${me(i)}`]},s=ze(o,V7,t);return{...t,...s}},Y7=ce($7,{shouldForwardProp:e=>on(e)||e==="classes",name:"MuiCheckbox",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.indeterminate&&t.indeterminate,t[`size${me(n.size)}`],n.color!=="default"&&t[`color${me(n.color)}`]]}})(Xe(({theme:e})=>({color:(e.vars||e).palette.text.secondary,variants:[{props:{color:"default",disableRipple:!1},style:{"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter(nn()).map(([t])=>({props:{color:t,disableRipple:!1},style:{"&:hover":{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}}})),...Object.entries(e.palette).filter(nn()).map(([t])=>({props:{color:t},style:{[`&.${Au.checked}, &.${Au.indeterminate}`]:{color:(e.vars||e).palette[t].main},[`&.${Au.disabled}`]:{color:(e.vars||e).palette.action.disabled}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}))),K7=p.jsx(q7,{}),Q7=p.jsx(z7,{}),X7=p.jsx(W7,{}),Cb=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiCheckbox"}),{checkedIcon:i=K7,color:o="primary",icon:s=Q7,indeterminate:a=!1,indeterminateIcon:l=X7,inputProps:u,size:c="medium",disableRipple:d=!1,className:h,slots:f={},slotProps:g={},...x}=r,b=a?l:s,y=a?l:i,C={...r,disableRipple:d,color:o,indeterminate:a,size:c},E=G7(C),S=g.input??u,[I,k]=nt("root",{ref:n,elementType:Y7,className:De(E.root,h),shouldForwardComponentProp:!0,externalForwardedProps:{slots:f,slotProps:g,...x},ownerState:C,additionalProps:{type:"checkbox",icon:A.cloneElement(b,{fontSize:b.props.fontSize??c}),checkedIcon:A.cloneElement(y,{fontSize:y.props.fontSize??c}),disableRipple:d,slots:f,slotProps:{input:Dm(typeof S=="function"?S(C):S,{"data-indeterminate":a})}}});return p.jsx(I,{...k,classes:E})});function Tb(e){return R7}const vb=A.createContext(null);function Z7(e){const{value:t,children:n}=e;return p.jsx(vb.Provider,{value:t,children:t.wrapRoot({children:n,instance:t.instance})})}const di=()=>{const e=A.useContext(vb);if(e==null)throw new Error(["MUI X: Could not find the Tree View context.","It looks like you rendered your component outside of a SimpleTreeView or RichTreeView parent component.","This can also happen if you are bundling multiple versions of the Tree View."].join(`
|
|
207
207
|
`));return e},J7=({props:e})=>{const{instance:t}=di(),{label:n,itemId:r}=e,[i,o]=A.useState(n),s=t.isItemBeingEdited(r);return A.useEffect(()=>{s||o(n)},[s,n]),{propsEnhancers:{labelInput:({externalEventHandlers:a,interactions:l})=>t.isItemEditable(r)?{value:i??"","data-element":"labelInput",onChange:f=>{a.onChange?.(f),o(f.target.value)},onKeyDown:f=>{if(a.onKeyDown?.(f),f.defaultMuiPrevented)return;const g=f.target;f.key==="Enter"&&g.value?l.handleSaveItemLabel(f,g.value):f.key==="Escape"&&l.handleCancelItemLabelEditing(f)},onBlur:f=>{a.onBlur?.(f),!f.defaultMuiPrevented&&f.target.value&&l.handleSaveItemLabel(f,f.target.value)},autoFocus:!0,type:"text"}:{}}}},Pn=({instance:e,state:t,setState:n,params:r})=>{const i=A.useRef(t.editedItemId),o=d=>i.current===d,s=d=>{n(h=>de({},h,{editedItemId:d})),i.current=d},a=d=>d===t.editedItemId,l=!!r.isItemEditable,u=d=>{if(d==null||!l)return!1;const h=e.getItem(d);return h?typeof r.isItemEditable=="function"?r.isItemEditable(h):!!r.isItemEditable:!1},c=(d,h)=>{if(!h)throw new Error(["MUI X: The Tree View component requires all items to have a `label` property.","The label of an item cannot be empty.",d].join(`
|
|
208
208
|
`));n(f=>{const g=f.items.itemMetaMap[d];return g.label!==h?de({},f,{items:de({},f.items,{itemMetaMap:de({},f.items.itemMetaMap,{[d]:de({},g,{label:h})})})}):f}),r.onItemLabelChange&&r.onItemLabelChange(d,h)};return{instance:{setEditedItemId:s,isItemBeingEdited:a,updateItemLabel:c,isItemEditable:u,isTreeViewEditable:l,isItemBeingEditedRef:o},publicAPI:{updateItemLabel:c}}};Pn.itemPlugin=J7;Pn.getDefaultizedParams=({params:e,experimentalFeatures:t})=>{const n=t?.labelEditing;return de({},e,{isItemEditable:n?e.isItemEditable??!1:!1})};Pn.getInitialState=()=>({editedItemId:null});Pn.params={onItemLabelChange:!0,isItemEditable:!0};const ti=(e,t)=>e.getAvailablePlugins().has(t),Sb=e=>Array.isArray(e)?e.length>0&&e.some(Sb):!!e,e9=({itemId:e,children:t})=>{const{instance:n,selection:{multiSelect:r},publicAPI:i}=di(),o={expandable:Sb(t),expanded:n.isItemExpanded(e),focused:n.isItemFocused(e),selected:n.isItemSelected(e),disabled:n.isItemDisabled(e),editing:n?.isItemBeingEdited?n?.isItemBeingEdited(e):!1,editable:n.isItemEditable?n.isItemEditable(e):!1},s=f=>{if(o.disabled)return;o.focused||n.focusItem(f,e);const g=r&&(f.shiftKey||f.ctrlKey||f.metaKey);o.expandable&&!(g&&n.isItemExpanded(e))&&n.toggleItemExpansion(f,e)},a=f=>{if(o.disabled)return;!o.focused&&!o.editing&&n.focusItem(f,e),r&&(f.shiftKey||f.ctrlKey||f.metaKey)?f.shiftKey?n.expandSelectionRange(f,e):n.selectItem({event:f,itemId:e,keepExistingSelection:!0}):n.selectItem({event:f,itemId:e,shouldBeSelected:!0})},l=f=>{const g=f.nativeEvent.shiftKey;r&&g?n.expandSelectionRange(f,e):n.selectItem({event:f,itemId:e,keepExistingSelection:r,shouldBeSelected:f.target.checked})},u=()=>{ti(n,Pn)&&n.isItemEditable(e)&&(n.isItemBeingEdited(e)?n.setEditedItemId(null):n.setEditedItemId(e))};return{interactions:{handleExpansion:s,handleSelection:a,handleCheckboxSelection:l,toggleItemEditing:u,handleSaveItemLabel:(f,g)=>{ti(n,Pn)&&n.isItemBeingEditedRef(e)&&(n.updateItemLabel(e,g),u(),n.focusItem(f,e))},handleCancelItemLabelEditing:f=>{ti(n,Pn)&&n.isItemBeingEditedRef(e)&&(u(),n.focusItem(f,e))}},status:o,publicAPI:i}},Hd=A.createContext(()=>-1),kb=(e,t)=>{let n=t.length-1;for(;n>=0&&!e.isItemNavigable(t[n]);)n-=1;if(n!==-1)return t[n]},Ib=(e,t)=>{const n=e.getItemMeta(t),r=e.getItemOrderedChildrenIds(n.parentId),i=e.getItemIndex(t);if(i===0)return n.parentId;let o=i-1;for(;!e.isItemNavigable(r[o])&&o>=0;)o-=1;if(o===-1)return n.parentId==null?null:Ib(e,n.parentId);let s=r[o],a=kb(e,e.getItemOrderedChildrenIds(s));for(;e.isItemExpanded(s)&&a!=null;)s=a,a=e.getItemOrderedChildrenIds(s).find(e.isItemNavigable);return s},aa=(e,t)=>{if(e.isItemExpanded(t)){const r=e.getItemOrderedChildrenIds(t).find(e.isItemNavigable);if(r!=null)return r}let n=e.getItemMeta(t);for(;n!=null;){const r=e.getItemOrderedChildrenIds(n.parentId),i=e.getItemIndex(n.id);if(i<r.length-1){let o=i+1;for(;!e.isItemNavigable(r[o])&&o<r.length-1;)o+=1;if(e.isItemNavigable(r[o]))return r[o]}n=e.getItemMeta(n.parentId)}return null},Ab=e=>{let t=null;for(;t==null||e.isItemExpanded(t);){const n=e.getItemOrderedChildrenIds(t),r=kb(e,n);if(r==null)return t;t=r}return t},us=e=>e.getItemOrderedChildrenIds(null).find(e.isItemNavigable),wb=(e,t,n)=>{if(t===n)return[t,n];const r=e.getItemMeta(t),i=e.getItemMeta(n);if(r.parentId===i.id||i.parentId===r.id)return i.parentId===r.id?[r.id,i.id]:[i.id,r.id];const o=[r.id],s=[i.id];let a=r.parentId,l=i.parentId,u=s.indexOf(a)!==-1,c=o.indexOf(l)!==-1,d=!0,h=!0;for(;!c&&!u;)d&&(o.push(a),u=s.indexOf(a)!==-1,d=a!==null,!u&&d&&(a=e.getItemMeta(a).parentId)),h&&!u&&(s.push(l),c=o.indexOf(l)!==-1,h=l!==null,!c&&h&&(l=e.getItemMeta(l).parentId));const f=u?a:l,g=e.getItemOrderedChildrenIds(f),x=o[o.indexOf(f)-1],b=s[s.indexOf(f)-1];return g.indexOf(x)<g.indexOf(b)?[t,n]:[n,t]},t9=(e,t,n)=>{const r=l=>{if(e.isItemExpandable(l)&&e.isItemExpanded(l))return e.getItemOrderedChildrenIds(l)[0];let u=e.getItemMeta(l);for(;u!=null;){const c=e.getItemOrderedChildrenIds(u.parentId),d=e.getItemIndex(u.id);if(d<c.length-1)return c[d+1];u=e.getItemMeta(u.parentId)}throw new Error("Invalid range")},[i,o]=wb(e,t,n),s=[i];let a=i;for(;a!==o;)a=r(a),e.isItemDisabled(a)||s.push(a);return s},n9=e=>{let t=us(e);const n=[];for(;t!=null;)n.push(t),t=aa(e,t);return n},cs=(e,t)=>t!==e.closest('*[role="treeitem"]');let sm=0;const r9=()=>(sm+=1,`mui-tree-view-${sm}`),Ud=({id:e,treeId:t="",itemId:n})=>e??`${t}-${n}`,i9=e=>{const{runItemPlugins:t,items:{onItemClick:n,disabledItemsFocusable:r,indentationAtItemLevel:i},selection:{disableSelection:o,checkboxSelection:s},expansion:{expansionTrigger:a},treeId:l,instance:u,publicAPI:c}=di(),d=A.useContext(Hd),{id:h,itemId:f,label:g,children:x,rootRef:b}=e,{rootRef:y,contentRef:C,propsEnhancers:E}=t(e),{interactions:S,status:I}=e9({itemId:f,children:x}),k=A.useRef(null),F=A.useRef(null),z=mt(b,y,k),U=mt(C,F),D=A.useRef(null),j=Ud({itemId:f,treeId:l,id:h}),T=u.canItemBeTabbed(f)?0:-1,L={rootRefObject:k,contentRefObject:F,interactions:S},N=K=>W=>{if(K.onFocus?.(W),W.defaultMuiPrevented)return;const Ce=!I.disabled||r;!I.focused&&Ce&&W.currentTarget===W.target&&u.focusItem(W,f)},M=K=>W=>{if(K.onBlur?.(W),W.defaultMuiPrevented)return;const Ce=u.getItemDOMElement(f);I.editing||W.relatedTarget&&cs(W.relatedTarget,Ce)&&(W.target&&W.target?.dataset?.element==="labelInput"&&cs(W.target,Ce)||W.relatedTarget?.dataset?.element==="labelInput")||u.removeFocusedItem()},H=K=>W=>{K.onKeyDown?.(W),!(W.defaultMuiPrevented||W.target?.dataset?.element==="labelInput")&&u.handleItemKeyDown(W,f)},X=K=>W=>{K.onDoubleClick?.(W),!W.defaultMuiPrevented&&S.toggleItemEditing()},ue=K=>W=>{K.onClick?.(W),n?.(W,f),!(W.defaultMuiPrevented||D.current?.contains(W.target))&&(a==="content"&&S.handleExpansion(W),s||S.handleSelection(W))},$=K=>W=>{K.onMouseDown?.(W),!W.defaultMuiPrevented&&(W.shiftKey||W.ctrlKey||W.metaKey||I.disabled)&&W.preventDefault()},_=K=>W=>{K.onChange?.(W),!W.defaultMuiPrevented&&(o||I.disabled||S.handleCheckboxSelection(W))},te=K=>W=>{K.onClick?.(W),!W.defaultMuiPrevented&&a==="iconContainer"&&S.handleExpansion(W)};return{getRootProps:(K={})=>{const W=de({},Jt(e),Jt(K));let Ce;I.selected?Ce=!0:o||I.disabled?Ce=void 0:Ce=!1;const ve=de({},W,{ref:z,role:"treeitem",tabIndex:T,id:j,"aria-expanded":I.expandable?I.expanded:void 0,"aria-selected":Ce,"aria-disabled":I.disabled||void 0},K,{onFocus:N(W),onBlur:M(W),onKeyDown:H(W)});i&&(ve.style={"--TreeView-itemDepth":typeof d=="function"?d(f):d});const ne=E.root?.(de({},L,{externalEventHandlers:W}))??{};return de({},ve,ne)},getContentProps:(K={})=>{const W=Jt(K),Ce=de({},W,K,{ref:U,onClick:ue(W),onMouseDown:$(W),status:I});i&&(Ce.indentationAtItemLevel=!0);const ve=E.content?.(de({},L,{externalEventHandlers:W}))??{};return de({},Ce,ve)},getGroupTransitionProps:(K={})=>{const W=Jt(K),Ce=de({},W,{unmountOnExit:!0,component:"ul",role:"group",in:I.expanded,children:x},K);return i&&(Ce.indentationAtItemLevel=!0),Ce},getIconContainerProps:(K={})=>{const W=Jt(K);return de({},W,K,{onClick:te(W)})},getCheckboxProps:(K={})=>{const W=Jt(K);return de({},W,{visible:s,ref:D,checked:I.selected,disabled:o||I.disabled,tabIndex:-1},K,{onChange:_(W)})},getLabelProps:(K={})=>{const W=de({},Jt(K)),Ce=de({},W,{children:g},K,{onDoubleClick:X(W)});return u.isTreeViewEditable&&(Ce.editable=I.editable),Ce},getLabelInputProps:(K={})=>{const W=Jt(K),Ce=E.labelInput?.({rootRefObject:k,contentRefObject:F,externalEventHandlers:W,interactions:S})??{};return de({},K,Ce)},getDragAndDropOverlayProps:(K={})=>{const W=Jt(K),Ce=E.dragAndDropOverlay?.(de({},L,{externalEventHandlers:W}))??{};return de({},K,Ce)},rootRef:z,status:I,publicAPI:c}},o9=i9;function Db(e){const{instance:t,items:{onItemClick:n},selection:{multiSelect:r,checkboxSelection:i,disableSelection:o},expansion:{expansionTrigger:s}}=di(),a=t.isItemExpandable(e),l=t.isItemExpanded(e),u=t.isItemFocused(e),c=t.isItemSelected(e),d=t.isItemDisabled(e),h=t?.isItemBeingEdited?t?.isItemBeingEdited(e):!1,f=t.isItemEditable?t.isItemEditable(e):!1,g=I=>{if(!d){u||t.focusItem(I,e);const k=r&&(I.shiftKey||I.ctrlKey||I.metaKey);a&&!(k&&t.isItemExpanded(e))&&t.toggleItemExpansion(I,e)}},x=I=>{d||(!u&&!h&&t.focusItem(I,e),r&&(I.shiftKey||I.ctrlKey||I.metaKey)?I.shiftKey?t.expandSelectionRange(I,e):t.selectItem({event:I,itemId:e,keepExistingSelection:!0}):t.selectItem({event:I,itemId:e,shouldBeSelected:!0}))},b=I=>{if(o||d)return;const k=I.nativeEvent.shiftKey;r&&k?t.expandSelectionRange(I,e):t.selectItem({event:I,itemId:e,keepExistingSelection:r,shouldBeSelected:I.target.checked})},y=I=>{(I.shiftKey||I.ctrlKey||I.metaKey||d)&&I.preventDefault()},C=()=>{ti(t,Pn)&&t.isItemEditable(e)&&(t.isItemBeingEdited(e)?t.setEditedItemId(null):t.setEditedItemId(e))};return{disabled:d,expanded:l,selected:c,focused:u,editable:f,editing:h,disableSelection:o,checkboxSelection:i,handleExpansion:g,handleSelection:x,handleCheckboxSelection:b,handleContentClick:n,preventSelection:y,expansionTrigger:s,toggleItemEditing:C,handleSaveItemLabel:(I,k)=>{ti(t,Pn)&&t.isItemBeingEditedRef(e)&&(t.updateItemLabel(e,k),C(),t.focusItem(I,e))},handleCancelItemLabelEditing:I=>{ti(t,Pn)&&t.isItemBeingEditedRef(e)&&(C(),t.focusItem(I,e))}}}const s9=ce("div",{name:"MuiTreeItem2DragAndDropOverlay",slot:"Root",overridesResolver:(e,t)=>t.root,shouldForwardProp:e=>ht.shouldForwardProp(e)&&e!=="action"})(({theme:e})=>({position:"absolute",left:0,display:"flex",top:0,bottom:0,right:0,pointerEvents:"none",variants:[{props:{action:"make-child"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))",borderRadius:e.shape.borderRadius,backgroundColor:e.vars?`rgba(${e.vars.palette.primary.darkChannel} / ${e.vars.palette.action.focusOpacity})`:ht.alpha(e.palette.primary.dark,e.palette.action.focusOpacity)}},{props:{action:"reorder-above"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))",borderTop:`1px solid ${(e.vars||e).palette.action.active}`}},{props:{action:"reorder-below"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))",borderBottom:`1px solid ${(e.vars||e).palette.action.active}`}},{props:{action:"move-to-parent"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * calc(var(--TreeView-itemDepth) - 1))",borderBottom:`1px solid ${(e.vars||e).palette.action.active}`}}]}));function a9(e){return e.action==null?null:p.jsx(s9,de({},e))}const l9=ce("input",{name:"MuiTreeItem2",slot:"LabelInput",overridesResolver:(e,t)=>t.labelInput})(({theme:e})=>de({},e.typography.body1,{width:"100%",backgroundColor:e.palette.background.paper,borderRadius:e.shape.borderRadius,border:"none",padding:"0 2px",boxSizing:"border-box","&:focus":{outline:`1px solid ${e.palette.primary.main}`}})),u9=["classes","className","displayIcon","expansionIcon","icon","label","itemId","onClick","onMouseDown","dragAndDropOverlayProps","labelInputProps"],_b=A.forwardRef(function(t,n){const{classes:r,className:i,displayIcon:o,expansionIcon:s,icon:a,label:l,itemId:u,onClick:c,onMouseDown:d,dragAndDropOverlayProps:h,labelInputProps:f}=t,g=Wt(t,u9),{disabled:x,expanded:b,selected:y,focused:C,editing:E,editable:S,disableSelection:I,checkboxSelection:k,handleExpansion:F,handleSelection:z,handleCheckboxSelection:U,handleContentClick:D,preventSelection:j,expansionTrigger:T,toggleItemEditing:L}=Db(u),N=a||s||o,M=A.useRef(null),H=$=>{j($),d&&d($)},X=$=>{D?.($,u),!M.current?.contains($.target)&&(T==="content"&&F($),k||z($),c&&c($))},ue=$=>{$.defaultMuiPrevented||L()};return p.jsxs("div",de({},g,{className:De(r.root,i,b&&r.expanded,y&&r.selected,C&&r.focused,x&&r.disabled,E&&r.editing,S&&r.editable),onClick:X,onMouseDown:H,ref:n,children:[p.jsx("div",{className:r.iconContainer,children:N}),k&&p.jsx(Cb,{className:r.checkbox,checked:y,onChange:U,disabled:x||I,ref:M,tabIndex:-1}),E?p.jsx(l9,de({},f,{className:r.labelInput})):p.jsx("div",de({className:r.label},S&&{onDoubleClick:ue},{children:l})),h&&p.jsx(a9,de({},h))]}))});function c9(e){return qe("MuiTreeItem",e)}const sr=Me("MuiTreeItem",["root","groupTransition","content","expanded","selected","focused","disabled","iconContainer","label","checkbox","labelInput","editable","editing","dragAndDropOverlay"]),Pb=it(p.jsx("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"})),Rb=it(p.jsx("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}));function $d(e){const{children:t,itemId:n}=e,{wrapItem:r,instance:i}=di();return r({children:t,itemId:n,instance:i})}$d.propTypes={children:ep.node,itemId:ep.string.isRequired};const d9=["children","className","slots","slotProps","ContentComponent","ContentProps","itemId","id","label","onClick","onMouseDown","onFocus","onBlur","onKeyDown"],p9=["ownerState"],f9=["ownerState"],h9=["ownerState"],m9=Tb(),g9=e=>{const{classes:t}=e;return ze({root:["root"],content:["content"],expanded:["expanded"],selected:["selected"],focused:["focused"],disabled:["disabled"],iconContainer:["iconContainer"],checkbox:["checkbox"],label:["label"],labelInput:["labelInput"],editing:["editing"],editable:["editable"],groupTransition:["groupTransition"]},c9,t)},b9=ce("li",{name:"MuiTreeItem",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0}),x9=ce(_b,{name:"MuiTreeItem",slot:"Content",overridesResolver:(e,t)=>[t.content,t.iconContainer&&{[`& .${sr.iconContainer}`]:t.iconContainer},t.label&&{[`& .${sr.label}`]:t.label}],shouldForwardProp:e=>Rr(e)&&e!=="indentationAtItemLevel"})(({theme:e})=>({padding:e.spacing(.5,1),borderRadius:e.shape.borderRadius,width:"100%",boxSizing:"border-box",position:"relative",display:"flex",alignItems:"center",gap:e.spacing(1),cursor:"pointer",WebkitTapHighlightColor:"transparent","&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${sr.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"},[`&.${sr.focused}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${sr.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:ht.alpha(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:ht.alpha(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:ht.alpha(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${sr.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:ht.alpha(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`& .${sr.iconContainer}`]:{width:16,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}},[`& .${sr.label}`]:de({width:"100%",boxSizing:"border-box",minWidth:0,position:"relative"},e.typography.body1),[`& .${sr.checkbox}`]:{padding:0},variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:`calc(${e.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`}}]})),y9=ce(ls,{name:"MuiTreeItem",slot:"GroupTransition",overridesResolver:(e,t)=>t.groupTransition,shouldForwardProp:e=>Rr(e)&&e!=="indentationAtItemLevel"})({margin:0,padding:0,paddingLeft:"var(--TreeView-itemChildrenIndentation)",variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:0}}]}),E9=A.forwardRef(function(t,n){const{icons:r,runItemPlugins:i,items:{disabledItemsFocusable:o,indentationAtItemLevel:s},selection:{disableSelection:a},expansion:{expansionTrigger:l},treeId:u,instance:c}=di(),d=A.useContext(Hd),h=m9({props:t,name:"MuiTreeItem"}),{children:f,className:g,slots:x,slotProps:b,ContentComponent:y=_b,ContentProps:C,itemId:E,id:S,label:I,onClick:k,onMouseDown:F,onBlur:z,onKeyDown:U}=h,D=Wt(h,d9),{expanded:j,focused:T,selected:L,disabled:N,editing:M,handleExpansion:H,handleCancelItemLabelEditing:X,handleSaveItemLabel:ue}=Db(E),{contentRef:$,rootRef:_,propsEnhancers:te}=i(h),oe=A.useRef(null),P=A.useRef(null),Ee=mt(n,_,oe),se=mt(C?.ref,$,P),q={expandIcon:x?.expandIcon??r.slots.expandIcon??Pb,collapseIcon:x?.collapseIcon??r.slots.collapseIcon??Rb,endIcon:x?.endIcon??r.slots.endIcon,icon:x?.icon,groupTransition:x?.groupTransition},re=he=>Array.isArray(he)?he.length>0&&he.some(re):!!he,ie=re(f),Te=de({},h,{expanded:j,focused:T,selected:L,disabled:N,indentationAtItemLevel:s}),K=g9(Te),W=q.groupTransition??void 0,Ce=ur({elementType:W,ownerState:{},externalSlotProps:b?.groupTransition,additionalProps:de({unmountOnExit:!0,in:j,component:"ul",role:"group"},s?{indentationAtItemLevel:!0}:{}),className:K.groupTransition}),ve=he=>{l==="iconContainer"&&H(he)},ne=j?q.collapseIcon:q.expandIcon,Be=ur({elementType:ne,ownerState:{},externalSlotProps:he=>j?de({},Wn(r.slotProps.collapseIcon,he),Wn(b?.collapseIcon,he)):de({},Wn(r.slotProps.expandIcon,he),Wn(b?.expandIcon,he)),additionalProps:{onClick:ve}}),Le=Wt(Be,p9),_e=ie&&ne?p.jsx(ne,de({},Le)):null,ye=ie?void 0:q.endIcon,Ze=ur({elementType:ye,ownerState:{},externalSlotProps:he=>ie?{}:de({},Wn(r.slotProps.endIcon,he),Wn(b?.endIcon,he))}),Se=Wt(Ze,f9),Ue=ye?p.jsx(ye,de({},Se)):null,xe=q.icon,yt=ur({elementType:xe,ownerState:{},externalSlotProps:b?.icon}),et=Wt(yt,h9),je=xe?p.jsx(xe,de({},et)):null;let Y;L?Y=!0:a||N?Y=void 0:Y=!1;function fe(he){!T&&(!N||o)&&he.currentTarget===he.target&&c.focusItem(he,E)}function Ae(he){z?.(he),!(M||he.relatedTarget&&cs(he.relatedTarget,oe.current)&&(he.target&&he.target?.dataset?.element==="labelInput"&&cs(he.target,oe.current)||he.relatedTarget?.dataset?.element==="labelInput"))&&c.removeFocusedItem()}const Ne=he=>{U?.(he),he.target?.dataset?.element!=="labelInput"&&c.handleItemKeyDown(he,E)},Pe=Ud({itemId:E,treeId:u,id:S}),Ie=c.canItemBeTabbed(E)?0:-1,Ye={rootRefObject:oe,contentRefObject:P,interactions:{handleSaveItemLabel:ue,handleCancelItemLabelEditing:X}},gt=te.root?.(de({},Ye,{externalEventHandlers:Jt(D)}))??{},lt=te.content?.(de({},Ye,{externalEventHandlers:Jt(C)}))??{},G=te.dragAndDropOverlay?.(de({},Ye,{externalEventHandlers:{}}))??{},ae=te.labelInput?.(de({},Ye,{externalEventHandlers:{}}))??{};return p.jsx($d,{itemId:E,children:p.jsxs(b9,de({className:De(K.root,g),role:"treeitem","aria-expanded":ie?j:void 0,"aria-selected":Y,"aria-disabled":N||void 0,id:Pe,tabIndex:Ie},D,{ownerState:Te,onFocus:fe,onBlur:Ae,onKeyDown:Ne,ref:Ee,style:s?de({},D.style,{"--TreeView-itemDepth":typeof d=="function"?d(E):d}):D.style},gt,{children:[p.jsx(x9,de({as:y,classes:{root:K.content,expanded:K.expanded,selected:K.selected,focused:K.focused,disabled:K.disabled,editable:K.editable,editing:K.editing,iconContainer:K.iconContainer,label:K.label,labelInput:K.labelInput,checkbox:K.checkbox},label:I,itemId:E,onClick:k,onMouseDown:F,icon:je,expansionIcon:_e,displayIcon:Ue,ownerState:Te},C,lt,G.action==null?{}:{dragAndDropOverlayProps:G},ae.value==null?{}:{labelInputProps:ae},{ref:se})),f&&p.jsx(y9,de({as:W},Ce,{children:f}))]}))})});function C9(e){const{slots:t,slotProps:n,status:r}=e,i=di(),o=de({},i.icons.slots,{expandIcon:i.icons.slots.expandIcon??Pb,collapseIcon:i.icons.slots.collapseIcon??Rb}),s=i.icons.slotProps;let a;t?.icon?a="icon":r.expandable?r.expanded?a="collapseIcon":a="expandIcon":a="endIcon";const l=t?.[a]??o[a],u=ur({elementType:l,externalSlotProps:c=>de({},Wn(s[a],c),Wn(n?.[a],c)),ownerState:{}});return l?p.jsx(l,de({},u)):null}const T9=["visible"],v9=ce("li",{name:"MuiTreeItem2",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0}),S9=ce("div",{name:"MuiTreeItem2",slot:"Content",overridesResolver:(e,t)=>t.content,shouldForwardProp:e=>Rr(e)&&e!=="status"&&e!=="indentationAtItemLevel"})(({theme:e})=>({padding:e.spacing(.5,1),borderRadius:e.shape.borderRadius,width:"100%",boxSizing:"border-box",position:"relative",display:"flex",alignItems:"center",gap:e.spacing(1),cursor:"pointer",WebkitTapHighlightColor:"transparent","&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:`calc(${e.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`}},{props:({status:t})=>t.disabled,style:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"}},{props:({status:t})=>t.focused,style:{backgroundColor:(e.vars||e).palette.action.focus}},{props:({status:t})=>t.selected,style:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:ht.alpha(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:ht.alpha(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:ht.alpha(e.palette.primary.main,e.palette.action.selectedOpacity)}}}},{props:({status:t})=>t.selected&&t.focused,style:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:ht.alpha(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}]})),k9=ce("div",{name:"MuiTreeItem2",slot:"Label",overridesResolver:(e,t)=>t.label,shouldForwardProp:e=>Rr(e)&&e!=="editable"})(({theme:e})=>de({width:"100%",boxSizing:"border-box",minWidth:0,position:"relative",overflow:"hidden"},e.typography.body1,{variants:[{props:({editable:t})=>t,style:{paddingLeft:"2px"}}]})),I9=ce("div",{name:"MuiTreeItem2",slot:"IconContainer",overridesResolver:(e,t)=>t.iconContainer})({width:16,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}});ce(ls,{name:"MuiTreeItem2",slot:"GroupTransition",overridesResolver:(e,t)=>t.groupTransition,shouldForwardProp:e=>Rr(e)&&e!=="indentationAtItemLevel"})({margin:0,padding:0,paddingLeft:"var(--TreeView-itemChildrenIndentation)",variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:0}}]});ce(A.forwardRef((e,t)=>{const{visible:n}=e,r=Wt(e,T9);return n?p.jsx(Cb,de({},r,{ref:t})):null}),{name:"MuiTreeItem2",slot:"Checkbox",overridesResolver:(e,t)=>t.checkbox})({padding:0});function A9(e){return qe("MuiRichTreeView",e)}Me("MuiRichTreeView",["root"]);const w9=(e,t)=>{const n=A.useRef({}),[r,i]=A.useState(()=>{const s={};return e.forEach(a=>{a.models&&Object.entries(a.models).forEach(([l,u])=>{n.current[l]={isControlled:t[l]!==void 0,getDefaultValue:u.getDefaultValue},s[l]=u.getDefaultValue(t)})}),s});return Object.fromEntries(Object.entries(n.current).map(([s,a])=>{const l=t[s]??r[s];return[s,{value:l,setControlledValue:u=>{a.isControlled||i(c=>de({},c,{[s]:u}))}}]}))};class D9{constructor(){this.maxListeners=20,this.warnOnce=!1,this.events={}}on(t,n,r={}){let i=this.events[t];i||(i={highPriority:new Map,regular:new Map},this.events[t]=i),r.isFirst?i.highPriority.set(n,!0):i.regular.set(n,!0)}removeListener(t,n){this.events[t]&&(this.events[t].regular.delete(n),this.events[t].highPriority.delete(n))}removeAllListeners(){this.events={}}emit(t,...n){const r=this.events[t];if(!r)return;const i=Array.from(r.highPriority.keys()),o=Array.from(r.regular.keys());for(let s=i.length-1;s>=0;s-=1){const a=i[s];r.highPriority.has(a)&&a.apply(this,n)}for(let s=0;s<o.length;s+=1){const a=o[s];r.regular.has(a)&&a.apply(this,n)}}once(t,n){const r=this;this.on(t,function i(...o){r.removeListener(t,i),n.apply(r,o)})}}const _9=e=>e.isPropagationStopped!==void 0,Nb=()=>{const[e]=A.useState(()=>new D9),t=A.useCallback((...r)=>{const[i,o,s={}]=r;s.defaultMuiPrevented=!1,!(_9(s)&&s.isPropagationStopped())&&e.emit(i,o,s)},[e]),n=A.useCallback((r,i)=>(e.on(r,i),()=>{e.removeListener(r,i)}),[e]);return{instance:{$$publishEvent:t,$$subscribeEvent:n}}};Nb.params={};const Lb=({plugins:e})=>{const t=new Set(e);return{instance:{getAvailablePlugins:()=>t}}};Lb.params={};const zd=({params:e,state:t,setState:n})=>{A.useEffect(()=>{n(i=>i.id.treeId===e.id&&i.id.treeId!==void 0?i:de({},i,{id:de({},i.id,{treeId:e.id??r9()})}))},[n,e.id]);const r=e.id??t.id.treeId;return{getRootProps:()=>({id:r}),contextValue:{treeId:r}}};zd.params={id:!0};zd.getInitialState=({id:e})=>({id:{treeId:e??void 0}});const P9=[Nb,Lb,zd],R9=["slots","slotProps","apiRef","experimentalFeatures"],N9=e=>{let{props:{slots:t,slotProps:n,apiRef:r,experimentalFeatures:i},plugins:o}=e,s=Wt(e.props,R9);const a={};o.forEach(h=>{Object.assign(a,h.params)});const l={},u={};Object.keys(s).forEach(h=>{const f=s[h];a[h]?l[h]=f:u[h]=f});const c=i??{},d=o.reduce((h,f)=>f.getDefaultizedParams?f.getDefaultizedParams({params:h,experimentalFeatures:c}):h,l);return{apiRef:r,forwardedProps:u,pluginParams:d,slots:t??{},slotProps:n??{},experimentalFeatures:c}},L9=({plugins:e,instance:t,publicAPI:n,rootRef:r})=>({runItemPlugins:a=>{let l=null,u=null;const c=[],d={};e.forEach(g=>{if(!g.itemPlugin)return;const x=g.itemPlugin({props:a,rootRef:l,contentRef:u});x?.rootRef&&(l=x.rootRef),x?.contentRef&&(u=x.contentRef),x?.propsEnhancers&&(c.push(x.propsEnhancers),Object.keys(x.propsEnhancers).forEach(b=>{d[b]=!0}))});const h=g=>x=>{const b={};return c.forEach(y=>{const C=y[g];C!=null&&Object.assign(b,C(x))}),b},f=Object.fromEntries(Object.keys(d).map(g=>[g,h(g)]));return{contentRef:u,rootRef:l,propsEnhancers:f}},wrapItem:({itemId:a,children:l})=>{let u=l;for(let c=e.length-1;c>=0;c-=1){const d=e[c];d.wrapItem&&(u=d.wrapItem({itemId:a,children:u,instance:t}))}return u},wrapRoot:({children:a})=>{let l=a;for(let u=e.length-1;u>=0;u-=1){const c=e[u];c.wrapRoot&&(l=c.wrapRoot({children:l,instance:t}))}return l},instance:t,rootRef:r,publicAPI:n});function O9(e){const t=A.useRef({});return e?(e.current==null&&(e.current={}),e.current):t.current}const F9=({plugins:e,rootRef:t,props:n})=>{const r=[...P9,...e],{pluginParams:i,forwardedProps:o,apiRef:s,experimentalFeatures:a,slots:l,slotProps:u}=N9({plugins:r,props:n}),c=w9(r,i),h=A.useRef({}).current,f=O9(s),g=A.useRef(null),x=mt(g,t),b=L9({plugins:r,instance:h,publicAPI:f,rootRef:g}),[y,C]=A.useState(()=>{const k={};return r.forEach(F=>{F.getInitialState&&Object.assign(k,F.getInitialState(i))}),k}),E=[],S=k=>{const F=k({instance:h,params:i,slots:l,slotProps:u,experimentalFeatures:a,state:y,setState:C,rootRef:g,models:c,plugins:r});F.getRootProps&&E.push(F.getRootProps),F.publicAPI&&Object.assign(f,F.publicAPI),F.instance&&Object.assign(h,F.instance),F.contextValue&&Object.assign(b,F.contextValue)};return r.forEach(S),{getRootProps:(k={})=>{const F=de({role:"tree"},o,k,{ref:x});return E.forEach(z=>{Object.assign(F,z(k))}),F},rootRef:x,contextValue:b,instance:h}},M9=(e,t,n)=>{e.$$publishEvent(t,n)},Ii="__TREE_VIEW_ROOT_PARENT_ID__",B9=e=>{const t={};return e.forEach((n,r)=>{t[n]=r}),t},j9=["children"],Ob=({items:e,isItemDisabled:t,getItemLabel:n,getItemId:r})=>{const i={},o={},s={[Ii]:[]},a=(u,c,d)=>{const h=r?r(u):u.id;if(h==null)throw new Error(["MUI X: The Tree View component requires all items to have a unique `id` property.","Alternatively, you can use the `getItemId` prop to specify a custom id for each item.","An item was provided without id in the `items` prop:",JSON.stringify(u)].join(`
|
|
209
209
|
`));if(i[h]!=null)throw new Error(["MUI X: The Tree View component requires all items to have a unique `id` property.","Alternatively, you can use the `getItemId` prop to specify a custom id for each item.",`Two items were provided with the same id in the \`items\` prop: "${h}"`].join(`
|
|
210
210
|
`));const f=n?n(u):u.label;if(f==null)throw new Error(["MUI X: The Tree View component requires all items to have a `label` property.","Alternatively, you can use the `getItemLabel` prop to specify a custom label for each item.","An item was provided without label in the `items` prop:",JSON.stringify(u)].join(`
|
|
211
|
-
`));i[h]={id:h,label:f,parentId:d,idAttribute:void 0,expandable:!!u.children?.length,disabled:t?t(u):!1,depth:c},o[h]=u;const g=d??Ii;s[g]||(s[g]=[]),s[g].push(h),u.children?.forEach(x=>a(x,c+1,h))};e.forEach(u=>a(u,0,null));const l={};return Object.keys(s).forEach(u=>{l[u]=B9(s[u])}),{itemMetaMap:i,itemMap:o,itemOrderedChildrenIds:s,itemChildrenIndexes:l}},ws=({instance:e,params:t,state:n,setState:r,experimentalFeatures:i})=>{const o=A.useCallback(y=>n.items.itemMetaMap[y],[n.items.itemMetaMap]),s=A.useCallback(y=>n.items.itemMap[y],[n.items.itemMap]),a=A.useCallback(()=>{const y=C=>{const E=n.items.itemMap[C],S=Wt(E,j9),I=n.items.itemOrderedChildrenIds[C];return I&&(S.children=I.map(y)),S};return n.items.itemOrderedChildrenIds[Ii].map(y)},[n.items.itemMap,n.items.itemOrderedChildrenIds]),l=A.useCallback(y=>{if(y==null)return!1;let C=e.getItemMeta(y);if(!C)return!1;if(C.disabled)return!0;for(;C.parentId!=null;)if(C=e.getItemMeta(C.parentId),C.disabled)return!0;return!1},[e]),u=A.useCallback(y=>{const C=e.getItemMeta(y).parentId??Ii;return n.items.itemChildrenIndexes[C][y]},[e,n.items.itemChildrenIndexes]),c=A.useCallback(y=>n.items.itemOrderedChildrenIds[y??Ii]??[],[n.items.itemOrderedChildrenIds]),d=y=>{const C=e.getItemMeta(y);return C==null?null:document.getElementById(Ud({treeId:n.id.treeId,itemId:y,id:C.idAttribute}))},h=y=>t.disabledItemsFocusable?!0:!e.isItemDisabled(y),f=A.useRef(!1),g=A.useCallback(()=>{f.current=!0},[]),x=A.useCallback(()=>f.current,[]);return A.useEffect(()=>{e.areItemUpdatesPrevented()||r(y=>{const C=Ob({items:t.items,isItemDisabled:t.isItemDisabled,getItemId:t.getItemId,getItemLabel:t.getItemLabel});return Object.values(y.items.itemMetaMap).forEach(E=>{C.itemMetaMap[E.id]||M9(e,"removeItem",{id:E.id})}),de({},y,{items:C})})},[e,r,t.items,t.isItemDisabled,t.getItemId,t.getItemLabel]),{getRootProps:()=>({style:{"--TreeView-itemChildrenIndentation":typeof t.itemChildrenIndentation=="number"?`${t.itemChildrenIndentation}px`:t.itemChildrenIndentation}}),publicAPI:{getItem:s,getItemDOMElement:d,getItemTree:a,getItemOrderedChildrenIds:c},instance:{getItemMeta:o,getItem:s,getItemTree:a,getItemsToRender:()=>{const y=C=>{const E=n.items.itemMetaMap[C];return{label:E.label,itemId:E.id,id:E.idAttribute,children:n.items.itemOrderedChildrenIds[C]?.map(y)}};return n.items.itemOrderedChildrenIds[Ii].map(y)},getItemIndex:u,getItemDOMElement:d,getItemOrderedChildrenIds:c,isItemDisabled:l,isItemNavigable:h,preventItemUpdates:g,areItemUpdatesPrevented:x},contextValue:{items:{onItemClick:t.onItemClick,disabledItemsFocusable:t.disabledItemsFocusable,indentationAtItemLevel:i.indentationAtItemLevel??!1}}}};ws.getInitialState=e=>({items:Ob({items:e.items,isItemDisabled:e.isItemDisabled,getItemId:e.getItemId,getItemLabel:e.getItemLabel})});ws.getDefaultizedParams=({params:e})=>de({},e,{disabledItemsFocusable:e.disabledItemsFocusable??!1,itemChildrenIndentation:e.itemChildrenIndentation??"12px"});ws.wrapRoot=({children:e,instance:t})=>p.jsx(Hd.Provider,{value:n=>t.getItemMeta(n)?.depth??0,children:e});ws.params={disabledItemsFocusable:!0,items:!0,isItemDisabled:!0,getItemLabel:!0,getItemId:!0,onItemClick:!0,itemChildrenIndentation:!0};const kl=({instance:e,params:t,models:n})=>{const r=A.useMemo(()=>{const d=new Map;return n.expandedItems.value.forEach(h=>{d.set(h,!0)}),d},[n.expandedItems.value]),i=(d,h)=>{t.onExpandedItemsChange?.(d,h),n.expandedItems.setControlledValue(h)},o=A.useCallback(d=>r.has(d),[r]),s=A.useCallback(d=>!!e.getItemMeta(d)?.expandable,[e]),a=wt((d,h)=>{const f=e.isItemExpanded(h);e.setItemExpansion(d,h,!f)}),l=wt((d,h,f)=>{if(e.isItemExpanded(h)===f)return;let x;f?x=[h].concat(n.expandedItems.value):x=n.expandedItems.value.filter(b=>b!==h),t.onItemExpansionToggle&&t.onItemExpansionToggle(d,h,f),i(d,x)}),u=(d,h)=>{const f=e.getItemMeta(h),x=e.getItemOrderedChildrenIds(f.parentId).filter(y=>e.isItemExpandable(y)&&!e.isItemExpanded(y)),b=n.expandedItems.value.concat(x);x.length>0&&(t.onItemExpansionToggle&&x.forEach(y=>{t.onItemExpansionToggle(d,y,!0)}),i(d,b))},c=A.useMemo(()=>t.expansionTrigger?t.expansionTrigger:e.isTreeViewEditable?"iconContainer":"content",[t.expansionTrigger,e.isTreeViewEditable]);return{publicAPI:{setItemExpansion:l},instance:{isItemExpanded:o,isItemExpandable:s,setItemExpansion:l,toggleItemExpansion:a,expandAllSiblings:u},contextValue:{expansion:{expansionTrigger:c}}}};kl.models={expandedItems:{getDefaultValue:e=>e.defaultExpandedItems}};const H9=[];kl.getDefaultizedParams=({params:e})=>de({},e,{defaultExpandedItems:e.defaultExpandedItems??H9});kl.params={expandedItems:!0,defaultExpandedItems:!0,onExpandedItemsChange:!0,onItemExpansionToggle:!0,expansionTrigger:!0};const la=e=>Array.isArray(e)?e:e!=null?[e]:[],wu=e=>{const t={};return e.forEach(n=>{t[n]=!0}),t},Il=({instance:e,params:t,models:n})=>{const r=A.useRef(null),i=A.useRef({}),o=A.useMemo(()=>{const x=new Map;return Array.isArray(n.selectedItems.value)?n.selectedItems.value.forEach(b=>{x.set(b,!0)}):n.selectedItems.value!=null&&x.set(n.selectedItems.value,!0),x},[n.selectedItems.value]),s=(x,b)=>{if(t.onItemSelectionToggle)if(t.multiSelect){const y=b.filter(E=>!e.isItemSelected(E)),C=n.selectedItems.value.filter(E=>!b.includes(E));y.forEach(E=>{t.onItemSelectionToggle(x,E,!0)}),C.forEach(E=>{t.onItemSelectionToggle(x,E,!1)})}else b!==n.selectedItems.value&&(n.selectedItems.value!=null&&t.onItemSelectionToggle(x,n.selectedItems.value,!1),b!=null&&t.onItemSelectionToggle(x,b,!0));t.onSelectedItemsChange&&t.onSelectedItemsChange(x,b),n.selectedItems.setControlledValue(b)},a=x=>o.has(x),l=({event:x,itemId:b,keepExistingSelection:y=!1,shouldBeSelected:C})=>{if(t.disableSelection)return;let E;if(y){const S=la(n.selectedItems.value),I=e.isItemSelected(b);I&&(C===!1||C==null)?E=S.filter(k=>k!==b):!I&&(C===!0||C==null)?E=[b].concat(S):E=S}else C===!1||C==null&&e.isItemSelected(b)?E=t.multiSelect?[]:null:E=t.multiSelect?[b]:b;s(x,E),r.current=b,i.current={}},u=(x,[b,y])=>{if(t.disableSelection||!t.multiSelect)return;let C=la(n.selectedItems.value).slice();Object.keys(i.current).length>0&&(C=C.filter(k=>!i.current[k]));const E=wu(C),S=t9(e,b,y),I=S.filter(k=>!E[k]);C=C.concat(I),s(x,C),i.current=wu(S)};return{getRootProps:()=>({"aria-multiselectable":t.multiSelect}),publicAPI:{selectItem:l},instance:{isItemSelected:a,selectItem:l,selectAllNavigableItems:x=>{if(t.disableSelection||!t.multiSelect)return;const b=n9(e);s(x,b),i.current=wu(b)},expandSelectionRange:(x,b)=>{if(r.current!=null){const[y,C]=wb(e,b,r.current);u(x,[y,C])}},selectRangeFromStartToItem:(x,b)=>{u(x,[us(e),b])},selectRangeFromItemToEnd:(x,b)=>{u(x,[b,Ab(e)])},selectItemFromArrowNavigation:(x,b,y)=>{if(t.disableSelection||!t.multiSelect)return;let C=la(n.selectedItems.value).slice();Object.keys(i.current).length===0?(C.push(y),i.current={[b]:!0,[y]:!0}):(i.current[b]||(i.current={}),i.current[y]?(C=C.filter(E=>E!==b),delete i.current[b]):(C.push(y),i.current[y]=!0)),s(x,C)}},contextValue:{selection:{multiSelect:t.multiSelect,checkboxSelection:t.checkboxSelection,disableSelection:t.disableSelection}}}};Il.models={selectedItems:{getDefaultValue:e=>e.defaultSelectedItems}};const U9=[];Il.getDefaultizedParams=({params:e})=>de({},e,{disableSelection:e.disableSelection??!1,multiSelect:e.multiSelect??!1,checkboxSelection:e.checkboxSelection??!1,defaultSelectedItems:e.defaultSelectedItems??(e.multiSelect?U9:null)});Il.params={disableSelection:!0,multiSelect:!0,checkboxSelection:!0,defaultSelectedItems:!0,selectedItems:!0,onSelectedItemsChange:!0,onItemSelectionToggle:!0};const am=1e3;class $9{constructor(t=am){this.timeouts=new Map,this.cleanupTimeout=am,this.cleanupTimeout=t}register(t,n,r){this.timeouts||(this.timeouts=new Map);const i=setTimeout(()=>{typeof n=="function"&&n(),this.timeouts.delete(r.cleanupToken)},this.cleanupTimeout);this.timeouts.set(r.cleanupToken,i)}unregister(t){const n=this.timeouts.get(t.cleanupToken);n&&(this.timeouts.delete(t.cleanupToken),clearTimeout(n))}reset(){this.timeouts&&(this.timeouts.forEach((t,n)=>{this.unregister({cleanupToken:n})}),this.timeouts=void 0)}}class z9{constructor(){this.registry=new FinalizationRegistry(t=>{typeof t=="function"&&t()})}register(t,n,r){this.registry.register(t,n,r)}unregister(t){this.registry.unregister(t)}reset(){}}class q9{}function W9(e){let t=0;return function(r,i,o){e.registry===null&&(e.registry=typeof FinalizationRegistry<"u"?new z9:new $9);const[s]=A.useState(new q9),a=A.useRef(null),l=A.useRef(void 0);l.current=o;const u=A.useRef(null);if(!a.current&&l.current){const c=(d,h)=>{h.defaultMuiPrevented||l.current?.(d,h)};a.current=r.$$subscribeEvent(i,c),t+=1,u.current={cleanupToken:t},e.registry.register(s,()=>{a.current?.(),a.current=null,u.current=null},u.current)}else!l.current&&a.current&&(a.current(),a.current=null,u.current&&(e.registry.unregister(u.current),u.current=null));A.useEffect(()=>{if(!a.current&&l.current){const c=(d,h)=>{h.defaultMuiPrevented||l.current?.(d,h)};a.current=r.$$subscribeEvent(i,c)}return u.current&&e.registry&&(e.registry.unregister(u.current),u.current=null),()=>{a.current?.(),a.current=null}},[r,i])}}const V9={registry:null},G9=W9(V9),Fb=(e=document)=>{const t=e.activeElement;return t?t.shadowRoot?Fb(t.shadowRoot):t:null},Y9=(e,t)=>{let n=la(t).find(r=>{if(!e.isItemNavigable(r))return!1;const i=e.getItemMeta(r);return i&&(i.parentId==null||e.isItemExpanded(i.parentId))});return n==null&&(n=us(e)),n},qd=({instance:e,params:t,state:n,setState:r,models:i,rootRef:o})=>{const s=Y9(e,i.selectedItems.value),a=wt(b=>{const y=typeof b=="function"?b(n.focusedItemId):b;n.focusedItemId!==y&&r(C=>de({},C,{focusedItemId:y}))}),l=A.useCallback(()=>!!o.current&&o.current.contains(Fb(Ut(o.current))),[o]),u=A.useCallback(b=>n.focusedItemId===b&&l(),[n.focusedItemId,l]),c=b=>{const y=e.getItemMeta(b);return y&&(y.parentId==null||e.isItemExpanded(y.parentId))},d=(b,y)=>{const C=e.getItemDOMElement(y);C&&C.focus(),a(y),t.onItemFocus&&t.onItemFocus(b,y)},h=wt((b,y)=>{c(y)&&d(b,y)}),f=wt(()=>{if(n.focusedItemId==null)return;if(e.getItemMeta(n.focusedItemId)){const y=e.getItemDOMElement(n.focusedItemId);y&&y.blur()}a(null)}),g=b=>b===s;G9(e,"removeItem",({id:b})=>{n.focusedItemId===b&&d(null,s)});const x=b=>y=>{b.onFocus?.(y),!y.defaultMuiPrevented&&y.target===y.currentTarget&&d(y,s)};return{getRootProps:b=>({onFocus:x(b)}),publicAPI:{focusItem:h},instance:{isItemFocused:u,canItemBeTabbed:g,focusItem:h,removeFocusedItem:f}}};qd.getInitialState=()=>({focusedItemId:null});qd.params={onItemFocus:!0};function K9(e){return!!e&&e.length===1&&!!e.match(/\S/)}const Mb=({instance:e,params:t,state:n})=>{const r=Rc(),i=A.useRef({}),o=wt(c=>{i.current=c(i.current)});A.useEffect(()=>{if(e.areItemUpdatesPrevented())return;const c={},d=h=>{c[h.id]=h.label.substring(0,1).toLowerCase()};Object.values(n.items.itemMetaMap).forEach(d),i.current=c},[n.items.itemMetaMap,t.getItemId,e]);const s=(c,d)=>{const h=d.toLowerCase(),f=y=>{const C=aa(e,y);return C===null?us(e):C};let g=null,x=f(c);const b={};for(;g==null&&!b[x];)i.current[x]===h?g=x:(b[x]=!0,x=f(x));return g},a=c=>!t.disableSelection&&!e.isItemDisabled(c),l=c=>!e.isItemDisabled(c)&&e.isItemExpandable(c);return{instance:{updateFirstCharMap:o,handleItemKeyDown:(c,d)=>{if(c.defaultMuiPrevented||c.altKey||cs(c.target,c.currentTarget))return;const h=c.ctrlKey||c.metaKey,f=c.key;switch(!0){case(f===" "&&a(d)):{c.preventDefault(),t.multiSelect&&c.shiftKey?e.expandSelectionRange(c,d):e.selectItem({event:c,itemId:d,keepExistingSelection:t.multiSelect,shouldBeSelected:t.multiSelect?void 0:!0});break}case f==="Enter":{ti(e,Pn)&&e.isItemEditable(d)&&!e.isItemBeingEdited(d)?e.setEditedItemId(d):l(d)?(e.toggleItemExpansion(c,d),c.preventDefault()):a(d)&&(t.multiSelect?(c.preventDefault(),e.selectItem({event:c,itemId:d,keepExistingSelection:!0})):e.isItemSelected(d)||(e.selectItem({event:c,itemId:d}),c.preventDefault()));break}case f==="ArrowDown":{const g=aa(e,d);g&&(c.preventDefault(),e.focusItem(c,g),t.multiSelect&&c.shiftKey&&a(g)&&e.selectItemFromArrowNavigation(c,d,g));break}case f==="ArrowUp":{const g=Ib(e,d);g&&(c.preventDefault(),e.focusItem(c,g),t.multiSelect&&c.shiftKey&&a(g)&&e.selectItemFromArrowNavigation(c,d,g));break}case(f==="ArrowRight"&&!r||f==="ArrowLeft"&&r):{if(h)return;if(e.isItemExpanded(d)){const g=aa(e,d);g&&(e.focusItem(c,g),c.preventDefault())}else l(d)&&(e.toggleItemExpansion(c,d),c.preventDefault());break}case(f==="ArrowLeft"&&!r||f==="ArrowRight"&&r):{if(h)return;if(l(d)&&e.isItemExpanded(d))e.toggleItemExpansion(c,d),c.preventDefault();else{const g=e.getItemMeta(d).parentId;g&&(e.focusItem(c,g),c.preventDefault())}break}case f==="Home":{a(d)&&t.multiSelect&&h&&c.shiftKey?e.selectRangeFromStartToItem(c,d):e.focusItem(c,us(e)),c.preventDefault();break}case f==="End":{a(d)&&t.multiSelect&&h&&c.shiftKey?e.selectRangeFromItemToEnd(c,d):e.focusItem(c,Ab(e)),c.preventDefault();break}case f==="*":{e.expandAllSiblings(c,d),c.preventDefault();break}case(String.fromCharCode(c.keyCode)==="A"&&h&&t.multiSelect&&!t.disableSelection):{e.selectAllNavigableItems(c),c.preventDefault();break}case(!h&&!c.shiftKey&&K9(f)):{const g=s(d,f);g!=null&&(e.focusItem(c,g),c.preventDefault());break}}}}}};Mb.params={};const Bb=({slots:e,slotProps:t})=>({contextValue:{icons:{slots:{collapseIcon:e.collapseIcon,expandIcon:e.expandIcon,endIcon:e.endIcon},slotProps:{collapseIcon:t.collapseIcon,expandIcon:t.expandIcon,endIcon:t.endIcon}}}});Bb.params={};const Q9=[ws,kl,Il,qd,Mb,Bb,Pn],X9=["ownerState"];function Z9({slots:e,slotProps:t,label:n,id:r,itemId:i,itemsToRender:o}){const s=e?.item??E9,a=ur({elementType:s,externalSlotProps:t?.item,additionalProps:{itemId:i,id:r,label:n},ownerState:{itemId:i,label:n}}),l=Wt(a,X9),u=A.useMemo(()=>o?p.jsx(jb,{itemsToRender:o,slots:e,slotProps:t}):null,[o,e,t]);return p.jsx(s,de({},l,{children:u}))}function jb(e){const{itemsToRender:t,slots:n,slotProps:r}=e;return p.jsx(A.Fragment,{children:t.map(i=>p.jsx(Z9,{slots:n,slotProps:r,label:i.label,id:i.id,itemId:i.itemId,itemsToRender:i.children},i.itemId))})}const J9=Tb(),eO=e=>{const{classes:t}=e;return ze({root:["root"]},A9,t)},tO=ce("ul",{name:"MuiRichTreeView",slot:"Root",overridesResolver:(e,t)=>t.root})({padding:0,margin:0,listStyle:"none",outline:0,position:"relative"}),nO=A.forwardRef(function(t,n){const r=J9({props:t,name:"MuiRichTreeView"}),{getRootProps:i,contextValue:o,instance:s}=F9({plugins:Q9,rootRef:n,props:r}),{slots:a,slotProps:l}=r,u=eO(r),c=a?.root??tO,d=ur({elementType:c,externalSlotProps:l?.root,className:u.root,getSlotProps:i,ownerState:r});return p.jsx(Z7,{value:o,children:p.jsx(c,de({},d,{children:p.jsx(jb,{slots:a,slotProps:l,itemsToRender:s.getItemsToRender()})}))})}),rO=it(p.jsx("path",{d:"m9.17 6 2 2H20v10H4V6zM10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"})),iO=it([p.jsx("path",{d:"M19 5v14H5V5zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2"},"0"),p.jsx("path",{d:"M14 17H7v-2h7zm3-4H7v-2h10zm0-4H7V7h10z"},"1")]),oO=it(p.jsx("path",{d:"M19 15v4H5v-4zm1-2H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1M7 18.5c-.82 0-1.5-.67-1.5-1.5s.68-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5M19 5v4H5V5zm1-2H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1M7 8.5c-.82 0-1.5-.67-1.5-1.5S6.18 5.5 7 5.5s1.5.68 1.5 1.5S7.83 8.5 7 8.5"})),sO=it(p.jsx("path",{d:"M15 4v2h3v12h-3v2h5V4zM4 20h5v-2H6V6h3V4H4z"}));function Hb({items:e,defaultExpandedItems:t,onClickTreeNode:n}){return p.jsx(nO,{items:dO(e,n),defaultExpandedItems:t,slots:{item:cO}})}const aO=dm.animated(ls);function lO(e){const t=dm.useSpring({to:{opacity:e.in?1:0,transform:`translate3d(0,${e.in?0:20}px,0)`}});return p.jsx(aO,{style:t,...e})}function uO({item:e,...t}){const n=p.jsxs(k9,{...t,sx:{display:"flex",alignItems:"center",color:e.error?"error.main":"grey.600"},children:[e.fileType==="directory"&&p.jsx(rO,{})||e.fileType==="notebook"&&p.jsx(iO,{})||e.fileType==="model"&&p.jsx(sO,{})||e.fileType=="database"&&p.jsx(oO,{})||p.jsx(gb,{}),p.jsx(v.Typography,{variant:"body2",sx:{marginLeft:"5px"},color:e.error?"error.main":e.link?"primary.main":"grey.600",children:e.label})]});return e.error?p.jsx(v.Tooltip,{title:e.error,placement:"right",children:n}):n}const cO=A.forwardRef(function(t,n){const{id:r,itemId:i,label:o,children:s,disabled:a,...l}=t,{getRootProps:u,getContentProps:c,getLabelProps:d,getIconContainerProps:h,getGroupTransitionProps:f,status:g,publicAPI:x}=o9({id:r,itemId:i,children:s,label:o,disabled:a,rootRef:n}),b=x.getItem(i);return g.selected=!1,g.focused=!1,p.jsx($d,{itemId:i,children:p.jsxs(v9,{...u(l),children:[p.jsxs(S9,{...c(),...b.link&&{onClick:y=>b.link(y)},sx:{pointerEvents:!b.selectable&&"none"},children:[p.jsx(I9,{...h(),children:p.jsx(C9,{status:g})}),p.jsx(uO,{...d({item:b})})]}),s&&p.jsx(lO,{...f()})]})})});function dO(e,t){const n=new Map;return e.map(r=>{let i=n;const o=r.path.split("/");o.forEach((s,a)=>{a===o.length-1?i.set(s,r):(i.has(s)||i.set(s,new Map),i=i.get(s))})}),Ub(n,"",t)}function Ub(e,t,n){const r=[];return e.forEach((i,o)=>{const s=o.endsWith(".malloy")&&"model"||o.endsWith(".malloynb")&&"notebook"||o.endsWith(".parquet")&&"database"||"unknown";if(s!=="unknown"){const a=i;r.push({id:t+o,label:o,fileType:s,link:s==="model"||s==="notebook"?l=>n(t+o,l):void 0,selectable:s==="model"||s==="notebook",error:"error"in a?a.error:void 0})}else{const a=t+o+"/";r.push({id:a,label:o,fileType:"directory",selectable:!0,link:void 0,children:Ub(i,a,n)})}}),r}const pO=["notebooks/","models/"];function $b({onClickModelFile:e,resourceUri:t}){const{projectName:n,packageName:r,versionId:i}=ct(t),{apiClients:o}=Je.useServer(),{data:s,isError:a,error:l,isSuccess:u}=Qt({queryKey:["models",n,r,i],queryFn:()=>o.models.listModels(n,r,i)});return p.jsx(Or,{children:p.jsxs(Fr,{children:[p.jsx(ai,{children:"Semantic Models"}),p.jsxs(v.Box,{sx:{maxHeight:"200px",overflowY:"auto"},children:[!u&&!a&&p.jsx(Kt,{text:"Fetching Models..."}),a&&p.jsx(sn,{error:l,context:`${n} > ${r} > Models`}),u&&s.data.length>0&&p.jsx(Hb,{items:s.data.sort((c,d)=>c.path.localeCompare(d.path)),onClickTreeNode:e,defaultExpandedItems:pO}),u&&s.data.length===0&&p.jsx(v.Typography,{variant:"body2",children:"No models found"})]})]})})}const fO=["notebooks/"];function hO({onClickNotebookFile:e,resourceUri:t}){const{apiClients:n}=Je.useServer(),{projectName:r,packageName:i,versionId:o}=ct(t),{data:s,isError:a,error:l,isSuccess:u}=Qt({queryKey:["notebooks",r,i,o],queryFn:()=>n.notebooks.listNotebooks(r,i,o)});return p.jsx(Or,{children:p.jsxs(Fr,{children:[p.jsx(ai,{children:"Notebooks"}),p.jsxs(v.Box,{sx:{maxHeight:"200px",overflowY:"auto"},children:[!u&&!a&&p.jsx(Kt,{text:"Fetching Notebooks..."}),a&&p.jsx(sn,{error:l,context:`${r} > ${i} > Notebooks`}),u&&s.data.length>0&&p.jsx(Hb,{items:s.data.sort((c,d)=>c.path.localeCompare(d.path)),defaultExpandedItems:fO,onClickTreeNode:e}),u&&s.data.length===0&&p.jsx(v.Typography,{variant:"body2",children:"No notebooks found"})]})]})})}const mO="README.malloynb";function gO({onClickPackageFile:e,resourceUri:t}){e||(e=r=>{window.location.href=r});const n=tl({...ct(t),modelPath:mO});return p.jsx(p.Fragment,{children:p.jsxs(v.Grid,{container:!0,spacing:3,columns:12,children:[p.jsx(v.Grid,{size:{xs:12,md:4},children:p.jsx(jL,{resourceUri:t})}),p.jsx(v.Grid,{size:{xs:12,md:4},children:p.jsx(hO,{onClickNotebookFile:e,resourceUri:t})}),p.jsx(v.Grid,{size:{xs:12,md:4},children:p.jsx($b,{onClickModelFile:e,resourceUri:t})}),p.jsx(v.Grid,{size:{xs:12,md:6},children:p.jsx(D7,{resourceUri:t})}),p.jsx(v.Grid,{size:{xs:12,md:6},children:p.jsx(w7,{resourceUri:t})}),p.jsx(v.Grid,{size:{xs:12,md:12},children:p.jsx(Or,{children:p.jsxs(Fr,{children:[p.jsx(ai,{children:"README"}),p.jsx(v.Box,{sx:{mt:1},children:p.jsx(X0,{resourceUri:n})})]})})})]})})}function bO({resourceUri:e}){const{projectName:t}=ct(e),{apiClients:n}=Je.useServer(),[r,i]=B.useState(!1),o=90,{data:s,isSuccess:a,isError:l,error:u}=Qt({queryKey:["about",t],queryFn:()=>n.projects.getProject(t,!1)}),c=s?.data?.readme||"",d=c.split(/\s+/),h=d.length>o,f=d.slice(0,o).join(" ");return p.jsxs(p.Fragment,{children:[!a&&!l&&p.jsx(Kt,{text:"Fetching About..."}),a&&c&&p.jsx(Or,{children:p.jsxs(Fr,{children:[p.jsx(ai,{children:"Readme"}),p.jsxs(v.Box,{sx:{mt:1,fontSize:"0.875rem",lineHeight:1.6},children:[p.jsx(ua,{options:{overrides:{h1:{component:"p",props:{style:{fontSize:"inherit",fontWeight:"italic"}}},h2:{component:"p",props:{style:{fontSize:"inherit",fontWeight:"italic"}}},h3:{component:"p",props:{style:{fontSize:"inherit",fontWeight:"italic"}}}}},children:r||!h?c:f}),h&&p.jsxs(v.Box,{sx:{mt:1},children:[" ",p.jsx(v.Button,{variant:"text",size:"small",onClick:()=>i(!r),children:r?"Read less":"Read more"})]})]})]})}),l&&p.jsx(sn,{error:u,context:`${t} > About`})]})}function xO({resourceUri:e}){const[t,n]=B.useState(!1),{apiClients:r}=Je.useServer(),i=mr.useQueryClient(),[o,s]=B.useState(""),a=()=>{n(!0)},l=()=>{n(!1)},{projectName:u}=ct(e),c=Yn({async mutationFn(h){return r.packages.createPackage(u,{name:h.name,description:h.description,location:h.location})},onSuccess(){l(),s("Package created successfully"),i.invalidateQueries({queryKey:["packages",u]})},onError(h){s(h instanceof Error?h.message:"An unknown error occurred")}}),d=h=>{h.preventDefault();const f=new FormData(h.currentTarget),g=f.get("name")?.toString(),x=f.get("description")?.toString(),b=f.get("location")?.toString();c.mutate({name:g,description:x,location:b})};return p.jsxs(B.Fragment,{children:[p.jsx(Dt,{onClick:a,variant:"contained",color:"primary",startIcon:p.jsx(pn.Add,{}),sx:{color:"white"},children:"Add Package"}),p.jsxs(xr,{open:t,onClose:l,children:[p.jsx(Cr,{children:"Create New Package"}),p.jsxs(Er,{children:[p.jsxs(ao,{children:["Create a new malloy package to start exploring your data.",p.jsx("br",{}),p.jsx("br",{}),"The location can be a GitHub/S3/GCP URL containing a package (Zipped or unzipped), or an absolute path to a directory that the publisher server has access to.",p.jsx("br",{}),p.jsx("br",{}),"Make sure to conform the"," ",p.jsx("a",{href:"https://github.com/malloydata/publisher/blob/main/README.md#architecture-overview",target:"_blank",rel:"noopener noreferrer",children:"Malloy Package Format"}),"."]}),p.jsxs("form",{onSubmit:d,id:"package-form",children:[p.jsx(Yt,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Package Name",type:"text",fullWidth:!0,variant:"standard"}),p.jsx(Yt,{id:"description",name:"description",label:"Description",multiline:!0,fullWidth:!0,rows:4,variant:"standard"}),p.jsx(Yt,{id:"location",name:"location",label:"Location",type:"text",placeholder:"E.g. s3://my-bucket/my-package.zip",fullWidth:!0,variant:"standard"})]})]}),p.jsxs(yr,{children:[p.jsx(Dt,{disabled:c.isPending,onClick:l,children:"Cancel"}),p.jsx(Dt,{type:"submit",form:"package-form",loading:c.isPending,children:"Save Changes"})]})]}),p.jsx(v.Snackbar,{open:o!=="",autoHideDuration:6e3,onClose:()=>s(""),message:o})]})}function yO({resourceUri:e,onCloseDialog:t}){const[n,r]=B.useState(!1),{apiClients:i}=Je.useServer(),o=mr.useQueryClient(),[s,a]=B.useState(""),l=()=>{r(!0)},u=()=>{r(!1),t()},{projectName:c,packageName:d}=ct(e),h=Yn({mutationFn:()=>i.packages.deletePackage(c,d),onSuccess(){u(),o.invalidateQueries({queryKey:["packages"]}),a("Package deleted successfully")},onError(f){a(f instanceof Error?f.message:"An unknown error occurred")}});return p.jsxs(B.Fragment,{children:[p.jsxs(v.MenuItem,{onClick:l,children:[p.jsx(v.ListItemIcon,{children:p.jsx(pn.Delete,{fontSize:"small"})}),p.jsx(v.ListItemText,{children:"Delete"})]}),p.jsxs(xr,{onClose:u,"aria-labelledby":"customized-dialog-title",open:n,children:[p.jsx(Cr,{sx:{m:0,p:2},id:"customized-dialog-title",children:"Delete Package"}),p.jsx(Ui,{"aria-label":"close",onClick:u,sx:f=>({position:"absolute",right:8,top:8,color:f.palette.grey[500]}),children:p.jsx(Lr,{})}),p.jsx(Er,{dividers:!0,children:p.jsxs(As,{gutterBottom:!0,children:['Are you sure you want to delete "',d,'"? This action cannot be undone.']})}),p.jsxs(yr,{children:[p.jsx(Dt,{variant:"outlined",onClick:u,style:{borderColor:"#14b3cb",color:"#14b3cb"},children:"Cancel"}),p.jsx(Dt,{variant:"contained",autoFocus:!0,onClick:()=>h.mutate(),color:"error",loading:h.isPending,children:"Delete"})]}),p.jsx(v.Snackbar,{open:s!=="",autoHideDuration:6e3,onClose:()=>a(""),message:s})]})]})}function EO({package:e,resourceUri:t,onCloseDialog:n}){const[r,i]=B.useState(!1),{apiClients:o}=Je.useServer(),s=mr.useQueryClient(),[a,l]=B.useState(""),u=()=>{i(!0)},c=()=>{i(!1),n()},{packageName:d,projectName:h}=ct(t),f=Yn({async mutationFn(x){return o.packages.updatePackage(h,d,{name:d,description:x.description})},onSuccess(){c(),l("Package updated successfully"),s.invalidateQueries({queryKey:["packages",h]})},onError(x){l(x instanceof Error?x.message:"An unknown error occurred")}}),g=x=>{x.preventDefault();const y=new FormData(x.currentTarget).get("description")?.toString();f.mutate({description:y})};return p.jsxs(B.Fragment,{children:[p.jsxs(v.MenuItem,{onClick:u,children:[p.jsx(v.ListItemIcon,{children:p.jsx(pn.Edit,{fontSize:"small"})}),p.jsx(v.ListItemText,{children:"Edit"})]}),p.jsxs(xr,{open:r,onClose:c,children:[p.jsx(Cr,{children:"Edit Package"}),p.jsxs(Er,{children:[p.jsxs(ao,{children:['Update the details for "',e.name,'".']}),p.jsxs("form",{onSubmit:g,id:"package-form",children:[p.jsx(Yt,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Package Name",disabled:!0,type:"text",fullWidth:!0,variant:"standard",defaultValue:e.name}),p.jsx(Yt,{id:"description",name:"description",label:"Description",multiline:!0,fullWidth:!0,rows:4,defaultValue:e.description,variant:"standard"})]})]}),p.jsxs(yr,{children:[p.jsx(Dt,{disabled:f.isPending,onClick:c,children:"Cancel"}),p.jsx(Dt,{type:"submit",form:"package-form",loading:f.isPending,children:"Save Changes"})]})]}),p.jsx(v.Snackbar,{open:a!=="",autoHideDuration:6e3,onClose:()=>l(""),message:a})]})}const CO=({package:e,resourceUri:t})=>{const{mutable:n}=Je.useServer(),[r,i]=B.useState(null),o=!!r,s=l=>{i(l.currentTarget)},a=()=>{i(null)};return p.jsx(p.Fragment,{children:n&&p.jsxs(p.Fragment,{children:[p.jsx(v.IconButton,{onClick:l=>{l.stopPropagation(),s(l)},"aria-controls":o?"package-menu":void 0,"aria-haspopup":"true","aria-expanded":o?"true":void 0,children:p.jsx(pn.MoreVert,{fontSize:"small"})}),p.jsxs(v.Menu,{id:"package-menu","aria-haspopup":"true","aria-expanded":o?"true":void 0,open:o,anchorEl:r,onClose:a,disableRestoreFocus:!0,anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"right"},onClick:l=>{l.stopPropagation()},children:[p.jsx(EO,{package:e,resourceUri:t,onCloseDialog:a}),p.jsx(yO,{resourceUri:t,onCloseDialog:a})]})]})})};function zb({onSelectPackage:e,resourceUri:t}){const{apiClients:n}=Je.useServer(),{projectName:r}=ct(t),{data:i,isSuccess:o,isError:s,error:a}=Qt({queryKey:["packages",r],queryFn:()=>n.packages.listPackages(r)});return p.jsxs(p.Fragment,{children:[!o&&!s&&p.jsx(Kt,{text:"Fetching Packages..."}),o&&p.jsx(v.Grid,{container:!0,spacing:3,columns:12,children:i.data.sort((l,u)=>l.name.localeCompare(u.name)).map(l=>{const u=tl({projectName:r,packageName:l.name});return p.jsx(v.Grid,{size:{xs:12,sm:12,md:12,lg:4},children:p.jsx(Or,{sx:{cursor:"pointer",transition:"all 0.2s ease-in-out",paddingTop:"8px","&:hover":{boxShadow:"0 2px 6px rgba(0, 0, 0, 0.08)",transform:"translateY(-1px)"}},onClick:c=>{e(l.name,c)},children:p.jsxs(Fr,{children:[p.jsxs(v.Box,{display:"flex",alignItems:"center",justifyContent:"space-between",sx:{marginBottom:"8px"},children:[p.jsx(v.Typography,{variant:"overline",sx:{fontSize:"12px",fontWeight:"600",color:"primary.main",textTransform:"uppercase",letterSpacing:"0.5px"},children:l.name}),p.jsx(CO,{package:l,resourceUri:u})]}),p.jsx(v.Divider,{sx:{mb:2}}),p.jsx(v.Box,{sx:{maxHeight:"120px",overflowY:"auto",mt:2},children:p.jsx(v.Typography,{variant:"body2",children:l.description})})]})})},l.name)})}),s&&p.jsx(sn,{error:a,context:`${r} > Packages`})]})}function TO({onSelectPackage:e,resourceUri:t}){const{mutable:n}=Je.useServer(),{projectName:r}=ct(t);return p.jsx(p.Fragment,{children:p.jsxs($T,{children:[p.jsxs(v.Box,{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2,children:[p.jsxs(v.Typography,{variant:"h6",children:[r," packages"]}),n&&p.jsx(xO,{resourceUri:t})]}),p.jsxs(v.Grid,{container:!0,spacing:3,columns:12,children:[p.jsx(v.Grid,{size:{xs:12,md:12},children:p.jsx(zb,{onSelectPackage:e,resourceUri:t})}),p.jsx(v.Grid,{size:{xs:12,md:12},children:p.jsx(bO,{resourceUri:t})})]})]})})}const vO=it(p.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2M8 17c-.55 0-1-.45-1-1v-3c0-.55.45-1 1-1s1 .45 1 1v3c0 .55-.45 1-1 1m4 0c-.55 0-1-.45-1-1v-1c0-.55.45-1 1-1s1 .45 1 1v1c0 .55-.45 1-1 1m0-5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m4 5c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8c0 .55-.45 1-1 1"})),SO=it(p.jsx("path",{d:"M5 13h11.17l-4.88 4.88c-.39.39-.39 1.03 0 1.42s1.02.39 1.41 0l6.59-6.59c.39-.39.39-1.02 0-1.41l-6.58-6.6a.996.996 0 0 0-1.41 0c-.39.39-.39 1.02 0 1.41L16.17 11H5c-.55 0-1 .45-1 1s.45 1 1 1"})),lm=it(p.jsx("path",{d:"m19.46 8 .79-1.75L22 5.46c.39-.18.39-.73 0-.91l-1.75-.79L19.46 2c-.18-.39-.73-.39-.91 0l-.79 1.75-1.76.79c-.39.18-.39.73 0 .91l1.75.79.79 1.76c.18.39.74.39.92 0M11.5 9.5 9.91 6c-.35-.78-1.47-.78-1.82 0L6.5 9.5 3 11.09c-.78.36-.78 1.47 0 1.82l3.5 1.59L8.09 18c.36.78 1.47.78 1.82 0l1.59-3.5 3.5-1.59c.78-.36.78-1.47 0-1.82zm7.04 6.5-.79 1.75-1.75.79c-.39.18-.39.73 0 .91l1.75.79.79 1.76c.18.39.73.39.91 0l.79-1.75 1.76-.79c.39-.18.39-.73 0-.91l-1.75-.79-.79-1.76c-.18-.39-.74-.39-.92 0"})),kO=it(p.jsx("path",{d:"M8.7 15.9 4.8 12l3.9-3.9c.39-.39.39-1.01 0-1.4a.984.984 0 0 0-1.4 0l-4.59 4.59c-.39.39-.39 1.02 0 1.41l4.59 4.6c.39.39 1.01.39 1.4 0s.39-1.01 0-1.4m6.6 0 3.9-3.9-3.9-3.9a.984.984 0 0 1 0-1.4c.39-.39 1.01-.39 1.4 0l4.59 4.59c.39.39.39 1.02 0 1.41l-4.59 4.6c-.39.39-1.01.39-1.4 0a.984.984 0 0 1 0-1.4"})),IO=it(p.jsx("path",{d:"M12 10.9c-.61 0-1.1.49-1.1 1.1s.49 1.1 1.1 1.1 1.1-.49 1.1-1.1-.49-1.1-1.1-1.1M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m2.19 12.19L6 18l3.81-8.19L18 6z"})),AO=it([p.jsx("path",{d:"M13 8.57c-.79 0-1.43.64-1.43 1.43s.64 1.43 1.43 1.43 1.43-.64 1.43-1.43-.64-1.43-1.43-1.43"},"0"),p.jsx("path",{d:"M13.21 3c-3.84-.11-7 2.87-7.19 6.64L4.1 12.2c-.25.33-.01.8.4.8H6v3c0 1.1.9 2 2 2h1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3.68c2.44-1.16 4.1-3.68 4-6.58-.14-3.62-3.18-6.63-6.79-6.74M16 10c0 .13-.01.26-.02.39l.83.66c.08.06.1.16.05.25l-.8 1.39c-.05.09-.16.12-.24.09l-.99-.4c-.21.16-.43.29-.67.39L14 13.83c-.01.1-.1.17-.2.17h-1.6c-.1 0-.18-.07-.2-.17l-.15-1.06c-.25-.1-.47-.23-.68-.39l-.99.4c-.09.03-.2 0-.25-.09l-.8-1.39c-.05-.08-.03-.19.05-.25l.84-.66c-.01-.13-.02-.26-.02-.39s.02-.27.04-.39l-.85-.66c-.08-.06-.1-.16-.05-.26l.8-1.38c.05-.09.15-.12.24-.09l1 .4c.2-.15.43-.29.67-.39L12 6.17c.02-.1.1-.17.2-.17h1.6c.1 0 .18.07.2.17l.15 1.06c.24.1.46.23.67.39l1-.4c.09-.03.2 0 .24.09l.8 1.38c.05.09.03.2-.05.26l-.85.66c.03.12.04.25.04.39"},"1")]),um=it(p.jsx("path",{d:"M4 20h16c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2s.9 2 2 2m0-3h2v2H4zM2 6c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2m4 1H4V5h2zm-2 7h16c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2s.9 2 2 2m0-3h2v2H4z"})),qb=e=>{if(!e)return"Explore semantic models, run queries, and build dashboards";const t=e.replace(/^#+\s+/gm,"").replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/`([^`]+)`/g,"$1").trim(),r=t.split(/\n\s*\n/)[1]||t;if(r.length<=120)return r;const i=r.substring(0,120).split(" ");return i.pop(),i.join(" ")+"..."},Wb=(e,t)=>{const n=(e.readme||void 0)?.split(`
|
|
211
|
+
`));i[h]={id:h,label:f,parentId:d,idAttribute:void 0,expandable:!!u.children?.length,disabled:t?t(u):!1,depth:c},o[h]=u;const g=d??Ii;s[g]||(s[g]=[]),s[g].push(h),u.children?.forEach(x=>a(x,c+1,h))};e.forEach(u=>a(u,0,null));const l={};return Object.keys(s).forEach(u=>{l[u]=B9(s[u])}),{itemMetaMap:i,itemMap:o,itemOrderedChildrenIds:s,itemChildrenIndexes:l}},ws=({instance:e,params:t,state:n,setState:r,experimentalFeatures:i})=>{const o=A.useCallback(y=>n.items.itemMetaMap[y],[n.items.itemMetaMap]),s=A.useCallback(y=>n.items.itemMap[y],[n.items.itemMap]),a=A.useCallback(()=>{const y=C=>{const E=n.items.itemMap[C],S=Wt(E,j9),I=n.items.itemOrderedChildrenIds[C];return I&&(S.children=I.map(y)),S};return n.items.itemOrderedChildrenIds[Ii].map(y)},[n.items.itemMap,n.items.itemOrderedChildrenIds]),l=A.useCallback(y=>{if(y==null)return!1;let C=e.getItemMeta(y);if(!C)return!1;if(C.disabled)return!0;for(;C.parentId!=null;)if(C=e.getItemMeta(C.parentId),C.disabled)return!0;return!1},[e]),u=A.useCallback(y=>{const C=e.getItemMeta(y).parentId??Ii;return n.items.itemChildrenIndexes[C][y]},[e,n.items.itemChildrenIndexes]),c=A.useCallback(y=>n.items.itemOrderedChildrenIds[y??Ii]??[],[n.items.itemOrderedChildrenIds]),d=y=>{const C=e.getItemMeta(y);return C==null?null:document.getElementById(Ud({treeId:n.id.treeId,itemId:y,id:C.idAttribute}))},h=y=>t.disabledItemsFocusable?!0:!e.isItemDisabled(y),f=A.useRef(!1),g=A.useCallback(()=>{f.current=!0},[]),x=A.useCallback(()=>f.current,[]);return A.useEffect(()=>{e.areItemUpdatesPrevented()||r(y=>{const C=Ob({items:t.items,isItemDisabled:t.isItemDisabled,getItemId:t.getItemId,getItemLabel:t.getItemLabel});return Object.values(y.items.itemMetaMap).forEach(E=>{C.itemMetaMap[E.id]||M9(e,"removeItem",{id:E.id})}),de({},y,{items:C})})},[e,r,t.items,t.isItemDisabled,t.getItemId,t.getItemLabel]),{getRootProps:()=>({style:{"--TreeView-itemChildrenIndentation":typeof t.itemChildrenIndentation=="number"?`${t.itemChildrenIndentation}px`:t.itemChildrenIndentation}}),publicAPI:{getItem:s,getItemDOMElement:d,getItemTree:a,getItemOrderedChildrenIds:c},instance:{getItemMeta:o,getItem:s,getItemTree:a,getItemsToRender:()=>{const y=C=>{const E=n.items.itemMetaMap[C];return{label:E.label,itemId:E.id,id:E.idAttribute,children:n.items.itemOrderedChildrenIds[C]?.map(y)}};return n.items.itemOrderedChildrenIds[Ii].map(y)},getItemIndex:u,getItemDOMElement:d,getItemOrderedChildrenIds:c,isItemDisabled:l,isItemNavigable:h,preventItemUpdates:g,areItemUpdatesPrevented:x},contextValue:{items:{onItemClick:t.onItemClick,disabledItemsFocusable:t.disabledItemsFocusable,indentationAtItemLevel:i.indentationAtItemLevel??!1}}}};ws.getInitialState=e=>({items:Ob({items:e.items,isItemDisabled:e.isItemDisabled,getItemId:e.getItemId,getItemLabel:e.getItemLabel})});ws.getDefaultizedParams=({params:e})=>de({},e,{disabledItemsFocusable:e.disabledItemsFocusable??!1,itemChildrenIndentation:e.itemChildrenIndentation??"12px"});ws.wrapRoot=({children:e,instance:t})=>p.jsx(Hd.Provider,{value:n=>t.getItemMeta(n)?.depth??0,children:e});ws.params={disabledItemsFocusable:!0,items:!0,isItemDisabled:!0,getItemLabel:!0,getItemId:!0,onItemClick:!0,itemChildrenIndentation:!0};const kl=({instance:e,params:t,models:n})=>{const r=A.useMemo(()=>{const d=new Map;return n.expandedItems.value.forEach(h=>{d.set(h,!0)}),d},[n.expandedItems.value]),i=(d,h)=>{t.onExpandedItemsChange?.(d,h),n.expandedItems.setControlledValue(h)},o=A.useCallback(d=>r.has(d),[r]),s=A.useCallback(d=>!!e.getItemMeta(d)?.expandable,[e]),a=wt((d,h)=>{const f=e.isItemExpanded(h);e.setItemExpansion(d,h,!f)}),l=wt((d,h,f)=>{if(e.isItemExpanded(h)===f)return;let x;f?x=[h].concat(n.expandedItems.value):x=n.expandedItems.value.filter(b=>b!==h),t.onItemExpansionToggle&&t.onItemExpansionToggle(d,h,f),i(d,x)}),u=(d,h)=>{const f=e.getItemMeta(h),x=e.getItemOrderedChildrenIds(f.parentId).filter(y=>e.isItemExpandable(y)&&!e.isItemExpanded(y)),b=n.expandedItems.value.concat(x);x.length>0&&(t.onItemExpansionToggle&&x.forEach(y=>{t.onItemExpansionToggle(d,y,!0)}),i(d,b))},c=A.useMemo(()=>t.expansionTrigger?t.expansionTrigger:e.isTreeViewEditable?"iconContainer":"content",[t.expansionTrigger,e.isTreeViewEditable]);return{publicAPI:{setItemExpansion:l},instance:{isItemExpanded:o,isItemExpandable:s,setItemExpansion:l,toggleItemExpansion:a,expandAllSiblings:u},contextValue:{expansion:{expansionTrigger:c}}}};kl.models={expandedItems:{getDefaultValue:e=>e.defaultExpandedItems}};const H9=[];kl.getDefaultizedParams=({params:e})=>de({},e,{defaultExpandedItems:e.defaultExpandedItems??H9});kl.params={expandedItems:!0,defaultExpandedItems:!0,onExpandedItemsChange:!0,onItemExpansionToggle:!0,expansionTrigger:!0};const la=e=>Array.isArray(e)?e:e!=null?[e]:[],wu=e=>{const t={};return e.forEach(n=>{t[n]=!0}),t},Il=({instance:e,params:t,models:n})=>{const r=A.useRef(null),i=A.useRef({}),o=A.useMemo(()=>{const x=new Map;return Array.isArray(n.selectedItems.value)?n.selectedItems.value.forEach(b=>{x.set(b,!0)}):n.selectedItems.value!=null&&x.set(n.selectedItems.value,!0),x},[n.selectedItems.value]),s=(x,b)=>{if(t.onItemSelectionToggle)if(t.multiSelect){const y=b.filter(E=>!e.isItemSelected(E)),C=n.selectedItems.value.filter(E=>!b.includes(E));y.forEach(E=>{t.onItemSelectionToggle(x,E,!0)}),C.forEach(E=>{t.onItemSelectionToggle(x,E,!1)})}else b!==n.selectedItems.value&&(n.selectedItems.value!=null&&t.onItemSelectionToggle(x,n.selectedItems.value,!1),b!=null&&t.onItemSelectionToggle(x,b,!0));t.onSelectedItemsChange&&t.onSelectedItemsChange(x,b),n.selectedItems.setControlledValue(b)},a=x=>o.has(x),l=({event:x,itemId:b,keepExistingSelection:y=!1,shouldBeSelected:C})=>{if(t.disableSelection)return;let E;if(y){const S=la(n.selectedItems.value),I=e.isItemSelected(b);I&&(C===!1||C==null)?E=S.filter(k=>k!==b):!I&&(C===!0||C==null)?E=[b].concat(S):E=S}else C===!1||C==null&&e.isItemSelected(b)?E=t.multiSelect?[]:null:E=t.multiSelect?[b]:b;s(x,E),r.current=b,i.current={}},u=(x,[b,y])=>{if(t.disableSelection||!t.multiSelect)return;let C=la(n.selectedItems.value).slice();Object.keys(i.current).length>0&&(C=C.filter(k=>!i.current[k]));const E=wu(C),S=t9(e,b,y),I=S.filter(k=>!E[k]);C=C.concat(I),s(x,C),i.current=wu(S)};return{getRootProps:()=>({"aria-multiselectable":t.multiSelect}),publicAPI:{selectItem:l},instance:{isItemSelected:a,selectItem:l,selectAllNavigableItems:x=>{if(t.disableSelection||!t.multiSelect)return;const b=n9(e);s(x,b),i.current=wu(b)},expandSelectionRange:(x,b)=>{if(r.current!=null){const[y,C]=wb(e,b,r.current);u(x,[y,C])}},selectRangeFromStartToItem:(x,b)=>{u(x,[us(e),b])},selectRangeFromItemToEnd:(x,b)=>{u(x,[b,Ab(e)])},selectItemFromArrowNavigation:(x,b,y)=>{if(t.disableSelection||!t.multiSelect)return;let C=la(n.selectedItems.value).slice();Object.keys(i.current).length===0?(C.push(y),i.current={[b]:!0,[y]:!0}):(i.current[b]||(i.current={}),i.current[y]?(C=C.filter(E=>E!==b),delete i.current[b]):(C.push(y),i.current[y]=!0)),s(x,C)}},contextValue:{selection:{multiSelect:t.multiSelect,checkboxSelection:t.checkboxSelection,disableSelection:t.disableSelection}}}};Il.models={selectedItems:{getDefaultValue:e=>e.defaultSelectedItems}};const U9=[];Il.getDefaultizedParams=({params:e})=>de({},e,{disableSelection:e.disableSelection??!1,multiSelect:e.multiSelect??!1,checkboxSelection:e.checkboxSelection??!1,defaultSelectedItems:e.defaultSelectedItems??(e.multiSelect?U9:null)});Il.params={disableSelection:!0,multiSelect:!0,checkboxSelection:!0,defaultSelectedItems:!0,selectedItems:!0,onSelectedItemsChange:!0,onItemSelectionToggle:!0};const am=1e3;class $9{constructor(t=am){this.timeouts=new Map,this.cleanupTimeout=am,this.cleanupTimeout=t}register(t,n,r){this.timeouts||(this.timeouts=new Map);const i=setTimeout(()=>{typeof n=="function"&&n(),this.timeouts.delete(r.cleanupToken)},this.cleanupTimeout);this.timeouts.set(r.cleanupToken,i)}unregister(t){const n=this.timeouts.get(t.cleanupToken);n&&(this.timeouts.delete(t.cleanupToken),clearTimeout(n))}reset(){this.timeouts&&(this.timeouts.forEach((t,n)=>{this.unregister({cleanupToken:n})}),this.timeouts=void 0)}}class z9{constructor(){this.registry=new FinalizationRegistry(t=>{typeof t=="function"&&t()})}register(t,n,r){this.registry.register(t,n,r)}unregister(t){this.registry.unregister(t)}reset(){}}class q9{}function W9(e){let t=0;return function(r,i,o){e.registry===null&&(e.registry=typeof FinalizationRegistry<"u"?new z9:new $9);const[s]=A.useState(new q9),a=A.useRef(null),l=A.useRef(void 0);l.current=o;const u=A.useRef(null);if(!a.current&&l.current){const c=(d,h)=>{h.defaultMuiPrevented||l.current?.(d,h)};a.current=r.$$subscribeEvent(i,c),t+=1,u.current={cleanupToken:t},e.registry.register(s,()=>{a.current?.(),a.current=null,u.current=null},u.current)}else!l.current&&a.current&&(a.current(),a.current=null,u.current&&(e.registry.unregister(u.current),u.current=null));A.useEffect(()=>{if(!a.current&&l.current){const c=(d,h)=>{h.defaultMuiPrevented||l.current?.(d,h)};a.current=r.$$subscribeEvent(i,c)}return u.current&&e.registry&&(e.registry.unregister(u.current),u.current=null),()=>{a.current?.(),a.current=null}},[r,i])}}const V9={registry:null},G9=W9(V9),Fb=(e=document)=>{const t=e.activeElement;return t?t.shadowRoot?Fb(t.shadowRoot):t:null},Y9=(e,t)=>{let n=la(t).find(r=>{if(!e.isItemNavigable(r))return!1;const i=e.getItemMeta(r);return i&&(i.parentId==null||e.isItemExpanded(i.parentId))});return n==null&&(n=us(e)),n},qd=({instance:e,params:t,state:n,setState:r,models:i,rootRef:o})=>{const s=Y9(e,i.selectedItems.value),a=wt(b=>{const y=typeof b=="function"?b(n.focusedItemId):b;n.focusedItemId!==y&&r(C=>de({},C,{focusedItemId:y}))}),l=A.useCallback(()=>!!o.current&&o.current.contains(Fb(Ut(o.current))),[o]),u=A.useCallback(b=>n.focusedItemId===b&&l(),[n.focusedItemId,l]),c=b=>{const y=e.getItemMeta(b);return y&&(y.parentId==null||e.isItemExpanded(y.parentId))},d=(b,y)=>{const C=e.getItemDOMElement(y);C&&C.focus(),a(y),t.onItemFocus&&t.onItemFocus(b,y)},h=wt((b,y)=>{c(y)&&d(b,y)}),f=wt(()=>{if(n.focusedItemId==null)return;if(e.getItemMeta(n.focusedItemId)){const y=e.getItemDOMElement(n.focusedItemId);y&&y.blur()}a(null)}),g=b=>b===s;G9(e,"removeItem",({id:b})=>{n.focusedItemId===b&&d(null,s)});const x=b=>y=>{b.onFocus?.(y),!y.defaultMuiPrevented&&y.target===y.currentTarget&&d(y,s)};return{getRootProps:b=>({onFocus:x(b)}),publicAPI:{focusItem:h},instance:{isItemFocused:u,canItemBeTabbed:g,focusItem:h,removeFocusedItem:f}}};qd.getInitialState=()=>({focusedItemId:null});qd.params={onItemFocus:!0};function K9(e){return!!e&&e.length===1&&!!e.match(/\S/)}const Mb=({instance:e,params:t,state:n})=>{const r=Rc(),i=A.useRef({}),o=wt(c=>{i.current=c(i.current)});A.useEffect(()=>{if(e.areItemUpdatesPrevented())return;const c={},d=h=>{c[h.id]=h.label.substring(0,1).toLowerCase()};Object.values(n.items.itemMetaMap).forEach(d),i.current=c},[n.items.itemMetaMap,t.getItemId,e]);const s=(c,d)=>{const h=d.toLowerCase(),f=y=>{const C=aa(e,y);return C===null?us(e):C};let g=null,x=f(c);const b={};for(;g==null&&!b[x];)i.current[x]===h?g=x:(b[x]=!0,x=f(x));return g},a=c=>!t.disableSelection&&!e.isItemDisabled(c),l=c=>!e.isItemDisabled(c)&&e.isItemExpandable(c);return{instance:{updateFirstCharMap:o,handleItemKeyDown:(c,d)=>{if(c.defaultMuiPrevented||c.altKey||cs(c.target,c.currentTarget))return;const h=c.ctrlKey||c.metaKey,f=c.key;switch(!0){case(f===" "&&a(d)):{c.preventDefault(),t.multiSelect&&c.shiftKey?e.expandSelectionRange(c,d):e.selectItem({event:c,itemId:d,keepExistingSelection:t.multiSelect,shouldBeSelected:t.multiSelect?void 0:!0});break}case f==="Enter":{ti(e,Pn)&&e.isItemEditable(d)&&!e.isItemBeingEdited(d)?e.setEditedItemId(d):l(d)?(e.toggleItemExpansion(c,d),c.preventDefault()):a(d)&&(t.multiSelect?(c.preventDefault(),e.selectItem({event:c,itemId:d,keepExistingSelection:!0})):e.isItemSelected(d)||(e.selectItem({event:c,itemId:d}),c.preventDefault()));break}case f==="ArrowDown":{const g=aa(e,d);g&&(c.preventDefault(),e.focusItem(c,g),t.multiSelect&&c.shiftKey&&a(g)&&e.selectItemFromArrowNavigation(c,d,g));break}case f==="ArrowUp":{const g=Ib(e,d);g&&(c.preventDefault(),e.focusItem(c,g),t.multiSelect&&c.shiftKey&&a(g)&&e.selectItemFromArrowNavigation(c,d,g));break}case(f==="ArrowRight"&&!r||f==="ArrowLeft"&&r):{if(h)return;if(e.isItemExpanded(d)){const g=aa(e,d);g&&(e.focusItem(c,g),c.preventDefault())}else l(d)&&(e.toggleItemExpansion(c,d),c.preventDefault());break}case(f==="ArrowLeft"&&!r||f==="ArrowRight"&&r):{if(h)return;if(l(d)&&e.isItemExpanded(d))e.toggleItemExpansion(c,d),c.preventDefault();else{const g=e.getItemMeta(d).parentId;g&&(e.focusItem(c,g),c.preventDefault())}break}case f==="Home":{a(d)&&t.multiSelect&&h&&c.shiftKey?e.selectRangeFromStartToItem(c,d):e.focusItem(c,us(e)),c.preventDefault();break}case f==="End":{a(d)&&t.multiSelect&&h&&c.shiftKey?e.selectRangeFromItemToEnd(c,d):e.focusItem(c,Ab(e)),c.preventDefault();break}case f==="*":{e.expandAllSiblings(c,d),c.preventDefault();break}case(String.fromCharCode(c.keyCode)==="A"&&h&&t.multiSelect&&!t.disableSelection):{e.selectAllNavigableItems(c),c.preventDefault();break}case(!h&&!c.shiftKey&&K9(f)):{const g=s(d,f);g!=null&&(e.focusItem(c,g),c.preventDefault());break}}}}}};Mb.params={};const Bb=({slots:e,slotProps:t})=>({contextValue:{icons:{slots:{collapseIcon:e.collapseIcon,expandIcon:e.expandIcon,endIcon:e.endIcon},slotProps:{collapseIcon:t.collapseIcon,expandIcon:t.expandIcon,endIcon:t.endIcon}}}});Bb.params={};const Q9=[ws,kl,Il,qd,Mb,Bb,Pn],X9=["ownerState"];function Z9({slots:e,slotProps:t,label:n,id:r,itemId:i,itemsToRender:o}){const s=e?.item??E9,a=ur({elementType:s,externalSlotProps:t?.item,additionalProps:{itemId:i,id:r,label:n},ownerState:{itemId:i,label:n}}),l=Wt(a,X9),u=A.useMemo(()=>o?p.jsx(jb,{itemsToRender:o,slots:e,slotProps:t}):null,[o,e,t]);return p.jsx(s,de({},l,{children:u}))}function jb(e){const{itemsToRender:t,slots:n,slotProps:r}=e;return p.jsx(A.Fragment,{children:t.map(i=>p.jsx(Z9,{slots:n,slotProps:r,label:i.label,id:i.id,itemId:i.itemId,itemsToRender:i.children},i.itemId))})}const J9=Tb(),eO=e=>{const{classes:t}=e;return ze({root:["root"]},A9,t)},tO=ce("ul",{name:"MuiRichTreeView",slot:"Root",overridesResolver:(e,t)=>t.root})({padding:0,margin:0,listStyle:"none",outline:0,position:"relative"}),nO=A.forwardRef(function(t,n){const r=J9({props:t,name:"MuiRichTreeView"}),{getRootProps:i,contextValue:o,instance:s}=F9({plugins:Q9,rootRef:n,props:r}),{slots:a,slotProps:l}=r,u=eO(r),c=a?.root??tO,d=ur({elementType:c,externalSlotProps:l?.root,className:u.root,getSlotProps:i,ownerState:r});return p.jsx(Z7,{value:o,children:p.jsx(c,de({},d,{children:p.jsx(jb,{slots:a,slotProps:l,itemsToRender:s.getItemsToRender()})}))})}),rO=it(p.jsx("path",{d:"m9.17 6 2 2H20v10H4V6zM10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"})),iO=it([p.jsx("path",{d:"M19 5v14H5V5zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2"},"0"),p.jsx("path",{d:"M14 17H7v-2h7zm3-4H7v-2h10zm0-4H7V7h10z"},"1")]),oO=it(p.jsx("path",{d:"M19 15v4H5v-4zm1-2H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1M7 18.5c-.82 0-1.5-.67-1.5-1.5s.68-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5M19 5v4H5V5zm1-2H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1M7 8.5c-.82 0-1.5-.67-1.5-1.5S6.18 5.5 7 5.5s1.5.68 1.5 1.5S7.83 8.5 7 8.5"})),sO=it(p.jsx("path",{d:"M15 4v2h3v12h-3v2h5V4zM4 20h5v-2H6V6h3V4H4z"}));function Hb({items:e,defaultExpandedItems:t,onClickTreeNode:n}){return p.jsx(nO,{items:dO(e,n),defaultExpandedItems:t,slots:{item:cO}})}const aO=dm.animated(ls);function lO(e){const t=dm.useSpring({to:{opacity:e.in?1:0,transform:`translate3d(0,${e.in?0:20}px,0)`}});return p.jsx(aO,{style:t,...e})}function uO({item:e,...t}){const n=p.jsxs(k9,{...t,sx:{display:"flex",alignItems:"center",color:e.error?"error.main":"grey.600"},children:[e.fileType==="directory"&&p.jsx(rO,{})||e.fileType==="notebook"&&p.jsx(iO,{})||e.fileType==="model"&&p.jsx(sO,{})||e.fileType=="database"&&p.jsx(oO,{})||p.jsx(gb,{}),p.jsx(v.Typography,{variant:"body2",sx:{marginLeft:"5px"},color:e.error?"error.main":e.link?"primary.main":"grey.600",children:e.label})]});return e.error?p.jsx(v.Tooltip,{title:e.error,placement:"right",children:n}):n}const cO=A.forwardRef(function(t,n){const{id:r,itemId:i,label:o,children:s,disabled:a,...l}=t,{getRootProps:u,getContentProps:c,getLabelProps:d,getIconContainerProps:h,getGroupTransitionProps:f,status:g,publicAPI:x}=o9({id:r,itemId:i,children:s,label:o,disabled:a,rootRef:n}),b=x.getItem(i);return g.selected=!1,g.focused=!1,p.jsx($d,{itemId:i,children:p.jsxs(v9,{...u(l),children:[p.jsxs(S9,{...c(),...b.link&&{onClick:y=>b.link(y)},sx:{pointerEvents:!b.selectable&&"none"},children:[p.jsx(I9,{...h(),children:p.jsx(C9,{status:g})}),p.jsx(uO,{...d({item:b})})]}),s&&p.jsx(lO,{...f()})]})})});function dO(e,t){const n=new Map;return e.map(r=>{let i=n;const o=r.path.split("/");o.forEach((s,a)=>{a===o.length-1?i.set(s,r):(i.has(s)||i.set(s,new Map),i=i.get(s))})}),Ub(n,"",t)}function Ub(e,t,n){const r=[];return e.forEach((i,o)=>{const s=o.endsWith(".malloy")&&"model"||o.endsWith(".malloynb")&&"notebook"||o.endsWith(".parquet")&&"database"||"unknown";if(s!=="unknown"){const a=i;r.push({id:t+o,label:o,fileType:s,link:s==="model"||s==="notebook"?l=>n(t+o,l):void 0,selectable:s==="model"||s==="notebook",error:"error"in a?a.error:void 0})}else{const a=t+o+"/";r.push({id:a,label:o,fileType:"directory",selectable:!0,link:void 0,children:Ub(i,a,n)})}}),r}const pO=["notebooks/","models/"];function $b({onClickModelFile:e,resourceUri:t}){const{projectName:n,packageName:r,versionId:i}=ct(t),{apiClients:o}=Je.useServer(),{data:s,isError:a,error:l,isSuccess:u}=Qt({queryKey:["models",n,r,i],queryFn:()=>o.models.listModels(n,r,i)});return p.jsx(Or,{children:p.jsxs(Fr,{children:[p.jsx(ai,{children:"Semantic Models"}),p.jsxs(v.Box,{sx:{maxHeight:"200px",overflowY:"auto"},children:[!u&&!a&&p.jsx(Kt,{text:"Fetching Models..."}),a&&p.jsx(sn,{error:l,context:`${n} > ${r} > Models`}),u&&s.data.length>0&&p.jsx(Hb,{items:s.data.sort((c,d)=>c.path.localeCompare(d.path)),onClickTreeNode:e,defaultExpandedItems:pO}),u&&s.data.length===0&&p.jsx(v.Typography,{variant:"body2",children:"No models found"})]})]})})}const fO=["notebooks/"];function hO({onClickNotebookFile:e,resourceUri:t}){const{apiClients:n}=Je.useServer(),{projectName:r,packageName:i,versionId:o}=ct(t),{data:s,isError:a,error:l,isSuccess:u}=Qt({queryKey:["notebooks",r,i,o],queryFn:()=>n.notebooks.listNotebooks(r,i,o)});return p.jsx(Or,{children:p.jsxs(Fr,{children:[p.jsx(ai,{children:"Notebooks"}),p.jsxs(v.Box,{sx:{maxHeight:"200px",overflowY:"auto"},children:[!u&&!a&&p.jsx(Kt,{text:"Fetching Notebooks..."}),a&&p.jsx(sn,{error:l,context:`${r} > ${i} > Notebooks`}),u&&s.data.length>0&&p.jsx(Hb,{items:s.data.sort((c,d)=>c.path.localeCompare(d.path)),defaultExpandedItems:fO,onClickTreeNode:e}),u&&s.data.length===0&&p.jsx(v.Typography,{variant:"body2",children:"No notebooks found"})]})]})})}const mO="README.malloynb";function gO({onClickPackageFile:e,resourceUri:t}){e||(e=r=>{window.location.href=r});const n=tl({...ct(t),modelPath:mO});return p.jsx(p.Fragment,{children:p.jsxs(v.Grid,{container:!0,spacing:3,columns:12,children:[p.jsx(v.Grid,{size:{xs:12,md:4},children:p.jsx(jL,{resourceUri:t})}),p.jsx(v.Grid,{size:{xs:12,md:4},children:p.jsx(hO,{onClickNotebookFile:e,resourceUri:t})}),p.jsx(v.Grid,{size:{xs:12,md:4},children:p.jsx($b,{onClickModelFile:e,resourceUri:t})}),p.jsx(v.Grid,{size:{xs:12,md:6},children:p.jsx(D7,{resourceUri:t})}),p.jsx(v.Grid,{size:{xs:12,md:6},children:p.jsx(w7,{resourceUri:t})}),p.jsx(v.Grid,{size:{xs:12,md:12},children:p.jsx(Or,{children:p.jsxs(Fr,{children:[p.jsx(ai,{children:"README"}),p.jsx(v.Box,{sx:{mt:1},children:p.jsx(X0,{resourceUri:n})})]})})})]})})}function bO({resourceUri:e}){const{projectName:t}=ct(e),{apiClients:n}=Je.useServer(),[r,i]=B.useState(!1),o=90,{data:s,isSuccess:a,isError:l,error:u}=Qt({queryKey:["about",t],queryFn:()=>n.projects.getProject(t,!1)}),c=s?.data?.readme||"",d=c.split(/\s+/),h=d.length>o,f=d.slice(0,o).join(" ");return p.jsxs(p.Fragment,{children:[!a&&!l&&p.jsx(Kt,{text:"Fetching About..."}),a&&c&&p.jsx(Or,{children:p.jsxs(Fr,{children:[p.jsx(ai,{children:"Readme"}),p.jsxs(v.Box,{sx:{mt:1,fontSize:"0.875rem",lineHeight:1.6},children:[p.jsx(ua,{options:{overrides:{h1:{component:"p",props:{style:{fontSize:"inherit",fontWeight:"italic"}}},h2:{component:"p",props:{style:{fontSize:"inherit",fontWeight:"italic"}}},h3:{component:"p",props:{style:{fontSize:"inherit",fontWeight:"italic"}}}}},children:r||!h?c:f}),h&&p.jsxs(v.Box,{sx:{mt:1},children:[" ",p.jsx(v.Button,{variant:"text",size:"small",onClick:()=>i(!r),children:r?"Read less":"Read more"})]})]})]})}),l&&p.jsx(sn,{error:u,context:`${t} > About`})]})}function xO({resourceUri:e}){const[t,n]=B.useState(!1),{apiClients:r}=Je.useServer(),i=mr.useQueryClient(),[o,s]=B.useState(""),a=()=>{n(!0)},l=()=>{n(!1)},{projectName:u}=ct(e),c=Yn({async mutationFn(h){return r.packages.createPackage(u,{name:h.name,description:h.description,location:h.location})},onSuccess(){l(),s("Package created successfully"),i.invalidateQueries({queryKey:["packages",u]})},onError(h){s(h instanceof Error?h.message:"An unknown error occurred")}}),d=h=>{h.preventDefault();const f=new FormData(h.currentTarget),g=f.get("name")?.toString(),x=f.get("description")?.toString(),b=f.get("location")?.toString();c.mutate({name:g,description:x,location:b})};return p.jsxs(B.Fragment,{children:[p.jsx(Dt,{onClick:a,variant:"contained",color:"primary",startIcon:p.jsx(pn.Add,{}),sx:{color:"white"},children:"Add Package"}),p.jsxs(xr,{open:t,onClose:l,children:[p.jsx(Cr,{children:"Create New Package"}),p.jsxs(Er,{children:[p.jsxs(ao,{children:["Create a new malloy package to start exploring your data.",p.jsx("br",{}),p.jsx("br",{}),"The location can be a GitHub/S3/GCP URL containing a package (Zipped or unzipped), or an absolute path to a directory that the publisher server has access to.",p.jsx("br",{}),p.jsx("br",{}),"Make sure to conform the"," ",p.jsx("a",{href:"https://github.com/malloydata/publisher/blob/main/README.md#architecture-overview",target:"_blank",rel:"noopener noreferrer",children:"Malloy Package Format"}),"."]}),p.jsxs("form",{onSubmit:d,id:"package-form",children:[p.jsx(Yt,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Package Name",type:"text",fullWidth:!0,variant:"standard"}),p.jsx(Yt,{id:"description",name:"description",label:"Description",multiline:!0,fullWidth:!0,rows:4,variant:"standard"}),p.jsx(Yt,{id:"location",name:"location",label:"Location",type:"text",placeholder:"E.g. s3://my-bucket/my-package.zip",fullWidth:!0,variant:"standard"})]})]}),p.jsxs(yr,{children:[p.jsx(Dt,{disabled:c.isPending,onClick:l,children:"Cancel"}),p.jsx(Dt,{type:"submit",form:"package-form",loading:c.isPending,children:"Save Changes"})]})]}),p.jsx(v.Snackbar,{open:o!=="",autoHideDuration:6e3,onClose:()=>s(""),message:o})]})}function yO({resourceUri:e,onCloseDialog:t}){const[n,r]=B.useState(!1),{apiClients:i}=Je.useServer(),o=mr.useQueryClient(),[s,a]=B.useState(""),l=()=>{r(!0)},u=()=>{r(!1),t()},{projectName:c,packageName:d}=ct(e),h=Yn({mutationFn:()=>i.packages.deletePackage(c,d),onSuccess(){u(),o.invalidateQueries({queryKey:["packages"]}),a("Package deleted successfully")},onError(f){a(f instanceof Error?f.message:"An unknown error occurred")}});return p.jsxs(B.Fragment,{children:[p.jsxs(v.MenuItem,{onClick:l,children:[p.jsx(v.ListItemIcon,{children:p.jsx(pn.Delete,{fontSize:"small"})}),p.jsx(v.ListItemText,{children:"Delete"})]}),p.jsxs(xr,{onClose:u,"aria-labelledby":"customized-dialog-title",open:n,children:[p.jsx(Cr,{sx:{m:0,p:2},id:"customized-dialog-title",children:"Delete Package"}),p.jsx(Ui,{"aria-label":"close",onClick:u,sx:f=>({position:"absolute",right:8,top:8,color:f.palette.grey[500]}),children:p.jsx(Lr,{})}),p.jsx(Er,{dividers:!0,children:p.jsxs(As,{gutterBottom:!0,children:['Are you sure you want to delete "',d,'"? This action cannot be undone.']})}),p.jsxs(yr,{children:[p.jsx(Dt,{variant:"outlined",onClick:u,style:{borderColor:"#14b3cb",color:"#14b3cb"},children:"Cancel"}),p.jsx(Dt,{variant:"contained",autoFocus:!0,onClick:()=>h.mutate(),color:"error",loading:h.isPending,children:"Delete"})]}),p.jsx(v.Snackbar,{open:s!=="",autoHideDuration:6e3,onClose:()=>a(""),message:s})]})]})}function EO({package:e,resourceUri:t,onCloseDialog:n}){const[r,i]=B.useState(!1),{apiClients:o}=Je.useServer(),s=mr.useQueryClient(),[a,l]=B.useState(""),u=()=>{i(!0)},c=()=>{i(!1),n()},{packageName:d,projectName:h}=ct(t),f=Yn({async mutationFn(x){return o.packages.updatePackage(h,d,{name:d,description:x.description})},onSuccess(){c(),l("Package updated successfully"),s.invalidateQueries({queryKey:["packages",h]})},onError(x){l(x instanceof Error?x.message:"An unknown error occurred")}}),g=x=>{x.preventDefault();const y=new FormData(x.currentTarget).get("description")?.toString();f.mutate({description:y})};return p.jsxs(B.Fragment,{children:[p.jsxs(v.MenuItem,{onClick:u,children:[p.jsx(v.ListItemIcon,{children:p.jsx(pn.Edit,{fontSize:"small"})}),p.jsx(v.ListItemText,{children:"Edit"})]}),p.jsxs(xr,{open:r,onClose:c,children:[p.jsx(Cr,{children:"Edit Package"}),p.jsxs(Er,{children:[p.jsxs(ao,{children:['Update the details for "',e.name,'".']}),p.jsxs("form",{onSubmit:g,id:"package-form",children:[p.jsx(Yt,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Package Name",disabled:!0,type:"text",fullWidth:!0,variant:"standard",defaultValue:e.name}),p.jsx(Yt,{id:"description",name:"description",label:"Description",multiline:!0,fullWidth:!0,rows:4,defaultValue:e.description,variant:"standard"})]})]}),p.jsxs(yr,{children:[p.jsx(Dt,{disabled:f.isPending,onClick:c,children:"Cancel"}),p.jsx(Dt,{type:"submit",form:"package-form",loading:f.isPending,children:"Save Changes"})]})]}),p.jsx(v.Snackbar,{open:a!=="",autoHideDuration:6e3,onClose:()=>l(""),message:a})]})}const CO=({package:e,resourceUri:t})=>{const{mutable:n}=Je.useServer(),[r,i]=B.useState(null),o=!!r,s=l=>{i(l.currentTarget)},a=()=>{i(null)};return p.jsx(p.Fragment,{children:n&&p.jsxs(p.Fragment,{children:[p.jsx(v.IconButton,{onClick:l=>{l.stopPropagation(),s(l)},"aria-controls":o?"package-menu":void 0,"aria-haspopup":"true","aria-expanded":o?"true":void 0,children:p.jsx(pn.MoreVert,{fontSize:"small"})}),p.jsxs(v.Menu,{id:"package-menu","aria-haspopup":"true","aria-expanded":o?"true":void 0,open:o,anchorEl:r,onClose:a,disableRestoreFocus:!0,anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"right"},onClick:l=>{l.stopPropagation()},children:[p.jsx(EO,{package:e,resourceUri:t,onCloseDialog:a}),p.jsx(yO,{resourceUri:t,onCloseDialog:a})]})]})})};function zb({onSelectPackage:e,resourceUri:t}){const{apiClients:n}=Je.useServer(),{projectName:r}=ct(t),{data:i,isSuccess:o,isError:s,error:a}=Qt({queryKey:["packages",r],queryFn:()=>n.packages.listPackages(r)});return p.jsxs(p.Fragment,{children:[!o&&!s&&p.jsx(Kt,{text:"Fetching Packages..."}),o&&p.jsx(v.Grid,{container:!0,spacing:3,columns:12,children:i.data.sort((l,u)=>l.name.localeCompare(u.name)).map(l=>{const u=tl({projectName:r,packageName:l.name});return p.jsx(v.Grid,{size:{xs:12,sm:12,md:12,lg:4},children:p.jsx(Or,{sx:{cursor:"pointer",transition:"all 0.2s ease-in-out",paddingTop:"8px","&:hover":{boxShadow:"0 2px 6px rgba(0, 0, 0, 0.08)",transform:"translateY(-1px)"}},onClick:c=>{e(l.name,c)},children:p.jsxs(Fr,{children:[p.jsxs(v.Box,{display:"flex",alignItems:"center",justifyContent:"space-between",sx:{marginBottom:"8px"},children:[p.jsx(v.Typography,{variant:"overline",sx:{fontSize:"12px",fontWeight:"600",color:"primary.main",textTransform:"uppercase",letterSpacing:"0.5px"},children:l.name}),p.jsx(CO,{package:l,resourceUri:u})]}),p.jsx(v.Divider,{sx:{mb:2}}),p.jsx(v.Box,{sx:{maxHeight:"120px",overflowY:"auto",mt:2},children:p.jsx(v.Typography,{variant:"body2",children:l.description})})]})})},l.name)})}),s&&p.jsx(sn,{error:a,context:`${r} > Packages`})]})}function TO({onSelectPackage:e,resourceUri:t}){const{mutable:n}=Je.useServer(),{projectName:r}=ct(t);return B.useEffect(()=>{window.scrollTo({top:0,behavior:"auto"})},[]),p.jsx(p.Fragment,{children:p.jsxs($T,{children:[p.jsxs(v.Box,{display:"flex",justifyContent:"space-between",alignItems:"center",mb:2,children:[p.jsxs(v.Typography,{variant:"h6",children:[r," packages"]}),n&&p.jsx(xO,{resourceUri:t})]}),p.jsxs(v.Grid,{container:!0,spacing:3,columns:12,children:[p.jsx(v.Grid,{size:{xs:12,md:12},children:p.jsx(zb,{onSelectPackage:e,resourceUri:t})}),p.jsx(v.Grid,{size:{xs:12,md:12},children:p.jsx(bO,{resourceUri:t})})]})]})})}const vO=it(p.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2M8 17c-.55 0-1-.45-1-1v-3c0-.55.45-1 1-1s1 .45 1 1v3c0 .55-.45 1-1 1m4 0c-.55 0-1-.45-1-1v-1c0-.55.45-1 1-1s1 .45 1 1v1c0 .55-.45 1-1 1m0-5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m4 5c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8c0 .55-.45 1-1 1"})),SO=it(p.jsx("path",{d:"M5 13h11.17l-4.88 4.88c-.39.39-.39 1.03 0 1.42s1.02.39 1.41 0l6.59-6.59c.39-.39.39-1.02 0-1.41l-6.58-6.6a.996.996 0 0 0-1.41 0c-.39.39-.39 1.02 0 1.41L16.17 11H5c-.55 0-1 .45-1 1s.45 1 1 1"})),lm=it(p.jsx("path",{d:"m19.46 8 .79-1.75L22 5.46c.39-.18.39-.73 0-.91l-1.75-.79L19.46 2c-.18-.39-.73-.39-.91 0l-.79 1.75-1.76.79c-.39.18-.39.73 0 .91l1.75.79.79 1.76c.18.39.74.39.92 0M11.5 9.5 9.91 6c-.35-.78-1.47-.78-1.82 0L6.5 9.5 3 11.09c-.78.36-.78 1.47 0 1.82l3.5 1.59L8.09 18c.36.78 1.47.78 1.82 0l1.59-3.5 3.5-1.59c.78-.36.78-1.47 0-1.82zm7.04 6.5-.79 1.75-1.75.79c-.39.18-.39.73 0 .91l1.75.79.79 1.76c.18.39.73.39.91 0l.79-1.75 1.76-.79c.39-.18.39-.73 0-.91l-1.75-.79-.79-1.76c-.18-.39-.74-.39-.92 0"})),kO=it(p.jsx("path",{d:"M8.7 15.9 4.8 12l3.9-3.9c.39-.39.39-1.01 0-1.4a.984.984 0 0 0-1.4 0l-4.59 4.59c-.39.39-.39 1.02 0 1.41l4.59 4.6c.39.39 1.01.39 1.4 0s.39-1.01 0-1.4m6.6 0 3.9-3.9-3.9-3.9a.984.984 0 0 1 0-1.4c.39-.39 1.01-.39 1.4 0l4.59 4.59c.39.39.39 1.02 0 1.41l-4.59 4.6c-.39.39-1.01.39-1.4 0a.984.984 0 0 1 0-1.4"})),IO=it(p.jsx("path",{d:"M12 10.9c-.61 0-1.1.49-1.1 1.1s.49 1.1 1.1 1.1 1.1-.49 1.1-1.1-.49-1.1-1.1-1.1M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m2.19 12.19L6 18l3.81-8.19L18 6z"})),AO=it([p.jsx("path",{d:"M13 8.57c-.79 0-1.43.64-1.43 1.43s.64 1.43 1.43 1.43 1.43-.64 1.43-1.43-.64-1.43-1.43-1.43"},"0"),p.jsx("path",{d:"M13.21 3c-3.84-.11-7 2.87-7.19 6.64L4.1 12.2c-.25.33-.01.8.4.8H6v3c0 1.1.9 2 2 2h1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3.68c2.44-1.16 4.1-3.68 4-6.58-.14-3.62-3.18-6.63-6.79-6.74M16 10c0 .13-.01.26-.02.39l.83.66c.08.06.1.16.05.25l-.8 1.39c-.05.09-.16.12-.24.09l-.99-.4c-.21.16-.43.29-.67.39L14 13.83c-.01.1-.1.17-.2.17h-1.6c-.1 0-.18-.07-.2-.17l-.15-1.06c-.25-.1-.47-.23-.68-.39l-.99.4c-.09.03-.2 0-.25-.09l-.8-1.39c-.05-.08-.03-.19.05-.25l.84-.66c-.01-.13-.02-.26-.02-.39s.02-.27.04-.39l-.85-.66c-.08-.06-.1-.16-.05-.26l.8-1.38c.05-.09.15-.12.24-.09l1 .4c.2-.15.43-.29.67-.39L12 6.17c.02-.1.1-.17.2-.17h1.6c.1 0 .18.07.2.17l.15 1.06c.24.1.46.23.67.39l1-.4c.09-.03.2 0 .24.09l.8 1.38c.05.09.03.2-.05.26l-.85.66c.03.12.04.25.04.39"},"1")]),um=it(p.jsx("path",{d:"M4 20h16c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2s.9 2 2 2m0-3h2v2H4zM2 6c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2m4 1H4V5h2zm-2 7h16c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2s.9 2 2 2m0-3h2v2H4z"})),qb=e=>{if(!e)return"Explore semantic models, run queries, and build dashboards";const t=e.replace(/^#+\s+/gm,"").replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/`([^`]+)`/g,"$1").trim(),r=t.split(/\n\s*\n/)[1]||t;if(r.length<=120)return r;const i=r.substring(0,120).split(" ");return i.pop(),i.join(" ")+"..."},Wb=(e,t)=>{const n=(e.readme||void 0)?.split(`
|
|
212
212
|
`)??[];return n.length===0&&(n.push(`# ${e.name}`),n.push("")),(e.readme?.length??0)>0&&t?n.splice(2,1,t):t&&n.push(t),n.join(`
|
|
213
213
|
`)};function wO(e={}){const{autoHideDuration:t=null,disableWindowBlurListener:n=!1,onClose:r,open:i,resumeHideDuration:o}=e,s=ul();A.useEffect(()=>{if(!i)return;function y(C){C.defaultPrevented||C.key==="Escape"&&r?.(C,"escapeKeyDown")}return document.addEventListener("keydown",y),()=>{document.removeEventListener("keydown",y)}},[i,r]);const a=wt((y,C)=>{r?.(y,C)}),l=wt(y=>{!r||y==null||s.start(y,()=>{a(null,"timeout")})});A.useEffect(()=>(i&&l(t),s.clear),[i,t,l,s]);const u=y=>{r?.(y,"clickaway")},c=s.clear,d=A.useCallback(()=>{t!=null&&l(o??t*.5)},[t,o,l]),h=y=>C=>{const E=y.onBlur;E?.(C),d()},f=y=>C=>{const E=y.onFocus;E?.(C),c()},g=y=>C=>{const E=y.onMouseEnter;E?.(C),c()},x=y=>C=>{const E=y.onMouseLeave;E?.(C),d()};return A.useEffect(()=>{if(!n&&i)return window.addEventListener("focus",d),window.addEventListener("blur",c),()=>{window.removeEventListener("focus",d),window.removeEventListener("blur",c)}},[n,i,d,c]),{getRootProps:(y={})=>{const C={...Jt(e),...Jt(y)};return{role:"presentation",...y,...C,onBlur:h(C),onFocus:f(C),onMouseEnter:g(C),onMouseLeave:x(C)}},onClickAway:u}}function cm(e){return e.substring(2).toLowerCase()}function DO(e,t){return t.documentElement.clientWidth<e.clientX||t.documentElement.clientHeight<e.clientY}function _O(e){const{children:t,disableReactTree:n=!1,mouseEvent:r="onClick",onClickAway:i,touchEvent:o="onTouchEnd"}=e,s=A.useRef(!1),a=A.useRef(null),l=A.useRef(!1),u=A.useRef(!1);A.useEffect(()=>(setTimeout(()=>{l.current=!0},0),()=>{l.current=!1}),[]);const c=mt(Xi(t),a),d=wt(g=>{const x=u.current;u.current=!1;const b=Ut(a.current);if(!l.current||!a.current||"clientX"in g&&DO(g,b))return;if(s.current){s.current=!1;return}let y;g.composedPath?y=g.composedPath().includes(a.current):y=!b.documentElement.contains(g.target)||a.current.contains(g.target),!y&&(n||!x)&&i(g)}),h=g=>x=>{u.current=!0;const b=t.props[g];b&&b(x)},f={ref:c};return o!==!1&&(f[o]=h(o)),A.useEffect(()=>{if(o!==!1){const g=cm(o),x=Ut(a.current),b=()=>{s.current=!0};return x.addEventListener(g,d),x.addEventListener("touchmove",b),()=>{x.removeEventListener(g,d),x.removeEventListener("touchmove",b)}}},[d,o]),r!==!1&&(f[r]=h(r)),A.useEffect(()=>{if(r!==!1){const g=cm(r),x=Ut(a.current);return x.addEventListener(g,d),()=>{x.removeEventListener(g,d)}}},[d,r]),A.cloneElement(t,f)}function PO(e){return qe("MuiSnackbarContent",e)}Me("MuiSnackbarContent",["root","message","action"]);const RO=e=>{const{classes:t}=e;return ze({root:["root"],action:["action"],message:["message"]},PO,t)},NO=ce(Zi,{name:"MuiSnackbarContent",slot:"Root"})(Xe(({theme:e})=>{const t=e.palette.mode==="light"?.8:.98;return{...e.typography.body2,color:e.vars?e.vars.palette.SnackbarContent.color:e.palette.getContrastText(_u(e.palette.background.default,t)),backgroundColor:e.vars?e.vars.palette.SnackbarContent.bg:_u(e.palette.background.default,t),display:"flex",alignItems:"center",flexWrap:"wrap",padding:"6px 16px",flexGrow:1,[e.breakpoints.up("sm")]:{flexGrow:"initial",minWidth:288}}})),LO=ce("div",{name:"MuiSnackbarContent",slot:"Message"})({padding:"8px 0"}),OO=ce("div",{name:"MuiSnackbarContent",slot:"Action"})({display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:16,marginRight:-8}),FO=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiSnackbarContent"}),{action:i,className:o,message:s,role:a="alert",...l}=r,u=r,c=RO(u);return p.jsxs(NO,{role:a,elevation:6,className:De(c.root,o),ownerState:u,ref:n,...l,children:[p.jsx(LO,{className:c.message,ownerState:u,children:s}),i?p.jsx(OO,{className:c.action,ownerState:u,children:i}):null]})});function MO(e){return qe("MuiSnackbar",e)}Me("MuiSnackbar",["root","anchorOriginTopCenter","anchorOriginBottomCenter","anchorOriginTopRight","anchorOriginBottomRight","anchorOriginTopLeft","anchorOriginBottomLeft"]);const BO=e=>{const{classes:t,anchorOrigin:n}=e,r={root:["root",`anchorOrigin${me(n.vertical)}${me(n.horizontal)}`]};return ze(r,MO,t)},jO=ce("div",{name:"MuiSnackbar",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`anchorOrigin${me(n.anchorOrigin.vertical)}${me(n.anchorOrigin.horizontal)}`]]}})(Xe(({theme:e})=>({zIndex:(e.vars||e).zIndex.snackbar,position:"fixed",display:"flex",left:8,right:8,justifyContent:"center",alignItems:"center",variants:[{props:({ownerState:t})=>t.anchorOrigin.vertical==="top",style:{top:8,[e.breakpoints.up("sm")]:{top:24}}},{props:({ownerState:t})=>t.anchorOrigin.vertical!=="top",style:{bottom:8,[e.breakpoints.up("sm")]:{bottom:24}}},{props:({ownerState:t})=>t.anchorOrigin.horizontal==="left",style:{justifyContent:"flex-start",[e.breakpoints.up("sm")]:{left:24,right:"auto"}}},{props:({ownerState:t})=>t.anchorOrigin.horizontal==="right",style:{justifyContent:"flex-end",[e.breakpoints.up("sm")]:{right:24,left:"auto"}}},{props:({ownerState:t})=>t.anchorOrigin.horizontal==="center",style:{[e.breakpoints.up("sm")]:{left:"50%",right:"auto",transform:"translateX(-50%)"}}}]}))),HO=A.forwardRef(function(t,n){const r=Ge({props:t,name:"MuiSnackbar"}),i=Gi(),o={enter:i.transitions.duration.enteringScreen,exit:i.transitions.duration.leavingScreen},{action:s,anchorOrigin:{vertical:a,horizontal:l}={vertical:"bottom",horizontal:"left"},autoHideDuration:u=null,children:c,className:d,ClickAwayListenerProps:h,ContentProps:f,disableWindowBlurListener:g=!1,message:x,onBlur:b,onClose:y,onFocus:C,onMouseEnter:E,onMouseLeave:S,open:I,resumeHideDuration:k,slots:F={},slotProps:z={},TransitionComponent:U,transitionDuration:D=o,TransitionProps:{onEnter:j,onExited:T,...L}={},...N}=r,M={...r,anchorOrigin:{vertical:a,horizontal:l},autoHideDuration:u,disableWindowBlurListener:g,TransitionComponent:U,transitionDuration:D},H=BO(M),{getRootProps:X,onClickAway:ue}=wO({...M}),[$,_]=A.useState(!0),te=ve=>{_(!0),T&&T(ve)},oe=(ve,ne)=>{_(!1),j&&j(ve,ne)},P={slots:{transition:U,...F},slotProps:{content:f,clickAwayListener:h,transition:L,...z}},[Ee,se]=nt("root",{ref:n,className:[H.root,d],elementType:jO,getSlotProps:X,externalForwardedProps:{...P,...N},ownerState:M}),[q,{ownerState:re,...ie}]=nt("clickAwayListener",{elementType:_O,externalForwardedProps:P,getSlotProps:ve=>({onClickAway:(...ne)=>{const Be=ne[0];ve.onClickAway?.(...ne),!Be?.defaultMuiPrevented&&ue(...ne)}}),ownerState:M}),[Te,K]=nt("content",{elementType:FO,shouldForwardComponentProp:!0,externalForwardedProps:P,additionalProps:{message:x,action:s},ownerState:M}),[W,Ce]=nt("transition",{elementType:Pa,externalForwardedProps:P,getSlotProps:ve=>({onEnter:(...ne)=>{ve.onEnter?.(...ne),oe(...ne)},onExited:(...ne)=>{ve.onExited?.(...ne),te(...ne)}}),additionalProps:{appear:!0,in:I,timeout:D,direction:a==="top"?"down":"up"},ownerState:M});return!I&&$?null:p.jsx(q,{...ie,...F.clickAwayListener&&{ownerState:re},children:p.jsx(Ee,{...se,children:p.jsx(W,{...Ce,children:c||p.jsx(Te,{...K})})})})});function UO(){const[e,t]=B.useState(!1),{apiClients:n}=Je.useServer(),[r,i]=B.useState(""),o=()=>{t(!0)},s=()=>{t(!1)},a=mr.useQueryClient(),l=Yn({async mutationFn(c){return n.projects.createProject({name:c.name,readme:Wb({name:c.name,readme:""},c.description)})},onSuccess(){s(),a.invalidateQueries({queryKey:["projects"]}),i("Project created successfully")},onError(c){i(c instanceof Error?c.message:"An unknown error occurred")}}),u=async c=>{c.preventDefault();const d=new FormData(c.currentTarget),h=d.get("name")?.toString(),f=d.get("description")?.toString();if(!h)throw new Error("Name is required");l.mutate({name:h,description:f})};return p.jsxs(B.Fragment,{children:[p.jsx(Dt,{variant:"contained",onClick:o,startIcon:p.jsx(pn.AddCircleRounded,{}),sx:{mt:2,color:"white"},children:"Create New Project"}),p.jsxs(xr,{open:e,onClose:s,children:[p.jsx(Cr,{children:"Create New Project"}),p.jsxs(Er,{children:[p.jsx(ao,{children:"Add a new project to start exploring semantic models and analyzing data."}),p.jsxs("form",{onSubmit:u,id:"project-form",children:[p.jsx(Yt,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Project Name",type:"text",fullWidth:!0,variant:"standard"}),p.jsx(Yt,{margin:"dense",id:"description",name:"description",label:"Project Description",placeholder:"Explore semantic models, run queries, and build dashboards",type:"text",fullWidth:!0,variant:"standard"})]})]}),p.jsxs(yr,{children:[p.jsx(Dt,{disabled:l.isPending,onClick:s,children:"Cancel"}),p.jsx(Dt,{type:"submit",form:"project-form",loading:l.isPending,children:"Create Project"})]})]}),p.jsx(HO,{open:r!=="",autoHideDuration:6e3,onClose:()=>i(""),message:r})]})}function $O({project:e,onCloseDialog:t}){const[n,r]=B.useState(!1),{apiClients:i}=Je.useServer(),o=mr.useQueryClient(),[s,a]=B.useState(""),l=()=>{r(!0)},u=()=>{r(!1),t()},c=Yn({mutationFn:()=>i.projects.deleteProject(e.name),onSuccess(){u(),o.invalidateQueries({queryKey:["projects"]}),a("Project deleted successfully")},onError(d){a(d instanceof Error?d.message:"An unknown error occurred")}});return p.jsxs(B.Fragment,{children:[p.jsxs(v.MenuItem,{onClick:l,children:[p.jsx(v.ListItemIcon,{children:p.jsx(pn.Delete,{fontSize:"small"})}),p.jsx(v.ListItemText,{children:"Delete"})]}),p.jsxs(xr,{onClose:u,"aria-labelledby":"customized-dialog-title",open:n,children:[p.jsx(Cr,{sx:{m:0,p:2},id:"customized-dialog-title",children:"Delete Project"}),p.jsx(Ui,{"aria-label":"close",onClick:u,sx:d=>({position:"absolute",right:8,top:8,color:d.palette.grey[500]}),children:p.jsx(Lr,{})}),p.jsx(Er,{dividers:!0,children:p.jsxs(As,{gutterBottom:!0,children:['Are you sure you want to delete "',e.name,'"? This action cannot be undone.']})}),p.jsxs(yr,{children:[p.jsx(Dt,{variant:"outlined",onClick:u,style:{borderColor:"#14b3cb",color:"#14b3cb"},children:"Cancel"}),p.jsx(Dt,{loading:c.isPending,variant:"contained",autoFocus:!0,onClick:()=>c.mutate(),color:"error",children:"Delete"})]}),p.jsx(v.Snackbar,{open:s!=="",autoHideDuration:6e3,onClose:()=>a(""),message:s})]})]})}function zO({project:e,onCloseDialog:t}){const[n,r]=B.useState(!1),{apiClients:i}=Je.useServer(),o=mr.useQueryClient(),[s,a]=B.useState(""),l=()=>{r(!0)},u=()=>{r(!1),t()},c=Yn({async mutationFn(h){return i.projects.updateProject(e.name,{name:e.name,readme:Wb({name:e.name,readme:e.readme},h.description)})},onSuccess(){u(),o.invalidateQueries({queryKey:["projects"]}),a("Project updated successfully")},onError(h){a(h instanceof Error?h.message:"An unknown error occurred")}}),d=h=>{h.preventDefault();const g=new FormData(h.currentTarget).get("description")?.toString();c.mutate({description:g})};return p.jsxs(B.Fragment,{children:[p.jsxs(v.MenuItem,{onClick:l,children:[p.jsx(v.ListItemIcon,{children:p.jsx(pn.Edit,{fontSize:"small"})}),p.jsx(v.ListItemText,{children:"Edit"})]}),p.jsxs(xr,{open:n,onClose:u,children:[p.jsx(Cr,{children:"Edit Project"}),p.jsxs(Er,{children:[p.jsx(ao,{children:"Add a new project to start exploring semantic models and analyzing data."}),p.jsxs("form",{onSubmit:d,id:"project-form",children:[p.jsx(Yt,{autoFocus:!0,required:!0,margin:"dense",id:"name",name:"name",label:"Project Name",disabled:!0,type:"text",fullWidth:!0,variant:"standard",defaultValue:e.name}),p.jsx(Yt,{margin:"dense",id:"description",name:"description",label:"Project Description",type:"text",fullWidth:!0,variant:"standard",defaultValue:qb(e.readme)})]})]}),p.jsxs(yr,{children:[p.jsx(Dt,{disabled:c.isPending,onClick:u,children:"Cancel"}),p.jsx(Dt,{type:"submit",form:"project-form",loading:c.isPending,children:"Save Changes"})]})]}),p.jsx(v.Snackbar,{open:s!=="",autoHideDuration:6e3,onClose:()=>a(""),message:s})]})}function qO({onClickProject:e}){const{apiClients:t,mutable:n}=Je.useServer(),{data:r,isSuccess:i,isError:o,error:s}=Qt({queryKey:["projects"],queryFn:()=>t.projects.listProjects()});return o?p.jsx(sn,{error:s,context:"Projects List"}):i?p.jsxs(v.Container,{maxWidth:"lg",sx:{py:4},children:[p.jsxs(v.Box,{sx:{textAlign:"center",mb:6},children:[p.jsxs(v.Stack,{direction:"row",justifyContent:"center",alignItems:"center",spacing:1,sx:{mb:2},children:[p.jsx(lm,{sx:{fontSize:32,color:"primary.main"}}),p.jsx(v.Typography,{variant:"h3",component:"h1",fontWeight:700,children:"Publisher"})]}),p.jsx(v.Typography,{variant:"h5",color:"text.secondary",sx:{mb:3,maxWidth:600,mx:"auto"},children:"The open-source semantic model server for the Malloy data language"}),p.jsx(v.Typography,{variant:"body1",color:"text.secondary",sx:{maxWidth:800,mx:"auto"},children:"Define semantic models once — and use them everywhere. Publisher serves Malloy models through clean APIs, enabling consistent, interpretable, and AI-ready data access for tools, applications, and agents."})]}),p.jsxs(v.Grid,{container:!0,spacing:3,sx:{mb:6},children:[p.jsx(v.Grid,{size:{xs:12,md:4},children:p.jsx(v.Card,{variant:"outlined",onClick:()=>{window.open("https://github.com/malloydata/publisher/blob/main/README.md#ad-hoc-data-analysis","_blank")},sx:{height:"100%",cursor:"pointer",transition:"all 0.2s ease","&:hover":{transform:"translateY(-2px)",boxShadow:2}},children:p.jsxs(v.CardContent,{sx:{p:3},children:[p.jsxs(v.Stack,{direction:"row",alignItems:"center",spacing:1,sx:{mb:2},children:[p.jsx(vO,{sx:{color:"info.main",fontSize:28}}),p.jsx(v.Typography,{variant:"h6",fontWeight:600,children:"Ad Hoc Analysis"})]}),p.jsx(v.Typography,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Use Explorer, a visual query builder that allows analysts to browse semantic sources, build queries, and run nested logic — all without writing code."}),p.jsx(v.Chip,{label:"No-code",size:"small",color:"primary",variant:"outlined"})]})})}),p.jsx(v.Grid,{size:{xs:12,md:4},children:p.jsx(v.Card,{variant:"outlined",onClick:()=>{window.open("https://github.com/malloydata/publisher/blob/main/README.md#notebook-based-dashboards","_blank")},sx:{height:"100%",cursor:"pointer",transition:"all 0.2s ease","&:hover":{transform:"translateY(-2px)",boxShadow:2}},children:p.jsxs(v.CardContent,{sx:{p:3},children:[p.jsxs(v.Stack,{direction:"row",alignItems:"center",spacing:1,sx:{mb:2},children:[p.jsx(kO,{sx:{color:"warning.main",fontSize:28}}),p.jsx(v.Typography,{variant:"h6",fontWeight:600,children:"Notebook Dashboards"})]}),p.jsx(v.Typography,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Create shareable, code-first dashboards using Malloy notebooks. Include text, charts, and reusable views — all versioned alongside your models."}),p.jsx(v.Chip,{label:"Versioned",size:"small",color:"warning",variant:"outlined"})]})})}),p.jsx(v.Grid,{size:{xs:12,md:4},children:p.jsx(v.Card,{variant:"outlined",onClick:()=>{window.open("https://github.com/malloydata/publisher/blob/main/README.md#mcp-based-ai-data-agents","_blank")},sx:{height:"100%",cursor:"pointer",transition:"all 0.2s ease","&:hover":{transform:"translateY(-2px)",boxShadow:2}},children:p.jsxs(v.CardContent,{sx:{p:3},children:[p.jsxs(v.Stack,{direction:"row",alignItems:"center",spacing:1,sx:{mb:2},children:[p.jsx(AO,{sx:{color:"success.main",fontSize:28}}),p.jsx(v.Typography,{variant:"h6",fontWeight:600,children:"AI Data Agents"})]}),p.jsx(v.Typography,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Expose your semantic models via the Model Context Protocol (MCP), enabling AI agents to discover sources and ask well-formed questions."}),p.jsx(v.Chip,{label:"AI-Ready",size:"small",color:"success",variant:"outlined"})]})})})]}),p.jsx(v.Divider,{sx:{my:4}}),r.data.length>0?p.jsxs(p.Fragment,{children:[p.jsxs(v.Box,{sx:{textAlign:"center",mb:4},children:[p.jsxs(v.Stack,{direction:"row",justifyContent:"center",alignItems:"center",spacing:1,sx:{mb:2},children:[p.jsx(um,{sx:{color:"primary.main",fontSize:24}}),p.jsx(v.Typography,{variant:"h4",fontWeight:600,children:"Select a Project"})]}),p.jsx(v.Typography,{variant:"body1",color:"text.secondary",children:"Choose a project to explore its semantic models and start analyzing your data"}),n&&p.jsx(UO,{})]}),p.jsx(v.Grid,{container:!0,spacing:3,justifyContent:"center",children:r.data.map(a=>p.jsx(v.Grid,{size:{xs:12,sm:6,md:4},children:p.jsx(WO,{project:a,onClickProject:e})},a.name))})]}):p.jsxs(v.Box,{sx:{textAlign:"center",mb:4},children:[p.jsxs(v.Stack,{direction:"row",justifyContent:"center",alignItems:"center",spacing:1,sx:{mb:2},children:[p.jsx(um,{sx:{color:"primary.main",fontSize:24}}),p.jsx(v.Typography,{variant:"h4",fontWeight:600,children:"Get Started"})]}),p.jsx(v.Typography,{variant:"body1",color:"text.secondary",sx:{mb:3},children:"No projects found. Create your first Malloy project to start exploring semantic models and building data experiences."}),p.jsx(v.Button,{variant:"contained",size:"large",color:"primary",startIcon:p.jsx(lm,{}),href:"https://github.com/malloydata/publisher/blob/main/README.md#server-configuration",target:"_blank",rel:"noopener noreferrer",children:"Learn How to Create Models"})]}),p.jsx(v.Box,{sx:{textAlign:"center",mt:6,pt:4,borderTop:1,borderColor:"divider"},children:p.jsxs(v.Typography,{variant:"body2",color:"text.secondary",children:["Publisher is built on fully open infrastructure and designed for the AI era. Join the"," ",p.jsx("a",{href:"https://join.slack.com/t/malloy-community/shared_invite/zt-1kgfwgi5g-CrsdaRqs81QY67QW0~t_uw",target:"_blank",rel:"noopener noreferrer",style:{color:"primary.main",textDecoration:"underline"},children:"Malloy Slack community"})," ","to ask questions, share ideas, and contribute to the future of data modeling."]})})]}):p.jsx(Kt,{text:"Loading projects..."})}function WO({project:e,onClickProject:t}){const{mutable:n}=Je.useServer(),[r,i]=B.useState(null),o=!!r,s=l=>{i(l.currentTarget)},a=()=>{i(null)};return p.jsx("div",{children:p.jsxs(v.Card,{variant:"outlined",sx:{height:"100%",transition:"all 0.2s ease","&:hover":{transform:"translateY(-2px)",boxShadow:2,borderColor:"primary.main"}},children:[n&&p.jsxs(p.Fragment,{children:[p.jsx(v.IconButton,{"aria-controls":o?"project-menu":void 0,"aria-haspopup":"true","aria-expanded":o?"true":void 0,onClick:s,sx:{position:"absolute",top:8,right:8},children:p.jsx(pn.MoreVert,{fontSize:"small"})}),p.jsxs(v.Menu,{id:"project-menu","aria-haspopup":"true","aria-expanded":o?"true":void 0,open:o,anchorEl:r,onClose:a,disableRestoreFocus:!0,anchorOrigin:{vertical:"top",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"right"},children:[p.jsx(zO,{project:e,onCloseDialog:a}),p.jsx($O,{project:e,onCloseDialog:a})]})]}),p.jsxs(v.CardContent,{sx:{p:3,textAlign:"center"},children:[p.jsx(IO,{sx:{fontSize:48,color:"primary.main",mb:2}}),p.jsx(v.Typography,{variant:"h6",fontWeight:600,gutterBottom:!0,children:e.name}),p.jsx(v.Typography,{variant:"body2",color:"text.secondary",sx:{mb:2,minHeight:"60px"},children:qb(e.readme)}),p.jsx(v.Button,{variant:"contained",color:"secondary",endIcon:p.jsx(SO,{}),fullWidth:!0,onClick:l=>t(`/${e.name}/`,l),children:"Open Project"})]})]})})}function VO({onWorkbookSelect:e}){const{workbookStorage:t}=jd(),[n,r]=B.useState(""),[i,o]=B.useState(""),[s,a]=B.useState([]),[l,u]=B.useState(null),[c,d]=B.useState(!1),[h,f]=B.useState(!1),g=!!l,x=k=>{u(k.currentTarget)},b=()=>{u(null)},y=()=>{f(!1)},C=()=>{d(!1),r(""),o("")};B.useEffect(()=>{t&&(console.log("fetching workspaces"),t.listWorkspaces(!0).then(k=>{a(k),k.length===1&&o(k[0].name)}).catch(k=>{console.error("Error fetching workspaces:",k),a([])}))},[t]);const E=(k,F)=>{f(!1),e(k,F)},S=k=>{d(!1),e({path:n,workspace:i},k),r(""),o("")},I=s.length===0;return p.jsxs(p.Fragment,{children:[p.jsx(v.Button,{"aria-controls":g?"basic-menu":void 0,"aria-haspopup":"true","aria-expanded":g?"true":void 0,onClick:x,variant:"contained",sx:{height:"40px",px:2,backgroundColor:"#fbbb04","&:hover":{backgroundColor:"#eab308"}},children:"Analyze Package"}),p.jsxs(v.Menu,{id:"basic-menu",anchorEl:l,open:g,onClose:b,MenuListProps:{"aria-labelledby":"basic-button",sx:{py:.5}},children:[p.jsxs(v.MenuItem,{onClick:()=>{d(!0),b()},sx:{py:1,px:2},disabled:I,children:[p.jsx(v.ListItemIcon,{children:p.jsx(pn.Add,{fontSize:"small"})}),p.jsxs(v.ListItemText,{children:[p.jsx(v.Typography,{variant:"body2",fontWeight:500,children:"New Workbook"}),I?p.jsx(v.Typography,{variant:"caption",color:"text.secondary",children:"No workspaces available"}):p.jsx(v.Typography,{variant:"caption",color:"text.secondary",children:"Create a new analysis workbook"})]})]}),p.jsxs(v.MenuItem,{onClick:()=>{f(!0),b()},sx:{py:1,px:2},children:[p.jsx(v.ListItemIcon,{children:p.jsx(pn.Launch,{fontSize:"small"})}),p.jsxs(v.ListItemText,{children:[p.jsx(v.Typography,{variant:"body2",fontWeight:500,children:"Open Workbook"}),p.jsx(v.Typography,{variant:"caption",color:"text.secondary",children:"Open an existing workbook"})]})]})]}),p.jsxs(v.Dialog,{open:c,onClose:C,maxWidth:"sm",fullWidth:!0,children:[p.jsxs(v.DialogTitle,{sx:{pb:1,pt:2,px:2},children:[p.jsx(v.Typography,{fontWeight:600,sx:{fontSize:"1.5rem",mb:.5},children:"Create New Workbook"}),p.jsx(v.Typography,{variant:"body2",color:"text.secondary",children:"Start a new analysis workbook to explore your data"})]}),p.jsx(v.DialogContent,{sx:{px:2,pb:2},children:p.jsxs(v.Stack,{spacing:2,sx:{mt:1},children:[s.length>1?p.jsxs(v.FormControl,{fullWidth:!0,size:"small",children:[p.jsx(v.InputLabel,{children:"Workspace"}),p.jsx(v.Select,{value:i,label:"Workspace",onChange:k=>o(k.target.value),children:s.map(k=>p.jsx(v.MenuItem,{value:k.name,children:p.jsxs(v.Box,{children:[p.jsx(v.Typography,{variant:"body2",fontWeight:500,children:k.name}),p.jsx(v.Typography,{variant:"caption",color:"text.secondary",children:k.description})]})},k.name))})]}):s.length===1?p.jsxs(v.Box,{sx:{p:2,border:1,borderColor:"divider",borderRadius:1,backgroundColor:"grey.50"},children:[p.jsxs(v.Typography,{variant:"body2",fontWeight:500,gutterBottom:!0,children:["Workspace: ",s[0].name]}),p.jsx(v.Typography,{variant:"caption",color:"text.secondary",children:s[0].description})]}):null,p.jsx(v.FormControl,{fullWidth:!0,children:p.jsx(v.TextField,{label:"Workbook Name",value:n,onChange:k=>r(k.target.value),placeholder:"Enter workbook name...",fullWidth:!0,autoFocus:!0,size:"small"})}),p.jsxs(v.Stack,{direction:"row",spacing:1,justifyContent:"flex-end",children:[p.jsx(v.Button,{onClick:C,variant:"outlined",size:"small",children:"Cancel"}),p.jsx(v.Button,{onClick:k=>S(k),variant:"contained",disabled:!n.trim()||s.length>1&&!i,size:"small",children:"Create Workbook"})]})]})})]}),p.jsxs(v.Dialog,{open:h,onClose:y,maxWidth:"md",fullWidth:!0,children:[p.jsxs(v.DialogTitle,{sx:{pb:1,pt:2,px:2},children:[p.jsx(v.Typography,{fontWeight:600,sx:{mb:.5,fontSize:"1.5rem"},children:"Open Workbook"}),p.jsx(v.Typography,{variant:"body2",color:"text.secondary",children:"Select an existing workbook to continue your analysis"})]}),p.jsx(v.DialogContent,{sx:{px:2,pb:2},children:p.jsx(mb,{onWorkbookClick:E})})]})]})}const GO=async e=>{if(typeof window>"u")throw new Error("MalloyRenderer can only be used in browser environment");const{MalloyRenderer:t}=await import("@malloydata/render");return new t({onClick:e,onError:r=>{console.error("Error rendering visualization:",typeof r,r)}}).createViz()};function YO({result:e,height:t,isFillElement:n,onSizeChange:r,onDrill:i}){const o=B.useRef(null),[s,a]=B.useState(!1);return B.useLayoutEffect(()=>{if(!o.current||!e)return;let l=!0;const u=o.current;for(;u.firstChild;)u.removeChild(u.firstChild);return GO(i).then(c=>{if(!l)return;const d=new MutationObserver(h=>{for(const f of h)if(f.type==="childList"&&f.addedNodes.length>0&&Array.from(f.addedNodes).some(x=>x.nodeType===Node.ELEMENT_NODE)){d.disconnect(),setTimeout(()=>{l&&a(!0)},50);break}});d.observe(u,{childList:!0,subtree:!0,characterData:!0});try{c.setResult(JSON.parse(e)),c.render(u)}catch(h){console.error("Error rendering visualization:",h),d.disconnect(),l&&a(!0)}}).catch(c=>{console.error("Failed to create renderer:",c),l&&a(!0)}),()=>{l=!1}},[e,i]),B.useEffect(()=>{if(!o.current||!s)return;const l=o.current,u=()=>{if(l){const h=l.offsetHeight;h>0?r&&r(h):n&&l.firstChild&&(l.firstChild.offsetHeight==0?n(!0):n(!1))}},c=setTimeout(u,100);let d=null;return d=new MutationObserver(u),d.observe(l,{childList:!0,subtree:!0,attributes:!0}),()=>{clearTimeout(c),d?.disconnect()}},[r,e,n,s]),p.jsx("div",{ref:o,style:{width:"100%",height:t?`${t}px`:"100%"}})}function Vb(e){return typeof window>"u"?p.jsx("div",{style:{width:"100%",height:e.height?`${e.height}px`:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"#666"},children:"Loading..."}):p.jsx(B.Suspense,{fallback:p.jsx("div",{style:{width:"100%",height:e.height?`${e.height}px`:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"#666"},children:"Loading visualization..."}),children:p.jsx(YO,{...e})})}const Gb=Object.freeze(Object.defineProperty({__proto__:null,default:Vb},Symbol.toStringTag,{value:"Module"}));function KO({modelPath:e,query:t,sourceName:n,queryName:r,enabled:i=!0,resourceUri:o}){const{projectName:s,packageName:a,versionId:l}=ct(o),{apiClients:u}=Je.useServer(),{data:c,isSuccess:d,isError:h,error:f,isLoading:g}=Qt({queryKey:["rawQueryData",s,a,e,l,t,n,r],queryFn:()=>u.models.executeQueryModel(s,a,e,{query:t,sourceName:n,queryName:r,versionId:l}),enabled:i});return{data:d&&c?.data?.result?(()=>{try{return JSON.parse(c.data.result).data?.array_value||[]}catch(b){return console.error("Failed to parse query result:",b),[]}})():[],isSuccess:d,isError:h,error:f,isLoading:g}}ex.defaults.baseURL="IfYouAreSeeingThis_baseURL_IsNotSet";exports.ServerProvider=Je.ServerProvider;exports.useServer=Je.useServer;exports.AnalyzePackageButton=VO;exports.BrowserWorkbookStorage=BL;exports.ConnectionExplorer=Eb;exports.EmbeddedQueryResult=mk;exports.Home=qO;exports.Loading=Kt;exports.Model=pk;exports.ModelExplorer=ud;exports.ModelExplorerDialog=cd;exports.Models=$b;exports.Notebook=X0;exports.Package=gO;exports.Packages=zb;exports.Project=TO;exports.QueryResult=Q0;exports.RenderedResult=Vb;exports.ResultContainer=ys;exports.SourceExplorerComponent=G0;exports.SourcesExplorer=ad;exports.Workbook=FL;exports.WorkbookList=mb;exports.WorkbookManager=Pi;exports.WorkbookStorageProvider=NL;exports.createEmbeddedQueryResult=K0;exports.encodeResourceUri=tl;exports.parseResourceUri=ct;exports.useModelData=ld;exports.useRawQueryData=KO;exports.useRouterClickHandler=hb;
|