semiotic 3.5.4 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/CLAUDE.md +196 -175
  2. package/README.md +52 -15
  3. package/ai/cli.js +41 -0
  4. package/ai/componentMetadata.cjs +11 -2
  5. package/ai/dist/mcp-server.js +454 -4
  6. package/ai/examples.md +98 -0
  7. package/ai/schema.json +614 -9
  8. package/ai/system-prompt.md +5 -2
  9. package/dist/components/AccessibleNavTree.d.ts +25 -0
  10. package/dist/components/Annotation.d.ts +40 -14
  11. package/dist/components/ChartContainer.d.ts +32 -2
  12. package/dist/components/ai/annotationProvenance.d.ts +349 -0
  13. package/dist/components/ai/audienceProfile.d.ts +147 -0
  14. package/dist/components/ai/audiences.d.ts +31 -0
  15. package/dist/components/ai/chartCapabilities.d.ts +55 -0
  16. package/dist/components/ai/chartCapabilityTypes.d.ts +254 -0
  17. package/dist/components/ai/chartRoles.d.ts +27 -0
  18. package/dist/components/ai/conversationArc.d.ts +379 -0
  19. package/dist/components/ai/dataScaleProfile.d.ts +320 -0
  20. package/dist/components/ai/describeChart.d.ts +114 -0
  21. package/dist/components/ai/diffProfile.d.ts +51 -0
  22. package/dist/components/ai/inferIntent.d.ts +24 -0
  23. package/dist/components/ai/intents.d.ts +34 -0
  24. package/dist/components/ai/navigationTree.d.ts +45 -0
  25. package/dist/components/ai/profileData.d.ts +16 -0
  26. package/dist/components/ai/qualityFixtures.d.ts +2 -0
  27. package/dist/components/ai/qualityScorecard.d.ts +82 -0
  28. package/dist/components/ai/readerGrounding.d.ts +70 -0
  29. package/dist/components/ai/repairChartConfig.d.ts +73 -0
  30. package/dist/components/ai/streamingTypes.d.ts +64 -0
  31. package/dist/components/ai/suggestCharts.d.ts +109 -0
  32. package/dist/components/ai/suggestDashboard.d.ts +92 -0
  33. package/dist/components/ai/suggestStreamCharts.d.ts +34 -0
  34. package/dist/components/ai/suggestStretchCharts.d.ts +60 -0
  35. package/dist/components/ai/useChartSuggestions.d.ts +22 -0
  36. package/dist/components/ai/useConversationArc.d.ts +89 -0
  37. package/dist/components/ai/useNavigationSync.d.ts +61 -0
  38. package/dist/components/ai/variantDiscovery.d.ts +168 -0
  39. package/dist/components/charts/geo/ChoroplethMap.capability.d.ts +2 -0
  40. package/dist/components/charts/geo/DistanceCartogram.capability.d.ts +2 -0
  41. package/dist/components/charts/geo/FlowMap.capability.d.ts +2 -0
  42. package/dist/components/charts/geo/ProportionalSymbolMap.capability.d.ts +2 -0
  43. package/dist/components/charts/index.d.ts +1 -1
  44. package/dist/components/charts/network/ChordDiagram.capability.d.ts +2 -0
  45. package/dist/components/charts/network/CirclePack.capability.d.ts +2 -0
  46. package/dist/components/charts/network/ForceDirectedGraph.capability.d.ts +2 -0
  47. package/dist/components/charts/network/OrbitDiagram.capability.d.ts +2 -0
  48. package/dist/components/charts/network/ProcessSankey.capability.d.ts +2 -0
  49. package/dist/components/charts/network/SankeyDiagram.capability.d.ts +2 -0
  50. package/dist/components/charts/network/TreeDiagram.capability.d.ts +2 -0
  51. package/dist/components/charts/network/Treemap.capability.d.ts +2 -0
  52. package/dist/components/charts/ordinal/BarChart.capability.d.ts +2 -0
  53. package/dist/components/charts/ordinal/BoxPlot.capability.d.ts +2 -0
  54. package/dist/components/charts/ordinal/DonutChart.capability.d.ts +2 -0
  55. package/dist/components/charts/ordinal/DotPlot.capability.d.ts +2 -0
  56. package/dist/components/charts/ordinal/FunnelChart.capability.d.ts +2 -0
  57. package/dist/components/charts/ordinal/GaugeChart.capability.d.ts +2 -0
  58. package/dist/components/charts/ordinal/GroupedBarChart.capability.d.ts +2 -0
  59. package/dist/components/charts/ordinal/Histogram.capability.d.ts +2 -0
  60. package/dist/components/charts/ordinal/Histogram.d.ts +4 -2
  61. package/dist/components/charts/ordinal/LikertChart.capability.d.ts +2 -0
  62. package/dist/components/charts/ordinal/LikertChart.d.ts +1 -1
  63. package/dist/components/charts/ordinal/LikertChart.defaults.d.ts +1 -0
  64. package/dist/components/charts/ordinal/PieChart.capability.d.ts +2 -0
  65. package/dist/components/charts/ordinal/RidgelinePlot.capability.d.ts +2 -0
  66. package/dist/components/charts/ordinal/StackedBarChart.capability.d.ts +2 -0
  67. package/dist/components/charts/ordinal/SwarmPlot.capability.d.ts +2 -0
  68. package/dist/components/charts/ordinal/SwimlaneChart.capability.d.ts +2 -0
  69. package/dist/components/charts/ordinal/ViolinPlot.capability.d.ts +2 -0
  70. package/dist/components/charts/realtime/RealtimeHeatmap.capability.d.ts +2 -0
  71. package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +3 -0
  72. package/dist/components/charts/realtime/RealtimeHistogram.capability.d.ts +2 -0
  73. package/dist/components/charts/realtime/RealtimeHistogram.d.ts +3 -0
  74. package/dist/components/charts/realtime/RealtimeLineChart.capability.d.ts +2 -0
  75. package/dist/components/charts/realtime/RealtimeLineChart.d.ts +3 -0
  76. package/dist/components/charts/realtime/RealtimeSwarmChart.capability.d.ts +2 -0
  77. package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +3 -0
  78. package/dist/components/charts/realtime/RealtimeWaterfallChart.capability.d.ts +2 -0
  79. package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +3 -0
  80. package/dist/components/charts/realtime/TemporalHistogram.capability.d.ts +7 -0
  81. package/dist/components/charts/shared/annotationHierarchy.d.ts +42 -0
  82. package/dist/components/charts/shared/annotationResolvers.d.ts +3 -2
  83. package/dist/components/charts/shared/annotationRules.d.ts +16 -0
  84. package/dist/components/charts/shared/annotationTypes.d.ts +14 -0
  85. package/dist/components/charts/shared/auditAccessibility.d.ts +90 -0
  86. package/dist/components/charts/shared/chartSpecs.d.ts +2 -37
  87. package/dist/components/charts/shared/diagnoseConfig.d.ts +4 -6
  88. package/dist/components/charts/shared/selectionUtils.d.ts +5 -2
  89. package/dist/components/charts/shared/streamPropsHelpers.d.ts +2 -0
  90. package/dist/components/charts/shared/types.d.ts +5 -1
  91. package/dist/components/charts/value/BigNumber.capability.d.ts +13 -0
  92. package/dist/components/charts/value/BigNumber.d.ts +14 -0
  93. package/dist/components/charts/value/formatting.d.ts +40 -0
  94. package/dist/components/charts/value/thresholdSparkline.d.ts +40 -0
  95. package/dist/components/charts/value/types.d.ts +292 -0
  96. package/dist/components/charts/xy/AreaChart.capability.d.ts +10 -0
  97. package/dist/components/charts/xy/BubbleChart.capability.d.ts +2 -0
  98. package/dist/components/charts/xy/CandlestickChart.capability.d.ts +2 -0
  99. package/dist/components/charts/xy/ConnectedScatterplot.capability.d.ts +2 -0
  100. package/dist/components/charts/xy/DifferenceChart.capability.d.ts +8 -0
  101. package/dist/components/charts/xy/Heatmap.capability.d.ts +9 -0
  102. package/dist/components/charts/xy/LineChart.capability.d.ts +9 -0
  103. package/dist/components/charts/xy/MinimapChart.capability.d.ts +2 -0
  104. package/dist/components/charts/xy/MultiAxisLineChart.capability.d.ts +2 -0
  105. package/dist/components/charts/xy/QuadrantChart.capability.d.ts +2 -0
  106. package/dist/components/charts/xy/QuadrantChart.d.ts +5 -2
  107. package/dist/components/charts/xy/QuadrantChart.defaults.d.ts +2 -0
  108. package/dist/components/charts/xy/Scatterplot.capability.d.ts +2 -0
  109. package/dist/components/charts/xy/StackedAreaChart.capability.d.ts +2 -0
  110. package/dist/components/data/DataSummarizer.d.ts +45 -0
  111. package/dist/components/realtime/lifecycleBands.d.ts +44 -0
  112. package/dist/components/realtime/types.d.ts +23 -8
  113. package/dist/components/recipes/annotationDensity.d.ts +69 -0
  114. package/dist/components/recipes/annotationLayout.d.ts +93 -0
  115. package/dist/components/semiotic-ai.d.ts +58 -0
  116. package/dist/components/semiotic-realtime.d.ts +2 -0
  117. package/dist/components/semiotic-recipes.d.ts +4 -0
  118. package/dist/components/semiotic-utils.d.ts +8 -0
  119. package/dist/components/semiotic-value.d.ts +55 -0
  120. package/dist/components/semiotic-xy.d.ts +1 -1
  121. package/dist/components/semiotic.d.ts +8 -1
  122. package/dist/components/server/staticAnnotations.d.ts +2 -0
  123. package/dist/components/store/useChartFocus.d.ts +43 -0
  124. package/dist/components/store/useChartInterrogation.d.ts +141 -0
  125. package/dist/components/stream/AccessibleDataTable.d.ts +10 -1
  126. package/dist/components/stream/NetworkSVGOverlay.d.ts +11 -5
  127. package/dist/components/stream/OrdinalSVGOverlay.d.ts +2 -0
  128. package/dist/components/stream/SVGOverlay.d.ts +2 -0
  129. package/dist/components/stream/geoTypes.d.ts +3 -0
  130. package/dist/components/stream/networkTypes.d.ts +2 -0
  131. package/dist/components/stream/ordinalTypes.d.ts +2 -0
  132. package/dist/components/stream/types.d.ts +2 -0
  133. package/dist/geo.min.js +1 -1
  134. package/dist/geo.module.min.js +1 -1
  135. package/dist/network.min.js +1 -1
  136. package/dist/network.module.min.js +1 -1
  137. package/dist/ordinal.min.js +1 -1
  138. package/dist/ordinal.module.min.js +1 -1
  139. package/dist/realtime.min.js +1 -1
  140. package/dist/realtime.module.min.js +1 -1
  141. package/dist/semiotic-ai.d.ts +58 -0
  142. package/dist/semiotic-ai.min.js +1 -1
  143. package/dist/semiotic-ai.module.min.js +1 -1
  144. package/dist/semiotic-realtime.d.ts +2 -0
  145. package/dist/semiotic-recipes.d.ts +4 -0
  146. package/dist/semiotic-recipes.min.js +1 -1
  147. package/dist/semiotic-recipes.module.min.js +1 -1
  148. package/dist/semiotic-themes.min.js +1 -1
  149. package/dist/semiotic-themes.module.min.js +1 -1
  150. package/dist/semiotic-utils.d.ts +8 -0
  151. package/dist/semiotic-utils.min.js +1 -1
  152. package/dist/semiotic-utils.module.min.js +1 -1
  153. package/dist/semiotic-value.d.ts +55 -0
  154. package/dist/semiotic-value.min.js +2 -0
  155. package/dist/semiotic-value.module.min.js +2 -0
  156. package/dist/semiotic-xy.d.ts +1 -1
  157. package/dist/semiotic.d.ts +8 -1
  158. package/dist/semiotic.min.js +1 -1
  159. package/dist/semiotic.module.min.js +1 -1
  160. package/dist/server.min.js +1 -1
  161. package/dist/server.module.min.js +1 -1
  162. package/dist/xy.min.js +1 -1
  163. package/dist/xy.module.min.js +1 -1
  164. package/package.json +28 -5
@@ -22,3 +22,5 @@ export type { StreamXYFrameProps, StreamXYFrameHandle, StreamChartType } from ".
22
22
  export type { StreamNetworkFrameProps, StreamNetworkFrameHandle, NetworkChartType } from "./components/stream/networkTypes";
23
23
  export { useStreamStatus } from "./components/charts/shared/useStreamStatus";
24
24
  export type { StreamStatus, StreamStatusOptions, StreamStatusResult, } from "./components/charts/shared/useStreamStatus";
25
+ export { bandFromAge, DEFAULT_LIFECYCLE_THRESHOLDS } from "./components/realtime/lifecycleBands";
26
+ export type { LifecycleBand, LifecycleBandThresholds } from "./components/realtime/lifecycleBands";
@@ -19,6 +19,10 @@ export { bulletLayout } from "./components/recipes/bullet";
19
19
  export type { BulletConfig } from "./components/recipes/bullet";
20
20
  export { parallelCoordinatesLayout } from "./components/recipes/parallelCoordinates";
21
21
  export type { ParallelCoordinatesConfig } from "./components/recipes/parallelCoordinates";
22
+ export { annotationLayout } from "./components/recipes/annotationLayout";
23
+ export type { AnnotationLayoutConfig, AnnotationLayoutOptions, AutoPlaceAnnotations, AutoPlaceAnnotationsConfig, AnnotationCohesion, AnnotationAudience, } from "./components/recipes/annotationLayout";
24
+ export { annotationDensity, annotationBudget, DEFAULT_AREA_PER_ANNOTATION } from "./components/recipes/annotationDensity";
25
+ export type { AnnotationDensityConfig, AnnotationDensityOptions, AnnotationDensityResult, } from "./components/recipes/annotationDensity";
22
26
  export type { CustomLayout, LayoutContext, LayoutResult, } from "./components/stream/customLayout";
23
27
  export type { NetworkCustomLayout, NetworkLayoutContext, NetworkLayoutResult, } from "./components/stream/networkCustomLayout";
24
28
  export type { OrdinalCustomLayout, OrdinalLayoutContext, OrdinalLayoutResult, } from "./components/stream/ordinalCustomLayout";
