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
@@ -0,0 +1,55 @@
1
+ /**
2
+ * semiotic/value — Focal-value visualizations.
3
+ *
4
+ * Charts that render *one* number rather than a coordinate space. At
5
+ * row counts of 1–3, a chart is usually the wrong abstraction — the
6
+ * scale-aware suggestion engine routes those datasets here.
7
+ *
8
+ * v1 ships `BigNumber` as a plain React component. The component is
9
+ * deliberately chart-dependency-free: consumers compose their own
10
+ * Semiotic chart (or any ReactNode) into the `trendSlot` (wide /
11
+ * rectangular charts, e.g. LineChart / AreaChart in sparkline mode) or
12
+ * `chartSlot` (square charts, e.g. DonutChart / PieChart / Scatterplot
13
+ * / Treemap). The slot context exposes the resolved threshold colour
14
+ * + sentiment + push buffer so embedded charts can theme-link.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * import { BigNumber } from "semiotic/value"
19
+ * import { LineChart } from "semiotic/xy"
20
+ * import { DonutChart } from "semiotic/ordinal"
21
+ *
22
+ * <BigNumber
23
+ * value={1284900}
24
+ * label="Q3 Revenue"
25
+ * format="currency"
26
+ * comparison={{ value: 980000, label: "vs Q2" }}
27
+ * target={{ value: 1500000, label: "Q3 plan" }}
28
+ * thresholds={[
29
+ * { at: -Infinity, level: "danger" },
30
+ * { at: 1_000_000, level: "warning" },
31
+ * { at: 1_300_000, level: "success" },
32
+ * ]}
33
+ * trendSlot={(ctx) => (
34
+ * <LineChart
35
+ * data={recentMonths.map((y, x) => ({ x, y }))}
36
+ * xAccessor="x" yAccessor="y"
37
+ * mode="sparkline"
38
+ * width={260} height={32}
39
+ * color={ctx.color}
40
+ * />
41
+ * )}
42
+ * chartSlot={(ctx) => (
43
+ * <DonutChart
44
+ * data={revenueByRegion}
45
+ * categoryAccessor="region" valueAccessor="revenue"
46
+ * width={120} height={120}
47
+ * />
48
+ * )}
49
+ * />
50
+ * ```
51
+ */
52
+ export { BigNumber, default as BigNumberDefault } from "./components/charts/value/BigNumber";
53
+ export type { BigNumberProps, BigNumberHandle, BigNumberMode, BigNumberLevel, BigNumberDirection, BigNumberSentiment, BigNumberFormat, BigNumberThreshold, BigNumberComparison, BigNumberTarget, BigNumberPushInput, BigNumberSlot, BigNumberSlotContext } from "./components/charts/value/types";
54
+ export { buildFormatter, formatSignedDelta, formatDeltaPercent, formatDuration } from "./components/charts/value/formatting";
55
+ export { resolveThreshold, colorForLevel, buildSparklinePath } from "./components/charts/value/thresholdSparkline";
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ "use strict";const e=require("react/jsx-runtime"),t=require("react");function n(e){if(e&&e.__esModule)return e;const t=Object.create(null);if(e)for(const n in e)if("default"!==n){const i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}return t.default=e,Object.freeze(t)}const i=n(t);function r({componentName:t,message:n,diagnosticHint:i,width:r,height:l}){return e.jsx("div",{role:"alert",style:{width:r,height:Math.max(l,120),display:"flex",alignItems:"center",justifyContent:"center",border:"1px dashed rgba(128, 128, 128, 0.4)",borderRadius:8,background:"rgba(128, 128, 128, 0.04)",padding:24,boxSizing:"border-box"},children:e.jsxs("div",{style:{textAlign:"center",maxWidth:400},children:[e.jsx("div",{style:{fontSize:13,fontWeight:600,color:"rgba(128, 128, 128, 0.7)",marginBottom:6,fontFamily:"monospace"},children:t}),e.jsx("div",{style:{fontSize:14,color:"rgba(128, 128, 128, 0.9)",lineHeight:1.5},children:n}),i&&e.jsx("div",{"data-testid":"semiotic-diagnostic-hint",style:{marginTop:10,padding:"8px 12px",background:"rgba(128, 128, 128, 0.06)",borderRadius:4,fontSize:12,color:"rgba(128, 128, 128, 0.8)",fontFamily:"monospace",textAlign:"left",whiteSpace:"pre-wrap",lineHeight:1.6},children:i})]})})}class l extends i.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){var n,i;null===(i=(n=this.props).onError)||void 0===i||i.call(n,e,t)}render(){if(this.state.error){const{fallback:t}=this.props,n=this.state.error;return"function"==typeof t?t(n):void 0!==t?t:e.jsx(r,{componentName:"ChartErrorBoundary",message:n.message||"An unexpected error occurred while rendering this chart.",width:600,height:400})}return this.props.children}}function o({componentName:t,width:n,height:i,children:o}){return e.jsx(l,{fallback:l=>e.jsx(r,{componentName:t,message:l.message,width:n,height:i}),children:o})}function a(e,t={}){var n,i,r,l,o,a,u;if("function"==typeof e)return e;const c=null!==(n=t.locale)&&void 0!==n?n:"en-US",d=null!==(i=t.currency)&&void 0!==i?i:"USD";if("currency"===e){const e=null!==(r=t.precision)&&void 0!==r?r:2,n=new Intl.NumberFormat(c,{style:"currency",currency:d,maximumFractionDigits:e,minimumFractionDigits:e});return e=>n.format(e)}if("percent"===e){const e=null!==(l=t.precision)&&void 0!==l?l:1,n=new Intl.NumberFormat(c,{style:"percent",maximumFractionDigits:e,minimumFractionDigits:0});return e=>n.format(e)}if("compact"===e){const e=null!==(o=t.precision)&&void 0!==o?o:1,n=new Intl.NumberFormat(c,{notation:"compact",maximumFractionDigits:e,minimumFractionDigits:0});return e=>n.format(e)}if("duration"===e)return e=>s(e);const m=null!==(a=t.precision)&&void 0!==a?a:0,h=new Intl.NumberFormat(c,{notation:null!==(u=t.notation)&&void 0!==u?u:"standard",maximumFractionDigits:m,minimumFractionDigits:0});return e=>h.format(e)}function s(e){if(!Number.isFinite(e))return e+"";const t=0>e?"-":"",n=Math.abs(e);if(1e3>n)return`${t}${Math.round(n)}ms`;const i=n/1e3;if(60>i)return`${t}${r=i,Math.round(100*r)/100+""}s`;var r;const l=i/60;if(60>l){const e=Math.floor(l),n=Math.round(i-60*e);return 0===n?`${t}${e}m`:`${t}${e}m ${n}s`}const o=l/60;if(24>o){const e=Math.floor(o),n=Math.round(l-60*e);return 0===n?`${t}${e}h`:`${t}${e}h ${n}m`}const a=Math.floor(o/24),s=Math.round(o-24*a);return 0===s?`${t}${a}d`:`${t}${a}d ${s}h`}function u(e,t,n){return`${null!=t?t:""}${e}${null!=n?n:""}`}function c(e,t){return Number.isFinite(e)?0===e?t(0):`${e>0?"+":"−"}${t(Math.abs(e))}`:""}function d(e,t,n="en-US",i=1){if(!Number.isFinite(e)||!Number.isFinite(t))return null;if(0===e)return null;const r=(t-e)/Math.abs(e);return new Intl.NumberFormat(n,{style:"percent",maximumFractionDigits:i,minimumFractionDigits:0,signDisplay:"exceptZero"}).format(r)}function m(e,t){if(!t||0===t.length)return null;if(!Number.isFinite(e))return null;const n=t.filter(e=>Number.isFinite(e.at)||e.at===-1/0).slice().sort((e,t)=>e.at-t.at);let i=null;for(const t of n){if(t.at>e)break;i=t}return i}function h(e,t){return t||("neutral"===e?"var(--semiotic-text, currentColor)":`var(--semiotic-${e}, currentColor)`)}"undefined"!=typeof process&&process;const b={tile:{width:280,height:184,align:"start",labelSize:13,captionSize:11,valueSize:40,deltaSize:13,padding:{top:14,right:16,bottom:14,left:16},background:"var(--semiotic-surface, transparent)",border:!0,showHeader:!0,showDelta:!0,showTrend:!0,showChart:!0,chartSize:44},presentation:{width:540,height:320,align:"center",labelSize:18,captionSize:14,valueSize:96,deltaSize:18,padding:{top:32,right:32,bottom:32,left:32},background:"var(--semiotic-surface, transparent)",border:!0,showHeader:!0,showDelta:!0,showTrend:!0,showChart:!0,chartSize:80},inline:{width:void 0,height:void 0,align:"inherit",labelSize:0,captionSize:0,valueSize:0,deltaSize:0,padding:{top:0,right:0,bottom:0,left:0},background:"transparent",border:!1,showHeader:!1,showDelta:!0,showTrend:!1,showChart:!1,chartSize:0},thumbnail:{width:96,height:56,align:"center",labelSize:0,captionSize:0,valueSize:22,deltaSize:0,padding:{top:4,right:6,bottom:4,left:6},background:"transparent",border:!1,showHeader:!1,showDelta:!1,showTrend:!1,showChart:!1,chartSize:0}};function f(e,t,n){return void 0===e?n:"function"==typeof e?e(t):e}function g(e){return"positive"===e?"var(--semiotic-success, currentColor)":"negative"===e?"var(--semiotic-danger, currentColor)":"var(--semiotic-text-secondary, currentColor)"}function p(e){return"positive"===e?"▲":"negative"===e?"▼":"■"}const v=t.forwardRef((n,i)=>{var r,l,s,v;const{value:x,label:w,caption:N,format:S,locale:j,currency:F,precision:$,prefix:_,suffix:z,unit:M,comparison:D,target:C,delta:k,deltaFormat:I,showDeltaPercent:L,direction:R,sentiment:O,thresholds:E,windowSize:B=60,mode:P="tile",align:T,width:H,height:W,padding:A,emphasis:V,color:q,background:U,borderColor:Z,borderRadius:X,className:Y,style:G,animate:J,stalenessThreshold:K,staleLabel:Q,headerSlot:ee,valueSlot:te,deltaSlot:ne,trendSlot:ie,chartSlot:re,chartSize:le,footerSlot:oe,onClick:ae,onObservation:se,chartId:ue,description:ce,summary:de,loading:me,loadingContent:he,emptyContent:be}=n,fe=null!==(r=b[P])&&void 0!==r?r:b.tile,ge=null!=T?T:fe.align,pe=null!=H?H:fe.width,ve=null!=W?W:fe.height,xe=function(){const[e,n]=t.useState(()=>!("undefined"==typeof window||!window.matchMedia)&&window.matchMedia("(prefers-reduced-motion: reduce)").matches);return t.useEffect(()=>{if("undefined"==typeof window||!window.matchMedia)return;const e=window.matchMedia("(prefers-reduced-motion: reduce)");return n(e.matches),function(e,t){if("function"==typeof e.addEventListener)return e.addEventListener("change",t),()=>e.removeEventListener("change",t);const n=e;return n.addListener(t),()=>n.removeListener(t)}(e,e=>n(e.matches))},[]),e}(),[ye,we]=t.useState([]),[Ne,Se]=t.useState(null),[je,Fe]=t.useState(null),[$e,_e]=t.useState(null),ze=t.useRef([]),Me=t.useRef(null),De=t.useRef(x);t.useEffect(()=>{De.current=x},[x]);const Ce=t.useRef(B);t.useEffect(()=>{Ce.current=B},[B]);const ke=t.useCallback(e=>{const t="number"==typeof e?{value:e,time:Date.now()}:Object.assign({time:Date.now()},e),n="number"==typeof t.time?t.time:t.time instanceof Date?t.time.getTime():Date.now();return Object.assign(Object.assign({},t),{time:n})},[]),Ie=t.useCallback(e=>{if(0===e.length)return;const t=Ce.current,n=e.map(ke);let i=ze.current.concat(n);i.length>t&&(i=i.slice(i.length-t)),ze.current=i;const r=n[n.length-1];Me.current=r.value,we(i),Se(r.value);for(let e=n.length-1;e>=0;e--){const t=n[e].comparison;if(null!=t){Fe(t);break}}_e(r.time)},[ke]),Le=t.useCallback(e=>Ie([e]),[Ie]);t.useImperativeHandle(i,()=>({push:e=>Le(e),pushMany:e=>Ie(e),clear:()=>{ze.current=[],Me.current=null,we([]),Se(null),Fe(null),_e(null)},getValue:()=>{var e;return null!==(e=Me.current)&&void 0!==e?e:Number.isFinite(De.current)?De.current:null},getData:()=>ze.current.slice()}),[Le,Ie]);const Re=null!=Ne?Ne:x,Oe=null==Re||"number"!=typeof Re||!Number.isFinite(Re),Ee=t.useMemo(()=>a(null!=S?S:"number",{locale:j,currency:F,precision:$}),[S,j,F,$]),Be=t.useMemo(()=>{var e;return a(null!==(e=null!=I?I:S)&&void 0!==e?e:"number",{locale:j,currency:F,precision:null==I&&null==S?0:$})},[I,S,j,F,$]),Pe=null!=J&&J,Te=t.useRef(("object"==typeof Pe&&!1===Pe.intro||!Pe)&&Number.isFinite(x)?x:0),He=function(e,n,i){const[r,l]=t.useState(e),o=t.useRef(null),a=t.useRef(e),s=t.useRef(0),u=t.useRef(e);return t.useEffect(()=>{if(!Number.isFinite(e))return void l(e);if(!n||i)return void l(e);const t="object"==typeof n&&n.duration?n.duration:300,c="object"==typeof n&&"linear"===n.easing?"linear":"ease-out";a.current=r,u.current=e,s.current="undefined"!=typeof performance?performance.now():Date.now();const d="linear"===c?e=>e:e=>1-Math.pow(1-e,3),m=e=>{const n=Math.min(1,(e-s.current)/t),i=d(n);l(a.current+(u.current-a.current)*i),1>n?o.current=requestAnimationFrame(m):(o.current=null,l(u.current))};return o.current=requestAnimationFrame(m),()=>{null!=o.current&&cancelAnimationFrame(o.current),o.current=null}},[e,n,i]),r}(Number.isFinite(Re)?Re:Te.current,Pe,xe),We=Pe?He:Number.isFinite(Re)?Re:0,Ae=t.useMemo(()=>m(Number.isFinite(Re)?Re:NaN,E),[Re,E]),Ve=Ae?Ae.level:"neutral",qe=null!=q?q:h(Ve,null==Ae?void 0:Ae.color),Ue=null!==(l=null!=je?je:null==D?void 0:D.value)&&void 0!==l?l:null,Ze=null!=k?k:null!=Ue&&Number.isFinite(Re)?Re-Ue:null,Xe=function(e,t,n){if(n&&"auto"!==n)return n;if(null==e||0===e||!Number.isFinite(e))return"neutral";const i=null!=t?t:"higher-is-better";return"neutral"===i?"neutral":("higher-is-better"===i?e>0:0>e)?"positive":"negative"}(Ze,null!==(v=null!==(s=null==D?void 0:D.direction)&&void 0!==s?s:null==C?void 0:C.direction)&&void 0!==v?v:R,O),Ye=null!=Ze&&Number.isFinite(Ze)?c(Ze,Be):null,Ge=null!=Ue&&Number.isFinite(Re)&&(null==L||L)?d(Ue,Re,j):null,Je=t.useMemo(()=>{if(!C||!Number.isFinite(Re)||!C.value)return null;const e=Re/C.value;return new Intl.NumberFormat(null!=j?j:"en-US",{style:"percent",maximumFractionDigits:0}).format(e)},[C,Re,j]),Ke=t.useMemo(()=>{var e,t;return a(null!==(t=null!==(e=null==C?void 0:C.format)&&void 0!==e?e:S)&&void 0!==t?t:"number",{locale:j,currency:F,precision:$})},[null==C?void 0:C.format,S,j,F,$]),Qe=t.useMemo(()=>{var e,t;return a(null!==(t=null!==(e=null==D?void 0:D.format)&&void 0!==e?e:S)&&void 0!==t?t:"number",{locale:j,currency:F,precision:$})},[null==D?void 0:D.format,S,j,F,$]),et=function(e,n){const[i,r]=t.useState(!1);return t.useEffect(()=>{if(!n||null==e)return void r(!1);const t=()=>{const t=Date.now()-e;r(t>=n)};t();const i=setInterval(t,Math.max(250,Math.floor(n/4)));return()=>clearInterval(i)},[e,n]),i}($e,K),tt=Number.isFinite(We)?u(Ee(We),_,z):"",nt={value:Oe?null:Re,formattedValue:tt,level:Ve,color:qe,delta:Ze,deltaFormatted:Ye,deltaPercent:Ge,sentiment:Xe,isStale:et,pushBuffer:ye},it=null!=ce?ce:function(e){var t;const n=[];if(e.label&&n.push(e.label+":"),n.push(e.unit?`${e.formattedValue} ${e.unit}`:e.formattedValue),e.deltaFormatted){const t=e.delta;n.push(`${null!=t&&Number.isFinite(t)&&0!==t?t>0?"up":"down":"change"} ${e.deltaFormatted}${e.deltaPercent?` (${e.deltaPercent})`:""}${e.comparisonLabel?" from "+e.comparisonLabel:""}`)}return e.targetPercent&&e.targetLabel&&n.push(`${e.targetPercent} of ${e.targetLabel}`),e.stale&&n.push(null!==(t=e.staleLabel)&&void 0!==t?t:"stale"),n.join(", ")}({label:w,formattedValue:Number.isFinite(Re)?u(Ee(Re),_,z):"",unit:M,comparisonLabel:null==D?void 0:D.label,delta:Ze,deltaFormatted:Ye,deltaPercent:Ge,targetLabel:null==C?void 0:C.label,targetPercent:Je,stale:et,staleLabel:Q}),rt="number"==typeof A?{top:A,right:A,bottom:A,left:A}:Object.assign(Object.assign({},fe.padding),null!=A?A:{}),lt="end"===ge?"flex-end":"center"===ge?"center":"start"===ge?"flex-start":"inherit",ot=Object.assign({position:"relative",boxSizing:"border-box",width:pe,height:ve,padding:`${rt.top}px ${rt.right}px ${rt.bottom}px ${rt.left}px`,background:null!=U?U:fe.background,border:fe.border?"1px solid "+(null!=Z?Z:"var(--semiotic-border, #e2e2e2)"):void 0,borderRadius:"number"==typeof X?X+"px":null!=X?X:"var(--semiotic-border-radius, 8px)",display:"inline"===P?"inline-flex":"flex",flexDirection:"column",alignItems:"inherit"===lt?void 0:lt,textAlign:ge,fontFamily:"var(--semiotic-font-family, system-ui, sans-serif)",color:"var(--semiotic-text, #111)",opacity:et?.55:1,transition:"opacity 240ms ease-out",gridColumn:"primary"===V?"span 2":void 0,cursor:ae?"pointer":void 0},G),at=t.useCallback(e=>{const t=e.currentTarget.getBoundingClientRect(),n=e.clientX-t.left,i=e.clientY-t.top,r={value:Oe?NaN:Re,level:Ve,delta:Ze};ae&&ae(r,{x:n,y:i}),se&&se({type:"click",datum:r,x:n,y:i,chartType:"BigNumber",chartId:ue,timestamp:Date.now()})},[ae,se,ue,Oe,Re,Ve,Ze]),st="inline"===P?"span":"div",ut=["semiotic-bignumber","semiotic-bignumber--mode-"+P,"semiotic-bignumber--level-"+Ve,"semiotic-bignumber--sentiment-"+Xe,et?"semiotic-bignumber--stale":null,Y].filter(Boolean).join(" "),ct="positive"===Xe?"up":"negative"===Xe?"down":"flat";if(me){const t="number"==typeof pe?pe:280,n="number"==typeof ve?ve:160;return e.jsx(st,{role:"status","aria-live":"polite","aria-busy":"true",className:ut+" semiotic-bignumber--loading",style:Object.assign(Object.assign({},ot),{opacity:1}),children:null!=he?he:e.jsx(y,{width:t,height:n,mode:P})})}return Oe?!1===be?null:e.jsx(st,{role:"status","aria-label":w?w+": no value":"no value",className:ut+" semiotic-bignumber--empty",style:Object.assign(Object.assign({},ot),{color:"var(--semiotic-text-secondary, #999)",fontSize:13,alignItems:"center",justifyContent:"center"}),children:null!=be?be:"—"}):e.jsx(o,{componentName:"BigNumber",width:"number"==typeof pe?pe:280,height:"number"==typeof ve?ve:160,children:e.jsxs(st,{role:"group","aria-label":it,"data-chart":"BigNumber","data-mode":P,"data-level":Ve,"data-stale":et?"true":void 0,"data-sentiment":Xe,className:ut,style:ot,onClick:ae||se?at:void 0,children:[fe.showHeader&&(w||N||ee)?e.jsx("div",{className:"semiotic-bignumber__header",style:{display:"flex",flexDirection:"column",gap:2,marginBottom:6,paddingRight:fe.showChart&&null!=re?(null!=le?le:fe.chartSize)+8:0},children:f(ee,nt,e.jsxs(e.Fragment,{children:[w?e.jsx("span",{className:"semiotic-bignumber__label",style:{fontSize:fe.labelSize,color:"var(--semiotic-text-secondary, #6b7280)",fontWeight:500,letterSpacing:.2},children:w}):null,N?e.jsx("span",{className:"semiotic-bignumber__caption",style:{fontSize:fe.captionSize,color:"var(--semiotic-text-secondary, #9ca3af)"},children:N}):null]}))}):null,f(te,nt,e.jsxs(st,{className:"semiotic-bignumber__value semiotic-bignumber__value--"+Ve,style:{display:"inline"===P?"inline-flex":"flex",alignItems:"baseline",gap:6,fontVariantNumeric:"tabular-nums",fontWeight:600,color:qe,fontSize:fe.valueSize||void 0,lineHeight:1.05},children:[e.jsx("span",{className:"semiotic-bignumber__value-text",children:tt}),M?e.jsx("span",{className:"semiotic-bignumber__unit",style:{fontSize:fe.valueSize?Math.max(11,Math.round(.32*fe.valueSize)):"0.75em",color:"var(--semiotic-text-secondary, #9ca3af)",fontWeight:500},children:M}):null]})),fe.showDelta&&(Ye||C||D)?e.jsx(st,{className:"semiotic-bignumber__delta semiotic-bignumber__delta--"+ct,style:{display:"inline"===P?"inline-flex":"flex",flexWrap:"wrap",gap:8,alignItems:"baseline",marginTop:"inline"===P?0:6,fontSize:fe.deltaSize||void 0,color:"var(--semiotic-text-secondary, #6b7280)"},children:f(ne,nt,e.jsxs(e.Fragment,{children:[Ye?e.jsxs("span",{className:"semiotic-bignumber__delta-row semiotic-bignumber__delta-row--"+ct,style:{display:"inline-flex",alignItems:"center",gap:4,color:g(Xe),fontWeight:600},children:[e.jsx("span",{"aria-hidden":"true",className:"semiotic-bignumber__arrow semiotic-bignumber__arrow--"+ct,children:p(Xe)}),e.jsx("span",{className:"semiotic-bignumber__delta-amount",children:Ye}),Ge?e.jsxs("span",{className:"semiotic-bignumber__delta-percent",style:{fontWeight:500},children:["(",Ge,")"]}):null]}):null,(null==D?void 0:D.label)?e.jsx("span",{className:"semiotic-bignumber__comparison-label",children:D.label}):null,C?e.jsxs("span",{className:"semiotic-bignumber__target",style:{display:"inline-flex",alignItems:"baseline",gap:4},children:[Ye||(null==D?void 0:D.label)?e.jsx("span",{"aria-hidden":"true",className:"semiotic-bignumber__separator",children:"·"}):null,e.jsx("span",{className:"semiotic-bignumber__target-percent",style:{fontWeight:500,color:"var(--semiotic-text, #111)"},children:Je}),e.jsxs("span",{className:"semiotic-bignumber__target-value",children:["of ",Ke(C.value),C.label?" "+C.label:""]})]}):null]}))}):null,fe.showChart&&null!=re?e.jsx("div",{className:"semiotic-bignumber__chart",style:{position:"absolute",top:rt.top,right:rt.right,width:null!=le?le:fe.chartSize,height:null!=le?le:fe.chartSize,display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none"},children:e.jsx("div",{style:{pointerEvents:"auto",lineHeight:0},children:f(re,nt,null)})}):null,fe.showTrend&&null!=ie?e.jsx("div",{className:"semiotic-bignumber__trend",style:{position:"absolute",left:rt.left,right:rt.right,bottom:rt.bottom+(null!=oe?28:0)},children:f(ie,nt,null)}):null,null!=oe?e.jsx(st,{className:"semiotic-bignumber__footer",style:{position:"absolute",left:rt.left,right:rt.right,bottom:rt.bottom,fontSize:fe.deltaSize||void 0,color:"var(--semiotic-text-secondary, #9ca3af)"},children:f(oe,nt,null)}):null,de?e.jsx("span",{style:{position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0,0,0,0)",whiteSpace:"nowrap",border:0},children:de}):null,e.jsx("span",{"aria-hidden":"true",style:{display:"none"},children:null!=Ue?Qe(Ue):null})]})})});v.displayName="BigNumber";const x=v;function y(t){const n=Math.floor(.45*t.width),i=Math.floor(.6*t.width),r=(t,n)=>e.jsx("div",{style:{width:t,height:n,background:"var(--semiotic-border, #e0e0e0)",borderRadius:4,opacity:.55}});return e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:10,justifyContent:"center",width:"100%",height:"100%"},children:["thumbnail"!==t.mode&&"inline"!==t.mode?r(n,10):null,r(i,"presentation"===t.mode?48:28),"tile"===t.mode||"presentation"===t.mode?r(Math.floor(.35*t.width),8):null]})}exports.BigNumber=x,exports.BigNumberDefault=x,exports.buildFormatter=a,exports.buildSparklinePath=function(e,t){var n,i,r;const l=null!==(n=t.padding)&&void 0!==n?n:1;if(0===e.length)return{line:"",area:"",points:[]};if(1===e.length){const e=t.width/2,n=t.height/2;return{line:`M${e},${n}`,area:"",points:[{x:e,y:n}]}}const o=null!==(i=t.yMin)&&void 0!==i?i:e.reduce((e,t)=>Number.isFinite(t)&&e>t?t:e,1/0),a=(null!==(r=t.yMax)&&void 0!==r?r:e.reduce((e,t)=>Number.isFinite(t)&&t>e?t:e,-1/0))-o||1,s=Math.max(0,t.width-2*l),u=Math.max(0,t.height-2*l),c=1===e.length?0:s/(e.length-1),d=[];let m="";for(let t=0;e.length>t;t++){const n=e[t];if(!Number.isFinite(n))continue;const i=l+t*c,r=l+u-(n-o)/a*u;m+=`${0===d.length?"M":"L"}${i.toFixed(2)},${r.toFixed(2)}`,d.push({x:i,y:r})}if(0===d.length)return{line:"",area:"",points:[]};const h=d[0],b=l+u;return{line:m,area:`${m} L${d[d.length-1].x.toFixed(2)},${b.toFixed(2)} L${h.x.toFixed(2)},${b.toFixed(2)} Z`,points:d}},exports.colorForLevel=h,exports.formatDeltaPercent=d,exports.formatDuration=s,exports.formatSignedDelta=c,exports.resolveThreshold=m;
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import*as i from"react";import{useState as r,useEffect as l,forwardRef as o,useRef as a,useCallback as s,useImperativeHandle as u,useMemo as c}from"react";function d({componentName:n,message:i,diagnosticHint:r,width:l,height:o}){return e("div",{role:"alert",style:{width:l,height:Math.max(o,120),display:"flex",alignItems:"center",justifyContent:"center",border:"1px dashed rgba(128, 128, 128, 0.4)",borderRadius:8,background:"rgba(128, 128, 128, 0.04)",padding:24,boxSizing:"border-box"},children:t("div",{style:{textAlign:"center",maxWidth:400},children:[e("div",{style:{fontSize:13,fontWeight:600,color:"rgba(128, 128, 128, 0.7)",marginBottom:6,fontFamily:"monospace"},children:n}),e("div",{style:{fontSize:14,color:"rgba(128, 128, 128, 0.9)",lineHeight:1.5},children:i}),r&&e("div",{"data-testid":"semiotic-diagnostic-hint",style:{marginTop:10,padding:"8px 12px",background:"rgba(128, 128, 128, 0.06)",borderRadius:4,fontSize:12,color:"rgba(128, 128, 128, 0.8)",fontFamily:"monospace",textAlign:"left",whiteSpace:"pre-wrap",lineHeight:1.6},children:r})]})})}class m extends i.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){var n,i;null===(i=(n=this.props).onError)||void 0===i||i.call(n,e,t)}render(){if(this.state.error){const{fallback:t}=this.props,n=this.state.error;return"function"==typeof t?t(n):void 0!==t?t:e(d,{componentName:"ChartErrorBoundary",message:n.message||"An unexpected error occurred while rendering this chart.",width:600,height:400})}return this.props.children}}function h({componentName:t,width:n,height:i,children:r}){return e(m,{fallback:r=>e(d,{componentName:t,message:r.message,width:n,height:i}),children:r})}function b(e,t={}){var n,i,r,l,o,a,s;if("function"==typeof e)return e;const u=null!==(n=t.locale)&&void 0!==n?n:"en-US",c=null!==(i=t.currency)&&void 0!==i?i:"USD";if("currency"===e){const e=null!==(r=t.precision)&&void 0!==r?r:2,n=new Intl.NumberFormat(u,{style:"currency",currency:c,maximumFractionDigits:e,minimumFractionDigits:e});return e=>n.format(e)}if("percent"===e){const e=null!==(l=t.precision)&&void 0!==l?l:1,n=new Intl.NumberFormat(u,{style:"percent",maximumFractionDigits:e,minimumFractionDigits:0});return e=>n.format(e)}if("compact"===e){const e=null!==(o=t.precision)&&void 0!==o?o:1,n=new Intl.NumberFormat(u,{notation:"compact",maximumFractionDigits:e,minimumFractionDigits:0});return e=>n.format(e)}if("duration"===e)return e=>g(e);const d=null!==(a=t.precision)&&void 0!==a?a:0,m=new Intl.NumberFormat(u,{notation:null!==(s=t.notation)&&void 0!==s?s:"standard",maximumFractionDigits:d,minimumFractionDigits:0});return e=>m.format(e)}function g(e){if(!Number.isFinite(e))return e+"";const t=0>e?"-":"",n=Math.abs(e);if(1e3>n)return`${t}${Math.round(n)}ms`;const i=n/1e3;if(60>i)return`${t}${r=i,Math.round(100*r)/100+""}s`;var r;const l=i/60;if(60>l){const e=Math.floor(l),n=Math.round(i-60*e);return 0===n?`${t}${e}m`:`${t}${e}m ${n}s`}const o=l/60;if(24>o){const e=Math.floor(o),n=Math.round(l-60*e);return 0===n?`${t}${e}h`:`${t}${e}h ${n}m`}const a=Math.floor(o/24),s=Math.round(o-24*a);return 0===s?`${t}${a}d`:`${t}${a}d ${s}h`}function p(e,t,n){return`${null!=t?t:""}${e}${null!=n?n:""}`}function f(e,t){return Number.isFinite(e)?0===e?t(0):`${e>0?"+":"−"}${t(Math.abs(e))}`:""}function v(e,t,n="en-US",i=1){if(!Number.isFinite(e)||!Number.isFinite(t))return null;if(0===e)return null;const r=(t-e)/Math.abs(e);return new Intl.NumberFormat(n,{style:"percent",maximumFractionDigits:i,minimumFractionDigits:0,signDisplay:"exceptZero"}).format(r)}function y(e,t){if(!t||0===t.length)return null;if(!Number.isFinite(e))return null;const n=t.filter(e=>Number.isFinite(e.at)||e.at===-1/0).slice().sort((e,t)=>e.at-t.at);let i=null;for(const t of n){if(t.at>e)break;i=t}return i}function w(e,t){return t||("neutral"===e?"var(--semiotic-text, currentColor)":`var(--semiotic-${e}, currentColor)`)}function x(e,t){var n,i,r;const l=null!==(n=t.padding)&&void 0!==n?n:1;if(0===e.length)return{line:"",area:"",points:[]};if(1===e.length){const e=t.width/2,n=t.height/2;return{line:`M${e},${n}`,area:"",points:[{x:e,y:n}]}}const o=null!==(i=t.yMin)&&void 0!==i?i:e.reduce((e,t)=>Number.isFinite(t)&&e>t?t:e,1/0),a=(null!==(r=t.yMax)&&void 0!==r?r:e.reduce((e,t)=>Number.isFinite(t)&&t>e?t:e,-1/0))-o||1,s=Math.max(0,t.width-2*l),u=Math.max(0,t.height-2*l),c=1===e.length?0:s/(e.length-1),d=[];let m="";for(let t=0;e.length>t;t++){const n=e[t];if(!Number.isFinite(n))continue;const i=l+t*c,r=l+u-(n-o)/a*u;m+=`${0===d.length?"M":"L"}${i.toFixed(2)},${r.toFixed(2)}`,d.push({x:i,y:r})}if(0===d.length)return{line:"",area:"",points:[]};const h=d[0],b=l+u;return{line:m,area:`${m} L${d[d.length-1].x.toFixed(2)},${b.toFixed(2)} L${h.x.toFixed(2)},${b.toFixed(2)} Z`,points:d}}"undefined"!=typeof process&&process;const N={tile:{width:280,height:184,align:"start",labelSize:13,captionSize:11,valueSize:40,deltaSize:13,padding:{top:14,right:16,bottom:14,left:16},background:"var(--semiotic-surface, transparent)",border:!0,showHeader:!0,showDelta:!0,showTrend:!0,showChart:!0,chartSize:44},presentation:{width:540,height:320,align:"center",labelSize:18,captionSize:14,valueSize:96,deltaSize:18,padding:{top:32,right:32,bottom:32,left:32},background:"var(--semiotic-surface, transparent)",border:!0,showHeader:!0,showDelta:!0,showTrend:!0,showChart:!0,chartSize:80},inline:{width:void 0,height:void 0,align:"inherit",labelSize:0,captionSize:0,valueSize:0,deltaSize:0,padding:{top:0,right:0,bottom:0,left:0},background:"transparent",border:!1,showHeader:!1,showDelta:!0,showTrend:!1,showChart:!1,chartSize:0},thumbnail:{width:96,height:56,align:"center",labelSize:0,captionSize:0,valueSize:22,deltaSize:0,padding:{top:4,right:6,bottom:4,left:6},background:"transparent",border:!1,showHeader:!1,showDelta:!1,showTrend:!1,showChart:!1,chartSize:0}};function F(e,t,n){return void 0===e?n:"function"==typeof e?e(t):e}function S(e){return"positive"===e?"var(--semiotic-success, currentColor)":"negative"===e?"var(--semiotic-danger, currentColor)":"var(--semiotic-text-secondary, currentColor)"}function $(e){return"positive"===e?"▲":"negative"===e?"▼":"■"}const _=o((i,o)=>{var d,m,g,x;const{value:_,label:z,caption:M,format:C,locale:j,currency:I,precision:k,prefix:L,suffix:B,unit:O,comparison:T,target:H,delta:W,deltaFormat:E,showDeltaPercent:P,direction:A,sentiment:R,thresholds:V,windowSize:U=60,mode:q="tile",align:Z,width:X,height:Y,padding:G,emphasis:J,color:K,background:Q,borderColor:ee,borderRadius:te,className:ne,style:ie,animate:re,stalenessThreshold:le,staleLabel:oe,headerSlot:ae,valueSlot:se,deltaSlot:ue,trendSlot:ce,chartSlot:de,chartSize:me,footerSlot:he,onClick:be,onObservation:ge,chartId:pe,description:fe,summary:ve,loading:ye,loadingContent:we,emptyContent:xe}=i,Ne=null!==(d=N[q])&&void 0!==d?d:N.tile,Fe=null!=Z?Z:Ne.align,Se=null!=X?X:Ne.width,$e=null!=Y?Y:Ne.height,_e=function(){const[e,t]=r(()=>!("undefined"==typeof window||!window.matchMedia)&&window.matchMedia("(prefers-reduced-motion: reduce)").matches);return l(()=>{if("undefined"==typeof window||!window.matchMedia)return;const e=window.matchMedia("(prefers-reduced-motion: reduce)");return t(e.matches),function(e,t){if("function"==typeof e.addEventListener)return e.addEventListener("change",t),()=>e.removeEventListener("change",t);const n=e;return n.addListener(t),()=>n.removeListener(t)}(e,e=>t(e.matches))},[]),e}(),[ze,De]=r([]),[Me,Ce]=r(null),[je,Ie]=r(null),[ke,Le]=r(null),Be=a([]),Oe=a(null),Te=a(_);l(()=>{Te.current=_},[_]);const He=a(U);l(()=>{He.current=U},[U]);const We=s(e=>{const t="number"==typeof e?{value:e,time:Date.now()}:Object.assign({time:Date.now()},e),n="number"==typeof t.time?t.time:t.time instanceof Date?t.time.getTime():Date.now();return Object.assign(Object.assign({},t),{time:n})},[]),Ee=s(e=>{if(0===e.length)return;const t=He.current,n=e.map(We);let i=Be.current.concat(n);i.length>t&&(i=i.slice(i.length-t)),Be.current=i;const r=n[n.length-1];Oe.current=r.value,De(i),Ce(r.value);for(let e=n.length-1;e>=0;e--){const t=n[e].comparison;if(null!=t){Ie(t);break}}Le(r.time)},[We]),Pe=s(e=>Ee([e]),[Ee]);u(o,()=>({push:e=>Pe(e),pushMany:e=>Ee(e),clear:()=>{Be.current=[],Oe.current=null,De([]),Ce(null),Ie(null),Le(null)},getValue:()=>{var e;return null!==(e=Oe.current)&&void 0!==e?e:Number.isFinite(Te.current)?Te.current:null},getData:()=>Be.current.slice()}),[Pe,Ee]);const Ae=null!=Me?Me:_,Re=null==Ae||"number"!=typeof Ae||!Number.isFinite(Ae),Ve=c(()=>b(null!=C?C:"number",{locale:j,currency:I,precision:k}),[C,j,I,k]),Ue=c(()=>{var e;return b(null!==(e=null!=E?E:C)&&void 0!==e?e:"number",{locale:j,currency:I,precision:null==E&&null==C?0:k})},[E,C,j,I,k]),qe=null!=re&&re,Ze=a(("object"==typeof qe&&!1===qe.intro||!qe)&&Number.isFinite(_)?_:0),Xe=function(e,t,n){const[i,o]=r(e),s=a(null),u=a(e),c=a(0),d=a(e);return l(()=>{if(!Number.isFinite(e))return void o(e);if(!t||n)return void o(e);const r="object"==typeof t&&t.duration?t.duration:300,l="object"==typeof t&&"linear"===t.easing?"linear":"ease-out";u.current=i,d.current=e,c.current="undefined"!=typeof performance?performance.now():Date.now();const a="linear"===l?e=>e:e=>1-Math.pow(1-e,3),m=e=>{const t=Math.min(1,(e-c.current)/r),n=a(t);o(u.current+(d.current-u.current)*n),1>t?s.current=requestAnimationFrame(m):(s.current=null,o(d.current))};return s.current=requestAnimationFrame(m),()=>{null!=s.current&&cancelAnimationFrame(s.current),s.current=null}},[e,t,n]),i}(Number.isFinite(Ae)?Ae:Ze.current,qe,_e),Ye=qe?Xe:Number.isFinite(Ae)?Ae:0,Ge=c(()=>y(Number.isFinite(Ae)?Ae:NaN,V),[Ae,V]),Je=Ge?Ge.level:"neutral",Ke=null!=K?K:w(Je,null==Ge?void 0:Ge.color),Qe=null!==(m=null!=je?je:null==T?void 0:T.value)&&void 0!==m?m:null,et=null!=W?W:null!=Qe&&Number.isFinite(Ae)?Ae-Qe:null,tt=function(e,t,n){if(n&&"auto"!==n)return n;if(null==e||0===e||!Number.isFinite(e))return"neutral";const i=null!=t?t:"higher-is-better";return"neutral"===i?"neutral":("higher-is-better"===i?e>0:0>e)?"positive":"negative"}(et,null!==(x=null!==(g=null==T?void 0:T.direction)&&void 0!==g?g:null==H?void 0:H.direction)&&void 0!==x?x:A,R),nt=null!=et&&Number.isFinite(et)?f(et,Ue):null,it=null!=Qe&&Number.isFinite(Ae)&&(null==P||P)?v(Qe,Ae,j):null,rt=c(()=>{if(!H||!Number.isFinite(Ae)||!H.value)return null;const e=Ae/H.value;return new Intl.NumberFormat(null!=j?j:"en-US",{style:"percent",maximumFractionDigits:0}).format(e)},[H,Ae,j]),lt=c(()=>{var e,t;return b(null!==(t=null!==(e=null==H?void 0:H.format)&&void 0!==e?e:C)&&void 0!==t?t:"number",{locale:j,currency:I,precision:k})},[null==H?void 0:H.format,C,j,I,k]),ot=c(()=>{var e,t;return b(null!==(t=null!==(e=null==T?void 0:T.format)&&void 0!==e?e:C)&&void 0!==t?t:"number",{locale:j,currency:I,precision:k})},[null==T?void 0:T.format,C,j,I,k]),at=function(e,t){const[n,i]=r(!1);return l(()=>{if(!t||null==e)return void i(!1);const n=()=>{const n=Date.now()-e;i(n>=t)};n();const r=setInterval(n,Math.max(250,Math.floor(t/4)));return()=>clearInterval(r)},[e,t]),n}(ke,le),st=Number.isFinite(Ye)?p(Ve(Ye),L,B):"",ut={value:Re?null:Ae,formattedValue:st,level:Je,color:Ke,delta:et,deltaFormatted:nt,deltaPercent:it,sentiment:tt,isStale:at,pushBuffer:ze},ct=null!=fe?fe:function(e){var t;const n=[];if(e.label&&n.push(e.label+":"),n.push(e.unit?`${e.formattedValue} ${e.unit}`:e.formattedValue),e.deltaFormatted){const t=e.delta;n.push(`${null!=t&&Number.isFinite(t)&&0!==t?t>0?"up":"down":"change"} ${e.deltaFormatted}${e.deltaPercent?` (${e.deltaPercent})`:""}${e.comparisonLabel?" from "+e.comparisonLabel:""}`)}return e.targetPercent&&e.targetLabel&&n.push(`${e.targetPercent} of ${e.targetLabel}`),e.stale&&n.push(null!==(t=e.staleLabel)&&void 0!==t?t:"stale"),n.join(", ")}({label:z,formattedValue:Number.isFinite(Ae)?p(Ve(Ae),L,B):"",unit:O,comparisonLabel:null==T?void 0:T.label,delta:et,deltaFormatted:nt,deltaPercent:it,targetLabel:null==H?void 0:H.label,targetPercent:rt,stale:at,staleLabel:oe}),dt="number"==typeof G?{top:G,right:G,bottom:G,left:G}:Object.assign(Object.assign({},Ne.padding),null!=G?G:{}),mt="end"===Fe?"flex-end":"center"===Fe?"center":"start"===Fe?"flex-start":"inherit",ht=Object.assign({position:"relative",boxSizing:"border-box",width:Se,height:$e,padding:`${dt.top}px ${dt.right}px ${dt.bottom}px ${dt.left}px`,background:null!=Q?Q:Ne.background,border:Ne.border?"1px solid "+(null!=ee?ee:"var(--semiotic-border, #e2e2e2)"):void 0,borderRadius:"number"==typeof te?te+"px":null!=te?te:"var(--semiotic-border-radius, 8px)",display:"inline"===q?"inline-flex":"flex",flexDirection:"column",alignItems:"inherit"===mt?void 0:mt,textAlign:Fe,fontFamily:"var(--semiotic-font-family, system-ui, sans-serif)",color:"var(--semiotic-text, #111)",opacity:at?.55:1,transition:"opacity 240ms ease-out",gridColumn:"primary"===J?"span 2":void 0,cursor:be?"pointer":void 0},ie),bt=s(e=>{const t=e.currentTarget.getBoundingClientRect(),n=e.clientX-t.left,i=e.clientY-t.top,r={value:Re?NaN:Ae,level:Je,delta:et};be&&be(r,{x:n,y:i}),ge&&ge({type:"click",datum:r,x:n,y:i,chartType:"BigNumber",chartId:pe,timestamp:Date.now()})},[be,ge,pe,Re,Ae,Je,et]),gt="inline"===q?"span":"div",pt=["semiotic-bignumber","semiotic-bignumber--mode-"+q,"semiotic-bignumber--level-"+Je,"semiotic-bignumber--sentiment-"+tt,at?"semiotic-bignumber--stale":null,ne].filter(Boolean).join(" "),ft="positive"===tt?"up":"negative"===tt?"down":"flat";if(ye){const t="number"==typeof Se?Se:280,n="number"==typeof $e?$e:160;return e(gt,{role:"status","aria-live":"polite","aria-busy":"true",className:pt+" semiotic-bignumber--loading",style:Object.assign(Object.assign({},ht),{opacity:1}),children:null!=we?we:e(D,{width:t,height:n,mode:q})})}return Re?!1===xe?null:e(gt,{role:"status","aria-label":z?z+": no value":"no value",className:pt+" semiotic-bignumber--empty",style:Object.assign(Object.assign({},ht),{color:"var(--semiotic-text-secondary, #999)",fontSize:13,alignItems:"center",justifyContent:"center"}),children:null!=xe?xe:"—"}):e(h,{componentName:"BigNumber",width:"number"==typeof Se?Se:280,height:"number"==typeof $e?$e:160,children:t(gt,{role:"group","aria-label":ct,"data-chart":"BigNumber","data-mode":q,"data-level":Je,"data-stale":at?"true":void 0,"data-sentiment":tt,className:pt,style:ht,onClick:be||ge?bt:void 0,children:[Ne.showHeader&&(z||M||ae)?e("div",{className:"semiotic-bignumber__header",style:{display:"flex",flexDirection:"column",gap:2,marginBottom:6,paddingRight:Ne.showChart&&null!=de?(null!=me?me:Ne.chartSize)+8:0},children:F(ae,ut,t(n,{children:[z?e("span",{className:"semiotic-bignumber__label",style:{fontSize:Ne.labelSize,color:"var(--semiotic-text-secondary, #6b7280)",fontWeight:500,letterSpacing:.2},children:z}):null,M?e("span",{className:"semiotic-bignumber__caption",style:{fontSize:Ne.captionSize,color:"var(--semiotic-text-secondary, #9ca3af)"},children:M}):null]}))}):null,F(se,ut,t(gt,{className:"semiotic-bignumber__value semiotic-bignumber__value--"+Je,style:{display:"inline"===q?"inline-flex":"flex",alignItems:"baseline",gap:6,fontVariantNumeric:"tabular-nums",fontWeight:600,color:Ke,fontSize:Ne.valueSize||void 0,lineHeight:1.05},children:[e("span",{className:"semiotic-bignumber__value-text",children:st}),O?e("span",{className:"semiotic-bignumber__unit",style:{fontSize:Ne.valueSize?Math.max(11,Math.round(.32*Ne.valueSize)):"0.75em",color:"var(--semiotic-text-secondary, #9ca3af)",fontWeight:500},children:O}):null]})),Ne.showDelta&&(nt||H||T)?e(gt,{className:"semiotic-bignumber__delta semiotic-bignumber__delta--"+ft,style:{display:"inline"===q?"inline-flex":"flex",flexWrap:"wrap",gap:8,alignItems:"baseline",marginTop:"inline"===q?0:6,fontSize:Ne.deltaSize||void 0,color:"var(--semiotic-text-secondary, #6b7280)"},children:F(ue,ut,t(n,{children:[nt?t("span",{className:"semiotic-bignumber__delta-row semiotic-bignumber__delta-row--"+ft,style:{display:"inline-flex",alignItems:"center",gap:4,color:S(tt),fontWeight:600},children:[e("span",{"aria-hidden":"true",className:"semiotic-bignumber__arrow semiotic-bignumber__arrow--"+ft,children:$(tt)}),e("span",{className:"semiotic-bignumber__delta-amount",children:nt}),it?t("span",{className:"semiotic-bignumber__delta-percent",style:{fontWeight:500},children:["(",it,")"]}):null]}):null,(null==T?void 0:T.label)?e("span",{className:"semiotic-bignumber__comparison-label",children:T.label}):null,H?t("span",{className:"semiotic-bignumber__target",style:{display:"inline-flex",alignItems:"baseline",gap:4},children:[nt||(null==T?void 0:T.label)?e("span",{"aria-hidden":"true",className:"semiotic-bignumber__separator",children:"·"}):null,e("span",{className:"semiotic-bignumber__target-percent",style:{fontWeight:500,color:"var(--semiotic-text, #111)"},children:rt}),t("span",{className:"semiotic-bignumber__target-value",children:["of ",lt(H.value),H.label?" "+H.label:""]})]}):null]}))}):null,Ne.showChart&&null!=de?e("div",{className:"semiotic-bignumber__chart",style:{position:"absolute",top:dt.top,right:dt.right,width:null!=me?me:Ne.chartSize,height:null!=me?me:Ne.chartSize,display:"flex",alignItems:"center",justifyContent:"center",pointerEvents:"none"},children:e("div",{style:{pointerEvents:"auto",lineHeight:0},children:F(de,ut,null)})}):null,Ne.showTrend&&null!=ce?e("div",{className:"semiotic-bignumber__trend",style:{position:"absolute",left:dt.left,right:dt.right,bottom:dt.bottom+(null!=he?28:0)},children:F(ce,ut,null)}):null,null!=he?e(gt,{className:"semiotic-bignumber__footer",style:{position:"absolute",left:dt.left,right:dt.right,bottom:dt.bottom,fontSize:Ne.deltaSize||void 0,color:"var(--semiotic-text-secondary, #9ca3af)"},children:F(he,ut,null)}):null,ve?e("span",{style:{position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0,0,0,0)",whiteSpace:"nowrap",border:0},children:ve}):null,e("span",{"aria-hidden":"true",style:{display:"none"},children:null!=Qe?ot(Qe):null})]})})});_.displayName="BigNumber";const z=_;function D(n){const i=Math.floor(.45*n.width),r=Math.floor(.6*n.width),l=(t,n)=>e("div",{style:{width:t,height:n,background:"var(--semiotic-border, #e0e0e0)",borderRadius:4,opacity:.55}});return t("div",{style:{display:"flex",flexDirection:"column",gap:10,justifyContent:"center",width:"100%",height:"100%"},children:["thumbnail"!==n.mode&&"inline"!==n.mode?l(i,10):null,l(r,"presentation"===n.mode?48:28),"tile"===n.mode||"presentation"===n.mode?l(Math.floor(.35*n.width),8):null]})}export{z as BigNumber,z as BigNumberDefault,b as buildFormatter,x as buildSparklinePath,w as colorForLevel,v as formatDeltaPercent,g as formatDuration,f as formatSignedDelta,y as resolveThreshold};
@@ -28,7 +28,7 @@ export type { ScatterplotProps } from "./components/charts/xy/Scatterplot";
28
28
  export type { ConnectedScatterplotProps } from "./components/charts/xy/ConnectedScatterplot";
29
29
  export type { BubbleChartProps } from "./components/charts/xy/BubbleChart";
30
30
  export type { HeatmapProps } from "./components/charts/xy/Heatmap";
31
- export type { QuadrantChartProps } from "./components/charts/xy/QuadrantChart";
31
+ export type { QuadrantChartProps, QuadrantsConfig, QuadrantsConfigOverride, QuadrantConfig, CenterlineStyle } from "./components/charts/xy/QuadrantChart";
32
32
  export type { MultiAxisLineChartProps } from "./components/charts/xy/MultiAxisLineChart";
33
33
  export type { CandlestickChartProps } from "./components/charts/xy/CandlestickChart";
34
34
  export type { XYCustomChartProps } from "./components/charts/custom/XYCustomChart";
@@ -25,7 +25,7 @@ import { RealtimeWaterfallChart } from "./components/charts/realtime/RealtimeWat
25
25
  import { RealtimeHeatmap } from "./components/charts/realtime/RealtimeHeatmap";
26
26
  export { StreamXYFrame, StreamOrdinalFrame, StreamNetworkFrame, Scatterplot, ConnectedScatterplot, LineChart, AreaChart, DifferenceChart, StackedAreaChart, Heatmap, BubbleChart, BarChart, StackedBarChart, LikertChart, SwarmPlot, BoxPlot, Histogram, ViolinPlot, RidgelinePlot, DotPlot, ForceDirectedGraph, ChordDiagram, SankeyDiagram, ProcessSankey, TreeDiagram, PieChart, DonutChart, GaugeChart, FunnelChart, GroupedBarChart, SwimlaneChart, Treemap, CirclePack, OrbitDiagram, ScatterplotMatrix, MinimapChart, QuadrantChart, MultiAxisLineChart, CandlestickChart, XYCustomChart, NetworkCustomChart, OrdinalCustomChart, LinkedCharts, ThemeProvider, useTheme, exportChart, toConfig, fromConfig, toURL, fromURL, copyConfig, configToJSX, serializeSelections, deserializeSelections, fromVegaLite, ChartErrorBoundary, ChartContainer, ChartGrid, CategoryColorProvider, useCategoryColors, ContextLayout, DetailsPanel, Tooltip, MultiLineTooltip, normalizeTooltip, RingBuffer, IncrementalExtent, RealtimeLineChart, RealtimeTemporalHistogram, RealtimeHistogram, TemporalHistogram, RealtimeSwarmChart, RealtimeWaterfallChart, RealtimeHeatmap, createHatchPattern };
27
27
  export type { LegendLayout } from "./components/types/legendTypes";
28
- export { ScatterplotProps, ConnectedScatterplotProps, LineChartProps, AreaChartProps, SemanticGradientStop, DifferenceChartProps, StackedAreaChartProps, HeatmapProps, BubbleChartProps, BarChartProps, StackedBarChartProps, LikertChartProps, SwarmPlotProps, BoxPlotProps, HistogramProps, ViolinPlotProps, DotPlotProps, PieChartProps, DonutChartProps, GaugeChartProps, GaugeThreshold, FunnelChartProps, GroupedBarChartProps, SwimlaneChartProps, RidgelinePlotProps, OrbitDiagramProps, OrbitNode, ForceDirectedGraphProps, ChordDiagramProps, SankeyDiagramProps, ProcessSankeyProps, ProcessSankeyTick, TreeDiagramProps, TreemapProps, CirclePackProps, ScatterplotMatrixProps, MinimapChartProps, MinimapConfig, QuadrantChartProps, MultiAxisLineChartProps, MultiAxisSeriesConfig, CandlestickChartProps, QuadrantsConfig, QuadrantConfig, CenterlineStyle, BaseChartProps, AxisConfig, Accessor, ChartAccessor, ChartMode } from "./components/charts";
28
+ export { ScatterplotProps, ConnectedScatterplotProps, LineChartProps, AreaChartProps, SemanticGradientStop, DifferenceChartProps, StackedAreaChartProps, HeatmapProps, BubbleChartProps, BarChartProps, StackedBarChartProps, LikertChartProps, SwarmPlotProps, BoxPlotProps, HistogramProps, ViolinPlotProps, DotPlotProps, PieChartProps, DonutChartProps, GaugeChartProps, GaugeThreshold, FunnelChartProps, GroupedBarChartProps, SwimlaneChartProps, RidgelinePlotProps, OrbitDiagramProps, OrbitNode, ForceDirectedGraphProps, ChordDiagramProps, SankeyDiagramProps, ProcessSankeyProps, ProcessSankeyTick, TreeDiagramProps, TreemapProps, CirclePackProps, ScatterplotMatrixProps, MinimapChartProps, MinimapConfig, QuadrantChartProps, MultiAxisLineChartProps, MultiAxisSeriesConfig, CandlestickChartProps, QuadrantsConfig, QuadrantsConfigOverride, QuadrantConfig, CenterlineStyle, BaseChartProps, AxisConfig, Accessor, ChartAccessor, ChartMode } from "./components/charts";
29
29
  export type { StreamXYFrameProps, StreamXYFrameHandle, StreamChartType, RuntimeMode, SceneNode, Changeset, StreamScales, StreamLayout, CurveType, CanvasRendererFn, XYFrameAxisConfig, BandConfig } from "./components/stream/types";
30
30
  export type { StreamRendererFn } from "./components/stream/renderers/types";
31
31
  export type { StreamOrdinalFrameProps, StreamOrdinalFrameHandle, OrdinalChartType, OrdinalScales, OrdinalSceneNode } from "./components/stream/ordinalTypes";
@@ -44,6 +44,12 @@ export { COLOR_BLIND_SAFE_CATEGORICAL } from "./components/store/ThemeStore";
44
44
  export { themeToCSS, themeToTokens, resolveThemePreset, THEME_PRESETS, CARBON_CATEGORICAL_14, CARBON_ALERT } from "./components/semiotic-themes";
45
45
  export type { ThemePresetName } from "./components/semiotic-themes";
46
46
  export type { ChartErrorBoundaryProps } from "./components/ChartErrorBoundary";
47
+ export { AccessibleNavTree } from "./components/AccessibleNavTree";
48
+ export type { AccessibleNavTreeProps } from "./components/AccessibleNavTree";
49
+ export { buildNavigationTree } from "./components/ai/navigationTree";
50
+ export type { NavTreeNode, NavTreeRole, BuildNavigationTreeOptions } from "./components/ai/navigationTree";
51
+ export { useNavigationSync } from "./components/ai/useNavigationSync";
52
+ export type { UseNavigationSyncOptions, UseNavigationSyncResult } from "./components/ai/useNavigationSync";
47
53
  export type { ChartContainerProps, ChartContainerHandle } from "./components/ChartContainer";
48
54
  export type { ChartGridProps } from "./components/ChartGrid";
49
55
  export type { CategoryColorMap, CategoryColorProviderProps } from "./components/CategoryColors";
@@ -62,3 +68,4 @@ export type { RealtimeTemporalHistogramProps, RealtimeHistogramProps, TemporalHi
62
68
  export type { RealtimeSwarmChartProps } from "./components/charts/realtime/RealtimeSwarmChart";
63
69
  export type { RealtimeWaterfallChartProps } from "./components/charts/realtime/RealtimeWaterfallChart";
64
70
  export type { RealtimeHeatmapProps } from "./components/charts/realtime/RealtimeHeatmap";
71
+ export type { AnnotationProvenance, AnnotationSource, AnnotationActorKind, AnnotationBasis, AnnotationLifecycle, AnnotationFreshness, AnnotationStatus, AnnotationAnchor, Annotated, } from "./components/ai/annotationProvenance";