@manuscripts/style-guide 3.5.26 → 3.5.28

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.
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.zestOrange = exports.veryLightYellow = exports.contrastOrange = exports.butteryYellow = exports.wheatYellow = exports.contrastGreen = exports.veryLightGreen = exports.peppermintGreen = exports.springGreen = exports.killarneyGreen = exports.contrastRed = exports.darkRed = exports.chablisRed = exports.mandysRed = exports.punchRed = exports.veryLightBlue = exports.graphBlue1 = exports.focusBlue = exports.powderBlue = exports.aliceBlue = exports.jellyBeanBlue = exports.white = exports.alabasterGrey = exports.seashellGrey = exports.mercuryGrey = exports.greyLight = exports.greyMutedText = exports.greyMuted = exports.greyDark = exports.black = exports.manuscriptsSecondary = exports.manuscriptsXLight2 = exports.manuscriptsXLight = exports.manuscriptsLight = exports.manuscriptsIcons = exports.manuscriptsBlue = exports.manuscriptsBlueDark = void 0;
18
+ exports.zestOrange = exports.veryLightYellow = exports.contrastOrange = exports.butteryYellow = exports.wheatYellow = exports.contrastGreen = exports.veryLightGreen = exports.peppermintGreen = exports.springGreen = exports.killarneyGreen = exports.contrastRed = exports.darkRed = exports.chablisRed = exports.mandysRed = exports.punchRed = exports.veryLightBlue = exports.graphBlue1 = exports.focusBlue = exports.powderBlue = exports.aliceBlue = exports.jellyBeanBlue = exports.disabled = exports.white = exports.alabasterGrey = exports.seashellGrey = exports.mercuryGrey = exports.greyLight = exports.greyMutedText = exports.greyMuted = exports.greyDark = exports.black = exports.manuscriptsSecondary = exports.manuscriptsXLight2 = exports.manuscriptsXLight = exports.manuscriptsLight = exports.manuscriptsIcons = exports.manuscriptsBlue = exports.manuscriptsBlueDark = void 0;
19
19
  exports.manuscriptsBlueDark = '#0b6bb8';
20
20
  exports.manuscriptsBlue = '#0d79d0';
21
21
  exports.manuscriptsIcons = '#1a9bc7';
@@ -32,6 +32,7 @@ exports.mercuryGrey = '#e2e2e2';
32
32
  exports.seashellGrey = '#f2f2f2';
33
33
  exports.alabasterGrey = '#fafafa';
34
34
  exports.white = '#fff';
35
+ exports.disabled = '#f5f5f5';
35
36
  exports.jellyBeanBlue = '#2781a1';
36
37
  exports.aliceBlue = '#f2fbfc';
37
38
  exports.powderBlue = '#ddf3fa';
@@ -10,7 +10,7 @@ const react_1 = require("react");
10
10
  const react_datepicker_1 = __importDefault(require("react-datepicker"));
11
11
  const styled_components_1 = __importDefault(require("styled-components"));
12
12
  const icons_1 = require("./icons");
