react-science 0.27.0 → 0.27.1-pre.1696432898

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 (59) hide show
  1. package/lib/app/about/AboutDialogToolbarButton.js +3 -3
  2. package/lib/app/kinds/iv/plot-view/IvPlotView.js +5 -6
  3. package/lib/components/fullscreen/FullscreenToolbarButton.js +2 -3
  4. package/lib/components/modal/ConfirmModal.js +3 -1
  5. package/lib/components/root-layout/RootLayout.js +4 -2
  6. package/lib/components/split-pane/SplitPane.js +5 -4
  7. package/lib/components/split-pane/useSplitPaneSize.js +8 -8
  8. package/lib/components/tabs/Tabs.js +1 -0
  9. package/lib/components/toolbar/Toolbar.js +27 -83
  10. package/lib/components/toolbar/toolbarContext.js +13 -0
  11. package/lib-esm/app/about/AboutDialogToolbarButton.d.ts +2 -1
  12. package/lib-esm/app/about/AboutDialogToolbarButton.d.ts.map +1 -1
  13. package/lib-esm/app/about/AboutDialogToolbarButton.js +2 -2
  14. package/lib-esm/app/about/AboutDialogToolbarButton.js.map +1 -1
  15. package/lib-esm/app/kinds/iv/plot-view/IvPlotView.d.ts.map +1 -1
  16. package/lib-esm/app/kinds/iv/plot-view/IvPlotView.js +3 -4
  17. package/lib-esm/app/kinds/iv/plot-view/IvPlotView.js.map +1 -1
  18. package/lib-esm/components/fullscreen/FullscreenToolbarButton.d.ts.map +1 -1
  19. package/lib-esm/components/fullscreen/FullscreenToolbarButton.js +2 -3
  20. package/lib-esm/components/fullscreen/FullscreenToolbarButton.js.map +1 -1
  21. package/lib-esm/components/modal/ConfirmModal.d.ts.map +1 -1
  22. package/lib-esm/components/modal/ConfirmModal.js +3 -1
  23. package/lib-esm/components/modal/ConfirmModal.js.map +1 -1
  24. package/lib-esm/components/root-layout/RootLayout.d.ts +1 -1
  25. package/lib-esm/components/root-layout/RootLayout.d.ts.map +1 -1
  26. package/lib-esm/components/root-layout/RootLayout.js +4 -2
  27. package/lib-esm/components/root-layout/RootLayout.js.map +1 -1
  28. package/lib-esm/components/split-pane/SplitPane.js +5 -4
  29. package/lib-esm/components/split-pane/SplitPane.js.map +1 -1
  30. package/lib-esm/components/split-pane/useSplitPaneSize.d.ts +1 -1
  31. package/lib-esm/components/split-pane/useSplitPaneSize.js +8 -8
  32. package/lib-esm/components/split-pane/useSplitPaneSize.js.map +1 -1
  33. package/lib-esm/components/tabs/Tabs.js +1 -0
  34. package/lib-esm/components/tabs/Tabs.js.map +1 -1
  35. package/lib-esm/components/toolbar/Toolbar.d.ts +9 -7
  36. package/lib-esm/components/toolbar/Toolbar.d.ts.map +1 -1
  37. package/lib-esm/components/toolbar/Toolbar.js +29 -85
  38. package/lib-esm/components/toolbar/Toolbar.js.map +1 -1
  39. package/lib-esm/components/toolbar/toolbarContext.d.ts +11 -0
  40. package/lib-esm/components/toolbar/toolbarContext.d.ts.map +1 -0
  41. package/lib-esm/components/toolbar/toolbarContext.js +10 -0
  42. package/lib-esm/components/toolbar/toolbarContext.js.map +1 -0
  43. package/package.json +3 -1
  44. package/src/app/about/AboutDialogToolbarButton.tsx +4 -9
  45. package/src/app/kinds/iv/plot-view/IvPlotView.tsx +4 -7
  46. package/src/components/fullscreen/FullscreenToolbarButton.tsx +2 -6
  47. package/src/components/modal/ConfirmModal.tsx +3 -1
  48. package/src/components/root-layout/RootLayout.tsx +5 -2
  49. package/src/components/split-pane/SplitPane.tsx +13 -7
  50. package/src/components/split-pane/useSplitPaneSize.tsx +8 -8
  51. package/src/components/tabs/Tabs.tsx +1 -0
  52. package/src/components/toolbar/Toolbar.tsx +81 -122
  53. package/src/components/toolbar/toolbarContext.ts +21 -0
  54. package/lib/components/toolbar/ToolbarContext.js +0 -18
  55. package/lib-esm/components/toolbar/ToolbarContext.d.ts +0 -8
  56. package/lib-esm/components/toolbar/ToolbarContext.d.ts.map +0 -1
  57. package/lib-esm/components/toolbar/ToolbarContext.js +0 -14
  58. package/lib-esm/components/toolbar/ToolbarContext.js.map +0 -1
  59. package/src/components/toolbar/ToolbarContext.tsx +0 -25
