@gravity-ui/navigation 0.19.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/components/Settings/Settings.d.ts +9 -2
- package/build/cjs/components/Settings/SettingsSearch/SettingsSearch.d.ts +2 -1
- package/build/cjs/index.js +28 -14
- package/build/cjs/index.js.map +1 -1
- package/build/esm/components/Settings/Settings.d.ts +9 -2
- package/build/esm/components/Settings/SettingsSearch/SettingsSearch.d.ts +2 -1
- package/build/esm/index.js +29 -16
- package/build/esm/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,12 +7,15 @@ export interface SettingsProps {
|
|
|
7
7
|
filterPlaceholder?: string;
|
|
8
8
|
emptyPlaceholder?: string;
|
|
9
9
|
initialPage?: string;
|
|
10
|
+
initialSearch?: string;
|
|
10
11
|
onPageChange?: (page: string | undefined) => void;
|
|
11
12
|
renderNotFound?: () => React.ReactNode;
|
|
12
13
|
renderLoading?: () => React.ReactNode;
|
|
13
14
|
loading?: boolean;
|
|
14
15
|
view?: 'normal' | 'mobile';
|
|
15
16
|
onClose?: () => void;
|
|
17
|
+
renderRightAdornment?: (item: Pick<SettingsItemProps, 'title'>) => React.ReactNode;
|
|
18
|
+
showRightAdornmentOnHover?: boolean;
|
|
16
19
|
}
|
|
17
20
|
export interface SettingsGroupProps {
|
|
18
21
|
id?: string;
|
|
@@ -34,6 +37,7 @@ export interface SettingsSectionProps {
|
|
|
34
37
|
}
|
|
35
38
|
export interface SettingsItemProps {
|
|
36
39
|
title: string;
|
|
40
|
+
highlightedTitle?: React.ReactNode | null;
|
|
37
41
|
renderTitleComponent?: (highlightedTitle: React.ReactNode | null) => React.ReactNode;
|
|
38
42
|
align?: 'top' | 'center';
|
|
39
43
|
children: React.ReactNode;
|
|
@@ -41,10 +45,13 @@ export interface SettingsItemProps {
|
|
|
41
45
|
mode?: 'row';
|
|
42
46
|
description?: string;
|
|
43
47
|
}
|
|
44
|
-
export
|
|
48
|
+
export interface SettingsContextType extends Pick<SettingsProps, 'renderRightAdornment' | 'showRightAdornmentOnHover'> {
|
|
49
|
+
}
|
|
50
|
+
export declare const useSettingsContext: () => SettingsContextType;
|
|
51
|
+
export declare function Settings({ loading, renderLoading, children, view, renderRightAdornment, showRightAdornmentOnHover, ...props }: SettingsProps): React.JSX.Element;
|
|
45
52
|
export declare namespace Settings {
|
|
46
53
|
var Group: ({ children }: SettingsGroupProps) => React.JSX.Element;
|
|
47
54
|
var Page: ({ children }: SettingsPageProps) => React.JSX.Element;
|
|
48
55
|
var Section: ({ children }: SettingsSectionProps) => React.JSX.Element;
|
|
49
|
-
var Item: ({ title, children, align, withBadge, renderTitleComponent, mode, description, }: SettingsItemProps) => React.JSX.Element;
|
|
56
|
+
var Item: ({ title, highlightedTitle, children, align, withBadge, renderTitleComponent, mode, description, }: SettingsItemProps) => React.JSX.Element;
|
|
50
57
|
}
|
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { TextInputSize } from '@gravity-ui/uikit';
|
|
3
3
|
interface SettingsSearchProps {
|
|
4
4
|
className?: string;
|
|
5
|
+
initialValue?: string;
|
|
5
6
|
onChange: (search: string) => void;
|
|
6
7
|
debounce?: number;
|
|
7
8
|
inputRef?: React.Ref<HTMLInputElement>;
|
|
@@ -9,5 +10,5 @@ interface SettingsSearchProps {
|
|
|
9
10
|
placeholder?: string;
|
|
10
11
|
autoFocus?: boolean;
|
|
11
12
|
}
|
|
12
|
-
export declare function SettingsSearch({ className, onChange, debounce, inputRef, inputSize, placeholder, autoFocus, }: SettingsSearchProps): React.JSX.Element;
|
|
13
|
+
export declare function SettingsSearch({ className, initialValue, onChange, debounce, inputRef, inputSize, placeholder, autoFocus, }: SettingsSearchProps): React.JSX.Element;
|
|
13
14
|
export {};
|
package/build/cjs/index.js
CHANGED
|
@@ -5114,11 +5114,15 @@ function escapeStringForRegExp(input) {
|
|
|
5114
5114
|
}
|
|
5115
5115
|
|
|
5116
5116
|
const b$9 = block('settings-search');
|
|
5117
|
-
function SettingsSearch({ className, onChange, debounce = 200, inputRef, inputSize, placeholder, autoFocus = true, }) {
|
|
5118
|
-
const
|
|
5119
|
-
const
|
|
5117
|
+
function SettingsSearch({ className, initialValue, onChange, debounce = 200, inputRef, inputSize, placeholder, autoFocus = true, }) {
|
|
5118
|
+
const [value, setValue] = React__default["default"].useState(initialValue !== null && initialValue !== void 0 ? initialValue : '');
|
|
5119
|
+
const onChangeDebounced = useStableCallback(debounce_1(onChange, debounce));
|
|
5120
|
+
const handleUpdate = useStableCallback((updated) => {
|
|
5121
|
+
setValue(updated);
|
|
5122
|
+
onChangeDebounced(updated);
|
|
5123
|
+
});
|
|
5120
5124
|
return (React__default["default"].createElement("div", { className: b$9(null, className) },
|
|
5121
|
-
React__default["default"].createElement(uikit.TextInput, { controlRef: inputRef, hasClear: true, autoFocus: autoFocus, size: inputSize, placeholder: placeholder, onUpdate: handleUpdate })));
|
|
5125
|
+
React__default["default"].createElement(uikit.TextInput, { value: value, controlRef: inputRef, hasClear: true, autoFocus: autoFocus, size: inputSize, placeholder: placeholder, onUpdate: handleUpdate })));
|
|
5122
5126
|
}
|
|
5123
5127
|
|
|
5124
5128
|
var css_248z$8 = ".gn-settings-menu__group-heading {\n font-weight: var(--g-text-accent-font-weight);\n display: inline-block;\n padding: 0 20px;\n margin-bottom: 12px;\n line-height: 18px;\n}\n.gn-settings-menu__group + .gn-settings-menu__group {\n margin-top: 24px;\n}\n.gn-settings-menu__item {\n display: flex;\n align-items: center;\n height: 40px;\n padding: 0 20px;\n cursor: pointer;\n color: var(--g-color-text-primary);\n}\n.gn-settings-menu__item-icon {\n color: var(--g-color-text-misc);\n margin-right: 5px;\n}\n.gn-settings-menu__item:hover, .gn-settings-menu__item_focused {\n background: var(--g-color-base-simple-hover);\n}\n.gn-settings-menu__item_selected {\n background: var(--g-color-base-selection);\n}\n.gn-settings-menu__item_selected:hover, .gn-settings-menu__item_selected.gn-settings-menu__item_focused {\n background: var(--g-color-base-selection-hover);\n}\n.gn-settings-menu__item_disabled {\n color: var(--g-color-text-secondary);\n cursor: auto;\n}\n.gn-settings-menu__item_disabled:hover {\n background: none;\n}\n.gn-settings-menu__item_disabled .gn-settings-menu__item-icon {\n color: var(--g-color-base-misc-heavy);\n}\n.gn-settings-menu__item_badge {\n position: relative;\n}\n.gn-settings-menu__item_badge::after {\n content: \"\";\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: var(--g-color-text-danger);\n position: absolute;\n right: 9px;\n top: calc(50% - 3px);\n}";
|
|
@@ -5364,16 +5368,19 @@ function getSettingsItemsFromChildren(children, filterRe) {
|
|
|
5364
5368
|
return { items, hidden };
|
|
5365
5369
|
}
|
|
5366
5370
|
|
|
5367
|
-
var css_248z$6 = ".gn-settings {\n display: grid;\n grid-template-columns: 216px 1fr;\n width: 834px;\n height: 100%;\n}\n.gn-settings_view_mobile {\n display: block;\n width: auto;\n height: calc(80vh - 56px);\n overflow-x: hidden;\n}\n@supports (height: 90dvh) {\n .gn-settings_view_mobile {\n /* stylelint-disable-next-line */\n height: calc(90dvh - 56px);\n }\n}\n.gn-settings_view_mobile.gn-settings_loading {\n text-align: center;\n}\n.gn-settings_view_mobile .gn-settings__loader {\n margin-top: 20px;\n}\n.gn-settings_view_mobile .gn-settings__search {\n padding: 0 20px;\n margin: 4px 0 16px;\n}\n.gn-settings_view_mobile .gn-settings__page {\n overflow-y: visible;\n}\n.gn-settings_view_mobile .gn-settings__tabs .yc-tabs__item:first-child {\n margin-left: 20px;\n}\n.gn-settings_view_mobile .gn-settings__tabs .yc-tabs__item:last-child {\n margin-right: 20px;\n}\n.gn-settings_view_mobile .gn-settings__section-heading {\n font-size: var(--g-text-subheader-3-font-size);\n line-height: var(--g-text-subheader-3-line-height);\n font-weight: var(--g-text-subheader-font-weight);\n}\n.gn-settings_view_mobile .gn-settings__section-subheader {\n color: var(--g-color-text-secondary);\n}\n.gn-settings_view_mobile .gn-settings__section-heading + .gn-settings-subheader {\n margin-top: 8px;\n}\n.gn-settings_view_mobile .gn-settings__section-item {\n margin-top: 0;\n}\n.gn-settings_view_mobile .gn-settings__section-heading + .gn-settings__section-item, .gn-settings_view_mobile .gn-settings__section-subheader + .gn-settings__section-item {\n margin-top: 30px;\n}\n.gn-settings_view_mobile .gn-settings__section-item + .gn-settings__section-item {\n margin-top: 22px;\n}\n.gn-settings_view_mobile .gn-settings__item:not(.gn-settings_view_mobile .gn-settings__item_mode_row) {\n grid-template-columns: 1fr;\n gap: 8px;\n}\n.gn-settings_view_mobile .gn-settings__item-heading {\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n.gn-settings_view_mobile .gn-settings__item-description {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n.gn-settings_view_mobile .gn-settings__item_mode_row {\n grid-template-columns: 1fr auto;\n}\n.gn-settings_view_mobile .gn-settings__item_mode_row .gn-settings__item-heading {\n padding-right: 20px;\n}\n.gn-settings_view_mobile .gn-settings__item-content {\n width: 100%;\n}\n.gn-settings_loading {\n grid-template-columns: auto;\n}\n.gn-settings__loader {\n align-self: center;\n justify-self: center;\n}\n.gn-settings__not-found {\n display: grid;\n align-items: center;\n justify-items: center;\n height: 100%;\n}\n.gn-settings__menu {\n border-right: 1px solid var(--g-color-line-generic);\n}\n.gn-settings__heading {\n font-size: var(--g-text-subheader-2-font-size);\n line-height: var(--g-text-subheader-2-line-height);\n font-weight: var(--g-text-subheader-font-weight);\n margin: 20px 20px 0;\n}\n.gn-settings__search {\n margin: 0 20px 16px;\n}\n.gn-settings__page {\n overflow-y: auto;\n}\n.gn-settings__content {\n padding: 20px;\n}\n.gn-settings__section-heading {\n font-size: var(--g-text-subheader-2-font-size);\n line-height: var(--g-text-subheader-2-line-height);\n font-weight: var(--g-text-subheader-font-weight);\n margin: 0;\n}\n.gn-settings__section-item {\n margin-top: 24px;\n}\n.gn-settings__section + .gn-settings__section {\n margin-top: 32px;\n}\n.gn-settings__item {\n display: grid;\n grid-template-columns: 216px 1fr;\n justify-items: start;\n}\n.gn-settings__item_align_top {\n align-items: start;\n}\n.gn-settings__item_align_center {\n align-items: center;\n}\n.gn-settings__item-title_badge {\n position: relative;\n}\n.gn-settings__item-title_badge::after {\n content: \"\";\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: var(--g-color-text-danger);\n position: absolute;\n right: -8px;\n top: 1px;\n}\n.gn-settings__item-description {\n font-size: var(--g-text-caption-2-font-size);\n line-height: var(--g-text-caption-2-line-height);\n font-weight: var(--g-text-caption-font-weight);\n display: block;\n margin-top: 2px;\n padding-right: 20px;\n color: var(--g-color-text-secondary);\n}\n.gn-settings__found {\n font-weight: var(--g-text-accent-font-weight);\n background: var(--g-color-base-selection);\n}";
|
|
5371
|
+
var css_248z$6 = ".gn-settings {\n display: grid;\n grid-template-columns: 216px 1fr;\n width: 834px;\n height: 100%;\n}\n.gn-settings_view_mobile {\n display: block;\n width: auto;\n height: calc(80vh - 56px);\n overflow-x: hidden;\n}\n@supports (height: 90dvh) {\n .gn-settings_view_mobile {\n /* stylelint-disable-next-line */\n height: calc(90dvh - 56px);\n }\n}\n.gn-settings_view_mobile.gn-settings_loading {\n text-align: center;\n}\n.gn-settings_view_mobile .gn-settings__loader {\n margin-top: 20px;\n}\n.gn-settings_view_mobile .gn-settings__search {\n padding: 0 20px;\n margin: 4px 0 16px;\n}\n.gn-settings_view_mobile .gn-settings__page {\n overflow-y: visible;\n}\n.gn-settings_view_mobile .gn-settings__tabs .yc-tabs__item:first-child {\n margin-left: 20px;\n}\n.gn-settings_view_mobile .gn-settings__tabs .yc-tabs__item:last-child {\n margin-right: 20px;\n}\n.gn-settings_view_mobile .gn-settings__section-heading {\n font-size: var(--g-text-subheader-3-font-size);\n line-height: var(--g-text-subheader-3-line-height);\n font-weight: var(--g-text-subheader-font-weight);\n}\n.gn-settings_view_mobile .gn-settings__section-subheader {\n color: var(--g-color-text-secondary);\n}\n.gn-settings_view_mobile .gn-settings__section-heading + .gn-settings-subheader {\n margin-top: 8px;\n}\n.gn-settings_view_mobile .gn-settings__section-item {\n margin-top: 0;\n}\n.gn-settings_view_mobile .gn-settings__section-heading + .gn-settings__section-item, .gn-settings_view_mobile .gn-settings__section-subheader + .gn-settings__section-item {\n margin-top: 30px;\n}\n.gn-settings_view_mobile .gn-settings__section-item + .gn-settings__section-item {\n margin-top: 22px;\n}\n.gn-settings_view_mobile .gn-settings__item:not(.gn-settings_view_mobile .gn-settings__item_mode_row) {\n grid-template-columns: 1fr;\n gap: 8px;\n}\n.gn-settings_view_mobile .gn-settings__item-heading {\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n.gn-settings_view_mobile .gn-settings__item-description {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n.gn-settings_view_mobile .gn-settings__item_mode_row {\n grid-template-columns: 1fr auto;\n}\n.gn-settings_view_mobile .gn-settings__item_mode_row .gn-settings__item-heading {\n padding-right: 20px;\n}\n.gn-settings_view_mobile .gn-settings__item-content {\n width: 100%;\n}\n.gn-settings_loading {\n grid-template-columns: auto;\n}\n.gn-settings__loader {\n align-self: center;\n justify-self: center;\n}\n.gn-settings__not-found {\n display: grid;\n align-items: center;\n justify-items: center;\n height: 100%;\n}\n.gn-settings__menu {\n border-right: 1px solid var(--g-color-line-generic);\n}\n.gn-settings__heading {\n font-size: var(--g-text-subheader-2-font-size);\n line-height: var(--g-text-subheader-2-line-height);\n font-weight: var(--g-text-subheader-font-weight);\n margin: 20px 20px 0;\n}\n.gn-settings__search {\n margin: 0 20px 16px;\n}\n.gn-settings__page {\n overflow-y: auto;\n}\n.gn-settings__content {\n padding: 20px;\n}\n.gn-settings__section-heading {\n font-size: var(--g-text-subheader-2-font-size);\n line-height: var(--g-text-subheader-2-line-height);\n font-weight: var(--g-text-subheader-font-weight);\n margin: 0;\n}\n.gn-settings__section-item {\n margin-top: 24px;\n}\n.gn-settings__section + .gn-settings__section {\n margin-top: 32px;\n}\n.gn-settings__item {\n display: grid;\n grid-template-columns: 216px 1fr;\n justify-items: start;\n}\n.gn-settings__item_align_top {\n align-items: start;\n}\n.gn-settings__item_align_center {\n align-items: center;\n}\n.gn-settings__item-title_badge {\n position: relative;\n}\n.gn-settings__item-title_badge::after {\n content: \"\";\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background-color: var(--g-color-text-danger);\n position: absolute;\n right: -8px;\n top: 1px;\n}\n.gn-settings__item-description {\n font-size: var(--g-text-caption-2-font-size);\n line-height: var(--g-text-caption-2-line-height);\n font-weight: var(--g-text-caption-font-weight);\n display: block;\n margin-top: 2px;\n padding-right: 20px;\n color: var(--g-color-text-secondary);\n}\n.gn-settings__item-right-adornment_hidden {\n opacity: 0;\n transition: opacity 0.2s;\n}\n.gn-settings__item:hover .gn-settings__item-right-adornment_hidden {\n opacity: 1;\n}\n.gn-settings__found {\n font-weight: var(--g-text-accent-font-weight);\n background: var(--g-color-base-selection);\n}";
|
|
5368
5372
|
styleInject(css_248z$6);
|
|
5369
5373
|
|
|
5370
5374
|
const b$6 = block('settings');
|
|
5375
|
+
const SettingsContext = React__default["default"].createContext({});
|
|
5376
|
+
const useSettingsContext = () => React__default["default"].useContext(SettingsContext);
|
|
5371
5377
|
function Settings(_a) {
|
|
5372
|
-
var { loading, renderLoading, children, view = 'normal' } = _a, props = __rest(_a, ["loading", "renderLoading", "children", "view"]);
|
|
5378
|
+
var { loading, renderLoading, children, view = 'normal', renderRightAdornment, showRightAdornmentOnHover = true } = _a, props = __rest(_a, ["loading", "renderLoading", "children", "view", "renderRightAdornment", "showRightAdornmentOnHover"]);
|
|
5373
5379
|
if (loading) {
|
|
5374
5380
|
return (React__default["default"].createElement("div", { className: b$6({ loading: true, view }) }, typeof renderLoading === 'function' ? (renderLoading()) : (React__default["default"].createElement(uikit.Loader, { className: b$6('loader'), size: "m" }))));
|
|
5375
5381
|
}
|
|
5376
|
-
return (React__default["default"].createElement(
|
|
5382
|
+
return (React__default["default"].createElement(SettingsContext.Provider, { value: { renderRightAdornment, showRightAdornmentOnHover } },
|
|
5383
|
+
React__default["default"].createElement(SettingsContent, Object.assign({ view: view }, props), children)));
|
|
5377
5384
|
}
|
|
5378
5385
|
const getPageTitleById = (menu, activePage) => {
|
|
5379
5386
|
for (const firstLevel of menu) {
|
|
@@ -5387,9 +5394,9 @@ const getPageTitleById = (menu, activePage) => {
|
|
|
5387
5394
|
}
|
|
5388
5395
|
return '';
|
|
5389
5396
|
};
|
|
5390
|
-
function SettingsContent({ initialPage, children, renderNotFound, title = i18n$1('label_title'), filterPlaceholder = i18n$1('label_filter-placeholder'), emptyPlaceholder = i18n$1('label_empty-placeholder'), view, onPageChange, onClose, }) {
|
|
5397
|
+
function SettingsContent({ initialPage, initialSearch, children, renderNotFound, title = i18n$1('label_title'), filterPlaceholder = i18n$1('label_filter-placeholder'), emptyPlaceholder = i18n$1('label_empty-placeholder'), view, onPageChange, onClose, }) {
|
|
5391
5398
|
var _a, _b;
|
|
5392
|
-
const [search, setSearch] = React__default["default"].useState('');
|
|
5399
|
+
const [search, setSearch] = React__default["default"].useState(initialSearch !== null && initialSearch !== void 0 ? initialSearch : '');
|
|
5393
5400
|
const { menu, pages } = getSettingsFromChildren(children, search);
|
|
5394
5401
|
const pageKeys = Object.keys(pages);
|
|
5395
5402
|
const [selectedPage, setCurrentPage] = React__default["default"].useState(initialPage && pageKeys.includes(initialPage) ? initialPage : undefined);
|
|
@@ -5438,13 +5445,13 @@ function SettingsContent({ initialPage, children, renderNotFound, title = i18n$1
|
|
|
5438
5445
|
section.showTitle && (React__default["default"].createElement("h3", { className: b$6('section-heading') }, section.title)),
|
|
5439
5446
|
section.header &&
|
|
5440
5447
|
(isMobile ? (React__default["default"].createElement("div", { className: b$6('section-subheader') }, section.header)) : (section.header)),
|
|
5441
|
-
section.items.map(({ hidden, title, element }) => hidden ? null : (React__default["default"].createElement("div", { key: title, className: b$6('section-item') }, React__default["default"].cloneElement(element, Object.assign(Object.assign({}, element.props), {
|
|
5448
|
+
section.items.map(({ hidden, title, element }) => hidden ? null : (React__default["default"].createElement("div", { key: title, className: b$6('section-item') }, React__default["default"].cloneElement(element, Object.assign(Object.assign({}, element.props), { highlightedTitle: search && title
|
|
5442
5449
|
? prepareTitle(title, search)
|
|
5443
5450
|
: title })))))))))));
|
|
5444
5451
|
};
|
|
5445
5452
|
return (React__default["default"].createElement("div", { className: b$6({ view }) },
|
|
5446
5453
|
isMobile ? (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
5447
|
-
React__default["default"].createElement(SettingsSearch, { inputRef: searchInputRef, className: b$6('search'), onChange: setSearch, autoFocus: false, inputSize: 'l' }),
|
|
5454
|
+
React__default["default"].createElement(SettingsSearch, { inputRef: searchInputRef, className: b$6('search'), initialValue: initialSearch, onChange: setSearch, autoFocus: false, inputSize: 'l' }),
|
|
5448
5455
|
React__default["default"].createElement(SettingsMenuMobile, { items: menu, onChange: handlePageChange, activeItemId: activePage, className: b$6('tabs') }))) : (React__default["default"].createElement("div", { className: b$6('menu'), onClick: () => {
|
|
5449
5456
|
if (searchInputRef.current) {
|
|
5450
5457
|
searchInputRef.current.focus();
|
|
@@ -5457,7 +5464,7 @@ function SettingsContent({ initialPage, children, renderNotFound, title = i18n$1
|
|
|
5457
5464
|
}
|
|
5458
5465
|
} },
|
|
5459
5466
|
React__default["default"].createElement(Title, null, title),
|
|
5460
|
-
React__default["default"].createElement(SettingsSearch, { inputRef: searchInputRef, className: b$6('search'), onChange: setSearch, placeholder: filterPlaceholder, autoFocus: true }),
|
|
5467
|
+
React__default["default"].createElement(SettingsSearch, { inputRef: searchInputRef, className: b$6('search'), initialValue: initialSearch, onChange: setSearch, placeholder: filterPlaceholder, autoFocus: true }),
|
|
5461
5468
|
React__default["default"].createElement(SettingsMenu, { ref: menuRef, items: menu, onChange: handlePageChange, activeItemId: activePage }))),
|
|
5462
5469
|
React__default["default"].createElement("div", { className: b$6('page') }, renderPageContent())));
|
|
5463
5470
|
}
|
|
@@ -5470,10 +5477,16 @@ Settings.Page = function SettingsPage({ children }) {
|
|
|
5470
5477
|
Settings.Section = function SettingsSection({ children }) {
|
|
5471
5478
|
return React__default["default"].createElement(React__default["default"].Fragment, null, children);
|
|
5472
5479
|
};
|
|
5473
|
-
Settings.Item = function SettingsItem({ title, children, align = 'center', withBadge, renderTitleComponent = identity_1, mode, description, }) {
|
|
5480
|
+
Settings.Item = function SettingsItem({ title, highlightedTitle, children, align = 'center', withBadge, renderTitleComponent = identity_1, mode, description, }) {
|
|
5481
|
+
const { renderRightAdornment, showRightAdornmentOnHover } = useSettingsContext();
|
|
5482
|
+
const titleNode = (React__default["default"].createElement("span", { className: b$6('item-title', { badge: withBadge }) }, renderTitleComponent(highlightedTitle)));
|
|
5474
5483
|
return (React__default["default"].createElement("div", { className: b$6('item', { align, mode }) },
|
|
5475
5484
|
React__default["default"].createElement("label", { className: b$6('item-heading') },
|
|
5476
|
-
React__default["default"].createElement(
|
|
5485
|
+
renderRightAdornment ? (React__default["default"].createElement(uikit.Flex, { className: b$6('item-title-wrapper'), gap: 3 },
|
|
5486
|
+
titleNode,
|
|
5487
|
+
React__default["default"].createElement("div", { className: b$6('item-right-adornment', {
|
|
5488
|
+
hidden: showRightAdornmentOnHover,
|
|
5489
|
+
}) }, renderRightAdornment({ title })))) : (titleNode),
|
|
5477
5490
|
description ? React__default["default"].createElement("span", { className: b$6('item-description') }, description) : null),
|
|
5478
5491
|
React__default["default"].createElement("div", { className: b$6('item-content') }, children)));
|
|
5479
5492
|
};
|
|
@@ -5777,4 +5790,5 @@ exports.Settings = Settings;
|
|
|
5777
5790
|
exports.Title = Title;
|
|
5778
5791
|
exports.configure = configure;
|
|
5779
5792
|
exports.useAsideHeaderContext = useAsideHeaderContext;
|
|
5793
|
+
exports.useSettingsContext = useSettingsContext;
|
|
5780
5794
|
//# sourceMappingURL=index.js.map
|