@redocly/theme 0.25.1 → 0.25.3
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/lib/components/Catalog/Catalog.js +1 -4
- package/lib/components/CopyButton/CopyButton.js +2 -7
- package/lib/components/EditPageButton/EditPageButton.js +1 -4
- package/lib/components/Feedback/Comment.js +4 -10
- package/lib/components/Feedback/Mood.js +6 -13
- package/lib/components/Feedback/Rating.js +2 -6
- package/lib/components/Feedback/Reasons.js +4 -9
- package/lib/components/Feedback/Sentiment.js +4 -10
- package/lib/components/Feedback/Thumbs.js +2 -8
- package/lib/components/Feedback/useReportDialog.js +3 -8
- package/lib/components/Filter/Filter.js +1 -5
- package/lib/components/Filter/FilterContent.js +2 -6
- package/lib/components/Filter/FilterPopover.js +2 -6
- package/lib/components/Footer/FooterCopyright.js +2 -5
- package/lib/components/LastUpdated/LastUpdated.js +1 -1
- package/lib/components/Markdown/styledVariables.js +54 -0
- package/lib/components/Menu/hooks/use-mobile-menu-items.js +1 -4
- package/lib/components/Menu/hooks/use-mobile-menu-levels.js +2 -6
- package/lib/components/Menu/utils.d.ts +2 -1
- package/lib/components/Profile/LoginLink.js +2 -5
- package/lib/components/Profile/MobileUserProfile.js +1 -4
- package/lib/components/Profile/UserProfile.js +3 -7
- package/lib/components/Search/CancelSearch.js +1 -4
- package/lib/components/Search/RecentSearches.js +1 -4
- package/lib/components/Search/SearchDialog.js +4 -10
- package/lib/components/Search/SearchTrigger.js +1 -4
- package/lib/components/Search/SuggestedPages.js +1 -4
- package/lib/components/Sidebar/DrilldownMenu.js +2 -5
- package/lib/components/Sidebar/VersionPicker.js +2 -6
- package/lib/components/TableOfContent/TableOfContent.js +1 -4
- package/lib/components/Tabs/Tab.js +30 -6
- package/lib/components/Tabs/Tabs.js +22 -8
- package/lib/layouts/Forbidden.js +2 -6
- package/lib/layouts/NotFound.js +2 -6
- package/lib/layouts/OIDCForbidden.js +1 -4
- package/lib/mocks/hooks/index.d.ts +3 -2
- package/lib/mocks/hooks/index.js +3 -4
- package/package.json +2 -2
- package/src/components/Catalog/Catalog.tsx +1 -4
- package/src/components/CopyButton/CopyButton.tsx +3 -8
- package/src/components/EditPageButton/EditPageButton.tsx +2 -5
- package/src/components/Feedback/Comment.tsx +14 -14
- package/src/components/Feedback/Mood.tsx +14 -15
- package/src/components/Feedback/Rating.tsx +4 -8
- package/src/components/Feedback/Reasons.tsx +6 -11
- package/src/components/Feedback/Sentiment.tsx +6 -12
- package/src/components/Feedback/Thumbs.tsx +2 -9
- package/src/components/Feedback/useReportDialog.ts +3 -8
- package/src/components/Filter/Filter.tsx +3 -5
- package/src/components/Filter/FilterContent.tsx +2 -6
- package/src/components/Filter/FilterPopover.tsx +2 -6
- package/src/components/Footer/FooterCopyright.tsx +2 -5
- package/src/components/LastUpdated/LastUpdated.tsx +1 -1
- package/src/components/Markdown/styledVariables.ts +54 -0
- package/src/components/Menu/hooks/use-mobile-menu-items.ts +1 -5
- package/src/components/Menu/hooks/use-mobile-menu-levels.ts +2 -7
- package/src/components/Menu/utils.ts +2 -1
- package/src/components/Profile/LoginLink.tsx +2 -5
- package/src/components/Profile/MobileUserProfile.tsx +1 -4
- package/src/components/Profile/UserProfile.tsx +5 -8
- package/src/components/Search/CancelSearch.tsx +2 -5
- package/src/components/Search/RecentSearches.tsx +2 -5
- package/src/components/Search/SearchDialog.tsx +8 -15
- package/src/components/Search/SearchTrigger.tsx +3 -5
- package/src/components/Search/SuggestedPages.tsx +2 -6
- package/src/components/Sidebar/DrilldownMenu.tsx +2 -5
- package/src/components/Sidebar/VersionPicker.tsx +3 -7
- package/src/components/TableOfContent/TableOfContent.tsx +2 -5
- package/src/components/Tabs/Tab.tsx +30 -6
- package/src/components/Tabs/Tabs.tsx +22 -8
- package/src/layouts/Forbidden.tsx +4 -13
- package/src/layouts/NotFound.tsx +4 -13
- package/src/layouts/OIDCForbidden.tsx +2 -6
- package/src/mocks/hooks/index.ts +7 -6
|
@@ -21,15 +21,12 @@ function Catalog(props) {
|
|
|
21
21
|
const items = (0, index_1.usePageSharedData)('catalog');
|
|
22
22
|
const { filterTerm, setFilterTerm, groups, filters } = (0, Catalog_1.useCatalog)(items, catalogConfig);
|
|
23
23
|
const [isAddingFilter, setIsAddingFilter] = react_1.default.useState(false);
|
|
24
|
-
const translationKeys = {
|
|
25
|
-
addFilter: 'theme.catalog.filters.select.addFilter',
|
|
26
|
-
};
|
|
27
24
|
const { translate } = (0, index_1.useTranslate)();
|
|
28
25
|
(0, useModalScrollLock_1.default)(isAddingFilter);
|
|
29
26
|
return (react_1.default.createElement(Highlight_1.HighlightContext.Provider, { value: [filterTerm] },
|
|
30
27
|
react_1.default.createElement(exports.CatalogPageWrapper, { withoutFilters: !filters.length },
|
|
31
28
|
!!filters.length && (react_1.default.createElement(FilterTagsWrapper, null,
|
|
32
|
-
react_1.default.createElement(Button_1.Button, { variant: "text", size: "small", icon: react_1.default.createElement(PlusIcon_1.PlusIcon, null), onClick: () => setIsAddingFilter(true) }, translate(
|
|
29
|
+
react_1.default.createElement(Button_1.Button, { variant: "text", size: "small", icon: react_1.default.createElement(PlusIcon_1.PlusIcon, null), onClick: () => setIsAddingFilter(true) }, translate('theme.catalog.filters.select.addFilter', 'Add filter')),
|
|
33
30
|
react_1.default.createElement(FilterTags_1.FilterTags, { filters: filters }))),
|
|
34
31
|
react_1.default.createElement(FilterContent_1.FilterContent, { setFilterTerm: setFilterTerm, filters: filters, filterTerm: filterTerm, isMobile: false, filterValuesCasing: catalogConfig.filterValuesCasing }),
|
|
35
32
|
isAddingFilter && (react_1.default.createElement(FilterPopover_1.FilterPopover, { setIsAddingFilter: setIsAddingFilter, filters: filters, filterValuesCasing: catalogConfig.filterValuesCasing })),
|
|
@@ -34,11 +34,6 @@ const hooks_2 = require("../../mocks/hooks");
|
|
|
34
34
|
function CopyButtonComponent({ data, type = 'icon', toasterPlacement = 'top', toasterText, toasterDuration, buttonText, tooltipText, onCopyClick, dataTestId = 'copy-button', }) {
|
|
35
35
|
const tooltip = (0, hooks_1.useControl)();
|
|
36
36
|
const { translate } = (0, hooks_2.useTranslate)();
|
|
37
|
-
const translationKeys = {
|
|
38
|
-
buttonText: 'theme.codeSnippet.copy.buttonText',
|
|
39
|
-
tooltipText: 'theme.codeSnippet.copy.tooltipText',
|
|
40
|
-
toasterText: 'theme.codeSnippet.copy.toasterText',
|
|
41
|
-
};
|
|
42
37
|
const showTooltip = (duration = 1500) => {
|
|
43
38
|
tooltip.handleOpen();
|
|
44
39
|
setTimeout(() => {
|
|
@@ -51,8 +46,8 @@ function CopyButtonComponent({ data, type = 'icon', toasterPlacement = 'top', to
|
|
|
51
46
|
showTooltip(duration);
|
|
52
47
|
onCopyClick === null || onCopyClick === void 0 ? void 0 : onCopyClick();
|
|
53
48
|
};
|
|
54
|
-
return (react_1.default.createElement(Tooltip_1.Tooltip, { className: "copy-button", tip: translate(
|
|
55
|
-
react_1.default.createElement(CodeBlock_1.CodeBlockControlButton, { onClick: () => copy(toasterDuration), "data-cy": dataTestId, asIcon: type === 'icon', title: translate(
|
|
49
|
+
return (react_1.default.createElement(Tooltip_1.Tooltip, { className: "copy-button", tip: translate('theme.codeSnippet.copy.buttonText', toasterText || 'Copied!'), isOpen: tooltip.isOpened, placement: toasterPlacement },
|
|
50
|
+
react_1.default.createElement(CodeBlock_1.CodeBlockControlButton, { onClick: () => copy(toasterDuration), "data-cy": dataTestId, asIcon: type === 'icon', title: translate('theme.codeSnippet.copy.tooltipText', tooltipText || 'Copy to clipboard'), "data-testid": dataTestId }, type === 'icon' ? (react_1.default.createElement(icons_1.CopyIcon, null)) : (translate('theme.codeSnippet.copy.toasterText', buttonText || 'Copy')))));
|
|
56
51
|
}
|
|
57
52
|
exports.CopyButton = (0, react_1.memo)(CopyButtonComponent);
|
|
58
53
|
//# sourceMappingURL=CopyButton.js.map
|
|
@@ -12,12 +12,9 @@ const icons_1 = require("../../icons");
|
|
|
12
12
|
const hooks_1 = require("../../mocks/hooks");
|
|
13
13
|
const EditPageButton = ({ to }) => {
|
|
14
14
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
15
|
-
const translationKeys = {
|
|
16
|
-
text: 'theme.markdown.editPage.text',
|
|
17
|
-
};
|
|
18
15
|
return (react_1.default.createElement(EditButton, { "data-component-name": "EditPageButton/EditPageButton", to: to, onClick: () => telemetry_1.telemetry.send('edit_page_link_clicked', {}) },
|
|
19
16
|
react_1.default.createElement(ButtonIcon, null),
|
|
20
|
-
react_1.default.createElement(ButtonText, { "data-translation-key":
|
|
17
|
+
react_1.default.createElement(ButtonText, { "data-translation-key": "theme.markdown.editPage.text" }, translate('theme.markdown.editPage.text', 'Edit'))));
|
|
21
18
|
};
|
|
22
19
|
exports.EditPageButton = EditPageButton;
|
|
23
20
|
const EditButton = (0, styled_components_1.default)(Link_1.Link) `
|
|
@@ -36,12 +36,6 @@ const Comment = ({ settings, onSubmit, onCancel, className }) => {
|
|
|
36
36
|
const [text, setText] = React.useState('');
|
|
37
37
|
const [submitValue, setSubmitValue] = React.useState('');
|
|
38
38
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
39
|
-
const translationKeys = {
|
|
40
|
-
submitText: 'theme.feedback.settings.comment.submitText',
|
|
41
|
-
label: 'theme.feedback.settings.comment.label',
|
|
42
|
-
send: 'theme.feedback.settings.comment.send',
|
|
43
|
-
cancel: 'theme.feedback.settings.comment.cancel',
|
|
44
|
-
};
|
|
45
39
|
const send = () => {
|
|
46
40
|
if (!text)
|
|
47
41
|
return;
|
|
@@ -53,14 +47,14 @@ const Comment = ({ settings, onSubmit, onCancel, className }) => {
|
|
|
53
47
|
};
|
|
54
48
|
if (submitValue) {
|
|
55
49
|
return (React.createElement(Wrapper, { className: className },
|
|
56
|
-
React.createElement(Label, { "data-translation-key":
|
|
50
|
+
React.createElement(Label, { "data-translation-key": "theme.feedback.settings.comment.submitText" }, translate('theme.feedback.settings.comment.submitText', submitText || 'Thank you for helping improve our documentation!'))));
|
|
57
51
|
}
|
|
58
52
|
return (React.createElement(Wrapper, { "data-component-name": "Feedback/Comment", className: className },
|
|
59
|
-
React.createElement(Label, { "data-translation-key":
|
|
53
|
+
React.createElement(Label, { "data-translation-key": "theme.feedback.settings.comment.label" }, translate('theme.feedback.settings.comment.label', label || 'Please share your feedback with us.')),
|
|
60
54
|
React.createElement(TextArea, { rows: 3, onChange: handleTextAreaChange }),
|
|
61
55
|
React.createElement(ButtonsContainer, null,
|
|
62
|
-
React.createElement(SendButton, { "data-translation-key":
|
|
63
|
-
onCancel && (React.createElement(CancelButton, { "data-translation-key":
|
|
56
|
+
React.createElement(SendButton, { "data-translation-key": "theme.feedback.settings.comment.send", onClick: send }, translate('theme.feedback.settings.comment.send', 'Send')),
|
|
57
|
+
onCancel && (React.createElement(CancelButton, { "data-translation-key": "theme.feedback.settings.comment.cancel", onClick: onCancel }, translate('theme.feedback.settings.comment.cancel', 'Cancel'))))));
|
|
64
58
|
};
|
|
65
59
|
exports.Comment = Comment;
|
|
66
60
|
const Wrapper = styled_components_1.default.div `
|
|
@@ -45,13 +45,6 @@ const Mood = ({ settings, onSubmit, className }) => {
|
|
|
45
45
|
const [comment, setComment] = React.useState('');
|
|
46
46
|
const [reasons, setReasons] = React.useState([]);
|
|
47
47
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
48
|
-
const translationKeys = {
|
|
49
|
-
submitText: 'theme.feedback.settings.submitText',
|
|
50
|
-
label: 'theme.feedback.settings.label',
|
|
51
|
-
satisfiedLabel: 'theme.feedback.settings.comment.satisfiedLabel',
|
|
52
|
-
neutralLabel: 'theme.feedback.settings.comment.neutralLabel',
|
|
53
|
-
dissatisfiedLabel: 'theme.feedback.settings.comment.dissatisfiedLabel',
|
|
54
|
-
};
|
|
55
48
|
if (score && (reasonsSettings === null || reasonsSettings === void 0 ? void 0 : reasonsSettings.enable) && !reasons.length) {
|
|
56
49
|
const { label: reasonsLabel, items, multi } = reasonsSettings;
|
|
57
50
|
const buttonText = (commentSettings === null || commentSettings === void 0 ? void 0 : commentSettings.enable) ? 'Next' : 'Send';
|
|
@@ -61,13 +54,13 @@ const Mood = ({ settings, onSubmit, className }) => {
|
|
|
61
54
|
const renderCommentLabel = (score) => {
|
|
62
55
|
switch (score) {
|
|
63
56
|
case MOOD_STATES.SATISFIED:
|
|
64
|
-
return translate(
|
|
57
|
+
return translate('theme.feedback.settings.comment.satisfiedLabel', commentSettings.satisfiedLabel || 'What was most helpful?');
|
|
65
58
|
case MOOD_STATES.NEUTRAL:
|
|
66
|
-
return translate(
|
|
59
|
+
return translate('theme.feedback.settings.comment.neutralLabel', commentSettings.neutralLabel || 'What can we improve?');
|
|
67
60
|
case MOOD_STATES.DISSATISFIED:
|
|
68
|
-
return translate(
|
|
61
|
+
return translate('theme.feedback.settings.comment.dissatisfiedLabel', commentSettings.dissatisfiedLabel || 'What can we improve?');
|
|
69
62
|
default:
|
|
70
|
-
return translate(
|
|
63
|
+
return translate('theme.feedback.settings.comment.satisfiedLabel', 'What can we improve?');
|
|
71
64
|
}
|
|
72
65
|
};
|
|
73
66
|
return (React.createElement(Feedback_1.Comment, { onSubmit: ({ comment }) => setComment(comment), settings: { label: renderCommentLabel(score) } }));
|
|
@@ -82,10 +75,10 @@ const Mood = ({ settings, onSubmit, className }) => {
|
|
|
82
75
|
setIsSubmitted(true);
|
|
83
76
|
}
|
|
84
77
|
return (React.createElement(Wrapper, null,
|
|
85
|
-
React.createElement(Label, { "data-translation-key":
|
|
78
|
+
React.createElement(Label, { "data-translation-key": "theme.feedback.settings.submitText" }, translate('theme.feedback.settings.submitText', submitText || 'Thank you for your feedback!'))));
|
|
86
79
|
}
|
|
87
80
|
return (React.createElement(Wrapper, { "data-component-name": "Feedback/Mood", className: className },
|
|
88
|
-
React.createElement(Label, { "data-translation-key":
|
|
81
|
+
React.createElement(Label, { "data-translation-key": "theme.feedback.settings.label" }, translate('theme.feedback.settings.label', label || 'Was this page helpful?')),
|
|
89
82
|
React.createElement(Vote, { onClick: () => {
|
|
90
83
|
setScore(MOOD_STATES.DISSATISFIED);
|
|
91
84
|
} },
|
|
@@ -38,10 +38,6 @@ const Rating = ({ settings, onSubmit, className }) => {
|
|
|
38
38
|
const [comment, setComment] = React.useState('');
|
|
39
39
|
const [reasons, setReasons] = React.useState([]);
|
|
40
40
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
41
|
-
const translationKeys = {
|
|
42
|
-
submitText: 'theme.feedback.settings.submitText',
|
|
43
|
-
label: 'theme.feedback.settings.label',
|
|
44
|
-
};
|
|
45
41
|
const maxRating = max || 5;
|
|
46
42
|
if (score && (reasonsSettings === null || reasonsSettings === void 0 ? void 0 : reasonsSettings.enable) && !reasons.length) {
|
|
47
43
|
const { label: reasonsLabel, items, multi } = reasonsSettings;
|
|
@@ -62,10 +58,10 @@ const Rating = ({ settings, onSubmit, className }) => {
|
|
|
62
58
|
setIsSubmitted(true);
|
|
63
59
|
}
|
|
64
60
|
return (React.createElement(Wrapper, null,
|
|
65
|
-
React.createElement(Label, { "data-translation-key":
|
|
61
|
+
React.createElement(Label, { "data-translation-key": "theme.feedback.settings.submitText" }, translate('theme.feedback.settings.submitText', submitText || 'Thank you for helping improve our documentation!'))));
|
|
66
62
|
}
|
|
67
63
|
return (React.createElement(Wrapper, { "data-component-name": "Feedback/Rating", className: className },
|
|
68
|
-
React.createElement(Label, { "data-translation-key":
|
|
64
|
+
React.createElement(Label, { "data-translation-key": "theme.feedback.settings.label" }, translate('theme.feedback.settings.label', label || 'How helpful was this page?')),
|
|
69
65
|
React.createElement(Stars, { max: maxRating, onSubmit: setScore })));
|
|
70
66
|
};
|
|
71
67
|
exports.Rating = Rating;
|
|
@@ -35,11 +35,6 @@ const Reasons = ({ settings, onSubmit, className }) => {
|
|
|
35
35
|
const { label, multi, buttonText, items = [] } = settings;
|
|
36
36
|
const [checkedState, setCheckedState] = React.useState(new Array(items.length).fill(false));
|
|
37
37
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
38
|
-
const translationKeys = {
|
|
39
|
-
label: 'theme.feedback.settings.reasons.label',
|
|
40
|
-
items: 'theme.feedback.settings.reasons.items',
|
|
41
|
-
send: 'theme.feedback.settings.reasons.send',
|
|
42
|
-
};
|
|
43
38
|
if (!items.length) {
|
|
44
39
|
return React.createElement(React.Fragment, null);
|
|
45
40
|
}
|
|
@@ -53,12 +48,12 @@ const Reasons = ({ settings, onSubmit, className }) => {
|
|
|
53
48
|
const submitForm = () => {
|
|
54
49
|
onSubmit({ reasons: items.filter((_, index) => !!checkedState[index]) });
|
|
55
50
|
};
|
|
56
|
-
return (React.createElement(Wrapper, { "data-component-name": "Feedback/Reasons", "data-translation-key":
|
|
57
|
-
React.createElement(Label, null, translate(
|
|
51
|
+
return (React.createElement(Wrapper, { "data-component-name": "Feedback/Reasons", "data-translation-key": "theme.feedback.settings.reasons.label", className: className },
|
|
52
|
+
React.createElement(Label, null, translate('theme.feedback.settings.reasons.label', label || 'Which statement describes your thoughts about this page?')),
|
|
58
53
|
items.map((reason, idx) => (React.createElement(OptionWrapper, { key: reason },
|
|
59
54
|
React.createElement("input", { type: input_type, value: reason, checked: checkedState[idx], name: "reasons", onChange: () => handleOptionChange(idx) }),
|
|
60
|
-
React.createElement("label", { "data-translation-key":
|
|
61
|
-
React.createElement(SendButton, { "data-translation-key":
|
|
55
|
+
React.createElement("label", { "data-translation-key": `theme.feedback.settings.reasons.items.${idx + 1}`, id: reason, onClick: () => handleOptionChange(idx) }, translate(`theme.feedback.settings.reasons.items.${idx + 1}`, reason))))),
|
|
56
|
+
React.createElement(SendButton, { "data-translation-key": "theme.feedback.settings.reasons.send", onClick: submitForm }, translate('theme.feedback.settings.reasons.send', buttonText || 'Send'))));
|
|
62
57
|
};
|
|
63
58
|
exports.Reasons = Reasons;
|
|
64
59
|
const Wrapper = styled_components_1.default.div `
|
|
@@ -39,12 +39,6 @@ const Sentiment = ({ settings, onSubmit, className }) => {
|
|
|
39
39
|
const [comment, setComment] = React.useState('');
|
|
40
40
|
const [reasons, setReasons] = React.useState([]);
|
|
41
41
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
42
|
-
const translationKeys = {
|
|
43
|
-
submitText: 'theme.feedback.settings.submitText',
|
|
44
|
-
label: 'theme.feedback.settings.label',
|
|
45
|
-
likeLabel: 'theme.feedback.settings.comment.likeLabel',
|
|
46
|
-
dislikeLabel: 'theme.feedback.settings.comment.dislikeLabel',
|
|
47
|
-
};
|
|
48
42
|
if (score && (reasonsSettings === null || reasonsSettings === void 0 ? void 0 : reasonsSettings.enable) && !reasons.length) {
|
|
49
43
|
const { label: reasonsLabel, items, multi } = reasonsSettings;
|
|
50
44
|
const buttonText = (commentSettings === null || commentSettings === void 0 ? void 0 : commentSettings.enable) ? 'Next' : 'Send';
|
|
@@ -52,8 +46,8 @@ const Sentiment = ({ settings, onSubmit, className }) => {
|
|
|
52
46
|
}
|
|
53
47
|
if (score && (commentSettings === null || commentSettings === void 0 ? void 0 : commentSettings.enable) && !comment) {
|
|
54
48
|
const commentLabel = score === 1
|
|
55
|
-
? translate(
|
|
56
|
-
: translate(
|
|
49
|
+
? translate('theme.feedback.settings.comment.likeLabel', commentSettings.likeLabel || 'What was most helpful?')
|
|
50
|
+
: translate('theme.feedback.settings.comment.dislikeLabel', commentSettings.dislikeLabel || 'What can we improve?');
|
|
57
51
|
return (React.createElement(Feedback_1.Comment, { onSubmit: ({ comment }) => setComment(comment), settings: { label: commentLabel } }));
|
|
58
52
|
}
|
|
59
53
|
if (score) {
|
|
@@ -66,10 +60,10 @@ const Sentiment = ({ settings, onSubmit, className }) => {
|
|
|
66
60
|
setIsSubmitted(true);
|
|
67
61
|
}
|
|
68
62
|
return (React.createElement(Wrapper, null,
|
|
69
|
-
React.createElement(Label, { "data-translation-key":
|
|
63
|
+
React.createElement(Label, { "data-translation-key": "theme.feedback.settings.submitText" }, translate('theme.feedback.settings.submitText', submitText || 'Thank you for helping improve our documentation!'))));
|
|
70
64
|
}
|
|
71
65
|
return (React.createElement(Wrapper, { "data-component-name": "Feedback/Sentiment", className: className },
|
|
72
|
-
React.createElement(Label, { "data-translation-key":
|
|
66
|
+
React.createElement(Label, { "data-translation-key": "theme.feedback.settings.label" }, translate('theme.feedback.settings.label', label || 'Was this page helpful?')),
|
|
73
67
|
React.createElement(Vote, { onClick: () => {
|
|
74
68
|
setScore(1);
|
|
75
69
|
} },
|
|
@@ -32,9 +32,6 @@ const styled_components_1 = __importDefault(require("styled-components"));
|
|
|
32
32
|
const hooks_1 = require("../../mocks/hooks");
|
|
33
33
|
const ThumbUp = ({ text }) => {
|
|
34
34
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
35
|
-
const translationKeys = {
|
|
36
|
-
thumbUp: 'theme.feedback.sentiment.thumbUp',
|
|
37
|
-
};
|
|
38
35
|
return (React.createElement(Wrapper, { style: { alignItems: 'normal' } },
|
|
39
36
|
React.createElement(Icon, null,
|
|
40
37
|
React.createElement("svg", { version: "1.1", xmlns: "http://www.w3.org/2000/svg", x: "0px", y: "0px", viewBox: "0 0 512 512" },
|
|
@@ -45,14 +42,11 @@ const ThumbUp = ({ text }) => {
|
|
|
45
42
|
React.createElement("path", { d: "M76.8,443.733c9.412,0,17.067-7.654,17.067-17.067S86.212,409.6,76.8,409.6c-9.412,0-17.067,7.654-17.067,17.067\n S67.388,443.733,76.8,443.733z" }),
|
|
46
43
|
React.createElement("path", { d: "M179.2,247.467c25.353,0,57.429-28.297,74.3-45.167c36.634-36.634,36.634-82.167,36.634-151.1\n c0-5.342,3.191-8.533,8.533-8.533c29.508,0,42.667,13.158,42.667,42.667v102.4c0,4.71,3.814,8.533,8.533,8.533\n s8.533-3.823,8.533-8.533v-102.4c0-39.083-20.659-59.733-59.733-59.733c-14.831,0-25.6,10.769-25.6,25.6\n c0,66.978,0,107.401-31.633,139.034C216.661,215.006,192.811,230.4,179.2,230.4c-4.719,0-8.533,3.823-8.533,8.533\n S174.481,247.467,179.2,247.467z" }),
|
|
47
44
|
React.createElement("path", { d: "M145.067,213.333H8.533c-4.719,0-8.533,3.823-8.533,8.533v256c0,4.71,3.814,8.533,8.533,8.533h136.533\n c4.719,0,8.533-3.823,8.533-8.533v-256C153.6,217.156,149.786,213.333,145.067,213.333z M136.533,469.333H17.067V230.4h119.467\n V469.333z" })))))),
|
|
48
|
-
React.createElement("span", null, translate(
|
|
45
|
+
React.createElement("span", null, translate('theme.feedback.sentiment.thumbUp', text || 'Yes'))));
|
|
49
46
|
};
|
|
50
47
|
exports.ThumbUp = ThumbUp;
|
|
51
48
|
const ThumbDown = ({ text }) => {
|
|
52
49
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
53
|
-
const translationKeys = {
|
|
54
|
-
thumbDown: 'theme.feedback.sentiment.thumbDown',
|
|
55
|
-
};
|
|
56
50
|
return (React.createElement(Wrapper, { style: { alignItems: 'end' } },
|
|
57
51
|
React.createElement(Icon, null,
|
|
58
52
|
React.createElement("svg", { version: "1.1", xmlns: "http://www.w3.org/2000/svg", x: "0px", y: "0px", viewBox: "0 0 512 512" },
|
|
@@ -63,7 +57,7 @@ const ThumbDown = ({ text }) => {
|
|
|
63
57
|
React.createElement("path", { d: "M495.736,221.227C505.634,213.41,512,201.301,512,187.733c0-18.295-11.58-33.946-27.802-39.996\n\t\t\t\tc6.673-7.535,10.735-17.434,10.735-28.271c0-22.281-17.169-40.627-38.963-42.505c3.055-5.094,4.83-10.999,4.83-17.229\n\t\t\t\tc0-17.86-16.265-34.133-34.133-34.133h-128c-40.021,0-56.03,8.832-71.526,17.374c-11.827,6.519-24.047,13.261-49.152,16.845\n\t\t\t\tc-4.668,0.666-7.902,4.992-7.236,9.66c0.666,4.659,4.949,7.885,9.66,7.236c28.177-4.028,42.411-11.87,54.963-18.79\n\t\t\t\tc14.848-8.183,27.665-15.258,63.292-15.258h128c8.619,0,17.067,8.456,17.067,17.067c0,8.934-8.132,17.067-17.067,17.067\n\t\t\t\tc-4.719,0-8.533,3.823-8.533,8.533s3.814,8.533,8.533,8.533h25.6c14.114,0,25.6,11.486,25.6,25.6s-11.486,25.6-25.6,25.6\n\t\t\t\tc-4.719,0-8.533,3.823-8.533,8.533c0,4.71,3.814,8.533,8.533,8.533h17.067c14.114,0,25.6,11.486,25.6,25.6\n\t\t\t\ts-11.486,25.6-25.6,25.6c-4.531,0-8.277,3.541-8.516,8.064c-0.247,4.531,3.081,8.457,7.586,8.951\n\t\t\t\tc26.53,2.91,26.53,16.418,26.53,20.847c0,13.773-11.418,30.404-25.6,30.404H349.867c-14.763,0-42.667,8.917-42.667,42.667\n\t\t\t\tc0,4.71,3.814,8.533,8.533,8.533s8.533-3.823,8.533-8.533c0-24.09,21.367-25.549,25.6-25.6h119.467\n\t\t\t\tc24.414,0,42.667-25.054,42.667-47.471C512,242.603,509.397,229.683,495.736,221.227z" }),
|
|
64
58
|
React.createElement("path", { d: "M349.867,315.733c-4.719,0-8.533,3.823-8.533,8.533v102.4c0,29.508-13.158,42.667-42.667,42.667\n\t\t\t\tc-5.342,0-8.533-3.192-8.533-8.533c0-68.932,0-114.466-36.634-151.1c-16.87-16.87-48.947-45.167-74.3-45.167\n\t\t\t\tc-4.719,0-8.533,3.823-8.533,8.533s3.814,8.533,8.533,8.533c13.611,0,37.461,15.394,62.234,40.166\n\t\t\t\tc31.633,31.633,31.633,72.055,31.633,139.034c0,14.831,10.769,25.6,25.6,25.6c39.074,0,59.733-20.651,59.733-59.733v-102.4\n\t\t\t\tC358.4,319.556,354.586,315.733,349.867,315.733z" }),
|
|
65
59
|
React.createElement("path", { d: "M145.067,25.6H8.533C3.814,25.6,0,29.423,0,34.133v256c0,4.71,3.814,8.533,8.533,8.533h136.533\n\t\t\t\tc4.719,0,8.533-3.823,8.533-8.533v-256C153.6,29.423,149.786,25.6,145.067,25.6z M136.533,281.6H17.067V42.667h119.467V281.6z" })))))),
|
|
66
|
-
React.createElement("span", null, translate(
|
|
60
|
+
React.createElement("span", null, translate('theme.feedback.sentiment.thumbDown', text || 'No'))));
|
|
67
61
|
};
|
|
68
62
|
exports.ThumbDown = ThumbDown;
|
|
69
63
|
const Wrapper = styled_components_1.default.div `
|
|
@@ -11,11 +11,6 @@ function useReportDialog() {
|
|
|
11
11
|
const isReportButtonShown = (report === null || report === void 0 ? void 0 : report.hide) === false; // TODO: report temporary disabled by default
|
|
12
12
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
13
13
|
const { submitFeedback } = (0, useSubmitFeedback_1.useSubmitFeedback)();
|
|
14
|
-
const translationKeys = {
|
|
15
|
-
buttonText: 'theme.codeSnippet.report.buttonText',
|
|
16
|
-
tooltipText: 'theme.codeSnippet.report.tooltipText',
|
|
17
|
-
label: 'theme.codeSnippet.report.label',
|
|
18
|
-
};
|
|
19
14
|
const showReportDialog = () => {
|
|
20
15
|
setIsReportDialogShown(true);
|
|
21
16
|
};
|
|
@@ -24,13 +19,13 @@ function useReportDialog() {
|
|
|
24
19
|
};
|
|
25
20
|
const reportButtonProps = {
|
|
26
21
|
onClick: showReportDialog,
|
|
27
|
-
buttonText: translate(
|
|
28
|
-
tooltip: translate(
|
|
22
|
+
buttonText: translate('theme.codeSnippet.report.buttonText', 'Report'),
|
|
23
|
+
tooltip: translate('theme.codeSnippet.report.tooltipText', 'Report a problem'),
|
|
29
24
|
visible: isReportButtonShown,
|
|
30
25
|
};
|
|
31
26
|
const reportDialogProps = {
|
|
32
27
|
settings: {
|
|
33
|
-
label: translate(
|
|
28
|
+
label: translate('theme.codeSnippet.report.label', 'What is wrong with this code?'),
|
|
34
29
|
},
|
|
35
30
|
onSubmit: hideReportDialog,
|
|
36
31
|
onCancel: hideReportDialog,
|
|
@@ -13,10 +13,6 @@ const Select_1 = require("../../components/Select");
|
|
|
13
13
|
function Filter({ filter, filterValuesCasing, }) {
|
|
14
14
|
var _a;
|
|
15
15
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
16
|
-
const translationKeys = {
|
|
17
|
-
selectAll: 'theme.catalog.filters.select.all',
|
|
18
|
-
clear: 'theme.catalog.filters.clear',
|
|
19
|
-
};
|
|
20
16
|
if (!filter.parentUsed)
|
|
21
17
|
return null;
|
|
22
18
|
let selectOptions = [];
|
|
@@ -26,7 +22,7 @@ function Filter({ filter, filterValuesCasing, }) {
|
|
|
26
22
|
{
|
|
27
23
|
value: '',
|
|
28
24
|
element: (react_1.default.createElement(FilterOption, { key: "all", onClick: () => filter.selectOption('') },
|
|
29
|
-
react_1.default.createElement(FilterOptionLabel, null, translate(
|
|
25
|
+
react_1.default.createElement(FilterOptionLabel, null, translate('theme.catalog.filters.select.all', 'All')),
|
|
30
26
|
react_1.default.createElement(FilterOptionCount, null, defaultOptionCount))),
|
|
31
27
|
},
|
|
32
28
|
];
|
|
@@ -14,10 +14,6 @@ const Sidebar_1 = require("../../components/Sidebar");
|
|
|
14
14
|
const FilterPopover_1 = require("../../components/Filter/FilterPopover");
|
|
15
15
|
function FilterContent({ setFilterTerm, filters, filterTerm, isMobile, filterValuesCasing, }) {
|
|
16
16
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
17
|
-
const translationKeys = {
|
|
18
|
-
placeholder: 'theme.catalog.filters.placeholder',
|
|
19
|
-
clearAll: 'theme.catalog.filters.clearAll',
|
|
20
|
-
};
|
|
21
17
|
const hasActiveFilters = filters.some((filter) => {
|
|
22
18
|
if (filterTerm)
|
|
23
19
|
return true;
|
|
@@ -34,10 +30,10 @@ function FilterContent({ setFilterTerm, filters, filterTerm, isMobile, filterVal
|
|
|
34
30
|
};
|
|
35
31
|
return (react_1.default.createElement(FilterContentWrapper, { isMobile: isMobile },
|
|
36
32
|
react_1.default.createElement(Catalog_1.FilterControls, null,
|
|
37
|
-
react_1.default.createElement(FilterPopover_1.StyledInput, { placeholder: translate(
|
|
33
|
+
react_1.default.createElement(FilterPopover_1.StyledInput, { placeholder: translate('theme.catalog.filters.placeholder', 'Type to filter...'), value: filterTerm, onChange: (e) => setFilterTerm(e.target.value) })),
|
|
38
34
|
react_1.default.createElement(exports.FilterItems, null, filters.map((filter, idx) => (react_1.default.createElement(Filter_1.Filter, { filter: filter, key: filter.property + '-' + idx, filterValuesCasing: filterValuesCasing })))),
|
|
39
35
|
hasActiveFilters && (react_1.default.createElement(ActionsContainer, null,
|
|
40
|
-
react_1.default.createElement(ClearAllButton, { size: "default", variant: "outlined", onClick: handleClearAll }, translate(
|
|
36
|
+
react_1.default.createElement(ClearAllButton, { size: "default", variant: "outlined", onClick: handleClearAll }, translate('theme.catalog.filters.clearAll', 'Clear all filters'))))));
|
|
41
37
|
}
|
|
42
38
|
exports.FilterContent = FilterContent;
|
|
43
39
|
const FilterContentWrapper = (0, styled_components_1.default)(Sidebar_1.Sidebar) `
|
|
@@ -19,18 +19,14 @@ function FilterPopover({ setIsAddingFilter, filters, filterValuesCasing, }) {
|
|
|
19
19
|
? Object.assign(Object.assign({}, filter), { filteredOptions: options }) : null;
|
|
20
20
|
})
|
|
21
21
|
.filter(Boolean);
|
|
22
|
-
const translationKeys = {
|
|
23
|
-
placeholder: 'theme.catalog.filters.placeholder',
|
|
24
|
-
done: 'theme.catalog.filters.done',
|
|
25
|
-
};
|
|
26
22
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
27
23
|
return (react_1.default.createElement(FilterPopoverWrapper, null,
|
|
28
24
|
react_1.default.createElement(FilterPopoverHeader, null,
|
|
29
25
|
react_1.default.createElement(FilterPopoverHeaderLabel, null, "Add Filter"),
|
|
30
|
-
react_1.default.createElement(FilterPopoverHeaderButton, { onClick: () => setIsAddingFilter(false) }, translate(
|
|
26
|
+
react_1.default.createElement(FilterPopoverHeaderButton, { onClick: () => setIsAddingFilter(false) }, translate('theme.catalog.filters.done', 'Done'))),
|
|
31
27
|
react_1.default.createElement(FilterContent_1.FilterContent, { setFilterTerm: setFilterTerm, filters: filters, filterTerm: filterTerm, filterValuesCasing: filterValuesCasing, isMobile: true }),
|
|
32
28
|
react_1.default.createElement(Catalog_1.FilterControls, null,
|
|
33
|
-
react_1.default.createElement(exports.StyledInput, { placeholder: translate(
|
|
29
|
+
react_1.default.createElement(exports.StyledInput, { placeholder: translate('theme.catalog.filters.placeholder', 'Type to filter...'), value: filterTerm, onChange: (e) => setFilterTerm(e.target.value) })),
|
|
34
30
|
react_1.default.createElement(FilterContent_1.FilterItems, null, filteredFilters.map((filter, idx) => (react_1.default.createElement(Filter_1.Filter, { filter: filter, key: filter.property + '-' + idx }))))));
|
|
35
31
|
}
|
|
36
32
|
exports.FilterPopover = FilterPopover;
|
|
@@ -11,11 +11,8 @@ const hooks_1 = require("../../mocks/hooks");
|
|
|
11
11
|
function FooterCopyright({ copyrightText = '', className, }) {
|
|
12
12
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
13
13
|
const { changeLanguage } = (0, hooks_1.useI18n)();
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
17
|
-
return copyrightText ? (react_1.default.createElement(Wrapper, { className: className, "data-component-name": "Footer/FooterCopyright", "data-translation-key": translationKeys.copyrightText },
|
|
18
|
-
react_1.default.createElement(Label, null, translate(translationKeys.copyrightText, copyrightText)),
|
|
14
|
+
return copyrightText ? (react_1.default.createElement(Wrapper, { className: className, "data-component-name": "Footer/FooterCopyright", "data-translation-key": "theme.footer.copyrightText" },
|
|
15
|
+
react_1.default.createElement(Label, null, translate('theme.footer.copyrightText', copyrightText)),
|
|
19
16
|
react_1.default.createElement(LanguagePicker_1.LanguagePicker, { onChangeLanguage: changeLanguage, placement: "top", alignment: "end" }))) : null;
|
|
20
17
|
}
|
|
21
18
|
exports.FooterCopyright = FooterCopyright;
|
|
@@ -51,7 +51,7 @@ function LastUpdated(props) {
|
|
|
51
51
|
const lastUpdatedString = FORMATS[format](lastModified, locale);
|
|
52
52
|
const translationKey = format === 'timeago' ? 'theme.page.lastUpdated.timeago' : 'theme.page.lastUpdated.on';
|
|
53
53
|
const text = format === 'timeago'
|
|
54
|
-
? translate(translationKey, 'Last updated '
|
|
54
|
+
? translate(translationKey, 'Last updated') + ' '
|
|
55
55
|
: translate(translationKey, 'Last updated on');
|
|
56
56
|
return (React.createElement(Wrapper, { className: props.className, "data-component-name": "LastUpdated/LastUpdated", rawOnPrint: format === 'timeago', "data-print-datetime": isoDate, "data-translation-key": translationKey },
|
|
57
57
|
text,
|
|
@@ -211,10 +211,64 @@ exports.markdown = (0, styled_components_1.css) `
|
|
|
211
211
|
/**
|
|
212
212
|
* @tokens Markdown Tabs
|
|
213
213
|
*/
|
|
214
|
+
|
|
215
|
+
--md-tabs-container-text-color: inherit; // @presenter Color
|
|
216
|
+
--md-tabs-container-font-size: var(--font-size-base); // @presenter FontSize
|
|
217
|
+
--md-tabs-container-font-family: var(--font-size-base); // @presenter FontFamily
|
|
218
|
+
--md-tabs-container-font-style: normal; // @presenter FontStyle
|
|
219
|
+
--md-tabs-container-font-weight: var(--font-weight-regular); // @presenter FontWeight
|
|
220
|
+
--md-tabs-container-background-color: inherit; // @presenter Color
|
|
221
|
+
--md-tabs-container-margin: 10px 0; // @presenter Spacing
|
|
222
|
+
--md-tabs-container-padding: 0; // @presenter Spacing
|
|
223
|
+
--md-tabs-container-border: none; // @presenter Border
|
|
224
|
+
|
|
225
|
+
--md-tabs-border: solid var(--border-primary); // @presenter Color
|
|
226
|
+
--md-tabs-border-width: 0 0 1px 0; // @presenter Spacing
|
|
227
|
+
--md-tabs-padding: 0; // @presenter Spacing
|
|
228
|
+
|
|
229
|
+
--md-tabs-content-text-color: inherit; // @presenter Color
|
|
230
|
+
--md-tabs-content-font-size: var(--font-size-base); // @presenter FontSize
|
|
231
|
+
--md-tabs-content-font-family: var(--font-size-base); // @presenter FontFamily
|
|
232
|
+
--md-tabs-content-font-style: normal; // @presenter FontStyle
|
|
233
|
+
--md-tabs-content-font-weight: var(--font-weight-regular); // @presenter FontWeight
|
|
234
|
+
--md-tabs-content-background-color: inherit; // @presenter Color
|
|
235
|
+
--md-tabs-content-margin: 0; // @presenter Spacing
|
|
236
|
+
--md-tabs-content-padding: var(--spacing-base) 0; // @presenter Spacing
|
|
237
|
+
--md-tabs-content-border: none; // @presenter Border
|
|
214
238
|
|
|
215
239
|
--md-tabs-tab-text-color: var(--text-secondary); // @presenter Color
|
|
240
|
+
--md-tabs-tab-font-size: var(--font-size-base); // @presenter FontSize
|
|
241
|
+
--md-tabs-tab-font-family: var(--font-size-base); // @presenter FontFamily
|
|
242
|
+
--md-tabs-tab-font-style: normal; // @presenter FontStyle
|
|
243
|
+
--md-tabs-tab-font-weight: var(--font-weight-regular); // @presenter FontWeight
|
|
244
|
+
--md-tabs-tab-background-color: none; // @presenter Color
|
|
245
|
+
--md-tabs-tab-margin: 0 0 -1px 0; // @presenter Spacing
|
|
246
|
+
--md-tabs-tab-padding: var(--spacing-sm) var(--spacing-base); // @presenter Spacing
|
|
247
|
+
--md-tabs-tab-border: none; // @presenter Color
|
|
248
|
+
--md-tabs-tab-border-width: 0; // @presenter Spacing
|
|
249
|
+
--md-tabs-tab-border-radius: 0; // @presenter BorderRadius
|
|
250
|
+
|
|
251
|
+
--md-tabs-active-tab-text-color: var(--text-primary); // @presenter Color
|
|
252
|
+
--md-tabs-active-tab-font-size: var(--md-tabs-tab-font-size); // @presenter FontSize
|
|
253
|
+
--md-tabs-active-tab-font-family: var(--md-tabs-tab-font-family); // @presenter FontFamily
|
|
254
|
+
--md-tabs-active-tab-font-style: normal; // @presenter FontStyle
|
|
255
|
+
--md-tabs-active-tab-font-weight: var(--md-tabs-tab-font-weight); // @presenter FontWeight
|
|
256
|
+
--md-tabs-active-tab-background-color: var(--background-color); // @presenter Color
|
|
257
|
+
--md-tabs-active-tab-padding: var(--md-tabs-tab-padding); // @presenter Spacing
|
|
216
258
|
--md-tabs-active-tab-border-color: var(--border-primary); // @presenter Color
|
|
259
|
+
--md-tabs-active-tab-border-width: 0 0 1px 0; // @presenter Spacing
|
|
260
|
+
--md-tabs-active-tab-border-radius: var(--md-tabs-tab-border-radius); // @presenter BorderRadius
|
|
261
|
+
|
|
262
|
+
--md-tabs-hover-tab-text-color: var(--md-tabs-tab-text-color); // @presenter Color
|
|
263
|
+
--md-tabs-hover-tab-font-size: var(--md-tabs-tab-font-size); // @presenter FontSize
|
|
264
|
+
--md-tabs-hover-tab-font-family: var(--md-tabs-tab-font-family); // @presenter FontFamily
|
|
265
|
+
--md-tabs-hover-tab-font-style: normal; // @presenter FontStyle
|
|
266
|
+
--md-tabs-hover-tab-font-weight: var(--md-tabs-tab-font-weight); // @presenter FontWeight
|
|
267
|
+
--md-tabs-hover-tab-background-color: var(--md-tabs-tab-background-color); // @presenter Color
|
|
268
|
+
--md-tabs-hover-tab-padding: var(--md-tabs-tab-padding); // @presenter Spacing
|
|
217
269
|
--md-tabs-hover-tab-border-color: var(--border-secondary); // @presenter Color
|
|
270
|
+
--md-tabs-hover-tab-border-width: 0 0 1px 0; // @presenter Spacing
|
|
271
|
+
--md-tabs-hover-tab-border-radius: var(--md-tabs-tab-border-radius); // @presenter BorderRadius
|
|
218
272
|
|
|
219
273
|
// @tokens End
|
|
220
274
|
`;
|
|
@@ -11,9 +11,6 @@ const MENU_SEPARATOR = {
|
|
|
11
11
|
type: 'separator',
|
|
12
12
|
separatorLine: true,
|
|
13
13
|
};
|
|
14
|
-
const TRANSLATION_KEYS = {
|
|
15
|
-
products: 'theme.mobileMenu.products',
|
|
16
|
-
};
|
|
17
14
|
const useMobileMenuItems = (menuType) => {
|
|
18
15
|
var _a, _b, _c;
|
|
19
16
|
const { versions = [] } = (0, hooks_1.usePageVersions)() || {};
|
|
@@ -59,7 +56,7 @@ const useMobileMenuItems = (menuType) => {
|
|
|
59
56
|
if (productMenuItems.length) {
|
|
60
57
|
menuItems.push({
|
|
61
58
|
type: 'separator',
|
|
62
|
-
label: translate(
|
|
59
|
+
label: translate('theme.mobileMenu.products', 'Products'),
|
|
63
60
|
});
|
|
64
61
|
menuItems.push(...productMenuItems);
|
|
65
62
|
}
|
|
@@ -7,10 +7,6 @@ const hooks_1 = require("../../../mocks/hooks");
|
|
|
7
7
|
const useSidebarItems_1 = require("../../../mocks/Sidebar/useSidebarItems");
|
|
8
8
|
const constants_1 = require("../../../components/Menu/constants");
|
|
9
9
|
const hooks_2 = require("../../../hooks");
|
|
10
|
-
const TRANSLATION_KEYS = {
|
|
11
|
-
mainMenu: 'theme.mobileMenu.mainMenu',
|
|
12
|
-
previous: 'theme.mobileMenu.previous',
|
|
13
|
-
};
|
|
14
10
|
const useMobileMenuLevels = () => {
|
|
15
11
|
var _a, _b;
|
|
16
12
|
const { versions = [] } = (0, hooks_1.usePageVersions)() || {};
|
|
@@ -25,7 +21,7 @@ const useMobileMenuLevels = () => {
|
|
|
25
21
|
const menuLevels = (0, react_1.useMemo)(() => {
|
|
26
22
|
const menuLevels = [
|
|
27
23
|
{
|
|
28
|
-
label: translate(
|
|
24
|
+
label: translate('theme.mobileMenu.mainMenu', 'Main Menu'),
|
|
29
25
|
type: constants_1.MenuType.MAIN_MENU,
|
|
30
26
|
},
|
|
31
27
|
];
|
|
@@ -37,7 +33,7 @@ const useMobileMenuLevels = () => {
|
|
|
37
33
|
}
|
|
38
34
|
if (sidebarItems.length || activeVersion) {
|
|
39
35
|
menuLevels.push({
|
|
40
|
-
label: translate(
|
|
36
|
+
label: translate('theme.mobileMenu.previous', 'Previous'),
|
|
41
37
|
type: constants_1.MenuType.PAGE,
|
|
42
38
|
});
|
|
43
39
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Location } from 'react-router-dom';
|
|
2
|
+
import type { TFunction } from '@redocly/portal-types';
|
|
2
3
|
import type { ItemState } from '../../components/Sidebar/types';
|
|
3
|
-
import type { Locale, ResolvedNavItem,
|
|
4
|
+
import type { Locale, ResolvedNavItem, Version } from '../../types/portal';
|
|
4
5
|
export declare const mapNavbarItems: (items: ResolvedNavItem[], defaultLocale: string, currentLocale: string, locales: Locale[], location: Location) => ItemState[];
|
|
5
6
|
export declare const isItemActive: (item: ResolvedNavItem, defaultLocale: string, currentLocale: string, locales: Locale[], location: Location) => boolean;
|
|
6
7
|
export declare const buildLanguagesGroup: (locales: Locale[], currentLocale: string, defaultLocale: string) => ResolvedNavItem | undefined;
|
|
@@ -12,12 +12,9 @@ const telemetry_1 = require("../../mocks/telemetry");
|
|
|
12
12
|
function LoginLink({ href }) {
|
|
13
13
|
const { userProfile } = (0, useThemeConfig_1.useThemeConfig)();
|
|
14
14
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
15
|
-
|
|
16
|
-
login: 'theme.profile.login',
|
|
17
|
-
};
|
|
18
|
-
return (react_1.default.createElement(StyledLink, { href: href, "data-translation-key": translationKeys.login, onClick: () => {
|
|
15
|
+
return (react_1.default.createElement(StyledLink, { href: href, "data-translation-key": "theme.profile.login", onClick: () => {
|
|
19
16
|
telemetry_1.telemetry.send('login_button_clicked', {});
|
|
20
|
-
} }, translate(
|
|
17
|
+
} }, translate('theme.profile.login', (userProfile === null || userProfile === void 0 ? void 0 : userProfile.loginLabel) || 'Login')));
|
|
21
18
|
}
|
|
22
19
|
exports.LoginLink = LoginLink;
|
|
23
20
|
const StyledLink = styled_components_1.default.a.attrs(() => ({
|
|
@@ -16,12 +16,9 @@ function MobileUserProfile() {
|
|
|
16
16
|
const { userProfile } = (0, useThemeConfig_1.useThemeConfig)();
|
|
17
17
|
const { userData, handleLogout, loginUrl } = (0, useProfileProps_1.useProfileProps)();
|
|
18
18
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
19
|
-
const translationKeys = {
|
|
20
|
-
login: 'theme.profile.login',
|
|
21
|
-
};
|
|
22
19
|
if (!(userData === null || userData === void 0 ? void 0 : userData.isAuthenticated) && !loginUrl)
|
|
23
20
|
return null;
|
|
24
|
-
return (react_1.default.createElement(MobileProfileWrapper, { "data-component-name": "Navbar/MobileUserProfile" }, !(userData === null || userData === void 0 ? void 0 : userData.isAuthenticated) ? (react_1.default.createElement(LoginButton, { href: loginUrl, "data-cy": "login-btn", onClick: () => telemetry_1.telemetry.send('login_button_clicked', {}) }, translate(
|
|
21
|
+
return (react_1.default.createElement(MobileProfileWrapper, { "data-component-name": "Navbar/MobileUserProfile" }, !(userData === null || userData === void 0 ? void 0 : userData.isAuthenticated) ? (react_1.default.createElement(LoginButton, { href: loginUrl, "data-cy": "login-btn", onClick: () => telemetry_1.telemetry.send('login_button_clicked', {}) }, translate('theme.profile.login', (userProfile === null || userProfile === void 0 ? void 0 : userProfile.loginLabel) || 'Login'))) : (react_1.default.createElement(react_1.default.Fragment, null,
|
|
25
22
|
react_1.default.createElement(UserProfileData_1.UserProfileData, { userData: userData }),
|
|
26
23
|
react_1.default.createElement(LogoutButton, { onClick: () => {
|
|
27
24
|
handleLogout();
|
|
@@ -40,14 +40,10 @@ const icons_1 = require("../../icons");
|
|
|
40
40
|
function UserProfile({ userData, handleLogout, hasDeveloperOnboarding = false, }) {
|
|
41
41
|
const { userProfile } = (0, useThemeConfig_1.useThemeConfig)();
|
|
42
42
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
43
|
-
const translationKeys = {
|
|
44
|
-
myApps: 'theme.profile.myApps',
|
|
45
|
-
logout: 'theme.profile.logout',
|
|
46
|
-
};
|
|
47
43
|
const [isOpened, setIsOpened] = (0, react_1.useState)(false);
|
|
48
44
|
const menuItems = [react_1.default.createElement(UserProfileData_1.UserProfileData, { key: userData.name, userData: userData })];
|
|
49
45
|
if (hasDeveloperOnboarding) {
|
|
50
|
-
menuItems.push(react_1.default.createElement(Link_1.Link, { to: "/apps", "data-translation-key":
|
|
46
|
+
menuItems.push(react_1.default.createElement(Link_1.Link, { to: "/apps", "data-translation-key": "theme.profile.myApps" }, translate('theme.profile.myApps', 'My Apps')));
|
|
51
47
|
}
|
|
52
48
|
if (userProfile && userProfile.menu) {
|
|
53
49
|
for (const item of userProfile.menu) {
|
|
@@ -57,9 +53,9 @@ function UserProfile({ userData, handleLogout, hasDeveloperOnboarding = false, }
|
|
|
57
53
|
menuItems.push(react_1.default.createElement(Logout, { onClick: () => {
|
|
58
54
|
handleLogout();
|
|
59
55
|
telemetry_1.telemetry.send('logout_menu_item_clicked', {});
|
|
60
|
-
}, "data-translation-key":
|
|
56
|
+
}, "data-translation-key": "theme.profile.logout", role: "link" },
|
|
61
57
|
react_1.default.createElement(icons_1.LogoutIcon, null),
|
|
62
|
-
translate(
|
|
58
|
+
translate('theme.profile.logout', (userProfile === null || userProfile === void 0 ? void 0 : userProfile.logoutLabel) || 'Log out')));
|
|
63
59
|
return (react_1.default.createElement(ProfileDropdown, { items: menuItems, alignment: "end" },
|
|
64
60
|
react_1.default.createElement(Profile_1.Profile, { name: userData.name, imageUrl: userData.picture, onClick: userData.logoutDisabled ? undefined : () => setIsOpened(!isOpened) })));
|
|
65
61
|
}
|
|
@@ -33,11 +33,8 @@ const hooks_1 = require("../../mocks/hooks");
|
|
|
33
33
|
const Button_1 = require("../../components/Button");
|
|
34
34
|
function CancelSearch({ onClick, className, }) {
|
|
35
35
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
36
|
-
const translationKeys = {
|
|
37
|
-
cancel: 'theme.search.cancel',
|
|
38
|
-
};
|
|
39
36
|
return (React.createElement(Wrapper, { "data-component-name": "Search/CancelSearch", onClick: onClick, className: className },
|
|
40
|
-
React.createElement(Button_1.Button, { "data-translation-keys":
|
|
37
|
+
React.createElement(Button_1.Button, { "data-translation-keys": "theme.search.cancel", fullWidth: true, variant: "outlined" }, translate('theme.search.cancel', 'Cancel'))));
|
|
41
38
|
}
|
|
42
39
|
exports.CancelSearch = CancelSearch;
|
|
43
40
|
const Wrapper = styled_components_1.default.div `
|