@manuscripts/article-editor 4.7.28 → 4.7.30
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/DocumentOptionsDropdown.js +92 -6
- package/dist/cjs/components/DocumentOptionsDropdown.js.map +1 -1
- package/dist/cjs/components/FileManager/FileActions.js +68 -11
- package/dist/cjs/components/FileManager/FileActions.js.map +1 -1
- package/dist/cjs/components/FileManager/FileContainer.js +10 -2
- package/dist/cjs/components/FileManager/FileContainer.js.map +1 -1
- package/dist/cjs/components/FileManager/FileGroup.js +7 -2
- package/dist/cjs/components/FileManager/FileGroup.js.map +1 -1
- package/dist/cjs/components/FileManager/FileUploader.js +12 -1
- package/dist/cjs/components/FileManager/FileUploader.js.map +1 -1
- package/dist/cjs/components/FileManager/InlineFilesSection.js +11 -0
- package/dist/cjs/components/FileManager/InlineFilesSection.js.map +1 -1
- package/dist/cjs/components/FileManager/MainFilesSection.js +8 -0
- package/dist/cjs/components/FileManager/MainFilesSection.js.map +1 -1
- package/dist/cjs/components/FileManager/OtherFilesSection.js +1 -1
- package/dist/cjs/components/FileManager/OtherFilesSection.js.map +1 -1
- package/dist/cjs/components/FileManager/SupplementsSection.js +5 -1
- package/dist/cjs/components/FileManager/SupplementsSection.js.map +1 -1
- package/dist/cjs/components/Inspector.js +17 -1
- package/dist/cjs/components/Inspector.js.map +1 -1
- package/dist/cjs/components/Panel.js +2 -2
- package/dist/cjs/components/Panel.js.map +1 -1
- package/dist/cjs/components/SearchReplace/SearchField.js +3 -3
- package/dist/cjs/components/SearchReplace/SearchField.js.map +1 -1
- package/dist/cjs/components/SearchReplace/SearchReplace.js +1 -1
- package/dist/cjs/components/SearchReplace/SearchReplace.js.map +1 -1
- package/dist/cjs/components/comments/CommentActions.js +78 -7
- package/dist/cjs/components/comments/CommentActions.js.map +1 -1
- package/dist/cjs/components/comments/CommentBody.js +2 -2
- package/dist/cjs/components/comments/CommentBody.js.map +1 -1
- package/dist/cjs/components/comments/CommentResolveButton.js +6 -1
- package/dist/cjs/components/comments/CommentResolveButton.js.map +1 -1
- package/dist/cjs/components/comments/CommentThread.js +30 -2
- package/dist/cjs/components/comments/CommentThread.js.map +1 -1
- package/dist/cjs/components/comments/CommentsPanel.js +39 -5
- package/dist/cjs/components/comments/CommentsPanel.js.map +1 -1
- package/dist/cjs/components/comments/DeleteCommentConfirmation.js +2 -2
- package/dist/cjs/components/comments/DeleteCommentConfirmation.js.map +1 -1
- package/dist/cjs/components/comments/ReplyBox.js +2 -2
- package/dist/cjs/components/comments/ReplyBox.js.map +1 -1
- package/dist/cjs/components/inspector/SnapshotsList.js +2 -2
- package/dist/cjs/components/inspector/SnapshotsList.js.map +1 -1
- package/dist/cjs/components/projects/EditorElement.js +17 -1
- package/dist/cjs/components/projects/EditorElement.js.map +1 -1
- package/dist/cjs/components/projects/ListToolbarItem.js +87 -6
- package/dist/cjs/components/projects/ListToolbarItem.js.map +1 -1
- package/dist/cjs/components/projects/ListToolbarItemStyles.js +12 -0
- package/dist/cjs/components/projects/ListToolbarItemStyles.js.map +1 -1
- package/dist/cjs/components/projects/ManuscriptMenus.js +2 -2
- package/dist/cjs/components/projects/ManuscriptMenus.js.map +1 -1
- package/dist/cjs/components/projects/ManuscriptPageContainer.js +23 -3
- package/dist/cjs/components/projects/ManuscriptPageContainer.js.map +1 -1
- package/dist/cjs/components/projects/ManuscriptToolbar.js +86 -2
- package/dist/cjs/components/projects/ManuscriptToolbar.js.map +1 -1
- package/dist/cjs/components/track-changes/ApproveAllButton.js +1 -1
- package/dist/cjs/components/track-changes/ApproveAllButton.js.map +1 -1
- package/dist/cjs/components/track-changes/SortByDropdown.js +52 -15
- package/dist/cjs/components/track-changes/SortByDropdown.js.map +1 -1
- package/dist/cjs/components/track-changes/suggestion-list/Suggestion.js +76 -5
- package/dist/cjs/components/track-changes/suggestion-list/Suggestion.js.map +1 -1
- package/dist/cjs/components/track-changes/suggestion-list/SuggestionActions.js +7 -4
- package/dist/cjs/components/track-changes/suggestion-list/SuggestionActions.js.map +1 -1
- package/dist/cjs/components/track-changes/suggestion-list/SuggestionList.js +26 -1
- package/dist/cjs/components/track-changes/suggestion-list/SuggestionList.js.map +1 -1
- package/dist/cjs/components/track-changes/suggestion-list/SuggestionSnippet.js +14 -10
- package/dist/cjs/components/track-changes/suggestion-list/SuggestionSnippet.js.map +1 -1
- package/dist/cjs/theme/colors.js +2 -1
- package/dist/cjs/theme/colors.js.map +1 -1
- package/dist/cjs/theme/theme.js +3 -0
- package/dist/cjs/theme/theme.js.map +1 -1
- package/dist/es/components/DocumentOptionsDropdown.js +59 -6
- package/dist/es/components/DocumentOptionsDropdown.js.map +1 -1
- package/dist/es/components/FileManager/FileActions.js +68 -11
- package/dist/es/components/FileManager/FileActions.js.map +1 -1
- package/dist/es/components/FileManager/FileContainer.js +10 -2
- package/dist/es/components/FileManager/FileContainer.js.map +1 -1
- package/dist/es/components/FileManager/FileGroup.js +7 -2
- package/dist/es/components/FileManager/FileGroup.js.map +1 -1
- package/dist/es/components/FileManager/FileUploader.js +12 -1
- package/dist/es/components/FileManager/FileUploader.js.map +1 -1
- package/dist/es/components/FileManager/InlineFilesSection.js +11 -0
- package/dist/es/components/FileManager/InlineFilesSection.js.map +1 -1
- package/dist/es/components/FileManager/MainFilesSection.js +8 -0
- package/dist/es/components/FileManager/MainFilesSection.js.map +1 -1
- package/dist/es/components/FileManager/OtherFilesSection.js +1 -1
- package/dist/es/components/FileManager/OtherFilesSection.js.map +1 -1
- package/dist/es/components/FileManager/SupplementsSection.js +5 -1
- package/dist/es/components/FileManager/SupplementsSection.js.map +1 -1
- package/dist/es/components/Inspector.js +17 -1
- package/dist/es/components/Inspector.js.map +1 -1
- package/dist/es/components/Panel.js +2 -2
- package/dist/es/components/Panel.js.map +1 -1
- package/dist/es/components/SearchReplace/SearchField.js +3 -3
- package/dist/es/components/SearchReplace/SearchField.js.map +1 -1
- package/dist/es/components/SearchReplace/SearchReplace.js +1 -1
- package/dist/es/components/SearchReplace/SearchReplace.js.map +1 -1
- package/dist/es/components/comments/CommentActions.js +45 -7
- package/dist/es/components/comments/CommentActions.js.map +1 -1
- package/dist/es/components/comments/CommentBody.js +2 -2
- package/dist/es/components/comments/CommentBody.js.map +1 -1
- package/dist/es/components/comments/CommentResolveButton.js +6 -1
- package/dist/es/components/comments/CommentResolveButton.js.map +1 -1
- package/dist/es/components/comments/CommentThread.js +30 -2
- package/dist/es/components/comments/CommentThread.js.map +1 -1
- package/dist/es/components/comments/CommentsPanel.js +40 -6
- package/dist/es/components/comments/CommentsPanel.js.map +1 -1
- package/dist/es/components/comments/DeleteCommentConfirmation.js +2 -2
- package/dist/es/components/comments/DeleteCommentConfirmation.js.map +1 -1
- package/dist/es/components/comments/ReplyBox.js +2 -2
- package/dist/es/components/comments/ReplyBox.js.map +1 -1
- package/dist/es/components/inspector/SnapshotsList.js +2 -2
- package/dist/es/components/inspector/SnapshotsList.js.map +1 -1
- package/dist/es/components/projects/EditorElement.js +17 -1
- package/dist/es/components/projects/EditorElement.js.map +1 -1
- package/dist/es/components/projects/ListToolbarItem.js +54 -6
- package/dist/es/components/projects/ListToolbarItem.js.map +1 -1
- package/dist/es/components/projects/ListToolbarItemStyles.js +12 -0
- package/dist/es/components/projects/ListToolbarItemStyles.js.map +1 -1
- package/dist/es/components/projects/ManuscriptMenus.js +2 -2
- package/dist/es/components/projects/ManuscriptMenus.js.map +1 -1
- package/dist/es/components/projects/ManuscriptPageContainer.js +23 -3
- package/dist/es/components/projects/ManuscriptPageContainer.js.map +1 -1
- package/dist/es/components/projects/ManuscriptToolbar.js +53 -2
- package/dist/es/components/projects/ManuscriptToolbar.js.map +1 -1
- package/dist/es/components/track-changes/ApproveAllButton.js +1 -1
- package/dist/es/components/track-changes/ApproveAllButton.js.map +1 -1
- package/dist/es/components/track-changes/SortByDropdown.js +52 -12
- package/dist/es/components/track-changes/SortByDropdown.js.map +1 -1
- package/dist/es/components/track-changes/suggestion-list/Suggestion.js +77 -6
- package/dist/es/components/track-changes/suggestion-list/Suggestion.js.map +1 -1
- package/dist/es/components/track-changes/suggestion-list/SuggestionActions.js +7 -4
- package/dist/es/components/track-changes/suggestion-list/SuggestionActions.js.map +1 -1
- package/dist/es/components/track-changes/suggestion-list/SuggestionList.js +26 -1
- package/dist/es/components/track-changes/suggestion-list/SuggestionList.js.map +1 -1
- package/dist/es/components/track-changes/suggestion-list/SuggestionSnippet.js +10 -6
- package/dist/es/components/track-changes/suggestion-list/SuggestionSnippet.js.map +1 -1
- package/dist/es/theme/colors.js +1 -0
- package/dist/es/theme/colors.js.map +1 -1
- package/dist/es/theme/theme.js +3 -0
- package/dist/es/theme/theme.js.map +1 -1
- package/dist/types/components/FileManager/FileActions.d.ts +1 -1
- package/dist/types/components/Inspector.d.ts +3 -1
- package/dist/types/components/SearchReplace/SearchField.d.ts +1 -0
- package/dist/types/components/comments/CommentThread.d.ts +2 -0
- package/dist/types/components/projects/ListToolbarItemStyles.d.ts +4 -2
- package/dist/types/components/track-changes/suggestion-list/Suggestion.d.ts +2 -0
- package/dist/types/components/track-changes/suggestion-list/SuggestionActions.d.ts +1 -0
- package/dist/types/components/track-changes/suggestion-list/SuggestionSnippet.d.ts +3 -0
- package/dist/types/theme/colors.d.ts +1 -0
- package/package.json +3 -3
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { ListStyles } from '@manuscripts/body-editor';
|
|
13
13
|
import { ArrowDownIcon, DropdownList, ToolbarOrderedListIcon, ToolbarUnorderedListIcon, Tooltip, useDropdown, } from '@manuscripts/style-guide';
|
|
14
|
-
import React from 'react';
|
|
14
|
+
import React, { useEffect } from 'react';
|
|
15
15
|
import styled from 'styled-components';
|
|
16
16
|
import { ListButton, ListStyleButton } from './ListToolbarItemStyles';
|
|
17
17
|
import { ToolbarItem } from './ManuscriptToolbar';
|
|
@@ -20,12 +20,52 @@ const Container = styled.div `
|
|
|
20
20
|
`;
|
|
21
21
|
const ListStyleSelector = ({ title, disabled, styles, onClick, }) => {
|
|
22
22
|
const { isOpen, toggleOpen, wrapperRef } = useDropdown();
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
const buttonRef = React.useRef(null);
|
|
24
|
+
const styleRefs = React.useRef([]);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
if (isOpen) {
|
|
27
|
+
styleRefs.current[0]?.focus();
|
|
28
|
+
}
|
|
29
|
+
}, [isOpen]);
|
|
30
|
+
const handleKeyDown = (e) => {
|
|
31
|
+
if (!isOpen) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const items = styleRefs.current.filter(Boolean);
|
|
35
|
+
if (items.length === 0) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const currentIndex = items.indexOf(document.activeElement);
|
|
39
|
+
if (currentIndex === -1) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
e.preventDefault();
|
|
43
|
+
switch (e.key) {
|
|
44
|
+
case 'ArrowDown':
|
|
45
|
+
case 'ArrowRight':
|
|
46
|
+
items[(currentIndex + 1) % items.length]?.focus();
|
|
47
|
+
break;
|
|
48
|
+
case 'ArrowUp':
|
|
49
|
+
case 'ArrowLeft':
|
|
50
|
+
items[(currentIndex - 1 + items.length) % items.length]?.focus();
|
|
51
|
+
break;
|
|
52
|
+
case 'Escape':
|
|
53
|
+
toggleOpen();
|
|
54
|
+
buttonRef.current?.focus();
|
|
55
|
+
break;
|
|
56
|
+
case 'Enter': {
|
|
57
|
+
const el = document.activeElement;
|
|
58
|
+
el?.click();
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
return (React.createElement(Container, { onClick: () => !disabled && toggleOpen(), ref: wrapperRef, onKeyDown: handleKeyDown },
|
|
64
|
+
React.createElement(ListStyleButton, { ref: buttonRef, "data-tooltip-id": title, disabled: disabled, "aria-label": title },
|
|
25
65
|
React.createElement(ArrowDownIcon, null)),
|
|
26
66
|
React.createElement(Tooltip, { id: title, place: "bottom" }, title),
|
|
27
67
|
isOpen && (React.createElement(DropdownList, { direction: 'right', top: 6, onClick: toggleOpen },
|
|
28
|
-
React.createElement(ListStyles, { styles: styles, onClick: onClick })))));
|
|
68
|
+
React.createElement(ListStyles, { styles: styles, onClick: onClick, styleRefs: styleRefs })))));
|
|
29
69
|
};
|
|
30
70
|
export const ListToolbarItem = ({ state, type, dispatch, view, config }) => {
|
|
31
71
|
if (!config.options) {
|
|
@@ -43,11 +83,19 @@ export const ListToolbarItem = ({ state, type, dispatch, view, config }) => {
|
|
|
43
83
|
view && view.focus();
|
|
44
84
|
};
|
|
45
85
|
const styles = Object.keys(config.options);
|
|
86
|
+
const run = () => {
|
|
87
|
+
config.run(state, dispatch, view);
|
|
88
|
+
view?.focus();
|
|
89
|
+
};
|
|
46
90
|
return (React.createElement(ToolbarItem, null,
|
|
47
91
|
React.createElement(ListButton, { "data-tooltip-id": config.title, "data-active": config.isActive && config.isActive(state), disabled: !isEnabled, onMouseDown: (event) => {
|
|
48
92
|
event.preventDefault();
|
|
49
|
-
|
|
50
|
-
|
|
93
|
+
run();
|
|
94
|
+
}, onKeyDown: (event) => {
|
|
95
|
+
if (event.key === 'Enter') {
|
|
96
|
+
event.preventDefault();
|
|
97
|
+
run();
|
|
98
|
+
}
|
|
51
99
|
}, "aria-label": config.title }, type === 'ordered_list' ? (React.createElement(ToolbarOrderedListIcon, null)) : (React.createElement(ToolbarUnorderedListIcon, null))),
|
|
52
100
|
React.createElement(Tooltip, { id: config.title, place: "bottom" }, config.title),
|
|
53
101
|
React.createElement(ListStyleSelector, { title: config.title + ' styles', disabled: !isEnabled, onClick: handleClick, styles: styles })));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListToolbarItem.js","sourceRoot":"","sources":["../../../../src/components/projects/ListToolbarItem.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAuB,MAAM,0BAA0B,CAAA;AAC1E,OAAO,EACL,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,wBAAwB,EACxB,OAAO,EACP,WAAW,GACZ,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ListToolbarItem.js","sourceRoot":"","sources":["../../../../src/components/projects/ListToolbarItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,7 @@ const buttonCss = css `
|
|
|
33
33
|
`;
|
|
34
34
|
export const ListButton = styled.button.attrs({
|
|
35
35
|
type: 'button',
|
|
36
|
+
'data-toolbar-button': true,
|
|
36
37
|
}) `
|
|
37
38
|
${buttonCss};
|
|
38
39
|
padding: ${(props) => props.theme.grid.unit * 2 - 1}px
|
|
@@ -42,9 +43,15 @@ export const ListButton = styled.button.attrs({
|
|
|
42
43
|
border-right: 0;
|
|
43
44
|
border-top-right-radius: 0 !important;
|
|
44
45
|
border-bottom-right-radius: 0 !important;
|
|
46
|
+
|
|
47
|
+
&:focus-visible {
|
|
48
|
+
outline: 2px solid ${(props) => props.theme.colors.outline.focus};
|
|
49
|
+
outline-offset: -2px;
|
|
50
|
+
}
|
|
45
51
|
`;
|
|
46
52
|
export const ListStyleButton = styled.button.attrs({
|
|
47
53
|
type: 'button',
|
|
54
|
+
'data-toolbar-button': true,
|
|
48
55
|
}) `
|
|
49
56
|
${buttonCss};
|
|
50
57
|
border-left: 0;
|
|
@@ -60,5 +67,10 @@ export const ListStyleButton = styled.button.attrs({
|
|
|
60
67
|
&:hover path {
|
|
61
68
|
stroke: #6e6e6e;
|
|
62
69
|
}
|
|
70
|
+
|
|
71
|
+
&:focus-visible {
|
|
72
|
+
outline: 2px solid ${(props) => props.theme.colors.outline.focus};
|
|
73
|
+
outline-offset: -2px;
|
|
74
|
+
}
|
|
63
75
|
`;
|
|
64
76
|
//# sourceMappingURL=ListToolbarItemStyles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListToolbarItemStyles.js","sourceRoot":"","sources":["../../../../src/components/projects/ListToolbarItemStyles.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAE/C,MAAM,SAAS,GAAG,GAAG,CAEnB;sBACoB,CAAC,KAAK,EAAE,EAAE,CAC5B,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO;sBACnD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS;;;;;;;kBAOlD,CAAC,KAAK,EAAE,EAAE,CACtB,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS;;;;;;;;;;;CAW5E,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;IAC5C,IAAI,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"ListToolbarItemStyles.js","sourceRoot":"","sources":["../../../../src/components/projects/ListToolbarItemStyles.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAE/C,MAAM,SAAS,GAAG,GAAG,CAEnB;sBACoB,CAAC,KAAK,EAAE,EAAE,CAC5B,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO;sBACnD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS;;;;;;;kBAOlD,CAAC,KAAK,EAAE,EAAE,CACtB,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS;;;;;;;;;;;CAW5E,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;IAC5C,IAAI,EAAE,QAAQ;IACd,qBAAqB,EAAE,IAAI;CAC5B,CAAC,CAEA;IACE,SAAS;aACA,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;MAC/C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;MACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;MACxC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;;;;;;yBAMjB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;;;CAGnE,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;IACjD,IAAI,EAAE,QAAQ;IACd,qBAAqB,EAAE,IAAI;CAC5B,CAAC,CAEA;IACE,SAAS;;;;;;;;;;;;;;;;yBAgBY,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;;;CAGnE,CAAA"}
|
|
@@ -75,7 +75,7 @@ export const ManuscriptMenus = () => {
|
|
|
75
75
|
}
|
|
76
76
|
return getFilteredMenus(editor, can);
|
|
77
77
|
}, [can, editor]);
|
|
78
|
-
const { menus, ref, handleClick } = useMenus(specs);
|
|
79
|
-
return React.createElement(Menus, { menus: menus, innerRef: ref, handleClick: handleClick });
|
|
78
|
+
const { menus, ref, handleClick, closeAll } = useMenus(specs);
|
|
79
|
+
return (React.createElement(Menus, { menus: menus, innerRef: ref, handleClick: handleClick, closeAll: closeAll }));
|
|
80
80
|
};
|
|
81
81
|
//# sourceMappingURL=ManuscriptMenus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManuscriptMenus.js","sourceRoot":"","sources":["../../../../src/components/projects/ManuscriptMenus.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ManuscriptMenus.js","sourceRoot":"","sources":["../../../../src/components/projects/ManuscriptMenus.tsx"],"names":[],"mappings":"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"}
|
|
@@ -71,11 +71,19 @@ const ManuscriptPageView = () => {
|
|
|
71
71
|
React.createElement(MenusWrapper, null,
|
|
72
72
|
React.createElement(ManuscriptMenus, null),
|
|
73
73
|
savingProcess && React.createElement(SaveStatus, { status: savingProcess }))),
|
|
74
|
-
showTrackChangesToggle && (React.createElement(
|
|
74
|
+
showTrackChangesToggle && (React.createElement(TrackChangesToggleWrapper, { onKeyDown: (e) => {
|
|
75
|
+
if (e.key === 'Enter') {
|
|
76
|
+
e.preventDefault();
|
|
77
|
+
toggleTrackingChangesVisibility();
|
|
78
|
+
}
|
|
79
|
+
}, tabIndex: 0, role: "button", "aria-label": "show tracked changes", "aria-pressed": isTrackingChangesVisible },
|
|
75
80
|
React.createElement(Label, null, "Show tracked changes"),
|
|
76
|
-
React.createElement(IconButton, { defaultColor: true, onClick:
|
|
81
|
+
React.createElement(IconButton, { defaultColor: true, onClick: (e) => {
|
|
82
|
+
e.stopPropagation();
|
|
83
|
+
toggleTrackingChangesVisibility();
|
|
84
|
+
}, "aria-label": isTrackingChangesVisible
|
|
77
85
|
? 'Hide tracked changes'
|
|
78
|
-
: 'Show tracked changes' }, isTrackingChangesVisible ? (React.createElement(SliderOnIcon, null)) : (React.createElement(SliderOffIcon, null)))))),
|
|
86
|
+
: 'Show tracked changes', tabIndex: -1 }, isTrackingChangesVisible ? (React.createElement(SliderOnIcon, null)) : (React.createElement(SliderOffIcon, null)))))),
|
|
79
87
|
can.seeEditorToolbar && React.createElement(ManuscriptToolbar, null),
|
|
80
88
|
React.createElement(SearchReplace, null)),
|
|
81
89
|
React.createElement(EditorBody, { className: "editor-body" },
|
|
@@ -84,6 +92,18 @@ const ManuscriptPageView = () => {
|
|
|
84
92
|
React.createElement(Inspector, { "data-cy": "inspector" }),
|
|
85
93
|
React.createElement(UtilitiesEffects, null))));
|
|
86
94
|
};
|
|
95
|
+
const TrackChangesToggleWrapper = styled.div `
|
|
96
|
+
display: flex;
|
|
97
|
+
align-items: center;
|
|
98
|
+
cursor: pointer;
|
|
99
|
+
border-radius: 4px;
|
|
100
|
+
padding: 0px 8px;
|
|
101
|
+
|
|
102
|
+
&:focus-visible {
|
|
103
|
+
outline: 2px solid ${(props) => props.theme.colors.outline.focus};
|
|
104
|
+
outline-offset: -2px;
|
|
105
|
+
}
|
|
106
|
+
`;
|
|
87
107
|
const Label = styled.div `
|
|
88
108
|
padding-right: 8px;
|
|
89
109
|
white-space: nowrap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManuscriptPageContainer.js","sourceRoot":"","sources":["../../../../src/components/projects/ManuscriptPageContainer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,4CAA4C,CAAA;AACnD,OAAO,oDAAoD,CAAA;AAC3D,OAAO,4CAA4C,CAAA;AACnD,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAA;AACtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAA;AAC3E,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,GACf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,gBAAgB,MAAM,qBAAqB,CAAA;AAClD,OAAO,EACL,UAAU,EACV,eAAe,EACf,oBAAoB,EACpB,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,MAAM,uBAAuB,GAAa,GAAG,EAAE;IAC7C,mCAAmC;IACnC,0BAA0B,EAAE,CAAA;IAE5B,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC,GAAG,QAAQ,CACnE,CAAC,KAAK,EAAE,EAAE;QACR,OAAO;YACL,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAA;IACH,CAAC,CACF,CAAA;IAED,MAAM,GAAG,GAAG,iBAAiB,CAAC;QAC5B,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO;QAChB,gBAAgB;QAChB,aAAa;KACd,CAAC,CAAA;IAEF,OAAO,CACL,oBAAC,oBAAoB,IAAC,GAAG,EAAE,GAAG;QAC5B,oBAAC,kBAAkB,OAAG,CACD,CACxB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAa,GAAG,EAAE;IACxC,MAAM,GAAG,GAAG,cAAc,EAAE,CAAA;IAC5B,MAAM,CAAC,wBAAwB,EAAE,+BAA+B,CAAC,GAC/D,qBAAqB,EAAE,CAAA;IAEzB,MAAM,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,GAAG,QAAQ,CAClE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACV,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,eAAe,EAAE,KAAK,CAAC,eAAe;QACtC,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC,CACH,CAAA;IAED,MAAM,sBAAsB,GAAG,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,aAAa,CAAA;IACzE,MAAM,iBAAiB,GACrB,CAAC,sBAAsB,IAAI,wBAAwB,CAAC,IAAI,eAAe,CAAA;IAEzE,OAAO,CACL,oBAAC,OAAO,IAAC,SAAS,EAAE,GAAG,iBAAiB,IAAI,kBAAkB,EAAE;QAC9D,oBAAC,iBAAiB,eAAS,oBAAoB,GAAG;QAClD,oBAAC,WAAW;YACV,oBAAC,IAAI,eAAS,aAAa;gBACzB,oBAAC,eAAe;oBACd,oBAAC,oBAAoB;wBACnB,oBAAC,YAAY,eAAS,eAAe;4BACnC,oBAAC,wBAAwB;gCACvB,oBAAC,6BAA6B;oCAC5B,oBAAC,YAAY;wCACX,oBAAC,eAAe,OAAG;wCAClB,aAAa,IAAI,oBAAC,UAAU,IAAC,MAAM,EAAE,aAAa,GAAI,CAC1C,CACe;gCAE/B,sBAAsB,IAAI,CACzB;
|
|
1
|
+
{"version":3,"file":"ManuscriptPageContainer.js","sourceRoot":"","sources":["../../../../src/components/projects/ManuscriptPageContainer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import { templateAllows, toolbar, TypeSelector, } from '@manuscripts/body-editor';
|
|
13
13
|
import { Tooltip } from '@manuscripts/style-guide';
|
|
14
14
|
import { schema } from '@manuscripts/transform';
|
|
15
|
-
import React from 'react';
|
|
15
|
+
import React, { useCallback, useLayoutEffect, useRef } from 'react';
|
|
16
16
|
import styled from 'styled-components';
|
|
17
17
|
import { usePermissions } from '../../lib/capabilities';
|
|
18
18
|
import { useStore } from '../../store';
|
|
@@ -23,6 +23,7 @@ export const ToolbarItem = styled.div `
|
|
|
23
23
|
`;
|
|
24
24
|
const ToolbarButton = styled.button.attrs({
|
|
25
25
|
type: 'button',
|
|
26
|
+
'data-toolbar-button': true,
|
|
26
27
|
}) `
|
|
27
28
|
background-color: ${(props) => props['data-active'] ? '#eee' : props.theme.colors.background.primary};
|
|
28
29
|
border: 1px solid ${(props) => props.theme.colors.border.secondary};
|
|
@@ -47,6 +48,11 @@ const ToolbarButton = styled.button.attrs({
|
|
|
47
48
|
opacity: 0.2;
|
|
48
49
|
cursor: not-allowed;
|
|
49
50
|
}
|
|
51
|
+
|
|
52
|
+
&:focus-visible {
|
|
53
|
+
outline: 2px solid ${(props) => props.theme.colors.outline.focus};
|
|
54
|
+
outline-offset: -2px;
|
|
55
|
+
}
|
|
50
56
|
`;
|
|
51
57
|
export const ToolbarContainer = styled.div `
|
|
52
58
|
margin: ${(props) => props.theme.grid.unit}px;
|
|
@@ -88,9 +94,27 @@ export const ToolbarGroup = styled.div `
|
|
|
88
94
|
`;
|
|
89
95
|
export const ManuscriptToolbar = () => {
|
|
90
96
|
const can = usePermissions();
|
|
97
|
+
const containerRef = useRef(null);
|
|
91
98
|
const [{ editor }] = useStore((store) => ({
|
|
92
99
|
editor: store.editor,
|
|
93
100
|
}));
|
|
101
|
+
// Get all enabled toolbar buttons
|
|
102
|
+
const getButtons = useCallback(() => {
|
|
103
|
+
if (!containerRef.current) {
|
|
104
|
+
return [];
|
|
105
|
+
}
|
|
106
|
+
return Array.from(containerRef.current.querySelectorAll('[data-toolbar-button]:not([disabled]):not([aria-disabled="true"])'));
|
|
107
|
+
}, []);
|
|
108
|
+
// Roving tabindex: only first button is tabbable, rest are -1
|
|
109
|
+
useLayoutEffect(() => {
|
|
110
|
+
const buttons = getButtons();
|
|
111
|
+
if (buttons.length === 0) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
buttons.forEach((button, index) => {
|
|
115
|
+
button.tabIndex = index === 0 ? 0 : -1;
|
|
116
|
+
});
|
|
117
|
+
}, [getButtons, editor]);
|
|
94
118
|
if (!editor || !editor.view) {
|
|
95
119
|
return null;
|
|
96
120
|
}
|
|
@@ -99,7 +123,34 @@ export const ManuscriptToolbar = () => {
|
|
|
99
123
|
const isEnabled = (id, item, state) => {
|
|
100
124
|
return item.isEnabled(state);
|
|
101
125
|
};
|
|
102
|
-
|
|
126
|
+
const handleKeyDown = (event) => {
|
|
127
|
+
if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const target = event.target;
|
|
131
|
+
// Only handle if a button is currently focused
|
|
132
|
+
if (!target.hasAttribute('data-toolbar-button')) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const buttons = getButtons();
|
|
136
|
+
if (buttons.length === 0) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const currentIndex = buttons.indexOf(target);
|
|
140
|
+
if (currentIndex === -1) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
event.preventDefault();
|
|
144
|
+
let nextIndex;
|
|
145
|
+
if (event.key === 'ArrowRight') {
|
|
146
|
+
nextIndex = (currentIndex + 1) % buttons.length;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
nextIndex = (currentIndex - 1 + buttons.length) % buttons.length;
|
|
150
|
+
}
|
|
151
|
+
buttons[nextIndex]?.focus();
|
|
152
|
+
};
|
|
153
|
+
return (React.createElement(ToolbarContainer, { "data-cy": "toolbar", ref: containerRef, onKeyDown: handleKeyDown },
|
|
103
154
|
React.createElement(ToolbarGroup, null,
|
|
104
155
|
React.createElement(TypeSelector, { state: state, dispatch: view.dispatch, view: view })),
|
|
105
156
|
Object.entries(toolbar).map(([groupKey, group]) => (React.createElement(ToolbarGroup, { key: groupKey }, Object.entries(group)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManuscriptToolbar.js","sourceRoot":"","sources":["../../../../src/components/projects/ManuscriptToolbar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,cAAc,EACd,OAAO,EAEP,YAAY,GACb,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ManuscriptToolbar.js","sourceRoot":"","sources":["../../../../src/components/projects/ManuscriptToolbar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,cAAc,EACd,OAAO,EAEP,YAAY,GACb,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACnE,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAA;;;CAGpC,CAAA;AAED,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;IACxC,IAAI,EAAE,QAAQ;IACd,qBAAqB,EAAE,IAAI;CAC5B,CAAC,CAEA;sBACoB,CAAC,KAAK,EAAE,EAAE,CAC5B,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO;sBACnD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS;;aAEvD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;MAC/C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;;;;;;;kBAO5B,CAAC,KAAK,EAAE,EAAE,CACtB,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS;;;;;;;;;;;;;;yBAcpD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;;;CAGnE,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAA;YAC9B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;;;;SAInC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;;eAE9B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc;;aAE5C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG;MAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;MACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG;MACtC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE;;CAE1C,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;;MAIhC,WAAW;;;;;MAKX,WAAW;;;;MAIX,WAAW;8BACa,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;iCACrC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;;;MAGnE,WAAW;+BACc,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;kCACrC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;;CAEzE,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAa,GAAG,EAAE;IAC9C,MAAM,GAAG,GAAG,cAAc,EAAE,CAAA;IAC5B,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAEjD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAC,CAAA;IAEH,kCAAkC;IAClC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CACf,YAAY,CAAC,OAAO,CAAC,gBAAgB,CACnC,mEAAmE,CACpE,CACF,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,8DAA8D;IAC9D,eAAe,CAAC,GAAG,EAAE;QACnB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;QAC5B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAM;QACR,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,CAAC,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA;IAExB,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;IACxB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IAE1B,MAAM,SAAS,GAAG,CAChB,EAAU,EACV,IAAyB,EACzB,KAAkB,EAClB,EAAE;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,KAA0C,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;YAC5D,OAAM;QACR,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAA;QAC1C,+CAA+C;QAC/C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAChD,OAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;QAC5B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAM;QACR,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,MAA2B,CAAC,CAAA;QACjE,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,OAAM;QACR,CAAC;QAED,KAAK,CAAC,cAAc,EAAE,CAAA;QAEtB,IAAI,SAAiB,CAAA;QACrB,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;YAC/B,SAAS,GAAG,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAA;QACjD,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,CAAC,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAA;QAClE,CAAC;QAED,OAAO,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAA;IAC7B,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,gBAAgB,eACP,SAAS,EACjB,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,aAAa;QAExB,oBAAC,YAAY;YACX,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAI,CACtD;QAEd,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAClD,oBAAC,YAAY,IAAC,GAAG,EAAE,QAAQ,IACxB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aACnB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;YAChB,QAAQ,GAAG,EAAE,CAAC;gBACZ,KAAK,SAAS;oBACZ,OAAO,GAAG,CAAC,iBAAiB,CAAA;gBAC9B;oBACE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wBAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;wBAClC,OAAO,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;oBAC1D,CAAC;oBACD,OAAO,IAAI,CAAA;YACf,CAAC;QACH,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CACnB,GAAG,KAAK,cAAc,IAAI,GAAG,KAAK,aAAa,CAAC,CAAC,CAAC,CAChD,oBAAC,eAAe,IACd,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,IAAI,GACZ,CACH,CAAC,CAAC,CAAC,CACF,oBAAC,WAAW,IAAC,GAAG,EAAE,GAAG;YACnB,oBAAC,aAAa,uBACK,IAAI,CAAC,KAAK,iBACd,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAClD,QAAQ,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,EACtC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACb,CAAC,CAAC,cAAc,EAAE,CAAA;oBAClB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;oBACpC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAA;gBACtB,CAAC,gBACW,IAAI,CAAC,KAAK,IAErB,IAAI,CAAC,OAAO,CACC;YAChB,oBAAC,OAAO,IAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAC,QAAQ,IACpC,IAAI,CAAC,KAAK,CACH,CACE,CACf,CACF,CACU,CAChB,CAAC,CACe,CACpB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -42,7 +42,7 @@ const ApproveAllButton = ({ approveAll }) => {
|
|
|
42
42
|
React.createElement(StyledButton, { onClick: (event) => {
|
|
43
43
|
event.stopPropagation();
|
|
44
44
|
setOpenDialog(true);
|
|
45
|
-
} }, "Approve all"),
|
|
45
|
+
}, tabIndex: 0 }, "Approve all"),
|
|
46
46
|
openDialog && (React.createElement(Dialog, { isOpen: openDialog, actions: approveAllDialogActions, category: Category.confirmation, header: 'Are you sure you want to approve all the suggestions?', message: 'By that, all pending suggestions will be applied to the document.' }))));
|
|
47
47
|
};
|
|
48
48
|
export default ApproveAllButton;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApproveAllButton.js","sourceRoot":"","sources":["../../../../src/components/track-changes/ApproveAllButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACvE,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;eACxB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;WAC3C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;;kBAEpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;;;;aAIzC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;;CAEvD,CAAA;AACD,MAAM,gBAAgB,GAEjB,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IACtB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEnD,MAAM,uBAAuB,GAAG;QAC9B,OAAO,EAAE;YACP,MAAM,EAAE,GAAG,EAAE;gBACX,UAAU,EAAE,CAAA;gBACZ,aAAa,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC;YACD,KAAK,EAAE,SAAS;SACjB;QACD,SAAS,EAAE;YACT,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,QAAQ;SAChB;KACF,CAAA;IAED,OAAO,CACL;QACE,oBAAC,YAAY,IACX,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,KAAK,CAAC,eAAe,EAAE,CAAA;gBACvB,aAAa,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC,
|
|
1
|
+
{"version":3,"file":"ApproveAllButton.js","sourceRoot":"","sources":["../../../../src/components/track-changes/ApproveAllButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACvE,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;eACxB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;WAC3C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;;kBAEpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;;;;aAIzC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;;CAEvD,CAAA;AACD,MAAM,gBAAgB,GAEjB,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IACtB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEnD,MAAM,uBAAuB,GAAG;QAC9B,OAAO,EAAE;YACP,MAAM,EAAE,GAAG,EAAE;gBACX,UAAU,EAAE,CAAA;gBACZ,aAAa,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC;YACD,KAAK,EAAE,SAAS;SACjB;QACD,SAAS,EAAE;YACT,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;YAClC,KAAK,EAAE,QAAQ;SAChB;KACF,CAAA;IAED,OAAO,CACL;QACE,oBAAC,YAAY,IACX,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,KAAK,CAAC,eAAe,EAAE,CAAA;gBACvB,aAAa,CAAC,IAAI,CAAC,CAAA;YACrB,CAAC,EACD,QAAQ,EAAE,CAAC,kBAGE;QACd,UAAU,IAAI,CACb,oBAAC,MAAM,IACL,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,uBAAuB,EAChC,QAAQ,EAAE,QAAQ,CAAC,YAAY,EAC/B,MAAM,EAAE,uDAAuD,EAC/D,OAAO,EACL,mEAAmE,GAErE,CACH,CACA,CACJ,CAAA;AACH,CAAC,CAAA;AAED,eAAe,gBAAgB,CAAA"}
|
|
@@ -10,27 +10,56 @@
|
|
|
10
10
|
* All portions of the code written by Atypon Systems LLC are Copyright (c) 2019 Atypon Systems LLC. All Rights Reserved.
|
|
11
11
|
*/
|
|
12
12
|
import { SecondaryButton, useDropdown } from '@manuscripts/style-guide';
|
|
13
|
-
import React from 'react';
|
|
13
|
+
import React, { useEffect, useRef } from 'react';
|
|
14
14
|
import styled, { css } from 'styled-components';
|
|
15
15
|
import { Dropdown, DropdownButtonContainer, DropdownContainer, DropdownToggle, } from '../nav/Dropdown';
|
|
16
16
|
export const SortByDropdown = ({ sortBy, setSortBy }) => {
|
|
17
17
|
const { isOpen, toggleOpen, wrapperRef } = useDropdown();
|
|
18
|
+
const toggleButtonRef = useRef(null);
|
|
19
|
+
const optionRefs = useRef([]);
|
|
20
|
+
const options = ['Date', 'in Context'];
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (isOpen) {
|
|
23
|
+
optionRefs.current[0]?.focus();
|
|
24
|
+
}
|
|
25
|
+
}, [isOpen]);
|
|
26
|
+
const handleDropdownKeyDown = (e) => {
|
|
27
|
+
const buttons = optionRefs.current;
|
|
28
|
+
const currentIndex = Array.from(buttons).indexOf(document.activeElement);
|
|
29
|
+
switch (e.key) {
|
|
30
|
+
case 'ArrowDown':
|
|
31
|
+
e.preventDefault();
|
|
32
|
+
buttons[(currentIndex + 1) % buttons.length]?.focus();
|
|
33
|
+
break;
|
|
34
|
+
case 'ArrowUp':
|
|
35
|
+
e.preventDefault();
|
|
36
|
+
buttons[(currentIndex - 1 + buttons.length) % buttons.length]?.focus();
|
|
37
|
+
break;
|
|
38
|
+
case 'Escape':
|
|
39
|
+
e.preventDefault();
|
|
40
|
+
toggleOpen();
|
|
41
|
+
toggleButtonRef.current?.focus();
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
18
45
|
return (React.createElement(React.Fragment, null,
|
|
19
46
|
React.createElement(Container, { ref: wrapperRef },
|
|
20
|
-
React.createElement(DropdownButtonContainer, { isOpen: isOpen, onClick: toggleOpen,
|
|
47
|
+
React.createElement(DropdownButtonContainer, { ref: toggleButtonRef, isOpen: isOpen, onClick: toggleOpen, onKeyDown: (e) => {
|
|
48
|
+
if (e.key === 'ArrowDown') {
|
|
49
|
+
toggleOpen();
|
|
50
|
+
}
|
|
51
|
+
}, className: 'dropdown-toggle', tabIndex: 0 },
|
|
21
52
|
React.createElement(Label, null,
|
|
22
53
|
"Sorted by:",
|
|
23
54
|
React.createElement(Bold, null, sortBy),
|
|
24
55
|
React.createElement(DropdownToggle, { className: isOpen ? 'open' : '' }))),
|
|
25
|
-
isOpen && (React.createElement(DropdownList, { direction: 'right', minWidth: 100 },
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
toggleOpen();
|
|
33
|
-
}, key: 'in Context', value: 'in Context' }, "in Context")))),
|
|
56
|
+
isOpen && (React.createElement(DropdownList, { direction: 'right', minWidth: 100, onKeyDown: handleDropdownKeyDown }, options.map((opt, index) => (React.createElement(Option, { key: opt, value: opt, ref: (el) => {
|
|
57
|
+
if (el)
|
|
58
|
+
optionRefs.current[index] = el;
|
|
59
|
+
}, onClick: () => {
|
|
60
|
+
setSortBy(opt);
|
|
61
|
+
toggleOpen();
|
|
62
|
+
} }, opt)))))),
|
|
34
63
|
React.createElement(SeparatorLine, null)));
|
|
35
64
|
};
|
|
36
65
|
const SeparatorLine = styled.div `
|
|
@@ -56,6 +85,11 @@ const Container = styled(DropdownContainer) `
|
|
|
56
85
|
.dropdown-toggle {
|
|
57
86
|
border: none;
|
|
58
87
|
background: transparent !important;
|
|
88
|
+
|
|
89
|
+
&:focus-visible {
|
|
90
|
+
outline: 2px solid ${(props) => props.theme.colors.outline.focus};
|
|
91
|
+
outline-offset: 2px;
|
|
92
|
+
}
|
|
59
93
|
}
|
|
60
94
|
`;
|
|
61
95
|
const Option = styled(SecondaryButton) `
|
|
@@ -63,10 +97,16 @@ const Option = styled(SecondaryButton) `
|
|
|
63
97
|
text-align: left;
|
|
64
98
|
display: block;
|
|
65
99
|
border: none;
|
|
66
|
-
&:not([disabled]):hover
|
|
100
|
+
&:not([disabled]):hover,
|
|
101
|
+
&:not([disabled]):focus {
|
|
67
102
|
background: ${(props) => props.theme.colors.background.fifth} !important;
|
|
68
103
|
color: ${(props) => props.theme.colors.button.secondary.color.default} !important;
|
|
69
104
|
}
|
|
105
|
+
|
|
106
|
+
&:focus-visible {
|
|
107
|
+
outline: 2px solid ${(props) => props.theme.colors.outline.focus};
|
|
108
|
+
outline-offset: -2px;
|
|
109
|
+
}
|
|
70
110
|
`;
|
|
71
111
|
const DropdownList = styled(Dropdown) `
|
|
72
112
|
padding: ${(props) => props.theme.grid.unit * 2}px 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortByDropdown.js","sourceRoot":"","sources":["../../../../src/components/track-changes/SortByDropdown.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACvE,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"SortByDropdown.js","sourceRoot":"","sources":["../../../../src/components/track-changes/SortByDropdown.tsx"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,18 @@ import styled from 'styled-components';
|
|
|
14
14
|
import { scrollIntoView } from '../../../lib/utils';
|
|
15
15
|
import { useStore } from '../../../store';
|
|
16
16
|
import TrackModal from '../TrackModal';
|
|
17
|
-
import { SuggestionSnippet } from './SuggestionSnippet';
|
|
18
|
-
export const Suggestion = ({ suggestions, isSelected, onAccept, onReject, onSelect, }) => {
|
|
17
|
+
import { Card, CardActions, SuggestionSnippet } from './SuggestionSnippet';
|
|
18
|
+
export const Suggestion = ({ suggestions, isSelected, onAccept, onReject, onSelect, isTabbable, cardLinkRef, }) => {
|
|
19
19
|
const wrapperRef = useRef(null);
|
|
20
|
+
const linkRef = useRef(null);
|
|
21
|
+
const actionButtonRefs = useRef([]);
|
|
22
|
+
const setLinkRef = (el) => {
|
|
23
|
+
linkRef.current = el;
|
|
24
|
+
cardLinkRef?.(el);
|
|
25
|
+
};
|
|
26
|
+
const setActionButtonRef = (el, index) => {
|
|
27
|
+
actionButtonRefs.current[index] = el;
|
|
28
|
+
};
|
|
20
29
|
const [trackModalVisible, setModalVisible] = useState(false);
|
|
21
30
|
const [{ isComparingMode, isTrackingChangesVisible }] = useStore((store) => ({
|
|
22
31
|
isComparingMode: store.isComparingMode,
|
|
@@ -32,21 +41,83 @@ export const Suggestion = ({ suggestions, isSelected, onAccept, onReject, onSele
|
|
|
32
41
|
onSelect();
|
|
33
42
|
}
|
|
34
43
|
};
|
|
44
|
+
const handleKeyDown = (e) => {
|
|
45
|
+
// Only handle horizontal navigation (Left/Right)
|
|
46
|
+
// Let vertical navigation (Up/Down) bubble to parent SuggestionList
|
|
47
|
+
if (!['ArrowLeft', 'ArrowRight'].includes(e.key)) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const actionButtons = actionButtonRefs.current.filter(Boolean);
|
|
51
|
+
if (actionButtons.length === 0) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const currentElement = document.activeElement;
|
|
55
|
+
// If on the card link and arrow right is pressed, move to first action button
|
|
56
|
+
if (currentElement === linkRef.current && e.key === 'ArrowRight') {
|
|
57
|
+
e.preventDefault();
|
|
58
|
+
e.stopPropagation();
|
|
59
|
+
actionButtons[0]?.focus();
|
|
60
|
+
}
|
|
61
|
+
// If on an action button, navigate between them
|
|
62
|
+
else if (actionButtons.includes(currentElement)) {
|
|
63
|
+
const currentIndex = actionButtons.indexOf(currentElement);
|
|
64
|
+
if (e.key === 'ArrowLeft') {
|
|
65
|
+
e.preventDefault();
|
|
66
|
+
e.stopPropagation();
|
|
67
|
+
if (currentIndex === 0) {
|
|
68
|
+
linkRef.current?.focus();
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
actionButtons[currentIndex - 1]?.focus();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (e.key === 'ArrowRight') {
|
|
75
|
+
e.preventDefault();
|
|
76
|
+
e.stopPropagation();
|
|
77
|
+
if (currentIndex < actionButtons.length - 1) {
|
|
78
|
+
actionButtons[currentIndex + 1]?.focus();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
};
|
|
35
83
|
useEffect(() => {
|
|
36
84
|
if (isSelected && wrapperRef.current) {
|
|
37
85
|
scrollIntoView(wrapperRef.current);
|
|
38
86
|
}
|
|
39
87
|
}, [isSelected]);
|
|
40
|
-
return (React.createElement(Wrapper, { "data-cy": "suggestion", isFocused: isSelected, ref: wrapperRef },
|
|
41
|
-
React.createElement(FocusHandle, {
|
|
42
|
-
|
|
88
|
+
return (React.createElement(Wrapper, { "data-cy": "suggestion", isFocused: isSelected, ref: wrapperRef, onKeyDown: handleKeyDown },
|
|
89
|
+
React.createElement(FocusHandle, { ref: setLinkRef, tabIndex: isTabbable ? 0 : -1, isTrackingChangesVisible: isTrackingChangesVisible, onClick: handleClick, onKeyDown: (e) => {
|
|
90
|
+
if (e.target !== e.currentTarget) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (e.key === 'Enter') {
|
|
94
|
+
e.preventDefault();
|
|
95
|
+
handleClick(e);
|
|
96
|
+
}
|
|
97
|
+
} },
|
|
98
|
+
React.createElement(SuggestionSnippet, { suggestions: suggestions, isComparingMode: isComparingMode, isFocused: isSelected, handleAccept: onAccept, handleReject: onReject, isTrackingChangesVisible: isTrackingChangesVisible, actionButtonRefs: setActionButtonRef })),
|
|
43
99
|
trackModalVisible && (React.createElement(TrackModal, { ref: wrapperRef, isVisible: trackModalVisible, changeId: suggestions[0].id, setVisible: setModalVisible }))));
|
|
44
100
|
};
|
|
45
101
|
const Wrapper = styled.li ``;
|
|
46
102
|
const FocusHandle = styled.a `
|
|
47
103
|
color: inherit;
|
|
48
|
-
text-decoration: none;
|
|
49
104
|
overflow: hidden;
|
|
50
105
|
cursor: ${(props) => props.isTrackingChangesVisible ? 'pointer' : 'default'};
|
|
106
|
+
|
|
107
|
+
&:focus {
|
|
108
|
+
outline: none;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
${(props) => props.isTrackingChangesVisible
|
|
112
|
+
? `&:focus ${Card},
|
|
113
|
+
&:focus-within ${Card} {
|
|
114
|
+
background: ${props.theme.colors.background.tracked.hover};
|
|
115
|
+
|
|
116
|
+
${CardActions} {
|
|
117
|
+
opacity: 1;
|
|
118
|
+
pointer-events: auto;
|
|
119
|
+
}
|
|
120
|
+
}`
|
|
121
|
+
: ''}
|
|
51
122
|
`;
|
|
52
123
|
//# sourceMappingURL=Suggestion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Suggestion.js","sourceRoot":"","sources":["../../../../../src/components/track-changes/suggestion-list/Suggestion.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,UAAU,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"Suggestion.js","sourceRoot":"","sources":["../../../../../src/components/track-changes/suggestion-list/Suggestion.tsx"],"names":[],"mappings":"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"}
|