react-science 0.21.0 → 0.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -28,8 +28,7 @@ function computeMinMax(measurement) {
28
28
  // TODO: should we accept empty data?
29
29
  return;
30
30
  }
31
- if (typeof variable.min === 'undefined' ||
32
- typeof variable.max === 'undefined') {
31
+ if (variable.min === undefined || variable.max === undefined) {
33
32
  const { min, max } = (0, ml_spectra_processing_1.xMinMaxValues)(variable.data);
34
33
  variable.min = min;
35
34
  variable.max = max;
@@ -6,7 +6,9 @@ const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const react_1 = require("react");
7
7
  const fullscreenContextInit = {
8
8
  isFullScreen: false,
9
- toggle: () => { },
9
+ toggle: () => {
10
+ // empty
11
+ },
10
12
  };
11
13
  const FullscreenContext = (0, react_1.createContext)(fullscreenContextInit);
12
14
  function useFullscreen() {
@@ -7,9 +7,9 @@ exports.ConfirmModal = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const styled_1 = __importDefault(require("@emotion/styled"));
9
9
  const __1 = require("..");
10
+ const Portal_1 = require("../root-layout/Portal");
10
11
  const useDialog_1 = require("./useDialog");
11
12
  const ConfirmModalDialog = styled_1.default.dialog `
12
- display: flex;
13
13
  position: fixed;
14
14
  background-color: transparent;
15
15
 
@@ -17,7 +17,7 @@ const ConfirmModalDialog = styled_1.default.dialog `
17
17
  background-color: rgba(113, 113, 122, 0.75);
18
18
  }
19
19
  `;
20
- const ConfirmModalOpened = styled_1.default.div `
20
+ const ConfirmModalContents = styled_1.default.div `
21
21
  position: relative;
22
22
  display: flex;
23
23
  flex-direction: column;
@@ -27,7 +27,7 @@ const ConfirmModalOpened = styled_1.default.div `
27
27
  border-width: 1px;
28
28
  border-color: transparent;
29
29
  border-radius: 0.5rem;
30
- box-shadow: 0 0 0 0, 0 8px 16px rgba(0, 0, 0, 0.3);
30
+ box-shadow: 0 0 0 0, 0 0px 16px rgba(0, 0, 0, 0.3);
31
31
  border-top: 10px solid ${({ headerColor }) => headerColor};
32
32
  `;
33
33
  const ConfirmModalChildrenRoot = styled_1.default.div `
@@ -50,12 +50,15 @@ function ConfirmModal(props) {
50
50
  requestCloseOnBackdrop,
51
51
  onRequestClose,
52
52
  });
53
- return ((0, jsx_runtime_1.jsx)(ConfirmModalDialog, { ref: ref, onClick: onClick, children: isOpen ? ((0, jsx_runtime_1.jsxs)(ConfirmModalOpened, { headerColor: headerColor, style: { maxWidth }, children: [(0, jsx_runtime_1.jsx)(ConfirmModalChildrenRoot, { headerColor: headerColor, children: children }), (0, jsx_runtime_1.jsxs)(ConfirmModalFooter, { children: [(0, jsx_runtime_1.jsx)(__1.Button, { onClick: onConfirm, backgroundColor: {
54
- basic: 'hsla(243deg, 75%, 58%, 1)',
55
- hover: 'hsla(245deg, 58%, 50%, 1)',
56
- }, color: { basic: 'white' }, children: saveText }), (0, jsx_runtime_1.jsx)(__1.Button, { onClick: onCancel, backgroundColor: {
57
- basic: 'hsla(0deg, 72%, 50%, 1)',
58
- hover: 'hsla(0deg, 73%, 42%, 1)',
59
- }, color: { basic: 'white' }, children: cancelText })] })] })) : null }));
53
+ if (!isOpen) {
54
+ return null;
55
+ }
56
+ return ((0, jsx_runtime_1.jsx)(Portal_1.Portal, { children: (0, jsx_runtime_1.jsx)(ConfirmModalDialog, { ref: ref, onClick: onClick, children: (0, jsx_runtime_1.jsxs)(ConfirmModalContents, { headerColor: headerColor, style: { maxWidth }, children: [(0, jsx_runtime_1.jsx)(ConfirmModalChildrenRoot, { headerColor: headerColor, children: children }), (0, jsx_runtime_1.jsxs)(ConfirmModalFooter, { children: [(0, jsx_runtime_1.jsx)(__1.Button, { onClick: onConfirm, backgroundColor: {
57
+ basic: 'hsla(243deg, 75%, 58%, 1)',
58
+ hover: 'hsla(245deg, 58%, 50%, 1)',
59
+ }, color: { basic: 'white' }, children: saveText }), (0, jsx_runtime_1.jsx)(__1.Button, { onClick: onCancel, backgroundColor: {
60
+ basic: 'hsla(0deg, 72%, 50%, 1)',
61
+ hover: 'hsla(0deg, 73%, 42%, 1)',
62
+ }, color: { basic: 'white' }, children: cancelText })] })] }) }) }));
60
63
  }
