@graphysdk/react-renderer 1.8.1-beta.1788389257261 → 1.8.1-beta.1788390469845

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- require('./history-chords.css');var Bo=Object.create,Oe=Object.defineProperty,Io=Object.getOwnPropertyDescriptor,Mo=Object.getOwnPropertyNames,To=Object.getPrototypeOf,Oo=Object.prototype.hasOwnProperty,Lo=(e,t)=>{let r={};for(var n in e)Oe(r,n,{get:e[n],enumerable:!0});return t||Oe(r,Symbol.toStringTag,{value:"Module"}),r},Fo=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(var o=Mo(t),s=0,i=o.length,l;s<i;s++)l=o[s],!Oo.call(e,l)&&l!==r&&Oe(e,l,{get:(c=>t[c]).bind(null,l),enumerable:!(n=Io(t,l))||n.enumerable});return e},dt=(e,t,r)=>(r=e!=null?Bo(To(e)):{},Fo(t||!e||!e.__esModule?Oe(r,"default",{value:e,enumerable:!0}):r,e));const y=require("./dev.utils-Cu9g-Xx9.cjs");let u=require("@graphysdk/viz-engine"),g=require("react"),a=require("react/jsx-runtime"),be=require("zustand"),S=require("motion/react"),No=require("d3-interpolate-path"),G=require("zustand/react/shallow"),Je=require("@graphysdk/viz-engine/graph-config"),sr=require("zustand/vanilla"),ir=require("react-dom"),F=require("clsx");F=dt(F,1);let ot=require("lodash-es/merge");ot=dt(ot,1);let Do=require("react-intl"),W=require("@floating-ui/react-dom"),lr=require("@vanilla-extract/dynamic"),Go=require("color2k");typeof window<"u"&&(window.__GRAPHY_SDK__??={},window.__GRAPHY_SDK__.reactRenderer="1.8.1-beta.1788389257261");var ht=(0,g.createContext)(null),N=()=>{const e=(0,g.useContext)(ht);if(!e)throw new Error("useGraph* hooks must be used inside a <GraphProvider>");return e},P=e=>{const{store:t}=N();return(0,be.useStore)(t,r=>e(r.compiled))};function k(e){const{colorScheme:t}=N();return(0,g.useMemo)(()=>(0,u.createStyleResolver)({colorScheme:t}).geomReaders(e),[e,t])}var cr=e=>{const{colorScheme:t}=N(),r=P(n=>n.layers);return(0,g.useMemo)(()=>{const n=r.find(o=>o.id===e);return n===void 0?null:(0,u.createStyleResolver)({colorScheme:t}).geomReaders(n)},[r,e,t])},ur=()=>{const{colorScheme:e}=N(),t=P(r=>r.layers);return(0,g.useMemo)(()=>{const r=(0,u.createStyleResolver)({colorScheme:e});return n=>{const o=(0,u.readAnchoredObservation)(t,n);if(o!==null)return r.geomReaders(o.layer).get("color",o.observation)}},[t,e])},Ho={centerX:0,centerY:0,radius:1},dr=e=>{const t=Math.min(e.width,e.height);return{centerX:(e.width-t)/2+t/2,centerY:(e.height-t)/2+t/2,radius:t/2}},V=(e,t,r=Ho)=>{const n=(0,u.polarToUnit)(e,t);return{x:r.centerX+n.x*r.radius,y:r.centerY-n.y*r.radius}},gt=(e,t)=>({x:(0,u.toViewBoxX)(e),y:(0,u.toViewBoxY)(t)}),Q=(e,t)=>{const r=V(e,t);return{x:(r.x+1)/2,y:(r.y+1)/2}},Wo=2,Vo=.7,ee=({hit:e,project:t=gt})=>{const r=cr(e.layerId);if(!e.anchored)return null;const n=r?.get("color",e.observation)??u.DEFAULT_GEOM_COLOR,o=((0,u.getAlpha)(e.observation)??1)*Vo,s=(r?.get("size",e.observation)??8)/2,i=r?.get("borderColor",e.observation,"hovered")??u.DEFAULT_HOVER_AFFORDANCE_COLOR,l=t(e.x,e.y);return(0,a.jsx)("circle",{cx:(0,u.toPercent)(l.x),cy:(0,u.toPercent)(l.y),r:s,fill:n,opacity:o,stroke:i,strokeWidth:Wo,"data-testid":"companion-point"})},U="_1d8mpa10",z={type:"spring",stiffness:500,damping:60,mass:1},Uo={duration:0},vt=e=>e?z:Uo,at=(e,t)=>{const r=(0,S.useMotionValue)(e);return(0,g.useEffect)(()=>{const n=(0,No.interpolatePath)(r.get(),e);(0,S.animate)(0,1,{...t,onUpdate:o=>{const s=n(o);return r.set(s)}})},[t,e,r]),r},hr=({shouldAnimateTransitions:e,...t})=>e?(0,a.jsx)(Yo,{...t}):(0,a.jsx)(Ko,{...t}),Ko=({fillPath:e,linePath:t,fill:r,fillOpacity:n,stroke:o,strokeWidth:s,strokeOpacity:i,strokeDasharray:l})=>(0,a.jsxs)("g",{children:[(0,a.jsx)("path",{d:e,fill:r,fillOpacity:n,stroke:"none"}),(0,a.jsx)("path",{d:t,fill:"none",stroke:o,strokeWidth:s,strokeOpacity:i,strokeDasharray:l,vectorEffect:"non-scaling-stroke"})]}),Yo=({fillPath:e,linePath:t,fill:r,fillOpacity:n,stroke:o,strokeWidth:s,strokeOpacity:i,strokeDasharray:l})=>{const c=at(e,z),h=at(t,z);return(0,a.jsxs)("g",{children:[(0,a.jsx)(S.motion.path,{d:c,fill:r,fillOpacity:n,stroke:"none"}),(0,a.jsx)(S.motion.path,{d:h,fill:"none",stroke:o,strokeWidth:s,strokeOpacity:i,strokeDasharray:l,vectorEffect:"non-scaling-stroke"})]})},ft=(e,t)=>{const r=(t!==void 0?e.delayByKey[t]:void 0)??0;return{duration:e.durationSeconds,ease:e.growAxis==="angle"?"circOut":"backOut",delay:r}},Qo=e=>({duration:e.durationSeconds,ease:"easeOut"}),zo=e=>({duration:e.durationSeconds,ease:"easeOut"}),qo=e=>Xo(e)+e.durationSeconds,Xo=e=>{switch(e.type){case"grow":return Object.values(e.delayByKey).reduce((t,r)=>Math.max(t,r),0);case"wipe":case"fade":return 0}},Lt=1.1,Ft=1.5,gr=({intro:e,children:t})=>{const r=(0,g.useId)();return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("clipPath",{id:r,children:(0,a.jsx)(S.motion.rect,{...Jo(e.axis),transition:Qo(e)})}),(0,a.jsx)("g",{clipPath:`url(#${r})`,children:t})]})},Jo=e=>e==="x"?{x:-.05,y:-.25,height:Ft,initial:{width:0},animate:{width:Lt}}:{x:-.25,y:-.05,width:Ft,initial:{height:0},animate:{height:Lt}},Zo=(0,g.memo)(function({layer:t,coordSystem:r,shouldAnimateTransitions:n,intro:o}){const s=o?.type==="wipe"?o:null,{lineGenerator:i,areaGenerator:l}=(0,g.useMemo)(()=>(0,u.createAreaPathGenerators)(r,t.params),[t.params,r]),c=k(t),h=(0,g.useMemo)(()=>{const d=(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id),f=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(p=>{const v=(0,u.prepareAreaObservations)([...p],t.params.missingValues),m=l(v),A=i(v);if(!m||!A)return;const x=v[0];if(!x)return;const b=c.get("color",x),j=c.get("strokeWidth",x),w=(0,u.getDashArray)(c.get("lineType",x));f.push({key:d(x),areaPath:m,linePath:A,color:b,fillOpacity:c.get("alpha",x),strokeWidth:j,strokeOpacity:c.get("strokeAlpha",x),strokeDasharray:w})}),f},[l,i,t.data,t.id,t.mapping,t.params,c]).map(d=>(0,a.jsx)(_o,{areaPath:d.areaPath,linePath:d.linePath,color:d.color,fillOpacity:d.fillOpacity,strokeWidth:d.strokeWidth,strokeOpacity:d.strokeOpacity,strokeDasharray:d.strokeDasharray,shouldAnimateTransitions:n},d.key));return(0,a.jsx)("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"area",className:U,children:s?(0,a.jsx)(gr,{intro:s,children:h}):h})}),_o=({areaPath:e,linePath:t,color:r,fillOpacity:n,strokeWidth:o,strokeOpacity:s,strokeDasharray:i,shouldAnimateTransitions:l})=>(0,a.jsx)(hr,{fillPath:e,linePath:t,fill:r,fillOpacity:n,stroke:r,strokeWidth:o,strokeOpacity:s,strokeDasharray:i,shouldAnimateTransitions:l}),$o="_324dw20",Ze=1,ea=2,ta=1,ra=12/2,na=2.25,de=({hit:e,project:t=gt,...r})=>{const n=cr(e.layerId);if(!e.anchored)return null;const o=n?.get("color",e.observation)??u.DEFAULT_GEOM_COLOR,s=(0,u.getAlpha)(e.observation)??1,i=n?.get("borderColor",e.observation,"hovered")??u.DEFAULT_HOVER_AFFORDANCE_COLOR,l=t(e.x,e.y),c=(0,u.toPercent)(l.x),h=(0,u.toPercent)(l.y),d=oa(e.observation),f=d+Ze/2+ta+Ze/2;return(0,a.jsxs)("g",{...r,className:$o,children:[(0,a.jsx)("circle",{cx:c,cy:h,r:f,fill:"none",stroke:i,strokeWidth:ea}),(0,a.jsx)("circle",{cx:c,cy:h,r:d,fill:o,opacity:s,stroke:i,strokeWidth:Ze})]})},oa=e=>{const t=(0,u.getSize)(e);return(0,u.isDefined)(t)?t/na:ra},aa=({layer:e,coordSystem:t,primary:r,companions:n})=>{const o=k(e),s=(0,u.getGroup)(r.observation),i=(0,g.useMemo)(()=>(0,u.prepareAreaObservations)([...e.data.filter(u.GROUP_VARIABLES.group,"eq",s)],e.params.missingValues),[e.data,e.params.missingValues,s]),{areaPath:l,linePath:c}=(0,g.useMemo)(()=>{const{lineGenerator:v,areaGenerator:m}=(0,u.createAreaPathGenerators)(t,e.params);return{areaPath:m(i)??"",linePath:v(i)??""}},[t,e.params,i]);if(!l||!c)return null;const h=o.get("color",r.observation),d=o.get("alpha",r.observation),f=o.get("strokeWidth",r.observation),p=(0,u.getDashArray)(o.get("lineType",r.observation));return(0,a.jsxs)("g",{"data-testid":"hovered-area",children:[(0,a.jsxs)("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"area",className:U,children:[(0,a.jsx)("path",{d:l,fill:h,fillOpacity:d,stroke:"none","data-testid":"hovered-area-fill"}),(0,a.jsx)("path",{d:c,fill:"none",stroke:h,strokeWidth:f,strokeOpacity:o.get("strokeAlpha",r.observation),strokeDasharray:p,vectorEffect:"non-scaling-stroke","data-testid":"hovered-area-edge"})]}),n.map(v=>(0,a.jsx)(ee,{hit:v},`companion-${v.layerId}-${v.pointIndex}`)),(0,a.jsx)(de,{hit:r,"data-testid":"hovered-area-point"})]})},sa={geom:"area",coord:"cartesian",swatchShape:"area",guideMode:"crosshair",render:({layer:e,coordSystem:t,shouldAnimateTransitions:r,intro:n})=>(0,a.jsx)(Zo,{layer:e,coordSystem:t,shouldAnimateTransitions:r,intro:n}),renderHover:({layer:e,coordSystem:t,primary:r,group:n,related:o})=>(0,a.jsx)(aa,{layer:e,coordSystem:t,primary:r,companions:[...n,...o]}),renderHoverCompanions:({related:e})=>(0,a.jsx)(a.Fragment,{children:e.map(t=>(0,a.jsx)(ee,{hit:t},`companion-${t.layerId}-${t.pointIndex}`))}),getOverlayAnchor:({observation:e,coordSystem:t})=>{if(t.mainAxis==="x"){const o=(0,u.getX)(e),s=(0,u.getYMax)(e)??(0,u.getY)(e);return o===null||s===null?null:{x:o,y:s}}const r=(0,u.getY)(e),n=(0,u.getXMax)(e)??(0,u.getX)(e);return r===null||n===null?null:{x:n,y:r}}},st=(e,t,r)=>{const n=r===void 0?e.activeIntro:r,o=(0,g.useRef)(n?ft(n,t):null),s=(0,g.useRef)(e.shouldAnimateTransitions);return s.current=e.shouldAnimateTransitions,(0,g.useCallback)(()=>{const i=o.current;return o.current=null,i??vt(s.current)},[])},We=(e,t)=>{const r=(0,g.useRef)(!0);(0,g.useEffect)(()=>{r.current=!1},[]);const n=r.current;return(0,g.useMemo)(()=>({isAnimated:t||e!==null,isLayerEntrance:n,activeIntro:n?e:null,shouldAnimateTransitions:t}),[e,t,n])},he=(e,t)=>({borderColor:e.get("borderColor",t),borderWidth:e.get("borderWidth",t),borderRadius:e.get("borderRadius",t),borderAlpha:e.get("alpha",t)}),vr=(e,t)=>t.growAxis==="x"?{x:t.baseline,y:e.y,width:0,height:e.height}:{x:e.x,y:t.baseline,width:e.width,height:0},ia=(0,g.memo)(function({layer:t,coordSystem:r,shouldAnimateTransitions:n,intro:o}){const s=(0,g.useId)(),i=k(t),l=We(o?.type==="grow"&&(o.growAxis==="x"||o.growAxis==="y")?o:null,n);return(0,a.jsx)(a.Fragment,{children:(0,g.useMemo)(()=>{const c=(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id),h=new Map;for(const d of t.data){const f=(0,u.getBarRectBounds)(r.mainAxis,d);if(!f)continue;const p=(0,u.buildColumnKey)(r.mainAxis,f),v=h.get(p),m={key:c(d),...f,fill:i.get("color",d),opacity:i.get("alpha",d)};v?v.bars.push(m):h.set(p,{bars:[m],style:he(i,d)})}return[...h.values()].map(({bars:d,style:f},p)=>{const v=(0,u.getBoundingRect)(d),m=f.borderColor===void 0?void 0:(0,u.resolveBarBorderTreatment)(f.borderWidth);return{key:d[0]?.key??String(p),id:`${s}${p}`,bars:d,...v,radii:da({borderRadius:f.borderRadius,mainAxis:r.mainAxis,bounds:v}),borderColor:f.borderColor,outlineOpacity:f.borderAlpha,clippedStrokeWidth:m?.outlineWidth,separatorStrokeWidth:m?.separatorWidth}})},[s,r.mainAxis,t,i]).map(c=>{if(c.bars.length===1&&c.borderColor===void 0){const[h]=c.bars;if(!h)return null;const{key:d,...f}=h;return(0,a.jsx)(Le,{...f,...c.radii,animation:l,introKey:d},d)}return l.isAnimated?(0,a.jsx)(ca,{column:c,animation:l},c.key):(0,a.jsx)(la,{column:c,animation:l},c.key)})})}),la=({column:e,animation:t})=>{const{id:r,bars:n,radii:o,borderColor:s,outlineOpacity:i,clippedStrokeWidth:l,separatorStrokeWidth:c}=e,h=s!==void 0,d=(0,a.jsx)("clipPath",{id:r,children:(0,a.jsx)(Nt,{bounds:e,radii:o})});if(n.length===1){const[f]=n;if(!f)return null;const{key:p,...v}=f;return(0,a.jsxs)(a.Fragment,{children:[d,(0,a.jsx)("g",{clipPath:`url(#${r})`,children:(0,a.jsx)(Le,{...v,...o,stroke:s,strokeWidth:l,animation:t},p)})]})}return(0,a.jsxs)(a.Fragment,{children:[d,(0,a.jsxs)("g",{clipPath:`url(#${r})`,children:[n.map(f=>{const{key:p,...v}=f;return(0,a.jsx)(Le,{...v,stroke:s,strokeWidth:c,animation:t},p)}),h&&(0,a.jsx)(Nt,{bounds:e,radii:o,fill:"none",stroke:s,strokeWidth:l,opacity:i})]})]})},ca=({column:e,animation:t})=>{const{id:r,bars:n,radii:o,borderColor:s,outlineOpacity:i,clippedStrokeWidth:l,separatorStrokeWidth:c}=e,h=s!==void 0,d=ua(e,t,n[0]?.key),f={style:{transformBox:"view-box",x:d.x,y:d.y,width:d.width,height:d.height},rx:o.rx,ry:o.ry},p=(0,a.jsx)("clipPath",{id:r,children:(0,a.jsx)(S.motion.rect,{...f})});if(n.length===1){const[v]=n;return(0,a.jsxs)(a.Fragment,{children:[p,(0,a.jsx)("g",{clipPath:`url(#${r})`,children:(0,a.jsx)(S.motion.rect,{...f,fill:v?.fill,opacity:v?.opacity,stroke:s,strokeWidth:l})})]})}return(0,a.jsxs)(a.Fragment,{children:[p,(0,a.jsxs)("g",{clipPath:`url(#${r})`,children:[n.map(v=>{const{key:m,...A}=v;return(0,a.jsx)(Le,{...A,stroke:s,strokeWidth:c,animation:t,introKey:m},m)}),h&&(0,a.jsx)(S.motion.rect,{...f,fill:"none",stroke:s,strokeWidth:l,opacity:i})]})]})},Le=({animation:e,introKey:t,rx:r,ry:n,stroke:o,strokeWidth:s,...i})=>{const{isAnimated:l,activeIntro:c,shouldAnimateTransitions:h}=e;if(l){const d=c?vr(i,c):null;return(0,a.jsx)(S.motion.rect,{initial:d?{x:(0,u.toPercent)(d.x),y:(0,u.toPercent)(d.y),width:(0,u.toPercent)(d.width),height:(0,u.toPercent)(d.height),opacity:i.opacity}:!1,style:{transformBox:"view-box"},transition:c?ft(c,t):vt(h),fill:i.fill,opacity:i.opacity,rx:r,ry:n,stroke:o,strokeWidth:s,animate:{x:(0,u.toPercent)(i.x),y:(0,u.toPercent)(i.y),width:(0,u.toPercent)(i.width),height:(0,u.toPercent)(i.height),opacity:i.opacity}})}return(0,a.jsx)("rect",{style:{transformBox:"view-box"},x:(0,u.toPercent)(i.x),y:(0,u.toPercent)(i.y),width:(0,u.toPercent)(i.width),height:(0,u.toPercent)(i.height),fill:i.fill,opacity:i.opacity,rx:r,ry:n,stroke:o,strokeWidth:s})},Nt=({bounds:e,radii:t,fill:r,stroke:n,strokeWidth:o,opacity:s})=>(0,a.jsx)("rect",{x:(0,u.toPercent)(e.x),y:(0,u.toPercent)(e.y),width:(0,u.toPercent)(e.width),height:(0,u.toPercent)(e.height),rx:t.rx,ry:t.ry,fill:r,stroke:n,strokeWidth:o,opacity:s}),ua=(e,t,r)=>{const n=t.activeIntro?vr(e,t.activeIntro):e,o=(0,S.useMotionValue)(n.x),s=(0,S.useMotionValue)(n.y),i=(0,S.useMotionValue)(n.width),l=(0,S.useMotionValue)(n.height),c=st(t,r);return(0,g.useEffect)(()=>{const h=c(),d=[(0,S.animate)(o,e.x,h),(0,S.animate)(s,e.y,h),(0,S.animate)(i,e.width,h),(0,S.animate)(l,e.height,h)];return()=>{for(const f of d)f.stop()}},[o,s,i,l,e.x,e.y,e.width,e.height,c]),{x:(0,S.useTransform)(o,u.toPercent),y:(0,S.useTransform)(s,u.toPercent),width:(0,S.useTransform)(i,u.toPercent),height:(0,S.useTransform)(l,u.toPercent)}};function da(e){const t=(0,u.resolveBarCornerRadiiPx)(e);if(e.borderRadius!=="full")return t;const r={};return t.rx!==void 0&&(r.rx=(0,u.toPercent)(t.rx)),t.ry!==void 0&&(r.ry=(0,u.toPercent)(t.ry)),r}var ha="_1suo8ub0",fr=(e,t,r)=>{const n=new Map;for(const s of e.data){const i=(0,u.getBarRectBounds)(t,s);if(!i)continue;const l=(0,u.buildColumnKey)(t,i),c=n.get(l);c===void 0?n.set(l,{firstObservation:s,memberBounds:[i]}):c.memberBounds.push(i)}const o=new Map;for(const[s,{firstObservation:i,memberBounds:l}]of n)o.set(s,{style:he(r,i),bounds:(0,u.getBoundingRect)(l)});return o},pr=(e,t,r,n)=>{const o=(0,u.getBarRectBounds)(t,n);return o?e.get((0,u.buildColumnKey)(t,o))??{style:he(r,n),bounds:o}:null},Fe=(e,t)=>({x:e.x*t.width,y:e.y*t.height,width:e.width*t.width,height:e.height*t.height}),Dt=(e,t)=>({x:e.x-t,y:e.y-t,width:Math.max(0,e.width+t*2),height:Math.max(0,e.height+t*2)}),se=(e,t)=>{const r=Math.max(0,Math.min(t,e.width/2)),n=Math.max(0,Math.min(t,e.height/2)),o=e.x+e.width,s=e.y+e.height;return r<=0||n<=0?`M${e.x},${e.y}H${o}V${s}H${e.x}Z`:[`M${e.x+r},${e.y}`,`H${o-r}`,`A${r},${n} 0 0 1 ${o},${e.y+n}`,`V${s-n}`,`A${r},${n} 0 0 1 ${o-r},${s}`,`H${e.x+r}`,`A${r},${n} 0 0 1 ${e.x},${s-n}`,`V${e.y+n}`,`A${r},${n} 0 0 1 ${e.x+r},${e.y}`,"Z"].join("")},ga=({observation:e,mainAxis:t,styleReaders:r,column:n,panelRect:o})=>{const s=(0,g.useId)(),i=(0,g.useId)(),l=(0,u.getBarRectBounds)(t,e);if(!l)return null;const c=Fe(l,o),h=Fe(n.bounds,o),{borderColor:d,borderWidth:f,borderRadius:p,borderAlpha:v}=n.style,m=(0,u.resolveBarBorderRadiusPx)({borderRadius:p,mainAxis:t,bounds:h}),A=se(c,0),x=se(h,m),b=r.get("color",e),j=r.get("alpha",e),w=(0,u.resolveBarBorderTreatment)(f);return(0,a.jsxs)("g",{clipPath:`url(#${s})`,children:[(0,a.jsx)("clipPath",{id:s,children:(0,a.jsx)("path",{d:A})}),(0,a.jsx)("clipPath",{id:i,children:(0,a.jsx)("path",{d:x})}),(0,a.jsxs)("g",{clipPath:`url(#${i})`,children:[(0,a.jsx)("path",{d:A,fill:b,opacity:j,"data-testid":"highlight-bar-segment"}),d!==void 0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("path",{d:A,fill:"none",stroke:d,strokeWidth:w.separatorWidth,opacity:j,"data-testid":"highlight-bar-segment-border"}),(0,a.jsx)("path",{d:x,fill:"none",stroke:d,strokeWidth:w.outlineWidth,opacity:v})]})]})]})},va=({layer:e,sourceLayer:t,coordSystem:r,panelRect:n})=>{const o=k(t),s=(0,g.useMemo)(()=>fr(t,r.mainAxis,o),[t,r.mainAxis,o]),i=(0,u.createStableKeyGenerator)(e.data,e.mapping,e.id),l=[];for(const c of e.data){const h=pr(s,r.mainAxis,o,c);h!==null&&l.push((0,a.jsx)(ga,{observation:c,mainAxis:r.mainAxis,styleReaders:o,column:h,panelRect:n},i(c)))}return l},_e=3,fa=({layer:e,coordSystem:t,primary:r,panelRect:n})=>{const o=k(e),s=(0,g.useId)(),i=(0,g.useId)(),l=(0,g.useId)(),c=(0,g.useMemo)(()=>fr(e,t.mainAxis,o),[e,t.mainAxis,o]),h=(0,u.getBarRectBounds)(t.mainAxis,r.observation),d=pr(c,t.mainAxis,o,r.observation);if(!h||d===null)return null;const f=Fe(h,n),p=Fe(d.bounds,n),{borderColor:v,borderWidth:m,borderRadius:A,borderAlpha:x}=d.style,b=(0,u.resolveBarBorderRadiusPx)({borderRadius:A,mainAxis:t.mainAxis,bounds:p}),j=se(f,0),w=se(p,b),C=se(Dt(f,_e),0),M=se(Dt(p,_e),b>0?b+_e:0),R=o.get("color",r.observation),E=o.get("alpha",r.observation),B=o.get("borderColor",r.observation,"hovered")??u.DEFAULT_HOVER_AFFORDANCE_COLOR,T=(0,u.resolveBarBorderTreatment)(m);return(0,a.jsxs)("g",{"data-testid":"hovered-bar",children:[(0,a.jsx)("clipPath",{id:s,children:(0,a.jsx)("path",{d:M})}),(0,a.jsx)("clipPath",{id:i,children:(0,a.jsx)("path",{d:j})}),(0,a.jsx)("clipPath",{id:l,children:(0,a.jsx)("path",{d:w})}),(0,a.jsx)("g",{className:ha,children:(0,a.jsx)("g",{clipPath:`url(#${s})`,children:(0,a.jsx)("path",{d:C,fill:B,"data-testid":"hovered-bar-border"})})}),(0,a.jsx)("g",{clipPath:`url(#${i})`,children:(0,a.jsxs)("g",{clipPath:`url(#${l})`,children:[(0,a.jsx)("path",{d:j,fill:R,opacity:E,"data-testid":"hovered-bar-fill"}),v!==void 0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("path",{d:j,fill:"none",stroke:v,strokeWidth:T.separatorWidth,opacity:E,"data-testid":"hovered-bar-inner-border"}),(0,a.jsx)("path",{d:w,fill:"none",stroke:v,strokeWidth:T.outlineWidth,opacity:x})]})]})})]})},pa={geom:"bar",coord:"cartesian",swatchShape:"square",guideMode:"band",render:({layer:e,coordSystem:t,shouldAnimateTransitions:r,intro:n})=>(0,a.jsx)(ia,{layer:e,coordSystem:t,shouldAnimateTransitions:r,intro:n}),renderHighlight:({layer:e,sourceLayer:t,coordSystem:r,panelRect:n})=>(0,a.jsx)(va,{layer:e,sourceLayer:t,coordSystem:r,panelRect:n}),renderHover:({layer:e,coordSystem:t,primary:r,panelRect:n})=>(0,a.jsx)(fa,{layer:e,coordSystem:t,primary:r,panelRect:n}),renderHoverCompanions:()=>null},ma=(0,g.memo)(function({layer:t,shouldAnimateTransitions:r,intro:n}){const o=n?.type==="wipe"?n:null,s=(0,g.useMemo)(()=>(0,u.createLinePathGenerator)(t.params),[t.params]),i=(0,g.useMemo)(()=>(0,u.createLineFillAreaGenerator)(t.params),[t.params]),l=k(t),c=(0,g.useMemo)(()=>{const h=(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id),d=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(f=>{const p=(0,u.prepareLineObservations)([...f],t.params.missingValues),v=s(p);if(!v)return;const m=p[0];if(!m)return;const A=l.get("fillAlpha",m),x=A===void 0?void 0:i(p)??void 0,b=l.get("color",m),j=l.get("strokeWidth",m),w=(0,u.getDashArray)(l.get("lineType",m));d.push({key:h(m),pathData:v,fillPath:x,fillAlpha:A,color:b,opacity:l.get("alpha",m),strokeWidth:j,strokeDasharray:w})}),d},[s,i,t.data,t.id,t.mapping,t.params,l]).map(h=>(0,a.jsx)(xa,{pathData:h.pathData,fillPath:h.fillPath,fillAlpha:h.fillAlpha,color:h.color,strokeWidth:h.strokeWidth,opacity:h.opacity,strokeDasharray:h.strokeDasharray,shouldAnimateTransitions:r},h.key));return(0,a.jsx)("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"line",className:U,children:o?(0,a.jsx)(gr,{intro:o,children:c}):c})}),xa=({pathData:e,fillPath:t,fillAlpha:r,color:n,strokeWidth:o,opacity:s,strokeDasharray:i,shouldAnimateTransitions:l})=>t!==void 0&&r!==void 0?(0,a.jsx)(ya,{fillPath:t,fillAlpha:r,linePath:e,color:n,strokeWidth:o,opacity:s,strokeDasharray:i,shouldAnimateTransitions:l}):l?(0,a.jsx)(Aa,{pathData:e,color:n,strokeWidth:o,opacity:s,strokeDasharray:i}):(0,a.jsx)("path",{d:e,fill:"none",stroke:n,strokeWidth:o,opacity:s,strokeDasharray:i,vectorEffect:"non-scaling-stroke"}),ya=({fillPath:e,fillAlpha:t,linePath:r,color:n,strokeWidth:o,opacity:s,strokeDasharray:i,shouldAnimateTransitions:l})=>{const c=`line_fill_gradient_${(0,g.useId)()}`;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("defs",{children:(0,a.jsxs)("linearGradient",{id:c,gradientTransform:"rotate(90 0.5 0.5)",children:[(0,a.jsx)("stop",{offset:"0%",stopColor:n}),(0,a.jsx)("stop",{offset:"70%",stopColor:n,stopOpacity:0}),(0,a.jsx)("stop",{offset:"100%",stopColor:n,stopOpacity:0})]})}),(0,a.jsx)(hr,{fillPath:e,linePath:r,fill:`url(#${c})`,fillOpacity:t,stroke:n,strokeWidth:o,strokeOpacity:s,strokeDasharray:i,shouldAnimateTransitions:l})]})},Aa=({pathData:e,color:t,strokeWidth:r,opacity:n,strokeDasharray:o})=>{const s=at(e,z);return(0,a.jsx)(S.motion.path,{d:s,fill:"none",stroke:t,strokeWidth:r,opacity:n,strokeDasharray:o,vectorEffect:"non-scaling-stroke"})},ba=({layer:e,primary:t,companions:r})=>{const n=k(e),o=(0,u.getGroup)(t.observation),s=(0,g.useMemo)(()=>(0,u.prepareLineObservations)([...e.data.filter(u.GROUP_VARIABLES.group,"eq",o)],e.params.missingValues),[e.data,e.params.missingValues,o]),i=(0,g.useMemo)(()=>(0,u.createLinePathGenerator)(e.params)(s),[e.params,s]);if(!i)return null;const l=n.get("color",t.observation),c=n.get("alpha",t.observation),h=n.get("strokeWidth",t.observation),d=(0,u.getDashArray)(n.get("lineType",t.observation));return(0,a.jsxs)("g",{"data-testid":"hovered-line",children:[(0,a.jsx)("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"line",className:U,children:(0,a.jsx)("path",{d:i,fill:"none",stroke:l,strokeWidth:h,opacity:c,strokeDasharray:d,vectorEffect:"non-scaling-stroke","data-testid":"hovered-line-path"})}),r.map(f=>(0,a.jsx)(ee,{hit:f},`companion-${f.layerId}-${f.pointIndex}`)),(0,a.jsx)(de,{hit:t,"data-testid":"hovered-line-point"})]})},ja={geom:"line",coord:"cartesian",swatchShape:"line",guideMode:"crosshair",render:({layer:e,shouldAnimateTransitions:t,intro:r})=>(0,a.jsx)(ma,{layer:e,shouldAnimateTransitions:t,intro:r}),renderHover:({layer:e,primary:t,group:r,related:n})=>(0,a.jsx)(ba,{layer:e,primary:t,companions:[...r,...n]}),renderHoverCompanions:({related:e})=>(0,a.jsx)(a.Fragment,{children:e.map(t=>(0,a.jsx)(ee,{hit:t},`companion-${t.layerId}-${t.pointIndex}`))}),getOverlayAnchor:({observation:e})=>{const t=(0,u.getX)(e),r=(0,u.getY)(e);return t===null||r===null?null:{x:t,y:r}}},mr=({observation:e,project:t,styleReaders:r,animation:n,introKey:o})=>{const s=(0,u.getX)(e),i=(0,u.getY)(e);if(s===null||i===null)return null;const l=t(s,i),c=(0,u.toPercent)(l.x),h=(0,u.toPercent)(l.y),d=r.get("size",e)/2,f=r.get("color",e),p=r.get("alpha",e),v=r.get("borderColor",e),m=r.get("borderWidth",e),{isAnimated:A,activeIntro:x,shouldAnimateTransitions:b}=n;return A?(0,a.jsx)(S.motion.circle,{initial:x?{cx:c,cy:h,r:0,opacity:0}:!1,transition:x?ft(x,o):vt(b),fill:f,stroke:v,strokeWidth:m,animate:{cx:c,cy:h,r:d,opacity:p}}):(0,a.jsx)("circle",{cx:c,cy:h,r:d,fill:f,opacity:p,stroke:v,strokeWidth:m})},wa=(0,g.memo)(function({layer:t,shouldAnimateTransitions:r,intro:n}){const o=k(t),s=We(n?.type==="grow"&&n.growAxis==="size"?n:null,r);return(0,g.useMemo)(()=>{const i=s.activeIntro?(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id):null,l=[];let c=0;for(const h of t.data)l.push((0,a.jsx)(mr,{observation:h,project:gt,styleReaders:o,animation:s,introKey:i?.(h)},String(c++)));return l},[t.data,t.mapping,t.id,o,s])}),Gt=({primary:e,companions:t})=>{const r=(0,a.jsxs)(a.Fragment,{children:[t.map(n=>(0,a.jsx)(ee,{hit:n},`companion-${n.layerId}-${n.pointIndex}`)),e?(0,a.jsx)(de,{hit:e}):null]});return e?(0,a.jsx)("g",{"data-testid":"hovered-point",children:r}):r},Sa={geom:"point",coord:"cartesian",swatchShape:"circle",render:({layer:e,shouldAnimateTransitions:t,intro:r})=>(0,a.jsx)(wa,{layer:e,shouldAnimateTransitions:t,intro:r}),renderHover:({primary:e,group:t,related:r})=>(0,a.jsx)(Gt,{primary:e,companions:[...t,...r]}),renderHoverCompanions:({related:e})=>(0,a.jsx)(Gt,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=(0,u.getX)(e),r=(0,u.getY)(e);return t===null||r===null?null:{x:t,y:r}}},Pa={small:1.9,medium:2.3,large:2.6},Ra={small:1,medium:1,large:1.2},xr=y.FONT_LINE_HEIGHT.sm,O=(e,t)=>`color-mix(in srgb, transparent, ${e} ${t*100}%)`,yr=(e,t)=>`hsl(from ${e} h s calc(l * ${1-t}))`,Ca=(e,t)=>`hsl(from ${e} h s calc(l * ${1+t}))`,Ea=e=>/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(e),ka=e=>e.length===0?!1:typeof CSS<"u"&&typeof CSS.supports=="function"?CSS.supports("color",e):/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(e),K=e=>`${e}px`,Ar={gridLineWidth:"1px",tooltipBorderRadius:"6px",tooltipPaddingBlock:"8px",tooltipPaddingInline:"10px",tooltipRowGap:"4px",tooltipShadow:"0 4px 12px rgba(0, 0, 0, 0.18)",editorControlHeight:K(32),legendItemGap:K(8),legendSwatchGap:K(8),legendSwatchWidth:K(10),legendSwatchHeight:K(12),legendPillPaddingInline:K(8),legendPillPaddingBlock:K(2),legendPillBorderWidth:K(1),headlineRowGap:K(2),headlineItemGap:K(24)},ie={panelOverlay:5,textToolbar:10,textToolbarTooltip:20,textToolbarPopover:30,legendPopover:40,editorOverlay:900,editorOverlayPopover:950,tooltip:1e3},br={elevationXs:"0 0 2px rgba(15, 15, 24, 0.12), 0 2px 2px rgba(14, 14, 52, 0.08)",elevationSm:"0 0 4px rgba(15, 15, 24, 0.12), 0 4px 4px rgba(14, 14, 52, 0.08)",elevationMd:"0 0 8px rgba(15, 15, 24, 0.12), 0 8px 8px rgba(14, 14, 52, 0.08)",elevationLg:"0 0 16px rgba(15, 15, 24, 0.12), 0 16px 16px rgba(14, 14, 52, 0.08)"},jr={radiiXs:"4px",radiiSm:"6px",radiiMd:"8px",radiiLg:"12px"},wr={zIndexToolbar:`${ie.textToolbar}`,zIndexToolbarTooltip:`${ie.textToolbarTooltip}`,zIndexToolbarPopover:`${ie.textToolbarPopover}`,zIndexEditorPopover:`${ie.editorOverlayPopover}`},Ba=8,ae=e=>`${Ba*e}px`,Sr={spaceXxs:ae(.25),spaceXs:ae(.5),spaceSm:ae(.75),spaceMd:ae(1),spaceLg:ae(1.5),spaceXl:ae(2)},Ia={transparent:"transparent",white:"#FFFFFF",black:"#000000",grey100:"#FFFFFF",grey95:"#FCFCFC",grey90:"#FAFAFA",grey85:"#F5F5F5",grey80:"#F0F0F0",grey75:"#E8E8E8",grey70:"#E5E5E5",grey60:"#CCCCCC",grey50:"#C4C4C4",grey0:"#1D2129",red60:"#E14B49",red50:"#F93939",amber70:"#FFBA8C",amber50:"#FFC849",amber40:"#FEAE47",amber30:"#E7A816",green60:"#06B299",green50:"#42CD69",blue80:"#2E62FF",blue60:"#3D70FF",purple50:"#7B56EA",purple30:"#E093FE",greyGradient80:"linear-gradient(to top, #F0F0F1, #F9F9FF)"},Ma={textPrimary:y.vars.black,textSecondary:O(y.vars.textPrimary,.6),textDisabled:O(y.vars.textPrimary,.5),iconPrimary:"currentColor",iconSecondary:O(y.vars.textPrimary,.6),iconStickerBackground:y.vars.grey100,brand:y.vars.purple50,success:y.vars.green50,warning:y.vars.amber50,alert:y.vars.red50,border100:y.vars.grey0,border50:O(y.vars.grey0,.5),border10:O(y.vars.grey0,.1),sunkenBackground:y.vars.grey90,defaultBackground:y.vars.grey100,raisedBackground:y.vars.grey85,overlayBackground:y.vars.grey100,overlayBorderGradient:y.vars.border10},Ta={graphBackground:y.vars.grey100,gridLineColor:y.vars.border10,axisTickColor:y.vars.border10,originLineColor:y.vars.grey0,legendBackground:y.vars.defaultBackground,legendBorderColor:y.vars.border10,legendFocusOutlineColor:y.vars.border50,legendTextColor:y.vars.textPrimary,dimmedSeriesLabelTextColor:y.vars.textDisabled,dimmedSeriesLabelLineColor:y.vars.grey60,trendNegativeColor:y.vars.red60,trendPositiveColor:y.vars.green60,trendNeutralColor:y.vars.textSecondary,toolbarBackgroundColor:y.vars.overlayBackground,toolbarButtonBackgroundColor:"transparent",toolbarButtonBackgroundColorHovered:y.vars.grey80,toolbarButtonBackgroundColorSelected:y.vars.grey60,toolbarSeparatorColor:y.vars.grey60,tooltipBackground:y.vars.white,tooltipBorderColor:y.vars.border10,tooltipValueTextColor:y.vars.textPrimary,hoverGuideLineColor:O(y.vars.black,.2),hoverGuideFillColor:O(y.vars.black,.04),heatmapEmptyTileBackground:y.vars.grey80,annotationFrameBorderColor:y.vars.blue60,editMenuTriggerIconColor:"#3d414c"},Oa={canvasDefault:"#000000",canvasBlue:"#3b82f6",canvasCyan:"#06b6d4",canvasGreen:"#10b981",canvasYellow:"#E5B400",canvasOrange:"#f97316",canvasRed:"#ef4444",canvasPink:"#E845BF",canvasPurple:"#8b5cf6",canvasGray:"#78716c",canvasInverse:"#ffffff"},Pr={...Ia,...Ma,...br,...jr,...Sr,...wr,...Ta,...Oa,...Ar,...y.baseTypographyTokens,...y.semanticTypographyTokens,...y.elementTypographyTokens},pt=(e,t)=>e*10*t,Rr=(e,t)=>({family:e.family,size:e.size.unit==="em"?pt(e.size.value,t):e.size.value,weight:e.weight,style:e.style}),La=(e,t={})=>{const r=$e(e.fontFamilyDefault)??$e(y.DEFAULT_FONT_FAMILY)??"";return{legendLabel:(o=>{const s=t[o]??{},i=y.MEASURED_ELEMENT_FONT_DEFINITIONS[o],l=Cr(i,e);l===null&&Na(o);const c=l??Fa(i);return{family:$e(s.family)??r,style:s.style??"normal",weight:s.weight??c.weight,size:s.size??c.size,lineHeight:s.lineHeight??c.lineHeight}})("fontLegendLabel"),familyDefault:r}},Cr=(e,t)=>{const r=(0,Je.parseFontWeight)(t[e.weight]),n=(0,Je.parseFontLength)(t[e.size]),o=(0,Je.parseUnitlessLineHeight)(t[e.lineHeight]);return r===null||n===null||o===null?null:{weight:r,size:n,lineHeight:o}},Fa=e=>{const t=Cr(e,Pr);if(t===null)throw new Error("[react-renderer] Base typography leaf tokens failed to parse.");return t},$e=e=>e===void 0||e.includes("var(")?null:e.replace(/\s+/g," ").trim(),Na=e=>{y.IS_DEV&&console.warn(`[react-renderer] The leaf tokens composing "${e}" could not be resolved to a measurable font. Measurement falls back to the token's default; paint may disagree. Leaf overrides must be concrete values (px/em sizes, numeric weights, unitless line-heights).`)},Da={transparent:"transparent",white:"#FFFFFF",black:"#000000",grey100:"#000000",grey95:"#0D0D0D",grey90:"#1A1A1A",grey85:"#1F1F1F",grey80:"#2A2A2A",grey75:"#2e2e2e",grey70:"#353535",grey60:"#494949",grey50:"#6F6F6F",grey0:"#FFFFFF",red60:"#CB3333",red50:"#F93939",amber70:"#F48135",amber50:"#FEAE47",amber40:"#FFC849",amber30:"#ffd061",green60:"#0AC600",green50:"#42CD69",blue80:"#2E62FF",blue60:"#3D70FF",purple50:"#7B56EA",purple30:"#E093FE",greyGradient80:"linear-gradient(to top, #222429, #31353f)"},Ga={textPrimary:y.vars.grey0,textSecondary:O(y.vars.textPrimary,.8),textDisabled:O(y.vars.textPrimary,.5),iconPrimary:"currentColor",iconSecondary:O(y.vars.textPrimary,.6),iconStickerBackground:y.vars.grey70,border100:y.vars.grey0,border50:O(y.vars.grey0,.5),border10:O(y.vars.grey0,.1),brand:y.vars.purple50,success:y.vars.green50,warning:y.vars.amber50,alert:y.vars.red50,sunkenBackground:y.vars.grey100,defaultBackground:y.vars.grey90,raisedBackground:y.vars.grey80,overlayBackground:y.vars.grey90,overlayBorderGradient:y.vars.greyGradient80},Ha={graphBackground:y.vars.grey90,gridLineColor:y.vars.border10,axisTickColor:y.vars.border10,originLineColor:y.vars.grey0,legendBackground:y.vars.defaultBackground,legendBorderColor:y.vars.border10,legendFocusOutlineColor:y.vars.border50,legendTextColor:y.vars.textPrimary,dimmedSeriesLabelTextColor:y.vars.textDisabled,dimmedSeriesLabelLineColor:y.vars.grey60,trendNegativeColor:y.vars.red60,trendPositiveColor:y.vars.green60,trendNeutralColor:y.vars.textSecondary,toolbarBackgroundColor:y.vars.overlayBackground,toolbarButtonBackgroundColor:"transparent",toolbarButtonBackgroundColorHovered:y.vars.grey80,toolbarButtonBackgroundColorSelected:y.vars.grey60,toolbarSeparatorColor:y.vars.grey60,tooltipBackground:y.vars.grey70,tooltipBorderColor:y.vars.grey60,tooltipValueTextColor:y.vars.textPrimary,hoverGuideLineColor:O(y.vars.white,.2),hoverGuideFillColor:O(y.vars.white,.06),heatmapEmptyTileBackground:y.vars.grey80,annotationFrameBorderColor:y.vars.blue60,editMenuTriggerIconColor:y.vars.white},Wa={canvasDefault:"#FFFFFF",canvasBlue:"#60a5fa",canvasCyan:"#22d3ee",canvasGreen:"#34d399",canvasYellow:"#FFC800",canvasOrange:"#fb923c",canvasRed:"#f87171",canvasPink:"#F979D9",canvasPurple:"#a78bfa",canvasGray:"#a8a29e",canvasInverse:"#000000"},Va={...Da,...Ga,...br,...jr,...Sr,...wr,...Ha,...Wa,...Ar,...y.baseTypographyTokens,...y.semanticTypographyTokens,...y.elementTypographyTokens},Er=(e,t={})=>{const r={},n={};for(const[o,s]of Object.entries(t))if(s!=null)if(y.isMeasuredFontTokenKey(o)){const i=s;n[o]=i,r[o]=y.buildFontShorthand(o,i)}else r[o]=s;return{values:{...e==="dark"?Va:Pr,...r},fontOverrides:n}},kr=(e,t={})=>Er(e,t).values,Br=(e,t={})=>{const{values:r,fontOverrides:n}=Er(e,t),o=q(r.legendPillPaddingInline,8),s=q(r.legendPillPaddingBlock,2),i=q(r.legendPillBorderWidth,1);return{legendSwatchWidth:q(r.legendSwatchWidth,10),legendSwatchHeight:q(r.legendSwatchHeight,12),legendSwatchGap:q(r.legendSwatchGap,8),legendItemGap:q(r.legendItemGap,8),legendPillPaddingInline:o,legendPillPaddingBlock:s,legendPillBorderWidth:i,legendPillHorizontalChrome:2*(o+i),legendPillVerticalChrome:2*(s+i),headlineRowGap:q(r.headlineRowGap,2),headlineItemGap:q(r.headlineItemGap,24),fonts:La(r,n)}},Ua=Object.freeze(Br("light"));function q(e,t){const r=e.trim();if(!/^-?\d*\.?\d+(px)?$/.test(r))return t;const n=Number.parseFloat(r);return Number.isFinite(n)?n:t}var Ir=(0,g.createContext)(Ua),Ka=({metrics:e,children:t})=>(0,a.jsx)(Ir.Provider,{value:e,children:t}),oe=()=>(0,g.useContext)(Ir),I=()=>{const{colorScheme:e}=N(),t=P(r=>r.chrome);return(0,g.useMemo)(()=>(0,u.createStyleResolver)({colorScheme:e}).chromeReaders(t),[t,e])},Ya=e=>{const t=I(),r=P(n=>n.config.appearance.textScale);return(0,g.useMemo)(()=>(0,u.resolveRuleLabelStyle)(t,e,r),[t,e,r])},Qa=/\p{Emoji_Presentation}|\p{Emoji}\uFE0F/gu,Mr="😀",Tr=class Or{constructor(){this.emojiCorrections=new Map,this.currentFont="";const t=new OffscreenCanvas(1,1).getContext("2d");if(!t)throw new Error("Failed to create OffscreenCanvas 2D context");this.ctx=t}static async create(){return typeof document<"u"&&"fonts"in document&&await document.fonts.ready,new Or}measureText(t,r){const n=(0,u.buildFontString)(r);this.setFont(n);const{width:o,fontBoundingBoxAscent:s,fontBoundingBoxDescent:i}=this.ctx.measureText(t);let l=o;const c=za(t);if(c>0){const h=this.getEmojiCorrection(n);l-=h*c}return{width:l,height:s+i,ascent:s,descent:i}}setFont(t){this.currentFont!==t&&(this.ctx.font=t,this.currentFont=t)}getEmojiCorrection(t){const r=this.emojiCorrections.get(t);if(r!==void 0)return r;this.setFont(t);const n=this.ctx.measureText(Mr).width,o=qa(t);let s=0;if(o!==null){const i=n-o;s=i>.5?i:0}return this.emojiCorrections.set(t,s),s}},X=null,za=e=>{const t=e.match(Qa);return t?t.length:0},qa=e=>{const t=Xa();return t?(t.style.font=e,t.getBoundingClientRect().width):null},Xa=()=>typeof document>"u"?null:(X||(X=document.createElement("span"),X.style.position="absolute",X.style.visibility="hidden",X.style.whiteSpace="nowrap",X.style.left="-9999px",X.textContent=Mr,document.body.appendChild(X)),X),Lr=(0,g.createContext)(null),Fr=({children:e,measurer:t})=>{const[r,n]=(0,g.useState)(null);(0,g.useEffect)(()=>{if(t!==void 0)return;let s=!1;const i=()=>{s||n(Ja())};return(async()=>(typeof document<"u"&&"fonts"in document&&await document.fonts.ready,i()))(),typeof document<"u"&&"fonts"in document&&document.fonts.addEventListener("loadingdone",i),()=>{s=!0,typeof document<"u"&&"fonts"in document&&document.fonts.removeEventListener("loadingdone",i)}},[t]);const o=t??r;return o===null?null:(0,a.jsx)(Lr.Provider,{value:o,children:e})},te=()=>{const e=(0,g.useContext)(Lr);if(e===null)throw new Error("useTextMeasurer must be used inside a <TextMeasurerProvider>.");return e},Ja=()=>{try{return new u.CachedTextMeasurer(new Tr)}catch{return new u.CachedTextMeasurer(new u.HeuristicTextMeasurer)}},Nr=(0,g.createContext)(null),Za=Nr.Provider,_a=null,Z=()=>(0,g.useContext)(Nr)??(_a??=Xr()),$a="_16vokpr0",es=(e,t)=>e.mapping.y!==void 0!=(t.mainAxis==="y"),ts=(e,t)=>{const r=(0,u.toPercent)(e?1-t:t);return e?{x1:"0%",y1:r,x2:"100%",y2:r}:{x1:r,y1:"0%",x2:r,y2:"100%"}},rs=(e,t)=>{const r=(0,u.getRuleDashPattern)(e,t);return r.length===0?{}:{strokeDasharray:r.join(" "),strokeLinecap:"round",...e==="dashed"?{strokeMiterlimit:16}:{}}},ns=(e,t)=>Be(e)&&Be(t)?`${e}: ${t}`:Be(e)?e:Be(t)?t:null,Be=e=>e!=null&&e.trim()!=="",Dr=Object.freeze({}),mt=(0,g.createContext)(Dr),os=({slots:e,children:t})=>(0,a.jsx)(mt.Provider,{value:e??Dr,children:t});function Y(e,t){const r=(0,g.useContext)(mt)[e];return r===void 0?t:typeof r=="object"&&ss(r)?r.render:r}function as(){const e=(0,g.useContext)(mt);return{measureAxis:e.AxisTicks?.measure,measureAxisLabel:e.AxisLabel?.measure,measureLegend:e.Legend?.measure,measureHeadline:e.Headline?.measure.measureHeadline,measureHeadlineItemWidths:e.Headline?.measure.measureHeadlineItemWidths}}function ss(e){return"render"in e&&"measure"in e}var is="_2qyyu60",ls=2,cs=12,us=12,Ht=1,Wt=2,ds=4,je=e=>(0,a.jsx)(Y("Swatch",Gr),{...e}),Gr=({shape:e,color:t,lineType:r="solid",width:n=cs,height:o=us,strokeWidth:s=ls})=>(0,a.jsx)("svg",{className:is,width:n,height:o,viewBox:`0 0 ${n} ${o}`,"aria-hidden":!0,"data-testid":"chart-swatch","data-shape":e,children:hs({shape:e,color:t,lineType:r,width:n,height:o,strokeWidth:s})}),hs=({shape:e,color:t,lineType:r,width:n,height:o,strokeWidth:s})=>{const i=gs(r,n);switch(e){case"square":return(0,a.jsx)("rect",{x:1,y:1,width:n-2,height:o-2,rx:2,fill:t});case"line":return(0,a.jsx)("line",{x1:i.x1,y1:o/2,x2:i.x2,y2:o/2,stroke:t,strokeWidth:s,strokeLinecap:i.linecap,strokeDasharray:i.dashArray});case"circle":{const l=(Math.min(n,o)-2)/2;return(0,a.jsx)("circle",{cx:n/2,cy:o/2,r:l,fill:t})}case"area":{const l=o/2-1;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("rect",{x:1,y:l,width:n-2,height:o-l-1,fill:t,opacity:.45}),(0,a.jsx)("line",{x1:i.x1,y1:l,x2:i.x2,y2:l,stroke:t,strokeWidth:s,strokeLinecap:i.linecap,strokeDasharray:i.dashArray})]})}case"slice":return(0,a.jsx)("path",{d:`M 0 ${o} L ${n} ${o} A ${n} ${o} 0 0 0 0 0 Z`,fill:t})}},gs=(e,t)=>e==="solid"?{x1:0,x2:t,dashArray:void 0,linecap:"round"}:e==="dashed"?{x1:0,x2:t,dashArray:`${(t-Ht*(Wt-1))/Wt} ${Ht}`,linecap:"butt"}:{x1:0,x2:t,dashArray:`1 ${t/(ds-1)}`,linecap:"round"},$=e=>({fontFamily:e.fontFamily??y.CHART_FONT_FAMILY,fontSize:e.fontSize,fontWeight:e.fontWeight}),vs=11.7,Vt=21.6,fs="0 0 10 18",ps="M2.48935 16.9323L9.07098 9.82964C9.51595 9.34944 9.51504 8.60728 9.0689 8.12818L2.48866 1.06172C1.85811 0.384586 0.974477 0 0.049217 0H0V18H0.0443689C0.972463 18 1.85854 17.6131 2.48935 16.9323Z",ms=({labelPosition:e,linePosition:t,color:r,pillWidth:n,pillHeight:o,text:s,shouldAnimateTransitions:i})=>{const l=e==="start",c=l?-13:-(n-13),h=l?c+n-5:c+5-12,d=l?void 0:`rotate(180 ${h+12/2} ${o/2})`,f=l?"0%":"100%",p=(0,u.toPercent)(1-t),v=(0,a.jsxs)("g",{transform:`translate(0, ${-o/2})`,pointerEvents:"none",children:[(0,a.jsx)("rect",{x:c,y:0,width:n,height:o,rx:6,fill:r}),(0,a.jsx)("g",{transform:d,children:(0,a.jsx)("svg",{x:h,y:(o-Vt)/2,width:12,height:Vt,viewBox:fs,overflow:"visible",children:(0,a.jsx)("path",{d:ps,fill:r})})}),(0,a.jsx)("g",{transform:`translate(${c+5}, ${o/2})`,children:s})]});return i?(0,a.jsx)(S.motion.svg,{initial:!1,transition:z,x:f,animate:{y:p},overflow:"visible",children:v}):(0,a.jsx)("svg",{x:f,y:p,overflow:"visible",children:v})},xs=({labelPosition:e,linePosition:t,color:r,pillWidth:n,pillHeight:o,text:s,shouldAnimateTransitions:i})=>{const l=e==="start",c=l?-13:-(o-13),h=(0,u.toPercent)(t),d=l?"100%":"0%",f=(0,a.jsxs)("g",{transform:`translate(${-n/2}, 0)`,pointerEvents:"none",children:[(0,a.jsx)("rect",{x:0,y:c,width:n,height:o,rx:6,fill:r}),(0,a.jsx)("g",{transform:`translate(5, ${c+o/2})`,children:s})]});return i?(0,a.jsx)(S.motion.svg,{initial:!1,transition:z,y:d,animate:{x:h},overflow:"visible",children:f}):(0,a.jsx)("svg",{x:h,y:d,overflow:"visible",children:f})},ys=({label:e,textStyle:t,textWidth:r,labelPosition:n,isHorizontalLine:o,position:s,color:i,textColor:l,symbolShape:c,symbolColor:h,shouldAnimateTransitions:d})=>{const f=c===null?0:14,p=r+f+10,v=Math.max(vs,(0,u.computeLineBoxHeight)(t))+10,m=(0,a.jsxs)(a.Fragment,{children:[c!==null&&h!==null&&(0,a.jsx)("g",{transform:`translate(0, ${-10/2})`,children:(0,a.jsx)(je,{shape:c,color:h,surface:"rule-label",width:10,height:10})}),(0,a.jsx)("text",{x:f,textAnchor:"start",dominantBaseline:"central",fill:l,style:$(t),children:e})]});return o?(0,a.jsx)(ms,{labelPosition:n,linePosition:s,color:i,pillWidth:p,pillHeight:v,text:m,shouldAnimateTransitions:d}):(0,a.jsx)(xs,{labelPosition:n,linePosition:s,color:i,pillWidth:p,pillHeight:v,text:m,shouldAnimateTransitions:d})},As=({strokeWidth:e,lineType:t,isHorizontalLine:r,position:n,lineColor:o,shouldAnimateTransitions:s})=>{const i=ts(r,n),l=rs(t,e);return s?(0,a.jsx)(S.motion.line,{initial:!1,transition:z,animate:{x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2},...l,stroke:o,strokeWidth:e,vectorEffect:"non-scaling-stroke"}):(0,a.jsx)("line",{...i,...l,stroke:o,strokeWidth:e,vectorEffect:"non-scaling-stroke"})},bs=(0,g.memo)(function({layer:t,coordSystem:r,formattingLocale:n,shouldAnimateTransitions:o}){const s=te(),i=Z(),{guides:l,numberFormat:c,layers:h,colorScale:d}=P((0,G.useShallow)(B=>({guides:B.guides,numberFormat:B.config.numberFormat,layers:B.spec.layers,colorScale:B.scales.color}))),f=(0,g.useMemo)(()=>(0,u.buildAverageLineSymbols)(h,d).get(t.id)??null,[h,d,t.id]),p=f?i(f.geom,r.type)?.swatchShape??"square":null,v=(0,g.useMemo)(()=>ns(t.params.label,(0,u.formatRuleValue)({guides:l,numberFormat:c,layer:t,locale:n})),[l,c,n,t]),{fonts:m}=oe(),A=Ya(t.id),x=(0,g.useMemo)(()=>(0,u.toFontSpec)(A,m.familyDefault),[A,m.familyDefault]),b=(0,g.useMemo)(()=>v===null?0:s.measureText(v,x).width,[v,x,s]),j=k(t),w=t.data.getFirst();if(!w)return null;const C=j.get("color",w),M=(0,u.pickReadableTextColor)(C),R=es(t,r),E=R?(0,u.getY)(w):(0,u.getX)(w);return E===null?null:(0,a.jsxs)("g",{"data-geom":"rule",className:$a,children:[(0,a.jsx)(As,{strokeWidth:j.get("strokeWidth",w),lineType:j.get("lineType",w),isHorizontalLine:R,position:E,lineColor:C,shouldAnimateTransitions:o}),v!==null&&(0,a.jsx)(ys,{label:v,textStyle:A,textWidth:b,labelPosition:t.params.labelPosition,isHorizontalLine:R,position:E,color:C,textColor:M,symbolShape:p,symbolColor:f?.color??null,shouldAnimateTransitions:o})]})}),js={geom:"rule",coord:"cartesian",render:({layer:e,coordSystem:t,formattingLocale:r,shouldAnimateTransitions:n})=>(0,a.jsx)(bs,{layer:e,coordSystem:t,formattingLocale:r,shouldAnimateTransitions:n}),renderHover:()=>null,renderHoverCompanions:()=>null},ws=(0,g.memo)(function({layer:t,shouldAnimateTransitions:r,intro:n}){const o=n?.type==="fade"?n:null,s=k(t),i=(0,g.useMemo)(()=>{const l=(0,u.createStableCellKeyGenerator)(t.data,t.mapping,t.id),c=[];for(const h of t.data){const d=(0,u.getInsetTileRect)(h);d&&(0,u.getColor)(h)&&c.push({key:l(h),...d,fill:s.get("color",h),opacity:s.get("alpha",h)})}return c.map(({key:h,...d})=>(0,a.jsx)(Ss,{...d,isAnimated:r},h))},[t,s,r]);return o?(0,a.jsx)(S.motion.g,{initial:{opacity:0},animate:{opacity:1},transition:zo(o),children:i}):i}),Ss=({isAnimated:e,...t})=>e?(0,a.jsx)(S.motion.rect,{initial:!1,style:{transformBox:"view-box"},transition:z,fill:t.fill,opacity:t.opacity,rx:8,animate:{x:(0,u.toPercent)(t.x),y:(0,u.toPercent)(t.y),width:(0,u.toPercent)(t.width),height:(0,u.toPercent)(t.height)}}):(0,a.jsx)("rect",{style:{transformBox:"view-box"},x:(0,u.toPercent)(t.x),y:(0,u.toPercent)(t.y),width:(0,u.toPercent)(t.width),height:(0,u.toPercent)(t.height),fill:t.fill,opacity:t.opacity,rx:8}),xe=2,Ps=({layer:e,primary:t,panelRect:r})=>{const n=k(e),o=(0,u.getInsetTileRect)(t.observation);if(!o||!(0,u.getColor)(t.observation))return null;const s=n.get("color",t.observation),i=n.get("alpha",t.observation),l=n.get("borderColor",t.observation,"hovered")??u.DEFAULT_HOVER_AFFORDANCE_COLOR,c=o.x*r.width,h=o.y*r.height,d=o.width*r.width,f=o.height*r.height;return(0,a.jsxs)("g",{"data-testid":"hovered-tile",children:[(0,a.jsx)("rect",{x:c-xe,y:h-xe,width:d+xe*2,height:f+xe*2,rx:8+xe,fill:l,"data-testid":"hovered-tile-border"}),(0,a.jsx)("rect",{x:(0,u.toPercent)(o.x),y:(0,u.toPercent)(o.y),width:(0,u.toPercent)(o.width),height:(0,u.toPercent)(o.height),rx:8,fill:s,opacity:i,"data-testid":"hovered-tile-fill"})]})},Rs={geom:"tile",coord:"cartesian",swatchShape:"square",guideMode:null,render:({layer:e,shouldAnimateTransitions:t,intro:r})=>(0,a.jsx)(ws,{layer:e,shouldAnimateTransitions:t,intro:r}),renderHover:({layer:e,primary:t,panelRect:r})=>(0,a.jsx)(Ps,{layer:e,primary:t,panelRect:r}),renderHoverCompanions:()=>null},Ne=({primary:e,companions:t})=>{const r=(0,a.jsxs)(a.Fragment,{children:[t.map(n=>(0,a.jsx)(ee,{hit:n,project:Q},`companion-${n.layerId}-${n.pointIndex}`)),e?(0,a.jsx)(de,{hit:e,project:Q}):null]});return e?(0,a.jsx)("g",{"data-testid":"hovered-point",children:r}):r},it=e=>{const[t,...r]=e;if(!t)return"";const n=r.map(o=>`L ${o.x} ${o.y}`).join(" ");return`M ${t.x} ${t.y} ${n} Z`},Cs=(0,g.memo)(function({layer:t}){const r=k(t),n=(0,g.useMemo)(()=>{const o=(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id),s=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(i=>{const l=[...i],c=Hr(l);if(!c)return;const h=l[0];h&&s.push({key:o(h),fillPath:c.fillPath,outlinePath:c.outlinePath,color:r.get("color",h),fillOpacity:r.get("alpha",h),strokeOpacity:r.get("strokeAlpha",h),strokeWidth:r.get("strokeWidth",h)})}),s},[t.data,t.id,t.mapping,r]);return(0,a.jsx)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"area",className:U,children:n.map(o=>(0,a.jsxs)("g",{children:[(0,a.jsx)("path",{d:o.fillPath,fill:o.color,fillOpacity:o.fillOpacity,fillRule:"evenodd"}),(0,a.jsx)("path",{d:o.outlinePath,fill:"none",stroke:o.color,strokeWidth:o.strokeWidth,opacity:o.strokeOpacity,vectorEffect:"non-scaling-stroke"})]},o.key))})}),Hr=e=>{const t=[];for(const s of e){const i=(0,u.getX)(s),{innerRadius:l,outerRadius:c}=(0,u.getRadiusExtent)(s);i===null||l===null||c===null||t.push({angle:i,outer:V(i,c),inner:V(i,l)})}if(t.length===0)return null;t.sort((s,i)=>s.angle-i.angle);const r=t.map(s=>s.outer),n=t.map(s=>s.inner),o=it(r);return{fillPath:n.some(s=>s.x!==0||s.y!==0)?`${o} ${it([...n].reverse())}`:o,outlinePath:o}},Es=({layer:e,primary:t,companions:r})=>{const n=k(e),o=(0,u.getGroup)(t.observation),s=(0,g.useMemo)(()=>Hr([...e.data.filter(u.GROUP_VARIABLES.group,"eq",o)]),[e.data,o]);if(!s)return null;const i=n.get("color",t.observation),l=n.get("alpha",t.observation),c=n.get("strokeAlpha",t.observation),h=n.get("strokeWidth",t.observation);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"area","data-testid":"hovered-area",className:U,children:[(0,a.jsx)("path",{d:s.fillPath,fill:i,fillOpacity:l,fillRule:"evenodd","data-testid":"hovered-area-fill"}),(0,a.jsx)("path",{d:s.outlinePath,fill:"none",stroke:i,strokeWidth:h,opacity:c,vectorEffect:"non-scaling-stroke","data-testid":"hovered-area-edge"})]}),r.map(d=>(0,a.jsx)(ee,{hit:d,project:Q},`companion-${d.layerId}-${d.pointIndex}`)),(0,a.jsx)(de,{hit:t,project:Q,"data-testid":"hovered-area-point"})]})},ks={geom:"area",coord:"polar",swatchShape:"area",guideMode:"crosshair",render:({layer:e})=>(0,a.jsx)(Cs,{layer:e}),renderHover:({layer:e,primary:t,group:r,related:n})=>(0,a.jsx)(Es,{layer:e,primary:t,companions:[...r,...n]}),renderHoverCompanions:({related:e})=>(0,a.jsx)(Ne,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=(0,u.getX)(e),r=(0,u.getYMax)(e)??(0,u.getY)(e);if(t===null||r===null)return null;const{x:n,y:o}=Q(t,r);return{x:n,y:1-o}}},ye=(e,t)=>({stroke:e,strokeWidth:t,vectorEffect:"non-scaling-stroke"}),Bs=(0,g.memo)(function({layer:t,coordSystem:r,shouldAnimateTransitions:n,intro:o}){const s=(0,g.useId)(),i=We(o?.type==="grow"&&(o.growAxis==="angle"||o.growAxis==="radius")?o:null,n),l=r.bandAxis!=="x",c=k(t),h=(0,g.useMemo)(()=>{const d=(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id),f=new Map;for(const p of t.data){const v=d(p),{startAngle:m,endAngle:A}=(0,u.getAngleExtent)(p),{innerRadius:x,outerRadius:b}=(0,u.getRadiusExtent)(p);if(m===null||A===null||x===null||b===null)continue;const j={key:v,startAngle:m,endAngle:A,innerRadius:x,outerRadius:b,fill:c.get("color",p),opacity:c.get("alpha",p)},w=(0,u.buildSliceGroupKey)(r.bandAxis,j),C=f.get(w);C?C.items.push(j):f.set(w,{items:[j],style:he(c,p)})}return[...f.values()].map(({items:p,style:v},m)=>({key:p[0]?.key??String(m),items:p,union:(0,u.getUnionExtent)(p),style:v}))},[t.data,t.mapping,t.id,r.bandAxis,c]);return(0,a.jsx)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"bar",className:U,children:h.map((d,f)=>{const{borderColor:p,borderWidth:v,borderRadius:m,borderAlpha:A}=d.style,x=p!==void 0,b=(0,u.resolveBarBorderTreatment)(v),j=p===void 0?{}:ye(p,b.separatorWidth),w=p===void 0?void 0:ye(p,b.outlineWidth),C=d.items.map(B=>{const{key:T,...D}=B;return i.isAnimated?(0,a.jsx)(Is,{...D,animation:i,sweepsInOnLateMount:l,introKey:T,pathProps:{fill:D.fill,opacity:D.opacity,...j}},T):(0,a.jsx)("path",{d:(0,u.buildPolarBarArcPath)(D)??void 0,fill:D.fill,opacity:D.opacity,...j},T)}),M=(0,u.resolvePolarBarCornerRadiusUnit)(m,d.union.outerRadius-d.union.innerRadius);if(!x&&M<=0)return(0,a.jsx)(g.Fragment,{children:C},d.key);const R=`${s}${f}`;if(i.isAnimated)return(0,a.jsx)("g",{clipPath:`url(#${R})`,children:(0,a.jsx)(Ms,{...d.union,cornerRadius:M,animation:i,sweepsInOnLateMount:l,introKey:d.items[0]?.key,clipId:R,outlineProps:w,outlineOpacity:A,children:C})},d.key);const E=(0,u.buildPolarBarArcPath)({...d.union,cornerRadius:M});return(0,a.jsxs)("g",{clipPath:`url(#${R})`,children:[(0,a.jsx)("clipPath",{id:R,children:(0,a.jsx)("path",{d:E})}),C,w!==void 0&&(0,a.jsx)("path",{d:E,fill:"none",opacity:A,...w})]},d.key)})})}),Wr=({startAngle:e,endAngle:t,innerRadius:r,outerRadius:n,cornerRadius:o,animation:s,sweepsInOnLateMount:i,introKey:l})=>{const c=s.activeIntro?.growAxis==="angle"?s.activeIntro:null,h=s.activeIntro?.growAxis==="radius"?s.activeIntro:null,d=i&&!s.isLayerEntrance,f=c?.baseline??(d?u.TAU:e),p=c?.baseline??(d?u.TAU:t),v=h?h.baseline:r,m=h?h.baseline:n,A=(0,S.useMotionValue)(f),x=(0,S.useMotionValue)(p),b=(0,S.useMotionValue)(v),j=(0,S.useMotionValue)(m),w=(0,S.useMotionValue)((0,u.buildPolarBarArcPath)({startAngle:f,endAngle:p,innerRadius:v,outerRadius:m,cornerRadius:o})??""),C=st(s,l,c);(0,g.useEffect)(()=>{const R=C(),E=[(0,S.animate)(A,e,R),(0,S.animate)(x,t,R)];return()=>{for(const B of E)B.stop()}},[A,x,e,t,C]);const M=st(s,l,h);return(0,g.useEffect)(()=>{const R=M(),E=[(0,S.animate)(b,r,R),(0,S.animate)(j,n,R)];return()=>{for(const B of E)B.stop()}},[b,j,r,n,M]),(0,g.useEffect)(()=>{const R=()=>{w.set((0,u.buildPolarBarArcPath)({startAngle:A.get(),endAngle:x.get(),innerRadius:b.get(),outerRadius:j.get(),cornerRadius:o})??"")};R();const E=[A,x,b,j].map(B=>B.on("change",R));return()=>{for(const B of E)B()}},[A,x,b,j,o,w]),w},Is=({pathProps:e,...t})=>{const r=Wr(t);return(0,a.jsx)(S.motion.path,{d:r,transition:z,...e})},Ms=({clipId:e,outlineProps:t,outlineOpacity:r,children:n,...o})=>{const s=Wr(o);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("clipPath",{id:e,children:(0,a.jsx)(S.motion.path,{d:s})}),n,t!==void 0&&(0,a.jsx)(S.motion.path,{d:s,fill:"none",opacity:r,transition:z,...t})]})},Ts=(e,t)=>{const r=e==="solo"||e==="floor",n=e==="solo"||e==="ceiling";return t==="x"?{innerArc:r,outerArc:n,startSpoke:!0,endSpoke:!0}:{innerArc:!0,outerArc:!0,startSpoke:r,endSpoke:n}},Vr=(e,t,r)=>{const n=new Map;for(const s of e.data){const i=Yr(s);if(i===null)continue;const l=(0,u.buildSliceGroupKey)(t,i),c=n.get(l);c===void 0?n.set(l,{firstObservation:s,innerRadius:i.innerRadius,outerRadius:i.outerRadius}):(c.innerRadius=Math.min(c.innerRadius,i.innerRadius),c.outerRadius=Math.max(c.outerRadius,i.outerRadius))}const o=new Map;for(const[s,{firstObservation:i,innerRadius:l,outerRadius:c}]of n)o.set(s,{style:he(r,i),radialSpan:c-l});return o},Ur=(e,t,r,n)=>{const o=Yr(n),s=o===null?void 0:e.get((0,u.buildSliceGroupKey)(t,o));return s!==void 0?s:{style:he(r,n),radialSpan:o===null?0:o.outerRadius-o.innerRadius}},Kr=({observation:e,bandAxis:t,styleReaders:r,group:n})=>{const o=(0,g.useId)(),s=(0,g.useId)(),{startAngle:i,endAngle:l}=(0,u.getAngleExtent)(e),{innerRadius:c,outerRadius:h}=(0,u.getRadiusExtent)(e);if(i===null||l===null||c===null||h===null)return null;const d={startAngle:i,endAngle:l,innerRadius:c,outerRadius:h},f=(0,u.buildPolarBarArcPath)(d);if(f===void 0)return null;const p=r.get("color",e),v=r.get("alpha",e),{borderColor:m,borderWidth:A,borderRadius:x,borderAlpha:b}=n.style,j=(0,u.resolvePolarBarCornerRadiusUnit)(x,n.radialSpan),w=j>0;if(m===void 0&&!w)return(0,a.jsx)("path",{d:f,fill:p,opacity:v,"data-testid":"arc-segment"});const C=Ts((0,u.getStackRole)(e),t),M=w?(0,u.buildPolarBarArcPath)({...Ls(d,C,j),cornerRadius:j})??f:f,R=m===void 0?null:{color:m,...(0,u.resolveBarBorderTreatment)(A)},E=R===null?"":Yt(d,Fs(C));return(0,a.jsxs)("g",{clipPath:`url(#${o})`,"data-testid":"arc-segment",children:[(0,a.jsx)("clipPath",{id:o,children:(0,a.jsx)("path",{d:f})}),(0,a.jsx)("path",{d:M,fill:p,opacity:v}),R!==null&&E!==""&&(0,a.jsx)("path",{d:E,fill:"none",opacity:v,...ye(R.color,R.separatorWidth)}),R!==null&&(w?(0,a.jsxs)("g",{clipPath:`url(#${s})`,children:[(0,a.jsx)("clipPath",{id:s,children:(0,a.jsx)("path",{d:M})}),(0,a.jsx)("path",{d:M,fill:"none",opacity:b,...ye(R.color,R.outlineWidth)})]}):(0,a.jsx)("path",{d:Yt(d,C),fill:"none",opacity:b,...ye(R.color,R.outlineWidth)}))]})},Os=({layer:e,sourceLayer:t,coordSystem:r})=>{const n=k(t),o=(0,g.useMemo)(()=>Vr(t,r.bandAxis,n),[t,r.bandAxis,n]),s=(0,u.createStableKeyGenerator)(e.data,e.mapping,e.id),i=[];for(const l of e.data)i.push((0,a.jsx)(Kr,{observation:l,bandAxis:r.bandAxis,styleReaders:n,group:Ur(o,r.bandAxis,n,l)},s(l)));return(0,a.jsx)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"bar",className:U,children:i})},Ls=(e,t,r)=>{let{startAngle:n,endAngle:o,innerRadius:s,outerRadius:i}=e;t.innerArc||(s=Math.max(0,s-r)),t.outerArc||(i=i+r);const l=Math.max(s,r),c=l>0?r/l:0,h=Math.sign(o-n)||1;return t.startSpoke||(n-=c*h),t.endSpoke||(o+=c*h),{startAngle:n,endAngle:o,innerRadius:s,outerRadius:i}},Yr=e=>{const{startAngle:t,endAngle:r}=(0,u.getAngleExtent)(e),{innerRadius:n,outerRadius:o}=(0,u.getRadiusExtent)(e);return t===null||r===null||n===null||o===null?null:{startAngle:t,endAngle:r,innerRadius:n,outerRadius:o}},Ae=(e,t)=>{const r=V(t,e);return`${r.x},${r.y}`},Ut=(e,t,r)=>{if(e<=0)return"";const n=Ae(e,t);if((0,u.isFullTurnSweep)(t,r))return`M${n}A${e},${e} 0 1 1 ${Ae(e,t+Math.PI)}A${e},${e} 0 1 1 ${n}`;const o=r-t;return`M${n}A${e},${e} 0 ${Math.abs(o)>Math.PI?1:0} ${o>=0?1:0} ${Ae(e,r)}`},Kt=(e,t,r)=>`M${Ae(t,e)}L${Ae(r,e)}`,Yt=(e,t)=>{const{startAngle:r,endAngle:n,innerRadius:o,outerRadius:s}=e,i=(0,u.isFullTurnSweep)(r,n);return[t.innerArc?Ut(o,r,n):"",t.outerArc?Ut(s,r,n):"",t.startSpoke&&!i?Kt(r,o,s):"",t.endSpoke&&!i?Kt(n,o,s):""].filter(Boolean).join("")},Fs=e=>({innerArc:!e.innerArc,outerArc:!e.outerArc,startSpoke:!e.startSpoke,endSpoke:!e.endSpoke}),Ns=({layer:e,coordSystem:t,primary:r})=>{const n=k(e),o=Ur((0,g.useMemo)(()=>Vr(e,t.bandAxis,n),[e,t.bandAxis,n]),t.bandAxis,n,r.observation);return(0,a.jsx)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"arc","data-testid":"hovered-arc",className:U,children:(0,a.jsx)(Kr,{observation:r.observation,bandAxis:t.bandAxis,styleReaders:n,group:o})})},Ds={geom:"bar",coord:"polar",swatchShape:"slice",guideMode:"band",render:({layer:e,coordSystem:t,shouldAnimateTransitions:r,intro:n})=>(0,a.jsx)(Bs,{layer:e,coordSystem:t,shouldAnimateTransitions:r,intro:n}),renderHighlight:({layer:e,sourceLayer:t,coordSystem:r})=>(0,a.jsx)(Os,{layer:e,sourceLayer:t,coordSystem:r}),renderHover:({layer:e,coordSystem:t,primary:r})=>(0,a.jsx)(Ns,{layer:e,coordSystem:t,primary:r}),renderHoverCompanions:()=>null},Gs=(0,g.memo)(function({layer:t}){const r=k(t),n=(0,g.useMemo)(()=>{const o=(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id),s=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(i=>{const l=[...i],c=Qr(l);if(!c)return;const h=l[0];h&&s.push({key:o(h),pathData:c,color:r.get("color",h),opacity:r.get("alpha",h),strokeWidth:r.get("strokeWidth",h),strokeDasharray:(0,u.getDashArray)(r.get("lineType",h))})}),s},[t.data,t.id,t.mapping,r]);return(0,a.jsx)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"line",className:U,children:n.map(o=>(0,a.jsx)("path",{d:o.pathData,fill:"none",stroke:o.color,strokeWidth:o.strokeWidth,opacity:o.opacity,strokeDasharray:o.strokeDasharray,vectorEffect:"non-scaling-stroke"},o.key))})}),Qr=e=>{const t=[];for(const r of e){const n=(0,u.getX)(r),o=(0,u.getY)(r);n===null||o===null||t.push({angle:n,point:V(n,o)})}return t.length===0?null:(t.sort((r,n)=>r.angle-n.angle),it(t.map(r=>r.point)))},Hs=({layer:e,primary:t,companions:r})=>{const n=k(e),o=(0,u.getGroup)(t.observation),s=(0,g.useMemo)(()=>Qr([...e.data.filter(u.GROUP_VARIABLES.group,"eq",o)]),[e.data,o]);if(!s)return null;const i=n.get("color",t.observation),l=n.get("alpha",t.observation),c=n.get("strokeWidth",t.observation),h=(0,u.getDashArray)(n.get("lineType",t.observation));return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"line","data-testid":"hovered-line",className:U,children:(0,a.jsx)("path",{d:s,fill:"none",stroke:i,strokeWidth:c,opacity:l,strokeDasharray:h,vectorEffect:"non-scaling-stroke","data-testid":"hovered-line-path"})}),r.map(d=>(0,a.jsx)(ee,{hit:d,project:Q},`companion-${d.layerId}-${d.pointIndex}`)),(0,a.jsx)(de,{hit:t,project:Q,"data-testid":"hovered-line-point"})]})},Ws={geom:"line",coord:"polar",swatchShape:"line",guideMode:"crosshair",render:({layer:e})=>(0,a.jsx)(Gs,{layer:e}),renderHover:({layer:e,primary:t,group:r,related:n})=>(0,a.jsx)(Hs,{layer:e,primary:t,companions:[...r,...n]}),renderHoverCompanions:({related:e})=>(0,a.jsx)(Ne,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=(0,u.getX)(e),r=(0,u.getY)(e);if(t===null||r===null)return null;const{x:n,y:o}=Q(t,r);return{x:n,y:1-o}}},Vs=(0,g.memo)(function({layer:t,shouldAnimateTransitions:r,intro:n}){const o=k(t),s=We(n?.type==="grow"&&n.growAxis==="size"?n:null,r);return(0,g.useMemo)(()=>{const i=s.activeIntro?(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id):null,l=[];let c=0;for(const h of t.data)l.push((0,a.jsx)(mr,{observation:h,project:Q,styleReaders:o,animation:s,introKey:i?.(h)},String(c++)));return l},[t.data,t.mapping,t.id,o,s])}),Us={geom:"point",coord:"polar",swatchShape:"circle",render:({layer:e,shouldAnimateTransitions:t,intro:r})=>(0,a.jsx)(Vs,{layer:e,shouldAnimateTransitions:t,intro:r}),renderHover:({primary:e,group:t,related:r})=>(0,a.jsx)(Ne,{primary:e,companions:[...t,...r]}),renderHoverCompanions:({related:e})=>(0,a.jsx)(Ne,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=(0,u.getX)(e),r=(0,u.getY)(e);if(t===null||r===null)return null;const{x:n,y:o}=Q(t,r);return{x:n,y:1-o}}},zr={bar:{cartesian:pa,polar:Ds},line:{cartesian:ja,polar:Ws},area:{cartesian:sa,polar:ks},point:{cartesian:Sa,polar:Us},rule:{cartesian:js},tile:{cartesian:Rs}};function Ve(e){return typeof e=="function"?{overlay:!1,fn:e}:{overlay:!0,fn:e.fn}}function qr(e){return e?Ve(e.render).overlay:!1}function Ks(e,t){return typeof e=="string"?{...t,geom:e}:{...t,definition:e,geom:e.type}}function Xr(e=[]){const t={};for(const[r,n]of Object.entries(zr))t[r]={...n};for(const r of e)(t[r.geom]??={})[r.coord]=r;return(r,n)=>t[r]?.[n]??null}var De=e=>{const t=(0,g.useRef)(e);return t.current=e,t},Ys=()=>{const e=new Map;return(0,sr.createStore)(t=>({hover:u.RESTING_HOVER_STATE,tooltipAnchor:null,pointerRegions:[],isPointerSuspended:!1,setHoverState:r=>t(n=>n.hover===r?n:{hover:r}),setTooltipAnchor:r=>t(n=>Qs(n.tooltipAnchor,r)?n:{tooltipAnchor:r}),publishPointerRegions:(r,n)=>{n.length===0?e.delete(r):e.set(r,n);const o=(0,u.orderPointerRegions)(e);t(s=>(0,u.arePointerRegionListsEqual)(s.pointerRegions,o)?s:{pointerRegions:o})},setPointerSuspended:r=>t(n=>n.isPointerSuspended===r?n:{isPointerSuspended:r})}))},Qs=(e,t)=>e===t?!0:e===null||t===null?!1:e.x===t.x&&e.y===t.y&&e.placement===t.placement&&e.annotationId===t.annotationId,zs=(e,t)=>{const r=(0,g.useMemo)(()=>({layers:e,coordSystem:t}),[e,t]),n=(0,g.useRef)(null);n.current===null&&(n.current=new u.HoverEngine(r));const o=n.current,s=(0,g.useRef)(!1);return(0,g.useEffect)(()=>{if(!s.current){s.current=!0;return}o.update(r)},[o,r]),o},Jr=(0,g.createContext)(null),Zr=({children:e})=>{const{layers:t,coordSystem:r}=P((0,G.useShallow)(l=>({layers:l.layers,coordSystem:l.coordSystem}))),n=zs(t,r),[o]=(0,g.useState)(()=>Ys()),s=(0,g.useRef)(null),i=(0,g.useRef)(null);return i.current===null&&(i.current={engine:n,store:o,overlayRef:s}),(0,a.jsx)(Jr.Provider,{value:i.current,children:e})},re=()=>{const e=(0,g.useContext)(Jr);if(e===null)throw new Error("useHoverContext must be used inside a <HoverProvider>.");return e};function _r(e,t){const{engine:r}=re(),n=(0,g.useRef)(t);(0,g.useEffect)(()=>{n.current=t},[t]),(0,g.useEffect)(()=>(r.registerHitTester(e,o=>n.current(o)),()=>r.unregisterHitTester(e)),[r,e])}var qs=({hitTest:e,input:t})=>{const r=(0,g.useMemo)(()=>e(t),[e,t.layer.data]);return _r(t.layer.id,r),null},Xs="graphy_root",xt=()=>typeof document>"u"?null:document.getElementById(Xs)??document.body,Js="_10igzta0",$r=({rect:e,zIndex:t,container:r,boxRef:n,children:o,...s})=>r===null?null:(0,ir.createPortal)((0,a.jsx)("div",{...s,ref:n,className:Js,style:{transform:`translate(${e.left}px, ${e.top}px)`,width:e.width,height:e.height,zIndex:t},children:o}),r),Zs=({rect:e,children:t})=>{const[r]=(0,g.useState)(xt);return(0,a.jsx)($r,{rect:e,zIndex:ie.panelOverlay,container:r,children:t})},en=(e,t)=>{const r=De(e),n=De(t),o=(0,g.useRef)(null),s=(0,g.useRef)(null),i=(0,g.useMemo)(()=>{const l=()=>{s.current!==null&&(clearTimeout(s.current),s.current=null),o.current=null},c=()=>{s.current!==null&&(clearTimeout(s.current),s.current=null);const d=o.current;d!==null&&(o.current=null,r.current(...d))};return{run:(...d)=>{if(n.current<=0){r.current(...d);return}o.current=d,s.current!==null&&clearTimeout(s.current),s.current=setTimeout(c,n.current)},flush:c,cancel:l}},[r,n]);return(0,g.useEffect)(()=>()=>{s.current!==null&&clearTimeout(s.current)},[]),i},_s={width:0,height:0,isDefault:!0},tn=({debounce:e=0,onResize:t}={})=>{const[r,n]=(0,g.useState)(_s),o=(0,g.useRef)(null),s=en(h=>{const d=o.current;d&&d.width===h.width&&d.height===h.height||(o.current={width:h.width,height:h.height},t?.(h),n(h))},e),i=(0,g.useRef)(null),l=(0,g.useRef)(null),c=(0,g.useCallback)(h=>{i.current!==h&&(i.current&&l.current?.unobserve(i.current),i.current=h,h&&(l.current??=new ResizeObserver(([d])=>{if(!d)return;const f=Math.round(d.contentBoxSize[0]?.inlineSize??d.contentRect.width),p=Math.round(d.contentBoxSize[0]?.blockSize??d.contentRect.height);s.run({width:f,height:p,isDefault:!1})}),l.current.observe(h)))},[s]);return{...r,setElement:c}};function rn(){const[e,t]=(0,g.useState)(null),r=(0,g.useRef)(null),n=(0,g.useRef)(null),o=(0,g.useRef)(null),s=(0,g.useCallback)(()=>{o.current=null;const h=n.current;if(!h)return;const d=h.getBoundingClientRect();if(d.width===0||d.height===0){r.current!==null&&(r.current=null,t(null));return}const f={left:d.left,top:d.top,width:d.width,height:d.height},p=r.current;p&&p.left===f.left&&p.top===f.top&&p.width===f.width&&p.height===f.height||(r.current=f,t(f))},[]),i=(0,g.useCallback)(()=>{o.current===null&&(o.current=requestAnimationFrame(s))},[s]),{setElement:l}=tn({onResize:i}),c=(0,g.useCallback)(h=>{n.current=h,l(h),h&&s()},[l,s]);return(0,g.useEffect)(()=>(window.addEventListener("scroll",i,!0),window.addEventListener("resize",i),()=>{window.removeEventListener("scroll",i,!0),window.removeEventListener("resize",i),o.current!==null&&cancelAnimationFrame(o.current)}),[i]),{measureRef:c,screenRect:e}}function nn(e){const{engine:t,store:r}=re();return(0,g.useCallback)((n,o)=>{const{hover:s,setHoverState:i,setTooltipAnchor:l}=r.getState(),c=n===null?u.RESTING_HOVER_STATE:t.resolveHoverByKey(e,n);if(c.primary===null){s.primary?.layerId===e&&(i(u.RESTING_HOVER_STATE),l(null));return}i(c),l(o?{x:o.clientX,y:o.clientY,placement:"top"}:null)},[t,r,e])}var $s=({render:e,input:t})=>{const r=nn(t.layer.id),{measureRef:n,screenRect:o}=rn();return(0,g.useEffect)(()=>()=>r(null),[r]),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("rect",{ref:n,x:0,y:0,width:"100%",height:"100%",fill:"none",pointerEvents:"none"}),o&&(0,a.jsx)(Zs,{rect:o,children:(0,a.jsx)(ei,{render:e,input:t,pushHover:r,panelRect:o})})]})},ei=({render:e,input:t,pushHover:r,panelRect:n})=>e({...t,overlay:{pushHover:r,panelRect:n}}),Ge={enabled:!0,durationScale:1,stagger:!0,staggerOrder:"main-axis",maxAnimatedGeoms:1500},ti=(e,t)=>t?{intro:{...Ge,enabled:!1},transitions:!1}:typeof e=="boolean"?{intro:{...Ge,enabled:e},transitions:e}:{intro:ri(e?.intro),transitions:e?.transitions??!0},ri=e=>typeof e=="boolean"?{...Ge,enabled:e}:(0,ot.default)({},Ge,e),ni={loading:"جاري التحميل",error:"حدث خطأ ما",axisLabels:{placeholder:"إضافة تسمية"},defaultPropertyLabels:{date:"التاريخ",year:"السنة",quarter:"الربع",month:"الشهر",week:"الأسبوع",series:"السلسلة",category:"الفئة",columnNumber:({number:e})=>`العمود ${e}`,rowNumber:({number:e})=>`الصف ${e}`,seriesNumber:({number:e})=>`السلسلة ${e}`},trendComparison:{fromPrevious:{long:({value:e})=>`${e} مقابل السابق`,short:({value:e})=>`${e} مقابل السابق`},fromPreviousYear:{long:({value:e})=>`${e} مقابل السنة السابقة`,short:({value:e})=>`${e} مقابل السنة السابقة`},fromPreviousMonth:{long:({value:e})=>`${e} مقابل الشهر السابق`,short:({value:e})=>`${e} مقابل الشهر السابق`},fromPreviousWeek:{long:({value:e})=>`${e} مقابل الأسبوع السابق`,short:({value:e})=>`${e} مقابل الأسبوع السابق`},fromPreviousDay:{long:({value:e})=>`${e} مقابل اليوم السابق`,short:({value:e})=>`${e} مقابل اليوم السابق`},fromPreviousHour:{long:({value:e})=>`${e} مقابل الساعة السابقة`,short:({value:e})=>`${e} مقابل الساعة السابقة`}},headlineMetrics:{averageLong:({value:e})=>`المتوسط ${e}`,averageShort:({value:e})=>`المتوسط ${e}`,total:({value:e})=>`المجموع ${e}`,totalConversionRate:({value:e})=>`معدل التحويل الإجمالي ${e}`,current:({value:e})=>e,comparisonReference:({value:e})=>`من ${e}`},legend:{hiddenItems:"عناصر وسيلة الإيضاح المخفية"}},oi={graph:ni,dir:"rtl"},ai={loading:"Loading",error:"Something went wrong",axisLabels:{placeholder:"Add label"},defaultPropertyLabels:{date:"Date",year:"Year",quarter:"Quarter",month:"Month",week:"Week",series:"Series",category:"Category",columnNumber:({number:e})=>`Column ${e}`,rowNumber:({number:e})=>`Row ${e}`,seriesNumber:({number:e})=>`Series ${e}`},trendComparison:{fromPrevious:{long:({value:e})=>`${e} vs previous`,short:({value:e})=>`${e} vs prev`},fromPreviousYear:{long:({value:e})=>`${e} vs previous year`,short:({value:e})=>`${e} vs prev year`},fromPreviousMonth:{long:({value:e})=>`${e} vs previous month`,short:({value:e})=>`${e} vs prev month`},fromPreviousWeek:{long:({value:e})=>`${e} vs previous week`,short:({value:e})=>`${e} vs prev week`},fromPreviousDay:{long:({value:e})=>`${e} vs previous day`,short:({value:e})=>`${e} vs prev day`},fromPreviousHour:{long:({value:e})=>`${e} vs previous hour`,short:({value:e})=>`${e} vs prev hour`}},headlineMetrics:{averageLong:({value:e})=>`Average ${e}`,averageShort:({value:e})=>`Avg. ${e}`,total:({value:e})=>`Total ${e}`,totalConversionRate:({value:e})=>`Total conversion rate ${e}`,current:({value:e})=>e,comparisonReference:({value:e})=>`from ${e}`},legend:{hiddenItems:"Hidden legend items"}},si={graph:ai,dir:"ltr"},ii={},li={loading:"A carregar",error:"Algo correu mal",axisLabels:{placeholder:"Adicionar etiqueta"},defaultPropertyLabels:{date:"Data",year:"Ano",quarter:"Trimestre",month:"Mês",week:"Semana",series:"Série",category:"Categoria",columnNumber:({number:e})=>`Coluna ${e}`,rowNumber:({number:e})=>`Linha ${e}`,seriesNumber:({number:e})=>`Série ${e}`},trendComparison:{fromPrevious:{long:({value:e})=>`${e} vs anterior`,short:({value:e})=>`${e} vs ant`},fromPreviousYear:{long:({value:e})=>`${e} vs ano anterior`,short:({value:e})=>`${e} vs ano ant`},fromPreviousMonth:{long:({value:e})=>`${e} vs mês anterior`,short:({value:e})=>`${e} vs mês ant`},fromPreviousWeek:{long:({value:e})=>`${e} vs semana anterior`,short:({value:e})=>`${e} vs sem ant`},fromPreviousDay:{long:({value:e})=>`${e} vs dia anterior`,short:({value:e})=>`${e} vs dia ant`},fromPreviousHour:{long:({value:e})=>`${e} vs hora anterior`,short:({value:e})=>`${e} vs hora ant`}},headlineMetrics:{averageLong:({value:e})=>`Média ${e}`,averageShort:({value:e})=>`Méd. ${e}`,total:({value:e})=>`Total ${e}`,totalConversionRate:({value:e})=>`Taxa de conversão total ${e}`,current:({value:e})=>e,comparisonReference:({value:e})=>`de ${e}`},legend:{hiddenItems:"Itens de legenda ocultos"}},ci={graph:li,dir:"ltr"},Ue={"en-GB":si,"en-US":ii,ar:oi,"pt-PT":ci},ui=({locale:e,overrides:t,fallbackLocale:r="en-GB",dictionaries:n})=>{const o=t??{},s=e??r,i=[...n.map(c=>c[s]),...n.map(c=>c[r])];return(c,h)=>{const d=h??{},f=c.split("."),p=o[c];if(p)return typeof p=="function"?p(d):p;for(const v of i){if(v===void 0)continue;const m=hi(v,f);if(m)return typeof m=="function"?m(d):m}return c}},di=({locale:e,overrides:t})=>t?.dir??Ue[e].dir??"ltr",hi=(e,t)=>{let r=e;for(const n of t){if(typeof r!="object"||r===null)return;r=r[n]}if(typeof r=="string"||typeof r=="function")return r},gi=e=>{const t="en-GB";if(!e)return t;const r=e.trim().replace("_","-").toLowerCase();return Object.keys(Ue).find(n=>n.toLowerCase()===r)??t},on=(0,g.createContext)(null),vi=[Ue],yt=()=>fi().translator,an=({locale:e,children:t,i18nOverrides:r,dictionaries:n=vi})=>{const o=gi(e),s=(0,g.useMemo)(()=>({translator:ui({locale:o,overrides:r,fallbackLocale:"en-GB",dictionaries:n}),dir:di({locale:o,overrides:r})}),[r,o,n]);return(0,a.jsx)(Do.IntlProvider,{locale:o,timeZone:"UTC",children:(0,a.jsx)(on.Provider,{value:s,children:t})})},fi=()=>{const e=(0,g.useContext)(on);if(!e)throw new Error("useI18n must be used within IntlProvider");return e},sn=e=>e==="none"?"none":`${e.offsetX}px ${e.offsetY}px ${e.blur}px ${e.color}`,pi=e=>{if(e!=="none")return`drop-shadow(${e.offsetX}px ${e.offsetY}px ${e.blur}px ${e.color})`},mi=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>(0,u.resolveTooltipStyle)(e,t),[e,t])},xi="bow4tg0",yi="bow4tg1",Ai="bow4tg2",bi="bow4tg3",ji="bow4tg4",At="_1ii3bsb0",ln="_1ii3bsb1",cn=(0,g.createContext)({colorScheme:"light",themeClass:At,inlineVarsStyle:{},themeValues:kr("light",{})}),Ke=()=>(0,g.useContext)(cn),un=({colorScheme:e,themeOverrides:t={},textScale:r=1,graphBackground:n,children:o})=>{const s=(0,g.useMemo)(()=>kr(e,t),[e,t]),i=(0,g.useMemo)(()=>{const c={[y.vars.textScale]:String(r)};for(const h of Object.keys(t)){const d=h;c[y.vars[d]]=s[d]}return n!==void 0&&(c[y.vars.graphBackground]=n),(0,lr.assignInlineVars)(c)},[r,n,s,t]),l=(0,g.useMemo)(()=>({colorScheme:e,themeClass:e==="dark"?ln:At,inlineVarsStyle:i,themeValues:s}),[e,i,s]);return(0,a.jsx)(cn.Provider,{value:l,children:o})},dn=({children:e,className:t,style:r})=>{const{themeClass:n,inlineVarsStyle:o}=Ke();return(0,a.jsx)("div",{className:(0,F.default)(n,yi,t),style:{...o,...r},children:e})},hn={modern:"'Inter', -apple-system, BlinkMacSystemFont, 'Open Sans', 'Segoe UI', 'Roboto', 'Oxygen-Sans', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif",timeless:"'Noto Serif', Georgia, 'Times New Roman', serif",fresh:"'Aeonik', 'Aeonik Fallback', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif",technical:"'PT Mono', 'Courier New', monospace",handwritten:"'Permanent Marker', cursive",fineliner:"'Intruding Cat', cursive"},gn=e=>{const t=e!==null&&typeof e=="object"?e.fontFamily:e;return typeof t=="string"&&t.length>0?t:void 0},lt=e=>{const t=gn(e);if(t!==void 0)return hn[t]??t},wi="_1cocly40",ue=({content:e})=>(0,a.jsx)(a.Fragment,{children:vn(e.content??[e])}),vn=e=>e.map((t,r)=>Si(t,r)),Si=(e,t)=>{if(e.type==="text")return Pi(e,t);if(e.type==="hardBreak"||e.type==="hard_break")return(0,a.jsx)("br",{},t);const r=e.content?vn(e.content):null;switch(e.type){case"doc":return(0,a.jsx)(g.Fragment,{children:r},t);case"heading":{const n=ki(e.attrs?.level);return Bi(n,t,r,Qt(e.attrs))}case"paragraph":return(0,a.jsx)("p",{"data-variant":Ye(e.attrs?.variant)??void 0,style:fn(Qt(e.attrs)),children:r},t);case"blockquote":return(0,a.jsx)("blockquote",{children:r},t);case"bulletList":case"bullet_list":return(0,a.jsx)("ul",{children:r},t);case"orderedList":case"ordered_list":return(0,a.jsx)("ol",{children:r},t);case"listItem":case"list_item":return(0,a.jsx)("li",{children:r},t);default:return(0,a.jsx)("span",{children:r},t)}},Pi=(e,t)=>{const r=e.text??"";return!e.marks||e.marks.length===0?(0,a.jsx)("span",{children:r},t):e.marks.reduceRight((n,o,s)=>Ri(o,n,`${t}-${s}`),r)},Ri=(e,t,r)=>{switch(e.type){case"bold":case"strong":return(0,a.jsx)("strong",{children:t},r);case"italic":case"em":return(0,a.jsx)("em",{children:t},r);case"underline":return(0,a.jsx)("u",{children:t},r);case"strike":case"strikethrough":case"s":return(0,a.jsx)("s",{children:t},r);case"code":return(0,a.jsx)("code",{children:t},r);case"link":{const n=Ye(e.attrs?.href);return(0,u.isSafeUrl)(n)?(0,a.jsx)("a",{className:wi,href:n,rel:"noopener noreferrer",target:"_blank",children:t},r):(0,a.jsx)("span",{children:t},r)}case"textStyle":{const n=Ci(e.attrs);return n?(0,a.jsx)("span",{style:n,children:t},r):(0,a.jsx)("span",{children:t},r)}default:return(0,a.jsx)("span",{children:t},r)}},Ci=e=>{if(!e)return null;const t={},r=Ye(e.color);r&&(t.color=r);const n=lt(e.font)??lt(e.fontFamily);n&&(t.fontFamily=n);const o=Ei(e.fontSize);return o&&(t.fontSize=o),Object.keys(t).length>0?t:null},Ei=e=>typeof e=="number"&&Number.isFinite(e)?`${e/10}em`:Ye(e),Ye=e=>typeof e=="string"&&e.length>0?e:void 0,ki=e=>typeof e!="number"?3:e<1?1:e>3?3:Math.round(e),Bi=(e,t,r,n)=>{const o=fn(n);switch(e){case 1:return(0,a.jsx)("h1",{style:o,children:r},t);case 2:return(0,a.jsx)("h2",{style:o,children:r},t);case 3:return(0,a.jsx)("h3",{style:o,children:r},t)}},Qt=e=>{const t=e?.textAlign;if(t==="left"||t==="right"||t==="center"||t==="justify")return t},fn=e=>e?{textAlign:e}:void 0;function le(e){const{store:t}=re();return(0,be.useStore)(t,e)}var Ii="_19519k80";var Mi="_19519k82",Ti="_19519k83",Oi="_19519k85",Li="_19519k86",Fi="_19519k87",Ni="_19519k88",Di=e=>{const{overlayRef:t}=re(),r=(0,g.useRef)(null),[n,o]=(0,g.useState)(!1),s=De(e);return(0,g.useEffect)(()=>{const i=t.current;if(!i)return;const l=h=>{r.current={clientX:h.clientX,clientY:h.clientY},o(!0),s.current?.()},c=()=>{r.current=null,o(!1)};return i.addEventListener("pointermove",l),i.addEventListener("pointerleave",c),()=>{i.removeEventListener("pointermove",l),i.removeEventListener("pointerleave",c)}},[t,s]),{cursorRef:r,isInside:n}},Gi=24,Hi=8,Wi={x:0,y:0,top:0,left:0,right:0,bottom:0,width:0,height:0,toJSON:()=>({})},Ie={boundary:[],padding:Hi},Vi=()=>{const e=P((0,G.useShallow)(j=>({layers:j.layers,coordSystem:j.coordSystem,scales:j.scales,guides:j.guides,numberFormat:j.config.numberFormat,parsingLocale:j.config.parsingLocale,comments:j.annotations.comments}))),{formattingLocale:t,colorScheme:r}=N(),n=le(j=>j.hover),o=le(j=>j.tooltipAnchor),s=le(j=>j.isPointerSuspended),i=Y("Tooltip",pn),l=(0,g.useRef)(()=>{}),{cursorRef:c,isInside:h}=Di(()=>l.current()),d=(0,g.useMemo)(()=>(0,u.buildTooltipContent)({...e,hover:n,colorScheme:r,formattingLocale:t,activeCalloutId:o?.annotationId??null}),[e,n,r,t,o]),f=!s&&d!==null&&(h||o!==null),p=(0,g.useMemo)(()=>({getBoundingClientRect:()=>{if(o!==null)return Yi(o);const j=c.current;return j===null?Wi:Ki(j)}}),[c,o]),{refs:v,floatingStyles:m,update:A}=(0,W.useFloating)(Qi({isOpen:f,tooltipAnchor:o,virtualReference:p}));if(l.current=A,!f)return null;const x=(0,a.jsx)("div",{ref:v.setFloating,role:"tooltip",className:Ni,style:m,"data-testid":"chart-tooltip",children:(0,a.jsx)(i,{content:d})}),b=xt();return b?(0,ir.createPortal)((0,a.jsx)(dn,{children:x}),b):x},pn=({content:e})=>{const t=Z(),r=P(c=>c.coordSystem),n=mi(),o=et(n.heading),s=et(n.label),i=et(n.value),l={paddingInline:n.box.paddingInline};return(0,a.jsxs)("div",{className:Ii,style:Ui(n.box),"data-testid":"chart-tooltip-body",children:[e.comment!==null&&(0,a.jsx)("div",{style:{...s,color:n.value.textColor,...l},"data-testid":"chart-tooltip-comment",children:(0,a.jsx)(ue,{content:e.comment})}),e.header!==null&&(0,a.jsx)("div",{className:"_19519k81",style:{...o,...l},"data-testid":"chart-tooltip-header",children:e.header}),(0,a.jsx)("div",{className:Mi,children:e.rows.map(c=>{const h=t(c.geom,r.type);return(0,a.jsx)(zi,{row:c,swatchShape:h?.swatchShape??"square",shouldHighlight:c.isPrimary&&e.rows.length>1,labelStyle:s,valueStyle:i,paddingInline:n.box.paddingInline,highlightBackground:n.primaryRow.background},c.key)})})]})},et=e=>({...$(e),color:e.textColor,lineHeight:e.lineHeight}),Ui=e=>({background:e.background,borderRadius:e.borderRadius,paddingBlock:e.paddingBlock,boxShadow:sn(e.shadow),...e.borderWidth>0?{border:`${e.borderWidth}px solid ${e.borderColor}`}:{}}),Ki=e=>({x:e.clientX,y:e.clientY,top:e.clientY,left:e.clientX,right:e.clientX,bottom:e.clientY,width:0,height:0,toJSON:()=>({})}),Yi=e=>({x:e.x,y:e.y,top:e.y,left:e.x,right:e.x,bottom:e.y,width:0,height:0,toJSON:()=>({})}),Qi=({isOpen:e,tooltipAnchor:t,virtualReference:r})=>({open:e,placement:t!==null?t.placement:"right",middleware:t!==null?[(0,W.offset)(u.ANNOTATION_TOOLTIP_MARKER_GAP),(0,W.shift)(Ie),(0,W.flip)(Ie)]:[(0,W.offset)(Gi),(0,W.flip)(Ie),(0,W.shift)(Ie)],elements:{reference:r}}),zi=({row:e,swatchShape:t,shouldHighlight:r,labelStyle:n,valueStyle:o,paddingInline:s,highlightBackground:i})=>(0,a.jsxs)("div",{className:Ti,style:{paddingInline:s,...r?{backgroundColor:i}:{}},"data-testid":"chart-tooltip-row",children:[e.swatchColor===null?(0,a.jsx)("span",{className:Oi,"aria-hidden":!0}):(0,a.jsx)(je,{shape:t,color:e.swatchColor,surface:"tooltip",label:e.label,lineType:e.swatchLineType}),(0,a.jsx)("span",{className:Li,style:n,"data-testid":"chart-tooltip-label",children:e.label}),(0,a.jsx)("span",{className:Fi,style:o,"data-testid":"chart-tooltip-value",children:e.value})]}),Te={plansByLayerId:null,coordKey:null,introEndsAtMs:0},bt=(0,g.createContext)(Te),qi=({intro:e,children:t})=>{const{layers:r,coordSystem:n,scales:o}=P((0,G.useShallow)(i=>({layers:i.layers,coordSystem:i.coordSystem,scales:i.scales}))),[s]=(0,g.useState)(()=>Zi({layers:r,coordSystem:n,scales:o,intro:e}));return(0,a.jsx)(bt.Provider,{value:s,children:t})},Xi=()=>{const{introEndsAtMs:e}=(0,g.useContext)(bt),[t]=(0,g.useState)(()=>_i(e)/1e3);return t},Ji=e=>{const{plansByLayerId:t,coordKey:r}=(0,g.useContext)(bt),n=P(o=>mn(o.coordSystem));return t===null||r!==n?null:t.get(e)??null},Zi=({layers:e,coordSystem:t,scales:r,intro:n})=>{if(!n.enabled||e.reduce((l,c)=>l+(0,u.countLayerGeoms)(c),0)>n.maxAnimatedGeoms)return Te;const o={durationScale:n.durationScale,stagger:n.stagger,staggerOrder:n.staggerOrder},s=new Map;for(const l of e){const c=(0,u.buildLayerIntroPlan)({layer:l,coordSystem:t,scales:r,options:o});c!==null&&s.set(l.id,c)}if(s.size===0)return Te;const i=[...s.values()].reduce((l,c)=>Math.max(l,qo(c)),0);return{plansByLayerId:s,coordKey:mn(t),introEndsAtMs:performance.now()+i*1e3}},_i=e=>Math.max(0,e-performance.now()),mn=e=>e.type==="cartesian"?`cartesian-${e.mainAxis}`:e.type,xn=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>{const r={};for(const n of u.AXIS_KEYS)r[n]=(0,u.resolveAxisLabelStyle)(e,n,t);return r},[e,t])},Qe=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>{const r={};for(const n of u.DATA_LABEL_ROLES){const o={};for(const s of u.DATA_LABEL_POSITIONS)o[s]=(0,u.resolveDataLabelStyle)(e,n,s,t);r[n]=o}return r},[e,t])},jt=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>r=>(0,u.resolveDifferenceArrowAnnotationStyle)(e,r,t),[e,t])},wt=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>(0,u.resolveLegendItemStyle)(e,t),[e,t])},St=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>{const r={};for(const n of u.AXIS_KEYS)r[n]=(0,u.resolveTickLabelStyle)(e,n,t);return r},[e,t])},yn=()=>{const e=I();return(0,g.useMemo)(()=>{const t={};for(const r of u.AXIS_KEYS)t[r]=(0,u.resolveTickLineStyle)(e,r);return t},[e])},$i=({textMeasurer:e,tickLabelStyles:t,tickLineStyles:r,familyDefault:n})=>o=>{const s=o.position==="top"||o.position==="bottom",i=(0,u.getAestheticFromScaleAestheticKey)(o.scaleAestheticKey),{offset:l,...c}=t[i],h=o.ticksVisible?Math.max(l,r[i].length):l,d=(0,u.toFontSpec)(c,n),f=o.ticks.map(v=>e.measureText(v.formattedLabel,d)),p=o.labelMaxWidthPx??Number.POSITIVE_INFINITY;if(s){if(o.labelRotation!==0){const v=f.map(m=>m.width);return zt(v,p)+2*h}return Math.max(...f.map(v=>v.height))+h}return zt(f.map(v=>v.width),p)+h},zt=(e,t)=>Math.min(Math.max(...e),t),el=({axisLabelStyles:e})=>t=>(0,u.computeLineBoxHeight)(e[(0,u.getAestheticFromScaleAestheticKey)(t.scaleAestheticKey)]),An=({textMeasurer:e,dataLabelStyles:t,familyDefault:r})=>(n,o,s)=>{const i=t[n][o],l=e.measureText(s,(0,u.toFontSpec)(i,r));return{...l,width:l.width+i.paddingInline*2,height:l.height+i.paddingBlock*2}},tl=({textMeasurer:e,familyDefault:t})=>(r,n)=>e.measureText(r,(0,u.toFontSpec)(n,t)),rl=({textMeasurer:e,textScale:t,metrics:r})=>(n,o)=>{const s=bn(n,o,e,t,r);return{width:jn(s.map(i=>i.width))+Math.max(0,s.length-1)*r.headlineItemGap,height:Math.max(0,...s.map(i=>i.height))}},nl=({textMeasurer:e,textScale:t,metrics:r})=>(n,o)=>bn(n,o,e,t,r).map(s=>s.width),ol=({textMeasurer:e,textScale:t,metrics:r})=>(n,o)=>{const s=ct("value",o,t,r.fonts.familyDefault);return{width:e.measureText(n,s).width,height:s.size*xr}},al=({textMeasurer:e,textScale:t,metrics:r})=>{const n=rl({textMeasurer:e,textScale:t,metrics:r}),o=ol({textMeasurer:e,textScale:t,metrics:r});return(s,i)=>s.kind==="perGroup"?n(s,i):o(s.value,i)},bn=(e,t,r,n,o)=>{const s={value:ct("value",t,n,o.fonts.familyDefault),label:ct("label",t,n,o.fonts.familyDefault)},i=l=>sl(l,s,r);return e.items.map(l=>{const c=(0,u.createHeadlineItemRows)(l).map(i),h=Math.max(0,c.length-1)*o.headlineRowGap;return{width:Math.max(0,...c.map(d=>d.width)),height:jn(c.map(d=>d.height))+h}})},sl=(e,t,r)=>{let n=0,o=0;for(const s of e.segments)if(s.kind==="text"){const i=t[s.fontRole];n+=r.measureText(s.text,i).width,o=Math.max(o,i.size*xr)}else n+=s.size,o=Math.max(o,s.size);return{width:n+Math.max(0,e.segments.length-1)*e.gap,height:o}},ct=(e,t,r,n)=>({family:n,size:pt(e==="value"?Pa[t]:Ra[t],r)}),jn=e=>e.reduce((t,r)=>t+r,0),wn=(e,t)=>Rr(e,t).size*e.lineHeight,il=(e,t)=>e?t:0,He=(e,t,r)=>{if(r){const n=Number(e.size);return Number.isFinite(n)&&n>0?n:0}return il(e.color,t)},ll=({textMeasurer:e,familyDefault:t,legendItemStyle:r,legendSwatchGap:n})=>o=>{const{item:s,swatch:i}=r,l=(0,u.computeLineBoxHeight)(s),c=(0,u.toFontSpec)(s,t),h=2*(s.paddingBlock+s.borderWidth),d=2*(s.paddingInline+s.borderWidth),f=o.position==="top"||o.position==="bottom",p=o.aesthetics.includes("size");if(f){const m=p?Math.max(0,...o.items.map(A=>He(A.visual,i.size,!0))):i.size;return Math.max(l,m)+h}const v=o.items.map(m=>{const A=e.measureText(m.formattedLabel,c).width,x=He(m.visual,i.size,p);return x+(x>0?n:0)+A});return Math.max(...v)+d},cl=({textMeasurer:e,tickLabelStyles:t,familyDefault:r})=>(n,o)=>e.measureText(n,(0,u.toFontSpec)(t[o],r)),ul=Object.freeze({}),dl=({textMeasurer:e,textScale:t,metrics:r,overrides:n=ul})=>{const o=xn(),s=Qe(),i=wt(),l=St(),c=yn(),h=(0,g.useRef)(n);return h.current=n,(0,g.useMemo)(()=>{if(!e)return null;const d=r.fonts.familyDefault,f=$i({textMeasurer:e,tickLabelStyles:l,tickLineStyles:c,familyDefault:d}),p=el({axisLabelStyles:o}),v=ll({textMeasurer:e,familyDefault:d,legendItemStyle:i,legendSwatchGap:r.legendSwatchGap}),m=al({textMeasurer:e,textScale:t,metrics:r}),A=nl({textMeasurer:e,textScale:t,metrics:r}),x={measureText:(b,j)=>e.measureText(b,j),textScale:t};return{measureAxis:b=>{if(gl(b))return 0;const j=h.current.measureAxis;return j?j(b,x):f(b)},measureAxisLabel:b=>{const j=h.current.measureAxisLabel;return j?j(b,x):p(b)},measureLegend:b=>{if(vl(b))return 0;const j=h.current.measureLegend;return j?j(b,x):v(b)},measureHeadline:(b,j)=>(h.current.measureHeadline??m)(b,j),measureHeadlineItemWidths:(b,j)=>(h.current.measureHeadlineItemWidths??A)(b,j),measureTickLabel:cl({textMeasurer:e,tickLabelStyles:l,familyDefault:d}),measureDifferenceArrowLabel:tl({textMeasurer:e,familyDefault:d}),measureDataLabel:An({textMeasurer:e,dataLabelStyles:s,familyDefault:d})}},[e,t,r,o,s,i,l,c])},hl=({measurer:e,axes:t,numberFormat:r,parsingLocale:n,formattedLegends:o,containerSize:s,externalMeasurements:i,headline:l,formattingLocale:c,annotations:h,layers:d,coordSystem:f,textScale:p,overflowStrategy:v,layout:m,panelBorder:A})=>{const x=jt();return(0,g.useMemo)(()=>e?new u.LayoutCompiler(e).compile({axes:t,numberFormat:r,parsingLocale:n,formattedLegends:o,containerSize:s,externalMeasurements:i,headline:l,formattingLocale:c,annotations:h,resolveDifferenceArrowStyle:x,layers:d,coordSystem:f,textScale:p,overflowStrategy:v,layout:m,panelBorder:A}):null,[t,r,n,o,s,i,v,l,c,h,x,d,f,p,m,A,e])},gl=e=>!e.isVisible||e.ticks.length===0,vl=e=>e.items.length===0,Sn=()=>{const{formattingLocale:e}=N(),t=P(r=>r.config.parsingLocale);return e??t},qt=.5,Pn=(0,g.createContext)(new Map),Rn=(0,g.createContext)(()=>{}),Cn=(0,g.createContext)(new Set),fl=({children:e})=>{const[t,r]=(0,g.useState)(()=>new Map),[n]=(0,g.useState)(()=>new Set),o=(0,g.useRef)(new Map),s=(0,g.useCallback)((i,l,c)=>{const h=o.current.get(i)??new Set;if(c!==null){h.add(l),o.current.set(i,h),r(d=>xl(d,i,c));return}h.delete(l),!(h.size>0)&&(o.current.delete(i),r(d=>yl(d,i)))},[]);return(0,a.jsx)(Rn.Provider,{value:s,children:(0,a.jsx)(Cn.Provider,{value:n,children:(0,a.jsx)(Pn.Provider,{value:t,children:e})})})},En=()=>(0,g.useContext)(Pn),pl=()=>(0,g.useContext)(Rn),kn=e=>{const t=pl(),r=(0,g.useId)(),n=(0,g.useRef)(null);return(0,g.useEffect)(()=>{if(typeof ResizeObserver>"u")return;const o=n.current;if(o===null)return;const s=()=>t(e,r,{width:o.offsetWidth,height:o.offsetHeight});s();const i=new ResizeObserver(s);return i.observe(o),()=>{i.disconnect(),t(e,r,null)}},[e,r,t]),n},ml=()=>(0,g.useContext)(Cn),xl=(e,t,r)=>{const n=e.get(t);if(n!==void 0&&Math.abs(n.width-r.width)<qt&&Math.abs(n.height-r.height)<qt)return e;const o=new Map(e);return o.set(t,r),o},yl=(e,t)=>{if(!e.has(t))return e;const r=new Map(e);return r.delete(t),r},Pt="data-edit-kind",Bn="data-edit-id",Al="observation",bl=new Set(["annotation"]),jl=e=>bl.has(e.kind),wl=(e,t)=>e===t?!0:e===null||t===null||e.kind!==t.kind?!1:e.id===t.id,we=e=>({[Pt]:e.kind,[Bn]:e.id}),Sl=()=>({[Pt]:Al}),Pl=(e,t)=>e!==null&&e.annotationId===t?e:null,Rl=(e,t)=>e.annotationId===t.annotationId&&e.translation.x===t.translation.x&&e.translation.y===t.translation.y,Cl=(e,t,r)=>e!==null&&e.annotationId===t&&e.endpoint===r?e:null,El=(e,t)=>e.annotationId===t.annotationId&&e.endpoint===t.endpoint&&e.anchor.x===t.anchor.x&&e.anchor.y===t.anchor.y,kl=(e,t,r)=>e!==null&&e.annotationId===t&&e.endpoint===r?e:null,Bl=(e,t)=>e.annotationId===t.annotationId&&e.endpoint===t.endpoint&&(0,u.areAnchorsEqual)(e.point.anchor,t.point.anchor),Il=(e,t)=>e!==null&&e.annotationId===t?e:null,Ml=(e,t)=>e.annotationId===t.annotationId&&e.region.x===t.region.x&&e.region.y===t.region.y&&e.region.width===t.region.width&&e.region.height===t.region.height,Tl=(e,t)=>e!==null&&e.annotationId===t?e:null,Ol=(e,t)=>e.annotationId===t.annotationId&&e.at.x===t.at.x&&e.width===t.width&&e.shift===t.shift,ce=({standingInteraction:e},t)=>e!==null&&ne(e,t)?e:null,Ll=(e,t)=>{if(e===null)return!1;switch(t.kind){case"difference-arrow-endpoint-drag":return ne(e,t.kind)&&Bl(e,t);case"arrow-endpoint-drag":return ne(e,t.kind)&&El(e,t);case"move-drag":return ne(e,t.kind)&&Rl(e,t);case"shape-resize-drag":return ne(e,t.kind)&&Ml(e,t);case"text-resize-drag":return ne(e,t.kind)&&Ol(e,t);case"chrome-popup":return ne(e,t.kind);case"menu":return!1}},ne=(e,t)=>e.kind===t,In=()=>(0,sr.createStore)(e=>({menuTrigger:null,chromeUnderPointer:null,editTargetUnderPointer:null,standingInteraction:null,caret:null,setMenuTrigger:t=>e(r=>(0,u.areEditMenuTriggersEqual)(r.menuTrigger,t)?r:{menuTrigger:t}),setChromeUnderPointer:t=>e({chromeUnderPointer:t}),setEditTargetUnderPointer:t=>e(r=>wl(r.editTargetUnderPointer,t)?r:{editTargetUnderPointer:t}),claimInteraction:t=>e(r=>Ll(r.standingInteraction,t)?r:{standingInteraction:t}),releaseInteraction:t=>e(r=>r.standingInteraction?.kind===t?{standingInteraction:null}:r),setCaret:t=>e(r=>(r.caret?.annotationId??null)===t?r:{caret:t===null?null:{annotationId:t,editor:null}}),setCaretEditor:t=>e(r=>r.caret===null?r:{caret:{...r.caret,editor:t}})})),Rt=(0,g.createContext)(null),Fl=In(),Nl=({children:e})=>{const[t]=(0,g.useState)(()=>In());return(0,a.jsx)(Rt.Provider,{value:t,children:e})},Dl=()=>{const e=(0,g.useContext)(Rt);if(e===null)throw new Error("useEditorStore must be used inside an <EditorProvider>.");return e};function J(e){return(0,be.useStore)((0,g.useContext)(Rt)??Fl,e)}var Mn=(0,g.createContext)(null),Gl=({panelRect:e,children:t})=>{const r=Hl(e);return(0,a.jsx)(Mn.Provider,{value:r,children:t})},Tn=()=>{const e=(0,g.useContext)(Mn);if(e===null)throw new Error("Difference arrows read outside a <DifferenceArrowsProvider>.");return e},Xt=(e,t,r)=>t.isColorAuthored?t.color:(0,u.resolveArrowColor)(e.start,e.end,{start:r(e.start),end:r(e.end)})??t.color,Hl=e=>{const{formattingLocale:t}=N(),r=te(),{fonts:n}=oe(),o=J(x=>ce(x,"difference-arrow-endpoint-drag")),s=ur(),i=jt(),{differenceArrows:l,mainAxis:c,parsingLocale:h}=P((0,G.useShallow)(x=>({differenceArrows:x.annotations.differenceArrows,mainAxis:x.coordSystem.type==="cartesian"?x.coordSystem.mainAxis:"x",parsingLocale:x.config.parsingLocale}))),d=t??h,{width:f,height:p}=e,v=(0,g.useMemo)(()=>({mainAxis:c,panelWidth:f,panelHeight:p,locale:d}),[c,f,p,d]),m=(0,g.useMemo)(()=>Wl(r,n.familyDefault),[r,n.familyDefault]),A=(0,g.useMemo)(()=>l.map(x=>{const b=i(x.id),j=Jt(x,b,v,m);return{...j,arrow:x,style:b,color:Xt(x,b,s),committedArrow:x,committedLabelBox:j.labelBox,committedLabelText:j.labelText,isDragged:!1,hasComparableEndpoints:(0,u.areEndpointsComparable)(x.start,x.end)}}),[l,v,m,s,i]);return(0,g.useMemo)(()=>o===null?A:A.map(x=>{if(x.id!==o.annotationId)return x;const b=Vl(x.committedArrow,o);return{...Jt(b,x.style,v,m),style:x.style,color:Xt(b,x.style,s),arrow:b,committedArrow:x.committedArrow,committedLabelBox:x.committedLabelBox,committedLabelText:x.committedLabelText,isDragged:!0,hasComparableEndpoints:(0,u.areEndpointsComparable)(b.start,b.end)}}),[A,o,v,m,s])},Jt=(e,t,r,n)=>{const o=(0,u.computeDifferenceArrow)({arrow:e,style:t,...r});return{...o,labelBox:(0,u.getDifferenceArrowLabelBox)({labelPosition:o.labelPosition,measuredTextWidth:n(o.labelText,t.label),label:t.label})}},Wl=(e,t)=>{const r=new Map;return(n,o)=>{const s=(0,u.toFontSpec)(o,t),i=`${s.family}|${s.size}|${s.weight}|${n}`,l=r.get(i);if(l!==void 0)return l;const{width:c}=e.measureText(n,s);return r.set(i,c),c}},Vl=(e,t)=>({...e,start:t.endpoint==="start"?t.point:e.start,end:t.endpoint==="end"?t.point:e.end}),Ul="data:image/png;base64,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",Kl=({className:e})=>(0,a.jsx)("img",{src:Ul,alt:"","aria-hidden":"true",className:e,draggable:!1}),Yl="https://graphy.app/?utm_source=chart-mark&utm_medium=embed",Ql="Made with Graphy — open graphy.app";var zl="vultop0";var ql="vultop2",Xl="vultop3",Jl="vultop4",Zl="vultop5",_l="vultop6",$l="vultop7",ec=e=>{const t=tc(e.trim());if(t===null)return"light";const r=rc(t);return r<=.22?"dark":r<=.65?"mid":"light"},tc=e=>{if(!e.startsWith("#"))return null;const t=e.slice(1);if(t.length===3){const r=t[0],n=t[1],o=t[2];return r===void 0||n===void 0||o===void 0?null:{red:Number.parseInt(r+r,16),green:Number.parseInt(n+n,16),blue:Number.parseInt(o+o,16)}}return t.length===6||t.length===8?{red:Number.parseInt(t.slice(0,2),16),green:Number.parseInt(t.slice(2,4),16),blue:Number.parseInt(t.slice(4,6),16)}:null},rc=({red:e,green:t,blue:r})=>{const n=o=>{const s=o/255;return s<=.03928?s/12.92:((s+.055)/1.055)**2.4};return .2126*n(e)+.7152*n(t)+.0722*n(r)},On=(e,t,r="full")=>!e||t.width<120||t.height<80?"hidden":t.width<200||r==="mini"?"mini":"full",Ct=({visual:e,placement:t})=>{const{background:r}=(0,u.resolveGraphChromeStyle)(I()),n=ec(r);return(0,a.jsxs)("a",{className:(0,F.default)(zl,e==="mini"&&"vultop1",t==="footer"?_l:$l),href:Yl,target:"_blank",rel:"noopener noreferrer","aria-label":Ql,"data-visual":e,"data-zone":n,children:[(0,a.jsx)("span",{className:ql,children:(0,a.jsx)(Kl,{className:Xl})}),(0,a.jsxs)("span",{className:Jl,children:[(0,a.jsx)("span",{children:"Made with"}),(0,a.jsx)("span",{className:Zl,children:"Graphy"})]})]})},Ln=(0,g.createContext)({Title:null,Caption:null,TextAnnotation:null}),nc=({editors:e,children:t})=>(0,a.jsx)(Ln.Provider,{value:e,children:t}),Et=()=>(0,g.useContext)(Ln);var oc="_4dlrid1",ac="xfz7dq0";var sc="xfz7dq2",ic="xfz7dq3",lc="xfz7dq4",cc="xfz7dq5",Fn=({ref:e,footerRect:t,mode:r="readonly",caption:n,isCaptionVisible:o,source:s,isSourceVisible:i,brandMark:l})=>{const{Caption:c}=Et(),h=r==="editable"?c:null,d=o&&(h!==null||n!==null),f=i&&s!==null&&gc(s),p=l!=="hidden";return!d&&!f&&!p?null:(0,a.jsxs)("div",{ref:e,className:ac,style:{left:t.x,top:t.y,width:t.width},children:[d?h?(0,a.jsx)(h,{caption:n}):(0,a.jsx)(uc,{caption:n}):null,(f||p)&&(0,a.jsxs)("div",{className:"xfz7dq1",children:[f&&(0,a.jsx)(dc,{source:s}),l!=="hidden"?(0,a.jsx)(Ct,{visual:l,placement:"footer"}):null]})]})},uc=({caption:e})=>e===null?null:typeof e=="string"?(0,a.jsx)("p",{className:oc,children:e}):(0,a.jsx)(ue,{content:e}),dc=({source:e})=>{const t=(0,u.isSafeUrl)(e.url)?e.url:void 0,r=e.label??(t!==void 0?hc(t):"");return r===""&&t===void 0?null:(0,a.jsxs)("span",{className:sc,children:[(0,a.jsx)("span",{className:lc,children:"Source:"}),t!==void 0?(0,a.jsx)("a",{className:ic,href:t,target:"_blank",rel:"noopener noreferrer",children:r}):(0,a.jsx)("span",{className:cc,children:r})]})},hc=e=>{try{return new URL(e).hostname}catch{return e}},gc=e=>e.label!==void 0&&e.label!==""||e.url!==void 0&&e.url!==""&&(0,u.isSafeUrl)(e.url),vc="_1k4qtbg0";var fc=22,Nn=({ref:e,headerRect:t,mode:r="readonly",title:n,isTitleVisible:o,subtitle:s,isSubtitleVisible:i,brandMark:l})=>{const{Title:c}=Et(),h=r==="editable"?c:null,d=h!==null,f=o&&(d||n!==null),p=i&&(d||s!==null),v=l!=="hidden";return!f&&!p&&!v?null:(0,a.jsxs)("div",{ref:e,className:(0,F.default)(vc,v&&"_1k4qtbg1"),style:{left:t.x,top:t.y,width:t.width,...v&&!f&&!p?{minHeight:fc}:{}},children:[h?(0,a.jsx)(h,{title:n,isTitleVisible:o,isSubtitleVisible:i,subtitle:s},[o?"title":"",i?"subtitle":""].join("-")):(0,a.jsx)(pc,{title:n,isTitleVisible:o,isSubtitleVisible:i,subtitle:s}),l!=="hidden"?(0,a.jsx)(Ct,{visual:l,placement:"header"}):null]})},pc=({title:e,isTitleVisible:t,isSubtitleVisible:r,subtitle:n})=>{const o=t&&e!==null,s=r&&n!==null;return(0,a.jsxs)(a.Fragment,{children:[o&&(typeof e=="string"?(0,a.jsx)("h1",{className:"_4dlrid0",children:e}):(0,a.jsx)(ue,{content:e})),s&&(typeof n=="string"?(0,a.jsx)("p",{className:"_4dlrid1",children:n}):(0,a.jsx)(ue,{content:n}))]})},mc="_1u9qprb0",xc="_1u9qprb1",yc=Lo({groupRow:()=>jc,item:()=>Dn,trendRow:()=>bc,valueRow:()=>Ac}),Ac="_9aen060",bc="_9aen061",jc="_9aen062",Dn="_9aen063",wc={xxs:8,xs:12,sm:16,md:20,lg:24,xl:36},Sc={primary:"asohov1 asohov0",secondary:"asohov2 asohov0"},kt=({children:e,title:t,variant:r="primary",size:n="sm",...o})=>{const s=(0,g.useId)(),i=wc[n];return(0,a.jsxs)("svg",{className:Sc[r],"aria-labelledby":t?s:void 0,height:i,width:i,fill:"none",viewBox:"0 0 24 24",role:"img",...o,children:[t&&(0,a.jsx)("title",{id:s,children:t}),e]})},Pc=e=>(0,a.jsx)(kt,{...e,children:(0,a.jsxs)("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"m5 12 7-7 7 7"}),(0,a.jsx)("path",{d:"M12 19V5"})]})}),Gn=e=>(0,a.jsx)(kt,{...e,children:(0,a.jsx)("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:(0,a.jsx)("path",{d:"M5 12h14"})})}),Hn="n7clvo0",Rc="n7clvo1",Cc="n7clvo2",Ec="n7clvo3",Wn={small:"n7clvo4",medium:"n7clvo5",large:"n7clvo6"},kc={small:"n7clvo7",medium:"n7clvo8",large:"n7clvo9"},Bc={up:"n7clvoa",down:"n7clvob",flat:"n7clvoc"},Ic={up:"n7clvoe n7clvod",down:"n7clvof n7clvod",flat:"n7clvog n7clvod"},Mc=({segment:e,resolvedSize:t})=>{const r=Z();if(e.kind==="swatch")return(0,a.jsx)(je,{shape:r(e.swatch.geom,"cartesian")?.swatchShape??"square",color:e.swatch.color,surface:"headline",width:e.size,height:e.size});if(e.kind==="trendArrow")return(0,a.jsx)("div",{className:Ic[e.direction],children:e.direction==="flat"?(0,a.jsx)(Gn,{size:"xs",title:""}):(0,a.jsx)(Pc,{size:"xs",title:""})});const n=e.fontRole==="value"?Wn[t]:kc[t];return(0,a.jsx)("span",{className:(0,F.clsx)(Tc(e),n),children:e.text})},Tc=e=>{switch(e.textRole){case"value":return Hn;case"observation":return Rc;case"trendPercentage":return Bc[e.trendDirection??"up"];case"trendReference":return Cc;case"label":return Ec}},Oc=({item:e,resolvedSize:t})=>(0,a.jsx)("div",{className:Dn,children:(0,u.createHeadlineItemRows)(e).map(r=>(0,a.jsx)(Lc,{row:r,resolvedSize:t},r.role))}),Lc=({row:e,resolvedSize:t})=>{const r=e.role==="trendRow";return(0,a.jsx)("div",{className:yc[e.role],"data-testid":r?"headline-trend":void 0,"data-direction":r?Fc(e):void 0,role:r?"img":void 0,"aria-label":r?e.ariaLabel:void 0,children:e.segments.map((n,o)=>(0,a.jsx)(Mc,{segment:n,resolvedSize:t},o))})},Fc=e=>{const t=e.segments.find(r=>r.kind==="trendArrow");return t?.kind==="trendArrow"?t.direction:void 0},Nc=({headline:e,rect:t,resolvedSize:r,visibleItemCount:n})=>{const o={left:t.x,top:t.y,width:t.width,height:t.height};return e.kind==="grandTotal"?(0,a.jsx)("div",{className:xc,style:o,children:(0,a.jsx)("span",{className:(0,F.clsx)(Hn,Wn[r]),children:e.value})}):(0,a.jsx)("div",{className:mc,style:o,children:e.items.slice(0,n).map((s,i)=>(0,a.jsx)(Oc,{item:s,resolvedSize:r},`${s.label}-${i}`))})},Dc="_1oj6yix0";var Gc="_1oj6yix2",Hc=8,Wc=16,Vc=2,Uc=({legends:e,containerRect:t,textScale:r})=>{const{fonts:n}=oe(),o=wn(n.legendLabel,r),{placements:s,hasOverlap:i}=Kc(e,t,o);if(s.length===0)return null;const l=i?Wc:Hc,c=l-Vc;return(0,a.jsxs)("div",{className:Dc,children:[i&&(0,a.jsx)("svg",{className:"_1oj6yix1",width:t.width,height:t.height,children:s.map(h=>(0,a.jsx)(Yc,{anchorY:h.anchorY,labelY:h.y,endX:c,color:h.payload.color},h.payload.key))}),s.map(h=>(0,a.jsx)("span",{className:Gc,style:{left:l,top:h.y,color:h.payload.color},children:h.payload.label},h.payload.key))]})},Kc=(e,t,r)=>(0,g.useMemo)(()=>{const n=[];for(const o of e)for(const s of o.items){if(s.normalizedY===null)continue;const i=typeof s.visual.color=="string"?s.visual.color:void 0;n.push({normalizedY:s.normalizedY,payload:{key:String(n.length),label:s.formattedLabel,color:i}})}return n.length===0||t.height<=0?{placements:[],hasOverlap:!1}:(0,u.computeDirectLabelsLayout)({items:n,containerHeight:t.height,labelHeight:r})},[e,t.height,r]),Yc=({anchorY:e,labelY:t,endX:r,color:n})=>{const o=r/2;return(0,a.jsx)("path",{d:`M0,${e} C${o},${e} ${o},${t} ${r},${t}`,fill:"none",stroke:n??"currentColor",strokeWidth:1,strokeDasharray:"2 2"})},Qc="_6a636s0",zc="_1kjk02r0",qc="_1kjk02r1",Xc="_1kjk02r2",Jc="_1kjk02r3",Zc="_1kjk02r4",_c="_1kjk02r5",$c="_1kjk02r6",eu="_1kjk02r7",tu="_1kjk02r8";var ru="_1dw9dgx0",nu="#9ca3af",tt="\0",ou=(e,t)=>{const r=[];return e.forEach((n,o)=>{const s=n.aesthetics.includes("size");for(const i of n.items){if(s){const d=Number(i.visual.size);if(!Number.isFinite(d)||d<=0)continue}const l=i.visual.color??"",c=s?`${tt}${Number(i.visual.size)}`:"",h=i.visual.lineType;r.push({key:`${o}${tt}${String(i.value)}${tt}${l}${c}`,formattedLabel:i.formattedLabel,visual:i.visual,swatchShape:t(i.geom),isBubble:s,primaryLineType:h})}}),r},Vn=({pill:e})=>e.isBubble?(0,a.jsx)(iu,{pill:e}):(0,a.jsx)(su,{pill:e}),au=({color:e,lineType:t,shape:r,label:n})=>{const{swatch:o}=wt();return e?(0,a.jsx)(je,{shape:r,color:e,surface:"legend",label:n,lineType:t,width:o.size,height:o.size,strokeWidth:o.strokeWidth}):null},su=({pill:e})=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(au,{color:e.visual.color,lineType:e.primaryLineType,shape:e.swatchShape,label:e.formattedLabel}),(0,a.jsx)("span",{children:e.formattedLabel})]}),iu=({pill:e})=>{const t=Number(e.visual.size);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:ru,style:{width:t,height:t,backgroundColor:e.visual.color??nu}}),(0,a.jsx)("span",{children:e.formattedLabel})]})},lu=({hiddenPills:e,placement:t})=>{const r=yt(),[n,o]=(0,g.useState)(!1),{refs:s,floatingStyles:i}=(0,W.useFloating)({open:n,placement:t,middleware:[(0,W.offset)(4),(0,W.flip)(),(0,W.shift)({padding:8})]});(0,g.useEffect)(()=>{if(!n)return;const d=p=>{const v=p.target;if(!v)return;const m=s.reference.current,A=s.floating.current;m instanceof Element&&m.contains(v)||A instanceof Element&&A.contains(v)||o(!1)},f=p=>{p.key==="Escape"&&o(!1)};return document.addEventListener("pointerdown",d),document.addEventListener("keydown",f),()=>{document.removeEventListener("pointerdown",d),document.removeEventListener("keydown",f)}},[n,s.floating,s.reference]);const l=t==="left"||t==="right",c=Math.min(e.length-1,2),h=Array.from({length:c},(d,f)=>c-f);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{ref:s.setReference,className:(0,F.clsx)(zc,{[Xc]:l,[qc]:!l}),children:[h.map(d=>(0,a.jsx)("span",{className:(0,F.clsx)(Jc,{[_c]:l,[Zc]:!l}),style:cu(d,l),"aria-hidden":!0},d)),(0,a.jsx)("button",{type:"button",className:(0,F.clsx)($c,{[eu]:n}),onClick:()=>o(d=>!d),"aria-haspopup":"dialog","aria-expanded":n,"aria-label":`Show ${e.length} hidden legend ${e.length===1?"item":"items"}`,children:(0,a.jsxs)("span",{className:tu,children:["+",e.length]})})]}),n&&(0,a.jsx)("div",{ref:s.setFloating,role:"dialog","aria-label":r("graph.legend.hiddenItems"),className:"_1kjk02r9",style:i,children:(0,a.jsx)("ul",{className:"_1kjk02ra",children:e.map(d=>(0,a.jsx)("li",{className:"_1kjk02rb",children:(0,a.jsx)(Vn,{pill:d})},d.key))})})]})},cu=(e,t)=>{const r=-e*4;return{transform:t?`translateY(${r}px)`:`translateX(${r}px)`}},uu="_1cecisi0",du="_1cecisi1",hu="_1cecisi2",gu={start:"_1cecisi3",center:"_1cecisi4",end:"_1cecisi5"},vu={right:"_1cecisi6",left:"_1cecisi7"},fu="_1cecisi8",pu=({edge:e,formattedLegends:t,containerWidth:r,containerHeight:n,textScale:o})=>{const s=te(),i=oe(),l=wt(),c=Z(),h=P(w=>w.coordSystem.type),d=(0,g.useMemo)(()=>ou(t,w=>c(w,h)?.swatchShape??"square"),[t,c,h]),f=e==="left"||e==="right",p=f?n:r,v=t[0]?.align??"start",m=(0,g.useMemo)(()=>{if(d.length===0)return{visibleCount:0,hasOverflow:!1};if(p<=0)return{visibleCount:d.length,hasOverflow:!1};const w=(0,u.toFontSpec)(l.item,i.fonts.familyDefault),C=(0,u.computeLineBoxHeight)(l.item),M=2*(l.item.paddingInline+l.item.borderWidth),R=2*(l.item.paddingBlock+l.item.borderWidth),E=_=>f?mu(_,C,l.swatch.size,R):Zt({label:_.formattedLabel,swatchInlineSize:xu(_,l.swatch.size),textMeasurer:s,font:w,swatchGap:i.legendSwatchGap,horizontalChrome:M}),B=d.map(E),T=Rr(i.fonts.legendLabel,o),D=wn(i.fonts.legendLabel,o),ve=(f?D+i.legendPillVerticalChrome:Zt({label:`+${d.length}`,swatchInlineSize:0,textMeasurer:s,font:T,swatchGap:i.legendSwatchGap,horizontalChrome:i.legendPillHorizontalChrome}))+8;return Au({pillSizes:B,overflowPillSize:ve,containerSize:p,gap:i.legendItemGap})},[d,p,f,s,o,i,l]);if(d.length===0)return null;const A=d.slice(0,m.visibleCount),x=d.slice(m.visibleCount),b=m.hasOverflow&&x.length>0,j=ju(l.item);return(0,a.jsxs)("div",{className:(0,F.clsx)(gu[v],uu,{[hu]:f,[du]:!f,[vu[e==="left"?"left":"right"]]:f}),children:[A.map(w=>(0,a.jsx)("div",{className:fu,style:j,children:(0,a.jsx)(Vn,{pill:w})},w.key)),b&&(0,a.jsx)(lu,{hiddenPills:x,placement:bu(e)})]})},Zt=({label:e,swatchInlineSize:t,textMeasurer:r,font:n,swatchGap:o,horizontalChrome:s})=>{const i=r.measureText(e,n).width;return t+(t>0?o:0)+i+s},mu=(e,t,r,n)=>{const o=yu(e,r);return Math.max(t,o)+n},xu=(e,t)=>He(e.visual,t,e.isBubble),yu=(e,t)=>e.isBubble?He(e.visual,t,!0):t,Au=({pillSizes:e,overflowPillSize:t,containerSize:r,gap:n})=>{if(e.length===0)return{visibleCount:0,hasOverflow:!1};let o=0;for(let l=0;l<e.length;l+=1)l>0&&(o+=n),o+=e[l]??0;if(o<=r)return{visibleCount:e.length,hasOverflow:!1};let s=0,i=0;for(const l of e){const c=s+(i>0?n:0)+l;if(c+n+t>r)break;s=c,i+=1}return{visibleCount:i,hasOverflow:!0}},bu=e=>{switch(e){case"top":return"bottom";case"bottom":return"top";case"left":return"right";case"right":return"left"}},ju=e=>({...$(e),color:e.textColor,lineHeight:e.lineHeight,background:e.background,borderRadius:e.borderRadius,paddingInline:e.paddingInline,paddingBlock:e.paddingBlock,...e.borderWidth>0?{border:`${e.borderWidth}px solid ${e.borderColor}`}:{}}),wu=(0,g.memo)(function({formattedLegends:t,rects:r,textScale:n}){const o=(0,g.useMemo)(()=>{const s=new Map;for(const i of t){let l=s.get(i.position);l||(l={pill:[],direct:[]},s.set(i.position,l)),i.display==="pill"?l.pill.push(i):l.direct.push(i)}return s},[t]);return(0,a.jsx)(a.Fragment,{children:Array.from(o,([s,i])=>{const l=r[s];return l===void 0?null:(0,a.jsxs)("div",{className:Qc,style:{left:l.x,top:l.y,width:l.width,height:l.height},children:[(0,a.jsx)(pu,{edge:s,formattedLegends:i.pill,containerWidth:l.width,containerHeight:l.height,textScale:n}),(0,a.jsx)(Uc,{legends:i.direct,containerRect:l,textScale:n})]},s)})})}),Su=({layers:e,primaryLayerId:t,coordSystem:r,resolveRenderer:n})=>{const o=e.find(i=>i.id===t);if(!o)return null;const s=n(o.geom,r.type);return s?s.guideMode??null:null},Un=1,Kn="4 3",_t=({panelRect:e})=>{const{coordSystem:t,layers:r,scales:n}=P((0,G.useShallow)(l=>({coordSystem:l.coordSystem,layers:l.layers,scales:l.scales}))),o=le(l=>l.hover.primary),s=Z();if(r.length===0||o===null||!o.anchored)return null;const i=Su({layers:r,primaryLayerId:o.layerId,coordSystem:t,resolveRenderer:s});return i===null?null:t.type==="polar"?i==="band"?(0,a.jsx)(Eu,{coordSystem:t,primary:o,panelRect:e}):(0,a.jsx)(Cu,{coordSystem:t,primary:o,panelRect:e}):i==="band"?(0,a.jsx)(Ru,{coordSystem:t,scales:n,primary:o,panelRect:e}):(0,a.jsx)(Pu,{coordSystem:t,primary:o,panelRect:e})},Pu=({coordSystem:e,primary:t,panelRect:r})=>{const n=(0,u.getHoverGuideLineProps)(e,t);return(0,a.jsx)(ze,{panelRect:r,children:(0,a.jsx)("line",{...n,stroke:y.vars.hoverGuideLineColor,strokeWidth:Un,strokeDasharray:Kn,strokeLinecap:"round","data-testid":"hover-guide-line"})})},Ru=({coordSystem:e,scales:t,primary:r,panelRect:n})=>{const o=(0,u.getHoverGuideRectProps)(e,t,r);return o===null?null:(0,a.jsx)(ze,{panelRect:n,children:(0,a.jsx)("rect",{...o,fill:y.vars.hoverGuideFillColor,"data-testid":"hover-guide-rect"})})},Cu=({coordSystem:e,primary:t,panelRect:r})=>{const n=dr(r),o=V(t.x,e.innerRadius,n),s=V(t.x,1,n);return(0,a.jsx)(ze,{panelRect:r,children:(0,a.jsx)("line",{x1:o.x,y1:o.y,x2:s.x,y2:s.y,stroke:y.vars.hoverGuideLineColor,strokeWidth:Un,strokeDasharray:Kn,strokeLinecap:"round","data-testid":"hover-guide-line"})})},Eu=({coordSystem:e,primary:t,panelRect:r})=>{const n=(0,u.getPolarHoverGuideArcProps)(e,t);if(n===null)return null;const o=(0,u.buildPolarBarArcPath)(n);return o?(0,a.jsx)(ze,{panelRect:r,children:(0,a.jsx)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%",style:{overflow:"visible"},children:(0,a.jsx)("path",{d:o,fill:y.vars.hoverGuideFillColor,"data-testid":"hover-guide-arc"})})}):null},ze=({panelRect:e,children:t})=>(0,a.jsx)("svg",{x:e.x,y:e.y,width:e.width,height:e.height,style:{overflow:"visible",pointerEvents:"none"},"data-testid":"hover-guide",children:t}),ku=(e,t,r)=>{for(const n of Object.values(Xn)){const o=n(e,t,r);if(o!==null)return o}return null},Bu=e=>Xn[e]!==void 0,Yn=(e,t,r)=>qn(e,r,t/2),Qn=(e,t)=>{const r=(0,u.projectAnchorToPanel)(e.start,t),n=(0,u.projectAnchorToPanel)(e.end,t);return r.x===n.x&&r.y===n.y?null:{shape:"segment",start:r,end:n}},zn=(e,{panel:t,measuredBoxes:r})=>{const n=r.get(e.id);if(n===void 0)return null;const o=(0,u.alignUnitFractions)(e.align),s=(0,u.projectAnchorToPanel)(e.at,t);return{shape:"rect",rect:{x:s.x-o.x*n.width,y:s.y-(1-o.y)*n.height,width:n.width,height:n.height}}},Me=(e,t)=>(r,n,o)=>{const s=e(r).find(i=>i.id===n);return s===void 0?null:t(s,o)},qn=(e,t,r=0)=>{const n=(0,u.projectRegionToPanel)(e,t);return{shape:"rect",rect:{x:n.x-r,y:n.y-r,width:n.width+r*2,height:n.height+r*2}}},Xn={text:Me(e=>e.textAnnotations,zn),shape:Me(e=>e.shapes,(e,t)=>Yn(e.region,(0,u.resolveShapeAnnotationStyle)(t.chromeReaders,e.id).borderWidth,t.panel)),image:Me(e=>e.images,(e,t)=>qn(e.region,t.panel)),arrow:Me(e=>e.arrows,(e,t)=>Qn(e,t.panel))},Jn=(e,t)=>{const r=(0,u.findAnnotation)(e,t);return r!==null&&Bu(r.kind)&&(0,u.isAnnotationMovable)(r)},Iu=200,Mu=({engine:e,store:t,overlayRef:r})=>{(0,g.useEffect)(()=>{const n=r.current;if(!n)return;const o=Tu(n,e),s=Lu(n,e,t);return()=>{s(),o()}},[e,t,r])},Tu=(e,t)=>{const r=()=>{const i=e.getBoundingClientRect();i.width===0||i.height===0||t.setViewport({width:i.width,height:i.height})};let n=null;const o=()=>{n!==null&&clearTimeout(n),n=setTimeout(()=>{n=null,r()},Iu)},s=new ResizeObserver(o);return s.observe(e),r(),()=>{s.disconnect(),n!==null&&clearTimeout(n)}},Ou=(e,t)=>e.kind==="cursor"?null:{x:t.left+e.point.x,y:t.top+e.point.y,placement:e.placement,annotationId:e.annotationId},Lu=(e,t,r)=>{let n=null,o=null;const s=()=>{const v=e.getBoundingClientRect();return v.width>0&&v.height>0?v:null},i=(v,m)=>({x:v.clientX-m.left,y:v.clientY-m.top}),l=()=>{o=null;const v=n;if(n=null,!v)return;const m=s();if(m===null)return;const A=i(v,m),x=r.getState();if(x.isPointerSuspended)return;const b=(0,u.findPointerRegion)(A,x.pointerRegions);if(b!==null){x.setHoverState(t.query(b.cursor)),x.setTooltipAnchor(Ou(b.tooltip,m));return}const j=(0,u.toPanelCursor)(A,m);x.setHoverState(t.query(j)),x.setTooltipAnchor(null)},c=()=>{const v=r.getState();v.hover.primary===null&&v.tooltipAnchor===null||(v.setHoverState(u.RESTING_HOVER_STATE),v.setTooltipAnchor(null))},h=v=>{const m=r.getState();if(m.pointerRegions.length===0)return!1;const A=s();return A===null?!1:(0,u.findPointerRegion)(i(v,A),m.pointerRegions)!==null},d=v=>{r.getState().isPointerSuspended||h(v)||(document.removeEventListener("pointermove",d),c())},f=v=>{document.removeEventListener("pointermove",d),n=v,o===null&&(o=requestAnimationFrame(l))},p=v=>{if(n=null,o!==null&&(cancelAnimationFrame(o),o=null),!r.getState().isPointerSuspended){if(h(v)){document.addEventListener("pointermove",d);return}c()}};return e.addEventListener("pointermove",f),e.addEventListener("pointerleave",p),()=>{e.removeEventListener("pointermove",f),e.removeEventListener("pointerleave",p),document.removeEventListener("pointermove",d),o!==null&&cancelAnimationFrame(o),n=null}},Fu=({panelRect:e})=>{const{engine:t,store:r,overlayRef:n}=re(),o=J(c=>{const h=c.editTargetUnderPointer;return h!==null&&jl(h)}),s=J(c=>{const h=c.editTargetUnderPointer;return h?.kind==="annotation"?h.id:null}),i=J(c=>c.caret!==null);Mu({engine:t,store:r,overlayRef:n});const l=P(c=>s!==null&&Jn(c.spec.annotations,s));return(0,a.jsx)("rect",{ref:n,x:e.x,y:e.y,width:e.width,height:e.height,fill:"transparent",pointerEvents:i?"none":"all",cursor:Nu(l,o),"data-testid":"pointer-capture-layer"})},Nu=(e,t)=>e?"move":t?"pointer":void 0,rt="data-hover-active",Du=e=>{const{store:t}=re(),r=(0,be.useStore)(t,n=>n.hover.primary!==null);(0,g.useEffect)(()=>{const n=e.current;if(n)return r?n.setAttribute(rt,"true"):n.removeAttribute(rt),()=>{n.removeAttribute(rt)}},[e,r])},Zn=()=>{const e=I();return(0,g.useMemo)(()=>t=>(0,u.resolveArrowAnnotationStyle)(e,t),[e])},qe=()=>J(e=>ce(e,"move-drag")?.annotationId??ce(e,"shape-resize-drag")?.annotationId??ce(e,"arrow-endpoint-drag")?.annotationId??null),ge=e=>{const t=P(i=>i.annotations),r=En(),n=ml(),o=(0,g.useCallback)(i=>$t(n,"cycle",i,`Annotation reference cycle detected; dropping annotation(s): ${i.join(", ")}`),[n]),s=(0,g.useCallback)(i=>$t(n,"missing-ref",i,`Annotation reference target(s) no longer exist (dropped during compilation); dropping annotations referencing: ${i.join(", ")}`),[n]);return(0,g.useMemo)(()=>(0,u.resolveDeferredAnchors)({annotations:t,panelRect:e,measuredBoxes:r,onCycle:o,onMissingRef:s}),[t,e,r,o,s])},$t=(e,t,r,n)=>{const o=[t,...[...r].sort()].join("\0");e.has(o)||(e.add(o),console.warn(n))},Gu=16,_n=({linePath:e,strokeWidth:t})=>(0,a.jsx)("path",{d:e,stroke:"transparent",strokeWidth:Math.max(t,Gu),fill:"none",pointerEvents:"stroke"}),Hu=1.4,Wu={light:{primary:"#1D2129",inverse:"#FFFFFF"},dark:{primary:"#FFFFFF",inverse:"#1D2129"}},$n=({computed:e,style:t,isAddressable:r})=>{const n=(0,g.useId)(),{colorScheme:o}=Ke(),s=e.dashArray?{strokeDasharray:e.dashArray,strokeDashoffset:e.dashOffset}:{},i=t.shadow==="none"?null:t.shadow,l=t.borderWidth>0,c=Wu[o],h=t.borderColor??Ku(t.color,c.primary,c.inverse),d=i===null?null:Uu(e,t.borderWidth,i.blur);return(0,a.jsxs)("g",{pointerEvents:r?void 0:"none",children:[r&&(0,a.jsx)(_n,{linePath:e.linePath,strokeWidth:e.strokeWidth}),i!==null&&d!==null&&(0,a.jsx)("defs",{children:(0,a.jsx)("filter",{id:n,filterUnits:"userSpaceOnUse",...d,children:(0,a.jsx)("feDropShadow",{dx:i.offsetX,dy:i.offsetY,stdDeviation:i.blur,floodColor:i.color})})}),(0,a.jsxs)("g",{filter:i===null?void 0:`url(#${n})`,children:[l&&(0,a.jsx)("path",{d:Vu(e),stroke:h,strokeWidth:e.strokeWidth+2*t.borderWidth,strokeLinecap:"round",fill:"none"}),(0,a.jsx)("path",{d:e.linePath,stroke:t.color,strokeWidth:e.strokeWidth,strokeLinecap:"round",fill:"none",...s}),e.startArrowheadPath.length>0&&(0,a.jsx)("path",{d:e.startArrowheadPath,stroke:t.color,strokeWidth:e.strokeWidth,strokeLinecap:"round",fill:"none"}),e.endArrowheadPath.length>0&&(0,a.jsx)("path",{d:e.endArrowheadPath,stroke:t.color,strokeWidth:e.strokeWidth,strokeLinecap:"round",fill:"none"})]})]})},Vu=e=>[e.linePath,e.startArrowheadPath,e.endArrowheadPath].filter(t=>t.length>0).join(" "),Uu=(e,t,r)=>{const n=e.arrowheadExtent+e.strokeWidth+t+r;return{x:Math.min(e.startX,e.endX)-n,y:Math.min(e.startY,e.endY)-n,width:Math.abs(e.endX-e.startX)+2*n,height:Math.abs(e.endY-e.startY)+2*n}},Ku=(e,t,r)=>{try{return(0,Go.getContrast)(e,t)<Hu?r:t}catch{return r}},Yu=({panelRect:e,isEditable:t})=>{const{arrows:r}=ge(e),n=qe(),o=Zn(),s=(0,g.useMemo)(()=>r.filter(i=>i.id!==n).flatMap(i=>{const l=o(i.id),c=(0,u.computeArrow)({arrow:i,style:l,panelWidth:e.width,panelHeight:e.height});return c===null?[]:[{computed:c,style:l}]}),[r,n,e.width,e.height,o]);return s.length===0?null:(0,a.jsx)("g",{transform:`translate(${e.x}, ${e.y})`,"data-testid":"arrows",children:s.map(({computed:i,style:l})=>(0,a.jsx)("g",{...we({kind:"annotation",id:i.id}),children:(0,a.jsx)($n,{computed:i,style:l,isAddressable:t})},i.id))})},eo=()=>{const{selectionStore:e}=N();return(0,be.useStore)(e,t=>t.selection)},Qu=({linePath:e,arrowheadPath:t,stroke:r,strokeWidth:n,isAddressable:o})=>{const s={stroke:r,strokeWidth:n,strokeLinecap:"round",fill:"none"};return(0,a.jsxs)("g",{pointerEvents:o?void 0:"none",children:[o&&(0,a.jsx)(_n,{linePath:e,strokeWidth:n}),(0,a.jsx)("path",{d:e,...s}),(0,a.jsx)("path",{d:t,...s,strokeLinejoin:"round"})]})},zu=({x:e,y:t,text:r,box:n,label:o,arrowColor:s,isAddressable:i})=>{const{fonts:l}=oe();return(0,a.jsxs)("g",{pointerEvents:i?void 0:"none",children:[(0,a.jsx)("rect",{x:n.x,y:n.y,width:n.width,height:n.height,rx:o.borderRadius,fill:o.background,stroke:o.borderColor??s,strokeWidth:o.borderWidth}),(0,a.jsx)("text",{x:e,y:t,dominantBaseline:"central",textAnchor:"middle",fill:o.textColor,style:{fontFamily:o.fontFamily??l.familyDefault,fontSize:o.fontSize,fontWeight:o.fontWeight},children:r})]})},qu="_1i8rg6j0",Xu="75%",Ju=({panelRect:e,isEditable:t})=>{const r=Tn(),n=J(i=>{const l=i.editTargetUnderPointer;return l?.kind==="annotation"?l.id:null}),o=eo(),s=(0,g.useMemo)(()=>new Set(o.filter(i=>i.kind==="annotation").map(i=>i.id)),[o]);return r.length===0?null:(0,a.jsx)("g",{transform:`translate(${e.x}, ${e.y})`,"data-testid":"difference-arrows",children:r.map(({color:i,style:l,id:c,linePath:h,arrowheadPath:d,labelPosition:f,labelBox:p,labelText:v,isDragged:m,hasComparableEndpoints:A})=>{const x=n===c||s.has(c),b=m&&!A,j=b?y.vars.alert:i,w=x&&!b?Zu(j):j;return(0,a.jsxs)("g",{className:n===c?qu:void 0,"data-warning":b||void 0,...we({kind:"annotation",id:c}),children:[(0,a.jsx)(Qu,{linePath:h,arrowheadPath:d,stroke:w,strokeWidth:l.strokeWidth,isAddressable:t}),(0,a.jsx)(zu,{x:f.x,y:f.y,text:v,box:p,label:l.label,arrowColor:w,isAddressable:t})]},c)})})},Zu=e=>`color-mix(in srgb, ${e} ${Xu}, ${y.vars.textPrimary})`,to=()=>{const e=I();return(0,g.useMemo)(()=>t=>(0,u.resolveImageAnnotationStyle)(e,t),[e])},_u={fill:"none",contain:"xMidYMid meet",cover:"xMidYMid slice"},ro=({image:e,panel:t,style:r})=>{const n=(0,g.useId)(),{src:o,region:s,fit:i}=e,l=(0,u.projectRegionToPanel)(s,t),c=r.borderRadius>0;return(0,a.jsxs)("g",{children:[c&&(0,a.jsx)("clipPath",{id:n,children:(0,a.jsx)("rect",{...l,rx:r.borderRadius})}),(0,a.jsx)("image",{href:o,...l,preserveAspectRatio:_u[i],opacity:r.alpha,clipPath:c?`url(#${n})`:void 0})]})},er=({panelRect:e,zOrder:t})=>{const r=ge(e).images,n=to(),o=qe(),s=r.filter(i=>i.zOrder===t&&i.id!==o);return s.length===0?null:(0,a.jsx)("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":`image-annotations-${t}`,children:s.map(i=>(0,a.jsx)("g",{...we({kind:"annotation",id:i.id}),children:(0,a.jsx)(ro,{image:i,panel:e,style:n(i.id)})},i.id))})},no=()=>{const e=I();return(0,g.useMemo)(()=>t=>(0,u.resolveShapeAnnotationStyle)(e,t),[e])},oo=({shape:e,style:t,panel:r})=>{const n=(0,u.projectRegionToPanel)(e.region,r);return(0,a.jsx)("rect",{x:n.x,y:n.y,width:n.width,height:n.height,fill:t.color,fillOpacity:t.alpha,stroke:(0,u.getShapeAnnotationStroke)(t)??"none",strokeWidth:t.borderWidth})},tr=({panelRect:e,zOrder:t})=>{const r=ge(e).shapes,n=no(),o=qe(),s=r.filter(i=>i.zOrder===t&&i.id!==o);return s.length===0?null:(0,a.jsx)("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":`shapes-${t}`,children:s.map(i=>(0,a.jsx)("g",{...we({kind:"annotation",id:i.id}),children:(0,a.jsx)(oo,{shape:i,style:n(i.id),panel:e})},i.id))})},ao=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>r=>(0,u.resolveTextAnnotationStyle)(e,r,t),[e,t])},$u="_1aj6s5s0",ed="_1aj6s5s1",td=.1,rd=({annotation:e,panel:t,style:r,blockRef:n})=>(0,a.jsx)(so,{annotation:e,panel:t,style:r,blockRef:n,children:(0,a.jsx)(ue,{content:e.content})}),so=({annotation:e,panel:t,style:r,blockRef:n,children:o})=>{const s=(0,u.projectAnchorToPanel)(e.at,t);return(0,a.jsx)("foreignObject",{x:s.x,y:s.y,width:(0,u.toPercent)(e.width),height:t.height,overflow:"visible",pointerEvents:"none",children:(0,a.jsx)("div",{ref:n,className:$u,style:{...od(r),transform:nd(e.align)},children:o})})},nd=e=>{const t=(0,u.alignUnitFractions)(e);return`translate(${-t.x*100}%, ${-(1-t.y)*100}%)`},od=e=>({color:e.textColor,...e.fontFamily===void 0?{}:{fontFamily:e.fontFamily},fontSize:e.fontSize,fontWeight:e.fontWeight,lineHeight:e.lineHeight,padding:`${e.paddingBlock}px ${e.paddingInline}px`,borderRadius:e.borderRadius,...ad(e)}),ad=e=>{if(e.background==="transparent")return{};const t=e.alpha<1?O(e.background,e.alpha):e.background;if(e.borderWidth<=0)return{backgroundColor:t};const r=e.borderColor??yr(e.background,td);return{backgroundColor:t,boxShadow:`0 0 0 ${e.borderWidth}px ${r}`}},sd=e=>{const t=ge(e).textAnnotations,r=J(n=>ce(n,"text-resize-drag"));return(0,g.useMemo)(()=>t.map(n=>io(n,r)),[t,r])},io=(e,t)=>t===null||t.annotationId!==e.id?e:{...e,at:{...e.at,x:e.at.x+t.shift},width:t.width},id=({panelRect:e})=>{const t=sd(e),r=ao(),n=qe(),o=t.filter(s=>s.id!==n);return o.length===0?null:(0,a.jsx)("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":"text-annotations",children:o.map(s=>(0,a.jsx)(ld,{annotation:s,panel:e,style:r(s.id)},s.id))})},ld=({annotation:e,panel:t,style:r})=>{const n=kn(e.id),o=J(i=>i.caret?.annotationId===e.id),{TextAnnotation:s}=Et();return(0,a.jsx)("g",{...we({kind:"annotation",id:e.id}),children:(0,a.jsx)(so,{annotation:e,panel:t,style:r,blockRef:n,children:o&&s?(0,a.jsx)(s,{annotation:e}):(0,a.jsx)(ue,{content:e.content})})})},lo=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>(r,n)=>(0,u.resolveCalloutAnnotationStyle)(e,r,n,t),[e,t])},cd="ph8bdc0";var ud="ph8bdc2",rr={hittable:"ph8bdc4 ph8bdc3",inert:"ph8bdc5 ph8bdc3"},dd=({cx:e,cy:t,color:r,style:n})=>{const o=pi(n.shadow);return(0,a.jsx)("circle",{cx:e,cy:t,r:n.size/2,style:{fill:r,stroke:n.borderColor,strokeWidth:n.borderWidth,...o===void 0?{}:{filter:o}}})};function hd(e){const t=te(),{formattingLocale:r}=N(),n=lo(),o=P((0,G.useShallow)(c=>({pinnedNumbers:c.annotations.pinnedNumbers,comments:c.annotations.comments,coordSystem:c.coordSystem,numberFormat:c.config.numberFormat,parsingLocale:c.config.parsingLocale}))),s=r??o.parsingLocale,i=(0,g.useMemo)(()=>(0,u.buildPinnedNumberValueFormatter)({numberFormat:o.numberFormat,locale:s}),[o.numberFormat,s]),l=(0,g.useMemo)(()=>(c,h,d)=>{const f=n(c==="pinned-number"?"pinnedNumber":"comment",h).label,p={family:f.fontFamily??y.DEFAULT_FONT_FAMILY,size:f.fontSize,weight:f.fontWeight},v=gd(t,c,d,p),m=t.measureText(v,p),A=c==="pinned-number"?15:0;return{width:m.width+A+(f.paddingInline+f.borderWidth)*2,height:Math.max(m.height,10)+(f.paddingBlock+f.borderWidth)*2,text:v}},[t,n]);return(0,g.useMemo)(()=>(0,u.placeCallouts)({pinnedNumbers:o.pinnedNumbers,comments:o.comments,panelRect:e,coordSystem:o.coordSystem,measurer:l,formatPinnedNumber:c=>i(c.at)}),[o.pinnedNumbers,o.comments,e,o.coordSystem,l,i])}var gd=(e,t,r,n)=>t!=="comment"?r:(0,u.truncateToWidth)(r,140,o=>e.measureText(o,n).width),nr="callouts",vd=({panelRect:e})=>{const{pinnedNumbers:t,comments:r}=P((0,G.useShallow)(v=>({pinnedNumbers:v.annotations.pinnedNumbers,comments:v.annotations.comments}))),n=P(v=>v.coordSystem),o=Z(),s=ur(),i=lo(),l=hd(e),{store:c}=re(),h=(0,g.useMemo)(()=>{const v=new Map;for(const m of t)v.set(m.id,m.at);for(const m of r)v.set(m.id,m.at);return v},[t,r]),d=(0,g.useMemo)(()=>{const v=new Map;for(const[m,A]of h)v.set(m,s(A));return v},[h,s]),f=(0,g.useMemo)(()=>{const v=new Map;for(const m of t)v.set(m.id,i("pinnedNumber",m.id));for(const m of r)v.set(m.id,i("comment",m.id));return v},[t,r,i]),p=(0,g.useMemo)(()=>(0,u.buildCalloutHitRegions)(l,e),[l,e]);return(0,g.useEffect)(()=>{const v=c.getState();return v.publishPointerRegions(nr,p),()=>{v.publishPointerRegions(nr,[])}},[c,p]),t.length===0&&r.length===0?null:(0,a.jsx)("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible",className:cd,"data-testid":"callouts",children:l.map(v=>{if(!v.inView)return null;const m=h.get(v.id),A=f.get(v.id);if(m===void 0||A===void 0)return null;const x=d.get(v.id),b=v.miniRect.width<=e.width&&v.miniRect.height<=e.height;return(0,a.jsxs)("g",{"data-testid":v.kind,children:[(0,a.jsx)("foreignObject",{x:v.miniRect.x,y:v.miniRect.y,width:v.miniRect.width,height:v.miniRect.height,overflow:"visible",children:(0,a.jsxs)("div",{className:b?rr.hittable:rr.inert,style:pd(A.label),children:[v.kind==="pinned-number"&&(0,a.jsx)("span",{className:"ph8bdc1",children:(0,a.jsx)(je,{shape:o(m.geom,n.type)?.swatchShape??"square",surface:"callout",color:x??"currentColor",width:10,height:10})}),(0,a.jsx)("span",{className:ud,style:md(A.label),children:v.text})]})}),(0,a.jsx)(dd,{cx:v.anchorPx.x,cy:v.anchorPx.y,color:fd(A.marker,x),style:A.marker})]},v.id)})})},fd=(e,t)=>e.isColorAuthored?e.color:t??e.color,pd=e=>({background:e.background,borderRadius:e.borderRadius,padding:`${e.paddingBlock}px ${e.paddingInline}px`,boxShadow:sn(e.shadow),...e.borderWidth>0?{border:`${e.borderWidth}px solid ${e.borderColor}`}:{}}),md=e=>({...e.fontFamily===void 0?{}:{fontFamily:e.fontFamily},fontSize:e.fontSize,fontWeight:e.fontWeight,lineHeight:e.lineHeight,color:e.textColor}),co={"clapping-hands":{aspectRatio:1.059,src:"data:image/png;base64,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"},"grinning-face":{aspectRatio:1.03,src:"data:image/png;base64,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"},rocket:{aspectRatio:1.046,src:"data:image/png;base64,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"},"thumbs-down":{aspectRatio:1.063,src:"data:image/png;base64,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"},"thumbs-up":{aspectRatio:1.063,src:"data:image/png;base64,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"}},xd=3.2,yd=({panelRect:e})=>{const t=ge(e).stickers,r=P(o=>o.config.appearance.textScale);if(t.length===0)return null;const n=pt(xd,r);return(0,a.jsx)("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":"stickers",children:t.map(o=>{const s=(0,u.projectAnchorToPanel)(o.at,e);return(0,a.jsx)(Ad,{sticker:o,sizePx:n,x:s.x,y:s.y},o.id)})})},Ad=({sticker:e,sizePx:t,x:r,y:n})=>{const o=co[e.sticker];if(!o)return null;const{width:s,height:i}=bd(o.aspectRatio,t);return(0,a.jsx)("image",{href:o.src,x:r,y:n,width:s,height:i,transform:`translate(${-s/2}, ${-i/2})`})},bd=(e,t)=>e>=1?{width:t,height:t/e}:{width:t*e,height:t},jd=.25,uo=({children:e,...t})=>{const r=Xi();return r<=0?(0,a.jsx)("g",{...t,children:e}):(0,a.jsx)(S.motion.g,{...t,initial:{opacity:0},animate:{opacity:1},transition:{duration:jd,delay:r},children:e})},wd="_1agclyl0";var Sd="_1agclyl2",ho=({x:e,y:t,width:r,height:n,text:o,isRotated:s,target:i,position:l,coordType:c,backdropColor:h})=>{const d=Qe(),f=s?`rotate(-90 ${e} ${t})`:void 0,p=d[i][l],v=p.borderColor!==void 0&&(p.borderWidth??0)>0,m=Cd(i,c,p),A=Rd(p,m,h);return(0,a.jsxs)("g",{transform:f,children:[m&&(0,a.jsx)("rect",{className:"_1agclyl1",x:e-r/2,y:t-n/2,width:r,height:n,rx:p.borderRadius,ry:p.borderRadius,fill:p.background,...v?{stroke:p.borderColor,strokeWidth:p.borderWidth}:{}}),(0,a.jsx)("text",{className:Sd,style:{...$(p),fill:Pd(p,A)},x:e,y:t,textAnchor:"middle",dominantBaseline:"central",children:o})]})},Pd=(e,t)=>e.isTextColorAuthored||t===void 0?e.textColor:(0,u.pickReadableTextColor)(t),Rd=(e,t,r)=>{if(r!==void 0)return(0,u.compositeColor)(t?e.background:void 0,r)},Cd=(e,t,r)=>r.background===void 0?!1:e==="aggregate"||t==="cartesian",Ed=({panelRect:e,formattingLocale:t,plotBottomY:r,isFooterChromeReserved:n})=>{const o=te(),s=oe(),i=P((0,G.useShallow)(d=>({layers:d.layers,coordSystem:d.coordSystem,axes:d.guides.axes,numberFormat:d.config.numberFormat,parsingLocale:d.config.parsingLocale,textScale:d.config.appearance.textScale}))),l=Qe(),c=(0,g.useMemo)(()=>An({textMeasurer:o,dataLabelStyles:l,familyDefault:s.fonts.familyDefault}),[o,l,s.fonts.familyDefault]),h=(0,g.useMemo)(()=>(0,u.buildDataLabelsContent)({...i,panelRect:e,measureDataLabel:c,formattingLocale:t,plotBottomY:r,isFooterChromeReserved:n}),[i,e,c,t,r,n]).labels.map((d,f)=>(0,a.jsx)(ho,{x:d.x,y:d.y,width:d.width,height:d.height,text:d.text,isRotated:d.isRotated,target:d.target,position:d.position,coordType:i.coordSystem.type,backdropColor:d.backdropColor},`${d.layerId}:${f}`));return(0,a.jsx)(uo,{className:wd,transform:`translate(${e.x}, ${e.y})`,"data-testid":"data-labels",children:h})},kd=({edge:e,position:t,labelRotation:r,label:n,tickLabelStyle:o})=>{const{offset:s,textColor:i}=o,l=(0,u.toPercent)(t),c={style:$(o),fill:i},h=r!==0&&(e==="top"||e==="bottom"),d=e==="top";return h?(0,a.jsx)("svg",{x:l,y:d?"100%":0,style:{overflow:"visible"},children:(0,a.jsx)("text",{...Id(d,s,r),...c,children:n})}):(0,a.jsx)("text",{...Bd(e,l,s),...c,children:n})},Bd=(e,t,r)=>{switch(e){case"bottom":return{x:t,y:r,textAnchor:"middle",dominantBaseline:"hanging"};case"top":return{x:t,y:"100%",dy:-r,textAnchor:"middle",dominantBaseline:"auto"};case"left":return{x:"100%",dx:-r,y:t,textAnchor:"end",dominantBaseline:"central"};case"right":return{x:r,y:t,textAnchor:"start",dominantBaseline:"central"}}},Id=(e,t,r)=>{const n=e?-t:t;return{x:0,y:n,textAnchor:e?"start":"end",dominantBaseline:"central",transform:`rotate(${r}, 0, ${n})`}},Md=({formattedAxis:e,rect:t})=>{const r=e.position==="bottom"||e.position==="top",n=(0,u.getAestheticFromScaleAestheticKey)(e.scaleAestheticKey),o=St()[n],s=yn()[n];return(0,a.jsxs)("svg",{x:t.x,y:t.y,width:t.width,height:t.height,style:{overflow:"visible"},children:[!1,e.ticks.map((i,l)=>{const c=i.formattedLabel,h=r?i.position:1-i.position,d=Td(e.position,h,t,s.length);return(0,a.jsxs)("g",{children:[e.ticksVisible&&(0,a.jsx)("line",{...d,stroke:s.color,strokeWidth:s.strokeWidth,strokeDasharray:(0,u.getChromeDashArray)(s.lineType)}),(0,a.jsx)(kd,{edge:e.position,position:h,labelRotation:e.labelRotation,label:c,tickLabelStyle:o})]},l)})]})},Td=(e,t,r,n)=>{const o=(0,u.toPercent)(t);switch(e){case"bottom":return{x1:o,y1:0,x2:o,y2:n};case"top":return{x1:o,y1:r.height,x2:o,y2:r.height-n};case"left":return{x1:r.width,y1:o,x2:r.width-n,y2:o};case"right":return{x1:0,y1:o,x2:n,y2:o}}},Od=({axes:e,rects:t})=>{const r=xn();return(0,a.jsx)(a.Fragment,{children:e.map(n=>{const o=t[n.position];if(!o||!n.isVisible)return null;const s=Ld(n.position,o),i=r[(0,u.getAestheticFromScaleAestheticKey)(n.scaleAestheticKey)];return(0,a.jsxs)("g",{transform:`translate(${o.x}, ${o.y})`,children:[!1,(0,a.jsx)("text",{style:$(i),fill:i.textColor,...s,children:n.label})]},`axis-label-${n.position}`)})})},Ld=(e,t)=>{const r={x:t.width/2,y:t.height/2,textAnchor:"middle",dominantBaseline:"middle"};return e==="left"?(r.x=0,r.textAnchor="start"):e==="right"&&(r.x=t.width,r.textAnchor="end"),r},Fd=({formattedAxes:e,tickRects:t})=>(0,a.jsx)(a.Fragment,{children:e.map(r=>{if(r.geometry!=="linear")return null;const n=t[r.position];return!n||!r.isVisible?null:(0,a.jsx)(Md,{formattedAxis:r,rect:n},r.scaleAestheticKey)})}),Nd=({formattedAxes:e,labelRects:t})=>(0,a.jsx)(Od,{axes:e.filter(r=>r.geometry==="linear"),rects:t}),go={strokeDashoffset:"0",strokeLinecap:"round"},vo=({axes:e,panelBorderSizes:t,panelFrameRect:r,panelRect:n})=>{const o=I(),s=n.x-r.x,i=n.y-r.y;return(0,a.jsx)("svg",{"data-testid":"grid",x:r.x,y:r.y,width:r.width,height:r.height,style:{overflow:"visible"},children:e.map(l=>{if(l.geometry!=="linear"||!l.gridVisible)return null;const c=l.position==="bottom"||l.position==="top",h=(0,u.resolveGridLineStyle)(o,(0,u.getAestheticFromScaleAestheticKey)(l.scaleAestheticKey)),d=(0,u.getChromeDashArray)(h.lineType);return(0,a.jsx)("g",{children:l.ticks.map((f,p)=>{const v=Dd(c,f.position);if(v!==null&&t[v]>0)return null;const m=c?f.position:1-f.position;let A;if(c){const x=m*n.width+s;A={x1:x,y1:0,x2:x,y2:"100%"}}else{const x=m*n.height+i;A={x1:0,y1:x,x2:"100%",y2:x}}return(0,a.jsx)("line",{...A,...go,strokeDasharray:d,strokeWidth:h.strokeWidth,stroke:h.color},p)})},l.scaleAestheticKey)})})},Dd=(e,t)=>t<=0?e?"left":"bottom":t>=1?e?"right":"top":null,Gd=({sizes:e,panelFrameRect:t})=>{const r=P(i=>i.coordSystem.type==="polar"),n=I(),o=(0,g.useMemo)(()=>(0,u.resolvePanelBorderStyle)(n),[n]);if(r)return null;const s=(0,u.computePanelBorderPaths)(o,{x:e.left/2,y:e.top/2,width:t.width-(e.left+e.right)/2,height:t.height-(e.top+e.bottom)/2});return s.length===0?null:(0,a.jsx)("svg",{"data-testid":"panel-border",x:t.x,y:t.y,width:t.width,height:t.height,style:{overflow:"visible"},children:s.map((i,l)=>(0,a.jsx)("path",{d:Hd(i.segments),fill:"none",stroke:i.color,strokeDasharray:(0,u.getChromeDashArray)(i.lineType),strokeWidth:i.strokeWidth,...go},l))})},Hd=e=>e.map(t=>{switch(t.type){case"move":return`M ${t.x} ${t.y}`;case"line":return`L ${t.x} ${t.y}`;case"arc":{const r=t.cx+t.radius*Math.cos(t.endAngle),n=t.cy+t.radius*Math.sin(t.endAngle);return`A ${t.radius} ${t.radius} 0 0 1 ${r} ${n}`}case"close":return"Z"}}).join(" ");var fo=(e,t)=>{const r=P(c=>c.coordSystem);if(r.type!=="polar")return null;const n=t.find(c=>c.geometry==="circular");if(!n)return null;const{innerRadius:o,startAngle:s,spokeRotation:i}=r,l=dr(e);return l.radius<=0?null:{circle:l,circularAxis:n,radialAxis:t.find(c=>c.geometry==="radial"),innerRadius:o,startAngle:s,angleFor:c=>(0,u.positionToAngle)(c,s,i),radiusNormFor:c=>o+c*(1-o)}},Wd=3,Vd=16,Ud=({formattedAxes:e,panelRect:t})=>{const r=St(),n=fo(t,e);if(!n)return null;const{circle:o,circularAxis:s,radialAxis:i,startAngle:l,angleFor:c,radiusNormFor:h}=n,d=Kd(i,h,o.radius),f=p=>r[(0,u.getAestheticFromScaleAestheticKey)(p.scaleAestheticKey)];return(0,a.jsxs)("svg",{x:t.x,y:t.y,width:t.width,height:t.height,overflow:"visible","data-testid":"polar-axis-ticks",children:[i?.isVisible&&d.map(({tick:p,radiusNorm:v},m)=>{const A=V(l,v,o);return(0,a.jsx)("text",{x:A.x,y:A.y,textAnchor:"middle",dominantBaseline:"central",style:{...$(f(i)),paintOrder:"stroke"},stroke:y.vars.graphBackground,strokeWidth:Wd,fill:f(i).textColor,children:p.formattedLabel},`radial-label-${m}`)}),s.isVisible&&s.ticks.map((p,v)=>{if(p.position>=1-1e-9)return null;const m=c(p.position),A=V(m,(o.radius+u.POLAR_RIM_LABEL_GAP_PX)/o.radius,o);return(0,a.jsx)("text",{x:A.x,y:A.y,textAnchor:Yd(m),dominantBaseline:"central",style:$(f(s)),fill:f(s).textColor,children:p.formattedLabel},`rim-label-${v}`)})]})},Kd=(e,t,r)=>{if(!e)return[];const n=[];let o=Number.NEGATIVE_INFINITY;for(const s of e.ticks){const i=t(s.position);if(i<=0)continue;const l=i*r;l-o<Vd||(n.push({tick:s,radiusNorm:i}),o=l)}return n},Yd=e=>{const t=Math.sin(e);return Math.abs(t)<.01?"middle":t>0?"start":"end"},Qd=({formattedAxes:e,panelRect:t})=>{const r=I(),n=fo(t,e);if(!n)return null;const{circle:o,circularAxis:s,radialAxis:i,innerRadius:l,angleFor:c,radiusNormFor:h}=n,d=(0,u.resolveGridLineStyle)(r,"y"),f=(0,u.resolveGridLineStyle)(r,"x");return(0,a.jsxs)("svg",{x:t.x,y:t.y,width:t.width,height:t.height,overflow:"visible","data-testid":"polar-grid",children:[i?.gridVisible&&i.ticks.map((p,v)=>{const m=h(p.position)*o.radius;return m<=0||p.position>=1?null:(0,a.jsx)("circle",{cx:o.centerX,cy:o.centerY,r:m,fill:"none",stroke:d.color,strokeWidth:d.strokeWidth},`ring-${v}`)}),i?.gridVisible&&(0,a.jsx)("circle",{cx:o.centerX,cy:o.centerY,r:o.radius,fill:"none",stroke:d.color,strokeWidth:d.strokeWidth}),s.gridVisible&&s.ticks.map((p,v)=>{if(p.position>=1-1e-9)return null;const m=c(p.position),A=V(m,l,o),x=V(m,1,o);return(0,a.jsx)("line",{x1:A.x,y1:A.y,x2:x.x,y2:x.y,stroke:f.color,strokeWidth:f.strokeWidth},`spoke-${v}`)})]})},zd=({layer:e,coordSystem:t,shouldAnimateTransitions:r,isDimmed:n,dimStyle:o,formattingLocale:s})=>{const i=Z(),l=Ji(e.id),c=i(e.geom,t.type);if(c===null)return null;const h=Ve(c.render);return h.overlay?null:(0,a.jsx)("g",{style:n?{opacity:o.opacity,...o.saturation===void 0?{}:{filter:`saturate(${o.saturation})`}}:void 0,children:h.fn({layer:e,coordSystem:t,shouldAnimateTransitions:r,formattingLocale:s,intro:l})})};function qd({renderer:e,layer:t,coordSystem:r,candidates:n}){if(e?.getOverlayAnchor===void 0||n.length===0)return[];const o=[];for(const{observation:s,observationIndex:i}of n){const l=e.getOverlayAnchor({layer:t,coordSystem:r,observation:s});l!==null&&o.push({observation:s,observationIndex:i,anchor:l})}return o}var Xd=4,Jd=({renderer:e,layer:t,matchedLayer:r,overlayCandidates:n,coordSystem:o,shouldAnimateTransitions:s,panelRect:i,formattingLocale:l})=>{const c=P(b=>b.config.numberFormat),h=(0,g.useMemo)(()=>qd({renderer:e,layer:t,coordSystem:o,candidates:n}),[e,t,o,n]),d=k(t),f=(0,g.useMemo)(()=>(0,u.createSegmentYReader)(t),[t]),p=(0,g.useMemo)(()=>(0,u.buildLayerYValueFormatter)({layer:t,numberFormat:c,locale:l}),[c,t,l]),{fonts:v}=oe(),m=Qe();if(e===null||r===null&&h.length===0)return null;const A=Ve(e.render);let x=null;if(r&&!A.overlay){const b={layer:r,sourceLayer:t,coordSystem:o,shouldAnimateTransitions:s,formattingLocale:l,panelRect:i};x=e.renderHighlight?e.renderHighlight(b):A.fn(b)}return(0,a.jsxs)(uo,{children:[x,h.map(({observation:b,observationIndex:j,anchor:w})=>(0,a.jsx)(Zd,{observation:b,anchor:w,panelRect:i,fill:d.get("color",b),dotRadius:(d.get("size",b)??8)/2,readSegmentY:f,formatYValue:p,labelStyle:m.observation.outside,familyDefault:v.familyDefault},_d(b,j)))]})},Zd=({observation:e,anchor:t,panelRect:r,fill:n,dotRadius:o,readSegmentY:s,formatYValue:i,labelStyle:l,familyDefault:c})=>{const h=te(),d=(0,u.toViewBoxX)(t.x),f=(0,u.toViewBoxY)(t.y),p=s(e),v=(0,u.isDefined)(p)?i(p,e):null,m=(0,g.useMemo)(()=>{if(v===null)return null;const A=h.measureText(v,(0,u.toFontSpec)(l,c));return{width:A.width+l.paddingInline*2,height:A.height+l.paddingBlock*2}},[v,h,l,c]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("circle",{"data-testid":"highlight-overlay-dot",cx:(0,u.toPercent)(d),cy:(0,u.toPercent)(f),r:o,fill:n}),v!==null&&m!==null&&(0,a.jsx)(ho,{x:d*r.width,y:f*r.height-o-Xd-m.height/2,width:m.width,height:m.height,text:v,isRotated:!1,target:"observation",position:"outside",coordType:"cartesian"})]})},_d=(e,t)=>{const r=e[u.GROUP_VARIABLES.group];return`${String(r??"")}\0${t}`},$d=({layer:e,coordSystem:t,panelRect:r})=>{const{primary:n,group:o,related:s}=le((0,G.useShallow)(h=>({primary:h.hover.primary,group:h.hover.group,related:h.hover.related}))),i=Z();if(n===null)return null;const l=i(e.geom,t.type);if(l===null||qr(l))return null;const c=s.get(e.id)??[];return n.layerId===e.id?l.renderHover({layer:e,coordSystem:t,primary:n,group:o,related:c,panelRect:r}):c.length===0?null:l.renderHoverCompanions({layer:e,primary:n,related:c})},eh=e=>{const t=k(e);return(0,g.useMemo)(()=>{const[r]=e.data;return r===void 0?{opacity:void 0,saturation:void 0}:{opacity:t.get("alpha",r,"dimmed"),saturation:t.get("saturation",r,"dimmed")}},[e,t])},th="var(--to1jkx0)",rh="var(--to1jkx1)",nh="to1jkx2",oh="to1jkx3",ah=({shouldAnimateTransitions:e,panelRect:t,formattingLocale:r})=>{const{layers:n,coordSystem:o}=P((0,G.useShallow)(s=>({layers:s.layers,coordSystem:s.coordSystem})));return(0,a.jsx)("svg",{x:t.x,y:t.y,width:t.width,height:t.height,className:nh,"data-testid":"geom-layers",...Sl(),children:n.map(s=>(0,a.jsxs)(g.Fragment,{children:[(0,a.jsx)(ch,{layer:s,coordSystem:o,shouldAnimateTransitions:e,panelRect:t,formattingLocale:r}),(0,a.jsx)($d,{layer:s,coordSystem:o,panelRect:t})]},`${s.id}-${sh(o)}`))})},sh=e=>e.type==="cartesian"?`cartesian-${e.mainAxis}`:e.type,ih=e=>{if(e.geom!=="rule")return oh},lh=e=>(0,lr.assignInlineVars)({...e.opacity===void 0?{}:{[th]:String(e.opacity)},...e.saturation===void 0?{}:{[rh]:`saturate(${e.saturation})`}}),ch=({layer:e,coordSystem:t,shouldAnimateTransitions:r,panelRect:n,formattingLocale:o})=>{const s=Z(),i=(0,g.useMemo)(()=>s(e.geom,t.type),[s,e,t]),l=e.highlight,c=eh(e),h={layer:e,coordSystem:t,shouldAnimateTransitions:r,formattingLocale:o},d=i?Ve(i.render):null,f=e.spatialKind==="render-hit-test",p=ih(e);return(0,a.jsxs)("g",{className:p,style:p===void 0?void 0:lh(c),children:[(0,a.jsx)(zd,{layer:e,coordSystem:t,shouldAnimateTransitions:r,isDimmed:l?.composition.isDimmed??!1,dimStyle:c,formattingLocale:o}),f&&!d?.overlay&&i?.hitTest&&(0,a.jsx)(qs,{hitTest:i.hitTest,input:h}),f&&d?.overlay&&(0,a.jsx)($s,{render:d.fn,input:h}),l!==null&&(0,a.jsx)(Jd,{renderer:i,layer:e,matchedLayer:l.composition.matchedLayer,overlayCandidates:l.composition.overlayCandidates,coordSystem:t,shouldAnimateTransitions:r,panelRect:n,formattingLocale:o})]})},uh="_17uhij30",dh=({formattedAxes:e,plotRect:t,panelBorder:r,panelFrameRect:n,panelRect:o,axisRects:s,axisLabelRects:i,shouldAnimateTransitions:l,formattingLocale:c,plotBottomY:h,isFooterChromeReserved:d,isEditable:f})=>{const p=(0,g.useRef)(null);Du(p);const v=Y("Grid",vo),m=Y("AxisTicks",Fd),A=Y("AxisLabel",Nd),x=(0,g.useMemo)(()=>ut(n,t),[n,t]),b=(0,g.useMemo)(()=>ut(o,t),[o,t]),j=(0,g.useMemo)(()=>or(s,t),[s,t]),w=(0,g.useMemo)(()=>or(i,t),[i,t]);return(0,a.jsxs)("svg",{ref:p,className:uh,width:t.width,height:t.height,style:{transform:`translate(${t.x}px, ${t.y}px)`},"data-testid":"plot",children:[(0,a.jsx)(_t,{panelRect:b}),(0,a.jsx)(v,{axes:e,panelBorderSizes:r,panelFrameRect:x,panelRect:b}),(0,a.jsx)(m,{formattedAxes:e,tickRects:j}),(0,a.jsx)(A,{formattedAxes:e,labelRects:w}),(0,a.jsx)(Qd,{formattedAxes:e,panelRect:b}),(0,a.jsx)(_t,{panelRect:b}),(0,a.jsx)(tr,{panelRect:b,zOrder:"background"}),(0,a.jsx)(er,{panelRect:b,zOrder:"background"}),(0,a.jsx)(Gd,{sizes:r,panelFrameRect:x}),(0,a.jsx)(ah,{shouldAnimateTransitions:l,panelRect:b,formattingLocale:c}),(0,a.jsx)(Ud,{formattedAxes:e,panelRect:b}),(0,a.jsx)(Ed,{panelRect:b,formattingLocale:c,plotBottomY:h,isFooterChromeReserved:d}),(0,a.jsx)(Ju,{panelRect:b,isEditable:f}),(0,a.jsx)(tr,{panelRect:b,zOrder:"foreground"}),(0,a.jsx)(er,{panelRect:b,zOrder:"foreground"}),(0,a.jsx)(Yu,{panelRect:b,isEditable:f}),(0,a.jsx)(id,{panelRect:b}),(0,a.jsx)(yd,{panelRect:b}),(0,a.jsx)(vd,{panelRect:b}),(0,a.jsx)(Fu,{panelRect:b})]})},ut=(e,t)=>({x:e.x-t.x,y:e.y-t.y,width:e.width,height:e.height}),or=(e,t)=>{const r={};for(const[n,o]of Object.entries(e))r[n]=ut(o,t);return r},hh=e=>{let t,r;return"aspectRatio"in e?"intrinsicWidth"in e?(t=e.intrinsicWidth,r=t/e.aspectRatio):(r=e.intrinsicHeight,t=r*e.aspectRatio):(t=e.intrinsicWidth,r=e.intrinsicHeight),{width:ar(t,"width"),height:ar(r,"height")}},ar=(e,t)=>{if(e<=0||Number.isNaN(e)||!Number.isFinite(e))throw new u.InternalError({message:`Expected ${t} to be a positive, finite number, but got ${e}.`});return e},gh=({sizing:e,onResize:t,children:r})=>{const n=tn({onResize:t});if(e.mode==="keepAspectRatio"){const{intrinsicSize:s,canRender:i,outerStyles:l,innerStyles:c}=vh(e,n.width,!n.isDefault);return(0,a.jsx)("div",{ref:n.setElement,style:l,"data-testid":"graph-sizer",children:i&&(0,a.jsx)("div",{style:c,children:r(s)})})}if(e.mode==="fixed")return(0,a.jsx)("div",{ref:n.setElement,style:{width:e.width,height:e.height},"data-testid":"graph-sizer",children:r({width:e.width,height:e.height})});const o=!n.isDefault&&n.width>0&&n.height>0;return(0,a.jsx)("div",{ref:n.setElement,style:{width:"100%",height:"100%"},"data-testid":"graph-sizer",children:o&&r({width:n.width,height:n.height})})},vh=(e,t,r)=>{const n=hh(e),o=t>0&&n.width>0?t/n.width:1;return{intrinsicSize:n,canRender:r,outerStyles:{width:"100%",...r?{height:n.height*o}:{aspectRatio:`${n.width} / ${n.height}`}},innerStyles:{transformOrigin:"top left",transform:`scale(${o})`,width:n.width,height:n.height}}},fh={mode:"responsive"},nt={headerSize:{width:0,height:0},footerSize:{width:0,height:0}},ph=()=>{const[e,t]=(0,g.useState)(null),[r,n]=(0,g.useState)(null),[o,s]=(0,g.useState)(nt);return(0,g.useEffect)(()=>{const i=()=>{const c=e?{width:e.offsetWidth,height:e.offsetHeight}:nt.headerSize,h=r?{width:r.offsetWidth,height:r.offsetHeight}:nt.footerSize;s(d=>mh(d,{headerSize:c,footerSize:h})?{headerSize:c,footerSize:h}:d)};i();const l=new ResizeObserver(i);return e&&l.observe(e),r&&l.observe(r),()=>l.disconnect()},[e,r]),{headerRef:t,footerRef:n,measurements:o}},mh=(e,t)=>e.headerSize.width!==t.headerSize.width||e.headerSize.height!==t.headerSize.height||e.footerSize.width!==t.footerSize.width||e.footerSize.height!==t.footerSize.height,xh=()=>null,yh=({graphChrome:e,isEditable:t,style:r,contentRef:n,children:o})=>{const{themeClass:s,inlineVarsStyle:i}=Ke(),l=e.borderColor===void 0?0:e.borderWidth,c=l>0?e.borderColor:void 0,h=Math.max(0,e.borderRadius),d=h===0?0:h+l,f=(0,g.useMemo)(()=>({...r,borderRadius:`${d}px`,...i,background:c}),[r,d,i,c]),p=(0,g.useMemo)(()=>({inset:`${l}px`,borderRadius:`${h}px`}),[l,h]),v=t&&e.background==="transparent";return(0,a.jsx)("div",{"data-testid":"graph-wrapper",className:(0,F.default)(xi,s),style:f,children:(0,a.jsx)("div",{ref:n,"data-testid":"graph-inner",tabIndex:t?0:void 0,className:(0,F.default)(Ai,{[bi]:t,[ji]:v}),style:p,children:o})})},Ah=e=>(0,a.jsx)(an,{locale:Sn(),children:(0,a.jsx)(po,{...e})}),po=({slots:e,sizing:t=fh,onResize:r,...n})=>(0,a.jsx)(Zr,{children:(0,a.jsx)(Fr,{children:(0,a.jsx)(os,{slots:e,children:(0,a.jsx)(gh,{sizing:t,onResize:r,children:({width:o,height:s})=>(0,a.jsx)(bh,{width:o,height:s,...n})})})})}),bh=({width:e,height:t,animation:r,showTooltips:n=!0,mode:o="readonly"})=>{const s=yt(),{axes:i,legends:l,layers:c,numberFormat:h,parsingLocale:d,appearance:f,annotations:p,coordSystem:v,headline:m,headlineConfig:A,content:x,overflowStrategy:b,layoutConfig:j}=P((0,G.useShallow)(L=>({axes:L.guides.axes,legends:L.guides.legends.drawn,layers:L.layers,numberFormat:L.config.numberFormat,parsingLocale:L.config.parsingLocale,appearance:L.config.appearance,annotations:L.annotations,coordSystem:L.coordSystem,headline:L.guides.headline,headlineConfig:L.config.headline,content:L.config.content,overflowStrategy:L.config.panel.overflow,layoutConfig:L.config.layout}))),w=(0,S.useReducedMotion)(),{intro:C,transitions:M}=(0,g.useMemo)(()=>ti(r,w??!1),[r,w]),{headerRef:R,footerRef:E,measurements:B}=ph(),{formattingLocale:T,colorScheme:D,themeOverrides:ve}=N(),_=o==="editable",[Bt,mo]=(0,g.useState)(null),Se=(0,g.useMemo)(()=>Br(D,ve),[D,ve]),xo=Y("Header",Nn),yo=Y("Footer",Fn),Ao=Y("Legend",wu),bo=Y("Headline",Nc),jo=Y("EditorSurface",xh),It=(0,g.useMemo)(()=>(0,u.formatLegends)({legends:l,numberFormat:h,parsingLocale:d,formattingLocale:T}),[l,h,d,T]),fe=(0,g.useMemo)(()=>(0,u.formatHeadline)({headline:m,show:A.show,numberFormat:h,parsingLocale:d,formattingLocale:T,t:s}),[m,A.show,h,d,T,s]),wo=te(),Pe=I(),Re=(0,g.useMemo)(()=>(0,u.resolveGraphChromeStyle)(Pe),[Pe]),Mt=(0,g.useMemo)(()=>(0,u.resolvePanelBorderStyle)(Pe),[Pe]),Xe=Re.borderColor===void 0?0:Re.borderWidth,pe=(0,g.useMemo)(()=>({width:Math.max(0,e-2*Xe),height:Math.max(0,t-2*Xe)}),[e,t,Xe]),Tt=(0,g.useMemo)(()=>On(x.brandMark.enabled,pe,x.brandMark.variant),[x.brandMark.enabled,x.brandMark.variant,pe]),So=x.brandMark.placement==="footer"?Tt:"hidden",Po=x.brandMark.placement==="header"?Tt:"hidden",Ce=(0,g.useMemo)(()=>fe?{formatted:fe,size:A.size,position:A.position,innerRadius:v.type==="polar"?v.innerRadius:0}:void 0,[fe,A.size,A.position,v]),Ro=as(),Ee=dl({textMeasurer:wo,textScale:f.textScale,metrics:Se,overrides:Ro}),Ot=(0,g.useMemo)(()=>(0,u.computePanelBorderSizes)(Mt),[Mt]),me=hl({measurer:Ee,axes:i,numberFormat:h,parsingLocale:d,formattedLegends:It,containerSize:pe,externalMeasurements:B,headline:Ce,formattingLocale:T,annotations:p,layers:c,coordSystem:v,textScale:f.textScale,overflowStrategy:b,layout:j,panelBorder:Ot}),ke=(0,g.useMemo)(()=>!me||!Ce||!Ee?null:(0,u.resolveHeadlinePlacement)({headline:Ce,layout:me.layout,containerSize:pe,measurer:Ee,itemGap:Se.headlineItemGap}),[me,Ce,Ee,pe,Se.headlineItemGap]);if(!me)return null;const{layout:H,formattedAxes:Co,plotBottomY:Eo}=me,ko=H.footer.height>0;return(0,a.jsx)(un,{colorScheme:D,themeOverrides:ve,textScale:f.textScale,graphBackground:Re.background,children:(0,a.jsx)(Ka,{metrics:Se,children:(0,a.jsx)(fl,{children:(0,a.jsx)(Gl,{panelRect:H.panel,children:(0,a.jsx)(yh,{graphChrome:Re,isEditable:_,contentRef:_?mo:void 0,style:{width:"100%",height:"100%"},children:(0,a.jsxs)(qi,{intro:C,children:[(0,a.jsx)(xo,{ref:R,headerRect:H.header,mode:o,title:x.title,isTitleVisible:x.isTitleVisible,subtitle:x.subtitle,isSubtitleVisible:x.isSubtitleVisible,brandMark:Po}),(0,a.jsx)(dh,{formattedAxes:Co,plotRect:H.plot,panelBorder:Ot,panelFrameRect:H.panelFrame,panelRect:H.panel,axisRects:H.axes,axisLabelRects:H.axisLabels,shouldAnimateTransitions:M,formattingLocale:T??d,plotBottomY:Eo,isFooterChromeReserved:ko,isEditable:_}),(0,a.jsx)(yo,{ref:E,footerRect:H.footer,mode:o,caption:x.caption,isCaptionVisible:x.isCaptionVisible,source:x.source,isSourceVisible:x.isSourceVisible,brandMark:So}),(0,a.jsx)(Ao,{formattedLegends:It,rects:H.legends,textScale:f.textScale}),fe&&ke&&(0,a.jsx)(bo,{headline:fe,rect:ke.rect,resolvedSize:ke.resolvedSize,visibleItemCount:ke.visibleItemCount}),_&&Bt!==null&&(0,a.jsx)(jo,{frameElement:Bt,panelRect:H.panel}),n&&(0,a.jsx)(Vi,{})]})})})})})})},jh=e=>{const t=(0,g.useContext)(ht);return(0,g.useMemo)(()=>e||(t?{commands:t.commands,undo:t.history.undo,redo:t.history.redo,subscribe:t.store.subscribe,getCompiled:()=>t.store.getState().compiled,getSelection:()=>t.selectionStore.getState().selection,setSelection:r=>t.selectionStore.getState().setSelection(r),subscribeSelection:t.selectionStore.subscribe}:null),[e,t])},wh=e=>(0,g.useSyncExternalStore)(e.subscribe,e.getCompiled,e.getCompiled),Sh=()=>{const{commands:e}=N();return e},Ph=e=>{if(e.altKey||!e.metaKey&&!e.ctrlKey)return null;const t=e.key.toLowerCase();return t==="z"?e.shiftKey?"redo":"undo":t==="y"&&e.ctrlKey&&!e.shiftKey?"redo":null};Object.defineProperty(exports,"ArrowAnnotation",{enumerable:!0,get:function(){return $n}});Object.defineProperty(exports,"BUILT_IN_GEOM_RENDERERS",{enumerable:!0,get:function(){return zr}});Object.defineProperty(exports,"BrandMark",{enumerable:!0,get:function(){return Ct}});Object.defineProperty(exports,"CanvasTextMeasurer",{enumerable:!0,get:function(){return Tr}});Object.defineProperty(exports,"DefaultFooter",{enumerable:!0,get:function(){return Fn}});Object.defineProperty(exports,"DefaultGrid",{enumerable:!0,get:function(){return vo}});Object.defineProperty(exports,"DefaultHeader",{enumerable:!0,get:function(){return Nn}});Object.defineProperty(exports,"DefaultSwatch",{enumerable:!0,get:function(){return Gr}});Object.defineProperty(exports,"DefaultTooltip",{enumerable:!0,get:function(){return pn}});Object.defineProperty(exports,"EDIT_TARGET_ID_ATTRIBUTE",{enumerable:!0,get:function(){return Bn}});Object.defineProperty(exports,"EDIT_TARGET_KIND_ATTRIBUTE",{enumerable:!0,get:function(){return Pt}});Object.defineProperty(exports,"EditorProvider",{enumerable:!0,get:function(){return Nl}});Object.defineProperty(exports,"GeomRendererResolverProvider",{enumerable:!0,get:function(){return Za}});Object.defineProperty(exports,"GraphContext",{enumerable:!0,get:function(){return ht}});Object.defineProperty(exports,"GraphRenderer",{enumerable:!0,get:function(){return Ah}});Object.defineProperty(exports,"GraphRendererBody",{enumerable:!0,get:function(){return po}});Object.defineProperty(exports,"HoverProvider",{enumerable:!0,get:function(){return Zr}});Object.defineProperty(exports,"Icon",{enumerable:!0,get:function(){return kt}});Object.defineProperty(exports,"ImageAnnotation",{enumerable:!0,get:function(){return ro}});Object.defineProperty(exports,"InlineEditorsProvider",{enumerable:!0,get:function(){return nc}});Object.defineProperty(exports,"IntlProvider",{enumerable:!0,get:function(){return an}});Object.defineProperty(exports,"MinusIcon",{enumerable:!0,get:function(){return Gn}});Object.defineProperty(exports,"OverlayPortal",{enumerable:!0,get:function(){return $r}});Object.defineProperty(exports,"PortalThemeProvider",{enumerable:!0,get:function(){return dn}});Object.defineProperty(exports,"RICH_TEXT_FONT_FAMILIES",{enumerable:!0,get:function(){return hn}});Object.defineProperty(exports,"STICKER_ASSETS",{enumerable:!0,get:function(){return co}});Object.defineProperty(exports,"ShapeAnnotation",{enumerable:!0,get:function(){return oo}});Object.defineProperty(exports,"TextAnnotation",{enumerable:!0,get:function(){return rd}});Object.defineProperty(exports,"TextMeasurerProvider",{enumerable:!0,get:function(){return Fr}});Object.defineProperty(exports,"ThemeProvider",{enumerable:!0,get:function(){return un}});Object.defineProperty(exports,"Z_INDEX",{enumerable:!0,get:function(){return ie}});Object.defineProperty(exports,"__toESM",{enumerable:!0,get:function(){return dt}});Object.defineProperty(exports,"canMoveAnnotationOnCanvas",{enumerable:!0,get:function(){return Jn}});Object.defineProperty(exports,"createGeomRendererResolver",{enumerable:!0,get:function(){return Xr}});Object.defineProperty(exports,"darkTheme",{enumerable:!0,get:function(){return ln}});Object.defineProperty(exports,"darkenCss",{enumerable:!0,get:function(){return yr}});Object.defineProperty(exports,"defineGeomRenderer",{enumerable:!0,get:function(){return Ks}});Object.defineProperty(exports,"dictionaries",{enumerable:!0,get:function(){return Ue}});Object.defineProperty(exports,"editor",{enumerable:!0,get:function(){return ed}});Object.defineProperty(exports,"isHex",{enumerable:!0,get:function(){return Ea}});Object.defineProperty(exports,"isOverlayHosted",{enumerable:!0,get:function(){return qr}});Object.defineProperty(exports,"isValidCssColor",{enumerable:!0,get:function(){return ka}});Object.defineProperty(exports,"lightTheme",{enumerable:!0,get:function(){return At}});Object.defineProperty(exports,"lightenCss",{enumerable:!0,get:function(){return Ca}});Object.defineProperty(exports,"measureArrowEnds",{enumerable:!0,get:function(){return Qn}});Object.defineProperty(exports,"measureShapeRegion",{enumerable:!0,get:function(){return Yn}});Object.defineProperty(exports,"measureTextAnnotationBox",{enumerable:!0,get:function(){return zn}});Object.defineProperty(exports,"previewResizedText",{enumerable:!0,get:function(){return io}});Object.defineProperty(exports,"readDraggedArrowEndpointFor",{enumerable:!0,get:function(){return Cl}});Object.defineProperty(exports,"readDraggedDifferenceArrowEndpointFor",{enumerable:!0,get:function(){return kl}});Object.defineProperty(exports,"readMovedAnnotationFor",{enumerable:!0,get:function(){return Pl}});Object.defineProperty(exports,"readResizedShapeFor",{enumerable:!0,get:function(){return Il}});Object.defineProperty(exports,"readResizedTextFor",{enumerable:!0,get:function(){return Tl}});Object.defineProperty(exports,"readRichTextFontId",{enumerable:!0,get:function(){return gn}});Object.defineProperty(exports,"readStanding",{enumerable:!0,get:function(){return ce}});Object.defineProperty(exports,"resolveAnnotationChromeGeometry",{enumerable:!0,get:function(){return ku}});Object.defineProperty(exports,"resolveBrandMarkVisual",{enumerable:!0,get:function(){return On}});Object.defineProperty(exports,"resolveHistoryStep",{enumerable:!0,get:function(){return Ph}});Object.defineProperty(exports,"resolvePortalContainer",{enumerable:!0,get:function(){return xt}});Object.defineProperty(exports,"resolveRichTextFontFamily",{enumerable:!0,get:function(){return lt}});Object.defineProperty(exports,"useArrowAnnotationStyles",{enumerable:!0,get:function(){return Zn}});Object.defineProperty(exports,"useChromeStyleReaders",{enumerable:!0,get:function(){return I}});Object.defineProperty(exports,"useCompiledSelector",{enumerable:!0,get:function(){return P}});Object.defineProperty(exports,"useDebouncedCallback",{enumerable:!0,get:function(){return en}});Object.defineProperty(exports,"useDifferenceArrowAnnotationStyles",{enumerable:!0,get:function(){return jt}});Object.defineProperty(exports,"useDifferenceArrowGeometries",{enumerable:!0,get:function(){return Tn}});Object.defineProperty(exports,"useEditorState",{enumerable:!0,get:function(){return J}});Object.defineProperty(exports,"useEditorStore",{enumerable:!0,get:function(){return Dl}});Object.defineProperty(exports,"useElementScreenRect",{enumerable:!0,get:function(){return rn}});Object.defineProperty(exports,"useGeomHitTest",{enumerable:!0,get:function(){return _r}});Object.defineProperty(exports,"useGeomHover",{enumerable:!0,get:function(){return nn}});Object.defineProperty(exports,"useGraphCommands",{enumerable:!0,get:function(){return Sh}});Object.defineProperty(exports,"useGraphContext",{enumerable:!0,get:function(){return N}});Object.defineProperty(exports,"useGraphHandle",{enumerable:!0,get:function(){return jh}});Object.defineProperty(exports,"useGraphLocale",{enumerable:!0,get:function(){return Sn}});Object.defineProperty(exports,"useGraphSelection",{enumerable:!0,get:function(){return eo}});Object.defineProperty(exports,"useHandleCompiled",{enumerable:!0,get:function(){return wh}});Object.defineProperty(exports,"useHoverContext",{enumerable:!0,get:function(){return re}});Object.defineProperty(exports,"useHoverState",{enumerable:!0,get:function(){return le}});Object.defineProperty(exports,"useI18n",{enumerable:!0,get:function(){return yt}});Object.defineProperty(exports,"useImageAnnotationStyles",{enumerable:!0,get:function(){return to}});Object.defineProperty(exports,"useLatestRef",{enumerable:!0,get:function(){return De}});Object.defineProperty(exports,"useMeasuredBoxRef",{enumerable:!0,get:function(){return kn}});Object.defineProperty(exports,"useMeasuredBoxes",{enumerable:!0,get:function(){return En}});Object.defineProperty(exports,"useResolvedAnnotations",{enumerable:!0,get:function(){return ge}});Object.defineProperty(exports,"useShapeAnnotationStyles",{enumerable:!0,get:function(){return no}});Object.defineProperty(exports,"useTextAnnotationStyles",{enumerable:!0,get:function(){return ao}});Object.defineProperty(exports,"useTextMeasurer",{enumerable:!0,get:function(){return te}});Object.defineProperty(exports,"useThemeContext",{enumerable:!0,get:function(){return Ke}});
1
+ require('./history-chords.css');var Bo=Object.create,Oe=Object.defineProperty,Io=Object.getOwnPropertyDescriptor,Mo=Object.getOwnPropertyNames,To=Object.getPrototypeOf,Oo=Object.prototype.hasOwnProperty,Lo=(e,t)=>{let r={};for(var n in e)Oe(r,n,{get:e[n],enumerable:!0});return t||Oe(r,Symbol.toStringTag,{value:"Module"}),r},Fo=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(var o=Mo(t),s=0,i=o.length,l;s<i;s++)l=o[s],!Oo.call(e,l)&&l!==r&&Oe(e,l,{get:(c=>t[c]).bind(null,l),enumerable:!(n=Io(t,l))||n.enumerable});return e},dt=(e,t,r)=>(r=e!=null?Bo(To(e)):{},Fo(t||!e||!e.__esModule?Oe(r,"default",{value:e,enumerable:!0}):r,e));const y=require("./dev.utils-Cu9g-Xx9.cjs");let u=require("@graphysdk/viz-engine"),g=require("react"),a=require("react/jsx-runtime"),be=require("zustand"),S=require("motion/react"),No=require("d3-interpolate-path"),G=require("zustand/react/shallow"),Je=require("@graphysdk/viz-engine/graph-config"),sr=require("zustand/vanilla"),ir=require("react-dom"),F=require("clsx");F=dt(F,1);let ot=require("lodash-es/merge");ot=dt(ot,1);let Do=require("react-intl"),W=require("@floating-ui/react-dom"),lr=require("@vanilla-extract/dynamic"),Go=require("color2k");typeof window<"u"&&(window.__GRAPHY_SDK__??={},window.__GRAPHY_SDK__.reactRenderer="1.8.1-beta.1788390469845");var ht=(0,g.createContext)(null),N=()=>{const e=(0,g.useContext)(ht);if(!e)throw new Error("useGraph* hooks must be used inside a <GraphProvider>");return e},P=e=>{const{store:t}=N();return(0,be.useStore)(t,r=>e(r.compiled))};function k(e){const{colorScheme:t}=N();return(0,g.useMemo)(()=>(0,u.createStyleResolver)({colorScheme:t}).geomReaders(e),[e,t])}var cr=e=>{const{colorScheme:t}=N(),r=P(n=>n.layers);return(0,g.useMemo)(()=>{const n=r.find(o=>o.id===e);return n===void 0?null:(0,u.createStyleResolver)({colorScheme:t}).geomReaders(n)},[r,e,t])},ur=()=>{const{colorScheme:e}=N(),t=P(r=>r.layers);return(0,g.useMemo)(()=>{const r=(0,u.createStyleResolver)({colorScheme:e});return n=>{const o=(0,u.readAnchoredObservation)(t,n);if(o!==null)return r.geomReaders(o.layer).get("color",o.observation)}},[t,e])},Ho={centerX:0,centerY:0,radius:1},dr=e=>{const t=Math.min(e.width,e.height);return{centerX:(e.width-t)/2+t/2,centerY:(e.height-t)/2+t/2,radius:t/2}},V=(e,t,r=Ho)=>{const n=(0,u.polarToUnit)(e,t);return{x:r.centerX+n.x*r.radius,y:r.centerY-n.y*r.radius}},gt=(e,t)=>({x:(0,u.toViewBoxX)(e),y:(0,u.toViewBoxY)(t)}),Q=(e,t)=>{const r=V(e,t);return{x:(r.x+1)/2,y:(r.y+1)/2}},Wo=2,Vo=.7,ee=({hit:e,project:t=gt})=>{const r=cr(e.layerId);if(!e.anchored)return null;const n=r?.get("color",e.observation)??u.DEFAULT_GEOM_COLOR,o=((0,u.getAlpha)(e.observation)??1)*Vo,s=(r?.get("size",e.observation)??8)/2,i=r?.get("borderColor",e.observation,"hovered")??u.DEFAULT_HOVER_AFFORDANCE_COLOR,l=t(e.x,e.y);return(0,a.jsx)("circle",{cx:(0,u.toPercent)(l.x),cy:(0,u.toPercent)(l.y),r:s,fill:n,opacity:o,stroke:i,strokeWidth:Wo,"data-testid":"companion-point"})},U="_1d8mpa10",z={type:"spring",stiffness:500,damping:60,mass:1},Uo={duration:0},vt=e=>e?z:Uo,at=(e,t)=>{const r=(0,S.useMotionValue)(e);return(0,g.useEffect)(()=>{const n=(0,No.interpolatePath)(r.get(),e);(0,S.animate)(0,1,{...t,onUpdate:o=>{const s=n(o);return r.set(s)}})},[t,e,r]),r},hr=({shouldAnimateTransitions:e,...t})=>e?(0,a.jsx)(Yo,{...t}):(0,a.jsx)(Ko,{...t}),Ko=({fillPath:e,linePath:t,fill:r,fillOpacity:n,stroke:o,strokeWidth:s,strokeOpacity:i,strokeDasharray:l})=>(0,a.jsxs)("g",{children:[(0,a.jsx)("path",{d:e,fill:r,fillOpacity:n,stroke:"none"}),(0,a.jsx)("path",{d:t,fill:"none",stroke:o,strokeWidth:s,strokeOpacity:i,strokeDasharray:l,vectorEffect:"non-scaling-stroke"})]}),Yo=({fillPath:e,linePath:t,fill:r,fillOpacity:n,stroke:o,strokeWidth:s,strokeOpacity:i,strokeDasharray:l})=>{const c=at(e,z),h=at(t,z);return(0,a.jsxs)("g",{children:[(0,a.jsx)(S.motion.path,{d:c,fill:r,fillOpacity:n,stroke:"none"}),(0,a.jsx)(S.motion.path,{d:h,fill:"none",stroke:o,strokeWidth:s,strokeOpacity:i,strokeDasharray:l,vectorEffect:"non-scaling-stroke"})]})},ft=(e,t)=>{const r=(t!==void 0?e.delayByKey[t]:void 0)??0;return{duration:e.durationSeconds,ease:e.growAxis==="angle"?"circOut":"backOut",delay:r}},Qo=e=>({duration:e.durationSeconds,ease:"easeOut"}),zo=e=>({duration:e.durationSeconds,ease:"easeOut"}),qo=e=>Xo(e)+e.durationSeconds,Xo=e=>{switch(e.type){case"grow":return Object.values(e.delayByKey).reduce((t,r)=>Math.max(t,r),0);case"wipe":case"fade":return 0}},Lt=1.1,Ft=1.5,gr=({intro:e,children:t})=>{const r=(0,g.useId)();return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("clipPath",{id:r,children:(0,a.jsx)(S.motion.rect,{...Jo(e.axis),transition:Qo(e)})}),(0,a.jsx)("g",{clipPath:`url(#${r})`,children:t})]})},Jo=e=>e==="x"?{x:-.05,y:-.25,height:Ft,initial:{width:0},animate:{width:Lt}}:{x:-.25,y:-.05,width:Ft,initial:{height:0},animate:{height:Lt}},Zo=(0,g.memo)(function({layer:t,coordSystem:r,shouldAnimateTransitions:n,intro:o}){const s=o?.type==="wipe"?o:null,{lineGenerator:i,areaGenerator:l}=(0,g.useMemo)(()=>(0,u.createAreaPathGenerators)(r,t.params),[t.params,r]),c=k(t),h=(0,g.useMemo)(()=>{const d=(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id),f=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(p=>{const v=(0,u.prepareAreaObservations)([...p],t.params.missingValues),m=l(v),A=i(v);if(!m||!A)return;const x=v[0];if(!x)return;const b=c.get("color",x),j=c.get("strokeWidth",x),w=(0,u.getDashArray)(c.get("lineType",x));f.push({key:d(x),areaPath:m,linePath:A,color:b,fillOpacity:c.get("alpha",x),strokeWidth:j,strokeOpacity:c.get("strokeAlpha",x),strokeDasharray:w})}),f},[l,i,t.data,t.id,t.mapping,t.params,c]).map(d=>(0,a.jsx)(_o,{areaPath:d.areaPath,linePath:d.linePath,color:d.color,fillOpacity:d.fillOpacity,strokeWidth:d.strokeWidth,strokeOpacity:d.strokeOpacity,strokeDasharray:d.strokeDasharray,shouldAnimateTransitions:n},d.key));return(0,a.jsx)("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"area",className:U,children:s?(0,a.jsx)(gr,{intro:s,children:h}):h})}),_o=({areaPath:e,linePath:t,color:r,fillOpacity:n,strokeWidth:o,strokeOpacity:s,strokeDasharray:i,shouldAnimateTransitions:l})=>(0,a.jsx)(hr,{fillPath:e,linePath:t,fill:r,fillOpacity:n,stroke:r,strokeWidth:o,strokeOpacity:s,strokeDasharray:i,shouldAnimateTransitions:l}),$o="_324dw20",Ze=1,ea=2,ta=1,ra=12/2,na=2.25,de=({hit:e,project:t=gt,...r})=>{const n=cr(e.layerId);if(!e.anchored)return null;const o=n?.get("color",e.observation)??u.DEFAULT_GEOM_COLOR,s=(0,u.getAlpha)(e.observation)??1,i=n?.get("borderColor",e.observation,"hovered")??u.DEFAULT_HOVER_AFFORDANCE_COLOR,l=t(e.x,e.y),c=(0,u.toPercent)(l.x),h=(0,u.toPercent)(l.y),d=oa(e.observation),f=d+Ze/2+ta+Ze/2;return(0,a.jsxs)("g",{...r,className:$o,children:[(0,a.jsx)("circle",{cx:c,cy:h,r:f,fill:"none",stroke:i,strokeWidth:ea}),(0,a.jsx)("circle",{cx:c,cy:h,r:d,fill:o,opacity:s,stroke:i,strokeWidth:Ze})]})},oa=e=>{const t=(0,u.getSize)(e);return(0,u.isDefined)(t)?t/na:ra},aa=({layer:e,coordSystem:t,primary:r,companions:n})=>{const o=k(e),s=(0,u.getGroup)(r.observation),i=(0,g.useMemo)(()=>(0,u.prepareAreaObservations)([...e.data.filter(u.GROUP_VARIABLES.group,"eq",s)],e.params.missingValues),[e.data,e.params.missingValues,s]),{areaPath:l,linePath:c}=(0,g.useMemo)(()=>{const{lineGenerator:v,areaGenerator:m}=(0,u.createAreaPathGenerators)(t,e.params);return{areaPath:m(i)??"",linePath:v(i)??""}},[t,e.params,i]);if(!l||!c)return null;const h=o.get("color",r.observation),d=o.get("alpha",r.observation),f=o.get("strokeWidth",r.observation),p=(0,u.getDashArray)(o.get("lineType",r.observation));return(0,a.jsxs)("g",{"data-testid":"hovered-area",children:[(0,a.jsxs)("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"area",className:U,children:[(0,a.jsx)("path",{d:l,fill:h,fillOpacity:d,stroke:"none","data-testid":"hovered-area-fill"}),(0,a.jsx)("path",{d:c,fill:"none",stroke:h,strokeWidth:f,strokeOpacity:o.get("strokeAlpha",r.observation),strokeDasharray:p,vectorEffect:"non-scaling-stroke","data-testid":"hovered-area-edge"})]}),n.map(v=>(0,a.jsx)(ee,{hit:v},`companion-${v.layerId}-${v.pointIndex}`)),(0,a.jsx)(de,{hit:r,"data-testid":"hovered-area-point"})]})},sa={geom:"area",coord:"cartesian",swatchShape:"area",guideMode:"crosshair",render:({layer:e,coordSystem:t,shouldAnimateTransitions:r,intro:n})=>(0,a.jsx)(Zo,{layer:e,coordSystem:t,shouldAnimateTransitions:r,intro:n}),renderHover:({layer:e,coordSystem:t,primary:r,group:n,related:o})=>(0,a.jsx)(aa,{layer:e,coordSystem:t,primary:r,companions:[...n,...o]}),renderHoverCompanions:({related:e})=>(0,a.jsx)(a.Fragment,{children:e.map(t=>(0,a.jsx)(ee,{hit:t},`companion-${t.layerId}-${t.pointIndex}`))}),getOverlayAnchor:({observation:e,coordSystem:t})=>{if(t.mainAxis==="x"){const o=(0,u.getX)(e),s=(0,u.getYMax)(e)??(0,u.getY)(e);return o===null||s===null?null:{x:o,y:s}}const r=(0,u.getY)(e),n=(0,u.getXMax)(e)??(0,u.getX)(e);return r===null||n===null?null:{x:n,y:r}}},st=(e,t,r)=>{const n=r===void 0?e.activeIntro:r,o=(0,g.useRef)(n?ft(n,t):null),s=(0,g.useRef)(e.shouldAnimateTransitions);return s.current=e.shouldAnimateTransitions,(0,g.useCallback)(()=>{const i=o.current;return o.current=null,i??vt(s.current)},[])},We=(e,t)=>{const r=(0,g.useRef)(!0);(0,g.useEffect)(()=>{r.current=!1},[]);const n=r.current;return(0,g.useMemo)(()=>({isAnimated:t||e!==null,isLayerEntrance:n,activeIntro:n?e:null,shouldAnimateTransitions:t}),[e,t,n])},he=(e,t)=>({borderColor:e.get("borderColor",t),borderWidth:e.get("borderWidth",t),borderRadius:e.get("borderRadius",t),borderAlpha:e.get("alpha",t)}),vr=(e,t)=>t.growAxis==="x"?{x:t.baseline,y:e.y,width:0,height:e.height}:{x:e.x,y:t.baseline,width:e.width,height:0},ia=(0,g.memo)(function({layer:t,coordSystem:r,shouldAnimateTransitions:n,intro:o}){const s=(0,g.useId)(),i=k(t),l=We(o?.type==="grow"&&(o.growAxis==="x"||o.growAxis==="y")?o:null,n);return(0,a.jsx)(a.Fragment,{children:(0,g.useMemo)(()=>{const c=(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id),h=new Map;for(const d of t.data){const f=(0,u.getBarRectBounds)(r.mainAxis,d);if(!f)continue;const p=(0,u.buildColumnKey)(r.mainAxis,f),v=h.get(p),m={key:c(d),...f,fill:i.get("color",d),opacity:i.get("alpha",d)};v?v.bars.push(m):h.set(p,{bars:[m],style:he(i,d)})}return[...h.values()].map(({bars:d,style:f},p)=>{const v=(0,u.getBoundingRect)(d),m=f.borderColor===void 0?void 0:(0,u.resolveBarBorderTreatment)(f.borderWidth);return{key:d[0]?.key??String(p),id:`${s}${p}`,bars:d,...v,radii:da({borderRadius:f.borderRadius,mainAxis:r.mainAxis,bounds:v}),borderColor:f.borderColor,outlineOpacity:f.borderAlpha,clippedStrokeWidth:m?.outlineWidth,separatorStrokeWidth:m?.separatorWidth}})},[s,r.mainAxis,t,i]).map(c=>{if(c.bars.length===1&&c.borderColor===void 0){const[h]=c.bars;if(!h)return null;const{key:d,...f}=h;return(0,a.jsx)(Le,{...f,...c.radii,animation:l,introKey:d},d)}return l.isAnimated?(0,a.jsx)(ca,{column:c,animation:l},c.key):(0,a.jsx)(la,{column:c,animation:l},c.key)})})}),la=({column:e,animation:t})=>{const{id:r,bars:n,radii:o,borderColor:s,outlineOpacity:i,clippedStrokeWidth:l,separatorStrokeWidth:c}=e,h=s!==void 0,d=(0,a.jsx)("clipPath",{id:r,children:(0,a.jsx)(Nt,{bounds:e,radii:o})});if(n.length===1){const[f]=n;if(!f)return null;const{key:p,...v}=f;return(0,a.jsxs)(a.Fragment,{children:[d,(0,a.jsx)("g",{clipPath:`url(#${r})`,children:(0,a.jsx)(Le,{...v,...o,stroke:s,strokeWidth:l,animation:t},p)})]})}return(0,a.jsxs)(a.Fragment,{children:[d,(0,a.jsxs)("g",{clipPath:`url(#${r})`,children:[n.map(f=>{const{key:p,...v}=f;return(0,a.jsx)(Le,{...v,stroke:s,strokeWidth:c,animation:t},p)}),h&&(0,a.jsx)(Nt,{bounds:e,radii:o,fill:"none",stroke:s,strokeWidth:l,opacity:i})]})]})},ca=({column:e,animation:t})=>{const{id:r,bars:n,radii:o,borderColor:s,outlineOpacity:i,clippedStrokeWidth:l,separatorStrokeWidth:c}=e,h=s!==void 0,d=ua(e,t,n[0]?.key),f={style:{transformBox:"view-box",x:d.x,y:d.y,width:d.width,height:d.height},rx:o.rx,ry:o.ry},p=(0,a.jsx)("clipPath",{id:r,children:(0,a.jsx)(S.motion.rect,{...f})});if(n.length===1){const[v]=n;return(0,a.jsxs)(a.Fragment,{children:[p,(0,a.jsx)("g",{clipPath:`url(#${r})`,children:(0,a.jsx)(S.motion.rect,{...f,fill:v?.fill,opacity:v?.opacity,stroke:s,strokeWidth:l})})]})}return(0,a.jsxs)(a.Fragment,{children:[p,(0,a.jsxs)("g",{clipPath:`url(#${r})`,children:[n.map(v=>{const{key:m,...A}=v;return(0,a.jsx)(Le,{...A,stroke:s,strokeWidth:c,animation:t,introKey:m},m)}),h&&(0,a.jsx)(S.motion.rect,{...f,fill:"none",stroke:s,strokeWidth:l,opacity:i})]})]})},Le=({animation:e,introKey:t,rx:r,ry:n,stroke:o,strokeWidth:s,...i})=>{const{isAnimated:l,activeIntro:c,shouldAnimateTransitions:h}=e;if(l){const d=c?vr(i,c):null;return(0,a.jsx)(S.motion.rect,{initial:d?{x:(0,u.toPercent)(d.x),y:(0,u.toPercent)(d.y),width:(0,u.toPercent)(d.width),height:(0,u.toPercent)(d.height),opacity:i.opacity}:!1,style:{transformBox:"view-box"},transition:c?ft(c,t):vt(h),fill:i.fill,opacity:i.opacity,rx:r,ry:n,stroke:o,strokeWidth:s,animate:{x:(0,u.toPercent)(i.x),y:(0,u.toPercent)(i.y),width:(0,u.toPercent)(i.width),height:(0,u.toPercent)(i.height),opacity:i.opacity}})}return(0,a.jsx)("rect",{style:{transformBox:"view-box"},x:(0,u.toPercent)(i.x),y:(0,u.toPercent)(i.y),width:(0,u.toPercent)(i.width),height:(0,u.toPercent)(i.height),fill:i.fill,opacity:i.opacity,rx:r,ry:n,stroke:o,strokeWidth:s})},Nt=({bounds:e,radii:t,fill:r,stroke:n,strokeWidth:o,opacity:s})=>(0,a.jsx)("rect",{x:(0,u.toPercent)(e.x),y:(0,u.toPercent)(e.y),width:(0,u.toPercent)(e.width),height:(0,u.toPercent)(e.height),rx:t.rx,ry:t.ry,fill:r,stroke:n,strokeWidth:o,opacity:s}),ua=(e,t,r)=>{const n=t.activeIntro?vr(e,t.activeIntro):e,o=(0,S.useMotionValue)(n.x),s=(0,S.useMotionValue)(n.y),i=(0,S.useMotionValue)(n.width),l=(0,S.useMotionValue)(n.height),c=st(t,r);return(0,g.useEffect)(()=>{const h=c(),d=[(0,S.animate)(o,e.x,h),(0,S.animate)(s,e.y,h),(0,S.animate)(i,e.width,h),(0,S.animate)(l,e.height,h)];return()=>{for(const f of d)f.stop()}},[o,s,i,l,e.x,e.y,e.width,e.height,c]),{x:(0,S.useTransform)(o,u.toPercent),y:(0,S.useTransform)(s,u.toPercent),width:(0,S.useTransform)(i,u.toPercent),height:(0,S.useTransform)(l,u.toPercent)}};function da(e){const t=(0,u.resolveBarCornerRadiiPx)(e);if(e.borderRadius!=="full")return t;const r={};return t.rx!==void 0&&(r.rx=(0,u.toPercent)(t.rx)),t.ry!==void 0&&(r.ry=(0,u.toPercent)(t.ry)),r}var ha="_1suo8ub0",fr=(e,t,r)=>{const n=new Map;for(const s of e.data){const i=(0,u.getBarRectBounds)(t,s);if(!i)continue;const l=(0,u.buildColumnKey)(t,i),c=n.get(l);c===void 0?n.set(l,{firstObservation:s,memberBounds:[i]}):c.memberBounds.push(i)}const o=new Map;for(const[s,{firstObservation:i,memberBounds:l}]of n)o.set(s,{style:he(r,i),bounds:(0,u.getBoundingRect)(l)});return o},pr=(e,t,r,n)=>{const o=(0,u.getBarRectBounds)(t,n);return o?e.get((0,u.buildColumnKey)(t,o))??{style:he(r,n),bounds:o}:null},Fe=(e,t)=>({x:e.x*t.width,y:e.y*t.height,width:e.width*t.width,height:e.height*t.height}),Dt=(e,t)=>({x:e.x-t,y:e.y-t,width:Math.max(0,e.width+t*2),height:Math.max(0,e.height+t*2)}),se=(e,t)=>{const r=Math.max(0,Math.min(t,e.width/2)),n=Math.max(0,Math.min(t,e.height/2)),o=e.x+e.width,s=e.y+e.height;return r<=0||n<=0?`M${e.x},${e.y}H${o}V${s}H${e.x}Z`:[`M${e.x+r},${e.y}`,`H${o-r}`,`A${r},${n} 0 0 1 ${o},${e.y+n}`,`V${s-n}`,`A${r},${n} 0 0 1 ${o-r},${s}`,`H${e.x+r}`,`A${r},${n} 0 0 1 ${e.x},${s-n}`,`V${e.y+n}`,`A${r},${n} 0 0 1 ${e.x+r},${e.y}`,"Z"].join("")},ga=({observation:e,mainAxis:t,styleReaders:r,column:n,panelRect:o})=>{const s=(0,g.useId)(),i=(0,g.useId)(),l=(0,u.getBarRectBounds)(t,e);if(!l)return null;const c=Fe(l,o),h=Fe(n.bounds,o),{borderColor:d,borderWidth:f,borderRadius:p,borderAlpha:v}=n.style,m=(0,u.resolveBarBorderRadiusPx)({borderRadius:p,mainAxis:t,bounds:h}),A=se(c,0),x=se(h,m),b=r.get("color",e),j=r.get("alpha",e),w=(0,u.resolveBarBorderTreatment)(f);return(0,a.jsxs)("g",{clipPath:`url(#${s})`,children:[(0,a.jsx)("clipPath",{id:s,children:(0,a.jsx)("path",{d:A})}),(0,a.jsx)("clipPath",{id:i,children:(0,a.jsx)("path",{d:x})}),(0,a.jsxs)("g",{clipPath:`url(#${i})`,children:[(0,a.jsx)("path",{d:A,fill:b,opacity:j,"data-testid":"highlight-bar-segment"}),d!==void 0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("path",{d:A,fill:"none",stroke:d,strokeWidth:w.separatorWidth,opacity:j,"data-testid":"highlight-bar-segment-border"}),(0,a.jsx)("path",{d:x,fill:"none",stroke:d,strokeWidth:w.outlineWidth,opacity:v})]})]})]})},va=({layer:e,sourceLayer:t,coordSystem:r,panelRect:n})=>{const o=k(t),s=(0,g.useMemo)(()=>fr(t,r.mainAxis,o),[t,r.mainAxis,o]),i=(0,u.createStableKeyGenerator)(e.data,e.mapping,e.id),l=[];for(const c of e.data){const h=pr(s,r.mainAxis,o,c);h!==null&&l.push((0,a.jsx)(ga,{observation:c,mainAxis:r.mainAxis,styleReaders:o,column:h,panelRect:n},i(c)))}return l},_e=3,fa=({layer:e,coordSystem:t,primary:r,panelRect:n})=>{const o=k(e),s=(0,g.useId)(),i=(0,g.useId)(),l=(0,g.useId)(),c=(0,g.useMemo)(()=>fr(e,t.mainAxis,o),[e,t.mainAxis,o]),h=(0,u.getBarRectBounds)(t.mainAxis,r.observation),d=pr(c,t.mainAxis,o,r.observation);if(!h||d===null)return null;const f=Fe(h,n),p=Fe(d.bounds,n),{borderColor:v,borderWidth:m,borderRadius:A,borderAlpha:x}=d.style,b=(0,u.resolveBarBorderRadiusPx)({borderRadius:A,mainAxis:t.mainAxis,bounds:p}),j=se(f,0),w=se(p,b),C=se(Dt(f,_e),0),M=se(Dt(p,_e),b>0?b+_e:0),R=o.get("color",r.observation),E=o.get("alpha",r.observation),B=o.get("borderColor",r.observation,"hovered")??u.DEFAULT_HOVER_AFFORDANCE_COLOR,T=(0,u.resolveBarBorderTreatment)(m);return(0,a.jsxs)("g",{"data-testid":"hovered-bar",children:[(0,a.jsx)("clipPath",{id:s,children:(0,a.jsx)("path",{d:M})}),(0,a.jsx)("clipPath",{id:i,children:(0,a.jsx)("path",{d:j})}),(0,a.jsx)("clipPath",{id:l,children:(0,a.jsx)("path",{d:w})}),(0,a.jsx)("g",{className:ha,children:(0,a.jsx)("g",{clipPath:`url(#${s})`,children:(0,a.jsx)("path",{d:C,fill:B,"data-testid":"hovered-bar-border"})})}),(0,a.jsx)("g",{clipPath:`url(#${i})`,children:(0,a.jsxs)("g",{clipPath:`url(#${l})`,children:[(0,a.jsx)("path",{d:j,fill:R,opacity:E,"data-testid":"hovered-bar-fill"}),v!==void 0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("path",{d:j,fill:"none",stroke:v,strokeWidth:T.separatorWidth,opacity:E,"data-testid":"hovered-bar-inner-border"}),(0,a.jsx)("path",{d:w,fill:"none",stroke:v,strokeWidth:T.outlineWidth,opacity:x})]})]})})]})},pa={geom:"bar",coord:"cartesian",swatchShape:"square",guideMode:"band",render:({layer:e,coordSystem:t,shouldAnimateTransitions:r,intro:n})=>(0,a.jsx)(ia,{layer:e,coordSystem:t,shouldAnimateTransitions:r,intro:n}),renderHighlight:({layer:e,sourceLayer:t,coordSystem:r,panelRect:n})=>(0,a.jsx)(va,{layer:e,sourceLayer:t,coordSystem:r,panelRect:n}),renderHover:({layer:e,coordSystem:t,primary:r,panelRect:n})=>(0,a.jsx)(fa,{layer:e,coordSystem:t,primary:r,panelRect:n}),renderHoverCompanions:()=>null},ma=(0,g.memo)(function({layer:t,shouldAnimateTransitions:r,intro:n}){const o=n?.type==="wipe"?n:null,s=(0,g.useMemo)(()=>(0,u.createLinePathGenerator)(t.params),[t.params]),i=(0,g.useMemo)(()=>(0,u.createLineFillAreaGenerator)(t.params),[t.params]),l=k(t),c=(0,g.useMemo)(()=>{const h=(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id),d=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(f=>{const p=(0,u.prepareLineObservations)([...f],t.params.missingValues),v=s(p);if(!v)return;const m=p[0];if(!m)return;const A=l.get("fillAlpha",m),x=A===void 0?void 0:i(p)??void 0,b=l.get("color",m),j=l.get("strokeWidth",m),w=(0,u.getDashArray)(l.get("lineType",m));d.push({key:h(m),pathData:v,fillPath:x,fillAlpha:A,color:b,opacity:l.get("alpha",m),strokeWidth:j,strokeDasharray:w})}),d},[s,i,t.data,t.id,t.mapping,t.params,l]).map(h=>(0,a.jsx)(xa,{pathData:h.pathData,fillPath:h.fillPath,fillAlpha:h.fillAlpha,color:h.color,strokeWidth:h.strokeWidth,opacity:h.opacity,strokeDasharray:h.strokeDasharray,shouldAnimateTransitions:r},h.key));return(0,a.jsx)("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"line",className:U,children:o?(0,a.jsx)(gr,{intro:o,children:c}):c})}),xa=({pathData:e,fillPath:t,fillAlpha:r,color:n,strokeWidth:o,opacity:s,strokeDasharray:i,shouldAnimateTransitions:l})=>t!==void 0&&r!==void 0?(0,a.jsx)(ya,{fillPath:t,fillAlpha:r,linePath:e,color:n,strokeWidth:o,opacity:s,strokeDasharray:i,shouldAnimateTransitions:l}):l?(0,a.jsx)(Aa,{pathData:e,color:n,strokeWidth:o,opacity:s,strokeDasharray:i}):(0,a.jsx)("path",{d:e,fill:"none",stroke:n,strokeWidth:o,opacity:s,strokeDasharray:i,vectorEffect:"non-scaling-stroke"}),ya=({fillPath:e,fillAlpha:t,linePath:r,color:n,strokeWidth:o,opacity:s,strokeDasharray:i,shouldAnimateTransitions:l})=>{const c=`line_fill_gradient_${(0,g.useId)()}`;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("defs",{children:(0,a.jsxs)("linearGradient",{id:c,gradientTransform:"rotate(90 0.5 0.5)",children:[(0,a.jsx)("stop",{offset:"0%",stopColor:n}),(0,a.jsx)("stop",{offset:"70%",stopColor:n,stopOpacity:0}),(0,a.jsx)("stop",{offset:"100%",stopColor:n,stopOpacity:0})]})}),(0,a.jsx)(hr,{fillPath:e,linePath:r,fill:`url(#${c})`,fillOpacity:t,stroke:n,strokeWidth:o,strokeOpacity:s,strokeDasharray:i,shouldAnimateTransitions:l})]})},Aa=({pathData:e,color:t,strokeWidth:r,opacity:n,strokeDasharray:o})=>{const s=at(e,z);return(0,a.jsx)(S.motion.path,{d:s,fill:"none",stroke:t,strokeWidth:r,opacity:n,strokeDasharray:o,vectorEffect:"non-scaling-stroke"})},ba=({layer:e,primary:t,companions:r})=>{const n=k(e),o=(0,u.getGroup)(t.observation),s=(0,g.useMemo)(()=>(0,u.prepareLineObservations)([...e.data.filter(u.GROUP_VARIABLES.group,"eq",o)],e.params.missingValues),[e.data,e.params.missingValues,o]),i=(0,g.useMemo)(()=>(0,u.createLinePathGenerator)(e.params)(s),[e.params,s]);if(!i)return null;const l=n.get("color",t.observation),c=n.get("alpha",t.observation),h=n.get("strokeWidth",t.observation),d=(0,u.getDashArray)(n.get("lineType",t.observation));return(0,a.jsxs)("g",{"data-testid":"hovered-line",children:[(0,a.jsx)("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"line",className:U,children:(0,a.jsx)("path",{d:i,fill:"none",stroke:l,strokeWidth:h,opacity:c,strokeDasharray:d,vectorEffect:"non-scaling-stroke","data-testid":"hovered-line-path"})}),r.map(f=>(0,a.jsx)(ee,{hit:f},`companion-${f.layerId}-${f.pointIndex}`)),(0,a.jsx)(de,{hit:t,"data-testid":"hovered-line-point"})]})},ja={geom:"line",coord:"cartesian",swatchShape:"line",guideMode:"crosshair",render:({layer:e,shouldAnimateTransitions:t,intro:r})=>(0,a.jsx)(ma,{layer:e,shouldAnimateTransitions:t,intro:r}),renderHover:({layer:e,primary:t,group:r,related:n})=>(0,a.jsx)(ba,{layer:e,primary:t,companions:[...r,...n]}),renderHoverCompanions:({related:e})=>(0,a.jsx)(a.Fragment,{children:e.map(t=>(0,a.jsx)(ee,{hit:t},`companion-${t.layerId}-${t.pointIndex}`))}),getOverlayAnchor:({observation:e})=>{const t=(0,u.getX)(e),r=(0,u.getY)(e);return t===null||r===null?null:{x:t,y:r}}},mr=({observation:e,project:t,styleReaders:r,animation:n,introKey:o})=>{const s=(0,u.getX)(e),i=(0,u.getY)(e);if(s===null||i===null)return null;const l=t(s,i),c=(0,u.toPercent)(l.x),h=(0,u.toPercent)(l.y),d=r.get("size",e)/2,f=r.get("color",e),p=r.get("alpha",e),v=r.get("borderColor",e),m=r.get("borderWidth",e),{isAnimated:A,activeIntro:x,shouldAnimateTransitions:b}=n;return A?(0,a.jsx)(S.motion.circle,{initial:x?{cx:c,cy:h,r:0,opacity:0}:!1,transition:x?ft(x,o):vt(b),fill:f,stroke:v,strokeWidth:m,animate:{cx:c,cy:h,r:d,opacity:p}}):(0,a.jsx)("circle",{cx:c,cy:h,r:d,fill:f,opacity:p,stroke:v,strokeWidth:m})},wa=(0,g.memo)(function({layer:t,shouldAnimateTransitions:r,intro:n}){const o=k(t),s=We(n?.type==="grow"&&n.growAxis==="size"?n:null,r);return(0,g.useMemo)(()=>{const i=s.activeIntro?(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id):null,l=[];let c=0;for(const h of t.data)l.push((0,a.jsx)(mr,{observation:h,project:gt,styleReaders:o,animation:s,introKey:i?.(h)},String(c++)));return l},[t.data,t.mapping,t.id,o,s])}),Gt=({primary:e,companions:t})=>{const r=(0,a.jsxs)(a.Fragment,{children:[t.map(n=>(0,a.jsx)(ee,{hit:n},`companion-${n.layerId}-${n.pointIndex}`)),e?(0,a.jsx)(de,{hit:e}):null]});return e?(0,a.jsx)("g",{"data-testid":"hovered-point",children:r}):r},Sa={geom:"point",coord:"cartesian",swatchShape:"circle",render:({layer:e,shouldAnimateTransitions:t,intro:r})=>(0,a.jsx)(wa,{layer:e,shouldAnimateTransitions:t,intro:r}),renderHover:({primary:e,group:t,related:r})=>(0,a.jsx)(Gt,{primary:e,companions:[...t,...r]}),renderHoverCompanions:({related:e})=>(0,a.jsx)(Gt,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=(0,u.getX)(e),r=(0,u.getY)(e);return t===null||r===null?null:{x:t,y:r}}},Pa={small:1.9,medium:2.3,large:2.6},Ra={small:1,medium:1,large:1.2},xr=y.FONT_LINE_HEIGHT.sm,O=(e,t)=>`color-mix(in srgb, transparent, ${e} ${t*100}%)`,yr=(e,t)=>`hsl(from ${e} h s calc(l * ${1-t}))`,Ca=(e,t)=>`hsl(from ${e} h s calc(l * ${1+t}))`,Ea=e=>/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(e),ka=e=>e.length===0?!1:typeof CSS<"u"&&typeof CSS.supports=="function"?CSS.supports("color",e):/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(e),K=e=>`${e}px`,Ar={gridLineWidth:"1px",tooltipBorderRadius:"6px",tooltipPaddingBlock:"8px",tooltipPaddingInline:"10px",tooltipRowGap:"4px",tooltipShadow:"0 4px 12px rgba(0, 0, 0, 0.18)",editorControlHeight:K(32),legendItemGap:K(8),legendSwatchGap:K(8),legendSwatchWidth:K(10),legendSwatchHeight:K(12),legendPillPaddingInline:K(8),legendPillPaddingBlock:K(2),legendPillBorderWidth:K(1),headlineRowGap:K(2),headlineItemGap:K(24)},ie={panelOverlay:5,textToolbar:10,textToolbarTooltip:20,textToolbarPopover:30,legendPopover:40,editorOverlay:900,editorOverlayPopover:950,tooltip:1e3},br={elevationXs:"0 0 2px rgba(15, 15, 24, 0.12), 0 2px 2px rgba(14, 14, 52, 0.08)",elevationSm:"0 0 4px rgba(15, 15, 24, 0.12), 0 4px 4px rgba(14, 14, 52, 0.08)",elevationMd:"0 0 8px rgba(15, 15, 24, 0.12), 0 8px 8px rgba(14, 14, 52, 0.08)",elevationLg:"0 0 16px rgba(15, 15, 24, 0.12), 0 16px 16px rgba(14, 14, 52, 0.08)"},jr={radiiXs:"4px",radiiSm:"6px",radiiMd:"8px",radiiLg:"12px"},wr={zIndexToolbar:`${ie.textToolbar}`,zIndexToolbarTooltip:`${ie.textToolbarTooltip}`,zIndexToolbarPopover:`${ie.textToolbarPopover}`,zIndexEditorPopover:`${ie.editorOverlayPopover}`},Ba=8,ae=e=>`${Ba*e}px`,Sr={spaceXxs:ae(.25),spaceXs:ae(.5),spaceSm:ae(.75),spaceMd:ae(1),spaceLg:ae(1.5),spaceXl:ae(2)},Ia={transparent:"transparent",white:"#FFFFFF",black:"#000000",grey100:"#FFFFFF",grey95:"#FCFCFC",grey90:"#FAFAFA",grey85:"#F5F5F5",grey80:"#F0F0F0",grey75:"#E8E8E8",grey70:"#E5E5E5",grey60:"#CCCCCC",grey50:"#C4C4C4",grey0:"#1D2129",red60:"#E14B49",red50:"#F93939",amber70:"#FFBA8C",amber50:"#FFC849",amber40:"#FEAE47",amber30:"#E7A816",green60:"#06B299",green50:"#42CD69",blue80:"#2E62FF",blue60:"#3D70FF",purple50:"#7B56EA",purple30:"#E093FE",greyGradient80:"linear-gradient(to top, #F0F0F1, #F9F9FF)"},Ma={textPrimary:y.vars.black,textSecondary:O(y.vars.textPrimary,.6),textDisabled:O(y.vars.textPrimary,.5),iconPrimary:"currentColor",iconSecondary:O(y.vars.textPrimary,.6),iconStickerBackground:y.vars.grey100,brand:y.vars.purple50,success:y.vars.green50,warning:y.vars.amber50,alert:y.vars.red50,border100:y.vars.grey0,border50:O(y.vars.grey0,.5),border10:O(y.vars.grey0,.1),sunkenBackground:y.vars.grey90,defaultBackground:y.vars.grey100,raisedBackground:y.vars.grey85,overlayBackground:y.vars.grey100,overlayBorderGradient:y.vars.border10},Ta={graphBackground:y.vars.grey100,gridLineColor:y.vars.border10,axisTickColor:y.vars.border10,originLineColor:y.vars.grey0,legendBackground:y.vars.defaultBackground,legendBorderColor:y.vars.border10,legendFocusOutlineColor:y.vars.border50,legendTextColor:y.vars.textPrimary,dimmedSeriesLabelTextColor:y.vars.textDisabled,dimmedSeriesLabelLineColor:y.vars.grey60,trendNegativeColor:y.vars.red60,trendPositiveColor:y.vars.green60,trendNeutralColor:y.vars.textSecondary,toolbarBackgroundColor:y.vars.overlayBackground,toolbarButtonBackgroundColor:"transparent",toolbarButtonBackgroundColorHovered:y.vars.grey80,toolbarButtonBackgroundColorSelected:y.vars.grey60,toolbarSeparatorColor:y.vars.grey60,tooltipBackground:y.vars.white,tooltipBorderColor:y.vars.border10,tooltipValueTextColor:y.vars.textPrimary,hoverGuideLineColor:O(y.vars.black,.2),hoverGuideFillColor:O(y.vars.black,.04),heatmapEmptyTileBackground:y.vars.grey80,annotationFrameBorderColor:y.vars.blue60,editMenuTriggerIconColor:"#3d414c"},Oa={canvasDefault:"#000000",canvasBlue:"#3b82f6",canvasCyan:"#06b6d4",canvasGreen:"#10b981",canvasYellow:"#E5B400",canvasOrange:"#f97316",canvasRed:"#ef4444",canvasPink:"#E845BF",canvasPurple:"#8b5cf6",canvasGray:"#78716c",canvasInverse:"#ffffff"},Pr={...Ia,...Ma,...br,...jr,...Sr,...wr,...Ta,...Oa,...Ar,...y.baseTypographyTokens,...y.semanticTypographyTokens,...y.elementTypographyTokens},pt=(e,t)=>e*10*t,Rr=(e,t)=>({family:e.family,size:e.size.unit==="em"?pt(e.size.value,t):e.size.value,weight:e.weight,style:e.style}),La=(e,t={})=>{const r=$e(e.fontFamilyDefault)??$e(y.DEFAULT_FONT_FAMILY)??"";return{legendLabel:(o=>{const s=t[o]??{},i=y.MEASURED_ELEMENT_FONT_DEFINITIONS[o],l=Cr(i,e);l===null&&Na(o);const c=l??Fa(i);return{family:$e(s.family)??r,style:s.style??"normal",weight:s.weight??c.weight,size:s.size??c.size,lineHeight:s.lineHeight??c.lineHeight}})("fontLegendLabel"),familyDefault:r}},Cr=(e,t)=>{const r=(0,Je.parseFontWeight)(t[e.weight]),n=(0,Je.parseFontLength)(t[e.size]),o=(0,Je.parseUnitlessLineHeight)(t[e.lineHeight]);return r===null||n===null||o===null?null:{weight:r,size:n,lineHeight:o}},Fa=e=>{const t=Cr(e,Pr);if(t===null)throw new Error("[react-renderer] Base typography leaf tokens failed to parse.");return t},$e=e=>e===void 0||e.includes("var(")?null:e.replace(/\s+/g," ").trim(),Na=e=>{y.IS_DEV&&console.warn(`[react-renderer] The leaf tokens composing "${e}" could not be resolved to a measurable font. Measurement falls back to the token's default; paint may disagree. Leaf overrides must be concrete values (px/em sizes, numeric weights, unitless line-heights).`)},Da={transparent:"transparent",white:"#FFFFFF",black:"#000000",grey100:"#000000",grey95:"#0D0D0D",grey90:"#1A1A1A",grey85:"#1F1F1F",grey80:"#2A2A2A",grey75:"#2e2e2e",grey70:"#353535",grey60:"#494949",grey50:"#6F6F6F",grey0:"#FFFFFF",red60:"#CB3333",red50:"#F93939",amber70:"#F48135",amber50:"#FEAE47",amber40:"#FFC849",amber30:"#ffd061",green60:"#0AC600",green50:"#42CD69",blue80:"#2E62FF",blue60:"#3D70FF",purple50:"#7B56EA",purple30:"#E093FE",greyGradient80:"linear-gradient(to top, #222429, #31353f)"},Ga={textPrimary:y.vars.grey0,textSecondary:O(y.vars.textPrimary,.8),textDisabled:O(y.vars.textPrimary,.5),iconPrimary:"currentColor",iconSecondary:O(y.vars.textPrimary,.6),iconStickerBackground:y.vars.grey70,border100:y.vars.grey0,border50:O(y.vars.grey0,.5),border10:O(y.vars.grey0,.1),brand:y.vars.purple50,success:y.vars.green50,warning:y.vars.amber50,alert:y.vars.red50,sunkenBackground:y.vars.grey100,defaultBackground:y.vars.grey90,raisedBackground:y.vars.grey80,overlayBackground:y.vars.grey90,overlayBorderGradient:y.vars.greyGradient80},Ha={graphBackground:y.vars.grey90,gridLineColor:y.vars.border10,axisTickColor:y.vars.border10,originLineColor:y.vars.grey0,legendBackground:y.vars.defaultBackground,legendBorderColor:y.vars.border10,legendFocusOutlineColor:y.vars.border50,legendTextColor:y.vars.textPrimary,dimmedSeriesLabelTextColor:y.vars.textDisabled,dimmedSeriesLabelLineColor:y.vars.grey60,trendNegativeColor:y.vars.red60,trendPositiveColor:y.vars.green60,trendNeutralColor:y.vars.textSecondary,toolbarBackgroundColor:y.vars.overlayBackground,toolbarButtonBackgroundColor:"transparent",toolbarButtonBackgroundColorHovered:y.vars.grey80,toolbarButtonBackgroundColorSelected:y.vars.grey60,toolbarSeparatorColor:y.vars.grey60,tooltipBackground:y.vars.grey70,tooltipBorderColor:y.vars.grey60,tooltipValueTextColor:y.vars.textPrimary,hoverGuideLineColor:O(y.vars.white,.2),hoverGuideFillColor:O(y.vars.white,.06),heatmapEmptyTileBackground:y.vars.grey80,annotationFrameBorderColor:y.vars.blue60,editMenuTriggerIconColor:y.vars.white},Wa={canvasDefault:"#FFFFFF",canvasBlue:"#60a5fa",canvasCyan:"#22d3ee",canvasGreen:"#34d399",canvasYellow:"#FFC800",canvasOrange:"#fb923c",canvasRed:"#f87171",canvasPink:"#F979D9",canvasPurple:"#a78bfa",canvasGray:"#a8a29e",canvasInverse:"#000000"},Va={...Da,...Ga,...br,...jr,...Sr,...wr,...Ha,...Wa,...Ar,...y.baseTypographyTokens,...y.semanticTypographyTokens,...y.elementTypographyTokens},Er=(e,t={})=>{const r={},n={};for(const[o,s]of Object.entries(t))if(s!=null)if(y.isMeasuredFontTokenKey(o)){const i=s;n[o]=i,r[o]=y.buildFontShorthand(o,i)}else r[o]=s;return{values:{...e==="dark"?Va:Pr,...r},fontOverrides:n}},kr=(e,t={})=>Er(e,t).values,Br=(e,t={})=>{const{values:r,fontOverrides:n}=Er(e,t),o=q(r.legendPillPaddingInline,8),s=q(r.legendPillPaddingBlock,2),i=q(r.legendPillBorderWidth,1);return{legendSwatchWidth:q(r.legendSwatchWidth,10),legendSwatchHeight:q(r.legendSwatchHeight,12),legendSwatchGap:q(r.legendSwatchGap,8),legendItemGap:q(r.legendItemGap,8),legendPillPaddingInline:o,legendPillPaddingBlock:s,legendPillBorderWidth:i,legendPillHorizontalChrome:2*(o+i),legendPillVerticalChrome:2*(s+i),headlineRowGap:q(r.headlineRowGap,2),headlineItemGap:q(r.headlineItemGap,24),fonts:La(r,n)}},Ua=Object.freeze(Br("light"));function q(e,t){const r=e.trim();if(!/^-?\d*\.?\d+(px)?$/.test(r))return t;const n=Number.parseFloat(r);return Number.isFinite(n)?n:t}var Ir=(0,g.createContext)(Ua),Ka=({metrics:e,children:t})=>(0,a.jsx)(Ir.Provider,{value:e,children:t}),oe=()=>(0,g.useContext)(Ir),I=()=>{const{colorScheme:e}=N(),t=P(r=>r.chrome);return(0,g.useMemo)(()=>(0,u.createStyleResolver)({colorScheme:e}).chromeReaders(t),[t,e])},Ya=e=>{const t=I(),r=P(n=>n.config.appearance.textScale);return(0,g.useMemo)(()=>(0,u.resolveRuleLabelStyle)(t,e,r),[t,e,r])},Qa=/\p{Emoji_Presentation}|\p{Emoji}\uFE0F/gu,Mr="😀",Tr=class Or{constructor(){this.emojiCorrections=new Map,this.currentFont="";const t=new OffscreenCanvas(1,1).getContext("2d");if(!t)throw new Error("Failed to create OffscreenCanvas 2D context");this.ctx=t}static async create(){return typeof document<"u"&&"fonts"in document&&await document.fonts.ready,new Or}measureText(t,r){const n=(0,u.buildFontString)(r);this.setFont(n);const{width:o,fontBoundingBoxAscent:s,fontBoundingBoxDescent:i}=this.ctx.measureText(t);let l=o;const c=za(t);if(c>0){const h=this.getEmojiCorrection(n);l-=h*c}return{width:l,height:s+i,ascent:s,descent:i}}setFont(t){this.currentFont!==t&&(this.ctx.font=t,this.currentFont=t)}getEmojiCorrection(t){const r=this.emojiCorrections.get(t);if(r!==void 0)return r;this.setFont(t);const n=this.ctx.measureText(Mr).width,o=qa(t);let s=0;if(o!==null){const i=n-o;s=i>.5?i:0}return this.emojiCorrections.set(t,s),s}},X=null,za=e=>{const t=e.match(Qa);return t?t.length:0},qa=e=>{const t=Xa();return t?(t.style.font=e,t.getBoundingClientRect().width):null},Xa=()=>typeof document>"u"?null:(X||(X=document.createElement("span"),X.style.position="absolute",X.style.visibility="hidden",X.style.whiteSpace="nowrap",X.style.left="-9999px",X.textContent=Mr,document.body.appendChild(X)),X),Lr=(0,g.createContext)(null),Fr=({children:e,measurer:t})=>{const[r,n]=(0,g.useState)(null);(0,g.useEffect)(()=>{if(t!==void 0)return;let s=!1;const i=()=>{s||n(Ja())};return(async()=>(typeof document<"u"&&"fonts"in document&&await document.fonts.ready,i()))(),typeof document<"u"&&"fonts"in document&&document.fonts.addEventListener("loadingdone",i),()=>{s=!0,typeof document<"u"&&"fonts"in document&&document.fonts.removeEventListener("loadingdone",i)}},[t]);const o=t??r;return o===null?null:(0,a.jsx)(Lr.Provider,{value:o,children:e})},te=()=>{const e=(0,g.useContext)(Lr);if(e===null)throw new Error("useTextMeasurer must be used inside a <TextMeasurerProvider>.");return e},Ja=()=>{try{return new u.CachedTextMeasurer(new Tr)}catch{return new u.CachedTextMeasurer(new u.HeuristicTextMeasurer)}},Nr=(0,g.createContext)(null),Za=Nr.Provider,_a=null,Z=()=>(0,g.useContext)(Nr)??(_a??=Xr()),$a="_16vokpr0",es=(e,t)=>e.mapping.y!==void 0!=(t.mainAxis==="y"),ts=(e,t)=>{const r=(0,u.toPercent)(e?1-t:t);return e?{x1:"0%",y1:r,x2:"100%",y2:r}:{x1:r,y1:"0%",x2:r,y2:"100%"}},rs=(e,t)=>{const r=(0,u.getRuleDashPattern)(e,t);return r.length===0?{}:{strokeDasharray:r.join(" "),strokeLinecap:"round",...e==="dashed"?{strokeMiterlimit:16}:{}}},ns=(e,t)=>Be(e)&&Be(t)?`${e}: ${t}`:Be(e)?e:Be(t)?t:null,Be=e=>e!=null&&e.trim()!=="",Dr=Object.freeze({}),mt=(0,g.createContext)(Dr),os=({slots:e,children:t})=>(0,a.jsx)(mt.Provider,{value:e??Dr,children:t});function Y(e,t){const r=(0,g.useContext)(mt)[e];return r===void 0?t:typeof r=="object"&&ss(r)?r.render:r}function as(){const e=(0,g.useContext)(mt);return{measureAxis:e.AxisTicks?.measure,measureAxisLabel:e.AxisLabel?.measure,measureLegend:e.Legend?.measure,measureHeadline:e.Headline?.measure.measureHeadline,measureHeadlineItemWidths:e.Headline?.measure.measureHeadlineItemWidths}}function ss(e){return"render"in e&&"measure"in e}var is="_2qyyu60",ls=2,cs=12,us=12,Ht=1,Wt=2,ds=4,je=e=>(0,a.jsx)(Y("Swatch",Gr),{...e}),Gr=({shape:e,color:t,lineType:r="solid",width:n=cs,height:o=us,strokeWidth:s=ls})=>(0,a.jsx)("svg",{className:is,width:n,height:o,viewBox:`0 0 ${n} ${o}`,"aria-hidden":!0,"data-testid":"chart-swatch","data-shape":e,children:hs({shape:e,color:t,lineType:r,width:n,height:o,strokeWidth:s})}),hs=({shape:e,color:t,lineType:r,width:n,height:o,strokeWidth:s})=>{const i=gs(r,n);switch(e){case"square":return(0,a.jsx)("rect",{x:1,y:1,width:n-2,height:o-2,rx:2,fill:t});case"line":return(0,a.jsx)("line",{x1:i.x1,y1:o/2,x2:i.x2,y2:o/2,stroke:t,strokeWidth:s,strokeLinecap:i.linecap,strokeDasharray:i.dashArray});case"circle":{const l=(Math.min(n,o)-2)/2;return(0,a.jsx)("circle",{cx:n/2,cy:o/2,r:l,fill:t})}case"area":{const l=o/2-1;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("rect",{x:1,y:l,width:n-2,height:o-l-1,fill:t,opacity:.45}),(0,a.jsx)("line",{x1:i.x1,y1:l,x2:i.x2,y2:l,stroke:t,strokeWidth:s,strokeLinecap:i.linecap,strokeDasharray:i.dashArray})]})}case"slice":return(0,a.jsx)("path",{d:`M 0 ${o} L ${n} ${o} A ${n} ${o} 0 0 0 0 0 Z`,fill:t})}},gs=(e,t)=>e==="solid"?{x1:0,x2:t,dashArray:void 0,linecap:"round"}:e==="dashed"?{x1:0,x2:t,dashArray:`${(t-Ht*(Wt-1))/Wt} ${Ht}`,linecap:"butt"}:{x1:0,x2:t,dashArray:`1 ${t/(ds-1)}`,linecap:"round"},$=e=>({fontFamily:e.fontFamily??y.CHART_FONT_FAMILY,fontSize:e.fontSize,fontWeight:e.fontWeight}),vs=11.7,Vt=21.6,fs="0 0 10 18",ps="M2.48935 16.9323L9.07098 9.82964C9.51595 9.34944 9.51504 8.60728 9.0689 8.12818L2.48866 1.06172C1.85811 0.384586 0.974477 0 0.049217 0H0V18H0.0443689C0.972463 18 1.85854 17.6131 2.48935 16.9323Z",ms=({labelPosition:e,linePosition:t,color:r,pillWidth:n,pillHeight:o,text:s,shouldAnimateTransitions:i})=>{const l=e==="start",c=l?-13:-(n-13),h=l?c+n-5:c+5-12,d=l?void 0:`rotate(180 ${h+12/2} ${o/2})`,f=l?"0%":"100%",p=(0,u.toPercent)(1-t),v=(0,a.jsxs)("g",{transform:`translate(0, ${-o/2})`,pointerEvents:"none",children:[(0,a.jsx)("rect",{x:c,y:0,width:n,height:o,rx:6,fill:r}),(0,a.jsx)("g",{transform:d,children:(0,a.jsx)("svg",{x:h,y:(o-Vt)/2,width:12,height:Vt,viewBox:fs,overflow:"visible",children:(0,a.jsx)("path",{d:ps,fill:r})})}),(0,a.jsx)("g",{transform:`translate(${c+5}, ${o/2})`,children:s})]});return i?(0,a.jsx)(S.motion.svg,{initial:!1,transition:z,x:f,animate:{y:p},overflow:"visible",children:v}):(0,a.jsx)("svg",{x:f,y:p,overflow:"visible",children:v})},xs=({labelPosition:e,linePosition:t,color:r,pillWidth:n,pillHeight:o,text:s,shouldAnimateTransitions:i})=>{const l=e==="start",c=l?-13:-(o-13),h=(0,u.toPercent)(t),d=l?"100%":"0%",f=(0,a.jsxs)("g",{transform:`translate(${-n/2}, 0)`,pointerEvents:"none",children:[(0,a.jsx)("rect",{x:0,y:c,width:n,height:o,rx:6,fill:r}),(0,a.jsx)("g",{transform:`translate(5, ${c+o/2})`,children:s})]});return i?(0,a.jsx)(S.motion.svg,{initial:!1,transition:z,y:d,animate:{x:h},overflow:"visible",children:f}):(0,a.jsx)("svg",{x:h,y:d,overflow:"visible",children:f})},ys=({label:e,textStyle:t,textWidth:r,labelPosition:n,isHorizontalLine:o,position:s,color:i,textColor:l,symbolShape:c,symbolColor:h,shouldAnimateTransitions:d})=>{const f=c===null?0:14,p=r+f+10,v=Math.max(vs,(0,u.computeLineBoxHeight)(t))+10,m=(0,a.jsxs)(a.Fragment,{children:[c!==null&&h!==null&&(0,a.jsx)("g",{transform:`translate(0, ${-10/2})`,children:(0,a.jsx)(je,{shape:c,color:h,surface:"rule-label",width:10,height:10})}),(0,a.jsx)("text",{x:f,textAnchor:"start",dominantBaseline:"central",fill:l,style:$(t),children:e})]});return o?(0,a.jsx)(ms,{labelPosition:n,linePosition:s,color:i,pillWidth:p,pillHeight:v,text:m,shouldAnimateTransitions:d}):(0,a.jsx)(xs,{labelPosition:n,linePosition:s,color:i,pillWidth:p,pillHeight:v,text:m,shouldAnimateTransitions:d})},As=({strokeWidth:e,lineType:t,isHorizontalLine:r,position:n,lineColor:o,shouldAnimateTransitions:s})=>{const i=ts(r,n),l=rs(t,e);return s?(0,a.jsx)(S.motion.line,{initial:!1,transition:z,animate:{x1:i.x1,y1:i.y1,x2:i.x2,y2:i.y2},...l,stroke:o,strokeWidth:e,vectorEffect:"non-scaling-stroke"}):(0,a.jsx)("line",{...i,...l,stroke:o,strokeWidth:e,vectorEffect:"non-scaling-stroke"})},bs=(0,g.memo)(function({layer:t,coordSystem:r,formattingLocale:n,shouldAnimateTransitions:o}){const s=te(),i=Z(),{guides:l,numberFormat:c,layers:h,colorScale:d}=P((0,G.useShallow)(B=>({guides:B.guides,numberFormat:B.config.numberFormat,layers:B.spec.layers,colorScale:B.scales.color}))),f=(0,g.useMemo)(()=>(0,u.buildAverageLineSymbols)(h,d).get(t.id)??null,[h,d,t.id]),p=f?i(f.geom,r.type)?.swatchShape??"square":null,v=(0,g.useMemo)(()=>ns(t.params.label,(0,u.formatRuleValue)({guides:l,numberFormat:c,layer:t,locale:n})),[l,c,n,t]),{fonts:m}=oe(),A=Ya(t.id),x=(0,g.useMemo)(()=>(0,u.toFontSpec)(A,m.familyDefault),[A,m.familyDefault]),b=(0,g.useMemo)(()=>v===null?0:s.measureText(v,x).width,[v,x,s]),j=k(t),w=t.data.getFirst();if(!w)return null;const C=j.get("color",w),M=(0,u.pickReadableTextColor)(C),R=es(t,r),E=R?(0,u.getY)(w):(0,u.getX)(w);return E===null?null:(0,a.jsxs)("g",{"data-geom":"rule",className:$a,children:[(0,a.jsx)(As,{strokeWidth:j.get("strokeWidth",w),lineType:j.get("lineType",w),isHorizontalLine:R,position:E,lineColor:C,shouldAnimateTransitions:o}),v!==null&&(0,a.jsx)(ys,{label:v,textStyle:A,textWidth:b,labelPosition:t.params.labelPosition,isHorizontalLine:R,position:E,color:C,textColor:M,symbolShape:p,symbolColor:f?.color??null,shouldAnimateTransitions:o})]})}),js={geom:"rule",coord:"cartesian",render:({layer:e,coordSystem:t,formattingLocale:r,shouldAnimateTransitions:n})=>(0,a.jsx)(bs,{layer:e,coordSystem:t,formattingLocale:r,shouldAnimateTransitions:n}),renderHover:()=>null,renderHoverCompanions:()=>null},ws=(0,g.memo)(function({layer:t,shouldAnimateTransitions:r,intro:n}){const o=n?.type==="fade"?n:null,s=k(t),i=(0,g.useMemo)(()=>{const l=(0,u.createStableCellKeyGenerator)(t.data,t.mapping,t.id),c=[];for(const h of t.data){const d=(0,u.getInsetTileRect)(h);d&&(0,u.getColor)(h)&&c.push({key:l(h),...d,fill:s.get("color",h),opacity:s.get("alpha",h)})}return c.map(({key:h,...d})=>(0,a.jsx)(Ss,{...d,isAnimated:r},h))},[t,s,r]);return o?(0,a.jsx)(S.motion.g,{initial:{opacity:0},animate:{opacity:1},transition:zo(o),children:i}):i}),Ss=({isAnimated:e,...t})=>e?(0,a.jsx)(S.motion.rect,{initial:!1,style:{transformBox:"view-box"},transition:z,fill:t.fill,opacity:t.opacity,rx:8,animate:{x:(0,u.toPercent)(t.x),y:(0,u.toPercent)(t.y),width:(0,u.toPercent)(t.width),height:(0,u.toPercent)(t.height)}}):(0,a.jsx)("rect",{style:{transformBox:"view-box"},x:(0,u.toPercent)(t.x),y:(0,u.toPercent)(t.y),width:(0,u.toPercent)(t.width),height:(0,u.toPercent)(t.height),fill:t.fill,opacity:t.opacity,rx:8}),xe=2,Ps=({layer:e,primary:t,panelRect:r})=>{const n=k(e),o=(0,u.getInsetTileRect)(t.observation);if(!o||!(0,u.getColor)(t.observation))return null;const s=n.get("color",t.observation),i=n.get("alpha",t.observation),l=n.get("borderColor",t.observation,"hovered")??u.DEFAULT_HOVER_AFFORDANCE_COLOR,c=o.x*r.width,h=o.y*r.height,d=o.width*r.width,f=o.height*r.height;return(0,a.jsxs)("g",{"data-testid":"hovered-tile",children:[(0,a.jsx)("rect",{x:c-xe,y:h-xe,width:d+xe*2,height:f+xe*2,rx:8+xe,fill:l,"data-testid":"hovered-tile-border"}),(0,a.jsx)("rect",{x:(0,u.toPercent)(o.x),y:(0,u.toPercent)(o.y),width:(0,u.toPercent)(o.width),height:(0,u.toPercent)(o.height),rx:8,fill:s,opacity:i,"data-testid":"hovered-tile-fill"})]})},Rs={geom:"tile",coord:"cartesian",swatchShape:"square",guideMode:null,render:({layer:e,shouldAnimateTransitions:t,intro:r})=>(0,a.jsx)(ws,{layer:e,shouldAnimateTransitions:t,intro:r}),renderHover:({layer:e,primary:t,panelRect:r})=>(0,a.jsx)(Ps,{layer:e,primary:t,panelRect:r}),renderHoverCompanions:()=>null},Ne=({primary:e,companions:t})=>{const r=(0,a.jsxs)(a.Fragment,{children:[t.map(n=>(0,a.jsx)(ee,{hit:n,project:Q},`companion-${n.layerId}-${n.pointIndex}`)),e?(0,a.jsx)(de,{hit:e,project:Q}):null]});return e?(0,a.jsx)("g",{"data-testid":"hovered-point",children:r}):r},it=e=>{const[t,...r]=e;if(!t)return"";const n=r.map(o=>`L ${o.x} ${o.y}`).join(" ");return`M ${t.x} ${t.y} ${n} Z`},Cs=(0,g.memo)(function({layer:t}){const r=k(t),n=(0,g.useMemo)(()=>{const o=(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id),s=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(i=>{const l=[...i],c=Hr(l);if(!c)return;const h=l[0];h&&s.push({key:o(h),fillPath:c.fillPath,outlinePath:c.outlinePath,color:r.get("color",h),fillOpacity:r.get("alpha",h),strokeOpacity:r.get("strokeAlpha",h),strokeWidth:r.get("strokeWidth",h)})}),s},[t.data,t.id,t.mapping,r]);return(0,a.jsx)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"area",className:U,children:n.map(o=>(0,a.jsxs)("g",{children:[(0,a.jsx)("path",{d:o.fillPath,fill:o.color,fillOpacity:o.fillOpacity,fillRule:"evenodd"}),(0,a.jsx)("path",{d:o.outlinePath,fill:"none",stroke:o.color,strokeWidth:o.strokeWidth,opacity:o.strokeOpacity,vectorEffect:"non-scaling-stroke"})]},o.key))})}),Hr=e=>{const t=[];for(const s of e){const i=(0,u.getX)(s),{innerRadius:l,outerRadius:c}=(0,u.getRadiusExtent)(s);i===null||l===null||c===null||t.push({angle:i,outer:V(i,c),inner:V(i,l)})}if(t.length===0)return null;t.sort((s,i)=>s.angle-i.angle);const r=t.map(s=>s.outer),n=t.map(s=>s.inner),o=it(r);return{fillPath:n.some(s=>s.x!==0||s.y!==0)?`${o} ${it([...n].reverse())}`:o,outlinePath:o}},Es=({layer:e,primary:t,companions:r})=>{const n=k(e),o=(0,u.getGroup)(t.observation),s=(0,g.useMemo)(()=>Hr([...e.data.filter(u.GROUP_VARIABLES.group,"eq",o)]),[e.data,o]);if(!s)return null;const i=n.get("color",t.observation),l=n.get("alpha",t.observation),c=n.get("strokeAlpha",t.observation),h=n.get("strokeWidth",t.observation);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"area","data-testid":"hovered-area",className:U,children:[(0,a.jsx)("path",{d:s.fillPath,fill:i,fillOpacity:l,fillRule:"evenodd","data-testid":"hovered-area-fill"}),(0,a.jsx)("path",{d:s.outlinePath,fill:"none",stroke:i,strokeWidth:h,opacity:c,vectorEffect:"non-scaling-stroke","data-testid":"hovered-area-edge"})]}),r.map(d=>(0,a.jsx)(ee,{hit:d,project:Q},`companion-${d.layerId}-${d.pointIndex}`)),(0,a.jsx)(de,{hit:t,project:Q,"data-testid":"hovered-area-point"})]})},ks={geom:"area",coord:"polar",swatchShape:"area",guideMode:"crosshair",render:({layer:e})=>(0,a.jsx)(Cs,{layer:e}),renderHover:({layer:e,primary:t,group:r,related:n})=>(0,a.jsx)(Es,{layer:e,primary:t,companions:[...r,...n]}),renderHoverCompanions:({related:e})=>(0,a.jsx)(Ne,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=(0,u.getX)(e),r=(0,u.getYMax)(e)??(0,u.getY)(e);if(t===null||r===null)return null;const{x:n,y:o}=Q(t,r);return{x:n,y:1-o}}},ye=(e,t)=>({stroke:e,strokeWidth:t,vectorEffect:"non-scaling-stroke"}),Bs=(0,g.memo)(function({layer:t,coordSystem:r,shouldAnimateTransitions:n,intro:o}){const s=(0,g.useId)(),i=We(o?.type==="grow"&&(o.growAxis==="angle"||o.growAxis==="radius")?o:null,n),l=r.bandAxis!=="x",c=k(t),h=(0,g.useMemo)(()=>{const d=(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id),f=new Map;for(const p of t.data){const v=d(p),{startAngle:m,endAngle:A}=(0,u.getAngleExtent)(p),{innerRadius:x,outerRadius:b}=(0,u.getRadiusExtent)(p);if(m===null||A===null||x===null||b===null)continue;const j={key:v,startAngle:m,endAngle:A,innerRadius:x,outerRadius:b,fill:c.get("color",p),opacity:c.get("alpha",p)},w=(0,u.buildSliceGroupKey)(r.bandAxis,j),C=f.get(w);C?C.items.push(j):f.set(w,{items:[j],style:he(c,p)})}return[...f.values()].map(({items:p,style:v},m)=>({key:p[0]?.key??String(m),items:p,union:(0,u.getUnionExtent)(p),style:v}))},[t.data,t.mapping,t.id,r.bandAxis,c]);return(0,a.jsx)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"bar",className:U,children:h.map((d,f)=>{const{borderColor:p,borderWidth:v,borderRadius:m,borderAlpha:A}=d.style,x=p!==void 0,b=(0,u.resolveBarBorderTreatment)(v),j=p===void 0?{}:ye(p,b.separatorWidth),w=p===void 0?void 0:ye(p,b.outlineWidth),C=d.items.map(B=>{const{key:T,...D}=B;return i.isAnimated?(0,a.jsx)(Is,{...D,animation:i,sweepsInOnLateMount:l,introKey:T,pathProps:{fill:D.fill,opacity:D.opacity,...j}},T):(0,a.jsx)("path",{d:(0,u.buildPolarBarArcPath)(D)??void 0,fill:D.fill,opacity:D.opacity,...j},T)}),M=(0,u.resolvePolarBarCornerRadiusUnit)(m,d.union.outerRadius-d.union.innerRadius);if(!x&&M<=0)return(0,a.jsx)(g.Fragment,{children:C},d.key);const R=`${s}${f}`;if(i.isAnimated)return(0,a.jsx)("g",{clipPath:`url(#${R})`,children:(0,a.jsx)(Ms,{...d.union,cornerRadius:M,animation:i,sweepsInOnLateMount:l,introKey:d.items[0]?.key,clipId:R,outlineProps:w,outlineOpacity:A,children:C})},d.key);const E=(0,u.buildPolarBarArcPath)({...d.union,cornerRadius:M});return(0,a.jsxs)("g",{clipPath:`url(#${R})`,children:[(0,a.jsx)("clipPath",{id:R,children:(0,a.jsx)("path",{d:E})}),C,w!==void 0&&(0,a.jsx)("path",{d:E,fill:"none",opacity:A,...w})]},d.key)})})}),Wr=({startAngle:e,endAngle:t,innerRadius:r,outerRadius:n,cornerRadius:o,animation:s,sweepsInOnLateMount:i,introKey:l})=>{const c=s.activeIntro?.growAxis==="angle"?s.activeIntro:null,h=s.activeIntro?.growAxis==="radius"?s.activeIntro:null,d=i&&!s.isLayerEntrance,f=c?.baseline??(d?u.TAU:e),p=c?.baseline??(d?u.TAU:t),v=h?h.baseline:r,m=h?h.baseline:n,A=(0,S.useMotionValue)(f),x=(0,S.useMotionValue)(p),b=(0,S.useMotionValue)(v),j=(0,S.useMotionValue)(m),w=(0,S.useMotionValue)((0,u.buildPolarBarArcPath)({startAngle:f,endAngle:p,innerRadius:v,outerRadius:m,cornerRadius:o})??""),C=st(s,l,c);(0,g.useEffect)(()=>{const R=C(),E=[(0,S.animate)(A,e,R),(0,S.animate)(x,t,R)];return()=>{for(const B of E)B.stop()}},[A,x,e,t,C]);const M=st(s,l,h);return(0,g.useEffect)(()=>{const R=M(),E=[(0,S.animate)(b,r,R),(0,S.animate)(j,n,R)];return()=>{for(const B of E)B.stop()}},[b,j,r,n,M]),(0,g.useEffect)(()=>{const R=()=>{w.set((0,u.buildPolarBarArcPath)({startAngle:A.get(),endAngle:x.get(),innerRadius:b.get(),outerRadius:j.get(),cornerRadius:o})??"")};R();const E=[A,x,b,j].map(B=>B.on("change",R));return()=>{for(const B of E)B()}},[A,x,b,j,o,w]),w},Is=({pathProps:e,...t})=>{const r=Wr(t);return(0,a.jsx)(S.motion.path,{d:r,transition:z,...e})},Ms=({clipId:e,outlineProps:t,outlineOpacity:r,children:n,...o})=>{const s=Wr(o);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("clipPath",{id:e,children:(0,a.jsx)(S.motion.path,{d:s})}),n,t!==void 0&&(0,a.jsx)(S.motion.path,{d:s,fill:"none",opacity:r,transition:z,...t})]})},Ts=(e,t)=>{const r=e==="solo"||e==="floor",n=e==="solo"||e==="ceiling";return t==="x"?{innerArc:r,outerArc:n,startSpoke:!0,endSpoke:!0}:{innerArc:!0,outerArc:!0,startSpoke:r,endSpoke:n}},Vr=(e,t,r)=>{const n=new Map;for(const s of e.data){const i=Yr(s);if(i===null)continue;const l=(0,u.buildSliceGroupKey)(t,i),c=n.get(l);c===void 0?n.set(l,{firstObservation:s,innerRadius:i.innerRadius,outerRadius:i.outerRadius}):(c.innerRadius=Math.min(c.innerRadius,i.innerRadius),c.outerRadius=Math.max(c.outerRadius,i.outerRadius))}const o=new Map;for(const[s,{firstObservation:i,innerRadius:l,outerRadius:c}]of n)o.set(s,{style:he(r,i),radialSpan:c-l});return o},Ur=(e,t,r,n)=>{const o=Yr(n),s=o===null?void 0:e.get((0,u.buildSliceGroupKey)(t,o));return s!==void 0?s:{style:he(r,n),radialSpan:o===null?0:o.outerRadius-o.innerRadius}},Kr=({observation:e,bandAxis:t,styleReaders:r,group:n})=>{const o=(0,g.useId)(),s=(0,g.useId)(),{startAngle:i,endAngle:l}=(0,u.getAngleExtent)(e),{innerRadius:c,outerRadius:h}=(0,u.getRadiusExtent)(e);if(i===null||l===null||c===null||h===null)return null;const d={startAngle:i,endAngle:l,innerRadius:c,outerRadius:h},f=(0,u.buildPolarBarArcPath)(d);if(f===void 0)return null;const p=r.get("color",e),v=r.get("alpha",e),{borderColor:m,borderWidth:A,borderRadius:x,borderAlpha:b}=n.style,j=(0,u.resolvePolarBarCornerRadiusUnit)(x,n.radialSpan),w=j>0;if(m===void 0&&!w)return(0,a.jsx)("path",{d:f,fill:p,opacity:v,"data-testid":"arc-segment"});const C=Ts((0,u.getStackRole)(e),t),M=w?(0,u.buildPolarBarArcPath)({...Ls(d,C,j),cornerRadius:j})??f:f,R=m===void 0?null:{color:m,...(0,u.resolveBarBorderTreatment)(A)},E=R===null?"":Yt(d,Fs(C));return(0,a.jsxs)("g",{clipPath:`url(#${o})`,"data-testid":"arc-segment",children:[(0,a.jsx)("clipPath",{id:o,children:(0,a.jsx)("path",{d:f})}),(0,a.jsx)("path",{d:M,fill:p,opacity:v}),R!==null&&E!==""&&(0,a.jsx)("path",{d:E,fill:"none",opacity:v,...ye(R.color,R.separatorWidth)}),R!==null&&(w?(0,a.jsxs)("g",{clipPath:`url(#${s})`,children:[(0,a.jsx)("clipPath",{id:s,children:(0,a.jsx)("path",{d:M})}),(0,a.jsx)("path",{d:M,fill:"none",opacity:b,...ye(R.color,R.outlineWidth)})]}):(0,a.jsx)("path",{d:Yt(d,C),fill:"none",opacity:b,...ye(R.color,R.outlineWidth)}))]})},Os=({layer:e,sourceLayer:t,coordSystem:r})=>{const n=k(t),o=(0,g.useMemo)(()=>Vr(t,r.bandAxis,n),[t,r.bandAxis,n]),s=(0,u.createStableKeyGenerator)(e.data,e.mapping,e.id),i=[];for(const l of e.data)i.push((0,a.jsx)(Kr,{observation:l,bandAxis:r.bandAxis,styleReaders:n,group:Ur(o,r.bandAxis,n,l)},s(l)));return(0,a.jsx)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"bar",className:U,children:i})},Ls=(e,t,r)=>{let{startAngle:n,endAngle:o,innerRadius:s,outerRadius:i}=e;t.innerArc||(s=Math.max(0,s-r)),t.outerArc||(i=i+r);const l=Math.max(s,r),c=l>0?r/l:0,h=Math.sign(o-n)||1;return t.startSpoke||(n-=c*h),t.endSpoke||(o+=c*h),{startAngle:n,endAngle:o,innerRadius:s,outerRadius:i}},Yr=e=>{const{startAngle:t,endAngle:r}=(0,u.getAngleExtent)(e),{innerRadius:n,outerRadius:o}=(0,u.getRadiusExtent)(e);return t===null||r===null||n===null||o===null?null:{startAngle:t,endAngle:r,innerRadius:n,outerRadius:o}},Ae=(e,t)=>{const r=V(t,e);return`${r.x},${r.y}`},Ut=(e,t,r)=>{if(e<=0)return"";const n=Ae(e,t);if((0,u.isFullTurnSweep)(t,r))return`M${n}A${e},${e} 0 1 1 ${Ae(e,t+Math.PI)}A${e},${e} 0 1 1 ${n}`;const o=r-t;return`M${n}A${e},${e} 0 ${Math.abs(o)>Math.PI?1:0} ${o>=0?1:0} ${Ae(e,r)}`},Kt=(e,t,r)=>`M${Ae(t,e)}L${Ae(r,e)}`,Yt=(e,t)=>{const{startAngle:r,endAngle:n,innerRadius:o,outerRadius:s}=e,i=(0,u.isFullTurnSweep)(r,n);return[t.innerArc?Ut(o,r,n):"",t.outerArc?Ut(s,r,n):"",t.startSpoke&&!i?Kt(r,o,s):"",t.endSpoke&&!i?Kt(n,o,s):""].filter(Boolean).join("")},Fs=e=>({innerArc:!e.innerArc,outerArc:!e.outerArc,startSpoke:!e.startSpoke,endSpoke:!e.endSpoke}),Ns=({layer:e,coordSystem:t,primary:r})=>{const n=k(e),o=Ur((0,g.useMemo)(()=>Vr(e,t.bandAxis,n),[e,t.bandAxis,n]),t.bandAxis,n,r.observation);return(0,a.jsx)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"arc","data-testid":"hovered-arc",className:U,children:(0,a.jsx)(Kr,{observation:r.observation,bandAxis:t.bandAxis,styleReaders:n,group:o})})},Ds={geom:"bar",coord:"polar",swatchShape:"slice",guideMode:"band",render:({layer:e,coordSystem:t,shouldAnimateTransitions:r,intro:n})=>(0,a.jsx)(Bs,{layer:e,coordSystem:t,shouldAnimateTransitions:r,intro:n}),renderHighlight:({layer:e,sourceLayer:t,coordSystem:r})=>(0,a.jsx)(Os,{layer:e,sourceLayer:t,coordSystem:r}),renderHover:({layer:e,coordSystem:t,primary:r})=>(0,a.jsx)(Ns,{layer:e,coordSystem:t,primary:r}),renderHoverCompanions:()=>null},Gs=(0,g.memo)(function({layer:t}){const r=k(t),n=(0,g.useMemo)(()=>{const o=(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id),s=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(i=>{const l=[...i],c=Qr(l);if(!c)return;const h=l[0];h&&s.push({key:o(h),pathData:c,color:r.get("color",h),opacity:r.get("alpha",h),strokeWidth:r.get("strokeWidth",h),strokeDasharray:(0,u.getDashArray)(r.get("lineType",h))})}),s},[t.data,t.id,t.mapping,r]);return(0,a.jsx)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"line",className:U,children:n.map(o=>(0,a.jsx)("path",{d:o.pathData,fill:"none",stroke:o.color,strokeWidth:o.strokeWidth,opacity:o.opacity,strokeDasharray:o.strokeDasharray,vectorEffect:"non-scaling-stroke"},o.key))})}),Qr=e=>{const t=[];for(const r of e){const n=(0,u.getX)(r),o=(0,u.getY)(r);n===null||o===null||t.push({angle:n,point:V(n,o)})}return t.length===0?null:(t.sort((r,n)=>r.angle-n.angle),it(t.map(r=>r.point)))},Hs=({layer:e,primary:t,companions:r})=>{const n=k(e),o=(0,u.getGroup)(t.observation),s=(0,g.useMemo)(()=>Qr([...e.data.filter(u.GROUP_VARIABLES.group,"eq",o)]),[e.data,o]);if(!s)return null;const i=n.get("color",t.observation),l=n.get("alpha",t.observation),c=n.get("strokeWidth",t.observation),h=(0,u.getDashArray)(n.get("lineType",t.observation));return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"line","data-testid":"hovered-line",className:U,children:(0,a.jsx)("path",{d:s,fill:"none",stroke:i,strokeWidth:c,opacity:l,strokeDasharray:h,vectorEffect:"non-scaling-stroke","data-testid":"hovered-line-path"})}),r.map(d=>(0,a.jsx)(ee,{hit:d,project:Q},`companion-${d.layerId}-${d.pointIndex}`)),(0,a.jsx)(de,{hit:t,project:Q,"data-testid":"hovered-line-point"})]})},Ws={geom:"line",coord:"polar",swatchShape:"line",guideMode:"crosshair",render:({layer:e})=>(0,a.jsx)(Gs,{layer:e}),renderHover:({layer:e,primary:t,group:r,related:n})=>(0,a.jsx)(Hs,{layer:e,primary:t,companions:[...r,...n]}),renderHoverCompanions:({related:e})=>(0,a.jsx)(Ne,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=(0,u.getX)(e),r=(0,u.getY)(e);if(t===null||r===null)return null;const{x:n,y:o}=Q(t,r);return{x:n,y:1-o}}},Vs=(0,g.memo)(function({layer:t,shouldAnimateTransitions:r,intro:n}){const o=k(t),s=We(n?.type==="grow"&&n.growAxis==="size"?n:null,r);return(0,g.useMemo)(()=>{const i=s.activeIntro?(0,u.createStableKeyGenerator)(t.data,t.mapping,t.id):null,l=[];let c=0;for(const h of t.data)l.push((0,a.jsx)(mr,{observation:h,project:Q,styleReaders:o,animation:s,introKey:i?.(h)},String(c++)));return l},[t.data,t.mapping,t.id,o,s])}),Us={geom:"point",coord:"polar",swatchShape:"circle",render:({layer:e,shouldAnimateTransitions:t,intro:r})=>(0,a.jsx)(Vs,{layer:e,shouldAnimateTransitions:t,intro:r}),renderHover:({primary:e,group:t,related:r})=>(0,a.jsx)(Ne,{primary:e,companions:[...t,...r]}),renderHoverCompanions:({related:e})=>(0,a.jsx)(Ne,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=(0,u.getX)(e),r=(0,u.getY)(e);if(t===null||r===null)return null;const{x:n,y:o}=Q(t,r);return{x:n,y:1-o}}},zr={bar:{cartesian:pa,polar:Ds},line:{cartesian:ja,polar:Ws},area:{cartesian:sa,polar:ks},point:{cartesian:Sa,polar:Us},rule:{cartesian:js},tile:{cartesian:Rs}};function Ve(e){return typeof e=="function"?{overlay:!1,fn:e}:{overlay:!0,fn:e.fn}}function qr(e){return e?Ve(e.render).overlay:!1}function Ks(e,t){return typeof e=="string"?{...t,geom:e}:{...t,definition:e,geom:e.type}}function Xr(e=[]){const t={};for(const[r,n]of Object.entries(zr))t[r]={...n};for(const r of e)(t[r.geom]??={})[r.coord]=r;return(r,n)=>t[r]?.[n]??null}var De=e=>{const t=(0,g.useRef)(e);return t.current=e,t},Ys=()=>{const e=new Map;return(0,sr.createStore)(t=>({hover:u.RESTING_HOVER_STATE,tooltipAnchor:null,pointerRegions:[],isPointerSuspended:!1,setHoverState:r=>t(n=>n.hover===r?n:{hover:r}),setTooltipAnchor:r=>t(n=>Qs(n.tooltipAnchor,r)?n:{tooltipAnchor:r}),publishPointerRegions:(r,n)=>{n.length===0?e.delete(r):e.set(r,n);const o=(0,u.orderPointerRegions)(e);t(s=>(0,u.arePointerRegionListsEqual)(s.pointerRegions,o)?s:{pointerRegions:o})},setPointerSuspended:r=>t(n=>n.isPointerSuspended===r?n:{isPointerSuspended:r})}))},Qs=(e,t)=>e===t?!0:e===null||t===null?!1:e.x===t.x&&e.y===t.y&&e.placement===t.placement&&e.annotationId===t.annotationId,zs=(e,t)=>{const r=(0,g.useMemo)(()=>({layers:e,coordSystem:t}),[e,t]),n=(0,g.useRef)(null);n.current===null&&(n.current=new u.HoverEngine(r));const o=n.current,s=(0,g.useRef)(!1);return(0,g.useEffect)(()=>{if(!s.current){s.current=!0;return}o.update(r)},[o,r]),o},Jr=(0,g.createContext)(null),Zr=({children:e})=>{const{layers:t,coordSystem:r}=P((0,G.useShallow)(l=>({layers:l.layers,coordSystem:l.coordSystem}))),n=zs(t,r),[o]=(0,g.useState)(()=>Ys()),s=(0,g.useRef)(null),i=(0,g.useRef)(null);return i.current===null&&(i.current={engine:n,store:o,overlayRef:s}),(0,a.jsx)(Jr.Provider,{value:i.current,children:e})},re=()=>{const e=(0,g.useContext)(Jr);if(e===null)throw new Error("useHoverContext must be used inside a <HoverProvider>.");return e};function _r(e,t){const{engine:r}=re(),n=(0,g.useRef)(t);(0,g.useEffect)(()=>{n.current=t},[t]),(0,g.useEffect)(()=>(r.registerHitTester(e,o=>n.current(o)),()=>r.unregisterHitTester(e)),[r,e])}var qs=({hitTest:e,input:t})=>{const r=(0,g.useMemo)(()=>e(t),[e,t.layer.data]);return _r(t.layer.id,r),null},Xs="graphy_root",xt=()=>typeof document>"u"?null:document.getElementById(Xs)??document.body,Js="_10igzta0",$r=({rect:e,zIndex:t,container:r,boxRef:n,children:o,...s})=>r===null?null:(0,ir.createPortal)((0,a.jsx)("div",{...s,ref:n,className:Js,style:{transform:`translate(${e.left}px, ${e.top}px)`,width:e.width,height:e.height,zIndex:t},children:o}),r),Zs=({rect:e,children:t})=>{const[r]=(0,g.useState)(xt);return(0,a.jsx)($r,{rect:e,zIndex:ie.panelOverlay,container:r,children:t})},en=(e,t)=>{const r=De(e),n=De(t),o=(0,g.useRef)(null),s=(0,g.useRef)(null),i=(0,g.useMemo)(()=>{const l=()=>{s.current!==null&&(clearTimeout(s.current),s.current=null),o.current=null},c=()=>{s.current!==null&&(clearTimeout(s.current),s.current=null);const d=o.current;d!==null&&(o.current=null,r.current(...d))};return{run:(...d)=>{if(n.current<=0){r.current(...d);return}o.current=d,s.current!==null&&clearTimeout(s.current),s.current=setTimeout(c,n.current)},flush:c,cancel:l}},[r,n]);return(0,g.useEffect)(()=>()=>{s.current!==null&&clearTimeout(s.current)},[]),i},_s={width:0,height:0,isDefault:!0},tn=({debounce:e=0,onResize:t}={})=>{const[r,n]=(0,g.useState)(_s),o=(0,g.useRef)(null),s=en(h=>{const d=o.current;d&&d.width===h.width&&d.height===h.height||(o.current={width:h.width,height:h.height},t?.(h),n(h))},e),i=(0,g.useRef)(null),l=(0,g.useRef)(null),c=(0,g.useCallback)(h=>{i.current!==h&&(i.current&&l.current?.unobserve(i.current),i.current=h,h&&(l.current??=new ResizeObserver(([d])=>{if(!d)return;const f=Math.round(d.contentBoxSize[0]?.inlineSize??d.contentRect.width),p=Math.round(d.contentBoxSize[0]?.blockSize??d.contentRect.height);s.run({width:f,height:p,isDefault:!1})}),l.current.observe(h)))},[s]);return{...r,setElement:c}};function rn(){const[e,t]=(0,g.useState)(null),r=(0,g.useRef)(null),n=(0,g.useRef)(null),o=(0,g.useRef)(null),s=(0,g.useCallback)(()=>{o.current=null;const h=n.current;if(!h)return;const d=h.getBoundingClientRect();if(d.width===0||d.height===0){r.current!==null&&(r.current=null,t(null));return}const f={left:d.left,top:d.top,width:d.width,height:d.height},p=r.current;p&&p.left===f.left&&p.top===f.top&&p.width===f.width&&p.height===f.height||(r.current=f,t(f))},[]),i=(0,g.useCallback)(()=>{o.current===null&&(o.current=requestAnimationFrame(s))},[s]),{setElement:l}=tn({onResize:i}),c=(0,g.useCallback)(h=>{n.current=h,l(h),h&&s()},[l,s]);return(0,g.useEffect)(()=>(window.addEventListener("scroll",i,!0),window.addEventListener("resize",i),()=>{window.removeEventListener("scroll",i,!0),window.removeEventListener("resize",i),o.current!==null&&cancelAnimationFrame(o.current)}),[i]),{measureRef:c,screenRect:e}}function nn(e){const{engine:t,store:r}=re();return(0,g.useCallback)((n,o)=>{const{hover:s,setHoverState:i,setTooltipAnchor:l}=r.getState(),c=n===null?u.RESTING_HOVER_STATE:t.resolveHoverByKey(e,n);if(c.primary===null){s.primary?.layerId===e&&(i(u.RESTING_HOVER_STATE),l(null));return}i(c),l(o?{x:o.clientX,y:o.clientY,placement:"top"}:null)},[t,r,e])}var $s=({render:e,input:t})=>{const r=nn(t.layer.id),{measureRef:n,screenRect:o}=rn();return(0,g.useEffect)(()=>()=>r(null),[r]),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("rect",{ref:n,x:0,y:0,width:"100%",height:"100%",fill:"none",pointerEvents:"none"}),o&&(0,a.jsx)(Zs,{rect:o,children:(0,a.jsx)(ei,{render:e,input:t,pushHover:r,panelRect:o})})]})},ei=({render:e,input:t,pushHover:r,panelRect:n})=>e({...t,overlay:{pushHover:r,panelRect:n}}),Ge={enabled:!0,durationScale:1,stagger:!0,staggerOrder:"main-axis",maxAnimatedGeoms:1500},ti=(e,t)=>t?{intro:{...Ge,enabled:!1},transitions:!1}:typeof e=="boolean"?{intro:{...Ge,enabled:e},transitions:e}:{intro:ri(e?.intro),transitions:e?.transitions??!0},ri=e=>typeof e=="boolean"?{...Ge,enabled:e}:(0,ot.default)({},Ge,e),ni={loading:"جاري التحميل",error:"حدث خطأ ما",axisLabels:{placeholder:"إضافة تسمية"},defaultPropertyLabels:{date:"التاريخ",year:"السنة",quarter:"الربع",month:"الشهر",week:"الأسبوع",series:"السلسلة",category:"الفئة",columnNumber:({number:e})=>`العمود ${e}`,rowNumber:({number:e})=>`الصف ${e}`,seriesNumber:({number:e})=>`السلسلة ${e}`},trendComparison:{fromPrevious:{long:({value:e})=>`${e} مقابل السابق`,short:({value:e})=>`${e} مقابل السابق`},fromPreviousYear:{long:({value:e})=>`${e} مقابل السنة السابقة`,short:({value:e})=>`${e} مقابل السنة السابقة`},fromPreviousMonth:{long:({value:e})=>`${e} مقابل الشهر السابق`,short:({value:e})=>`${e} مقابل الشهر السابق`},fromPreviousWeek:{long:({value:e})=>`${e} مقابل الأسبوع السابق`,short:({value:e})=>`${e} مقابل الأسبوع السابق`},fromPreviousDay:{long:({value:e})=>`${e} مقابل اليوم السابق`,short:({value:e})=>`${e} مقابل اليوم السابق`},fromPreviousHour:{long:({value:e})=>`${e} مقابل الساعة السابقة`,short:({value:e})=>`${e} مقابل الساعة السابقة`}},headlineMetrics:{averageLong:({value:e})=>`المتوسط ${e}`,averageShort:({value:e})=>`المتوسط ${e}`,total:({value:e})=>`المجموع ${e}`,totalConversionRate:({value:e})=>`معدل التحويل الإجمالي ${e}`,current:({value:e})=>e,comparisonReference:({value:e})=>`من ${e}`},legend:{hiddenItems:"عناصر وسيلة الإيضاح المخفية"}},oi={graph:ni,dir:"rtl"},ai={loading:"Loading",error:"Something went wrong",axisLabels:{placeholder:"Add label"},defaultPropertyLabels:{date:"Date",year:"Year",quarter:"Quarter",month:"Month",week:"Week",series:"Series",category:"Category",columnNumber:({number:e})=>`Column ${e}`,rowNumber:({number:e})=>`Row ${e}`,seriesNumber:({number:e})=>`Series ${e}`},trendComparison:{fromPrevious:{long:({value:e})=>`${e} vs previous`,short:({value:e})=>`${e} vs prev`},fromPreviousYear:{long:({value:e})=>`${e} vs previous year`,short:({value:e})=>`${e} vs prev year`},fromPreviousMonth:{long:({value:e})=>`${e} vs previous month`,short:({value:e})=>`${e} vs prev month`},fromPreviousWeek:{long:({value:e})=>`${e} vs previous week`,short:({value:e})=>`${e} vs prev week`},fromPreviousDay:{long:({value:e})=>`${e} vs previous day`,short:({value:e})=>`${e} vs prev day`},fromPreviousHour:{long:({value:e})=>`${e} vs previous hour`,short:({value:e})=>`${e} vs prev hour`}},headlineMetrics:{averageLong:({value:e})=>`Average ${e}`,averageShort:({value:e})=>`Avg. ${e}`,total:({value:e})=>`Total ${e}`,totalConversionRate:({value:e})=>`Total conversion rate ${e}`,current:({value:e})=>e,comparisonReference:({value:e})=>`from ${e}`},legend:{hiddenItems:"Hidden legend items"}},si={graph:ai,dir:"ltr"},ii={},li={loading:"A carregar",error:"Algo correu mal",axisLabels:{placeholder:"Adicionar etiqueta"},defaultPropertyLabels:{date:"Data",year:"Ano",quarter:"Trimestre",month:"Mês",week:"Semana",series:"Série",category:"Categoria",columnNumber:({number:e})=>`Coluna ${e}`,rowNumber:({number:e})=>`Linha ${e}`,seriesNumber:({number:e})=>`Série ${e}`},trendComparison:{fromPrevious:{long:({value:e})=>`${e} vs anterior`,short:({value:e})=>`${e} vs ant`},fromPreviousYear:{long:({value:e})=>`${e} vs ano anterior`,short:({value:e})=>`${e} vs ano ant`},fromPreviousMonth:{long:({value:e})=>`${e} vs mês anterior`,short:({value:e})=>`${e} vs mês ant`},fromPreviousWeek:{long:({value:e})=>`${e} vs semana anterior`,short:({value:e})=>`${e} vs sem ant`},fromPreviousDay:{long:({value:e})=>`${e} vs dia anterior`,short:({value:e})=>`${e} vs dia ant`},fromPreviousHour:{long:({value:e})=>`${e} vs hora anterior`,short:({value:e})=>`${e} vs hora ant`}},headlineMetrics:{averageLong:({value:e})=>`Média ${e}`,averageShort:({value:e})=>`Méd. ${e}`,total:({value:e})=>`Total ${e}`,totalConversionRate:({value:e})=>`Taxa de conversão total ${e}`,current:({value:e})=>e,comparisonReference:({value:e})=>`de ${e}`},legend:{hiddenItems:"Itens de legenda ocultos"}},ci={graph:li,dir:"ltr"},Ue={"en-GB":si,"en-US":ii,ar:oi,"pt-PT":ci},ui=({locale:e,overrides:t,fallbackLocale:r="en-GB",dictionaries:n})=>{const o=t??{},s=e??r,i=[...n.map(c=>c[s]),...n.map(c=>c[r])];return(c,h)=>{const d=h??{},f=c.split("."),p=o[c];if(p)return typeof p=="function"?p(d):p;for(const v of i){if(v===void 0)continue;const m=hi(v,f);if(m)return typeof m=="function"?m(d):m}return c}},di=({locale:e,overrides:t})=>t?.dir??Ue[e].dir??"ltr",hi=(e,t)=>{let r=e;for(const n of t){if(typeof r!="object"||r===null)return;r=r[n]}if(typeof r=="string"||typeof r=="function")return r},gi=e=>{const t="en-GB";if(!e)return t;const r=e.trim().replace("_","-").toLowerCase();return Object.keys(Ue).find(n=>n.toLowerCase()===r)??t},on=(0,g.createContext)(null),vi=[Ue],yt=()=>fi().translator,an=({locale:e,children:t,i18nOverrides:r,dictionaries:n=vi})=>{const o=gi(e),s=(0,g.useMemo)(()=>({translator:ui({locale:o,overrides:r,fallbackLocale:"en-GB",dictionaries:n}),dir:di({locale:o,overrides:r})}),[r,o,n]);return(0,a.jsx)(Do.IntlProvider,{locale:o,timeZone:"UTC",children:(0,a.jsx)(on.Provider,{value:s,children:t})})},fi=()=>{const e=(0,g.useContext)(on);if(!e)throw new Error("useI18n must be used within IntlProvider");return e},sn=e=>e==="none"?"none":`${e.offsetX}px ${e.offsetY}px ${e.blur}px ${e.color}`,pi=e=>{if(e!=="none")return`drop-shadow(${e.offsetX}px ${e.offsetY}px ${e.blur}px ${e.color})`},mi=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>(0,u.resolveTooltipStyle)(e,t),[e,t])},xi="bow4tg0",yi="bow4tg1",Ai="bow4tg2",bi="bow4tg3",ji="bow4tg4",At="_1ii3bsb0",ln="_1ii3bsb1",cn=(0,g.createContext)({colorScheme:"light",themeClass:At,inlineVarsStyle:{},themeValues:kr("light",{})}),Ke=()=>(0,g.useContext)(cn),un=({colorScheme:e,themeOverrides:t={},textScale:r=1,graphBackground:n,children:o})=>{const s=(0,g.useMemo)(()=>kr(e,t),[e,t]),i=(0,g.useMemo)(()=>{const c={[y.vars.textScale]:String(r)};for(const h of Object.keys(t)){const d=h;c[y.vars[d]]=s[d]}return n!==void 0&&(c[y.vars.graphBackground]=n),(0,lr.assignInlineVars)(c)},[r,n,s,t]),l=(0,g.useMemo)(()=>({colorScheme:e,themeClass:e==="dark"?ln:At,inlineVarsStyle:i,themeValues:s}),[e,i,s]);return(0,a.jsx)(cn.Provider,{value:l,children:o})},dn=({children:e,className:t,style:r})=>{const{themeClass:n,inlineVarsStyle:o}=Ke();return(0,a.jsx)("div",{className:(0,F.default)(n,yi,t),style:{...o,...r},children:e})},hn={modern:"'Inter', -apple-system, BlinkMacSystemFont, 'Open Sans', 'Segoe UI', 'Roboto', 'Oxygen-Sans', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif",timeless:"'Noto Serif', Georgia, 'Times New Roman', serif",fresh:"'Aeonik', 'Aeonik Fallback', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif",technical:"'PT Mono', 'Courier New', monospace",handwritten:"'Permanent Marker', cursive",fineliner:"'Intruding Cat', cursive"},gn=e=>{const t=e!==null&&typeof e=="object"?e.fontFamily:e;return typeof t=="string"&&t.length>0?t:void 0},lt=e=>{const t=gn(e);if(t!==void 0)return hn[t]??t},wi="_1cocly40",ue=({content:e})=>(0,a.jsx)(a.Fragment,{children:vn(e.content??[e])}),vn=e=>e.map((t,r)=>Si(t,r)),Si=(e,t)=>{if(e.type==="text")return Pi(e,t);if(e.type==="hardBreak"||e.type==="hard_break")return(0,a.jsx)("br",{},t);const r=e.content?vn(e.content):null;switch(e.type){case"doc":return(0,a.jsx)(g.Fragment,{children:r},t);case"heading":{const n=ki(e.attrs?.level);return Bi(n,t,r,Qt(e.attrs))}case"paragraph":return(0,a.jsx)("p",{"data-variant":Ye(e.attrs?.variant)??void 0,style:fn(Qt(e.attrs)),children:r},t);case"blockquote":return(0,a.jsx)("blockquote",{children:r},t);case"bulletList":case"bullet_list":return(0,a.jsx)("ul",{children:r},t);case"orderedList":case"ordered_list":return(0,a.jsx)("ol",{children:r},t);case"listItem":case"list_item":return(0,a.jsx)("li",{children:r},t);default:return(0,a.jsx)("span",{children:r},t)}},Pi=(e,t)=>{const r=e.text??"";return!e.marks||e.marks.length===0?(0,a.jsx)("span",{children:r},t):e.marks.reduceRight((n,o,s)=>Ri(o,n,`${t}-${s}`),r)},Ri=(e,t,r)=>{switch(e.type){case"bold":case"strong":return(0,a.jsx)("strong",{children:t},r);case"italic":case"em":return(0,a.jsx)("em",{children:t},r);case"underline":return(0,a.jsx)("u",{children:t},r);case"strike":case"strikethrough":case"s":return(0,a.jsx)("s",{children:t},r);case"code":return(0,a.jsx)("code",{children:t},r);case"link":{const n=Ye(e.attrs?.href);return(0,u.isSafeUrl)(n)?(0,a.jsx)("a",{className:wi,href:n,rel:"noopener noreferrer",target:"_blank",children:t},r):(0,a.jsx)("span",{children:t},r)}case"textStyle":{const n=Ci(e.attrs);return n?(0,a.jsx)("span",{style:n,children:t},r):(0,a.jsx)("span",{children:t},r)}default:return(0,a.jsx)("span",{children:t},r)}},Ci=e=>{if(!e)return null;const t={},r=Ye(e.color);r&&(t.color=r);const n=lt(e.font)??lt(e.fontFamily);n&&(t.fontFamily=n);const o=Ei(e.fontSize);return o&&(t.fontSize=o),Object.keys(t).length>0?t:null},Ei=e=>typeof e=="number"&&Number.isFinite(e)?`${e/10}em`:Ye(e),Ye=e=>typeof e=="string"&&e.length>0?e:void 0,ki=e=>typeof e!="number"?3:e<1?1:e>3?3:Math.round(e),Bi=(e,t,r,n)=>{const o=fn(n);switch(e){case 1:return(0,a.jsx)("h1",{style:o,children:r},t);case 2:return(0,a.jsx)("h2",{style:o,children:r},t);case 3:return(0,a.jsx)("h3",{style:o,children:r},t)}},Qt=e=>{const t=e?.textAlign;if(t==="left"||t==="right"||t==="center"||t==="justify")return t},fn=e=>e?{textAlign:e}:void 0;function le(e){const{store:t}=re();return(0,be.useStore)(t,e)}var Ii="_19519k80";var Mi="_19519k82",Ti="_19519k83",Oi="_19519k85",Li="_19519k86",Fi="_19519k87",Ni="_19519k88",Di=e=>{const{overlayRef:t}=re(),r=(0,g.useRef)(null),[n,o]=(0,g.useState)(!1),s=De(e);return(0,g.useEffect)(()=>{const i=t.current;if(!i)return;const l=h=>{r.current={clientX:h.clientX,clientY:h.clientY},o(!0),s.current?.()},c=()=>{r.current=null,o(!1)};return i.addEventListener("pointermove",l),i.addEventListener("pointerleave",c),()=>{i.removeEventListener("pointermove",l),i.removeEventListener("pointerleave",c)}},[t,s]),{cursorRef:r,isInside:n}},Gi=24,Hi=8,Wi={x:0,y:0,top:0,left:0,right:0,bottom:0,width:0,height:0,toJSON:()=>({})},Ie={boundary:[],padding:Hi},Vi=()=>{const e=P((0,G.useShallow)(j=>({layers:j.layers,coordSystem:j.coordSystem,scales:j.scales,guides:j.guides,numberFormat:j.config.numberFormat,parsingLocale:j.config.parsingLocale,comments:j.annotations.comments}))),{formattingLocale:t,colorScheme:r}=N(),n=le(j=>j.hover),o=le(j=>j.tooltipAnchor),s=le(j=>j.isPointerSuspended),i=Y("Tooltip",pn),l=(0,g.useRef)(()=>{}),{cursorRef:c,isInside:h}=Di(()=>l.current()),d=(0,g.useMemo)(()=>(0,u.buildTooltipContent)({...e,hover:n,colorScheme:r,formattingLocale:t,activeCalloutId:o?.annotationId??null}),[e,n,r,t,o]),f=!s&&d!==null&&(h||o!==null),p=(0,g.useMemo)(()=>({getBoundingClientRect:()=>{if(o!==null)return Yi(o);const j=c.current;return j===null?Wi:Ki(j)}}),[c,o]),{refs:v,floatingStyles:m,update:A}=(0,W.useFloating)(Qi({isOpen:f,tooltipAnchor:o,virtualReference:p}));if(l.current=A,!f)return null;const x=(0,a.jsx)("div",{ref:v.setFloating,role:"tooltip",className:Ni,style:m,"data-testid":"chart-tooltip",children:(0,a.jsx)(i,{content:d})}),b=xt();return b?(0,ir.createPortal)((0,a.jsx)(dn,{children:x}),b):x},pn=({content:e})=>{const t=Z(),r=P(c=>c.coordSystem),n=mi(),o=et(n.heading),s=et(n.label),i=et(n.value),l={paddingInline:n.box.paddingInline};return(0,a.jsxs)("div",{className:Ii,style:Ui(n.box),"data-testid":"chart-tooltip-body",children:[e.comment!==null&&(0,a.jsx)("div",{style:{...s,color:n.value.textColor,...l},"data-testid":"chart-tooltip-comment",children:(0,a.jsx)(ue,{content:e.comment})}),e.header!==null&&(0,a.jsx)("div",{className:"_19519k81",style:{...o,...l},"data-testid":"chart-tooltip-header",children:e.header}),(0,a.jsx)("div",{className:Mi,children:e.rows.map(c=>{const h=t(c.geom,r.type);return(0,a.jsx)(zi,{row:c,swatchShape:h?.swatchShape??"square",shouldHighlight:c.isPrimary&&e.rows.length>1,labelStyle:s,valueStyle:i,paddingInline:n.box.paddingInline,highlightBackground:n.primaryRow.background},c.key)})})]})},et=e=>({...$(e),color:e.textColor,lineHeight:e.lineHeight}),Ui=e=>({background:e.background,borderRadius:e.borderRadius,paddingBlock:e.paddingBlock,boxShadow:sn(e.shadow),...e.borderWidth>0?{border:`${e.borderWidth}px solid ${e.borderColor}`}:{}}),Ki=e=>({x:e.clientX,y:e.clientY,top:e.clientY,left:e.clientX,right:e.clientX,bottom:e.clientY,width:0,height:0,toJSON:()=>({})}),Yi=e=>({x:e.x,y:e.y,top:e.y,left:e.x,right:e.x,bottom:e.y,width:0,height:0,toJSON:()=>({})}),Qi=({isOpen:e,tooltipAnchor:t,virtualReference:r})=>({open:e,placement:t!==null?t.placement:"right",middleware:t!==null?[(0,W.offset)(u.ANNOTATION_TOOLTIP_MARKER_GAP),(0,W.shift)(Ie),(0,W.flip)(Ie)]:[(0,W.offset)(Gi),(0,W.flip)(Ie),(0,W.shift)(Ie)],elements:{reference:r}}),zi=({row:e,swatchShape:t,shouldHighlight:r,labelStyle:n,valueStyle:o,paddingInline:s,highlightBackground:i})=>(0,a.jsxs)("div",{className:Ti,style:{paddingInline:s,...r?{backgroundColor:i}:{}},"data-testid":"chart-tooltip-row",children:[e.swatchColor===null?(0,a.jsx)("span",{className:Oi,"aria-hidden":!0}):(0,a.jsx)(je,{shape:t,color:e.swatchColor,surface:"tooltip",label:e.label,lineType:e.swatchLineType}),(0,a.jsx)("span",{className:Li,style:n,"data-testid":"chart-tooltip-label",children:e.label}),(0,a.jsx)("span",{className:Fi,style:o,"data-testid":"chart-tooltip-value",children:e.value})]}),Te={plansByLayerId:null,coordKey:null,introEndsAtMs:0},bt=(0,g.createContext)(Te),qi=({intro:e,children:t})=>{const{layers:r,coordSystem:n,scales:o}=P((0,G.useShallow)(i=>({layers:i.layers,coordSystem:i.coordSystem,scales:i.scales}))),[s]=(0,g.useState)(()=>Zi({layers:r,coordSystem:n,scales:o,intro:e}));return(0,a.jsx)(bt.Provider,{value:s,children:t})},Xi=()=>{const{introEndsAtMs:e}=(0,g.useContext)(bt),[t]=(0,g.useState)(()=>_i(e)/1e3);return t},Ji=e=>{const{plansByLayerId:t,coordKey:r}=(0,g.useContext)(bt),n=P(o=>mn(o.coordSystem));return t===null||r!==n?null:t.get(e)??null},Zi=({layers:e,coordSystem:t,scales:r,intro:n})=>{if(!n.enabled||e.reduce((l,c)=>l+(0,u.countLayerGeoms)(c),0)>n.maxAnimatedGeoms)return Te;const o={durationScale:n.durationScale,stagger:n.stagger,staggerOrder:n.staggerOrder},s=new Map;for(const l of e){const c=(0,u.buildLayerIntroPlan)({layer:l,coordSystem:t,scales:r,options:o});c!==null&&s.set(l.id,c)}if(s.size===0)return Te;const i=[...s.values()].reduce((l,c)=>Math.max(l,qo(c)),0);return{plansByLayerId:s,coordKey:mn(t),introEndsAtMs:performance.now()+i*1e3}},_i=e=>Math.max(0,e-performance.now()),mn=e=>e.type==="cartesian"?`cartesian-${e.mainAxis}`:e.type,xn=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>{const r={};for(const n of u.AXIS_KEYS)r[n]=(0,u.resolveAxisLabelStyle)(e,n,t);return r},[e,t])},Qe=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>{const r={};for(const n of u.DATA_LABEL_ROLES){const o={};for(const s of u.DATA_LABEL_POSITIONS)o[s]=(0,u.resolveDataLabelStyle)(e,n,s,t);r[n]=o}return r},[e,t])},jt=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>r=>(0,u.resolveDifferenceArrowAnnotationStyle)(e,r,t),[e,t])},wt=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>(0,u.resolveLegendItemStyle)(e,t),[e,t])},St=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>{const r={};for(const n of u.AXIS_KEYS)r[n]=(0,u.resolveTickLabelStyle)(e,n,t);return r},[e,t])},yn=()=>{const e=I();return(0,g.useMemo)(()=>{const t={};for(const r of u.AXIS_KEYS)t[r]=(0,u.resolveTickLineStyle)(e,r);return t},[e])},$i=({textMeasurer:e,tickLabelStyles:t,tickLineStyles:r,familyDefault:n})=>o=>{const s=o.position==="top"||o.position==="bottom",i=(0,u.getAestheticFromScaleAestheticKey)(o.scaleAestheticKey),{offset:l,...c}=t[i],h=o.ticksVisible?Math.max(l,r[i].length):l,d=(0,u.toFontSpec)(c,n),f=o.ticks.map(v=>e.measureText(v.formattedLabel,d)),p=o.labelMaxWidthPx??Number.POSITIVE_INFINITY;if(s){if(o.labelRotation!==0){const v=f.map(m=>m.width);return zt(v,p)+2*h}return Math.max(...f.map(v=>v.height))+h}return zt(f.map(v=>v.width),p)+h},zt=(e,t)=>Math.min(Math.max(...e),t),el=({axisLabelStyles:e})=>t=>(0,u.computeLineBoxHeight)(e[(0,u.getAestheticFromScaleAestheticKey)(t.scaleAestheticKey)]),An=({textMeasurer:e,dataLabelStyles:t,familyDefault:r})=>(n,o,s)=>{const i=t[n][o],l=e.measureText(s,(0,u.toFontSpec)(i,r));return{...l,width:l.width+i.paddingInline*2,height:l.height+i.paddingBlock*2}},tl=({textMeasurer:e,familyDefault:t})=>(r,n)=>e.measureText(r,(0,u.toFontSpec)(n,t)),rl=({textMeasurer:e,textScale:t,metrics:r})=>(n,o)=>{const s=bn(n,o,e,t,r);return{width:jn(s.map(i=>i.width))+Math.max(0,s.length-1)*r.headlineItemGap,height:Math.max(0,...s.map(i=>i.height))}},nl=({textMeasurer:e,textScale:t,metrics:r})=>(n,o)=>bn(n,o,e,t,r).map(s=>s.width),ol=({textMeasurer:e,textScale:t,metrics:r})=>(n,o)=>{const s=ct("value",o,t,r.fonts.familyDefault);return{width:e.measureText(n,s).width,height:s.size*xr}},al=({textMeasurer:e,textScale:t,metrics:r})=>{const n=rl({textMeasurer:e,textScale:t,metrics:r}),o=ol({textMeasurer:e,textScale:t,metrics:r});return(s,i)=>s.kind==="perGroup"?n(s,i):o(s.value,i)},bn=(e,t,r,n,o)=>{const s={value:ct("value",t,n,o.fonts.familyDefault),label:ct("label",t,n,o.fonts.familyDefault)},i=l=>sl(l,s,r);return e.items.map(l=>{const c=(0,u.createHeadlineItemRows)(l).map(i),h=Math.max(0,c.length-1)*o.headlineRowGap;return{width:Math.max(0,...c.map(d=>d.width)),height:jn(c.map(d=>d.height))+h}})},sl=(e,t,r)=>{let n=0,o=0;for(const s of e.segments)if(s.kind==="text"){const i=t[s.fontRole];n+=r.measureText(s.text,i).width,o=Math.max(o,i.size*xr)}else n+=s.size,o=Math.max(o,s.size);return{width:n+Math.max(0,e.segments.length-1)*e.gap,height:o}},ct=(e,t,r,n)=>({family:n,size:pt(e==="value"?Pa[t]:Ra[t],r)}),jn=e=>e.reduce((t,r)=>t+r,0),wn=(e,t)=>Rr(e,t).size*e.lineHeight,il=(e,t)=>e?t:0,He=(e,t,r)=>{if(r){const n=Number(e.size);return Number.isFinite(n)&&n>0?n:0}return il(e.color,t)},ll=({textMeasurer:e,familyDefault:t,legendItemStyle:r,legendSwatchGap:n})=>o=>{const{item:s,swatch:i}=r,l=(0,u.computeLineBoxHeight)(s),c=(0,u.toFontSpec)(s,t),h=2*(s.paddingBlock+s.borderWidth),d=2*(s.paddingInline+s.borderWidth),f=o.position==="top"||o.position==="bottom",p=o.aesthetics.includes("size");if(f){const m=p?Math.max(0,...o.items.map(A=>He(A.visual,i.size,!0))):i.size;return Math.max(l,m)+h}const v=o.items.map(m=>{const A=e.measureText(m.formattedLabel,c).width,x=He(m.visual,i.size,p);return x+(x>0?n:0)+A});return Math.max(...v)+d},cl=({textMeasurer:e,tickLabelStyles:t,familyDefault:r})=>(n,o)=>e.measureText(n,(0,u.toFontSpec)(t[o],r)),ul=Object.freeze({}),dl=({textMeasurer:e,textScale:t,metrics:r,overrides:n=ul})=>{const o=xn(),s=Qe(),i=wt(),l=St(),c=yn(),h=(0,g.useRef)(n);return h.current=n,(0,g.useMemo)(()=>{if(!e)return null;const d=r.fonts.familyDefault,f=$i({textMeasurer:e,tickLabelStyles:l,tickLineStyles:c,familyDefault:d}),p=el({axisLabelStyles:o}),v=ll({textMeasurer:e,familyDefault:d,legendItemStyle:i,legendSwatchGap:r.legendSwatchGap}),m=al({textMeasurer:e,textScale:t,metrics:r}),A=nl({textMeasurer:e,textScale:t,metrics:r}),x={measureText:(b,j)=>e.measureText(b,j),textScale:t};return{measureAxis:b=>{if(gl(b))return 0;const j=h.current.measureAxis;return j?j(b,x):f(b)},measureAxisLabel:b=>{const j=h.current.measureAxisLabel;return j?j(b,x):p(b)},measureLegend:b=>{if(vl(b))return 0;const j=h.current.measureLegend;return j?j(b,x):v(b)},measureHeadline:(b,j)=>(h.current.measureHeadline??m)(b,j),measureHeadlineItemWidths:(b,j)=>(h.current.measureHeadlineItemWidths??A)(b,j),measureTickLabel:cl({textMeasurer:e,tickLabelStyles:l,familyDefault:d}),measureDifferenceArrowLabel:tl({textMeasurer:e,familyDefault:d}),measureDataLabel:An({textMeasurer:e,dataLabelStyles:s,familyDefault:d})}},[e,t,r,o,s,i,l,c])},hl=({measurer:e,axes:t,numberFormat:r,parsingLocale:n,formattedLegends:o,containerSize:s,externalMeasurements:i,headline:l,formattingLocale:c,annotations:h,layers:d,coordSystem:f,textScale:p,overflowStrategy:v,layout:m,panelBorder:A})=>{const x=jt();return(0,g.useMemo)(()=>e?new u.LayoutCompiler(e).compile({axes:t,numberFormat:r,parsingLocale:n,formattedLegends:o,containerSize:s,externalMeasurements:i,headline:l,formattingLocale:c,annotations:h,resolveDifferenceArrowStyle:x,layers:d,coordSystem:f,textScale:p,overflowStrategy:v,layout:m,panelBorder:A}):null,[t,r,n,o,s,i,v,l,c,h,x,d,f,p,m,A,e])},gl=e=>!e.isVisible||e.ticks.length===0,vl=e=>e.items.length===0,Sn=()=>{const{formattingLocale:e}=N(),t=P(r=>r.config.parsingLocale);return e??t},qt=.5,Pn=(0,g.createContext)(new Map),Rn=(0,g.createContext)(()=>{}),Cn=(0,g.createContext)(new Set),fl=({children:e})=>{const[t,r]=(0,g.useState)(()=>new Map),[n]=(0,g.useState)(()=>new Set),o=(0,g.useRef)(new Map),s=(0,g.useCallback)((i,l,c)=>{const h=o.current.get(i)??new Set;if(c!==null){h.add(l),o.current.set(i,h),r(d=>xl(d,i,c));return}h.delete(l),!(h.size>0)&&(o.current.delete(i),r(d=>yl(d,i)))},[]);return(0,a.jsx)(Rn.Provider,{value:s,children:(0,a.jsx)(Cn.Provider,{value:n,children:(0,a.jsx)(Pn.Provider,{value:t,children:e})})})},En=()=>(0,g.useContext)(Pn),pl=()=>(0,g.useContext)(Rn),kn=e=>{const t=pl(),r=(0,g.useId)(),n=(0,g.useRef)(null);return(0,g.useEffect)(()=>{if(typeof ResizeObserver>"u")return;const o=n.current;if(o===null)return;const s=()=>t(e,r,{width:o.offsetWidth,height:o.offsetHeight});s();const i=new ResizeObserver(s);return i.observe(o),()=>{i.disconnect(),t(e,r,null)}},[e,r,t]),n},ml=()=>(0,g.useContext)(Cn),xl=(e,t,r)=>{const n=e.get(t);if(n!==void 0&&Math.abs(n.width-r.width)<qt&&Math.abs(n.height-r.height)<qt)return e;const o=new Map(e);return o.set(t,r),o},yl=(e,t)=>{if(!e.has(t))return e;const r=new Map(e);return r.delete(t),r},Pt="data-edit-kind",Bn="data-edit-id",Al="observation",bl=new Set(["annotation"]),jl=e=>bl.has(e.kind),wl=(e,t)=>e===t?!0:e===null||t===null||e.kind!==t.kind?!1:e.id===t.id,we=e=>({[Pt]:e.kind,[Bn]:e.id}),Sl=()=>({[Pt]:Al}),Pl=(e,t)=>e!==null&&e.annotationId===t?e:null,Rl=(e,t)=>e.annotationId===t.annotationId&&e.translation.x===t.translation.x&&e.translation.y===t.translation.y,Cl=(e,t,r)=>e!==null&&e.annotationId===t&&e.endpoint===r?e:null,El=(e,t)=>e.annotationId===t.annotationId&&e.endpoint===t.endpoint&&e.anchor.x===t.anchor.x&&e.anchor.y===t.anchor.y,kl=(e,t,r)=>e!==null&&e.annotationId===t&&e.endpoint===r?e:null,Bl=(e,t)=>e.annotationId===t.annotationId&&e.endpoint===t.endpoint&&(0,u.areAnchorsEqual)(e.point.anchor,t.point.anchor),Il=(e,t)=>e!==null&&e.annotationId===t?e:null,Ml=(e,t)=>e.annotationId===t.annotationId&&e.region.x===t.region.x&&e.region.y===t.region.y&&e.region.width===t.region.width&&e.region.height===t.region.height,Tl=(e,t)=>e!==null&&e.annotationId===t?e:null,Ol=(e,t)=>e.annotationId===t.annotationId&&e.at.x===t.at.x&&e.width===t.width&&e.shift===t.shift,ce=({standingInteraction:e},t)=>e!==null&&ne(e,t)?e:null,Ll=(e,t)=>{if(e===null)return!1;switch(t.kind){case"difference-arrow-endpoint-drag":return ne(e,t.kind)&&Bl(e,t);case"arrow-endpoint-drag":return ne(e,t.kind)&&El(e,t);case"move-drag":return ne(e,t.kind)&&Rl(e,t);case"shape-resize-drag":return ne(e,t.kind)&&Ml(e,t);case"text-resize-drag":return ne(e,t.kind)&&Ol(e,t);case"chrome-popup":return ne(e,t.kind);case"menu":return!1}},ne=(e,t)=>e.kind===t,In=()=>(0,sr.createStore)(e=>({menuTrigger:null,chromeUnderPointer:null,editTargetUnderPointer:null,standingInteraction:null,caret:null,setMenuTrigger:t=>e(r=>(0,u.areEditMenuTriggersEqual)(r.menuTrigger,t)?r:{menuTrigger:t}),setChromeUnderPointer:t=>e({chromeUnderPointer:t}),setEditTargetUnderPointer:t=>e(r=>wl(r.editTargetUnderPointer,t)?r:{editTargetUnderPointer:t}),claimInteraction:t=>e(r=>Ll(r.standingInteraction,t)?r:{standingInteraction:t}),releaseInteraction:t=>e(r=>r.standingInteraction?.kind===t?{standingInteraction:null}:r),setCaret:t=>e(r=>(r.caret?.annotationId??null)===t?r:{caret:t===null?null:{annotationId:t,editor:null}}),setCaretEditor:t=>e(r=>r.caret===null?r:{caret:{...r.caret,editor:t}})})),Rt=(0,g.createContext)(null),Fl=In(),Nl=({children:e})=>{const[t]=(0,g.useState)(()=>In());return(0,a.jsx)(Rt.Provider,{value:t,children:e})},Dl=()=>{const e=(0,g.useContext)(Rt);if(e===null)throw new Error("useEditorStore must be used inside an <EditorProvider>.");return e};function J(e){return(0,be.useStore)((0,g.useContext)(Rt)??Fl,e)}var Mn=(0,g.createContext)(null),Gl=({panelRect:e,children:t})=>{const r=Hl(e);return(0,a.jsx)(Mn.Provider,{value:r,children:t})},Tn=()=>{const e=(0,g.useContext)(Mn);if(e===null)throw new Error("Difference arrows read outside a <DifferenceArrowsProvider>.");return e},Xt=(e,t,r)=>t.isColorAuthored?t.color:(0,u.resolveArrowColor)(e.start,e.end,{start:r(e.start),end:r(e.end)})??t.color,Hl=e=>{const{formattingLocale:t}=N(),r=te(),{fonts:n}=oe(),o=J(x=>ce(x,"difference-arrow-endpoint-drag")),s=ur(),i=jt(),{differenceArrows:l,mainAxis:c,parsingLocale:h}=P((0,G.useShallow)(x=>({differenceArrows:x.annotations.differenceArrows,mainAxis:x.coordSystem.type==="cartesian"?x.coordSystem.mainAxis:"x",parsingLocale:x.config.parsingLocale}))),d=t??h,{width:f,height:p}=e,v=(0,g.useMemo)(()=>({mainAxis:c,panelWidth:f,panelHeight:p,locale:d}),[c,f,p,d]),m=(0,g.useMemo)(()=>Wl(r,n.familyDefault),[r,n.familyDefault]),A=(0,g.useMemo)(()=>l.map(x=>{const b=i(x.id),j=Jt(x,b,v,m);return{...j,arrow:x,style:b,color:Xt(x,b,s),committedArrow:x,committedLabelBox:j.labelBox,committedLabelText:j.labelText,isDragged:!1,hasComparableEndpoints:(0,u.areEndpointsComparable)(x.start,x.end)}}),[l,v,m,s,i]);return(0,g.useMemo)(()=>o===null?A:A.map(x=>{if(x.id!==o.annotationId)return x;const b=Vl(x.committedArrow,o);return{...Jt(b,x.style,v,m),style:x.style,color:Xt(b,x.style,s),arrow:b,committedArrow:x.committedArrow,committedLabelBox:x.committedLabelBox,committedLabelText:x.committedLabelText,isDragged:!0,hasComparableEndpoints:(0,u.areEndpointsComparable)(b.start,b.end)}}),[A,o,v,m,s])},Jt=(e,t,r,n)=>{const o=(0,u.computeDifferenceArrow)({arrow:e,style:t,...r});return{...o,labelBox:(0,u.getDifferenceArrowLabelBox)({labelPosition:o.labelPosition,measuredTextWidth:n(o.labelText,t.label),label:t.label})}},Wl=(e,t)=>{const r=new Map;return(n,o)=>{const s=(0,u.toFontSpec)(o,t),i=`${s.family}|${s.size}|${s.weight}|${n}`,l=r.get(i);if(l!==void 0)return l;const{width:c}=e.measureText(n,s);return r.set(i,c),c}},Vl=(e,t)=>({...e,start:t.endpoint==="start"?t.point:e.start,end:t.endpoint==="end"?t.point:e.end}),Ul="data:image/png;base64,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",Kl=({className:e})=>(0,a.jsx)("img",{src:Ul,alt:"","aria-hidden":"true",className:e,draggable:!1}),Yl="https://graphy.app/?utm_source=chart-mark&utm_medium=embed",Ql="Made with Graphy — open graphy.app";var zl="vultop0";var ql="vultop2",Xl="vultop3",Jl="vultop4",Zl="vultop5",_l="vultop6",$l="vultop7",ec=e=>{const t=tc(e.trim());if(t===null)return"light";const r=rc(t);return r<=.22?"dark":r<=.65?"mid":"light"},tc=e=>{if(!e.startsWith("#"))return null;const t=e.slice(1);if(t.length===3){const r=t[0],n=t[1],o=t[2];return r===void 0||n===void 0||o===void 0?null:{red:Number.parseInt(r+r,16),green:Number.parseInt(n+n,16),blue:Number.parseInt(o+o,16)}}return t.length===6||t.length===8?{red:Number.parseInt(t.slice(0,2),16),green:Number.parseInt(t.slice(2,4),16),blue:Number.parseInt(t.slice(4,6),16)}:null},rc=({red:e,green:t,blue:r})=>{const n=o=>{const s=o/255;return s<=.03928?s/12.92:((s+.055)/1.055)**2.4};return .2126*n(e)+.7152*n(t)+.0722*n(r)},On=(e,t,r="full")=>!e||t.width<120||t.height<80?"hidden":t.width<200||r==="mini"?"mini":"full",Ct=({visual:e,placement:t})=>{const{background:r}=(0,u.resolveGraphChromeStyle)(I()),n=ec(r);return(0,a.jsxs)("a",{className:(0,F.default)(zl,e==="mini"&&"vultop1",t==="footer"?_l:$l),href:Yl,target:"_blank",rel:"noopener noreferrer","aria-label":Ql,"data-visual":e,"data-zone":n,children:[(0,a.jsx)("span",{className:ql,children:(0,a.jsx)(Kl,{className:Xl})}),(0,a.jsxs)("span",{className:Jl,children:[(0,a.jsx)("span",{children:"Made with"}),(0,a.jsx)("span",{className:Zl,children:"Graphy"})]})]})},Ln=(0,g.createContext)({Title:null,Caption:null,TextAnnotation:null}),nc=({editors:e,children:t})=>(0,a.jsx)(Ln.Provider,{value:e,children:t}),Et=()=>(0,g.useContext)(Ln);var oc="_4dlrid1",ac="xfz7dq0";var sc="xfz7dq2",ic="xfz7dq3",lc="xfz7dq4",cc="xfz7dq5",Fn=({ref:e,footerRect:t,mode:r="readonly",caption:n,isCaptionVisible:o,source:s,isSourceVisible:i,brandMark:l})=>{const{Caption:c}=Et(),h=r==="editable"?c:null,d=o&&(h!==null||n!==null),f=i&&s!==null&&gc(s),p=l!=="hidden";return!d&&!f&&!p?null:(0,a.jsxs)("div",{ref:e,className:ac,style:{left:t.x,top:t.y,width:t.width},children:[d?h?(0,a.jsx)(h,{caption:n}):(0,a.jsx)(uc,{caption:n}):null,(f||p)&&(0,a.jsxs)("div",{className:"xfz7dq1",children:[f&&(0,a.jsx)(dc,{source:s}),l!=="hidden"?(0,a.jsx)(Ct,{visual:l,placement:"footer"}):null]})]})},uc=({caption:e})=>e===null?null:typeof e=="string"?(0,a.jsx)("p",{className:oc,children:e}):(0,a.jsx)(ue,{content:e}),dc=({source:e})=>{const t=(0,u.isSafeUrl)(e.url)?e.url:void 0,r=e.label??(t!==void 0?hc(t):"");return r===""&&t===void 0?null:(0,a.jsxs)("span",{className:sc,children:[(0,a.jsx)("span",{className:lc,children:"Source:"}),t!==void 0?(0,a.jsx)("a",{className:ic,href:t,target:"_blank",rel:"noopener noreferrer",children:r}):(0,a.jsx)("span",{className:cc,children:r})]})},hc=e=>{try{return new URL(e).hostname}catch{return e}},gc=e=>e.label!==void 0&&e.label!==""||e.url!==void 0&&e.url!==""&&(0,u.isSafeUrl)(e.url),vc="_1k4qtbg0";var fc=22,Nn=({ref:e,headerRect:t,mode:r="readonly",title:n,isTitleVisible:o,subtitle:s,isSubtitleVisible:i,brandMark:l})=>{const{Title:c}=Et(),h=r==="editable"?c:null,d=h!==null,f=o&&(d||n!==null),p=i&&(d||s!==null),v=l!=="hidden";return!f&&!p&&!v?null:(0,a.jsxs)("div",{ref:e,className:(0,F.default)(vc,v&&"_1k4qtbg1"),style:{left:t.x,top:t.y,width:t.width,...v&&!f&&!p?{minHeight:fc}:{}},children:[h?(0,a.jsx)(h,{title:n,isTitleVisible:o,isSubtitleVisible:i,subtitle:s},[o?"title":"",i?"subtitle":""].join("-")):(0,a.jsx)(pc,{title:n,isTitleVisible:o,isSubtitleVisible:i,subtitle:s}),l!=="hidden"?(0,a.jsx)(Ct,{visual:l,placement:"header"}):null]})},pc=({title:e,isTitleVisible:t,isSubtitleVisible:r,subtitle:n})=>{const o=t&&e!==null,s=r&&n!==null;return(0,a.jsxs)(a.Fragment,{children:[o&&(typeof e=="string"?(0,a.jsx)("h1",{className:"_4dlrid0",children:e}):(0,a.jsx)(ue,{content:e})),s&&(typeof n=="string"?(0,a.jsx)("p",{className:"_4dlrid1",children:n}):(0,a.jsx)(ue,{content:n}))]})},mc="_1u9qprb0",xc="_1u9qprb1",yc=Lo({groupRow:()=>jc,item:()=>Dn,trendRow:()=>bc,valueRow:()=>Ac}),Ac="_9aen060",bc="_9aen061",jc="_9aen062",Dn="_9aen063",wc={xxs:8,xs:12,sm:16,md:20,lg:24,xl:36},Sc={primary:"asohov1 asohov0",secondary:"asohov2 asohov0"},kt=({children:e,title:t,variant:r="primary",size:n="sm",...o})=>{const s=(0,g.useId)(),i=wc[n];return(0,a.jsxs)("svg",{className:Sc[r],"aria-labelledby":t?s:void 0,height:i,width:i,fill:"none",viewBox:"0 0 24 24",role:"img",...o,children:[t&&(0,a.jsx)("title",{id:s,children:t}),e]})},Pc=e=>(0,a.jsx)(kt,{...e,children:(0,a.jsxs)("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[(0,a.jsx)("path",{d:"m5 12 7-7 7 7"}),(0,a.jsx)("path",{d:"M12 19V5"})]})}),Gn=e=>(0,a.jsx)(kt,{...e,children:(0,a.jsx)("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:(0,a.jsx)("path",{d:"M5 12h14"})})}),Hn="n7clvo0",Rc="n7clvo1",Cc="n7clvo2",Ec="n7clvo3",Wn={small:"n7clvo4",medium:"n7clvo5",large:"n7clvo6"},kc={small:"n7clvo7",medium:"n7clvo8",large:"n7clvo9"},Bc={up:"n7clvoa",down:"n7clvob",flat:"n7clvoc"},Ic={up:"n7clvoe n7clvod",down:"n7clvof n7clvod",flat:"n7clvog n7clvod"},Mc=({segment:e,resolvedSize:t})=>{const r=Z();if(e.kind==="swatch")return(0,a.jsx)(je,{shape:r(e.swatch.geom,"cartesian")?.swatchShape??"square",color:e.swatch.color,surface:"headline",width:e.size,height:e.size});if(e.kind==="trendArrow")return(0,a.jsx)("div",{className:Ic[e.direction],children:e.direction==="flat"?(0,a.jsx)(Gn,{size:"xs",title:""}):(0,a.jsx)(Pc,{size:"xs",title:""})});const n=e.fontRole==="value"?Wn[t]:kc[t];return(0,a.jsx)("span",{className:(0,F.clsx)(Tc(e),n),children:e.text})},Tc=e=>{switch(e.textRole){case"value":return Hn;case"observation":return Rc;case"trendPercentage":return Bc[e.trendDirection??"up"];case"trendReference":return Cc;case"label":return Ec}},Oc=({item:e,resolvedSize:t})=>(0,a.jsx)("div",{className:Dn,children:(0,u.createHeadlineItemRows)(e).map(r=>(0,a.jsx)(Lc,{row:r,resolvedSize:t},r.role))}),Lc=({row:e,resolvedSize:t})=>{const r=e.role==="trendRow";return(0,a.jsx)("div",{className:yc[e.role],"data-testid":r?"headline-trend":void 0,"data-direction":r?Fc(e):void 0,role:r?"img":void 0,"aria-label":r?e.ariaLabel:void 0,children:e.segments.map((n,o)=>(0,a.jsx)(Mc,{segment:n,resolvedSize:t},o))})},Fc=e=>{const t=e.segments.find(r=>r.kind==="trendArrow");return t?.kind==="trendArrow"?t.direction:void 0},Nc=({headline:e,rect:t,resolvedSize:r,visibleItemCount:n})=>{const o={left:t.x,top:t.y,width:t.width,height:t.height};return e.kind==="grandTotal"?(0,a.jsx)("div",{className:xc,style:o,children:(0,a.jsx)("span",{className:(0,F.clsx)(Hn,Wn[r]),children:e.value})}):(0,a.jsx)("div",{className:mc,style:o,children:e.items.slice(0,n).map((s,i)=>(0,a.jsx)(Oc,{item:s,resolvedSize:r},`${s.label}-${i}`))})},Dc="_1oj6yix0";var Gc="_1oj6yix2",Hc=8,Wc=16,Vc=2,Uc=({legends:e,containerRect:t,textScale:r})=>{const{fonts:n}=oe(),o=wn(n.legendLabel,r),{placements:s,hasOverlap:i}=Kc(e,t,o);if(s.length===0)return null;const l=i?Wc:Hc,c=l-Vc;return(0,a.jsxs)("div",{className:Dc,children:[i&&(0,a.jsx)("svg",{className:"_1oj6yix1",width:t.width,height:t.height,children:s.map(h=>(0,a.jsx)(Yc,{anchorY:h.anchorY,labelY:h.y,endX:c,color:h.payload.color},h.payload.key))}),s.map(h=>(0,a.jsx)("span",{className:Gc,style:{left:l,top:h.y,color:h.payload.color},children:h.payload.label},h.payload.key))]})},Kc=(e,t,r)=>(0,g.useMemo)(()=>{const n=[];for(const o of e)for(const s of o.items){if(s.normalizedY===null)continue;const i=typeof s.visual.color=="string"?s.visual.color:void 0;n.push({normalizedY:s.normalizedY,payload:{key:String(n.length),label:s.formattedLabel,color:i}})}return n.length===0||t.height<=0?{placements:[],hasOverlap:!1}:(0,u.computeDirectLabelsLayout)({items:n,containerHeight:t.height,labelHeight:r})},[e,t.height,r]),Yc=({anchorY:e,labelY:t,endX:r,color:n})=>{const o=r/2;return(0,a.jsx)("path",{d:`M0,${e} C${o},${e} ${o},${t} ${r},${t}`,fill:"none",stroke:n??"currentColor",strokeWidth:1,strokeDasharray:"2 2"})},Qc="_6a636s0",zc="_1kjk02r0",qc="_1kjk02r1",Xc="_1kjk02r2",Jc="_1kjk02r3",Zc="_1kjk02r4",_c="_1kjk02r5",$c="_1kjk02r6",eu="_1kjk02r7",tu="_1kjk02r8";var ru="_1dw9dgx0",nu="#9ca3af",tt="\0",ou=(e,t)=>{const r=[];return e.forEach((n,o)=>{const s=n.aesthetics.includes("size");for(const i of n.items){if(s){const d=Number(i.visual.size);if(!Number.isFinite(d)||d<=0)continue}const l=i.visual.color??"",c=s?`${tt}${Number(i.visual.size)}`:"",h=i.visual.lineType;r.push({key:`${o}${tt}${String(i.value)}${tt}${l}${c}`,formattedLabel:i.formattedLabel,visual:i.visual,swatchShape:t(i.geom),isBubble:s,primaryLineType:h})}}),r},Vn=({pill:e})=>e.isBubble?(0,a.jsx)(iu,{pill:e}):(0,a.jsx)(su,{pill:e}),au=({color:e,lineType:t,shape:r,label:n})=>{const{swatch:o}=wt();return e?(0,a.jsx)(je,{shape:r,color:e,surface:"legend",label:n,lineType:t,width:o.size,height:o.size,strokeWidth:o.strokeWidth}):null},su=({pill:e})=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(au,{color:e.visual.color,lineType:e.primaryLineType,shape:e.swatchShape,label:e.formattedLabel}),(0,a.jsx)("span",{children:e.formattedLabel})]}),iu=({pill:e})=>{const t=Number(e.visual.size);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:ru,style:{width:t,height:t,backgroundColor:e.visual.color??nu}}),(0,a.jsx)("span",{children:e.formattedLabel})]})},lu=({hiddenPills:e,placement:t})=>{const r=yt(),[n,o]=(0,g.useState)(!1),{refs:s,floatingStyles:i}=(0,W.useFloating)({open:n,placement:t,middleware:[(0,W.offset)(4),(0,W.flip)(),(0,W.shift)({padding:8})]});(0,g.useEffect)(()=>{if(!n)return;const d=p=>{const v=p.target;if(!v)return;const m=s.reference.current,A=s.floating.current;m instanceof Element&&m.contains(v)||A instanceof Element&&A.contains(v)||o(!1)},f=p=>{p.key==="Escape"&&o(!1)};return document.addEventListener("pointerdown",d),document.addEventListener("keydown",f),()=>{document.removeEventListener("pointerdown",d),document.removeEventListener("keydown",f)}},[n,s.floating,s.reference]);const l=t==="left"||t==="right",c=Math.min(e.length-1,2),h=Array.from({length:c},(d,f)=>c-f);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{ref:s.setReference,className:(0,F.clsx)(zc,{[Xc]:l,[qc]:!l}),children:[h.map(d=>(0,a.jsx)("span",{className:(0,F.clsx)(Jc,{[_c]:l,[Zc]:!l}),style:cu(d,l),"aria-hidden":!0},d)),(0,a.jsx)("button",{type:"button",className:(0,F.clsx)($c,{[eu]:n}),onClick:()=>o(d=>!d),"aria-haspopup":"dialog","aria-expanded":n,"aria-label":`Show ${e.length} hidden legend ${e.length===1?"item":"items"}`,children:(0,a.jsxs)("span",{className:tu,children:["+",e.length]})})]}),n&&(0,a.jsx)("div",{ref:s.setFloating,role:"dialog","aria-label":r("graph.legend.hiddenItems"),className:"_1kjk02r9",style:i,children:(0,a.jsx)("ul",{className:"_1kjk02ra",children:e.map(d=>(0,a.jsx)("li",{className:"_1kjk02rb",children:(0,a.jsx)(Vn,{pill:d})},d.key))})})]})},cu=(e,t)=>{const r=-e*4;return{transform:t?`translateY(${r}px)`:`translateX(${r}px)`}},uu="_1cecisi0",du="_1cecisi1",hu="_1cecisi2",gu={start:"_1cecisi3",center:"_1cecisi4",end:"_1cecisi5"},vu={right:"_1cecisi6",left:"_1cecisi7"},fu="_1cecisi8",pu=({edge:e,formattedLegends:t,containerWidth:r,containerHeight:n,textScale:o})=>{const s=te(),i=oe(),l=wt(),c=Z(),h=P(w=>w.coordSystem.type),d=(0,g.useMemo)(()=>ou(t,w=>c(w,h)?.swatchShape??"square"),[t,c,h]),f=e==="left"||e==="right",p=f?n:r,v=t[0]?.align??"start",m=(0,g.useMemo)(()=>{if(d.length===0)return{visibleCount:0,hasOverflow:!1};if(p<=0)return{visibleCount:d.length,hasOverflow:!1};const w=(0,u.toFontSpec)(l.item,i.fonts.familyDefault),C=(0,u.computeLineBoxHeight)(l.item),M=2*(l.item.paddingInline+l.item.borderWidth),R=2*(l.item.paddingBlock+l.item.borderWidth),E=_=>f?mu(_,C,l.swatch.size,R):Zt({label:_.formattedLabel,swatchInlineSize:xu(_,l.swatch.size),textMeasurer:s,font:w,swatchGap:i.legendSwatchGap,horizontalChrome:M}),B=d.map(E),T=Rr(i.fonts.legendLabel,o),D=wn(i.fonts.legendLabel,o),ve=(f?D+i.legendPillVerticalChrome:Zt({label:`+${d.length}`,swatchInlineSize:0,textMeasurer:s,font:T,swatchGap:i.legendSwatchGap,horizontalChrome:i.legendPillHorizontalChrome}))+8;return Au({pillSizes:B,overflowPillSize:ve,containerSize:p,gap:i.legendItemGap})},[d,p,f,s,o,i,l]);if(d.length===0)return null;const A=d.slice(0,m.visibleCount),x=d.slice(m.visibleCount),b=m.hasOverflow&&x.length>0,j=ju(l.item);return(0,a.jsxs)("div",{className:(0,F.clsx)(gu[v],uu,{[hu]:f,[du]:!f,[vu[e==="left"?"left":"right"]]:f}),children:[A.map(w=>(0,a.jsx)("div",{className:fu,style:j,children:(0,a.jsx)(Vn,{pill:w})},w.key)),b&&(0,a.jsx)(lu,{hiddenPills:x,placement:bu(e)})]})},Zt=({label:e,swatchInlineSize:t,textMeasurer:r,font:n,swatchGap:o,horizontalChrome:s})=>{const i=r.measureText(e,n).width;return t+(t>0?o:0)+i+s},mu=(e,t,r,n)=>{const o=yu(e,r);return Math.max(t,o)+n},xu=(e,t)=>He(e.visual,t,e.isBubble),yu=(e,t)=>e.isBubble?He(e.visual,t,!0):t,Au=({pillSizes:e,overflowPillSize:t,containerSize:r,gap:n})=>{if(e.length===0)return{visibleCount:0,hasOverflow:!1};let o=0;for(let l=0;l<e.length;l+=1)l>0&&(o+=n),o+=e[l]??0;if(o<=r)return{visibleCount:e.length,hasOverflow:!1};let s=0,i=0;for(const l of e){const c=s+(i>0?n:0)+l;if(c+n+t>r)break;s=c,i+=1}return{visibleCount:i,hasOverflow:!0}},bu=e=>{switch(e){case"top":return"bottom";case"bottom":return"top";case"left":return"right";case"right":return"left"}},ju=e=>({...$(e),color:e.textColor,lineHeight:e.lineHeight,background:e.background,borderRadius:e.borderRadius,paddingInline:e.paddingInline,paddingBlock:e.paddingBlock,...e.borderWidth>0?{border:`${e.borderWidth}px solid ${e.borderColor}`}:{}}),wu=(0,g.memo)(function({formattedLegends:t,rects:r,textScale:n}){const o=(0,g.useMemo)(()=>{const s=new Map;for(const i of t){let l=s.get(i.position);l||(l={pill:[],direct:[]},s.set(i.position,l)),i.display==="pill"?l.pill.push(i):l.direct.push(i)}return s},[t]);return(0,a.jsx)(a.Fragment,{children:Array.from(o,([s,i])=>{const l=r[s];return l===void 0?null:(0,a.jsxs)("div",{className:Qc,style:{left:l.x,top:l.y,width:l.width,height:l.height},children:[(0,a.jsx)(pu,{edge:s,formattedLegends:i.pill,containerWidth:l.width,containerHeight:l.height,textScale:n}),(0,a.jsx)(Uc,{legends:i.direct,containerRect:l,textScale:n})]},s)})})}),Su=({layers:e,primaryLayerId:t,coordSystem:r,resolveRenderer:n})=>{const o=e.find(i=>i.id===t);if(!o)return null;const s=n(o.geom,r.type);return s?s.guideMode??null:null},Un=1,Kn="4 3",_t=({panelRect:e})=>{const{coordSystem:t,layers:r,scales:n}=P((0,G.useShallow)(l=>({coordSystem:l.coordSystem,layers:l.layers,scales:l.scales}))),o=le(l=>l.hover.primary),s=Z();if(r.length===0||o===null||!o.anchored)return null;const i=Su({layers:r,primaryLayerId:o.layerId,coordSystem:t,resolveRenderer:s});return i===null?null:t.type==="polar"?i==="band"?(0,a.jsx)(Eu,{coordSystem:t,primary:o,panelRect:e}):(0,a.jsx)(Cu,{coordSystem:t,primary:o,panelRect:e}):i==="band"?(0,a.jsx)(Ru,{coordSystem:t,scales:n,primary:o,panelRect:e}):(0,a.jsx)(Pu,{coordSystem:t,primary:o,panelRect:e})},Pu=({coordSystem:e,primary:t,panelRect:r})=>{const n=(0,u.getHoverGuideLineProps)(e,t);return(0,a.jsx)(ze,{panelRect:r,children:(0,a.jsx)("line",{...n,stroke:y.vars.hoverGuideLineColor,strokeWidth:Un,strokeDasharray:Kn,strokeLinecap:"round","data-testid":"hover-guide-line"})})},Ru=({coordSystem:e,scales:t,primary:r,panelRect:n})=>{const o=(0,u.getHoverGuideRectProps)(e,t,r);return o===null?null:(0,a.jsx)(ze,{panelRect:n,children:(0,a.jsx)("rect",{...o,fill:y.vars.hoverGuideFillColor,"data-testid":"hover-guide-rect"})})},Cu=({coordSystem:e,primary:t,panelRect:r})=>{const n=dr(r),o=V(t.x,e.innerRadius,n),s=V(t.x,1,n);return(0,a.jsx)(ze,{panelRect:r,children:(0,a.jsx)("line",{x1:o.x,y1:o.y,x2:s.x,y2:s.y,stroke:y.vars.hoverGuideLineColor,strokeWidth:Un,strokeDasharray:Kn,strokeLinecap:"round","data-testid":"hover-guide-line"})})},Eu=({coordSystem:e,primary:t,panelRect:r})=>{const n=(0,u.getPolarHoverGuideArcProps)(e,t);if(n===null)return null;const o=(0,u.buildPolarBarArcPath)(n);return o?(0,a.jsx)(ze,{panelRect:r,children:(0,a.jsx)("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%",style:{overflow:"visible"},children:(0,a.jsx)("path",{d:o,fill:y.vars.hoverGuideFillColor,"data-testid":"hover-guide-arc"})})}):null},ze=({panelRect:e,children:t})=>(0,a.jsx)("svg",{x:e.x,y:e.y,width:e.width,height:e.height,style:{overflow:"visible",pointerEvents:"none"},"data-testid":"hover-guide",children:t}),ku=(e,t,r)=>{for(const n of Object.values(Xn)){const o=n(e,t,r);if(o!==null)return o}return null},Bu=e=>Xn[e]!==void 0,Yn=(e,t,r)=>qn(e,r,t/2),Qn=(e,t)=>{const r=(0,u.projectAnchorToPanel)(e.start,t),n=(0,u.projectAnchorToPanel)(e.end,t);return r.x===n.x&&r.y===n.y?null:{shape:"segment",start:r,end:n}},zn=(e,{panel:t,measuredBoxes:r})=>{const n=r.get(e.id);if(n===void 0)return null;const o=(0,u.alignUnitFractions)(e.align),s=(0,u.projectAnchorToPanel)(e.at,t);return{shape:"rect",rect:{x:s.x-o.x*n.width,y:s.y-(1-o.y)*n.height,width:n.width,height:n.height}}},Me=(e,t)=>(r,n,o)=>{const s=e(r).find(i=>i.id===n);return s===void 0?null:t(s,o)},qn=(e,t,r=0)=>{const n=(0,u.projectRegionToPanel)(e,t);return{shape:"rect",rect:{x:n.x-r,y:n.y-r,width:n.width+r*2,height:n.height+r*2}}},Xn={text:Me(e=>e.textAnnotations,zn),shape:Me(e=>e.shapes,(e,t)=>Yn(e.region,(0,u.resolveShapeAnnotationStyle)(t.chromeReaders,e.id).borderWidth,t.panel)),image:Me(e=>e.images,(e,t)=>qn(e.region,t.panel)),arrow:Me(e=>e.arrows,(e,t)=>Qn(e,t.panel))},Jn=(e,t)=>{const r=(0,u.findAnnotation)(e,t);return r!==null&&Bu(r.kind)&&(0,u.isAnnotationMovable)(r)},Iu=200,Mu=({engine:e,store:t,overlayRef:r})=>{(0,g.useEffect)(()=>{const n=r.current;if(!n)return;const o=Tu(n,e),s=Lu(n,e,t);return()=>{s(),o()}},[e,t,r])},Tu=(e,t)=>{const r=()=>{const i=e.getBoundingClientRect();i.width===0||i.height===0||t.setViewport({width:i.width,height:i.height})};let n=null;const o=()=>{n!==null&&clearTimeout(n),n=setTimeout(()=>{n=null,r()},Iu)},s=new ResizeObserver(o);return s.observe(e),r(),()=>{s.disconnect(),n!==null&&clearTimeout(n)}},Ou=(e,t)=>e.kind==="cursor"?null:{x:t.left+e.point.x,y:t.top+e.point.y,placement:e.placement,annotationId:e.annotationId},Lu=(e,t,r)=>{let n=null,o=null;const s=()=>{const v=e.getBoundingClientRect();return v.width>0&&v.height>0?v:null},i=(v,m)=>({x:v.clientX-m.left,y:v.clientY-m.top}),l=()=>{o=null;const v=n;if(n=null,!v)return;const m=s();if(m===null)return;const A=i(v,m),x=r.getState();if(x.isPointerSuspended)return;const b=(0,u.findPointerRegion)(A,x.pointerRegions);if(b!==null){x.setHoverState(t.query(b.cursor)),x.setTooltipAnchor(Ou(b.tooltip,m));return}const j=(0,u.toPanelCursor)(A,m);x.setHoverState(t.query(j)),x.setTooltipAnchor(null)},c=()=>{const v=r.getState();v.hover.primary===null&&v.tooltipAnchor===null||(v.setHoverState(u.RESTING_HOVER_STATE),v.setTooltipAnchor(null))},h=v=>{const m=r.getState();if(m.pointerRegions.length===0)return!1;const A=s();return A===null?!1:(0,u.findPointerRegion)(i(v,A),m.pointerRegions)!==null},d=v=>{r.getState().isPointerSuspended||h(v)||(document.removeEventListener("pointermove",d),c())},f=v=>{document.removeEventListener("pointermove",d),n=v,o===null&&(o=requestAnimationFrame(l))},p=v=>{if(n=null,o!==null&&(cancelAnimationFrame(o),o=null),!r.getState().isPointerSuspended){if(h(v)){document.addEventListener("pointermove",d);return}c()}};return e.addEventListener("pointermove",f),e.addEventListener("pointerleave",p),()=>{e.removeEventListener("pointermove",f),e.removeEventListener("pointerleave",p),document.removeEventListener("pointermove",d),o!==null&&cancelAnimationFrame(o),n=null}},Fu=({panelRect:e})=>{const{engine:t,store:r,overlayRef:n}=re(),o=J(c=>{const h=c.editTargetUnderPointer;return h!==null&&jl(h)}),s=J(c=>{const h=c.editTargetUnderPointer;return h?.kind==="annotation"?h.id:null}),i=J(c=>c.caret!==null);Mu({engine:t,store:r,overlayRef:n});const l=P(c=>s!==null&&Jn(c.spec.annotations,s));return(0,a.jsx)("rect",{ref:n,x:e.x,y:e.y,width:e.width,height:e.height,fill:"transparent",pointerEvents:i?"none":"all",cursor:Nu(l,o),"data-testid":"pointer-capture-layer"})},Nu=(e,t)=>e?"move":t?"pointer":void 0,rt="data-hover-active",Du=e=>{const{store:t}=re(),r=(0,be.useStore)(t,n=>n.hover.primary!==null);(0,g.useEffect)(()=>{const n=e.current;if(n)return r?n.setAttribute(rt,"true"):n.removeAttribute(rt),()=>{n.removeAttribute(rt)}},[e,r])},Zn=()=>{const e=I();return(0,g.useMemo)(()=>t=>(0,u.resolveArrowAnnotationStyle)(e,t),[e])},qe=()=>J(e=>ce(e,"move-drag")?.annotationId??ce(e,"shape-resize-drag")?.annotationId??ce(e,"arrow-endpoint-drag")?.annotationId??null),ge=e=>{const t=P(i=>i.annotations),r=En(),n=ml(),o=(0,g.useCallback)(i=>$t(n,"cycle",i,`Annotation reference cycle detected; dropping annotation(s): ${i.join(", ")}`),[n]),s=(0,g.useCallback)(i=>$t(n,"missing-ref",i,`Annotation reference target(s) no longer exist (dropped during compilation); dropping annotations referencing: ${i.join(", ")}`),[n]);return(0,g.useMemo)(()=>(0,u.resolveDeferredAnchors)({annotations:t,panelRect:e,measuredBoxes:r,onCycle:o,onMissingRef:s}),[t,e,r,o,s])},$t=(e,t,r,n)=>{const o=[t,...[...r].sort()].join("\0");e.has(o)||(e.add(o),console.warn(n))},Gu=16,_n=({linePath:e,strokeWidth:t})=>(0,a.jsx)("path",{d:e,stroke:"transparent",strokeWidth:Math.max(t,Gu),fill:"none",pointerEvents:"stroke"}),Hu=1.4,Wu={light:{primary:"#1D2129",inverse:"#FFFFFF"},dark:{primary:"#FFFFFF",inverse:"#1D2129"}},$n=({computed:e,style:t,isAddressable:r})=>{const n=(0,g.useId)(),{colorScheme:o}=Ke(),s=e.dashArray?{strokeDasharray:e.dashArray,strokeDashoffset:e.dashOffset}:{},i=t.shadow==="none"?null:t.shadow,l=t.borderWidth>0,c=Wu[o],h=t.borderColor??Ku(t.color,c.primary,c.inverse),d=i===null?null:Uu(e,t.borderWidth,i.blur);return(0,a.jsxs)("g",{pointerEvents:r?void 0:"none",children:[r&&(0,a.jsx)(_n,{linePath:e.linePath,strokeWidth:e.strokeWidth}),i!==null&&d!==null&&(0,a.jsx)("defs",{children:(0,a.jsx)("filter",{id:n,filterUnits:"userSpaceOnUse",...d,children:(0,a.jsx)("feDropShadow",{dx:i.offsetX,dy:i.offsetY,stdDeviation:i.blur,floodColor:i.color})})}),(0,a.jsxs)("g",{filter:i===null?void 0:`url(#${n})`,children:[l&&(0,a.jsx)("path",{d:Vu(e),stroke:h,strokeWidth:e.strokeWidth+2*t.borderWidth,strokeLinecap:"round",fill:"none"}),(0,a.jsx)("path",{d:e.linePath,stroke:t.color,strokeWidth:e.strokeWidth,strokeLinecap:"round",fill:"none",...s}),e.startArrowheadPath.length>0&&(0,a.jsx)("path",{d:e.startArrowheadPath,stroke:t.color,strokeWidth:e.strokeWidth,strokeLinecap:"round",fill:"none"}),e.endArrowheadPath.length>0&&(0,a.jsx)("path",{d:e.endArrowheadPath,stroke:t.color,strokeWidth:e.strokeWidth,strokeLinecap:"round",fill:"none"})]})]})},Vu=e=>[e.linePath,e.startArrowheadPath,e.endArrowheadPath].filter(t=>t.length>0).join(" "),Uu=(e,t,r)=>{const n=e.arrowheadExtent+e.strokeWidth+t+r;return{x:Math.min(e.startX,e.endX)-n,y:Math.min(e.startY,e.endY)-n,width:Math.abs(e.endX-e.startX)+2*n,height:Math.abs(e.endY-e.startY)+2*n}},Ku=(e,t,r)=>{try{return(0,Go.getContrast)(e,t)<Hu?r:t}catch{return r}},Yu=({panelRect:e,isEditable:t})=>{const{arrows:r}=ge(e),n=qe(),o=Zn(),s=(0,g.useMemo)(()=>r.filter(i=>i.id!==n).flatMap(i=>{const l=o(i.id),c=(0,u.computeArrow)({arrow:i,style:l,panelWidth:e.width,panelHeight:e.height});return c===null?[]:[{computed:c,style:l}]}),[r,n,e.width,e.height,o]);return s.length===0?null:(0,a.jsx)("g",{transform:`translate(${e.x}, ${e.y})`,"data-testid":"arrows",children:s.map(({computed:i,style:l})=>(0,a.jsx)("g",{...we({kind:"annotation",id:i.id}),children:(0,a.jsx)($n,{computed:i,style:l,isAddressable:t})},i.id))})},eo=()=>{const{selectionStore:e}=N();return(0,be.useStore)(e,t=>t.selection)},Qu=({linePath:e,arrowheadPath:t,stroke:r,strokeWidth:n,isAddressable:o})=>{const s={stroke:r,strokeWidth:n,strokeLinecap:"round",fill:"none"};return(0,a.jsxs)("g",{pointerEvents:o?void 0:"none",children:[o&&(0,a.jsx)(_n,{linePath:e,strokeWidth:n}),(0,a.jsx)("path",{d:e,...s}),(0,a.jsx)("path",{d:t,...s,strokeLinejoin:"round"})]})},zu=({x:e,y:t,text:r,box:n,label:o,arrowColor:s,isAddressable:i})=>{const{fonts:l}=oe();return(0,a.jsxs)("g",{pointerEvents:i?void 0:"none",children:[(0,a.jsx)("rect",{x:n.x,y:n.y,width:n.width,height:n.height,rx:o.borderRadius,fill:o.background,stroke:o.borderColor??s,strokeWidth:o.borderWidth}),(0,a.jsx)("text",{x:e,y:t,dominantBaseline:"central",textAnchor:"middle",fill:o.textColor,style:{fontFamily:o.fontFamily??l.familyDefault,fontSize:o.fontSize,fontWeight:o.fontWeight},children:r})]})},qu="_1i8rg6j0",Xu="75%",Ju=({panelRect:e,isEditable:t})=>{const r=Tn(),n=J(i=>{const l=i.editTargetUnderPointer;return l?.kind==="annotation"?l.id:null}),o=eo(),s=(0,g.useMemo)(()=>new Set(o.filter(i=>i.kind==="annotation").map(i=>i.id)),[o]);return r.length===0?null:(0,a.jsx)("g",{transform:`translate(${e.x}, ${e.y})`,"data-testid":"difference-arrows",children:r.map(({color:i,style:l,id:c,linePath:h,arrowheadPath:d,labelPosition:f,labelBox:p,labelText:v,isDragged:m,hasComparableEndpoints:A})=>{const x=n===c||s.has(c),b=m&&!A,j=b?y.vars.alert:i,w=x&&!b?Zu(j):j;return(0,a.jsxs)("g",{className:n===c?qu:void 0,"data-warning":b||void 0,...we({kind:"annotation",id:c}),children:[(0,a.jsx)(Qu,{linePath:h,arrowheadPath:d,stroke:w,strokeWidth:l.strokeWidth,isAddressable:t}),(0,a.jsx)(zu,{x:f.x,y:f.y,text:v,box:p,label:l.label,arrowColor:w,isAddressable:t})]},c)})})},Zu=e=>`color-mix(in srgb, ${e} ${Xu}, ${y.vars.textPrimary})`,to=()=>{const e=I();return(0,g.useMemo)(()=>t=>(0,u.resolveImageAnnotationStyle)(e,t),[e])},_u={fill:"none",contain:"xMidYMid meet",cover:"xMidYMid slice"},ro=({image:e,panel:t,style:r})=>{const n=(0,g.useId)(),{src:o,region:s,fit:i}=e,l=(0,u.projectRegionToPanel)(s,t),c=r.borderRadius>0;return(0,a.jsxs)("g",{children:[c&&(0,a.jsx)("clipPath",{id:n,children:(0,a.jsx)("rect",{...l,rx:r.borderRadius})}),(0,a.jsx)("image",{href:o,...l,preserveAspectRatio:_u[i],opacity:r.alpha,clipPath:c?`url(#${n})`:void 0})]})},er=({panelRect:e,zOrder:t})=>{const r=ge(e).images,n=to(),o=qe(),s=r.filter(i=>i.zOrder===t&&i.id!==o);return s.length===0?null:(0,a.jsx)("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":`image-annotations-${t}`,children:s.map(i=>(0,a.jsx)("g",{...we({kind:"annotation",id:i.id}),children:(0,a.jsx)(ro,{image:i,panel:e,style:n(i.id)})},i.id))})},no=()=>{const e=I();return(0,g.useMemo)(()=>t=>(0,u.resolveShapeAnnotationStyle)(e,t),[e])},oo=({shape:e,style:t,panel:r})=>{const n=(0,u.projectRegionToPanel)(e.region,r);return(0,a.jsx)("rect",{x:n.x,y:n.y,width:n.width,height:n.height,fill:t.color,fillOpacity:t.alpha,stroke:(0,u.getShapeAnnotationStroke)(t)??"none",strokeWidth:t.borderWidth})},tr=({panelRect:e,zOrder:t})=>{const r=ge(e).shapes,n=no(),o=qe(),s=r.filter(i=>i.zOrder===t&&i.id!==o);return s.length===0?null:(0,a.jsx)("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":`shapes-${t}`,children:s.map(i=>(0,a.jsx)("g",{...we({kind:"annotation",id:i.id}),children:(0,a.jsx)(oo,{shape:i,style:n(i.id),panel:e})},i.id))})},ao=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>r=>(0,u.resolveTextAnnotationStyle)(e,r,t),[e,t])},$u="_1aj6s5s0",ed="_1aj6s5s1",td=.1,rd=({annotation:e,panel:t,style:r,blockRef:n})=>(0,a.jsx)(so,{annotation:e,panel:t,style:r,blockRef:n,children:(0,a.jsx)(ue,{content:e.content})}),so=({annotation:e,panel:t,style:r,blockRef:n,children:o})=>{const s=(0,u.projectAnchorToPanel)(e.at,t);return(0,a.jsx)("foreignObject",{x:s.x,y:s.y,width:(0,u.toPercent)(e.width),height:t.height,overflow:"visible",pointerEvents:"none",children:(0,a.jsx)("div",{ref:n,className:$u,style:{...od(r),transform:nd(e.align)},children:o})})},nd=e=>{const t=(0,u.alignUnitFractions)(e);return`translate(${-t.x*100}%, ${-(1-t.y)*100}%)`},od=e=>({color:e.textColor,...e.fontFamily===void 0?{}:{fontFamily:e.fontFamily},fontSize:e.fontSize,fontWeight:e.fontWeight,lineHeight:e.lineHeight,padding:`${e.paddingBlock}px ${e.paddingInline}px`,borderRadius:e.borderRadius,...ad(e)}),ad=e=>{if(e.background==="transparent")return{};const t=e.alpha<1?O(e.background,e.alpha):e.background;if(e.borderWidth<=0)return{backgroundColor:t};const r=e.borderColor??yr(e.background,td);return{backgroundColor:t,boxShadow:`0 0 0 ${e.borderWidth}px ${r}`}},sd=e=>{const t=ge(e).textAnnotations,r=J(n=>ce(n,"text-resize-drag"));return(0,g.useMemo)(()=>t.map(n=>io(n,r)),[t,r])},io=(e,t)=>t===null||t.annotationId!==e.id?e:{...e,at:{...e.at,x:e.at.x+t.shift},width:t.width},id=({panelRect:e})=>{const t=sd(e),r=ao(),n=qe(),o=t.filter(s=>s.id!==n);return o.length===0?null:(0,a.jsx)("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":"text-annotations",children:o.map(s=>(0,a.jsx)(ld,{annotation:s,panel:e,style:r(s.id)},s.id))})},ld=({annotation:e,panel:t,style:r})=>{const n=kn(e.id),o=J(i=>i.caret?.annotationId===e.id),{TextAnnotation:s}=Et();return(0,a.jsx)("g",{...we({kind:"annotation",id:e.id}),children:(0,a.jsx)(so,{annotation:e,panel:t,style:r,blockRef:n,children:o&&s?(0,a.jsx)(s,{annotation:e}):(0,a.jsx)(ue,{content:e.content})})})},lo=()=>{const e=I(),t=P(r=>r.config.appearance.textScale);return(0,g.useMemo)(()=>(r,n)=>(0,u.resolveCalloutAnnotationStyle)(e,r,n,t),[e,t])},cd="ph8bdc0";var ud="ph8bdc2",rr={hittable:"ph8bdc4 ph8bdc3",inert:"ph8bdc5 ph8bdc3"},dd=({cx:e,cy:t,color:r,style:n})=>{const o=pi(n.shadow);return(0,a.jsx)("circle",{cx:e,cy:t,r:n.size/2,style:{fill:r,stroke:n.borderColor,strokeWidth:n.borderWidth,...o===void 0?{}:{filter:o}}})};function hd(e){const t=te(),{formattingLocale:r}=N(),n=lo(),o=P((0,G.useShallow)(c=>({pinnedNumbers:c.annotations.pinnedNumbers,comments:c.annotations.comments,coordSystem:c.coordSystem,numberFormat:c.config.numberFormat,parsingLocale:c.config.parsingLocale}))),s=r??o.parsingLocale,i=(0,g.useMemo)(()=>(0,u.buildPinnedNumberValueFormatter)({numberFormat:o.numberFormat,locale:s}),[o.numberFormat,s]),l=(0,g.useMemo)(()=>(c,h,d)=>{const f=n(c==="pinned-number"?"pinnedNumber":"comment",h).label,p={family:f.fontFamily??y.DEFAULT_FONT_FAMILY,size:f.fontSize,weight:f.fontWeight},v=gd(t,c,d,p),m=t.measureText(v,p),A=c==="pinned-number"?15:0;return{width:m.width+A+(f.paddingInline+f.borderWidth)*2,height:Math.max(m.height,10)+(f.paddingBlock+f.borderWidth)*2,text:v}},[t,n]);return(0,g.useMemo)(()=>(0,u.placeCallouts)({pinnedNumbers:o.pinnedNumbers,comments:o.comments,panelRect:e,coordSystem:o.coordSystem,measurer:l,formatPinnedNumber:c=>i(c.at)}),[o.pinnedNumbers,o.comments,e,o.coordSystem,l,i])}var gd=(e,t,r,n)=>t!=="comment"?r:(0,u.truncateToWidth)(r,140,o=>e.measureText(o,n).width),nr="callouts",vd=({panelRect:e})=>{const{pinnedNumbers:t,comments:r}=P((0,G.useShallow)(v=>({pinnedNumbers:v.annotations.pinnedNumbers,comments:v.annotations.comments}))),n=P(v=>v.coordSystem),o=Z(),s=ur(),i=lo(),l=hd(e),{store:c}=re(),h=(0,g.useMemo)(()=>{const v=new Map;for(const m of t)v.set(m.id,m.at);for(const m of r)v.set(m.id,m.at);return v},[t,r]),d=(0,g.useMemo)(()=>{const v=new Map;for(const[m,A]of h)v.set(m,s(A));return v},[h,s]),f=(0,g.useMemo)(()=>{const v=new Map;for(const m of t)v.set(m.id,i("pinnedNumber",m.id));for(const m of r)v.set(m.id,i("comment",m.id));return v},[t,r,i]),p=(0,g.useMemo)(()=>(0,u.buildCalloutHitRegions)(l,e),[l,e]);return(0,g.useEffect)(()=>{const v=c.getState();return v.publishPointerRegions(nr,p),()=>{v.publishPointerRegions(nr,[])}},[c,p]),t.length===0&&r.length===0?null:(0,a.jsx)("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible",className:cd,"data-testid":"callouts",children:l.map(v=>{if(!v.inView)return null;const m=h.get(v.id),A=f.get(v.id);if(m===void 0||A===void 0)return null;const x=d.get(v.id),b=v.miniRect.width<=e.width&&v.miniRect.height<=e.height;return(0,a.jsxs)("g",{"data-testid":v.kind,children:[(0,a.jsx)("foreignObject",{x:v.miniRect.x,y:v.miniRect.y,width:v.miniRect.width,height:v.miniRect.height,overflow:"visible",children:(0,a.jsxs)("div",{className:b?rr.hittable:rr.inert,style:pd(A.label),children:[v.kind==="pinned-number"&&(0,a.jsx)("span",{className:"ph8bdc1",children:(0,a.jsx)(je,{shape:o(m.geom,n.type)?.swatchShape??"square",surface:"callout",color:x??"currentColor",width:10,height:10})}),(0,a.jsx)("span",{className:ud,style:md(A.label),children:v.text})]})}),(0,a.jsx)(dd,{cx:v.anchorPx.x,cy:v.anchorPx.y,color:fd(A.marker,x),style:A.marker})]},v.id)})})},fd=(e,t)=>e.isColorAuthored?e.color:t??e.color,pd=e=>({background:e.background,borderRadius:e.borderRadius,padding:`${e.paddingBlock}px ${e.paddingInline}px`,boxShadow:sn(e.shadow),...e.borderWidth>0?{border:`${e.borderWidth}px solid ${e.borderColor}`}:{}}),md=e=>({...e.fontFamily===void 0?{}:{fontFamily:e.fontFamily},fontSize:e.fontSize,fontWeight:e.fontWeight,lineHeight:e.lineHeight,color:e.textColor}),co={"clapping-hands":{aspectRatio:1.059,src:"data:image/png;base64,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"},"grinning-face":{aspectRatio:1.03,src:"data:image/png;base64,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"},rocket:{aspectRatio:1.046,src:"data:image/png;base64,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"},"thumbs-down":{aspectRatio:1.063,src:"data:image/png;base64,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"},"thumbs-up":{aspectRatio:1.063,src:"data:image/png;base64,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"}},xd=3.2,yd=({panelRect:e})=>{const t=ge(e).stickers,r=P(o=>o.config.appearance.textScale);if(t.length===0)return null;const n=pt(xd,r);return(0,a.jsx)("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":"stickers",children:t.map(o=>{const s=(0,u.projectAnchorToPanel)(o.at,e);return(0,a.jsx)(Ad,{sticker:o,sizePx:n,x:s.x,y:s.y},o.id)})})},Ad=({sticker:e,sizePx:t,x:r,y:n})=>{const o=co[e.sticker];if(!o)return null;const{width:s,height:i}=bd(o.aspectRatio,t);return(0,a.jsx)("image",{href:o.src,x:r,y:n,width:s,height:i,transform:`translate(${-s/2}, ${-i/2})`})},bd=(e,t)=>e>=1?{width:t,height:t/e}:{width:t*e,height:t},jd=.25,uo=({children:e,...t})=>{const r=Xi();return r<=0?(0,a.jsx)("g",{...t,children:e}):(0,a.jsx)(S.motion.g,{...t,initial:{opacity:0},animate:{opacity:1},transition:{duration:jd,delay:r},children:e})},wd="_1agclyl0";var Sd="_1agclyl2",ho=({x:e,y:t,width:r,height:n,text:o,isRotated:s,target:i,position:l,coordType:c,backdropColor:h})=>{const d=Qe(),f=s?`rotate(-90 ${e} ${t})`:void 0,p=d[i][l],v=p.borderColor!==void 0&&(p.borderWidth??0)>0,m=Cd(i,c,p),A=Rd(p,m,h);return(0,a.jsxs)("g",{transform:f,children:[m&&(0,a.jsx)("rect",{className:"_1agclyl1",x:e-r/2,y:t-n/2,width:r,height:n,rx:p.borderRadius,ry:p.borderRadius,fill:p.background,...v?{stroke:p.borderColor,strokeWidth:p.borderWidth}:{}}),(0,a.jsx)("text",{className:Sd,style:{...$(p),fill:Pd(p,A)},x:e,y:t,textAnchor:"middle",dominantBaseline:"central",children:o})]})},Pd=(e,t)=>e.isTextColorAuthored||t===void 0?e.textColor:(0,u.pickReadableTextColor)(t),Rd=(e,t,r)=>{if(r!==void 0)return(0,u.compositeColor)(t?e.background:void 0,r)},Cd=(e,t,r)=>r.background===void 0?!1:e==="aggregate"||t==="cartesian",Ed=({panelRect:e,formattingLocale:t,plotBottomY:r,isFooterChromeReserved:n})=>{const o=te(),s=oe(),i=P((0,G.useShallow)(d=>({layers:d.layers,coordSystem:d.coordSystem,axes:d.guides.axes,numberFormat:d.config.numberFormat,parsingLocale:d.config.parsingLocale,textScale:d.config.appearance.textScale}))),l=Qe(),c=(0,g.useMemo)(()=>An({textMeasurer:o,dataLabelStyles:l,familyDefault:s.fonts.familyDefault}),[o,l,s.fonts.familyDefault]),h=(0,g.useMemo)(()=>(0,u.buildDataLabelsContent)({...i,panelRect:e,measureDataLabel:c,formattingLocale:t,plotBottomY:r,isFooterChromeReserved:n}),[i,e,c,t,r,n]).labels.map((d,f)=>(0,a.jsx)(ho,{x:d.x,y:d.y,width:d.width,height:d.height,text:d.text,isRotated:d.isRotated,target:d.target,position:d.position,coordType:i.coordSystem.type,backdropColor:d.backdropColor},`${d.layerId}:${f}`));return(0,a.jsx)(uo,{className:wd,transform:`translate(${e.x}, ${e.y})`,"data-testid":"data-labels",children:h})},kd=({edge:e,position:t,labelRotation:r,label:n,tickLabelStyle:o})=>{const{offset:s,textColor:i}=o,l=(0,u.toPercent)(t),c={style:$(o),fill:i},h=r!==0&&(e==="top"||e==="bottom"),d=e==="top";return h?(0,a.jsx)("svg",{x:l,y:d?"100%":0,style:{overflow:"visible"},children:(0,a.jsx)("text",{...Id(d,s,r),...c,children:n})}):(0,a.jsx)("text",{...Bd(e,l,s),...c,children:n})},Bd=(e,t,r)=>{switch(e){case"bottom":return{x:t,y:r,textAnchor:"middle",dominantBaseline:"hanging"};case"top":return{x:t,y:"100%",dy:-r,textAnchor:"middle",dominantBaseline:"auto"};case"left":return{x:"100%",dx:-r,y:t,textAnchor:"end",dominantBaseline:"central"};case"right":return{x:r,y:t,textAnchor:"start",dominantBaseline:"central"}}},Id=(e,t,r)=>{const n=e?-t:t;return{x:0,y:n,textAnchor:e?"start":"end",dominantBaseline:"central",transform:`rotate(${r}, 0, ${n})`}},Md=({formattedAxis:e,rect:t})=>{const r=e.position==="bottom"||e.position==="top",n=(0,u.getAestheticFromScaleAestheticKey)(e.scaleAestheticKey),o=St()[n],s=yn()[n];return(0,a.jsxs)("svg",{x:t.x,y:t.y,width:t.width,height:t.height,style:{overflow:"visible"},children:[!1,e.ticks.map((i,l)=>{const c=i.formattedLabel,h=r?i.position:1-i.position,d=Td(e.position,h,t,s.length);return(0,a.jsxs)("g",{children:[e.ticksVisible&&(0,a.jsx)("line",{...d,stroke:s.color,strokeWidth:s.strokeWidth,strokeDasharray:(0,u.getChromeDashArray)(s.lineType)}),(0,a.jsx)(kd,{edge:e.position,position:h,labelRotation:e.labelRotation,label:c,tickLabelStyle:o})]},l)})]})},Td=(e,t,r,n)=>{const o=(0,u.toPercent)(t);switch(e){case"bottom":return{x1:o,y1:0,x2:o,y2:n};case"top":return{x1:o,y1:r.height,x2:o,y2:r.height-n};case"left":return{x1:r.width,y1:o,x2:r.width-n,y2:o};case"right":return{x1:0,y1:o,x2:n,y2:o}}},Od=({axes:e,rects:t})=>{const r=xn();return(0,a.jsx)(a.Fragment,{children:e.map(n=>{const o=t[n.position];if(!o||!n.isVisible)return null;const s=Ld(n.position,o),i=r[(0,u.getAestheticFromScaleAestheticKey)(n.scaleAestheticKey)];return(0,a.jsxs)("g",{transform:`translate(${o.x}, ${o.y})`,children:[!1,(0,a.jsx)("text",{style:$(i),fill:i.textColor,...s,children:n.label})]},`axis-label-${n.position}`)})})},Ld=(e,t)=>{const r={x:t.width/2,y:t.height/2,textAnchor:"middle",dominantBaseline:"middle"};return e==="left"?(r.x=0,r.textAnchor="start"):e==="right"&&(r.x=t.width,r.textAnchor="end"),r},Fd=({formattedAxes:e,tickRects:t})=>(0,a.jsx)(a.Fragment,{children:e.map(r=>{if(r.geometry!=="linear")return null;const n=t[r.position];return!n||!r.isVisible?null:(0,a.jsx)(Md,{formattedAxis:r,rect:n},r.scaleAestheticKey)})}),Nd=({formattedAxes:e,labelRects:t})=>(0,a.jsx)(Od,{axes:e.filter(r=>r.geometry==="linear"),rects:t}),go={strokeDashoffset:"0",strokeLinecap:"round"},vo=({axes:e,panelBorderSizes:t,panelFrameRect:r,panelRect:n})=>{const o=I(),s=n.x-r.x,i=n.y-r.y;return(0,a.jsx)("svg",{"data-testid":"grid",x:r.x,y:r.y,width:r.width,height:r.height,style:{overflow:"visible"},children:e.map(l=>{if(l.geometry!=="linear"||!l.gridVisible)return null;const c=l.position==="bottom"||l.position==="top",h=(0,u.resolveGridLineStyle)(o,(0,u.getAestheticFromScaleAestheticKey)(l.scaleAestheticKey)),d=(0,u.getChromeDashArray)(h.lineType);return(0,a.jsx)("g",{children:l.ticks.map((f,p)=>{const v=Dd(c,f.position);if(v!==null&&t[v]>0)return null;const m=c?f.position:1-f.position;let A;if(c){const x=m*n.width+s;A={x1:x,y1:0,x2:x,y2:"100%"}}else{const x=m*n.height+i;A={x1:0,y1:x,x2:"100%",y2:x}}return(0,a.jsx)("line",{...A,...go,strokeDasharray:d,strokeWidth:h.strokeWidth,stroke:h.color},p)})},l.scaleAestheticKey)})})},Dd=(e,t)=>t<=0?e?"left":"bottom":t>=1?e?"right":"top":null,Gd=({sizes:e,panelFrameRect:t})=>{const r=P(i=>i.coordSystem.type==="polar"),n=I(),o=(0,g.useMemo)(()=>(0,u.resolvePanelBorderStyle)(n),[n]);if(r)return null;const s=(0,u.computePanelBorderPaths)(o,{x:e.left/2,y:e.top/2,width:t.width-(e.left+e.right)/2,height:t.height-(e.top+e.bottom)/2});return s.length===0?null:(0,a.jsx)("svg",{"data-testid":"panel-border",x:t.x,y:t.y,width:t.width,height:t.height,style:{overflow:"visible"},children:s.map((i,l)=>(0,a.jsx)("path",{d:Hd(i.segments),fill:"none",stroke:i.color,strokeDasharray:(0,u.getChromeDashArray)(i.lineType),strokeWidth:i.strokeWidth,...go},l))})},Hd=e=>e.map(t=>{switch(t.type){case"move":return`M ${t.x} ${t.y}`;case"line":return`L ${t.x} ${t.y}`;case"arc":{const r=t.cx+t.radius*Math.cos(t.endAngle),n=t.cy+t.radius*Math.sin(t.endAngle);return`A ${t.radius} ${t.radius} 0 0 1 ${r} ${n}`}case"close":return"Z"}}).join(" ");var fo=(e,t)=>{const r=P(c=>c.coordSystem);if(r.type!=="polar")return null;const n=t.find(c=>c.geometry==="circular");if(!n)return null;const{innerRadius:o,startAngle:s,spokeRotation:i}=r,l=dr(e);return l.radius<=0?null:{circle:l,circularAxis:n,radialAxis:t.find(c=>c.geometry==="radial"),innerRadius:o,startAngle:s,angleFor:c=>(0,u.positionToAngle)(c,s,i),radiusNormFor:c=>o+c*(1-o)}},Wd=3,Vd=16,Ud=({formattedAxes:e,panelRect:t})=>{const r=St(),n=fo(t,e);if(!n)return null;const{circle:o,circularAxis:s,radialAxis:i,startAngle:l,angleFor:c,radiusNormFor:h}=n,d=Kd(i,h,o.radius),f=p=>r[(0,u.getAestheticFromScaleAestheticKey)(p.scaleAestheticKey)];return(0,a.jsxs)("svg",{x:t.x,y:t.y,width:t.width,height:t.height,overflow:"visible","data-testid":"polar-axis-ticks",children:[i?.isVisible&&d.map(({tick:p,radiusNorm:v},m)=>{const A=V(l,v,o);return(0,a.jsx)("text",{x:A.x,y:A.y,textAnchor:"middle",dominantBaseline:"central",style:{...$(f(i)),paintOrder:"stroke"},stroke:y.vars.graphBackground,strokeWidth:Wd,fill:f(i).textColor,children:p.formattedLabel},`radial-label-${m}`)}),s.isVisible&&s.ticks.map((p,v)=>{if(p.position>=1-1e-9)return null;const m=c(p.position),A=V(m,(o.radius+u.POLAR_RIM_LABEL_GAP_PX)/o.radius,o);return(0,a.jsx)("text",{x:A.x,y:A.y,textAnchor:Yd(m),dominantBaseline:"central",style:$(f(s)),fill:f(s).textColor,children:p.formattedLabel},`rim-label-${v}`)})]})},Kd=(e,t,r)=>{if(!e)return[];const n=[];let o=Number.NEGATIVE_INFINITY;for(const s of e.ticks){const i=t(s.position);if(i<=0)continue;const l=i*r;l-o<Vd||(n.push({tick:s,radiusNorm:i}),o=l)}return n},Yd=e=>{const t=Math.sin(e);return Math.abs(t)<.01?"middle":t>0?"start":"end"},Qd=({formattedAxes:e,panelRect:t})=>{const r=I(),n=fo(t,e);if(!n)return null;const{circle:o,circularAxis:s,radialAxis:i,innerRadius:l,angleFor:c,radiusNormFor:h}=n,d=(0,u.resolveGridLineStyle)(r,"y"),f=(0,u.resolveGridLineStyle)(r,"x");return(0,a.jsxs)("svg",{x:t.x,y:t.y,width:t.width,height:t.height,overflow:"visible","data-testid":"polar-grid",children:[i?.gridVisible&&i.ticks.map((p,v)=>{const m=h(p.position)*o.radius;return m<=0||p.position>=1?null:(0,a.jsx)("circle",{cx:o.centerX,cy:o.centerY,r:m,fill:"none",stroke:d.color,strokeWidth:d.strokeWidth},`ring-${v}`)}),i?.gridVisible&&(0,a.jsx)("circle",{cx:o.centerX,cy:o.centerY,r:o.radius,fill:"none",stroke:d.color,strokeWidth:d.strokeWidth}),s.gridVisible&&s.ticks.map((p,v)=>{if(p.position>=1-1e-9)return null;const m=c(p.position),A=V(m,l,o),x=V(m,1,o);return(0,a.jsx)("line",{x1:A.x,y1:A.y,x2:x.x,y2:x.y,stroke:f.color,strokeWidth:f.strokeWidth},`spoke-${v}`)})]})},zd=({layer:e,coordSystem:t,shouldAnimateTransitions:r,isDimmed:n,dimStyle:o,formattingLocale:s})=>{const i=Z(),l=Ji(e.id),c=i(e.geom,t.type);if(c===null)return null;const h=Ve(c.render);return h.overlay?null:(0,a.jsx)("g",{style:n?{opacity:o.opacity,...o.saturation===void 0?{}:{filter:`saturate(${o.saturation})`}}:void 0,children:h.fn({layer:e,coordSystem:t,shouldAnimateTransitions:r,formattingLocale:s,intro:l})})};function qd({renderer:e,layer:t,coordSystem:r,candidates:n}){if(e?.getOverlayAnchor===void 0||n.length===0)return[];const o=[];for(const{observation:s,observationIndex:i}of n){const l=e.getOverlayAnchor({layer:t,coordSystem:r,observation:s});l!==null&&o.push({observation:s,observationIndex:i,anchor:l})}return o}var Xd=4,Jd=({renderer:e,layer:t,matchedLayer:r,overlayCandidates:n,coordSystem:o,shouldAnimateTransitions:s,panelRect:i,formattingLocale:l})=>{const c=P(b=>b.config.numberFormat),h=(0,g.useMemo)(()=>qd({renderer:e,layer:t,coordSystem:o,candidates:n}),[e,t,o,n]),d=k(t),f=(0,g.useMemo)(()=>(0,u.createSegmentYReader)(t),[t]),p=(0,g.useMemo)(()=>(0,u.buildLayerYValueFormatter)({layer:t,numberFormat:c,locale:l}),[c,t,l]),{fonts:v}=oe(),m=Qe();if(e===null||r===null&&h.length===0)return null;const A=Ve(e.render);let x=null;if(r&&!A.overlay){const b={layer:r,sourceLayer:t,coordSystem:o,shouldAnimateTransitions:s,formattingLocale:l,panelRect:i};x=e.renderHighlight?e.renderHighlight(b):A.fn(b)}return(0,a.jsxs)(uo,{children:[x,h.map(({observation:b,observationIndex:j,anchor:w})=>(0,a.jsx)(Zd,{observation:b,anchor:w,panelRect:i,fill:d.get("color",b),dotRadius:(d.get("size",b)??8)/2,readSegmentY:f,formatYValue:p,labelStyle:m.observation.outside,familyDefault:v.familyDefault},_d(b,j)))]})},Zd=({observation:e,anchor:t,panelRect:r,fill:n,dotRadius:o,readSegmentY:s,formatYValue:i,labelStyle:l,familyDefault:c})=>{const h=te(),d=(0,u.toViewBoxX)(t.x),f=(0,u.toViewBoxY)(t.y),p=s(e),v=(0,u.isDefined)(p)?i(p,e):null,m=(0,g.useMemo)(()=>{if(v===null)return null;const A=h.measureText(v,(0,u.toFontSpec)(l,c));return{width:A.width+l.paddingInline*2,height:A.height+l.paddingBlock*2}},[v,h,l,c]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("circle",{"data-testid":"highlight-overlay-dot",cx:(0,u.toPercent)(d),cy:(0,u.toPercent)(f),r:o,fill:n}),v!==null&&m!==null&&(0,a.jsx)(ho,{x:d*r.width,y:f*r.height-o-Xd-m.height/2,width:m.width,height:m.height,text:v,isRotated:!1,target:"observation",position:"outside",coordType:"cartesian"})]})},_d=(e,t)=>{const r=e[u.GROUP_VARIABLES.group];return`${String(r??"")}\0${t}`},$d=({layer:e,coordSystem:t,panelRect:r})=>{const{primary:n,group:o,related:s}=le((0,G.useShallow)(h=>({primary:h.hover.primary,group:h.hover.group,related:h.hover.related}))),i=Z();if(n===null)return null;const l=i(e.geom,t.type);if(l===null||qr(l))return null;const c=s.get(e.id)??[];return n.layerId===e.id?l.renderHover({layer:e,coordSystem:t,primary:n,group:o,related:c,panelRect:r}):c.length===0?null:l.renderHoverCompanions({layer:e,primary:n,related:c})},eh=e=>{const t=k(e);return(0,g.useMemo)(()=>{const[r]=e.data;return r===void 0?{opacity:void 0,saturation:void 0}:{opacity:t.get("alpha",r,"dimmed"),saturation:t.get("saturation",r,"dimmed")}},[e,t])},th="var(--to1jkx0)",rh="var(--to1jkx1)",nh="to1jkx2",oh="to1jkx3",ah=({shouldAnimateTransitions:e,panelRect:t,formattingLocale:r})=>{const{layers:n,coordSystem:o}=P((0,G.useShallow)(s=>({layers:s.layers,coordSystem:s.coordSystem})));return(0,a.jsx)("svg",{x:t.x,y:t.y,width:t.width,height:t.height,className:nh,"data-testid":"geom-layers",...Sl(),children:n.map(s=>(0,a.jsxs)(g.Fragment,{children:[(0,a.jsx)(ch,{layer:s,coordSystem:o,shouldAnimateTransitions:e,panelRect:t,formattingLocale:r}),(0,a.jsx)($d,{layer:s,coordSystem:o,panelRect:t})]},`${s.id}-${sh(o)}`))})},sh=e=>e.type==="cartesian"?`cartesian-${e.mainAxis}`:e.type,ih=e=>{if(e.geom!=="rule")return oh},lh=e=>(0,lr.assignInlineVars)({...e.opacity===void 0?{}:{[th]:String(e.opacity)},...e.saturation===void 0?{}:{[rh]:`saturate(${e.saturation})`}}),ch=({layer:e,coordSystem:t,shouldAnimateTransitions:r,panelRect:n,formattingLocale:o})=>{const s=Z(),i=(0,g.useMemo)(()=>s(e.geom,t.type),[s,e,t]),l=e.highlight,c=eh(e),h={layer:e,coordSystem:t,shouldAnimateTransitions:r,formattingLocale:o},d=i?Ve(i.render):null,f=e.spatialKind==="render-hit-test",p=ih(e);return(0,a.jsxs)("g",{className:p,style:p===void 0?void 0:lh(c),children:[(0,a.jsx)(zd,{layer:e,coordSystem:t,shouldAnimateTransitions:r,isDimmed:l?.composition.isDimmed??!1,dimStyle:c,formattingLocale:o}),f&&!d?.overlay&&i?.hitTest&&(0,a.jsx)(qs,{hitTest:i.hitTest,input:h}),f&&d?.overlay&&(0,a.jsx)($s,{render:d.fn,input:h}),l!==null&&(0,a.jsx)(Jd,{renderer:i,layer:e,matchedLayer:l.composition.matchedLayer,overlayCandidates:l.composition.overlayCandidates,coordSystem:t,shouldAnimateTransitions:r,panelRect:n,formattingLocale:o})]})},uh="_17uhij30",dh=({formattedAxes:e,plotRect:t,panelBorder:r,panelFrameRect:n,panelRect:o,axisRects:s,axisLabelRects:i,shouldAnimateTransitions:l,formattingLocale:c,plotBottomY:h,isFooterChromeReserved:d,isEditable:f})=>{const p=(0,g.useRef)(null);Du(p);const v=Y("Grid",vo),m=Y("AxisTicks",Fd),A=Y("AxisLabel",Nd),x=(0,g.useMemo)(()=>ut(n,t),[n,t]),b=(0,g.useMemo)(()=>ut(o,t),[o,t]),j=(0,g.useMemo)(()=>or(s,t),[s,t]),w=(0,g.useMemo)(()=>or(i,t),[i,t]);return(0,a.jsxs)("svg",{ref:p,className:uh,width:t.width,height:t.height,style:{transform:`translate(${t.x}px, ${t.y}px)`},"data-testid":"plot",children:[(0,a.jsx)(_t,{panelRect:b}),(0,a.jsx)(v,{axes:e,panelBorderSizes:r,panelFrameRect:x,panelRect:b}),(0,a.jsx)(m,{formattedAxes:e,tickRects:j}),(0,a.jsx)(A,{formattedAxes:e,labelRects:w}),(0,a.jsx)(Qd,{formattedAxes:e,panelRect:b}),(0,a.jsx)(_t,{panelRect:b}),(0,a.jsx)(tr,{panelRect:b,zOrder:"background"}),(0,a.jsx)(er,{panelRect:b,zOrder:"background"}),(0,a.jsx)(Gd,{sizes:r,panelFrameRect:x}),(0,a.jsx)(ah,{shouldAnimateTransitions:l,panelRect:b,formattingLocale:c}),(0,a.jsx)(Ud,{formattedAxes:e,panelRect:b}),(0,a.jsx)(Ed,{panelRect:b,formattingLocale:c,plotBottomY:h,isFooterChromeReserved:d}),(0,a.jsx)(Ju,{panelRect:b,isEditable:f}),(0,a.jsx)(tr,{panelRect:b,zOrder:"foreground"}),(0,a.jsx)(er,{panelRect:b,zOrder:"foreground"}),(0,a.jsx)(Yu,{panelRect:b,isEditable:f}),(0,a.jsx)(id,{panelRect:b}),(0,a.jsx)(yd,{panelRect:b}),(0,a.jsx)(vd,{panelRect:b}),(0,a.jsx)(Fu,{panelRect:b})]})},ut=(e,t)=>({x:e.x-t.x,y:e.y-t.y,width:e.width,height:e.height}),or=(e,t)=>{const r={};for(const[n,o]of Object.entries(e))r[n]=ut(o,t);return r},hh=e=>{let t,r;return"aspectRatio"in e?"intrinsicWidth"in e?(t=e.intrinsicWidth,r=t/e.aspectRatio):(r=e.intrinsicHeight,t=r*e.aspectRatio):(t=e.intrinsicWidth,r=e.intrinsicHeight),{width:ar(t,"width"),height:ar(r,"height")}},ar=(e,t)=>{if(e<=0||Number.isNaN(e)||!Number.isFinite(e))throw new u.InternalError({message:`Expected ${t} to be a positive, finite number, but got ${e}.`});return e},gh=({sizing:e,onResize:t,children:r})=>{const n=tn({onResize:t});if(e.mode==="keepAspectRatio"){const{intrinsicSize:s,canRender:i,outerStyles:l,innerStyles:c}=vh(e,n.width,!n.isDefault);return(0,a.jsx)("div",{ref:n.setElement,style:l,"data-testid":"graph-sizer",children:i&&(0,a.jsx)("div",{style:c,children:r(s)})})}if(e.mode==="fixed")return(0,a.jsx)("div",{ref:n.setElement,style:{width:e.width,height:e.height},"data-testid":"graph-sizer",children:r({width:e.width,height:e.height})});const o=!n.isDefault&&n.width>0&&n.height>0;return(0,a.jsx)("div",{ref:n.setElement,style:{width:"100%",height:"100%"},"data-testid":"graph-sizer",children:o&&r({width:n.width,height:n.height})})},vh=(e,t,r)=>{const n=hh(e),o=t>0&&n.width>0?t/n.width:1;return{intrinsicSize:n,canRender:r,outerStyles:{width:"100%",...r?{height:n.height*o}:{aspectRatio:`${n.width} / ${n.height}`}},innerStyles:{transformOrigin:"top left",transform:`scale(${o})`,width:n.width,height:n.height}}},fh={mode:"responsive"},nt={headerSize:{width:0,height:0},footerSize:{width:0,height:0}},ph=()=>{const[e,t]=(0,g.useState)(null),[r,n]=(0,g.useState)(null),[o,s]=(0,g.useState)(nt);return(0,g.useEffect)(()=>{const i=()=>{const c=e?{width:e.offsetWidth,height:e.offsetHeight}:nt.headerSize,h=r?{width:r.offsetWidth,height:r.offsetHeight}:nt.footerSize;s(d=>mh(d,{headerSize:c,footerSize:h})?{headerSize:c,footerSize:h}:d)};i();const l=new ResizeObserver(i);return e&&l.observe(e),r&&l.observe(r),()=>l.disconnect()},[e,r]),{headerRef:t,footerRef:n,measurements:o}},mh=(e,t)=>e.headerSize.width!==t.headerSize.width||e.headerSize.height!==t.headerSize.height||e.footerSize.width!==t.footerSize.width||e.footerSize.height!==t.footerSize.height,xh=()=>null,yh=({graphChrome:e,isEditable:t,style:r,contentRef:n,children:o})=>{const{themeClass:s,inlineVarsStyle:i}=Ke(),l=e.borderColor===void 0?0:e.borderWidth,c=l>0?e.borderColor:void 0,h=Math.max(0,e.borderRadius),d=h===0?0:h+l,f=(0,g.useMemo)(()=>({...r,borderRadius:`${d}px`,...i,background:c}),[r,d,i,c]),p=(0,g.useMemo)(()=>({inset:`${l}px`,borderRadius:`${h}px`}),[l,h]),v=t&&e.background==="transparent";return(0,a.jsx)("div",{"data-testid":"graph-wrapper",className:(0,F.default)(xi,s),style:f,children:(0,a.jsx)("div",{ref:n,"data-testid":"graph-inner",tabIndex:t?0:void 0,className:(0,F.default)(Ai,{[bi]:t,[ji]:v}),style:p,children:o})})},Ah=e=>(0,a.jsx)(an,{locale:Sn(),children:(0,a.jsx)(po,{...e})}),po=({slots:e,sizing:t=fh,onResize:r,...n})=>(0,a.jsx)(Zr,{children:(0,a.jsx)(Fr,{children:(0,a.jsx)(os,{slots:e,children:(0,a.jsx)(gh,{sizing:t,onResize:r,children:({width:o,height:s})=>(0,a.jsx)(bh,{width:o,height:s,...n})})})})}),bh=({width:e,height:t,animation:r,showTooltips:n=!0,mode:o="readonly"})=>{const s=yt(),{axes:i,legends:l,layers:c,numberFormat:h,parsingLocale:d,appearance:f,annotations:p,coordSystem:v,headline:m,headlineConfig:A,content:x,overflowStrategy:b,layoutConfig:j}=P((0,G.useShallow)(L=>({axes:L.guides.axes,legends:L.guides.legends.drawn,layers:L.layers,numberFormat:L.config.numberFormat,parsingLocale:L.config.parsingLocale,appearance:L.config.appearance,annotations:L.annotations,coordSystem:L.coordSystem,headline:L.guides.headline,headlineConfig:L.config.headline,content:L.config.content,overflowStrategy:L.config.panel.overflow,layoutConfig:L.config.layout}))),w=(0,S.useReducedMotion)(),{intro:C,transitions:M}=(0,g.useMemo)(()=>ti(r,w??!1),[r,w]),{headerRef:R,footerRef:E,measurements:B}=ph(),{formattingLocale:T,colorScheme:D,themeOverrides:ve}=N(),_=o==="editable",[Bt,mo]=(0,g.useState)(null),Se=(0,g.useMemo)(()=>Br(D,ve),[D,ve]),xo=Y("Header",Nn),yo=Y("Footer",Fn),Ao=Y("Legend",wu),bo=Y("Headline",Nc),jo=Y("EditorSurface",xh),It=(0,g.useMemo)(()=>(0,u.formatLegends)({legends:l,numberFormat:h,parsingLocale:d,formattingLocale:T}),[l,h,d,T]),fe=(0,g.useMemo)(()=>(0,u.formatHeadline)({headline:m,show:A.show,numberFormat:h,parsingLocale:d,formattingLocale:T,t:s}),[m,A.show,h,d,T,s]),wo=te(),Pe=I(),Re=(0,g.useMemo)(()=>(0,u.resolveGraphChromeStyle)(Pe),[Pe]),Mt=(0,g.useMemo)(()=>(0,u.resolvePanelBorderStyle)(Pe),[Pe]),Xe=Re.borderColor===void 0?0:Re.borderWidth,pe=(0,g.useMemo)(()=>({width:Math.max(0,e-2*Xe),height:Math.max(0,t-2*Xe)}),[e,t,Xe]),Tt=(0,g.useMemo)(()=>On(x.brandMark.enabled,pe,x.brandMark.variant),[x.brandMark.enabled,x.brandMark.variant,pe]),So=x.brandMark.placement==="footer"?Tt:"hidden",Po=x.brandMark.placement==="header"?Tt:"hidden",Ce=(0,g.useMemo)(()=>fe?{formatted:fe,size:A.size,position:A.position,innerRadius:v.type==="polar"?v.innerRadius:0}:void 0,[fe,A.size,A.position,v]),Ro=as(),Ee=dl({textMeasurer:wo,textScale:f.textScale,metrics:Se,overrides:Ro}),Ot=(0,g.useMemo)(()=>(0,u.computePanelBorderSizes)(Mt),[Mt]),me=hl({measurer:Ee,axes:i,numberFormat:h,parsingLocale:d,formattedLegends:It,containerSize:pe,externalMeasurements:B,headline:Ce,formattingLocale:T,annotations:p,layers:c,coordSystem:v,textScale:f.textScale,overflowStrategy:b,layout:j,panelBorder:Ot}),ke=(0,g.useMemo)(()=>!me||!Ce||!Ee?null:(0,u.resolveHeadlinePlacement)({headline:Ce,layout:me.layout,containerSize:pe,measurer:Ee,itemGap:Se.headlineItemGap}),[me,Ce,Ee,pe,Se.headlineItemGap]);if(!me)return null;const{layout:H,formattedAxes:Co,plotBottomY:Eo}=me,ko=H.footer.height>0;return(0,a.jsx)(un,{colorScheme:D,themeOverrides:ve,textScale:f.textScale,graphBackground:Re.background,children:(0,a.jsx)(Ka,{metrics:Se,children:(0,a.jsx)(fl,{children:(0,a.jsx)(Gl,{panelRect:H.panel,children:(0,a.jsx)(yh,{graphChrome:Re,isEditable:_,contentRef:_?mo:void 0,style:{width:"100%",height:"100%"},children:(0,a.jsxs)(qi,{intro:C,children:[(0,a.jsx)(xo,{ref:R,headerRect:H.header,mode:o,title:x.title,isTitleVisible:x.isTitleVisible,subtitle:x.subtitle,isSubtitleVisible:x.isSubtitleVisible,brandMark:Po}),(0,a.jsx)(dh,{formattedAxes:Co,plotRect:H.plot,panelBorder:Ot,panelFrameRect:H.panelFrame,panelRect:H.panel,axisRects:H.axes,axisLabelRects:H.axisLabels,shouldAnimateTransitions:M,formattingLocale:T??d,plotBottomY:Eo,isFooterChromeReserved:ko,isEditable:_}),(0,a.jsx)(yo,{ref:E,footerRect:H.footer,mode:o,caption:x.caption,isCaptionVisible:x.isCaptionVisible,source:x.source,isSourceVisible:x.isSourceVisible,brandMark:So}),(0,a.jsx)(Ao,{formattedLegends:It,rects:H.legends,textScale:f.textScale}),fe&&ke&&(0,a.jsx)(bo,{headline:fe,rect:ke.rect,resolvedSize:ke.resolvedSize,visibleItemCount:ke.visibleItemCount}),_&&Bt!==null&&(0,a.jsx)(jo,{frameElement:Bt,panelRect:H.panel}),n&&(0,a.jsx)(Vi,{})]})})})})})})},jh=e=>{const t=(0,g.useContext)(ht);return(0,g.useMemo)(()=>e||(t?{commands:t.commands,undo:t.history.undo,redo:t.history.redo,subscribe:t.store.subscribe,getCompiled:()=>t.store.getState().compiled,getSelection:()=>t.selectionStore.getState().selection,setSelection:r=>t.selectionStore.getState().setSelection(r),subscribeSelection:t.selectionStore.subscribe}:null),[e,t])},wh=e=>(0,g.useSyncExternalStore)(e.subscribe,e.getCompiled,e.getCompiled),Sh=()=>{const{commands:e}=N();return e},Ph=e=>{if(e.altKey||!e.metaKey&&!e.ctrlKey)return null;const t=e.key.toLowerCase();return t==="z"?e.shiftKey?"redo":"undo":t==="y"&&e.ctrlKey&&!e.shiftKey?"redo":null};Object.defineProperty(exports,"ArrowAnnotation",{enumerable:!0,get:function(){return $n}});Object.defineProperty(exports,"BUILT_IN_GEOM_RENDERERS",{enumerable:!0,get:function(){return zr}});Object.defineProperty(exports,"BrandMark",{enumerable:!0,get:function(){return Ct}});Object.defineProperty(exports,"CanvasTextMeasurer",{enumerable:!0,get:function(){return Tr}});Object.defineProperty(exports,"DefaultFooter",{enumerable:!0,get:function(){return Fn}});Object.defineProperty(exports,"DefaultGrid",{enumerable:!0,get:function(){return vo}});Object.defineProperty(exports,"DefaultHeader",{enumerable:!0,get:function(){return Nn}});Object.defineProperty(exports,"DefaultSwatch",{enumerable:!0,get:function(){return Gr}});Object.defineProperty(exports,"DefaultTooltip",{enumerable:!0,get:function(){return pn}});Object.defineProperty(exports,"EDIT_TARGET_ID_ATTRIBUTE",{enumerable:!0,get:function(){return Bn}});Object.defineProperty(exports,"EDIT_TARGET_KIND_ATTRIBUTE",{enumerable:!0,get:function(){return Pt}});Object.defineProperty(exports,"EditorProvider",{enumerable:!0,get:function(){return Nl}});Object.defineProperty(exports,"GeomRendererResolverProvider",{enumerable:!0,get:function(){return Za}});Object.defineProperty(exports,"GraphContext",{enumerable:!0,get:function(){return ht}});Object.defineProperty(exports,"GraphRenderer",{enumerable:!0,get:function(){return Ah}});Object.defineProperty(exports,"GraphRendererBody",{enumerable:!0,get:function(){return po}});Object.defineProperty(exports,"HoverProvider",{enumerable:!0,get:function(){return Zr}});Object.defineProperty(exports,"Icon",{enumerable:!0,get:function(){return kt}});Object.defineProperty(exports,"ImageAnnotation",{enumerable:!0,get:function(){return ro}});Object.defineProperty(exports,"InlineEditorsProvider",{enumerable:!0,get:function(){return nc}});Object.defineProperty(exports,"IntlProvider",{enumerable:!0,get:function(){return an}});Object.defineProperty(exports,"MinusIcon",{enumerable:!0,get:function(){return Gn}});Object.defineProperty(exports,"OverlayPortal",{enumerable:!0,get:function(){return $r}});Object.defineProperty(exports,"PortalThemeProvider",{enumerable:!0,get:function(){return dn}});Object.defineProperty(exports,"RICH_TEXT_FONT_FAMILIES",{enumerable:!0,get:function(){return hn}});Object.defineProperty(exports,"STICKER_ASSETS",{enumerable:!0,get:function(){return co}});Object.defineProperty(exports,"ShapeAnnotation",{enumerable:!0,get:function(){return oo}});Object.defineProperty(exports,"TextAnnotation",{enumerable:!0,get:function(){return rd}});Object.defineProperty(exports,"TextMeasurerProvider",{enumerable:!0,get:function(){return Fr}});Object.defineProperty(exports,"ThemeProvider",{enumerable:!0,get:function(){return un}});Object.defineProperty(exports,"Z_INDEX",{enumerable:!0,get:function(){return ie}});Object.defineProperty(exports,"__toESM",{enumerable:!0,get:function(){return dt}});Object.defineProperty(exports,"canMoveAnnotationOnCanvas",{enumerable:!0,get:function(){return Jn}});Object.defineProperty(exports,"createGeomRendererResolver",{enumerable:!0,get:function(){return Xr}});Object.defineProperty(exports,"darkTheme",{enumerable:!0,get:function(){return ln}});Object.defineProperty(exports,"darkenCss",{enumerable:!0,get:function(){return yr}});Object.defineProperty(exports,"defineGeomRenderer",{enumerable:!0,get:function(){return Ks}});Object.defineProperty(exports,"dictionaries",{enumerable:!0,get:function(){return Ue}});Object.defineProperty(exports,"editor",{enumerable:!0,get:function(){return ed}});Object.defineProperty(exports,"isHex",{enumerable:!0,get:function(){return Ea}});Object.defineProperty(exports,"isOverlayHosted",{enumerable:!0,get:function(){return qr}});Object.defineProperty(exports,"isValidCssColor",{enumerable:!0,get:function(){return ka}});Object.defineProperty(exports,"lightTheme",{enumerable:!0,get:function(){return At}});Object.defineProperty(exports,"lightenCss",{enumerable:!0,get:function(){return Ca}});Object.defineProperty(exports,"measureArrowEnds",{enumerable:!0,get:function(){return Qn}});Object.defineProperty(exports,"measureShapeRegion",{enumerable:!0,get:function(){return Yn}});Object.defineProperty(exports,"measureTextAnnotationBox",{enumerable:!0,get:function(){return zn}});Object.defineProperty(exports,"previewResizedText",{enumerable:!0,get:function(){return io}});Object.defineProperty(exports,"readDraggedArrowEndpointFor",{enumerable:!0,get:function(){return Cl}});Object.defineProperty(exports,"readDraggedDifferenceArrowEndpointFor",{enumerable:!0,get:function(){return kl}});Object.defineProperty(exports,"readMovedAnnotationFor",{enumerable:!0,get:function(){return Pl}});Object.defineProperty(exports,"readResizedShapeFor",{enumerable:!0,get:function(){return Il}});Object.defineProperty(exports,"readResizedTextFor",{enumerable:!0,get:function(){return Tl}});Object.defineProperty(exports,"readRichTextFontId",{enumerable:!0,get:function(){return gn}});Object.defineProperty(exports,"readStanding",{enumerable:!0,get:function(){return ce}});Object.defineProperty(exports,"resolveAnnotationChromeGeometry",{enumerable:!0,get:function(){return ku}});Object.defineProperty(exports,"resolveBrandMarkVisual",{enumerable:!0,get:function(){return On}});Object.defineProperty(exports,"resolveHistoryStep",{enumerable:!0,get:function(){return Ph}});Object.defineProperty(exports,"resolvePortalContainer",{enumerable:!0,get:function(){return xt}});Object.defineProperty(exports,"resolveRichTextFontFamily",{enumerable:!0,get:function(){return lt}});Object.defineProperty(exports,"useArrowAnnotationStyles",{enumerable:!0,get:function(){return Zn}});Object.defineProperty(exports,"useChromeStyleReaders",{enumerable:!0,get:function(){return I}});Object.defineProperty(exports,"useCompiledSelector",{enumerable:!0,get:function(){return P}});Object.defineProperty(exports,"useDebouncedCallback",{enumerable:!0,get:function(){return en}});Object.defineProperty(exports,"useDifferenceArrowAnnotationStyles",{enumerable:!0,get:function(){return jt}});Object.defineProperty(exports,"useDifferenceArrowGeometries",{enumerable:!0,get:function(){return Tn}});Object.defineProperty(exports,"useEditorState",{enumerable:!0,get:function(){return J}});Object.defineProperty(exports,"useEditorStore",{enumerable:!0,get:function(){return Dl}});Object.defineProperty(exports,"useElementScreenRect",{enumerable:!0,get:function(){return rn}});Object.defineProperty(exports,"useGeomHitTest",{enumerable:!0,get:function(){return _r}});Object.defineProperty(exports,"useGeomHover",{enumerable:!0,get:function(){return nn}});Object.defineProperty(exports,"useGraphCommands",{enumerable:!0,get:function(){return Sh}});Object.defineProperty(exports,"useGraphContext",{enumerable:!0,get:function(){return N}});Object.defineProperty(exports,"useGraphHandle",{enumerable:!0,get:function(){return jh}});Object.defineProperty(exports,"useGraphLocale",{enumerable:!0,get:function(){return Sn}});Object.defineProperty(exports,"useGraphSelection",{enumerable:!0,get:function(){return eo}});Object.defineProperty(exports,"useHandleCompiled",{enumerable:!0,get:function(){return wh}});Object.defineProperty(exports,"useHoverContext",{enumerable:!0,get:function(){return re}});Object.defineProperty(exports,"useHoverState",{enumerable:!0,get:function(){return le}});Object.defineProperty(exports,"useI18n",{enumerable:!0,get:function(){return yt}});Object.defineProperty(exports,"useImageAnnotationStyles",{enumerable:!0,get:function(){return to}});Object.defineProperty(exports,"useLatestRef",{enumerable:!0,get:function(){return De}});Object.defineProperty(exports,"useMeasuredBoxRef",{enumerable:!0,get:function(){return kn}});Object.defineProperty(exports,"useMeasuredBoxes",{enumerable:!0,get:function(){return En}});Object.defineProperty(exports,"useResolvedAnnotations",{enumerable:!0,get:function(){return ge}});Object.defineProperty(exports,"useShapeAnnotationStyles",{enumerable:!0,get:function(){return no}});Object.defineProperty(exports,"useTextAnnotationStyles",{enumerable:!0,get:function(){return ao}});Object.defineProperty(exports,"useTextMeasurer",{enumerable:!0,get:function(){return te}});Object.defineProperty(exports,"useThemeContext",{enumerable:!0,get:function(){return Ke}});