react-science 0.32.2 → 0.33.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 (198) hide show
  1. package/lib/app/about/AboutDialogToolbarButton.d.ts.map +1 -1
  2. package/lib/app/about/AboutDialogToolbarButton.js +2 -9
  3. package/lib/app/about/AboutDialogToolbarButton.js.map +1 -1
  4. package/lib/app/kinds/ir/IrPeaksPanel.js +1 -1
  5. package/lib/app/kinds/ir/IrPeaksPanel.js.map +1 -1
  6. package/lib/app/panels/SignalProcessingPanel.js +1 -1
  7. package/lib/app/panels/SignalProcessingPanel.js.map +1 -1
  8. package/lib/app/panels/measurements/MeasurementsPanel.d.ts +1 -1
  9. package/lib/app/panels/measurements/MeasurementsPanel.d.ts.map +1 -1
  10. package/lib/app/panels/measurements/MeasurementsPanel.js +20 -12
  11. package/lib/app/panels/measurements/MeasurementsPanel.js.map +1 -1
  12. package/lib/app/panels/measurements/MeasurementsTable.d.ts +1 -1
  13. package/lib/app/panels/measurements/MeasurementsTable.d.ts.map +1 -1
  14. package/lib/app/panels/measurements/MeasurementsTable.js +15 -12
  15. package/lib/app/panels/measurements/MeasurementsTable.js.map +1 -1
  16. package/lib/components/dialog/ConfirmDialog.d.ts +12 -0
  17. package/lib/components/dialog/ConfirmDialog.d.ts.map +1 -0
  18. package/lib/components/dialog/ConfirmDialog.js +22 -0
  19. package/lib/components/dialog/ConfirmDialog.js.map +1 -0
  20. package/lib/components/dialog/index.d.ts +2 -0
  21. package/lib/components/dialog/index.d.ts.map +1 -0
  22. package/lib/components/{tabs → dialog}/index.js +1 -1
  23. package/lib/components/dialog/index.js.map +1 -0
  24. package/lib/components/index.d.ts +1 -2
  25. package/lib/components/index.d.ts.map +1 -1
  26. package/lib/components/index.js +1 -2
  27. package/lib/components/index.js.map +1 -1
  28. package/lib/components/info-panel/InfoPanel.d.ts +0 -1
  29. package/lib/components/info-panel/InfoPanel.d.ts.map +1 -1
  30. package/lib/components/info-panel/InfoPanel.js +2 -8
  31. package/lib/components/info-panel/InfoPanel.js.map +1 -1
  32. package/lib/components/layout-manager/LayoutManager.d.ts.map +1 -1
  33. package/lib/components/layout-manager/LayoutManager.js +0 -2
  34. package/lib/components/layout-manager/LayoutManager.js.map +1 -1
  35. package/lib/components/root-layout/RootLayout.js +1 -1
  36. package/lib/components/root-layout/RootLayout.js.map +1 -1
  37. package/lib/components/table/Table.d.ts +8 -3
  38. package/lib/components/table/Table.d.ts.map +1 -1
  39. package/lib/components/table/Table.js +14 -65
  40. package/lib/components/table/Table.js.map +1 -1
  41. package/lib/components/table/TableHeader.d.ts +3 -0
  42. package/lib/components/table/TableHeader.d.ts.map +1 -0
  43. package/lib/components/table/TableHeader.js +10 -0
  44. package/lib/components/table/TableHeader.js.map +1 -0
  45. package/lib/components/table/TableRow.d.ts +3 -0
  46. package/lib/components/table/TableRow.d.ts.map +1 -0
  47. package/lib/components/table/TableRow.js +57 -0
  48. package/lib/components/table/TableRow.js.map +1 -0
  49. package/lib/components/table/tableContext.d.ts +10 -0
  50. package/lib/components/table/tableContext.d.ts.map +1 -0
  51. package/lib/components/table/tableContext.js +11 -0
  52. package/lib/components/table/tableContext.js.map +1 -0
  53. package/lib/components/toolbar/PanelPreferencesToolbar.d.ts.map +1 -1
  54. package/lib/components/toolbar/PanelPreferencesToolbar.js +2 -2
  55. package/lib/components/toolbar/PanelPreferencesToolbar.js.map +1 -1
  56. package/lib/components/toolbar/Toolbar.d.ts +8 -5
  57. package/lib/components/toolbar/Toolbar.d.ts.map +1 -1
  58. package/lib/components/toolbar/Toolbar.js +12 -9
  59. package/lib/components/toolbar/Toolbar.js.map +1 -1
  60. package/lib-esm/app/about/AboutDialogToolbarButton.d.ts.map +1 -1
  61. package/lib-esm/app/about/AboutDialogToolbarButton.js +4 -8
  62. package/lib-esm/app/about/AboutDialogToolbarButton.js.map +1 -1
  63. package/lib-esm/app/kinds/ir/IrPeaksPanel.js +1 -1
  64. package/lib-esm/app/kinds/ir/IrPeaksPanel.js.map +1 -1
  65. package/lib-esm/app/panels/SignalProcessingPanel.js +1 -1
  66. package/lib-esm/app/panels/SignalProcessingPanel.js.map +1 -1
  67. package/lib-esm/app/panels/measurements/MeasurementsPanel.d.ts +1 -1
  68. package/lib-esm/app/panels/measurements/MeasurementsPanel.d.ts.map +1 -1
  69. package/lib-esm/app/panels/measurements/MeasurementsPanel.js +16 -8
  70. package/lib-esm/app/panels/measurements/MeasurementsPanel.js.map +1 -1
  71. package/lib-esm/app/panels/measurements/MeasurementsTable.d.ts +1 -1
  72. package/lib-esm/app/panels/measurements/MeasurementsTable.d.ts.map +1 -1
  73. package/lib-esm/app/panels/measurements/MeasurementsTable.js +11 -8
  74. package/lib-esm/app/panels/measurements/MeasurementsTable.js.map +1 -1
  75. package/lib-esm/components/dialog/ConfirmDialog.d.ts +12 -0
  76. package/lib-esm/components/dialog/ConfirmDialog.d.ts.map +1 -0
  77. package/lib-esm/components/dialog/ConfirmDialog.js +18 -0
  78. package/lib-esm/components/dialog/ConfirmDialog.js.map +1 -0
  79. package/lib-esm/components/dialog/index.d.ts +2 -0
  80. package/lib-esm/components/dialog/index.d.ts.map +1 -0
  81. package/lib-esm/components/dialog/index.js +2 -0
  82. package/lib-esm/components/dialog/index.js.map +1 -0
  83. package/lib-esm/components/index.d.ts +1 -2
  84. package/lib-esm/components/index.d.ts.map +1 -1
  85. package/lib-esm/components/index.js +1 -2
  86. package/lib-esm/components/index.js.map +1 -1
  87. package/lib-esm/components/info-panel/InfoPanel.d.ts +0 -1
  88. package/lib-esm/components/info-panel/InfoPanel.d.ts.map +1 -1
  89. package/lib-esm/components/info-panel/InfoPanel.js +2 -8
  90. package/lib-esm/components/info-panel/InfoPanel.js.map +1 -1
  91. package/lib-esm/components/layout-manager/LayoutManager.d.ts.map +1 -1
  92. package/lib-esm/components/layout-manager/LayoutManager.js +0 -2
  93. package/lib-esm/components/layout-manager/LayoutManager.js.map +1 -1
  94. package/lib-esm/components/root-layout/RootLayout.js +1 -1
  95. package/lib-esm/components/root-layout/RootLayout.js.map +1 -1
  96. package/lib-esm/components/table/Table.d.ts +8 -3
  97. package/lib-esm/components/table/Table.d.ts.map +1 -1
  98. package/lib-esm/components/table/Table.js +12 -63
  99. package/lib-esm/components/table/Table.js.map +1 -1
  100. package/lib-esm/components/table/TableHeader.d.ts +3 -0
  101. package/lib-esm/components/table/TableHeader.d.ts.map +1 -0
  102. package/lib-esm/components/table/TableHeader.js +6 -0
  103. package/lib-esm/components/table/TableHeader.js.map +1 -0
  104. package/lib-esm/components/table/TableRow.d.ts +3 -0
  105. package/lib-esm/components/table/TableRow.d.ts.map +1 -0
  106. package/lib-esm/components/table/TableRow.js +53 -0
  107. package/lib-esm/components/table/TableRow.js.map +1 -0
  108. package/lib-esm/components/table/tableContext.d.ts +10 -0
  109. package/lib-esm/components/table/tableContext.d.ts.map +1 -0
  110. package/lib-esm/components/table/tableContext.js +7 -0
  111. package/lib-esm/components/table/tableContext.js.map +1 -0
  112. package/lib-esm/components/toolbar/PanelPreferencesToolbar.d.ts.map +1 -1
  113. package/lib-esm/components/toolbar/PanelPreferencesToolbar.js +2 -2
  114. package/lib-esm/components/toolbar/PanelPreferencesToolbar.js.map +1 -1
  115. package/lib-esm/components/toolbar/Toolbar.d.ts +8 -5
  116. package/lib-esm/components/toolbar/Toolbar.d.ts.map +1 -1
  117. package/lib-esm/components/toolbar/Toolbar.js +12 -9
  118. package/lib-esm/components/toolbar/Toolbar.js.map +1 -1
  119. package/package.json +30 -30
  120. package/src/app/about/AboutDialogToolbarButton.tsx +10 -14
  121. package/src/app/kinds/ir/IrPeaksPanel.tsx +1 -1
  122. package/src/app/panels/SignalProcessingPanel.tsx +5 -5
  123. package/src/app/panels/measurements/MeasurementsPanel.tsx +33 -15
  124. package/src/app/panels/measurements/MeasurementsTable.tsx +33 -26
  125. package/src/components/dialog/ConfirmDialog.tsx +65 -0
  126. package/src/components/dialog/index.ts +1 -0
  127. package/src/components/index.ts +1 -2
  128. package/src/components/info-panel/InfoPanel.tsx +4 -17
  129. package/src/components/layout-manager/LayoutManager.tsx +0 -2
  130. package/src/components/root-layout/RootLayout.tsx +1 -1
  131. package/src/components/table/Table.tsx +37 -96
  132. package/src/components/table/TableHeader.tsx +12 -0
  133. package/src/components/table/TableRow.tsx +89 -0
  134. package/src/components/table/tableContext.ts +7 -0
  135. package/src/components/toolbar/PanelPreferencesToolbar.tsx +17 -3
  136. package/src/components/toolbar/Toolbar.tsx +22 -13
  137. package/lib/components/modal/ConfirmModal.d.ts +0 -17
  138. package/lib/components/modal/ConfirmModal.d.ts.map +0 -1
  139. package/lib/components/modal/ConfirmModal.js +0 -71
  140. package/lib/components/modal/ConfirmModal.js.map +0 -1
  141. package/lib/components/modal/Modal.d.ts +0 -25
  142. package/lib/components/modal/Modal.d.ts.map +0 -1
  143. package/lib/components/modal/Modal.js +0 -85
  144. package/lib/components/modal/Modal.js.map +0 -1
  145. package/lib/components/modal/index.d.ts +0 -3
  146. package/lib/components/modal/index.d.ts.map +0 -1
  147. package/lib/components/modal/index.js +0 -19
  148. package/lib/components/modal/index.js.map +0 -1
  149. package/lib/components/modal/useDialog.d.ts +0 -19
  150. package/lib/components/modal/useDialog.d.ts.map +0 -1
  151. package/lib/components/modal/useDialog.js +0 -51
  152. package/lib/components/modal/useDialog.js.map +0 -1
  153. package/lib/components/tabs/Tabs.d.ts +0 -16
  154. package/lib/components/tabs/Tabs.d.ts.map +0 -1
  155. package/lib/components/tabs/Tabs.js +0 -99
  156. package/lib/components/tabs/Tabs.js.map +0 -1
  157. package/lib/components/tabs/TabsContext.d.ts +0 -8
  158. package/lib/components/tabs/TabsContext.d.ts.map +0 -1
  159. package/lib/components/tabs/TabsContext.js +0 -20
  160. package/lib/components/tabs/TabsContext.js.map +0 -1
  161. package/lib/components/tabs/index.d.ts +0 -2
  162. package/lib/components/tabs/index.d.ts.map +0 -1
  163. package/lib/components/tabs/index.js.map +0 -1
  164. package/lib-esm/components/modal/ConfirmModal.d.ts +0 -17
  165. package/lib-esm/components/modal/ConfirmModal.d.ts.map +0 -1
  166. package/lib-esm/components/modal/ConfirmModal.js +0 -64
  167. package/lib-esm/components/modal/ConfirmModal.js.map +0 -1
  168. package/lib-esm/components/modal/Modal.d.ts +0 -25
  169. package/lib-esm/components/modal/Modal.d.ts.map +0 -1
  170. package/lib-esm/components/modal/Modal.js +0 -78
  171. package/lib-esm/components/modal/Modal.js.map +0 -1
  172. package/lib-esm/components/modal/index.d.ts +0 -3
  173. package/lib-esm/components/modal/index.d.ts.map +0 -1
  174. package/lib-esm/components/modal/index.js +0 -3
  175. package/lib-esm/components/modal/index.js.map +0 -1
  176. package/lib-esm/components/modal/useDialog.d.ts +0 -19
  177. package/lib-esm/components/modal/useDialog.d.ts.map +0 -1
  178. package/lib-esm/components/modal/useDialog.js +0 -47
  179. package/lib-esm/components/modal/useDialog.js.map +0 -1
  180. package/lib-esm/components/tabs/Tabs.d.ts +0 -16
  181. package/lib-esm/components/tabs/Tabs.d.ts.map +0 -1
  182. package/lib-esm/components/tabs/Tabs.js +0 -95
  183. package/lib-esm/components/tabs/Tabs.js.map +0 -1
  184. package/lib-esm/components/tabs/TabsContext.d.ts +0 -8
  185. package/lib-esm/components/tabs/TabsContext.d.ts.map +0 -1
  186. package/lib-esm/components/tabs/TabsContext.js +0 -15
  187. package/lib-esm/components/tabs/TabsContext.js.map +0 -1
  188. package/lib-esm/components/tabs/index.d.ts +0 -2
  189. package/lib-esm/components/tabs/index.d.ts.map +0 -1
  190. package/lib-esm/components/tabs/index.js +0 -2
  191. package/lib-esm/components/tabs/index.js.map +0 -1
  192. package/src/components/modal/ConfirmModal.tsx +0 -134
  193. package/src/components/modal/Modal.tsx +0 -143
  194. package/src/components/modal/index.ts +0 -2
  195. package/src/components/modal/useDialog.ts +0 -95
  196. package/src/components/tabs/Tabs.tsx +0 -189
  197. package/src/components/tabs/TabsContext.tsx +0 -22
  198. package/src/components/tabs/index.ts +0 -1