@@ -1 +1 @@
1
- "use strict";const e=require("d3-interpolate"),t=require("react"),o=require("d3-scale");function n(e){if(e&&e.__esModule)return e;const t=Object.create(null);if(e)for(const o in e)if("default"!==o){const n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:function(){return e[o]}})}return t.default=e,Object.freeze(t)}const r=n(t);function l(e){return"function"==typeof e?e:t=>t[e]}function s(e){const t=Object.create(null);return e((e,o)=>{t[e]=o}),t}const i=864e5;function c(e){return`${e.getUTCFullYear()}-${a(e.getUTCMonth()+1)}-${a(e.getUTCDate())}`}function a(e){return 10>e?"0"+e:e+""}function u(e,t,o){const n=new Set,r=[];for(const t of e)o(t)&&!n.has(t)&&(n.add(t),r.push(t));for(const e of t)n.has(e)||r.push(e);return r}exports.bulletLayout=e=>{var t,o,n,i,c,a,u,d,y,h,f,g;const m=e.config,{plot:v}=e.dimensions;if(0>=v.width||0>=v.height||0===e.data.length)return{nodes:[]};const p=null!==(t=m.rowHeight)&&void 0!==t?t:28,x=null!==(o=m.rowGap)&&void 0!==o?o:12,b=!1!==m.showLabels,w=b?null!==(n=m.labelWidth)&&void 0!==n?n:120:0,k=!1!==m.showTicks,$=k?14:0,A=null!==(i=m.tickFormat)&&void 0!==i?i:e=>e.toLocaleString(),M=v.x+w,C=Math.max(0,v.width-w);if(0>=C)return{nodes:[]};const F=l(m.categoryAccessor),N=e=>{const t=Number(e);return Number.isFinite(t)&&t>0?t:0},W=e=>N("function"==typeof m.valueAccessor?m.valueAccessor(e):e[m.valueAccessor]),L=e=>N("function"==typeof m.targetAccessor?m.targetAccessor(e):e[m.targetAccessor]),O=e=>{const t="function"==typeof m.rangesAccessor?m.rangesAccessor(e):e[m.rangesAccessor];return Array.isArray(t)?t.map(N).sort((e,t)=>e-t):[]},S="string"==typeof m.categoryAccessor?m.categoryAccessor:"metric",T="string"==typeof m.valueAccessor?m.valueAccessor:"value",D="string"==typeof m.targetAccessor?m.targetAccessor:"target",E=null!==(a=null!==(c=m.actualColor)&&void 0!==c?c:e.theme.semantic.primary)&&void 0!==a?a:"#3b6cb1",j=null!==(u=e.theme.semantic.text)&&void 0!==u?u:"currentColor",z=null!==(d=e.theme.semantic.textSecondary)&&void 0!==d?d:"#888",B=null!==(y=e.theme.semantic.surface)&&void 0!==y?y:"#e8eaed",U=null!==(h=e.theme.semantic.grid)&&void 0!==h?h:"#cdd1d6",P=null!==(f=e.theme.semantic.border)&&void 0!==f?f:"#a3a8af",_=null!==(g=m.targetColor)&&void 0!==g?g:`var(--semiotic-text, ${j})`,V=[`var(--semiotic-surface, ${B})`,`var(--semiotic-grid, ${U})`,`var(--semiotic-border, ${P})`],Y=`var(--semiotic-text, ${j})`,q=`var(--semiotic-text-secondary, ${z})`,H=[],I=[];for(let t=0;e.data.length>t;t++){const o=e.data[t],n=O(o),r=W(o),l=L(o),i=Math.max(r,l,...n.length?n:[0]);if(0>=i)continue;const c=v.y+t*(p+x+$);if(c+p+$>v.y+v.height)break;I.push({yTop:c,label:F(o),actual:r,target:l,maxVal:i});const a=e=>M+e/i*C,u=F(o),d=e=>s(t=>{t("metric",u),"metric"!==S&&t(S,u),e(t)});let y=M;for(let e=0;n.length>e;e++){const t=a(n[e]),o=t-y;o>0&&H.push({type:"rect",x:y,y:c,w:o,h:p,style:{fill:V[Math.min(e,V.length-1)],stroke:"none"},datum:d(t=>{t("range",e),t("rangeValue",n[e]),t("kind","range")}),group:"range-"+e}),y=t}const h=Math.max(6,Math.floor(.45*p));H.push({type:"rect",x:M,y:c+(p-h)/2,w:a(r)-M,h:h,style:{fill:E,stroke:"none"},datum:d(e=>{e("value",r),e("kind","actual"),"value"!==T&&e(T,r)}),group:"actual"});const f=3,g=Math.floor(.8*p);H.push({type:"rect",x:a(l)-f/2,y:c+(p-g)/2,w:f,h:g,style:{fill:_,stroke:"none"},datum:d(e=>{e("target",l),e("kind","target"),"target"!==D&&e(D,l)}),group:"target"})}const R=[];for(let e=0;I.length>e;e++){const t=I[e];if(b&&R.push(r.createElement("text",{key:"bullet-label-"+e,x:v.x+w-8,y:t.yTop+p/2,textAnchor:"end",dominantBaseline:"middle",fontSize:13,fontWeight:500,fill:Y},t.label)),k){const o=5,n=t.yTop+p+2;for(let l=0;o>l;l++){const s=t.maxVal*l/(o-1),i=M+s/t.maxVal*C;R.push(r.createElement("line",{key:`bullet-tick-${e}-${l}`,x1:i,x2:i,y1:n,y2:n+3,stroke:q,strokeWidth:1}),r.createElement("text",{key:`bullet-ticktext-${e}-${l}`,x:i,y:n+12,textAnchor:0===l?"start":l===o-1?"end":"middle",fontSize:10,fill:q},A(s)))}}}return{nodes:H,overlays:R.length>0?r.createElement(r.Fragment,null,...R):null}},exports.calendarLayout=t=>{var o,n,r,l,s,a,u,d;const y=t.config,{plot:h}=t.dimensions;if(0>=h.width||0>=h.height)return{nodes:[]};const f=e=>{const t="function"==typeof y.dateAccessor?y.dateAccessor(e):e[y.dateAccessor];return t instanceof Date?t:new Date(t)},g=e=>{const t="function"==typeof y.valueAccessor?y.valueAccessor(e):e[y.valueAccessor];return Number(t)},m=new Map;let v=null;for(const e of t.data){const t=f(e);if(!isFinite(t.getTime()))continue;null==v&&(v=t.getUTCFullYear());const n=c(t),r=g(e);m.set(n,(null!==(o=m.get(n))&&void 0!==o?o:0)+(Number.isFinite(r)?r:0))}const p=null!==(r=null!==(n=y.year)&&void 0!==n?n:v)&&void 0!==r?r:(new Date).getUTCFullYear();let x=1/0,b=-1/0;for(const e of m.values())x>e&&(x=e),e>b&&(b=e);x===1/0&&(x=0,b=0);const[w,k]=null!==(l=y.colorRamp)&&void 0!==l?l:[null!==(s=t.theme.semantic.surface)&&void 0!==s?s:"#ebedf0",null!==(a=t.theme.semantic.primary)&&void 0!==a?a:"#216e39"],$=t=>{if(b===x)return w;const o=(t-x)/(b-x);return e.interpolateRgb(w,k)(o)},A=null!==(u=y.gutter)&&void 0!==u?u:2,M=null!==(d=y.labelInset)&&void 0!==d?d:0,C=Math.min((h.width-M-53*A)/54,(h.height-6*A)/7);if(0>=C)return{nodes:[]};const F=new Date(Date.UTC(p,0,1)),N=F.getUTCDay(),W=new Date(F.getTime()-N*i),L=[];for(let e=0;54>e;e++)for(let t=0;7>t;t++){const o=new Date(W.getTime()+(7*e+t)*i);if(o.getUTCFullYear()!==p)continue;const n=c(o),r=m.get(n),l=null==r?w:$(r);L.push({type:"rect",x:h.x+M+e*(C+A),y:h.y+t*(C+A),w:C,h:C,style:{fill:l,stroke:"none"},datum:{date:o,value:null!=r?r:0}})}return{nodes:L}},exports.dagreLayout=e=>{var t,o,n,r,l,s,i,c,a;const u=e.config,d=null!==(t=u.nodeWidth)&&void 0!==t?t:100,y=null!==(o=u.nodeHeight)&&void 0!==o?o:36,h=null!==(n=u.edgeStyle)&&void 0!==n?n:"polyline",f=!1!==u.showLabels,g=null!==(r=u.labelAccessor)&&void 0!==r?r:"label",m="function"==typeof g?g:e=>{var t,o;const n=e.data,r=n?n[g]:void 0;return(null!==(o=null!==(t=null!=r?r:e[g])&&void 0!==t?t:e.id)&&void 0!==o?o:"")+""},v=new Map,p=[],x=[],b=e=>{var t,o,n;const r=null!==(t=e.data)&&void 0!==t?t:{};return{x:"number"==typeof r.x?r.x:e.x,y:"number"==typeof r.y?r.y:e.y,w:null!==(o="number"==typeof r.width?r.width:e.width)&&void 0!==o?o:d,h:null!==(n="number"==typeof r.height?r.height:e.height)&&void 0!==n?n:y}};for(const t of e.nodes){const{x:o,y:n,w:r,h:i}=b(t);null!=o&&null!=n&&(v.set(t.id,{x:o,y:n,w:r,h:i}),p.push({type:"rect",x:o-r/2,y:n-i/2,w:r,h:i,style:{fill:null!==(l=u.nodeFill)&&void 0!==l?l:e.resolveColor(t.id),stroke:`var(--semiotic-border, ${null!==(s=e.theme.semantic.border)&&void 0!==s?s:"#888"})`,strokeWidth:1.5},datum:t,id:t.id,label:m(t)+""}),f&&x.push({x:o,y:n,text:m(t)+"",anchor:"middle",baseline:"middle",fontSize:11}))}const w=null!==(i=u.edgeStroke)&&void 0!==i?i:`var(--semiotic-border, ${null!==(c=e.theme.semantic.border)&&void 0!==c?c:"#666"})`,k=[];for(const t of e.edges){const e="string"==typeof t.target?t.target:t.target.id,o=v.get("string"==typeof t.source?t.source:t.source.id),n=v.get(e);if(!o||!n)continue;const r=null!==(a=t.data)&&void 0!==a?a:{},l=Array.isArray(r.points)?r.points:t.points;if(l&&l.length>=2)if("smooth"!==h||3>l.length){const e="M"+l.map(e=>`${e.x},${e.y}`).join(" L ");k.push({type:"curved",pathD:e,style:{stroke:w,strokeWidth:1,fill:"none"},datum:t})}else{let e=`M${l[0].x},${l[0].y}`;for(let t=1;l.length-1>t;t++)e+=` Q${l[t].x},${l[t].y} ${(l[t].x+l[t+1].x)/2},${(l[t].y+l[t+1].y)/2}`;const o=l[l.length-1];e+=` T${o.x},${o.y}`,k.push({type:"curved",pathD:e,style:{stroke:w,strokeWidth:1,fill:"none"},datum:t})}else k.push({type:"line",x1:o.x,y1:o.y,x2:n.x,y2:n.y,style:{stroke:w,strokeWidth:1},datum:t})}return{sceneNodes:p,sceneEdges:k,labels:x}},exports.flextreeLayout=e=>{var t,o,n,r,l,s,i,c,a;const u=e.config,d=null!==(t=u.nodeWidth)&&void 0!==t?t:80,y=null!==(o=u.nodeHeight)&&void 0!==o?o:30,h=null!==(n=u.orientation)&&void 0!==n?n:"vertical",f=null!==(r=u.edgeCurve)&&void 0!==r?r:"curved",g=!1!==u.showLabels,m=null!==(l=u.labelAccessor)&&void 0!==l?l:"id",v="function"==typeof m?m:e=>{var t,o;const n=e.data,r=n?n[m]:void 0;return(null!==(o=null!==(t=null!=r?r:e[m])&&void 0!==t?t:e.id)&&void 0!==o?o:"")+""},p=new Map,x=[],b=[],w=e=>{var t,o,n;const r=null!==(t=e.data)&&void 0!==t?t:{};return{x:"number"==typeof r.x?r.x:e.x,y:"number"==typeof r.y?r.y:e.y,w:null!==(o="number"==typeof r.width?r.width:e.width)&&void 0!==o?o:d,h:null!==(n="number"==typeof r.height?r.height:e.height)&&void 0!==n?n:y}};for(const t of e.nodes){const{x:o,y:n,w:r,h:l}=w(t);null!=o&&null!=n&&(p.set(t.id,{x:o,y:n,w:r,h:l}),x.push({type:"rect",x:o-r/2,y:n-l/2,w:r,h:l,style:{fill:null!==(s=u.nodeFill)&&void 0!==s?s:e.resolveColor(t.id),stroke:`var(--semiotic-surface, ${null!==(i=e.theme.semantic.surface)&&void 0!==i?i:"#fff"})`,strokeWidth:1.5},datum:t,id:t.id,label:v(t)+""}),g&&b.push({x:o,y:n,text:v(t)+"",anchor:"middle",baseline:"middle",fontSize:11}))}const k=[];for(const t of e.edges){const o="string"==typeof t.target?t.target:t.target.id,n=p.get("string"==typeof t.source?t.source:t.source.id),r=p.get(o);if(!n||!r)continue;const l="vertical"===h?{x:n.x,y:n.y+n.h/2}:{x:n.x+n.w/2,y:n.y},s="vertical"===h?{x:r.x,y:r.y-r.h/2}:{x:r.x-r.w/2,y:r.y};if("line"===f)k.push({type:"line",x1:l.x,y1:l.y,x2:s.x,y2:s.y,style:{stroke:`var(--semiotic-border, ${null!==(c=e.theme.semantic.border)&&void 0!==c?c:"#999"})`,strokeWidth:1},datum:t});else{const o=(l.y+s.y)/2,n=(l.x+s.x)/2;k.push({type:"curved",pathD:"vertical"===h?`M${l.x},${l.y} C${l.x},${o} ${s.x},${o} ${s.x},${s.y}`:`M${l.x},${l.y} C${n},${l.y} ${n},${s.y} ${s.x},${s.y}`,style:{stroke:`var(--semiotic-border, ${null!==(a=e.theme.semantic.border)&&void 0!==a?a:"#999"})`,strokeWidth:1,fill:"none"},datum:t})}}return{sceneNodes:x,sceneEdges:k,labels:b}},exports.marimekkoLayout=e=>{var t,o,n,i,c,a,d;const y=e.config,{plot:h}=e.dimensions;if(0>=h.width||0>=h.height)return{nodes:[]};const f=l(y.categoryAccessor),g=l(y.stackBy),m=e=>{const t="function"==typeof y.valueAccessor?y.valueAccessor(e):e[y.valueAccessor],o=Number(t);return Number.isFinite(o)&&o>0?o:0},v=null!==(t=y.gutter)&&void 0!==t?t:2,p="string"==typeof y.categoryAccessor?y.categoryAccessor:"category",x="string"==typeof y.stackBy?y.stackBy:"stack",b="string"==typeof y.valueAccessor?y.valueAccessor:"value",w=(e,t,o)=>s(n=>{n("category",e),n("stack",t),n("value",o),"category"!==p&&n(p,e),"stack"!==x&&n(x,t),"value"!==b&&n(b,o)}),k=!1!==y.showCategoryLabels,$=null!==(o=y.labelPadding)&&void 0!==o?o:k?22:0,A=Math.max(0,h.height-$),M=[],C=new Map,F=[],N=new Set,W=new Map;for(const t of e.data){const e=f(t)+"",o=g(t)+"",r=m(t);C.has(e)||(M.push(e),C.set(e,0),W.set(e,new Map)),N.has(o)||(N.add(o),F.push(o)),C.set(e,(null!==(n=C.get(e))&&void 0!==n?n:0)+r);const l=W.get(e);l.set(o,(null!==(i=l.get(o))&&void 0!==i?i:0)+r)}const L=y.categoryOrder?u(y.categoryOrder,M,e=>C.has(e)):M,O=y.stackOrder?u(y.stackOrder,F,()=>!0):F,S=L.reduce((e,t)=>{var o;return e+(null!==(o=C.get(t))&&void 0!==o?o:0)},0);if(0>=S)return{nodes:[]};const T=Math.max(0,h.width-v*Math.max(0,L.length-1)),D=[],E=[];let j=h.x;for(const t of L){const o=null!==(c=C.get(t))&&void 0!==c?c:0,n=o/S*T;if(0>=n)continue;E.push({cat:t,x:j,w:n});const r=W.get(t);let l=h.y;for(const s of O){const i=null!==(a=r.get(s))&&void 0!==a?a:0;if(0>=i)continue;const c=i/o*A;D.push({type:"rect",x:j,y:l,w:n,h:c,style:{fill:e.resolveColor(s),stroke:"none"},datum:w(t,s,i),group:s}),l+=c}j+=n+v}return{nodes:D,overlays:k&&E.length>0?function(e,t,o){const n=e.map((e,n)=>6.5*e.cat.length>e.w-4?null:r.createElement("text",{key:"marimekko-label-"+n,x:e.x+e.w/2,y:t+12,textAnchor:"middle",fontSize:12,fill:o},e.cat));return r.createElement(r.Fragment,null,...n)}(E,h.y+A+4,`var(--semiotic-text, ${null!==(d=e.theme.semantic.text)&&void 0!==d?d:"currentColor"})`):null}},exports.parallelCoordinatesLayout=e=>{var t,n,l,s,i,c,a,u,d,y,h,f;const g=e.config,{plot:m}=e.dimensions,v=null!==(t=g.fields)&&void 0!==t?t:[];if(2>v.length||0>=m.width||0>=m.height)return{nodes:[]};if(0===e.data.length)return{nodes:[]};const p={};for(const t of v){if(null===(n=g.domains)||void 0===n?void 0:n[t]){p[t]=g.domains[t];continue}let o=1/0,r=-1/0;for(const n of e.data){const e=Number(n[t]);Number.isFinite(e)&&(o>e&&(o=e),e>r&&(r=e))}p[t]=Number.isFinite(o)&&Number.isFinite(r)&&o!==r?[o,r]:[0,1]}const x=!1!==g.showAxes,b=x?null!==(l=g.axisLabelPadding)&&void 0!==l?l:24:8,w=x?18:8,k=v.map(e=>o.scaleLinear().domain(p[e]).range([m.y+m.height-w,m.y+b])),$=v.map((e,t)=>1===v.length?m.x+m.width/2:m.x+t/(v.length-1)*m.width),A=g.colorBy?"function"==typeof g.colorBy?g.colorBy:e=>{var t;return(null!==(t=e[g.colorBy])&&void 0!==t?t:"")+""}:null,M=null!==(s=g.opacity)&&void 0!==s?s:.45,C=null!==(i=g.strokeWidth)&&void 0!==i?i:1.25,F=null!==(c=e.theme.semantic.primary)&&void 0!==c?c:"#3b6cb1",N=null!==(a=g.dimmedOpacity)&&void 0!==a?a:.08,W=g.highlightFn,L=[],O=[];for(const t of e.data){const o=A?e.resolveColor(A(t)+""):F,n=!W||W(t),r=W?n?Math.min(1,M+.4):N:M,l=n?O:L;for(let e=0;v.length-1>e;e++){const s=Number(t[v[e]]),i=Number(t[v[e+1]]);if(!Number.isFinite(s)||!Number.isFinite(i))continue;const c={type:"connector",x1:$[e],y1:k[e](s),x2:$[e+1],y2:k[e+1](i),style:{stroke:o,strokeWidth:W&&n?C+.75:C,opacity:r,fill:"none"},datum:t};l.push(c)}if(g.showPoints)for(let e=0;v.length>e;e++){const n=Number(t[v[e]]);if(!Number.isFinite(n))continue;const s={type:"point",x:$[e],y:k[e](n),r:2.5,style:{fill:o,stroke:"none",opacity:Math.min(1,r+.3)},datum:t};l.push(s)}}let S=null;if(x){const t=`var(--semiotic-border, ${null!==(u=e.theme.semantic.border)&&void 0!==u?u:"#aaa"})`,o=`var(--semiotic-text, ${null!==(d=e.theme.semantic.text)&&void 0!==d?d:"currentColor"})`,n=`var(--semiotic-text-secondary, ${null!==(y=e.theme.semantic.textSecondary)&&void 0!==y?y:"#888"})`,l=m.y+b,s=m.y+m.height-w,i=[];for(let e=0;v.length>e;e++){const c=v[e],a=$[e],u=null!==(f=null===(h=g.tickFormat)||void 0===h?void 0:h[c])&&void 0!==f?f:e=>e.toLocaleString();i.push(r.createElement("line",{key:"pc-axis-line-"+e,x1:a,x2:a,y1:l,y2:s,stroke:t,strokeWidth:1})),i.push(r.createElement("text",{key:"pc-axis-label-"+e,x:a,y:m.y+b-8,textAnchor:"middle",fontSize:12,fontWeight:600,fill:o},c));const[d,y]=p[c],x=5;for(let o=0;x>o;o++){const l=d+(y-d)*o/(x-1),s=k[e](l);i.push(r.createElement("line",{key:`pc-tick-${e}-${o}`,x1:a-3,x2:a+3,y1:s,y2:s,stroke:t,strokeWidth:1}),r.createElement("text",{key:`pc-ticktext-${e}-${o}`,x:a+6,y:s+3,fontSize:10,fill:n},u(l)))}}S=r.createElement(r.Fragment,null,...i)}return{nodes:L.concat(O),overlays:S}},exports.waffleLayout=e=>{var t,o,n,r,l,i;const c=e.config,a=null!==(t=c.rows)&&void 0!==t?t:10,u=null!==(o=c.columns)&&void 0!==o?o:10,d=null!==(n=c.gutter)&&void 0!==n?n:2,y=a*u;if(0>=a||0>=u||0>=y)return{nodes:[]};const{plot:h}=e.dimensions;if(0>=h.width||0>=h.height)return{nodes:[]};const f=(h.width-d*(u-1))/u,g=(h.height-d*(a-1))/a;if(0>=f||0>=g)return{nodes:[]};const m=null!==(r=null==(v=c.categoryAccessor)?null:"function"==typeof v?v:e=>e[v])&&void 0!==r?r:()=>"_default";var v;const p=null!==(l=function(e){return null==e?null:"function"==typeof e?e:t=>Number(t[e])}(c.valueAccessor))&&void 0!==l?l:()=>1,x=new Map,b=[];for(const t of e.data){const e=m(t)+"",o=Number(p(t)),n=Number.isFinite(o)?Math.max(0,o):0;x.has(e)||b.push(e),x.set(e,(null!==(i=x.get(e))&&void 0!==i?i:0)+n)}const w=Array.from(x.values()).reduce((e,t)=>e+t,0);if(0>=w)return{nodes:[]};let k;if(c.categoryOrder&&c.categoryOrder.length>0){const e=new Set,t=[];for(const o of c.categoryOrder)x.has(o)&&!e.has(o)&&(e.add(o),t.push(o));k=[...t,...b.filter(t=>!e.has(t))]}else k=b;if(0===k.length)return{nodes:[]};const $=k.map(e=>{var t;return{cat:e,exact:(null!==(t=x.get(e))&&void 0!==t?t:0)/w*y}}),A=$.map(e=>Object.assign(Object.assign({},e),{count:Math.floor(e.exact)})),M=A.reduce((e,t)=>e+t.count,0),C=A.map((e,t)=>({i:t,rem:e.exact-e.count})).sort((e,t)=>t.rem-e.rem);for(let e=0;y-M>e;e++)A[C[e%C.length].i].count+=1;const F="string"==typeof c.categoryAccessor?c.categoryAccessor:"category",N="string"==typeof c.valueAccessor?c.valueAccessor:"value",W=(e,t,o)=>s(n=>{var r,l;n("category",e),n("value",null!==(r=x.get(e))&&void 0!==r?r:0),"category"!==F&&n(F,e),"value"!==N&&n(N,null!==(l=x.get(e))&&void 0!==l?l:0),n("cells",o),n("_waffleCategory",e),n("_waffleIndex",t)}),L=[];let O=0;for(const t of A){const o=e.resolveColor(t.cat);for(let e=0;t.count>e;e++)L.push({type:"rect",x:h.x+O%u*(f+d),y:h.y+(a-1-Math.floor(O/u))*(g+d),w:f,h:g,style:{fill:o,stroke:"none"},datum:W(t.cat,O,t.count),group:t.cat}),O++}return{nodes:L}};
1
+ "use strict";const e=require("d3-interpolate"),t=require("react"),n=require("d3-scale");function o(e){if(e&&e.__esModule)return e;const t=Object.create(null);if(e)for(const n in e)if("default"!==n){const o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}return t.default=e,Object.freeze(t)}const r=o(t);function i(e){return"function"==typeof e?e:t=>t[e]}function l(e){const t=Object.create(null);return e((e,n)=>{t[e]=n}),t}const s=864e5;function a(e){return`${e.getUTCFullYear()}-${c(e.getUTCMonth()+1)}-${c(e.getUTCDate())}`}function c(e){return 10>e?"0"+e:e+""}function u(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}function d(e,t){var n,o,r;const i=null!==(o=null===(n=t.scales)||void 0===n?void 0:n.x)&&void 0!==o?o:null===(r=t.scales)||void 0===r?void 0:r.time;return i?null!=e.x?i(e.x):t.xAccessor&&null!=e[t.xAccessor]?i(e[t.xAccessor]):null:null}function f(e,t){var n,o,r;const i=null!==(o=null===(n=t.scales)||void 0===n?void 0:n.y)&&void 0!==o?o:null===(r=t.scales)||void 0===r?void 0:r.value;return i?null!=e.y?i(e.y):t.yAccessor&&null!=e[t.yAccessor]?i(e[t.yAccessor]):null:null}function h(e){return null==e?null:e+""}function y(e,t,n){var o;return null===(o=t.stickyPositionCache)||void 0===o||o.set(e,n),n}const m=new Set(["label","callout","callout-circle","callout-rect","text","widget"]);function g(e){return!!e&&"object"==typeof e&&m.has(function(e){return"string"==typeof(null==e?void 0:e.type)?e.type:""}(e))}function p(e){return"primary"===(null==e?void 0:e.emphasis)||!0===(null==e?void 0:e.defensive)}function v(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:2e4))):1/0}function x(e){var t,n;let o;const r=null==e?void 0:e.emphasis;o="primary"===r?100:"secondary"===r?10:50;const i=null===(t=null==e?void 0:e.provenance)||void 0===t?void 0:t.confidence;switch("number"==typeof i&&Number.isFinite(i)&&(o+=15*Math.max(0,Math.min(1,i))),null===(n=null==e?void 0:e.lifecycle)||void 0===n?void 0:n.freshness){case"fresh":o+=8;break;case"aging":o+=4;break;case"stale":o+=1;break;case"expired":o-=200}return o}function b(e){var t;const{annotations:n,width:o,height:r}=e,i=Math.max(0,null!==(t=e.minVisible)&&void 0!==t?t:1),l=v(o,r,e),s=n.map((e,t)=>{return{annotation:e,index:t,note:(n=e,g(n))};var n}),a=s.filter(e=>e.note);if(0===a.length||l>=a.length)return{visible:n.slice(),deferred:[],budget:l};const c=a.filter(e=>p(e.annotation)),u=a.filter(e=>!p(e.annotation)).sort((e,t)=>x(t.annotation)-x(e.annotation)||e.index-t.index),d=Math.min(u.length,Math.max(Math.max(0,l-c.length),Math.max(0,i-c.length))),f=new Set([...c.map(e=>e.index),...u.slice(0,d).map(e=>e.index)]),h=[],y=[];for(const{annotation:e,index:t,note:n}of s)!n||f.has(t)?h.push(e):y.push(e);return{visible:h,deferred:y,budget:l}}new Set(["label","callout","callout-circle","callout-rect"]);const w=32,A=6,k=4,M=8,$=72;const N={ai:"AI",agent:"agent",watcher:"watcher",system:"system",import:"imported",computed:"computed",user:"you"};function O(e){return g(e)}function j(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 C(e,t,n,o,r){const i=e+n,l=t+o;return Math.abs(n)>Math.abs(o)?{x:0>n?i-r.width-4:i+4,y:0>o?l-r.height:l,width:r.width,height:r.height}:{x:0>n?i-r.width:i,y:0>o?l-r.height-4:l+4,width:r.width,height:r.height}}function F(e,t){return{x:e.x-t,y:e.y-t,width:e.width+2*t,height:e.height+2*t}}function S(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 T(e,t,n,o,r,i,l,s){const a=F(e,l);let c=.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}(a,r,i,s);for(const e of n)c+=12*S(a,e);for(const e of o)c+=4*S(a,e);return c}function L(e,t,n){var o,r;if("widget"===e.type&&"number"==typeof e.px&&"number"==typeof e.py)return{x:e.px,y:e.py};const i=null!==(o=e.pointId)&&void 0!==o?o:e.nodeId;if(null!=i&&n.pointNodes){const e=n.pointNodes.find(e=>e.pointId===i);if(e)return{x:e.x,y:e.y}}const l=e.coordinates,s=null===(r=n.scales)||void 0===r?void 0:r.geoProjection;if(Array.isArray(l)&&l.length>=2&&s){const e=l[0],t=l[1];if("number"==typeof e&&"number"==typeof t){const n=s([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){var o,r;const i=e.anchor||(null===(o=e.lifecycle)||void 0===o?void 0:o.anchor)||"fixed";if("latest"===i){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 y(t,n,{x:r.x,y:r.y})}const o=function(e){var t,n,o,r,i,l;const s=e.data;if(!s||0===s.length)return null;const a=s[s.length-1],c=null!==(n=null===(t=e.scales)||void 0===t?void 0:t.x)&&void 0!==n?n:null===(o=e.scales)||void 0===o?void 0:o.time,u=null!==(i=null===(r=e.scales)||void 0===r?void 0:r.y)&&void 0!==i?i:null===(l=e.scales)||void 0===l?void 0:l.value;if(!c||!u)return null;const d=a[e.xAccessor||"x"],f=a[e.yAccessor||"y"];return null==d||null==f?null:{x:c(d),y:u(f)}}(n);return o?y(t,n,o):null}if("semantic"===i){const o=function(e,t,n){var o,r;const i=function(e){var t,n;return h(null!==(n=null===(t=e.provenance)||void 0===t?void 0:t.stableId)&&void 0!==n?n:e.stableId)}(e);if(!i)return null;const l=null===(o=n.pointNodes)||void 0===o?void 0:o.find(e=>h(e.pointId)===i);if(l)return y(t,n,{x:l.x,y:l.y});const s=null===(r=n.data)||void 0===r?void 0:r.find(e=>function(e){var t,n,o;return h(null!==(n=null!==(t=e.stableId)&&void 0!==t?t:e.id)&&void 0!==n?n:null===(o=e.provenance)||void 0===o?void 0:o.stableId)}(e)===i);if(!s)return null;const a=d(s,n),c=f(s,n);return null==a||null==c?null:y(t,n,{x:a,y:c})}(e,t,n);if(o)return o}let l=null,s=null;if(null!=e.pointId&&n.pointNodes){const t=n.pointNodes.find(t=>t.pointId===e.pointId);t&&(l=t.x,s=t.y)}if(null!=l&&null!=s||(l=d(e,n),s=f(e,n)),null!=l&&null!=s)return y(t,n,{x:l,y:s});if("sticky"===i){const e=null===(r=n.stickyPositionCache)||void 0===r?void 0:r.get(t);if(e)return e}return null}(e,t,n):{x:e.x,y:e.y}}exports.DEFAULT_AREA_PER_ANNOTATION=2e4,exports.annotationBudget=v,exports.annotationDensity=b,exports.annotationLayout=function(e){var t;const{annotations:n,context:o,defaultOffset:r=w,notePadding:i=A,markPadding:l=k,edgePadding:s=M,preserveManualOffsets:a=!0,routeLongConnectors:c=!0,connectorThreshold:u=$,density:d,progressiveDisclosure:f=!1,redundantCues:h=!1,responsive:y,cohesion:m,audience:g}=e,p=o.width||0,x=o.height||0;if(0===n.length||0>=p||0>=x)return n.slice();const S=[],W=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}})}(o,l);let I=!1;const D=n.map((e,t)=>{if(!O(e))return e;const n=L(e,t,o);if(!n)return e;const l=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=[...j("string"==typeof e.title?e.title:void 0,t),...j("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(a&&("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:30,dy:-30}}(e);return S.push(F(C(n.x,n.y,"number"==typeof e.dx?e.dx:t.dx,"number"==typeof e.dy?e.dy:t.dy,l),i)),e}var d;let f=null,h=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}]}(r)){const t=T(C(n.x,n.y,e.dx,e.dy,l),e,S,W,p,x,i,s);h>t&&(f=e,h=t)}if(!f)return e;const y=F(C(n.x,n.y,f.dx,f.dy,l),i);S.push(y);const m=Math.hypot(f.dx,f.dy),g=c&&m>=u&&"text"!==e.type&&"widget"!==e.type?Object.assign(Object.assign({},e.connector||{end:"arrow"}),{type:"curve"}):e.connector;return I=!0,Object.assign(Object.assign(Object.assign({},e),{dx:f.dx,dy:f.dy}),g?{connector:g}:{})}),E=I?D:n.slice();let P=E;if(h){let e=!1;const t=E.map(t=>{const n=function(e){return"text"!==e.type||"string"!=typeof e.color||8>Math.hypot("number"==typeof e.dx?e.dx:0,"number"==typeof e.dy?e.dy:0)?e:Object.assign(Object.assign({},e),{_redundantConnector:!0})}(t);return n!==t&&(e=!0),n});P=e?t:E}{let e=!1;const t=P.map(t=>{if(!0!==(null==t?void 0:t.defensive))return t;const n=function(e){var t;const n=null==e?void 0:e.provenance;if(!n||"object"!=typeof n)return e;const o="string"==typeof n.source?null!==(t=N[n.source])&&void 0!==t?t:n.source:null,r="number"==typeof n.confidence&&Number.isFinite(n.confidence)?Math.round(100*Math.max(0,Math.min(1,n.confidence)))+"%":null;if(!o&&!r)return e;if(null!=e.label&&"string"!=typeof e.label)return e;const i=[o,r].filter(Boolean).join(" · "),l="string"==typeof e.label?e.label:"";return l.includes(`(${i})`)?e:Object.assign(Object.assign({},e),{label:l?`${l} (${i})`:`(${i})`})}(t);return n!==t&&(e=!0),n});P=e?t:P}const B=new Set;if(d){const e="object"==typeof d?d:{},n=function(e){if(!e)return 1;const t=function(e){const t=null==e?void 0:e.familiarity;if(!t)return 3;const n=Object.values(t).filter(e=>"number"==typeof e&&Number.isFinite(e));return 0===n.length?3:n.reduce((e,t)=>e+t,0)/n.length}(e);return t>2?4>t?1:.6:1.5}(g),o=1===n?e:Object.assign(Object.assign({},e),{maxAnnotations:Math.max(0,Math.round((null!==(t=e.maxAnnotations)&&void 0!==t?t:v(p,x,e))*n))}),{deferred:r}=b(Object.assign({annotations:P,width:p,height:x},o));for(const e of r)B.add(e)}if(y&&("object"==typeof y&&"number"==typeof y.minWidth?y.minWidth:480)>=p)for(const e of P)O(e)&&"secondary"===e.emphasis&&B.add(e);if(B.size>0)for(const e of P)!0===(null==e?void 0:e.defensive)&&B.delete(e);let z;return z=0===B.size?P:f?P.map(e=>B.has(e)?Object.assign(Object.assign({},e),{_annotationDeferred:!0}):e):P.filter(e=>!B.has(e)),m?function(e,t){let n=!1;const o=e.map(e=>O(e)?"blended"===e.cohesion||"layer"===e.cohesion?e:(n=!0,Object.assign(Object.assign({},e),{cohesion:t})):e);return n?o:e}(z,m):z},exports.bulletLayout=e=>{var t,n,o,s,a,c,u,d,f,h,y,m;const g=e.config,{plot:p}=e.dimensions;if(0>=p.width||0>=p.height||0===e.data.length)return{nodes:[]};const v=null!==(t=g.rowHeight)&&void 0!==t?t:28,x=null!==(n=g.rowGap)&&void 0!==n?n:12,b=!1!==g.showLabels,w=b?null!==(o=g.labelWidth)&&void 0!==o?o:120:0,A=!1!==g.showTicks,k=A?14:0,M=null!==(s=g.tickFormat)&&void 0!==s?s:e=>e.toLocaleString(),$=p.x+w,N=Math.max(0,p.width-w);if(0>=N)return{nodes:[]};const O=i(g.categoryAccessor),j=e=>{const t=Number(e);return Number.isFinite(t)&&t>0?t:0},C=e=>j("function"==typeof g.valueAccessor?g.valueAccessor(e):e[g.valueAccessor]),F=e=>j("function"==typeof g.targetAccessor?g.targetAccessor(e):e[g.targetAccessor]),S=e=>{const t="function"==typeof g.rangesAccessor?g.rangesAccessor(e):e[g.rangesAccessor];return Array.isArray(t)?t.map(j).sort((e,t)=>e-t):[]},T="string"==typeof g.categoryAccessor?g.categoryAccessor:"metric",L="string"==typeof g.valueAccessor?g.valueAccessor:"value",W="string"==typeof g.targetAccessor?g.targetAccessor:"target",I=null!==(c=null!==(a=g.actualColor)&&void 0!==a?a:e.theme.semantic.primary)&&void 0!==c?c:"#3b6cb1",D=null!==(u=e.theme.semantic.text)&&void 0!==u?u:"currentColor",E=null!==(d=e.theme.semantic.textSecondary)&&void 0!==d?d:"#888",P=null!==(f=e.theme.semantic.surface)&&void 0!==f?f:"#e8eaed",B=null!==(h=e.theme.semantic.grid)&&void 0!==h?h:"#cdd1d6",z=null!==(y=e.theme.semantic.border)&&void 0!==y?y:"#a3a8af",_=null!==(m=g.targetColor)&&void 0!==m?m:`var(--semiotic-text, ${D})`,U=[`var(--semiotic-surface, ${P})`,`var(--semiotic-grid, ${B})`,`var(--semiotic-border, ${z})`],V=`var(--semiotic-text, ${D})`,R=`var(--semiotic-text-secondary, ${E})`,Y=[],q=[];for(let t=0;e.data.length>t;t++){const n=e.data[t],o=S(n),r=C(n),i=F(n),s=Math.max(r,i,...o.length?o:[0]);if(0>=s)continue;const a=p.y+t*(v+x+k);if(a+v+k>p.y+p.height)break;q.push({yTop:a,label:O(n),actual:r,target:i,maxVal:s});const c=e=>$+e/s*N,u=O(n),d=e=>l(t=>{t("metric",u),"metric"!==T&&t(T,u),e(t)});let f=$;for(let e=0;o.length>e;e++){const t=c(o[e]),n=t-f;n>0&&Y.push({type:"rect",x:f,y:a,w:n,h:v,style:{fill:U[Math.min(e,U.length-1)],stroke:"none"},datum:d(t=>{t("range",e),t("rangeValue",o[e]),t("kind","range")}),group:"range-"+e}),f=t}const h=Math.max(6,Math.floor(.45*v));Y.push({type:"rect",x:$,y:a+(v-h)/2,w:c(r)-$,h:h,style:{fill:I,stroke:"none"},datum:d(e=>{e("value",r),e("kind","actual"),"value"!==L&&e(L,r)}),group:"actual"});const y=3,m=Math.floor(.8*v);Y.push({type:"rect",x:c(i)-y/2,y:a+(v-m)/2,w:y,h:m,style:{fill:_,stroke:"none"},datum:d(e=>{e("target",i),e("kind","target"),"target"!==W&&e(W,i)}),group:"target"})}const H=[];for(let e=0;q.length>e;e++){const t=q[e];if(b&&H.push(r.createElement("text",{key:"bullet-label-"+e,x:p.x+w-8,y:t.yTop+v/2,textAnchor:"end",dominantBaseline:"middle",fontSize:13,fontWeight:500,fill:V},t.label)),A){const n=5,o=t.yTop+v+2;for(let i=0;n>i;i++){const l=t.maxVal*i/(n-1),s=$+l/t.maxVal*N;H.push(r.createElement("line",{key:`bullet-tick-${e}-${i}`,x1:s,x2:s,y1:o,y2:o+3,stroke:R,strokeWidth:1}),r.createElement("text",{key:`bullet-ticktext-${e}-${i}`,x:s,y:o+12,textAnchor:0===i?"start":i===n-1?"end":"middle",fontSize:10,fill:R},M(l)))}}}return{nodes:Y,overlays:H.length>0?r.createElement(r.Fragment,null,...H):null}},exports.calendarLayout=t=>{var n,o,r,i,l,c,u,d;const f=t.config,{plot:h}=t.dimensions;if(0>=h.width||0>=h.height)return{nodes:[]};const y=e=>{const t="function"==typeof f.dateAccessor?f.dateAccessor(e):e[f.dateAccessor];return t instanceof Date?t:new Date(t)},m=e=>{const t="function"==typeof f.valueAccessor?f.valueAccessor(e):e[f.valueAccessor];return Number(t)},g=new Map;let p=null;for(const e of t.data){const t=y(e);if(!isFinite(t.getTime()))continue;null==p&&(p=t.getUTCFullYear());const o=a(t),r=m(e);g.set(o,(null!==(n=g.get(o))&&void 0!==n?n:0)+(Number.isFinite(r)?r:0))}const v=null!==(r=null!==(o=f.year)&&void 0!==o?o:p)&&void 0!==r?r:(new Date).getUTCFullYear();let x=1/0,b=-1/0;for(const e of g.values())x>e&&(x=e),e>b&&(b=e);x===1/0&&(x=0,b=0);const[w,A]=null!==(i=f.colorRamp)&&void 0!==i?i:[null!==(l=t.theme.semantic.surface)&&void 0!==l?l:"#ebedf0",null!==(c=t.theme.semantic.primary)&&void 0!==c?c:"#216e39"],k=t=>{if(b===x)return w;const n=(t-x)/(b-x);return e.interpolateRgb(w,A)(n)},M=null!==(u=f.gutter)&&void 0!==u?u:2,$=null!==(d=f.labelInset)&&void 0!==d?d:0,N=Math.min((h.width-$-53*M)/54,(h.height-6*M)/7);if(0>=N)return{nodes:[]};const O=new Date(Date.UTC(v,0,1)),j=O.getUTCDay(),C=new Date(O.getTime()-j*s),F=[];for(let e=0;54>e;e++)for(let t=0;7>t;t++){const n=new Date(C.getTime()+(7*e+t)*s);if(n.getUTCFullYear()!==v)continue;const o=a(n),r=g.get(o),i=null==r?w:k(r);F.push({type:"rect",x:h.x+$+e*(N+M),y:h.y+t*(N+M),w:N,h:N,style:{fill:i,stroke:"none"},datum:{date:n,value:null!=r?r:0}})}return{nodes:F}},exports.dagreLayout=e=>{var t,n,o,r,i,l,s,a,c;const u=e.config,d=null!==(t=u.nodeWidth)&&void 0!==t?t:100,f=null!==(n=u.nodeHeight)&&void 0!==n?n:36,h=null!==(o=u.edgeStyle)&&void 0!==o?o:"polyline",y=!1!==u.showLabels,m=null!==(r=u.labelAccessor)&&void 0!==r?r:"label",g="function"==typeof m?m:e=>{var t,n;const o=e.data,r=o?o[m]:void 0;return(null!==(n=null!==(t=null!=r?r:e[m])&&void 0!==t?t:e.id)&&void 0!==n?n:"")+""},p=new Map,v=[],x=[],b=e=>{var t,n,o;const r=null!==(t=e.data)&&void 0!==t?t:{};return{x:"number"==typeof r.x?r.x:e.x,y:"number"==typeof r.y?r.y:e.y,w:null!==(n="number"==typeof r.width?r.width:e.width)&&void 0!==n?n:d,h:null!==(o="number"==typeof r.height?r.height:e.height)&&void 0!==o?o:f}};for(const t of e.nodes){const{x:n,y:o,w:r,h:s}=b(t);null!=n&&null!=o&&(p.set(t.id,{x:n,y:o,w:r,h:s}),v.push({type:"rect",x:n-r/2,y:o-s/2,w:r,h:s,style:{fill:null!==(i=u.nodeFill)&&void 0!==i?i:e.resolveColor(t.id),stroke:`var(--semiotic-border, ${null!==(l=e.theme.semantic.border)&&void 0!==l?l:"#888"})`,strokeWidth:1.5},datum:t,id:t.id,label:g(t)+""}),y&&x.push({x:n,y:o,text:g(t)+"",anchor:"middle",baseline:"middle",fontSize:11}))}const w=null!==(s=u.edgeStroke)&&void 0!==s?s:`var(--semiotic-border, ${null!==(a=e.theme.semantic.border)&&void 0!==a?a:"#666"})`,A=[];for(const t of e.edges){const e="string"==typeof t.target?t.target:t.target.id,n=p.get("string"==typeof t.source?t.source:t.source.id),o=p.get(e);if(!n||!o)continue;const r=null!==(c=t.data)&&void 0!==c?c:{},i=Array.isArray(r.points)?r.points:t.points;if(i&&i.length>=2)if("smooth"!==h||3>i.length){const e="M"+i.map(e=>`${e.x},${e.y}`).join(" L ");A.push({type:"curved",pathD:e,style:{stroke:w,strokeWidth:1,fill:"none"},datum:t})}else{let e=`M${i[0].x},${i[0].y}`;for(let t=1;i.length-1>t;t++)e+=` Q${i[t].x},${i[t].y} ${(i[t].x+i[t+1].x)/2},${(i[t].y+i[t+1].y)/2}`;const n=i[i.length-1];e+=` T${n.x},${n.y}`,A.push({type:"curved",pathD:e,style:{stroke:w,strokeWidth:1,fill:"none"},datum:t})}else A.push({type:"line",x1:n.x,y1:n.y,x2:o.x,y2:o.y,style:{stroke:w,strokeWidth:1},datum:t})}return{sceneNodes:v,sceneEdges:A,labels:x}},exports.flextreeLayout=e=>{var t,n,o,r,i,l,s,a,c;const u=e.config,d=null!==(t=u.nodeWidth)&&void 0!==t?t:80,f=null!==(n=u.nodeHeight)&&void 0!==n?n:30,h=null!==(o=u.orientation)&&void 0!==o?o:"vertical",y=null!==(r=u.edgeCurve)&&void 0!==r?r:"curved",m=!1!==u.showLabels,g=null!==(i=u.labelAccessor)&&void 0!==i?i:"id",p="function"==typeof g?g:e=>{var t,n;const o=e.data,r=o?o[g]:void 0;return(null!==(n=null!==(t=null!=r?r:e[g])&&void 0!==t?t:e.id)&&void 0!==n?n:"")+""},v=new Map,x=[],b=[],w=e=>{var t,n,o;const r=null!==(t=e.data)&&void 0!==t?t:{};return{x:"number"==typeof r.x?r.x:e.x,y:"number"==typeof r.y?r.y:e.y,w:null!==(n="number"==typeof r.width?r.width:e.width)&&void 0!==n?n:d,h:null!==(o="number"==typeof r.height?r.height:e.height)&&void 0!==o?o:f}};for(const t of e.nodes){const{x:n,y:o,w:r,h:i}=w(t);null!=n&&null!=o&&(v.set(t.id,{x:n,y:o,w:r,h:i}),x.push({type:"rect",x:n-r/2,y:o-i/2,w:r,h:i,style:{fill:null!==(l=u.nodeFill)&&void 0!==l?l:e.resolveColor(t.id),stroke:`var(--semiotic-surface, ${null!==(s=e.theme.semantic.surface)&&void 0!==s?s:"#fff"})`,strokeWidth:1.5},datum:t,id:t.id,label:p(t)+""}),m&&b.push({x:n,y:o,text:p(t)+"",anchor:"middle",baseline:"middle",fontSize:11}))}const A=[];for(const t of e.edges){const n="string"==typeof t.target?t.target:t.target.id,o=v.get("string"==typeof t.source?t.source:t.source.id),r=v.get(n);if(!o||!r)continue;const i="vertical"===h?{x:o.x,y:o.y+o.h/2}:{x:o.x+o.w/2,y:o.y},l="vertical"===h?{x:r.x,y:r.y-r.h/2}:{x:r.x-r.w/2,y:r.y};if("line"===y)A.push({type:"line",x1:i.x,y1:i.y,x2:l.x,y2:l.y,style:{stroke:`var(--semiotic-border, ${null!==(a=e.theme.semantic.border)&&void 0!==a?a:"#999"})`,strokeWidth:1},datum:t});else{const n=(i.y+l.y)/2,o=(i.x+l.x)/2;A.push({type:"curved",pathD:"vertical"===h?`M${i.x},${i.y} C${i.x},${n} ${l.x},${n} ${l.x},${l.y}`:`M${i.x},${i.y} C${o},${i.y} ${o},${l.y} ${l.x},${l.y}`,style:{stroke:`var(--semiotic-border, ${null!==(c=e.theme.semantic.border)&&void 0!==c?c:"#999"})`,strokeWidth:1,fill:"none"},datum:t})}}return{sceneNodes:x,sceneEdges:A,labels:b}},exports.marimekkoLayout=e=>{var t,n,o,s,a,c,d;const f=e.config,{plot:h}=e.dimensions;if(0>=h.width||0>=h.height)return{nodes:[]};const y=i(f.categoryAccessor),m=i(f.stackBy),g=e=>{const t="function"==typeof f.valueAccessor?f.valueAccessor(e):e[f.valueAccessor],n=Number(t);return Number.isFinite(n)&&n>0?n:0},p=null!==(t=f.gutter)&&void 0!==t?t:2,v="string"==typeof f.categoryAccessor?f.categoryAccessor:"category",x="string"==typeof f.stackBy?f.stackBy:"stack",b="string"==typeof f.valueAccessor?f.valueAccessor:"value",w=(e,t,n)=>l(o=>{o("category",e),o("stack",t),o("value",n),"category"!==v&&o(v,e),"stack"!==x&&o(x,t),"value"!==b&&o(b,n)}),A=!1!==f.showCategoryLabels,k=null!==(n=f.labelPadding)&&void 0!==n?n:A?22:0,M=Math.max(0,h.height-k),$=[],N=new Map,O=[],j=new Set,C=new Map;for(const t of e.data){const e=y(t)+"",n=m(t)+"",r=g(t);N.has(e)||($.push(e),N.set(e,0),C.set(e,new Map)),j.has(n)||(j.add(n),O.push(n)),N.set(e,(null!==(o=N.get(e))&&void 0!==o?o:0)+r);const i=C.get(e);i.set(n,(null!==(s=i.get(n))&&void 0!==s?s:0)+r)}const F=f.categoryOrder?u(f.categoryOrder,$,e=>N.has(e)):$,S=f.stackOrder?u(f.stackOrder,O,()=>!0):O,T=F.reduce((e,t)=>{var n;return e+(null!==(n=N.get(t))&&void 0!==n?n:0)},0);if(0>=T)return{nodes:[]};const L=Math.max(0,h.width-p*Math.max(0,F.length-1)),W=[],I=[];let D=h.x;for(const t of F){const n=null!==(a=N.get(t))&&void 0!==a?a:0,o=n/T*L;if(0>=o)continue;I.push({cat:t,x:D,w:o});const r=C.get(t);let i=h.y;for(const l of S){const s=null!==(c=r.get(l))&&void 0!==c?c:0;if(0>=s)continue;const a=s/n*M;W.push({type:"rect",x:D,y:i,w:o,h:a,style:{fill:e.resolveColor(l),stroke:"none"},datum:w(t,l,s),group:l}),i+=a}D+=o+p}return{nodes:W,overlays:A&&I.length>0?function(e,t,n){const o=e.map((e,o)=>6.5*e.cat.length>e.w-4?null:r.createElement("text",{key:"marimekko-label-"+o,x:e.x+e.w/2,y:t+12,textAnchor:"middle",fontSize:12,fill:n},e.cat));return r.createElement(r.Fragment,null,...o)}(I,h.y+M+4,`var(--semiotic-text, ${null!==(d=e.theme.semantic.text)&&void 0!==d?d:"currentColor"})`):null}},exports.parallelCoordinatesLayout=e=>{var t,o,i,l,s,a,c,u,d,f,h,y;const m=e.config,{plot:g}=e.dimensions,p=null!==(t=m.fields)&&void 0!==t?t:[];if(2>p.length||0>=g.width||0>=g.height)return{nodes:[]};if(0===e.data.length)return{nodes:[]};const v={};for(const t of p){if(null===(o=m.domains)||void 0===o?void 0:o[t]){v[t]=m.domains[t];continue}let n=1/0,r=-1/0;for(const o of e.data){const e=Number(o[t]);Number.isFinite(e)&&(n>e&&(n=e),e>r&&(r=e))}v[t]=Number.isFinite(n)&&Number.isFinite(r)&&n!==r?[n,r]:[0,1]}const x=!1!==m.showAxes,b=x?null!==(i=m.axisLabelPadding)&&void 0!==i?i:24:8,w=x?18:8,A=p.map(e=>n.scaleLinear().domain(v[e]).range([g.y+g.height-w,g.y+b])),k=p.map((e,t)=>1===p.length?g.x+g.width/2:g.x+t/(p.length-1)*g.width),M=m.colorBy?"function"==typeof m.colorBy?m.colorBy:e=>{var t;return(null!==(t=e[m.colorBy])&&void 0!==t?t:"")+""}:null,$=null!==(l=m.opacity)&&void 0!==l?l:.45,N=null!==(s=m.strokeWidth)&&void 0!==s?s:1.25,O=null!==(a=e.theme.semantic.primary)&&void 0!==a?a:"#3b6cb1",j=null!==(c=m.dimmedOpacity)&&void 0!==c?c:.08,C=m.highlightFn,F=[],S=[];for(const t of e.data){const n=M?e.resolveColor(M(t)+""):O,o=!C||C(t),r=C?o?Math.min(1,$+.4):j:$,i=o?S:F;for(let e=0;p.length-1>e;e++){const l=Number(t[p[e]]),s=Number(t[p[e+1]]);if(!Number.isFinite(l)||!Number.isFinite(s))continue;const a={type:"connector",x1:k[e],y1:A[e](l),x2:k[e+1],y2:A[e+1](s),style:{stroke:n,strokeWidth:C&&o?N+.75:N,opacity:r,fill:"none"},datum:t};i.push(a)}if(m.showPoints)for(let e=0;p.length>e;e++){const o=Number(t[p[e]]);if(!Number.isFinite(o))continue;const l={type:"point",x:k[e],y:A[e](o),r:2.5,style:{fill:n,stroke:"none",opacity:Math.min(1,r+.3)},datum:t};i.push(l)}}let T=null;if(x){const t=`var(--semiotic-border, ${null!==(u=e.theme.semantic.border)&&void 0!==u?u:"#aaa"})`,n=`var(--semiotic-text, ${null!==(d=e.theme.semantic.text)&&void 0!==d?d:"currentColor"})`,o=`var(--semiotic-text-secondary, ${null!==(f=e.theme.semantic.textSecondary)&&void 0!==f?f:"#888"})`,i=g.y+b,l=g.y+g.height-w,s=[];for(let e=0;p.length>e;e++){const a=p[e],c=k[e],u=null!==(y=null===(h=m.tickFormat)||void 0===h?void 0:h[a])&&void 0!==y?y:e=>e.toLocaleString();s.push(r.createElement("line",{key:"pc-axis-line-"+e,x1:c,x2:c,y1:i,y2:l,stroke:t,strokeWidth:1})),s.push(r.createElement("text",{key:"pc-axis-label-"+e,x:c,y:g.y+b-8,textAnchor:"middle",fontSize:12,fontWeight:600,fill:n},a));const[d,f]=v[a],x=5;for(let n=0;x>n;n++){const i=d+(f-d)*n/(x-1),l=A[e](i);s.push(r.createElement("line",{key:`pc-tick-${e}-${n}`,x1:c-3,x2:c+3,y1:l,y2:l,stroke:t,strokeWidth:1}),r.createElement("text",{key:`pc-ticktext-${e}-${n}`,x:c+6,y:l+3,fontSize:10,fill:o},u(i)))}}T=r.createElement(r.Fragment,null,...s)}return{nodes:F.concat(S),overlays:T}},exports.waffleLayout=e=>{var t,n,o,r,i,s;const a=e.config,c=null!==(t=a.rows)&&void 0!==t?t:10,u=null!==(n=a.columns)&&void 0!==n?n:10,d=null!==(o=a.gutter)&&void 0!==o?o:2,f=c*u;if(0>=c||0>=u||0>=f)return{nodes:[]};const{plot:h}=e.dimensions;if(0>=h.width||0>=h.height)return{nodes:[]};const y=(h.width-d*(u-1))/u,m=(h.height-d*(c-1))/c;if(0>=y||0>=m)return{nodes:[]};const g=null!==(r=null==(p=a.categoryAccessor)?null:"function"==typeof p?p:e=>e[p])&&void 0!==r?r:()=>"_default";var p;const v=null!==(i=function(e){return null==e?null:"function"==typeof e?e:t=>Number(t[e])}(a.valueAccessor))&&void 0!==i?i:()=>1,x=new Map,b=[];for(const t of e.data){const e=g(t)+"",n=Number(v(t)),o=Number.isFinite(n)?Math.max(0,n):0;x.has(e)||b.push(e),x.set(e,(null!==(s=x.get(e))&&void 0!==s?s:0)+o)}const w=Array.from(x.values()).reduce((e,t)=>e+t,0);if(0>=w)return{nodes:[]};let A;if(a.categoryOrder&&a.categoryOrder.length>0){const e=new Set,t=[];for(const n of a.categoryOrder)x.has(n)&&!e.has(n)&&(e.add(n),t.push(n));A=[...t,...b.filter(t=>!e.has(t))]}else A=b;if(0===A.length)return{nodes:[]};const k=A.map(e=>{var t;return{cat:e,exact:(null!==(t=x.get(e))&&void 0!==t?t:0)/w*f}}),M=k.map(e=>Object.assign(Object.assign({},e),{count:Math.floor(e.exact)})),$=M.reduce((e,t)=>e+t.count,0),N=M.map((e,t)=>({i:t,rem:e.exact-e.count})).sort((e,t)=>t.rem-e.rem);for(let e=0;f-$>e;e++)M[N[e%N.length].i].count+=1;const O="string"==typeof a.categoryAccessor?a.categoryAccessor:"category",j="string"==typeof a.valueAccessor?a.valueAccessor:"value",C=(e,t,n)=>l(o=>{var r,i;o("category",e),o("value",null!==(r=x.get(e))&&void 0!==r?r:0),"category"!==O&&o(O,e),"value"!==j&&o(j,null!==(i=x.get(e))&&void 0!==i?i:0),o("cells",n),o("_waffleCategory",e),o("_waffleIndex",t)}),F=[];let S=0;for(const t of M){const n=e.resolveColor(t.cat);for(let e=0;t.count>e;e++)F.push({type:"rect",x:h.x+S%u*(y+d),y:h.y+(c-1-Math.floor(S/u))*(m+d),w:y,h:m,style:{fill:n,stroke:"none"},datum:C(t.cat,S,t.count),group:t.cat}),S++}return{nodes:F}};
@@ -1 +1 @@
1
- import{interpolateRgb as e}from"d3-interpolate";import*as t from"react";import{scaleLinear as o}from"d3-scale";function n(e){return"function"==typeof e?e:t=>t[e]}function r(e){const t=Object.create(null);return e((e,o)=>{t[e]=o}),t}const l=e=>{var t,o,n,l,s,i;const c=e.config,a=null!==(t=c.rows)&&void 0!==t?t:10,u=null!==(o=c.columns)&&void 0!==o?o:10,d=null!==(n=c.gutter)&&void 0!==n?n:2,h=a*u;if(0>=a||0>=u||0>=h)return{nodes:[]};const{plot:y}=e.dimensions;if(0>=y.width||0>=y.height)return{nodes:[]};const f=(y.width-d*(u-1))/u,m=(y.height-d*(a-1))/a;if(0>=f||0>=m)return{nodes:[]};const g=null!==(l=null==(v=c.categoryAccessor)?null:"function"==typeof v?v:e=>e[v])&&void 0!==l?l:()=>"_default";var v;const p=null!==(s=function(e){return null==e?null:"function"==typeof e?e:t=>Number(t[e])}(c.valueAccessor))&&void 0!==s?s:()=>1,x=new Map,b=[];for(const t of e.data){const e=g(t)+"",o=Number(p(t)),n=Number.isFinite(o)?Math.max(0,o):0;x.has(e)||b.push(e),x.set(e,(null!==(i=x.get(e))&&void 0!==i?i:0)+n)}const w=Array.from(x.values()).reduce((e,t)=>e+t,0);if(0>=w)return{nodes:[]};let k;if(c.categoryOrder&&c.categoryOrder.length>0){const e=new Set,t=[];for(const o of c.categoryOrder)x.has(o)&&!e.has(o)&&(e.add(o),t.push(o));k=[...t,...b.filter(t=>!e.has(t))]}else k=b;if(0===k.length)return{nodes:[]};const $=k.map(e=>{var t;return{cat:e,exact:(null!==(t=x.get(e))&&void 0!==t?t:0)/w*h}}),A=$.map(e=>Object.assign(Object.assign({},e),{count:Math.floor(e.exact)})),M=A.reduce((e,t)=>e+t.count,0),C=A.map((e,t)=>({i:t,rem:e.exact-e.count})).sort((e,t)=>t.rem-e.rem);for(let e=0;h-M>e;e++)A[C[e%C.length].i].count+=1;const F="string"==typeof c.categoryAccessor?c.categoryAccessor:"category",N="string"==typeof c.valueAccessor?c.valueAccessor:"value",W=(e,t,o)=>r(n=>{var r,l;n("category",e),n("value",null!==(r=x.get(e))&&void 0!==r?r:0),"category"!==F&&n(F,e),"value"!==N&&n(N,null!==(l=x.get(e))&&void 0!==l?l:0),n("cells",o),n("_waffleCategory",e),n("_waffleIndex",t)}),S=[];let T=0;for(const t of A){const o=e.resolveColor(t.cat);for(let e=0;t.count>e;e++)S.push({type:"rect",x:y.x+T%u*(f+d),y:y.y+(a-1-Math.floor(T/u))*(m+d),w:f,h:m,style:{fill:o,stroke:"none"},datum:W(t.cat,T,t.count),group:t.cat}),T++}return{nodes:S}},s=864e5,i=t=>{var o,n,r,l,i,a,u,d;const h=t.config,{plot:y}=t.dimensions;if(0>=y.width||0>=y.height)return{nodes:[]};const f=e=>{const t="function"==typeof h.dateAccessor?h.dateAccessor(e):e[h.dateAccessor];return t instanceof Date?t:new Date(t)},m=e=>{const t="function"==typeof h.valueAccessor?h.valueAccessor(e):e[h.valueAccessor];return Number(t)},g=new Map;let v=null;for(const e of t.data){const t=f(e);if(!isFinite(t.getTime()))continue;null==v&&(v=t.getUTCFullYear());const n=c(t),r=m(e);g.set(n,(null!==(o=g.get(n))&&void 0!==o?o:0)+(Number.isFinite(r)?r:0))}const p=null!==(r=null!==(n=h.year)&&void 0!==n?n:v)&&void 0!==r?r:(new Date).getUTCFullYear();let x=1/0,b=-1/0;for(const e of g.values())x>e&&(x=e),e>b&&(b=e);x===1/0&&(x=0,b=0);const[w,k]=null!==(l=h.colorRamp)&&void 0!==l?l:[null!==(i=t.theme.semantic.surface)&&void 0!==i?i:"#ebedf0",null!==(a=t.theme.semantic.primary)&&void 0!==a?a:"#216e39"],$=t=>{if(b===x)return w;const o=(t-x)/(b-x);return e(w,k)(o)},A=null!==(u=h.gutter)&&void 0!==u?u:2,M=null!==(d=h.labelInset)&&void 0!==d?d:0,C=Math.min((y.width-M-53*A)/54,(y.height-6*A)/7);if(0>=C)return{nodes:[]};const F=new Date(Date.UTC(p,0,1)),N=F.getUTCDay(),W=new Date(F.getTime()-N*s),S=[];for(let e=0;54>e;e++)for(let t=0;7>t;t++){const o=new Date(W.getTime()+(7*e+t)*s);if(o.getUTCFullYear()!==p)continue;const n=c(o),r=g.get(n),l=null==r?w:$(r);S.push({type:"rect",x:y.x+M+e*(C+A),y:y.y+t*(C+A),w:C,h:C,style:{fill:l,stroke:"none"},datum:{date:o,value:null!=r?r:0}})}return{nodes:S}};function c(e){return`${e.getUTCFullYear()}-${a(e.getUTCMonth()+1)}-${a(e.getUTCDate())}`}function a(e){return 10>e?"0"+e:e+""}const u=e=>{var t,o,n,r,l,s,i,c,a;const u=e.config,d=null!==(t=u.nodeWidth)&&void 0!==t?t:80,h=null!==(o=u.nodeHeight)&&void 0!==o?o:30,y=null!==(n=u.orientation)&&void 0!==n?n:"vertical",f=null!==(r=u.edgeCurve)&&void 0!==r?r:"curved",m=!1!==u.showLabels,g=null!==(l=u.labelAccessor)&&void 0!==l?l:"id",v="function"==typeof g?g:e=>{var t,o;const n=e.data,r=n?n[g]:void 0;return(null!==(o=null!==(t=null!=r?r:e[g])&&void 0!==t?t:e.id)&&void 0!==o?o:"")+""},p=new Map,x=[],b=[],w=e=>{var t,o,n;const r=null!==(t=e.data)&&void 0!==t?t:{};return{x:"number"==typeof r.x?r.x:e.x,y:"number"==typeof r.y?r.y:e.y,w:null!==(o="number"==typeof r.width?r.width:e.width)&&void 0!==o?o:d,h:null!==(n="number"==typeof r.height?r.height:e.height)&&void 0!==n?n:h}};for(const t of e.nodes){const{x:o,y:n,w:r,h:l}=w(t);null!=o&&null!=n&&(p.set(t.id,{x:o,y:n,w:r,h:l}),x.push({type:"rect",x:o-r/2,y:n-l/2,w:r,h:l,style:{fill:null!==(s=u.nodeFill)&&void 0!==s?s:e.resolveColor(t.id),stroke:`var(--semiotic-surface, ${null!==(i=e.theme.semantic.surface)&&void 0!==i?i:"#fff"})`,strokeWidth:1.5},datum:t,id:t.id,label:v(t)+""}),m&&b.push({x:o,y:n,text:v(t)+"",anchor:"middle",baseline:"middle",fontSize:11}))}const k=[];for(const t of e.edges){const o="string"==typeof t.target?t.target:t.target.id,n=p.get("string"==typeof t.source?t.source:t.source.id),r=p.get(o);if(!n||!r)continue;const l="vertical"===y?{x:n.x,y:n.y+n.h/2}:{x:n.x+n.w/2,y:n.y},s="vertical"===y?{x:r.x,y:r.y-r.h/2}:{x:r.x-r.w/2,y:r.y};if("line"===f)k.push({type:"line",x1:l.x,y1:l.y,x2:s.x,y2:s.y,style:{stroke:`var(--semiotic-border, ${null!==(c=e.theme.semantic.border)&&void 0!==c?c:"#999"})`,strokeWidth:1},datum:t});else{const o=(l.y+s.y)/2,n=(l.x+s.x)/2;k.push({type:"curved",pathD:"vertical"===y?`M${l.x},${l.y} C${l.x},${o} ${s.x},${o} ${s.x},${s.y}`:`M${l.x},${l.y} C${n},${l.y} ${n},${s.y} ${s.x},${s.y}`,style:{stroke:`var(--semiotic-border, ${null!==(a=e.theme.semantic.border)&&void 0!==a?a:"#999"})`,strokeWidth:1,fill:"none"},datum:t})}}return{sceneNodes:x,sceneEdges:k,labels:b}},d=e=>{var t,o,n,r,l,s,i,c,a;const u=e.config,d=null!==(t=u.nodeWidth)&&void 0!==t?t:100,h=null!==(o=u.nodeHeight)&&void 0!==o?o:36,y=null!==(n=u.edgeStyle)&&void 0!==n?n:"polyline",f=!1!==u.showLabels,m=null!==(r=u.labelAccessor)&&void 0!==r?r:"label",g="function"==typeof m?m:e=>{var t,o;const n=e.data,r=n?n[m]:void 0;return(null!==(o=null!==(t=null!=r?r:e[m])&&void 0!==t?t:e.id)&&void 0!==o?o:"")+""},v=new Map,p=[],x=[],b=e=>{var t,o,n;const r=null!==(t=e.data)&&void 0!==t?t:{};return{x:"number"==typeof r.x?r.x:e.x,y:"number"==typeof r.y?r.y:e.y,w:null!==(o="number"==typeof r.width?r.width:e.width)&&void 0!==o?o:d,h:null!==(n="number"==typeof r.height?r.height:e.height)&&void 0!==n?n:h}};for(const t of e.nodes){const{x:o,y:n,w:r,h:i}=b(t);null!=o&&null!=n&&(v.set(t.id,{x:o,y:n,w:r,h:i}),p.push({type:"rect",x:o-r/2,y:n-i/2,w:r,h:i,style:{fill:null!==(l=u.nodeFill)&&void 0!==l?l:e.resolveColor(t.id),stroke:`var(--semiotic-border, ${null!==(s=e.theme.semantic.border)&&void 0!==s?s:"#888"})`,strokeWidth:1.5},datum:t,id:t.id,label:g(t)+""}),f&&x.push({x:o,y:n,text:g(t)+"",anchor:"middle",baseline:"middle",fontSize:11}))}const w=null!==(i=u.edgeStroke)&&void 0!==i?i:`var(--semiotic-border, ${null!==(c=e.theme.semantic.border)&&void 0!==c?c:"#666"})`,k=[];for(const t of e.edges){const e="string"==typeof t.target?t.target:t.target.id,o=v.get("string"==typeof t.source?t.source:t.source.id),n=v.get(e);if(!o||!n)continue;const r=null!==(a=t.data)&&void 0!==a?a:{},l=Array.isArray(r.points)?r.points:t.points;if(l&&l.length>=2)if("smooth"!==y||3>l.length){const e="M"+l.map(e=>`${e.x},${e.y}`).join(" L ");k.push({type:"curved",pathD:e,style:{stroke:w,strokeWidth:1,fill:"none"},datum:t})}else{let e=`M${l[0].x},${l[0].y}`;for(let t=1;l.length-1>t;t++)e+=` Q${l[t].x},${l[t].y} ${(l[t].x+l[t+1].x)/2},${(l[t].y+l[t+1].y)/2}`;const o=l[l.length-1];e+=` T${o.x},${o.y}`,k.push({type:"curved",pathD:e,style:{stroke:w,strokeWidth:1,fill:"none"},datum:t})}else k.push({type:"line",x1:o.x,y1:o.y,x2:n.x,y2:n.y,style:{stroke:w,strokeWidth:1},datum:t})}return{sceneNodes:p,sceneEdges:k,labels:x}},h=e=>{var o,l,s,i,c,a,u;const d=e.config,{plot:h}=e.dimensions;if(0>=h.width||0>=h.height)return{nodes:[]};const f=n(d.categoryAccessor),m=n(d.stackBy),g=e=>{const t="function"==typeof d.valueAccessor?d.valueAccessor(e):e[d.valueAccessor],o=Number(t);return Number.isFinite(o)&&o>0?o:0},v=null!==(o=d.gutter)&&void 0!==o?o:2,p="string"==typeof d.categoryAccessor?d.categoryAccessor:"category",x="string"==typeof d.stackBy?d.stackBy:"stack",b="string"==typeof d.valueAccessor?d.valueAccessor:"value",w=(e,t,o)=>r(n=>{n("category",e),n("stack",t),n("value",o),"category"!==p&&n(p,e),"stack"!==x&&n(x,t),"value"!==b&&n(b,o)}),k=!1!==d.showCategoryLabels,$=null!==(l=d.labelPadding)&&void 0!==l?l:k?22:0,A=Math.max(0,h.height-$),M=[],C=new Map,F=[],N=new Set,W=new Map;for(const t of e.data){const e=f(t)+"",o=m(t)+"",n=g(t);C.has(e)||(M.push(e),C.set(e,0),W.set(e,new Map)),N.has(o)||(N.add(o),F.push(o)),C.set(e,(null!==(s=C.get(e))&&void 0!==s?s:0)+n);const r=W.get(e);r.set(o,(null!==(i=r.get(o))&&void 0!==i?i:0)+n)}const S=d.categoryOrder?y(d.categoryOrder,M,e=>C.has(e)):M,T=d.stackOrder?y(d.stackOrder,F,()=>!0):F,E=S.reduce((e,t)=>{var o;return e+(null!==(o=C.get(t))&&void 0!==o?o:0)},0);if(0>=E)return{nodes:[]};const D=Math.max(0,h.width-v*Math.max(0,S.length-1)),O=[],B=[];let L=h.x;for(const t of S){const o=null!==(c=C.get(t))&&void 0!==c?c:0,n=o/E*D;if(0>=n)continue;B.push({cat:t,x:L,w:n});const r=W.get(t);let l=h.y;for(const s of T){const i=null!==(a=r.get(s))&&void 0!==a?a:0;if(0>=i)continue;const c=i/o*A;O.push({type:"rect",x:L,y:l,w:n,h:c,style:{fill:e.resolveColor(s),stroke:"none"},datum:w(t,s,i),group:s}),l+=c}L+=n+v}return{nodes:O,overlays:k&&B.length>0?function(e,o,n){const r=e.map((e,r)=>6.5*e.cat.length>e.w-4?null:t.createElement("text",{key:"marimekko-label-"+r,x:e.x+e.w/2,y:o+12,textAnchor:"middle",fontSize:12,fill:n},e.cat));return t.createElement(t.Fragment,null,...r)}(B,h.y+A+4,`var(--semiotic-text, ${null!==(u=e.theme.semantic.text)&&void 0!==u?u:"currentColor"})`):null}};function y(e,t,o){const n=new Set,r=[];for(const t of e)o(t)&&!n.has(t)&&(n.add(t),r.push(t));for(const e of t)n.has(e)||r.push(e);return r}const f=e=>{var o,l,s,i,c,a,u,d,h,y,f,m;const g=e.config,{plot:v}=e.dimensions;if(0>=v.width||0>=v.height||0===e.data.length)return{nodes:[]};const p=null!==(o=g.rowHeight)&&void 0!==o?o:28,x=null!==(l=g.rowGap)&&void 0!==l?l:12,b=!1!==g.showLabels,w=b?null!==(s=g.labelWidth)&&void 0!==s?s:120:0,k=!1!==g.showTicks,$=k?14:0,A=null!==(i=g.tickFormat)&&void 0!==i?i:e=>e.toLocaleString(),M=v.x+w,C=Math.max(0,v.width-w);if(0>=C)return{nodes:[]};const F=n(g.categoryAccessor),N=e=>{const t=Number(e);return Number.isFinite(t)&&t>0?t:0},W=e=>N("function"==typeof g.valueAccessor?g.valueAccessor(e):e[g.valueAccessor]),S=e=>N("function"==typeof g.targetAccessor?g.targetAccessor(e):e[g.targetAccessor]),T=e=>{const t="function"==typeof g.rangesAccessor?g.rangesAccessor(e):e[g.rangesAccessor];return Array.isArray(t)?t.map(N).sort((e,t)=>e-t):[]},E="string"==typeof g.categoryAccessor?g.categoryAccessor:"metric",D="string"==typeof g.valueAccessor?g.valueAccessor:"value",O="string"==typeof g.targetAccessor?g.targetAccessor:"target",B=null!==(a=null!==(c=g.actualColor)&&void 0!==c?c:e.theme.semantic.primary)&&void 0!==a?a:"#3b6cb1",L=null!==(u=e.theme.semantic.text)&&void 0!==u?u:"currentColor",U=null!==(d=e.theme.semantic.textSecondary)&&void 0!==d?d:"#888",z=null!==(h=e.theme.semantic.surface)&&void 0!==h?h:"#e8eaed",j=null!==(y=e.theme.semantic.grid)&&void 0!==y?y:"#cdd1d6",V=null!==(f=e.theme.semantic.border)&&void 0!==f?f:"#a3a8af",Y=null!==(m=g.targetColor)&&void 0!==m?m:`var(--semiotic-text, ${L})`,H=[`var(--semiotic-surface, ${z})`,`var(--semiotic-grid, ${j})`,`var(--semiotic-border, ${V})`],P=`var(--semiotic-text, ${L})`,_=`var(--semiotic-text-secondary, ${U})`,I=[],G=[];for(let t=0;e.data.length>t;t++){const o=e.data[t],n=T(o),l=W(o),s=S(o),i=Math.max(l,s,...n.length?n:[0]);if(0>=i)continue;const c=v.y+t*(p+x+$);if(c+p+$>v.y+v.height)break;G.push({yTop:c,label:F(o),actual:l,target:s,maxVal:i});const a=e=>M+e/i*C,u=F(o),d=e=>r(t=>{t("metric",u),"metric"!==E&&t(E,u),e(t)});let h=M;for(let e=0;n.length>e;e++){const t=a(n[e]),o=t-h;o>0&&I.push({type:"rect",x:h,y:c,w:o,h:p,style:{fill:H[Math.min(e,H.length-1)],stroke:"none"},datum:d(t=>{t("range",e),t("rangeValue",n[e]),t("kind","range")}),group:"range-"+e}),h=t}const y=Math.max(6,Math.floor(.45*p));I.push({type:"rect",x:M,y:c+(p-y)/2,w:a(l)-M,h:y,style:{fill:B,stroke:"none"},datum:d(e=>{e("value",l),e("kind","actual"),"value"!==D&&e(D,l)}),group:"actual"});const f=3,m=Math.floor(.8*p);I.push({type:"rect",x:a(s)-f/2,y:c+(p-m)/2,w:f,h:m,style:{fill:Y,stroke:"none"},datum:d(e=>{e("target",s),e("kind","target"),"target"!==O&&e(O,s)}),group:"target"})}const Q=[];for(let e=0;G.length>e;e++){const o=G[e];if(b&&Q.push(t.createElement("text",{key:"bullet-label-"+e,x:v.x+w-8,y:o.yTop+p/2,textAnchor:"end",dominantBaseline:"middle",fontSize:13,fontWeight:500,fill:P},o.label)),k){const n=5,r=o.yTop+p+2;for(let l=0;n>l;l++){const s=o.maxVal*l/(n-1),i=M+s/o.maxVal*C;Q.push(t.createElement("line",{key:`bullet-tick-${e}-${l}`,x1:i,x2:i,y1:r,y2:r+3,stroke:_,strokeWidth:1}),t.createElement("text",{key:`bullet-ticktext-${e}-${l}`,x:i,y:r+12,textAnchor:0===l?"start":l===n-1?"end":"middle",fontSize:10,fill:_},A(s)))}}}return{nodes:I,overlays:Q.length>0?t.createElement(t.Fragment,null,...Q):null}},m=e=>{var n,r,l,s,i,c,a,u,d,h,y,f;const m=e.config,{plot:g}=e.dimensions,v=null!==(n=m.fields)&&void 0!==n?n:[];if(2>v.length||0>=g.width||0>=g.height)return{nodes:[]};if(0===e.data.length)return{nodes:[]};const p={};for(const t of v){if(null===(r=m.domains)||void 0===r?void 0:r[t]){p[t]=m.domains[t];continue}let o=1/0,n=-1/0;for(const r of e.data){const e=Number(r[t]);Number.isFinite(e)&&(o>e&&(o=e),e>n&&(n=e))}p[t]=Number.isFinite(o)&&Number.isFinite(n)&&o!==n?[o,n]:[0,1]}const x=!1!==m.showAxes,b=x?null!==(l=m.axisLabelPadding)&&void 0!==l?l:24:8,w=x?18:8,k=v.map(e=>o().domain(p[e]).range([g.y+g.height-w,g.y+b])),$=v.map((e,t)=>1===v.length?g.x+g.width/2:g.x+t/(v.length-1)*g.width),A=m.colorBy?"function"==typeof m.colorBy?m.colorBy:e=>{var t;return(null!==(t=e[m.colorBy])&&void 0!==t?t:"")+""}:null,M=null!==(s=m.opacity)&&void 0!==s?s:.45,C=null!==(i=m.strokeWidth)&&void 0!==i?i:1.25,F=null!==(c=e.theme.semantic.primary)&&void 0!==c?c:"#3b6cb1",N=null!==(a=m.dimmedOpacity)&&void 0!==a?a:.08,W=m.highlightFn,S=[],T=[];for(const t of e.data){const o=A?e.resolveColor(A(t)+""):F,n=!W||W(t),r=W?n?Math.min(1,M+.4):N:M,l=n?T:S;for(let e=0;v.length-1>e;e++){const s=Number(t[v[e]]),i=Number(t[v[e+1]]);if(!Number.isFinite(s)||!Number.isFinite(i))continue;const c={type:"connector",x1:$[e],y1:k[e](s),x2:$[e+1],y2:k[e+1](i),style:{stroke:o,strokeWidth:W&&n?C+.75:C,opacity:r,fill:"none"},datum:t};l.push(c)}if(m.showPoints)for(let e=0;v.length>e;e++){const n=Number(t[v[e]]);if(!Number.isFinite(n))continue;const s={type:"point",x:$[e],y:k[e](n),r:2.5,style:{fill:o,stroke:"none",opacity:Math.min(1,r+.3)},datum:t};l.push(s)}}let E=null;if(x){const o=`var(--semiotic-border, ${null!==(u=e.theme.semantic.border)&&void 0!==u?u:"#aaa"})`,n=`var(--semiotic-text, ${null!==(d=e.theme.semantic.text)&&void 0!==d?d:"currentColor"})`,r=`var(--semiotic-text-secondary, ${null!==(h=e.theme.semantic.textSecondary)&&void 0!==h?h:"#888"})`,l=g.y+b,s=g.y+g.height-w,i=[];for(let e=0;v.length>e;e++){const c=v[e],a=$[e],u=null!==(f=null===(y=m.tickFormat)||void 0===y?void 0:y[c])&&void 0!==f?f:e=>e.toLocaleString();i.push(t.createElement("line",{key:"pc-axis-line-"+e,x1:a,x2:a,y1:l,y2:s,stroke:o,strokeWidth:1})),i.push(t.createElement("text",{key:"pc-axis-label-"+e,x:a,y:g.y+b-8,textAnchor:"middle",fontSize:12,fontWeight:600,fill:n},c));const[d,h]=p[c],x=5;for(let n=0;x>n;n++){const l=d+(h-d)*n/(x-1),s=k[e](l);i.push(t.createElement("line",{key:`pc-tick-${e}-${n}`,x1:a-3,x2:a+3,y1:s,y2:s,stroke:o,strokeWidth:1}),t.createElement("text",{key:`pc-ticktext-${e}-${n}`,x:a+6,y:s+3,fontSize:10,fill:r},u(l)))}}E=t.createElement(t.Fragment,null,...i)}return{nodes:S.concat(T),overlays:E}};export{f as bulletLayout,i as calendarLayout,d as dagreLayout,u as flextreeLayout,h as marimekkoLayout,m as parallelCoordinatesLayout,l as waffleLayout};
1
+ import{interpolateRgb as t}from"d3-interpolate";import*as e from"react";import{scaleLinear as n}from"d3-scale";function o(t){return"function"==typeof t?t:e=>e[t]}function i(t){const e=Object.create(null);return t((t,n)=>{e[t]=n}),e}const r=t=>{var e,n,o,r,l,s;const c=t.config,a=null!==(e=c.rows)&&void 0!==e?e:10,u=null!==(n=c.columns)&&void 0!==n?n:10,d=null!==(o=c.gutter)&&void 0!==o?o:2,h=a*u;if(0>=a||0>=u||0>=h)return{nodes:[]};const{plot:f}=t.dimensions;if(0>=f.width||0>=f.height)return{nodes:[]};const y=(f.width-d*(u-1))/u,m=(f.height-d*(a-1))/a;if(0>=y||0>=m)return{nodes:[]};const g=null!==(r=null==(v=c.categoryAccessor)?null:"function"==typeof v?v:t=>t[v])&&void 0!==r?r:()=>"_default";var v;const p=null!==(l=function(t){return null==t?null:"function"==typeof t?t:e=>Number(e[t])}(c.valueAccessor))&&void 0!==l?l:()=>1,x=new Map,b=[];for(const e of t.data){const t=g(e)+"",n=Number(p(e)),o=Number.isFinite(n)?Math.max(0,n):0;x.has(t)||b.push(t),x.set(t,(null!==(s=x.get(t))&&void 0!==s?s:0)+o)}const w=Array.from(x.values()).reduce((t,e)=>t+e,0);if(0>=w)return{nodes:[]};let k;if(c.categoryOrder&&c.categoryOrder.length>0){const t=new Set,e=[];for(const n of c.categoryOrder)x.has(n)&&!t.has(n)&&(t.add(n),e.push(n));k=[...e,...b.filter(e=>!t.has(e))]}else k=b;if(0===k.length)return{nodes:[]};const A=k.map(t=>{var e;return{cat:t,exact:(null!==(e=x.get(t))&&void 0!==e?e:0)/w*h}}),M=A.map(t=>Object.assign(Object.assign({},t),{count:Math.floor(t.exact)})),$=M.reduce((t,e)=>t+e.count,0),N=M.map((t,e)=>({i:e,rem:t.exact-t.count})).sort((t,e)=>e.rem-t.rem);for(let t=0;h-$>t;t++)M[N[t%N.length].i].count+=1;const O="string"==typeof c.categoryAccessor?c.categoryAccessor:"category",C="string"==typeof c.valueAccessor?c.valueAccessor:"value",j=(t,e,n)=>i(o=>{var i,r;o("category",t),o("value",null!==(i=x.get(t))&&void 0!==i?i:0),"category"!==O&&o(O,t),"value"!==C&&o(C,null!==(r=x.get(t))&&void 0!==r?r:0),o("cells",n),o("_waffleCategory",t),o("_waffleIndex",e)}),F=[];let S=0;for(const e of M){const n=t.resolveColor(e.cat);for(let t=0;e.count>t;t++)F.push({type:"rect",x:f.x+S%u*(y+d),y:f.y+(a-1-Math.floor(S/u))*(m+d),w:y,h:m,style:{fill:n,stroke:"none"},datum:j(e.cat,S,e.count),group:e.cat}),S++}return{nodes:F}},l=864e5,s=e=>{var n,o,i,r,s,a,u,d;const h=e.config,{plot:f}=e.dimensions;if(0>=f.width||0>=f.height)return{nodes:[]};const y=t=>{const e="function"==typeof h.dateAccessor?h.dateAccessor(t):t[h.dateAccessor];return e instanceof Date?e:new Date(e)},m=t=>{const e="function"==typeof h.valueAccessor?h.valueAccessor(t):t[h.valueAccessor];return Number(e)},g=new Map;let v=null;for(const t of e.data){const e=y(t);if(!isFinite(e.getTime()))continue;null==v&&(v=e.getUTCFullYear());const o=c(e),i=m(t);g.set(o,(null!==(n=g.get(o))&&void 0!==n?n:0)+(Number.isFinite(i)?i:0))}const p=null!==(i=null!==(o=h.year)&&void 0!==o?o:v)&&void 0!==i?i:(new Date).getUTCFullYear();let x=1/0,b=-1/0;for(const t of g.values())x>t&&(x=t),t>b&&(b=t);x===1/0&&(x=0,b=0);const[w,k]=null!==(r=h.colorRamp)&&void 0!==r?r:[null!==(s=e.theme.semantic.surface)&&void 0!==s?s:"#ebedf0",null!==(a=e.theme.semantic.primary)&&void 0!==a?a:"#216e39"],A=e=>{if(b===x)return w;const n=(e-x)/(b-x);return t(w,k)(n)},M=null!==(u=h.gutter)&&void 0!==u?u:2,$=null!==(d=h.labelInset)&&void 0!==d?d:0,N=Math.min((f.width-$-53*M)/54,(f.height-6*M)/7);if(0>=N)return{nodes:[]};const O=new Date(Date.UTC(p,0,1)),C=O.getUTCDay(),j=new Date(O.getTime()-C*l),F=[];for(let t=0;54>t;t++)for(let e=0;7>e;e++){const n=new Date(j.getTime()+(7*t+e)*l);if(n.getUTCFullYear()!==p)continue;const o=c(n),i=g.get(o),r=null==i?w:A(i);F.push({type:"rect",x:f.x+$+t*(N+M),y:f.y+e*(N+M),w:N,h:N,style:{fill:r,stroke:"none"},datum:{date:n,value:null!=i?i:0}})}return{nodes:F}};function c(t){return`${t.getUTCFullYear()}-${a(t.getUTCMonth()+1)}-${a(t.getUTCDate())}`}function a(t){return 10>t?"0"+t:t+""}const u=t=>{var e,n,o,i,r,l,s,c,a;const u=t.config,d=null!==(e=u.nodeWidth)&&void 0!==e?e:80,h=null!==(n=u.nodeHeight)&&void 0!==n?n:30,f=null!==(o=u.orientation)&&void 0!==o?o:"vertical",y=null!==(i=u.edgeCurve)&&void 0!==i?i:"curved",m=!1!==u.showLabels,g=null!==(r=u.labelAccessor)&&void 0!==r?r:"id",v="function"==typeof g?g:t=>{var e,n;const o=t.data,i=o?o[g]:void 0;return(null!==(n=null!==(e=null!=i?i:t[g])&&void 0!==e?e:t.id)&&void 0!==n?n:"")+""},p=new Map,x=[],b=[],w=t=>{var e,n,o;const i=null!==(e=t.data)&&void 0!==e?e:{};return{x:"number"==typeof i.x?i.x:t.x,y:"number"==typeof i.y?i.y:t.y,w:null!==(n="number"==typeof i.width?i.width:t.width)&&void 0!==n?n:d,h:null!==(o="number"==typeof i.height?i.height:t.height)&&void 0!==o?o:h}};for(const e of t.nodes){const{x:n,y:o,w:i,h:r}=w(e);null!=n&&null!=o&&(p.set(e.id,{x:n,y:o,w:i,h:r}),x.push({type:"rect",x:n-i/2,y:o-r/2,w:i,h:r,style:{fill:null!==(l=u.nodeFill)&&void 0!==l?l:t.resolveColor(e.id),stroke:`var(--semiotic-surface, ${null!==(s=t.theme.semantic.surface)&&void 0!==s?s:"#fff"})`,strokeWidth:1.5},datum:e,id:e.id,label:v(e)+""}),m&&b.push({x:n,y:o,text:v(e)+"",anchor:"middle",baseline:"middle",fontSize:11}))}const k=[];for(const e of t.edges){const n="string"==typeof e.target?e.target:e.target.id,o=p.get("string"==typeof e.source?e.source:e.source.id),i=p.get(n);if(!o||!i)continue;const r="vertical"===f?{x:o.x,y:o.y+o.h/2}:{x:o.x+o.w/2,y:o.y},l="vertical"===f?{x:i.x,y:i.y-i.h/2}:{x:i.x-i.w/2,y:i.y};if("line"===y)k.push({type:"line",x1:r.x,y1:r.y,x2:l.x,y2:l.y,style:{stroke:`var(--semiotic-border, ${null!==(c=t.theme.semantic.border)&&void 0!==c?c:"#999"})`,strokeWidth:1},datum:e});else{const n=(r.y+l.y)/2,o=(r.x+l.x)/2;k.push({type:"curved",pathD:"vertical"===f?`M${r.x},${r.y} C${r.x},${n} ${l.x},${n} ${l.x},${l.y}`:`M${r.x},${r.y} C${o},${r.y} ${o},${l.y} ${l.x},${l.y}`,style:{stroke:`var(--semiotic-border, ${null!==(a=t.theme.semantic.border)&&void 0!==a?a:"#999"})`,strokeWidth:1,fill:"none"},datum:e})}}return{sceneNodes:x,sceneEdges:k,labels:b}},d=t=>{var e,n,o,i,r,l,s,c,a;const u=t.config,d=null!==(e=u.nodeWidth)&&void 0!==e?e:100,h=null!==(n=u.nodeHeight)&&void 0!==n?n:36,f=null!==(o=u.edgeStyle)&&void 0!==o?o:"polyline",y=!1!==u.showLabels,m=null!==(i=u.labelAccessor)&&void 0!==i?i:"label",g="function"==typeof m?m:t=>{var e,n;const o=t.data,i=o?o[m]:void 0;return(null!==(n=null!==(e=null!=i?i:t[m])&&void 0!==e?e:t.id)&&void 0!==n?n:"")+""},v=new Map,p=[],x=[],b=t=>{var e,n,o;const i=null!==(e=t.data)&&void 0!==e?e:{};return{x:"number"==typeof i.x?i.x:t.x,y:"number"==typeof i.y?i.y:t.y,w:null!==(n="number"==typeof i.width?i.width:t.width)&&void 0!==n?n:d,h:null!==(o="number"==typeof i.height?i.height:t.height)&&void 0!==o?o:h}};for(const e of t.nodes){const{x:n,y:o,w:i,h:s}=b(e);null!=n&&null!=o&&(v.set(e.id,{x:n,y:o,w:i,h:s}),p.push({type:"rect",x:n-i/2,y:o-s/2,w:i,h:s,style:{fill:null!==(r=u.nodeFill)&&void 0!==r?r:t.resolveColor(e.id),stroke:`var(--semiotic-border, ${null!==(l=t.theme.semantic.border)&&void 0!==l?l:"#888"})`,strokeWidth:1.5},datum:e,id:e.id,label:g(e)+""}),y&&x.push({x:n,y:o,text:g(e)+"",anchor:"middle",baseline:"middle",fontSize:11}))}const w=null!==(s=u.edgeStroke)&&void 0!==s?s:`var(--semiotic-border, ${null!==(c=t.theme.semantic.border)&&void 0!==c?c:"#666"})`,k=[];for(const e of t.edges){const t="string"==typeof e.target?e.target:e.target.id,n=v.get("string"==typeof e.source?e.source:e.source.id),o=v.get(t);if(!n||!o)continue;const i=null!==(a=e.data)&&void 0!==a?a:{},r=Array.isArray(i.points)?i.points:e.points;if(r&&r.length>=2)if("smooth"!==f||3>r.length){const t="M"+r.map(t=>`${t.x},${t.y}`).join(" L ");k.push({type:"curved",pathD:t,style:{stroke:w,strokeWidth:1,fill:"none"},datum:e})}else{let t=`M${r[0].x},${r[0].y}`;for(let e=1;r.length-1>e;e++)t+=` Q${r[e].x},${r[e].y} ${(r[e].x+r[e+1].x)/2},${(r[e].y+r[e+1].y)/2}`;const n=r[r.length-1];t+=` T${n.x},${n.y}`,k.push({type:"curved",pathD:t,style:{stroke:w,strokeWidth:1,fill:"none"},datum:e})}else k.push({type:"line",x1:n.x,y1:n.y,x2:o.x,y2:o.y,style:{stroke:w,strokeWidth:1},datum:e})}return{sceneNodes:p,sceneEdges:k,labels:x}},h=t=>{var n,r,l,s,c,a,u;const d=t.config,{plot:h}=t.dimensions;if(0>=h.width||0>=h.height)return{nodes:[]};const y=o(d.categoryAccessor),m=o(d.stackBy),g=t=>{const e="function"==typeof d.valueAccessor?d.valueAccessor(t):t[d.valueAccessor],n=Number(e);return Number.isFinite(n)&&n>0?n:0},v=null!==(n=d.gutter)&&void 0!==n?n:2,p="string"==typeof d.categoryAccessor?d.categoryAccessor:"category",x="string"==typeof d.stackBy?d.stackBy:"stack",b="string"==typeof d.valueAccessor?d.valueAccessor:"value",w=(t,e,n)=>i(o=>{o("category",t),o("stack",e),o("value",n),"category"!==p&&o(p,t),"stack"!==x&&o(x,e),"value"!==b&&o(b,n)}),k=!1!==d.showCategoryLabels,A=null!==(r=d.labelPadding)&&void 0!==r?r:k?22:0,M=Math.max(0,h.height-A),$=[],N=new Map,O=[],C=new Set,j=new Map;for(const e of t.data){const t=y(e)+"",n=m(e)+"",o=g(e);N.has(t)||($.push(t),N.set(t,0),j.set(t,new Map)),C.has(n)||(C.add(n),O.push(n)),N.set(t,(null!==(l=N.get(t))&&void 0!==l?l:0)+o);const i=j.get(t);i.set(n,(null!==(s=i.get(n))&&void 0!==s?s:0)+o)}const F=d.categoryOrder?f(d.categoryOrder,$,t=>N.has(t)):$,S=d.stackOrder?f(d.stackOrder,O,()=>!0):O,W=F.reduce((t,e)=>{var n;return t+(null!==(n=N.get(e))&&void 0!==n?n:0)},0);if(0>=W)return{nodes:[]};const I=Math.max(0,h.width-v*Math.max(0,F.length-1)),T=[],D=[];let E=h.x;for(const e of F){const n=null!==(c=N.get(e))&&void 0!==c?c:0,o=n/W*I;if(0>=o)continue;D.push({cat:e,x:E,w:o});const i=j.get(e);let r=h.y;for(const l of S){const s=null!==(a=i.get(l))&&void 0!==a?a:0;if(0>=s)continue;const c=s/n*M;T.push({type:"rect",x:E,y:r,w:o,h:c,style:{fill:t.resolveColor(l),stroke:"none"},datum:w(e,l,s),group:l}),r+=c}E+=o+v}return{nodes:T,overlays:k&&D.length>0?function(t,n,o){const i=t.map((t,i)=>6.5*t.cat.length>t.w-4?null:e.createElement("text",{key:"marimekko-label-"+i,x:t.x+t.w/2,y:n+12,textAnchor:"middle",fontSize:12,fill:o},t.cat));return e.createElement(e.Fragment,null,...i)}(D,h.y+M+4,`var(--semiotic-text, ${null!==(u=t.theme.semantic.text)&&void 0!==u?u:"currentColor"})`):null}};function f(t,e,n){const o=new Set,i=[];for(const e of t)n(e)&&!o.has(e)&&(o.add(e),i.push(e));for(const t of e)o.has(t)||i.push(t);return i}const y=t=>{var n,r,l,s,c,a,u,d,h,f,y,m;const g=t.config,{plot:v}=t.dimensions;if(0>=v.width||0>=v.height||0===t.data.length)return{nodes:[]};const p=null!==(n=g.rowHeight)&&void 0!==n?n:28,x=null!==(r=g.rowGap)&&void 0!==r?r:12,b=!1!==g.showLabels,w=b?null!==(l=g.labelWidth)&&void 0!==l?l:120:0,k=!1!==g.showTicks,A=k?14:0,M=null!==(s=g.tickFormat)&&void 0!==s?s:t=>t.toLocaleString(),$=v.x+w,N=Math.max(0,v.width-w);if(0>=N)return{nodes:[]};const O=o(g.categoryAccessor),C=t=>{const e=Number(t);return Number.isFinite(e)&&e>0?e:0},j=t=>C("function"==typeof g.valueAccessor?g.valueAccessor(t):t[g.valueAccessor]),F=t=>C("function"==typeof g.targetAccessor?g.targetAccessor(t):t[g.targetAccessor]),S=t=>{const e="function"==typeof g.rangesAccessor?g.rangesAccessor(t):t[g.rangesAccessor];return Array.isArray(e)?e.map(C).sort((t,e)=>t-e):[]},W="string"==typeof g.categoryAccessor?g.categoryAccessor:"metric",I="string"==typeof g.valueAccessor?g.valueAccessor:"value",T="string"==typeof g.targetAccessor?g.targetAccessor:"target",D=null!==(a=null!==(c=g.actualColor)&&void 0!==c?c:t.theme.semantic.primary)&&void 0!==a?a:"#3b6cb1",E=null!==(u=t.theme.semantic.text)&&void 0!==u?u:"currentColor",P=null!==(d=t.theme.semantic.textSecondary)&&void 0!==d?d:"#888",B=null!==(h=t.theme.semantic.surface)&&void 0!==h?h:"#e8eaed",z=null!==(f=t.theme.semantic.grid)&&void 0!==f?f:"#cdd1d6",L=null!==(y=t.theme.semantic.border)&&void 0!==y?y:"#a3a8af",U=null!==(m=g.targetColor)&&void 0!==m?m:`var(--semiotic-text, ${E})`,V=[`var(--semiotic-surface, ${B})`,`var(--semiotic-grid, ${z})`,`var(--semiotic-border, ${L})`],_=`var(--semiotic-text, ${E})`,Y=`var(--semiotic-text-secondary, ${P})`,H=[],G=[];for(let e=0;t.data.length>e;e++){const n=t.data[e],o=S(n),r=j(n),l=F(n),s=Math.max(r,l,...o.length?o:[0]);if(0>=s)continue;const c=v.y+e*(p+x+A);if(c+p+A>v.y+v.height)break;G.push({yTop:c,label:O(n),actual:r,target:l,maxVal:s});const a=t=>$+t/s*N,u=O(n),d=t=>i(e=>{e("metric",u),"metric"!==W&&e(W,u),t(e)});let h=$;for(let t=0;o.length>t;t++){const e=a(o[t]),n=e-h;n>0&&H.push({type:"rect",x:h,y:c,w:n,h:p,style:{fill:V[Math.min(t,V.length-1)],stroke:"none"},datum:d(e=>{e("range",t),e("rangeValue",o[t]),e("kind","range")}),group:"range-"+t}),h=e}const f=Math.max(6,Math.floor(.45*p));H.push({type:"rect",x:$,y:c+(p-f)/2,w:a(r)-$,h:f,style:{fill:D,stroke:"none"},datum:d(t=>{t("value",r),t("kind","actual"),"value"!==I&&t(I,r)}),group:"actual"});const y=3,m=Math.floor(.8*p);H.push({type:"rect",x:a(l)-y/2,y:c+(p-m)/2,w:y,h:m,style:{fill:U,stroke:"none"},datum:d(t=>{t("target",l),t("kind","target"),"target"!==T&&t(T,l)}),group:"target"})}const Q=[];for(let t=0;G.length>t;t++){const n=G[t];if(b&&Q.push(e.createElement("text",{key:"bullet-label-"+t,x:v.x+w-8,y:n.yTop+p/2,textAnchor:"end",dominantBaseline:"middle",fontSize:13,fontWeight:500,fill:_},n.label)),k){const o=5,i=n.yTop+p+2;for(let r=0;o>r;r++){const l=n.maxVal*r/(o-1),s=$+l/n.maxVal*N;Q.push(e.createElement("line",{key:`bullet-tick-${t}-${r}`,x1:s,x2:s,y1:i,y2:i+3,stroke:Y,strokeWidth:1}),e.createElement("text",{key:`bullet-ticktext-${t}-${r}`,x:s,y:i+12,textAnchor:0===r?"start":r===o-1?"end":"middle",fontSize:10,fill:Y},M(l)))}}}return{nodes:H,overlays:Q.length>0?e.createElement(e.Fragment,null,...Q):null}},m=t=>{var o,i,r,l,s,c,a,u,d,h,f,y;const m=t.config,{plot:g}=t.dimensions,v=null!==(o=m.fields)&&void 0!==o?o:[];if(2>v.length||0>=g.width||0>=g.height)return{nodes:[]};if(0===t.data.length)return{nodes:[]};const p={};for(const e of v){if(null===(i=m.domains)||void 0===i?void 0:i[e]){p[e]=m.domains[e];continue}let n=1/0,o=-1/0;for(const i of t.data){const t=Number(i[e]);Number.isFinite(t)&&(n>t&&(n=t),t>o&&(o=t))}p[e]=Number.isFinite(n)&&Number.isFinite(o)&&n!==o?[n,o]:[0,1]}const x=!1!==m.showAxes,b=x?null!==(r=m.axisLabelPadding)&&void 0!==r?r:24:8,w=x?18:8,k=v.map(t=>n().domain(p[t]).range([g.y+g.height-w,g.y+b])),A=v.map((t,e)=>1===v.length?g.x+g.width/2:g.x+e/(v.length-1)*g.width),M=m.colorBy?"function"==typeof m.colorBy?m.colorBy:t=>{var e;return(null!==(e=t[m.colorBy])&&void 0!==e?e:"")+""}:null,$=null!==(l=m.opacity)&&void 0!==l?l:.45,N=null!==(s=m.strokeWidth)&&void 0!==s?s:1.25,O=null!==(c=t.theme.semantic.primary)&&void 0!==c?c:"#3b6cb1",C=null!==(a=m.dimmedOpacity)&&void 0!==a?a:.08,j=m.highlightFn,F=[],S=[];for(const e of t.data){const n=M?t.resolveColor(M(e)+""):O,o=!j||j(e),i=j?o?Math.min(1,$+.4):C:$,r=o?S:F;for(let t=0;v.length-1>t;t++){const l=Number(e[v[t]]),s=Number(e[v[t+1]]);if(!Number.isFinite(l)||!Number.isFinite(s))continue;const c={type:"connector",x1:A[t],y1:k[t](l),x2:A[t+1],y2:k[t+1](s),style:{stroke:n,strokeWidth:j&&o?N+.75:N,opacity:i,fill:"none"},datum:e};r.push(c)}if(m.showPoints)for(let t=0;v.length>t;t++){const o=Number(e[v[t]]);if(!Number.isFinite(o))continue;const l={type:"point",x:A[t],y:k[t](o),r:2.5,style:{fill:n,stroke:"none",opacity:Math.min(1,i+.3)},datum:e};r.push(l)}}let W=null;if(x){const n=`var(--semiotic-border, ${null!==(u=t.theme.semantic.border)&&void 0!==u?u:"#aaa"})`,o=`var(--semiotic-text, ${null!==(d=t.theme.semantic.text)&&void 0!==d?d:"currentColor"})`,i=`var(--semiotic-text-secondary, ${null!==(h=t.theme.semantic.textSecondary)&&void 0!==h?h:"#888"})`,r=g.y+b,l=g.y+g.height-w,s=[];for(let t=0;v.length>t;t++){const c=v[t],a=A[t],u=null!==(y=null===(f=m.tickFormat)||void 0===f?void 0:f[c])&&void 0!==y?y:t=>t.toLocaleString();s.push(e.createElement("line",{key:"pc-axis-line-"+t,x1:a,x2:a,y1:r,y2:l,stroke:n,strokeWidth:1})),s.push(e.createElement("text",{key:"pc-axis-label-"+t,x:a,y:g.y+b-8,textAnchor:"middle",fontSize:12,fontWeight:600,fill:o},c));const[d,h]=p[c],x=5;for(let o=0;x>o;o++){const r=d+(h-d)*o/(x-1),l=k[t](r);s.push(e.createElement("line",{key:`pc-tick-${t}-${o}`,x1:a-3,x2:a+3,y1:l,y2:l,stroke:n,strokeWidth:1}),e.createElement("text",{key:`pc-ticktext-${t}-${o}`,x:a+6,y:l+3,fontSize:10,fill:i},u(r)))}}W=e.createElement(e.Fragment,null,...s)}return{nodes:F.concat(S),overlays:W}};function g(t,e){var n,o,i;const r=null!==(o=null===(n=e.scales)||void 0===n?void 0:n.x)&&void 0!==o?o:null===(i=e.scales)||void 0===i?void 0:i.time;return r?null!=t.x?r(t.x):e.xAccessor&&null!=t[e.xAccessor]?r(t[e.xAccessor]):null:null}function v(t,e){var n,o,i;const r=null!==(o=null===(n=e.scales)||void 0===n?void 0:n.y)&&void 0!==o?o:null===(i=e.scales)||void 0===i?void 0:i.value;return r?null!=t.y?r(t.y):e.yAccessor&&null!=t[e.yAccessor]?r(t[e.yAccessor]):null:null}function p(t){return null==t?null:t+""}function x(t,e,n){var o;return null===(o=e.stickyPositionCache)||void 0===o||o.set(t,n),n}const b=new Set(["label","callout","callout-circle","callout-rect","text","widget"]);function w(t){return!!t&&"object"==typeof t&&b.has(function(t){return"string"==typeof(null==t?void 0:t.type)?t.type:""}(t))}new Set(["label","callout","callout-circle","callout-rect"]);const k=2e4;function A(t){return"primary"===(null==t?void 0:t.emphasis)||!0===(null==t?void 0:t.defensive)}function M(t,e,n={}){return"number"==typeof n.maxAnnotations&&Number.isFinite(n.maxAnnotations)?Math.max(0,Math.floor(n.maxAnnotations)):t>0&&e>0?Math.max(1,Math.round(t*e/(n.areaPerAnnotation&&n.areaPerAnnotation>0?n.areaPerAnnotation:2e4))):1/0}function $(t){var e,n;let o;const i=null==t?void 0:t.emphasis;o="primary"===i?100:"secondary"===i?10:50;const r=null===(e=null==t?void 0:t.provenance)||void 0===e?void 0:e.confidence;switch("number"==typeof r&&Number.isFinite(r)&&(o+=15*Math.max(0,Math.min(1,r))),null===(n=null==t?void 0:t.lifecycle)||void 0===n?void 0:n.freshness){case"fresh":o+=8;break;case"aging":o+=4;break;case"stale":o+=1;break;case"expired":o-=200}return o}function N(t){var e;const{annotations:n,width:o,height:i}=t,r=Math.max(0,null!==(e=t.minVisible)&&void 0!==e?e:1),l=M(o,i,t),s=n.map((t,e)=>{return{annotation:t,index:e,note:(n=t,w(n))};var n}),c=s.filter(t=>t.note);if(0===c.length||l>=c.length)return{visible:n.slice(),deferred:[],budget:l};const a=c.filter(t=>A(t.annotation)),u=c.filter(t=>!A(t.annotation)).sort((t,e)=>$(e.annotation)-$(t.annotation)||t.index-e.index),d=Math.min(u.length,Math.max(Math.max(0,l-a.length),Math.max(0,r-a.length))),h=new Set([...a.map(t=>t.index),...u.slice(0,d).map(t=>t.index)]),f=[],y=[];for(const{annotation:t,index:e,note:n}of s)!n||h.has(e)?f.push(t):y.push(t);return{visible:f,deferred:y,budget:l}}const O=32,C=6,j=4,F=8,S=72;const W={ai:"AI",agent:"agent",watcher:"watcher",system:"system",import:"imported",computed:"computed",user:"you"};function I(t){return w(t)}function T(t,e){if(!t)return[];const n=Math.max(1,Math.floor(e/7)),o=t.split(/\s+/).filter(Boolean),i=[];let r="";for(const t of o)r&&r.length+t.length+1>n?(i.push(r),r=t):r=r?`${r} ${t}`:t;return r&&i.push(r),i}function D(t,e,n,o,i){const r=t+n,l=e+o;return Math.abs(n)>Math.abs(o)?{x:0>n?r-i.width-4:r+4,y:0>o?l-i.height:l,width:i.width,height:i.height}:{x:0>n?r-i.width:r,y:0>o?l-i.height-4:l+4,width:i.width,height:i.height}}function E(t,e){return{x:t.x-e,y:t.y-e,width:t.width+2*e,height:t.height+2*e}}function P(t,e){return Math.max(0,Math.min(t.x+t.width,e.x+e.width)-Math.max(t.x,e.x))*Math.max(0,Math.min(t.y+t.height,e.y+e.height)-Math.max(t.y,e.y))}function B(t,e,n,o,i,r,l,s){const c=E(t,l);let a=.4*Math.hypot(e.dx,e.dy)+80*function(t,e,n,o){const i=Math.max(0,o-t.x),r=Math.max(0,o-t.y);return(i+Math.max(0,t.x+t.width-(e-o)))*t.height+(r+Math.max(0,t.y+t.height-(n-o)))*t.width}(c,i,r,s);for(const t of n)a+=12*P(c,t);for(const t of o)a+=4*P(c,t);return a}function z(t,e,n){var o,i;if("widget"===t.type&&"number"==typeof t.px&&"number"==typeof t.py)return{x:t.px,y:t.py};const r=null!==(o=t.pointId)&&void 0!==o?o:t.nodeId;if(null!=r&&n.pointNodes){const t=n.pointNodes.find(t=>t.pointId===r);if(t)return{x:t.x,y:t.y}}const l=t.coordinates,s=null===(i=n.scales)||void 0===i?void 0:i.geoProjection;if(Array.isArray(l)&&l.length>=2&&s){const t=l[0],e=l[1];if("number"==typeof t&&"number"==typeof e){const n=s([t,e]);if(n&&"number"==typeof n[0]&&"number"==typeof n[1])return{x:n[0],y:n[1]}}}return n.scales||"number"!=typeof t.x||"number"!=typeof t.y?function(t,e,n){var o,i;const r=t.anchor||(null===(o=t.lifecycle)||void 0===o?void 0:o.anchor)||"fixed";if("latest"===r){if(null!=t.pointId&&n.pointNodes&&n.pointNodes.length>0)for(let o=n.pointNodes.length-1;o>=0;o--){const i=n.pointNodes[o];if(i.pointId===t.pointId)return x(e,n,{x:i.x,y:i.y})}const o=function(t){var e,n,o,i,r,l;const s=t.data;if(!s||0===s.length)return null;const c=s[s.length-1],a=null!==(n=null===(e=t.scales)||void 0===e?void 0:e.x)&&void 0!==n?n:null===(o=t.scales)||void 0===o?void 0:o.time,u=null!==(r=null===(i=t.scales)||void 0===i?void 0:i.y)&&void 0!==r?r:null===(l=t.scales)||void 0===l?void 0:l.value;if(!a||!u)return null;const d=c[t.xAccessor||"x"],h=c[t.yAccessor||"y"];return null==d||null==h?null:{x:a(d),y:u(h)}}(n);return o?x(e,n,o):null}if("semantic"===r){const o=function(t,e,n){var o,i;const r=function(t){var e,n;return p(null!==(n=null===(e=t.provenance)||void 0===e?void 0:e.stableId)&&void 0!==n?n:t.stableId)}(t);if(!r)return null;const l=null===(o=n.pointNodes)||void 0===o?void 0:o.find(t=>p(t.pointId)===r);if(l)return x(e,n,{x:l.x,y:l.y});const s=null===(i=n.data)||void 0===i?void 0:i.find(t=>function(t){var e,n,o;return p(null!==(n=null!==(e=t.stableId)&&void 0!==e?e:t.id)&&void 0!==n?n:null===(o=t.provenance)||void 0===o?void 0:o.stableId)}(t)===r);if(!s)return null;const c=g(s,n),a=v(s,n);return null==c||null==a?null:x(e,n,{x:c,y:a})}(t,e,n);if(o)return o}let l=null,s=null;if(null!=t.pointId&&n.pointNodes){const e=n.pointNodes.find(e=>e.pointId===t.pointId);e&&(l=e.x,s=e.y)}if(null!=l&&null!=s||(l=g(t,n),s=v(t,n)),null!=l&&null!=s)return x(e,n,{x:l,y:s});if("sticky"===r){const t=null===(i=n.stickyPositionCache)||void 0===i?void 0:i.get(e);if(t)return t}return null}(t,e,n):{x:t.x,y:t.y}}function L(t){var e;const{annotations:n,context:o,defaultOffset:i=O,notePadding:r=C,markPadding:l=j,edgePadding:s=F,preserveManualOffsets:c=!0,routeLongConnectors:a=!0,connectorThreshold:u=S,density:d,progressiveDisclosure:h=!1,redundantCues:f=!1,responsive:y,cohesion:m,audience:g}=t,v=o.width||0,p=o.height||0;if(0===n.length||0>=v||0>=p)return n.slice();const x=[],b=function(t,e){return(t.pointNodes||[]).map(t=>{const n=Math.max(1,t.r||1)+e;return{x:t.x-n,y:t.y-n,width:2*n,height:2*n}})}(o,l);let w=!1;const k=n.map((t,e)=>{if(!I(t))return t;const n=z(t,e,o);if(!n)return t;const l=function(t){if("widget"===t.type)return{width:"number"==typeof t.width?t.width:32,height:"number"==typeof t.height?t.height:32};const e="number"==typeof t.wrap?t.wrap:120,n=[...T("string"==typeof t.title?t.title:void 0,e),...T("string"==typeof t.label?t.label:void 0,e)],o=n.reduce((t,e)=>Math.max(t,e.length),0);return{width:Math.max(24,Math.min(e,7*o)+10),height:Math.max(18,16*n.length+6)}}(t);if(c&&("number"==typeof(d=t).dx||"number"==typeof d.dy)){const e=function(t){return"text"===t.type||"widget"===t.type?{dx:0,dy:0}:{dx:30,dy:-30}}(t);return x.push(E(D(n.x,n.y,"number"==typeof t.dx?t.dx:e.dx,"number"==typeof t.dy?t.dy:e.dy,l),r)),t}var d;let h=null,f=1/0;for(const t of function(t){const e=1.6*t;return[{dx:t,dy:-t},{dx:-t,dy:-t},{dx:t,dy:t},{dx:-t,dy:t},{dx:t,dy:0},{dx:-t,dy:0},{dx:0,dy:-t},{dx:0,dy:t},{dx:e,dy:-e},{dx:-e,dy:-e},{dx:e,dy:e},{dx:-e,dy:e}]}(i)){const e=B(D(n.x,n.y,t.dx,t.dy,l),t,x,b,v,p,r,s);f>e&&(h=t,f=e)}if(!h)return t;const y=E(D(n.x,n.y,h.dx,h.dy,l),r);x.push(y);const m=Math.hypot(h.dx,h.dy),g=a&&m>=u&&"text"!==t.type&&"widget"!==t.type?Object.assign(Object.assign({},t.connector||{end:"arrow"}),{type:"curve"}):t.connector;return w=!0,Object.assign(Object.assign(Object.assign({},t),{dx:h.dx,dy:h.dy}),g?{connector:g}:{})}),A=w?k:n.slice();let $=A;if(f){let t=!1;const e=A.map(e=>{const n=function(t){return"text"!==t.type||"string"!=typeof t.color||8>Math.hypot("number"==typeof t.dx?t.dx:0,"number"==typeof t.dy?t.dy:0)?t:Object.assign(Object.assign({},t),{_redundantConnector:!0})}(e);return n!==e&&(t=!0),n});$=t?e:A}{let t=!1;const e=$.map(e=>{if(!0!==(null==e?void 0:e.defensive))return e;const n=function(t){var e;const n=null==t?void 0:t.provenance;if(!n||"object"!=typeof n)return t;const o="string"==typeof n.source?null!==(e=W[n.source])&&void 0!==e?e:n.source:null,i="number"==typeof n.confidence&&Number.isFinite(n.confidence)?Math.round(100*Math.max(0,Math.min(1,n.confidence)))+"%":null;if(!o&&!i)return t;if(null!=t.label&&"string"!=typeof t.label)return t;const r=[o,i].filter(Boolean).join(" · "),l="string"==typeof t.label?t.label:"";return l.includes(`(${r})`)?t:Object.assign(Object.assign({},t),{label:l?`${l} (${r})`:`(${r})`})}(e);return n!==e&&(t=!0),n});$=t?e:$}const P=new Set;if(d){const t="object"==typeof d?d:{},n=function(t){if(!t)return 1;const e=function(t){const e=null==t?void 0:t.familiarity;if(!e)return 3;const n=Object.values(e).filter(t=>"number"==typeof t&&Number.isFinite(t));return 0===n.length?3:n.reduce((t,e)=>t+e,0)/n.length}(t);return e>2?4>e?1:.6:1.5}(g),o=1===n?t:Object.assign(Object.assign({},t),{maxAnnotations:Math.max(0,Math.round((null!==(e=t.maxAnnotations)&&void 0!==e?e:M(v,p,t))*n))}),{deferred:i}=N(Object.assign({annotations:$,width:v,height:p},o));for(const t of i)P.add(t)}if(y&&("object"==typeof y&&"number"==typeof y.minWidth?y.minWidth:480)>=v)for(const t of $)I(t)&&"secondary"===t.emphasis&&P.add(t);if(P.size>0)for(const t of $)!0===(null==t?void 0:t.defensive)&&P.delete(t);let L;return L=0===P.size?$:h?$.map(t=>P.has(t)?Object.assign(Object.assign({},t),{_annotationDeferred:!0}):t):$.filter(t=>!P.has(t)),m?function(t,e){let n=!1;const o=t.map(t=>I(t)?"blended"===t.cohesion||"layer"===t.cohesion?t:(n=!0,Object.assign(Object.assign({},t),{cohesion:e})):t);return n?o:t}(L,m):L}export{k as DEFAULT_AREA_PER_ANNOTATION,M as annotationBudget,N as annotationDensity,L as annotationLayout,y as bulletLayout,s as calendarLayout,d as dagreLayout,u as flextreeLayout,h as marimekkoLayout,m as parallelCoordinatesLayout,r as waffleLayout};
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- "use strict";require("react/jsx-runtime");require("react");function e(e){if(!e.accessibility)return e;let a=e;if(e.accessibility.colorBlindSafe&&(a=Object.assign(Object.assign({},a),{colors:Object.assign(Object.assign({},a.colors),{categorical:o})})),e.accessibility.highContrast){const e="dark"===a.mode;a=Object.assign(Object.assign({},a),{colors:Object.assign(Object.assign({},a.colors),{text:e?"#ffffff":"#000000",textSecondary:e?"#cccccc":"#333333",grid:e?"#666666":"#999999",border:e?"#888888":"#000000"})})}return a}const o=["#0072B2","#E69F00","#009E73","#CC79A7","#56B4E9","#D55E00","#F0E442","#000000"],a={mode:"light",colors:{primary:"#00a2ce",secondary:"#6c757d",categorical:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],sequential:"blues",diverging:"RdBu",background:"transparent",surface:"#ffffff",text:"#333",textSecondary:"#666",grid:"#e0e0e0",border:"#ccc",selection:"#00a2ce",selectionOpacity:.15,success:"#2ca02c",danger:"#d62728",warning:"#f0ad4e",error:"#b4181b",info:"#00a2ce"},typography:{fontFamily:"sans-serif",titleSize:16,labelSize:12,tickSize:10}},r={mode:"dark",colors:{primary:"#4fc3f7",secondary:"#90a4ae",categorical:["#4fc3f7","#ffb74d","#81c784","#ef5350","#ba68c8","#a1887f","#f06292","#90a4ae","#dce775","#4dd0e1"],sequential:"blues",diverging:"RdBu",background:"#1a1a2e",surface:"#252540",text:"#e0e0e0",textSecondary:"#aaa",grid:"#333",border:"#555",selection:"#4fc3f7",selectionOpacity:.15,success:"#81c784",danger:"#ef5350",warning:"#ffb74d",error:"#d84848",info:"#4fc3f7"},typography:{fontFamily:"sans-serif",titleSize:16,labelSize:12,tickSize:10}},t={mode:"light",colors:{primary:"#0000cc",secondary:"#333333",categorical:o,sequential:"blues",diverging:"RdBu",background:"#ffffff",surface:"#ffffff",text:"#000000",textSecondary:"#333333",grid:"#999999",border:"#000000",focus:"#0000cc",selection:"#0000cc",selectionOpacity:.1,success:"#006400",danger:"#cc0000",warning:"#b15a00",error:"#8b0000",info:"#0000cc"},typography:{fontFamily:"system-ui, sans-serif",titleSize:18,labelSize:14,tickSize:12},tooltip:{background:"#000000",text:"#ffffff",borderRadius:"4px",fontSize:"14px",shadow:"0 2px 8px rgba(0, 0, 0, 0.3)"},borderRadius:"4px"};function i(o,i){if("light"===i)return a;if("dark"===i)return r;if("high-contrast"===i)return t;if("string"==typeof i)return void 0!==console&&console.warn(`[ThemeStore] Unknown theme preset "${i}". Keeping current theme.`),o;if(i.mode&&"auto"!==i.mode){const o="dark"===i.mode?r:a;return e(Object.assign(Object.assign(Object.assign({},o),i),{colors:Object.assign(Object.assign({},o.colors),i.colors||{}),typography:Object.assign(Object.assign({},o.typography),i.typography||{})}))}return e(Object.assign(Object.assign(Object.assign({},o),i),{colors:Object.assign(Object.assign({},o.colors),i.colors||{}),typography:Object.assign(Object.assign({},o.typography),i.typography||{})}))}!function(e,o){const a=new EventTarget;let r=Object.assign(Object.assign({},e(function(e){r=Object.assign(Object.assign({},r),e(r)),a.dispatchEvent(new Event("update"))})),null!=o?o:{})}(e=>({theme:a,setTheme(o){e(e=>({theme:i(e.theme,o)}))}}));const s={mode:"light",colors:{primary:"#c9a0dc",secondary:"#b8a8c8",categorical:["#f0a0c0","#88d4ab","#b0a0e8","#f0c888"],sequential:"purples",background:"#fdf6f0",surface:"#fff5ee",text:"#4a3728",textSecondary:"#8b7355",grid:"#e8d5c4",border:"#e8d5c4",focus:"#c9a0dc",annotation:"#c9a0dc",success:"#9ad4a3",danger:"#e8869a",warning:"#f0c888",error:"#c86070",info:"#9cb8e0"},typography:{fontFamily:"Inter, system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#fff5ee",text:"#4a3728",borderRadius:"8px",shadow:"0 2px 8px rgba(0, 0, 0, 0.12)"},borderRadius:"10px"},c={mode:"dark",colors:{primary:"#c9a0dc",secondary:"#a899c0",categorical:["#f0a0c0","#88d4ab","#b0a0e8","#f0c888"],sequential:"purples",background:"#1a1525",surface:"#251e35",text:"#e8ddf0",textSecondary:"#a899c0",grid:"#3d3455",border:"#3d3455",focus:"#c9a0dc",annotation:"#c9a0dc",success:"#88d4ab",danger:"#f0a0c0",warning:"#f0c888",error:"#e87690",info:"#9cb8e0"},typography:{fontFamily:"Inter, system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#251e35",text:"#e8ddf0",borderRadius:"8px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"10px"},n={mode:"light",colors:{primary:"#2563eb",secondary:"#6b7280",categorical:["#2563eb","#0d9488","#ea580c","#6b7280"],sequential:"blues",background:"#f5f6f8",surface:"#ffffff",text:"#2c3e50",textSecondary:"#7f8c9b",grid:"#d8dce3",border:"#d8dce3",focus:"#2563eb",annotation:"#2563eb",success:"#10b981",danger:"#ef4444",warning:"#f59e0b",error:"#dc2626",info:"#2563eb"},typography:{fontFamily:"'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#ffffff",text:"#2c3e50",borderRadius:"6px",shadow:"0 2px 8px rgba(0, 0, 0, 0.12)"},borderRadius:"8px"},l={mode:"dark",colors:{primary:"#3b82f6",secondary:"#9ca3af",categorical:["#3b82f6","#14b8a6","#f97316","#9ca3af"],sequential:"blues",background:"#111827",surface:"#1f2937",text:"#f3f4f6",textSecondary:"#9ca3af",grid:"#374151",border:"#374151",focus:"#3b82f6",annotation:"#3b82f6",success:"#34d399",danger:"#f87171",warning:"#fbbf24",error:"#ef4444",info:"#60a5fa"},typography:{fontFamily:"'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#1f2937",text:"#f3f4f6",borderRadius:"6px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"8px"},d={mode:"light",colors:{primary:"#cc0000",secondary:"#666666",categorical:["#cc0000","#333333","#c8a415","#4682b4"],sequential:"reds",background:"#fafafa",surface:"#ffffff",text:"#1a1a1a",textSecondary:"#666666",grid:"#e0e0e0",border:"#e0e0e0",focus:"#cc0000",annotation:"#cc0000",success:"#556b2f",danger:"#cc0000",warning:"#c8a415",error:"#8b0000",info:"#4682b4"},typography:{fontFamily:"'Helvetica Neue', Helvetica, Arial, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#ffffff",text:"#1a1a1a",borderRadius:"2px",shadow:"0 2px 4px rgba(0, 0, 0, 0.15)"},borderRadius:"2px"},f={mode:"dark",colors:{primary:"#ff3333",secondary:"#aaaaaa",categorical:["#ff3333","#aaaaaa","#d4a843","#6aa4d4"],sequential:"reds",background:"#0a0a0a",surface:"#1a1a1a",text:"#f5f5f5",textSecondary:"#aaaaaa",grid:"#333333",border:"#333333",focus:"#ff3333",annotation:"#ff3333",success:"#7a8b5a",danger:"#ff3333",warning:"#d4a843",error:"#cc0000",info:"#6aa4d4"},typography:{fontFamily:"'Helvetica Neue', Helvetica, Arial, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#1a1a1a",text:"#f5f5f5",borderRadius:"2px",shadow:"0 2px 8px rgba(0, 0, 0, 0.5)"},borderRadius:"2px"},p={mode:"light",colors:{primary:"#8b0000",secondary:"#555555",categorical:["#8b4513","#556b2f","#4a5568","#800020"],sequential:"oranges",background:"#fffff8",surface:"#fffff8",text:"#111111",textSecondary:"#555555",grid:"#e0ddd0",border:"#e0ddd0",focus:"#8b0000",annotation:"#8b0000",success:"#556b2f",danger:"#8b0000",warning:"#b88700",error:"#6b0000",info:"#4a5568"},typography:{fontFamily:"Georgia, 'Times New Roman', serif",titleSize:16,labelSize:12,tickSize:10,tickFontFamily:"'Courier New', Courier, monospace",legendSize:11},tooltip:{background:"#fffff8",text:"#111111",borderRadius:"2px",shadow:"0 1px 3px rgba(0, 0, 0, 0.1)"},borderRadius:"0px"},u={mode:"dark",colors:{primary:"#c05050",secondary:"#a09880",categorical:["#c08050","#7a8b5a","#8090a0","#a05060"],sequential:"oranges",background:"#1c1b18",surface:"#262520",text:"#e8e4d8",textSecondary:"#a09880",grid:"#3d3c35",border:"#3d3c35",focus:"#c05050",annotation:"#c05050",success:"#7a8b5a",danger:"#c05050",warning:"#c8a060",error:"#a04040",info:"#8090a0"},typography:{fontFamily:"Georgia, 'Times New Roman', serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#262520",text:"#e8e4d8",borderRadius:"2px",shadow:"0 2px 6px rgba(0, 0, 0, 0.4)"},borderRadius:"0px"},b={mode:"light",colors:{primary:"#e45050",secondary:"#666666",categorical:["#3a86c8","#e45050","#d4a843","#888888"],sequential:"blues",background:"#ffffff",surface:"#f8f8f8",text:"#222222",textSecondary:"#666666",grid:"#d4d4d4",border:"#d4d4d4",focus:"#e45050",annotation:"#e45050",success:"#2d7a3d",danger:"#c8303a",warning:"#d4a843",error:"#a02028",info:"#3a86c8"},typography:{fontFamily:"'Franklin Gothic Medium', 'Libre Franklin', Arial, sans-serif",titleSize:18,labelSize:12,tickSize:10,tickFontFamily:"'Courier New', Courier, monospace",legendSize:11},tooltip:{background:"#f8f8f8",text:"#222222",borderRadius:"4px",shadow:"0 2px 6px rgba(0, 0, 0, 0.12)"},borderRadius:"4px"},g={mode:"dark",colors:{primary:"#ff6b6b",secondary:"#a0a0a0",categorical:["#5a9fd8","#ff6b6b","#e0c060","#aaaaaa"],sequential:"blues",background:"#141414",surface:"#1e1e1e",text:"#ededed",textSecondary:"#a0a0a0",grid:"#383838",border:"#383838",focus:"#ff6b6b",annotation:"#ff6b6b",success:"#6fba78",danger:"#ff6b6b",warning:"#e0c060",error:"#d04040",info:"#5a9fd8"},typography:{fontFamily:"'Franklin Gothic Medium', 'Libre Franklin', Arial, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#1e1e1e",text:"#ededed",borderRadius:"4px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"4px"},y={mode:"light",colors:{primary:"#8b5cf6",secondary:"#7c5a9e",categorical:["#8b5cf6","#ec4899","#06b6d4","#84cc16"],sequential:"viridis",background:"#fdf8ff",surface:"#ffffff",text:"#2d1b4e",textSecondary:"#7c5a9e",grid:"#e8d0f8",border:"#e8d0f8",focus:"#8b5cf6",annotation:"#8b5cf6",success:"#10d870",danger:"#ff4b6e",warning:"#ffaa33",error:"#e11d48",info:"#06b6d4"},typography:{fontFamily:"'Nunito', 'Poppins', system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#ffffff",text:"#2d1b4e",borderRadius:"12px",shadow:"0 4px 12px rgba(139, 92, 246, 0.15)"},borderRadius:"12px"},x={mode:"dark",colors:{primary:"#a78bfa",secondary:"#b8a0d8",categorical:["#a78bfa","#f472b6","#22d3ee","#a3e635"],sequential:"viridis",background:"#150a28",surface:"#1f1138",text:"#f0e8ff",textSecondary:"#b8a0d8",grid:"#3a2560",border:"#3a2560",focus:"#a78bfa",annotation:"#a78bfa",success:"#4ade80",danger:"#fb7185",warning:"#fbbf24",error:"#f43f5e",info:"#22d3ee"},typography:{fontFamily:"'Nunito', 'Poppins', system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#1f1138",text:"#f0e8ff",borderRadius:"12px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"12px"},m={mode:"light",colors:{primary:"#0f62fe",secondary:"#525252",categorical:["#6929c4","#1192e8","#005d5d","#9f1853"],sequential:"blues",diverging:"RdBu",background:"#ffffff",surface:"#ffffff",text:"#161616",textSecondary:"#525252",grid:"#e0e0e0",border:"#e0e0e0",focus:"#0f62fe",annotation:"#0f62fe",success:"#24a148",danger:"#da1e28",warning:"#f1c21b",error:"#a2191f",info:"#0043ce"},typography:{fontFamily:"'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#ffffff",text:"#161616",borderRadius:"2px",shadow:"0 2px 6px rgba(0, 0, 0, 0.2)"},borderRadius:"0px"},h={mode:"dark",colors:{primary:"#4589ff",secondary:"#a8a8a8",categorical:["#a56eff","#33b1ff","#08bdba","#ff7eb6"],sequential:"blues",diverging:"RdBu",background:"#161616",surface:"#262626",text:"#f4f4f4",textSecondary:"#a8a8a8",grid:"#393939",border:"#393939",focus:"#4589ff",annotation:"#4589ff",success:"#42be65",danger:"#fa4d56",warning:"#f1c21b",error:"#da1e28",info:"#4589ff"},typography:{fontFamily:"'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#262626",text:"#f4f4f4",borderRadius:"2px",shadow:"0 4px 12px rgba(0, 0, 0, 0.5)"},borderRadius:"0px"},S={light:a,dark:r,"high-contrast":t,pastels:s,"pastels-dark":c,"bi-tool":n,"bi-tool-dark":l,italian:d,"italian-dark":f,tufte:p,"tufte-dark":u,journalist:b,"journalist-dark":g,playful:y,"playful-dark":x,carbon:m,"carbon-dark":h};exports.BI_TOOL_DARK=l,exports.BI_TOOL_LIGHT=n,exports.CARBON_ALERT={danger:"#da1e28",warning:"#f1c21b",success:"#24a148",info:"#0043ce"},exports.CARBON_CATEGORICAL_14=["#6929c4","#1192e8","#005d5d","#9f1853","#fa4d56","#570408","#198038","#002d9c","#ee538b","#b28600","#009d9a","#012749","#8a3800","#a56eff"],exports.CARBON_DARK=h,exports.CARBON_LIGHT=m,exports.COLOR_BLIND_SAFE_CATEGORICAL=o,exports.DARK_THEME=r,exports.HIGH_CONTRAST_THEME=t,exports.ITALIAN_DARK=f,exports.ITALIAN_LIGHT=d,exports.JOURNALIST_DARK=g,exports.JOURNALIST_LIGHT=b,exports.LIGHT_THEME=a,exports.PASTELS_DARK=c,exports.PASTELS_LIGHT=s,exports.PLAYFUL_DARK=x,exports.PLAYFUL_LIGHT=y,exports.THEME_PRESETS=S,exports.TUFTE_DARK=u,exports.TUFTE_LIGHT=p,exports.resolveThemePreset=function(e){return S[e]},exports.themeToCSS=function(e,o=":root"){var a,r,t,i,s;const c=[];return c.push(` --semiotic-bg: ${e.colors.background};`),c.push(` --semiotic-text: ${e.colors.text};`),c.push(` --semiotic-text-secondary: ${e.colors.textSecondary};`),c.push(` --semiotic-grid: ${e.colors.grid};`),c.push(` --semiotic-border: ${e.colors.border};`),c.push(` --semiotic-primary: ${e.colors.primary};`),c.push(` --semiotic-font-family: ${e.typography.fontFamily};`),e.colors.focus&&c.push(` --semiotic-focus: ${e.colors.focus};`),e.colors.selection&&c.push(` --semiotic-selection-color: ${e.colors.selection};`),null!=e.colors.selectionOpacity&&c.push(` --semiotic-selection-opacity: ${e.colors.selectionOpacity};`),e.colors.diverging&&c.push(` --semiotic-diverging: ${e.colors.diverging};`),(null===(a=e.tooltip)||void 0===a?void 0:a.background)&&c.push(` --semiotic-tooltip-bg: ${e.tooltip.background};`),(null===(r=e.tooltip)||void 0===r?void 0:r.text)&&c.push(` --semiotic-tooltip-text: ${e.tooltip.text};`),(null===(t=e.tooltip)||void 0===t?void 0:t.borderRadius)&&c.push(` --semiotic-tooltip-radius: ${e.tooltip.borderRadius};`),(null===(i=e.tooltip)||void 0===i?void 0:i.fontSize)&&c.push(` --semiotic-tooltip-font-size: ${e.tooltip.fontSize};`),(null===(s=e.tooltip)||void 0===s?void 0:s.shadow)&&c.push(` --semiotic-tooltip-shadow: ${e.tooltip.shadow};`),e.borderRadius&&c.push(` --semiotic-border-radius: ${e.borderRadius};`),e.colors.annotation&&c.push(` --semiotic-annotation-color: ${e.colors.annotation};`),null!=e.typography.legendSize&&c.push(` --semiotic-legend-font-size: ${e.typography.legendSize}px;`),null!=e.typography.titleFontSize&&c.push(` --semiotic-title-font-size: ${e.typography.titleFontSize}px;`),null!=e.typography.tickFontFamily&&c.push(` --semiotic-tick-font-family: ${e.typography.tickFontFamily};`),null!=e.typography.tickSize&&c.push(` --semiotic-tick-font-size: ${e.typography.tickSize}px;`),null!=e.typography.labelSize&&c.push(` --semiotic-axis-label-font-size: ${e.typography.labelSize}px;`),c.push(` --semiotic-secondary: ${e.colors.secondary||e.colors.primary};`),c.push(` --semiotic-surface: ${e.colors.surface||e.colors.background};`),e.colors.success&&c.push(` --semiotic-success: ${e.colors.success};`),e.colors.danger&&c.push(` --semiotic-danger: ${e.colors.danger};`),e.colors.warning&&c.push(` --semiotic-warning: ${e.colors.warning};`),e.colors.error&&c.push(` --semiotic-error: ${e.colors.error};`),e.colors.info&&c.push(` --semiotic-info: ${e.colors.info};`),`${o} {\n${c.join("\n")}\n}`},exports.themeToTokens=function(e){var o,a,r,t,i,s;return{semiotic:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({bg:{$value:e.colors.background,$type:"color"},text:{$value:e.colors.text,$type:"color"},"text-secondary":{$value:e.colors.textSecondary,$type:"color"},grid:{$value:e.colors.grid,$type:"color"},border:{$value:e.colors.border,$type:"color"},primary:{$value:e.colors.primary,$type:"color"},focus:{$value:e.colors.focus||e.colors.primary,$type:"color"},"font-family":{$value:e.typography.fontFamily,$type:"fontFamily"},"border-radius":{$value:e.borderRadius||"8px",$type:"dimension"},tooltip:{bg:{$value:(null===(o=e.tooltip)||void 0===o?void 0:o.background)||e.colors.background,$type:"color"},text:{$value:(null===(a=e.tooltip)||void 0===a?void 0:a.text)||e.colors.text,$type:"color"},radius:{$value:(null===(r=e.tooltip)||void 0===r?void 0:r.borderRadius)||"6px",$type:"dimension"},"font-size":{$value:(null===(t=e.tooltip)||void 0===t?void 0:t.fontSize)||"14px",$type:"dimension"},shadow:{$value:(null===(i=e.tooltip)||void 0===i?void 0:i.shadow)||"0 2px 8px rgba(0,0,0,0.15)",$type:"shadow"}},selection:{color:{$value:e.colors.selection||e.colors.primary,$type:"color"},opacity:{$value:null!==(s=e.colors.selectionOpacity)&&void 0!==s?s:.2,$type:"number"}},categorical:{$value:e.colors.categorical,$type:"color",$description:"Categorical color palette"},sequential:{$value:e.colors.sequential,$type:"string",$description:"d3-scale-chromatic sequential scheme name"}},e.colors.diverging?{diverging:{$value:e.colors.diverging,$type:"string",$description:"d3-scale-chromatic diverging scheme name"}}:{}),e.colors.annotation?{"annotation-color":{$value:e.colors.annotation,$type:"color"}}:{}),null!=e.typography.legendSize?{"legend-font-size":{$value:e.typography.legendSize+"px",$type:"dimension"}}:{}),null!=e.typography.titleFontSize?{"title-font-size":{$value:e.typography.titleFontSize+"px",$type:"dimension"}}:{}),null!=e.typography.tickFontFamily?{"tick-font-family":{$value:e.typography.tickFontFamily,$type:"fontFamily"}}:{}),null!=e.typography.tickSize?{"tick-font-size":{$value:e.typography.tickSize+"px",$type:"dimension"}}:{}),null!=e.typography.labelSize?{"axis-label-font-size":{$value:e.typography.labelSize+"px",$type:"dimension"}}:{}),{secondary:{$value:e.colors.secondary||e.colors.primary,$type:"color"},surface:{$value:e.colors.surface||e.colors.background,$type:"color"}}),e.colors.success?{success:{$value:e.colors.success,$type:"color"}}:{}),e.colors.danger?{danger:{$value:e.colors.danger,$type:"color"}}:{}),e.colors.warning?{warning:{$value:e.colors.warning,$type:"color"}}:{}),e.colors.error?{error:{$value:e.colors.error,$type:"color"}}:{}),e.colors.info?{info:{$value:e.colors.info,$type:"color"}}:{})}};
2
+ "use strict";require("react/jsx-runtime");require("react");function e(e){if(!e.accessibility)return e;let a=e;if(e.accessibility.colorBlindSafe&&(a=Object.assign(Object.assign({},a),{colors:Object.assign(Object.assign({},a.colors),{categorical:o})})),e.accessibility.highContrast){const e="dark"===a.mode;a=Object.assign(Object.assign({},a),{colors:Object.assign(Object.assign({},a.colors),{text:e?"#ffffff":"#000000",textSecondary:e?"#cccccc":"#333333",grid:e?"#666666":"#999999",border:e?"#888888":"#000000"})})}return a}const o=["#0072B2","#E69F00","#009E73","#CC79A7","#56B4E9","#D55E00","#F0E442","#000000"],a={mode:"light",colors:{primary:"#00a2ce",secondary:"#6c757d",categorical:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],sequential:"blues",diverging:"RdBu",background:"transparent",surface:"#ffffff",text:"#333",textSecondary:"#666",grid:"#e0e0e0",border:"#ccc",selection:"#00a2ce",selectionOpacity:.15,success:"#2ca02c",danger:"#d62728",warning:"#f0ad4e",error:"#b4181b",info:"#00a2ce"},typography:{fontFamily:"sans-serif",titleSize:16,labelSize:12,tickSize:12}},r={mode:"dark",colors:{primary:"#4fc3f7",secondary:"#90a4ae",categorical:["#4fc3f7","#ffb74d","#81c784","#ef5350","#ba68c8","#a1887f","#f06292","#90a4ae","#dce775","#4dd0e1"],sequential:"blues",diverging:"RdBu",background:"#1a1a2e",surface:"#252540",text:"#e0e0e0",textSecondary:"#aaa",grid:"#333",border:"#555",selection:"#4fc3f7",selectionOpacity:.15,success:"#81c784",danger:"#ef5350",warning:"#ffb74d",error:"#d84848",info:"#4fc3f7"},typography:{fontFamily:"sans-serif",titleSize:16,labelSize:12,tickSize:12}},t={mode:"light",colors:{primary:"#0000cc",secondary:"#333333",categorical:o,sequential:"blues",diverging:"RdBu",background:"#ffffff",surface:"#ffffff",text:"#000000",textSecondary:"#333333",grid:"#999999",border:"#000000",focus:"#0000cc",selection:"#0000cc",selectionOpacity:.1,success:"#006400",danger:"#cc0000",warning:"#b15a00",error:"#8b0000",info:"#0000cc"},typography:{fontFamily:"system-ui, sans-serif",titleSize:18,labelSize:14,tickSize:12},tooltip:{background:"#000000",text:"#ffffff",borderRadius:"4px",fontSize:"14px",shadow:"0 2px 8px rgba(0, 0, 0, 0.3)"},borderRadius:"4px"};function i(o,i){if("light"===i)return a;if("dark"===i)return r;if("high-contrast"===i)return t;if("string"==typeof i)return void 0!==console&&console.warn(`[ThemeStore] Unknown theme preset "${i}". Keeping current theme.`),o;if(i.mode&&"auto"!==i.mode){const o="dark"===i.mode?r:a;return e(Object.assign(Object.assign(Object.assign({},o),i),{colors:Object.assign(Object.assign({},o.colors),i.colors||{}),typography:Object.assign(Object.assign({},o.typography),i.typography||{})}))}return e(Object.assign(Object.assign(Object.assign({},o),i),{colors:Object.assign(Object.assign({},o.colors),i.colors||{}),typography:Object.assign(Object.assign({},o.typography),i.typography||{})}))}!function(e,o){const a=new EventTarget;let r=Object.assign(Object.assign({},e(function(e){r=Object.assign(Object.assign({},r),e(r)),a.dispatchEvent(new Event("update"))})),null!=o?o:{})}(e=>({theme:a,setTheme(o){e(e=>({theme:i(e.theme,o)}))}}));const s={mode:"light",colors:{primary:"#c9a0dc",secondary:"#b8a8c8",categorical:["#f0a0c0","#88d4ab","#b0a0e8","#f0c888"],sequential:"purples",background:"#fdf6f0",surface:"#fff5ee",text:"#4a3728",textSecondary:"#8b7355",grid:"#e8d5c4",border:"#e8d5c4",focus:"#c9a0dc",annotation:"#c9a0dc",success:"#9ad4a3",danger:"#e8869a",warning:"#f0c888",error:"#c86070",info:"#9cb8e0"},typography:{fontFamily:"Inter, system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#fff5ee",text:"#4a3728",borderRadius:"8px",shadow:"0 2px 8px rgba(0, 0, 0, 0.12)"},borderRadius:"10px"},c={mode:"dark",colors:{primary:"#c9a0dc",secondary:"#a899c0",categorical:["#f0a0c0","#88d4ab","#b0a0e8","#f0c888"],sequential:"purples",background:"#1a1525",surface:"#251e35",text:"#e8ddf0",textSecondary:"#a899c0",grid:"#3d3455",border:"#3d3455",focus:"#c9a0dc",annotation:"#c9a0dc",success:"#88d4ab",danger:"#f0a0c0",warning:"#f0c888",error:"#e87690",info:"#9cb8e0"},typography:{fontFamily:"Inter, system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#251e35",text:"#e8ddf0",borderRadius:"8px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"10px"},n={mode:"light",colors:{primary:"#2563eb",secondary:"#6b7280",categorical:["#2563eb","#0d9488","#ea580c","#6b7280"],sequential:"blues",background:"#f5f6f8",surface:"#ffffff",text:"#2c3e50",textSecondary:"#7f8c9b",grid:"#d8dce3",border:"#d8dce3",focus:"#2563eb",annotation:"#2563eb",success:"#10b981",danger:"#ef4444",warning:"#f59e0b",error:"#dc2626",info:"#2563eb"},typography:{fontFamily:"'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#ffffff",text:"#2c3e50",borderRadius:"6px",shadow:"0 2px 8px rgba(0, 0, 0, 0.12)"},borderRadius:"8px"},l={mode:"dark",colors:{primary:"#3b82f6",secondary:"#9ca3af",categorical:["#3b82f6","#14b8a6","#f97316","#9ca3af"],sequential:"blues",background:"#111827",surface:"#1f2937",text:"#f3f4f6",textSecondary:"#9ca3af",grid:"#374151",border:"#374151",focus:"#3b82f6",annotation:"#3b82f6",success:"#34d399",danger:"#f87171",warning:"#fbbf24",error:"#ef4444",info:"#60a5fa"},typography:{fontFamily:"'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#1f2937",text:"#f3f4f6",borderRadius:"6px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"8px"},d={mode:"light",colors:{primary:"#cc0000",secondary:"#666666",categorical:["#cc0000","#333333","#c8a415","#4682b4"],sequential:"reds",background:"#fafafa",surface:"#ffffff",text:"#1a1a1a",textSecondary:"#666666",grid:"#e0e0e0",border:"#e0e0e0",focus:"#cc0000",annotation:"#cc0000",success:"#556b2f",danger:"#cc0000",warning:"#c8a415",error:"#8b0000",info:"#4682b4"},typography:{fontFamily:"'Helvetica Neue', Helvetica, Arial, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#ffffff",text:"#1a1a1a",borderRadius:"2px",shadow:"0 2px 4px rgba(0, 0, 0, 0.15)"},borderRadius:"2px"},f={mode:"dark",colors:{primary:"#ff3333",secondary:"#aaaaaa",categorical:["#ff3333","#aaaaaa","#d4a843","#6aa4d4"],sequential:"reds",background:"#0a0a0a",surface:"#1a1a1a",text:"#f5f5f5",textSecondary:"#aaaaaa",grid:"#333333",border:"#333333",focus:"#ff3333",annotation:"#ff3333",success:"#7a8b5a",danger:"#ff3333",warning:"#d4a843",error:"#cc0000",info:"#6aa4d4"},typography:{fontFamily:"'Helvetica Neue', Helvetica, Arial, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#1a1a1a",text:"#f5f5f5",borderRadius:"2px",shadow:"0 2px 8px rgba(0, 0, 0, 0.5)"},borderRadius:"2px"},p={mode:"light",colors:{primary:"#8b0000",secondary:"#555555",categorical:["#8b4513","#556b2f","#4a5568","#800020"],sequential:"oranges",background:"#fffff8",surface:"#fffff8",text:"#111111",textSecondary:"#555555",grid:"#e0ddd0",border:"#e0ddd0",focus:"#8b0000",annotation:"#8b0000",success:"#556b2f",danger:"#8b0000",warning:"#b88700",error:"#6b0000",info:"#4a5568"},typography:{fontFamily:"Georgia, 'Times New Roman', serif",titleSize:16,labelSize:12,tickSize:12,tickFontFamily:"'Courier New', Courier, monospace",legendSize:11},tooltip:{background:"#fffff8",text:"#111111",borderRadius:"2px",shadow:"0 1px 3px rgba(0, 0, 0, 0.1)"},borderRadius:"0px"},u={mode:"dark",colors:{primary:"#c05050",secondary:"#a09880",categorical:["#c08050","#7a8b5a","#8090a0","#a05060"],sequential:"oranges",background:"#1c1b18",surface:"#262520",text:"#e8e4d8",textSecondary:"#a09880",grid:"#3d3c35",border:"#3d3c35",focus:"#c05050",annotation:"#c05050",success:"#7a8b5a",danger:"#c05050",warning:"#c8a060",error:"#a04040",info:"#8090a0"},typography:{fontFamily:"Georgia, 'Times New Roman', serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#262520",text:"#e8e4d8",borderRadius:"2px",shadow:"0 2px 6px rgba(0, 0, 0, 0.4)"},borderRadius:"0px"},b={mode:"light",colors:{primary:"#e45050",secondary:"#666666",categorical:["#3a86c8","#e45050","#d4a843","#888888"],sequential:"blues",background:"#ffffff",surface:"#f8f8f8",text:"#222222",textSecondary:"#666666",grid:"#d4d4d4",border:"#d4d4d4",focus:"#e45050",annotation:"#e45050",success:"#2d7a3d",danger:"#c8303a",warning:"#d4a843",error:"#a02028",info:"#3a86c8"},typography:{fontFamily:"'Franklin Gothic Medium', 'Libre Franklin', Arial, sans-serif",titleSize:18,labelSize:12,tickSize:12,tickFontFamily:"'Courier New', Courier, monospace",legendSize:11},tooltip:{background:"#f8f8f8",text:"#222222",borderRadius:"4px",shadow:"0 2px 6px rgba(0, 0, 0, 0.12)"},borderRadius:"4px"},g={mode:"dark",colors:{primary:"#ff6b6b",secondary:"#a0a0a0",categorical:["#5a9fd8","#ff6b6b","#e0c060","#aaaaaa"],sequential:"blues",background:"#141414",surface:"#1e1e1e",text:"#ededed",textSecondary:"#a0a0a0",grid:"#383838",border:"#383838",focus:"#ff6b6b",annotation:"#ff6b6b",success:"#6fba78",danger:"#ff6b6b",warning:"#e0c060",error:"#d04040",info:"#5a9fd8"},typography:{fontFamily:"'Franklin Gothic Medium', 'Libre Franklin', Arial, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#1e1e1e",text:"#ededed",borderRadius:"4px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"4px"},y={mode:"light",colors:{primary:"#8b5cf6",secondary:"#7c5a9e",categorical:["#8b5cf6","#ec4899","#06b6d4","#84cc16"],sequential:"viridis",background:"#fdf8ff",surface:"#ffffff",text:"#2d1b4e",textSecondary:"#7c5a9e",grid:"#e8d0f8",border:"#e8d0f8",focus:"#8b5cf6",annotation:"#8b5cf6",success:"#10d870",danger:"#ff4b6e",warning:"#ffaa33",error:"#e11d48",info:"#06b6d4"},typography:{fontFamily:"'Nunito', 'Poppins', system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#ffffff",text:"#2d1b4e",borderRadius:"12px",shadow:"0 4px 12px rgba(139, 92, 246, 0.15)"},borderRadius:"12px"},x={mode:"dark",colors:{primary:"#a78bfa",secondary:"#b8a0d8",categorical:["#a78bfa","#f472b6","#22d3ee","#a3e635"],sequential:"viridis",background:"#150a28",surface:"#1f1138",text:"#f0e8ff",textSecondary:"#b8a0d8",grid:"#3a2560",border:"#3a2560",focus:"#a78bfa",annotation:"#a78bfa",success:"#4ade80",danger:"#fb7185",warning:"#fbbf24",error:"#f43f5e",info:"#22d3ee"},typography:{fontFamily:"'Nunito', 'Poppins', system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#1f1138",text:"#f0e8ff",borderRadius:"12px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"12px"},m={mode:"light",colors:{primary:"#0f62fe",secondary:"#525252",categorical:["#6929c4","#1192e8","#005d5d","#9f1853"],sequential:"blues",diverging:"RdBu",background:"#ffffff",surface:"#ffffff",text:"#161616",textSecondary:"#525252",grid:"#e0e0e0",border:"#e0e0e0",focus:"#0f62fe",annotation:"#0f62fe",success:"#24a148",danger:"#da1e28",warning:"#f1c21b",error:"#a2191f",info:"#0043ce"},typography:{fontFamily:"'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#ffffff",text:"#161616",borderRadius:"2px",shadow:"0 2px 6px rgba(0, 0, 0, 0.2)"},borderRadius:"0px"},h={mode:"dark",colors:{primary:"#4589ff",secondary:"#a8a8a8",categorical:["#a56eff","#33b1ff","#08bdba","#ff7eb6"],sequential:"blues",diverging:"RdBu",background:"#161616",surface:"#262626",text:"#f4f4f4",textSecondary:"#a8a8a8",grid:"#393939",border:"#393939",focus:"#4589ff",annotation:"#4589ff",success:"#42be65",danger:"#fa4d56",warning:"#f1c21b",error:"#da1e28",info:"#4589ff"},typography:{fontFamily:"'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#262626",text:"#f4f4f4",borderRadius:"2px",shadow:"0 4px 12px rgba(0, 0, 0, 0.5)"},borderRadius:"0px"},S={light:a,dark:r,"high-contrast":t,pastels:s,"pastels-dark":c,"bi-tool":n,"bi-tool-dark":l,italian:d,"italian-dark":f,tufte:p,"tufte-dark":u,journalist:b,"journalist-dark":g,playful:y,"playful-dark":x,carbon:m,"carbon-dark":h};exports.BI_TOOL_DARK=l,exports.BI_TOOL_LIGHT=n,exports.CARBON_ALERT={danger:"#da1e28",warning:"#f1c21b",success:"#24a148",info:"#0043ce"},exports.CARBON_CATEGORICAL_14=["#6929c4","#1192e8","#005d5d","#9f1853","#fa4d56","#570408","#198038","#002d9c","#ee538b","#b28600","#009d9a","#012749","#8a3800","#a56eff"],exports.CARBON_DARK=h,exports.CARBON_LIGHT=m,exports.COLOR_BLIND_SAFE_CATEGORICAL=o,exports.DARK_THEME=r,exports.HIGH_CONTRAST_THEME=t,exports.ITALIAN_DARK=f,exports.ITALIAN_LIGHT=d,exports.JOURNALIST_DARK=g,exports.JOURNALIST_LIGHT=b,exports.LIGHT_THEME=a,exports.PASTELS_DARK=c,exports.PASTELS_LIGHT=s,exports.PLAYFUL_DARK=x,exports.PLAYFUL_LIGHT=y,exports.THEME_PRESETS=S,exports.TUFTE_DARK=u,exports.TUFTE_LIGHT=p,exports.resolveThemePreset=function(e){return S[e]},exports.themeToCSS=function(e,o=":root"){var a,r,t,i,s;const c=[];return c.push(` --semiotic-bg: ${e.colors.background};`),c.push(` --semiotic-text: ${e.colors.text};`),c.push(` --semiotic-text-secondary: ${e.colors.textSecondary};`),c.push(` --semiotic-grid: ${e.colors.grid};`),c.push(` --semiotic-border: ${e.colors.border};`),c.push(` --semiotic-primary: ${e.colors.primary};`),c.push(` --semiotic-font-family: ${e.typography.fontFamily};`),e.colors.focus&&c.push(` --semiotic-focus: ${e.colors.focus};`),e.colors.selection&&c.push(` --semiotic-selection-color: ${e.colors.selection};`),null!=e.colors.selectionOpacity&&c.push(` --semiotic-selection-opacity: ${e.colors.selectionOpacity};`),e.colors.diverging&&c.push(` --semiotic-diverging: ${e.colors.diverging};`),(null===(a=e.tooltip)||void 0===a?void 0:a.background)&&c.push(` --semiotic-tooltip-bg: ${e.tooltip.background};`),(null===(r=e.tooltip)||void 0===r?void 0:r.text)&&c.push(` --semiotic-tooltip-text: ${e.tooltip.text};`),(null===(t=e.tooltip)||void 0===t?void 0:t.borderRadius)&&c.push(` --semiotic-tooltip-radius: ${e.tooltip.borderRadius};`),(null===(i=e.tooltip)||void 0===i?void 0:i.fontSize)&&c.push(` --semiotic-tooltip-font-size: ${e.tooltip.fontSize};`),(null===(s=e.tooltip)||void 0===s?void 0:s.shadow)&&c.push(` --semiotic-tooltip-shadow: ${e.tooltip.shadow};`),e.borderRadius&&c.push(` --semiotic-border-radius: ${e.borderRadius};`),e.colors.annotation&&c.push(` --semiotic-annotation-color: ${e.colors.annotation};`),null!=e.typography.legendSize&&c.push(` --semiotic-legend-font-size: ${e.typography.legendSize}px;`),null!=e.typography.titleFontSize&&c.push(` --semiotic-title-font-size: ${e.typography.titleFontSize}px;`),null!=e.typography.tickFontFamily&&c.push(` --semiotic-tick-font-family: ${e.typography.tickFontFamily};`),null!=e.typography.tickSize&&c.push(` --semiotic-tick-font-size: ${e.typography.tickSize}px;`),null!=e.typography.labelSize&&c.push(` --semiotic-axis-label-font-size: ${e.typography.labelSize}px;`),c.push(` --semiotic-secondary: ${e.colors.secondary||e.colors.primary};`),c.push(` --semiotic-surface: ${e.colors.surface||e.colors.background};`),e.colors.success&&c.push(` --semiotic-success: ${e.colors.success};`),e.colors.danger&&c.push(` --semiotic-danger: ${e.colors.danger};`),e.colors.warning&&c.push(` --semiotic-warning: ${e.colors.warning};`),e.colors.error&&c.push(` --semiotic-error: ${e.colors.error};`),e.colors.info&&c.push(` --semiotic-info: ${e.colors.info};`),`${o} {\n${c.join("\n")}\n}`},exports.themeToTokens=function(e){var o,a,r,t,i,s;return{semiotic:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({bg:{$value:e.colors.background,$type:"color"},text:{$value:e.colors.text,$type:"color"},"text-secondary":{$value:e.colors.textSecondary,$type:"color"},grid:{$value:e.colors.grid,$type:"color"},border:{$value:e.colors.border,$type:"color"},primary:{$value:e.colors.primary,$type:"color"},focus:{$value:e.colors.focus||e.colors.primary,$type:"color"},"font-family":{$value:e.typography.fontFamily,$type:"fontFamily"},"border-radius":{$value:e.borderRadius||"8px",$type:"dimension"},tooltip:{bg:{$value:(null===(o=e.tooltip)||void 0===o?void 0:o.background)||e.colors.background,$type:"color"},text:{$value:(null===(a=e.tooltip)||void 0===a?void 0:a.text)||e.colors.text,$type:"color"},radius:{$value:(null===(r=e.tooltip)||void 0===r?void 0:r.borderRadius)||"6px",$type:"dimension"},"font-size":{$value:(null===(t=e.tooltip)||void 0===t?void 0:t.fontSize)||"14px",$type:"dimension"},shadow:{$value:(null===(i=e.tooltip)||void 0===i?void 0:i.shadow)||"0 2px 8px rgba(0,0,0,0.15)",$type:"shadow"}},selection:{color:{$value:e.colors.selection||e.colors.primary,$type:"color"},opacity:{$value:null!==(s=e.colors.selectionOpacity)&&void 0!==s?s:.2,$type:"number"}},categorical:{$value:e.colors.categorical,$type:"color",$description:"Categorical color palette"},sequential:{$value:e.colors.sequential,$type:"string",$description:"d3-scale-chromatic sequential scheme name"}},e.colors.diverging?{diverging:{$value:e.colors.diverging,$type:"string",$description:"d3-scale-chromatic diverging scheme name"}}:{}),e.colors.annotation?{"annotation-color":{$value:e.colors.annotation,$type:"color"}}:{}),null!=e.typography.legendSize?{"legend-font-size":{$value:e.typography.legendSize+"px",$type:"dimension"}}:{}),null!=e.typography.titleFontSize?{"title-font-size":{$value:e.typography.titleFontSize+"px",$type:"dimension"}}:{}),null!=e.typography.tickFontFamily?{"tick-font-family":{$value:e.typography.tickFontFamily,$type:"fontFamily"}}:{}),null!=e.typography.tickSize?{"tick-font-size":{$value:e.typography.tickSize+"px",$type:"dimension"}}:{}),null!=e.typography.labelSize?{"axis-label-font-size":{$value:e.typography.labelSize+"px",$type:"dimension"}}:{}),{secondary:{$value:e.colors.secondary||e.colors.primary,$type:"color"},surface:{$value:e.colors.surface||e.colors.background,$type:"color"}}),e.colors.success?{success:{$value:e.colors.success,$type:"color"}}:{}),e.colors.danger?{danger:{$value:e.colors.danger,$type:"color"}}:{}),e.colors.warning?{warning:{$value:e.colors.warning,$type:"color"}}:{}),e.colors.error?{error:{$value:e.colors.error,$type:"color"}}:{}),e.colors.info?{info:{$value:e.colors.info,$type:"color"}}:{})}};
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import{jsx as e}from"react/jsx-runtime";import{useRef as o,useMemo as a,useContext as r,useCallback as i,useSyncExternalStore as t,createContext as c}from"react";function s(e){if(!e.accessibility)return e;let o=e;if(e.accessibility.colorBlindSafe&&(o=Object.assign(Object.assign({},o),{colors:Object.assign(Object.assign({},o.colors),{categorical:n})})),e.accessibility.highContrast){const e="dark"===o.mode;o=Object.assign(Object.assign({},o),{colors:Object.assign(Object.assign({},o.colors),{text:e?"#ffffff":"#000000",textSecondary:e?"#cccccc":"#333333",grid:e?"#666666":"#999999",border:e?"#888888":"#000000"})})}return o}const n=["#0072B2","#E69F00","#009E73","#CC79A7","#56B4E9","#D55E00","#F0E442","#000000"],l={mode:"light",colors:{primary:"#00a2ce",secondary:"#6c757d",categorical:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],sequential:"blues",diverging:"RdBu",background:"transparent",surface:"#ffffff",text:"#333",textSecondary:"#666",grid:"#e0e0e0",border:"#ccc",selection:"#00a2ce",selectionOpacity:.15,success:"#2ca02c",danger:"#d62728",warning:"#f0ad4e",error:"#b4181b",info:"#00a2ce"},typography:{fontFamily:"sans-serif",titleSize:16,labelSize:12,tickSize:10}},d={mode:"dark",colors:{primary:"#4fc3f7",secondary:"#90a4ae",categorical:["#4fc3f7","#ffb74d","#81c784","#ef5350","#ba68c8","#a1887f","#f06292","#90a4ae","#dce775","#4dd0e1"],sequential:"blues",diverging:"RdBu",background:"#1a1a2e",surface:"#252540",text:"#e0e0e0",textSecondary:"#aaa",grid:"#333",border:"#555",selection:"#4fc3f7",selectionOpacity:.15,success:"#81c784",danger:"#ef5350",warning:"#ffb74d",error:"#d84848",info:"#4fc3f7"},typography:{fontFamily:"sans-serif",titleSize:16,labelSize:12,tickSize:10}},f={mode:"light",colors:{primary:"#0000cc",secondary:"#333333",categorical:n,sequential:"blues",diverging:"RdBu",background:"#ffffff",surface:"#ffffff",text:"#000000",textSecondary:"#333333",grid:"#999999",border:"#000000",focus:"#0000cc",selection:"#0000cc",selectionOpacity:.1,success:"#006400",danger:"#cc0000",warning:"#b15a00",error:"#8b0000",info:"#0000cc"},typography:{fontFamily:"system-ui, sans-serif",titleSize:18,labelSize:14,tickSize:12},tooltip:{background:"#000000",text:"#ffffff",borderRadius:"4px",fontSize:"14px",shadow:"0 2px 8px rgba(0, 0, 0, 0.3)"},borderRadius:"4px"};function p(e,o){if("light"===o)return l;if("dark"===o)return d;if("high-contrast"===o)return f;if("string"==typeof o)return void 0!==console&&console.warn(`[ThemeStore] Unknown theme preset "${o}". Keeping current theme.`),e;if(o.mode&&"auto"!==o.mode){const e="dark"===o.mode?d:l;return s(Object.assign(Object.assign(Object.assign({},e),o),{colors:Object.assign(Object.assign({},e.colors),o.colors||{}),typography:Object.assign(Object.assign({},e.typography),o.typography||{})}))}return s(Object.assign(Object.assign(Object.assign({},e),o),{colors:Object.assign(Object.assign({},e.colors),o.colors||{}),typography:Object.assign(Object.assign({},e.typography),o.typography||{})}))}!function(e,o){const a=new EventTarget;let r=Object.assign(Object.assign({},e(function(e){r=Object.assign(Object.assign({},r),e(r)),a.dispatchEvent(new Event("update"))})),null!=o?o:{})}(e=>({theme:l,setTheme(o){e(e=>({theme:p(e.theme,o)}))}}));const u={mode:"light",colors:{primary:"#c9a0dc",secondary:"#b8a8c8",categorical:["#f0a0c0","#88d4ab","#b0a0e8","#f0c888"],sequential:"purples",background:"#fdf6f0",surface:"#fff5ee",text:"#4a3728",textSecondary:"#8b7355",grid:"#e8d5c4",border:"#e8d5c4",focus:"#c9a0dc",annotation:"#c9a0dc",success:"#9ad4a3",danger:"#e8869a",warning:"#f0c888",error:"#c86070",info:"#9cb8e0"},typography:{fontFamily:"Inter, system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#fff5ee",text:"#4a3728",borderRadius:"8px",shadow:"0 2px 8px rgba(0, 0, 0, 0.12)"},borderRadius:"10px"},b={mode:"dark",colors:{primary:"#c9a0dc",secondary:"#a899c0",categorical:["#f0a0c0","#88d4ab","#b0a0e8","#f0c888"],sequential:"purples",background:"#1a1525",surface:"#251e35",text:"#e8ddf0",textSecondary:"#a899c0",grid:"#3d3455",border:"#3d3455",focus:"#c9a0dc",annotation:"#c9a0dc",success:"#88d4ab",danger:"#f0a0c0",warning:"#f0c888",error:"#e87690",info:"#9cb8e0"},typography:{fontFamily:"Inter, system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#251e35",text:"#e8ddf0",borderRadius:"8px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"10px"},g={mode:"light",colors:{primary:"#2563eb",secondary:"#6b7280",categorical:["#2563eb","#0d9488","#ea580c","#6b7280"],sequential:"blues",background:"#f5f6f8",surface:"#ffffff",text:"#2c3e50",textSecondary:"#7f8c9b",grid:"#d8dce3",border:"#d8dce3",focus:"#2563eb",annotation:"#2563eb",success:"#10b981",danger:"#ef4444",warning:"#f59e0b",error:"#dc2626",info:"#2563eb"},typography:{fontFamily:"'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#ffffff",text:"#2c3e50",borderRadius:"6px",shadow:"0 2px 8px rgba(0, 0, 0, 0.12)"},borderRadius:"8px"},y={mode:"dark",colors:{primary:"#3b82f6",secondary:"#9ca3af",categorical:["#3b82f6","#14b8a6","#f97316","#9ca3af"],sequential:"blues",background:"#111827",surface:"#1f2937",text:"#f3f4f6",textSecondary:"#9ca3af",grid:"#374151",border:"#374151",focus:"#3b82f6",annotation:"#3b82f6",success:"#34d399",danger:"#f87171",warning:"#fbbf24",error:"#ef4444",info:"#60a5fa"},typography:{fontFamily:"'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#1f2937",text:"#f3f4f6",borderRadius:"6px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"8px"},m={mode:"light",colors:{primary:"#cc0000",secondary:"#666666",categorical:["#cc0000","#333333","#c8a415","#4682b4"],sequential:"reds",background:"#fafafa",surface:"#ffffff",text:"#1a1a1a",textSecondary:"#666666",grid:"#e0e0e0",border:"#e0e0e0",focus:"#cc0000",annotation:"#cc0000",success:"#556b2f",danger:"#cc0000",warning:"#c8a415",error:"#8b0000",info:"#4682b4"},typography:{fontFamily:"'Helvetica Neue', Helvetica, Arial, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#ffffff",text:"#1a1a1a",borderRadius:"2px",shadow:"0 2px 4px rgba(0, 0, 0, 0.15)"},borderRadius:"2px"},x={mode:"dark",colors:{primary:"#ff3333",secondary:"#aaaaaa",categorical:["#ff3333","#aaaaaa","#d4a843","#6aa4d4"],sequential:"reds",background:"#0a0a0a",surface:"#1a1a1a",text:"#f5f5f5",textSecondary:"#aaaaaa",grid:"#333333",border:"#333333",focus:"#ff3333",annotation:"#ff3333",success:"#7a8b5a",danger:"#ff3333",warning:"#d4a843",error:"#cc0000",info:"#6aa4d4"},typography:{fontFamily:"'Helvetica Neue', Helvetica, Arial, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#1a1a1a",text:"#f5f5f5",borderRadius:"2px",shadow:"0 2px 8px rgba(0, 0, 0, 0.5)"},borderRadius:"2px"},h={mode:"light",colors:{primary:"#8b0000",secondary:"#555555",categorical:["#8b4513","#556b2f","#4a5568","#800020"],sequential:"oranges",background:"#fffff8",surface:"#fffff8",text:"#111111",textSecondary:"#555555",grid:"#e0ddd0",border:"#e0ddd0",focus:"#8b0000",annotation:"#8b0000",success:"#556b2f",danger:"#8b0000",warning:"#b88700",error:"#6b0000",info:"#4a5568"},typography:{fontFamily:"Georgia, 'Times New Roman', serif",titleSize:16,labelSize:12,tickSize:10,tickFontFamily:"'Courier New', Courier, monospace",legendSize:11},tooltip:{background:"#fffff8",text:"#111111",borderRadius:"2px",shadow:"0 1px 3px rgba(0, 0, 0, 0.1)"},borderRadius:"0px"},S={mode:"dark",colors:{primary:"#c05050",secondary:"#a09880",categorical:["#c08050","#7a8b5a","#8090a0","#a05060"],sequential:"oranges",background:"#1c1b18",surface:"#262520",text:"#e8e4d8",textSecondary:"#a09880",grid:"#3d3c35",border:"#3d3c35",focus:"#c05050",annotation:"#c05050",success:"#7a8b5a",danger:"#c05050",warning:"#c8a060",error:"#a04040",info:"#8090a0"},typography:{fontFamily:"Georgia, 'Times New Roman', serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#262520",text:"#e8e4d8",borderRadius:"2px",shadow:"0 2px 6px rgba(0, 0, 0, 0.4)"},borderRadius:"0px"},$={mode:"light",colors:{primary:"#e45050",secondary:"#666666",categorical:["#3a86c8","#e45050","#d4a843","#888888"],sequential:"blues",background:"#ffffff",surface:"#f8f8f8",text:"#222222",textSecondary:"#666666",grid:"#d4d4d4",border:"#d4d4d4",focus:"#e45050",annotation:"#e45050",success:"#2d7a3d",danger:"#c8303a",warning:"#d4a843",error:"#a02028",info:"#3a86c8"},typography:{fontFamily:"'Franklin Gothic Medium', 'Libre Franklin', Arial, sans-serif",titleSize:18,labelSize:12,tickSize:10,tickFontFamily:"'Courier New', Courier, monospace",legendSize:11},tooltip:{background:"#f8f8f8",text:"#222222",borderRadius:"4px",shadow:"0 2px 6px rgba(0, 0, 0, 0.12)"},borderRadius:"4px"},k={mode:"dark",colors:{primary:"#ff6b6b",secondary:"#a0a0a0",categorical:["#5a9fd8","#ff6b6b","#e0c060","#aaaaaa"],sequential:"blues",background:"#141414",surface:"#1e1e1e",text:"#ededed",textSecondary:"#a0a0a0",grid:"#383838",border:"#383838",focus:"#ff6b6b",annotation:"#ff6b6b",success:"#6fba78",danger:"#ff6b6b",warning:"#e0c060",error:"#d04040",info:"#5a9fd8"},typography:{fontFamily:"'Franklin Gothic Medium', 'Libre Franklin', Arial, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#1e1e1e",text:"#ededed",borderRadius:"4px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"4px"},z={mode:"light",colors:{primary:"#8b5cf6",secondary:"#7c5a9e",categorical:["#8b5cf6","#ec4899","#06b6d4","#84cc16"],sequential:"viridis",background:"#fdf8ff",surface:"#ffffff",text:"#2d1b4e",textSecondary:"#7c5a9e",grid:"#e8d0f8",border:"#e8d0f8",focus:"#8b5cf6",annotation:"#8b5cf6",success:"#10d870",danger:"#ff4b6e",warning:"#ffaa33",error:"#e11d48",info:"#06b6d4"},typography:{fontFamily:"'Nunito', 'Poppins', system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#ffffff",text:"#2d1b4e",borderRadius:"12px",shadow:"0 4px 12px rgba(139, 92, 246, 0.15)"},borderRadius:"12px"},v={mode:"dark",colors:{primary:"#a78bfa",secondary:"#b8a0d8",categorical:["#a78bfa","#f472b6","#22d3ee","#a3e635"],sequential:"viridis",background:"#150a28",surface:"#1f1138",text:"#f0e8ff",textSecondary:"#b8a0d8",grid:"#3a2560",border:"#3a2560",focus:"#a78bfa",annotation:"#a78bfa",success:"#4ade80",danger:"#fb7185",warning:"#fbbf24",error:"#f43f5e",info:"#22d3ee"},typography:{fontFamily:"'Nunito', 'Poppins', system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#1f1138",text:"#f0e8ff",borderRadius:"12px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"12px"},w=["#6929c4","#1192e8","#005d5d","#9f1853","#fa4d56","#570408","#198038","#002d9c","#ee538b","#b28600","#009d9a","#012749","#8a3800","#a56eff"],F={danger:"#da1e28",warning:"#f1c21b",success:"#24a148",info:"#0043ce"},O={mode:"light",colors:{primary:"#0f62fe",secondary:"#525252",categorical:["#6929c4","#1192e8","#005d5d","#9f1853"],sequential:"blues",diverging:"RdBu",background:"#ffffff",surface:"#ffffff",text:"#161616",textSecondary:"#525252",grid:"#e0e0e0",border:"#e0e0e0",focus:"#0f62fe",annotation:"#0f62fe",success:"#24a148",danger:"#da1e28",warning:"#f1c21b",error:"#a2191f",info:"#0043ce"},typography:{fontFamily:"'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#ffffff",text:"#161616",borderRadius:"2px",shadow:"0 2px 6px rgba(0, 0, 0, 0.2)"},borderRadius:"0px"},j={mode:"dark",colors:{primary:"#4589ff",secondary:"#a8a8a8",categorical:["#a56eff","#33b1ff","#08bdba","#ff7eb6"],sequential:"blues",diverging:"RdBu",background:"#161616",surface:"#262626",text:"#f4f4f4",textSecondary:"#a8a8a8",grid:"#393939",border:"#393939",focus:"#4589ff",annotation:"#4589ff",success:"#42be65",danger:"#fa4d56",warning:"#f1c21b",error:"#da1e28",info:"#4589ff"},typography:{fontFamily:"'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif",titleSize:16,labelSize:12,tickSize:10},tooltip:{background:"#262626",text:"#f4f4f4",borderRadius:"2px",shadow:"0 4px 12px rgba(0, 0, 0, 0.5)"},borderRadius:"0px"},R={light:l,dark:d,"high-contrast":f,pastels:u,"pastels-dark":b,"bi-tool":g,"bi-tool-dark":y,italian:m,"italian-dark":x,tufte:h,"tufte-dark":S,journalist:$,"journalist-dark":k,playful:z,"playful-dark":v,carbon:O,"carbon-dark":j};function q(e){return R[e]}function B(e,o=":root"){var a,r,i,t,c;const s=[];return s.push(` --semiotic-bg: ${e.colors.background};`),s.push(` --semiotic-text: ${e.colors.text};`),s.push(` --semiotic-text-secondary: ${e.colors.textSecondary};`),s.push(` --semiotic-grid: ${e.colors.grid};`),s.push(` --semiotic-border: ${e.colors.border};`),s.push(` --semiotic-primary: ${e.colors.primary};`),s.push(` --semiotic-font-family: ${e.typography.fontFamily};`),e.colors.focus&&s.push(` --semiotic-focus: ${e.colors.focus};`),e.colors.selection&&s.push(` --semiotic-selection-color: ${e.colors.selection};`),null!=e.colors.selectionOpacity&&s.push(` --semiotic-selection-opacity: ${e.colors.selectionOpacity};`),e.colors.diverging&&s.push(` --semiotic-diverging: ${e.colors.diverging};`),(null===(a=e.tooltip)||void 0===a?void 0:a.background)&&s.push(` --semiotic-tooltip-bg: ${e.tooltip.background};`),(null===(r=e.tooltip)||void 0===r?void 0:r.text)&&s.push(` --semiotic-tooltip-text: ${e.tooltip.text};`),(null===(i=e.tooltip)||void 0===i?void 0:i.borderRadius)&&s.push(` --semiotic-tooltip-radius: ${e.tooltip.borderRadius};`),(null===(t=e.tooltip)||void 0===t?void 0:t.fontSize)&&s.push(` --semiotic-tooltip-font-size: ${e.tooltip.fontSize};`),(null===(c=e.tooltip)||void 0===c?void 0:c.shadow)&&s.push(` --semiotic-tooltip-shadow: ${e.tooltip.shadow};`),e.borderRadius&&s.push(` --semiotic-border-radius: ${e.borderRadius};`),e.colors.annotation&&s.push(` --semiotic-annotation-color: ${e.colors.annotation};`),null!=e.typography.legendSize&&s.push(` --semiotic-legend-font-size: ${e.typography.legendSize}px;`),null!=e.typography.titleFontSize&&s.push(` --semiotic-title-font-size: ${e.typography.titleFontSize}px;`),null!=e.typography.tickFontFamily&&s.push(` --semiotic-tick-font-family: ${e.typography.tickFontFamily};`),null!=e.typography.tickSize&&s.push(` --semiotic-tick-font-size: ${e.typography.tickSize}px;`),null!=e.typography.labelSize&&s.push(` --semiotic-axis-label-font-size: ${e.typography.labelSize}px;`),s.push(` --semiotic-secondary: ${e.colors.secondary||e.colors.primary};`),s.push(` --semiotic-surface: ${e.colors.surface||e.colors.background};`),e.colors.success&&s.push(` --semiotic-success: ${e.colors.success};`),e.colors.danger&&s.push(` --semiotic-danger: ${e.colors.danger};`),e.colors.warning&&s.push(` --semiotic-warning: ${e.colors.warning};`),e.colors.error&&s.push(` --semiotic-error: ${e.colors.error};`),e.colors.info&&s.push(` --semiotic-info: ${e.colors.info};`),`${o} {\n${s.join("\n")}\n}`}function N(e){var o,a,r,i,t,c;return{semiotic:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({bg:{$value:e.colors.background,$type:"color"},text:{$value:e.colors.text,$type:"color"},"text-secondary":{$value:e.colors.textSecondary,$type:"color"},grid:{$value:e.colors.grid,$type:"color"},border:{$value:e.colors.border,$type:"color"},primary:{$value:e.colors.primary,$type:"color"},focus:{$value:e.colors.focus||e.colors.primary,$type:"color"},"font-family":{$value:e.typography.fontFamily,$type:"fontFamily"},"border-radius":{$value:e.borderRadius||"8px",$type:"dimension"},tooltip:{bg:{$value:(null===(o=e.tooltip)||void 0===o?void 0:o.background)||e.colors.background,$type:"color"},text:{$value:(null===(a=e.tooltip)||void 0===a?void 0:a.text)||e.colors.text,$type:"color"},radius:{$value:(null===(r=e.tooltip)||void 0===r?void 0:r.borderRadius)||"6px",$type:"dimension"},"font-size":{$value:(null===(i=e.tooltip)||void 0===i?void 0:i.fontSize)||"14px",$type:"dimension"},shadow:{$value:(null===(t=e.tooltip)||void 0===t?void 0:t.shadow)||"0 2px 8px rgba(0,0,0,0.15)",$type:"shadow"}},selection:{color:{$value:e.colors.selection||e.colors.primary,$type:"color"},opacity:{$value:null!==(c=e.colors.selectionOpacity)&&void 0!==c?c:.2,$type:"number"}},categorical:{$value:e.colors.categorical,$type:"color",$description:"Categorical color palette"},sequential:{$value:e.colors.sequential,$type:"string",$description:"d3-scale-chromatic sequential scheme name"}},e.colors.diverging?{diverging:{$value:e.colors.diverging,$type:"string",$description:"d3-scale-chromatic diverging scheme name"}}:{}),e.colors.annotation?{"annotation-color":{$value:e.colors.annotation,$type:"color"}}:{}),null!=e.typography.legendSize?{"legend-font-size":{$value:e.typography.legendSize+"px",$type:"dimension"}}:{}),null!=e.typography.titleFontSize?{"title-font-size":{$value:e.typography.titleFontSize+"px",$type:"dimension"}}:{}),null!=e.typography.tickFontFamily?{"tick-font-family":{$value:e.typography.tickFontFamily,$type:"fontFamily"}}:{}),null!=e.typography.tickSize?{"tick-font-size":{$value:e.typography.tickSize+"px",$type:"dimension"}}:{}),null!=e.typography.labelSize?{"axis-label-font-size":{$value:e.typography.labelSize+"px",$type:"dimension"}}:{}),{secondary:{$value:e.colors.secondary||e.colors.primary,$type:"color"},surface:{$value:e.colors.surface||e.colors.background,$type:"color"}}),e.colors.success?{success:{$value:e.colors.success,$type:"color"}}:{}),e.colors.danger?{danger:{$value:e.colors.danger,$type:"color"}}:{}),e.colors.warning?{warning:{$value:e.colors.warning,$type:"color"}}:{}),e.colors.error?{error:{$value:e.colors.error,$type:"color"}}:{}),e.colors.info?{info:{$value:e.colors.info,$type:"color"}}:{})}}export{y as BI_TOOL_DARK,g as BI_TOOL_LIGHT,F as CARBON_ALERT,w as CARBON_CATEGORICAL_14,j as CARBON_DARK,O as CARBON_LIGHT,n as COLOR_BLIND_SAFE_CATEGORICAL,d as DARK_THEME,f as HIGH_CONTRAST_THEME,x as ITALIAN_DARK,m as ITALIAN_LIGHT,k as JOURNALIST_DARK,$ as JOURNALIST_LIGHT,l as LIGHT_THEME,b as PASTELS_DARK,u as PASTELS_LIGHT,v as PLAYFUL_DARK,z as PLAYFUL_LIGHT,R as THEME_PRESETS,S as TUFTE_DARK,h as TUFTE_LIGHT,q as resolveThemePreset,B as themeToCSS,N as themeToTokens};
2
+ import{jsx as e}from"react/jsx-runtime";import{useRef as o,useMemo as a,useContext as r,useCallback as i,useSyncExternalStore as t,createContext as c}from"react";function s(e){if(!e.accessibility)return e;let o=e;if(e.accessibility.colorBlindSafe&&(o=Object.assign(Object.assign({},o),{colors:Object.assign(Object.assign({},o.colors),{categorical:n})})),e.accessibility.highContrast){const e="dark"===o.mode;o=Object.assign(Object.assign({},o),{colors:Object.assign(Object.assign({},o.colors),{text:e?"#ffffff":"#000000",textSecondary:e?"#cccccc":"#333333",grid:e?"#666666":"#999999",border:e?"#888888":"#000000"})})}return o}const n=["#0072B2","#E69F00","#009E73","#CC79A7","#56B4E9","#D55E00","#F0E442","#000000"],l={mode:"light",colors:{primary:"#00a2ce",secondary:"#6c757d",categorical:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],sequential:"blues",diverging:"RdBu",background:"transparent",surface:"#ffffff",text:"#333",textSecondary:"#666",grid:"#e0e0e0",border:"#ccc",selection:"#00a2ce",selectionOpacity:.15,success:"#2ca02c",danger:"#d62728",warning:"#f0ad4e",error:"#b4181b",info:"#00a2ce"},typography:{fontFamily:"sans-serif",titleSize:16,labelSize:12,tickSize:12}},d={mode:"dark",colors:{primary:"#4fc3f7",secondary:"#90a4ae",categorical:["#4fc3f7","#ffb74d","#81c784","#ef5350","#ba68c8","#a1887f","#f06292","#90a4ae","#dce775","#4dd0e1"],sequential:"blues",diverging:"RdBu",background:"#1a1a2e",surface:"#252540",text:"#e0e0e0",textSecondary:"#aaa",grid:"#333",border:"#555",selection:"#4fc3f7",selectionOpacity:.15,success:"#81c784",danger:"#ef5350",warning:"#ffb74d",error:"#d84848",info:"#4fc3f7"},typography:{fontFamily:"sans-serif",titleSize:16,labelSize:12,tickSize:12}},f={mode:"light",colors:{primary:"#0000cc",secondary:"#333333",categorical:n,sequential:"blues",diverging:"RdBu",background:"#ffffff",surface:"#ffffff",text:"#000000",textSecondary:"#333333",grid:"#999999",border:"#000000",focus:"#0000cc",selection:"#0000cc",selectionOpacity:.1,success:"#006400",danger:"#cc0000",warning:"#b15a00",error:"#8b0000",info:"#0000cc"},typography:{fontFamily:"system-ui, sans-serif",titleSize:18,labelSize:14,tickSize:12},tooltip:{background:"#000000",text:"#ffffff",borderRadius:"4px",fontSize:"14px",shadow:"0 2px 8px rgba(0, 0, 0, 0.3)"},borderRadius:"4px"};function p(e,o){if("light"===o)return l;if("dark"===o)return d;if("high-contrast"===o)return f;if("string"==typeof o)return void 0!==console&&console.warn(`[ThemeStore] Unknown theme preset "${o}". Keeping current theme.`),e;if(o.mode&&"auto"!==o.mode){const e="dark"===o.mode?d:l;return s(Object.assign(Object.assign(Object.assign({},e),o),{colors:Object.assign(Object.assign({},e.colors),o.colors||{}),typography:Object.assign(Object.assign({},e.typography),o.typography||{})}))}return s(Object.assign(Object.assign(Object.assign({},e),o),{colors:Object.assign(Object.assign({},e.colors),o.colors||{}),typography:Object.assign(Object.assign({},e.typography),o.typography||{})}))}!function(e,o){const a=new EventTarget;let r=Object.assign(Object.assign({},e(function(e){r=Object.assign(Object.assign({},r),e(r)),a.dispatchEvent(new Event("update"))})),null!=o?o:{})}(e=>({theme:l,setTheme(o){e(e=>({theme:p(e.theme,o)}))}}));const u={mode:"light",colors:{primary:"#c9a0dc",secondary:"#b8a8c8",categorical:["#f0a0c0","#88d4ab","#b0a0e8","#f0c888"],sequential:"purples",background:"#fdf6f0",surface:"#fff5ee",text:"#4a3728",textSecondary:"#8b7355",grid:"#e8d5c4",border:"#e8d5c4",focus:"#c9a0dc",annotation:"#c9a0dc",success:"#9ad4a3",danger:"#e8869a",warning:"#f0c888",error:"#c86070",info:"#9cb8e0"},typography:{fontFamily:"Inter, system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#fff5ee",text:"#4a3728",borderRadius:"8px",shadow:"0 2px 8px rgba(0, 0, 0, 0.12)"},borderRadius:"10px"},b={mode:"dark",colors:{primary:"#c9a0dc",secondary:"#a899c0",categorical:["#f0a0c0","#88d4ab","#b0a0e8","#f0c888"],sequential:"purples",background:"#1a1525",surface:"#251e35",text:"#e8ddf0",textSecondary:"#a899c0",grid:"#3d3455",border:"#3d3455",focus:"#c9a0dc",annotation:"#c9a0dc",success:"#88d4ab",danger:"#f0a0c0",warning:"#f0c888",error:"#e87690",info:"#9cb8e0"},typography:{fontFamily:"Inter, system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#251e35",text:"#e8ddf0",borderRadius:"8px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"10px"},g={mode:"light",colors:{primary:"#2563eb",secondary:"#6b7280",categorical:["#2563eb","#0d9488","#ea580c","#6b7280"],sequential:"blues",background:"#f5f6f8",surface:"#ffffff",text:"#2c3e50",textSecondary:"#7f8c9b",grid:"#d8dce3",border:"#d8dce3",focus:"#2563eb",annotation:"#2563eb",success:"#10b981",danger:"#ef4444",warning:"#f59e0b",error:"#dc2626",info:"#2563eb"},typography:{fontFamily:"'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#ffffff",text:"#2c3e50",borderRadius:"6px",shadow:"0 2px 8px rgba(0, 0, 0, 0.12)"},borderRadius:"8px"},y={mode:"dark",colors:{primary:"#3b82f6",secondary:"#9ca3af",categorical:["#3b82f6","#14b8a6","#f97316","#9ca3af"],sequential:"blues",background:"#111827",surface:"#1f2937",text:"#f3f4f6",textSecondary:"#9ca3af",grid:"#374151",border:"#374151",focus:"#3b82f6",annotation:"#3b82f6",success:"#34d399",danger:"#f87171",warning:"#fbbf24",error:"#ef4444",info:"#60a5fa"},typography:{fontFamily:"'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#1f2937",text:"#f3f4f6",borderRadius:"6px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"8px"},m={mode:"light",colors:{primary:"#cc0000",secondary:"#666666",categorical:["#cc0000","#333333","#c8a415","#4682b4"],sequential:"reds",background:"#fafafa",surface:"#ffffff",text:"#1a1a1a",textSecondary:"#666666",grid:"#e0e0e0",border:"#e0e0e0",focus:"#cc0000",annotation:"#cc0000",success:"#556b2f",danger:"#cc0000",warning:"#c8a415",error:"#8b0000",info:"#4682b4"},typography:{fontFamily:"'Helvetica Neue', Helvetica, Arial, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#ffffff",text:"#1a1a1a",borderRadius:"2px",shadow:"0 2px 4px rgba(0, 0, 0, 0.15)"},borderRadius:"2px"},x={mode:"dark",colors:{primary:"#ff3333",secondary:"#aaaaaa",categorical:["#ff3333","#aaaaaa","#d4a843","#6aa4d4"],sequential:"reds",background:"#0a0a0a",surface:"#1a1a1a",text:"#f5f5f5",textSecondary:"#aaaaaa",grid:"#333333",border:"#333333",focus:"#ff3333",annotation:"#ff3333",success:"#7a8b5a",danger:"#ff3333",warning:"#d4a843",error:"#cc0000",info:"#6aa4d4"},typography:{fontFamily:"'Helvetica Neue', Helvetica, Arial, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#1a1a1a",text:"#f5f5f5",borderRadius:"2px",shadow:"0 2px 8px rgba(0, 0, 0, 0.5)"},borderRadius:"2px"},h={mode:"light",colors:{primary:"#8b0000",secondary:"#555555",categorical:["#8b4513","#556b2f","#4a5568","#800020"],sequential:"oranges",background:"#fffff8",surface:"#fffff8",text:"#111111",textSecondary:"#555555",grid:"#e0ddd0",border:"#e0ddd0",focus:"#8b0000",annotation:"#8b0000",success:"#556b2f",danger:"#8b0000",warning:"#b88700",error:"#6b0000",info:"#4a5568"},typography:{fontFamily:"Georgia, 'Times New Roman', serif",titleSize:16,labelSize:12,tickSize:12,tickFontFamily:"'Courier New', Courier, monospace",legendSize:11},tooltip:{background:"#fffff8",text:"#111111",borderRadius:"2px",shadow:"0 1px 3px rgba(0, 0, 0, 0.1)"},borderRadius:"0px"},S={mode:"dark",colors:{primary:"#c05050",secondary:"#a09880",categorical:["#c08050","#7a8b5a","#8090a0","#a05060"],sequential:"oranges",background:"#1c1b18",surface:"#262520",text:"#e8e4d8",textSecondary:"#a09880",grid:"#3d3c35",border:"#3d3c35",focus:"#c05050",annotation:"#c05050",success:"#7a8b5a",danger:"#c05050",warning:"#c8a060",error:"#a04040",info:"#8090a0"},typography:{fontFamily:"Georgia, 'Times New Roman', serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#262520",text:"#e8e4d8",borderRadius:"2px",shadow:"0 2px 6px rgba(0, 0, 0, 0.4)"},borderRadius:"0px"},$={mode:"light",colors:{primary:"#e45050",secondary:"#666666",categorical:["#3a86c8","#e45050","#d4a843","#888888"],sequential:"blues",background:"#ffffff",surface:"#f8f8f8",text:"#222222",textSecondary:"#666666",grid:"#d4d4d4",border:"#d4d4d4",focus:"#e45050",annotation:"#e45050",success:"#2d7a3d",danger:"#c8303a",warning:"#d4a843",error:"#a02028",info:"#3a86c8"},typography:{fontFamily:"'Franklin Gothic Medium', 'Libre Franklin', Arial, sans-serif",titleSize:18,labelSize:12,tickSize:12,tickFontFamily:"'Courier New', Courier, monospace",legendSize:11},tooltip:{background:"#f8f8f8",text:"#222222",borderRadius:"4px",shadow:"0 2px 6px rgba(0, 0, 0, 0.12)"},borderRadius:"4px"},k={mode:"dark",colors:{primary:"#ff6b6b",secondary:"#a0a0a0",categorical:["#5a9fd8","#ff6b6b","#e0c060","#aaaaaa"],sequential:"blues",background:"#141414",surface:"#1e1e1e",text:"#ededed",textSecondary:"#a0a0a0",grid:"#383838",border:"#383838",focus:"#ff6b6b",annotation:"#ff6b6b",success:"#6fba78",danger:"#ff6b6b",warning:"#e0c060",error:"#d04040",info:"#5a9fd8"},typography:{fontFamily:"'Franklin Gothic Medium', 'Libre Franklin', Arial, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#1e1e1e",text:"#ededed",borderRadius:"4px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"4px"},z={mode:"light",colors:{primary:"#8b5cf6",secondary:"#7c5a9e",categorical:["#8b5cf6","#ec4899","#06b6d4","#84cc16"],sequential:"viridis",background:"#fdf8ff",surface:"#ffffff",text:"#2d1b4e",textSecondary:"#7c5a9e",grid:"#e8d0f8",border:"#e8d0f8",focus:"#8b5cf6",annotation:"#8b5cf6",success:"#10d870",danger:"#ff4b6e",warning:"#ffaa33",error:"#e11d48",info:"#06b6d4"},typography:{fontFamily:"'Nunito', 'Poppins', system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#ffffff",text:"#2d1b4e",borderRadius:"12px",shadow:"0 4px 12px rgba(139, 92, 246, 0.15)"},borderRadius:"12px"},v={mode:"dark",colors:{primary:"#a78bfa",secondary:"#b8a0d8",categorical:["#a78bfa","#f472b6","#22d3ee","#a3e635"],sequential:"viridis",background:"#150a28",surface:"#1f1138",text:"#f0e8ff",textSecondary:"#b8a0d8",grid:"#3a2560",border:"#3a2560",focus:"#a78bfa",annotation:"#a78bfa",success:"#4ade80",danger:"#fb7185",warning:"#fbbf24",error:"#f43f5e",info:"#22d3ee"},typography:{fontFamily:"'Nunito', 'Poppins', system-ui, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#1f1138",text:"#f0e8ff",borderRadius:"12px",shadow:"0 4px 12px rgba(0, 0, 0, 0.4)"},borderRadius:"12px"},w=["#6929c4","#1192e8","#005d5d","#9f1853","#fa4d56","#570408","#198038","#002d9c","#ee538b","#b28600","#009d9a","#012749","#8a3800","#a56eff"],F={danger:"#da1e28",warning:"#f1c21b",success:"#24a148",info:"#0043ce"},O={mode:"light",colors:{primary:"#0f62fe",secondary:"#525252",categorical:["#6929c4","#1192e8","#005d5d","#9f1853"],sequential:"blues",diverging:"RdBu",background:"#ffffff",surface:"#ffffff",text:"#161616",textSecondary:"#525252",grid:"#e0e0e0",border:"#e0e0e0",focus:"#0f62fe",annotation:"#0f62fe",success:"#24a148",danger:"#da1e28",warning:"#f1c21b",error:"#a2191f",info:"#0043ce"},typography:{fontFamily:"'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#ffffff",text:"#161616",borderRadius:"2px",shadow:"0 2px 6px rgba(0, 0, 0, 0.2)"},borderRadius:"0px"},j={mode:"dark",colors:{primary:"#4589ff",secondary:"#a8a8a8",categorical:["#a56eff","#33b1ff","#08bdba","#ff7eb6"],sequential:"blues",diverging:"RdBu",background:"#161616",surface:"#262626",text:"#f4f4f4",textSecondary:"#a8a8a8",grid:"#393939",border:"#393939",focus:"#4589ff",annotation:"#4589ff",success:"#42be65",danger:"#fa4d56",warning:"#f1c21b",error:"#da1e28",info:"#4589ff"},typography:{fontFamily:"'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif",titleSize:16,labelSize:12,tickSize:12},tooltip:{background:"#262626",text:"#f4f4f4",borderRadius:"2px",shadow:"0 4px 12px rgba(0, 0, 0, 0.5)"},borderRadius:"0px"},R={light:l,dark:d,"high-contrast":f,pastels:u,"pastels-dark":b,"bi-tool":g,"bi-tool-dark":y,italian:m,"italian-dark":x,tufte:h,"tufte-dark":S,journalist:$,"journalist-dark":k,playful:z,"playful-dark":v,carbon:O,"carbon-dark":j};function q(e){return R[e]}function B(e,o=":root"){var a,r,i,t,c;const s=[];return s.push(` --semiotic-bg: ${e.colors.background};`),s.push(` --semiotic-text: ${e.colors.text};`),s.push(` --semiotic-text-secondary: ${e.colors.textSecondary};`),s.push(` --semiotic-grid: ${e.colors.grid};`),s.push(` --semiotic-border: ${e.colors.border};`),s.push(` --semiotic-primary: ${e.colors.primary};`),s.push(` --semiotic-font-family: ${e.typography.fontFamily};`),e.colors.focus&&s.push(` --semiotic-focus: ${e.colors.focus};`),e.colors.selection&&s.push(` --semiotic-selection-color: ${e.colors.selection};`),null!=e.colors.selectionOpacity&&s.push(` --semiotic-selection-opacity: ${e.colors.selectionOpacity};`),e.colors.diverging&&s.push(` --semiotic-diverging: ${e.colors.diverging};`),(null===(a=e.tooltip)||void 0===a?void 0:a.background)&&s.push(` --semiotic-tooltip-bg: ${e.tooltip.background};`),(null===(r=e.tooltip)||void 0===r?void 0:r.text)&&s.push(` --semiotic-tooltip-text: ${e.tooltip.text};`),(null===(i=e.tooltip)||void 0===i?void 0:i.borderRadius)&&s.push(` --semiotic-tooltip-radius: ${e.tooltip.borderRadius};`),(null===(t=e.tooltip)||void 0===t?void 0:t.fontSize)&&s.push(` --semiotic-tooltip-font-size: ${e.tooltip.fontSize};`),(null===(c=e.tooltip)||void 0===c?void 0:c.shadow)&&s.push(` --semiotic-tooltip-shadow: ${e.tooltip.shadow};`),e.borderRadius&&s.push(` --semiotic-border-radius: ${e.borderRadius};`),e.colors.annotation&&s.push(` --semiotic-annotation-color: ${e.colors.annotation};`),null!=e.typography.legendSize&&s.push(` --semiotic-legend-font-size: ${e.typography.legendSize}px;`),null!=e.typography.titleFontSize&&s.push(` --semiotic-title-font-size: ${e.typography.titleFontSize}px;`),null!=e.typography.tickFontFamily&&s.push(` --semiotic-tick-font-family: ${e.typography.tickFontFamily};`),null!=e.typography.tickSize&&s.push(` --semiotic-tick-font-size: ${e.typography.tickSize}px;`),null!=e.typography.labelSize&&s.push(` --semiotic-axis-label-font-size: ${e.typography.labelSize}px;`),s.push(` --semiotic-secondary: ${e.colors.secondary||e.colors.primary};`),s.push(` --semiotic-surface: ${e.colors.surface||e.colors.background};`),e.colors.success&&s.push(` --semiotic-success: ${e.colors.success};`),e.colors.danger&&s.push(` --semiotic-danger: ${e.colors.danger};`),e.colors.warning&&s.push(` --semiotic-warning: ${e.colors.warning};`),e.colors.error&&s.push(` --semiotic-error: ${e.colors.error};`),e.colors.info&&s.push(` --semiotic-info: ${e.colors.info};`),`${o} {\n${s.join("\n")}\n}`}function N(e){var o,a,r,i,t,c;return{semiotic:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({bg:{$value:e.colors.background,$type:"color"},text:{$value:e.colors.text,$type:"color"},"text-secondary":{$value:e.colors.textSecondary,$type:"color"},grid:{$value:e.colors.grid,$type:"color"},border:{$value:e.colors.border,$type:"color"},primary:{$value:e.colors.primary,$type:"color"},focus:{$value:e.colors.focus||e.colors.primary,$type:"color"},"font-family":{$value:e.typography.fontFamily,$type:"fontFamily"},"border-radius":{$value:e.borderRadius||"8px",$type:"dimension"},tooltip:{bg:{$value:(null===(o=e.tooltip)||void 0===o?void 0:o.background)||e.colors.background,$type:"color"},text:{$value:(null===(a=e.tooltip)||void 0===a?void 0:a.text)||e.colors.text,$type:"color"},radius:{$value:(null===(r=e.tooltip)||void 0===r?void 0:r.borderRadius)||"6px",$type:"dimension"},"font-size":{$value:(null===(i=e.tooltip)||void 0===i?void 0:i.fontSize)||"14px",$type:"dimension"},shadow:{$value:(null===(t=e.tooltip)||void 0===t?void 0:t.shadow)||"0 2px 8px rgba(0,0,0,0.15)",$type:"shadow"}},selection:{color:{$value:e.colors.selection||e.colors.primary,$type:"color"},opacity:{$value:null!==(c=e.colors.selectionOpacity)&&void 0!==c?c:.2,$type:"number"}},categorical:{$value:e.colors.categorical,$type:"color",$description:"Categorical color palette"},sequential:{$value:e.colors.sequential,$type:"string",$description:"d3-scale-chromatic sequential scheme name"}},e.colors.diverging?{diverging:{$value:e.colors.diverging,$type:"string",$description:"d3-scale-chromatic diverging scheme name"}}:{}),e.colors.annotation?{"annotation-color":{$value:e.colors.annotation,$type:"color"}}:{}),null!=e.typography.legendSize?{"legend-font-size":{$value:e.typography.legendSize+"px",$type:"dimension"}}:{}),null!=e.typography.titleFontSize?{"title-font-size":{$value:e.typography.titleFontSize+"px",$type:"dimension"}}:{}),null!=e.typography.tickFontFamily?{"tick-font-family":{$value:e.typography.tickFontFamily,$type:"fontFamily"}}:{}),null!=e.typography.tickSize?{"tick-font-size":{$value:e.typography.tickSize+"px",$type:"dimension"}}:{}),null!=e.typography.labelSize?{"axis-label-font-size":{$value:e.typography.labelSize+"px",$type:"dimension"}}:{}),{secondary:{$value:e.colors.secondary||e.colors.primary,$type:"color"},surface:{$value:e.colors.surface||e.colors.background,$type:"color"}}),e.colors.success?{success:{$value:e.colors.success,$type:"color"}}:{}),e.colors.danger?{danger:{$value:e.colors.danger,$type:"color"}}:{}),e.colors.warning?{warning:{$value:e.colors.warning,$type:"color"}}:{}),e.colors.error?{error:{$value:e.colors.error,$type:"color"}}:{}),e.colors.info?{info:{$value:e.colors.info,$type:"color"}}:{})}}export{y as BI_TOOL_DARK,g as BI_TOOL_LIGHT,F as CARBON_ALERT,w as CARBON_CATEGORICAL_14,j as CARBON_DARK,O as CARBON_LIGHT,n as COLOR_BLIND_SAFE_CATEGORICAL,d as DARK_THEME,f as HIGH_CONTRAST_THEME,x as ITALIAN_DARK,m as ITALIAN_LIGHT,k as JOURNALIST_DARK,$ as JOURNALIST_LIGHT,l as LIGHT_THEME,b as PASTELS_DARK,u as PASTELS_LIGHT,v as PLAYFUL_DARK,z as PLAYFUL_LIGHT,R as THEME_PRESETS,S as TUFTE_DARK,h as TUFTE_LIGHT,q as resolveThemePreset,B as themeToCSS,N as themeToTokens};
@@ -17,6 +17,14 @@ export { createHatchPattern } from "./components/charts/shared/hatchPattern";
17
17
  export type { HatchPatternOptions } from "./components/charts/shared/hatchPattern";
18
18
  export { validateProps } from "./components/charts/shared/validateProps";
19
19
  export { diagnoseConfig } from "./components/charts/shared/diagnoseConfig";
20
+ export { auditAccessibility, formatAccessibilityAudit, accessibilityCaveats } from "./components/charts/shared/auditAccessibility";
21
+ export { describeChart, resolveCommunicativeAct, communicativeActForIntent } from "./components/ai/describeChart";
22
+ export type { DescribeChartResult, DescribeChartOptions, DescribeLevel, CommunicativeAct, DescribeCapabilityContext } from "./components/ai/describeChart";
23
+ export { buildNavigationTree, flattenVisible, countNodes } from "./components/ai/navigationTree";
24
+ export type { NavTreeNode, NavTreeRole, BuildNavigationTreeOptions } from "./components/ai/navigationTree";
25
+ export { buildReaderGrounding } from "./components/ai/readerGrounding";
26
+ export type { ChartReaderGrounding, ChartReaderGroundingOptions, ChartReaderGroundingIntent } from "./components/ai/readerGrounding";
27
+ export type { A11yPrinciple, A11yStatus, A11yFinding, AccessibilityAuditResult, AuditAccessibilityOptions } from "./components/charts/shared/auditAccessibility";
20
28
  export { getHitRadius } from "./components/stream/hitTestUtils";
21
29
  export { toConfig, fromConfig, toURL, fromURL, copyConfig, configToJSX } from "./components/export/chartConfig";
22
30
  export type { ChartConfig, ToConfigOptions, CopyFormat } from "./components/export/chartConfig";