@@ -1 +1 @@
1
- {"version":3,"file":"useSplitPaneSize.js","sourceRoot":"","sources":["../../../src/components/split-pane/useSplitPaneSize.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSplitPaneSize.js","sourceRoot":"","sources":["../../../src/components/split-pane/useSplitPaneSize.tsx"],"names":[],"mappings":"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"}
@@ -87,6 +87,7 @@ function TabsHorizontal(props) {
87
87
  flexDirection: 'row',
88
88
  borderBottom: '1px solid hsl(0deg, 0%, 80%)',
89
89
  overflowX: 'auto',
90
+ overflowY: 'hidden',
90
91
  }, css: styles.scroll, children: items.map((item) => (_jsx(TabsItem, { orientation: "horizontal", id: item.id, title: item.title, onClick: () => {
91
92
  onClick?.(item.id);
92
93
  } }, item.id))) }), item && (_jsx("div", { style: { flex: '1 1 0%', overflowX: 'auto' }, children: item.content }))] }));
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/components/tabs/Tabs.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/components/tabs/Tabs.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAa,OAAO,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAuB7D,MAAM,MAAM,GAAG;IACb,MAAM,EAAE,GAAG,CAAC;QACV,sBAAsB,EAAE;YACtB,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;SACb;QACD,4BAA4B,EAAE;YAC5B,eAAe,EAAE,iBAAiB;SACnC;QACD,4BAA4B,EAAE;YAC5B,eAAe,EAAE,gBAAgB;SAClC;KACF,CAAC;IACF,IAAI,EAAE,CAAC,UAAmB,EAAE,WAA4B,EAAE,EAAE;QAC1D,OAAO,GAAG,CAAC;YACT;gBACE,OAAO,EAAE,YAAY;gBACrB,MAAM,EAAE,8BAA8B;gBACtC,QAAQ,EAAE,SAAS;gBACnB,QAAQ,EAAE;oBACR,eAAe,EAAE,oBAAoB;iBACtC;gBACD,UAAU,EAAE,QAAQ;aACrB;YACD,UAAU,IAAI;gBACZ,eAAe,EAAE,oBAAoB;gBACrC,QAAQ,EAAE;oBACR,eAAe,EAAE,oBAAoB;iBACtC;aACF;YACD,WAAW,KAAK,YAAY,IAAI;gBAC9B,MAAM,EAAE,iBAAiB;gBACzB,YAAY,EAAE,MAAM;aACrB;YACD,WAAW,KAAK,UAAU,IAAI;gBAC5B,MAAM,EAAE,iBAAiB;gBACzB,WAAW,EAAE,MAAM;aACpB;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,IAAI,CAA4B,KAAmB;IACjE,MAAM,EAAE,WAAW,GAAG,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACrE,MAAM,IAAI,GAAG,OAAO,CAClB,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,EACvD,CAAC,KAAK,EAAE,MAAM,CAAC,CAChB,CAAC;IACF,IAAI,WAAW,KAAK,YAAY,EAAE;QAChC,OAAO,CACL,KAAC,YAAY,IAAC,MAAM,EAAE,IAAI,YACxB,KAAC,cAAc,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,GACrC,CAChB,CAAC;KACH;IAED,OAAO,CACL,KAAC,YAAY,IAAC,MAAM,EAAE,IAAI,YACxB,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,GACnC,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,KAAuD;IACvE,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAE9B,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,YAEzD,KAAK,CAAC,KAAK,GACL,CACV,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,KAAmD;IAEnD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACjC,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,OAAO,CACL,eACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,KAAK;YACpB,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,MAAM;SACf,aAED,cACE,KAAK,EAAE;oBACL,OAAO,EAAE,MAAM;oBACf,aAAa,EAAE,QAAQ;oBACvB,WAAW,EAAE,8BAA8B;oBAC3C,SAAS,EAAE,MAAM;iBAClB,EACD,GAAG,EAAE,MAAM,CAAC,MAAM,YAEjB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,QAAQ,IACP,WAAW,EAAC,UAAU,EAEtB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,OAAO,EAAE,GAAG,EAAE;wBACZ,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACrB,CAAC,IALI,IAAI,CAAC,EAAE,CAMZ,CACH,CAAC,GACE,EACL,IAAI,IAAI,CACP,cAAK,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,YAAG,IAAI,CAAC,OAAO,GAAO,CACxE,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,KAAmD;IAEnD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACjC,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,OAAO,CACL,eACE,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,MAAM;SACf,aAED,cACE,KAAK,EAAE;oBACL,OAAO,EAAE,MAAM;oBACf,aAAa,EAAE,KAAK;oBACpB,YAAY,EAAE,8BAA8B;oBAC5C,SAAS,EAAE,MAAM;oBACjB,SAAS,EAAE,QAAQ;iBACpB,EACD,GAAG,EAAE,MAAM,CAAC,MAAM,YAEjB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,QAAQ,IAEP,WAAW,EAAC,YAAY,EACxB,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,GAAG,EAAE;wBACZ,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACrB,CAAC,IANI,IAAI,CAAC,EAAE,CAOZ,CACH,CAAC,GACE,EACL,IAAI,IAAI,CACP,cAAK,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,YAAG,IAAI,CAAC,OAAO,GAAO,CACxE,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -1,16 +1,18 @@
1
- import { ReactElement, ReactFragment, ReactNode } from 'react';
2
- export type ToolbarOrientation = 'vertical' | 'horizontal';
3
- export type ToolbarItemOrientation = 'vertical' | 'horizontal' | 'auto';
1
+ /** @jsxImportSource @emotion/react */
2
+ import { ButtonProps, Intent } from '@blueprintjs/core';
3
+ import { ReactElement, ReactNode } from 'react';
4
4
  export interface ToolbarProps {
5
- orientation: ToolbarOrientation;
6
- children?: Array<ReactElement<ToolbarItemProps>> | ReactElement<ToolbarItemProps> | ReactFragment | boolean | null;
5
+ vertical?: boolean;
6
+ large?: boolean;
7
+ intent?: Intent;
8
+ disabled?: boolean;
9
+ children?: Array<ReactElement<ToolbarItemProps>> | ReactElement<ToolbarItemProps> | Iterable<ReactNode> | boolean | null;
7
10
  }
