@malloy-publisher/server 0.10.2 → 0.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dist/app/api-doc.yaml +21 -10
  2. package/dist/app/assets/{EnvironmentPage-qOdFSQL1.js → EnvironmentPage-B9Q9ZYYM.js} +1 -1
  3. package/dist/app/assets/{HomePage-qPrsLgkV.js → HomePage-CVbXvH7c.js} +1 -1
  4. package/dist/app/assets/{MainPage-BfS_-PBR.js → MainPage-D1Fj4Wy1.js} +1 -1
  5. package/dist/app/assets/{ModelPage-Rgt_50mg.js → ModelPage-DmYocpWT.js} +2 -2
  6. package/dist/app/assets/{PackagePage-D6bXCeY6.js → PackagePage-4TwX_ajC.js} +1 -1
  7. package/dist/app/assets/RenderedResult-B_sW7neX.es-CFeRQyYD.js +179 -0
  8. package/dist/app/assets/{RouteError-D3qvottt.js → RouteError-BYb6Nj48.js} +1 -1
  9. package/dist/app/assets/ThemeEditorPage-CYe_2MfI.js +1 -0
  10. package/dist/app/assets/{ToggleButtonGroup-DnK5WHKM.js → ToggleButtonGroup-b325mGmL.js} +1 -1
  11. package/dist/app/assets/documentRoutes-D_C8snHV.js +1 -0
  12. package/dist/app/assets/{editPageMounted-po3c6RP3.js → editPageMounted-1X99LP7v.js} +2 -2
  13. package/dist/app/assets/{index-CNbuoYFM.js → index-3fArIYYK.js} +1 -1
  14. package/dist/app/assets/index-CGKV9Dxi.js +483 -0
  15. package/dist/app/assets/{index-4-yQ2uF2.js → index-DEj7hnfZ.js} +1 -1
  16. package/dist/app/assets/{index-a9NQPL4B.js → index-DWhQwvJR.js} +1 -1
  17. package/dist/app/assets/{index.es-C2AyMc9a.js → index.es-CMsNTB-h.js} +21 -21
  18. package/dist/app/index.html +1 -1
  19. package/dist/instrumentation.mjs +1 -1
  20. package/dist/package_load_worker.mjs +81 -48
  21. package/dist/server.mjs +382 -127
  22. package/package.json +1 -1
  23. package/dist/app/assets/RenderedResult-BCJC0ZVj.es-ThIM8SXj.js +0 -171
  24. package/dist/app/assets/ThemeEditorPage-UAf70V3Q.js +0 -1
  25. package/dist/app/assets/documentRoutes-CnLoYf4D.js +0 -1
  26. package/dist/app/assets/index-iyvwQg3j.js +0 -481
@@ -6678,10 +6678,15 @@ components:
6678
6678
  `SET search_path = '<name>.main'` after the attach, so a model's
6679
6679
  `<name>.table('t')`, which compiles to the bare table name, resolves
6680
6680
  inside the catalog: DuckDB does not search an attached catalog for
6681
- an unqualified name otherwise. And each statement run on it emits a
6681
+ an unqualified name otherwise. Each statement run on it emits a
6682
6682
  `statement_usage` log record and counts in
6683
6683
  `publisher_statement_usage_total`, for whoever meters the catalog.
6684
- Absent or false is the pre-existing behavior.
6684
+ And raw SQL on it runs only as a single SELECT: `sqlQuery` and
6685
+ `sqlSource` answer 400 for anything else (another statement type, or
6686
+ more than one statement), and `sqlTemporaryTable` answers 400 always.
6687
+ This is a rule on statements, not on what a SELECT reads: that is
6688
+ bounded by the session's storage secret and catalog role. Absent or
6689
+ false is the pre-existing behavior.
6685
6690
  fingerprint:
6686
6691
  type: string
6687
6692
  description: >
@@ -7985,17 +7990,18 @@ components:
7985
7990
  BuildPlan:
7986
7991
  type: object
7987
7992
  description: |
7988
- The package's persist build plan. Mirrors Malloy's native build plan plus
7989
- the minimal per-source detail a caller needs to assign
7990
- identity/naming/realization. Lineage, policy, and connection capability
7991
- are intentionally omitted until they carry real data.
7993
+ The package's persist build plan, from Malloy's build targets: the order
7994
+ its persist sources build in, the tables each reads, and the minimal
7995
+ per-source detail a caller needs to assign identity/naming/realization.
7996
+ Policy and connection capability are intentionally omitted until they
7997
+ carry real data.
7992
7998
  required: [graphs, sources]
7993
7999
  properties:
7994
8000
  graphs:
7995
8001
  type: array
7996
8002
  description: >-
7997
8003
  Dependency-ordered build graphs. One per connection per model, not one
7998
- per connection: a model contributes a graph for each connection its ROOT
8004
+ per connection: a model contributes a graph for each connection its
7999
8005
  persist sources use, and a package's plan concatenates every model's, so
8000
8006
  the same source appears in the graph of every model that imports it.
8001
8007
  items:
@@ -8138,8 +8144,9 @@ components:
8138
8144
  nodes:
8139
8145
  type: array
8140
8146
  description:
8141
- Leveled build nodes; each inner array is one parallelizable level,
8142
- levels run in order.
8147
+ A single level holding every persist source of the graph, in build
8148
+ order. Each node's `dependsOn` names every source on every table it
8149
+ reads, so the edges are complete without walking anything.
8143
8150
  items:
8144
8151
  type: array
8145
8152
  items:
@@ -8154,7 +8161,11 @@ components:
8154
8161
  description: "sourceName@modelURL"
8155
8162
  dependsOn:
8156
8163
  type: array
8157
- description: Upstream sourceIDs in this graph.
8164
+ description: >-
8165
+ sourceIDs of the sources on the tables this source reads. Sources on
8166
+ one table (a source and its extensions) read none of each other. A
8167
+ source Malloy cannot plan, which is refused rather than built, lists
8168
+ none.
8158
8169
  items:
8159
8170
  type: string
8160
8171
 