@@ -2,24 +2,27 @@
2
2
  import { Intent } from '@blueprintjs/core';
3
3
  import { ReactElement, ReactNode } from 'react';
4
4
  import { ButtonProps } from '../index';
5
- export interface ToolbarProps {
6
- vertical?: boolean;
7
- large?: boolean;
5
+ interface ToolbarBaseProps {
8
6
  intent?: Intent;
9
7
  disabled?: boolean;
8
+ }
9
+ export interface ToolbarProps extends ToolbarBaseProps {
10
+ vertical?: boolean;
11
+ large?: boolean;
10
12
  children?: Array<ReactElement<ToolbarItemProps>> | ReactElement<ToolbarItemProps> | Iterable<ReactNode> | boolean | null;
11
13
  }
12
- export interface ToolbarItemProps {
14
+ export interface ToolbarItemProps extends ToolbarBaseProps {
13
15
  id?: string;
14
16
  title: string;
15
17
  icon: ButtonProps['icon'];
16
18
  active?: boolean;
17
19
  onClick?: (item: ToolbarItemProps) => void;
18
20
  className?: string;
19
- intent?: Intent;
21
+ noTooltip?: boolean;
20
22
  }
21
23
  export declare function Toolbar(props: ToolbarProps): import("@emotion/react/jsx-runtime").JSX.Element;
22
24
  export declare namespace Toolbar {
23
25
  var Item: (props: ToolbarItemProps) => import("@emotion/react/jsx-runtime").JSX.Element;
24
26
  }
27
+ export {};
25
28
  //# sourceMappingURL=Toolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/Toolbar.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAgC,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EACL,YAAY,EACZ,SAAS,EAIV,MAAM,OAAO,CAAC;AAEf,OAAO,EAAU,WAAW,EAAE,MAAM,UAAU,CAAC;AAQ/C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EACL,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,GACrC,YAAY,CAAC,gBAAgB,CAAC,GAC9B,QAAQ,CAAC,SAAS,CAAC,GACnB,OAAO,GACP,IAAI,CAAC;CACV;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,oDAuD1C;yBAvDe,OAAO"}
1
+ {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/Toolbar.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAAgC,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EACL,YAAY,EACZ,SAAS,EAIV,MAAM,OAAO,CAAC;AAEf,OAAO,EAAU,WAAW,EAAE,MAAM,UAAU,CAAC;AAQ/C,UAAU,gBAAgB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AACD,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EACL,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,GACrC,YAAY,CAAC,gBAAgB,CAAC,GAC9B,QAAQ,CAAC,SAAS,CAAC,GACnB,OAAO,GACP,IAAI,CAAC;CACV;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAID,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,oDAuD1C;yBAvDe,OAAO"}
@@ -44,9 +44,10 @@ export function Toolbar(props) {
44
44
  }, children: children }) }));