13
- const DatePicker = ({ id, originalDate, date, handleDateChange, placeholder, showTimeSelect, required, }) => {
13
+ const DatePicker = ({ id, originalDate, date, handleDateChange, placeholder, showTimeSelect, required, disabled, }) => {
14
14
  const [selectedDate, setSelectedDate] = (0, react_1.useState)(date || null);
15
15
  (0, react_1.useEffect)(() => {
16
16
  setSelectedDate(date ?? null);
@@ -22,7 +22,7 @@ const DatePicker = ({ id, originalDate, date, handleDateChange, placeholder, sho
22
22
  const format = showTimeSelect
23
23
  ? 'd MMM yyyy, EEEE h:mm aa'
24
24
  : 'd MMM yyyy, EEEE';
25
- return ((0, jsx_runtime_1.jsxs)(Calendar, { children: [(0, jsx_runtime_1.jsx)(react_datepicker_1.default, { id: id, selected: selectedDate, onChange: handleChange, placeholderText: placeholder, minDate: originalDate, showTimeSelect: showTimeSelect, dateFormat: format, className: "calendar-input", popperPlacement: "bottom", required: required }), (0, jsx_runtime_1.jsx)(IconWrapper, { children: (0, jsx_runtime_1.jsx)(icons_1.CalendarIcon, { width: 16, height: 16 }) })] }));
25
+ return ((0, jsx_runtime_1.jsxs)(Calendar, { children: [(0, jsx_runtime_1.jsx)(react_datepicker_1.default, { id: id, selected: selectedDate, onChange: handleChange, placeholderText: placeholder, minDate: originalDate, showTimeSelect: showTimeSelect, dateFormat: format, className: "calendar-input", popperPlacement: "bottom", required: required, disabled: disabled }), (0, jsx_runtime_1.jsx)(IconWrapper, { children: (0, jsx_runtime_1.jsx)(icons_1.CalendarIcon, { width: 16, height: 16 }) })] }));
26
26
  };
27
27
  exports.DatePicker = DatePicker;
28
28
  const Calendar = styled_components_1.default.div `
@@ -177,6 +177,18 @@ const Calendar = styled_components_1.default.div `
177
177
  border-color: ${(props) => props.theme.colors.text.greyMuted};
178
178
  background-color: #f2fbfc;
179
179
  }
180
+
181
+ &:disabled {
182
+ cursor: not-allowed;
183
+ background-color: ${(props) => props.theme.colors.background.disabled};
184
+ border-color: ${(props) => props.theme.colors.border.field.default};
185
+ color: ${(props) => props.theme.colors.text.secondary};
186
+
187
+ &:hover {
188
+ border-color: ${(props) => props.theme.colors.border.field.default};
189
+ background-color: ${(props) => props.theme.colors.background.disabled};
190
+ }
191
+ }
180
192
  }
181
193
  `;
182
194
  const IconWrapper = styled_components_1.default.div `
@@ -46,7 +46,8 @@ const ContentOuter = styled_components_1.default.div `
46
46
  display: grid;
47
47
  grid-template-rows: ${(props) => (props.open ? '1fr' : '0fr')};
48
48
  overflow: ${(props) => (props.open ? 'visible' : 'hidden')};
49
- transition: grid-template-rows 0.25s ease,
49
+ transition:
50
+ grid-template-rows 0.25s ease,
50
51
  overflow 0s ${(props) => (props.open ? '0.25s' : '0s')} allow-discrete;
51
52
  `;
52
53
  const ContentInner = styled_components_1.default.div `
@@ -8,6 +8,11 @@ const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const react_select_1 = __importDefault(require("react-select"));
9
9
  const styled_components_1 = require("styled-components");
10
10
  const selectStyles = (theme, error, variant, listMaxHeight) => ({
11
+ container: (base, state) => ({
12
+ ...base,
13
+ cursor: state.isDisabled ? 'not-allowed' : 'default',
14
+ pointerEvents: state.isDisabled ? 'auto' : base.pointerEvents,
15
+ }),
11
16
  control: (base, state) => ({
12
17
  ...base,
13
18
  minHeight: variant === 'large' ? 40 : 32,
@@ -37,6 +42,7 @@ const selectStyles = (theme, error, variant, listMaxHeight) => ({
37
42
  : theme.colors.background.primary,
38
43
  transition: 'border-color 120ms ease, box-shadow 120ms ease',
39
44
  cursor: state.isDisabled ? 'not-allowed' : 'pointer',
45
+ pointerEvents: state.isDisabled ? 'none' : base.pointerEvents,
40
46
  }),
41
47
  valueContainer: (base) => ({
42
48
  ...base,
@@ -33,14 +33,14 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.ModalTitle = exports.ModalCardBody = exports.ScrollableModalContent = exports.ModelContent = exports.ModalSidebarTitle = exports.ModalSidebarHeader = exports.ModalSidebar = exports.ModalBody = exports.CloseButton = exports.ModalHeader = exports.ModalContainer = exports.StyledModal = void 0;
36
+ exports.ModalTitle = exports.ModalCardBody = exports.ScrollableModalContent = exports.ModelContent = exports.ModalSidebarTitle = exports.ModalSidebarHeader = exports.ModalSidebar = exports.ModalBody = exports.CloseButton = exports.ModalHeader = exports.ModalContainer = exports.StyledModal = exports.StyledModalContent = void 0;
37
37
  const jsx_runtime_1 = require("react/jsx-runtime");
38
38
  const react_1 = require("react");
39
39
  const react_dom_1 = require("react-dom");
40
40
  const styled_components_1 = __importStar(require("styled-components"));
41
41
  const Button_1 = require("./Button");
42
42
  const Sidebar_1 = require("./Sidebar");
43
- const StyledModal = ({ isOpen, onRequestClose, shouldCloseOnOverlayClick = true, hideOverlay = false, pointerEventsOnBackdrop, children, className, style, }) => {
43
+ const StyledModalContent = ({ isOpen, onRequestClose, shouldCloseOnOverlayClick = true, hideOverlay = false, pointerEventsOnBackdrop, children, className, style, }) => {
44
44
  const dialogRef = (0, react_1.useRef)(null);
45
45
  const closedByCancelRef = (0, react_1.useRef)(false);
46
46
  (0, react_1.useEffect)(() => {
@@ -49,7 +49,12 @@ const StyledModal = ({ isOpen, onRequestClose, shouldCloseOnOverlayClick = true,
49
49
  return;
50
50
  }
51
51
  if (isOpen && !dialog.open) {
52
- dialog.showModal();
52
+ if (hideOverlay) {
53
+ dialog.show();
54
+ }
55
+ else {
56
+ dialog.showModal();
57
+ }
53
58
  }
54
59
  else if (!isOpen && dialog.open) {
55
60
  dialog.close();
@@ -87,7 +92,14 @@ const StyledModal = ({ isOpen, onRequestClose, shouldCloseOnOverlayClick = true,
87
92
  onRequestClose?.();
88
93
  }
89
94
  };
90
- return (0, react_dom_1.createPortal)((0, jsx_runtime_1.jsx)(Dialog, { ref: dialogRef, onClick: handleBackdropClick, "$hideOverlay": hideOverlay, "$pointerEventsOnBackdrop": pointerEventsOnBackdrop, className: className ? `Modal ${className}` : 'Modal', style: style?.content, children: children }), document.body);
95
+ return ((0, jsx_runtime_1.jsx)(Dialog, { ref: dialogRef, onClick: e => {
96
+ e.stopPropagation();
97
+ handleBackdropClick(e);
98
+ }, "$hideOverlay": hideOverlay, "$pointerEventsOnBackdrop": pointerEventsOnBackdrop, className: className ? `Modal ${className}` : 'Modal', style: style?.content, children: children }));
99
+ };
100
+ exports.StyledModalContent = StyledModalContent;
101
+ const StyledModal = (props) => {
102
+ return (0, react_dom_1.createPortal)((0, jsx_runtime_1.jsx)(exports.StyledModalContent, { ...props }), document.body);
91
103
  };
92
104
  exports.StyledModal = StyledModal;
93
105
  const Dialog = styled_components_1.default.dialog `
@@ -97,6 +109,7 @@ const Dialog = styled_components_1.default.dialog `
97
109
  outline: none;
98
110
  padding: 0;
99
111
  overflow: visible;
112
+ z-index: 100;
100
113
  opacity: 1;
101
114
  transition:
102
115
  opacity 0.5s ease-in-out,
@@ -67,6 +67,7 @@ exports.defaultTheme = {
67
67
  warning: colors.veryLightYellow,
68
68
  selected: colors.aliceBlue,
69
69
  muted: colors.greyMuted,
70
+ disabled: colors.disabled,
70
71
  tracked: {
71
72
  active: colors.veryLightBlue,
72
73
  default: colors.white,
package/dist/es/colors.js CHANGED
@@ -29,6 +29,7 @@ export const mercuryGrey = '#e2e2e2';
29
29
  export const seashellGrey = '#f2f2f2';
30
30
  export const alabasterGrey = '#fafafa';
31
31
  export const white = '#fff';
32
+ export const disabled = '#f5f5f5';
32
33
  export const jellyBeanBlue = '#2781a1';
33
34
  export const aliceBlue = '#f2fbfc';
34
35
  export const powderBlue = '#ddf3fa';
@@ -4,7 +4,7 @@ import { useEffect, useState } from 'react';
4
4
  import ReactDatePicker from 'react-datepicker';
5
5
  import styled from 'styled-components';
6
6
  import { CalendarIcon } from './icons';
7
- export const DatePicker = ({ id, originalDate, date, handleDateChange, placeholder, showTimeSelect, required, }) => {
7
+ export const DatePicker = ({ id, originalDate, date, handleDateChange, placeholder, showTimeSelect, required, disabled, }) => {
8
8
  const [selectedDate, setSelectedDate] = useState(date || null);
9
9
  useEffect(() => {
10
10
  setSelectedDate(date ?? null);
@@ -16,7 +16,7 @@ export const DatePicker = ({ id, originalDate, date, handleDateChange, placehold
16
16
  const format = showTimeSelect
17
17
  ? 'd MMM yyyy, EEEE h:mm aa'
18
18
  : 'd MMM yyyy, EEEE';
19
- return (_jsxs(Calendar, { children: [_jsx(ReactDatePicker, { id: id, selected: selectedDate, onChange: handleChange, placeholderText: placeholder, minDate: originalDate, showTimeSelect: showTimeSelect, dateFormat: format, className: "calendar-input", popperPlacement: "bottom", required: required }), _jsx(IconWrapper, { children: _jsx(CalendarIcon, { width: 16, height: 16 }) })] }));
19
+ return (_jsxs(Calendar, { children: [_jsx(ReactDatePicker, { id: id, selected: selectedDate, onChange: handleChange, placeholderText: placeholder, minDate: originalDate, showTimeSelect: showTimeSelect, dateFormat: format, className: "calendar-input", popperPlacement: "bottom", required: required, disabled: disabled }), _jsx(IconWrapper, { children: _jsx(CalendarIcon, { width: 16, height: 16 }) })] }));
20
20
  };
21
21
  const Calendar = styled.div `
22
22
  width: 100%;
@@ -170,6 +170,18 @@ const Calendar = styled.div `
170
170
  border-color: ${(props) => props.theme.colors.text.greyMuted};
171
171
  background-color: #f2fbfc;
172
172
  }
173
+
174
+ &:disabled {
175
+ cursor: not-allowed;
176
+ background-color: ${(props) => props.theme.colors.background.disabled};
177
+ border-color: ${(props) => props.theme.colors.border.field.default};
178
+ color: ${(props) => props.theme.colors.text.secondary};
179
+
180
+ &:hover {
181
+ border-color: ${(props) => props.theme.colors.border.field.default};
182
+ background-color: ${(props) => props.theme.colors.background.disabled};
183
+ }
184
+ }
173
185
  }
174
186
  `;
175
187
  const IconWrapper = styled.div `
@@ -39,7 +39,8 @@ const ContentOuter = styled.div `
39
39
  display: grid;
40
40
  grid-template-rows: ${(props) => (props.open ? '1fr' : '0fr')};
41
41
  overflow: ${(props) => (props.open ? 'visible' : 'hidden')};
42
- transition: grid-template-rows 0.25s ease,
42
+ transition:
43
+ grid-template-rows 0.25s ease,
43
44
  overflow 0s ${(props) => (props.open ? '0.25s' : '0s')} allow-discrete;
44
45
  `;
45
46
  const ContentInner = styled.div `
@@ -2,6 +2,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import Select from 'react-select';
3
3
  import { useTheme } from 'styled-components';
4
4
  const selectStyles = (theme, error, variant, listMaxHeight) => ({
5
+ container: (base, state) => ({
6
+ ...base,
7
+ cursor: state.isDisabled ? 'not-allowed' : 'default',
8
+ pointerEvents: state.isDisabled ? 'auto' : base.pointerEvents,
9
+ }),
5
10
  control: (base, state) => ({
6
11
  ...base,
7
12
  minHeight: variant === 'large' ? 40 : 32,
@@ -31,6 +36,7 @@ const selectStyles = (theme, error, variant, listMaxHeight) => ({
31
36
  : theme.colors.background.primary,
32
37
  transition: 'border-color 120ms ease, box-shadow 120ms ease',
33
38
  cursor: state.isDisabled ? 'not-allowed' : 'pointer',
39
+ pointerEvents: state.isDisabled ? 'none' : base.pointerEvents,
34
40
  }),
35
41
  valueContainer: (base) => ({
36
42
  ...base,
@@ -4,7 +4,7 @@ import { createPortal } from 'react-dom';
4
4
  import styled, { css } from 'styled-components';
5
5
  import { RoundIconButton } from './Button';
6
6
  import { SidebarStyles } from './Sidebar';
7
- export const StyledModal = ({ isOpen, onRequestClose, shouldCloseOnOverlayClick = true, hideOverlay = false, pointerEventsOnBackdrop, children, className, style, }) => {
7
+ export const StyledModalContent = ({ isOpen, onRequestClose, shouldCloseOnOverlayClick = true, hideOverlay = false, pointerEventsOnBackdrop, children, className, style, }) => {
8
8
  const dialogRef = useRef(null);
9
9
  const closedByCancelRef = useRef(false);
10
10
  useEffect(() => {
@@ -13,7 +13,12 @@ export const StyledModal = ({ isOpen, onRequestClose, shouldCloseOnOverlayClick
13
13
  return;
14
14
  }
15
15
  if (isOpen && !dialog.open) {
16
- dialog.showModal();
16
+ if (hideOverlay) {
17
+ dialog.show();
18
+ }
19
+ else {
20
+ dialog.showModal();
21
+ }
17
22
  }
18
23
  else if (!isOpen && dialog.open) {
19
24
  dialog.close();
@@ -51,7 +56,13 @@ export const StyledModal = ({ isOpen, onRequestClose, shouldCloseOnOverlayClick
51
56
  onRequestClose?.();
52
57
  }
53
58
  };
54
- return createPortal(_jsx(Dialog, { ref: dialogRef, onClick: handleBackdropClick, "$hideOverlay": hideOverlay, "$pointerEventsOnBackdrop": pointerEventsOnBackdrop, className: className ? `Modal ${className}` : 'Modal', style: style?.content, children: children }), document.body);
59
+ return (_jsx(Dialog, { ref: dialogRef, onClick: e => {
60
+ e.stopPropagation();
61
+ handleBackdropClick(e);
62
+ }, "$hideOverlay": hideOverlay, "$pointerEventsOnBackdrop": pointerEventsOnBackdrop, className: className ? `Modal ${className}` : 'Modal', style: style?.content, children: children }));
63
+ };
64
+ export const StyledModal = (props) => {
65
+ return createPortal(_jsx(StyledModalContent, { ...props }), document.body);
55
66
  };
56
67
  const Dialog = styled.dialog `
57
68
  background: transparent;
@@ -60,6 +71,7 @@ const Dialog = styled.dialog `
60
71
  outline: none;
61
72
  padding: 0;
62
73
  overflow: visible;
74
+ z-index: 100;
63
75
  opacity: 1;
64
76
  transition:
65
77
  opacity 0.5s ease-in-out,
@@ -31,6 +31,7 @@ export const defaultTheme = {
31
31
  warning: colors.veryLightYellow,
32
32
  selected: colors.aliceBlue,
33
33
  muted: colors.greyMuted,
34
+ disabled: colors.disabled,
34
35
  tracked: {
35
36
  active: colors.veryLightBlue,
36
37
  default: colors.white,
@@ -29,6 +29,7 @@ export declare const mercuryGrey = "#e2e2e2";
29
29
  export declare const seashellGrey = "#f2f2f2";
30
30
  export declare const alabasterGrey = "#fafafa";
31
31
  export declare const white = "#fff";
32
+ export declare const disabled = "#f5f5f5";
32
33
  export declare const jellyBeanBlue = "#2781a1";
33
34
  export declare const aliceBlue = "#f2fbfc";
34
35
  export declare const powderBlue = "#ddf3fa";
@@ -23,5 +23,6 @@ export interface DatePickerProps {
23
23
  placeholder?: string;
24
24
  showTimeSelect?: boolean;
25
25
  required?: boolean;
26
+ disabled?: boolean;
26
27
  }
27
28
  export declare const DatePicker: React.FC<DatePickerProps>;
@@ -26,6 +26,7 @@ interface StyledModalProps {
26
26
  content?: React.CSSProperties;
27
27
  };
28
28
  }
29
+ export declare const StyledModalContent: React.FC<StyledModalProps>;
29
30
  export declare const StyledModal: React.FC<StyledModalProps>;
30
31
  export declare const ModalContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
31
32
  export declare const ModalHeader: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
@@ -85,6 +85,7 @@ interface Background {
85
85
  selected: string;
86
86
  tracked: States;
87
87
  muted: string;
88
+ disabled: string;
88
89
  }
89
90
  interface Border {
90
91
  field: States;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@manuscripts/style-guide",
3
3
  "description": "Shared components for Manuscripts applications",
4
- "version": "3.5.26",
4
+ "version": "3.5.28",
5
5
  "repository": "github:Atypon-OpenSource/manuscripts-style-guide",
6
6
  "license": "Apache-2.0",
7
7
  "main": "dist/cjs",