semiotic 3.8.2 → 3.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +9 -9
- package/README.md +42 -40
- package/ai/examples.md +1 -1
- package/ai/schema.json +2726 -300
- package/ai/surface-manifest.json +1 -1
- package/ai/system-prompt.md +1 -1
- package/dist/chunk-chunk-2JGJ5GUG.module.min.js +0 -1
- package/dist/chunk-chunk-3ILKBVVQ.module.min.js +1 -0
- package/dist/{chunk-chunk-NO4MCQVD.module.min.js → chunk-chunk-5RKXZQ2P.module.min.js} +1 -1
- package/dist/{chunk-chunk-CYIML3AV.module.min.js → chunk-chunk-6TPGFL7M.module.min.js} +1 -1
- package/dist/{chunk-chunk-VVCA3DB7.module.min.js → chunk-chunk-7ALTGHK6.module.min.js} +1 -1
- package/dist/chunk-chunk-7KZJUTKP.module.min.js +2 -0
- package/dist/chunk-chunk-7RYBCTK5.module.min.js +1 -0
- package/dist/chunk-chunk-ACLDBMRH.module.min.js +2 -0
- package/dist/chunk-chunk-ANYDWOZF.module.min.js +1 -0
- package/dist/{chunk-chunk-ZLKRTF5N.module.min.js → chunk-chunk-AQPQN2HH.module.min.js} +1 -1
- package/dist/chunk-chunk-ASKSE5F5.module.min.js +1 -0
- package/dist/chunk-chunk-AVBI6GDT.module.min.js +1 -0
- package/dist/chunk-chunk-B3DRZPBK.module.min.js +2 -0
- package/dist/chunk-chunk-BFHUYEOS.module.min.js +2 -0
- package/dist/chunk-chunk-C4YA6TDR.module.min.js +1 -0
- package/dist/chunk-chunk-C57LR3YG.module.min.js +1 -0
- package/dist/chunk-chunk-EMO5NUGE.module.min.js +1 -0
- package/dist/chunk-chunk-F5V4UIE6.module.min.js +2 -0
- package/dist/chunk-chunk-F7WFPD4O.module.min.js +2 -0
- package/dist/chunk-chunk-FBGHXL72.module.min.js +2 -0
- package/dist/chunk-chunk-FP44FHFO.module.min.js +2 -0
- package/dist/chunk-chunk-HKXUAEPJ.module.min.js +2 -0
- package/dist/chunk-chunk-ICEXPNDC.module.min.js +2 -0
- package/dist/chunk-chunk-IY7RYD4S.module.min.js +1 -0
- package/dist/{chunk-chunk-7LHMKRKE.module.min.js → chunk-chunk-JDXT6ORT.module.min.js} +1 -1
- package/dist/chunk-chunk-JMVEIZXP.module.min.js +1 -0
- package/dist/chunk-chunk-KHCOJMGK.module.min.js +1 -0
- package/dist/chunk-chunk-KQ546MKE.module.min.js +2 -0
- package/dist/chunk-chunk-LQBSXO7K.module.min.js +2 -0
- package/dist/chunk-chunk-LRIFN2HK.module.min.js +1 -0
- package/dist/chunk-chunk-MFHF4J2Z.module.min.js +1 -0
- package/dist/chunk-chunk-N6VKKF3A.module.min.js +2 -0
- package/dist/chunk-chunk-NEVE562N.module.min.js +1 -0
- package/dist/chunk-chunk-NKZ75IM5.module.min.js +2 -0
- package/dist/chunk-chunk-PLIDPQNG.module.min.js +2 -0
- package/dist/{chunk-chunk-FYY2ACNJ.module.min.js → chunk-chunk-PRDGLMJT.module.min.js} +1 -1
- package/dist/chunk-chunk-QGZGZI4X.module.min.js +1 -0
- package/dist/chunk-chunk-RP7WTID5.module.min.js +1 -0
- package/dist/chunk-chunk-S7KLNUO6.module.min.js +1 -0
- package/dist/chunk-chunk-SR4ZXOWR.module.min.js +2 -0
- package/dist/chunk-chunk-ZOAQDIJO.module.min.js +1 -0
- package/dist/chunk-minimapBrushOverlay-JU57U7NM.module.min.js +2 -0
- package/dist/chunk-scatterplotMatrixBrushOverlay-SDIZSN66.module.min.js +2 -0
- package/dist/chunk-statisticalOverlays-QGDLRUHX.module.min.js +1 -0
- package/dist/chunk-statisticalOverlays-T77OKLDY.module.min.js +1 -0
- package/dist/components/ChartContainer.d.ts +2 -2
- package/dist/components/ai/chartCapabilityTypes.d.ts +5 -0
- package/dist/components/charts/custom/XYCustomChart.d.ts +3 -0
- package/dist/components/charts/geo/ChoroplethMap.d.ts +2 -0
- package/dist/components/charts/geo/DistanceCartogram.d.ts +7 -3
- package/dist/components/charts/geo/FlowMap.d.ts +4 -0
- package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +3 -1
- package/dist/components/charts/physics/CollisionSwarmChart.d.ts +6 -1
- package/dist/components/charts/physics/GaltonBoardChart.d.ts +6 -1
- package/dist/components/charts/physics/gauntletChartProps.d.ts +7 -1
- package/dist/components/charts/physics/gauntletChrome.d.ts +2 -1
- package/dist/components/charts/physics/gauntletPhysics.d.ts +19 -4
- package/dist/components/charts/physics/gauntletRuntime.d.ts +3 -0
- package/dist/components/charts/physics/physicsHocUtils.d.ts +12 -0
- package/dist/components/charts/realtime/RealtimeHistogram.d.ts +5 -6
- package/dist/components/charts/realtime/temporalHistogramConfig.d.ts +11 -0
- package/dist/components/charts/shared/areaSeriesData.d.ts +15 -0
- package/dist/components/charts/shared/chartMode.d.ts +75 -0
- package/dist/components/charts/shared/chartSpecCore.d.ts +2 -2
- package/dist/components/charts/shared/colorUtils.d.ts +8 -0
- package/dist/components/charts/shared/geoStyleDefaults.d.ts +3 -0
- package/dist/components/charts/shared/hatchPattern.d.ts +8 -3
- package/dist/components/charts/shared/hooks.d.ts +13 -80
- package/dist/components/charts/shared/lineSeriesSsr.d.ts +55 -0
- package/dist/components/charts/shared/types.d.ts +2 -2
- package/dist/components/charts/shared/useChartSetup.d.ts +3 -0
- package/dist/components/charts/shared/useCustomChartSetup.d.ts +3 -0
- package/dist/components/charts/shared/useXYLineStyle.d.ts +3 -2
- package/dist/components/charts/shared/validateProps.d.ts +1 -1
- package/dist/components/charts/shared/xyLineStyle.d.ts +21 -0
- package/dist/components/charts/xy/AreaChart.d.ts +10 -0
- package/dist/components/charts/xy/LineChart.d.ts +3 -0
- package/dist/components/charts/xy/minimapBrushOverlay.d.ts +17 -0
- package/dist/components/charts/xy/minimapBrushOverlayLazy.d.ts +4 -0
- package/dist/components/charts/xy/scatterplotMatrixBrushOverlay.d.ts +8 -0
- package/dist/components/charts/xy/scatterplotMatrixBrushOverlayLazy.d.ts +3 -0
- package/dist/components/legendLayout.d.ts +31 -0
- package/dist/components/realtime/types.d.ts +5 -0
- package/dist/components/recipes/gridObservatory.d.ts +176 -0
- package/dist/components/recipes/recipeChrome.d.ts +24 -0
- package/dist/components/recipes/sequenceLayout.d.ts +139 -0
- package/dist/components/semiotic-recipes-core.d.ts +6 -2
- package/dist/components/server/serverChartConfigShared.d.ts +29 -0
- package/dist/components/server/serverChartConfigs.d.ts +2 -13
- package/dist/components/server/serverChartConfigsXY.d.ts +3 -0
- package/dist/components/server/serverGaugeOverlay.d.ts +28 -0
- package/dist/components/server/staticAnnotations.d.ts +3 -1
- package/dist/components/server/staticLegend.d.ts +7 -1
- package/dist/components/server/staticSVGChrome.d.ts +57 -0
- package/dist/components/stream/GeoPipelineStore.d.ts +2 -0
- package/dist/components/stream/GeoSVGOverlay.d.ts +2 -0
- package/dist/components/stream/SceneToSVG.d.ts +10 -8
- package/dist/components/stream/SceneToSVGGeo.d.ts +10 -0
- package/dist/components/stream/SceneToSVGNetwork.d.ts +12 -0
- package/dist/components/stream/SceneToSVGOrdinal.d.ts +12 -0
- package/dist/components/stream/canvasBackground.d.ts +7 -0
- package/dist/components/stream/networkFramePaint.d.ts +2 -0
- package/dist/components/stream/networkTypes.d.ts +2 -4
- package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +18 -2
- package/dist/components/stream/physics/physicsBodyCanvas.d.ts +7 -0
- package/dist/components/stream/physics/physicsPipelineEviction.d.ts +15 -0
- package/dist/components/stream/physics/physicsPipelineObservations.d.ts +1 -1
- package/dist/components/stream/physics/physicsPipelineQuiescence.d.ts +20 -0
- package/dist/components/stream/renderBackend.d.ts +14 -0
- package/dist/components/stream/sceneToSVGShared.d.ts +80 -0
- package/dist/components/stream/types.d.ts +4 -0
- package/dist/components/stream/useHydration.d.ts +7 -1
- package/dist/components/stream/xySceneBuilders/candlestickScene.d.ts +1 -1
- package/dist/components/types/legendTypes.d.ts +16 -3
- package/dist/forceLayoutWorker.js +1 -1
- package/dist/geo.min.js +1 -1
- package/dist/geo.module.min.js +1 -1
- package/dist/network.min.js +1 -1
- package/dist/network.module.min.js +1 -1
- package/dist/ordinal.min.js +1 -1
- package/dist/ordinal.module.min.js +1 -1
- package/dist/physics.min.js +1 -1
- package/dist/physics.module.min.js +1 -1
- package/dist/physicsWorker.js +1 -1
- package/dist/realtime.min.js +1 -1
- package/dist/realtime.module.min.js +1 -1
- package/dist/rough.min.js +1 -1
- package/dist/rough.module.min.js +1 -1
- package/dist/semiotic-ai-core.min.js +1 -1
- package/dist/semiotic-ai-core.module.min.js +1 -1
- package/dist/semiotic-ai.min.js +1 -1
- package/dist/semiotic-ai.module.min.js +1 -1
- package/dist/semiotic-experimental.min.js +1 -1
- package/dist/semiotic-experimental.module.min.js +1 -1
- package/dist/semiotic-realtime-core.min.js +1 -1
- package/dist/semiotic-realtime-core.module.min.js +1 -1
- package/dist/semiotic-recipes-core.d.ts +6 -2
- package/dist/semiotic-recipes-core.min.js +1 -1
- package/dist/semiotic-recipes-core.module.min.js +1 -1
- package/dist/semiotic-recipes.min.js +1 -1
- package/dist/semiotic-recipes.module.min.js +1 -1
- package/dist/semiotic-server-edge.min.js +1 -1
- package/dist/semiotic-server-edge.module.min.js +1 -1
- package/dist/semiotic-server-node.min.js +1 -1
- package/dist/semiotic-server-node.module.min.js +1 -1
- package/dist/semiotic-utils-core.min.js +1 -1
- package/dist/semiotic-utils-core.module.min.js +1 -1
- package/dist/semiotic-utils.min.js +1 -1
- package/dist/semiotic-utils.module.min.js +1 -1
- package/dist/semiotic-value.module.min.js +1 -1
- package/dist/semiotic.min.js +1 -1
- package/dist/semiotic.module.min.js +1 -1
- package/dist/server.min.js +1 -1
- package/dist/server.module.min.js +1 -1
- package/dist/xy.min.js +1 -1
- package/dist/xy.module.min.js +1 -1
- package/package.json +3 -2
- package/dist/chunk-chunk-255KDHW5.module.min.js +0 -1
- package/dist/chunk-chunk-27HVVXS6.module.min.js +0 -1
- package/dist/chunk-chunk-2UN3ANRN.module.min.js +0 -2
- package/dist/chunk-chunk-2VUEY5TH.module.min.js +0 -1
- package/dist/chunk-chunk-2WVCH4PL.module.min.js +0 -1
- package/dist/chunk-chunk-5WEFWNUW.module.min.js +0 -2
- package/dist/chunk-chunk-6F6GEAQU.module.min.js +0 -1
- package/dist/chunk-chunk-BHYTYMY2.module.min.js +0 -2
- package/dist/chunk-chunk-C6EJ4IOD.module.min.js +0 -2
- package/dist/chunk-chunk-CP3EN6KZ.module.min.js +0 -1
- package/dist/chunk-chunk-DNY43POY.module.min.js +0 -1
- package/dist/chunk-chunk-E7MIQX7D.module.min.js +0 -2
- package/dist/chunk-chunk-ES4DCG3L.module.min.js +0 -1
- package/dist/chunk-chunk-FAKO3RGQ.module.min.js +0 -2
- package/dist/chunk-chunk-H4PPRW6N.module.min.js +0 -1
- package/dist/chunk-chunk-IFYPMWKY.module.min.js +0 -1
- package/dist/chunk-chunk-J3ELI22J.module.min.js +0 -1
- package/dist/chunk-chunk-L6D3I3V7.module.min.js +0 -2
- package/dist/chunk-chunk-M337NY6L.module.min.js +0 -1
- package/dist/chunk-chunk-ODUZEEBH.module.min.js +0 -2
- package/dist/chunk-chunk-P6UBCMSQ.module.min.js +0 -2
- package/dist/chunk-chunk-QRIBHZYW.module.min.js +0 -1
- package/dist/chunk-chunk-RH5TSQPH.module.min.js +0 -1
- package/dist/chunk-chunk-STZFFTAN.module.min.js +0 -2
- package/dist/chunk-chunk-T27ZEV6A.module.min.js +0 -1
- package/dist/chunk-chunk-U3AGQ5EF.module.min.js +0 -2
- package/dist/chunk-chunk-W3DB2MN4.module.min.js +0 -2
- package/dist/chunk-chunk-WDIN4LRC.module.min.js +0 -1
- package/dist/chunk-chunk-XOYX77KF.module.min.js +0 -2
- package/dist/chunk-chunk-Z5KXAVQD.module.min.js +0 -2
- package/dist/chunk-chunk-ZCNBUZPL.module.min.js +0 -2
- package/dist/chunk-chunk-ZTNVDWAK.module.min.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,t=Object.create,n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,s=(e,t,i,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let c of r(t))a.call(e,c)||c===i||n(e,c,{get:()=>t[c],enumerable:!(s=o(t,c))||s.enumerable});return e},c=(e,o,r)=>(r=null!=e?t(i(e)):{},s(!o&&e&&e.__esModule?r:n(r,"default",{value:e,enumerable:!0}),e)),l={};((e,t)=>{for(var o in t)n(e,o,{get:t[o],enumerable:!0})})(l,{DEFAULT_AREA_PER_ANNOTATION:()=>Qt,DEFAULT_GLYPH_ANCHOR:()=>yo,DEFAULT_GLYPH_VIEWBOX:()=>po,DEFAULT_HIT_RADIUS:()=>Yn,DEFAULT_ISOMETRIC_SPRITE_SIZES:()=>Pe,Glyph:()=>Yi,LayoutCache:()=>b,SYMBOL_SEQUENCE:()=>J,TAU:()=>no,absorbRegion:()=>pr,activeCountOverDomain:()=>In,addPoints:()=>lo,adjacencyMatrix:()=>vi,aggregateRegionCounts:()=>Zo,allocateCells:()=>C,angleScale:()=>io,annotationBudget:()=>en,annotationDensity:()=>nn,annotationLayout:()=>kn,arcLayout:()=>xi,arcPath:()=>bi,arrivalReplay:()=>yi,axisFixedForceLayout:()=>Dn,axisFixedForcePositions:()=>On,bandLabel:()=>mt,betweenness:()=>Oo,bfsDistances:()=>Po,bobaLayout:()=>Vt,bodyGroupSpec:()=>gr,boundsOf:()=>ft,boxEdgeAnchors:()=>Ln,buildAdjacency:()=>Ro,buildTooltipEntries:()=>To,bulletLayout:()=>Ct,calendarLayout:()=>Ce,capacitatedRegion:()=>fr,chargeGateRegion:()=>ur,circularLayout:()=>wi,clamp:()=>$,closeness:()=>Do,clustering:()=>Bo,collidersFromScales:()=>hi,comparePhysicsTrace:()=>Er,composePhysicsControllers:()=>Qr,createCapacityQueueController:()=>Yr,createDependencyGateController:()=>Ur,createPortalController:()=>Zr,createProcessJourneyLedger:()=>Rr,createServiceLevelController:()=>Xr,createServiceResourcePoolController:()=>_r,cubicPath:()=>Fn,cubicPoint:()=>Nn,cubicTangent:()=>Rn,curvedEdgePath:()=>Tn,cyclicRangeContains:()=>eo,dagreLayout:()=>et,degree:()=>Fo,diagnoseTokenEncoding:()=>G,dimFor:()=>g,egoNetwork:()=>qo,extractTooltipDatum:()=>Co,fanOutBend:()=>En,flextreeLayout:()=>Je,forceFieldRegion:()=>yr,forceLayout:()=>P,forceLayoutAsync:()=>Qo,formatTooltipValue:()=>zo,galtonPegs:()=>fi,generateTokens:()=>H,geoAreaHitTarget:()=>Gn,geoHitTarget:()=>_n,glyphExtent:()=>xo,glyphFractionClipRect:()=>wo,glyphPlacement:()=>go,groupBy:()=>m,groupCompletionRows:()=>er,hatchFill:()=>pt,hitTargetPoint:()=>Hn,hitTargetRect:()=>Xn,intervalLanesLayout:()=>Cn,isometricLandmarkLayout:()=>Ge,isotypeBoltGlyph:()=>le,isotypeBusGlyph:()=>ue,isotypeChipGlyph:()=>ce,isotypeGhost:()=>ae,isotypeInk:()=>re,isotypeNetworkGlyphs:()=>fe,isotypePaper:()=>ie,isotypePersonGlyph:()=>he,isotypePersonPath:()=>de,isotypeServerGlyph:()=>se,layoutTokenGrid:()=>_,legendGroupsFrom:()=>Ao,legendSwatches:()=>So,lineageDagLayout:()=>it,linearAxis:()=>yt,makeShade:()=>w,marimekkoLayout:()=>St,markCallout:()=>gt,matchesHighlight:()=>y,mean:()=>S,membraneRegion:()=>lr,mermaidDagLayout:()=>ut,mobileAnnotationStrategy:()=>Ii,mobileAreaChartRecipe:()=>Li,mobileBrushAlternatives:()=>qi,mobileChartFamilyRecipe:()=>Wi,mobileGeoChartRecipe:()=>Fi,mobileLineChartRecipe:()=>zi,mobileNetworkChartRecipe:()=>Ri,mobileOrdinalChartRecipe:()=>Ei,mobileScatterplotRecipe:()=>Ni,mobileSmallMultipleRecipe:()=>Pi,mulberry32:()=>R,networkHitTarget:()=>Un,nonNegativeFinite:()=>A,normalizePoint:()=>mo,normalizeScores:()=>Yo,normalizeTokenEncoding:()=>B,orderByGroupDegree:()=>gi,orthogonalEdgePath:()=>zn,packIntervals:()=>Sn,packedClusterMatrix:()=>Mt,parallelCoordinatesLayout:()=>Lt,physicsReferenceEnvelope:()=>jr,pointMagnitude:()=>fo,polarToXY:()=>oo,portalRegion:()=>mr,pressureFieldRegion:()=>hr,processChrome:()=>ai,processJourneyRows:()=>Pr,processLaneWalls:()=>xr,processStageLayout:()=>ar,processStageRegions:()=>cr,processVolumePolygons:()=>or,proximityProblem:()=>Vo,radiusScale:()=>ao,readField:()=>h,rectCollide:()=>Pn,regionCountsToProjectionRows:()=>Jo,ringArcPath:()=>so,roundedEnclosure:()=>ht,routeSurfaceRegion:()=>dr,runLengthEncode:()=>Qn,runs:()=>Kn,scalePoint:()=>ho,sedimentBake:()=>pi,selectCyclicRange:()=>to,selectIsometricLandmarks:()=>_e,shade:()=>v,shortestArcDelta:()=>Jn,shortestPath:()=>Wo,signatureKey:()=>x,spawnFromTokens:()=>mi,stageTargetInVolume:()=>nr,subtractPoints:()=>uo,suggestTokenEncoding:()=>K,symbolExtent:()=>oe,symbolPathString:()=>ee,symbolRadius:()=>te,tokenLayer:()=>Se,tokenTaskIntentToCapabilityIntents:()=>U,unitize:()=>L,unitizeRange:()=>E,unwrapDatum:()=>f,updateProcessJourney:()=>Fr,useCustomLayoutSelection:()=>Re,waffleLayout:()=>j,withAlpha:()=>I,wrapValue:()=>Zn,xyToAngle:()=>ro}),module.exports=(e=l,s(n({},"__esModule",{value:!0}),e));var u=require("d3-interpolate");function d(e){return"function"==typeof e?e:t=>t[e]}function h(e,t,n){const o=e?.data,r=o?o[t]:void 0;if(null!=r)return r;const i=e?.[t];return null==i?n:i}function f(e){return null==e?null:e.data??e.datum??e}function m(e,t){const n=new Map;for(const o of e){const e=t(o),r=n.get(e);r?r.push(o):n.set(e,[o])}return n}function p(e){const t=Object.create(null);return e((e,n)=>{t[e]=n}),t}function y(e,t){if(!t)return!0;const n=Array.isArray(t)?t:[t],o=e;for(const e of n)if(null!=e.value&&o[e.field]+""!=e.value+"")return!1;return!0}function g(e,t={}){const n=t.baseOpacity??1;return t.highlight||t.predicate?!y(e,t.highlight)||t.predicate&&!t.predicate(e)?t.dimOpacity??.16:Math.min(1,n+(t.brighten??0)):n}function x(e){return e.join("|")}var b=class{constructor(e=12){this.maxSize=e,this.store=new Map}get(e){return this.store.get(e)}set(e,t){this.maxSize>this.store.size||this.store.clear(),this.store.set(e,t)}getOrCompute(e,t){const n=this.store.get(e);if(void 0!==n)return n;const o=t();return this.set(e,o),o}clear(){this.store.clear()}get size(){return this.store.size}};function w(e,t=.72){const n=(0,u.interpolateLab)(e,"#ffffff"),o=(0,u.interpolateLab)(e,"#000000"),r=(0,u.interpolateLab)(e,e)(0);return e=>{const i=0>e?0:e>1?1:e;return.5===i?r:.5>i?n(2*(.5-i)*t):o(2*(i-.5)*t)}}function v(e,t,n=.72){return w(e,n)(t)}function M(e){return p(t=>{for(const[n,o]of Object.entries(e))t(n,o)})}function k(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")||"item"}function $(e,t,n){return Math.max(t,Math.min(n,e))}function A(e){const t=Number(e);return Number.isFinite(t)?Math.max(0,t):0}function S(e){if(0===e.length)return 0;let t=0;for(const n of e)t+=n;return t/e.length}function I(e,t){const n=$(t,0,1),o=e.trim().replace(/^#/,""),r=3===o.length?o.split("").map(e=>e+e).join(""):o;return/^[0-9a-fA-F]{6}$/.test(r)?`rgba(${parseInt(r.slice(0,2),16)}, ${parseInt(r.slice(2,4),16)}, ${parseInt(r.slice(4,6),16)}, ${n})`:e}var j=e=>{const t=e.config,n=t.rows??10,o=t.columns??10,r=t.gutter??2,i=n*o;if(0>=n||0>=o||0>=i)return{nodes:[]};const{plot:a}=e.dimensions;if(0>=a.width||0>=a.height)return{nodes:[]};const s=(a.width-r*(o-1))/o,c=(a.height-r*(n-1))/n;if(0>=s||0>=c)return{nodes:[]};const l=(null==(u=t.categoryAccessor)?null:"function"==typeof u?u:e=>e[u])??(()=>"_default");var u;const d=function(e){return null==e?null:"function"==typeof e?e:t=>Number(t[e])}(t.valueAccessor)??(()=>1),h=new Map,f=[];for(const t of e.data){const e=l(t)+"",n=Number(d(t)),o=Number.isFinite(n)?Math.max(0,n):0;h.has(e)||f.push(e),h.set(e,(h.get(e)??0)+o)}const m=Array.from(h.values()).reduce((e,t)=>e+t,0);if(0>=m)return{nodes:[]};let y;if(t.categoryOrder&&t.categoryOrder.length>0){const e=new Set,n=[];for(const o of t.categoryOrder)h.has(o)&&!e.has(o)&&(e.add(o),n.push(o));y=[...n,...f.filter(t=>!e.has(t))]}else y=f;if(0===y.length)return{nodes:[]};const g=y.map(e=>({cat:e,exact:(h.get(e)??0)/m*i})).map(e=>({...e,count:Math.floor(e.exact)})),x=g.reduce((e,t)=>e+t.count,0),b=g.map((e,t)=>({i:t,rem:e.exact-e.count})).sort((e,t)=>t.rem-e.rem);for(let e=0;i-x>e;e++)g[b[e%b.length].i].count+=1;const w="string"==typeof t.categoryAccessor?t.categoryAccessor:"category",v="string"==typeof t.valueAccessor?t.valueAccessor:"value",M=(e,t,n)=>p(o=>{o("category",e),o("value",h.get(e)??0),o("share",(h.get(e)??0)/m),"category"!==w&&o(w,e),"value"!==v&&o(v,h.get(e)??0),o("cells",n),o("_waffleCategory",e),o("_waffleIndex",t)}),k=[];let $=0;for(const t of g){const i=e.resolveColor(t.cat);for(let e=0;t.count>e;e++)k.push({type:"rect",x:a.x+$%o*(s+r),y:a.y+(n-1-Math.floor($/o))*(c+r),w:s,h:c,style:{fill:i,stroke:"none"},datum:M(t.cat,$,t.count),group:t.cat,_transitionKey:`waffle-${t.cat}-${e}`}),$++}return{nodes:k}};function C(e,t,n){const o=Math.max(0,Math.floor(n?.minPerCategory??0)),r=e.reduce((e,t)=>e+Math.max(0,t.weight),0);if(0>=t||0>=r)return e.map(e=>({...e,exact:0,cells:0,remainder:0}));const i=e.map(e=>{const n=Math.max(0,e.weight)/r*t;return{...e,exact:n,cells:Math.max(o,Math.floor(n)),remainder:n-Math.floor(n)}});let a=i.reduce((e,t)=>e+t.cells,0);for(;a>t;){const e=i.filter(e=>e.cells>o).sort((e,t)=>t.cells-e.cells||e.remainder-t.remainder||e.key.localeCompare(t.key))[0];if(!e)break;e.cells--,a--}const s=[...i].sort((e,t)=>t.remainder-e.remainder||t.weight-e.weight||e.key.localeCompare(t.key));for(let e=0;t>a;e++)s[e%s.length].cells++,a++;return i}var T=1e-6;function z(e){return Number.isFinite(e)?Math.max(0,e):0}function L(e,t){const n=Number(t.unit),o=z(e),r=t.maxUnits??1/0,i=t.minFraction??0;if(0>=n||0>=r||0>=o)return{units:[],unit:n>0?n:0,total:o,shown:0,overflow:o>0&&!(r>0)};const a=Math.ceil(o/n-T),s=Math.min(r,a),c=a>r,l=[];for(let e=0;s>e;e+=1){const t=e*n;let r=Math.min(1,Math.max(0,(Math.min(o,t+n)-t)/n));T>1-r&&(r=1),l.push({index:e,fraction:r,start:t,end:t+r*n,value:r*n})}const u=l[l.length-1];u&&i>u.fraction&&1>u.fraction&&l.pop();const d=l.reduce((e,t)=>e+t.value,0);return{units:l,unit:n,total:o,shown:d,overflow:c}}function E(e,t,n){const o=L(e,n),r=Math.max(z(t),o.total);if(o.total>=r)return{...o,rangeUnits:[],rangeTotal:o.total};const i=L(r,{unit:n.unit,maxUnits:n.maxUnits}),a=i.unit>0?o.total/i.unit:0,s=Math.floor(a+T);let c=Math.min(1,Math.max(0,a-s));T>c&&(c=0);const l=[];for(const e of i.units)s>e.index||(e.index===s&&c>0?e.fraction-c>T&&l.push({...e,startFraction:c,start:e.index*i.unit+c*i.unit,value:(e.fraction-c)*i.unit}):l.push({...e,startFraction:0}));return{...o,overflow:o.overflow||i.overflow,rangeUnits:l,rangeTotal:r}}var N=require("d3-force");function R(e){let t=e>>>0;return function(){t=t+1831565813|0;let e=Math.imul(t^t>>>15,1|t);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296}}var F=1e3;function P(e,t,n={}){const o=n.iterations??260,r=n.repulsion??5200,i=n.linkDistance??165,a=n.linkStrength??.045,s=n.centerStrength??.018,c=n.damping??.84,l=n.nodeRadius??12,u=n.nodePadding??3,d=n.inset??.06,h=R(n.seed??1),f=new Map;for(const t of e)f.set(t.id,0);for(const e of t)f.set(e.source,(f.get(e.source)??0)+1),f.set(e.target,(f.get(e.target)??0)+1);const m=F/2,p=e.map(e=>({id:e.id,data:e,x:200+600*h(),y:200+600*h()})),y=new Set(e.map(e=>e.id)),g=t.filter(e=>y.has(e.source)&&y.has(e.target)).map(e=>({source:e.source,target:e.target}));if(o>0){const e=(0,N.forceSimulation)(p).randomSource(h).alphaDecay(1-Math.pow(.001,1/o)).velocityDecay(Math.max(0,Math.min(1,1-c))).force("charge",(0,N.forceManyBody)().strength(e=>{const t=f.get(e.id)??0;return 2.5*-Math.sqrt(r)*Math.sqrt(t+1)})).force("collide",(0,N.forceCollide)(e=>(e=>"function"==typeof l?l(e.data):l)(e)+u).strength(.9).iterations(2)).force("center",(0,N.forceCenter)(m,m).strength(.8)).force("x",(0,N.forceX)(m).strength(s)).force("y",(0,N.forceY)(m).strength(s));g.length>0&&e.force("link",(0,N.forceLink)(g).id(e=>e.id).distance(i).strength(e=>{const t="string"==typeof e.target?e.target:e.target.id,n=Math.max(1,Math.min(f.get("string"==typeof e.source?e.source:e.source.id)??1,f.get(t)??1));return a/.045/n})),e.stop();for(let t=0;o>t;t+=1)e.tick()}let x=1/0,b=1/0,w=-1/0,v=-1/0;for(const e of p){const t=e.x??m,n=e.y??m;x>t&&(x=t),b>n&&(b=n),t>w&&(w=t),n>v&&(v=n)}const M=w-x,k=v-b,$={};for(const e of p)$[e.id]={x:0===M?.5:d+((e.x??m)-x)/M*(1-2*d),y:0===k?.5:d+((e.y??m)-b)/k*(1-2*d)};return $}var W=80,q=100;function O(e){return e?e.map(Number).filter(Number.isFinite):[]}function D(e){if("fixed-denominator"===e.countStrategy)return 1/0;const t=e.maxTokens??1/0;return t>0?Math.floor(t):0}function B(e){const t=e.unitValue??e.unit,n=e.icon??e.token;return{...e,...null!=t&&{unitValue:t},...null!=n&&{icon:n}}}function Y(e){if(e.samples)return O(e.samples);if(!e.data||!e.valueAccessor)return[];const t=e.valueAccessor;return e.data.map(e=>"function"==typeof t?t(e):Number(e[t])).filter(Number.isFinite)}function V(e,t,n,o={}){return{index:t,tokenType:e.tokenType,tokenSemantics:e.tokenSemantics,countStrategy:e.countStrategy,fraction:1,startFraction:0,value:n,start:t,end:t+n,unitValue:e.unitValue,unitMeaning:e.unitMeaning,...o}}function H(e,t){const n=B(t),o=function(e){return"number"==typeof e?{value:e}:Array.isArray(e)?{samples:O(e),data:e}:e}(e);let r,i,a,s,c,l,u,d=0,h=!1;if("unitized"===n.countStrategy){c=n.unitValue??1;const e={unit:c,maxUnits:n.maxTokens,minFraction:n.minFraction},t=null==o.rangeValue?L(A(o.value),e):E(A(o.value),A(o.rangeValue),e);r=t.units.map(e=>V(n,e.index,e.value,{fraction:e.fraction,start:e.start,end:e.end,unitValue:t.unit})),i=t.total,d=t.shown,h=t.overflow,null!=o.rangeValue&&(l=t.rangeTotal,u=t.rangeUnits.map(e=>V(n,e.index,e.value,{fraction:e.fraction,startFraction:e.startFraction,start:e.start,end:e.end,unitValue:t.unit,range:"scenario"})))}else if("fixed-denominator"===n.countStrategy){s=Math.floor(A(o.denominator??n.denominator)),a=A(o.numerator??n.numerator??o.value);const e=Math.min(s,Math.max(0,Math.round(a)));r=Array.from({length:s},(t,o)=>V(n,o,1,{highlighted:e>o,start:o,end:o+1})),i=s,d=r.length,h=!1}else if("quantile"===n.countStrategy){const e=Y(o).sort((e,t)=>e-t),t=Math.max(0,Math.floor(n.tokenCount??50)),a=e.length>0?Math.min(t,D(n)):0;r=Array.from({length:a},(t,o)=>{const r=(o+.5)/a,i=function(e,t){const n=e.length;if(0===n)return 0;if(1===n)return e[0];const o=(n-1)*Math.min(1,Math.max(0,t)),r=Math.floor(o),i=o-r;return e[r]*(1-i)+e[Math.ceil(o)]*i}(e,r);return V(n,o,i,{sample:i,quantile:r,start:i,end:i})}),i=e.length,d=r.length,h=e.length>0&&t>r.length}else if("sample"===n.countStrategy||"posterior-sample"===n.countStrategy||"random-sample"===n.countStrategy){const e=Y(o),t=Math.min(e.length,Math.max(0,Math.floor(n.tokenCount??e.length))),a=Math.min(t,D(n));r=("random-sample"===n.countStrategy?function(e,t=1){const n=Array.from({length:e},(e,t)=>t),o=R(Math.floor(t)||1);for(let e=n.length-1;e>0;e-=1){const t=Math.floor(o()*(e+1)),r=n[e];n[e]=n[t],n[t]=r}return n}(e.length,n.seed).slice(0,a):Array.from({length:a},(t,n)=>Math.floor(n/Math.max(1,a-1)*(e.length-1)))).map((t,o)=>{const r=e[t];return V(n,o,r,{sample:r,start:r,end:r})}),i=e.length,d=r.length,h=t>r.length}else{const e=o.data;if(e&&null==o.value)r=e.map((e,t)=>V(n,t,1,{datum:e})),i=e.length;else{const e=L(A(o.value),{unit:1,maxUnits:n.maxTokens,minFraction:n.minFraction});r=e.units.map(e=>V(n,e.index,e.value,{fraction:e.fraction,start:e.start,end:e.end,unitValue:1})),i=e.total,d=e.shown,h=e.overflow}if(e&&null==o.value){const e=function(e,t){const n=D(t);return e.length>n?{tokens:e.slice(0,n),overflow:!0}:{tokens:e,overflow:!1}}(r,n);r=e.tokens,d=r.length,h=e.overflow}}return{tokens:r,encoding:n,total:i,shown:d,overflow:h,numerator:a,denominator:s,unitValue:c,rangeTotal:l,rangeTokens:u,diagnostics:G(n,{visibleTokens:r.length+(u?.length??0)})}}function _(e,t={}){const n=Array.isArray(e)?e:e.tokens,o=n.length;if(0===o)return[];const r=t.flow??"row",i=t.cellWidth??16,a=t.cellHeight??i,s=t.gutter??2,c=t.anchor??[.5,.5],l=Math.max(1,Math.floor(t.columns??Math.ceil(t.rows?o/t.rows:Math.sqrt(o)))),u=Math.max(1,Math.floor(t.rows??Math.ceil(o/l))),d="row"===r?Math.max(u,Math.ceil(o/l)):u,h="column"===r?Math.max(l,Math.ceil(o/u)):l,f=t.x??0,m=t.y??0;return n.map((e,n)=>{let o,p;return"column"===r?(p=Math.floor(n/u),o=n%u):(o=Math.floor(n/l),p=n%l),"left"===t.columnDirection&&(p=h-1-p),"up"===t.rowDirection&&(o=d-1-o),{...e,row:o,column:p,x:f+p*(i+s)+c[0]*i,y:m+o*(a+s)+c[1]*a}})}function G(e,t={}){const n=[],o=e.tokenSemantics,r=e.countStrategy,i=t.maxRecommendedTokens??("fixed-denominator"!==r||A(e.denominator)>q?W:q);return o||n.push({code:"TOKEN_SEMANTICS_UNCLEAR",severity:"warning",message:"Every tokenized encoding should state what one token represents."}),r||n.push({code:"MISSING_COUNT_STRATEGY",severity:"warning",message:"Every tokenized encoding should state how token counts are produced."}),"icon"!==e.tokenType&&"glyph"!==e.tokenType||"icon-only"!==e.labelPolicy&&"token-only"!==e.labelPolicy||n.push({code:"ICON_ONLY_LABELS",severity:"warning",message:"Icons should supplement text labels, not replace them."}),null!=t.visibleTokens&&t.visibleTokens>i&&n.push({code:"TOO_MANY_VISIBLE_TOKENS",severity:"warning",message:`This encoding renders ${t.visibleTokens} visible tokens. Consider unitizing, sampling, or a hybrid bar/token view.`}),"decorative"!==o||"icon"!==e.tokenType&&"glyph"!==e.tokenType||n.push({code:"DECORATIVE_PICTOGRAPHS",severity:"warning",message:"Decorative pictographs can harm recall and speed when they do not clarify the data."}),"unitized-measure"===o&&r&&"unitized"!==r&&n.push({code:"TOKEN_STRATEGY_MISMATCH",severity:"warning",message:"Unitized measures should use the unitized count strategy so each token has a stable value."}),"risk-case"===o&&r&&"fixed-denominator"!==r&&n.push({code:"TOKEN_STRATEGY_MISMATCH",severity:"warning",message:"Risk cases are usually clearest as a fixed-denominator natural frequency."}),"possible-outcome"!==o&&"posterior-sample"!==o&&"hypothetical-case"!==o||!r||"quantile"===r||"sample"===r||"posterior-sample"===r||"random-sample"===r||n.push({code:"TOKEN_STRATEGY_MISMATCH",severity:"warning",message:"Outcome/sample tokens should come from quantiles or samples, not from a unitized magnitude."}),"unitized-measure"===o&&"unitized"===r&&null==e.unitValue&&null==e.unit&&n.push({code:"MISSING_UNIT_VALUE",severity:"warning",message:"Unitized measures should set unitValue so each token has a declared value."}),"unitized-measure"!==o||"unitized"!==r||e.unitMeaning||n.push({code:"MISSING_UNIT_MEANING",severity:"info",message:"Add unitMeaning so readers know what one full token represents."}),n}function X(e){return"measure"===e?"precise-comparison":"estimate probability"===e?"probability-estimation":"understand risk"===e?"risk-communication":"remember"===e?"memory":"decide"===e?"support-decision":e}function U(e){const t=X(e);return"precise-comparison"===t?["compare-categories","rank"]:"probability-estimation"===t?["distribution"]:"risk-communication"===t?["part-to-whole","distribution"]:"frequency-reasoning"===t?["distribution","compare-categories"]:"memory"===t||"editorial-engagement"===t?["compare-categories"]:"public-explanation"===t||"support-decision"===t?["distribution","compare-categories"]:["compare-categories"]}function K(e){const t=X(e.taskIntent),n="small"===(o=e.availableSpace)?25:"large"===o?100:50;var o;if("precise-comparison"===t)return{recommendedEncoding:"bar-or-line",rationale:"Use continuous position/length encodings when precise magnitude comparison is the primary task.",warnings:[],alternatives:["hybrid-bar-token","unitized-measure"]};if("probability-estimation"===t){const e={tokenType:"dot",tokenSemantics:"possible-outcome",countStrategy:"quantile",tokenCount:n,layout:"dotplot",labelPolicy:"text-plus-token"};return{recommendedEncoding:"quantile-dotplot",tokenEncoding:e,rationale:"This task asks readers to estimate probability from a distribution. Quantile tokens turn probability mass into countable possible outcomes.",warnings:G(e),alternatives:["cdf-with-threshold","density-with-threshold"]}}if("risk-communication"===t){const t={tokenType:e.concreteEntity?"icon":"dot",icon:e.concreteEntity,tokenSemantics:"risk-case",countStrategy:"fixed-denominator",denominator:100,layout:"waffle",labelPolicy:"text-plus-token"};return{recommendedEncoding:"fixed-denominator-icon-array",tokenEncoding:t,rationale:"Risk is often clearer as natural frequency: highlighted cases out of a fixed denominator.",warnings:G(t,{visibleTokens:100,maxRecommendedTokens:100}),alternatives:["labeled-percent","bar-with-risk-threshold"]}}if("memory"===t||"editorial-engagement"===t){const t={tokenType:e.concreteEntity?"glyph":"icon",icon:e.concreteEntity,tokenSemantics:"unitized-measure",countStrategy:"unitized",unitValue:1,layout:"grid",labelPolicy:"text-plus-token",unitMeaning:e.concreteEntity?"one token represents a unit of "+e.concreteEntity:"one token represents one unit"};return{recommendedEncoding:"semantic-isotype",tokenEncoding:t,rationale:"Semantic tokens are useful when the chart needs to make a topic concrete and memorable.",warnings:G(t),alternatives:["labeled-bar","hybrid-bar-token"]}}if("frequency-reasoning"===t||"public-explanation"===t||"support-decision"===t){const t={tokenType:e.concreteEntity?"icon":"dot",icon:e.concreteEntity,tokenSemantics:"distribution"===e.dataType?"possible-outcome":"unitized-measure",countStrategy:"distribution"===e.dataType?"quantile":"unitized",unitValue:"distribution"===e.dataType?void 0:1,tokenCount:n,layout:"distribution"===e.dataType?"dotplot":"bar-segment",labelPolicy:"text-plus-token",unitMeaning:"distribution"===e.dataType?void 0:"one token represents one unit interval"};return{recommendedEncoding:"hybrid-continuous-token",tokenEncoding:t,rationale:"A hybrid view preserves measurement while adding countable tokens for explanation and decisions.",warnings:G(t),alternatives:["bar-or-line","quantile-dotplot","fixed-denominator-icon-array"]}}return{recommendedEncoding:"bar-or-line",rationale:"Use continuous encodings unless the task needs frequency, risk, memory, or outcome reasoning.",warnings:[],alternatives:["unitized-measure","quantile-dotplot","fixed-denominator-icon-array"]}}var Q=require("d3-shape"),Z={circle:Q.symbolCircle,square:Q.symbolSquare,triangle:Q.symbolTriangle,diamond:Q.symbolDiamond,star:Q.symbolStar,cross:Q.symbolCross,wye:Q.symbolWye},J=["circle","triangle","diamond","star","square","chevron","cross","wye"];function ee(e,t,n){if(n)return n;const o=e??"circle";return"chevron"===o?function(e){const t=1.5*te(e),n=.92*t;return`M0,${-t}L${n},${(.78*t).toFixed(3)}L0,${(.28*t).toFixed(3)}L${-n},${(.78*t).toFixed(3)}Z`}(t):(0,Q.symbol)(Z[o]??Q.symbolCircle,Math.max(1,t))()??""}function te(e){return Math.sqrt(Math.max(1,e)/Math.PI)}var ne=new Map;function oe(e,t,n){if(!n&&"circle"===(e??"circle"))return te(t);const o=n?"p:"+n:`${e}:${Math.round(t)}`,r=ne.get(o);if(null!=r)return r;const i=(n??ee(e,t)).match(/-?\d*\.?\d+(?:e-?\d+)?/gi);let a=0;if(i)for(let e=0;i.length>e+1;e+=2){const t=+i[e],n=+i[e+1],o=Math.sqrt(t*t+n*n);o>a&&(a=o)}return a>0||(a=te(t)),ne.size>512&&ne.clear(),ne.set(o,a),a}var re="#334155",ie="#f8fafc",ae="#cbd5e1",se={viewBox:[40,40],anchor:[.5,1],parts:[{d:"M8 3h24v34H8z",fill:"color"},{d:"M12 9h16v5H12zM12 18h16v5H12zM12 27h16v5H12z",fill:"accent"},{d:"M23.8 11.5a1.2 1.2 0 1 0 2.4 0a1.2 1.2 0 1 0-2.4 0M23.8 20.5a1.2 1.2 0 1 0 2.4 0a1.2 1.2 0 1 0-2.4 0M23.8 29.5a1.2 1.2 0 1 0 2.4 0a1.2 1.2 0 1 0-2.4 0",fill:"color"}]},ce={viewBox:[40,40],anchor:[.5,.5],parts:[{d:"M10 8h20a2 2 0 0 1 2 2v20a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2z",fill:"color"},{d:"M15 15h10v10H15z",fill:"accent"},{d:"M7 2v6M14 2v6M21 2v6M28 2v6M7 32v6M14 32v6M21 32v6M28 32v6M2 7h6M2 14h6M2 21h6M2 28h6M32 7h6M32 14h6M32 21h6M32 28h6",fill:"none",stroke:"color",strokeWidth:3}]},le={viewBox:[40,40],anchor:[.5,.5],parts:[{d:"M23 1L7 23h10l-3 16 19-25H22z",fill:"color"}]},ue={viewBox:[48,40],anchor:[.5,.78],parts:[{d:"M7 12c0-4 3-7 7-7h20c4 0 7 3 7 7v15H7z",fill:"color"},{d:"M11 15h26v8H11z",fill:"accent",opacity:.9},{d:"M12 27h7v4h-7zM29 27h7v4h-7z",fill:"accent",opacity:.95},{d:"M12 31a4 4 0 1 0 8 0a4 4 0 1 0-8 0M28 31a4 4 0 1 0 8 0a4 4 0 1 0-8 0",fill:"color",stroke:"accent",strokeWidth:1.8},{d:"M5 13h4v8H5zM39 13h4v8h-4z",fill:"color"}]},de="M 9.12,3.34 C 8.28,3.29 7.44,3.40 6.64,3.69 4.17,3.63 1.97,5.37 0.91,7.51 -1.32,11.80 2.55,17.76 8.19,16.55 11.62,16.13 15.55,14.04 16.17,10.33 16.38,6.53 12.77,3.52 9.12,3.34 Z M 9.35,19.86 C 8.89,19.84 8.41,19.92 7.92,20.11 5.12,21.55 3.72,24.68 2.79,27.54 2.32,29.86 0.87,32.04 1.36,34.49 1.63,37.60 8.04,38.95 8.04,38.95 8.04,38.95 14.67,39.65 16.50,36.33 17.16,31.95 16.34,27.23 14.01,23.42 13.07,21.69 11.36,19.92 9.35,19.86 Z",he={viewBox:[18,40],anchor:[.5,1],parts:[{d:de,fill:"color",stroke:"color",strokeWidth:1.4}]},fe={server:se,chip:ce,bolt:le,bus:ue,person:he},me="var(--semiotic-primary, #4e79a7)",pe="var(--semiotic-border, #d1d5db)",ye="var(--semiotic-secondary, #9ca3af)",ge="var(--semiotic-bg, #ffffff)";function xe(e){return"object"==typeof e&&null!==e&&"tokens"in e&&"encoding"in e}function be(e,t,n){return"function"==typeof e?e(t)??n:e??n}function we(e,t){return"function"==typeof e?e(t):e}function ve(e){return e.sample??e.value??e.index}var Me=new Set(J);function ke(e,t){return void 0!==t.datum?be(t.datum,e,null):e.datum??null}function $e(e,t){return{fill:!1!==e.highlighted?"scenario"===e.range?be(t.rangeColor,e,ye):be(t.color,e,me):be(t.inactiveColor,e,pe),stroke:"none",...we(t.style,e)??{}}}function Ae(e,t){const n=we(t.pointId,e)??(t.idPrefix?`${t.idPrefix}-${"scenario"===e.range?"range-":""}${e.index}`:void 0);return{datum:ke(e,t),accessibleDatum:we(t.accessibleDatum,e),accessibility:we(t.accessibility,e),pointId:n,_transitionKey:n}}function Se({input:e,encoding:t,options:n={}}){if(!xe(e)&&!t)throw Error("tokenLayer requires an encoding when input is not a TokenSet.");const o=xe(e)?{...e,encoding:B(e.encoding)}:H(e,t),r=function(e,t){const n=t.includeRange&&e.rangeTokens?[...e.tokens,...e.rangeTokens]:e.tokens;if(t.positionToken)return function(e,t){const n=t.positionToken;return n?e.map((t,o)=>{const r=n(t,o,e);return{...t,x:r.x,y:r.y,row:r.row??o,column:r.column??0}}):[]}(n,t);const o=t.layout??e.encoding.layout??"grid";if("quantile-strip"===o)return function(e,t){if(0===e.length)return[];const n=t.x??0,o=t.y??0,r=t.cellHeight??("number"==typeof t.tokenSize?t.tokenSize:12),i=t.gutter??2,a=Math.max(1,Math.floor(t.rows??1)),s=e.map(ve),c=Math.min(...s),l=Math.max(...s)-c||1;return e.map((s,u)=>{const d=ve(s),h=u%a,f=t.valueToX?t.valueToX(d,s):n+(d-c)/l*(t.width??12*Math.max(1,e.length-1)),m=t.valueToY?t.valueToY(d,s):o+h*(r+i);return{...s,x:f,y:m,row:h,column:u}})}(n,t);if("dotplot"===o)return function(e,t){if(0===e.length)return[];const n=t.x??0,o=t.y??0,r="number"==typeof t.tokenSize?t.tokenSize:12,i=t.gutter??2,a=t.cellWidth??r+i,s=t.cellHeight??r+i,c=e.map(ve),l=Math.min(...c),u=Math.max(...c)-l||1,d=new Map;return e.map(r=>{const i=ve(r),c=t.valueToX?t.valueToX(i,r):n+(i-l)/u*(t.width??Math.max(1,e.length-1)*a),h=Math.round((c-n)/Math.max(1,a)),f=d.get(h)??0;d.set(h,f+1);const m=t.valueToY?t.valueToY(i,r):o+f*s;return{...r,x:n+h*a,y:m,row:f,column:h}})}(n,t);if("bar-segment"===o){if(!t.valueToX)throw Error('tokenLayer layout "bar-segment" requires valueToX and optionally valueToY.');return function(e,t){if(!t.valueToX)return[];const n=t.y??0,o=t.cellHeight??("number"==typeof t.tokenSize?t.tokenSize:12),r=t.anchor??[.5,.5];return e.map((e,i)=>{const a=Number.isFinite(e.start)?e.start:ve(e),s=(a+(Number.isFinite(e.end)?e.end:a+e.value))/2,c=t.valueToY?t.valueToY(s,e):n+r[1]*o;return{...e,x:t.valueToX(s,e),y:c,row:0,column:i}})}(n,t)}if("beeswarm"===o||"small-multiple"===o)throw Error(`tokenLayer layout "${o}" is not implemented yet; use row, column, stack, grid, waffle, dotplot, quantile-strip, bar-segment with valueToX, or positionToken.`);const r="number"==typeof t.tokenSize?t.tokenSize:void 0,i=t.cellWidth??r??12,a=t.cellHeight??r??i,s="row"===o?Math.max(1,n.length):"column"===o||"stack"===o?1:"waffle"===o&&"fixed-denominator"===e.encoding.countStrategy&&100===e.denominator?10:function(e,t,n){if(t.columns)return t.columns;if(t.width&&n>0){const e=t.gutter??2;return Math.max(1,Math.floor((t.width+e)/(n+e)))}return e.length>0?Math.ceil(Math.sqrt(e.length)):1}(n,t,i);return _(n,{...t,columns:s,cellWidth:i,cellHeight:a})}(o,n).filter(e=>!n.include||n.include(e));return{tokenSet:o,positionedTokens:r,nodes:r.map(e=>function(e,t,n){if("dot"===n.tokenType)return function(e,t){const n=be(t.tokenSize,e,12);return{type:"point",x:e.x,y:e.y,r:be(t.radius,e,n/2),style:$e(e,t),...Ae(e,t)}}(e,t);const o=we(t.glyph,e)??function(e){if(e)return fe[e]}(n.icon);if(o)return function(e,t,n){const o=$e(e,n),r=be(n.tokenSize,e,12);return{type:"glyph",x:e.x,y:e.y,size:r,glyph:t,color:(o.fill??me)+"",accent:be(n.accent,e,ge),fraction:1>e.fraction?e.fraction:void 0,fractionStart:e.startFraction>0?e.startFraction:void 0,fractionDirection:be(n.fractionDirection,e,"horizontal"),ghostColor:1>e.fraction?we(n.ghostColor,e)??pe:void 0,rotation:we(n.rotation,e),style:o,...Ae(e,n)}}(e,o,t);const r=(i=n.icon)&&Me.has(i)?i:void 0;var i;return function(e,t){const n=be(t.tokenSize,e,12);return{type:"symbol",x:e.x,y:e.y,size:Math.PI*Math.max(1,n/2)**2,symbolType:be(t.symbolType,e,"circle"),path:we(t.symbolPath,e),rotation:we(t.rotation,e),style:$e(e,t),...Ae(e,t)}}(e,r&&null==t.symbolType?{...t,symbolType:r}:t)}(e,n,o.encoding))}}var Ie=require("d3-interpolate"),je=864e5,Ce=e=>{const t=e.config,{plot:n}=e.dimensions;if(0>=n.width||0>=n.height)return{nodes:[]};const o=e=>{const n="function"==typeof t.dateAccessor?t.dateAccessor(e):e[t.dateAccessor];return n instanceof Date?n:new Date(n)},r=e=>{const n="function"==typeof t.valueAccessor?t.valueAccessor(e):e[t.valueAccessor];return Number(n)},i=new Map;let a=null;for(const t of e.data){const e=o(t);if(!isFinite(e.getTime()))continue;null==a&&(a=e.getUTCFullYear());const n=Te(e),s=r(t);i.set(n,(i.get(n)??0)+(Number.isFinite(s)?s:0))}const s=t.year??a??(new Date).getUTCFullYear();let c=1/0,l=-1/0;for(const e of i.values())c>e&&(c=e),e>l&&(l=e);c===1/0&&(c=0,l=0);const[u,d]=t.colorRamp??[e.theme.semantic.surface??"#ebedf0",e.theme.semantic.primary??"#216e39"],h=e=>{if(l===c)return u;const t=(e-c)/(l-c);return(0,Ie.interpolateRgb)(u,d)(t)},f=t.gutter??2,m=t.labelInset??0,p=Math.min((n.width-m-53*f)/54,(n.height-6*f)/7);if(0>=p)return{nodes:[]};const y=new Date(Date.UTC(s,0,1)),g=y.getUTCDay(),x=new Date(y.getTime()-g*je),b=[];for(let e=0;54>e;e++)for(let t=0;7>t;t++){const o=new Date(x.getTime()+(7*e+t)*je);if(o.getUTCFullYear()!==s)continue;const r=Te(o),a=i.get(r),c=null==a?u:h(a);b.push({type:"rect",x:n.x+m+e*(p+f),y:n.y+t*(p+f),w:p,h:p,style:{fill:c,stroke:"none"},datum:{date:o,value:a??0}})}return{nodes:b}};function Te(e){return`${e.getUTCFullYear()}-${ze(e.getUTCMonth()+1)}-${ze(e.getUTCDate())}`}function ze(e){return 10>e?"0"+e:e+""}var Le=c(require("react")),Ee=(require("react/jsx-runtime"),{isActive:!1,predicate:()=>!0}),Ne=Le.createContext(null);function Re(){return Le.useContext(Ne)??Ee}var Fe=require("react/jsx-runtime"),Pe={resource:32,city:64},We=["#739b58","#83a964","#668d52","#8baa68"],qe={land:"#78985c",ocean:"#4d8192",forest:"#4f7c4b",grassland:"#8eaa68",cropland:"#a6a568",wetland:"#668f79",urban:"#8d8a72",scrub:"#9b9665",bare:"#aa906a",snow:"#d8ddcf"},Oe={land:"Open land",ocean:"Open ocean",forest:"Forest",grassland:"Grassland",cropland:"Cropland",wetland:"Wetland",urban:"Urban district",scrub:"Scrubland",bare:"Bare ground",snow:"Snow cover"},De=new Set(["city","culture","monument","faith","nature","knowledge","defense","arena","transport"]);function Be(e,t){if("function"==typeof e)return e;const n=e??t;return e=>e[n]}function Ye(e,t,n){return[111.32*(e-n.lon)*Math.cos((t+n.lat)/2*(Math.PI/180)),110.574*(t-n.lat)]}function Ve(e){const t=Math.max(3,Math.round(e??5));return t%2==0?t+1:t}function He(e){return De.has(e)?e:"monument"}function _e(e,t){const n=Ve(t.gridSize),o=Math.max(1,t.gridRadiusKm??75),r=2*o/n,i=Math.floor(n/2),a=Be(t.idAccessor,"id"),s=Be(t.nameAccessor,"name"),c=Be(t.longitudeAccessor,"lon"),l=Be(t.latitudeAccessor,"lat"),u=Be(t.kindAccessor,"kind"),d=t.candidatePriorityAccessor?Be(t.candidatePriorityAccessor,"priority"):()=>0,h=new Map;let f=null;for(const m of e){const e=Number(c(m)),p=Number(l(m));if(!Number.isFinite(e)||!Number.isFinite(p))continue;const y=(a(m)??`${e},${p}`)+"",g=(s(m)??y)+"",x=He(u(m)),[b,w]=Ye(e,p,t.center);if(Math.abs(b)>o||Math.abs(w)>o)continue;const v=Math.min(n-1,Math.max(0,Math.floor((b+o)/r))),M=Math.min(n-1,Math.max(0,Math.floor((o-w)/r))),k=(v+.5)*r-o,$=o-(M+.5)*r,A={...m,id:y,name:g,kind:x,lon:e,lat:p,distanceKm:Math.sqrt(b*b+w*w),row:M,column:v,cellDistanceSq:(b-k)**2+(w-$)**2,candidatePriority:Number(d(m))||0};(null!=t.centerId&&y===t.centerId||!f&&"city"===x||!f&&M===i&&v===i)&&(f=A);const S=`${M}:${v}`,I=h.get(S)??[];I.push(A),h.set(S,I)}const m=new Map;f&&m.set("city",1);const p=[];for(let e=0;n>e;e++)for(let t=0;n>t;t++){const n=`tile-${e}-${t}`,a=(t+.5)*r-o,s=o-(e+.5)*r;let c,l;if(e===i&&t===i&&f){c=f;const n=(h.get(`${e}:${t}`)??[]).filter(e=>e.id!==f?.id).sort((e,t)=>e.candidatePriority-t.candidatePriority||e.cellDistanceSq-t.cellDistanceSq||e.name.localeCompare(t.name));l=[f,...n]}else{const n=(h.get(`${e}:${t}`)??[]).filter(e=>e.id!==f?.id);n.sort((e,t)=>{const n=e.candidatePriority-t.candidatePriority;if(0!==n)return n;const o=m.get(e.kind)??0,i=m.get(t.kind)??0,a=r*r*.35;return e.cellDistanceSq+o*a-(t.cellDistanceSq+i*a)||e.name.localeCompare(t.name)}),c=n[0]??null,l=n}c&&m.set(c.kind,(m.get(c.kind)??0)+1),p.push({id:n,row:e,column:t,centerXKm:a,centerYKm:s,terrainIndex:Math.abs((17*e+31*t)%We.length),landmark:c,landmarks:l})}return p}var Ge=e=>{const t=Ve(e.config.gridSize),n=Math.max(20,e.config.tileWidth??80),o=Math.max(10,e.config.tileHeight??40),r=e.config.terrainColors?.length?e.config.terrainColors:We,i=e.dimensions.width/2,a=(e.dimensions.height-t*o)/2+o/2,s=_e(e.points,e.config).map(e=>({...e,x:i+n/2*(e.column-e.row),y:a+(e.column+e.row)*(o/2)}));return{nodes:s.map(t=>{const i=e.config.terrainByCell?.[t.id],a="string"==typeof i?{kind:i}:i,s="city"===t.landmark?.kind?"urban":a?.kind??"land",c=a?.fill??e.config.terrainPalette?.[s]??qe[s],l=t.landmark?{...t.landmark,gridRow:t.row,gridColumn:t.column,cellId:t.id,terrainKind:s,terrainCoverage:a?.coverage,features:t.landmarks,featureCount:t.landmarks.length}:{id:t.id,name:Oe[s],kind:"terrain",terrainKind:s,terrainCoverage:a?.coverage,gridRow:t.row,gridColumn:t.column,cellId:t.id,features:[],featureCount:0};return{type:"geoarea",pathData:(u=t.x,d=t.y,h=n,f=o,`M${u},${d-f/2}L${u+h/2},${d}L${u},${d+f/2}L${u-h/2},${d}Z`),centroid:[t.x,t.y],bounds:[[t.x-n/2,t.y-o/2],[t.x+n/2,t.y+o/2]],screenArea:n*o/2,style:{fill:a||"urban"===s?c:r[t.terrainIndex%r.length],stroke:"ocean"===s?"#315d6c":e.config.tileStroke??"#314934",strokeWidth:1},datum:l,group:t.landmark?.kind??s,interactive:!0};var u,d,h,f}),overlays:(0,Fe.jsx)(Xe,{tiles:s,tileWidth:n,tileHeight:o,sprites:e.config.sprites,resourceSize:e.config.resourceSpriteSize??Pe.resource,citySize:e.config.citySpriteSize??Pe.city,showCityLabel:!1!==e.config.showCityLabel}),restyle:(e,t)=>t?.isActive&&e.datum&&"terrain"!==e.datum.kind?{fillOpacity:t.predicate(e.datum)?1:.28}:{fillOpacity:1}}};function Xe({tiles:e,tileWidth:t,tileHeight:n,sprites:o,resourceSize:r,citySize:i,showCityLabel:a}){const s=Re(),c=e.filter(e=>e.landmark).sort((e,t)=>e.y-t.y||e.x-t.x);return(0,Fe.jsxs)("g",{"aria-hidden":"true",pointerEvents:"none",children:[c.map(e=>{const a=e.landmark,c="city"===a.kind?i:r,l=e.y+n/2,u=s.isActive&&!s.predicate(a)?.28:1;return(0,Fe.jsxs)("g",{opacity:u,children:[(0,Fe.jsx)("ellipse",{cx:e.x,cy:e.y+.15*n,rx:.28*c,ry:.1*c,fill:"#17251d",opacity:.32}),(0,Fe.jsx)(Ze,{kind:a.kind,href:o?.[a.kind],x:e.x-c/2,y:l-c,size:c}),e.landmarks.length>1&&(0,Fe.jsx)(Ue,{x:e.x+.3*t,y:e.y-.19*n,count:e.landmarks.length-1,tileHeight:n})]},a.id)}),a&&c.filter(e=>"city"===e.landmark?.kind).map(e=>{const t=e.landmark.name.toUpperCase(),o=Math.max(56,6.4*t.length+14);return(0,Fe.jsxs)("g",{transform:`translate(${e.x},${e.y+.72*n})`,children:[(0,Fe.jsx)("rect",{x:-o/2,y:-7,width:o,height:14,rx:1,fill:"#17251d",opacity:.92}),(0,Fe.jsx)("text",{textAnchor:"middle",dominantBaseline:"central",fill:"#f5edcf",fontFamily:"monospace",fontSize:9,fontWeight:700,letterSpacing:.8,children:t})]},e.landmark.id+"-label")})]})}function Ue({x:e,y:t,count:n,tileHeight:o}){const r=Math.max(10,Math.min(15,.34*o)),i="+"+n,a=Math.max(r,i.length*r*.58);return(0,Fe.jsxs)("g",{transform:`translate(${e},${t})`,children:[(0,Fe.jsx)("rect",{x:-a/2,y:-r/2,width:a,height:r,rx:1,fill:"#17251d",stroke:"#f0d36d",strokeWidth:1}),(0,Fe.jsx)("text",{textAnchor:"middle",dominantBaseline:"central",fill:"#f5edcf",fontFamily:"monospace",fontSize:Math.max(7,.62*r),fontWeight:700,children:i})]})}var Ke={city:["..1111..","..1221..",".111111.",".133331.","11111111","13311331","14411441","11111111"],culture:["..1111..",".122221.","11111111",".133331.",".133331.",".133331.","11111111",".444444."],monument:["...11...","..1221..","..1221..","..1331..",".113311.",".133331.","11111111",".444444."],faith:["...11...","...11...","..1111..","...11...","..1221..",".133331.","11111111",".444444."],nature:["...11...","..1221..",".122221.","12222221",".133331.","...11...","..1441..",".144441."],knowledge:[".111111.","12211221","12211221","13311331","13311331","13311331","11111111",".444444."],defense:["11.11.11","11111111","12222221","12211221","13311331","13333331","11111111",".444444."],arena:["..1111..",".122221.","12333321","12344321","12344321","12333321",".122221.","..1111.."],transport:["...11...","..1221..",".122221.","11111111","..1331..","..1331..",".114411.","11444411"]},Qe={city:{1:"#29364a",2:"#d8b45b",3:"#b7693c",4:"#6d9fc5"},culture:{1:"#29364a",2:"#d5c9a3",3:"#9c6fb2",4:"#ece3c4"},monument:{1:"#29364a",2:"#d8cba8",3:"#9c8f79",4:"#ece3c4"},faith:{1:"#29364a",2:"#d9c36d",3:"#a877a5",4:"#ece3c4"},nature:{1:"#29364a",2:"#4f8a4e",3:"#79aa56",4:"#79583a"},knowledge:{1:"#29364a",2:"#d5c9a3",3:"#4f7da0",4:"#ece3c4"},defense:{1:"#29364a",2:"#a6a298",3:"#777b7f",4:"#d5c9a3"},arena:{1:"#29364a",2:"#cb8056",3:"#d8cba8",4:"#6d9fc5"},transport:{1:"#29364a",2:"#d8b45b",3:"#6d9fc5",4:"#ece3c4"}};function Ze({kind:e,href:t,x:n,y:o,size:r}){if(t)return(0,Fe.jsx)("image",{href:t,x:n,y:o,width:r,height:r,preserveAspectRatio:"xMidYMax meet",style:{imageRendering:"pixelated"}});const i=Qe[e];return(0,Fe.jsx)("svg",{x:n,y:o,width:r,height:r,viewBox:"0 0 8 8",shapeRendering:"crispEdges",children:Ke[e].flatMap((e,t)=>[...e].map((e,n)=>"."===e?null:(0,Fe.jsx)("rect",{x:n,y:t,width:1,height:1,fill:i[e]},`${t}-${n}`)))})}var Je=e=>{const t=e.config,n=t.nodeWidth??80,o=t.nodeHeight??30,r=t.orientation??"vertical",i=t.edgeCurve??"curved",a=!1!==t.showLabels,s=t.labelAccessor??"id",c="function"==typeof s?s:e=>h(e,s,e.id??"")+"",l=new Map,u=[],d=[],f=e=>{const t=e.data??{};return{x:"number"==typeof t.x?t.x:e.x,y:"number"==typeof t.y?t.y:e.y,w:("number"==typeof t.width?t.width:e.width)??n,h:("number"==typeof t.height?t.height:e.height)??o}};for(const n of e.nodes){const{x:o,y:r,w:i,h:s}=f(n);null!=o&&null!=r&&(l.set(n.id,{x:o,y:r,w:i,h:s}),u.push({type:"rect",x:o-i/2,y:r-s/2,w:i,h:s,style:{fill:t.nodeFill??e.resolveColor(n.id),stroke:`var(--semiotic-surface, ${e.theme.semantic.surface??"#fff"})`,strokeWidth:1.5},datum:n,id:n.id,label:c(n)+""}),a&&d.push({x:o,y:r,text:c(n)+"",anchor:"middle",baseline:"middle",fontSize:11}))}const m=[];for(const t of e.edges){const n="string"==typeof t.target?t.target:t.target.id,o=l.get("string"==typeof t.source?t.source:t.source.id),a=l.get(n);if(!o||!a)continue;const s="vertical"===r?{x:o.x,y:o.y+o.h/2}:{x:o.x+o.w/2,y:o.y},c="vertical"===r?{x:a.x,y:a.y-a.h/2}:{x:a.x-a.w/2,y:a.y};if("line"===i)m.push({type:"line",x1:s.x,y1:s.y,x2:c.x,y2:c.y,style:{stroke:`var(--semiotic-border, ${e.theme.semantic.border??"#999"})`,strokeWidth:1},datum:t});else{const n=(s.y+c.y)/2,o=(s.x+c.x)/2;m.push({type:"curved",pathD:"vertical"===r?`M${s.x},${s.y} C${s.x},${n} ${c.x},${n} ${c.x},${c.y}`:`M${s.x},${s.y} C${o},${s.y} ${o},${c.y} ${c.x},${c.y}`,style:{stroke:`var(--semiotic-border, ${e.theme.semantic.border??"#999"})`,strokeWidth:1,fill:"none"},datum:t})}}return{sceneNodes:u,sceneEdges:m,labels:d}},et=e=>{const t=e.config,n=t.nodeWidth??100,o=t.nodeHeight??36,r=t.edgeStyle??"polyline",i=!1!==t.showLabels,a=t.labelAccessor??"label",s="function"==typeof a?a:e=>h(e,a,e.id??"")+"",c=new Map,l=[],u=[],d=e=>{const t=e.data??{};return{x:"number"==typeof t.x?t.x:e.x,y:"number"==typeof t.y?t.y:e.y,w:("number"==typeof t.width?t.width:e.width)??n,h:("number"==typeof t.height?t.height:e.height)??o}};for(const n of e.nodes){const{x:o,y:r,w:a,h:h}=d(n);null!=o&&null!=r&&(c.set(n.id,{x:o,y:r,w:a,h:h}),l.push({type:"rect",x:o-a/2,y:r-h/2,w:a,h:h,style:{fill:t.nodeFill??e.resolveColor(n.id),stroke:`var(--semiotic-border, ${e.theme.semantic.border??"#888"})`,strokeWidth:1.5},datum:n,id:n.id,label:s(n)+""}),i&&u.push({x:o,y:r,text:s(n)+"",anchor:"middle",baseline:"middle",fontSize:11}))}const f=t.edgeStroke??`var(--semiotic-border, ${e.theme.semantic.border??"#666"})`,m=[];for(const t of e.edges){const e="string"==typeof t.target?t.target:t.target.id,n=c.get("string"==typeof t.source?t.source:t.source.id),o=c.get(e);if(!n||!o)continue;const i=t.data??{},a=Array.isArray(i.points)?i.points:t.points;if(a&&a.length>=2)if("smooth"!==r||3>a.length){const e="M"+a.map(e=>`${e.x},${e.y}`).join(" L ");m.push({type:"curved",pathD:e,style:{stroke:f,strokeWidth:1,fill:"none"},datum:t})}else{let e=`M${a[0].x},${a[0].y}`;for(let t=1;a.length-1>t;t++)e+=` Q${a[t].x},${a[t].y} ${(a[t].x+a[t+1].x)/2},${(a[t].y+a[t+1].y)/2}`;const n=a[a.length-1];e+=` T${n.x},${n.y}`,m.push({type:"curved",pathD:e,style:{stroke:f,strokeWidth:1,fill:"none"},datum:t})}else m.push({type:"line",x1:n.x,y1:n.y,x2:o.x,y2:o.y,style:{stroke:f,strokeWidth:1},datum:t})}return{sceneNodes:l,sceneEdges:m,labels:u}},tt=require("react/jsx-runtime"),nt={"topic-source":"#1f7a8c","topic-sink":"#b4451f","topic-bridge":"#4b5a82",processor:"#34344a",unknown:"#5a5a6a"},ot={internal:"var(--semiotic-border, #6b6b7d)","cross-subtopology":"var(--semiotic-info, #6a8caf)","topic-bridge":"var(--semiotic-secondary, #8b78c4)",back:"var(--semiotic-danger, #e0556b)"};function rt(e){return Array.isArray(e)?e.map((e,t)=>"string"==typeof e?{storeName:e,slotIndex:t}:{storeName:(e.storeName??"")+"",slotIndex:e.slotIndex??t}):[]}var it=e=>{const t=e.config||{},n=e.dimensions.plot,o=t.layerAccessor??"x",r=t.rowAccessor??"y",i=t.partitionAccessor??"partition",a=t.semanticAccessor??"semantic",s=t.labelAccessor??"label",c=t.storesAccessor??"stores",l=t.backEdgeAccessor??"isBackEdge",u=t.edgeTypeAccessor??"edgeType",d={...nt,...t.partitionColors},f={...ot,...t.edgeColors},m=t.accentColor??"var(--semiotic-focus, #ffcc33)",p=t.borderColor??"var(--semiotic-border, #555)",y=t.dimOpacity??.14,g=t.edgeOpacity??.5,x=t.edgeWidth??1.25,b=t.backEdgeWidth??t.edgeWidth??1.5,w=!1!==t.showStoreChips,v=t.storeChipColor??"var(--semiotic-info, #6a8caf)";let M=t.layerCount,k=t.maxLayerSize;if(null==M||null==k){let t=0;const n=new Map;for(const r of e.nodes){const e=Math.round(Number(h(r,o,0)));t=Math.max(t,e),n.set(e,(n.get(e)??0)+1)}M=M??t+1,k=k??Math.max(1,...n.values())}const $=n.width/Math.max(1,M),A=n.height/Math.max(1,k);let S=Math.min(t.nodeWidth??172,Math.max(8,$-(t.minGapX??26))),I=Math.min(t.nodeHeight??54,Math.max(8,A-(t.minGapY??18)));const j=t.lod&&"auto"!==t.lod?t.lod:16>S?"dot":48>S?"icon":108>S?"compact":"full";if("dot"===j){const e=Math.min(S,I,11);S=e,I=e}const C=Math.max(1,n.width-S),T=Math.max(1,n.height-I),z=Math.max(1,k-1),L=e=>n.x+S/2+(M>1?e/(M-1):.5)*C,E=e=>n.y+I/2+(e+z/2)/z*T,N=t.reachableIds?new Set(t.reachableIds):null,R=t.selectedId??null,F=e.selection,P=new Map,W=new Map,q=[],O=[];for(const t of e.nodes){const e=t.id,n=Number(h(t,o,0)),l=Number(h(t,r,0)),u=h(t,i,"processor")+"",f=h(t,a,"processor")+"",g=h(t,s,e)+"",x=rt(h(t,c,[])),b=t.data??t,w=L(n),v=E(l);P.set(e,{cx:w,cy:v});const M=N?N.has(e):null,k=F?.isActive?F.predicate(b):null,$=null!==M?!M:null!==k&&!k;W.set(e,$);const A=null!=R&&e===R,C=$&&!A?y:1,T=d[u]??d.unknown;"dot"===j?q.push({type:"circle",cx:w,cy:v,r:S/2,style:{fill:T,opacity:C,stroke:A?m:"transparent",strokeWidth:A?2:0},datum:t,id:e,label:g}):(q.push({type:"rect",x:w-S/2,y:v-I/2,w:S,h:I,style:{fill:T,opacity:C,stroke:A?m:p,strokeWidth:A?3:1},datum:t,id:e,label:g}),O.push({id:e,cx:w,cy:v,partition:u,semantic:f,label:g,stores:x,opacity:C,selected:A,node:b}))}const D=[];for(const t of e.edges){const e="string"==typeof t.source?t.source:t.source.id,n="string"==typeof t.target?t.target:t.target.id,o=P.get(e),r=P.get(n);if(!o||!r)continue;const i=!!h(t,l,!1),a=h(t,u,"internal")+"",s=W.get(e)||W.get(n)?Math.min(g,1.4*y):g,c=i?f.back:f[a]??f.internal;let d;if(i){const e=o.cx,t=o.cy+I/2,n=r.cx,i=r.cy+I/2,a=Math.max(48,.28*Math.abs(e-n))+I;d=`M${e},${t} C${e},${t+a} ${n},${i+a} ${n},${i}`}else{const e=o.cx+S/2,t=o.cy,n=r.cx-S/2,i=r.cy,a=(e+n)/2;d=`M${e},${t} C${a},${t} ${a},${i} ${n},${i}`}const m={type:"curved",pathD:d,style:{stroke:c,strokeWidth:i?b:x,fill:"none",opacity:s,...i?{strokeDasharray:"5 4",strokeLinecap:"round"}:{}},datum:t};D.push(m)}const B=0===O.length?null:(0,tt.jsx)("g",{className:"lineage-dag-glyphs",children:O.map(e=>function(e,t){const{w:n,h:o,lod:r}=t,i="icon"===r?Math.min(n,o):Math.min(o-14,26),a="icon"===r?0:8+i+8,s=null!=t.renderIcon?t.renderIcon({semantic:e.semantic,partition:e.partition,size:i,color:t.partColors[e.partition]??t.partColors.unknown??"#5a5a6a",node:e.node}):function(e,t,n){const o=t.startsWith("topic")?"T":{source:"SR",sink:"SK",filter:"FL",map:"MP",aggregate:"AG",reduce:"RD","join-this":"JN","join-other":"JN",merge:"MG",suppress:"SP",select:"SE",tostream:"TS"}[e]??"PR";return(0,tt.jsxs)("g",{children:[(0,tt.jsx)("rect",{width:n,height:n,rx:4,fill:"rgba(255,255,255,0.08)",stroke:"rgba(255,255,255,0.18)"}),(0,tt.jsx)("text",{x:n/2,y:n/2+.5,textAnchor:"middle",dominantBaseline:"middle",fontSize:.42*n,fontWeight:700,fill:"var(--semiotic-text, #fff)",children:o})]})}(e.semantic,e.partition,i),c="full"===r,l="icon"!==r,u="full"===r&&t.showChips&&e.stores.length>0;return(0,tt.jsxs)("g",{transform:`translate(${e.cx-n/2}, ${e.cy-o/2})`,opacity:e.opacity,style:{pointerEvents:"none"},children:[(0,tt.jsx)("g",{transform:`translate(${"icon"===r?(n-i)/2:8}, ${(o-i)/2})`,children:s}),l&&(0,tt.jsx)("foreignObject",{x:a,y:c?o/2-12:o/2-9,width:Math.max(8,n-a-8),height:18,style:{pointerEvents:"none"},children:(0,tt.jsx)("div",{title:e.label,style:{pointerEvents:"none",fontFamily:"var(--semiotic-font-family, inherit)",fontSize:"full"===r?12.5:11.5,fontWeight:600,color:"var(--semiotic-text, #f4f4f8)",lineHeight:"18px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:e.label})}),c&&(0,tt.jsx)("text",{x:a,y:o/2-16,dominantBaseline:"middle",fontSize:9.5,fontWeight:500,fill:"var(--semiotic-text-secondary, #b9b9c8)",style:{textTransform:"uppercase",letterSpacing:"0.04em"},children:t.typeLabel?t.typeLabel({semantic:e.semantic,partition:e.partition,node:e.node}):e.partition.startsWith("topic")?"topic":e.semantic}),u&&e.stores.map((e,n)=>(0,tt.jsx)("rect",{x:a+15*n,y:o-10,width:12,height:5,rx:1.5,fill:t.chipColor,children:(0,tt.jsx)("title",{children:e.storeName})},e.storeName+n))]},e.id)}(e,{w:S,h:I,lod:j,partColors:d,chipColor:v,showChips:w,renderIcon:t.renderIcon,typeLabel:t.typeLabel}))});return{sceneNodes:q,sceneEdges:D,overlays:B}},at=require("react/jsx-runtime");function st(e,t){return e.length>t?e.slice(0,Math.max(1,t-1))+"…":e}var ct={rect:"process",round:"process",stadium:"terminal",subroutine:"subprocess",cylinder:"database",circle:"connector",diamond:"decision",hexagon:"preparation",flag:"process"};function lt(e,t,n,o,r,i,a,s){const c=t-o/2,l=n-r/2,u={fill:i,stroke:a,strokeWidth:s};switch(e){case"diamond":return(0,at.jsx)("polygon",{points:`${t},${l} ${t+o/2},${n} ${t},${n+r/2} ${c},${n}`,...u});case"circle":return(0,at.jsx)("circle",{cx:t,cy:n,r:Math.min(o,r)/2,...u});case"stadium":case"round":return(0,at.jsx)("rect",{x:c,y:l,width:o,height:r,rx:"stadium"===e?r/2:8,ry:"stadium"===e?r/2:8,...u});case"hexagon":{const e=Math.min(.18*o,16);return(0,at.jsx)("polygon",{points:`${c+e},${l} ${t+o/2-e},${l} ${t+o/2},${n} ${t+o/2-e},${n+r/2} ${c+e},${n+r/2} ${c},${n}`,...u})}case"cylinder":{const e=Math.min(.16*r,8),t=`M${c},${l+e} a${o/2},${e} 0 0 1 ${o},0`;return(0,at.jsxs)("g",{children:[(0,at.jsx)("path",{d:`M${c},${l+e} a${o/2},${e} 0 0 0 ${o},0 v${r-2*e} a${o/2},${e} 0 0 1 ${-o},0 z`,...u}),(0,at.jsx)("path",{d:t,fill:"none",stroke:a,strokeWidth:s})]})}case"subroutine":{const e=Math.min(8,.08*o);return(0,at.jsxs)("g",{children:[(0,at.jsx)("rect",{x:c,y:l,width:o,height:r,rx:3,...u}),(0,at.jsx)("line",{x1:c+e,y1:l,x2:c+e,y2:l+r,stroke:a,strokeWidth:s}),(0,at.jsx)("line",{x1:c+o-e,y1:l,x2:c+o-e,y2:l+r,stroke:a,strokeWidth:s})]})}default:return(0,at.jsx)("rect",{x:c,y:l,width:o,height:r,rx:4,...u})}}var ut=e=>{const t=e.config||{},n=e.dimensions.plot,o=t.direction??"TD",r="LR"===o||"RL"===o,i="BT"===o||"RL"===o,a=t.layerAccessor??"layer",s=t.rowAccessor??"row",c=t.labelAccessor??"label",l=t.shapeAccessor??"shape",u=t.edgeLabelAccessor??"label",d=t.nodeFill??"var(--semiotic-surface, #20242d)",f=t.nodeStroke??"var(--semiotic-border, #5a6573)",m=t.textColor??"var(--semiotic-text, #e6e6e6)",p=t.edgeColor??"var(--semiotic-text-secondary, #9aa0a6)",y=t.accentColor??"var(--semiotic-warning, #d49a00)";if(0===e.nodes.length)return{sceneNodes:[],overlays:null};const g=new Map;let x=0;for(const t of e.nodes){const e=Math.round(Number(h(t,a,0)));x=Math.max(x,e);const n=g.get(e)||[];n.push(t),g.set(e,n)}const b=x+1;let w=1;for(const e of g.values())e.sort((e,t)=>Number(h(e,s,0))-Number(h(t,s,0))),w=Math.max(w,e.length);const v=r?n.width:n.height,M=r?n.height:n.width,k=v/b,$=M/(w+1),A=Math.max(44,Math.min(t.nodeWidth??150,r?k-36:.92*$)),S=Math.max(26,Math.min(t.nodeHeight??46,r?.7*$:.5*k)),I=(r?A:S)/2+6,j=Math.max(1,v-2*I),C=e=>(r?n.x:n.y)+I+(b>1?(i?b-1-e:e)/(b-1)*j:j/2),T=new Map,z=[],L=[];for(const[e,t]of g)t.forEach((o,i)=>{const a=C(e),s=(r?n.y:n.x)+(i+1)/(t.length+1)*M,u=r?a:s,p=r?s:a,g=h(o,l,"rect")+"",x=h(o,c,o.id)+"";T.set(o.id,{cx:u,cy:p,shape:g}),z.push({type:"rect",x:u-A/2,y:p-S/2,w:A,h:S,style:{fill:"transparent",stroke:"transparent"},datum:{id:o.id,name:x,type:ct[g]??"process",shape:g},id:o.id,label:x}),L.push((0,at.jsxs)("g",{children:[lt(g,u,p,A,S,d,"diamond"===g?y:f,1.5),(0,at.jsx)("text",{x:u,y:p,textAnchor:"middle",dominantBaseline:"central",fontSize:13,fill:m,style:{pointerEvents:"none"},children:st(x,Math.max(4,Math.floor((A-12)/7)))})]},"n-"+o.id))});const E=[];return e.edges.forEach((e,t)=>{const n="string"==typeof e.target?e.target:e.target.id,o=T.get("string"==typeof e.source?e.source:e.source.id),i=T.get(n);if(!o||!i)return;const a=r?o.cx+A/2:o.cx,s=r?o.cy:o.cy+S/2,c=r?i.cx-A/2:i.cx,l=r?i.cy:i.cy-S/2,d=r?`M${a},${s} C${(a+c)/2},${s} ${(a+c)/2},${l} ${c},${l}`:`M${a},${s} C${a},${(s+l)/2} ${c},${(s+l)/2} ${c},${l}`,y=Math.atan2(l-s,c-a),g=c-9*Math.cos(y),x=l-9*Math.sin(y),b=4.5*-Math.sin(y),w=4.5*Math.cos(y),v=`${c},${l} ${g+b},${x+w} ${g-b},${x-w}`,M=h(e,u,void 0),k=(a+c)/2,$=(s+l)/2;E.push((0,at.jsxs)("g",{children:[(0,at.jsx)("path",{d:d,fill:"none",stroke:p,strokeWidth:1.4}),(0,at.jsx)("polygon",{points:v,fill:p}),"string"==typeof M&&M.length>0&&(0,at.jsxs)("g",{children:[(0,at.jsx)("rect",{x:k-6.5*M.length/2-4,y:$-9,width:6.5*M.length+8,height:18,rx:3,fill:"var(--semiotic-bg, #11151c)",stroke:f,strokeWidth:.75}),(0,at.jsx)("text",{x:k,y:$,textAnchor:"middle",dominantBaseline:"central",fontSize:11,fill:m,style:{pointerEvents:"none"},children:M})]})]},"e-"+t))}),{sceneNodes:z,overlays:(0,at.jsxs)("g",{className:"mermaid-dag",children:[E,L]})}},dt=require("react/jsx-runtime");function ht(e){return(0,dt.jsx)("rect",{className:e.className,x:e.x,y:e.y,width:Math.max(0,e.width),height:Math.max(0,e.height),rx:e.radius??10,ry:e.radius??10,fill:e.fill??"none",stroke:e.stroke,strokeWidth:e.strokeWidth??1.5,strokeDasharray:e.strokeDasharray,opacity:e.opacity??.6,style:{pointerEvents:"none"}},e.keyId)}function ft(e,t=0){let n=1/0,o=1/0,r=-1/0,i=-1/0;for(const t of e){const e=t.r??0;n>t.x-e&&(n=t.x-e),t.x+e>r&&(r=t.x+e),o>t.y-e&&(o=t.y-e),t.y+e>i&&(i=t.y+e)}return Number.isFinite(n)?{x:n-t,y:o-t,width:r-n+2*t,height:i-o+2*t}:null}function mt(e){const t=e.fontSize??12;return null!=e.maxWidth&&e.text.length*t*.56>e.maxWidth?null:(0,dt.jsx)("text",{className:e.className,x:e.x,y:e.y,textAnchor:e.anchor??"middle",dominantBaseline:e.baseline??"middle",fontSize:t,fontWeight:e.fontWeight,fill:e.color,style:{pointerEvents:"none"},children:e.text},e.keyId)}function pt(e){const t=e.spacing??8;return{def:(0,dt.jsx)("pattern",{id:e.id,width:t,height:t,patternUnits:"userSpaceOnUse",patternTransform:`rotate(${e.angle??45})`,children:(0,dt.jsx)("line",{x1:0,y1:0,x2:0,y2:t,stroke:e.color??"currentColor",strokeWidth:e.strokeWidth??1,opacity:e.opacity??.5})},e.id),fill:`url(#${e.id})`}}function yt(e){const t=e.orient??"bottom",n="bottom"===t||"top"===t,o=e.offset??0,r=e.tickLength??6,i=e.gridLength??0,a=e.labelGap??4,s=e.fontSize??11,c=e.color??"var(--semiotic-text-secondary, #888)",l=e.gridColor??c,u=e.format??(e=>e+""),d="top"===t||"left"===t?-1:1,h=e.ticks.length-1,f=e.ticks.map((f,m)=>{const p=e.scale(f),y=o+d*r,g=o-d*i,x=y+d*a;let b;b=e.labelAnchor?e.labelAnchor:n?e.edgeAnchor&&0===m?"start":e.edgeAnchor&&m===h?"end":"middle":"left"===t?"end":"start";const w=n?"top"===t?"auto":"hanging":"middle",v=n?{x:p,y:x}:{x:x,y:p};return(0,dt.jsxs)("g",{children:[(r>0||i>0)&&(0,dt.jsx)("line",{...n?{x1:p,x2:p,y1:y,y2:g}:{x1:y,x2:g,y1:p,y2:p},stroke:i>0?l:c,strokeWidth:1,strokeDasharray:i>0?e.gridDasharray:void 0,opacity:i>0?.7:1}),(0,dt.jsx)("text",{x:v.x,y:v.y,textAnchor:b,dominantBaseline:w,fontSize:s,fontWeight:e.fontWeight,fill:c,children:u(f)})]},`tick-${f}-${m}`)});return(0,dt.jsx)("g",{className:e.className,style:{pointerEvents:"none"},children:f},e.keyId)}function gt(e){const t=e.stroke??"var(--semiotic-text, #f4f4f8)",n=e.strokeWidth??1,o=e.markRadius??0,r=e.labelX-e.markX,i=e.labelY-e.markY,a=Math.hypot(r,i)||1,s=e.markX+r/a*o,c=e.markY+i/a*o;let l;return l="elbow"===e.connector?`M${s},${c} L${s},${e.labelY} L${e.labelX},${e.labelY}`:"curve"===e.connector?`M${s},${c} Q${(s+e.labelX)/2},${c} ${e.labelX},${e.labelY}`:`M${s},${c} L${e.labelX},${e.labelY}`,(0,dt.jsxs)("g",{className:e.className,style:{pointerEvents:"none"},children:[o>0&&(0,dt.jsx)("circle",{cx:e.markX,cy:e.markY,r:o,fill:"none",stroke:t,strokeWidth:n}),(0,dt.jsx)("path",{d:l,fill:"none",stroke:t,strokeWidth:n}),(0,dt.jsx)("text",{x:e.labelX,y:e.labelY,textAnchor:e.labelAnchor??"middle",dominantBaseline:e.labelBaseline??"hanging",fontSize:e.fontSize??11,fontWeight:e.fontWeight,fill:e.color??t,children:e.label})]},e.keyId)}var xt=require("react/jsx-runtime"),bt=new b(12);function wt(e){if(null==e)return NaN;if("number"==typeof e)return e;if(e instanceof Date)return e.getTime();const t=e+"",n=Number(t);if(!Number.isNaN(n)&&""!==t.trim())return n;const o=Date.parse(t);return Number.isNaN(o)?NaN:o}function vt(e,t,n){return t>e?t:e>n?n:e}var Mt=e=>{const t=e.config||{},n=e.dimensions.plot,o=t.columnAccessor??"column",r=t.rowAccessor??"row",i=t.sizeAccessor,a=t.colorAccessor,s=t.symbolAccessor,c=t.shadeAccessor,l=t.markerAccessor,u=t.iconAccessor,d=t.defaultSymbol??"circle",[f,p]=t.sizeRange??[2,8],y=t.shadeStrength??.72,b=t.shadeReverse??!1,v=t.rowMode??"banded",M=t.cellSizing??"proportional",k=t.proportionExponent??1,$=t.columnGap??16,A=t.rowGap??12,S=t.packPadding??1,I=t.iterations??12,j=!1!==t.showEnclosures,C=!1!==t.showColumnHeaders,T=!1!==t.showRowLabels,z=C?t.headerHeight??26:0,L=T?t.labelWidth??66:0,E=t.callouts&&t.callouts.length>0?t.footerHeight??30:0,N=n.x+L,R=n.y+z,F=Math.max(1,n.width-L),P=Math.max(1,n.height-z-E),W=[];for(const t of e.nodes){const e=t.data??t;W.push({id:t.id,col:h(t,o,"—")+"",row:h(t,r,"—")+"",sizeVal:i?Number(h(t,i,1)):1,colorKey:a?h(t,a,"")+"":"",symVal:s?h(t,s,"")+"":"",shadeVal:c?wt(h(t,c,null)):NaN,marker:!!l&&!!h(t,l,!1),iconVal:u?h(t,u,"")+"":"",datum:e,size:0,packR:0,baseShape:"circle",iconShape:null})}if(0===W.length)return{sceneNodes:[]};let q=1/0,O=-1/0;if(i)for(const e of W)Number.isFinite(e.sizeVal)&&(q>e.sizeVal&&(q=e.sizeVal),e.sizeVal>O&&(O=e.sizeVal));t.sizeDomain&&([q,O]=t.sizeDomain),Number.isFinite(q)&&Number.isFinite(O)||(q=0,O=1);const D=e=>{if(q>=O)return(f+p)/2;const t=Math.sqrt(vt((e-q)/(O-q),0,1));return f+t*(p-f)};let B=1/0,Y=-1/0;if(c)for(const e of W)Number.isFinite(e.shadeVal)&&(B>e.shadeVal&&(B=e.shadeVal),e.shadeVal>Y&&(Y=e.shadeVal));t.shadeDomain&&([B,Y]=t.shadeDomain);const V=e=>{if(!c||!Number.isFinite(e)||B>=Y)return.5;const t=vt((e-B)/(Y-B),0,1);return b?1-t:t},H=t.colorMap,_=new Map,G=(t,n)=>{let o=_.get(t);return o||(o=w(H&&H[t]||e.resolveColor(t),y),_.set(t,o)),o(n)},X=new Map;if(t.symbolMap)for(const[e,n]of Object.entries(t.symbolMap))X.set(e,n);let U=0;const K=t.iconMap,Q=e=>u&&K&&K[e]?K[e]:null,Z=e=>u?"circle":(e=>{if(!s)return d;let t=X.get(e);return t||(t=J[U%J.length],U++,X.set(e,t)),t})(e.symVal),te=t.maxAreaFraction??.4;let ne=0;const re=Array(W.length),ie=Array(W.length);for(let e=0;W.length>e;e++){const t=W[e],n=D(t.sizeVal);re[e]=n,t.baseShape=Z(t),t.iconShape=Q(t.iconVal);const o=oe(t.baseShape,Math.PI*n*n);ie[e]=o,ne+=Math.PI*o*o}const ae=te*F*P,se=ne>ae?Math.sqrt(ae/ne):1;for(let e=0;W.length>e;e++){const t=W[e],n=re[e]*se;t.size=Math.PI*n*n,t.packR=ie[e]*se}const ce=new Map,le=new Map;for(const e of W)ce.set(e.col,(ce.get(e.col)??0)+1),le.set(e.row,(le.get(e.row)??0)+1);const ue=t.columnOrder?.filter(e=>ce.has(e))??[...ce.keys()].sort((e,t)=>(ce.get(t)??0)-(ce.get(e)??0)),de=t.rowOrder?.filter(e=>le.has(e))??[...le.keys()].sort((e,t)=>(le.get(t)??0)-(le.get(e)??0)),he=x([Math.round(n.x),Math.round(n.y),Math.round(n.width),Math.round(n.height),z,L,E,v,M,k,$,A,S,I,f,p,q,O,te,ue.join(","),de.join(","),W.length,$t(W)]),fe=bt.getOrCompute(he,()=>function(e,t){const n=new Map;for(const t of e){let e=n.get(t.col);e||(e=[],n.set(t.col,e)),e.push(t)}const o=t.columnOrder.filter(e=>n.has(e)),r=Math.max(1,t.innerW-t.columnGap*Math.max(0,o.length-1)),i=t.proportionExponent,a=o.map(e=>Math.pow(n.get(e).length,i)),s=a.reduce((e,t)=>e+t,0)||1,c=e=>"uniform"===t.cellSizing?r/o.length:a[e]/s*r,l=new Map,u=[];let d=t.innerX;for(let e=0;o.length>e;e++)u.push({col:o[e],x:d,w:c(e)}),d+=c(e)+t.columnGap;let h=1;const f=new Map,p=[],y=(e,t,n,o)=>{let r=f.get(e);r||(r={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0},f.set(e,r)),r.minX>t-o&&(r.minX=t-o),t+o>r.maxX&&(r.maxX=t+o),r.minY>n-o&&(r.minY=n-o),n+o>r.maxY&&(r.maxY=n+o)},g=(e,n,o,r,i,a)=>{const s=e.map(e=>({id:e.id,r:e.packR})),c=function(e,t,n,o,r,i,a,s){const c=t+o/2,l=n+r/2,u=new Map,d=e.length;if(0===d)return u;if(1===d)return u.set(e[0].id,{px:c,py:l}),u;const h=function(e){let t=e>>>0||1;return()=>(t=Math.imul(t,1664525)+1013904223>>>0,t/4294967296)}(s),f=new Float64Array(d);let m=0;for(let t=0;d>t;t++)f[t]=e[t].r+i,f[t]>m&&(m=f[t]);const p=Math.max(1,Math.round(Math.sqrt(d*o/Math.max(1,r)))),y=new Float64Array(d),g=new Float64Array(d),x=o/p,b=r/Math.ceil(d/p);for(let e=0;d>e;e++){const o=e%p,r=Math.floor(e/p);y[e]=t+(o+.3+.4*h())*x,g[e]=n+(r+.3+.4*h())*b}const w=Math.max(0,Math.min(a,14)),v=Math.max(1,2*m),M=new Map,k=Math.max(1,Math.ceil(o/v)+3),$=(e,t)=>(t+1)*k+(e+1);for(let e=0;w>e;e++){M.clear();for(let e=0;d>e;e++){const o=$(Math.floor((y[e]-t)/v),Math.floor((g[e]-n)/v)),r=M.get(o);r?r.push(e):M.set(o,[e])}for(let e=0;d>e;e++){const o=Math.floor((y[e]-t)/v),r=Math.floor((g[e]-n)/v);for(let t=-1;1>=t;t++)for(let n=-1;1>=n;n++){const i=M.get($(o+t,r+n));if(i)for(let t=0;i.length>t;t++){const n=i[t];if(e>=n)continue;let o=y[n]-y[e],r=g[n]-g[e];const a=f[e]+f[n],s=o*o+r*r;if(a*a>s)if(s>1e-9){const t=Math.sqrt(s),i=(a-t)/2;o/=t,r/=t,y[e]-=o*i,g[e]-=r*i,y[n]+=o*i,g[n]+=r*i}else{const t=2.39996323*e;y[e]+=Math.cos(t)*f[e],g[e]+=Math.sin(t)*f[e]}}}}for(let e=0;d>e;e++){const i=f[e],a=t+i,s=t+o-i,u=n+i,d=n+r-i;y[e]=s>a?vt(y[e],a,s):c,g[e]=d>u?vt(g[e],u,d):l}}for(let t=0;d>t;t++)u.set(e[t].id,{px:y[t],py:g[t]});return u}(s,n,o,r,i,t.packPadding,t.iterations,h++);let u=1/0,d=1/0,f=-1/0,m=-1/0;for(const e of s){const t=c.get(e.id);l.set(e.id,{px:t.px,py:t.py}),y(a,t.px,t.py,e.r),u>t.px-e.r&&(u=t.px-e.r),t.px+e.r>f&&(f=t.px+e.r),d>t.py-e.r&&(d=t.py-e.r),t.py+e.r>m&&(m=t.py+e.r)}return Number.isFinite(u)?{x:u-kt,y:d-kt,w:f-u+2*kt,h:m-d+2*kt}:null};if("banded"===t.rowMode){const r=new Map;for(const t of e)r.set(t.row,(r.get(t.row)??0)+1);const a=t.rowOrder.filter(e=>r.has(e)),s=Math.max(1,t.innerH-t.rowGap*Math.max(0,a.length-1)),c=a.map(e=>Math.pow(r.get(e),i)),d=c.reduce((e,t)=>e+t,0)||1,h=new Map;let p=t.innerY+t.innerH;for(let e=0;a.length>e;e++){const n="uniform"===t.cellSizing?s/a.length:c[e]/d*s,o=p-n;h.set(a[e],{y:o,h:n}),p=o-t.rowGap}o.forEach((e,t)=>{const o=m(n.get(e),e=>e.row);for(const e of a){const n=o.get(e),r=h.get(e);n&&r&&g(n,u[t].x,r.y,u[t].w,r.h,e)}});const y=[],x=new Map;for(const e of a){const t=h.get(e);x.set(e,t.y+t.h/2);const n=f.get(e);n&&Number.isFinite(n.minX)&&y.push({x:n.minX-kt,y:n.minY-kt,w:n.maxX-n.minX+2*kt,h:n.maxY-n.minY+2*kt})}return{positions:l,enclosures:y,colBands:u,rowLabelY:x}}const x=new Map;o.forEach((e,o)=>{const r=m(n.get(e),e=>e.row),a=t.rowOrder.filter(e=>r.has(e)),s=Math.max(1,t.innerH-t.rowGap*Math.max(0,a.length-1)),c=a.map(e=>Math.pow(r.get(e).length,i)),l=c.reduce((e,t)=>e+t,0)||1;let d=t.innerY+t.innerH;a.forEach((e,n)=>{const i="uniform"===t.cellSizing?s/a.length:c[n]/l*s,h=d-i,f=g(r.get(e),u[o].x,h,u[o].w,i,e);if(f){p.push(f);const t=x.get(e)??{sum:0,n:0};t.sum+=f.y+f.h/2,t.n+=1,x.set(e,t)}d=h-t.rowGap})});const b=new Map;for(const[e,t]of x)b.set(e,t.sum/t.n);return{positions:l,enclosures:p,colBands:u,rowLabelY:b}}(W,{columnOrder:ue,rowOrder:de,innerX:N,innerY:R,innerW:F,innerH:P,rowMode:v,cellSizing:M,proportionExponent:k,columnGap:$,rowGap:A,packPadding:S,iterations:I})),me=e.selection,pe=me?.isActive?me.predicate:null,ye=t.highlight??null,ge=t.dimOpacity??.16,xe=t.markStroke,be=t.markStrokeWidth??0,we=t.markerColor??"#ffffff",ve=t.iconColor??"rgba(255,255,255,0.92)",Me=t.iconStrokeWidth??1,ke=t.iconScale??.72,$e=[],Ae=[],Se=[];for(const e of W){const t=fe.positions.get(e.id);if(!t)continue;const n=g(e.datum,{highlight:ye,predicate:pe,dimOpacity:ge}),o={type:"symbol",cx:t.px,cy:t.py,size:e.size,symbolType:e.baseShape,style:{fill:G(e.colorKey,V(e.shadeVal)),opacity:n,...xe?{stroke:xe,strokeWidth:be}:{}},datum:e.datum,id:e.id,label:e.id+""};if($e.push(o),e.iconShape){const o=Math.sqrt(e.size/Math.PI)*ke,r=oe(e.iconShape,100);Se.push({x:t.px,y:t.py,size:r>0?o/r*100*(o/r):Math.PI*o*o,shape:e.iconShape,opacity:n})}e.marker&&n>ge+.001&&Ae.push({x:t.px,y:t.py,r:Math.max(1,.4*Math.sqrt(e.size/Math.PI))})}const Ie=[];if(t.callouts&&t.callouts.length>0){const e=t.calloutColor??"var(--semiotic-text, #f4f4f8)",o=n.y+n.height-(E>0?.45*E:9),r=[];for(let e=0;t.callouts.length>e;e++){const n=t.callouts[e],o=W.find(e=>e.datum[n.field]+""==n.value+"");if(!o)continue;const i=fe.positions.get(o.id);i&&r.push({c:n,ci:e,px:i.px,py:i.py,markR:Math.sqrt(o.size/Math.PI)})}const i=r.filter(e=>null==e.c.at).sort((e,t)=>e.px-t.px),a=new Map;i.forEach((e,t)=>{a.set(e.ci,N+(t+.5)/i.length*F)});for(const t of r){const r=t.c;let i=a.get(t.ci)??t.px,s=o;const c=r.connector??(a.has(t.ci)?"elbow":"straight");"object"==typeof r.at&&r.at?(i=r.at.x,s=r.at.y):"number"==typeof r.at&&(s=n.y+r.at*n.height),Ie.push({keyId:"callout-"+t.ci,markX:t.px,markY:t.py,labelX:i,labelY:s,label:r.label,connector:c,markRadius:Math.max(t.markR+3,7),stroke:e,color:e,fontSize:11,labelAnchor:"middle",labelBaseline:"auto"})}}const je=function(e,t){const n=t.columnLabel??(e=>e),o=t.rowLabel??(e=>e);return(0,xt.jsxs)("g",{className:"packed-cluster-matrix-chrome",style:{pointerEvents:"none"},children:[t.showEnclosures&&e.enclosures.map((e,n)=>ht({keyId:"enc-"+n,x:e.x,y:e.y,width:e.w,height:e.h,radius:t.enclosureRadius,stroke:t.enclosureColor,strokeWidth:t.enclosureWidth,opacity:t.enclosureOpacity})),t.iconMarks.length>0&&(0,xt.jsx)("g",{className:"packed-cluster-matrix-icons",children:t.iconMarks.map((e,n)=>(0,xt.jsx)("path",{d:ee(e.shape,e.size),transform:`translate(${e.x},${e.y})`,fill:"none",stroke:t.iconColor,strokeWidth:t.iconStrokeWidth,opacity:e.opacity},"ic-"+n))}),t.markerDots.length>0&&(0,xt.jsx)("g",{className:"packed-cluster-matrix-markers",children:t.markerDots.map((e,n)=>(0,xt.jsx)("circle",{cx:e.x,cy:e.y,r:e.r,fill:t.markerColor},"mk-"+n))}),t.showColumnHeaders&&e.colBands.map((e,o)=>mt({keyId:"col-"+o,text:n(e.col),x:e.x+e.w/2,y:t.headerY,anchor:"middle",fontSize:t.headerFontSize,fontWeight:700,color:t.headerColor})),t.showRowLabels&&[...e.rowLabelY].map(([e,n])=>mt({keyId:"row-"+e,text:o(e),x:t.labelX,y:n,anchor:"end",fontSize:t.labelFontSize,fontWeight:600,color:t.labelColor})),t.callouts.map(e=>gt(e))]})}(fe,{markerDots:Ae,markerColor:we,iconMarks:Se,iconColor:ve,iconStrokeWidth:Me,callouts:Ie,plot:n,showEnclosures:j,showColumnHeaders:C,showRowLabels:T,enclosureColor:t.enclosureColor??"var(--semiotic-text, #f4f4f8)",enclosureRadius:t.enclosureRadius??9,enclosureOpacity:t.enclosureOpacity??.5,enclosureWidth:t.enclosureWidth??1.5,headerColor:t.headerColor??"var(--semiotic-text, #f4f4f8)",labelColor:t.labelColor??"var(--semiotic-text-secondary, #b9b9c8)",headerFontSize:t.headerFontSize??13,labelFontSize:t.labelFontSize??11,headerY:n.y+.62*z,labelX:n.x+L-10,columnLabel:t.columnLabel,rowLabel:t.rowLabel});return{sceneNodes:$e,overlays:je}},kt=4;function $t(e){let t=2166136261;const n=e=>{for(let n=0;e.length>n;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619)};for(const o of e)n(o.id),n(o.col),n(o.row),t^=Math.round(8*o.packR),t=Math.imul(t,16777619);return(t>>>0).toString(36)}var At=c(require("react")),St=e=>{const t=e.config,{plot:n}=e.dimensions;if(0>=n.width||0>=n.height)return{nodes:[]};const o=d(t.categoryAccessor),r=d(t.stackBy),i=e=>{const n="function"==typeof t.valueAccessor?t.valueAccessor(e):e[t.valueAccessor],o=Number(n);return Number.isFinite(o)&&o>0?o:0},a=t.gutter??2,s="string"==typeof t.categoryAccessor?t.categoryAccessor:"category",c="string"==typeof t.stackBy?t.stackBy:"stack",l="string"==typeof t.valueAccessor?t.valueAccessor:"value",u=(e,t,n)=>p(o=>{o("category",e),o("stack",t),o("value",n),"category"!==s&&o(s,e),"stack"!==c&&o(c,t),"value"!==l&&o(l,n)}),h=!1!==t.showCategoryLabels,f=Math.max(0,n.height-(t.labelPadding??(h?22:0))),m=[],y=new Map,g=[],x=new Set,b=new Map;for(const t of e.data){const e=o(t)+"",n=r(t)+"",a=i(t);y.has(e)||(m.push(e),y.set(e,0),b.set(e,new Map)),x.has(n)||(x.add(n),g.push(n)),y.set(e,(y.get(e)??0)+a);const s=b.get(e);s.set(n,(s.get(n)??0)+a)}const w=t.categoryOrder?It(t.categoryOrder,m,e=>y.has(e)):m,v=t.stackOrder?It(t.stackOrder,g,()=>!0):g,M=w.reduce((e,t)=>e+(y.get(t)??0),0);if(0>=M)return{nodes:[]};const k=Math.max(0,n.width-a*Math.max(0,w.length-1)),$=[],A=[];let S=n.x;for(const t of w){const o=y.get(t)??0,r=o/M*k;if(0>=r)continue;A.push({cat:t,x:S,w:r});const i=b.get(t);let s=n.y;for(const n of v){const a=i.get(n)??0;if(0>=a)continue;const c=a/o*f;$.push({type:"rect",x:S,y:s,w:r,h:c,style:{fill:e.resolveColor(n),stroke:"none"},datum:u(t,n,a),group:n}),s+=c}S+=r+a}return{nodes:$,overlays:h&&A.length>0?function(e,t,n){const o=e.map((e,o)=>mt({keyId:"marimekko-label-"+o,text:e.cat,x:e.x+e.w/2,y:t+12,anchor:"middle",baseline:"auto",maxWidth:e.w-4,fontSize:12,color:n}));return At.createElement(At.Fragment,null,...o)}(A,n.y+f+4,`var(--semiotic-text, ${e.theme.semantic.text??"currentColor"})`):null}};function It(e,t,n){const o=new Set,r=[];for(const t of e)n(t)&&!o.has(t)&&(o.add(t),r.push(t));for(const e of t)o.has(e)||r.push(e);return r}var jt=c(require("react")),Ct=e=>{const t=e.config,{plot:n}=e.dimensions;if(0>=n.width||0>=n.height||0===e.data.length)return{nodes:[]};const o=t.rowHeight??28,r=t.rowGap??12,i=!1!==t.showLabels,a=i?t.labelWidth??120:0,s=!1!==t.showTicks,c=s?14:0,l=t.tickFormat??(e=>e.toLocaleString()),u=n.x+a,h=Math.max(0,n.width-a);if(0>=h)return{nodes:[]};const f=d(t.categoryAccessor),m=e=>{const t=Number(e);return Number.isFinite(t)&&t>0?t:0},y=e=>m("function"==typeof t.valueAccessor?t.valueAccessor(e):e[t.valueAccessor]),g=e=>m("function"==typeof t.targetAccessor?t.targetAccessor(e):e[t.targetAccessor]),x=e=>{const n="function"==typeof t.rangesAccessor?t.rangesAccessor(e):e[t.rangesAccessor];return Array.isArray(n)?n.map(m).sort((e,t)=>e-t):[]},b="string"==typeof t.categoryAccessor?t.categoryAccessor:"metric",w="string"==typeof t.valueAccessor?t.valueAccessor:"value",v="string"==typeof t.targetAccessor?t.targetAccessor:"target",M=t.actualColor??e.theme.semantic.primary??"#3b6cb1",k=e.theme.semantic.text??"currentColor",$=t.targetColor??`var(--semiotic-text, ${k})`,A=[`var(--semiotic-surface, ${e.theme.semantic.surface??"#e8eaed"})`,`var(--semiotic-grid, ${e.theme.semantic.grid??"#cdd1d6"})`,`var(--semiotic-border, ${e.theme.semantic.border??"#a3a8af"})`],S=`var(--semiotic-text, ${k})`,I=`var(--semiotic-text-secondary, ${e.theme.semantic.textSecondary??"#888"})`,j=[],C=[];for(let t=0;e.data.length>t;t++){const i=e.data[t],a=x(i),s=y(i),l=g(i),d=Math.max(s,l,...a.length?a:[0]);if(0>=d)continue;const m=n.y+t*(o+r+c);if(m+o+c>n.y+n.height)break;C.push({yTop:m,label:f(i),actual:s,target:l,maxVal:d});const k=e=>u+e/d*h,S=f(i),I=e=>p(t=>{t("metric",S),"metric"!==b&&t(b,S),e(t)});let T=u;for(let e=0;a.length>e;e++){const t=k(a[e]),n=t-T;n>0&&j.push({type:"rect",x:T,y:m,w:n,h:o,style:{fill:A[Math.min(e,A.length-1)],stroke:"none"},datum:I(t=>{t("range",e),t("rangeValue",a[e]),t("kind","range")}),group:"range-"+e}),T=t}const z=Math.max(6,Math.floor(.45*o));j.push({type:"rect",x:u,y:m+(o-z)/2,w:k(s)-u,h:z,style:{fill:M,stroke:"none"},datum:I(e=>{e("value",s),e("kind","actual"),"value"!==w&&e(w,s)}),group:"actual"});const L=3,E=Math.floor(.8*o);j.push({type:"rect",x:k(l)-L/2,y:m+(o-E)/2,w:L,h:E,style:{fill:$,stroke:"none"},datum:I(e=>{e("target",l),e("kind","target"),"target"!==v&&e(v,l)}),group:"target"})}const T=[];for(let e=0;C.length>e;e++){const t=C[e];if(i&&T.push(mt({keyId:"bullet-label-"+e,text:t.label,x:n.x+a-8,y:t.yTop+o/2,anchor:"end",baseline:"middle",fontSize:13,fontWeight:500,color:S})),s){const n=5,r=t.yTop+o+2;for(let o=0;n>o;o++){const i=t.maxVal*o/(n-1),a=u+i/t.maxVal*h;T.push(jt.createElement("line",{key:`bullet-tick-${e}-${o}`,x1:a,x2:a,y1:r,y2:r+3,stroke:I,strokeWidth:1}),mt({keyId:`bullet-ticktext-${e}-${o}`,text:l(i),x:a,y:r+12,anchor:0===o?"start":o===n-1?"end":"middle",baseline:"auto",fontSize:10,color:I}))}}}return{nodes:j,overlays:T.length>0?jt.createElement(jt.Fragment,null,...T):null}},Tt=c(require("react")),zt=require("d3-scale"),Lt=e=>{const t=e.config,{plot:n}=e.dimensions,o=t.fields??[];if(2>o.length||0>=n.width||0>=n.height)return{nodes:[]};if(0===e.data.length)return{nodes:[]};const r={};for(const n of o){if(t.domains?.[n]){r[n]=t.domains[n];continue}let o=1/0,i=-1/0;for(const t of e.data){const e=Number(t[n]);Number.isFinite(e)&&(o>e&&(o=e),e>i&&(i=e))}r[n]=Number.isFinite(o)&&Number.isFinite(i)&&o!==i?[o,i]:[0,1]}const i=!1!==t.showAxes,a=i?t.axisLabelPadding??24:8,s=i?18:8,c=o.map(e=>(0,zt.scaleLinear)().domain(r[e]).range([n.y+n.height-s,n.y+a])),l=o.map((e,t)=>1===o.length?n.x+n.width/2:n.x+t/(o.length-1)*n.width),u=t.colorBy?"function"==typeof t.colorBy?t.colorBy:e=>(e[t.colorBy]??"")+"":null,d=t.opacity??.45,h=t.strokeWidth??1.25,f=e.theme.semantic.primary??"#3b6cb1",m=t.dimmedOpacity??.08,p=t.highlightFn,y=[],x=[];for(const n of e.data){const r=u?e.resolveColor(u(n)+""):f,i=!p||p(n),a=g(n,{predicate:p,baseOpacity:d,dimOpacity:m,brighten:.4}),s=i?x:y;for(let e=0;o.length-1>e;e++){const t=Number(n[o[e]]),u=Number(n[o[e+1]]);if(!Number.isFinite(t)||!Number.isFinite(u))continue;const d={type:"connector",x1:l[e],y1:c[e](t),x2:l[e+1],y2:c[e+1](u),style:{stroke:r,strokeWidth:p&&i?h+.75:h,opacity:a,fill:"none"},datum:n};s.push(d)}if(t.showPoints)for(let e=0;o.length>e;e++){const t=Number(n[o[e]]);if(!Number.isFinite(t))continue;const i={type:"point",x:l[e],y:c[e](t),r:2.5,style:{fill:r,stroke:"none",opacity:Math.min(1,a+.3)},datum:n};s.push(i)}}let b=null;if(i){const i=`var(--semiotic-border, ${e.theme.semantic.border??"#aaa"})`,u=`var(--semiotic-text, ${e.theme.semantic.text??"currentColor"})`,d=`var(--semiotic-text-secondary, ${e.theme.semantic.textSecondary??"#888"})`,h=n.y+a,f=n.y+n.height-s,m=[];for(let e=0;o.length>e;e++){const s=o[e],p=l[e],y=t.tickFormat?.[s]??(e=>e.toLocaleString());m.push(Tt.createElement("line",{key:"pc-axis-line-"+e,x1:p,x2:p,y1:h,y2:f,stroke:i,strokeWidth:1})),m.push(mt({keyId:"pc-axis-label-"+e,text:s,x:p,y:n.y+a-8,anchor:"middle",baseline:"auto",fontSize:12,fontWeight:600,color:u}));const[g,x]=r[s],b=5;for(let t=0;b>t;t++){const n=g+(x-g)*t/(b-1),o=c[e](n);m.push(Tt.createElement("line",{key:`pc-tick-${e}-${t}`,x1:p-3,x2:p+3,y1:o,y2:o,stroke:i,strokeWidth:1}),mt({keyId:`pc-ticktext-${e}-${t}`,text:y(n),x:p+6,y:o+3,anchor:"start",baseline:"auto",fontSize:10,color:d}))}}b=Tt.createElement(Tt.Fragment,null,...m)}return{nodes:y.concat(x),overlays:b}},Et=require("react/jsx-runtime"),Nt=1.75,Rt="#222222";function Ft(e,t){return e.topRadius+(t-e.height)/e.height*(e.topRadius-e.bottomRadius)}function Pt(e,t){return function(e,t,n){return Math.PI*n/3*(e*e+e*t+t*t)}(Ft(e,t),e.bottomRadius,t)}function Wt(e,t){const n=(e.topRadius+e.bottomRadius)/2,o=Math.PI*n*n;let r=t/o,i=t-Pt(e,r),a=0;for(;100>a&&Math.abs(i)>1e-4;)r+=i/o,i=t-Pt(e,r),a++;return r}function qt(e,t){const n=43758.5453*Math.sin(12.9898*e+78.233);return 2*(n-Math.floor(n)-.5)*t}function Ot(e,t){if(t>e||2*t>e)return[{x:0,y:0}];const n=[],o=e=>{let r=Math.floor(2*Math.PI*e/(2*t));1>r&&(r=1);const i=0*e,a=Math.hypot(1*e-e*Math.cos(2*Math.PI/r),i-e*Math.sin(2*Math.PI/r));2*t>a&&r>1&&r--;for(let t=0;r>t;t++)n.push({x:e*Math.cos(2*t*Math.PI/r),y:e*Math.sin(2*t*Math.PI/r)});const s=e-2*t;t>s?e>2*t&&n.push({x:0,y:0}):o(s)};return o(e-t),n}function Dt(e,t,n){const o=[];let r=n,i=0;for(;r>0&&60>i;){const n=t*(1+2*i),a=Ot(Ft(e,n),t),s=a.length-r,c=s>1?a.slice(Math.floor(s/2),Math.floor(s/2)+r):a,l=e.height-n;if(c.forEach((e,t)=>{o.push({x:e.x+qt(97*i+t,.15),z:l+qt(31*i+t,.05)})}),r-=c.length,i++,0===c.length)break}return{pearls:o,layers:i}}function Bt(e,t,n,o){if(0>=o)return[];const r=function(e,t,n){let o=n,r=0;for(;o>0&&60>r;){const n=Ft(e,t+.875*(1+2*r));o-=Math.max(1,Math.floor(2*n/Nt)),r++}return r}(e,t,o),i=Math.max(t,n-r*Nt)+.875,a=[];let s=0;for(let t=0;r>t&&o>s;t++){const n=i+Nt*t,r=Ft(e,n),c=Math.max(1,Math.floor(2*r/Nt)),l=(2*r-c*Nt)/(c+1),u=-r+l,d=e.height-n-.875-.1;for(let e=0;c>e&&o>s;e++)a.push({cx:u+(l+Nt)*e+.875,cy:d+.875,rotation:qt(53*t+e,10)}),s++}return a}function Yt(e,t){const n=Number(e);return Number.isFinite(n)?n:t}var Vt=e=>{const t=e.config,{plot:n}=e.dimensions;if(0>=n.width||0>=n.height)return{nodes:[]};const o=d(t.categoryAccessor??"name"),r=d(t.teaVolumeAccessor??"teaVolume"),i=d(t.bobaVolumeAccessor??"bobaVolume"),a=d(t.iceVolumeAccessor??"iceVolume"),s=d(t.cupHeightAccessor??"cupHeight"),c=d(t.cupTopRadiusAccessor??"cupTopRadius"),l=d(t.cupBottomRadiusAccessor??"cupBottomRadius"),u=d(t.bobaRadiusAccessor??"bobaRadius"),h=t.cupWidthRatio??.82,f=e.scales.o,m=f.bandwidth(),p=Math.max(1,n.height-26-8),y=n.y+8,g=[],x=[];for(const t of e.data){const n=o(t)+"",d=f(n);if(null==d)continue;const b={height:Yt(s(t),15.5),topRadius:Yt(c(t),4.75),bottomRadius:Yt(l(t),3.75)},w=Yt(u(t),.6),v=Math.max(0,Yt(r(t),450)),$=Math.max(0,Yt(i(t),110)),A=Math.max(0,Yt(a(t),135)),S=Math.PI*w*w,I=Math.floor($/S),j=I*S,C=Math.floor(A/5.359375),T=C*Nt*Nt*Nt,z=v+j+T,L=Wt(b,z),E=Math.min(b.height,Math.max(0,L)),N=Ft(b,E),{pearls:R,layers:F}=Dt(b,w,I),P=E,W=Bt(b,F*w*2,P,C),q=b.height-20.32,O=Math.min(0,q),D=Math.min(m*h/(2*(b.topRadius+1)),p/(b.height-O)),B=d+m/2,Y=e=>B+e*D,V=e=>y+(e-O)*D,H=Y(-(b.topRadius+1)),_=Y(b.topRadius+1),G=V(O),X=V(b.height),U=M({name:n,teaVolume:v,bobaVolume:Math.round(j),iceVolume:Math.round(T),totalVolume:Math.round(z),numBobas:I,numIce:C,kind:"boba cup"});g.push({type:"rect",x:H,y:G,w:Math.max(1,_-H),h:Math.max(1,X-G),style:{fill:"rgba(0,0,0,0)",stroke:"none"},datum:U,group:n,_transitionKey:"boba-"+k(n)});const K=b.height-P,Q=k(n),Z=e.resolveColor(n);x.push((0,Et.jsxs)("g",{children:[v>0?(0,Et.jsx)("path",{d:`M${Y(-N)},${V(K)} L${Y(-b.bottomRadius)},${V(b.height)} L${Y(b.bottomRadius)},${V(b.height)} L${Y(N)},${V(K)} z`,fill:"#D2B799"}):null,R.map((e,t)=>(0,Et.jsx)("circle",{cx:Y(e.x),cy:V(e.z),r:w*D,fill:"#222222",opacity:.5},"p-"+t)),W.map((e,t)=>(0,Et.jsx)("rect",{x:Y(e.cx)-.95*Nt*D/2,y:V(e.cy)-.95*Nt*D/2,width:.95*Nt*D,height:.95*Nt*D,rx:2,fill:"#a5f2f3",opacity:.85,transform:`rotate(${e.rotation} ${Y(e.cx)} ${V(e.cy)})`},"i-"+t)),(0,Et.jsx)("path",{d:`M${Y(-b.topRadius)},${V(0)} L${Y(-b.bottomRadius)},${V(b.height)} L${Y(b.bottomRadius)},${V(b.height)} L${Y(b.topRadius)},${V(0)}`,fill:"none",stroke:Rt,strokeWidth:2.5}),(0,Et.jsx)("line",{x1:Y(-(b.topRadius+1)),y1:V(0),x2:Y(b.topRadius+1),y2:V(0),stroke:Rt,strokeWidth:3,strokeLinecap:"round"}),v>0?(0,Et.jsx)("path",{d:`M${Y(-.635)},${V(q)} L${Y(-.635)},${V(b.height-.4)} L${Y(.635)},${V(b.height-1.27-.4)} L${Y(.635)},${V(q)} z`,fill:"#4F91CB",stroke:Rt,strokeWidth:1,opacity:.78}):null,(0,Et.jsx)("text",{x:B,y:X+16,textAnchor:"middle",fontSize:12,fontWeight:600,fill:"var(--semiotic-text, #333)",children:n}),(0,Et.jsx)("text",{x:B,y:X+30,textAnchor:"middle",fontSize:10,fill:Z,children:`${I} pearls · ${Math.round(z)} cm³`})]},"boba-"+Q))}return{nodes:g,overlays:(0,Et.jsx)("g",{className:"semiotic-boba",style:{pointerEvents:"none"},children:x})}};function Ht(e,t){const n=t.scales?.x??t.scales?.time;return n?null!=e.x?n(e.x):t.xAccessor&&null!=e[t.xAccessor]?n(e[t.xAccessor]):null:null}function _t(e,t){const n=t.scales?.y??t.scales?.value;return n?null!=e.y?n(e.y):t.yAccessor&&null!=e[t.yAccessor]?n(e[t.yAccessor]):null:null}function Gt(e){return null==e?null:e+""}function Xt(e,t,n){return t.stickyPositionCache?.set(e,n),n}var Ut=new Set(["label","callout","callout-circle","callout-rect","text","widget"]);function Kt(e){return!!e&&"object"==typeof e&&Ut.has(function(e){return"string"==typeof e?.type?e.type:""}(e))}new Set(["label","callout","callout-circle","callout-rect"]);var Qt=2e4,Zt=1;function Jt(e){return"primary"===e?.emphasis||!0===e?.defensive}function en(e,t,n={}){return"number"==typeof n.maxAnnotations&&Number.isFinite(n.maxAnnotations)?Math.max(0,Math.floor(n.maxAnnotations)):e>0&&t>0?Math.max(1,Math.round(e*t/(n.areaPerAnnotation&&n.areaPerAnnotation>0?n.areaPerAnnotation:Qt))):1/0}function tn(e){let t;const n=e?.emphasis;t="primary"===n?100:"secondary"===n?10:50;const o=e?.provenance?.confidence;switch("number"==typeof o&&Number.isFinite(o)&&(t+=15*Math.max(0,Math.min(1,o))),e?.lifecycle?.freshness){case"fresh":t+=8;break;case"aging":t+=4;break;case"stale":t+=1;break;case"expired":t-=200}return t}function nn(e){const{annotations:t,width:n,height:o}=e,r=Math.max(0,e.minVisible??Zt),i=en(n,o,e),a=t.map((e,t)=>{return{annotation:e,index:t,note:(n=e,Kt(n))};var n}),s=a.filter(e=>e.note);if(0===s.length||i>=s.length)return{visible:t.slice(),deferred:[],budget:i};const c=s.filter(e=>Jt(e.annotation)),l=s.filter(e=>!Jt(e.annotation)).sort((e,t)=>tn(t.annotation)-tn(e.annotation)||e.index-t.index),u=Math.min(l.length,Math.max(Math.max(0,i-c.length),Math.max(0,r-c.length))),d=new Set([...c.map(e=>e.index),...l.slice(0,u).map(e=>e.index)]),h=[],f=[];for(const{annotation:e,index:t,note:n}of a)!n||d.has(t)?h.push(e):f.push(e);return{visible:h,deferred:f,budget:i}}var on=32,rn=6,an=4,sn=8,cn=72,ln=30,un=-30,dn=8,hn=480,fn=3;var mn={ai:"AI",agent:"agent",watcher:"watcher",system:"system",import:"imported",computed:"computed",user:"you"};function pn(e){if(!yn(e))return e;const t=("string"==typeof e.mobileText?e.mobileText:void 0)??("string"==typeof e.shortText?e.shortText:void 0);return!t||"string"!=typeof e.label&&null!=e.label?e:{...e,label:t}}function yn(e){return Kt(e)}function gn(e,t){if(!e)return[];const n=Math.max(1,Math.floor(t/7)),o=e.split(/\s+/).filter(Boolean),r=[];let i="";for(const e of o)i&&i.length+e.length+1>n?(r.push(i),i=e):i=i?`${i} ${e}`:e;return i&&r.push(i),r}function xn(e,t,n,o,r){const i=e+n,a=t+o;return Math.abs(n)>Math.abs(o)?{x:0>n?i-r.width-4:i+4,y:0>o?a-r.height:a,width:r.width,height:r.height}:{x:0>n?i-r.width:i,y:0>o?a-r.height-4:a+4,width:r.width,height:r.height}}function bn(e,t){return{x:e.x-t,y:e.y-t,width:e.width+2*t,height:e.height+2*t}}function wn(e,t){return Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x))*Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y))}function vn(e,t,n,o,r,i,a,s){const c=bn(e,a);let l=.4*Math.hypot(t.dx,t.dy)+80*function(e,t,n,o){const r=Math.max(0,o-e.x),i=Math.max(0,o-e.y);return(r+Math.max(0,e.x+e.width-(t-o)))*e.height+(i+Math.max(0,e.y+e.height-(n-o)))*e.width}(c,r,i,s);for(const e of n)l+=12*wn(c,e);for(const e of o)l+=4*wn(c,e);return l}function Mn(e,t,n){if("widget"===e.type&&"number"==typeof e.px&&"number"==typeof e.py)return{x:e.px,y:e.py};const o=e.pointId??e.nodeId;if(null!=o&&n.pointNodes){const e=n.pointNodes.find(e=>e.pointId===o);if(e)return{x:e.x,y:e.y}}const r=e.coordinates,i=n.scales?.geoProjection;if(Array.isArray(r)&&r.length>=2&&i){const e=r[0],t=r[1];if("number"==typeof e&&"number"==typeof t){const n=i([e,t]);if(n&&"number"==typeof n[0]&&"number"==typeof n[1])return{x:n[0],y:n[1]}}}return n.scales||"number"!=typeof e.x||"number"!=typeof e.y?function(e,t,n){const o=e.anchor||e.lifecycle?.anchor||"fixed";if("latest"===o){if(null!=e.pointId&&n.pointNodes&&n.pointNodes.length>0)for(let o=n.pointNodes.length-1;o>=0;o--){const r=n.pointNodes[o];if(r.pointId===e.pointId)return Xt(t,n,{x:r.x,y:r.y})}const o=function(e){const t=e.data;if(!t||0===t.length)return null;const n=t[t.length-1],o=e.scales?.x??e.scales?.time,r=e.scales?.y??e.scales?.value;if(!o||!r)return null;const i=n[e.xAccessor||"x"],a=n[e.yAccessor||"y"];return null==i||null==a?null:{x:o(i),y:r(a)}}(n);return o?Xt(t,n,o):null}if("semantic"===o){const o=function(e,t,n){const o=function(e){return Gt(e.provenance?.stableId??e.stableId)}(e);if(!o)return null;const r=n.pointNodes?.find(e=>Gt(e.pointId)===o);if(r)return Xt(t,n,{x:r.x,y:r.y});const i=n.data?.find(e=>function(e){return Gt(e.stableId??e.id??e.provenance?.stableId)}(e)===o);if(!i)return null;const a=Ht(i,n),s=_t(i,n);return null==a||null==s?null:Xt(t,n,{x:a,y:s})}(e,t,n);if(o)return o}let r=null,i=null;if(null!=e.pointId&&n.pointNodes){const t=n.pointNodes.find(t=>t.pointId===e.pointId);t&&(r=t.x,i=t.y)}if(null!=r&&null!=i||(r=Ht(e,n),i=_t(e,n)),null!=r&&null!=i)return Xt(t,n,{x:r,y:i});if("sticky"===o){const e=n.stickyPositionCache?.get(t);if(e)return e}return null}(e,t,n):{x:e.x,y:e.y}}function kn(e){const{annotations:t,context:n,defaultOffset:o=on,notePadding:r=rn,markPadding:i=an,edgePadding:a=sn,preserveManualOffsets:s=!0,routeLongConnectors:c=!0,connectorThreshold:l=cn,density:u,progressiveDisclosure:d=!1,redundantCues:h=!1,responsive:f,mobile:m,cohesion:p,audience:y}=e,g=n.width||0,x=n.height||0,b="object"==typeof m?m:{},w=b.breakpoint??hn,v=!!m&&w>=g,M=v&&!1!==b.preferShortText?t.map(pn):t,k=v&&!u?{maxAnnotations:b.maxAnnotations??("callout-list"===b.strategy?1:2),minVisible:b.minVisible??1}:u,$=d||v&&(!1!==b.progressiveDisclosure||"callout-list"===b.strategy),A=v&&!f?b.responsive??{minWidth:w}:f,S=v&&!p?b.cohesion:p;if(0===M.length||0>=g||0>=x)return M.slice();const I=[],j=function(e,t){return(e.pointNodes||[]).map(e=>{const n=Math.max(1,e.r||1)+t;return{x:e.x-n,y:e.y-n,width:2*n,height:2*n}})}(n,i);let C=!1;const T=M.map((e,t)=>{if(!yn(e))return e;const i=Mn(e,t,n);if(!i)return e;const u=function(e){if("widget"===e.type)return{width:"number"==typeof e.width?e.width:32,height:"number"==typeof e.height?e.height:32};const t="number"==typeof e.wrap?e.wrap:120,n=[...gn("string"==typeof e.title?e.title:void 0,t),...gn("string"==typeof e.label?e.label:void 0,t)],o=n.reduce((e,t)=>Math.max(e,t.length),0);return{width:Math.max(24,Math.min(t,7*o)+10),height:Math.max(18,16*n.length+6)}}(e);if(s&&("number"==typeof(d=e).dx||"number"==typeof d.dy)){const t=function(e){return"text"===e.type||"widget"===e.type?{dx:0,dy:0}:{dx:ln,dy:un}}(e);return I.push(bn(xn(i.x,i.y,"number"==typeof e.dx?e.dx:t.dx,"number"==typeof e.dy?e.dy:t.dy,u),r)),e}var d;let h=null,f=1/0;for(const e of function(e){const t=1.6*e;return[{dx:e,dy:-e},{dx:-e,dy:-e},{dx:e,dy:e},{dx:-e,dy:e},{dx:e,dy:0},{dx:-e,dy:0},{dx:0,dy:-e},{dx:0,dy:e},{dx:t,dy:-t},{dx:-t,dy:-t},{dx:t,dy:t},{dx:-t,dy:t}]}(o)){const t=vn(xn(i.x,i.y,e.dx,e.dy,u),e,I,j,g,x,r,a);f>t&&(h=e,f=t)}if(!h)return e;const m=bn(xn(i.x,i.y,h.dx,h.dy,u),r);I.push(m);const p=Math.hypot(h.dx,h.dy),y=c&&p>=l&&"text"!==e.type&&"widget"!==e.type?{...e.connector||{end:"arrow"},type:"curve"}:e.connector;return C=!0,{...e,dx:h.dx,dy:h.dy,...y?{connector:y}:{}}}),z=C?T:M.slice();let L=z;if(h){let e=!1;const t=z.map(t=>{const n=function(e){return"text"!==e.type||"string"!=typeof e.color||Math.hypot("number"==typeof e.dx?e.dx:0,"number"==typeof e.dy?e.dy:0)<dn?e:{...e,_redundantConnector:!0}}(t);return n!==t&&(e=!0),n});L=e?t:z}{let e=!1;const t=L.map(t=>{if(!0!==t?.defensive)return t;const n=function(e){const t=e?.provenance;if(!t||"object"!=typeof t)return e;const n="string"==typeof t.source?mn[t.source]??t.source:null,o="number"==typeof t.confidence&&Number.isFinite(t.confidence)?Math.round(100*Math.max(0,Math.min(1,t.confidence)))+"%":null;if(!n&&!o)return e;if(null!=e.label&&"string"!=typeof e.label)return e;const r=[n,o].filter(Boolean).join(" · "),i="string"==typeof e.label?e.label:"";return i.includes(`(${r})`)?e:{...e,label:i?`${i} (${r})`:`(${r})`}}(t);return n!==t&&(e=!0),n});L=e?t:L}const E=new Set;if(k){const e="object"==typeof k?k:{},t=function(e){if(!e)return 1;const t=function(e){const t=e?.familiarity;if(!t)return fn;const n=Object.values(t).filter(e=>"number"==typeof e&&Number.isFinite(e));return 0===n.length?fn:n.reduce((e,t)=>e+t,0)/n.length}(e);return t>2?4>t?1:.6:1.5}(y),n=1===t?e:{...e,maxAnnotations:Math.max(0,Math.round((e.maxAnnotations??en(g,x,e))*t))},{deferred:o}=nn({annotations:L,width:g,height:x,...n});for(const e of o)E.add(e)}if(A&&("object"==typeof A&&"number"==typeof A.minWidth?A.minWidth:hn)>=g)for(const e of L)yn(e)&&"secondary"===e.emphasis&&E.add(e);if(E.size>0)for(const e of L)!0===e?.defensive&&E.delete(e);let N;return N=0===E.size?L:$?L.map(e=>E.has(e)?{...e,_annotationDeferred:!0}:e):L.filter(e=>!E.has(e)),S?function(e,t){let n=!1;const o=e.map(e=>yn(e)?"blended"===e.cohesion||"layer"===e.cohesion?e:(n=!0,{...e,cohesion:t}):e);return n?o:e}(N,S):N}var $n=c(require("react"));function An(e,t){if("function"==typeof e)return e;const n=e??t;return e=>Number(e[n])}function Sn(e,t={}){const n=An(t.start,"start"),o=An(t.end,"end"),r=!1===t.sort?e.slice():e.slice().sort((e,t)=>n(e)-n(t)||o(t)-o(e)),i=[];return{packed:r.map(e=>{const t=n(e);let r=i.findIndex(e=>t>=e);return-1===r&&(r=i.length),i[r]=o(e),{item:e,track:r}}),trackCount:Math.max(1,i.length)}}function In(e,t){const n=An(t.start,"start"),o=An(t.end,"end"),[r,i]=t.domain,a=t.step??1,s="half-open"===t.bounds,c=[];for(let t=r;i>=t;t+=a){let r=0;for(const i of e){const e=n(i),a=o(i);e>t||(s?t>=a:t>a)||r++}c.push({value:t,count:r})}return c}function jn(e){return"function"==typeof e?e:t=>t[e]}var Cn=e=>{const t=e.config,{plot:n}=e.dimensions;if(0>=n.width||0>=n.height||0===e.data.length||!t?.domain)return{nodes:[]};const o=jn(t.laneAccessor),r=jn(t.startAccessor),i=jn(t.endAccessor),a=t.idAccessor?jn(t.idAccessor):null,s=t.unit??0,c=t.barGap??1.5,l=Math.max(0,t.minBarWidth??2),u=t.minBarHeight??3.5,d=t.maxBarHeight??10,h=t.lanePadding??7,f=t.cornerRadius??2,m=t.bottomInset??0,p=t.color??((t,n)=>e.resolveColor(n)),[y,g]=t.domain,x=g-y||1,b=e=>n.x+(e-y)/x*n.width,w=e.scales?.o?.domain?.()??[],v=t.lanes??(w.length>0?w:[...new Set(e.data.map(o))]),M=Math.max(0,n.height-m)/Math.max(1,v.length),k=e=>b(r(e)),$=e=>Math.max(k(e)+l,b(i(e)+s)),A=[];v.forEach((t,r)=>{const i=n.y+r*M,s=e.data.filter(e=>o(e)===t);if(0===s.length)return;const{packed:l,trackCount:m}=Sn(s,{start:k,end:$}),y=new Map,g=new Map;for(const{item:e,track:t}of l){const n=g.get(t);n?n.push(e):g.set(t,[e])}for(const e of g.values()){e.sort((e,t)=>k(e)-k(t));for(let t=0;e.length-1>t;t++)y.set(e[t],k(e[t+1]))}const x=(M-2*h)/m,b=Math.min(d,Math.max(Math.min(u,x),x-c));for(const{item:e,track:n}of l){const o=k(e),r=y.get(e),s=$(e)-o;A.push({type:"rect",x:o,y:i+h+n*x,w:void 0!==r&&o+s>r-1?Math.max(1,r-1-o):s,h:b,cornerRadii:f>0?{tl:f,tr:f,br:f,bl:f}:void 0,style:{fill:p(e,t),stroke:"none"},datum:e,group:t,_transitionKey:a?a(e)+"":void 0})}});const S=`var(--semiotic-text, ${e.theme.semantic.text??"#1a1a1a"})`,I=`var(--semiotic-text-secondary, ${e.theme.semantic.textSecondary??"#888"})`,j=`var(--semiotic-border, ${e.theme.semantic.border??"#94a3b8"})`,C=[];(t.periods??[]).forEach((e,t)=>{const o=b(e.start),r=Math.max(1,b(e.end+s)-o);C.push($n.createElement("rect",{key:"period-"+t,x:o,y:n.y,width:r,height:n.height,fill:j,opacity:t%2==0?.06:.025,pointerEvents:"none"})),e.name&&C.push(mt({keyId:"period-label-"+t,text:e.name,x:o+4,y:n.y+12,anchor:"start",baseline:"hanging",fontSize:13,fontWeight:700,color:I}))});const T=!1!==t.showLaneLabels,z=t.laneLabelGap??12;if(v.forEach((e,t)=>{const o=n.y+t*M;C.push($n.createElement("line",{key:"lane-sep-"+t,x1:n.x,x2:n.x+n.width,y1:o,y2:o,stroke:j,opacity:.45})),T&&C.push(mt({keyId:"lane-label-"+t,text:e,x:n.x-z,y:o+M/2,anchor:"end",baseline:"middle",fontSize:12,fontWeight:600,color:S}))}),!1!==t.showAxis){const e=t.axisTicks??Array.from({length:8},(e,t)=>Math.round(y+t/7*x));C.push(yt({keyId:"interval-axis",scale:b,ticks:e,orient:"top",offset:n.y,tickLength:0,gridLength:n.height,gridDasharray:"3 5",edgeAnchor:!0,format:t.tickFormat,color:I}))}return{nodes:A,overlays:$n.createElement($n.Fragment,null,...C)}};function Tn(e,t,n){const o=n?.orientation??"vertical",r=n?.bend??0,i=n?.minAlong??18,a=(e,t)=>(e+t)/2;if("vertical"===o){if(i>Math.abs(t.y-e.y)){const n=e.x>t.x?-1:1,o=a(e.x,t.x)+n*(22+Math.abs(r));return`M${e.x},${e.y} Q${o},${a(e.y,t.y)} ${t.x},${t.y}`}const n=a(e.y,t.y)+r;return`M${e.x},${e.y} C${e.x},${n} ${t.x},${n} ${t.x},${t.y}`}if(i>Math.abs(t.x-e.x)){const n=e.y>t.y?-1:1,o=a(e.y,t.y)+n*(22+Math.abs(r));return`M${e.x},${e.y} Q${a(e.x,t.x)},${o} ${t.x},${t.y}`}const s=a(e.x,t.x)+r;return`M${e.x},${e.y} C${s},${e.y} ${s},${t.y} ${t.x},${t.y}`}function zn(e,t,n){if("vertical"===(n?.orientation??"vertical")){const n=(e.y+t.y)/2;return`M${e.x},${e.y} L${e.x},${n} L${t.x},${n} L${t.x},${t.y}`}const o=(e.x+t.x)/2;return`M${e.x},${e.y} L${o},${e.y} L${o},${t.y} L${t.x},${t.y}`}function Ln(e,t,n){if("vertical"===(n?.orientation??"vertical")){const n=t.cy>=e.cy;return{from:{x:e.cx,y:e.cy+(n?e.height/2:-e.height/2)},to:{x:t.cx,y:t.cy+(n?-t.height/2:t.height/2)}}}const o=t.cx>=e.cx;return{from:{x:e.cx+(o?e.width/2:-e.width/2),y:e.cy},to:{x:t.cx+(o?-t.width/2:t.width/2),y:t.cy}}}function En(e,t){const n=t?.spread??5;return t?.modulo&&t.modulo>0?(e%t.modulo-(t.modulo-1)/2)*n:(e-((t?.count??1)-1)/2)*n}function Nn(e,t){const n=1-t,o=n*n*n,r=3*n*n*t,i=3*n*t*t,a=t*t*t;return{x:o*e.p0.x+r*e.p1.x+i*e.p2.x+a*e.p3.x,y:o*e.p0.y+r*e.p1.y+i*e.p2.y+a*e.p3.y}}function Rn(e,t){const n=1-t,o=3*n*n,r=6*n*t,i=3*t*t;return{x:o*(e.p1.x-e.p0.x)+r*(e.p2.x-e.p1.x)+i*(e.p3.x-e.p2.x),y:o*(e.p1.y-e.p0.y)+r*(e.p2.y-e.p1.y)+i*(e.p3.y-e.p2.y)}}function Fn(e){return`M${e.p0.x},${e.p0.y} C${e.p1.x},${e.p1.y} ${e.p2.x},${e.p2.y} ${e.p3.x},${e.p3.y}`}function Pn(e,t){const n=t?.axis??"x",o=t?.padding??0,r=t?.strength??.5,i="x"===n?"y":"x",a="x"===n?"width":"height",s="x"===n?"height":"width",c=new Map;for(const t of e)c.set(t.id,0);for(let t=0;e.length>t;t++)for(let l=t+1;e.length>l;l++){const u=e[t],d=e[l];if(Math.abs(u[i]-d[i])>(u[s]+d[s])/2+o)continue;const h=d[n]-u[n]||(d.id>u.id?-.5:.5),f=(u[a]+d[a])/2+o-Math.abs(h);if(0>=f)continue;const m=f*r*Math.sign(h);c.set(u.id,(c.get(u.id)??0)-m),c.set(d.id,(c.get(d.id)??0)+m)}return c}var Wn={width:60,height:34};function qn(e,t){if("function"==typeof e)return e;const n=e??t;return e=>h(e,n,void 0)}function On(e,t,n,o){const r=o.fixedAxis??"y",i=e=>qn(o.sourceAccessor,"source")(e)+"",a=e=>qn(o.targetAccessor,"target")(e)+"",s=o.size??(()=>Wn),c=o.iterations??180,l=o.attraction??.012,u=o.anchorStrength??.003,d=o.collisionStrength??.12,h=o.collisionPadding??15,m=o.edgePadding??42,p=o.fixedPadding??16,y=o.damping??.72,g=o.spread??1,[x,b]=o.fixedDomain,w=b-x||1,v=("y"===r?n.y:n.x)+p,M=("y"===r?n.y+n.height:n.x+n.width)-p,k=("y"===r?n.x:n.y)+m,$=("y"===r?n.x+n.width:n.y+n.height)-m,A=Math.max(1,$-k),S=e.map(e=>{const t=f(e)??e,n=(r=e,qn(o.idAccessor,"id")(r)+"");var r;const{width:i,height:a}=s(t),c=(e=>Number(qn(o.fixedAccessor,"fixed")(e)))(e),l=k+function(e){let t=2166136261;for(let n=0;e.length>n;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0)/4294967295}(n)*A;return{data:t,id:n,width:i,height:a,fixedValue:c,fixed:(u=c,v+(u-x)/w*(M-v)),free:l,anchor:l};var u}),I=new Map(S.map(e=>[e.id,e])),j=e=>"y"===r?e.width:e.height;for(let e=0;c>e;e++){const e=new Map;for(const t of S)e.set(t.id,0);for(const n of t){const t=I.get(i(n)),o=I.get(a(n));if(!t||!o)continue;const r=(o.free-t.free)*l;e.set(t.id,(e.get(t.id)??0)+r),e.set(o.id,(e.get(o.id)??0)-r)}for(const t of S)e.set(t.id,(e.get(t.id)??0)+(t.anchor-t.free)*u);const n=Pn(S.map(e=>({id:e.id,x:"y"===r?e.free:e.fixed,y:"y"===r?e.fixed:e.free,width:e.width,height:e.height})),{axis:"y"===r?"x":"y",padding:h,strength:d});for(const t of S)e.set(t.id,(e.get(t.id)??0)+(n.get(t.id)??0));for(const t of S){t.free+=(e.get(t.id)??0)*y;const n=j(t)/2;t.free=Math.max(k+n,Math.min($-n,t.free))}}if(1!==g){const e=(k+$)/2;for(const t of S){const n=j(t)/2;t.free=Math.max(k+n,Math.min($-n,e+(t.free-e)*g))}}const C=S.map(e=>({data:e.data,id:e.id,x:"y"===r?e.free:e.fixed,y:"y"===r?e.fixed:e.free,width:e.width,height:e.height,fixedValue:e.fixedValue}));return{positioned:C,byId:new Map(C.map(e=>[e.id,e]))}}var Dn=e=>{const{plot:t}=e.dimensions;if(0>=t.width||0>=t.height||0===e.nodes.length||!e.config?.fixedDomain)return{sceneNodes:[]};const n=e.config.fixedAxis??"y",{positioned:o,byId:r}=On(e.nodes,e.edges,t,e.config),i=o.map(t=>({type:"rect",x:t.x-t.width/2,y:t.y-t.height/2,w:t.width,h:t.height,style:{fill:e.resolveColor(t.id),stroke:"none"},datum:t.data,id:t.id,label:t.id})),a=[];e.edges.forEach((t,o)=>{const i=r.get((s=t,("function"==typeof e.config.sourceAccessor?e.config.sourceAccessor(s):h(s,e.config.sourceAccessor??"source",void 0))+""));var s;const c=r.get((t=>("function"==typeof e.config.targetAccessor?e.config.targetAccessor(t):h(t,e.config.targetAccessor??"target",void 0))+"")(t));if(!i||!c)return;const{from:l,to:u}=Ln({cx:i.x,cy:i.y,width:i.width,height:i.height},{cx:c.x,cy:c.y,width:c.width,height:c.height},{orientation:"y"===n?"vertical":"horizontal"});a.push({type:"curved",pathD:Tn(l,u,{orientation:"y"===n?"vertical":"horizontal",bend:En(o,{modulo:5,spread:5})}),style:{stroke:"var(--semiotic-border, #888)",fill:"none",strokeWidth:1.4},datum:f(t)??t})});const s=o.map(e=>({x:e.x,y:e.y,text:e.id}));return{sceneNodes:i,sceneEdges:a,labels:s}},Bn={fill:"rgba(0,0,0,0)",stroke:"rgba(0,0,0,0)",opacity:0},Yn=8;function Vn(e){return null==e?void 0:e+""}function Hn(e){const t=Vn(e.id);return{type:"point",x:e.x,y:e.y,r:e.r??Yn,style:{...Bn},datum:e.datum,pointId:t,_transitionKey:t}}function _n(e){return Hn(e)}function Gn(e){const[[t,n],[o,r]]=e.bounds;return{type:"geoarea",pathData:e.pathData,centroid:e.centroid,bounds:e.bounds,screenArea:e.screenArea??Math.abs((o-t)*(r-n)),style:{...Bn},datum:e.datum,group:e.group,interactive:!0}}function Xn(e){return{type:"rect",x:e.x,y:e.y,w:e.width,h:e.height,style:{...Bn},datum:e.datum,group:e.group,_transitionKey:Vn(e.id)}}function Un(e){const t=Vn(e.id);return"width"in e&&"height"in e?{type:"rect",x:e.x,y:e.y,w:e.width,h:e.height,style:{...Bn},datum:e.datum,id:t,label:e.label}:{type:"circle",cx:e.x,cy:e.y,r:e.r??Yn,style:{...Bn},datum:e.datum,id:t,label:e.label}}function Kn(e,t,n={}){const{coord:o,step:r=1,equals:i=Object.is,truthyOnly:a=!1}=n,s=[],c=t=>o?o(e[t],t):t,l=(e,t,n)=>{e.endIndex=t,e.count=t-e.startIndex+1,e.end=o?null==n||c(n)-c(t)>r?c(t)+r:c(n):t+1,s.push(e)};let u=null;for(let n=0;e.length>n;n++){const s=t(e[n],n);if(a&&!s){u&&(l(u,u.endIndex,n),u=null);continue}const d=!o||0>=n||c(n)-c(n-1)<=r;u&&d&&i(u.value,s)?u.endIndex=n:(u&&l(u,u.endIndex,n),u={value:s,start:c(n),end:c(n),count:1,startIndex:n,endIndex:n})}return u&&l(u,u.endIndex,null),s}var Qn=Kn;function Zn(e,t,n=0){return t>0?((e-n)%t+t)%t+n:e}function Jn(e,t,n){if(0>=n)return t-e;let o=(t-e)%n;return o>n/2?o-=n:-n/2>o&&(o+=n),o}function eo(e,t,n){return t>n?e>=t||n>=e:e>=t&&n>=e}function to(e,t,n,o){return n>o?[...e.filter(e=>t(e)>=n),...e.filter(e=>t(e)<=o)]:e.filter(e=>eo(t(e),n,o))}var no=2*Math.PI;function oo(e,t,n){const o=n?.center?.x??0,r=n?.center?.y??0;return{x:o+Math.sin(e)*t,y:r-Math.cos(e)*t}}function ro(e,t,n){return(Math.atan2(e-(n?.center?.x??0),-(t-(n?.center?.y??0)))+no)%no}function io(e,t){const[n,o]=e,r=o-n||1,i=t?.startAngle??0,a=t?.endAngle??no;return e=>i+(e-n)/r*(a-i)}function ao(e,t){const[n,o]=e,[r,i]=t,a=o-n||1;return e=>r+(e-n)/a*(i-r)}function so(e,t,n,o,r){const i=r?.center,a=(e,t)=>{const{x:n,y:o}=oo(e,t,{center:i});return`${co(n)},${co(o)}`},s=Math.max(0,n),c=Math.max(s,o),l=Math.abs(t-e),u=e>t?0:1;if(l>=no-1e-6){const e=i?.x??0,t=i?.y??0,n=`${co(e)},${co(t-c)}`,o=`${co(e)},${co(t+c)}`;let r=`M${n} A${co(c)},${co(c)} 0 1 1 ${o} A${co(c)},${co(c)} 0 1 1 ${n} Z`;if(s>0){const n=`${co(e)},${co(t-s)}`,o=`${co(e)},${co(t+s)}`;r+=` M${n} A${co(s)},${co(s)} 0 1 0 ${o} A${co(s)},${co(s)} 0 1 0 ${n} Z`}return r}const d=l>Math.PI?1:0,h=a(e,c),f=a(t,c);if(0>=s){const e=i?.x??0,t=i?.y??0;return`M${co(e)},${co(t)} L${h} A${co(c)},${co(c)} 0 ${d} ${u} ${f} Z`}const m=a(t,s),p=a(e,s);return`M${h} A${co(c)},${co(c)} 0 ${d} ${u} ${f} L${m} A${co(s)},${co(s)} 0 ${d} ${1===u?0:1} ${p} Z`}function co(e){return Math.round(1e3*e)/1e3}function lo(e,t){return{x:e.x+t.x,y:e.y+t.y}}function uo(e,t){return{x:e.x-t.x,y:e.y-t.y}}function ho(e,t){return{x:e.x*t,y:e.y*t}}function fo(e){return Math.hypot(e.x,e.y)}function mo(e){const t=fo(e)||1;return{x:e.x/t,y:e.y/t}}var po=[40,40],yo=[.5,.5];function go(e,t){const[n,o]=e.viewBox??po,[r,i]=e.anchor??yo,a=o>0?o:1,s=Math.max(0,t)/a,c=(n>0?n:a)*s,l=a*s;return{width:c,height:l,scale:s,offsetX:-r*c,offsetY:-i*l}}function xo(e,t){const n=go(e,t),o=[[n.offsetX,n.offsetY],[n.offsetX+n.width,n.offsetY],[n.offsetX,n.offsetY+n.height],[n.offsetX+n.width,n.offsetY+n.height]];let r=0;for(const[e,t]of o){const n=Math.sqrt(e*e+t*t);n>r&&(r=n)}return r}function bo(e,t,n,o){if("none"!==e)return"color"===e||null==e?t??o:"accent"===e?n:e}function wo(e,t,n=0,o="horizontal"){const[r,i]=e.viewBox??po,a=Math.min(1,Math.max(0,n)),s=Math.min(1,Math.max(0,t));return s>a?a>0||1>s?"vertical"===o?{x:0,y:i*(1-s),width:r,height:i*(s-a)}:{x:r*a,y:0,width:r*(s-a),height:i}:null:{x:0,y:0,width:0,height:0}}var vo=require("react/jsx-runtime"),Mo="var(--semiotic-text, currentColor)",ko=8;function $o(e,t){const n=oe(e,100);return n>0?t/n*100*(t/n):Math.PI*t*t}function Ao(e){const t=[],n=e.colorMap?Object.entries(e.colorMap):e.keys?e.keys.map(t=>[t,e.color?e.color(t):void 0]):[];if(n.length>0){const o=e.colorType??"fill",r=n.map(([e,t])=>({label:e,color:t}));t.push({type:o,label:e.colorLabel??"",items:r,styleFn:"line"===o?e=>({stroke:e.color??Mo,strokeWidth:2,fill:"none"}):e=>({fill:e.color??Mo,stroke:e.color??Mo})})}if(e.symbolMap&&Object.keys(e.symbolMap).length>0){const n=e.symbolColor??Mo,o=Object.entries(e.symbolMap).map(([e,t])=>({label:e,shape:t,color:n}));t.push({label:e.symbolLabel??"",items:o,styleFn:()=>({}),type:e=>{const t=e.shape;return(0,vo.jsx)("path",{d:ee(t,$o(t,ko-1)),transform:`translate(${ko},${ko})`,fill:e.color??n})}})}if(e.sizeStops&&e.sizeStops.length>0&&e.sizeRadius){const n=e.sizeRadius,o=e.sizeFormat??(e=>e+""),r=e.sizeColor??Mo,i=e.sizeStops.map(e=>({label:o(e),r:Math.max(.5,n(e)),color:r}));t.push({label:e.sizeLabel??"",items:i,styleFn:()=>({}),type:e=>(0,vo.jsx)("circle",{cx:ko,cy:ko,r:e.r,fill:e.color??r})})}return t}function So(e){const t=e.orientation??"vertical",n=e.swatchSize??14,o=e.gap??8,r=e.labelGap??6,i=e.fontSize??12,a=e.color??"var(--semiotic-text-secondary, #888)",s=n+o;let c=0;const l=[];return e.entries.forEach((e,u)=>{l.push((0,vo.jsxs)("g",{transform:`translate(${"vertical"===t?0:c},${"vertical"===t?c:0})`,children:[Io(e,n,e.color??e.line??a,a),(0,vo.jsx)("text",{x:n+r,y:n/2,dominantBaseline:"middle",fontSize:i,fill:a,children:e.label})]},"legend-"+u)),c+="vertical"===t?s:n+r+e.label.length*i*.58+o+8}),(0,vo.jsx)("g",{className:e.className,transform:`translate(${e.x},${e.y})`,style:{pointerEvents:"none"},children:l},e.keyId)}function Io(e,t,n,o){if(e.shape){const o=$o(e.shape,t/2-1);return(0,vo.jsx)("path",{d:ee(e.shape,o),transform:`translate(${t/2},${t/2})`,fill:n})}if(e.hatch){const n=e.color??o;return(0,vo.jsxs)("g",{children:[(0,vo.jsx)("svg",{width:t,height:t,style:{overflow:"hidden"},children:[-t,-t/2,0,t/2].map((e,o)=>(0,vo.jsx)("line",{x1:e,y1:t,x2:e+t,y2:0,stroke:n,strokeWidth:1,opacity:.7},o))}),(0,vo.jsx)("rect",{width:t,height:t,fill:"none",stroke:n,strokeWidth:1,opacity:.5,rx:2})]})}return(0,vo.jsx)("rect",e.line?{y:t/2-1.5,width:t,height:3,rx:1.5,fill:e.line}:{width:t,height:t,rx:2,fill:n})}var jo=new Set(["rows"]);function Co(e){const t=e,n=[Eo(t,["datum","data"]),Eo(t,["datum"]),Eo(t,["data","data"]),Eo(t,["data"]),Eo(t,["node","datum","data"]),Eo(t,["node","datum"]),e];for(const e of n){if(!No(e))continue;const t={};for(const[n,o]of Object.entries(e))n.startsWith("_")||"function"==typeof o||(t[n]=o);if(Object.keys(t).length>0)return t}return null}function To(e,t={}){const n=Co(e);if(!n)return[];const o=new Set(jo);if(t.excludeKeys)for(const e of t.excludeKeys)o.add(e);const r=[];for(const[e,i]of Object.entries(n))if((t.includeInternal||!e.startsWith("_"))&&!o.has(e)&&(t.includeEmpty||null!=i&&""!==i)&&"function"!=typeof i&&(r.push({key:e,label:Lo(e,t.labels),value:i,formatted:t.valueFormat?t.valueFormat(i,e,n):zo(i)}),r.length>=(t.maxEntries??8)))break;return r}function zo(e){if(null==e)return"";if(e instanceof Date)return e.toISOString();if("number"==typeof e)return Number.isInteger(e)?e+"":e.toLocaleString(void 0,{maximumFractionDigits:2});if("boolean"==typeof e)return e?"true":"false";if(Array.isArray(e))return e.length+" items";if("object"==typeof e)try{return JSON.stringify(e)}catch{return e+""}return e+""}function Lo(e,t){return"function"==typeof t?t(e):t&&t[e]?t[e]:e}function Eo(e,t){let n=e;for(const e of t){if(!No(n))return;n=n[e]}return n}function No(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Ro(e,t){const n=new Map;for(const t of e)n.set(t.id,new Set);for(const e of t)n.has(e.source)||n.set(e.source,new Set),n.has(e.target)||n.set(e.target,new Set),n.get(e.source).add(e.target),n.get(e.target).add(e.source);return n}function Fo(e,t){const n={};for(const t of e)n[t.id]=0;for(const e of t)n[e.source]=(n[e.source]||0)+1,n[e.target]=(n[e.target]||0)+1;return n}function Po(e,t){const n={[t]:0},o=[t];let r=0;for(;o.length>r;){const t=o[r];r+=1;for(const r of e.get(t)||[])void 0===n[r]&&(n[r]=n[t]+1,o.push(r))}return n}function Wo(e,t,n,o){if(n===o)return n?[n]:[];const r=Ro(e,t),i={[n]:null},a=[n];let s=0;for(;a.length>s;){const e=a[s];if(s+=1,e===o)break;for(const t of r.get(e)||[])void 0===i[t]&&(i[t]=e,a.push(t))}if(void 0===i[o])return[];const c=[];let l=o;for(;null!=l;)c.unshift(l),l=i[l];return c}function qo(e,t,n,o=1){const r=Ro(e,t);if(!r.has(n))return new Set;const i=Po(r,n),a=new Set;for(const e in i)i[e]>o||a.add(e);return a}function Oo(e,t){const n=Ro(e,t),o={};for(const t of e)o[t.id]=0;for(const t of e.map(e=>e.id)){const r=[],i={},a={},s={};for(const t of e)i[t.id]=[],a[t.id]=0,s[t.id]=-1;a[t]=1,s[t]=0;const c=[t];let l=0;for(;c.length>l;){const e=c[l];l+=1,r.push(e);for(const t of n.get(e)||[])0>s[t]&&(s[t]=s[e]+1,c.push(t)),s[t]===s[e]+1&&(a[t]+=a[e],i[t].push(e))}const u={};for(const t of e)u[t.id]=0;for(;r.length;){const e=r.pop();for(const t of i[e])u[t]+=a[t]/a[e]*(1+u[e]);e!==t&&(o[e]+=u[e])}}for(const e in o)o[e]/=2;return o}function Do(e,t){const n=Ro(e,t),o={};for(const t of e){const e=Po(n,t.id);let r=0,i=0;for(const t in e)r+=e[t],i+=1;o[t.id]=r>0?(i-1)/r:0}return o}function Bo(e,t){const n=Ro(e,t),o={};for(const t of e){const e=[...n.get(t.id)||[]],r=e.length;if(2>r){o[t.id]=0;continue}let i=0;for(let t=0;e.length>t;t+=1)for(let o=t+1;e.length>o;o+=1)n.get(e[t])?.has(e[o])&&(i+=1);o[t.id]=2*i/(r*(r-1))}return o}function Yo(e){let t=0;for(const n in e)e[n]>t&&(t=e[n]);const n={};for(const o in e)n[o]=t>0?e[o]/t:0;return n}function Vo(e,t,n,o={}){const r=Ro(e,t),i={};for(const t of e)i[t.id]=Po(r,t.id);let a=o.minHops??4,s=o.startThreshold??.08;const c=o.maxThreshold??.2,l=new Set;let u=0;for(;0===l.size&&40>u;){for(let t=0;e.length>t;t+=1)for(let o=t+1;e.length>o;o+=1){const r=e[t].id,c=e[o].id,u=n[r],d=n[c];if(!u||!d)continue;const h=u.x-d.x,f=u.y-d.y;(void 0===i[r][c]?1/0:i[r][c])>=a&&s>Math.sqrt(h*h+f*f)&&(l.add(r),l.add(c))}0===l.size&&(s+=.02,s>c&&(s=o.startThreshold??.08,a=Math.max(2,a-1))),u+=1}return{problemIds:l,threshold:s,minHops:a}}var Ho={},_o=4e4;function Go(){return"undefined"!=typeof window&&"undefined"!=typeof Worker}function Xo(){if("undefined"!=typeof DOMException)return new DOMException("Force layout aborted","AbortError");const e=Error("Force layout aborted");return e.name="AbortError",e}var Uo=class{constructor(e=function(){const e="string"==typeof Ho.url&&Ho.url?new URL("./forceLayoutWorker.js",Ho.url):function(e){if("undefined"!=typeof __filename){const t=__filename.replace(/\\/g,"/"),n=t.startsWith("/")?t:"/"+t;return new URL("./"+e,"file:"+n)}throw Error("Cannot resolve module worker asset: "+e)}("forceLayoutWorker.js");return new Worker(e,{type:"module",name:"semiotic-force-layout"})}()){this.nextRequestId=1,this.pending=new Map,this.dead=!1,this.worker=e,this.worker.onmessage=e=>{const t=e.data,n=t.requestId,o=null!=n?this.pending.get(n):this.pending.values().next().value;if(o){if(null!=n?this.pending.delete(n):this.pending.clear(),o.cleanup(),t.error){const e=Error(t.error.message);return e.name=t.error.name??"Error",t.error.stack&&(e.stack=t.error.stack),void o.reject(e)}o.resolve({positions:t.positions??{}})}},this.worker.onerror=e=>{this.rejectAll(Error(e.message||"Force layout worker failed")),this.terminate()}}get isDead(){return this.dead}request(e,t){if(this.dead)return Promise.reject(Error("Force layout worker session is closed"));if(t?.aborted)return Promise.reject(Xo());const n=this.nextRequestId;this.nextRequestId+=1;const o={requestId:n,request:e};return new Promise((e,r)=>{const i=()=>{this.pending.delete(n),t?.removeEventListener("abort",i),r(Xo())},a=()=>t?.removeEventListener("abort",i);this.pending.set(n,{cleanup:a,reject:r,resolve:e}),t?.addEventListener("abort",i,{once:!0});try{this.worker.postMessage(o)}catch(e){this.pending.delete(n),a(),r(e instanceof Error?e:Error(e+""))}})}terminate(){this.dead||(this.dead=!0,this.rejectAll(Error("Force layout worker terminated")),this.worker.terminate())}rejectAll(e){for(const t of this.pending.values())t.cleanup(),t.reject(e);this.pending.clear()}},Ko=null;async function Qo(e,t,n={}){const{execution:o="auto",signal:r,workerThreshold:i,nodeRadius:a,...s}=n,c=s.iterations??260,l=Go()&&function(e,t,n,o,r=_o){return"sync"!==e&&("worker"===e||o*(t+n)>=r)}(o,e.length,t.length,c,i);if(!l)return P(e,t,{...s,nodeRadius:a});const u={kind:"normalized",nodes:e.map(e=>({...e})),edges:t.map(e=>({...e})),options:s,nodeRadii:"function"==typeof a?Object.fromEntries(e.map(e=>[e.id,a(e)])):null==a?void 0:Object.fromEntries(e.map(e=>[e.id,a]))};try{return(await function(e,t){return Go()?t?.aborted?Promise.reject(Xo()):(Ko&&!Ko.isDead||(Ko=new Uo),Ko).request(e,t):Promise.reject(Error("Web Workers are unavailable"))}(u,r)).positions}catch(n){if("AbortError"===n?.name)throw n;return P(e,t,{...s,nodeRadius:a})}}function Zo(e,t){if("region-enter"!==t.type)return e;const n=t.region.id,o=e[n]??{id:n,label:t.region.label??n,count:0,bodyIds:[]};if(o.bodyIds.includes(t.bodyId))return e;const r=[...o.bodyIds,t.bodyId];return{...e,[n]:{...o,count:r.length,bodyIds:r}}}function Jo(e,t){return(t??Object.keys(e)).map(t=>e[t]).filter(e=>null!=e).map(e=>({label:e.label??e.id,value:e.count}))}function er(e,t){const n=t instanceof Set?t:new Set(t);return e.map(e=>{const t=e.bodyIds??[],o=t.filter(e=>!n.has(e)),r=t.length-o.length,i=e.completion?.mode??"allMembersAbsorbed",a=e.completion?.valueByBodyId,s=e=>{const t=a?.[e];return Number.isFinite(t)&&Number(t)>=0?Number(t):1},c=t.reduce((e,t)=>e+s(t),0),l=t.reduce((e,t)=>e+(n.has(t)?s(t):0),0),u=e.completion?.threshold,d="threshold"===i?Number.isFinite(u)&&Number(u)>=0?Number(u):c:void 0;return{id:e.id,label:e.label??e.id,mode:i,complete:t.length>0&&("anyAbsorbed"===i?r>0:"threshold"===i?l>=(d??c):0===o.length),absorbed:r,total:t.length,absorbedValue:l,totalValue:c,threshold:d,missing:o}})}function tr(e,t,n){return Math.max(t,Math.min(n,e))}function nr(e,t,n={}){const o=n.random??Math.random,r=e.stages.find(e=>e.id===t)??e.stages[e.stages.length-1],i=tr(n.along??.5,.05,.95),a=n.jitterX??0,s=n.padY??20,c=r.x0+(r.x1-r.x0)*i+(2*o()-1)*a,l=Math.min(1,r.width/2),u=tr(c,r.x0+l,r.x1-l),d=e.boundaryY(u,"top")+s,h=e.boundaryY(u,"bottom")-s;return{x:u,y:h>d?d+o()*Math.max(1,h-d):e.midY}}function or(e){return"bowtie"===e.shape?[{id:"incoming",role:"incoming",points:[[e.left,e.topY],[e.centerLeft,e.pinchTop],[e.centerLeft,e.pinchBottom],[e.left,e.bottomY]]},{id:"center",role:"center",points:[[e.centerLeft,e.pinchTop],[e.centerRight,e.pinchTop],[e.centerRight,e.pinchBottom],[e.centerLeft,e.pinchBottom]]},{id:"outgoing",role:"outgoing",points:[[e.centerRight,e.pinchTop],[e.right,e.topY],[e.right,e.bottomY],[e.centerRight,e.pinchBottom]]}]:[{id:"volume",role:"volume",points:[[e.left,e.topY],[e.right,"funnel"===e.shape?e.pinchTop:e.topY],[e.right,"funnel"===e.shape?e.pinchBottom:e.bottomY],[e.left,e.bottomY]]}]}function rr(e,t,n){return Math.max(t,Math.min(n,e))}function ir(e,t,n,o,r,i={}){return{id:e,friction:i.friction,restitution:i.restitution,bodyFilter:i.bodyFilter,shape:{type:"segment",x1:t,y1:n,x2:o,y2:r,thickness:i.thickness??8}}}function ar(e){const t=e.shape??"lane",n=Math.max(1,Math.round(e.width)),o=Math.max(1,Math.round(e.height)),r=e.padX??46,i=e.padY??72,a=r,s=n-r,c=i,l=o-Math.max(24,Math.round(.45*i)),u=(c+l)/2,d=Math.max(1,l-c),h=rr(e.pinchRatio??.18,.06,.5),f=Number(e.pinchHeightOffset??0),m=Number.isFinite(f)?f:0,p=rr(d*h+m,.06*d,.5*d),y=p/2,g=u-y,x=u+y,b=e.idPrefix??"process",w=e.friction??.58,v=e.restitution??.18,M=e.wallThickness??8,k=e.stages;if(!k.length)throw Error("processStageLayout requires at least one stage");const $=rr(e.centerStageIndex??Math.floor(k.length/2),0,k.length-1),A=function(e){const t=e.reduce((e,t)=>e+(t.share??1),0);return t>0?t:e.length}(k),S=s-a;let I=a;const j=k.map((e,t)=>{const n=I,o=t===k.length-1?s:I+(e.share??1)/A*S;return I=o,{id:e.id,label:e.label,description:e.description,kind:e.kind??"stage",index:t,x0:n,x1:o,x:(n+o)/2,width:o-n,y:u,height:d}}),C=j[$],T=C.x0,z=C.x1,L=(e,n)=>{if("lane"===t)return"top"===n?c:l;if("funnel"===t){const t=rr((e-a)/Math.max(1,s-a),0,1);return"top"===n?c+(g-c)*t:l+(x-l)*t}if(T>=e){const t=rr((e-a)/Math.max(1,T-a),0,1);return"top"===n?c+(g-c)*t:l+(x-l)*t}if(z>=e)return"top"===n?g:x;const o=rr((e-z)/Math.max(1,s-z),0,1);return"top"===n?g+(c-g)*o:x+(l-x)*o},E=j.map(e=>{const t=Math.min(L(e.x0,"top"),L(e.x1,"top")),n=Math.max(L(e.x0,"bottom"),L(e.x1,"bottom"));return{...e,y:(t+n)/2,height:Math.max(1,n-t)}}),N={thickness:M,friction:w,restitution:v},R=[];"lane"===t?R.push(ir(b+"-top",a,c,s,c,N),ir(b+"-bottom",a,l,s,l,N),ir(b+"-left",a,c,a,l,{...N,thickness:Math.max(6,M-2)}),ir(b+"-right",s,c,s,l,{...N,thickness:Math.max(6,M)})):"funnel"===t?R.push(ir(b+"-top",a,c,s,g,N),ir(b+"-bottom",a,l,s,x,N),ir(b+"-left",a,c,a,l,{...N,thickness:Math.max(6,M-2)}),ir(b+"-right",s,g,s,x,{...N,thickness:Math.max(6,M)})):R.push(ir(b+"-left-top",a,c,T,g,N),ir(b+"-left-bottom",a,l,T,x,N),ir(b+"-center-top",T,g,z,g,N),ir(b+"-center-bottom",T,x,z,x,N),ir(b+"-right-top",z,g,s,c,N),ir(b+"-right-bottom",z,x,s,l,N),ir(b+"-left",a,c,a,l,{...N,thickness:Math.max(6,M-2)}),ir(b+"-right",s,c,s,l,{...N,thickness:Math.max(6,M)}));const F=e.membraneDampingScale??.5,P=a,W=Math.max(1,("bowtie"===t?T:s)-P),q=(e.membranes??[]).map(e=>{const t=P+rr(e.offset,0,1)*W,n=e.width??18+18*e.cost,o=d-16,r=u+.25*(e.wobble??0);return{...e,x:t,y:r,width:n,height:o}}),O=!1===e.includeMembraneRegions?[]:q.map(e=>lr({id:e.id,label:e.label??e.id,description:e.description??(e.label??e.id)+" is a permeable region. It taxes energy and damps velocity while bodies overlap it.",x:e.x,y:e.y,width:e.width,height:e.height,cost:e.cost,dampingScale:e.dampingScale??F,bodyStyle:e.bodyStyle,metadata:e.metadata,semanticItem:e.semanticItem,color:e.color}));return{shape:t,width:n,height:o,padX:r,padY:i,left:a,right:s,topY:c,bottomY:l,midY:u,centerLeft:T,centerRight:z,pinchHeight:p,pinchTop:g,pinchBottom:x,stages:E,membranes:q,colliders:R,regionEffects:O,boundaryY:L}}function sr(e){return{id:e.id,label:e.label,description:e.description,kind:e.kind,shape:(t=e.x,n=e.y,o=e.width,r=e.height,{type:"aabb",x:t,y:n,width:o,height:r}),bodyFilter:e.bodyFilter,collider:e.collider,colliderThickness:e.colliderThickness,friction:e.friction,restitution:e.restitution,semanticItem:e.semanticItem,metadata:e.metadata,bodyStyle:e.bodyStyle,attributes:e.attributes,onEnter:e.onEnter,onExit:e.onExit};var t,n,o,r}function cr(e,t={}){const n=t.idPrefix??"stage",o=Math.max(0,t.insetX??0),r=Math.max(0,t.insetY??1);return e.stages.map(e=>{const i="function"==typeof t.metadata?t.metadata(e):t.metadata??{};return{...sr({id:n?`${n}:${e.id}`:e.id,label:e.label??e.id,description:e.description,kind:"region",x:e.x,y:e.y,width:Math.max(1,e.width-2*o),height:Math.max(1,e.height-2*r),bodyFilter:t.bodyFilter,semanticItem:t.semanticItem,attributes:{primitive:"processStage",stageId:e.id,stageIndex:e.index},metadata:{...i,primitive:"processStage",stageId:e.id,stageIndex:e.index}})}})}function lr(e){const t=e.dampingScale??.5,n=e.energyScale??1,o=rr(e.cost,0,2);return{...sr({...e,kind:e.kind??"membrane",attributes:{primitive:"membrane",membraneCost:o,..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),damping:o*t,energyDelta:-o*n}}function ur(e){return{...sr({...e,kind:e.kind??"charge-gate",attributes:{primitive:"chargeGate",..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),charge:e.charge??!0,energyDelta:e.energyDelta,impulseOnEnter:e.impulseOnEnter}}function dr(e){const t="number"==typeof e.force?{x:e.force,y:0}:e.force??{x:12,y:0};return{...sr({...e,kind:e.kind??"force-field",attributes:{primitive:"routeSurface",..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),force:t,damping:e.damping??.015}}function hr(e){const t=e.pressure??e.occupancy??0,n=e.baseDamping??.08,o=e.dampingPerUnit??.12,r=e.energyPerUnit??0;return{...sr({...e,kind:e.kind??"membrane",attributes:{primitive:"pressureField",pressure:t,..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),damping:n+t*o,energyDelta:r?-t*r:void 0,force:e.force}}function fr(e){const t="number"==typeof e.force?{x:e.force,y:0}:e.force;return{...sr({...e,kind:e.kind??"force-field",attributes:{primitive:"capacitatedSensor",capacity:e.capacity,unitsPerSecond:e.unitsPerSecond??e.capacity,..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),force:t,damping:e.damping,charge:e.charge??e.capacity}}function mr(e){return{...sr({...e,kind:e.kind??"force-field",attributes:{primitive:"portal",targetStage:e.targetStage,..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),force:e.force,impulseOnEnter:e.impulseOnEnter,damping:e.damping??.08}}function pr(e){const t="number"==typeof e.force?{x:e.force,y:0}:e.force??{x:24,y:0};return{...sr({...e,kind:e.kind??"sink",attributes:{primitive:"absorb",..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),force:t,damping:e.damping??.02,charge:e.charge??"absorbed"}}function yr(e){return{...sr({...e,kind:e.kind??"force-field",attributes:{primitive:"forceField",..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),force:e.force,damping:e.damping,energyDelta:e.energyDelta}}function gr(e){const t=e.x??e.anchor?.x??0,n=e.y??e.anchor?.y??0;return{id:e.id,label:e.label,description:e.description,group:e.group,bodyIds:e.bodyIds,datum:e.datum,state:e.state,x:t,y:n,width:e.width,height:e.height,anchor:e.anchor??{x:t,y:n},completion:e.completion,tether:e.tether,semanticItem:e.semanticItem}}function xr(e){const t=e.idPrefix??"lane",n={thickness:e.thickness??8,friction:e.friction??.5,restitution:e.restitution??.16},o=[ir(t+"-top",e.left,e.top,e.right,e.top,n),ir(t+"-bottom",e.left,e.bottom,e.right,e.bottom,n)];return e.openEnds||o.push(ir(t+"-left",e.left,e.top,e.left,e.bottom,n),ir(t+"-right",e.right,e.top,e.right,e.bottom,n)),o}var br=[.1,.5,.9],wr=1e6,vr=12;function Mr(e){const t="number"==typeof e?e:"string"==typeof e&&e.trim()?Number(e):NaN;return Number.isFinite(t)?t:null}function kr(e,t,n,o,r){return"function"==typeof o?o(e,t,n):function(e,t){let n=e;for(const e of t.split(".")){if(null==n||"object"!=typeof n)return;n=n[e]}return n}(e,o??r)}function $r(e){const t=Number(e.toFixed(vr));return Object.is(t,-0)?0:t}function Ar(e,t,n,o){const r=e.flatMap((e,r)=>{const i=Mr(kr(e,r,t,n,"time")),a=Mr(kr(e,r,t,o,"value"));return null==i||null==a?[]:[{time:$r(i),value:a,index:r}]});r.sort((e,t)=>e.time-t.time||e.index-t.index);const i=[];for(const e of r){const t=i[i.length-1];t?.time===e.time?t.value=e.value:i.push({time:e.time,value:e.value})}return i}function Sr(e,t,n,o){if(!e.length)return null;const r=e[0],i=e[e.length-1];if(r.time>t)return"clamp"===o?r.value:null;if(t>i.time)return"clamp"===o?i.value:null;const a=function(e,t){let n=0,o=e.length;for(;o>n;){const r=n+o>>>1;t>e[r].time?n=r+1:o=r}return n}(e,t),s=e[a];if(s?.time===t)return s.value;const c=e[Math.max(0,a-1)];return"step"!==n&&s&&s.time!==c.time?c.value+(t-c.time)/(s.time-c.time)*(s.value-c.value):c.value}function Ir(e,t){if(1===e.length)return e[0];const n=(e.length-1)*t,o=Math.floor(n),r=Math.ceil(n);return o===r?e[o]:e[o]+(e[r]-e[o])*(n-o)}function jr(e){const t=e.interpolation??"step",n=e.outsideDomain??"omit",o=function(e){const t=(e??br).map(e=>{const t=Mr(e);if(null==t||0>t||t>1)throw new RangeError("physicsReferenceEnvelope quantiles must be finite values from 0 to 1; received "+e);return $r(t)});return Array.from(new Set(t)).sort((e,t)=>e-t)}(e.quantiles),r=function(e){if(Array.isArray(e)){if(e.length>wr)throw new RangeError(`physicsReferenceEnvelope sampleAt exceeds ${wr} points`);return Array.from(new Set(e.map(Mr).filter(e=>null!=e).map($r))).sort((e,t)=>e-t)}const t=e,n=Mr(t.start),o=Mr(t.end),r=Mr(t.step);if(null==n||null==o||null==r||0>=r||n>o)throw new RangeError("physicsReferenceEnvelope sampleAt requires finite start/end values with end >= start and step > 0");const i=Math.floor((o-n)/r)+1;if(i>wr)throw new RangeError(`physicsReferenceEnvelope sampleAt exceeds ${wr} points`);const a=[],s=1e-10*Math.max(1,Math.abs(o),Math.abs(n));for(let e=0;i>e;e+=1){const t=n+e*r;if(t>o+s)break;a.push($r(Math.min(t,o)))}if(a.length&&s>=Math.abs(a[a.length-1]-o)||a.push($r(o)),a.length>wr)throw new RangeError(`physicsReferenceEnvelope sampleAt exceeds ${wr} points`);return Array.from(new Set(a)).sort((e,t)=>e-t)}(e.sampleAt),i=e.runs.map(t=>Ar(t.samples,t.id,e.timeAccessor,e.valueAccessor));return{points:r.map(e=>{const r=i.map(o=>Sr(o,e,t,n)).filter(e=>null!=e).sort((e,t)=>e-t),a={};for(const e of o)a[e]=r.length?Ir(r,e):null;return{time:e,count:r.length,min:r.length?r[0]:null,max:r.length?r[r.length-1]:null,median:r.length?Ir(r,.5):null,quantiles:a}}),quantiles:o,interpolation:t,outsideDomain:n,runCount:e.runs.length}}function Cr(e,t){return e.quantiles.length?"lower"===t?e.quantiles[0]:e.quantiles[e.quantiles.length-1]:"lower"===t?"min":"max"}function Tr(e,t){if("min"===t||"median"===t||"max"===t)return e[t];const n=Mr(t);if(null==n||0>n||n>1)throw new RangeError("comparePhysicsTrace quantile selectors must be from 0 to 1; received "+t);const o=$r(n);if(!Object.prototype.hasOwnProperty.call(e.quantiles,o))throw Error(`comparePhysicsTrace could not find quantile ${o} in the reference envelope`);return e.quantiles[o]??null}function zr(e,t,n){return t>e?"below":e>n?"above":"inside"}function Lr(e,t){const n=Math.max(0,t.time-e.time);if(0>=n||null==e.value||null==e.lower||null==e.upper||null==t.value||null==t.lower||null==t.upper)return{below:0,inside:0,above:0,observed:0};const o=e.value-e.lower,r=t.value-t.lower,i=e.value-e.upper,a=t.value-t.upper,s=[0,1];for(const[e,t]of[[o,r],[i,a]])(0>e&&t>0||e>0&&0>t)&&s.push(-e/(t-e));s.sort((e,t)=>e-t);let c=0,l=0,u=0;for(let o=0;s.length-1>o;o+=1){const r=s[o],i=s[o+1];if(r>=i)continue;const a=(r+i)/2,d=(i-r)*n,h=zr(e.value+(t.value-e.value)*a,e.lower+(t.lower-e.lower)*a,e.upper+(t.upper-e.upper)*a);"below"===h?c+=d:"above"===h?u+=d:l+=d}return{below:c,inside:l,above:u,observed:n}}function Er(e,t,n={}){const o=n.interpolation??t.interpolation,r=n.outsideDomain??t.outsideDomain,i=Ar(e,n.traceId??"trace",n.timeAccessor,n.valueAccessor),a=n.lower??Cr(t,"lower"),s=n.upper??Cr(t,"upper"),c=t.points.map(e=>{const t=Sr(i,e.time,o,r),n=Tr(e,a),c=Tr(e,s);if(null!=n&&null!=c&&n>c)throw new RangeError("comparePhysicsTrace lower band exceeds upper band at time "+e.time);return{time:e.time,value:t,lower:n,upper:c,status:null==t||null==n||null==c?"unobserved":zr(t,n,c)}});let l=0,u=0,d=0,h=0,f=null,m=0,p=null;for(const e of c){if("below"===e.status?l+=1:"inside"===e.status?u+=1:"above"===e.status&&(d+=1),null==e.value||null==e.lower||null==e.upper)continue;const t=Math.max(0,e.value-e.upper),n=Math.max(0,e.lower-e.value);t>h&&(h=t,f=e.time),n>m&&(m=n,p=e.time)}let y=0,g=0,x=0,b=0;for(let e=0;c.length-1>e;e+=1){const t=c[e],n=c[e+1],r=Math.max(0,n.time-t.time);if(r>0){if("linear"===o){const e=Lr(t,n);y+=e.below,g+=e.inside,x+=e.above,b+=e.observed;continue}"unobserved"!==t.status&&(b+=r,"below"===t.status?y+=r:"above"===t.status?x+=r:g+=r)}}const w=c[0]?.time,v=c[c.length-1]?.time,M=null==w||null==v?0:Math.max(0,v-w);return{points:c,sampleCount:c.length,observedSamples:l+u+d,belowSamples:l,insideSamples:u,aboveSamples:d,totalDuration:M,observedDuration:b,unobservedDuration:Math.max(0,M-b),belowDuration:y,insideDuration:g,aboveDuration:x,peakExcess:h,peakExcessAt:f,peakDeficit:m,peakDeficitAt:p}}function Nr(e){return{id:e,furthestStageIndex:-1,visitedStageIds:[],visitsByStage:{},firstEnteredAt:{},lastEnteredAt:{},regressionCount:0}}function Rr(e){const t=Array.from(new Set(e.bodyIds??[]));return{stages:e.stages.map(e=>({...e})),bodyIds:t,entities:Object.fromEntries(t.map(e=>[e,Nr(e)]))}}function Fr(e,t,n={}){if("region-enter"!==t.type)return e;const o=function(e,t){const n=t.stageId?.(e);if(n)return n;const o=e.region.metadata;if(o&&"object"==typeof o){const e=o.stageId;if("string"==typeof e)return e}return e.region.id}(t,n),r=e.stages.findIndex(e=>e.id===o);if(0>r)return e;const i=n.entityId?.(t)??t.bodyId;if(!i)return e;const a=e.entities[i]??Nr(i),s=a.currentStageId?e.stages.findIndex(e=>e.id===a.currentStageId):-1,c=!a.visitedStageIds.includes(o),l=Number(t.observation.timestamp),u=Number.isFinite(l)?l:0,d={...a,currentStageId:o,furthestStageId:r>a.furthestStageIndex?o:a.furthestStageId,furthestStageIndex:Math.max(a.furthestStageIndex,r),visitedStageIds:c?[...a.visitedStageIds,o]:a.visitedStageIds,visitsByStage:{...a.visitsByStage,[o]:(a.visitsByStage[o]??0)+1},firstEnteredAt:c?{...a.firstEnteredAt,[o]:u}:a.firstEnteredAt,lastEnteredAt:{...a.lastEnteredAt,[o]:u},regressionCount:s>=0&&s>r?a.regressionCount+1:a.regressionCount};return{...e,bodyIds:e.bodyIds.includes(i)?e.bodyIds:[...e.bodyIds,i],entities:{...e.entities,[i]:d}}}function Pr(e){const t=e.bodyIds.map(t=>e.entities[t]??Nr(t)),n=t.length;let o=n;return e.stages.map((e,r)=>{const i=t.filter(e=>e.furthestStageIndex>=r).length,a=t.filter(t=>t.visitedStageIds.includes(e.id)).length,s=t.reduce((t,n)=>t+(n.visitsByStage[e.id]??0),0),c={id:e.id,label:e.label??e.id,reached:i,entered:a,total:n,conversion:n>0?i/n:0,fromPrevious:o>0?i/o:0,dropoff:Math.max(0,o-i),visits:s,repeatVisits:Math.max(0,s-a)};return o=i,c})}function Wr(e,t){if("function"==typeof t){const n=t(e);return Number.isFinite(n)&&n>0?Number(n):1}const n=e.datum;if(t&&n&&"object"==typeof n){const e=Number(n[t]);if(Number.isFinite(e)&&e>0)return e}const o=Number(n?.work??n?.reviewWork??n?.value);return Number.isFinite(o)&&o>0?o:1}function qr(e,t){if("function"==typeof t){const n=t(e);if(null!=n&&(n+"").length>0)return n+""}else if(t){const n=Dr(e.datum,t),o=Dr(e,t),r=n??o;if(null!=r&&(r+"").length>0)return r+""}return e.id}function Or(e,t){if(0===e.length)return 0;if(1===e.length)return e[0];const n=Math.max(0,Math.min(1,t))*(e.length-1),o=Math.floor(n);return e[o]+(e[Math.ceil(n)]-e[o])*(n-o)}function Dr(e,t){if(!t)return;let n=e;for(const e of t.split(".")){if(null==n||"object"!=typeof n)return;n=n[e]}return n}function Br(e,t){if(!t)return!0;if("function"==typeof t)return t(e);const n=Dr(e,t.property);return!("equals"in t&&!Object.is(n,t.equals)||"notEquals"in t&&Object.is(n,t.notEquals)||t.oneOf&&!t.oneOf.some(e=>Object.is(n,e))||t.notOneOf&&t.notOneOf.some(e=>Object.is(n,e)))}function Yr(e){const t=e.regionId,n=Math.max(0,e.unitsPerSecond),o=e.queueLayout??"lane",r=e.queueSlotSpacing??14,i=e.queueStiffness??.35,a=Number.isFinite(e.maxQueue)?Math.max(0,Math.floor(Number(e.maxQueue))):1/0,s=Math.max(.25,e.metricWindowSeconds??30),c=Math.max(1/60,e.snapshotIntervalSeconds??.25),l=e.releaseImpulse??{x:90,y:0},u=new Map,d=new Map,h=new Map,f=new Map,m=new Map,p=new Map,y=new Map,g=[];let x=0,b=new Map,w=new Map,v=0,M=0,k=0,$=null,A=0,S=0,I=0,j=0,C=0,T=0,z=0,L=0,E=0,N=0,R=0,F=0,P=-1,W=!1;function q(e,n){const o=n(e);return!!o&&o.activeRegionIds.includes(t)}function O(){F+=1}function D(e){return{bodyId:e.bodyId,jobId:e.jobId,visitId:e.visitId,visit:e.visit,regionId:t,work:e.total,queuedAt:e.queuedAt}}function B(n,o,r,i){const a={bodyId:n.id,jobId:o.jobId,visitId:o.visitId,visit:o.visit,remaining:o.work,total:o.work,queuedAt:o.queuedAt,sequence:i};return u.set(o.jobId,a),y.delete(n.id),p.set(n.id,o.jobId),S+=1,I+=o.work,O(),function(n,o,r){const i=D(o);e.onQueued?.(n,i),r.controls.recordObservation({type:"physics-capacity-queued",bodyId:n.id,datum:n.datum,x:n.x,y:n.y,regionId:t,work:o.total,jobId:o.jobId,visitId:o.visitId,visit:o.visit,queuedAt:o.queuedAt,queueDepth:u.size})}(n,a,r),a}function Y(e){if(u.size>=a||0===d.size)return;const t=Array.from(d.values()).sort((e,t)=>e.sequence-t.sequence);for(const n of t){if(u.size>=a)break;const t=m.get(n.jobId);t&&h.has(n.jobId)?(d.delete(n.jobId),y.delete(n.bodyId),B(t,n,e,n.sequence)):d.delete(n.jobId)}}function V(){let e=0;for(const t of u.values())e+=t.remaining;return e}function H(){E=Math.max(E,u.size),N=Math.max(N,V())}function _(){const e=k-s,t=Math.max(0,Math.min(s,k-($??k)));let o=0,r=0,i=0,a=0,c=0;for(const t of g){if(e>t.end)continue;o+=t.arrivals,r+=t.arrivalWork,i+=t.completions,a+=t.completedWork;const n=t.end-t.start;c+=n>0&&e>t.start?t.processedWork*Math.min(1,Math.max(0,t.end-e)/n):t.processedWork}const l=t>0?r/t:0;return{seconds:t,arrivals:o,arrivalWork:r,completions:i,completedWork:a,processedWork:c,arrivalsPerSecond:t>0?o/t:0,throughputPerSecond:t>0?i/t:0,utilization:t>0&&n>0?Math.max(0,Math.min(1,c/(n*t))):0,pressure:n>0?l/n:0}}return{id:e.id??"capacity-queue:"+t,continuous:!1!==e.continuous,tick:o=>{const r=o.controls.readBodies(),i=new Map,S=new Map;for(const t of r){if(i.set(t.id,t),!q(t.id,o.getRegionState))continue;if(!Br(t,e.bodyFilter))continue;const n=qr(t,e.jobKey),r=S.get(n)??[];r.push(t),S.set(n,r)}const I=Number.isFinite(o.dt)?Math.max(0,o.dt):0;if(!W){const e=Number.isFinite(o.elapsed)?Math.max(0,o.elapsed):I;k=Math.max(0,e-I),W=!0}const E=k,N=E+I;k=N,$=null==$?E:Math.min($,E);const F={start:E,end:N,arrivals:0,arrivalWork:0,completions:0,completedWork:0,processedWork:0},V=new Map;for(const[e,t]of S){const n=h.get(e)?.bodyId,o=t.find(e=>e.id===n)??t[0];V.set(e,o),m.set(e,o)}for(const[n,r]of h){if(V.has(n))continue;const a=u.get(n),s=i.get(r.bodyId)??m.get(n);if(a){u.delete(n),p.delete(a.bodyId),z+=1,L+=a.remaining,O();const i={...D(a),abandonedAt:k,remainingWork:a.remaining,queueSeconds:Math.max(0,k-a.queuedAt)};s&&e.onAbandoned?.(s,i),o.controls.recordObservation({type:"physics-capacity-abandoned",bodyId:r.bodyId,datum:s?.datum,x:s?.x,y:s?.y,regionId:t,work:a.total,remainingWork:a.remaining,jobId:n,visitId:a.visitId,visit:a.visit,queuedAt:a.queuedAt,abandonedAt:k,queueSeconds:i.queueSeconds,queueDepth:u.size})}d.delete(n),y.delete(r.bodyId),h.delete(n),m.delete(n)}for(const[n,r]of V){if(h.has(n))continue;const i=(f.get(n)??0)+1;f.set(n,i);const s=Wr(r,e.unitAccessor),c={bodyId:r.id,jobId:n,visitId:`${t}:${n}:${i}`,visit:i,regionId:t,work:s,queuedAt:k};h.set(n,c),A+=1,F.arrivals+=1,F.arrivalWork+=s;const l=x++;if(a>u.size)B(r,c,o,l);else{const a={...c,blockedAt:k,sequence:l};d.set(n,a),y.set(r.id,n),T+=1,O(),e.onBlocked?.(r,a),o.controls.recordObservation({type:"physics-capacity-blocked",bodyId:r.id,datum:r.datum,x:r.x,y:r.y,regionId:t,work:s,jobId:n,visitId:c.visitId,visit:i,queuedAt:k,blockedAt:k,queueDepth:u.size,blockedDepth:d.size})}}Y(o),H();const _=Array.from(u.values()).sort((e,t)=>e.sequence-t.sequence);let G=n*I;for(const n of _){if(0>=G)break;const r=Math.min(n.remaining,G);if(n.remaining-=r,G-=r,j+=r,F.processedWork+=r,n.remaining>1e-6)continue;u.delete(n.jobId),p.delete(n.bodyId),M+=1,C+=n.total,F.completions+=1,F.completedWork+=n.total;const a=Math.max(0,k-n.queuedAt);R+=a,O();const s=i.get(n.bodyId);if(!s)continue;o.controls.applyImpulse(n.bodyId,l.x??0,l.y??0);const c={...D(n),completedAt:k,queueSeconds:a};e.onProcessed?.(s,c),o.controls.recordObservation({type:"physics-capacity-processed",bodyId:n.bodyId,datum:s.datum,x:s.x,y:s.y,regionId:t,work:n.total,jobId:n.jobId,visitId:n.visitId,visit:n.visit,queuedAt:n.queuedAt,completedAt:k,queueSeconds:a,queueDepth:u.size})}Y(o),H(),function(){const e=Array.from(u.values()).sort((e,t)=>e.sequence-t.sequence);b=new Map(e.map((e,t)=>[e.bodyId,t]));const t=Array.from(d.values()).sort((e,t)=>e.sequence-t.sequence);w=new Map(t.map((e,t)=>[e.bodyId,t])),v=e.length}(),function(e){(e.end>e.start||e.arrivals>0||e.completions>0||e.processedWork>0)&&g.push(e);const t=k-s;for(;g.length>0&&t>g[0].end;)g.shift()}(F);const X=Math.floor(k/c);X!==P&&(P=X,O())},getSnapshot:()=>{const e=V(),o=function(){let e=0;for(const t of d.values())e+=t.work;return e}(),r=u.size,i=Array.from(u.values()).map(e=>Math.max(0,k-e.queuedAt)).sort((e,t)=>e-t),a=i.reduce((e,t)=>e+t,0);return{regionId:t,queueDepth:r,processedCount:M,unitsPerSecond:n,remainingWork:e,meanRemainingWork:r>0?e/r:0,waitingWork:e+o,blockedDepth:d.size,blockedWork:o,arrivalCount:A,admittedCount:S,admittedWork:I,processedWork:j,completedWork:C,blockedCount:T,abandonedCount:z,abandonedWork:L,peakQueueDepth:E,peakRemainingWork:N,queueAge:{count:i.length,meanSeconds:i.length>0?a/i.length:0,p50Seconds:Or(i,.5),p95Seconds:Or(i,.95),oldestSeconds:i.at(-1)??0},meanCompletedQueueSeconds:M>0?R/M:0,window:_(),simulatedAt:k,metricRevision:F}},bodyForce:e=>{if("none"===o)return null;const n=p.get(e.body.id),a=y.get(e.body.id),s=n?u.get(n):void 0,c=a?d.get(a):void 0;if(!s&&!c)return null;const l=s?b.get(e.body.id):w.get(e.body.id);if(null==l)return null;let h;const f=e.regions;if(f)for(let e=0;f.length>e;e+=1)if(f[e].id===t){const t=f[e].shape;t&&"aabb"===t.type&&(h=t);break}return h?{x:((c?h.x-.44*h.width:h.x-.22*h.width-l*(.15*r))-e.body.x)*i,y:(h.y-(l-((c?d.size:v)-1)/2)*r/Math.max(1,Math.sqrt(c?d.size:v))-e.body.y)*i*.85}:{x:8*-Math.sign(e.body.vx||1),y:0}}}}function Vr(e,t){if(!t)return;let n=e;for(const e of t.split(".")){if(null==n||"object"!=typeof n)return;n=n[e]}return n}function Hr(e,t){if(!t)return!0;if("function"==typeof t)return t(e);const n=Vr(e,t.property);return!("equals"in t&&!Object.is(n,t.equals)||"notEquals"in t&&Object.is(n,t.notEquals)||t.oneOf&&!t.oneOf.some(e=>Object.is(n,e))||t.notOneOf&&t.notOneOf.some(e=>Object.is(n,e)))}function _r(e){const t=e.resources.map(e=>({...e,bodyId:e.bodyId??e.id})),n=new Map(t.map(e=>[e.bodyId,e])),o=new Map,r=new Map,i=e.assignmentForce??.45,a=e.returnForce??.35,s=e.caseAttraction??.08,c=e.assignmentOffset??{x:0,y:0};let l=new Map,u=0,d=0;return{id:e.id??"service-resource-pool",continuous:!0,assign:e=>{const n=o.get(e);if(n)return n;const i=t.find(e=>!r.has(e.id));if(!i)return null;const a={resourceId:i.id,resourceBodyId:i.bodyId,caseBodyId:e,assignedAt:u};return o.set(e,a),r.set(i.id,a),d+=1,a},release:e=>{const t=o.get(e);return!!t&&(o.delete(e),r.delete(t.resourceId),d+=1,!0)},getAssignment:e=>o.get(e),tick:e=>{u=Math.max(u,e.elapsed),l=new Map(e.controls.readBodies().map(e=>[e.id,e]));for(const[e,t]of o)l.has(e)&&l.has(t.resourceBodyId)||(o.delete(e),r.delete(t.resourceId),d+=1)},getSnapshot:()=>({total:t.length,available:t.length-r.size,assigned:r.size,assignments:Array.from(o.values()),simulatedAt:u,metricRevision:d}),bodyForce:e=>{const t=n.get(e.body.id);if(t){const n=r.get(t.id),o=n?l.get(n.caseBodyId):void 0,s=n?i:a;return{x:((o?o.x+(c.x??0):t.home.x)-e.body.x)*s,y:((o?o.y+(c.y??0):t.home.y)-e.body.y)*s}}const u=o.get(e.body.id);if(!u||0>=s)return null;const d=l.get(u.resourceBodyId);return d?{x:(d.x-e.body.x)*s,y:(d.y-e.body.y)*s}:null}}}function Gr(e,t){const n="function"==typeof t.deadlineAccessor?t.deadlineAccessor(e):Vr(e.datum,t.deadlineAccessor)??Vr(e,t.deadlineAccessor);return Number.isFinite(Number(n))?Math.max(0,Number(n)):0}function Xr(e){const t=new Map;let n=0,o=0;function r(n){t.set(n.bodyId,n),o+=1,e.onStateChange?.({...n})}function i(e){const o=t.get(e);return!(!o||null!=o.completedAt||(r({...o,completedAt:n,state:"unhappy"===o.state?"resolved-unhappy":"resolved"}),0))}return{id:e.id??"service-level",continuous:!0,protect:e=>{const o=t.get(e);return!(!o||null!=o.completedAt||"unhappy"===o.state||(r({...o,state:"protected",protectedAt:n}),0))},complete:i,getCase:e=>t.get(e),tick:o=>{n=Math.max(n,o.elapsed);for(const a of o.controls.readBodies()){if(!Hr(a,e.bodyFilter))continue;if(!t.has(a.id)){const t=Gr(a,e);r({bodyId:a.id,openedAt:n,deadlineAt:n+t,state:"waiting"})}const s=t.get(a.id);s&&null==s.completedAt&&(e.completionRegionId&&o.getRegionState(a.id)?.activeRegionIds.includes(e.completionRegionId)?i(a.id):"waiting"!==s.state||s.deadlineAt>n||r({...s,state:"unhappy"}))}},getSnapshot:()=>{const e=Array.from(t.values()),r=t=>e.filter(e=>e.state===t).length;return{total:e.length,waiting:r("waiting"),protected:r("protected"),unhappy:r("unhappy"),resolved:r("resolved"),resolvedUnhappy:r("resolved-unhappy"),simulatedAt:n,metricRevision:o}}}}function Ur(e){const t=new Set;let n=0,o=0,r=0,i=!1;return{id:e.id??"dependency-gate:"+e.regionId,continuous:!0,tick:a=>{n=Math.max(n,a.elapsed);const s=i;var c;c=n,i=e.isOpen?e.isOpen(c):null!=e.opensAt&&c>=e.opensAt;const l=a.controls.readBodies(),u=new Map(l.map(e=>[e.id,e]));for(const n of l){const o=a.getRegionState(n.id)?.activeRegionIds.includes(e.regionId);o&&Hr(n,e.bodyFilter)&&(i||t.has(n.id)||(t.add(n.id),r+=1,e.onHeld?.(n)))}if(i&&!s){for(const n of t){const t=u.get(n);t&&(a.controls.applyImpulse(n,e.releaseImpulse?.x??86,e.releaseImpulse?.y??0),o+=1,e.onReleased?.(t))}t.clear(),r+=1}for(const e of t)u.has(e)||(t.delete(e),r+=1)},getSnapshot:()=>({regionId:e.regionId,isOpen:i,blocked:t.size,released:o,simulatedAt:n,metricRevision:r}),bodyForce:n=>{if(i||!t.has(n.body.id))return null;const o=n.regions?.find(t=>t.id===e.regionId),r=o?.shape;if(!r||"aabb"!==r.type)return{x:.8*-n.body.vx,y:.8*-n.body.vy};const a=e.holdForce??.4;return{x:(r.x-n.body.x)*a-.45*n.body.vx,y:(r.y-n.body.y)*a-.45*n.body.vy}}}}function Kr(e,t){return e||t?{x:(e?.x??0)+(t?.x??0),y:(e?.y??0)+(t?.y??0)}:null}function Qr(e){if(!e?.length)return null;const t=e.slice(),n=t.some(e=>!1!==e.continuous);return{controllers:t,continuous:n,onTick:(e,n,o)=>{const r={result:e,controls:n,dt:o.dt,elapsed:o.elapsed,getRegionState:o.getRegionState};for(const e of t)e.tick(r)},bodyForce:e=>{let n=null;for(const o of t)o.bodyForce&&(n=Kr(n,o.bodyForce(e)));return n}}}function Zr(e){const t=new Set,n=e.impulse??{x:-60,y:0};return{id:e.id??"portal:"+e.fromRegionId,continuous:!0===e.continuous,tick:o=>{const r=o.controls.readBodies();for(const i of r){const r=o.getRegionState(i.id),a=r?.activeRegionIds.includes(e.fromRegionId);a?t.has(i.id)||(t.add(i.id),o.controls.applyImpulse(i.id,n.x??0,n.y??0),e.onPortal?.(i)):t.delete(i.id)}}}}var Jr=require("react/jsx-runtime"),ei={flow:{fill:"rgba(59, 130, 246, 0.14)",stroke:"rgba(96, 165, 250, 0.7)",accent:"#60a5fa"},capacity:{fill:"rgba(251, 146, 60, 0.18)",stroke:"rgba(251, 146, 60, 0.85)",accent:"#fb923c"},portal:{fill:"rgba(244, 114, 182, 0.14)",stroke:"rgba(244, 114, 182, 0.7)",accent:"#f472b6"},absorb:{fill:"rgba(52, 211, 153, 0.18)",stroke:"rgba(52, 211, 153, 0.8)",accent:"#34d399"}},ti=6.2;function ni(e,t,n){return Math.max(t,Math.min(n,e))}function oi(e){return e.length*ti}function ri(e,t){const n=e.trim();if(t>=n.length)return n;if(1>=t)return n.slice(0,1);const o=n.split(/\s+/).filter(Boolean).map(e=>e[0]).join("").toUpperCase();return o.length>1&&t>=o.length?o:t>3?n.slice(0,Math.max(1,t-2))+"..":n.slice(0,t).toUpperCase()}function ii(e,t,n="auto"){const o=Math.max(1,Math.floor(t/ti)),r="compact"===n?ri(e,o):"full"===n?e:oi(e)>t?ri(e,o):e;return{text:r,textLength:oi(r)>t?Math.max(4,t):void 0}}function ai(e,t={}){const{showFlowSpine:n=!0,showStageCounts:o=!0,showCapacityBadges:r=!0,showGroupSockets:i=!0,stageLabelMode:a="auto",outlineStages:s=!1,testId:c="process-flow-chrome"}=t,{width:l,height:u,left:d,right:h,topY:f,bottomY:m,midY:p,stages:y,groups:g=[]}=e,x=m-f;return(0,Jr.jsxs)("svg",{"aria-hidden":"true","data-testid":c,"data-outline-stages":s?"true":void 0,width:l,height:u,viewBox:`0 0 ${l} ${u}`,style:{position:"absolute",inset:0,pointerEvents:"none"},className:["semiotic-process-chrome",s?"semiotic-process-chrome--outline-stages":null].filter(Boolean).join(" "),children:[(0,Jr.jsx)("defs",{children:(0,Jr.jsxs)("linearGradient",{id:"semiotic-process-floor",x1:"0",x2:"0",y1:"0",y2:"1",children:[(0,Jr.jsx)("stop",{offset:"0%",stopColor:"var(--semiotic-process-floor, var(--semiotic-bg, #0f172a))",stopOpacity:"0.2"}),(0,Jr.jsx)("stop",{offset:"100%",stopColor:"var(--semiotic-process-lane, var(--semiotic-surface, #1e293b))",stopOpacity:"0.55"})]})}),(0,Jr.jsx)("rect",{x:0,y:0,width:l,height:u,fill:"url(#semiotic-process-floor)"}),(0,Jr.jsx)("rect",{x:d-6,y:f-8,width:h-d+12,height:x+16,rx:14,fill:"var(--semiotic-process-lane, var(--semiotic-surface, #111827))",fillOpacity:.45,stroke:"var(--semiotic-process-border, var(--semiotic-border, #334155))",strokeOpacity:.95}),n?(0,Jr.jsx)("line",{x1:d+8,x2:h-8,y1:p,y2:p,stroke:"var(--semiotic-process-border, var(--semiotic-border, #475569))",strokeWidth:2,strokeDasharray:"6 8",opacity:.55}):null,y.map((e,t)=>{const n=function(e){return e.absorb?"absorb":e.portalTarget?"portal":null!=e.capacity?"capacity":"flow"}(e),i=ei[n],c=Math.max(12,e.width-8),l=ni(c-8,22,88),d=ii(e.label,Math.max(8,l-10),a),h="none"!==a&&c-8>=22,g=function(e){if(null!=e.capacity){const t=null!=e.queueDepth?" · q "+e.queueDepth:"";return e.capacityLabel?`${e.capacityLabel}${t}`:`cap ${Number.isInteger(e.capacity)?e.capacity+"":e.capacity.toFixed(1)}${t}`}return e.absorb?"absorb":e.portalTarget?"portal":"flow"}(e),b=ii(g,Math.max(16,c-10),"auto"),w=r&&!1!==e.showBadge&&c>=32,v=null!=e.count?`n=${e.count}${null!=e.processed?" done "+e.processed:""}`:"",M=ii(v,Math.max(16,c-8),"auto"),k=Math.max(30,f-15),$=k-13;return(0,Jr.jsxs)("g",{"data-stage":e.id,"data-role":n,children:[(0,Jr.jsx)("rect",{className:"semiotic-process-chrome__stage-bay",x:e.x0+4,y:f+6,width:c,height:x-12,rx:10,fill:s?"none":i.fill,stroke:i.stroke,strokeWidth:s?1.85:"flow"===n?1:1.6}),y.length-1>t?(0,Jr.jsx)("polygon",{points:`${e.x1-2},${p-7} ${e.x1+8},${p} ${e.x1-2},${p+7}`,fill:i.accent,opacity:.85}):null,h?(0,Jr.jsxs)(Jr.Fragment,{children:[(0,Jr.jsx)("rect",{className:"semiotic-process-chrome__stage-label-bg",x:e.x-l/2,y:$,width:l,height:18,rx:9,fill:"var(--semiotic-bg, #0f172a)",fillOpacity:.75,stroke:i.stroke}),(0,Jr.jsxs)("text",{x:e.x,y:k,textAnchor:"middle",fill:i.accent,fontSize:10,fontWeight:800,className:"semiotic-process-chrome__stage-label",textLength:d.textLength,lengthAdjust:d.textLength?"spacingAndGlyphs":void 0,children:[(0,Jr.jsx)("title",{children:e.label}),d.text]})]}):null,w?(0,Jr.jsxs)("text",{x:e.x,y:f+22,textAnchor:"middle",fill:"var(--semiotic-process-muted, var(--semiotic-text-secondary, #94a3b8))",fontSize:9,fontWeight:700,textLength:b.textLength,lengthAdjust:b.textLength?"spacingAndGlyphs":void 0,children:[(0,Jr.jsx)("title",{children:g}),b.text]}):null,o&&null!=e.count?(0,Jr.jsxs)("text",{x:e.x,y:Math.min(u-8,m+16),textAnchor:"middle",fill:"var(--semiotic-process-text, var(--semiotic-text, #e2e8f0))",fontSize:11,fontWeight:800,textLength:M.textLength,lengthAdjust:M.textLength?"spacingAndGlyphs":void 0,children:[(0,Jr.jsx)("title",{children:v}),M.text]}):null]},e.id)}),i?g.map((e,t)=>{const n=e.total??0,o=e.absorbed??0,r=e.complete??(n>0&&o>=n),i=!r&&n>0&&o/n>=.75,a=r?"rgba(52, 211, 153, 0.35)":i?"rgba(251, 191, 36, 0.28)":"rgba(15, 23, 42, 0.75)",s=r?"#34d399":i?"#fbbf24":"var(--semiotic-border, #64748b)",c=n>0?`${o}/${n}${r?" shipped":i?" almost":""}`:"feature "+(t+1),l=ni(Math.max(54,oi(e.label)+18,oi(c)+16),54,104),u=ii(e.label,l-12,"auto"),d=ii(c,l-12,"auto");return(0,Jr.jsxs)("g",{"data-group":e.id,children:[(0,Jr.jsx)("rect",{x:e.x-l/2,y:e.y-22,width:l,height:44,rx:10,fill:a,stroke:s,strokeWidth:1.5}),(0,Jr.jsxs)("text",{x:e.x,y:e.y-4,textAnchor:"middle",fill:"var(--semiotic-process-text, var(--semiotic-text, #f8fafc))",fontSize:10,fontWeight:800,textLength:u.textLength,lengthAdjust:u.textLength?"spacingAndGlyphs":void 0,children:[(0,Jr.jsx)("title",{children:e.label}),u.text]}),(0,Jr.jsxs)("text",{x:e.x,y:e.y+12,textAnchor:"middle",fill:s,fontSize:9,fontWeight:700,textLength:d.textLength,lengthAdjust:d.textLength?"spacingAndGlyphs":void 0,children:[(0,Jr.jsx)("title",{children:c}),d.text]})]},e.id)}):null]})}function si(e){const t="number"==typeof e?e:"string"==typeof e&&e.trim()?Number(e):NaN;return Number.isFinite(t)?t:null}function ci(e,t,n,o){const r="function"==typeof e?e(t,n):e;return Number.isFinite(r)?Number(r):o}function li(e,t,n){return si(e[t])??n}function ui(e,t){return"number"==typeof e?e:e?.[t]??0}function di(e){const{band:t,idPrefix:n,plot:o,projection:r}=e,{includeBoundaryWalls:i=!0,includeInteriorWalls:a=!0,wallThickness:s=4}=t,c=function(e){const t=e.bandwidth??e.scale.bandwidth?.()??0,n=new Set;for(const o of e.values){const r=e.scale(o);Number.isFinite(r)&&(n.add(Number(r)),n.add(Number(r)+t))}return Array.from(n).sort((e,t)=>e-t)}(t);if(2>c.length)return[];const l=i?c.length-1:c.length-2,u=[];for(let e=i?0:1;l>=e;e+=1){if(!a&&e>0&&c.length-1>e)continue;const t=c[e];u.push({id:`${n}-wall-${e}`,shape:"x"===r?{type:"aabb",x:t,y:o.y+o.height/2,width:s,height:o.height}:{type:"aabb",x:o.x+o.width/2,y:t,width:o.width,height:s}})}return u}function hi(e){const{plot:t,idPrefix:n="physics-scale",bounds:o={},xBins:r,xBands:i,yBands:a}=e,s=[];if(!1!==o&&s.push(...function(e,t={}){const{idPrefix:n="plot",includeFloor:o=!0,includeCeiling:r=!1,includeLeftWall:i=!0,includeRightWall:a=!0,wallThickness:s=20,floorThickness:c=s}=t,l=[],u=e.x+e.width/2,d=e.y+e.height/2;return o&&l.push({id:n+"-floor",shape:{type:"aabb",x:u,y:e.y+e.height+c/2,width:e.width+2*s,height:c}}),r&&l.push({id:n+"-ceiling",shape:{type:"aabb",x:u,y:e.y-c/2,width:e.width+2*s,height:c}}),i&&l.push({id:n+"-left-wall",shape:{type:"aabb",x:e.x-s/2,y:d,width:s,height:e.height+2*c}}),a&&l.push({id:n+"-right-wall",shape:{type:"aabb",x:e.x+e.width+s/2,y:d,width:s,height:e.height+2*c}}),l}(t,{idPrefix:n,...o})),r){const{idPrefix:e,yTop:o,yBottom:i,...a}=r;s.push(...function(e){const{idPrefix:t="bin",count:n,domainStart:o,domainStep:r,xScale:i,yTop:a,yBottom:s,wallThickness:c=4,includeBoundaryWalls:l=!0,includeInteriorWalls:u=!0,closedBefore:d,lidY:h=a,lidThickness:f=Math.max(2,c)}=e,m=[],p=a+(s-a)/2,y=Math.abs(s-a),g=l?n:n-1;if(u||l)for(let e=l?0:1;g>=e;e+=1){if(!u&&e>0&&n>e)continue;const a=i(o+e*r);m.push({id:`${t}-wall-${e}`,shape:{type:"aabb",x:a,y:p,width:c,height:y}})}if(null!=d)for(let e=0;n>e;e+=1){const n=o+e*r,a=n+r;if(a>=d)continue;const s=i(n),l=i(a);m.push({id:`${t}-lid-${e}`,shape:{type:"segment",x1:Math.min(s,l)+c/2,y1:h,x2:Math.max(s,l)-c/2,y2:h,thickness:f}})}return m}({...a,idPrefix:e??n+"-xbin",yTop:o??t.y,yBottom:i??t.y+t.height}))}return i&&s.push(...di({band:i,idPrefix:i.idPrefix??n+"-xband",plot:t,projection:"x"})),a&&s.push(...di({band:a,idPrefix:a.idPrefix??n+"-yband",plot:t,projection:"y"})),s}function fi(e){const{plot:t,rows:n,columns:o=n+1,pegRadius:r=3,idPrefix:i="galton-peg",yStart:a=t.y+.18*t.height,yEnd:s=t.y+.58*t.height,stagger:c=!0,restitution:l=.2,friction:u=.04}=e,d=Math.max(0,Math.floor(n)),h=Math.max(1,Math.floor(o));if(0===d)return[];const f=d>1?(s-a)/(d-1):0,m=t.width/h,p=[];for(let e=0;d>e;e+=1){const n=c&&e%2==1?m/2:0;for(let o=0;h>o;o+=1){const s=t.x+m*(o+.5)+n;t.x+r>s||s>t.x+t.width-r||p.push({id:`${i}-${e}-${o}`,shape:{type:"aabb",x:s,y:a+e*f,width:2*r,height:2*r},restitution:l,friction:u})}}return p}function mi(e,t={}){const{idPrefix:n="physics-token",radius:o=5,shape:r,mass:i,vx:a,vy:s,spawnAt:c,seed:l=1,jitter:u,datum:d}=t,h=R(l),f=ui(u,"x"),m=ui(u,"y");return e.map((e,l)=>{const u=ci(t.x,e,l,li(e,"x",0)),p=ci(t.y,e,l,li(e,"y",0)),y=ci(o,e,l,5),g="function"==typeof r?r(e,l):r??{type:"circle",radius:y};return{id:`${n}-${e.index??l}`,x:u+(h()-.5)*f,y:p+(h()-.5)*m,vx:ci(a,e,l,0),vy:ci(s,e,l,0),mass:ci(i,e,l,1),spawnAt:ci(c,e,l,void 0),shape:g,datum:d?d(e,l):e.datum??e}}).map(e=>{if(Number.isFinite(e.spawnAt))return e;const{spawnAt:t,...n}=e;return n})}function pi(e,t={}){const{idPrefix:n="sediment",collider:o=!0,colliderThickness:r=1,restitution:i=.05,friction:a=.2,...s}=t,c=function(e,t={}){const{baselineY:n=0,binWidth:o=24,gap:r=2,maxHeight:i=80,value:a="count",x:s}=t,c=Math.max(1,...e.map(e=>e[a]));return e.map((e,t)=>{const l=Math.max(0,e[a]/c*i),u=s?.(e,t)??t*(o+r);return{binId:e.id,label:e.label,index:t,count:e.count,total:e.total,x:u,y:n-l,width:o,height:l,meanX:e.x.mean,meanY:e.y.mean}})}(e,s),l=o?c.filter(e=>e.height>0).map(e=>({id:`${n}-${e.binId}`,shape:{type:"aabb",x:e.x+e.width/2,y:e.y+r/2,width:e.width,height:r},restitution:i,friction:a})):[];return{columns:c,colliders:l}}function yi(e,t={}){const{timeAccessor:n="arrivalTime",timeScale:o=1,startAt:r=0,rebase:i=!0,sort:a=!0}=t,s=e.map((e,t)=>({spawn:e,time:function(e,t,n){return si("function"==typeof n?n(e,t):e[n]??e.datum?.[n])}(e,t,n)??e.spawnAt??t})),c=s.length?Math.min(...s.map(e=>e.time)):0;return{initialSpawns:s.map(({spawn:e,time:t})=>({...e,spawnAt:r+(i?t-c:t)})).sort((e,t)=>a?(e.spawnAt??0)-(t.spawnAt??0):0),initialSpawnPacing:{pacing:"arrival",startAt:r,timeAccessor:"spawnAt",timeScale:o}}}function gi(e,t,n="group"){const o=Fo(e,t),r=e=>"function"==typeof n?n(e):e[n]??0;return e.slice().sort((e,t)=>{const n=r(e),i=r(t);return i>n?-1:n>i?1:(o[t.id]||0)-(o[e.id]||0)}).map(e=>e.id)}function xi(e,t={}){const n=t.baseline??.62,o=t.inset??.06,r={},i=e.length;return e.forEach((e,t)=>{r[e]={x:i>1?o+t/(i-1)*(1-2*o):.5,y:n}}),r}function bi(e,t,n=.55){return`M${e.x},${e.y} Q${(e.x+t.x)/2},${e.y-Math.abs(t.x-e.x)*n} ${t.x},${t.y}`}function wi(e,t={}){const n=t.radius??.42,o=t.center?.x??.5,r=t.center?.y??.5,i=t.startAngle??0,a={},s=e.length;return e.forEach((e,t)=>{const c=i+t/s*Math.PI*2-Math.PI/2;a[e]={x:o+Math.cos(c)*n,y:r+Math.sin(c)*n}}),a}function vi(e,t,n={}){const o=(n.order??gi(e,t,n.groupAccessor??"group")).slice(),r=new Map(o.map((e,t)=>[e,t])),i=new Map;for(const e of t){if(!r.has(e.source)||!r.has(e.target)||e.source===e.target)continue;const t=e.target>e.source?`${e.source}\0${e.target}`:`${e.target}\0${e.source}`;i.set(t,(i.get(t)||0)+(e.value??1))}const a=[];let s=0;for(const[e,t]of i){const[n,o]=e.split("\0"),i=r.get(n),c=r.get(o);t>s&&(s=t),a.push({row:i,col:c,source:n,target:o,value:t}),a.push({row:c,col:i,source:o,target:n,value:t})}return{order:o,cells:a,size:o.length,maxValue:s}}function Mi(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function ki(e){if("string"!=typeof e)return;const t=e.trim();return t.length?t:void 0}function $i(e,t){const n=Mi(e.note)?e.note:void 0;return t?ki(e.mobileText)||ki(e.shortText)||ki(e.label)||ki(n?.mobileText)||ki(n?.shortText)||ki(n?.label)||ki(n?.title):ki(e.label)||ki(e.mobileText)||ki(e.shortText)||ki(n?.label)||ki(n?.title)}function Ai(e,t,n){const o=function(e,t,n){if(!n)return;const o="function"==typeof n?n(e,t):e[n];return"number"==typeof o&&Number.isFinite(o)?o:void 0}(e,t,n.priorityAccessor);if(void 0!==o)return o;let r=1e3-t;const i=((e.emphasis??"")+"").toLowerCase();"primary"!==i&&"critical"!==i||(r+=1e4),"secondary"===i&&(r-=1e3),"high"===e.priority&&(r+=5e3),"low"===e.priority&&(r-=1500),"number"==typeof e.priority&&(r+=100*e.priority);const a=Mi(e.provenance)?e.provenance:void 0;"number"==typeof a?.confidence&&(r+=100*a.confidence);const s=Mi(e.lifecycle)?e.lifecycle:void 0,c=((s?.freshness??"")+"").toLowerCase();return"expired"!==c&&"stale"!==c||(r-=3e3),r}function Si(e,t){if(!t)return e;const n=$i(e,!0);return n&&"string"==typeof e.label?{...e,label:n}:e}function Ii(e,t={}){const n=Array.isArray(e)?e.filter(Mi):[],o=t.active??(null==t.width||(t.breakpoint??480)>=t.width),r=t.strategy??"hybrid",i=!1!==t.preferShortText,a=!1!==t.preservePrimary,s=Math.max(0,t.maxPlotAnnotations??t.maxAnnotations??("callout-list"===r?1:2)),c=Math.max(0,t.minPlotAnnotations??t.minVisible??1);if(!o||"plot"===r)return{active:o,strategy:r,budget:n.length,visible:i?n.map(e=>Si(e,i)):n,deferred:[],calloutList:[],hidden:[]};const l=[],u=n.map((e,n)=>({annotation:e,index:n,priority:Ai(e,n,t)})).filter(e=>!!Kt(e.annotation)||(l.push(e.annotation),!1)).sort((e,t)=>t.priority-e.priority),d=a?u.filter(e=>"primary"===((e.annotation.emphasis??"")+"").toLowerCase()):[],h=new Set(d.map(e=>e.index)),f=u.filter(e=>!h.has(e.index)),m=[...d,...f].slice(0,Math.max(s,c)),p=new Set(m.map(e=>e.index)),y=u.filter(e=>!p.has(e.index)),g=[...l,...m.sort((e,t)=>e.index-t.index).map(e=>Si(e.annotation,i))],x=y.sort((e,t)=>e.index-t.index).map(e=>e.annotation),b=Math.max(0,t.maxCalloutItems??6),w=y.filter(e=>!t.calloutFilter||t.calloutFilter(e.annotation,e.index)).map(e=>function(e,t,n,o){const r=$i(e,o);if(!r)return null;const i=ki(e.id)||ki(e.key)||ki(e.pointId)||"annotation-"+(t+1),a=Mi(e.provenance)?ki(e.provenance.source)||ki(e.provenance.authorKind):void 0;return{id:i,label:r,shortLabel:ki(e.shortText),pointId:e.pointId,emphasis:"string"==typeof e.emphasis?e.emphasis:void 0,source:a,priority:n,annotation:e}}(e.annotation,e.index,e.priority,i)).filter(e=>!!e).slice(0,b),v=new Set(w.map(e=>e.annotation)),M=x.filter(e=>!v.has(e));return{active:o,strategy:r,budget:s,visible:g,deferred:x,calloutList:w,hidden:M}}function ji(e){return"dense"===e.density?.75:"compact"===e.density?.9:1}function Ci(e,t){const n=!1!==t.keepAxes,o=!1===t.directLabel?12:28;return"ordinal"===e?{top:12,right:o,bottom:n?44:12,left:n?48:12}:"geo"===e||"network"===e?{top:12,right:12,bottom:12,left:12}:{top:12,right:o,bottom:n?42:14,left:n?44:14}}function Ti(e,t,n,o={}){const r={...n},i={mode:!1===t.mode?void 0:"mobile",...r,margin:Ci(e,t),...o},a=Object.fromEntries(Object.entries(r).filter(([,e])=>void 0!==e)),s=Object.fromEntries(Object.entries(i).filter(([,e])=>void 0!==e)),c=function(e,t){const n=t.targetSize??44,o=[],r=t.standardControls,i=e=>!0===r||"all"===r||r===e||Array.isArray(r)&&r.includes(e);return i("brush")&&o.push("range-inputs","clear-brush"),i("zoom")&&o.push("zoom-buttons","reset-view"),i("legend")&&o.push("legend-chips","show-all-series"),{strategy:`${e}-${t.transformProfile??"overview"}-mobile-recipe`,supportsResponsiveLayout:!0,breakpoints:[320,360,390,430,t.breakpoint??480,768],maxAnnotations:t.maxAnnotations??2,minimumHitTarget:n,summary:t.summary??!0,interaction:{primary:"tap",hoverFallback:"tap-to-lock",targetSize:n,...o.length>0&&{alternatives:o}},labels:{strategy:!1===t.directLabel?"compact":"direct",minFontSize:12}}}(e,t),l=function(e){return{tapToSelect:!0,tapToLockTooltip:!0,clearSelection:"backgroundTap",targetSize:e.targetSize??44,snap:e.snap??"nearestDatum",brushHandleSize:e.targetSize??44,standardControls:e.standardControls??!1}}(t);return{family:e,props:a,responsiveRules:[{id:e+"-mobile",description:`Apply Semiotic's mobile ${e} recipe at phone width.`,when:{maxWidth:t.breakpoint??480},transform:{...s,mobileInteraction:l,mobileSemantics:c}}],mobileInteraction:l,mobileSemantics:c}}function zi(e={}){const t=ji(e);return Ti("line",e,{showLegend:e.showLegend??!1,directLabel:e.directLabel??!0,lineWidth:"inspect"===e.transformProfile?3:Math.max(1.5,2.5*t),showPoints:"inspect"===e.transformProfile,autoPlaceAnnotations:{mobile:{strategy:"callout-list",maxAnnotations:e.maxAnnotations??2,maxCalloutItems:e.maxCalloutItems??4,progressiveDisclosure:!0,preferShortText:!0}}},{showAxes:e.keepAxes??!0,axisExtent:"exact"})}function Li(e={}){const t=ji(e);return Ti("area",e,{showLegend:e.showLegend??!1,showPoints:!1,areaOpacity:"compare"===e.transformProfile?.55:.42,lineWidth:Math.max(1.25,2*t),autoPlaceAnnotations:{mobile:{strategy:"callout-list",maxAnnotations:e.maxAnnotations??2,maxCalloutItems:e.maxCalloutItems??4,progressiveDisclosure:!0,preferShortText:!0}}},{showAxes:e.keepAxes??!0,axisExtent:"exact"})}function Ei(e={}){return Ti("ordinal",e,{showLegend:e.showLegend??!1,showCategoryTicks:e.keepAxes??!0,sort:"compare"===e.transformProfile?"desc":void 0},{showAxes:e.keepAxes??!0,axisExtent:"exact"})}function Ni(e={}){const t=ji(e);return Ti("scatter",e,{showLegend:e.showLegend??!1,pointRadius:Math.max(4,Math.round((e.targetSize??44)/8*t)),hoverRadius:Math.ceil((e.targetSize??44)/2),pointOpacity:"dense"===e.density?.42:.68,autoPlaceAnnotations:{mobile:{strategy:"callout-list",maxAnnotations:e.maxAnnotations??1,maxCalloutItems:e.maxCalloutItems??4,progressiveDisclosure:!0,preferShortText:!0}}},{showAxes:e.keepAxes??!0,axisExtent:"exact"})}function Ri(e={}){const t=ji(e);return Ti("network",e,{showLegend:e.showLegend??!1,nodeSizeRange:[Math.max(4,Math.round(6*t)),Math.max(12,Math.round((e.targetSize??44)/2*t))],showLabels:"inspect"===e.transformProfile,edgeOpacity:"dense"===e.density?.28:.44})}function Fi(e={}){return Ti("geo",e,{showLegend:e.showLegend??!1})}function Pi(e={}){return Ti("small-multiple",e,{mobileColumns:e.mobileColumns??1,tabletColumns:e.tabletColumns??2,chartHeight:e.chartHeight??180,sharedExtent:!0})}function Wi(e,t={}){switch(e){case"line":return zi(t);case"area":return Li(t);case"ordinal":return Ei(t);case"scatter":return Ni(t);case"network":return Ri(t);case"geo":return Fi(t);case"small-multiple":return Pi(t)}}function qi(e={}){const t=e.controls??["range-inputs","chip-filter","clear"];return{mobileInteraction:{enabled:!0,targetSize:e.targetSize??44,tapToSelect:!0,tapToLockTooltip:!0,standardControls:"brush"},mobileSemantics:{interaction:{primary:"filter",alternatives:t,summary:e.summary??"Expose brushable ranges through touch-sized controls in addition to drag gestures."}},controls:t}}var Oi=c(require("react")),Di=require("react/jsx-runtime");function Bi({def:e,color:t,accent:n,paintOverride:o}){return(0,Di.jsx)(Di.Fragment,{children:e.parts.map((e,r)=>{const i=o?"none"===e.fill?void 0:o:bo(e.fill,t,n),a=o?e.stroke&&"none"!==e.stroke?o:void 0:bo(e.stroke??"none",t,n);return i||a?(0,Di.jsx)("path",{d:e.d,fill:i??"none",stroke:a,strokeWidth:a?e.strokeWidth??1:void 0,strokeLinecap:e.strokeLinecap,strokeLinejoin:e.strokeLinejoin,opacity:e.opacity},r):null})})}function Yi({def:e,size:t=24,color:n="currentColor",accent:o="#ffffff",fraction:r=1,fractionStart:i=0,fractionDirection:a="horizontal",ghostColor:s,x:c=0,y:l=0,opacity:u,className:d}){const h=Oi.useId();if(!e?.parts?.length)return null;const[,f]=e.viewBox??po,m=t/(f>0?f:1);if(0>=m)return null;const p=wo(e,r,i,a),y=p?"glyph-clip"+h.replace(/[^A-Za-z0-9_-]/g,"_"):void 0;return(0,Di.jsxs)("g",{className:d,transform:`translate(${c} ${l}) scale(${m})`,opacity:u,"aria-hidden":"true",children:[p&&y&&(0,Di.jsx)("clipPath",{id:y,children:(0,Di.jsx)("rect",{x:p.x,y:p.y,width:p.width,height:p.height})}),p&&s?(0,Di.jsx)(Bi,{def:e,color:n,accent:o,paintOverride:s}):null,p&&y?(0,Di.jsx)("g",{clipPath:`url(#${y})`,children:(0,Di.jsx)(Bi,{def:e,color:n,accent:o})}):(0,Di.jsx)(Bi,{def:e,color:n,accent:o})]})}
|
|
1
|
+
var e,t=Object.create,n=Object.defineProperty,o=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,s=(e,t,i,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let c of r(t))a.call(e,c)||c===i||n(e,c,{get:()=>t[c],enumerable:!(s=o(t,c))||s.enumerable});return e},c=(e,o,r)=>(r=null!=e?t(i(e)):{},s(!o&&e&&e.__esModule?r:n(r,"default",{value:e,enumerable:!0}),e)),l={};((e,t)=>{for(var o in t)n(e,o,{get:t[o],enumerable:!0})})(l,{DEFAULT_AREA_PER_ANNOTATION:()=>Zt,DEFAULT_GLYPH_ANCHOR:()=>Do,DEFAULT_GLYPH_VIEWBOX:()=>qo,DEFAULT_HIT_RADIUS:()=>io,DEFAULT_ISOMETRIC_SPRITE_SIZES:()=>Pe,GRID_FUEL_KEYS:()=>An,GRID_FUEL_LABELS:()=>Sn,Glyph:()=>ma,LayoutCache:()=>b,SYMBOL_SEQUENCE:()=>J,TAU:()=>jo,absorbRegion:()=>qr,activeCountOverDomain:()=>Yn,addPoints:()=>Fo,adjacencyMatrix:()=>_i,aggregateRegionCounts:()=>kr,allocateCells:()=>C,angleScale:()=>To,annotationBudget:()=>tn,annotationDensity:()=>on,annotationLayout:()=>$n,arcLayout:()=>Yi,arcPath:()=>Hi,arrivalReplay:()=>Di,axisFixedForceLayout:()=>oo,axisFixedForcePositions:()=>no,bandLabel:()=>pt,betweenness:()=>dr,bfsDistances:()=>cr,bobaLayout:()=>Vt,bodyGroupSpec:()=>Br,boundsOf:()=>ft,boxEdgeAnchors:()=>Xn,buildAdjacency:()=>ar,buildTooltipEntries:()=>tr,bulletLayout:()=>Lt,calendarLayout:()=>Ce,capacitatedRegion:()=>Wr,chargeGateRegion:()=>Fr,circularLayout:()=>Vi,clamp:()=>$,closeness:()=>hr,clustering:()=>fr,collidersFromScales:()=>Pi,comparePhysicsTrace:()=>ri,composePhysicsControllers:()=>vi,createCapacityQueueController:()=>mi,createDependencyGateController:()=>wi,createPortalController:()=>ki,createProcessJourneyLedger:()=>ai,createServiceLevelController:()=>bi,createServiceResourcePoolController:()=>gi,cubicPath:()=>Zn,cubicPoint:()=>Kn,cubicTangent:()=>Qn,curvedEdgePath:()=>_n,cyclicRangeContains:()=>go,dagreLayout:()=>et,degree:()=>sr,demandForecastRows:()=>Ln,diagnoseTokenEncoding:()=>G,dimFor:()=>g,egoNetwork:()=>ur,estimateLabelWidth:()=>Mo,extractTooltipDatum:()=>er,fanOutBend:()=>Un,flextreeLayout:()=>Je,forceFieldRegion:()=>Dr,forceLayout:()=>P,forceLayoutAsync:()=>vr,formatMw:()=>Wn,formatReservePct:()=>On,formatTooltipValue:()=>nr,galtonPegs:()=>Wi,generateTokens:()=>V,geoAreaHitTarget:()=>lo,geoHitTarget:()=>co,glyphExtent:()=>Yo,glyphFractionClipRect:()=>Vo,glyphPlacement:()=>Bo,gridEventAnnotations:()=>Rn,groupBy:()=>m,groupCompletionRows:()=>Ar,hatchFill:()=>yt,hitTargetPoint:()=>so,hitTargetRect:()=>uo,hullFromBoxes:()=>mt,intervalLanesLayout:()=>Vn,isometricLandmarkLayout:()=>Ge,isotypeBoltGlyph:()=>le,isotypeBusGlyph:()=>ue,isotypeChipGlyph:()=>ce,isotypeGhost:()=>ae,isotypeInk:()=>re,isotypeNetworkGlyphs:()=>fe,isotypePaper:()=>ie,isotypePersonGlyph:()=>he,isotypePersonPath:()=>de,isotypeServerGlyph:()=>se,layoutChipStrip:()=>wo,layoutSequence:()=>bo,layoutTokenGrid:()=>_,legendGroupsFrom:()=>Ko,legendSwatches:()=>Qo,lineageDagLayout:()=>it,linearAxis:()=>gt,makeShade:()=>w,marimekkoLayout:()=>It,markCallout:()=>xt,matchesHighlight:()=>y,mean:()=>S,membraneRegion:()=>Er,mermaidDagLayout:()=>ut,mobileAnnotationStrategy:()=>Zi,mobileAreaChartRecipe:()=>oa,mobileBrushAlternatives:()=>ua,mobileChartFamilyRecipe:()=>la,mobileGeoChartRecipe:()=>sa,mobileLineChartRecipe:()=>na,mobileNetworkChartRecipe:()=>aa,mobileOrdinalChartRecipe:()=>ra,mobileScatterplotRecipe:()=>ia,mobileSmallMultipleRecipe:()=>ca,mulberry32:()=>F,networkHitTarget:()=>ho,nonNegativeFinite:()=>A,normalizePoint:()=>Oo,normalizeScores:()=>mr,normalizeTokenEncoding:()=>B,orderByGroupDegree:()=>Bi,orthogonalEdgePath:()=>Gn,packIntervals:()=>Bn,packSpanLevels:()=>vo,packedClusterMatrix:()=>kt,parallelCoordinatesLayout:()=>zt,partitionSharedEdges:()=>So,physicsReferenceEnvelope:()=>Jr,pointMagnitude:()=>Wo,polarToXY:()=>Co,portalRegion:()=>Or,pressureFieldRegion:()=>Pr,processChrome:()=>Ti,processJourneyRows:()=>ci,processLaneWalls:()=>Yr,processStageLayout:()=>Tr,processStageRegions:()=>zr,processVolumePolygons:()=>jr,proximityProblem:()=>pr,radiusScale:()=>No,readField:()=>h,rectCollide:()=>Jn,regionCountsToProjectionRows:()=>$r,reserveAnnotationBands:()=>En,reserveMarginPct:()=>Tn,reserveSeries:()=>Nn,ringArcPath:()=>zo,roundedEnclosure:()=>ht,routeSurfaceRegion:()=>Rr,runLengthEncode:()=>mo,runs:()=>fo,scaleArcBand:()=>ko,scalePoint:()=>Po,sedimentBake:()=>qi,selectCyclicRange:()=>xo,selectIsometricLandmarks:()=>_e,shade:()=>M,shortestArcDelta:()=>yo,shortestPath:()=>lr,signatureKey:()=>x,spanArcPath:()=>$o,spanArcPeakY:()=>Ao,spawnFromTokens:()=>Oi,stackFuelSeries:()=>Cn,stageTargetInVolume:()=>Ir,subtractPoints:()=>Ro,suggestTokenEncoding:()=>K,summarizeOperatingPoint:()=>Fn,symbolExtent:()=>oe,symbolPathString:()=>ee,symbolRadius:()=>te,thresholdBandsForReserve:()=>zn,tightestHours:()=>Pn,tokenLayer:()=>Se,tokenTaskIntentToCapabilityIntents:()=>U,unitize:()=>N,unitizeRange:()=>z,unwrapDatum:()=>f,updateProcessJourney:()=>si,useCustomLayoutSelection:()=>Fe,waffleLayout:()=>j,withAlpha:()=>I,wrapValue:()=>po,xyToAngle:()=>Lo}),module.exports=(e=l,s(n({},"__esModule",{value:!0}),e));var u=require("d3-interpolate");function d(e){return"function"==typeof e?e:t=>t[e]}function h(e,t,n){const o=e?.data,r=o?o[t]:void 0;if(null!=r)return r;const i=e?.[t];return null==i?n:i}function f(e){return null==e?null:e.data??e.datum??e}function m(e,t){const n=new Map;for(const o of e){const e=t(o),r=n.get(e);r?r.push(o):n.set(e,[o])}return n}function p(e){const t=Object.create(null);return e((e,n)=>{t[e]=n}),t}function y(e,t){if(!t)return!0;const n=Array.isArray(t)?t:[t],o=e;for(const e of n)if(null!=e.value&&o[e.field]+""!=e.value+"")return!1;return!0}function g(e,t={}){const n=t.baseOpacity??1;return t.highlight||t.predicate?!y(e,t.highlight)||t.predicate&&!t.predicate(e)?t.dimOpacity??.16:Math.min(1,n+(t.brighten??0)):n}function x(e){return e.join("|")}var b=class{constructor(e=12){this.maxSize=e,this.store=new Map}get(e){return this.store.get(e)}set(e,t){this.maxSize>this.store.size||this.store.clear(),this.store.set(e,t)}getOrCompute(e,t){const n=this.store.get(e);if(void 0!==n)return n;const o=t();return this.set(e,o),o}clear(){this.store.clear()}get size(){return this.store.size}};function w(e,t=.72){const n=(0,u.interpolateLab)(e,"#ffffff"),o=(0,u.interpolateLab)(e,"#000000"),r=(0,u.interpolateLab)(e,e)(0);return e=>{const i=0>e?0:e>1?1:e;return.5===i?r:.5>i?n(2*(.5-i)*t):o(2*(i-.5)*t)}}function M(e,t,n=.72){return w(e,n)(t)}function v(e){return p(t=>{for(const[n,o]of Object.entries(e))t(n,o)})}function k(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")||"item"}function $(e,t,n){return Math.max(t,Math.min(n,e))}function A(e){const t=Number(e);return Number.isFinite(t)?Math.max(0,t):0}function S(e){if(0===e.length)return 0;let t=0;for(const n of e)t+=n;return t/e.length}function I(e,t){const n=$(t,0,1),o=e.trim().replace(/^#/,""),r=3===o.length?o.split("").map(e=>e+e).join(""):o;return/^[0-9a-fA-F]{6}$/.test(r)?`rgba(${parseInt(r.slice(0,2),16)}, ${parseInt(r.slice(2,4),16)}, ${parseInt(r.slice(4,6),16)}, ${n})`:e}var j=e=>{const t=e.config,n=t.rows??10,o=t.columns??10,r=t.gutter??2,i=n*o;if(0>=n||0>=o||0>=i)return{nodes:[]};const{plot:a}=e.dimensions;if(0>=a.width||0>=a.height)return{nodes:[]};const s=(a.width-r*(o-1))/o,c=(a.height-r*(n-1))/n;if(0>=s||0>=c)return{nodes:[]};const l=(null==(u=t.categoryAccessor)?null:"function"==typeof u?u:e=>e[u])??(()=>"_default");var u;const d=function(e){return null==e?null:"function"==typeof e?e:t=>Number(t[e])}(t.valueAccessor)??(()=>1),h=new Map,f=[];for(const t of e.data){const e=l(t)+"",n=Number(d(t)),o=Number.isFinite(n)?Math.max(0,n):0;h.has(e)||f.push(e),h.set(e,(h.get(e)??0)+o)}const m=Array.from(h.values()).reduce((e,t)=>e+t,0);if(0>=m)return{nodes:[]};let y;if(t.categoryOrder&&t.categoryOrder.length>0){const e=new Set,n=[];for(const o of t.categoryOrder)h.has(o)&&!e.has(o)&&(e.add(o),n.push(o));y=[...n,...f.filter(t=>!e.has(t))]}else y=f;if(0===y.length)return{nodes:[]};const g=y.map(e=>({cat:e,exact:(h.get(e)??0)/m*i})).map(e=>({...e,count:Math.floor(e.exact)})),x=g.reduce((e,t)=>e+t.count,0),b=g.map((e,t)=>({i:t,rem:e.exact-e.count})).sort((e,t)=>t.rem-e.rem);for(let e=0;i-x>e;e++)g[b[e%b.length].i].count+=1;const w="string"==typeof t.categoryAccessor?t.categoryAccessor:"category",M="string"==typeof t.valueAccessor?t.valueAccessor:"value",v=(e,t,n)=>p(o=>{o("category",e),o("value",h.get(e)??0),o("share",(h.get(e)??0)/m),"category"!==w&&o(w,e),"value"!==M&&o(M,h.get(e)??0),o("cells",n),o("_waffleCategory",e),o("_waffleIndex",t)}),k=[];let $=0;for(const t of g){const i=e.resolveColor(t.cat);for(let e=0;t.count>e;e++)k.push({type:"rect",x:a.x+$%o*(s+r),y:a.y+(n-1-Math.floor($/o))*(c+r),w:s,h:c,style:{fill:i,stroke:"none"},datum:v(t.cat,$,t.count),group:t.cat,_transitionKey:`waffle-${t.cat}-${e}`}),$++}return{nodes:k}};function C(e,t,n){const o=Math.max(0,Math.floor(n?.minPerCategory??0)),r=e.reduce((e,t)=>e+Math.max(0,t.weight),0);if(0>=t||0>=r)return e.map(e=>({...e,exact:0,cells:0,remainder:0}));const i=e.map(e=>{const n=Math.max(0,e.weight)/r*t;return{...e,exact:n,cells:Math.max(o,Math.floor(n)),remainder:n-Math.floor(n)}});let a=i.reduce((e,t)=>e+t.cells,0);for(;a>t;){const e=i.filter(e=>e.cells>o).sort((e,t)=>t.cells-e.cells||e.remainder-t.remainder||e.key.localeCompare(t.key))[0];if(!e)break;e.cells--,a--}const s=[...i].sort((e,t)=>t.remainder-e.remainder||t.weight-e.weight||e.key.localeCompare(t.key));for(let e=0;t>a;e++)s[e%s.length].cells++,a++;return i}var L=1e-6;function T(e){return Number.isFinite(e)?Math.max(0,e):0}function N(e,t){const n=Number(t.unit),o=T(e),r=t.maxUnits??1/0,i=t.minFraction??0;if(0>=n||0>=r||0>=o)return{units:[],unit:n>0?n:0,total:o,shown:0,overflow:o>0&&!(r>0)};const a=Math.ceil(o/n-L),s=Math.min(r,a),c=a>r,l=[];for(let e=0;s>e;e+=1){const t=e*n;let r=Math.min(1,Math.max(0,(Math.min(o,t+n)-t)/n));L>1-r&&(r=1),l.push({index:e,fraction:r,start:t,end:t+r*n,value:r*n})}const u=l[l.length-1];u&&i>u.fraction&&1>u.fraction&&l.pop();const d=l.reduce((e,t)=>e+t.value,0);return{units:l,unit:n,total:o,shown:d,overflow:c}}function z(e,t,n){const o=N(e,n),r=Math.max(T(t),o.total);if(o.total>=r)return{...o,rangeUnits:[],rangeTotal:o.total};const i=N(r,{unit:n.unit,maxUnits:n.maxUnits}),a=i.unit>0?o.total/i.unit:0,s=Math.floor(a+L);let c=Math.min(1,Math.max(0,a-s));L>c&&(c=0);const l=[];for(const e of i.units)s>e.index||(e.index===s&&c>0?e.fraction-c>L&&l.push({...e,startFraction:c,start:e.index*i.unit+c*i.unit,value:(e.fraction-c)*i.unit}):l.push({...e,startFraction:0}));return{...o,overflow:o.overflow||i.overflow,rangeUnits:l,rangeTotal:r}}var E=require("d3-force");function F(e){let t=e>>>0;return function(){t=t+1831565813|0;let e=Math.imul(t^t>>>15,1|t);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296}}var R=1e3;function P(e,t,n={}){const o=n.iterations??260,r=n.repulsion??5200,i=n.linkDistance??165,a=n.linkStrength??.045,s=n.centerStrength??.018,c=n.damping??.84,l=n.nodeRadius??12,u=n.nodePadding??3,d=n.inset??.06,h=F(n.seed??1),f=new Map;for(const t of e)f.set(t.id,0);for(const e of t)f.set(e.source,(f.get(e.source)??0)+1),f.set(e.target,(f.get(e.target)??0)+1);const m=R/2,p=e.map(e=>({id:e.id,data:e,x:200+600*h(),y:200+600*h()})),y=new Set(e.map(e=>e.id)),g=t.filter(e=>y.has(e.source)&&y.has(e.target)).map(e=>({source:e.source,target:e.target}));if(o>0){const e=(0,E.forceSimulation)(p).randomSource(h).alphaDecay(1-Math.pow(.001,1/o)).velocityDecay(Math.max(0,Math.min(1,1-c))).force("charge",(0,E.forceManyBody)().strength(e=>{const t=f.get(e.id)??0;return 2.5*-Math.sqrt(r)*Math.sqrt(t+1)})).force("collide",(0,E.forceCollide)(e=>(e=>"function"==typeof l?l(e.data):l)(e)+u).strength(.9).iterations(2)).force("center",(0,E.forceCenter)(m,m).strength(.8)).force("x",(0,E.forceX)(m).strength(s)).force("y",(0,E.forceY)(m).strength(s));g.length>0&&e.force("link",(0,E.forceLink)(g).id(e=>e.id).distance(i).strength(e=>{const t="string"==typeof e.target?e.target:e.target.id,n=Math.max(1,Math.min(f.get("string"==typeof e.source?e.source:e.source.id)??1,f.get(t)??1));return a/.045/n})),e.stop();for(let t=0;o>t;t+=1)e.tick()}let x=1/0,b=1/0,w=-1/0,M=-1/0;for(const e of p){const t=e.x??m,n=e.y??m;x>t&&(x=t),b>n&&(b=n),t>w&&(w=t),n>M&&(M=n)}const v=w-x,k=M-b,$={};for(const e of p)$[e.id]={x:0===v?.5:d+((e.x??m)-x)/v*(1-2*d),y:0===k?.5:d+((e.y??m)-b)/k*(1-2*d)};return $}var W=80,O=100;function q(e){return e?e.map(Number).filter(Number.isFinite):[]}function D(e){if("fixed-denominator"===e.countStrategy)return 1/0;const t=e.maxTokens??1/0;return t>0?Math.floor(t):0}function B(e){const t=e.unitValue??e.unit,n=e.icon??e.token;return{...e,...null!=t&&{unitValue:t},...null!=n&&{icon:n}}}function Y(e){if(e.samples)return q(e.samples);if(!e.data||!e.valueAccessor)return[];const t=e.valueAccessor;return e.data.map(e=>"function"==typeof t?t(e):Number(e[t])).filter(Number.isFinite)}function H(e,t,n,o={}){return{index:t,tokenType:e.tokenType,tokenSemantics:e.tokenSemantics,countStrategy:e.countStrategy,fraction:1,startFraction:0,value:n,start:t,end:t+n,unitValue:e.unitValue,unitMeaning:e.unitMeaning,...o}}function V(e,t){const n=B(t),o=function(e){return"number"==typeof e?{value:e}:Array.isArray(e)?{samples:q(e),data:e}:e}(e);let r,i,a,s,c,l,u,d=0,h=!1;if("unitized"===n.countStrategy){c=n.unitValue??1;const e={unit:c,maxUnits:n.maxTokens,minFraction:n.minFraction},t=null==o.rangeValue?N(A(o.value),e):z(A(o.value),A(o.rangeValue),e);r=t.units.map(e=>H(n,e.index,e.value,{fraction:e.fraction,start:e.start,end:e.end,unitValue:t.unit})),i=t.total,d=t.shown,h=t.overflow,null!=o.rangeValue&&(l=t.rangeTotal,u=t.rangeUnits.map(e=>H(n,e.index,e.value,{fraction:e.fraction,startFraction:e.startFraction,start:e.start,end:e.end,unitValue:t.unit,range:"scenario"})))}else if("fixed-denominator"===n.countStrategy){s=Math.floor(A(o.denominator??n.denominator)),a=A(o.numerator??n.numerator??o.value);const e=Math.min(s,Math.max(0,Math.round(a)));r=Array.from({length:s},(t,o)=>H(n,o,1,{highlighted:e>o,start:o,end:o+1})),i=s,d=r.length,h=!1}else if("quantile"===n.countStrategy){const e=Y(o).sort((e,t)=>e-t),t=Math.max(0,Math.floor(n.tokenCount??50)),a=e.length>0?Math.min(t,D(n)):0;r=Array.from({length:a},(t,o)=>{const r=(o+.5)/a,i=function(e,t){const n=e.length;if(0===n)return 0;if(1===n)return e[0];const o=(n-1)*Math.min(1,Math.max(0,t)),r=Math.floor(o),i=o-r;return e[r]*(1-i)+e[Math.ceil(o)]*i}(e,r);return H(n,o,i,{sample:i,quantile:r,start:i,end:i})}),i=e.length,d=r.length,h=e.length>0&&t>r.length}else if("sample"===n.countStrategy||"posterior-sample"===n.countStrategy||"random-sample"===n.countStrategy){const e=Y(o),t=Math.min(e.length,Math.max(0,Math.floor(n.tokenCount??e.length))),a=Math.min(t,D(n));r=("random-sample"===n.countStrategy?function(e,t=1){const n=Array.from({length:e},(e,t)=>t),o=F(Math.floor(t)||1);for(let e=n.length-1;e>0;e-=1){const t=Math.floor(o()*(e+1)),r=n[e];n[e]=n[t],n[t]=r}return n}(e.length,n.seed).slice(0,a):Array.from({length:a},(t,n)=>Math.floor(n/Math.max(1,a-1)*(e.length-1)))).map((t,o)=>{const r=e[t];return H(n,o,r,{sample:r,start:r,end:r})}),i=e.length,d=r.length,h=t>r.length}else{const e=o.data;if(e&&null==o.value)r=e.map((e,t)=>H(n,t,1,{datum:e})),i=e.length;else{const e=N(A(o.value),{unit:1,maxUnits:n.maxTokens,minFraction:n.minFraction});r=e.units.map(e=>H(n,e.index,e.value,{fraction:e.fraction,start:e.start,end:e.end,unitValue:1})),i=e.total,d=e.shown,h=e.overflow}if(e&&null==o.value){const e=function(e,t){const n=D(t);return e.length>n?{tokens:e.slice(0,n),overflow:!0}:{tokens:e,overflow:!1}}(r,n);r=e.tokens,d=r.length,h=e.overflow}}return{tokens:r,encoding:n,total:i,shown:d,overflow:h,numerator:a,denominator:s,unitValue:c,rangeTotal:l,rangeTokens:u,diagnostics:G(n,{visibleTokens:r.length+(u?.length??0)})}}function _(e,t={}){const n=Array.isArray(e)?e:e.tokens,o=n.length;if(0===o)return[];const r=t.flow??"row",i=t.cellWidth??16,a=t.cellHeight??i,s=t.gutter??2,c=t.anchor??[.5,.5],l=Math.max(1,Math.floor(t.columns??Math.ceil(t.rows?o/t.rows:Math.sqrt(o)))),u=Math.max(1,Math.floor(t.rows??Math.ceil(o/l))),d="row"===r?Math.max(u,Math.ceil(o/l)):u,h="column"===r?Math.max(l,Math.ceil(o/u)):l,f=t.x??0,m=t.y??0;return n.map((e,n)=>{let o,p;return"column"===r?(p=Math.floor(n/u),o=n%u):(o=Math.floor(n/l),p=n%l),"left"===t.columnDirection&&(p=h-1-p),"up"===t.rowDirection&&(o=d-1-o),{...e,row:o,column:p,x:f+p*(i+s)+c[0]*i,y:m+o*(a+s)+c[1]*a}})}function G(e,t={}){const n=[],o=e.tokenSemantics,r=e.countStrategy,i=t.maxRecommendedTokens??("fixed-denominator"!==r||A(e.denominator)>O?W:O);return o||n.push({code:"TOKEN_SEMANTICS_UNCLEAR",severity:"warning",message:"Every tokenized encoding should state what one token represents."}),r||n.push({code:"MISSING_COUNT_STRATEGY",severity:"warning",message:"Every tokenized encoding should state how token counts are produced."}),"icon"!==e.tokenType&&"glyph"!==e.tokenType||"icon-only"!==e.labelPolicy&&"token-only"!==e.labelPolicy||n.push({code:"ICON_ONLY_LABELS",severity:"warning",message:"Icons should supplement text labels, not replace them."}),null!=t.visibleTokens&&t.visibleTokens>i&&n.push({code:"TOO_MANY_VISIBLE_TOKENS",severity:"warning",message:`This encoding renders ${t.visibleTokens} visible tokens. Consider unitizing, sampling, or a hybrid bar/token view.`}),"decorative"!==o||"icon"!==e.tokenType&&"glyph"!==e.tokenType||n.push({code:"DECORATIVE_PICTOGRAPHS",severity:"warning",message:"Decorative pictographs can harm recall and speed when they do not clarify the data."}),"unitized-measure"===o&&r&&"unitized"!==r&&n.push({code:"TOKEN_STRATEGY_MISMATCH",severity:"warning",message:"Unitized measures should use the unitized count strategy so each token has a stable value."}),"risk-case"===o&&r&&"fixed-denominator"!==r&&n.push({code:"TOKEN_STRATEGY_MISMATCH",severity:"warning",message:"Risk cases are usually clearest as a fixed-denominator natural frequency."}),"possible-outcome"!==o&&"posterior-sample"!==o&&"hypothetical-case"!==o||!r||"quantile"===r||"sample"===r||"posterior-sample"===r||"random-sample"===r||n.push({code:"TOKEN_STRATEGY_MISMATCH",severity:"warning",message:"Outcome/sample tokens should come from quantiles or samples, not from a unitized magnitude."}),"unitized-measure"===o&&"unitized"===r&&null==e.unitValue&&null==e.unit&&n.push({code:"MISSING_UNIT_VALUE",severity:"warning",message:"Unitized measures should set unitValue so each token has a declared value."}),"unitized-measure"!==o||"unitized"!==r||e.unitMeaning||n.push({code:"MISSING_UNIT_MEANING",severity:"info",message:"Add unitMeaning so readers know what one full token represents."}),n}function X(e){return"measure"===e?"precise-comparison":"estimate probability"===e?"probability-estimation":"understand risk"===e?"risk-communication":"remember"===e?"memory":"decide"===e?"support-decision":e}function U(e){const t=X(e);return"precise-comparison"===t?["compare-categories","rank"]:"probability-estimation"===t?["distribution"]:"risk-communication"===t?["part-to-whole","distribution"]:"frequency-reasoning"===t?["distribution","compare-categories"]:"memory"===t||"editorial-engagement"===t?["compare-categories"]:"public-explanation"===t||"support-decision"===t?["distribution","compare-categories"]:["compare-categories"]}function K(e){const t=X(e.taskIntent),n="small"===(o=e.availableSpace)?25:"large"===o?100:50;var o;if("precise-comparison"===t)return{recommendedEncoding:"bar-or-line",rationale:"Use continuous position/length encodings when precise magnitude comparison is the primary task.",warnings:[],alternatives:["hybrid-bar-token","unitized-measure"]};if("probability-estimation"===t){const e={tokenType:"dot",tokenSemantics:"possible-outcome",countStrategy:"quantile",tokenCount:n,layout:"dotplot",labelPolicy:"text-plus-token"};return{recommendedEncoding:"quantile-dotplot",tokenEncoding:e,rationale:"This task asks readers to estimate probability from a distribution. Quantile tokens turn probability mass into countable possible outcomes.",warnings:G(e),alternatives:["cdf-with-threshold","density-with-threshold"]}}if("risk-communication"===t){const t={tokenType:e.concreteEntity?"icon":"dot",icon:e.concreteEntity,tokenSemantics:"risk-case",countStrategy:"fixed-denominator",denominator:100,layout:"waffle",labelPolicy:"text-plus-token"};return{recommendedEncoding:"fixed-denominator-icon-array",tokenEncoding:t,rationale:"Risk is often clearer as natural frequency: highlighted cases out of a fixed denominator.",warnings:G(t,{visibleTokens:100,maxRecommendedTokens:100}),alternatives:["labeled-percent","bar-with-risk-threshold"]}}if("memory"===t||"editorial-engagement"===t){const t={tokenType:e.concreteEntity?"glyph":"icon",icon:e.concreteEntity,tokenSemantics:"unitized-measure",countStrategy:"unitized",unitValue:1,layout:"grid",labelPolicy:"text-plus-token",unitMeaning:e.concreteEntity?"one token represents a unit of "+e.concreteEntity:"one token represents one unit"};return{recommendedEncoding:"semantic-isotype",tokenEncoding:t,rationale:"Semantic tokens are useful when the chart needs to make a topic concrete and memorable.",warnings:G(t),alternatives:["labeled-bar","hybrid-bar-token"]}}if("frequency-reasoning"===t||"public-explanation"===t||"support-decision"===t){const t={tokenType:e.concreteEntity?"icon":"dot",icon:e.concreteEntity,tokenSemantics:"distribution"===e.dataType?"possible-outcome":"unitized-measure",countStrategy:"distribution"===e.dataType?"quantile":"unitized",unitValue:"distribution"===e.dataType?void 0:1,tokenCount:n,layout:"distribution"===e.dataType?"dotplot":"bar-segment",labelPolicy:"text-plus-token",unitMeaning:"distribution"===e.dataType?void 0:"one token represents one unit interval"};return{recommendedEncoding:"hybrid-continuous-token",tokenEncoding:t,rationale:"A hybrid view preserves measurement while adding countable tokens for explanation and decisions.",warnings:G(t),alternatives:["bar-or-line","quantile-dotplot","fixed-denominator-icon-array"]}}return{recommendedEncoding:"bar-or-line",rationale:"Use continuous encodings unless the task needs frequency, risk, memory, or outcome reasoning.",warnings:[],alternatives:["unitized-measure","quantile-dotplot","fixed-denominator-icon-array"]}}var Q=require("d3-shape"),Z={circle:Q.symbolCircle,square:Q.symbolSquare,triangle:Q.symbolTriangle,diamond:Q.symbolDiamond,star:Q.symbolStar,cross:Q.symbolCross,wye:Q.symbolWye},J=["circle","triangle","diamond","star","square","chevron","cross","wye"];function ee(e,t,n){if(n)return n;const o=e??"circle";return"chevron"===o?function(e){const t=1.5*te(e),n=.92*t;return`M0,${-t}L${n},${(.78*t).toFixed(3)}L0,${(.28*t).toFixed(3)}L${-n},${(.78*t).toFixed(3)}Z`}(t):(0,Q.symbol)(Z[o]??Q.symbolCircle,Math.max(1,t))()??""}function te(e){return Math.sqrt(Math.max(1,e)/Math.PI)}var ne=new Map;function oe(e,t,n){if(!n&&"circle"===(e??"circle"))return te(t);const o=n?"p:"+n:`${e}:${Math.round(t)}`,r=ne.get(o);if(null!=r)return r;const i=(n??ee(e,t)).match(/-?\d*\.?\d+(?:e-?\d+)?/gi);let a=0;if(i)for(let e=0;i.length>e+1;e+=2){const t=+i[e],n=+i[e+1],o=Math.sqrt(t*t+n*n);o>a&&(a=o)}return a>0||(a=te(t)),ne.size>512&&ne.clear(),ne.set(o,a),a}var re="#334155",ie="#f8fafc",ae="#cbd5e1",se={viewBox:[40,40],anchor:[.5,1],parts:[{d:"M8 3h24v34H8z",fill:"color"},{d:"M12 9h16v5H12zM12 18h16v5H12zM12 27h16v5H12z",fill:"accent"},{d:"M23.8 11.5a1.2 1.2 0 1 0 2.4 0a1.2 1.2 0 1 0-2.4 0M23.8 20.5a1.2 1.2 0 1 0 2.4 0a1.2 1.2 0 1 0-2.4 0M23.8 29.5a1.2 1.2 0 1 0 2.4 0a1.2 1.2 0 1 0-2.4 0",fill:"color"}]},ce={viewBox:[40,40],anchor:[.5,.5],parts:[{d:"M10 8h20a2 2 0 0 1 2 2v20a2 2 0 0 1-2 2H10a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2z",fill:"color"},{d:"M15 15h10v10H15z",fill:"accent"},{d:"M7 2v6M14 2v6M21 2v6M28 2v6M7 32v6M14 32v6M21 32v6M28 32v6M2 7h6M2 14h6M2 21h6M2 28h6M32 7h6M32 14h6M32 21h6M32 28h6",fill:"none",stroke:"color",strokeWidth:3}]},le={viewBox:[40,40],anchor:[.5,.5],parts:[{d:"M23 1L7 23h10l-3 16 19-25H22z",fill:"color"}]},ue={viewBox:[48,40],anchor:[.5,.78],parts:[{d:"M7 12c0-4 3-7 7-7h20c4 0 7 3 7 7v15H7z",fill:"color"},{d:"M11 15h26v8H11z",fill:"accent",opacity:.9},{d:"M12 27h7v4h-7zM29 27h7v4h-7z",fill:"accent",opacity:.95},{d:"M12 31a4 4 0 1 0 8 0a4 4 0 1 0-8 0M28 31a4 4 0 1 0 8 0a4 4 0 1 0-8 0",fill:"color",stroke:"accent",strokeWidth:1.8},{d:"M5 13h4v8H5zM39 13h4v8h-4z",fill:"color"}]},de="M 9.12,3.34 C 8.28,3.29 7.44,3.40 6.64,3.69 4.17,3.63 1.97,5.37 0.91,7.51 -1.32,11.80 2.55,17.76 8.19,16.55 11.62,16.13 15.55,14.04 16.17,10.33 16.38,6.53 12.77,3.52 9.12,3.34 Z M 9.35,19.86 C 8.89,19.84 8.41,19.92 7.92,20.11 5.12,21.55 3.72,24.68 2.79,27.54 2.32,29.86 0.87,32.04 1.36,34.49 1.63,37.60 8.04,38.95 8.04,38.95 8.04,38.95 14.67,39.65 16.50,36.33 17.16,31.95 16.34,27.23 14.01,23.42 13.07,21.69 11.36,19.92 9.35,19.86 Z",he={viewBox:[18,40],anchor:[.5,1],parts:[{d:de,fill:"color",stroke:"color",strokeWidth:1.4}]},fe={server:se,chip:ce,bolt:le,bus:ue,person:he},me="var(--semiotic-primary, #4e79a7)",pe="var(--semiotic-border, #d1d5db)",ye="var(--semiotic-secondary, #9ca3af)",ge="var(--semiotic-bg, #ffffff)";function xe(e){return"object"==typeof e&&null!==e&&"tokens"in e&&"encoding"in e}function be(e,t,n){return"function"==typeof e?e(t)??n:e??n}function we(e,t){return"function"==typeof e?e(t):e}function Me(e){return e.sample??e.value??e.index}var ve=new Set(J);function ke(e,t){return void 0!==t.datum?be(t.datum,e,null):e.datum??null}function $e(e,t){return{fill:!1!==e.highlighted?"scenario"===e.range?be(t.rangeColor,e,ye):be(t.color,e,me):be(t.inactiveColor,e,pe),stroke:"none",...we(t.style,e)??{}}}function Ae(e,t){const n=we(t.pointId,e)??(t.idPrefix?`${t.idPrefix}-${"scenario"===e.range?"range-":""}${e.index}`:void 0);return{datum:ke(e,t),accessibleDatum:we(t.accessibleDatum,e),accessibility:we(t.accessibility,e),pointId:n,_transitionKey:n}}function Se({input:e,encoding:t,options:n={}}){if(!xe(e)&&!t)throw Error("tokenLayer requires an encoding when input is not a TokenSet.");const o=xe(e)?{...e,encoding:B(e.encoding)}:V(e,t),r=function(e,t){const n=t.includeRange&&e.rangeTokens?[...e.tokens,...e.rangeTokens]:e.tokens;if(t.positionToken)return function(e,t){const n=t.positionToken;return n?e.map((t,o)=>{const r=n(t,o,e);return{...t,x:r.x,y:r.y,row:r.row??o,column:r.column??0}}):[]}(n,t);const o=t.layout??e.encoding.layout??"grid";if("quantile-strip"===o)return function(e,t){if(0===e.length)return[];const n=t.x??0,o=t.y??0,r=t.cellHeight??("number"==typeof t.tokenSize?t.tokenSize:12),i=t.gutter??2,a=Math.max(1,Math.floor(t.rows??1)),s=e.map(Me),c=Math.min(...s),l=Math.max(...s)-c||1;return e.map((s,u)=>{const d=Me(s),h=u%a,f=t.valueToX?t.valueToX(d,s):n+(d-c)/l*(t.width??12*Math.max(1,e.length-1)),m=t.valueToY?t.valueToY(d,s):o+h*(r+i);return{...s,x:f,y:m,row:h,column:u}})}(n,t);if("dotplot"===o)return function(e,t){if(0===e.length)return[];const n=t.x??0,o=t.y??0,r="number"==typeof t.tokenSize?t.tokenSize:12,i=t.gutter??2,a=t.cellWidth??r+i,s=t.cellHeight??r+i,c=e.map(Me),l=Math.min(...c),u=Math.max(...c)-l||1,d=new Map;return e.map(r=>{const i=Me(r),c=t.valueToX?t.valueToX(i,r):n+(i-l)/u*(t.width??Math.max(1,e.length-1)*a),h=Math.round((c-n)/Math.max(1,a)),f=d.get(h)??0;d.set(h,f+1);const m=t.valueToY?t.valueToY(i,r):o+f*s;return{...r,x:n+h*a,y:m,row:f,column:h}})}(n,t);if("bar-segment"===o){if(!t.valueToX)throw Error('tokenLayer layout "bar-segment" requires valueToX and optionally valueToY.');return function(e,t){if(!t.valueToX)return[];const n=t.y??0,o=t.cellHeight??("number"==typeof t.tokenSize?t.tokenSize:12),r=t.anchor??[.5,.5];return e.map((e,i)=>{const a=Number.isFinite(e.start)?e.start:Me(e),s=(a+(Number.isFinite(e.end)?e.end:a+e.value))/2,c=t.valueToY?t.valueToY(s,e):n+r[1]*o;return{...e,x:t.valueToX(s,e),y:c,row:0,column:i}})}(n,t)}if("beeswarm"===o||"small-multiple"===o)throw Error(`tokenLayer layout "${o}" is not implemented yet; use row, column, stack, grid, waffle, dotplot, quantile-strip, bar-segment with valueToX, or positionToken.`);const r="number"==typeof t.tokenSize?t.tokenSize:void 0,i=t.cellWidth??r??12,a=t.cellHeight??r??i,s="row"===o?Math.max(1,n.length):"column"===o||"stack"===o?1:"waffle"===o&&"fixed-denominator"===e.encoding.countStrategy&&100===e.denominator?10:function(e,t,n){if(t.columns)return t.columns;if(t.width&&n>0){const e=t.gutter??2;return Math.max(1,Math.floor((t.width+e)/(n+e)))}return e.length>0?Math.ceil(Math.sqrt(e.length)):1}(n,t,i);return _(n,{...t,columns:s,cellWidth:i,cellHeight:a})}(o,n).filter(e=>!n.include||n.include(e));return{tokenSet:o,positionedTokens:r,nodes:r.map(e=>function(e,t,n){if("dot"===n.tokenType)return function(e,t){const n=be(t.tokenSize,e,12);return{type:"point",x:e.x,y:e.y,r:be(t.radius,e,n/2),style:$e(e,t),...Ae(e,t)}}(e,t);const o=we(t.glyph,e)??function(e){if(e)return fe[e]}(n.icon);if(o)return function(e,t,n){const o=$e(e,n),r=be(n.tokenSize,e,12);return{type:"glyph",x:e.x,y:e.y,size:r,glyph:t,color:(o.fill??me)+"",accent:be(n.accent,e,ge),fraction:1>e.fraction?e.fraction:void 0,fractionStart:e.startFraction>0?e.startFraction:void 0,fractionDirection:be(n.fractionDirection,e,"horizontal"),ghostColor:1>e.fraction?we(n.ghostColor,e)??pe:void 0,rotation:we(n.rotation,e),style:o,...Ae(e,n)}}(e,o,t);const r=(i=n.icon)&&ve.has(i)?i:void 0;var i;return function(e,t){const n=be(t.tokenSize,e,12);return{type:"symbol",x:e.x,y:e.y,size:Math.PI*Math.max(1,n/2)**2,symbolType:be(t.symbolType,e,"circle"),path:we(t.symbolPath,e),rotation:we(t.rotation,e),style:$e(e,t),...Ae(e,t)}}(e,r&&null==t.symbolType?{...t,symbolType:r}:t)}(e,n,o.encoding))}}var Ie=require("d3-interpolate"),je=864e5,Ce=e=>{const t=e.config,{plot:n}=e.dimensions;if(0>=n.width||0>=n.height)return{nodes:[]};const o=e=>{const n="function"==typeof t.dateAccessor?t.dateAccessor(e):e[t.dateAccessor];return n instanceof Date?n:new Date(n)},r=e=>{const n="function"==typeof t.valueAccessor?t.valueAccessor(e):e[t.valueAccessor];return Number(n)},i=new Map;let a=null;for(const t of e.data){const e=o(t);if(!isFinite(e.getTime()))continue;null==a&&(a=e.getUTCFullYear());const n=Le(e),s=r(t);i.set(n,(i.get(n)??0)+(Number.isFinite(s)?s:0))}const s=t.year??a??(new Date).getUTCFullYear();let c=1/0,l=-1/0;for(const e of i.values())c>e&&(c=e),e>l&&(l=e);c===1/0&&(c=0,l=0);const[u,d]=t.colorRamp??[e.theme.semantic.surface??"#ebedf0",e.theme.semantic.primary??"#216e39"],h=e=>{if(l===c)return u;const t=(e-c)/(l-c);return(0,Ie.interpolateRgb)(u,d)(t)},f=t.gutter??2,m=t.labelInset??0,p=Math.min((n.width-m-53*f)/54,(n.height-6*f)/7);if(0>=p)return{nodes:[]};const y=new Date(Date.UTC(s,0,1)),g=y.getUTCDay(),x=new Date(y.getTime()-g*je),b=[];for(let e=0;54>e;e++)for(let t=0;7>t;t++){const o=new Date(x.getTime()+(7*e+t)*je);if(o.getUTCFullYear()!==s)continue;const r=Le(o),a=i.get(r),c=null==a?u:h(a);b.push({type:"rect",x:n.x+m+e*(p+f),y:n.y+t*(p+f),w:p,h:p,style:{fill:c,stroke:"none"},datum:{date:o,value:a??0}})}return{nodes:b}};function Le(e){return`${e.getUTCFullYear()}-${Te(e.getUTCMonth()+1)}-${Te(e.getUTCDate())}`}function Te(e){return 10>e?"0"+e:e+""}var Ne=c(require("react")),ze=(require("react/jsx-runtime"),{isActive:!1,predicate:()=>!0}),Ee=Ne.createContext(null);function Fe(){return Ne.useContext(Ee)??ze}var Re=require("react/jsx-runtime"),Pe={resource:32,city:64},We=["#739b58","#83a964","#668d52","#8baa68"],Oe={land:"#78985c",ocean:"#4d8192",forest:"#4f7c4b",grassland:"#8eaa68",cropland:"#a6a568",wetland:"#668f79",urban:"#8d8a72",scrub:"#9b9665",bare:"#aa906a",snow:"#d8ddcf"},qe={land:"Open land",ocean:"Open ocean",forest:"Forest",grassland:"Grassland",cropland:"Cropland",wetland:"Wetland",urban:"Urban district",scrub:"Scrubland",bare:"Bare ground",snow:"Snow cover"},De=new Set(["city","culture","monument","faith","nature","knowledge","defense","arena","transport"]);function Be(e,t){if("function"==typeof e)return e;const n=e??t;return e=>e[n]}function Ye(e,t,n){return[111.32*(e-n.lon)*Math.cos((t+n.lat)/2*(Math.PI/180)),110.574*(t-n.lat)]}function He(e){const t=Math.max(3,Math.round(e??5));return t%2==0?t+1:t}function Ve(e){return De.has(e)?e:"monument"}function _e(e,t){const n=He(t.gridSize),o=Math.max(1,t.gridRadiusKm??75),r=2*o/n,i=Math.floor(n/2),a=Be(t.idAccessor,"id"),s=Be(t.nameAccessor,"name"),c=Be(t.longitudeAccessor,"lon"),l=Be(t.latitudeAccessor,"lat"),u=Be(t.kindAccessor,"kind"),d=t.candidatePriorityAccessor?Be(t.candidatePriorityAccessor,"priority"):()=>0,h=new Map;let f=null;for(const m of e){const e=Number(c(m)),p=Number(l(m));if(!Number.isFinite(e)||!Number.isFinite(p))continue;const y=(a(m)??`${e},${p}`)+"",g=(s(m)??y)+"",x=Ve(u(m)),[b,w]=Ye(e,p,t.center);if(Math.abs(b)>o||Math.abs(w)>o)continue;const M=Math.min(n-1,Math.max(0,Math.floor((b+o)/r))),v=Math.min(n-1,Math.max(0,Math.floor((o-w)/r))),k=(M+.5)*r-o,$=o-(v+.5)*r,A={...m,id:y,name:g,kind:x,lon:e,lat:p,distanceKm:Math.sqrt(b*b+w*w),row:v,column:M,cellDistanceSq:(b-k)**2+(w-$)**2,candidatePriority:Number(d(m))||0};(null!=t.centerId&&y===t.centerId||!f&&"city"===x||!f&&v===i&&M===i)&&(f=A);const S=`${v}:${M}`,I=h.get(S)??[];I.push(A),h.set(S,I)}const m=new Map;f&&m.set("city",1);const p=[];for(let e=0;n>e;e++)for(let t=0;n>t;t++){const n=`tile-${e}-${t}`,a=(t+.5)*r-o,s=o-(e+.5)*r;let c,l;if(e===i&&t===i&&f){c=f;const n=(h.get(`${e}:${t}`)??[]).filter(e=>e.id!==f?.id).sort((e,t)=>e.candidatePriority-t.candidatePriority||e.cellDistanceSq-t.cellDistanceSq||e.name.localeCompare(t.name));l=[f,...n]}else{const n=(h.get(`${e}:${t}`)??[]).filter(e=>e.id!==f?.id);n.sort((e,t)=>{const n=e.candidatePriority-t.candidatePriority;if(0!==n)return n;const o=m.get(e.kind)??0,i=m.get(t.kind)??0,a=r*r*.35;return e.cellDistanceSq+o*a-(t.cellDistanceSq+i*a)||e.name.localeCompare(t.name)}),c=n[0]??null,l=n}c&&m.set(c.kind,(m.get(c.kind)??0)+1),p.push({id:n,row:e,column:t,centerXKm:a,centerYKm:s,terrainIndex:Math.abs((17*e+31*t)%We.length),landmark:c,landmarks:l})}return p}var Ge=e=>{const t=He(e.config.gridSize),n=Math.max(20,e.config.tileWidth??80),o=Math.max(10,e.config.tileHeight??40),r=e.config.terrainColors?.length?e.config.terrainColors:We,i=e.dimensions.width/2,a=(e.dimensions.height-t*o)/2+o/2,s=_e(e.points,e.config).map(e=>({...e,x:i+n/2*(e.column-e.row),y:a+(e.column+e.row)*(o/2)}));return{nodes:s.map(t=>{const i=e.config.terrainByCell?.[t.id],a="string"==typeof i?{kind:i}:i,s="city"===t.landmark?.kind?"urban":a?.kind??"land",c=a?.fill??e.config.terrainPalette?.[s]??Oe[s],l=t.landmark?{...t.landmark,gridRow:t.row,gridColumn:t.column,cellId:t.id,terrainKind:s,terrainCoverage:a?.coverage,features:t.landmarks,featureCount:t.landmarks.length}:{id:t.id,name:qe[s],kind:"terrain",terrainKind:s,terrainCoverage:a?.coverage,gridRow:t.row,gridColumn:t.column,cellId:t.id,features:[],featureCount:0};return{type:"geoarea",pathData:(u=t.x,d=t.y,h=n,f=o,`M${u},${d-f/2}L${u+h/2},${d}L${u},${d+f/2}L${u-h/2},${d}Z`),centroid:[t.x,t.y],bounds:[[t.x-n/2,t.y-o/2],[t.x+n/2,t.y+o/2]],screenArea:n*o/2,style:{fill:a||"urban"===s?c:r[t.terrainIndex%r.length],stroke:"ocean"===s?"#315d6c":e.config.tileStroke??"#314934",strokeWidth:1},datum:l,group:t.landmark?.kind??s,interactive:!0};var u,d,h,f}),overlays:(0,Re.jsx)(Xe,{tiles:s,tileWidth:n,tileHeight:o,sprites:e.config.sprites,resourceSize:e.config.resourceSpriteSize??Pe.resource,citySize:e.config.citySpriteSize??Pe.city,showCityLabel:!1!==e.config.showCityLabel}),restyle:(e,t)=>t?.isActive&&e.datum&&"terrain"!==e.datum.kind?{fillOpacity:t.predicate(e.datum)?1:.28}:{fillOpacity:1}}};function Xe({tiles:e,tileWidth:t,tileHeight:n,sprites:o,resourceSize:r,citySize:i,showCityLabel:a}){const s=Fe(),c=e.filter(e=>e.landmark).sort((e,t)=>e.y-t.y||e.x-t.x);return(0,Re.jsxs)("g",{"aria-hidden":"true",pointerEvents:"none",children:[c.map(e=>{const a=e.landmark,c="city"===a.kind?i:r,l=e.y+n/2,u=s.isActive&&!s.predicate(a)?.28:1;return(0,Re.jsxs)("g",{opacity:u,children:[(0,Re.jsx)("ellipse",{cx:e.x,cy:e.y+.15*n,rx:.28*c,ry:.1*c,fill:"#17251d",opacity:.32}),(0,Re.jsx)(Ze,{kind:a.kind,href:o?.[a.kind],x:e.x-c/2,y:l-c,size:c}),e.landmarks.length>1&&(0,Re.jsx)(Ue,{x:e.x+.3*t,y:e.y-.19*n,count:e.landmarks.length-1,tileHeight:n})]},a.id)}),a&&c.filter(e=>"city"===e.landmark?.kind).map(e=>{const t=e.landmark.name.toUpperCase(),o=Math.max(56,6.4*t.length+14);return(0,Re.jsxs)("g",{transform:`translate(${e.x},${e.y+.72*n})`,children:[(0,Re.jsx)("rect",{x:-o/2,y:-7,width:o,height:14,rx:1,fill:"#17251d",opacity:.92}),(0,Re.jsx)("text",{textAnchor:"middle",dominantBaseline:"central",fill:"#f5edcf",fontFamily:"monospace",fontSize:9,fontWeight:700,letterSpacing:.8,children:t})]},e.landmark.id+"-label")})]})}function Ue({x:e,y:t,count:n,tileHeight:o}){const r=Math.max(10,Math.min(15,.34*o)),i="+"+n,a=Math.max(r,i.length*r*.58);return(0,Re.jsxs)("g",{transform:`translate(${e},${t})`,children:[(0,Re.jsx)("rect",{x:-a/2,y:-r/2,width:a,height:r,rx:1,fill:"#17251d",stroke:"#f0d36d",strokeWidth:1}),(0,Re.jsx)("text",{textAnchor:"middle",dominantBaseline:"central",fill:"#f5edcf",fontFamily:"monospace",fontSize:Math.max(7,.62*r),fontWeight:700,children:i})]})}var Ke={city:["..1111..","..1221..",".111111.",".133331.","11111111","13311331","14411441","11111111"],culture:["..1111..",".122221.","11111111",".133331.",".133331.",".133331.","11111111",".444444."],monument:["...11...","..1221..","..1221..","..1331..",".113311.",".133331.","11111111",".444444."],faith:["...11...","...11...","..1111..","...11...","..1221..",".133331.","11111111",".444444."],nature:["...11...","..1221..",".122221.","12222221",".133331.","...11...","..1441..",".144441."],knowledge:[".111111.","12211221","12211221","13311331","13311331","13311331","11111111",".444444."],defense:["11.11.11","11111111","12222221","12211221","13311331","13333331","11111111",".444444."],arena:["..1111..",".122221.","12333321","12344321","12344321","12333321",".122221.","..1111.."],transport:["...11...","..1221..",".122221.","11111111","..1331..","..1331..",".114411.","11444411"]},Qe={city:{1:"#29364a",2:"#d8b45b",3:"#b7693c",4:"#6d9fc5"},culture:{1:"#29364a",2:"#d5c9a3",3:"#9c6fb2",4:"#ece3c4"},monument:{1:"#29364a",2:"#d8cba8",3:"#9c8f79",4:"#ece3c4"},faith:{1:"#29364a",2:"#d9c36d",3:"#a877a5",4:"#ece3c4"},nature:{1:"#29364a",2:"#4f8a4e",3:"#79aa56",4:"#79583a"},knowledge:{1:"#29364a",2:"#d5c9a3",3:"#4f7da0",4:"#ece3c4"},defense:{1:"#29364a",2:"#a6a298",3:"#777b7f",4:"#d5c9a3"},arena:{1:"#29364a",2:"#cb8056",3:"#d8cba8",4:"#6d9fc5"},transport:{1:"#29364a",2:"#d8b45b",3:"#6d9fc5",4:"#ece3c4"}};function Ze({kind:e,href:t,x:n,y:o,size:r}){if(t)return(0,Re.jsx)("image",{href:t,x:n,y:o,width:r,height:r,preserveAspectRatio:"xMidYMax meet",style:{imageRendering:"pixelated"}});const i=Qe[e];return(0,Re.jsx)("svg",{x:n,y:o,width:r,height:r,viewBox:"0 0 8 8",shapeRendering:"crispEdges",children:Ke[e].flatMap((e,t)=>[...e].map((e,n)=>"."===e?null:(0,Re.jsx)("rect",{x:n,y:t,width:1,height:1,fill:i[e]},`${t}-${n}`)))})}var Je=e=>{const t=e.config,n=t.nodeWidth??80,o=t.nodeHeight??30,r=t.orientation??"vertical",i=t.edgeCurve??"curved",a=!1!==t.showLabels,s=t.labelAccessor??"id",c="function"==typeof s?s:e=>h(e,s,e.id??"")+"",l=new Map,u=[],d=[],f=e=>{const t=e.data??{};return{x:"number"==typeof t.x?t.x:e.x,y:"number"==typeof t.y?t.y:e.y,w:("number"==typeof t.width?t.width:e.width)??n,h:("number"==typeof t.height?t.height:e.height)??o}};for(const n of e.nodes){const{x:o,y:r,w:i,h:s}=f(n);null!=o&&null!=r&&(l.set(n.id,{x:o,y:r,w:i,h:s}),u.push({type:"rect",x:o-i/2,y:r-s/2,w:i,h:s,style:{fill:t.nodeFill??e.resolveColor(n.id),stroke:`var(--semiotic-surface, ${e.theme.semantic.surface??"#fff"})`,strokeWidth:1.5},datum:n,id:n.id,label:c(n)+""}),a&&d.push({x:o,y:r,text:c(n)+"",anchor:"middle",baseline:"middle",fontSize:11}))}const m=[];for(const t of e.edges){const n="string"==typeof t.target?t.target:t.target.id,o=l.get("string"==typeof t.source?t.source:t.source.id),a=l.get(n);if(!o||!a)continue;const s="vertical"===r?{x:o.x,y:o.y+o.h/2}:{x:o.x+o.w/2,y:o.y},c="vertical"===r?{x:a.x,y:a.y-a.h/2}:{x:a.x-a.w/2,y:a.y};if("line"===i)m.push({type:"line",x1:s.x,y1:s.y,x2:c.x,y2:c.y,style:{stroke:`var(--semiotic-border, ${e.theme.semantic.border??"#999"})`,strokeWidth:1},datum:t});else{const n=(s.y+c.y)/2,o=(s.x+c.x)/2;m.push({type:"curved",pathD:"vertical"===r?`M${s.x},${s.y} C${s.x},${n} ${c.x},${n} ${c.x},${c.y}`:`M${s.x},${s.y} C${o},${s.y} ${o},${c.y} ${c.x},${c.y}`,style:{stroke:`var(--semiotic-border, ${e.theme.semantic.border??"#999"})`,strokeWidth:1,fill:"none"},datum:t})}}return{sceneNodes:u,sceneEdges:m,labels:d}},et=e=>{const t=e.config,n=t.nodeWidth??100,o=t.nodeHeight??36,r=t.edgeStyle??"polyline",i=!1!==t.showLabels,a=t.labelAccessor??"label",s="function"==typeof a?a:e=>h(e,a,e.id??"")+"",c=new Map,l=[],u=[],d=e=>{const t=e.data??{};return{x:"number"==typeof t.x?t.x:e.x,y:"number"==typeof t.y?t.y:e.y,w:("number"==typeof t.width?t.width:e.width)??n,h:("number"==typeof t.height?t.height:e.height)??o}};for(const n of e.nodes){const{x:o,y:r,w:a,h:h}=d(n);null!=o&&null!=r&&(c.set(n.id,{x:o,y:r,w:a,h:h}),l.push({type:"rect",x:o-a/2,y:r-h/2,w:a,h:h,style:{fill:t.nodeFill??e.resolveColor(n.id),stroke:`var(--semiotic-border, ${e.theme.semantic.border??"#888"})`,strokeWidth:1.5},datum:n,id:n.id,label:s(n)+""}),i&&u.push({x:o,y:r,text:s(n)+"",anchor:"middle",baseline:"middle",fontSize:11}))}const f=t.edgeStroke??`var(--semiotic-border, ${e.theme.semantic.border??"#666"})`,m=[];for(const t of e.edges){const e="string"==typeof t.target?t.target:t.target.id,n=c.get("string"==typeof t.source?t.source:t.source.id),o=c.get(e);if(!n||!o)continue;const i=t.data??{},a=Array.isArray(i.points)?i.points:t.points;if(a&&a.length>=2)if("smooth"!==r||3>a.length){const e="M"+a.map(e=>`${e.x},${e.y}`).join(" L ");m.push({type:"curved",pathD:e,style:{stroke:f,strokeWidth:1,fill:"none"},datum:t})}else{let e=`M${a[0].x},${a[0].y}`;for(let t=1;a.length-1>t;t++)e+=` Q${a[t].x},${a[t].y} ${(a[t].x+a[t+1].x)/2},${(a[t].y+a[t+1].y)/2}`;const n=a[a.length-1];e+=` T${n.x},${n.y}`,m.push({type:"curved",pathD:e,style:{stroke:f,strokeWidth:1,fill:"none"},datum:t})}else m.push({type:"line",x1:n.x,y1:n.y,x2:o.x,y2:o.y,style:{stroke:f,strokeWidth:1},datum:t})}return{sceneNodes:l,sceneEdges:m,labels:u}},tt=require("react/jsx-runtime"),nt={"topic-source":"#1f7a8c","topic-sink":"#b4451f","topic-bridge":"#4b5a82",processor:"#34344a",unknown:"#5a5a6a"},ot={internal:"var(--semiotic-border, #6b6b7d)","cross-subtopology":"var(--semiotic-info, #6a8caf)","topic-bridge":"var(--semiotic-secondary, #8b78c4)",back:"var(--semiotic-danger, #e0556b)"};function rt(e){return Array.isArray(e)?e.map((e,t)=>"string"==typeof e?{storeName:e,slotIndex:t}:{storeName:(e.storeName??"")+"",slotIndex:e.slotIndex??t}):[]}var it=e=>{const t=e.config||{},n=e.dimensions.plot,o=t.layerAccessor??"x",r=t.rowAccessor??"y",i=t.partitionAccessor??"partition",a=t.semanticAccessor??"semantic",s=t.labelAccessor??"label",c=t.storesAccessor??"stores",l=t.backEdgeAccessor??"isBackEdge",u=t.edgeTypeAccessor??"edgeType",d={...nt,...t.partitionColors},f={...ot,...t.edgeColors},m=t.accentColor??"var(--semiotic-focus, #ffcc33)",p=t.borderColor??"var(--semiotic-border, #555)",y=t.dimOpacity??.14,g=t.edgeOpacity??.5,x=t.edgeWidth??1.25,b=t.backEdgeWidth??t.edgeWidth??1.5,w=!1!==t.showStoreChips,M=t.storeChipColor??"var(--semiotic-info, #6a8caf)";let v=t.layerCount,k=t.maxLayerSize;if(null==v||null==k){let t=0;const n=new Map;for(const r of e.nodes){const e=Math.round(Number(h(r,o,0)));t=Math.max(t,e),n.set(e,(n.get(e)??0)+1)}v=v??t+1,k=k??Math.max(1,...n.values())}const $=n.width/Math.max(1,v),A=n.height/Math.max(1,k);let S=Math.min(t.nodeWidth??172,Math.max(8,$-(t.minGapX??26))),I=Math.min(t.nodeHeight??54,Math.max(8,A-(t.minGapY??18)));const j=t.lod&&"auto"!==t.lod?t.lod:16>S?"dot":48>S?"icon":108>S?"compact":"full";if("dot"===j){const e=Math.min(S,I,11);S=e,I=e}const C=Math.max(1,n.width-S),L=Math.max(1,n.height-I),T=Math.max(1,k-1),N=e=>n.x+S/2+(v>1?e/(v-1):.5)*C,z=e=>n.y+I/2+(e+T/2)/T*L,E=t.reachableIds?new Set(t.reachableIds):null,F=t.selectedId??null,R=e.selection,P=new Map,W=new Map,O=[],q=[];for(const t of e.nodes){const e=t.id,n=Number(h(t,o,0)),l=Number(h(t,r,0)),u=h(t,i,"processor")+"",f=h(t,a,"processor")+"",g=h(t,s,e)+"",x=rt(h(t,c,[])),b=t.data??t,w=N(n),M=z(l);P.set(e,{cx:w,cy:M});const v=E?E.has(e):null,k=R?.isActive?R.predicate(b):null,$=null!==v?!v:null!==k&&!k;W.set(e,$);const A=null!=F&&e===F,C=$&&!A?y:1,L=d[u]??d.unknown;"dot"===j?O.push({type:"circle",cx:w,cy:M,r:S/2,style:{fill:L,opacity:C,stroke:A?m:"transparent",strokeWidth:A?2:0},datum:t,id:e,label:g}):(O.push({type:"rect",x:w-S/2,y:M-I/2,w:S,h:I,style:{fill:L,opacity:C,stroke:A?m:p,strokeWidth:A?3:1},datum:t,id:e,label:g}),q.push({id:e,cx:w,cy:M,partition:u,semantic:f,label:g,stores:x,opacity:C,selected:A,node:b}))}const D=[];for(const t of e.edges){const e="string"==typeof t.source?t.source:t.source.id,n="string"==typeof t.target?t.target:t.target.id,o=P.get(e),r=P.get(n);if(!o||!r)continue;const i=!!h(t,l,!1),a=h(t,u,"internal")+"",s=W.get(e)||W.get(n)?Math.min(g,1.4*y):g,c=i?f.back:f[a]??f.internal;let d;if(i){const e=o.cx,t=o.cy+I/2,n=r.cx,i=r.cy+I/2,a=Math.max(48,.28*Math.abs(e-n))+I;d=`M${e},${t} C${e},${t+a} ${n},${i+a} ${n},${i}`}else{const e=o.cx+S/2,t=o.cy,n=r.cx-S/2,i=r.cy,a=(e+n)/2;d=`M${e},${t} C${a},${t} ${a},${i} ${n},${i}`}const m={type:"curved",pathD:d,style:{stroke:c,strokeWidth:i?b:x,fill:"none",opacity:s,...i?{strokeDasharray:"5 4",strokeLinecap:"round"}:{}},datum:t};D.push(m)}const B=0===q.length?null:(0,tt.jsx)("g",{className:"lineage-dag-glyphs",children:q.map(e=>function(e,t){const{w:n,h:o,lod:r}=t,i="icon"===r?Math.min(n,o):Math.min(o-14,26),a="icon"===r?0:8+i+8,s=null!=t.renderIcon?t.renderIcon({semantic:e.semantic,partition:e.partition,size:i,color:t.partColors[e.partition]??t.partColors.unknown??"#5a5a6a",node:e.node}):function(e,t,n){const o=t.startsWith("topic")?"T":{source:"SR",sink:"SK",filter:"FL",map:"MP",aggregate:"AG",reduce:"RD","join-this":"JN","join-other":"JN",merge:"MG",suppress:"SP",select:"SE",tostream:"TS"}[e]??"PR";return(0,tt.jsxs)("g",{children:[(0,tt.jsx)("rect",{width:n,height:n,rx:4,fill:"rgba(255,255,255,0.08)",stroke:"rgba(255,255,255,0.18)"}),(0,tt.jsx)("text",{x:n/2,y:n/2+.5,textAnchor:"middle",dominantBaseline:"middle",fontSize:.42*n,fontWeight:700,fill:"var(--semiotic-text, #fff)",children:o})]})}(e.semantic,e.partition,i),c="full"===r,l="icon"!==r,u="full"===r&&t.showChips&&e.stores.length>0;return(0,tt.jsxs)("g",{transform:`translate(${e.cx-n/2}, ${e.cy-o/2})`,opacity:e.opacity,style:{pointerEvents:"none"},children:[(0,tt.jsx)("g",{transform:`translate(${"icon"===r?(n-i)/2:8}, ${(o-i)/2})`,children:s}),l&&(0,tt.jsx)("foreignObject",{x:a,y:c?o/2-12:o/2-9,width:Math.max(8,n-a-8),height:18,style:{pointerEvents:"none"},children:(0,tt.jsx)("div",{title:e.label,style:{pointerEvents:"none",fontFamily:"var(--semiotic-font-family, inherit)",fontSize:"full"===r?12.5:11.5,fontWeight:600,color:"var(--semiotic-text, #f4f4f8)",lineHeight:"18px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:e.label})}),c&&(0,tt.jsx)("text",{x:a,y:o/2-16,dominantBaseline:"middle",fontSize:9.5,fontWeight:500,fill:"var(--semiotic-text-secondary, #b9b9c8)",style:{textTransform:"uppercase",letterSpacing:"0.04em"},children:t.typeLabel?t.typeLabel({semantic:e.semantic,partition:e.partition,node:e.node}):e.partition.startsWith("topic")?"topic":e.semantic}),u&&e.stores.map((e,n)=>(0,tt.jsx)("rect",{x:a+15*n,y:o-10,width:12,height:5,rx:1.5,fill:t.chipColor,children:(0,tt.jsx)("title",{children:e.storeName})},e.storeName+n))]},e.id)}(e,{w:S,h:I,lod:j,partColors:d,chipColor:M,showChips:w,renderIcon:t.renderIcon,typeLabel:t.typeLabel}))});return{sceneNodes:O,sceneEdges:D,overlays:B}},at=require("react/jsx-runtime");function st(e,t){return e.length>t?e.slice(0,Math.max(1,t-1))+"…":e}var ct={rect:"process",round:"process",stadium:"terminal",subroutine:"subprocess",cylinder:"database",circle:"connector",diamond:"decision",hexagon:"preparation",flag:"process"};function lt(e,t,n,o,r,i,a,s){const c=t-o/2,l=n-r/2,u={fill:i,stroke:a,strokeWidth:s};switch(e){case"diamond":return(0,at.jsx)("polygon",{points:`${t},${l} ${t+o/2},${n} ${t},${n+r/2} ${c},${n}`,...u});case"circle":return(0,at.jsx)("circle",{cx:t,cy:n,r:Math.min(o,r)/2,...u});case"stadium":case"round":return(0,at.jsx)("rect",{x:c,y:l,width:o,height:r,rx:"stadium"===e?r/2:8,ry:"stadium"===e?r/2:8,...u});case"hexagon":{const e=Math.min(.18*o,16);return(0,at.jsx)("polygon",{points:`${c+e},${l} ${t+o/2-e},${l} ${t+o/2},${n} ${t+o/2-e},${n+r/2} ${c+e},${n+r/2} ${c},${n}`,...u})}case"cylinder":{const e=Math.min(.16*r,8),t=`M${c},${l+e} a${o/2},${e} 0 0 1 ${o},0`;return(0,at.jsxs)("g",{children:[(0,at.jsx)("path",{d:`M${c},${l+e} a${o/2},${e} 0 0 0 ${o},0 v${r-2*e} a${o/2},${e} 0 0 1 ${-o},0 z`,...u}),(0,at.jsx)("path",{d:t,fill:"none",stroke:a,strokeWidth:s})]})}case"subroutine":{const e=Math.min(8,.08*o);return(0,at.jsxs)("g",{children:[(0,at.jsx)("rect",{x:c,y:l,width:o,height:r,rx:3,...u}),(0,at.jsx)("line",{x1:c+e,y1:l,x2:c+e,y2:l+r,stroke:a,strokeWidth:s}),(0,at.jsx)("line",{x1:c+o-e,y1:l,x2:c+o-e,y2:l+r,stroke:a,strokeWidth:s})]})}default:return(0,at.jsx)("rect",{x:c,y:l,width:o,height:r,rx:4,...u})}}var ut=e=>{const t=e.config||{},n=e.dimensions.plot,o=t.direction??"TD",r="LR"===o||"RL"===o,i="BT"===o||"RL"===o,a=t.layerAccessor??"layer",s=t.rowAccessor??"row",c=t.labelAccessor??"label",l=t.shapeAccessor??"shape",u=t.edgeLabelAccessor??"label",d=t.nodeFill??"var(--semiotic-surface, #20242d)",f=t.nodeStroke??"var(--semiotic-border, #5a6573)",m=t.textColor??"var(--semiotic-text, #e6e6e6)",p=t.edgeColor??"var(--semiotic-text-secondary, #9aa0a6)",y=t.accentColor??"var(--semiotic-warning, #d49a00)";if(0===e.nodes.length)return{sceneNodes:[],overlays:null};const g=new Map;let x=0;for(const t of e.nodes){const e=Math.round(Number(h(t,a,0)));x=Math.max(x,e);const n=g.get(e)||[];n.push(t),g.set(e,n)}const b=x+1;let w=1;for(const e of g.values())e.sort((e,t)=>Number(h(e,s,0))-Number(h(t,s,0))),w=Math.max(w,e.length);const M=r?n.width:n.height,v=r?n.height:n.width,k=M/b,$=v/(w+1),A=Math.max(44,Math.min(t.nodeWidth??150,r?k-36:.92*$)),S=Math.max(26,Math.min(t.nodeHeight??46,r?.7*$:.5*k)),I=(r?A:S)/2+6,j=Math.max(1,M-2*I),C=e=>(r?n.x:n.y)+I+(b>1?(i?b-1-e:e)/(b-1)*j:j/2),L=new Map,T=[],N=[];for(const[e,t]of g)t.forEach((o,i)=>{const a=C(e),s=(r?n.y:n.x)+(i+1)/(t.length+1)*v,u=r?a:s,p=r?s:a,g=h(o,l,"rect")+"",x=h(o,c,o.id)+"";L.set(o.id,{cx:u,cy:p,shape:g}),T.push({type:"rect",x:u-A/2,y:p-S/2,w:A,h:S,style:{fill:"transparent",stroke:"transparent"},datum:{id:o.id,name:x,type:ct[g]??"process",shape:g},id:o.id,label:x}),N.push((0,at.jsxs)("g",{children:[lt(g,u,p,A,S,d,"diamond"===g?y:f,1.5),(0,at.jsx)("text",{x:u,y:p,textAnchor:"middle",dominantBaseline:"central",fontSize:13,fill:m,style:{pointerEvents:"none"},children:st(x,Math.max(4,Math.floor((A-12)/7)))})]},"n-"+o.id))});const z=[];return e.edges.forEach((e,t)=>{const n="string"==typeof e.target?e.target:e.target.id,o=L.get("string"==typeof e.source?e.source:e.source.id),i=L.get(n);if(!o||!i)return;const a=r?o.cx+A/2:o.cx,s=r?o.cy:o.cy+S/2,c=r?i.cx-A/2:i.cx,l=r?i.cy:i.cy-S/2,d=r?`M${a},${s} C${(a+c)/2},${s} ${(a+c)/2},${l} ${c},${l}`:`M${a},${s} C${a},${(s+l)/2} ${c},${(s+l)/2} ${c},${l}`,y=Math.atan2(l-s,c-a),g=c-9*Math.cos(y),x=l-9*Math.sin(y),b=4.5*-Math.sin(y),w=4.5*Math.cos(y),M=`${c},${l} ${g+b},${x+w} ${g-b},${x-w}`,v=h(e,u,void 0),k=(a+c)/2,$=(s+l)/2;z.push((0,at.jsxs)("g",{children:[(0,at.jsx)("path",{d:d,fill:"none",stroke:p,strokeWidth:1.4}),(0,at.jsx)("polygon",{points:M,fill:p}),"string"==typeof v&&v.length>0&&(0,at.jsxs)("g",{children:[(0,at.jsx)("rect",{x:k-6.5*v.length/2-4,y:$-9,width:6.5*v.length+8,height:18,rx:3,fill:"var(--semiotic-bg, #11151c)",stroke:f,strokeWidth:.75}),(0,at.jsx)("text",{x:k,y:$,textAnchor:"middle",dominantBaseline:"central",fontSize:11,fill:m,style:{pointerEvents:"none"},children:v})]})]},"e-"+t))}),{sceneNodes:T,overlays:(0,at.jsxs)("g",{className:"mermaid-dag",children:[z,N]})}},dt=require("react/jsx-runtime");function ht(e){return(0,dt.jsx)("rect",{className:e.className,x:e.x,y:e.y,width:Math.max(0,e.width),height:Math.max(0,e.height),rx:e.radius??10,ry:e.radius??10,fill:e.fill??"none",stroke:e.stroke,strokeWidth:e.strokeWidth??1.5,strokeDasharray:e.strokeDasharray,opacity:e.opacity??.6,style:{pointerEvents:"none"}},e.keyId)}function ft(e,t=0){let n=1/0,o=1/0,r=-1/0,i=-1/0;for(const t of e){const e=t.r??0;n>t.x-e&&(n=t.x-e),t.x+e>r&&(r=t.x+e),o>t.y-e&&(o=t.y-e),t.y+e>i&&(i=t.y+e)}return Number.isFinite(n)?{x:n-t,y:o-t,width:r-n+2*t,height:i-o+2*t}:null}function mt(e,t=0){if(!e.length)return null;const n="number"==typeof t?t:t.x??0,o="number"==typeof t?t:t.y??0;let r=1/0,i=1/0,a=-1/0,s=-1/0;for(const t of e){if(!Number.isFinite(t.x)||!Number.isFinite(t.y))continue;if(!Number.isFinite(t.width)||!Number.isFinite(t.height))continue;const e=Math.max(0,t.width),n=Math.max(0,t.height);r>t.x&&(r=t.x),i>t.y&&(i=t.y),t.x+e>a&&(a=t.x+e),t.y+n>s&&(s=t.y+n)}return Number.isFinite(r)?{x:r-n,y:i-o,width:a-r+2*n,height:s-i+2*o}:null}function pt(e){const t=e.fontSize??12;return null!=e.maxWidth&&e.text.length*t*.56>e.maxWidth?null:(0,dt.jsx)("text",{className:e.className,x:e.x,y:e.y,textAnchor:e.anchor??"middle",dominantBaseline:e.baseline??"middle",fontSize:t,fontWeight:e.fontWeight,fill:e.color,style:{pointerEvents:"none"},children:e.text},e.keyId)}function yt(e){const t=e.spacing??8;return{def:(0,dt.jsx)("pattern",{id:e.id,width:t,height:t,patternUnits:"userSpaceOnUse",patternTransform:`rotate(${e.angle??45})`,children:(0,dt.jsx)("line",{x1:0,y1:0,x2:0,y2:t,stroke:e.color??"currentColor",strokeWidth:e.strokeWidth??1,opacity:e.opacity??.5})},e.id),fill:`url(#${e.id})`}}function gt(e){const t=e.orient??"bottom",n="bottom"===t||"top"===t,o=e.offset??0,r=e.tickLength??6,i=e.gridLength??0,a=e.labelGap??4,s=e.fontSize??11,c=e.color??"var(--semiotic-text-secondary, #888)",l=e.gridColor??c,u=e.format??(e=>e+""),d="top"===t||"left"===t?-1:1,h=e.ticks.length-1,f=e.ticks.map((f,m)=>{const p=e.scale(f),y=o+d*r,g=o-d*i,x=y+d*a;let b;b=e.labelAnchor?e.labelAnchor:n?e.edgeAnchor&&0===m?"start":e.edgeAnchor&&m===h?"end":"middle":"left"===t?"end":"start";const w=n?"top"===t?"auto":"hanging":"middle",M=n?{x:p,y:x}:{x:x,y:p};return(0,dt.jsxs)("g",{children:[(r>0||i>0)&&(0,dt.jsx)("line",{...n?{x1:p,x2:p,y1:y,y2:g}:{x1:y,x2:g,y1:p,y2:p},stroke:i>0?l:c,strokeWidth:1,strokeDasharray:i>0?e.gridDasharray:void 0,opacity:i>0?.7:1}),(0,dt.jsx)("text",{x:M.x,y:M.y,textAnchor:b,dominantBaseline:w,fontSize:s,fontWeight:e.fontWeight,fill:c,children:u(f)})]},`tick-${f}-${m}`)});return(0,dt.jsx)("g",{className:e.className,style:{pointerEvents:"none"},children:f},e.keyId)}function xt(e){const t=e.stroke??"var(--semiotic-text, #f4f4f8)",n=e.strokeWidth??1,o=e.markRadius??0,r=e.labelX-e.markX,i=e.labelY-e.markY,a=Math.hypot(r,i)||1,s=e.markX+r/a*o,c=e.markY+i/a*o;let l;return l="elbow"===e.connector?`M${s},${c} L${s},${e.labelY} L${e.labelX},${e.labelY}`:"curve"===e.connector?`M${s},${c} Q${(s+e.labelX)/2},${c} ${e.labelX},${e.labelY}`:`M${s},${c} L${e.labelX},${e.labelY}`,(0,dt.jsxs)("g",{className:e.className,style:{pointerEvents:"none"},children:[o>0&&(0,dt.jsx)("circle",{cx:e.markX,cy:e.markY,r:o,fill:"none",stroke:t,strokeWidth:n}),(0,dt.jsx)("path",{d:l,fill:"none",stroke:t,strokeWidth:n}),(0,dt.jsx)("text",{x:e.labelX,y:e.labelY,textAnchor:e.labelAnchor??"middle",dominantBaseline:e.labelBaseline??"hanging",fontSize:e.fontSize??11,fontWeight:e.fontWeight,fill:e.color??t,children:e.label})]},e.keyId)}var bt=require("react/jsx-runtime"),wt=new b(12);function Mt(e){if(null==e)return NaN;if("number"==typeof e)return e;if(e instanceof Date)return e.getTime();const t=e+"",n=Number(t);if(!Number.isNaN(n)&&""!==t.trim())return n;const o=Date.parse(t);return Number.isNaN(o)?NaN:o}function vt(e,t,n){return t>e?t:e>n?n:e}var kt=e=>{const t=e.config||{},n=e.dimensions.plot,o=t.columnAccessor??"column",r=t.rowAccessor??"row",i=t.sizeAccessor,a=t.colorAccessor,s=t.symbolAccessor,c=t.shadeAccessor,l=t.markerAccessor,u=t.iconAccessor,d=t.defaultSymbol??"circle",[f,p]=t.sizeRange??[2,8],y=t.shadeStrength??.72,b=t.shadeReverse??!1,M=t.rowMode??"banded",v=t.cellSizing??"proportional",k=t.proportionExponent??1,$=t.columnGap??16,A=t.rowGap??12,S=t.packPadding??1,I=t.iterations??12,j=!1!==t.showEnclosures,C=!1!==t.showColumnHeaders,L=!1!==t.showRowLabels,T=C?t.headerHeight??26:0,N=L?t.labelWidth??66:0,z=t.callouts&&t.callouts.length>0?t.footerHeight??30:0,E=n.x+N,F=n.y+T,R=Math.max(1,n.width-N),P=Math.max(1,n.height-T-z),W=[];for(const t of e.nodes){const e=t.data??t;W.push({id:t.id,col:h(t,o,"—")+"",row:h(t,r,"—")+"",sizeVal:i?Number(h(t,i,1)):1,colorKey:a?h(t,a,"")+"":"",symVal:s?h(t,s,"")+"":"",shadeVal:c?Mt(h(t,c,null)):NaN,marker:!!l&&!!h(t,l,!1),iconVal:u?h(t,u,"")+"":"",datum:e,size:0,packR:0,baseShape:"circle",iconShape:null})}if(0===W.length)return{sceneNodes:[]};let O=1/0,q=-1/0;if(i)for(const e of W)Number.isFinite(e.sizeVal)&&(O>e.sizeVal&&(O=e.sizeVal),e.sizeVal>q&&(q=e.sizeVal));t.sizeDomain&&([O,q]=t.sizeDomain),Number.isFinite(O)&&Number.isFinite(q)||(O=0,q=1);const D=e=>{if(O>=q)return(f+p)/2;const t=Math.sqrt(vt((e-O)/(q-O),0,1));return f+t*(p-f)};let B=1/0,Y=-1/0;if(c)for(const e of W)Number.isFinite(e.shadeVal)&&(B>e.shadeVal&&(B=e.shadeVal),e.shadeVal>Y&&(Y=e.shadeVal));t.shadeDomain&&([B,Y]=t.shadeDomain);const H=e=>{if(!c||!Number.isFinite(e)||B>=Y)return.5;const t=vt((e-B)/(Y-B),0,1);return b?1-t:t},V=t.colorMap,_=new Map,G=(t,n)=>{let o=_.get(t);return o||(o=w(V&&V[t]||e.resolveColor(t),y),_.set(t,o)),o(n)},X=new Map;if(t.symbolMap)for(const[e,n]of Object.entries(t.symbolMap))X.set(e,n);let U=0;const K=t.iconMap,Q=e=>u&&K&&K[e]?K[e]:null,Z=e=>u?"circle":(e=>{if(!s)return d;let t=X.get(e);return t||(t=J[U%J.length],U++,X.set(e,t)),t})(e.symVal),te=t.maxAreaFraction??.4;let ne=0;const re=Array(W.length),ie=Array(W.length);for(let e=0;W.length>e;e++){const t=W[e],n=D(t.sizeVal);re[e]=n,t.baseShape=Z(t),t.iconShape=Q(t.iconVal);const o=oe(t.baseShape,Math.PI*n*n);ie[e]=o,ne+=Math.PI*o*o}const ae=te*R*P,se=ne>ae?Math.sqrt(ae/ne):1;for(let e=0;W.length>e;e++){const t=W[e],n=re[e]*se;t.size=Math.PI*n*n,t.packR=ie[e]*se}const ce=new Map,le=new Map;for(const e of W)ce.set(e.col,(ce.get(e.col)??0)+1),le.set(e.row,(le.get(e.row)??0)+1);const ue=t.columnOrder?.filter(e=>ce.has(e))??[...ce.keys()].sort((e,t)=>(ce.get(t)??0)-(ce.get(e)??0)),de=t.rowOrder?.filter(e=>le.has(e))??[...le.keys()].sort((e,t)=>(le.get(t)??0)-(le.get(e)??0)),he=x([Math.round(n.x),Math.round(n.y),Math.round(n.width),Math.round(n.height),T,N,z,M,v,k,$,A,S,I,f,p,O,q,te,ue.join(","),de.join(","),W.length,At(W)]),fe=wt.getOrCompute(he,()=>function(e,t){const n=new Map;for(const t of e){let e=n.get(t.col);e||(e=[],n.set(t.col,e)),e.push(t)}const o=t.columnOrder.filter(e=>n.has(e)),r=Math.max(1,t.innerW-t.columnGap*Math.max(0,o.length-1)),i=t.proportionExponent,a=o.map(e=>Math.pow(n.get(e).length,i)),s=a.reduce((e,t)=>e+t,0)||1,c=e=>"uniform"===t.cellSizing?r/o.length:a[e]/s*r,l=new Map,u=[];let d=t.innerX;for(let e=0;o.length>e;e++)u.push({col:o[e],x:d,w:c(e)}),d+=c(e)+t.columnGap;let h=1;const f=new Map,p=[],y=(e,t,n,o)=>{let r=f.get(e);r||(r={minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0},f.set(e,r)),r.minX>t-o&&(r.minX=t-o),t+o>r.maxX&&(r.maxX=t+o),r.minY>n-o&&(r.minY=n-o),n+o>r.maxY&&(r.maxY=n+o)},g=(e,n,o,r,i,a)=>{const s=e.map(e=>({id:e.id,r:e.packR})),c=function(e,t,n,o,r,i,a,s){const c=t+o/2,l=n+r/2,u=new Map,d=e.length;if(0===d)return u;if(1===d)return u.set(e[0].id,{px:c,py:l}),u;const h=function(e){let t=e>>>0||1;return()=>(t=Math.imul(t,1664525)+1013904223>>>0,t/4294967296)}(s),f=new Float64Array(d);let m=0;for(let t=0;d>t;t++)f[t]=e[t].r+i,f[t]>m&&(m=f[t]);const p=Math.max(1,Math.round(Math.sqrt(d*o/Math.max(1,r)))),y=new Float64Array(d),g=new Float64Array(d),x=o/p,b=r/Math.ceil(d/p);for(let e=0;d>e;e++){const o=e%p,r=Math.floor(e/p);y[e]=t+(o+.3+.4*h())*x,g[e]=n+(r+.3+.4*h())*b}const w=Math.max(0,Math.min(a,14)),M=Math.max(1,2*m),v=new Map,k=Math.max(1,Math.ceil(o/M)+3),$=(e,t)=>(t+1)*k+(e+1);for(let e=0;w>e;e++){v.clear();for(let e=0;d>e;e++){const o=$(Math.floor((y[e]-t)/M),Math.floor((g[e]-n)/M)),r=v.get(o);r?r.push(e):v.set(o,[e])}for(let e=0;d>e;e++){const o=Math.floor((y[e]-t)/M),r=Math.floor((g[e]-n)/M);for(let t=-1;1>=t;t++)for(let n=-1;1>=n;n++){const i=v.get($(o+t,r+n));if(i)for(let t=0;i.length>t;t++){const n=i[t];if(e>=n)continue;let o=y[n]-y[e],r=g[n]-g[e];const a=f[e]+f[n],s=o*o+r*r;if(a*a>s)if(s>1e-9){const t=Math.sqrt(s),i=(a-t)/2;o/=t,r/=t,y[e]-=o*i,g[e]-=r*i,y[n]+=o*i,g[n]+=r*i}else{const t=2.39996323*e;y[e]+=Math.cos(t)*f[e],g[e]+=Math.sin(t)*f[e]}}}}for(let e=0;d>e;e++){const i=f[e],a=t+i,s=t+o-i,u=n+i,d=n+r-i;y[e]=s>a?vt(y[e],a,s):c,g[e]=d>u?vt(g[e],u,d):l}}for(let t=0;d>t;t++)u.set(e[t].id,{px:y[t],py:g[t]});return u}(s,n,o,r,i,t.packPadding,t.iterations,h++);let u=1/0,d=1/0,f=-1/0,m=-1/0;for(const e of s){const t=c.get(e.id);l.set(e.id,{px:t.px,py:t.py}),y(a,t.px,t.py,e.r),u>t.px-e.r&&(u=t.px-e.r),t.px+e.r>f&&(f=t.px+e.r),d>t.py-e.r&&(d=t.py-e.r),t.py+e.r>m&&(m=t.py+e.r)}return Number.isFinite(u)?{x:u-$t,y:d-$t,w:f-u+2*$t,h:m-d+2*$t}:null};if("banded"===t.rowMode){const r=new Map;for(const t of e)r.set(t.row,(r.get(t.row)??0)+1);const a=t.rowOrder.filter(e=>r.has(e)),s=Math.max(1,t.innerH-t.rowGap*Math.max(0,a.length-1)),c=a.map(e=>Math.pow(r.get(e),i)),d=c.reduce((e,t)=>e+t,0)||1,h=new Map;let p=t.innerY+t.innerH;for(let e=0;a.length>e;e++){const n="uniform"===t.cellSizing?s/a.length:c[e]/d*s,o=p-n;h.set(a[e],{y:o,h:n}),p=o-t.rowGap}o.forEach((e,t)=>{const o=m(n.get(e),e=>e.row);for(const e of a){const n=o.get(e),r=h.get(e);n&&r&&g(n,u[t].x,r.y,u[t].w,r.h,e)}});const y=[],x=new Map;for(const e of a){const t=h.get(e);x.set(e,t.y+t.h/2);const n=f.get(e);n&&Number.isFinite(n.minX)&&y.push({x:n.minX-$t,y:n.minY-$t,w:n.maxX-n.minX+2*$t,h:n.maxY-n.minY+2*$t})}return{positions:l,enclosures:y,colBands:u,rowLabelY:x}}const x=new Map;o.forEach((e,o)=>{const r=m(n.get(e),e=>e.row),a=t.rowOrder.filter(e=>r.has(e)),s=Math.max(1,t.innerH-t.rowGap*Math.max(0,a.length-1)),c=a.map(e=>Math.pow(r.get(e).length,i)),l=c.reduce((e,t)=>e+t,0)||1;let d=t.innerY+t.innerH;a.forEach((e,n)=>{const i="uniform"===t.cellSizing?s/a.length:c[n]/l*s,h=d-i,f=g(r.get(e),u[o].x,h,u[o].w,i,e);if(f){p.push(f);const t=x.get(e)??{sum:0,n:0};t.sum+=f.y+f.h/2,t.n+=1,x.set(e,t)}d=h-t.rowGap})});const b=new Map;for(const[e,t]of x)b.set(e,t.sum/t.n);return{positions:l,enclosures:p,colBands:u,rowLabelY:b}}(W,{columnOrder:ue,rowOrder:de,innerX:E,innerY:F,innerW:R,innerH:P,rowMode:M,cellSizing:v,proportionExponent:k,columnGap:$,rowGap:A,packPadding:S,iterations:I})),me=e.selection,pe=me?.isActive?me.predicate:null,ye=t.highlight??null,ge=t.dimOpacity??.16,xe=t.markStroke,be=t.markStrokeWidth??0,we=t.markerColor??"#ffffff",Me=t.iconColor??"rgba(255,255,255,0.92)",ve=t.iconStrokeWidth??1,ke=t.iconScale??.72,$e=[],Ae=[],Se=[];for(const e of W){const t=fe.positions.get(e.id);if(!t)continue;const n=g(e.datum,{highlight:ye,predicate:pe,dimOpacity:ge}),o={type:"symbol",cx:t.px,cy:t.py,size:e.size,symbolType:e.baseShape,style:{fill:G(e.colorKey,H(e.shadeVal)),opacity:n,...xe?{stroke:xe,strokeWidth:be}:{}},datum:e.datum,id:e.id,label:e.id+""};if($e.push(o),e.iconShape){const o=Math.sqrt(e.size/Math.PI)*ke,r=oe(e.iconShape,100);Se.push({x:t.px,y:t.py,size:r>0?o/r*100*(o/r):Math.PI*o*o,shape:e.iconShape,opacity:n})}e.marker&&n>ge+.001&&Ae.push({x:t.px,y:t.py,r:Math.max(1,.4*Math.sqrt(e.size/Math.PI))})}const Ie=[];if(t.callouts&&t.callouts.length>0){const e=t.calloutColor??"var(--semiotic-text, #f4f4f8)",o=n.y+n.height-(z>0?.45*z:9),r=[];for(let e=0;t.callouts.length>e;e++){const n=t.callouts[e],o=W.find(e=>e.datum[n.field]+""==n.value+"");if(!o)continue;const i=fe.positions.get(o.id);i&&r.push({c:n,ci:e,px:i.px,py:i.py,markR:Math.sqrt(o.size/Math.PI)})}const i=r.filter(e=>null==e.c.at).sort((e,t)=>e.px-t.px),a=new Map;i.forEach((e,t)=>{a.set(e.ci,E+(t+.5)/i.length*R)});for(const t of r){const r=t.c;let i=a.get(t.ci)??t.px,s=o;const c=r.connector??(a.has(t.ci)?"elbow":"straight");"object"==typeof r.at&&r.at?(i=r.at.x,s=r.at.y):"number"==typeof r.at&&(s=n.y+r.at*n.height),Ie.push({keyId:"callout-"+t.ci,markX:t.px,markY:t.py,labelX:i,labelY:s,label:r.label,connector:c,markRadius:Math.max(t.markR+3,7),stroke:e,color:e,fontSize:11,labelAnchor:"middle",labelBaseline:"auto"})}}const je=function(e,t){const n=t.columnLabel??(e=>e),o=t.rowLabel??(e=>e);return(0,bt.jsxs)("g",{className:"packed-cluster-matrix-chrome",style:{pointerEvents:"none"},children:[t.showEnclosures&&e.enclosures.map((e,n)=>ht({keyId:"enc-"+n,x:e.x,y:e.y,width:e.w,height:e.h,radius:t.enclosureRadius,stroke:t.enclosureColor,strokeWidth:t.enclosureWidth,opacity:t.enclosureOpacity})),t.iconMarks.length>0&&(0,bt.jsx)("g",{className:"packed-cluster-matrix-icons",children:t.iconMarks.map((e,n)=>(0,bt.jsx)("path",{d:ee(e.shape,e.size),transform:`translate(${e.x},${e.y})`,fill:"none",stroke:t.iconColor,strokeWidth:t.iconStrokeWidth,opacity:e.opacity},"ic-"+n))}),t.markerDots.length>0&&(0,bt.jsx)("g",{className:"packed-cluster-matrix-markers",children:t.markerDots.map((e,n)=>(0,bt.jsx)("circle",{cx:e.x,cy:e.y,r:e.r,fill:t.markerColor},"mk-"+n))}),t.showColumnHeaders&&e.colBands.map((e,o)=>pt({keyId:"col-"+o,text:n(e.col),x:e.x+e.w/2,y:t.headerY,anchor:"middle",fontSize:t.headerFontSize,fontWeight:700,color:t.headerColor})),t.showRowLabels&&[...e.rowLabelY].map(([e,n])=>pt({keyId:"row-"+e,text:o(e),x:t.labelX,y:n,anchor:"end",fontSize:t.labelFontSize,fontWeight:600,color:t.labelColor})),t.callouts.map(e=>xt(e))]})}(fe,{markerDots:Ae,markerColor:we,iconMarks:Se,iconColor:Me,iconStrokeWidth:ve,callouts:Ie,plot:n,showEnclosures:j,showColumnHeaders:C,showRowLabels:L,enclosureColor:t.enclosureColor??"var(--semiotic-text, #f4f4f8)",enclosureRadius:t.enclosureRadius??9,enclosureOpacity:t.enclosureOpacity??.5,enclosureWidth:t.enclosureWidth??1.5,headerColor:t.headerColor??"var(--semiotic-text, #f4f4f8)",labelColor:t.labelColor??"var(--semiotic-text-secondary, #b9b9c8)",headerFontSize:t.headerFontSize??13,labelFontSize:t.labelFontSize??11,headerY:n.y+.62*T,labelX:n.x+N-10,columnLabel:t.columnLabel,rowLabel:t.rowLabel});return{sceneNodes:$e,overlays:je}},$t=4;function At(e){let t=2166136261;const n=e=>{for(let n=0;e.length>n;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619)};for(const o of e)n(o.id),n(o.col),n(o.row),t^=Math.round(8*o.packR),t=Math.imul(t,16777619);return(t>>>0).toString(36)}var St=c(require("react")),It=e=>{const t=e.config,{plot:n}=e.dimensions;if(0>=n.width||0>=n.height)return{nodes:[]};const o=d(t.categoryAccessor),r=d(t.stackBy),i=e=>{const n="function"==typeof t.valueAccessor?t.valueAccessor(e):e[t.valueAccessor],o=Number(n);return Number.isFinite(o)&&o>0?o:0},a=t.gutter??2,s="string"==typeof t.categoryAccessor?t.categoryAccessor:"category",c="string"==typeof t.stackBy?t.stackBy:"stack",l="string"==typeof t.valueAccessor?t.valueAccessor:"value",u=(e,t,n)=>p(o=>{o("category",e),o("stack",t),o("value",n),"category"!==s&&o(s,e),"stack"!==c&&o(c,t),"value"!==l&&o(l,n)}),h=!1!==t.showCategoryLabels,f=Math.max(0,n.height-(t.labelPadding??(h?22:0))),m=[],y=new Map,g=[],x=new Set,b=new Map;for(const t of e.data){const e=o(t)+"",n=r(t)+"",a=i(t);y.has(e)||(m.push(e),y.set(e,0),b.set(e,new Map)),x.has(n)||(x.add(n),g.push(n)),y.set(e,(y.get(e)??0)+a);const s=b.get(e);s.set(n,(s.get(n)??0)+a)}const w=t.categoryOrder?jt(t.categoryOrder,m,e=>y.has(e)):m,M=t.stackOrder?jt(t.stackOrder,g,()=>!0):g,v=w.reduce((e,t)=>e+(y.get(t)??0),0);if(0>=v)return{nodes:[]};const k=Math.max(0,n.width-a*Math.max(0,w.length-1)),$=[],A=[];let S=n.x;for(const t of w){const o=y.get(t)??0,r=o/v*k;if(0>=r)continue;A.push({cat:t,x:S,w:r});const i=b.get(t);let s=n.y;for(const n of M){const a=i.get(n)??0;if(0>=a)continue;const c=a/o*f;$.push({type:"rect",x:S,y:s,w:r,h:c,style:{fill:e.resolveColor(n),stroke:"none"},datum:u(t,n,a),group:n}),s+=c}S+=r+a}return{nodes:$,overlays:h&&A.length>0?function(e,t,n){const o=e.map((e,o)=>pt({keyId:"marimekko-label-"+o,text:e.cat,x:e.x+e.w/2,y:t+12,anchor:"middle",baseline:"auto",maxWidth:e.w-4,fontSize:12,color:n}));return St.createElement(St.Fragment,null,...o)}(A,n.y+f+4,`var(--semiotic-text, ${e.theme.semantic.text??"currentColor"})`):null}};function jt(e,t,n){const o=new Set,r=[];for(const t of e)n(t)&&!o.has(t)&&(o.add(t),r.push(t));for(const e of t)o.has(e)||r.push(e);return r}var Ct=c(require("react")),Lt=e=>{const t=e.config,{plot:n}=e.dimensions;if(0>=n.width||0>=n.height||0===e.data.length)return{nodes:[]};const o=t.rowHeight??28,r=t.rowGap??12,i=!1!==t.showLabels,a=i?t.labelWidth??120:0,s=!1!==t.showTicks,c=s?14:0,l=t.tickFormat??(e=>e.toLocaleString()),u=n.x+a,h=Math.max(0,n.width-a);if(0>=h)return{nodes:[]};const f=d(t.categoryAccessor),m=e=>{const t=Number(e);return Number.isFinite(t)&&t>0?t:0},y=e=>m("function"==typeof t.valueAccessor?t.valueAccessor(e):e[t.valueAccessor]),g=e=>m("function"==typeof t.targetAccessor?t.targetAccessor(e):e[t.targetAccessor]),x=e=>{const n="function"==typeof t.rangesAccessor?t.rangesAccessor(e):e[t.rangesAccessor];return Array.isArray(n)?n.map(m).sort((e,t)=>e-t):[]},b="string"==typeof t.categoryAccessor?t.categoryAccessor:"metric",w="string"==typeof t.valueAccessor?t.valueAccessor:"value",M="string"==typeof t.targetAccessor?t.targetAccessor:"target",v=t.actualColor??e.theme.semantic.primary??"#3b6cb1",k=e.theme.semantic.text??"currentColor",$=t.targetColor??`var(--semiotic-text, ${k})`,A=[`var(--semiotic-surface, ${e.theme.semantic.surface??"#e8eaed"})`,`var(--semiotic-grid, ${e.theme.semantic.grid??"#cdd1d6"})`,`var(--semiotic-border, ${e.theme.semantic.border??"#a3a8af"})`],S=`var(--semiotic-text, ${k})`,I=`var(--semiotic-text-secondary, ${e.theme.semantic.textSecondary??"#888"})`,j=[],C=[];for(let t=0;e.data.length>t;t++){const i=e.data[t],a=x(i),s=y(i),l=g(i),d=Math.max(s,l,...a.length?a:[0]);if(0>=d)continue;const m=n.y+t*(o+r+c);if(m+o+c>n.y+n.height)break;C.push({yTop:m,label:f(i),actual:s,target:l,maxVal:d});const k=e=>u+e/d*h,S=f(i),I=e=>p(t=>{t("metric",S),"metric"!==b&&t(b,S),e(t)});let L=u;for(let e=0;a.length>e;e++){const t=k(a[e]),n=t-L;n>0&&j.push({type:"rect",x:L,y:m,w:n,h:o,style:{fill:A[Math.min(e,A.length-1)],stroke:"none"},datum:I(t=>{t("range",e),t("rangeValue",a[e]),t("kind","range")}),group:"range-"+e}),L=t}const T=Math.max(6,Math.floor(.45*o));j.push({type:"rect",x:u,y:m+(o-T)/2,w:k(s)-u,h:T,style:{fill:v,stroke:"none"},datum:I(e=>{e("value",s),e("kind","actual"),"value"!==w&&e(w,s)}),group:"actual"});const N=3,z=Math.floor(.8*o);j.push({type:"rect",x:k(l)-N/2,y:m+(o-z)/2,w:N,h:z,style:{fill:$,stroke:"none"},datum:I(e=>{e("target",l),e("kind","target"),"target"!==M&&e(M,l)}),group:"target"})}const L=[];for(let e=0;C.length>e;e++){const t=C[e];if(i&&L.push(pt({keyId:"bullet-label-"+e,text:t.label,x:n.x+a-8,y:t.yTop+o/2,anchor:"end",baseline:"middle",fontSize:13,fontWeight:500,color:S})),s){const n=5,r=t.yTop+o+2;for(let o=0;n>o;o++){const i=t.maxVal*o/(n-1),a=u+i/t.maxVal*h;L.push(Ct.createElement("line",{key:`bullet-tick-${e}-${o}`,x1:a,x2:a,y1:r,y2:r+3,stroke:I,strokeWidth:1}),pt({keyId:`bullet-ticktext-${e}-${o}`,text:l(i),x:a,y:r+12,anchor:0===o?"start":o===n-1?"end":"middle",baseline:"auto",fontSize:10,color:I}))}}}return{nodes:j,overlays:L.length>0?Ct.createElement(Ct.Fragment,null,...L):null}},Tt=c(require("react")),Nt=require("d3-scale"),zt=e=>{const t=e.config,{plot:n}=e.dimensions,o=t.fields??[];if(2>o.length||0>=n.width||0>=n.height)return{nodes:[]};if(0===e.data.length)return{nodes:[]};const r={};for(const n of o){if(t.domains?.[n]){r[n]=t.domains[n];continue}let o=1/0,i=-1/0;for(const t of e.data){const e=Number(t[n]);Number.isFinite(e)&&(o>e&&(o=e),e>i&&(i=e))}r[n]=Number.isFinite(o)&&Number.isFinite(i)&&o!==i?[o,i]:[0,1]}const i=!1!==t.showAxes,a=i?t.axisLabelPadding??24:8,s=i?18:8,c=o.map(e=>(0,Nt.scaleLinear)().domain(r[e]).range([n.y+n.height-s,n.y+a])),l=o.map((e,t)=>1===o.length?n.x+n.width/2:n.x+t/(o.length-1)*n.width),u=t.colorBy?"function"==typeof t.colorBy?t.colorBy:e=>(e[t.colorBy]??"")+"":null,d=t.opacity??.45,h=t.strokeWidth??1.25,f=e.theme.semantic.primary??"#3b6cb1",m=t.dimmedOpacity??.08,p=t.highlightFn,y=[],x=[];for(const n of e.data){const r=u?e.resolveColor(u(n)+""):f,i=!p||p(n),a=g(n,{predicate:p,baseOpacity:d,dimOpacity:m,brighten:.4}),s=i?x:y;for(let e=0;o.length-1>e;e++){const t=Number(n[o[e]]),u=Number(n[o[e+1]]);if(!Number.isFinite(t)||!Number.isFinite(u))continue;const d={type:"connector",x1:l[e],y1:c[e](t),x2:l[e+1],y2:c[e+1](u),style:{stroke:r,strokeWidth:p&&i?h+.75:h,opacity:a,fill:"none"},datum:n};s.push(d)}if(t.showPoints)for(let e=0;o.length>e;e++){const t=Number(n[o[e]]);if(!Number.isFinite(t))continue;const i={type:"point",x:l[e],y:c[e](t),r:2.5,style:{fill:r,stroke:"none",opacity:Math.min(1,a+.3)},datum:n};s.push(i)}}let b=null;if(i){const i=`var(--semiotic-border, ${e.theme.semantic.border??"#aaa"})`,u=`var(--semiotic-text, ${e.theme.semantic.text??"currentColor"})`,d=`var(--semiotic-text-secondary, ${e.theme.semantic.textSecondary??"#888"})`,h=n.y+a,f=n.y+n.height-s,m=[];for(let e=0;o.length>e;e++){const s=o[e],p=l[e],y=t.tickFormat?.[s]??(e=>e.toLocaleString());m.push(Tt.createElement("line",{key:"pc-axis-line-"+e,x1:p,x2:p,y1:h,y2:f,stroke:i,strokeWidth:1})),m.push(pt({keyId:"pc-axis-label-"+e,text:s,x:p,y:n.y+a-8,anchor:"middle",baseline:"auto",fontSize:12,fontWeight:600,color:u}));const[g,x]=r[s],b=5;for(let t=0;b>t;t++){const n=g+(x-g)*t/(b-1),o=c[e](n);m.push(Tt.createElement("line",{key:`pc-tick-${e}-${t}`,x1:p-3,x2:p+3,y1:o,y2:o,stroke:i,strokeWidth:1}),pt({keyId:`pc-ticktext-${e}-${t}`,text:y(n),x:p+6,y:o+3,anchor:"start",baseline:"auto",fontSize:10,color:d}))}}b=Tt.createElement(Tt.Fragment,null,...m)}return{nodes:y.concat(x),overlays:b}},Et=require("react/jsx-runtime"),Ft=1.75,Rt="#222222";function Pt(e,t){return e.topRadius+(t-e.height)/e.height*(e.topRadius-e.bottomRadius)}function Wt(e,t){return function(e,t,n){return Math.PI*n/3*(e*e+e*t+t*t)}(Pt(e,t),e.bottomRadius,t)}function Ot(e,t){const n=(e.topRadius+e.bottomRadius)/2,o=Math.PI*n*n;let r=t/o,i=t-Wt(e,r),a=0;for(;100>a&&Math.abs(i)>1e-4;)r+=i/o,i=t-Wt(e,r),a++;return r}function qt(e,t){const n=43758.5453*Math.sin(12.9898*e+78.233);return 2*(n-Math.floor(n)-.5)*t}function Dt(e,t){if(t>e||2*t>e)return[{x:0,y:0}];const n=[],o=e=>{let r=Math.floor(2*Math.PI*e/(2*t));1>r&&(r=1);const i=0*e,a=Math.hypot(1*e-e*Math.cos(2*Math.PI/r),i-e*Math.sin(2*Math.PI/r));2*t>a&&r>1&&r--;for(let t=0;r>t;t++)n.push({x:e*Math.cos(2*t*Math.PI/r),y:e*Math.sin(2*t*Math.PI/r)});const s=e-2*t;t>s?e>2*t&&n.push({x:0,y:0}):o(s)};return o(e-t),n}function Bt(e,t,n){const o=[];let r=n,i=0;for(;r>0&&60>i;){const n=t*(1+2*i),a=Dt(Pt(e,n),t),s=a.length-r,c=s>1?a.slice(Math.floor(s/2),Math.floor(s/2)+r):a,l=e.height-n;if(c.forEach((e,t)=>{o.push({x:e.x+qt(97*i+t,.15),z:l+qt(31*i+t,.05)})}),r-=c.length,i++,0===c.length)break}return{pearls:o,layers:i}}function Yt(e,t,n,o){if(0>=o)return[];const r=function(e,t,n){let o=n,r=0;for(;o>0&&60>r;){const n=Pt(e,t+.875*(1+2*r));o-=Math.max(1,Math.floor(2*n/Ft)),r++}return r}(e,t,o),i=Math.max(t,n-r*Ft)+.875,a=[];let s=0;for(let t=0;r>t&&o>s;t++){const n=i+Ft*t,r=Pt(e,n),c=Math.max(1,Math.floor(2*r/Ft)),l=(2*r-c*Ft)/(c+1),u=-r+l,d=e.height-n-.875-.1;for(let e=0;c>e&&o>s;e++)a.push({cx:u+(l+Ft)*e+.875,cy:d+.875,rotation:qt(53*t+e,10)}),s++}return a}function Ht(e,t){const n=Number(e);return Number.isFinite(n)?n:t}var Vt=e=>{const t=e.config,{plot:n}=e.dimensions;if(0>=n.width||0>=n.height)return{nodes:[]};const o=d(t.categoryAccessor??"name"),r=d(t.teaVolumeAccessor??"teaVolume"),i=d(t.bobaVolumeAccessor??"bobaVolume"),a=d(t.iceVolumeAccessor??"iceVolume"),s=d(t.cupHeightAccessor??"cupHeight"),c=d(t.cupTopRadiusAccessor??"cupTopRadius"),l=d(t.cupBottomRadiusAccessor??"cupBottomRadius"),u=d(t.bobaRadiusAccessor??"bobaRadius"),h=t.cupWidthRatio??.82,f=e.scales.o,m=f.bandwidth(),p=Math.max(1,n.height-26-8),y=n.y+8,g=[],x=[];for(const t of e.data){const n=o(t)+"",d=f(n);if(null==d)continue;const b={height:Ht(s(t),15.5),topRadius:Ht(c(t),4.75),bottomRadius:Ht(l(t),3.75)},w=Ht(u(t),.6),M=Math.max(0,Ht(r(t),450)),$=Math.max(0,Ht(i(t),110)),A=Math.max(0,Ht(a(t),135)),S=Math.PI*w*w,I=Math.floor($/S),j=I*S,C=Math.floor(A/5.359375),L=C*Ft*Ft*Ft,T=M+j+L,N=Ot(b,T),z=Math.min(b.height,Math.max(0,N)),E=Pt(b,z),{pearls:F,layers:R}=Bt(b,w,I),P=z,W=Yt(b,R*w*2,P,C),O=b.height-20.32,q=Math.min(0,O),D=Math.min(m*h/(2*(b.topRadius+1)),p/(b.height-q)),B=d+m/2,Y=e=>B+e*D,H=e=>y+(e-q)*D,V=Y(-(b.topRadius+1)),_=Y(b.topRadius+1),G=H(q),X=H(b.height),U=v({name:n,teaVolume:M,bobaVolume:Math.round(j),iceVolume:Math.round(L),totalVolume:Math.round(T),numBobas:I,numIce:C,kind:"boba cup"});g.push({type:"rect",x:V,y:G,w:Math.max(1,_-V),h:Math.max(1,X-G),style:{fill:"rgba(0,0,0,0)",stroke:"none"},datum:U,group:n,_transitionKey:"boba-"+k(n)});const K=b.height-P,Q=k(n),Z=e.resolveColor(n);x.push((0,Et.jsxs)("g",{children:[M>0?(0,Et.jsx)("path",{d:`M${Y(-E)},${H(K)} L${Y(-b.bottomRadius)},${H(b.height)} L${Y(b.bottomRadius)},${H(b.height)} L${Y(E)},${H(K)} z`,fill:"#D2B799"}):null,F.map((e,t)=>(0,Et.jsx)("circle",{cx:Y(e.x),cy:H(e.z),r:w*D,fill:"#222222",opacity:.5},"p-"+t)),W.map((e,t)=>(0,Et.jsx)("rect",{x:Y(e.cx)-.95*Ft*D/2,y:H(e.cy)-.95*Ft*D/2,width:.95*Ft*D,height:.95*Ft*D,rx:2,fill:"#a5f2f3",opacity:.85,transform:`rotate(${e.rotation} ${Y(e.cx)} ${H(e.cy)})`},"i-"+t)),(0,Et.jsx)("path",{d:`M${Y(-b.topRadius)},${H(0)} L${Y(-b.bottomRadius)},${H(b.height)} L${Y(b.bottomRadius)},${H(b.height)} L${Y(b.topRadius)},${H(0)}`,fill:"none",stroke:Rt,strokeWidth:2.5}),(0,Et.jsx)("line",{x1:Y(-(b.topRadius+1)),y1:H(0),x2:Y(b.topRadius+1),y2:H(0),stroke:Rt,strokeWidth:3,strokeLinecap:"round"}),M>0?(0,Et.jsx)("path",{d:`M${Y(-.635)},${H(O)} L${Y(-.635)},${H(b.height-.4)} L${Y(.635)},${H(b.height-1.27-.4)} L${Y(.635)},${H(O)} z`,fill:"#4F91CB",stroke:Rt,strokeWidth:1,opacity:.78}):null,(0,Et.jsx)("text",{x:B,y:X+16,textAnchor:"middle",fontSize:12,fontWeight:600,fill:"var(--semiotic-text, #333)",children:n}),(0,Et.jsx)("text",{x:B,y:X+30,textAnchor:"middle",fontSize:10,fill:Z,children:`${I} pearls · ${Math.round(T)} cm³`})]},"boba-"+Q))}return{nodes:g,overlays:(0,Et.jsx)("g",{className:"semiotic-boba",style:{pointerEvents:"none"},children:x})}};function _t(e,t){const n=t.scales?.x??t.scales?.time;return n?null!=e.x?n(e.x):t.xAccessor&&null!=e[t.xAccessor]?n(e[t.xAccessor]):null:null}function Gt(e,t){const n=t.scales?.y??t.scales?.value;return n?null!=e.y?n(e.y):t.yAccessor&&null!=e[t.yAccessor]?n(e[t.yAccessor]):null:null}function Xt(e){return null==e?null:e+""}function Ut(e,t,n){return t.stickyPositionCache?.set(e,n),n}var Kt=new Set(["label","callout","callout-circle","callout-rect","text","widget"]);function Qt(e){return!!e&&"object"==typeof e&&Kt.has(function(e){return"string"==typeof e?.type?e.type:""}(e))}new Set(["label","callout","callout-circle","callout-rect"]);var Zt=2e4,Jt=1;function en(e){return"primary"===e?.emphasis||!0===e?.defensive}function tn(e,t,n={}){return"number"==typeof n.maxAnnotations&&Number.isFinite(n.maxAnnotations)?Math.max(0,Math.floor(n.maxAnnotations)):e>0&&t>0?Math.max(1,Math.round(e*t/(n.areaPerAnnotation&&n.areaPerAnnotation>0?n.areaPerAnnotation:Zt))):1/0}function nn(e){let t;const n=e?.emphasis;t="primary"===n?100:"secondary"===n?10:50;const o=e?.provenance?.confidence;switch("number"==typeof o&&Number.isFinite(o)&&(t+=15*Math.max(0,Math.min(1,o))),e?.lifecycle?.freshness){case"fresh":t+=8;break;case"aging":t+=4;break;case"stale":t+=1;break;case"expired":t-=200}return t}function on(e){const{annotations:t,width:n,height:o}=e,r=Math.max(0,e.minVisible??Jt),i=tn(n,o,e),a=t.map((e,t)=>{return{annotation:e,index:t,note:(n=e,Qt(n))};var n}),s=a.filter(e=>e.note);if(0===s.length||i>=s.length)return{visible:t.slice(),deferred:[],budget:i};const c=s.filter(e=>en(e.annotation)),l=s.filter(e=>!en(e.annotation)).sort((e,t)=>nn(t.annotation)-nn(e.annotation)||e.index-t.index),u=Math.min(l.length,Math.max(Math.max(0,i-c.length),Math.max(0,r-c.length))),d=new Set([...c.map(e=>e.index),...l.slice(0,u).map(e=>e.index)]),h=[],f=[];for(const{annotation:e,index:t,note:n}of a)!n||d.has(t)?h.push(e):f.push(e);return{visible:h,deferred:f,budget:i}}var rn=32,an=6,sn=4,cn=8,ln=72,un=30,dn=-30,hn=8,fn=480,mn=3;var pn={ai:"AI",agent:"agent",watcher:"watcher",system:"system",import:"imported",computed:"computed",user:"you"};function yn(e){if(!gn(e))return e;const t=("string"==typeof e.mobileText?e.mobileText:void 0)??("string"==typeof e.shortText?e.shortText:void 0);return!t||"string"!=typeof e.label&&null!=e.label?e:{...e,label:t}}function gn(e){return Qt(e)}function xn(e,t){if(!e)return[];const n=Math.max(1,Math.floor(t/7)),o=e.split(/\s+/).filter(Boolean),r=[];let i="";for(const e of o)i&&i.length+e.length+1>n?(r.push(i),i=e):i=i?`${i} ${e}`:e;return i&&r.push(i),r}function bn(e,t,n,o,r){const i=e+n,a=t+o;return Math.abs(n)>Math.abs(o)?{x:0>n?i-r.width-4:i+4,y:0>o?a-r.height:a,width:r.width,height:r.height}:{x:0>n?i-r.width:i,y:0>o?a-r.height-4:a+4,width:r.width,height:r.height}}function wn(e,t){return{x:e.x-t,y:e.y-t,width:e.width+2*t,height:e.height+2*t}}function Mn(e,t){return Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x))*Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y))}function vn(e,t,n,o,r,i,a,s){const c=wn(e,a);let l=.4*Math.hypot(t.dx,t.dy)+80*function(e,t,n,o){const r=Math.max(0,o-e.x),i=Math.max(0,o-e.y);return(r+Math.max(0,e.x+e.width-(t-o)))*e.height+(i+Math.max(0,e.y+e.height-(n-o)))*e.width}(c,r,i,s);for(const e of n)l+=12*Mn(c,e);for(const e of o)l+=4*Mn(c,e);return l}function kn(e,t,n){if("widget"===e.type&&"number"==typeof e.px&&"number"==typeof e.py)return{x:e.px,y:e.py};const o=e.pointId??e.nodeId;if(null!=o&&n.pointNodes){const e=n.pointNodes.find(e=>e.pointId===o);if(e)return{x:e.x,y:e.y}}const r=e.coordinates,i=n.scales?.geoProjection;if(Array.isArray(r)&&r.length>=2&&i){const e=r[0],t=r[1];if("number"==typeof e&&"number"==typeof t){const n=i([e,t]);if(n&&"number"==typeof n[0]&&"number"==typeof n[1])return{x:n[0],y:n[1]}}}return n.scales||"number"!=typeof e.x||"number"!=typeof e.y?function(e,t,n){const o=e.anchor||e.lifecycle?.anchor||"fixed";if("latest"===o){if(null!=e.pointId&&n.pointNodes&&n.pointNodes.length>0)for(let o=n.pointNodes.length-1;o>=0;o--){const r=n.pointNodes[o];if(r.pointId===e.pointId)return Ut(t,n,{x:r.x,y:r.y})}const o=function(e){const t=e.data;if(!t||0===t.length)return null;const n=t[t.length-1],o=e.scales?.x??e.scales?.time,r=e.scales?.y??e.scales?.value;if(!o||!r)return null;const i=n[e.xAccessor||"x"],a=n[e.yAccessor||"y"];return null==i||null==a?null:{x:o(i),y:r(a)}}(n);return o?Ut(t,n,o):null}if("semantic"===o){const o=function(e,t,n){const o=function(e){return Xt(e.provenance?.stableId??e.stableId)}(e);if(!o)return null;const r=n.pointNodes?.find(e=>Xt(e.pointId)===o);if(r)return Ut(t,n,{x:r.x,y:r.y});const i=n.data?.find(e=>function(e){return Xt(e.stableId??e.id??e.provenance?.stableId)}(e)===o);if(!i)return null;const a=_t(i,n),s=Gt(i,n);return null==a||null==s?null:Ut(t,n,{x:a,y:s})}(e,t,n);if(o)return o}let r=null,i=null;if(null!=e.pointId&&n.pointNodes){const t=n.pointNodes.find(t=>t.pointId===e.pointId);t&&(r=t.x,i=t.y)}if(null!=r&&null!=i||(r=_t(e,n),i=Gt(e,n)),null!=r&&null!=i)return Ut(t,n,{x:r,y:i});if("sticky"===o){const e=n.stickyPositionCache?.get(t);if(e)return e}return null}(e,t,n):{x:e.x,y:e.y}}function $n(e){const{annotations:t,context:n,defaultOffset:o=rn,notePadding:r=an,markPadding:i=sn,edgePadding:a=cn,preserveManualOffsets:s=!0,routeLongConnectors:c=!0,connectorThreshold:l=ln,density:u,progressiveDisclosure:d=!1,redundantCues:h=!1,responsive:f,mobile:m,cohesion:p,audience:y}=e,g=n.width||0,x=n.height||0,b="object"==typeof m?m:{},w=b.breakpoint??fn,M=!!m&&w>=g,v=M&&!1!==b.preferShortText?t.map(yn):t,k=M&&!u?{maxAnnotations:b.maxAnnotations??("callout-list"===b.strategy?1:2),minVisible:b.minVisible??1}:u,$=d||M&&(!1!==b.progressiveDisclosure||"callout-list"===b.strategy),A=M&&!f?b.responsive??{minWidth:w}:f,S=M&&!p?b.cohesion:p;if(0===v.length||0>=g||0>=x)return v.slice();const I=[],j=function(e,t){return(e.pointNodes||[]).map(e=>{const n=Math.max(1,e.r||1)+t;return{x:e.x-n,y:e.y-n,width:2*n,height:2*n}})}(n,i);let C=!1;const L=v.map((e,t)=>{if(!gn(e))return e;const i=kn(e,t,n);if(!i)return e;const u=function(e){if("widget"===e.type)return{width:"number"==typeof e.width?e.width:32,height:"number"==typeof e.height?e.height:32};const t="number"==typeof e.wrap?e.wrap:120,n=[...xn("string"==typeof e.title?e.title:void 0,t),...xn("string"==typeof e.label?e.label:void 0,t)],o=n.reduce((e,t)=>Math.max(e,t.length),0);return{width:Math.max(24,Math.min(t,7*o)+10),height:Math.max(18,16*n.length+6)}}(e);if(s&&("number"==typeof(d=e).dx||"number"==typeof d.dy)){const t=function(e){return"text"===e.type||"widget"===e.type?{dx:0,dy:0}:{dx:un,dy:dn}}(e);return I.push(wn(bn(i.x,i.y,"number"==typeof e.dx?e.dx:t.dx,"number"==typeof e.dy?e.dy:t.dy,u),r)),e}var d;let h=null,f=1/0;for(const e of function(e){const t=1.6*e;return[{dx:e,dy:-e},{dx:-e,dy:-e},{dx:e,dy:e},{dx:-e,dy:e},{dx:e,dy:0},{dx:-e,dy:0},{dx:0,dy:-e},{dx:0,dy:e},{dx:t,dy:-t},{dx:-t,dy:-t},{dx:t,dy:t},{dx:-t,dy:t}]}(o)){const t=vn(bn(i.x,i.y,e.dx,e.dy,u),e,I,j,g,x,r,a);f>t&&(h=e,f=t)}if(!h)return e;const m=wn(bn(i.x,i.y,h.dx,h.dy,u),r);I.push(m);const p=Math.hypot(h.dx,h.dy),y=c&&p>=l&&"text"!==e.type&&"widget"!==e.type?{...e.connector||{end:"arrow"},type:"curve"}:e.connector;return C=!0,{...e,dx:h.dx,dy:h.dy,...y?{connector:y}:{}}}),T=C?L:v.slice();let N=T;if(h){let e=!1;const t=T.map(t=>{const n=function(e){return"text"!==e.type||"string"!=typeof e.color||Math.hypot("number"==typeof e.dx?e.dx:0,"number"==typeof e.dy?e.dy:0)<hn?e:{...e,_redundantConnector:!0}}(t);return n!==t&&(e=!0),n});N=e?t:T}{let e=!1;const t=N.map(t=>{if(!0!==t?.defensive)return t;const n=function(e){const t=e?.provenance;if(!t||"object"!=typeof t)return e;const n="string"==typeof t.source?pn[t.source]??t.source:null,o="number"==typeof t.confidence&&Number.isFinite(t.confidence)?Math.round(100*Math.max(0,Math.min(1,t.confidence)))+"%":null;if(!n&&!o)return e;if(null!=e.label&&"string"!=typeof e.label)return e;const r=[n,o].filter(Boolean).join(" · "),i="string"==typeof e.label?e.label:"";return i.includes(`(${r})`)?e:{...e,label:i?`${i} (${r})`:`(${r})`}}(t);return n!==t&&(e=!0),n});N=e?t:N}const z=new Set;if(k){const e="object"==typeof k?k:{},t=function(e){if(!e)return 1;const t=function(e){const t=e?.familiarity;if(!t)return mn;const n=Object.values(t).filter(e=>"number"==typeof e&&Number.isFinite(e));return 0===n.length?mn:n.reduce((e,t)=>e+t,0)/n.length}(e);return t>2?4>t?1:.6:1.5}(y),n=1===t?e:{...e,maxAnnotations:Math.max(0,Math.round((e.maxAnnotations??tn(g,x,e))*t))},{deferred:o}=on({annotations:N,width:g,height:x,...n});for(const e of o)z.add(e)}if(A&&("object"==typeof A&&"number"==typeof A.minWidth?A.minWidth:fn)>=g)for(const e of N)gn(e)&&"secondary"===e.emphasis&&z.add(e);if(z.size>0)for(const e of N)!0===e?.defensive&&z.delete(e);let E;return E=0===z.size?N:$?N.map(e=>z.has(e)?{...e,_annotationDeferred:!0}:e):N.filter(e=>!z.has(e)),S?function(e,t){let n=!1;const o=e.map(e=>gn(e)?"blended"===e.cohesion||"layer"===e.cohesion?e:(n=!0,{...e,cohesion:t}):e);return n?o:e}(E,S):E}var An=["naturalGas","coal","nuclear","hydro","wind","solar","other"],Sn={naturalGas:"Natural gas",coal:"Coal",nuclear:"Nuclear",hydro:"Hydro",wind:"Wind",solar:"Solar",other:"Other"},In={tight:5,watch:12,comfortable:20};function jn(e,t=0){return"number"==typeof e&&Number.isFinite(e)?e:t}function Cn(e,t={}){const n=t.fuels??An,o=!0===t.includeZero,r=[];for(const t of e)if(t&&"number"==typeof t.t)for(const e of n){const n=jn(t.fuels?.[e]);(o||n>0)&&r.push({t:t.t,fuel:e,fuelLabel:Sn[e],mw:n,ba:t.ba})}return r}function Ln(e){const t=[];for(const n of e){if(!n||"number"!=typeof n.t)continue;const e=jn(n.demandMw),o=n.forecastMw;"number"==typeof o&&Number.isFinite(o)&&t.push({t:n.t,a:e,b:o,demandMw:e,forecastMw:o,errorMw:e-o,ba:n.ba})}return t}function Tn(e){const t=jn(e.demand);if(0>=t)return 0;const n=jn(e.capacityOrNetGen),o=jn(e.interchange);return(n+(0>o?-o:0)-t)/t*100}function Nn(e){return e.filter(e=>e&&"number"==typeof e.t).map(e=>{const t=jn(e.demandMw),n=jn(e.netGenMw),o=Tn({demand:t,capacityOrNetGen:n,interchange:e.interchangeMw});return{t:e.t,ba:e.ba,reserveMarginPct:o,netLoadMw:t,demandMw:t,netGenMw:n}})}function zn(e={},t={}){const{watch:n,comfortable:o}={...In,...e},r=t.field,i=r?{field:r}:{},a=t.tightHatch??{type:"hatch",background:"var(--semiotic-danger, #c2410c)",stroke:"rgba(255, 240, 200, 0.55)",spacing:5,angle:-35,lineWidth:1.25,lineOpacity:.9};return[{id:"reserve-comfortable",label:`Comfortable (≥ ${o}%)`,when:{...i,gte:o},style:{fill:t.comfortableFill??"var(--semiotic-success, #16a34a)",fillOpacity:.85}},{id:"reserve-watch",label:`Watch (< ${o}%, ≥ ${n}%)`,when:{...i,lt:o,gte:n},style:{fill:t.watchFill??"var(--semiotic-warning, #d97706)",fillOpacity:.9}},{id:"reserve-tight",label:`Tight (< ${n}%)`,when:{...i,lt:n},style:{fill:a,stroke:t.tightFill??"var(--semiotic-danger, #c2410c)",strokeWidth:1,fillOpacity:1}}]}function En(e={}){const{tight:t,watch:n,comfortable:o}={...In,...e};return[{type:"band",y0:-50,y1:t,label:"Tight",color:"var(--semiotic-danger, #c2410c)",fillOpacity:.12,emphasis:"secondary"},{type:"band",y0:t,y1:n,label:"Watch",color:"var(--semiotic-warning, #d97706)",fillOpacity:.1,emphasis:"secondary"},{type:"band",y0:n,y1:Math.max(o+30,40),label:"Headroom",color:"var(--semiotic-success, #16a34a)",fillOpacity:.06,emphasis:"secondary"}]}function Fn(e,t){if(!e.length)return null;const n=[...e].filter(e=>e&&"number"==typeof e.t).sort((e,t)=>e.t-t.t);if(!n.length)return null;let o=n[n.length-1];if("number"==typeof t&&Number.isFinite(t)){const e=n.filter(e=>t>=e.t);o=e.length?e[e.length-1]:n[0]}const r=jn(o.demandMw),i=jn(o.netGenMw),a="number"==typeof o.forecastMw&&Number.isFinite(o.forecastMw)?o.forecastMw:null,s=Tn({demand:r,capacityOrNetGen:i,interchange:o.interchangeMw}),c={};let l=null,u=0,d=0;for(const e of An){const t=jn(o.fuels?.[e]);t>0&&(d+=t,c[e]=t,t>u&&(u=t,l=e))}if(d>0)for(const e of Object.keys(c))c[e]=c[e]/d;return{t:o.t,ba:o.ba,demandMw:r,forecastMw:a,forecastErrorMw:null==a?null:r-a,netGenMw:i,reserveMarginPct:s,topFuel:l,topFuelShare:d>0?u/d:0,topFuelMw:u,fuelShares:c}}function Rn(e,t={}){const n=t.now??Date.now(),o=t.author??"system",r=t.source??"authored-scenario";return e.map(e=>{const t=(e.start+e.end)/2,i=new Date(e.start).toISOString();return{type:"x-band",x0:e.start,x1:e.end,label:e.label,color:"outage"===e.kind?"var(--semiotic-danger)":"var(--semiotic-warning)",fillOpacity:.12,emphasis:"secondary",x:t,y:e.y??e.value,note:e.note,provenance:{author:o,authorKind:"system",source:r,basis:"rule",confidence:.85,createdAt:i,stableId:e.id,dataVersion:e.start+""},lifecycle:{status:"accepted",ttlHint:e.ttlHint??"P14D",anchor:"fixed"},_eventKind:e.kind,_createdAtMs:e.start,_nowMs:n}})}function Pn(e,t=12){return[...e].filter(e=>Number.isFinite(e.reserveMarginPct)).sort((e,t)=>e.reserveMarginPct-t.reserveMarginPct).slice(0,Math.max(0,t))}function Wn(e,t=0){return Number.isFinite(e)?e.toLocaleString(void 0,{maximumFractionDigits:t,minimumFractionDigits:t})+" MW":"—"}function On(e,t=1){return Number.isFinite(e)?`${e>0?"+":""}${e.toFixed(t)}%`:"—"}var qn=c(require("react"));function Dn(e,t){if("function"==typeof e)return e;const n=e??t;return e=>Number(e[n])}function Bn(e,t={}){const n=Dn(t.start,"start"),o=Dn(t.end,"end"),r=!1===t.sort?e.slice():e.slice().sort((e,t)=>n(e)-n(t)||o(t)-o(e)),i=[];return{packed:r.map(e=>{const t=n(e);let r=i.findIndex(e=>t>=e);return-1===r&&(r=i.length),i[r]=o(e),{item:e,track:r}}),trackCount:Math.max(1,i.length)}}function Yn(e,t){const n=Dn(t.start,"start"),o=Dn(t.end,"end"),[r,i]=t.domain,a=t.step??1,s="half-open"===t.bounds,c=[];for(let t=r;i>=t;t+=a){let r=0;for(const i of e){const e=n(i),a=o(i);e>t||(s?t>=a:t>a)||r++}c.push({value:t,count:r})}return c}function Hn(e){return"function"==typeof e?e:t=>t[e]}var Vn=e=>{const t=e.config,{plot:n}=e.dimensions;if(0>=n.width||0>=n.height||0===e.data.length||!t?.domain)return{nodes:[]};const o=Hn(t.laneAccessor),r=Hn(t.startAccessor),i=Hn(t.endAccessor),a=t.idAccessor?Hn(t.idAccessor):null,s=t.unit??0,c=t.barGap??1.5,l=Math.max(0,t.minBarWidth??2),u=t.minBarHeight??3.5,d=t.maxBarHeight??10,h=t.lanePadding??7,f=t.cornerRadius??2,m=t.bottomInset??0,p=t.color??((t,n)=>e.resolveColor(n)),[y,g]=t.domain,x=g-y||1,b=e=>n.x+(e-y)/x*n.width,w=e.scales?.o?.domain?.()??[],M=t.lanes??(w.length>0?w:[...new Set(e.data.map(o))]),v=Math.max(0,n.height-m)/Math.max(1,M.length),k=e=>b(r(e)),$=e=>Math.max(k(e)+l,b(i(e)+s)),A=[];M.forEach((t,r)=>{const i=n.y+r*v,s=e.data.filter(e=>o(e)===t);if(0===s.length)return;const{packed:l,trackCount:m}=Bn(s,{start:k,end:$}),y=new Map,g=new Map;for(const{item:e,track:t}of l){const n=g.get(t);n?n.push(e):g.set(t,[e])}for(const e of g.values()){e.sort((e,t)=>k(e)-k(t));for(let t=0;e.length-1>t;t++)y.set(e[t],k(e[t+1]))}const x=(v-2*h)/m,b=Math.min(d,Math.max(Math.min(u,x),x-c));for(const{item:e,track:n}of l){const o=k(e),r=y.get(e),s=$(e)-o;A.push({type:"rect",x:o,y:i+h+n*x,w:void 0!==r&&o+s>r-1?Math.max(1,r-1-o):s,h:b,cornerRadii:f>0?{tl:f,tr:f,br:f,bl:f}:void 0,style:{fill:p(e,t),stroke:"none"},datum:e,group:t,_transitionKey:a?a(e)+"":void 0})}});const S=`var(--semiotic-text, ${e.theme.semantic.text??"#1a1a1a"})`,I=`var(--semiotic-text-secondary, ${e.theme.semantic.textSecondary??"#888"})`,j=`var(--semiotic-border, ${e.theme.semantic.border??"#94a3b8"})`,C=[];(t.periods??[]).forEach((e,t)=>{const o=b(e.start),r=Math.max(1,b(e.end+s)-o);C.push(qn.createElement("rect",{key:"period-"+t,x:o,y:n.y,width:r,height:n.height,fill:j,opacity:t%2==0?.06:.025,pointerEvents:"none"})),e.name&&C.push(pt({keyId:"period-label-"+t,text:e.name,x:o+4,y:n.y+12,anchor:"start",baseline:"hanging",fontSize:13,fontWeight:700,color:I}))});const L=!1!==t.showLaneLabels,T=t.laneLabelGap??12;if(M.forEach((e,t)=>{const o=n.y+t*v;C.push(qn.createElement("line",{key:"lane-sep-"+t,x1:n.x,x2:n.x+n.width,y1:o,y2:o,stroke:j,opacity:.45})),L&&C.push(pt({keyId:"lane-label-"+t,text:e,x:n.x-T,y:o+v/2,anchor:"end",baseline:"middle",fontSize:12,fontWeight:600,color:S}))}),!1!==t.showAxis){const e=t.axisTicks??Array.from({length:8},(e,t)=>Math.round(y+t/7*x));C.push(gt({keyId:"interval-axis",scale:b,ticks:e,orient:"top",offset:n.y,tickLength:0,gridLength:n.height,gridDasharray:"3 5",edgeAnchor:!0,format:t.tickFormat,color:I}))}return{nodes:A,overlays:qn.createElement(qn.Fragment,null,...C)}};function _n(e,t,n){const o=n?.orientation??"vertical",r=n?.bend??0,i=n?.minAlong??18,a=(e,t)=>(e+t)/2;if("vertical"===o){if(i>Math.abs(t.y-e.y)){const n=e.x>t.x?-1:1,o=a(e.x,t.x)+n*(22+Math.abs(r));return`M${e.x},${e.y} Q${o},${a(e.y,t.y)} ${t.x},${t.y}`}const n=a(e.y,t.y)+r;return`M${e.x},${e.y} C${e.x},${n} ${t.x},${n} ${t.x},${t.y}`}if(i>Math.abs(t.x-e.x)){const n=e.y>t.y?-1:1,o=a(e.y,t.y)+n*(22+Math.abs(r));return`M${e.x},${e.y} Q${a(e.x,t.x)},${o} ${t.x},${t.y}`}const s=a(e.x,t.x)+r;return`M${e.x},${e.y} C${s},${e.y} ${s},${t.y} ${t.x},${t.y}`}function Gn(e,t,n){if("vertical"===(n?.orientation??"vertical")){const n=(e.y+t.y)/2;return`M${e.x},${e.y} L${e.x},${n} L${t.x},${n} L${t.x},${t.y}`}const o=(e.x+t.x)/2;return`M${e.x},${e.y} L${o},${e.y} L${o},${t.y} L${t.x},${t.y}`}function Xn(e,t,n){if("vertical"===(n?.orientation??"vertical")){const n=t.cy>=e.cy;return{from:{x:e.cx,y:e.cy+(n?e.height/2:-e.height/2)},to:{x:t.cx,y:t.cy+(n?-t.height/2:t.height/2)}}}const o=t.cx>=e.cx;return{from:{x:e.cx+(o?e.width/2:-e.width/2),y:e.cy},to:{x:t.cx+(o?-t.width/2:t.width/2),y:t.cy}}}function Un(e,t){const n=t?.spread??5;return t?.modulo&&t.modulo>0?(e%t.modulo-(t.modulo-1)/2)*n:(e-((t?.count??1)-1)/2)*n}function Kn(e,t){const n=1-t,o=n*n*n,r=3*n*n*t,i=3*n*t*t,a=t*t*t;return{x:o*e.p0.x+r*e.p1.x+i*e.p2.x+a*e.p3.x,y:o*e.p0.y+r*e.p1.y+i*e.p2.y+a*e.p3.y}}function Qn(e,t){const n=1-t,o=3*n*n,r=6*n*t,i=3*t*t;return{x:o*(e.p1.x-e.p0.x)+r*(e.p2.x-e.p1.x)+i*(e.p3.x-e.p2.x),y:o*(e.p1.y-e.p0.y)+r*(e.p2.y-e.p1.y)+i*(e.p3.y-e.p2.y)}}function Zn(e){return`M${e.p0.x},${e.p0.y} C${e.p1.x},${e.p1.y} ${e.p2.x},${e.p2.y} ${e.p3.x},${e.p3.y}`}function Jn(e,t){const n=t?.axis??"x",o=t?.padding??0,r=t?.strength??.5,i="x"===n?"y":"x",a="x"===n?"width":"height",s="x"===n?"height":"width",c=new Map;for(const t of e)c.set(t.id,0);for(let t=0;e.length>t;t++)for(let l=t+1;e.length>l;l++){const u=e[t],d=e[l];if(Math.abs(u[i]-d[i])>(u[s]+d[s])/2+o)continue;const h=d[n]-u[n]||(d.id>u.id?-.5:.5),f=(u[a]+d[a])/2+o-Math.abs(h);if(0>=f)continue;const m=f*r*Math.sign(h);c.set(u.id,(c.get(u.id)??0)-m),c.set(d.id,(c.get(d.id)??0)+m)}return c}var eo={width:60,height:34};function to(e,t){if("function"==typeof e)return e;const n=e??t;return e=>h(e,n,void 0)}function no(e,t,n,o){const r=o.fixedAxis??"y",i=e=>to(o.sourceAccessor,"source")(e)+"",a=e=>to(o.targetAccessor,"target")(e)+"",s=o.size??(()=>eo),c=o.iterations??180,l=o.attraction??.012,u=o.anchorStrength??.003,d=o.collisionStrength??.12,h=o.collisionPadding??15,m=o.edgePadding??42,p=o.fixedPadding??16,y=o.damping??.72,g=o.spread??1,[x,b]=o.fixedDomain,w=b-x||1,M=("y"===r?n.y:n.x)+p,v=("y"===r?n.y+n.height:n.x+n.width)-p,k=("y"===r?n.x:n.y)+m,$=("y"===r?n.x+n.width:n.y+n.height)-m,A=Math.max(1,$-k),S=e.map(e=>{const t=f(e)??e,n=(r=e,to(o.idAccessor,"id")(r)+"");var r;const{width:i,height:a}=s(t),c=(e=>Number(to(o.fixedAccessor,"fixed")(e)))(e),l=k+function(e){let t=2166136261;for(let n=0;e.length>n;n++)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0)/4294967295}(n)*A;return{data:t,id:n,width:i,height:a,fixedValue:c,fixed:(u=c,M+(u-x)/w*(v-M)),free:l,anchor:l};var u}),I=new Map(S.map(e=>[e.id,e])),j=e=>"y"===r?e.width:e.height;for(let e=0;c>e;e++){const e=new Map;for(const t of S)e.set(t.id,0);for(const n of t){const t=I.get(i(n)),o=I.get(a(n));if(!t||!o)continue;const r=(o.free-t.free)*l;e.set(t.id,(e.get(t.id)??0)+r),e.set(o.id,(e.get(o.id)??0)-r)}for(const t of S)e.set(t.id,(e.get(t.id)??0)+(t.anchor-t.free)*u);const n=Jn(S.map(e=>({id:e.id,x:"y"===r?e.free:e.fixed,y:"y"===r?e.fixed:e.free,width:e.width,height:e.height})),{axis:"y"===r?"x":"y",padding:h,strength:d});for(const t of S)e.set(t.id,(e.get(t.id)??0)+(n.get(t.id)??0));for(const t of S){t.free+=(e.get(t.id)??0)*y;const n=j(t)/2;t.free=Math.max(k+n,Math.min($-n,t.free))}}if(1!==g){const e=(k+$)/2;for(const t of S){const n=j(t)/2;t.free=Math.max(k+n,Math.min($-n,e+(t.free-e)*g))}}const C=S.map(e=>({data:e.data,id:e.id,x:"y"===r?e.free:e.fixed,y:"y"===r?e.fixed:e.free,width:e.width,height:e.height,fixedValue:e.fixedValue}));return{positioned:C,byId:new Map(C.map(e=>[e.id,e]))}}var oo=e=>{const{plot:t}=e.dimensions;if(0>=t.width||0>=t.height||0===e.nodes.length||!e.config?.fixedDomain)return{sceneNodes:[]};const n=e.config.fixedAxis??"y",{positioned:o,byId:r}=no(e.nodes,e.edges,t,e.config),i=o.map(t=>({type:"rect",x:t.x-t.width/2,y:t.y-t.height/2,w:t.width,h:t.height,style:{fill:e.resolveColor(t.id),stroke:"none"},datum:t.data,id:t.id,label:t.id})),a=[];e.edges.forEach((t,o)=>{const i=r.get((s=t,("function"==typeof e.config.sourceAccessor?e.config.sourceAccessor(s):h(s,e.config.sourceAccessor??"source",void 0))+""));var s;const c=r.get((t=>("function"==typeof e.config.targetAccessor?e.config.targetAccessor(t):h(t,e.config.targetAccessor??"target",void 0))+"")(t));if(!i||!c)return;const{from:l,to:u}=Xn({cx:i.x,cy:i.y,width:i.width,height:i.height},{cx:c.x,cy:c.y,width:c.width,height:c.height},{orientation:"y"===n?"vertical":"horizontal"});a.push({type:"curved",pathD:_n(l,u,{orientation:"y"===n?"vertical":"horizontal",bend:Un(o,{modulo:5,spread:5})}),style:{stroke:"var(--semiotic-border, #888)",fill:"none",strokeWidth:1.4},datum:f(t)??t})});const s=o.map(e=>({x:e.x,y:e.y,text:e.id}));return{sceneNodes:i,sceneEdges:a,labels:s}},ro={fill:"rgba(0,0,0,0)",stroke:"rgba(0,0,0,0)",opacity:0},io=8;function ao(e){return null==e?void 0:e+""}function so(e){const t=ao(e.id);return{type:"point",x:e.x,y:e.y,r:e.r??io,style:{...ro},datum:e.datum,pointId:t,_transitionKey:t}}function co(e){return so(e)}function lo(e){const[[t,n],[o,r]]=e.bounds;return{type:"geoarea",pathData:e.pathData,centroid:e.centroid,bounds:e.bounds,screenArea:e.screenArea??Math.abs((o-t)*(r-n)),style:{...ro},datum:e.datum,group:e.group,interactive:!0}}function uo(e){return{type:"rect",x:e.x,y:e.y,w:e.width,h:e.height,style:{...ro},datum:e.datum,group:e.group,_transitionKey:ao(e.id)}}function ho(e){const t=ao(e.id);return"width"in e&&"height"in e?{type:"rect",x:e.x,y:e.y,w:e.width,h:e.height,style:{...ro},datum:e.datum,id:t,label:e.label}:{type:"circle",cx:e.x,cy:e.y,r:e.r??io,style:{...ro},datum:e.datum,id:t,label:e.label}}function fo(e,t,n={}){const{coord:o,step:r=1,equals:i=Object.is,truthyOnly:a=!1}=n,s=[],c=t=>o?o(e[t],t):t,l=(e,t,n)=>{e.endIndex=t,e.count=t-e.startIndex+1,e.end=o?null==n||c(n)-c(t)>r?c(t)+r:c(n):t+1,s.push(e)};let u=null;for(let n=0;e.length>n;n++){const s=t(e[n],n);if(a&&!s){u&&(l(u,u.endIndex,n),u=null);continue}const d=!o||0>=n||c(n)-c(n-1)<=r;u&&d&&i(u.value,s)?u.endIndex=n:(u&&l(u,u.endIndex,n),u={value:s,start:c(n),end:c(n),count:1,startIndex:n,endIndex:n})}return u&&l(u,u.endIndex,null),s}var mo=fo;function po(e,t,n=0){return t>0?((e-n)%t+t)%t+n:e}function yo(e,t,n){if(0>=n)return t-e;let o=(t-e)%n;return o>n/2?o-=n:-n/2>o&&(o+=n),o}function go(e,t,n){return t>n?e>=t||n>=e:e>=t&&n>=e}function xo(e,t,n,o){return n>o?[...e.filter(e=>t(e)>=n),...e.filter(e=>t(e)<=o)]:e.filter(e=>go(t(e),n,o))}function bo(e,t){const n=Math.max(0,t.width),o=t.y,r=Math.min(74,Math.max(34,.08*n)),i=t.paddingLeft??r,a=e.length>1?Math.max(0,n-i-(t.paddingRight??r))/(e.length-1):0,s=new Map;return e.forEach((e,t)=>{s.set(e.id,{id:e.id,x:i+a*t,y:o,index:t})}),s}function wo(e,t){const n=Math.max(0,t.width),o=t.y,r=Math.min(74,Math.max(34,.08*n)),i=t.paddingLeft??r,a=t.paddingRight??r,s=t.gap??8,c=!1!==t.distribute,l=t.estimateWidth??(e=>Mo(e.label??e.id)),u=e.map((e,t)=>Math.max(1,l(e,t))),d=u.reduce((e,t)=>e+t,0)+s*Math.max(0,e.length-1),h=Math.max(0,n-i-a),f=c&&e.length>1?Math.max(0,h-d)/(e.length-1):0,m=new Map;let p=i;return c||1!==e.length||(p=i+Math.max(0,(h-u[0])/2)),e.forEach((e,t)=>{const n=u[t];m.set(e.id,{id:e.id,x:p+n/2,y:o,index:t,width:n}),p+=n+s+f}),m}function Mo(e,t=38,n=7.4,o=20){return Math.max(t,((e??"")+"").length*n+o)}function vo(e){const t=e.map(e=>{const t=Math.min(e.a,e.b),n=Math.max(e.a,e.b);return{span:e,a:t,b:n,width:n-t}}).sort((e,t)=>e.width-t.width||e.a-t.a),n=[],o=t.map(e=>{let t=n.findIndex(t=>e.a>=t);return 0>t?(t=n.length,n.push(e.b)):n[t]=e.b,{span:e.span,level:t}}),r=o.reduce((e,t)=>Math.max(e,t.level),0);return{packed:o,maxLevel:r,levelCount:o.length?r+1:1}}function ko(e){const t=e.labelRoom??18,n=Math.max(48,e.baselineY-e.ceilingY-28),o=Math.max(1,e.levelCount),r=Math.min(42,Math.max(26,.18*n)),i=Math.max(24,n-r-t);return{arcLift:r,levelStep:Math.min(72,Math.max(28,o>1?i/Math.max(1,o-1):i))}}function $o(e,t,n,o,r={}){const i=n-(r.footLift??26);return`M${e} ${i}Q${(e+t)/2} ${o} ${t} ${i}`}function Ao(e,t,n){return e-n.arcLift-t*n.levelStep}function So(e,t=Io){if(!e.length)return{shared:[],exclusive:[]};if(1===e.length)return{shared:[...e[0]],exclusive:[[]]};const n=e.map(e=>new Set(e.map(e=>t(e)))),o=new Set;for(const e of n[0])n.every(t=>t.has(e))&&o.add(e);const r=[],i=new Set;for(const n of e[0]){const e=t(n);o.has(e)&&!i.has(e)&&(r.push(n),i.add(e))}return{shared:r,exclusive:e.map(e=>e.filter(e=>!o.has(t(e))))}}function Io(e){return null==e||"object"!=typeof e?e+"":null!=e.id?e.id+"":`${(e.sourceTokenId??e.source)+""}|${(e.targetTokenId??e.target)+""}|${(e.relation??e.label??"")+""}`}var jo=2*Math.PI;function Co(e,t,n){const o=n?.center?.x??0,r=n?.center?.y??0;return{x:o+Math.sin(e)*t,y:r-Math.cos(e)*t}}function Lo(e,t,n){return(Math.atan2(e-(n?.center?.x??0),-(t-(n?.center?.y??0)))+jo)%jo}function To(e,t){const[n,o]=e,r=o-n||1,i=t?.startAngle??0,a=t?.endAngle??jo;return e=>i+(e-n)/r*(a-i)}function No(e,t){const[n,o]=e,[r,i]=t,a=o-n||1;return e=>r+(e-n)/a*(i-r)}function zo(e,t,n,o,r){const i=r?.center,a=(e,t)=>{const{x:n,y:o}=Co(e,t,{center:i});return`${Eo(n)},${Eo(o)}`},s=Math.max(0,n),c=Math.max(s,o),l=Math.abs(t-e),u=e>t?0:1;if(l>=jo-1e-6){const e=i?.x??0,t=i?.y??0,n=`${Eo(e)},${Eo(t-c)}`,o=`${Eo(e)},${Eo(t+c)}`;let r=`M${n} A${Eo(c)},${Eo(c)} 0 1 1 ${o} A${Eo(c)},${Eo(c)} 0 1 1 ${n} Z`;if(s>0){const n=`${Eo(e)},${Eo(t-s)}`,o=`${Eo(e)},${Eo(t+s)}`;r+=` M${n} A${Eo(s)},${Eo(s)} 0 1 0 ${o} A${Eo(s)},${Eo(s)} 0 1 0 ${n} Z`}return r}const d=l>Math.PI?1:0,h=a(e,c),f=a(t,c);if(0>=s){const e=i?.x??0,t=i?.y??0;return`M${Eo(e)},${Eo(t)} L${h} A${Eo(c)},${Eo(c)} 0 ${d} ${u} ${f} Z`}const m=a(t,s),p=a(e,s);return`M${h} A${Eo(c)},${Eo(c)} 0 ${d} ${u} ${f} L${m} A${Eo(s)},${Eo(s)} 0 ${d} ${1===u?0:1} ${p} Z`}function Eo(e){return Math.round(1e3*e)/1e3}function Fo(e,t){return{x:e.x+t.x,y:e.y+t.y}}function Ro(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Po(e,t){return{x:e.x*t,y:e.y*t}}function Wo(e){return Math.hypot(e.x,e.y)}function Oo(e){const t=Wo(e)||1;return{x:e.x/t,y:e.y/t}}var qo=[40,40],Do=[.5,.5];function Bo(e,t){const[n,o]=e.viewBox??qo,[r,i]=e.anchor??Do,a=o>0?o:1,s=Math.max(0,t)/a,c=(n>0?n:a)*s,l=a*s;return{width:c,height:l,scale:s,offsetX:-r*c,offsetY:-i*l}}function Yo(e,t){const n=Bo(e,t),o=[[n.offsetX,n.offsetY],[n.offsetX+n.width,n.offsetY],[n.offsetX,n.offsetY+n.height],[n.offsetX+n.width,n.offsetY+n.height]];let r=0;for(const[e,t]of o){const n=Math.sqrt(e*e+t*t);n>r&&(r=n)}return r}function Ho(e,t,n,o){if("none"!==e)return"color"===e||null==e?t??o:"accent"===e?n:e}function Vo(e,t,n=0,o="horizontal"){const[r,i]=e.viewBox??qo,a=Math.min(1,Math.max(0,n)),s=Math.min(1,Math.max(0,t));return s>a?a>0||1>s?"vertical"===o?{x:0,y:i*(1-s),width:r,height:i*(s-a)}:{x:r*a,y:0,width:r*(s-a),height:i}:null:{x:0,y:0,width:0,height:0}}var _o=require("react/jsx-runtime"),Go="var(--semiotic-text, currentColor)",Xo=8;function Uo(e,t){const n=oe(e,100);return n>0?t/n*100*(t/n):Math.PI*t*t}function Ko(e){const t=[],n=e.colorMap?Object.entries(e.colorMap):e.keys?e.keys.map(t=>[t,e.color?e.color(t):void 0]):[];if(n.length>0){const o=e.colorType??"fill",r=n.map(([e,t])=>({label:e,color:t}));t.push({type:o,label:e.colorLabel??"",items:r,styleFn:"line"===o?e=>({stroke:e.color??Go,strokeWidth:2,fill:"none"}):e=>({fill:e.color??Go,stroke:e.color??Go})})}if(e.symbolMap&&Object.keys(e.symbolMap).length>0){const n=e.symbolColor??Go,o=Object.entries(e.symbolMap).map(([e,t])=>({label:e,shape:t,color:n}));t.push({label:e.symbolLabel??"",items:o,styleFn:()=>({}),type:e=>{const t=e.shape;return(0,_o.jsx)("path",{d:ee(t,Uo(t,Xo-1)),transform:`translate(${Xo},${Xo})`,fill:e.color??n})}})}if(e.sizeStops&&e.sizeStops.length>0&&e.sizeRadius){const n=e.sizeRadius,o=e.sizeFormat??(e=>e+""),r=e.sizeColor??Go,i=e.sizeStops.map(e=>({label:o(e),r:Math.max(.5,n(e)),color:r}));t.push({label:e.sizeLabel??"",items:i,styleFn:()=>({}),type:e=>(0,_o.jsx)("circle",{cx:Xo,cy:Xo,r:e.r,fill:e.color??r})})}return t}function Qo(e){const t=e.orientation??"vertical",n=e.swatchSize??14,o=e.gap??8,r=e.labelGap??6,i=e.fontSize??12,a=e.color??"var(--semiotic-text-secondary, #888)",s=n+o;let c=0;const l=[];return e.entries.forEach((e,u)=>{l.push((0,_o.jsxs)("g",{transform:`translate(${"vertical"===t?0:c},${"vertical"===t?c:0})`,children:[Zo(e,n,e.color??e.line??a,a),(0,_o.jsx)("text",{x:n+r,y:n/2,dominantBaseline:"middle",fontSize:i,fill:a,children:e.label})]},"legend-"+u)),c+="vertical"===t?s:n+r+e.label.length*i*.58+o+8}),(0,_o.jsx)("g",{className:e.className,transform:`translate(${e.x},${e.y})`,style:{pointerEvents:"none"},children:l},e.keyId)}function Zo(e,t,n,o){if(e.shape){const o=Uo(e.shape,t/2-1);return(0,_o.jsx)("path",{d:ee(e.shape,o),transform:`translate(${t/2},${t/2})`,fill:n})}if(e.hatch){const n=e.color??o;return(0,_o.jsxs)("g",{children:[(0,_o.jsx)("svg",{width:t,height:t,style:{overflow:"hidden"},children:[-t,-t/2,0,t/2].map((e,o)=>(0,_o.jsx)("line",{x1:e,y1:t,x2:e+t,y2:0,stroke:n,strokeWidth:1,opacity:.7},o))}),(0,_o.jsx)("rect",{width:t,height:t,fill:"none",stroke:n,strokeWidth:1,opacity:.5,rx:2})]})}return(0,_o.jsx)("rect",e.line?{y:t/2-1.5,width:t,height:3,rx:1.5,fill:e.line}:{width:t,height:t,rx:2,fill:n})}var Jo=new Set(["rows"]);function er(e){const t=e,n=[rr(t,["datum","data"]),rr(t,["datum"]),rr(t,["data","data"]),rr(t,["data"]),rr(t,["node","datum","data"]),rr(t,["node","datum"]),e];for(const e of n){if(!ir(e))continue;const t={};for(const[n,o]of Object.entries(e))n.startsWith("_")||"function"==typeof o||(t[n]=o);if(Object.keys(t).length>0)return t}return null}function tr(e,t={}){const n=er(e);if(!n)return[];const o=new Set(Jo);if(t.excludeKeys)for(const e of t.excludeKeys)o.add(e);const r=[];for(const[e,i]of Object.entries(n))if((t.includeInternal||!e.startsWith("_"))&&!o.has(e)&&(t.includeEmpty||null!=i&&""!==i)&&"function"!=typeof i&&(r.push({key:e,label:or(e,t.labels),value:i,formatted:t.valueFormat?t.valueFormat(i,e,n):nr(i)}),r.length>=(t.maxEntries??8)))break;return r}function nr(e){if(null==e)return"";if(e instanceof Date)return e.toISOString();if("number"==typeof e)return Number.isInteger(e)?e+"":e.toLocaleString(void 0,{maximumFractionDigits:2});if("boolean"==typeof e)return e?"true":"false";if(Array.isArray(e))return e.length+" items";if("object"==typeof e)try{return JSON.stringify(e)}catch{return e+""}return e+""}function or(e,t){return"function"==typeof t?t(e):t&&t[e]?t[e]:e}function rr(e,t){let n=e;for(const e of t){if(!ir(n))return;n=n[e]}return n}function ir(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function ar(e,t){const n=new Map;for(const t of e)n.set(t.id,new Set);for(const e of t)n.has(e.source)||n.set(e.source,new Set),n.has(e.target)||n.set(e.target,new Set),n.get(e.source).add(e.target),n.get(e.target).add(e.source);return n}function sr(e,t){const n={};for(const t of e)n[t.id]=0;for(const e of t)n[e.source]=(n[e.source]||0)+1,n[e.target]=(n[e.target]||0)+1;return n}function cr(e,t){const n={[t]:0},o=[t];let r=0;for(;o.length>r;){const t=o[r];r+=1;for(const r of e.get(t)||[])void 0===n[r]&&(n[r]=n[t]+1,o.push(r))}return n}function lr(e,t,n,o){if(n===o)return n?[n]:[];const r=ar(e,t),i={[n]:null},a=[n];let s=0;for(;a.length>s;){const e=a[s];if(s+=1,e===o)break;for(const t of r.get(e)||[])void 0===i[t]&&(i[t]=e,a.push(t))}if(void 0===i[o])return[];const c=[];let l=o;for(;null!=l;)c.unshift(l),l=i[l];return c}function ur(e,t,n,o=1){const r=ar(e,t);if(!r.has(n))return new Set;const i=cr(r,n),a=new Set;for(const e in i)i[e]>o||a.add(e);return a}function dr(e,t){const n=ar(e,t),o={};for(const t of e)o[t.id]=0;for(const t of e.map(e=>e.id)){const r=[],i={},a={},s={};for(const t of e)i[t.id]=[],a[t.id]=0,s[t.id]=-1;a[t]=1,s[t]=0;const c=[t];let l=0;for(;c.length>l;){const e=c[l];l+=1,r.push(e);for(const t of n.get(e)||[])0>s[t]&&(s[t]=s[e]+1,c.push(t)),s[t]===s[e]+1&&(a[t]+=a[e],i[t].push(e))}const u={};for(const t of e)u[t.id]=0;for(;r.length;){const e=r.pop();for(const t of i[e])u[t]+=a[t]/a[e]*(1+u[e]);e!==t&&(o[e]+=u[e])}}for(const e in o)o[e]/=2;return o}function hr(e,t){const n=ar(e,t),o={};for(const t of e){const e=cr(n,t.id);let r=0,i=0;for(const t in e)r+=e[t],i+=1;o[t.id]=r>0?(i-1)/r:0}return o}function fr(e,t){const n=ar(e,t),o={};for(const t of e){const e=[...n.get(t.id)||[]],r=e.length;if(2>r){o[t.id]=0;continue}let i=0;for(let t=0;e.length>t;t+=1)for(let o=t+1;e.length>o;o+=1)n.get(e[t])?.has(e[o])&&(i+=1);o[t.id]=2*i/(r*(r-1))}return o}function mr(e){let t=0;for(const n in e)e[n]>t&&(t=e[n]);const n={};for(const o in e)n[o]=t>0?e[o]/t:0;return n}function pr(e,t,n,o={}){const r=ar(e,t),i={};for(const t of e)i[t.id]=cr(r,t.id);let a=o.minHops??4,s=o.startThreshold??.08;const c=o.maxThreshold??.2,l=new Set;let u=0;for(;0===l.size&&40>u;){for(let t=0;e.length>t;t+=1)for(let o=t+1;e.length>o;o+=1){const r=e[t].id,c=e[o].id,u=n[r],d=n[c];if(!u||!d)continue;const h=u.x-d.x,f=u.y-d.y;(void 0===i[r][c]?1/0:i[r][c])>=a&&s>Math.sqrt(h*h+f*f)&&(l.add(r),l.add(c))}0===l.size&&(s+=.02,s>c&&(s=o.startThreshold??.08,a=Math.max(2,a-1))),u+=1}return{problemIds:l,threshold:s,minHops:a}}var yr={},gr=4e4;function xr(){return"undefined"!=typeof window&&"undefined"!=typeof Worker}function br(){if("undefined"!=typeof DOMException)return new DOMException("Force layout aborted","AbortError");const e=Error("Force layout aborted");return e.name="AbortError",e}var wr=class{constructor(e=function(){const e="string"==typeof yr.url&&yr.url?new URL("./forceLayoutWorker.js",yr.url):function(e){if("undefined"!=typeof __filename){const t=__filename.replace(/\\/g,"/"),n=t.startsWith("/")?t:"/"+t;return new URL("./"+e,"file:"+n)}throw Error("Cannot resolve module worker asset: "+e)}("forceLayoutWorker.js");return new Worker(e,{type:"module",name:"semiotic-force-layout"})}()){this.nextRequestId=1,this.pending=new Map,this.dead=!1,this.worker=e,this.worker.onmessage=e=>{const t=e.data,n=t.requestId,o=null!=n?this.pending.get(n):this.pending.values().next().value;if(o){if(null!=n?this.pending.delete(n):this.pending.clear(),o.cleanup(),t.error){const e=Error(t.error.message);return e.name=t.error.name??"Error",t.error.stack&&(e.stack=t.error.stack),void o.reject(e)}o.resolve({positions:t.positions??{}})}},this.worker.onerror=e=>{this.rejectAll(Error(e.message||"Force layout worker failed")),this.terminate()}}get isDead(){return this.dead}request(e,t){if(this.dead)return Promise.reject(Error("Force layout worker session is closed"));if(t?.aborted)return Promise.reject(br());const n=this.nextRequestId;this.nextRequestId+=1;const o={requestId:n,request:e};return new Promise((e,r)=>{const i=()=>{this.pending.delete(n),t?.removeEventListener("abort",i),r(br())},a=()=>t?.removeEventListener("abort",i);this.pending.set(n,{cleanup:a,reject:r,resolve:e}),t?.addEventListener("abort",i,{once:!0});try{this.worker.postMessage(o)}catch(e){this.pending.delete(n),a(),r(e instanceof Error?e:Error(e+""))}})}terminate(){this.dead||(this.dead=!0,this.rejectAll(Error("Force layout worker terminated")),this.worker.terminate())}rejectAll(e){for(const t of this.pending.values())t.cleanup(),t.reject(e);this.pending.clear()}},Mr=null;async function vr(e,t,n={}){const{execution:o="auto",signal:r,workerThreshold:i,nodeRadius:a,...s}=n,c=s.iterations??260,l=xr()&&function(e,t,n,o,r=gr){return"sync"!==e&&("worker"===e||o*(t+n)>=r)}(o,e.length,t.length,c,i);if(!l)return P(e,t,{...s,nodeRadius:a});const u={kind:"normalized",nodes:e.map(e=>({...e})),edges:t.map(e=>({...e})),options:s,nodeRadii:"function"==typeof a?Object.fromEntries(e.map(e=>[e.id,a(e)])):null==a?void 0:Object.fromEntries(e.map(e=>[e.id,a]))};try{return(await function(e,t){return xr()?t?.aborted?Promise.reject(br()):(Mr&&!Mr.isDead||(Mr=new wr),Mr).request(e,t):Promise.reject(Error("Web Workers are unavailable"))}(u,r)).positions}catch(n){if("AbortError"===n?.name)throw n;return P(e,t,{...s,nodeRadius:a})}}function kr(e,t){if("region-enter"!==t.type)return e;const n=t.region.id,o=e[n]??{id:n,label:t.region.label??n,count:0,bodyIds:[]};if(o.bodyIds.includes(t.bodyId))return e;const r=[...o.bodyIds,t.bodyId];return{...e,[n]:{...o,count:r.length,bodyIds:r}}}function $r(e,t){return(t??Object.keys(e)).map(t=>e[t]).filter(e=>null!=e).map(e=>({label:e.label??e.id,value:e.count}))}function Ar(e,t){const n=t instanceof Set?t:new Set(t);return e.map(e=>{const t=e.bodyIds??[],o=t.filter(e=>!n.has(e)),r=t.length-o.length,i=e.completion?.mode??"allMembersAbsorbed",a=e.completion?.valueByBodyId,s=e=>{const t=a?.[e];return Number.isFinite(t)&&Number(t)>=0?Number(t):1},c=t.reduce((e,t)=>e+s(t),0),l=t.reduce((e,t)=>e+(n.has(t)?s(t):0),0),u=e.completion?.threshold,d="threshold"===i?Number.isFinite(u)&&Number(u)>=0?Number(u):c:void 0;return{id:e.id,label:e.label??e.id,mode:i,complete:t.length>0&&("anyAbsorbed"===i?r>0:"threshold"===i?l>=(d??c):0===o.length),absorbed:r,total:t.length,absorbedValue:l,totalValue:c,threshold:d,missing:o}})}function Sr(e,t,n){return Math.max(t,Math.min(n,e))}function Ir(e,t,n={}){const o=n.random??Math.random,r=e.stages.find(e=>e.id===t)??e.stages[e.stages.length-1],i=Sr(n.along??.5,.05,.95),a=n.jitterX??0,s=n.padY??20,c=r.x0+(r.x1-r.x0)*i+(2*o()-1)*a,l=Math.min(1,r.width/2),u=Sr(c,r.x0+l,r.x1-l),d=e.boundaryY(u,"top")+s,h=e.boundaryY(u,"bottom")-s;return{x:u,y:h>d?d+o()*Math.max(1,h-d):e.midY}}function jr(e){return"bowtie"===e.shape?[{id:"incoming",role:"incoming",points:[[e.left,e.topY],[e.centerLeft,e.pinchTop],[e.centerLeft,e.pinchBottom],[e.left,e.bottomY]]},{id:"center",role:"center",points:[[e.centerLeft,e.pinchTop],[e.centerRight,e.pinchTop],[e.centerRight,e.pinchBottom],[e.centerLeft,e.pinchBottom]]},{id:"outgoing",role:"outgoing",points:[[e.centerRight,e.pinchTop],[e.right,e.topY],[e.right,e.bottomY],[e.centerRight,e.pinchBottom]]}]:[{id:"volume",role:"volume",points:[[e.left,e.topY],[e.right,"funnel"===e.shape?e.pinchTop:e.topY],[e.right,"funnel"===e.shape?e.pinchBottom:e.bottomY],[e.left,e.bottomY]]}]}function Cr(e,t,n){return Math.max(t,Math.min(n,e))}function Lr(e,t,n,o,r,i={}){return{id:e,friction:i.friction,restitution:i.restitution,bodyFilter:i.bodyFilter,shape:{type:"segment",x1:t,y1:n,x2:o,y2:r,thickness:i.thickness??8}}}function Tr(e){const t=e.shape??"lane",n=Math.max(1,Math.round(e.width)),o=Math.max(1,Math.round(e.height)),r=e.padX??46,i=e.padY??72,a=r,s=n-r,c=i,l=o-Math.max(24,Math.round(.45*i)),u=(c+l)/2,d=Math.max(1,l-c),h=Cr(e.pinchRatio??.18,.06,.5),f=Number(e.pinchHeightOffset??0),m=Number.isFinite(f)?f:0,p=Cr(d*h+m,.06*d,.5*d),y=p/2,g=u-y,x=u+y,b=e.idPrefix??"process",w=e.friction??.58,M=e.restitution??.18,v=e.wallThickness??8,k=e.stages;if(!k.length)throw Error("processStageLayout requires at least one stage");const $=Cr(e.centerStageIndex??Math.floor(k.length/2),0,k.length-1),A=function(e){const t=e.reduce((e,t)=>e+(t.share??1),0);return t>0?t:e.length}(k),S=s-a;let I=a;const j=k.map((e,t)=>{const n=I,o=t===k.length-1?s:I+(e.share??1)/A*S;return I=o,{id:e.id,label:e.label,description:e.description,kind:e.kind??"stage",index:t,x0:n,x1:o,x:(n+o)/2,width:o-n,y:u,height:d}}),C=j[$],L=C.x0,T=C.x1,N=(e,n)=>{if("lane"===t)return"top"===n?c:l;if("funnel"===t){const t=Cr((e-a)/Math.max(1,s-a),0,1);return"top"===n?c+(g-c)*t:l+(x-l)*t}if(L>=e){const t=Cr((e-a)/Math.max(1,L-a),0,1);return"top"===n?c+(g-c)*t:l+(x-l)*t}if(T>=e)return"top"===n?g:x;const o=Cr((e-T)/Math.max(1,s-T),0,1);return"top"===n?g+(c-g)*o:x+(l-x)*o},z=j.map(e=>{const t=Math.min(N(e.x0,"top"),N(e.x1,"top")),n=Math.max(N(e.x0,"bottom"),N(e.x1,"bottom"));return{...e,y:(t+n)/2,height:Math.max(1,n-t)}}),E={thickness:v,friction:w,restitution:M},F=[];"lane"===t?F.push(Lr(b+"-top",a,c,s,c,E),Lr(b+"-bottom",a,l,s,l,E),Lr(b+"-left",a,c,a,l,{...E,thickness:Math.max(6,v-2)}),Lr(b+"-right",s,c,s,l,{...E,thickness:Math.max(6,v)})):"funnel"===t?F.push(Lr(b+"-top",a,c,s,g,E),Lr(b+"-bottom",a,l,s,x,E),Lr(b+"-left",a,c,a,l,{...E,thickness:Math.max(6,v-2)}),Lr(b+"-right",s,g,s,x,{...E,thickness:Math.max(6,v)})):F.push(Lr(b+"-left-top",a,c,L,g,E),Lr(b+"-left-bottom",a,l,L,x,E),Lr(b+"-center-top",L,g,T,g,E),Lr(b+"-center-bottom",L,x,T,x,E),Lr(b+"-right-top",T,g,s,c,E),Lr(b+"-right-bottom",T,x,s,l,E),Lr(b+"-left",a,c,a,l,{...E,thickness:Math.max(6,v-2)}),Lr(b+"-right",s,c,s,l,{...E,thickness:Math.max(6,v)}));const R=e.membraneDampingScale??.5,P=a,W=Math.max(1,("bowtie"===t?L:s)-P),O=(e.membranes??[]).map(e=>{const t=P+Cr(e.offset,0,1)*W,n=e.width??18+18*e.cost,o=d-16,r=u+.25*(e.wobble??0);return{...e,x:t,y:r,width:n,height:o}}),q=!1===e.includeMembraneRegions?[]:O.map(e=>Er({id:e.id,label:e.label??e.id,description:e.description??(e.label??e.id)+" is a permeable region. It taxes energy and damps velocity while bodies overlap it.",x:e.x,y:e.y,width:e.width,height:e.height,cost:e.cost,dampingScale:e.dampingScale??R,bodyStyle:e.bodyStyle,metadata:e.metadata,semanticItem:e.semanticItem,color:e.color}));return{shape:t,width:n,height:o,padX:r,padY:i,left:a,right:s,topY:c,bottomY:l,midY:u,centerLeft:L,centerRight:T,pinchHeight:p,pinchTop:g,pinchBottom:x,stages:z,membranes:O,colliders:F,regionEffects:q,boundaryY:N}}function Nr(e){return{id:e.id,label:e.label,description:e.description,kind:e.kind,shape:(t=e.x,n=e.y,o=e.width,r=e.height,{type:"aabb",x:t,y:n,width:o,height:r}),bodyFilter:e.bodyFilter,collider:e.collider,colliderThickness:e.colliderThickness,friction:e.friction,restitution:e.restitution,semanticItem:e.semanticItem,metadata:e.metadata,bodyStyle:e.bodyStyle,attributes:e.attributes,onEnter:e.onEnter,onExit:e.onExit};var t,n,o,r}function zr(e,t={}){const n=t.idPrefix??"stage",o=Math.max(0,t.insetX??0),r=Math.max(0,t.insetY??1);return e.stages.map(e=>{const i="function"==typeof t.metadata?t.metadata(e):t.metadata??{};return{...Nr({id:n?`${n}:${e.id}`:e.id,label:e.label??e.id,description:e.description,kind:"region",x:e.x,y:e.y,width:Math.max(1,e.width-2*o),height:Math.max(1,e.height-2*r),bodyFilter:t.bodyFilter,semanticItem:t.semanticItem,attributes:{primitive:"processStage",stageId:e.id,stageIndex:e.index},metadata:{...i,primitive:"processStage",stageId:e.id,stageIndex:e.index}})}})}function Er(e){const t=e.dampingScale??.5,n=e.energyScale??1,o=Cr(e.cost,0,2);return{...Nr({...e,kind:e.kind??"membrane",attributes:{primitive:"membrane",membraneCost:o,..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),damping:o*t,energyDelta:-o*n}}function Fr(e){return{...Nr({...e,kind:e.kind??"charge-gate",attributes:{primitive:"chargeGate",..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),charge:e.charge??!0,energyDelta:e.energyDelta,impulseOnEnter:e.impulseOnEnter}}function Rr(e){const t="number"==typeof e.force?{x:e.force,y:0}:e.force??{x:12,y:0};return{...Nr({...e,kind:e.kind??"force-field",attributes:{primitive:"routeSurface",..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),force:t,damping:e.damping??.015}}function Pr(e){const t=e.pressure??e.occupancy??0,n=e.baseDamping??.08,o=e.dampingPerUnit??.12,r=e.energyPerUnit??0;return{...Nr({...e,kind:e.kind??"membrane",attributes:{primitive:"pressureField",pressure:t,..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),damping:n+t*o,energyDelta:r?-t*r:void 0,force:e.force}}function Wr(e){const t="number"==typeof e.force?{x:e.force,y:0}:e.force;return{...Nr({...e,kind:e.kind??"force-field",attributes:{primitive:"capacitatedSensor",capacity:e.capacity,unitsPerSecond:e.unitsPerSecond??e.capacity,..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),force:t,damping:e.damping,charge:e.charge??e.capacity}}function Or(e){return{...Nr({...e,kind:e.kind??"force-field",attributes:{primitive:"portal",targetStage:e.targetStage,..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),force:e.force,impulseOnEnter:e.impulseOnEnter,damping:e.damping??.08}}function qr(e){const t="number"==typeof e.force?{x:e.force,y:0}:e.force??{x:24,y:0};return{...Nr({...e,kind:e.kind??"sink",attributes:{primitive:"absorb",..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),force:t,damping:e.damping??.02,charge:e.charge??"absorbed"}}function Dr(e){return{...Nr({...e,kind:e.kind??"force-field",attributes:{primitive:"forceField",..."object"==typeof e.attributes&&e.attributes?e.attributes:{}}}),force:e.force,damping:e.damping,energyDelta:e.energyDelta}}function Br(e){const t=e.x??e.anchor?.x??0,n=e.y??e.anchor?.y??0;return{id:e.id,label:e.label,description:e.description,group:e.group,bodyIds:e.bodyIds,datum:e.datum,state:e.state,x:t,y:n,width:e.width,height:e.height,anchor:e.anchor??{x:t,y:n},completion:e.completion,tether:e.tether,semanticItem:e.semanticItem}}function Yr(e){const t=e.idPrefix??"lane",n={thickness:e.thickness??8,friction:e.friction??.5,restitution:e.restitution??.16},o=[Lr(t+"-top",e.left,e.top,e.right,e.top,n),Lr(t+"-bottom",e.left,e.bottom,e.right,e.bottom,n)];return e.openEnds||o.push(Lr(t+"-left",e.left,e.top,e.left,e.bottom,n),Lr(t+"-right",e.right,e.top,e.right,e.bottom,n)),o}var Hr=[.1,.5,.9],Vr=1e6,_r=12;function Gr(e){const t="number"==typeof e?e:"string"==typeof e&&e.trim()?Number(e):NaN;return Number.isFinite(t)?t:null}function Xr(e,t,n,o,r){return"function"==typeof o?o(e,t,n):function(e,t){let n=e;for(const e of t.split(".")){if(null==n||"object"!=typeof n)return;n=n[e]}return n}(e,o??r)}function Ur(e){const t=Number(e.toFixed(_r));return Object.is(t,-0)?0:t}function Kr(e,t,n,o){const r=e.flatMap((e,r)=>{const i=Gr(Xr(e,r,t,n,"time")),a=Gr(Xr(e,r,t,o,"value"));return null==i||null==a?[]:[{time:Ur(i),value:a,index:r}]});r.sort((e,t)=>e.time-t.time||e.index-t.index);const i=[];for(const e of r){const t=i[i.length-1];t?.time===e.time?t.value=e.value:i.push({time:e.time,value:e.value})}return i}function Qr(e,t,n,o){if(!e.length)return null;const r=e[0],i=e[e.length-1];if(r.time>t)return"clamp"===o?r.value:null;if(t>i.time)return"clamp"===o?i.value:null;const a=function(e,t){let n=0,o=e.length;for(;o>n;){const r=n+o>>>1;t>e[r].time?n=r+1:o=r}return n}(e,t),s=e[a];if(s?.time===t)return s.value;const c=e[Math.max(0,a-1)];return"step"!==n&&s&&s.time!==c.time?c.value+(t-c.time)/(s.time-c.time)*(s.value-c.value):c.value}function Zr(e,t){if(1===e.length)return e[0];const n=(e.length-1)*t,o=Math.floor(n),r=Math.ceil(n);return o===r?e[o]:e[o]+(e[r]-e[o])*(n-o)}function Jr(e){const t=e.interpolation??"step",n=e.outsideDomain??"omit",o=function(e){const t=(e??Hr).map(e=>{const t=Gr(e);if(null==t||0>t||t>1)throw new RangeError("physicsReferenceEnvelope quantiles must be finite values from 0 to 1; received "+e);return Ur(t)});return Array.from(new Set(t)).sort((e,t)=>e-t)}(e.quantiles),r=function(e){if(Array.isArray(e)){if(e.length>Vr)throw new RangeError(`physicsReferenceEnvelope sampleAt exceeds ${Vr} points`);return Array.from(new Set(e.map(Gr).filter(e=>null!=e).map(Ur))).sort((e,t)=>e-t)}const t=e,n=Gr(t.start),o=Gr(t.end),r=Gr(t.step);if(null==n||null==o||null==r||0>=r||n>o)throw new RangeError("physicsReferenceEnvelope sampleAt requires finite start/end values with end >= start and step > 0");const i=Math.floor((o-n)/r)+1;if(i>Vr)throw new RangeError(`physicsReferenceEnvelope sampleAt exceeds ${Vr} points`);const a=[],s=1e-10*Math.max(1,Math.abs(o),Math.abs(n));for(let e=0;i>e;e+=1){const t=n+e*r;if(t>o+s)break;a.push(Ur(Math.min(t,o)))}if(a.length&&s>=Math.abs(a[a.length-1]-o)||a.push(Ur(o)),a.length>Vr)throw new RangeError(`physicsReferenceEnvelope sampleAt exceeds ${Vr} points`);return Array.from(new Set(a)).sort((e,t)=>e-t)}(e.sampleAt),i=e.runs.map(t=>Kr(t.samples,t.id,e.timeAccessor,e.valueAccessor));return{points:r.map(e=>{const r=i.map(o=>Qr(o,e,t,n)).filter(e=>null!=e).sort((e,t)=>e-t),a={};for(const e of o)a[e]=r.length?Zr(r,e):null;return{time:e,count:r.length,min:r.length?r[0]:null,max:r.length?r[r.length-1]:null,median:r.length?Zr(r,.5):null,quantiles:a}}),quantiles:o,interpolation:t,outsideDomain:n,runCount:e.runs.length}}function ei(e,t){return e.quantiles.length?"lower"===t?e.quantiles[0]:e.quantiles[e.quantiles.length-1]:"lower"===t?"min":"max"}function ti(e,t){if("min"===t||"median"===t||"max"===t)return e[t];const n=Gr(t);if(null==n||0>n||n>1)throw new RangeError("comparePhysicsTrace quantile selectors must be from 0 to 1; received "+t);const o=Ur(n);if(!Object.prototype.hasOwnProperty.call(e.quantiles,o))throw Error(`comparePhysicsTrace could not find quantile ${o} in the reference envelope`);return e.quantiles[o]??null}function ni(e,t,n){return t>e?"below":e>n?"above":"inside"}function oi(e,t){const n=Math.max(0,t.time-e.time);if(0>=n||null==e.value||null==e.lower||null==e.upper||null==t.value||null==t.lower||null==t.upper)return{below:0,inside:0,above:0,observed:0};const o=e.value-e.lower,r=t.value-t.lower,i=e.value-e.upper,a=t.value-t.upper,s=[0,1];for(const[e,t]of[[o,r],[i,a]])(0>e&&t>0||e>0&&0>t)&&s.push(-e/(t-e));s.sort((e,t)=>e-t);let c=0,l=0,u=0;for(let o=0;s.length-1>o;o+=1){const r=s[o],i=s[o+1];if(r>=i)continue;const a=(r+i)/2,d=(i-r)*n,h=ni(e.value+(t.value-e.value)*a,e.lower+(t.lower-e.lower)*a,e.upper+(t.upper-e.upper)*a);"below"===h?c+=d:"above"===h?u+=d:l+=d}return{below:c,inside:l,above:u,observed:n}}function ri(e,t,n={}){const o=n.interpolation??t.interpolation,r=n.outsideDomain??t.outsideDomain,i=Kr(e,n.traceId??"trace",n.timeAccessor,n.valueAccessor),a=n.lower??ei(t,"lower"),s=n.upper??ei(t,"upper"),c=t.points.map(e=>{const t=Qr(i,e.time,o,r),n=ti(e,a),c=ti(e,s);if(null!=n&&null!=c&&n>c)throw new RangeError("comparePhysicsTrace lower band exceeds upper band at time "+e.time);return{time:e.time,value:t,lower:n,upper:c,status:null==t||null==n||null==c?"unobserved":ni(t,n,c)}});let l=0,u=0,d=0,h=0,f=null,m=0,p=null;for(const e of c){if("below"===e.status?l+=1:"inside"===e.status?u+=1:"above"===e.status&&(d+=1),null==e.value||null==e.lower||null==e.upper)continue;const t=Math.max(0,e.value-e.upper),n=Math.max(0,e.lower-e.value);t>h&&(h=t,f=e.time),n>m&&(m=n,p=e.time)}let y=0,g=0,x=0,b=0;for(let e=0;c.length-1>e;e+=1){const t=c[e],n=c[e+1],r=Math.max(0,n.time-t.time);if(r>0){if("linear"===o){const e=oi(t,n);y+=e.below,g+=e.inside,x+=e.above,b+=e.observed;continue}"unobserved"!==t.status&&(b+=r,"below"===t.status?y+=r:"above"===t.status?x+=r:g+=r)}}const w=c[0]?.time,M=c[c.length-1]?.time,v=null==w||null==M?0:Math.max(0,M-w);return{points:c,sampleCount:c.length,observedSamples:l+u+d,belowSamples:l,insideSamples:u,aboveSamples:d,totalDuration:v,observedDuration:b,unobservedDuration:Math.max(0,v-b),belowDuration:y,insideDuration:g,aboveDuration:x,peakExcess:h,peakExcessAt:f,peakDeficit:m,peakDeficitAt:p}}function ii(e){return{id:e,furthestStageIndex:-1,visitedStageIds:[],visitsByStage:{},firstEnteredAt:{},lastEnteredAt:{},regressionCount:0}}function ai(e){const t=Array.from(new Set(e.bodyIds??[]));return{stages:e.stages.map(e=>({...e})),bodyIds:t,entities:Object.fromEntries(t.map(e=>[e,ii(e)]))}}function si(e,t,n={}){if("region-enter"!==t.type)return e;const o=function(e,t){const n=t.stageId?.(e);if(n)return n;const o=e.region.metadata;if(o&&"object"==typeof o){const e=o.stageId;if("string"==typeof e)return e}return e.region.id}(t,n),r=e.stages.findIndex(e=>e.id===o);if(0>r)return e;const i=n.entityId?.(t)??t.bodyId;if(!i)return e;const a=e.entities[i]??ii(i),s=a.currentStageId?e.stages.findIndex(e=>e.id===a.currentStageId):-1,c=!a.visitedStageIds.includes(o),l=Number(t.observation.timestamp),u=Number.isFinite(l)?l:0,d={...a,currentStageId:o,furthestStageId:r>a.furthestStageIndex?o:a.furthestStageId,furthestStageIndex:Math.max(a.furthestStageIndex,r),visitedStageIds:c?[...a.visitedStageIds,o]:a.visitedStageIds,visitsByStage:{...a.visitsByStage,[o]:(a.visitsByStage[o]??0)+1},firstEnteredAt:c?{...a.firstEnteredAt,[o]:u}:a.firstEnteredAt,lastEnteredAt:{...a.lastEnteredAt,[o]:u},regressionCount:s>=0&&s>r?a.regressionCount+1:a.regressionCount};return{...e,bodyIds:e.bodyIds.includes(i)?e.bodyIds:[...e.bodyIds,i],entities:{...e.entities,[i]:d}}}function ci(e){const t=e.bodyIds.map(t=>e.entities[t]??ii(t)),n=t.length;let o=n;return e.stages.map((e,r)=>{const i=t.filter(e=>e.furthestStageIndex>=r).length,a=t.filter(t=>t.visitedStageIds.includes(e.id)).length,s=t.reduce((t,n)=>t+(n.visitsByStage[e.id]??0),0),c={id:e.id,label:e.label??e.id,reached:i,entered:a,total:n,conversion:n>0?i/n:0,fromPrevious:o>0?i/o:0,dropoff:Math.max(0,o-i),visits:s,repeatVisits:Math.max(0,s-a)};return o=i,c})}function li(e,t){if("function"==typeof t){const n=t(e);return Number.isFinite(n)&&n>0?Number(n):1}const n=e.datum;if(t&&n&&"object"==typeof n){const e=Number(n[t]);if(Number.isFinite(e)&&e>0)return e}const o=Number(n?.work??n?.reviewWork??n?.value);return Number.isFinite(o)&&o>0?o:1}function ui(e,t){if("function"==typeof t){const n=t(e);if(null!=n&&(n+"").length>0)return n+""}else if(t){const n=hi(e.datum,t),o=hi(e,t),r=n??o;if(null!=r&&(r+"").length>0)return r+""}return e.id}function di(e,t){if(0===e.length)return 0;if(1===e.length)return e[0];const n=Math.max(0,Math.min(1,t))*(e.length-1),o=Math.floor(n);return e[o]+(e[Math.ceil(n)]-e[o])*(n-o)}function hi(e,t){if(!t)return;let n=e;for(const e of t.split(".")){if(null==n||"object"!=typeof n)return;n=n[e]}return n}function fi(e,t){if(!t)return!0;if("function"==typeof t)return t(e);const n=hi(e,t.property);return!("equals"in t&&!Object.is(n,t.equals)||"notEquals"in t&&Object.is(n,t.notEquals)||t.oneOf&&!t.oneOf.some(e=>Object.is(n,e))||t.notOneOf&&t.notOneOf.some(e=>Object.is(n,e)))}function mi(e){const t=e.regionId,n=Math.max(0,e.unitsPerSecond),o=e.queueLayout??"lane",r=e.queueSlotSpacing??14,i=e.queueStiffness??.35,a=Number.isFinite(e.maxQueue)?Math.max(0,Math.floor(Number(e.maxQueue))):1/0,s=Math.max(.25,e.metricWindowSeconds??30),c=Math.max(1/60,e.snapshotIntervalSeconds??.25),l=e.releaseImpulse??{x:90,y:0},u=new Map,d=new Map,h=new Map,f=new Map,m=new Map,p=new Map,y=new Map,g=[];let x=0,b=new Map,w=new Map,M=0,v=0,k=0,$=null,A=0,S=0,I=0,j=0,C=0,L=0,T=0,N=0,z=0,E=0,F=0,R=0,P=-1,W=!1;function O(e,n){const o=n(e);return!!o&&o.activeRegionIds.includes(t)}function q(){R+=1}function D(e){return{bodyId:e.bodyId,jobId:e.jobId,visitId:e.visitId,visit:e.visit,regionId:t,work:e.total,queuedAt:e.queuedAt}}function B(n,o,r,i){const a={bodyId:n.id,jobId:o.jobId,visitId:o.visitId,visit:o.visit,remaining:o.work,total:o.work,queuedAt:o.queuedAt,sequence:i};return u.set(o.jobId,a),y.delete(n.id),p.set(n.id,o.jobId),S+=1,I+=o.work,q(),function(n,o,r){const i=D(o);e.onQueued?.(n,i),r.controls.recordObservation({type:"physics-capacity-queued",bodyId:n.id,datum:n.datum,x:n.x,y:n.y,regionId:t,work:o.total,jobId:o.jobId,visitId:o.visitId,visit:o.visit,queuedAt:o.queuedAt,queueDepth:u.size})}(n,a,r),a}function Y(e){if(u.size>=a||0===d.size)return;const t=Array.from(d.values()).sort((e,t)=>e.sequence-t.sequence);for(const n of t){if(u.size>=a)break;const t=m.get(n.jobId);t&&h.has(n.jobId)?(d.delete(n.jobId),y.delete(n.bodyId),B(t,n,e,n.sequence)):d.delete(n.jobId)}}function H(){let e=0;for(const t of u.values())e+=t.remaining;return e}function V(){z=Math.max(z,u.size),E=Math.max(E,H())}function _(){const e=k-s,t=Math.max(0,Math.min(s,k-($??k)));let o=0,r=0,i=0,a=0,c=0;for(const t of g){if(e>t.end)continue;o+=t.arrivals,r+=t.arrivalWork,i+=t.completions,a+=t.completedWork;const n=t.end-t.start;c+=n>0&&e>t.start?t.processedWork*Math.min(1,Math.max(0,t.end-e)/n):t.processedWork}const l=t>0?r/t:0;return{seconds:t,arrivals:o,arrivalWork:r,completions:i,completedWork:a,processedWork:c,arrivalsPerSecond:t>0?o/t:0,throughputPerSecond:t>0?i/t:0,utilization:t>0&&n>0?Math.max(0,Math.min(1,c/(n*t))):0,pressure:n>0?l/n:0}}return{id:e.id??"capacity-queue:"+t,continuous:!1!==e.continuous,tick:o=>{const r=o.controls.readBodies(),i=new Map,S=new Map;for(const t of r){if(i.set(t.id,t),!O(t.id,o.getRegionState))continue;if(!fi(t,e.bodyFilter))continue;const n=ui(t,e.jobKey),r=S.get(n)??[];r.push(t),S.set(n,r)}const I=Number.isFinite(o.dt)?Math.max(0,o.dt):0;if(!W){const e=Number.isFinite(o.elapsed)?Math.max(0,o.elapsed):I;k=Math.max(0,e-I),W=!0}const z=k,E=z+I;k=E,$=null==$?z:Math.min($,z);const R={start:z,end:E,arrivals:0,arrivalWork:0,completions:0,completedWork:0,processedWork:0},H=new Map;for(const[e,t]of S){const n=h.get(e)?.bodyId,o=t.find(e=>e.id===n)??t[0];H.set(e,o),m.set(e,o)}for(const[n,r]of h){if(H.has(n))continue;const a=u.get(n),s=i.get(r.bodyId)??m.get(n);if(a){u.delete(n),p.delete(a.bodyId),T+=1,N+=a.remaining,q();const i={...D(a),abandonedAt:k,remainingWork:a.remaining,queueSeconds:Math.max(0,k-a.queuedAt)};s&&e.onAbandoned?.(s,i),o.controls.recordObservation({type:"physics-capacity-abandoned",bodyId:r.bodyId,datum:s?.datum,x:s?.x,y:s?.y,regionId:t,work:a.total,remainingWork:a.remaining,jobId:n,visitId:a.visitId,visit:a.visit,queuedAt:a.queuedAt,abandonedAt:k,queueSeconds:i.queueSeconds,queueDepth:u.size})}d.delete(n),y.delete(r.bodyId),h.delete(n),m.delete(n)}for(const[n,r]of H){if(h.has(n))continue;const i=(f.get(n)??0)+1;f.set(n,i);const s=li(r,e.unitAccessor),c={bodyId:r.id,jobId:n,visitId:`${t}:${n}:${i}`,visit:i,regionId:t,work:s,queuedAt:k};h.set(n,c),A+=1,R.arrivals+=1,R.arrivalWork+=s;const l=x++;if(a>u.size)B(r,c,o,l);else{const a={...c,blockedAt:k,sequence:l};d.set(n,a),y.set(r.id,n),L+=1,q(),e.onBlocked?.(r,a),o.controls.recordObservation({type:"physics-capacity-blocked",bodyId:r.id,datum:r.datum,x:r.x,y:r.y,regionId:t,work:s,jobId:n,visitId:c.visitId,visit:i,queuedAt:k,blockedAt:k,queueDepth:u.size,blockedDepth:d.size})}}Y(o),V();const _=Array.from(u.values()).sort((e,t)=>e.sequence-t.sequence);let G=n*I;for(const n of _){if(0>=G)break;const r=Math.min(n.remaining,G);if(n.remaining-=r,G-=r,j+=r,R.processedWork+=r,n.remaining>1e-6)continue;u.delete(n.jobId),p.delete(n.bodyId),v+=1,C+=n.total,R.completions+=1,R.completedWork+=n.total;const a=Math.max(0,k-n.queuedAt);F+=a,q();const s=i.get(n.bodyId);if(!s)continue;o.controls.applyImpulse(n.bodyId,l.x??0,l.y??0);const c={...D(n),completedAt:k,queueSeconds:a};e.onProcessed?.(s,c),o.controls.recordObservation({type:"physics-capacity-processed",bodyId:n.bodyId,datum:s.datum,x:s.x,y:s.y,regionId:t,work:n.total,jobId:n.jobId,visitId:n.visitId,visit:n.visit,queuedAt:n.queuedAt,completedAt:k,queueSeconds:a,queueDepth:u.size})}Y(o),V(),function(){const e=Array.from(u.values()).sort((e,t)=>e.sequence-t.sequence);b=new Map(e.map((e,t)=>[e.bodyId,t]));const t=Array.from(d.values()).sort((e,t)=>e.sequence-t.sequence);w=new Map(t.map((e,t)=>[e.bodyId,t])),M=e.length}(),function(e){(e.end>e.start||e.arrivals>0||e.completions>0||e.processedWork>0)&&g.push(e);const t=k-s;for(;g.length>0&&t>g[0].end;)g.shift()}(R);const X=Math.floor(k/c);X!==P&&(P=X,q())},getSnapshot:()=>{const e=H(),o=function(){let e=0;for(const t of d.values())e+=t.work;return e}(),r=u.size,i=Array.from(u.values()).map(e=>Math.max(0,k-e.queuedAt)).sort((e,t)=>e-t),a=i.reduce((e,t)=>e+t,0);return{regionId:t,queueDepth:r,processedCount:v,unitsPerSecond:n,remainingWork:e,meanRemainingWork:r>0?e/r:0,waitingWork:e+o,blockedDepth:d.size,blockedWork:o,arrivalCount:A,admittedCount:S,admittedWork:I,processedWork:j,completedWork:C,blockedCount:L,abandonedCount:T,abandonedWork:N,peakQueueDepth:z,peakRemainingWork:E,queueAge:{count:i.length,meanSeconds:i.length>0?a/i.length:0,p50Seconds:di(i,.5),p95Seconds:di(i,.95),oldestSeconds:i.at(-1)??0},meanCompletedQueueSeconds:v>0?F/v:0,window:_(),simulatedAt:k,metricRevision:R}},bodyForce:e=>{if("none"===o)return null;const n=p.get(e.body.id),a=y.get(e.body.id),s=n?u.get(n):void 0,c=a?d.get(a):void 0;if(!s&&!c)return null;const l=s?b.get(e.body.id):w.get(e.body.id);if(null==l)return null;let h;const f=e.regions;if(f)for(let e=0;f.length>e;e+=1)if(f[e].id===t){const t=f[e].shape;t&&"aabb"===t.type&&(h=t);break}return h?{x:((c?h.x-.44*h.width:h.x-.22*h.width-l*(.15*r))-e.body.x)*i,y:(h.y-(l-((c?d.size:M)-1)/2)*r/Math.max(1,Math.sqrt(c?d.size:M))-e.body.y)*i*.85}:{x:8*-Math.sign(e.body.vx||1),y:0}}}}function pi(e,t){if(!t)return;let n=e;for(const e of t.split(".")){if(null==n||"object"!=typeof n)return;n=n[e]}return n}function yi(e,t){if(!t)return!0;if("function"==typeof t)return t(e);const n=pi(e,t.property);return!("equals"in t&&!Object.is(n,t.equals)||"notEquals"in t&&Object.is(n,t.notEquals)||t.oneOf&&!t.oneOf.some(e=>Object.is(n,e))||t.notOneOf&&t.notOneOf.some(e=>Object.is(n,e)))}function gi(e){const t=e.resources.map(e=>({...e,bodyId:e.bodyId??e.id})),n=new Map(t.map(e=>[e.bodyId,e])),o=new Map,r=new Map,i=e.assignmentForce??.45,a=e.returnForce??.35,s=e.caseAttraction??.08,c=e.assignmentOffset??{x:0,y:0};let l=new Map,u=0,d=0;return{id:e.id??"service-resource-pool",continuous:!0,assign:e=>{const n=o.get(e);if(n)return n;const i=t.find(e=>!r.has(e.id));if(!i)return null;const a={resourceId:i.id,resourceBodyId:i.bodyId,caseBodyId:e,assignedAt:u};return o.set(e,a),r.set(i.id,a),d+=1,a},release:e=>{const t=o.get(e);return!!t&&(o.delete(e),r.delete(t.resourceId),d+=1,!0)},getAssignment:e=>o.get(e),tick:e=>{u=Math.max(u,e.elapsed),l=new Map(e.controls.readBodies().map(e=>[e.id,e]));for(const[e,t]of o)l.has(e)&&l.has(t.resourceBodyId)||(o.delete(e),r.delete(t.resourceId),d+=1)},getSnapshot:()=>({total:t.length,available:t.length-r.size,assigned:r.size,assignments:Array.from(o.values()),simulatedAt:u,metricRevision:d}),bodyForce:e=>{const t=n.get(e.body.id);if(t){const n=r.get(t.id),o=n?l.get(n.caseBodyId):void 0,s=n?i:a;return{x:((o?o.x+(c.x??0):t.home.x)-e.body.x)*s,y:((o?o.y+(c.y??0):t.home.y)-e.body.y)*s}}const u=o.get(e.body.id);if(!u||0>=s)return null;const d=l.get(u.resourceBodyId);return d?{x:(d.x-e.body.x)*s,y:(d.y-e.body.y)*s}:null}}}function xi(e,t){const n="function"==typeof t.deadlineAccessor?t.deadlineAccessor(e):pi(e.datum,t.deadlineAccessor)??pi(e,t.deadlineAccessor);return Number.isFinite(Number(n))?Math.max(0,Number(n)):0}function bi(e){const t=new Map;let n=0,o=0;function r(n){t.set(n.bodyId,n),o+=1,e.onStateChange?.({...n})}function i(e){const o=t.get(e);return!(!o||null!=o.completedAt||(r({...o,completedAt:n,state:"unhappy"===o.state?"resolved-unhappy":"resolved"}),0))}return{id:e.id??"service-level",continuous:!0,protect:e=>{const o=t.get(e);return!(!o||null!=o.completedAt||"unhappy"===o.state||(r({...o,state:"protected",protectedAt:n}),0))},complete:i,getCase:e=>t.get(e),tick:o=>{n=Math.max(n,o.elapsed);for(const a of o.controls.readBodies()){if(!yi(a,e.bodyFilter))continue;if(!t.has(a.id)){const t=xi(a,e);r({bodyId:a.id,openedAt:n,deadlineAt:n+t,state:"waiting"})}const s=t.get(a.id);s&&null==s.completedAt&&(e.completionRegionId&&o.getRegionState(a.id)?.activeRegionIds.includes(e.completionRegionId)?i(a.id):"waiting"!==s.state||s.deadlineAt>n||r({...s,state:"unhappy"}))}},getSnapshot:()=>{const e=Array.from(t.values()),r=t=>e.filter(e=>e.state===t).length;return{total:e.length,waiting:r("waiting"),protected:r("protected"),unhappy:r("unhappy"),resolved:r("resolved"),resolvedUnhappy:r("resolved-unhappy"),simulatedAt:n,metricRevision:o}}}}function wi(e){const t=new Set;let n=0,o=0,r=0,i=!1;return{id:e.id??"dependency-gate:"+e.regionId,continuous:!0,tick:a=>{n=Math.max(n,a.elapsed);const s=i;var c;c=n,i=e.isOpen?e.isOpen(c):null!=e.opensAt&&c>=e.opensAt;const l=a.controls.readBodies(),u=new Map(l.map(e=>[e.id,e]));for(const n of l){const o=a.getRegionState(n.id)?.activeRegionIds.includes(e.regionId);o&&yi(n,e.bodyFilter)&&(i||t.has(n.id)||(t.add(n.id),r+=1,e.onHeld?.(n)))}if(i&&!s){for(const n of t){const t=u.get(n);t&&(a.controls.applyImpulse(n,e.releaseImpulse?.x??86,e.releaseImpulse?.y??0),o+=1,e.onReleased?.(t))}t.clear(),r+=1}for(const e of t)u.has(e)||(t.delete(e),r+=1)},getSnapshot:()=>({regionId:e.regionId,isOpen:i,blocked:t.size,released:o,simulatedAt:n,metricRevision:r}),bodyForce:n=>{if(i||!t.has(n.body.id))return null;const o=n.regions?.find(t=>t.id===e.regionId),r=o?.shape;if(!r||"aabb"!==r.type)return{x:.8*-n.body.vx,y:.8*-n.body.vy};const a=e.holdForce??.4;return{x:(r.x-n.body.x)*a-.45*n.body.vx,y:(r.y-n.body.y)*a-.45*n.body.vy}}}}function Mi(e,t){return e||t?{x:(e?.x??0)+(t?.x??0),y:(e?.y??0)+(t?.y??0)}:null}function vi(e){if(!e?.length)return null;const t=e.slice(),n=t.some(e=>!1!==e.continuous);return{controllers:t,continuous:n,onTick:(e,n,o)=>{const r={result:e,controls:n,dt:o.dt,elapsed:o.elapsed,getRegionState:o.getRegionState};for(const e of t)e.tick(r)},bodyForce:e=>{let n=null;for(const o of t)o.bodyForce&&(n=Mi(n,o.bodyForce(e)));return n}}}function ki(e){const t=new Set,n=e.impulse??{x:-60,y:0};return{id:e.id??"portal:"+e.fromRegionId,continuous:!0===e.continuous,tick:o=>{const r=o.controls.readBodies();for(const i of r){const r=o.getRegionState(i.id),a=r?.activeRegionIds.includes(e.fromRegionId);a?t.has(i.id)||(t.add(i.id),o.controls.applyImpulse(i.id,n.x??0,n.y??0),e.onPortal?.(i)):t.delete(i.id)}}}}var $i=require("react/jsx-runtime"),Ai={flow:{fill:"rgba(59, 130, 246, 0.14)",stroke:"rgba(96, 165, 250, 0.7)",accent:"#60a5fa"},capacity:{fill:"rgba(251, 146, 60, 0.18)",stroke:"rgba(251, 146, 60, 0.85)",accent:"#fb923c"},portal:{fill:"rgba(244, 114, 182, 0.14)",stroke:"rgba(244, 114, 182, 0.7)",accent:"#f472b6"},absorb:{fill:"rgba(52, 211, 153, 0.18)",stroke:"rgba(52, 211, 153, 0.8)",accent:"#34d399"}},Si=6.2;function Ii(e,t,n){return Math.max(t,Math.min(n,e))}function ji(e){return e.length*Si}function Ci(e,t){const n=e.trim();if(t>=n.length)return n;if(1>=t)return n.slice(0,1);const o=n.split(/\s+/).filter(Boolean).map(e=>e[0]).join("").toUpperCase();return o.length>1&&t>=o.length?o:t>3?n.slice(0,Math.max(1,t-2))+"..":n.slice(0,t).toUpperCase()}function Li(e,t,n="auto"){const o=Math.max(1,Math.floor(t/Si)),r="compact"===n?Ci(e,o):"full"===n?e:ji(e)>t?Ci(e,o):e;return{text:r,textLength:ji(r)>t?Math.max(4,t):void 0}}function Ti(e,t={}){const{showFlowSpine:n=!0,showStageCounts:o=!0,showCapacityBadges:r=!0,showGroupSockets:i=!0,stageLabelMode:a="auto",outlineStages:s=!1,testId:c="process-flow-chrome"}=t,{width:l,height:u,left:d,right:h,topY:f,bottomY:m,midY:p,stages:y,groups:g=[]}=e,x=m-f;return(0,$i.jsxs)("svg",{"aria-hidden":"true","data-testid":c,"data-outline-stages":s?"true":void 0,width:l,height:u,viewBox:`0 0 ${l} ${u}`,style:{position:"absolute",inset:0,pointerEvents:"none"},className:["semiotic-process-chrome",s?"semiotic-process-chrome--outline-stages":null].filter(Boolean).join(" "),children:[(0,$i.jsx)("defs",{children:(0,$i.jsxs)("linearGradient",{id:"semiotic-process-floor",x1:"0",x2:"0",y1:"0",y2:"1",children:[(0,$i.jsx)("stop",{offset:"0%",stopColor:"var(--semiotic-process-floor, var(--semiotic-bg, #0f172a))",stopOpacity:"0.2"}),(0,$i.jsx)("stop",{offset:"100%",stopColor:"var(--semiotic-process-lane, var(--semiotic-surface, #1e293b))",stopOpacity:"0.55"})]})}),(0,$i.jsx)("rect",{x:0,y:0,width:l,height:u,fill:"url(#semiotic-process-floor)"}),(0,$i.jsx)("rect",{x:d-6,y:f-8,width:h-d+12,height:x+16,rx:14,fill:"var(--semiotic-process-lane, var(--semiotic-surface, #111827))",fillOpacity:.45,stroke:"var(--semiotic-process-border, var(--semiotic-border, #334155))",strokeOpacity:.95}),n?(0,$i.jsx)("line",{x1:d+8,x2:h-8,y1:p,y2:p,stroke:"var(--semiotic-process-border, var(--semiotic-border, #475569))",strokeWidth:2,strokeDasharray:"6 8",opacity:.55}):null,y.map((e,t)=>{const n=function(e){return e.absorb?"absorb":e.portalTarget?"portal":null!=e.capacity?"capacity":"flow"}(e),i=Ai[n],c=Math.max(12,e.width-8),l=Ii(c-8,22,88),d=Li(e.label,Math.max(8,l-10),a),h="none"!==a&&c-8>=22,g=function(e){if(null!=e.capacity){const t=null!=e.queueDepth?" · q "+e.queueDepth:"";return e.capacityLabel?`${e.capacityLabel}${t}`:`cap ${Number.isInteger(e.capacity)?e.capacity+"":e.capacity.toFixed(1)}${t}`}return e.absorb?"absorb":e.portalTarget?"portal":"flow"}(e),b=Li(g,Math.max(16,c-10),"auto"),w=r&&!1!==e.showBadge&&c>=32,M=null!=e.count?`n=${e.count}${null!=e.processed?" done "+e.processed:""}`:"",v=Li(M,Math.max(16,c-8),"auto"),k=Math.max(30,f-15),$=k-13;return(0,$i.jsxs)("g",{"data-stage":e.id,"data-role":n,children:[(0,$i.jsx)("rect",{className:"semiotic-process-chrome__stage-bay",x:e.x0+4,y:f+6,width:c,height:x-12,rx:10,fill:s?"none":i.fill,stroke:i.stroke,strokeWidth:s?1.85:"flow"===n?1:1.6}),y.length-1>t?(0,$i.jsx)("polygon",{points:`${e.x1-2},${p-7} ${e.x1+8},${p} ${e.x1-2},${p+7}`,fill:i.accent,opacity:.85}):null,h?(0,$i.jsxs)($i.Fragment,{children:[(0,$i.jsx)("rect",{className:"semiotic-process-chrome__stage-label-bg",x:e.x-l/2,y:$,width:l,height:18,rx:9,fill:"var(--semiotic-bg, #0f172a)",fillOpacity:.75,stroke:i.stroke}),(0,$i.jsxs)("text",{x:e.x,y:k,textAnchor:"middle",fill:i.accent,fontSize:10,fontWeight:800,className:"semiotic-process-chrome__stage-label",textLength:d.textLength,lengthAdjust:d.textLength?"spacingAndGlyphs":void 0,children:[(0,$i.jsx)("title",{children:e.label}),d.text]})]}):null,w?(0,$i.jsxs)("text",{x:e.x,y:f+22,textAnchor:"middle",fill:"var(--semiotic-process-muted, var(--semiotic-text-secondary, #94a3b8))",fontSize:9,fontWeight:700,textLength:b.textLength,lengthAdjust:b.textLength?"spacingAndGlyphs":void 0,children:[(0,$i.jsx)("title",{children:g}),b.text]}):null,o&&null!=e.count?(0,$i.jsxs)("text",{x:e.x,y:Math.min(u-8,m+16),textAnchor:"middle",fill:"var(--semiotic-process-text, var(--semiotic-text, #e2e8f0))",fontSize:11,fontWeight:800,textLength:v.textLength,lengthAdjust:v.textLength?"spacingAndGlyphs":void 0,children:[(0,$i.jsx)("title",{children:M}),v.text]}):null]},e.id)}),i?g.map((e,t)=>{const n=e.total??0,o=e.absorbed??0,r=e.complete??(n>0&&o>=n),i=!r&&n>0&&o/n>=.75,a=r?"rgba(52, 211, 153, 0.35)":i?"rgba(251, 191, 36, 0.28)":"rgba(15, 23, 42, 0.75)",s=r?"#34d399":i?"#fbbf24":"var(--semiotic-border, #64748b)",c=n>0?`${o}/${n}${r?" shipped":i?" almost":""}`:"feature "+(t+1),l=Ii(Math.max(54,ji(e.label)+18,ji(c)+16),54,104),u=Li(e.label,l-12,"auto"),d=Li(c,l-12,"auto");return(0,$i.jsxs)("g",{"data-group":e.id,children:[(0,$i.jsx)("rect",{x:e.x-l/2,y:e.y-22,width:l,height:44,rx:10,fill:a,stroke:s,strokeWidth:1.5}),(0,$i.jsxs)("text",{x:e.x,y:e.y-4,textAnchor:"middle",fill:"var(--semiotic-process-text, var(--semiotic-text, #f8fafc))",fontSize:10,fontWeight:800,textLength:u.textLength,lengthAdjust:u.textLength?"spacingAndGlyphs":void 0,children:[(0,$i.jsx)("title",{children:e.label}),u.text]}),(0,$i.jsxs)("text",{x:e.x,y:e.y+12,textAnchor:"middle",fill:s,fontSize:9,fontWeight:700,textLength:d.textLength,lengthAdjust:d.textLength?"spacingAndGlyphs":void 0,children:[(0,$i.jsx)("title",{children:c}),d.text]})]},e.id)}):null]})}function Ni(e){const t="number"==typeof e?e:"string"==typeof e&&e.trim()?Number(e):NaN;return Number.isFinite(t)?t:null}function zi(e,t,n,o){const r="function"==typeof e?e(t,n):e;return Number.isFinite(r)?Number(r):o}function Ei(e,t,n){return Ni(e[t])??n}function Fi(e,t){return"number"==typeof e?e:e?.[t]??0}function Ri(e){const{band:t,idPrefix:n,plot:o,projection:r}=e,{includeBoundaryWalls:i=!0,includeInteriorWalls:a=!0,wallThickness:s=4}=t,c=function(e){const t=e.bandwidth??e.scale.bandwidth?.()??0,n=new Set;for(const o of e.values){const r=e.scale(o);Number.isFinite(r)&&(n.add(Number(r)),n.add(Number(r)+t))}return Array.from(n).sort((e,t)=>e-t)}(t);if(2>c.length)return[];const l=i?c.length-1:c.length-2,u=[];for(let e=i?0:1;l>=e;e+=1){if(!a&&e>0&&c.length-1>e)continue;const t=c[e];u.push({id:`${n}-wall-${e}`,shape:"x"===r?{type:"aabb",x:t,y:o.y+o.height/2,width:s,height:o.height}:{type:"aabb",x:o.x+o.width/2,y:t,width:o.width,height:s}})}return u}function Pi(e){const{plot:t,idPrefix:n="physics-scale",bounds:o={},xBins:r,xBands:i,yBands:a}=e,s=[];if(!1!==o&&s.push(...function(e,t={}){const{idPrefix:n="plot",includeFloor:o=!0,includeCeiling:r=!1,includeLeftWall:i=!0,includeRightWall:a=!0,wallThickness:s=20,floorThickness:c=s}=t,l=[],u=e.x+e.width/2,d=e.y+e.height/2;return o&&l.push({id:n+"-floor",shape:{type:"aabb",x:u,y:e.y+e.height+c/2,width:e.width+2*s,height:c}}),r&&l.push({id:n+"-ceiling",shape:{type:"aabb",x:u,y:e.y-c/2,width:e.width+2*s,height:c}}),i&&l.push({id:n+"-left-wall",shape:{type:"aabb",x:e.x-s/2,y:d,width:s,height:e.height+2*c}}),a&&l.push({id:n+"-right-wall",shape:{type:"aabb",x:e.x+e.width+s/2,y:d,width:s,height:e.height+2*c}}),l}(t,{idPrefix:n,...o})),r){const{idPrefix:e,yTop:o,yBottom:i,...a}=r;s.push(...function(e){const{idPrefix:t="bin",count:n,domainStart:o,domainStep:r,xScale:i,yTop:a,yBottom:s,wallThickness:c=4,includeBoundaryWalls:l=!0,includeInteriorWalls:u=!0,closedBefore:d,lidY:h=a,lidThickness:f=Math.max(2,c)}=e,m=[],p=a+(s-a)/2,y=Math.abs(s-a),g=l?n:n-1;if(u||l)for(let e=l?0:1;g>=e;e+=1){if(!u&&e>0&&n>e)continue;const a=i(o+e*r);m.push({id:`${t}-wall-${e}`,shape:{type:"aabb",x:a,y:p,width:c,height:y}})}if(null!=d)for(let e=0;n>e;e+=1){const n=o+e*r,a=n+r;if(a>=d)continue;const s=i(n),l=i(a);m.push({id:`${t}-lid-${e}`,shape:{type:"segment",x1:Math.min(s,l)+c/2,y1:h,x2:Math.max(s,l)-c/2,y2:h,thickness:f}})}return m}({...a,idPrefix:e??n+"-xbin",yTop:o??t.y,yBottom:i??t.y+t.height}))}return i&&s.push(...Ri({band:i,idPrefix:i.idPrefix??n+"-xband",plot:t,projection:"x"})),a&&s.push(...Ri({band:a,idPrefix:a.idPrefix??n+"-yband",plot:t,projection:"y"})),s}function Wi(e){const{plot:t,rows:n,columns:o=n+1,pegRadius:r=3,idPrefix:i="galton-peg",yStart:a=t.y+.18*t.height,yEnd:s=t.y+.58*t.height,stagger:c=!0,restitution:l=.2,friction:u=.04}=e,d=Math.max(0,Math.floor(n)),h=Math.max(1,Math.floor(o));if(0===d)return[];const f=d>1?(s-a)/(d-1):0,m=t.width/h,p=[];for(let e=0;d>e;e+=1){const n=c&&e%2==1?m/2:0;for(let o=0;h>o;o+=1){const s=t.x+m*(o+.5)+n;t.x+r>s||s>t.x+t.width-r||p.push({id:`${i}-${e}-${o}`,shape:{type:"aabb",x:s,y:a+e*f,width:2*r,height:2*r},restitution:l,friction:u})}}return p}function Oi(e,t={}){const{idPrefix:n="physics-token",radius:o=5,shape:r,mass:i,vx:a,vy:s,spawnAt:c,seed:l=1,jitter:u,datum:d}=t,h=F(l),f=Fi(u,"x"),m=Fi(u,"y");return e.map((e,l)=>{const u=zi(t.x,e,l,Ei(e,"x",0)),p=zi(t.y,e,l,Ei(e,"y",0)),y=zi(o,e,l,5),g="function"==typeof r?r(e,l):r??{type:"circle",radius:y};return{id:`${n}-${e.index??l}`,x:u+(h()-.5)*f,y:p+(h()-.5)*m,vx:zi(a,e,l,0),vy:zi(s,e,l,0),mass:zi(i,e,l,1),spawnAt:zi(c,e,l,void 0),shape:g,datum:d?d(e,l):e.datum??e}}).map(e=>{if(Number.isFinite(e.spawnAt))return e;const{spawnAt:t,...n}=e;return n})}function qi(e,t={}){const{idPrefix:n="sediment",collider:o=!0,colliderThickness:r=1,restitution:i=.05,friction:a=.2,...s}=t,c=function(e,t={}){const{baselineY:n=0,binWidth:o=24,gap:r=2,maxHeight:i=80,value:a="count",x:s}=t,c=Math.max(1,...e.map(e=>e[a]));return e.map((e,t)=>{const l=Math.max(0,e[a]/c*i),u=s?.(e,t)??t*(o+r);return{binId:e.id,label:e.label,index:t,count:e.count,total:e.total,x:u,y:n-l,width:o,height:l,meanX:e.x.mean,meanY:e.y.mean}})}(e,s),l=o?c.filter(e=>e.height>0).map(e=>({id:`${n}-${e.binId}`,shape:{type:"aabb",x:e.x+e.width/2,y:e.y+r/2,width:e.width,height:r},restitution:i,friction:a})):[];return{columns:c,colliders:l}}function Di(e,t={}){const{timeAccessor:n="arrivalTime",timeScale:o=1,startAt:r=0,rebase:i=!0,sort:a=!0}=t,s=e.map((e,t)=>({spawn:e,time:function(e,t,n){return Ni("function"==typeof n?n(e,t):e[n]??e.datum?.[n])}(e,t,n)??e.spawnAt??t})),c=s.length?Math.min(...s.map(e=>e.time)):0;return{initialSpawns:s.map(({spawn:e,time:t})=>({...e,spawnAt:r+(i?t-c:t)})).sort((e,t)=>a?(e.spawnAt??0)-(t.spawnAt??0):0),initialSpawnPacing:{pacing:"arrival",startAt:r,timeAccessor:"spawnAt",timeScale:o}}}function Bi(e,t,n="group"){const o=sr(e,t),r=e=>"function"==typeof n?n(e):e[n]??0;return e.slice().sort((e,t)=>{const n=r(e),i=r(t);return i>n?-1:n>i?1:(o[t.id]||0)-(o[e.id]||0)}).map(e=>e.id)}function Yi(e,t={}){const n=t.baseline??.62,o=t.inset??.06,r={},i=e.length;return e.forEach((e,t)=>{r[e]={x:i>1?o+t/(i-1)*(1-2*o):.5,y:n}}),r}function Hi(e,t,n=.55){return`M${e.x},${e.y} Q${(e.x+t.x)/2},${e.y-Math.abs(t.x-e.x)*n} ${t.x},${t.y}`}function Vi(e,t={}){const n=t.radius??.42,o=t.center?.x??.5,r=t.center?.y??.5,i=t.startAngle??0,a={},s=e.length;return e.forEach((e,t)=>{const c=i+t/s*Math.PI*2-Math.PI/2;a[e]={x:o+Math.cos(c)*n,y:r+Math.sin(c)*n}}),a}function _i(e,t,n={}){const o=(n.order??Bi(e,t,n.groupAccessor??"group")).slice(),r=new Map(o.map((e,t)=>[e,t])),i=new Map;for(const e of t){if(!r.has(e.source)||!r.has(e.target)||e.source===e.target)continue;const t=e.target>e.source?`${e.source}\0${e.target}`:`${e.target}\0${e.source}`;i.set(t,(i.get(t)||0)+(e.value??1))}const a=[];let s=0;for(const[e,t]of i){const[n,o]=e.split("\0"),i=r.get(n),c=r.get(o);t>s&&(s=t),a.push({row:i,col:c,source:n,target:o,value:t}),a.push({row:c,col:i,source:o,target:n,value:t})}return{order:o,cells:a,size:o.length,maxValue:s}}function Gi(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function Xi(e){if("string"!=typeof e)return;const t=e.trim();return t.length?t:void 0}function Ui(e,t){const n=Gi(e.note)?e.note:void 0;return t?Xi(e.mobileText)||Xi(e.shortText)||Xi(e.label)||Xi(n?.mobileText)||Xi(n?.shortText)||Xi(n?.label)||Xi(n?.title):Xi(e.label)||Xi(e.mobileText)||Xi(e.shortText)||Xi(n?.label)||Xi(n?.title)}function Ki(e,t,n){const o=function(e,t,n){if(!n)return;const o="function"==typeof n?n(e,t):e[n];return"number"==typeof o&&Number.isFinite(o)?o:void 0}(e,t,n.priorityAccessor);if(void 0!==o)return o;let r=1e3-t;const i=((e.emphasis??"")+"").toLowerCase();"primary"!==i&&"critical"!==i||(r+=1e4),"secondary"===i&&(r-=1e3),"high"===e.priority&&(r+=5e3),"low"===e.priority&&(r-=1500),"number"==typeof e.priority&&(r+=100*e.priority);const a=Gi(e.provenance)?e.provenance:void 0;"number"==typeof a?.confidence&&(r+=100*a.confidence);const s=Gi(e.lifecycle)?e.lifecycle:void 0,c=((s?.freshness??"")+"").toLowerCase();return"expired"!==c&&"stale"!==c||(r-=3e3),r}function Qi(e,t){if(!t)return e;const n=Ui(e,!0);return n&&"string"==typeof e.label?{...e,label:n}:e}function Zi(e,t={}){const n=Array.isArray(e)?e.filter(Gi):[],o=t.active??(null==t.width||(t.breakpoint??480)>=t.width),r=t.strategy??"hybrid",i=!1!==t.preferShortText,a=!1!==t.preservePrimary,s=Math.max(0,t.maxPlotAnnotations??t.maxAnnotations??("callout-list"===r?1:2)),c=Math.max(0,t.minPlotAnnotations??t.minVisible??1);if(!o||"plot"===r)return{active:o,strategy:r,budget:n.length,visible:i?n.map(e=>Qi(e,i)):n,deferred:[],calloutList:[],hidden:[]};const l=[],u=n.map((e,n)=>({annotation:e,index:n,priority:Ki(e,n,t)})).filter(e=>!!Qt(e.annotation)||(l.push(e.annotation),!1)).sort((e,t)=>t.priority-e.priority),d=a?u.filter(e=>"primary"===((e.annotation.emphasis??"")+"").toLowerCase()):[],h=new Set(d.map(e=>e.index)),f=u.filter(e=>!h.has(e.index)),m=[...d,...f].slice(0,Math.max(s,c)),p=new Set(m.map(e=>e.index)),y=u.filter(e=>!p.has(e.index)),g=[...l,...m.sort((e,t)=>e.index-t.index).map(e=>Qi(e.annotation,i))],x=y.sort((e,t)=>e.index-t.index).map(e=>e.annotation),b=Math.max(0,t.maxCalloutItems??6),w=y.filter(e=>!t.calloutFilter||t.calloutFilter(e.annotation,e.index)).map(e=>function(e,t,n,o){const r=Ui(e,o);if(!r)return null;const i=Xi(e.id)||Xi(e.key)||Xi(e.pointId)||"annotation-"+(t+1),a=Gi(e.provenance)?Xi(e.provenance.source)||Xi(e.provenance.authorKind):void 0;return{id:i,label:r,shortLabel:Xi(e.shortText),pointId:e.pointId,emphasis:"string"==typeof e.emphasis?e.emphasis:void 0,source:a,priority:n,annotation:e}}(e.annotation,e.index,e.priority,i)).filter(e=>!!e).slice(0,b),M=new Set(w.map(e=>e.annotation)),v=x.filter(e=>!M.has(e));return{active:o,strategy:r,budget:s,visible:g,deferred:x,calloutList:w,hidden:v}}function Ji(e){return"dense"===e.density?.75:"compact"===e.density?.9:1}function ea(e,t){const n=!1!==t.keepAxes,o=!1===t.directLabel?12:28;return"ordinal"===e?{top:12,right:o,bottom:n?44:12,left:n?48:12}:"geo"===e||"network"===e?{top:12,right:12,bottom:12,left:12}:{top:12,right:o,bottom:n?42:14,left:n?44:14}}function ta(e,t,n,o={}){const r={...n},i={mode:!1===t.mode?void 0:"mobile",...r,margin:ea(e,t),...o},a=Object.fromEntries(Object.entries(r).filter(([,e])=>void 0!==e)),s=Object.fromEntries(Object.entries(i).filter(([,e])=>void 0!==e)),c=function(e,t){const n=t.targetSize??44,o=[],r=t.standardControls,i=e=>!0===r||"all"===r||r===e||Array.isArray(r)&&r.includes(e);return i("brush")&&o.push("range-inputs","clear-brush"),i("zoom")&&o.push("zoom-buttons","reset-view"),i("legend")&&o.push("legend-chips","show-all-series"),{strategy:`${e}-${t.transformProfile??"overview"}-mobile-recipe`,supportsResponsiveLayout:!0,breakpoints:[320,360,390,430,t.breakpoint??480,768],maxAnnotations:t.maxAnnotations??2,minimumHitTarget:n,summary:t.summary??!0,interaction:{primary:"tap",hoverFallback:"tap-to-lock",targetSize:n,...o.length>0&&{alternatives:o}},labels:{strategy:!1===t.directLabel?"compact":"direct",minFontSize:12}}}(e,t),l=function(e){return{tapToSelect:!0,tapToLockTooltip:!0,clearSelection:"backgroundTap",targetSize:e.targetSize??44,snap:e.snap??"nearestDatum",brushHandleSize:e.targetSize??44,standardControls:e.standardControls??!1}}(t);return{family:e,props:a,responsiveRules:[{id:e+"-mobile",description:`Apply Semiotic's mobile ${e} recipe at phone width.`,when:{maxWidth:t.breakpoint??480},transform:{...s,mobileInteraction:l,mobileSemantics:c}}],mobileInteraction:l,mobileSemantics:c}}function na(e={}){const t=Ji(e);return ta("line",e,{showLegend:e.showLegend??!1,directLabel:e.directLabel??!0,lineWidth:"inspect"===e.transformProfile?3:Math.max(1.5,2.5*t),showPoints:"inspect"===e.transformProfile,autoPlaceAnnotations:{mobile:{strategy:"callout-list",maxAnnotations:e.maxAnnotations??2,maxCalloutItems:e.maxCalloutItems??4,progressiveDisclosure:!0,preferShortText:!0}}},{showAxes:e.keepAxes??!0,axisExtent:"exact"})}function oa(e={}){const t=Ji(e);return ta("area",e,{showLegend:e.showLegend??!1,showPoints:!1,areaOpacity:"compare"===e.transformProfile?.55:.42,lineWidth:Math.max(1.25,2*t),autoPlaceAnnotations:{mobile:{strategy:"callout-list",maxAnnotations:e.maxAnnotations??2,maxCalloutItems:e.maxCalloutItems??4,progressiveDisclosure:!0,preferShortText:!0}}},{showAxes:e.keepAxes??!0,axisExtent:"exact"})}function ra(e={}){return ta("ordinal",e,{showLegend:e.showLegend??!1,showCategoryTicks:e.keepAxes??!0,sort:"compare"===e.transformProfile?"desc":void 0},{showAxes:e.keepAxes??!0,axisExtent:"exact"})}function ia(e={}){const t=Ji(e);return ta("scatter",e,{showLegend:e.showLegend??!1,pointRadius:Math.max(4,Math.round((e.targetSize??44)/8*t)),hoverRadius:Math.ceil((e.targetSize??44)/2),pointOpacity:"dense"===e.density?.42:.68,autoPlaceAnnotations:{mobile:{strategy:"callout-list",maxAnnotations:e.maxAnnotations??1,maxCalloutItems:e.maxCalloutItems??4,progressiveDisclosure:!0,preferShortText:!0}}},{showAxes:e.keepAxes??!0,axisExtent:"exact"})}function aa(e={}){const t=Ji(e);return ta("network",e,{showLegend:e.showLegend??!1,nodeSizeRange:[Math.max(4,Math.round(6*t)),Math.max(12,Math.round((e.targetSize??44)/2*t))],showLabels:"inspect"===e.transformProfile,edgeOpacity:"dense"===e.density?.28:.44})}function sa(e={}){return ta("geo",e,{showLegend:e.showLegend??!1})}function ca(e={}){return ta("small-multiple",e,{mobileColumns:e.mobileColumns??1,tabletColumns:e.tabletColumns??2,chartHeight:e.chartHeight??180,sharedExtent:!0})}function la(e,t={}){switch(e){case"line":return na(t);case"area":return oa(t);case"ordinal":return ra(t);case"scatter":return ia(t);case"network":return aa(t);case"geo":return sa(t);case"small-multiple":return ca(t)}}function ua(e={}){const t=e.controls??["range-inputs","chip-filter","clear"];return{mobileInteraction:{enabled:!0,targetSize:e.targetSize??44,tapToSelect:!0,tapToLockTooltip:!0,standardControls:"brush"},mobileSemantics:{interaction:{primary:"filter",alternatives:t,summary:e.summary??"Expose brushable ranges through touch-sized controls in addition to drag gestures."}},controls:t}}var da=c(require("react")),ha=require("react/jsx-runtime");function fa({def:e,color:t,accent:n,paintOverride:o}){return(0,ha.jsx)(ha.Fragment,{children:e.parts.map((e,r)=>{const i=o?"none"===e.fill?void 0:o:Ho(e.fill,t,n),a=o?e.stroke&&"none"!==e.stroke?o:void 0:Ho(e.stroke??"none",t,n);return i||a?(0,ha.jsx)("path",{d:e.d,fill:i??"none",stroke:a,strokeWidth:a?e.strokeWidth??1:void 0,strokeLinecap:e.strokeLinecap,strokeLinejoin:e.strokeLinejoin,opacity:e.opacity},r):null})})}function ma({def:e,size:t=24,color:n="currentColor",accent:o="#ffffff",fraction:r=1,fractionStart:i=0,fractionDirection:a="horizontal",ghostColor:s,x:c=0,y:l=0,opacity:u,className:d}){const h=da.useId();if(!e?.parts?.length)return null;const[,f]=e.viewBox??qo,m=t/(f>0?f:1);if(0>=m)return null;const p=Vo(e,r,i,a),y=p?"glyph-clip"+h.replace(/[^A-Za-z0-9_-]/g,"_"):void 0;return(0,ha.jsxs)("g",{className:d,transform:`translate(${c} ${l}) scale(${m})`,opacity:u,"aria-hidden":"true",children:[p&&y&&(0,ha.jsx)("clipPath",{id:y,children:(0,ha.jsx)("rect",{x:p.x,y:p.y,width:p.width,height:p.height})}),p&&s?(0,ha.jsx)(fa,{def:e,color:n,accent:o,paintOverride:s}):null,p&&y?(0,ha.jsx)("g",{clipPath:`url(#${y})`,children:(0,ha.jsx)(fa,{def:e,color:n,accent:o})}):(0,ha.jsx)(fa,{def:e,color:n,accent:o})]})}
|