8
11
  export interface ToolbarItemProps {
9
12
  id?: string;
10
13
  title: string;
11
- children: ReactNode;
14
+ icon: ButtonProps['icon'];
12
15
  active?: boolean;
13
- titleOrientation?: ToolbarItemOrientation;
14
16
  onClick?: (item: ToolbarItemProps) => void;
15
17
  className?: string;
16
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/Toolbar.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EACZ,aAAa,EACb,SAAS,EAGV,MAAM,OAAO,CAAC;AAIf,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAC3D,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;AAExE,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,kBAAkB,CAAC;IAChC,QAAQ,CAAC,EACL,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,GACrC,YAAY,CAAC,gBAAgB,CAAC,GAC9B,aAAa,GACb,OAAO,GACP,IAAI,CAAC;CACV;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IAEpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA2ED,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,oDAoC1C;yBApCe,OAAO"}
1
+ {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/Toolbar.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EAGL,WAAW,EAGX,MAAM,EAEP,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,YAAY,EACZ,SAAS,EAIV,MAAM,OAAO,CAAC;AAQf,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;CACpB;AAID,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,oDAoD1C;yBApDe,OAAO"}
@@ -1,81 +1,20 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
1
+ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
2
  /** @jsxImportSource @emotion/react */
3
+ import { Button, ButtonGroup, Classes, Colors, Tooltip, } from '@blueprintjs/core';
3
4
  import { css } from '@emotion/react';
4
- import { useLayoutEffect, useRef, } from 'react';
5
- import { ToolbarProvider, useToolbarContext } from './ToolbarContext';
5
+ import { useLayoutEffect, useMemo, useRef, } from 'react';
6
+ import { toolbarContext, useToolbarContext, } from './toolbarContext';
6
7
  const border = '1px solid rgb(247, 247, 247)';
7
- const styles = {
8
- toolbar: (orientation) => {
9
- return css([
10
- { display: 'flex', flexWrap: 'wrap' },
11
- orientation === 'vertical'
12
- ? {
13
- flexDirection: 'column',
14
- minHeight: '100%',
15
- borderRight: border,
16
- }
17
- : {
18
- flexDirection: 'row',
19
- minWidth: '100%',
20
- },
21
- ]);
22
- },
23
- item: (active) => {
24
- return css([
25
- active && { backgroundColor: 'rgb(247, 247, 247)', borderRadius: 5 },
26
- {
27
- width: 30,
28
- height: 30,
29
- outline: 'none',
30
- alignItems: 'center',
31
- justifyContent: 'center',
32
- display: 'flex',
33
- '&:hover + .content': { display: 'flex' },
34
- },
35
- ]);
36
- },
37
- tooltip: (orientation, itemOrientation) => {
38
- const common = {
39
- display: 'none',
40
- position: 'absolute',
41
- backgroundColor: 'gray',
42
- borderRadius: '2px',
43
- color: 'white',
44
- bottom: '0px',
45
- right: '0px',
46
- width: 'fit-content',
47
- height: '50%',
48
- fontSize: '0.875em',
49
- whiteSpace: 'nowrap',
50
- paddingLeft: '3px',
51
- paddingRight: '3px',
52
- zIndex: 50,
53
- };
54
- if (itemOrientation === 'auto') {
55
- return css([
56
- common,
57
- orientation === 'vertical' && { margin: 'auto', marginLeft: 5 },
58
- orientation === 'horizontal'
59
- ? { top: '100%' }
60
- : { top: '0px', left: '100%' },
61
- ]);
62
- }
63
- else {
64
- return css([
65
- common,
66
- itemOrientation === 'horizontal' && { margin: 'auto', marginLeft: 5 },
67
- itemOrientation === 'vertical'
68
- ? { top: '100%' }
69
- : { top: '0px', left: '100%' },
70
- ]);
71
- }
72
- },
73
- };
74
8
  export function Toolbar(props) {
75
- const { children, orientation } = props;
9
+ const { children, disabled, intent, large, vertical } = props;
10
+ const contextValue = useMemo(() => ({ intent, large, vertical, disabled }), [intent, large, vertical, disabled]);
76
11
  const ref = useRef(null);
12
+ // Work around wrong width on vertical flex when wrapping
13
+ // In Chrome: recently fixed (https://bugs.chromium.org/p/chromium/issues/detail?id=507397)
14
+ // In Firefox: work-around needed (https://bugzilla.mozilla.org/show_bug.cgi?id=995020)
15
+ // In Safari: work-around needed
77
16
  useLayoutEffect(() => {
78
- if (orientation === 'horizontal') {
17
+ if (!vertical) {
79
18
  return;
80
19
  }
81
20
  function update() {
@@ -97,20 +36,25 @@ export function Toolbar(props) {
97
36
  observer.observe(element);
98
37
  return () => observer.unobserve(element);
99
38
  }
100
- }, [orientation]);
101
- return (_jsx("div", { css: styles.toolbar(orientation), ref: ref, children: _jsx(ToolbarProvider, { orientation: orientation, children: children }) }));
39
+ }, [vertical]);
40
+ return (_jsx(ToolbarProvider, { value: contextValue, children: _jsx(ButtonGroup, { ref: ref, vertical: vertical, large: large, style: { flexWrap: 'wrap', borderRight: vertical ? border : undefined }, children: children }) }));
102
41
  }
103
42
  Toolbar.Item = function ToolbarItem(props) {
104
- const orientation = useToolbarContext();
105
- const { active = false, children, onClick, title, titleOrientation = 'auto', id, ...other } = props;
106
- return (_jsxs("div", { style: { position: 'relative', padding: 4, fontSize: '1.25em' }, ...other, children: [_jsx("button", { type: "button", css: styles.item(active), onClick: () => {
107
- if (onClick) {
108
- onClick(props);
109
- }
110
- }, children: children }), _jsx("div", { className: "content", css: styles.tooltip(orientation, titleOrientation), children: _jsx("span", { style: {
111
- display: 'flex',
112
- margin: 'auto',
113
- justifyContent: 'center',
114
- }, children: title }) })] }));
43
+ const { active = false, icon, onClick, title, id, ...other } = props;
44
+ const { intent, large, vertical, disabled } = useToolbarContext();
45
+ return (_jsx(Tooltip, { css: css `
46
+ flex-grow: 0 !important;
47
+ `, compact: !large, intent: intent, content: title, placement: vertical ? 'right' : 'bottom', children: _jsx(Button, { minimal: true, disabled: disabled, css: css `
48
+ .${Classes.ICON} {
49
+ color: ${Colors.DARK_GRAY3};
50
+ }
51
+ `, intent: intent, style: { position: 'relative', fontSize: '1.25em' }, type: "button", active: active, icon: icon, onClick: () => {
52
+ if (onClick) {
53
+ onClick(props);
54
+ }
55
+ }, ...other }) }));
115
56
  };
57
+ function ToolbarProvider(props) {
58
+ return (_jsx(toolbarContext.Provider, { value: props.value, children: props.children }));
59
+ }
116
60
  //# sourceMappingURL=Toolbar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../../../src/components/toolbar/Toolbar.tsx"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,OAAO,EAAE,GAAG,EAAa,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAIL,eAAe,EACf,MAAM,GACP,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AA0BtE,MAAM,MAAM,GAAG,8BAA8B,CAAC;AAE9C,MAAM,MAAM,GAAG;IACb,OAAO,EAAE,CAAC,WAA+B,EAAE,EAAE;QAC3C,OAAO,GAAG,CAAC;YACT,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;YACrC,WAAW,KAAK,UAAU;gBACxB,CAAC,CAAC;oBACE,aAAa,EAAE,QAAQ;oBACvB,SAAS,EAAE,MAAM;oBACjB,WAAW,EAAE,MAAM;iBACpB;gBACH,CAAC,CAAC;oBACE,aAAa,EAAE,KAAK;oBACpB,QAAQ,EAAE,MAAM;iBACjB;SACN,CAAC,CAAC;IACL,CAAC;IACD,IAAI,EAAE,CAAC,MAAe,EAAE,EAAE;QACxB,OAAO,GAAG,CAAC;YACT,MAAM,IAAI,EAAE,eAAe,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC,EAAE;YACpE;gBACE,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,QAAQ;gBACpB,cAAc,EAAE,QAAQ;gBACxB,OAAO,EAAE,MAAM;gBACf,oBAAoB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;aAC1C;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CACP,WAA+B,EAC/B,eAAuC,EACvC,EAAE;QACF,MAAM,MAAM,GAAc;YACxB,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,UAAU;YACpB,eAAe,EAAE,MAAM;YACvB,YAAY,EAAE,KAAK;YACnB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,KAAK;YACnB,MAAM,EAAE,EAAE;SACX,CAAC;QAEF,IAAI,eAAe,KAAK,MAAM,EAAE;YAC9B,OAAO,GAAG,CAAC;gBACT,MAAM;gBACN,WAAW,KAAK,UAAU,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE;gBAC/D,WAAW,KAAK,YAAY;oBAC1B,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE;oBACjB,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;aACjC,CAAC,CAAC;SACJ;aAAM;YACL,OAAO,GAAG,CAAC;gBACT,MAAM;gBACN,eAAe,KAAK,YAAY,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE;gBACrE,eAAe,KAAK,UAAU;oBAC5B,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE;oBACjB,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;aACjC,CAAC,CAAC;SACJ;IACH,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAExC,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,WAAW,KAAK,YAAY,EAAE;YAChC,OAAO;SACR;QAED,SAAS,MAAM;YACb,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC;YAClD,IAAI,CAAC,WAAW,EAAE;gBAChB,OAAO;aACR;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;gBACrC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;aACjC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,OAAO,EAAE;YACX,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;SAC1C;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,CACL,cAAK,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,YAC7C,KAAC,eAAe,IAAC,WAAW,EAAE,WAAW,YAAG,QAAQ,GAAmB,GACnE,CACP,CAAC;AACJ,CAAC;AAED,OAAO,CAAC,IAAI,GAAG,SAAS,WAAW,CAAC,KAAuB;IACzD,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;IACxC,MAAM,EACJ,MAAM,GAAG,KAAK,EACd,QAAQ,EACR,OAAO,EACP,KAAK,EACL,gBAAgB,GAAG,MAAM,EACzB,EAAE,EACF,GAAG,KAAK,EACT,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,eACE,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAC3D,KAAK,aAET,iBACE,IAAI,EAAC,QAAQ,EACb,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EACxB,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,OAAO,EAAE;wBACX,OAAO,CAAC,KAAK,CAAC,CAAC;qBAChB;gBACH,CAAC,YAEA,QAAQ,GACF,EACT,cACE,SAAS,EAAC,SAAS,EACnB,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC,YAElD,eACE,KAAK,EAAE;wBACL,OAAO,EAAE,MAAM;wBACf,MAAM,EAAE,MAAM;wBACd,cAAc,EAAE,QAAQ;qBACzB,YAEA,KAAK,GACD,GACH,IACF,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../../../src/components/toolbar/Toolbar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { Intent } from '@blueprintjs/core';
3
+ export interface ToolbarContext {
4
+ intent?: Intent;
5
+ large?: boolean;
6
+ vertical?: boolean;
7
+ disabled?: boolean;
8
+ }
9
+ export declare const toolbarContext: import("react").Context<ToolbarContext | null>;
10
+ export declare function useToolbarContext(): ToolbarContext;
11
+ //# sourceMappingURL=toolbarContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbarContext.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/toolbarContext.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,gDAA6C,CAAC;AAEzE,wBAAgB,iBAAiB,mBAQhC"}
@@ -0,0 +1,10 @@
1
+ import { createContext, useContext } from 'react';
2
+ export const toolbarContext = createContext(null);
3
+ export function useToolbarContext() {
4
+ const ctx = useContext(toolbarContext);
5
+ if (!ctx) {
6
+ throw new Error('useToolbarContext must be used within a ToolbarContextProvider');
7
+ }
8
+ return ctx;
9
+ }
10
+ //# sourceMappingURL=toolbarContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbarContext.js","sourceRoot":"","sources":["../../../src/components/toolbar/toolbarContext.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AASlD,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAwB,IAAI,CAAC,CAAC;AAEzE,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG,EAAE;QACR,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;KACH;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-science",
3
- "version": "0.27.0",
3
+ "version": "0.27.1-pre.1696432898",
4
4
  "description": "React components to build scientific applications UI",
5
5
  "exports": {
6
6
  "./app": {
@@ -62,6 +62,8 @@
62
62
  "react-dom": ">=18.0.0"
63
63
  },
64
64
  "dependencies": {
65
+ "@blueprintjs/core": "^5.3.2",
66
+ "@blueprintjs/icons": "^5.1.7",
65
67
  "@emotion/react": "^11.11.1",
66
68
  "@emotion/styled": "^11.11.0",
67
69
  "@headlessui/react": "^1.7.16",
@@ -1,11 +1,12 @@
1
+ import { ButtonProps } from '@blueprintjs/core';
1
2
  import styled from '@emotion/styled';
2
3
  import { ReactNode } from 'react';
3
4
 
4
- import { Modal, Toolbar, useOnOff } from '../../components/index';
5
+ import { Modal, Toolbar, useOnOff } from '../../components';
5
6
 
6
7
  interface AboutDialogToolbarButtonProps {
7
8
  name: string;
8
- icon: ReactNode;
9
+ icon: ButtonProps['icon'];
9
10
  body: ReactNode;
10
11
  }
11
12
 
@@ -20,13 +21,7 @@ export function AboutDialogToolbarButton(props: AboutDialogToolbarButtonProps) {
20
21
 
21
22
  return (
22
23
  <>
23
- <Toolbar.Item
24
- titleOrientation="horizontal"
25
- title={`About ${name}`}
26
- onClick={openDialog}
27
- >
28
- {icon}
29
- </Toolbar.Item>
24
+ <Toolbar.Item title={`About ${name}`} onClick={openDialog} icon={icon} />
30
25
  <Modal isOpen={isOpenDialog} onRequestClose={closeDialog}>
31
26
  <Modal.Header>{name}</Modal.Header>
32
27
  <Modal.Body>
@@ -1,9 +1,8 @@
1
1
  import styled from '@emotion/styled';
2
- import { FaCompress } from 'react-icons/fa';
3
2
  import { PlotController } from 'react-plot';
4
3
 
5
- import { useAppDispatch, useAppState } from '../../../../app-data/index';
6
- import { Toolbar } from '../../../../components/index';
4
+ import { useAppDispatch, useAppState } from '../../../../app-data';
5
+ import { Toolbar } from '../../../../components';
7
6
 
8
7
  import IvMeasurementsPlot from './IvMeasurementsPlot';
9
8
  import IvPlotVariablesSelector from './IvPlotVariablesSelector';
@@ -49,10 +48,8 @@ function VerticalToolbar() {
49
48
  }
50
49
 
51
50
  return (
52
- <Toolbar orientation="vertical">
53
- <Toolbar.Item onClick={onZoomOut} title="Zoom out">
54
- <FaCompress />
55
- </Toolbar.Item>
51
+ <Toolbar vertical>
52
+ <Toolbar.Item onClick={onZoomOut} title="Zoom out" icon="zoom-out" />
56
53
  </Toolbar>
57
54
  );
58
55
  }
@@ -1,14 +1,10 @@
1
- import { FaExpand } from 'react-icons/fa';
2
-
3
- import { Toolbar } from '../toolbar/Toolbar';
1
+ import { Toolbar } from '../toolbar';
4
2
 
5
3
  import { useFullscreen } from './FullscreenContext';
6
4
 
7
5
  export function FullscreenToolbarButton() {
8
6
  const { toggle } = useFullscreen();
9
7
  return (
10
- <Toolbar.Item title="Full screen" onClick={toggle}>
11
- <FaExpand />
12
- </Toolbar.Item>
8
+ <Toolbar.Item icon="fullscreen" title="Full screen" onClick={toggle} />
13
9
  );
14
10
  }
@@ -24,7 +24,9 @@ interface ConfirmModalProps {
24
24
 
25
25
  const ConfirmModalDialog = styled.dialog`
26
26
  background-color: transparent;
27
-
27
+ :focus {
28
+ outline: none;
29
+ }
28
30
  ::backdrop {
29
31
  background-color: rgba(113, 113, 122, 0.75);
30
32
  }
@@ -1,12 +1,15 @@
1
+ import { FocusStyleManager } from '@blueprintjs/core';
1
2
  import { QueryClientProvider } from '@tanstack/react-query';
2
- import { ReactNode, CSSProperties, useState, useCallback } from 'react';
3
+ import { CSSProperties, ReactNode, useCallback, useState } from 'react';
3
4
 
4
- import { AccordionProvider } from '../accordion/AccordionContext';
5
+ import { AccordionProvider } from '../accordion';
5
6
 
6
7
  import { RootLayoutProvider } from './RootLayoutContext';
7
8
  import { CustomDivPreflight } from './css-reset/customPreflight';
8
9
  import { queryClient } from './queryClient';
9
10
 
11
+ FocusStyleManager.onlyShowFocusOnTabs();
12
+
10
13
  interface RootLayoutProps {
11
14
  style?: CSSProperties;
12
15
  children: ReactNode;
@@ -1,7 +1,7 @@
1
1
  /** @jsxImportSource @emotion/react */
2
2
  import { css } from '@emotion/react';
3
3
  import {
4
- MouseEvent as ReactMouseEvent,
4
+ PointerEvent as ReactPointerEvent,
5
5
  createContext,
6
6
  CSSProperties,
7
7
  ReactNode,
@@ -114,7 +114,7 @@ export function SplitPane(props: SplitPaneProps) {
114
114
  }, [closePane, closed, openPane]);
115
115
 
116
116
  const splitterRef = useRef<HTMLDivElement>(null);
117
- const { onMouseDown } = useSplitPaneSize({
117
+ const { onPointerDown } = useSplitPaneSize({
118
118
  controlledSide,
119
119
  direction,
120
120
  splitterRef,
@@ -183,7 +183,7 @@ export function SplitPane(props: SplitPaneProps) {
183
183
 
184
184
  <Splitter
185
185
  onDoubleClick={handleToggle}
186
- onMouseDown={isFinalClosed ? undefined : onMouseDown}
186
+ onPointerDown={isFinalClosed ? undefined : onPointerDown}
187
187
  isFinalClosed={isFinalClosed}
188
188
  direction={direction}
189
189
  splitterRef={splitterRef}
@@ -196,19 +196,24 @@ export function SplitPane(props: SplitPaneProps) {
196
196
 
197
197
  interface SplitterProps {
198
198
  onDoubleClick: () => void;
199
- onMouseDown?: (event: ReactMouseEvent) => void;
199
+ onPointerDown?: (event: ReactPointerEvent) => void;
200
200
  direction: SplitPaneDirection;
201
201
  isFinalClosed: boolean;
202
202
  splitterRef: RefObject<HTMLDivElement>;
203
203
  }
204
204
 
205
205
  function Splitter(props: SplitterProps) {
206
- const { onDoubleClick, onMouseDown, direction, isFinalClosed, splitterRef } =
207
- props;
206
+ const {
207
+ onDoubleClick,
208
+ onPointerDown,
209
+ direction,
210
+ isFinalClosed,
211
+ splitterRef,
212
+ } = props;
208
213
  return (
209
214
  <div
210
215
  onDoubleClick={onDoubleClick}
211
- onMouseDown={onMouseDown}
216
+ onPointerDown={onPointerDown}
212
217
  css={getSeparatorStyle(direction, !isFinalClosed)}
213
218
  ref={splitterRef}
214
219
  >
@@ -298,6 +303,7 @@ function getSeparatorStyle(direction: SplitPaneDirection, enabled: boolean) {
298
303
  alignItems: 'center',
299
304
  userSelect: 'none',
300
305
  minWidth: 11,
306
+ touchAction: 'none',
301
307
  ':hover': {
302
308
  backgroundColor: 'rgb(223, 223, 223)',
303
309
  },
@@ -26,9 +26,9 @@ export function useSplitPaneSize(options: UseSplitPaneSizeOptions) {
26
26
  onResize,
27
27
  } = options;
28
28
 
29
- function mouseDownCallback() {
29
+ function downCallback() {
30
30
  let lastSize: [number, SplitPaneType] | null = null;
31
- function onMouseMove(event: MouseEvent) {
31
+ function moveCallback(event: PointerEvent) {
32
32
  if (!splitterRef.current) return;
33
33
  const { clientX, clientY } = event;
34
34
  const parentDiv = splitterRef.current.parentElement as HTMLDivElement;
@@ -69,20 +69,20 @@ export function useSplitPaneSize(options: UseSplitPaneSizeOptions) {
69
69
  }
70
70
  }
71
71
 
72
- function mouseUpCallback() {
73
- window.removeEventListener('mousemove', onMouseMove);
74
- window.removeEventListener('mouseup', mouseUpCallback);
72
+ function upCallback() {
73
+ window.removeEventListener('pointermove', moveCallback);
74
+ window.removeEventListener('pointerup', upCallback);
75
75
  if (lastSize && onResize) {
76
76
  onResize(`${lastSize[0]}${lastSize[1]}`);
77
77
  }
78
78
  }
79
79
 
80
- window.addEventListener('mousemove', onMouseMove);
81
- window.addEventListener('mouseup', mouseUpCallback);
80
+ window.addEventListener('pointermove', moveCallback);
81
+ window.addEventListener('pointerup', upCallback);
82
82
  }
83
83
 
84
84
  return {
85
- onMouseDown: mouseDownCallback,
85
+ onPointerDown: downCallback,
86
86
  };
87
87
  }
88
88
 
@@ -165,6 +165,7 @@ function TabsHorizontal<T extends string = string>(
165
165
  flexDirection: 'row',
166
166
  borderBottom: '1px solid hsl(0deg, 0%, 80%)',
167
167
  overflowX: 'auto',
168
+ overflowY: 'hidden',
168
169
  }}
169
170
  css={styles.scroll}
170
171
  >