react-science 9.0.0 → 10.0.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 (264) hide show
  1. package/lib/app/about/AboutDialogToolbarButton.d.ts +1 -1
  2. package/lib/app/about/AboutDialogToolbarButton.d.ts.map +1 -1
  3. package/lib/app/about/AboutDialogToolbarButton.js +0 -1
  4. package/lib/app/about/AboutDialogToolbarButton.js.map +1 -1
  5. package/lib/app/explorer/ExplorerPlotView.d.ts.map +1 -1
  6. package/lib/app/explorer/ExplorerPlotView.js +5 -9
  7. package/lib/app/explorer/ExplorerPlotView.js.map +1 -1
  8. package/lib/app/explorer/MeasurementExplorer.d.ts +1 -1
  9. package/lib/app/explorer/MeasurementExplorer.d.ts.map +1 -1
  10. package/lib/app/explorer/MeasurementExplorer.js +1 -1
  11. package/lib/app/explorer/MeasurementExplorer.js.map +1 -1
  12. package/lib/app/helpers/react-plot.d.ts +1 -1
  13. package/lib/app/helpers/react-plot.d.ts.map +1 -1
  14. package/lib/app/helpers/react-plot.js.map +1 -1
  15. package/lib/app/helpers/splitEntries.d.ts +1 -1
  16. package/lib/app/helpers/splitEntries.d.ts.map +1 -1
  17. package/lib/app/helpers/splitEntries.js +1 -1
  18. package/lib/app/helpers/splitEntries.js.map +1 -1
  19. package/lib/app/hooks/file-loading.d.ts +3 -3
  20. package/lib/app/hooks/file-loading.d.ts.map +1 -1
  21. package/lib/app/hooks/file-loading.js +1 -1
  22. package/lib/app/hooks/file-loading.js.map +1 -1
  23. package/lib/app/kinds/iv/plot-view/IvSeries.d.ts +1 -1
  24. package/lib/app/kinds/iv/plot-view/IvSeries.d.ts.map +1 -1
  25. package/lib/app/kinds/iv/plot-view/IvSeries.js +1 -1
  26. package/lib/app/kinds/iv/plot-view/IvSeries.js.map +1 -1
  27. package/lib/app/kinds/mass/MeasurementMassPlot.d.ts +1 -1
  28. package/lib/app/kinds/mass/MeasurementMassPlot.d.ts.map +1 -1
  29. package/lib/app/kinds/mass/MeasurementMassPlot.js +1 -1
  30. package/lib/app/kinds/mass/MeasurementMassPlot.js.map +1 -1
  31. package/lib/app/panels/measurement-config/MeasurementConfigPanel.js.map +1 -1
  32. package/lib/app/panels/measurement-info/MeasurementInfoPanel.d.ts.map +1 -1
  33. package/lib/app/panels/measurement-info/MeasurementInfoPanel.js.map +1 -1
  34. package/lib/app/panels/measurements/MeasurementColorPreview.d.ts +1 -1
  35. package/lib/app/panels/measurements/MeasurementColorPreview.d.ts.map +1 -1
  36. package/lib/app/panels/measurements/MeasurementColorPreview.js +1 -1
  37. package/lib/app/panels/measurements/MeasurementColorPreview.js.map +1 -1
  38. package/lib/app/panels/measurements/MeasurementsPanel.d.ts +1 -1
  39. package/lib/app/panels/measurements/MeasurementsPanel.d.ts.map +1 -1
  40. package/lib/app/panels/measurements/MeasurementsPanel.js +0 -1
  41. package/lib/app/panels/measurements/MeasurementsPanel.js.map +1 -1
  42. package/lib/app/panels/measurements/MeasurementsTable.d.ts +1 -1
  43. package/lib/app/panels/measurements/MeasurementsTable.d.ts.map +1 -1
  44. package/lib/app/panels/measurements/MeasurementsTable.js.map +1 -1
  45. package/lib/app/panels/measurements/measurement_panel_context.d.ts +1 -1
  46. package/lib/app/panels/measurements/measurement_panel_context.d.ts.map +1 -1
  47. package/lib/app/panels/measurements/measurement_panel_context.js +0 -1
  48. package/lib/app/panels/measurements/measurement_panel_context.js.map +1 -1
  49. package/lib/app/panels/measurements/measurement_panel_context.provider.d.ts +1 -1
  50. package/lib/app/panels/measurements/measurement_panel_context.provider.d.ts.map +1 -1
  51. package/lib/app/panels/measurements/measurement_panel_context.provider.js +1 -1
  52. package/lib/app/panels/measurements/measurement_panel_context.provider.js.map +1 -1
  53. package/lib/app-data/kinds/ir/irAutoPeakPickingEnhancer.d.ts +1 -1
  54. package/lib/app-data/kinds/ir/irAutoPeakPickingEnhancer.d.ts.map +1 -1
  55. package/lib/app-data/kinds/ir/irAutoPeakPickingEnhancer.js.map +1 -1
  56. package/lib/app-data/loaders/loadMeasurements.d.ts +2 -2
  57. package/lib/app-data/loaders/loadMeasurements.d.ts.map +1 -1
  58. package/lib/app-data/loaders/loadMeasurements.js +2 -2
  59. package/lib/app-data/loaders/loadMeasurements.js.map +1 -1
  60. package/lib/app-data/loaders/proprietary/agilent/cary500Loader.d.ts +1 -1
  61. package/lib/app-data/loaders/proprietary/agilent/cary500Loader.d.ts.map +1 -1
  62. package/lib/app-data/loaders/proprietary/agilent/cary500Loader.js +1 -1
  63. package/lib/app-data/loaders/proprietary/agilent/cary500Loader.js.map +1 -1
  64. package/lib/app-data/loaders/wdfLoader.d.ts.map +1 -1
  65. package/lib/app-data/loaders/wdfLoader.js.map +1 -1
  66. package/lib/app-data/state/app_state.actions.d.ts +2 -2
  67. package/lib/app-data/state/app_state.actions.d.ts.map +1 -1
  68. package/lib/app-data/state/app_state.actions.js +1 -2
  69. package/lib/app-data/state/app_state.actions.js.map +1 -1
  70. package/lib/app-data/state/app_state.d.ts +5 -5
  71. package/lib/app-data/state/app_state.d.ts.map +1 -1
  72. package/lib/app-data/state/app_state.js +0 -1
  73. package/lib/app-data/state/app_state.js.map +1 -1
  74. package/lib/app-data/state/app_state.provider.d.ts +1 -1
  75. package/lib/app-data/state/app_state.provider.d.ts.map +1 -1
  76. package/lib/app-data/state/app_state.provider.js.map +1 -1
  77. package/lib/app-data/state/producers/app_state_producer.d.ts +3 -3
  78. package/lib/app-data/state/producers/app_state_producer.d.ts.map +1 -1
  79. package/lib/app-data/state/producers/app_state_producer.js +0 -3
  80. package/lib/app-data/state/producers/app_state_producer.js.map +1 -1
  81. package/lib/app-data/state/producers/measurements/addMeasurements.js.map +1 -1
  82. package/lib/app-data/state/producers/plot-view/helpers/zoom.d.ts +1 -1
  83. package/lib/app-data/state/producers/plot-view/helpers/zoom.d.ts.map +1 -1
  84. package/lib/app-data/state/producers/plot-view/helpers/zoom.js +1 -1
  85. package/lib/app-data/state/producers/plot-view/helpers/zoom.js.map +1 -1
  86. package/lib/app-data/state/settings/get_empty_app_settings.d.ts +1 -1
  87. package/lib/app-data/state/settings/get_empty_app_settings.d.ts.map +1 -1
  88. package/lib/app-data/state/settings/get_empty_app_settings.js +0 -1
  89. package/lib/app-data/state/settings/get_empty_app_settings.js.map +1 -1
  90. package/lib/app-data/state/view/app_view.d.ts +1 -1
  91. package/lib/app-data/state/view/app_view.d.ts.map +1 -1
  92. package/lib/app-data/state/view/app_view.js +1 -1
  93. package/lib/app-data/state/view/app_view.js.map +1 -1
  94. package/lib/app-data/state/view/get_empty_app_view.d.ts +1 -1
  95. package/lib/app-data/state/view/get_empty_app_view.d.ts.map +1 -1
  96. package/lib/app-data/state/view/get_empty_app_view.js +0 -1
  97. package/lib/app-data/state/view/get_empty_app_view.js.map +1 -1
  98. package/lib/components/accordion/accordion_context.d.ts +1 -1
  99. package/lib/components/accordion/accordion_context.d.ts.map +1 -1
  100. package/lib/components/accordion/accordion_context.js +1 -1
  101. package/lib/components/accordion/accordion_context.js.map +1 -1
  102. package/lib/components/accordion/accordion_context.provider.d.ts +1 -1
  103. package/lib/components/accordion/accordion_context.provider.d.ts.map +1 -1
  104. package/lib/components/accordion/accordion_context.provider.js.map +1 -1
  105. package/lib/components/accordion/accordion_context.state.d.ts.map +1 -1
  106. package/lib/components/accordion/accordion_context.state.js.map +1 -1
  107. package/lib/components/activity_bar/activity_bar.d.ts +5 -6
  108. package/lib/components/activity_bar/activity_bar.d.ts.map +1 -1
  109. package/lib/components/activity_bar/activity_bar.js +39 -33
  110. package/lib/components/activity_bar/activity_bar.js.map +1 -1
  111. package/lib/components/activity_panel/activity_panel.d.ts +15 -0
  112. package/lib/components/activity_panel/activity_panel.d.ts.map +1 -0
  113. package/lib/components/activity_panel/activity_panel.js +45 -0
  114. package/lib/components/activity_panel/activity_panel.js.map +1 -0
  115. package/lib/components/activity_panel/index.d.ts +2 -0
  116. package/lib/components/activity_panel/index.d.ts.map +1 -0
  117. package/lib/components/activity_panel/index.js +2 -0
  118. package/lib/components/activity_panel/index.js.map +1 -0
  119. package/lib/components/button/Button.d.ts +2 -2
  120. package/lib/components/button/Button.d.ts.map +1 -1
  121. package/lib/components/button/Button.js +4 -1
  122. package/lib/components/button/Button.js.map +1 -1
  123. package/lib/components/color-picker/color-picker-dropdown/ColorPickerDropdown.d.ts +2 -2
  124. package/lib/components/color-picker/color-picker-dropdown/ColorPickerDropdown.d.ts.map +1 -1
  125. package/lib/components/color-picker/color-picker-dropdown/ColorPickerDropdown.js +1 -1
  126. package/lib/components/color-picker/color-picker-dropdown/ColorPickerDropdown.js.map +1 -1
  127. package/lib/components/color-picker/gradient_select/gradient_select.d.ts +1 -1
  128. package/lib/components/color-picker/gradient_select/gradient_select.d.ts.map +1 -1
  129. package/lib/components/color-picker/gradient_select/gradient_select.js +1 -1
  130. package/lib/components/color-picker/gradient_select/gradient_select.js.map +1 -1
  131. package/lib/components/color-picker/preview/FixedGradientPreview.d.ts +1 -1
  132. package/lib/components/color-picker/preview/FixedGradientPreview.d.ts.map +1 -1
  133. package/lib/components/color-picker/preview/FixedGradientPreview.js +1 -1
  134. package/lib/components/color-picker/preview/FixedGradientPreview.js.map +1 -1
  135. package/lib/components/color-picker/react-color/ColorPicker.d.ts +1 -1
  136. package/lib/components/color-picker/react-color/ColorPicker.d.ts.map +1 -1
  137. package/lib/components/color-picker/react-color/ColorPicker.js +1 -1
  138. package/lib/components/color-picker/react-color/ColorPicker.js.map +1 -1
  139. package/lib/components/color-picker/react-color/sketch/SketchFields.d.ts.map +1 -1
  140. package/lib/components/color-picker/react-color/sketch/SketchFields.js.map +1 -1
  141. package/lib/components/color-picker/react-color/sketch/SketchPresetColors.d.ts.map +1 -1
  142. package/lib/components/color-picker/react-color/sketch/SketchPresetColors.js.map +1 -1
  143. package/lib/components/dialog/ConfirmDialog.d.ts +1 -1
  144. package/lib/components/dialog/ConfirmDialog.d.ts.map +1 -1
  145. package/lib/components/dialog/ConfirmDialog.js +1 -2
  146. package/lib/components/dialog/ConfirmDialog.js.map +1 -1
  147. package/lib/components/forms/radio-group/ButtonRadioItem.d.ts.map +1 -1
  148. package/lib/components/forms/radio-group/ButtonRadioItem.js.map +1 -1
  149. package/lib/components/fullscreen/fullscreen_context.provider.d.ts +1 -1
  150. package/lib/components/fullscreen/fullscreen_context.provider.d.ts.map +1 -1
  151. package/lib/components/fullscreen/fullscreen_context.provider.js +0 -1
  152. package/lib/components/fullscreen/fullscreen_context.provider.js.map +1 -1
  153. package/lib/components/hooks/useModifiedPopper.d.ts +2 -2
  154. package/lib/components/hooks/useModifiedPopper.d.ts.map +1 -1
  155. package/lib/components/hooks/useModifiedPopper.js +0 -1
  156. package/lib/components/hooks/useModifiedPopper.js.map +1 -1
  157. package/lib/components/hooks/useOnClickOutside.d.ts +1 -1
  158. package/lib/components/hooks/useOnClickOutside.d.ts.map +1 -1
  159. package/lib/components/hooks/useOnClickOutside.js.map +1 -1
  160. package/lib/components/hooks/useSelect.d.ts +2 -2
  161. package/lib/components/hooks/useSelect.d.ts.map +1 -1
  162. package/lib/components/hooks/useSelect.js +0 -1
  163. package/lib/components/hooks/useSelect.js.map +1 -1
  164. package/lib/components/index.d.ts +1 -0
  165. package/lib/components/index.d.ts.map +1 -1
  166. package/lib/components/index.js +1 -0
  167. package/lib/components/index.js.map +1 -1
  168. package/lib/components/info-panel/InfoPanel.d.ts +1 -1
  169. package/lib/components/info-panel/InfoPanel.d.ts.map +1 -1
  170. package/lib/components/info-panel/InfoPanel.js +14 -25
  171. package/lib/components/info-panel/InfoPanel.js.map +1 -1
  172. package/lib/components/logger/FifoLoggerDialog.d.ts.map +1 -1
  173. package/lib/components/logger/FifoLoggerDialog.js.map +1 -1
  174. package/lib/components/logger/FifoLoggerToolbarItem.js +0 -1
  175. package/lib/components/logger/FifoLoggerToolbarItem.js.map +1 -1
  176. package/lib/components/root-layout/root_layout.d.ts +1 -1
  177. package/lib/components/root-layout/root_layout.d.ts.map +1 -1
  178. package/lib/components/root-layout/root_layout.js +1 -1
  179. package/lib/components/root-layout/root_layout.js.map +1 -1
  180. package/lib/components/split-pane/SplitPane.d.ts +1 -1
  181. package/lib/components/split-pane/SplitPane.d.ts.map +1 -1
  182. package/lib/components/split-pane/SplitPane.js +4 -3
  183. package/lib/components/split-pane/SplitPane.js.map +1 -1
  184. package/lib/components/table/table_header_cell.d.ts +1 -1
  185. package/lib/components/table/table_header_cell.d.ts.map +1 -1
  186. package/lib/components/table/table_header_cell.js.map +1 -1
  187. package/lib/components/table/table_root.d.ts +1 -1
  188. package/lib/components/table/table_root.d.ts.map +1 -1
  189. package/lib/components/table/table_root.js.map +1 -1
  190. package/lib/components/table/table_row_cell.d.ts +1 -1
  191. package/lib/components/table/table_row_cell.d.ts.map +1 -1
  192. package/lib/components/table/table_row_cell.js.map +1 -1
  193. package/lib/components/table/table_utils.d.ts +1 -1
  194. package/lib/components/table/table_utils.d.ts.map +1 -1
  195. package/lib/components/table/table_utils.js +1 -1
  196. package/lib/components/table/table_utils.js.map +1 -1
  197. package/lib/components/toolbar/Toolbar.d.ts +12 -8
  198. package/lib/components/toolbar/Toolbar.d.ts.map +1 -1
  199. package/lib/components/toolbar/Toolbar.js +11 -11
  200. package/lib/components/toolbar/Toolbar.js.map +1 -1
  201. package/lib/components/toolbar/toolbarContext.d.ts +1 -1
  202. package/lib/components/toolbar/toolbarContext.d.ts.map +1 -1
  203. package/lib/components/toolbar/toolbarContext.js +0 -1
  204. package/lib/components/toolbar/toolbarContext.js.map +1 -1
  205. package/package.json +36 -35
  206. package/src/app/about/AboutDialogToolbarButton.tsx +1 -1
  207. package/src/app/explorer/ExplorerPlotView.tsx +6 -9
  208. package/src/app/explorer/MeasurementExplorer.tsx +2 -4
  209. package/src/app/helpers/react-plot.tsx +2 -1
  210. package/src/app/helpers/splitEntries.ts +5 -5
  211. package/src/app/hooks/file-loading.ts +6 -3
  212. package/src/app/kinds/iv/plot-view/IvSeries.tsx +2 -5
  213. package/src/app/kinds/mass/MeasurementMassPlot.tsx +2 -4
  214. package/src/app/panels/measurement-config/MeasurementConfigPanel.tsx +1 -1
  215. package/src/app/panels/measurement-info/MeasurementInfoPanel.tsx +2 -1
  216. package/src/app/panels/measurements/MeasurementColorPreview.tsx +2 -5
  217. package/src/app/panels/measurements/MeasurementsPanel.tsx +3 -2
  218. package/src/app/panels/measurements/MeasurementsTable.tsx +5 -3
  219. package/src/app/panels/measurements/measurement_panel_context.provider.tsx +2 -4
  220. package/src/app/panels/measurements/measurement_panel_context.ts +1 -1
  221. package/src/app-data/kinds/ir/irAutoPeakPickingEnhancer.ts +2 -1
  222. package/src/app-data/loaders/loadMeasurements.ts +4 -11
  223. package/src/app-data/loaders/proprietary/agilent/cary500Loader.ts +2 -5
  224. package/src/app-data/loaders/wdfLoader.ts +2 -1
  225. package/src/app-data/state/app_state.actions.ts +5 -5
  226. package/src/app-data/state/app_state.provider.tsx +2 -1
  227. package/src/app-data/state/app_state.ts +9 -5
  228. package/src/app-data/state/producers/app_state_producer.ts +3 -3
  229. package/src/app-data/state/producers/measurements/addMeasurements.ts +1 -1
  230. package/src/app-data/state/producers/plot-view/helpers/zoom.ts +6 -6
  231. package/src/app-data/state/settings/get_empty_app_settings.ts +1 -1
  232. package/src/app-data/state/view/app_view.ts +1 -1
  233. package/src/app-data/state/view/get_empty_app_view.ts +1 -1
  234. package/src/components/accordion/accordion_context.provider.tsx +4 -2
  235. package/src/components/accordion/accordion_context.state.ts +2 -1
  236. package/src/components/accordion/accordion_context.ts +4 -4
  237. package/src/components/activity_bar/activity_bar.tsx +49 -53
  238. package/src/components/activity_panel/activity_panel.tsx +75 -0
  239. package/src/components/activity_panel/index.ts +1 -0
  240. package/src/components/button/Button.tsx +12 -5
  241. package/src/components/color-picker/color-picker-dropdown/ColorPickerDropdown.tsx +4 -5
  242. package/src/components/color-picker/gradient_select/gradient_select.tsx +4 -5
  243. package/src/components/color-picker/preview/FixedGradientPreview.tsx +2 -4
  244. package/src/components/color-picker/react-color/ColorPicker.tsx +2 -7
  245. package/src/components/color-picker/react-color/sketch/SketchFields.tsx +2 -1
  246. package/src/components/color-picker/react-color/sketch/SketchPresetColors.tsx +2 -1
  247. package/src/components/dialog/ConfirmDialog.tsx +2 -6
  248. package/src/components/forms/radio-group/ButtonRadioItem.tsx +2 -1
  249. package/src/components/fullscreen/fullscreen_context.provider.tsx +2 -1
  250. package/src/components/hooks/useModifiedPopper.ts +5 -3
  251. package/src/components/hooks/useOnClickOutside.ts +2 -1
  252. package/src/components/hooks/useSelect.tsx +3 -2
  253. package/src/components/index.ts +1 -0
  254. package/src/components/info-panel/InfoPanel.tsx +20 -32
  255. package/src/components/logger/FifoLoggerDialog.tsx +2 -1
  256. package/src/components/logger/FifoLoggerToolbarItem.tsx +1 -1
  257. package/src/components/root-layout/root_layout.tsx +2 -6
  258. package/src/components/split-pane/SplitPane.tsx +9 -11
  259. package/src/components/table/table_header_cell.tsx +2 -1
  260. package/src/components/table/table_root.tsx +1 -2
  261. package/src/components/table/table_row_cell.tsx +2 -1
  262. package/src/components/table/table_utils.ts +2 -6
  263. package/src/components/toolbar/Toolbar.tsx +37 -38
  264. package/src/components/toolbar/toolbarContext.ts +1 -1
