@sima-land/ui-nucleons 45.0.0-alpha.2 → 45.0.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/avatar/avatar.module.scss +3 -0
- package/group-overflow/group-overflow.module.scss +24 -0
- package/group-overflow/index.d.ts +16 -0
- package/group-overflow/index.js +61 -0
- package/group-overflow/utils.d.ts +20 -0
- package/group-overflow/utils.js +74 -0
- package/hint/utils.d.ts +3 -2
- package/hint/utils.js +3 -2
- package/modal/index.d.ts +3 -1
- package/modal/index.js +2 -2
- package/package.json +1 -1
- package/styling/borders.d.ts +1 -0
- package/styling/borders.js +1 -0
- package/styling/colors.d.ts +5 -0
- package/styling/colors.js +5 -0
- package/styling/fonts.d.ts +3 -0
- package/styling/fonts.js +3 -0
- package/styling/shadows.d.ts +1 -0
- package/styling/shadows.js +1 -0
- package/styling/shapes.d.ts +2 -0
- package/styling/shapes.js +2 -0
- package/styling/sizes.d.ts +10 -0
- package/styling/sizes.js +10 -0
- package/styling/utils.d.ts +1 -0
- package/styling/utils.js +1 -0
- package/top-bar/types.d.ts +3 -3
- package/utils.scss +8 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
.root {
|
|
2
|
+
display: inline-flex;
|
|
3
|
+
max-width: 100%;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.items {
|
|
7
|
+
flex-shrink: 1;
|
|
8
|
+
overflow: hidden;
|
|
9
|
+
display: flex;
|
|
10
|
+
align-items: flex-start;
|
|
11
|
+
> * {
|
|
12
|
+
flex-shrink: 0;
|
|
13
|
+
max-width: 100%;
|
|
14
|
+
}
|
|
15
|
+
> *:not(:first-child) {
|
|
16
|
+
margin-left: var(--group-overflow-gap, 8px);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.more {
|
|
21
|
+
margin-left: var(--group-overflow-gap, 8px);
|
|
22
|
+
flex-grow: 0;
|
|
23
|
+
flex-shrink: 0;
|
|
24
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export type RenderTail = (data: {
|
|
3
|
+
hiddenCount: number;
|
|
4
|
+
}) => ReactNode;
|
|
5
|
+
export interface GroupOverflowProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
+
/** Расстояние между элементами в пикселях. */
|
|
7
|
+
gap?: number;
|
|
8
|
+
/** Вернёт "замыкающий" элемент, который будет выведен по аналогии с многоточием для текста. */
|
|
9
|
+
tail?: RenderTail;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Группа со скрытием не влезающих элементов.
|
|
13
|
+
* @param props Свойства.
|
|
14
|
+
* @return Элемент.
|
|
15
|
+
*/
|
|
16
|
+
export declare function GroupOverflow({ children, className, style, gap, tail, ...restProps }: GroupOverflowProps): JSX.Element;
|
|
@@ -0,0 +1,61 @@
|
|
|
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 __rest = (this && this.__rest) || function (s, e) {
|
|
26
|
+
var t = {};
|
|
27
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
28
|
+
t[p] = s[p];
|
|
29
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
30
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
31
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
32
|
+
t[p[i]] = s[p[i]];
|
|
33
|
+
}
|
|
34
|
+
return t;
|
|
35
|
+
};
|
|
36
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
+
};
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.GroupOverflow = void 0;
|
|
41
|
+
const react_1 = __importStar(require("react"));
|
|
42
|
+
const utils_1 = require("./utils");
|
|
43
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
44
|
+
const group_overflow_module_scss_1 = __importDefault(require("./group-overflow.module.scss"));
|
|
45
|
+
/**
|
|
46
|
+
* Группа со скрытием не влезающих элементов.
|
|
47
|
+
* @param props Свойства.
|
|
48
|
+
* @return Элемент.
|
|
49
|
+
*/
|
|
50
|
+
function GroupOverflow(_a) {
|
|
51
|
+
var { children, className, style, gap, tail } = _a, restProps = __rest(_a, ["children", "className", "style", "gap", "tail"]);
|
|
52
|
+
const ref = (0, react_1.useRef)(null);
|
|
53
|
+
const { state, start } = (0, utils_1.useItemsHide)(ref, el => { var _a; return (_a = el.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement; });
|
|
54
|
+
const total = react_1.Children.count(children);
|
|
55
|
+
return (react_1.default.createElement("div", Object.assign({ className: (0, classnames_1.default)(group_overflow_module_scss_1.default.root, className), style: gap ? Object.assign(Object.assign({}, style), { '--group-overflow-gap': `${gap}px` }) : style }, restProps),
|
|
56
|
+
react_1.default.createElement("div", { ref: ref, className: group_overflow_module_scss_1.default.items }, state === 'initial'
|
|
57
|
+
? react_1.Children.toArray(children)
|
|
58
|
+
: react_1.Children.toArray(children).slice(0, start)),
|
|
59
|
+
state !== 'initial' && start < total && tail && (react_1.default.createElement("div", { className: group_overflow_module_scss_1.default.more }, tail({ hiddenCount: total - start })))));
|
|
60
|
+
}
|
|
61
|
+
exports.GroupOverflow = GroupOverflow;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
type HideStatus = 'initial' | 'hidden' | 'hidden+more';
|
|
3
|
+
/**
|
|
4
|
+
* Хук состояния скрытия не влезающих элементов.
|
|
5
|
+
* @param ref Реф с контейнером.
|
|
6
|
+
* @param getParent Получив контейнер вернет элемент за изменением ширины которого надо следить.
|
|
7
|
+
* @return Состояние.
|
|
8
|
+
*/
|
|
9
|
+
export declare function useItemsHide(ref: RefObject<HTMLElement>, getParent: (el: HTMLElement) => HTMLElement | null | undefined): {
|
|
10
|
+
state: HideStatus;
|
|
11
|
+
start: number;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Вернет индекс дочернего элемента, который не влез в контейнер по ширине.
|
|
15
|
+
* Работает только если все дочерние узлы размещены в одной строке (без переноса).
|
|
16
|
+
* @param element Контейнер.
|
|
17
|
+
* @return Индекс.
|
|
18
|
+
*/
|
|
19
|
+
export declare function defineHideStart(element: HTMLElement): number;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineHideStart = exports.useItemsHide = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const hooks_1 = require("../hooks");
|
|
6
|
+
/**
|
|
7
|
+
* Хук состояния скрытия не влезающих элементов.
|
|
8
|
+
* @param ref Реф с контейнером.
|
|
9
|
+
* @param getParent Получив контейнер вернет элемент за изменением ширины которого надо следить.
|
|
10
|
+
* @return Состояние.
|
|
11
|
+
*/
|
|
12
|
+
function useItemsHide(ref, getParent) {
|
|
13
|
+
const [state, setState] = (0, react_1.useState)('initial');
|
|
14
|
+
const [start, setStart] = (0, react_1.useState)(-1);
|
|
15
|
+
const calculateHideStart = (0, react_1.useCallback)((nextState) => {
|
|
16
|
+
if (ref.current) {
|
|
17
|
+
setStart(defineHideStart(ref.current));
|
|
18
|
+
setState(nextState);
|
|
19
|
+
}
|
|
20
|
+
}, [ref]);
|
|
21
|
+
// следим за изменениями размера **родительского** элемента
|
|
22
|
+
(0, hooks_1.useIsomorphicLayoutEffect)(() => {
|
|
23
|
+
if (!ref.current) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const parent = getParent(ref.current);
|
|
27
|
+
if (!parent) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const observer = new ResizeObserver(() => setState('initial'));
|
|
31
|
+
observer.observe(parent);
|
|
32
|
+
return () => observer.disconnect();
|
|
33
|
+
}, [ref]);
|
|
34
|
+
const lastStateRef = (0, react_1.useRef)(null);
|
|
35
|
+
// при каждом **внешнем** ререндере сбрасываем состояние
|
|
36
|
+
(0, hooks_1.useIsomorphicLayoutEffect)(() => {
|
|
37
|
+
if (state === lastStateRef.current) {
|
|
38
|
+
setStart(-1);
|
|
39
|
+
setState('initial');
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
lastStateRef.current = state;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
// меняем состояние по итогам рендера
|
|
46
|
+
(0, hooks_1.useIsomorphicLayoutEffect)(() => {
|
|
47
|
+
switch (state) {
|
|
48
|
+
case 'initial':
|
|
49
|
+
calculateHideStart('hidden');
|
|
50
|
+
break;
|
|
51
|
+
case 'hidden':
|
|
52
|
+
calculateHideStart('hidden+more');
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
}, [state]);
|
|
56
|
+
return { state, start };
|
|
57
|
+
}
|
|
58
|
+
exports.useItemsHide = useItemsHide;
|
|
59
|
+
/**
|
|
60
|
+
* Вернет индекс дочернего элемента, который не влез в контейнер по ширине.
|
|
61
|
+
* Работает только если все дочерние узлы размещены в одной строке (без переноса).
|
|
62
|
+
* @param element Контейнер.
|
|
63
|
+
* @return Индекс.
|
|
64
|
+
*/
|
|
65
|
+
function defineHideStart(element) {
|
|
66
|
+
const limit = Math.floor(element.getBoundingClientRect().right);
|
|
67
|
+
for (const [index, item] of [...element.children].entries()) {
|
|
68
|
+
if (index > 0 && Math.floor(item.getBoundingClientRect().right) > limit) {
|
|
69
|
+
return index;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return element.children.length;
|
|
73
|
+
}
|
|
74
|
+
exports.defineHideStart = defineHideStart;
|
package/hint/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CSSProperties, Dispatch, MutableRefObject, SetStateAction } from 'react';
|
|
2
|
-
import { ExtendedRefs, ReferenceType, UseFloatingProps, UseFloatingReturn } from '@floating-ui/react';
|
|
2
|
+
import { ExtendedRefs, ReferenceType, UseFloatingProps, UseFloatingReturn, UseHoverProps } from '@floating-ui/react';
|
|
3
3
|
interface HintExtendedRefs<RT> extends ExtendedRefs<RT> {
|
|
4
4
|
setArrow: (el: HTMLElement | null) => void;
|
|
5
5
|
}
|
|
@@ -35,9 +35,10 @@ export declare function getArrowFloatingStyle({ placement, middlewareData, }: Pi
|
|
|
35
35
|
/**
|
|
36
36
|
* Показ всплывающего хинта при наведении.
|
|
37
37
|
* @param floating Результат вызова useFloating.
|
|
38
|
+
* @param props Пропсы для useHover.
|
|
38
39
|
* @return Опции для открывающего и всплывающего элемента.
|
|
39
40
|
*/
|
|
40
|
-
export declare function useHintOnHover(floating: Pick<UseFloatingReturn
|
|
41
|
+
export declare function useHintOnHover<RT extends ReferenceType = ReferenceType>(floating: Pick<UseFloatingReturn<RT>, 'context' | 'strategy' | 'placement' | 'x' | 'y' | 'middlewareData'>, props?: UseHoverProps<RT>): {
|
|
41
42
|
getReferenceProps: (userProps?: import("react").HTMLProps<Element> | undefined) => Record<string, unknown>;
|
|
42
43
|
getFloatingProps: (userProps?: import("react").HTMLProps<HTMLElement> | undefined) => Record<string, unknown>;
|
|
43
44
|
getItemProps: (userProps?: import("react").HTMLProps<HTMLElement> | undefined) => Record<string, unknown>;
|
package/hint/utils.js
CHANGED
|
@@ -110,11 +110,12 @@ exports.getArrowFloatingStyle = getArrowFloatingStyle;
|
|
|
110
110
|
/**
|
|
111
111
|
* Показ всплывающего хинта при наведении.
|
|
112
112
|
* @param floating Результат вызова useFloating.
|
|
113
|
+
* @param props Пропсы для useHover.
|
|
113
114
|
* @return Опции для открывающего и всплывающего элемента.
|
|
114
115
|
*/
|
|
115
|
-
function useHintOnHover(floating) {
|
|
116
|
+
function useHintOnHover(floating, props) {
|
|
116
117
|
const style = useHintFloatingStyle(floating);
|
|
117
|
-
const hover = (0, react_2.useHover)(floating.context, {
|
|
118
|
+
const hover = (0, react_2.useHover)(floating.context, Object.assign({ handleClose: (0, react_2.safePolygon)() }, props));
|
|
118
119
|
return (0, react_2.useInteractions)([hover, { floating: { style } }]);
|
|
119
120
|
}
|
|
120
121
|
exports.useHintOnHover = useHintOnHover;
|
package/modal/index.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ export interface ModalProps extends WithPageScrollLock {
|
|
|
13
13
|
onClose?: () => void;
|
|
14
14
|
/** Размер окна. */
|
|
15
15
|
size?: ModalSize;
|
|
16
|
+
/** Нужно ли выводить заглушку вместо футера если он не задан. */
|
|
17
|
+
footerStub?: boolean;
|
|
16
18
|
/** Идентификатор для систем автоматизированного тестирования. */
|
|
17
19
|
'data-testid'?: string;
|
|
18
20
|
}
|
|
@@ -21,7 +23,7 @@ export interface ModalProps extends WithPageScrollLock {
|
|
|
21
23
|
* @param props Свойства.
|
|
22
24
|
* @return Элемент.
|
|
23
25
|
*/
|
|
24
|
-
export declare function Modal({ children, height, onClose, scrollDisableOptions, size, withScrollDisable, 'data-testid': testId, }: ModalProps): JSX.Element;
|
|
26
|
+
export declare function Modal({ children, height, onClose, scrollDisableOptions, size, footerStub, withScrollDisable, 'data-testid': testId, }: ModalProps): JSX.Element;
|
|
25
27
|
export declare namespace Modal {
|
|
26
28
|
var Header: typeof ModalHeader;
|
|
27
29
|
var Body: typeof ModalBody;
|
package/modal/index.js
CHANGED
|
@@ -19,7 +19,7 @@ const cx = bind_1.default.bind(modal_module_scss_1.default);
|
|
|
19
19
|
* @param props Свойства.
|
|
20
20
|
* @return Элемент.
|
|
21
21
|
*/
|
|
22
|
-
function Modal({ children, height, onClose, scrollDisableOptions, size = 'm', withScrollDisable = false, 'data-testid': testId = 'modal', }) {
|
|
22
|
+
function Modal({ children, height, onClose, scrollDisableOptions, size = 'm', footerStub = size !== 'fullscreen', withScrollDisable = false, 'data-testid': testId = 'modal', }) {
|
|
23
23
|
const overlayClickBind = (0, utils_2.useExactClick)(onClose);
|
|
24
24
|
const fullscreen = size === 'fullscreen';
|
|
25
25
|
const { header, content, footer, overlap } = (0, define_slots_1.defineSlots)(children, {
|
|
@@ -44,7 +44,7 @@ function Modal({ children, height, onClose, scrollDisableOptions, size = 'm', wi
|
|
|
44
44
|
header,
|
|
45
45
|
content,
|
|
46
46
|
footer,
|
|
47
|
-
!footer &&
|
|
47
|
+
!footer && footerStub && react_1.default.createElement("div", { className: cx('footer-stub') }),
|
|
48
48
|
overlap && (react_1.default.createElement("div", { className: cx('overlap-content'), "data-testid": 'modal:overlap' }, overlap))))));
|
|
49
49
|
}
|
|
50
50
|
exports.Modal = Modal;
|
package/package.json
CHANGED
package/styling/borders.d.ts
CHANGED
package/styling/borders.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.InnerBorder = void 0;
|
|
|
7
7
|
const bind_1 = __importDefault(require("classnames/bind"));
|
|
8
8
|
const borders_module_scss_1 = __importDefault(require("./borders.module.scss"));
|
|
9
9
|
const cx = bind_1.default.bind(borders_module_scss_1.default);
|
|
10
|
+
/** @deprecated */
|
|
10
11
|
exports.InnerBorder = {
|
|
11
12
|
y: cx('inner-border-y'),
|
|
12
13
|
top: cx('inner-border-top'),
|
package/styling/colors.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
+
/** @deprecated */
|
|
1
2
|
export declare const color: (value: "basic-blue" | "basic-gray87" | "basic-gray76" | "basic-gray66" | "basic-gray54" | "basic-gray38" | "basic-gray24" | "basic-gray12" | "basic-gray8" | "basic-gray4" | "basic-gray2" | "basic-white" | "additional-deep-red" | "additional-red" | "additional-light-red" | "additional-teal" | "additional-green" | "additional-light-green" | "additional-lime" | "additional-faded-green" | "additional-pink" | "additional-purple" | "additional-violet" | "additional-deep-purple" | "additional-electric-blue" | "additional-light-blue" | "additional-cyan" | "additional-sky" | "additional-deep-orange" | "additional-amber" | "additional-yellow" | "additional-gold" | "additional-brown" | "additional-blue-gray" | "additional-deep-blue" | "additional-dark-blue") => string | undefined;
|
|
3
|
+
/** @deprecated */
|
|
2
4
|
export declare const hoverColor: (value: "basic-blue" | "basic-gray87" | "basic-gray76" | "basic-gray66" | "basic-gray54" | "basic-gray38" | "basic-gray24" | "basic-gray12" | "basic-gray8" | "basic-gray4" | "basic-gray2" | "basic-white" | "additional-deep-red" | "additional-red" | "additional-light-red" | "additional-teal" | "additional-green" | "additional-light-green" | "additional-lime" | "additional-faded-green" | "additional-pink" | "additional-purple" | "additional-violet" | "additional-deep-purple" | "additional-electric-blue" | "additional-light-blue" | "additional-cyan" | "additional-sky" | "additional-deep-orange" | "additional-amber" | "additional-yellow" | "additional-gold" | "additional-brown" | "additional-blue-gray" | "additional-deep-blue" | "additional-dark-blue") => string | undefined;
|
|
5
|
+
/** @deprecated */
|
|
3
6
|
export declare const bgColor: (value: "basic-blue" | "basic-gray87" | "basic-gray76" | "basic-gray66" | "basic-gray54" | "basic-gray38" | "basic-gray24" | "basic-gray12" | "basic-gray8" | "basic-gray4" | "basic-gray2" | "basic-white" | "additional-deep-red" | "additional-red" | "additional-light-red" | "additional-teal" | "additional-green" | "additional-light-green" | "additional-lime" | "additional-faded-green" | "additional-pink" | "additional-purple" | "additional-violet" | "additional-deep-purple" | "additional-electric-blue" | "additional-light-blue" | "additional-cyan" | "additional-sky" | "additional-deep-orange" | "additional-amber" | "additional-yellow" | "additional-gold" | "additional-brown" | "additional-blue-gray" | "additional-deep-blue" | "additional-dark-blue") => string | undefined;
|
|
7
|
+
/** @deprecated */
|
|
4
8
|
export declare const stroke: (value: "basic-blue" | "basic-gray87" | "basic-gray76" | "basic-gray66" | "basic-gray54" | "basic-gray38" | "basic-gray24" | "basic-gray12" | "basic-gray8" | "basic-gray4" | "basic-gray2" | "basic-white" | "additional-deep-red" | "additional-red" | "additional-light-red" | "additional-teal" | "additional-green" | "additional-light-green" | "additional-lime" | "additional-faded-green" | "additional-pink" | "additional-purple" | "additional-violet" | "additional-deep-purple" | "additional-electric-blue" | "additional-light-blue" | "additional-cyan" | "additional-sky" | "additional-deep-orange" | "additional-amber" | "additional-yellow" | "additional-gold" | "additional-brown" | "additional-blue-gray" | "additional-deep-blue" | "additional-dark-blue") => string | undefined;
|
|
9
|
+
/** @deprecated */
|
|
5
10
|
export declare const fill: (value: "basic-blue" | "basic-gray87" | "basic-gray76" | "basic-gray66" | "basic-gray54" | "basic-gray38" | "basic-gray24" | "basic-gray12" | "basic-gray8" | "basic-gray4" | "basic-gray2" | "basic-white" | "additional-deep-red" | "additional-red" | "additional-light-red" | "additional-teal" | "additional-green" | "additional-light-green" | "additional-lime" | "additional-faded-green" | "additional-pink" | "additional-purple" | "additional-violet" | "additional-deep-purple" | "additional-electric-blue" | "additional-light-blue" | "additional-cyan" | "additional-sky" | "additional-deep-orange" | "additional-amber" | "additional-yellow" | "additional-gold" | "additional-brown" | "additional-blue-gray" | "additional-deep-blue" | "additional-dark-blue") => string | undefined;
|
package/styling/colors.js
CHANGED
|
@@ -8,8 +8,13 @@ const utils_1 = require("./utils");
|
|
|
8
8
|
const colors_1 = require("../colors");
|
|
9
9
|
const colors_module_scss_1 = __importDefault(require("./colors.module.scss"));
|
|
10
10
|
const isColorKey = colors_1.COLORS.has.bind(colors_1.COLORS);
|
|
11
|
+
/** @deprecated */
|
|
11
12
|
exports.color = (0, utils_1.ClassGetter)(colors_module_scss_1.default, isColorKey, 'color__');
|
|
13
|
+
/** @deprecated */
|
|
12
14
|
exports.hoverColor = (0, utils_1.ClassGetter)(colors_module_scss_1.default, isColorKey, 'hover-color__');
|
|
15
|
+
/** @deprecated */
|
|
13
16
|
exports.bgColor = (0, utils_1.ClassGetter)(colors_module_scss_1.default, isColorKey, 'bg-color__');
|
|
17
|
+
/** @deprecated */
|
|
14
18
|
exports.stroke = (0, utils_1.ClassGetter)(colors_module_scss_1.default, isColorKey, 'stroke__');
|
|
19
|
+
/** @deprecated */
|
|
15
20
|
exports.fill = (0, utils_1.ClassGetter)(colors_module_scss_1.default, isColorKey, 'fill__');
|
package/styling/fonts.d.ts
CHANGED
|
@@ -4,6 +4,9 @@ export type Weight = 400 | 600 | 700;
|
|
|
4
4
|
export declare const SIZES: Set<Size>;
|
|
5
5
|
export declare const LINE_HEIGHTS: Set<LineHeight>;
|
|
6
6
|
export declare const WEIGHTS: Set<Weight>;
|
|
7
|
+
/** @deprecated */
|
|
7
8
|
export declare const size: (value: Size) => string | undefined;
|
|
9
|
+
/** @deprecated */
|
|
8
10
|
export declare const lineHeight: (value: LineHeight) => string | undefined;
|
|
11
|
+
/** @deprecated */
|
|
9
12
|
export declare const weight: (value: Weight) => string | undefined;
|
package/styling/fonts.js
CHANGED
|
@@ -9,6 +9,9 @@ const fonts_module_scss_1 = __importDefault(require("./fonts.module.scss"));
|
|
|
9
9
|
exports.SIZES = new Set([12, 14, 16, 20, 24, 32, 48, 64]);
|
|
10
10
|
exports.LINE_HEIGHTS = new Set([16, 20, 24, 28, 32, 40, 60, 80]);
|
|
11
11
|
exports.WEIGHTS = new Set([400, 600, 700]);
|
|
12
|
+
/** @deprecated */
|
|
12
13
|
exports.size = (0, utils_1.ClassGetter)(fonts_module_scss_1.default, exports.SIZES.has.bind(exports.SIZES), 'size-');
|
|
14
|
+
/** @deprecated */
|
|
13
15
|
exports.lineHeight = (0, utils_1.ClassGetter)(fonts_module_scss_1.default, exports.LINE_HEIGHTS.has.bind(exports.LINE_HEIGHTS), 'line-height-');
|
|
16
|
+
/** @deprecated */
|
|
14
17
|
exports.weight = (0, utils_1.ClassGetter)(fonts_module_scss_1.default, exports.WEIGHTS.has.bind(exports.WEIGHTS), 'weight-');
|
package/styling/shadows.d.ts
CHANGED
package/styling/shadows.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.BoxShadow = void 0;
|
|
7
7
|
const shadows_module_scss_1 = __importDefault(require("./shadows.module.scss"));
|
|
8
|
+
/** @deprecated */
|
|
8
9
|
exports.BoxShadow = {
|
|
9
10
|
z1: shadows_module_scss_1.default['shadow-z1'],
|
|
10
11
|
z2: shadows_module_scss_1.default['shadow-z2'],
|
package/styling/shapes.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @deprecated */
|
|
1
2
|
export declare const SmallRounds: {
|
|
2
3
|
all: string;
|
|
3
4
|
top: string;
|
|
@@ -9,6 +10,7 @@ export declare const SmallRounds: {
|
|
|
9
10
|
bottomLeft: string;
|
|
10
11
|
bottomRight: string;
|
|
11
12
|
};
|
|
13
|
+
/** @deprecated */
|
|
12
14
|
export declare const MediumRounds: {
|
|
13
15
|
all: string;
|
|
14
16
|
top: string;
|
package/styling/shapes.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.MediumRounds = exports.SmallRounds = void 0;
|
|
7
7
|
const shapes_module_scss_1 = __importDefault(require("./shapes.module.scss"));
|
|
8
|
+
/** @deprecated */
|
|
8
9
|
exports.SmallRounds = {
|
|
9
10
|
all: shapes_module_scss_1.default['rounds-sm__all'],
|
|
10
11
|
top: shapes_module_scss_1.default['rounds-sm__t'],
|
|
@@ -16,6 +17,7 @@ exports.SmallRounds = {
|
|
|
16
17
|
bottomLeft: shapes_module_scss_1.default['rounds-sm__b-l'],
|
|
17
18
|
bottomRight: shapes_module_scss_1.default['rounds-sm__b-r'],
|
|
18
19
|
};
|
|
20
|
+
/** @deprecated */
|
|
19
21
|
exports.MediumRounds = {
|
|
20
22
|
all: shapes_module_scss_1.default['rounds-md__all'],
|
|
21
23
|
top: shapes_module_scss_1.default['rounds-md__t'],
|
package/styling/sizes.d.ts
CHANGED
|
@@ -1,20 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Проверяет, является ли значение шагом дизайн-системы для внешних отступов.
|
|
3
|
+
* @deprecated
|
|
3
4
|
* @param value Значение.
|
|
4
5
|
* @return Результат.
|
|
5
6
|
*/
|
|
6
7
|
export declare const isMargin: (value: any) => boolean;
|
|
7
8
|
/**
|
|
8
9
|
* Проверяет, является ли значение шагом дизайн-системы для внутренних отступов.
|
|
10
|
+
* @deprecated
|
|
9
11
|
* @param value Значение.
|
|
10
12
|
* @return Результат.
|
|
11
13
|
*/
|
|
12
14
|
export declare const isPadding: (value: any) => boolean;
|
|
15
|
+
/** @deprecated */
|
|
13
16
|
export declare const marginTop: (value: any) => string | undefined;
|
|
17
|
+
/** @deprecated */
|
|
14
18
|
export declare const marginRight: (value: any) => string | undefined;
|
|
19
|
+
/** @deprecated */
|
|
15
20
|
export declare const marginBottom: (value: any) => string | undefined;
|
|
21
|
+
/** @deprecated */
|
|
16
22
|
export declare const marginLeft: (value: any) => string | undefined;
|
|
23
|
+
/** @deprecated */
|
|
17
24
|
export declare const paddingTop: (value: any) => string | undefined;
|
|
25
|
+
/** @deprecated */
|
|
18
26
|
export declare const paddingRight: (value: any) => string | undefined;
|
|
27
|
+
/** @deprecated */
|
|
19
28
|
export declare const paddingBottom: (value: any) => string | undefined;
|
|
29
|
+
/** @deprecated */
|
|
20
30
|
export declare const paddingLeft: (value: any) => string | undefined;
|
package/styling/sizes.js
CHANGED
|
@@ -8,6 +8,7 @@ const utils_1 = require("./utils");
|
|
|
8
8
|
const sizes_module_scss_1 = __importDefault(require("./sizes.module.scss"));
|
|
9
9
|
/**
|
|
10
10
|
* Проверяет, является ли значение шагом дизайн-системы для внешних отступов.
|
|
11
|
+
* @deprecated
|
|
11
12
|
* @param value Значение.
|
|
12
13
|
* @return Результат.
|
|
13
14
|
*/
|
|
@@ -15,16 +16,25 @@ const isMargin = (value) => Number.isInteger(value) && value >= -8 && value <= 3
|
|
|
15
16
|
exports.isMargin = isMargin;
|
|
16
17
|
/**
|
|
17
18
|
* Проверяет, является ли значение шагом дизайн-системы для внутренних отступов.
|
|
19
|
+
* @deprecated
|
|
18
20
|
* @param value Значение.
|
|
19
21
|
* @return Результат.
|
|
20
22
|
*/
|
|
21
23
|
const isPadding = (value) => Number.isInteger(value) && value >= 0 && value <= 32;
|
|
22
24
|
exports.isPadding = isPadding;
|
|
25
|
+
/** @deprecated */
|
|
23
26
|
exports.marginTop = (0, utils_1.ClassGetter)(sizes_module_scss_1.default, exports.isMargin, 'M-t__');
|
|
27
|
+
/** @deprecated */
|
|
24
28
|
exports.marginRight = (0, utils_1.ClassGetter)(sizes_module_scss_1.default, exports.isMargin, 'M-r__');
|
|
29
|
+
/** @deprecated */
|
|
25
30
|
exports.marginBottom = (0, utils_1.ClassGetter)(sizes_module_scss_1.default, exports.isMargin, 'M-b__');
|
|
31
|
+
/** @deprecated */
|
|
26
32
|
exports.marginLeft = (0, utils_1.ClassGetter)(sizes_module_scss_1.default, exports.isMargin, 'M-l__');
|
|
33
|
+
/** @deprecated */
|
|
27
34
|
exports.paddingTop = (0, utils_1.ClassGetter)(sizes_module_scss_1.default, exports.isPadding, 'P-t__');
|
|
35
|
+
/** @deprecated */
|
|
28
36
|
exports.paddingRight = (0, utils_1.ClassGetter)(sizes_module_scss_1.default, exports.isPadding, 'P-r__');
|
|
37
|
+
/** @deprecated */
|
|
29
38
|
exports.paddingBottom = (0, utils_1.ClassGetter)(sizes_module_scss_1.default, exports.isPadding, 'P-b__');
|
|
39
|
+
/** @deprecated */
|
|
30
40
|
exports.paddingLeft = (0, utils_1.ClassGetter)(sizes_module_scss_1.default, exports.isPadding, 'P-l__');
|
package/styling/utils.d.ts
CHANGED
|
@@ -4,5 +4,6 @@
|
|
|
4
4
|
* @param isValidKey Функция проверки ключа для класса.
|
|
5
5
|
* @param [prefix=''] Префикс имени класса.
|
|
6
6
|
* @return Геттер CSS-класса.
|
|
7
|
+
* @deprecated
|
|
7
8
|
*/
|
|
8
9
|
export declare const ClassGetter: <T = string | number>(classes: Record<string, string>, isValidKey: (s: T) => boolean, prefix?: string) => (value: T) => string | undefined;
|
package/styling/utils.js
CHANGED
|
@@ -11,6 +11,7 @@ const bind_1 = __importDefault(require("classnames/bind"));
|
|
|
11
11
|
* @param isValidKey Функция проверки ключа для класса.
|
|
12
12
|
* @param [prefix=''] Префикс имени класса.
|
|
13
13
|
* @return Геттер CSS-класса.
|
|
14
|
+
* @deprecated
|
|
14
15
|
*/
|
|
15
16
|
const ClassGetter = (classes, isValidKey, prefix = '') => {
|
|
16
17
|
const cx = bind_1.default.bind(classes);
|
package/top-bar/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
2
|
export type TopBarSize = 's' | 'm' | 'xl';
|
|
3
3
|
export interface TopBarButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
4
4
|
/** Иконка. */
|
|
@@ -21,9 +21,9 @@ export interface TopBarProps {
|
|
|
21
21
|
/** Размер. */
|
|
22
22
|
size?: TopBarSize | 'unset';
|
|
23
23
|
/** Подзаголовок. */
|
|
24
|
-
subtitle?:
|
|
24
|
+
subtitle?: ReactNode;
|
|
25
25
|
/** Заголовок. */
|
|
26
|
-
title?:
|
|
26
|
+
title?: ReactNode;
|
|
27
27
|
/** Нужна ли разделительная черта снизу. */
|
|
28
28
|
divided?: boolean;
|
|
29
29
|
/** Идентификатор для систем автоматизированного тестирования. */
|
package/utils.scss
CHANGED
|
@@ -72,11 +72,18 @@
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
+
/**
|
|
76
|
+
* Добавляет стандартную визуальную подсветку состояния focus-visible.
|
|
77
|
+
*/
|
|
78
|
+
@mixin focus-visible-style() {
|
|
79
|
+
outline: 2px solid colors.$basic-blue;
|
|
80
|
+
}
|
|
81
|
+
|
|
75
82
|
/**
|
|
76
83
|
* Формирует стандартную визуальную подсветку для состояния focus-visible.
|
|
77
84
|
*/
|
|
78
85
|
@mixin focus-visible() {
|
|
79
86
|
&:focus-visible {
|
|
80
|
-
|
|
87
|
+
@include focus-visible-style;
|
|
81
88
|
}
|
|
82
89
|
}
|