@tetrascience-npm/tetrascience-react-ui 0.6.0 → 0.7.0-beta.103.1

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 (184) hide show
  1. package/README.md +55 -0
  2. package/dist/components/ai/chain-of-thought.cjs +1 -1
  3. package/dist/components/ai/chain-of-thought.cjs.map +1 -1
  4. package/dist/components/ai/chain-of-thought.js +5 -5
  5. package/dist/components/ai/chain-of-thought.js.map +1 -1
  6. package/dist/components/ai/conversation.cjs +2 -2
  7. package/dist/components/ai/conversation.cjs.map +1 -1
  8. package/dist/components/ai/conversation.js +2 -2
  9. package/dist/components/ai/conversation.js.map +1 -1
  10. package/dist/components/ai/queue.cjs +1 -1
  11. package/dist/components/ai/queue.cjs.map +1 -1
  12. package/dist/components/ai/queue.js +9 -9
  13. package/dist/components/ai/queue.js.map +1 -1
  14. package/dist/components/charts/AreaGraph/AreaGraph.cjs +1 -1
  15. package/dist/components/charts/AreaGraph/AreaGraph.cjs.map +1 -1
  16. package/dist/components/charts/AreaGraph/AreaGraph.js +165 -103
  17. package/dist/components/charts/AreaGraph/AreaGraph.js.map +1 -1
  18. package/dist/components/charts/BarGraph/BarGraph.cjs +1 -1
  19. package/dist/components/charts/BarGraph/BarGraph.cjs.map +1 -1
  20. package/dist/components/charts/BarGraph/BarGraph.js +135 -90
  21. package/dist/components/charts/BarGraph/BarGraph.js.map +1 -1
  22. package/dist/components/charts/Boxplot/Boxplot.cjs +1 -1
  23. package/dist/components/charts/Boxplot/Boxplot.cjs.map +1 -1
  24. package/dist/components/charts/Boxplot/Boxplot.js +130 -92
  25. package/dist/components/charts/Boxplot/Boxplot.js.map +1 -1
  26. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs +2 -0
  27. package/dist/components/charts/ChartTooltip/ChartTooltip.cjs.map +1 -0
  28. package/dist/components/charts/ChartTooltip/ChartTooltip.js +163 -0
  29. package/dist/components/charts/ChartTooltip/ChartTooltip.js.map +1 -0
  30. package/dist/components/charts/ChartTooltip/lines.cjs +2 -0
  31. package/dist/components/charts/ChartTooltip/lines.cjs.map +1 -0
  32. package/dist/components/charts/ChartTooltip/lines.js +29 -0
  33. package/dist/components/charts/ChartTooltip/lines.js.map +1 -0
  34. package/dist/components/charts/Chromatogram/Chromatogram.cjs +1 -1
  35. package/dist/components/charts/Chromatogram/Chromatogram.cjs.map +1 -1
  36. package/dist/components/charts/Chromatogram/Chromatogram.js +75 -61
  37. package/dist/components/charts/Chromatogram/Chromatogram.js.map +1 -1
  38. package/dist/components/charts/ChromatogramChart/ChromatogramChart.cjs +1 -1
  39. package/dist/components/charts/ChromatogramChart/ChromatogramChart.cjs.map +1 -1
  40. package/dist/components/charts/ChromatogramChart/ChromatogramChart.js +116 -108
  41. package/dist/components/charts/ChromatogramChart/ChromatogramChart.js.map +1 -1
  42. package/dist/components/charts/ChromatogramChart/annotations.cjs +1 -1
  43. package/dist/components/charts/ChromatogramChart/annotations.cjs.map +1 -1
  44. package/dist/components/charts/ChromatogramChart/annotations.js +32 -32
  45. package/dist/components/charts/ChromatogramChart/annotations.js.map +1 -1
  46. package/dist/components/charts/ChromatogramChart/boundaryMarkers.cjs +1 -1
  47. package/dist/components/charts/ChromatogramChart/boundaryMarkers.cjs.map +1 -1
  48. package/dist/components/charts/ChromatogramChart/boundaryMarkers.js +6 -6
  49. package/dist/components/charts/ChromatogramChart/boundaryMarkers.js.map +1 -1
  50. package/dist/components/charts/ChromatogramChart/constants.cjs +1 -1
  51. package/dist/components/charts/ChromatogramChart/constants.cjs.map +1 -1
  52. package/dist/components/charts/ChromatogramChart/constants.js +11 -5
  53. package/dist/components/charts/ChromatogramChart/constants.js.map +1 -1
  54. package/dist/components/charts/ChromatogramChart/dataProcessing.cjs +1 -1
  55. package/dist/components/charts/ChromatogramChart/dataProcessing.cjs.map +1 -1
  56. package/dist/components/charts/ChromatogramChart/dataProcessing.js +38 -49
  57. package/dist/components/charts/ChromatogramChart/dataProcessing.js.map +1 -1
  58. package/dist/components/charts/DotPlot/DotPlot.cjs +1 -1
  59. package/dist/components/charts/DotPlot/DotPlot.cjs.map +1 -1
  60. package/dist/components/charts/DotPlot/DotPlot.js +112 -88
  61. package/dist/components/charts/DotPlot/DotPlot.js.map +1 -1
  62. package/dist/components/charts/Histogram/Histogram.cjs +1 -1
  63. package/dist/components/charts/Histogram/Histogram.cjs.map +1 -1
  64. package/dist/components/charts/Histogram/Histogram.js +132 -115
  65. package/dist/components/charts/Histogram/Histogram.js.map +1 -1
  66. package/dist/components/charts/LineGraph/LineGraph.cjs +1 -1
  67. package/dist/components/charts/LineGraph/LineGraph.cjs.map +1 -1
  68. package/dist/components/charts/LineGraph/LineGraph.js +151 -111
  69. package/dist/components/charts/LineGraph/LineGraph.js.map +1 -1
  70. package/dist/components/charts/PieChart/PieChart.cjs +1 -1
  71. package/dist/components/charts/PieChart/PieChart.cjs.map +1 -1
  72. package/dist/components/charts/PieChart/PieChart.js +81 -70
  73. package/dist/components/charts/PieChart/PieChart.js.map +1 -1
  74. package/dist/components/charts/PlateMap/PlateMap.cjs +1 -1
  75. package/dist/components/charts/PlateMap/PlateMap.cjs.map +1 -1
  76. package/dist/components/charts/PlateMap/PlateMap.js +271 -256
  77. package/dist/components/charts/PlateMap/PlateMap.js.map +1 -1
  78. package/dist/components/charts/PlateMap/constants.cjs +1 -1
  79. package/dist/components/charts/PlateMap/constants.cjs.map +1 -1
  80. package/dist/components/charts/PlateMap/constants.js +20 -29
  81. package/dist/components/charts/PlateMap/constants.js.map +1 -1
  82. package/dist/components/charts/ScatterGraph/ScatterGraph.cjs +1 -1
  83. package/dist/components/charts/ScatterGraph/ScatterGraph.cjs.map +1 -1
  84. package/dist/components/charts/ScatterGraph/ScatterGraph.js +154 -106
  85. package/dist/components/charts/ScatterGraph/ScatterGraph.js.map +1 -1
  86. package/dist/components/composed/DataAppShell/DataAppShell.cjs +1 -1
  87. package/dist/components/composed/DataAppShell/DataAppShell.cjs.map +1 -1
  88. package/dist/components/composed/DataAppShell/DataAppShell.js +118 -111
  89. package/dist/components/composed/DataAppShell/DataAppShell.js.map +1 -1
  90. package/dist/components/composed/PlateMapEditor/PlateMapGrid.cjs +1 -1
  91. package/dist/components/composed/PlateMapEditor/PlateMapGrid.cjs.map +1 -1
  92. package/dist/components/composed/PlateMapEditor/PlateMapGrid.js +1 -1
  93. package/dist/components/composed/PlateMapEditor/PlateMapGrid.js.map +1 -1
  94. package/dist/components/composed/PlateMapEditor/WellLegend.cjs +1 -1
  95. package/dist/components/composed/PlateMapEditor/WellLegend.cjs.map +1 -1
  96. package/dist/components/composed/PlateMapEditor/WellLegend.js +8 -8
  97. package/dist/components/composed/PlateMapEditor/WellLegend.js.map +1 -1
  98. package/dist/components/composed/RichListItem/RichListItem.cjs +1 -1
  99. package/dist/components/composed/RichListItem/RichListItem.cjs.map +1 -1
  100. package/dist/components/composed/RichListItem/RichListItem.js +16 -16
  101. package/dist/components/composed/RichListItem/RichListItem.js.map +1 -1
  102. package/dist/components/ui/accordion.cjs +1 -1
  103. package/dist/components/ui/accordion.cjs.map +1 -1
  104. package/dist/components/ui/accordion.js +1 -1
  105. package/dist/components/ui/accordion.js.map +1 -1
  106. package/dist/components/ui/badge.cjs +1 -1
  107. package/dist/components/ui/badge.cjs.map +1 -1
  108. package/dist/components/ui/badge.js +8 -8
  109. package/dist/components/ui/badge.js.map +1 -1
  110. package/dist/components/ui/button.cjs +1 -1
  111. package/dist/components/ui/button.cjs.map +1 -1
  112. package/dist/components/ui/button.js +11 -11
  113. package/dist/components/ui/button.js.map +1 -1
  114. package/dist/components/ui/checkbox.cjs +1 -1
  115. package/dist/components/ui/checkbox.cjs.map +1 -1
  116. package/dist/components/ui/checkbox.js +1 -1
  117. package/dist/components/ui/checkbox.js.map +1 -1
  118. package/dist/components/ui/combobox.cjs +1 -1
  119. package/dist/components/ui/combobox.cjs.map +1 -1
  120. package/dist/components/ui/combobox.js +12 -12
  121. package/dist/components/ui/combobox.js.map +1 -1
  122. package/dist/components/ui/input-group.cjs +1 -1
  123. package/dist/components/ui/input-group.cjs.map +1 -1
  124. package/dist/components/ui/input-group.js +19 -19
  125. package/dist/components/ui/input-group.js.map +1 -1
  126. package/dist/components/ui/item.cjs +1 -1
  127. package/dist/components/ui/item.cjs.map +1 -1
  128. package/dist/components/ui/item.js +1 -1
  129. package/dist/components/ui/item.js.map +1 -1
  130. package/dist/components/ui/menubar.cjs +1 -1
  131. package/dist/components/ui/menubar.cjs.map +1 -1
  132. package/dist/components/ui/menubar.js +1 -1
  133. package/dist/components/ui/menubar.js.map +1 -1
  134. package/dist/components/ui/navigation-menu.cjs +1 -1
  135. package/dist/components/ui/navigation-menu.cjs.map +1 -1
  136. package/dist/components/ui/navigation-menu.js +54 -54
  137. package/dist/components/ui/navigation-menu.js.map +1 -1
  138. package/dist/components/ui/radio-group.cjs +1 -1
  139. package/dist/components/ui/radio-group.cjs.map +1 -1
  140. package/dist/components/ui/radio-group.js +1 -1
  141. package/dist/components/ui/radio-group.js.map +1 -1
  142. package/dist/components/ui/resizable.cjs +1 -1
  143. package/dist/components/ui/resizable.cjs.map +1 -1
  144. package/dist/components/ui/resizable.js +27 -15
  145. package/dist/components/ui/resizable.js.map +1 -1
  146. package/dist/components/ui/select.cjs +1 -1
  147. package/dist/components/ui/select.cjs.map +1 -1
  148. package/dist/components/ui/select.js +1 -1
  149. package/dist/components/ui/select.js.map +1 -1
  150. package/dist/components/ui/slider.cjs +1 -1
  151. package/dist/components/ui/slider.cjs.map +1 -1
  152. package/dist/components/ui/slider.js +9 -9
  153. package/dist/components/ui/slider.js.map +1 -1
  154. package/dist/components/ui/table.cjs +1 -1
  155. package/dist/components/ui/table.cjs.map +1 -1
  156. package/dist/components/ui/table.js +13 -13
  157. package/dist/components/ui/table.js.map +1 -1
  158. package/dist/components/ui/tabs.cjs +1 -1
  159. package/dist/components/ui/tabs.cjs.map +1 -1
  160. package/dist/components/ui/tabs.js +7 -7
  161. package/dist/components/ui/tabs.js.map +1 -1
  162. package/dist/components/ui/toggle.cjs +1 -1
  163. package/dist/components/ui/toggle.cjs.map +1 -1
  164. package/dist/components/ui/toggle.js +12 -12
  165. package/dist/components/ui/toggle.js.map +1 -1
  166. package/dist/hooks/use-element-size.cjs +2 -0
  167. package/dist/hooks/use-element-size.cjs.map +1 -0
  168. package/dist/hooks/use-element-size.js +21 -0
  169. package/dist/hooks/use-element-size.js.map +1 -0
  170. package/dist/hooks/use-plotly-theme.cjs +1 -1
  171. package/dist/hooks/use-plotly-theme.cjs.map +1 -1
  172. package/dist/hooks/use-plotly-theme.js +4 -2
  173. package/dist/hooks/use-plotly-theme.js.map +1 -1
  174. package/dist/index.cjs +1 -1
  175. package/dist/index.css +1 -1
  176. package/dist/index.d.ts +254 -77
  177. package/dist/index.js +587 -581
  178. package/dist/index.js.map +1 -1
  179. package/dist/index.tailwind.css +1 -1
  180. package/dist/utils/colors.cjs +1 -1
  181. package/dist/utils/colors.cjs.map +1 -1
  182. package/dist/utils/colors.js +38 -93
  183. package/dist/utils/colors.js.map +1 -1
  184. package/package.json +18 -12