61
64
  exports.ConfirmModal = ConfirmModal;
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Modal = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const styled_1 = __importDefault(require("@emotion/styled"));
9
+ const Portal_1 = require("../root-layout/Portal");
9
10
  const ModalCloseButton_1 = __importDefault(require("./ModalCloseButton"));
10
11
  const useDialog_1 = require("./useDialog");
11
12
  const DialogRoot = styled_1.default.dialog `
12
- display: flex;
13
13
  position: fixed;
14
14
  background-color: transparent;
15
15
 
@@ -17,7 +17,7 @@ const DialogRoot = styled_1.default.dialog `
17
17
  background-color: rgba(113, 113, 122, 0.75);
18
18
  }
19
19
  `;
20
- const DialogOpened = styled_1.default.div `
20
+ const DialogContents = styled_1.default.div `
21
21
  position: relative;
22
22
  display: flex;
23
23
  flex-direction: column;
@@ -26,7 +26,7 @@ const DialogOpened = styled_1.default.div `
26
26
  border-width: 1px;
27
27
  border-color: transparent;
28
28
  border-radius: 0.5rem;
29
- box-shadow: 0 0 0 0, 0 8px 16px rgba(0, 0, 0, 0.3);
29
+ box-shadow: 0 0 0 0, 0 0px 16px rgba(0, 0, 0, 0.3);
30
30
  `;
31
31
  const ModalHeaderStyled = styled_1.default.div `
32
32
  display: flex;
@@ -52,11 +52,14 @@ function Modal(props) {
52
52
  requestCloseOnBackdrop,
53
53
  onRequestClose,
54
54
  });
55
- return ((0, jsx_runtime_1.jsx)(DialogRoot, { ref: ref, onClick: onClick, children: isOpen ? ((0, jsx_runtime_1.jsxs)(DialogOpened, { style: {
56
- maxWidth,
57
- height: height || 'max-content',
58
- width: width || '100%',
59
- }, children: [children, hasCloseButton && (0, jsx_runtime_1.jsx)(ModalCloseButton_1.default, { onClick: onRequestClose })] })) : null }));
55
+ if (!isOpen) {
56
+ return null;
57
+ }
58
+ return ((0, jsx_runtime_1.jsx)(Portal_1.Portal, { children: (0, jsx_runtime_1.jsx)(DialogRoot, { ref: ref, onClick: onClick, children: (0, jsx_runtime_1.jsxs)(DialogContents, { style: {
59
+ maxWidth,
60
+ height: height || 'max-content',
61
+ width: width || '100%',
62
+ }, children: [children, hasCloseButton && (0, jsx_runtime_1.jsx)(ModalCloseButton_1.default, { onClick: onRequestClose })] }) }) }));
60
63
  }
61
64
  exports.Modal = Modal;
