@manuscripts/body-editor 3.12.66 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/toolbar/type-selector/styles.js +2 -1
- package/dist/cjs/versions.js +1 -1
- package/dist/es/components/toolbar/type-selector/styles.js +2 -1
- package/dist/es/versions.js +1 -1
- package/dist/types/components/toolbar/type-selector/styles.d.ts +2 -2
- package/dist/types/lib/footnotes.d.ts +4 -2
- package/dist/types/lib/utils.d.ts +5 -4
- package/dist/types/versions.d.ts +1 -1
- package/package.json +37 -36
- package/{dist/es/lib/statistics.js → src/__mocks__/styleMock.ts} +2 -14
- package/src/assets.ts +20 -0
- package/src/classes/collabProvider.ts +38 -0
- package/src/clipboard.ts +54 -0
- package/src/commands.ts +2109 -0
- package/src/components/ChangeHandlingForm.tsx +54 -0
- package/src/components/LanguageDropdown/index.tsx +343 -0
- package/src/components/affiliations/AffiliationForm.tsx +238 -0
- package/src/components/affiliations/AffiliationItem.tsx +151 -0
- package/src/components/affiliations/AffiliationList.tsx +71 -0
- package/src/components/affiliations/AffiliationsModal.tsx +676 -0
- package/src/components/affiliations/AffiliationsPanel.tsx +76 -0
- package/src/components/affiliations/CreateAffiliationModal.tsx +135 -0
- package/src/components/authors/AuthorDetailsForm.tsx +438 -0
- package/src/components/authors/AuthorList.tsx +81 -0
- package/src/components/authors/AuthorsModal.tsx +642 -0
- package/src/components/authors/AuthorsPanel.tsx +69 -0
- package/src/components/authors/CreateAuthorModal.tsx +172 -0
- package/src/components/authors/CreditDrawer.tsx +71 -0
- package/src/components/authors/DraggableAuthor.tsx +228 -0
- package/src/components/authors/useManageAffiliations.tsx +77 -0
- package/src/components/authors/useManageCredit.tsx +63 -0
- package/src/components/authors-affiliations/AuthorsAndAffiliationsModals.tsx +170 -0
- package/src/components/authors-affiliations/GenericPanel.tsx +164 -0
- package/src/components/authors-affiliations/ModalTabs.tsx +100 -0
- package/src/components/awards/AwardForm.tsx +338 -0
- package/src/components/awards/AwardModal.tsx +120 -0
- package/src/components/awards/DeleteAwardDiaolog.tsx +52 -0
- package/src/components/dialog/ConfirmationDialog.tsx +131 -0
- package/src/components/form/CreateModalStyles.tsx +37 -0
- package/src/components/form/FormFooter.tsx +54 -0
- package/src/components/form/FormPlaceholder.tsx +71 -0
- package/src/components/form/ModalFormActions.tsx +88 -0
- package/src/components/form/UnsavedLabel.tsx +49 -0
- package/src/components/hooks/use-debounce.ts +56 -0
- package/src/components/hooks/useAffiliationShowsErrorIndicator.ts +51 -0
- package/src/components/hooks/useAuthorShowsErrorIndicator.ts +73 -0
- package/src/components/keyboard-shortcuts-modal/FormattedShortcut.tsx +56 -0
- package/src/components/keyboard-shortcuts-modal/KeyboardShortcutsModal.tsx +283 -0
- package/src/components/keyboard-shortcuts-modal/keyboard-shortcuts.ts +304 -0
- package/src/components/keywords/AddKeywordInline.tsx +284 -0
- package/src/components/keywords/DeleteKeywordDialog.tsx +52 -0
- package/src/components/modal-drawer/GenericDrawer.tsx +65 -0
- package/src/components/modal-drawer/GenericDrawerGroup.tsx +125 -0
- package/src/components/outline/DraggableTree.tsx +438 -0
- package/src/components/outline/ManuscriptOutline.tsx +127 -0
- package/src/components/outline/Outline.tsx +141 -0
- package/src/components/references/BibliographyItemSource.ts +80 -0
- package/src/components/references/CitationEditor.tsx +301 -0
- package/src/components/references/CitationViewer.tsx +62 -0
- package/src/components/references/ImportBibliographyForm.tsx +232 -0
- package/src/components/references/ImportBibliographyModal.tsx +159 -0
- package/src/components/references/ReferenceForm/PersonDropDown.tsx +93 -0
- package/src/components/references/ReferenceForm/ReferenceForm.tsx +701 -0
- package/src/components/references/ReferenceForm/config.ts +133 -0
- package/src/components/references/ReferenceForm/styled-components.ts +156 -0
- package/src/components/references/ReferenceLine.tsx +43 -0
- package/src/components/references/ReferenceSearch.tsx +163 -0
- package/src/components/references/ReferenceSearchResults.tsx +113 -0
- package/src/components/references/ReferenceSearchResultsPlaceholder.tsx +71 -0
- package/src/components/references/ReferenceSearchSection.tsx +124 -0
- package/src/components/references/ReferencesEditor.tsx +61 -0
- package/src/components/references/ReferencesModal.tsx +352 -0
- package/src/components/references/SearchInput.tsx +98 -0
- package/src/components/toolbar/InsertEmbedDialog.tsx +222 -0
- package/src/components/toolbar/InsertTableDialog.tsx +208 -0
- package/src/components/toolbar/ListMenuItem.tsx +203 -0
- package/src/components/toolbar/helpers.ts +547 -0
- package/src/components/toolbar/type-selector/OptionComponent.tsx +89 -0
- package/src/components/toolbar/type-selector/TypeSelector.tsx +157 -0
- package/src/components/toolbar/type-selector/styles.ts +79 -0
- package/src/components/views/CrossReferenceItems.tsx +199 -0
- package/src/components/views/DeleteEmbedDialog.tsx +83 -0
- package/src/components/views/DeleteFootnoteDialog.tsx +54 -0
- package/src/components/views/FigureDropdown.tsx +423 -0
- package/src/components/views/FootnotesSelector.tsx +255 -0
- package/src/components/views/InsertSpecialCharacter.tsx +245 -0
- package/src/components/views/LinkForm.tsx +220 -0
- package/src/components/views/TableCellContextMenu.tsx +241 -0
- package/src/configs/ManuscriptsEditor.ts +140 -0
- package/src/configs/editor-plugins.ts +119 -0
- package/src/configs/editor-views.ts +139 -0
- package/src/icons.ts +62 -0
- package/src/index.ts +65 -0
- package/src/keys/highlight.ts +65 -0
- package/src/keys/index.ts +33 -0
- package/src/keys/keyword.ts +69 -0
- package/src/keys/list.ts +156 -0
- package/src/keys/misc.ts +112 -0
- package/src/keys/title.ts +221 -0
- package/src/lib/__tests__/__fixtures__/doc.json +388 -0
- package/src/lib/__tests__/__snapshots__/paste.test.ts.snap +24 -0
- package/src/lib/__tests__/authors.test.ts +202 -0
- package/src/lib/__tests__/helpers.test.ts +46 -0
- package/src/lib/__tests__/paste.test.ts +57 -0
- package/src/lib/__tests__/plugins.test.ts +176 -0
- package/src/lib/__tests__/url.test.ts +31 -0
- package/src/lib/array-reducer.ts +68 -0
- package/src/lib/authors-and-affiliations.ts +81 -0
- package/src/lib/authors.ts +67 -0
- package/src/lib/capabilities.ts +55 -0
- package/src/lib/codemirror.ts +37 -0
- package/src/lib/comments.ts +123 -0
- package/src/lib/context-menu.ts +745 -0
- package/src/lib/copy.ts +30 -0
- package/src/lib/crossref.ts +90 -0
- package/src/lib/dnd.ts +29 -0
- package/src/lib/doc.ts +167 -0
- package/src/lib/dompurify.ts +28 -0
- package/src/lib/files.ts +180 -0
- package/src/lib/footnotes.ts +83 -0
- package/src/lib/get-media-type.ts +105 -0
- package/src/lib/helpers.ts +199 -0
- package/src/lib/hierarchy.ts +117 -0
- package/src/lib/languages.ts +37 -0
- package/src/lib/lists.ts +56 -0
- package/src/lib/math.ts +111 -0
- package/src/lib/media.ts +334 -0
- package/src/lib/navigation-utils.ts +235 -0
- package/src/lib/normalize.ts +70 -0
- package/src/lib/paste.ts +304 -0
- package/src/lib/placeholder.ts +32 -0
- package/src/lib/platform.ts +18 -0
- package/src/lib/plugins.ts +22 -0
- package/src/lib/popper.ts +180 -0
- package/src/lib/position-menu.ts +184 -0
- package/src/lib/references.ts +94 -0
- package/src/lib/template.ts +29 -0
- package/src/lib/track-changes-utils.ts +34 -0
- package/{dist/types/lib/statistics.d.ts → src/lib/url.ts} +11 -8
- package/src/lib/use-do-with-debounce.ts +39 -0
- package/src/lib/utils.ts +323 -0
- package/src/lib/view.ts +100 -0
- package/src/menus.tsx +684 -0
- package/src/node-type-icons.tsx +83 -0
- package/src/plugins/__tests__/__fixtures__/deleted-footnote.json +140 -0
- package/src/plugins/__tests__/__fixtures__/inserted-footnote.json +153 -0
- package/src/plugins/__tests__/footnotes.test.ts +67 -0
- package/src/plugins/accessibility_element.ts +219 -0
- package/src/plugins/add-subtitle.ts +102 -0
- package/src/plugins/affiliations.ts +136 -0
- package/src/plugins/alt-titles.ts +219 -0
- package/src/plugins/bibliography.ts +235 -0
- package/src/plugins/comments.ts +328 -0
- package/src/plugins/cross-references.ts +70 -0
- package/src/plugins/detect-inconsistency/detect-inconsistency-utils.ts +102 -0
- package/src/plugins/detect-inconsistency/index.ts +55 -0
- package/src/plugins/detect-inconsistency/validators.ts +283 -0
- package/src/plugins/doi.ts +66 -0
- package/src/plugins/editor-props.ts +39 -0
- package/src/plugins/elements.ts +60 -0
- package/src/plugins/footnotes.ts +298 -0
- package/src/plugins/link.ts +53 -0
- package/src/plugins/lock-body.ts +136 -0
- package/src/plugins/move-node.ts +55 -0
- package/src/plugins/objects.ts +125 -0
- package/src/plugins/paragraphs.ts +90 -0
- package/src/plugins/persist.ts +64 -0
- package/src/plugins/persistent-cursor.ts +66 -0
- package/src/plugins/placeholder.ts +219 -0
- package/src/plugins/prevent-empty.ts +50 -0
- package/src/plugins/search-replace/index.ts +157 -0
- package/src/plugins/search-replace/lib.ts +95 -0
- package/src/plugins/section_category.ts +212 -0
- package/src/plugins/section_title/autocompletion.ts +87 -0
- package/src/plugins/section_title/index.ts +105 -0
- package/src/plugins/selected-suggestion.ts +243 -0
- package/src/plugins/tables-cursor-fix.ts +143 -0
- package/src/plugins/translations.ts +263 -0
- package/src/rules.ts +60 -0
- package/src/selection.ts +112 -0
- package/src/testing/default-capabilities.ts +48 -0
- package/src/testing/default-editor-data.ts +73 -0
- package/src/testing/empty-editor-doc.json +62 -0
- package/src/testing/polyfill-dom.ts +43 -0
- package/src/testing/section-categories.json +161 -0
- package/src/testing/setup-editor.ts +55 -0
- package/src/tests.ts +42 -0
- package/src/toolbar.tsx +259 -0
- package/src/types/@citation-js/core.d.ts +16 -0
- package/src/types/@citation-js/index.d.ts +16 -0
- package/src/types/@citation-js/plugin-bibtex.d.ts +16 -0
- package/src/types/@citation-js/plugin-csl.d.ts +16 -0
- package/src/types/@citation-js/plugin-doi.d.ts +16 -0
- package/src/types/@citation-js/plugin-enw.d.ts +16 -0
- package/src/types/@citation-js/plugin-pubmed.d.ts +16 -0
- package/src/types/@citation-js/plugin-ris.d.ts +16 -0
- package/src/types/citeproc.d.ts +124 -0
- package/src/types/css.d.ts +16 -0
- package/src/types/json.d.ts +17 -0
- package/src/types/prosemirror-dev-tools.d.ts +16 -0
- package/src/types/prosemirror-dropcursor.d.ts +16 -0
- package/src/types/styled-components.d.ts +23 -0
- package/src/types.ts +49 -0
- package/src/useEditor.ts +244 -0
- package/src/versions.ts +3 -0
- package/src/views/ReactSubView.tsx +145 -0
- package/src/views/abstracts.ts +46 -0
- package/src/views/accessibility_element.ts +86 -0
- package/src/views/affiliations.ts +254 -0
- package/src/views/alt_title.ts +85 -0
- package/src/views/alt_titles_section.ts +97 -0
- package/src/views/attachment.ts +160 -0
- package/src/views/attachments.ts +72 -0
- package/src/views/author_notes.ts +96 -0
- package/src/views/award.ts +194 -0
- package/src/views/awards.ts +59 -0
- package/src/views/base_node_view.ts +85 -0
- package/src/views/bibliography_element.ts +313 -0
- package/src/views/block_view.ts +100 -0
- package/src/views/blockquote_element.ts +26 -0
- package/src/views/blockquote_element_editable.ts +24 -0
- package/src/views/box_element.ts +33 -0
- package/src/views/caption.ts +37 -0
- package/src/views/caption_title.ts +33 -0
- package/src/views/citation.ts +67 -0
- package/src/views/citation_editable.ts +312 -0
- package/src/views/contributors.ts +341 -0
- package/src/views/creators.ts +82 -0
- package/src/views/cross_reference.ts +74 -0
- package/src/views/cross_reference_editable.ts +113 -0
- package/src/views/editable_block.ts +141 -0
- package/src/views/embed.ts +345 -0
- package/src/views/empty.ts +26 -0
- package/src/views/equation.ts +47 -0
- package/src/views/equation_editable.ts +84 -0
- package/src/views/equation_element.ts +29 -0
- package/src/views/equation_element_editable.ts +21 -0
- package/src/views/figure.ts +84 -0
- package/src/views/figure_editable.ts +361 -0
- package/src/views/figure_element.ts +197 -0
- package/src/views/figure_element_editable.ts +21 -0
- package/src/views/footnote.ts +236 -0
- package/src/views/footnotes_element.ts +54 -0
- package/src/views/general_table_footnote.ts +140 -0
- package/src/views/hero_image.ts +76 -0
- package/src/views/hero_image_editable.ts +21 -0
- package/src/views/image_element.ts +373 -0
- package/src/views/image_element_editable.ts +21 -0
- package/src/views/inline_equation.ts +47 -0
- package/src/views/inline_equation_editable.ts +70 -0
- package/src/views/inline_footnote.ts +264 -0
- package/src/views/inline_footnote_editable.ts +20 -0
- package/src/views/keyword.ts +127 -0
- package/src/views/keyword_group.ts +109 -0
- package/src/views/link.ts +27 -0
- package/src/views/link_editable.ts +169 -0
- package/src/views/list.ts +46 -0
- package/src/views/list_item.ts +26 -0
- package/src/views/paragraph.ts +26 -0
- package/src/views/paragraph_editable.ts +21 -0
- package/src/views/placeholder.ts +35 -0
- package/src/views/placeholder_element.ts +38 -0
- package/src/views/placeholder_element_editable.ts +21 -0
- package/src/views/pullquote_element.ts +106 -0
- package/src/views/pullquote_element_editable.ts +24 -0
- package/src/views/quote_image_editable.ts +84 -0
- package/src/views/section.ts +64 -0
- package/src/views/section_label.ts +20 -0
- package/src/views/section_title.ts +87 -0
- package/src/views/section_title_editable.ts +21 -0
- package/src/views/subtitle.ts +42 -0
- package/src/views/subtitle_editable.ts +20 -0
- package/src/views/subtitles.ts +34 -0
- package/src/views/subtitles_editable.ts +21 -0
- package/src/views/supplement.ts +236 -0
- package/src/views/supplement_editable.ts +20 -0
- package/src/views/supplements.ts +65 -0
- package/src/views/supplements_editable.ts +21 -0
- package/src/views/table_cell.ts +150 -0
- package/src/views/table_element.ts +33 -0
- package/src/views/table_element_editable.ts +21 -0
- package/src/views/table_element_footer.ts +41 -0
- package/src/views/title.ts +46 -0
- package/src/views/title_editable.ts +20 -0
- package/src/views/trans_graphical_abstract.ts +55 -0
- package/src/views/trans_graphical_abstract_editable.ts +21 -0
- package/src/views/translated_abstract.ts +53 -0
- package/src/views/translated_abstract_editable.ts +21 -0
- package/dist/cjs/lib/statistics.js +0 -38
|
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.customStyles = exports.StyledSelect = void 0;
|
|
7
7
|
const react_select_1 = __importDefault(require("react-select"));
|
|
8
8
|
const styled_components_1 = __importDefault(require("styled-components"));
|
|
9
|
-
|
|
9
|
+
const TypeSelect = react_select_1.default;
|
|
10
|
+
exports.StyledSelect = (0, styled_components_1.default)(TypeSelect) `
|
|
10
11
|
.type-selector__control:hover {
|
|
11
12
|
border-color: ${(props) => props.theme.colors.border.secondary};
|
|
12
13
|
}
|
package/dist/cjs/versions.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Select from 'react-select';
|
|
2
2
|
import styled from 'styled-components';
|
|
3
|
-
|
|
3
|
+
const TypeSelect = Select;
|
|
4
|
+
export const StyledSelect = styled(TypeSelect) `
|
|
4
5
|
.type-selector__control:hover {
|
|
5
6
|
border-color: ${(props) => props.theme.colors.border.secondary};
|
|
6
7
|
}
|
package/dist/es/versions.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '3.
|
|
1
|
+
export const VERSION = '3.13.0';
|
|
2
2
|
export const MATHJAX_VERSION = '3.2.2';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { CSSObjectWithLabel } from 'react-select';
|
|
1
|
+
import { CSSObjectWithLabel, GroupBase, Props } from 'react-select';
|
|
2
2
|
import { Option } from './TypeSelector';
|
|
3
|
-
export declare const StyledSelect: import("styled-components").StyledComponent<
|
|
3
|
+
export declare const StyledSelect: import("styled-components").StyledComponent<import("react").FunctionComponent<Props<Option, false, GroupBase<Option>>>, any, {}, never>;
|
|
4
4
|
export declare const customStyles: {
|
|
5
5
|
control: (styles: CSSObjectWithLabel) => CSSObjectWithLabel;
|
|
6
6
|
indicatorSeparator: () => CSSObjectWithLabel;
|
|
@@ -14,11 +14,13 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { FootnoteNode, ManuscriptEditorState, ManuscriptNode } from '@manuscripts/transform';
|
|
17
|
-
|
|
17
|
+
import { Selection } from 'prosemirror-state';
|
|
18
|
+
import { ContentNodeWithPos } from 'prosemirror-utils';
|
|
19
|
+
export declare const findFootnotesContainerNode: (doc: ManuscriptNode, pos: number) => ContentNodeWithPos | {
|
|
18
20
|
node: import("prosemirror-model").Node;
|
|
19
21
|
pos: number;
|
|
20
22
|
};
|
|
21
|
-
export declare const findParentFootnote: (selection:
|
|
23
|
+
export declare const findParentFootnote: (selection: Selection) => ContentNodeWithPos | undefined;
|
|
22
24
|
export declare const getFootnotesElementState: (state: ManuscriptEditorState, id: string) => import("../plugins/footnotes").FootnotesElementState | undefined;
|
|
23
25
|
export declare const getFootnoteLabel: (state: ManuscriptEditorState, footnote: FootnoteNode) => string;
|
|
24
26
|
export declare const createFootnote: () => FootnoteNode;
|
|
@@ -16,14 +16,15 @@
|
|
|
16
16
|
import { BibliographyItemAttrs, BibliographyItemType, ManuscriptEditorState, ManuscriptNode, ManuscriptNodeType } from '@manuscripts/transform';
|
|
17
17
|
import { Fragment, Node as ProseMirrorNode, NodeType, ResolvedPos } from 'prosemirror-model';
|
|
18
18
|
import { EditorState, Selection } from 'prosemirror-state';
|
|
19
|
+
import { ContentNodeWithPos } from 'prosemirror-utils';
|
|
19
20
|
export declare function iterateChildren(node: ManuscriptNode, recurse?: boolean): Iterable<ManuscriptNode>;
|
|
20
21
|
export declare const getMatchingChild: (parent: ManuscriptNode, matcher: (node: ManuscriptNode) => boolean, deep?: boolean) => ManuscriptNode | undefined;
|
|
21
22
|
export declare const getMatchingDescendant: (parent: ManuscriptNode, matcher: (node: ManuscriptNode) => boolean) => ManuscriptNode | undefined;
|
|
22
23
|
export declare const getChildOfType: (parent: ManuscriptNode, nodeType: ManuscriptNodeType, deep?: boolean) => boolean;
|
|
23
|
-
export declare const findParentNodeWithId: (
|
|
24
|
-
export declare const findParentNodeWithIdValue: (
|
|
25
|
-
export declare const findParentSection: (
|
|
26
|
-
export declare const findParentElement: (selection: Selection, validIds?: string[]) =>
|
|
24
|
+
export declare const findParentNodeWithId: (selection: Selection) => ContentNodeWithPos | undefined;
|
|
25
|
+
export declare const findParentNodeWithIdValue: (selection: Selection) => ContentNodeWithPos | undefined;
|
|
26
|
+
export declare const findParentSection: (selection: Selection) => ContentNodeWithPos | undefined;
|
|
27
|
+
export declare const findParentElement: (selection: Selection, validIds?: string[]) => ContentNodeWithPos | undefined;
|
|
27
28
|
export declare const isChildOfNodeTypes: (doc: ManuscriptNode, pos: number, parentNodeTypes: NodeType[]) => boolean;
|
|
28
29
|
export declare const isSelectionInNode: (state: EditorState, targetNode: ProseMirrorNode) => boolean;
|
|
29
30
|
export declare const isSelectionInBody: (state: EditorState) => boolean;
|
package/dist/types/versions.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "3.
|
|
1
|
+
export declare const VERSION = "3.13.0";
|
|
2
2
|
export declare const MATHJAX_VERSION = "3.2.2";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@manuscripts/body-editor",
|
|
3
3
|
"description": "Prosemirror components for editing and viewing manuscripts",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.13.0",
|
|
5
5
|
"repository": "github:Atypon-OpenSource/manuscripts-body-editor",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"main": "dist/cjs",
|
|
@@ -11,14 +11,15 @@
|
|
|
11
11
|
"**/*.css"
|
|
12
12
|
],
|
|
13
13
|
"files": [
|
|
14
|
+
"src",
|
|
14
15
|
"dist",
|
|
15
16
|
"styles"
|
|
16
17
|
],
|
|
17
18
|
"scripts": {
|
|
18
|
-
"build": "npm-run-
|
|
19
|
+
"build": "npm-run-all2 --parallel build:*",
|
|
19
20
|
"build:cjs": "tsc --outDir dist/cjs --module commonjs",
|
|
20
21
|
"build:es": "tsc --outDir dist/es --declarationDir dist/types --declaration",
|
|
21
|
-
"dev": "pnpm dependencies-versions && npm-run-
|
|
22
|
+
"dev": "pnpm dependencies-versions && npm-run-all2 --parallel 'build:* --watch'",
|
|
22
23
|
"lint": "eslint src --ext .ts,.tsx --max-warnings=0",
|
|
23
24
|
"lint:fix": "eslint src --fix --ext .ts,.tsx --max-warnings=0",
|
|
24
25
|
"prebuild": "rimraf dist && pnpm dependencies-versions",
|
|
@@ -32,26 +33,25 @@
|
|
|
32
33
|
"unlink-all": "rm pnpm-workspace.yaml && pnpm install"
|
|
33
34
|
},
|
|
34
35
|
"dependencies": {
|
|
35
|
-
"@citation-js/core": "0.7.
|
|
36
|
-
"@citation-js/plugin-bibtex": "0.7.
|
|
37
|
-
"@citation-js/plugin-csl": "0.7.
|
|
38
|
-
"@citation-js/plugin-doi": "0.7.
|
|
36
|
+
"@citation-js/core": "0.7.21",
|
|
37
|
+
"@citation-js/plugin-bibtex": "0.7.21",
|
|
38
|
+
"@citation-js/plugin-csl": "0.7.22",
|
|
39
|
+
"@citation-js/plugin-doi": "0.7.21",
|
|
39
40
|
"@citation-js/plugin-enw": "0.3.0",
|
|
40
41
|
"@citation-js/plugin-pubmed": "0.3.0",
|
|
41
42
|
"@citation-js/plugin-ris": "0.7.18",
|
|
42
43
|
"@iarna/word-count": "1.1.2",
|
|
43
|
-
"@manuscripts/style-guide": "3.
|
|
44
|
-
"@manuscripts/track-changes-plugin": "2.
|
|
45
|
-
"@manuscripts/transform": "4.
|
|
44
|
+
"@manuscripts/style-guide": "3.6.0",
|
|
45
|
+
"@manuscripts/track-changes-plugin": "2.4.0",
|
|
46
|
+
"@manuscripts/transform": "4.4.0",
|
|
46
47
|
"@popperjs/core": "2.11.8",
|
|
47
48
|
"citeproc": "2.4.63",
|
|
48
49
|
"codemirror": "5.65.19",
|
|
49
|
-
"dompurify": "3.
|
|
50
|
-
"formik": "2.4.
|
|
50
|
+
"dompurify": "3.4.3",
|
|
51
|
+
"formik": "2.4.9",
|
|
51
52
|
"fuzzysort": "3.1.0",
|
|
52
|
-
"grapheme-splitter": "1.0.4",
|
|
53
53
|
"history": "5.3.0",
|
|
54
|
-
"lodash": "4.
|
|
54
|
+
"lodash": "4.18.1",
|
|
55
55
|
"mathjax": "3.2.2",
|
|
56
56
|
"prosemirror-collab": "1.3.1",
|
|
57
57
|
"prosemirror-commands": "1.7.1",
|
|
@@ -67,53 +67,54 @@
|
|
|
67
67
|
"prosemirror-transform": "1.10.4",
|
|
68
68
|
"prosemirror-utils": "1.2.2",
|
|
69
69
|
"prosemirror-view": "1.41.0",
|
|
70
|
-
"react": "19.2.
|
|
70
|
+
"react": "19.2.6",
|
|
71
71
|
"react-dnd": "16.0.1",
|
|
72
72
|
"react-dnd-html5-backend": "16.0.1",
|
|
73
|
-
"react-dom": "19.2.
|
|
74
|
-
"react-is": "19.2.
|
|
75
|
-
"react-router-dom": "
|
|
76
|
-
"react-select": "5.10.
|
|
73
|
+
"react-dom": "19.2.6",
|
|
74
|
+
"react-is": "19.2.6",
|
|
75
|
+
"react-router-dom": "7.15.0",
|
|
76
|
+
"react-select": "5.10.2",
|
|
77
77
|
"styled-components": "5.3.11"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
80
|
"@vitest/coverage-v8": "4.1.6",
|
|
81
|
-
"@eslint/eslintrc": "3.3.
|
|
81
|
+
"@eslint/eslintrc": "3.3.5",
|
|
82
82
|
"@eslint/js": "9.39.1",
|
|
83
83
|
"@manuscripts/eslint-config": "0.5.1",
|
|
84
|
-
"@types/codemirror": "5.60.
|
|
84
|
+
"@types/codemirror": "5.60.17",
|
|
85
85
|
"@types/csl": "npm:csl-json@0.1.0",
|
|
86
|
-
"jsdom": "
|
|
86
|
+
"jsdom": "29.1.1",
|
|
87
87
|
"@types/lodash": "4.17.16",
|
|
88
88
|
"@types/node": "20.17.46",
|
|
89
|
-
"@types/react": "19.2.
|
|
89
|
+
"@types/react": "19.2.17",
|
|
90
90
|
"@types/react-dom": "19.2.3",
|
|
91
|
-
"@types/react-router-dom": "5.3.3",
|
|
92
91
|
"@types/styled-components": "5.1.34",
|
|
93
|
-
"@types/uuid": "9.0.8",
|
|
94
92
|
"@typescript-eslint/eslint-plugin": "8.46.4",
|
|
95
93
|
"@typescript-eslint/parser": "8.46.4",
|
|
96
94
|
"eslint": "9.39.1",
|
|
97
95
|
"eslint-config-prettier": "10.1.8",
|
|
98
|
-
"eslint-plugin-diff": "2.
|
|
96
|
+
"eslint-plugin-diff": "2.1.7",
|
|
99
97
|
"eslint-plugin-header": "3.1.1",
|
|
100
98
|
"eslint-plugin-import": "2.32.0",
|
|
101
99
|
"eslint-plugin-jsx-a11y": "6.10.2",
|
|
102
|
-
"eslint-plugin-mdx": "3.
|
|
100
|
+
"eslint-plugin-mdx": "3.7.0",
|
|
103
101
|
"eslint-plugin-node": "11.1.0",
|
|
104
|
-
"eslint-plugin-prettier": "5.5.
|
|
105
|
-
"eslint-plugin-promise": "7.
|
|
102
|
+
"eslint-plugin-prettier": "5.5.5",
|
|
103
|
+
"eslint-plugin-promise": "7.3.0",
|
|
106
104
|
"eslint-plugin-react": "7.37.5",
|
|
107
|
-
"eslint-plugin-react-hooks": "7.
|
|
105
|
+
"eslint-plugin-react-hooks": "7.1.1",
|
|
108
106
|
"eslint-plugin-simple-import-sort": "12.1.1",
|
|
109
|
-
"husky": "
|
|
107
|
+
"husky": "9.1.7",
|
|
108
|
+
"vitest": "4.1.7",
|
|
109
|
+
"jest": "30.4.2",
|
|
110
|
+
"jest-environment-jsdom": "30.4.1",
|
|
110
111
|
"jest-prosemirror": "3.0.1",
|
|
111
|
-
"
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
"rimraf": "6.
|
|
112
|
+
"npm-run-all2": "^8.0.4",
|
|
113
|
+
"prettier": "3.8.3",
|
|
114
|
+
"regenerator-runtime": "0.14.1",
|
|
115
|
+
"rimraf": "6.1.3",
|
|
115
116
|
"typescript": "5.9.2",
|
|
116
|
-
"uuid": "
|
|
117
|
+
"uuid": "14.0.0"
|
|
117
118
|
},
|
|
118
119
|
"engines": {
|
|
119
120
|
"node": ">=22"
|
|
@@ -13,17 +13,5 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const splitter = new GraphemeSplitter();
|
|
19
|
-
export const buildText = (node) => {
|
|
20
|
-
const parts = [];
|
|
21
|
-
node.descendants((childNode) => {
|
|
22
|
-
if (childNode.isTextblock) {
|
|
23
|
-
parts.push(childNode.textContent);
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
return parts.join(' ');
|
|
27
|
-
};
|
|
28
|
-
export const countWords = (text) => wordCount(text);
|
|
29
|
-
export const countCharacters = (text) => splitter.countGraphemes(text) - 1;
|
|
16
|
+
|
|
17
|
+
export default {}
|
package/src/assets.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* © 2024 Atypon Systems LLC
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
//TODO: Move this icon to styleguide
|
|
18
|
+
export const sectionCategoryIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="19" viewBox="0 0 16 19" fill="none">
|
|
19
|
+
<path d="M0.5 4C0.5 2.067 2.067 0.5 4 0.5H12C13.933 0.5 15.5 2.067 15.5 4V16.0505C15.5 17.1991 14.2619 17.9215 13.2619 17.3563L8.73809 14.7994C8.28008 14.5405 7.71992 14.5405 7.26191 14.7994L2.73809 17.3563C1.73815 17.9215 0.5 17.1991 0.5 16.0505V4Z" fill="white" stroke="#6E6E6E"/>
|
|
20
|
+
</svg>`
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* © 2019 Atypon Systems LLC
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { Step } from 'prosemirror-transform'
|
|
18
|
+
|
|
19
|
+
export abstract class CollabProvider {
|
|
20
|
+
currentVersion: number
|
|
21
|
+
protected newStepsListener: () => void
|
|
22
|
+
abstract sendSteps(
|
|
23
|
+
version: number,
|
|
24
|
+
steps: readonly Step[],
|
|
25
|
+
clientID: string | number,
|
|
26
|
+
flush?: boolean
|
|
27
|
+
): Promise<void>
|
|
28
|
+
abstract unsubscribe(): void
|
|
29
|
+
abstract onNewSteps(listener: CollabProvider['newStepsListener']): void
|
|
30
|
+
abstract stepsSince(version: number): Promise<
|
|
31
|
+
| {
|
|
32
|
+
steps: Step[]
|
|
33
|
+
clientIDs: number[]
|
|
34
|
+
version: number
|
|
35
|
+
}
|
|
36
|
+
| undefined
|
|
37
|
+
>
|
|
38
|
+
}
|
package/src/clipboard.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* © 2024 Atypon Systems LLC
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { schema } from '@manuscripts/transform'
|
|
17
|
+
import { DOMParser } from 'prosemirror-model'
|
|
18
|
+
|
|
19
|
+
import { parseCssListStyleType } from './lib/lists'
|
|
20
|
+
|
|
21
|
+
// we can override other node rules for clipboard here
|
|
22
|
+
// to avoid having a conflict with manuscripts-transform
|
|
23
|
+
const nodes = [
|
|
24
|
+
{
|
|
25
|
+
tag: 'p, div',
|
|
26
|
+
node: 'paragraph',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
tag: 'ul, ol',
|
|
30
|
+
node: 'list',
|
|
31
|
+
getAttrs: (list: HTMLElement) => {
|
|
32
|
+
let type = list.style.listStyleType
|
|
33
|
+
if (!type) {
|
|
34
|
+
const item = list.firstElementChild as HTMLElement
|
|
35
|
+
if (item) {
|
|
36
|
+
type = item.style.listStyleType
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
listStyleType: parseCssListStyleType(type),
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
// this is to avoid adding a new line, as it won't appear in google doc
|
|
45
|
+
{
|
|
46
|
+
tag: 'br.Apple-interchange-newline',
|
|
47
|
+
ignore: true,
|
|
48
|
+
},
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
export const clipboardParser = new DOMParser(schema, [
|
|
52
|
+
...nodes,
|
|
53
|
+
...DOMParser.fromSchema(schema).rules,
|
|
54
|
+
])
|