@@ -1,16 +1,11 @@
1
- /** @jsxImportSource @emotion/react */
1
+ import type { TooltipProps } from '@blueprintjs/core';
2
+ import { ButtonGroup, Classes, Colors, Icon } from '@blueprintjs/core';
3
+ import styled from '@emotion/styled';
4
+ import type { MouseEvent, ReactNode } from 'react';
5
+ import { cloneElement } from 'react';
2
6
 
3
- import {
4
- ButtonGroup,
5
- Classes,
6
- Colors,
7
- Icon,
8
- type TooltipProps,
9
- } from '@blueprintjs/core';
10
- import { css } from '@emotion/react';
11
- import { cloneElement, type MouseEvent, type ReactNode } from 'react';
12
-
13
- import { Button, type ButtonProps } from '../button/index.js';
7
+ import type { ButtonProps } from '../button/index.js';
8
+ import { Button } from '../button/index.js';
14
9
 
15
10
  export interface ActivityBarProps {
16
11
  children: ReactNode;
@@ -24,23 +19,53 @@ export interface ActivityBarItemProps
24
19
  disabled?: boolean;
25
20
  }
26
21
 
22
+ const ActivityButtonGroup = styled(ButtonGroup)`
23
+ flex-wrap: wrap-reverse;
24
+ height: 100%;
25
+ gap: 4px;
26
+ padding: 4px;
27
+ border-left: 1px solid ${Colors.LIGHT_GRAY4};
28
+ background-color: ${Colors.WHITE};
29
+ `;
30
+
27
31
  export function ActivityBar(props: ActivityBarProps) {
28
32
  const { children } = props;
29
33
 
30
34
  return (
31
- <ButtonGroup
32
- vertical
33
- large
34
- minimal
35
- style={{
36
- flexWrap: 'wrap-reverse',
37
- }}
38
- >
35
+ <ActivityButtonGroup vertical large minimal>
39
36
  {children}
40
- </ButtonGroup>
37
+ </ActivityButtonGroup>
41
38
  );
42
39
  }