62
65
  Modal.Header = function ModalHeader(props) {
@@ -24,8 +24,7 @@ function computeMinMax(measurement) {
24
24
  // TODO: should we accept empty data?
25
25
  return;
26
26
  }
27
- if (typeof variable.min === 'undefined' ||
28
- typeof variable.max === 'undefined') {
27
+ if (variable.min === undefined || variable.max === undefined) {
29
28
  const { min, max } = xMinMaxValues(variable.data);
30
29
  variable.min = min;
31
30
  variable.max = max;
@@ -1 +1 @@
1
- {"version":3,"file":"loadMeasurements.js","sourceRoot":"","sources":["../../../src/app-data/loaders/loadMeasurements.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAgB,OAAO,EAA8B,MAAM,UAAU,CAAC;AAE7E,OAAO,EAEL,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AASrC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,cAA8B,EAC9B,UAAuB,EAAE;IAEzB,MAAM,YAAY,GAA0B,EAAE,CAAC;IAC/C,IAAI,IAAI,GAAgB,EAAE,CAAC;IAC3B,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAChE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3E,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YACnD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC3B,aAAa,CAAC,KAAK,CAAC,CAAC;aACtB;SACF;QACD,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC/B,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;KAC7C;IACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,aAAa,CAAC,WAA4B;IACjD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE;QACpC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACrD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,qCAAqC;gBACrC,OAAO;aACR;YACD,IACE,OAAO,QAAQ,CAAC,GAAG,KAAK,WAAW;gBACnC,OAAO,QAAQ,CAAC,GAAG,KAAK,WAAW,EACnC;gBACA,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAClD,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;gBACnB,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;aACpB;SACF;KACF;AACH,CAAC"}
1
+ {"version":3,"file":"loadMeasurements.js","sourceRoot":"","sources":["../../../src/app-data/loaders/loadMeasurements.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAgB,OAAO,EAA8B,MAAM,UAAU,CAAC;AAE7E,OAAO,EAEL,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AASrC,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,cAA8B,EAC9B,UAAuB,EAAE;IAEzB,MAAM,YAAY,GAA0B,EAAE,CAAC;IAC/C,IAAI,IAAI,GAAgB,EAAE,CAAC;IAC3B,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAChE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3E,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YACnD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC3B,aAAa,CAAC,KAAK,CAAC,CAAC;aACtB;SACF;QACD,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC/B,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;KAC7C;IACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,SAAS,aAAa,CAAC,WAA4B;IACjD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE;QACpC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACrD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,qCAAqC;gBACrC,OAAO;aACR;YACD,IAAI,QAAQ,CAAC,GAAG,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,KAAK,SAAS,EAAE;gBAC5D,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAClD,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;gBACnB,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;aACpB;SACF;KACF;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FullscreenContext.d.ts","sourceRoot":"","sources":["../../../src/components/fullscreen/FullscreenContext.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,SAAS,EAMV,MAAM,OAAO,CAAC;AAUf,UAAU,eAAe;IACvB,QAAQ,EAAE,SAAS,CAAC;CACrB;AACD,UAAU,eAAe;IACvB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,WAAY,SAAQ,eAAe;IAC3C,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAOD,wBAAgB,aAAa,gBAE5B;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,eAYxD"}
1
+ {"version":3,"file":"FullscreenContext.d.ts","sourceRoot":"","sources":["../../../src/components/fullscreen/FullscreenContext.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,SAAS,EAMV,MAAM,OAAO,CAAC;AAUf,UAAU,eAAe;IACvB,QAAQ,EAAE,SAAS,CAAC;CACrB;AACD,UAAU,eAAe;IACvB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,WAAY,SAAQ,eAAe;IAC3C,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AASD,wBAAgB,aAAa,gBAE5B;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,eAYxD"}
@@ -3,7 +3,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { createContext, useContext, useEffect, useMemo, useReducer, useRef, } from 'react';
4
4
  const fullscreenContextInit = {
5
5
  isFullScreen: false,
6
- toggle: () => { },
6
+ toggle: () => {
7
+ // empty
8
+ },
7
9
  };
8
10
  const FullscreenContext = createContext(fullscreenContextInit);
9
11
  export function useFullscreen() {
@@ -1 +1 @@
1
- {"version":3,"file":"FullscreenContext.js","sourceRoot":"","sources":["../../../src/components/fullscreen/FullscreenContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FullscreenContext.js","sourceRoot":"","sources":["../../../src/components/fullscreen/FullscreenContext.tsx"],"names":[],"mappings":"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"}
@@ -12,6 +12,6 @@ interface ConfirmModalProps {
12
12
  headerColor: string;
13
13
  maxWidth?: number;
14
14
  }
15
- export declare function ConfirmModal(props: ConfirmModalProps): JSX.Element;
15
+ export declare function ConfirmModal(props: ConfirmModalProps): JSX.Element | null;
16
16
  export {};
17
17
  //# sourceMappingURL=ConfirmModal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmModal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/ConfirmModal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA0CD,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,eAwDpD"}
1
+ {"version":3,"file":"ConfirmModal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/ConfirmModal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAyCD,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,sBA4DpD"}
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import styled from '@emotion/styled';
3
3
  import { Button } from '..';
4
+ import { Portal } from '../root-layout/Portal';
4
5
  import { useDialog } from './useDialog';
5
6
  const ConfirmModalDialog = styled.dialog `
6
- display: flex;
7
7
  position: fixed;
8
8
  background-color: transparent;
9
9
 
@@ -11,7 +11,7 @@ const ConfirmModalDialog = styled.dialog `
11
11
  background-color: rgba(113, 113, 122, 0.75);
12
12
  }
13
13
  `;
14
- const ConfirmModalOpened = styled.div `
14
+ const ConfirmModalContents = styled.div `
15
15
  position: relative;
16
16
  display: flex;
17
17
  flex-direction: column;
@@ -21,7 +21,7 @@ const ConfirmModalOpened = styled.div `
21
21
  border-width: 1px;
22
22
  border-color: transparent;
23
23
  border-radius: 0.5rem;
24
- box-shadow: 0 0 0 0, 0 8px 16px rgba(0, 0, 0, 0.3);
24
+ box-shadow: 0 0 0 0, 0 0px 16px rgba(0, 0, 0, 0.3);
25
25
  border-top: 10px solid ${({ headerColor }) => headerColor};
26
26
  `;
27
27
  const ConfirmModalChildrenRoot = styled.div `
@@ -44,12 +44,15 @@ export function ConfirmModal(props) {
44
44
  requestCloseOnBackdrop,
45
45
  onRequestClose,
46
46
  });
47
- return (_jsx(ConfirmModalDialog, { ref: ref, onClick: onClick, children: isOpen ? (_jsxs(ConfirmModalOpened, { headerColor: headerColor, style: { maxWidth }, children: [_jsx(ConfirmModalChildrenRoot, { headerColor: headerColor, children: children }), _jsxs(ConfirmModalFooter, { children: [_jsx(Button, { onClick: onConfirm, backgroundColor: {
48
- basic: 'hsla(243deg, 75%, 58%, 1)',
49
- hover: 'hsla(245deg, 58%, 50%, 1)',
50
- }, color: { basic: 'white' }, children: saveText }), _jsx(Button, { onClick: onCancel, backgroundColor: {
51
- basic: 'hsla(0deg, 72%, 50%, 1)',
52
- hover: 'hsla(0deg, 73%, 42%, 1)',
53
- }, color: { basic: 'white' }, children: cancelText })] })] })) : null }));
47
+ if (!isOpen) {
48
+ return null;
49
+ }
50
+ return (_jsx(Portal, { children: _jsx(ConfirmModalDialog, { ref: ref, onClick: onClick, children: _jsxs(ConfirmModalContents, { headerColor: headerColor, style: { maxWidth }, children: [_jsx(ConfirmModalChildrenRoot, { headerColor: headerColor, children: children }), _jsxs(ConfirmModalFooter, { children: [_jsx(Button, { onClick: onConfirm, backgroundColor: {
51
+ basic: 'hsla(243deg, 75%, 58%, 1)',
52
+ hover: 'hsla(245deg, 58%, 50%, 1)',
53
+ }, color: { basic: 'white' }, children: saveText }), _jsx(Button, { onClick: onCancel, backgroundColor: {
54
+ basic: 'hsla(0deg, 72%, 50%, 1)',
55
+ hover: 'hsla(0deg, 73%, 42%, 1)',
56
+ }, color: { basic: 'white' }, children: cancelText })] })] }) }) }));
54
57
  }
55
58
  //# sourceMappingURL=ConfirmModal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmModal.js","sourceRoot":"","sources":["../../../src/components/modal/ConfirmModal.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAgBxC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;;;CAQvC,CAAC;AAEF,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAEnC;;;;;;;;;;;2BAWyB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW;CAC1D,CAAC;AAEF,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAyB;WACzD,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW;;;CAG1C,CAAC;AAEF,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAMpC,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EACJ,MAAM,EACN,QAAQ,GAAG,MAAM,EACjB,UAAU,GAAG,QAAQ,EACrB,WAAW,EACX,QAAQ,EACR,cAAc,EACd,QAAQ,GAAG,cAAc,EACzB,SAAS,EACT,sBAAsB,GAAG,IAAI,EAC7B,iBAAiB,GAAG,IAAI,EACxB,QAAQ,GACT,GAAG,KAAK,CAAC;IAEV,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QACjC,MAAM;QACN,iBAAiB;QACjB,sBAAsB;QACtB,cAAc;KACf,CAAC,CAAC;IAEH,OAAO,CACL,KAAC,kBAAkB,IAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,YAC3C,MAAM,CAAC,CAAC,CAAC,CACR,MAAC,kBAAkB,IAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,aAC/D,KAAC,wBAAwB,IAAC,WAAW,EAAE,WAAW,YAC/C,QAAQ,GACgB,EAE3B,MAAC,kBAAkB,eACjB,KAAC,MAAM,IACL,OAAO,EAAE,SAAS,EAClB,eAAe,EAAE;gCACf,KAAK,EAAE,2BAA2B;gCAClC,KAAK,EAAE,2BAA2B;6BACnC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAExB,QAAQ,GACF,EACT,KAAC,MAAM,IACL,OAAO,EAAE,QAAQ,EACjB,eAAe,EAAE;gCACf,KAAK,EAAE,yBAAyB;gCAChC,KAAK,EAAE,yBAAyB;6BACjC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAExB,UAAU,GACJ,IACU,IACF,CACtB,CAAC,CAAC,CAAC,IAAI,GACW,CACtB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ConfirmModal.js","sourceRoot":"","sources":["../../../src/components/modal/ConfirmModal.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAgBxC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;;CAOvC,CAAC;AAEF,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAErC;;;;;;;;;;;2BAWyB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW;CAC1D,CAAC;AAEF,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAyB;WACzD,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW;;;CAG1C,CAAC;AAEF,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAMpC,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EACJ,MAAM,EACN,QAAQ,GAAG,MAAM,EACjB,UAAU,GAAG,QAAQ,EACrB,WAAW,EACX,QAAQ,EACR,cAAc,EACd,QAAQ,GAAG,cAAc,EACzB,SAAS,EACT,sBAAsB,GAAG,IAAI,EAC7B,iBAAiB,GAAG,IAAI,EACxB,QAAQ,GACT,GAAG,KAAK,CAAC;IAEV,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QACjC,MAAM;QACN,iBAAiB;QACjB,sBAAsB;QACtB,cAAc;KACf,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,KAAC,MAAM,cACL,KAAC,kBAAkB,IAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,YAC5C,MAAC,oBAAoB,IAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,aACjE,KAAC,wBAAwB,IAAC,WAAW,EAAE,WAAW,YAC/C,QAAQ,GACgB,EAE3B,MAAC,kBAAkB,eACjB,KAAC,MAAM,IACL,OAAO,EAAE,SAAS,EAClB,eAAe,EAAE;oCACf,KAAK,EAAE,2BAA2B;oCAClC,KAAK,EAAE,2BAA2B;iCACnC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAExB,QAAQ,GACF,EACT,KAAC,MAAM,IACL,OAAO,EAAE,QAAQ,EACjB,eAAe,EAAE;oCACf,KAAK,EAAE,yBAAyB;oCAChC,KAAK,EAAE,yBAAyB;iCACjC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAExB,UAAU,GACJ,IACU,IACA,GACJ,GACd,CACV,CAAC;AACJ,CAAC"}
@@ -10,7 +10,7 @@ export interface ModalProps {
10
10
  width?: number;
11
11
  height?: number;
12
12
  }
13
- export declare function Modal(props: ModalProps): JSX.Element;
13
+ export declare function Modal(props: ModalProps): JSX.Element | null;
14
14
  export declare namespace Modal {
15
15
  var Header: (props: {
16
16
  children: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKrD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA2CD,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,eAoCtC;yBApCe,KAAK"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOrD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA0CD,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,sBAwCtC;yBAxCe,KAAK"}
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import styled from '@emotion/styled';
3
+ import { Portal } from '../root-layout/Portal';
3
4
  import ModalCloseButton from './ModalCloseButton';
4
5
  import { useDialog } from './useDialog';
5
6
  const DialogRoot = styled.dialog `
6
- display: flex;
7
7
  position: fixed;
8
8
  background-color: transparent;
9
9
 
@@ -11,7 +11,7 @@ const DialogRoot = styled.dialog `
11
11
  background-color: rgba(113, 113, 122, 0.75);
12
12
  }
13
13
  `;
14
- const DialogOpened = styled.div `
14
+ const DialogContents = styled.div `
15
15
  position: relative;
16
16
  display: flex;
17
17
  flex-direction: column;
@@ -20,7 +20,7 @@ const DialogOpened = styled.div `
20
20
  border-width: 1px;
21
21
  border-color: transparent;
22
22
  border-radius: 0.5rem;
23
- box-shadow: 0 0 0 0, 0 8px 16px rgba(0, 0, 0, 0.3);
23
+ box-shadow: 0 0 0 0, 0 0px 16px rgba(0, 0, 0, 0.3);
24
24
  `;
25
25
  const ModalHeaderStyled = styled.div `
26
26
  display: flex;
@@ -46,11 +46,14 @@ export function Modal(props) {
46
46
  requestCloseOnBackdrop,
47
47
  onRequestClose,
48
48
  });
49
- return (_jsx(DialogRoot, { ref: ref, onClick: onClick, children: isOpen ? (_jsxs(DialogOpened, { style: {
50
- maxWidth,
51
- height: height || 'max-content',
52
- width: width || '100%',
53
- }, children: [children, hasCloseButton && _jsx(ModalCloseButton, { onClick: onRequestClose })] })) : null }));
49
+ if (!isOpen) {
50
+ return null;
51
+ }
52
+ return (_jsx(Portal, { children: _jsx(DialogRoot, { ref: ref, onClick: onClick, children: _jsxs(DialogContents, { style: {
53
+ maxWidth,
54
+ height: height || 'max-content',
55
+ width: width || '100%',
56
+ }, children: [children, hasCloseButton && _jsx(ModalCloseButton, { onClick: onRequestClose })] }) }) }));
54
57
  }
55
58
  Modal.Header = function ModalHeader(props) {
56
59
  return _jsx(ModalHeaderStyled, { children: props.children });
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../src/components/modal/Modal.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAGrC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAcxC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;;;CAQ/B,CAAC;AAEF,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;CAU9B,CAAC;AAEF,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAMnC,CAAC;AAEF,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIjC,CAAC;AAEF,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAA;;;CAGnC,CAAC;AAEF,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,MAAM,EACJ,MAAM,EACN,cAAc,EACd,cAAc,GAAG,IAAI,EACrB,sBAAsB,GAAG,IAAI,EAC7B,iBAAiB,GAAG,IAAI,EACxB,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,MAAM,GACP,GAAG,KAAK,CAAC;IAEV,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QACjC,MAAM;QACN,iBAAiB;QACjB,sBAAsB;QACtB,cAAc;KACf,CAAC,CAAC;IAEH,OAAO,CACL,KAAC,UAAU,IAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,YACnC,MAAM,CAAC,CAAC,CAAC,CACR,MAAC,YAAY,IACX,KAAK,EAAE;gBACL,QAAQ;gBACR,MAAM,EAAE,MAAM,IAAI,aAAa;gBAC/B,KAAK,EAAE,KAAK,IAAI,MAAM;aACvB,aAEA,QAAQ,EACR,cAAc,IAAI,KAAC,gBAAgB,IAAC,OAAO,EAAE,cAAc,GAAI,IACnD,CAChB,CAAC,CAAC,CAAC,IAAI,GACG,CACd,CAAC;AACJ,CAAC;AAED,KAAK,CAAC,MAAM,GAAG,SAAS,WAAW,CAAC,KAA8B;IAChE,OAAO,KAAC,iBAAiB,cAAE,KAAK,CAAC,QAAQ,GAAqB,CAAC;AACjE,CAAC,CAAC;AAEF,KAAK,CAAC,IAAI,GAAG,SAAS,SAAS,CAAC,KAA8B;IAC5D,OAAO,KAAC,eAAe,cAAE,KAAK,CAAC,QAAQ,GAAmB,CAAC;AAC7D,CAAC,CAAC;AAEF,KAAK,CAAC,MAAM,GAAG,SAAS,WAAW,CAAC,KAA8B;IAChE,OAAO,KAAC,iBAAiB,cAAE,KAAK,CAAC,QAAQ,GAAqB,CAAC;AACjE,CAAC,CAAC"}
1
+ {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../src/components/modal/Modal.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAcxC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;;CAO/B,CAAC;AAEF,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;CAUhC,CAAC;AAEF,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAMnC,CAAC;AAEF,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIjC,CAAC;AAEF,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAA;;;CAGnC,CAAC;AAEF,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,MAAM,EACJ,MAAM,EACN,cAAc,EACd,cAAc,GAAG,IAAI,EACrB,sBAAsB,GAAG,IAAI,EAC7B,iBAAiB,GAAG,IAAI,EACxB,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,MAAM,GACP,GAAG,KAAK,CAAC;IAEV,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;QACjC,MAAM;QACN,iBAAiB;QACjB,sBAAsB;QACtB,cAAc;KACf,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,KAAC,MAAM,cACL,KAAC,UAAU,IAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,YACpC,MAAC,cAAc,IACb,KAAK,EAAE;oBACL,QAAQ;oBACR,MAAM,EAAE,MAAM,IAAI,aAAa;oBAC/B,KAAK,EAAE,KAAK,IAAI,MAAM;iBACvB,aAEA,QAAQ,EACR,cAAc,IAAI,KAAC,gBAAgB,IAAC,OAAO,EAAE,cAAc,GAAI,IACjD,GACN,GACN,CACV,CAAC;AACJ,CAAC;AAED,KAAK,CAAC,MAAM,GAAG,SAAS,WAAW,CAAC,KAA8B;IAChE,OAAO,KAAC,iBAAiB,cAAE,KAAK,CAAC,QAAQ,GAAqB,CAAC;AACjE,CAAC,CAAC;AAEF,KAAK,CAAC,IAAI,GAAG,SAAS,SAAS,CAAC,KAA8B;IAC5D,OAAO,KAAC,eAAe,cAAE,KAAK,CAAC,QAAQ,GAAmB,CAAC;AAC7D,CAAC,CAAC;AAEF,KAAK,CAAC,MAAM,GAAG,SAAS,WAAW,CAAC,KAA8B;IAChE,OAAO,KAAC,iBAAiB,cAAE,KAAK,CAAC,QAAQ,GAAqB,CAAC;AACjE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-science",
3
- "version": "0.21.0",
3
+ "version": "0.21.1",
4
4
  "description": "React components to build analysis UI",
5
5
  "exports": {
6
6
  "./app": {
@@ -50,7 +50,7 @@
50
50
  "test-only": "vitest run --coverage "
51
51
  },
52
52
  "volta": {
53
- "node": "18.14.2"
53
+ "node": "18.15.0"
54
54
  },
55
55
  "overrides": {
56
56
  "react": "^18.2.0",
@@ -66,24 +66,24 @@
66
66
  "@headlessui/react": "^1.7.13",
67
67
  "@lukeed/uuid": "^2.0.0",
68
68
  "@popperjs/core": "^2.11.6",
69
- "@tanstack/react-query": "^4.24.10",
69
+ "@tanstack/react-query": "^4.28.0",
70
70
  "@tanstack/react-table": "^8.7.9",
71
71
  "biologic-converter": "^0.6.0",
72
72
  "cheminfo-types": "^1.4.0",
73
73
  "d3-scale-chromatic": "^3.0.0",
74
74
  "filelist-utils": "^1.8.0",
75
75
  "immer": "^9.0.19",
76
- "jcampconverter": "^9.0.7",
76
+ "jcampconverter": "^9.1.0",
77
77
  "lodash": "^4.17.21",
78
78
  "ml-gsd": "^12.1.2",
79
79
  "ml-peak-shape-generator": "^4.1.2",
80
80
  "ml-signal-processing": "^1.0.2",
81
81
  "ml-spectra-processing": "^12.0.0",
82
- "ms-spectrum": "^2.2.0",
82
+ "ms-spectrum": "^2.3.0",
83
83
  "netcdfjs": "^2.0.2",
84
84
  "react-d3-utils": "^1.0.0",
85
85
  "react-dropzone": "^14.2.3",
86
- "react-error-boundary": "^3.1.4",
86
+ "react-error-boundary": "^4.0.2",
87
87
  "react-icons": "^4.8.0",
88
88
  "react-inspector": "^6.0.1",
89
89
  "react-kbs": "^2.1.1",
@@ -96,11 +96,11 @@
96
96
  "wdf-parser": "^0.3.0"
97
97
  },
98
98
  "devDependencies": {
99
- "@babel/core": "^7.21.0",
100
- "@babel/eslint-parser": "^7.19.1",
101
- "@ladle/react": "^2.9.0",
102
- "@playwright/experimental-ct-react": "^1.31.2",
103
- "@playwright/test": "^1.31.2",
99
+ "@babel/core": "^7.21.3",
100
+ "@babel/eslint-parser": "^7.21.3",
101
+ "@ladle/react": "^2.10.2",
102
+ "@playwright/experimental-ct-react": "^1.32.0",
103
+ "@playwright/test": "^1.32.0",
104
104
  "@types/babel__core": "^7.20.0",
105
105
  "@types/d3-scale-chromatic": "^3.0.0",
106
106
  "@types/lodash": "^4.14.191",
@@ -108,19 +108,19 @@
108
108
  "@types/react-dom": "^18.0.11",
109
109
  "@types/react-inspector": "^4.0.2",
110
110
  "@vitejs/plugin-react": "^3.1.0",
111
- "@vitest/coverage-c8": "^0.29.2",
111
+ "@vitest/coverage-c8": "^0.29.7",
112
112
  "cheminfo-font": "^1.9.0",
113
113
  "cross-env": "^7.0.3",
114
- "eslint": "^8.35.0",
115
- "eslint-config-zakodium": "^7.0.0",
116
- "prettier": "^2.8.4",
114
+ "eslint": "^8.36.0",
115
+ "eslint-config-zakodium": "^7.1.0",
116
+ "prettier": "^2.8.6",
117
117
  "react": "^18.2.0",
118
118
  "react-dom": "^18.2.0",
119
119
  "react-ocl": "^5.0.0",
120
- "rimraf": "^4.3.0",
121
- "typescript": "^4.9.5",
122
- "vite": "^4.1.4",
123
- "vitest": "^0.29.2"
120
+ "rimraf": "^4.4.1",
121
+ "typescript": "^5.0.2",
122
+ "vite": "^4.2.1",
123
+ "vitest": "^0.29.7"
124
124
  },
125
125
  "repository": {
126
126
  "type": "git",
@@ -42,10 +42,7 @@ function computeMinMax(measurement: MeasurementBase) {
42
42
  // TODO: should we accept empty data?
43
43
  return;
44
44
  }
45
- if (
46
- typeof variable.min === 'undefined' ||
47
- typeof variable.max === 'undefined'
48
- ) {
45
+ if (variable.min === undefined || variable.max === undefined) {
49
46
  const { min, max } = xMinMaxValues(variable.data);
50
47
  variable.min = min;
51
48
  variable.max = max;
@@ -29,7 +29,9 @@ interface ContextType extends FullscreenState {
29
29
  }
30
30
  const fullscreenContextInit = {
31
31
  isFullScreen: false,
32
- toggle: () => {},
32
+ toggle: () => {
33
+ // empty
34
+ },
33
35
  };
34
36
  const FullscreenContext = createContext<ContextType>(fullscreenContextInit);
35
37
 
@@ -2,6 +2,7 @@ import styled from '@emotion/styled';
2
2
  import type { ReactNode } from 'react';
3
3
 
4
4
  import { Button } from '..';
5
+ import { Portal } from '../root-layout/Portal';
5
6
 
6
7
  import { useDialog } from './useDialog';
7
8
 
@@ -20,7 +21,6 @@ interface ConfirmModalProps {
20
21
  }
21
22
 
22
23
  const ConfirmModalDialog = styled.dialog`
23
- display: flex;
24
24
  position: fixed;
25
25
  background-color: transparent;
26
26
 
@@ -29,7 +29,7 @@ const ConfirmModalDialog = styled.dialog`
29
29
  }
30
30
  `;
31
31
 
32
- const ConfirmModalOpened = styled.div<{
32
+ const ConfirmModalContents = styled.div<{
33
33
  headerColor: string;
34
34
  }>`
35
35
  position: relative;
@@ -41,7 +41,7 @@ const ConfirmModalOpened = styled.div<{
41
41
  border-width: 1px;
42
42
  border-color: transparent;
43
43
  border-radius: 0.5rem;
44
- box-shadow: 0 0 0 0, 0 8px 16px rgba(0, 0, 0, 0.3);
44
+ box-shadow: 0 0 0 0, 0 0px 16px rgba(0, 0, 0, 0.3);
45
45
  border-top: 10px solid ${({ headerColor }) => headerColor};
46
46
  `;
47
47
 
@@ -81,10 +81,14 @@ export function ConfirmModal(props: ConfirmModalProps) {
81
81
  onRequestClose,
82
82
  });
83
83
 
84
+ if (!isOpen) {
85
+ return null;
86
+ }
87
+
84
88
  return (
85
- <ConfirmModalDialog ref={ref} onClick={onClick}>
86
- {isOpen ? (
87
- <ConfirmModalOpened headerColor={headerColor} style={{ maxWidth }}>
89
+ <Portal>
90
+ <ConfirmModalDialog ref={ref} onClick={onClick}>
91
+ <ConfirmModalContents headerColor={headerColor} style={{ maxWidth }}>
88
92
  <ConfirmModalChildrenRoot headerColor={headerColor}>
89
93
  {children}
90
94
  </ConfirmModalChildrenRoot>
@@ -111,8 +115,8 @@ export function ConfirmModal(props: ConfirmModalProps) {
111
115
  {cancelText}
112
116
  </Button>
113
117
  </ConfirmModalFooter>
114
- </ConfirmModalOpened>
115
- ) : null}
116
- </ConfirmModalDialog>
118
+ </ConfirmModalContents>
119
+ </ConfirmModalDialog>
120
+ </Portal>
117
121
  );
118
122
  }
@@ -1,6 +1,8 @@
1
1
  import styled from '@emotion/styled';
2
2
  import type { ReactElement, ReactNode } from 'react';
3
3
 
4
+ import { Portal } from '../root-layout/Portal';
5
+
4
6
  import ModalCloseButton from './ModalCloseButton';
5
7
  import { useDialog } from './useDialog';
6
8
 
@@ -17,7 +19,6 @@ export interface ModalProps {
17
19
  }
18
20
 
19
21
  const DialogRoot = styled.dialog`
20
- display: flex;
21
22
  position: fixed;
22
23
  background-color: transparent;
23
24
 
@@ -26,7 +27,7 @@ const DialogRoot = styled.dialog`
26
27
  }
27
28
  `;
28
29
 
29
- const DialogOpened = styled.div`
30
+ const DialogContents = styled.div`
30
31
  position: relative;
31
32
  display: flex;
32
33
  flex-direction: column;
@@ -35,7 +36,7 @@ const DialogOpened = styled.div`
35
36
  border-width: 1px;
36
37
  border-color: transparent;
37
38
  border-radius: 0.5rem;
38
- box-shadow: 0 0 0 0, 0 8px 16px rgba(0, 0, 0, 0.3);
39
+ box-shadow: 0 0 0 0, 0 0px 16px rgba(0, 0, 0, 0.3);
39
40
  `;
40
41
 
41
42
  const ModalHeaderStyled = styled.div`
@@ -77,10 +78,14 @@ export function Modal(props: ModalProps) {
77
78
  onRequestClose,
78
79
  });
79
80
 
81
+ if (!isOpen) {
82
+ return null;
83
+ }
84
+
80
85
  return (
81
- <DialogRoot ref={ref} onClick={onClick}>
82
- {isOpen ? (
83
- <DialogOpened
86
+ <Portal>
87
+ <DialogRoot ref={ref} onClick={onClick}>
88
+ <DialogContents
84
89
  style={{
85
90
  maxWidth,
86
91
  height: height || 'max-content',
@@ -89,9 +94,9 @@ export function Modal(props: ModalProps) {
89
94
  >
90
95
  {children}
91
96
  {hasCloseButton && <ModalCloseButton onClick={onRequestClose} />}
92
- </DialogOpened>
93
- ) : null}
94
- </DialogRoot>
97
+ </DialogContents>
98
+ </DialogRoot>
99
+ </Portal>
95
100
  );
96
101
  }
97
102