@redocly/theme 0.42.3 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/lib/components/Buttons/CopyButton.js +2 -2
  2. package/lib/components/Buttons/EditPageButton.js +1 -1
  3. package/lib/components/Catalog/CatalogActions.js +1 -1
  4. package/lib/components/Dropdown/DropdownMenu.d.ts +2 -0
  5. package/lib/components/Dropdown/DropdownMenu.js +3 -1
  6. package/lib/components/Feedback/Comment.js +6 -6
  7. package/lib/components/Feedback/Mood.js +7 -7
  8. package/lib/components/Feedback/Rating.js +4 -4
  9. package/lib/components/Feedback/Reasons.js +3 -3
  10. package/lib/components/Feedback/Scale.js +10 -10
  11. package/lib/components/Feedback/Sentiment.js +5 -5
  12. package/lib/components/Filter/FilterContent.js +2 -2
  13. package/lib/components/Filter/FilterInput.js +1 -1
  14. package/lib/components/Filter/FilterPopover.js +2 -2
  15. package/lib/components/Filter/FilterSelect.js +1 -1
  16. package/lib/components/Footer/FooterCopyright.js +2 -2
  17. package/lib/components/LastUpdated/LastUpdated.js +1 -1
  18. package/lib/components/Loaders/SpinnerLoader.d.ts +5 -0
  19. package/lib/components/Loaders/SpinnerLoader.js +32 -0
  20. package/lib/components/PageNavigation/NextButton.js +1 -1
  21. package/lib/components/PageNavigation/PreviousButton.js +1 -1
  22. package/lib/components/Product/ProductPicker.js +1 -1
  23. package/lib/components/Search/FilterFields/SearchFilterFieldSelect.d.ts +12 -0
  24. package/lib/components/Search/FilterFields/SearchFilterFieldSelect.js +113 -0
  25. package/lib/components/Search/FilterFields/SearchFilterFieldTags.d.ts +10 -0
  26. package/lib/components/Search/FilterFields/SearchFilterFieldTags.js +37 -0
  27. package/lib/components/Search/Search.js +1 -1
  28. package/lib/components/Search/SearchDialog.js +113 -31
  29. package/lib/components/Search/SearchFilter.d.ts +11 -0
  30. package/lib/components/Search/SearchFilter.js +71 -0
  31. package/lib/components/Search/SearchFilterField.d.ts +11 -0
  32. package/lib/components/Search/SearchFilterField.js +43 -0
  33. package/lib/components/Search/SearchGroups.d.ts +9 -0
  34. package/lib/components/Search/SearchGroups.js +69 -0
  35. package/lib/components/Search/SearchHighlight.d.ts +1 -1
  36. package/lib/components/Search/SearchHighlight.js +28 -5
  37. package/lib/components/Search/SearchInput.d.ts +1 -1
  38. package/lib/components/Search/SearchInput.js +5 -2
  39. package/lib/components/Search/SearchItem.d.ts +2 -2
  40. package/lib/components/Search/SearchItem.js +24 -15
  41. package/lib/components/Search/SearchRecent.js +1 -1
  42. package/lib/components/Search/SearchSuggestedPages.js +1 -1
  43. package/lib/components/Search/SearchTrigger.js +2 -2
  44. package/lib/components/Search/variables.js +48 -2
  45. package/lib/components/Segmented/Segmented.d.ts +2 -5
  46. package/lib/components/Select/Select.d.ts +2 -36
  47. package/lib/components/Select/Select.js +136 -98
  48. package/lib/components/Select/SelectInput.d.ts +23 -0
  49. package/lib/components/Select/SelectInput.js +129 -0
  50. package/lib/components/Select/variables.js +12 -1
  51. package/lib/components/SidebarActions/ChangeViewButton.js +1 -1
  52. package/lib/components/SidebarActions/SidebarActions.js +2 -2
  53. package/lib/components/TableOfContent/TableOfContent.js +1 -1
  54. package/lib/components/Tag/Tag.d.ts +4 -2
  55. package/lib/components/Tag/Tag.js +40 -4
  56. package/lib/components/Tag/variables.dark.js +20 -5
  57. package/lib/components/Tag/variables.js +49 -17
  58. package/lib/components/UserMenu/LoginButton.js +1 -1
  59. package/lib/components/UserMenu/LogoutMenuItem.js +1 -1
  60. package/lib/components/UserMenu/UserMenu.js +1 -1
  61. package/lib/components/VersionPicker/VersionPicker.d.ts +2 -3
  62. package/lib/components/VersionPicker/VersionPicker.js +14 -31
  63. package/lib/core/hooks/__mocks__/index.d.ts +2 -1
  64. package/lib/core/hooks/__mocks__/index.js +2 -1
  65. package/lib/core/hooks/__mocks__/search/use-search-filter.d.ts +9 -0
  66. package/lib/core/hooks/__mocks__/search/use-search-filter.js +14 -0
  67. package/lib/core/hooks/__mocks__/use-theme-hooks.d.ts +6 -1
  68. package/lib/core/hooks/__mocks__/use-theme-hooks.js +6 -1
  69. package/lib/core/hooks/feedback/use-report-dialog.js +3 -3
  70. package/lib/core/hooks/index.d.ts +2 -1
  71. package/lib/core/hooks/index.js +2 -1
  72. package/lib/core/hooks/menu/use-mobile-menu-items.js +1 -1
  73. package/lib/core/hooks/menu/use-mobile-menu-levels.js +2 -2
  74. package/lib/core/hooks/search/use-recent-searches.js +2 -0
  75. package/lib/core/hooks/{use-search.d.ts → search/use-search-dialog.d.ts} +1 -1
  76. package/lib/core/hooks/{use-search.js → search/use-search-dialog.js} +5 -5
  77. package/lib/core/hooks/search/use-search-filter.d.ts +9 -0
  78. package/lib/core/hooks/search/use-search-filter.js +50 -0
  79. package/lib/core/types/hooks.d.ts +17 -4
  80. package/lib/core/types/index.d.ts +1 -1
  81. package/lib/core/types/index.js +1 -1
  82. package/lib/core/types/l10n.d.ts +1 -2
  83. package/lib/core/types/search.d.ts +42 -2
  84. package/lib/core/types/select.d.ts +31 -0
  85. package/lib/core/types/{select-option.js → select.js} +1 -1
  86. package/lib/core/utils/index.d.ts +1 -0
  87. package/lib/core/utils/index.js +1 -0
  88. package/lib/core/utils/menu.js +1 -1
  89. package/lib/core/utils/text-trimmer.d.ts +1 -0
  90. package/lib/core/utils/text-trimmer.js +16 -0
  91. package/lib/icons/ResetIcon/ResetIcon.d.ts +9 -0
  92. package/lib/icons/ResetIcon/ResetIcon.js +22 -0
  93. package/lib/icons/SettingsIcon/SettingsIcon.d.ts +9 -0
  94. package/lib/icons/SettingsIcon/SettingsIcon.js +23 -0
  95. package/lib/index.d.ts +8 -1
  96. package/lib/index.js +8 -1
  97. package/lib/layouts/Forbidden.js +2 -2
  98. package/lib/layouts/NotFound.js +3 -3
  99. package/lib/layouts/OIDCForbidden.js +1 -1
  100. package/lib/markdoc/tags/partial.js +1 -1
  101. package/package.json +9 -9
  102. package/src/components/Buttons/CopyButton.tsx +2 -2
  103. package/src/components/Buttons/EditPageButton.tsx +2 -2
  104. package/src/components/Catalog/CatalogActions.tsx +2 -2
  105. package/src/components/Dropdown/DropdownMenu.tsx +2 -1
  106. package/src/components/Feedback/Comment.tsx +8 -8
  107. package/src/components/Feedback/Mood.tsx +8 -8
  108. package/src/components/Feedback/Rating.tsx +5 -5
  109. package/src/components/Feedback/Reasons.tsx +4 -4
  110. package/src/components/Feedback/Scale.tsx +13 -13
  111. package/src/components/Feedback/Sentiment.tsx +6 -6
  112. package/src/components/Filter/FilterContent.tsx +3 -3
  113. package/src/components/Filter/FilterInput.tsx +1 -1
  114. package/src/components/Filter/FilterPopover.tsx +3 -3
  115. package/src/components/Filter/FilterSelect.tsx +5 -5
  116. package/src/components/Footer/FooterCopyright.tsx +3 -3
  117. package/src/components/LastUpdated/LastUpdated.tsx +1 -2
  118. package/src/components/Loaders/SpinnerLoader.tsx +31 -0
  119. package/src/components/PageNavigation/NextButton.tsx +1 -1
  120. package/src/components/PageNavigation/PreviousButton.tsx +1 -1
  121. package/src/components/Product/ProductPicker.tsx +2 -2
  122. package/src/components/Search/FilterFields/SearchFilterFieldSelect.tsx +135 -0
  123. package/src/components/Search/FilterFields/SearchFilterFieldTags.tsx +61 -0
  124. package/src/components/Search/Search.tsx +2 -2
  125. package/src/components/Search/SearchDialog.tsx +190 -51
  126. package/src/components/Search/SearchFilter.tsx +90 -0
  127. package/src/components/Search/SearchFilterField.tsx +84 -0
  128. package/src/components/Search/SearchGroups.tsx +81 -0
  129. package/src/components/Search/SearchHighlight.tsx +29 -2
  130. package/src/components/Search/SearchInput.tsx +9 -3
  131. package/src/components/Search/SearchItem.tsx +39 -24
  132. package/src/components/Search/SearchRecent.tsx +2 -2
  133. package/src/components/Search/SearchSuggestedPages.tsx +2 -2
  134. package/src/components/Search/SearchTrigger.tsx +2 -2
  135. package/src/components/Search/variables.ts +48 -2
  136. package/src/components/Segmented/Segmented.tsx +2 -2
  137. package/src/components/Select/Select.tsx +208 -157
  138. package/src/components/Select/SelectInput.tsx +201 -0
  139. package/src/components/Select/variables.ts +12 -1
  140. package/src/components/SidebarActions/ChangeViewButton.tsx +1 -1
  141. package/src/components/SidebarActions/SidebarActions.tsx +2 -2
  142. package/src/components/TableOfContent/TableOfContent.tsx +2 -2
  143. package/src/components/Tag/Tag.tsx +57 -6
  144. package/src/components/Tag/variables.dark.ts +20 -5
  145. package/src/components/Tag/variables.ts +49 -17
  146. package/src/components/UserMenu/LoginButton.tsx +2 -2
  147. package/src/components/UserMenu/LogoutMenuItem.tsx +2 -2
  148. package/src/components/UserMenu/UserMenu.tsx +2 -2
  149. package/src/components/VersionPicker/VersionPicker.tsx +18 -42
  150. package/src/core/hooks/__mocks__/index.ts +2 -1
  151. package/src/core/hooks/__mocks__/search/use-search-filter.ts +10 -0
  152. package/src/core/hooks/__mocks__/use-theme-hooks.ts +6 -1
  153. package/src/core/hooks/feedback/use-report-dialog.ts +3 -3
  154. package/src/core/hooks/index.ts +2 -1
  155. package/src/core/hooks/menu/use-mobile-menu-items.ts +1 -1
  156. package/src/core/hooks/menu/use-mobile-menu-levels.ts +2 -2
  157. package/src/core/hooks/search/use-recent-searches.ts +3 -0
  158. package/src/core/hooks/{use-search.ts → search/use-search-dialog.ts} +1 -1
  159. package/src/core/hooks/search/use-search-filter.ts +57 -0
  160. package/src/core/types/hooks.ts +25 -4
  161. package/src/core/types/index.ts +1 -1
  162. package/src/core/types/l10n.ts +169 -97
  163. package/src/core/types/search.ts +53 -2
  164. package/src/core/types/select.ts +33 -0
  165. package/src/core/utils/index.ts +1 -0
  166. package/src/core/utils/menu.ts +1 -1
  167. package/src/core/utils/text-trimmer.ts +7 -0
  168. package/src/icons/ResetIcon/ResetIcon.tsx +26 -0
  169. package/src/icons/SettingsIcon/SettingsIcon.tsx +30 -0
  170. package/src/index.ts +8 -1
  171. package/src/layouts/Forbidden.tsx +4 -9
  172. package/src/layouts/NotFound.tsx +6 -6
  173. package/src/layouts/OIDCForbidden.tsx +2 -2
  174. package/src/markdoc/tags/partial.ts +1 -1
  175. package/lib/core/types/select-option.d.ts +0 -4
  176. package/src/core/types/select-option.ts +0 -4
  177. /package/lib/components/{Loading → Loaders}/Loading.d.ts +0 -0
  178. /package/lib/components/{Loading → Loaders}/Loading.js +0 -0
  179. /package/src/components/{Loading → Loaders}/Loading.tsx +0 -0
