uplot-plus 0.5.10 → 0.5.14

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 (36) hide show
  1. package/dist/components/Chart.d.ts.map +1 -1
  2. package/dist/components/FloatingLegend.d.ts +1 -0
  3. package/dist/components/FloatingLegend.d.ts.map +1 -1
  4. package/dist/components/HoverLabel.d.ts.map +1 -1
  5. package/dist/components/Legend.d.ts.map +1 -1
  6. package/dist/components/Tooltip.d.ts +6 -3
  7. package/dist/components/Tooltip.d.ts.map +1 -1
  8. package/dist/components/ZoomRanger.d.ts +23 -0
  9. package/dist/components/ZoomRanger.d.ts.map +1 -1
  10. package/dist/components/overlay/SeriesPanel.d.ts +9 -0
  11. package/dist/components/overlay/SeriesPanel.d.ts.map +1 -1
  12. package/dist/hooks/useChartStore.d.ts +2 -0
  13. package/dist/hooks/useChartStore.d.ts.map +1 -1
  14. package/dist/hooks/useDraggableOverlay.d.ts +89 -0
  15. package/dist/hooks/useDraggableOverlay.d.ts.map +1 -0
  16. package/dist/index.cjs +1 -1
  17. package/dist/index.js +2200 -2015
  18. package/dist/rendering/drawAxes.d.ts +2 -1
  19. package/dist/rendering/drawAxes.d.ts.map +1 -1
  20. package/dist/rendering/drawCursor.d.ts +2 -1
  21. package/dist/rendering/drawCursor.d.ts.map +1 -1
  22. package/dist/rendering/drawSelect.d.ts +2 -1
  23. package/dist/rendering/drawSelect.d.ts.map +1 -1
  24. package/dist/rendering/theme.d.ts +13 -0
  25. package/dist/rendering/theme.d.ts.map +1 -0
  26. package/dist/types/index.d.ts +1 -0
  27. package/dist/types/index.d.ts.map +1 -1
  28. package/dist/types/series.d.ts +5 -0
  29. package/dist/types/series.d.ts.map +1 -1
  30. package/dist/types/tooltip.d.ts +9 -0
  31. package/dist/types/tooltip.d.ts.map +1 -1
  32. package/dist/utils/estimatePanelSize.d.ts +12 -0
  33. package/dist/utils/estimatePanelSize.d.ts.map +1 -0
  34. package/dist/utils/textMeasure.d.ts +2 -0
  35. package/dist/utils/textMeasure.d.ts.map +1 -0
  36. package/package.json +13 -4
@@ -1,8 +1,9 @@
1
1
  import type { ScaleState, BBox } from '../types';
2
2
  import type { AxisState } from '../types/axes';
3
+ import type { ThemeCache } from './theme';
3
4
  /**
4
5
  * Draw all axes: grid lines, tick marks, tick labels, axis labels, borders.
5
6
  * Ported from uPlot uPlot.js drawAxesGrid.
6
7
  */
7
- export declare function drawAxesGrid(ctx: CanvasRenderingContext2D, axisStates: AxisState[], getScale: (id: string) => ScaleState | undefined, plotBox: BBox, pxRatio: number, title?: string): void;
8
+ export declare function drawAxesGrid(ctx: CanvasRenderingContext2D, axisStates: AxisState[], getScale: (id: string) => ScaleState | undefined, plotBox: BBox, pxRatio: number, title?: string, theme?: ThemeCache): void;
8
9
  //# sourceMappingURL=drawAxes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"drawAxes.d.ts","sourceRoot":"","sources":["../../src/rendering/drawAxes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AA4E/C;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,wBAAwB,EAC7B,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,EAChD,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,GACb,IAAI,CAiLN"}
