@malloy-publisher/sdk 0.0.222 → 0.0.224

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.
@@ -1,4 +1,4 @@
1
- "use strict";var sx=Object.create;var xp=Object.defineProperty;var lx=Object.getOwnPropertyDescriptor;var ux=Object.getOwnPropertyNames;var cx=Object.getPrototypeOf,dx=Object.prototype.hasOwnProperty;var px=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ux(t))!dx.call(e,o)&&o!==n&&xp(e,o,{get:()=>t[o],enumerable:!(r=lx(t,o))||r.enumerable});return e};var rs=(e,t,n)=>(n=e!=null?sx(cx(e)):{},px(t||!e||!e.__esModule?xp(n,"default",{value:e,enumerable:!0}):n,e));const u=require("react/jsx-runtime"),k=require("@mui/material"),H=require("react"),hr=require("@tanstack/react-query"),Ee=require("./ServerProvider-j5Jof3CU.cjs.js"),zs=require("markdown-to-jsx"),nn=require("@mui/icons-material"),pt=require("@mui/system"),fx=require("@emotion/styled"),hx=require("@emotion/react"),Za=require("react-dom"),Km=require("@react-spring/web"),mx=require("react-router-dom");function Gm(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 w=Gm(H),gx=Gm(Za),Ep=e=>e,bx=()=>{let e=Ep;return{configure(t){e=t},generate(t){return e(t)},reset(){e=Ep}}},Qm=bx();function Rr(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 Se(e){if(typeof e!="string")throw new Error(Rr(7));return e.charAt(0).toUpperCase()+e.slice(1)}function Cp(...e){return e.reduce((t,n)=>n==null?t:function(...o){t.apply(this,o),n.apply(this,o)},()=>{})}function er(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var au={exports:{}},iu,Tp;function yx(){if(Tp)return iu;Tp=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return iu=e,iu}var su,vp;function xx(){if(vp)return su;vp=1;var e=yx();function t(){}function n(){}return n.resetWarningCache=t,su=function(){function r(i,s,l,c,d,p){if(p!==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 o(){return r}var a={array:r,bigint:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:o,element:r,elementType:r,instanceOf:o,node:r,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:n,resetWarningCache:t};return a.PropTypes=a,a},su}var Sp;function Ex(){return Sp||(Sp=1,au.exports=xx()()),au.exports}var Cx=Ex();const de=er(Cx);function Xm(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=Xm(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Pe(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=Xm(e))&&(r&&(r+=" "),r+=t);return r}function Le(e,t,n=void 0){const r={};for(const o in e){const a=e[o];let i="",s=!0;for(let l=0;l<a.length;l+=1){const c=a[l];c&&(i+=(s===!0?"":" ")+t(c),s=!1,n&&n[c]&&(i+=" "+n[c]))}r[o]=i}return r}var lu={exports:{}},xt={};/**
1
+ "use strict";var sx=Object.create;var xp=Object.defineProperty;var lx=Object.getOwnPropertyDescriptor;var ux=Object.getOwnPropertyNames;var cx=Object.getPrototypeOf,dx=Object.prototype.hasOwnProperty;var px=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ux(t))!dx.call(e,o)&&o!==n&&xp(e,o,{get:()=>t[o],enumerable:!(r=lx(t,o))||r.enumerable});return e};var rs=(e,t,n)=>(n=e!=null?sx(cx(e)):{},px(t||!e||!e.__esModule?xp(n,"default",{value:e,enumerable:!0}):n,e));const u=require("react/jsx-runtime"),k=require("@mui/material"),H=require("react"),hr=require("@tanstack/react-query"),Ee=require("./ServerProvider-CBjczSEK.cjs.js"),zs=require("markdown-to-jsx"),nn=require("@mui/icons-material"),pt=require("@mui/system"),fx=require("@emotion/styled"),hx=require("@emotion/react"),Za=require("react-dom"),Km=require("@react-spring/web"),mx=require("react-router-dom");function Gm(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 w=Gm(H),gx=Gm(Za),Ep=e=>e,bx=()=>{let e=Ep;return{configure(t){e=t},generate(t){return e(t)},reset(){e=Ep}}},Qm=bx();function Rr(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 Se(e){if(typeof e!="string")throw new Error(Rr(7));return e.charAt(0).toUpperCase()+e.slice(1)}function Cp(...e){return e.reduce((t,n)=>n==null?t:function(...o){t.apply(this,o),n.apply(this,o)},()=>{})}function er(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var au={exports:{}},iu,Tp;function yx(){if(Tp)return iu;Tp=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return iu=e,iu}var su,vp;function xx(){if(vp)return su;vp=1;var e=yx();function t(){}function n(){}return n.resetWarningCache=t,su=function(){function r(i,s,l,c,d,p){if(p!==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 o(){return r}var a={array:r,bigint:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:o,element:r,elementType:r,instanceOf:o,node:r,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:n,resetWarningCache:t};return a.PropTypes=a,a},su}var Sp;function Ex(){return Sp||(Sp=1,au.exports=xx()()),au.exports}var Cx=Ex();const de=er(Cx);function Xm(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=Xm(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Pe(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=Xm(e))&&(r&&(r+=" "),r+=t);return r}function Le(e,t,n=void 0){const r={};for(const o in e){const a=e[o];let i="",s=!0;for(let l=0;l<a.length;l+=1){const c=a[l];c&&(i+=(s===!0?"":" ")+t(c),s=!1,n&&n[c]&&(i+=" "+n[c]))}r[o]=i}return r}var lu={exports:{}},xt={};/**
2
2
  * @license React
3
3
  * react-is.production.js
4
4
  *
@@ -89,7 +89,7 @@ import {${t.sourceName}}" from '${t.modelPath}'"
89
89
  - [ ] `),/^\d+.\s/.test(i)&&(T=`
90
90
  `+(parseInt(i)+1)+". "),ta(r,T)}else if(e.code&&e.code.toLowerCase()==="keyd"&&e.ctrlKey){Is(e);var S={start:r.selectionStart,end:r.selectionEnd},D=S;S=mi({text:r.value,selection:S});var C=r.value.slice(S.start,S.end);s.setSelectionRange({start:S.end,end:S.end}),ta(r,`
91
91
  `+C),s.setSelectionRange({start:D.start,end:D.end})}else e.code&&e.code.toLowerCase()==="arrowup"&&e.altKey?Ch(e,-1):e.code&&e.code.toLowerCase()==="arrowdown"&&e.altKey&&Ch(e,1)}var e4=["prefixCls","onChange"],t4=["markdown","commands","fullscreen","preview","highlightEnable","extraCommands","tabSize","defaultTabEnable","autoFocusEnd","textareaWarp","dispatch"];function n4(e){var{prefixCls:t,onChange:n}=e,r=He(e,e4),o=H.useContext(va),{markdown:a,commands:i,fullscreen:s,preview:l,highlightEnable:c,extraCommands:d,tabSize:p,defaultTabEnable:h,autoFocusEnd:f,textareaWarp:m,dispatch:g}=o;He(o,t4);var b=H.useRef(null),x=H.useRef(),E=H.useRef({fullscreen:s,preview:l});H.useEffect(()=>{E.current={fullscreen:s,preview:l,highlightEnable:c}},[s,l,c]),H.useEffect(()=>{if(b.current&&g){var S=new kd(b.current);x.current=S,g({textarea:b.current,commandOrchestrator:S})}},[]),H.useEffect(()=>{if(f&&b.current&&m){b.current.focus();var S=b.current.value.length;b.current.setSelectionRange(S,S),setTimeout(()=>{m&&(m.scrollTop=m.scrollHeight),b.current&&(b.current.scrollTop=b.current.scrollHeight)},0)}},[m]);var T=S=>{J5(S,p,h),O1(S,[...i||[],...d||[]],x.current,g,E.current)};return H.useEffect(()=>(b.current&&b.current.addEventListener("keydown",T),()=>{b.current&&b.current.removeEventListener("keydown",T)}),[]),u.jsx("textarea",$({autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1},r,{ref:b,className:t+"-text-input "+(r.className?r.className:""),value:a,onChange:S=>{g&&g({markdown:S.target.value}),n&&n(S)}}))}var r4=["prefixCls","className","onScroll","renderTextarea"];function o4(e){var t=e||{},{prefixCls:n,className:r,onScroll:o,renderTextarea:a}=t,i=He(t,r4),{markdown:s,scrollTop:l,commands:c,extraCommands:d,dispatch:p}=H.useContext(va),h=H.useRef(null),f=H.useRef(),m=H.createRef();H.useEffect(()=>{var b={};m.current&&(b.textareaWarp=m.current||void 0,m.current.scrollTop=l||0),p&&p($({},b))},[]),H.useEffect(()=>{if(h.current&&p){var b=new kd(h.current);f.current=b,p({textarea:h.current,commandOrchestrator:b})}},[]);var g={WebkitTextFillColor:"initial",overflow:"auto"};return u.jsx("div",{ref:m,className:n+"-area "+(r||""),onScroll:o,children:u.jsx("div",{className:n+"-text",children:a?H.cloneElement(a($({},i,{value:s,autoComplete:"off",autoCorrect:"off",spellCheck:"false",autoCapitalize:"off",className:n+"-text-input",style:{WebkitTextFillColor:"inherit",overflow:"auto"}}),{dispatch:p,onChange:i.onChange,shortcuts:O1,useContext:{commands:c,extraCommands:d,commandOrchestrator:f.current}}),{ref:h}):u.jsx(H.Fragment,{children:u.jsx(n4,$({prefixCls:n},i,{style:g}))})})})}function a4(e){var{prefixCls:t,groupName:n,commands:r,children:o}=e||{},{barPopup:a={}}=H.useContext(va);return H.useMemo(()=>u.jsx("div",{className:t+"-toolbar-child "+(n&&a[n]?"active":""),onClick:i=>i.stopPropagation(),children:Array.isArray(r)?u.jsx(B1,$({commands:r},e,{isChild:!0})):o}),[r,a,n,t])}function Th(e){var{prefixCls:t,overflow:n}=e,{fullscreen:r,preview:o,barPopup:a={},components:i,commandOrchestrator:s,dispatch:l}=H.useContext(va),c=H.useRef("");function d(p,h){if(l){var f={barPopup:$({},a)};p.keyCommand==="preview"&&(f.preview=p.value),p.keyCommand==="fullscreen"&&(f.fullscreen=!r),e.commands&&p.keyCommand==="group"?e.commands.forEach(m=>{h===m.groupName?f.barPopup[h]=!0:m.keyCommand&&(f.barPopup[m.groupName]=!1)}):(h||p.parent)&&Object.keys(f.barPopup||{}).forEach(m=>{f.barPopup[m]=!1}),Object.keys(f).length&&l($({},f)),s&&s.executeCommand(p)}}return H.useEffect(()=>{document&&n&&(r?document.body.style.overflow="hidden":(c.current||(c.current=window.getComputedStyle(document.body,null).overflow),document.body.style.overflow=c.current))},[r,c,n]),u.jsx("ul",{children:(e.commands||[]).map((p,h)=>{if(p.keyCommand==="divider")return u.jsx("li",$({},p.liProps,{className:t+"-toolbar-divider"}),h);if(!p.keyCommand)return u.jsx(H.Fragment,{},h);var f=r&&p.keyCommand==="fullscreen"||p.keyCommand==="preview"&&o===p.value,m=p.children&&typeof p.children=="function"?p.children({getState:()=>s.getState(),textApi:s?s.textApi:void 0,close:()=>d({},p.groupName),execute:()=>d({execute:p.execute}),dispatch:l}):void 0,g=a&&o&&o==="preview"&&!/(preview|fullscreen)/.test(p.keyCommand),b=i?.toolbar||p.render,x=b&&typeof b=="function"?b(p,!!g,d,h):null;return u.jsxs("li",$({},p.liProps,{className:f?"active":"",children:[x&&H.isValidElement(x)&&x,!x&&!p.buttonProps&&p.icon,!x&&p.buttonProps&&H.createElement("button",$({type:"button",key:h,disabled:g,"data-name":p.name},p.buttonProps,{onClick:E=>{E.stopPropagation(),d(p,p.groupName)}}),p.icon),p.children&&u.jsx(a4,{overflow:n,groupName:p.groupName,prefixCls:t,children:m,commands:Array.isArray(p.children)?p.children:void 0})]}),h)})})}function B1(e){e===void 0&&(e={});var{prefixCls:t,isChild:n,className:r}=e,{commands:o,extraCommands:a}=H.useContext(va);return u.jsxs("div",{className:t+"-toolbar "+r,children:[u.jsx(Th,$({},e,{commands:e.commands||o||[]})),!n&&u.jsx(Th,$({},e,{commands:a||[]}))]})}function vh(e){var{hideToolbar:t,toolbarBottom:n,placement:r,overflow:o,prefixCls:a}=e;if(t||r==="bottom"&&!n||r==="top"&&n)return null;var i=n?"bottom":"";return u.jsx(B1,{prefixCls:a,overflow:o,className:i})}var i4=e=>{var{prefixCls:t,onChange:n}=e||{},r=H.useRef(null),o=H.useRef(),a=H.useRef(e.height);H.useEffect(()=>{a.current!==e.height&&(a.current=e.height)},[e.height]);function i(d){if(o.current){var p,h=d.clientY||((p=d.changedTouches[0])==null?void 0:p.clientY),f=o.current.height+h-o.current.dragY;f>=e.minHeight&&f<=e.maxHeight&&n&&n(o.current.height+(h-o.current.dragY))}}function s(){var d,p;o.current=void 0,document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",s),(d=r.current)==null||d.removeEventListener("touchmove",i),(p=r.current)==null||p.removeEventListener("touchend",s)}function l(d){var p,h,f;d.preventDefault();var m=d.clientY||((p=d.changedTouches[0])==null?void 0:p.clientY);o.current={height:a.current,dragY:m},document.addEventListener("mousemove",i),document.addEventListener("mouseup",s),(h=r.current)==null||h.addEventListener("touchmove",i,{passive:!1}),(f=r.current)==null||f.addEventListener("touchend",s,{passive:!1})}H.useEffect(()=>{if(document){var d,p;(d=r.current)==null||d.addEventListener("touchstart",l,{passive:!1}),(p=r.current)==null||p.addEventListener("mousedown",l)}return()=>{if(document){var h;(h=r.current)==null||h.removeEventListener("touchstart",l),document.removeEventListener("mousemove",i)}}},[]);var c=H.useMemo(()=>u.jsx("svg",{viewBox:"0 0 512 512",height:"100%",children:u.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 u.jsx("div",{className:t+"-bar",ref:r,children:c})},s4=["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 l4(e){return e===void 0&&(e={}),Object.keys(e).forEach(t=>{e[t]=!1}),e}var u4=H.forwardRef((e,t)=>{var n=e||{},{prefixCls:r="w-md-editor",className:o,value:a,commands:i=X5(),commandsFilter:s,direction:l,extraCommands:c=Z5(),height:d=200,enableScroll:p=!0,visibleDragbar:h=typeof e.visiableDragbar=="boolean"?e.visiableDragbar:!0,highlightEnable:f=!0,preview:m="live",fullscreen:g=!1,overflow:b=!0,previewOptions:x={},textareaProps:E,maxHeight:T=1200,minHeight:S=100,autoFocus:D,autoFocusEnd:C=!1,tabSize:O=2,defaultTabEnable:R=!1,onChange:B,onStatistics:M,onHeightChange:N,hideToolbar:v,toolbarBottom:F=!1,components:I,renderTextarea:P}=n,L=He(n,s4),U=i.map(be=>s?s(be,!1):be).filter(Boolean),W=c.map(be=>s?s(be,!0):be).filter(Boolean),[z,A]=H.useReducer(y5,{markdown:a,preview:m,components:I,height:d,minHeight:S,highlightEnable:f,tabSize:O,defaultTabEnable:R,scrollTop:0,scrollTopPreview:0,commands:U,extraCommands:W,fullscreen:g,barPopup:{}}),Z=H.useRef(null),ee=H.useRef(null),_=H.useRef(p);H.useImperativeHandle(t,()=>$({},z,{container:Z.current,dispatch:A})),H.useMemo(()=>_.current=p,[p]),H.useEffect(()=>{var be={};Z.current&&(be.container=Z.current||void 0),be.markdown=a||"",be.barPopup={},A&&A($({},z,be))},[]);var oe=[o,"wmde-markdown-var",l?r+"-"+l:null,r,z.preview?r+"-show-"+z.preview:null,z.fullscreen?r+"-fullscreen":null].filter(Boolean).join(" ").trim();H.useMemo(()=>a!==z.markdown&&A({markdown:a||""}),[a,z.markdown]),H.useMemo(()=>m!==z.preview&&A({preview:m}),[m]),H.useMemo(()=>O!==z.tabSize&&A({tabSize:O}),[O]),H.useMemo(()=>f!==z.highlightEnable&&A({highlightEnable:f}),[f]),H.useMemo(()=>D!==z.autoFocus&&A({autoFocus:D}),[D]),H.useMemo(()=>C!==z.autoFocusEnd&&A({autoFocusEnd:C}),[C]),H.useMemo(()=>g!==z.fullscreen&&A({fullscreen:g}),[g]),H.useMemo(()=>d!==z.height&&A({height:d}),[d]),H.useMemo(()=>d!==z.height&&N&&N(z.height,d,z),[d,N,z]),H.useMemo(()=>i!==z.commands&&A({commands:U}),[e.commands]),H.useMemo(()=>c!==z.extraCommands&&A({extraCommands:W}),[e.extraCommands]);var Q=H.useRef(),V=H.useRef("preview"),J=H.useRef(!1);H.useMemo(()=>{Q.current=z.textareaWarp,z.textareaWarp&&(z.textareaWarp.addEventListener("mouseover",()=>{V.current="text"}),z.textareaWarp.addEventListener("mouseleave",()=>{V.current="preview"}))},[z.textareaWarp]);var G=(be,se)=>{if(_.current){var Me=Q.current,ke=ee.current?ee.current:void 0;if(J.current||(V.current=se,J.current=!0),Me&&ke){var Ve=(Me.scrollHeight-Me.offsetHeight)/(ke.scrollHeight-ke.offsetHeight);be.target===Me&&V.current==="text"&&(ke.scrollTop=Me.scrollTop/Ve),be.target===ke&&V.current==="preview"&&(Me.scrollTop=ke.scrollTop*Ve);var we=0;V.current==="text"?we=Me.scrollTop||0:V.current==="preview"&&(we=ke.scrollTop||0),A({scrollTop:we})}}},re=r+"-preview "+(x.className||""),X=be=>G(be,"preview"),Y=H.useMemo(()=>u.jsx("div",{ref:ee,className:re,children:u.jsx(R1,$({},x,{onScroll:X,source:z.markdown||""}))}),[re,x,z.markdown]),le=I?.preview&&I?.preview(z.markdown||"",z,A);le&&H.isValidElement(le)&&(Y=u.jsx("div",{className:re,ref:ee,onScroll:X,children:le}));var te=$({},L.style,{height:z.height||"100%"}),ne=()=>A({barPopup:$({},l4(z.barPopup))}),xe=be=>A({height:be}),pe=be=>{if(B&&B(be.target.value,be,z),E&&E.onChange&&E.onChange(be),z.textarea&&z.textarea instanceof HTMLTextAreaElement&&M){var se=new kd(z.textarea),Me=se.getState()||{};M($({},Me,{lineCount:be.target.value.split(`
92
- `).length,length:be.target.value.length}))}};return u.jsx(va.Provider,{value:$({},z,{dispatch:A}),children:u.jsxs("div",$({ref:Z,className:oe},L,{onClick:ne,style:te,children:[u.jsx(vh,{hideToolbar:v,toolbarBottom:F,prefixCls:r,overflow:b,placement:"top"}),u.jsxs("div",{className:r+"-content",children:[/(edit|live)/.test(z.preview||"")&&u.jsx(o4,$({className:r+"-input",prefixCls:r,autoFocus:D},E,{onChange:pe,renderTextarea:I?.textarea||P,onScroll:be=>G(be,"text")})),/(live|preview)/.test(z.preview||"")&&Y]}),h&&!z.fullscreen&&u.jsx(i4,{prefixCls:r,height:z.height,maxHeight:T,minHeight:S,onChange:xe}),u.jsx(vh,{hideToolbar:v,toolbarBottom:F,prefixCls:r,overflow:b,placement:"bottom"})]}))})}),j1=u4;j1.Markdown=R1;const ju={scopeName:"source.malloy",patterns:[{include:"#malloy-language"}],repository:{"malloy-language":{patterns:[{include:"#sql-string"},{include:"#comments"},{include:"#tags"},{include:"#strings"},{include:"#numbers"},{include:"#keywords"},{include:"#properties"},{include:"#functions"},{include:"#datetimes"},{include:"#identifiers-quoted"},{include:"#types"},{include:"#constants"},{include:"#timeframes"},{include:"#identifiers-unquoted"}]},"malloy-matched":{begin:"{",end:"}",patterns:[{include:"#malloy-matched"},{include:"#malloy-language"}]},"malloy-in-sql":{begin:"%{",name:"source.malloy-in-sql",end:"}%?",patterns:[{include:"#malloy-matched"},{include:"#malloy-language"}]},"sql-string":{patterns:[{begin:'(\\b[A-Za-z_][A-Za-z_0-9]*)(\\s*\\.\\s*)(sql)(\\s*\\(\\s*)(""")',end:'"""',beginCaptures:{1:{name:"variable.other"},3:{name:"keyword.control.sql"},5:{name:"punctuation.sql-block.open"}},endCaptures:{0:{name:"punctuation.sql-block.close"}},name:"source.sql",patterns:[{include:"#malloy-in-sql"},{include:"source.sql"}]}]},functions:{patterns:[{match:"(?i)\\b(count)(\\s*\\()(distinct)",captures:{1:{name:"entity.name.function"},3:{name:"entity.name.function.modifier"}}},{match:"(?i)\\b(AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE|UNGROUPED)(\\s*\\()",captures:{1:{name:"entity.name.function"}}},{match:"(?i)\\b([a-zA-Z_][a-zA-Z_0-9]*)(\\s*\\()",captures:{1:{name:"entity.name.function"}}},{match:"(?i)\\b([a-zA-Z_][a-zA-Z_0-9]*)(!)(timestamp|number|string|boolean|date)?(\\s*\\()",captures:{1:{name:"entity.name.function"},3:{name:"entity.name.type"}}}]},datetimes:{patterns:[{match:"(?i)@[0-9]{4}-[0-9]{2}-[0-9]{2}[ T][0-9]{2}:[0-9]{2}((:[0-9]{2})(([\\.,][0-9]+)(\\[[A-Za-z_/]+\\])?)?)?",name:"constant.numeric.timestamp"},{match:"(?i)@[0-9]{4}(-Q[1-4]|-[0-9]{2}(-[0-9]{2}(-WK)?)?)?",name:"constant.numeric.date"}]},"identifiers-quoted":{patterns:[{match:"`[^`]*`",name:"variable.other.quoted"}]},"identifiers-unquoted":{patterns:[{match:"(?i)\\b[A-Za-z_][A-Za-z_0-9]*\\b",name:"variable.other"}]},timeframes:{patterns:[{match:"(?i)\\b((year|quarter|month|week|day|hour|minute|second)s?)\\b",name:"keyword.other.timeframe"},{match:"(?i)\\b(day_of_year|day_of_month)\\b",name:"keyword.other.timeframe"}]},comments:{patterns:[{begin:"/\\*",end:"\\*/",beginCaptures:{0:{name:"punctuation.definition.comment.begin"}},endCaptures:{0:{name:"punctuation.definition.comment.end"}},name:"comment.block"},{begin:"//",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-slash"},{begin:"--",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-hyphen"}]},tags:{patterns:[{match:"##\\n",name:"string.quoted",captures:{0:{name:"string.quoted"}}},{begin:'#"',end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-slash"},{match:"#\\n",name:"string.quoted",captures:{0:{name:"string.quoted"}}},{begin:"#\\s",end:"\\n",beginCaptures:{0:{name:"support.type.property-name.json"}},name:"comment.line.double-slash",patterns:[{include:"#tag-values"}]},{begin:"##\\s",end:"\\n",beginCaptures:{0:{name:"support.type.property-name.json"}},name:"comment.line.double-slash",patterns:[{include:"#tag-values"}]},{begin:"#",end:"\\n",beginCaptures:{0:{name:"string.quoted"}},name:"string.quoted"}],repository:{"tag-values":{name:"support.type.property-name.json",match:'(-)?((?:[^\\s=#]+)|(?:"[^#]+"))(?:\\s*(=)\\s*((?:[^\\s=#]+)|(?:"[^#]+")))?',captures:{1:{name:"keyword.control.negate"},2:{name:"support.type.property-name.json"},3:{name:"keyword.operator.comparison.ts"},4:{name:"string.quoted"}}}}},strings:{patterns:[{begin:"'",end:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin"}},endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.single",patterns:[{include:"#escapes"}]},{begin:'"',end:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin"}},endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.double",patterns:[{include:"#escapes"}]},{begin:'"""',end:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin"}},endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.triple"},{begin:"(?i)[r|/]'",end:"'",name:"string.regexp",patterns:[{include:"#regex-escapes"}]}],repository:{escapes:{name:"constant.character.escape",match:"\\\\(u[A-Fa-f0-9]{4}|.)",captures:{0:{name:"constant.character.escape"}}},"regex-escapes":{name:"constant.character.escape",match:"\\\\.",captures:{0:{name:"constant.character.escape"}}}}},numbers:{match:"(?i)(\\b((0|[1-9][0-9]*)(E[+-]?[0-9]+|\\.[0-9]*)?)|\\.[0-9]+)",name:"constant.numeric"},constants:{patterns:[{match:"(?i)\\bnull\\b",name:"constant.language.null"},{match:"(?i)\\btrue\\b",name:"constant.language.true"},{match:"(?i)\\bfalse\\b",name:"constant.language.false"}]},types:{patterns:[{match:"(?i)\\bstring\\b",name:"entity.name.type.string"},{match:"(?i)\\bnumber\\b",name:"entity.name.type.number"},{match:"(?i)\\bdate\\b",name:"entity.name.type.date"},{match:"(?i)\\btimestamp\\b",name:"entity.name.type.timestamp"},{match:"(?i)\\bboolean\\b",name:"entity.name.type.boolean"}]},properties:{patterns:[{match:"(?i)\\baccept\\b",name:"keyword.control.accept"},{match:"(?i)\\bselect\\b",name:"keyword.control.select"},{match:"(?i)\\bconnection\\b",name:"keyword.control.connection"},{match:"(?i)\\brun\\b",name:"keyword.control.run"},{match:"(?i)\\bextend\\b",name:"keyword.control.extend"},{match:"(?i)\\brefine\\b",name:"keyword.control.refine"},{match:"(?i)\\baggregate\\b",name:"keyword.control.aggregate"},{match:"(?i)\\bsample\\b",name:"keyword.control.sample"},{match:"(?i)\\bcalculate\\b",name:"keyword.control.calculate"},{match:"(?i)\\btimezone\\b",name:"keyword.control.timezone"},{match:"(?i)\\bdimension\\b",name:"keyword.control.dimension"},{match:"(?i)\\bexcept\\b",name:"keyword.control.except"},{match:"(?i)\\bsource\\b",name:"keyword.control.source"},{match:"(?i)\\bgroup_by\\b",name:"keyword.control.group_by"},{match:"(?i)\\bhaving\\b",name:"keyword.control.having"},{match:"(?i)\\bindex\\b",name:"keyword.control.index"},{match:"(?i)\\bjoin_one\\b",name:"keyword.control.join_one"},{match:"(?i)\\bwith\\b",name:"keyword.control.with"},{match:"(?i)\\bjoin_many\\b",name:"keyword.control.join_many"},{match:"(?i)\\bjoin_cross\\b",name:"keyword.control.join_cross"},{match:"(?i)\\blimit\\b",name:"keyword.control.limit"},{match:"(?i)\\bmeasure\\b",name:"keyword.control.measure"},{match:"(?i)\\bnest\\b",name:"keyword.control.nest"},{match:"(?i)\\border_by\\b",name:"keyword.control.order_by"},{match:"(?i)\\bpartition_by\\b",name:"keyword.control.partition_by"},{match:"(?i)\\bprimary_key\\b",name:"keyword.control.primary_key"},{match:"(?i)\\bproject\\b",name:"keyword.control.project"},{match:"(?i)\\bquery\\b",name:"keyword.control.query"},{match:"(?i)\\brename\\b",name:"keyword.control.rename"},{match:"(?i)\\btop\\b",name:"keyword.control.top"},{match:"(?i)\\bview\\b",name:"keyword.control.view"},{match:"(?i)\\bwhere\\b",name:"keyword.control.where"},{match:"(?i)\\bdeclare\\b",name:"keyword.control.declare"}]},keywords:{patterns:[{match:"(?i)\\bis\\b",name:"keyword.control.is"},{match:"(?i)\\bon\\b",name:"keyword.control.on"},{match:"(?i)\\bnot\\b",name:"keyword.other.not"},{match:"(?i)\\bor\\b",name:"keyword.other.or"},{match:"(?i)\\bdesc\\b",name:"keyword.control.desc"},{match:"(?i)\\bby\\b",name:"keyword.control.by"},{match:"(?i)\\band\\b",name:"keyword.other.and"},{match:"(?i)\\basc\\b",name:"keyword.control.asc"},{match:"(?i)\\bfor\\b",name:"keyword.other.for"},{match:"(?i)\\belse\\b",name:"keyword.other.else"},{match:"(?i)\\bto\\b",name:"keyword.other.to"},{match:"(?i)\\bwhen\\b",name:"keyword.other.when"},{match:"(?i)\\bpick\\b",name:"keyword.other.pick"},{match:"(?i)\\bimport\\b",name:"keyword.control.import"}]}}},c4={...ju,patterns:[...ju.patterns,{include:"#docvar"}],repository:{...ju.repository,docvar:{patterns:[{match:"\\<\\<[^(\\>\\>)]*\\>\\>",beginCaptures:{0:{name:"punctuation.definition.comment.begin"}},endCaptures:{0:{name:"punctuation.definition.comment.end"}},name:"markup.italic.markdown"}]}}},d4={name:"Malloy SQL",scopeName:"source.malloy-sql",patterns:[{include:"#malloysql-sql"}],repository:{"malloysql-sql":{beginCaptures:{0:{name:"entity.other.attribute.malloy-sql"},1:{name:"entity.other.attribute.malloy-sql"},3:{name:"comment.line.double-slash"}},name:"meta.embedded.block.malloysql.sql",patterns:[{include:"#comments"},{begin:"%{",end:"}%",beginCaptures:{0:{name:"punctuation.definition.malloy-sql"}},endCaptures:{0:{name:"punctuation.definition.malloy-sql"}},name:"meta.embedded.block.malloy",patterns:[{include:"source.malloy"}]},{include:"source.sql"}]},comments:{patterns:[{begin:"/\\*",end:"\\*/",beginCaptures:{0:{name:"punctuation.definition.comment.begin"}},endCaptures:{0:{name:"punctuation.definition.comment.end"}},name:"comment.block"},{begin:"//",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-slash"},{begin:"--",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-hyphen"}]}}},p4="github-light",f4="github-dark";let $u;function h4(){return $u||($u=(async()=>{const[{createHighlighterCore:e},{createOnigurumaEngine:t},{default:n},{default:r},{default:o},{default:a},{default:i}]=await Promise.all([Promise.resolve().then(()=>require("./core-Df0c84B0.cjs.js")),Promise.resolve().then(()=>require("./engine-oniguruma-BkproSVE.cjs.js")),Promise.resolve().then(()=>require("./sql-BqWZrLHB.cjs.js")),Promise.resolve().then(()=>require("./json-y-J1j5EW.cjs.js")),Promise.resolve().then(()=>require("./typescript-BqvpT6pB.cjs.js")),Promise.resolve().then(()=>require("./github-light-BFTOhCbz.cjs.js")),Promise.resolve().then(()=>require("./github-dark-BKL9xNgN.cjs.js"))]);return e({engine:t(Promise.resolve().then(()=>require("./wasm-Dw4u1m6u.cjs.js"))),themes:[a,i],langs:[n,r,o,{name:"malloy",scopeName:"source.malloy",embeddedLangs:["sql"],...c4},{name:"malloysql",scopeName:"source.malloy-sql",embeddedLangs:["sql"],...d4}]})})()),$u}async function nl(e,t,n="light"){return(await h4()).codeToHtml(e,{lang:t,theme:n==="dark"?f4:p4})}function Nt(e){const{server:t}=Ee.useServer(),n={...e,queryKey:[...e.queryKey,t],queryFn:async()=>{try{return await e.queryFn()}catch(r){if(r&&typeof r=="object"&&"response"in r){const o=r;if(o.response?.data){const a=new Error(o.response.data.message||o.message);throw a.status=o.response.status,a.data=o.response.data,a}}throw r}},retry:!1,throwOnError:!1};return hr.useQuery(n,Ee.globalQueryClient)}function wn(e){const t={...e,mutationFn:async n=>{try{return await e.mutationFn(n)}catch(r){if(r&&typeof r=="object"&&"response"in r){const o=r;if(o.response?.data){const a=new Error(o.response.data.message||o.message);throw a.status=o.response.status,a.data=o.response.data,a}}throw r}},retry:!1,throwOnError:!1};return hr.useMutation(t,Ee.globalQueryClient)}const kt=e=>{const t=new URL(e),n={};if(t.protocol!=="publisher:")throw new Error(`Failed to parse resource URI: ${e}`);const r=(t.hostname+t.pathname).split("/");for(let o=0;o<r.length;o+=2){const a=r[o];a==="environments"?n.environmentName=decodeURI(r[o+1])||void 0:a==="packages"?n.packageName=decodeURI(r[o+1])||void 0:a==="connections"?n.connectionName=decodeURI(r[o+1])||void 0:a==="models"&&(n.modelPath=decodeURI(r.slice(o+1).join("/"))||void 0)}if(n.versionId=t.searchParams.get("versionId")||void 0,!n.environmentName)throw new Error(`Failed to parse resource URI: ${e}`);return n},Yi=e=>{if(!e.environmentName)throw new Error(`Failed to encode resource URI, missing environment name: ${e}`);let t=`publisher://environments/${e.environmentName}`;return e.packageName&&(t+=`/packages/${e.packageName}`),e.connectionName&&(t+=`/connections/${e.connectionName}`),e.modelPath&&(t+=`/models/${e.modelPath}`),e.packageName&&e.versionId&&(t+=`?versionId=${e.versionId}`),t};function Dd({sourceAndPaths:e,selectedSourceIndex:t,existingQuery:n,onQueryChange:r,onSourceChange:o,resourceUri:a}){return H.useEffect(()=>{o&&o(t)},[t,o]),u.jsx(Ee.StyledCardMedia,{children:u.jsxs(pt.Stack,{spacing:2,component:"section",children:[u.jsx($1,{sourceAndPath:e[t],existingQuery:n,onChange:i=>{r&&r(i)},resourceUri:a}),u.jsx(pt.Box,{height:"5px"})]})})}function As(){return{query:void 0,malloyQuery:void 0,malloyResult:void 0}}function m4({sourceAndPath:e,onChange:t,existingQuery:n,explorerComponents:r,QueryBuilder:o,resourceUri:a}){const[i,s]=H.useState(n||As()),[l,c]=H.useState(void 0);H.useEffect(()=>{n&&s(n)},[n]);const[d,p]=H.useState([]),{MalloyExplorerProvider:h,QueryPanel:f,ResizableCollapsiblePanel:m,ResultPanel:g,SourcePanel:b}=r;H.useEffect(()=>{t&&t(i)},[t,i]);const{environmentName:x,packageName:E,versionId:T}=kt(a),{apiClients:S}=Ee.useServer(),D=wn({mutationFn:()=>{const B=typeof i?.malloyQuery=="string"?i.malloyQuery:new o.ASTQuery({source:e.sourceInfo,query:i?.malloyQuery}).toMalloy();return c({executionState:"running",query:i?.malloyQuery,queryResolutionStartMillis:Date.now(),onCancel:()=>{D.reset(),c(void 0)},response:{result:{}}}),s({...i,query:B}),S.models.executeQueryModel(x,E,e.modelPath,{query:B,sourceName:void 0,queryName:void 0,versionId:T})},onSuccess:B=>{if(B){const M=JSON.parse(B.data.result);s({...i,malloyResult:M}),c(N=>N?{...N,executionState:"finished",response:{result:M}}:void 0)}},onError:B=>{c(void 0),console.error("Query execution error:",B)}}),[C,O]=H.useState(e.sourceInfo.name);H.useEffect(()=>{C!==e.sourceInfo.name&&(O(e.sourceInfo.name),s(As()),c(void 0))},[e,C]);const R=H.useCallback(B=>{s({...i,malloyQuery:B,malloyResult:void 0})},[i]);return C!==e.sourceInfo.name?u.jsx("div",{children:"Loading..."}):u.jsx(Ee.StyledExplorerContent,{sx:{border:"1px solid #e0e0e0",borderRadius:"8px",overflow:"hidden"},children:u.jsx(h,{source:e.sourceInfo,query:i?.malloyQuery,topValues:[],onFocusedNestViewPathChange:p,focusedNestViewPath:d,onQueryChange:R,children:u.jsxs("div",{style:{display:"flex",height:"100%",overflowY:"auto"},children:[u.jsx(m,{isInitiallyExpanded:!0,initialWidth:180,minWidth:180,icon:"database",title:e.sourceInfo.name,children:u.jsx(b,{onRefresh:()=>s(As())})}),u.jsx(m,{isInitiallyExpanded:!0,initialWidth:280,minWidth:280,icon:"filterSliders",title:"Query",children:u.jsx(f,{runQuery:()=>{console.log(`running query with: ${i?.malloyQuery}`);try{D.mutate()}catch(B){console.error("Error running query:",B)}}})}),u.jsx(g,{source:e.sourceInfo,draftQuery:i?.malloyQuery,setDraftQuery:B=>s({...i,malloyQuery:B}),submittedQuery:l,options:{showRawQuery:!0}})]})})},e.sourceInfo.name)}function $1(e){const[t,n]=H.useState(null),[r,o]=H.useState(null),[a,i]=H.useState(!0);return H.useEffect(()=>{let s=!0;return Promise.all([import("@malloydata/malloy-explorer"),import("@malloydata/malloy-query-builder")]).then(([l,c])=>{s&&(n(l),o(c),i(!1))}).catch(l=>{console.error("Failed to load Malloy components:",l),s&&i(!1)}),()=>{s=!1}},[]),a||!t||!r?u.jsx(Ee.StyledExplorerPage,{children:u.jsx(Ee.StyledExplorerContent,{children:u.jsx(pt.Box,{sx:{alignItems:"center",justifyContent:"center",height:"200px",color:"text.secondary"},children:"Loading explorer..."})})}):u.jsx(m4,{...e,explorerComponents:t,QueryBuilder:r,resourceUri:e.resourceUri})}function rn({text:e,size:t=20,color:n="primary",thickness:r=3.6,centered:o=!0,spacing:a=2,textVariant:i="body2"}){const s=u.jsxs(k.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",gap:a},children:[u.jsx(k.CircularProgress,{size:t,color:n,thickness:r}),e&&u.jsx(k.Typography,{variant:i,color:"text.secondary",children:e})]});return o?u.jsx(k.Box,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:"200px",width:"100%"},children:s}):s}const g4=H.lazy(()=>Promise.resolve().then(()=>T$));function ka({result:e,maxHeight:t,maxResultSize:n=0}){const r=H.useRef(null),[o,a]=H.useState(t),[i,s]=H.useState(!1);if(!e)return null;if(n>0&&e.length>n&&!i)return u.jsxs(k.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,p:4,backgroundColor:"#fafafa",border:"1px solid",borderColor:"#e0e0e0",borderRadius:1},children:[u.jsx(nn.Warning,{sx:{fontSize:48,color:"#757575"}}),u.jsx(k.Typography,{variant:"h6",color:"text.secondary",align:"center",children:"Processing large results may cause browser performance issues. Proceed?"}),u.jsx(k.Button,{variant:"contained",color:"primary",onClick:()=>s(!0),children:"Proceed"})]});const c=u.jsx(rn,{text:"Loading...",centered:!0,size:32}),d=Math.min(t,o);return u.jsx(k.Box,{ref:r,sx:{position:"relative",height:"auto",border:"0px",borderRadius:0,overflow:"hidden"},children:e&&u.jsx(H.Suspense,{fallback:c,children:u.jsx(g4,{result:e,height:d,onSizeChange:a})})})}function b4({cell:e,sourceAndPaths:t,resourceUri:n,onQueryChange:r,onSourceChange:o}){const a={query:e.value,malloyResult:e.result?JSON.parse(e.result):void 0,malloyQuery:e.queryInfo?JSON.parse(e.queryInfo):void 0},i=t.findIndex(s=>s.sourceInfo.name===e.sourceName);return u.jsx(Dd,{resourceUri:n,sourceAndPaths:t,selectedSourceIndex:i>=0?i:0,existingQuery:a,onQueryChange:r,onSourceChange:o})}function y4({cell:e,editingMalloy:t,editingMarkdown:n,sourceAndPaths:r,resourceUri:o,onCellChange:a,onClose:i,onEdit:s,onDelete:l,addButtonCallback:c}){const[d,p]=H.useState(e.value),[h,f]=H.useState(!1),[m,g]=H.useState(!1),[b,x]=H.useState(),[E]=H.useState(),[T,S]=H.useState(As()),[D,C]=H.useState(!1),[O,R]=H.useState(e.sourceName?r.findIndex(ee=>ee.sourceInfo.name===e.sourceName):0),{mode:B}=Ee.usePublisherTheme();H.useEffect(()=>{e.isMarkdown||nl(e.value,"malloy",B).then(ee=>{x(ee)})},[e,B]),H.useEffect(()=>{document.documentElement.setAttribute("data-color-mode","light")});const[M,N]=H.useState(!1),v=()=>{l(),N(!1)},F=r.length===0,I=H.useCallback(()=>{const ee=r[O],_=ee?.modelPath||e.modelPath||"",oe=ee?.sourceInfo.name||e.sourceName||"";a({...e,value:e.isMarkdown?d:T.query,result:T.malloyResult?JSON.stringify(T.malloyResult):void 0,queryInfo:T.malloyQuery?JSON.stringify(T.malloyQuery):void 0,sourceName:oe,modelPath:_})},[e,d,T,a,O,r]),P=u.jsx(k.Tooltip,{title:"Delete Cell",children:u.jsx(k.IconButton,{size:"small",onClick:()=>N(!0),children:u.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:u.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"})})})}),L=u.jsxs(k.Dialog,{open:M,onClose:()=>N(!1),children:[u.jsx(k.DialogTitle,{children:"Confirm Delete"}),u.jsx(k.DialogContent,{children:u.jsx(k.Typography,{children:"Are you sure you want to delete this cell?"})}),u.jsxs(k.DialogActions,{children:[u.jsx(k.Button,{onClick:()=>N(!1),children:"Cancel"}),u.jsx(k.Button,{onClick:v,color:"error",children:"Delete"})]})]}),U=()=>{I(),i()},W=e.isMarkdown?u.jsxs(u.Fragment,{children:[n?u.jsx(k.Tooltip,{title:"Save",children:u.jsx(k.IconButton,{size:"small",onClick:U,children:u.jsx(as,{})})}):u.jsx(k.Tooltip,{title:"Edit",children:u.jsx(k.IconButton,{size:"small",onClick:s,children:u.jsx(Wp,{})})}),!n&&P]}):u.jsxs(u.Fragment,{children:[!t&&u.jsx(k.Tooltip,{title:h?"Hide Code":"View Code",children:u.jsx(k.IconButton,{size:"small",onClick:()=>{f(!h)},children:u.jsx(g0,{})})}),!t&&e.result&&u.jsx(k.Tooltip,{title:m?"Hide Embedding":"View Embedding",children:u.jsx(k.IconButton,{size:"small",onClick:()=>{g(!m)},children:u.jsx(Gc,{})})}),t&&u.jsx(k.Tooltip,{title:"Save",children:u.jsx(k.IconButton,{size:"small",onClick:U,children:u.jsx(as,{})})}),!t&&u.jsx(k.Tooltip,{title:"Edit",children:u.jsx(k.IconButton,{size:"small",onClick:s,children:u.jsx(Wp,{})})}),!t&&P]}),z=t||n,A=n?u.jsx(k.Tooltip,{title:"Save",children:u.jsx(k.IconButton,{size:"small",onClick:U,children:u.jsx(as,{})})}):t?u.jsx(k.Tooltip,{title:"Save",children:u.jsx(k.IconButton,{size:"small",onClick:U,children:u.jsx(as,{})})}):null,Z=D&&u.jsx(k.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:!z&&u.jsxs(u.Fragment,{children:[c(!0),c(!1),W]})||A});return u.jsxs(Ee.StyledCard,{sx:ee=>({position:"relative",marginTop:"5px",marginBottom:"5px",borderWidth:"1.5px",backgroundColor:ee.palette.background.paper,minHeight:"50px"}),onMouseEnter:()=>C(!0),onMouseLeave:()=>{C(!1)},children:[Z,e.isMarkdown?u.jsx(u.Fragment,{children:n?u.jsx(j1,{value:d,preview:"edit",autoFocus:!0,onChange:ee=>{p(ee),a({...e,value:ee})},onBlur:()=>{I(),D||U()}}):u.jsx(k.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?u.jsx(k.Box,{onClick:s,sx:{cursor:"pointer"},children:u.jsx(zs,{children:e.value})}):u.jsxs(k.Box,{onClick:s,sx:{cursor:"pointer"},children:[u.jsx(k.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"Markdown is empty"}),u.jsx(k.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Click to edit."})]})})}):u.jsxs(u.Fragment,{children:[u.jsx(k.Collapse,{in:m,timeout:"auto",unmountOnExit:!0,children:u.jsx(k.Stack,{sx:{p:"10px",borderRadius:0,flexDirection:"row",justifyContent:"space-between"},children:u.jsx(k.Typography,{component:"div",sx:{fontSize:"12px","& .line":{textWrap:"wrap"}},dangerouslySetInnerHTML:{__html:E}})})}),u.jsx(k.Collapse,{in:h,timeout:"auto",unmountOnExit:!0,children:u.jsx(k.Stack,{sx:{p:"10px",borderRadius:0,flexDirection:"row",justifyContent:"space-between"},children:u.jsx(k.Typography,{component:"div",className:"content",sx:{fontSize:"12px","& .line":{textWrap:"wrap"}},dangerouslySetInnerHTML:{__html:b}})})}),t&&(F?u.jsxs(u.Fragment,{children:[u.jsx(k.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"No Model Imports"}),u.jsx(k.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Please add a model import above."})]}):u.jsx(b4,{sourceAndPaths:r,resourceUri:o,onQueryChange:ee=>{S(ee)},onSourceChange:ee=>{R(ee)},cell:e})),!t&&e.result&&u.jsx(Ee.StyledCard,{variant:"outlined",sx:{borderRadius:0},children:u.jsx(ka,{result:e.result,maxHeight:800})}),!t&&!e.result&&u.jsxs(k.Box,{onClick:s,sx:{cursor:"pointer"},children:[u.jsx(k.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"Explore is empty"}),u.jsx(k.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Click to edit."})]})]}),M&&L]})}const H1=H.createContext(void 0);function x4({children:e,workbookStorage:t}){const n=H.useMemo(()=>({workbookStorage:t}),[t]);return u.jsx(H1.Provider,{value:n,children:e})}function wd(){const e=H.useContext(H1);if(!e)throw new Error("useWorkbookStorage must be used within a WorkbookStorageProvider");return e}const Jn=tt(u.jsx("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})),E4=tt(u.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 on({error:e,context:t}){const n=e.data?.message||"Unknown Error";return u.jsxs(u.Fragment,{children:[t&&u.jsx(k.Typography,{variant:"body2",sx:{p:"10px",m:"auto"},children:t}),u.jsx("pre",{style:{whiteSpace:"pre-wrap",color:"red",padding:"10px",margin:"auto"},children:n})]})}function C4({initialSelectedModels:e,onModelChange:t,resourceUri:n}){const{environmentName:r,packageName:o,versionId:a}=kt(n),{apiClients:i}=Ee.useServer(),{data:s,isLoading:l,isSuccess:c,isError:d,error:p}=Nt({queryKey:["models",r,o,a],queryFn:()=>i.models.listModels(r,o,a)}),[h,f]=H.useState(e||[]),[m,g]=H.useState(null);H.useEffect(()=>{f(e||[])},[e]);const b=T=>{const S=h.filter(D=>D!==T);f(S),t(S)},x=T=>{const S=[...h,T];f(S),t(S),g(null)};let E=[];return c&&s?.data&&(E=s.data.filter(T=>!h.includes(T.path)).map(T=>T.path)),d?u.jsx(on,{error:p,context:`${r} > ${o} > Model Picker`}):u.jsxs(u.Fragment,{children:[u.jsxs(k.FormControl,{fullWidth:!0,children:[l&&u.jsx(k.Typography,{children:"Loading..."}),u.jsxs(k.Stack,{direction:"row",spacing:1,children:[h.map(T=>u.jsx(k.Chip,{label:T,onDelete:()=>b(T),deleteIcon:u.jsx(Jn,{}),sx:{marginBottom:"5px"}},T)),u.jsx(k.Button,{size:"small",startIcon:u.jsx(E4,{}),onClick:T=>g(T.currentTarget),disabled:l||d||E.length===0,children:"Add Model"})]})]}),u.jsxs(k.Menu,{anchorEl:m,open:!!m,onClose:()=>g(null),children:[u.jsx(k.Typography,{variant:"subtitle2",sx:{ml:1},children:"Models"}),u.jsx(k.Divider,{}),E.length===0?u.jsx(k.MenuItem,{disabled:!0,children:"No models available"}):E.map(T=>u.jsx(k.MenuItem,{onClick:()=>x(T),children:u.jsx(k.Typography,{variant:"body2",children:T})},T))]})]})}function z1(){const e=mx.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 T4({workbookPath:e,resourceUri:t}){const n=z1(),{server:r,getAccessToken:o}=Ee.useServer(),{apiClients:a}=Ee.useServer(),{workbookStorage:i}=wd(),{environmentName:s,packageName:l}=kt(t),[c,d]=H.useState(void 0),[p,h]=H.useState(void 0);if(!i)throw new Error("Workbook storage be provided via WorkbookStorageProvider");const[f,m]=H.useState(),[g,b]=H.useState(),[x,E]=H.useState(),[T,S]=H.useState([]),[D,C]=H.useState(null),[O,R]=H.useState(null),B=!!D,M=()=>{C(null),R(null)},N=(Z,ee)=>{f&&(m(f.insertCell(ee,{isMarkdown:Z,value:""})),Z?E(ee):b(ee),M(),console.log("handleAddCell",Z,ee))},[v,F]=H.useState(!1),I=()=>{F(!0)},P=async()=>{e&&i&&await i.deleteWorkbook(e).then(()=>{h(void 0),d(void 0)}).catch(Z=>{h(`Error deleting workbook: ${Z.message}`),d(void 0)}),F(!1),n(`/${s}/${l}`)},L=()=>{F(!1)},U=H.useCallback(async()=>{if(!f){console.log("No workbook data ref");return}try{m(await f.saveWorkbook()),h(void 0),d("Workbook saved")}catch(Z){h(`Error saving workbook: ${Z.message}`),d(void 0)}},[f]);if(H.useEffect(()=>{if(!f)return;(async()=>{const ee=new Map(T.map(({modelPath:Q,sourceInfos:V})=>[Q,V])),_=[],oe=[];for(const Q of f.getModels())ee.has(Q)?_.push({modelPath:Q,sourceInfos:ee.get(Q)}):(console.log("Fetching model from Publisher",Q),oe.push(a.models.getModel(s,l,Q,void 0).then(V=>({modelPath:Q,sourceInfos:V.data.sourceInfos.map(J=>JSON.parse(J))}))));if(oe.length>0){const Q=await Promise.all(oe);S([..._,...Q])}else S(_)})()},[o,f,l,s,r]),H.useEffect(()=>{e&&Zo.loadWorkbook(i,e).then(Z=>{m(Z)})},[e,i]),!f)return u.jsx("div",{children:"Loading..."});const W=Z=>{const ee=[];for(const _ of Z)for(const oe of _.sourceInfos)ee.push({modelPath:_.modelPath,sourceInfo:oe});return ee},z=(Z,ee)=>u.jsx(k.Button,{size:"small",startIcon:u.jsx(kl,{}),onClick:()=>N(Z,ee),variant:"contained",sx:{backgroundColor:_=>_.palette.background.paper,color:_=>_.palette.mode==="dark"?_.palette.grey[100]:_.palette.grey[700],boxShadow:"none","&:hover":{backgroundColor:_=>_.palette.mode==="dark"?_.palette.grey[500]:_.palette.grey[300],boxShadow:"none"}},children:Z?"Markdown":"Explore"}),A=u.jsxs(k.Box,{sx:{display:"flex",gap:1,justifyContent:"center",flex:2},children:[z(!1,f.getCells().length),z(!0,f.getCells().length)]});return u.jsxs(Ee.StyledCard,{variant:"outlined",children:[u.jsxs(Ee.StyledCardContent,{children:[u.jsx(k.Box,{sx:{mb:2},children:u.jsx(k.Box,{sx:{minHeight:"24px"},children:p?u.jsx(k.Typography,{color:"error",variant:"body2",children:p}):c?u.jsx(k.Typography,{color:"success",variant:"body2",children:c}):u.jsx("span",{children:" "})})}),u.jsxs(jo,{sx:{flexDirection:"row",justifyContent:"space-between",alignItems:"center"},children:[u.jsxs(jo,{direction:"row",spacing:1,alignItems:"center",children:[u.jsx(k.Typography,{variant:"overline",sx:{fontSize:"13px",fontWeight:"bold",verticalAlign:"middle"},children:"Workbook"}),u.jsx(k.Typography,{variant:"subtitle2",sx:{fontSize:"13px",fontWeight:"normal",verticalAlign:"middle",ml:1},children:`${e.workspace} > ${e.path}`})]}),u.jsxs(jo,{sx:{display:"flex",flexDirection:"row",gap:1},children:[u.jsx(k.Box,{sx:{display:"flex",alignItems:"center",mt:1,mb:1},children:u.jsx(v4,{workbookData:f})}),u.jsxs(k.Box,{sx:{display:"flex",alignItems:"center",mt:1,mb:1},children:[u.jsx(k.Button,{color:"error",onClick:I,size:"small",children:"Delete"}),u.jsxs(k.Dialog,{open:v,onClose:L,children:[u.jsx(k.DialogTitle,{children:"Delete Workbook"}),u.jsx(k.DialogContent,{children:u.jsxs(k.DialogContentText,{children:['Are you sure you want to delete the workbook "',e.path,'"? This action cannot be undone.']})}),u.jsxs(k.DialogActions,{children:[u.jsx(k.Button,{onClick:L,color:"primary",size:"small",children:"Cancel"}),u.jsx(k.Button,{onClick:P,color:"error",autoFocus:!0,size:"small",children:"Delete"})]})]})]})]})]}),u.jsx(k.Divider,{}),u.jsxs(jo,{sx:{display:"flex",flexDirection:"row",width:"100%",mt:2},children:[u.jsx(k.Box,{sx:{flex:1},children:u.jsx(C4,{initialSelectedModels:f.getModels(),onModelChange:Z=>{m(f.setModels(Z)),U()},resourceUri:t})}),u.jsx(k.Box,{sx:{flex:1}})]})]}),u.jsx(Ee.StyledCardMedia,{children:u.jsxs(jo,{children:[f.getCells().length===0&&u.jsxs(u.Fragment,{children:[u.jsx(k.Typography,{sx:{textAlign:"center",p:2,variant:"subtitle2",fontWeight:"medium"},children:"Workbook is empty"}),u.jsx(k.Typography,{variant:"body2",sx:{textAlign:"center",mb:2,variant:"body2"},children:"Click the + buttons to add a markdown or code cell."})]}),f.getCells().map((Z,ee)=>u.jsx(H.Fragment,{children:u.jsx(y4,{cell:Z,resourceUri:t,addButtonCallback:_=>z(_,ee),sourceAndPaths:W(T),editingMarkdown:x===ee,editingMalloy:g===ee,onDelete:()=>{m(f.deleteCell(ee)),U()},onCellChange:_=>{m(f.setCell(ee,_))},onEdit:()=>{Z.isMarkdown?E(ee):b(ee)},onClose:()=>{Z.isMarkdown?E(void 0):b(void 0),U()}},`${ee}-${Z.isMarkdown}-${e.workspace}-${e.path}`)},`${ee}-${f.getCells().length}`)),A,u.jsxs(k.Menu,{anchorEl:D,open:B,onClose:M,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[u.jsx(k.MenuItem,{onClick:()=>N(!0,O??0),children:"Add Markdown"}),u.jsx(k.MenuItem,{onClick:()=>N(!1,O??0),children:"Add Malloy"})]}),u.jsx(jo,{sx:{flexDirection:"row",justifyContent:"flex-end",p:1}})]})})]})}function v4({workbookData:e}){const[t,n]=H.useState(!1),r=async()=>{if(!e)return;const o=e.toMalloyWorkbook();try{await navigator.clipboard.writeText(o),n(!0),setTimeout(()=>n(!1),1500)}catch{n(!1),alert("Failed to copy to clipboard")}};return u.jsx(k.Button,{color:"primary",onClick:r,size:"small",children:t?"Copied!":"Export"})}function U1({onWorkbookClick:e}){const{workbookStorage:t}=wd(),[n,r]=H.useState([]),[o,a]=H.useState(void 0);return H.useEffect(()=>{t&&t.listWorkspaces(!1).then(i=>{const s=[];Promise.all(i.map(async l=>{await t.listWorkbooks(l).then(c=>{s.push(...c)}).catch(c=>{a(`Error listing workbooks: ${c.message}`)})})).then(()=>{r(s),a(void 0)})})},[t]),u.jsxs(u.Fragment,{children:[o&&u.jsx(k.Box,{sx:{mb:2},children:u.jsx(k.Typography,{color:"error",variant:"body2",children:o})}),u.jsx(k.Divider,{}),u.jsx(k.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:u.jsxs(k.List,{dense:!0,children:[n.length===0&&u.jsx(k.ListItem,{children:u.jsx(k.ListItemText,{primary:"No workbooks found.",sx:{textAlign:"center"}})}),n.map(i=>u.jsx(k.ListItem,{onClick:s=>e(i,s),sx:{cursor:"pointer","&:hover":{backgroundColor:"action.hover"}},children:u.jsx(k.ListItemText,{primary:i.path})},i.path))]})})]})}const Sh="Local";class S4{async listWorkspaces(t){return Promise.resolve([{name:Sh,description:"Stored locally- only accessible to this browser",writeable:!0}])}async listWorkbooks(t){const n=[];for(let r=0;r<localStorage.length;r++){const o=localStorage.key(r);n.push({path:o,workspace:Sh})}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)}}function k4({onWorkbookSelect:e}){const{workbookStorage:t}=wd(),[n,r]=H.useState(""),[o,a]=H.useState(""),[i,s]=H.useState([]),[l,c]=H.useState(null),[d,p]=H.useState(!1),[h,f]=H.useState(!1),m=!!l,g=C=>{c(C.currentTarget)},b=()=>{c(null)},x=()=>{f(!1)},E=()=>{p(!1),r(""),a("")};H.useEffect(()=>{t&&(console.log("fetching workspaces"),t.listWorkspaces(!0).then(C=>{s(C),C.length===1&&a(C[0].name)}).catch(C=>{console.error("Error fetching workspaces:",C),s([])}))},[t]);const T=(C,O)=>{f(!1),e(C,O)},S=C=>{p(!1),e({path:n,workspace:o},C),r(""),a("")},D=i.length===0;return u.jsxs(u.Fragment,{children:[u.jsx(k.Button,{"aria-controls":m?"basic-menu":void 0,"aria-haspopup":"true","aria-expanded":m?"true":void 0,onClick:g,variant:"contained",sx:{height:"40px",px:2,backgroundColor:"#fbbb04","&:hover":{backgroundColor:"#eab308"}},children:"Analyze Package"}),u.jsxs(k.Menu,{id:"basic-menu",anchorEl:l,open:m,onClose:b,MenuListProps:{"aria-labelledby":"basic-button",sx:{py:.5}},children:[u.jsxs(k.MenuItem,{onClick:()=>{p(!0),b()},sx:{py:1,px:2},disabled:D,children:[u.jsx(k.ListItemIcon,{children:u.jsx(nn.Add,{fontSize:"small"})}),u.jsxs(k.ListItemText,{children:[u.jsx(k.Typography,{variant:"body2",fontWeight:500,children:"New Workbook"}),D?u.jsx(k.Typography,{variant:"caption",color:"text.secondary",children:"No workspaces available"}):u.jsx(k.Typography,{variant:"caption",color:"text.secondary",children:"Create a new analysis workbook"})]})]}),u.jsxs(k.MenuItem,{onClick:()=>{f(!0),b()},sx:{py:1,px:2},children:[u.jsx(k.ListItemIcon,{children:u.jsx(nn.Launch,{fontSize:"small"})}),u.jsxs(k.ListItemText,{children:[u.jsx(k.Typography,{variant:"body2",fontWeight:500,children:"Open Workbook"}),u.jsx(k.Typography,{variant:"caption",color:"text.secondary",children:"Open an existing workbook"})]})]})]}),u.jsxs(k.Dialog,{open:d,onClose:E,maxWidth:"sm",fullWidth:!0,children:[u.jsxs(k.DialogTitle,{sx:{pb:1,pt:2,px:2},children:[u.jsx(k.Typography,{fontWeight:600,sx:{fontSize:"1.5rem",mb:.5},children:"Create New Workbook"}),u.jsx(k.Typography,{variant:"body2",color:"text.secondary",children:"Start a new analysis workbook to explore your data"})]}),u.jsx(k.DialogContent,{sx:{px:2,pb:2},children:u.jsxs(k.Stack,{spacing:2,sx:{mt:1},children:[i.length>1?u.jsxs(k.FormControl,{fullWidth:!0,size:"small",children:[u.jsx(k.InputLabel,{children:"Workspace"}),u.jsx(k.Select,{value:o,label:"Workspace",onChange:C=>a(C.target.value),children:i.map(C=>u.jsx(k.MenuItem,{value:C.name,children:u.jsxs(k.Box,{children:[u.jsx(k.Typography,{variant:"body2",fontWeight:500,children:C.name}),u.jsx(k.Typography,{variant:"caption",color:"text.secondary",children:C.description})]})},C.name))})]}):i.length===1?u.jsxs(k.Box,{sx:C=>({p:2,border:1,borderColor:"divider",borderRadius:1,backgroundColor:C.palette.mode==="dark"?"rgba(255, 255, 255, 0.04)":"grey.50"}),children:[u.jsxs(k.Typography,{variant:"body2",fontWeight:500,gutterBottom:!0,children:["Workspace: ",i[0].name]}),u.jsx(k.Typography,{variant:"caption",color:"text.secondary",children:i[0].description})]}):null,u.jsx(k.FormControl,{fullWidth:!0,children:u.jsx(k.TextField,{label:"Workbook Name",value:n,onChange:C=>r(C.target.value),placeholder:"Enter workbook name...",fullWidth:!0,autoFocus:!0,size:"small"})}),u.jsxs(k.Stack,{direction:"row",spacing:1,justifyContent:"flex-end",children:[u.jsx(k.Button,{onClick:E,variant:"outlined",size:"small",children:"Cancel"}),u.jsx(k.Button,{onClick:C=>S(C),variant:"contained",disabled:!n.trim()||i.length>1&&!o,size:"small",children:"Create Workbook"})]})]})})]}),u.jsxs(k.Dialog,{open:h,onClose:x,maxWidth:"md",fullWidth:!0,children:[u.jsxs(k.DialogTitle,{sx:{pb:1,pt:2,px:2},children:[u.jsx(k.Typography,{fontWeight:600,sx:{mb:.5,fontSize:"1.5rem"},children:"Open Workbook"}),u.jsx(k.Typography,{variant:"body2",color:"text.secondary",children:"Select an existing workbook to continue your analysis"})]}),u.jsx(k.DialogContent,{sx:{px:2,pb:2},children:u.jsx(U1,{onWorkbookClick:T})})]})]})}function D4({resourceUri:e}){const{environmentName:t}=kt(e),{apiClients:n}=Ee.useServer(),[r,o]=H.useState(!1),a=90,{data:i,isSuccess:s,isError:l,error:c}=Nt({queryKey:["about",t],queryFn:()=>n.environments.getEnvironment(t,!1)}),d=i?.data?.readme||"",p=d.split(/\s+/),h=p.length>a,f=p.slice(0,a).join(" ");return u.jsxs(u.Fragment,{children:[!s&&!l&&u.jsx(rn,{text:"Fetching About..."}),s&&d&&u.jsx(Ee.PackageCard,{children:u.jsxs(Ee.PackageCardContent,{children:[u.jsx(Ee.PackageSectionTitle,{children:"Readme"}),u.jsxs(k.Box,{sx:{mt:1,fontSize:"0.875rem",lineHeight:1.6},children:[u.jsx(zs,{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?d:f}),h&&u.jsxs(k.Box,{sx:{mt:1},children:[" ",u.jsx(k.Button,{variant:"text",size:"small",onClick:()=>o(!r),children:r?"Read less":"Read more"})]})]})]})}),l&&u.jsx(on,{error:c,context:`${t} > About`})]})}function w4({resourceUri:e}){const[t,n]=H.useState(!1),{apiClients:r}=Ee.useServer(),o=hr.useQueryClient(),[a,i]=H.useState(""),{environmentName:s}=kt(e),l=wn({async mutationFn(d){return r.packages.createPackage(s,{name:d.name,description:d.description,location:d.location})},onSuccess(){n(!1),i("Package created successfully"),o.invalidateQueries({queryKey:["packages",s]})},onError(d){i(d instanceof Error?d.message:"An unknown error occurred")}}),c=d=>{d.preventDefault();const p=new FormData(d.currentTarget),h=p.get("name")?.toString(),f=p.get("description")?.toString(),m=p.get("location")?.toString();l.mutate({name:h,description:f,location:m})};return u.jsxs(u.Fragment,{children:[u.jsx(k.Button,{onClick:()=>n(!0),variant:"contained",color:"primary",startIcon:u.jsx(nn.Add,{}),children:"Add Package"}),u.jsxs(k.Dialog,{open:t,onClose:()=>n(!1),maxWidth:"sm",fullWidth:!0,PaperProps:{sx:{borderRadius:2}},children:[u.jsx(k.DialogTitle,{sx:{fontSize:"1.25rem",fontWeight:600,letterSpacing:"-0.025em",pt:3,pb:1,px:3},children:"Create New Package"}),u.jsxs(k.DialogContent,{sx:{px:3,pb:0},children:[u.jsxs(k.Box,{sx:{mb:3},children:[u.jsx(k.Typography,{variant:"body2",color:"text.secondary",sx:{mb:1.5},children:"Create a new Malloy package to start exploring your data."}),u.jsx(k.Typography,{variant:"body2",color:"text.secondary",sx:{mb:1.5},children:"The location can be a GitHub/S3/GCP URL containing a package (zipped or unzipped), or an absolute path to a directory the publisher server has access to."}),u.jsxs(k.Typography,{variant:"body2",color:"text.secondary",children:["Make sure to conform to the"," ",u.jsx(k.Box,{component:"a",href:"https://github.com/malloydata/publisher/blob/main/README.md#architecture-overview",target:"_blank",rel:"noopener noreferrer",sx:{color:"text.primary",textDecoration:"underline"},children:"Malloy Package Format"}),"."]})]}),u.jsx("form",{onSubmit:c,id:"package-form",children:u.jsxs(k.Stack,{spacing:2.5,children:[u.jsx(k.TextField,{autoFocus:!0,required:!0,id:"name",name:"name",label:"Package Name",type:"text",fullWidth:!0,variant:"outlined",size:"small",InputLabelProps:{shrink:!0}}),u.jsx(k.TextField,{id:"description",name:"description",label:"Description",multiline:!0,rows:3,fullWidth:!0,variant:"outlined",size:"small",InputLabelProps:{shrink:!0}}),u.jsx(k.TextField,{id:"location",name:"location",label:"Location",type:"text",placeholder:"e.g. s3://my-bucket/my-package.zip",fullWidth:!0,variant:"outlined",size:"small",InputLabelProps:{shrink:!0}})]})})]}),u.jsxs(k.DialogActions,{sx:{px:3,pt:2,pb:3,gap:1},children:[u.jsx(k.Button,{variant:"outlined",disabled:l.isPending,onClick:()=>n(!1),children:"Cancel"}),u.jsx(k.Button,{type:"submit",form:"package-form",variant:"contained",loading:l.isPending,children:"Save Changes"})]})]}),u.jsx(k.Snackbar,{open:a!=="",autoHideDuration:6e3,onClose:()=>i(""),message:a})]})}const I4=tt(u.jsx("path",{d:"M2 20h20v-4H2zm2-3h2v2H4zM2 4v4h20V4zm4 3H4V5h2zm-4 7h20v-4H2zm2-3h2v2H4z"})),V1=tt(u.jsx("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"}));function W1(e){const{theme:t,name:n,props:r}=e;return!t||!t.components||!t.components[n]||!t.components[n].defaultProps?r:vi(t.components[n].defaultProps,r)}function A4({props:e,name:t,defaultTheme:n,themeId:r}){let o=Q2(n);return o=o[r]||o,W1({theme:o,name:t,props:e})}function Dt({props:e,name:t}){return A4({props:e,name:t,defaultTheme:Sl,themeId:ma})}const P4=Oe("MuiBox",["root"]),R4=d0(),At=pt.createBox({themeId:ma,defaultTheme:R4,defaultClassName:P4.root,generateClassName:Qm.generate}),q1=de.oneOfType([de.func,de.object]);function kh(e){try{return e.matches(":focus-visible")}catch{}return!1}const Dh={};function Y1(e,t){const n=w.useRef(Dh);return n.current===Dh&&(n.current=e(t)),n}class rl{static create(){return new rl}static use(){const t=Y1(rl.create).current,[n,r]=w.useState(!1);return t.shouldMount=n,t.setShouldMount=r,w.useEffect(t.mountEffect,[n]),t}constructor(){this.ref={current:null},this.mounted=null,this.didMount=!1,this.shouldMount=!1,this.setShouldMount=null}mount(){return this.mounted||(this.mounted=O4(),this.shouldMount=!0,this.setShouldMount(this.shouldMount)),this.mounted}mountEffect=()=>{this.shouldMount&&!this.didMount&&this.ref.current!==null&&(this.didMount=!0,this.mounted.resolve())};start(...t){this.mount().then(()=>this.ref.current?.start(...t))}stop(...t){this.mount().then(()=>this.ref.current?.stop(...t))}pulsate(...t){this.mount().then(()=>this.ref.current?.pulsate(...t))}}function M4(){return rl.use()}function O4(){let e,t;const n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n}function Dc(e,t){return Dc=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},Dc(e,t)}function Id(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,Dc(e,t)}function L4(e,t){return e.classList?!!t&&e.classList.contains(t):(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")!==-1}function N4(e,t){e.classList?e.classList.add(t):L4(e,t)||(typeof e.className=="string"?e.className=e.className+" "+t:e.setAttribute("class",(e.className&&e.className.baseVal||"")+" "+t))}function wh(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function F4(e,t){e.classList?e.classList.remove(t):typeof e.className=="string"?e.className=wh(e.className,t):e.setAttribute("class",wh(e.className&&e.className.baseVal||"",t))}const Ih={disabled:!1},ol=H.createContext(null);var K1=function(t){return t.scrollTop},ni="unmounted",lo="exited",uo="entering",qo="entered",wc="exiting",Yn=(function(e){Id(t,e);function t(r,o){var a;a=e.call(this,r,o)||this;var i=o,s=i&&!i.isMounting?r.enter:r.appear,l;return a.appearStatus=null,r.in?s?(l=lo,a.appearStatus=uo):l=qo:r.unmountOnExit||r.mountOnEnter?l=ni:l=lo,a.state={status:l},a.nextCallback=null,a}t.getDerivedStateFromProps=function(o,a){var i=o.in;return i&&a.status===ni?{status:lo}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(o){var a=null;if(o!==this.props){var i=this.state.status;this.props.in?i!==uo&&i!==qo&&(a=uo):(i===uo||i===qo)&&(a=wc)}this.updateStatus(!1,a)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var o=this.props.timeout,a,i,s;return a=i=s=o,o!=null&&typeof o!="number"&&(a=o.exit,i=o.enter,s=o.appear!==void 0?o.appear:i),{exit:a,enter:i,appear:s}},n.updateStatus=function(o,a){if(o===void 0&&(o=!1),a!==null)if(this.cancelNextCallback(),a===uo){if(this.props.unmountOnExit||this.props.mountOnEnter){var i=this.props.nodeRef?this.props.nodeRef.current:Za.findDOMNode(this);i&&K1(i)}this.performEnter(o)}else this.performExit();else this.props.unmountOnExit&&this.state.status===lo&&this.setState({status:ni})},n.performEnter=function(o){var a=this,i=this.props.enter,s=this.context?this.context.isMounting:o,l=this.props.nodeRef?[s]:[Za.findDOMNode(this),s],c=l[0],d=l[1],p=this.getTimeouts(),h=s?p.appear:p.enter;if(!o&&!i||Ih.disabled){this.safeSetState({status:qo},function(){a.props.onEntered(c)});return}this.props.onEnter(c,d),this.safeSetState({status:uo},function(){a.props.onEntering(c,d),a.onTransitionEnd(h,function(){a.safeSetState({status:qo},function(){a.props.onEntered(c,d)})})})},n.performExit=function(){var o=this,a=this.props.exit,i=this.getTimeouts(),s=this.props.nodeRef?void 0:Za.findDOMNode(this);if(!a||Ih.disabled){this.safeSetState({status:lo},function(){o.props.onExited(s)});return}this.props.onExit(s),this.safeSetState({status:wc},function(){o.props.onExiting(s),o.onTransitionEnd(i.exit,function(){o.safeSetState({status:lo},function(){o.props.onExited(s)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(o,a){a=this.setNextCallback(a),this.setState(o,a)},n.setNextCallback=function(o){var a=this,i=!0;return this.nextCallback=function(s){i&&(i=!1,a.nextCallback=null,o(s))},this.nextCallback.cancel=function(){i=!1},this.nextCallback},n.onTransitionEnd=function(o,a){this.setNextCallback(a);var i=this.props.nodeRef?this.props.nodeRef.current:Za.findDOMNode(this),s=o==null&&!this.props.addEndListener;if(!i||s){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var l=this.props.nodeRef?[this.nextCallback]:[i,this.nextCallback],c=l[0],d=l[1];this.props.addEndListener(c,d)}o!=null&&setTimeout(this.nextCallback,o)},n.render=function(){var o=this.state.status;if(o===ni)return null;var a=this.props,i=a.children;a.in,a.mountOnEnter,a.unmountOnExit,a.appear,a.enter,a.exit,a.timeout,a.addEndListener,a.onEnter,a.onEntering,a.onEntered,a.onExit,a.onExiting,a.onExited,a.nodeRef;var s=He(a,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return H.createElement(ol.Provider,{value:null},typeof i=="function"?i(o,s):H.cloneElement(H.Children.only(i),s))},t})(H.Component);Yn.contextType=ol;Yn.propTypes={};function Uo(){}Yn.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:Uo,onEntering:Uo,onEntered:Uo,onExit:Uo,onExiting:Uo,onExited:Uo};Yn.UNMOUNTED=ni;Yn.EXITED=lo;Yn.ENTERING=uo;Yn.ENTERED=qo;Yn.EXITING=wc;var _4=function(t,n){return t&&n&&n.split(" ").forEach(function(r){return N4(t,r)})},Hu=function(t,n){return t&&n&&n.split(" ").forEach(function(r){return F4(t,r)})},Ad=(function(e){Id(t,e);function t(){for(var r,o=arguments.length,a=new Array(o),i=0;i<o;i++)a[i]=arguments[i];return r=e.call.apply(e,[this].concat(a))||this,r.appliedClasses={appear:{},enter:{},exit:{}},r.onEnter=function(s,l){var c=r.resolveArguments(s,l),d=c[0],p=c[1];r.removeClasses(d,"exit"),r.addClass(d,p?"appear":"enter","base"),r.props.onEnter&&r.props.onEnter(s,l)},r.onEntering=function(s,l){var c=r.resolveArguments(s,l),d=c[0],p=c[1],h=p?"appear":"enter";r.addClass(d,h,"active"),r.props.onEntering&&r.props.onEntering(s,l)},r.onEntered=function(s,l){var c=r.resolveArguments(s,l),d=c[0],p=c[1],h=p?"appear":"enter";r.removeClasses(d,h),r.addClass(d,h,"done"),r.props.onEntered&&r.props.onEntered(s,l)},r.onExit=function(s){var l=r.resolveArguments(s),c=l[0];r.removeClasses(c,"appear"),r.removeClasses(c,"enter"),r.addClass(c,"exit","base"),r.props.onExit&&r.props.onExit(s)},r.onExiting=function(s){var l=r.resolveArguments(s),c=l[0];r.addClass(c,"exit","active"),r.props.onExiting&&r.props.onExiting(s)},r.onExited=function(s){var l=r.resolveArguments(s),c=l[0];r.removeClasses(c,"exit"),r.addClass(c,"exit","done"),r.props.onExited&&r.props.onExited(s)},r.resolveArguments=function(s,l){return r.props.nodeRef?[r.props.nodeRef.current,s]:[s,l]},r.getClassNames=function(s){var l=r.props.classNames,c=typeof l=="string",d=c&&l?l+"-":"",p=c?""+d+s:l[s],h=c?p+"-active":l[s+"Active"],f=c?p+"-done":l[s+"Done"];return{baseClassName:p,activeClassName:h,doneClassName:f}},r}var n=t.prototype;return n.addClass=function(o,a,i){var s=this.getClassNames(a)[i+"ClassName"],l=this.getClassNames("enter"),c=l.doneClassName;a==="appear"&&i==="done"&&c&&(s+=" "+c),i==="active"&&o&&K1(o),s&&(this.appliedClasses[a][i]=s,_4(o,s))},n.removeClasses=function(o,a){var i=this.appliedClasses[a],s=i.base,l=i.active,c=i.done;this.appliedClasses[a]={},s&&Hu(o,s),l&&Hu(o,l),c&&Hu(o,c)},n.render=function(){var o=this.props;o.classNames;var a=He(o,["classNames"]);return H.createElement(Yn,$({},a,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},t})(H.Component);Ad.defaultProps={classNames:""};Ad.propTypes={};function B4(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Pd(e,t){var n=function(a){return t&&H.isValidElement(a)?t(a):a},r=Object.create(null);return e&&H.Children.map(e,function(o){return o}).forEach(function(o){r[o.key]=n(o)}),r}function j4(e,t){e=e||{},t=t||{};function n(d){return d in t?t[d]:e[d]}var r=Object.create(null),o=[];for(var a in e)a in t?o.length&&(r[a]=o,o=[]):o.push(a);var i,s={};for(var l in t){if(r[l])for(i=0;i<r[l].length;i++){var c=r[l][i];s[r[l][i]]=n(c)}s[l]=n(l)}for(i=0;i<o.length;i++)s[o[i]]=n(o[i]);return s}function fo(e,t,n){return n[t]!=null?n[t]:e.props[t]}function $4(e,t){return Pd(e.children,function(n){return H.cloneElement(n,{onExited:t.bind(null,n),in:!0,appear:fo(n,"appear",e),enter:fo(n,"enter",e),exit:fo(n,"exit",e)})})}function H4(e,t,n){var r=Pd(e.children),o=j4(t,r);return Object.keys(o).forEach(function(a){var i=o[a];if(H.isValidElement(i)){var s=a in t,l=a in r,c=t[a],d=H.isValidElement(c)&&!c.props.in;l&&(!s||d)?o[a]=H.cloneElement(i,{onExited:n.bind(null,i),in:!0,exit:fo(i,"exit",e),enter:fo(i,"enter",e)}):!l&&s&&!d?o[a]=H.cloneElement(i,{in:!1}):l&&s&&H.isValidElement(c)&&(o[a]=H.cloneElement(i,{onExited:n.bind(null,i),in:c.props.in,exit:fo(i,"exit",e),enter:fo(i,"enter",e)}))}}),o}var z4=Object.values||function(e){return Object.keys(e).map(function(t){return e[t]})},U4={component:"div",childFactory:function(t){return t}},Ki=(function(e){Id(t,e);function t(r,o){var a;a=e.call(this,r,o)||this;var i=a.handleExited.bind(B4(a));return a.state={contextValue:{isMounting:!0},handleExited:i,firstRender:!0},a}var n=t.prototype;return n.componentDidMount=function(){this.mounted=!0,this.setState({contextValue:{isMounting:!1}})},n.componentWillUnmount=function(){this.mounted=!1},t.getDerivedStateFromProps=function(o,a){var i=a.children,s=a.handleExited,l=a.firstRender;return{children:l?$4(o,s):H4(o,i,s),firstRender:!1}},n.handleExited=function(o,a){var i=Pd(this.props.children);o.key in i||(o.props.onExited&&o.props.onExited(a),this.mounted&&this.setState(function(s){var l=$({},s.children);return delete l[o.key],{children:l}}))},n.render=function(){var o=this.props,a=o.component,i=o.childFactory,s=He(o,["component","childFactory"]),l=this.state.contextValue,c=z4(this.state.children).map(i);return delete s.appear,delete s.enter,delete s.exit,a===null?H.createElement(ol.Provider,{value:l},c):H.createElement(ol.Provider,{value:l},H.createElement(a,s,c))},t})(H.Component);Ki.propTypes={};Ki.defaultProps=U4;const V4=[];function W4(e){w.useEffect(e,V4)}class Rd{static create(){return new Rd}currentId=null;start(t,n){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,n()},t)}clear=()=>{this.currentId!==null&&(clearTimeout(this.currentId),this.currentId=null)};disposeEffect=()=>this.clear}function $l(){const e=Y1(Rd.create).current;return W4(e.disposeEffect),e}function q4(e){const{className:t,classes:n,pulsate:r=!1,rippleX:o,rippleY:a,rippleSize:i,in:s,onExited:l,timeout:c}=e,[d,p]=w.useState(!1),h=Pe(t,n.ripple,n.rippleVisible,r&&n.ripplePulsate),f={width:i,height:i,top:-(i/2)+a,left:-(i/2)+o},m=Pe(n.child,d&&n.childLeaving,r&&n.childPulsate);return!s&&!d&&p(!0),w.useEffect(()=>{if(!s&&l!=null){const g=setTimeout(l,c);return()=>{clearTimeout(g)}}},[l,s,c]),u.jsx("span",{className:h,style:f,children:u.jsx("span",{className:m})})}const Ln=Oe("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),Ic=550,Y4=80,K4=pt.keyframes`
92
+ `).length,length:be.target.value.length}))}};return u.jsx(va.Provider,{value:$({},z,{dispatch:A}),children:u.jsxs("div",$({ref:Z,className:oe},L,{onClick:ne,style:te,children:[u.jsx(vh,{hideToolbar:v,toolbarBottom:F,prefixCls:r,overflow:b,placement:"top"}),u.jsxs("div",{className:r+"-content",children:[/(edit|live)/.test(z.preview||"")&&u.jsx(o4,$({className:r+"-input",prefixCls:r,autoFocus:D},E,{onChange:pe,renderTextarea:I?.textarea||P,onScroll:be=>G(be,"text")})),/(live|preview)/.test(z.preview||"")&&Y]}),h&&!z.fullscreen&&u.jsx(i4,{prefixCls:r,height:z.height,maxHeight:T,minHeight:S,onChange:xe}),u.jsx(vh,{hideToolbar:v,toolbarBottom:F,prefixCls:r,overflow:b,placement:"bottom"})]}))})}),j1=u4;j1.Markdown=R1;const ju={scopeName:"source.malloy",patterns:[{include:"#malloy-language"}],repository:{"malloy-language":{patterns:[{include:"#sql-string"},{include:"#comments"},{include:"#tags"},{include:"#strings"},{include:"#numbers"},{include:"#keywords"},{include:"#properties"},{include:"#functions"},{include:"#datetimes"},{include:"#identifiers-quoted"},{include:"#types"},{include:"#constants"},{include:"#timeframes"},{include:"#identifiers-unquoted"}]},"malloy-matched":{begin:"{",end:"}",patterns:[{include:"#malloy-matched"},{include:"#malloy-language"}]},"malloy-in-sql":{begin:"%{",name:"source.malloy-in-sql",end:"}%?",patterns:[{include:"#malloy-matched"},{include:"#malloy-language"}]},"sql-string":{patterns:[{begin:'(\\b[A-Za-z_][A-Za-z_0-9]*)(\\s*\\.\\s*)(sql)(\\s*\\(\\s*)(""")',end:'"""',beginCaptures:{1:{name:"variable.other"},3:{name:"keyword.control.sql"},5:{name:"punctuation.sql-block.open"}},endCaptures:{0:{name:"punctuation.sql-block.close"}},name:"source.sql",patterns:[{include:"#malloy-in-sql"},{include:"source.sql"}]}]},functions:{patterns:[{match:"(?i)\\b(count)(\\s*\\()(distinct)",captures:{1:{name:"entity.name.function"},3:{name:"entity.name.function.modifier"}}},{match:"(?i)\\b(AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE|UNGROUPED)(\\s*\\()",captures:{1:{name:"entity.name.function"}}},{match:"(?i)\\b([a-zA-Z_][a-zA-Z_0-9]*)(\\s*\\()",captures:{1:{name:"entity.name.function"}}},{match:"(?i)\\b([a-zA-Z_][a-zA-Z_0-9]*)(!)(timestamp|number|string|boolean|date)?(\\s*\\()",captures:{1:{name:"entity.name.function"},3:{name:"entity.name.type"}}}]},datetimes:{patterns:[{match:"(?i)@[0-9]{4}-[0-9]{2}-[0-9]{2}[ T][0-9]{2}:[0-9]{2}((:[0-9]{2})(([\\.,][0-9]+)(\\[[A-Za-z_/]+\\])?)?)?",name:"constant.numeric.timestamp"},{match:"(?i)@[0-9]{4}(-Q[1-4]|-[0-9]{2}(-[0-9]{2}(-WK)?)?)?",name:"constant.numeric.date"}]},"identifiers-quoted":{patterns:[{match:"`[^`]*`",name:"variable.other.quoted"}]},"identifiers-unquoted":{patterns:[{match:"(?i)\\b[A-Za-z_][A-Za-z_0-9]*\\b",name:"variable.other"}]},timeframes:{patterns:[{match:"(?i)\\b((year|quarter|month|week|day|hour|minute|second)s?)\\b",name:"keyword.other.timeframe"},{match:"(?i)\\b(day_of_year|day_of_month)\\b",name:"keyword.other.timeframe"}]},comments:{patterns:[{begin:"/\\*",end:"\\*/",beginCaptures:{0:{name:"punctuation.definition.comment.begin"}},endCaptures:{0:{name:"punctuation.definition.comment.end"}},name:"comment.block"},{begin:"//",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-slash"},{begin:"--",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-hyphen"}]},tags:{patterns:[{match:"##\\n",name:"string.quoted",captures:{0:{name:"string.quoted"}}},{begin:'#"',end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-slash"},{match:"#\\n",name:"string.quoted",captures:{0:{name:"string.quoted"}}},{begin:"#\\s",end:"\\n",beginCaptures:{0:{name:"support.type.property-name.json"}},name:"comment.line.double-slash",patterns:[{include:"#tag-values"}]},{begin:"##\\s",end:"\\n",beginCaptures:{0:{name:"support.type.property-name.json"}},name:"comment.line.double-slash",patterns:[{include:"#tag-values"}]},{begin:"#",end:"\\n",beginCaptures:{0:{name:"string.quoted"}},name:"string.quoted"}],repository:{"tag-values":{name:"support.type.property-name.json",match:'(-)?((?:[^\\s=#]+)|(?:"[^#]+"))(?:\\s*(=)\\s*((?:[^\\s=#]+)|(?:"[^#]+")))?',captures:{1:{name:"keyword.control.negate"},2:{name:"support.type.property-name.json"},3:{name:"keyword.operator.comparison.ts"},4:{name:"string.quoted"}}}}},strings:{patterns:[{begin:"'",end:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin"}},endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.single",patterns:[{include:"#escapes"}]},{begin:'"',end:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin"}},endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.double",patterns:[{include:"#escapes"}]},{begin:'"""',end:'"""',beginCaptures:{0:{name:"punctuation.definition.string.begin"}},endCaptures:{0:{name:"punctuation.definition.string.end"}},name:"string.quoted.triple"},{begin:"(?i)[r|/]'",end:"'",name:"string.regexp",patterns:[{include:"#regex-escapes"}]}],repository:{escapes:{name:"constant.character.escape",match:"\\\\(u[A-Fa-f0-9]{4}|.)",captures:{0:{name:"constant.character.escape"}}},"regex-escapes":{name:"constant.character.escape",match:"\\\\.",captures:{0:{name:"constant.character.escape"}}}}},numbers:{match:"(?i)(\\b((0|[1-9][0-9]*)(E[+-]?[0-9]+|\\.[0-9]*)?)|\\.[0-9]+)",name:"constant.numeric"},constants:{patterns:[{match:"(?i)\\bnull\\b",name:"constant.language.null"},{match:"(?i)\\btrue\\b",name:"constant.language.true"},{match:"(?i)\\bfalse\\b",name:"constant.language.false"}]},types:{patterns:[{match:"(?i)\\bstring\\b",name:"entity.name.type.string"},{match:"(?i)\\bnumber\\b",name:"entity.name.type.number"},{match:"(?i)\\bdate\\b",name:"entity.name.type.date"},{match:"(?i)\\btimestamp\\b",name:"entity.name.type.timestamp"},{match:"(?i)\\bboolean\\b",name:"entity.name.type.boolean"}]},properties:{patterns:[{match:"(?i)\\baccept\\b",name:"keyword.control.accept"},{match:"(?i)\\bselect\\b",name:"keyword.control.select"},{match:"(?i)\\bconnection\\b",name:"keyword.control.connection"},{match:"(?i)\\brun\\b",name:"keyword.control.run"},{match:"(?i)\\bextend\\b",name:"keyword.control.extend"},{match:"(?i)\\brefine\\b",name:"keyword.control.refine"},{match:"(?i)\\baggregate\\b",name:"keyword.control.aggregate"},{match:"(?i)\\bsample\\b",name:"keyword.control.sample"},{match:"(?i)\\bcalculate\\b",name:"keyword.control.calculate"},{match:"(?i)\\btimezone\\b",name:"keyword.control.timezone"},{match:"(?i)\\bdimension\\b",name:"keyword.control.dimension"},{match:"(?i)\\bexcept\\b",name:"keyword.control.except"},{match:"(?i)\\bsource\\b",name:"keyword.control.source"},{match:"(?i)\\bgroup_by\\b",name:"keyword.control.group_by"},{match:"(?i)\\bhaving\\b",name:"keyword.control.having"},{match:"(?i)\\bindex\\b",name:"keyword.control.index"},{match:"(?i)\\bjoin_one\\b",name:"keyword.control.join_one"},{match:"(?i)\\bwith\\b",name:"keyword.control.with"},{match:"(?i)\\bjoin_many\\b",name:"keyword.control.join_many"},{match:"(?i)\\bjoin_cross\\b",name:"keyword.control.join_cross"},{match:"(?i)\\blimit\\b",name:"keyword.control.limit"},{match:"(?i)\\bmeasure\\b",name:"keyword.control.measure"},{match:"(?i)\\bnest\\b",name:"keyword.control.nest"},{match:"(?i)\\border_by\\b",name:"keyword.control.order_by"},{match:"(?i)\\bpartition_by\\b",name:"keyword.control.partition_by"},{match:"(?i)\\bprimary_key\\b",name:"keyword.control.primary_key"},{match:"(?i)\\bproject\\b",name:"keyword.control.project"},{match:"(?i)\\bquery\\b",name:"keyword.control.query"},{match:"(?i)\\brename\\b",name:"keyword.control.rename"},{match:"(?i)\\btop\\b",name:"keyword.control.top"},{match:"(?i)\\bview\\b",name:"keyword.control.view"},{match:"(?i)\\bwhere\\b",name:"keyword.control.where"},{match:"(?i)\\bdeclare\\b",name:"keyword.control.declare"}]},keywords:{patterns:[{match:"(?i)\\bis\\b",name:"keyword.control.is"},{match:"(?i)\\bon\\b",name:"keyword.control.on"},{match:"(?i)\\bnot\\b",name:"keyword.other.not"},{match:"(?i)\\bor\\b",name:"keyword.other.or"},{match:"(?i)\\bdesc\\b",name:"keyword.control.desc"},{match:"(?i)\\bby\\b",name:"keyword.control.by"},{match:"(?i)\\band\\b",name:"keyword.other.and"},{match:"(?i)\\basc\\b",name:"keyword.control.asc"},{match:"(?i)\\bfor\\b",name:"keyword.other.for"},{match:"(?i)\\belse\\b",name:"keyword.other.else"},{match:"(?i)\\bto\\b",name:"keyword.other.to"},{match:"(?i)\\bwhen\\b",name:"keyword.other.when"},{match:"(?i)\\bpick\\b",name:"keyword.other.pick"},{match:"(?i)\\bimport\\b",name:"keyword.control.import"}]}}},c4={...ju,patterns:[...ju.patterns,{include:"#docvar"}],repository:{...ju.repository,docvar:{patterns:[{match:"\\<\\<[^(\\>\\>)]*\\>\\>",beginCaptures:{0:{name:"punctuation.definition.comment.begin"}},endCaptures:{0:{name:"punctuation.definition.comment.end"}},name:"markup.italic.markdown"}]}}},d4={name:"Malloy SQL",scopeName:"source.malloy-sql",patterns:[{include:"#malloysql-sql"}],repository:{"malloysql-sql":{beginCaptures:{0:{name:"entity.other.attribute.malloy-sql"},1:{name:"entity.other.attribute.malloy-sql"},3:{name:"comment.line.double-slash"}},name:"meta.embedded.block.malloysql.sql",patterns:[{include:"#comments"},{begin:"%{",end:"}%",beginCaptures:{0:{name:"punctuation.definition.malloy-sql"}},endCaptures:{0:{name:"punctuation.definition.malloy-sql"}},name:"meta.embedded.block.malloy",patterns:[{include:"source.malloy"}]},{include:"source.sql"}]},comments:{patterns:[{begin:"/\\*",end:"\\*/",beginCaptures:{0:{name:"punctuation.definition.comment.begin"}},endCaptures:{0:{name:"punctuation.definition.comment.end"}},name:"comment.block"},{begin:"//",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-slash"},{begin:"--",end:"\\n",beginCaptures:{0:{name:"punctuation.definition.comment"}},name:"comment.line.double-hyphen"}]}}},p4="github-light",f4="github-dark";let $u;function h4(){return $u||($u=(async()=>{const[{createHighlighterCore:e},{createOnigurumaEngine:t},{default:n},{default:r},{default:o},{default:a},{default:i}]=await Promise.all([Promise.resolve().then(()=>require("./core-CmJPbrIu.cjs.js")),Promise.resolve().then(()=>require("./engine-oniguruma-BkproSVE.cjs.js")),Promise.resolve().then(()=>require("./sql-BqWZrLHB.cjs.js")),Promise.resolve().then(()=>require("./json-y-J1j5EW.cjs.js")),Promise.resolve().then(()=>require("./typescript-BqvpT6pB.cjs.js")),Promise.resolve().then(()=>require("./github-light-BFTOhCbz.cjs.js")),Promise.resolve().then(()=>require("./github-dark-BKL9xNgN.cjs.js"))]);return e({engine:t(Promise.resolve().then(()=>require("./wasm-Dw4u1m6u.cjs.js"))),themes:[a,i],langs:[n,r,o,{name:"malloy",scopeName:"source.malloy",embeddedLangs:["sql"],...c4},{name:"malloysql",scopeName:"source.malloy-sql",embeddedLangs:["sql"],...d4}]})})()),$u}async function nl(e,t,n="light"){return(await h4()).codeToHtml(e,{lang:t,theme:n==="dark"?f4:p4})}function Nt(e){const{server:t}=Ee.useServer(),n={...e,queryKey:[...e.queryKey,t],queryFn:async()=>{try{return await e.queryFn()}catch(r){if(r&&typeof r=="object"&&"response"in r){const o=r;if(o.response?.data){const a=new Error(o.response.data.message||o.message);throw a.status=o.response.status,a.data=o.response.data,a}}throw r}},retry:!1,throwOnError:!1};return hr.useQuery(n,Ee.globalQueryClient)}function wn(e){const t={...e,mutationFn:async n=>{try{return await e.mutationFn(n)}catch(r){if(r&&typeof r=="object"&&"response"in r){const o=r;if(o.response?.data){const a=new Error(o.response.data.message||o.message);throw a.status=o.response.status,a.data=o.response.data,a}}throw r}},retry:!1,throwOnError:!1};return hr.useMutation(t,Ee.globalQueryClient)}const kt=e=>{const t=new URL(e),n={};if(t.protocol!=="publisher:")throw new Error(`Failed to parse resource URI: ${e}`);const r=(t.hostname+t.pathname).split("/");for(let o=0;o<r.length;o+=2){const a=r[o];a==="environments"?n.environmentName=decodeURI(r[o+1])||void 0:a==="packages"?n.packageName=decodeURI(r[o+1])||void 0:a==="connections"?n.connectionName=decodeURI(r[o+1])||void 0:a==="models"&&(n.modelPath=decodeURI(r.slice(o+1).join("/"))||void 0)}if(n.versionId=t.searchParams.get("versionId")||void 0,!n.environmentName)throw new Error(`Failed to parse resource URI: ${e}`);return n},Yi=e=>{if(!e.environmentName)throw new Error(`Failed to encode resource URI, missing environment name: ${e}`);let t=`publisher://environments/${e.environmentName}`;return e.packageName&&(t+=`/packages/${e.packageName}`),e.connectionName&&(t+=`/connections/${e.connectionName}`),e.modelPath&&(t+=`/models/${e.modelPath}`),e.packageName&&e.versionId&&(t+=`?versionId=${e.versionId}`),t};function Dd({sourceAndPaths:e,selectedSourceIndex:t,existingQuery:n,onQueryChange:r,onSourceChange:o,resourceUri:a}){return H.useEffect(()=>{o&&o(t)},[t,o]),u.jsx(Ee.StyledCardMedia,{children:u.jsxs(pt.Stack,{spacing:2,component:"section",children:[u.jsx($1,{sourceAndPath:e[t],existingQuery:n,onChange:i=>{r&&r(i)},resourceUri:a}),u.jsx(pt.Box,{height:"5px"})]})})}function As(){return{query:void 0,malloyQuery:void 0,malloyResult:void 0}}function m4({sourceAndPath:e,onChange:t,existingQuery:n,explorerComponents:r,QueryBuilder:o,resourceUri:a}){const[i,s]=H.useState(n||As()),[l,c]=H.useState(void 0);H.useEffect(()=>{n&&s(n)},[n]);const[d,p]=H.useState([]),{MalloyExplorerProvider:h,QueryPanel:f,ResizableCollapsiblePanel:m,ResultPanel:g,SourcePanel:b}=r;H.useEffect(()=>{t&&t(i)},[t,i]);const{environmentName:x,packageName:E,versionId:T}=kt(a),{apiClients:S}=Ee.useServer(),D=wn({mutationFn:()=>{const B=typeof i?.malloyQuery=="string"?i.malloyQuery:new o.ASTQuery({source:e.sourceInfo,query:i?.malloyQuery}).toMalloy();return c({executionState:"running",query:i?.malloyQuery,queryResolutionStartMillis:Date.now(),onCancel:()=>{D.reset(),c(void 0)},response:{result:{}}}),s({...i,query:B}),S.models.executeQueryModel(x,E,e.modelPath,{query:B,sourceName:void 0,queryName:void 0,versionId:T})},onSuccess:B=>{if(B){const M=JSON.parse(B.data.result);s({...i,malloyResult:M}),c(N=>N?{...N,executionState:"finished",response:{result:M}}:void 0)}},onError:B=>{c(void 0),console.error("Query execution error:",B)}}),[C,O]=H.useState(e.sourceInfo.name);H.useEffect(()=>{C!==e.sourceInfo.name&&(O(e.sourceInfo.name),s(As()),c(void 0))},[e,C]);const R=H.useCallback(B=>{s({...i,malloyQuery:B,malloyResult:void 0})},[i]);return C!==e.sourceInfo.name?u.jsx("div",{children:"Loading..."}):u.jsx(Ee.StyledExplorerContent,{sx:{border:"1px solid #e0e0e0",borderRadius:"8px",overflow:"hidden"},children:u.jsx(h,{source:e.sourceInfo,query:i?.malloyQuery,topValues:[],onFocusedNestViewPathChange:p,focusedNestViewPath:d,onQueryChange:R,children:u.jsxs("div",{style:{display:"flex",height:"100%",overflowY:"auto"},children:[u.jsx(m,{isInitiallyExpanded:!0,initialWidth:180,minWidth:180,icon:"database",title:e.sourceInfo.name,children:u.jsx(b,{onRefresh:()=>s(As())})}),u.jsx(m,{isInitiallyExpanded:!0,initialWidth:280,minWidth:280,icon:"filterSliders",title:"Query",children:u.jsx(f,{runQuery:()=>{console.log(`running query with: ${i?.malloyQuery}`);try{D.mutate()}catch(B){console.error("Error running query:",B)}}})}),u.jsx(g,{source:e.sourceInfo,draftQuery:i?.malloyQuery,setDraftQuery:B=>s({...i,malloyQuery:B}),submittedQuery:l,options:{showRawQuery:!0}})]})})},e.sourceInfo.name)}function $1(e){const[t,n]=H.useState(null),[r,o]=H.useState(null),[a,i]=H.useState(!0);return H.useEffect(()=>{let s=!0;return Promise.all([import("@malloydata/malloy-explorer"),import("@malloydata/malloy-query-builder")]).then(([l,c])=>{s&&(n(l),o(c),i(!1))}).catch(l=>{console.error("Failed to load Malloy components:",l),s&&i(!1)}),()=>{s=!1}},[]),a||!t||!r?u.jsx(Ee.StyledExplorerPage,{children:u.jsx(Ee.StyledExplorerContent,{children:u.jsx(pt.Box,{sx:{alignItems:"center",justifyContent:"center",height:"200px",color:"text.secondary"},children:"Loading explorer..."})})}):u.jsx(m4,{...e,explorerComponents:t,QueryBuilder:r,resourceUri:e.resourceUri})}function rn({text:e,size:t=20,color:n="primary",thickness:r=3.6,centered:o=!0,spacing:a=2,textVariant:i="body2"}){const s=u.jsxs(k.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",gap:a},children:[u.jsx(k.CircularProgress,{size:t,color:n,thickness:r}),e&&u.jsx(k.Typography,{variant:i,color:"text.secondary",children:e})]});return o?u.jsx(k.Box,{sx:{display:"flex",justifyContent:"center",alignItems:"center",minHeight:"200px",width:"100%"},children:s}):s}const g4=H.lazy(()=>Promise.resolve().then(()=>T$));function ka({result:e,maxHeight:t,maxResultSize:n=0}){const r=H.useRef(null),[o,a]=H.useState(t),[i,s]=H.useState(!1);if(!e)return null;if(n>0&&e.length>n&&!i)return u.jsxs(k.Box,{sx:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2,p:4,backgroundColor:"#fafafa",border:"1px solid",borderColor:"#e0e0e0",borderRadius:1},children:[u.jsx(nn.Warning,{sx:{fontSize:48,color:"#757575"}}),u.jsx(k.Typography,{variant:"h6",color:"text.secondary",align:"center",children:"Processing large results may cause browser performance issues. Proceed?"}),u.jsx(k.Button,{variant:"contained",color:"primary",onClick:()=>s(!0),children:"Proceed"})]});const c=u.jsx(rn,{text:"Loading...",centered:!0,size:32}),d=Math.min(t,o);return u.jsx(k.Box,{ref:r,sx:{position:"relative",height:"auto",border:"0px",borderRadius:0,overflow:"hidden"},children:e&&u.jsx(H.Suspense,{fallback:c,children:u.jsx(g4,{result:e,height:d,onSizeChange:a})})})}function b4({cell:e,sourceAndPaths:t,resourceUri:n,onQueryChange:r,onSourceChange:o}){const a={query:e.value,malloyResult:e.result?JSON.parse(e.result):void 0,malloyQuery:e.queryInfo?JSON.parse(e.queryInfo):void 0},i=t.findIndex(s=>s.sourceInfo.name===e.sourceName);return u.jsx(Dd,{resourceUri:n,sourceAndPaths:t,selectedSourceIndex:i>=0?i:0,existingQuery:a,onQueryChange:r,onSourceChange:o})}function y4({cell:e,editingMalloy:t,editingMarkdown:n,sourceAndPaths:r,resourceUri:o,onCellChange:a,onClose:i,onEdit:s,onDelete:l,addButtonCallback:c}){const[d,p]=H.useState(e.value),[h,f]=H.useState(!1),[m,g]=H.useState(!1),[b,x]=H.useState(),[E]=H.useState(),[T,S]=H.useState(As()),[D,C]=H.useState(!1),[O,R]=H.useState(e.sourceName?r.findIndex(ee=>ee.sourceInfo.name===e.sourceName):0),{mode:B}=Ee.usePublisherTheme();H.useEffect(()=>{e.isMarkdown||nl(e.value,"malloy",B).then(ee=>{x(ee)})},[e,B]),H.useEffect(()=>{document.documentElement.setAttribute("data-color-mode","light")});const[M,N]=H.useState(!1),v=()=>{l(),N(!1)},F=r.length===0,I=H.useCallback(()=>{const ee=r[O],_=ee?.modelPath||e.modelPath||"",oe=ee?.sourceInfo.name||e.sourceName||"";a({...e,value:e.isMarkdown?d:T.query,result:T.malloyResult?JSON.stringify(T.malloyResult):void 0,queryInfo:T.malloyQuery?JSON.stringify(T.malloyQuery):void 0,sourceName:oe,modelPath:_})},[e,d,T,a,O,r]),P=u.jsx(k.Tooltip,{title:"Delete Cell",children:u.jsx(k.IconButton,{size:"small",onClick:()=>N(!0),children:u.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:u.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"})})})}),L=u.jsxs(k.Dialog,{open:M,onClose:()=>N(!1),children:[u.jsx(k.DialogTitle,{children:"Confirm Delete"}),u.jsx(k.DialogContent,{children:u.jsx(k.Typography,{children:"Are you sure you want to delete this cell?"})}),u.jsxs(k.DialogActions,{children:[u.jsx(k.Button,{onClick:()=>N(!1),children:"Cancel"}),u.jsx(k.Button,{onClick:v,color:"error",children:"Delete"})]})]}),U=()=>{I(),i()},W=e.isMarkdown?u.jsxs(u.Fragment,{children:[n?u.jsx(k.Tooltip,{title:"Save",children:u.jsx(k.IconButton,{size:"small",onClick:U,children:u.jsx(as,{})})}):u.jsx(k.Tooltip,{title:"Edit",children:u.jsx(k.IconButton,{size:"small",onClick:s,children:u.jsx(Wp,{})})}),!n&&P]}):u.jsxs(u.Fragment,{children:[!t&&u.jsx(k.Tooltip,{title:h?"Hide Code":"View Code",children:u.jsx(k.IconButton,{size:"small",onClick:()=>{f(!h)},children:u.jsx(g0,{})})}),!t&&e.result&&u.jsx(k.Tooltip,{title:m?"Hide Embedding":"View Embedding",children:u.jsx(k.IconButton,{size:"small",onClick:()=>{g(!m)},children:u.jsx(Gc,{})})}),t&&u.jsx(k.Tooltip,{title:"Save",children:u.jsx(k.IconButton,{size:"small",onClick:U,children:u.jsx(as,{})})}),!t&&u.jsx(k.Tooltip,{title:"Edit",children:u.jsx(k.IconButton,{size:"small",onClick:s,children:u.jsx(Wp,{})})}),!t&&P]}),z=t||n,A=n?u.jsx(k.Tooltip,{title:"Save",children:u.jsx(k.IconButton,{size:"small",onClick:U,children:u.jsx(as,{})})}):t?u.jsx(k.Tooltip,{title:"Save",children:u.jsx(k.IconButton,{size:"small",onClick:U,children:u.jsx(as,{})})}):null,Z=D&&u.jsx(k.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:!z&&u.jsxs(u.Fragment,{children:[c(!0),c(!1),W]})||A});return u.jsxs(Ee.StyledCard,{sx:ee=>({position:"relative",marginTop:"5px",marginBottom:"5px",borderWidth:"1.5px",backgroundColor:ee.palette.background.paper,minHeight:"50px"}),onMouseEnter:()=>C(!0),onMouseLeave:()=>{C(!1)},children:[Z,e.isMarkdown?u.jsx(u.Fragment,{children:n?u.jsx(j1,{value:d,preview:"edit",autoFocus:!0,onChange:ee=>{p(ee),a({...e,value:ee})},onBlur:()=>{I(),D||U()}}):u.jsx(k.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?u.jsx(k.Box,{onClick:s,sx:{cursor:"pointer"},children:u.jsx(zs,{children:e.value})}):u.jsxs(k.Box,{onClick:s,sx:{cursor:"pointer"},children:[u.jsx(k.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"Markdown is empty"}),u.jsx(k.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Click to edit."})]})})}):u.jsxs(u.Fragment,{children:[u.jsx(k.Collapse,{in:m,timeout:"auto",unmountOnExit:!0,children:u.jsx(k.Stack,{sx:{p:"10px",borderRadius:0,flexDirection:"row",justifyContent:"space-between"},children:u.jsx(k.Typography,{component:"div",sx:{fontSize:"12px","& .line":{textWrap:"wrap"}},dangerouslySetInnerHTML:{__html:E}})})}),u.jsx(k.Collapse,{in:h,timeout:"auto",unmountOnExit:!0,children:u.jsx(k.Stack,{sx:{p:"10px",borderRadius:0,flexDirection:"row",justifyContent:"space-between"},children:u.jsx(k.Typography,{component:"div",className:"content",sx:{fontSize:"12px","& .line":{textWrap:"wrap"}},dangerouslySetInnerHTML:{__html:b}})})}),t&&(F?u.jsxs(u.Fragment,{children:[u.jsx(k.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"No Model Imports"}),u.jsx(k.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Please add a model import above."})]}):u.jsx(b4,{sourceAndPaths:r,resourceUri:o,onQueryChange:ee=>{S(ee)},onSourceChange:ee=>{R(ee)},cell:e})),!t&&e.result&&u.jsx(Ee.StyledCard,{variant:"outlined",sx:{borderRadius:0},children:u.jsx(ka,{result:e.result,maxHeight:800})}),!t&&!e.result&&u.jsxs(k.Box,{onClick:s,sx:{cursor:"pointer"},children:[u.jsx(k.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"Explore is empty"}),u.jsx(k.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Click to edit."})]})]}),M&&L]})}const H1=H.createContext(void 0);function x4({children:e,workbookStorage:t}){const n=H.useMemo(()=>({workbookStorage:t}),[t]);return u.jsx(H1.Provider,{value:n,children:e})}function wd(){const e=H.useContext(H1);if(!e)throw new Error("useWorkbookStorage must be used within a WorkbookStorageProvider");return e}const Jn=tt(u.jsx("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})),E4=tt(u.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 on({error:e,context:t}){const n=e.data?.message||"Unknown Error";return u.jsxs(u.Fragment,{children:[t&&u.jsx(k.Typography,{variant:"body2",sx:{p:"10px",m:"auto"},children:t}),u.jsx("pre",{style:{whiteSpace:"pre-wrap",color:"red",padding:"10px",margin:"auto"},children:n})]})}function C4({initialSelectedModels:e,onModelChange:t,resourceUri:n}){const{environmentName:r,packageName:o,versionId:a}=kt(n),{apiClients:i}=Ee.useServer(),{data:s,isLoading:l,isSuccess:c,isError:d,error:p}=Nt({queryKey:["models",r,o,a],queryFn:()=>i.models.listModels(r,o,a)}),[h,f]=H.useState(e||[]),[m,g]=H.useState(null);H.useEffect(()=>{f(e||[])},[e]);const b=T=>{const S=h.filter(D=>D!==T);f(S),t(S)},x=T=>{const S=[...h,T];f(S),t(S),g(null)};let E=[];return c&&s?.data&&(E=s.data.filter(T=>!h.includes(T.path)).map(T=>T.path)),d?u.jsx(on,{error:p,context:`${r} > ${o} > Model Picker`}):u.jsxs(u.Fragment,{children:[u.jsxs(k.FormControl,{fullWidth:!0,children:[l&&u.jsx(k.Typography,{children:"Loading..."}),u.jsxs(k.Stack,{direction:"row",spacing:1,children:[h.map(T=>u.jsx(k.Chip,{label:T,onDelete:()=>b(T),deleteIcon:u.jsx(Jn,{}),sx:{marginBottom:"5px"}},T)),u.jsx(k.Button,{size:"small",startIcon:u.jsx(E4,{}),onClick:T=>g(T.currentTarget),disabled:l||d||E.length===0,children:"Add Model"})]})]}),u.jsxs(k.Menu,{anchorEl:m,open:!!m,onClose:()=>g(null),children:[u.jsx(k.Typography,{variant:"subtitle2",sx:{ml:1},children:"Models"}),u.jsx(k.Divider,{}),E.length===0?u.jsx(k.MenuItem,{disabled:!0,children:"No models available"}):E.map(T=>u.jsx(k.MenuItem,{onClick:()=>x(T),children:u.jsx(k.Typography,{variant:"body2",children:T})},T))]})]})}function z1(){const e=mx.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 T4({workbookPath:e,resourceUri:t}){const n=z1(),{server:r,getAccessToken:o}=Ee.useServer(),{apiClients:a}=Ee.useServer(),{workbookStorage:i}=wd(),{environmentName:s,packageName:l}=kt(t),[c,d]=H.useState(void 0),[p,h]=H.useState(void 0);if(!i)throw new Error("Workbook storage be provided via WorkbookStorageProvider");const[f,m]=H.useState(),[g,b]=H.useState(),[x,E]=H.useState(),[T,S]=H.useState([]),[D,C]=H.useState(null),[O,R]=H.useState(null),B=!!D,M=()=>{C(null),R(null)},N=(Z,ee)=>{f&&(m(f.insertCell(ee,{isMarkdown:Z,value:""})),Z?E(ee):b(ee),M(),console.log("handleAddCell",Z,ee))},[v,F]=H.useState(!1),I=()=>{F(!0)},P=async()=>{e&&i&&await i.deleteWorkbook(e).then(()=>{h(void 0),d(void 0)}).catch(Z=>{h(`Error deleting workbook: ${Z.message}`),d(void 0)}),F(!1),n(`/${s}/${l}`)},L=()=>{F(!1)},U=H.useCallback(async()=>{if(!f){console.log("No workbook data ref");return}try{m(await f.saveWorkbook()),h(void 0),d("Workbook saved")}catch(Z){h(`Error saving workbook: ${Z.message}`),d(void 0)}},[f]);if(H.useEffect(()=>{if(!f)return;(async()=>{const ee=new Map(T.map(({modelPath:Q,sourceInfos:V})=>[Q,V])),_=[],oe=[];for(const Q of f.getModels())ee.has(Q)?_.push({modelPath:Q,sourceInfos:ee.get(Q)}):(console.log("Fetching model from Publisher",Q),oe.push(a.models.getModel(s,l,Q,void 0).then(V=>({modelPath:Q,sourceInfos:V.data.sourceInfos.map(J=>JSON.parse(J))}))));if(oe.length>0){const Q=await Promise.all(oe);S([..._,...Q])}else S(_)})()},[o,f,l,s,r]),H.useEffect(()=>{e&&Zo.loadWorkbook(i,e).then(Z=>{m(Z)})},[e,i]),!f)return u.jsx("div",{children:"Loading..."});const W=Z=>{const ee=[];for(const _ of Z)for(const oe of _.sourceInfos)ee.push({modelPath:_.modelPath,sourceInfo:oe});return ee},z=(Z,ee)=>u.jsx(k.Button,{size:"small",startIcon:u.jsx(kl,{}),onClick:()=>N(Z,ee),variant:"contained",sx:{backgroundColor:_=>_.palette.background.paper,color:_=>_.palette.mode==="dark"?_.palette.grey[100]:_.palette.grey[700],boxShadow:"none","&:hover":{backgroundColor:_=>_.palette.mode==="dark"?_.palette.grey[500]:_.palette.grey[300],boxShadow:"none"}},children:Z?"Markdown":"Explore"}),A=u.jsxs(k.Box,{sx:{display:"flex",gap:1,justifyContent:"center",flex:2},children:[z(!1,f.getCells().length),z(!0,f.getCells().length)]});return u.jsxs(Ee.StyledCard,{variant:"outlined",children:[u.jsxs(Ee.StyledCardContent,{children:[u.jsx(k.Box,{sx:{mb:2},children:u.jsx(k.Box,{sx:{minHeight:"24px"},children:p?u.jsx(k.Typography,{color:"error",variant:"body2",children:p}):c?u.jsx(k.Typography,{color:"success",variant:"body2",children:c}):u.jsx("span",{children:" "})})}),u.jsxs(jo,{sx:{flexDirection:"row",justifyContent:"space-between",alignItems:"center"},children:[u.jsxs(jo,{direction:"row",spacing:1,alignItems:"center",children:[u.jsx(k.Typography,{variant:"overline",sx:{fontSize:"13px",fontWeight:"bold",verticalAlign:"middle"},children:"Workbook"}),u.jsx(k.Typography,{variant:"subtitle2",sx:{fontSize:"13px",fontWeight:"normal",verticalAlign:"middle",ml:1},children:`${e.workspace} > ${e.path}`})]}),u.jsxs(jo,{sx:{display:"flex",flexDirection:"row",gap:1},children:[u.jsx(k.Box,{sx:{display:"flex",alignItems:"center",mt:1,mb:1},children:u.jsx(v4,{workbookData:f})}),u.jsxs(k.Box,{sx:{display:"flex",alignItems:"center",mt:1,mb:1},children:[u.jsx(k.Button,{color:"error",onClick:I,size:"small",children:"Delete"}),u.jsxs(k.Dialog,{open:v,onClose:L,children:[u.jsx(k.DialogTitle,{children:"Delete Workbook"}),u.jsx(k.DialogContent,{children:u.jsxs(k.DialogContentText,{children:['Are you sure you want to delete the workbook "',e.path,'"? This action cannot be undone.']})}),u.jsxs(k.DialogActions,{children:[u.jsx(k.Button,{onClick:L,color:"primary",size:"small",children:"Cancel"}),u.jsx(k.Button,{onClick:P,color:"error",autoFocus:!0,size:"small",children:"Delete"})]})]})]})]})]}),u.jsx(k.Divider,{}),u.jsxs(jo,{sx:{display:"flex",flexDirection:"row",width:"100%",mt:2},children:[u.jsx(k.Box,{sx:{flex:1},children:u.jsx(C4,{initialSelectedModels:f.getModels(),onModelChange:Z=>{m(f.setModels(Z)),U()},resourceUri:t})}),u.jsx(k.Box,{sx:{flex:1}})]})]}),u.jsx(Ee.StyledCardMedia,{children:u.jsxs(jo,{children:[f.getCells().length===0&&u.jsxs(u.Fragment,{children:[u.jsx(k.Typography,{sx:{textAlign:"center",p:2,variant:"subtitle2",fontWeight:"medium"},children:"Workbook is empty"}),u.jsx(k.Typography,{variant:"body2",sx:{textAlign:"center",mb:2,variant:"body2"},children:"Click the + buttons to add a markdown or code cell."})]}),f.getCells().map((Z,ee)=>u.jsx(H.Fragment,{children:u.jsx(y4,{cell:Z,resourceUri:t,addButtonCallback:_=>z(_,ee),sourceAndPaths:W(T),editingMarkdown:x===ee,editingMalloy:g===ee,onDelete:()=>{m(f.deleteCell(ee)),U()},onCellChange:_=>{m(f.setCell(ee,_))},onEdit:()=>{Z.isMarkdown?E(ee):b(ee)},onClose:()=>{Z.isMarkdown?E(void 0):b(void 0),U()}},`${ee}-${Z.isMarkdown}-${e.workspace}-${e.path}`)},`${ee}-${f.getCells().length}`)),A,u.jsxs(k.Menu,{anchorEl:D,open:B,onClose:M,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[u.jsx(k.MenuItem,{onClick:()=>N(!0,O??0),children:"Add Markdown"}),u.jsx(k.MenuItem,{onClick:()=>N(!1,O??0),children:"Add Malloy"})]}),u.jsx(jo,{sx:{flexDirection:"row",justifyContent:"flex-end",p:1}})]})})]})}function v4({workbookData:e}){const[t,n]=H.useState(!1),r=async()=>{if(!e)return;const o=e.toMalloyWorkbook();try{await navigator.clipboard.writeText(o),n(!0),setTimeout(()=>n(!1),1500)}catch{n(!1),alert("Failed to copy to clipboard")}};return u.jsx(k.Button,{color:"primary",onClick:r,size:"small",children:t?"Copied!":"Export"})}function U1({onWorkbookClick:e}){const{workbookStorage:t}=wd(),[n,r]=H.useState([]),[o,a]=H.useState(void 0);return H.useEffect(()=>{t&&t.listWorkspaces(!1).then(i=>{const s=[];Promise.all(i.map(async l=>{await t.listWorkbooks(l).then(c=>{s.push(...c)}).catch(c=>{a(`Error listing workbooks: ${c.message}`)})})).then(()=>{r(s),a(void 0)})})},[t]),u.jsxs(u.Fragment,{children:[o&&u.jsx(k.Box,{sx:{mb:2},children:u.jsx(k.Typography,{color:"error",variant:"body2",children:o})}),u.jsx(k.Divider,{}),u.jsx(k.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:u.jsxs(k.List,{dense:!0,children:[n.length===0&&u.jsx(k.ListItem,{children:u.jsx(k.ListItemText,{primary:"No workbooks found.",sx:{textAlign:"center"}})}),n.map(i=>u.jsx(k.ListItem,{onClick:s=>e(i,s),sx:{cursor:"pointer","&:hover":{backgroundColor:"action.hover"}},children:u.jsx(k.ListItemText,{primary:i.path})},i.path))]})})]})}const Sh="Local";class S4{async listWorkspaces(t){return Promise.resolve([{name:Sh,description:"Stored locally- only accessible to this browser",writeable:!0}])}async listWorkbooks(t){const n=[];for(let r=0;r<localStorage.length;r++){const o=localStorage.key(r);n.push({path:o,workspace:Sh})}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)}}function k4({onWorkbookSelect:e}){const{workbookStorage:t}=wd(),[n,r]=H.useState(""),[o,a]=H.useState(""),[i,s]=H.useState([]),[l,c]=H.useState(null),[d,p]=H.useState(!1),[h,f]=H.useState(!1),m=!!l,g=C=>{c(C.currentTarget)},b=()=>{c(null)},x=()=>{f(!1)},E=()=>{p(!1),r(""),a("")};H.useEffect(()=>{t&&(console.log("fetching workspaces"),t.listWorkspaces(!0).then(C=>{s(C),C.length===1&&a(C[0].name)}).catch(C=>{console.error("Error fetching workspaces:",C),s([])}))},[t]);const T=(C,O)=>{f(!1),e(C,O)},S=C=>{p(!1),e({path:n,workspace:o},C),r(""),a("")},D=i.length===0;return u.jsxs(u.Fragment,{children:[u.jsx(k.Button,{"aria-controls":m?"basic-menu":void 0,"aria-haspopup":"true","aria-expanded":m?"true":void 0,onClick:g,variant:"contained",sx:{height:"40px",px:2,backgroundColor:"#fbbb04","&:hover":{backgroundColor:"#eab308"}},children:"Analyze Package"}),u.jsxs(k.Menu,{id:"basic-menu",anchorEl:l,open:m,onClose:b,MenuListProps:{"aria-labelledby":"basic-button",sx:{py:.5}},children:[u.jsxs(k.MenuItem,{onClick:()=>{p(!0),b()},sx:{py:1,px:2},disabled:D,children:[u.jsx(k.ListItemIcon,{children:u.jsx(nn.Add,{fontSize:"small"})}),u.jsxs(k.ListItemText,{children:[u.jsx(k.Typography,{variant:"body2",fontWeight:500,children:"New Workbook"}),D?u.jsx(k.Typography,{variant:"caption",color:"text.secondary",children:"No workspaces available"}):u.jsx(k.Typography,{variant:"caption",color:"text.secondary",children:"Create a new analysis workbook"})]})]}),u.jsxs(k.MenuItem,{onClick:()=>{f(!0),b()},sx:{py:1,px:2},children:[u.jsx(k.ListItemIcon,{children:u.jsx(nn.Launch,{fontSize:"small"})}),u.jsxs(k.ListItemText,{children:[u.jsx(k.Typography,{variant:"body2",fontWeight:500,children:"Open Workbook"}),u.jsx(k.Typography,{variant:"caption",color:"text.secondary",children:"Open an existing workbook"})]})]})]}),u.jsxs(k.Dialog,{open:d,onClose:E,maxWidth:"sm",fullWidth:!0,children:[u.jsxs(k.DialogTitle,{sx:{pb:1,pt:2,px:2},children:[u.jsx(k.Typography,{fontWeight:600,sx:{fontSize:"1.5rem",mb:.5},children:"Create New Workbook"}),u.jsx(k.Typography,{variant:"body2",color:"text.secondary",children:"Start a new analysis workbook to explore your data"})]}),u.jsx(k.DialogContent,{sx:{px:2,pb:2},children:u.jsxs(k.Stack,{spacing:2,sx:{mt:1},children:[i.length>1?u.jsxs(k.FormControl,{fullWidth:!0,size:"small",children:[u.jsx(k.InputLabel,{children:"Workspace"}),u.jsx(k.Select,{value:o,label:"Workspace",onChange:C=>a(C.target.value),children:i.map(C=>u.jsx(k.MenuItem,{value:C.name,children:u.jsxs(k.Box,{children:[u.jsx(k.Typography,{variant:"body2",fontWeight:500,children:C.name}),u.jsx(k.Typography,{variant:"caption",color:"text.secondary",children:C.description})]})},C.name))})]}):i.length===1?u.jsxs(k.Box,{sx:C=>({p:2,border:1,borderColor:"divider",borderRadius:1,backgroundColor:C.palette.mode==="dark"?"rgba(255, 255, 255, 0.04)":"grey.50"}),children:[u.jsxs(k.Typography,{variant:"body2",fontWeight:500,gutterBottom:!0,children:["Workspace: ",i[0].name]}),u.jsx(k.Typography,{variant:"caption",color:"text.secondary",children:i[0].description})]}):null,u.jsx(k.FormControl,{fullWidth:!0,children:u.jsx(k.TextField,{label:"Workbook Name",value:n,onChange:C=>r(C.target.value),placeholder:"Enter workbook name...",fullWidth:!0,autoFocus:!0,size:"small"})}),u.jsxs(k.Stack,{direction:"row",spacing:1,justifyContent:"flex-end",children:[u.jsx(k.Button,{onClick:E,variant:"outlined",size:"small",children:"Cancel"}),u.jsx(k.Button,{onClick:C=>S(C),variant:"contained",disabled:!n.trim()||i.length>1&&!o,size:"small",children:"Create Workbook"})]})]})})]}),u.jsxs(k.Dialog,{open:h,onClose:x,maxWidth:"md",fullWidth:!0,children:[u.jsxs(k.DialogTitle,{sx:{pb:1,pt:2,px:2},children:[u.jsx(k.Typography,{fontWeight:600,sx:{mb:.5,fontSize:"1.5rem"},children:"Open Workbook"}),u.jsx(k.Typography,{variant:"body2",color:"text.secondary",children:"Select an existing workbook to continue your analysis"})]}),u.jsx(k.DialogContent,{sx:{px:2,pb:2},children:u.jsx(U1,{onWorkbookClick:T})})]})]})}function D4({resourceUri:e}){const{environmentName:t}=kt(e),{apiClients:n}=Ee.useServer(),[r,o]=H.useState(!1),a=90,{data:i,isSuccess:s,isError:l,error:c}=Nt({queryKey:["about",t],queryFn:()=>n.environments.getEnvironment(t,!1)}),d=i?.data?.readme||"",p=d.split(/\s+/),h=p.length>a,f=p.slice(0,a).join(" ");return u.jsxs(u.Fragment,{children:[!s&&!l&&u.jsx(rn,{text:"Fetching About..."}),s&&d&&u.jsx(Ee.PackageCard,{children:u.jsxs(Ee.PackageCardContent,{children:[u.jsx(Ee.PackageSectionTitle,{children:"Readme"}),u.jsxs(k.Box,{sx:{mt:1,fontSize:"0.875rem",lineHeight:1.6},children:[u.jsx(zs,{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?d:f}),h&&u.jsxs(k.Box,{sx:{mt:1},children:[" ",u.jsx(k.Button,{variant:"text",size:"small",onClick:()=>o(!r),children:r?"Read less":"Read more"})]})]})]})}),l&&u.jsx(on,{error:c,context:`${t} > About`})]})}function w4({resourceUri:e}){const[t,n]=H.useState(!1),{apiClients:r}=Ee.useServer(),o=hr.useQueryClient(),[a,i]=H.useState(""),{environmentName:s}=kt(e),l=wn({async mutationFn(d){return r.packages.createPackage(s,{name:d.name,description:d.description,location:d.location})},onSuccess(){n(!1),i("Package created successfully"),o.invalidateQueries({queryKey:["packages",s]})},onError(d){i(d instanceof Error?d.message:"An unknown error occurred")}}),c=d=>{d.preventDefault();const p=new FormData(d.currentTarget),h=p.get("name")?.toString(),f=p.get("description")?.toString(),m=p.get("location")?.toString();l.mutate({name:h,description:f,location:m})};return u.jsxs(u.Fragment,{children:[u.jsx(k.Button,{onClick:()=>n(!0),variant:"contained",color:"primary",startIcon:u.jsx(nn.Add,{}),children:"Add Package"}),u.jsxs(k.Dialog,{open:t,onClose:()=>n(!1),maxWidth:"sm",fullWidth:!0,PaperProps:{sx:{borderRadius:2}},children:[u.jsx(k.DialogTitle,{sx:{fontSize:"1.25rem",fontWeight:600,letterSpacing:"-0.025em",pt:3,pb:1,px:3},children:"Create New Package"}),u.jsxs(k.DialogContent,{sx:{px:3,pb:0},children:[u.jsxs(k.Box,{sx:{mb:3},children:[u.jsx(k.Typography,{variant:"body2",color:"text.secondary",sx:{mb:1.5},children:"Create a new Malloy package to start exploring your data."}),u.jsx(k.Typography,{variant:"body2",color:"text.secondary",sx:{mb:1.5},children:"The location can be a GitHub/S3/GCP URL containing a package (zipped or unzipped), or an absolute path to a directory the publisher server has access to."}),u.jsxs(k.Typography,{variant:"body2",color:"text.secondary",children:["Make sure to conform to the"," ",u.jsx(k.Box,{component:"a",href:"https://github.com/malloydata/publisher/blob/main/README.md#architecture-overview",target:"_blank",rel:"noopener noreferrer",sx:{color:"text.primary",textDecoration:"underline"},children:"Malloy Package Format"}),"."]})]}),u.jsx("form",{onSubmit:c,id:"package-form",children:u.jsxs(k.Stack,{spacing:2.5,children:[u.jsx(k.TextField,{autoFocus:!0,required:!0,id:"name",name:"name",label:"Package Name",type:"text",fullWidth:!0,variant:"outlined",size:"small",InputLabelProps:{shrink:!0}}),u.jsx(k.TextField,{id:"description",name:"description",label:"Description",multiline:!0,rows:3,fullWidth:!0,variant:"outlined",size:"small",InputLabelProps:{shrink:!0}}),u.jsx(k.TextField,{id:"location",name:"location",label:"Location",type:"text",placeholder:"e.g. s3://my-bucket/my-package.zip",fullWidth:!0,variant:"outlined",size:"small",InputLabelProps:{shrink:!0}})]})})]}),u.jsxs(k.DialogActions,{sx:{px:3,pt:2,pb:3,gap:1},children:[u.jsx(k.Button,{variant:"outlined",disabled:l.isPending,onClick:()=>n(!1),children:"Cancel"}),u.jsx(k.Button,{type:"submit",form:"package-form",variant:"contained",loading:l.isPending,children:"Save Changes"})]})]}),u.jsx(k.Snackbar,{open:a!=="",autoHideDuration:6e3,onClose:()=>i(""),message:a})]})}const I4=tt(u.jsx("path",{d:"M2 20h20v-4H2zm2-3h2v2H4zM2 4v4h20V4zm4 3H4V5h2zm-4 7h20v-4H2zm2-3h2v2H4z"})),V1=tt(u.jsx("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"}));function W1(e){const{theme:t,name:n,props:r}=e;return!t||!t.components||!t.components[n]||!t.components[n].defaultProps?r:vi(t.components[n].defaultProps,r)}function A4({props:e,name:t,defaultTheme:n,themeId:r}){let o=Q2(n);return o=o[r]||o,W1({theme:o,name:t,props:e})}function Dt({props:e,name:t}){return A4({props:e,name:t,defaultTheme:Sl,themeId:ma})}const P4=Oe("MuiBox",["root"]),R4=d0(),At=pt.createBox({themeId:ma,defaultTheme:R4,defaultClassName:P4.root,generateClassName:Qm.generate}),q1=de.oneOfType([de.func,de.object]);function kh(e){try{return e.matches(":focus-visible")}catch{}return!1}const Dh={};function Y1(e,t){const n=w.useRef(Dh);return n.current===Dh&&(n.current=e(t)),n}class rl{static create(){return new rl}static use(){const t=Y1(rl.create).current,[n,r]=w.useState(!1);return t.shouldMount=n,t.setShouldMount=r,w.useEffect(t.mountEffect,[n]),t}constructor(){this.ref={current:null},this.mounted=null,this.didMount=!1,this.shouldMount=!1,this.setShouldMount=null}mount(){return this.mounted||(this.mounted=O4(),this.shouldMount=!0,this.setShouldMount(this.shouldMount)),this.mounted}mountEffect=()=>{this.shouldMount&&!this.didMount&&this.ref.current!==null&&(this.didMount=!0,this.mounted.resolve())};start(...t){this.mount().then(()=>this.ref.current?.start(...t))}stop(...t){this.mount().then(()=>this.ref.current?.stop(...t))}pulsate(...t){this.mount().then(()=>this.ref.current?.pulsate(...t))}}function M4(){return rl.use()}function O4(){let e,t;const n=new Promise((r,o)=>{e=r,t=o});return n.resolve=e,n.reject=t,n}function Dc(e,t){return Dc=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,r){return n.__proto__=r,n},Dc(e,t)}function Id(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,Dc(e,t)}function L4(e,t){return e.classList?!!t&&e.classList.contains(t):(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")!==-1}function N4(e,t){e.classList?e.classList.add(t):L4(e,t)||(typeof e.className=="string"?e.className=e.className+" "+t:e.setAttribute("class",(e.className&&e.className.baseVal||"")+" "+t))}function wh(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function F4(e,t){e.classList?e.classList.remove(t):typeof e.className=="string"?e.className=wh(e.className,t):e.setAttribute("class",wh(e.className&&e.className.baseVal||"",t))}const Ih={disabled:!1},ol=H.createContext(null);var K1=function(t){return t.scrollTop},ni="unmounted",lo="exited",uo="entering",qo="entered",wc="exiting",Yn=(function(e){Id(t,e);function t(r,o){var a;a=e.call(this,r,o)||this;var i=o,s=i&&!i.isMounting?r.enter:r.appear,l;return a.appearStatus=null,r.in?s?(l=lo,a.appearStatus=uo):l=qo:r.unmountOnExit||r.mountOnEnter?l=ni:l=lo,a.state={status:l},a.nextCallback=null,a}t.getDerivedStateFromProps=function(o,a){var i=o.in;return i&&a.status===ni?{status:lo}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(o){var a=null;if(o!==this.props){var i=this.state.status;this.props.in?i!==uo&&i!==qo&&(a=uo):(i===uo||i===qo)&&(a=wc)}this.updateStatus(!1,a)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var o=this.props.timeout,a,i,s;return a=i=s=o,o!=null&&typeof o!="number"&&(a=o.exit,i=o.enter,s=o.appear!==void 0?o.appear:i),{exit:a,enter:i,appear:s}},n.updateStatus=function(o,a){if(o===void 0&&(o=!1),a!==null)if(this.cancelNextCallback(),a===uo){if(this.props.unmountOnExit||this.props.mountOnEnter){var i=this.props.nodeRef?this.props.nodeRef.current:Za.findDOMNode(this);i&&K1(i)}this.performEnter(o)}else this.performExit();else this.props.unmountOnExit&&this.state.status===lo&&this.setState({status:ni})},n.performEnter=function(o){var a=this,i=this.props.enter,s=this.context?this.context.isMounting:o,l=this.props.nodeRef?[s]:[Za.findDOMNode(this),s],c=l[0],d=l[1],p=this.getTimeouts(),h=s?p.appear:p.enter;if(!o&&!i||Ih.disabled){this.safeSetState({status:qo},function(){a.props.onEntered(c)});return}this.props.onEnter(c,d),this.safeSetState({status:uo},function(){a.props.onEntering(c,d),a.onTransitionEnd(h,function(){a.safeSetState({status:qo},function(){a.props.onEntered(c,d)})})})},n.performExit=function(){var o=this,a=this.props.exit,i=this.getTimeouts(),s=this.props.nodeRef?void 0:Za.findDOMNode(this);if(!a||Ih.disabled){this.safeSetState({status:lo},function(){o.props.onExited(s)});return}this.props.onExit(s),this.safeSetState({status:wc},function(){o.props.onExiting(s),o.onTransitionEnd(i.exit,function(){o.safeSetState({status:lo},function(){o.props.onExited(s)})})})},n.cancelNextCallback=function(){this.nextCallback!==null&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(o,a){a=this.setNextCallback(a),this.setState(o,a)},n.setNextCallback=function(o){var a=this,i=!0;return this.nextCallback=function(s){i&&(i=!1,a.nextCallback=null,o(s))},this.nextCallback.cancel=function(){i=!1},this.nextCallback},n.onTransitionEnd=function(o,a){this.setNextCallback(a);var i=this.props.nodeRef?this.props.nodeRef.current:Za.findDOMNode(this),s=o==null&&!this.props.addEndListener;if(!i||s){setTimeout(this.nextCallback,0);return}if(this.props.addEndListener){var l=this.props.nodeRef?[this.nextCallback]:[i,this.nextCallback],c=l[0],d=l[1];this.props.addEndListener(c,d)}o!=null&&setTimeout(this.nextCallback,o)},n.render=function(){var o=this.state.status;if(o===ni)return null;var a=this.props,i=a.children;a.in,a.mountOnEnter,a.unmountOnExit,a.appear,a.enter,a.exit,a.timeout,a.addEndListener,a.onEnter,a.onEntering,a.onEntered,a.onExit,a.onExiting,a.onExited,a.nodeRef;var s=He(a,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return H.createElement(ol.Provider,{value:null},typeof i=="function"?i(o,s):H.cloneElement(H.Children.only(i),s))},t})(H.Component);Yn.contextType=ol;Yn.propTypes={};function Uo(){}Yn.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:Uo,onEntering:Uo,onEntered:Uo,onExit:Uo,onExiting:Uo,onExited:Uo};Yn.UNMOUNTED=ni;Yn.EXITED=lo;Yn.ENTERING=uo;Yn.ENTERED=qo;Yn.EXITING=wc;var _4=function(t,n){return t&&n&&n.split(" ").forEach(function(r){return N4(t,r)})},Hu=function(t,n){return t&&n&&n.split(" ").forEach(function(r){return F4(t,r)})},Ad=(function(e){Id(t,e);function t(){for(var r,o=arguments.length,a=new Array(o),i=0;i<o;i++)a[i]=arguments[i];return r=e.call.apply(e,[this].concat(a))||this,r.appliedClasses={appear:{},enter:{},exit:{}},r.onEnter=function(s,l){var c=r.resolveArguments(s,l),d=c[0],p=c[1];r.removeClasses(d,"exit"),r.addClass(d,p?"appear":"enter","base"),r.props.onEnter&&r.props.onEnter(s,l)},r.onEntering=function(s,l){var c=r.resolveArguments(s,l),d=c[0],p=c[1],h=p?"appear":"enter";r.addClass(d,h,"active"),r.props.onEntering&&r.props.onEntering(s,l)},r.onEntered=function(s,l){var c=r.resolveArguments(s,l),d=c[0],p=c[1],h=p?"appear":"enter";r.removeClasses(d,h),r.addClass(d,h,"done"),r.props.onEntered&&r.props.onEntered(s,l)},r.onExit=function(s){var l=r.resolveArguments(s),c=l[0];r.removeClasses(c,"appear"),r.removeClasses(c,"enter"),r.addClass(c,"exit","base"),r.props.onExit&&r.props.onExit(s)},r.onExiting=function(s){var l=r.resolveArguments(s),c=l[0];r.addClass(c,"exit","active"),r.props.onExiting&&r.props.onExiting(s)},r.onExited=function(s){var l=r.resolveArguments(s),c=l[0];r.removeClasses(c,"exit"),r.addClass(c,"exit","done"),r.props.onExited&&r.props.onExited(s)},r.resolveArguments=function(s,l){return r.props.nodeRef?[r.props.nodeRef.current,s]:[s,l]},r.getClassNames=function(s){var l=r.props.classNames,c=typeof l=="string",d=c&&l?l+"-":"",p=c?""+d+s:l[s],h=c?p+"-active":l[s+"Active"],f=c?p+"-done":l[s+"Done"];return{baseClassName:p,activeClassName:h,doneClassName:f}},r}var n=t.prototype;return n.addClass=function(o,a,i){var s=this.getClassNames(a)[i+"ClassName"],l=this.getClassNames("enter"),c=l.doneClassName;a==="appear"&&i==="done"&&c&&(s+=" "+c),i==="active"&&o&&K1(o),s&&(this.appliedClasses[a][i]=s,_4(o,s))},n.removeClasses=function(o,a){var i=this.appliedClasses[a],s=i.base,l=i.active,c=i.done;this.appliedClasses[a]={},s&&Hu(o,s),l&&Hu(o,l),c&&Hu(o,c)},n.render=function(){var o=this.props;o.classNames;var a=He(o,["classNames"]);return H.createElement(Yn,$({},a,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},t})(H.Component);Ad.defaultProps={classNames:""};Ad.propTypes={};function B4(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Pd(e,t){var n=function(a){return t&&H.isValidElement(a)?t(a):a},r=Object.create(null);return e&&H.Children.map(e,function(o){return o}).forEach(function(o){r[o.key]=n(o)}),r}function j4(e,t){e=e||{},t=t||{};function n(d){return d in t?t[d]:e[d]}var r=Object.create(null),o=[];for(var a in e)a in t?o.length&&(r[a]=o,o=[]):o.push(a);var i,s={};for(var l in t){if(r[l])for(i=0;i<r[l].length;i++){var c=r[l][i];s[r[l][i]]=n(c)}s[l]=n(l)}for(i=0;i<o.length;i++)s[o[i]]=n(o[i]);return s}function fo(e,t,n){return n[t]!=null?n[t]:e.props[t]}function $4(e,t){return Pd(e.children,function(n){return H.cloneElement(n,{onExited:t.bind(null,n),in:!0,appear:fo(n,"appear",e),enter:fo(n,"enter",e),exit:fo(n,"exit",e)})})}function H4(e,t,n){var r=Pd(e.children),o=j4(t,r);return Object.keys(o).forEach(function(a){var i=o[a];if(H.isValidElement(i)){var s=a in t,l=a in r,c=t[a],d=H.isValidElement(c)&&!c.props.in;l&&(!s||d)?o[a]=H.cloneElement(i,{onExited:n.bind(null,i),in:!0,exit:fo(i,"exit",e),enter:fo(i,"enter",e)}):!l&&s&&!d?o[a]=H.cloneElement(i,{in:!1}):l&&s&&H.isValidElement(c)&&(o[a]=H.cloneElement(i,{onExited:n.bind(null,i),in:c.props.in,exit:fo(i,"exit",e),enter:fo(i,"enter",e)}))}}),o}var z4=Object.values||function(e){return Object.keys(e).map(function(t){return e[t]})},U4={component:"div",childFactory:function(t){return t}},Ki=(function(e){Id(t,e);function t(r,o){var a;a=e.call(this,r,o)||this;var i=a.handleExited.bind(B4(a));return a.state={contextValue:{isMounting:!0},handleExited:i,firstRender:!0},a}var n=t.prototype;return n.componentDidMount=function(){this.mounted=!0,this.setState({contextValue:{isMounting:!1}})},n.componentWillUnmount=function(){this.mounted=!1},t.getDerivedStateFromProps=function(o,a){var i=a.children,s=a.handleExited,l=a.firstRender;return{children:l?$4(o,s):H4(o,i,s),firstRender:!1}},n.handleExited=function(o,a){var i=Pd(this.props.children);o.key in i||(o.props.onExited&&o.props.onExited(a),this.mounted&&this.setState(function(s){var l=$({},s.children);return delete l[o.key],{children:l}}))},n.render=function(){var o=this.props,a=o.component,i=o.childFactory,s=He(o,["component","childFactory"]),l=this.state.contextValue,c=z4(this.state.children).map(i);return delete s.appear,delete s.enter,delete s.exit,a===null?H.createElement(ol.Provider,{value:l},c):H.createElement(ol.Provider,{value:l},H.createElement(a,s,c))},t})(H.Component);Ki.propTypes={};Ki.defaultProps=U4;const V4=[];function W4(e){w.useEffect(e,V4)}class Rd{static create(){return new Rd}currentId=null;start(t,n){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,n()},t)}clear=()=>{this.currentId!==null&&(clearTimeout(this.currentId),this.currentId=null)};disposeEffect=()=>this.clear}function $l(){const e=Y1(Rd.create).current;return W4(e.disposeEffect),e}function q4(e){const{className:t,classes:n,pulsate:r=!1,rippleX:o,rippleY:a,rippleSize:i,in:s,onExited:l,timeout:c}=e,[d,p]=w.useState(!1),h=Pe(t,n.ripple,n.rippleVisible,r&&n.ripplePulsate),f={width:i,height:i,top:-(i/2)+a,left:-(i/2)+o},m=Pe(n.child,d&&n.childLeaving,r&&n.childPulsate);return!s&&!d&&p(!0),w.useEffect(()=>{if(!s&&l!=null){const g=setTimeout(l,c);return()=>{clearTimeout(g)}}},[l,s,c]),u.jsx("span",{className:h,style:f,children:u.jsx("span",{className:m})})}const Ln=Oe("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),Ic=550,Y4=80,K4=pt.keyframes`
93
93
  0% {
94
94
  transform: scale(0);
95
95
  opacity: 0.1;
@@ -3,7 +3,7 @@ import { Box as Ie, CircularProgress as $0, Typography as Ee, Button as Yt, Tool
3
3
  import * as w from "react";
4
4
  import Se, { useEffect as Ht, useImperativeHandle as W0, useContext as za, Fragment as q0, useMemo as gt, useRef as un, useReducer as lE, useState as He, Suspense as Md, lazy as uE, createContext as cE, isValidElement as Qs, cloneElement as Xs, Children as dE, useCallback as Fn, useLayoutEffect as fE } from "react";
5
5
  import { useQuery as pE, useMutation as hE, useQueryClient as vo } from "@tanstack/react-query";
6
- import { u as yt, g as Y0, ai as Od, aj as mE, ak as j0, al as Xl, am as vl, an as K0, ao as G0, ap as Q0, aq as X0, c as cp, A as Z0, ar as Gr, M as yn, as as gr, Q as gE, at as Fc, au as Zs, av as bE, aw as yE, ax as EE, ay as xE } from "./ServerProvider-XsVzz-OD.es.js";
6
+ import { u as yt, g as Y0, aj as Od, ak as mE, al as j0, am as Xl, an as vl, ao as K0, ap as G0, aq as Q0, ar as X0, c as cp, A as Z0, as as Gr, h as yn, at as gr, U as gE, au as Fc, av as Zs, aw as bE, ax as yE, ay as EE, az as xE } from "./ServerProvider-ATeuU4ly.es.js";
7
7
  import Tl from "markdown-to-jsx";
8
8
  import { Warning as CE, Add as J0, Launch as vE, Delete as Zl, Edit as Ld, MoreVert as Jl, AddCircleRounded as TE } from "@mui/icons-material";
9
9
  import { unstable_createGetCssVar as SE, createSpacing as kE, useTheme as wE, GlobalStyles as DE, unstable_memoTheme as IE, createStack as AE, Stack as PE, Box as eg, createBox as RE, keyframes as fs, css as tg, shouldForwardProp as ng, alpha as xn } from "@mui/system";
@@ -23659,7 +23659,7 @@ function FP() {
23659
23659
  { default: a },
23660
23660
  { default: i }
23661
23661
  ] = await Promise.all([
23662
- import("./core-D9Hl0IDY.es.js"),
23662
+ import("./core-C6anj5c0.es.js"),
23663
23663
  import("./engine-oniguruma-C4vnmooL.es.js"),
23664
23664
  import("./sql-DCkt643-.es.js"),
23665
23665
  import("./json-71t8ZF9g.es.js"),
package/dist/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-DmzHCafz.cjs.js"),r=require("./ServerProvider-j5Jof3CU.cjs.js");exports.AnalyzePackageButton=e.AnalyzePackageButton;exports.BrowserWorkbookStorage=e.BrowserWorkbookStorage;exports.ConnectionExplorer=e.ConnectionExplorer;exports.DimensionFilter=e.DimensionFilter;exports.EmbeddedQueryResult=e.EmbeddedQueryResult;exports.Environment=e.Environment;exports.Home=e.Home;exports.Loading=e.Loading;exports.Materializations=e.Materializations;exports.Model=e.Model;exports.ModelExplorer=e.ModelExplorer;exports.ModelExplorerDialog=e.ModelExplorerDialog;exports.Models=e.Models;exports.Notebook=e.Notebook;exports.Package=e.Package;exports.Packages=e.Packages;exports.PageViewer=e.PageViewer;exports.QueryResult=e.QueryResult;exports.RenderedResult=e.RenderedResult;exports.ResultContainer=e.ResultContainer;exports.SourceExplorerComponent=e.SourceExplorerComponent;exports.SourcesExplorer=e.SourcesExplorer;exports.Workbook=e.Workbook;exports.WorkbookList=e.WorkbookList;exports.WorkbookManager=e.WorkbookManager;exports.WorkbookStorageProvider=e.WorkbookStorageProvider;exports.buildMalloyExplicitTheme=e.buildMalloyExplicitTheme;exports.buildTableCssVars=e.buildTableCssVars;exports.buildVegaThemeOverride=e.buildVegaThemeOverride;exports.createEmbeddedQueryResult=e.createEmbeddedQueryResult;exports.encodeResourceUri=e.encodeResourceUri;exports.extractDimensionSpecs=e.extractDimensionSpecs;exports.extractSourceFromQuery=e.extractSourceFromQuery;exports.generateFilterClause=e.generateFilterClause;exports.getDimensionKey=e.getDimensionKey;exports.getJoinedSources=e.getJoinedSources;exports.injectWhereClause=e.injectWhereClause;exports.makeDimensionKey=e.makeDimensionKey;exports.parseAllSourceInfos=e.parseAllSourceInfos;exports.parseDimensionFilterAnnotation=e.parseDimensionFilterAnnotation;exports.parseNotebookFilterAnnotation=e.parseNotebookFilterAnnotation;exports.parseResourceUri=e.parseResourceUri;exports.readChartAnnotations=e.readChartAnnotations;exports.useDimensionFilters=e.useDimensionFilters;exports.useDimensionFiltersFromSpec=e.useDimensionFiltersFromSpec;exports.useDimensionFiltersQuery=e.useDimensionFiltersQuery;exports.useDimensionalFilterRangeData=e.useDimensionalFilterRangeData;exports.useGivensForm=e.useGivensForm;exports.useModelData=e.useModelData;exports.useModelGivens=e.useModelGivens;exports.useRawQueryData=e.useRawQueryData;exports.useRouterClickHandler=e.useRouterClickHandler;exports.DEFAULT_THEME=r.DEFAULT_THEME;exports.ServerProvider=r.ServerProvider;exports.ThemeProvider=r.ThemeProvider;exports.resolveMode=r.resolveMode;exports.resolveTheme=r.resolveTheme;exports.usePublisherTheme=r.usePublisherTheme;exports.useServer=r.useServer;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-Cr8F7MlN.cjs.js"),r=require("./ServerProvider-CBjczSEK.cjs.js");exports.AnalyzePackageButton=e.AnalyzePackageButton;exports.BrowserWorkbookStorage=e.BrowserWorkbookStorage;exports.ConnectionExplorer=e.ConnectionExplorer;exports.DimensionFilter=e.DimensionFilter;exports.EmbeddedQueryResult=e.EmbeddedQueryResult;exports.Environment=e.Environment;exports.Home=e.Home;exports.Loading=e.Loading;exports.Materializations=e.Materializations;exports.Model=e.Model;exports.ModelExplorer=e.ModelExplorer;exports.ModelExplorerDialog=e.ModelExplorerDialog;exports.Models=e.Models;exports.Notebook=e.Notebook;exports.Package=e.Package;exports.Packages=e.Packages;exports.PageViewer=e.PageViewer;exports.QueryResult=e.QueryResult;exports.RenderedResult=e.RenderedResult;exports.ResultContainer=e.ResultContainer;exports.SourceExplorerComponent=e.SourceExplorerComponent;exports.SourcesExplorer=e.SourcesExplorer;exports.Workbook=e.Workbook;exports.WorkbookList=e.WorkbookList;exports.WorkbookManager=e.WorkbookManager;exports.WorkbookStorageProvider=e.WorkbookStorageProvider;exports.buildMalloyExplicitTheme=e.buildMalloyExplicitTheme;exports.buildTableCssVars=e.buildTableCssVars;exports.buildVegaThemeOverride=e.buildVegaThemeOverride;exports.createEmbeddedQueryResult=e.createEmbeddedQueryResult;exports.encodeResourceUri=e.encodeResourceUri;exports.extractDimensionSpecs=e.extractDimensionSpecs;exports.extractSourceFromQuery=e.extractSourceFromQuery;exports.generateFilterClause=e.generateFilterClause;exports.getDimensionKey=e.getDimensionKey;exports.getJoinedSources=e.getJoinedSources;exports.injectWhereClause=e.injectWhereClause;exports.makeDimensionKey=e.makeDimensionKey;exports.parseAllSourceInfos=e.parseAllSourceInfos;exports.parseDimensionFilterAnnotation=e.parseDimensionFilterAnnotation;exports.parseNotebookFilterAnnotation=e.parseNotebookFilterAnnotation;exports.parseResourceUri=e.parseResourceUri;exports.readChartAnnotations=e.readChartAnnotations;exports.useDimensionFilters=e.useDimensionFilters;exports.useDimensionFiltersFromSpec=e.useDimensionFiltersFromSpec;exports.useDimensionFiltersQuery=e.useDimensionFiltersQuery;exports.useDimensionalFilterRangeData=e.useDimensionalFilterRangeData;exports.useGivensForm=e.useGivensForm;exports.useModelData=e.useModelData;exports.useModelGivens=e.useModelGivens;exports.useRawQueryData=e.useRawQueryData;exports.useRouterClickHandler=e.useRouterClickHandler;exports.DEFAULT_THEME=r.DEFAULT_THEME;exports.ServerProvider=r.ServerProvider;exports.ThemeProvider=r.ThemeProvider;exports.resolveMode=r.resolveMode;exports.resolveTheme=r.resolveTheme;exports.usePublisherTheme=r.usePublisherTheme;exports.useServer=r.useServer;
package/dist/index.es.js CHANGED
@@ -1,5 +1,5 @@
1
- import { A as s, O as o, C as r, D as i, F as n, E as t, H as l, L as u, M as d, o as m, q as c, r as k, y as p, N as g, x as D, P as b, B as E, Q as F, R as S, I as v, t as y, S as M, W as R, J as x, T as C, K as P, a1 as T, a2 as h, a3 as A, G as Q, a6 as W, g as B, i as H, j as L, Z as U, k as V, l as f, _ as w, p as z, m as G, n as K, a5 as N, a4 as j, U as I, V as J, X as O, Y as _, a0 as q, v as X, $ as Y, u as Z, e as $ } from "./index-Br50Niyz.es.js";
2
- import { az as ae, S as se, aB as oe, aA as re, ay as ie, al as ne, u as te } from "./ServerProvider-XsVzz-OD.es.js";
1
+ import { A as s, O as o, C as r, D as i, F as n, E as t, H as l, L as u, M as d, o as m, q as c, r as k, y as p, N as g, x as D, P as b, B as E, Q as F, R as S, I as v, t as M, S as R, W as x, J as y, T as C, K as P, a1 as T, a2 as h, a3 as A, G as Q, a6 as W, g as B, i as H, j as L, Z as U, k as V, l as f, _ as w, p as z, m as G, n as K, a5 as N, a4 as j, U as I, V as J, X as O, Y as _, a0 as q, v as X, $ as Y, u as Z, e as $ } from "./index-DoW6MHx4.es.js";
2
+ import { aA as ae, S as se, aC as oe, aB as re, az as ie, am as ne, u as te } from "./ServerProvider-ATeuU4ly.es.js";
3
3
  export {
4
4
  s as AnalyzePackageButton,
5
5
  o as BrowserWorkbookStorage,
@@ -23,11 +23,11 @@ export {
23
23
  S as RenderedResult,
24
24
  v as ResultContainer,
25
25
  se as ServerProvider,
26
- y as SourceExplorerComponent,
27
- M as SourcesExplorer,
26
+ M as SourceExplorerComponent,
27
+ R as SourcesExplorer,
28
28
  oe as ThemeProvider,
29
- R as Workbook,
30
- x as WorkbookList,
29
+ x as Workbook,
30
+ y as WorkbookList,
31
31
  C as WorkbookManager,
32
32
  P as WorkbookStorageProvider,
33
33
  T as buildMalloyExplicitTheme,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@malloy-publisher/sdk",
3
3
  "description": "Malloy Publisher SDK",
4
- "version": "0.0.222",
4
+ "version": "0.0.224",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs.js",
7
7
  "module": "dist/index.es.js",
@@ -71,10 +71,10 @@
71
71
  "react-router-dom": ">=7.6.2",
72
72
  "@tanstack/react-query": ">=5.59.16",
73
73
  "@malloydata/malloy-explorer": "0.0.338-dev260215172810",
74
- "@malloydata/malloy-interfaces": "^0.0.421",
75
- "@malloydata/malloy-query-builder": "^0.0.421",
76
- "@malloydata/malloy-tag": "^0.0.421",
77
- "@malloydata/render": "^0.0.421",
74
+ "@malloydata/malloy-interfaces": "^0.0.422",
75
+ "@malloydata/malloy-query-builder": "^0.0.422",
76
+ "@malloydata/malloy-tag": "^0.0.422",
77
+ "@malloydata/render": "^0.0.422",
78
78
  "@mui/icons-material": ">=7.1.1",
79
79
  "@mui/x-date-pickers": ">=7.1.1",
80
80
  "@mui/material": ">=7.1.1",
@@ -92,8 +92,8 @@
92
92
  },
93
93
  "devDependencies": {
94
94
  "@malloydata/malloy-explorer": "0.0.338-dev260215172810",
95
- "@malloydata/malloy-query-builder": "^0.0.421",
96
- "@malloydata/malloy-tag": "^0.0.421",
95
+ "@malloydata/malloy-query-builder": "^0.0.422",
96
+ "@malloydata/malloy-tag": "^0.0.422",
97
97
  "@openapitools/openapi-generator-cli": "^2.20.2",
98
98
  "@types/bun": "^1.2.21",
99
99
  "@types/k6": "^1.0.2",
@@ -101,6 +101,15 @@ export interface ServerProviderProps {
101
101
  * @default true
102
102
  */
103
103
  mutable?: boolean;
104
+ /** An optional theme supplied by the embedding app, for a host that wants its
105
+ * own brand palette and fonts on the rendered charts and tables. It is added
106
+ * as the highest-precedence base layer, so it wins over the operator's
107
+ * instance theme from `/status`, while per-chart `# theme` annotations still
108
+ * layer on top. Omit to use only the instance theme. Mode (light/dark) is
109
+ * unaffected, so set both variants of any per-mode key if the host is
110
+ * single-mode.
111
+ */
112
+ theme?: Theme;
104
113
  }
105
114
 
106
115
  const getApiClients = (
@@ -162,6 +171,7 @@ const ServerProviderInner: React.FC<ServerProviderProps> = ({
162
171
  getAccessToken,
163
172
  baseURL,
164
173
  mutable: mutableProp,
174
+ theme: themeProp,
165
175
  }) => {
166
176
  const apiClients = useMemo(
167
177
  () => getApiClients(baseURL, getAccessToken),
@@ -206,9 +216,14 @@ const ServerProviderInner: React.FC<ServerProviderProps> = ({
206
216
  mutable = mutableProp ?? true;
207
217
  }
208
218
 
209
- // Stable layers reference so ThemeProvider's useMemo doesn't reshuffle
210
- // on every render when instanceTheme is unchanged.
211
- const themeLayers = useMemo(() => [instanceTheme], [instanceTheme]);
219
+ // Stable layers reference so ThemeProvider's useMemo doesn't reshuffle on
220
+ // every render when the inputs are unchanged. Layers are low-to-high
221
+ // precedence, so the embedder-supplied theme (if any) comes last and
222
+ // overrides the operator's instance theme from /status.
223
+ const themeLayers = useMemo(
224
+ () => [instanceTheme, themeProp],
225
+ [instanceTheme, themeProp],
226
+ );
212
227
 
213
228
  // Viewer's light/dark/auto preference. localStorage is the source of
214
229
  // truth across reloads; matchMedia provides the OS hint that 'auto'