@manuscripts/article-editor 4.2.4 → 4.2.6

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.
@@ -33,22 +33,25 @@ const styled_components_1 = __importDefault(require("styled-components"));
33
33
  /**
34
34
  * This component represents the drop-down list action for each file item.
35
35
  */
36
- const FileActions = ({ sectionType, onDownload, onReplace, onDetach, onUseAsMain, move, className, file, accept, }) => {
36
+ const FileActions = ({ sectionType, onDownload, onReplace, onDetach, onDelete, onUseAsMain, move, className, file, accept, }) => {
37
37
  const can = (0, style_guide_1.usePermissions)();
38
38
  const { isOpen, toggleOpen, wrapperRef } = (0, style_guide_1.useDropdown)();
39
39
  const [isMoveDialogOpen, setMoveDialogOpen] = (0, react_1.useState)(false);
40
40
  const [isUseAsMainDialogOpen, setUseAsMainDialogOpen] = (0, react_1.useState)(false);
41
+ const fileInputRef = (0, react_1.useRef)(null);
41
42
  const showDownload = can?.downloadFiles && onDownload;
42
43
  const showReplace = can?.replaceFile && onReplace;
43
44
  const showDetach = can?.detachFile && onDetach;
45
+ const showDelete = can?.detachFile && onDelete;
44
46
  const showMove = can?.moveFile && move;
45
47
  const showUseAsMain = can?.moveFile && onUseAsMain && isValidMainDocumentFormat(file);
46
48
  const show = showDownload || showReplace || showDetach || showMove || showUseAsMain;
47
- const fileInputRef = (0, react_1.useRef)(null);
48
49
  const handleChange = async (event) => {
49
- if (onReplace && event && event.target && event.target.files) {
50
- const file = event.target.files[0];
51
- await onReplace(file);
50
+ if (onReplace && event?.target?.files?.[0]) {
51
+ await onReplace(event.target.files[0]);
52
+ if (fileInputRef.current) {
53
+ fileInputRef.current.value = '';
54
+ }
52
55
  }
53
56
  };
54
57
  const openFileDialog = () => {
@@ -56,23 +59,40 @@ const FileActions = ({ sectionType, onDownload, onReplace, onDetach, onUseAsMain
56
59
  fileInputRef.current.click();
57
60
  }
58
61
  };
62
+ // Fix: Close dropdown when clicking outside or pressing escape
63
+ (0, react_1.useEffect)(() => {
64
+ const handleClickOutside = (event) => {
65
+ if (wrapperRef.current &&
66
+ !wrapperRef.current.contains(event.target)) {
67
+ toggleOpen();
68
+ }
69
+ };
70
+ if (isOpen) {
71
+ document.addEventListener('mousedown', handleClickOutside);
72
+ return () => document.removeEventListener('mousedown', handleClickOutside);
73
+ }
74
+ }, [isOpen, wrapperRef, toggleOpen]);
59
75
  if (!show) {
60
76
  return null;
61
77
  }
62
78
  return (react_1.default.createElement(style_guide_1.DropdownContainer, { ref: wrapperRef },
63
- react_1.default.createElement(exports.ActionsIcon, { onClick: toggleOpen, type: "button", className: "show-on-hover", "data-cy": "file-actions", "aria-label": "Actions", "aria-pressed": isOpen },
79
+ react_1.default.createElement(exports.ActionsIcon, { onClick: (e) => {
80
+ e.stopPropagation();
81
+ toggleOpen();
82
+ }, type: "button", className: "show-on-hover", "data-cy": "file-actions", "aria-label": "Actions", "aria-pressed": isOpen },
64
83
  react_1.default.createElement(style_guide_1.DotsIcon, null)),
65
- isOpen && (react_1.default.createElement(exports.FileActionDropdownList, { "data-cy": "file-actions-dropdown", direction: "right", className: className, width: 192, top: 5, onClick: toggleOpen },
84
+ isOpen && (react_1.default.createElement(exports.FileActionDropdownList, { "data-cy": "file-actions-dropdown", direction: "right", className: className, width: 192, top: 5, onClick: (e) => e.stopPropagation() },
66
85
  showDownload && (react_1.default.createElement(exports.FileAction, { onClick: onDownload }, "Download")),
67
86
  showReplace && (react_1.default.createElement(react_1.default.Fragment, null,
68
87
  react_1.default.createElement(exports.FileAction, { onClick: openFileDialog }, "Replace"),
69
88
  react_1.default.createElement("input", { ref: fileInputRef, type: "file", style: { display: 'none' }, onChange: handleChange, accept: accept }))),
70
89
  showDetach && react_1.default.createElement(exports.FileAction, { onClick: onDetach }, "Detach"),
90
+ showDelete && react_1.default.createElement(exports.FileAction, { onClick: onDelete }, "Delete"),
71
91
  showMove && (react_1.default.createElement(exports.FileAction, { onClick: () => setMoveDialogOpen(true) },
72
92
  "Move to ",
73
93
  move.sectionType)),
74
94
  showUseAsMain && (react_1.default.createElement(exports.FileAction, { onClick: () => setUseAsMainDialogOpen(true) }, "Use as main document")))),
75
- showMove && (react_1.default.createElement(MoveFileConfirmationDialog, { "data-cy": "file-move-confirm-dialog", isOpen: isMoveDialogOpen, close: () => setMoveDialogOpen(false), source: sectionType, target: move.sectionType, handleMove: move.handler })),
95
+ showMove && (react_1.default.createElement(MoveFileConfirmationDialog, { isOpen: isMoveDialogOpen, close: () => setMoveDialogOpen(false), source: sectionType, target: move.sectionType, handleMove: move.handler })),
76
96
  showUseAsMain && (react_1.default.createElement(UseAsMainConfirmationDialog, { "data-cy": "file-use-as-main-confirm-dialog", isOpen: isUseAsMainDialogOpen, close: () => setUseAsMainDialogOpen(false), handleUseAsMain: onUseAsMain }))));
77
97
  };
78
98
  exports.FileActions = FileActions;
@@ -1 +1 @@
1
- {"version":3,"file":"FileActions.js","sourceRoot":"","sources":["../../../../src/components/FileManager/FileActions.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileActions.js","sourceRoot":"","sources":["../../../../src/components/FileManager/FileActions.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ /*!
3
+ * The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
4
+ *
5
+ * Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
6
+ *
7
+ * The Original Code is manuscripts-frontend.
8
+ *
9
+ * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
10
+ *
11
+ * All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
12
+ */
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ToggleIcon = exports.FileGroupHeader = exports.FileLabel = exports.FileGroup = exports.FileGroupItemContainer = exports.FileGroupContainer = void 0;
18
+ const styled_components_1 = __importDefault(require("styled-components"));
19
+ exports.FileGroupContainer = styled_components_1.default.div `
20
+ margin: 20px 0px 20px 15px;
21
+ `;
22
+ exports.FileGroupItemContainer = styled_components_1.default.div `
23
+ display: flex;
24
+ align-items: center;
25
+ cursor: pointer;
26
+ padding: 12px 18px;
27
+
28
+ .react-tooltip {
29
+ max-width: 100% !important;
30
+ }
31
+
32
+ svg {
33
+ width: 16px;
34
+
35
+ path {
36
+ fill: #6e6e6e;
37
+ }
38
+ }
39
+
40
+ &.dragging {
41
+ opacity: 0.2;
42
+ }
43
+
44
+ .show-on-hover {
45
+ visibility: hidden;
46
+ }
47
+
48
+ &:hover .show-on-hover {
49
+ visibility: visible;
50
+ }
51
+
52
+ &:hover,
53
+ &:focus {
54
+ background: #f2fbfc;
55
+ }
56
+ `;
57
+ exports.FileGroup = styled_components_1.default.div `
58
+ display: block;
59
+ `;
60
+ exports.FileLabel = styled_components_1.default.div `
61
+ color: ${(props) => props.theme.colors.text.primary};
62
+ font-weight: bold;
63
+ font-size: 16px;
64
+ line-height: 20px;
65
+ white-space: nowrap;
66
+ align-content: center;
67
+ `;
68
+ exports.FileGroupHeader = styled_components_1.default.div `
69
+ display: flex;
70
+ align-items: center;
71
+ cursor: pointer;
72
+ padding-right: 20px;
73
+ margin-bottom: 20px;
74
+
75
+ .file-icon {
76
+ margin-right: ${(props) => props.theme.grid.unit * 2}px; /* Adjust as needed */
77
+ }
78
+
79
+ ${exports.FileLabel} {
80
+ flex: 1;
81
+ }
82
+ `;
83
+ exports.ToggleIcon = styled_components_1.default.div `
84
+ width: 20px;
85
+ height: 20px;
86
+ border-radius: 50%;
87
+ border: 1px solid #e2e2e2;
88
+ text-align: center;
89
+ cursor: pointer;
90
+
91
+ svg {
92
+ width: 19px;
93
+ height: 19px;
94
+ transition: transform 0.2s ease; // Smooth transition for rotation
95
+ }
96
+
97
+ // Style for TriangleCollapsedIcon (when collapsed)
98
+ ${(props) => !props.isOpen &&
99
+ `
100
+ svg {
101
+ transform: rotate(270deg); // Point downward when collapsed
102
+ }
103
+ `}
104
+
105
+ // Style for TriangleExpandedIcon (when expanded)
106
+ ${(props) => props.isOpen &&
107
+ `
108
+ svg {
109
+ transform: rotate(0deg); // Point upward when expanded
110
+ }
111
+ `}
112
+ `;
113
+ //# sourceMappingURL=FileGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileGroup.js","sourceRoot":"","sources":["../../../../src/components/FileManager/FileGroup.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;AAEH,0EAAsC;AAEzB,QAAA,kBAAkB,GAAG,2BAAM,CAAC,GAAG,CAAA;;CAE3C,CAAA;AACY,QAAA,sBAAsB,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC/C,CAAA;AAEY,QAAA,SAAS,GAAG,2BAAM,CAAC,GAAG,CAAA;;CAElC,CAAA;AACY,QAAA,SAAS,GAAG,2BAAM,CAAC,GAAG,CAAA;WACxB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;;;;;;CAMpD,CAAA;AAEY,QAAA,eAAe,GAAG,2BAAM,CAAC,GAAG,CAAA;;;;;;;;oBAQrB,CAAC,KAAK,EAAE,EAAE,CACxB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;;;IAG3B,iBAAS;;;CAGZ,CAAA;AAEY,QAAA,UAAU,GAAG,2BAAM,CAAC,GAAG,CAAqB;;;;;;;;;;;;;;;IAerD,CAAC,KAAK,EAAE,EAAE,CACV,CAAC,KAAK,CAAC,MAAM;IACb;;;;GAID;;;IAGC,CAAC,KAAK,EAAE,EAAE,CACV,KAAK,CAAC,MAAM;IACZ;;;;GAID;CACF,CAAA"}
@@ -29,31 +29,30 @@ const transform_1 = require("@manuscripts/transform");
29
29
  const prosemirror_state_1 = require("prosemirror-state");
30
30
  const prosemirror_utils_1 = require("prosemirror-utils");
31
31
  const react_1 = __importStar(require("react"));
32
+ const files_1 = require("../../lib/files");
32
33
  const store_1 = require("../../store");
33
34
  const FileActions_1 = require("./FileActions");
34
- const FileContainer_1 = require("./FileContainer");
35
35
  const FileCreatedDate_1 = require("./FileCreatedDate");
36
+ const FileGroup_1 = require("./FileGroup");
36
37
  const FileManager_1 = require("./FileManager");
37
38
  const FileName_1 = require("./FileName");
39
+ const FileTypeIcon_1 = require("./FileTypeIcon");
38
40
  const InlineFilesSection = ({ elements, }) => {
39
41
  const [{ view, fileManagement, sectionCategories }] = (0, store_1.useStore)((s) => ({
40
42
  view: s.view,
41
43
  fileManagement: s.fileManagement,
42
44
  sectionCategories: s.sectionCategories,
43
45
  }));
44
- const metadata = (0, react_1.useMemo)(() => {
46
+ const groupedMetadata = (0, react_1.useMemo)(() => {
45
47
  if (!view) {
46
48
  return [];
47
49
  }
48
50
  let figureIndex = 1;
49
51
  let imageIndex = 1;
50
52
  return elements.map((element) => {
51
- const figure = element.files[0];
52
- const file = figure?.file || { id: '', name: '' };
53
53
  const $pos = view.state.doc.resolve(element.pos);
54
54
  const section = (0, prosemirror_utils_1.findParentNodeOfTypeClosestToPos)($pos, transform_1.schema.nodes.graphical_abstract_section);
55
- let label;
56
- let icon;
55
+ let label, icon;
57
56
  if (section) {
58
57
  const category = section.node.attrs.category;
59
58
  label = sectionCategories.get(category)?.titles[0] || '';
@@ -63,62 +62,113 @@ const InlineFilesSection = ({ elements, }) => {
63
62
  label = `Image ${imageIndex++}`;
64
63
  icon = style_guide_1.FileImageIcon;
65
64
  }
66
- else if (element.node.type === transform_1.schema.nodes.hero_image) {
67
- label = `Hero Image`;
68
- icon = style_guide_1.FileImageIcon;
69
- }
70
65
  else {
71
66
  label = `Figure ${figureIndex++}`;
72
67
  icon = style_guide_1.FileFigureIcon;
73
68
  }
74
69
  return {
75
70
  element,
76
- node: figure?.node,
77
- pos: figure?.pos,
78
- file,
79
71
  label,
80
72
  icon,
73
+ files: element.files.filter((f) => f.file.id),
81
74
  };
82
75
  });
83
76
  }, [elements, view, sectionCategories]);
77
+ const [openGroupIndexes, setOpenGroupIndexes] = (0, react_1.useState)(new Set(groupedMetadata.map((_, index) => index)));
78
+ const toggleGroupOpen = (groupIndex) => {
79
+ setOpenGroupIndexes((prevOpenIndexes) => {
80
+ const newOpenIndexes = new Set(prevOpenIndexes);
81
+ if (newOpenIndexes.has(groupIndex)) {
82
+ newOpenIndexes.delete(groupIndex);
83
+ }
84
+ else {
85
+ newOpenIndexes.add(groupIndex);
86
+ }
87
+ return newOpenIndexes;
88
+ });
89
+ };
84
90
  if (!view) {
85
91
  return null;
86
92
  }
87
- const handleClick = (metadata) => {
93
+ const handleClick = (element) => {
94
+ const tr = view.state.tr;
95
+ tr.setSelection(prosemirror_state_1.NodeSelection.create(view.state.doc, element.pos));
96
+ tr.scrollIntoView();
97
+ view.focus();
98
+ view.dispatch(tr);
99
+ };
100
+ const handleFileClick = (pos) => {
101
+ if (!pos) {
102
+ return;
103
+ }
88
104
  const tr = view.state.tr;
89
- tr.setSelection(prosemirror_state_1.NodeSelection.create(view.state.doc, metadata.element.pos));
105
+ tr.setSelection(prosemirror_state_1.NodeSelection.create(view.state.doc, pos));
90
106
  tr.scrollIntoView();
91
107
  view.focus();
92
108
  view.dispatch(tr);
93
109
  };
94
- const handleDetach = (metadata) => {
95
- if (!metadata.pos) {
110
+ const handleDetach = (pos) => {
111
+ if (!pos) {
96
112
  return;
97
113
  }
98
114
  const tr = view.state.tr;
99
- tr.setNodeAttribute(metadata.pos, 'src', '');
100
- tr.setSelection(prosemirror_state_1.NodeSelection.create(tr.doc, metadata.pos));
115
+ tr.setNodeAttribute(pos, 'src', '');
116
+ tr.setSelection(prosemirror_state_1.NodeSelection.create(tr.doc, pos));
101
117
  tr.scrollIntoView();
102
118
  view.focus();
103
119
  view.dispatch(tr);
104
120
  };
105
- const handleReplace = async (metadata, file) => {
106
- if (!metadata.pos) {
121
+ const handleDelete = (pos) => {
122
+ if (!pos || !view) {
123
+ return;
124
+ }
125
+ const node = view.state.doc.nodeAt(pos);
126
+ if (node?.type === transform_1.schema.nodes.figure) {
127
+ const tr = view.state.tr;
128
+ tr.delete(pos, pos + node.nodeSize);
129
+ view.dispatch(tr);
130
+ }
131
+ };
132
+ const handleReplace = async (pos, file) => {
133
+ if (!pos || !file) {
107
134
  return;
108
135
  }
109
136
  const uploaded = await fileManagement.upload(file);
110
137
  const tr = view.state.tr;
111
- tr.setNodeAttribute(metadata.pos, 'src', uploaded.id);
112
- tr.setSelection(prosemirror_state_1.NodeSelection.create(tr.doc, metadata.pos));
138
+ tr.setNodeAttribute(pos, 'src', uploaded.id);
139
+ tr.setSelection(prosemirror_state_1.NodeSelection.create(tr.doc, pos));
113
140
  tr.scrollIntoView();
114
141
  view.focus();
115
142
  view.dispatch(tr);
116
143
  };
117
- return (react_1.default.createElement(react_1.default.Fragment, null, metadata.map((e, index) => {
118
- return (react_1.default.createElement(FileContainer_1.FileContainer, { "data-cy": "file-container", key: index, onClick: () => handleClick(e) },
119
- react_1.default.createElement(FileName_1.FileName, { file: e.file, label: e.label, icon: e.icon }),
120
- react_1.default.createElement(FileCreatedDate_1.FileCreatedDate, { file: e.file, className: "show-on-hover" }),
121
- react_1.default.createElement(FileActions_1.FileActions, { "data-cy": "file-actions", sectionType: FileManager_1.FileSectionType.Inline, onReplace: async (f) => await handleReplace(e, f), onDetach: () => handleDetach(e), onDownload: () => fileManagement.download(e.file) })));
144
+ return (react_1.default.createElement(react_1.default.Fragment, null, groupedMetadata.map((group, groupIndex) => {
145
+ const isOpen = openGroupIndexes.has(groupIndex);
146
+ const figureCount = group.files.length;
147
+ return (react_1.default.createElement(FileGroup_1.FileGroupContainer, { "data-cy": "file-container", key: groupIndex, onClick: () => handleClick(group.element) },
148
+ react_1.default.createElement(FileGroup_1.FileGroupHeader, null,
149
+ react_1.default.createElement(group.icon, { className: "file-icon" }),
150
+ group.label && react_1.default.createElement(FileGroup_1.FileLabel, null,
151
+ group.label,
152
+ ":"),
153
+ group.files.length > 0 && (react_1.default.createElement(FileGroup_1.ToggleIcon, { isOpen: isOpen, onClick: (e) => {
154
+ e.stopPropagation();
155
+ toggleGroupOpen(groupIndex);
156
+ } }, isOpen ? (react_1.default.createElement(style_guide_1.TriangleExpandedIcon, null)) : (react_1.default.createElement(style_guide_1.TriangleCollapsedIcon, null))))),
157
+ isOpen && group.files.length > 0 && (react_1.default.createElement(FileGroup_1.FileGroup, null, group.files.map((fileAttachment, fileIndex) => (react_1.default.createElement(FileGroup_1.FileGroupItemContainer, { key: fileIndex, "data-tooltip-id": `${fileAttachment.file?.id}-file-name-tooltip`, onClick: (e) => {
158
+ e.stopPropagation();
159
+ handleFileClick(fileAttachment.pos);
160
+ } },
161
+ fileAttachment.file && (react_1.default.createElement(FileTypeIcon_1.FileTypeIcon, { file: fileAttachment.file })),
162
+ react_1.default.createElement(FileName_1.FileNameText, { "data-cy": "filename" },
163
+ fileAttachment.file?.name
164
+ ? (0, files_1.trimFilename)(fileAttachment.file.name, 25)
165
+ : 'Unknown file',
166
+ fileAttachment.file?.name && (react_1.default.createElement(style_guide_1.Tooltip, { id: `${fileAttachment.file?.id}-file-name-tooltip`, place: "bottom" }, fileAttachment.file?.name || 'Figure'))),
167
+ fileAttachment.file && (react_1.default.createElement(FileCreatedDate_1.FileCreatedDate, { file: fileAttachment.file, className: "show-on-hover" })),
168
+ react_1.default.createElement(FileActions_1.FileActions, { sectionType: FileManager_1.FileSectionType.Inline, onReplace: async (f) => await handleReplace(fileAttachment.pos, f), onDetach: () => handleDetach(fileAttachment.pos), onDownload: () => fileAttachment.file &&
169
+ fileManagement.download(fileAttachment.file), onDelete: figureCount > 1
170
+ ? () => handleDelete(fileAttachment.pos)
171
+ : undefined }))))))));
122
172
  })));
123
173
  };
124
174
  exports.InlineFilesSection = InlineFilesSection;
@@ -1 +1 @@
1
- {"version":3,"file":"InlineFilesSection.js","sourceRoot":"","sources":["../../../../src/components/FileManager/InlineFilesSection.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InlineFilesSection.js","sourceRoot":"","sources":["../../../../src/components/FileManager/InlineFilesSection.tsx"],"names":[],"mappings":"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"}
@@ -49,7 +49,7 @@ const FileName_1 = require("./FileName");
49
49
  const FileSectionAlert_1 = require("./FileSectionAlert");
50
50
  const FileUploader_1 = require("./FileUploader");
51
51
  /**
52
- * This component represents the other files in the file section.
52
+ * This component represents the other files in the file section.
53
53
  */
54
54
  const OtherFilesSection = ({ files }) => {
55
55
  const [{ view, fileManagement }] = (0, store_1.useStore)((s) => ({
@@ -50,7 +50,7 @@ const FileName_1 = require("./FileName");
50
50
  const FileSectionAlert_1 = require("./FileSectionAlert");
51
51
  const FileUploader_1 = require("./FileUploader");
52
52
  /**
53
- * This component represents the other files in the file section.
53
+ * This component represents the other files in the file section.
54
54
  */
55
55
  const SupplementsSection = ({ supplements, }) => {
56
56
  const [{ view, fileManagement }] = (0, store_1.useStore)((s) => ({
@@ -1,25 +1,28 @@
1
1
  import { AttentionOrangeIcon, Category, Dialog, DotsIcon, DropdownContainer, DropdownList, useDropdown, usePermissions, } from '@manuscripts/style-guide';
2
- import React, { useRef, useState } from 'react';
2
+ import React, { useEffect, useRef, useState } from 'react';
3
3
  import styled from 'styled-components';
4
4
  /**
5
5
  * This component represents the drop-down list action for each file item.
6
6
  */
7
- export const FileActions = ({ sectionType, onDownload, onReplace, onDetach, onUseAsMain, move, className, file, accept, }) => {
7
+ export const FileActions = ({ sectionType, onDownload, onReplace, onDetach, onDelete, onUseAsMain, move, className, file, accept, }) => {
8
8
  const can = usePermissions();
9
9
  const { isOpen, toggleOpen, wrapperRef } = useDropdown();
10
10
  const [isMoveDialogOpen, setMoveDialogOpen] = useState(false);
11
11
  const [isUseAsMainDialogOpen, setUseAsMainDialogOpen] = useState(false);
12
+ const fileInputRef = useRef(null);
12
13
  const showDownload = can?.downloadFiles && onDownload;
13
14
  const showReplace = can?.replaceFile && onReplace;
14
15
  const showDetach = can?.detachFile && onDetach;
16
+ const showDelete = can?.detachFile && onDelete;
15
17
  const showMove = can?.moveFile && move;
16
18
  const showUseAsMain = can?.moveFile && onUseAsMain && isValidMainDocumentFormat(file);
17
19
  const show = showDownload || showReplace || showDetach || showMove || showUseAsMain;
18
- const fileInputRef = useRef(null);
19
20
  const handleChange = async (event) => {
20
- if (onReplace && event && event.target && event.target.files) {
21
- const file = event.target.files[0];
22
- await onReplace(file);
21
+ if (onReplace && event?.target?.files?.[0]) {
22
+ await onReplace(event.target.files[0]);
23
+ if (fileInputRef.current) {
24
+ fileInputRef.current.value = '';
25
+ }
23
26
  }
24
27
  };
25
28
  const openFileDialog = () => {
@@ -27,23 +30,40 @@ export const FileActions = ({ sectionType, onDownload, onReplace, onDetach, onUs
27
30
  fileInputRef.current.click();
28
31
  }
29
32
  };
33
+ // Fix: Close dropdown when clicking outside or pressing escape
34
+ useEffect(() => {
35
+ const handleClickOutside = (event) => {
36
+ if (wrapperRef.current &&
37
+ !wrapperRef.current.contains(event.target)) {
38
+ toggleOpen();
39
+ }
40
+ };
41
+ if (isOpen) {
42
+ document.addEventListener('mousedown', handleClickOutside);
43
+ return () => document.removeEventListener('mousedown', handleClickOutside);
44
+ }
45
+ }, [isOpen, wrapperRef, toggleOpen]);
30
46
  if (!show) {
31
47
  return null;
32
48
  }
33
49
  return (React.createElement(DropdownContainer, { ref: wrapperRef },
34
- React.createElement(ActionsIcon, { onClick: toggleOpen, type: "button", className: "show-on-hover", "data-cy": "file-actions", "aria-label": "Actions", "aria-pressed": isOpen },
50
+ React.createElement(ActionsIcon, { onClick: (e) => {
51
+ e.stopPropagation();
52
+ toggleOpen();
53
+ }, type: "button", className: "show-on-hover", "data-cy": "file-actions", "aria-label": "Actions", "aria-pressed": isOpen },
35
54
  React.createElement(DotsIcon, null)),
36
- isOpen && (React.createElement(FileActionDropdownList, { "data-cy": "file-actions-dropdown", direction: "right", className: className, width: 192, top: 5, onClick: toggleOpen },
55
+ isOpen && (React.createElement(FileActionDropdownList, { "data-cy": "file-actions-dropdown", direction: "right", className: className, width: 192, top: 5, onClick: (e) => e.stopPropagation() },
37
56
  showDownload && (React.createElement(FileAction, { onClick: onDownload }, "Download")),
38
57
  showReplace && (React.createElement(React.Fragment, null,
39
58
  React.createElement(FileAction, { onClick: openFileDialog }, "Replace"),
40
59
  React.createElement("input", { ref: fileInputRef, type: "file", style: { display: 'none' }, onChange: handleChange, accept: accept }))),
41
60
  showDetach && React.createElement(FileAction, { onClick: onDetach }, "Detach"),
61
+ showDelete && React.createElement(FileAction, { onClick: onDelete }, "Delete"),
42
62
  showMove && (React.createElement(FileAction, { onClick: () => setMoveDialogOpen(true) },
43
63
  "Move to ",
44
64
  move.sectionType)),
45
65
  showUseAsMain && (React.createElement(FileAction, { onClick: () => setUseAsMainDialogOpen(true) }, "Use as main document")))),
46
- showMove && (React.createElement(MoveFileConfirmationDialog, { "data-cy": "file-move-confirm-dialog", isOpen: isMoveDialogOpen, close: () => setMoveDialogOpen(false), source: sectionType, target: move.sectionType, handleMove: move.handler })),
66
+ showMove && (React.createElement(MoveFileConfirmationDialog, { isOpen: isMoveDialogOpen, close: () => setMoveDialogOpen(false), source: sectionType, target: move.sectionType, handleMove: move.handler })),
47
67
  showUseAsMain && (React.createElement(UseAsMainConfirmationDialog, { "data-cy": "file-use-as-main-confirm-dialog", isOpen: isUseAsMainDialogOpen, close: () => setUseAsMainDialogOpen(false), handleUseAsMain: onUseAsMain }))));
48
68
  };
49
69
  const UseAsMainConfirmationDialog = ({ isOpen, close, handleUseAsMain }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"FileActions.js","sourceRoot":"","sources":["../../../../src/components/FileManager/FileActions.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FileActions.js","sourceRoot":"","sources":["../../../../src/components/FileManager/FileActions.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /*!
2
+ * The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
3
+ *
4
+ * Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
5
+ *
6
+ * The Original Code is manuscripts-frontend.
7
+ *
8
+ * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
9
+ *
10
+ * All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
11
+ */
12
+ import styled from 'styled-components';
13
+ export const FileGroupContainer = styled.div `
14
+ margin: 20px 0px 20px 15px;
15
+ `;
16
+ export const FileGroupItemContainer = styled.div `
17
+ display: flex;
18
+ align-items: center;
19
+ cursor: pointer;
20
+ padding: 12px 18px;
21
+
22
+ .react-tooltip {
23
+ max-width: 100% !important;
24
+ }
25
+
26
+ svg {
27
+ width: 16px;
28
+
29
+ path {
30
+ fill: #6e6e6e;
31
+ }
32
+ }
33
+
34
+ &.dragging {
35
+ opacity: 0.2;
36
+ }
37
+
38
+ .show-on-hover {
39
+ visibility: hidden;
40
+ }
41
+
42
+ &:hover .show-on-hover {
43
+ visibility: visible;
44
+ }
45
+
46
+ &:hover,
47
+ &:focus {
48
+ background: #f2fbfc;
49
+ }
50
+ `;
51
+ export const FileGroup = styled.div `
52
+ display: block;
53
+ `;
54
+ export const FileLabel = styled.div `
55
+ color: ${(props) => props.theme.colors.text.primary};
56
+ font-weight: bold;
57
+ font-size: 16px;
58
+ line-height: 20px;
59
+ white-space: nowrap;
60
+ align-content: center;
61
+ `;
62
+ export const FileGroupHeader = styled.div `
63
+ display: flex;
64
+ align-items: center;
65
+ cursor: pointer;
66
+ padding-right: 20px;
67
+ margin-bottom: 20px;
68
+
69
+ .file-icon {
70
+ margin-right: ${(props) => props.theme.grid.unit * 2}px; /* Adjust as needed */
71
+ }
72
+
73
+ ${FileLabel} {
74
+ flex: 1;
75
+ }
76
+ `;
77
+ export const ToggleIcon = styled.div `
78
+ width: 20px;
79
+ height: 20px;
80
+ border-radius: 50%;
81
+ border: 1px solid #e2e2e2;
82
+ text-align: center;
83
+ cursor: pointer;
84
+
85
+ svg {
86
+ width: 19px;
87
+ height: 19px;
88
+ transition: transform 0.2s ease; // Smooth transition for rotation
89
+ }
90
+
91
+ // Style for TriangleCollapsedIcon (when collapsed)
92
+ ${(props) => !props.isOpen &&
93
+ `
94
+ svg {
95
+ transform: rotate(270deg); // Point downward when collapsed
96
+ }
97
+ `}
98
+
99
+ // Style for TriangleExpandedIcon (when expanded)
100
+ ${(props) => props.isOpen &&
101
+ `
102
+ svg {
103
+ transform: rotate(0deg); // Point upward when expanded
104
+ }
105
+ `}
106
+ `;
107
+ //# sourceMappingURL=FileGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileGroup.js","sourceRoot":"","sources":["../../../../src/components/FileManager/FileGroup.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAA;;CAE3C,CAAA;AACD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC/C,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA;;CAElC,CAAA;AACD,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA;WACxB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;;;;;;CAMpD,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;oBAQrB,CAAC,KAAK,EAAE,EAAE,CACxB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;;;IAG3B,SAAS;;;CAGZ,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAqB;;;;;;;;;;;;;;;IAerD,CAAC,KAAK,EAAE,EAAE,CACV,CAAC,KAAK,CAAC,MAAM;IACb;;;;GAID;;;IAGC,CAAC,KAAK,EAAE,EAAE,CACV,KAAK,CAAC,MAAM;IACZ;;;;GAID;CACF,CAAA"}
@@ -1,33 +1,32 @@
1
- import { FileFigureIcon, FileGraphicalAbstractIcon, FileImageIcon, } from '@manuscripts/style-guide';
1
+ import { FileFigureIcon, FileGraphicalAbstractIcon, FileImageIcon, Tooltip, TriangleCollapsedIcon, TriangleExpandedIcon, } from '@manuscripts/style-guide';
2
2
  import { schema } from '@manuscripts/transform';
3
3
  import { NodeSelection } from 'prosemirror-state';
4
4
  import { findParentNodeOfTypeClosestToPos } from 'prosemirror-utils';
5
- import React, { useMemo } from 'react';
5
+ import React, { useMemo, useState } from 'react';
6
+ import { trimFilename } from '../../lib/files';
6
7
  import { useStore } from '../../store';
7
8
  import { FileActions } from './FileActions';
8
- import { FileContainer } from './FileContainer';
9
9
  import { FileCreatedDate } from './FileCreatedDate';
10
+ import { FileGroup, FileGroupContainer, FileGroupHeader, FileGroupItemContainer, FileLabel, ToggleIcon, } from './FileGroup';
10
11
  import { FileSectionType } from './FileManager';
11
- import { FileName } from './FileName';
12
+ import { FileNameText } from './FileName';
13
+ import { FileTypeIcon } from './FileTypeIcon';
12
14
  export const InlineFilesSection = ({ elements, }) => {
13
15
  const [{ view, fileManagement, sectionCategories }] = useStore((s) => ({
14
16
  view: s.view,
15
17
  fileManagement: s.fileManagement,
16
18
  sectionCategories: s.sectionCategories,
17
19
  }));
18
- const metadata = useMemo(() => {
20
+ const groupedMetadata = useMemo(() => {
19
21
  if (!view) {
20
22
  return [];
21
23
  }
22
24
  let figureIndex = 1;
23
25
  let imageIndex = 1;
24
26
  return elements.map((element) => {
25
- const figure = element.files[0];
26
- const file = figure?.file || { id: '', name: '' };
27
27
  const $pos = view.state.doc.resolve(element.pos);
28
28
  const section = findParentNodeOfTypeClosestToPos($pos, schema.nodes.graphical_abstract_section);
29
- let label;
30
- let icon;
29
+ let label, icon;
31
30
  if (section) {
32
31
  const category = section.node.attrs.category;
33
32
  label = sectionCategories.get(category)?.titles[0] || '';
@@ -37,62 +36,113 @@ export const InlineFilesSection = ({ elements, }) => {
37
36
  label = `Image ${imageIndex++}`;
38
37
  icon = FileImageIcon;
39
38
  }
40
- else if (element.node.type === schema.nodes.hero_image) {
41
- label = `Hero Image`;
42
- icon = FileImageIcon;
43
- }
44
39
  else {
45
40
  label = `Figure ${figureIndex++}`;
46
41
  icon = FileFigureIcon;
47
42
  }
48
43
  return {
49
44
  element,
50
- node: figure?.node,
51
- pos: figure?.pos,
52
- file,
53
45
  label,
54
46
  icon,
47
+ files: element.files.filter((f) => f.file.id),
55
48
  };
56
49
  });
57
50
  }, [elements, view, sectionCategories]);
51
+ const [openGroupIndexes, setOpenGroupIndexes] = useState(new Set(groupedMetadata.map((_, index) => index)));
52
+ const toggleGroupOpen = (groupIndex) => {
53
+ setOpenGroupIndexes((prevOpenIndexes) => {
54
+ const newOpenIndexes = new Set(prevOpenIndexes);
55
+ if (newOpenIndexes.has(groupIndex)) {
56
+ newOpenIndexes.delete(groupIndex);
57
+ }
58
+ else {
59
+ newOpenIndexes.add(groupIndex);
60
+ }
61
+ return newOpenIndexes;
62
+ });
63
+ };
58
64
  if (!view) {
59
65
  return null;
60
66
  }
61
- const handleClick = (metadata) => {
67
+ const handleClick = (element) => {
68
+ const tr = view.state.tr;
69
+ tr.setSelection(NodeSelection.create(view.state.doc, element.pos));
70
+ tr.scrollIntoView();
71
+ view.focus();
72
+ view.dispatch(tr);
73
+ };
74
+ const handleFileClick = (pos) => {
75
+ if (!pos) {
76
+ return;
77
+ }
62
78
  const tr = view.state.tr;
63
- tr.setSelection(NodeSelection.create(view.state.doc, metadata.element.pos));
79
+ tr.setSelection(NodeSelection.create(view.state.doc, pos));
64
80
  tr.scrollIntoView();
65
81
  view.focus();
66
82
  view.dispatch(tr);
67
83
  };
68
- const handleDetach = (metadata) => {
69
- if (!metadata.pos) {
84
+ const handleDetach = (pos) => {
85
+ if (!pos) {
70
86
  return;
71
87
  }
72
88
  const tr = view.state.tr;
73
- tr.setNodeAttribute(metadata.pos, 'src', '');
74
- tr.setSelection(NodeSelection.create(tr.doc, metadata.pos));
89
+ tr.setNodeAttribute(pos, 'src', '');
90
+ tr.setSelection(NodeSelection.create(tr.doc, pos));
75
91
  tr.scrollIntoView();
76
92
  view.focus();
77
93
  view.dispatch(tr);
78
94
  };
79
- const handleReplace = async (metadata, file) => {
80
- if (!metadata.pos) {
95
+ const handleDelete = (pos) => {
96
+ if (!pos || !view) {
97
+ return;
98
+ }
99
+ const node = view.state.doc.nodeAt(pos);
100
+ if (node?.type === schema.nodes.figure) {
101
+ const tr = view.state.tr;
102
+ tr.delete(pos, pos + node.nodeSize);
103
+ view.dispatch(tr);
104
+ }
105
+ };
106
+ const handleReplace = async (pos, file) => {
107
+ if (!pos || !file) {
81
108
  return;
82
109
  }
83
110
  const uploaded = await fileManagement.upload(file);
84
111
  const tr = view.state.tr;
85
- tr.setNodeAttribute(metadata.pos, 'src', uploaded.id);
86
- tr.setSelection(NodeSelection.create(tr.doc, metadata.pos));
112
+ tr.setNodeAttribute(pos, 'src', uploaded.id);
113
+ tr.setSelection(NodeSelection.create(tr.doc, pos));
87
114
  tr.scrollIntoView();
88
115
  view.focus();
89
116
  view.dispatch(tr);
90
117
  };
91
- return (React.createElement(React.Fragment, null, metadata.map((e, index) => {
92
- return (React.createElement(FileContainer, { "data-cy": "file-container", key: index, onClick: () => handleClick(e) },
93
- React.createElement(FileName, { file: e.file, label: e.label, icon: e.icon }),
94
- React.createElement(FileCreatedDate, { file: e.file, className: "show-on-hover" }),
95
- React.createElement(FileActions, { "data-cy": "file-actions", sectionType: FileSectionType.Inline, onReplace: async (f) => await handleReplace(e, f), onDetach: () => handleDetach(e), onDownload: () => fileManagement.download(e.file) })));
118
+ return (React.createElement(React.Fragment, null, groupedMetadata.map((group, groupIndex) => {
119
+ const isOpen = openGroupIndexes.has(groupIndex);
120
+ const figureCount = group.files.length;
121
+ return (React.createElement(FileGroupContainer, { "data-cy": "file-container", key: groupIndex, onClick: () => handleClick(group.element) },
122
+ React.createElement(FileGroupHeader, null,
123
+ React.createElement(group.icon, { className: "file-icon" }),
124
+ group.label && React.createElement(FileLabel, null,
125
+ group.label,
126
+ ":"),
127
+ group.files.length > 0 && (React.createElement(ToggleIcon, { isOpen: isOpen, onClick: (e) => {
128
+ e.stopPropagation();
129
+ toggleGroupOpen(groupIndex);
130
+ } }, isOpen ? (React.createElement(TriangleExpandedIcon, null)) : (React.createElement(TriangleCollapsedIcon, null))))),
131
+ isOpen && group.files.length > 0 && (React.createElement(FileGroup, null, group.files.map((fileAttachment, fileIndex) => (React.createElement(FileGroupItemContainer, { key: fileIndex, "data-tooltip-id": `${fileAttachment.file?.id}-file-name-tooltip`, onClick: (e) => {
132
+ e.stopPropagation();
133
+ handleFileClick(fileAttachment.pos);
134
+ } },
135
+ fileAttachment.file && (React.createElement(FileTypeIcon, { file: fileAttachment.file })),
136
+ React.createElement(FileNameText, { "data-cy": "filename" },
137
+ fileAttachment.file?.name
138
+ ? trimFilename(fileAttachment.file.name, 25)
139
+ : 'Unknown file',
140
+ fileAttachment.file?.name && (React.createElement(Tooltip, { id: `${fileAttachment.file?.id}-file-name-tooltip`, place: "bottom" }, fileAttachment.file?.name || 'Figure'))),
141
+ fileAttachment.file && (React.createElement(FileCreatedDate, { file: fileAttachment.file, className: "show-on-hover" })),
142
+ React.createElement(FileActions, { sectionType: FileSectionType.Inline, onReplace: async (f) => await handleReplace(fileAttachment.pos, f), onDetach: () => handleDetach(fileAttachment.pos), onDownload: () => fileAttachment.file &&
143
+ fileManagement.download(fileAttachment.file), onDelete: figureCount > 1
144
+ ? () => handleDelete(fileAttachment.pos)
145
+ : undefined }))))))));
96
146
  })));
97
147
  };
98
148
  //# sourceMappingURL=InlineFilesSection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InlineFilesSection.js","sourceRoot":"","sources":["../../../../src/components/FileManager/InlineFilesSection.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InlineFilesSection.js","sourceRoot":"","sources":["../../../../src/components/FileManager/InlineFilesSection.tsx"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ import { FileName } from './FileName';
23
23
  import { FileSectionAlert, FileSectionAlertType } from './FileSectionAlert';
24
24
  import { FileUploader } from './FileUploader';
25
25
  /**
26
- * This component represents the other files in the file section.
26
+ * This component represents the other files in the file section.
27
27
  */
28
28
  export const OtherFilesSection = ({ files }) => {
29
29
  const [{ view, fileManagement }] = useStore((s) => ({
@@ -24,7 +24,7 @@ import { FileName } from './FileName';
24
24
  import { FileSectionAlert, FileSectionAlertType } from './FileSectionAlert';
25
25
  import { FileUploader } from './FileUploader';
26
26
  /**
27
- * This component represents the other files in the file section.
27
+ * This component represents the other files in the file section.
28
28
  */
29
29
  export const SupplementsSection = ({ supplements, }) => {
30
30
  const [{ view, fileManagement }] = useStore((s) => ({
@@ -20,6 +20,7 @@ export declare const FileActions: React.FC<{
20
20
  onDownload?: () => void;
21
21
  onReplace?: Replace;
22
22
  onDetach?: () => void;
23
+ onDelete?: () => void;
23
24
  onUseAsMain?: () => void;
24
25
  move?: Move;
25
26
  className?: string;
@@ -0,0 +1,19 @@
1
+ /*!
2
+ * The contents of this file are subject to the Common Public Attribution License Version 1.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://mpapp-public.gitlab.io/manuscripts-frontend/LICENSE. The License is based on the Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover use of software over a computer network and provide for limited attribution for the Original Developer. In addition, Exhibit A has been modified to be consistent with Exhibit B.
3
+ *
4
+ * Software distributed under the License is distributed on an “AS IS” basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
5
+ *
6
+ * The Original Code is manuscripts-frontend.
7
+ *
8
+ * The Original Developer is the Initial Developer. The Initial Developer of the Original Code is Atypon Systems LLC.
9
+ *
10
+ * All portions of the code written by Atypon Systems LLC are Copyright (c) 2025 Atypon Systems LLC. All Rights Reserved.
11
+ */
12
+ export declare const FileGroupContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
13
+ export declare const FileGroupItemContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
14
+ export declare const FileGroup: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
15
+ export declare const FileLabel: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
16
+ export declare const FileGroupHeader: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
17
+ export declare const ToggleIcon: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
18
+ isOpen: boolean;
19
+ }, never>;
@@ -12,7 +12,7 @@
12
12
  import { FileAttachment } from '@manuscripts/body-editor';
13
13
  import React from 'react';
14
14
  /**
15
- * This component represents the other files in the file section.
15
+ * This component represents the other files in the file section.
16
16
  */
17
17
  export declare const OtherFilesSection: React.FC<{
18
18
  files: FileAttachment[];
@@ -15,6 +15,6 @@ export type SupplementsSectionProps = {
15
15
  supplements: NodeFile[];
16
16
  };
17
17
  /**
18
- * This component represents the other files in the file section.
18
+ * This component represents the other files in the file section.
19
19
  */
20
20
  export declare const SupplementsSection: React.FC<SupplementsSectionProps>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manuscripts/article-editor",
3
- "version": "4.2.4",
3
+ "version": "4.2.6",
4
4
  "license": "CPAL-1.0",
5
5
  "description": "React components for editing and viewing manuscripts",
6
6
  "repository": "github:Atypon-OpenSource/manuscripts-article-editor",
@@ -31,7 +31,7 @@
31
31
  "@fontsource/pt-sans": "5.2.5",
32
32
  "@fontsource/pt-serif": "5.2.5",
33
33
  "@headlessui/react": "2.2.3",
34
- "@manuscripts/body-editor": "3.2.3",
34
+ "@manuscripts/body-editor": "3.2.4",
35
35
  "@manuscripts/json-schema": "2.2.12",
36
36
  "@manuscripts/style-guide": "3.1.0",
37
37
  "@manuscripts/track-changes-plugin": "2.0.1",