@gravitee/graphene-charts 2.48.1 → 2.49.0-json-schema-form-context.fc0a461

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.
@@ -0,0 +1,38 @@
1
+ import { MetricTrend, MetricTrendSentiment } from '../Metric';
2
+ import * as React from 'react';
3
+ export interface BarMeterProps extends React.ComponentProps<'div'> {
4
+ /** Human-readable label. */
5
+ readonly label: string;
6
+ /** Pre-formatted display value (e.g. "$222.88", "57ms"). */
7
+ readonly formattedValue: string;
8
+ /** Fill ratio from 0 to 1. */
9
+ readonly ratio: number;
10
+ /** CSS color for the bar fill. */
11
+ readonly color: string;
12
+ /** Secondary text below the bar. */
13
+ readonly detail?: string;
14
+ /** Icon rendered before the label. */
15
+ readonly icon?: React.ComponentType<{
16
+ className?: string;
17
+ }>;
18
+ /** Variation indicator shown next to the value. */
19
+ readonly trend?: MetricTrend;
20
+ /** How to color the trend direction. @default 'higher-is-better' */
21
+ readonly trendSentiment?: MetricTrendSentiment;
22
+ /** Threshold marker position as a ratio (0–1) of the track width. */
23
+ readonly threshold?: number;
24
+ /** 1-based rank shown as a badge before the label. */
25
+ readonly rank?: number;
26
+ /** Reduce vertical spacing/padding for a denser layout. */
27
+ readonly compact?: boolean;
28
+ /** Animate the bar on mount. */
29
+ readonly animated?: boolean;
30
+ /** Whether this item is visually highlighted (hovered). */
31
+ readonly highlighted?: boolean;
32
+ /** Whether another item is highlighted (dims this one). */
33
+ readonly dimmed?: boolean;
34
+ /** Interactive — shows pointer cursor and hover effects. */
35
+ readonly interactive?: boolean;
36
+ }
37
+ export declare function BarMeter({ label, formattedValue, ratio, color, detail, icon: Icon, trend, trendSentiment, threshold, rank, compact, animated, highlighted, dimmed, interactive, className, ...rest }: BarMeterProps): React.JSX.Element;
38
+ //# sourceMappingURL=BarMeter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BarMeter.d.ts","sourceRoot":"","sources":["../../../src/charts/BreakdownChart/BarMeter.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAqB,MAAM,WAAW,CAAC;AA6BtF,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IAChE,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,8BAA8B;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,mDAAmD;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAC/C,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,cAAc,EACd,KAAK,EACL,KAAK,EACL,MAAM,EACN,IAAI,EAAE,IAAI,EACV,KAAK,EACL,cAAmC,EACnC,SAAS,EACT,IAAI,EACJ,OAAe,EACf,QAAe,EACf,WAAmB,EACnB,MAAc,EACd,WAAmB,EACnB,SAAS,EACT,GAAG,IAAI,EACR,EAAE,aAAa,qBA8Ff"}
@@ -0,0 +1,12 @@
1
+ import { BreakdownChartProps } from './breakdown-chart.types';
2
+ import * as React from 'react';
3
+ export interface BreakdownChartSkeletonProps extends React.ComponentProps<'div'> {
4
+ /** Number of skeleton rows. @default 3 */
5
+ readonly rows?: number;
6
+ /** Reduce vertical spacing/padding to match the compact layout. @default false */
7
+ readonly compact?: boolean;
8
+ }
9
+ declare function BreakdownChartSkeleton({ rows, compact, className, ...props }: BreakdownChartSkeletonProps): React.JSX.Element;
10
+ export declare function BreakdownChart({ children, ...chartProps }: BreakdownChartProps): React.JSX.Element;
11
+ export { BreakdownChartSkeleton };
12
+ //# sourceMappingURL=BreakdownChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreakdownChart.d.ts","sourceRoot":"","sources":["../../../src/charts/BreakdownChart/BreakdownChart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,mBAAmB,EAAuD,MAAM,yBAAyB,CAAC;AA0DxH,MAAM,WAAW,2BAA4B,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IAC9E,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,kFAAkF;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAID,iBAAS,sBAAsB,CAAC,EAAE,IAAQ,EAAE,OAAe,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,2BAA2B,qBAwB9G;AA0HD,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,EAAE,mBAAmB,qBAO9E;AAgQD,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { BreakdownItem } from './breakdown-chart.types';
2
+ import * as React from 'react';
3
+ export interface BreakdownTooltipMeta {
4
+ readonly color: string;
5
+ readonly index: number;
6
+ readonly ratio: number;
7
+ /** Value pre-formatted by the chart's `formatValue` prop (e.g. "$222.88"). */
8
+ readonly formattedValue: string;
9
+ }
10
+ export type BreakdownTooltipRenderFn = (item: BreakdownItem, meta: BreakdownTooltipMeta) => React.ReactNode;
11
+ interface BreakdownTooltipSlot {
12
+ content: BreakdownTooltipRenderFn;
13
+ }
14
+ interface BreakdownSlotsContextValue {
15
+ tooltip: BreakdownTooltipSlot | null;
16
+ legend: React.ReactNode | null;
17
+ summary: React.ReactNode | null;
18
+ setTooltip: (slot: BreakdownTooltipSlot | null) => void;
19
+ setLegend: (content: React.ReactNode | null) => void;
20
+ setSummary: (content: React.ReactNode | null) => void;
21
+ }
22
+ /**
23
+ * Reads the slots registered by `<BreakdownTooltip>`, `<BreakdownLegend>`,
24
+ * or `<BreakdownSummary>` for the nearest enclosing BreakdownChart.
25
+ * Returns a no-op fallback when used outside of a chart.
26
+ */
27
+ export declare function useBreakdownSlots(): BreakdownSlotsContextValue;
28
+ export interface BreakdownSlotsProviderProps {
29
+ children: React.ReactNode;
30
+ }
31
+ /**
32
+ * Wraps a BreakdownChart's render tree so that composition markers can
33
+ * register their content via `useLayoutEffect` before the browser paints.
34
+ */
35
+ export declare function BreakdownSlotsProvider({ children }: BreakdownSlotsProviderProps): React.JSX.Element;
36
+ export {};
37
+ //# sourceMappingURL=BreakdownContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreakdownContext.d.ts","sourceRoot":"","sources":["../../../src/charts/BreakdownChart/BreakdownContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,MAAM,wBAAwB,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,oBAAoB,KAAK,KAAK,CAAC,SAAS,CAAC;AAE5G,UAAU,oBAAoB;IAC5B,OAAO,EAAE,wBAAwB,CAAC;CACnC;AAID,UAAU,0BAA0B;IAClC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACrC,MAAM,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;IACrD,UAAU,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;CACvD;AAID;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,0BAA0B,CAa9D;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,QAAQ,EAAE,EAAE,2BAA2B,qBAW/E"}
@@ -0,0 +1,15 @@
1
+ import { BreakdownItem } from './breakdown-chart.types';
2
+ import * as React from 'react';
3
+ export interface BreakdownLegendProps {
4
+ readonly children: React.ReactNode;
5
+ }
6
+ declare function BreakdownLegend({ children }: BreakdownLegendProps): null;
7
+ export interface BreakdownLegendContentProps extends React.ComponentProps<'div'> {
8
+ readonly items: readonly BreakdownItem[];
9
+ /** Resolved colors matching each item's index. */
10
+ readonly colors: readonly string[];
11
+ readonly formatValue?: (value: number) => string;
12
+ }
13
+ declare function BreakdownLegendContent({ items, colors, formatValue, className, ...props }: BreakdownLegendContentProps): React.JSX.Element;
14
+ export { BreakdownLegend, BreakdownLegendContent };
15
+ //# sourceMappingURL=BreakdownLegend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreakdownLegend.d.ts","sourceRoot":"","sources":["../../../src/charts/BreakdownChart/BreakdownLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAM7D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CACpC;AAED,iBAAS,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE,oBAAoB,QAS1D;AAMD,MAAM,WAAW,2BAA4B,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IAC9E,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,kDAAkD;IAClD,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAClD;AAED,iBAAS,sBAAsB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,2BAA2B,qBAkB/G;AAED,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ export interface BreakdownSummaryProps {
3
+ readonly children: React.ReactNode;
4
+ }
5
+ declare function BreakdownSummary({ children }: BreakdownSummaryProps): null;
6
+ export { BreakdownSummary };
7
+ //# sourceMappingURL=BreakdownSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreakdownSummary.d.ts","sourceRoot":"","sources":["../../../src/charts/BreakdownChart/BreakdownSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CACpC;AAED,iBAAS,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,QAS5D;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { BreakdownTooltipMeta, BreakdownTooltipRenderFn } from './BreakdownContext';
2
+ import { BreakdownItem } from './breakdown-chart.types';
3
+ import * as React from 'react';
4
+ export interface BreakdownTooltipProps {
5
+ /**
6
+ * Tooltip content — either a React element (auto-injected with `item` and
7
+ * `meta` props via `cloneElement`, like `ChartTooltip`) or a render function
8
+ * receiving the hovered item and its visual metadata for full control.
9
+ */
10
+ readonly content: React.ReactElement | BreakdownTooltipRenderFn;
11
+ }
12
+ declare function BreakdownTooltip({ content }: BreakdownTooltipProps): null;
13
+ export interface BreakdownTooltipPortalProps {
14
+ readonly pos: {
15
+ x: number;
16
+ y: number;
17
+ };
18
+ readonly containerRef: React.RefObject<HTMLDivElement | null>;
19
+ readonly children: React.ReactNode;
20
+ }
21
+ declare function BreakdownTooltipPortal({ pos, containerRef, children }: BreakdownTooltipPortalProps): React.ReactPortal;
22
+ export interface BreakdownTooltipItem {
23
+ readonly name: string;
24
+ readonly value: number | string;
25
+ readonly color?: string;
26
+ }
27
+ export interface BreakdownTooltipContentProps extends React.ComponentProps<'div'> {
28
+ /**
29
+ * Hovered breakdown item — injected automatically by the chart in element
30
+ * mode. When present (and `items` is not provided), `BreakdownTooltipContent`
31
+ * auto-populates from this item's data.
32
+ */
33
+ readonly item?: BreakdownItem;
34
+ /**
35
+ * Visual metadata (color, index, ratio) — injected alongside `item` in
36
+ * element mode.
37
+ */
38
+ readonly meta?: BreakdownTooltipMeta;
39
+ /** Title shown at the top of the tooltip (e.g. the hovered item's label). */
40
+ readonly label?: string;
41
+ /** Sub-items to display (e.g. status-code breakdown for the hovered endpoint). */
42
+ readonly items?: readonly BreakdownTooltipItem[];
43
+ /** Hide the label row. @default false */
44
+ readonly hideLabel?: boolean;
45
+ /** Hide the color indicator next to each sub-item. */
46
+ readonly hideIndicator?: boolean;
47
+ /** Visual style of the indicator. @default 'dot' */
48
+ readonly indicator?: 'dot' | 'line';
49
+ /** Format each sub-item's value. Defaults to `.toLocaleString()` for numbers. */
50
+ readonly valueFormatter?: (value: number | string) => React.ReactNode;
51
+ /** Show a summed total row below the sub-items. */
52
+ readonly showTotal?: boolean;
53
+ /** Label for the total row. @default "Total" */
54
+ readonly totalLabel?: string;
55
+ }
56
+ declare function BreakdownTooltipContent({ item, meta, label: labelProp, items: itemsProp, hideLabel: hideLabelProp, hideIndicator, indicator, valueFormatter, showTotal, totalLabel, className, ...props }: BreakdownTooltipContentProps): React.JSX.Element | null;
57
+ export { BreakdownTooltip, BreakdownTooltipContent, BreakdownTooltipPortal };
58
+ //# sourceMappingURL=BreakdownTooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreakdownTooltip.d.ts","sourceRoot":"","sources":["../../../src/charts/BreakdownChart/BreakdownTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAY7D,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,GAAG,wBAAwB,CAAC;CACjE;AAED,iBAAS,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE,qBAAqB,QAc3D;AAMD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC9D,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CACpC;AAED,iBAAS,sBAAsB,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,2BAA2B,qBAgD3F;AAMD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,4BAA6B,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IAC/E;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IACrC,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACjD,yCAAyC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,oDAAoD;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACpC,iFAAiF;IACjF,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACtE,mDAAmD;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAMD,iBAAS,uBAAuB,CAAC,EAC/B,IAAI,EACJ,IAAI,EACJ,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,aAAa,EACxB,aAAqB,EACrB,SAAiB,EACjB,cAAsC,EACtC,SAAiB,EACjB,UAAoB,EACpB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,4BAA4B,4BAmD9B;AAED,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { ChartState } from '../../types';
2
+ import { MetricTrend, MetricTrendSentiment } from '../Metric';
3
+ import type * as React from 'react';
4
+ export interface BreakdownItem {
5
+ /** Unique identifier used as React key. */
6
+ readonly key: string;
7
+ /** Human-readable label. */
8
+ readonly label: string;
9
+ /** Numeric value driving the bar width and display. */
10
+ readonly value: number;
11
+ /** Secondary text below the bar (e.g. "938 requests"). */
12
+ readonly detail?: string;
13
+ /** CSS color override. When omitted, auto-assigned from the chart palette. */
14
+ readonly color?: string;
15
+ /** Icon component rendered before the label. */
16
+ readonly icon?: React.ComponentType<{
17
+ className?: string;
18
+ }>;
19
+ /** Period-over-period variation shown next to the value (chevron + %). */
20
+ readonly trend?: MetricTrend;
21
+ /**
22
+ * Threshold marker drawn as a vertical line over the bar, expressed as a
23
+ * ratio (0–1) of the full track width (e.g. `0.8` for an 80% quota target).
24
+ * Track-relative so it is independent of `ratioMode`. List variant only.
25
+ */
26
+ readonly threshold?: number;
27
+ /**
28
+ * Explicit ratio (0–1) used only when `ratioMode="explicit"`.
29
+ * Ignored for other ratio modes.
30
+ */
31
+ readonly ratio?: number;
32
+ }
33
+ export interface BreakdownSummary {
34
+ /** Label for the summary row (e.g. "Total cost"). */
35
+ readonly label: string;
36
+ /** Pre-formatted value (e.g. "$318.40"). */
37
+ readonly value: string;
38
+ }
39
+ export type BreakdownVariant = 'list' | 'stacked';
40
+ /**
41
+ * Controls how individual bar widths are computed.
42
+ * - `total` — each bar proportional to the sum of all values (default).
43
+ * - `max` — each bar proportional to the highest value.
44
+ * - `explicit` — consumer provides `ratio` (0–1) per item.
45
+ */
46
+ export type BreakdownRatioMode = 'total' | 'max' | 'explicit';
47
+ export interface BreakdownChartProps extends React.ComponentProps<'div'> {
48
+ /** Data items to render. */
49
+ readonly items: readonly BreakdownItem[];
50
+ /** Visual variant. @default 'list' */
51
+ readonly variant?: BreakdownVariant;
52
+ /** Ratio computation strategy. @default 'total' */
53
+ readonly ratioMode?: BreakdownRatioMode;
54
+ /** Custom value formatter. Receives the raw numeric value. */
55
+ readonly formatValue?: (value: number) => string;
56
+ /**
57
+ * How to interpret per-item `trend` direction for coloring.
58
+ * - `'higher-is-better'` (default): up = green, down = red.
59
+ * - `'lower-is-better'`: up = red, down = green (e.g. latency, error rate).
60
+ * - `'neutral'`: always gray.
61
+ */
62
+ readonly trendSentiment?: MetricTrendSentiment;
63
+ /**
64
+ * Sort items by value before rendering.
65
+ * - `'desc'` — highest first (typical for top-N leaderboards).
66
+ * - `'asc'` — lowest first.
67
+ * When omitted, the consumer's order is preserved.
68
+ */
69
+ readonly sortByValue?: 'asc' | 'desc';
70
+ /**
71
+ * Show a rank badge (#1, #2…) before each item, numbered by display order
72
+ * (after sorting, if `sortByValue` is set).
73
+ */
74
+ readonly showRank?: boolean;
75
+ /** Optional summary row rendered below the items. */
76
+ readonly summary?: BreakdownSummary;
77
+ /**
78
+ * Maximum visible items before collapsing with "N others".
79
+ * When omitted, all items are shown.
80
+ */
81
+ readonly maxItems?: number;
82
+ /** Animate bar fill on mount. @default true */
83
+ readonly animated?: boolean;
84
+ /** Reduce vertical spacing and padding between rows for a denser layout. @default false */
85
+ readonly compact?: boolean;
86
+ /**
87
+ * Highlight the hovered item and dim the others on mouse-over.
88
+ * Set to `false` for static, presentation-only rendering.
89
+ * The `onItemHover` callback still fires regardless. @default true
90
+ */
91
+ readonly highlightOnHover?: boolean;
92
+ /**
93
+ * Lifecycle state. When omitted, inferred from `items.length`:
94
+ * empty array → `'empty'`, otherwise → `'ready'`.
95
+ */
96
+ readonly state?: ChartState;
97
+ /**
98
+ * Number of skeleton rows rendered in the loading state. Set this to the
99
+ * expected item count so the placeholder matches the eventual layout.
100
+ * @default 3
101
+ */
102
+ readonly skeletonRows?: number;
103
+ /** Accessible label for the chart region. */
104
+ readonly ariaLabel?: string;
105
+ /** Called when an item is clicked. */
106
+ readonly onItemClick?: (item: BreakdownItem) => void;
107
+ /** Called when hovering an item. */
108
+ readonly onItemHover?: (item: BreakdownItem | null) => void;
109
+ }
110
+ //# sourceMappingURL=breakdown-chart.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breakdown-chart.types.d.ts","sourceRoot":"","sources":["../../../src/charts/BreakdownChart/breakdown-chart.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAInE,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAID,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAC;AAElD;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,CAAC;AAI9D,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;IACtE,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;IACzC,sCAAsC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC,mDAAmD;IACnD,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;IACxC,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IAC/C;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,sCAAsC;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACrD,oCAAoC;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAC;CAC7D"}
@@ -0,0 +1,13 @@
1
+ export { BreakdownChart, BreakdownChartSkeleton } from './BreakdownChart';
2
+ export type { BreakdownChartSkeletonProps } from './BreakdownChart';
3
+ export { BarMeter } from './BarMeter';
4
+ export type { BarMeterProps } from './BarMeter';
5
+ export { BreakdownTooltip, BreakdownTooltipContent } from './BreakdownTooltip';
6
+ export type { BreakdownTooltipContentProps, BreakdownTooltipItem, BreakdownTooltipProps } from './BreakdownTooltip';
7
+ export { BreakdownLegend, BreakdownLegendContent } from './BreakdownLegend';
8
+ export type { BreakdownLegendContentProps, BreakdownLegendProps } from './BreakdownLegend';
9
+ export { BreakdownSummary } from './BreakdownSummary';
10
+ export type { BreakdownSummaryProps } from './BreakdownSummary';
11
+ export type { BreakdownTooltipMeta, BreakdownTooltipRenderFn } from './BreakdownContext';
12
+ export type { BreakdownChartProps, BreakdownItem, BreakdownRatioMode, BreakdownSummary as BreakdownSummaryData, BreakdownVariant, } from './breakdown-chart.types';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/charts/BreakdownChart/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,YAAY,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,YAAY,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,YAAY,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACzF,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,IAAI,oBAAoB,EACxC,gBAAgB,GACjB,MAAM,yBAAyB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -27,4 +27,5 @@ export * from './charts/MetricGroup';
27
27
  export * from './charts/LineChart';
28
28
  export * from './charts/AreaChart';
29
29
  export * from './charts/TraceWaterfall';
30
+ export * from './charts/BreakdownChart';
30
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGvD,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,IAAI,KAAK,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvG,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGvD,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,IAAI,KAAK,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvG,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAG3D,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC"}