43
40
 
41
+ const ActivityButton = styled(Button)`
42
+ font-size: 1.125em;
43
+ width: fit-content;
44
+ .${Classes.ICON} {
45
+ color: ${Colors.DARK_GRAY3};
46
+ }
47
+ .bp5-icon {
48
+ width: 20px;
49
+ height: 20px;
50
+ font-size: 14px;
51
+ }
52
+ .bp5-tag {
53
+ font-size: 12px;
54
+ line-height: 14px;
55
+ min-width: 18px;
56
+ min-height: 18px;
57
+ }
58
+ `;
59
+
60
+ const ActivityButtonIconContainer = styled.div`
61
+ display: flex;
62
+ justify-content: center;
63
+ align-items: center;
64
+ width: 0;
65
+ height: 0;
66
+ margin-right: 0;
67
+ `;
68
+
44
69
  export function ActivityBarItem(props: ActivityBarItemProps) {
45
70
  const {
46
71
  active = false,
@@ -61,42 +86,13 @@ export function ActivityBarItem(props: ActivityBarItemProps) {
61
86
  });
62
87
 
63
88
  return (
64
- <Button
89
+ <ActivityButton
65
90
  type="button"
66
- css={css`
67
- .${Classes.ICON} {
68
- color: ${Colors.DARK_GRAY3};
69
- }
70
- .bp5-icon {
71
- width: 20px;
72
- height: 20px;
73
- font-size: 14px;
74
- }
75
- .bp5-tag {
76
- font-size: 12px;
77
- line-height: 14px;
78
- min-width: 18px;
79
- min-height: 18px;
80
- }
81
- `}
82
- style={{
83
- fontSize: '1.125em',
84
- width: 'fit-content',
85
- }}
86
91
  active={active}
87
92
  icon={
88
- <div
89
- style={{
90
- display: 'flex',
91
- justifyContent: 'center',
92
- alignItems: 'center',
93
- width: 0,
94
- height: 0,
95
- marginRight: 0,
96
- }}
97
- >
93
+ <ActivityButtonIconContainer>
98
94
  <Icon icon={resizedIcon} size={20} />
99
- </div>
95
+ </ActivityButtonIconContainer>
100
96
  }
101
97
  onClick={onClick}
102
98
  tooltipProps={
@@ -0,0 +1,75 @@
1
+ import { Colors } from '@blueprintjs/core';
2
+ import styled from '@emotion/styled';
3
+ import type { ReactNode } from 'react';
4
+
5
+ import { Button } from '../button/index.js';
6
+
7
+ const PADDING_LG = 8;
8
+ const PADDING_SM = 4;
9
+
10
+ export interface ActivityPanelProps {
11
+ children: ReactNode;
12
+ }
13
+
14
+ export interface ActivityPanelItemProps {
15
+ title: string;
16
+ children: ReactNode;
17
+ onClose: () => void;
18
+ }
19
+
20
+ const PanelContainer = styled.div`
21
+ display: flex;
22
+ flex-grow: 1;
23
+ flex-direction: column;
24
+ background-color: ${Colors.LIGHT_GRAY5};
25
+ gap: 1px;
26
+ border-left: 1px solid ${Colors.LIGHT_GRAY4};
27
+ `;
28
+
29
+ const PanelItemContainer = styled.div`
30
+ flex-grow: 1;
31
+ display: flex;
32
+ background-color: ${Colors.WHITE};
33
+ flex-direction: column;
34
+ `;
35
+
36
+ const PanelItemHeader = styled.div`
37
+ display: flex;
38
+ justify-content: space-between;
39
+ align-items: center;
40
+ padding: ${PADDING_SM}px ${PADDING_LG}px ${PADDING_SM}px ${PADDING_LG}px;
41
+ background-color: ${Colors.LIGHT_GRAY4};
42
+ `;
43
+
44
+ const PanelItemContent = styled.div`
45
+ flex-grow: 1;
46
+ padding: ${PADDING_LG}px;
47
+ `;
48
+
49
+ const PanelItemTitle = styled.div`
50
+ color: ${Colors.DARK_GRAY5};
51
+ font-weight: bold;
52
+ `;
53
+
54
+ export function ActivityPanel(props: ActivityPanelProps) {
55
+ const { children } = props;
56
+
57
+ return <PanelContainer>{children}</PanelContainer>;
58
+ }
59
+
60
+ export function ActivityPanelItem(props: ActivityPanelItemProps) {
61
+ const { title, children, onClose } = props;
62
+
63
+ return (
64
+ <PanelItemContainer>
65
+ <PanelItemHeader>
66
+ <PanelItemTitle>{title}</PanelItemTitle>
67
+ <Button minimal icon="cross" onClick={onClose} />
68
+ </PanelItemHeader>
69
+
70
+ <PanelItemContent>{children}</PanelItemContent>
71
+ </PanelItemContainer>
72
+ );
73
+ }
74
+
75
+ ActivityPanel.Item = ActivityPanelItem;
@@ -0,0 +1 @@
1
+ export * from './activity_panel.js';
@@ -1,17 +1,20 @@
1
1
  /** @jsxImportSource @emotion/react */
2
+ import type {
3
+ AnchorButtonProps as BlueprintAnchorButtonProps,
4
+ ButtonProps as BlueprintButtonProps,
5
+ TagProps,
6
+ TooltipProps,
7
+ } from '@blueprintjs/core';
2
8
  import {
3
9
  AnchorButton as BlueprintAnchorButton,
4
- type AnchorButtonProps as BlueprintAnchorButtonProps,
5
10
  Button as BlueprintButton,
6
- type ButtonProps as BlueprintButtonProps,
7
11
  Icon,
8
12
  Tag,
9
- type TagProps,
10
13
  Tooltip,
11
- type TooltipProps,
12
14
  } from '@blueprintjs/core';
13
15
  import { css } from '@emotion/react';
14
- import { Fragment, type ReactNode } from 'react';
16
+ import type { ReactNode } from 'react';
17
+ import { Fragment } from 'react';
15
18
 
16
19
  type BlueprintProps = {
17
20
  [key in keyof BlueprintButtonProps &
@@ -44,6 +47,10 @@ export function Button(props: ButtonProps) {
44
47
  renderTarget={({ isOpen, ...targetProps }) => (
45
48
  <InnerButton
46
49
  css={css({
50
+ // Setting the line-height makes sure regular sized buttons have a
51
+ // height consistent with the input fields and across variants.
52
+ // Using the same line height as in the blueprint docs.
53
+ lineHeight: 1.15,
47
54
  position: 'relative',
48
55
  '.bp5-icon': !children && {
49
56
  marginRight: '0',
@@ -1,11 +1,10 @@
1
- import { Popover, type PopoverProps } from '@blueprintjs/core';
1
+ import type { PopoverProps } from '@blueprintjs/core';
2
+ import { Popover } from '@blueprintjs/core';
2
3
  import styled from '@emotion/styled';
3
4
 
4
5
  import FixedColorPreview from '../preview/FixedColorPreview.js';
5
- import {
6
- ColorPicker,
7
- type ColorPickerProps,
8
- } from '../react-color/ColorPicker.js';
6
+ import type { ColorPickerProps } from '../react-color/ColorPicker.js';
7
+ import { ColorPicker } from '../react-color/ColorPicker.js';
9
8
  import * as colorHelper from '../react-color/helpers/color.js';
10
9
 
11
10
  interface ColorPickerDropdownProps
@@ -1,16 +1,15 @@
1
1
  /** @jsxImportSource @emotion/react */
2
2
  import { Button, MenuItem } from '@blueprintjs/core';
3
- import { type ItemRenderer, Select } from '@blueprintjs/select';
3
+ import type { ItemRenderer } from '@blueprintjs/select';
4
+ import { Select } from '@blueprintjs/select';
4
5
  import { css } from '@emotion/react';
5
6
  import styled from '@emotion/styled';
6
7
  import { FaChevronDown } from 'react-icons/fa';
7
8
 
8
9
  import FixedGradientPreview from '../preview/FixedGradientPreview.js';
9
10
 
10
- import {
11
- fixedGradientScales,
12
- type GradientScaleName,
13
- } from './gradient_select.utils.js';
11
+ import type { GradientScaleName } from './gradient_select.utils.js';
12
+ import { fixedGradientScales } from './gradient_select.utils.js';
14
13
 
15
14
  const scaleOptions = Object.keys(fixedGradientScales) as GradientScaleName[];
16
15
 
@@ -1,9 +1,7 @@
1
1
  import { useMemo } from 'react';
2
2
 
3
- import {
4
- fixedGradientScales,
5
- type GradientScaleName,
6
- } from '../gradient_select/index.js';
3
+ import type { GradientScaleName } from '../gradient_select/index.js';
4
+ import { fixedGradientScales } from '../gradient_select/index.js';
7
5
 
8
6
  interface FixedGradientPreviewProps {
9
7
  gradient: GradientScaleName;
@@ -1,11 +1,6 @@
1
1
  import lodashDebounce from 'lodash/debounce.js';
2
- import {
3
- type CSSProperties,
4
- useCallback,
5
- useEffect,
6
- useRef,
7
- useState,
8
- } from 'react';
2
+ import type { CSSProperties } from 'react';
3
+ import { useCallback, useEffect, useRef, useState } from 'react';
9
4
 
10
5
  import { defaultColorPalette } from '../palette.js';
11
6
 
@@ -1,4 +1,5 @@
1
- import { type CSSProperties, useCallback } from 'react';
1
+ import type { CSSProperties } from 'react';
2
+ import { useCallback } from 'react';
2
3
 
3
4
  import type { HSL, RGB } from '../ColorPicker.js';
4
5
  import { EditableInput } from '../common/index.js';
@@ -1,4 +1,5 @@
1
- import { type CSSProperties, type MouseEvent, useCallback } from 'react';
1
+ import type { CSSProperties, MouseEvent } from 'react';
2
+ import { useCallback } from 'react';
2
3
 
3
4
  import { Swatch } from '../common/index.js';
4
5
 
@@ -1,10 +1,6 @@
1
1
  /** @jsxImportSource @emotion/react */
2
- import {
3
- Dialog,
4
- DialogBody,
5
- DialogFooter,
6
- type DialogProps,
7
- } from '@blueprintjs/core';
2
+ import type { DialogProps } from '@blueprintjs/core';
3
+ import { Dialog, DialogBody, DialogFooter } from '@blueprintjs/core';
8
4
  import { css } from '@emotion/react';
9
5
 
10
6
  import { Button } from '../button/index.js';
@@ -2,7 +2,8 @@
2
2
  import { css } from '@emotion/react';
3
3
  import * as RadioGroup from '@radix-ui/react-radio-group';
4
4
 
5
- import { enabledColor, type InputVariant } from '../styles.js';
5
+ import type { InputVariant } from '../styles.js';
6
+ import { enabledColor } from '../styles.js';
6
7
 
7
8
  import type { RadioGroupProps, RadioOption } from './RadioGroup.js';
8
9
 
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable no-alert */
2
- import { type ReactNode, useEffect, useMemo, useReducer, useRef } from 'react';
2
+ import type { ReactNode } from 'react';
3
+ import { useEffect, useMemo, useReducer, useRef } from 'react';
3
4
 
4
5
  import { fullscreenContext, useFullscreen } from './fullscreen_context.js';
5
6
 
@@ -1,6 +1,8 @@
1
- import { type Placement } from '@popperjs/core';
2
- import { type HTMLAttributes, useState } from 'react';
3
- import { type Modifier, usePopper } from 'react-popper';
1
+ import type { Placement } from '@popperjs/core';
2
+ import type { HTMLAttributes } from 'react';
3
+ import { useState } from 'react';
4
+ import type { Modifier } from 'react-popper';
5
+ import { usePopper } from 'react-popper';
4
6
 
5
7
  const sameWidthModifier: Modifier<'sameWidth'> = {
6
8
  name: 'sameWidth',
@@ -1,4 +1,5 @@
1
- import { type RefObject, useEffect } from 'react';
1
+ import type { RefObject } from 'react';
2
+ import { useEffect } from 'react';
2
3
 
3
4
  import { useRootLayoutContext } from '../root-layout/root_layout_context.js';
4
5
 
@@ -1,6 +1,7 @@
1
1
  import { MenuItem } from '@blueprintjs/core';
2
- import { type ItemRenderer } from '@blueprintjs/select';
3
- import { type ReactNode, useState } from 'react';
2
+ import type { ItemRenderer } from '@blueprintjs/select';
3
+ import type { ReactNode } from 'react';
4
+ import { useState } from 'react';
4
5
 
5
6
  type FilterType<SourceType, Type> = Pick<
6
7
  SourceType,
@@ -14,6 +14,7 @@ export * from './split-pane/index.js';
14
14
  export * from './table/index.js';
15
15
  export * from './toolbar/index.js';
16
16
  export * from './activity_bar/index.js';
17
+ export * from './activity_panel/index.js';
17
18
  export * from './utils/index.js';
18
19
  export * from './selected-total/index.js';
19
20
  export * as ValueRenderers from './value-renderers/index.js';
@@ -2,13 +2,9 @@
2
2
  import { Icon, InputGroup } from '@blueprintjs/core';
3
3
  import { css } from '@emotion/react';
4
4
  import * as Collapsible from '@radix-ui/react-collapsible';
5
- import {
6
- type CSSProperties,
7
- memo,
8
- useCallback,
9
- useMemo,
10
- useState,
11
- } from 'react';
5
+ import type { CSSProperties } from 'react';
6
+ import { memo, useCallback, useMemo, useState } from 'react';
7
+ import { match, P } from 'ts-pattern';
12
8
 
13
9
  import { SelectedTotal } from '../selected-total/index.js';
14
10
  import { createTableColumnHelper, Table } from '../table/index.js';
@@ -256,18 +252,16 @@ const InfoPanelContent = memo((props: InfoPanelContentProps) => {
256
252
  * @returns - ValueRenderers component.
257
253
  */
258
254
  function valueCell(value: number | string | object | boolean) {
259
- switch (typeof value) {
260
- case 'boolean':
261
- return <ValueRenderers.Text value={value ? 'Yes' : 'No'} />;
262
- case 'number':
263
- return <ValueRenderers.Number value={value} />;
264
- case 'object':
265
- return <ValueRenderers.Object value={value} />;
266
- case 'string':
267
- return <ValueRenderers.Text value={value} />;
268
- default:
269
- return <ValueRenderers.Text value={value} />;
270
- }
255
+ return match(value)
256
+ .with(P.boolean, (value) => (
257
+ <ValueRenderers.Text value={value ? 'Yes' : 'No'} />
258
+ ))
259
+ .with(P.number, (value) => <ValueRenderers.Number value={value} />)
260
+ .with(P.string, (value) => <ValueRenderers.Text value={value} />)
261
+ .with({}, (value) => <ValueRenderers.Object value={value} />)
262
+ .otherwise((value) => (
263
+ <ValueRenderers.Text value={String(value as unknown)} />
264
+ ));
271
265
  }
272
266
 
273
267
  /**
@@ -283,19 +277,13 @@ function valueSearch(
283
277
  lowerCase = true,
284
278
  ): boolean {
285
279
  if (lowerCase) {
286
- value = String(value).toLowerCase();
280
+ value = String(value as unknown).toLowerCase();
287
281
  search = search.toLowerCase();
288
282
  }
289
- switch (typeof value) {
290
- case 'number':
291
- return String(value).includes(search);
292
- case 'boolean':
293
- return String(value).includes(search);
294
- case 'object':
295
- return JSON.stringify(value).includes(search);
296
- case 'string':
297
- return value.includes(search);
298
- default:
299
- return true;
300
- }
283
+ return match(value)
284
+ .with(P.boolean, (value) => String(value).includes(search))
285
+ .with(P.number, (value) => String(value).includes(search))
286
+ .with(P.string, (value) => value.includes(search))
287
+ .with({}, (value) => JSON.stringify(value).includes(search))
288
+ .otherwise(() => true);
301
289
  }
@@ -4,7 +4,8 @@ import { Dialog, DialogBody, DialogFooter } from '@blueprintjs/core';
4
4
  import { css } from '@emotion/react';
5
5
  import styled from '@emotion/styled';
6
6
  import type { LogEntry } from 'fifo-logger';
7
- import { type CSSProperties, useMemo } from 'react';
7
+ import type { CSSProperties } from 'react';
8
+ import { useMemo } from 'react';
8
9
 
9
10
  import { Button } from '../button/index.js';
10
11
  import { createTableColumnHelper, Table } from '../table/index.js';
@@ -1,4 +1,4 @@
1
- import { Intent } from '@blueprintjs/core';
1
+ import type { Intent } from '@blueprintjs/core';
2
2
  import type { LogEntry } from 'fifo-logger';
3
3
  import { useState } from 'react';
4
4
 
@@ -1,11 +1,7 @@
1
1
  import { BlueprintProvider, FocusStyleManager } from '@blueprintjs/core';
2
2
  import { QueryClientProvider } from '@tanstack/react-query';
3
- import {
4
- type CSSProperties,
5
- type ReactNode,
6
- useCallback,
7
- useState,
8
- } from 'react';
3
+ import type { CSSProperties, ReactNode } from 'react';
4
+ import { useCallback, useState } from 'react';
9
5
 
10
6
  import { AccordionProvider } from '../accordion/index.js';
11
7
 
@@ -1,15 +1,13 @@
1
1
  /** @jsxImportSource @emotion/react */
2
+ import { Colors } from '@blueprintjs/core';
2
3
  import { css } from '@emotion/react';
3
- import {
4
- type CSSProperties,
5
- type PointerEvent as ReactPointerEvent,
6
- type ReactNode,
7
- type RefObject,
8
- useEffect,
9
- useReducer,
10
- useRef,
11
- useState,
4
+ import type {
5
+ CSSProperties,
6
+ PointerEvent as ReactPointerEvent,
7
+ ReactNode,
8
+ RefObject,
12
9
  } from 'react';
10
+ import { useEffect, useReducer, useRef, useState } from 'react';
13
11
  import useResizeObserver from 'use-resize-observer';
14
12
 
15
13
  import { useOnOff } from '../hooks/useOnOff.js';
@@ -291,7 +289,7 @@ function getSeparatorStyle(direction: SplitPaneDirection, enabled: boolean) {
291
289
  cursor: enabled ? 'ns-resize' : 'pointer',
292
290
  },
293
291
  {
294
- backgroundColor: 'rgb(247, 247, 247)',
292
+ backgroundColor: Colors.LIGHT_GRAY5,
295
293
  display: 'flex',
296
294
  justifyContent: 'center',
297
295
  alignItems: 'center',
@@ -299,7 +297,7 @@ function getSeparatorStyle(direction: SplitPaneDirection, enabled: boolean) {
299
297
  minWidth: 11,
300
298
  touchAction: 'none',
301
299
  ':hover': {
302
- backgroundColor: 'rgb(223, 223, 223)',
300
+ backgroundColor: Colors.LIGHT_GRAY3,
303
301
  },
304
302
  },
305
303
  ]);
@@ -1,4 +1,5 @@
1
- import { flexRender, type Header, type RowData } from '@tanstack/react-table';
1
+ import type { Header, RowData } from '@tanstack/react-table';
2
+ import { flexRender } from '@tanstack/react-table';
2
3
  import type { CSSProperties } from 'react';
3
4
 
4
5
  interface TableHeaderCellProps<TData extends RowData> {
@@ -1,11 +1,10 @@
1
1
  /** @jsxImportSource @emotion/react */
2
2
 
3
3
  import { HTMLTable } from '@blueprintjs/core';
4
+ import type { RowData, TableOptions } from '@tanstack/react-table';
4
5
  import {
5
6
  getCoreRowModel,
6
7
  getSortedRowModel,
7
- type RowData,
8
- type TableOptions,
9
8
  useReactTable,
10
9
  } from '@tanstack/react-table';
11
10
  import type { TableHTMLAttributes } from 'react';
@@ -1,4 +1,5 @@
1
- import { type Cell, flexRender, type RowData } from '@tanstack/react-table';
1
+ import type { Cell, RowData } from '@tanstack/react-table';
2
+ import { flexRender } from '@tanstack/react-table';
2
3
 
3
4
  interface TableRowCellProps<TData extends RowData> {
4
5
  cell: Cell<TData, unknown>;
@@ -1,9 +1,5 @@
1
- import {
2
- type ColumnDef,
3
- createColumnHelper,
4
- type Row,
5
- type RowData,
6
- } from '@tanstack/react-table';
1
+ import type { ColumnDef, Row, RowData } from '@tanstack/react-table';
2
+ import { createColumnHelper } from '@tanstack/react-table';
7
3
  import type { ReactNode } from 'react';
8
4
 
9
5
  export type TableColumnDef<TData extends RowData, TValue = unknown> = ColumnDef<