@@ -1 +1 @@
1
- import{c as r,D as t,j as e,ab as i,aA as o}from"./index-iyvwQg3j.js";function m(){const s=r(),{environmentName:n}=t();if(n){const a=i({environmentName:n});return e.jsx(o,{onSelectPackage:s,resourceUri:a})}else return e.jsx("div",{children:e.jsx("h2",{children:"Missing environment name"})})}export{m as default};
1
+ import{K as r,C as t,j as e,ab as i,aA as o}from"./index-CGKV9Dxi.js";function m(){const s=r(),{environmentName:n}=t();if(n){const a=i({environmentName:n});return e.jsx(o,{onSelectPackage:s,resourceUri:a})}else return e.jsx("div",{children:e.jsx("h2",{children:"Missing environment name"})})}export{m as default};
@@ -1 +1 @@
1
- import{c as t,j as o,k as a}from"./index-iyvwQg3j.js";function s(){const n=t();return o.jsx(a,{onClickEnvironment:n})}export{s as default};
1
+ import{K as t,j as o,c as a}from"./index-CGKV9Dxi.js";function s(){const n=t();return o.jsx(a,{onClickEnvironment:n})}export{s as default};
@@ -1 +1 @@
1
- import{a as j,j as t,s as D,B as Pe,m as Q,e as ce,g as me,b as fe,r as h,u as ge,d as Me,f as W,h as ye,T as K,i as G,l as Ee,n as ze,o as Ie,p as be,q as Ce,t as De,v as de,w as Te,x as Be,y as A,z as H,M as Re,P as $e,A as Le,S as He,C as J,D as Z,E as Ne,F as Ae,G as Oe,X as pe,H as We,c as ee,I as u,J as Ve,K as Y,L as V,N as te,O as Fe,Q as Ue,R as ue,U as Xe,V as re,W as ne,Y as oe,Z as _e,_ as Ye,$ as qe,a0 as Qe}from"./index-iyvwQg3j.js";import{u as Ke,l as he}from"./editPageMounted-po3c6RP3.js";import{i as Ge,w as Je,a as Ze}from"./documentRoutes-CnLoYf4D.js";const et=j(t.jsx("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"})),tt=D(Pe,{name:"MuiBreadcrumbCollapsed"})(Q(({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:ce(e.palette.grey[200],.12)}:{backgroundColor:ce(e.palette.grey[600],.12)}}}))),rt=D(et)({width:24,height:16});function nt(e){const{slots:r={},slotProps:o={},...n}=e,s=e;return t.jsx("li",{children:t.jsx(tt,{focusRipple:!0,...n,ownerState:s,children:t.jsx(rt,{as:r.CollapsedIcon,ownerState:s,...o.collapsedIcon})})})}function ot(e){return me("MuiBreadcrumbs",e)}const st=fe("MuiBreadcrumbs",["root","ol","li","separator"]),at=e=>{const{classes:r}=e;return ye({root:["root"],li:["li"],ol:["ol"],separator:["separator"]},ot,r)},it=D(K,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(e,r)=>[{[`& .${st.li}`]:r.li},r.root]})({}),lt=D("ol",{name:"MuiBreadcrumbs",slot:"Ol"})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),ct=D("li",{name:"MuiBreadcrumbs",slot:"Separator"})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function dt(e,r,o,n){return e.reduce((s,l,a)=>(a<e.length-1?s=s.concat(l,t.jsx(ct,{"aria-hidden":!0,className:r,ownerState:n,children:o},`separator-${a}`)):s.push(l),s),[])}const pt=h.forwardRef(function(r,o){const n=ge({props:r,name:"MuiBreadcrumbs"}),{children:s,className:l,component:a="nav",slots:d={},slotProps:x={},expandText:p="Show path",itemsAfterCollapse:m=1,itemsBeforeCollapse:b=1,maxItems:g=8,separator:k="/",...M}=n,[E,z]=h.useState(!1),v={...n,component:a,expanded:E,expandText:p,itemsAfterCollapse:m,itemsBeforeCollapse:b,maxItems:g,separator:k},I=at(v),T=Me({elementType:d.CollapsedIcon,externalSlotProps:x.collapsedIcon,ownerState:v}),w=h.useRef(null),S=c=>{const P=()=>{z(!0);const y=w.current.querySelector("a[href],button,[tabindex]");y&&y.focus()};return b+m>=c.length?c:[...c.slice(0,b),t.jsx(nt,{"aria-label":p,slots:{CollapsedIcon:d.CollapsedIcon},slotProps:{collapsedIcon:T},onClick:P},"ellipsis"),...c.slice(c.length-m,c.length)]},B=h.Children.toArray(s).filter(c=>h.isValidElement(c)).map((c,P)=>t.jsx("li",{className:I.li,children:c},`child-${P}`));return t.jsx(it,{ref:o,component:a,color:"textSecondary",className:W(I.root,l),ownerState:v,...M,children:t.jsx(lt,{className:I.ol,ref:w,ownerState:v,children:dt(E||g&&B.length<=g?B:S(B),I.separator,k,v)})})});function ut(e,r,o){const n=r.getBoundingClientRect(),s=o&&o.getBoundingClientRect(),l=be(r);let a;if(r.fakeTransform)a=r.fakeTransform;else{const p=l.getComputedStyle(r);a=p.getPropertyValue("-webkit-transform")||p.getPropertyValue("transform")}let d=0,x=0;if(a&&a!=="none"&&typeof a=="string"){const p=a.split("(")[1].split(")")[0].split(",");d=parseInt(p[4],10),x=parseInt(p[5],10)}return e==="left"?s?`translateX(${s.right+d-n.left}px)`:`translateX(${l.innerWidth+d-n.left}px)`:e==="right"?s?`translateX(-${n.right-s.left-d}px)`:`translateX(-${n.left+n.width-d}px)`:e==="up"?s?`translateY(${s.bottom+x-n.top}px)`:`translateY(${l.innerHeight+x-n.top}px)`:s?`translateY(-${n.top-s.top+n.height-x}px)`:`translateY(-${n.top+n.height-x}px)`}function ht(e){return typeof e=="function"?e():e}function O(e,r,o){const n=ht(o),s=ut(e,r,n);s&&(r.style.webkitTransform=s,r.style.transform=s)}const xt=h.forwardRef(function(r,o){const n=G(),s={enter:n.transitions.easing.easeOut,exit:n.transitions.easing.sharp},l={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{addEndListener:a,appear:d=!0,children:x,container:p,direction:m="down",easing:b=s,in:g,onEnter:k,onEntered:M,onEntering:E,onExit:z,onExited:v,onExiting:I,style:T,timeout:w=l,TransitionComponent:S=Ee,...B}=r,c=h.useRef(null),P=ze(Ie(x),c,o),y=i=>f=>{i&&(f===void 0?i(c.current):i(c.current,f))},F=y((i,f)=>{O(m,i,p),De(i),k&&k(i,f)}),ae=y((i,f)=>{const L=de({timeout:w,style:T,easing:b},{mode:"enter"});i.style.webkitTransition=n.transitions.create("-webkit-transform",{...L}),i.style.transition=n.transitions.create("transform",{...L}),i.style.webkitTransform="none",i.style.transform="none",E&&E(i,f)}),R=y(M),$=y(I),C=y(i=>{const f=de({timeout:w,style:T,easing:b},{mode:"exit"});i.style.webkitTransition=n.transitions.create("-webkit-transform",f),i.style.transition=n.transitions.create("transform",f),O(m,i,p),z&&z(i)}),U=y(i=>{i.style.webkitTransition="",i.style.transition="",v&&v(i)}),X=i=>{a&&a(c.current,i)},N=h.useCallback(()=>{c.current&&O(m,c.current,p)},[m,p]);return h.useEffect(()=>{if(g||m==="down"||m==="right")return;const i=Ce(()=>{c.current&&O(m,c.current,p)}),f=be(c.current);return f.addEventListener("resize",i),()=>{i.clear(),f.removeEventListener("resize",i)}},[m,g,p]),h.useEffect(()=>{g||N()},[g,N]),t.jsx(S,{nodeRef:c,onEnter:F,onEntered:R,onEntering:ae,onExit:C,onExited:U,onExiting:$,addEndListener:X,appear:d,in:g,timeout:w,...B,children:(i,{ownerState:f,...L})=>h.cloneElement(x,{ref:P,style:{visibility:i==="exited"&&!g?"hidden":void 0,...T,...x.props.style},...L})})});function mt(e){return me("MuiDrawer",e)}fe("MuiDrawer",["root","docked","paper","anchorLeft","anchorRight","anchorTop","anchorBottom","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedRight","paperAnchorDockedTop","paperAnchorDockedBottom","modal"]);const ve=(e,r)=>{const{ownerState:o}=e;return[r.root,(o.variant==="permanent"||o.variant==="persistent")&&r.docked,r.modal]},ft=e=>{const{classes:r,anchor:o,variant:n}=e,s={root:["root",`anchor${H(o)}`],docked:[(n==="permanent"||n==="persistent")&&"docked"],modal:["modal"],paper:["paper",`paperAnchor${H(o)}`,n!=="temporary"&&`paperAnchorDocked${H(o)}`]};return ye(s,mt,r)},gt=D(Re,{name:"MuiDrawer",slot:"Root",overridesResolver:ve})(Q(({theme:e})=>({zIndex:(e.vars||e).zIndex.drawer}))),yt=D("div",{shouldForwardProp:Le,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:ve})({flex:"0 0 auto"}),bt=D($e,{name:"MuiDrawer",slot:"Paper",overridesResolver:(e,r)=>{const{ownerState:o}=e;return[r.paper,r[`paperAnchor${H(o.anchor)}`],o.variant!=="temporary"&&r[`paperAnchorDocked${H(o.anchor)}`]]}})(Q(({theme:e})=>({overflowY:"auto",display:"flex",flexDirection:"column",height:"100%",flex:"1 0 auto",zIndex:(e.vars||e).zIndex.drawer,WebkitOverflowScrolling:"touch",position:"fixed",top:0,outline:0,variants:[{props:{anchor:"left"},style:{left:0}},{props:{anchor:"top"},style:{top:0,left:0,right:0,height:"auto",maxHeight:"100%"}},{props:{anchor:"right"},style:{right:0}},{props:{anchor:"bottom"},style:{top:"auto",left:0,bottom:0,right:0,height:"auto",maxHeight:"100%"}},{props:({ownerState:r})=>r.anchor==="left"&&r.variant!=="temporary",style:{borderRight:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="top"&&r.variant!=="temporary",style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="right"&&r.variant!=="temporary",style:{borderLeft:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="bottom"&&r.variant!=="temporary",style:{borderTop:`1px solid ${(e.vars||e).palette.divider}`}}]}))),je={left:"right",right:"left",top:"down",bottom:"up"};function vt(e){return["left","right"].includes(e)}function jt({direction:e},r){return e==="rtl"&&vt(r)?je[r]:r}const kt=h.forwardRef(function(r,o){const n=ge({props:r,name:"MuiDrawer"}),s=G(),l=Te(),a={enter:s.transitions.duration.enteringScreen,exit:s.transitions.duration.leavingScreen},{anchor:d="left",BackdropProps:x,children:p,className:m,elevation:b=16,hideBackdrop:g=!1,ModalProps:{BackdropProps:k,...M}={},onClose:E,open:z=!1,PaperProps:v={},SlideProps:I,TransitionComponent:T,transitionDuration:w=a,variant:S="temporary",slots:B={},slotProps:c={},...P}=n,y=h.useRef(!1);h.useEffect(()=>{y.current=!0},[]);const F=jt({direction:l?"rtl":"ltr"},d),R={...n,anchor:d,elevation:b,open:z,variant:S,...P},$=ft(R),C={slots:{transition:T,...B},slotProps:{paper:v,transition:I,...c,backdrop:Be(c.backdrop||{...x,...k},{transitionDuration:w})}},[U,X]=A("root",{ref:o,elementType:gt,className:W($.root,$.modal,m),shouldForwardComponentProp:!0,ownerState:R,externalForwardedProps:{...C,...P,...M},additionalProps:{open:z,onClose:E,hideBackdrop:g,slots:{backdrop:C.slots.backdrop},slotProps:{backdrop:C.slotProps.backdrop}}}),[N,i]=A("paper",{elementType:bt,shouldForwardComponentProp:!0,className:W($.paper,v.className),ownerState:R,externalForwardedProps:C,additionalProps:{elevation:S==="temporary"?b:0,square:!0,...S==="temporary"&&{role:"dialog","aria-modal":"true"}}}),[f,L]=A("docked",{elementType:yt,ref:o,className:W($.root,$.docked,m),ownerState:R,externalForwardedProps:C,additionalProps:P}),[we,Se]=A("transition",{elementType:xt,ownerState:R,externalForwardedProps:C,additionalProps:{in:z,direction:je[F],timeout:w,appear:y.current}}),ie=t.jsx(N,{...i,children:p});if(S==="permanent")return t.jsx(f,{...L,children:ie});const le=t.jsx(we,{...Se,children:ie});return S==="persistent"?t.jsx(f,{...L,children:le}):t.jsx(U,{...X,children:le})}),wt=j([t.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"),t.jsx("path",{d:"M14 17H7v-2h7zm3-4H7v-2h10zm0-4H7V7h10z"},"1")]),St=j(t.jsx("path",{d:"M10.85 12.65h2.3L12 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM14.3 16l-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9z"})),Pt=j(t.jsx("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6z"})),Mt=j(t.jsx("path",{d:"M9.37 5.51c-.18.64-.27 1.31-.27 1.99 0 4.08 3.32 7.4 7.4 7.4.68 0 1.35-.09 1.99-.27C17.45 17.19 14.93 19 12 19c-3.86 0-7-3.14-7-7 0-2.93 1.81-5.45 4.37-6.49M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9 9-4.03 9-9c0-.46-.04-.92-.1-1.36-.98 1.37-2.58 2.26-4.4 2.26-2.98 0-5.4-2.42-5.4-5.4 0-1.81.89-3.42 2.26-4.4-.44-.06-.9-.1-1.36-.1"})),Et=j(t.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"})),zt=j(t.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"})),It=j(t.jsx("path",{d:"m12 5.69 5 4.5V18h-2v-6H9v6H7v-7.81zM12 3 2 12h3v8h6v-6h2v6h6v-8h3z"})),Ct=j(t.jsx("path",{d:"M12 9c1.65 0 3 1.35 3 3s-1.35 3-3 3-3-1.35-3-3 1.35-3 3-3m0-2c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5M2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1m18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1M11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1m0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1M5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0z"})),Dt=j(t.jsx("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3z"})),Tt=j([t.jsx("path",{d:"M12 22C6.49 22 2 17.51 2 12S6.49 2 12 2s10 4.04 10 9c0 3.31-2.69 6-6 6h-1.77c-.28 0-.5.22-.5.5 0 .12.05.23.13.33.41.47.64 1.06.64 1.67 0 1.38-1.12 2.5-2.5 2.5m0-18c-4.41 0-8 3.59-8 8s3.59 8 8 8c.28 0 .5-.22.5-.5 0-.16-.08-.28-.14-.35-.41-.46-.63-1.05-.63-1.65 0-1.38 1.12-2.5 2.5-2.5H16c2.21 0 4-1.79 4-4 0-3.86-3.59-7-8-7"},"0"),t.jsx("circle",{cx:"6.5",cy:"11.5",r:"1.5"},"1"),t.jsx("circle",{cx:"9.5",cy:"7.5",r:"1.5"},"2"),t.jsx("circle",{cx:"14.5",cy:"7.5",r:"1.5"},"3"),t.jsx("circle",{cx:"17.5",cy:"11.5",r:"1.5"},"4")]);function q(e){return t.jsxs(He,{...e,viewBox:"0 0 24 24",sx:{fill:"none",...e.sx},children:[t.jsx("rect",{x:"3.25",y:"4.75",width:"17.5",height:"14.5",rx:"2.25",stroke:"currentColor",strokeWidth:"1.5"}),t.jsx("line",{x1:"8.5",y1:"5",x2:"8.5",y2:"19",stroke:"currentColor",strokeWidth:"1.5"})]})}const Bt=/\.malloy(nb)?$/;function Rt(){const{pathname:e,search:r}=J(),o=Z(),n=Ne(),s=Ae(),l=Ke(),a=o.environmentName??"",d=o.packageName??"",x=o["*"]??"",p=a!==""&&d!==""&&x!==""&&!Bt.test(x),{reports:m,settled:b}=Oe(a,d,void 0,p);if(!p||s)return null;const g=x.replace(/\/$/,""),k=Ge(r),M=e.replace(/\/$/,"");return k?l?null:t.jsx(pe,{label:"View",onClick:()=>n(`${M}${Je(r)}`)}):(b?We(`${g}.malloy`,m):void 0)?.editable?t.jsx("span",{onPointerEnter:()=>void he(),onFocus:()=>void he(),children:t.jsx(pe,{label:"Edit",icon:t.jsx(Et,{}),onClick:()=>n(`${M}${Ze(r)}`)})}):null}function _({label:e,onClick:r,current:o=!1}){return t.jsx(Ve,{clickable:!0,onClick:r,label:e,size:"small","aria-label":`Navigate to ${e}`,"aria-current":o?"page":void 0,sx:n=>({backgroundColor:"transparent",border:"none",color:o?"text.primary":"text.secondary",fontWeight:o?500:400,fontSize:13,height:28,cursor:"pointer",borderRadius:"6px",maxWidth:320,"& .MuiChip-label":{px:.75,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},"&:hover":{backgroundColor:n.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"grey.100"}})})}function $t(){const e=Z(),r=e["*"]?e["*"].replace(/\/$/,""):void 0,o=ee();return!e.environmentName&&!e.packageName&&!r?null:t.jsx(u,{sx:{display:"flex",alignItems:"center",minWidth:0},children:t.jsxs(pt,{"aria-label":"breadcrumb",separator:t.jsx(u,{component:"span","aria-hidden":!0,sx:{color:"text.disabled"},children:"/"}),children:[e.environmentName&&t.jsx(_,{label:e.environmentName,current:!e.packageName&&!r,onClick:n=>o(`/${e.environmentName}/`,n)}),e.packageName&&t.jsx(_,{label:e.packageName,current:!r,onClick:n=>o(`/${e.environmentName}/${e.packageName}/`,n)}),r&&t.jsx(_,{label:r,current:!0,onClick:n=>o(`/${e.environmentName}/${e.packageName}/${r}`,n)})]})})}const Lt=260,Ht=64;function ke({isCollapsed:e,onToggleCollapse:r,logoHeader:o}){return t.jsxs(u,{sx:{height:"100dvh",width:e?Ht:Lt,flexShrink:0,display:"flex",flexDirection:"column",backgroundColor:"background.paper",transition:"width 0.2s cubic-bezier(0.4, 0, 0.2, 1)",overflow:"hidden"},children:[t.jsx(Nt,{isCollapsed:e,onToggleCollapse:r,logoHeader:o}),t.jsxs(u,{sx:{flex:1,overflowY:"auto",overflowX:"hidden",py:1},children:[t.jsx(At,{isCollapsed:e}),t.jsx(Ot,{isCollapsed:e})]}),t.jsx(Wt,{isCollapsed:e})]})}function Nt({isCollapsed:e,onToggleCollapse:r,logoHeader:o}){const n=ee();return o?t.jsxs(u,{sx:{height:56,display:"flex",alignItems:"center",justifyContent:"space-between",px:e?0:2,flexShrink:0},children:[o,t.jsx(Y,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(q,{fontSize:"small"})})]}):t.jsxs(u,{sx:{minHeight:56,display:"flex",flexDirection:e?"column":"row",alignItems:"center",justifyContent:e?"center":"space-between",gap:e?.5:0,py:e?1:0,px:e?0:2,flexShrink:0},children:[t.jsxs(u,{onClick:s=>n("/",s),sx:{display:"flex",alignItems:"center",gap:1,cursor:"pointer",minWidth:0},children:[t.jsx(u,{component:"img",src:"/logo.svg",alt:"Malloy",sx:{width:24,height:24,flexShrink:0}}),!e&&t.jsx(K,{variant:"subtitle1",sx:{color:"text.primary",fontWeight:500,letterSpacing:"-0.025em",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:"Malloy Publisher"})]}),t.jsx(V,{title:e?"Expand sidebar":"Collapse sidebar",placement:"right",children:t.jsx(Y,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(q,{fontSize:"small"})})})]})}function At({isCollapsed:e}){const o=J().pathname==="/";return t.jsx(te,{sx:{py:0},children:t.jsx(se,{icon:t.jsx(It,{fontSize:"small"}),label:"Home",to:"/",selected:o,isCollapsed:e})})}function Ot({isCollapsed:e}){const{apiClients:r}=Fe(),o=Z(),{data:n}=Ue({queryKey:["environments"],queryFn:()=>r.environments.listEnvironments()}),s=n?.data??[];return s.length===0?null:t.jsxs(u,{sx:{mt:1},children:[!e&&t.jsx(K,{variant:"caption",sx:{display:"block",px:3,py:1,color:"text.secondary",fontWeight:500,textTransform:"uppercase",fontSize:"0.6875rem",letterSpacing:"0.5px"},children:"Environments"}),t.jsx(te,{sx:{py:0},children:s.map(l=>{const a=l.name??"";return t.jsx(se,{icon:t.jsx(zt,{fontSize:"small"}),label:a,to:`/${a}`,selected:o.environmentName===a,isCollapsed:e},a)})})]})}function Wt({isCollapsed:e}){const{pathname:r}=J(),o=[{label:"Malloy Docs",href:ue.docsHome,icon:t.jsx(wt,{fontSize:"small"}),external:!0},{label:"Publisher Docs",href:ue.publishing,icon:t.jsx(Dt,{fontSize:"small"}),external:!0},{label:"Publisher API",href:"/api-doc.html",icon:t.jsx(Pt,{fontSize:"small"}),external:!1}];return t.jsxs(te,{sx:{py:1},children:[t.jsx(se,{icon:t.jsx(Tt,{fontSize:"small"}),label:"Theme",to:"/settings/theme",selected:r.startsWith("/settings/theme"),isCollapsed:e}),t.jsx(Xt,{isCollapsed:e}),o.map(n=>t.jsx(Vt,{label:n.label,href:n.href,icon:n.icon,external:n.external,isCollapsed:e},n.label))]})}function se({icon:e,label:r,to:o,selected:n,isCollapsed:s}){const l=ee(),a=t.jsxs(re,{selected:n,onClick:d=>l(o,d),sx:{justifyContent:s?"center":"flex-start",px:s?0:2},children:[t.jsx(ne,{sx:{minWidth:s?0:36,justifyContent:"center",color:n?"text.primary":"text.secondary"},children:e}),!s&&t.jsx(oe,{primary:r,primaryTypographyProps:{variant:"body2",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}})]});return s?t.jsx(V,{title:r,placement:"right",children:t.jsx(u,{children:a})}):a}function Vt({label:e,href:r,icon:o,external:n,isCollapsed:s}){const l=t.jsxs(re,{component:"a",href:r,target:n?"_blank":void 0,rel:n?"noopener noreferrer":void 0,sx:{justifyContent:s?"center":"flex-start",px:s?0:2},children:[t.jsx(ne,{sx:{minWidth:s?0:36,justifyContent:"center",color:"text.secondary"},children:o}),!s&&t.jsx(oe,{primary:e,primaryTypographyProps:{variant:"body2",sx:{color:"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}})]});return s?t.jsx(V,{title:e,placement:"right",children:t.jsx(u,{children:l})}):l}const Ft={light:"dark",dark:"auto",auto:"light"},Ut={light:"Light mode",dark:"Dark mode",auto:"Auto mode"},xe={light:"Light mode (click for dark)",dark:"Dark mode (click for auto)",auto:"Auto mode (follows OS, click for light)"};function Xt({isCollapsed:e}){const{mode:r,userChoice:o,setMode:n,allowUserToggle:s}=Xe();if(!s)return null;const l=o??r,a=l==="auto"?St:l==="dark"?Mt:Ct,d=t.jsxs(re,{"aria-label":xe[l],onClick:()=>n(Ft[l]),sx:{justifyContent:e?"center":"flex-start",px:e?0:2},children:[t.jsx(ne,{sx:{minWidth:e?0:36,justifyContent:"center",color:"text.secondary"},children:t.jsx(a,{fontSize:"small"})}),!e&&t.jsx(oe,{primary:Ut[l],primaryTypographyProps:{variant:"body2",sx:{color:"text.secondary",whiteSpace:"nowrap"}}})]});return t.jsx(V,{title:xe[l],placement:"right",disableHoverListener:!e,children:t.jsx(u,{children:d})})}function _t({open:e,onClose:r,logoHeader:o}){return t.jsx(kt,{anchor:"left",open:e,onClose:r,ModalProps:{keepMounted:!0},sx:{display:{xs:"block",md:"none"},"& .MuiDrawer-paper":{boxSizing:"border-box",width:260}},children:t.jsx(ke,{isCollapsed:!1,onToggleCollapse:r,logoHeader:o})})}function Kt({headerProps:e}){const r=G(),o=_e(r.breakpoints.up("md")),[n,s]=h.useState(!1),[l,a]=h.useState(!1);return h.useEffect(()=>{o&&n&&s(!1)},[o,n]),t.jsxs(u,{sx:{height:"100dvh",display:"flex",flexDirection:"row",bgcolor:"background.default"},children:[o&&t.jsx(ke,{isCollapsed:l,onToggleCollapse:()=>a(d=>!d),logoHeader:e?.logoHeader}),t.jsxs(u,{component:"main",sx:{flex:1,display:"flex",flexDirection:"column",minWidth:0},children:[t.jsxs(u,{sx:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"space-between",height:Ye.headerHeight,px:{xs:1,md:3},backgroundColor:"background.default"},children:[t.jsx(u,{sx:{display:{xs:"flex",md:"none"},alignItems:"center",mr:1},children:t.jsx(Y,{size:"small",onClick:()=>s(!0),"aria-label":"Open navigation",children:t.jsx(q,{fontSize:"small"})})}),t.jsx(u,{sx:{flex:1,minWidth:0,display:"flex",alignItems:"center"},children:t.jsx($t,{})}),t.jsxs(u,{id:"header-actions-portal",sx:{display:"flex",alignItems:"center",flexShrink:0,gap:1},children:[t.jsx(Rt,{}),e?.endCap]})]}),t.jsx(u,{sx:{flex:1,overflow:"auto",minWidth:320,minHeight:0},children:t.jsx(h.Suspense,{fallback:t.jsx(Qe,{}),children:t.jsx(qe,{})})})]}),t.jsx(_t,{open:n,onClose:()=>s(!1),logoHeader:e?.logoHeader})]})}export{Kt as default};
1
+ import{a as j,j as t,s as D,B as Pe,m as K,e as ce,g as me,b as fe,r as h,u as ge,d as Ee,f as W,h as ye,T as Q,i as Z,k as Me,l as ze,n as Ie,o as be,p as Ce,q as De,t as de,v as Te,w as Be,x as A,y as H,M as Re,P as $e,z as Le,S as He,A as G,C as J,D as Ne,E as Ae,F as Oe,Z as pe,G as We,K as ee,H as u,I as Ve,J as Y,L as V,N as te,O as Fe,Q as Ue,R as ue,U as _e,V as re,W as ne,X as oe,Y as Xe,_ as Ye,$ as qe,a0 as Ke}from"./index-CGKV9Dxi.js";import{u as Qe,l as he}from"./editPageMounted-1X99LP7v.js";import{i as Ze,w as Ge,a as Je}from"./documentRoutes-D_C8snHV.js";const et=j(t.jsx("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"})),tt=D(Pe,{name:"MuiBreadcrumbCollapsed"})(K(({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:ce(e.palette.grey[200],.12)}:{backgroundColor:ce(e.palette.grey[600],.12)}}}))),rt=D(et)({width:24,height:16});function nt(e){const{slots:r={},slotProps:o={},...n}=e,s=e;return t.jsx("li",{children:t.jsx(tt,{focusRipple:!0,...n,ownerState:s,children:t.jsx(rt,{as:r.CollapsedIcon,ownerState:s,...o.collapsedIcon})})})}function ot(e){return me("MuiBreadcrumbs",e)}const st=fe("MuiBreadcrumbs",["root","ol","li","separator"]),at=e=>{const{classes:r}=e;return ye({root:["root"],li:["li"],ol:["ol"],separator:["separator"]},ot,r)},it=D(Q,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(e,r)=>[{[`& .${st.li}`]:r.li},r.root]})({}),lt=D("ol",{name:"MuiBreadcrumbs",slot:"Ol"})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),ct=D("li",{name:"MuiBreadcrumbs",slot:"Separator"})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function dt(e,r,o,n){return e.reduce((s,l,a)=>(a<e.length-1?s=s.concat(l,t.jsx(ct,{"aria-hidden":!0,className:r,ownerState:n,children:o},`separator-${a}`)):s.push(l),s),[])}const pt=h.forwardRef(function(r,o){const n=ge({props:r,name:"MuiBreadcrumbs"}),{children:s,className:l,component:a="nav",slots:d={},slotProps:x={},expandText:p="Show path",itemsAfterCollapse:m=1,itemsBeforeCollapse:b=1,maxItems:g=8,separator:k="/",...E}=n,[M,z]=h.useState(!1),v={...n,component:a,expanded:M,expandText:p,itemsAfterCollapse:m,itemsBeforeCollapse:b,maxItems:g,separator:k},I=at(v),T=Ee({elementType:d.CollapsedIcon,externalSlotProps:x.collapsedIcon,ownerState:v}),w=h.useRef(null),S=c=>{const P=()=>{z(!0);const y=w.current.querySelector("a[href],button,[tabindex]");y&&y.focus()};return b+m>=c.length?c:[...c.slice(0,b),t.jsx(nt,{"aria-label":p,slots:{CollapsedIcon:d.CollapsedIcon},slotProps:{collapsedIcon:T},onClick:P},"ellipsis"),...c.slice(c.length-m,c.length)]},B=h.Children.toArray(s).filter(c=>h.isValidElement(c)).map((c,P)=>t.jsx("li",{className:I.li,children:c},`child-${P}`));return t.jsx(it,{ref:o,component:a,color:"textSecondary",className:W(I.root,l),ownerState:v,...E,children:t.jsx(lt,{className:I.ol,ref:w,ownerState:v,children:dt(M||g&&B.length<=g?B:S(B),I.separator,k,v)})})});function ut(e,r,o){const n=r.getBoundingClientRect(),s=o&&o.getBoundingClientRect(),l=be(r);let a;if(r.fakeTransform)a=r.fakeTransform;else{const p=l.getComputedStyle(r);a=p.getPropertyValue("-webkit-transform")||p.getPropertyValue("transform")}let d=0,x=0;if(a&&a!=="none"&&typeof a=="string"){const p=a.split("(")[1].split(")")[0].split(",");d=parseInt(p[4],10),x=parseInt(p[5],10)}return e==="left"?s?`translateX(${s.right+d-n.left}px)`:`translateX(${l.innerWidth+d-n.left}px)`:e==="right"?s?`translateX(-${n.right-s.left-d}px)`:`translateX(-${n.left+n.width-d}px)`:e==="up"?s?`translateY(${s.bottom+x-n.top}px)`:`translateY(${l.innerHeight+x-n.top}px)`:s?`translateY(-${n.top-s.top+n.height-x}px)`:`translateY(-${n.top+n.height-x}px)`}function ht(e){return typeof e=="function"?e():e}function O(e,r,o){const n=ht(o),s=ut(e,r,n);s&&(r.style.webkitTransform=s,r.style.transform=s)}const xt=h.forwardRef(function(r,o){const n=Z(),s={enter:n.transitions.easing.easeOut,exit:n.transitions.easing.sharp},l={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{addEndListener:a,appear:d=!0,children:x,container:p,direction:m="down",easing:b=s,in:g,onEnter:k,onEntered:E,onEntering:M,onExit:z,onExited:v,onExiting:I,style:T,timeout:w=l,TransitionComponent:S=Me,...B}=r,c=h.useRef(null),P=ze(Ie(x),c,o),y=i=>f=>{i&&(f===void 0?i(c.current):i(c.current,f))},F=y((i,f)=>{O(m,i,p),De(i),k&&k(i,f)}),ae=y((i,f)=>{const L=de({timeout:w,style:T,easing:b},{mode:"enter"});i.style.webkitTransition=n.transitions.create("-webkit-transform",{...L}),i.style.transition=n.transitions.create("transform",{...L}),i.style.webkitTransform="none",i.style.transform="none",M&&M(i,f)}),R=y(E),$=y(I),C=y(i=>{const f=de({timeout:w,style:T,easing:b},{mode:"exit"});i.style.webkitTransition=n.transitions.create("-webkit-transform",f),i.style.transition=n.transitions.create("transform",f),O(m,i,p),z&&z(i)}),U=y(i=>{i.style.webkitTransition="",i.style.transition="",v&&v(i)}),_=i=>{a&&a(c.current,i)},N=h.useCallback(()=>{c.current&&O(m,c.current,p)},[m,p]);return h.useEffect(()=>{if(g||m==="down"||m==="right")return;const i=Ce(()=>{c.current&&O(m,c.current,p)}),f=be(c.current);return f.addEventListener("resize",i),()=>{i.clear(),f.removeEventListener("resize",i)}},[m,g,p]),h.useEffect(()=>{g||N()},[g,N]),t.jsx(S,{nodeRef:c,onEnter:F,onEntered:R,onEntering:ae,onExit:C,onExited:U,onExiting:$,addEndListener:_,appear:d,in:g,timeout:w,...B,children:(i,{ownerState:f,...L})=>h.cloneElement(x,{ref:P,style:{visibility:i==="exited"&&!g?"hidden":void 0,...T,...x.props.style},...L})})});function mt(e){return me("MuiDrawer",e)}fe("MuiDrawer",["root","docked","paper","anchorLeft","anchorRight","anchorTop","anchorBottom","paperAnchorLeft","paperAnchorRight","paperAnchorTop","paperAnchorBottom","paperAnchorDockedLeft","paperAnchorDockedRight","paperAnchorDockedTop","paperAnchorDockedBottom","modal"]);const ve=(e,r)=>{const{ownerState:o}=e;return[r.root,(o.variant==="permanent"||o.variant==="persistent")&&r.docked,r.modal]},ft=e=>{const{classes:r,anchor:o,variant:n}=e,s={root:["root",`anchor${H(o)}`],docked:[(n==="permanent"||n==="persistent")&&"docked"],modal:["modal"],paper:["paper",`paperAnchor${H(o)}`,n!=="temporary"&&`paperAnchorDocked${H(o)}`]};return ye(s,mt,r)},gt=D(Re,{name:"MuiDrawer",slot:"Root",overridesResolver:ve})(K(({theme:e})=>({zIndex:(e.vars||e).zIndex.drawer}))),yt=D("div",{shouldForwardProp:Le,name:"MuiDrawer",slot:"Docked",skipVariantsResolver:!1,overridesResolver:ve})({flex:"0 0 auto"}),bt=D($e,{name:"MuiDrawer",slot:"Paper",overridesResolver:(e,r)=>{const{ownerState:o}=e;return[r.paper,r[`paperAnchor${H(o.anchor)}`],o.variant!=="temporary"&&r[`paperAnchorDocked${H(o.anchor)}`]]}})(K(({theme:e})=>({overflowY:"auto",display:"flex",flexDirection:"column",height:"100%",flex:"1 0 auto",zIndex:(e.vars||e).zIndex.drawer,WebkitOverflowScrolling:"touch",position:"fixed",top:0,outline:0,variants:[{props:{anchor:"left"},style:{left:0}},{props:{anchor:"top"},style:{top:0,left:0,right:0,height:"auto",maxHeight:"100%"}},{props:{anchor:"right"},style:{right:0}},{props:{anchor:"bottom"},style:{top:"auto",left:0,bottom:0,right:0,height:"auto",maxHeight:"100%"}},{props:({ownerState:r})=>r.anchor==="left"&&r.variant!=="temporary",style:{borderRight:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="top"&&r.variant!=="temporary",style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="right"&&r.variant!=="temporary",style:{borderLeft:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:r})=>r.anchor==="bottom"&&r.variant!=="temporary",style:{borderTop:`1px solid ${(e.vars||e).palette.divider}`}}]}))),je={left:"right",right:"left",top:"down",bottom:"up"};function vt(e){return["left","right"].includes(e)}function jt({direction:e},r){return e==="rtl"&&vt(r)?je[r]:r}const kt=h.forwardRef(function(r,o){const n=ge({props:r,name:"MuiDrawer"}),s=Z(),l=Te(),a={enter:s.transitions.duration.enteringScreen,exit:s.transitions.duration.leavingScreen},{anchor:d="left",BackdropProps:x,children:p,className:m,elevation:b=16,hideBackdrop:g=!1,ModalProps:{BackdropProps:k,...E}={},onClose:M,open:z=!1,PaperProps:v={},SlideProps:I,TransitionComponent:T,transitionDuration:w=a,variant:S="temporary",slots:B={},slotProps:c={},...P}=n,y=h.useRef(!1);h.useEffect(()=>{y.current=!0},[]);const F=jt({direction:l?"rtl":"ltr"},d),R={...n,anchor:d,elevation:b,open:z,variant:S,...P},$=ft(R),C={slots:{transition:T,...B},slotProps:{paper:v,transition:I,...c,backdrop:Be(c.backdrop||{...x,...k},{transitionDuration:w})}},[U,_]=A("root",{ref:o,elementType:gt,className:W($.root,$.modal,m),shouldForwardComponentProp:!0,ownerState:R,externalForwardedProps:{...C,...P,...E},additionalProps:{open:z,onClose:M,hideBackdrop:g,slots:{backdrop:C.slots.backdrop},slotProps:{backdrop:C.slotProps.backdrop}}}),[N,i]=A("paper",{elementType:bt,shouldForwardComponentProp:!0,className:W($.paper,v.className),ownerState:R,externalForwardedProps:C,additionalProps:{elevation:S==="temporary"?b:0,square:!0,...S==="temporary"&&{role:"dialog","aria-modal":"true"}}}),[f,L]=A("docked",{elementType:yt,ref:o,className:W($.root,$.docked,m),ownerState:R,externalForwardedProps:C,additionalProps:P}),[we,Se]=A("transition",{elementType:xt,ownerState:R,externalForwardedProps:C,additionalProps:{in:z,direction:je[F],timeout:w,appear:y.current}}),ie=t.jsx(N,{...i,children:p});if(S==="permanent")return t.jsx(f,{...L,children:ie});const le=t.jsx(we,{...Se,children:ie});return S==="persistent"?t.jsx(f,{...L,children:le}):t.jsx(U,{..._,children:le})}),wt=j([t.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"),t.jsx("path",{d:"M14 17H7v-2h7zm3-4H7v-2h10zm0-4H7V7h10z"},"1")]),St=j(t.jsx("path",{d:"M10.85 12.65h2.3L12 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zM14.3 16l-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9z"})),Pt=j(t.jsx("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6z"})),Et=j(t.jsx("path",{d:"M9.37 5.51c-.18.64-.27 1.31-.27 1.99 0 4.08 3.32 7.4 7.4 7.4.68 0 1.35-.09 1.99-.27C17.45 17.19 14.93 19 12 19c-3.86 0-7-3.14-7-7 0-2.93 1.81-5.45 4.37-6.49M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9 9-4.03 9-9c0-.46-.04-.92-.1-1.36-.98 1.37-2.58 2.26-4.4 2.26-2.98 0-5.4-2.42-5.4-5.4 0-1.81.89-3.42 2.26-4.4-.44-.06-.9-.1-1.36-.1"})),Mt=j(t.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"})),zt=j(t.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"})),It=j(t.jsx("path",{d:"m12 5.69 5 4.5V18h-2v-6H9v6H7v-7.81zM12 3 2 12h3v8h6v-6h2v6h6v-8h3z"})),Ct=j(t.jsx("path",{d:"M12 9c1.65 0 3 1.35 3 3s-1.35 3-3 3-3-1.35-3-3 1.35-3 3-3m0-2c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5M2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1m18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1M11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1m0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1M5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0z"})),Dt=j(t.jsx("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3z"})),Tt=j([t.jsx("path",{d:"M12 22C6.49 22 2 17.51 2 12S6.49 2 12 2s10 4.04 10 9c0 3.31-2.69 6-6 6h-1.77c-.28 0-.5.22-.5.5 0 .12.05.23.13.33.41.47.64 1.06.64 1.67 0 1.38-1.12 2.5-2.5 2.5m0-18c-4.41 0-8 3.59-8 8s3.59 8 8 8c.28 0 .5-.22.5-.5 0-.16-.08-.28-.14-.35-.41-.46-.63-1.05-.63-1.65 0-1.38 1.12-2.5 2.5-2.5H16c2.21 0 4-1.79 4-4 0-3.86-3.59-7-8-7"},"0"),t.jsx("circle",{cx:"6.5",cy:"11.5",r:"1.5"},"1"),t.jsx("circle",{cx:"9.5",cy:"7.5",r:"1.5"},"2"),t.jsx("circle",{cx:"14.5",cy:"7.5",r:"1.5"},"3"),t.jsx("circle",{cx:"17.5",cy:"11.5",r:"1.5"},"4")]);function q(e){return t.jsxs(He,{...e,viewBox:"0 0 24 24",sx:{fill:"none",...e.sx},children:[t.jsx("rect",{x:"3.25",y:"4.75",width:"17.5",height:"14.5",rx:"2.25",stroke:"currentColor",strokeWidth:"1.5"}),t.jsx("line",{x1:"8.5",y1:"5",x2:"8.5",y2:"19",stroke:"currentColor",strokeWidth:"1.5"})]})}const Bt=/\.malloy(nb)?$/;function Rt(){const{pathname:e,search:r}=G(),o=J(),n=Ne(),s=Ae(),l=Qe(),a=o.environmentName??"",d=o.packageName??"",x=o["*"]??"",p=a!==""&&d!==""&&x!==""&&!Bt.test(x),{reports:m,settled:b}=Oe(a,d,void 0,p);if(!p||s)return null;const g=x.replace(/\/$/,""),k=Ze(r),E=e.replace(/\/$/,"");return k?l?null:t.jsx(pe,{label:"View",onClick:()=>n(`${E}${Ge(r)}`)}):(b?We(`${g}.malloy`,m):void 0)?.editable?t.jsx("span",{onPointerEnter:()=>void he(),onFocus:()=>void he(),children:t.jsx(pe,{label:"Edit",icon:t.jsx(Mt,{}),onClick:()=>n(`${E}${Je(r)}`)})}):null}function X({label:e,onClick:r,current:o=!1}){return t.jsx(Ve,{clickable:!0,onClick:r,label:e,size:"small","aria-label":`Navigate to ${e}`,"aria-current":o?"page":void 0,sx:n=>({backgroundColor:"transparent",border:"none",color:o?"text.primary":"text.secondary",fontWeight:o?500:400,fontSize:13,height:28,cursor:"pointer",borderRadius:"6px",maxWidth:320,"& .MuiChip-label":{px:.75,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},"&:hover":{backgroundColor:n.palette.mode==="dark"?"rgba(255, 255, 255, 0.08)":"grey.100"}})})}function $t(){const e=J(),r=e["*"]?e["*"].replace(/\/$/,""):void 0,o=ee();return!e.environmentName&&!e.packageName&&!r?null:t.jsx(u,{sx:{display:"flex",alignItems:"center",minWidth:0},children:t.jsxs(pt,{"aria-label":"breadcrumb",separator:t.jsx(u,{component:"span","aria-hidden":!0,sx:{color:"text.disabled"},children:"/"}),children:[e.environmentName&&t.jsx(X,{label:e.environmentName,current:!e.packageName&&!r,onClick:n=>o(`/${e.environmentName}/`,n)}),e.packageName&&t.jsx(X,{label:e.packageName,current:!r,onClick:n=>o(`/${e.environmentName}/${e.packageName}/`,n)}),r&&t.jsx(X,{label:r,current:!0,onClick:n=>o(`/${e.environmentName}/${e.packageName}/${r}`,n)})]})})}const Lt=260,Ht=64;function ke({isCollapsed:e,onToggleCollapse:r,logoHeader:o}){return t.jsxs(u,{sx:{height:"100dvh",width:e?Ht:Lt,flexShrink:0,display:"flex",flexDirection:"column",backgroundColor:"background.paper",transition:"width 0.2s cubic-bezier(0.4, 0, 0.2, 1)",overflow:"hidden"},children:[t.jsx(Nt,{isCollapsed:e,onToggleCollapse:r,logoHeader:o}),t.jsxs(u,{sx:{flex:1,overflowY:"auto",overflowX:"hidden",py:1},children:[t.jsx(At,{isCollapsed:e}),t.jsx(Ot,{isCollapsed:e})]}),t.jsx(Wt,{isCollapsed:e})]})}function Nt({isCollapsed:e,onToggleCollapse:r,logoHeader:o}){const n=ee();return o?t.jsxs(u,{sx:{height:56,display:"flex",alignItems:"center",justifyContent:"space-between",px:e?0:2,flexShrink:0},children:[o,t.jsx(Y,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(q,{fontSize:"small"})})]}):t.jsxs(u,{sx:{minHeight:56,display:"flex",flexDirection:e?"column":"row",alignItems:"center",justifyContent:e?"center":"space-between",gap:e?.5:0,py:e?1:0,px:e?0:2,flexShrink:0},children:[t.jsxs(u,{onClick:s=>n("/",s),sx:{display:"flex",alignItems:"center",gap:1,cursor:"pointer",minWidth:0},children:[t.jsx(u,{component:"img",src:"/logo.svg",alt:"Malloy",sx:{width:24,height:24,flexShrink:0}}),!e&&t.jsx(Q,{variant:"subtitle1",sx:{color:"text.primary",fontWeight:500,letterSpacing:"-0.025em",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:"Malloy Publisher"})]}),t.jsx(V,{title:e?"Expand sidebar":"Collapse sidebar",placement:"right",children:t.jsx(Y,{size:"small",onClick:r,"aria-label":e?"Expand sidebar":"Collapse sidebar",children:t.jsx(q,{fontSize:"small"})})})]})}function At({isCollapsed:e}){const o=G().pathname==="/";return t.jsx(te,{sx:{py:0},children:t.jsx(se,{icon:t.jsx(It,{fontSize:"small"}),label:"Home",to:"/",selected:o,isCollapsed:e})})}function Ot({isCollapsed:e}){const{apiClients:r}=Fe(),o=J(),{data:n}=Ue({queryKey:["environments"],queryFn:()=>r.environments.listEnvironments()}),s=n?.data??[];return s.length===0?null:t.jsxs(u,{sx:{mt:1},children:[!e&&t.jsx(Q,{variant:"caption",sx:{display:"block",px:3,py:1,color:"text.secondary",fontWeight:500,textTransform:"uppercase",fontSize:"0.6875rem",letterSpacing:"0.5px"},children:"Environments"}),t.jsx(te,{sx:{py:0},children:s.map(l=>{const a=l.name??"";return t.jsx(se,{icon:t.jsx(zt,{fontSize:"small"}),label:a,to:`/${a}`,selected:o.environmentName===a,isCollapsed:e},a)})})]})}function Wt({isCollapsed:e}){const{pathname:r}=G(),o=[{label:"Malloy Docs",href:ue.docsHome,icon:t.jsx(wt,{fontSize:"small"}),external:!0},{label:"Publisher Docs",href:ue.publishing,icon:t.jsx(Dt,{fontSize:"small"}),external:!0},{label:"Publisher API",href:"/api-doc.html",icon:t.jsx(Pt,{fontSize:"small"}),external:!1}];return t.jsxs(te,{sx:{py:1},children:[t.jsx(se,{icon:t.jsx(Tt,{fontSize:"small"}),label:"Theme",to:"/settings/theme",selected:r.startsWith("/settings/theme"),isCollapsed:e}),t.jsx(_t,{isCollapsed:e}),o.map(n=>t.jsx(Vt,{label:n.label,href:n.href,icon:n.icon,external:n.external,isCollapsed:e},n.label))]})}function se({icon:e,label:r,to:o,selected:n,isCollapsed:s}){const l=ee(),a=t.jsxs(re,{selected:n,onClick:d=>l(o,d),sx:{justifyContent:s?"center":"flex-start",px:s?0:2},children:[t.jsx(ne,{sx:{minWidth:s?0:36,justifyContent:"center",color:n?"text.primary":"text.secondary"},children:e}),!s&&t.jsx(oe,{primary:r,primaryTypographyProps:{variant:"body2",sx:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}})]});return s?t.jsx(V,{title:r,placement:"right",children:t.jsx(u,{children:a})}):a}function Vt({label:e,href:r,icon:o,external:n,isCollapsed:s}){const l=t.jsxs(re,{component:"a",href:r,target:n?"_blank":void 0,rel:n?"noopener noreferrer":void 0,sx:{justifyContent:s?"center":"flex-start",px:s?0:2},children:[t.jsx(ne,{sx:{minWidth:s?0:36,justifyContent:"center",color:"text.secondary"},children:o}),!s&&t.jsx(oe,{primary:e,primaryTypographyProps:{variant:"body2",sx:{color:"text.secondary",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}}})]});return s?t.jsx(V,{title:e,placement:"right",children:t.jsx(u,{children:l})}):l}const Ft={light:"dark",dark:"auto",auto:"light"},Ut={light:"Light mode",dark:"Dark mode",auto:"Auto mode"},xe={light:"Light mode (click for dark)",dark:"Dark mode (click for auto)",auto:"Auto mode (follows OS, click for light)"};function _t({isCollapsed:e}){const{mode:r,userChoice:o,setMode:n,allowUserToggle:s}=_e();if(!s)return null;const l=o??r,a=l==="auto"?St:l==="dark"?Et:Ct,d=t.jsxs(re,{"aria-label":xe[l],onClick:()=>n(Ft[l]),sx:{justifyContent:e?"center":"flex-start",px:e?0:2},children:[t.jsx(ne,{sx:{minWidth:e?0:36,justifyContent:"center",color:"text.secondary"},children:t.jsx(a,{fontSize:"small"})}),!e&&t.jsx(oe,{primary:Ut[l],primaryTypographyProps:{variant:"body2",sx:{color:"text.secondary",whiteSpace:"nowrap"}}})]});return t.jsx(V,{title:xe[l],placement:"right",disableHoverListener:!e,children:t.jsx(u,{children:d})})}function Xt({open:e,onClose:r,logoHeader:o}){return t.jsx(kt,{anchor:"left",open:e,onClose:r,ModalProps:{keepMounted:!0},sx:{display:{xs:"block",md:"none"},"& .MuiDrawer-paper":{boxSizing:"border-box",width:260}},children:t.jsx(ke,{isCollapsed:!1,onToggleCollapse:r,logoHeader:o})})}function Qt({headerProps:e}){const r=Z(),o=Xe(r.breakpoints.up("md")),[n,s]=h.useState(!1),[l,a]=h.useState(!1);return h.useEffect(()=>{o&&n&&s(!1)},[o,n]),t.jsxs(u,{sx:{height:"100dvh",display:"flex",flexDirection:"row",bgcolor:"background.default"},children:[o&&t.jsx(ke,{isCollapsed:l,onToggleCollapse:()=>a(d=>!d),logoHeader:e?.logoHeader}),t.jsxs(u,{component:"main",sx:{flex:1,display:"flex",flexDirection:"column",minWidth:0},children:[t.jsxs(u,{sx:{flexShrink:0,display:"flex",alignItems:"center",justifyContent:"space-between",height:Ye.headerHeight,px:{xs:1,md:3},backgroundColor:"background.default"},children:[t.jsx(u,{sx:{display:{xs:"flex",md:"none"},alignItems:"center",mr:1},children:t.jsx(Y,{size:"small",onClick:()=>s(!0),"aria-label":"Open navigation",children:t.jsx(q,{fontSize:"small"})})}),t.jsx(u,{sx:{flex:1,minWidth:0,display:"flex",alignItems:"center"},children:t.jsx($t,{})}),t.jsxs(u,{id:"header-actions-portal",sx:{display:"flex",alignItems:"center",flexShrink:0,gap:1},children:[t.jsx(Rt,{}),e?.endCap]})]}),t.jsx(u,{sx:{flex:1,overflow:"auto",minWidth:320,minHeight:0},children:t.jsx(h.Suspense,{fallback:t.jsx(Ke,{}),children:t.jsx(qe,{})})})]}),t.jsx(Xt,{open:n,onClose:()=>s(!1),logoHeader:e?.logoHeader})]})}export{Qt as default};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.es-C2AyMc9a.js","assets/index-iyvwQg3j.js","assets/index-DUqldpo0.css","assets/ToggleButtonGroup-DnK5WHKM.js"])))=>i.map(i=>d[i]);
2
- import{g as ne,b as re,a1 as E,a2 as se,r as d,u as oe,i as ae,j as t,f as ie,z as U,h as le,s as ce,T as C,m as ue,a3 as de,a4 as L,c as W,G as I,a5 as pe,a6 as fe,a7 as A,a8 as N,a9 as q,F as z,I as x,aa as he,ab as R,ac as V,ad as xe,ae as me,af as ge,ag as ye,ah as ve,E as be,C as $,ai as je,aj as ke,ak as O,al as G,am as Ce,an as we,ao as H,ap as Ee,aq as X,H as Re,ar as De,as as Se,a0 as T,at as F,D as $e,O as Ae,au as Me,av as P,aw as Le}from"./index-iyvwQg3j.js";import{i as M,w as Te,a as Z,l as Fe}from"./documentRoutes-CnLoYf4D.js";import{a as Pe,l as K}from"./editPageMounted-po3c6RP3.js";function _e(e){return ne("MuiLink",e)}const Be=re("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),Ue=({theme:e,ownerState:r})=>{const n=r.color;if("colorSpace"in e&&e.colorSpace){const u=E(e,`palette.${n}.main`)||E(e,`palette.${n}`)||r.color;return e.alpha(u,.4)}const o=E(e,`palette.${n}.main`,!1)||E(e,`palette.${n}`,!1)||r.color,a=E(e,`palette.${n}.mainChannel`)||E(e,`palette.${n}Channel`);return"vars"in e&&a?`rgba(${a} / 0.4)`:se(o,.4)},_={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},We=e=>{const{classes:r,component:n,focusVisible:o,underline:a}=e,u={root:["root",`underline${U(a)}`,n==="button"&&"button",o&&"focusVisible"]};return le(u,_e,r)},Ie=ce(C,{name:"MuiLink",slot:"Root",overridesResolver:(e,r)=>{const{ownerState:n}=e;return[r.root,r[`underline${U(n.underline)}`],n.component==="button"&&r.button]}})(ue(({theme:e})=>({variants:[{props:{underline:"none"},style:{textDecoration:"none"}},{props:{underline:"hover"},style:{textDecoration:"none","&:hover":{textDecoration:"underline"}}},{props:{underline:"always"},style:{textDecoration:"underline","&:hover":{textDecorationColor:"inherit"}}},{props:({underline:r,ownerState:n})=>r==="always"&&n.color!=="inherit",style:{textDecorationColor:"var(--Link-underlineColor)"}},{props:({underline:r,ownerState:n})=>r==="always"&&n.color==="inherit",style:e.colorSpace?{textDecorationColor:e.alpha("currentColor",.4)}:null},...Object.entries(e.palette).filter(de()).map(([r])=>({props:{underline:"always",color:r},style:{"--Link-underlineColor":e.alpha((e.vars||e).palette[r].main,.4)}})),{props:{underline:"always",color:"textPrimary"},style:{"--Link-underlineColor":e.alpha((e.vars||e).palette.text.primary,.4)}},{props:{underline:"always",color:"textSecondary"},style:{"--Link-underlineColor":e.alpha((e.vars||e).palette.text.secondary,.4)}},{props:{underline:"always",color:"textDisabled"},style:{"--Link-underlineColor":(e.vars||e).palette.text.disabled}},{props:{component:"button"},style:{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${Be.focusVisible}`]:{outline:"auto"}}}]}))),Ne=d.forwardRef(function(r,n){const o=oe({props:r,name:"MuiLink"}),a=ae(),{className:u,color:s="primary",component:l="a",onBlur:i,onFocus:c,TypographyClasses:m,underline:h="always",variant:p="inherit",sx:f,...y}=o,[v,k]=d.useState(!1),g=j=>{L(j.target)||k(!1),i&&i(j)},w=j=>{L(j.target)&&k(!0),c&&c(j)},b={...o,color:s,component:l,focusVisible:v,underline:h,variant:p},S=We(b);return t.jsx(Ie,{color:s,className:ie(S.root,u),classes:m,component:l,onBlur:g,onFocus:w,ref:n,ownerState:b,variant:p,...y,sx:[..._[s]===void 0?[{color:s}]:[],...Array.isArray(f)?f:[f]],style:{...y.style,...h==="always"&&s!=="inherit"&&!_[s]&&{"--Link-underlineColor":Ue({theme:a,ownerState:b})}}})});function qe(e,r){const n=W(),{reports:o,settled:a,isError:u}=I(e,r),s=a&&!u;return d.useCallback((l,i)=>{const c=l.path;if(!pe(c))return"malformed";const m=fe(c,o),h=A(e,r,m.kind==="path"?m.report.path:c),p=new URLSearchParams(l.givens).toString();return n(h+(p?`?${p}`:""),i),m.kind==="path"?"resolved":s?"unresolved":"unverified"},[n,e,r,o,s])}const ze=1200,D={p:3,maxWidth:ze,mx:"auto"},Y={...D,pt:6},Ve='[data-tile-kind="query"]',Oe=".malloy-render, .malloy-table, [role='alert'], .MuiAlert-root",Ge=3e3;function J(e,r,n,o){const a=d.useRef(n);a.current=n;const u=d.useRef(!1);d.useEffect(()=>{if(!a.current||u.current)return;let s=0;const l={},i=()=>{clearTimeout(m),l.beat!==void 0&&clearInterval(l.beat),cancelAnimationFrame(s),l.observer?.disconnect()},c=()=>{u.current||(u.current=!0,i(),a.current?.())},m=setTimeout(c,Ge);if(!r)return()=>clearTimeout(m);const h=()=>{const p=e.current;if(!p||o&&p.querySelector(o)===null)return;const f=window.innerHeight;[...p.querySelectorAll(Ve)].filter(v=>{if(v.getBoundingClientRect().top>=f)return!1;const g=v.querySelector(Oe);return!g||g.getBoundingClientRect().height<8}).length===0&&s===0&&(s=requestAnimationFrame(()=>{s=requestAnimationFrame(c)}))};return l.observer=new MutationObserver(h),e.current&&l.observer.observe(e.current,{childList:!0,subtree:!0}),l.beat=setInterval(h,50),h(),i},[r,e,o])}function Q({environmentName:e,packageName:r,path:n,editable:o=n.endsWith(".malloy"),onReady:a}){const u=d.useRef(null);J(u,!0,a,`.${me.report}`);const{params:s,onGivensChange:l}=N(),i=qe(e,r),c=W(),m=d.useMemo(()=>q({environmentName:e,packageName:r}),[e,r]),h=z();return d.useEffect(()=>{if(!o||h)return;const p=()=>void xe(()=>import("./index.es-C2AyMc9a.js"),__vite__mapDeps([0,1,2,3])),f=window.requestIdleCallback;if(f){const v=f(p);return()=>window.cancelIdleCallback?.(v)}const y=setTimeout(p,1500);return()=>clearTimeout(y)},[o,h]),t.jsx(x,{ref:u,sx:Y,children:n.endsWith(".malloynb")?t.jsx(he,{resourceUri:R({environmentName:e,packageName:r,modelPath:n}),givens:s,onGivensChange:l,onNavigate:c,onDrillNavigate:i,maxResultSize:1024*1024}):t.jsx(V,{resourceUri:R({environmentName:e,packageName:r}),path:n,givens:s,onGivensChange:l,onNavigate:i,onLinkNavigate:c,onEvent:m,maxResultSize:1024*1024})})}function He(){const[e,r]=d.useState(!1),n=d.useRef(!1),o=d.useRef(!1),a=d.useCallback(i=>{n.current=i,r(i)},[]),u=d.useCallback(()=>{o.current=!0},[]),s=ge(d.useCallback(({currentLocation:i,nextLocation:c})=>n.current&&!o.current&&(i.pathname!==c.pathname||M(i.search)!==M(c.search)),[]));d.useEffect(()=>{if(!e)return;const i=c=>{c.preventDefault(),c.returnValue=""};return window.addEventListener("beforeunload",i),()=>window.removeEventListener("beforeunload",i)},[e]);const l=t.jsx(ye,{open:s.state==="blocked",canSave:!1,onKeepEditing:()=>s.reset?.(),onDiscard:()=>s.proceed?.()});return{onDirtyChange:a,leaving:u,dialog:l}}const Xe=G.lazy(()=>K().then(e=>({default:e.ReportEditor}))),Ze=G.lazy(()=>K().then(e=>({default:e.BuilderBar})));function Ke(){const[e,r]=d.useState(null);return d.useEffect(()=>{r(document.getElementById("header-actions-portal"))},[]),e}function ee({environmentName:e,packageName:r,path:n,layout:o="grid",onReady:a,quietLoading:u=!1,offstage:s=!1}){const l=He();Pe();const[i]=d.useState(ve),c=be(),{pathname:m,search:h}=$(),p=Ke(),[f,y]=d.useState(),v=d.useRef(null),k=z();J(v,f!==void 0||k,a);const g=()=>c(`${m.replace(/\/$/,"")}${Te(h)}`),w=d.useMemo(()=>q({environmentName:e,packageName:r}),[e,r]),b=t.jsx(V,{resourceUri:R({environmentName:e,packageName:r}),path:n,manifestStaleTime:1e4});return t.jsxs(x,{ref:v,sx:Y,children:[t.jsx(je,{children:t.jsx(d.Suspense,{fallback:u?null:b,children:t.jsx(Xe,{resourceUri:R({environmentName:e,packageName:r}),path:n,layout:o,keepDraft:i,onDirtyChange:l.onDirtyChange,onExit:g,onOpenModel:S=>c(`/${[e,r,...S.split("/")].map(encodeURIComponent).join("/")}`),onEvent:w,loading:u?null:b,onControlsChange:y},`${e}/${r}/${n}`)})}),l.dialog,p&&!s&&ke.createPortal(t.jsx(d.Suspense,{fallback:t.jsx(O,{variant:"contained",disableElevation:!0,onClick:g,children:"Done"}),children:t.jsx(Ze,{controls:f,onDone:g})}),p)]})}function Ye({environmentName:e,packageName:r,routePath:n,edit:o,reports:a,children:u}){const{search:s}=$(),l=Ce(n);if(!l)return t.jsx(t.Fragment,{children:u});const i=we(l.name,a,l.prefer);return"found"in i?t.jsx(H,{replace:!0,to:`${A(e,r,i.found.path)}${o?Z(s):s}`}):"ambiguous"in i?t.jsxs(x,{sx:D,children:[t.jsxs(C,{variant:"h6",sx:{fontWeight:"fontWeightMedium"},children:["More than one report is named ",l.name]}),t.jsx(C,{variant:"body2",color:"text.secondary",sx:{mt:1},children:"This is an old link, which names a report by its file name alone. Open one by its path:"}),t.jsx(x,{component:"ul",sx:{mt:1},children:i.ambiguous.map(c=>t.jsx("li",{children:t.jsx(Ee,{to:A(e,r,c),style:{fontFamily:X},children:c})},c))})]}):t.jsx(t.Fragment,{children:u})}function Je({environmentName:e,packageName:r,routePath:n,edit:o,notFound:a,notFoundUntilListed:u=!1}){const{reports:s,settled:l,isFetching:i,isError:c,refetch:m}=I(e,r),{search:h}=$(),p=`${n}.malloy`,f=l?Re(p,s):void 0,y=l&&!i&&!c,[v,k]=d.useState();d.useEffect(()=>{y&&k(p)},[y,p]);const g=f!==void 0||y||v===p,w=De(e,r,p,o&&g&&!f),b=te=>t.jsx(Ye,{environmentName:e,packageName:r,routePath:n,edit:o,reports:s,children:te});if(!g&&(u&&!o&&!f))return b(a);if(!g&&c&&!i)return t.jsx(x,{sx:D,children:t.jsxs(Se,{severity:"warning",action:t.jsx(O,{color:"inherit",size:"small",onClick:()=>void m(),children:"Retry"}),children:["Could not list this package's reports, so this page cannot tell what is at ",n,"."]})});if(!g)return t.jsx(T,{text:F.opening()});if(f)return t.jsx(Qe,{environmentName:e,packageName:r,path:f.path,editable:f.editable,layout:f.layout,edit:o});const j=o?void 0:Fe(n);return j!==void 0?t.jsx(H,{replace:!0,to:`/${e}/${r}/${j.split("/").map(encodeURIComponent).join("/")}${Z(h)}`}):b(o?w.settled?t.jsx(ee,{environmentName:e,packageName:r,path:p,layout:w.layout??"grid"}):t.jsx(T,{text:F.opening()}):a)}function Qe({environmentName:e,packageName:r,path:n,editable:o,layout:a,edit:u}){const[s,l]=d.useState(u?"editor":"reader"),i=u?"editor":"reader",c=i==="reader"||s==="reader",m=i==="editor"||s==="editor",h={position:"absolute",inset:0,visibility:"hidden",pointerEvents:"none",overflow:"hidden"};return t.jsxs(x,{sx:{position:"relative"},"data-switching":c&&m||void 0,children:[c&&t.jsx(x,{sx:s==="reader"?void 0:h,"aria-hidden":s!=="reader"||void 0,children:t.jsx(Q,{environmentName:e,packageName:r,path:n,...o!==void 0?{editable:o}:{},onReady:()=>{u||l("reader")}})},"reader"),m&&t.jsx(x,{sx:s==="editor"?void 0:h,"aria-hidden":s!=="editor"||void 0,children:t.jsx(ee,{environmentName:e,packageName:r,path:n,...a?{layout:a}:{},quietLoading:c,offstage:i!=="editor"||s!=="editor",onReady:()=>{u&&l("editor")}})},"editor")]})}function rt(){const e=$e(),{search:r}=$(),n=e["*"],{server:o}=Ae(),{params:a,onGivensChange:u}=N();if(!e.environmentName)return t.jsx("div",{children:t.jsx("h2",{children:"Missing environment name"})});if(!e.packageName)return t.jsx("div",{children:t.jsx("h2",{children:"Missing package name"})});if(n!==void 0&&n!==""&&!n.endsWith(".malloy")&&!n.endsWith(".malloynb")){const l=n.replace(/\/$/,""),i=l.startsWith("data-apps/"),c=i?t.jsx(Me,{resourceUri:R({environmentName:e.environmentName,packageName:e.packageName,modelPath:l.slice(10)})}):t.jsx(B,{environmentName:e.environmentName,packageName:e.packageName,modelPath:n,staticUrl:P({server:o,environmentName:e.environmentName,packageName:e.packageName,path:n})});return t.jsx(Je,{environmentName:e.environmentName,packageName:e.packageName,routePath:l,edit:M(r),notFound:c,notFoundUntilListed:i})}const s=R({environmentName:e.environmentName,packageName:e.packageName,modelPath:n});return n?.endsWith(".malloy")?t.jsx(x,{sx:D,children:t.jsx(Le,{resourceUri:s,runOnDemand:!0,maxResultSize:512*1024,givens:a,onGivensChange:u})}):n?.endsWith(".malloynb")?t.jsx(Q,{environmentName:e.environmentName,packageName:e.packageName,path:n,editable:!1}):t.jsx(B,{environmentName:e.environmentName,packageName:e.packageName,modelPath:n??"",staticUrl:P({server:o,environmentName:e.environmentName,packageName:e.packageName,path:n??""})})}function B({packageName:e,modelPath:r,staticUrl:n}){const o=/\.[^./]+$/.test(r),a={fontFamily:X};return t.jsxs(x,{sx:D,children:[t.jsx(C,{variant:"h6",sx:{fontWeight:"fontWeightMedium"},children:"Nothing to open at this path"}),t.jsxs(C,{variant:"body2",color:"text.secondary",sx:{mt:1},children:[t.jsx(x,{component:"span",sx:a,children:r})," ","does not name a report, a"," ",t.jsx(x,{component:"span",sx:a,children:".malloy"})," ","or a"," ",t.jsx(x,{component:"span",sx:a,children:".malloynb"})," ","file in package"," ",t.jsx(x,{component:"span",sx:a,children:e}),". This address opens reports by their path without"," ",t.jsx(x,{component:"span",sx:a,children:".malloy"}),", and"," ",t.jsx(x,{component:"span",sx:a,children:".malloy"})," ","and"," ",t.jsx(x,{component:"span",sx:a,children:".malloynb"})," ","files."]}),o&&t.jsxs(C,{variant:"body2",color:"text.secondary",sx:{mt:1},children:["A file from the package's"," ",t.jsx(x,{component:"span",sx:a,children:"public/"})," ","directory is served at ",t.jsx(Ne,{href:n,children:n}),"."]}),t.jsx(C,{variant:"body2",color:"text.secondary",sx:{mt:1},children:"The package lists its reports, models, and data apps."})]})}export{rt as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index.es-CMsNTB-h.js","assets/index-CGKV9Dxi.js","assets/index-DUqldpo0.css","assets/ToggleButtonGroup-b325mGmL.js"])))=>i.map(i=>d[i]);
2
+ import{g as ne,b as re,a1 as E,a2 as se,r as d,u as oe,i as ae,j as t,f as ie,y as U,h as le,s as ce,T as C,m as ue,a3 as de,a4 as M,K as W,F as I,a5 as pe,a6 as fe,a7 as A,a8 as N,a9 as V,E as q,H as x,aa as he,ab as R,ac as z,ad as xe,ae as me,af as ye,ag as ge,ah as ve,D as be,A as $,ai as je,aj as ke,ak as O,al as G,am as Ce,an as we,ao as H,ap as Ee,aq as X,G as Re,ar as Se,as as De,a0 as T,at as F,C as $e,O as Ae,au as Le,av as P,aw as Me}from"./index-CGKV9Dxi.js";import{i as L,w as Te,a as K,l as Fe}from"./documentRoutes-D_C8snHV.js";import{a as Pe,l as Y}from"./editPageMounted-1X99LP7v.js";function _e(e){return ne("MuiLink",e)}const Be=re("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),Ue=({theme:e,ownerState:r})=>{const n=r.color;if("colorSpace"in e&&e.colorSpace){const u=E(e,`palette.${n}.main`)||E(e,`palette.${n}`)||r.color;return e.alpha(u,.4)}const o=E(e,`palette.${n}.main`,!1)||E(e,`palette.${n}`,!1)||r.color,a=E(e,`palette.${n}.mainChannel`)||E(e,`palette.${n}Channel`);return"vars"in e&&a?`rgba(${a} / 0.4)`:se(o,.4)},_={primary:!0,secondary:!0,error:!0,info:!0,success:!0,warning:!0,textPrimary:!0,textSecondary:!0,textDisabled:!0},We=e=>{const{classes:r,component:n,focusVisible:o,underline:a}=e,u={root:["root",`underline${U(a)}`,n==="button"&&"button",o&&"focusVisible"]};return le(u,_e,r)},Ie=ce(C,{name:"MuiLink",slot:"Root",overridesResolver:(e,r)=>{const{ownerState:n}=e;return[r.root,r[`underline${U(n.underline)}`],n.component==="button"&&r.button]}})(ue(({theme:e})=>({variants:[{props:{underline:"none"},style:{textDecoration:"none"}},{props:{underline:"hover"},style:{textDecoration:"none","&:hover":{textDecoration:"underline"}}},{props:{underline:"always"},style:{textDecoration:"underline","&:hover":{textDecorationColor:"inherit"}}},{props:({underline:r,ownerState:n})=>r==="always"&&n.color!=="inherit",style:{textDecorationColor:"var(--Link-underlineColor)"}},{props:({underline:r,ownerState:n})=>r==="always"&&n.color==="inherit",style:e.colorSpace?{textDecorationColor:e.alpha("currentColor",.4)}:null},...Object.entries(e.palette).filter(de()).map(([r])=>({props:{underline:"always",color:r},style:{"--Link-underlineColor":e.alpha((e.vars||e).palette[r].main,.4)}})),{props:{underline:"always",color:"textPrimary"},style:{"--Link-underlineColor":e.alpha((e.vars||e).palette.text.primary,.4)}},{props:{underline:"always",color:"textSecondary"},style:{"--Link-underlineColor":e.alpha((e.vars||e).palette.text.secondary,.4)}},{props:{underline:"always",color:"textDisabled"},style:{"--Link-underlineColor":(e.vars||e).palette.text.disabled}},{props:{component:"button"},style:{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${Be.focusVisible}`]:{outline:"auto"}}}]}))),Ne=d.forwardRef(function(r,n){const o=oe({props:r,name:"MuiLink"}),a=ae(),{className:u,color:s="primary",component:l="a",onBlur:i,onFocus:c,TypographyClasses:m,underline:h="always",variant:p="inherit",sx:f,...g}=o,[v,k]=d.useState(!1),y=j=>{M(j.target)||k(!1),i&&i(j)},w=j=>{M(j.target)&&k(!0),c&&c(j)},b={...o,color:s,component:l,focusVisible:v,underline:h,variant:p},D=We(b);return t.jsx(Ie,{color:s,className:ie(D.root,u),classes:m,component:l,onBlur:y,onFocus:w,ref:n,ownerState:b,variant:p,...g,sx:[..._[s]===void 0?[{color:s}]:[],...Array.isArray(f)?f:[f]],style:{...g.style,...h==="always"&&s!=="inherit"&&!_[s]&&{"--Link-underlineColor":Ue({theme:a,ownerState:b})}}})});function Ve(e,r){const n=W(),{reports:o,settled:a,isError:u}=I(e,r),s=a&&!u;return d.useCallback((l,i)=>{const c=l.path;if(!pe(c))return"malformed";const m=fe(c,o),h=A(e,r,m.kind==="path"?m.report.path:c),p=new URLSearchParams(l.givens).toString();return n(h+(p?`?${p}`:""),i),m.kind==="path"?"resolved":s?"unresolved":"unverified"},[n,e,r,o,s])}const qe=1200,S={p:3,maxWidth:qe,mx:"auto"},Q={...S,pt:6},ze='[data-tile-kind="query"]',Oe=".malloy-render, .malloy-table, [role='alert'], .MuiAlert-root",Ge=3e3;function Z(e,r,n,o){const a=d.useRef(n);a.current=n;const u=d.useRef(!1);d.useEffect(()=>{if(!a.current||u.current)return;let s=0;const l={},i=()=>{clearTimeout(m),l.beat!==void 0&&clearInterval(l.beat),cancelAnimationFrame(s),l.observer?.disconnect()},c=()=>{u.current||(u.current=!0,i(),a.current?.())},m=setTimeout(c,Ge);if(!r)return()=>clearTimeout(m);const h=()=>{const p=e.current;if(!p||o&&p.querySelector(o)===null)return;const f=window.innerHeight;[...p.querySelectorAll(ze)].filter(v=>{if(v.getBoundingClientRect().top>=f)return!1;const y=v.querySelector(Oe);return!y||y.getBoundingClientRect().height<8}).length===0&&s===0&&(s=requestAnimationFrame(()=>{s=requestAnimationFrame(c)}))};return l.observer=new MutationObserver(h),e.current&&l.observer.observe(e.current,{childList:!0,subtree:!0}),l.beat=setInterval(h,50),h(),i},[r,e,o])}function J({environmentName:e,packageName:r,path:n,editable:o=n.endsWith(".malloy"),onReady:a}){const u=d.useRef(null);Z(u,!0,a,`.${me.report}`);const{params:s,onGivensChange:l}=N(),i=Ve(e,r),c=W(),m=d.useMemo(()=>V({environmentName:e,packageName:r}),[e,r]),h=q();return d.useEffect(()=>{if(!o||h)return;const p=()=>void xe(()=>import("./index.es-CMsNTB-h.js"),__vite__mapDeps([0,1,2,3])),f=window.requestIdleCallback;if(f){const v=f(p);return()=>window.cancelIdleCallback?.(v)}const g=setTimeout(p,1500);return()=>clearTimeout(g)},[o,h]),t.jsx(x,{ref:u,sx:Q,children:n.endsWith(".malloynb")?t.jsx(he,{resourceUri:R({environmentName:e,packageName:r,modelPath:n}),givens:s,onGivensChange:l,onNavigate:c,onDrillNavigate:i,maxResultSize:1024*1024}):t.jsx(z,{resourceUri:R({environmentName:e,packageName:r}),path:n,givens:s,onGivensChange:l,onNavigate:i,onLinkNavigate:c,onEvent:m,maxResultSize:1024*1024})})}function He(){const[e,r]=d.useState(!1),n=d.useRef(!1),o=d.useRef(!1),a=d.useCallback(i=>{n.current=i,r(i)},[]),u=d.useCallback(()=>{o.current=!0},[]),s=ye(d.useCallback(({currentLocation:i,nextLocation:c})=>n.current&&!o.current&&(i.pathname!==c.pathname||L(i.search)!==L(c.search)),[]));d.useEffect(()=>{if(!e)return;const i=c=>{c.preventDefault(),c.returnValue=""};return window.addEventListener("beforeunload",i),()=>window.removeEventListener("beforeunload",i)},[e]);const l=t.jsx(ge,{open:s.state==="blocked",canSave:!1,onKeepEditing:()=>s.reset?.(),onDiscard:()=>s.proceed?.()});return{onDirtyChange:a,leaving:u,dialog:l}}const Xe=G.lazy(()=>Y().then(e=>({default:e.ReportEditor}))),Ke=G.lazy(()=>Y().then(e=>({default:e.BuilderBar})));function Ye(){const[e,r]=d.useState(null);return d.useEffect(()=>{r(document.getElementById("header-actions-portal"))},[]),e}function ee({environmentName:e,packageName:r,path:n,layout:o="grid",onReady:a,quietLoading:u=!1,offstage:s=!1}){const l=He();Pe();const[i]=d.useState(ve),c=be(),{pathname:m,search:h}=$(),p=Ye(),[f,g]=d.useState(),v=d.useRef(null),k=q();Z(v,f!==void 0||k,a);const y=()=>c(`${m.replace(/\/$/,"")}${Te(h)}`),w=d.useMemo(()=>V({environmentName:e,packageName:r}),[e,r]),b=t.jsx(z,{resourceUri:R({environmentName:e,packageName:r}),path:n,manifestStaleTime:1e4});return t.jsxs(x,{ref:v,sx:Q,children:[t.jsx(je,{children:t.jsx(d.Suspense,{fallback:u?null:b,children:t.jsx(Xe,{resourceUri:R({environmentName:e,packageName:r}),path:n,layout:o,keepDraft:i,onDirtyChange:l.onDirtyChange,onExit:y,onOpenModel:D=>c(`/${[e,r,...D.split("/")].map(encodeURIComponent).join("/")}`),onEvent:w,loading:u?null:b,onControlsChange:g},`${e}/${r}/${n}`)})}),l.dialog,p&&!s&&ke.createPortal(t.jsx(d.Suspense,{fallback:t.jsx(O,{variant:"contained",disableElevation:!0,onClick:y,children:"Done"}),children:t.jsx(Ke,{controls:f,onDone:y})}),p)]})}function Qe({environmentName:e,packageName:r,routePath:n,edit:o,reports:a,children:u}){const{search:s}=$(),l=Ce(n);if(!l)return t.jsx(t.Fragment,{children:u});const i=we(l.name,a,l.prefer);return"found"in i?t.jsx(H,{replace:!0,to:`${A(e,r,i.found.path)}${o?K(s):s}`}):"ambiguous"in i?t.jsxs(x,{sx:S,children:[t.jsxs(C,{variant:"h6",sx:{fontWeight:"fontWeightMedium"},children:["More than one report is named ",l.name]}),t.jsx(C,{variant:"body2",color:"text.secondary",sx:{mt:1},children:"This is an old link, which names a report by its file name alone. Open one by its path:"}),t.jsx(x,{component:"ul",sx:{mt:1},children:i.ambiguous.map(c=>t.jsx("li",{children:t.jsx(Ee,{to:A(e,r,c),style:{fontFamily:X},children:c})},c))})]}):t.jsx(t.Fragment,{children:u})}function Ze({environmentName:e,packageName:r,routePath:n,edit:o,notFound:a,notFoundUntilListed:u=!1}){const{reports:s,settled:l,isFetching:i,isError:c,refetch:m}=I(e,r),{search:h}=$(),p=`${n}.malloy`,f=l?Re(p,s):void 0,g=l&&!i&&!c,[v,k]=d.useState();d.useEffect(()=>{g&&k(p)},[g,p]);const y=f!==void 0||g||v===p,w=Se(e,r,p,o&&y&&!f),b=te=>t.jsx(Qe,{environmentName:e,packageName:r,routePath:n,edit:o,reports:s,children:te});if(!y&&(u&&!o&&!f))return b(a);if(!y&&c&&!i)return t.jsx(x,{sx:S,children:t.jsxs(De,{severity:"warning",action:t.jsx(O,{color:"inherit",size:"small",onClick:()=>void m(),children:"Retry"}),children:["Could not list this package's reports, so this page cannot tell what is at ",n,"."]})});if(!y)return t.jsx(T,{text:F.opening()});if(f)return t.jsx(Je,{environmentName:e,packageName:r,path:f.path,editable:f.editable,layout:f.layout,edit:o});const j=o?void 0:Fe(n);return j!==void 0?t.jsx(H,{replace:!0,to:`/${e}/${r}/${j.split("/").map(encodeURIComponent).join("/")}${K(h)}`}):b(o?w.settled?t.jsx(ee,{environmentName:e,packageName:r,path:p,layout:w.layout??"grid"}):t.jsx(T,{text:F.opening()}):a)}function Je({environmentName:e,packageName:r,path:n,editable:o,layout:a,edit:u}){const[s,l]=d.useState(u?"editor":"reader"),i=u?"editor":"reader",c=i==="reader"||s==="reader",m=i==="editor"||s==="editor",h={position:"absolute",inset:0,visibility:"hidden",pointerEvents:"none",overflow:"hidden"};return t.jsxs(x,{sx:{position:"relative"},"data-switching":c&&m||void 0,children:[c&&t.jsx(x,{sx:s==="reader"?void 0:h,"aria-hidden":s!=="reader"||void 0,children:t.jsx(J,{environmentName:e,packageName:r,path:n,...o!==void 0?{editable:o}:{},onReady:()=>{u||l("reader")}})},"reader"),m&&t.jsx(x,{sx:s==="editor"?void 0:h,"aria-hidden":s!=="editor"||void 0,children:t.jsx(ee,{environmentName:e,packageName:r,path:n,...a?{layout:a}:{},quietLoading:c,offstage:i!=="editor"||s!=="editor",onReady:()=>{u&&l("editor")}})},"editor")]})}function rt(){const e=$e(),{search:r}=$(),n=e["*"],{server:o}=Ae(),{params:a,onGivensChange:u}=N();if(!e.environmentName)return t.jsx("div",{children:t.jsx("h2",{children:"Missing environment name"})});if(!e.packageName)return t.jsx("div",{children:t.jsx("h2",{children:"Missing package name"})});if(n!==void 0&&n!==""&&!n.endsWith(".malloy")&&!n.endsWith(".malloynb")){const l=n.replace(/\/$/,""),i=l.startsWith("data-apps/"),c=i?t.jsx(Le,{resourceUri:R({environmentName:e.environmentName,packageName:e.packageName,modelPath:l.slice(10)})}):t.jsx(B,{environmentName:e.environmentName,packageName:e.packageName,modelPath:n,staticUrl:P({server:o,environmentName:e.environmentName,packageName:e.packageName,path:n})});return t.jsx(Ze,{environmentName:e.environmentName,packageName:e.packageName,routePath:l,edit:L(r),notFound:c,notFoundUntilListed:i})}const s=R({environmentName:e.environmentName,packageName:e.packageName,modelPath:n});return n?.endsWith(".malloy")?t.jsx(x,{sx:S,children:t.jsx(Me,{resourceUri:s,runOnDemand:!0,maxResultSize:512*1024,givens:a,onGivensChange:u})}):n?.endsWith(".malloynb")?t.jsx(J,{environmentName:e.environmentName,packageName:e.packageName,path:n,editable:!1}):t.jsx(B,{environmentName:e.environmentName,packageName:e.packageName,modelPath:n??"",staticUrl:P({server:o,environmentName:e.environmentName,packageName:e.packageName,path:n??""})})}function B({packageName:e,modelPath:r,staticUrl:n}){const o=/\.[^./]+$/.test(r),a={fontFamily:X};return t.jsxs(x,{sx:S,children:[t.jsx(C,{variant:"h6",sx:{fontWeight:"fontWeightMedium"},children:"Nothing to open at this path"}),t.jsxs(C,{variant:"body2",color:"text.secondary",sx:{mt:1},children:[t.jsx(x,{component:"span",sx:a,children:r})," ","does not name a report, a"," ",t.jsx(x,{component:"span",sx:a,children:".malloy"})," ","or a"," ",t.jsx(x,{component:"span",sx:a,children:".malloynb"})," ","file in package"," ",t.jsx(x,{component:"span",sx:a,children:e}),". This address opens reports by their path without"," ",t.jsx(x,{component:"span",sx:a,children:".malloy"}),", and"," ",t.jsx(x,{component:"span",sx:a,children:".malloy"})," ","and"," ",t.jsx(x,{component:"span",sx:a,children:".malloynb"})," ","files."]}),o&&t.jsxs(C,{variant:"body2",color:"text.secondary",sx:{mt:1},children:["A file from the package's"," ",t.jsx(x,{component:"span",sx:a,children:"public/"})," ","directory is served at ",t.jsx(Ne,{href:n,children:n}),"."]}),t.jsx(C,{variant:"body2",color:"text.secondary",sx:{mt:1},children:"The package lists its reports, models, and data apps."})]})}export{rt as default};
@@ -1 +1 @@
1
- import{D as m,c as g,r as u,a9 as l,j as n,ab as p,ax as x}from"./index-iyvwQg3j.js";import{d}from"./documentRoutes-CnLoYf4D.js";function j(){const{environmentName:e,packageName:a}=m(),s=g(),r=u.useMemo(()=>l({environmentName:e??"",packageName:a??""}),[e,a]);if(e)if(a){const t=p({environmentName:e,packageName:a});return n.jsx(x,{onClickPackageFile:s,onOpenDocument:({path:o,mode:i},c)=>s(d(e,a,o,i),c),resourceUri:t,onEvent:r})}else return n.jsx("div",{children:n.jsx("h2",{children:"Missing package name"})});else return n.jsx("div",{children:n.jsx("h2",{children:"Missing environment name"})})}export{j as default};
1
+ import{C as m,K as g,r as u,a9 as l,j as n,ab as p,ax as x}from"./index-CGKV9Dxi.js";import{d}from"./documentRoutes-D_C8snHV.js";function j(){const{environmentName:e,packageName:a}=m(),s=g(),r=u.useMemo(()=>l({environmentName:e??"",packageName:a??""}),[e,a]);if(e)if(a){const t=p({environmentName:e,packageName:a});return n.jsx(x,{onClickPackageFile:s,onOpenDocument:({path:o,mode:i},c)=>s(d(e,a,o,i),c),resourceUri:t,onEvent:r})}else return n.jsx("div",{children:n.jsx("h2",{children:"Missing package name"})});else return n.jsx("div",{children:n.jsx("h2",{children:"Missing environment name"})})}export{j as default};
@@ -0,0 +1,179 @@
1
+ import{ae as fe,j as O,H as ie,r as g,aV as pe,U as ge,aW as ve,aH as we,aX as ke,aY as Z,aZ as H,a_ as xe,a$ as Ce,b0 as Ae,b1 as Se,b2 as Ee,b3 as ze,b4 as De,b5 as ue,b6 as se}from"./index-CGKV9Dxi.js";const v=fe.drillCell;function $e(e,t){const r=new Set;let a;try{a=e.getMetadata()?.getAllFields()??[]}catch{return r}const o=new Set;for(const n of a)!n||t(n)||n.tag?.tag("hidden")===void 0&&o.add(n.tag?.text("label")??n.name);for(const n of a){if(!n||!t(n))continue;const l=n.tag?.text("label")??n.name;o.has(l)||r.add(l)}return r}function L(e){const t=/^\s*(\d+)/.exec(e.style?.gridColumn??"");return t?t[1]:void 0}function je(e,t){if(t.size!==0)for(const r of e.querySelectorAll(".malloy-table")){const a=l=>l.closest(".malloy-table")===r,o=new Set;for(const l of r.querySelectorAll(".column-cell.th")){if(!a(l))continue;const i=(l.textContent??"").replace(/\u200b/g,"").trim(),b=L(l);b&&t.has(i)&&o.add(b)}if(o.size===0)continue;const n=new Set;for(const l of r.querySelectorAll(`.${v}[tabindex="0"]`)){if(!a(l))continue;const i=L(l);i&&(n.has(i)?l.tabIndex=-1:n.add(i))}for(const l of r.querySelectorAll(".column-cell.td")){if(!a(l))continue;const i=L(l),b=!l.querySelector(".value-null")&&(l.textContent??"").trim()!=="";if(i&&b&&o.has(i)&&!l.querySelector(".malloy-table")){if(l.classList.add(v),l.tabIndex===0)n.add(i);else{const f=n.has(i);f||n.add(i),l.tabIndex=f?-1:0}l.setAttribute("role","button")}}}}function Fe(e){const t=e.closest(".malloy-table"),r=L(e);return!t||!r?[]:Array.from(t.querySelectorAll(`.${v}`)).filter(a=>a.closest(".malloy-table")===t&&L(a)===r)}function de(e,t){const r=Fe(e),a=r.indexOf(e);if(a===-1)return;const o=t==="first"?r[0]:t==="last"?r[r.length-1]:r[Math.min(Math.max(a+t,0),r.length-1)];if(o){for(const n of r)n.tabIndex=n===o?0:-1;return o}}function Me(e){return{background:e.dashboardRoot,tableBackground:e.tableBackground,tableHeaderColor:e.tableHeader,tableBodyColor:e.tableBody,tableBorder:e.border,tablePinnedBackground:e.tableHeaderBackground,tablePinnedBorder:e.pinnedBorder,tableFontSize:`${e.font.size}px`,fontFamily:e.font.family,mapColor:e.mapColor}}function Re(e){const{foreground:t,axisFaint:r,gridline:a,font:o}=e,n={background:e.background,font:o.family,title:{color:t,font:o.family},axis:{labelColor:t,titleColor:t,domainColor:r,tickColor:r,gridColor:a,labelFont:o.family,titleFont:o.family},legend:{labelColor:t,titleColor:t,labelFont:o.family,titleFont:o.family},header:{labelColor:t,titleColor:t},range:{category:e.series}},l={...n,legend:{...n.legend,orient:"bottom"}};return i=>i==="shape_map"?l:n}function Te(e){if(!e)return;const t=e.tag("theme");if(!t)return;const r={},a=t.tag("palette");if(a){const n={},l=a.textArray("series");l&&l.length>0&&(n.series=l);for(const i of pe){const b=a.tag(i);if(!b)continue;const f={},x=b.text("light"),k=b.text("dark");x&&(f.light=x),k&&(f.dark=k),Object.keys(f).length>0&&(n[i]=f)}Object.keys(n).length>0&&(r.palette=n)}const o=t.tag("font");if(o){const n={},l=o.text("family");l&&(n.family=l);const i=o.numeric("size");typeof i=="number"&&Number.isFinite(i)&&(n.size=i),Object.keys(n).length>0&&(r.font=n)}return Object.keys(r).length>0?r:void 0}const G=e=>(e??[]).map(t=>t?.value).filter(t=>typeof t=="string");function _e(e){const t=e.replace(/[-_]+/g," ").replace(/\s+/g," ").trim();return t.charAt(0).toUpperCase()+t.slice(1)}const Oe=e=>G(e.annotations).some(t=>{const r=t.trim();return/^#[^("]/.test(r)&&/(?:^#|[\s{])label\s*=/.test(r)}),Be=e=>`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`,Le=e=>e.type?.element_type?.fields??e.type?.fields;function me(e,t){let r=!1;return{fields:e.map(a=>{const o=Le(a);if(o){const l=me(o,ue(G(a.annotations)));if(!l.changed)return a;r=!0;const i=a.type?.element_type?{...a.type,element_type:{...a.type.element_type,fields:l.fields}}:{...a.type,fields:l.fields};return{...a,type:i}}if(!t||!a.name||Oe(a))return a;const n=_e(a.name);return n===a.name?a:(r=!0,{...a,annotations:[{value:`# label=${Be(n)}
2
+ `},...a.annotations??[]]})}),changed:r}}function Ie(e){if(!e||typeof e!="object")return e;const t=e,r=t.schema?.fields;if(!Array.isArray(r))return e;const{fields:a,changed:o}=me(r,ue(G(t.annotations)));return o?{...t,schema:{...t.schema,fields:a}}:e}const ce=320,qe=10,Ne=96,Pe=4e3;function Ye(e,t){if(e!=="bar"&&e!=="combo"&&e!=="line"&&e!=="chart"&&e!=="scatter_chart")return;if(e!=="bar"&&e!=="combo")return ce;const r=t?.data?.array_value?.length,a=r===void 0?0:r*qe+Ne;return Math.min(Math.max(ce,a),Pe)}function He(e){let t;return{onClick:r=>{const a={...r,...Ve(r)};t=a,queueMicrotask(()=>{t===a&&(t=void 0),e(a)})},onDrill:r=>{const a=t;t=void 0,a&&r.stableDrillClauses!==void 0&&(a.drillClauses=r.stableDrillClauses)}}}function Ve(e){const t=e.field;try{const r=t?.getEffectiveQueryTimezone?.();return r?{timezone:r}:{}}catch{return{}}}function Ue(e){const t=r=>{let a=!1;try{a=r.isArray?.()===!0}catch{a=!1}a&&"stableDrillFilters"in r&&Object.defineProperty(r,"stableDrillFilters",{configurable:!0,get:()=>[]});for(const o of r.fields??[])t(o)};e&&t(e)}const B="data-publisher-fill",We=async(e,t,r)=>{if(typeof window>"u")throw new Error("MalloyRenderer can only be used in browser environment");const{MalloyRenderer:a}=await Ce();return new a({onClick:t,...r?{onDrill:r,tableConfig:{enableDrill:!0}}:{},vegaConfigOverride:Re(e),theme:Me(e),onError:o=>{console.error("Error rendering visualization:",typeof o,o)}}).createViz()};async function Xe(e){if(!e||typeof e!="object")return;const t=e,r=[...Array.isArray(t.model_annotations)?t.model_annotations:[],...Array.isArray(t.source_annotations)?t.source_annotations:[],...Array.isArray(t.annotations)?t.annotations:[]].map(o=>typeof o?.value=="string"?o.value:void 0).filter(o=>!!o);if(r.length===0)return;let a;try{({parseAnnotation:a}=await xe())}catch{return}try{const{tag:o}=a(r);return Te(o)}catch(o){console.warn("Failed to parse # theme.* annotations; chart will render with the shell theme.",{error:o,lines:r});return}}function Ke(e,t,r){const a=Ae(t,r);for(const[o,n]of Object.entries(a))e.style.setProperty(o,n)}const Je=`
3
+ /* Card geometry, through the renderer's OWN theme vars rather than over the top
4
+ of them. It declares --malloy-theme--dashboard-* on .malloy-render itself and
5
+ passes each through to the --malloy-render--* the card CSS reads, so a value
6
+ inherited from our wrapper loses to that declaration however early it is set:
7
+ this has to be a rule on the same element, at higher specificity. Doubling the
8
+ class does that, and then no !important is needed — which matters, because
9
+ !important here also lands on .dashboard-item-borderless and repaints a card
10
+ the author asked to have no card. */
11
+ .malloy-render.malloy-render {
12
+ --malloy-theme--dashboard-card-radius: var(--publisher-dashboard-card-radius);
13
+ --malloy-theme--dashboard-card-padding: var(--publisher-dashboard-card-padding);
14
+ }
15
+ /* dashboard.css hardcodes background: #f7f9fc on .malloy-dashboard
16
+ and .dashboard-row-header, which would paint light grey in dark
17
+ mode and also bleed an operator-picked palette.background across
18
+ the panel chrome in light. Both surfaces use
19
+ --malloy-render--background here, which buildMalloyExplicitTheme
20
+ wires to dashboardRoot: a mode-keyed neutral that stays decoupled
21
+ from palette.background (the chart canvas) on purpose. Selectors
22
+ are duplicated at higher specificity to beat the renderer s own
23
+ scoped rules. */
24
+ .malloy-render .malloy-dashboard,
25
+ .malloy-render.malloy-render .malloy-dashboard,
26
+ div.malloy-render .malloy-dashboard {
27
+ /* --publisher-dashboard-root is set on the outer Publisher wrapper
28
+ (see buildTableCssVars) and stays decoupled from
29
+ --malloy-render--background, which gets shadowed inside the
30
+ renderer when a theme.background annotation is present. The
31
+ dedicated var means the panel between tiles always paints the
32
+ operator neutral dashboardRoot regardless of annotations. */
33
+ background: var(--publisher-dashboard-root) !important;
34
+ background-color: var(--publisher-dashboard-root) !important;
35
+ color: var(--malloy-render--table-body-color) !important;
36
+ }
37
+ .malloy-render .malloy-dashboard .dashboard-row,
38
+ .malloy-render .malloy-dashboard .dashboard-row-body,
39
+ .malloy-render .malloy-dashboard .dashboard-row-header,
40
+ .malloy-render.malloy-render .malloy-dashboard .dashboard-row-header,
41
+ div.malloy-render .malloy-dashboard .dashboard-row-header {
42
+ /* Belt + suspenders: dashboard.css hardcodes .dashboard-row-header
43
+ to #f7f9fc, and row / row-body have no explicit background but
44
+ get caught in any annotation-driven inline writes. Force all of
45
+ them to the neutral panel colour. */
46
+ background: var(--publisher-dashboard-root) !important;
47
+ background-color: var(--publisher-dashboard-root) !important;
48
+ }
49
+ .malloy-render .malloy-dashboard .dashboard-item:not(.dashboard-item-borderless) {
50
+ /* Tile padding around each chart / table. Uses our custom
51
+ --malloy-render--tile-background so the operator can theme the
52
+ tile separately from the table header row (which paints from
53
+ --malloy-render--table-pinned-background below).
54
+
55
+ A flat bordered card rather than the renderer's shadow ring, which is what
56
+ makes it match the composite tile's Paper. :not(borderless) because
57
+ # borderless asks for no card at all, and an !important background and
58
+ border drew one anyway. */
59
+ background: var(--malloy-render--tile-background) !important;
60
+ color: var(--malloy-render--table-body-color) !important;
61
+ box-shadow: none !important;
62
+ /* The card edge, not the table gridline: --publisher-dashboard-card-border,
63
+ the same value TileCard paints, so the renderer's card and the composite
64
+ one are outlined identically. */
65
+ border: var(--publisher-dashboard-card-border) !important;
66
+ }
67
+ /* The renderer's big-value card — the small card a "# big_value" measure sits
68
+ in, several to a row inside one tile. (No backticks in here: this is inside
69
+ a template literal.) Its own CSS gives it a 0.55px edge in
70
+ #e5e7eb: a sub-pixel width, and a grey off the slate ramp everything else on
71
+ the page is on. It is a dashboard card like any other, so it takes the card
72
+ edge and stops being the one card outlined in a hairline nobody can see. */
73
+ .malloy-render .malloy-big-value-card {
74
+ border: var(--publisher-dashboard-card-border) !important;
75
+ /* Its shadow is a four-layer Tailwind stack, and only two of those layers
76
+ are a shadow: the other is "0 0 0 1px #e5e7eb", a spread ring drawn as a
77
+ second border OVER the real one. So the border above was landing
78
+ underneath a ring in the renderer's own grey, and the card kept both a
79
+ lifted look the flat cards around it do not have and an edge we did not
80
+ pick. Dropped whole rather than rebuilt layer by layer: the ring's job is
81
+ the border's job, and the border is already doing it. */
82
+ box-shadow: none !important;
83
+ }
84
+ /* The strip of big-value cards as a grid, so cards share a width and the last one does not wrap
85
+ alone. The renderer's wrapping flex row sizes each card to its own text. The 250px floor is the
86
+ widest realistic value: it is nowrap at 32px in an overflow:visible card, so a narrower track
87
+ would spill it onto its neighbour. Embedded (a nested big_value) is left as the renderer draws it. */
88
+ .malloy-render .malloy-big-value:not(.malloy-big-value--embedded) {
89
+ display: grid;
90
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
91
+ }
92
+ .malloy-render .malloy-big-value-card:not(.malloy-big-value-card--embedded) {
93
+ width: auto;
94
+ max-width: none;
95
+ }
96
+ /* Compact, in a tile set shorter than its cards (ResultContainer marks it tight): smaller values,
97
+ tighter cards and a 190px floor, which a 22px value still fits in, so five cards share a row of
98
+ about a thousand pixels instead of wrapping into rows the tile has no room for. */
99
+ [${H}] .malloy-render .malloy-big-value:not(.malloy-big-value--embedded) {
100
+ grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
101
+ gap: 8px;
102
+ padding: 8px;
103
+ }
104
+ [${H}] .malloy-render .malloy-big-value-card:not(.malloy-big-value-card--embedded) {
105
+ padding: 9px 14px;
106
+ }
107
+ [${H}] .malloy-render .malloy-big-value-value {
108
+ font-size: 22px;
109
+ }
110
+ [${H}] .malloy-render .malloy-big-value-label {
111
+ font-size: 11px;
112
+ }
113
+ .malloy-render .malloy-dashboard .dashboard-row-header-separator {
114
+ background: var(--malloy-render--table-border) !important;
115
+ }
116
+ /* !important because the malloy-explorer stylesheet pins these same properties with it. */
117
+ [${B}] .malloy-table.root {
118
+ height: 100% !important;
119
+ align-content: start !important;
120
+ grid-template-columns: repeat(var(--total-header-size), minmax(max-content, 1fr)) !important;
121
+ }
122
+ .malloy-render .malloy-table .th.column-cell {
123
+ /* Non-pinned tables have no header background in the renderer's
124
+ own CSS (only pinned scrolled tables paint the pinned-header
125
+ with this var). Force the same value here so every table has a
126
+ visible header band reflecting the operator's choice. */
127
+ background: var(--malloy-render--table-pinned-background) !important;
128
+ }
129
+ .malloy-render .dashboard-item-title,
130
+ .malloy-render .dashboard-dimension-name {
131
+ color: var(--malloy-render--label-color) !important;
132
+ }
133
+ .malloy-render .dashboard-item-value,
134
+ .malloy-render .dashboard-item-value-measure,
135
+ .malloy-render .dashboard-dimension-value {
136
+ color: var(--malloy-render--value-color) !important;
137
+ }
138
+ .malloy-render .malloy-table,
139
+ .malloy-render .malloy-list {
140
+ color: var(--malloy-render--table-body-color) !important;
141
+ }
142
+ .malloy-render .column-cell.th,
143
+ .malloy-render .cell-content.header {
144
+ color: var(--malloy-render--table-header-color) !important;
145
+ }
146
+ /* A cell whose column declares a "# drill" this surface can honor, marked
147
+ by markDrillableCells. Ordinary text with a pointer cursor until hovered,
148
+ then it reads as a link: the same affordance Malloyyo gives the same tag,
149
+ and the only thing that tells a reader a cell navigates. Kept off the
150
+ resting state deliberately: a column painted blue competes with the data.
151
+ (No backticks in here: this is inside a template literal.) */
152
+ .malloy-render .${v} {
153
+ cursor: pointer;
154
+ }
155
+ .malloy-render .${v}:hover > .cell-content {
156
+ color: var(--publisher-drill-link) !important;
157
+ text-decoration: underline;
158
+ }
159
+ /* Keyboard focus reads the same as hover, plus a ring: a hover colour is not
160
+ something a keyboard user can produce, and a focus ring is not something a
161
+ mouse user sees. focus-visible rather than focus, so a click does not leave a
162
+ ring behind it. (No backticks in here: this is inside a template literal.) */
163
+ .malloy-render .${v}:focus-visible {
164
+ outline: 2px solid var(--publisher-drill-link);
165
+ outline-offset: -2px;
166
+ }
167
+ .malloy-render .${v}:focus-visible > .cell-content {
168
+ color: var(--publisher-drill-link) !important;
169
+ text-decoration: underline;
170
+ }
171
+ /* The renderer's own drill, on so a click can report its row, paints the
172
+ whole hovered row as a link. Which cells click is the marking above. */
173
+ .malloy-render .malloy-table .td.highlight {
174
+ color: inherit;
175
+ }
176
+ .malloy-render .malloy-table .td.highlight:not(.${v}) {
177
+ cursor: inherit;
178
+ }
179
+ `,he="publisher-malloy-renderer-overrides";function Ze(){if(typeof document>"u"||document.getElementById(he))return;const e=document.createElement("style");e.id=he,e.textContent=Je,document.head.appendChild(e)}function Ge({result:e,height:t,drill:r,onSizeChange:a,onSizing:o,fill:n}){const l=g.useRef(null),i=g.useRef(r);i.current=r;const b=g.useMemo(()=>He(d=>i.current?.onClick(d)),[]),f=r!==void 0,x=g.useRef(!1),k=g.useRef(null),V=g.useRef(0),{theme:I,layers:U,mode:Q}=ge(),ee=g.useMemo(()=>({radius:I.ui.radius.tile,padding:`${ve}px`}),[I.ui.radius.tile]);return g.useEffect(()=>()=>{V.current+=1;const d=k.current;d?.viz.remove(),d?.node.remove(),k.current=null},[]),g.useLayoutEffect(()=>{if(!l.current||!e)return;Ze();const d=l.current,be=V.current+=1;let W=!1;const X=()=>!W&&be===V.current;let c,y,q=null,K=0,N=null,P=null,Y=null,F=null,M=null,R=null,te=null,re=0,z=null;x.current=!1;let p,D;const J=w=>{if(W||!w.firstElementChild||Z(p,D)==="container")return;const T=Se(p,D);if(x.current&&!T)return;const _=d.hasAttribute(B);_&&d.removeAttribute(B);const C=d.closest(`.${Ee}`),h=C?.style.overflowY;C&&(C.style.overflowY="hidden");const $=ze(w,se(p));C&&(C.style.overflowY=h??""),_&&d.setAttribute(B,""),$>0&&(x.current=!0,a&&$!==re&&(re=$,a($)));const A=De(w,se(p));T&&A&&te!==A&&(te=A,R?.disconnect(),R=new ResizeObserver(()=>J(w)),R.observe(A))};return(async()=>{let w;try{w=JSON.parse(e)}catch(m){console.error("Error parsing visualization result:",m);return}const T=await Xe(w),_=T?we([...U,ke(U,T)],Q):I;if(!X())return;try{y=await We(_,b.onClick,f?b.onDrill:void 0)}catch(m){console.error("Failed to create renderer:",m);return}if(!X()){y.remove(),y=void 0;return}const C=k.current;c=document.createElement("div"),c.style.width="100%",c.style.height="100%",Ke(c,_,ee),d.childElementCount>0&&(d.style.position="relative",c.style.position="absolute",c.style.inset="0",c.style.visibility="hidden"),d.appendChild(c);const h=c;F=new MutationObserver(()=>{M&&clearTimeout(M),M=setTimeout(()=>{J(h),x.current&&F?.disconnect()},100)}),F.observe(c,{childList:!0,subtree:!0,attributes:!0});const $=y;let A=!1;const ae=()=>{if(!(A||!X())){A=!0,z&&(clearTimeout(z),z=null),C?.viz.remove();for(const m of Array.from(d.children))m!==h&&d.removeChild(m);h.style.position="",h.style.inset="",h.style.visibility="",d.style.position="",k.current={viz:$,node:h},J(h)}};try{y.setResult(Ie(w));try{const S=y.getMetadata(),E=S?.getRootField();f&&Ue(E),p=E?.renderAs(),D=E?S?.getPluginsForField(E.key)?.[0]?.sizingStrategy:void 0}catch{p=void 0,D=void 0}o?.(Z(p,D),p),c.dataset.malloyRenderAs=p??"unknown",c.dataset.malloySizing=Z(p,D);const m=Ye(p,w);c.style.minWidth=m===void 0?"":`${m}px`,d.style.overflowX=m===void 0?"":"auto",d.style.overflowY=m===void 0?"":"hidden",y.render(c);const oe=i.current;try{if(oe){const S=$e(y,oe.canDrill),E=()=>{try{je(h,S)}catch(s){console.warn("Drill affordance skipped:",s)}};E();const ne=s=>{const u=s.querySelector(".cell-content")??s,j=u.getBoundingClientRect();u.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:u.ownerDocument.defaultView,clientX:Math.round(j.left+j.width/2),clientY:Math.round(j.bottom)}))},le=s=>s.target?.closest?.(`.${v}`)??null,ye=(s,u)=>{de(s,u)?.focus()};N=s=>{const u=le(s);if(!u)return;const j=s.key==="ArrowDown"?1:s.key==="ArrowUp"?-1:s.key==="Home"?"first":s.key==="End"?"last":void 0;if(j!==void 0){s.preventDefault(),ye(u,j);return}s.key==="Enter"?(s.preventDefault(),ne(u)):s.key===" "&&s.preventDefault()},P=s=>{if(s.key!==" ")return;const u=le(s);u&&(s.preventDefault(),ne(u))},Y=s=>{const u=s.target?.closest?.(`.${v}`);u&&de(u,0)},h.addEventListener("keydown",N),h.addEventListener("keyup",P),h.addEventListener("focusin",Y),S.size>0&&typeof MutationObserver<"u"&&(q=new MutationObserver(()=>{cancelAnimationFrame(K),K=requestAnimationFrame(E)}),q.observe(h,{childList:!0,subtree:!0}))}}catch(S){console.warn("Drill affordance skipped:",S)}y.onReady(ae),z=setTimeout(ae,1e4)}catch(m){console.error("Error rendering visualization:",m),F?.disconnect(),R?.disconnect(),q?.disconnect(),y.remove(),y=void 0,h.parentNode===d&&d.removeChild(h)}})(),()=>{W=!0,F?.disconnect(),R?.disconnect(),M&&clearTimeout(M),z&&clearTimeout(z),c&&k.current?.node!==c&&(N&&c.removeEventListener("keydown",N),P&&c.removeEventListener("keyup",P),Y&&c.removeEventListener("focusin",Y),q?.disconnect(),cancelAnimationFrame(K),y?.remove(),c.parentNode===d&&d.removeChild(c),d.style.position="")}},[e,b,f,a,o,I,U,Q,ee]),O.jsx("div",{ref:l,...n?{[B]:""}:{},style:{width:"100%",height:t?`${t}px`:"400px"}})}function Qe(e){return typeof window>"u"?O.jsx(ie,{sx:{width:"100%",height:e.height?`${e.height}px`:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"text.secondary"},children:"Loading..."}):O.jsx(g.Suspense,{fallback:O.jsx(ie,{sx:{width:"100%",height:e.height?`${e.height}px`:"100%",display:"flex",alignItems:"center",justifyContent:"center",color:"text.secondary"},children:"Loading visualization..."}),children:O.jsx(Ge,{...e})})}const tt=Object.freeze(Object.defineProperty({__proto__:null,default:Qe},Symbol.toStringTag,{value:"Module"}));export{v as D,Qe as R,Re as a,Me as b,tt as c,$e as d,je as m,Te as r};
@@ -1 +1 @@
1
- import{aB as o,j as r,aC as s,aD as n,I as t,T as a}from"./index-iyvwQg3j.js";function x(){const e=o();return console.error(e),r.jsx(s,{maxWidth:"lg",component:"main",sx:{display:"flex",flexDirection:"column",my:2,gap:0},children:r.jsxs(n,{sx:{m:"auto",flexDirection:"column"},children:[r.jsx(t,{sx:{height:"300px"}}),r.jsx("img",{src:"/error.png"}),r.jsx(a,{variant:"subtitle1",children:"An unexpected error occurred"})]})})}export{x as default};
1
+ import{aB as o,j as r,aC as s,aD as n,H as t,T as a}from"./index-CGKV9Dxi.js";function x(){const e=o();return console.error(e),r.jsx(s,{maxWidth:"lg",component:"main",sx:{display:"flex",flexDirection:"column",my:2,gap:0},children:r.jsxs(n,{sx:{m:"auto",flexDirection:"column"},children:[r.jsx(t,{sx:{height:"300px"}}),r.jsx("img",{src:"/error.png"}),r.jsx(a,{variant:"subtitle1",children:"An unexpected error occurred"})]})})}export{x as default};