@malloy-publisher/app 0.0.73 → 0.0.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +2 -2
- package/dist/index.es.js +4 -2
- package/package.json +2 -2
package/dist/index.cjs.js
CHANGED
|
@@ -148,7 +148,7 @@ import {${t.sourceName}}" from '${t.modelPath}'"
|
|
|
148
148
|
`));r(f=>{const g=f.items.itemMetaMap[p];return g.label!==h?Y({},f,{items:Y({},f.items,{itemMetaMap:Y({},f.items.itemMetaMap,{[p]:Y({},g,{label:h})})})}):f}),n.onItemLabelChange&&n.onItemLabelChange(p,h)};return{instance:{setEditedItemId:i,isItemBeingEdited:s,updateItemLabel:d,isItemEditable:c,isTreeViewEditable:l,isItemBeingEditedRef:a},publicAPI:{updateItemLabel:d}}};Dt.itemPlugin=$S;Dt.getDefaultizedParams=({params:e,experimentalFeatures:t})=>{const r=t?.labelEditing;return Y({},e,{isItemEditable:r?e.isItemEditable??!1:!1})};Dt.getInitialState=()=>({editedItemId:null});Dt.params={onItemLabelChange:!0,isItemEditable:!0};const Qr=(e,t)=>e.getAvailablePlugins().has(t),qp=e=>Array.isArray(e)?e.length>0&&e.some(qp):!!e,DS=({itemId:e,children:t})=>{const{instance:r,selection:{multiSelect:n},publicAPI:o}=sn(),a={expandable:qp(t),expanded:r.isItemExpanded(e),focused:r.isItemFocused(e),selected:r.isItemSelected(e),disabled:r.isItemDisabled(e),editing:r?.isItemBeingEdited?r?.isItemBeingEdited(e):!1,editable:r.isItemEditable?r.isItemEditable(e):!1},i=d=>{if(a.disabled)return;a.focused||r.focusItem(d,e);const p=n&&(d.shiftKey||d.ctrlKey||d.metaKey);a.expandable&&!(p&&r.isItemExpanded(e))&&r.toggleItemExpansion(d,e)},s=d=>{a.disabled||(a.focused||r.focusItem(d,e),n&&(d.shiftKey||d.ctrlKey||d.metaKey)?d.shiftKey?r.expandSelectionRange(d,e):r.selectItem({event:d,itemId:e,keepExistingSelection:!0}):r.selectItem({event:d,itemId:e,shouldBeSelected:!0}))},l=d=>{const p=d.nativeEvent.shiftKey;n&&p?r.expandSelectionRange(d,e):r.selectItem({event:d,itemId:e,keepExistingSelection:n,shouldBeSelected:d.target.checked})},c=()=>{Qr(r,Dt)&&r.isItemEditable(e)&&(r.isItemBeingEdited(e)?r.setEditedItemId(null):r.setEditedItemId(e))};return{interactions:{handleExpansion:i,handleSelection:s,handleCheckboxSelection:l,toggleItemEditing:c,handleSaveItemLabel:(d,p)=>{Qr(r,Dt)&&r.isItemBeingEditedRef(e)&&(r.updateItemLabel(e,p),c(),r.focusItem(d,e))},handleCancelItemLabelEditing:d=>{Qr(r,Dt)&&r.isItemBeingEditedRef(e)&&(c(),r.focusItem(d,e))}},status:a,publicAPI:o}},yl=S.createContext(()=>-1),Fp=(e,t)=>{let r=t.length-1;for(;r>=0&&!e.isItemNavigable(t[r]);)r-=1;if(r!==-1)return t[r]},zp=(e,t)=>{const r=e.getItemMeta(t),n=e.getItemOrderedChildrenIds(r.parentId),o=e.getItemIndex(t);if(o===0)return r.parentId;let a=o-1;for(;!e.isItemNavigable(n[a])&&a>=0;)a-=1;if(a===-1)return r.parentId==null?null:zp(e,r.parentId);let i=n[a],s=Fp(e,e.getItemOrderedChildrenIds(i));for(;e.isItemExpanded(i)&&s!=null;)i=s,s=e.getItemOrderedChildrenIds(i).find(e.isItemNavigable);return i},ba=(e,t)=>{if(e.isItemExpanded(t)){const n=e.getItemOrderedChildrenIds(t).find(e.isItemNavigable);if(n!=null)return n}let r=e.getItemMeta(t);for(;r!=null;){const n=e.getItemOrderedChildrenIds(r.parentId),o=e.getItemIndex(r.id);if(o<n.length-1){let a=o+1;for(;!e.isItemNavigable(n[a])&&a<n.length-1;)a+=1;if(e.isItemNavigable(n[a]))return n[a]}r=e.getItemMeta(r.parentId)}return null},Wp=e=>{let t=null;for(;t==null||e.isItemExpanded(t);){const r=e.getItemOrderedChildrenIds(t),n=Fp(e,r);if(n==null)return t;t=n}return t},Io=e=>e.getItemOrderedChildrenIds(null).find(e.isItemNavigable),Up=(e,t,r)=>{if(t===r)return[t,r];const n=e.getItemMeta(t),o=e.getItemMeta(r);if(n.parentId===o.id||o.parentId===n.id)return o.parentId===n.id?[n.id,o.id]:[o.id,n.id];const a=[n.id],i=[o.id];let s=n.parentId,l=o.parentId,c=i.indexOf(s)!==-1,d=a.indexOf(l)!==-1,p=!0,h=!0;for(;!d&&!c;)p&&(a.push(s),c=i.indexOf(s)!==-1,p=s!==null,!c&&p&&(s=e.getItemMeta(s).parentId)),h&&!c&&(i.push(l),d=a.indexOf(l)!==-1,h=l!==null,!d&&h&&(l=e.getItemMeta(l).parentId));const f=c?s:l,g=e.getItemOrderedChildrenIds(f),y=a[a.indexOf(f)-1],v=i[i.indexOf(f)-1];return g.indexOf(y)<g.indexOf(v)?[t,r]:[r,t]},BS=(e,t,r)=>{const n=l=>{if(e.isItemExpandable(l)&&e.isItemExpanded(l))return e.getItemOrderedChildrenIds(l)[0];let c=e.getItemMeta(l);for(;c!=null;){const d=e.getItemOrderedChildrenIds(c.parentId),p=e.getItemIndex(c.id);if(p<d.length-1)return d[p+1];c=e.getItemMeta(c.parentId)}throw new Error("Invalid range")},[o,a]=Up(e,t,r),i=[o];let s=o;for(;s!==a;)s=n(s),e.isItemDisabled(s)||i.push(s);return i},qS=e=>{let t=Io(e);const r=[];for(;t!=null;)r.push(t),t=ba(e,t);return r},jo=(e,t)=>t!==e.closest('*[role="treeitem"]');let pu=0;const FS=()=>(pu+=1,`mui-tree-view-${pu}`),bl=({id:e,treeId:t="",itemId:r})=>e??`${t}-${r}`,zS=e=>{const{runItemPlugins:t,items:{onItemClick:r,disabledItemsFocusable:n,indentationAtItemLevel:o},selection:{disableSelection:a,checkboxSelection:i},expansion:{expansionTrigger:s},treeId:l,instance:c,publicAPI:d}=sn(),p=S.useContext(yl),{id:h,itemId:f,label:g,children:y,rootRef:v}=e,{rootRef:b,contentRef:C,propsEnhancers:w}=t(e),{interactions:k,status:j}=DS({itemId:f,children:y}),P=S.useRef(null),B=S.useRef(null),F=On(v,b,P),L=On(C,B),m=S.useRef(null),T=bl({itemId:f,treeId:l,id:h}),D=c.canItemBeTabbed(f)?0:-1,$={rootRefObject:P,contentRefObject:B,interactions:k},H=U=>O=>{if(U.onFocus?.(O),O.defaultMuiPrevented)return;const q=!j.disabled||n;!j.focused&&q&&O.currentTarget===O.target&&c.focusItem(O,f)},J=U=>O=>{if(U.onBlur?.(O),O.defaultMuiPrevented)return;const q=c.getItemDOMElement(f);j.editing||O.relatedTarget&&jo(O.relatedTarget,q)&&(O.target&&O.target?.dataset?.element==="labelInput"&&jo(O.target,q)||O.relatedTarget?.dataset?.element==="labelInput")||c.removeFocusedItem()},V=U=>O=>{U.onKeyDown?.(O),!(O.defaultMuiPrevented||O.target?.dataset?.element==="labelInput")&&c.handleItemKeyDown(O,f)},ce=U=>O=>{U.onDoubleClick?.(O),!O.defaultMuiPrevented&&k.toggleItemEditing()},K=U=>O=>{U.onClick?.(O),r?.(O,f),!(O.defaultMuiPrevented||m.current?.contains(O.target))&&(s==="content"&&k.handleExpansion(O),i||k.handleSelection(O))},se=U=>O=>{U.onMouseDown?.(O),!O.defaultMuiPrevented&&(O.shiftKey||O.ctrlKey||O.metaKey||j.disabled)&&O.preventDefault()},Z=U=>O=>{U.onChange?.(O),!O.defaultMuiPrevented&&(a||j.disabled||k.handleCheckboxSelection(O))},X=U=>O=>{U.onClick?.(O),!O.defaultMuiPrevented&&s==="iconContainer"&&k.handleExpansion(O)};return{getRootProps:(U={})=>{const O=Y({},Mt(e),Mt(U));let q;j.selected?q=!0:a||j.disabled?q=void 0:q=!1;const oe=Y({},O,{ref:F,role:"treeitem",tabIndex:D,id:T,"aria-expanded":j.expandable?j.expanded:void 0,"aria-selected":q,"aria-disabled":j.disabled||void 0},U,{onFocus:H(O),onBlur:J(O),onKeyDown:V(O)});o&&(oe.style={"--TreeView-itemDepth":typeof p=="function"?p(f):p});const Pe=w.root?.(Y({},$,{externalEventHandlers:O}))??{};return Y({},oe,Pe)},getContentProps:(U={})=>{const O=Mt(U),q=Y({},O,U,{ref:L,onClick:K(O),onMouseDown:se(O),status:j});o&&(q.indentationAtItemLevel=!0);const oe=w.content?.(Y({},$,{externalEventHandlers:O}))??{};return Y({},q,oe)},getGroupTransitionProps:(U={})=>{const O=Mt(U),q=Y({},O,{unmountOnExit:!0,component:"ul",role:"group",in:j.expanded,children:y},U);return o&&(q.indentationAtItemLevel=!0),q},getIconContainerProps:(U={})=>{const O=Mt(U);return Y({},O,U,{onClick:X(O)})},getCheckboxProps:(U={})=>{const O=Mt(U);return Y({},O,{visible:i,ref:m,checked:j.selected,disabled:a||j.disabled,tabIndex:-1},U,{onChange:Z(O)})},getLabelProps:(U={})=>{const O=Y({},Mt(U)),q=Y({},O,{children:g},U,{onDoubleClick:ce(O)});return c.isTreeViewEditable&&(q.editable=j.editable),q},getLabelInputProps:(U={})=>{const O=Mt(U),q=w.labelInput?.({rootRefObject:P,contentRefObject:B,externalEventHandlers:O,interactions:k})??{};return Y({},U,q)},getDragAndDropOverlayProps:(U={})=>{const O=Mt(U),q=w.dragAndDropOverlay?.(Y({},$,{externalEventHandlers:O}))??{};return Y({},U,q)},rootRef:F,status:j,publicAPI:d}},WS=zS;function Hp(e){const{instance:t,items:{onItemClick:r},selection:{multiSelect:n,checkboxSelection:o,disableSelection:a},expansion:{expansionTrigger:i}}=sn(),s=t.isItemExpandable(e),l=t.isItemExpanded(e),c=t.isItemFocused(e),d=t.isItemSelected(e),p=t.isItemDisabled(e),h=t?.isItemBeingEdited?t?.isItemBeingEdited(e):!1,f=t.isItemEditable?t.isItemEditable(e):!1,g=w=>{if(!p){c||t.focusItem(w,e);const k=n&&(w.shiftKey||w.ctrlKey||w.metaKey);s&&!(k&&t.isItemExpanded(e))&&t.toggleItemExpansion(w,e)}},y=w=>{p||(c||t.focusItem(w,e),n&&(w.shiftKey||w.ctrlKey||w.metaKey)?w.shiftKey?t.expandSelectionRange(w,e):t.selectItem({event:w,itemId:e,keepExistingSelection:!0}):t.selectItem({event:w,itemId:e,shouldBeSelected:!0}))},v=w=>{if(a||p)return;const k=w.nativeEvent.shiftKey;n&&k?t.expandSelectionRange(w,e):t.selectItem({event:w,itemId:e,keepExistingSelection:n,shouldBeSelected:w.target.checked})},b=w=>{(w.shiftKey||w.ctrlKey||w.metaKey||p)&&w.preventDefault()},C=()=>{Qr(t,Dt)&&t.isItemEditable(e)&&(t.isItemBeingEdited(e)?t.setEditedItemId(null):t.setEditedItemId(e))};return{disabled:p,expanded:l,selected:d,focused:c,editable:f,editing:h,disableSelection:a,checkboxSelection:o,handleExpansion:g,handleSelection:y,handleCheckboxSelection:v,handleContentClick:r,preventSelection:b,expansionTrigger:i,toggleItemEditing:C,handleSaveItemLabel:(w,k)=>{Qr(t,Dt)&&t.isItemBeingEditedRef(e)&&(t.updateItemLabel(e,k),C(),t.focusItem(w,e))},handleCancelItemLabelEditing:w=>{Qr(t,Dt)&&t.isItemBeingEditedRef(e)&&(C(),t.focusItem(w,e))}}}const US=Te("div",{name:"MuiTreeItem2DragAndDropOverlay",slot:"Root",overridesResolver:(e,t)=>t.root,shouldForwardProp:e=>fe.shouldForwardProp(e)&&e!=="action"})(({theme:e})=>({position:"absolute",left:0,display:"flex",top:0,bottom:0,right:0,pointerEvents:"none",variants:[{props:{action:"make-child"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))",borderRadius:e.shape.borderRadius,backgroundColor:e.vars?`rgba(${e.vars.palette.primary.darkChannel} / ${e.vars.palette.action.focusOpacity})`:fe.alpha(e.palette.primary.dark,e.palette.action.focusOpacity)}},{props:{action:"reorder-above"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))",borderTop:`1px solid ${(e.vars||e).palette.action.active}`}},{props:{action:"reorder-below"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * var(--TreeView-itemDepth))",borderBottom:`1px solid ${(e.vars||e).palette.action.active}`}},{props:{action:"move-to-parent"},style:{marginLeft:"calc(var(--TreeView-indentMultiplier) * calc(var(--TreeView-itemDepth) - 1))",borderBottom:`1px solid ${(e.vars||e).palette.action.active}`}}]}));function HS(e){return e.action==null?null:u.jsx(US,Y({},e))}const VS=Te("input",{name:"MuiTreeItem2",slot:"LabelInput",overridesResolver:(e,t)=>t.labelInput})(({theme:e})=>Y({},e.typography.body1,{width:"100%",backgroundColor:e.palette.background.paper,borderRadius:e.shape.borderRadius,border:"none",padding:"0 2px",boxSizing:"border-box","&:focus":{outline:`1px solid ${e.palette.primary.main}`}})),GS=["classes","className","displayIcon","expansionIcon","icon","label","itemId","onClick","onMouseDown","dragAndDropOverlayProps","labelInputProps"],Vp=S.forwardRef(function(e,t){const{classes:r,className:n,displayIcon:o,expansionIcon:a,icon:i,label:s,itemId:l,onClick:c,onMouseDown:d,dragAndDropOverlayProps:p,labelInputProps:h}=e,f=mr(e,GS),{disabled:g,expanded:y,selected:v,focused:b,editing:C,editable:w,disableSelection:k,checkboxSelection:j,handleExpansion:P,handleSelection:B,handleCheckboxSelection:F,handleContentClick:L,preventSelection:m,expansionTrigger:T,toggleItemEditing:D}=Hp(l),$=i||a||o,H=S.useRef(null),J=K=>{m(K),d&&d(K)},V=K=>{L?.(K,l),!H.current?.contains(K.target)&&(T==="content"&&P(K),j||B(K),c&&c(K))},ce=K=>{K.defaultMuiPrevented||D()};return u.jsxs("div",Y({},f,{className:Fe(r.root,n,y&&r.expanded,v&&r.selected,b&&r.focused,g&&r.disabled,C&&r.editing,w&&r.editable),onClick:V,onMouseDown:J,ref:t,children:[u.jsx("div",{className:r.iconContainer,children:$}),j&&u.jsx(Lp,{className:r.checkbox,checked:v,onChange:F,disabled:g||k,ref:H,tabIndex:-1}),C?u.jsx(VS,Y({},h,{className:r.labelInput})):u.jsx("div",Y({className:r.label},w&&{onDoubleClick:ce},{children:s})),p&&u.jsx(HS,Y({},p))]}))}),hu=e=>e,KS=()=>{let e=hu;return{configure(t){e=t},generate(t){return e(t)},reset(){e=hu}}},QS=KS(),YS={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function xl(e,t,r="Mui"){const n=YS[t];return n?`${r}-${n}`:`${QS.generate(e)}-${t}`}function Gp(e,t,r="Mui"){const n={};return t.forEach(o=>{n[o]=xl(e,o,r)}),n}function XS(e){return xl("MuiTreeItem",e)}const sr=Gp("MuiTreeItem",["root","groupTransition","content","expanded","selected","focused","disabled","iconContainer","label","checkbox","labelInput","editable","editing","dragAndDropOverlay"]),Kp=Ee(u.jsx("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"})),Qp=Ee(u.jsx("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}));function vl(e){const{children:t,itemId:r}=e,{wrapItem:n,instance:o}=sn();return n({children:t,itemId:r,instance:o})}vl.propTypes={children:fc.node,itemId:fc.string.isRequired};const JS=["children","className","slots","slotProps","ContentComponent","ContentProps","itemId","id","label","onClick","onMouseDown","onFocus","onBlur","onKeyDown"],ZS=["ownerState"],ew=["ownerState"],tw=["ownerState"],rw=Dp(),nw=e=>{const{classes:t}=e;return $p({root:["root"],content:["content"],expanded:["expanded"],selected:["selected"],focused:["focused"],disabled:["disabled"],iconContainer:["iconContainer"],checkbox:["checkbox"],label:["label"],labelInput:["labelInput"],editing:["editing"],editable:["editable"],groupTransition:["groupTransition"]},XS,t)},ow=Te("li",{name:"MuiTreeItem",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0}),aw=Te(Vp,{name:"MuiTreeItem",slot:"Content",overridesResolver:(e,t)=>[t.content,t.iconContainer&&{[`& .${sr.iconContainer}`]:t.iconContainer},t.label&&{[`& .${sr.label}`]:t.label}],shouldForwardProp:e=>Tr(e)&&e!=="indentationAtItemLevel"})(({theme:e})=>({padding:e.spacing(.5,1),borderRadius:e.shape.borderRadius,width:"100%",boxSizing:"border-box",position:"relative",display:"flex",alignItems:"center",gap:e.spacing(1),cursor:"pointer",WebkitTapHighlightColor:"transparent","&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${sr.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"},[`&.${sr.focused}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${sr.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:fe.alpha(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:fe.alpha(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:fe.alpha(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${sr.focused}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:fe.alpha(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`& .${sr.iconContainer}`]:{width:16,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}},[`& .${sr.label}`]:Y({width:"100%",boxSizing:"border-box",minWidth:0,position:"relative"},e.typography.body1),[`& .${sr.checkbox}`]:{padding:0},variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:`calc(${e.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`}}]})),iw=Te(Po,{name:"MuiTreeItem",slot:"GroupTransition",overridesResolver:(e,t)=>t.groupTransition,shouldForwardProp:e=>Tr(e)&&e!=="indentationAtItemLevel"})({margin:0,padding:0,paddingLeft:"var(--TreeView-itemChildrenIndentation)",variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:0}}]}),sw=S.forwardRef(function(e,t){const{icons:r,runItemPlugins:n,items:{disabledItemsFocusable:o,indentationAtItemLevel:a},selection:{disableSelection:i},expansion:{expansionTrigger:s},treeId:l,instance:c}=sn(),d=S.useContext(yl),p=rw({props:e,name:"MuiTreeItem"}),{children:h,className:f,slots:g,slotProps:y,ContentComponent:v=Vp,ContentProps:b,itemId:C,id:w,label:k,onClick:j,onMouseDown:P,onBlur:B,onKeyDown:F}=p,L=mr(p,JS),{expanded:m,focused:T,selected:D,disabled:$,editing:H,handleExpansion:J,handleCancelItemLabelEditing:V,handleSaveItemLabel:ce}=Hp(C),{contentRef:K,rootRef:se,propsEnhancers:Z}=n(p),X=S.useRef(null),U=S.useRef(null),O=On(t,se,X),q=On(b?.ref,K,U),oe={expandIcon:g?.expandIcon??r.slots.expandIcon??Kp,collapseIcon:g?.collapseIcon??r.slots.collapseIcon??Qp,endIcon:g?.endIcon??r.slots.endIcon,icon:g?.icon,groupTransition:g?.groupTransition},Pe=ge=>Array.isArray(ge)?ge.length>0&&ge.some(Pe):!!ge,it=Pe(h),ht=Y({},p,{expanded:m,focused:T,selected:D,disabled:$,indentationAtItemLevel:a}),Ae=nw(ht),_e=oe.groupTransition??void 0,jt=Gr({elementType:_e,ownerState:{},externalSlotProps:y?.groupTransition,additionalProps:Y({unmountOnExit:!0,in:m,component:"ul",role:"group"},a?{indentationAtItemLevel:!0}:{}),className:Ae.groupTransition}),xr=ge=>{s==="iconContainer"&&J(ge)},Ut=m?oe.collapseIcon:oe.expandIcon,dt=Gr({elementType:Ut,ownerState:{},externalSlotProps:ge=>m?Y({},ur(r.slotProps.collapseIcon,ge),ur(y?.collapseIcon,ge)):Y({},ur(r.slotProps.expandIcon,ge),ur(y?.expandIcon,ge)),additionalProps:{onClick:xr}}),Lr=mr(dt,ZS),Qt=it&&Ut?u.jsx(Ut,Y({},Lr)):null,ot=it?void 0:oe.endIcon,Ht=Gr({elementType:ot,ownerState:{},externalSlotProps:ge=>it?{}:Y({},ur(r.slotProps.endIcon,ge),ur(y?.endIcon,ge))}),vr=mr(Ht,ew),Sr=ot?u.jsx(ot,Y({},vr)):null,ae=oe.icon,ne=Gr({elementType:ae,ownerState:{},externalSlotProps:y?.icon}),$r=mr(ne,tw),Wo=ae?u.jsx(ae,Y({},$r)):null;let wr;D?wr=!0:i||$?wr=void 0:wr=!1;function Yt(ge){!T&&(!$||o)&&ge.currentTarget===ge.target&&c.focusItem(ge,C)}function Vt(ge){B?.(ge),!(H||ge.relatedTarget&&jo(ge.relatedTarget,X.current)&&(ge.target&&ge.target?.dataset?.element==="labelInput"&&jo(ge.target,X.current)||ge.relatedTarget?.dataset?.element==="labelInput"))&&c.removeFocusedItem()}const Uo=ge=>{F?.(ge),ge.target?.dataset?.element!=="labelInput"&&c.handleItemKeyDown(ge,C)},Wn=bl({itemId:C,treeId:l,id:w}),vi=c.canItemBeTabbed(C)?0:-1,ft={rootRefObject:X,contentRefObject:U,interactions:{handleSaveItemLabel:ce,handleCancelItemLabelEditing:V}},Ho=Z.root?.(Y({},ft,{externalEventHandlers:Mt(L)}))??{},Vo=Z.content?.(Y({},ft,{externalEventHandlers:Mt(b)}))??{},Un=Z.dragAndDropOverlay?.(Y({},ft,{externalEventHandlers:{}}))??{},Go=Z.labelInput?.(Y({},ft,{externalEventHandlers:{}}))??{};return u.jsx(vl,{itemId:C,children:u.jsxs(ow,Y({className:Fe(Ae.root,f),role:"treeitem","aria-expanded":it?m:void 0,"aria-selected":wr,"aria-disabled":$||void 0,id:Wn,tabIndex:vi},L,{ownerState:ht,onFocus:Yt,onBlur:Vt,onKeyDown:Uo,ref:O,style:a?Y({},L.style,{"--TreeView-itemDepth":typeof d=="function"?d(C):d}):L.style},Ho,{children:[u.jsx(aw,Y({as:v,classes:{root:Ae.content,expanded:Ae.expanded,selected:Ae.selected,focused:Ae.focused,disabled:Ae.disabled,editable:Ae.editable,editing:Ae.editing,iconContainer:Ae.iconContainer,label:Ae.label,labelInput:Ae.labelInput,checkbox:Ae.checkbox},label:k,itemId:C,onClick:j,onMouseDown:P,icon:Wo,expansionIcon:Qt,displayIcon:Sr,ownerState:ht},b,Vo,Un.action==null?{}:{dragAndDropOverlayProps:Un},Go.value==null?{}:{labelInputProps:Go},{ref:q})),h&&u.jsx(iw,Y({as:_e},jt,{children:h}))]}))})});function lw(e){const{slots:t,slotProps:r,status:n}=e,o=sn(),a=Y({},o.icons.slots,{expandIcon:o.icons.slots.expandIcon??Kp,collapseIcon:o.icons.slots.collapseIcon??Qp}),i=o.icons.slotProps;let s;t?.icon?s="icon":n.expandable?n.expanded?s="collapseIcon":s="expandIcon":s="endIcon";const l=t?.[s]??a[s],c=Gr({elementType:l,externalSlotProps:d=>Y({},ur(i[s],d),ur(r?.[s],d)),ownerState:{}});return l?u.jsx(l,Y({},c)):null}const cw=["visible"],uw=Te("li",{name:"MuiTreeItem2",slot:"Root",overridesResolver:(e,t)=>t.root})({listStyle:"none",margin:0,padding:0,outline:0}),dw=Te("div",{name:"MuiTreeItem2",slot:"Content",overridesResolver:(e,t)=>t.content,shouldForwardProp:e=>Tr(e)&&e!=="status"&&e!=="indentationAtItemLevel"})(({theme:e})=>({padding:e.spacing(.5,1),borderRadius:e.shape.borderRadius,width:"100%",boxSizing:"border-box",position:"relative",display:"flex",alignItems:"center",gap:e.spacing(1),cursor:"pointer",WebkitTapHighlightColor:"transparent","&:hover":{backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:`calc(${e.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`}},{props:({status:t})=>t.disabled,style:{opacity:(e.vars||e).palette.action.disabledOpacity,backgroundColor:"transparent"}},{props:({status:t})=>t.focused,style:{backgroundColor:(e.vars||e).palette.action.focus}},{props:({status:t})=>t.selected,style:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:fe.alpha(e.palette.primary.main,e.palette.action.selectedOpacity),"&:hover":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:fe.alpha(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:fe.alpha(e.palette.primary.main,e.palette.action.selectedOpacity)}}}},{props:({status:t})=>t.selected&&t.focused,style:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:fe.alpha(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}}]})),pw=Te("div",{name:"MuiTreeItem2",slot:"Label",overridesResolver:(e,t)=>t.label,shouldForwardProp:e=>Tr(e)&&e!=="editable"})(({theme:e})=>Y({width:"100%",boxSizing:"border-box",minWidth:0,position:"relative",overflow:"hidden"},e.typography.body1,{variants:[{props:({editable:t})=>t,style:{paddingLeft:"2px"}}]})),hw=Te("div",{name:"MuiTreeItem2",slot:"IconContainer",overridesResolver:(e,t)=>t.iconContainer})({width:16,display:"flex",flexShrink:0,justifyContent:"center","& svg":{fontSize:18}});Te(Po,{name:"MuiTreeItem2",slot:"GroupTransition",overridesResolver:(e,t)=>t.groupTransition,shouldForwardProp:e=>Tr(e)&&e!=="indentationAtItemLevel"})({margin:0,padding:0,paddingLeft:"var(--TreeView-itemChildrenIndentation)",variants:[{props:{indentationAtItemLevel:!0},style:{paddingLeft:0}}]});Te(S.forwardRef((e,t)=>{const{visible:r}=e,n=mr(e,cw);return r?u.jsx(Lp,Y({},n,{ref:t})):null}),{name:"MuiTreeItem2",slot:"Checkbox",overridesResolver:(e,t)=>t.checkbox})({padding:0});function mw(e){return xl("MuiRichTreeView",e)}Gp("MuiRichTreeView",["root"]);const fw=(e,t)=>{const r=S.useRef({}),[n,o]=S.useState(()=>{const a={};return e.forEach(i=>{i.models&&Object.entries(i.models).forEach(([s,l])=>{r.current[s]={isControlled:t[s]!==void 0,getDefaultValue:l.getDefaultValue},a[s]=l.getDefaultValue(t)})}),a});return Object.fromEntries(Object.entries(r.current).map(([a,i])=>{const s=t[a]??n[a];return[a,{value:s,setControlledValue:l=>{i.isControlled||o(c=>Y({},c,{[a]:l}))}}]}))};class gw{constructor(){this.maxListeners=20,this.warnOnce=!1,this.events={}}on(t,r,n={}){let o=this.events[t];o||(o={highPriority:new Map,regular:new Map},this.events[t]=o),n.isFirst?o.highPriority.set(r,!0):o.regular.set(r,!0)}removeListener(t,r){this.events[t]&&(this.events[t].regular.delete(r),this.events[t].highPriority.delete(r))}removeAllListeners(){this.events={}}emit(t,...r){const n=this.events[t];if(!n)return;const o=Array.from(n.highPriority.keys()),a=Array.from(n.regular.keys());for(let i=o.length-1;i>=0;i-=1){const s=o[i];n.highPriority.has(s)&&s.apply(this,r)}for(let i=0;i<a.length;i+=1){const s=a[i];n.regular.has(s)&&s.apply(this,r)}}once(t,r){const n=this;this.on(t,function o(...a){n.removeListener(t,o),r.apply(n,a)})}}const yw=e=>e.isPropagationStopped!==void 0,Yp=()=>{const[e]=S.useState(()=>new gw),t=S.useCallback((...n)=>{const[o,a,i={}]=n;i.defaultMuiPrevented=!1,!(yw(i)&&i.isPropagationStopped())&&e.emit(o,a,i)},[e]),r=S.useCallback((n,o)=>(e.on(n,o),()=>{e.removeListener(n,o)}),[e]);return{instance:{$$publishEvent:t,$$subscribeEvent:r}}};Yp.params={};const Xp=({plugins:e})=>{const t=new Set(e);return{instance:{getAvailablePlugins:()=>t}}};Xp.params={};const Sl=({params:e,state:t,setState:r})=>{S.useEffect(()=>{r(o=>o.id.treeId===e.id&&o.id.treeId!==void 0?o:Y({},o,{id:Y({},o.id,{treeId:e.id??FS()})}))},[r,e.id]);const n=e.id??t.id.treeId;return{getRootProps:()=>({id:n}),contextValue:{treeId:n}}};Sl.params={id:!0};Sl.getInitialState=({id:e})=>({id:{treeId:e??void 0}});const bw=[Yp,Xp,Sl],xw=["slots","slotProps","apiRef","experimentalFeatures"],vw=e=>{let{props:{slots:t,slotProps:r,apiRef:n,experimentalFeatures:o},plugins:a}=e,i=mr(e.props,xw);const s={};a.forEach(h=>{Object.assign(s,h.params)});const l={},c={};Object.keys(i).forEach(h=>{const f=i[h];s[h]?l[h]=f:c[h]=f});const d=o??{},p=a.reduce((h,f)=>f.getDefaultizedParams?f.getDefaultizedParams({params:h,experimentalFeatures:d}):h,l);return{apiRef:n,forwardedProps:c,pluginParams:p,slots:t??{},slotProps:r??{},experimentalFeatures:d}},Sw=({plugins:e,instance:t,publicAPI:r,rootRef:n})=>({runItemPlugins:o=>{let a=null,i=null;const s=[],l={};e.forEach(p=>{if(!p.itemPlugin)return;const h=p.itemPlugin({props:o,rootRef:a,contentRef:i});h?.rootRef&&(a=h.rootRef),h?.contentRef&&(i=h.contentRef),h?.propsEnhancers&&(s.push(h.propsEnhancers),Object.keys(h.propsEnhancers).forEach(f=>{l[f]=!0}))});const c=p=>h=>{const f={};return s.forEach(g=>{const y=g[p];y!=null&&Object.assign(f,y(h))}),f},d=Object.fromEntries(Object.keys(l).map(p=>[p,c(p)]));return{contentRef:i,rootRef:a,propsEnhancers:d}},wrapItem:({itemId:o,children:a})=>{let i=a;for(let s=e.length-1;s>=0;s-=1){const l=e[s];l.wrapItem&&(i=l.wrapItem({itemId:o,children:i,instance:t}))}return i},wrapRoot:({children:o})=>{let a=o;for(let i=e.length-1;i>=0;i-=1){const s=e[i];s.wrapRoot&&(a=s.wrapRoot({children:a,instance:t}))}return a},instance:t,rootRef:n,publicAPI:r});function ww(e){const t=S.useRef({});return e?(e.current==null&&(e.current={}),e.current):t.current}const Cw=({plugins:e,rootRef:t,props:r})=>{const n=[...bw,...e],{pluginParams:o,forwardedProps:a,apiRef:i,experimentalFeatures:s,slots:l,slotProps:c}=vw({plugins:n,props:r}),d=fw(n,o),p=S.useRef({}).current,h=ww(i),f=S.useRef(null),g=On(f,t),y=Sw({plugins:n,instance:p,publicAPI:h,rootRef:f}),[v,b]=S.useState(()=>{const k={};return n.forEach(j=>{j.getInitialState&&Object.assign(k,j.getInitialState(o))}),k}),C=[],w=k=>{const j=k({instance:p,params:o,slots:l,slotProps:c,experimentalFeatures:s,state:v,setState:b,rootRef:f,models:d,plugins:n});j.getRootProps&&C.push(j.getRootProps),j.publicAPI&&Object.assign(h,j.publicAPI),j.instance&&Object.assign(p,j.instance),j.contextValue&&Object.assign(y,j.contextValue)};return n.forEach(w),{getRootProps:(k={})=>{const j=Y({role:"tree"},a,k,{ref:g});return C.forEach(P=>{Object.assign(j,P(k))}),j},rootRef:g,contextValue:y,instance:p}},kw=(e,t,r)=>{e.$$publishEvent(t,r)},In="__TREE_VIEW_ROOT_PARENT_ID__",Pw=e=>{const t={};return e.forEach((r,n)=>{t[r]=n}),t},Iw=["children"],Jp=({items:e,isItemDisabled:t,getItemLabel:r,getItemId:n})=>{const o={},a={},i={[In]:[]},s=(c,d,p)=>{const h=n?n(c):c.id;if(h==null)throw new Error(["MUI X: The Tree View component requires all items to have a unique `id` property.","Alternatively, you can use the `getItemId` prop to specify a custom id for each item.","An item was provided without id in the `items` prop:",JSON.stringify(c)].join(`
|
|
149
149
|
`));if(o[h]!=null)throw new Error(["MUI X: The Tree View component requires all items to have a unique `id` property.","Alternatively, you can use the `getItemId` prop to specify a custom id for each item.",`Two items were provided with the same id in the \`items\` prop: "${h}"`].join(`
|
|
150
150
|
`));const f=r?r(c):c.label;if(f==null)throw new Error(["MUI X: The Tree View component requires all items to have a `label` property.","Alternatively, you can use the `getItemLabel` prop to specify a custom label for each item.","An item was provided without label in the `items` prop:",JSON.stringify(c)].join(`
|
|
151
|
-
`));o[h]={id:h,label:f,parentId:p,idAttribute:void 0,expandable:!!c.children?.length,disabled:t?t(c):!1,depth:d},a[h]=c;const g=p??In;i[g]||(i[g]=[]),i[g].push(h),c.children?.forEach(y=>s(y,d+1,h))};e.forEach(c=>s(c,0,null));const l={};return Object.keys(i).forEach(c=>{l[c]=Pw(i[c])}),{itemMetaMap:o,itemMap:a,itemOrderedChildrenIds:i,itemChildrenIndexes:l}},Bo=({instance:e,params:t,state:r,setState:n,experimentalFeatures:o})=>{const a=S.useCallback(v=>r.items.itemMetaMap[v],[r.items.itemMetaMap]),i=S.useCallback(v=>r.items.itemMap[v],[r.items.itemMap]),s=S.useCallback(()=>{const v=b=>{const C=r.items.itemMap[b],w=mr(C,Iw),k=r.items.itemOrderedChildrenIds[b];return k&&(w.children=k.map(v)),w};return r.items.itemOrderedChildrenIds[In].map(v)},[r.items.itemMap,r.items.itemOrderedChildrenIds]),l=S.useCallback(v=>{if(v==null)return!1;let b=e.getItemMeta(v);if(!b)return!1;if(b.disabled)return!0;for(;b.parentId!=null;)if(b=e.getItemMeta(b.parentId),b.disabled)return!0;return!1},[e]),c=S.useCallback(v=>{const b=e.getItemMeta(v).parentId??In;return r.items.itemChildrenIndexes[b][v]},[e,r.items.itemChildrenIndexes]),d=S.useCallback(v=>r.items.itemOrderedChildrenIds[v??In]??[],[r.items.itemOrderedChildrenIds]),p=v=>{const b=e.getItemMeta(v);return b==null?null:document.getElementById(bl({treeId:r.id.treeId,itemId:v,id:b.idAttribute}))},h=v=>t.disabledItemsFocusable?!0:!e.isItemDisabled(v),f=S.useRef(!1),g=S.useCallback(()=>{f.current=!0},[]),y=S.useCallback(()=>f.current,[]);return S.useEffect(()=>{e.areItemUpdatesPrevented()||n(v=>{const b=Jp({items:t.items,isItemDisabled:t.isItemDisabled,getItemId:t.getItemId,getItemLabel:t.getItemLabel});return Object.values(v.items.itemMetaMap).forEach(C=>{b.itemMetaMap[C.id]||kw(e,"removeItem",{id:C.id})}),Y({},v,{items:b})})},[e,n,t.items,t.isItemDisabled,t.getItemId,t.getItemLabel]),{getRootProps:()=>({style:{"--TreeView-itemChildrenIndentation":typeof t.itemChildrenIndentation=="number"?`${t.itemChildrenIndentation}px`:t.itemChildrenIndentation}}),publicAPI:{getItem:i,getItemDOMElement:p,getItemTree:s,getItemOrderedChildrenIds:d},instance:{getItemMeta:a,getItem:i,getItemTree:s,getItemsToRender:()=>{const v=b=>{const C=r.items.itemMetaMap[b];return{label:C.label,itemId:C.id,id:C.idAttribute,children:r.items.itemOrderedChildrenIds[b]?.map(v)}};return r.items.itemOrderedChildrenIds[In].map(v)},getItemIndex:c,getItemDOMElement:p,getItemOrderedChildrenIds:d,isItemDisabled:l,isItemNavigable:h,preventItemUpdates:g,areItemUpdatesPrevented:y},contextValue:{items:{onItemClick:t.onItemClick,disabledItemsFocusable:t.disabledItemsFocusable,indentationAtItemLevel:o.indentationAtItemLevel??!1}}}};Bo.getInitialState=e=>({items:Jp({items:e.items,isItemDisabled:e.isItemDisabled,getItemId:e.getItemId,getItemLabel:e.getItemLabel})});Bo.getDefaultizedParams=({params:e})=>Y({},e,{disabledItemsFocusable:e.disabledItemsFocusable??!1,itemChildrenIndentation:e.itemChildrenIndentation??"12px"});Bo.wrapRoot=({children:e,instance:t})=>u.jsx(yl.Provider,{value:r=>t.getItemMeta(r)?.depth??0,children:e});Bo.params={disabledItemsFocusable:!0,items:!0,isItemDisabled:!0,getItemLabel:!0,getItemId:!0,onItemClick:!0,itemChildrenIndentation:!0};const jw=typeof window<"u"?S.useLayoutEffect:S.useEffect;function Mn(e){const t=S.useRef(e);return jw(()=>{t.current=e}),S.useRef((...r)=>(0,t.current)(...r)).current}const ui=({instance:e,params:t,models:r})=>{const n=S.useMemo(()=>{const p=new Map;return r.expandedItems.value.forEach(h=>{p.set(h,!0)}),p},[r.expandedItems.value]),o=(p,h)=>{t.onExpandedItemsChange?.(p,h),r.expandedItems.setControlledValue(h)},a=S.useCallback(p=>n.has(p),[n]),i=S.useCallback(p=>!!e.getItemMeta(p)?.expandable,[e]),s=Mn((p,h)=>{const f=e.isItemExpanded(h);e.setItemExpansion(p,h,!f)}),l=Mn((p,h,f)=>{if(e.isItemExpanded(h)===f)return;let g;f?g=[h].concat(r.expandedItems.value):g=r.expandedItems.value.filter(y=>y!==h),t.onItemExpansionToggle&&t.onItemExpansionToggle(p,h,f),o(p,g)}),c=(p,h)=>{const f=e.getItemMeta(h),g=e.getItemOrderedChildrenIds(f.parentId).filter(v=>e.isItemExpandable(v)&&!e.isItemExpanded(v)),y=r.expandedItems.value.concat(g);g.length>0&&(t.onItemExpansionToggle&&g.forEach(v=>{t.onItemExpansionToggle(p,v,!0)}),o(p,y))},d=S.useMemo(()=>t.expansionTrigger?t.expansionTrigger:e.isTreeViewEditable?"iconContainer":"content",[t.expansionTrigger,e.isTreeViewEditable]);return{publicAPI:{setItemExpansion:l},instance:{isItemExpanded:a,isItemExpandable:i,setItemExpansion:l,toggleItemExpansion:s,expandAllSiblings:c},contextValue:{expansion:{expansionTrigger:d}}}};ui.models={expandedItems:{getDefaultValue:e=>e.defaultExpandedItems}};const Ew=[];ui.getDefaultizedParams=({params:e})=>Y({},e,{defaultExpandedItems:e.defaultExpandedItems??Ew});ui.params={expandedItems:!0,defaultExpandedItems:!0,onExpandedItemsChange:!0,onItemExpansionToggle:!0,expansionTrigger:!0};const xa=e=>Array.isArray(e)?e:e!=null?[e]:[],Ui=e=>{const t={};return e.forEach(r=>{t[r]=!0}),t},di=({instance:e,params:t,models:r})=>{const n=S.useRef(null),o=S.useRef({}),a=S.useMemo(()=>{const d=new Map;return Array.isArray(r.selectedItems.value)?r.selectedItems.value.forEach(p=>{d.set(p,!0)}):r.selectedItems.value!=null&&d.set(r.selectedItems.value,!0),d},[r.selectedItems.value]),i=(d,p)=>{if(t.onItemSelectionToggle)if(t.multiSelect){const h=p.filter(g=>!e.isItemSelected(g)),f=r.selectedItems.value.filter(g=>!p.includes(g));h.forEach(g=>{t.onItemSelectionToggle(d,g,!0)}),f.forEach(g=>{t.onItemSelectionToggle(d,g,!1)})}else p!==r.selectedItems.value&&(r.selectedItems.value!=null&&t.onItemSelectionToggle(d,r.selectedItems.value,!1),p!=null&&t.onItemSelectionToggle(d,p,!0));t.onSelectedItemsChange&&t.onSelectedItemsChange(d,p),r.selectedItems.setControlledValue(p)},s=d=>a.has(d),l=({event:d,itemId:p,keepExistingSelection:h=!1,shouldBeSelected:f})=>{if(t.disableSelection)return;let g;if(h){const y=xa(r.selectedItems.value),v=e.isItemSelected(p);v&&(f===!1||f==null)?g=y.filter(b=>b!==p):!v&&(f===!0||f==null)?g=[p].concat(y):g=y}else f===!1||f==null&&e.isItemSelected(p)?g=t.multiSelect?[]:null:g=t.multiSelect?[p]:p;i(d,g),n.current=p,o.current={}},c=(d,[p,h])=>{if(t.disableSelection||!t.multiSelect)return;let f=xa(r.selectedItems.value).slice();Object.keys(o.current).length>0&&(f=f.filter(b=>!o.current[b]));const g=Ui(f),y=BS(e,p,h),v=y.filter(b=>!g[b]);f=f.concat(v),i(d,f),o.current=Ui(y)};return{getRootProps:()=>({"aria-multiselectable":t.multiSelect}),publicAPI:{selectItem:l},instance:{isItemSelected:s,selectItem:l,selectAllNavigableItems:d=>{if(t.disableSelection||!t.multiSelect)return;const p=qS(e);i(d,p),o.current=Ui(p)},expandSelectionRange:(d,p)=>{if(n.current!=null){const[h,f]=Up(e,p,n.current);c(d,[h,f])}},selectRangeFromStartToItem:(d,p)=>{c(d,[Io(e),p])},selectRangeFromItemToEnd:(d,p)=>{c(d,[p,Wp(e)])},selectItemFromArrowNavigation:(d,p,h)=>{if(t.disableSelection||!t.multiSelect)return;let f=xa(r.selectedItems.value).slice();Object.keys(o.current).length===0?(f.push(h),o.current={[p]:!0,[h]:!0}):(o.current[p]||(o.current={}),o.current[h]?(f=f.filter(g=>g!==p),delete o.current[p]):(f.push(h),o.current[h]=!0)),i(d,f)}},contextValue:{selection:{multiSelect:t.multiSelect,checkboxSelection:t.checkboxSelection,disableSelection:t.disableSelection}}}};di.models={selectedItems:{getDefaultValue:e=>e.defaultSelectedItems}};const Tw=[];di.getDefaultizedParams=({params:e})=>Y({},e,{disableSelection:e.disableSelection??!1,multiSelect:e.multiSelect??!1,checkboxSelection:e.checkboxSelection??!1,defaultSelectedItems:e.defaultSelectedItems??(e.multiSelect?Tw:null)});di.params={disableSelection:!0,multiSelect:!0,checkboxSelection:!0,defaultSelectedItems:!0,selectedItems:!0,onSelectedItemsChange:!0,onItemSelectionToggle:!0};function Rw(e){return e&&e.ownerDocument||document}const mu=1e3;class Mw{constructor(t=mu){this.timeouts=new Map,this.cleanupTimeout=mu,this.cleanupTimeout=t}register(t,r,n){this.timeouts||(this.timeouts=new Map);const o=setTimeout(()=>{typeof r=="function"&&r(),this.timeouts.delete(n.cleanupToken)},this.cleanupTimeout);this.timeouts.set(n.cleanupToken,o)}unregister(t){const r=this.timeouts.get(t.cleanupToken);r&&(this.timeouts.delete(t.cleanupToken),clearTimeout(r))}reset(){this.timeouts&&(this.timeouts.forEach((t,r)=>{this.unregister({cleanupToken:r})}),this.timeouts=void 0)}}class Nw{constructor(){this.registry=new FinalizationRegistry(t=>{typeof t=="function"&&t()})}register(t,r,n){this.registry.register(t,r,n)}unregister(t){this.registry.unregister(t)}reset(){}}class Aw{}function _w(e){let t=0;return function(r,n,o){e.registry===null&&(e.registry=typeof FinalizationRegistry<"u"?new Nw:new Mw);const[a]=S.useState(new Aw),i=S.useRef(null),s=S.useRef(void 0);s.current=o;const l=S.useRef(null);if(!i.current&&s.current){const c=(d,p)=>{p.defaultMuiPrevented||s.current?.(d,p)};i.current=r.$$subscribeEvent(n,c),t+=1,l.current={cleanupToken:t},e.registry.register(a,()=>{i.current?.(),i.current=null,l.current=null},l.current)}else!s.current&&i.current&&(i.current(),i.current=null,l.current&&(e.registry.unregister(l.current),l.current=null));S.useEffect(()=>{if(!i.current&&s.current){const c=(d,p)=>{p.defaultMuiPrevented||s.current?.(d,p)};i.current=r.$$subscribeEvent(n,c)}return l.current&&e.registry&&(e.registry.unregister(l.current),l.current=null),()=>{i.current?.(),i.current=null}},[r,n])}}const Ow={registry:null},Lw=_w(Ow),Zp=(e=document)=>{const t=e.activeElement;return t?t.shadowRoot?Zp(t.shadowRoot):t:null},$w=(e,t)=>{let r=xa(t).find(n=>{if(!e.isItemNavigable(n))return!1;const o=e.getItemMeta(n);return o&&(o.parentId==null||e.isItemExpanded(o.parentId))});return r==null&&(r=Io(e)),r},wl=({instance:e,params:t,state:r,setState:n,models:o,rootRef:a})=>{const i=$w(e,o.selectedItems.value),s=Mn(v=>{const b=typeof v=="function"?v(r.focusedItemId):v;r.focusedItemId!==b&&n(C=>Y({},C,{focusedItemId:b}))}),l=S.useCallback(()=>!!a.current&&a.current.contains(Zp(Rw(a.current))),[a]),c=S.useCallback(v=>r.focusedItemId===v&&l(),[r.focusedItemId,l]),d=v=>{const b=e.getItemMeta(v);return b&&(b.parentId==null||e.isItemExpanded(b.parentId))},p=(v,b)=>{const C=e.getItemDOMElement(b);C&&C.focus(),s(b),t.onItemFocus&&t.onItemFocus(v,b)},h=Mn((v,b)=>{d(b)&&p(v,b)}),f=Mn(()=>{if(r.focusedItemId!=null){if(e.getItemMeta(r.focusedItemId)){const v=e.getItemDOMElement(r.focusedItemId);v&&v.blur()}s(null)}}),g=v=>v===i;Lw(e,"removeItem",({id:v})=>{r.focusedItemId===v&&p(null,i)});const y=v=>b=>{v.onFocus?.(b),!b.defaultMuiPrevented&&b.target===b.currentTarget&&p(b,i)};return{getRootProps:v=>({onFocus:y(v)}),publicAPI:{focusItem:h},instance:{isItemFocused:c,canItemBeTabbed:g,focusItem:h,removeFocusedItem:f}}};wl.getInitialState=()=>({focusedItemId:null});wl.params={onItemFocus:!0};function Dw(e){return!!e&&e.length===1&&!!e.match(/\S/)}const eh=({instance:e,params:t,state:r})=>{const n=My(),o=S.useRef({}),a=Mn(c=>{o.current=c(o.current)});S.useEffect(()=>{if(e.areItemUpdatesPrevented())return;const c={},d=p=>{c[p.id]=p.label.substring(0,1).toLowerCase()};Object.values(r.items.itemMetaMap).forEach(d),o.current=c},[r.items.itemMetaMap,t.getItemId,e]);const i=(c,d)=>{const p=d.toLowerCase(),h=v=>{const b=ba(e,v);return b===null?Io(e):b};let f=null,g=h(c);const y={};for(;f==null&&!y[g];)o.current[g]===p?f=g:(y[g]=!0,g=h(g));return f},s=c=>!t.disableSelection&&!e.isItemDisabled(c),l=c=>!e.isItemDisabled(c)&&e.isItemExpandable(c);return{instance:{updateFirstCharMap:a,handleItemKeyDown:(c,d)=>{if(c.defaultMuiPrevented||c.altKey||jo(c.target,c.currentTarget))return;const p=c.ctrlKey||c.metaKey,h=c.key;switch(!0){case(h===" "&&s(d)):{c.preventDefault(),t.multiSelect&&c.shiftKey?e.expandSelectionRange(c,d):e.selectItem({event:c,itemId:d,keepExistingSelection:t.multiSelect,shouldBeSelected:t.multiSelect?void 0:!0});break}case h==="Enter":{Qr(e,Dt)&&e.isItemEditable(d)&&!e.isItemBeingEdited(d)?e.setEditedItemId(d):l(d)?(e.toggleItemExpansion(c,d),c.preventDefault()):s(d)&&(t.multiSelect?(c.preventDefault(),e.selectItem({event:c,itemId:d,keepExistingSelection:!0})):e.isItemSelected(d)||(e.selectItem({event:c,itemId:d}),c.preventDefault()));break}case h==="ArrowDown":{const f=ba(e,d);f&&(c.preventDefault(),e.focusItem(c,f),t.multiSelect&&c.shiftKey&&s(f)&&e.selectItemFromArrowNavigation(c,d,f));break}case h==="ArrowUp":{const f=zp(e,d);f&&(c.preventDefault(),e.focusItem(c,f),t.multiSelect&&c.shiftKey&&s(f)&&e.selectItemFromArrowNavigation(c,d,f));break}case(h==="ArrowRight"&&!n||h==="ArrowLeft"&&n):{if(p)return;if(e.isItemExpanded(d)){const f=ba(e,d);f&&(e.focusItem(c,f),c.preventDefault())}else l(d)&&(e.toggleItemExpansion(c,d),c.preventDefault());break}case(h==="ArrowLeft"&&!n||h==="ArrowRight"&&n):{if(p)return;if(l(d)&&e.isItemExpanded(d))e.toggleItemExpansion(c,d),c.preventDefault();else{const f=e.getItemMeta(d).parentId;f&&(e.focusItem(c,f),c.preventDefault())}break}case h==="Home":{s(d)&&t.multiSelect&&p&&c.shiftKey?e.selectRangeFromStartToItem(c,d):e.focusItem(c,Io(e)),c.preventDefault();break}case h==="End":{s(d)&&t.multiSelect&&p&&c.shiftKey?e.selectRangeFromItemToEnd(c,d):e.focusItem(c,Wp(e)),c.preventDefault();break}case h==="*":{e.expandAllSiblings(c,d),c.preventDefault();break}case(String.fromCharCode(c.keyCode)==="A"&&p&&t.multiSelect&&!t.disableSelection):{e.selectAllNavigableItems(c),c.preventDefault();break}case(!p&&!c.shiftKey&&Dw(h)):{const f=i(d,h);f!=null&&(e.focusItem(c,f),c.preventDefault());break}}}}}};eh.params={};const th=({slots:e,slotProps:t})=>({contextValue:{icons:{slots:{collapseIcon:e.collapseIcon,expandIcon:e.expandIcon,endIcon:e.endIcon},slotProps:{collapseIcon:t.collapseIcon,expandIcon:t.expandIcon,endIcon:t.endIcon}}}});th.params={};const Bw=[Bo,ui,di,wl,eh,th,Dt],qw=["ownerState"];function Fw({slots:e,slotProps:t,label:r,id:n,itemId:o,itemsToRender:a}){const i=e?.item??sw,s=Gr({elementType:i,externalSlotProps:t?.item,additionalProps:{itemId:o,id:n,label:r},ownerState:{itemId:o,label:r}}),l=mr(s,qw),c=S.useMemo(()=>a?u.jsx(rh,{itemsToRender:a,slots:e,slotProps:t}):null,[a,e,t]);return u.jsx(i,Y({},l,{children:c}))}function rh(e){const{itemsToRender:t,slots:r,slotProps:n}=e;return u.jsx(S.Fragment,{children:t.map(o=>u.jsx(Fw,{slots:r,slotProps:n,label:o.label,id:o.id,itemId:o.itemId,itemsToRender:o.children},o.itemId))})}const zw=Dp(),Ww=e=>{const{classes:t}=e;return $p({root:["root"]},mw,t)},Uw=Te("ul",{name:"MuiRichTreeView",slot:"Root",overridesResolver:(e,t)=>t.root})({padding:0,margin:0,listStyle:"none",outline:0,position:"relative"}),Hw=S.forwardRef(function(e,t){const r=zw({props:e,name:"MuiRichTreeView"}),{getRootProps:n,contextValue:o,instance:a}=Cw({plugins:Bw,rootRef:t,props:r}),{slots:i,slotProps:s}=r,l=Ww(r),c=i?.root??Uw,d=Gr({elementType:c,externalSlotProps:s?.root,className:l.root,getSlotProps:n,ownerState:r});return u.jsx(LS,{value:o,children:u.jsx(c,Y({},d,{children:u.jsx(rh,{slots:i,slotProps:s,itemsToRender:a.getItemsToRender()})}))})}),Vw=Ee(u.jsx("path",{d:"m9.17 6 2 2H20v10H4V6zM10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"})),Gw=Ee([u.jsx("path",{d:"M19 5v14H5V5zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2"},"0"),u.jsx("path",{d:"M14 17H7v-2h7zm3-4H7v-2h10zm0-4H7V7h10z"},"1")]),Kw=Ee(u.jsx("path",{d:"M19 15v4H5v-4zm1-2H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1M7 18.5c-.82 0-1.5-.67-1.5-1.5s.68-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5M19 5v4H5V5zm1-2H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1M7 8.5c-.82 0-1.5-.67-1.5-1.5S6.18 5.5 7 5.5s1.5.68 1.5 1.5S7.83 8.5 7 8.5"})),Qw=Ee(u.jsx("path",{d:"M15 4v2h3v12h-3v2h5V4zM4 20h5v-2H6V6h3V4H4z"}));function nh({items:e,defaultExpandedItems:t,navigate:r}){return u.jsx(Hw,{items:eC(e,r),defaultExpandedItems:t,slots:{item:Zw}})}const Yw=Uu.animated(Po);function Xw(e){const t=Uu.useSpring({to:{opacity:e.in?1:0,transform:`translate3d(0,${e.in?0:20}px,0)`}});return u.jsx(Yw,{style:t,...e})}function Jw({item:e,...t}){const r=u.jsxs(pw,{...t,sx:{display:"flex",alignItems:"center",color:e.error?"error.main":"grey.600"},children:[e.fileType==="directory"&&u.jsx(Vw,{})||e.fileType==="notebook"&&u.jsx(Gw,{})||e.fileType==="model"&&u.jsx(Qw,{})||e.fileType=="database"&&u.jsx(Kw,{})||u.jsx(Mp,{}),u.jsx(x.Typography,{variant:"body2",sx:{marginLeft:"5px"},color:e.error?"error.main":e.link?"primary.main":"grey.600",children:e.label})]});return e.error?u.jsx(x.Tooltip,{title:e.error,placement:"right",children:r}):r}const Zw=S.forwardRef(function(e,t){const{id:r,itemId:n,label:o,children:a,disabled:i,...s}=e,{getRootProps:l,getContentProps:c,getLabelProps:d,getIconContainerProps:p,getGroupTransitionProps:h,status:f,publicAPI:g}=WS({id:r,itemId:n,children:a,label:o,disabled:i,rootRef:t}),y=g.getItem(n);return f.selected=!1,f.focused=!1,u.jsx(vl,{itemId:n,children:u.jsxs(uw,{...l(s),children:[u.jsxs(dw,{...c(),...y.link&&{onClick:v=>y.link(v)},sx:{pointerEvents:!y.selectable&&"none"},children:[u.jsx(hw,{...p(),children:u.jsx(lw,{status:f})}),u.jsx(Jw,{...d({item:y})})]}),a&&u.jsx(Xw,{...h()})]})})});function eC(e,t){const r=new Map;return e.map(n=>{let o=r;const a=n.path.split("/");a.forEach((i,s)=>{s===a.length-1?o.set(i,n):(o.has(i)||o.set(i,new Map),o=o.get(i))})}),oh(r,"",t)}function oh(e,t,r){const n=[];return e.forEach((o,a)=>{const i=a.endsWith(".malloy")&&"model"||a.endsWith(".malloynb")&&"notebook"||a.endsWith(".parquet")&&"database"||"unknown";if(i!=="unknown"){const s=o;n.push({id:t+a,label:a,fileType:i,link:i==="model"||i==="notebook"?l=>r(t+a,l):void 0,selectable:i==="model"||i==="notebook",error:"error"in s?s.error:void 0})}else t+=`${a}/`,n.push({id:t,label:a,fileType:"directory",selectable:!0,link:void 0,children:oh(o,t,r)})}),n}const tC=new ai(new ct),rC=["notebooks/","models/"];function nC({navigate:e}){const{projectName:t,packageName:r,versionId:n}=Ft(),{data:o,isError:a,error:i,isSuccess:s}=It({queryKey:["models",t,r,n],queryFn:l=>tC.listModels(t,r,n,l)});return u.jsx(tt,{variant:"outlined",sx:{width:"100%"},children:u.jsxs(kt,{children:[u.jsx(x.Typography,{variant:"overline",fontWeight:"bold",children:"Semantic Models"}),u.jsx(x.Divider,{}),u.jsxs(x.Box,{sx:{maxHeight:"200px",overflowY:"auto"},children:[!s&&!a&&u.jsx(zt,{text:"Fetching Models..."}),a&&u.jsx(Pt,{error:i,context:`${t} > ${r} > Models`}),s&&o.data.length>0&&u.jsx(nh,{items:o.data.sort((l,c)=>l.path.localeCompare(c.path)),navigate:e,defaultExpandedItems:rC}),s&&o.data.length===0&&u.jsx(x.Typography,{variant:"body2",children:"No models found"})]})]})})}const oC=new Md(new ct),aC=["notebooks/"];function iC({navigate:e}){const{projectName:t,packageName:r,versionId:n}=Ft(),{data:o,isError:a,error:i,isSuccess:s}=It({queryKey:["notebooks",t,r,n],queryFn:l=>oC.listNotebooks(t,r,n,l)});return u.jsx(tt,{variant:"outlined",sx:{width:"100%"},children:u.jsxs(kt,{children:[u.jsx(x.Typography,{variant:"overline",fontWeight:"bold",children:"Notebooks"}),u.jsx(x.Divider,{}),u.jsxs(x.Box,{sx:{maxHeight:"200px",overflowY:"auto"},children:[!s&&!a&&u.jsx(zt,{text:"Fetching Notebooks..."}),a&&u.jsx(Pt,{error:i,context:`${t} > ${r} > Notebooks`}),s&&o.data.length>0&&u.jsx(nh,{items:o.data.sort((l,c)=>l.path.localeCompare(c.path)),defaultExpandedItems:aC,navigate:e}),s&&o.data.length===0&&u.jsx(x.Typography,{variant:"body2",children:"No notebooks found"})]})]})})}const sC=new U0(new ct);function lC(){const{projectName:e,packageName:t,versionId:r}=Ft(),{data:n,isError:o,isLoading:a,error:i}=It({queryKey:["schedules",e,t,r],queryFn:s=>sC.listSchedules(e,t,r,s)});return a?u.jsx(zt,{text:"Fetching Schedules..."}):o?u.jsx(Pt,{error:i,context:`${e} > ${t} > Schedules`}):n.data.length?u.jsx(tt,{variant:"outlined",sx:{padding:"10px",width:"100%"},children:u.jsxs(kt,{children:[u.jsx(x.Typography,{variant:"overline",fontWeight:"bold",children:"Scheduler"}),u.jsx(x.Divider,{}),u.jsx(x.Box,{sx:{mt:"10px",maxHeight:"200px",overflowY:"auto"},children:u.jsx(x.TableContainer,{component:x.Paper,children:u.jsxs(x.Table,{sx:{minWidth:300},size:"small",children:[u.jsx(x.TableHead,{children:u.jsxs(x.TableRow,{children:[u.jsx(x.TableCell,{align:"left",children:"Resource"}),u.jsx(x.TableCell,{align:"left",children:"Schedule"}),u.jsx(x.TableCell,{align:"left",children:"Action"}),u.jsx(x.TableCell,{align:"left",children:"Connection"}),u.jsx(x.TableCell,{align:"left",children:"Last Run"}),u.jsx(x.TableCell,{align:"left",children:"Status"})]})}),u.jsx(x.TableBody,{children:n.data.map(s=>u.jsxs(x.TableRow,{sx:{"&:last-child td, &:last-child th":{border:0}},children:[u.jsx(x.TableCell,{align:"left",children:s.resource}),u.jsx(x.TableCell,{align:"left",children:s.schedule}),u.jsx(x.TableCell,{align:"left",children:s.action}),u.jsx(x.TableCell,{align:"left",children:s.connection}),u.jsx(x.TableCell,{align:"left",children:s.lastRunTime?new Date(s.lastRunTime).toLocaleString():"n/a"}),u.jsx(x.TableCell,{align:"left",children:s.lastRunStatus})]},s.resource))})]})})})]})}):null}const cC="README.malloynb";function uC({navigate:e}){return e||(e=t=>{window.location.href=t}),u.jsxs(x.Grid,{container:!0,spacing:2,columns:12,children:[u.jsx(x.Grid,{size:{xs:12,md:4},children:u.jsx(T1,{})}),u.jsx(x.Grid,{size:{xs:12,md:4},children:u.jsx(iC,{navigate:e})}),u.jsx(x.Grid,{size:{xs:12,md:4},children:u.jsx(nC,{navigate:e})}),u.jsx(x.Grid,{size:{xs:12,md:6},children:u.jsx(_1,{})}),u.jsx(x.Grid,{size:{xs:12,md:6},children:u.jsx(N1,{})}),u.jsx(x.Grid,{size:{xs:12,md:12},children:u.jsx(lC,{})}),u.jsx(x.Grid,{size:{xs:12,md:12},children:u.jsx(Tp,{notebookPath:cC,hideEmbeddingIcons:!0})})]})}const ah=_.createContext(void 0),dC=({server:e=`${window.location.protocol}//${window.location.host}/api/v0`,getAccessToken:t,children:r})=>{const n={server:e,getAccessToken:t};return u.jsx(ah.Provider,{value:n,children:r})},Cl=()=>{const e=_.useContext(ah);if(e===void 0)throw new Error("useServer must be used within a ServerProvider");return e},sa=Ee(u.jsx("path",{d:"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})),fu=Ee(u.jsx("path",{d:"m14.06 9.02.92.92L5.92 19H5v-.92zM17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29m-3.6 3.19L3 17.25V21h3.75L17.81 9.94z"}));function pC({cell:e,sourceAndPaths:t,onQueryChange:r,onSourceChange:n}){const o={query:e.value,malloyResult:e.result?JSON.parse(e.result):void 0,malloyQuery:e.queryInfo?JSON.parse(e.queryInfo):void 0,sourceName:e.sourceName,modelPath:e.modelPath};return u.jsx(Pp,{sourceAndPaths:t,existingQuery:o,existingSourceName:e.sourceName,onQueryChange:r,onSourceChange:n})}function hC({cell:e,expandCodeCell:t,expandEmbedding:r,hideEmbeddingIcons:n,editingMalloy:o,editingMarkdown:a,sourceAndPaths:i,onCellChange:s,onClose:l,onEdit:c,onDelete:d,addButtonCallback:p}){const[h,f]=_.useState(t),[g,y]=_.useState(r),[v,b]=_.useState(),[C]=_.useState(),[w,k]=_.useState(mo()),[j,P]=_.useState(!1),[B,F]=_.useState(e.sourceName?i.findIndex(O=>O.sourceInfo.name===e.sourceName):0);_.useEffect(()=>{e.isMarkdown||Jr(e.value,"malloy").then(O=>{b(O)})},[e]);const[L,m]=_.useState(e.value);_.useEffect(()=>{document.documentElement.setAttribute("data-color-mode","light")});const T=mC(O=>{s({...e,value:O})}),[D,$]=_.useState(!1),H=()=>{d(),$(!1)},J=i.length===0,V=()=>{const O=i[B],q=O?.modelPath||e.modelPath||"",oe=O?.sourceInfo.name||e.sourceName||"";s({...e,value:w.query,result:w.malloyResult?JSON.stringify(w.malloyResult):void 0,queryInfo:w.malloyQuery?JSON.stringify(w.malloyQuery):void 0,sourceName:oe,modelPath:q})},ce=u.jsx(x.Tooltip,{title:"Delete Cell",children:u.jsx(x.IconButton,{size:"small",onClick:()=>$(!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"})})})}),K=u.jsxs(x.Dialog,{open:D,onClose:()=>$(!1),children:[u.jsx(x.DialogTitle,{children:"Confirm Delete"}),u.jsx(x.DialogContent,{children:u.jsx(x.Typography,{children:"Are you sure you want to delete this cell?"})}),u.jsxs(x.DialogActions,{children:[u.jsx(x.Button,{onClick:()=>$(!1),children:"Cancel"}),u.jsx(x.Button,{onClick:H,color:"error",children:"Delete"})]})]}),se=e.isMarkdown?u.jsxs(u.Fragment,{children:[a?u.jsx(x.Tooltip,{title:"Save",children:u.jsx(x.IconButton,{size:"small",onClick:l,children:u.jsx(sa,{})})}):u.jsx(x.Tooltip,{title:"Edit",children:u.jsx(x.IconButton,{size:"small",onClick:c,children:u.jsx(fu,{})})}),!a&&ce]}):u.jsxs(u.Fragment,{children:[!o&&u.jsx(x.Tooltip,{title:h?"Hide Code":"View Code",children:u.jsx(x.IconButton,{size:"small",onClick:()=>{f(!h)},children:u.jsx(jp,{})})}),!n&&!o&&e.result&&u.jsx(x.Tooltip,{title:g?"Hide Embedding":"View Embedding",children:u.jsx(x.IconButton,{size:"small",onClick:()=>{y(!g)},children:u.jsx(Oo,{})})}),o&&u.jsx(x.Tooltip,{title:"Save",children:u.jsx(x.IconButton,{size:"small",onClick:()=>{V(),l()},children:u.jsx(sa,{})})}),!o&&u.jsx(x.Tooltip,{title:"Edit",children:u.jsx(x.IconButton,{size:"small",onClick:c,children:u.jsx(fu,{})})}),!o&&ce]}),Z=o||a,X=a?u.jsx(x.Tooltip,{title:"Save",children:u.jsx(x.IconButton,{size:"small",onClick:l,children:u.jsx(sa,{})})}):o?u.jsx(x.Tooltip,{title:"Save",children:u.jsx(x.IconButton,{size:"small",onClick:()=>{V(),l()},children:u.jsx(sa,{})})}):null,U=j&&u.jsx(x.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:[p(!0),p(!1),se]})||X});return u.jsxs(tt,{sx:{position:"relative",marginTop:"5px",marginBottom:"5px",borderWidth:"1.5px",backgroundColor:"#fff",minHeight:"50px"},onMouseEnter:()=>P(!0),onMouseLeave:()=>{P(!1)},children:[U,e.isMarkdown?u.jsx(u.Fragment,{children:a?u.jsx(Gh,{value:L,preview:"edit",autoFocus:!0,onChange:O=>{m(O),T(O)},onBlur:()=>{V(),j||l()}}):u.jsx(x.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:L?u.jsx(x.Box,{onClick:c,sx:{cursor:"pointer"},children:u.jsx(Ns,{children:L})}):u.jsxs(x.Box,{onClick:c,sx:{cursor:"pointer"},children:[u.jsx(x.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"Markdown is empty"}),u.jsx(x.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Click to edit."})]})})}):u.jsxs(u.Fragment,{children:[u.jsx(x.Collapse,{in:g,timeout:"auto",unmountOnExit:!0,children:u.jsx(x.Stack,{sx:{p:"10px",borderRadius:0,flexDirection:"row",justifyContent:"space-between"},children:u.jsx(x.Typography,{component:"div",sx:{fontSize:"12px","& .line":{textWrap:"wrap"}},dangerouslySetInnerHTML:{__html:C}})})}),u.jsx(x.Collapse,{in:h,timeout:"auto",unmountOnExit:!0,children:u.jsx(x.Stack,{sx:{p:"10px",borderRadius:0,flexDirection:"row",justifyContent:"space-between"},children:u.jsx(x.Typography,{component:"div",className:"content",sx:{fontSize:"12px","& .line":{textWrap:"wrap"}},dangerouslySetInnerHTML:{__html:v}})})}),o&&(J?u.jsxs(u.Fragment,{children:[u.jsx(x.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"No Model Imports"}),u.jsx(x.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Please add a model import above."})]}):u.jsx(pC,{sourceAndPaths:i,onQueryChange:O=>{k(O)},cell:e,onSourceChange:F})),!o&&e.result&&u.jsx(tt,{variant:"outlined",sx:{borderRadius:0},children:u.jsx(Ep,{result:e.result,minHeight:300,maxHeight:800})}),!o&&!e.result&&u.jsxs(x.Box,{onClick:c,sx:{cursor:"pointer"},children:[u.jsx(x.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"Explore is empty"}),u.jsx(x.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Click to edit."})]})]}),D&&K]})}function mC(e,t=2e3){const r=_.useRef(void 0);return _.useCallback(n=>{r.current&&clearTimeout(r.current),r.current=setTimeout(()=>{e(n)},t)},[e,t])}const ih=_.createContext(void 0);function sh({children:e,userContext:t,notebookStorage:r}){const n=_.useMemo(()=>({notebookStorage:r,userContext:t}),[r,t]);return u.jsx(ih.Provider,{value:n,children:e})}function lh(){const e=_.useContext(ih);if(!e)throw new Error("useNotebookStorage must be used within a NotebookStorageProvider");return e}const fC=Ee(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"})),gC=Ee(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"})),yC=new ai(new ct);function bC({initialSelectedModels:e,onModelChange:t}){const{projectName:r,packageName:n,versionId:o}=Ft(),{data:a,isLoading:i,isSuccess:s,isError:l,error:c}=It({queryKey:["models",r,n,o],queryFn:b=>yC.listModels(r,n,o,b)}),[d,p]=_.useState(e||[]),[h,f]=_.useState(null);_.useEffect(()=>{p(e||[])},[e]);const g=b=>{const C=d.filter(w=>w!==b);p(C),t(C)},y=b=>{const C=[...d,b];p(C),t(C),f(null)};let v=[];return s&&a?.data&&(v=a.data.filter(b=>!d.includes(b.path)).map(b=>b.path)),l?u.jsx(Pt,{error:c,context:`${r} > ${n} > Model Picker`}):u.jsxs(u.Fragment,{children:[u.jsxs(x.FormControl,{fullWidth:!0,children:[i&&u.jsx(x.Typography,{children:"Loading..."}),u.jsxs(x.Stack,{direction:"row",spacing:1,children:[d.map(b=>u.jsx(x.Chip,{label:b,onDelete:()=>g(b),deleteIcon:u.jsx(fC,{}),sx:{marginBottom:"5px"}},b)),u.jsx(x.Button,{size:"small",startIcon:u.jsx(gC,{}),onClick:b=>f(b.currentTarget),disabled:i||l||v.length===0,children:"Add Model"})]})]}),u.jsxs(x.Menu,{anchorEl:h,open:!!h,onClose:()=>f(null),children:[u.jsx(x.Typography,{variant:"subtitle2",sx:{ml:1},children:"Models"}),u.jsx(x.Divider,{}),v.length===0?u.jsx(x.MenuItem,{disabled:!0,children:"No models available"}):v.map(b=>u.jsx(x.MenuItem,{onClick:()=>y(b),children:u.jsx(x.Typography,{variant:"body2",children:b})},b))]})]})}const xC=new ai(new ct);function vC({notebookPath:e,expandCodeCells:t,expandEmbeddings:r,hideEmbeddingIcons:n}){const o=Fn(),{projectName:a,packageName:i,versionId:s}=Ft(),{server:l,getAccessToken:c}=Cl(),{notebookStorage:d,userContext:p}=lh();if(!a||!i)throw new Error("Project and package must be provided via PubliserPackageProvider");if(!d||!p)throw new Error("Notebook storage and user context must be provided via NotebookStorageProvider");const[h,f]=_.useState(),[g,y]=_.useState(),[v,b]=_.useState(),[C,w]=_.useState([]),[k,j]=_.useState(null),[P,B]=_.useState(null),F=!!k,L=()=>{j(null),B(null)},m=(Z,X)=>{h.insertCell(X,{isMarkdown:Z,value:""}),V(),Z?b(X):y(X),L()},[T,D]=_.useState(!1),$=()=>{D(!0)},H=Z=>{e&&d&&p&&d.deleteNotebook(p,e),D(!1),o(`/${a}/${i}`,Z)},J=()=>{D(!1)},V=_.useCallback(()=>{f(h.saveNotebook())},[h]);if(_.useEffect(()=>{h&&(async()=>{const Z=new Map(C.map(({modelPath:O,sourceInfos:q})=>[O,q])),X=[],U=[];for(const O of h.getModels())Z.has(O)?X.push({modelPath:O,sourceInfos:Z.get(O)}):(console.log("Fetching model from Publisher",O),U.push(xC.getModel(a,i,O,s,await hl(l,c)).then(q=>({modelPath:O,sourceInfos:q.data.sourceInfos.map(oe=>JSON.parse(oe))}))));if(U.length>0){const O=await Promise.all(U);w([...X,...O])}else w(X)})()},[c,h,i,a,l,s]),_.useEffect(()=>{e&&f(fo.loadNotebook(d,p,e))},[e,d,p]),!h)return u.jsx("div",{children:"Loading..."});const ce=Z=>{const X=[];for(const U of Z)for(const O of U.sourceInfos)X.push({modelPath:U.modelPath,sourceInfo:O});return X},K=(Z,X)=>u.jsx(x.Button,{size:"small",startIcon:u.jsx(j1,{}),onClick:()=>m(Z,X),variant:"contained",sx:{backgroundColor:"#fff",color:U=>U.palette.mode==="dark"?U.palette.grey[100]:U.palette.grey[700],boxShadow:"none","&:hover":{backgroundColor:U=>U.palette.mode==="dark"?U.palette.grey[500]:U.palette.grey[300],boxShadow:"none"}},children:Z?"Markdown":"Explore"}),se=u.jsxs(x.Box,{sx:{display:"flex",gap:1,justifyContent:"center",flex:2},children:[K(!1,h.getCells().length),K(!0,h.getCells().length)]});return u.jsxs(tt,{variant:"outlined",children:[u.jsxs(kt,{children:[u.jsxs(yn,{sx:{flexDirection:"row",justifyContent:"space-between",alignItems:"center"},children:[u.jsxs(yn,{direction:"row",spacing:1,alignItems:"center",children:[u.jsx(x.Typography,{variant:"overline",sx:{fontSize:"13px",fontWeight:"bold",verticalAlign:"middle"},children:"Workbook"}),u.jsx(x.Typography,{variant:"subtitle2",sx:{fontSize:"13px",fontWeight:"normal",verticalAlign:"middle",ml:1},children:`${a} > ${i} > ${e}`})]}),u.jsxs(yn,{sx:{display:"flex",flexDirection:"row",gap:1},children:[u.jsx(x.Box,{sx:{display:"flex",alignItems:"center",mt:1,mb:1},children:u.jsx(SC,{notebookData:h})}),u.jsxs(x.Box,{sx:{display:"flex",alignItems:"center",mt:1,mb:1},children:[u.jsx(x.Button,{color:"error",onClick:$,size:"small",children:"Delete"}),u.jsxs(x.Dialog,{open:T,onClose:J,children:[u.jsx(x.DialogTitle,{children:"Delete Notebook"}),u.jsx(x.DialogContent,{children:u.jsxs(x.DialogContentText,{children:['Are you sure you want to delete the notebook "',e,'"? This action cannot be undone.']})}),u.jsxs(x.DialogActions,{children:[u.jsx(x.Button,{onClick:J,color:"primary",size:"small",children:"Cancel"}),u.jsx(x.Button,{onClick:Z=>H(Z),color:"error",autoFocus:!0,size:"small",children:"Delete"})]})]})]})]})]}),u.jsx(x.Divider,{}),u.jsxs(yn,{sx:{display:"flex",flexDirection:"row",width:"100%",mt:2},children:[u.jsx(x.Box,{sx:{flex:1},children:u.jsx(bC,{initialSelectedModels:h.getModels(),onModelChange:Z=>{f(h.setModels(Z)),V()}})}),u.jsx(x.Box,{sx:{flex:1}})]})]}),u.jsx(ci,{children:u.jsxs(yn,{children:[h.getCells().length===0&&u.jsxs(u.Fragment,{children:[u.jsx(x.Typography,{sx:{textAlign:"center",p:2,variant:"subtitle2",fontWeight:"medium"},children:"Workbook is empty"}),u.jsx(x.Typography,{variant:"body2",sx:{textAlign:"center",mb:2,variant:"body2"},children:"Click the + buttons to add a markdown or code cell."})]}),h.getCells().map((Z,X)=>u.jsx(_.Fragment,{children:u.jsx(hC,{cell:Z,addButtonCallback:U=>K(U,X),sourceAndPaths:ce(C),expandCodeCell:t,expandEmbedding:r,hideEmbeddingIcons:n,editingMarkdown:v===X,editingMalloy:g===X,onDelete:()=>{f(h.deleteCell(X)),V()},onCellChange:U=>{f(h.setCell(X,U)),V()},onEdit:()=>{Z.isMarkdown?b(X):y(X)},onClose:()=>{Z.isMarkdown?b(void 0):y(void 0)}})},`${X}-${h.getCells().length}`)),se,u.jsxs(x.Menu,{anchorEl:k,open:F,onClose:L,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[u.jsx(x.MenuItem,{onClick:()=>m(!0,P??0),children:"Add Markdown"}),u.jsx(x.MenuItem,{onClick:()=>m(!1,P??0),children:"Add Malloy"})]}),u.jsx(yn,{sx:{flexDirection:"row",justifyContent:"flex-end",p:1}})]})})]})}function SC({notebookData:e}){const[t,r]=_.useState(!1);return u.jsx(x.Button,{color:"primary",onClick:async()=>{if(!e)return;const n=e.toMalloyNotebook();try{await navigator.clipboard.writeText(n),r(!0),setTimeout(()=>r(!1),1500)}catch{r(!1),alert("Failed to copy to clipboard")}},size:"small",children:t?"Copied!":"Export"})}function wC({onNotebookClick:e}){const{notebookStorage:t,userContext:r}=lh(),[n,o]=_.useState([]);return _.useEffect(()=>{t&&r&&o(t.listNotebooks(r))},[t,r]),u.jsxs(u.Fragment,{children:[u.jsx(x.Divider,{}),u.jsx(x.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(x.List,{dense:!0,children:[n.length===0&&u.jsx(x.ListItem,{children:u.jsx(x.ListItemText,{primary:"No notebooks found.",sx:{textAlign:"center"}})}),n.map(a=>u.jsx(x.ListItem,{onClick:i=>e(a,i),sx:{cursor:"pointer","&:hover":{backgroundColor:"action.hover"}},children:u.jsx(x.ListItemText,{primary:a})},a))]})})]})}const CC=new Ad(new ct);function kC(){const{projectName:e}=uh(),{data:t,isSuccess:r,isError:n,error:o}=It({queryKey:["about",e],queryFn:a=>CC.getProject(e,!1,a)});return u.jsxs(u.Fragment,{children:[!r&&!n&&u.jsx(zt,{text:"Fetching About..."}),r&&u.jsxs(tt,{variant:"outlined",sx:{p:2},children:[u.jsx(x.Typography,{variant:"overline",fontWeight:"bold",sx:{mb:1},children:"Readme"}),u.jsx(tt,{sx:{p:1},children:u.jsx(Ns,{children:t.data.readme})})]}),n&&u.jsx(Pt,{error:o,context:`${e} > About`})]})}const PC=new Nd(new ct);function IC({navigate:e}){const{projectName:t}=uh(),{data:r,isSuccess:n,isError:o,error:a}=It({queryKey:["packages",t],queryFn:i=>PC.listPackages(t,i)});return u.jsxs(u.Fragment,{children:[!n&&!o&&u.jsx(zt,{text:"Fetching Packages..."}),n&&u.jsxs(tt,{variant:"outlined",sx:{p:2},children:[u.jsx(x.Typography,{variant:"overline",fontWeight:"bold",sx:{mb:1},children:"Packages"}),u.jsx(x.Grid,{container:!0,spacing:2,columns:12,children:r.data.sort((i,s)=>i.name.localeCompare(s.name)).map(i=>u.jsx(x.Grid,{size:{xs:12,sm:12,md:12,lg:4},children:u.jsx(tt,{variant:"outlined",sx:{cursor:"pointer",transition:"all 0.2s ease-in-out","&:hover":{boxShadow:"0 4px 12px rgba(0, 0, 0, 0.1)",transform:"translateY(-2px)"}},onClick:s=>e(i.name+"/",s),children:u.jsxs(kt,{children:[u.jsx(x.Typography,{variant:"overline",color:"primary.main",children:i.name}),u.jsx(x.Box,{sx:{maxHeight:"120px",overflowY:"auto"},children:u.jsx(x.Typography,{variant:"body2",children:i.description})})]})})},i.name))})]}),o&&u.jsx(Pt,{error:a,context:`${t} > Packages`})]})}const ch=_.createContext(void 0);function uh(){const e=_.useContext(ch);if(!e)throw new Error("useProject must be used within a ProjectProvider");return e}function jC({children:e,projectName:t}){return u.jsx(ch.Provider,{value:{projectName:t},children:e})}function EC({navigate:e}){return u.jsxs(x.Grid,{container:!0,spacing:2,columns:12,children:[u.jsx(x.Grid,{size:{xs:12,md:12},children:u.jsx(IC,{navigate:e})}),u.jsx(x.Grid,{size:{xs:12,md:12},children:u.jsx(kC,{})})]})}const TC=Ee(u.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2M8 17c-.55 0-1-.45-1-1v-3c0-.55.45-1 1-1s1 .45 1 1v3c0 .55-.45 1-1 1m4 0c-.55 0-1-.45-1-1v-1c0-.55.45-1 1-1s1 .45 1 1v1c0 .55-.45 1-1 1m0-5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m4 5c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8c0 .55-.45 1-1 1"})),RC=Ee(u.jsx("path",{d:"M5 13h11.17l-4.88 4.88c-.39.39-.39 1.03 0 1.42s1.02.39 1.41 0l6.59-6.59c.39-.39.39-1.02 0-1.41l-6.58-6.6a.996.996 0 0 0-1.41 0c-.39.39-.39 1.02 0 1.41L16.17 11H5c-.55 0-1 .45-1 1s.45 1 1 1"})),gu=Ee(u.jsx("path",{d:"m19.46 8 .79-1.75L22 5.46c.39-.18.39-.73 0-.91l-1.75-.79L19.46 2c-.18-.39-.73-.39-.91 0l-.79 1.75-1.76.79c-.39.18-.39.73 0 .91l1.75.79.79 1.76c.18.39.74.39.92 0M11.5 9.5 9.91 6c-.35-.78-1.47-.78-1.82 0L6.5 9.5 3 11.09c-.78.36-.78 1.47 0 1.82l3.5 1.59L8.09 18c.36.78 1.47.78 1.82 0l1.59-3.5 3.5-1.59c.78-.36.78-1.47 0-1.82zm7.04 6.5-.79 1.75-1.75.79c-.39.18-.39.73 0 .91l1.75.79.79 1.76c.18.39.73.39.91 0l.79-1.75 1.76-.79c.39-.18.39-.73 0-.91l-1.75-.79-.79-1.76c-.18-.39-.74-.39-.92 0"})),MC=Ee(u.jsx("path",{d:"M8.7 15.9 4.8 12l3.9-3.9c.39-.39.39-1.01 0-1.4a.984.984 0 0 0-1.4 0l-4.59 4.59c-.39.39-.39 1.02 0 1.41l4.59 4.6c.39.39 1.01.39 1.4 0s.39-1.01 0-1.4m6.6 0 3.9-3.9-3.9-3.9a.984.984 0 0 1 0-1.4c.39-.39 1.01-.39 1.4 0l4.59 4.59c.39.39.39 1.02 0 1.41l-4.59 4.6c-.39.39-1.01.39-1.4 0a.984.984 0 0 1 0-1.4"})),NC=Ee(u.jsx("path",{d:"M12 10.9c-.61 0-1.1.49-1.1 1.1s.49 1.1 1.1 1.1 1.1-.49 1.1-1.1-.49-1.1-1.1-1.1M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m2.19 12.19L6 18l3.81-8.19L18 6z"})),AC=Ee([u.jsx("path",{d:"M13 8.57c-.79 0-1.43.64-1.43 1.43s.64 1.43 1.43 1.43 1.43-.64 1.43-1.43-.64-1.43-1.43-1.43"},"0"),u.jsx("path",{d:"M13.21 3c-3.84-.11-7 2.87-7.19 6.64L4.1 12.2c-.25.33-.01.8.4.8H6v3c0 1.1.9 2 2 2h1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3.68c2.44-1.16 4.1-3.68 4-6.58-.14-3.62-3.18-6.63-6.79-6.74M16 10c0 .13-.01.26-.02.39l.83.66c.08.06.1.16.05.25l-.8 1.39c-.05.09-.16.12-.24.09l-.99-.4c-.21.16-.43.29-.67.39L14 13.83c-.01.1-.1.17-.2.17h-1.6c-.1 0-.18-.07-.2-.17l-.15-1.06c-.25-.1-.47-.23-.68-.39l-.99.4c-.09.03-.2 0-.25-.09l-.8-1.39c-.05-.08-.03-.19.05-.25l.84-.66c-.01-.13-.02-.26-.02-.39s.02-.27.04-.39l-.85-.66c-.08-.06-.1-.16-.05-.26l.8-1.38c.05-.09.15-.12.24-.09l1 .4c.2-.15.43-.29.67-.39L12 6.17c.02-.1.1-.17.2-.17h1.6c.1 0 .18.07.2.17l.15 1.06c.24.1.46.23.67.39l1-.4c.09-.03.2 0 .24.09l.8 1.38c.05.09.03.2-.05.26l-.85.66c.03.12.04.25.04.39"},"1")]),yu=Ee(u.jsx("path",{d:"M4 20h16c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2s.9 2 2 2m0-3h2v2H4zM2 6c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2m4 1H4V5h2zm-2 7h16c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2s.9 2 2 2m0-3h2v2H4z"})),_C=new Ad(new ct),OC=e=>{if(!e)return"Explore semantic models, run queries, and build dashboards";const t=e.replace(/^#+\s+/gm,"").replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/`([^`]+)`/g,"$1").trim(),r=t.split(/\n\s*\n/)[0]||t;if(r.length<=120)return r;const n=r.substring(0,120).split(" ");return n.pop(),n.join(" ")+"..."};function LC({navigate:e}){const{data:t,isSuccess:r,isError:n,error:o}=It({queryKey:["projects"],queryFn:a=>_C.listProjects(a)});return n?u.jsx(Pt,{error:o,context:"Projects List"}):r?u.jsxs(x.Container,{maxWidth:"lg",sx:{py:4},children:[u.jsxs(x.Box,{sx:{textAlign:"center",mb:6},children:[u.jsxs(x.Stack,{direction:"row",justifyContent:"center",alignItems:"center",spacing:1,sx:{mb:2},children:[u.jsx(gu,{sx:{fontSize:32,color:"primary.main"}}),u.jsx(x.Typography,{variant:"h3",component:"h1",fontWeight:700,children:"Publisher"})]}),u.jsx(x.Typography,{variant:"h5",color:"text.secondary",sx:{mb:3,maxWidth:600,mx:"auto"},children:"The open-source semantic model server for the Malloy data language"}),u.jsx(x.Typography,{variant:"body1",color:"text.secondary",sx:{maxWidth:800,mx:"auto"},children:"Define semantic models once — and use them everywhere. Publisher serves Malloy models through clean APIs, enabling consistent, interpretable, and AI-ready data access for tools, applications, and agents."})]}),u.jsxs(x.Grid,{container:!0,spacing:3,sx:{mb:6},children:[u.jsx(x.Grid,{size:{xs:12,md:4},children:u.jsx(x.Card,{variant:"outlined",onClick:()=>{window.open("https://github.com/malloydata/publisher/blob/main/README.md#ad-hoc-data-analysis","_blank")},sx:{height:"100%",cursor:"pointer",transition:"all 0.2s ease","&:hover":{transform:"translateY(-2px)",boxShadow:2}},children:u.jsxs(x.CardContent,{sx:{p:3},children:[u.jsxs(x.Stack,{direction:"row",alignItems:"center",spacing:1,sx:{mb:2},children:[u.jsx(TC,{sx:{color:"info.main",fontSize:28}}),u.jsx(x.Typography,{variant:"h6",fontWeight:600,children:"Ad Hoc Analysis"})]}),u.jsx(x.Typography,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Use Explorer, a visual query builder that allows analysts to browse semantic sources, build queries, and run nested logic — all without writing code."}),u.jsx(x.Chip,{label:"No-code",size:"small",color:"primary",variant:"outlined"})]})})}),u.jsx(x.Grid,{size:{xs:12,md:4},children:u.jsx(x.Card,{variant:"outlined",onClick:()=>{window.open("https://github.com/malloydata/publisher/blob/main/README.md#notebook-based-dashboards","_blank")},sx:{height:"100%",cursor:"pointer",transition:"all 0.2s ease","&:hover":{transform:"translateY(-2px)",boxShadow:2}},children:u.jsxs(x.CardContent,{sx:{p:3},children:[u.jsxs(x.Stack,{direction:"row",alignItems:"center",spacing:1,sx:{mb:2},children:[u.jsx(MC,{sx:{color:"warning.main",fontSize:28}}),u.jsx(x.Typography,{variant:"h6",fontWeight:600,children:"Notebook Dashboards"})]}),u.jsx(x.Typography,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Create shareable, code-first dashboards using Malloy notebooks. Include text, charts, and reusable views — all versioned alongside your models."}),u.jsx(x.Chip,{label:"Versioned",size:"small",color:"warning",variant:"outlined"})]})})}),u.jsx(x.Grid,{size:{xs:12,md:4},children:u.jsx(x.Card,{variant:"outlined",onClick:()=>{window.open("https://github.com/malloydata/publisher/blob/main/README.md#mcp-based-ai-data-agents","_blank")},sx:{height:"100%",cursor:"pointer",transition:"all 0.2s ease","&:hover":{transform:"translateY(-2px)",boxShadow:2}},children:u.jsxs(x.CardContent,{sx:{p:3},children:[u.jsxs(x.Stack,{direction:"row",alignItems:"center",spacing:1,sx:{mb:2},children:[u.jsx(AC,{sx:{color:"success.main",fontSize:28}}),u.jsx(x.Typography,{variant:"h6",fontWeight:600,children:"AI Data Agents"})]}),u.jsx(x.Typography,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Expose your semantic models via the Model Context Protocol (MCP), enabling AI agents to discover sources and ask well-formed questions."}),u.jsx(x.Chip,{label:"AI-Ready",size:"small",color:"success",variant:"outlined"})]})})})]}),u.jsx(x.Divider,{sx:{my:4}}),t.data.length>0?u.jsxs(u.Fragment,{children:[u.jsxs(x.Box,{sx:{textAlign:"center",mb:4},children:[u.jsxs(x.Stack,{direction:"row",justifyContent:"center",alignItems:"center",spacing:1,sx:{mb:2},children:[u.jsx(yu,{sx:{color:"primary.main",fontSize:24}}),u.jsx(x.Typography,{variant:"h4",fontWeight:600,children:"Select a Project"})]}),u.jsx(x.Typography,{variant:"body1",color:"text.secondary",children:"Choose a project to explore its semantic models and start analyzing your data"})]}),u.jsx(x.Grid,{container:!0,spacing:3,justifyContent:"center",children:t.data.map(a=>u.jsx(x.Grid,{size:{xs:12,sm:6,md:4},children:u.jsx(x.Card,{variant:"outlined",sx:{height:"100%",cursor:"pointer",transition:"all 0.2s ease","&:hover":{transform:"translateY(-2px)",boxShadow:2,borderColor:"primary.main"}},onClick:i=>e(`/${a.name}/`,i),children:u.jsxs(x.CardContent,{sx:{p:3,textAlign:"center"},children:[u.jsx(NC,{sx:{fontSize:48,color:"primary.main",mb:2}}),u.jsx(x.Typography,{variant:"h6",fontWeight:600,gutterBottom:!0,children:a.name}),u.jsx(x.Typography,{variant:"body2",color:"text.secondary",sx:{mb:2},children:OC(a.readme)}),u.jsx(x.Button,{variant:"contained",color:"secondary",endIcon:u.jsx(RC,{}),fullWidth:!0,children:"Open Project"})]})})},a.name))})]}):u.jsxs(x.Box,{sx:{textAlign:"center",mb:4},children:[u.jsxs(x.Stack,{direction:"row",justifyContent:"center",alignItems:"center",spacing:1,sx:{mb:2},children:[u.jsx(yu,{sx:{color:"primary.main",fontSize:24}}),u.jsx(x.Typography,{variant:"h4",fontWeight:600,children:"Get Started"})]}),u.jsx(x.Typography,{variant:"body1",color:"text.secondary",sx:{mb:3},children:"No projects found. Create your first Malloy project to start exploring semantic models and building data experiences."}),u.jsx(x.Button,{variant:"contained",size:"large",color:"primary",startIcon:u.jsx(gu,{}),href:"https://github.com/malloydata/publisher/blob/main/README.md#server-configuration",target:"_blank",rel:"noopener noreferrer",children:"Learn How to Create Models"})]}),u.jsx(x.Box,{sx:{textAlign:"center",mt:6,pt:4,borderTop:1,borderColor:"divider"},children:u.jsxs(x.Typography,{variant:"body2",color:"text.secondary",children:["Publisher is built on fully open infrastructure and designed for the AI era. Join the"," ",u.jsx("a",{href:"https://join.slack.com/t/malloy-community/shared_invite/zt-1kgfwgi5g-CrsdaRqs81QY67QW0~t_uw",target:"_blank",rel:"noopener noreferrer",style:{color:"primary.main",textDecoration:"underline"},children:"Malloy Slack community"})," ","to ask questions, share ideas, and contribute to the future of data modeling."]})})]}):u.jsx(zt,{text:"Loading projects..."})}function $C(){const{projectName:e,packageName:t}=on(),[r,n]=_.useState(""),[o,a]=_.useState(null),[i,s]=_.useState(!1),[l,c]=_.useState(!1),d=Fn(),p=!!o,h=C=>{a(C.currentTarget)},f=()=>{a(null)},g=()=>{c(!1)},y=()=>{s(!1)},v=(C,w)=>{c(!1),d(`/${e}/${t}/scratchNotebook/${encodeURIComponent(C)}`,w)},b=C=>{s(!1),d(`/${e}/${t}/scratchNotebook/${encodeURIComponent(r)}`,C),n("")};return!e||!t?null:u.jsxs(u.Fragment,{children:[u.jsx(x.Button,{"aria-controls":p?"basic-menu":void 0,"aria-haspopup":"true","aria-expanded":p?"true":void 0,onClick:h,variant:"contained",sx:{height:"40px",px:2,backgroundColor:"#fbbb04","&:hover":{backgroundColor:"#eab308"}},children:"Analyze Package"}),u.jsxs(x.Menu,{id:"basic-menu",anchorEl:o,open:p,onClose:f,MenuListProps:{"aria-labelledby":"basic-button",sx:{py:.5}},children:[u.jsxs(x.MenuItem,{onClick:()=>{s(!0),f()},sx:{py:1,px:2},children:[u.jsx(x.ListItemIcon,{children:u.jsx(yo.Add,{fontSize:"small"})}),u.jsxs(x.ListItemText,{children:[u.jsx(x.Typography,{variant:"body2",fontWeight:500,children:"New Workbook"}),u.jsx(x.Typography,{variant:"caption",color:"text.secondary",children:"Create a new analysis workbook"})]})]}),u.jsxs(x.MenuItem,{onClick:()=>{c(!0),f()},sx:{py:1,px:2},children:[u.jsx(x.ListItemIcon,{children:u.jsx(yo.Launch,{fontSize:"small"})}),u.jsxs(x.ListItemText,{children:[u.jsx(x.Typography,{variant:"body2",fontWeight:500,children:"Open Workbook"}),u.jsx(x.Typography,{variant:"caption",color:"text.secondary",children:"Open an existing workbook"})]})]})]}),u.jsxs(x.Dialog,{open:i,onClose:y,maxWidth:"sm",fullWidth:!0,children:[u.jsxs(x.DialogTitle,{sx:{pb:1,pt:2,px:2},children:[u.jsx(x.Typography,{variant:"h6",fontWeight:600,sx:{mb:.5},children:"Create New Workbook"}),u.jsx(x.Typography,{variant:"body2",color:"text.secondary",children:"Start a new analysis workbook to explore your data"})]}),u.jsx(x.DialogContent,{sx:{px:2,pb:2},children:u.jsxs(x.Stack,{spacing:2,sx:{mt:1},children:[u.jsx(x.FormControl,{fullWidth:!0,children:u.jsx(x.TextField,{label:"Workbook Name",value:r,onChange:C=>n(C.target.value),placeholder:"Enter workbook name...",fullWidth:!0,autoFocus:!0,size:"small"})}),u.jsxs(x.Stack,{direction:"row",spacing:1,justifyContent:"flex-end",children:[u.jsx(x.Button,{onClick:y,variant:"outlined",size:"small",children:"Cancel"}),u.jsx(x.Button,{onClick:C=>b(C),variant:"contained",disabled:!r.trim(),size:"small",children:"Create Workbook"})]})]})})]}),u.jsxs(x.Dialog,{open:l,onClose:g,maxWidth:"md",fullWidth:!0,children:[u.jsxs(x.DialogTitle,{sx:{pb:1,pt:2,px:2},children:[u.jsx(x.Typography,{variant:"h6",fontWeight:600,sx:{mb:.5},children:"Open Workbook"}),u.jsx(x.Typography,{variant:"body2",color:"text.secondary",children:"Select an existing workbook to continue your analysis"})]}),u.jsx(x.DialogContent,{sx:{px:2,pb:2},children:u.jsx(sh,{notebookStorage:new Rp,userContext:{project:e,package:t},children:u.jsx(wC,{onNotebookClick:v})})})]})]})}new Rd(new ct);Be.defaults.baseURL="IfYouAreSeeingThis_baseURL_IsNotSet";function Zr(e,...t){const r=new URL(`https://mui.com/production-error/?code=${e}`);return t.forEach(n=>r.searchParams.append("args[]",n)),`Minified MUI error #${e}; visit ${r} for the full message.`}const Yr="$$material",DC=e=>{const t=Object.keys(e).map(r=>({key:r,val:e[r]}))||[];return t.sort((r,n)=>r.val-n.val),t.reduce((r,n)=>({...r,[n.key]:n.val}),{})};function BC(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:r="px",step:n=5,...o}=e,a=DC(t),i=Object.keys(a);function s(h){return`@media (min-width:${typeof t[h]=="number"?t[h]:h}${r})`}function l(h){return`@media (max-width:${(typeof t[h]=="number"?t[h]:h)-n/100}${r})`}function c(h,f){const g=i.indexOf(f);return`@media (min-width:${typeof t[h]=="number"?t[h]:h}${r}) and (max-width:${(g!==-1&&typeof t[i[g]]=="number"?t[i[g]]:f)-n/100}${r})`}function d(h){return i.indexOf(h)+1<i.length?c(h,i[i.indexOf(h)+1]):s(h)}function p(h){const f=i.indexOf(h);return f===0?s(i[1]):f===i.length-1?l(i[f]):c(h,i[i.indexOf(h)+1]).replace("@media","@media not all and")}return{keys:i,values:a,up:s,down:l,between:c,only:d,not:p,unit:r,...o}}var Hi={exports:{}},ve={};/**
|
|
151
|
+
`));o[h]={id:h,label:f,parentId:p,idAttribute:void 0,expandable:!!c.children?.length,disabled:t?t(c):!1,depth:d},a[h]=c;const g=p??In;i[g]||(i[g]=[]),i[g].push(h),c.children?.forEach(y=>s(y,d+1,h))};e.forEach(c=>s(c,0,null));const l={};return Object.keys(i).forEach(c=>{l[c]=Pw(i[c])}),{itemMetaMap:o,itemMap:a,itemOrderedChildrenIds:i,itemChildrenIndexes:l}},Bo=({instance:e,params:t,state:r,setState:n,experimentalFeatures:o})=>{const a=S.useCallback(v=>r.items.itemMetaMap[v],[r.items.itemMetaMap]),i=S.useCallback(v=>r.items.itemMap[v],[r.items.itemMap]),s=S.useCallback(()=>{const v=b=>{const C=r.items.itemMap[b],w=mr(C,Iw),k=r.items.itemOrderedChildrenIds[b];return k&&(w.children=k.map(v)),w};return r.items.itemOrderedChildrenIds[In].map(v)},[r.items.itemMap,r.items.itemOrderedChildrenIds]),l=S.useCallback(v=>{if(v==null)return!1;let b=e.getItemMeta(v);if(!b)return!1;if(b.disabled)return!0;for(;b.parentId!=null;)if(b=e.getItemMeta(b.parentId),b.disabled)return!0;return!1},[e]),c=S.useCallback(v=>{const b=e.getItemMeta(v).parentId??In;return r.items.itemChildrenIndexes[b][v]},[e,r.items.itemChildrenIndexes]),d=S.useCallback(v=>r.items.itemOrderedChildrenIds[v??In]??[],[r.items.itemOrderedChildrenIds]),p=v=>{const b=e.getItemMeta(v);return b==null?null:document.getElementById(bl({treeId:r.id.treeId,itemId:v,id:b.idAttribute}))},h=v=>t.disabledItemsFocusable?!0:!e.isItemDisabled(v),f=S.useRef(!1),g=S.useCallback(()=>{f.current=!0},[]),y=S.useCallback(()=>f.current,[]);return S.useEffect(()=>{e.areItemUpdatesPrevented()||n(v=>{const b=Jp({items:t.items,isItemDisabled:t.isItemDisabled,getItemId:t.getItemId,getItemLabel:t.getItemLabel});return Object.values(v.items.itemMetaMap).forEach(C=>{b.itemMetaMap[C.id]||kw(e,"removeItem",{id:C.id})}),Y({},v,{items:b})})},[e,n,t.items,t.isItemDisabled,t.getItemId,t.getItemLabel]),{getRootProps:()=>({style:{"--TreeView-itemChildrenIndentation":typeof t.itemChildrenIndentation=="number"?`${t.itemChildrenIndentation}px`:t.itemChildrenIndentation}}),publicAPI:{getItem:i,getItemDOMElement:p,getItemTree:s,getItemOrderedChildrenIds:d},instance:{getItemMeta:a,getItem:i,getItemTree:s,getItemsToRender:()=>{const v=b=>{const C=r.items.itemMetaMap[b];return{label:C.label,itemId:C.id,id:C.idAttribute,children:r.items.itemOrderedChildrenIds[b]?.map(v)}};return r.items.itemOrderedChildrenIds[In].map(v)},getItemIndex:c,getItemDOMElement:p,getItemOrderedChildrenIds:d,isItemDisabled:l,isItemNavigable:h,preventItemUpdates:g,areItemUpdatesPrevented:y},contextValue:{items:{onItemClick:t.onItemClick,disabledItemsFocusable:t.disabledItemsFocusable,indentationAtItemLevel:o.indentationAtItemLevel??!1}}}};Bo.getInitialState=e=>({items:Jp({items:e.items,isItemDisabled:e.isItemDisabled,getItemId:e.getItemId,getItemLabel:e.getItemLabel})});Bo.getDefaultizedParams=({params:e})=>Y({},e,{disabledItemsFocusable:e.disabledItemsFocusable??!1,itemChildrenIndentation:e.itemChildrenIndentation??"12px"});Bo.wrapRoot=({children:e,instance:t})=>u.jsx(yl.Provider,{value:r=>t.getItemMeta(r)?.depth??0,children:e});Bo.params={disabledItemsFocusable:!0,items:!0,isItemDisabled:!0,getItemLabel:!0,getItemId:!0,onItemClick:!0,itemChildrenIndentation:!0};const jw=typeof window<"u"?S.useLayoutEffect:S.useEffect;function Mn(e){const t=S.useRef(e);return jw(()=>{t.current=e}),S.useRef((...r)=>(0,t.current)(...r)).current}const ui=({instance:e,params:t,models:r})=>{const n=S.useMemo(()=>{const p=new Map;return r.expandedItems.value.forEach(h=>{p.set(h,!0)}),p},[r.expandedItems.value]),o=(p,h)=>{t.onExpandedItemsChange?.(p,h),r.expandedItems.setControlledValue(h)},a=S.useCallback(p=>n.has(p),[n]),i=S.useCallback(p=>!!e.getItemMeta(p)?.expandable,[e]),s=Mn((p,h)=>{const f=e.isItemExpanded(h);e.setItemExpansion(p,h,!f)}),l=Mn((p,h,f)=>{if(e.isItemExpanded(h)===f)return;let g;f?g=[h].concat(r.expandedItems.value):g=r.expandedItems.value.filter(y=>y!==h),t.onItemExpansionToggle&&t.onItemExpansionToggle(p,h,f),o(p,g)}),c=(p,h)=>{const f=e.getItemMeta(h),g=e.getItemOrderedChildrenIds(f.parentId).filter(v=>e.isItemExpandable(v)&&!e.isItemExpanded(v)),y=r.expandedItems.value.concat(g);g.length>0&&(t.onItemExpansionToggle&&g.forEach(v=>{t.onItemExpansionToggle(p,v,!0)}),o(p,y))},d=S.useMemo(()=>t.expansionTrigger?t.expansionTrigger:e.isTreeViewEditable?"iconContainer":"content",[t.expansionTrigger,e.isTreeViewEditable]);return{publicAPI:{setItemExpansion:l},instance:{isItemExpanded:a,isItemExpandable:i,setItemExpansion:l,toggleItemExpansion:s,expandAllSiblings:c},contextValue:{expansion:{expansionTrigger:d}}}};ui.models={expandedItems:{getDefaultValue:e=>e.defaultExpandedItems}};const Ew=[];ui.getDefaultizedParams=({params:e})=>Y({},e,{defaultExpandedItems:e.defaultExpandedItems??Ew});ui.params={expandedItems:!0,defaultExpandedItems:!0,onExpandedItemsChange:!0,onItemExpansionToggle:!0,expansionTrigger:!0};const xa=e=>Array.isArray(e)?e:e!=null?[e]:[],Ui=e=>{const t={};return e.forEach(r=>{t[r]=!0}),t},di=({instance:e,params:t,models:r})=>{const n=S.useRef(null),o=S.useRef({}),a=S.useMemo(()=>{const d=new Map;return Array.isArray(r.selectedItems.value)?r.selectedItems.value.forEach(p=>{d.set(p,!0)}):r.selectedItems.value!=null&&d.set(r.selectedItems.value,!0),d},[r.selectedItems.value]),i=(d,p)=>{if(t.onItemSelectionToggle)if(t.multiSelect){const h=p.filter(g=>!e.isItemSelected(g)),f=r.selectedItems.value.filter(g=>!p.includes(g));h.forEach(g=>{t.onItemSelectionToggle(d,g,!0)}),f.forEach(g=>{t.onItemSelectionToggle(d,g,!1)})}else p!==r.selectedItems.value&&(r.selectedItems.value!=null&&t.onItemSelectionToggle(d,r.selectedItems.value,!1),p!=null&&t.onItemSelectionToggle(d,p,!0));t.onSelectedItemsChange&&t.onSelectedItemsChange(d,p),r.selectedItems.setControlledValue(p)},s=d=>a.has(d),l=({event:d,itemId:p,keepExistingSelection:h=!1,shouldBeSelected:f})=>{if(t.disableSelection)return;let g;if(h){const y=xa(r.selectedItems.value),v=e.isItemSelected(p);v&&(f===!1||f==null)?g=y.filter(b=>b!==p):!v&&(f===!0||f==null)?g=[p].concat(y):g=y}else f===!1||f==null&&e.isItemSelected(p)?g=t.multiSelect?[]:null:g=t.multiSelect?[p]:p;i(d,g),n.current=p,o.current={}},c=(d,[p,h])=>{if(t.disableSelection||!t.multiSelect)return;let f=xa(r.selectedItems.value).slice();Object.keys(o.current).length>0&&(f=f.filter(b=>!o.current[b]));const g=Ui(f),y=BS(e,p,h),v=y.filter(b=>!g[b]);f=f.concat(v),i(d,f),o.current=Ui(y)};return{getRootProps:()=>({"aria-multiselectable":t.multiSelect}),publicAPI:{selectItem:l},instance:{isItemSelected:s,selectItem:l,selectAllNavigableItems:d=>{if(t.disableSelection||!t.multiSelect)return;const p=qS(e);i(d,p),o.current=Ui(p)},expandSelectionRange:(d,p)=>{if(n.current!=null){const[h,f]=Up(e,p,n.current);c(d,[h,f])}},selectRangeFromStartToItem:(d,p)=>{c(d,[Io(e),p])},selectRangeFromItemToEnd:(d,p)=>{c(d,[p,Wp(e)])},selectItemFromArrowNavigation:(d,p,h)=>{if(t.disableSelection||!t.multiSelect)return;let f=xa(r.selectedItems.value).slice();Object.keys(o.current).length===0?(f.push(h),o.current={[p]:!0,[h]:!0}):(o.current[p]||(o.current={}),o.current[h]?(f=f.filter(g=>g!==p),delete o.current[p]):(f.push(h),o.current[h]=!0)),i(d,f)}},contextValue:{selection:{multiSelect:t.multiSelect,checkboxSelection:t.checkboxSelection,disableSelection:t.disableSelection}}}};di.models={selectedItems:{getDefaultValue:e=>e.defaultSelectedItems}};const Tw=[];di.getDefaultizedParams=({params:e})=>Y({},e,{disableSelection:e.disableSelection??!1,multiSelect:e.multiSelect??!1,checkboxSelection:e.checkboxSelection??!1,defaultSelectedItems:e.defaultSelectedItems??(e.multiSelect?Tw:null)});di.params={disableSelection:!0,multiSelect:!0,checkboxSelection:!0,defaultSelectedItems:!0,selectedItems:!0,onSelectedItemsChange:!0,onItemSelectionToggle:!0};function Rw(e){return e&&e.ownerDocument||document}const mu=1e3;class Mw{constructor(t=mu){this.timeouts=new Map,this.cleanupTimeout=mu,this.cleanupTimeout=t}register(t,r,n){this.timeouts||(this.timeouts=new Map);const o=setTimeout(()=>{typeof r=="function"&&r(),this.timeouts.delete(n.cleanupToken)},this.cleanupTimeout);this.timeouts.set(n.cleanupToken,o)}unregister(t){const r=this.timeouts.get(t.cleanupToken);r&&(this.timeouts.delete(t.cleanupToken),clearTimeout(r))}reset(){this.timeouts&&(this.timeouts.forEach((t,r)=>{this.unregister({cleanupToken:r})}),this.timeouts=void 0)}}class Nw{constructor(){this.registry=new FinalizationRegistry(t=>{typeof t=="function"&&t()})}register(t,r,n){this.registry.register(t,r,n)}unregister(t){this.registry.unregister(t)}reset(){}}class Aw{}function _w(e){let t=0;return function(r,n,o){e.registry===null&&(e.registry=typeof FinalizationRegistry<"u"?new Nw:new Mw);const[a]=S.useState(new Aw),i=S.useRef(null),s=S.useRef(void 0);s.current=o;const l=S.useRef(null);if(!i.current&&s.current){const c=(d,p)=>{p.defaultMuiPrevented||s.current?.(d,p)};i.current=r.$$subscribeEvent(n,c),t+=1,l.current={cleanupToken:t},e.registry.register(a,()=>{i.current?.(),i.current=null,l.current=null},l.current)}else!s.current&&i.current&&(i.current(),i.current=null,l.current&&(e.registry.unregister(l.current),l.current=null));S.useEffect(()=>{if(!i.current&&s.current){const c=(d,p)=>{p.defaultMuiPrevented||s.current?.(d,p)};i.current=r.$$subscribeEvent(n,c)}return l.current&&e.registry&&(e.registry.unregister(l.current),l.current=null),()=>{i.current?.(),i.current=null}},[r,n])}}const Ow={registry:null},Lw=_w(Ow),Zp=(e=document)=>{const t=e.activeElement;return t?t.shadowRoot?Zp(t.shadowRoot):t:null},$w=(e,t)=>{let r=xa(t).find(n=>{if(!e.isItemNavigable(n))return!1;const o=e.getItemMeta(n);return o&&(o.parentId==null||e.isItemExpanded(o.parentId))});return r==null&&(r=Io(e)),r},wl=({instance:e,params:t,state:r,setState:n,models:o,rootRef:a})=>{const i=$w(e,o.selectedItems.value),s=Mn(v=>{const b=typeof v=="function"?v(r.focusedItemId):v;r.focusedItemId!==b&&n(C=>Y({},C,{focusedItemId:b}))}),l=S.useCallback(()=>!!a.current&&a.current.contains(Zp(Rw(a.current))),[a]),c=S.useCallback(v=>r.focusedItemId===v&&l(),[r.focusedItemId,l]),d=v=>{const b=e.getItemMeta(v);return b&&(b.parentId==null||e.isItemExpanded(b.parentId))},p=(v,b)=>{const C=e.getItemDOMElement(b);C&&C.focus(),s(b),t.onItemFocus&&t.onItemFocus(v,b)},h=Mn((v,b)=>{d(b)&&p(v,b)}),f=Mn(()=>{if(r.focusedItemId!=null){if(e.getItemMeta(r.focusedItemId)){const v=e.getItemDOMElement(r.focusedItemId);v&&v.blur()}s(null)}}),g=v=>v===i;Lw(e,"removeItem",({id:v})=>{r.focusedItemId===v&&p(null,i)});const y=v=>b=>{v.onFocus?.(b),!b.defaultMuiPrevented&&b.target===b.currentTarget&&p(b,i)};return{getRootProps:v=>({onFocus:y(v)}),publicAPI:{focusItem:h},instance:{isItemFocused:c,canItemBeTabbed:g,focusItem:h,removeFocusedItem:f}}};wl.getInitialState=()=>({focusedItemId:null});wl.params={onItemFocus:!0};function Dw(e){return!!e&&e.length===1&&!!e.match(/\S/)}const eh=({instance:e,params:t,state:r})=>{const n=My(),o=S.useRef({}),a=Mn(c=>{o.current=c(o.current)});S.useEffect(()=>{if(e.areItemUpdatesPrevented())return;const c={},d=p=>{c[p.id]=p.label.substring(0,1).toLowerCase()};Object.values(r.items.itemMetaMap).forEach(d),o.current=c},[r.items.itemMetaMap,t.getItemId,e]);const i=(c,d)=>{const p=d.toLowerCase(),h=v=>{const b=ba(e,v);return b===null?Io(e):b};let f=null,g=h(c);const y={};for(;f==null&&!y[g];)o.current[g]===p?f=g:(y[g]=!0,g=h(g));return f},s=c=>!t.disableSelection&&!e.isItemDisabled(c),l=c=>!e.isItemDisabled(c)&&e.isItemExpandable(c);return{instance:{updateFirstCharMap:a,handleItemKeyDown:(c,d)=>{if(c.defaultMuiPrevented||c.altKey||jo(c.target,c.currentTarget))return;const p=c.ctrlKey||c.metaKey,h=c.key;switch(!0){case(h===" "&&s(d)):{c.preventDefault(),t.multiSelect&&c.shiftKey?e.expandSelectionRange(c,d):e.selectItem({event:c,itemId:d,keepExistingSelection:t.multiSelect,shouldBeSelected:t.multiSelect?void 0:!0});break}case h==="Enter":{Qr(e,Dt)&&e.isItemEditable(d)&&!e.isItemBeingEdited(d)?e.setEditedItemId(d):l(d)?(e.toggleItemExpansion(c,d),c.preventDefault()):s(d)&&(t.multiSelect?(c.preventDefault(),e.selectItem({event:c,itemId:d,keepExistingSelection:!0})):e.isItemSelected(d)||(e.selectItem({event:c,itemId:d}),c.preventDefault()));break}case h==="ArrowDown":{const f=ba(e,d);f&&(c.preventDefault(),e.focusItem(c,f),t.multiSelect&&c.shiftKey&&s(f)&&e.selectItemFromArrowNavigation(c,d,f));break}case h==="ArrowUp":{const f=zp(e,d);f&&(c.preventDefault(),e.focusItem(c,f),t.multiSelect&&c.shiftKey&&s(f)&&e.selectItemFromArrowNavigation(c,d,f));break}case(h==="ArrowRight"&&!n||h==="ArrowLeft"&&n):{if(p)return;if(e.isItemExpanded(d)){const f=ba(e,d);f&&(e.focusItem(c,f),c.preventDefault())}else l(d)&&(e.toggleItemExpansion(c,d),c.preventDefault());break}case(h==="ArrowLeft"&&!n||h==="ArrowRight"&&n):{if(p)return;if(l(d)&&e.isItemExpanded(d))e.toggleItemExpansion(c,d),c.preventDefault();else{const f=e.getItemMeta(d).parentId;f&&(e.focusItem(c,f),c.preventDefault())}break}case h==="Home":{s(d)&&t.multiSelect&&p&&c.shiftKey?e.selectRangeFromStartToItem(c,d):e.focusItem(c,Io(e)),c.preventDefault();break}case h==="End":{s(d)&&t.multiSelect&&p&&c.shiftKey?e.selectRangeFromItemToEnd(c,d):e.focusItem(c,Wp(e)),c.preventDefault();break}case h==="*":{e.expandAllSiblings(c,d),c.preventDefault();break}case(String.fromCharCode(c.keyCode)==="A"&&p&&t.multiSelect&&!t.disableSelection):{e.selectAllNavigableItems(c),c.preventDefault();break}case(!p&&!c.shiftKey&&Dw(h)):{const f=i(d,h);f!=null&&(e.focusItem(c,f),c.preventDefault());break}}}}}};eh.params={};const th=({slots:e,slotProps:t})=>({contextValue:{icons:{slots:{collapseIcon:e.collapseIcon,expandIcon:e.expandIcon,endIcon:e.endIcon},slotProps:{collapseIcon:t.collapseIcon,expandIcon:t.expandIcon,endIcon:t.endIcon}}}});th.params={};const Bw=[Bo,ui,di,wl,eh,th,Dt],qw=["ownerState"];function Fw({slots:e,slotProps:t,label:r,id:n,itemId:o,itemsToRender:a}){const i=e?.item??sw,s=Gr({elementType:i,externalSlotProps:t?.item,additionalProps:{itemId:o,id:n,label:r},ownerState:{itemId:o,label:r}}),l=mr(s,qw),c=S.useMemo(()=>a?u.jsx(rh,{itemsToRender:a,slots:e,slotProps:t}):null,[a,e,t]);return u.jsx(i,Y({},l,{children:c}))}function rh(e){const{itemsToRender:t,slots:r,slotProps:n}=e;return u.jsx(S.Fragment,{children:t.map(o=>u.jsx(Fw,{slots:r,slotProps:n,label:o.label,id:o.id,itemId:o.itemId,itemsToRender:o.children},o.itemId))})}const zw=Dp(),Ww=e=>{const{classes:t}=e;return $p({root:["root"]},mw,t)},Uw=Te("ul",{name:"MuiRichTreeView",slot:"Root",overridesResolver:(e,t)=>t.root})({padding:0,margin:0,listStyle:"none",outline:0,position:"relative"}),Hw=S.forwardRef(function(e,t){const r=zw({props:e,name:"MuiRichTreeView"}),{getRootProps:n,contextValue:o,instance:a}=Cw({plugins:Bw,rootRef:t,props:r}),{slots:i,slotProps:s}=r,l=Ww(r),c=i?.root??Uw,d=Gr({elementType:c,externalSlotProps:s?.root,className:l.root,getSlotProps:n,ownerState:r});return u.jsx(LS,{value:o,children:u.jsx(c,Y({},d,{children:u.jsx(rh,{slots:i,slotProps:s,itemsToRender:a.getItemsToRender()})}))})}),Vw=Ee(u.jsx("path",{d:"m9.17 6 2 2H20v10H4V6zM10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8z"})),Gw=Ee([u.jsx("path",{d:"M19 5v14H5V5zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2"},"0"),u.jsx("path",{d:"M14 17H7v-2h7zm3-4H7v-2h10zm0-4H7V7h10z"},"1")]),Kw=Ee(u.jsx("path",{d:"M19 15v4H5v-4zm1-2H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1M7 18.5c-.82 0-1.5-.67-1.5-1.5s.68-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5M19 5v4H5V5zm1-2H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1M7 8.5c-.82 0-1.5-.67-1.5-1.5S6.18 5.5 7 5.5s1.5.68 1.5 1.5S7.83 8.5 7 8.5"})),Qw=Ee(u.jsx("path",{d:"M15 4v2h3v12h-3v2h5V4zM4 20h5v-2H6V6h3V4H4z"}));function nh({items:e,defaultExpandedItems:t,navigate:r}){return u.jsx(Hw,{items:eC(e,r),defaultExpandedItems:t,slots:{item:Zw}})}const Yw=Uu.animated(Po);function Xw(e){const t=Uu.useSpring({to:{opacity:e.in?1:0,transform:`translate3d(0,${e.in?0:20}px,0)`}});return u.jsx(Yw,{style:t,...e})}function Jw({item:e,...t}){const r=u.jsxs(pw,{...t,sx:{display:"flex",alignItems:"center",color:e.error?"error.main":"grey.600"},children:[e.fileType==="directory"&&u.jsx(Vw,{})||e.fileType==="notebook"&&u.jsx(Gw,{})||e.fileType==="model"&&u.jsx(Qw,{})||e.fileType=="database"&&u.jsx(Kw,{})||u.jsx(Mp,{}),u.jsx(x.Typography,{variant:"body2",sx:{marginLeft:"5px"},color:e.error?"error.main":e.link?"primary.main":"grey.600",children:e.label})]});return e.error?u.jsx(x.Tooltip,{title:e.error,placement:"right",children:r}):r}const Zw=S.forwardRef(function(e,t){const{id:r,itemId:n,label:o,children:a,disabled:i,...s}=e,{getRootProps:l,getContentProps:c,getLabelProps:d,getIconContainerProps:p,getGroupTransitionProps:h,status:f,publicAPI:g}=WS({id:r,itemId:n,children:a,label:o,disabled:i,rootRef:t}),y=g.getItem(n);return f.selected=!1,f.focused=!1,u.jsx(vl,{itemId:n,children:u.jsxs(uw,{...l(s),children:[u.jsxs(dw,{...c(),...y.link&&{onClick:v=>y.link(v)},sx:{pointerEvents:!y.selectable&&"none"},children:[u.jsx(hw,{...p(),children:u.jsx(lw,{status:f})}),u.jsx(Jw,{...d({item:y})})]}),a&&u.jsx(Xw,{...h()})]})})});function eC(e,t){const r=new Map;return e.map(n=>{let o=r;const a=n.path.split("/");a.forEach((i,s)=>{s===a.length-1?o.set(i,n):(o.has(i)||o.set(i,new Map),o=o.get(i))})}),oh(r,"",t)}function oh(e,t,r){const n=[];return e.forEach((o,a)=>{const i=a.endsWith(".malloy")&&"model"||a.endsWith(".malloynb")&&"notebook"||a.endsWith(".parquet")&&"database"||"unknown";if(i!=="unknown"){const s=o;n.push({id:t+a,label:a,fileType:i,link:i==="model"||i==="notebook"?l=>r(t+a,l):void 0,selectable:i==="model"||i==="notebook",error:"error"in s?s.error:void 0})}else t+=`${a}/`,n.push({id:t,label:a,fileType:"directory",selectable:!0,link:void 0,children:oh(o,t,r)})}),n}const tC=new ai(new ct),rC=["notebooks/","models/"];function nC({navigate:e}){const{projectName:t,packageName:r,versionId:n}=Ft(),{data:o,isError:a,error:i,isSuccess:s}=It({queryKey:["models",t,r,n],queryFn:l=>tC.listModels(t,r,n,l)});return u.jsx(tt,{variant:"outlined",sx:{width:"100%"},children:u.jsxs(kt,{children:[u.jsx(x.Typography,{variant:"overline",fontWeight:"bold",children:"Semantic Models"}),u.jsx(x.Divider,{}),u.jsxs(x.Box,{sx:{maxHeight:"200px",overflowY:"auto"},children:[!s&&!a&&u.jsx(zt,{text:"Fetching Models..."}),a&&u.jsx(Pt,{error:i,context:`${t} > ${r} > Models`}),s&&o.data.length>0&&u.jsx(nh,{items:o.data.sort((l,c)=>l.path.localeCompare(c.path)),navigate:e,defaultExpandedItems:rC}),s&&o.data.length===0&&u.jsx(x.Typography,{variant:"body2",children:"No models found"})]})]})})}const oC=new Md(new ct),aC=["notebooks/"];function iC({navigate:e}){const{projectName:t,packageName:r,versionId:n}=Ft(),{data:o,isError:a,error:i,isSuccess:s}=It({queryKey:["notebooks",t,r,n],queryFn:l=>oC.listNotebooks(t,r,n,l)});return u.jsx(tt,{variant:"outlined",sx:{width:"100%"},children:u.jsxs(kt,{children:[u.jsx(x.Typography,{variant:"overline",fontWeight:"bold",children:"Notebooks"}),u.jsx(x.Divider,{}),u.jsxs(x.Box,{sx:{maxHeight:"200px",overflowY:"auto"},children:[!s&&!a&&u.jsx(zt,{text:"Fetching Notebooks..."}),a&&u.jsx(Pt,{error:i,context:`${t} > ${r} > Notebooks`}),s&&o.data.length>0&&u.jsx(nh,{items:o.data.sort((l,c)=>l.path.localeCompare(c.path)),defaultExpandedItems:aC,navigate:e}),s&&o.data.length===0&&u.jsx(x.Typography,{variant:"body2",children:"No notebooks found"})]})]})})}const sC=new U0(new ct);function lC(){const{projectName:e,packageName:t,versionId:r}=Ft(),{data:n,isError:o,isLoading:a,error:i}=It({queryKey:["schedules",e,t,r],queryFn:s=>sC.listSchedules(e,t,r,s)});return a?u.jsx(zt,{text:"Fetching Schedules..."}):o?u.jsx(Pt,{error:i,context:`${e} > ${t} > Schedules`}):n.data.length?u.jsx(tt,{variant:"outlined",sx:{padding:"10px",width:"100%"},children:u.jsxs(kt,{children:[u.jsx(x.Typography,{variant:"overline",fontWeight:"bold",children:"Scheduler"}),u.jsx(x.Divider,{}),u.jsx(x.Box,{sx:{mt:"10px",maxHeight:"200px",overflowY:"auto"},children:u.jsx(x.TableContainer,{component:x.Paper,children:u.jsxs(x.Table,{sx:{minWidth:300},size:"small",children:[u.jsx(x.TableHead,{children:u.jsxs(x.TableRow,{children:[u.jsx(x.TableCell,{align:"left",children:"Resource"}),u.jsx(x.TableCell,{align:"left",children:"Schedule"}),u.jsx(x.TableCell,{align:"left",children:"Action"}),u.jsx(x.TableCell,{align:"left",children:"Connection"}),u.jsx(x.TableCell,{align:"left",children:"Last Run"}),u.jsx(x.TableCell,{align:"left",children:"Status"})]})}),u.jsx(x.TableBody,{children:n.data.map(s=>u.jsxs(x.TableRow,{sx:{"&:last-child td, &:last-child th":{border:0}},children:[u.jsx(x.TableCell,{align:"left",children:s.resource}),u.jsx(x.TableCell,{align:"left",children:s.schedule}),u.jsx(x.TableCell,{align:"left",children:s.action}),u.jsx(x.TableCell,{align:"left",children:s.connection}),u.jsx(x.TableCell,{align:"left",children:s.lastRunTime?new Date(s.lastRunTime).toLocaleString():"n/a"}),u.jsx(x.TableCell,{align:"left",children:s.lastRunStatus})]},s.resource))})]})})})]})}):null}const cC="README.malloynb";function uC({navigate:e}){return e||(e=t=>{window.location.href=t}),u.jsxs(x.Grid,{container:!0,spacing:2,columns:12,children:[u.jsx(x.Grid,{size:{xs:12,md:4},children:u.jsx(T1,{})}),u.jsx(x.Grid,{size:{xs:12,md:4},children:u.jsx(iC,{navigate:e})}),u.jsx(x.Grid,{size:{xs:12,md:4},children:u.jsx(nC,{navigate:e})}),u.jsx(x.Grid,{size:{xs:12,md:6},children:u.jsx(_1,{})}),u.jsx(x.Grid,{size:{xs:12,md:6},children:u.jsx(N1,{})}),u.jsx(x.Grid,{size:{xs:12,md:12},children:u.jsx(lC,{})}),u.jsx(x.Grid,{size:{xs:12,md:12},children:u.jsx(Tp,{notebookPath:cC,hideEmbeddingIcons:!0})})]})}const ah=_.createContext(void 0),dC=({server:e=`${window.location.protocol}//${window.location.host}/api/v0`,getAccessToken:t,children:r})=>{const n={server:e,getAccessToken:t};return u.jsx(ah.Provider,{value:n,children:r})},Cl=()=>{const e=_.useContext(ah);if(e===void 0)throw new Error("useServer must be used within a ServerProvider");return e},sa=Ee(u.jsx("path",{d:"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})),fu=Ee(u.jsx("path",{d:"m14.06 9.02.92.92L5.92 19H5v-.92zM17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29m-3.6 3.19L3 17.25V21h3.75L17.81 9.94z"}));function pC({cell:e,sourceAndPaths:t,onQueryChange:r,onSourceChange:n}){const o={query:e.value,malloyResult:e.result?JSON.parse(e.result):void 0,malloyQuery:e.queryInfo?JSON.parse(e.queryInfo):void 0,sourceName:e.sourceName,modelPath:e.modelPath};return u.jsx(Pp,{sourceAndPaths:t,existingQuery:o,existingSourceName:e.sourceName,onQueryChange:r,onSourceChange:n})}function hC({cell:e,expandCodeCell:t,expandEmbedding:r,hideEmbeddingIcons:n,editingMalloy:o,editingMarkdown:a,sourceAndPaths:i,onCellChange:s,onClose:l,onEdit:c,onDelete:d,addButtonCallback:p}){const[h,f]=_.useState(t),[g,y]=_.useState(r),[v,b]=_.useState(),[C]=_.useState(),[w,k]=_.useState(mo()),[j,P]=_.useState(!1),[B,F]=_.useState(e.sourceName?i.findIndex(O=>O.sourceInfo.name===e.sourceName):0);_.useEffect(()=>{e.isMarkdown||Jr(e.value,"malloy").then(O=>{b(O)})},[e]);const[L,m]=_.useState(e.value);_.useEffect(()=>{document.documentElement.setAttribute("data-color-mode","light")});const T=mC(O=>{s({...e,value:O})}),[D,$]=_.useState(!1),H=()=>{d(),$(!1)},J=i.length===0,V=()=>{const O=i[B],q=O?.modelPath||e.modelPath||"",oe=O?.sourceInfo.name||e.sourceName||"";s({...e,value:w.query,result:w.malloyResult?JSON.stringify(w.malloyResult):void 0,queryInfo:w.malloyQuery?JSON.stringify(w.malloyQuery):void 0,sourceName:oe,modelPath:q})},ce=u.jsx(x.Tooltip,{title:"Delete Cell",children:u.jsx(x.IconButton,{size:"small",onClick:()=>$(!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"})})})}),K=u.jsxs(x.Dialog,{open:D,onClose:()=>$(!1),children:[u.jsx(x.DialogTitle,{children:"Confirm Delete"}),u.jsx(x.DialogContent,{children:u.jsx(x.Typography,{children:"Are you sure you want to delete this cell?"})}),u.jsxs(x.DialogActions,{children:[u.jsx(x.Button,{onClick:()=>$(!1),children:"Cancel"}),u.jsx(x.Button,{onClick:H,color:"error",children:"Delete"})]})]}),se=e.isMarkdown?u.jsxs(u.Fragment,{children:[a?u.jsx(x.Tooltip,{title:"Save",children:u.jsx(x.IconButton,{size:"small",onClick:l,children:u.jsx(sa,{})})}):u.jsx(x.Tooltip,{title:"Edit",children:u.jsx(x.IconButton,{size:"small",onClick:c,children:u.jsx(fu,{})})}),!a&&ce]}):u.jsxs(u.Fragment,{children:[!o&&u.jsx(x.Tooltip,{title:h?"Hide Code":"View Code",children:u.jsx(x.IconButton,{size:"small",onClick:()=>{f(!h)},children:u.jsx(jp,{})})}),!n&&!o&&e.result&&u.jsx(x.Tooltip,{title:g?"Hide Embedding":"View Embedding",children:u.jsx(x.IconButton,{size:"small",onClick:()=>{y(!g)},children:u.jsx(Oo,{})})}),o&&u.jsx(x.Tooltip,{title:"Save",children:u.jsx(x.IconButton,{size:"small",onClick:()=>{V(),l()},children:u.jsx(sa,{})})}),!o&&u.jsx(x.Tooltip,{title:"Edit",children:u.jsx(x.IconButton,{size:"small",onClick:c,children:u.jsx(fu,{})})}),!o&&ce]}),Z=o||a,X=a?u.jsx(x.Tooltip,{title:"Save",children:u.jsx(x.IconButton,{size:"small",onClick:l,children:u.jsx(sa,{})})}):o?u.jsx(x.Tooltip,{title:"Save",children:u.jsx(x.IconButton,{size:"small",onClick:()=>{V(),l()},children:u.jsx(sa,{})})}):null,U=j&&u.jsx(x.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:[p(!0),p(!1),se]})||X});return u.jsxs(tt,{sx:{position:"relative",marginTop:"5px",marginBottom:"5px",borderWidth:"1.5px",backgroundColor:"#fff",minHeight:"50px"},onMouseEnter:()=>P(!0),onMouseLeave:()=>{P(!1)},children:[U,e.isMarkdown?u.jsx(u.Fragment,{children:a?u.jsx(Gh,{value:L,preview:"edit",autoFocus:!0,onChange:O=>{m(O),T(O)},onBlur:()=>{V(),j||l()}}):u.jsx(x.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:L?u.jsx(x.Box,{onClick:c,sx:{cursor:"pointer"},children:u.jsx(Ns,{children:L})}):u.jsxs(x.Box,{onClick:c,sx:{cursor:"pointer"},children:[u.jsx(x.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"Markdown is empty"}),u.jsx(x.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Click to edit."})]})})}):u.jsxs(u.Fragment,{children:[u.jsx(x.Collapse,{in:g,timeout:"auto",unmountOnExit:!0,children:u.jsx(x.Stack,{sx:{p:"10px",borderRadius:0,flexDirection:"row",justifyContent:"space-between"},children:u.jsx(x.Typography,{component:"div",sx:{fontSize:"12px","& .line":{textWrap:"wrap"}},dangerouslySetInnerHTML:{__html:C}})})}),u.jsx(x.Collapse,{in:h,timeout:"auto",unmountOnExit:!0,children:u.jsx(x.Stack,{sx:{p:"10px",borderRadius:0,flexDirection:"row",justifyContent:"space-between"},children:u.jsx(x.Typography,{component:"div",className:"content",sx:{fontSize:"12px","& .line":{textWrap:"wrap"}},dangerouslySetInnerHTML:{__html:v}})})}),o&&(J?u.jsxs(u.Fragment,{children:[u.jsx(x.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"No Model Imports"}),u.jsx(x.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Please add a model import above."})]}):u.jsx(pC,{sourceAndPaths:i,onQueryChange:O=>{k(O)},cell:e,onSourceChange:F})),!o&&e.result&&u.jsx(tt,{variant:"outlined",sx:{borderRadius:0},children:u.jsx(Ep,{result:e.result,minHeight:300,maxHeight:800})}),!o&&!e.result&&u.jsxs(x.Box,{onClick:c,sx:{cursor:"pointer"},children:[u.jsx(x.Typography,{sx:{p:2,textAlign:"center",variant:"subtitle2",fontWeight:"medium"},children:"Explore is empty"}),u.jsx(x.Typography,{sx:{mb:2,textAlign:"center",variant:"body2"},children:"Click to edit."})]})]}),D&&K]})}function mC(e,t=2e3){const r=_.useRef(void 0);return _.useCallback(n=>{r.current&&clearTimeout(r.current),r.current=setTimeout(()=>{e(n)},t)},[e,t])}const ih=_.createContext(void 0);function sh({children:e,userContext:t,notebookStorage:r}){const n=_.useMemo(()=>({notebookStorage:r,userContext:t}),[r,t]);return u.jsx(ih.Provider,{value:n,children:e})}function lh(){const e=_.useContext(ih);if(!e)throw new Error("useNotebookStorage must be used within a NotebookStorageProvider");return e}const fC=Ee(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"})),gC=Ee(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"})),yC=new ai(new ct);function bC({initialSelectedModels:e,onModelChange:t}){const{projectName:r,packageName:n,versionId:o}=Ft(),{data:a,isLoading:i,isSuccess:s,isError:l,error:c}=It({queryKey:["models",r,n,o],queryFn:b=>yC.listModels(r,n,o,b)}),[d,p]=_.useState(e||[]),[h,f]=_.useState(null);_.useEffect(()=>{p(e||[])},[e]);const g=b=>{const C=d.filter(w=>w!==b);p(C),t(C)},y=b=>{const C=[...d,b];p(C),t(C),f(null)};let v=[];return s&&a?.data&&(v=a.data.filter(b=>!d.includes(b.path)).map(b=>b.path)),l?u.jsx(Pt,{error:c,context:`${r} > ${n} > Model Picker`}):u.jsxs(u.Fragment,{children:[u.jsxs(x.FormControl,{fullWidth:!0,children:[i&&u.jsx(x.Typography,{children:"Loading..."}),u.jsxs(x.Stack,{direction:"row",spacing:1,children:[d.map(b=>u.jsx(x.Chip,{label:b,onDelete:()=>g(b),deleteIcon:u.jsx(fC,{}),sx:{marginBottom:"5px"}},b)),u.jsx(x.Button,{size:"small",startIcon:u.jsx(gC,{}),onClick:b=>f(b.currentTarget),disabled:i||l||v.length===0,children:"Add Model"})]})]}),u.jsxs(x.Menu,{anchorEl:h,open:!!h,onClose:()=>f(null),children:[u.jsx(x.Typography,{variant:"subtitle2",sx:{ml:1},children:"Models"}),u.jsx(x.Divider,{}),v.length===0?u.jsx(x.MenuItem,{disabled:!0,children:"No models available"}):v.map(b=>u.jsx(x.MenuItem,{onClick:()=>y(b),children:u.jsx(x.Typography,{variant:"body2",children:b})},b))]})]})}const xC=new ai(new ct);function vC({notebookPath:e,expandCodeCells:t,expandEmbeddings:r,hideEmbeddingIcons:n}){const o=Fn(),{projectName:a,packageName:i,versionId:s}=Ft(),{server:l,getAccessToken:c}=Cl(),{notebookStorage:d,userContext:p}=lh();if(!a||!i)throw new Error("Project and package must be provided via PubliserPackageProvider");if(!d||!p)throw new Error("Notebook storage and user context must be provided via NotebookStorageProvider");const[h,f]=_.useState(),[g,y]=_.useState(),[v,b]=_.useState(),[C,w]=_.useState([]),[k,j]=_.useState(null),[P,B]=_.useState(null),F=!!k,L=()=>{j(null),B(null)},m=(Z,X)=>{h.insertCell(X,{isMarkdown:Z,value:""}),V(),Z?b(X):y(X),L()},[T,D]=_.useState(!1),$=()=>{D(!0)},H=Z=>{e&&d&&p&&d.deleteNotebook(p,e),D(!1),o(`/${a}/${i}`,Z)},J=()=>{D(!1)},V=_.useCallback(()=>{f(h.saveNotebook())},[h]);if(_.useEffect(()=>{h&&(async()=>{const Z=new Map(C.map(({modelPath:O,sourceInfos:q})=>[O,q])),X=[],U=[];for(const O of h.getModels())Z.has(O)?X.push({modelPath:O,sourceInfos:Z.get(O)}):(console.log("Fetching model from Publisher",O),U.push(xC.getModel(a,i,O,s,await hl(l,c)).then(q=>({modelPath:O,sourceInfos:q.data.sourceInfos.map(oe=>JSON.parse(oe))}))));if(U.length>0){const O=await Promise.all(U);w([...X,...O])}else w(X)})()},[c,h,i,a,l,s]),_.useEffect(()=>{e&&f(fo.loadNotebook(d,p,e))},[e,d,p]),!h)return u.jsx("div",{children:"Loading..."});const ce=Z=>{const X=[];for(const U of Z)for(const O of U.sourceInfos)X.push({modelPath:U.modelPath,sourceInfo:O});return X},K=(Z,X)=>u.jsx(x.Button,{size:"small",startIcon:u.jsx(j1,{}),onClick:()=>m(Z,X),variant:"contained",sx:{backgroundColor:"#fff",color:U=>U.palette.mode==="dark"?U.palette.grey[100]:U.palette.grey[700],boxShadow:"none","&:hover":{backgroundColor:U=>U.palette.mode==="dark"?U.palette.grey[500]:U.palette.grey[300],boxShadow:"none"}},children:Z?"Markdown":"Explore"}),se=u.jsxs(x.Box,{sx:{display:"flex",gap:1,justifyContent:"center",flex:2},children:[K(!1,h.getCells().length),K(!0,h.getCells().length)]});return u.jsxs(tt,{variant:"outlined",children:[u.jsxs(kt,{children:[u.jsxs(yn,{sx:{flexDirection:"row",justifyContent:"space-between",alignItems:"center"},children:[u.jsxs(yn,{direction:"row",spacing:1,alignItems:"center",children:[u.jsx(x.Typography,{variant:"overline",sx:{fontSize:"13px",fontWeight:"bold",verticalAlign:"middle"},children:"Workbook"}),u.jsx(x.Typography,{variant:"subtitle2",sx:{fontSize:"13px",fontWeight:"normal",verticalAlign:"middle",ml:1},children:`${a} > ${i} > ${e}`})]}),u.jsxs(yn,{sx:{display:"flex",flexDirection:"row",gap:1},children:[u.jsx(x.Box,{sx:{display:"flex",alignItems:"center",mt:1,mb:1},children:u.jsx(SC,{notebookData:h})}),u.jsxs(x.Box,{sx:{display:"flex",alignItems:"center",mt:1,mb:1},children:[u.jsx(x.Button,{color:"error",onClick:$,size:"small",children:"Delete"}),u.jsxs(x.Dialog,{open:T,onClose:J,children:[u.jsx(x.DialogTitle,{children:"Delete Notebook"}),u.jsx(x.DialogContent,{children:u.jsxs(x.DialogContentText,{children:['Are you sure you want to delete the notebook "',e,'"? This action cannot be undone.']})}),u.jsxs(x.DialogActions,{children:[u.jsx(x.Button,{onClick:J,color:"primary",size:"small",children:"Cancel"}),u.jsx(x.Button,{onClick:Z=>H(Z),color:"error",autoFocus:!0,size:"small",children:"Delete"})]})]})]})]})]}),u.jsx(x.Divider,{}),u.jsxs(yn,{sx:{display:"flex",flexDirection:"row",width:"100%",mt:2},children:[u.jsx(x.Box,{sx:{flex:1},children:u.jsx(bC,{initialSelectedModels:h.getModels(),onModelChange:Z=>{f(h.setModels(Z)),V()}})}),u.jsx(x.Box,{sx:{flex:1}})]})]}),u.jsx(ci,{children:u.jsxs(yn,{children:[h.getCells().length===0&&u.jsxs(u.Fragment,{children:[u.jsx(x.Typography,{sx:{textAlign:"center",p:2,variant:"subtitle2",fontWeight:"medium"},children:"Workbook is empty"}),u.jsx(x.Typography,{variant:"body2",sx:{textAlign:"center",mb:2,variant:"body2"},children:"Click the + buttons to add a markdown or code cell."})]}),h.getCells().map((Z,X)=>u.jsx(_.Fragment,{children:u.jsx(hC,{cell:Z,addButtonCallback:U=>K(U,X),sourceAndPaths:ce(C),expandCodeCell:t,expandEmbedding:r,hideEmbeddingIcons:n,editingMarkdown:v===X,editingMalloy:g===X,onDelete:()=>{f(h.deleteCell(X)),V()},onCellChange:U=>{f(h.setCell(X,U)),V()},onEdit:()=>{Z.isMarkdown?b(X):y(X)},onClose:()=>{Z.isMarkdown?b(void 0):y(void 0)}},`${X}-${Z.isMarkdown}-${e}-${a}-${i}`)},`${X}-${h.getCells().length}`)),se,u.jsxs(x.Menu,{anchorEl:k,open:F,onClose:L,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},children:[u.jsx(x.MenuItem,{onClick:()=>m(!0,P??0),children:"Add Markdown"}),u.jsx(x.MenuItem,{onClick:()=>m(!1,P??0),children:"Add Malloy"})]}),u.jsx(yn,{sx:{flexDirection:"row",justifyContent:"flex-end",p:1}})]})})]})}function SC({notebookData:e}){const[t,r]=_.useState(!1);return u.jsx(x.Button,{color:"primary",onClick:async()=>{if(!e)return;const n=e.toMalloyNotebook();try{await navigator.clipboard.writeText(n),r(!0),setTimeout(()=>r(!1),1500)}catch{r(!1),alert("Failed to copy to clipboard")}},size:"small",children:t?"Copied!":"Export"})}function wC({onNotebookClick:e}){const{notebookStorage:t,userContext:r}=lh(),[n,o]=_.useState([]);return _.useEffect(()=>{t&&r&&o(t.listNotebooks(r))},[t,r]),u.jsxs(u.Fragment,{children:[u.jsx(x.Divider,{}),u.jsx(x.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(x.List,{dense:!0,children:[n.length===0&&u.jsx(x.ListItem,{children:u.jsx(x.ListItemText,{primary:"No notebooks found.",sx:{textAlign:"center"}})}),n.map(a=>u.jsx(x.ListItem,{onClick:i=>e(a,i),sx:{cursor:"pointer","&:hover":{backgroundColor:"action.hover"}},children:u.jsx(x.ListItemText,{primary:a})},a))]})})]})}const CC=new Ad(new ct);function kC(){const{projectName:e}=uh(),{data:t,isSuccess:r,isError:n,error:o}=It({queryKey:["about",e],queryFn:a=>CC.getProject(e,!1,a)});return u.jsxs(u.Fragment,{children:[!r&&!n&&u.jsx(zt,{text:"Fetching About..."}),r&&u.jsxs(tt,{variant:"outlined",sx:{p:2},children:[u.jsx(x.Typography,{variant:"overline",fontWeight:"bold",sx:{mb:1},children:"Readme"}),u.jsx(tt,{sx:{p:1},children:u.jsx(Ns,{children:t.data.readme})})]}),n&&u.jsx(Pt,{error:o,context:`${e} > About`})]})}const PC=new Nd(new ct);function IC({navigate:e}){const{projectName:t}=uh(),{data:r,isSuccess:n,isError:o,error:a}=It({queryKey:["packages",t],queryFn:i=>PC.listPackages(t,i)});return u.jsxs(u.Fragment,{children:[!n&&!o&&u.jsx(zt,{text:"Fetching Packages..."}),n&&u.jsxs(tt,{variant:"outlined",sx:{p:2},children:[u.jsx(x.Typography,{variant:"overline",fontWeight:"bold",sx:{mb:1},children:"Packages"}),u.jsx(x.Grid,{container:!0,spacing:2,columns:12,children:r.data.sort((i,s)=>i.name.localeCompare(s.name)).map(i=>u.jsx(x.Grid,{size:{xs:12,sm:12,md:12,lg:4},children:u.jsx(tt,{variant:"outlined",sx:{cursor:"pointer",transition:"all 0.2s ease-in-out","&:hover":{boxShadow:"0 4px 12px rgba(0, 0, 0, 0.1)",transform:"translateY(-2px)"}},onClick:s=>e(i.name+"/",s),children:u.jsxs(kt,{children:[u.jsx(x.Typography,{variant:"overline",color:"primary.main",children:i.name}),u.jsx(x.Box,{sx:{maxHeight:"120px",overflowY:"auto"},children:u.jsx(x.Typography,{variant:"body2",children:i.description})})]})})},i.name))})]}),o&&u.jsx(Pt,{error:a,context:`${t} > Packages`})]})}const ch=_.createContext(void 0);function uh(){const e=_.useContext(ch);if(!e)throw new Error("useProject must be used within a ProjectProvider");return e}function jC({children:e,projectName:t}){return u.jsx(ch.Provider,{value:{projectName:t},children:e})}function EC({navigate:e}){return u.jsxs(x.Grid,{container:!0,spacing:2,columns:12,children:[u.jsx(x.Grid,{size:{xs:12,md:12},children:u.jsx(IC,{navigate:e})}),u.jsx(x.Grid,{size:{xs:12,md:12},children:u.jsx(kC,{})})]})}const TC=Ee(u.jsx("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2M8 17c-.55 0-1-.45-1-1v-3c0-.55.45-1 1-1s1 .45 1 1v3c0 .55-.45 1-1 1m4 0c-.55 0-1-.45-1-1v-1c0-.55.45-1 1-1s1 .45 1 1v1c0 .55-.45 1-1 1m0-5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1m4 5c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v8c0 .55-.45 1-1 1"})),RC=Ee(u.jsx("path",{d:"M5 13h11.17l-4.88 4.88c-.39.39-.39 1.03 0 1.42s1.02.39 1.41 0l6.59-6.59c.39-.39.39-1.02 0-1.41l-6.58-6.6a.996.996 0 0 0-1.41 0c-.39.39-.39 1.02 0 1.41L16.17 11H5c-.55 0-1 .45-1 1s.45 1 1 1"})),gu=Ee(u.jsx("path",{d:"m19.46 8 .79-1.75L22 5.46c.39-.18.39-.73 0-.91l-1.75-.79L19.46 2c-.18-.39-.73-.39-.91 0l-.79 1.75-1.76.79c-.39.18-.39.73 0 .91l1.75.79.79 1.76c.18.39.74.39.92 0M11.5 9.5 9.91 6c-.35-.78-1.47-.78-1.82 0L6.5 9.5 3 11.09c-.78.36-.78 1.47 0 1.82l3.5 1.59L8.09 18c.36.78 1.47.78 1.82 0l1.59-3.5 3.5-1.59c.78-.36.78-1.47 0-1.82zm7.04 6.5-.79 1.75-1.75.79c-.39.18-.39.73 0 .91l1.75.79.79 1.76c.18.39.73.39.91 0l.79-1.75 1.76-.79c.39-.18.39-.73 0-.91l-1.75-.79-.79-1.76c-.18-.39-.74-.39-.92 0"})),MC=Ee(u.jsx("path",{d:"M8.7 15.9 4.8 12l3.9-3.9c.39-.39.39-1.01 0-1.4a.984.984 0 0 0-1.4 0l-4.59 4.59c-.39.39-.39 1.02 0 1.41l4.59 4.6c.39.39 1.01.39 1.4 0s.39-1.01 0-1.4m6.6 0 3.9-3.9-3.9-3.9a.984.984 0 0 1 0-1.4c.39-.39 1.01-.39 1.4 0l4.59 4.59c.39.39.39 1.02 0 1.41l-4.59 4.6c-.39.39-1.01.39-1.4 0a.984.984 0 0 1 0-1.4"})),NC=Ee(u.jsx("path",{d:"M12 10.9c-.61 0-1.1.49-1.1 1.1s.49 1.1 1.1 1.1 1.1-.49 1.1-1.1-.49-1.1-1.1-1.1M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m2.19 12.19L6 18l3.81-8.19L18 6z"})),AC=Ee([u.jsx("path",{d:"M13 8.57c-.79 0-1.43.64-1.43 1.43s.64 1.43 1.43 1.43 1.43-.64 1.43-1.43-.64-1.43-1.43-1.43"},"0"),u.jsx("path",{d:"M13.21 3c-3.84-.11-7 2.87-7.19 6.64L4.1 12.2c-.25.33-.01.8.4.8H6v3c0 1.1.9 2 2 2h1v2c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-3.68c2.44-1.16 4.1-3.68 4-6.58-.14-3.62-3.18-6.63-6.79-6.74M16 10c0 .13-.01.26-.02.39l.83.66c.08.06.1.16.05.25l-.8 1.39c-.05.09-.16.12-.24.09l-.99-.4c-.21.16-.43.29-.67.39L14 13.83c-.01.1-.1.17-.2.17h-1.6c-.1 0-.18-.07-.2-.17l-.15-1.06c-.25-.1-.47-.23-.68-.39l-.99.4c-.09.03-.2 0-.25-.09l-.8-1.39c-.05-.08-.03-.19.05-.25l.84-.66c-.01-.13-.02-.26-.02-.39s.02-.27.04-.39l-.85-.66c-.08-.06-.1-.16-.05-.26l.8-1.38c.05-.09.15-.12.24-.09l1 .4c.2-.15.43-.29.67-.39L12 6.17c.02-.1.1-.17.2-.17h1.6c.1 0 .18.07.2.17l.15 1.06c.24.1.46.23.67.39l1-.4c.09-.03.2 0 .24.09l.8 1.38c.05.09.03.2-.05.26l-.85.66c.03.12.04.25.04.39"},"1")]),yu=Ee(u.jsx("path",{d:"M4 20h16c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2s.9 2 2 2m0-3h2v2H4zM2 6c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2m4 1H4V5h2zm-2 7h16c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2s.9 2 2 2m0-3h2v2H4z"})),_C=new Ad(new ct),OC=e=>{if(!e)return"Explore semantic models, run queries, and build dashboards";const t=e.replace(/^#+\s+/gm,"").replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/`([^`]+)`/g,"$1").trim(),r=t.split(/\n\s*\n/)[0]||t;if(r.length<=120)return r;const n=r.substring(0,120).split(" ");return n.pop(),n.join(" ")+"..."};function LC({navigate:e}){const{data:t,isSuccess:r,isError:n,error:o}=It({queryKey:["projects"],queryFn:a=>_C.listProjects(a)});return n?u.jsx(Pt,{error:o,context:"Projects List"}):r?u.jsxs(x.Container,{maxWidth:"lg",sx:{py:4},children:[u.jsxs(x.Box,{sx:{textAlign:"center",mb:6},children:[u.jsxs(x.Stack,{direction:"row",justifyContent:"center",alignItems:"center",spacing:1,sx:{mb:2},children:[u.jsx(gu,{sx:{fontSize:32,color:"primary.main"}}),u.jsx(x.Typography,{variant:"h3",component:"h1",fontWeight:700,children:"Publisher"})]}),u.jsx(x.Typography,{variant:"h5",color:"text.secondary",sx:{mb:3,maxWidth:600,mx:"auto"},children:"The open-source semantic model server for the Malloy data language"}),u.jsx(x.Typography,{variant:"body1",color:"text.secondary",sx:{maxWidth:800,mx:"auto"},children:"Define semantic models once — and use them everywhere. Publisher serves Malloy models through clean APIs, enabling consistent, interpretable, and AI-ready data access for tools, applications, and agents."})]}),u.jsxs(x.Grid,{container:!0,spacing:3,sx:{mb:6},children:[u.jsx(x.Grid,{size:{xs:12,md:4},children:u.jsx(x.Card,{variant:"outlined",onClick:()=>{window.open("https://github.com/malloydata/publisher/blob/main/README.md#ad-hoc-data-analysis","_blank")},sx:{height:"100%",cursor:"pointer",transition:"all 0.2s ease","&:hover":{transform:"translateY(-2px)",boxShadow:2}},children:u.jsxs(x.CardContent,{sx:{p:3},children:[u.jsxs(x.Stack,{direction:"row",alignItems:"center",spacing:1,sx:{mb:2},children:[u.jsx(TC,{sx:{color:"info.main",fontSize:28}}),u.jsx(x.Typography,{variant:"h6",fontWeight:600,children:"Ad Hoc Analysis"})]}),u.jsx(x.Typography,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Use Explorer, a visual query builder that allows analysts to browse semantic sources, build queries, and run nested logic — all without writing code."}),u.jsx(x.Chip,{label:"No-code",size:"small",color:"primary",variant:"outlined"})]})})}),u.jsx(x.Grid,{size:{xs:12,md:4},children:u.jsx(x.Card,{variant:"outlined",onClick:()=>{window.open("https://github.com/malloydata/publisher/blob/main/README.md#notebook-based-dashboards","_blank")},sx:{height:"100%",cursor:"pointer",transition:"all 0.2s ease","&:hover":{transform:"translateY(-2px)",boxShadow:2}},children:u.jsxs(x.CardContent,{sx:{p:3},children:[u.jsxs(x.Stack,{direction:"row",alignItems:"center",spacing:1,sx:{mb:2},children:[u.jsx(MC,{sx:{color:"warning.main",fontSize:28}}),u.jsx(x.Typography,{variant:"h6",fontWeight:600,children:"Notebook Dashboards"})]}),u.jsx(x.Typography,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Create shareable, code-first dashboards using Malloy notebooks. Include text, charts, and reusable views — all versioned alongside your models."}),u.jsx(x.Chip,{label:"Versioned",size:"small",color:"warning",variant:"outlined"})]})})}),u.jsx(x.Grid,{size:{xs:12,md:4},children:u.jsx(x.Card,{variant:"outlined",onClick:()=>{window.open("https://github.com/malloydata/publisher/blob/main/README.md#mcp-based-ai-data-agents","_blank")},sx:{height:"100%",cursor:"pointer",transition:"all 0.2s ease","&:hover":{transform:"translateY(-2px)",boxShadow:2}},children:u.jsxs(x.CardContent,{sx:{p:3},children:[u.jsxs(x.Stack,{direction:"row",alignItems:"center",spacing:1,sx:{mb:2},children:[u.jsx(AC,{sx:{color:"success.main",fontSize:28}}),u.jsx(x.Typography,{variant:"h6",fontWeight:600,children:"AI Data Agents"})]}),u.jsx(x.Typography,{variant:"body2",color:"text.secondary",sx:{mb:2},children:"Expose your semantic models via the Model Context Protocol (MCP), enabling AI agents to discover sources and ask well-formed questions."}),u.jsx(x.Chip,{label:"AI-Ready",size:"small",color:"success",variant:"outlined"})]})})})]}),u.jsx(x.Divider,{sx:{my:4}}),t.data.length>0?u.jsxs(u.Fragment,{children:[u.jsxs(x.Box,{sx:{textAlign:"center",mb:4},children:[u.jsxs(x.Stack,{direction:"row",justifyContent:"center",alignItems:"center",spacing:1,sx:{mb:2},children:[u.jsx(yu,{sx:{color:"primary.main",fontSize:24}}),u.jsx(x.Typography,{variant:"h4",fontWeight:600,children:"Select a Project"})]}),u.jsx(x.Typography,{variant:"body1",color:"text.secondary",children:"Choose a project to explore its semantic models and start analyzing your data"})]}),u.jsx(x.Grid,{container:!0,spacing:3,justifyContent:"center",children:t.data.map(a=>u.jsx(x.Grid,{size:{xs:12,sm:6,md:4},children:u.jsx(x.Card,{variant:"outlined",sx:{height:"100%",cursor:"pointer",transition:"all 0.2s ease","&:hover":{transform:"translateY(-2px)",boxShadow:2,borderColor:"primary.main"}},onClick:i=>e(`/${a.name}/`,i),children:u.jsxs(x.CardContent,{sx:{p:3,textAlign:"center"},children:[u.jsx(NC,{sx:{fontSize:48,color:"primary.main",mb:2}}),u.jsx(x.Typography,{variant:"h6",fontWeight:600,gutterBottom:!0,children:a.name}),u.jsx(x.Typography,{variant:"body2",color:"text.secondary",sx:{mb:2},children:OC(a.readme)}),u.jsx(x.Button,{variant:"contained",color:"secondary",endIcon:u.jsx(RC,{}),fullWidth:!0,children:"Open Project"})]})})},a.name))})]}):u.jsxs(x.Box,{sx:{textAlign:"center",mb:4},children:[u.jsxs(x.Stack,{direction:"row",justifyContent:"center",alignItems:"center",spacing:1,sx:{mb:2},children:[u.jsx(yu,{sx:{color:"primary.main",fontSize:24}}),u.jsx(x.Typography,{variant:"h4",fontWeight:600,children:"Get Started"})]}),u.jsx(x.Typography,{variant:"body1",color:"text.secondary",sx:{mb:3},children:"No projects found. Create your first Malloy project to start exploring semantic models and building data experiences."}),u.jsx(x.Button,{variant:"contained",size:"large",color:"primary",startIcon:u.jsx(gu,{}),href:"https://github.com/malloydata/publisher/blob/main/README.md#server-configuration",target:"_blank",rel:"noopener noreferrer",children:"Learn How to Create Models"})]}),u.jsx(x.Box,{sx:{textAlign:"center",mt:6,pt:4,borderTop:1,borderColor:"divider"},children:u.jsxs(x.Typography,{variant:"body2",color:"text.secondary",children:["Publisher is built on fully open infrastructure and designed for the AI era. Join the"," ",u.jsx("a",{href:"https://join.slack.com/t/malloy-community/shared_invite/zt-1kgfwgi5g-CrsdaRqs81QY67QW0~t_uw",target:"_blank",rel:"noopener noreferrer",style:{color:"primary.main",textDecoration:"underline"},children:"Malloy Slack community"})," ","to ask questions, share ideas, and contribute to the future of data modeling."]})})]}):u.jsx(zt,{text:"Loading projects..."})}function $C(){const{projectName:e,packageName:t}=on(),[r,n]=_.useState(""),[o,a]=_.useState(null),[i,s]=_.useState(!1),[l,c]=_.useState(!1),d=Fn(),p=!!o,h=C=>{a(C.currentTarget)},f=()=>{a(null)},g=()=>{c(!1)},y=()=>{s(!1)},v=(C,w)=>{c(!1),d(`/${e}/${t}/scratchNotebook/${encodeURIComponent(C)}`,w)},b=C=>{s(!1),d(`/${e}/${t}/scratchNotebook/${encodeURIComponent(r)}`,C),n("")};return!e||!t?null:u.jsxs(u.Fragment,{children:[u.jsx(x.Button,{"aria-controls":p?"basic-menu":void 0,"aria-haspopup":"true","aria-expanded":p?"true":void 0,onClick:h,variant:"contained",sx:{height:"40px",px:2,backgroundColor:"#fbbb04","&:hover":{backgroundColor:"#eab308"}},children:"Analyze Package"}),u.jsxs(x.Menu,{id:"basic-menu",anchorEl:o,open:p,onClose:f,MenuListProps:{"aria-labelledby":"basic-button",sx:{py:.5}},children:[u.jsxs(x.MenuItem,{onClick:()=>{s(!0),f()},sx:{py:1,px:2},children:[u.jsx(x.ListItemIcon,{children:u.jsx(yo.Add,{fontSize:"small"})}),u.jsxs(x.ListItemText,{children:[u.jsx(x.Typography,{variant:"body2",fontWeight:500,children:"New Workbook"}),u.jsx(x.Typography,{variant:"caption",color:"text.secondary",children:"Create a new analysis workbook"})]})]}),u.jsxs(x.MenuItem,{onClick:()=>{c(!0),f()},sx:{py:1,px:2},children:[u.jsx(x.ListItemIcon,{children:u.jsx(yo.Launch,{fontSize:"small"})}),u.jsxs(x.ListItemText,{children:[u.jsx(x.Typography,{variant:"body2",fontWeight:500,children:"Open Workbook"}),u.jsx(x.Typography,{variant:"caption",color:"text.secondary",children:"Open an existing workbook"})]})]})]}),u.jsxs(x.Dialog,{open:i,onClose:y,maxWidth:"sm",fullWidth:!0,children:[u.jsxs(x.DialogTitle,{sx:{pb:1,pt:2,px:2},children:[u.jsx(x.Typography,{variant:"h6",fontWeight:600,sx:{mb:.5},children:"Create New Workbook"}),u.jsx(x.Typography,{variant:"body2",color:"text.secondary",children:"Start a new analysis workbook to explore your data"})]}),u.jsx(x.DialogContent,{sx:{px:2,pb:2},children:u.jsxs(x.Stack,{spacing:2,sx:{mt:1},children:[u.jsx(x.FormControl,{fullWidth:!0,children:u.jsx(x.TextField,{label:"Workbook Name",value:r,onChange:C=>n(C.target.value),placeholder:"Enter workbook name...",fullWidth:!0,autoFocus:!0,size:"small"})}),u.jsxs(x.Stack,{direction:"row",spacing:1,justifyContent:"flex-end",children:[u.jsx(x.Button,{onClick:y,variant:"outlined",size:"small",children:"Cancel"}),u.jsx(x.Button,{onClick:C=>b(C),variant:"contained",disabled:!r.trim(),size:"small",children:"Create Workbook"})]})]})})]}),u.jsxs(x.Dialog,{open:l,onClose:g,maxWidth:"md",fullWidth:!0,children:[u.jsxs(x.DialogTitle,{sx:{pb:1,pt:2,px:2},children:[u.jsx(x.Typography,{variant:"h6",fontWeight:600,sx:{mb:.5},children:"Open Workbook"}),u.jsx(x.Typography,{variant:"body2",color:"text.secondary",children:"Select an existing workbook to continue your analysis"})]}),u.jsx(x.DialogContent,{sx:{px:2,pb:2},children:u.jsx(sh,{notebookStorage:new Rp,userContext:{project:e,package:t},children:u.jsx(wC,{onNotebookClick:v})})})]})]})}new Rd(new ct);Be.defaults.baseURL="IfYouAreSeeingThis_baseURL_IsNotSet";function Zr(e,...t){const r=new URL(`https://mui.com/production-error/?code=${e}`);return t.forEach(n=>r.searchParams.append("args[]",n)),`Minified MUI error #${e}; visit ${r} for the full message.`}const Yr="$$material",DC=e=>{const t=Object.keys(e).map(r=>({key:r,val:e[r]}))||[];return t.sort((r,n)=>r.val-n.val),t.reduce((r,n)=>({...r,[n.key]:n.val}),{})};function BC(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:r="px",step:n=5,...o}=e,a=DC(t),i=Object.keys(a);function s(h){return`@media (min-width:${typeof t[h]=="number"?t[h]:h}${r})`}function l(h){return`@media (max-width:${(typeof t[h]=="number"?t[h]:h)-n/100}${r})`}function c(h,f){const g=i.indexOf(f);return`@media (min-width:${typeof t[h]=="number"?t[h]:h}${r}) and (max-width:${(g!==-1&&typeof t[i[g]]=="number"?t[i[g]]:f)-n/100}${r})`}function d(h){return i.indexOf(h)+1<i.length?c(h,i[i.indexOf(h)+1]):s(h)}function p(h){const f=i.indexOf(h);return f===0?s(i[1]):f===i.length-1?l(i[f]):c(h,i[i.indexOf(h)+1]).replace("@media","@media not all and")}return{keys:i,values:a,up:s,down:l,between:c,only:d,not:p,unit:r,...o}}var Hi={exports:{}},ve={};/**
|
|
152
152
|
* @license React
|
|
153
153
|
* react-is.production.js
|
|
154
154
|
*
|
|
@@ -236,7 +236,7 @@ export default theme;`}function Cs(e={},...t){const{breakpoints:r,mixins:n={},sp
|
|
|
236
236
|
animation-iteration-count: infinite;
|
|
237
237
|
animation-delay: 200ms;
|
|
238
238
|
}
|
|
239
|
-
`,FI=S.forwardRef(function(t,r){const n=Or({props:t,name:"MuiTouchRipple"}),{center:o=!1,classes:a={},className:i,...s}=n,[l,c]=S.useState([]),d=S.useRef(0),p=S.useRef(null);S.useEffect(()=>{p.current&&(p.current(),p.current=null)},[l]);const h=S.useRef(!1),f=AI(),g=S.useRef(null),y=S.useRef(null),v=S.useCallback(k=>{const{pulsate:j,rippleX:P,rippleY:B,rippleSize:F,cb:L}=k;c(m=>[...m,u.jsx(qI,{classes:{ripple:at(a.ripple,_t.ripple),rippleVisible:at(a.rippleVisible,_t.rippleVisible),ripplePulsate:at(a.ripplePulsate,_t.ripplePulsate),child:at(a.child,_t.child),childLeaving:at(a.childLeaving,_t.childLeaving),childPulsate:at(a.childPulsate,_t.childPulsate)},timeout:Es,pulsate:j,rippleX:P,rippleY:B,rippleSize:F},d.current)]),d.current+=1,p.current=L},[a]),b=S.useCallback((k={},j={},P=()=>{})=>{const{pulsate:B=!1,center:F=o||j.pulsate,fakeElement:L=!1}=j;if(k?.type==="mousedown"&&h.current){h.current=!1;return}k?.type==="touchstart"&&(h.current=!0);const m=L?null:y.current,T=m?m.getBoundingClientRect():{width:0,height:0,left:0,top:0};let D,$,H;if(F||k===void 0||k.clientX===0&&k.clientY===0||!k.clientX&&!k.touches)D=Math.round(T.width/2),$=Math.round(T.height/2);else{const{clientX:J,clientY:V}=k.touches&&k.touches.length>0?k.touches[0]:k;D=Math.round(J-T.left),$=Math.round(V-T.top)}if(F)H=Math.sqrt((2*T.width**2+T.height**2)/3),H%2===0&&(H+=1);else{const J=Math.max(Math.abs((m?m.clientWidth:0)-D),D)*2+2,V=Math.max(Math.abs((m?m.clientHeight:0)-$),$)*2+2;H=Math.sqrt(J**2+V**2)}k?.touches?g.current===null&&(g.current=()=>{v({pulsate:B,rippleX:D,rippleY:$,rippleSize:H,cb:P})},f.start(OI,()=>{g.current&&(g.current(),g.current=null)})):v({pulsate:B,rippleX:D,rippleY:$,rippleSize:H,cb:P})},[o,v,f]),C=S.useCallback(()=>{b({},{pulsate:!0})},[b]),w=S.useCallback((k,j)=>{if(f.clear(),k?.type==="touchend"&&g.current){g.current(),g.current=null,f.start(0,()=>{w(k,j)});return}g.current=null,c(P=>P.length>0?P.slice(1):P),p.current=j},[f]);return S.useImperativeHandle(r,()=>({pulsate:C,start:b,stop:w}),[C,b,w]),u.jsx(BI,{className:at(_t.root,a.root,i),ref:y,...s,children:u.jsx(Ol,{component:null,exit:!0,children:l})})});function zI(e){return ln("MuiButtonBase",e)}const WI=cn("MuiButtonBase",["root","disabled","focusVisible"]),UI=e=>{const{disabled:t,focusVisible:r,focusVisibleClassName:n,classes:o}=e,i=zn({root:["root",t&&"disabled",r&&"focusVisible"]},zI,o);return r&&n&&(i.root+=` ${n}`),i},HI=ut("button",{name:"MuiButtonBase",slot:"Root"})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${WI.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),Eh=S.forwardRef(function(t,r){const n=Or({props:t,name:"MuiButtonBase"}),{action:o,centerRipple:a=!1,children:i,className:s,component:l="button",disabled:c=!1,disableRipple:d=!1,disableTouchRipple:p=!1,focusRipple:h=!1,focusVisibleClassName:f,LinkComponent:g="a",onBlur:y,onClick:v,onContextMenu:b,onDragLeave:C,onFocus:w,onFocusVisible:k,onKeyDown:j,onKeyUp:P,onMouseDown:B,onMouseLeave:F,onMouseUp:L,onTouchEnd:m,onTouchMove:T,onTouchStart:D,tabIndex:$=0,TouchRippleProps:H,touchRippleRef:J,type:V,...ce}=n,K=S.useRef(null),se=SI(),Z=ks(se.ref,J),[X,U]=S.useState(!1);c&&X&&U(!1),S.useImperativeHandle(o,()=>({focusVisible:()=>{U(!0),K.current.focus()}}),[]);const O=se.shouldMount&&!d&&!c;S.useEffect(()=>{X&&h&&!d&&se.pulsate()},[d,h,X,se]);const q=cr(se,"start",B,p),oe=cr(se,"stop",b,p),Pe=cr(se,"stop",C,p),it=cr(se,"stop",L,p),ht=cr(se,"stop",ne=>{X&&ne.preventDefault(),F&&F(ne)},p),Ae=cr(se,"start",D,p),_e=cr(se,"stop",m,p),jt=cr(se,"stop",T,p),xr=cr(se,"stop",ne=>{$u(ne.target)||U(!1),y&&y(ne)},!1),Ut=Sa(ne=>{K.current||(K.current=ne.currentTarget),$u(ne.target)&&(U(!0),k&&k(ne)),w&&w(ne)}),dt=()=>{const ne=K.current;return l&&l!=="button"&&!(ne.tagName==="A"&&ne.href)},Lr=Sa(ne=>{h&&!ne.repeat&&X&&ne.key===" "&&se.stop(ne,()=>{se.start(ne)}),ne.target===ne.currentTarget&&dt()&&ne.key===" "&&ne.preventDefault(),j&&j(ne),ne.target===ne.currentTarget&&dt()&&ne.key==="Enter"&&!c&&(ne.preventDefault(),v&&v(ne))}),Qt=Sa(ne=>{h&&ne.key===" "&&X&&!ne.defaultPrevented&&se.stop(ne,()=>{se.pulsate(ne)}),P&&P(ne),v&&ne.target===ne.currentTarget&&dt()&&ne.key===" "&&!ne.defaultPrevented&&v(ne)});let ot=l;ot==="button"&&(ce.href||ce.to)&&(ot=g);const Ht={};ot==="button"?(Ht.type=V===void 0?"button":V,Ht.disabled=c):(!ce.href&&!ce.to&&(Ht.role="button"),c&&(Ht["aria-disabled"]=c));const vr=ks(r,K),Sr={...n,centerRipple:a,component:l,disabled:c,disableRipple:d,disableTouchRipple:p,focusRipple:h,tabIndex:$,focusVisible:X},ae=UI(Sr);return u.jsxs(HI,{as:ot,className:at(ae.root,s),ownerState:Sr,onBlur:xr,onClick:v,onContextMenu:oe,onFocus:Ut,onKeyDown:Lr,onKeyUp:Qt,onMouseDown:q,onMouseLeave:ht,onMouseUp:it,onDragLeave:Pe,onTouchEnd:_e,onTouchMove:jt,onTouchStart:Ae,ref:vr,tabIndex:c?-1:$,type:V,...Ht,...ce,children:[i,O?u.jsx(FI,{ref:Z,center:a,...H}):null]})});function cr(e,t,r,n=!1){return Sa(o=>(r&&r(o),n||e[t](o),!0))}const VI=ut(Eh)(tn(({theme:e})=>({display:"flex",marginLeft:`calc(${e.spacing(1)} * 0.5)`,marginRight:`calc(${e.spacing(1)} * 0.5)`,...e.palette.mode==="light"?{backgroundColor:e.palette.grey[100],color:e.palette.grey[700]}:{backgroundColor:e.palette.grey[700],color:e.palette.grey[100]},borderRadius:2,"&:hover, &:focus":{...e.palette.mode==="light"?{backgroundColor:e.palette.grey[200]}:{backgroundColor:e.palette.grey[600]}},"&:active":{boxShadow:e.shadows[0],...e.palette.mode==="light"?{backgroundColor:Ss(e.palette.grey[200],.12)}:{backgroundColor:Ss(e.palette.grey[600],.12)}}}))),GI=ut(vI)({width:24,height:16});function KI(e){const{slots:t={},slotProps:r={},...n}=e,o=e;return u.jsx("li",{children:u.jsx(VI,{focusRipple:!0,...n,ownerState:o,children:u.jsx(GI,{as:t.CollapsedIcon,ownerState:o,...r.collapsedIcon})})})}function QI(e){return ln("MuiBreadcrumbs",e)}const YI=cn("MuiBreadcrumbs",["root","ol","li","separator"]),XI=e=>{const{classes:t}=e;return zn({root:["root"],li:["li"],ol:["ol"],separator:["separator"]},QI,t)},JI=ut(gI,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(e,t)=>[{[`& .${YI.li}`]:t.li},t.root]})({}),ZI=ut("ol",{name:"MuiBreadcrumbs",slot:"Ol"})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),e2=ut("li",{name:"MuiBreadcrumbs",slot:"Separator"})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function t2(e,t,r,n){return e.reduce((o,a,i)=>(i<e.length-1?o=o.concat(a,u.jsx(e2,{"aria-hidden":!0,className:t,ownerState:n,children:r},`separator-${i}`)):o.push(a),o),[])}const r2=S.forwardRef(function(t,r){const n=Or({props:t,name:"MuiBreadcrumbs"}),{children:o,className:a,component:i="nav",slots:s={},slotProps:l={},expandText:c="Show path",itemsAfterCollapse:d=1,itemsBeforeCollapse:p=1,maxItems:h=8,separator:f="/",...g}=n,[y,v]=S.useState(!1),b={...n,component:i,expanded:y,expandText:c,itemsAfterCollapse:d,itemsBeforeCollapse:p,maxItems:h,separator:f},C=XI(b),w=sI({elementType:s.CollapsedIcon,externalSlotProps:l.collapsedIcon,ownerState:b}),k=S.useRef(null),j=B=>{const F=()=>{v(!0);const L=k.current.querySelector("a[href],button,[tabindex]");L&&L.focus()};return p+d>=B.length?B:[...B.slice(0,p),u.jsx(KI,{"aria-label":c,slots:{CollapsedIcon:s.CollapsedIcon},slotProps:{collapsedIcon:w},onClick:F},"ellipsis"),...B.slice(B.length-d,B.length)]},P=S.Children.toArray(o).filter(B=>S.isValidElement(B)).map((B,F)=>u.jsx("li",{className:C.li,children:B},`child-${F}`));return u.jsx(JI,{ref:r,component:i,color:"textSecondary",className:at(C.root,a),ownerState:b,...g,children:u.jsx(ZI,{className:C.ol,ref:k,ownerState:b,children:t2(y||h&&P.length<=h?P:j(P),C.separator,f,b)})})});function Th(){const e=on(),t=e["*"],r=Fn();return u.jsx(x.Box,{sx:{display:"flex",alignItems:"center"},children:u.jsxs(r2,{"aria-label":"breadcrumb",separator:u.jsx(yo.ChevronRight,{sx:{fontSize:14,color:"text.secondary"}}),sx:{"& .MuiBreadcrumbs-separator":{margin:"0 6px"}},children:[e.projectName&&u.jsx(x.Chip,{onClick:n=>r(`/${e.projectName}/`,n),label:e.projectName,size:"medium",sx:{backgroundColor:"white",color:"primary.main",fontWeight:500,height:"32px",fontSize:"0.875rem",cursor:"pointer","&:hover":{backgroundColor:"primary.100"}}}),e.packageName&&u.jsx(x.Chip,{onClick:n=>r(`/${e.projectName}/${e.packageName}/`,n),label:e.packageName,size:"medium",sx:{backgroundColor:"white",color:"primary.main",fontWeight:500,height:"32px",fontSize:"0.875rem",cursor:"pointer","&:hover":{backgroundColor:"secondary.100"}}}),t&&u.jsx(x.Chip,{onClick:n=>r(`/${e.projectName}/${e.packageName}/${t}`,n),label:t,size:"medium",sx:{backgroundColor:"white",color:"primary.main",fontWeight:500,height:"32px",fontSize:"0.875rem",cursor:"pointer","&:hover":{backgroundColor:"grey.200"}}})]})})}function n2({logoHeader:e,endCap:t}){const r=qs(),{projectName:n,packageName:o}=on();return u.jsx(x.AppBar,{position:"sticky",elevation:0,sx:{backgroundColor:"background.paper",borderBottom:"1px solid",borderColor:"divider"},children:u.jsxs(x.Toolbar,{sx:{justifyContent:"space-between"},children:[u.jsxs(x.Stack,{direction:"row",spacing:2,alignItems:"center",children:[e||u.jsxs(x.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[u.jsx(x.Box,{component:"img",src:"/logo.svg",alt:"Malloy",sx:{width:28,height:28}}),u.jsx(x.Typography,{variant:"h5",sx:{color:"text.primary",fontWeight:700,letterSpacing:"-0.025em",cursor:"pointer"},onClick:()=>{r("/")},children:"Malloy Publisher"})]}),u.jsx(Th,{})]}),u.jsxs(x.Stack,{direction:"row",spacing:2,alignItems:"center",children:[!n||!o?!e&&u.jsxs(u.Fragment,{children:[u.jsx(x.Button,{href:"https://docs.malloydata.dev/documentation/",children:"Malloy Docs"}),u.jsx(x.Button,{href:"https://github.com/malloydata/publisher/blob/main/README.md",children:"Publisher Docs"}),u.jsx(x.Button,{href:"/api-doc.html",children:"Publisher API"})]}):u.jsx(u.Fragment,{children:u.jsx($C,{})}),t]})]})})}function Rh({headerProps:e}){return u.jsxs(x.Box,{sx:{display:"flex",flexDirection:"column",minHeight:"100vh"},children:[u.jsx(n2,{...e}),u.jsx(Ph,{maxWidth:"xl",component:"main",sx:{flex:1,display:"flex",flexDirection:"column",py:2,gap:2},children:u.jsx(x.Box,{sx:{flex:1},children:u.jsx(vf,{})})})]})}function Mh(){const e=on(),t=e["*"];return e.projectName?e.packageName?t?.endsWith(".malloy")?u.jsx(qa,{projectName:e.projectName,packageName:e.packageName,children:u.jsx(x1,{modelPath:t,hideEmbeddingIcons:!0})}):t?.endsWith(".malloynb")?u.jsx(qa,{projectName:e.projectName,packageName:e.packageName,children:u.jsx(Tp,{notebookPath:t,hideEmbeddingIcons:!0,expandResults:!1})}):u.jsx("div",{children:u.jsxs("h2",{children:["Unrecognized file type: ",t]})}):u.jsx("div",{children:u.jsx("h2",{children:"Missing package name"})}):u.jsx("div",{children:u.jsx("h2",{children:"Missing project name"})})}function Nh(){const{projectName:e,packageName:t}=on(),r=Fn();return e?t?u.jsx(qa,{projectName:e,packageName:t,children:u.jsx(uC,{navigate:r})}):u.jsx("div",{children:u.jsx("h2",{children:"Missing package name"})}):u.jsx("div",{children:u.jsx("h2",{children:"Missing project name"})})}function Ah(){const e=Fn(),{projectName:t}=on();return t?u.jsx(jC,{projectName:t,children:u.jsx(EC,{navigate:e})}):u.jsx("div",{children:u.jsx("h2",{children:"Missing project name"})})}function _h(){const e=cd();return console.error(e),u.jsx(Ph,{maxWidth:"lg",component:"main",sx:{display:"flex",flexDirection:"column",my:2,gap:0},children:u.jsxs(x.Stack,{sx:{m:"auto",flexDirection:"column"},children:[u.jsx(x.Box,{sx:{height:"300px"}}),u.jsx("img",{src:"/error.png"}),u.jsx(x.Typography,{variant:"subtitle1",children:"An unexpected error occurred"})]})})}function Oh(){const{projectName:e,packageName:t,notebookPath:r}=on();return e?t?u.jsx(qa,{projectName:e,packageName:t,children:u.jsx(sh,{notebookStorage:new Rp,userContext:{project:e,package:t},children:u.jsx(vC,{notebookPath:r,hideEmbeddingIcons:!0})})}):u.jsx("div",{children:u.jsx("h2",{children:"Missing package name"})}):u.jsx("div",{children:u.jsx("h2",{children:"Missing project name"})})}const Ne={primary:{main:"#14b3cb",light:"#22d3ee",dark:"#0e7490",50:"#ecfeff",100:"#cffafe",500:"#14b3cb",600:"#0891b2",700:"#0e7490"},secondary:{main:"#fbbb04",light:"#fde047",dark:"#eab308",50:"#fefce8",100:"#fef3c7",500:"#fbbb04",600:"#eab308",700:"#ca8a04"},grey:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827"},success:{main:"#059669",light:"#10b981",dark:"#047857"},warning:{main:"#d97706",light:"#f59e0b",dark:"#b45309"},error:{main:"#dc2626",light:"#ef4444",dark:"#b91c1c"},info:{main:"#0891b2",light:"#06b6d4",dark:"#0e7490"}},Lh=Nl({palette:{mode:"light",primary:Ne.primary,secondary:Ne.secondary,grey:Ne.grey,success:Ne.success,warning:Ne.warning,error:Ne.error,info:Ne.info,background:{default:"#ffffff",paper:"#ffffff"},text:{primary:Ne.grey[900],secondary:Ne.grey[600]},divider:Ne.grey[200]},typography:{fontFamily:'"Inter", "Roboto", "Helvetica", "Arial", sans-serif',h1:{fontWeight:700,letterSpacing:"-0.025em"},h2:{fontWeight:700,letterSpacing:"-0.025em"},h3:{fontWeight:600,letterSpacing:"-0.025em"},h4:{fontWeight:600,letterSpacing:"-0.025em"},h5:{fontWeight:600,letterSpacing:"-0.025em"},h6:{fontWeight:600,letterSpacing:"-0.025em"},subtitle1:{fontWeight:500,letterSpacing:"-0.025em"},subtitle2:{fontWeight:500,letterSpacing:"-0.025em"},body1:{letterSpacing:"-0.025em"},body2:{letterSpacing:"-0.025em"},button:{fontWeight:500,letterSpacing:"-0.025em",textTransform:"none"}},shape:{borderRadius:4},components:{MuiCssBaseline:{styleOverrides:{body:{scrollbarWidth:"thin",scrollbarColor:`${Ne.grey[300]} ${Ne.grey[100]}`,"&::-webkit-scrollbar":{width:"8px",height:"8px"},"&::-webkit-scrollbar-track":{background:Ne.grey[100],borderRadius:"4px"},"&::-webkit-scrollbar-thumb":{background:Ne.grey[300],borderRadius:"4px","&:hover":{background:Ne.grey[400]}},"&::-webkit-scrollbar-corner":{background:Ne.grey[100]}},"*":{scrollbarWidth:"thin",scrollbarColor:`${Ne.grey[300]} ${Ne.grey[100]}`,"&::-webkit-scrollbar":{width:"8px",height:"8px"},"&::-webkit-scrollbar-track":{background:Ne.grey[100],borderRadius:"4px"},"&::-webkit-scrollbar-thumb":{background:Ne.grey[300],borderRadius:"4px","&:hover":{background:Ne.grey[400]}},"&::-webkit-scrollbar-corner":{background:Ne.grey[100]}}}},MuiButton:{styleOverrides:{root:{borderRadius:4,textTransform:"none",fontWeight:500,boxShadow:"none","&:hover":{boxShadow:"0 1px 3px rgba(0, 0, 0, 0.1)"}},contained:{"&:hover":{boxShadow:"0 2px 4px rgba(0, 0, 0, 0.1)"}}}},MuiCard:{styleOverrides:{root:{borderRadius:4,boxShadow:"0 1px 3px rgba(0, 0, 0, 0.1)",border:"1px solid",borderColor:"rgba(0, 0, 0, 0.05)"}}},MuiChip:{styleOverrides:{root:{borderRadius:4,fontWeight:500}}},MuiTextField:{styleOverrides:{root:{"& .MuiOutlinedInput-root":{borderRadius:4}}}},MuiDialog:{styleOverrides:{paper:{borderRadius:4,boxShadow:"0px 20px 25px -5px rgba(0, 0, 0, 0.1), 0px 10px 10px -5px rgba(0, 0, 0, 0.04)"}}},MuiMenu:{styleOverrides:{paper:{borderRadius:4,boxShadow:"0px 10px 15px -3px rgba(0, 0, 0, 0.1), 0px 4px 6px -2px rgba(0, 0, 0, 0.05)",border:"1px solid rgba(0, 0, 0, 0.05)"}}},MuiBreadcrumbs:{styleOverrides:{root:{"& .MuiBreadcrumbs-separator":{margin:"0 6px",color:Ne.grey[400]}}}},MuiDivider:{styleOverrides:{root:{margin:"4px 0",borderColor:Ne.grey[200]}},defaultProps:{sx:{my:1}}}}}),$h=(e="/",t,r,n)=>Hf([{path:e,element:u.jsx(dC,{server:r,getAccessToken:n,children:u.jsxs(tI,{theme:Lh,children:[u.jsx(x.CssBaseline,{}),u.jsx(Rh,{headerProps:t})]})}),errorElement:u.jsx(_h,{}),children:[{path:"",element:u.jsx(kh,{})},{path:":projectName",element:u.jsx(Ah,{})},{path:":projectName/:packageName",element:u.jsx(Nh,{})},{path:":projectName/:packageName/*",element:u.jsx(Mh,{})},{path:":projectName/:packageName/scratchNotebook/:notebookPath",element:u.jsx(Oh,{})}]}]),o2=({server:e,getAccessToken:t,basePath:r="/",headerProps:n})=>{const o=$h(r,n,e,t);return u.jsx(ng,{router:o})};let qu=0;function a2(e){const[t,r]=S.useState(e),n=e||t;return S.useEffect(()=>{t==null&&(qu+=1,r(`mui-${qu}`))},[t]),n}const i2={...S},Fu=i2.useId;function s2(e){if(Fu!==void 0){const t=Fu();return e??t}return a2(e)}function l2(e){return ln("MuiCircularProgress",e)}cn("MuiCircularProgress",["root","determinate","indeterminate","colorPrimary","colorSecondary","svg","circle","circleDeterminate","circleIndeterminate","circleDisableShrink"]);const kr=44,Ts=fe.keyframes`
|
|
239
|
+
`,FI=S.forwardRef(function(t,r){const n=Or({props:t,name:"MuiTouchRipple"}),{center:o=!1,classes:a={},className:i,...s}=n,[l,c]=S.useState([]),d=S.useRef(0),p=S.useRef(null);S.useEffect(()=>{p.current&&(p.current(),p.current=null)},[l]);const h=S.useRef(!1),f=AI(),g=S.useRef(null),y=S.useRef(null),v=S.useCallback(k=>{const{pulsate:j,rippleX:P,rippleY:B,rippleSize:F,cb:L}=k;c(m=>[...m,u.jsx(qI,{classes:{ripple:at(a.ripple,_t.ripple),rippleVisible:at(a.rippleVisible,_t.rippleVisible),ripplePulsate:at(a.ripplePulsate,_t.ripplePulsate),child:at(a.child,_t.child),childLeaving:at(a.childLeaving,_t.childLeaving),childPulsate:at(a.childPulsate,_t.childPulsate)},timeout:Es,pulsate:j,rippleX:P,rippleY:B,rippleSize:F},d.current)]),d.current+=1,p.current=L},[a]),b=S.useCallback((k={},j={},P=()=>{})=>{const{pulsate:B=!1,center:F=o||j.pulsate,fakeElement:L=!1}=j;if(k?.type==="mousedown"&&h.current){h.current=!1;return}k?.type==="touchstart"&&(h.current=!0);const m=L?null:y.current,T=m?m.getBoundingClientRect():{width:0,height:0,left:0,top:0};let D,$,H;if(F||k===void 0||k.clientX===0&&k.clientY===0||!k.clientX&&!k.touches)D=Math.round(T.width/2),$=Math.round(T.height/2);else{const{clientX:J,clientY:V}=k.touches&&k.touches.length>0?k.touches[0]:k;D=Math.round(J-T.left),$=Math.round(V-T.top)}if(F)H=Math.sqrt((2*T.width**2+T.height**2)/3),H%2===0&&(H+=1);else{const J=Math.max(Math.abs((m?m.clientWidth:0)-D),D)*2+2,V=Math.max(Math.abs((m?m.clientHeight:0)-$),$)*2+2;H=Math.sqrt(J**2+V**2)}k?.touches?g.current===null&&(g.current=()=>{v({pulsate:B,rippleX:D,rippleY:$,rippleSize:H,cb:P})},f.start(OI,()=>{g.current&&(g.current(),g.current=null)})):v({pulsate:B,rippleX:D,rippleY:$,rippleSize:H,cb:P})},[o,v,f]),C=S.useCallback(()=>{b({},{pulsate:!0})},[b]),w=S.useCallback((k,j)=>{if(f.clear(),k?.type==="touchend"&&g.current){g.current(),g.current=null,f.start(0,()=>{w(k,j)});return}g.current=null,c(P=>P.length>0?P.slice(1):P),p.current=j},[f]);return S.useImperativeHandle(r,()=>({pulsate:C,start:b,stop:w}),[C,b,w]),u.jsx(BI,{className:at(_t.root,a.root,i),ref:y,...s,children:u.jsx(Ol,{component:null,exit:!0,children:l})})});function zI(e){return ln("MuiButtonBase",e)}const WI=cn("MuiButtonBase",["root","disabled","focusVisible"]),UI=e=>{const{disabled:t,focusVisible:r,focusVisibleClassName:n,classes:o}=e,i=zn({root:["root",t&&"disabled",r&&"focusVisible"]},zI,o);return r&&n&&(i.root+=` ${n}`),i},HI=ut("button",{name:"MuiButtonBase",slot:"Root"})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${WI.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),Eh=S.forwardRef(function(t,r){const n=Or({props:t,name:"MuiButtonBase"}),{action:o,centerRipple:a=!1,children:i,className:s,component:l="button",disabled:c=!1,disableRipple:d=!1,disableTouchRipple:p=!1,focusRipple:h=!1,focusVisibleClassName:f,LinkComponent:g="a",onBlur:y,onClick:v,onContextMenu:b,onDragLeave:C,onFocus:w,onFocusVisible:k,onKeyDown:j,onKeyUp:P,onMouseDown:B,onMouseLeave:F,onMouseUp:L,onTouchEnd:m,onTouchMove:T,onTouchStart:D,tabIndex:$=0,TouchRippleProps:H,touchRippleRef:J,type:V,...ce}=n,K=S.useRef(null),se=SI(),Z=ks(se.ref,J),[X,U]=S.useState(!1);c&&X&&U(!1),S.useImperativeHandle(o,()=>({focusVisible:()=>{U(!0),K.current.focus()}}),[]);const O=se.shouldMount&&!d&&!c;S.useEffect(()=>{X&&h&&!d&&se.pulsate()},[d,h,X,se]);const q=cr(se,"start",B,p),oe=cr(se,"stop",b,p),Pe=cr(se,"stop",C,p),it=cr(se,"stop",L,p),ht=cr(se,"stop",ne=>{X&&ne.preventDefault(),F&&F(ne)},p),Ae=cr(se,"start",D,p),_e=cr(se,"stop",m,p),jt=cr(se,"stop",T,p),xr=cr(se,"stop",ne=>{$u(ne.target)||U(!1),y&&y(ne)},!1),Ut=Sa(ne=>{K.current||(K.current=ne.currentTarget),$u(ne.target)&&(U(!0),k&&k(ne)),w&&w(ne)}),dt=()=>{const ne=K.current;return l&&l!=="button"&&!(ne.tagName==="A"&&ne.href)},Lr=Sa(ne=>{h&&!ne.repeat&&X&&ne.key===" "&&se.stop(ne,()=>{se.start(ne)}),ne.target===ne.currentTarget&&dt()&&ne.key===" "&&ne.preventDefault(),j&&j(ne),ne.target===ne.currentTarget&&dt()&&ne.key==="Enter"&&!c&&(ne.preventDefault(),v&&v(ne))}),Qt=Sa(ne=>{h&&ne.key===" "&&X&&!ne.defaultPrevented&&se.stop(ne,()=>{se.pulsate(ne)}),P&&P(ne),v&&ne.target===ne.currentTarget&&dt()&&ne.key===" "&&!ne.defaultPrevented&&v(ne)});let ot=l;ot==="button"&&(ce.href||ce.to)&&(ot=g);const Ht={};ot==="button"?(Ht.type=V===void 0?"button":V,Ht.disabled=c):(!ce.href&&!ce.to&&(Ht.role="button"),c&&(Ht["aria-disabled"]=c));const vr=ks(r,K),Sr={...n,centerRipple:a,component:l,disabled:c,disableRipple:d,disableTouchRipple:p,focusRipple:h,tabIndex:$,focusVisible:X},ae=UI(Sr);return u.jsxs(HI,{as:ot,className:at(ae.root,s),ownerState:Sr,onBlur:xr,onClick:v,onContextMenu:oe,onFocus:Ut,onKeyDown:Lr,onKeyUp:Qt,onMouseDown:q,onMouseLeave:ht,onMouseUp:it,onDragLeave:Pe,onTouchEnd:_e,onTouchMove:jt,onTouchStart:Ae,ref:vr,tabIndex:c?-1:$,type:V,...Ht,...ce,children:[i,O?u.jsx(FI,{ref:Z,center:a,...H}):null]})});function cr(e,t,r,n=!1){return Sa(o=>(r&&r(o),n||e[t](o),!0))}const VI=ut(Eh)(tn(({theme:e})=>({display:"flex",marginLeft:`calc(${e.spacing(1)} * 0.5)`,marginRight:`calc(${e.spacing(1)} * 0.5)`,...e.palette.mode==="light"?{backgroundColor:e.palette.grey[100],color:e.palette.grey[700]}:{backgroundColor:e.palette.grey[700],color:e.palette.grey[100]},borderRadius:2,"&:hover, &:focus":{...e.palette.mode==="light"?{backgroundColor:e.palette.grey[200]}:{backgroundColor:e.palette.grey[600]}},"&:active":{boxShadow:e.shadows[0],...e.palette.mode==="light"?{backgroundColor:Ss(e.palette.grey[200],.12)}:{backgroundColor:Ss(e.palette.grey[600],.12)}}}))),GI=ut(vI)({width:24,height:16});function KI(e){const{slots:t={},slotProps:r={},...n}=e,o=e;return u.jsx("li",{children:u.jsx(VI,{focusRipple:!0,...n,ownerState:o,children:u.jsx(GI,{as:t.CollapsedIcon,ownerState:o,...r.collapsedIcon})})})}function QI(e){return ln("MuiBreadcrumbs",e)}const YI=cn("MuiBreadcrumbs",["root","ol","li","separator"]),XI=e=>{const{classes:t}=e;return zn({root:["root"],li:["li"],ol:["ol"],separator:["separator"]},QI,t)},JI=ut(gI,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(e,t)=>[{[`& .${YI.li}`]:t.li},t.root]})({}),ZI=ut("ol",{name:"MuiBreadcrumbs",slot:"Ol"})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),e2=ut("li",{name:"MuiBreadcrumbs",slot:"Separator"})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function t2(e,t,r,n){return e.reduce((o,a,i)=>(i<e.length-1?o=o.concat(a,u.jsx(e2,{"aria-hidden":!0,className:t,ownerState:n,children:r},`separator-${i}`)):o.push(a),o),[])}const r2=S.forwardRef(function(t,r){const n=Or({props:t,name:"MuiBreadcrumbs"}),{children:o,className:a,component:i="nav",slots:s={},slotProps:l={},expandText:c="Show path",itemsAfterCollapse:d=1,itemsBeforeCollapse:p=1,maxItems:h=8,separator:f="/",...g}=n,[y,v]=S.useState(!1),b={...n,component:i,expanded:y,expandText:c,itemsAfterCollapse:d,itemsBeforeCollapse:p,maxItems:h,separator:f},C=XI(b),w=sI({elementType:s.CollapsedIcon,externalSlotProps:l.collapsedIcon,ownerState:b}),k=S.useRef(null),j=B=>{const F=()=>{v(!0);const L=k.current.querySelector("a[href],button,[tabindex]");L&&L.focus()};return p+d>=B.length?B:[...B.slice(0,p),u.jsx(KI,{"aria-label":c,slots:{CollapsedIcon:s.CollapsedIcon},slotProps:{collapsedIcon:w},onClick:F},"ellipsis"),...B.slice(B.length-d,B.length)]},P=S.Children.toArray(o).filter(B=>S.isValidElement(B)).map((B,F)=>u.jsx("li",{className:C.li,children:B},`child-${F}`));return u.jsx(JI,{ref:r,component:i,color:"textSecondary",className:at(C.root,a),ownerState:b,...g,children:u.jsx(ZI,{className:C.ol,ref:k,ownerState:b,children:t2(y||h&&P.length<=h?P:j(P),C.separator,f,b)})})});function Th(){const e=on(),t=e["*"],r=Fn();return u.jsx(x.Box,{sx:{display:"flex",alignItems:"center"},children:u.jsxs(r2,{"aria-label":"breadcrumb",separator:u.jsx(yo.ChevronRight,{sx:{fontSize:14,color:"text.secondary"}}),sx:{"& .MuiBreadcrumbs-separator":{margin:"0 6px"}},children:[e.projectName&&u.jsx(x.Chip,{onClick:n=>r(`/${e.projectName}/`,n),label:e.projectName,size:"medium",sx:{backgroundColor:"white",color:"primary.main",fontWeight:500,height:"32px",fontSize:"0.875rem",cursor:"pointer","&:hover":{backgroundColor:"primary.100"}}}),e.packageName&&u.jsx(x.Chip,{onClick:n=>r(`/${e.projectName}/${e.packageName}/`,n),label:e.packageName,size:"medium",sx:{backgroundColor:"white",color:"primary.main",fontWeight:500,height:"32px",fontSize:"0.875rem",cursor:"pointer","&:hover":{backgroundColor:"secondary.100"}}}),t&&u.jsx(x.Chip,{onClick:n=>r(`/${e.projectName}/${e.packageName}/${t}`,n),label:t,size:"medium",sx:{backgroundColor:"white",color:"primary.main",fontWeight:500,height:"32px",fontSize:"0.875rem",cursor:"pointer","&:hover":{backgroundColor:"grey.200"}}})]})})}function n2({logoHeader:e,endCap:t}){const r=qs(),{projectName:n,packageName:o}=on();return u.jsx(x.AppBar,{position:"sticky",elevation:0,sx:{backgroundColor:"background.paper",borderBottom:"1px solid",borderColor:"divider"},children:u.jsxs(x.Toolbar,{sx:{justifyContent:"space-between"},children:[u.jsxs(x.Stack,{direction:"row",spacing:2,alignItems:"center",children:[e||u.jsxs(x.Box,{sx:{display:"flex",alignItems:"center",gap:1},children:[u.jsx(x.Box,{component:"img",src:"/logo.svg",alt:"Malloy",sx:{width:28,height:28}}),u.jsx(x.Typography,{variant:"h5",sx:{color:"text.primary",fontWeight:700,letterSpacing:"-0.025em",cursor:"pointer"},onClick:()=>{r("/")},children:"Malloy Publisher"})]}),u.jsx(Th,{})]}),u.jsxs(x.Stack,{direction:"row",spacing:2,alignItems:"center",children:[!n||!o?!e&&u.jsxs(u.Fragment,{children:[u.jsx(x.Button,{href:"https://docs.malloydata.dev/documentation/",children:"Malloy Docs"}),u.jsx(x.Button,{href:"https://github.com/malloydata/publisher/blob/main/README.md",children:"Publisher Docs"}),u.jsx(x.Button,{href:"/api-doc.html",children:"Publisher API"})]}):u.jsx(u.Fragment,{children:u.jsx($C,{})}),t]})]})})}function Rh({headerProps:e}){return u.jsxs(x.Box,{sx:{display:"flex",flexDirection:"column",minHeight:"100vh"},children:[u.jsx(n2,{...e}),u.jsx(Ph,{maxWidth:"xl",component:"main",sx:{flex:1,display:"flex",flexDirection:"column",py:2,gap:2},children:u.jsx(x.Box,{sx:{flex:1},children:u.jsx(vf,{})})})]})}function Mh(){const e=on(),t=e["*"];return e.projectName?e.packageName?t?.endsWith(".malloy")?u.jsx(qa,{projectName:e.projectName,packageName:e.packageName,children:u.jsx(x1,{modelPath:t,hideEmbeddingIcons:!0})}):t?.endsWith(".malloynb")?u.jsx(qa,{projectName:e.projectName,packageName:e.packageName,children:u.jsx(Tp,{notebookPath:t,hideEmbeddingIcons:!0,expandResults:!1})}):u.jsx("div",{children:u.jsxs("h2",{children:["Unrecognized file type: ",t]})}):u.jsx("div",{children:u.jsx("h2",{children:"Missing package name"})}):u.jsx("div",{children:u.jsx("h2",{children:"Missing project name"})})}function Nh(){const{projectName:e,packageName:t}=on(),r=Fn();return e?t?u.jsx(qa,{projectName:e,packageName:t,children:u.jsx(uC,{navigate:r})}):u.jsx("div",{children:u.jsx("h2",{children:"Missing package name"})}):u.jsx("div",{children:u.jsx("h2",{children:"Missing project name"})})}function Ah(){const e=Fn(),{projectName:t}=on();return t?u.jsx(jC,{projectName:t,children:u.jsx(EC,{navigate:e})}):u.jsx("div",{children:u.jsx("h2",{children:"Missing project name"})})}function _h(){const e=cd();return console.error(e),u.jsx(Ph,{maxWidth:"lg",component:"main",sx:{display:"flex",flexDirection:"column",my:2,gap:0},children:u.jsxs(x.Stack,{sx:{m:"auto",flexDirection:"column"},children:[u.jsx(x.Box,{sx:{height:"300px"}}),u.jsx("img",{src:"/error.png"}),u.jsx(x.Typography,{variant:"subtitle1",children:"An unexpected error occurred"})]})})}function Oh(){const{projectName:e,packageName:t,notebookPath:r}=on();return e?t?u.jsx(qa,{projectName:e,packageName:t,children:u.jsx(sh,{notebookStorage:new Rp,userContext:{project:e,package:t},children:u.jsx(vC,{notebookPath:r,hideEmbeddingIcons:!0},`${r}-${e}-${t}`)})}):u.jsx("div",{children:u.jsx("h2",{children:"Missing package name"})}):u.jsx("div",{children:u.jsx("h2",{children:"Missing project name"})})}const Ne={primary:{main:"#14b3cb",light:"#22d3ee",dark:"#0e7490",50:"#ecfeff",100:"#cffafe",500:"#14b3cb",600:"#0891b2",700:"#0e7490"},secondary:{main:"#fbbb04",light:"#fde047",dark:"#eab308",50:"#fefce8",100:"#fef3c7",500:"#fbbb04",600:"#eab308",700:"#ca8a04"},grey:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827"},success:{main:"#059669",light:"#10b981",dark:"#047857"},warning:{main:"#d97706",light:"#f59e0b",dark:"#b45309"},error:{main:"#dc2626",light:"#ef4444",dark:"#b91c1c"},info:{main:"#0891b2",light:"#06b6d4",dark:"#0e7490"}},Lh=Nl({palette:{mode:"light",primary:Ne.primary,secondary:Ne.secondary,grey:Ne.grey,success:Ne.success,warning:Ne.warning,error:Ne.error,info:Ne.info,background:{default:"#ffffff",paper:"#ffffff"},text:{primary:Ne.grey[900],secondary:Ne.grey[600]},divider:Ne.grey[200]},typography:{fontFamily:'"Inter", "Roboto", "Helvetica", "Arial", sans-serif',h1:{fontWeight:700,letterSpacing:"-0.025em"},h2:{fontWeight:700,letterSpacing:"-0.025em"},h3:{fontWeight:600,letterSpacing:"-0.025em"},h4:{fontWeight:600,letterSpacing:"-0.025em"},h5:{fontWeight:600,letterSpacing:"-0.025em"},h6:{fontWeight:600,letterSpacing:"-0.025em"},subtitle1:{fontWeight:500,letterSpacing:"-0.025em"},subtitle2:{fontWeight:500,letterSpacing:"-0.025em"},body1:{letterSpacing:"-0.025em"},body2:{letterSpacing:"-0.025em"},button:{fontWeight:500,letterSpacing:"-0.025em",textTransform:"none"}},shape:{borderRadius:4},components:{MuiCssBaseline:{styleOverrides:{body:{scrollbarWidth:"thin",scrollbarColor:`${Ne.grey[300]} ${Ne.grey[100]}`,"&::-webkit-scrollbar":{width:"8px",height:"8px"},"&::-webkit-scrollbar-track":{background:Ne.grey[100],borderRadius:"4px"},"&::-webkit-scrollbar-thumb":{background:Ne.grey[300],borderRadius:"4px","&:hover":{background:Ne.grey[400]}},"&::-webkit-scrollbar-corner":{background:Ne.grey[100]}},"*":{scrollbarWidth:"thin",scrollbarColor:`${Ne.grey[300]} ${Ne.grey[100]}`,"&::-webkit-scrollbar":{width:"8px",height:"8px"},"&::-webkit-scrollbar-track":{background:Ne.grey[100],borderRadius:"4px"},"&::-webkit-scrollbar-thumb":{background:Ne.grey[300],borderRadius:"4px","&:hover":{background:Ne.grey[400]}},"&::-webkit-scrollbar-corner":{background:Ne.grey[100]}}}},MuiButton:{styleOverrides:{root:{borderRadius:4,textTransform:"none",fontWeight:500,boxShadow:"none","&:hover":{boxShadow:"0 1px 3px rgba(0, 0, 0, 0.1)"}},contained:{"&:hover":{boxShadow:"0 2px 4px rgba(0, 0, 0, 0.1)"}}}},MuiCard:{styleOverrides:{root:{borderRadius:4,boxShadow:"0 1px 3px rgba(0, 0, 0, 0.1)",border:"1px solid",borderColor:"rgba(0, 0, 0, 0.05)"}}},MuiChip:{styleOverrides:{root:{borderRadius:4,fontWeight:500}}},MuiTextField:{styleOverrides:{root:{"& .MuiOutlinedInput-root":{borderRadius:4}}}},MuiDialog:{styleOverrides:{paper:{borderRadius:4,boxShadow:"0px 20px 25px -5px rgba(0, 0, 0, 0.1), 0px 10px 10px -5px rgba(0, 0, 0, 0.04)"}}},MuiMenu:{styleOverrides:{paper:{borderRadius:4,boxShadow:"0px 10px 15px -3px rgba(0, 0, 0, 0.1), 0px 4px 6px -2px rgba(0, 0, 0, 0.05)",border:"1px solid rgba(0, 0, 0, 0.05)"}}},MuiBreadcrumbs:{styleOverrides:{root:{"& .MuiBreadcrumbs-separator":{margin:"0 6px",color:Ne.grey[400]}}}},MuiDivider:{styleOverrides:{root:{margin:"4px 0",borderColor:Ne.grey[200]}},defaultProps:{sx:{my:1}}}}}),$h=(e="/",t,r,n)=>Hf([{path:e,element:u.jsx(dC,{server:r,getAccessToken:n,children:u.jsxs(tI,{theme:Lh,children:[u.jsx(x.CssBaseline,{}),u.jsx(Rh,{headerProps:t})]})}),errorElement:u.jsx(_h,{}),children:[{path:"",element:u.jsx(kh,{})},{path:":projectName",element:u.jsx(Ah,{})},{path:":projectName/:packageName",element:u.jsx(Nh,{})},{path:":projectName/:packageName/*",element:u.jsx(Mh,{})},{path:":projectName/:packageName/scratchNotebook/:notebookPath",element:u.jsx(Oh,{})}]}]),o2=({server:e,getAccessToken:t,basePath:r="/",headerProps:n})=>{const o=$h(r,n,e,t);return u.jsx(ng,{router:o})};let qu=0;function a2(e){const[t,r]=S.useState(e),n=e||t;return S.useEffect(()=>{t==null&&(qu+=1,r(`mui-${qu}`))},[t]),n}const i2={...S},Fu=i2.useId;function s2(e){if(Fu!==void 0){const t=Fu();return e??t}return a2(e)}function l2(e){return ln("MuiCircularProgress",e)}cn("MuiCircularProgress",["root","determinate","indeterminate","colorPrimary","colorSecondary","svg","circle","circleDeterminate","circleIndeterminate","circleDisableShrink"]);const kr=44,Ts=fe.keyframes`
|
|
240
240
|
0% {
|
|
241
241
|
transform: rotate(0deg);
|
|
242
242
|
}
|
package/dist/index.es.js
CHANGED
|
@@ -23053,7 +23053,8 @@ function _k({
|
|
|
23053
23053
|
onClose: () => {
|
|
23054
23054
|
ee.isMarkdown ? b(void 0) : y(void 0);
|
|
23055
23055
|
}
|
|
23056
|
-
}
|
|
23056
|
+
},
|
|
23057
|
+
`${J}-${ee.isMarkdown}-${e}-${a}-${i}`
|
|
23057
23058
|
)
|
|
23058
23059
|
},
|
|
23059
23060
|
`${J}-${p.getCells().length}`
|
|
@@ -27982,7 +27983,8 @@ function kP() {
|
|
|
27982
27983
|
{
|
|
27983
27984
|
notebookPath: n,
|
|
27984
27985
|
hideEmbeddingIcons: !0
|
|
27985
|
-
}
|
|
27986
|
+
},
|
|
27987
|
+
`${n}-${e}-${t}`
|
|
27986
27988
|
)
|
|
27987
27989
|
}
|
|
27988
27990
|
) }) : /* @__PURE__ */ h("div", { children: /* @__PURE__ */ h("h2", { children: "Missing package name" }) }) : /* @__PURE__ */ h("div", { children: /* @__PURE__ */ h("h2", { children: "Missing project name" }) });
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@malloy-publisher/app",
|
|
3
3
|
"description": "Malloy Publisher App",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.75",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs.js",
|
|
7
7
|
"module": "dist/index.es.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"generate-api-types": ""
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@malloy-publisher/sdk": "
|
|
36
|
+
"@malloy-publisher/sdk": "^v0.0.75",
|
|
37
37
|
"@mui/icons-material": "^7.0.2",
|
|
38
38
|
"@mui/material": "^7.0.2",
|
|
39
39
|
"@vitejs/plugin-react": "^4.3.1",
|