1
+ {"version":3,"file":"drawAxes.d.ts","sourceRoot":"","sources":["../../src/rendering/drawAxes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAyE1C;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,wBAAwB,EAC7B,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,EAChD,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,UAAU,GACjB,IAAI,CAmLN"}
@@ -1,6 +1,7 @@
1
1
  import type { CursorState, ScaleState, BBox } from '../types';
2
2
  import type { ChartData } from '../types/data';
3
3
  import type { SeriesConfig } from '../types/series';
4
+ import type { ThemeCache } from './theme';
4
5
  export interface CursorDrawConfig {
5
6
  /** Crosshair line color */
6
7
  stroke?: string;
@@ -18,5 +19,5 @@ export interface CursorDrawConfig {
18
19
  /**
19
20
  * Draw cursor crosshairs and point indicator.
20
21
  */
21
- export declare function drawCursor(ctx: CanvasRenderingContext2D, cursor: CursorState, plotBox: BBox, pxRatio: number, data: ChartData, seriesConfigs: SeriesConfig[], getScale: (id: string) => ScaleState | undefined, getGroupXScaleKey: (groupIdx: number) => string | undefined, config?: CursorDrawConfig, seriesConfigMap?: Map<string, SeriesConfig>): void;
22
+ export declare function drawCursor(ctx: CanvasRenderingContext2D, cursor: CursorState, plotBox: BBox, pxRatio: number, data: ChartData, seriesConfigs: SeriesConfig[], getScale: (id: string) => ScaleState | undefined, getGroupXScaleKey: (groupIdx: number) => string | undefined, config?: CursorDrawConfig, seriesConfigMap?: Map<string, SeriesConfig>, theme?: ThemeCache): void;
22
23
  //# sourceMappingURL=drawCursor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"drawCursor.d.ts","sourceRoot":"","sources":["../../src/rendering/drawCursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAUpD,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAWD;;GAEG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,wBAAwB,EAC7B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,EACf,aAAa,EAAE,YAAY,EAAE,EAC7B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,EAChD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,EAC3D,MAAM,CAAC,EAAE,gBAAgB,EACzB,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAC1C,IAAI,CA4FN"}
1
+ {"version":3,"file":"drawCursor.d.ts","sourceRoot":"","sources":["../../src/rendering/drawCursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAQ1C,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAWD;;GAEG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,wBAAwB,EAC7B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,EACf,aAAa,EAAE,YAAY,EAAE,EAC7B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,EAChD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,EAC3D,MAAM,CAAC,EAAE,gBAAgB,EACzB,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EAC3C,KAAK,CAAC,EAAE,UAAU,GACjB,IAAI,CA+FN"}
@@ -1,4 +1,5 @@
1
1
  import type { SelectState, BBox } from '../types';
2
+ import type { ThemeCache } from './theme';
2
3
  export interface SelectDrawConfig {
3
4
  /** Fill color for selection rectangle */
4
5
  fill?: string;
@@ -10,5 +11,5 @@ export interface SelectDrawConfig {
10
11
  /**
11
12
  * Draw the drag-to-zoom selection rectangle.
12
13
  */
13
- export declare function drawSelection(ctx: CanvasRenderingContext2D, select: SelectState, plotBox: BBox, pxRatio: number, config?: SelectDrawConfig): void;
14
+ export declare function drawSelection(ctx: CanvasRenderingContext2D, select: SelectState, plotBox: BBox, pxRatio: number, config?: SelectDrawConfig, theme?: ThemeCache): void;
14
15
  //# sourceMappingURL=drawSelect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"drawSelect.d.ts","sourceRoot":"","sources":["../../src/rendering/drawSelect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGlD,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,wBAAwB,EAC7B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,gBAAgB,GACxB,IAAI,CAuBN"}
1
+ {"version":3,"file":"drawSelect.d.ts","sourceRoot":"","sources":["../../src/rendering/drawSelect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD;;GAEG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,wBAAwB,EAC7B,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,gBAAgB,EACzB,KAAK,CAAC,EAAE,UAAU,GACjB,IAAI,CA2BN"}
@@ -0,0 +1,13 @@
1
+ /** Cached CSS custom property values for themeable canvas defaults. */
2
+ export interface ThemeCache {
3
+ axisStroke: string;
4
+ gridStroke: string;
5
+ titleFill: string;
6
+ cursorStroke: string;
7
+ pointFill: string;
8
+ selectFill: string;
9
+ selectStroke: string;
10
+ }
11
+ /** Read CSS custom properties from a canvas element, with hardcoded fallbacks. */
12
+ export declare function readThemeVars(canvas: HTMLCanvasElement | null): ThemeCache;
13
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/rendering/theme.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAYD,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,GAAG,UAAU,CAa1E"}
@@ -3,6 +3,7 @@ export { Side, Orientation, Direction, Distribution, SortOrder, sideOrientation,
3
3
  export type { XGroup, ChartData, SeriesRef, DataArray, SimpleGroup, FullGroup, DataInput } from './data';
4
4
  export type { ScaleConfig, ScaleState, RangeConfig, RangePart } from './scales';
5
5
  export type { SeriesConfig, SeriesState, PointsConfig, GradientConfig, ColorValue } from './series';
6
+ export { getSeriesColor } from './series';
6
7
  export type { AxisConfig, AxisState, GridConfig, TickConfig, BorderConfig } from './axes';
7
8
  export type { CursorState, SelectState } from './cursor';
8
9
  export type { ChartProps } from './chart';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC7G,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzG,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAChF,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACpG,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC1F,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACzD,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC7G,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzG,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAChF,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC1F,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACzD,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC"}
@@ -54,6 +54,11 @@ export interface SeriesConfig {
54
54
  show?: boolean;
55
55
  };
56
56
  }
57
+ /**
58
+ * Resolve the representative color for a series config (used by Legend/Tooltip swatches).
59
+ * Bars: use fill. Lines with transparent stroke + fill: use fill. Otherwise: use stroke.
60
+ */
61
+ export declare function getSeriesColor(cfg: SeriesConfig): string;
57
62
  export interface PointsConfig {
58
63
  show?: boolean | ((groupIdx: number, seriesIdx: number, i0: number, i1: number, dim: number) => boolean);
59
64
  size?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"series.d.ts","sourceRoot":"","sources":["../../src/types/series.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,qDAAqD;IACrD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;CAC3B;AAED,uDAAuD;AACvD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,cAAc,CAAC;AAEjD,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe;IACf,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,gBAAgB;IAChB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,0HAA0H;IAC1H,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACzD,sCAAsC;IACtC,MAAM,CAAC,EAAE;QACP,mEAAmE;QACnE,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IACzG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxB"}
1
+ {"version":3,"file":"series.d.ts","sourceRoot":"","sources":["../../src/types/series.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,qDAAqD;IACrD,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;CAC3B;AAED,uDAAuD;AACvD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,cAAc,CAAC;AAEjD,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,eAAe;IACf,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,gBAAgB;IAChB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,0HAA0H;IAC1H,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACzD,sCAAsC;IACtC,MAAM,CAAC,EAAE;QACP,mEAAmE;QACnE,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAgBD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CASxD;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IACzG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,sDAAsD;IACtD,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxB"}
@@ -31,5 +31,14 @@ export interface TooltipProps {
31
31
  };
32
32
  /** Max decimal places for the default x label (default: 2). Has no effect when using a custom render function. */
33
33
  precision?: number;
34
+ /** Behavior mode: 'cursor' (default, follows cursor) or 'draggable' (fixed position, drag to move). */
35
+ mode?: 'cursor' | 'draggable';
36
+ /** Initial position for draggable mode (default: 'top-right') */
37
+ position?: {
38
+ x: number;
39
+ y: number;
40
+ } | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
41
+ /** Opacity when not hovered in draggable mode (default: 0.8) */
42
+ idleOpacity?: number;
34
43
  }
35
44
  //# sourceMappingURL=tooltip.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/types/tooltip.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjB,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAC;IAClD,uCAAuC;IACvC,MAAM,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,kHAAkH;IAClH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/types/tooltip.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjB,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAC;IAClD,uCAAuC;IACvC,MAAM,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,kHAAkH;IAClH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uGAAuG;IACvG,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;IAChG,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,12 @@
1
+ export interface PanelContent {
2
+ header?: string;
3
+ rows: Array<{
4
+ label: string;
5
+ value?: string;
6
+ }>;
7
+ }
8
+ export declare function estimatePanelSize(content: PanelContent): {
9
+ w: number;
10
+ h: number;
11
+ };
12
+ //# sourceMappingURL=estimatePanelSize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimatePanelSize.d.ts","sourceRoot":"","sources":["../../src/utils/estimatePanelSize.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBjF"}
@@ -0,0 +1,2 @@
1
+ export declare function measureLabelWidth(label: string, font: string): number;
2
+ //# sourceMappingURL=textMeasure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textMeasure.d.ts","sourceRoot":"","sources":["../../src/utils/textMeasure.ts"],"names":[],"mappings":"AAEA,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uplot-plus",
3
- "version": "0.5.10",
3
+ "version": "0.5.14",
4
4
  "description": "High-performance React charting library with multi-x-axis support",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -29,9 +29,11 @@
29
29
  "scripts": {
30
30
  "dev": "vite serve demo",
31
31
  "build": "vite build && tsc -p tsconfig.build.json",
32
- "lint": "eslint src/ demo/",
33
- "typecheck": "tsc --noEmit",
32
+ "lint": "eslint src/ demo/ test/ e2e/",
33
+ "typecheck": "tsc --noEmit --noUnusedLocals --noUnusedParameters",
34
34
  "test": "vitest run",
35
+ "test:e2e": "playwright test --config e2e/playwright.config.ts",
36
+ "test:e2e:ui": "playwright test --config e2e/playwright.config.ts --ui",
35
37
  "build:demo": "vite build demo"
36
38
  },
37
39
  "peerDependencies": {
@@ -40,8 +42,12 @@
40
42
  },
41
43
  "devDependencies": {
42
44
  "@eslint/js": "^9.0.0",
45
+ "@playwright/test": "^1.59.1",
43
46
  "@tailwindcss/vite": "^4.2.2",
47
+ "@testing-library/jest-dom": "^6.9.1",
48
+ "@testing-library/react": "^16.3.2",
44
49
  "@types/eslint__js": "^8.42.3",
50
+ "@types/node": "^25.5.2",
45
51
  "@types/react": "^18.2.0",
46
52
  "@types/react-dom": "^18.2.0",
47
53
  "@vitejs/plugin-react": "^4.2.0",
@@ -56,5 +62,8 @@
56
62
  "vite": "^5.4.0",
57
63
  "vitest": "^2.0.0"
58
64
  },
59
- "license": "MIT"
65
+ "license": "MIT",
66
+ "dependencies": {
67
+ "@chenglou/pretext": "^0.0.4"
68
+ }
60
69
  }