45
45
  }
46
46
  Toolbar.Item = function ToolbarItem(props) {
47
- const { active = false, icon, onClick, title, id, intent: itemIntent, ...other } = props;
48
- const { intent: toolbarIntent, large, vertical, disabled, } = useToolbarContext();
49
- const intent = itemIntent || toolbarIntent;
47
+ const { active = false, icon, onClick, title, id, intent: itemIntent, disabled: itemDisabled, noTooltip = false, ...other } = props;
48
+ const { intent: toolbarIntent, disabled: toolbarDisabled, large, vertical, } = useToolbarContext();
49
+ const intent = itemIntent ?? toolbarIntent;
50
+ const disabled = itemDisabled ?? toolbarDisabled;
50
51
  return (_jsx(Button, { minimal: true, disabled: disabled, css: css `
51
52
  .${Classes.ICON} {
52
53
  color: ${Colors.DARK_GRAY3};
@@ -58,12 +59,14 @@ Toolbar.Item = function ToolbarItem(props) {
58
59
  flex: 'none',
59
60
  }, type: "button", active: active, icon: icon, onClick: () => {
60
61
  onClick?.(props);
61
- }, tooltipProps: {
62
- content: title,
63
- placement: vertical ? 'right' : 'bottom',
64
- intent,
65
- compact: !large,
66
- }, ...other }));
62
+ }, tooltipProps: noTooltip
63
+ ? undefined
64
+ : {
65
+ content: title,
66
+ placement: vertical ? 'right' : 'bottom',
67
+ intent,
68
+ compact: !large,
69
+ }, ...other }));
67
70
  };
68
71
  function ToolbarProvider(props) {
69
72
  return (_jsx(toolbarContext.Provider, { value: props.value, children: props.children }));
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../../../src/components/toolbar/Toolbar.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAU,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAGL,eAAe,EACf,OAAO,EACP,MAAM,GACP,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,MAAM,EAAe,MAAM,UAAU,CAAC;AAE/C,OAAO,EAEL,cAAc,EACd,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAyB1B,MAAM,MAAM,GAAG,8BAA8B,CAAC;AAE9C,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE9D,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAC7C,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CACpC,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEzC,yDAAyD;IACzD,2FAA2F;IAC3F,uFAAuF;IACvF,gCAAgC;IAChC,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,SAAS,MAAM;YACb,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC;YAClD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;YACpC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACpD,MAAM,YAAY,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,GAAG,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC;YACvD,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBACtC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YAClC,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;YAC5C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,KAAC,eAAe,IAAC,KAAK,EAAE,YAAY,YAClC,KAAC,WAAW,IACV,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE;gBACL,QAAQ,EAAE,MAAM;gBAChB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;aAC3C,YAEA,QAAQ,GACG,GACE,CACnB,CAAC;AACJ,CAAC;AAED,OAAO,CAAC,IAAI,GAAG,SAAS,WAAW,CAAC,KAAuB;IACzD,MAAM,EACJ,MAAM,GAAG,KAAK,EACd,IAAI,EACJ,OAAO,EACP,KAAK,EACL,EAAE,EACF,MAAM,EAAE,UAAU,EAClB,GAAG,KAAK,EACT,GAAG,KAAK,CAAC;IAEV,MAAM,EACJ,MAAM,EAAE,aAAa,EACrB,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,GAAG,iBAAiB,EAAE,CAAC;IACxB,MAAM,MAAM,GAAG,UAAU,IAAI,aAAa,CAAC;IAC3C,OAAO,CACL,KAAC,MAAM,IACL,OAAO,QACP,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,GAAG,CAAA;WACH,OAAO,CAAC,IAAI;mBACJ,MAAM,CAAC,UAAU;;OAE7B,EACD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,MAAM;SACb,EACD,IAAI,EAAC,QAAQ,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,GAAG,EAAE;YACZ,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,EACD,YAAY,EAAE;YACZ,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;YACxC,MAAM;YACN,OAAO,EAAE,CAAC,KAAK;SAChB,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,eAAe,CAAC,KAGxB;IACC,OAAO,CACL,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,YACxC,KAAK,CAAC,QAAQ,GACS,CAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../../../src/components/toolbar/Toolbar.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-science",
3
- "version": "0.32.2",
3
+ "version": "0.33.0",
4
4
  "description": "React components to build scientific applications UI",
5
5
  "exports": {
6
6
  "./app": {
@@ -51,7 +51,7 @@
51
51
  "test-only": "vitest run --coverage "
52
52
  },
53
53
  "volta": {
54
- "node": "20.10.0"
54
+ "node": "20.11.0"
55
55
  },
56
56
  "overrides": {
57
57
  "react": "^18.2.0",
@@ -64,23 +64,23 @@
64
64
  "react-dom": ">=18.0.0"
65
65
  },
66
66
  "dependencies": {
67
- "@blueprintjs/select": "^5.0.20",
68
- "@emotion/react": "^11.11.1",
67
+ "@blueprintjs/select": "^5.0.23",
68
+ "@emotion/react": "^11.11.3",
69
69
  "@emotion/styled": "^11.11.0",
70
- "@headlessui/react": "^1.7.17",
70
+ "@headlessui/react": "^1.7.18",
71
71
  "@lukeed/uuid": "^2.0.1",
72
72
  "@popperjs/core": "^2.11.8",
73
73
  "@radix-ui/react-checkbox": "^1.0.4",
74
74
  "@radix-ui/react-radio-group": "^1.1.3",
75
75
  "@radix-ui/react-select": "^2.0.0",
76
- "@tanstack/react-query": "^5.13.4",
77
- "@tanstack/react-table": "^8.10.7",
76
+ "@tanstack/react-query": "^5.17.19",
77
+ "@tanstack/react-table": "^8.11.7",
78
78
  "biologic-converter": "^0.6.0",
79
79
  "cheminfo-types": "^1.7.2",
80
80
  "d3-scale-chromatic": "^3.0.0",
81
- "filelist-utils": "^1.10.2",
81
+ "filelist-utils": "^1.11.0",
82
82
  "immer": "^10.0.3",
83
- "jcampconverter": "^9.5.0",
83
+ "jcampconverter": "^9.6.0",
84
84
  "lodash": "^4.17.21",
85
85
  "ml-gsd": "^12.1.3",
86
86
  "ml-peak-shape-generator": "^4.1.2",
@@ -90,8 +90,8 @@
90
90
  "netcdfjs": "^3.0.0",
91
91
  "react-d3-utils": "^1.0.0",
92
92
  "react-dropzone": "^14.2.3",
93
- "react-error-boundary": "^4.0.11",
94
- "react-icons": "^4.12.0",
93
+ "react-error-boundary": "^4.0.12",
94
+ "react-icons": "^5.0.1",
95
95
  "react-inspector": "^6.0.2",
96
96
  "react-kbs": "^2.1.1",
97
97
  "react-plot": "^1.4.2",
@@ -102,41 +102,41 @@
102
102
  "wdf-parser": "^0.3.0"
103
103
  },
104
104
  "devDependencies": {
105
- "@babel/core": "^7.23.6",
105
+ "@babel/core": "^7.23.7",
106
106
  "@babel/eslint-parser": "^7.23.3",
107
107
  "@babel/preset-react": "^7.23.3",
108
- "@blueprintjs/core": "^5.7.2",
109
- "@blueprintjs/icons": "^5.5.0",
110
- "@playwright/experimental-ct-react": "^1.40.1",
111
- "@playwright/test": "^1.40.1",
112
- "@storybook/addon-essentials": "7.6.4",
113
- "@storybook/addon-storysource": "7.6.4",
114
- "@storybook/blocks": "7.6.4",
115
- "@storybook/react": "7.6.4",
116
- "@storybook/react-vite": "7.6.4",
108
+ "@blueprintjs/core": "^5.8.2",
109
+ "@blueprintjs/icons": "^5.7.0",
110
+ "@playwright/experimental-ct-react": "^1.41.1",
111
+ "@playwright/test": "^1.41.1",
112
+ "@storybook/addon-essentials": "7.6.10",
113
+ "@storybook/addon-storysource": "7.6.10",
114
+ "@storybook/blocks": "7.6.10",
115
+ "@storybook/react": "7.6.10",
116
+ "@storybook/react-vite": "7.6.10",
117
117
  "@types/babel__core": "^7.20.5",
118
118
  "@types/d3-scale-chromatic": "^3.0.3",
119
119
  "@types/lodash": "^4.14.202",
120
- "@types/react": "^18.2.45",
121
- "@types/react-dom": "^18.2.17",
120
+ "@types/react": "^18.2.48",
121
+ "@types/react-dom": "^18.2.18",
122
122
  "@types/react-inspector": "^4.0.6",
123
123
  "@types/tinycolor2": "^1.4.6",
124
124
  "@vitejs/plugin-react": "^4.2.1",
125
- "@vitest/coverage-v8": "^1.0.4",
126
- "cheminfo-font": "^1.12.0",
125
+ "@vitest/coverage-v8": "^1.2.1",
126
+ "cheminfo-font": "^1.13.0",
127
127
  "cross-env": "^7.0.3",
128
- "eslint": "^8.55.0",
128
+ "eslint": "^8.56.0",
129
129
  "eslint-config-zakodium": "^8.1.0",
130
130
  "eslint-plugin-storybook": "^0.6.15",
131
- "prettier": "^3.1.1",
131
+ "prettier": "^3.2.4",
132
132
  "react": "^18.2.0",
133
133
  "react-dom": "^18.2.0",
134
134
  "react-ocl": "^6.1.0",
135
135
  "rimraf": "^5.0.5",
136
- "storybook": "7.6.4",
136
+ "storybook": "7.6.10",
137
137
  "typescript": "^5.3.3",
138
- "vite": "^5.0.8",
139
- "vitest": "^1.0.4"
138
+ "vite": "^5.0.12",
139
+ "vitest": "^1.2.1"
140
140
  },
141
141
  "repository": {
142
142
  "type": "git",
@@ -1,8 +1,7 @@
1
- import { ButtonProps } from '@blueprintjs/core';
2
- import styled from '@emotion/styled';
1
+ import { ButtonProps, Dialog, DialogBody } from '@blueprintjs/core';
3
2
  import { ReactNode } from 'react';
4
3
 
5
- import { Modal, Toolbar, useOnOff } from '../../components';
4
+ import { Toolbar, useOnOff } from '../../components';
6
5
 
7
6
  interface AboutDialogToolbarButtonProps {
8
7
  name: string;
@@ -10,11 +9,6 @@ interface AboutDialogToolbarButtonProps {
10
9
  body: ReactNode;
11
10
  }
12
11
 
13
- const ModalBody = styled.div`
14
- max-width: 600px;
15
- padding: 10px;
16
- `;
17
-
18
12
  export function AboutDialogToolbarButton(props: AboutDialogToolbarButtonProps) {
19
13
  const { name, icon, body } = props;
20
14
  const [isOpenDialog, openDialog, closeDialog] = useOnOff(false);
@@ -22,12 +16,14 @@ export function AboutDialogToolbarButton(props: AboutDialogToolbarButtonProps) {
22
16
  return (
23
17
  <>
24
18
  <Toolbar.Item title={`About ${name}`} onClick={openDialog} icon={icon} />
25
- <Modal isOpen={isOpenDialog} onRequestClose={closeDialog}>
26
- <Modal.Header>{name}</Modal.Header>
27
- <Modal.Body>
28
- <ModalBody>{body}</ModalBody>
29
- </Modal.Body>
30
- </Modal>
19
+ <Dialog
20
+ isOpen={isOpenDialog}
21
+ onClose={closeDialog}
22
+ title={name}
23
+ icon="info-sign"
24
+ >
25
+ <DialogBody>{body}</DialogBody>
26
+ </Dialog>
31
27
  </>
32
28
  );
33
29
  }
@@ -65,7 +65,7 @@ export function IrPeaksPanel(props: IrPeaksPanelProps) {
65
65
  getSortedRowModel: getSortedRowModel(),
66
66
  });
67
67
  return (
68
- <Table>
68
+ <Table bordered>
69
69
  <Table.Header>
70
70
  {table
71
71
  .getHeaderGroups()
@@ -40,14 +40,14 @@ export function SignalProcessingPanel(props: SignalProcessingPanelProps) {
40
40
 
41
41
  return (
42
42
  <div>
43
- <Table border={false}>
43
+ <Table>
44
44
  <Table.Header>
45
- <ValueRenderers.Title value=" " />
46
- <ValueRenderers.Title value="Name" />
47
- <ValueRenderers.Title value="Options" />
45
+ <ValueRenderers.Header value=" " />
46
+ <ValueRenderers.Header value="Name" />
47
+ <ValueRenderers.Header value="Options" />
48
48
  </Table.Header>
49
49
  {filters.map(({ name, options }, i) => (
50
- <Table.Row key={name} border>
50
+ <Table.Row key={name} hasBorder>
51
51
  <ValueRenderers.Component>
52
52
  <div style={{ display: 'flex', gap: '3px' }}>
53
53
  <Button
@@ -1,11 +1,14 @@
1
+ /** @jsxImportSource @emotion/react */
2
+ import { Tab, Tabs } from '@blueprintjs/core';
3
+ import { css } from '@emotion/react';
4
+
1
5
  import {
2
6
  kindLabels,
3
7
  MeasurementKind,
4
8
  measurementKinds,
5
- useAppState,
6
9
  useAppDispatch,
7
- } from '../../../app-data/index';
8
- import { TabItem, Tabs } from '../../../components/index';
10
+ useAppState,
11
+ } from '../../../app-data';
9
12
 
10
13
  import { MeasurementsTable } from './MeasurementsTable';
11
14
 
@@ -25,7 +28,7 @@ export function MeasurementsPanel() {
25
28
  (label) => data.measurements[label].entries.length > 0,
26
29
  );
27
30
 
28
- const items: Array<TabItem<MeasurementKind>> = availableKinds.map(kindItem);
31
+ const items = availableKinds.map(kindItem);
29
32
 
30
33
  function handleTabSelection(id: MeasurementKind) {
31
34
  dispatch({
@@ -34,21 +37,36 @@ export function MeasurementsPanel() {
34
37
  });
35
38
  }
36
39
 
37
- if (items.length > 1) {
40
+ if (items.length > 0) {
38
41
  return (
39
- <Tabs<MeasurementKind>
40
- orientation="horizontal"
41
- items={items}
42
- opened={view.selectedKind}
43
- onClick={handleTabSelection}
44
- />
42
+ <Tabs
43
+ selectedTabId={view.selectedKind}
44
+ onChange={handleTabSelection}
45
+ css={css`
46
+ div[role='tablist'] {
47
+ overflow-x: auto;
48
+ padding: 2px 0 0 1rem;
49
+ border-bottom: 1px solid gray;
50
+ }
51
+ div[role='tabpanel'] {
52
+ margin-top: 4px;
53
+ }
54
+ `}
55
+ >
56
+ {items.map((item) => (
57
+ <Tab
58
+ id={item.id}
59
+ key={item.id}
60
+ title={item.title}
61
+ panel={item.content}
62
+ tagContent={data.measurements[item.id].entries.length}
63
+ tagProps={{ round: true }}
64
+ />
65
+ ))}
66
+ </Tabs>
45
67
  );
46
68
  }
47
69
 
48
- if (items.length === 1 && items[0].content) {
49
- return <>{items[0].content}</>;
50
- }
51
-
52
70
  return (
53
71
  <div style={{ paddingTop: '1rem', marginInline: 'auto' }}>
54
72
  No data available
@@ -6,8 +6,8 @@ import {
6
6
  MeasurementKind,
7
7
  useAppDispatch,
8
8
  useAppState,
9
- } from '../../../app-data/index';
10
- import { ConfirmModal, useOnOff } from '../../../components/index';
9
+ } from '../../../app-data';
10
+ import { ConfirmDialog, useOnOff } from '../../../components';
11
11
 
12
12
  import { MeasurementCheckbox } from './MeasurementCheckbox';
13
13
  import MeasurementColorPreview from './MeasurementColorPreview';
@@ -27,7 +27,6 @@ interface MeasurementsTableRowProps {
27
27
  const MeasurementsTableContainer = styled.div`
28
28
  display: flex;
29
29
  flex-direction: column;
30
- gap: 5px;
31
30
  `;
32
31
 
33
32
  const MeasurementsTableRoot = styled.table`
@@ -60,13 +59,18 @@ const MeasurementsLinkButton = styled.span`
60
59
  const MeasurementsHeaderColumn = styled.div`
61
60
  display: flex;
62
61
  flex-direction: row;
63
- gap: 10px;
62
+ gap: 12px;
64
63
  align-items: center;
65
64
  padding-left: 5px;
66
-
65
+ padding-right: 5px;
67
66
  border-bottom: 1px solid black;
68
67
  `;
69
68
 
69
+ const MeasurementsHeaderGroup = styled.div`
70
+ display: flex;
71
+ gap: 6px;
72
+ `;
73
+
70
74
  const MeasurementsTableRowData = styled.tr`
71
75
  height: 50px;
72
76
  max-height: 50px;
@@ -102,7 +106,7 @@ export function MeasurementsTable(props: MeasurementsTableProps) {
102
106
  view: { selectedMeasurements },
103
107
  } = useAppState();
104
108
  const dispatch = useAppDispatch();
105
- const [isRemoveModalOpen, openRemoveModal, closeRemoveModal] = useOnOff();
109
+ const [isRemoveDialogOpen, openRemoveDialog, closeRemoveDialog] = useOnOff();
106
110
 
107
111
  const hasSelectedMeasurements = (selectedMeasurements[kind]?.length ?? 0) > 0;
108
112
 
@@ -118,38 +122,41 @@ export function MeasurementsTable(props: MeasurementsTableProps) {
118
122
 
119
123
  function onRemove() {
120
124
  dispatch({ type: 'REMOVE_SELECTED_MEASUREMENTS', payload: { kind } });
121
- closeRemoveModal();
125
+ closeRemoveDialog();
122
126
  }
123
127
 
124
128
  return (
125
129
  <MeasurementsTableContainer>
126
130
  <MeasurementsHeaderColumn>
127
- <MeasurementSelectedVisibilityChange kind={kind} openedEyes />
128
- <MeasurementSelectedVisibilityChange kind={kind} openedEyes={false} />
129
- <MeasurementsLinkButton onClick={() => onSelectLink(true)}>
130
- Select all
131
- </MeasurementsLinkButton>
132
- <MeasurementsLinkButton onClick={() => onSelectLink(false)}>
133
- Unselect all
134
- </MeasurementsLinkButton>
135
-
136
- <FaTrash
137
- style={
138
- hasSelectedMeasurements ? { cursor: 'pointer' } : { opacity: 0.6 }
139
- }
140
- onClick={hasSelectedMeasurements ? openRemoveModal : undefined}
141
- />
142
- <ConfirmModal
131
+ <MeasurementsHeaderGroup>
132
+ <MeasurementsLinkButton onClick={() => onSelectLink(true)}>
133
+ Select all
134
+ </MeasurementsLinkButton>
135
+ <MeasurementsLinkButton onClick={() => onSelectLink(false)}>
136
+ Unselect all
137
+ </MeasurementsLinkButton>
138
+ </MeasurementsHeaderGroup>
139
+ <MeasurementsHeaderGroup>
140
+ <MeasurementSelectedVisibilityChange kind={kind} openedEyes />
141
+ <MeasurementSelectedVisibilityChange kind={kind} openedEyes={false} />
142
+ <FaTrash
143
+ style={
144
+ hasSelectedMeasurements ? { cursor: 'pointer' } : { opacity: 0.6 }
145
+ }
146
+ onClick={hasSelectedMeasurements ? openRemoveDialog : undefined}
147
+ />
148
+ </MeasurementsHeaderGroup>
149
+ <ConfirmDialog
143
150
  headerColor="red"
144
- isOpen={isRemoveModalOpen}
151
+ isOpen={isRemoveDialogOpen}
145
152
  onConfirm={onRemove}
146
- onRequestClose={closeRemoveModal}
153
+ onClose={closeRemoveDialog}
147
154
  saveText="Remove"
148
155
  >
149
156
  <div style={{ fontWeight: 'bold', padding: 10 }}>
150
157
  Remove selected measurements?
151
158
  </div>
152
- </ConfirmModal>
159
+ </ConfirmDialog>
153
160
  </MeasurementsHeaderColumn>
154
161
 
155
162
  <MeasurementsTableRoot>
@@ -0,0 +1,65 @@
1
+ /** @jsxImportSource @emotion/react */
2
+ import {
3
+ Dialog,
4
+ DialogBody,
5
+ DialogFooter,
6
+ DialogProps,
7
+ } from '@blueprintjs/core';
8
+ import { css } from '@emotion/react';
9
+
10
+ import { Button } from '..';
11
+
12
+ interface ConfirmDialogProps extends Omit<DialogProps, 'isCloseButtonShown'> {
13
+ onConfirm: () => void;
14
+ onCancel?: () => void;
15
+ saveText?: string;
16
+ cancelText?: string;
17
+ headerColor: string;
18
+ }
19
+
20
+ export function ConfirmDialog(props: ConfirmDialogProps) {
21
+ const {
22
+ saveText = 'Save',
23
+ cancelText = 'Cancel',
24
+ headerColor,
25
+ onClose,
26
+ onCancel = onClose,
27
+ onConfirm,
28
+ children,
29
+ ...otherProps
30
+ } = props;
31
+
32
+ return (
33
+ <Dialog
34
+ onClose={onClose}
35
+ {...otherProps}
36
+ title=" "
37
+ isCloseButtonShown={false}
38
+ css={css`
39
+ .bp5-dialog-header {
40
+ background-color: ${headerColor};
41
+ min-height: 0px;
42
+ }
43
+ `}
44
+ >
45
+ <DialogBody>{children}</DialogBody>
46
+ <DialogFooter
47
+ minimal
48
+ actions={[
49
+ <Button
50
+ key="cancel"
51
+ intent="danger"
52
+ text={cancelText}
53
+ onClick={onCancel}
54
+ />,
55
+ <Button
56
+ key="save"
57
+ intent="primary"
58
+ text={saveText}
59
+ onClick={onConfirm}
60
+ />,
61
+ ]}
62
+ />
63
+ </Dialog>
64
+ );
65
+ }
@@ -0,0 +1 @@
1
+ export * from './ConfirmDialog';
@@ -8,11 +8,10 @@ export * from './header/index';
8
8
  export * from './hooks/index';
9
9
  export * from './info-panel/index';
10
10
  export * from './layout-manager/index';
11
- export * from './modal/index';
11
+ export * from './dialog/index';
12
12
  export * from './root-layout/index';
13
13
  export * from './split-pane/index';
14
14
  export * from './table/index';
15
- export * from './tabs/index';
16
15
  export * from './toolbar/index';
17
16
  export * from './utils/index';
18
17
  export * as ValueRenderers from './value-renderers/index';
@@ -20,7 +20,6 @@ interface InfoPanelProps {
20
20
  data?: InfoPanelData[];
21
21
  titleStyle?: CSSProperties;
22
22
  inputStyle?: CSSProperties;
23
- tableStyle?: CSSProperties;
24
23
  }
25
24
  const style = {
26
25
  container: css({
@@ -37,23 +36,11 @@ const style = {
37
36
  gap: 5,
38
37
  padding: '5px 2px',
39
38
  }),
40
- table: css`
41
- width: 100%;
42
- td:first-of-type {
43
- width: 30%;
44
- }
45
- `,
46
39
  };
47
40
 
48
41
  export function InfoPanel(props: InfoPanelProps) {
49
42
  const [search, setSearch] = useState('');
50
- const {
51
- title = 'Information',
52
- data = [],
53
- titleStyle,
54
- inputStyle,
55
- tableStyle,
56
- } = props;
43
+ const { title = 'Information', data = [], titleStyle, inputStyle } = props;
57
44
  function viewData(data: Record<string, string | number | object>) {
58
45
  const exactMatch: Array<[string, string | number | object]> = [];
59
46
  const startsWith: Array<[string, string | number | object]> = [];
@@ -112,10 +99,10 @@ export function InfoPanel(props: InfoPanelProps) {
112
99
  {description}
113
100
  </Disclosure.Button>
114
101
  <Disclosure.Panel>
115
- <Table css={style.table} style={tableStyle}>
102
+ <Table bordered>
116
103
  <Table.Header>
117
- <ValueRenderers.Title value="Parameter" />
118
- <ValueRenderers.Title value="Value" />
104
+ <ValueRenderers.Header value="Parameter" />
105
+ <ValueRenderers.Header value="Value" />
119
106
  </Table.Header>
120
107
  {content}
121
108
  </Table>
@@ -8,13 +8,11 @@ import {
8
8
 
9
9
  import { Accordion } from '../accordion/Accordion';
10
10
  import { DropZone } from '../drop-zone/DropZone';
11
- import { Modal } from '../modal/Modal';
12
11
  import { SplitPane } from '../split-pane/SplitPane';
13
12
 
14
13
  const layoutComponents: ComponentsMap = {
15
14
  SplitPane,
16
15
  Accordion,
17
- Modal,
18
16
  DropZone,
19
17
  };
20
18
 
@@ -33,7 +33,7 @@ export function RootLayout(props: RootLayoutProps) {
33
33
  }, []);
34
34
 
35
35
  return (
36
- <div style={{ ...style, ...props.style }}>
36
+ <div style={{ ...style, ...props.style }} translate="no">
37
37
  <CustomDivPreflight ref={ref}>
38
38
  <RootLayoutProvider innerRef={rootRef}>
39
39
  <QueryClientProvider client={queryClient}>