package/dist/index.d.ts CHANGED
@@ -48,6 +48,7 @@ import * as React_2 from 'react';
48
48
  import { ReactElement } from 'react';
49
49
  import { ReactNode } from 'react';
50
50
  import { ReactPortal } from 'react';
51
+ import { Ref } from 'react';
51
52
  import { RefObject } from 'react';
52
53
  import * as ResizablePrimitive from 'react-resizable-panels';
53
54
  import { ScrollArea as ScrollArea_2 } from 'radix-ui';
@@ -126,7 +127,8 @@ export declare interface AreaDataSeries {
126
127
  x: number[];
127
128
  y: number[];
128
129
  name: string;
129
- color: string;
130
+ /** Optional color override (auto-assigned from CHART_COLORS if not provided) */
131
+ color?: string;
130
132
  fill?: "tozeroy" | "tonexty" | "toself";
131
133
  }
132
134
 
@@ -134,7 +136,15 @@ export declare const AreaGraph: default_2.FC<AreaGraphProps>;
134
136
 
135
137
  export declare interface AreaGraphProps {
136
138
  dataSeries: AreaDataSeries[];
139
+ /**
140
+ * Fixed width in pixels. When omitted, the chart fills its container and
141
+ * tracks the container's width via a `ResizeObserver`.
142
+ */
137
143
  width?: number;
144
+ /**
145
+ * Fixed height in pixels. When omitted, the chart fills its container and
146
+ * tracks the container's height via a `ResizeObserver`.
147
+ */
138
148
  height?: number;
139
149
  xRange?: [number, number];
140
150
  yRange?: [number, number];
@@ -142,6 +152,13 @@ export declare interface AreaGraphProps {
142
152
  xTitle?: string;
143
153
  yTitle?: string;
144
154
  title?: string;
155
+ /**
156
+ * Categorical labels for the x-axis ticks. When provided, the x data values
157
+ * still drive area positioning but the displayed tick labels match these
158
+ * strings in order (e.g. ["Mon", "Tue", …]). Should align 1:1 with the
159
+ * unique, ordered x values across all series.
160
+ */
161
+ xTickText?: string[];
145
162
  }
146
163
 
147
164
  export declare type AreaGraphVariant = "normal" | "stacked";
@@ -292,7 +309,8 @@ export declare interface BarDataSeries {
292
309
  x: number[];
293
310
  y: number[];
294
311
  name: string;
295
- color: string;
312
+ /** Optional color override (auto-assigned from CHART_COLORS if not provided) */
313
+ color?: string;
296
314
  error_y?: {
297
315
  type: "data";
298
316
  array: number[];
@@ -304,7 +322,15 @@ export declare const BarGraph: default_2.FC<BarGraphProps>;
304
322
 
305
323
  export declare interface BarGraphProps {
306
324
  dataSeries: BarDataSeries[];
325
+ /**
326
+ * Fixed width in pixels. When omitted, the chart fills its container and
327
+ * tracks the container's width via a `ResizeObserver`.
328
+ */
307
329
  width?: number;
330
+ /**
331
+ * Fixed height in pixels. When omitted, the chart fills its container and
332
+ * tracks the container's height via a `ResizeObserver`.
333
+ */
308
334
  height?: number;
309
335
  xRange?: [number, number];
310
336
  yRange?: [number, number];
@@ -313,6 +339,13 @@ export declare interface BarGraphProps {
313
339
  yTitle?: string;
314
340
  title?: string;
315
341
  barWidth?: number;
342
+ /**
343
+ * Categorical labels for the x-axis ticks. When provided, the x data values
344
+ * still drive bar positioning but the displayed tick labels match these
345
+ * strings in order (e.g. ["Mon", "Tue", …]). Should align 1:1 with the
346
+ * unique, ordered x values across all series.
347
+ */
348
+ xTickText?: string[];
316
349
  }
317
350
 
318
351
  export declare type BarGraphVariant = "group" | "stack" | "overlay";
@@ -337,7 +370,8 @@ declare type BoundaryMarkerType = "none" | "triangle" | "diamond";
337
370
  export declare interface BoxDataSeries {
338
371
  y: number[];
339
372
  name: string;
340
- color: string;
373
+ /** Optional color override (auto-assigned from CHART_COLORS if not provided) */
374
+ color?: string;
341
375
  x?: string[] | number[];
342
376
  boxpoints?: "all" | "outliers" | "suspectedoutliers" | false;
343
377
  jitter?: number;
@@ -348,7 +382,15 @@ export declare const Boxplot: default_2.FC<BoxplotProps>;
348
382
 
349
383
  export declare interface BoxplotProps {
350
384
  dataSeries: BoxDataSeries[];
385
+ /**
386
+ * Fixed width in pixels. When omitted, the chart fills its container and
387
+ * tracks the container's width via a `ResizeObserver`.
388
+ */
351
389
  width?: number;
390
+ /**
391
+ * Fixed height in pixels. When omitted, the chart fills its container and
392
+ * tracks the container's height via a `ResizeObserver`.
393
+ */
352
394
  height?: number;
353
395
  xRange?: [number, number];
354
396
  yRange?: [number, number];
@@ -575,6 +617,94 @@ export declare const CHART_SEQUENTIAL: {
575
617
  readonly purple: string[];
576
618
  };
577
619
 
620
+ /**
621
+ * The design-system tooltip anchored at a chart position; drive it with
622
+ * `useChartTooltip`.
623
+ *
624
+ * Renders the same visual as the ui `TooltipContent` (bubble + arrow) but
625
+ * positions it directly from the anchor coordinates — Radix's popper
626
+ * repositions asynchronously and mis-measures animated content, which made
627
+ * tooltips drift on charts. Placement supports all four sides with
628
+ * Radix-style collision flipping.
629
+ */
630
+ export declare function ChartTooltip({ anchor, bubbleRef }: ChartTooltipProps): ReactPortal | null;
631
+
632
+ export declare interface ChartTooltipAnchor {
633
+ left: number;
634
+ top: number;
635
+ lines: string[];
636
+ /** Preferred placement side; auto-flips to the opposite when it won't fit */
637
+ side?: ChartTooltipSide;
638
+ /** Plays the exit animation before the tooltip unmounts */
639
+ closing?: boolean;
640
+ }
641
+
642
+ /**
643
+ * Minimal structural view of a Plotly hover point — covers cartesian, pie,
644
+ * and heatmap traces without depending on Plotly's loose event typings.
645
+ */
646
+ export declare interface ChartTooltipHoverPoint {
647
+ x?: number | string;
648
+ y?: number | string;
649
+ z?: number;
650
+ /** Pie slice label */
651
+ label?: string;
652
+ /** Pie slice value */
653
+ value?: number;
654
+ /** Pie slice raw value (Plotly's `v` alias) */
655
+ v?: number;
656
+ /** Pie slice percentage (0–100) */
657
+ percent?: number;
658
+ /** Per-point hover text (e.g. PlateMap wells), lines separated by `<br>` */
659
+ text?: string;
660
+ pointIndex?: number;
661
+ data?: {
662
+ name?: string;
663
+ };
664
+ /** Per-point custom data attached to the trace */
665
+ customdata?: unknown;
666
+ /** Hovered point bounds in plot-div pixels (provided by Plotly) */
667
+ bbox?: {
668
+ x0: number;
669
+ x1: number;
670
+ y0: number;
671
+ y1: number;
672
+ };
673
+ /**
674
+ * Plotly axis objects (internal) used to project a data value to a plot-div
675
+ * pixel. Bars report a `bbox` that sits below their visual top, so we anchor
676
+ * to `_offset + l2p(value)` instead.
677
+ */
678
+ yaxis?: {
679
+ _offset?: number;
680
+ l2p?: (value: number) => number;
681
+ };
682
+ xaxis?: {
683
+ _offset?: number;
684
+ l2p?: (value: number) => number;
685
+ };
686
+ }
687
+
688
+ /**
689
+ * Build default tooltip lines from Plotly hover points. Handles pie slices,
690
+ * text-carrying traces (e.g. PlateMap wells), single cartesian points, and
691
+ * unified multi-trace hovers.
692
+ */
693
+ export declare function chartTooltipLines(points: ChartTooltipHoverPoint[], labels?: {
694
+ xLabel?: string;
695
+ yLabel?: string;
696
+ }): string[];
697
+
698
+ export declare interface ChartTooltipProps {
699
+ /** Anchor position (viewport coordinates) and content lines */
700
+ anchor: ChartTooltipAnchor | null;
701
+ /** Ref to the bubble node, used by cursor-following charts to clamp it on-screen */
702
+ bubbleRef?: Ref<HTMLDivElement>;
703
+ }
704
+
705
+ /** Which edge of the point the tooltip is placed against (matches Radix). */
706
+ export declare type ChartTooltipSide = "top" | "bottom" | "left" | "right";
707
+
578
708
  export declare const Chat: ({ initialMessages, models, defaultModel, suggestions, onSend, className, }: ChatProps) => JSX.Element;
579
709
 
580
710
  export declare interface ChatMessage {
@@ -786,75 +916,6 @@ export declare function CollapsibleContent({ ...props }: React.ComponentProps<ty
786
916
 
787
917
  export declare function CollapsibleTrigger({ ...props }: React.ComponentProps<typeof Collapsible_2.CollapsibleTrigger>): JSX.Element;
788
918
 
789
- /**
790
- * Centralized color tokens that map to CSS variables
791
- * This provides TypeScript support while leveraging CSS custom properties
792
- */
793
- export declare const COLORS: {
794
- readonly BLACK_50: string;
795
- readonly BLACK_100: string;
796
- readonly BLACK_200: string;
797
- readonly BLACK_300: string;
798
- readonly BLACK_400: string;
799
- readonly BLACK_500: string;
800
- readonly BLACK_600: string;
801
- readonly BLACK_700: string;
802
- readonly BLACK_800: string;
803
- readonly BLACK_900: string;
804
- readonly BLACK: string;
805
- readonly BLACK_OPACITY_20: "rgba(26, 26, 26, 0.2)";
806
- readonly WHITE_50: string;
807
- readonly WHITE_100: string;
808
- readonly WHITE_200: string;
809
- readonly WHITE_300: string;
810
- readonly WHITE_400: string;
811
- readonly WHITE_500: string;
812
- readonly WHITE_600: string;
813
- readonly WHITE_700: string;
814
- readonly WHITE_800: string;
815
- readonly WHITE_900: string;
816
- readonly WHITE: string;
817
- readonly BLUE_50: string;
818
- readonly BLUE_100: string;
819
- readonly BLUE_200: string;
820
- readonly BLUE_300: string;
821
- readonly BLUE_400: string;
822
- readonly BLUE_500: string;
823
- readonly BLUE_600: string;
824
- readonly BLUE_700: string;
825
- readonly BLUE_800: string;
826
- readonly BLUE_900: string;
827
- readonly BLUE: string;
828
- readonly GREY_50: string;
829
- readonly GREY_100: string;
830
- readonly GREY_200: string;
831
- readonly GREY_300: string;
832
- readonly GREY_400: string;
833
- readonly GREY_500: string;
834
- readonly GREY_600: string;
835
- readonly GREY_700: string;
836
- readonly GREY_800: string;
837
- readonly GREY_900: string;
838
- readonly GREY: string;
839
- readonly ORANGE: string;
840
- readonly RED: string;
841
- readonly GREEN: string;
842
- readonly YELLOW: string;
843
- readonly PURPLE: string;
844
- readonly GREEN_BG: string;
845
- readonly GREEN_SUCCESS: string;
846
- readonly ORANGE_BG: string;
847
- readonly ORANGE_CAUTION: string;
848
- readonly RED_BG: string;
849
- readonly RED_ERROR: string;
850
- readonly GRAPH_SECONDARY_BROWN: string;
851
- readonly GRAPH_SECONDARY_PINK: string;
852
- readonly GRAPH_SECONDARY_TEAL: string;
853
- readonly GRAPH_SECONDARY_DARK_BLUE: string;
854
- readonly GRAPH_SECONDARY_BLACK: string;
855
- readonly GRAPH_SECONDARY_GREY: string;
856
- };
857
-
858
919
  /**
859
920
  * Color scale definition for the heatmap visualization mode.
860
921
  *
@@ -876,8 +937,6 @@ export declare const COLORS: {
876
937
  */
877
938
  export declare type ColorScale = string | Array<[number, string]>;
878
939
 
879
- export declare type ColorToken = keyof typeof COLORS;
880
-
881
940
  export declare const Combobox: typeof Combobox_2.Root;
882
941
 
883
942
  export declare function ComboboxChip({ className, children, showRemove, ...props }: Combobox_2.Chip.Props & {
@@ -1160,7 +1219,7 @@ export declare interface CostBreakdown {
1160
1219
  cache?: number;
1161
1220
  }
1162
1221
 
1163
- export declare function DataAppShell({ appName, appFullName, appIcon, version, navGroups, onAppNameClick, backToPlatformPath, onBackToPlatform, userMenu, breadcrumbs, onHelpClick, headerActions, sidebarPanel, children, className, }: DataAppShellProps): JSX.Element;
1222
+ export declare function DataAppShell({ appName, appFullName, appIcon, version, navGroups, onAppNameClick, backToPlatformPath, onBackToPlatform, userMenu, breadcrumbs, onHelpClick, headerActions, sidebarPanel, showNavRail, children, className, }: DataAppShellProps): JSX.Element;
1164
1223
 
1165
1224
  export declare interface DataAppShellProps {
1166
1225
  /** Application name/abbreviation shown in the logo button */
@@ -1189,6 +1248,8 @@ export declare interface DataAppShellProps {
1189
1248
  headerActions?: React_2.ReactNode;
1190
1249
  /** Slot rendered between the icon rail and the content (e.g. WorkflowPanel) */
1191
1250
  sidebarPanel?: React_2.ReactNode;
1251
+ /** Show the desktop icon nav rail. Set false to reclaim width when the panel is collapsed. */
1252
+ showNavRail?: boolean;
1192
1253
  /** Main content area */
1193
1254
  children: React_2.ReactNode;
1194
1255
  /** Additional className for the root container */
@@ -1316,7 +1377,15 @@ export declare interface DotPlotDataSeries {
1316
1377
 
1317
1378
  export declare type DotPlotProps = {
1318
1379
  dataSeries: DotPlotDataSeries | DotPlotDataSeries[];
1380
+ /**
1381
+ * Fixed width in pixels. When omitted, the chart fills its container and
1382
+ * tracks the container's width via a `ResizeObserver`.
1383
+ */
1319
1384
  width?: number;
1385
+ /**
1386
+ * Fixed height in pixels. When omitted, the chart fills its container and
1387
+ * tracks the container's height via a `ResizeObserver`.
1388
+ */
1320
1389
  height?: number;
1321
1390
  title?: string;
1322
1391
  xTitle?: string;
@@ -1554,7 +1623,15 @@ export declare interface HistogramDataSeries {
1554
1623
 
1555
1624
  export declare type HistogramProps = {
1556
1625
  dataSeries: HistogramDataSeries | HistogramDataSeries[];
1626
+ /**
1627
+ * Fixed width in pixels. When omitted, the chart fills its container and
1628
+ * tracks the container's width via a `ResizeObserver`.
1629
+ */
1557
1630
  width?: number;
1631
+ /**
1632
+ * Fixed height in pixels. When omitted, the chart fills its container and
1633
+ * tracks the container's height via a `ResizeObserver`.
1634
+ */
1558
1635
  height?: number;
1559
1636
  title?: string;
1560
1637
  xTitle?: string;
@@ -1798,7 +1875,8 @@ export declare interface LineDataSeries {
1798
1875
  x: number[];
1799
1876
  y: number[];
1800
1877
  name: string;
1801
- color: string;
1878
+ /** Optional color override (auto-assigned from CHART_COLORS if not provided) */
1879
+ color?: string;
1802
1880
  symbol?: MarkerSymbol;
1803
1881
  error_y?: {
1804
1882
  type: "data";
@@ -1811,7 +1889,15 @@ export declare const LineGraph: default_2.FC<LineGraphProps>;
1811
1889
 
1812
1890
  export declare type LineGraphProps = {
1813
1891
  dataSeries: LineDataSeries[];
1892
+ /**
1893
+ * Fixed width in pixels. When omitted, the chart fills its container and
1894
+ * tracks the container's width via a `ResizeObserver`.
1895
+ */
1814
1896
  width?: number;
1897
+ /**
1898
+ * Fixed height in pixels. When omitted, the chart fills its container and
1899
+ * tracks the container's height via a `ResizeObserver`.
1900
+ */
1815
1901
  height?: number;
1816
1902
  xRange?: [number, number];
1817
1903
  yRange?: [number, number];
@@ -1819,6 +1905,13 @@ export declare type LineGraphProps = {
1819
1905
  xTitle?: string;
1820
1906
  yTitle?: string;
1821
1907
  title?: string;
1908
+ /**
1909
+ * Categorical labels for the x-axis ticks. When provided, the x data values
1910
+ * still drive line positioning but the displayed tick labels match these
1911
+ * strings in order (e.g. ["Mon", "Tue", …]). Should align 1:1 with the
1912
+ * unique, ordered x values across all series.
1913
+ */
1914
+ xTickText?: string[];
1822
1915
  };
1823
1916
 
1824
1917
  export declare type LineGraphVariant = "lines" | "lines+markers" | "lines+markers+error_bars";
@@ -3160,6 +3253,24 @@ export declare interface ReferencedSourcesContext {
3160
3253
  clear: () => void;
3161
3254
  }
3162
3255
 
3256
+ /**
3257
+ * Resize handle between two panels.
3258
+ *
3259
+ * The handle's layout footprint is a **1px divider that sits exactly on the
3260
+ * panel boundary**, so the divider, the grip, and the seam between the panels
3261
+ * all line up — regardless of the panels' backgrounds. A wide, transparent
3262
+ * **grab area** is layered on top via `::after` (it overlaps both panels by 6px
3263
+ * without taking layout space) so the handle can be grabbed anywhere in the gap,
3264
+ * not just on the hairline.
3265
+ *
3266
+ * The 1px divider — and the optional grip (`withHandle`) — stay hidden at rest
3267
+ * and **reveal on hover, keyboard focus, or while dragging** (the handle tracks
3268
+ * the pointer, so it stays hovered). Keyboard focus reveals them in the `ring`
3269
+ * color for a clear focus indicator. Works in both orientations.
3270
+ *
3271
+ * Has a default `aria-label` so the separator always has an accessible name;
3272
+ * pass `aria-label` to override it with something context-specific.
3273
+ */
3163
3274
  export declare function ResizableHandle({ withHandle, className, ...props }: ResizablePrimitive.SeparatorProps & {
3164
3275
  withHandle?: boolean;
3165
3276
  }): JSX.Element;
@@ -3205,14 +3316,23 @@ export declare interface ScatterDataSeries {
3205
3316
  x: number[];
3206
3317
  y: number[];
3207
3318
  name: string;
3208
- color: string;
3319
+ /** Optional color override (auto-assigned from CHART_COLORS if not provided) */
3320
+ color?: string;
3209
3321
  }
3210
3322
 
3211
3323
  export declare const ScatterGraph: default_2.FC<ScatterGraphProps>;
3212
3324
 
3213
3325
  export declare interface ScatterGraphProps {
3214
3326
  dataSeries: ScatterDataSeries[];
3327
+ /**
3328
+ * Fixed width in pixels. When omitted, the chart fills its container and
3329
+ * tracks the container's width via a `ResizeObserver`.
3330
+ */
3215
3331
  width?: number;
3332
+ /**
3333
+ * Fixed height in pixels. When omitted, the chart fills its container and
3334
+ * tracks the container's height via a `ResizeObserver`.
3335
+ */
3216
3336
  height?: number;
3217
3337
  xRange?: [number, number];
3218
3338
  yRange?: [number, number];
@@ -3256,6 +3376,16 @@ export declare function SelectValue({ ...props }: React_2.ComponentProps<typeof
3256
3376
 
3257
3377
  export declare function Separator({ className, orientation, decorative, ...props }: React_2.ComponentProps<typeof Separator_2.Root>): JSX.Element;
3258
3378
 
3379
+ /**
3380
+ * Resolve the color for a data series: use the explicit color when one is
3381
+ * provided, otherwise cycle through the {@link CHART_COLORS} palette by series
3382
+ * index (wrapping around when there are more series than palette slots).
3383
+ *
3384
+ * @param index - Zero-based series index
3385
+ * @param explicit - Caller-provided color override, if any
3386
+ */
3387
+ export declare const seriesColor: (index: number, explicit?: string | null) => string;
3388
+
3259
3389
  export declare function Sheet({ ...props }: React_2.ComponentProps<typeof Dialog_2.Root>): JSX.Element;
3260
3390
 
3261
3391
  export declare function SheetClose({ ...props }: React_2.ComponentProps<typeof Dialog_2.Close>): JSX.Element;
@@ -3898,6 +4028,12 @@ declare type ToolUIPartApproval = {
3898
4028
  reason?: string;
3899
4029
  } | undefined;
3900
4030
 
4031
+ /**
4032
+ * Convert a color ramp (e.g. `CHART_SEQUENTIAL.blue`, `CHART_DIVERGING.blueOrange`)
4033
+ * into Plotly's colorscale format: evenly spaced [position, color] stops.
4034
+ */
4035
+ export declare const toPlotlyColorscale: (ramp: readonly string[]) => Array<[number, string]>;
4036
+
3901
4037
  export declare function triagePlateMapCsvByBarcode(text: string, options?: PlateMapCsvTriageOptions): PlateMapCsvTriage;
3902
4038
 
3903
4039
  export declare function triagePlateMapCsvFile(file: File, options?: PlateMapCsvTriageOptions): Promise<PlateMapCsvTriage | undefined>;
@@ -3913,6 +4049,47 @@ export declare function useCarousel(): CarouselContextProps;
3913
4049
 
3914
4050
  declare type UseCarouselParameters = Parameters<typeof default_3>;
3915
4051
 
4052
+ /**
4053
+ * Drives the design-system tooltip from Plotly hover events.
4054
+ *
4055
+ * ```tsx
4056
+ * const { bindTooltip, tooltipElement } = useChartTooltip({ xLabel, yLabel });
4057
+ * // after Plotly.newPlot(...): set trace hoverinfo to "none", then
4058
+ * bindTooltip(plotRef.current);
4059
+ * // anywhere in the chart markup:
4060
+ * {tooltipElement}
4061
+ * ```
4062
+ */
4063
+ export declare function useChartTooltip(options?: UseChartTooltipOptions): {
4064
+ bindTooltip: (plotDiv: HTMLElement | null) => void;
4065
+ tooltipElement: JSX.Element;
4066
+ };
4067
+
4068
+ export declare interface UseChartTooltipOptions {
4069
+ /** Axis label used for the default x line (falls back to "X") */
4070
+ xLabel?: string;
4071
+ /** Axis label used for the default y line (falls back to "Y") */
4072
+ yLabel?: string;
4073
+ /** Override the default line builder entirely */
4074
+ getLines?: (points: ChartTooltipHoverPoint[]) => string[];
4075
+ /**
4076
+ * Track the cursor instead of anchoring to the hovered point's bounds, and
4077
+ * keep the tooltip clamped inside the viewport. Use for traces with large
4078
+ * hover targets (e.g. pie slices) where a fixed anchor feels disconnected.
4079
+ */
4080
+ followCursor?: boolean;
4081
+ /**
4082
+ * Override Plotly's hover hit radius (px). A larger radius makes big markers
4083
+ * (e.g. heatmap circles) hoverable across their whole face.
4084
+ */
4085
+ hoverDistance?: number;
4086
+ /**
4087
+ * Preferred side to place the tooltip on relative to the point. Auto-flips to
4088
+ * the opposite side when there isn't room (Radix-style). Defaults to "top".
4089
+ */
4090
+ side?: ChartTooltipSide;
4091
+ }
4092
+
3916
4093
  export declare function useComboboxAnchor(): React_2.RefObject<HTMLDivElement | null>;
3917
4094
 
3918
4095
  export declare function useDataTable<TData = unknown>(): TableContextValue<TData>;