@redocly/theme 0.18.3-patch.1 → 0.18.3-patch.5
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/I18n/LanguagePicker.js +1 -1
- package/lib/components/Catalog/Catalog.d.ts +5 -0
- package/lib/components/Catalog/Catalog.js +19 -17
- package/lib/components/Catalog/CatalogCard.js +22 -5
- package/lib/components/CodeBlock/styledVariables.js +1 -1
- package/lib/components/Filter/Filter.d.ts +3 -1
- package/lib/components/Filter/Filter.js +17 -3
- package/lib/components/Filter/FilterContent.d.ts +3 -1
- package/lib/components/Filter/FilterContent.js +6 -5
- package/lib/components/Filter/FilterPopover.d.ts +3 -1
- package/lib/components/Filter/FilterPopover.js +4 -4
- package/lib/components/Filter/styledVariables.js +1 -1
- package/lib/components/Footer/Footer.js +2 -1
- package/lib/components/Footer/FooterColumn.js +2 -0
- package/lib/components/Footer/styledVariables.js +1 -1
- package/lib/components/Markdown/Admonition.js +12 -9
- package/lib/components/Markdown/Mermaid.js +3 -0
- package/lib/components/Markdown/styledVariables.d.ts +1 -0
- package/lib/components/Markdown/styledVariables.js +16 -6
- package/lib/components/Panel/PanelHeader.js +1 -0
- package/lib/components/Panel/styledVariables.js +1 -1
- package/lib/components/Product/ProductPicker.js +1 -1
- package/lib/components/Select/Select.d.ts +1 -3
- package/lib/components/Select/Select.js +7 -5
- package/lib/components/Separator/SeparatorItem.js +1 -0
- package/lib/components/Sidebar/HeaderWrapper.js +2 -2
- package/lib/components/Tag/Tag.d.ts +2 -1
- package/lib/components/Tag/Tag.js +10 -4
- package/lib/components/Tag/styledVariables.js +14 -8
- package/lib/config.d.ts +31 -0
- package/lib/config.js +12 -2
- package/lib/globalStyle.js +23 -21
- package/lib/hooks/useMobileMenu.js +5 -6
- package/lib/hooks/useModalScrollLock.d.ts +1 -0
- package/lib/hooks/useModalScrollLock.js +16 -0
- package/lib/icons/AlertIcon/AlertIcon.js +0 -5
- package/lib/types/portal/src/shared/types/catalog.d.ts +5 -1
- package/lib/ui/Highlight.d.ts +1 -1
- package/lib/ui/Highlight.js +1 -1
- package/lib/ui/darkColors.js +26 -26
- package/lib/utils/css-variables.js +1 -1
- package/package.json +1 -1
- package/src/I18n/LanguagePicker.tsx +1 -0
- package/src/components/Catalog/Catalog.tsx +18 -10
- package/src/components/Catalog/CatalogCard.tsx +26 -3
- package/src/components/CodeBlock/styledVariables.ts +1 -1
- package/src/components/Filter/Filter.tsx +34 -3
- package/src/components/Filter/FilterContent.tsx +13 -4
- package/src/components/Filter/FilterPopover.tsx +13 -3
- package/src/components/Filter/styledVariables.ts +1 -1
- package/src/components/Footer/Footer.tsx +1 -1
- package/src/components/Footer/FooterColumn.tsx +2 -0
- package/src/components/Footer/styledVariables.ts +1 -1
- package/src/components/Markdown/Admonition.tsx +13 -8
- package/src/components/Markdown/Mermaid.tsx +3 -0
- package/src/components/Markdown/styledVariables.ts +17 -6
- package/src/components/Panel/PanelHeader.ts +1 -0
- package/src/components/Panel/styledVariables.ts +1 -1
- package/src/components/Product/ProductPicker.tsx +0 -1
- package/src/components/Select/Select.tsx +8 -8
- package/src/components/Separator/SeparatorItem.tsx +1 -0
- package/src/components/Sidebar/HeaderWrapper.tsx +2 -2
- package/src/components/Tag/Tag.tsx +12 -4
- package/src/components/Tag/styledVariables.ts +14 -8
- package/src/config.ts +11 -0
- package/src/globalStyle.ts +24 -22
- package/src/hooks/useMobileMenu.ts +3 -4
- package/src/hooks/useModalScrollLock.ts +12 -0
- package/src/icons/AlertIcon/AlertIcon.tsx +0 -5
- package/src/types/portal/src/shared/types/catalog.ts +7 -1
- package/src/ui/Highlight.tsx +2 -2
- package/src/ui/darkColors.tsx +26 -26
- package/src/utils/css-variables.ts +4 -2
|
@@ -28,7 +28,7 @@ const LanguagePicker = (props) => {
|
|
|
28
28
|
history.push(newUrlWithLanguage);
|
|
29
29
|
props.onChangeLanguage(locale.code);
|
|
30
30
|
}, key: locale.code, role: "link" }, locale.name || locale.code || '')));
|
|
31
|
-
return (react_1.default.createElement(LanguageSelect, { selected: selected, options: languageItems, triggerEvent: "hover", placement: props.placement, alignment: props.alignment, icon: react_1.default.createElement(icons_1.LanguageIcon, null), onlyIcon: props.onlyIcon }));
|
|
31
|
+
return (react_1.default.createElement(LanguageSelect, { selected: selected, options: languageItems, triggerEvent: "hover", placement: props.placement, alignment: props.alignment, icon: react_1.default.createElement(icons_1.LanguageIcon, null), onlyIcon: props.onlyIcon, withArrow: false }));
|
|
32
32
|
};
|
|
33
33
|
exports.LanguagePicker = LanguagePicker;
|
|
34
34
|
const LanguageSelect = (0, styled_components_1.default)(Select_1.Select).attrs(() => ({
|
|
@@ -7,3 +7,8 @@ export default function Catalog(props: {
|
|
|
7
7
|
};
|
|
8
8
|
}): JSX.Element;
|
|
9
9
|
export declare const FilterControls: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
10
|
+
export declare const CatalogPageContent: import("styled-components").StyledComponent<"main", any, {}, never>;
|
|
11
|
+
export declare const CatalogTitle: import("styled-components").StyledComponent<"h2", any, {}, never>;
|
|
12
|
+
export declare const CatalogDescription: import("styled-components").StyledComponent<"p", any, {}, never>;
|
|
13
|
+
export declare const CatalogPageWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
14
|
+
export declare const CatalogPageDescriptionWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.FilterControls = void 0;
|
|
6
|
+
exports.CatalogPageDescriptionWrapper = exports.CatalogPageWrapper = exports.CatalogDescription = exports.CatalogTitle = exports.CatalogPageContent = exports.FilterControls = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const styled_components_1 = __importDefault(require("styled-components"));
|
|
9
9
|
const Highlight_1 = require("../../ui/Highlight");
|
|
@@ -15,6 +15,7 @@ const FilterContent_1 = require("../../components/Filter/FilterContent");
|
|
|
15
15
|
const FilterPopover_1 = require("../../components/Filter/FilterPopover");
|
|
16
16
|
const Button_1 = require("../../components/Button");
|
|
17
17
|
const PlusIcon_1 = require("../../icons/PlusIcon");
|
|
18
|
+
const useModalScrollLock_1 = __importDefault(require("../../hooks/useModalScrollLock"));
|
|
18
19
|
const useCatalog_1 = require("./useCatalog");
|
|
19
20
|
function Catalog(props) {
|
|
20
21
|
const { catalogConfig } = props.pageProps;
|
|
@@ -25,20 +26,21 @@ function Catalog(props) {
|
|
|
25
26
|
addFilter: 'theme.catalog.filters.select.addFilter',
|
|
26
27
|
};
|
|
27
28
|
const { translate } = (0, index_1.useTranslate)();
|
|
29
|
+
(0, useModalScrollLock_1.default)(isAddingFilter);
|
|
28
30
|
return (react_1.default.createElement(Highlight_1.HighlightContext.Provider, { value: [filterTerm] },
|
|
29
|
-
react_1.default.createElement(CatalogPageWrapper, null,
|
|
31
|
+
react_1.default.createElement(exports.CatalogPageWrapper, null,
|
|
30
32
|
react_1.default.createElement(FilterTagsWrapper, null,
|
|
31
33
|
react_1.default.createElement(Button_1.Button, { variant: "text", size: "small", icon: react_1.default.createElement(PlusIcon_1.PlusIcon, null), onClick: () => setIsAddingFilter(true) }, translate(translationKeys.addFilter, 'Add filter')),
|
|
32
34
|
react_1.default.createElement(FilterTags_1.FilterTags, { filters: filters })),
|
|
33
|
-
react_1.default.createElement(FilterContent_1.FilterContent, { setFilterTerm: setFilterTerm, filters: filters, filterTerm: filterTerm, isMobile: false }),
|
|
34
|
-
isAddingFilter && (react_1.default.createElement(FilterPopover_1.FilterPopover, { setIsAddingFilter: setIsAddingFilter, filters: filters })),
|
|
35
|
-
react_1.default.createElement(CatalogPageContent, null,
|
|
36
|
-
react_1.default.createElement(CatalogPageDescriptionWrapper, null,
|
|
37
|
-
catalogConfig.title ? (react_1.default.createElement(CatalogTitle, null,
|
|
35
|
+
react_1.default.createElement(FilterContent_1.FilterContent, { setFilterTerm: setFilterTerm, filters: filters, filterTerm: filterTerm, isMobile: false, filterValuesCasing: catalogConfig.filterValuesCasing }),
|
|
36
|
+
isAddingFilter && (react_1.default.createElement(FilterPopover_1.FilterPopover, { setIsAddingFilter: setIsAddingFilter, filters: filters, filterValuesCasing: catalogConfig.filterValuesCasing })),
|
|
37
|
+
react_1.default.createElement(exports.CatalogPageContent, null,
|
|
38
|
+
react_1.default.createElement(exports.CatalogPageDescriptionWrapper, null,
|
|
39
|
+
catalogConfig.title ? (react_1.default.createElement(exports.CatalogTitle, null,
|
|
38
40
|
' ',
|
|
39
41
|
translate(catalogConfig.titleTranslationKey, catalogConfig.title),
|
|
40
42
|
' ')) : null,
|
|
41
|
-
catalogConfig.description ? (react_1.default.createElement(CatalogDescription, null,
|
|
43
|
+
catalogConfig.description ? (react_1.default.createElement(exports.CatalogDescription, null,
|
|
42
44
|
' ',
|
|
43
45
|
translate(catalogConfig.descriptionTranslationKey, catalogConfig.description),
|
|
44
46
|
' ')) : null),
|
|
@@ -79,11 +81,11 @@ exports.FilterControls = styled_components_1.default.div `
|
|
|
79
81
|
border-bottom: 1px solid var(--border-secondary);
|
|
80
82
|
background: var(--bg-raised);
|
|
81
83
|
`;
|
|
82
|
-
|
|
84
|
+
exports.CatalogPageContent = styled_components_1.default.main `
|
|
83
85
|
flex: 1;
|
|
84
86
|
padding: var(--mobile-catalog-page-padding);
|
|
85
87
|
|
|
86
|
-
${({ theme }) => theme.mediaQueries.
|
|
88
|
+
${({ theme }) => theme.mediaQueries.medium} {
|
|
87
89
|
padding: var(--catalog-page-padding);
|
|
88
90
|
}
|
|
89
91
|
`;
|
|
@@ -93,7 +95,7 @@ const CatalogCards = styled_components_1.default.div `
|
|
|
93
95
|
gap: 32px;
|
|
94
96
|
margin: var(--catalog-cards-group-margin);
|
|
95
97
|
`;
|
|
96
|
-
|
|
98
|
+
exports.CatalogTitle = (0, styled_components_1.default)(H2_1.H2) `
|
|
97
99
|
color: var(--catalog-title-text-color);
|
|
98
100
|
font-weight: var(--catalog-title-font-weight);
|
|
99
101
|
font-size: var(--catalog-title-font-size);
|
|
@@ -102,13 +104,13 @@ const CatalogTitle = (0, styled_components_1.default)(H2_1.H2) `
|
|
|
102
104
|
margin: 0;
|
|
103
105
|
}
|
|
104
106
|
`;
|
|
105
|
-
|
|
107
|
+
exports.CatalogDescription = styled_components_1.default.p `
|
|
106
108
|
color: var(--catalog-description-text-color);
|
|
107
109
|
font-weight: var(--catalog-description-font-weight);
|
|
108
110
|
font-size: var(--catalog-description-font-size);
|
|
109
111
|
margin: var(--catalog-description-margin-top) 0 var(--catalog-description-margin-bottom) 0;
|
|
110
112
|
`;
|
|
111
|
-
|
|
113
|
+
exports.CatalogPageWrapper = styled_components_1.default.div `
|
|
112
114
|
--sidebar-width: var(--catalog-sidebar-width, 285px);
|
|
113
115
|
|
|
114
116
|
display: flex;
|
|
@@ -134,7 +136,7 @@ const CatalogPageWrapper = styled_components_1.default.div `
|
|
|
134
136
|
font-weight: var(--link-font-weight);
|
|
135
137
|
}
|
|
136
138
|
|
|
137
|
-
${({ theme }) => theme.mediaQueries.
|
|
139
|
+
${({ theme }) => theme.mediaQueries.medium} {
|
|
138
140
|
flex-direction: row;
|
|
139
141
|
}
|
|
140
142
|
`;
|
|
@@ -143,7 +145,7 @@ const FilterTagsWrapper = styled_components_1.default.div.attrs({ 'data-cy': 'Ca
|
|
|
143
145
|
display: flex;
|
|
144
146
|
overflow-x: scroll;
|
|
145
147
|
|
|
146
|
-
${({ theme }) => theme.mediaQueries.
|
|
148
|
+
${({ theme }) => theme.mediaQueries.medium} {
|
|
147
149
|
display: none;
|
|
148
150
|
}
|
|
149
151
|
|
|
@@ -165,10 +167,10 @@ const FilterTagsWrapper = styled_components_1.default.div.attrs({ 'data-cy': 'Ca
|
|
|
165
167
|
}
|
|
166
168
|
}
|
|
167
169
|
`;
|
|
168
|
-
|
|
170
|
+
exports.CatalogPageDescriptionWrapper = styled_components_1.default.div `
|
|
169
171
|
display: none;
|
|
170
172
|
|
|
171
|
-
${({ theme }) => theme.mediaQueries.
|
|
173
|
+
${({ theme }) => theme.mediaQueries.medium} {
|
|
172
174
|
display: block;
|
|
173
175
|
}
|
|
174
176
|
`;
|
|
@@ -36,21 +36,38 @@ const icons_1 = require("../../icons");
|
|
|
36
36
|
const telemetry_1 = require("../../mocks/telemetry");
|
|
37
37
|
const utils_1 = require("../../utils");
|
|
38
38
|
function CatalogCard({ item }) {
|
|
39
|
-
var _a;
|
|
39
|
+
var _a, _b;
|
|
40
|
+
const hasTags = item.scorecardStatus || ((_a = item.tags) === null || _a === void 0 ? void 0 : _a.length);
|
|
40
41
|
return (React.createElement(Link_1.Link, { key: item.docsLink || item.link, to: item.docsLink || item.link },
|
|
41
42
|
React.createElement(StyledCard, { onClick: () => telemetry_1.telemetry.send('catalog_item_clicked', {}) },
|
|
42
43
|
React.createElement(CardTitle, null,
|
|
43
44
|
React.createElement(Highlight_1.Highlight, null, item.title)),
|
|
44
45
|
React.createElement(CardContent, null,
|
|
45
46
|
React.createElement(CardDescription, null,
|
|
46
|
-
React.createElement(Highlight_1.Highlight, null, (
|
|
47
|
+
React.createElement(Highlight_1.Highlight, null, (_b = item.description) !== null && _b !== void 0 ? _b : '')),
|
|
47
48
|
React.createElement(CardFooter, null,
|
|
48
|
-
|
|
49
|
-
React.createElement(
|
|
49
|
+
hasTags && (React.createElement(CardTags, null,
|
|
50
|
+
(item.tags || []).map((tag, index) => (React.createElement(CardTag, { key: tag + index, color: (0, utils_1.slug)(tag) },
|
|
51
|
+
React.createElement(Highlight_1.Highlight, null, tag)))),
|
|
52
|
+
(item.scorecardLevel && item.scorecardStatus && (React.createElement(CardTag, { color: statusToColor(item.scorecardStatus), className: "tag-variant-scorecard-level" },
|
|
53
|
+
React.createElement(Highlight_1.Highlight, null, item.scorecardLevel)))) ||
|
|
54
|
+
null)),
|
|
50
55
|
React.createElement(SelectButton, null,
|
|
51
56
|
React.createElement(icons_1.PointingArrowIcon, null)))))));
|
|
52
57
|
}
|
|
53
58
|
exports.CatalogCard = CatalogCard;
|
|
59
|
+
function statusToColor(status) {
|
|
60
|
+
switch (status) {
|
|
61
|
+
case 'Below minimum':
|
|
62
|
+
return 'error';
|
|
63
|
+
case 'Minimum':
|
|
64
|
+
return 'warning';
|
|
65
|
+
case 'Highest':
|
|
66
|
+
return 'success';
|
|
67
|
+
default:
|
|
68
|
+
return '';
|
|
69
|
+
}
|
|
70
|
+
}
|
|
54
71
|
const SelectButton = styled_components_1.default.div `
|
|
55
72
|
border: 1px solid var(--catalog-card-button-border-color);
|
|
56
73
|
border-radius: 100%;
|
|
@@ -86,7 +103,7 @@ const StyledCard = styled_components_1.default.div.attrs({ 'data-cy': 'Catalog/C
|
|
|
86
103
|
transform: rotate(-45deg);
|
|
87
104
|
border-color: var(--catalog-card-hover-border-color);
|
|
88
105
|
background: var(--catalog-card-button-hover-background);
|
|
89
|
-
|
|
106
|
+
|
|
90
107
|
svg {
|
|
91
108
|
fill: var(--catalog-card-icon-hover-color);
|
|
92
109
|
}
|
|
@@ -68,7 +68,7 @@ exports.code = (0, styled_components_1.css) `
|
|
|
68
68
|
--code-block-tokens-constant-color: var(--code-block-tokens-default-color); // @presenter Color
|
|
69
69
|
--code-block-tokens-symbol-color: var(--code-block-tokens-default-color); // @presenter Color
|
|
70
70
|
--code-block-tokens-boolean-color: var(--color-geekblue-7); // @presenter Color
|
|
71
|
-
--code-block-tokens-string-color: var(--color-
|
|
71
|
+
--code-block-tokens-string-color: var(--color-cyan-6); // @presenter Color
|
|
72
72
|
--code-block-tokens-property-string-color: var(--text-secondary); // @presenter Color
|
|
73
73
|
--code-block-tokens-selector-color: var(--code-block-tokens-string-color); // @presenter Color
|
|
74
74
|
--code-block-tokens-attr-name-color: var(--code-block-tokens-string-color); // @presenter Color
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { ResolvedFilter } from '../../types/portal/src/shared/types/catalog';
|
|
3
|
-
|
|
3
|
+
import type { ThemeConfig } from '../../config';
|
|
4
|
+
export declare function Filter({ filter, filterValuesCasing, }: {
|
|
4
5
|
filter: ResolvedFilter & {
|
|
5
6
|
selectedOptions: any;
|
|
6
7
|
};
|
|
8
|
+
filterValuesCasing?: NonNullable<ThemeConfig['catalog']>[string]['filterValuesCasing'];
|
|
7
9
|
}): JSX.Element | null;
|
|
@@ -10,7 +10,7 @@ const react_date_picker_1 = require("react-date-picker");
|
|
|
10
10
|
const hooks_1 = require("../../mocks/hooks");
|
|
11
11
|
const icons_1 = require("../../icons");
|
|
12
12
|
const Select_1 = require("../../components/Select");
|
|
13
|
-
function Filter({ filter }) {
|
|
13
|
+
function Filter({ filter, filterValuesCasing, }) {
|
|
14
14
|
var _a, _b;
|
|
15
15
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
16
16
|
const translationKeys = {
|
|
@@ -33,7 +33,7 @@ function Filter({ filter }) {
|
|
|
33
33
|
selectOptions.push(...filter.filteredOptions.map((option) => ({
|
|
34
34
|
value: option.value,
|
|
35
35
|
component: (react_1.default.createElement(FilterOption, { key: option.value, role: "link", onClick: () => filter.selectOption(option.value) },
|
|
36
|
-
react_1.default.createElement(FilterOptionLabel, null, translate(option.value)),
|
|
36
|
+
react_1.default.createElement(FilterOptionLabel, null, changeCasing(translate(option.value), filterValuesCasing)),
|
|
37
37
|
react_1.default.createElement(FilterOptionCount, null, option.count))),
|
|
38
38
|
})));
|
|
39
39
|
}
|
|
@@ -66,11 +66,25 @@ function Filter({ filter }) {
|
|
|
66
66
|
const id = 'filter--' + filter.property + '--' + slug(value.value);
|
|
67
67
|
return (react_1.default.createElement(FilterOption, { key: id, role: "link", onClick: () => filter.toggleOption(value.value) },
|
|
68
68
|
react_1.default.createElement(icons_1.CheckboxIcon, { checked: filter.selectedOptions.has(value.value) }),
|
|
69
|
-
react_1.default.createElement(FilterOptionLabel, null, translate(value.value)),
|
|
69
|
+
react_1.default.createElement(FilterOptionLabel, null, changeCasing(translate(value.value), filterValuesCasing)),
|
|
70
70
|
react_1.default.createElement(FilterOptionCount, null, value.count)));
|
|
71
71
|
}))));
|
|
72
72
|
}
|
|
73
73
|
exports.Filter = Filter;
|
|
74
|
+
function changeCasing(str, casing) {
|
|
75
|
+
if (!casing || casing === 'original' || !str)
|
|
76
|
+
return str;
|
|
77
|
+
if (casing === 'lowercase') {
|
|
78
|
+
return str.toLowerCase();
|
|
79
|
+
}
|
|
80
|
+
if (casing === 'uppercase') {
|
|
81
|
+
return str.toUpperCase();
|
|
82
|
+
}
|
|
83
|
+
if (casing === 'sentence') {
|
|
84
|
+
const words = str.split(/[\s-_]+/);
|
|
85
|
+
return words.map((word) => word[0].toUpperCase() + word.slice(1).toLowerCase()).join(' ');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
74
88
|
const FilterGroup = styled_components_1.default.div `
|
|
75
89
|
padding: var(--filter-group-padding);
|
|
76
90
|
`;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
import type { ThemeConfig } from '../../index.js';
|
|
2
3
|
import type { ResolvedFilter } from '../../types/portal/src/shared/types/catalog';
|
|
3
4
|
interface FilterContentProps {
|
|
4
5
|
setFilterTerm: (value: string) => void;
|
|
5
6
|
filters: ResolvedFilter[];
|
|
6
7
|
filterTerm: string;
|
|
7
8
|
isMobile: boolean;
|
|
9
|
+
filterValuesCasing?: NonNullable<ThemeConfig['catalog']>[string]['filterValuesCasing'];
|
|
8
10
|
}
|
|
9
|
-
export declare function FilterContent({ setFilterTerm, filters, filterTerm, isMobile, }: FilterContentProps): JSX.Element;
|
|
11
|
+
export declare function FilterContent({ setFilterTerm, filters, filterTerm, isMobile, filterValuesCasing, }: FilterContentProps): JSX.Element;
|
|
10
12
|
export declare const FilterItems: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
11
13
|
export {};
|
|
@@ -9,9 +9,10 @@ const styled_components_1 = __importDefault(require("styled-components"));
|
|
|
9
9
|
const _theme_1 = require("../../index.js");
|
|
10
10
|
const hooks_1 = require("../../mocks/hooks");
|
|
11
11
|
const Catalog_1 = require("../../components/Catalog");
|
|
12
|
-
const
|
|
12
|
+
const Filter_1 = require("../../components/Filter");
|
|
13
|
+
const Sidebar_1 = require("../../components/Sidebar");
|
|
13
14
|
const FilterPopover_1 = require("../../components/Filter/FilterPopover");
|
|
14
|
-
function FilterContent({ setFilterTerm, filters, filterTerm, isMobile, }) {
|
|
15
|
+
function FilterContent({ setFilterTerm, filters, filterTerm, isMobile, filterValuesCasing, }) {
|
|
15
16
|
const { translate } = (0, hooks_1.useTranslate)();
|
|
16
17
|
const translationKeys = {
|
|
17
18
|
placeholder: 'theme.catalog.filters.placeholder',
|
|
@@ -31,11 +32,11 @@ function FilterContent({ setFilterTerm, filters, filterTerm, isMobile, }) {
|
|
|
31
32
|
return (react_1.default.createElement(FilterContentWrapper, { isMobile: isMobile },
|
|
32
33
|
react_1.default.createElement(Catalog_1.FilterControls, null,
|
|
33
34
|
react_1.default.createElement(FilterPopover_1.StyledInput, { placeholder: translate(translationKeys.placeholder, 'Type to filter...'), value: filterTerm, onChange: (e) => setFilterTerm(e.target.value) })),
|
|
34
|
-
react_1.default.createElement(exports.FilterItems, null, filters.map((filter, idx) => (react_1.default.createElement(
|
|
35
|
+
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 })))),
|
|
35
36
|
hasActiveFilters && (react_1.default.createElement(_theme_1.Button, { size: "small", onClick: handleClearAll }, translate(translationKeys.placeholder, 'Clear all filters')))));
|
|
36
37
|
}
|
|
37
38
|
exports.FilterContent = FilterContent;
|
|
38
|
-
const FilterContentWrapper = styled_components_1.default.
|
|
39
|
+
const FilterContentWrapper = (0, styled_components_1.default)(Sidebar_1.Sidebar) `
|
|
39
40
|
width: var(--sidebar-width);
|
|
40
41
|
display: none;
|
|
41
42
|
|
|
@@ -44,7 +45,7 @@ const FilterContentWrapper = styled_components_1.default.div `
|
|
|
44
45
|
margin: var(--filter-content-clear-button-margin);
|
|
45
46
|
}
|
|
46
47
|
|
|
47
|
-
${({ theme, isMobile }) => !isMobile && theme.mediaQueries.
|
|
48
|
+
${({ theme, isMobile }) => !isMobile && theme.mediaQueries.medium} {
|
|
48
49
|
display: block;
|
|
49
50
|
border-right: 1px solid var(--filter-content-border-color);
|
|
50
51
|
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
+
import type { ThemeConfig } from '../../index.js';
|
|
2
3
|
import type { ResolvedFilter } from '../../types/portal/src/shared/types/catalog';
|
|
3
4
|
interface FilterPopoverProps {
|
|
4
5
|
setIsAddingFilter: (value: boolean) => void;
|
|
5
6
|
filters: ResolvedFilter[];
|
|
7
|
+
filterValuesCasing?: NonNullable<ThemeConfig['catalog']>[string]['filterValuesCasing'];
|
|
6
8
|
}
|
|
7
|
-
export declare function FilterPopover({ setIsAddingFilter, filters }: FilterPopoverProps): JSX.Element;
|
|
9
|
+
export declare function FilterPopover({ setIsAddingFilter, filters, filterValuesCasing, }: FilterPopoverProps): JSX.Element;
|
|
8
10
|
export declare const StyledInput: import("styled-components").StyledComponent<"input", any, {
|
|
9
11
|
'data-cy': string;
|
|
10
12
|
}, "data-cy">;
|
|
@@ -9,11 +9,11 @@ const styled_components_1 = __importDefault(require("styled-components"));
|
|
|
9
9
|
const _theme_1 = require("../../index.js");
|
|
10
10
|
const FilterContent_1 = require("../../components/Filter/FilterContent");
|
|
11
11
|
const hooks_1 = require("../../mocks/hooks");
|
|
12
|
-
function FilterPopover({ setIsAddingFilter, filters }) {
|
|
12
|
+
function FilterPopover({ setIsAddingFilter, filters, filterValuesCasing, }) {
|
|
13
13
|
const [filterTerm, setFilterTerm] = react_1.default.useState('');
|
|
14
14
|
const filteredFilters = filters
|
|
15
15
|
.map((filter) => {
|
|
16
|
-
const options = filter.options.filter((option) => option.value.includes(filterTerm));
|
|
16
|
+
const options = filter.options.filter((option) => option.value.toLowerCase().includes(filterTerm.toLowerCase()));
|
|
17
17
|
return options.length
|
|
18
18
|
? Object.assign(Object.assign({}, filter), { filteredOptions: options }) : null;
|
|
19
19
|
})
|
|
@@ -27,7 +27,7 @@ function FilterPopover({ setIsAddingFilter, filters }) {
|
|
|
27
27
|
react_1.default.createElement(FilterPopoverHeader, null,
|
|
28
28
|
react_1.default.createElement(FilterPopoverHeaderLabel, null, "Add Filter"),
|
|
29
29
|
react_1.default.createElement(FilterPopoverHeaderButton, { onClick: () => setIsAddingFilter(false) }, translate(translationKeys.placeholder, 'Done'))),
|
|
30
|
-
react_1.default.createElement(FilterContent_1.FilterContent, { setFilterTerm: setFilterTerm, filters: filters, filterTerm: filterTerm, isMobile: true }),
|
|
30
|
+
react_1.default.createElement(FilterContent_1.FilterContent, { setFilterTerm: setFilterTerm, filters: filters, filterTerm: filterTerm, filterValuesCasing: filterValuesCasing, isMobile: true }),
|
|
31
31
|
react_1.default.createElement(_theme_1.FilterControls, null,
|
|
32
32
|
react_1.default.createElement(exports.StyledInput, { placeholder: translate(translationKeys.placeholder, 'Type to filter...'), value: filterTerm, onChange: (e) => setFilterTerm(e.target.value) })),
|
|
33
33
|
react_1.default.createElement(FilterContent_1.FilterItems, null, filteredFilters.map((filter, idx) => (react_1.default.createElement(_theme_1.Filter, { filter: filter, key: filter.property + '-' + idx }))))));
|
|
@@ -44,7 +44,7 @@ const FilterPopoverWrapper = styled_components_1.default.aside `
|
|
|
44
44
|
background-color: var(--filter-popover-background-color);
|
|
45
45
|
display: block;
|
|
46
46
|
|
|
47
|
-
${({ theme }) => theme.mediaQueries.
|
|
47
|
+
${({ theme }) => theme.mediaQueries.medium} {
|
|
48
48
|
display: none;
|
|
49
49
|
}
|
|
50
50
|
`;
|
|
@@ -32,7 +32,7 @@ exports.filter = (0, styled_components_1.css) `
|
|
|
32
32
|
--filter-option-count-background-color: var(--bg-raised);
|
|
33
33
|
|
|
34
34
|
--filter-content-border-color: var(--border-secondary);
|
|
35
|
-
--filter-content-items-padding: 0 var(--
|
|
35
|
+
--filter-content-items-padding: 0 var(--spacing-lg);
|
|
36
36
|
--filter-content-clear-button-margin: var(--spacing-base) auto 0 auto;
|
|
37
37
|
--filter-content-clear-button-width: calc(var(--spacing-unit) * 40);
|
|
38
38
|
--filter-controls-background-color: var(--bg-base);
|
|
@@ -13,12 +13,13 @@ const hooks_1 = require("../../hooks");
|
|
|
13
13
|
const ui_1 = require("../../ui");
|
|
14
14
|
const NavbarLogo_1 = require("../../components/NavbarLogo");
|
|
15
15
|
function Footer() {
|
|
16
|
+
var _a;
|
|
16
17
|
const { footer, logo } = (0, hooks_1.useThemeConfig)() || {};
|
|
17
18
|
const { items, copyrightText } = footer || {};
|
|
18
19
|
if ((0, utils_1.isEmptyArray)(items) || (footer === null || footer === void 0 ? void 0 : footer.hide)) {
|
|
19
20
|
return null;
|
|
20
21
|
}
|
|
21
|
-
return (react_1.default.createElement(FooterPresentationalComponent, { items: items, copyrightText: copyrightText, logo: logo }));
|
|
22
|
+
return (react_1.default.createElement(FooterPresentationalComponent, { items: items, copyrightText: copyrightText, logo: ((_a = footer === null || footer === void 0 ? void 0 : footer.logo) === null || _a === void 0 ? void 0 : _a.hide) ? undefined : logo }));
|
|
22
23
|
}
|
|
23
24
|
exports.Footer = Footer;
|
|
24
25
|
function FooterPresentationalComponent({ items, copyrightText, logo, className, }) {
|
|
@@ -53,6 +53,8 @@ const FooterColumnContainer = styled_components_1.default.div `
|
|
|
53
53
|
flex: 1;
|
|
54
54
|
margin: 0 0 var(--mobile-footer-column-margin-bottom) 0;
|
|
55
55
|
min-width: var(--footer-column-min-width);
|
|
56
|
+
align-content: center;
|
|
57
|
+
flex-wrap: wrap;
|
|
56
58
|
|
|
57
59
|
${({ theme }) => theme.mediaQueries.small} {
|
|
58
60
|
text-align: left;
|
|
@@ -44,7 +44,7 @@ exports.footer = (0, styled_components_1.css) `
|
|
|
44
44
|
--footer-copyright-text-align: start;
|
|
45
45
|
|
|
46
46
|
--footer-logo-display: block;
|
|
47
|
-
--footer-logo-margin-right:
|
|
47
|
+
--footer-logo-margin-right: 0; // @presenter Spacing
|
|
48
48
|
--footer-logo-margin-bottom: var(--spacing-xl); // @presenter Spacing
|
|
49
49
|
|
|
50
50
|
--footer-language-picker-display: block;
|
|
@@ -10,16 +10,17 @@ const AlertIcon_1 = require("../../icons/AlertIcon/AlertIcon");
|
|
|
10
10
|
function Admonition({ type = 'info', name, children, className, 'data-source': dataSource, 'data-hash': dataHash, }) {
|
|
11
11
|
return (react_1.default.createElement(Wrapper, { type: type, className: className, "data-component-name": "Markdown/Admonition", "data-source": dataSource, "data-hash": dataHash },
|
|
12
12
|
react_1.default.createElement(AlertIcon_1.AlertIcon, { type: type }),
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
react_1.default.createElement(TextContainer, null,
|
|
14
|
+
name ? react_1.default.createElement(Heading, { type: type }, name) : null,
|
|
15
|
+
react_1.default.createElement(Content, null, children))));
|
|
15
16
|
}
|
|
16
17
|
exports.Admonition = Admonition;
|
|
17
18
|
const Wrapper = styled_components_1.default.div `
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
display: flex;
|
|
20
|
+
flex-direction: row;
|
|
21
|
+
gap: var(--spacing-base);
|
|
20
22
|
margin: var(--admonition-margin-vertical) var(--admonition-margin-horizontal);
|
|
21
23
|
padding: var(--admonition-padding-vertical) var(--admonition-padding-horizontal);
|
|
22
|
-
padding-left: calc(var(--admonition-padding-horizontal) * 2 + var(--admonition-icon-size));
|
|
23
24
|
border-radius: var(--admonition-border-radius);
|
|
24
25
|
font-size: var(--admonition-font-size);
|
|
25
26
|
font-weight: var(--admonition-font-weight);
|
|
@@ -34,10 +35,12 @@ const Wrapper = styled_components_1.default.div `
|
|
|
34
35
|
border: var(--admonition-${type}-border);
|
|
35
36
|
`}
|
|
36
37
|
`;
|
|
37
|
-
const
|
|
38
|
-
display:
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
const TextContainer = styled_components_1.default.div `
|
|
39
|
+
display: flex;
|
|
40
|
+
flex-direction: column;
|
|
41
|
+
gap: var(--spacing-unit);
|
|
42
|
+
`;
|
|
43
|
+
const Heading = styled_components_1.default.div `
|
|
41
44
|
letter-spacing: var(--admonition-heading-letter-spacing);
|
|
42
45
|
color: ${({ type }) => `var(--admonition-${type}-heading-text-color)`};
|
|
43
46
|
|
|
@@ -12,6 +12,9 @@ function Mermaid({ diagramHtml, 'data-source': dataSource, 'data-hash': dataHash
|
|
|
12
12
|
}
|
|
13
13
|
exports.Mermaid = Mermaid;
|
|
14
14
|
const Wrapper = styled_components_1.default.div `
|
|
15
|
+
background-color: var(--mermaid-background-color);
|
|
16
|
+
border-radius: var(--mermaid-border-radius);
|
|
17
|
+
|
|
15
18
|
.mermaid > svg {
|
|
16
19
|
font-size: var(--font-size-base) !important;
|
|
17
20
|
max-width: 100%;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.markdown = exports.admonition = void 0;
|
|
3
|
+
exports.mermaid = exports.markdown = exports.admonition = void 0;
|
|
4
4
|
const styled_components_1 = require("styled-components");
|
|
5
5
|
exports.admonition = (0, styled_components_1.css) `
|
|
6
6
|
/* === Admonitions === */
|
|
@@ -9,11 +9,11 @@ exports.admonition = (0, styled_components_1.css) `
|
|
|
9
9
|
* @tokens Admonition typography
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
--admonition-font-size: var(--font-size-
|
|
12
|
+
--admonition-font-size: var(--font-size-sm); // @presenter FontSize
|
|
13
13
|
--admonition-font-weight: var(--font-weight-regular); // @presenter FontWeight
|
|
14
14
|
--admonition-line-height: var(--line-height-base); // @presenter LineHeight
|
|
15
15
|
--admonition-heading-font-size: var(--font-size-base); // @presenter FontSize
|
|
16
|
-
--admonition-heading-font-weight: var(--font-weight-
|
|
16
|
+
--admonition-heading-font-weight: var(--font-weight-regular); // @presenter FontWeight
|
|
17
17
|
--admonition-heading-letter-spacing: 0.3px; // @presenter LetterSpacing
|
|
18
18
|
--admonition-heading-transform: uppercase;
|
|
19
19
|
|
|
@@ -23,16 +23,16 @@ exports.admonition = (0, styled_components_1.css) `
|
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
25
|
--admonition-margin-horizontal: 0;
|
|
26
|
-
--admonition-margin-vertical:
|
|
26
|
+
--admonition-margin-vertical: var(--spacing-lg);
|
|
27
27
|
--admonition-padding-horizontal: var(--spacing-base);
|
|
28
|
-
--admonition-padding-vertical:
|
|
28
|
+
--admonition-padding-vertical: var(--spacing-md);
|
|
29
29
|
--admonition-icon-size: 25px;
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
32
|
* @tokens Admonition border
|
|
33
33
|
*/
|
|
34
34
|
|
|
35
|
-
--admonition-border-radius:
|
|
35
|
+
--admonition-border-radius: 0; // @presenter BorderRadius
|
|
36
36
|
--admonition-border-style: var(--border-style);
|
|
37
37
|
--admonition-border-width: var(--border-width);
|
|
38
38
|
|
|
@@ -218,4 +218,14 @@ exports.markdown = (0, styled_components_1.css) `
|
|
|
218
218
|
|
|
219
219
|
// @tokens End
|
|
220
220
|
`;
|
|
221
|
+
exports.mermaid = (0, styled_components_1.css) `
|
|
222
|
+
/**
|
|
223
|
+
* @tokens Mermaid
|
|
224
|
+
*/
|
|
225
|
+
|
|
226
|
+
--mermaid-background-color: var(--bg-raised-light); // @presenter Color
|
|
227
|
+
--mermaid-border-radius: var(--border-radius-lg); // @presenter BorderRadius
|
|
228
|
+
|
|
229
|
+
// @tokens End
|
|
230
|
+
`;
|
|
221
231
|
//# sourceMappingURL=styledVariables.js.map
|
|
@@ -422,7 +422,7 @@ exports.apiReferencePanels = (0, styled_components_1.css) `
|
|
|
422
422
|
* @tokens Panel try-it tabs
|
|
423
423
|
*/
|
|
424
424
|
|
|
425
|
-
--panel-try-it-tabs-font-size:
|
|
425
|
+
--panel-try-it-tabs-font-size: var(--font-size-sm);
|
|
426
426
|
--panel-try-it-tabs-font-family: var(--panel-font-family); // @presenter FontFamily
|
|
427
427
|
--panel-try-it-tabs-font-weight: var(--panel-font-weight); // @presenter FontWeight
|
|
428
428
|
|
|
@@ -19,7 +19,7 @@ const ProductPicker = () => {
|
|
|
19
19
|
const products = Object.values(((_a = globalData === null || globalData === void 0 ? void 0 : globalData.theme) === null || _a === void 0 ? void 0 : _a.products) || {});
|
|
20
20
|
const productComponents = products.map((product) => (react_1.default.createElement(Link_1.Link, { key: product.slug, to: product.link },
|
|
21
21
|
react_1.default.createElement(Product_1.Product, { product: product }))));
|
|
22
|
-
return products.length ? (react_1.default.createElement(ProductSelect, { selected: currentProductComponent, options: productComponents,
|
|
22
|
+
return products.length ? (react_1.default.createElement(ProductSelect, { selected: currentProductComponent, options: productComponents, triggerEvent: "hover" })) : null;
|
|
23
23
|
};
|
|
24
24
|
exports.ProductPicker = ProductPicker;
|
|
25
25
|
const ProductSelect = (0, styled_components_1.default)(Select_1.Select).attrs(() => ({
|
|
@@ -15,9 +15,7 @@ export interface SelectProps {
|
|
|
15
15
|
export declare const Select: ({ className, selected, options, dataAttributes, withArrow, triggerEvent, onChange, placement, alignment, icon, onlyIcon, }: SelectProps) => JSX.Element;
|
|
16
16
|
export declare const SelectContainer: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
17
17
|
export declare const SelectInput: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
18
|
-
export declare const SelectInputValue: import("styled-components").StyledComponent<"div", any, {
|
|
19
|
-
withIcon?: boolean | undefined;
|
|
20
|
-
}, never>;
|
|
18
|
+
export declare const SelectInputValue: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
21
19
|
export declare const SelectList: import("styled-components").StyledComponent<"ul", any, {
|
|
22
20
|
placement?: string | undefined;
|
|
23
21
|
alignment?: string | undefined;
|
|
@@ -31,7 +31,7 @@ const react_1 = __importStar(require("react"));
|
|
|
31
31
|
const styled_components_1 = __importDefault(require("styled-components"));
|
|
32
32
|
const icons_1 = require("../../icons");
|
|
33
33
|
const hooks_1 = require("../../hooks");
|
|
34
|
-
const Select = ({ className, selected, options, dataAttributes, withArrow, triggerEvent = 'click', onChange, placement, alignment, icon, onlyIcon, }) => {
|
|
34
|
+
const Select = ({ className, selected, options, dataAttributes, withArrow = true, triggerEvent = 'click', onChange, placement, alignment, icon, onlyIcon, }) => {
|
|
35
35
|
const selectRef = (0, react_1.useRef)(null);
|
|
36
36
|
const [isOpen, setIsOpen] = (0, react_1.useState)(false);
|
|
37
37
|
const [_selected, setSelected] = (0, react_1.useState)(selected);
|
|
@@ -56,7 +56,7 @@ const Select = ({ className, selected, options, dataAttributes, withArrow, trigg
|
|
|
56
56
|
}, [selected]);
|
|
57
57
|
return (react_1.default.createElement(exports.SelectContainer, Object.assign({}, dataAttributes, { "data-testid": "select", className: className, ref: selectRef, onPointerEnter: triggerEvent === 'hover' ? handleOpen : undefined, onPointerLeave: triggerEvent === 'hover' ? handleClose : undefined, onClick: triggerEvent === 'click' ? handleToggle : undefined }),
|
|
58
58
|
react_1.default.createElement(exports.SelectInput, null,
|
|
59
|
-
!onlyIcon &&
|
|
59
|
+
!onlyIcon && react_1.default.createElement(exports.SelectInputValue, null, _selected),
|
|
60
60
|
icon,
|
|
61
61
|
withArrow ? isOpen ? react_1.default.createElement(icons_1.ArrowIcon, { direction: "up" }) : react_1.default.createElement(icons_1.ArrowIcon, { direction: "down" }) : null),
|
|
62
62
|
isOpen && (react_1.default.createElement(exports.SelectList, { placement: placement, alignment: alignment }, options.map((option, index) => (react_1.default.createElement(exports.SelectListItem, { key: index, onClick: () => handleSelect(option) }, option)))))));
|
|
@@ -83,19 +83,21 @@ exports.SelectInput = styled_components_1.default.div `
|
|
|
83
83
|
border-radius: var(--select-input-border-radius);
|
|
84
84
|
padding: var(--select-input-padding-vertical) var(--select-input-padding-horizontal);
|
|
85
85
|
cursor: pointer;
|
|
86
|
+
gap: 8px;
|
|
86
87
|
`;
|
|
87
88
|
exports.SelectInputValue = styled_components_1.default.div `
|
|
88
89
|
pointer-events: none;
|
|
89
|
-
|
|
90
|
+
min-width: 0;
|
|
90
91
|
`;
|
|
91
92
|
exports.SelectList = styled_components_1.default.ul `
|
|
92
93
|
position: absolute;
|
|
93
|
-
top: ${({ placement }) => (placement === 'top' ? 'auto' : '100%')};
|
|
94
|
-
bottom: ${({ placement }) => (placement === 'top' ? '100%' : 'auto')};
|
|
94
|
+
top: ${({ placement }) => (placement === 'top' ? 'auto' : 'calc(100% + 2px)')};
|
|
95
|
+
bottom: ${({ placement }) => (placement === 'top' ? 'calc(100% + 2px)' : 'auto')};
|
|
95
96
|
left: ${({ alignment }) => (alignment === 'start' ? '0' : 'auto')};
|
|
96
97
|
right: ${({ alignment }) => (alignment === 'end' ? '0' : 'auto')};
|
|
97
98
|
margin: 0;
|
|
98
99
|
min-width: var(--select-list-min-width);
|
|
100
|
+
width: 100%;
|
|
99
101
|
max-width: var(--select-list-max-width);
|
|
100
102
|
padding: var(--select-list-padding);
|
|
101
103
|
background-color: var(--select-list-background-color);
|
|
@@ -9,8 +9,8 @@ exports.HeaderWrapper = styled_components_1.default.div.attrs(({ className }) =>
|
|
|
9
9
|
'data-component-name': 'Sidebar/HeaderWrapper',
|
|
10
10
|
className,
|
|
11
11
|
})) `
|
|
12
|
-
margin: var(--sidebar-offset-top) 0 0
|
|
13
|
-
padding
|
|
12
|
+
margin: var(--sidebar-offset-top) 0 0 0;
|
|
13
|
+
padding: 0 0 var(--sidebar-header-padding-bottom) var(--sidebar-offset-left);
|
|
14
14
|
border-bottom: solid 1px var(--border-secondary);
|
|
15
15
|
`;
|
|
16
16
|
//# sourceMappingURL=HeaderWrapper.js.map
|