@@ -52,7 +52,7 @@ function SearchRecent({ onSelect, className }) {
52
52
  }
53
53
  };
54
54
  return (React.createElement(SearchRecentWrapper, { "data-component-name": "Search/SearchRecent", className: className },
55
- React.createElement(SearchRecentTitle, { "data-translation-key": "theme.search.recent" }, translate('theme.search.recent', 'Recent searches')),
55
+ React.createElement(SearchRecentTitle, { "data-translation-key": "search.recent" }, translate('search.recent', 'Recent searches')),
56
56
  React.createElement(SearchRecentItems, null, items.map((item) => (React.createElement(SearchRecentItem, { key: item, onClick: () => onSelect(item), onKeyDown: (e) => handleKeyDown(e, item), tabIndex: 0, role: "link" },
57
57
  React.createElement(SearchRecentItemWrapper, null,
58
58
  React.createElement(RecentlyViewedIcon_1.RecentlyViewedIcon, { color: "--search-recent-item-text-color" }),
@@ -39,7 +39,7 @@ function SearchSuggestedPages({ className }) {
39
39
  if (!pages.length)
40
40
  return null;
41
41
  return (React.createElement(SearchSuggestedWrapper, { "data-component-name": "Search/SearchSuggestedPages", className: className },
42
- React.createElement(SearchSuggestedTitle, { "data-translation-key": "theme.search.suggested" }, translate('theme.search.suggested', 'Suggested pages')),
42
+ React.createElement(SearchSuggestedTitle, { "data-translation-key": "search.suggested" }, translate('search.suggested', 'Suggested pages')),
43
43
  React.createElement(SearchSuggestedItems, null, pages.map((page) => page.link ? (React.createElement(SearchSuggestedItem, Object.assign({ key: page.label, to: page.link }, page),
44
44
  React.createElement(SearchSuggestedItemWrapper, null,
45
45
  React.createElement(RecentlyViewedIcon_1.RecentlyViewedIcon, { color: "--search-item-text-color" }),
@@ -51,9 +51,9 @@ function SearchTrigger({ onClick, className }) {
51
51
  mainShortcutKey = mainShortcutKey === null || mainShortcutKey === void 0 ? void 0 : mainShortcutKey.toUpperCase();
52
52
  return (React.createElement(SearchTriggerWrapper, { onClick: onClick, className: className, "data-component-name": "Search/SearchTrigger" },
53
53
  React.createElement(SearchTriggerButton, { "data-testid": "search-trigger-button", variant: "text", size: "medium", icon: React.createElement(SearchIcon_1.SearchIcon, null) }),
54
- React.createElement(SearchTriggerInput, { "data-testid": "search-trigger-input", "data-translation-key": "theme.search.navbar.label" },
54
+ React.createElement(SearchTriggerInput, { "data-testid": "search-trigger-input", "data-translation-key": "search.navbar.label" },
55
55
  React.createElement(SearchIcon_1.SearchIcon, null),
56
- translate('theme.search.navbar.label', 'Search'),
56
+ translate('search.navbar.label', 'Search'),
57
57
  mainShortcutKey && React.createElement("span", null, mainShortcutKey))));
58
58
  }
59
59
  exports.SearchTrigger = SearchTrigger;
@@ -6,11 +6,18 @@ exports.search = (0, styled_components_1.css) `
6
6
  /**
7
7
  * @tokens Search
8
8
  */
9
- --search-modal-width: 700px;
10
- --search-modal-min-height: 530px;
9
+ --search-modal-width: 1100px;
10
+ --search-modal-min-height: 705px;
11
11
  --search-modal-bg-color: var(--modal-bg-color);
12
12
  --search-modal-box-shadow: var(--modal-box-shadow);
13
13
  --search-modal-border-radius: var(--border-radius-lg);
14
+ --search-modal-border: 1px solid var(--border-color-secondary);
15
+
16
+ --search-modal-header-bg-color: var(--bg-color-tonal); // @presenter Color
17
+ --search-modal-header-padding: var(--spacing-sm);
18
+
19
+ --search-modal-footer-padding: var(--spacing-sm);
20
+ --search-modal-footer-gap: var(--spacing-md);
14
21
 
15
22
  --search-highlight-bg-color: none; // @presenter Color
16
23
  --search-highlight-text-color: var(--color-info-base); // @presenter Color
@@ -29,6 +36,11 @@ exports.search = (0, styled_components_1.css) `
29
36
  --search-input-border: none;
30
37
  --search-input-border-radius: var(--border-radius); // @presenter BorderRadius
31
38
 
39
+ --search-group-title-padding: var(--spacing-sm);
40
+ --search-group-title-bg-color: var(--bg-color-tonal); // @presenter Color
41
+ --search-group-footer-padding: var(--spacing-sm);
42
+ --search-group-footer-text-color: var(--link-color-primary); // @presenter Color
43
+
32
44
  --search-item-text-color: var(--text-color-secondary); // @presenter Color
33
45
  --search-item-text-color-hover: var(--text-color-primary); // @presenter Color
34
46
  --search-item-title-font-size: var(--font-size-base); // @presenter FontSize
@@ -76,6 +88,40 @@ exports.search = (0, styled_components_1.css) `
76
88
  --search-suggested-item-bg-color-active: var(--layer-color); // @presenter Color
77
89
  --search-suggested-item-border-color-focused: var(--color-blue-4); // @presenter Color
78
90
 
91
+ --search-shortcuts-gap: var(--spacing-xs);
92
+
93
+ --search-message-font-size: var(--font-size-lg); // @presenter FontSize
94
+ --search-message-font-weight: var(--font-weight-regular); // @presenter FontWeight
95
+ --search-message-line-height: var(--line-height-lg); // @presenter LineHeight
96
+ --search-message-text-color: var(--text-color-secondary); // @presenter Color
97
+ --search-message-gap: var(--spacing-md);
98
+
99
+ /**
100
+ * @tokens Search filter
101
+ */
102
+ --search-filter-width: 450px;
103
+ --search-filter-bg-color: var(--search-modal-bg-color);
104
+ --search-filter-padding: var(--spacing-lg);
105
+ --search-filter-font-size: var(--font-size-base);
106
+ --search-filter-font-weight: var(--font-weight-regular);
107
+ --search-filter-line-height: var(--line-height-base);
108
+
109
+ --search-filter-header-padding: var(--spacing-md) 0;
110
+ --search-filter-header-text-color: var(--text-color-helper);
111
+ --search-filter-header-z-index: var(--z-index-raised);
112
+
113
+ --search-filter-fields-gap: var(--spacing-base);
114
+
115
+ --search-filter-field-select-option-gap: var(--spacing-unit);
116
+ --search-filter-field-select-option-text-padding: 0 0 0 var(--spacing-unit);
117
+ --search-filter-field-select-footer-padding: 0 0 0 var(--spacing-unit);
118
+ --search-filter-field-select-footer-text-color: var(--text-color-helper);
119
+
120
+ --search-filter-field-tags-gap: var(--spacing-unit);
121
+ --search-filter-field-tags-tag-margin: var(--spacing-unit) 0 0 0;
122
+
123
+ // @tokens End
124
+
79
125
  /**
80
126
  * @tokens Navbar Search Trigger
81
127
  */
@@ -1,12 +1,9 @@
1
1
  import type { ReactElement } from 'react';
2
- import type { SelectOption } from '../../core/types/select-option';
2
+ import type { SelectOption } from '../../core/types/select';
3
3
  export type SegmentedProps<T> = {
4
4
  options: SelectOption<T>[];
5
5
  value: T;
6
- onChange: ({ label, value }: {
7
- label: string;
8
- value: T;
9
- }) => void;
6
+ onChange: ({ label, value }: SelectOption<T>) => void;
10
7
  className?: string;
11
8
  size?: 'regular' | 'small';
12
9
  };
@@ -1,39 +1,5 @@
1
- import React from 'react';
2
- export type SelectProps<T = any> = {
3
- value: T;
4
- options: {
5
- element: React.ReactNode | JSX.Element | string;
6
- value: T;
7
- label?: string;
8
- }[];
9
- dataAttributes?: Record<string, string>;
10
- className?: string;
11
- withArrow?: boolean;
12
- triggerEvent?: 'click' | 'hover';
13
- onChange?: (value: any) => void;
14
- placement?: 'top' | 'bottom';
15
- alignment?: 'start' | 'end';
16
- icon?: React.ReactNode;
17
- onlyIcon?: boolean;
18
- placeholder?: string;
19
- disabled?: boolean;
20
- hideCheckmarkIcon?: boolean;
21
- dataTestId?: string;
22
- renderInput?: (props: {
23
- isOpen: boolean;
24
- }) => React.ReactElement;
25
- renderDivider?: () => React.ReactElement;
26
- };
1
+ import type { SelectProps } from '../../core/types/select';
27
2
  export declare function Select<T>(props: SelectProps<T>): JSX.Element;
28
- export declare const SelectContainer: import("styled-components").StyledComponent<"div", any, {
3
+ export declare const SelectWrapper: import("styled-components").StyledComponent<"div", any, {
29
4
  disabled?: boolean | undefined;
30
5
  }, never>;
31
- export declare const SelectInput: import("styled-components").StyledComponent<"div", any, {}, never>;
32
- export declare const SelectInputValue: import("styled-components").StyledComponent<"div", any, {}, never>;
33
- export declare const SelectList: import("styled-components").StyledComponent<"ul", any, {
34
- placement?: string | undefined;
35
- alignment?: string | undefined;
36
- }, never>;
37
- export declare const SelectListItem: import("styled-components").StyledComponent<"li", any, {
38
- selected: boolean;
39
- }, never>;
@@ -26,60 +26,150 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.SelectListItem = exports.SelectList = exports.SelectInputValue = exports.SelectInput = exports.SelectContainer = exports.Select = void 0;
29
+ exports.SelectWrapper = exports.Select = void 0;
30
30
  const react_1 = __importStar(require("react"));
31
31
  const styled_components_1 = __importDefault(require("styled-components"));
32
- const hooks_1 = require("../../core/hooks");
33
- const ChevronDownIcon_1 = require("../../icons/ChevronDownIcon/ChevronDownIcon");
34
- const ChevronUpIcon_1 = require("../../icons/ChevronUpIcon/ChevronUpIcon");
35
32
  const CheckmarkIcon_1 = require("../../icons/CheckmarkIcon/CheckmarkIcon");
33
+ const SelectInput_1 = require("../../components/Select/SelectInput");
34
+ const Dropdown_1 = require("../../components/Dropdown/Dropdown");
35
+ const DropdownMenu_1 = require("../../components/Dropdown/DropdownMenu");
36
+ const DropdownMenuItem_1 = require("../../components/Dropdown/DropdownMenuItem");
37
+ const hooks_1 = require("../../core/hooks");
36
38
  function Select(props) {
37
- const { className, value, options, dataAttributes, withArrow = true, triggerEvent = 'click', onChange, placement, alignment, icon, onlyIcon, disabled, placeholder, hideCheckmarkIcon, renderInput, renderDivider, dataTestId = 'select', } = props;
38
- const containerRef = (0, react_1.useRef)(null);
39
- const [isOpen, setIsOpen] = (0, react_1.useState)(false);
40
- // const [selectedIdx, setSelectedIdx] = useState<React.ReactNode | string>(selected);
41
- const handleOpen = () => {
42
- setIsOpen(true);
39
+ const { className, value, options, dataAttributes, withArrow = true, triggerEvent = 'click', placement, alignment, icon, onlyIcon, disabled, placeholder, hideCheckmarkIcon, checkmarkIconPosition, dataTestId = 'select', multiple, searchable, clearable, footer, onChange, onSearch, renderInput, renderDivider, } = props;
40
+ const getSelectedOptionsFromPropsValue = () => {
41
+ const values = Array.isArray(value) ? value : [value];
42
+ return values
43
+ .map((value) => {
44
+ const selectedOption = options.find((option) => option.value === value);
45
+ return selectedOption || typeof value === 'string'
46
+ ? { value }
47
+ : value;
48
+ })
49
+ .filter((option) => !!option);
50
+ };
51
+ const [selectedOptions, setSelectedOptions] = (0, react_1.useState)(getSelectedOptionsFromPropsValue());
52
+ const selectRef = (0, react_1.useRef)(null);
53
+ const [searchValue, setSearchValue] = (0, react_1.useState)(null);
54
+ const [dropdownActive, setDropdownActive] = (0, react_1.useState)(false);
55
+ const [filteredOptions, setFilteredOptions] = (0, react_1.useState)(options);
56
+ const [stickyInputValue, setStickyInputValue] = (0, react_1.useState)(placeholder || '');
57
+ const inputId = (0, react_1.useId)();
58
+ (0, hooks_1.useOutsideClick)(selectRef, () => {
59
+ setDropdownActive(false);
60
+ });
61
+ (0, react_1.useEffect)(() => {
62
+ setFilteredOptions(options);
63
+ }, [options]);
64
+ (0, react_1.useEffect)(() => {
65
+ setSelectedOptions(getSelectedOptionsFromPropsValue());
66
+ // eslint-disable-next-line react-hooks/exhaustive-deps
67
+ }, [multiple, value]);
68
+ (0, react_1.useEffect)(() => {
69
+ if (onSearch) {
70
+ onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchValue);
71
+ }
72
+ else {
73
+ if (typeof searchValue === 'string') {
74
+ const filteredOptions = options.filter((option) => {
75
+ var _a, _b;
76
+ const valueForSearch = String((_b = (_a = option.label) !== null && _a !== void 0 ? _a : option.value) !== null && _b !== void 0 ? _b : '');
77
+ return (!valueForSearch || valueForSearch.toLowerCase().indexOf(searchValue.toLowerCase()) > -1);
78
+ });
79
+ setFilteredOptions(filteredOptions);
80
+ }
81
+ else {
82
+ setFilteredOptions(options);
83
+ }
84
+ }
85
+ // eslint-disable-next-line react-hooks/exhaustive-deps
86
+ }, [searchValue]);
87
+ const selectHandler = (selectedOption) => {
88
+ const newSelectedOptions = multiple
89
+ ? isSelected(selectedOption)
90
+ ? selectedOptions.filter((option) => option.value !== selectedOption.value)
91
+ : [...selectedOptions, selectedOption]
92
+ : [selectedOption];
93
+ const newSelectedValues = newSelectedOptions.length
94
+ ? multiple
95
+ ? newSelectedOptions.map((o) => o.value)
96
+ : newSelectedOptions[0].value
97
+ : multiple
98
+ ? []
99
+ : '';
100
+ setSelectedOptions(newSelectedOptions);
101
+ onChange === null || onChange === void 0 ? void 0 : onChange(newSelectedValues);
102
+ setSearchValue(null);
103
+ setDropdownActive(false);
104
+ if (!multiple) {
105
+ setStickyInputValue('');
106
+ }
107
+ };
108
+ const searchHandler = (e) => {
109
+ const targetValue = e.target.value;
110
+ setSearchValue(targetValue);
111
+ setDropdownActive(true);
112
+ };
113
+ const clearHandler = (option) => {
114
+ if (option) {
115
+ selectHandler(option);
116
+ }
117
+ else {
118
+ if (!multiple) {
119
+ setStickyInputValue('');
120
+ }
121
+ setSelectedOptions([]);
122
+ onChange === null || onChange === void 0 ? void 0 : onChange(multiple ? [] : '');
123
+ }
43
124
  };
44
- const handleClose = () => {
45
- setIsOpen(false);
125
+ const inputBlurHandler = (e) => {
126
+ var _a, _b;
127
+ const relatedTarget = e.relatedTarget;
128
+ const isDropdownItem = ((_a = relatedTarget === null || relatedTarget === void 0 ? void 0 : relatedTarget.attributes.getNamedItem('data-component-name')) === null || _a === void 0 ? void 0 : _a.value) ===
129
+ 'Dropdown/DropdownMenuItem';
130
+ if (!isDropdownItem) {
131
+ if (!e.relatedTarget || ((_b = e.relatedTarget) === null || _b === void 0 ? void 0 : _b.id) !== inputId) {
132
+ setDropdownActive(false);
133
+ }
134
+ setSearchValue(null);
135
+ setStickyInputValue('');
136
+ }
46
137
  };
47
- const handleToggle = () => {
48
- setIsOpen(!isOpen);
138
+ const inputFocusHandler = () => {
139
+ if (!multiple && selectedOptions.length) {
140
+ setStickyInputValue(selectedOptions[0].label || selectedOptions[0].value);
141
+ }
49
142
  };
50
- const handleSelect = (value) => {
51
- // setSelectedIdx(options.findIndex(o => o.value === value));
52
- setIsOpen(false);
53
- onChange === null || onChange === void 0 ? void 0 : onChange(value);
143
+ const inputClickHandler = () => {
144
+ setDropdownActive(!dropdownActive);
54
145
  };
55
- (0, hooks_1.useOutsideClick)(containerRef, handleClose);
56
- // useEffect(() => {
57
- // handleSelect(selected);
58
- // // eslint-disable-next-line react-hooks/exhaustive-deps
59
- // }, [selected]);
60
- const selectedOption = options.find((option) => option.value === value);
61
- const renderDefaultInput = () => (react_1.default.createElement(exports.SelectInput, null,
62
- !onlyIcon && (react_1.default.createElement(exports.SelectInputValue, null, (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) || (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.element) || placeholder)),
63
- icon,
64
- withArrow ? isOpen ? react_1.default.createElement(ChevronUpIcon_1.ChevronUpIcon, { size: "14px" }) : react_1.default.createElement(ChevronDownIcon_1.ChevronDownIcon, { size: "14px" }) : null));
65
- return (react_1.default.createElement(exports.SelectContainer, Object.assign({ "data-component-name": "Select/Select" }, dataAttributes, { disabled: disabled, "data-testid": dataTestId, className: className, ref: containerRef, onPointerEnter: triggerEvent === 'hover' ? handleOpen : undefined, onPointerLeave: triggerEvent === 'hover' ? handleClose : undefined, onClick: triggerEvent === 'click' ? handleToggle : undefined }),
66
- renderInput ? renderInput({ isOpen }) : renderDefaultInput(),
67
- isOpen && (react_1.default.createElement(exports.SelectList, { placement: placement, alignment: alignment }, options.map((option, index) => {
68
- const selected = option.value === value;
69
- return (react_1.default.createElement(react_1.default.Fragment, null,
70
- react_1.default.createElement(exports.SelectListItem, { key: index, onClick: () => handleSelect(option.value), selected: selected },
71
- typeof option.element === 'string' ? (react_1.default.createElement("div", null, option.element)) : (option.element),
72
- !hideCheckmarkIcon && selected && react_1.default.createElement(CheckmarkIcon_1.CheckmarkIcon, null)),
73
- renderDivider && index !== options.length - 1 ? renderDivider() : null));
74
- })))));
146
+ const isSelected = (option) => {
147
+ return !!selectedOptions.find((selectOption) => selectOption.value === option.value || selectOption.value === option.label);
148
+ };
149
+ const renderDefaultInput = () => {
150
+ return (react_1.default.createElement(SelectInput_1.SelectInput, { id: inputId, selectedOptions: selectedOptions, searchValue: searchValue, placeholder: placeholder, stickyValue: stickyInputValue, multiple: multiple, searchable: searchable, clearable: clearable, customIcon: icon, onlyIcon: onlyIcon, clearHandler: clearHandler, searchHandler: searchHandler, inputBlurHandler: inputBlurHandler, inputFocusHandler: inputFocusHandler, clickHandler: inputClickHandler }));
151
+ };
152
+ return (react_1.default.createElement(exports.SelectWrapper, Object.assign({ "data-component-name": "Select/Select", ref: selectRef }, dataAttributes, { disabled: disabled, "data-testid": dataTestId, className: className }),
153
+ react_1.default.createElement(SelectDropdown, { closeOnClick: !multiple, withArrow: withArrow, trigger: renderInput ? renderInput() : renderDefaultInput(), triggerEvent: triggerEvent, placement: placement, alignment: alignment, active: !renderInput ? dropdownActive : undefined },
154
+ react_1.default.createElement(SelectDropdownMenu, { footer: footer }, filteredOptions.length === 0 ? (react_1.default.createElement(DropdownMenuItem_1.DropdownMenuItem, { disabled: true }, "No results")) : (filteredOptions.map((option, index) => {
155
+ return (react_1.default.createElement(react_1.Fragment, { key: index },
156
+ react_1.default.createElement(DropdownMenuItem_1.DropdownMenuItem, { onAction: () => selectHandler(option), prefix: !hideCheckmarkIcon &&
157
+ (checkmarkIconPosition ? checkmarkIconPosition === 'start' : false) &&
158
+ isSelected(option) && react_1.default.createElement(CheckmarkIcon_1.CheckmarkIcon, null), suffix: !hideCheckmarkIcon &&
159
+ (checkmarkIconPosition ? checkmarkIconPosition === 'end' : true) &&
160
+ isSelected(option) && react_1.default.createElement(CheckmarkIcon_1.CheckmarkIcon, null) }, typeof option.element === 'string' ? (react_1.default.createElement("div", null, option.element)) : (option.element)),
161
+ renderDivider && index !== options.length - 1 ? renderDivider() : null));
162
+ }) || 'No results')))));
75
163
  }
76
164
  exports.Select = Select;
77
- exports.SelectContainer = styled_components_1.default.div `
165
+ exports.SelectWrapper = styled_components_1.default.div `
166
+ display: flex;
78
167
  position: relative;
79
168
  font-size: var(--select-font-size);
80
169
  font-weight: var(--select-font-weight);
81
170
  line-height: var(--select-line-height);
82
171
  border-radius: var(--select-border-radius);
172
+ border: var(--select-border);
83
173
  color: var(--select-text-color);
84
174
  min-width: 0;
85
175
 
@@ -88,67 +178,15 @@ exports.SelectContainer = styled_components_1.default.div `
88
178
  opacity: 0.59;
89
179
  pointer-events: none;
90
180
  `}
91
- a {
92
- display: block;
93
- text-decoration: none;
94
- color: var(--select-text-color);
95
- }
96
181
  `;
97
- exports.SelectInput = styled_components_1.default.div `
98
- display: flex;
99
- align-items: center;
100
- justify-content: space-between;
101
- border-radius: var(--select-input-border-radius);
102
- padding: var(--select-input-padding);
103
- cursor: pointer;
104
- gap: 8px;
105
- `;
106
- exports.SelectInputValue = styled_components_1.default.div `
107
- pointer-events: none;
108
- min-width: 0;
109
- text-overflow: ellipsis;
110
- overflow: hidden;
111
- `;
112
- exports.SelectList = styled_components_1.default.ul `
113
- position: absolute;
114
- top: ${({ placement }) => (placement === 'top' ? 'auto' : '100%')};
115
- bottom: ${({ placement }) => (placement === 'top' ? '100%' : 'auto')};
116
- left: ${({ alignment }) => (alignment === 'start' ? '0' : 'auto')};
117
- right: ${({ alignment }) => (alignment === 'end' ? '0' : 'auto')};
118
- margin: 0;
119
- min-width: var(--select-list-min-width);
120
- max-width: var(--select-list-max-width);
121
- padding: var(--select-list-padding);
122
- background-color: var(--select-list-bg-color);
123
- border-radius: var(--select-list-border-radius);
124
- box-shadow: var(--select-list-box-shadow);
125
- list-style-type: none;
126
- cursor: pointer;
127
- white-space: nowrap;
128
- overflow: hidden;
129
- z-index: 1;
130
- `;
131
- exports.SelectListItem = styled_components_1.default.li `
132
- display: flex;
133
- align-items: center;
134
- justify-content: space-between;
135
- border-radius: var(--select-list-item-border-radius);
136
- gap: var(--select-list-item-gap);
137
- padding: var(--select-list-item-padding);
138
- ${({ selected }) => selected &&
139
- `
140
- font-weight: var(--select-list-item-font-weight-active);
141
- background-color: var(--select-list-item-bg-color-active);
142
- &:hover { background-color: var(--select-list-item-bg-color-active)};
143
- `}
144
-
145
- & > * {
146
- overflow: hidden;
147
- text-overflow: ellipsis;
148
- }
182
+ const SelectDropdown = (0, styled_components_1.default)(Dropdown_1.Dropdown) `
183
+ width: 100%;
149
184
 
150
- &:hover {
151
- background-color: var(--select-list-item-bg-color-hover);
185
+ > * {
186
+ width: 100%;
152
187
  }
153
188
  `;
189
+ const SelectDropdownMenu = (0, styled_components_1.default)(DropdownMenu_1.DropdownMenu) `
190
+ width: 100%;
191
+ `;
154
192
  //# sourceMappingURL=Select.js.map
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import type { SelectOption } from '../../core/types/select';
3
+ type SelectInputProps<T> = {
4
+ id?: string;
5
+ selectedOptions: SelectOption<T>[];
6
+ searchValue: any;
7
+ stickyValue: any;
8
+ onlyIcon?: boolean;
9
+ icon?: React.ReactNode;
10
+ customIcon?: React.ReactNode;
11
+ placeholder?: string;
12
+ multiple?: boolean;
13
+ searchable?: boolean;
14
+ clearable?: boolean;
15
+ clearHandler?: (value?: any) => void;
16
+ inputBlurHandler?: (e?: any) => void;
17
+ inputFocusHandler?: (e?: any) => void;
18
+ searchHandler?: (e?: any) => void;
19
+ clickHandler?: (e?: any) => void;
20
+ };
21
+ export declare function SelectInput<T>(props: SelectInputProps<T>): React.ReactNode;
22
+ export declare const SelectInputWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
23
+ export {};
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.SelectInputWrapper = exports.SelectInput = void 0;
30
+ const styled_components_1 = __importDefault(require("styled-components"));
31
+ const react_1 = __importStar(require("react"));
32
+ const Tag_1 = require("../../components/Tag/Tag");
33
+ const CloseIcon_1 = require("../../icons/CloseIcon/CloseIcon");
34
+ const Button_1 = require("../../components/Button/Button");
35
+ function SelectInput(props) {
36
+ const { id, onlyIcon, icon, customIcon, selectedOptions, placeholder, stickyValue, multiple, searchable, clearable, clearHandler, searchHandler, clickHandler, searchValue, inputBlurHandler, inputFocusHandler, } = props;
37
+ const inputRef = (0, react_1.useRef)(null);
38
+ const onChangeHandler = (e) => {
39
+ var _a;
40
+ searchHandler === null || searchHandler === void 0 ? void 0 : searchHandler(e);
41
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
42
+ };
43
+ const onKeyDownHandler = (e) => {
44
+ var _a;
45
+ e.stopPropagation();
46
+ if (e.key === 'Backspace' && !searchValue && selectedOptions.length) {
47
+ clearHandler === null || clearHandler === void 0 ? void 0 : clearHandler(selectedOptions[selectedOptions.length - 1]);
48
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
49
+ }
50
+ };
51
+ const onClickHandler = (e) => {
52
+ clickHandler === null || clickHandler === void 0 ? void 0 : clickHandler(e);
53
+ };
54
+ const onFocusHandler = (e) => {
55
+ var _a;
56
+ inputFocusHandler === null || inputFocusHandler === void 0 ? void 0 : inputFocusHandler(e);
57
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
58
+ };
59
+ const onBlurHandler = (e) => {
60
+ inputBlurHandler === null || inputBlurHandler === void 0 ? void 0 : inputBlurHandler(e);
61
+ };
62
+ const onClearAllHandler = (e) => {
63
+ e.stopPropagation();
64
+ clearHandler === null || clearHandler === void 0 ? void 0 : clearHandler();
65
+ };
66
+ const selectTags = selectedOptions.map((option, index) => (react_1.default.createElement(SelectInputTag, { closable: true, key: index, onClose: () => {
67
+ var _a;
68
+ clearHandler === null || clearHandler === void 0 ? void 0 : clearHandler(option);
69
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
70
+ } }, option.label || option.value || option.element)));
71
+ const selectInput = (react_1.default.createElement(SelectInternalInput, { value: searchValue ||
72
+ (!multiple && !stickyValue && selectedOptions.length
73
+ ? selectedOptions[0].label || selectedOptions[0].value
74
+ : ''), placeholder: searchValue || (multiple && selectedOptions.length) ? '' : stickyValue || placeholder, onChange: onChangeHandler, onKeyDown: onKeyDownHandler, onBlur: onBlurHandler, ref: inputRef, width: multiple ? (!searchValue && selectedOptions.length ? '10px' : 'auto') : '100%' }));
75
+ const simpleValue = selectedOptions.length ? (selectedOptions[0].label || selectedOptions[0].element || selectedOptions[0].value) : (react_1.default.createElement(SelectInternalInputPlaceholder, null, placeholder));
76
+ const multipleValues = selectedOptions.length ? (selectTags) : (react_1.default.createElement(SelectInternalInputPlaceholder, null, placeholder));
77
+ return (react_1.default.createElement(exports.SelectInputWrapper, Object.assign({}, props, { id: id, onFocus: onFocusHandler, onClick: onClickHandler }),
78
+ !onlyIcon && (react_1.default.createElement(react_1.default.Fragment, null,
79
+ react_1.default.createElement(SelectInputValue, null, multiple ? (searchable ? (react_1.default.createElement(react_1.default.Fragment, null,
80
+ selectTags,
81
+ selectInput)) : (multipleValues)) : searchable ? (selectInput) : (simpleValue)),
82
+ !!(clearable && selectedOptions.length) && (react_1.default.createElement(Button_1.Button, { size: "small", variant: "text", icon: react_1.default.createElement(CloseIcon_1.CloseIcon, null), onClick: onClearAllHandler })))),
83
+ customIcon || icon));
84
+ }
85
+ exports.SelectInput = SelectInput;
86
+ exports.SelectInputWrapper = styled_components_1.default.div `
87
+ width: 100%;
88
+ display: flex;
89
+ align-items: center;
90
+ justify-content: space-between;
91
+ border-radius: var(--select-input-border-radius);
92
+ padding: var(--select-input-padding);
93
+ cursor: pointer;
94
+ gap: var(--select-input-gap);
95
+ `;
96
+ const SelectInputValue = styled_components_1.default.div `
97
+ width: calc(100% - 20px);
98
+ display: flex;
99
+ min-width: 0;
100
+ text-overflow: ellipsis;
101
+ overflow: hidden;
102
+ flex-wrap: wrap;
103
+ gap: var(--select-input-value-gap);
104
+ `;
105
+ const SelectInputTag = (0, styled_components_1.default)(Tag_1.Tag) `
106
+ --tag-content-padding: 0;
107
+ `;
108
+ const SelectInternalInput = styled_components_1.default.input.attrs(() => ({
109
+ type: 'text',
110
+ })) `
111
+ outline: none;
112
+ border-radius: var(--select-input-border-radius);
113
+ border: none;
114
+ font-size: var(--select-input-font-size);
115
+ font-weight: var(--select-input-font-weight);
116
+ line-height: var(--select-input-line-height);
117
+ background-color: var(--select-input-bg-color);
118
+
119
+ &::placeholder {
120
+ color: var(--select-input-placeholder-color);
121
+ }
122
+
123
+ width: ${({ width }) => width || 'auto'};
124
+ `;
125
+ const SelectInternalInputPlaceholder = styled_components_1.default.div `
126
+ color: var(--select-input-placeholder-color);
127
+ padding-left: 8px;
128
+ `;
129
+ //# sourceMappingURL=SelectInput.js.map
@@ -11,10 +11,19 @@ exports.select = (0, styled_components_1.css) `
11
11
  --select-line-height: var(--line-height-base); // @presenter LineHeight
12
12
  --select-text-color: var(--text-color-secondary); // @presenter Color
13
13
  --select-border-radius: var(--border-radius); // @presenter BorderRadius
14
+ --select-border: var(--border-width) var(--border-style) var(--border-color-primary); // @presenter Border
15
+
14
16
  --select-input-padding-vertical: 6px; // @presenter Spacing
15
- --select-input-padding-horizontal: 16px; // @presenter Spacing
17
+ --select-input-padding-horizontal: 6px; // @presenter Spacing
16
18
  --select-input-padding: var(--select-input-padding-vertical) var(--select-input-padding-horizontal);
19
+ --select-input-gap: var(--spacing-xs); // @presenter Spacing
20
+ --select-input-value-gap: var(--spacing-unit); // @presenter Spacing
17
21
  --select-input-border-radius: var(--border-radius); // @presenter BorderRadius
22
+ --select-input-font-size: var(--font-size-base); // @presenter FontSize
23
+ --select-input-font-weight: var(--font-weight-regular); // @presenter FontWeight
24
+ --select-input-line-height: var(--line-height-base); // @presenter LineHeight
25
+ --select-input-bg-color: var(--bg-color); // @presenter Color
26
+ --select-input-placeholder-color: var(--input-content-placeholder-color); // @presenter Color
18
27
 
19
28
  --select-list-min-width: 100px;
20
29
  --select-list-max-width: 300px;
@@ -32,6 +41,8 @@ exports.select = (0, styled_components_1.css) `
32
41
  --select-list-item-bg-color-active: transparent; // @presenter Color
33
42
  --select-list-item-bg-color-hover: var(--menu-item-bg-color-hover); // @presenter Color
34
43
  --select-list-item-font-weight-active: var(--font-weight-medium); // @presenter Color
44
+
45
+ --select-placeholder-color: var(--color-warm-grey-6); // @presenter Color
35
46
  // @tokens End
36
47
  `;
37
48
  //# sourceMappingURL=variables.js.map
@@ -13,7 +13,7 @@ const hooks_1 = require("../../core/hooks");
13
13
  const ChangeViewButton = ({ layout, onClick, collapsedSidebar, }) => {
14
14
  const { useTranslate } = (0, hooks_1.useThemeHooks)();
15
15
  const { translate } = useTranslate();
16
- return (react_1.default.createElement(styled_1.StyledChangeViewButton, { title: translate('theme.sidebar.actions.changeLayout', 'Change layout'), onClick: onClick, collapsedSidebar: collapsedSidebar },
16
+ return (react_1.default.createElement(styled_1.StyledChangeViewButton, { title: translate('sidebar.actions.changeLayout', 'Change layout'), onClick: onClick, collapsedSidebar: collapsedSidebar },
17
17
  react_1.default.createElement(styled_1.StyledChangeViewButtonWrap, { active: layout === SidebarActions_1.LayoutVariant.STACKED },
18
18
  react_1.default.createElement(HorizontalViewIcon_1.HorizontalViewIcon, { size: "14px", color: "--segmented-buttons-content-color" })),
19
19
  react_1.default.createElement(styled_1.StyledChangeViewButtonWrap, { active: layout === SidebarActions_1.LayoutVariant.THREE_PANEL },
@@ -25,8 +25,8 @@ const SidebarActions = ({ layout, hideCollapseSidebarButton = false, collapsedSi
25
25
  ? (_a = telemetry.send) === null || _a === void 0 ? void 0 : _a.call(telemetry, 'sidebar_item_expanded', {})
26
26
  : (_b = telemetry.send) === null || _b === void 0 ? void 0 : _b.call(telemetry, 'sidebar_item_collapsed', {});
27
27
  }, title: collapsedSidebar
28
- ? translate('theme.sidebar.actions.show', 'Show sidebar')
29
- : translate('theme.sidebar.actions.hide', 'Hide sidebar'), size: "small", variant: "outlined", icon: collapsedSidebar ? react_1.default.createElement(SidePanelOpenIcon_1.SidePanelOpenIcon, null) : react_1.default.createElement(SidePanelCloseIcon_1.SidePanelCloseIcon, null) })),
28
+ ? translate('sidebar.actions.show', 'Show sidebar')
29
+ : translate('sidebar.actions.hide', 'Hide sidebar'), size: "small", variant: "outlined", icon: collapsedSidebar ? react_1.default.createElement(SidePanelOpenIcon_1.SidePanelOpenIcon, null) : react_1.default.createElement(SidePanelCloseIcon_1.SidePanelCloseIcon, null) })),
30
30
  isOpenapiDocs && (react_1.default.createElement(styled_1.ControlsWrapChangeLayoutButtons, { isCollapsed: collapsedSidebar },
31
31
  react_1.default.createElement(ChangeViewButton_1.ChangeViewButton, { collapsedSidebar: collapsedSidebar, layout: layout, onClick: () => {
32
32
  var _a;