@graphysdk/react-renderer 0.0.1-alpha.20260721093629 → 0.0.1-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -2
- package/dist/index.css +1 -1
- package/dist/index.d.ts +6 -104
- package/dist/index.mjs +2543 -3059
- package/package.json +16 -31
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
require('./index.css');
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),u=require("@graphysdk/viz-engine"),f=require("react"),ke=require("zustand"),w=require("motion/react"),Oo=require("d3-interpolate-path"),O=require("zustand/react/shallow"),gt=require("color2k"),kt=require("zustand/vanilla"),wr=require("react-dom"),F=require("clsx"),Z=require("@graphysdk/i18n/react"),I=require("@floating-ui/react-dom"),Wo=require("@tiptap/core"),kr=require("@tiptap/extension-bold"),ft=require("@tiptap/extension-document"),Cr=require("@tiptap/extension-hard-break"),Er=require("@tiptap/extension-heading"),Lr=require("@tiptap/extension-italic"),Pr=require("@tiptap/extension-link"),Tr=require("@tiptap/extension-text"),Rr=require("@tiptap/extension-text-align"),fe=require("@tiptap/extension-text-style"),Br=require("@tiptap/extension-underline"),Fe=require("@tiptap/extensions"),zo=require("@tiptap/extension-paragraph"),Ct=require("@tiptap/react"),M=require("@base-ui/react/toolbar"),ge=require("@base-ui/react/tooltip"),Yo=require("@vanilla-extract/dynamic"),N=require("@base-ui/react/popover"),Gt=require("react-colorful"),G=require("@base-ui/react/menu"),Vo=require("@base-ui/react/toggle");typeof window<"u"&&(window.__GRAPHY_SDK__??={},window.__GRAPHY_SDK__.reactRenderer="0.0.1-alpha.20260721093629");var Mr=["canvasDefault","canvasBlue","canvasCyan","canvasGreen","canvasYellow","canvasOrange","canvasRed","canvasPink","canvasPurple","canvasGray","canvasInverse"],c={white:"var(--graphy-white)",black:"var(--graphy-black)",transparent:"var(--graphy-transparent)",grey100:"var(--graphy-grey-100)",grey95:"var(--graphy-grey-95)",grey90:"var(--graphy-grey-90)",grey85:"var(--graphy-grey-85)",grey80:"var(--graphy-grey-80)",grey75:"var(--graphy-grey-75)",grey70:"var(--graphy-grey-70)",grey60:"var(--graphy-grey-60)",grey50:"var(--graphy-grey-50)",grey0:"var(--graphy-grey-0)",greyGradient80:"var(--graphy-grey-gradient-80)",green60:"var(--graphy-green-60)",green50:"var(--graphy-green-50)",red60:"var(--graphy-red-60)",red50:"var(--graphy-red-50)",amber70:"var(--graphy-amber-70)",amber50:"var(--graphy-amber-50)",amber40:"var(--graphy-amber-40)",amber30:"var(--graphy-amber-30)",blue80:"var(--graphy-blue-80)",blue60:"var(--graphy-blue-60)",purple50:"var(--graphy-purple-50)",purple30:"var(--graphy-purple-30)",brand:"var(--graphy-brand)",success:"var(--graphy-success)",warning:"var(--graphy-warning)",alert:"var(--graphy-alert)",textPrimary:"var(--graphy-text-primary)",textSecondary:"var(--graphy-text-secondary)",textDisabled:"var(--graphy-text-disabled)",iconPrimary:"var(--graphy-icon-primary)",iconSecondary:"var(--graphy-icon-secondary)",iconStickerBackground:"var(--graphy-icon-sticker-background)",border100:"var(--graphy-border-100)",border50:"var(--graphy-border-50)",border10:"var(--graphy-border-10)",sunkenBackground:"var(--graphy-sunken-background)",defaultBackground:"var(--graphy-default-background)",raisedBackground:"var(--graphy-raised-background)",overlayBackground:"var(--graphy-overlay-background)",overlayBorderGradient:"var(--graphy-overlay-border-gradient)",graphBackground:"var(--graphy-graph-background)",gridLineColor:"var(--graphy-grid-line-color)",originLineColor:"var(--graphy-origin-line-color)",targetLineColor:"var(--graphy-target-line-color)",targetLineMarkerColor:"var(--graphy-target-line-marker-color)",targetLineLabelTextColor:"var(--graphy-target-line-label-text-color)",legendBackground:"var(--graphy-legend-background)",legendBorderColor:"var(--graphy-legend-border-color)",legendFocusOutlineColor:"var(--graphy-legend-focus-outline-color)",legendTextColor:"var(--graphy-legend-text-color)",dimmedSeriesLabelTextColor:"var(--graphy-dimmed-series-label-text-color)",dimmedSeriesLabelLineColor:"var(--graphy-dimmed-series-label-line-color)",trendNegativeColor:"var(--graphy-trend-negative-color)",trendPositiveColor:"var(--graphy-trend-positive-color)",trendNeutralColor:"var(--graphy-trend-neutral-color)",defaultAnnotationArrowStroke:"var(--graphy-default-annotation-arrow-stroke)",defaultAnnotationShapeStroke:"var(--graphy-default-annotation-shape-stroke)",defaultAnnotationShapeFill:"var(--graphy-default-annotation-shape-fill)",arrowAnnotationStickerOutlineColor:"var(--graphy-arrow-annotation-sticker-outline-color)",arrowAnnotationStickerOutlineColorInverse:"var(--graphy-arrow-annotation-sticker-outline-color-inverse)",annotationFrameBorderColor:"var(--graphy-annotation-frame-border-color)",annotationMenuTriggerIconColor:"var(--graphy-annotation-menu-trigger-icon-color)",heatmapEmptyTileBackground:"var(--graphy-heatmap-empty-tile-background)",dataLabelOutsideBackground:"var(--graphy-data-label-outside-background)",dataLabelTextColor:"var(--graphy-data-label-text-color)",dataLabelInsideTextColor:"var(--graphy-data-label-inside-text-color)",stackTotalTextColor:"var(--graphy-stack-total-text-color)",stackTotalBackground:"var(--graphy-stack-total-background)",stackTotalStroke:"var(--graphy-stack-total-stroke)",gridLineWidth:"var(--graphy-grid-line-width)",gridLineDash:"var(--graphy-grid-line-dash)",gridLineDotted:"var(--graphy-grid-line-dotted)",tooltipBorderRadius:"var(--graphy-tooltip-border-radius)",tooltipBorderWidth:"var(--graphy-tooltip-border-width)",tooltipPaddingBlock:"var(--graphy-tooltip-padding-block)",tooltipPaddingInline:"var(--graphy-tooltip-padding-inline)",tooltipRowGap:"var(--graphy-tooltip-row-gap)",tooltipShadow:"var(--graphy-tooltip-shadow)",tickLabelOffset:"var(--graphy-tick-label-offset)",legendItemGap:"var(--graphy-legend-item-gap)",legendSwatchGap:"var(--graphy-legend-swatch-gap)",legendSwatchWidth:"var(--graphy-legend-swatch-width)",legendSwatchHeight:"var(--graphy-legend-swatch-height)",legendPillPaddingInline:"var(--graphy-legend-pill-padding-inline)",legendPillPaddingBlock:"var(--graphy-legend-pill-padding-block)",legendPillBorderWidth:"var(--graphy-legend-pill-border-width)",headlineRowGap:"var(--graphy-headline-row-gap)",headlineItemGap:"var(--graphy-headline-item-gap)",canvasDefault:"var(--graphy-canvas-default)",canvasBlue:"var(--graphy-canvas-blue)",canvasCyan:"var(--graphy-canvas-cyan)",canvasGreen:"var(--graphy-canvas-green)",canvasYellow:"var(--graphy-canvas-yellow)",canvasOrange:"var(--graphy-canvas-orange)",canvasRed:"var(--graphy-canvas-red)",canvasPink:"var(--graphy-canvas-pink)",canvasPurple:"var(--graphy-canvas-purple)",canvasGray:"var(--graphy-canvas-gray)",canvasInverse:"var(--graphy-canvas-inverse)",elevationXs:"var(--graphy-elevation-xs)",elevationSm:"var(--graphy-elevation-sm)",elevationMd:"var(--graphy-elevation-md)",elevationLg:"var(--graphy-elevation-lg)",radiiXs:"var(--graphy-radii-xs)",radiiSm:"var(--graphy-radii-sm)",radiiMd:"var(--graphy-radii-md)",radiiLg:"var(--graphy-radii-lg)",spaceXxs:"var(--graphy-space-xxs)",spaceXs:"var(--graphy-space-xs)",spaceSm:"var(--graphy-space-sm)",spaceMd:"var(--graphy-space-md)",spaceLg:"var(--graphy-space-lg)",spaceXl:"var(--graphy-space-xl)",zIndexToolbar:"var(--graphy-z-index-toolbar)",zIndexToolbarTooltip:"var(--graphy-z-index-toolbar-tooltip)",zIndexToolbarPopover:"var(--graphy-z-index-toolbar-popover)",toolbarBackgroundColor:"var(--graphy-toolbar-background-color)",toolbarButtonBackgroundColor:"var(--graphy-toolbar-button-background-color)",toolbarButtonBackgroundColorHovered:"var(--graphy-toolbar-button-background-color-hovered)",toolbarButtonBackgroundColorSelected:"var(--graphy-toolbar-button-background-color-selected)",toolbarSeparatorColor:"var(--graphy-toolbar-separator-color)",tooltipBackground:"var(--graphy-tooltip-background)",tooltipBorderColor:"var(--graphy-tooltip-border-color)",tooltipHeadingTextColor:"var(--graphy-tooltip-heading-text-color)",tooltipLabelTextColor:"var(--graphy-tooltip-label-text-color)",tooltipValueTextColor:"var(--graphy-tooltip-value-text-color)",tooltipPrimaryRowColor:"var(--graphy-tooltip-primary-row-color)",hoverGuideLineColor:"var(--graphy-hover-guide-line-color)",hoverGuideFillColor:"var(--graphy-hover-guide-fill-color)",hoveredBarBorderColor:"var(--graphy-hovered-bar-border-color)",hoveredPointRingColor:"var(--graphy-hovered-point-ring-color)",pointStrokeColor:"var(--graphy-point-stroke-color)",stackedBarHoverBorderColor:"var(--graphy-stacked-bar-hover-border-color)",fontFamilyDefault:"var(--graphy-font-family-default)",fontFamilyHeading:"var(--graphy-font-family-heading)",fontWeightRegular:"var(--graphy-font-weight-regular)",fontWeightMedium:"var(--graphy-font-weight-medium)",fontWeightSemibold:"var(--graphy-font-weight-semibold)",fontWeightBold:"var(--graphy-font-weight-bold)",fontWeightExtraBold:"var(--graphy-font-weight-extra-bold)",fontWeightBlack:"var(--graphy-font-weight-black)",textScale:"var(--graphy-text-scale)",fontSizeXxs:"var(--graphy-font-size-xxs)",fontSizeXs:"var(--graphy-font-size-xs)",fontSizeSm:"var(--graphy-font-size-sm)",fontSizeMd:"var(--graphy-font-size-md)",fontSizeLg:"var(--graphy-font-size-lg)",fontSizeXl:"var(--graphy-font-size-xl)",fontLineHeightXxs:"var(--graphy-font-line-height-xxs)",fontLineHeightXs:"var(--graphy-font-line-height-xs)",fontLineHeightSm:"var(--graphy-font-line-height-sm)",fontLineHeightMd:"var(--graphy-font-line-height-md)",fontLineHeightLg:"var(--graphy-font-line-height-lg)",fontLineHeightXl:"var(--graphy-font-line-height-xl)",fontSizeEditorBody:"var(--graphy-font-size-editor-body)",fontSizeHeadingSm:"var(--graphy-font-size-heading-sm)",fontSizeHeadingMd:"var(--graphy-font-size-heading-md)",fontSizeHeadingLg:"var(--graphy-font-size-heading-lg)",fontLineHeightEditorBody:"var(--graphy-font-line-height-editor-body)",fontLineHeightHeadingSm:"var(--graphy-font-line-height-heading-sm)",fontLineHeightHeadingMd:"var(--graphy-font-line-height-heading-md)",fontLineHeightHeadingLg:"var(--graphy-font-line-height-heading-lg)",fontTickLabel:"var(--graphy-font-tick-label)",fontAxisLabel:"var(--graphy-font-axis-label)",fontDataLabel:"var(--graphy-font-data-label)",fontStackTotal:"var(--graphy-font-stack-total)",fontCategoryLabel:"var(--graphy-font-category-label)",fontLegendLabel:"var(--graphy-font-legend-label)",fontSeriesLabel:"var(--graphy-font-series-label)",fontTooltipLabel:"var(--graphy-font-tooltip-label)",fontTooltipHeading:"var(--graphy-font-tooltip-heading)",fontTooltipFooter:"var(--graphy-font-tooltip-footer)",fontJumboTooltipLabel:"var(--graphy-font-jumbo-tooltip-label)",fontJumboTooltip:"var(--graphy-font-jumbo-tooltip)",fontMiniTooltipLabel:"var(--graphy-font-mini-tooltip-label)",fontMiniTooltipFooter:"var(--graphy-font-mini-tooltip-footer)",fontTooltipCaption:"var(--graphy-font-tooltip-caption)",fontTooltipCaptionSmall:"var(--graphy-font-tooltip-caption-small)",fontTrendTag:"var(--graphy-font-trend-tag)",fontTrendTagSmall:"var(--graphy-font-trend-tag-small)",fontGoalLineLabel:"var(--graphy-font-goal-line-label)",fontPieLabel:"var(--graphy-font-pie-label)",fontPieChartTotal:"var(--graphy-font-pie-chart-total)",fontDifferenceArrowSmall:"var(--graphy-font-difference-arrow-small)",fontDifferenceArrowMedium:"var(--graphy-font-difference-arrow-medium)",fontDifferenceArrowLarge:"var(--graphy-font-difference-arrow-large)",fontButton:"var(--graphy-font-button)",fontInput:"var(--graphy-font-input)",fontInputLabel:"var(--graphy-font-input-label)",fontSelectLabel:"var(--graphy-font-select-label)",fontSelectDescription:"var(--graphy-font-select-description)",fontColorSelectLabel:"var(--graphy-font-color-select-label)",fontMenuTitle:"var(--graphy-font-menu-title)",fontMenuGroupTitle:"var(--graphy-font-menu-group-title)",fontMenuItemLabel:"var(--graphy-font-menu-item-label)",fontMenuItemLabelSecondary:"var(--graphy-font-menu-item-label-secondary)",fontUITooltip:"var(--graphy-font-uitooltip)",fontUITooltipSecondary:"var(--graphy-font-uitooltip-secondary)",fontErrorBoundaryTitle:"var(--graphy-font-error-boundary-title)",fontErrorBoundaryMessage:"var(--graphy-font-error-boundary-message)",fontTableCell:"var(--graphy-font-table-cell)",fontTableHeaderCell:"var(--graphy-font-table-header-cell)",fontSourceLabel:"var(--graphy-font-source-label)",fontSourceLink:"var(--graphy-font-source-link)",fontTextEditorH1:"var(--graphy-font-text-editor-h1)",fontTextEditorH2:"var(--graphy-font-text-editor-h2)",fontTextEditorH3:"var(--graphy-font-text-editor-h3)",fontTextEditorH6:"var(--graphy-font-text-editor-h6)",fontTextEditorBody:"var(--graphy-font-text-editor-body)",fontTextEditorLink:"var(--graphy-font-text-editor-link)",fontHighlightModeTitle:"var(--graphy-font-highlight-mode-title)",fontHighlightModeSubtitle:"var(--graphy-font-highlight-mode-subtitle)"};const Et=1,Ir=8,Uo=12;c.pointStrokeColor;const Xo=1,Ko={centerX:0,centerY:0,radius:1},Lt=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}},q=(e,t,r=Ko)=>{const n=u.polarToUnit(e,t);return{x:r.centerX+n.x*r.radius,y:r.centerY-n.y*r.radius}},Pt=(e,t)=>({x:u.toViewBoxX(e),y:u.toViewBoxY(t)}),J=(e,t)=>{const r=q(e,t);return{x:(r.x+1)/2,y:(r.y+1)/2}},Qo=2,qo=.7,ne=({hit:e,project:t=Pt})=>{if(!e.anchored)return null;const r=u.getColor(e.observation),n=(u.getAlpha(e.observation)??Et)*qo,s=(u.getSize(e.observation)??Ir)/2,a=t(e.x,e.y);return o.jsx("circle",{cx:u.toPercent(a.x),cy:u.toPercent(a.y),r:s,fill:r,opacity:n,stroke:c.hoveredPointRingColor,strokeWidth:Qo,"data-testid":"companion-point"})},Xe=.3,Ke=1;var V="_1d8mpa10";const B={type:"spring",stiffness:500,damping:60,mass:1},pt=(e,t)=>{const r=w.useMotionValue(e);return f.useEffect(()=>{const n=Oo.interpolatePath(r.get(),e);w.animate(0,1,{...t,onUpdate:s=>{const a=n(s);return r.set(a)}})},[t,e,r]),r},Nr=({isAnimated:e,...t})=>e?o.jsx(Zo,{...t}):o.jsx(Jo,{...t}),Jo=({fillPath:e,linePath:t,fill:r,fillOpacity:n,stroke:s,strokeWidth:a,strokeOpacity:i,strokeDasharray:l})=>o.jsxs("g",{children:[o.jsx("path",{d:e,fill:r,fillOpacity:n,stroke:"none"}),o.jsx("path",{d:t,fill:"none",stroke:s,strokeWidth:a,strokeOpacity:i,strokeDasharray:l,vectorEffect:"non-scaling-stroke"})]}),Zo=({fillPath:e,linePath:t,fill:r,fillOpacity:n,stroke:s,strokeWidth:a,strokeOpacity:i,strokeDasharray:l})=>{const d=pt(e,B),h=pt(t,B);return o.jsxs("g",{children:[o.jsx(w.motion.path,{d,fill:r,fillOpacity:n,stroke:"none"}),o.jsx(w.motion.path,{d:h,fill:"none",stroke:s,strokeWidth:a,strokeOpacity:i,strokeDasharray:l,vectorEffect:"non-scaling-stroke"})]})},_o=f.memo(function({layer:t,coordSystem:r,isAnimated:n}){const{lineGenerator:s,areaGenerator:a}=f.useMemo(()=>u.createAreaPathGenerators(r,t.params),[t.params,r]),i=f.useMemo(()=>{const l=u.createStableKeyGenerator(t.data,t.mapping,t.id),d=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(h=>{const g=u.prepareAreaObservations([...h],t.params.missingValues),p=a(g),m=s(g);if(!p||!m)return;const v=g[0];if(!v)return;const x=u.getColor(v),y=u.getAlpha(v),b=u.resolveStrokeWidth(v,t.params),S=u.getDashArray(u.getLineType(v));d.push({key:l(v),areaPath:p,linePath:m,color:x,fillOpacity:y??Xe,strokeWidth:b,strokeOpacity:Ke,strokeDasharray:S})}),d},[a,s,t.data,t.id,t.mapping,t.params]);return o.jsx("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"area",className:V,children:i.map(l=>o.jsx($o,{areaPath:l.areaPath,linePath:l.linePath,color:l.color,fillOpacity:l.fillOpacity,strokeWidth:l.strokeWidth,strokeOpacity:l.strokeOpacity,strokeDasharray:l.strokeDasharray,isAnimated:n},l.key))})}),$o=({areaPath:e,linePath:t,color:r,fillOpacity:n,strokeWidth:s,strokeOpacity:a,strokeDasharray:i,isAnimated:l})=>o.jsx(Nr,{fillPath:e,linePath:t,fill:r,fillOpacity:n,stroke:r,strokeWidth:s,strokeOpacity:a,strokeDasharray:i,isAnimated:l});var es="_324dw20";const ot=1,ts=2,rs=1,ns=Uo/2,os=2.25,xe=({hit:e,project:t=Pt,...r})=>{if(!e.anchored)return null;const n=u.getColor(e.observation),s=u.getAlpha(e.observation)??Et,a=t(e.x,e.y),i=u.toPercent(a.x),l=u.toPercent(a.y),d=ss(e.observation),h=d+ot/2+rs+ot/2;return o.jsxs("g",{...r,className:es,children:[o.jsx("circle",{cx:i,cy:l,r:h,fill:"none",stroke:c.hoveredPointRingColor,strokeWidth:ts}),o.jsx("circle",{cx:i,cy:l,r:d,fill:n,opacity:s,stroke:c.hoveredPointRingColor,strokeWidth:ot})]})},ss=e=>{const t=u.getSize(e);return u.isDefined(t)?t/os:ns},as=({layer:e,coordSystem:t,primary:r,companions:n})=>{const s=u.getGroup(r.observation),a=f.useMemo(()=>{const m=e.data.filter(u.GROUP_VARIABLES.group,"eq",s);return u.prepareAreaObservations([...m],e.params.missingValues)},[e.data,e.params.missingValues,s]),{areaPath:i,linePath:l}=f.useMemo(()=>{const{lineGenerator:m,areaGenerator:v}=u.createAreaPathGenerators(t,e.params);return{areaPath:v(a)??"",linePath:m(a)??""}},[t,e.params,a]);if(!i||!l)return null;const d=u.getColor(r.observation),h=u.getAlpha(r.observation)??Xe,g=u.resolveStrokeWidth(r.observation,e.params),p=u.getDashArray(u.getLineType(r.observation));return o.jsxs("g",{"data-testid":"hovered-area",children:[o.jsxs("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"area",className:V,children:[o.jsx("path",{d:i,fill:d,fillOpacity:h,stroke:"none","data-testid":"hovered-area-fill"}),o.jsx("path",{d:l,fill:"none",stroke:d,strokeWidth:g,strokeOpacity:Ke,strokeDasharray:p,vectorEffect:"non-scaling-stroke","data-testid":"hovered-area-edge"})]}),n.map(m=>o.jsx(ne,{hit:m},`companion-${m.layerId}-${m.pointIndex}`)),o.jsx(xe,{hit:r,"data-testid":"hovered-area-point"})]})},is={geom:"area",coord:"cartesian",swatchShape:"area",guideMode:"crosshair",render:({layer:e,coordSystem:t,isAnimated:r})=>o.jsx(_o,{layer:e,coordSystem:t,isAnimated:r}),renderHover:({layer:e,coordSystem:t,primary:r,group:n,related:s})=>o.jsx(as,{layer:e,coordSystem:t,primary:r,companions:[...n,...s]}),renderHoverCompanions:({related:e})=>o.jsx(o.Fragment,{children:e.map(t=>o.jsx(ne,{hit:t},`companion-${t.layerId}-${t.pointIndex}`))}),getOverlayAnchor:({observation:e,coordSystem:t})=>{if(t.mainAxis==="x"){const s=u.getX(e),a=u.getYMax(e)??u.getY(e);return s===null||a===null?null:{x:s,y:a}}const r=u.getY(e),n=u.getXMax(e)??u.getX(e);return r===null||n===null?null:{x:n,y:r}}},Tt=1,ls=f.memo(function({layer:t,coordSystem:r,isAnimated:n}){const s=f.useId(),a=t.params.borderColor,i=a!==void 0,l=i?u.resolveBarBorderTreatment(t.params.borderWidth):void 0,d=l?.outlineWidth,h=l?.separatorWidth,g=f.useMemo(()=>{const p=u.createStableKeyGenerator(t.data,t.mapping,t.id),m=new Map;for(const x of t.data){const y=u.getBarRectBounds(r.mainAxis,x);if(!y)continue;const b=cs(r.mainAxis,y),S=m.get(b),C={key:p(x),...y,fill:u.getColor(x),opacity:u.getAlpha(x)??Tt};S?S.push(C):m.set(b,[C])}const v=t.params.borderRadius==="full"?void 0:Wt({borderRadius:t.params.borderRadius,mainAxis:r.mainAxis});return[...m.entries()].map(([x,y])=>{const b=gs(y);return{id:`${s}${x}`,bars:y,...b,radii:v??Wt({borderRadius:t.params.borderRadius,mainAxis:r.mainAxis,bounds:b})}})},[s,r.mainAxis,t]);return o.jsx(o.Fragment,{children:g.map(p=>{if(p.bars.length===1&&!i){const[v]=p.bars;if(!v)return null;const{key:x,...y}=v;return o.jsx(Ge,{...y,...p.radii,isAnimated:n},x)}const m={column:p,borderColor:a,clippedStrokeWidth:d,separatorStrokeWidth:h};return n?o.jsx(us,{...m},p.id):o.jsx(ds,{...m},p.id)})})}),cs=(e,t)=>e==="x"?`${t.x}-${t.width}`:`${t.y}-${t.height}`,ds=({column:e,borderColor:t,clippedStrokeWidth:r,separatorStrokeWidth:n})=>{const s=t!==void 0,a=o.jsx("clipPath",{id:e.id,children:o.jsx(Ot,{bounds:e,radii:e.radii})});if(e.bars.length===1){const[i]=e.bars;if(!i)return null;const{key:l,...d}=i;return o.jsxs(o.Fragment,{children:[a,o.jsx("g",{clipPath:`url(#${e.id})`,children:o.jsx(Ge,{...d,...e.radii,stroke:t,strokeWidth:r,isAnimated:!1},l)})]})}return o.jsxs(o.Fragment,{children:[a,o.jsxs("g",{clipPath:`url(#${e.id})`,children:[e.bars.map(i=>{const{key:l,...d}=i;return o.jsx(Ge,{...d,stroke:t,strokeWidth:n,isAnimated:!1},l)}),s&&o.jsx(Ot,{bounds:e,radii:e.radii,fill:"none",stroke:t,strokeWidth:r})]})]})},us=({column:e,borderColor:t,clippedStrokeWidth:r,separatorStrokeWidth:n})=>{const s=t!==void 0,a=hs(e),l={style:{transformBox:"view-box",x:a.x,y:a.y,width:a.width,height:a.height},rx:e.radii.rx,ry:e.radii.ry},d=o.jsx("clipPath",{id:e.id,children:o.jsx(w.motion.rect,{...l})});if(e.bars.length===1){const[h]=e.bars;return o.jsxs(o.Fragment,{children:[d,o.jsx("g",{clipPath:`url(#${e.id})`,children:o.jsx(w.motion.rect,{...l,fill:h?.fill,opacity:h?.opacity,stroke:t,strokeWidth:r})})]})}return o.jsxs(o.Fragment,{children:[d,o.jsxs("g",{clipPath:`url(#${e.id})`,children:[e.bars.map(h=>{const{key:g,...p}=h;return o.jsx(Ge,{...p,stroke:t,strokeWidth:n,isAnimated:!0},g)}),s&&o.jsx(w.motion.rect,{...l,fill:"none",stroke:t,strokeWidth:r})]})]})},Ge=({isAnimated:e,rx:t,ry:r,stroke:n,strokeWidth:s,...a})=>e?o.jsx(w.motion.rect,{initial:!1,style:{transformBox:"view-box"},transition:B,fill:a.fill,opacity:a.opacity,rx:t,ry:r,stroke:n,strokeWidth:s,animate:{x:u.toPercent(a.x),y:u.toPercent(a.y),width:u.toPercent(a.width),height:u.toPercent(a.height),opacity:a.opacity}}):o.jsx("rect",{style:{transformBox:"view-box"},x:u.toPercent(a.x),y:u.toPercent(a.y),width:u.toPercent(a.width),height:u.toPercent(a.height),fill:a.fill,opacity:a.opacity,rx:t,ry:r,stroke:n,strokeWidth:s}),Ot=({bounds:e,radii:t,fill:r,stroke:n,strokeWidth:s})=>o.jsx("rect",{x:u.toPercent(e.x),y:u.toPercent(e.y),width:u.toPercent(e.width),height:u.toPercent(e.height),rx:t.rx,ry:t.ry,fill:r,stroke:n,strokeWidth:s}),hs=e=>{const t=w.useSpring(e.x,B),r=w.useSpring(e.y,B),n=w.useSpring(e.width,B),s=w.useSpring(e.height,B);f.useEffect(()=>{t.set(e.x),r.set(e.y),n.set(e.width),s.set(e.height)},[t,r,n,s,e.x,e.y,e.width,e.height]);const a=w.useTransform(t,u.toPercent),i=w.useTransform(r,u.toPercent),l=w.useTransform(n,u.toPercent),d=w.useTransform(s,u.toPercent);return{x:a,y:i,width:l,height:d}},gs=e=>{let t=1/0,r=1/0,n=-1/0,s=-1/0;for(const a of e)a.x<t&&(t=a.x),a.y<r&&(r=a.y),a.x+a.width>n&&(n=a.x+a.width),a.y+a.height>s&&(s=a.y+a.height);return{x:t,y:r,width:n-t,height:s-r}};function Wt(e){const t=u.resolveBarCornerRadiiPx(e);if(e.borderRadius!=="full")return t;const r={};return t.rx!==void 0&&(r.rx=u.toPercent(t.rx)),t.ry!==void 0&&(r.ry=u.toPercent(t.ry)),r}var fs="_1suo8ub0";const ps=(e,t,r)=>{const n=e==="solo"||e==="floor",s=e==="solo"||e==="ceiling";return t==="x"?{topLeft:s?r:0,topRight:s?r:0,bottomRight:n?r:0,bottomLeft:n?r:0}:{topLeft:n?r:0,bottomLeft:n?r:0,topRight:s?r:0,bottomRight:s?r:0}},Se=(e,t)=>{const r=e.width/2,n=e.height/2,s=m=>({rx:Math.min(m,r),ry:Math.min(m,n)}),a=s(t.topLeft),i=s(t.topRight),l=s(t.bottomRight),d=s(t.bottomLeft),h=e.x+e.width,g=e.y+e.height,p=m=>m.rx>0&&m.ry>0;return[`M${e.x+a.rx},${e.y}`,`H${h-i.rx}`,p(i)?`A${i.rx},${i.ry} 0 0 1 ${h},${e.y+i.ry}`:"",`V${g-l.ry}`,p(l)?`A${l.rx},${l.ry} 0 0 1 ${h-l.rx},${g}`:"",`H${e.x+d.rx}`,p(d)?`A${d.rx},${d.ry} 0 0 1 ${e.x},${g-d.ry}`:"",`V${e.y+a.ry}`,p(a)?`A${a.rx},${a.ry} 0 0 1 ${e.x+a.rx},${e.y}`:"","Z"].filter(Boolean).join("")},mt=(e,t)=>{const r=n=>n>0?Math.max(0,n+t):0;return{rect:{x:e.rect.x-t,y:e.rect.y-t,width:Math.max(0,e.rect.width+t*2),height:Math.max(0,e.rect.height+t*2)},corners:{topLeft:r(e.corners.topLeft),topRight:r(e.corners.topRight),bottomRight:r(e.corners.bottomRight),bottomLeft:r(e.corners.bottomLeft)}}},Hr=({observation:e,mainAxis:t,borderRadius:r,panelRect:n})=>{const s=u.getBarRectBounds(t,e);if(!s)return null;const a={x:s.x*n.width,y:s.y*n.height,width:s.width*n.width,height:s.height*n.height},i=u.resolveBarBorderRadiusPx({borderRadius:r,mainAxis:t,bounds:a}),l=ps(u.getStackRole(e),t,i);return{rect:a,corners:l}},ms=({observation:e,mainAxis:t,params:r,panelRect:n})=>{const s=Hr({observation:e,mainAxis:t,borderRadius:r.borderRadius,panelRect:n});if(!s)return null;const a=u.getColor(e),i=u.getAlpha(e)??Tt,{borderColor:l,borderWidth:d}=r,h=u.resolveBarBorderTreatment(d),g=l===void 0?null:mt(s,-h.insetOffset);return o.jsxs(o.Fragment,{children:[o.jsx("path",{d:Se(s.rect,s.corners),fill:a,opacity:i,"data-testid":"highlight-bar-segment"}),g!==null&&o.jsx("path",{d:Se(g.rect,g.corners),fill:"none",stroke:l,strokeWidth:h.separatorWidth,"data-testid":"highlight-bar-segment-border"})]})},xs=({layer:e,coordSystem:t,panelRect:r})=>{const n=u.createStableKeyGenerator(e.data,e.mapping,e.id);return o.jsx(o.Fragment,{children:[...e.data].map(s=>o.jsx(ms,{observation:s,mainAxis:t.mainAxis,params:e.params,panelRect:r},n(s)))})},vs=3,ys=({layer:e,coordSystem:t,primary:r,panelRect:n})=>{const s=Hr({observation:r.observation,mainAxis:t.mainAxis,borderRadius:e.params.borderRadius,panelRect:n});if(!s)return null;const a=mt(s,vs),i=u.getColor(r.observation),l=u.getAlpha(r.observation)??Tt,{borderColor:d,borderWidth:h}=e.params,g=u.resolveBarBorderTreatment(h),p=d===void 0?null:mt(s,-g.insetOffset);return o.jsxs("g",{"data-testid":"hovered-bar",children:[o.jsx("g",{className:fs,children:o.jsx("path",{d:Se(a.rect,a.corners),fill:c.hoveredBarBorderColor,"data-testid":"hovered-bar-border"})}),o.jsx("path",{d:Se(s.rect,s.corners),fill:i,opacity:l,"data-testid":"hovered-bar-fill"}),p!==null&&o.jsx("path",{d:Se(p.rect,p.corners),fill:"none",stroke:d,strokeWidth:g.separatorWidth,opacity:l,"data-testid":"hovered-bar-inner-border"})]})},bs={geom:"bar",coord:"cartesian",swatchShape:"square",guideMode:"band",render:({layer:e,coordSystem:t,isAnimated:r})=>o.jsx(ls,{layer:e,coordSystem:t,isAnimated:r}),renderHighlight:({layer:e,coordSystem:t,panelRect:r})=>o.jsx(xs,{layer:e,coordSystem:t,panelRect:r}),renderHover:({layer:e,coordSystem:t,primary:r,panelRect:n})=>o.jsx(ys,{layer:e,coordSystem:t,primary:r,panelRect:n}),renderHoverCompanions:()=>null},Qe=1,As=.15,Ss=f.memo(function({layer:t,isAnimated:r}){const n=f.useMemo(()=>u.createLinePathGenerator(t.params),[t.params]),s=f.useMemo(()=>t.params.showFill?u.createLineFillAreaGenerator(t.params):null,[t.params]),a=f.useMemo(()=>{const i=u.createStableKeyGenerator(t.data,t.mapping,t.id),l=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(d=>{const h=u.prepareLineObservations([...d],t.params.missingValues),g=n(h);if(!g)return;const p=s?.(h)??void 0,m=h[0];if(!m)return;const v=u.getColor(m),x=u.getAlpha(m),y=u.resolveStrokeWidth(m,t.params),b=u.getDashArray(u.getLineType(m));l.push({key:i(m),pathData:g,fillPath:p,color:v,opacity:x??Qe,strokeWidth:y,strokeDasharray:b})}),l},[n,s,t.data,t.id,t.mapping,t.params]);return o.jsx("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"line",className:V,children:a.map(i=>o.jsx(js,{pathData:i.pathData,fillPath:i.fillPath,color:i.color,strokeWidth:i.strokeWidth,opacity:i.opacity,strokeDasharray:i.strokeDasharray,isAnimated:r},i.key))})}),js=({pathData:e,fillPath:t,color:r,strokeWidth:n,opacity:s,strokeDasharray:a,isAnimated:i})=>t?o.jsx(ws,{fillPath:t,linePath:e,color:r,strokeWidth:n,opacity:s,strokeDasharray:a,isAnimated:i}):i?o.jsx(ks,{pathData:e,color:r,strokeWidth:n,opacity:s,strokeDasharray:a}):o.jsx("path",{d:e,fill:"none",stroke:r,strokeWidth:n,opacity:s,strokeDasharray:a,vectorEffect:"non-scaling-stroke"}),ws=({fillPath:e,linePath:t,color:r,strokeWidth:n,opacity:s,strokeDasharray:a,isAnimated:i})=>{const l=`line_fill_gradient_${f.useId()}`;return o.jsxs(o.Fragment,{children:[o.jsx("defs",{children:o.jsxs("linearGradient",{id:l,gradientTransform:"rotate(90 0.5 0.5)",children:[o.jsx("stop",{offset:"0%",stopColor:r}),o.jsx("stop",{offset:"70%",stopColor:r,stopOpacity:0}),o.jsx("stop",{offset:"100%",stopColor:r,stopOpacity:0})]})}),o.jsx(Nr,{fillPath:e,linePath:t,fill:`url(#${l})`,fillOpacity:As,stroke:r,strokeWidth:n,strokeOpacity:s,strokeDasharray:a,isAnimated:i})]})},ks=({pathData:e,color:t,strokeWidth:r,opacity:n,strokeDasharray:s})=>{const a=pt(e,B);return o.jsx(w.motion.path,{d:a,fill:"none",stroke:t,strokeWidth:r,opacity:n,strokeDasharray:s,vectorEffect:"non-scaling-stroke"})},Cs=({layer:e,primary:t,companions:r})=>{const n=u.getGroup(t.observation),s=f.useMemo(()=>{const g=e.data.filter(u.GROUP_VARIABLES.group,"eq",n);return u.prepareLineObservations([...g],e.params.missingValues)},[e.data,e.params.missingValues,n]),a=f.useMemo(()=>u.createLinePathGenerator(e.params)(s),[e.params,s]);if(!a)return null;const i=u.getColor(t.observation),l=u.getAlpha(t.observation)??Qe,d=u.resolveStrokeWidth(t.observation,e.params),h=u.getDashArray(u.getLineType(t.observation));return o.jsxs("g",{"data-testid":"hovered-line",children:[o.jsx("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"line",className:V,children:o.jsx("path",{d:a,fill:"none",stroke:i,strokeWidth:d,opacity:l,strokeDasharray:h,vectorEffect:"non-scaling-stroke","data-testid":"hovered-line-path"})}),r.map(g=>o.jsx(ne,{hit:g},`companion-${g.layerId}-${g.pointIndex}`)),o.jsx(xe,{hit:t,"data-testid":"hovered-line-point"})]})},Es={geom:"line",coord:"cartesian",swatchShape:"line",guideMode:"crosshair",render:({layer:e,isAnimated:t})=>o.jsx(Ss,{layer:e,isAnimated:t}),renderHover:({layer:e,primary:t,group:r,related:n})=>o.jsx(Cs,{layer:e,primary:t,companions:[...r,...n]}),renderHoverCompanions:({related:e})=>o.jsx(o.Fragment,{children:e.map(t=>o.jsx(ne,{hit:t},`companion-${t.layerId}-${t.pointIndex}`))}),getOverlayAnchor:({observation:e})=>{const t=u.getX(e),r=u.getY(e);return t===null||r===null?null:{x:t,y:r}}},Dr=({observation:e,project:t,layerSize:r,isAnimated:n})=>{const s=u.getX(e),a=u.getY(e);if(s===null||a===null)return null;const i=t(s,a),l=u.toPercent(i.x),d=u.toPercent(i.y),h=(u.getSize(e)??r)/2,g=u.getColor(e),p=u.getAlpha(e)??Et,m=u.getStrokeWidth(e)??Xo;return n?o.jsx(w.motion.circle,{initial:!1,transition:B,fill:g,stroke:c.pointStrokeColor,strokeWidth:m,animate:{cx:l,cy:d,r:h,opacity:p}}):o.jsx("circle",{cx:l,cy:d,r:h,fill:g,opacity:p,stroke:c.pointStrokeColor,strokeWidth:m})},Ls=f.memo(function({layer:t,isAnimated:r}){return f.useMemo(()=>{const s=[];let a=0;for(const i of t.data)s.push(o.jsx(Dr,{observation:i,project:Pt,layerSize:t.params.size,isAnimated:r},String(a++)));return s},[t.data,t.params.size,r])}),zt=({primary:e,companions:t})=>{const r=o.jsxs(o.Fragment,{children:[t.map(n=>o.jsx(ne,{hit:n},`companion-${n.layerId}-${n.pointIndex}`)),e?o.jsx(xe,{hit:e}):null]});return e?o.jsx("g",{"data-testid":"hovered-point",children:r}):r},Ps={geom:"point",coord:"cartesian",swatchShape:"circle",render:({layer:e,isAnimated:t})=>o.jsx(Ls,{layer:e,isAnimated:t}),renderHover:({primary:e,group:t,related:r})=>o.jsx(zt,{primary:e,companions:[...t,...r]}),renderHoverCompanions:({related:e})=>o.jsx(zt,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=u.getX(e),r=u.getY(e);return t===null||r===null?null:{x:t,y:r}}},ve=`'Inter', -apple-system, BlinkMacSystemFont, 'Open Sans', 'Segoe UI', 'Roboto', 'Oxygen-Sans', 'Ubuntu',
|
|
3
|
-
'Cantarell', 'Helvetica Neue', 'NotoSansArabic', 'NotoSansJP', 'NotoSansSC', 'NotoSansKR', 'NotoSerifKR', sans-serif, 'Apple Color Emoji', 'NotoColorEmoji'`,Ts=ve,le={regular:u.NAMED_WEIGHTS.regular,medium:u.NAMED_WEIGHTS.medium,semibold:u.NAMED_WEIGHTS.semiBold,bold:u.NAMED_WEIGHTS.bold,extraBold:u.NAMED_WEIGHTS.extraBold,black:u.NAMED_WEIGHTS.black},W={xxs:1,xs:1.1,sm:1.2,md:1.4,lg:1.6,xl:2,editorBody:1.5,headingSm:1.8,headingMd:2.2,headingLg:2.8},z={xxs:1,xs:1,sm:1.3,md:1.43,lg:1,xl:1,editorBody:1.47,headingSm:1.25,headingMd:1.41,headingLg:1.29},K={fontTickLabel:{weight:"fontWeightMedium",size:"fontSizeSm",lineHeight:"fontLineHeightSm"},fontAxisLabel:{weight:"fontWeightMedium",size:"fontSizeSm",lineHeight:"fontLineHeightSm"},fontDataLabel:{weight:"fontWeightMedium",size:"fontSizeXs",lineHeight:"fontLineHeightXs"},fontStackTotal:{weight:"fontWeightSemibold",size:"fontSizeXs",lineHeight:"fontLineHeightXs"},fontCategoryLabel:{weight:"fontWeightMedium",size:"fontSizeXs",lineHeight:"fontLineHeightXs"},fontLegendLabel:{weight:"fontWeightMedium",size:"fontSizeSm",lineHeight:"fontLineHeightSm"},fontGoalLineLabel:{weight:"fontWeightMedium",size:"fontSizeXs",lineHeight:"fontLineHeightXs"}},Fr=`var(--typography-chart-font-family, ${c.fontFamilyDefault})`,st=`var(--typography-chart-heading-font-family, ${c.fontFamilyHeading})`,Gr=e=>e in K,Rs=(e,t)=>{const r=K[e],n=j(t.weight?.toString()??c[r.weight],t.size===void 0?c[r.size]:`${t.size.value}${t.size.unit}`,t.lineHeight?.toString()??c[r.lineHeight],t.family??Fr);return t.style===void 0||t.style==="normal"?n:`${t.style} ${n}`},Q=e=>`${e}em`,Or={textScale:"1",fontFamilyDefault:ve,fontFamilyHeading:Ts,fontWeightRegular:le.regular.toString(),fontWeightMedium:le.medium.toString(),fontWeightSemibold:le.semibold.toString(),fontWeightBold:le.bold.toString(),fontWeightExtraBold:le.extraBold.toString(),fontWeightBlack:le.black.toString(),fontSizeXxs:Q(W.xxs),fontSizeXs:Q(W.xs),fontSizeSm:Q(W.sm),fontSizeMd:Q(W.md),fontSizeLg:Q(W.lg),fontSizeXl:Q(W.xl),fontLineHeightXxs:z.xxs.toString(),fontLineHeightXs:z.xs.toString(),fontLineHeightSm:z.sm.toString(),fontLineHeightMd:z.md.toString(),fontLineHeightLg:z.lg.toString(),fontLineHeightXl:z.xl.toString()},Wr={fontSizeEditorBody:Q(W.editorBody),fontSizeHeadingSm:Q(W.headingSm),fontSizeHeadingMd:Q(W.headingMd),fontSizeHeadingLg:Q(W.headingLg),fontLineHeightEditorBody:z.editorBody.toString(),fontLineHeightHeadingSm:z.headingSm.toString(),fontLineHeightHeadingMd:z.headingMd.toString(),fontLineHeightHeadingLg:z.headingLg.toString()},j=(e,t,r,n=Fr)=>`${e} ${t}/${r} ${n}`,ie=({weight:e,size:t,lineHeight:r})=>j(c[e],c[t],c[r]),zr={fontTickLabel:ie(K.fontTickLabel),fontAxisLabel:ie(K.fontAxisLabel),fontDataLabel:ie(K.fontDataLabel),fontStackTotal:ie(K.fontStackTotal),fontCategoryLabel:ie(K.fontCategoryLabel),fontLegendLabel:ie(K.fontLegendLabel),fontSeriesLabel:j(c.fontWeightSemibold,c.fontSizeSm,c.fontLineHeightSm),fontTooltipLabel:j(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontTooltipHeading:j(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontTooltipFooter:j(c.fontWeightRegular,c.fontSizeSm,c.fontLineHeightSm),fontJumboTooltipLabel:j(c.fontWeightRegular,c.fontSizeSm,c.fontLineHeightSm),fontJumboTooltip:j(c.fontWeightMedium,c.fontSizeHeadingMd,c.fontLineHeightHeadingMd),fontMiniTooltipLabel:j(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontMiniTooltipFooter:j(c.fontWeightRegular,c.fontSizeSm,c.fontLineHeightSm),fontTooltipCaption:j(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontTooltipCaptionSmall:j(c.fontWeightMedium,c.fontSizeXxs,c.fontLineHeightXxs),fontUITooltip:j(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontUITooltipSecondary:j(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontTrendTag:j(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontTrendTagSmall:j(c.fontWeightMedium,c.fontSizeXs,c.fontLineHeightXs),fontGoalLineLabel:ie(K.fontGoalLineLabel),fontPieLabel:j(c.fontWeightMedium,c.fontSizeXs,c.fontLineHeightXs),fontPieChartTotal:j(c.fontWeightBold,c.fontSizeHeadingLg,c.fontLineHeightHeadingLg),fontDifferenceArrowSmall:j(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontDifferenceArrowMedium:j(c.fontWeightMedium,c.fontSizeLg,c.fontLineHeightLg),fontDifferenceArrowLarge:j(c.fontWeightSemibold,c.fontSizeXl,c.fontLineHeightXl),fontButton:j(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontInput:j(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontInputLabel:j(c.fontWeightMedium,c.fontSizeXxs,c.fontLineHeightXxs),fontSelectLabel:j(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontSelectDescription:j(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontColorSelectLabel:j(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontMenuTitle:j(c.fontWeightSemibold,c.fontSizeMd,c.fontLineHeightMd),fontMenuGroupTitle:j(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontMenuItemLabel:j(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontMenuItemLabelSecondary:j(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontErrorBoundaryTitle:j(c.fontWeightSemibold,c.fontSizeHeadingSm,c.fontLineHeightHeadingSm),fontErrorBoundaryMessage:j(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontTableCell:j(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontTableHeaderCell:j(c.fontWeightSemibold,c.fontSizeSm,c.fontLineHeightSm),fontSourceLabel:j(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontSourceLink:j(c.fontWeightRegular,c.fontSizeSm,c.fontLineHeightSm),fontTextEditorH1:j(c.fontWeightBold,c.fontSizeHeadingLg,c.fontLineHeightHeadingLg,st),fontTextEditorH2:j(c.fontWeightBold,c.fontSizeHeadingMd,c.fontLineHeightHeadingMd,st),fontTextEditorH3:j(c.fontWeightSemibold,c.fontSizeHeadingSm,c.fontLineHeightHeadingSm,st),fontTextEditorH6:j(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontTextEditorBody:j(c.fontWeightMedium,c.fontSizeEditorBody,c.fontLineHeightEditorBody),fontTextEditorLink:j(c.fontWeightRegular,c.fontSizeMd,c.fontLineHeightMd),fontHighlightModeTitle:j(c.fontWeightBold,c.fontSizeMd,c.fontLineHeightMd),fontHighlightModeSubtitle:j(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm)},Bs={small:1.9,medium:2.3,large:2.6},Ms={small:1,medium:1,large:1.2},Yr=z.sm,Vr=2,Ur=24,Xr=12,Kr=10,Qr=8,qr=8,Jr=8,Zr=2,_r=1,$r=2,en=4,Is=$r*en,tn=!1,Ie=6,rn=10,R=(e,t)=>`color-mix(in srgb, transparent, ${e} ${t*100}%)`,qe=(e,t)=>`hsl(from ${e} h s calc(l * ${1-t}))`,Rt=(e,t)=>`hsl(from ${e} h s calc(l * ${1+t}))`,xt=(e,t,r)=>`color-mix(in srgb, ${e}, ${t} ${r*100}%)`,Ns=e=>/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(e),Hs=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),U=e=>`${e}px`,nn={gridLineWidth:"1px",gridLineDash:"2 3",gridLineDotted:"1 3",tooltipBorderRadius:"6px",tooltipBorderWidth:"1px",tooltipPaddingBlock:"8px",tooltipPaddingInline:"10px",tooltipRowGap:"4px",tooltipShadow:"0 4px 12px rgba(0, 0, 0, 0.18)",tickLabelOffset:U(rn),legendItemGap:U(qr),legendSwatchGap:U(Qr),legendSwatchWidth:U(Kr),legendSwatchHeight:U(Xr),legendPillPaddingInline:U(Jr),legendPillPaddingBlock:U(Zr),legendPillBorderWidth:U(_r),headlineRowGap:U(Vr),headlineItemGap:U(Ur)},on={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)"},sn={radiiXs:"4px",radiiSm:"6px",radiiMd:"8px",radiiLg:"12px"},an={zIndexToolbar:"10",zIndexToolbarTooltip:"20",zIndexToolbarPopover:"30"},Ds=8,he=e=>`${Ds*e}px`,ln={spaceXxs:he(.25),spaceXs:he(.5),spaceSm:he(.75),spaceMd:he(1),spaceLg:he(1.5),spaceXl:he(2)},Fs={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)"},Gs={textPrimary:c.black,textSecondary:R(c.textPrimary,.6),textDisabled:R(c.textPrimary,.5),iconPrimary:"currentColor",iconSecondary:R(c.textPrimary,.6),iconStickerBackground:c.grey100,brand:c.purple50,success:c.green50,warning:c.amber50,alert:c.red50,border100:c.grey0,border50:R(c.grey0,.5),border10:R(c.grey0,.1),sunkenBackground:c.grey90,defaultBackground:c.grey100,raisedBackground:c.grey85,overlayBackground:c.grey100,overlayBorderGradient:c.border10},Os={graphBackground:c.grey100,gridLineColor:c.border10,originLineColor:c.grey0,targetLineColor:c.border100,targetLineMarkerColor:"#A0A6C5",targetLineLabelTextColor:c.grey100,legendBackground:c.defaultBackground,legendBorderColor:c.border10,legendFocusOutlineColor:c.border50,legendTextColor:c.textPrimary,dimmedSeriesLabelTextColor:c.textDisabled,dimmedSeriesLabelLineColor:c.grey60,trendNegativeColor:c.red60,trendPositiveColor:c.green60,trendNeutralColor:c.textSecondary,toolbarBackgroundColor:c.overlayBackground,toolbarButtonBackgroundColor:"transparent",toolbarButtonBackgroundColorHovered:c.grey80,toolbarButtonBackgroundColorSelected:c.grey60,toolbarSeparatorColor:c.grey60,tooltipBackground:c.white,tooltipBorderColor:c.border10,tooltipHeadingTextColor:c.textPrimary,tooltipLabelTextColor:c.textSecondary,tooltipValueTextColor:c.textPrimary,tooltipPrimaryRowColor:c.grey80,hoverGuideLineColor:R(c.black,.2),hoverGuideFillColor:R(c.black,.04),hoveredBarBorderColor:c.white,hoveredPointRingColor:c.white,pointStrokeColor:c.white,stackedBarHoverBorderColor:c.grey0,heatmapEmptyTileBackground:c.grey80,dataLabelOutsideBackground:R(c.textPrimary,.1),dataLabelTextColor:c.textPrimary,dataLabelInsideTextColor:c.white,stackTotalTextColor:c.textPrimary,stackTotalBackground:c.grey100,stackTotalStroke:c.grey60,defaultAnnotationArrowStroke:c.black,defaultAnnotationShapeStroke:c.black,defaultAnnotationShapeFill:c.canvasBlue,arrowAnnotationStickerOutlineColor:"#1D2129",arrowAnnotationStickerOutlineColorInverse:"#FFFFFF",annotationFrameBorderColor:c.blue60,annotationMenuTriggerIconColor:"#3d414c"},Ws={canvasDefault:"#000000",canvasBlue:"#3b82f6",canvasCyan:"#06b6d4",canvasGreen:"#10b981",canvasYellow:"#E5B400",canvasOrange:"#f97316",canvasRed:"#ef4444",canvasPink:"#E845BF",canvasPurple:"#8b5cf6",canvasGray:"#78716c",canvasInverse:"#ffffff"},cn={...Fs,...Gs,...on,...sn,...ln,...an,...Os,...Ws,...nn,...Or,...Wr,...zr},zs=10,Je=(e,t)=>e*zs*t,Ys=["normal","italic","oblique"],Vs=/^(\d*\.?\d+)(px|em)$/,dn=/^\d*\.?\d+$/,Us={normal:u.NAMED_WEIGHTS.normal,bold:u.NAMED_WEIGHTS.bold},Xs=e=>Ys.includes(e),un=e=>{const t=Vs.exec(e.trim());return t===null||t[1]===void 0||t[2]===void 0?null:{value:Number.parseFloat(t[1]),unit:t[2]==="px"?"px":"em"}},hn=e=>{const t=e.trim(),r=Us[t];if(r!==void 0)return r;if(!dn.test(t))return null;const n=Number.parseFloat(t);return n>=1&&n<=1e3?n:null},gn=e=>{const t=e.trim();return dn.test(t)?Number.parseFloat(t):null},Y=(e,t)=>({family:e.family,size:e.size.unit==="em"?Je(e.size.value,t):e.size.value,weight:e.weight,style:e.style}),Ks=(e,t={})=>{const r=at(e.fontFamilyDefault)??at(ve)??"",n=s=>{const a=t[s]??{},i=K[s],l=fn(i,e);l===null&&qs(s);const d=l??Qs(i);return{family:at(a.family)??r,style:a.style??"normal",weight:a.weight??d.weight,size:a.size??d.size,lineHeight:a.lineHeight??d.lineHeight}};return{dataLabel:n("fontDataLabel"),stackTotal:n("fontStackTotal"),categoryLabel:n("fontCategoryLabel"),tickLabel:n("fontTickLabel"),axisLabel:n("fontAxisLabel"),legendLabel:n("fontLegendLabel"),goalLineLabel:n("fontGoalLineLabel"),familyDefault:r}},fn=(e,t)=>{const r=hn(t[e.weight]),n=un(t[e.size]),s=gn(t[e.lineHeight]);return r===null||n===null||s===null?null:{weight:r,size:n,lineHeight:s}},Qs=e=>{const t=fn(e,cn);if(t===null)throw new Error("[react-renderer] Base typography leaf tokens failed to parse.");return t},at=e=>e===void 0||e.includes("var(")?null:e.replace(/\s+/g," ").trim(),qs=e=>{process.env.NODE_ENV!=="production"&&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).`)},Js={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)"},Zs={textPrimary:c.grey0,textSecondary:R(c.textPrimary,.8),textDisabled:R(c.textPrimary,.5),iconPrimary:"currentColor",iconSecondary:R(c.textPrimary,.6),iconStickerBackground:c.grey70,border100:c.grey0,border50:R(c.grey0,.5),border10:R(c.grey0,.1),brand:c.purple50,success:c.green50,warning:c.amber50,alert:c.red50,sunkenBackground:c.grey100,defaultBackground:c.grey90,raisedBackground:c.grey80,overlayBackground:c.grey90,overlayBorderGradient:c.greyGradient80},_s={graphBackground:c.grey90,gridLineColor:c.border10,originLineColor:c.grey0,targetLineColor:c.border100,targetLineMarkerColor:c.border100,targetLineLabelTextColor:c.grey100,legendBackground:c.defaultBackground,legendBorderColor:c.border10,legendFocusOutlineColor:c.border50,legendTextColor:c.textPrimary,dimmedSeriesLabelTextColor:c.textDisabled,dimmedSeriesLabelLineColor:c.grey60,trendNegativeColor:c.red60,trendPositiveColor:c.green60,trendNeutralColor:c.textSecondary,toolbarBackgroundColor:c.overlayBackground,toolbarButtonBackgroundColor:"transparent",toolbarButtonBackgroundColorHovered:c.grey80,toolbarButtonBackgroundColorSelected:c.grey60,toolbarSeparatorColor:c.grey60,tooltipBackground:c.grey70,tooltipBorderColor:c.grey60,tooltipHeadingTextColor:c.textPrimary,tooltipLabelTextColor:c.textSecondary,tooltipValueTextColor:c.textPrimary,tooltipPrimaryRowColor:c.grey60,hoverGuideLineColor:R(c.white,.2),hoverGuideFillColor:R(c.white,.06),hoveredBarBorderColor:c.white,hoveredPointRingColor:c.white,pointStrokeColor:c.white,stackedBarHoverBorderColor:c.grey0,heatmapEmptyTileBackground:c.grey80,dataLabelOutsideBackground:R(c.textPrimary,.1),dataLabelTextColor:c.textPrimary,dataLabelInsideTextColor:c.white,stackTotalTextColor:c.textPrimary,stackTotalBackground:c.grey100,stackTotalStroke:c.grey60,defaultAnnotationArrowStroke:c.white,defaultAnnotationShapeStroke:c.white,defaultAnnotationShapeFill:c.canvasBlue,arrowAnnotationStickerOutlineColor:"#FFFFFF",arrowAnnotationStickerOutlineColorInverse:"#1D2129",annotationFrameBorderColor:c.blue60,annotationMenuTriggerIconColor:c.white},$s={canvasDefault:"#FFFFFF",canvasBlue:"#60a5fa",canvasCyan:"#22d3ee",canvasGreen:"#34d399",canvasYellow:"#FFC800",canvasOrange:"#fb923c",canvasRed:"#f87171",canvasPink:"#F979D9",canvasPurple:"#a78bfa",canvasGray:"#a8a29e",canvasInverse:"#000000"},ea={...Js,...Zs,...on,...sn,...ln,...an,..._s,...$s,...nn,...Or,...Wr,...zr},pn=(e,t={})=>{const r={},n={};for(const[a,i]of Object.entries(t))if(i!=null)if(Gr(a)){const l=i;n[a]=l,r[a]=Rs(a,l)}else r[a]=i;return{values:{...e==="dark"?ea:cn,...r},fontOverrides:n}},ta=(e,t={})=>pn(e,t).values,mn=(e,t={})=>{const{values:r,fontOverrides:n}=pn(e,t),s=X(r.legendPillPaddingInline,Jr),a=X(r.legendPillPaddingBlock,Zr),i=X(r.legendPillBorderWidth,_r);return{tickLabelOffset:X(r.tickLabelOffset,rn),legendSwatchWidth:X(r.legendSwatchWidth,Kr),legendSwatchHeight:X(r.legendSwatchHeight,Xr),legendSwatchGap:X(r.legendSwatchGap,Qr),legendItemGap:X(r.legendItemGap,qr),legendPillPaddingInline:s,legendPillPaddingBlock:a,legendPillBorderWidth:i,legendPillHorizontalChrome:2*(s+i),legendPillVerticalChrome:2*(a+i),headlineRowGap:X(r.headlineRowGap,Vr),headlineItemGap:X(r.headlineItemGap,Ur),fonts:Ks(r,n)}},ra=Object.freeze(mn("light"));function X(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}const xn=f.createContext(ra),na=({metrics:e,children:t})=>o.jsx(xn.Provider,{value:e,children:t}),oe=()=>f.useContext(xn),oa=/\p{Emoji_Presentation}|\p{Emoji}\uFE0F/gu,vn="😀";class Ze{constructor(){this.emojiCorrections=new Map,this.currentFont="";const r=new OffscreenCanvas(1,1).getContext("2d");if(!r)throw new Error("Failed to create OffscreenCanvas 2D context");this.ctx=r}static async create(){return typeof document<"u"&&"fonts"in document&&await document.fonts.ready,new Ze}measureText(t,r){const n=u.buildFontString(r);this.setFont(n);const{width:s,fontBoundingBoxAscent:a,fontBoundingBoxDescent:i}=this.ctx.measureText(t);let l=s;const d=sa(t);if(d>0){const h=this.getEmojiCorrection(n);l-=h*d}return{width:l,height:a+i,ascent:a,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(vn).width,s=aa(t);let a=0;if(s!==null){const i=n-s;a=i>.5?i:0}return this.emojiCorrections.set(t,a),a}}let _=null;const sa=e=>{const t=e.match(oa);return t?t.length:0},aa=e=>{const t=ia();return t?(t.style.font=e,t.getBoundingClientRect().width):null},ia=()=>typeof document>"u"?null:(_||(_=document.createElement("span"),_.style.position="absolute",_.style.visibility="hidden",_.style.whiteSpace="nowrap",_.style.left="-9999px",_.textContent=vn,document.body.appendChild(_)),_),yn=f.createContext(null),bn=({children:e,measurer:t})=>{const[r,n]=f.useState(null);f.useEffect(()=>{if(t!==void 0)return;let a=!1;const i=()=>{a||n(la())};return(async()=>{typeof document<"u"&&"fonts"in document&&await document.fonts.ready,i()})(),typeof document<"u"&&"fonts"in document&&document.fonts.addEventListener("loadingdone",i),()=>{a=!0,typeof document<"u"&&"fonts"in document&&document.fonts.removeEventListener("loadingdone",i)}},[t]);const s=t??r;return s===null?null:o.jsx(yn.Provider,{value:s,children:e})},se=()=>{const e=f.useContext(yn);if(e===null)throw new Error("useTextMeasurer must be used inside a <TextMeasurerProvider>.");return e},la=()=>{try{return new u.CachedTextMeasurer(new Ze)}catch{return new u.CachedTextMeasurer(new u.HeuristicTextMeasurer)}},An=f.createContext(null),ca=An.Provider;let da=null;const ee=()=>f.useContext(An)??(da??=Rn());var ua="_16vokpr0";const ha=11.7,je=5,ga=5,Yt=10,Vt=10,fa=4,Oe=13,Sn=6,it=12,Ut=21.6,pa="0 0 10 18",ma="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",Xt="#FFFFFF",lt="#1A1A1A",xa=(e,t)=>{const r=e.mapping.y!==void 0,n=t.mainAxis==="y";return r!==n},va=(e,t)=>{const r=u.toPercent(e?1-t:t);return e?{x1:"0%",y1:r,x2:"100%",y2:r}:{x1:r,y1:"0%",x2:r,y2:"100%"}},ya=(e,t)=>e==="solid"?{}:e==="dotted"?{strokeDasharray:`0 ${t*2}`,strokeLinecap:"round"}:{strokeDasharray:`${t*2} ${t*3}`,strokeLinecap:"round",strokeMiterlimit:16},ba=e=>{const t=e.params.color,r=t??c.targetLineColor;let n=c.targetLineLabelTextColor;if(t!==void 0)try{n=gt.getContrast(t,Xt)>gt.getContrast(t,lt)?Xt:lt}catch{n=lt}return{lineColor:r,labelTextColor:n}},Aa=(e,t)=>Ne(e)&&Ne(t)?`${e}: ${t}`:Ne(e)?e:Ne(t)?t:null,Ne=e=>e!=null&&e.trim()!=="",jn=Object.freeze({}),Bt=f.createContext(jn),Sa=({slots:e,children:t})=>o.jsx(Bt.Provider,{value:e??jn,children:t});function $(e,t){const r=f.useContext(Bt)[e];return r===void 0?t:typeof r=="object"&&wa(r)?r.render:r}function ja(){const e=f.useContext(Bt);return{measureAxis:e.AxisTicks?.measure,measureAxisLabel:e.AxisLabel?.measure,measureLegend:e.Legend?.measure,measureHeadline:e.Headline?.measure.measureHeadline,measureHeadlineItemWidths:e.Headline?.measure.measureHeadlineItemWidths}}function wa(e){return"render"in e&&"measure"in e}var ka="_2qyyu60";const Kt=2,Ca=12,Ea=12,Qt=1,qt=2,La=4,Le=e=>{const t=$("Swatch",wn);return o.jsx(t,{...e})},wn=({shape:e,color:t,lineType:r="solid",width:n=Ca,height:s=Ea})=>o.jsx("svg",{className:ka,width:n,height:s,viewBox:`0 0 ${n} ${s}`,"aria-hidden":!0,"data-testid":"chart-swatch","data-shape":e,children:Pa({shape:e,color:t,lineType:r,width:n,height:s})}),Pa=({shape:e,color:t,lineType:r,width:n,height:s})=>{const a=Ta(r,n);switch(e){case"square":return o.jsx("rect",{x:1,y:1,width:n-2,height:s-2,rx:2,fill:t});case"line":return o.jsx("line",{x1:a.x1,y1:s/2,x2:a.x2,y2:s/2,stroke:t,strokeWidth:Kt,strokeLinecap:a.linecap,strokeDasharray:a.dashArray});case"circle":{const i=(Math.min(n,s)-2)/2;return o.jsx("circle",{cx:n/2,cy:s/2,r:i,fill:t})}case"area":{const i=s/2-1;return o.jsxs(o.Fragment,{children:[o.jsx("rect",{x:1,y:i,width:n-2,height:s-i-1,fill:t,opacity:.45}),o.jsx("line",{x1:a.x1,y1:i,x2:a.x2,y2:i,stroke:t,strokeWidth:Kt,strokeLinecap:a.linecap,strokeDasharray:a.dashArray})]})}case"slice":return o.jsx("path",{d:`M 0 ${s} L ${n} ${s} A ${n} ${s} 0 0 0 0 0 Z`,fill:t})}},Ta=(e,t)=>{if(e==="solid")return{x1:0,x2:t,dashArray:void 0,linecap:"round"};if(e==="dashed"){const n=(t-Qt*(qt-1))/qt;return{x1:0,x2:t,dashArray:`${n} ${Qt}`,linecap:"butt"}}const r=t/(La-1);return{x1:0,x2:t,dashArray:`1 ${r}`,linecap:"round"}},Ra=({labelPosition:e,linePosition:t,color:r,pillWidth:n,pillHeight:s,text:a,isAnimated:i})=>{const l=e==="start",d=l?-Oe:-(n-Oe),h=l?d+n-je:d+je-it,g=l?void 0:`rotate(180 ${h+it/2} ${s/2})`,p=l?"0%":"100%",m=u.toPercent(1-t),v=o.jsxs("g",{transform:`translate(0, ${-s/2})`,pointerEvents:"none",children:[o.jsx("rect",{x:d,y:0,width:n,height:s,rx:Sn,fill:r}),o.jsx("g",{transform:g,children:o.jsx("svg",{x:h,y:(s-Ut)/2,width:it,height:Ut,viewBox:pa,overflow:"visible",children:o.jsx("path",{d:ma,fill:r})})}),o.jsx("g",{transform:`translate(${d+je}, ${s/2})`,children:a})]});return i?o.jsx(w.motion.svg,{initial:!1,transition:B,x:p,animate:{y:m},overflow:"visible",children:v}):o.jsx("svg",{x:p,y:m,overflow:"visible",children:v})},Ba=({labelPosition:e,linePosition:t,color:r,pillWidth:n,pillHeight:s,text:a,isAnimated:i})=>{const l=e==="start",d=l?-Oe:-(s-Oe),h=u.toPercent(t),g=l?"100%":"0%",p=o.jsxs("g",{transform:`translate(${-n/2}, 0)`,pointerEvents:"none",children:[o.jsx("rect",{x:0,y:d,width:n,height:s,rx:Sn,fill:r}),o.jsx("g",{transform:`translate(${je}, ${d+s/2})`,children:a})]});return i?o.jsx(w.motion.svg,{initial:!1,transition:B,y:g,animate:{x:h},overflow:"visible",children:p}):o.jsx("svg",{x:h,y:g,overflow:"visible",children:p})},Ma=({label:e,textWidth:t,labelPosition:r,isHorizontalLine:n,position:s,color:a,textColor:i,symbolShape:l,symbolColor:d,isAnimated:h})=>{const g=l===null?0:Yt+fa,p=t+g+je*2,m=ha+ga*2,v=o.jsxs(o.Fragment,{children:[l!==null&&d!==null&&o.jsx("g",{transform:`translate(0, ${-Vt/2})`,children:o.jsx(Le,{shape:l,color:d,surface:"rule-label",width:Yt,height:Vt})}),o.jsx("text",{x:g,textAnchor:"start",dominantBaseline:"central",fill:i,style:{font:c.fontGoalLineLabel},children:e})]});return n?o.jsx(Ra,{labelPosition:r,linePosition:s,color:a,pillWidth:p,pillHeight:m,text:v,isAnimated:h}):o.jsx(Ba,{labelPosition:r,linePosition:s,color:a,pillWidth:p,pillHeight:m,text:v,isAnimated:h})},Ia=({layer:e,isHorizontalLine:t,position:r,lineColor:n,isAnimated:s})=>{const a=va(t,r),i=ya(e.params.lineType,e.params.strokeWidth);return s?o.jsx(w.motion.line,{initial:!1,transition:B,animate:{x1:a.x1,y1:a.y1,x2:a.x2,y2:a.y2},...i,stroke:n,strokeWidth:e.params.strokeWidth,vectorEffect:"non-scaling-stroke"}):o.jsx("line",{...a,...i,stroke:n,strokeWidth:e.params.strokeWidth,vectorEffect:"non-scaling-stroke"})},Na=f.memo(function({layer:t,coordSystem:r,formattingLocale:n,isAnimated:s}){const a=se(),i=ee(),{guides:l,numberFormat:d,textScale:h,layers:g,colorScale:p}=k(O.useShallow(A=>({guides:A.guides,numberFormat:A.config.numberFormat,textScale:A.config.appearance.textScale,layers:A.spec.layers,colorScale:A.scales.color}))),m=f.useMemo(()=>u.buildAverageLineSymbols(g,p).get(t.id)??null,[g,p,t.id]),v=m?i(m.geom,r.type)?.swatchShape??"square":null,x=f.useMemo(()=>Aa(t.params.label,u.formatRuleValue({guides:l,numberFormat:d,layer:t,locale:n})),[l,d,n,t]),{fonts:y}=oe(),b=f.useMemo(()=>Y(y.goalLineLabel,h),[y.goalLineLabel,h]),S=f.useMemo(()=>x===null?0:a.measureText(x,b).width,[x,b,a]),C=t.data.getFirst();if(!C)return null;const{lineColor:E,labelTextColor:P}=ba(t),T=xa(t,r),H=T?u.getY(C):u.getX(C);return H===null?null:o.jsxs("g",{"data-geom":"rule",className:ua,children:[o.jsx(Ia,{layer:t,isHorizontalLine:T,position:H,lineColor:E,isAnimated:s}),x!==null&&o.jsx(Ma,{label:x,textWidth:S,labelPosition:t.params.labelPosition,isHorizontalLine:T,position:H,color:E,textColor:P,symbolShape:v,symbolColor:m?.color??null,isAnimated:s})]})}),Ha={geom:"rule",coord:"cartesian",render:({layer:e,coordSystem:t,formattingLocale:r,isAnimated:n})=>o.jsx(Na,{layer:e,coordSystem:t,formattingLocale:r,isAnimated:n}),renderHover:()=>null,renderHoverCompanions:()=>null},We=({primary:e,companions:t})=>{const r=o.jsxs(o.Fragment,{children:[t.map(n=>o.jsx(ne,{hit:n,project:J},`companion-${n.layerId}-${n.pointIndex}`)),e?o.jsx(xe,{hit:e,project:J}):null]});return e?o.jsx("g",{"data-testid":"hovered-point",children:r}):r},vt=e=>{const[t,...r]=e;if(!t)return"";const n=r.map(s=>`L ${s.x} ${s.y}`).join(" ");return`M ${t.x} ${t.y} ${n} Z`},Da=f.memo(function({layer:t}){const r=f.useMemo(()=>{const n=u.createStableKeyGenerator(t.data,t.mapping,t.id),s=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(a=>{const i=[...a],l=kn(i);if(!l)return;const d=i[0];d&&s.push({key:n(d),fillPath:l.fillPath,outlinePath:l.outlinePath,color:u.getColor(d),opacity:u.getAlpha(d)??Ke,strokeWidth:u.resolveStrokeWidth(d,t.params)})}),s},[t.data,t.id,t.mapping,t.params]);return o.jsx("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"area",className:V,children:r.map(n=>o.jsxs("g",{children:[o.jsx("path",{d:n.fillPath,fill:n.color,fillOpacity:Xe,fillRule:"evenodd"}),o.jsx("path",{d:n.outlinePath,fill:"none",stroke:n.color,strokeWidth:n.strokeWidth,opacity:n.opacity,vectorEffect:"non-scaling-stroke"})]},n.key))})}),kn=e=>{const t=[];for(const l of e){const d=u.getX(l),{innerRadius:h,outerRadius:g}=u.getRadiusExtent(l);d===null||h===null||g===null||t.push({angle:d,outer:q(d,g),inner:q(d,h)})}if(t.length===0)return null;t.sort((l,d)=>l.angle-d.angle);const r=t.map(l=>l.outer),n=t.map(l=>l.inner),s=vt(r);return{fillPath:n.some(l=>l.x!==0||l.y!==0)?`${s} ${vt([...n].reverse())}`:s,outlinePath:s}},Fa=({layer:e,primary:t,companions:r})=>{const n=u.getGroup(t.observation),s=f.useMemo(()=>{const d=e.data.filter(u.GROUP_VARIABLES.group,"eq",n);return kn([...d])},[e.data,n]);if(!s)return null;const a=u.getColor(t.observation),i=u.getAlpha(t.observation)??Ke,l=u.resolveStrokeWidth(t.observation,e.params);return o.jsxs(o.Fragment,{children:[o.jsxs("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"area","data-testid":"hovered-area",className:V,children:[o.jsx("path",{d:s.fillPath,fill:a,fillOpacity:Xe,fillRule:"evenodd","data-testid":"hovered-area-fill"}),o.jsx("path",{d:s.outlinePath,fill:"none",stroke:a,strokeWidth:l,opacity:i,vectorEffect:"non-scaling-stroke","data-testid":"hovered-area-edge"})]}),r.map(d=>o.jsx(ne,{hit:d,project:J},`companion-${d.layerId}-${d.pointIndex}`)),o.jsx(xe,{hit:t,project:J,"data-testid":"hovered-area-point"})]})},Ga={geom:"area",coord:"polar",swatchShape:"area",guideMode:"crosshair",render:({layer:e})=>o.jsx(Da,{layer:e}),renderHover:({layer:e,primary:t,group:r,related:n})=>o.jsx(Fa,{layer:e,primary:t,companions:[...r,...n]}),renderHoverCompanions:({related:e})=>o.jsx(We,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=u.getX(e),r=u.getYMax(e)??u.getY(e);if(t===null||r===null)return null;const{x:n,y:s}=J(t,r);return{x:n,y:1-s}}},Cn=1,Jt=Math.PI*2,ze=(e,t)=>({stroke:e,strokeWidth:t,vectorEffect:"non-scaling-stroke"}),Oa=f.memo(function({layer:t,coordSystem:r,isAnimated:n}){const s=f.useRef(!1),a=f.useId();f.useEffect(()=>{s.current=!0},[]);const i=t.params.borderColor,l=i!==void 0,d=u.resolveBarBorderTreatment(t.params.borderWidth),h=i===void 0?{}:ze(i,d.separatorWidth),g=i===void 0?{}:ze(i,d.outlineWidth),p=f.useMemo(()=>{const m=u.createStableKeyGenerator(t.data,t.mapping,t.id),v=new Map;for(const x of t.data){const y=m(x),{startAngle:b,endAngle:S}=u.getAngleExtent(x),{innerRadius:C,outerRadius:E}=u.getRadiusExtent(x);if(b===null||S===null||C===null||E===null)continue;const P={key:y,startAngle:b,endAngle:S,innerRadius:C,outerRadius:E,fill:u.getColor(x),opacity:u.getAlpha(x)??Cn},T=u.buildSliceGroupKey(r.bandAxis,P),H=v.get(T);H?H.push(P):v.set(T,[P])}return[...v.entries()].map(([x,y])=>({key:x,items:y,union:u.getUnionExtent(y)}))},[t.data,t.mapping,t.id,r.bandAxis]);return o.jsx("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"bar",className:V,children:p.map((m,v)=>{const x=m.items.map(S=>{const{key:C,...E}=S;return n?o.jsx(Wa,{...E,isInitialRender:!s.current,pathProps:{fill:E.fill,opacity:E.opacity,...h}},C):o.jsx("path",{d:u.buildPolarBarArcPath(E)??void 0,fill:E.fill,opacity:E.opacity,...h},C)});if(!l)return o.jsx(f.Fragment,{children:x},m.key);const y=`${a}${v}`;if(n)return o.jsx("g",{clipPath:`url(#${y})`,children:o.jsx(za,{...m.union,isInitialRender:!s.current,clipId:y,outlineProps:g,children:x})},m.key);const b=u.buildPolarBarArcPath(m.union);return o.jsxs("g",{clipPath:`url(#${y})`,children:[o.jsx("clipPath",{id:y,children:o.jsx("path",{d:b})}),x,o.jsx("path",{d:b,fill:"none",...g})]},m.key)})})}),En=({startAngle:e,endAngle:t,innerRadius:r,outerRadius:n,isInitialRender:s})=>{const a=s?e:Jt,i=s?t:Jt,l=w.useSpring(a,B),d=w.useSpring(i,B),h=w.useMotionValue(u.buildPolarBarArcPath({startAngle:a,endAngle:i,innerRadius:r,outerRadius:n})??"");return f.useEffect(()=>{l.set(e),d.set(t)},[l,d,e,t]),f.useEffect(()=>{const g=()=>{const v=l.get(),x=d.get();h.set(u.buildPolarBarArcPath({startAngle:v,endAngle:x,innerRadius:r,outerRadius:n})??"")};g();const p=l.on("change",g),m=d.on("change",g);return()=>{p(),m()}},[l,d,r,n,h]),h},Wa=({pathProps:e,...t})=>{const r=En(t);return o.jsx(w.motion.path,{d:r,transition:B,...e})},za=({clipId:e,outlineProps:t,children:r,...n})=>{const s=En(n);return o.jsxs(o.Fragment,{children:[o.jsx("clipPath",{id:e,children:o.jsx(w.motion.path,{d:s})}),r,o.jsx(w.motion.path,{d:s,fill:"none",transition:B,...t})]})},Ya=Math.PI*2,Va=1e-9,Ua=(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}},Ln=({observation:e,bandAxis:t,params:r})=>{const n=f.useId(),{startAngle:s,endAngle:a}=u.getAngleExtent(e),{innerRadius:i,outerRadius:l}=u.getRadiusExtent(e);if(s===null||a===null||i===null||l===null)return null;const d={startAngle:s,endAngle:a,innerRadius:i,outerRadius:l},h=u.buildPolarBarArcPath(d)??void 0;if(h===void 0)return null;const g=u.getColor(e),p=u.getAlpha(e)??Cn,{borderColor:m,borderWidth:v}=r;if(m===void 0)return o.jsx("path",{d:h,fill:g,opacity:p,"data-testid":"highlight-arc-segment"});const x=Ua(u.getStackRole(e),t),y=$t(d,x),b=$t(d,Ka(x)),S=u.resolveBarBorderTreatment(v);return o.jsxs("g",{clipPath:`url(#${n})`,"data-testid":"highlight-arc-segment",children:[o.jsx("clipPath",{id:n,children:o.jsx("path",{d:h})}),o.jsx("path",{d:h,fill:g,opacity:p}),b&&o.jsx("path",{d:b,fill:"none",...ze(m,S.separatorWidth)}),y&&o.jsx("path",{d:y,fill:"none",...ze(m,S.outlineWidth)})]})},Xa=({layer:e,coordSystem:t})=>{const r=u.createStableKeyGenerator(e.data,e.mapping,e.id);return o.jsx("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"bar",className:V,children:[...e.data].map(n=>o.jsx(Ln,{observation:n,bandAxis:t.bandAxis,params:e.params},r(n)))})},we=(e,t)=>`${e*Math.sin(t)},${-e*Math.cos(t)}`,Zt=(e,t,r)=>{if(e<=0)return"";const n=r-t,s=we(e,t);if(Math.abs(n)>=Ya-Va){const l=we(e,t+Math.PI);return`M${s}A${e},${e} 0 1 1 ${l}A${e},${e} 0 1 1 ${s}`}const a=Math.abs(n)>Math.PI?1:0,i=n>=0?1:0;return`M${s}A${e},${e} 0 ${a} ${i} ${we(e,r)}`},_t=(e,t,r)=>`M${we(t,e)}L${we(r,e)}`,$t=(e,t)=>{const{startAngle:r,endAngle:n,innerRadius:s,outerRadius:a}=e;return[t.innerArc?Zt(s,r,n):"",t.outerArc?Zt(a,r,n):"",t.startSpoke?_t(r,s,a):"",t.endSpoke?_t(n,s,a):""].filter(Boolean).join("")},Ka=e=>({innerArc:!e.innerArc,outerArc:!e.outerArc,startSpoke:!e.startSpoke,endSpoke:!e.endSpoke}),Qa=({layer:e,coordSystem:t,primary:r})=>o.jsx("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"arc","data-testid":"hovered-arc",className:V,children:o.jsx(Ln,{observation:r.observation,bandAxis:t.bandAxis,params:e.params})}),qa={geom:"bar",coord:"polar",swatchShape:"slice",guideMode:"band",render:({layer:e,coordSystem:t,isAnimated:r})=>o.jsx(Oa,{layer:e,coordSystem:t,isAnimated:r}),renderHighlight:({layer:e,coordSystem:t})=>o.jsx(Xa,{layer:e,coordSystem:t}),renderHover:({layer:e,coordSystem:t,primary:r})=>o.jsx(Qa,{layer:e,coordSystem:t,primary:r}),renderHoverCompanions:()=>null},Ja=f.memo(function({layer:t}){const r=f.useMemo(()=>{const n=u.createStableKeyGenerator(t.data,t.mapping,t.id),s=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(a=>{const i=[...a],l=Pn(i);if(!l)return;const d=i[0];d&&s.push({key:n(d),pathData:l,color:u.getColor(d),opacity:u.getAlpha(d)??Qe,strokeWidth:u.resolveStrokeWidth(d,t.params),strokeDasharray:u.getDashArray(u.getLineType(d))})}),s},[t.data,t.id,t.mapping,t.params]);return o.jsx("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"line",className:V,children:r.map(n=>o.jsx("path",{d:n.pathData,fill:"none",stroke:n.color,strokeWidth:n.strokeWidth,opacity:n.opacity,strokeDasharray:n.strokeDasharray,vectorEffect:"non-scaling-stroke"},n.key))})}),Pn=e=>{const t=[];for(const r of e){const n=u.getX(r),s=u.getY(r);n===null||s===null||t.push({angle:n,point:q(n,s)})}return t.length===0?null:(t.sort((r,n)=>r.angle-n.angle),vt(t.map(r=>r.point)))},Za=({layer:e,primary:t,companions:r})=>{const n=u.getGroup(t.observation),s=f.useMemo(()=>{const h=e.data.filter(u.GROUP_VARIABLES.group,"eq",n);return Pn([...h])},[e.data,n]);if(!s)return null;const a=u.getColor(t.observation),i=u.getAlpha(t.observation)??Qe,l=u.resolveStrokeWidth(t.observation,e.params),d=u.getDashArray(u.getLineType(t.observation));return o.jsxs(o.Fragment,{children:[o.jsx("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"line","data-testid":"hovered-line",className:V,children:o.jsx("path",{d:s,fill:"none",stroke:a,strokeWidth:l,opacity:i,strokeDasharray:d,vectorEffect:"non-scaling-stroke","data-testid":"hovered-line-path"})}),r.map(h=>o.jsx(ne,{hit:h,project:J},`companion-${h.layerId}-${h.pointIndex}`)),o.jsx(xe,{hit:t,project:J,"data-testid":"hovered-line-point"})]})},_a={geom:"line",coord:"polar",swatchShape:"line",guideMode:"crosshair",render:({layer:e})=>o.jsx(Ja,{layer:e}),renderHover:({layer:e,primary:t,group:r,related:n})=>o.jsx(Za,{layer:e,primary:t,companions:[...r,...n]}),renderHoverCompanions:({related:e})=>o.jsx(We,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=u.getX(e),r=u.getY(e);if(t===null||r===null)return null;const{x:n,y:s}=J(t,r);return{x:n,y:1-s}}},$a=f.memo(function({layer:t,isAnimated:r}){return f.useMemo(()=>{const n=[];let s=0;for(const a of t.data)n.push(o.jsx(Dr,{observation:a,project:J,layerSize:t.params.size,isAnimated:r},String(s++)));return n},[t.data,t.params.size,r])}),ei={geom:"point",coord:"polar",swatchShape:"circle",render:({layer:e,isAnimated:t})=>o.jsx($a,{layer:e,isAnimated:t}),renderHover:({primary:e,group:t,related:r})=>o.jsx(We,{primary:e,companions:[...t,...r]}),renderHoverCompanions:({related:e})=>o.jsx(We,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=u.getX(e),r=u.getY(e);if(t===null||r===null)return null;const{x:n,y:s}=J(t,r);return{x:n,y:1-s}}},Tn={bar:{cartesian:bs,polar:qa},line:{cartesian:Es,polar:_a},area:{cartesian:is,polar:Ga},point:{cartesian:Ps,polar:ei},rule:{cartesian:Ha}};function _e(e){return typeof e=="function"?{overlay:!1,fn:e}:{overlay:!0,fn:e.fn}}function $e(e){return e?_e(e.render).overlay:!1}function ti(e,t){return typeof e=="string"?{...t,geom:e}:{...t,definition:e,geom:e.type}}function Rn(e=[]){const t={};for(const[r,n]of Object.entries(Tn))t[r]={...n};for(const r of e)(t[r.geom]??={})[r.coord]=r;return(r,n)=>t[r]?.[n]??null}const Bn=e=>typeof e=="object"&&"geom"in e&&"render"in e,ri=e=>{const t=u.resolveDefinition(e);return t instanceof u.Geom?t:null},ni=e=>{if(e===void 0)return;const t={};for(const[r,n]of Object.entries(e))if(Gr(r)&&typeof n=="string"){const s=oi(n);if(s===null){si(r,n);continue}t[r]=s}else t[r]=n;return t},oi=e=>{const t=e.trim().replace(/\s*\/\s*/g,"/").split(/\s+/);let r="normal",n=400,s=0;for(;s<t.length;){const p=t[s];if(p===void 0)return null;if(p==="normal")s++;else if(Xs(p))r=p,s++;else{const m=hn(p);if(m===null)break;n=m,s++}}const a=t[s];if(a===void 0)return null;const[i="",l]=a.split("/"),d=un(i);if(d===null)return null;const h=l===void 0?null:gn(l),g=t.slice(s+1).join(" ").trim();return g===""?null:{style:r,weight:n,size:d,family:g,...h!==null?{lineHeight:h}:{}}},si=(e,t)=>{process.env.NODE_ENV!=="production"&&console.warn(`[react-renderer] Ignoring GraphConfig themeOverrides."${e}": "${t}" is not a measurable font shorthand (needs a px/em size and a family).`)};function ai(e,t,r){return f.useMemo(()=>{if(!u.isGraphConfig(e))return{...t};const n=ni(e.themeOverrides),s=e.appearance?.textStyle,a=r&&s?ii(s,r):void 0;return{...t,...n,...a}},[e,t,r])}function ii(e,t){const r=e.body?.fontId?t.find(a=>a.id===e.body?.fontId)?.fontFamily:void 0,n=e.heading?.fontId?t.find(a=>a.id===e.heading?.fontId)?.fontFamily:void 0,s={};return r&&(s.fontFamilyDefault=r),n&&(s.fontFamilyHeading=n),Object.keys(s).length>0?s:void 0}function yt(e){for(const t of e)(t.severity==="error"?console.error:console.warn)(`[graphy] ${t.code}: ${t.message}`,t)}var li="_1bs9o1n0",ci="_1bs9o1n1",di="_1bs9o1n2",ui="_1bs9o1n3",hi="_1bs9o1n4",gi="_1bs9o1n5",fi="_1bs9o1n6";const bt=({errors:e})=>{const[t,...r]=e;return o.jsxs("div",{role:"alert",className:li,children:[o.jsx("strong",{className:ci,children:"This chart could not be rendered."}),t&&o.jsx(er,{diagnostic:t}),r.length>0&&o.jsx("ul",{className:di,children:r.map((n,s)=>o.jsx("li",{children:o.jsx(er,{diagnostic:n})},`${n.code}-${s}`))})]})},er=({diagnostic:e})=>o.jsxs("div",{className:ui,children:[o.jsx("span",{className:hi,children:e.code}),o.jsx("p",{className:gi,children:e.message}),e.suggestion&&o.jsx("p",{className:fi,children:e.suggestion})]});function pi(e=[],t=[]){return e.length===t.length&&e.every((r,n)=>Object.is(r,t[n]))}class Mn extends f.Component{constructor(){super(...arguments),this.state={caughtDiagnostic:null}}static getDerivedStateFromError(t){return{caughtDiagnostic:u.buildDiagnostic(t)}}componentDidCatch(t,r){const n=u.buildDiagnostic(t);yt([n]),this.props.onError?.([n]),console.error("Chart render component stack:",r.componentStack)}componentDidUpdate(t){this.state.caughtDiagnostic&&!pi(t.resetKeys,this.props.resetKeys)&&this.setState({caughtDiagnostic:null})}render(){const{caughtDiagnostic:t}=this.state;if(t)return o.jsx(bt,{errors:[t]});const{forcedErrors:r,children:n}=this.props;return r&&r.length>0?o.jsx(bt,{errors:r}):n}}const mi=5,xi=e=>{if(process.env.NODE_ENV==="production")return{emit:()=>{},subscribe:()=>yi,getLastTrigger:()=>null,getLastCompile:()=>null,getCacheStats:()=>e.getCacheStats()};const t=new Set;let r=null;return{emit:n=>{const s=e.getLastCompile();if(s){r=n;for(const a of t)a(n,s)}},subscribe:n=>(t.add(n),()=>{t.delete(n)}),getLastTrigger:()=>r,getLastCompile:()=>e.getLastCompile(),getCacheStats:()=>e.getCacheStats()}},vi=()=>kt.createStore(e=>({lastCompile:null,history:[],nextId:1,lastSnapshot:null,recordCompile:(t,r)=>e(n=>{if(n.lastSnapshot===r)return n;const s={id:n.nextId,label:bi(t),stages:r.stages,durationMs:r.durationMs};return{lastCompile:s,history:Ai(n.history,s,mi),nextId:n.nextId+1,lastSnapshot:r}})})),yi=()=>{},bi=e=>{switch(e.kind){case"init":return"init";case"input":return"input change";case"data":return"data change";case"command":return e.command.metadata.description}},Ai=(e,t,r)=>{const n=e.length>=r?e.length-(r-1):0;return[...e.slice(n),t]};function Si(e){const t=e.filter(Bn),r=new Set([...Object.keys(Tn),...t.map(l=>l.geom)]),n=[],s=new Set;for(const l of e){const d=ri(l);d===null||r.has(d.type)||s.has(d.type)||(s.add(d.type),n.push({kind:"user-input",severity:"error",code:"MISSING_GEOM_RENDERER",message:`Custom geom '${d.type}' is registered but has no renderer.`,context:{requested:d.type,kind:"geom-renderer"},suggestion:`Add a render half for it: \`defineGeomRenderer(${d.type}Geom, { coord, render })\`, then include it in \`plugins\`.`}))}const a=new Map;for(const l of t){if("definition"in l)continue;const d=`${l.geom}|${l.coord}`,h=a.get(d);h?h.count+=1:a.set(d,{geom:l.geom,coord:l.coord,count:1})}const i=[];for(const{geom:l,coord:d,count:h}of a.values())h<2||i.push({kind:"user-input",severity:"warning",code:"DUPLICATE_REGISTERED_TYPE",message:`Multiple render-only overrides register ('${l}', '${d}') (${h} entries); the last in the array wins.`,context:{requested:`${l}@${d}`,kind:"geom-renderer"},suggestion:`Keep a single render-only override for ('${l}', '${d}').`});return{errors:n,warnings:i}}function ji(e,t){const{coordSystem:r,layers:n}=e,s=new Set,a=[];for(const i of n)t(i.geom,r.type)!==null||s.has(i.geom)||(s.add(i.geom),a.push({kind:"user-input",severity:"warning",code:"MISSING_GEOM_RENDERER",message:`No renderer for geom '${i.geom}' under ${r.type} coords; the layer is not painted.`,context:{requested:i.geom,kind:"geom-renderer"},suggestion:`Register a renderer for ('${i.geom}', '${r.type}') via \`defineGeomRenderer\`.`}));return a}function wi(e,t){const{coordSystem:r,layers:n}=e,s=new Set,a=[];for(const i of n){if(i.interactive===!1||i.spatialKind!=="render-hit-test"||s.has(i.geom))continue;const l=t(i.geom,r.type);l===null||l.hitTest||$e(l)||(s.add(i.geom),a.push({kind:"user-input",severity:"warning",code:"MISSING_RENDER_HIT_TEST",message:`Geom '${i.geom}' declares spatialKind 'render-hit-test' but its renderer provides no hit-test; the layer has no hover.`,context:{requested:i.geom,kind:"geom-renderer"},suggestion:`Add a \`hitTest\` factory (precomputed geometry) or an overlay render (\`{ fn, options: { overlay: true } }\`, live simulation) to the renderer for ('${i.geom}', '${r.type}').`}))}return a}function ki(e){const t=new Set,r=[];for(const n of e.layers){const s=n.identityKey;n.interactive!==!1&&(n.spatialKind!=="render-hit-test"||typeof s!="object"||t.has(n.geom)||n.data.hasVariable(s.variable)||(t.add(n.geom),r.push({kind:"user-input",severity:"warning",code:"RENDER_HIT_TEST_IDENTITY",message:`Geom '${n.geom}' keys its identity on '${s.variable}', a column its compile output does not emit; its hover lookup is empty.`,context:{requested:n.geom,kind:"geom-renderer"},suggestion:`Emit the '${s.variable}' column from the geom's \`compile()\`, or point \`identityKey\` at a column it does emit.`})))}return r}function Ci(e,t){const{coordSystem:r,layers:n}=e,s=new Set,a=[];for(const i of n){if(i.interactive===!1||i.spatialKind!=="render-hit-test"||s.has(i.geom))continue;const l=t(i.geom,r.type);l===null||!l.hitTest||!$e(l)||(s.add(i.geom),a.push({kind:"user-input",severity:"warning",code:"CONFLICTING_RENDER_HIT_TEST",message:`Geom '${i.geom}' declares both a \`hitTest\` factory and an overlay render; these are alternatives, so only the overlay is used.`,context:{requested:i.geom,kind:"geom-renderer"},suggestion:"Keep one: a `hitTest` factory for precomputed geometry, OR an overlay render (`{ fn, options: { overlay: true } }`) for a live simulation."}))}return a}function Ei(e,t){const{coordSystem:r,layers:n}=e,s=new Set,a=[];for(const i of n){if(i.interactive===!1||i.spatialKind==="render-hit-test"||s.has(i.geom))continue;const l=t(i.geom,r.type);l===null||!$e(l)||(s.add(i.geom),a.push({kind:"user-input",severity:"warning",code:"OVERLAY_REQUIRES_RENDER_HIT_TEST",message:`Geom '${i.geom}' declares an overlay render but its layer's spatialKind is '${i.spatialKind}', not 'render-hit-test'; the overlay's push-path hover resolves to nothing.`,context:{requested:i.geom,kind:"geom-renderer"},suggestion:"Have the geom's manifest yield spatialKind 'render-hit-test' so the compiled layer carries the `byKey` index the overlay's `pushHover` resolves against."}))}return a}const Li=e=>kt.createStore(t=>({compiled:e,setCompiled:r=>t(n=>n.compiled===r?n:{compiled:r})})),Ce=e=>{const t=f.useRef(e);return t.current=e,t};class Pi{constructor(t){this.compiler=t,this.current=null,this.last=null}get compiled(){return this.current}compile(t){return this.last=t,this.absorb(this.compiler.compile(t))}update(t){const r=this.last,n=!r||t.input!==r.input,s=!r||t.data!==r.data,a=!r||t.ctx!==r.ctx;if(!n&&!s&&!a)return null;this.last=t;const i=this.current;return{outcome:n||a||!i?this.absorb(this.compiler.compile(t)):this.absorb(this.compiler.recompile({spec:i.spec,data:t.data})),inputChanged:n}}applyCommand(t){if(!this.current||!this.last)return null;const r=t.apply(this.current.spec);if(!r)return null;const n=this.compiler.recompile({spec:r.spec});if(!n.ok)return{status:"rejected",errors:n.errors};this.current=n.compiled;const s=u.convertSpecToInput(n.compiled.spec);return this.last={input:s,data:this.last.data,ctx:this.last.ctx},{status:"rendered",compiled:n.compiled,warnings:n.warnings,input:s}}absorb(t){return t.ok?(this.current=t.compiled,{status:"rendered",compiled:t.compiled,warnings:t.warnings}):{status:"failed",errors:t.errors,warnings:t.warnings}}}const Ti=({input:e,data:t,ctx:r,plugins:n,resolveRenderer:s,onChange:a,onError:i,onWarnings:l})=>{const d=Ce(i),h=Ce(l),[{session:g,compileBus:p}]=f.useState(()=>{const A=u.createCompiler({plugins:n});return{session:new Pi(A),compileBus:xi(A)}}),m=f.useRef(null),v=f.useCallback(A=>A.status==="failed"?A.errors:(m.current?m.current.getState().setCompiled(A.compiled):m.current=Li(A.compiled),null),[]),[x]=f.useState(()=>Si(n??[])),y=f.useCallback(A=>x.errors.length===0?A:[...x.errors,...A??[]],[x]),b=f.useCallback(A=>A.status==="rendered"?[...A.warnings,...ji(A.compiled,s),...wi(A.compiled,s),...ki(A.compiled),...Ci(A.compiled,s),...Ei(A.compiled,s)]:A.warnings,[s]),S=f.useRef(null),[C,E]=f.useState(()=>{const A=g.compile({input:e,data:t,ctx:r});return S.current=A,y(v(A))}),P=f.useCallback(A=>{A.length!==0&&(yt(A),d.current?.(A))},[d]),T=f.useCallback(A=>{A.length!==0&&(yt(A),h.current?.(A))},[h]);f.useEffect(()=>{const A=S.current;A&&(P([...x.errors,...A.status==="failed"?A.errors:[]]),T([...x.warnings,...b(A)]),A.status==="rendered"&&p.emit({kind:"init"}))},[p,P,T,x,b]),f.useEffect(()=>{const A=g.update({input:e,data:t,ctx:r});if(!A)return;const L=v(A.outcome);E(y(L)),L&&P(L),T(b(A.outcome)),L||p.emit({kind:A.inputChanged?"input":"data"})},[e,t,r,g,p,v,P,T,y,b]);const H=f.useCallback(A=>{const L=g.applyCommand(A);if(!L)return;if(L.status==="rejected"){P(L.errors);return}m.current?.getState()?.setCompiled(L.compiled),p.emit({kind:"command",command:A}),T(b(L)),a?.(L.input)},[a,g,p,P,T,b]);return{store:m.current,dispatch:H,compileBus:p,compileErrors:C}},In=f.createContext(null),ce=()=>{const e=f.useContext(In);if(!e)throw new Error("useGraph* hooks must be used inside a <GraphProvider>");return e},k=e=>{const{store:t}=ce();return ke.useStore(t,r=>e(r.compiled))},Mt=()=>{const{dispatch:e}=ce();return e},Nn=({data:e,input:t,plugins:r=[],formattingLocale:n,onChange:s,onError:a,onWarnings:i,customPalettes:l,theme:d="light",fontList:h,themeOverrides:g,children:p})=>{const[m]=f.useState(()=>Rn(r.filter(Bn))),v=ai(t,g,h),x=f.useMemo(()=>({customPalettes:l,theme:d}),[l,d]),{store:y,dispatch:b,compileBus:S,compileErrors:C}=Ti({input:t,data:e,ctx:x,plugins:r,resolveRenderer:m,onChange:s,onError:a,onWarnings:i}),E=f.useMemo(()=>y?{store:y,dispatch:b,formattingLocale:n,compileBus:S,theme:d,themeOverrides:v}:null,[y,b,n,S,d,v]);return o.jsx(Mn,{forcedErrors:C,onError:a,resetKeys:[t,e],children:E?o.jsx(In.Provider,{value:E,children:o.jsx(ca,{value:m,children:p})}):null})};function Ri(e){const t=u.createGraphyBuilder(e);return{...t,GraphProvider:n=>o.jsx(Nn,{...n,plugins:t.plugins})}}const Bi=()=>kt.createStore(e=>({hover:u.RESTING_HOVER_STATE,tooltipAnchor:null,calloutHits:[],setHoverState:t=>e(r=>r.hover===t?r:{hover:t}),setTooltipAnchor:t=>e(r=>Mi(r.tooltipAnchor,t)?r:{tooltipAnchor:t}),setCalloutHits:t=>e(r=>r.calloutHits===t?r:{calloutHits:t})})),Mi=(e,t)=>e===t?!0:e===null||t===null?!1:e.x===t.x&&e.y===t.y&&e.placement===t.placement,Ii=(e,t)=>{const r=f.useMemo(()=>({layers:e,coordSystem:t}),[e,t]),n=f.useRef(null);n.current===null&&(n.current=new u.HoverEngine(r));const s=n.current,a=f.useRef(!1);return f.useEffect(()=>{if(!a.current){a.current=!0;return}s.update(r)},[s,r]),s},Hn=f.createContext(null),Dn=({children:e})=>{const{layers:t,coordSystem:r}=k(O.useShallow(l=>({layers:l.layers,coordSystem:l.coordSystem}))),n=Ii(t,r),[s]=f.useState(()=>Bi()),a=f.useRef(null),i=f.useRef(null);return i.current===null&&(i.current={engine:n,store:s,overlayRef:a}),o.jsx(Hn.Provider,{value:i.current,children:e})},de=()=>{const e=f.useContext(Hn);if(e===null)throw new Error("useHoverContext must be used inside a <HoverProvider>.");return e};function Fn(e,t){const{engine:r}=de(),n=f.useRef(t);f.useEffect(()=>{n.current=t},[t]),f.useEffect(()=>(r.registerHitTester(e,s=>n.current(s)),()=>r.unregisterHitTester(e)),[r,e])}const Ni=({hitTest:e,input:t})=>{const r=f.useMemo(()=>e(t),[e,t.layer.data]);return Fn(t.layer.id,r),null},Hi="graphy_root",ae=()=>typeof document>"u"?null:document.getElementById(Hi)??document.body;var Di="_18wdpym0";const Fi=({rect:e,children:t})=>{const r=ae();return r?wr.createPortal(o.jsx("div",{className:Di,style:{left:e.left,top:e.top,width:e.width,height:e.height},children:t}),r):null},Gn=(e,t)=>{const r=Ce(e),n=Ce(t),s=f.useRef(null),a=f.useRef(null),i=f.useMemo(()=>{const l=()=>{a.current!==null&&(clearTimeout(a.current),a.current=null),s.current=null},d=()=>{a.current!==null&&(clearTimeout(a.current),a.current=null);const g=s.current;g!==null&&(s.current=null,r.current(...g))};return{run:(...g)=>{if(n.current<=0){r.current(...g);return}s.current=g,a.current!==null&&clearTimeout(a.current),a.current=setTimeout(d,n.current)},flush:d,cancel:l}},[r,n]);return f.useEffect(()=>()=>{a.current!==null&&clearTimeout(a.current)},[]),i},Gi={width:0,height:0,isDefault:!0},On=({debounce:e=0,onResize:t}={})=>{const[r,n]=f.useState(Gi),s=f.useRef(null),a=Gn(h=>{const g=s.current;g&&g.width===h.width&&g.height===h.height||(s.current={width:h.width,height:h.height},t?.(h),n(h))},e),i=f.useRef(null),l=f.useRef(null),d=f.useCallback(h=>{i.current!==h&&(i.current&&l.current?.unobserve(i.current),i.current=h,h&&(l.current??=new ResizeObserver(([g])=>{if(!g)return;const p=Math.round(g.contentBoxSize[0]?.inlineSize??g.contentRect.width),m=Math.round(g.contentBoxSize[0]?.blockSize??g.contentRect.height);a.run({width:p,height:m,isDefault:!1})}),l.current.observe(h)))},[a]);return{...r,setElement:d}};function Wn(){const[e,t]=f.useState(null),r=f.useRef(null),n=f.useRef(null),s=f.useRef(null),a=f.useCallback(()=>{s.current=null;const h=n.current;if(!h)return;const g=h.getBoundingClientRect();if(g.width===0||g.height===0){r.current!==null&&(r.current=null,t(null));return}const p={left:g.left,top:g.top,width:g.width,height:g.height},m=r.current;m&&m.left===p.left&&m.top===p.top&&m.width===p.width&&m.height===p.height||(r.current=p,t(p))},[]),i=f.useCallback(()=>{s.current===null&&(s.current=requestAnimationFrame(a))},[a]),{setElement:l}=On({onResize:i}),d=f.useCallback(h=>{n.current=h,l(h),h&&a()},[l,a]);return f.useEffect(()=>(window.addEventListener("scroll",i,!0),window.addEventListener("resize",i),()=>{window.removeEventListener("scroll",i,!0),window.removeEventListener("resize",i),s.current!==null&&cancelAnimationFrame(s.current)}),[i]),{ref:d,rect:e}}function zn(e){const{engine:t,store:r}=de();return f.useCallback((n,s)=>{const{hover:a,setHoverState:i,setTooltipAnchor:l}=r.getState(),d=n===null?u.RESTING_HOVER_STATE:t.resolveHoverByKey(e,n);if(d.primary===null){a.primary?.layerId===e&&(i(u.RESTING_HOVER_STATE),l(null));return}i(d),l(s?{x:s.clientX,y:s.clientY,placement:"top"}:null)},[t,r,e])}const Oi=({render:e,input:t})=>{const r=zn(t.layer.id),{ref:n,rect:s}=Wn();return f.useEffect(()=>()=>r(null),[r]),o.jsxs(o.Fragment,{children:[o.jsx("rect",{ref:n,x:0,y:0,width:"100%",height:"100%",fill:"none",pointerEvents:"none"}),s&&o.jsx(Fi,{rect:s,children:o.jsx(Wi,{render:e,input:t,pushHover:r,panelRect:s})})]})},Wi=({render:e,input:t,pushHover:r,panelRect:n})=>e({...t,overlay:{pushHover:r,panelRect:n}}),zi=({children:e,...t})=>o.jsx("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%",pointerEvents:"none",...t,children:e});var Yi="drqe3u0",Vi="drqe3u1",Ui="drqe3u2",Xi="drqe3u3",He="drqe3u4",Ki="drqe3u5",Qi="drqe3u6",qi="drqe3u7",ct="drqe3u8",Ji="drqe3u9",Zi="drqe3ua",_i="drqe3ub",$i="drqe3uc",el="drqe3ud",tl="drqe3ue",rl="drqe3uf",nl="drqe3ug",ol="drqe3uh",sl="drqe3ui",tr={enabled:"drqe3uk drqe3uj",disabled:"drqe3ul drqe3uj"},rr={ran:"drqe3un drqe3um",dim:"drqe3uo drqe3um"},Yn={ran:"drqe3uq drqe3up",cached:"drqe3ur drqe3up",untouched:"drqe3us drqe3up"};const al=({width:e=380,style:t,className:r}={})=>{const{compileBus:n}=ce(),[s]=f.useState(()=>vi()),[a,i]=f.useState(!1),[l,d]=f.useState(u.isCompilerCachingEnabled);f.useEffect(()=>{const{recordCompile:x}=s.getState(),y=n.getLastTrigger(),b=n.getLastCompile();return y&&b&&x(y,b),n.subscribe(x)},[s,n]);const h=ke.useStore(s,x=>x.lastCompile),g=ke.useStore(s,x=>x.history),p=n.getCacheStats(),m=h===null&&g.length===0,v=()=>{d(x=>{const y=!x;return u.setCompilerCachingEnabled(y),y})};return o.jsxs("div",{className:F(Zi,r),style:{width:e,...t},children:[o.jsxs("div",{className:Yi,children:[o.jsxs("div",{children:[o.jsx("div",{className:Vi,children:"compile cache"}),o.jsx("div",{className:tl,children:m?"production: stats disabled":h?`last: ${h.label} · ${Vn(h.durationMs)}`:"awaiting first compile…"})]}),o.jsx("button",{type:"button",onClick:()=>i(x=>!x),className:rl,children:a?"▾":"▴"})]}),!a&&o.jsxs("div",{className:_i,children:[o.jsxs("button",{type:"button",onClick:v,className:l?tr.enabled:tr.disabled,"aria-pressed":l,children:["cache ",l?"enabled":"disabled"]}),o.jsx("span",{className:nl,children:"next compile reflects this toggle"})]}),!a&&!m&&o.jsxs(o.Fragment,{children:[o.jsx(il,{delta:h?.stages,cumulative:p}),o.jsx(ll,{entries:g})]})]})},il=({delta:e,cumulative:t})=>o.jsxs("table",{className:Ui,children:[o.jsx("thead",{children:o.jsxs("tr",{className:ol,children:[o.jsx("th",{className:Xi,children:"stage"}),o.jsx("th",{className:He,children:"Δ miss"}),o.jsx("th",{className:He,children:"Δ hit"}),o.jsx("th",{className:He,children:"total miss"}),o.jsx("th",{className:He,children:"total hit"})]})}),o.jsx("tbody",{children:u.COMPILER_STAGE_KEYS.map(r=>{const n=e?.[r],s=cl(n);return o.jsxs("tr",{className:$i,children:[o.jsxs("td",{className:Ki,children:[o.jsx("span",{className:Yn[s],"aria-hidden":!0})," ",r]}),o.jsx("td",{className:s==="ran"?rr.ran:rr.dim,children:n?.misses??0}),o.jsx("td",{className:ct,children:n?.hits??0}),o.jsx("td",{className:ct,children:t[r].misses}),o.jsx("td",{className:ct,children:t[r].hits})]},r)})})]}),ll=({entries:e})=>e.length===0?null:o.jsxs("div",{className:el,children:[o.jsx("div",{className:sl,children:"recent compiles"}),e.map(t=>{const r=dl(t.stages,a=>a.misses>0),n=u.COMPILER_STAGE_KEYS.length,s=r===0?"cached":"ran";return o.jsxs("div",{className:Qi,children:[o.jsx("span",{className:Yn[s],"aria-hidden":!0}),o.jsx("span",{className:qi,title:t.label,children:t.label}),o.jsxs("span",{className:Ji,children:[r,"/",n," ran · ",Vn(t.durationMs)]})]},t.id)})]}),cl=e=>!e||e.hits===0&&e.misses===0?"untouched":e.misses>0?"ran":"cached",dl=(e,t)=>{let r=0;for(const n of u.COMPILER_STAGE_KEYS)t(e[n])&&(r+=1);return r},Vn=e=>e>=10?`${e.toFixed(0)}ms`:`${e.toFixed(2)}ms`;function Ee(e){const{store:t}=de();return ke.useStore(t,e)}var ul="_19519k80",hl="_19519k81",gl="_19519k82",fl="_19519k83",pl="_19519k85",ml="_19519k86",xl="_19519k87",vl="_19519k88",yl="_19519k89";const bl=e=>{const{overlayRef:t}=de(),r=f.useRef(null),[n,s]=f.useState(!1),a=Ce(e);return f.useEffect(()=>{const i=t.current;if(!i)return;const l=h=>{r.current={clientX:h.clientX,clientY:h.clientY},s(!0),a.current?.()},d=()=>{r.current=null,s(!1)};return i.addEventListener("pointermove",l),i.addEventListener("pointerleave",d),()=>{i.removeEventListener("pointermove",l),i.removeEventListener("pointerleave",d)}},[t,a]),{cursorRef:r,isInside:n}},Al=16,nr=8,Sl={x:0,y:0,top:0,left:0,right:0,bottom:0,width:0,height:0,toJSON:()=>({})},jl=()=>{const e=k(O.useShallow(x=>({layers:x.layers,coordSystem:x.coordSystem,scales:x.scales,guides:x.guides,numberFormat:x.config.numberFormat,parsingLocale:x.config.parsingLocale}))),{formattingLocale:t}=ce(),r=Ee(x=>x.hover),n=Ee(x=>x.tooltipAnchor),s=$("Tooltip",Un),a=f.useRef(()=>{}),{cursorRef:i,isInside:l}=bl(()=>a.current()),d=f.useMemo(()=>u.buildTooltipContent({...e,hover:r,formattingLocale:t}),[e,r,t]),h=d!==null&&(l||n!==null),g=f.useMemo(()=>({getBoundingClientRect:()=>{if(n!==null)return kl(n);const x=i.current;return x===null?Sl:wl(x)}}),[i,n]),{refs:p,floatingStyles:m,update:v}=I.useFloating(Cl({isOpen:h,tooltipAnchor:n,virtualReference:g}));return a.current=v,h?o.jsx("div",{ref:p.setFloating,role:"tooltip",className:vl,style:m,"data-testid":"chart-tooltip",children:o.jsx(s,{content:d})}):null},Un=({content:e})=>{const t=ee(),r=k(n=>n.coordSystem);return o.jsxs("div",{className:yl,children:[e.header!==null&&o.jsx("div",{className:ul,children:e.header}),o.jsx("div",{className:hl,children:e.rows.map(n=>{const s=t(n.geom,r.type);return o.jsx(El,{row:n,swatchShape:s?.swatchShape??"square",shouldHighlight:n.isPrimary&&e.rows.length>1},n.key)})})]})},wl=e=>({x:e.clientX,y:e.clientY,top:e.clientY,left:e.clientX,right:e.clientX,bottom:e.clientY,width:0,height:0,toJSON:()=>({})}),kl=e=>({x:e.x,y:e.y,top:e.y,left:e.x,right:e.x,bottom:e.y,width:0,height:0,toJSON:()=>({})}),Cl=({isOpen:e,tooltipAnchor:t,virtualReference:r})=>({open:e,placement:t!==null?t.placement:"right",middleware:t!==null?[I.offset(u.ANNOTATION_TOOLTIP_MARKER_GAP),I.shift({padding:nr})]:[I.offset(Al),I.flip(),I.shift({padding:nr})],elements:{reference:r}}),El=({row:e,swatchShape:t,shouldHighlight:r})=>o.jsxs("div",{className:F(gl,{[fl]:r}),"data-testid":"chart-tooltip-row",children:[e.swatchColor===null?o.jsx("span",{className:pl,"aria-hidden":!0}):o.jsx(Le,{shape:t,color:e.swatchColor,surface:"tooltip",label:e.label,lineType:e.swatchLineType}),o.jsx("span",{className:ml,children:e.label}),o.jsx("span",{className:xl,children:e.value})]}),Ll=({textMeasurer:e,textScale:t,metrics:r})=>{const{tickLabelOffset:n,fonts:s}=r,a=Y(s.tickLabel,t);return i=>{const l=i.position==="top"||i.position==="bottom",d=i.ticks.map(p=>e.measureText(p.formattedLabel,a)),h=i.labelMaxWidthPx??Number.POSITIVE_INFINITY;if(l){if(i.labelRotation!==0){const p=d.map(v=>v.width);return or(p,h)+2*n}return Math.max(...d.map(p=>p.height))+n}return or(d.map(p=>p.width),h)+n}},or=(e,t)=>Math.min(Math.max(...e),t),Pl=({textScale:e,metrics:t})=>{const r=Y(t.fonts.axisLabel,e).size;return()=>r},Tl={dataLabel:{x:u.DATA_LABEL_PADDING_X_PX,y:u.DATA_LABEL_PADDING_Y_PX},stackTotal:{x:u.STACK_TOTAL_PADDING_X_PX,y:u.STACK_TOTAL_PADDING_Y_PX},categoryLabel:{x:u.DATA_LABEL_PADDING_X_PX,y:u.DATA_LABEL_PADDING_Y_PX}},Xn=({textMeasurer:e,textScale:t,metrics:r})=>{const n={dataLabel:Y(r.fonts.dataLabel,t),stackTotal:Y(r.fonts.stackTotal,t),categoryLabel:Y(r.fonts.categoryLabel,t)};return(s,a)=>{const i=e.measureText(a,n[s]),l=Tl[s];return{...i,width:i.width+l.x*2,height:i.height+l.y*2}}},Rl=({textMeasurer:e,textScale:t,metrics:r})=>(n,s)=>{const{labelLineHeight:a,labelFontWeight:i}=u.getDifferenceArrowDimensions(s,t);return e.measureText(n,{family:r.fonts.familyDefault,size:a,weight:i})},Bl=({textMeasurer:e,textScale:t,metrics:r})=>(n,s)=>{const a=Kn(n,s,e,t,r),i=Qn(a.map(d=>d.width)),l=Math.max(0,a.length-1)*r.headlineItemGap;return{width:i+l,height:Math.max(0,...a.map(d=>d.height))}},Ml=({textMeasurer:e,textScale:t,metrics:r})=>(n,s)=>Kn(n,s,e,t,r).map(a=>a.width),Il=({textMeasurer:e,textScale:t,metrics:r})=>(n,s)=>{const a=At("value",s,t,r.fonts.familyDefault);return{width:e.measureText(n,a).width,height:a.size*Yr}},Nl=({textMeasurer:e,textScale:t,metrics:r})=>{const n=Bl({textMeasurer:e,textScale:t,metrics:r}),s=Il({textMeasurer:e,textScale:t,metrics:r});return(a,i)=>a.kind==="perGroup"?n(a,i):s(a.value,i)},Kn=(e,t,r,n,s)=>{const a={value:At("value",t,n,s.fonts.familyDefault),label:At("label",t,n,s.fonts.familyDefault)},i=l=>Hl(l,a,r);return e.items.map(l=>{const d=u.createHeadlineItemRows(l).map(i),h=Math.max(0,d.length-1)*s.headlineRowGap;return{width:Math.max(0,...d.map(g=>g.width)),height:Qn(d.map(g=>g.height))+h}})},Hl=(e,t,r)=>{let n=0,s=0;for(const a of e.segments)if(a.kind==="text"){const i=t[a.fontRole];n+=r.measureText(a.text,i).width,s=Math.max(s,i.size*Yr)}else n+=a.size,s=Math.max(s,a.size);return{width:n+Math.max(0,e.segments.length-1)*e.gap,height:s}},At=(e,t,r,n)=>{const s=e==="value"?Bs[t]:Ms[t];return{family:n,size:Je(s,r)}},Qn=e=>e.reduce((t,r)=>t+r,0),It=(e,t)=>Y(e,t).size*e.lineHeight,qn=(e,t)=>e?t:0,Dl=({textMeasurer:e,textScale:t,metrics:r})=>n=>{const s=It(r.fonts.legendLabel,t),a=Y(r.fonts.legendLabel,t);if(n.position==="top"||n.position==="bottom")return Math.max(s,r.legendSwatchHeight)+r.legendPillVerticalChrome;const l=n.items.map(d=>{const h=e.measureText(d.formattedLabel,a).width,g=qn(d.visual.color,r.legendSwatchWidth);return g+(g>0?r.legendSwatchGap:0)+h});return Math.max(...l)+r.legendPillHorizontalChrome},Fl=({textMeasurer:e,textScale:t,metrics:r})=>{const n=Y(r.fonts.tickLabel,t);return s=>e.measureText(s,n)},Gl=Object.freeze({}),Ol=(e,t,r,n=Gl)=>{const s=f.useRef(n);return s.current=n,f.useMemo(()=>{if(!e)return null;const a=Ll({textMeasurer:e,textScale:t,metrics:r}),i=Pl({textScale:t,metrics:r}),l=Dl({textMeasurer:e,textScale:t,metrics:r}),d=Nl({textMeasurer:e,textScale:t,metrics:r}),h=Ml({textMeasurer:e,textScale:t,metrics:r}),g={measureText:(p,m)=>e.measureText(p,m),textScale:t};return{measureAxis:p=>{if(zl(p))return 0;const m=s.current.measureAxis;return m?m(p,g):a(p)},measureAxisLabel:p=>{const m=s.current.measureAxisLabel;return m?m(p,g):i()},measureLegend:p=>{if(Yl(p))return 0;const m=s.current.measureLegend;return m?m(p,g):l(p)},measureHeadline:(p,m)=>(s.current.measureHeadline??d)(p,m),measureHeadlineItemWidths:(p,m)=>(s.current.measureHeadlineItemWidths??h)(p,m),measureTickLabel:Fl({textMeasurer:e,textScale:t,metrics:r}),measureDifferenceArrowLabel:Rl({textMeasurer:e,textScale:t,metrics:r}),measureDataLabel:Xn({textMeasurer:e,textScale:t,metrics:r})}},[e,t,r])},Wl=({measurer:e,axes:t,numberFormat:r,parsingLocale:n,formattedLegends:s,containerSize:a,externalMeasurements:i,headline:l,formattingLocale:d,annotations:h,layers:g,coordSystem:p,textScale:m,overflowStrategy:v,layout:x})=>f.useMemo(()=>e?new u.LayoutCompiler(e).compile({axes:t,numberFormat:r,parsingLocale:n,formattedLegends:s,containerSize:a,externalMeasurements:i,headline:l,formattingLocale:d,annotations:h,layers:g,coordSystem:p,textScale:m,overflowStrategy:v,layout:x}):null,[t,r,n,s,a,i,v,l,d,h,g,p,m,x,e]),zl=e=>!e.isVisible||e.ticks.length===0,Yl=e=>e.items.length===0,sr="data-variant",Jn=zo.Paragraph.extend({addAttributes(){return{variant:{default:null,parseHTML:e=>e.getAttribute(sr)??null,renderHTML:e=>e.variant?{[sr]:e.variant}:{}}}}}),Vl=Wo.Extension.create({name:"preventBackspaceAcrossTitleBoundary",addOptions(){return{isTitleVisible:!0}},addKeyboardShortcuts(){return{Backspace:({editor:e})=>{if(!this.options.isTitleVisible)return!1;const{selection:t}=e.state;if(!t.empty)return!1;const{$from:r}=t;return r.depth!==1||r.parentOffset!==0?!1:r.index(0)===1}}}}),Ul=({titlePlaceholder:e,subtitlePlaceholder:t,isTitleVisible:r,isSubtitleVisible:n})=>[Kl({isTitleVisible:r,isSubtitleVisible:n}),Jn,Tr.Text,Fe.UndoRedo,Er.Heading.configure({levels:[1,2,3]}),kr.Bold,Lr.Italic,Br.Underline,Rr.TextAlign.configure({types:["heading","paragraph"]}),Pr.Link.configure({openOnClick:!1,autolink:!0}),fe.TextStyle,fe.Color,fe.FontFamily,Cr.HardBreak,Vl.configure({isTitleVisible:r}),Fe.Placeholder.configure({showOnlyCurrent:!1,placeholder:({pos:s,editor:a})=>{if(r&&s===0)return e;const i=r?a.state.doc.firstChild?.nodeSize??-1:0;return n&&s===i?t:""}})],Xl=({placeholder:e})=>[ft.Document,Jn,Tr.Text,Fe.UndoRedo,Er.Heading.configure({levels:[1,2,3]}),kr.Bold,Lr.Italic,Br.Underline,Rr.TextAlign.configure({types:["heading","paragraph"]}),Pr.Link.configure({openOnClick:!1,autolink:!0}),fe.TextStyle,fe.Color,fe.FontFamily,Cr.HardBreak,Fe.Placeholder.configure({showOnlyCurrent:!1,placeholder:({pos:t})=>t===0?e:""})],Kl=({isTitleVisible:e,isSubtitleVisible:t})=>e&&t?ft.Document.extend({content:"block{2,}"}):ft.Document,Ye=.1,Ql={light:.05,dark:.1},ql=(e,t)=>{switch(e.type){case"none":return null;case"solid":return e.color;case"tinted":return _l(e.color,t);case"gradient":return $l(e.color,t);case"preset":return u.BORDER_PRESET_GRADIENTS[e.preset]}},Jl=e=>e.type==="none"?0:e.width,Zl=(e,t,r)=>{if(e.type==="solid")return e.color;if(e.type==="tinted")return xt(r,e.color,Ql[t])},_l=(e,t)=>t==="dark"?qe(e,Ye):Rt(e,Ye),$l=(e,t,r=90)=>{const n=e,s=t==="dark"?qe(e,Ye):Rt(e,Ye);return`linear-gradient(${r}deg, ${n} 0%, ${s} 100%)`};var ec="bow4tg0",tc="bow4tg1",rc="bow4tg2",nc="bow4tg3",Zn="_1ii3bsb0",_n="_1ii3bsb1";const Nt=f.createContext(null),Ht=()=>{const e=f.useContext(Nt);if(!e)throw new Error("useThemeContext must be used inside a <ThemeProvider>.");return e},$n=({theme:e,themeOverrides:t={},appearance:r,children:n})=>{const s=f.useMemo(()=>ta(e,t),[e,t]),a=f.useMemo(()=>{const l={[c.textScale]:String(r.textScale)};for(const h of Object.keys(t)){const g=h;l[c[g]]=s[g]}const d=Zl(r.background,e,s.graphBackground);return d!==void 0&&(l[c.graphBackground]=d),Yo.assignInlineVars(l)},[r.textScale,r.background,e,s,t]),i=f.useMemo(()=>({theme:e,themeClass:e==="dark"?_n:Zn,inlineVarsStyle:a,themeValues:s}),[e,a,s]);return o.jsx(Nt.Provider,{value:i,children:n})},ue=({children:e,className:t,style:r})=>{const n=f.useContext(Nt),s=n?F(n.themeClass,tc):void 0,a=n?{...n.inlineVarsStyle,...r}:r;return o.jsx("div",{className:F(s,t),style:a,children:e})};var oc="yp3g0k0",sc="yp3g0k1",eo="yp3g0k3",ac="yp3g0k4",to="yp3g0k5",St="yp3g0k6",ic="yp3g0k7",lc="yp3g0k8",ro="yp3g0k9",cc="yp3g0ka",dc="yp3g0kb",uc="yp3g0kc",hc="yp3g0kd",gc="yp3g0ke";const fc=Mr.map(e=>c[e]),pc=Object.fromEntries(Mr.map(e=>[c[e],e])),mc=({editor:e,currentColor:t,isOpen:r,onOpenChange:n})=>{const s=Z.useI18n(),a=vc(),i=f.useCallback(d=>{e.chain().setColor(d).run()},[e]),l=d=>{e.chain().focus().setColor(d).run(),n(!1)};return o.jsxs(N.Popover.Root,{open:r,onOpenChange:n,children:[o.jsx(N.Popover.Trigger,{render:o.jsx(M.Toolbar.Button,{}),"aria-label":s("graph.toolbar.color.label"),className:oc,onMouseDown:d=>d.preventDefault(),children:o.jsx("span",{className:sc,style:{background:t??"transparent"}})}),o.jsx(N.Popover.Portal,{container:ae(),children:o.jsx(ue,{children:o.jsx(N.Popover.Positioner,{sideOffset:6,align:"start",className:eo,children:o.jsxs(N.Popover.Popup,{className:ac,onMouseDown:d=>d.preventDefault(),children:[o.jsx(ar,{title:s("graph.colorDropdown.colors"),colors:fc,currentColor:t,onPick:l}),a.length>0&&o.jsx(ar,{title:s("graph.colorDropdown.chartColors"),colors:a,currentColor:t,onPick:l}),o.jsx(xc,{value:t??"#000000",onChange:i})]})})})})]})},ar=({title:e,colors:t,currentColor:r,onPick:n})=>o.jsxs("div",{className:to,children:[o.jsx("div",{className:St,children:e}),o.jsx("div",{className:ic,children:t.map(s=>o.jsx("button",{type:"button","aria-label":s,className:lc,"data-active":bc(s,r),onMouseDown:a=>a.preventDefault(),onClick:()=>n(s),children:o.jsx("span",{className:ro,style:no(s)})},s))})]}),xc=({value:e,onChange:t})=>{const r=Z.useI18n(),[n,s]=f.useState(!1),a=Hs(e)?e:"#000000",i=yc(a);return o.jsxs(N.Popover.Root,{open:n,onOpenChange:s,children:[o.jsxs("div",{className:to,children:[o.jsx("div",{className:St,children:r("graph.colorDropdown.custom")}),o.jsxs(N.Popover.Trigger,{className:cc,onMouseDown:l=>l.preventDefault(),"aria-label":r("graph.colorDropdown.pickCustom"),children:[o.jsx("span",{className:ro,style:no(a)}),o.jsx("span",{className:dc,children:i})]})]}),o.jsx(N.Popover.Portal,{container:ae(),children:o.jsx(ue,{children:o.jsx(N.Popover.Positioner,{side:"right",align:"start",sideOffset:18,className:eo,children:o.jsxs(N.Popover.Popup,{className:uc,onMouseDown:l=>l.preventDefault(),children:[o.jsx("div",{className:St,children:r("graph.colorDropdown.pickColor")}),o.jsx(Gt.HexColorPicker,{color:i,onChange:t,className:hc}),o.jsx(Gt.HexColorInput,{color:i,onChange:t,prefixed:!0,className:gc,onMouseDown:l=>l.stopPropagation()})]})})})})]})},vc=()=>{const e=k(t=>t.scales.color);return f.useMemo(()=>{if(!e||e.kind!=="visual")return[];const t=new Set;for(const r of e.domain){const n=e.map(r);typeof n=="string"&&t.add(n)}return[...t]},[e])},no=e=>({background:e,border:`1px solid ${qe(e,.1)}`}),yc=e=>{const{themeValues:t}=Ht();if(Ns(e))return e.toUpperCase();const r=pc[e];return r?t[r].toUpperCase():"#000000"},bc=(e,t)=>t===null?!1:e.toLowerCase()===t.toLowerCase(),Ac={xxs:8,xs:12,sm:16,md:20,lg:24,xl:36};var Sc={primary:"asohov1 asohov0",secondary:"asohov2 asohov0"};const te=({children:e,title:t,variant:r="primary",size:n="sm",...s})=>{const a=f.useId(),i=Ac[n];return o.jsxs("svg",{className:Sc[r],"aria-labelledby":t?a:void 0,height:i,width:i,fill:"none",viewBox:"0 0 24 24",role:"img",...s,children:[t&&o.jsx("title",{id:a,children:t}),e]})},oo=e=>o.jsx(te,{...e,children:o.jsx("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:o.jsx("path",{d:"m6 9 6 6 6-6"})})}),jc="'Noto Serif', Georgia, 'Times New Roman', serif, 'Apple Color Emoji', 'NotoColorEmoji'",so=`'Aeonik', 'Aeonik Fallback', ${ve}`,wc="'PT Mono', 'Courier New', monospace, 'Apple Color Emoji', 'NotoColorEmoji'",kc="'Intruding Cat', cursive, 'Apple Color Emoji', 'NotoColorEmoji'",Cc=`var(--brand-font-family), ${so}`,jt=[{id:"modern",label:"Modern",preview:"Aa",fontFamily:ve},{id:"fresh",label:"Fresh",preview:"Aa",fontFamily:so},{id:"timeless",label:"Timeless",preview:"Aa",fontFamily:jc},{id:"technical",label:"Technical",preview:"00",fontFamily:wc},{id:"fineliner",label:"Fineliner",preview:"Aa",fontFamily:kc},{id:"brand",label:"Brand",preview:"Aa",fontFamily:Cc}],Ec=e=>e?jt.find(t=>t.fontFamily===e)??null:null;var ao="_1qkyw7q0",io="_1qkyw7q1",lo="_1qkyw7q3",co="_1qkyw7q4",uo="_1qkyw7q5";const Lc=({editor:e,currentFontFamily:t,isOpen:r,onOpenChange:n})=>{const s=Z.useI18n(),a=Ec(t)??jt[0],i=l=>{e.chain().focus().setFontFamily(l.fontFamily).run()};return o.jsxs(G.Menu.Root,{open:r,onOpenChange:n,children:[o.jsxs(G.Menu.Trigger,{render:o.jsx(M.Toolbar.Button,{}),"aria-label":s("graph.toolbar.font.ariaLabel"),className:ao,onMouseDown:l=>l.preventDefault(),children:[o.jsx("span",{className:io,style:{fontFamily:a?.fontFamily},children:a?.preview}),o.jsx(oo,{size:"sm"})]}),o.jsx(G.Menu.Portal,{container:ae(),children:o.jsx(ue,{children:o.jsx(G.Menu.Positioner,{side:"bottom",align:"start",sideOffset:6,className:lo,children:o.jsx(G.Menu.Popup,{className:co,onMouseDown:l=>l.preventDefault(),children:jt.map(l=>o.jsx(G.Menu.Item,{className:uo,"data-selected":l.id===a?.id,onClick:()=>i(l),children:o.jsx("span",{style:{fontFamily:l.fontFamily},children:l.label})},l.id))})})})})]})},ho={id:"text",translationKey:"graph.toolbar.heading.text",previewFont:c.fontTextEditorBody},ir=[{id:"caption",translationKey:"graph.toolbar.heading.caption",previewFont:c.fontTextEditorH6},ho,{id:"h3",translationKey:"graph.toolbar.heading.heading3",previewFont:c.fontTextEditorH3},{id:"h2",translationKey:"graph.toolbar.heading.heading2",previewFont:c.fontTextEditorH2},{id:"h1",translationKey:"graph.toolbar.heading.heading1",previewFont:c.fontTextEditorH1}],Pc=({editor:e,activeStyle:t,isOpen:r,onOpenChange:n})=>{const s=Z.useI18n(),a=ir.find(i=>i.id===t)??ho;return o.jsxs(G.Menu.Root,{open:r,onOpenChange:n,children:[o.jsxs(G.Menu.Trigger,{render:o.jsx(M.Toolbar.Button,{}),"aria-label":s("graph.toolbar.heading.ariaLabel"),className:ao,onMouseDown:i=>i.preventDefault(),children:[o.jsx("span",{className:io,children:s(a.translationKey)}),o.jsx(oo,{size:"sm"})]}),o.jsx(G.Menu.Portal,{container:ae(),children:o.jsx(ue,{children:o.jsx(G.Menu.Positioner,{side:"bottom",align:"start",sideOffset:6,className:lo,children:o.jsx(G.Menu.Popup,{className:co,onMouseDown:i=>i.preventDefault(),children:ir.map(i=>o.jsx(G.Menu.Item,{className:uo,"data-selected":i.id===a.id,onClick:()=>Tc(e,i.id),children:o.jsx(Rc,{font:i.previewFont,children:s(i.translationKey)})},i.id))})})})})]})},Tc=(e,t)=>{switch(t){case"caption":{e.chain().focus().setNode("paragraph",{variant:"caption"}).run();return}case"text":{e.chain().focus().setNode("paragraph",{variant:null}).run();return}case"h1":e.chain().focus().setHeading({level:1}).run();return;case"h2":e.chain().focus().setHeading({level:2}).run();return;case"h3":e.chain().focus().setHeading({level:3}).run()}},Rc=({font:e,children:t})=>o.jsx("span",{style:{font:e,margin:0},children:t}),Bc=e=>o.jsx(te,{...e,children:o.jsx("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:o.jsx("path",{d:"M20 6 9 17l-5-5"})})}),Mc=e=>o.jsx(te,{...e,children:o.jsxs("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[o.jsx("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),o.jsx("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})]})}),Ic=e=>o.jsx(te,{...e,children:o.jsxs("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[o.jsx("path",{d:"M18 6 6 18"}),o.jsx("path",{d:"m6 6 12 12"})]})}),Nc=e=>!e.content||e.content.length===0?!0:e.content.every(t=>!t.content||t.content.length===0),Hc=e=>{const{$from:t}=e.state.selection,r=t.parent.textContent,n=t.parentOffset,s=t.start();let a=n;for(;a>0&&lr(r[a-1]);)a-=1;let i=n;for(;i<r.length&&lr(r[i]);)i+=1;return{from:s+a,to:s+i}},lr=e=>e!==void 0&&/\S/.test(e);var Dc="b5kquu0",Fc="b5kquu1",Gc="b5kquu2",Oc="b5kquu3",cr="b5kquu4";const Wc=({editor:e,currentUrl:t,isActive:r,isOpen:n,onOpenChange:s})=>{const a=Z.useI18n(),[i,l]=f.useState(""),d=f.useRef(null);f.useEffect(()=>{n&&l(t??"")},[n,t]);const h=()=>{zc(e,i),s(!1)},g=()=>{l(""),s(!1)},p=v=>{l(v.target.value)},m=v=>{v.key==="Enter"&&(v.preventDefault(),h())};return o.jsxs(N.Popover.Root,{open:n,onOpenChange:s,children:[o.jsx(N.Popover.Trigger,{render:o.jsx(M.Toolbar.Button,{}),"aria-label":a("graph.toolbar.formatting.link"),"data-active":r,className:Dc,onMouseDown:v=>v.preventDefault(),children:o.jsx(Mc,{})}),o.jsx(N.Popover.Portal,{container:ae(),children:o.jsx(ue,{children:o.jsx(N.Popover.Positioner,{sideOffset:6,align:"end",className:Fc,children:o.jsxs(N.Popover.Popup,{className:Gc,initialFocus:d,onMouseDown:v=>v.preventDefault(),children:[o.jsx("input",{ref:d,type:"url",value:i,placeholder:a("graph.toolbar.link.placeholder"),"aria-label":a("graph.toolbar.link.urlLabel"),className:Oc,onMouseDown:v=>v.stopPropagation(),onChange:p,onKeyDown:m}),o.jsx("button",{type:"button","aria-label":a("common.cancel"),className:cr,onClick:g,children:o.jsx(Ic,{})}),o.jsx("button",{type:"button","aria-label":a("graph.toolbar.link.apply"),className:cr,onClick:h,children:o.jsx(Bc,{})})]})})})})]})},zc=(e,t)=>{const r=t.trim(),{selection:n}=e.state;if(!r){e.chain().focus().extendMarkRange("link").unsetLink().run();return}if(!n.empty){e.chain().focus().setLink({href:r}).run();return}if(e.isActive("link")){e.chain().focus().extendMarkRange("link").setLink({href:r}).run();return}const s=Hc(e);e.chain().focus().setTextSelection(s).setLink({href:r}).run()},Yc=e=>o.jsx(te,{...e,children:o.jsxs("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[o.jsx("path",{d:"M21 5H3"}),o.jsx("path",{d:"M17 12H7"}),o.jsx("path",{d:"M19 19H5"})]})}),Vc=e=>o.jsx(te,{...e,children:o.jsxs("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[o.jsx("path",{d:"M21 5H3"}),o.jsx("path",{d:"M21 12H9"}),o.jsx("path",{d:"M21 19H7"})]})}),Uc=e=>o.jsx(te,{...e,children:o.jsxs("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[o.jsx("path",{d:"M21 5H3"}),o.jsx("path",{d:"M15 12H3"}),o.jsx("path",{d:"M17 19H3"})]})});var Xc="k91gos0",Kc="k91gos1";const Qc=6,pe=({label:e,isActive:t,onToggle:r,children:n})=>{const s=a=>a.preventDefault();return o.jsxs(ge.Tooltip.Root,{children:[o.jsx(ge.Tooltip.Trigger,{render:o.jsx(Vo.Toggle,{render:o.jsx(M.Toolbar.Button,{}),pressed:t,onPressedChange:()=>r()}),"aria-label":e,className:Xc,onMouseDown:s,children:n}),o.jsx(ge.Tooltip.Portal,{container:ae(),children:o.jsx(ue,{children:o.jsx(ge.Tooltip.Positioner,{sideOffset:Qc,children:o.jsx(ge.Tooltip.Popup,{className:Kc,children:e})})})})]})},qc=({editor:e,activeAlignment:t="left"})=>{const r=Z.useI18n();return o.jsxs(o.Fragment,{children:[o.jsx(pe,{label:r("graph.toolbar.textAlign.left"),isActive:t==="left",onToggle:()=>e.chain().focus().setTextAlign("left").run(),children:o.jsx(Uc,{})}),o.jsx(pe,{label:r("graph.toolbar.textAlign.center"),isActive:t==="center",onToggle:()=>e.chain().focus().setTextAlign("center").run(),children:o.jsx(Yc,{})}),o.jsx(pe,{label:r("graph.toolbar.textAlign.right"),isActive:t==="right",onToggle:()=>e.chain().focus().setTextAlign("right").run(),children:o.jsx(Vc,{})})]})};var Jc="_1bp10ig0",Ae="_1bp10ig1",De="_1bp10ig2";const Zc=({editor:e})=>({isBold:e?.isActive("bold")??!1,isItalic:e?.isActive("italic")??!1,isUnderline:e?.isActive("underline")??!1,isLink:e?.isActive("link")??!1,linkUrl:e?.getAttributes("link").href??null,color:e?.getAttributes("textStyle").color??null,fontFamily:e?.getAttributes("textStyle").fontFamily??null,fontSize:_c(e),textAlign:$c(e)}),_c=e=>e?e.isActive("heading",{level:1})?"h1":e.isActive("heading",{level:2})?"h2":e.isActive("heading",{level:3})?"h3":e.isActive("paragraph",{variant:"caption"})?"caption":"text":"text",$c=e=>e?e.isActive({textAlign:"center"})?"center":e.isActive({textAlign:"right"})?"right":"left":"left",ed=8,td=8,rd=({editor:e})=>{const t=Z.useI18n(),[r,n]=f.useState(!1),[s,a]=f.useState(null),i=s!==null,l=x=>y=>{a(y?x:null)},{refs:d,floatingStyles:h}=I.useFloating({placement:"top-start",strategy:"fixed",middleware:[I.offset(ed),I.flip(),I.shift({padding:td})],whileElementsMounted:I.autoUpdate}),g=f.useRef(null),p=Ct.useEditorState({editor:e,selector:Zc}),m=f.useCallback(x=>{g.current=x,d.setFloating(x)},[d]);if(f.useEffect(()=>{e&&d.setReference(e.view.dom)},[e,d]),f.useEffect(()=>{if(!e)return;const x=()=>n(!0),y=({event:b})=>{const{relatedTarget:S,currentTarget:C}=b,E=S instanceof Node&&g.current?.contains(S),P=S instanceof Node&&C instanceof Node&&C.contains(S);!E&&!P&&n(!1)};return e.on("focus",x),e.on("blur",y),()=>{e.off("focus",x),e.off("blur",y)}},[e]),!e||!r&&!i)return null;const v=ae();return v?wr.createPortal(o.jsx(ue,{children:o.jsx(ge.Tooltip.Provider,{children:o.jsxs(M.Toolbar.Root,{ref:m,className:Jc,style:h,children:[o.jsxs(M.Toolbar.Group,{className:Ae,children:[o.jsx(mc,{editor:e,currentColor:p?.color??null,isOpen:s==="color",onOpenChange:l("color")}),o.jsx(Lc,{editor:e,currentFontFamily:p?.fontFamily??null,isOpen:s==="fontFamily",onOpenChange:l("fontFamily")})]}),o.jsx(M.Toolbar.Separator,{className:De}),o.jsx(M.Toolbar.Group,{className:Ae,children:o.jsx(Pc,{editor:e,activeStyle:p?.fontSize??"text",isOpen:s==="fontSize",onOpenChange:l("fontSize")})}),o.jsx(M.Toolbar.Separator,{className:De}),o.jsxs(M.Toolbar.Group,{className:Ae,children:[o.jsx(pe,{label:t("graph.toolbar.formatting.bold"),isActive:p?.isBold??!1,onToggle:()=>e.chain().focus().toggleBold().run(),children:o.jsx("strong",{children:"B"})}),o.jsx(pe,{label:t("graph.toolbar.formatting.italic"),isActive:p?.isItalic??!1,onToggle:()=>e.chain().focus().toggleItalic().run(),children:o.jsx("em",{children:"I"})}),o.jsx(pe,{label:t("graph.toolbar.formatting.underline"),isActive:p?.isUnderline??!1,onToggle:()=>e.chain().focus().toggleUnderline().run(),children:o.jsx("u",{children:"U"})})]}),o.jsx(M.Toolbar.Separator,{className:De}),o.jsx(M.Toolbar.Group,{className:Ae,children:o.jsx(qc,{editor:e,activeAlignment:p?.textAlign})}),o.jsx(M.Toolbar.Separator,{className:De}),o.jsx(M.Toolbar.Group,{className:Ae,children:o.jsx(Wc,{editor:e,currentUrl:p?.linkUrl??null,isActive:p?.isLink??!1,isOpen:s==="link",onOpenChange:l("link")})})]})})}),v):null};var nd="_2ngohc0";const go=({editor:e,ariaLabel:t})=>o.jsxs("div",{className:nd,children:[o.jsx(rd,{editor:e}),o.jsx(Ct.EditorContent,{editor:e,"aria-label":t})]}),od=200,fo=({content:e,extensions:t,isEditable:r,onUpdate:n,updateDebounceMs:s=od})=>{const a=f.useRef(dr(e)),i=f.useRef(!1),l=Gn(h=>{i.current=!0,n?.(h)},s),d=Ct.useEditor({extensions:t,content:a.current,editable:r,immediatelyRender:!1,onUpdate:({editor:h})=>l.run(h.getJSON())});return f.useEffect(()=>{d?.setEditable(r)},[d,r]),f.useEffect(()=>{if(!d)return;if(i.current){i.current=!1;return}const h=dr(e),g=d.getJSON();sd(g,h)||(l.cancel(),d.commands.setContent(h,{emitUpdate:!1}))},[d,e,l]),f.useEffect(()=>()=>l.flush(),[l]),d},dr=e=>e===null?{type:"doc",content:[]}:typeof e=="string"?{type:"doc",content:[{type:"paragraph",content:e?[{type:"text",text:e}]:[]}]}:e,sd=(e,t)=>JSON.stringify(e)===JSON.stringify(t);var ad="_1cocly40";const id={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",brand:"var(--brand-font-family), 'Aeonik', 'Inter', sans-serif"},Ve=({content:e})=>o.jsx(o.Fragment,{children:po(e.content??[e])}),po=e=>e.map((t,r)=>ld(t,r)),ld=(e,t)=>{if(e.type==="text")return cd(e,t);if(e.type==="hardBreak"||e.type==="hard_break")return o.jsx("br",{},t);const r=e.content?po(e.content):null;switch(e.type){case"doc":return o.jsx(f.Fragment,{children:r},t);case"heading":{const n=gd(e.attrs?.level);return fd(n,t,r,hr(e.attrs))}case"paragraph":{const n=me(e.attrs?.variant);return o.jsx("p",{"data-variant":n??void 0,style:mo(hr(e.attrs)),children:r},t)}case"blockquote":return o.jsx("blockquote",{children:r},t);case"bulletList":case"bullet_list":return o.jsx("ul",{children:r},t);case"orderedList":case"ordered_list":return o.jsx("ol",{children:r},t);case"listItem":case"list_item":return o.jsx("li",{children:r},t);default:return o.jsx("span",{children:r},t)}},cd=(e,t)=>{const r=e.text??"";return!e.marks||e.marks.length===0?o.jsx("span",{children:r},t):e.marks.reduceRight((n,s,a)=>dd(s,n,`${t}-${a}`),r)},dd=(e,t,r)=>{switch(e.type){case"bold":case"strong":return o.jsx("strong",{children:t},r);case"italic":case"em":return o.jsx("em",{children:t},r);case"underline":return o.jsx("u",{children:t},r);case"strike":case"strikethrough":case"s":return o.jsx("s",{children:t},r);case"code":return o.jsx("code",{children:t},r);case"link":{const n=me(e.attrs?.href);return u.isSafeUrl(n)?o.jsx("a",{className:ad,href:n,rel:"noopener noreferrer",target:"_blank",children:t},r):o.jsx("span",{children:t},r)}case"textStyle":{const n=ud(e.attrs);return n?o.jsx("span",{style:n,children:t},r):o.jsx("span",{children:t},r)}default:return o.jsx("span",{children:t},r)}},ur=e=>{const t=me(e&&typeof e=="object"?e.fontFamily:e);if(t)return id[t]??t},ud=e=>{if(!e)return null;const t={},r=me(e.color);r&&(t.color=r);const n=ur(e.font)??ur(e.fontFamily);n&&(t.fontFamily=n);const s=hd(e.fontSize);return s&&(t.fontSize=s),Object.keys(t).length>0?t:null},hd=e=>typeof e=="number"&&Number.isFinite(e)?`${e/10}em`:me(e),me=e=>typeof e=="string"&&e.length>0?e:void 0,gd=e=>typeof e!="number"?3:e<1?1:e>3?3:Math.round(e),fd=(e,t,r,n)=>{const s=mo(n);switch(e){case 1:return o.jsx("h1",{style:s,children:r},t);case 2:return o.jsx("h2",{style:s,children:r},t);case 3:return o.jsx("h3",{style:s,children:r},t)}},hr=e=>{const t=e?.textAlign;if(t==="left"||t==="right"||t==="center"||t==="justify")return t},mo=e=>e?{textAlign:e}:void 0;var pd="_4dlrid0",xo="_4dlrid1",md="xfz7dq0",xd="xfz7dq1",vd="xfz7dq2",yd="xfz7dq3",bd="xfz7dq4";const vo=({ref:e,footerRect:t,mode:r="readonly",caption:n,isCaptionVisible:s,source:a,isSourceVisible:i})=>{const l=r==="editable",d=s&&(l||n!==null),h=i&&a!==null&&wd(a);return!d&&!h?null:o.jsxs("div",{ref:e,className:md,style:{left:t.x,top:t.y,width:t.width},children:[d?l?o.jsx(kd,{caption:n}):o.jsx(Ad,{caption:n}):null,h&&o.jsx(Sd,{source:a})]})},Ad=({caption:e})=>e===null?null:typeof e=="string"?o.jsx("p",{className:xo,children:e}):o.jsx(Ve,{content:e}),Sd=({source:e})=>{const t=u.isSafeUrl(e.url)?e.url:void 0,r=e.label??(t!==void 0?jd(t):"");return r===""&&t===void 0?null:o.jsxs("div",{className:xd,children:[o.jsx("span",{className:yd,children:"Source:"}),t!==void 0?o.jsx("a",{className:vd,href:t,target:"_blank",rel:"noopener noreferrer",children:r}):o.jsx("span",{className:bd,children:r})]})},jd=e=>{try{return new URL(e).hostname}catch{return e}},wd=e=>e.label!==void 0&&e.label!==""||e.url!==void 0&&e.url!=="",kd=({caption:e})=>{const t=Mt(),r=f.useMemo(()=>Xl({placeholder:"Add caption"}),[]),n=fo({content:e,extensions:r,isEditable:!0,onUpdate:s=>{const a=Nc(s)?null:s;t(new u.SetContentCaptionCommand({caption:a}))}});return o.jsx(go,{editor:n,ariaLabel:"Chart caption"})};var Cd="_1k4qtbg0";const Ed=3,Ld=({title:e,isTitleVisible:t,subtitle:r,isSubtitleVisible:n})=>{const s=[];return t&&s.push({type:"heading",attrs:{level:Ed},content:Td(e)}),n&&s.push(...Rd(r)),{type:"doc",content:s}},Pd=e=>{const t=e.content??[],[r,...n]=t;return{title:Bd(r?.content??[]),subtitle:Md(n)}},Dt=e=>({type:e.type??"text",...e.content!==void 0?{content:e.content.map(Dt)}:{},...e.text!==void 0?{text:e.text}:{},...e.marks!==void 0?{marks:e.marks}:{},...e.attrs!==void 0?{attrs:e.attrs}:{}}),Td=e=>e===null?[]:typeof e=="string"?e===""?[]:[{type:"text",text:e}]:e.type==="doc"&&e.content?e.content.flatMap(t=>t.content??[]):e.type==="text"||e.type==="hardBreak"?[e]:e.content??[],Rd=e=>e===null?[{type:"paragraph"}]:typeof e=="string"?e===""?[{type:"paragraph"}]:[{type:"paragraph",content:[{type:"text",text:e}]}]:e.type==="doc"&&e.content?e.content.length===0?[{type:"paragraph"}]:e.content.map(gr):[gr(e)],gr=e=>e.type==="paragraph"?e:{type:"paragraph",content:e.content??[e]},Bd=e=>{if(e.length===0)return null;const[t]=e;return t&&e.length===1&&t.type==="text"&&(!t.marks||t.marks.length===0)?t.text??null:{type:"paragraph",content:e.map(Dt)}},Md=e=>{const t=e.filter(n=>(n.content??[]).length>0);if(t.length===0)return null;const[r]=t;if(r&&t.length===1&&r.type==="paragraph"){const n=r.content??[],[s]=n;if(s&&n.length===1&&s.type==="text"&&(!s.marks||s.marks.length===0))return s.text??null}return{type:"doc",content:t.map(Dt)}},yo=({ref:e,headerRect:t,mode:r="readonly",title:n,isTitleVisible:s,subtitle:a,isSubtitleVisible:i})=>{const l=r==="editable";return!(s&&(l||n!==null))&&!(i&&(l||a!==null))?null:o.jsx("div",{ref:e,className:Cd,style:{left:t.x,top:t.y,width:t.width},children:l?o.jsx(Nd,{title:n,isTitleVisible:s,isSubtitleVisible:i,subtitle:a},[s?"title":"",i?"subtitle":""].join("-")):o.jsx(Id,{title:n,isTitleVisible:s,isSubtitleVisible:i,subtitle:a})})},Id=({title:e,isTitleVisible:t,isSubtitleVisible:r,subtitle:n})=>{const s=t&&e!==null,a=r&&n!==null;return o.jsxs(o.Fragment,{children:[s&&(typeof e=="string"?o.jsx("h1",{className:pd,children:e}):o.jsx(Ve,{content:e})),a&&(typeof n=="string"?o.jsx("p",{className:xo,children:n}):o.jsx(Ve,{content:n}))]})},Nd=({title:e,isTitleVisible:t,isSubtitleVisible:r,subtitle:n})=>{const s=Mt(),a=f.useMemo(()=>Ul({titlePlaceholder:"Untitled",subtitlePlaceholder:"Untitled",isTitleVisible:t,isSubtitleVisible:r}),[t,r]),i=f.useMemo(()=>Ld({title:e,isTitleVisible:t,subtitle:n,isSubtitleVisible:r}),[e,t,n,r]),l=fo({content:i,extensions:a,isEditable:!0,onUpdate:d=>{const h=Pd(d);t&&s(new u.SetContentTitleCommand({title:h.title})),r&&s(new u.SetContentSubtitleCommand({subtitle:h.subtitle}))}});return o.jsx(go,{editor:l,ariaLabel:"Chart title and subtitle"})};var Hd="_1u9qprb0",Dd="_1u9qprb1",Fd="_9aen060",Gd="_9aen061",Od="_9aen062",bo="_9aen063";const Wd=Object.freeze(Object.defineProperty({__proto__:null,groupRow:Od,item:bo,trendRow:Gd,valueRow:Fd},Symbol.toStringTag,{value:"Module"})),zd=e=>o.jsx(te,{...e,children:o.jsxs("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[o.jsx("path",{d:"m5 12 7-7 7 7"}),o.jsx("path",{d:"M12 19V5"})]})}),Yd=e=>o.jsx(te,{...e,children:o.jsx("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:o.jsx("path",{d:"M5 12h14"})})});var Ao="n7clvo0",Vd="n7clvo1",Ud="n7clvo2",Xd="n7clvo3",So={small:"n7clvo4",medium:"n7clvo5",large:"n7clvo6"},Kd={small:"n7clvo7",medium:"n7clvo8",large:"n7clvo9"},Qd={up:"n7clvoa",down:"n7clvob",flat:"n7clvoc"},qd={up:"n7clvoe n7clvod",down:"n7clvof n7clvod",flat:"n7clvog n7clvod"};const Jd=({segment:e,resolvedSize:t})=>{const r=ee();if(e.kind==="swatch"){const s=r(e.swatch.geom,"cartesian")?.swatchShape??"square";return o.jsx(Le,{shape:s,color:e.swatch.color,surface:"headline",width:e.size,height:e.size})}if(e.kind==="trendArrow")return o.jsx("div",{className:qd[e.direction],children:e.direction==="flat"?o.jsx(Yd,{size:"xs",title:""}):o.jsx(zd,{size:"xs",title:""})});const n=e.fontRole==="value"?So[t]:Kd[t];return o.jsx("span",{className:F.clsx(Zd(e),n),children:e.text})},Zd=e=>{switch(e.textRole){case"value":return Ao;case"observation":return Vd;case"trendPercentage":return Qd[e.trendDirection??"up"];case"trendReference":return Ud;case"label":return Xd}},_d=({item:e,resolvedSize:t})=>o.jsx("div",{className:bo,children:u.createHeadlineItemRows(e).map(r=>o.jsx($d,{row:r,resolvedSize:t},r.role))}),$d=({row:e,resolvedSize:t})=>{const r=e.role==="trendRow";return o.jsx("div",{className:Wd[e.role],"data-testid":r?"headline-trend":void 0,"data-direction":r?eu(e):void 0,role:r?"img":void 0,"aria-label":r?e.ariaLabel:void 0,children:e.segments.map((n,s)=>o.jsx(Jd,{segment:n,resolvedSize:t},s))})},eu=e=>{const t=e.segments.find(r=>r.kind==="trendArrow");return t?.kind==="trendArrow"?t.direction:void 0},tu=({headline:e,rect:t,resolvedSize:r,visibleItemCount:n})=>{const s={left:t.x,top:t.y,width:t.width,height:t.height};return e.kind==="grandTotal"?o.jsx("div",{className:Dd,style:s,children:o.jsx("span",{className:F.clsx(Ao,So[r]),children:e.value})}):o.jsx("div",{className:Hd,style:s,children:e.items.slice(0,n).map((a,i)=>o.jsx(_d,{item:a,resolvedSize:r},`${a.label}-${i}`))})};var ru="_1oj6yix0",nu="_1oj6yix1",ou="_1oj6yix2";const su=8,au=16,iu=2,lu=({legends:e,containerRect:t,textScale:r})=>{const{fonts:n}=oe(),s=It(n.legendLabel,r),{placements:a,hasOverlap:i}=cu(e,t,s);if(a.length===0)return null;const l=i?au:su,d=l-iu;return o.jsxs("div",{className:ru,children:[i&&o.jsx("svg",{className:nu,width:t.width,height:t.height,children:a.map(h=>o.jsx(du,{anchorY:h.anchorY,labelY:h.y,endX:d,color:h.payload.color},h.payload.key))}),a.map(h=>o.jsx("span",{className:ou,style:{left:l,top:h.y,color:h.payload.color},children:h.payload.label},h.payload.key))]})},cu=(e,t,r)=>f.useMemo(()=>{const n=[];for(const s of e)for(const a of s.items){if(a.normalizedY===null)continue;const i=typeof a.visual.color=="string"?a.visual.color:void 0;n.push({normalizedY:a.normalizedY,payload:{key:String(n.length),label:a.formattedLabel,color:i}})}return n.length===0||t.height<=0?{placements:[],hasOverlap:!1}:u.computeDirectLabelsLayout({items:n,containerHeight:t.height,labelHeight:r})},[e,t.height,r]),du=({anchorY:e,labelY:t,endX:r,color:n})=>{const s=r/2;return o.jsx("path",{d:`M0,${e} C${s},${e} ${s},${t} ${r},${t}`,fill:"none",stroke:n??"currentColor",strokeWidth:1,strokeDasharray:"2 2"})};var uu="_6a636s0",hu="_1kjk02r0",gu="_1kjk02r1",fu="_1kjk02r2",pu="_1kjk02r3",mu="_1kjk02r4",xu="_1kjk02r5",vu="_1kjk02r6",yu="_1kjk02r7",bu="_1kjk02r8",Au="_1kjk02r9",Su="_1kjk02ra",ju="_1kjk02rb",wu="_1dw9dgx0";const ku="#9ca3af",dt="\0",Cu=(e,t)=>{const r=[];return e.forEach((n,s)=>{const a=n.aesthetics.includes("size");for(const i of n.items){if(a){const g=Number(i.visual.size);if(!Number.isFinite(g)||g<=0)continue}const l=i.visual.color??"",d=a?`${dt}${Number(i.visual.size)}`:"",h=i.visual.lineType;r.push({key:`${s}${dt}${String(i.value)}${dt}${l}${d}`,formattedLabel:i.formattedLabel,visual:i.visual,swatchShape:t(i.geom),isBubble:a,primaryLineType:h})}}),r},jo=({pill:e})=>e.isBubble?o.jsx(Pu,{pill:e}):o.jsx(Lu,{pill:e}),Eu=({color:e,lineType:t,shape:r,label:n})=>{const{legendSwatchWidth:s,legendSwatchHeight:a}=oe();return e?o.jsx(Le,{shape:r,color:e,surface:"legend",label:n,lineType:t,width:s,height:a}):null},Lu=({pill:e})=>o.jsxs(o.Fragment,{children:[o.jsx(Eu,{color:e.visual.color,lineType:e.primaryLineType,shape:e.swatchShape,label:e.formattedLabel}),o.jsx("span",{children:e.formattedLabel})]}),Pu=({pill:e})=>{const t=Number(e.visual.size);return o.jsxs(o.Fragment,{children:[o.jsx("span",{className:wu,style:{width:t,height:t,backgroundColor:e.visual.color??ku}}),o.jsx("span",{children:e.formattedLabel})]})},Tu=({hiddenPills:e,placement:t})=>{const r=Z.useI18n(),[n,s]=f.useState(!1),{refs:a,floatingStyles:i}=I.useFloating({open:n,placement:t,middleware:[I.offset(4),I.flip(),I.shift({padding:8})]});f.useEffect(()=>{if(!n)return;const g=m=>{const v=m.target;if(!v)return;const x=a.reference.current,y=a.floating.current;x instanceof Element&&x.contains(v)||y instanceof Element&&y.contains(v)||s(!1)},p=m=>{m.key==="Escape"&&s(!1)};return document.addEventListener("pointerdown",g),document.addEventListener("keydown",p),()=>{document.removeEventListener("pointerdown",g),document.removeEventListener("keydown",p)}},[n,a.floating,a.reference]);const l=t==="left"||t==="right",d=Math.min(e.length-1,$r),h=Array.from({length:d},(g,p)=>d-p);return o.jsxs(o.Fragment,{children:[o.jsxs("div",{ref:a.setReference,className:F.clsx(hu,{[fu]:l,[gu]:!l}),children:[h.map(g=>o.jsx("span",{className:F.clsx(pu,{[xu]:l,[mu]:!l}),style:Ru(g,l),"aria-hidden":!0},g)),o.jsx("button",{type:"button",className:F.clsx(vu,{[yu]:n}),onClick:()=>s(g=>!g),"aria-haspopup":"dialog","aria-expanded":n,"aria-label":`Show ${e.length} hidden legend ${e.length===1?"item":"items"}`,children:o.jsxs("span",{className:bu,children:["+",e.length]})})]}),n&&o.jsx("div",{ref:a.setFloating,role:"dialog","aria-label":r("graph.legend.hiddenItems"),className:Au,style:i,children:o.jsx("ul",{className:Su,children:e.map(g=>o.jsx("li",{className:ju,children:o.jsx(jo,{pill:g})},g.key))})})]})},Ru=(e,t)=>{const r=-e*en;return{transform:t?`translateY(${r}px)`:`translateX(${r}px)`}};var Bu="_1cecisi0",Mu="_1cecisi1",Iu="_1cecisi2",Nu="_1cecisi3";const Hu=({edge:e,formattedLegends:t,containerWidth:r,containerHeight:n,textScale:s})=>{const a=se(),i=oe(),l=ee(),d=k(b=>b.coordSystem.type),h=f.useMemo(()=>Cu(t,b=>l(b,d)?.swatchShape??"square"),[t,l,d]),g=e==="left"||e==="right",p=g?n:r,m=f.useMemo(()=>{if(h.length===0)return{visibleCount:0,hasOverflow:!1};if(p<=0)return{visibleCount:h.length,hasOverflow:!1};const b=Y(i.fonts.legendLabel,s),S=It(i.fonts.legendLabel,s),C=H=>g?Du(H,S,i):fr({label:H.formattedLabel,swatchInlineSize:Fu(H,i.legendSwatchWidth),textMeasurer:a,font:b,swatchGap:i.legendSwatchGap,horizontalChrome:i.legendPillHorizontalChrome}),E=h.map(C),T=(g?S+i.legendPillVerticalChrome:fr({label:`+${h.length}`,swatchInlineSize:0,textMeasurer:a,font:b,swatchGap:i.legendSwatchGap,horizontalChrome:i.legendPillHorizontalChrome}))+Is;return Ou({pillSizes:E,overflowPillSize:T,containerSize:p,gap:i.legendItemGap})},[h,p,g,a,s,i]);if(h.length===0)return null;const v=h.slice(0,m.visibleCount),x=h.slice(m.visibleCount),y=m.hasOverflow&&x.length>0;return o.jsxs("div",{className:F.clsx(Bu,{[Iu]:g,[Mu]:!g}),children:[v.map(b=>o.jsx("div",{className:Nu,children:o.jsx(jo,{pill:b})},b.key)),y&&o.jsx(Tu,{hiddenPills:x,placement:Wu(e)})]})},fr=({label:e,swatchInlineSize:t,textMeasurer:r,font:n,swatchGap:s,horizontalChrome:a})=>{const i=r.measureText(e,n).width,l=t>0?s:0;return t+l+i+a},Du=(e,t,r)=>{const n=Gu(e,r.legendSwatchHeight);return Math.max(t,n)+r.legendPillVerticalChrome},Fu=(e,t)=>e.isBubble?Number(e.visual.size):qn(e.visual.color,t),Gu=(e,t)=>e.isBubble?Number(e.visual.size):t,Ou=({pillSizes:e,overflowPillSize:t,containerSize:r,gap:n})=>{if(e.length===0)return{visibleCount:0,hasOverflow:!1};let s=0;for(let l=0;l<e.length;l+=1)l>0&&(s+=n),s+=e[l]??0;if(s<=r)return{visibleCount:e.length,hasOverflow:!1};let a=0,i=0;for(const l of e){const d=a+(i>0?n:0)+l;if(d+n+t>r)break;a=d,i+=1}return{visibleCount:i,hasOverflow:!0}},Wu=e=>{switch(e){case"top":return"bottom";case"bottom":return"top";case"left":return"right";case"right":return"left"}},zu=f.memo(function({formattedLegends:t,rects:r,textScale:n}){const s=f.useMemo(()=>{const a=new Map;for(const i of t){let l=a.get(i.position);l||(l={pill:[],direct:[]},a.set(i.position,l)),i.display==="pill"?l.pill.push(i):l.direct.push(i)}return a},[t]);return o.jsx(o.Fragment,{children:Array.from(s,([a,i])=>{const l=r[a];return l===void 0?null:o.jsxs("div",{className:uu,style:{left:l.x,top:l.y,width:l.width,height:l.height},children:[o.jsx(Hu,{edge:a,formattedLegends:i.pill,containerWidth:l.width,containerHeight:l.height,textScale:n}),o.jsx(lu,{legends:i.direct,containerRect:l,textScale:n})]},a)})})}),Yu=({layers:e,primaryLayerId:t,coordSystem:r,resolveRenderer:n})=>{const s=e.find(i=>i.id===t);if(!s)return null;const a=n(s.geom,r.type);return a?a.guideMode??null:null},wo=1,ko="4 3",pr=({panelRect:e})=>{const{coordSystem:t,layers:r,scales:n}=k(O.useShallow(l=>({coordSystem:l.coordSystem,layers:l.layers,scales:l.scales}))),s=Ee(l=>l.hover.primary),a=ee();if(r.length===0||s===null||!s.anchored)return null;const i=Yu({layers:r,primaryLayerId:s.layerId,coordSystem:t,resolveRenderer:a});return i===null?null:t.type==="polar"?i==="band"?o.jsx(Ku,{coordSystem:t,primary:s,panelRect:e}):o.jsx(Xu,{coordSystem:t,primary:s,panelRect:e}):i==="band"?o.jsx(Uu,{coordSystem:t,scales:n,primary:s,panelRect:e}):o.jsx(Vu,{coordSystem:t,primary:s,panelRect:e})},Vu=({coordSystem:e,primary:t,panelRect:r})=>{const n=u.getHoverGuideLineProps(e,t);return o.jsx(et,{panelRect:r,children:o.jsx("line",{...n,stroke:c.hoverGuideLineColor,strokeWidth:wo,strokeDasharray:ko,strokeLinecap:"round","data-testid":"hover-guide-line"})})},Uu=({coordSystem:e,scales:t,primary:r,panelRect:n})=>{const s=u.getHoverGuideRectProps(e,t,r);return s===null?null:o.jsx(et,{panelRect:n,children:o.jsx("rect",{...s,fill:c.hoverGuideFillColor,"data-testid":"hover-guide-rect"})})},Xu=({coordSystem:e,primary:t,panelRect:r})=>{const n=Lt(r),s=q(t.x,e.innerRadius,n),a=q(t.x,1,n);return o.jsx(et,{panelRect:r,children:o.jsx("line",{x1:s.x,y1:s.y,x2:a.x,y2:a.y,stroke:c.hoverGuideLineColor,strokeWidth:wo,strokeDasharray:ko,strokeLinecap:"round","data-testid":"hover-guide-line"})})},Ku=({coordSystem:e,primary:t,panelRect:r})=>{const n=u.getPolarHoverGuideArcProps(e,t);if(n===null)return null;const s=u.buildPolarBarArcPath(n);return s?o.jsx(et,{panelRect:r,children:o.jsx("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%",style:{overflow:"visible"},children:o.jsx("path",{d:s,fill:c.hoverGuideFillColor,"data-testid":"hover-guide-arc"})})}):null},et=({panelRect:e,children:t})=>o.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}),Qu=200,qu=({engine:e,store:t,overlayRef:r})=>{f.useEffect(()=>{const n=r.current;if(!n)return;const s=Ju(n,e),a=Zu(n,e,t);return()=>{a(),s()}},[e,t,r])},Ju=(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 s=()=>{n!==null&&clearTimeout(n),n=setTimeout(()=>{n=null,r()},Qu)},a=new ResizeObserver(s);return a.observe(e),r(),()=>{a.disconnect(),n!==null&&clearTimeout(n)}},Zu=(e,t,r)=>{let n=null,s=null;const a=()=>{s=null;const d=n;if(n=null,!d)return;const h=e.getBoundingClientRect();if(h.width===0||h.height===0)return;const g=u.findCalloutHit({x:d.clientX-h.left,y:d.clientY-h.top},r.getState().calloutHits);if(g!==null){const v=r.getState();v.setHoverState(t.query(g.cursor)),v.setTooltipAnchor({x:h.left+g.markerPx.x,y:h.top+g.markerPx.y,placement:g.placement});return}const p=u.toPanelCursor({x:d.clientX-h.left,y:d.clientY-h.top},h),m=r.getState();m.setHoverState(t.query(p)),m.setTooltipAnchor(null)},i=d=>{n=d,s===null&&(s=requestAnimationFrame(a))},l=()=>{n=null,s!==null&&(cancelAnimationFrame(s),s=null);const d=r.getState();d.hover.primary===null&&d.tooltipAnchor===null||(d.setHoverState(u.RESTING_HOVER_STATE),d.setTooltipAnchor(null))};return e.addEventListener("pointermove",i),e.addEventListener("pointerleave",l),()=>{e.removeEventListener("pointermove",i),e.removeEventListener("pointerleave",l),s!==null&&cancelAnimationFrame(s),n=null}},_u=({panelRect:e})=>{const{engine:t,store:r,overlayRef:n}=de();return qu({engine:t,store:r,overlayRef:n}),o.jsx("rect",{ref:n,x:e.x,y:e.y,width:e.width,height:e.height,fill:"transparent",pointerEvents:"all","data-testid":"pointer-capture-layer"})},ut="data-hover-active",$u=e=>{const{store:t}=de(),r=ke.useStore(t,n=>n.hover.primary!==null);f.useEffect(()=>{const n=e.current;if(n)return r?n.setAttribute(ut,"true"):n.removeAttribute(ut),()=>{n.removeAttribute(ut)}},[e,r])},eh=W.sm,th=ve,rh=le.medium,nh=7,oh=4,mr=1,Ue=10,sh=5,ah=4,ih="0 1px 1.5px rgba(14, 14, 52, 0.18)";var lh="ph8bdc0",ch="ph8bdc1",dh="ph8bdc2",uh="ph8bdc3";const hh=({cx:e,cy:t,color:r,radius:n=ah})=>o.jsx("circle",{cx:e,cy:t,r:n,style:{fill:r??c.textPrimary,stroke:c.tooltipBackground,strokeWidth:2,filter:`drop-shadow(${ih})`}});function gh(e){const t=se(),{formattingLocale:r}=ce(),n=k(O.useShallow(d=>({pinnedNumbers:d.annotations.pinnedNumbers,comments:d.annotations.comments,coordSystem:d.coordSystem,numberFormat:d.config.numberFormat,parsingLocale:d.config.parsingLocale,textScale:d.config.appearance.textScale}))),s=r??n.parsingLocale,a=f.useMemo(()=>u.buildPinnedNumberValueFormatter({numberFormat:n.numberFormat,locale:s}),[n.numberFormat,s]),i=f.useMemo(()=>{const d={family:th,size:Je(eh,n.textScale),weight:rh};return(h,g)=>{const p=t.measureText(g,d),m=h==="pinned-number"?Ue+sh:0;return{width:p.width+m+(nh+mr)*2,height:Math.max(p.height,Ue)+(oh+mr)*2}}},[t,n.textScale]);return{placed:f.useMemo(()=>u.placeCallouts({pinnedNumbers:n.pinnedNumbers,comments:n.comments,panelRect:e,coordSystem:n.coordSystem,measurer:i,formatPinnedNumber:d=>a(d.at)}),[n.pinnedNumbers,n.comments,e,n.coordSystem,i,a]),formatPinnedValue:a}}const fh=({panelRect:e})=>{const t=k(h=>h.annotations.pinnedNumbers),r=k(h=>h.coordSystem),n=ee(),{placed:s,formatPinnedValue:a}=gh(e),{store:i}=de(),l=f.useMemo(()=>{const h=new Map;for(const g of t)h.set(g.id,g);return h},[t]),d=f.useMemo(()=>u.buildCalloutHitRegions(s.filter(h=>h.kind==="pinned-number"),e),[s,e]);return f.useEffect(()=>(i.getState().setCalloutHits(d),()=>{i.getState().setCalloutHits([])}),[i,d]),t.length===0?null:o.jsx("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible",className:lh,"data-testid":"pinned-numbers",children:s.map(h=>{const{id:g,kind:p,inView:m,miniRect:v,anchorPx:x}=h;if(p!=="pinned-number"||!m)return null;const y=l.get(g);if(y===void 0)return null;const{color:b,geom:S}=y.at;return o.jsxs("g",{"data-testid":"pinned-number",children:[o.jsx("foreignObject",{x:v.x,y:v.y,width:v.width,height:v.height,overflow:"visible",children:o.jsxs("div",{className:ch,children:[o.jsx("span",{className:dh,children:o.jsx(Le,{shape:n(S,r.type)?.swatchShape??"square",surface:"callout",color:b??"currentColor",width:Ue,height:Ue})}),o.jsx("span",{className:uh,children:a(y.at)})]})}),o.jsx(hh,{cx:x.x,cy:x.y,color:b})]},g)})})},ph={"clapping-hands":{aspectRatio:1.059,src:"data:image/png;base64,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"},"grinning-face":{aspectRatio:1.03,src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAABECAYAAAA1DeP1AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAABeNSURBVHgB7VwJdFbVtd73/mP+/EMmEpL8CYFMECAQmWTwGRSf1ApUK/a19lULLQ6vqy19fVVfbRvreyxp7eBbrYWKtUuxtVBaZajWiQCCIMSHgQQSpiSEDGT8h/zzvfftc+cpQFB57Vrda93cc+490/7OPnvvs8/9A/AP+gepyQLXkDiOo5Do+vpxNEAzTfqfNWuWpaCgwNLdXYBj6bbU1tbSbW1zKHyPF1BwjeiT7oiqq6uj6uvrkfl6qqSkxLJ9+/aSwsLCaovFkmG1WktomvZh2kcKMwwTQLCG8d4eDofb9+zZc+zRRx8dbGtrY/A1i21xeLHw90Bk1kEA2FpWVubYtm1bfjAY/E48Ht/BsuwwN0YioJC6AwMDaxobGycDVNlBkORrJi1jJpwtGkXdtmvXrvHI/JpkMrmX+5iJtDk8PLwGpcuJXVrxouFviHAws2xk9lGk113NzI+ViKQMDg7e7/f707B/K5kE+H+UEux4JYppmSMYDH/nWgAwGiBkGQoTcnVgXC2CfL2qqirbiy++WFpdPWOj1Wq54bK1UiGARA9AuAEg3oXaMYz5LqE5DoiCAbDnAzjwclVgugAgvQKuhHASOo4ePbp0zZo1pxsaGlIgtDg2hsZIWKeOKivbbPvggw++4Xa7/xNNom/U0oT5wV0AgT0AkVPIfEjoldepqrFKQEgZGRgEwzsLIOd24X4JQgEJhMORdV6v+2lcKsmxWJirAYKIny0Sif00Lc3x0Kil4t0AfS8jCH/B6QqDwJmaeTHNSc9JlhUAkgDhVIBI0uK/HyB3GVyKQqHQk9XV1Y+j2U2IHV5WOsYIRB29a9ec3CVLljxlt9vvMS1CZrzz54IUUJS2B0qV4UaTBiRWDYQaDBDAIlJSdGlAEonEzn379n3l3XeX9NXVXR6MsQBBo1XIu+OOO17HpVBtWuIiSkDPc8hISGia9yjUYIhpTjcm9awDpQJADQSYS8i0ZwGcBabDYVmucefOd/55xYolfSQLl6ArBYJGu21vaWnZipJwu+Et0QMdT6Ae2KswTuEKoliReUqRBsIAJS0LUJ7Jy0EHjBoIllWVF/PkPvHbAIXmAhqLxX5XXl7+lc7OzvilwLgSIIhr7ECv7gcej+cRw1uiC049CJDsVhiWgZB6oFS9SV3q9ACAlnFW5F5aJixnlAi1lJClMuEBUwai0fgzLtfkfwfgdYYpGJf0ylALU+gpWhGEr48OAurLZI8CAk2LlwSKmFY/l9LSe4oyXrToEtDiEGWAxbQMqHjv2ADQ8n1TPohSDwYbv042eDAKXUYiaq0NDT8pr6mpec9gIiUQiB8gMU0rjMSiKdi/pxtOHBuErs4RYHAebvp0Mdy6bALIfgOY6QIxjRIw0B+HP/z+DHScC0K6ywr5BWlwXU02fxnqsGI6DxVo5RMGTohpPXDgwMJFi54+CbCV0b+3jgYBkYaJEydaZ86c+boBBKITWh9QJEGGVEg3NQ7AHzafhvAIAykcoNVhg7IqH1jwzkuAxoSCKi0pA4qX1TSXBZweB+T6vXD6dBD6AyE42RqGw0cG4O67SiDTZzL8nh3okKHyLHlQ85jwMHfu3A0lJYdvOXeOYzGv0dijSgTZPL355turMjN9Gwwv234IMLBTFG9QSQPAzp0XYMf285BgOKicnAGfubMEJlf5ROZU+oH3F1itZJDVKylA6Z2Y70fpONkagFd2dsHQUBzycuzw0KpS8I936iRJTE9DE56z2DB09DEe9nq9P8Ekc1kgyAZm48aNTtS0JzBeUKx52ft7wU+QaktrHm9/fKUTtvzpPBQVu2HVfaUwdWqGam2rLAelM5HsKGkpz2qXz643e+AP27vAit0++cgUyM2yGZcW7QGYs8VgWskSeeONN6YsXbq0F1SK01R5XLx40Yb++n0ul0trk4heaH9S8RNoRS/09CXgsSdbYOnSAlj7tQooLHQpEqMqJ0mOZg4kc6q2KJySFO6UnKmYlA4LZmXBX/YNwf4PArBscY74Xm4Q5xutZbgFIH+FhgVcEs68vLwUglHf3d0tA2GwGggmNTQ0ZPX5fI/q30HXr4XNkjxmTmZk3f+chn+5qwgeWj0J0t1W7eyDCgTJWtAqUwucUdeonTHe95A6FWY8b5wDNj4xBZK4BF/bN6iTbU7IDx0BGD5iYAP3Rw88/PDDuaCqZQAC+6abmpruNSwJAkDfTqUjUIk65j91cy6s+kIRqJwH/nb6TBief/Ec9PTGVebVBCTDKlXyr+0ZgOe3dEE4klKV58DtomHd2lL+DgYvWqx/1qjiiOK88cbFy9X8G3onzlNra+tbNpttoebN2TrUWDtV9h/EWaXFKIDKdxDzPX1x+Oq/HYHQSAo8KCXP/no+jC9wKUqQvzhBMfJpMOiJbTu64Re/OccPdWaVG372vcmmylTjiMkOGQhtXoduf+ZsDTvxeHK/0znpFlR4MVJbLxHU5s2bSw0gyNJAgWGfIOMpDl611l/8XRtwCQZy3WhxYyn485/aFSYNRGunRSzy5790gxdDLjnpHLScCsOHJ4IidyZjUe9aVW3A2V8ZenM4bAufffYH2Vu2rKTF3rWjKS0tvdFQK9gAan2g7Ugvkgrt3dMDpeM4BIKCQjQge9/pEq0Aq8yc7GKrFKQwpdDYFIBkOAb5PgrGoxEoyuSgfv+ADgRKNRaVnlEr5FCL4PvoaMWKO760fn2mAQiyLKxoY42bqos7lAFyasY5LQ4yYyycPReGCZkUb+IseFlxTHY2Bb09UWU5mG60QLQAFJw4GQQfRiQtmLXiH7edgvPtQVF5qkFTEQfGuSEgXNwNevJ40hd5PK0WDRBoXwEDrzaHwzHNUCNo1LyGMcjSQfGMJGNJsGMXPBCijrQjGtGRhFYPGEBRuGASKWwNtTfN8UASQKkUo5RTS4E0CMpkgOQ2aOQBd9ILm5ouWokXrWhNPIH67ne/m42HLUWa0oEjIO8NNIyrt8Sql2KeFivIVlPU9PFIQlRw3Cg7SuWKxwSmaREMCp8l4pJDqDKt+v7VOEjZocOgJ7SM3k2bfjLp8ccfp2RnfeXKlegMLZ1uKB1pVRqVOgbRWkgviCgTpmQXmoU0p1VUBxSW4KShQzo+F/w5cZRmIIgMZWfZxR440cGk+I2XhlGpZdldB914xXy0S1giVo+GvenTp1WvWPGpZlkimprAkp2dbQQi1qVDXOpInFVDjFHQ6ISJFCaTyIEkAGm4g/QXuXigFMZV0iGH6ASmcrIcIgzA717JlZnp0AEGyuRoiNLpLhEMHdE0k4nReFoGIhI5jNJryTSUJG613LBeuYkZw5YYJSLNAqVlPhw8BSlxNmdely0wy4hWg+HEjZZWEgR/AmDmjAxBsjCfIu1gueqpPhF8ME6QYVw6XiJGIDweb3Fzc0QBIpVKUTRNZRhKJoOg1ei6NcmypuubXJ++3Y8uMPBgsJhftqxIcYDkeqxJ20La5bTATTfl8ZJFdKQvwwHz52QbhmhgmBslzRhNKFLG/PlzFB3R2Zmk8ZDGa9qJrBdUIiihTqnzrOo9BxXlHvjXe0vh6NEhmD8/B0XdroCoFls5z+n8Cw6W4yYuip7pwGAc7v6MX7scOW50pkdL68hqtXnb2t5VgMjLI3/NIneqEXPqXaK+dUpbRQRtwfU5/GVwxDQOkcgQqwJJ1fzn7iwWJEenQ5Th6XSG3AdcEgRpAN3dSoQKlwXNpVJkHZiQLBEqJjk116qokzrLxwVEACScKJ1rLEuITkokZjUMg6oup5MmCrQOmQ5oTV2FkOcAIixLBEdQwSN34yIiYS+VuCuMqLU0C4o0ccrMkbKMVEd8R+lBoM0lRb0kNboHVHfQ5pWGtWOWKK0Q9JRIJIP5+X5l0+X3W7hQKNxpKEkiPKN2qhZlM/FUv5PMJKiiTiTNgJkPYUirmQeTsXBgMk7VhBCyaX0IQniK31lZOcCqlKWVi0SImOiISIRmPSuckm32ul+f5/u5bqoHZkx241bZq1pCel1C8rpjBU5pzyD+rFo6VO9ZYcbDEQYOHA1Aa3sM9mGkaun8TPjy7XnG8lJ7nkrQU29v33mM9CpR7KoqF3vw4PvHq6t1hTNmm6wtgcFTbVH43xMhuOuBx+Ddg2/Bb7cd5N9UTnRB2QQXTCxOg9ISFxRiNCkn265Eozh9W6oBy+te0SXRKAPBcArOtEehZyDB34+2hKEbw4POdC9MX3ALFNdwsOXt7QIQZqSLR0i0deurzfX1nZwMRHNzLvutbz3Zvnr1F0K431BkiCwN4pZqtrHijIywPBvVC5bAzZ9dhZsiGs4cex+6zjbDBbx2N1+AF7cfh2goCCR6Pn6cEy8bbsIoGJdj49vwpdO880XSfRipZsSZvIjmMhRmIYimsxeZJ5hk5RWDv2w6ZOUXwdJFVVA6fS5kjCtAP4WFXS88rQxNLQ0SeY3SEI8nun7zm1cHa2v9jGqvUc9t3VqRCodHDvl83iWaGnkYAO3cDFpNDFAzJZ1/MtjbBbn5QmSvYsb1MOW6BbjrtJBNDVhwyxgPh6DzbBPEIiEY6DkPsZEgxMIB9A+CEEBQgqKEsdkcvwt2pvugHD3IrLwiTHv4e1auH+wuN64KFp0rhhzwkq/weBAIDV68AGV+J4xqMnNvMgEi1jQywiZJWgZi61ayeNnE4ODwewYgxi0WgVDZfPwzPtsGNagXXtv8NEyeeT3ZwcpV1MvT5fUhODcgMBRKjYWXHAIQufNg4UUAIExJF4tuOINMM+SOClW460yqGBkc6r0Ah97cBo98qQhMiViLLOPSaGvrfhPjj4ndu08wGg/K7x+X/PGPN/7RUIPoCatX1PKg0eKfWpQFrR8ego11D8D5M03KCFUDFYpyGsVIGBea4Xj3m+UEaZD1hLzTFcoTkCUrLAEeHQnxff/8P76Ak2KHmvJ0c2nIMtcP77zz7oGSEndSNWKBcBdmb2vjsnt6Dr+K0Zs5mlrnNgixPyloC4pp+tx3TkDvYIIPoqS7vVBcXgVF5dNgYvl0yC2cwC+bvMISeanQFJECis+TtCRIPCBEGnip4PhlQKQgFBiCMF5tp49D34U2aDvVBO2njsN5vPNzg3++/Ok8uO+2URTlP72GUqE96AmFRt4fP37OZyKRE/2YTWoOD5ub705lZLwSPXu2Y9uMGVO0QBThWU/HS8LGRdpSiLP26Co/fPPH5/h8BNf9qcaDcO7Ye7BPtUkkIOUWFPMXqZZbWMwHa2h5OVGidACMhIchHByGi10dEA4FYATT5DtWC83JKyORAmkAkI/ScBc55DGjguUGEAghj3/KybHG5s1byW5FvWDYxPv9fudtt91T9swz/71fYz0IESBO/Ugat+b+2K/a4f3GAORhjXQbaCJTxGIwyEgKTYLAPIhpSeSF5aCsOooPyxG2yZ1s4a20KDGcsmsfwvDnRZwXohuWzjNGEHhrt2CLAQhiLfLy5iwKBPrw2K87SrrV77I4chz20ku7LnZ0dL1gaLgYpcJdqdIVANJR2yP3+qG8wA5pNkrWDWKTPFo27MmFrkSajcML+KCsl1xOclF82ucU82lYxi6Us1lIXdXC55Q5IOW/uny8OQiEJtxjKg3Hjp38ZSrFRhAE6WMzg0QQorOy5rmXL58/adOmp/YapIKExhtWK36FajM1MJyAJ37RCtEYi7PNydJAZt6Bolw8hHoLq3kSGMEKceBA79qRVCLvGJWEuBWDyMhgEANRg3ge0o1xmG4vJetnFjhZIqZX+OBrn58ApkQAILpBR0QacnNrbrTbmd7+/pYREF1ds0NgrrCwGg4d2p+6884V9LhxmdoPSR1kS42j7N+veiisVRJImYoxiCPHhnnRtzMUVKDwzW6nYNFpgLIBCopxf1sQpSALgfGhNCGv4MHqbmJmSZqE43CexuF8FQ4DX39GBz7DISdRqgJpAmAVE9ywZmUx2Ky0OQhznjPdWxw92vTk889vOxQIpLDFwZSaAzNCgCpdPp8tt6Pj4Mteb7rR/rSgrmh/SduKeCeS8dPfnoVETwKWoUXNxkM1En0koVgHSokdp9OOdxve5c/sKYqXUQafkdGRL79QcCCBD+P4LoHPGwooOIKuwsIFOXD3rfkwKhEQTExmIpHo8npn3+DxJPpQGqSPPyWGTYmrqsqD4WE7xilSx2+4Ye4daOocmhI5C4VgaLBF9VBAgkjGzCleCGB87XU6BhGcxfGIvwclxC4CQi6bqDh5hUlqE2BUp+j8UsBsBy6NN8vRgk+wwLJbxsPtN45iJglNewI94cWGx+iFhtat+8XnDx063jE8HIuopUEZuRkSqLoLCmanxWLRnH37/vzQ1KkVD5sWPP49gAvb5cFrPBrMnmobgV17euF0exgqBimoHOBgUgB1RIwDstsgjBMACBj8r1NEiTiTQcE59OFa0O0OZFlg8bwcqJ2bw4N8SRAKl5u++vDDlh8tXnzPL+325EBvb2MERt/6mZItM3OSKxJx5bS2vlFXXJz/RdNSp9HZOqM6aNVHoTDb2ROD+vf7eUAGAwlIS6FfMcJ7D+CLCwAG0HoMOzi8hGplxW6orvDC3JlZ4HLQ5m3zo0RdMPPno3qQLS1nN8ybt+IpdJEHA4F3iZZP6ctcDgiK78YzC+dmJOvkyfqnCgryzL/7JVJBwDA5O9ATAWJwOAmdvVGIkpMrVewi22eHgrw0vNtwVyr6exw3emNZ6PdN+6GpmSTU3z9U7/cvuN9uTx8MhRpIvMX0y/3LAcGX8fvnO4eGAr7bbru5+Pnn17+Qnp5WaVqSgHAGpePCq/CJE5GC0gcFX2EUikZjLatWffveHTuOtGVm0sHOzvf4byHMyl7Rr/xuvXU+d/RomGlrOx9vaTmxu7b2+lKXK22i6eByFwuzRD7bSYXgE6FCDAvMembUpUCoq6t3x+rVj67dvfvohUDAG7z11j3x5uaP9gmyRJa8vGonw3h8wWDQ29j4yjcrKyfdf8ka5ASaSEfXdlWPJmvc7JmeiLs8AVVUyT2G80s94YT9fvr0pf/FMLZANMqhN9JIJIG5VJ2xAEEIJajamZPj8cXjIc/evS+vnj694gGD96knIhm9uxGYw8KXbhqTOwoRZr2ThTgjL2WzL1uFmMimptYNixbduYlh0kMYgw1eCQiExgoEIUt+/ixHKkV7g8ER99q195XV1X3jOYfDXnDFLRBgguJXLPxRisrs2rwC82lX3hyh4eFgw/r1Gx975pnfnmZZa9DjsYW7uxuIX3ZZED4K0eTXdR7P5Gyns2aC2z1l6oEDR76PyqmLu8aEZ7bBDz9s/pHbXVNFxuLxzM0mY1u5cuU1+5UzRX6Mihs0b05OTYHXO7M8I6Nmxv79h39wLQAhAJw4cXrDZz/74AKv97qy9PQ54wHmeUlwCa7it6BXszR09WtxqYTs4TC4rFZw4Tp1MEzM+de/vnDHtGmTl/t8nlnwMVIgEGxobj61ff365956/fX3+miajUajqUh+floMlwLZVpOlwI213Y8KhEQ0zoS1rw/ssViaE88TnTYbje55yrp27RdLli+/eW5FRWmt2+2qdDod+WNpmChADCg3XLjQe6Su7mfb3377wIDFkha3WKzxZDIVc7myo70k3g9j/4mjmj4uIKS2iEjSlZULneFw0j40xNgx/mh3u22OWCxisdnsttra2d677769sqhofGF2dlYhAuOx24kDQnGxWDyM56/BgYHB7nA4GnzrrYMnNm16uSuZTCRp2pqiaWcSj/HjiUQqjoo6XlWVSjY3T2XMfn9xNYP/uIn/DwHCT5RrrTk5SVt/P2tLT0/ZHQ7ayrIYeuEslliMoR38V0AszXFWjOEk+dlMJGjW4aC4eNzKoIvNxuPRpNttZzCfsNsHk/39JJJBIpYN/B4NPib6JICQiYDR1NREbd16FkHxEF1CJ5NOSyo1YmEY8vEhQ7lwNzUyEiaAUB5PJktRFi6MB0IWC5OyWtMZmy3GdHcHyPcyyHQDf4QMH2EJ/C0Q7rb5ACcxa+QfZljJD+vJD2SEf4VALpImF3/wZBFNoBQv/0Tp/wB4VebDeUtu1AAAAABJRU5ErkJggg=="},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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"}},mh=3.2,xh=({panelRect:e})=>{const t=k(a=>a.annotations.stickers),r=k(a=>a.config.appearance.textScale),n=k(a=>a.coordSystem);if(t.length===0)return null;const s=Je(mh,r);return o.jsx("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":"stickers",children:t.map(a=>{const i=n.type==="polar"?bh(a,e):yh(a);return o.jsx(vh,{sticker:a,sizePx:s,x:i.x,y:i.y},a.id)})})},vh=({sticker:e,sizePx:t,x:r,y:n})=>{const s=ph[e.sticker];if(!s)return null;const{width:a,height:i}=Ah(s.aspectRatio,t);return o.jsx("image",{href:s.src,x:r,y:n,width:a,height:i,transform:`translate(${-a/2}, ${-i/2})`})},yh=e=>({x:u.toPercent(e.at.x),y:u.toPercent(1-e.at.y)}),bh=(e,t)=>{const r=Lt(t),n=r.radius*2;return{x:r.centerX-r.radius+e.at.x*n,y:r.centerY-r.radius+e.at.y*n}},Ah=(e,t)=>e>=1?{width:t,height:t/e}:{width:t*e,height:t},xr=4;var Sh="_1agclyl0",jh="_1agclyl1",wh="_1agclyl2",kh={inside:"_1agclyl4 _1agclyl3",outside:"_1agclyl5 _1agclyl3"},Ch={inside:"_1agclyl6 _1agclyl3",outside:"_1agclyl7 _1agclyl3"},Eh="_1agclyl8 _1agclyl3";const Co=({x:e,y:t,width:r,height:n,text:s,isRotated:a,target:i,position:l,coordType:d})=>{const h=a?`rotate(-90 ${e} ${t})`:void 0,g=Ph(i,l),p=Lh(i,l,d);return o.jsxs("g",{transform:h,children:[p&&o.jsx("rect",{className:p,x:e-r/2,y:t-n/2,width:r,height:n,rx:xr,ry:xr}),o.jsx("text",{className:g,x:e,y:t,textAnchor:"middle",dominantBaseline:"central",children:s})]})},Lh=(e,t,r)=>{if(e==="aggregate")return wh;if(t==="outside"&&r==="cartesian")return jh},Ph=(e,t)=>{switch(e){case"aggregate":return Eh;case"category":return Ch[t];case"observation":return kh[t]}},Th=({panelRect:e,formattingLocale:t})=>{const r=se(),n=oe(),s=k(O.useShallow(l=>({layers:l.layers,coordSystem:l.coordSystem,axes:l.guides.axes,numberFormat:l.config.numberFormat,parsingLocale:l.config.parsingLocale,textScale:l.config.appearance.textScale}))),a=f.useMemo(()=>Xn({textMeasurer:r,textScale:s.textScale,metrics:n}),[r,s.textScale,n]),i=f.useMemo(()=>u.buildDataLabelsContent({...s,panelRect:e,measureDataLabel:a,formattingLocale:t}),[s,e,a,t]);return o.jsx("g",{className:Sh,transform:`translate(${e.x}, ${e.y})`,"data-testid":"data-labels",children:i.labels.map((l,d)=>o.jsx(Co,{x:l.x,y:l.y,width:l.width,height:l.height,text:l.text,isRotated:l.isRotated,target:l.target,position:l.position,coordType:s.coordSystem.type},`${l.layerId}:${d}`))})},Rh=({linePath:e,arrowheadPath:t,stroke:r,strokeWidth:n})=>{const s={stroke:r,strokeWidth:n,strokeLinecap:"round",fill:"none"};return o.jsxs("g",{children:[o.jsx("path",{d:e,...s}),o.jsx("path",{d:t,...s,strokeLinejoin:"round"})]})},Bh=({x:e,y:t,text:r,lineHeight:n,paddingX:s,paddingY:a,strokeWidth:i,strokeColor:l,fontWeight:d})=>{const h=se(),{fonts:g}=oe(),m=f.useMemo(()=>h.measureText(r,{family:g.familyDefault,size:n,weight:d}),[h,r,n,d,g.familyDefault]).width+s*2,v=n+a*2;return o.jsxs("g",{style:{pointerEvents:"none"},children:[o.jsx("rect",{x:e-m/2,y:t-v/2,width:m,height:v,rx:4,fill:c.graphBackground,stroke:l,strokeWidth:i}),o.jsx("text",{x:e,y:t,dominantBaseline:"central",textAnchor:"middle",fill:c.textPrimary,style:{fontFamily:g.familyDefault,fontSize:n,fontWeight:d},children:r})]})},Mh=({panelRect:e,formattingLocale:t})=>{const r=k(O.useShallow(s=>({differenceArrows:s.annotations.differenceArrows,mainAxis:s.coordSystem.type==="cartesian"?s.coordSystem.mainAxis:"x",textScale:s.config.appearance.textScale}))),n=f.useMemo(()=>r.differenceArrows.map(s=>u.computeDifferenceArrow({arrow:s,mainAxis:r.mainAxis,panelWidth:e.width,panelHeight:e.height,textScale:r.textScale,locale:t})),[r,e.width,e.height,t]);return n.length===0?null:o.jsx("g",{transform:`translate(${e.x}, ${e.y})`,"data-testid":"difference-arrows",children:n.map(({color:s,id:a,linePath:i,arrowheadPath:l,strokeWidth:d,labelPosition:h,labelText:g,labelLineHeight:p,labelPaddingX:m,labelPaddingY:v,labelStrokeWidth:x,labelFontWeight:y})=>{const b=s??c.defaultAnnotationArrowStroke;return o.jsxs(f.Fragment,{children:[o.jsx(Rh,{linePath:i,arrowheadPath:l,stroke:b,strokeWidth:d}),o.jsx(Bh,{x:h.x,y:h.y,text:g,lineHeight:p,paddingX:m,paddingY:v,strokeWidth:x,strokeColor:b,fontWeight:y})]},a)})})},Ih=0,Nh=1.15,vr=1.15,Hh="rgba(0, 0, 0, 0.16)",yr=2,Dh=1.4,Fh=({arrow:e,fallbackColor:t,stickerOutlineColor:r,stickerOutlineColorInverse:n})=>{const s=f.useId(),a=e.color??t,i=Gh(e.color,r,n),l=e.dashArray?{strokeDasharray:e.dashArray,strokeDashoffset:e.dashOffset}:{},d=e.arrowheadExtent+e.strokeWidth+yr+vr,h={x:Math.min(e.startX,e.endX)-d,y:Math.min(e.startY,e.endY)-d,width:Math.abs(e.endX-e.startX)+2*d,height:Math.abs(e.endY-e.startY)+2*d},g=[e.linePath,e.startArrowheadPath,e.endArrowheadPath].filter(p=>p.length>0).join(" ");return o.jsxs("g",{children:[e.hasStickerStyle&&o.jsx("defs",{children:o.jsx("filter",{id:s,filterUnits:"userSpaceOnUse",...h,children:o.jsx("feDropShadow",{dx:Ih,dy:Nh,stdDeviation:vr,floodColor:Hh})})}),o.jsxs("g",{filter:e.hasStickerStyle?`url(#${s})`:void 0,children:[e.hasStickerStyle&&o.jsx("path",{d:g,stroke:i,strokeWidth:e.strokeWidth+2*yr,strokeLinecap:"round",fill:"none"}),o.jsx("path",{d:e.linePath,stroke:a,strokeWidth:e.strokeWidth,strokeLinecap:"round",fill:"none",...l}),e.startArrowheadPath.length>0&&o.jsx("path",{d:e.startArrowheadPath,stroke:a,strokeWidth:e.strokeWidth,strokeLinecap:"round",fill:"none"}),e.endArrowheadPath.length>0&&o.jsx("path",{d:e.endArrowheadPath,stroke:a,strokeWidth:e.strokeWidth,strokeLinecap:"round",fill:"none"})]})]})},Gh=(e,t,r)=>{if(e===null)return r;try{return gt.getContrast(e,t)<Dh?r:t}catch{return r}},Oh=({panelRect:e})=>{const{themeValues:t}=Ht(),r=k(s=>s.annotations.freeformArrows),n=f.useMemo(()=>r.map(s=>u.computeFreeformArrow({arrow:s,panelWidth:e.width,panelHeight:e.height})).filter(s=>s!==null),[r,e.width,e.height]);return n.length===0?null:o.jsx("g",{transform:`translate(${e.x}, ${e.y})`,"data-testid":"freeform-arrows",children:n.map(s=>o.jsx(Fh,{arrow:s,fallbackColor:c.defaultAnnotationArrowStroke,stickerOutlineColor:t.arrowAnnotationStickerOutlineColor,stickerOutlineColorInverse:t.arrowAnnotationStickerOutlineColorInverse},s.id))})},Wh=({edge:e,position:t,labelRotation:r,label:n})=>{const{tickLabelOffset:s}=oe(),a=u.toPercent(t),i={style:{font:c.fontTickLabel},fill:c.textSecondary},l=r!==0&&(e==="top"||e==="bottom"),d=e==="top";return l?o.jsx("svg",{x:a,y:d?"100%":0,style:{overflow:"visible"},children:o.jsx("text",{...Yh(d,s,r),...i,children:n})}):o.jsx("text",{...zh(e,a,s),...i,children:n})},zh=(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"}}},Yh=(e,t,r)=>{const n=e?-t:t;return{x:0,y:n,textAnchor:e?"start":"end",dominantBaseline:"central",transform:`rotate(${r}, 0, ${n})`}},Vh=({formattedAxis:e,rect:t})=>{const r=e.position==="bottom"||e.position==="top";return o.jsxs("svg",{x:t.x,y:t.y,width:t.width,height:t.height,style:{overflow:"visible"},children:[tn,e.ticks.map((n,s)=>{const a=n.formattedLabel,i=r?n.position:1-n.position,l=Uh(e.position,i,t);return o.jsxs("g",{children:[e.ticksVisible&&o.jsx("line",{...l,stroke:c.gridLineColor,strokeWidth:1}),o.jsx(Wh,{edge:e.position,position:i,labelRotation:e.labelRotation,label:a})]},s)})]})},Uh=(e,t,r)=>{const n=u.toPercent(t);switch(e){case"bottom":return{x1:n,y1:0,x2:n,y2:Ie};case"top":return{x1:n,y1:r.height,x2:n,y2:r.height-Ie};case"left":return{x1:r.width,y1:n,x2:r.width-Ie,y2:n};case"right":return{x1:0,y1:n,x2:Ie,y2:n}}},Xh=({axes:e,rects:t})=>o.jsx(o.Fragment,{children:e.map(r=>{const n=t[r.position];if(!n||!r.isVisible)return null;const s=Kh(r.position,n);return o.jsxs("g",{transform:`translate(${n.x}, ${n.y})`,children:[tn,o.jsx("text",{style:{font:c.fontAxisLabel},fill:c.textPrimary,...s,children:r.label})]},`axis-label-${r.position}`)})}),Kh=(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},Qh=({formattedAxes:e,tickRects:t})=>o.jsx(o.Fragment,{children:e.map(r=>{if(r.geometry!=="linear")return null;const n=t[r.position];return!n||!r.isVisible?null:o.jsx(Vh,{formattedAxis:r,rect:n},r.scaleAestheticKey)})}),qh=({formattedAxes:e,labelRects:t})=>{const r=e.filter(n=>n.geometry==="linear");return o.jsx(Xh,{axes:r,rects:t})},Eo={strokeDashoffset:"0",strokeLinecap:"round"},Lo=e=>{switch(e){case"dashed":return c.gridLineDash;case"dotted":return c.gridLineDotted;case"solid":return}},Po=({axes:e,panel:t,panelFrameRect:r,panelRect:n})=>{const s=n.x-r.x,a=n.y-r.y;return o.jsx("svg",{"data-testid":"grid",x:r.x,y:r.y,width:r.width,height:r.height,style:{overflow:"visible"},children:e.map(i=>{if(i.geometry!=="linear"||!i.gridVisible)return null;const l=i.position==="bottom"||i.position==="top",d=Lo(i.gridLineStyle),h=i.gridLineWidth??c.gridLineWidth;return o.jsx("g",{children:i.ticks.map((g,p)=>{const m=Jh(l,g.position);if(m!==null&&t.border[m].isVisible)return null;const v=l?g.position:1-g.position;let x;if(l){const y=v*n.width+s;x={x1:y,y1:0,x2:y,y2:"100%"}}else{const y=v*n.height+a;x={x1:0,y1:y,x2:"100%",y2:y}}return o.jsx("line",{...x,...Eo,strokeDasharray:d,strokeWidth:h,stroke:c.gridLineColor},p)})},i.scaleAestheticKey)})})},Jh=(e,t)=>t<=0?e?"left":"bottom":t>=1?e?"right":"top":null,Zh=({panel:e,panelFrameRect:t})=>{if(k(s=>s.coordSystem.type==="polar"))return null;const n=u.computePanelBorderPaths(e.border,{x:0,y:0,width:t.width,height:t.height},e.cornerRadius);return n.length===0?null:o.jsx("svg",{"data-testid":"panel-border",x:t.x,y:t.y,width:t.width,height:t.height,style:{overflow:"visible"},children:n.map((s,a)=>o.jsx("path",{d:_h(s.segments),fill:"none",stroke:s.color??c.gridLineColor,strokeDasharray:Lo(s.lineStyle),strokeWidth:s.lineWidth??c.gridLineWidth,...Eo},a))})},_h=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(" "),To=1e-9,Ro=(e,t)=>{const r=k(d=>d.coordSystem);if(r.type!=="polar")return null;const n=t.find(d=>d.geometry==="circular");if(!n)return null;const{innerRadius:s,startAngle:a,spokeRotation:i}=r,l=Lt(e);return l.radius<=0?null:{circle:l,circularAxis:n,radialAxis:t.find(d=>d.geometry==="radial"),innerRadius:s,startAngle:a,angleFor:d=>u.positionToAngle(d,a,i),radiusNormFor:d=>s+d*(1-s)}},$h=3,eg=16,tg=({formattedAxes:e,panelRect:t})=>{const r=Ro(t,e);if(!r)return null;const{circle:n,circularAxis:s,radialAxis:a,startAngle:i,angleFor:l,radiusNormFor:d}=r,h=rg(a,d,n.radius);return o.jsxs("svg",{x:t.x,y:t.y,width:t.width,height:t.height,overflow:"visible","data-testid":"polar-axis-ticks",children:[a?.isVisible&&h.map(({tick:g,radiusNorm:p},m)=>{const v=q(i,p,n);return o.jsx("text",{x:v.x,y:v.y,textAnchor:"middle",dominantBaseline:"central",style:{font:c.fontTickLabel,paintOrder:"stroke"},stroke:c.graphBackground,strokeWidth:$h,fill:c.textSecondary,children:g.formattedLabel},`radial-label-${m}`)}),s.isVisible&&s.ticks.map((g,p)=>{if(g.position>=1-To)return null;const m=l(g.position),v=q(m,(n.radius+u.POLAR_RIM_LABEL_GAP_PX)/n.radius,n);return o.jsx("text",{x:v.x,y:v.y,textAnchor:ng(m),dominantBaseline:"central",style:{font:c.fontTickLabel},fill:c.textSecondary,children:g.formattedLabel},`rim-label-${p}`)})]})},rg=(e,t,r)=>{if(!e)return[];const n=[];let s=Number.NEGATIVE_INFINITY;for(const a of e.ticks){const i=t(a.position);if(i<=0)continue;const l=i*r;l-s<eg||(n.push({tick:a,radiusNorm:i}),s=l)}return n},ng=e=>{const t=Math.sin(e);return Math.abs(t)<.01?"middle":t>0?"start":"end"},og=({formattedAxes:e,panelRect:t})=>{const r=Ro(t,e);if(!r)return null;const{circle:n,circularAxis:s,radialAxis:a,innerRadius:i,angleFor:l,radiusNormFor:d}=r;return o.jsxs("svg",{x:t.x,y:t.y,width:t.width,height:t.height,overflow:"visible","data-testid":"polar-grid",children:[a?.gridVisible&&a.ticks.map((h,g)=>{const p=d(h.position)*n.radius;return p<=0||h.position>=1?null:o.jsx("circle",{cx:n.centerX,cy:n.centerY,r:p,fill:"none",stroke:c.gridLineColor,strokeWidth:c.gridLineWidth},`ring-${g}`)}),a?.gridVisible&&o.jsx("circle",{cx:n.centerX,cy:n.centerY,r:n.radius,fill:"none",stroke:c.gridLineColor,strokeWidth:c.gridLineWidth}),s.gridVisible&&s.ticks.map((h,g)=>{if(h.position>=1-To)return null;const p=l(h.position),m=q(p,i,n),v=q(p,1,n);return o.jsx("line",{x1:m.x,y1:m.y,x2:v.x,y2:v.y,stroke:c.gridLineColor,strokeWidth:c.gridLineWidth},`spoke-${g}`)})]})},sg={fill:"none",contain:"xMidYMid meet",cover:"xMidYMid slice"},br=({panelRect:e,zOrder:t})=>{const n=k(s=>s.annotations.images).filter(s=>s.zOrder===t);return n.length===0?null:o.jsx("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":`image-annotations-${t}`,children:n.map(({id:s,src:a,region:i,fit:l,opacity:d})=>o.jsx("image",{href:a,x:u.toPercent(i.x),y:u.toPercent(1-i.y-i.height),width:u.toPercent(i.width),height:u.toPercent(i.height),preserveAspectRatio:sg[l],opacity:d},s))})},Ar=({panelRect:e,zOrder:t})=>{const n=k(s=>s.annotations.shapes).filter(s=>s.zOrder===t);return n.length===0?null:o.jsx("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":`shapes-${t}`,children:n.map(({id:s,region:a,fillColor:i,fillOpacity:l,strokeWidth:d,strokeColor:h})=>o.jsx("rect",{x:u.toPercent(a.x),y:u.toPercent(1-a.y-a.height),width:u.toPercent(a.width),height:u.toPercent(a.height),fill:i,fillOpacity:l,stroke:d>0?h??c.defaultAnnotationShapeStroke:"none",strokeWidth:d},s))})};var ag="_120wioc0";const ig=({panelRect:e})=>{const t=k(r=>r.annotations.textAnnotations);return t.length===0?null:o.jsx("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":"text-annotations",children:t.map(r=>o.jsx("foreignObject",{x:u.toPercent(r.at.x),y:u.toPercent(1-r.at.y),width:u.toPercent(r.width),height:u.toPercent(r.at.y),overflow:"visible",children:o.jsx("div",{className:ag,style:lg(r.backgroundColor,r.backgroundColorStyle),children:o.jsx(Ve,{content:r.content})})},r.id))})},lg=(e,t)=>e===null||e==="transparent"?{color:c.textPrimary}:t==="fade"?{color:c.textPrimary,backgroundColor:xt(e,c.grey100,.5),boxShadow:`0 0 0 1.5px ${xt(e,c.grey0,.2)}`}:{color:c.textPrimary,backgroundColor:e,boxShadow:`0 0 0 1.5px ${qe(e,.1)}`};var cg="usd3ea0",dg="usd3ea1";const ug=({layer:e,coordSystem:t,isAnimated:r,isDimmed:n,highlightStyle:s,formattingLocale:a})=>{const l=ee()(e.geom,t.type);if(l===null)return null;const d=_e(l.render);return d.overlay?null:o.jsx("g",{className:F({[dg]:n&&s==="desaturate",[cg]:n&&s==="dim"}),children:d.fn({layer:e,coordSystem:t,isAnimated:r,formattingLocale:a})})};function hg({renderer:e,layer:t,coordSystem:r,candidates:n}){if(e?.getOverlayAnchor===void 0||n.length===0)return[];const s=[];for(const{observation:a,observationIndex:i}of n){const l=e.getOverlayAnchor({layer:t,coordSystem:r,observation:a});l!==null&&s.push({observation:a,observationIndex:i,anchor:l})}return s}const gg=4,fg=({renderer:e,layer:t,matchedLayer:r,overlayCandidates:n,coordSystem:s,isAnimated:a,panelRect:i,formattingLocale:l})=>{const{numberFormat:d,textScale:h}=k(O.useShallow(S=>({numberFormat:S.config.numberFormat,textScale:S.config.appearance.textScale}))),g=f.useMemo(()=>hg({renderer:e,layer:t,coordSystem:s,candidates:n}),[e,t,s,n]),p=f.useMemo(()=>u.createSegmentYReader(t),[t]),m=f.useMemo(()=>u.buildLayerYValueFormatter({layer:t,numberFormat:d,locale:l}),[d,t,l]),{fonts:v}=oe(),x=f.useMemo(()=>Y(v.dataLabel,h),[v.dataLabel,h]);if(e===null||r===null&&g.length===0)return null;const y=_e(e.render);let b=null;if(r&&!y.overlay){const S={layer:r,coordSystem:s,isAnimated:a,formattingLocale:l,panelRect:i};b=e.renderHighlight?e.renderHighlight(S):y.fn(S)}return o.jsxs(o.Fragment,{children:[b,g.map(({observation:S,observationIndex:C,anchor:E})=>o.jsx(pg,{observation:S,anchor:E,panelRect:i,readSegmentY:p,formatYValue:m,labelFont:x},mg(S,C)))]})},pg=({observation:e,anchor:t,panelRect:r,readSegmentY:n,formatYValue:s,labelFont:a})=>{const i=se(),l=u.toViewBoxX(t.x),d=u.toViewBoxY(t.y),h=(u.getSize(e)??Ir)/2,g=n(e),p=u.isDefined(g)?s(g,e):null,m=f.useMemo(()=>{if(p===null)return null;const v=i.measureText(p,a);return{width:v.width+u.DATA_LABEL_PADDING_X_PX*2,height:v.height+u.DATA_LABEL_PADDING_Y_PX*2}},[p,i,a]);return o.jsxs(o.Fragment,{children:[o.jsx("circle",{"data-testid":"highlight-overlay-dot",cx:u.toPercent(l),cy:u.toPercent(d),r:h,fill:u.getColor(e)}),p!==null&&m!==null&&o.jsx(Co,{x:l*r.width,y:d*r.height-h-gg-m.height/2,width:m.width,height:m.height,text:p,isRotated:!1,target:"observation",position:"outside",coordType:"cartesian"})]})},mg=(e,t)=>{const r=e[u.GROUP_VARIABLES.group];return`${String(r??"")}\0${t}`};var Bo="to1jkx0",xg="to1jkx1";const vg=({shouldAnimate:e,panelRect:t,formattingLocale:r})=>{const{layers:n,coordSystem:s,highlightStyle:a}=k(O.useShallow(i=>({layers:i.layers,coordSystem:i.coordSystem,highlightStyle:i.config.appearance.highlightStyle})));return o.jsx("svg",{x:t.x,y:t.y,width:t.width,height:t.height,className:Bo,"data-testid":"geom-layers",children:n.map(i=>o.jsx(Ag,{layer:i,coordSystem:s,highlightStyle:a,shouldAnimate:e,panelRect:t,formattingLocale:r},`${i.id}-${yg(s)}`))})},yg=e=>e.type==="cartesian"?`cartesian-${e.mainAxis}`:e.type,bg=e=>{if(e.geom!=="rule")return xg},Ag=({layer:e,coordSystem:t,highlightStyle:r,shouldAnimate:n,panelRect:s,formattingLocale:a})=>{const i=ee(),l=f.useMemo(()=>i(e.geom,t.type),[i,e,t]),d=e.highlight,h={layer:e,coordSystem:t,isAnimated:n,formattingLocale:a},g=l?_e(l.render):null,p=e.spatialKind==="render-hit-test";return o.jsxs("g",{className:bg(e),children:[o.jsx(ug,{layer:e,coordSystem:t,isAnimated:n,isDimmed:d?.composition.isDimmed??!1,highlightStyle:r,formattingLocale:a}),p&&!g?.overlay&&l?.hitTest&&o.jsx(Ni,{hitTest:l.hitTest,input:h}),p&&g?.overlay&&o.jsx(Oi,{render:g.fn,input:h}),d!==null&&o.jsx(fg,{renderer:l,layer:e,matchedLayer:d.composition.matchedLayer,overlayCandidates:d.composition.overlayCandidates,coordSystem:t,isAnimated:n,panelRect:s,formattingLocale:a})]})},Sg=({layer:e,coordSystem:t,panelRect:r})=>{const{primary:n,group:s,related:a}=Ee(O.useShallow(h=>({primary:h.hover.primary,group:h.hover.group,related:h.hover.related}))),i=ee();if(n===null)return null;const l=i(e.geom,t.type);if(l===null||$e(l))return null;const d=a.get(e.id)??[];return n.layerId===e.id?l.renderHover({layer:e,coordSystem:t,primary:n,group:s,related:d,panelRect:r}):d.length===0?null:l.renderHoverCompanions({layer:e,primary:n,related:d})},jg=({panelRect:e})=>{const{layers:t,coordSystem:r}=k(O.useShallow(n=>({layers:n.layers,coordSystem:n.coordSystem})));return t.length===0?null:o.jsx("svg",{x:e.x,y:e.y,width:e.width,height:e.height,className:Bo,"data-testid":"hovered-geoms",children:t.map(n=>o.jsx(Sg,{layer:n,coordSystem:r,panelRect:e},n.id))})};var wg="_17uhij30";const kg=({formattedAxes:e,panelGuide:t,plotRect:r,panelFrameRect:n,panelRect:s,axisRects:a,axisLabelRects:i,shouldAnimate:l,formattingLocale:d})=>{const h=f.useRef(null);$u(h);const g=$("Grid",Po),p=$("AxisTicks",Qh),m=$("AxisLabel",qh),v=f.useMemo(()=>wt(n,r),[n,r]),x=f.useMemo(()=>wt(s,r),[s,r]),y=f.useMemo(()=>Sr(a,r),[a,r]),b=f.useMemo(()=>Sr(i,r),[i,r]);return o.jsxs("svg",{ref:h,className:wg,width:r.width,height:r.height,style:{transform:`translate(${r.x}px, ${r.y}px)`},"data-testid":"plot",children:[o.jsx(pr,{panelRect:x}),o.jsx(g,{axes:e,panel:t,panelFrameRect:v,panelRect:x}),o.jsx(p,{formattedAxes:e,tickRects:y}),o.jsx(m,{formattedAxes:e,labelRects:b}),o.jsx(og,{formattedAxes:e,panelRect:x}),o.jsx(pr,{panelRect:x}),o.jsx(Ar,{panelRect:x,zOrder:"background"}),o.jsx(br,{panelRect:x,zOrder:"background"}),o.jsx(vg,{shouldAnimate:l,panelRect:x,formattingLocale:d}),o.jsx(Zh,{panel:t,panelFrameRect:v}),o.jsx(jg,{panelRect:x}),o.jsx(tg,{formattedAxes:e,panelRect:x}),o.jsx(Th,{panelRect:x,formattingLocale:d}),o.jsx(Mh,{panelRect:x,formattingLocale:d}),o.jsx(Ar,{panelRect:x,zOrder:"foreground"}),o.jsx(br,{panelRect:x,zOrder:"foreground"}),o.jsx(Oh,{panelRect:x}),o.jsx(ig,{panelRect:x}),o.jsx(xh,{panelRect:x}),o.jsx(_u,{panelRect:x}),o.jsx(fh,{panelRect:x})]})},wt=(e,t)=>({x:e.x-t.x,y:e.y-t.y,width:e.width,height:e.height}),Sr=(e,t)=>{const r={};for(const[n,s]of Object.entries(e))r[n]=wt(s,t);return r},Cg=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:jr(t,"width"),height:jr(r,"height")}},jr=(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},Eg=({sizing:e,onResize:t,children:r})=>{const n=On({onResize:t});if(e.mode==="keepAspectRatio"){const{intrinsicSize:a,canRender:i,outerStyles:l,innerStyles:d}=Lg(e,n.width,!n.isDefault);return o.jsx("div",{ref:n.setElement,style:l,"data-testid":"graph-sizer",children:i&&o.jsx("div",{style:d,children:r(a)})})}if(e.mode==="fixed")return o.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 s=!n.isDefault&&n.width>0&&n.height>0;return o.jsx("div",{ref:n.setElement,style:{width:"100%",height:"100%"},"data-testid":"graph-sizer",children:s&&r({width:n.width,height:n.height})})},Lg=(e,t,r)=>{const n=Cg(e),s=t>0&&n.width>0?t/n.width:1;return{intrinsicSize:n,canRender:r,outerStyles:{width:"100%",...r?{height:n.height*s}:{aspectRatio:`${n.width} / ${n.height}`}},innerStyles:{transformOrigin:"top left",transform:`scale(${s})`,width:n.width,height:n.height}}},Pg={mode:"responsive"},ht={headerSize:{width:0,height:0},footerSize:{width:0,height:0}},Tg=()=>{const[e,t]=f.useState(null),[r,n]=f.useState(null),[s,a]=f.useState(ht);return f.useEffect(()=>{const i=()=>{const d=e?{width:e.offsetWidth,height:e.offsetHeight}:ht.headerSize,h=r?{width:r.offsetWidth,height:r.offsetHeight}:ht.footerSize;a(g=>Rg(g,{headerSize:d,footerSize:h})?{headerSize:d,footerSize:h}:g)};i();const l=new ResizeObserver(i);return e&&l.observe(e),r&&l.observe(r),()=>l.disconnect()},[e,r]),{headerRef:t,footerRef:n,measurements:s}},Rg=(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,Bg=({appearance:e,isEditable:t,style:r,children:n})=>{const{theme:s,themeClass:a,inlineVarsStyle:i}=Ht(),l=Jl(e.border),d=Math.max(0,e.cornerRadius),h=d===0?0:d+l,g=f.useMemo(()=>{const v={...r,borderRadius:`${h}px`,...i},x=ql(e.border,s);return x!==null&&(v.background=x),v},[r,h,i,e.border,s]),p=f.useMemo(()=>({inset:`${l}px`,borderRadius:`${d}px`}),[l,d]),m=t&&e.background.type==="solid"&&e.background.color==="transparent";return o.jsx("div",{"data-testid":"graph-wrapper",className:F(ec,a),style:g,children:o.jsx("div",{"data-testid":"graph-inner",className:F(rc,{[nc]:m}),style:p,children:n})})},Mg=({slots:e,sizing:t=Pg,onResize:r,...n})=>{const{formattingLocale:s}=ce(),a=k(i=>i.config.parsingLocale);return o.jsx(Dn,{children:o.jsx(bn,{children:o.jsx(Z.IntlProvider,{locale:s??a,children:o.jsx(Sa,{slots:e,children:o.jsx(Eg,{sizing:t,onResize:r,children:({width:i,height:l})=>o.jsx(Ig,{width:i,height:l,...n})})})})})})},Ig=({width:e,height:t,isAnimated:r,showTooltips:n=!0,mode:s="readonly"})=>{const a=Z.useI18n(),{axes:i,panel:l,legends:d,layers:h,numberFormat:g,parsingLocale:p,appearance:m,annotations:v,coordSystem:x,headline:y,headlineConfig:b,content:S,overflowStrategy:C,layoutConfig:E}=k(O.useShallow(D=>({axes:D.guides.axes,panel:D.guides.panel,legends:D.guides.legends,layers:D.layers,numberFormat:D.config.numberFormat,parsingLocale:D.config.parsingLocale,appearance:D.config.appearance,annotations:D.annotations,coordSystem:D.coordSystem,headline:D.guides.headline,headlineConfig:D.config.headline,content:D.config.content,overflowStrategy:D.config.panel.overflow,layoutConfig:D.config.layout}))),P=w.useReducedMotion(),{headerRef:T,footerRef:H,measurements:A}=Tg(),{formattingLocale:L,theme:Pe,themeOverrides:tt}=ce(),Te=f.useMemo(()=>mn(Pe,tt),[Pe,tt]),Mo=$("Header",yo),Io=$("Footer",vo),No=$("Legend",zu),Ho=$("Headline",tu),Ft=f.useMemo(()=>u.formatLegends({legends:d,numberFormat:g,parsingLocale:p,formattingLocale:L}),[d,g,p,L]),ye=f.useMemo(()=>u.formatHeadline({headline:y,show:b.show,numberFormat:g,parsingLocale:p,formattingLocale:L,t:a}),[y,b.show,g,p,L,a]),Do=se(),rt=m.border.type==="none"?0:m.border.width,nt=f.useMemo(()=>({width:Math.max(0,e-2*rt),height:Math.max(0,t-2*rt)}),[e,t,rt]),Re=f.useMemo(()=>ye?{formatted:ye,size:b.size,position:b.position,innerRadius:x.type==="polar"?x.innerRadius:0}:void 0,[ye,b.size,b.position,x]),Fo=ja(),Be=Ol(Do,m.textScale,Te,Fo),be=Wl({measurer:Be,axes:i,numberFormat:g,parsingLocale:p,formattedLegends:Ft,containerSize:nt,externalMeasurements:A,headline:Re,formattingLocale:L,annotations:v,layers:h,coordSystem:x,textScale:m.textScale,overflowStrategy:C,layout:E}),Me=f.useMemo(()=>!be||!Re||!Be?null:u.resolveHeadlinePlacement({headline:Re,layout:be.layout,containerSize:nt,measurer:Be,itemGap:Te.headlineItemGap}),[be,Re,Be,nt,Te.headlineItemGap]);if(!be)return null;const{layout:re,formattedAxes:Go}=be;return o.jsx($n,{theme:Pe,themeOverrides:tt,appearance:m,children:o.jsx(na,{metrics:Te,children:o.jsxs(Bg,{appearance:m,isEditable:s==="editable",style:{width:"100%",height:"100%"},children:[o.jsx(Mo,{ref:T,headerRect:re.header,mode:s,title:S.title,isTitleVisible:S.isTitleVisible,subtitle:S.subtitle,isSubtitleVisible:S.isSubtitleVisible}),o.jsx(kg,{formattedAxes:Go,panelGuide:l,plotRect:re.plot,panelFrameRect:re.panelFrame,panelRect:re.panel,axisRects:re.axes,axisLabelRects:re.axisLabels,shouldAnimate:r??!P,formattingLocale:L??p}),o.jsx(Io,{ref:H,footerRect:re.footer,mode:s,caption:S.caption,isCaptionVisible:S.isCaptionVisible,source:S.source,isSourceVisible:S.isSourceVisible}),o.jsx(No,{formattedLegends:Ft,rects:re.legends,textScale:m.textScale}),ye&&Me&&o.jsx(Ho,{headline:ye,rect:Me.rect,resolvedSize:Me.resolvedSize,visibleItemCount:Me.visibleItemCount}),n&&o.jsx(jl,{})]})})})};exports.CanvasTextMeasurer=Ze;exports.DefaultFooter=vo;exports.DefaultGrid=Po;exports.DefaultHeader=yo;exports.DefaultSwatch=wn;exports.DefaultTooltip=Un;exports.DevToolsPanel=al;exports.GraphErrorBoundary=Mn;exports.GraphErrorPanel=bt;exports.GraphProvider=Nn;exports.GraphRenderer=Mg;exports.HoverProvider=Dn;exports.TextMeasurerProvider=bn;exports.ThemeProvider=$n;exports.UnitSpaceSvg=zi;exports.createGraphyKit=Ri;exports.darkTheme=_n;exports.defineGeomRenderer=ti;exports.lightTheme=Zn;exports.lightenCss=Rt;exports.useCompiledSelector=k;exports.useGeomHitTest=Fn;exports.useGeomHover=zn;exports.useGraphCommandDispatcher=Mt;exports.useHoverState=Ee;exports.usePanelScreenRect=Wn;exports.useTextMeasurer=se;exports.vars=c;
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),u=require("@graphysdk/viz-engine"),f=require("react"),Se=require("zustand"),L=require("motion/react"),So=require("d3-interpolate-path"),V=require("zustand/react/shallow"),st=require("color2k"),mt=require("zustand/vanilla"),gr=require("react-dom"),H=require("clsx"),K=require("@graphysdk/i18n/react"),R=require("@floating-ui/react-dom"),jo=require("@tiptap/core"),fr=require("@tiptap/extension-bold"),at=require("@tiptap/extension-document"),pr=require("@tiptap/extension-hard-break"),mr=require("@tiptap/extension-heading"),xr=require("@tiptap/extension-italic"),vr=require("@tiptap/extension-link"),yr=require("@tiptap/extension-text"),Ar=require("@tiptap/extension-text-align"),he=require("@tiptap/extension-text-style"),br=require("@tiptap/extension-underline"),Ne=require("@tiptap/extensions"),wo=require("@tiptap/extension-paragraph"),xt=require("@tiptap/react"),P=require("@base-ui/react/toolbar"),ue=require("@base-ui/react/tooltip"),Eo=require("@vanilla-extract/dynamic"),B=require("@base-ui/react/popover"),Tt=require("react-colorful"),G=require("@base-ui/react/menu"),Co=require("@base-ui/react/toggle");typeof window<"u"&&(window.__GRAPHY_SDK__??={},window.__GRAPHY_SDK__.reactRenderer="0.0.1-alpha.6");var Sr=["canvasDefault","canvasBlue","canvasCyan","canvasGreen","canvasYellow","canvasOrange","canvasRed","canvasPink","canvasPurple","canvasGray","canvasInverse"],c={white:"var(--graphy-white)",black:"var(--graphy-black)",transparent:"var(--graphy-transparent)",grey100:"var(--graphy-grey-100)",grey95:"var(--graphy-grey-95)",grey90:"var(--graphy-grey-90)",grey85:"var(--graphy-grey-85)",grey80:"var(--graphy-grey-80)",grey75:"var(--graphy-grey-75)",grey70:"var(--graphy-grey-70)",grey60:"var(--graphy-grey-60)",grey50:"var(--graphy-grey-50)",grey0:"var(--graphy-grey-0)",greyGradient80:"var(--graphy-grey-gradient-80)",green60:"var(--graphy-green-60)",green50:"var(--graphy-green-50)",red60:"var(--graphy-red-60)",red50:"var(--graphy-red-50)",amber70:"var(--graphy-amber-70)",amber50:"var(--graphy-amber-50)",amber40:"var(--graphy-amber-40)",amber30:"var(--graphy-amber-30)",blue80:"var(--graphy-blue-80)",blue60:"var(--graphy-blue-60)",purple50:"var(--graphy-purple-50)",purple30:"var(--graphy-purple-30)",brand:"var(--graphy-brand)",success:"var(--graphy-success)",warning:"var(--graphy-warning)",alert:"var(--graphy-alert)",textPrimary:"var(--graphy-text-primary)",textSecondary:"var(--graphy-text-secondary)",textDisabled:"var(--graphy-text-disabled)",iconPrimary:"var(--graphy-icon-primary)",iconSecondary:"var(--graphy-icon-secondary)",iconStickerBackground:"var(--graphy-icon-sticker-background)",border100:"var(--graphy-border-100)",border50:"var(--graphy-border-50)",border10:"var(--graphy-border-10)",sunkenBackground:"var(--graphy-sunken-background)",defaultBackground:"var(--graphy-default-background)",raisedBackground:"var(--graphy-raised-background)",overlayBackground:"var(--graphy-overlay-background)",overlayBorderGradient:"var(--graphy-overlay-border-gradient)",graphBackground:"var(--graphy-graph-background)",gridLineColor:"var(--graphy-grid-line-color)",originLineColor:"var(--graphy-origin-line-color)",targetLineColor:"var(--graphy-target-line-color)",targetLineMarkerColor:"var(--graphy-target-line-marker-color)",targetLineLabelTextColor:"var(--graphy-target-line-label-text-color)",legendBackground:"var(--graphy-legend-background)",legendBorderColor:"var(--graphy-legend-border-color)",legendFocusOutlineColor:"var(--graphy-legend-focus-outline-color)",legendTextColor:"var(--graphy-legend-text-color)",dimmedSeriesLabelTextColor:"var(--graphy-dimmed-series-label-text-color)",dimmedSeriesLabelLineColor:"var(--graphy-dimmed-series-label-line-color)",trendNegativeColor:"var(--graphy-trend-negative-color)",trendPositiveColor:"var(--graphy-trend-positive-color)",trendNeutralColor:"var(--graphy-trend-neutral-color)",defaultAnnotationArrowStroke:"var(--graphy-default-annotation-arrow-stroke)",defaultAnnotationShapeStroke:"var(--graphy-default-annotation-shape-stroke)",defaultAnnotationShapeFill:"var(--graphy-default-annotation-shape-fill)",arrowAnnotationStickerOutlineColor:"var(--graphy-arrow-annotation-sticker-outline-color)",arrowAnnotationStickerOutlineColorInverse:"var(--graphy-arrow-annotation-sticker-outline-color-inverse)",annotationFrameBorderColor:"var(--graphy-annotation-frame-border-color)",annotationMenuTriggerIconColor:"var(--graphy-annotation-menu-trigger-icon-color)",heatmapEmptyTileBackground:"var(--graphy-heatmap-empty-tile-background)",dataLabelOutsideBackground:"var(--graphy-data-label-outside-background)",graphPadding:"var(--graphy-graph-padding)",gridLineWidth:"var(--graphy-grid-line-width)",gridLineDash:"var(--graphy-grid-line-dash)",gridLineDotted:"var(--graphy-grid-line-dotted)",tooltipBorderRadius:"var(--graphy-tooltip-border-radius)",tooltipBorderWidth:"var(--graphy-tooltip-border-width)",tooltipPaddingBlock:"var(--graphy-tooltip-padding-block)",tooltipPaddingInline:"var(--graphy-tooltip-padding-inline)",tooltipRowGap:"var(--graphy-tooltip-row-gap)",tooltipShadow:"var(--graphy-tooltip-shadow)",tickLabelOffset:"var(--graphy-tick-label-offset)",legendItemGap:"var(--graphy-legend-item-gap)",legendSwatchGap:"var(--graphy-legend-swatch-gap)",legendSwatchWidth:"var(--graphy-legend-swatch-width)",legendSwatchHeight:"var(--graphy-legend-swatch-height)",legendPillPaddingInline:"var(--graphy-legend-pill-padding-inline)",legendPillPaddingBlock:"var(--graphy-legend-pill-padding-block)",legendPillBorderWidth:"var(--graphy-legend-pill-border-width)",headlineRowGap:"var(--graphy-headline-row-gap)",headlineItemGap:"var(--graphy-headline-item-gap)",canvasDefault:"var(--graphy-canvas-default)",canvasBlue:"var(--graphy-canvas-blue)",canvasCyan:"var(--graphy-canvas-cyan)",canvasGreen:"var(--graphy-canvas-green)",canvasYellow:"var(--graphy-canvas-yellow)",canvasOrange:"var(--graphy-canvas-orange)",canvasRed:"var(--graphy-canvas-red)",canvasPink:"var(--graphy-canvas-pink)",canvasPurple:"var(--graphy-canvas-purple)",canvasGray:"var(--graphy-canvas-gray)",canvasInverse:"var(--graphy-canvas-inverse)",elevationXs:"var(--graphy-elevation-xs)",elevationSm:"var(--graphy-elevation-sm)",elevationMd:"var(--graphy-elevation-md)",elevationLg:"var(--graphy-elevation-lg)",radiiXs:"var(--graphy-radii-xs)",radiiSm:"var(--graphy-radii-sm)",radiiMd:"var(--graphy-radii-md)",radiiLg:"var(--graphy-radii-lg)",spaceXxs:"var(--graphy-space-xxs)",spaceXs:"var(--graphy-space-xs)",spaceSm:"var(--graphy-space-sm)",spaceMd:"var(--graphy-space-md)",spaceLg:"var(--graphy-space-lg)",spaceXl:"var(--graphy-space-xl)",zIndexToolbar:"var(--graphy-z-index-toolbar)",zIndexToolbarTooltip:"var(--graphy-z-index-toolbar-tooltip)",zIndexToolbarPopover:"var(--graphy-z-index-toolbar-popover)",toolbarBackgroundColor:"var(--graphy-toolbar-background-color)",toolbarButtonBackgroundColor:"var(--graphy-toolbar-button-background-color)",toolbarButtonBackgroundColorHovered:"var(--graphy-toolbar-button-background-color-hovered)",toolbarButtonBackgroundColorSelected:"var(--graphy-toolbar-button-background-color-selected)",toolbarSeparatorColor:"var(--graphy-toolbar-separator-color)",tooltipBackground:"var(--graphy-tooltip-background)",tooltipBorderColor:"var(--graphy-tooltip-border-color)",tooltipHeadingTextColor:"var(--graphy-tooltip-heading-text-color)",tooltipLabelTextColor:"var(--graphy-tooltip-label-text-color)",tooltipValueTextColor:"var(--graphy-tooltip-value-text-color)",tooltipPrimaryRowColor:"var(--graphy-tooltip-primary-row-color)",hoverGuideLineColor:"var(--graphy-hover-guide-line-color)",hoverGuideFillColor:"var(--graphy-hover-guide-fill-color)",hoveredBarBorderColor:"var(--graphy-hovered-bar-border-color)",hoveredPointRingColor:"var(--graphy-hovered-point-ring-color)",pointStrokeColor:"var(--graphy-point-stroke-color)",stackedBarHoverBorderColor:"var(--graphy-stacked-bar-hover-border-color)",fontFamilyDefault:"var(--graphy-font-family-default)",fontFamilyHeading:"var(--graphy-font-family-heading)",fontWeightRegular:"var(--graphy-font-weight-regular)",fontWeightMedium:"var(--graphy-font-weight-medium)",fontWeightSemibold:"var(--graphy-font-weight-semibold)",fontWeightBold:"var(--graphy-font-weight-bold)",fontWeightExtraBold:"var(--graphy-font-weight-extra-bold)",fontWeightBlack:"var(--graphy-font-weight-black)",textScale:"var(--graphy-text-scale)",fontSizeXxs:"var(--graphy-font-size-xxs)",fontSizeXs:"var(--graphy-font-size-xs)",fontSizeSm:"var(--graphy-font-size-sm)",fontSizeMd:"var(--graphy-font-size-md)",fontSizeLg:"var(--graphy-font-size-lg)",fontSizeXl:"var(--graphy-font-size-xl)",fontLineHeightXxs:"var(--graphy-font-line-height-xxs)",fontLineHeightXs:"var(--graphy-font-line-height-xs)",fontLineHeightSm:"var(--graphy-font-line-height-sm)",fontLineHeightMd:"var(--graphy-font-line-height-md)",fontLineHeightLg:"var(--graphy-font-line-height-lg)",fontLineHeightXl:"var(--graphy-font-line-height-xl)",fontSizeEditorBody:"var(--graphy-font-size-editor-body)",fontSizeHeadingSm:"var(--graphy-font-size-heading-sm)",fontSizeHeadingMd:"var(--graphy-font-size-heading-md)",fontSizeHeadingLg:"var(--graphy-font-size-heading-lg)",fontLineHeightEditorBody:"var(--graphy-font-line-height-editor-body)",fontLineHeightHeadingSm:"var(--graphy-font-line-height-heading-sm)",fontLineHeightHeadingMd:"var(--graphy-font-line-height-heading-md)",fontLineHeightHeadingLg:"var(--graphy-font-line-height-heading-lg)",fontTickLabel:"var(--graphy-font-tick-label)",fontAxisLabel:"var(--graphy-font-axis-label)",fontDataLabel:"var(--graphy-font-data-label)",fontStackTotal:"var(--graphy-font-stack-total)",fontLegendLabel:"var(--graphy-font-legend-label)",fontSeriesLabel:"var(--graphy-font-series-label)",fontTooltipLabel:"var(--graphy-font-tooltip-label)",fontTooltipHeading:"var(--graphy-font-tooltip-heading)",fontTooltipFooter:"var(--graphy-font-tooltip-footer)",fontJumboTooltipLabel:"var(--graphy-font-jumbo-tooltip-label)",fontJumboTooltip:"var(--graphy-font-jumbo-tooltip)",fontMiniTooltipLabel:"var(--graphy-font-mini-tooltip-label)",fontMiniTooltipFooter:"var(--graphy-font-mini-tooltip-footer)",fontTooltipCaption:"var(--graphy-font-tooltip-caption)",fontTooltipCaptionSmall:"var(--graphy-font-tooltip-caption-small)",fontTrendTag:"var(--graphy-font-trend-tag)",fontTrendTagSmall:"var(--graphy-font-trend-tag-small)",fontGoalLineLabel:"var(--graphy-font-goal-line-label)",fontPieLabel:"var(--graphy-font-pie-label)",fontPieChartTotal:"var(--graphy-font-pie-chart-total)",fontDifferenceArrowSmall:"var(--graphy-font-difference-arrow-small)",fontDifferenceArrowMedium:"var(--graphy-font-difference-arrow-medium)",fontDifferenceArrowLarge:"var(--graphy-font-difference-arrow-large)",fontButton:"var(--graphy-font-button)",fontInput:"var(--graphy-font-input)",fontInputLabel:"var(--graphy-font-input-label)",fontSelectLabel:"var(--graphy-font-select-label)",fontSelectDescription:"var(--graphy-font-select-description)",fontColorSelectLabel:"var(--graphy-font-color-select-label)",fontMenuTitle:"var(--graphy-font-menu-title)",fontMenuGroupTitle:"var(--graphy-font-menu-group-title)",fontMenuItemLabel:"var(--graphy-font-menu-item-label)",fontMenuItemLabelSecondary:"var(--graphy-font-menu-item-label-secondary)",fontUITooltip:"var(--graphy-font-uitooltip)",fontUITooltipSecondary:"var(--graphy-font-uitooltip-secondary)",fontErrorBoundaryTitle:"var(--graphy-font-error-boundary-title)",fontErrorBoundaryMessage:"var(--graphy-font-error-boundary-message)",fontTableCell:"var(--graphy-font-table-cell)",fontTableHeaderCell:"var(--graphy-font-table-header-cell)",fontSourceLabel:"var(--graphy-font-source-label)",fontSourceLink:"var(--graphy-font-source-link)",fontTextEditorH1:"var(--graphy-font-text-editor-h1)",fontTextEditorH2:"var(--graphy-font-text-editor-h2)",fontTextEditorH3:"var(--graphy-font-text-editor-h3)",fontTextEditorH6:"var(--graphy-font-text-editor-h6)",fontTextEditorBody:"var(--graphy-font-text-editor-body)",fontTextEditorLink:"var(--graphy-font-text-editor-link)",fontHighlightModeTitle:"var(--graphy-font-highlight-mode-title)",fontHighlightModeSubtitle:"var(--graphy-font-highlight-mode-subtitle)"};const vt=1,jr=8,ko=12;c.pointStrokeColor;const Lo=1,Po={centerX:0,centerY:0,radius:1},yt=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}},X=(e,t,r=Po)=>{const n=u.polarToUnit(e,t);return{x:r.centerX+n.x*r.radius,y:r.centerY-n.y*r.radius}},At=(e,t)=>({x:u.toViewBoxX(e),y:u.toViewBoxY(t)}),q=(e,t)=>{const r=X(e,t);return{x:(r.x+1)/2,y:(r.y+1)/2}},To=2,Ro=.7,oe=({hit:e,project:t=At})=>{if(!e.anchored)return null;const r=u.getColor(e.observation),n=(u.getAlpha(e.observation)??vt)*Ro,s=(u.getSize(e.observation)??jr)/2,a=t(e.x,e.y);return o.jsx("circle",{cx:u.toPercent(a.x),cy:u.toPercent(a.y),r:s,fill:r,opacity:n,stroke:c.hoveredPointRingColor,strokeWidth:To,"data-testid":"companion-point"})},We=.3,ze=1;var J="_1d8mpa10";const W={type:"spring",stiffness:500,damping:60,mass:1},it=(e,t)=>{const r=L.useMotionValue(e);return f.useEffect(()=>{const n=So.interpolatePath(r.get(),e);L.animate(0,1,{...t,onUpdate:s=>{const a=n(s);return r.set(a)}})},[t,e,r]),r},wr=({isAnimated:e,...t})=>e?o.jsx(Mo,{...t}):o.jsx(Bo,{...t}),Bo=({fillPath:e,linePath:t,fill:r,fillOpacity:n,stroke:s,strokeWidth:a,strokeOpacity:i,strokeDasharray:l})=>o.jsxs("g",{children:[o.jsx("path",{d:e,fill:r,fillOpacity:n,stroke:"none"}),o.jsx("path",{d:t,fill:"none",stroke:s,strokeWidth:a,strokeOpacity:i,strokeDasharray:l,vectorEffect:"non-scaling-stroke"})]}),Mo=({fillPath:e,linePath:t,fill:r,fillOpacity:n,stroke:s,strokeWidth:a,strokeOpacity:i,strokeDasharray:l})=>{const d=it(e,W),h=it(t,W);return o.jsxs("g",{children:[o.jsx(L.motion.path,{d,fill:r,fillOpacity:n,stroke:"none"}),o.jsx(L.motion.path,{d:h,fill:"none",stroke:s,strokeWidth:a,strokeOpacity:i,strokeDasharray:l,vectorEffect:"non-scaling-stroke"})]})},Io=f.memo(function({layer:t,coordSystem:r,isAnimated:n}){const{lineGenerator:s,areaGenerator:a}=f.useMemo(()=>u.createAreaPathGenerators(r,t.params),[t.params,r]),i=f.useMemo(()=>{const l=u.createStableKeyGenerator(t.data,t.mapping,t.id),d=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(h=>{const g=u.prepareAreaObservations([...h],t.params.missingValues),p=a(g),m=s(g);if(!p||!m)return;const v=g[0];if(!v)return;const x=u.getColor(v),b=u.getAlpha(v),y=u.resolveStrokeWidth(v,t.params),j=u.getDashArray(u.getLineType(v));d.push({key:l(v),areaPath:p,linePath:m,color:x,fillOpacity:b??We,strokeWidth:y,strokeOpacity:ze,strokeDasharray:j})}),d},[a,s,t.data,t.id,t.mapping,t.params]);return o.jsx("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"area",className:J,children:i.map(l=>o.jsx(No,{areaPath:l.areaPath,linePath:l.linePath,color:l.color,fillOpacity:l.fillOpacity,strokeWidth:l.strokeWidth,strokeOpacity:l.strokeOpacity,strokeDasharray:l.strokeDasharray,isAnimated:n},l.key))})}),No=({areaPath:e,linePath:t,color:r,fillOpacity:n,strokeWidth:s,strokeOpacity:a,strokeDasharray:i,isAnimated:l})=>o.jsx(wr,{fillPath:e,linePath:t,fill:r,fillOpacity:n,stroke:r,strokeWidth:s,strokeOpacity:a,strokeDasharray:i,isAnimated:l});var Ho="_324dw20";const Ze=1,Fo=2,Do=1,Go=ko/2,Oo=2.25,pe=({hit:e,project:t=At,...r})=>{if(!e.anchored)return null;const n=u.getColor(e.observation),s=u.getAlpha(e.observation)??vt,a=t(e.x,e.y),i=u.toPercent(a.x),l=u.toPercent(a.y),d=Wo(e.observation),h=d+Ze/2+Do+Ze/2;return o.jsxs("g",{...r,className:Ho,children:[o.jsx("circle",{cx:i,cy:l,r:h,fill:"none",stroke:c.hoveredPointRingColor,strokeWidth:Fo}),o.jsx("circle",{cx:i,cy:l,r:d,fill:n,opacity:s,stroke:c.hoveredPointRingColor,strokeWidth:Ze})]})},Wo=e=>{const t=u.getSize(e);return u.isDefined(t)?t/Oo:Go},zo=({layer:e,coordSystem:t,primary:r,companions:n})=>{const s=u.getGroup(r.observation),a=f.useMemo(()=>{const m=e.data.filter(u.GROUP_VARIABLES.group,"eq",s);return u.prepareAreaObservations([...m],e.params.missingValues)},[e.data,e.params.missingValues,s]),{areaPath:i,linePath:l}=f.useMemo(()=>{const{lineGenerator:m,areaGenerator:v}=u.createAreaPathGenerators(t,e.params);return{areaPath:v(a)??"",linePath:m(a)??""}},[t,e.params,a]);if(!i||!l)return null;const d=u.getColor(r.observation),h=u.getAlpha(r.observation)??We,g=u.resolveStrokeWidth(r.observation,e.params),p=u.getDashArray(u.getLineType(r.observation));return o.jsxs("g",{"data-testid":"hovered-area",children:[o.jsxs("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"area",className:J,children:[o.jsx("path",{d:i,fill:d,fillOpacity:h,stroke:"none","data-testid":"hovered-area-fill"}),o.jsx("path",{d:l,fill:"none",stroke:d,strokeWidth:g,strokeOpacity:ze,strokeDasharray:p,vectorEffect:"non-scaling-stroke","data-testid":"hovered-area-edge"})]}),n.map(m=>o.jsx(oe,{hit:m},`companion-${m.layerId}-${m.pointIndex}`)),o.jsx(pe,{hit:r,"data-testid":"hovered-area-point"})]})},Yo={geom:"area",coord:"cartesian",swatchShape:"area",guideMode:"crosshair",render:({layer:e,coordSystem:t,isAnimated:r})=>o.jsx(Io,{layer:e,coordSystem:t,isAnimated:r}),renderHover:({layer:e,coordSystem:t,primary:r,group:n,related:s})=>o.jsx(zo,{layer:e,coordSystem:t,primary:r,companions:[...n,...s]}),renderHoverCompanions:({related:e})=>o.jsx(o.Fragment,{children:e.map(t=>o.jsx(oe,{hit:t},`companion-${t.layerId}-${t.pointIndex}`))}),getOverlayAnchor:({observation:e,coordSystem:t})=>{if(t.mainAxis==="x"){const s=u.getX(e),a=u.getYMax(e)??u.getY(e);return s===null||a===null?null:{x:s,y:a}}const r=u.getY(e),n=u.getXMax(e)??u.getX(e);return r===null||n===null?null:{x:n,y:r}}},Er=1,je=4,Uo=f.memo(function({layer:t,coordSystem:r,isAnimated:n}){const s=f.useId(),a=f.useMemo(()=>{const l=u.createStableKeyGenerator(t.data,t.mapping,t.id),d=new Map;for(const h of t.data){const g=u.getBarRectBounds(r.mainAxis,h);if(!g)continue;const p=Qo(r.mainAxis,g),m=d.get(p),v={key:l(h),...g,fill:u.getColor(h),opacity:u.getAlpha(h)??Er};m?m.push(v):d.set(p,[v])}return[...d.entries()].map(([h,g])=>({id:`${s}${h}`,bars:g,...Xo(g)}))},[s,r.mainAxis,t]),i=a.filter(l=>l.bars.length>1);return o.jsxs(o.Fragment,{children:[i.length>0&&o.jsx("defs",{children:i.map(l=>o.jsx("clipPath",{id:l.id,children:o.jsx(Vo,{column:l,isAnimated:n})},l.id))}),a.map(l=>{const[d]=l.bars;if(l.bars.length===1&&d!==void 0){const{key:h,...g}=d;return o.jsx(Rt,{...g,rx:je,isAnimated:n},h)}return o.jsx("g",{clipPath:`url(#${l.id})`,children:l.bars.map(h=>{const{key:g,...p}=h;return o.jsx(Rt,{...p,isAnimated:n},g)})},l.id)})]})}),Rt=({isAnimated:e,rx:t,...r})=>e?o.jsx(L.motion.rect,{initial:!1,style:{transformBox:"view-box"},transition:W,fill:r.fill,opacity:r.opacity,rx:t,animate:{x:u.toPercent(r.x),y:u.toPercent(r.y),width:u.toPercent(r.width),height:u.toPercent(r.height),opacity:r.opacity}}):o.jsx("rect",{style:{transformBox:"view-box"},x:u.toPercent(r.x),y:u.toPercent(r.y),width:u.toPercent(r.width),height:u.toPercent(r.height),fill:r.fill,opacity:r.opacity,rx:t}),Vo=({column:e,isAnimated:t})=>t?o.jsx(L.motion.rect,{initial:!1,style:{transformBox:"view-box"},transition:W,rx:je,animate:{x:u.toPercent(e.x),y:u.toPercent(e.y),width:u.toPercent(e.width),height:u.toPercent(e.height)}}):o.jsx("rect",{x:u.toPercent(e.x),y:u.toPercent(e.y),width:u.toPercent(e.width),height:u.toPercent(e.height),rx:je}),Qo=(e,t)=>e==="x"?`${t.x}-${t.width}`:`${t.y}-${t.height}`,Xo=e=>{let t=1/0,r=1/0,n=-1/0,s=-1/0;for(const a of e)a.x<t&&(t=a.x),a.y<r&&(r=a.y),a.x+a.width>n&&(n=a.x+a.width),a.y+a.height>s&&(s=a.y+a.height);return{x:t,y:r,width:n-t,height:s-r}};var qo="_1suo8ub0";const ye=3,Ko=({coordSystem:e,primary:t,panelRect:r})=>{const n=u.getBarRectBounds(e.mainAxis,t.observation);if(!n)return null;const s=n.x*r.width,a=n.y*r.height,i=n.width*r.width,l=n.height*r.height,d=s-ye,h=a-ye,g=i+ye*2,p=l+ye*2,m=je+ye,v=u.getColor(t.observation),x=u.getAlpha(t.observation)??Er;return o.jsxs("g",{"data-testid":"hovered-bar",children:[o.jsx("rect",{x:d,y:h,width:g,height:p,rx:m,fill:c.hoveredBarBorderColor,className:qo,"data-testid":"hovered-bar-border"}),o.jsx("rect",{x:u.toPercent(n.x),y:u.toPercent(n.y),width:u.toPercent(n.width),height:u.toPercent(n.height),fill:v,opacity:x,rx:je,"data-testid":"hovered-bar-fill"})]})},Jo={geom:"bar",coord:"cartesian",swatchShape:"square",guideMode:"band",render:({layer:e,coordSystem:t,isAnimated:r})=>o.jsx(Uo,{layer:e,coordSystem:t,isAnimated:r}),renderHover:({coordSystem:e,primary:t,panelRect:r})=>o.jsx(Ko,{coordSystem:e,primary:t,panelRect:r}),renderHoverCompanions:()=>null},Ye=1,Zo=.15,_o=f.memo(function({layer:t,isAnimated:r}){const n=f.useMemo(()=>u.createLinePathGenerator(t.params),[t.params]),s=f.useMemo(()=>t.params.showFill?u.createLineFillAreaGenerator(t.params):null,[t.params]),a=f.useMemo(()=>{const i=u.createStableKeyGenerator(t.data,t.mapping,t.id),l=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(d=>{const h=u.prepareLineObservations([...d],t.params.missingValues),g=n(h);if(!g)return;const p=s?.(h)??void 0,m=h[0];if(!m)return;const v=u.getColor(m),x=u.getAlpha(m),b=u.resolveStrokeWidth(m,t.params),y=u.getDashArray(u.getLineType(m));l.push({key:i(m),pathData:g,fillPath:p,color:v,opacity:x??Ye,strokeWidth:b,strokeDasharray:y})}),l},[n,s,t.data,t.id,t.mapping,t.params]);return o.jsx("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"line",className:J,children:a.map(i=>o.jsx($o,{pathData:i.pathData,fillPath:i.fillPath,color:i.color,strokeWidth:i.strokeWidth,opacity:i.opacity,strokeDasharray:i.strokeDasharray,isAnimated:r},i.key))})}),$o=({pathData:e,fillPath:t,color:r,strokeWidth:n,opacity:s,strokeDasharray:a,isAnimated:i})=>t?o.jsx(es,{fillPath:t,linePath:e,color:r,strokeWidth:n,opacity:s,strokeDasharray:a,isAnimated:i}):i?o.jsx(ts,{pathData:e,color:r,strokeWidth:n,opacity:s,strokeDasharray:a}):o.jsx("path",{d:e,fill:"none",stroke:r,strokeWidth:n,opacity:s,strokeDasharray:a,vectorEffect:"non-scaling-stroke"}),es=({fillPath:e,linePath:t,color:r,strokeWidth:n,opacity:s,strokeDasharray:a,isAnimated:i})=>{const l=`line_fill_gradient_${f.useId()}`;return o.jsxs(o.Fragment,{children:[o.jsx("defs",{children:o.jsxs("linearGradient",{id:l,gradientTransform:"rotate(90 0.5 0.5)",children:[o.jsx("stop",{offset:"0%",stopColor:r}),o.jsx("stop",{offset:"70%",stopColor:r,stopOpacity:0}),o.jsx("stop",{offset:"100%",stopColor:r,stopOpacity:0})]})}),o.jsx(wr,{fillPath:e,linePath:t,fill:`url(#${l})`,fillOpacity:Zo,stroke:r,strokeWidth:n,strokeOpacity:s,strokeDasharray:a,isAnimated:i})]})},ts=({pathData:e,color:t,strokeWidth:r,opacity:n,strokeDasharray:s})=>{const a=it(e,W);return o.jsx(L.motion.path,{d:a,fill:"none",stroke:t,strokeWidth:r,opacity:n,strokeDasharray:s,vectorEffect:"non-scaling-stroke"})},rs=({layer:e,primary:t,companions:r})=>{const n=u.getGroup(t.observation),s=f.useMemo(()=>{const g=e.data.filter(u.GROUP_VARIABLES.group,"eq",n);return u.prepareLineObservations([...g],e.params.missingValues)},[e.data,e.params.missingValues,n]),a=f.useMemo(()=>u.createLinePathGenerator(e.params)(s),[e.params,s]);if(!a)return null;const i=u.getColor(t.observation),l=u.getAlpha(t.observation)??Ye,d=u.resolveStrokeWidth(t.observation,e.params),h=u.getDashArray(u.getLineType(t.observation));return o.jsxs("g",{"data-testid":"hovered-line",children:[o.jsx("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%","data-geom":"line",className:J,children:o.jsx("path",{d:a,fill:"none",stroke:i,strokeWidth:d,opacity:l,strokeDasharray:h,vectorEffect:"non-scaling-stroke","data-testid":"hovered-line-path"})}),r.map(g=>o.jsx(oe,{hit:g},`companion-${g.layerId}-${g.pointIndex}`)),o.jsx(pe,{hit:t,"data-testid":"hovered-line-point"})]})},ns={geom:"line",coord:"cartesian",swatchShape:"line",guideMode:"crosshair",render:({layer:e,isAnimated:t})=>o.jsx(_o,{layer:e,isAnimated:t}),renderHover:({layer:e,primary:t,group:r,related:n})=>o.jsx(rs,{layer:e,primary:t,companions:[...r,...n]}),renderHoverCompanions:({related:e})=>o.jsx(o.Fragment,{children:e.map(t=>o.jsx(oe,{hit:t},`companion-${t.layerId}-${t.pointIndex}`))}),getOverlayAnchor:({observation:e})=>{const t=u.getX(e),r=u.getY(e);return t===null||r===null?null:{x:t,y:r}}},Cr=({observation:e,project:t,layerSize:r,isAnimated:n})=>{const s=u.getX(e),a=u.getY(e);if(s===null||a===null)return null;const i=t(s,a),l=u.toPercent(i.x),d=u.toPercent(i.y),h=(u.getSize(e)??r)/2,g=u.getColor(e),p=u.getAlpha(e)??vt,m=u.getStrokeWidth(e)??Lo;return n?o.jsx(L.motion.circle,{initial:!1,transition:W,fill:g,stroke:c.pointStrokeColor,strokeWidth:m,animate:{cx:l,cy:d,r:h,opacity:p}}):o.jsx("circle",{cx:l,cy:d,r:h,fill:g,opacity:p,stroke:c.pointStrokeColor,strokeWidth:m})},os=f.memo(function({layer:t,isAnimated:r}){return f.useMemo(()=>{const s=[];let a=0;for(const i of t.data)s.push(o.jsx(Cr,{observation:i,project:At,layerSize:t.params.size,isAnimated:r},String(a++)));return s},[t.data,t.params.size,r])}),Bt=({primary:e,companions:t})=>{const r=o.jsxs(o.Fragment,{children:[t.map(n=>o.jsx(oe,{hit:n},`companion-${n.layerId}-${n.pointIndex}`)),e?o.jsx(pe,{hit:e}):null]});return e?o.jsx("g",{"data-testid":"hovered-point",children:r}):r},ss={geom:"point",coord:"cartesian",swatchShape:"circle",render:({layer:e,isAnimated:t})=>o.jsx(os,{layer:e,isAnimated:t}),renderHover:({primary:e,group:t,related:r})=>o.jsx(Bt,{primary:e,companions:[...t,...r]}),renderHoverCompanions:({related:e})=>o.jsx(Bt,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=u.getX(e),r=u.getY(e);return t===null||r===null?null:{x:t,y:r}}},kr=10,$=(e,t)=>e*kr*t,as=/\p{Emoji_Presentation}|\p{Emoji}\uFE0F/gu,Lr="😀";class Ue{constructor(){this.emojiCorrections=new Map,this.currentFont="";const r=new OffscreenCanvas(1,1).getContext("2d");if(!r)throw new Error("Failed to create OffscreenCanvas 2D context");this.ctx=r}static async create(){return typeof document<"u"&&"fonts"in document&&await document.fonts.ready,new Ue}measureText(t,r){const n=u.buildFontString(r);this.setFont(n);const{width:s,fontBoundingBoxAscent:a,fontBoundingBoxDescent:i}=this.ctx.measureText(t);let l=s;const d=is(t);if(d>0){const h=this.getEmojiCorrection(n);l-=h*d}return{width:l,height:a+i,ascent:a,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(Lr).width,s=ls(t);let a=0;if(s!==null){const i=n-s;a=i>.5?i:0}return this.emojiCorrections.set(t,a),a}}let Z=null;const is=e=>{const t=e.match(as);return t?t.length:0},ls=e=>{const t=cs();return t?(t.style.font=e,t.getBoundingClientRect().width):null},cs=()=>typeof document>"u"?null:(Z||(Z=document.createElement("span"),Z.style.position="absolute",Z.style.visibility="hidden",Z.style.whiteSpace="nowrap",Z.style.left="-9999px",Z.textContent=Lr,document.body.appendChild(Z)),Z),Pr=f.createContext(null),Tr=({children:e,measurer:t})=>{const[r,n]=f.useState(null);f.useEffect(()=>{if(t!==void 0)return;let a=!1;const i=()=>{a||n(ds())};return(async()=>{typeof document<"u"&&"fonts"in document&&await document.fonts.ready,i()})(),typeof document<"u"&&"fonts"in document&&document.fonts.addEventListener("loadingdone",i),()=>{a=!0,typeof document<"u"&&"fonts"in document&&document.fonts.removeEventListener("loadingdone",i)}},[t]);const s=t??r;return s===null?null:o.jsx(Pr.Provider,{value:s,children:e})},se=()=>{const e=f.useContext(Pr);if(e===null)throw new Error("useTextMeasurer must be used inside a <TextMeasurerProvider>.");return e},ds=()=>{try{return new u.CachedTextMeasurer(new Ue)}catch{return new u.CachedTextMeasurer(new u.HeuristicTextMeasurer)}},Rr=f.createContext(null),us=Rr.Provider;let hs=null;const ee=()=>f.useContext(Rr)??(hs??=Or()),F=`'Inter', -apple-system, BlinkMacSystemFont, 'Open Sans', 'Segoe UI', 'Roboto', 'Oxygen-Sans', 'Ubuntu',
|
|
3
|
+
'Cantarell', 'Helvetica Neue', 'NotoSansArabic', 'NotoSansJP', 'NotoSansSC', 'NotoSansKR', 'NotoSerifKR', sans-serif, 'Apple Color Emoji', 'NotoColorEmoji'`,gs=F,_={regular:400,medium:500,semibold:600,bold:700,extraBold:800,black:900},T={xxs:1,xs:1.1,sm:1.2,md:1.4,lg:1.6,xl:2,editorBody:1.5,headingSm:1.8,headingMd:2.2,headingLg:2.8},O={xxs:1,xs:1,sm:1.3,md:1.43,lg:1,xl:1,editorBody:1.47,headingSm:1.25,headingMd:1.41,headingLg:1.29},fs=`var(--typography-chart-font-family, ${c.fontFamilyDefault})`,_e=`var(--typography-chart-heading-font-family, ${c.fontFamilyHeading})`,Q=e=>`${e}em`,Br={textScale:"1",fontFamilyDefault:F,fontFamilyHeading:gs,fontWeightRegular:_.regular.toString(),fontWeightMedium:_.medium.toString(),fontWeightSemibold:_.semibold.toString(),fontWeightBold:_.bold.toString(),fontWeightExtraBold:_.extraBold.toString(),fontWeightBlack:_.black.toString(),fontSizeXxs:Q(T.xxs),fontSizeXs:Q(T.xs),fontSizeSm:Q(T.sm),fontSizeMd:Q(T.md),fontSizeLg:Q(T.lg),fontSizeXl:Q(T.xl),fontLineHeightXxs:O.xxs.toString(),fontLineHeightXs:O.xs.toString(),fontLineHeightSm:O.sm.toString(),fontLineHeightMd:O.md.toString(),fontLineHeightLg:O.lg.toString(),fontLineHeightXl:O.xl.toString()},Mr={fontSizeEditorBody:Q(T.editorBody),fontSizeHeadingSm:Q(T.headingSm),fontSizeHeadingMd:Q(T.headingMd),fontSizeHeadingLg:Q(T.headingLg),fontLineHeightEditorBody:O.editorBody.toString(),fontLineHeightHeadingSm:O.headingSm.toString(),fontLineHeightHeadingMd:O.headingMd.toString(),fontLineHeightHeadingLg:O.headingLg.toString()},S=(e,t,r,n=fs)=>`${e} ${t}/${r} ${n}`,Ir={fontTickLabel:S(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontAxisLabel:S(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontDataLabel:S(c.fontWeightMedium,c.fontSizeXs,c.fontLineHeightXs),fontStackTotal:S(c.fontWeightSemibold,c.fontSizeXs,c.fontLineHeightXs),fontLegendLabel:S(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontSeriesLabel:S(c.fontWeightSemibold,c.fontSizeSm,c.fontLineHeightSm),fontTooltipLabel:S(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontTooltipHeading:S(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontTooltipFooter:S(c.fontWeightRegular,c.fontSizeSm,c.fontLineHeightSm),fontJumboTooltipLabel:S(c.fontWeightRegular,c.fontSizeSm,c.fontLineHeightSm),fontJumboTooltip:S(c.fontWeightMedium,c.fontSizeHeadingMd,c.fontLineHeightHeadingMd),fontMiniTooltipLabel:S(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontMiniTooltipFooter:S(c.fontWeightRegular,c.fontSizeSm,c.fontLineHeightSm),fontTooltipCaption:S(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontTooltipCaptionSmall:S(c.fontWeightMedium,c.fontSizeXxs,c.fontLineHeightXxs),fontUITooltip:S(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontUITooltipSecondary:S(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontTrendTag:S(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontTrendTagSmall:S(c.fontWeightMedium,c.fontSizeXs,c.fontLineHeightXs),fontGoalLineLabel:S(c.fontWeightMedium,c.fontSizeXs,c.fontLineHeightXs),fontPieLabel:S(c.fontWeightMedium,c.fontSizeXs,c.fontLineHeightXs),fontPieChartTotal:S(c.fontWeightBold,c.fontSizeHeadingLg,c.fontLineHeightHeadingLg),fontDifferenceArrowSmall:S(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontDifferenceArrowMedium:S(c.fontWeightMedium,c.fontSizeLg,c.fontLineHeightLg),fontDifferenceArrowLarge:S(c.fontWeightSemibold,c.fontSizeXl,c.fontLineHeightXl),fontButton:S(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontInput:S(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontInputLabel:S(c.fontWeightMedium,c.fontSizeXxs,c.fontLineHeightXxs),fontSelectLabel:S(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontSelectDescription:S(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontColorSelectLabel:S(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontMenuTitle:S(c.fontWeightSemibold,c.fontSizeMd,c.fontLineHeightMd),fontMenuGroupTitle:S(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontMenuItemLabel:S(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontMenuItemLabelSecondary:S(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontErrorBoundaryTitle:S(c.fontWeightSemibold,c.fontSizeHeadingSm,c.fontLineHeightHeadingSm),fontErrorBoundaryMessage:S(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontTableCell:S(c.fontWeightMedium,c.fontSizeMd,c.fontLineHeightMd),fontTableHeaderCell:S(c.fontWeightSemibold,c.fontSizeSm,c.fontLineHeightSm),fontSourceLabel:S(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontSourceLink:S(c.fontWeightRegular,c.fontSizeSm,c.fontLineHeightSm),fontTextEditorH1:S(c.fontWeightBold,c.fontSizeHeadingLg,c.fontLineHeightHeadingLg,_e),fontTextEditorH2:S(c.fontWeightBold,c.fontSizeHeadingMd,c.fontLineHeightHeadingMd,_e),fontTextEditorH3:S(c.fontWeightSemibold,c.fontSizeHeadingSm,c.fontLineHeightHeadingSm,_e),fontTextEditorH6:S(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm),fontTextEditorBody:S(c.fontWeightMedium,c.fontSizeEditorBody,c.fontLineHeightEditorBody),fontTextEditorLink:S(c.fontWeightRegular,c.fontSizeMd,c.fontLineHeightMd),fontHighlightModeTitle:S(c.fontWeightBold,c.fontSizeMd,c.fontLineHeightMd),fontHighlightModeSubtitle:S(c.fontWeightMedium,c.fontSizeSm,c.fontLineHeightSm)},ps=11.7,ms=T.xs,xs=F,vs=_.medium,be=5,ys=5,Mt=10,It=10,As=4,He=13,Nr=6,$e=12,Nt=21.6,bs="0 0 10 18",Ss="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",Ht="#FFFFFF",et="#1A1A1A";var js="_16vokpr0";const ws=(e,t)=>{const r=e.mapping.y!==void 0,n=t.mainAxis==="y";return r!==n},Es=(e,t)=>{const r=u.toPercent(e?1-t:t);return e?{x1:"0%",y1:r,x2:"100%",y2:r}:{x1:r,y1:"0%",x2:r,y2:"100%"}},Cs=(e,t)=>e==="solid"?{}:e==="dotted"?{strokeDasharray:`0 ${t*2}`,strokeLinecap:"round"}:{strokeDasharray:`${t*2} ${t*3}`,strokeLinecap:"round",strokeMiterlimit:16},ks=e=>{const t=e.params.color,r=t??c.targetLineColor;let n=c.targetLineLabelTextColor;if(t!==void 0)try{n=st.getContrast(t,Ht)>st.getContrast(t,et)?Ht:et}catch{n=et}return{lineColor:r,labelTextColor:n}},Ls=(e,t)=>Re(e)&&Re(t)?`${e}: ${t}`:Re(e)?e:Re(t)?t:null,Re=e=>e!=null&&e.trim()!=="";var Ps="_2qyyu60";const Ft=2,Ts=12,Rs=12,Dt=1,Gt=2,Bs=4,Ce=({shape:e,color:t,lineType:r="solid",width:n=Ts,height:s=Rs})=>o.jsx("svg",{className:Ps,width:n,height:s,viewBox:`0 0 ${n} ${s}`,"aria-hidden":!0,"data-testid":"chart-swatch","data-shape":e,children:Ms({shape:e,color:t,lineType:r,width:n,height:s})}),Ms=({shape:e,color:t,lineType:r,width:n,height:s})=>{const a=Is(r,n);switch(e){case"square":return o.jsx("rect",{x:1,y:1,width:n-2,height:s-2,rx:2,fill:t});case"line":return o.jsx("line",{x1:a.x1,y1:s/2,x2:a.x2,y2:s/2,stroke:t,strokeWidth:Ft,strokeLinecap:a.linecap,strokeDasharray:a.dashArray});case"circle":{const i=(Math.min(n,s)-2)/2;return o.jsx("circle",{cx:n/2,cy:s/2,r:i,fill:t})}case"area":{const i=s/2-1;return o.jsxs(o.Fragment,{children:[o.jsx("rect",{x:1,y:i,width:n-2,height:s-i-1,fill:t,opacity:.45}),o.jsx("line",{x1:a.x1,y1:i,x2:a.x2,y2:i,stroke:t,strokeWidth:Ft,strokeLinecap:a.linecap,strokeDasharray:a.dashArray})]})}case"slice":return o.jsx("path",{d:`M 0 ${s} L ${n} ${s} A ${n} ${s} 0 0 0 0 0 Z`,fill:t})}},Is=(e,t)=>{if(e==="solid")return{x1:0,x2:t,dashArray:void 0,linecap:"round"};if(e==="dashed"){const n=(t-Dt*(Gt-1))/Gt;return{x1:0,x2:t,dashArray:`${n} ${Dt}`,linecap:"butt"}}const r=t/(Bs-1);return{x1:0,x2:t,dashArray:`1 ${r}`,linecap:"round"}},Ns=({labelPosition:e,linePosition:t,color:r,pillWidth:n,pillHeight:s,text:a,isAnimated:i})=>{const l=e==="start",d=l?-He:-(n-He),h=l?d+n-be:d+be-$e,g=l?void 0:`rotate(180 ${h+$e/2} ${s/2})`,p=l?"0%":"100%",m=u.toPercent(1-t),v=o.jsxs("g",{transform:`translate(0, ${-s/2})`,pointerEvents:"none",children:[o.jsx("rect",{x:d,y:0,width:n,height:s,rx:Nr,fill:r}),o.jsx("g",{transform:g,children:o.jsx("svg",{x:h,y:(s-Nt)/2,width:$e,height:Nt,viewBox:bs,overflow:"visible",children:o.jsx("path",{d:Ss,fill:r})})}),o.jsx("g",{transform:`translate(${d+be}, ${s/2})`,children:a})]});return i?o.jsx(L.motion.svg,{initial:!1,transition:W,x:p,animate:{y:m},overflow:"visible",children:v}):o.jsx("svg",{x:p,y:m,overflow:"visible",children:v})},Hs=({labelPosition:e,linePosition:t,color:r,pillWidth:n,pillHeight:s,text:a,isAnimated:i})=>{const l=e==="start",d=l?-He:-(s-He),h=u.toPercent(t),g=l?"100%":"0%",p=o.jsxs("g",{transform:`translate(${-n/2}, 0)`,pointerEvents:"none",children:[o.jsx("rect",{x:0,y:d,width:n,height:s,rx:Nr,fill:r}),o.jsx("g",{transform:`translate(${be}, ${d+s/2})`,children:a})]});return i?o.jsx(L.motion.svg,{initial:!1,transition:W,y:g,animate:{x:h},overflow:"visible",children:p}):o.jsx("svg",{x:h,y:g,overflow:"visible",children:p})},Fs=({label:e,textWidth:t,labelPosition:r,isHorizontalLine:n,position:s,color:a,textColor:i,symbolShape:l,symbolColor:d,isAnimated:h})=>{const g=l===null?0:Mt+As,p=t+g+be*2,m=ps+ys*2,v=o.jsxs(o.Fragment,{children:[l!==null&&d!==null&&o.jsx("g",{transform:`translate(0, ${-It/2})`,children:o.jsx(Ce,{shape:l,color:d,width:Mt,height:It})}),o.jsx("text",{x:g,textAnchor:"start",dominantBaseline:"central",fill:i,style:{font:c.fontGoalLineLabel},children:e})]});return n?o.jsx(Ns,{labelPosition:r,linePosition:s,color:a,pillWidth:p,pillHeight:m,text:v,isAnimated:h}):o.jsx(Hs,{labelPosition:r,linePosition:s,color:a,pillWidth:p,pillHeight:m,text:v,isAnimated:h})},Ds=({layer:e,isHorizontalLine:t,position:r,lineColor:n,isAnimated:s})=>{const a=Es(t,r),i=Cs(e.params.lineType,e.params.strokeWidth);return s?o.jsx(L.motion.line,{initial:!1,transition:W,animate:{x1:a.x1,y1:a.y1,x2:a.x2,y2:a.y2},...i,stroke:n,strokeWidth:e.params.strokeWidth,vectorEffect:"non-scaling-stroke"}):o.jsx("line",{...a,...i,stroke:n,strokeWidth:e.params.strokeWidth,vectorEffect:"non-scaling-stroke"})},Gs=f.memo(function({layer:t,coordSystem:r,formattingLocale:n,isAnimated:s}){const a=se(),i=ee(),{guides:l,numberFormat:d,textScale:h,layers:g,colorScale:p}=w(V.useShallow(z=>({guides:z.guides,numberFormat:z.config.numberFormat,textScale:z.config.appearance.textScale,layers:z.spec.layers,colorScale:z.scales.color}))),m=f.useMemo(()=>u.buildAverageLineSymbols(g,p).get(t.id)??null,[g,p,t.id]),v=m?i(m.geom,r.type)?.swatchShape??"square":null,x=f.useMemo(()=>Ls(t.params.label,u.formatRuleValue({guides:l,numberFormat:d,layer:t,locale:n})),[l,d,n,t]),b=f.useMemo(()=>({family:xs,size:$(ms,h),weight:vs}),[h]),y=f.useMemo(()=>x===null?0:a.measureText(x,b).width,[x,b,a]),j=t.data.getFirst();if(!j)return null;const{lineColor:M,labelTextColor:D}=ks(t),E=ws(t,r),I=E?u.getY(j):u.getX(j);return I===null?null:o.jsxs("g",{"data-geom":"rule",className:js,children:[o.jsx(Ds,{layer:t,isHorizontalLine:E,position:I,lineColor:M,isAnimated:s}),x!==null&&o.jsx(Fs,{label:x,textWidth:y,labelPosition:t.params.labelPosition,isHorizontalLine:E,position:I,color:M,textColor:D,symbolShape:v,symbolColor:m?.color??null,isAnimated:s})]})}),Os={geom:"rule",coord:"cartesian",render:({layer:e,coordSystem:t,formattingLocale:r,isAnimated:n})=>o.jsx(Gs,{layer:e,coordSystem:t,formattingLocale:r,isAnimated:n}),renderHover:()=>null,renderHoverCompanions:()=>null},Fe=({primary:e,companions:t})=>{const r=o.jsxs(o.Fragment,{children:[t.map(n=>o.jsx(oe,{hit:n,project:q},`companion-${n.layerId}-${n.pointIndex}`)),e?o.jsx(pe,{hit:e,project:q}):null]});return e?o.jsx("g",{"data-testid":"hovered-point",children:r}):r},lt=e=>{const[t,...r]=e;if(!t)return"";const n=r.map(s=>`L ${s.x} ${s.y}`).join(" ");return`M ${t.x} ${t.y} ${n} Z`},Ws=f.memo(function({layer:t}){const r=f.useMemo(()=>{const n=u.createStableKeyGenerator(t.data,t.mapping,t.id),s=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(a=>{const i=[...a],l=Hr(i);if(!l)return;const d=i[0];d&&s.push({key:n(d),fillPath:l.fillPath,outlinePath:l.outlinePath,color:u.getColor(d),opacity:u.getAlpha(d)??ze,strokeWidth:u.resolveStrokeWidth(d,t.params)})}),s},[t.data,t.id,t.mapping,t.params]);return o.jsx("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"area",className:J,children:r.map(n=>o.jsxs("g",{children:[o.jsx("path",{d:n.fillPath,fill:n.color,fillOpacity:We,fillRule:"evenodd"}),o.jsx("path",{d:n.outlinePath,fill:"none",stroke:n.color,strokeWidth:n.strokeWidth,opacity:n.opacity,vectorEffect:"non-scaling-stroke"})]},n.key))})}),Hr=e=>{const t=[];for(const l of e){const d=u.getX(l),{innerRadius:h,outerRadius:g}=u.getRadiusExtent(l);d===null||h===null||g===null||t.push({angle:d,outer:X(d,g),inner:X(d,h)})}if(t.length===0)return null;t.sort((l,d)=>l.angle-d.angle);const r=t.map(l=>l.outer),n=t.map(l=>l.inner),s=lt(r);return{fillPath:n.some(l=>l.x!==0||l.y!==0)?`${s} ${lt([...n].reverse())}`:s,outlinePath:s}},zs=({layer:e,primary:t,companions:r})=>{const n=u.getGroup(t.observation),s=f.useMemo(()=>{const d=e.data.filter(u.GROUP_VARIABLES.group,"eq",n);return Hr([...d])},[e.data,n]);if(!s)return null;const a=u.getColor(t.observation),i=u.getAlpha(t.observation)??ze,l=u.resolveStrokeWidth(t.observation,e.params);return o.jsxs(o.Fragment,{children:[o.jsxs("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"area","data-testid":"hovered-area",className:J,children:[o.jsx("path",{d:s.fillPath,fill:a,fillOpacity:We,fillRule:"evenodd","data-testid":"hovered-area-fill"}),o.jsx("path",{d:s.outlinePath,fill:"none",stroke:a,strokeWidth:l,opacity:i,vectorEffect:"non-scaling-stroke","data-testid":"hovered-area-edge"})]}),r.map(d=>o.jsx(oe,{hit:d,project:q},`companion-${d.layerId}-${d.pointIndex}`)),o.jsx(pe,{hit:t,project:q,"data-testid":"hovered-area-point"})]})},Ys={geom:"area",coord:"polar",swatchShape:"area",guideMode:"crosshair",render:({layer:e})=>o.jsx(Ws,{layer:e}),renderHover:({layer:e,primary:t,group:r,related:n})=>o.jsx(zs,{layer:e,primary:t,companions:[...r,...n]}),renderHoverCompanions:({related:e})=>o.jsx(Fe,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=u.getX(e),r=u.getYMax(e)??u.getY(e);if(t===null||r===null)return null;const{x:n,y:s}=q(t,r);return{x:n,y:1-s}}},Fr=1,Ot=Math.PI*2,Us=f.memo(function({layer:t,isAnimated:r}){const n=f.useRef(!1);f.useEffect(()=>{n.current=!0},[]);const s=f.useMemo(()=>{const a=u.createStableKeyGenerator(t.data,t.mapping,t.id),i=[];for(const l of t.data){const d=a(l),{startAngle:h,endAngle:g}=u.getAngleExtent(l),{innerRadius:p,outerRadius:m}=u.getRadiusExtent(l);h===null||g===null||p===null||m===null||i.push({key:d,startAngle:h,endAngle:g,innerRadius:p,outerRadius:m,fill:u.getColor(l),opacity:u.getAlpha(l)??Fr})}return i},[t.data,t.mapping,t.id]);return o.jsx("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"bar",className:J,children:s.map(a=>{if(r){const{key:i,...l}=a;return o.jsx(Vs,{isInitialRender:!n.current,...l},i)}return o.jsx("path",{d:u.buildPolarBarArcPath({startAngle:a.startAngle,endAngle:a.endAngle,innerRadius:a.innerRadius,outerRadius:a.outerRadius})??void 0,fill:a.fill,opacity:a.opacity},a.key)})})}),Vs=({startAngle:e,endAngle:t,innerRadius:r,outerRadius:n,fill:s,opacity:a,isInitialRender:i})=>{const l=i?e:Ot,d=i?t:Ot,h=L.useSpring(l,W),g=L.useSpring(d,W),p=L.useMotionValue(u.buildPolarBarArcPath({startAngle:l,endAngle:d,innerRadius:r,outerRadius:n})??"");return f.useEffect(()=>{h.set(e),g.set(t)},[h,g,e,t]),f.useEffect(()=>{const m=()=>{const b=h.get(),y=g.get();p.set(u.buildPolarBarArcPath({startAngle:b,endAngle:y,innerRadius:r,outerRadius:n})??"")},v=h.on("change",m),x=g.on("change",m);return()=>{v(),x()}},[h,g,r,n,p]),o.jsx(L.motion.path,{d:p,fill:s,opacity:a,transition:W})},Qs=({primary:e})=>{const{startAngle:t,endAngle:r}=u.getAngleExtent(e.observation),{innerRadius:n,outerRadius:s}=u.getRadiusExtent(e.observation);if(t===null||r===null||n===null||s===null)return null;const a=u.buildPolarBarArcPath({startAngle:t,endAngle:r,innerRadius:n,outerRadius:s});if(!a)return null;const i=u.getColor(e.observation),l=u.getAlpha(e.observation)??Fr;return o.jsx("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"arc","data-testid":"hovered-arc",className:J,children:o.jsx("path",{d:a,fill:i,opacity:l})})},Xs={geom:"bar",coord:"polar",swatchShape:"slice",guideMode:"band",render:({layer:e,isAnimated:t})=>o.jsx(Us,{layer:e,isAnimated:t}),renderHover:({primary:e})=>o.jsx(Qs,{primary:e}),renderHoverCompanions:()=>null},qs=f.memo(function({layer:t}){const r=f.useMemo(()=>{const n=u.createStableKeyGenerator(t.data,t.mapping,t.id),s=[];return t.data.groupBy(u.GROUP_VARIABLES.group).forEach(a=>{const i=[...a],l=Dr(i);if(!l)return;const d=i[0];d&&s.push({key:n(d),pathData:l,color:u.getColor(d),opacity:u.getAlpha(d)??Ye,strokeWidth:u.resolveStrokeWidth(d,t.params),strokeDasharray:u.getDashArray(u.getLineType(d))})}),s},[t.data,t.id,t.mapping,t.params]);return o.jsx("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"line",className:J,children:r.map(n=>o.jsx("path",{d:n.pathData,fill:"none",stroke:n.color,strokeWidth:n.strokeWidth,opacity:n.opacity,strokeDasharray:n.strokeDasharray,vectorEffect:"non-scaling-stroke"},n.key))})}),Dr=e=>{const t=[];for(const r of e){const n=u.getX(r),s=u.getY(r);n===null||s===null||t.push({angle:n,point:X(n,s)})}return t.length===0?null:(t.sort((r,n)=>r.angle-n.angle),lt(t.map(r=>r.point)))},Ks=({layer:e,primary:t,companions:r})=>{const n=u.getGroup(t.observation),s=f.useMemo(()=>{const h=e.data.filter(u.GROUP_VARIABLES.group,"eq",n);return Dr([...h])},[e.data,n]);if(!s)return null;const a=u.getColor(t.observation),i=u.getAlpha(t.observation)??Ye,l=u.resolveStrokeWidth(t.observation,e.params),d=u.getDashArray(u.getLineType(t.observation));return o.jsxs(o.Fragment,{children:[o.jsx("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%","data-geom":"line","data-testid":"hovered-line",className:J,children:o.jsx("path",{d:s,fill:"none",stroke:a,strokeWidth:l,opacity:i,strokeDasharray:d,vectorEffect:"non-scaling-stroke","data-testid":"hovered-line-path"})}),r.map(h=>o.jsx(oe,{hit:h,project:q},`companion-${h.layerId}-${h.pointIndex}`)),o.jsx(pe,{hit:t,project:q,"data-testid":"hovered-line-point"})]})},Js={geom:"line",coord:"polar",swatchShape:"line",guideMode:"crosshair",render:({layer:e})=>o.jsx(qs,{layer:e}),renderHover:({layer:e,primary:t,group:r,related:n})=>o.jsx(Ks,{layer:e,primary:t,companions:[...r,...n]}),renderHoverCompanions:({related:e})=>o.jsx(Fe,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=u.getX(e),r=u.getY(e);if(t===null||r===null)return null;const{x:n,y:s}=q(t,r);return{x:n,y:1-s}}},Zs=f.memo(function({layer:t,isAnimated:r}){return f.useMemo(()=>{const n=[];let s=0;for(const a of t.data)n.push(o.jsx(Cr,{observation:a,project:q,layerSize:t.params.size,isAnimated:r},String(s++)));return n},[t.data,t.params.size,r])}),_s={geom:"point",coord:"polar",swatchShape:"circle",render:({layer:e,isAnimated:t})=>o.jsx(Zs,{layer:e,isAnimated:t}),renderHover:({primary:e,group:t,related:r})=>o.jsx(Fe,{primary:e,companions:[...t,...r]}),renderHoverCompanions:({related:e})=>o.jsx(Fe,{companions:e}),getOverlayAnchor:({observation:e})=>{const t=u.getX(e),r=u.getY(e);if(t===null||r===null)return null;const{x:n,y:s}=q(t,r);return{x:n,y:1-s}}},Gr={bar:{cartesian:Jo,polar:Xs},line:{cartesian:ns,polar:Js},area:{cartesian:Yo,polar:Ys},point:{cartesian:ss,polar:_s},rule:{cartesian:Os}};function Ve(e){return typeof e=="function"?{overlay:!1,fn:e}:{overlay:!0,fn:e.fn}}function Qe(e){return e?Ve(e.render).overlay:!1}function $s(e,t){return typeof e=="string"?{...t,geom:e}:{...t,definition:e,geom:e.type}}function Or(e=[]){const t={};for(const[r,n]of Object.entries(Gr))t[r]={...n};for(const r of e)(t[r.geom]??={})[r.coord]=r;return(r,n)=>t[r]?.[n]??null}const Wr=e=>typeof e=="object"&&"geom"in e&&"render"in e,ea=e=>{const t=u.resolveDefinition(e);return t instanceof u.Geom?t:null};function ta(e,t,r){let n,s;if(u.isGraphConfig(e)){n=e.themeOverrides;const a=e.appearance?.textStyle;r&&a&&(s=ra(a,r))}return f.useMemo(()=>({...t,...n,...s}),[t,n,s])}function ra(e,t){const r=e.body?.fontId?t.find(a=>a.id===e.body?.fontId)?.fontFamily:void 0,n=e.heading?.fontId?t.find(a=>a.id===e.heading?.fontId)?.fontFamily:void 0,s={};return r&&(s.fontFamilyDefault=r),n&&(s.fontFamilyHeading=n),Object.keys(s).length>0?s:void 0}function ct(e){for(const t of e)(t.severity==="error"?console.error:console.warn)(`[graphy] ${t.code}: ${t.message}`,t)}var na="_1bs9o1n0",oa="_1bs9o1n1",sa="_1bs9o1n2",aa="_1bs9o1n3",ia="_1bs9o1n4",la="_1bs9o1n5",ca="_1bs9o1n6";const dt=({errors:e})=>{const[t,...r]=e;return o.jsxs("div",{role:"alert",className:na,children:[o.jsx("strong",{className:oa,children:"This chart could not be rendered."}),t&&o.jsx(Wt,{diagnostic:t}),r.length>0&&o.jsx("ul",{className:sa,children:r.map((n,s)=>o.jsx("li",{children:o.jsx(Wt,{diagnostic:n})},`${n.code}-${s}`))})]})},Wt=({diagnostic:e})=>o.jsxs("div",{className:aa,children:[o.jsx("span",{className:ia,children:e.code}),o.jsx("p",{className:la,children:e.message}),e.suggestion&&o.jsx("p",{className:ca,children:e.suggestion})]});function da(e=[],t=[]){return e.length===t.length&&e.every((r,n)=>Object.is(r,t[n]))}class zr extends f.Component{constructor(){super(...arguments),this.state={caughtDiagnostic:null}}static getDerivedStateFromError(t){return{caughtDiagnostic:u.buildDiagnostic(t)}}componentDidCatch(t,r){const n=u.buildDiagnostic(t);ct([n]),this.props.onError?.([n]),console.error("Chart render component stack:",r.componentStack)}componentDidUpdate(t){this.state.caughtDiagnostic&&!da(t.resetKeys,this.props.resetKeys)&&this.setState({caughtDiagnostic:null})}render(){const{caughtDiagnostic:t}=this.state;if(t)return o.jsx(dt,{errors:[t]});const{forcedErrors:r,children:n}=this.props;return r&&r.length>0?o.jsx(dt,{errors:r}):n}}const ua=5,ha=e=>{if(process.env.NODE_ENV==="production")return{emit:()=>{},subscribe:()=>fa,getLastTrigger:()=>null,getLastCompile:()=>null,getCacheStats:()=>e.getCacheStats()};const t=new Set;let r=null;return{emit:n=>{const s=e.getLastCompile();if(s){r=n;for(const a of t)a(n,s)}},subscribe:n=>(t.add(n),()=>{t.delete(n)}),getLastTrigger:()=>r,getLastCompile:()=>e.getLastCompile(),getCacheStats:()=>e.getCacheStats()}},ga=()=>mt.createStore(e=>({lastCompile:null,history:[],nextId:1,lastSnapshot:null,recordCompile:(t,r)=>e(n=>{if(n.lastSnapshot===r)return n;const s={id:n.nextId,label:pa(t),stages:r.stages,durationMs:r.durationMs};return{lastCompile:s,history:ma(n.history,s,ua),nextId:n.nextId+1,lastSnapshot:r}})})),fa=()=>{},pa=e=>{switch(e.kind){case"init":return"init";case"input":return"input change";case"data":return"data change";case"command":return e.command.metadata.description}},ma=(e,t,r)=>{const n=e.length>=r?e.length-(r-1):0;return[...e.slice(n),t]};function xa(e){const t=e.filter(Wr),r=new Set([...Object.keys(Gr),...t.map(l=>l.geom)]),n=[],s=new Set;for(const l of e){const d=ea(l);d===null||r.has(d.type)||s.has(d.type)||(s.add(d.type),n.push({kind:"user-input",severity:"error",code:"MISSING_GEOM_RENDERER",message:`Custom geom '${d.type}' is registered but has no renderer.`,context:{requested:d.type,kind:"geom-renderer"},suggestion:`Add a render half for it: \`defineGeomRenderer(${d.type}Geom, { coord, render })\`, then include it in \`plugins\`.`}))}const a=new Map;for(const l of t){if("definition"in l)continue;const d=`${l.geom}|${l.coord}`,h=a.get(d);h?h.count+=1:a.set(d,{geom:l.geom,coord:l.coord,count:1})}const i=[];for(const{geom:l,coord:d,count:h}of a.values())h<2||i.push({kind:"user-input",severity:"warning",code:"DUPLICATE_REGISTERED_TYPE",message:`Multiple render-only overrides register ('${l}', '${d}') (${h} entries); the last in the array wins.`,context:{requested:`${l}@${d}`,kind:"geom-renderer"},suggestion:`Keep a single render-only override for ('${l}', '${d}').`});return{errors:n,warnings:i}}function va(e,t){const{coordSystem:r,layers:n}=e,s=new Set,a=[];for(const i of n)t(i.geom,r.type)!==null||s.has(i.geom)||(s.add(i.geom),a.push({kind:"user-input",severity:"warning",code:"MISSING_GEOM_RENDERER",message:`No renderer for geom '${i.geom}' under ${r.type} coords; the layer is not painted.`,context:{requested:i.geom,kind:"geom-renderer"},suggestion:`Register a renderer for ('${i.geom}', '${r.type}') via \`defineGeomRenderer\`.`}));return a}function ya(e,t){const{coordSystem:r,layers:n}=e,s=new Set,a=[];for(const i of n){if(i.interactive===!1||i.spatialKind!=="render-hit-test"||s.has(i.geom))continue;const l=t(i.geom,r.type);l===null||l.hitTest||Qe(l)||(s.add(i.geom),a.push({kind:"user-input",severity:"warning",code:"MISSING_RENDER_HIT_TEST",message:`Geom '${i.geom}' declares spatialKind 'render-hit-test' but its renderer provides no hit-test; the layer has no hover.`,context:{requested:i.geom,kind:"geom-renderer"},suggestion:`Add a \`hitTest\` factory (precomputed geometry) or an overlay render (\`{ fn, options: { overlay: true } }\`, live simulation) to the renderer for ('${i.geom}', '${r.type}').`}))}return a}function Aa(e){const t=new Set,r=[];for(const n of e.layers){const s=n.identityKey;n.interactive!==!1&&(n.spatialKind!=="render-hit-test"||typeof s!="object"||t.has(n.geom)||n.data.hasVariable(s.variable)||(t.add(n.geom),r.push({kind:"user-input",severity:"warning",code:"RENDER_HIT_TEST_IDENTITY",message:`Geom '${n.geom}' keys its identity on '${s.variable}', a column its compile output does not emit; its hover lookup is empty.`,context:{requested:n.geom,kind:"geom-renderer"},suggestion:`Emit the '${s.variable}' column from the geom's \`compile()\`, or point \`identityKey\` at a column it does emit.`})))}return r}function ba(e,t){const{coordSystem:r,layers:n}=e,s=new Set,a=[];for(const i of n){if(i.interactive===!1||i.spatialKind!=="render-hit-test"||s.has(i.geom))continue;const l=t(i.geom,r.type);l===null||!l.hitTest||!Qe(l)||(s.add(i.geom),a.push({kind:"user-input",severity:"warning",code:"CONFLICTING_RENDER_HIT_TEST",message:`Geom '${i.geom}' declares both a \`hitTest\` factory and an overlay render; these are alternatives, so only the overlay is used.`,context:{requested:i.geom,kind:"geom-renderer"},suggestion:"Keep one: a `hitTest` factory for precomputed geometry, OR an overlay render (`{ fn, options: { overlay: true } }`) for a live simulation."}))}return a}function Sa(e,t){const{coordSystem:r,layers:n}=e,s=new Set,a=[];for(const i of n){if(i.interactive===!1||i.spatialKind==="render-hit-test"||s.has(i.geom))continue;const l=t(i.geom,r.type);l===null||!Qe(l)||(s.add(i.geom),a.push({kind:"user-input",severity:"warning",code:"OVERLAY_REQUIRES_RENDER_HIT_TEST",message:`Geom '${i.geom}' declares an overlay render but its layer's spatialKind is '${i.spatialKind}', not 'render-hit-test'; the overlay's push-path hover resolves to nothing.`,context:{requested:i.geom,kind:"geom-renderer"},suggestion:"Have the geom's manifest yield spatialKind 'render-hit-test' so the compiled layer carries the `byKey` index the overlay's `pushHover` resolves against."}))}return a}const ja=e=>mt.createStore(t=>({compiled:e,setCompiled:r=>t(n=>n.compiled===r?n:{compiled:r})})),we=e=>{const t=f.useRef(e);return t.current=e,t};class wa{constructor(t){this.compiler=t,this.current=null,this.last=null}get compiled(){return this.current}compile(t){return this.last=t,this.absorb(this.compiler.compile(t))}update(t){const r=this.last,n=!r||t.input!==r.input,s=!r||t.data!==r.data,a=!r||t.ctx!==r.ctx;if(!n&&!s&&!a)return null;this.last=t;const i=this.current;return{outcome:n||a||!i?this.absorb(this.compiler.compile(t)):this.absorb(this.compiler.recompile({spec:i.spec,data:t.data})),inputChanged:n}}applyCommand(t){if(!this.current||!this.last)return null;const r=t.apply(this.current.spec);if(!r)return null;const n=this.compiler.recompile({spec:r.spec});if(!n.ok)return{status:"rejected",errors:n.errors};this.current=n.compiled;const s=u.convertSpecToInput(n.compiled.spec);return this.last={input:s,data:this.last.data,ctx:this.last.ctx},{status:"rendered",compiled:n.compiled,warnings:n.warnings,input:s}}absorb(t){return t.ok?(this.current=t.compiled,{status:"rendered",compiled:t.compiled,warnings:t.warnings}):{status:"failed",errors:t.errors,warnings:t.warnings}}}const Ea=({input:e,data:t,ctx:r,plugins:n,resolveRenderer:s,onChange:a,onError:i,onWarnings:l})=>{const d=we(i),h=we(l),[{session:g,compileBus:p}]=f.useState(()=>{const A=u.createCompiler({plugins:n});return{session:new wa(A),compileBus:ha(A)}}),m=f.useRef(null),v=f.useCallback(A=>A.status==="failed"?A.errors:(m.current?m.current.getState().setCompiled(A.compiled):m.current=ja(A.compiled),null),[]),[x]=f.useState(()=>xa(n??[])),b=f.useCallback(A=>x.errors.length===0?A:[...x.errors,...A??[]],[x]),y=f.useCallback(A=>A.status==="rendered"?[...A.warnings,...va(A.compiled,s),...ya(A.compiled,s),...Aa(A.compiled),...ba(A.compiled,s),...Sa(A.compiled,s)]:A.warnings,[s]),j=f.useRef(null),[M,D]=f.useState(()=>{const A=g.compile({input:e,data:t,ctx:r});return j.current=A,b(v(A))}),E=f.useCallback(A=>{A.length!==0&&(ct(A),d.current?.(A))},[d]),I=f.useCallback(A=>{A.length!==0&&(ct(A),h.current?.(A))},[h]);f.useEffect(()=>{const A=j.current;A&&(E([...x.errors,...A.status==="failed"?A.errors:[]]),I([...x.warnings,...y(A)]),A.status==="rendered"&&p.emit({kind:"init"}))},[p,E,I,x,y]),f.useEffect(()=>{const A=g.update({input:e,data:t,ctx:r});if(!A)return;const C=v(A.outcome);D(b(C)),C&&E(C),I(y(A.outcome)),C||p.emit({kind:A.inputChanged?"input":"data"})},[e,t,r,g,p,v,E,I,b,y]);const z=f.useCallback(A=>{const C=g.applyCommand(A);if(!C)return;if(C.status==="rejected"){E(C.errors);return}m.current?.getState()?.setCompiled(C.compiled),p.emit({kind:"command",command:A}),I(y(C)),a?.(C.input)},[a,g,p,E,I,y]);return{store:m.current,dispatch:z,compileBus:p,compileErrors:M}},Yr=f.createContext(null),ie=()=>{const e=f.useContext(Yr);if(!e)throw new Error("useGraph* hooks must be used inside a <GraphProvider>");return e},w=e=>{const{store:t}=ie();return Se.useStore(t,r=>e(r.compiled))},bt=()=>{const{dispatch:e}=ie();return e},Ur=({data:e,input:t,plugins:r=[],formattingLocale:n,onChange:s,onError:a,onWarnings:i,customPalettes:l,theme:d="light",fontList:h,themeOverrides:g,children:p})=>{const[m]=f.useState(()=>Or(r.filter(Wr))),v=ta(t,g,h),x=f.useMemo(()=>({customPalettes:l,theme:d}),[l,d]),{store:b,dispatch:y,compileBus:j,compileErrors:M}=Ea({input:t,data:e,ctx:x,plugins:r,resolveRenderer:m,onChange:s,onError:a,onWarnings:i}),D=f.useMemo(()=>b?{store:b,dispatch:y,formattingLocale:n,compileBus:j,theme:d,themeOverrides:v}:null,[b,y,n,j,d,v]);return o.jsx(zr,{forcedErrors:M,onError:a,resetKeys:[t,e],children:D?o.jsx(Yr.Provider,{value:D,children:o.jsx(us,{value:m,children:p})}):null})};function Ca(e){const t=u.createGraphyBuilder(e);return{...t,GraphProvider:n=>o.jsx(Ur,{...n,plugins:t.plugins})}}const ka=()=>mt.createStore(e=>({hover:u.RESTING_HOVER_STATE,tooltipAnchor:null,calloutHits:[],setHoverState:t=>e(r=>r.hover===t?r:{hover:t}),setTooltipAnchor:t=>e(r=>La(r.tooltipAnchor,t)?r:{tooltipAnchor:t}),setCalloutHits:t=>e(r=>r.calloutHits===t?r:{calloutHits:t})})),La=(e,t)=>e===t?!0:e===null||t===null?!1:e.x===t.x&&e.y===t.y&&e.placement===t.placement,Pa=(e,t)=>{const r=f.useMemo(()=>({layers:e,coordSystem:t}),[e,t]),n=f.useRef(null);n.current===null&&(n.current=new u.HoverEngine(r));const s=n.current,a=f.useRef(!1);return f.useEffect(()=>{if(!a.current){a.current=!0;return}s.update(r)},[s,r]),s},Vr=f.createContext(null),Qr=({children:e})=>{const{layers:t,coordSystem:r}=w(V.useShallow(l=>({layers:l.layers,coordSystem:l.coordSystem}))),n=Pa(t,r),[s]=f.useState(()=>ka()),a=f.useRef(null),i=f.useRef(null);return i.current===null&&(i.current={engine:n,store:s,overlayRef:a}),o.jsx(Vr.Provider,{value:i.current,children:e})},le=()=>{const e=f.useContext(Vr);if(e===null)throw new Error("useHoverContext must be used inside a <HoverProvider>.");return e};function Xr(e,t){const{engine:r}=le(),n=f.useRef(t);f.useEffect(()=>{n.current=t},[t]),f.useEffect(()=>(r.registerHitTester(e,s=>n.current(s)),()=>r.unregisterHitTester(e)),[r,e])}const Ta=({hitTest:e,input:t})=>{const r=f.useMemo(()=>e(t),[e,t.layer.data]);return Xr(t.layer.id,r),null},Ra="graphy_root",ae=()=>typeof document>"u"?null:document.getElementById(Ra)??document.body;var Ba="_18wdpym0";const Ma=({rect:e,children:t})=>{const r=ae();return r?gr.createPortal(o.jsx("div",{className:Ba,style:{left:e.left,top:e.top,width:e.width,height:e.height},children:t}),r):null},qr=(e,t)=>{const r=we(e),n=we(t),s=f.useRef(null),a=f.useRef(null),i=f.useMemo(()=>{const l=()=>{a.current!==null&&(clearTimeout(a.current),a.current=null),s.current=null},d=()=>{a.current!==null&&(clearTimeout(a.current),a.current=null);const g=s.current;g!==null&&(s.current=null,r.current(...g))};return{run:(...g)=>{if(n.current<=0){r.current(...g);return}s.current=g,a.current!==null&&clearTimeout(a.current),a.current=setTimeout(d,n.current)},flush:d,cancel:l}},[r,n]);return f.useEffect(()=>()=>{a.current!==null&&clearTimeout(a.current)},[]),i},Ia={width:0,height:0,isDefault:!0},Kr=({debounce:e=0,onResize:t}={})=>{const[r,n]=f.useState(Ia),s=f.useRef(null),a=qr(h=>{const g=s.current;g&&g.width===h.width&&g.height===h.height||(s.current={width:h.width,height:h.height},t?.(h),n(h))},e),i=f.useRef(null),l=f.useRef(null),d=f.useCallback(h=>{i.current!==h&&(i.current&&l.current?.unobserve(i.current),i.current=h,h&&(l.current??=new ResizeObserver(([g])=>{if(!g)return;const p=Math.round(g.contentBoxSize[0]?.inlineSize??g.contentRect.width),m=Math.round(g.contentBoxSize[0]?.blockSize??g.contentRect.height);a.run({width:p,height:m,isDefault:!1})}),l.current.observe(h)))},[a]);return{...r,setElement:d}};function Jr(){const[e,t]=f.useState(null),r=f.useRef(null),n=f.useRef(null),s=f.useRef(null),a=f.useCallback(()=>{s.current=null;const h=n.current;if(!h)return;const g=h.getBoundingClientRect();if(g.width===0||g.height===0){r.current!==null&&(r.current=null,t(null));return}const p={left:g.left,top:g.top,width:g.width,height:g.height},m=r.current;m&&m.left===p.left&&m.top===p.top&&m.width===p.width&&m.height===p.height||(r.current=p,t(p))},[]),i=f.useCallback(()=>{s.current===null&&(s.current=requestAnimationFrame(a))},[a]),{setElement:l}=Kr({onResize:i}),d=f.useCallback(h=>{n.current=h,l(h),h&&a()},[l,a]);return f.useEffect(()=>(window.addEventListener("scroll",i,!0),window.addEventListener("resize",i),()=>{window.removeEventListener("scroll",i,!0),window.removeEventListener("resize",i),s.current!==null&&cancelAnimationFrame(s.current)}),[i]),{ref:d,rect:e}}function Zr(e){const{engine:t,store:r}=le();return f.useCallback((n,s)=>{const{hover:a,setHoverState:i,setTooltipAnchor:l}=r.getState(),d=n===null?u.RESTING_HOVER_STATE:t.resolveHoverByKey(e,n);if(d.primary===null){a.primary?.layerId===e&&(i(u.RESTING_HOVER_STATE),l(null));return}i(d),l(s?{x:s.clientX,y:s.clientY,placement:"top"}:null)},[t,r,e])}const Na=({render:e,input:t})=>{const r=Zr(t.layer.id),{ref:n,rect:s}=Jr();return f.useEffect(()=>()=>r(null),[r]),o.jsxs(o.Fragment,{children:[o.jsx("rect",{ref:n,x:0,y:0,width:"100%",height:"100%",fill:"none",pointerEvents:"none"}),s&&o.jsx(Ma,{rect:s,children:o.jsx(Ha,{render:e,input:t,pushHover:r,panelRect:s})})]})},Ha=({render:e,input:t,pushHover:r,panelRect:n})=>e({...t,overlay:{pushHover:r,panelRect:n}}),Fa=({children:e,...t})=>o.jsx("svg",{viewBox:"0 0 1 1",preserveAspectRatio:"none",width:"100%",height:"100%",pointerEvents:"none",...t,children:e}),k=(e,t)=>`color-mix(in srgb, transparent, ${e} ${t*100}%)`,Xe=(e,t)=>`hsl(from ${e} h s calc(l * ${1-t}))`,St=(e,t)=>`hsl(from ${e} h s calc(l * ${1+t}))`,ut=(e,t,r)=>`color-mix(in srgb, ${e}, ${t} ${r*100}%)`,Da=e=>/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(e),Ga=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);var Oa="drqe3u0",Wa="drqe3u1",za="drqe3u2",Ya="drqe3u3",Be="drqe3u4",Ua="drqe3u5",Va="drqe3u6",Qa="drqe3u7",tt="drqe3u8",Xa="drqe3u9",qa="drqe3ua",Ka="drqe3ub",Ja="drqe3uc",Za="drqe3ud",_a="drqe3ue",$a="drqe3uf",ei="drqe3ug",ti="drqe3uh",ri="drqe3ui",zt={enabled:"drqe3uk drqe3uj",disabled:"drqe3ul drqe3uj"},Yt={ran:"drqe3un drqe3um",dim:"drqe3uo drqe3um"},_r={ran:"drqe3uq drqe3up",cached:"drqe3ur drqe3up",untouched:"drqe3us drqe3up"};const ni=({width:e=380,style:t,className:r}={})=>{const{compileBus:n}=ie(),[s]=f.useState(()=>ga()),[a,i]=f.useState(!1),[l,d]=f.useState(u.isCompilerCachingEnabled);f.useEffect(()=>{const{recordCompile:x}=s.getState(),b=n.getLastTrigger(),y=n.getLastCompile();return b&&y&&x(b,y),n.subscribe(x)},[s,n]);const h=Se.useStore(s,x=>x.lastCompile),g=Se.useStore(s,x=>x.history),p=n.getCacheStats(),m=h===null&&g.length===0,v=()=>{d(x=>{const b=!x;return u.setCompilerCachingEnabled(b),b})};return o.jsxs("div",{className:H(qa,r),style:{width:e,...t},children:[o.jsxs("div",{className:Oa,children:[o.jsxs("div",{children:[o.jsx("div",{className:Wa,children:"compile cache"}),o.jsx("div",{className:_a,children:m?"production: stats disabled":h?`last: ${h.label} · ${$r(h.durationMs)}`:"awaiting first compile…"})]}),o.jsx("button",{type:"button",onClick:()=>i(x=>!x),className:$a,children:a?"▾":"▴"})]}),!a&&o.jsxs("div",{className:Ka,children:[o.jsxs("button",{type:"button",onClick:v,className:l?zt.enabled:zt.disabled,"aria-pressed":l,children:["cache ",l?"enabled":"disabled"]}),o.jsx("span",{className:ei,children:"next compile reflects this toggle"})]}),!a&&!m&&o.jsxs(o.Fragment,{children:[o.jsx(oi,{delta:h?.stages,cumulative:p}),o.jsx(si,{entries:g})]})]})},oi=({delta:e,cumulative:t})=>o.jsxs("table",{className:za,children:[o.jsx("thead",{children:o.jsxs("tr",{className:ti,children:[o.jsx("th",{className:Ya,children:"stage"}),o.jsx("th",{className:Be,children:"Δ miss"}),o.jsx("th",{className:Be,children:"Δ hit"}),o.jsx("th",{className:Be,children:"total miss"}),o.jsx("th",{className:Be,children:"total hit"})]})}),o.jsx("tbody",{children:u.COMPILER_STAGE_KEYS.map(r=>{const n=e?.[r],s=ai(n);return o.jsxs("tr",{className:Ja,children:[o.jsxs("td",{className:Ua,children:[o.jsx("span",{className:_r[s],"aria-hidden":!0})," ",r]}),o.jsx("td",{className:s==="ran"?Yt.ran:Yt.dim,children:n?.misses??0}),o.jsx("td",{className:tt,children:n?.hits??0}),o.jsx("td",{className:tt,children:t[r].misses}),o.jsx("td",{className:tt,children:t[r].hits})]},r)})})]}),si=({entries:e})=>e.length===0?null:o.jsxs("div",{className:Za,children:[o.jsx("div",{className:ri,children:"recent compiles"}),e.map(t=>{const r=ii(t.stages,a=>a.misses>0),n=u.COMPILER_STAGE_KEYS.length,s=r===0?"cached":"ran";return o.jsxs("div",{className:Va,children:[o.jsx("span",{className:_r[s],"aria-hidden":!0}),o.jsx("span",{className:Qa,title:t.label,children:t.label}),o.jsxs("span",{className:Xa,children:[r,"/",n," ran · ",$r(t.durationMs)]})]},t.id)})]}),ai=e=>!e||e.hits===0&&e.misses===0?"untouched":e.misses>0?"ran":"cached",ii=(e,t)=>{let r=0;for(const n of u.COMPILER_STAGE_KEYS)t(e[n])&&(r+=1);return r},$r=e=>e>=10?`${e.toFixed(0)}ms`:`${e.toFixed(2)}ms`,en=Object.freeze({}),jt=f.createContext(en),li=({slots:e,children:t})=>o.jsx(jt.Provider,{value:e??en,children:t});function ne(e,t){const r=f.useContext(jt)[e];return r===void 0?t:typeof r=="object"&&di(r)?r.render:r}function ci(){const e=f.useContext(jt);return{measureAxis:e.AxisTicks?.measure,measureAxisLabel:e.AxisLabel?.measure,measureLegend:e.Legend?.measure,measureHeadline:e.Headline?.measure.measureHeadline,measureHeadlineItemWidths:e.Headline?.measure.measureHeadlineItemWidths}}function di(e){return"render"in e&&"measure"in e}function Ee(e){const{store:t}=le();return Se.useStore(t,e)}var ui="_19519k80",hi="_19519k81",gi="_19519k82",fi="_19519k83",pi="_19519k85",mi="_19519k86",xi="_19519k87",vi="_19519k88",yi="_19519k89";const Ai=e=>{const{overlayRef:t}=le(),r=f.useRef(null),[n,s]=f.useState(!1),a=we(e);return f.useEffect(()=>{const i=t.current;if(!i)return;const l=h=>{r.current={clientX:h.clientX,clientY:h.clientY},s(!0),a.current?.()},d=()=>{r.current=null,s(!1)};return i.addEventListener("pointermove",l),i.addEventListener("pointerleave",d),()=>{i.removeEventListener("pointermove",l),i.removeEventListener("pointerleave",d)}},[t,a]),{cursorRef:r,isInside:n}},bi=16,Ut=8,Si={x:0,y:0,top:0,left:0,right:0,bottom:0,width:0,height:0,toJSON:()=>({})},ji=()=>{const e=w(V.useShallow(x=>({layers:x.layers,coordSystem:x.coordSystem,scales:x.scales,guides:x.guides,numberFormat:x.config.numberFormat,parsingLocale:x.config.parsingLocale}))),{formattingLocale:t}=ie(),r=Ee(x=>x.hover),n=Ee(x=>x.tooltipAnchor),s=ne("Tooltip",tn),a=f.useRef(()=>{}),{cursorRef:i,isInside:l}=Ai(()=>a.current()),d=f.useMemo(()=>u.buildTooltipContent({...e,hover:r,formattingLocale:t}),[e,r,t]),h=d!==null&&(l||n!==null),g=f.useMemo(()=>({getBoundingClientRect:()=>{if(n!==null)return Ei(n);const x=i.current;return x===null?Si:wi(x)}}),[i,n]),{refs:p,floatingStyles:m,update:v}=R.useFloating(Ci({isOpen:h,tooltipAnchor:n,virtualReference:g}));return a.current=v,h?o.jsx("div",{ref:p.setFloating,role:"tooltip",className:vi,style:m,"data-testid":"chart-tooltip",children:o.jsx(s,{content:d})}):null},tn=({content:e})=>{const t=ee(),r=w(n=>n.coordSystem);return o.jsxs("div",{className:yi,children:[e.header!==null&&o.jsx("div",{className:ui,children:e.header}),o.jsx("div",{className:hi,children:e.rows.map(n=>{const s=t(n.geom,r.type);return o.jsx(ki,{row:n,swatchShape:s?.swatchShape??"square",shouldHighlight:n.isPrimary&&e.rows.length>1},n.key)})})]})},wi=e=>({x:e.clientX,y:e.clientY,top:e.clientY,left:e.clientX,right:e.clientX,bottom:e.clientY,width:0,height:0,toJSON:()=>({})}),Ei=e=>({x:e.x,y:e.y,top:e.y,left:e.x,right:e.x,bottom:e.y,width:0,height:0,toJSON:()=>({})}),Ci=({isOpen:e,tooltipAnchor:t,virtualReference:r})=>({open:e,placement:t!==null?t.placement:"right",middleware:t!==null?[R.offset(u.ANNOTATION_TOOLTIP_MARKER_GAP),R.shift({padding:Ut})]:[R.offset(bi),R.flip(),R.shift({padding:Ut})],elements:{reference:r}}),ki=({row:e,swatchShape:t,shouldHighlight:r})=>o.jsxs("div",{className:H(gi,{[fi]:r}),"data-testid":"chart-tooltip-row",children:[e.swatchColor===null?o.jsx("span",{className:pi,"aria-hidden":!0}):o.jsx(Ce,{shape:t,color:e.swatchColor,lineType:e.swatchLineType}),o.jsx("span",{className:mi,children:e.label}),o.jsx("span",{className:xi,children:e.value})]}),Li={small:1.9,medium:2.3,large:2.6},Pi={small:1,medium:1,large:1.2},Ti=F,rn=O.sm,nn=2,on=24,sn=12,an=10,ln=8,cn=8,dn=8,un=2,hn=1,gn=2,fn=4,pn=T.sm,mn=O.sm,xn=F,Ri=gn*fn,vn=!1,Me=6,yn=10,Y=e=>`${e}px`,An={graphPadding:Y(u.LAYOUT_PADDING),gridLineWidth:"1px",gridLineDash:"2 3",gridLineDotted:"1 3",tooltipBorderRadius:"6px",tooltipBorderWidth:"1px",tooltipPaddingBlock:"8px",tooltipPaddingInline:"10px",tooltipRowGap:"4px",tooltipShadow:"0 4px 12px rgba(0, 0, 0, 0.18)",tickLabelOffset:Y(yn),legendItemGap:Y(cn),legendSwatchGap:Y(ln),legendSwatchWidth:Y(an),legendSwatchHeight:Y(sn),legendPillPaddingInline:Y(dn),legendPillPaddingBlock:Y(un),legendPillBorderWidth:Y(hn),headlineRowGap:Y(nn),headlineItemGap:Y(on)},bn={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)"},Sn={radiiXs:"4px",radiiSm:"6px",radiiMd:"8px",radiiLg:"12px"},jn={zIndexToolbar:"10",zIndexToolbarTooltip:"20",zIndexToolbarPopover:"30"},Bi=8,de=e=>`${Bi*e}px`,wn={spaceXxs:de(.25),spaceXs:de(.5),spaceSm:de(.75),spaceMd:de(1),spaceLg:de(1.5),spaceXl:de(2)},Mi={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)"},Ii={textPrimary:c.grey0,textSecondary:k(c.textPrimary,.8),textDisabled:k(c.textPrimary,.5),iconPrimary:"currentColor",iconSecondary:k(c.textPrimary,.6),iconStickerBackground:c.grey70,border100:c.grey0,border50:k(c.grey0,.5),border10:k(c.grey0,.1),brand:c.purple50,success:c.green50,warning:c.amber50,alert:c.red50,sunkenBackground:c.grey100,defaultBackground:c.grey90,raisedBackground:c.grey80,overlayBackground:c.grey90,overlayBorderGradient:c.greyGradient80},Ni={graphBackground:c.grey90,gridLineColor:c.border10,originLineColor:c.grey0,targetLineColor:c.border100,targetLineMarkerColor:c.border100,targetLineLabelTextColor:c.grey100,legendBackground:c.defaultBackground,legendBorderColor:c.border10,legendFocusOutlineColor:c.border50,legendTextColor:c.textPrimary,dimmedSeriesLabelTextColor:c.textDisabled,dimmedSeriesLabelLineColor:c.grey60,trendNegativeColor:c.red60,trendPositiveColor:c.green60,trendNeutralColor:c.textSecondary,toolbarBackgroundColor:c.overlayBackground,toolbarButtonBackgroundColor:"transparent",toolbarButtonBackgroundColorHovered:c.grey80,toolbarButtonBackgroundColorSelected:c.grey60,toolbarSeparatorColor:c.grey60,tooltipBackground:c.grey70,tooltipBorderColor:c.grey60,tooltipHeadingTextColor:c.textPrimary,tooltipLabelTextColor:c.textSecondary,tooltipValueTextColor:c.textPrimary,tooltipPrimaryRowColor:c.grey60,hoverGuideLineColor:k(c.white,.2),hoverGuideFillColor:k(c.white,.06),hoveredBarBorderColor:c.white,hoveredPointRingColor:c.white,pointStrokeColor:c.white,stackedBarHoverBorderColor:c.grey0,heatmapEmptyTileBackground:c.grey80,dataLabelOutsideBackground:k(c.textPrimary,.1),defaultAnnotationArrowStroke:c.white,defaultAnnotationShapeStroke:c.white,defaultAnnotationShapeFill:c.canvasBlue,arrowAnnotationStickerOutlineColor:"#FFFFFF",arrowAnnotationStickerOutlineColorInverse:"#1D2129",annotationFrameBorderColor:c.blue60,annotationMenuTriggerIconColor:c.white},Hi={canvasDefault:"#FFFFFF",canvasBlue:"#60a5fa",canvasCyan:"#22d3ee",canvasGreen:"#34d399",canvasYellow:"#FFC800",canvasOrange:"#fb923c",canvasRed:"#f87171",canvasPink:"#F979D9",canvasPurple:"#a78bfa",canvasGray:"#a8a29e",canvasInverse:"#000000"},Fi={...Mi,...Ii,...bn,...Sn,...wn,...jn,...Ni,...Hi,...An,...Br,...Mr,...Ir},Di={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)"},Gi={textPrimary:c.black,textSecondary:k(c.textPrimary,.6),textDisabled:k(c.textPrimary,.5),iconPrimary:"currentColor",iconSecondary:k(c.textPrimary,.6),iconStickerBackground:c.grey100,brand:c.purple50,success:c.green50,warning:c.amber50,alert:c.red50,border100:c.grey0,border50:k(c.grey0,.5),border10:k(c.grey0,.1),sunkenBackground:c.grey90,defaultBackground:c.grey100,raisedBackground:c.grey85,overlayBackground:c.grey100,overlayBorderGradient:c.border10},Oi={graphBackground:c.grey100,gridLineColor:c.border10,originLineColor:c.grey0,targetLineColor:c.border100,targetLineMarkerColor:"#A0A6C5",targetLineLabelTextColor:c.grey100,legendBackground:c.defaultBackground,legendBorderColor:c.border10,legendFocusOutlineColor:c.border50,legendTextColor:c.textPrimary,dimmedSeriesLabelTextColor:c.textDisabled,dimmedSeriesLabelLineColor:c.grey60,trendNegativeColor:c.red60,trendPositiveColor:c.green60,trendNeutralColor:c.textSecondary,toolbarBackgroundColor:c.overlayBackground,toolbarButtonBackgroundColor:"transparent",toolbarButtonBackgroundColorHovered:c.grey80,toolbarButtonBackgroundColorSelected:c.grey60,toolbarSeparatorColor:c.grey60,tooltipBackground:c.white,tooltipBorderColor:c.border10,tooltipHeadingTextColor:c.textPrimary,tooltipLabelTextColor:c.textSecondary,tooltipValueTextColor:c.textPrimary,tooltipPrimaryRowColor:c.grey80,hoverGuideLineColor:k(c.black,.2),hoverGuideFillColor:k(c.black,.04),hoveredBarBorderColor:c.white,hoveredPointRingColor:c.white,pointStrokeColor:c.white,stackedBarHoverBorderColor:c.grey0,heatmapEmptyTileBackground:c.grey80,dataLabelOutsideBackground:k(c.textPrimary,.1),defaultAnnotationArrowStroke:c.black,defaultAnnotationShapeStroke:c.black,defaultAnnotationShapeFill:c.canvasBlue,arrowAnnotationStickerOutlineColor:"#1D2129",arrowAnnotationStickerOutlineColorInverse:"#FFFFFF",annotationFrameBorderColor:c.blue60,annotationMenuTriggerIconColor:"#3d414c"},Wi={canvasDefault:"#000000",canvasBlue:"#3b82f6",canvasCyan:"#06b6d4",canvasGreen:"#10b981",canvasYellow:"#E5B400",canvasOrange:"#f97316",canvasRed:"#ef4444",canvasPink:"#E845BF",canvasPurple:"#8b5cf6",canvasGray:"#78716c",canvasInverse:"#ffffff"},zi={...Di,...Gi,...bn,...Sn,...wn,...jn,...Oi,...Wi,...An,...Br,...Mr,...Ir},En=(e,t={})=>({...e==="dark"?Fi:zi,...t}),Cn=(e,t)=>{const r=En(e,t),n=U(r.legendPillPaddingInline,dn),s=U(r.legendPillPaddingBlock,un),a=U(r.legendPillBorderWidth,hn);return{graphPadding:U(r.graphPadding,u.LAYOUT_PADDING),tickLabelOffset:U(r.tickLabelOffset,yn),legendSwatchWidth:U(r.legendSwatchWidth,an),legendSwatchHeight:U(r.legendSwatchHeight,sn),legendSwatchGap:U(r.legendSwatchGap,ln),legendItemGap:U(r.legendItemGap,cn),legendPillPaddingInline:n,legendPillPaddingBlock:s,legendPillBorderWidth:a,legendPillHorizontalChrome:2*(n+a),legendPillVerticalChrome:2*(s+a),headlineRowGap:U(r.headlineRowGap,nn),headlineItemGap:U(r.headlineItemGap,on)}},Yi=Object.freeze(Cn("light"));function U(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}const kn=f.createContext(Yi),Ui=({metrics:e,children:t})=>o.jsx(kn.Provider,{value:e,children:t}),wt=()=>f.useContext(kn),Et=T.sm,Ln=F,Vi=({textMeasurer:e,textScale:t,metrics:r})=>{const{tickLabelOffset:n}=r;return s=>{const a=s.position==="top"||s.position==="bottom",i=s.ticks.map(g=>e.measureText(g.formattedLabel,{family:Ln,size:$(Et,t)})),l=s.labelMaxWidthPx??Number.POSITIVE_INFINITY,d=s.ticksVisible?n:0;if(a){if(s.labelRotation!==0){const g=i.map(m=>m.width);return Vt(g,l)+2*d}return Math.max(...i.map(g=>g.height))+d}return Vt(i.map(g=>g.width),l)+d}},Vt=(e,t)=>Math.min(Math.max(...e),t),Qi=({textScale:e})=>()=>$(Et,e),Xi=T.xs,Pn=F,qi=_.medium,Qt=4,Tn=(e,t)=>(r,n)=>{const{fontSize:s,fontWeight:a,paddingX:i,paddingY:l}=u.getDataLabelDimensions(r,t),d=e.measureText(n,{family:Pn,size:s,weight:a});return{...d,width:d.width+i*2,height:d.height+l*2}},Ki=({textMeasurer:e,textScale:t})=>(r,n)=>{const{labelLineHeight:s,labelFontWeight:a}=u.getDifferenceArrowDimensions(n,t);return e.measureText(r,{family:F,size:s,weight:a})},Ji=({textMeasurer:e,textScale:t,metrics:r})=>(n,s)=>{const a=Rn(n,s,e,t,r.headlineRowGap),i=Bn(a.map(d=>d.width)),l=Math.max(0,a.length-1)*r.headlineItemGap;return{width:i+l,height:Math.max(0,...a.map(d=>d.height))}},Zi=({textMeasurer:e,textScale:t,metrics:r})=>(n,s)=>Rn(n,s,e,t,r.headlineRowGap).map(a=>a.width),_i=({textMeasurer:e,textScale:t})=>(r,n)=>{const s=ht("value",n,t);return{width:e.measureText(r,s).width,height:s.size*rn}},$i=({textMeasurer:e,textScale:t,metrics:r})=>{const n=Ji({textMeasurer:e,textScale:t,metrics:r}),s=_i({textMeasurer:e,textScale:t});return(a,i)=>a.kind==="perGroup"?n(a,i):s(a.value,i)},Rn=(e,t,r,n,s)=>{const a={value:ht("value",t,n),label:ht("label",t,n)},i=l=>el(l,a,r);return e.items.map(l=>{const d=u.createHeadlineItemRows(l).map(i),h=Math.max(0,d.length-1)*s;return{width:Math.max(0,...d.map(g=>g.width)),height:Bn(d.map(g=>g.height))+h}})},el=(e,t,r)=>{let n=0,s=0;for(const a of e.segments)if(a.kind==="text"){const i=t[a.fontRole];n+=r.measureText(a.text,i).width,s=Math.max(s,i.size*rn)}else n+=a.size,s=Math.max(s,a.size);return{width:n+Math.max(0,e.segments.length-1)*e.gap,height:s}},ht=(e,t,r)=>{const n=e==="value"?Li[t]:Pi[t];return{family:Ti,size:$(n,r)}},Bn=e=>e.reduce((t,r)=>t+r,0),Mn=e=>{const t=$(pn,e);return{fontSizePx:t,lineBoxHeight:t*mn}},In=(e,t)=>e?t:0,tl=({textMeasurer:e,textScale:t,metrics:r})=>n=>{const{fontSizePx:s,lineBoxHeight:a}=Mn(t),i={family:xn,size:s};if(n.position==="top"||n.position==="bottom")return Math.max(a,r.legendSwatchHeight)+r.legendPillVerticalChrome;const d=n.items.map(h=>{const g=e.measureText(h.formattedLabel,i).width,p=In(h.visual.color,r.legendSwatchWidth);return p+(p>0?r.legendSwatchGap:0)+g});return Math.max(...d)+r.legendPillHorizontalChrome},rl=({textMeasurer:e,textScale:t})=>r=>e.measureText(r,{family:Ln,size:$(Et,t)}),nl=Object.freeze({}),ol=(e,t,r,n=nl)=>{const s=f.useRef(n);return s.current=n,f.useMemo(()=>{if(!e)return null;const a=Vi({textMeasurer:e,textScale:t,metrics:r}),i=Qi({textScale:t}),l=tl({textMeasurer:e,textScale:t,metrics:r}),d=$i({textMeasurer:e,textScale:t,metrics:r}),h=Zi({textMeasurer:e,textScale:t,metrics:r}),g={measureText:(p,m)=>e.measureText(p,m),textScale:t};return{measureAxis:p=>{if(al(p))return 0;const m=s.current.measureAxis;return m?m(p,g):a(p)},measureAxisLabel:p=>{const m=s.current.measureAxisLabel;return m?m(p,g):i()},measureLegend:p=>{if(il(p))return 0;const m=s.current.measureLegend;return m?m(p,g):l(p)},measureHeadline:(p,m)=>(s.current.measureHeadline??d)(p,m),measureHeadlineItemWidths:(p,m)=>(s.current.measureHeadlineItemWidths??h)(p,m),measureTickLabel:rl({textMeasurer:e,textScale:t}),measureDifferenceArrowLabel:Ki({textMeasurer:e,textScale:t}),measureDataLabel:Tn(e,t)}},[e,t,r])},sl=({measurer:e,axes:t,numberFormat:r,parsingLocale:n,formattedLegends:s,containerSize:a,externalMeasurements:i,headline:l,formattingLocale:d,annotations:h,layers:g,coordSystem:p,textScale:m,overflowStrategy:v,graphPadding:x})=>f.useMemo(()=>e?new u.LayoutCompiler(e).compile({axes:t,numberFormat:r,parsingLocale:n,formattedLegends:s,containerSize:a,externalMeasurements:i,headline:l,formattingLocale:d,annotations:h,layers:g,coordSystem:p,textScale:m,overflowStrategy:v,padding:x}):null,[t,r,n,s,a,i,v,l,d,h,g,p,m,x,e]),al=e=>!e.isVisible||e.ticks.length===0,il=e=>e.items.length===0,Xt="data-variant",Nn=wo.Paragraph.extend({addAttributes(){return{variant:{default:null,parseHTML:e=>e.getAttribute(Xt)??null,renderHTML:e=>e.variant?{[Xt]:e.variant}:{}}}}}),ll=jo.Extension.create({name:"preventBackspaceAcrossTitleBoundary",addOptions(){return{isTitleVisible:!0}},addKeyboardShortcuts(){return{Backspace:({editor:e})=>{if(!this.options.isTitleVisible)return!1;const{selection:t}=e.state;if(!t.empty)return!1;const{$from:r}=t;return r.depth!==1||r.parentOffset!==0?!1:r.index(0)===1}}}}),cl=({titlePlaceholder:e,subtitlePlaceholder:t,isTitleVisible:r,isSubtitleVisible:n})=>[ul({isTitleVisible:r,isSubtitleVisible:n}),Nn,yr.Text,Ne.UndoRedo,mr.Heading.configure({levels:[1,2,3]}),fr.Bold,xr.Italic,br.Underline,Ar.TextAlign.configure({types:["heading","paragraph"]}),vr.Link.configure({openOnClick:!1,autolink:!0}),he.TextStyle,he.Color,he.FontFamily,pr.HardBreak,ll.configure({isTitleVisible:r}),Ne.Placeholder.configure({showOnlyCurrent:!1,placeholder:({pos:s,editor:a})=>{if(r&&s===0)return e;const i=r?a.state.doc.firstChild?.nodeSize??-1:0;return n&&s===i?t:""}})],dl=({placeholder:e})=>[at.Document,Nn,yr.Text,Ne.UndoRedo,mr.Heading.configure({levels:[1,2,3]}),fr.Bold,xr.Italic,br.Underline,Ar.TextAlign.configure({types:["heading","paragraph"]}),vr.Link.configure({openOnClick:!1,autolink:!0}),he.TextStyle,he.Color,he.FontFamily,pr.HardBreak,Ne.Placeholder.configure({showOnlyCurrent:!1,placeholder:({pos:t})=>t===0?e:""})],ul=({isTitleVisible:e,isSubtitleVisible:t})=>e&&t?at.Document.extend({content:"block{2,}"}):at.Document,De=.1,hl={light:.05,dark:.1},gl=(e,t)=>{switch(e.type){case"none":return null;case"solid":return e.color;case"tinted":return ml(e.color,t);case"gradient":return xl(e.color,t);case"preset":return u.BORDER_PRESET_GRADIENTS[e.preset]}},fl=e=>e.type==="none"?0:e.width,pl=(e,t,r)=>{if(e.type==="solid")return e.color;if(e.type==="tinted")return ut(r,e.color,hl[t])},ml=(e,t)=>t==="dark"?Xe(e,De):St(e,De),xl=(e,t,r=90)=>{const n=e,s=t==="dark"?Xe(e,De):St(e,De);return`linear-gradient(${r}deg, ${n} 0%, ${s} 100%)`};var vl="bow4tg0",yl="bow4tg1",Al="bow4tg2",bl="bow4tg3",Hn="_1ii3bsb0",Fn="_1ii3bsb1";const Ct=f.createContext(null),kt=()=>{const e=f.useContext(Ct);if(!e)throw new Error("useThemeContext must be used inside a <ThemeProvider>.");return e},Dn=({theme:e,themeOverrides:t={},appearance:r,children:n})=>{const s=f.useMemo(()=>En(e,t),[e,t]),a=f.useMemo(()=>{const l={[c.textScale]:String(r.textScale)};for(const[h,g]of Object.entries(t))l[c[h]]=g;const d=pl(r.background,e,s.graphBackground);return d!==void 0&&(l[c.graphBackground]=d),Eo.assignInlineVars(l)},[r.textScale,r.background,e,s.graphBackground,t]),i=f.useMemo(()=>({theme:e,themeClass:e==="dark"?Fn:Hn,inlineVarsStyle:a,themeValues:s}),[e,a,s]);return o.jsx(Ct.Provider,{value:i,children:n})},ce=({children:e,className:t,style:r})=>{const n=f.useContext(Ct),s=n?H(n.themeClass,yl):void 0,a=n?{...n.inlineVarsStyle,...r}:r;return o.jsx("div",{className:H(s,t),style:a,children:e})};var Sl="yp3g0k0",jl="yp3g0k1",Gn="yp3g0k3",wl="yp3g0k4",On="yp3g0k5",gt="yp3g0k6",El="yp3g0k7",Cl="yp3g0k8",Wn="yp3g0k9",kl="yp3g0ka",Ll="yp3g0kb",Pl="yp3g0kc",Tl="yp3g0kd",Rl="yp3g0ke";const Bl=Sr.map(e=>c[e]),Ml=Object.fromEntries(Sr.map(e=>[c[e],e])),Il=({editor:e,currentColor:t,isOpen:r,onOpenChange:n})=>{const s=K.useI18n(),a=Hl(),i=f.useCallback(d=>{e.chain().setColor(d).run()},[e]),l=d=>{e.chain().focus().setColor(d).run(),n(!1)};return o.jsxs(B.Popover.Root,{open:r,onOpenChange:n,children:[o.jsx(B.Popover.Trigger,{render:o.jsx(P.Toolbar.Button,{}),"aria-label":s("graph.toolbar.color.label"),className:Sl,onMouseDown:d=>d.preventDefault(),children:o.jsx("span",{className:jl,style:{background:t??"transparent"}})}),o.jsx(B.Popover.Portal,{container:ae(),children:o.jsx(ce,{children:o.jsx(B.Popover.Positioner,{sideOffset:6,align:"start",className:Gn,children:o.jsxs(B.Popover.Popup,{className:wl,onMouseDown:d=>d.preventDefault(),children:[o.jsx(qt,{title:s("graph.colorDropdown.colors"),colors:Bl,currentColor:t,onPick:l}),a.length>0&&o.jsx(qt,{title:s("graph.colorDropdown.chartColors"),colors:a,currentColor:t,onPick:l}),o.jsx(Nl,{value:t??"#000000",onChange:i})]})})})})]})},qt=({title:e,colors:t,currentColor:r,onPick:n})=>o.jsxs("div",{className:On,children:[o.jsx("div",{className:gt,children:e}),o.jsx("div",{className:El,children:t.map(s=>o.jsx("button",{type:"button","aria-label":s,className:Cl,"data-active":Dl(s,r),onMouseDown:a=>a.preventDefault(),onClick:()=>n(s),children:o.jsx("span",{className:Wn,style:zn(s)})},s))})]}),Nl=({value:e,onChange:t})=>{const r=K.useI18n(),[n,s]=f.useState(!1),a=Ga(e)?e:"#000000",i=Fl(a);return o.jsxs(B.Popover.Root,{open:n,onOpenChange:s,children:[o.jsxs("div",{className:On,children:[o.jsx("div",{className:gt,children:r("graph.colorDropdown.custom")}),o.jsxs(B.Popover.Trigger,{className:kl,onMouseDown:l=>l.preventDefault(),"aria-label":r("graph.colorDropdown.pickCustom"),children:[o.jsx("span",{className:Wn,style:zn(a)}),o.jsx("span",{className:Ll,children:i})]})]}),o.jsx(B.Popover.Portal,{container:ae(),children:o.jsx(ce,{children:o.jsx(B.Popover.Positioner,{side:"right",align:"start",sideOffset:18,className:Gn,children:o.jsxs(B.Popover.Popup,{className:Pl,onMouseDown:l=>l.preventDefault(),children:[o.jsx("div",{className:gt,children:r("graph.colorDropdown.pickColor")}),o.jsx(Tt.HexColorPicker,{color:i,onChange:t,className:Tl}),o.jsx(Tt.HexColorInput,{color:i,onChange:t,prefixed:!0,className:Rl,onMouseDown:l=>l.stopPropagation()})]})})})})]})},Hl=()=>{const e=w(t=>t.scales.color);return f.useMemo(()=>{if(!e||e.kind!=="visual")return[];const t=new Set;for(const r of e.domain){const n=e.map(r);typeof n=="string"&&t.add(n)}return[...t]},[e])},zn=e=>({background:e,border:`1px solid ${Xe(e,.1)}`}),Fl=e=>{const{themeValues:t}=kt();if(Da(e))return e.toUpperCase();const r=Ml[e];return r?t[r].toUpperCase():"#000000"},Dl=(e,t)=>t===null?!1:e.toLowerCase()===t.toLowerCase(),Gl={xxs:8,xs:12,sm:16,md:20,lg:24,xl:36};var Ol={primary:"asohov1 asohov0",secondary:"asohov2 asohov0"};const te=({children:e,title:t,variant:r="primary",size:n="sm",...s})=>{const a=f.useId(),i=Gl[n];return o.jsxs("svg",{className:Ol[r],"aria-labelledby":t?a:void 0,height:i,width:i,fill:"none",viewBox:"0 0 24 24",role:"img",...s,children:[t&&o.jsx("title",{id:a,children:t}),e]})},Yn=e=>o.jsx(te,{...e,children:o.jsx("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:o.jsx("path",{d:"m6 9 6 6 6-6"})})}),Wl="'Noto Serif', Georgia, 'Times New Roman', serif, 'Apple Color Emoji', 'NotoColorEmoji'",Un=`'Aeonik', 'Aeonik Fallback', ${F}`,zl="'PT Mono', 'Courier New', monospace, 'Apple Color Emoji', 'NotoColorEmoji'",Yl="'Intruding Cat', cursive, 'Apple Color Emoji', 'NotoColorEmoji'",Ul=`var(--brand-font-family), ${Un}`,ft=[{id:"modern",label:"Modern",preview:"Aa",fontFamily:F},{id:"fresh",label:"Fresh",preview:"Aa",fontFamily:Un},{id:"timeless",label:"Timeless",preview:"Aa",fontFamily:Wl},{id:"technical",label:"Technical",preview:"00",fontFamily:zl},{id:"fineliner",label:"Fineliner",preview:"Aa",fontFamily:Yl},{id:"brand",label:"Brand",preview:"Aa",fontFamily:Ul}],Vl=e=>e?ft.find(t=>t.fontFamily===e)??null:null;var Vn="_1qkyw7q0",Qn="_1qkyw7q1",Xn="_1qkyw7q3",qn="_1qkyw7q4",Kn="_1qkyw7q5";const Ql=({editor:e,currentFontFamily:t,isOpen:r,onOpenChange:n})=>{const s=K.useI18n(),a=Vl(t)??ft[0],i=l=>{e.chain().focus().setFontFamily(l.fontFamily).run()};return o.jsxs(G.Menu.Root,{open:r,onOpenChange:n,children:[o.jsxs(G.Menu.Trigger,{render:o.jsx(P.Toolbar.Button,{}),"aria-label":s("graph.toolbar.font.ariaLabel"),className:Vn,onMouseDown:l=>l.preventDefault(),children:[o.jsx("span",{className:Qn,style:{fontFamily:a?.fontFamily},children:a?.preview}),o.jsx(Yn,{size:"sm"})]}),o.jsx(G.Menu.Portal,{container:ae(),children:o.jsx(ce,{children:o.jsx(G.Menu.Positioner,{side:"bottom",align:"start",sideOffset:6,className:Xn,children:o.jsx(G.Menu.Popup,{className:qn,onMouseDown:l=>l.preventDefault(),children:ft.map(l=>o.jsx(G.Menu.Item,{className:Kn,"data-selected":l.id===a?.id,onClick:()=>i(l),children:o.jsx("span",{style:{fontFamily:l.fontFamily},children:l.label})},l.id))})})})})]})},Jn={id:"text",translationKey:"graph.toolbar.heading.text",previewFont:c.fontTextEditorBody},Kt=[{id:"caption",translationKey:"graph.toolbar.heading.caption",previewFont:c.fontTextEditorH6},Jn,{id:"h3",translationKey:"graph.toolbar.heading.heading3",previewFont:c.fontTextEditorH3},{id:"h2",translationKey:"graph.toolbar.heading.heading2",previewFont:c.fontTextEditorH2},{id:"h1",translationKey:"graph.toolbar.heading.heading1",previewFont:c.fontTextEditorH1}],Xl=({editor:e,activeStyle:t,isOpen:r,onOpenChange:n})=>{const s=K.useI18n(),a=Kt.find(i=>i.id===t)??Jn;return o.jsxs(G.Menu.Root,{open:r,onOpenChange:n,children:[o.jsxs(G.Menu.Trigger,{render:o.jsx(P.Toolbar.Button,{}),"aria-label":s("graph.toolbar.heading.ariaLabel"),className:Vn,onMouseDown:i=>i.preventDefault(),children:[o.jsx("span",{className:Qn,children:s(a.translationKey)}),o.jsx(Yn,{size:"sm"})]}),o.jsx(G.Menu.Portal,{container:ae(),children:o.jsx(ce,{children:o.jsx(G.Menu.Positioner,{side:"bottom",align:"start",sideOffset:6,className:Xn,children:o.jsx(G.Menu.Popup,{className:qn,onMouseDown:i=>i.preventDefault(),children:Kt.map(i=>o.jsx(G.Menu.Item,{className:Kn,"data-selected":i.id===a.id,onClick:()=>ql(e,i.id),children:o.jsx(Kl,{font:i.previewFont,children:s(i.translationKey)})},i.id))})})})})]})},ql=(e,t)=>{switch(t){case"caption":{e.chain().focus().setNode("paragraph",{variant:"caption"}).run();return}case"text":{e.chain().focus().setNode("paragraph",{variant:null}).run();return}case"h1":e.chain().focus().setHeading({level:1}).run();return;case"h2":e.chain().focus().setHeading({level:2}).run();return;case"h3":e.chain().focus().setHeading({level:3}).run()}},Kl=({font:e,children:t})=>o.jsx("span",{style:{font:e,margin:0},children:t}),Jl=e=>o.jsx(te,{...e,children:o.jsx("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:o.jsx("path",{d:"M20 6 9 17l-5-5"})})}),Zl=e=>o.jsx(te,{...e,children:o.jsxs("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[o.jsx("path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"}),o.jsx("path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"})]})}),_l=e=>o.jsx(te,{...e,children:o.jsxs("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[o.jsx("path",{d:"M18 6 6 18"}),o.jsx("path",{d:"m6 6 12 12"})]})}),$l=e=>!e.content||e.content.length===0?!0:e.content.every(t=>!t.content||t.content.length===0),ec=e=>{const{$from:t}=e.state.selection,r=t.parent.textContent,n=t.parentOffset,s=t.start();let a=n;for(;a>0&&Jt(r[a-1]);)a-=1;let i=n;for(;i<r.length&&Jt(r[i]);)i+=1;return{from:s+a,to:s+i}},Jt=e=>e!==void 0&&/\S/.test(e);var tc="b5kquu0",rc="b5kquu1",nc="b5kquu2",oc="b5kquu3",Zt="b5kquu4";const sc=({editor:e,currentUrl:t,isActive:r,isOpen:n,onOpenChange:s})=>{const a=K.useI18n(),[i,l]=f.useState(""),d=f.useRef(null);f.useEffect(()=>{n&&l(t??"")},[n,t]);const h=()=>{ac(e,i),s(!1)},g=()=>{l(""),s(!1)},p=v=>{l(v.target.value)},m=v=>{v.key==="Enter"&&(v.preventDefault(),h())};return o.jsxs(B.Popover.Root,{open:n,onOpenChange:s,children:[o.jsx(B.Popover.Trigger,{render:o.jsx(P.Toolbar.Button,{}),"aria-label":a("graph.toolbar.formatting.link"),"data-active":r,className:tc,onMouseDown:v=>v.preventDefault(),children:o.jsx(Zl,{})}),o.jsx(B.Popover.Portal,{container:ae(),children:o.jsx(ce,{children:o.jsx(B.Popover.Positioner,{sideOffset:6,align:"end",className:rc,children:o.jsxs(B.Popover.Popup,{className:nc,initialFocus:d,onMouseDown:v=>v.preventDefault(),children:[o.jsx("input",{ref:d,type:"url",value:i,placeholder:a("graph.toolbar.link.placeholder"),"aria-label":a("graph.toolbar.link.urlLabel"),className:oc,onMouseDown:v=>v.stopPropagation(),onChange:p,onKeyDown:m}),o.jsx("button",{type:"button","aria-label":a("common.cancel"),className:Zt,onClick:g,children:o.jsx(_l,{})}),o.jsx("button",{type:"button","aria-label":a("graph.toolbar.link.apply"),className:Zt,onClick:h,children:o.jsx(Jl,{})})]})})})})]})},ac=(e,t)=>{const r=t.trim(),{selection:n}=e.state;if(!r){e.chain().focus().extendMarkRange("link").unsetLink().run();return}if(!n.empty){e.chain().focus().setLink({href:r}).run();return}if(e.isActive("link")){e.chain().focus().extendMarkRange("link").setLink({href:r}).run();return}const s=ec(e);e.chain().focus().setTextSelection(s).setLink({href:r}).run()},ic=e=>o.jsx(te,{...e,children:o.jsxs("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[o.jsx("path",{d:"M21 5H3"}),o.jsx("path",{d:"M17 12H7"}),o.jsx("path",{d:"M19 19H5"})]})}),lc=e=>o.jsx(te,{...e,children:o.jsxs("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[o.jsx("path",{d:"M21 5H3"}),o.jsx("path",{d:"M21 12H9"}),o.jsx("path",{d:"M21 19H7"})]})}),cc=e=>o.jsx(te,{...e,children:o.jsxs("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[o.jsx("path",{d:"M21 5H3"}),o.jsx("path",{d:"M15 12H3"}),o.jsx("path",{d:"M17 19H3"})]})});var dc="k91gos0",uc="k91gos1";const hc=6,ge=({label:e,isActive:t,onToggle:r,children:n})=>{const s=a=>a.preventDefault();return o.jsxs(ue.Tooltip.Root,{children:[o.jsx(ue.Tooltip.Trigger,{render:o.jsx(Co.Toggle,{render:o.jsx(P.Toolbar.Button,{}),pressed:t,onPressedChange:()=>r()}),"aria-label":e,className:dc,onMouseDown:s,children:n}),o.jsx(ue.Tooltip.Portal,{container:ae(),children:o.jsx(ce,{children:o.jsx(ue.Tooltip.Positioner,{sideOffset:hc,children:o.jsx(ue.Tooltip.Popup,{className:uc,children:e})})})})]})},gc=({editor:e,activeAlignment:t="left"})=>{const r=K.useI18n();return o.jsxs(o.Fragment,{children:[o.jsx(ge,{label:r("graph.toolbar.textAlign.left"),isActive:t==="left",onToggle:()=>e.chain().focus().setTextAlign("left").run(),children:o.jsx(cc,{})}),o.jsx(ge,{label:r("graph.toolbar.textAlign.center"),isActive:t==="center",onToggle:()=>e.chain().focus().setTextAlign("center").run(),children:o.jsx(ic,{})}),o.jsx(ge,{label:r("graph.toolbar.textAlign.right"),isActive:t==="right",onToggle:()=>e.chain().focus().setTextAlign("right").run(),children:o.jsx(lc,{})})]})};var fc="_1bp10ig0",Ae="_1bp10ig1",Ie="_1bp10ig2";const pc=({editor:e})=>({isBold:e?.isActive("bold")??!1,isItalic:e?.isActive("italic")??!1,isUnderline:e?.isActive("underline")??!1,isLink:e?.isActive("link")??!1,linkUrl:e?.getAttributes("link").href??null,color:e?.getAttributes("textStyle").color??null,fontFamily:e?.getAttributes("textStyle").fontFamily??null,fontSize:mc(e),textAlign:xc(e)}),mc=e=>e?e.isActive("heading",{level:1})?"h1":e.isActive("heading",{level:2})?"h2":e.isActive("heading",{level:3})?"h3":e.isActive("paragraph",{variant:"caption"})?"caption":"text":"text",xc=e=>e?e.isActive({textAlign:"center"})?"center":e.isActive({textAlign:"right"})?"right":"left":"left",vc=8,yc=8,Ac=({editor:e})=>{const t=K.useI18n(),[r,n]=f.useState(!1),[s,a]=f.useState(null),i=s!==null,l=x=>b=>{a(b?x:null)},{refs:d,floatingStyles:h}=R.useFloating({placement:"top-start",strategy:"fixed",middleware:[R.offset(vc),R.flip(),R.shift({padding:yc})],whileElementsMounted:R.autoUpdate}),g=f.useRef(null),p=xt.useEditorState({editor:e,selector:pc}),m=f.useCallback(x=>{g.current=x,d.setFloating(x)},[d]);if(f.useEffect(()=>{e&&d.setReference(e.view.dom)},[e,d]),f.useEffect(()=>{if(!e)return;const x=()=>n(!0),b=({event:y})=>{const{relatedTarget:j,currentTarget:M}=y,D=j instanceof Node&&g.current?.contains(j),E=j instanceof Node&&M instanceof Node&&M.contains(j);!D&&!E&&n(!1)};return e.on("focus",x),e.on("blur",b),()=>{e.off("focus",x),e.off("blur",b)}},[e]),!e||!r&&!i)return null;const v=ae();return v?gr.createPortal(o.jsx(ce,{children:o.jsx(ue.Tooltip.Provider,{children:o.jsxs(P.Toolbar.Root,{ref:m,className:fc,style:h,children:[o.jsxs(P.Toolbar.Group,{className:Ae,children:[o.jsx(Il,{editor:e,currentColor:p?.color??null,isOpen:s==="color",onOpenChange:l("color")}),o.jsx(Ql,{editor:e,currentFontFamily:p?.fontFamily??null,isOpen:s==="fontFamily",onOpenChange:l("fontFamily")})]}),o.jsx(P.Toolbar.Separator,{className:Ie}),o.jsx(P.Toolbar.Group,{className:Ae,children:o.jsx(Xl,{editor:e,activeStyle:p?.fontSize??"text",isOpen:s==="fontSize",onOpenChange:l("fontSize")})}),o.jsx(P.Toolbar.Separator,{className:Ie}),o.jsxs(P.Toolbar.Group,{className:Ae,children:[o.jsx(ge,{label:t("graph.toolbar.formatting.bold"),isActive:p?.isBold??!1,onToggle:()=>e.chain().focus().toggleBold().run(),children:o.jsx("strong",{children:"B"})}),o.jsx(ge,{label:t("graph.toolbar.formatting.italic"),isActive:p?.isItalic??!1,onToggle:()=>e.chain().focus().toggleItalic().run(),children:o.jsx("em",{children:"I"})}),o.jsx(ge,{label:t("graph.toolbar.formatting.underline"),isActive:p?.isUnderline??!1,onToggle:()=>e.chain().focus().toggleUnderline().run(),children:o.jsx("u",{children:"U"})})]}),o.jsx(P.Toolbar.Separator,{className:Ie}),o.jsx(P.Toolbar.Group,{className:Ae,children:o.jsx(gc,{editor:e,activeAlignment:p?.textAlign})}),o.jsx(P.Toolbar.Separator,{className:Ie}),o.jsx(P.Toolbar.Group,{className:Ae,children:o.jsx(sc,{editor:e,currentUrl:p?.linkUrl??null,isActive:p?.isLink??!1,isOpen:s==="link",onOpenChange:l("link")})})]})})}),v):null};var bc="_2ngohc0";const Zn=({editor:e,ariaLabel:t})=>o.jsxs("div",{className:bc,children:[o.jsx(Ac,{editor:e}),o.jsx(xt.EditorContent,{editor:e,"aria-label":t})]}),Sc=200,_n=({content:e,extensions:t,isEditable:r,onUpdate:n,updateDebounceMs:s=Sc})=>{const a=f.useRef(_t(e)),i=f.useRef(!1),l=qr(h=>{i.current=!0,n?.(h)},s),d=xt.useEditor({extensions:t,content:a.current,editable:r,immediatelyRender:!1,onUpdate:({editor:h})=>l.run(h.getJSON())});return f.useEffect(()=>{d?.setEditable(r)},[d,r]),f.useEffect(()=>{if(!d)return;if(i.current){i.current=!1;return}const h=_t(e),g=d.getJSON();jc(g,h)||(l.cancel(),d.commands.setContent(h,{emitUpdate:!1}))},[d,e,l]),f.useEffect(()=>()=>l.flush(),[l]),d},_t=e=>e===null?{type:"doc",content:[]}:typeof e=="string"?{type:"doc",content:[{type:"paragraph",content:e?[{type:"text",text:e}]:[]}]}:e,jc=(e,t)=>JSON.stringify(e)===JSON.stringify(t);var wc="_1cocly40";const Ec={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",brand:"var(--brand-font-family), 'Aeonik', 'Inter', sans-serif"},Ge=({content:e})=>o.jsx(o.Fragment,{children:$n(e.content??[e])}),$n=e=>e.map((t,r)=>Cc(t,r)),Cc=(e,t)=>{if(e.type==="text")return kc(e,t);if(e.type==="hardBreak"||e.type==="hard_break")return o.jsx("br",{},t);const r=e.content?$n(e.content):null;switch(e.type){case"doc":return o.jsx(f.Fragment,{children:r},t);case"heading":{const n=Rc(e.attrs?.level);return Bc(n,t,r,er(e.attrs))}case"paragraph":{const n=fe(e.attrs?.variant);return o.jsx("p",{"data-variant":n??void 0,style:eo(er(e.attrs)),children:r},t)}case"blockquote":return o.jsx("blockquote",{children:r},t);case"bulletList":case"bullet_list":return o.jsx("ul",{children:r},t);case"orderedList":case"ordered_list":return o.jsx("ol",{children:r},t);case"listItem":case"list_item":return o.jsx("li",{children:r},t);default:return o.jsx("span",{children:r},t)}},kc=(e,t)=>{const r=e.text??"";return!e.marks||e.marks.length===0?o.jsx("span",{children:r},t):e.marks.reduceRight((n,s,a)=>Lc(s,n,`${t}-${a}`),r)},Lc=(e,t,r)=>{switch(e.type){case"bold":case"strong":return o.jsx("strong",{children:t},r);case"italic":case"em":return o.jsx("em",{children:t},r);case"underline":return o.jsx("u",{children:t},r);case"strike":case"strikethrough":case"s":return o.jsx("s",{children:t},r);case"code":return o.jsx("code",{children:t},r);case"link":{const n=fe(e.attrs?.href);return u.isSafeUrl(n)?o.jsx("a",{className:wc,href:n,rel:"noopener noreferrer",target:"_blank",children:t},r):o.jsx("span",{children:t},r)}case"textStyle":{const n=Pc(e.attrs);return n?o.jsx("span",{style:n,children:t},r):o.jsx("span",{children:t},r)}default:return o.jsx("span",{children:t},r)}},$t=e=>{const t=fe(e&&typeof e=="object"?e.fontFamily:e);if(t)return Ec[t]??t},Pc=e=>{if(!e)return null;const t={},r=fe(e.color);r&&(t.color=r);const n=$t(e.font)??$t(e.fontFamily);n&&(t.fontFamily=n);const s=Tc(e.fontSize);return s&&(t.fontSize=s),Object.keys(t).length>0?t:null},Tc=e=>typeof e=="number"&&Number.isFinite(e)?`${e/10}em`:fe(e),fe=e=>typeof e=="string"&&e.length>0?e:void 0,Rc=e=>typeof e!="number"?3:e<1?1:e>3?3:Math.round(e),Bc=(e,t,r,n)=>{const s=eo(n);switch(e){case 1:return o.jsx("h1",{style:s,children:r},t);case 2:return o.jsx("h2",{style:s,children:r},t);case 3:return o.jsx("h3",{style:s,children:r},t)}},er=e=>{const t=e?.textAlign;if(t==="left"||t==="right"||t==="center"||t==="justify")return t},eo=e=>e?{textAlign:e}:void 0;var Mc="_4dlrid0",to="_4dlrid1",Ic="xfz7dq0",Nc="xfz7dq1",Hc="xfz7dq2",Fc="xfz7dq3",Dc="xfz7dq4";const ro=({ref:e,footerRect:t,mode:r="readonly",caption:n,isCaptionVisible:s,source:a,isSourceVisible:i})=>{const l=r==="editable",d=s&&(l||n!==null),h=i&&a!==null&&zc(a);return!d&&!h?null:o.jsxs("div",{ref:e,className:Ic,style:{left:t.x,top:t.y,width:t.width},children:[d?l?o.jsx(Yc,{caption:n}):o.jsx(Gc,{caption:n}):null,h&&o.jsx(Oc,{source:a})]})},Gc=({caption:e})=>e===null?null:typeof e=="string"?o.jsx("p",{className:to,children:e}):o.jsx(Ge,{content:e}),Oc=({source:e})=>{const t=u.isSafeUrl(e.url)?e.url:void 0,r=e.label??(t!==void 0?Wc(t):"");return r===""&&t===void 0?null:o.jsxs("div",{className:Nc,children:[o.jsx("span",{className:Fc,children:"Source:"}),t!==void 0?o.jsx("a",{className:Hc,href:t,target:"_blank",rel:"noopener noreferrer",children:r}):o.jsx("span",{className:Dc,children:r})]})},Wc=e=>{try{return new URL(e).hostname}catch{return e}},zc=e=>e.label!==void 0&&e.label!==""||e.url!==void 0&&e.url!=="",Yc=({caption:e})=>{const t=bt(),r=f.useMemo(()=>dl({placeholder:"Add caption"}),[]),n=_n({content:e,extensions:r,isEditable:!0,onUpdate:s=>{const a=$l(s)?null:s;t(new u.SetContentCaptionCommand({caption:a}))}});return o.jsx(Zn,{editor:n,ariaLabel:"Chart caption"})};var Uc="_1k4qtbg0";const Vc=3,Qc=({title:e,isTitleVisible:t,subtitle:r,isSubtitleVisible:n})=>{const s=[];return t&&s.push({type:"heading",attrs:{level:Vc},content:qc(e)}),n&&s.push(...Kc(r)),{type:"doc",content:s}},Xc=e=>{const t=e.content??[],[r,...n]=t;return{title:Jc(r?.content??[]),subtitle:Zc(n)}},Lt=e=>({type:e.type??"text",...e.content!==void 0?{content:e.content.map(Lt)}:{},...e.text!==void 0?{text:e.text}:{},...e.marks!==void 0?{marks:e.marks}:{},...e.attrs!==void 0?{attrs:e.attrs}:{}}),qc=e=>e===null?[]:typeof e=="string"?e===""?[]:[{type:"text",text:e}]:e.type==="doc"&&e.content?e.content.flatMap(t=>t.content??[]):e.type==="text"||e.type==="hardBreak"?[e]:e.content??[],Kc=e=>e===null?[{type:"paragraph"}]:typeof e=="string"?e===""?[{type:"paragraph"}]:[{type:"paragraph",content:[{type:"text",text:e}]}]:e.type==="doc"&&e.content?e.content.length===0?[{type:"paragraph"}]:e.content.map(tr):[tr(e)],tr=e=>e.type==="paragraph"?e:{type:"paragraph",content:e.content??[e]},Jc=e=>{if(e.length===0)return null;const[t]=e;return t&&e.length===1&&t.type==="text"&&(!t.marks||t.marks.length===0)?t.text??null:{type:"paragraph",content:e.map(Lt)}},Zc=e=>{const t=e.filter(n=>(n.content??[]).length>0);if(t.length===0)return null;const[r]=t;if(r&&t.length===1&&r.type==="paragraph"){const n=r.content??[],[s]=n;if(s&&n.length===1&&s.type==="text"&&(!s.marks||s.marks.length===0))return s.text??null}return{type:"doc",content:t.map(Lt)}},no=({ref:e,headerRect:t,mode:r="readonly",title:n,isTitleVisible:s,subtitle:a,isSubtitleVisible:i})=>{const l=r==="editable";return!(s&&(l||n!==null))&&!(i&&(l||a!==null))?null:o.jsx("div",{ref:e,className:Uc,style:{left:t.x,top:t.y,width:t.width},children:l?o.jsx($c,{title:n,isTitleVisible:s,isSubtitleVisible:i,subtitle:a},[s?"title":"",i?"subtitle":""].join("-")):o.jsx(_c,{title:n,isTitleVisible:s,isSubtitleVisible:i,subtitle:a})})},_c=({title:e,isTitleVisible:t,isSubtitleVisible:r,subtitle:n})=>{const s=t&&e!==null,a=r&&n!==null;return o.jsxs(o.Fragment,{children:[s&&(typeof e=="string"?o.jsx("h1",{className:Mc,children:e}):o.jsx(Ge,{content:e})),a&&(typeof n=="string"?o.jsx("p",{className:to,children:n}):o.jsx(Ge,{content:n}))]})},$c=({title:e,isTitleVisible:t,isSubtitleVisible:r,subtitle:n})=>{const s=bt(),a=f.useMemo(()=>cl({titlePlaceholder:"Untitled",subtitlePlaceholder:"Untitled",isTitleVisible:t,isSubtitleVisible:r}),[t,r]),i=f.useMemo(()=>Qc({title:e,isTitleVisible:t,subtitle:n,isSubtitleVisible:r}),[e,t,n,r]),l=_n({content:i,extensions:a,isEditable:!0,onUpdate:d=>{const h=Xc(d);t&&s(new u.SetContentTitleCommand({title:h.title})),r&&s(new u.SetContentSubtitleCommand({subtitle:h.subtitle}))}});return o.jsx(Zn,{editor:l,ariaLabel:"Chart title and subtitle"})};var ed="_1u9qprb0",td="_1u9qprb1",rd="_9aen060",nd="_9aen061",od="_9aen062",oo="_9aen063";const sd=Object.freeze(Object.defineProperty({__proto__:null,groupRow:od,item:oo,trendRow:nd,valueRow:rd},Symbol.toStringTag,{value:"Module"})),ad=e=>o.jsx(te,{...e,children:o.jsxs("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[o.jsx("path",{d:"m5 12 7-7 7 7"}),o.jsx("path",{d:"M12 19V5"})]})}),id=e=>o.jsx(te,{...e,children:o.jsx("g",{stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:o.jsx("path",{d:"M5 12h14"})})});var so="n7clvo0",ld="n7clvo1",cd="n7clvo2",dd="n7clvo3",ao={small:"n7clvo4",medium:"n7clvo5",large:"n7clvo6"},ud={small:"n7clvo7",medium:"n7clvo8",large:"n7clvo9"},hd={up:"n7clvoa",down:"n7clvob",flat:"n7clvoc"},gd={up:"n7clvoe n7clvod",down:"n7clvof n7clvod",flat:"n7clvog n7clvod"};const fd=({segment:e,resolvedSize:t})=>{const r=ee();if(e.kind==="swatch"){const s=r(e.swatch.geom,"cartesian")?.swatchShape??"square";return o.jsx(Ce,{shape:s,color:e.swatch.color,width:e.size,height:e.size})}if(e.kind==="trendArrow")return o.jsx("div",{className:gd[e.direction],children:e.direction==="flat"?o.jsx(id,{size:"xs",title:""}):o.jsx(ad,{size:"xs",title:""})});const n=e.fontRole==="value"?ao[t]:ud[t];return o.jsx("span",{className:H.clsx(pd(e),n),children:e.text})},pd=e=>{switch(e.textRole){case"value":return so;case"observation":return ld;case"trendPercentage":return hd[e.trendDirection??"up"];case"trendReference":return cd;case"label":return dd}},md=({item:e,resolvedSize:t})=>o.jsx("div",{className:oo,children:u.createHeadlineItemRows(e).map(r=>o.jsx(xd,{row:r,resolvedSize:t},r.role))}),xd=({row:e,resolvedSize:t})=>{const r=e.role==="trendRow";return o.jsx("div",{className:sd[e.role],"data-testid":r?"headline-trend":void 0,"data-direction":r?vd(e):void 0,role:r?"img":void 0,"aria-label":r?e.ariaLabel:void 0,children:e.segments.map((n,s)=>o.jsx(fd,{segment:n,resolvedSize:t},s))})},vd=e=>{const t=e.segments.find(r=>r.kind==="trendArrow");return t?.kind==="trendArrow"?t.direction:void 0},yd=({headline:e,rect:t,resolvedSize:r,visibleItemCount:n})=>{const s={left:t.x,top:t.y,width:t.width,height:t.height};return e.kind==="grandTotal"?o.jsx("div",{className:td,style:s,children:o.jsx("span",{className:H.clsx(so,ao[r]),children:e.value})}):o.jsx("div",{className:ed,style:s,children:e.items.slice(0,n).map((a,i)=>o.jsx(md,{item:a,resolvedSize:r},`${a.label}-${i}`))})};var Ad="_1oj6yix0",bd="_1oj6yix1",Sd="_1oj6yix2";const jd=8,wd=16,Ed=2,Cd=({legends:e,containerRect:t,textScale:r})=>{const{lineBoxHeight:n}=Mn(r),{placements:s,hasOverlap:a}=kd(e,t,n);if(s.length===0)return null;const i=a?wd:jd,l=i-Ed;return o.jsxs("div",{className:Ad,children:[a&&o.jsx("svg",{className:bd,width:t.width,height:t.height,children:s.map(d=>o.jsx(Ld,{anchorY:d.anchorY,labelY:d.y,endX:l,color:d.payload.color},d.payload.key))}),s.map(d=>o.jsx("span",{className:Sd,style:{left:i,top:d.y,color:d.payload.color},children:d.payload.label},d.payload.key))]})},kd=(e,t,r)=>f.useMemo(()=>{const n=[];for(const s of e)for(const a of s.items){if(a.normalizedY===null)continue;const i=typeof a.visual.color=="string"?a.visual.color:void 0;n.push({normalizedY:a.normalizedY,payload:{key:String(n.length),label:a.formattedLabel,color:i}})}return n.length===0||t.height<=0?{placements:[],hasOverlap:!1}:u.computeDirectLabelsLayout({items:n,containerHeight:t.height,labelHeight:r})},[e,t.height,r]),Ld=({anchorY:e,labelY:t,endX:r,color:n})=>{const s=r/2;return o.jsx("path",{d:`M0,${e} C${s},${e} ${s},${t} ${r},${t}`,fill:"none",stroke:n??"currentColor",strokeWidth:1,strokeDasharray:"2 2"})};var Pd="_6a636s0",Td="_1kjk02r0",Rd="_1kjk02r1",Bd="_1kjk02r2",Md="_1kjk02r3",Id="_1kjk02r4",Nd="_1kjk02r5",Hd="_1kjk02r6",Fd="_1kjk02r7",Dd="_1kjk02r8",Gd="_1kjk02r9",Od="_1kjk02ra",Wd="_1kjk02rb",zd="_1dw9dgx0";const Yd="#9ca3af",rt="\0",Ud=(e,t)=>{const r=[];return e.forEach((n,s)=>{const a=n.aesthetics.includes("size");for(const i of n.items){if(a){const g=Number(i.visual.size);if(!Number.isFinite(g)||g<=0)continue}const l=i.visual.color??"",d=a?`${rt}${Number(i.visual.size)}`:"",h=i.visual.lineType;r.push({key:`${s}${rt}${String(i.value)}${rt}${l}${d}`,formattedLabel:i.formattedLabel,visual:i.visual,swatchShape:t(i.geom),isBubble:a,primaryLineType:h})}}),r},io=({pill:e})=>e.isBubble?o.jsx(Xd,{pill:e}):o.jsx(Qd,{pill:e}),Vd=({color:e,lineType:t,shape:r})=>{const{legendSwatchWidth:n,legendSwatchHeight:s}=wt();return e?o.jsx(Ce,{shape:r,color:e,lineType:t,width:n,height:s}):null},Qd=({pill:e})=>o.jsxs(o.Fragment,{children:[o.jsx(Vd,{color:e.visual.color,lineType:e.primaryLineType,shape:e.swatchShape}),o.jsx("span",{children:e.formattedLabel})]}),Xd=({pill:e})=>{const t=Number(e.visual.size);return o.jsxs(o.Fragment,{children:[o.jsx("span",{className:zd,style:{width:t,height:t,backgroundColor:e.visual.color??Yd}}),o.jsx("span",{children:e.formattedLabel})]})},qd=({hiddenPills:e,placement:t})=>{const r=K.useI18n(),[n,s]=f.useState(!1),{refs:a,floatingStyles:i}=R.useFloating({open:n,placement:t,middleware:[R.offset(4),R.flip(),R.shift({padding:8})]});f.useEffect(()=>{if(!n)return;const g=m=>{const v=m.target;if(!v)return;const x=a.reference.current,b=a.floating.current;x instanceof Element&&x.contains(v)||b instanceof Element&&b.contains(v)||s(!1)},p=m=>{m.key==="Escape"&&s(!1)};return document.addEventListener("pointerdown",g),document.addEventListener("keydown",p),()=>{document.removeEventListener("pointerdown",g),document.removeEventListener("keydown",p)}},[n,a.floating,a.reference]);const l=t==="left"||t==="right",d=Math.min(e.length-1,gn),h=Array.from({length:d},(g,p)=>d-p);return o.jsxs(o.Fragment,{children:[o.jsxs("div",{ref:a.setReference,className:H.clsx(Td,{[Bd]:l,[Rd]:!l}),children:[h.map(g=>o.jsx("span",{className:H.clsx(Md,{[Nd]:l,[Id]:!l}),style:Kd(g,l),"aria-hidden":!0},g)),o.jsx("button",{type:"button",className:H.clsx(Hd,{[Fd]:n}),onClick:()=>s(g=>!g),"aria-haspopup":"dialog","aria-expanded":n,"aria-label":`Show ${e.length} hidden legend ${e.length===1?"item":"items"}`,children:o.jsxs("span",{className:Dd,children:["+",e.length]})})]}),n&&o.jsx("div",{ref:a.setFloating,role:"dialog","aria-label":r("graph.legend.hiddenItems"),className:Gd,style:i,children:o.jsx("ul",{className:Od,children:e.map(g=>o.jsx("li",{className:Wd,children:o.jsx(io,{pill:g})},g.key))})})]})},Kd=(e,t)=>{const r=-e*fn;return{transform:t?`translateY(${r}px)`:`translateX(${r}px)`}};var Jd="_1cecisi0",Zd="_1cecisi1",_d="_1cecisi2",$d="_1cecisi3";const eu=({edge:e,formattedLegends:t,containerWidth:r,containerHeight:n,textScale:s})=>{const a=se(),i=wt(),l=ee(),d=w(y=>y.coordSystem.type),h=f.useMemo(()=>Ud(t,y=>l(y,d)?.swatchShape??"square"),[t,l,d]),g=e==="left"||e==="right",p=g?n:r,m=f.useMemo(()=>{if(h.length===0)return{visibleCount:0,hasOverflow:!1};if(p<=0)return{visibleCount:h.length,hasOverflow:!1};const y=$(pn,s),j={family:xn,size:y},M=y*mn,D=A=>g?tu(A,M,i):rr({label:A.formattedLabel,swatchInlineSize:ru(A,i.legendSwatchWidth),textMeasurer:a,font:j,swatchGap:i.legendSwatchGap,horizontalChrome:i.legendPillHorizontalChrome}),E=h.map(D),z=(g?M+i.legendPillVerticalChrome:rr({label:`+${h.length}`,swatchInlineSize:0,textMeasurer:a,font:j,swatchGap:i.legendSwatchGap,horizontalChrome:i.legendPillHorizontalChrome}))+Ri;return ou({pillSizes:E,overflowPillSize:z,containerSize:p,gap:i.legendItemGap})},[h,p,g,a,s,i]);if(h.length===0)return null;const v=h.slice(0,m.visibleCount),x=h.slice(m.visibleCount),b=m.hasOverflow&&x.length>0;return o.jsxs("div",{className:H.clsx(Jd,{[_d]:g,[Zd]:!g}),children:[v.map(y=>o.jsx("div",{className:$d,children:o.jsx(io,{pill:y})},y.key)),b&&o.jsx(qd,{hiddenPills:x,placement:su(e)})]})},rr=({label:e,swatchInlineSize:t,textMeasurer:r,font:n,swatchGap:s,horizontalChrome:a})=>{const i=r.measureText(e,n).width,l=t>0?s:0;return t+l+i+a},tu=(e,t,r)=>{const n=nu(e,r.legendSwatchHeight);return Math.max(t,n)+r.legendPillVerticalChrome},ru=(e,t)=>e.isBubble?Number(e.visual.size):In(e.visual.color,t),nu=(e,t)=>e.isBubble?Number(e.visual.size):t,ou=({pillSizes:e,overflowPillSize:t,containerSize:r,gap:n})=>{if(e.length===0)return{visibleCount:0,hasOverflow:!1};let s=0;for(let l=0;l<e.length;l+=1)l>0&&(s+=n),s+=e[l]??0;if(s<=r)return{visibleCount:e.length,hasOverflow:!1};let a=0,i=0;for(const l of e){const d=a+(i>0?n:0)+l;if(d+n+t>r)break;a=d,i+=1}return{visibleCount:i,hasOverflow:!0}},su=e=>{switch(e){case"top":return"bottom";case"bottom":return"top";case"left":return"right";case"right":return"left"}},au=f.memo(function({formattedLegends:t,rects:r,textScale:n}){const s=f.useMemo(()=>{const a=new Map;for(const i of t){let l=a.get(i.position);l||(l={pill:[],direct:[]},a.set(i.position,l)),i.display==="pill"?l.pill.push(i):l.direct.push(i)}return a},[t]);return o.jsx(o.Fragment,{children:Array.from(s,([a,i])=>{const l=r[a];return l===void 0?null:o.jsxs("div",{className:Pd,style:{left:l.x,top:l.y,width:l.width,height:l.height},children:[o.jsx(eu,{edge:a,formattedLegends:i.pill,containerWidth:l.width,containerHeight:l.height,textScale:n}),o.jsx(Cd,{legends:i.direct,containerRect:l,textScale:n})]},a)})})}),iu=({layers:e,primaryLayerId:t,coordSystem:r,resolveRenderer:n})=>{const s=e.find(i=>i.id===t);if(!s)return null;const a=n(s.geom,r.type);return a?a.guideMode??null:null},lo=1,co="4 3",nr=({panelRect:e})=>{const{coordSystem:t,layers:r,scales:n}=w(V.useShallow(l=>({coordSystem:l.coordSystem,layers:l.layers,scales:l.scales}))),s=Ee(l=>l.hover.primary),a=ee();if(r.length===0||s===null||!s.anchored)return null;const i=iu({layers:r,primaryLayerId:s.layerId,coordSystem:t,resolveRenderer:a});return i===null?null:t.type==="polar"?i==="band"?o.jsx(uu,{coordSystem:t,primary:s,panelRect:e}):o.jsx(du,{coordSystem:t,primary:s,panelRect:e}):i==="band"?o.jsx(cu,{coordSystem:t,scales:n,primary:s,panelRect:e}):o.jsx(lu,{coordSystem:t,primary:s,panelRect:e})},lu=({coordSystem:e,primary:t,panelRect:r})=>{const n=u.getHoverGuideLineProps(e,t);return o.jsx(qe,{panelRect:r,children:o.jsx("line",{...n,stroke:c.hoverGuideLineColor,strokeWidth:lo,strokeDasharray:co,strokeLinecap:"round","data-testid":"hover-guide-line"})})},cu=({coordSystem:e,scales:t,primary:r,panelRect:n})=>{const s=u.getHoverGuideRectProps(e,t,r);return s===null?null:o.jsx(qe,{panelRect:n,children:o.jsx("rect",{...s,fill:c.hoverGuideFillColor,"data-testid":"hover-guide-rect"})})},du=({coordSystem:e,primary:t,panelRect:r})=>{const n=yt(r),s=X(t.x,e.innerRadius,n),a=X(t.x,1,n);return o.jsx(qe,{panelRect:r,children:o.jsx("line",{x1:s.x,y1:s.y,x2:a.x,y2:a.y,stroke:c.hoverGuideLineColor,strokeWidth:lo,strokeDasharray:co,strokeLinecap:"round","data-testid":"hover-guide-line"})})},uu=({coordSystem:e,primary:t,panelRect:r})=>{const n=u.getPolarHoverGuideArcProps(e,t);if(n===null)return null;const s=u.buildPolarBarArcPath(n);return s?o.jsx(qe,{panelRect:r,children:o.jsx("svg",{viewBox:"-1 -1 2 2",preserveAspectRatio:"xMidYMid meet",width:"100%",height:"100%",style:{overflow:"visible"},children:o.jsx("path",{d:s,fill:c.hoverGuideFillColor,"data-testid":"hover-guide-arc"})})}):null},qe=({panelRect:e,children:t})=>o.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}),hu=200,gu=({engine:e,store:t,overlayRef:r})=>{f.useEffect(()=>{const n=r.current;if(!n)return;const s=fu(n,e),a=pu(n,e,t);return()=>{a(),s()}},[e,t,r])},fu=(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 s=()=>{n!==null&&clearTimeout(n),n=setTimeout(()=>{n=null,r()},hu)},a=new ResizeObserver(s);return a.observe(e),r(),()=>{a.disconnect(),n!==null&&clearTimeout(n)}},pu=(e,t,r)=>{let n=null,s=null;const a=()=>{s=null;const d=n;if(n=null,!d)return;const h=e.getBoundingClientRect();if(h.width===0||h.height===0)return;const g=u.findCalloutHit({x:d.clientX-h.left,y:d.clientY-h.top},r.getState().calloutHits);if(g!==null){const v=r.getState();v.setHoverState(t.query(g.cursor)),v.setTooltipAnchor({x:h.left+g.markerPx.x,y:h.top+g.markerPx.y,placement:g.placement});return}const p=u.toPanelCursor({x:d.clientX-h.left,y:d.clientY-h.top},h),m=r.getState();m.setHoverState(t.query(p)),m.setTooltipAnchor(null)},i=d=>{n=d,s===null&&(s=requestAnimationFrame(a))},l=()=>{n=null,s!==null&&(cancelAnimationFrame(s),s=null);const d=r.getState();d.hover.primary===null&&d.tooltipAnchor===null||(d.setHoverState(u.RESTING_HOVER_STATE),d.setTooltipAnchor(null))};return e.addEventListener("pointermove",i),e.addEventListener("pointerleave",l),()=>{e.removeEventListener("pointermove",i),e.removeEventListener("pointerleave",l),s!==null&&cancelAnimationFrame(s),n=null}},mu=({panelRect:e})=>{const{engine:t,store:r,overlayRef:n}=le();return gu({engine:t,store:r,overlayRef:n}),o.jsx("rect",{ref:n,x:e.x,y:e.y,width:e.width,height:e.height,fill:"transparent",pointerEvents:"all","data-testid":"pointer-capture-layer"})},nt="data-hover-active",xu=e=>{const{store:t}=le(),r=Se.useStore(t,n=>n.hover.primary!==null);f.useEffect(()=>{const n=e.current;if(n)return r?n.setAttribute(nt,"true"):n.removeAttribute(nt),()=>{n.removeAttribute(nt)}},[e,r])},vu=T.sm,yu=F,Au=_.medium,bu=7,Su=4,or=1,Oe=10,ju=5,wu=4,Eu="0 1px 1.5px rgba(14, 14, 52, 0.18)";var Cu="ph8bdc0",ku="ph8bdc1",Lu="ph8bdc2",Pu="ph8bdc3";const Tu=({cx:e,cy:t,color:r,radius:n=wu})=>o.jsx("circle",{cx:e,cy:t,r:n,style:{fill:r??c.textPrimary,stroke:c.tooltipBackground,strokeWidth:2,filter:`drop-shadow(${Eu})`}});function Ru(e){const t=se(),{formattingLocale:r}=ie(),n=w(V.useShallow(d=>({pinnedNumbers:d.annotations.pinnedNumbers,comments:d.annotations.comments,coordSystem:d.coordSystem,numberFormat:d.config.numberFormat,parsingLocale:d.config.parsingLocale,textScale:d.config.appearance.textScale}))),s=r??n.parsingLocale,a=f.useMemo(()=>u.buildPinnedNumberValueFormatter({numberFormat:n.numberFormat,locale:s}),[n.numberFormat,s]),i=f.useMemo(()=>{const d={family:yu,size:$(vu,n.textScale),weight:Au};return(h,g)=>{const p=t.measureText(g,d),m=h==="pinned-number"?Oe+ju:0;return{width:p.width+m+(bu+or)*2,height:Math.max(p.height,Oe)+(Su+or)*2}}},[t,n.textScale]);return{placed:f.useMemo(()=>u.placeCallouts({pinnedNumbers:n.pinnedNumbers,comments:n.comments,panelRect:e,coordSystem:n.coordSystem,measurer:i,formatPinnedNumber:d=>a(d.at)}),[n.pinnedNumbers,n.comments,e,n.coordSystem,i,a]),formatPinnedValue:a}}const Bu=({panelRect:e})=>{const t=w(h=>h.annotations.pinnedNumbers),r=w(h=>h.coordSystem),n=ee(),{placed:s,formatPinnedValue:a}=Ru(e),{store:i}=le(),l=f.useMemo(()=>{const h=new Map;for(const g of t)h.set(g.id,g);return h},[t]),d=f.useMemo(()=>u.buildCalloutHitRegions(s.filter(h=>h.kind==="pinned-number"),e),[s,e]);return f.useEffect(()=>(i.getState().setCalloutHits(d),()=>{i.getState().setCalloutHits([])}),[i,d]),t.length===0?null:o.jsx("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible",className:Cu,"data-testid":"pinned-numbers",children:s.map(h=>{const{id:g,kind:p,inView:m,miniRect:v,anchorPx:x}=h;if(p!=="pinned-number"||!m)return null;const b=l.get(g);if(b===void 0)return null;const{color:y,geom:j}=b.at;return o.jsxs("g",{"data-testid":"pinned-number",children:[o.jsx("foreignObject",{x:v.x,y:v.y,width:v.width,height:v.height,overflow:"visible",children:o.jsxs("div",{className:ku,children:[o.jsx("span",{className:Lu,children:o.jsx(Ce,{shape:n(j,r.type)?.swatchShape??"square",color:y??"currentColor",width:Oe,height:Oe})}),o.jsx("span",{className:Pu,children:a(b.at)})]})}),o.jsx(Tu,{cx:x.x,cy:x.y,color:y})]},g)})})},Mu={"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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"}},Iu=3.2,Nu=({panelRect:e})=>{const t=w(a=>a.annotations.stickers),r=w(a=>a.config.appearance.textScale),n=w(a=>a.coordSystem);if(t.length===0)return null;const s=$(Iu,r);return o.jsx("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":"stickers",children:t.map(a=>{const i=n.type==="polar"?Du(a,e):Fu(a);return o.jsx(Hu,{sticker:a,sizePx:s,x:i.x,y:i.y},a.id)})})},Hu=({sticker:e,sizePx:t,x:r,y:n})=>{const s=Mu[e.sticker];if(!s)return null;const{width:a,height:i}=Gu(s.aspectRatio,t);return o.jsx("image",{href:s.src,x:r,y:n,width:a,height:i,transform:`translate(${-a/2}, ${-i/2})`})},Fu=e=>({x:u.toPercent(e.at.x),y:u.toPercent(1-e.at.y)}),Du=(e,t)=>{const r=yt(t),n=r.radius*2;return{x:r.centerX-r.radius+e.at.x*n,y:r.centerY-r.radius+e.at.y*n}},Gu=(e,t)=>e>=1?{width:t,height:t/e}:{width:t*e,height:t};var Ou="_1agclyl0",Wu="_1agclyl1",zu="_1agclyl2",Yu={inside:"_1agclyl4 _1agclyl3",outside:"_1agclyl5 _1agclyl3"},Uu="_1agclyl6 _1agclyl3";const uo=({x:e,y:t,width:r,height:n,text:s,isRotated:a,target:i,position:l,coordType:d})=>{const h=a?`rotate(-90 ${e} ${t})`:void 0,g=i==="aggregate"?Uu:Yu[l],p=Vu(i,l,d);return o.jsxs("g",{transform:h,children:[p&&o.jsx("rect",{className:p,x:e-r/2,y:t-n/2,width:r,height:n,rx:Qt,ry:Qt}),o.jsx("text",{className:g,x:e,y:t,textAnchor:"middle",dominantBaseline:"central",children:s})]})},Vu=(e,t,r)=>{if(e==="aggregate")return zu;if(t==="outside"&&r==="cartesian")return Wu},Qu=({panelRect:e,formattingLocale:t})=>{const r=se(),n=w(V.useShallow(i=>({layers:i.layers,coordSystem:i.coordSystem,axes:i.guides.axes,numberFormat:i.config.numberFormat,parsingLocale:i.config.parsingLocale,textScale:i.config.appearance.textScale}))),s=f.useMemo(()=>Tn(r,n.textScale),[r,n.textScale]),a=f.useMemo(()=>u.buildDataLabelsContent({...n,panelRect:e,measureDataLabel:s,formattingLocale:t}),[n,e,s,t]);return o.jsx("g",{className:Ou,transform:`translate(${e.x}, ${e.y})`,"data-testid":"data-labels",children:a.labels.map((i,l)=>o.jsx(uo,{x:i.x,y:i.y,width:i.width,height:i.height,text:i.text,isRotated:i.isRotated,target:i.target,position:i.position,coordType:n.coordSystem.type},`${i.layerId}:${l}`))})},Xu=({linePath:e,arrowheadPath:t,stroke:r,strokeWidth:n})=>{const s={stroke:r,strokeWidth:n,strokeLinecap:"round",fill:"none"};return o.jsxs("g",{children:[o.jsx("path",{d:e,...s}),o.jsx("path",{d:t,...s,strokeLinejoin:"round"})]})},qu=({x:e,y:t,text:r,lineHeight:n,paddingX:s,paddingY:a,strokeWidth:i,strokeColor:l,fontWeight:d})=>{const h=se(),p=f.useMemo(()=>h.measureText(r,{family:F,size:n,weight:d}),[h,r,n,d]).width+s*2,m=n+a*2;return o.jsxs("g",{style:{pointerEvents:"none"},children:[o.jsx("rect",{x:e-p/2,y:t-m/2,width:p,height:m,rx:4,fill:c.graphBackground,stroke:l,strokeWidth:i}),o.jsx("text",{x:e,y:t,dominantBaseline:"central",textAnchor:"middle",fill:c.textPrimary,style:{fontFamily:F,fontSize:n,fontWeight:d},children:r})]})},Ku=({panelRect:e,formattingLocale:t})=>{const r=w(V.useShallow(s=>({differenceArrows:s.annotations.differenceArrows,mainAxis:s.coordSystem.type==="cartesian"?s.coordSystem.mainAxis:"x",textScale:s.config.appearance.textScale}))),n=f.useMemo(()=>r.differenceArrows.map(s=>u.computeDifferenceArrow({arrow:s,mainAxis:r.mainAxis,panelWidth:e.width,panelHeight:e.height,textScale:r.textScale,locale:t})),[r,e.width,e.height,t]);return n.length===0?null:o.jsx("g",{transform:`translate(${e.x}, ${e.y})`,"data-testid":"difference-arrows",children:n.map(({color:s,id:a,linePath:i,arrowheadPath:l,strokeWidth:d,labelPosition:h,labelText:g,labelLineHeight:p,labelPaddingX:m,labelPaddingY:v,labelStrokeWidth:x,labelFontWeight:b})=>{const y=s??c.defaultAnnotationArrowStroke;return o.jsxs(f.Fragment,{children:[o.jsx(Xu,{linePath:i,arrowheadPath:l,stroke:y,strokeWidth:d}),o.jsx(qu,{x:h.x,y:h.y,text:g,lineHeight:p,paddingX:m,paddingY:v,strokeWidth:x,strokeColor:y,fontWeight:b})]},a)})})},Ju=0,Zu=1.15,sr=1.15,_u="rgba(0, 0, 0, 0.16)",ar=2,$u=1.4,eh=({arrow:e,fallbackColor:t,stickerOutlineColor:r,stickerOutlineColorInverse:n})=>{const s=f.useId(),a=e.color??t,i=th(e.color,r,n),l=e.dashArray?{strokeDasharray:e.dashArray,strokeDashoffset:e.dashOffset}:{},d=e.arrowheadExtent+e.strokeWidth+ar+sr,h={x:Math.min(e.startX,e.endX)-d,y:Math.min(e.startY,e.endY)-d,width:Math.abs(e.endX-e.startX)+2*d,height:Math.abs(e.endY-e.startY)+2*d},g=[e.linePath,e.startArrowheadPath,e.endArrowheadPath].filter(p=>p.length>0).join(" ");return o.jsxs("g",{children:[e.hasStickerStyle&&o.jsx("defs",{children:o.jsx("filter",{id:s,filterUnits:"userSpaceOnUse",...h,children:o.jsx("feDropShadow",{dx:Ju,dy:Zu,stdDeviation:sr,floodColor:_u})})}),o.jsxs("g",{filter:e.hasStickerStyle?`url(#${s})`:void 0,children:[e.hasStickerStyle&&o.jsx("path",{d:g,stroke:i,strokeWidth:e.strokeWidth+2*ar,strokeLinecap:"round",fill:"none"}),o.jsx("path",{d:e.linePath,stroke:a,strokeWidth:e.strokeWidth,strokeLinecap:"round",fill:"none",...l}),e.startArrowheadPath.length>0&&o.jsx("path",{d:e.startArrowheadPath,stroke:a,strokeWidth:e.strokeWidth,strokeLinecap:"round",fill:"none"}),e.endArrowheadPath.length>0&&o.jsx("path",{d:e.endArrowheadPath,stroke:a,strokeWidth:e.strokeWidth,strokeLinecap:"round",fill:"none"})]})]})},th=(e,t,r)=>{if(e===null)return r;try{return st.getContrast(e,t)<$u?r:t}catch{return r}},rh=({panelRect:e})=>{const{themeValues:t}=kt(),r=w(s=>s.annotations.freeformArrows),n=f.useMemo(()=>r.map(s=>u.computeFreeformArrow({arrow:s,panelWidth:e.width,panelHeight:e.height})).filter(s=>s!==null),[r,e.width,e.height]);return n.length===0?null:o.jsx("g",{transform:`translate(${e.x}, ${e.y})`,"data-testid":"freeform-arrows",children:n.map(s=>o.jsx(eh,{arrow:s,fallbackColor:c.defaultAnnotationArrowStroke,stickerOutlineColor:t.arrowAnnotationStickerOutlineColor,stickerOutlineColorInverse:t.arrowAnnotationStickerOutlineColorInverse},s.id))})},nh=({edge:e,areTicksVisible:t,position:r,labelRotation:n,label:s})=>{const{tickLabelOffset:a}=wt(),i=u.toPercent(r),l=(t?1:0)*a,d={style:{font:c.fontTickLabel},fill:c.textSecondary},h=n!==0&&(e==="top"||e==="bottom"),g=e==="top";return h?o.jsx("svg",{x:i,y:g?"100%":0,style:{overflow:"visible"},children:o.jsx("text",{...sh(g,l,n),...d,children:s})}):o.jsx("text",{...oh(e,i,l),...d,children:s})},oh=(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"}}},sh=(e,t,r)=>{const n=e?-t:t;return{x:0,y:n,textAnchor:e?"start":"end",dominantBaseline:"central",transform:`rotate(${r}, 0, ${n})`}},ah=({formattedAxis:e,rect:t})=>{const r=e.position==="bottom"||e.position==="top";return o.jsxs("svg",{x:t.x,y:t.y,width:t.width,height:t.height,style:{overflow:"visible"},children:[vn,e.ticks.map((n,s)=>{const a=n.formattedLabel,i=r?n.position:1-n.position,l=ih(e.position,i,t);return o.jsxs("g",{children:[e.ticksVisible&&o.jsx("line",{...l,stroke:c.gridLineColor,strokeWidth:1}),o.jsx(nh,{edge:e.position,areTicksVisible:e.ticksVisible,position:i,labelRotation:e.labelRotation,label:a})]},s)})]})},ih=(e,t,r)=>{const n=u.toPercent(t);switch(e){case"bottom":return{x1:n,y1:0,x2:n,y2:Me};case"top":return{x1:n,y1:r.height,x2:n,y2:r.height-Me};case"left":return{x1:r.width,y1:n,x2:r.width-Me,y2:n};case"right":return{x1:0,y1:n,x2:Me,y2:n}}},lh=({axes:e,rects:t})=>o.jsx(o.Fragment,{children:e.map(r=>{const n=t[r.position];if(!n||!r.isVisible)return null;const s=ch(r.position,n);return o.jsxs("g",{transform:`translate(${n.x}, ${n.y})`,children:[vn,o.jsx("text",{style:{font:c.fontAxisLabel},fill:c.textPrimary,...s,children:r.label})]},`axis-label-${r.position}`)})}),ch=(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},dh=({formattedAxes:e,tickRects:t})=>o.jsx(o.Fragment,{children:e.map(r=>{if(r.geometry!=="linear")return null;const n=t[r.position];return!n||!r.isVisible?null:o.jsx(ah,{formattedAxis:r,rect:n},r.scaleAestheticKey)})}),uh=({formattedAxes:e,labelRects:t})=>{const r=e.filter(n=>n.geometry==="linear");return o.jsx(lh,{axes:r,rects:t})},hh=8,ir={strokeDashoffset:"0",strokeLinecap:"round"},ho=({axes:e,panel:t,panelFrameRect:r,panelRect:n})=>{const s=w(d=>d.coordSystem.type==="polar"),a=n.x-r.x,i=n.y-r.y,l=u.computePanelBorderPaths(t.border,{x:0,y:0,width:r.width,height:r.height},hh);return o.jsxs("svg",{"data-testid":"grid",x:r.x,y:r.y,width:r.width,height:r.height,style:{overflow:"visible"},children:[!s&&l.map((d,h)=>o.jsx("path",{d:gh(d.segments),fill:"none",stroke:c.gridLineColor,strokeDasharray:lr(d.lineStyle),strokeWidth:d.lineWidth??c.gridLineWidth,...ir},h)),e.map(d=>{if(d.geometry!=="linear"||!d.gridVisible)return null;const h=d.position==="bottom"||d.position==="top",g=lr(d.gridLineStyle),p=d.gridLineWidth??c.gridLineWidth;return o.jsx("g",{children:d.ticks.map((m,v)=>{if(m.position<=0||m.position>=1)return null;const x=h?m.position:1-m.position;let b;if(h){const y=x*n.width+a;b={x1:y,y1:0,x2:y,y2:"100%"}}else{const y=x*n.height+i;b={x1:0,y1:y,x2:"100%",y2:y}}return o.jsx("line",{...b,...ir,strokeDasharray:g,strokeWidth:p,stroke:c.gridLineColor},v)})},d.scaleAestheticKey)})]})},lr=e=>{switch(e){case"dashed":return c.gridLineDash;case"dotted":return c.gridLineDotted;case"solid":return}},gh=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(" "),go=1e-9,fo=(e,t)=>{const r=w(d=>d.coordSystem);if(r.type!=="polar")return null;const n=t.find(d=>d.geometry==="circular");if(!n)return null;const{innerRadius:s,startAngle:a,spokeRotation:i}=r,l=yt(e);return l.radius<=0?null:{circle:l,circularAxis:n,radialAxis:t.find(d=>d.geometry==="radial"),innerRadius:s,startAngle:a,angleFor:d=>u.positionToAngle(d,a,i),radiusNormFor:d=>s+d*(1-s)}},fh=3,ph=16,mh=({formattedAxes:e,panelRect:t})=>{const r=fo(t,e);if(!r)return null;const{circle:n,circularAxis:s,radialAxis:a,startAngle:i,angleFor:l,radiusNormFor:d}=r,h=xh(a,d,n.radius);return o.jsxs("svg",{x:t.x,y:t.y,width:t.width,height:t.height,overflow:"visible","data-testid":"polar-axis-ticks",children:[a?.isVisible&&h.map(({tick:g,radiusNorm:p},m)=>{const v=X(i,p,n);return o.jsx("text",{x:v.x,y:v.y,textAnchor:"middle",dominantBaseline:"central",style:{font:c.fontTickLabel,paintOrder:"stroke"},stroke:c.graphBackground,strokeWidth:fh,fill:c.textSecondary,children:g.formattedLabel},`radial-label-${m}`)}),s.isVisible&&s.ticks.map((g,p)=>{if(g.position>=1-go)return null;const m=l(g.position),v=X(m,(n.radius+u.POLAR_RIM_LABEL_GAP_PX)/n.radius,n);return o.jsx("text",{x:v.x,y:v.y,textAnchor:vh(m),dominantBaseline:"central",style:{font:c.fontTickLabel},fill:c.textSecondary,children:g.formattedLabel},`rim-label-${p}`)})]})},xh=(e,t,r)=>{if(!e)return[];const n=[];let s=Number.NEGATIVE_INFINITY;for(const a of e.ticks){const i=t(a.position);if(i<=0)continue;const l=i*r;l-s<ph||(n.push({tick:a,radiusNorm:i}),s=l)}return n},vh=e=>{const t=Math.sin(e);return Math.abs(t)<.01?"middle":t>0?"start":"end"},yh=({formattedAxes:e,panelRect:t})=>{const r=fo(t,e);if(!r)return null;const{circle:n,circularAxis:s,radialAxis:a,innerRadius:i,angleFor:l,radiusNormFor:d}=r;return o.jsxs("svg",{x:t.x,y:t.y,width:t.width,height:t.height,overflow:"visible","data-testid":"polar-grid",children:[a?.gridVisible&&a.ticks.map((h,g)=>{const p=d(h.position)*n.radius;return p<=0||h.position>=1?null:o.jsx("circle",{cx:n.centerX,cy:n.centerY,r:p,fill:"none",stroke:c.gridLineColor,strokeWidth:c.gridLineWidth},`ring-${g}`)}),a?.gridVisible&&o.jsx("circle",{cx:n.centerX,cy:n.centerY,r:n.radius,fill:"none",stroke:c.gridLineColor,strokeWidth:c.gridLineWidth}),s.gridVisible&&s.ticks.map((h,g)=>{if(h.position>=1-go)return null;const p=l(h.position),m=X(p,i,n),v=X(p,1,n);return o.jsx("line",{x1:m.x,y1:m.y,x2:v.x,y2:v.y,stroke:c.gridLineColor,strokeWidth:c.gridLineWidth},`spoke-${g}`)})]})},Ah={fill:"none",contain:"xMidYMid meet",cover:"xMidYMid slice"},cr=({panelRect:e,zOrder:t})=>{const n=w(s=>s.annotations.images).filter(s=>s.zOrder===t);return n.length===0?null:o.jsx("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":`image-annotations-${t}`,children:n.map(({id:s,src:a,region:i,fit:l,opacity:d})=>o.jsx("image",{href:a,x:u.toPercent(i.x),y:u.toPercent(1-i.y-i.height),width:u.toPercent(i.width),height:u.toPercent(i.height),preserveAspectRatio:Ah[l],opacity:d},s))})},dr=({panelRect:e,zOrder:t})=>{const n=w(s=>s.annotations.shapes).filter(s=>s.zOrder===t);return n.length===0?null:o.jsx("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":`shapes-${t}`,children:n.map(({id:s,region:a,fillColor:i,fillOpacity:l,strokeWidth:d,strokeColor:h})=>o.jsx("rect",{x:u.toPercent(a.x),y:u.toPercent(1-a.y-a.height),width:u.toPercent(a.width),height:u.toPercent(a.height),fill:i,fillOpacity:l,stroke:d>0?h??c.defaultAnnotationShapeStroke:"none",strokeWidth:d},s))})};var bh="_120wioc0";const Sh=({panelRect:e})=>{const t=w(r=>r.annotations.textAnnotations);return t.length===0?null:o.jsx("svg",{x:e.x,y:e.y,width:e.width,height:e.height,overflow:"visible","data-testid":"text-annotations",children:t.map(r=>o.jsx("foreignObject",{x:u.toPercent(r.at.x),y:u.toPercent(1-r.at.y),width:u.toPercent(r.width),height:u.toPercent(r.at.y),overflow:"visible",children:o.jsx("div",{className:bh,style:jh(r.backgroundColor,r.backgroundColorStyle),children:o.jsx(Ge,{content:r.content})})},r.id))})},jh=(e,t)=>e===null||e==="transparent"?{color:c.textPrimary}:t==="fade"?{color:c.textPrimary,backgroundColor:ut(e,c.grey100,.5),boxShadow:`0 0 0 1.5px ${ut(e,c.grey0,.2)}`}:{color:c.textPrimary,backgroundColor:e,boxShadow:`0 0 0 1.5px ${Xe(e,.1)}`};var wh="usd3ea0",Eh="usd3ea1";const Ch=({layer:e,coordSystem:t,isAnimated:r,isDimmed:n,highlightStyle:s,formattingLocale:a})=>{const l=ee()(e.geom,t.type);if(l===null)return null;const d=Ve(l.render);return d.overlay?null:o.jsx("g",{className:H({[Eh]:n&&s==="desaturate",[wh]:n&&s==="dim"}),children:d.fn({layer:e,coordSystem:t,isAnimated:r,formattingLocale:a})})};function kh({renderer:e,layer:t,coordSystem:r,candidates:n}){if(e?.getOverlayAnchor===void 0||n.length===0)return[];const s=[];for(const{observation:a,observationIndex:i}of n){const l=e.getOverlayAnchor({layer:t,coordSystem:r,observation:a});l!==null&&s.push({observation:a,observationIndex:i,anchor:l})}return s}const Lh=4,Ph=({renderer:e,layer:t,matchedLayer:r,overlayCandidates:n,coordSystem:s,isAnimated:a,panelRect:i,formattingLocale:l})=>{const{numberFormat:d,textScale:h}=w(V.useShallow(b=>({numberFormat:b.config.numberFormat,textScale:b.config.appearance.textScale}))),g=f.useMemo(()=>kh({renderer:e,layer:t,coordSystem:s,candidates:n}),[e,t,s,n]),p=f.useMemo(()=>u.createSegmentYReader(t),[t]),m=f.useMemo(()=>u.buildLayerYValueFormatter({layer:t,numberFormat:d,locale:l}),[d,t,l]),v=Xi*kr*h;if(e===null||r===null&&g.length===0)return null;const x=Ve(e.render);return o.jsxs(o.Fragment,{children:[r&&!x.overlay?x.fn({layer:r,coordSystem:s,isAnimated:a,formattingLocale:l}):null,g.map(({observation:b,observationIndex:y,anchor:j})=>o.jsx(Th,{observation:b,anchor:j,panelRect:i,readSegmentY:p,formatYValue:m,labelFontSizePx:v},Rh(b,y)))]})},Th=({observation:e,anchor:t,panelRect:r,readSegmentY:n,formatYValue:s,labelFontSizePx:a})=>{const i=se(),l=u.toViewBoxX(t.x),d=u.toViewBoxY(t.y),h=(u.getSize(e)??jr)/2,g=n(e),p=u.isDefined(g)?s(g,e):null,m=f.useMemo(()=>{if(p===null)return null;const v=i.measureText(p,{family:Pn,size:a,weight:qi});return{width:v.width+u.DATA_LABEL_PADDING_X_PX*2,height:v.height+u.DATA_LABEL_PADDING_Y_PX*2}},[p,i,a]);return o.jsxs(o.Fragment,{children:[o.jsx("circle",{"data-testid":"highlight-overlay-dot",cx:u.toPercent(l),cy:u.toPercent(d),r:h,fill:u.getColor(e)}),p!==null&&m!==null&&o.jsx(uo,{x:l*r.width,y:d*r.height-h-Lh-m.height/2,width:m.width,height:m.height,text:p,isRotated:!1,target:"observation",position:"outside",coordType:"cartesian"})]})},Rh=(e,t)=>{const r=e[u.GROUP_VARIABLES.group];return`${String(r??"")}\0${t}`},Bh=({layer:e,coordSystem:t,panelRect:r})=>{const{primary:n,group:s,related:a}=Ee(V.useShallow(h=>({primary:h.hover.primary,group:h.hover.group,related:h.hover.related}))),i=ee();if(n===null)return null;const l=i(e.geom,t.type);if(l===null||Qe(l))return null;const d=a.get(e.id)??[];return n.layerId===e.id?l.renderHover({layer:e,coordSystem:t,primary:n,group:s,related:d,panelRect:r}):d.length===0?null:l.renderHoverCompanions({layer:e,primary:n,related:d})};var Mh="to1jkx0",Ih="to1jkx1";const Nh=({shouldAnimate:e,panelRect:t,formattingLocale:r})=>{const{layers:n,coordSystem:s,highlightStyle:a}=w(V.useShallow(i=>({layers:i.layers,coordSystem:i.coordSystem,highlightStyle:i.config.appearance.highlightStyle})));return o.jsx("svg",{x:t.x,y:t.y,width:t.width,height:t.height,className:Mh,"data-testid":"geom-layers",children:n.map(i=>o.jsxs(f.Fragment,{children:[o.jsx(Dh,{layer:i,coordSystem:s,highlightStyle:a,shouldAnimate:e,panelRect:t,formattingLocale:r}),o.jsx(Bh,{layer:i,coordSystem:s,panelRect:t})]},`${i.id}-${Hh(s)}`))})},Hh=e=>e.type==="cartesian"?`cartesian-${e.mainAxis}`:e.type,Fh=e=>{if(e.geom!=="rule")return Ih},Dh=({layer:e,coordSystem:t,highlightStyle:r,shouldAnimate:n,panelRect:s,formattingLocale:a})=>{const i=ee(),l=f.useMemo(()=>i(e.geom,t.type),[i,e,t]),d=e.highlight,h={layer:e,coordSystem:t,isAnimated:n,formattingLocale:a},g=l?Ve(l.render):null,p=e.spatialKind==="render-hit-test";return o.jsxs("g",{className:Fh(e),children:[o.jsx(Ch,{layer:e,coordSystem:t,isAnimated:n,isDimmed:d?.composition.isDimmed??!1,highlightStyle:r,formattingLocale:a}),p&&!g?.overlay&&l?.hitTest&&o.jsx(Ta,{hitTest:l.hitTest,input:h}),p&&g?.overlay&&o.jsx(Na,{render:g.fn,input:h}),d!==null&&o.jsx(Ph,{renderer:l,layer:e,matchedLayer:d.composition.matchedLayer,overlayCandidates:d.composition.overlayCandidates,coordSystem:t,isAnimated:n,panelRect:s,formattingLocale:a})]})};var Gh="_17uhij30";const Oh=({formattedAxes:e,panelGuide:t,plotRect:r,panelFrameRect:n,panelRect:s,axisRects:a,axisLabelRects:i,shouldAnimate:l,formattingLocale:d})=>{const h=f.useRef(null);xu(h);const g=ne("Grid",ho),p=ne("AxisTicks",dh),m=ne("AxisLabel",uh),v=f.useMemo(()=>pt(n,r),[n,r]),x=f.useMemo(()=>pt(s,r),[s,r]),b=f.useMemo(()=>ur(a,r),[a,r]),y=f.useMemo(()=>ur(i,r),[i,r]);return o.jsxs("svg",{ref:h,className:Gh,width:r.width,height:r.height,style:{transform:`translate(${r.x}px, ${r.y}px)`},"data-testid":"plot",children:[o.jsx(nr,{panelRect:x}),o.jsx(g,{axes:e,panel:t,panelFrameRect:v,panelRect:x}),o.jsx(p,{formattedAxes:e,tickRects:b}),o.jsx(m,{formattedAxes:e,labelRects:y}),o.jsx(yh,{formattedAxes:e,panelRect:x}),o.jsx(nr,{panelRect:x}),o.jsx(dr,{panelRect:x,zOrder:"background"}),o.jsx(cr,{panelRect:x,zOrder:"background"}),o.jsx(Nh,{shouldAnimate:l,panelRect:x,formattingLocale:d}),o.jsx(mh,{formattedAxes:e,panelRect:x}),o.jsx(Qu,{panelRect:x,formattingLocale:d}),o.jsx(Ku,{panelRect:x,formattingLocale:d}),o.jsx(dr,{panelRect:x,zOrder:"foreground"}),o.jsx(cr,{panelRect:x,zOrder:"foreground"}),o.jsx(rh,{panelRect:x}),o.jsx(Sh,{panelRect:x}),o.jsx(Nu,{panelRect:x}),o.jsx(mu,{panelRect:x}),o.jsx(Bu,{panelRect:x})]})},pt=(e,t)=>({x:e.x-t.x,y:e.y-t.y,width:e.width,height:e.height}),ur=(e,t)=>{const r={};for(const[n,s]of Object.entries(e))r[n]=pt(s,t);return r},Wh=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:hr(t,"width"),height:hr(r,"height")}},hr=(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},zh=({sizing:e,onResize:t,children:r})=>{const n=Kr({onResize:t});if(e.mode==="keepAspectRatio"){const{intrinsicSize:a,canRender:i,outerStyles:l,innerStyles:d}=Yh(e,n.width,!n.isDefault);return o.jsx("div",{ref:n.setElement,style:l,"data-testid":"graph-sizer",children:i&&o.jsx("div",{style:d,children:r(a)})})}if(e.mode==="fixed")return o.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 s=!n.isDefault&&n.width>0&&n.height>0;return o.jsx("div",{ref:n.setElement,style:{width:"100%",height:"100%"},"data-testid":"graph-sizer",children:s&&r({width:n.width,height:n.height})})},Yh=(e,t,r)=>{const n=Wh(e),s=t>0&&n.width>0?t/n.width:1;return{intrinsicSize:n,canRender:r,outerStyles:{width:"100%",...r?{height:n.height*s}:{aspectRatio:`${n.width} / ${n.height}`}},innerStyles:{transformOrigin:"top left",transform:`scale(${s})`,width:n.width,height:n.height}}},Uh={mode:"responsive"},ot={headerSize:{width:0,height:0},footerSize:{width:0,height:0}},Vh=()=>{const[e,t]=f.useState(null),[r,n]=f.useState(null),[s,a]=f.useState(ot);return f.useEffect(()=>{const i=()=>{const d=e?{width:e.offsetWidth,height:e.offsetHeight}:ot.headerSize,h=r?{width:r.offsetWidth,height:r.offsetHeight}:ot.footerSize;a(g=>Qh(g,{headerSize:d,footerSize:h})?{headerSize:d,footerSize:h}:g)};i();const l=new ResizeObserver(i);return e&&l.observe(e),r&&l.observe(r),()=>l.disconnect()},[e,r]),{headerRef:t,footerRef:n,measurements:s}},Qh=(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=({appearance:e,isEditable:t,style:r,children:n})=>{const{theme:s,themeClass:a,inlineVarsStyle:i}=kt(),l=fl(e.border),d=Math.max(0,e.cornerRadius),h=d===0?0:d+l,g=f.useMemo(()=>{const v={...r,borderRadius:`${h}px`,...i},x=gl(e.border,s);return x!==null&&(v.background=x),v},[r,h,i,e.border,s]),p=f.useMemo(()=>({inset:`${l}px`,borderRadius:`${d}px`}),[l,d]),m=t&&e.background.type==="solid"&&e.background.color==="transparent";return o.jsx("div",{"data-testid":"graph-wrapper",className:H(vl,a),style:g,children:o.jsx("div",{"data-testid":"graph-inner",className:H(Al,{[bl]:m}),style:p,children:n})})},qh=({slots:e,sizing:t=Uh,onResize:r,...n})=>{const{formattingLocale:s}=ie(),a=w(i=>i.config.parsingLocale);return o.jsx(Qr,{children:o.jsx(Tr,{children:o.jsx(K.IntlProvider,{locale:s??a,children:o.jsx(li,{slots:e,children:o.jsx(zh,{sizing:t,onResize:r,children:({width:i,height:l})=>o.jsx(Kh,{width:i,height:l,...n})})})})})})},Kh=({width:e,height:t,isAnimated:r,showTooltips:n=!0,mode:s="readonly"})=>{const a=K.useI18n(),{axes:i,panel:l,legends:d,layers:h,numberFormat:g,parsingLocale:p,appearance:m,annotations:v,coordSystem:x,headline:b,headlineConfig:y,content:j,overflowStrategy:M}=w(V.useShallow(N=>({axes:N.guides.axes,panel:N.guides.panel,legends:N.guides.legends,layers:N.layers,numberFormat:N.config.numberFormat,parsingLocale:N.config.parsingLocale,appearance:N.config.appearance,annotations:N.annotations,coordSystem:N.coordSystem,headline:N.guides.headline,headlineConfig:N.config.headline,content:N.config.content,overflowStrategy:N.config.panel.overflow}))),D=L.useReducedMotion(),{headerRef:E,footerRef:I,measurements:z}=Vh(),{formattingLocale:A,theme:C,themeOverrides:ke}=ie(),me=f.useMemo(()=>Cn(C,ke),[C,ke]),po=ne("Header",no),mo=ne("Footer",ro),xo=ne("Legend",au),vo=ne("Headline",yd),Pt=f.useMemo(()=>u.formatLegends({legends:d,numberFormat:g,parsingLocale:p,formattingLocale:A}),[d,g,p,A]),xe=f.useMemo(()=>u.formatHeadline({headline:b,show:y.show,numberFormat:g,parsingLocale:p,formattingLocale:A,t:a}),[b,y.show,g,p,A,a]),yo=se(),Ke=m.border.type==="none"?0:m.border.width,Je=f.useMemo(()=>({width:Math.max(0,e-2*Ke),height:Math.max(0,t-2*Ke)}),[e,t,Ke]),Le=f.useMemo(()=>xe?{formatted:xe,size:y.size,position:y.position,innerRadius:x.type==="polar"?x.innerRadius:0}:void 0,[xe,y.size,y.position,x]),Ao=ci(),Pe=ol(yo,m.textScale,me,Ao),ve=sl({measurer:Pe,axes:i,numberFormat:g,parsingLocale:p,formattedLegends:Pt,containerSize:Je,externalMeasurements:z,headline:Le,formattingLocale:A,annotations:v,layers:h,coordSystem:x,textScale:m.textScale,overflowStrategy:M,graphPadding:me.graphPadding}),Te=f.useMemo(()=>!ve||!Le||!Pe?null:u.resolveHeadlinePlacement({headline:Le,layout:ve.layout,containerSize:Je,measurer:Pe,itemGap:me.headlineItemGap}),[ve,Le,Pe,Je,me.headlineItemGap]);if(!ve)return null;const{layout:re,formattedAxes:bo}=ve;return o.jsx(Dn,{theme:C,themeOverrides:ke,appearance:m,children:o.jsx(Ui,{metrics:me,children:o.jsxs(Xh,{appearance:m,isEditable:s==="editable",style:{width:"100%",height:"100%"},children:[o.jsx(po,{ref:E,headerRect:re.header,mode:s,title:j.title,isTitleVisible:j.isTitleVisible,subtitle:j.subtitle,isSubtitleVisible:j.isSubtitleVisible}),o.jsx(Oh,{formattedAxes:bo,panelGuide:l,plotRect:re.plot,panelFrameRect:re.panelFrame,panelRect:re.panel,axisRects:re.axes,axisLabelRects:re.axisLabels,shouldAnimate:r??!D,formattingLocale:A??p}),o.jsx(mo,{ref:I,footerRect:re.footer,mode:s,caption:j.caption,isCaptionVisible:j.isCaptionVisible,source:j.source,isSourceVisible:j.isSourceVisible}),o.jsx(xo,{formattedLegends:Pt,rects:re.legends,textScale:m.textScale}),xe&&Te&&o.jsx(vo,{headline:xe,rect:Te.rect,resolvedSize:Te.resolvedSize,visibleItemCount:Te.visibleItemCount}),n&&o.jsx(ji,{})]})})})};exports.CanvasTextMeasurer=Ue;exports.DefaultFooter=ro;exports.DefaultGrid=ho;exports.DefaultHeader=no;exports.DefaultTooltip=tn;exports.DevToolsPanel=ni;exports.GraphErrorBoundary=zr;exports.GraphErrorPanel=dt;exports.GraphProvider=Ur;exports.GraphRenderer=qh;exports.HoverProvider=Qr;exports.TextMeasurerProvider=Tr;exports.ThemeProvider=Dn;exports.UnitSpaceSvg=Fa;exports.createGraphyKit=Ca;exports.darkTheme=Fn;exports.defineGeomRenderer=$s;exports.lightTheme=Hn;exports.lightenCss=St;exports.useCompiledSelector=w;exports.useGeomHitTest=Xr;exports.useGeomHover=Zr;exports.useGraphCommandDispatcher=bt;exports.useHoverState=Ee;exports.usePanelScreenRect=Jr;exports.useTextMeasurer=se;exports.vars=c;
|