@sima-land/ui-nucleons 45.0.0-alpha.6 → 45.0.0-alpha.8
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/autocomplete/autocomplete.js +8 -8
- package/autocomplete/autocomplete.js.map +1 -1
- package/avatar/avatar.d.ts +8 -0
- package/avatar/avatar.js +26 -0
- package/avatar/avatar.js.map +1 -0
- package/avatar/avatar.module.scss +17 -42
- package/avatar/index.d.ts +3 -30
- package/avatar/index.js +8 -41
- package/avatar/index.js.map +1 -1
- package/avatar/types.d.ts +19 -0
- package/avatar/types.js +3 -0
- package/avatar/types.js.map +1 -0
- package/avatar/utils.d.ts +28 -4
- package/avatar/utils.js +76 -13
- package/avatar/utils.js.map +1 -1
- package/avatar/utils.module.scss +9 -0
- package/button/button-util.scss +46 -0
- package/button/button.module.scss +17 -26
- package/button/index.d.ts +12 -2
- package/button/index.js +1 -1
- package/button/index.js.map +1 -1
- package/chips/chips-item.d.ts +15 -0
- package/chips/{item.js → chips-item.js} +7 -5
- package/chips/chips-item.js.map +1 -0
- package/chips/chips-item.module.scss +67 -0
- package/chips/chips.d.ts +17 -0
- package/chips/chips.js +25 -0
- package/chips/chips.js.map +1 -0
- package/chips/chips.module.scss +1 -69
- package/chips/index.d.ts +2 -16
- package/chips/index.js +5 -18
- package/chips/index.js.map +1 -1
- package/colors/index.d.ts +6 -4
- package/colors/index.js +6 -3
- package/colors/index.js.map +1 -1
- package/colors.scss +2 -0
- package/dropdown/utils.d.ts +1 -1
- package/expandable/expandable-group.module.scss +1 -5
- package/expandable/index.d.ts +4 -34
- package/expandable/index.js +80 -30
- package/expandable/index.js.map +1 -1
- package/expandable/types.d.ts +39 -0
- package/expandable/types.js +3 -0
- package/expandable/types.js.map +1 -0
- package/expandable/utils.d.ts +22 -23
- package/expandable/utils.js +65 -80
- package/expandable/utils.js.map +1 -1
- package/file-icon/file-icon.module.scss +42 -0
- package/file-icon/index.d.ts +10 -3
- package/file-icon/index.js +10 -16
- package/file-icon/index.js.map +1 -1
- package/link/index.d.ts +2 -2
- package/link/index.js.map +1 -1
- package/modal/index.d.ts +1 -1
- package/package.json +14 -17
- package/pagination/pagination-item.js +1 -1
- package/pagination/pagination-item.js.map +1 -1
- package/pagination/pagination.js +1 -1
- package/pagination/pagination.js.map +1 -1
- package/popup/utils.d.ts +1 -1
- package/side-page/index.js +1 -1
- package/side-page/index.js.map +1 -1
- package/styling/colors.d.ts +5 -5
- package/tabs/index.d.ts +24 -10
- package/tabs/index.js +8 -4
- package/tabs/index.js.map +1 -1
- package/textarea/index.js +1 -1
- package/toggle/toggle.module.scss +4 -4
- package/top-bar/top-bar.module.scss +1 -1
- package/upload-area/index.d.ts +2 -1
- package/upload-area/index.js +3 -1
- package/upload-area/index.js.map +1 -1
- package/upload-area/types.d.ts +10 -8
- package/upload-area/upload-area-util.scss +2 -0
- package/upload-area/upload-area.d.ts +1 -1
- package/upload-area/upload-area.js +6 -19
- package/upload-area/upload-area.js.map +1 -1
- package/upload-area/upload-area.module.scss +4 -1
- package/upload-area/utils.d.ts +7 -0
- package/upload-area/utils.js +20 -1
- package/upload-area/utils.js.map +1 -1
- package/avatar/user.d.ts +0 -10
- package/avatar/user.js +0 -41
- package/avatar/user.js.map +0 -1
- package/chips/item.d.ts +0 -15
- package/chips/item.js.map +0 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { MouseEventHandler, ReactNode } from 'react';
|
|
2
|
+
export interface ChipsItemProps {
|
|
3
|
+
href?: string;
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
withCross?: boolean;
|
|
6
|
+
target?: string;
|
|
7
|
+
onClick?: MouseEventHandler<HTMLAnchorElement>;
|
|
8
|
+
checked?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Элемент списка "чипсов".
|
|
12
|
+
* @param props Свойства.
|
|
13
|
+
* @return Элемент.
|
|
14
|
+
*/
|
|
15
|
+
export declare function ChipsItem({ href, children, withCross, target, onClick, checked }: ChipsItemProps): JSX.Element;
|
|
@@ -5,15 +5,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ChipsItem = void 0;
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
-
const bind_1 = __importDefault(require("classnames/bind"));
|
|
9
8
|
const Cross_1 = __importDefault(require("@sima-land/ui-quarks/icons/16x16/Stroked/Cross"));
|
|
10
|
-
const
|
|
11
|
-
const
|
|
9
|
+
const bind_1 = __importDefault(require("classnames/bind"));
|
|
10
|
+
const chips_item_module_scss_1 = __importDefault(require("./chips-item.module.scss"));
|
|
11
|
+
const cx = bind_1.default.bind(chips_item_module_scss_1.default);
|
|
12
12
|
/**
|
|
13
13
|
* Элемент списка "чипсов".
|
|
14
14
|
* @param props Свойства.
|
|
15
15
|
* @return Элемент.
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
function ChipsItem({ href, children, withCross, target, onClick, checked }) {
|
|
18
|
+
return ((0, jsx_runtime_1.jsxs)("a", { href: href, role: href ? undefined : 'button', className: cx('root', { checked }), target: target, onClick: onClick, "data-testid": 'chips:item', children: [(0, jsx_runtime_1.jsx)("span", { className: chips_item_module_scss_1.default.text, children: children }), withCross && (0, jsx_runtime_1.jsx)(Cross_1.default, { className: cx('cross-svg') })] }));
|
|
19
|
+
}
|
|
18
20
|
exports.ChipsItem = ChipsItem;
|
|
19
|
-
//# sourceMappingURL=item.js.map
|
|
21
|
+
//# sourceMappingURL=chips-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chips-item.js","sourceRoot":"","sources":["../../src/chips/chips-item.tsx"],"names":[],"mappings":";;;;;;;AACA,2FAAsE;AACtE,2DAAyC;AACzC,sFAA8C;AAW9C,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,gCAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,SAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAkB;IAC/F,OAAO,CACL,+BACE,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EACjC,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,iBACJ,YAAY,aAExB,iCAAM,SAAS,EAAE,gCAAM,CAAC,IAAI,YAAG,QAAQ,GAAQ,EAC9C,SAAS,IAAI,uBAAC,eAAQ,IAAC,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,GAAI,IACpD,CACL,CAAC;AACJ,CAAC;AAdD,8BAcC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
@use '../colors';
|
|
2
|
+
|
|
3
|
+
.root {
|
|
4
|
+
flex-grow: 0;
|
|
5
|
+
flex-shrink: 0;
|
|
6
|
+
max-width: 100%;
|
|
7
|
+
display: flex;
|
|
8
|
+
align-items: center;
|
|
9
|
+
height: 32px;
|
|
10
|
+
|
|
11
|
+
// ВАЖНО: по умолчанию 0 чтобы вне Chips отступов не было
|
|
12
|
+
margin-right: var(--chips-gutter, 0);
|
|
13
|
+
margin-bottom: var(--chips-gutter, 0);
|
|
14
|
+
overflow: hidden;
|
|
15
|
+
outline: 0;
|
|
16
|
+
border: 0;
|
|
17
|
+
padding: 0 12px;
|
|
18
|
+
background: colors.$basic-gray8;
|
|
19
|
+
color: colors.$basic-gray87;
|
|
20
|
+
border-radius: 4px;
|
|
21
|
+
box-sizing: border-box;
|
|
22
|
+
font: inherit;
|
|
23
|
+
font-size: 12px;
|
|
24
|
+
font-weight: 600;
|
|
25
|
+
line-height: 16px;
|
|
26
|
+
text-decoration: none;
|
|
27
|
+
|
|
28
|
+
// ВАЖНО: переопределяем стили монолита
|
|
29
|
+
&,
|
|
30
|
+
&:link,
|
|
31
|
+
&:visited {
|
|
32
|
+
background: colors.$basic-gray8;
|
|
33
|
+
color: colors.$basic-gray87;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// ВАЖНО: эффект при наведении определяем **после** переопределения стилей монолита
|
|
37
|
+
&:hover {
|
|
38
|
+
cursor: pointer;
|
|
39
|
+
}
|
|
40
|
+
&:hover,
|
|
41
|
+
&:active {
|
|
42
|
+
background: colors.$basic-gray12;
|
|
43
|
+
color: colors.$basic-gray87;
|
|
44
|
+
}
|
|
45
|
+
&.checked {
|
|
46
|
+
background: colors.$basic-gray76;
|
|
47
|
+
color: colors.$basic-white;
|
|
48
|
+
&:hover,
|
|
49
|
+
&:active {
|
|
50
|
+
background: colors.$basic-gray66;
|
|
51
|
+
color: colors.$basic-white;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.text {
|
|
57
|
+
text-overflow: ellipsis;
|
|
58
|
+
overflow: hidden;
|
|
59
|
+
white-space: nowrap;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.cross-svg {
|
|
63
|
+
display: block;
|
|
64
|
+
fill: currentColor;
|
|
65
|
+
margin-left: 8px;
|
|
66
|
+
flex-shrink: 0;
|
|
67
|
+
}
|
package/chips/chips.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import { ChipsItem } from './chips-item';
|
|
3
|
+
export interface ChipsProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
/** Элементы списка. */
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
/** Идентификатор для систем автоматизированного тестирования. */
|
|
7
|
+
'data-testid'?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Список "чипсов".
|
|
11
|
+
* @param props Свойства.
|
|
12
|
+
* @return Элемент.
|
|
13
|
+
*/
|
|
14
|
+
export declare function Chips({ children, className, 'data-testid': testId, ...restProps }: ChipsProps): JSX.Element;
|
|
15
|
+
export declare namespace Chips {
|
|
16
|
+
var Item: typeof ChipsItem;
|
|
17
|
+
}
|
package/chips/chips.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Chips = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const chips_item_1 = require("./chips-item");
|
|
9
|
+
const bind_1 = __importDefault(require("classnames/bind"));
|
|
10
|
+
const chips_module_scss_1 = __importDefault(require("./chips.module.scss"));
|
|
11
|
+
const cx = bind_1.default.bind(chips_module_scss_1.default);
|
|
12
|
+
/**
|
|
13
|
+
* Список "чипсов".
|
|
14
|
+
* @param props Свойства.
|
|
15
|
+
* @return Элемент.
|
|
16
|
+
*/
|
|
17
|
+
function Chips({ children, className, 'data-testid': testId = 'chips', ...restProps }) {
|
|
18
|
+
return ((0, jsx_runtime_1.jsx)("div", { ...restProps, className: cx('root', className), "data-testid": testId, children: children }));
|
|
19
|
+
}
|
|
20
|
+
exports.Chips = Chips;
|
|
21
|
+
/**
|
|
22
|
+
* @deprecated Следует использовать ChipsItem.
|
|
23
|
+
*/
|
|
24
|
+
Chips.Item = chips_item_1.ChipsItem;
|
|
25
|
+
//# sourceMappingURL=chips.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chips.js","sourceRoot":"","sources":["../../src/chips/chips.tsx"],"names":[],"mappings":";;;;;;;AACA,6CAAyC;AACzC,2DAAyC;AACzC,4EAAyC;AAUzC,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,2BAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,SAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,SAAS,EACT,aAAa,EAAE,MAAM,GAAG,OAAO,EAC/B,GAAG,SAAS,EACD;IACX,OAAO,CACL,mCAAS,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,iBAAe,MAAM,YACtE,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAXD,sBAWC;AAED;;GAEG;AACH,KAAK,CAAC,IAAI,GAAG,sBAAS,CAAC"}
|
package/chips/chips.module.scss
CHANGED
|
@@ -1,75 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
.list {
|
|
1
|
+
.root {
|
|
4
2
|
display: flex;
|
|
5
3
|
flex-wrap: wrap;
|
|
6
4
|
--chips-gutter: 8px;
|
|
7
5
|
margin-right: calc(-1 * var(--chips-gutter));
|
|
8
6
|
margin-bottom: calc(-1 * var(--chips-gutter));
|
|
9
7
|
}
|
|
10
|
-
|
|
11
|
-
.item {
|
|
12
|
-
flex-grow: 0;
|
|
13
|
-
flex-shrink: 0;
|
|
14
|
-
max-width: 100%;
|
|
15
|
-
display: flex;
|
|
16
|
-
align-items: center;
|
|
17
|
-
height: 32px;
|
|
18
|
-
|
|
19
|
-
// по умолчанию 0 чтобы вне Chips отступов не было
|
|
20
|
-
margin-right: var(--chips-gutter, 0);
|
|
21
|
-
margin-bottom: var(--chips-gutter, 0);
|
|
22
|
-
overflow: hidden;
|
|
23
|
-
outline: 0;
|
|
24
|
-
border: 0;
|
|
25
|
-
padding: 0 12px;
|
|
26
|
-
background: colors.$basic-gray8;
|
|
27
|
-
color: colors.$basic-gray87;
|
|
28
|
-
border-radius: 4px;
|
|
29
|
-
box-sizing: border-box;
|
|
30
|
-
font: inherit;
|
|
31
|
-
font-size: 12px;
|
|
32
|
-
font-weight: 600;
|
|
33
|
-
line-height: 16px;
|
|
34
|
-
text-decoration: none;
|
|
35
|
-
|
|
36
|
-
// переопределяем стили монолита
|
|
37
|
-
&,
|
|
38
|
-
&:link,
|
|
39
|
-
&:visited {
|
|
40
|
-
background: colors.$basic-gray8;
|
|
41
|
-
color: colors.$basic-gray87;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// эффект при наведении определяем **после** переопределения стилей монолита
|
|
45
|
-
&:hover {
|
|
46
|
-
cursor: pointer;
|
|
47
|
-
}
|
|
48
|
-
&:hover,
|
|
49
|
-
&:active {
|
|
50
|
-
background: colors.$basic-gray12;
|
|
51
|
-
color: colors.$basic-gray87;
|
|
52
|
-
}
|
|
53
|
-
&.checked {
|
|
54
|
-
background: colors.$basic-gray76;
|
|
55
|
-
color: colors.$basic-white;
|
|
56
|
-
&:hover,
|
|
57
|
-
&:active {
|
|
58
|
-
background: colors.$basic-gray66;
|
|
59
|
-
color: colors.$basic-white;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
.text {
|
|
65
|
-
text-overflow: ellipsis;
|
|
66
|
-
overflow: hidden;
|
|
67
|
-
white-space: nowrap;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.cross-svg {
|
|
71
|
-
display: block;
|
|
72
|
-
fill: currentColor;
|
|
73
|
-
margin-left: 8px;
|
|
74
|
-
flex-shrink: 0;
|
|
75
|
-
}
|
package/chips/index.d.ts
CHANGED
|
@@ -1,16 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
/** Элементы списка. */
|
|
4
|
-
children: React.ReactNode;
|
|
5
|
-
/** Идентификатор для систем автоматизированного тестирования. */
|
|
6
|
-
'data-testid'?: string;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Список "чипсов".
|
|
10
|
-
* @param props Свойства.
|
|
11
|
-
* @return Элемент.
|
|
12
|
-
*/
|
|
13
|
-
export declare const Chips: {
|
|
14
|
-
({ children, className, "data-testid": testId, ...restProps }: ChipsProps): JSX.Element;
|
|
15
|
-
Item: ({ href, children, withCross, target, onClick, checked, }: import("./item").ChipsItemProps) => JSX.Element;
|
|
16
|
-
};
|
|
1
|
+
export { Chips, ChipsProps } from './chips';
|
|
2
|
+
export { ChipsItem, ChipsItemProps } from './chips-item';
|
package/chips/index.js
CHANGED
|
@@ -1,21 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Chips = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const chips_module_scss_1 = __importDefault(require("./chips.module.scss"));
|
|
12
|
-
const cx = bind_1.default.bind(chips_module_scss_1.default);
|
|
13
|
-
/**
|
|
14
|
-
* Список "чипсов".
|
|
15
|
-
* @param props Свойства.
|
|
16
|
-
* @return Элемент.
|
|
17
|
-
*/
|
|
18
|
-
const Chips = ({ children, className, 'data-testid': testId = 'chips', ...restProps }) => ((0, jsx_runtime_1.jsx)("div", { ...restProps, className: cx('list', className), "data-testid": testId, children: react_1.Children.toArray(children).filter(c => (0, react_1.isValidElement)(c) && c.type === item_1.ChipsItem) }));
|
|
19
|
-
exports.Chips = Chips;
|
|
20
|
-
exports.Chips.Item = item_1.ChipsItem;
|
|
3
|
+
exports.ChipsItem = exports.Chips = void 0;
|
|
4
|
+
var chips_1 = require("./chips");
|
|
5
|
+
Object.defineProperty(exports, "Chips", { enumerable: true, get: function () { return chips_1.Chips; } });
|
|
6
|
+
var chips_item_1 = require("./chips-item");
|
|
7
|
+
Object.defineProperty(exports, "ChipsItem", { enumerable: true, get: function () { return chips_item_1.ChipsItem; } });
|
|
21
8
|
//# sourceMappingURL=index.js.map
|
package/chips/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chips/index.
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chips/index.ts"],"names":[],"mappings":";;;AAAA,iCAA4C;AAAnC,8FAAA,KAAK,OAAA;AACd,2CAAyD;AAAhD,uGAAA,SAAS,OAAA"}
|
package/colors/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
/** Цвета дизайн-системы. */
|
|
2
|
+
export declare const COLOR: {
|
|
2
3
|
readonly 'basic-blue': "#1f84db";
|
|
3
4
|
readonly 'basic-gray87': "#212121";
|
|
4
5
|
readonly 'basic-gray76': "#3a3a3b";
|
|
@@ -14,6 +15,7 @@ declare const collection: {
|
|
|
14
15
|
readonly 'additional-deep-red': "#d50000";
|
|
15
16
|
readonly 'additional-red': "#fb3a2f";
|
|
16
17
|
readonly 'additional-light-red': "#feebea";
|
|
18
|
+
readonly 'additional-dark-teal': "#089176";
|
|
17
19
|
readonly 'additional-teal': "#09ab8b";
|
|
18
20
|
readonly 'additional-green': "#00c853";
|
|
19
21
|
readonly 'additional-light-green': "#64dd17";
|
|
@@ -35,7 +37,7 @@ declare const collection: {
|
|
|
35
37
|
readonly 'additional-blue-gray': "#607d8b";
|
|
36
38
|
readonly 'additional-deep-blue': "#00599d";
|
|
37
39
|
readonly 'additional-dark-blue': "#002b41";
|
|
40
|
+
readonly 'additional-unlit-blue': "#1b75c2";
|
|
38
41
|
};
|
|
39
|
-
export type Token = keyof typeof
|
|
40
|
-
export declare const COLORS: Map<"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>;
|
|
41
|
-
export {};
|
|
42
|
+
export type Token = keyof typeof COLOR;
|
|
43
|
+
export declare const COLORS: Map<"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-dark-teal" | "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" | "additional-unlit-blue", string>;
|
package/colors/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// GENERATED FILE - DO NOT CHANGE IT MANUALLY
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.COLORS = void 0;
|
|
5
|
-
|
|
4
|
+
exports.COLORS = exports.COLOR = void 0;
|
|
5
|
+
/** Цвета дизайн-системы. */
|
|
6
|
+
exports.COLOR = {
|
|
6
7
|
// basic
|
|
7
8
|
'basic-blue': '#1f84db',
|
|
8
9
|
'basic-gray87': '#212121',
|
|
@@ -20,6 +21,7 @@ const collection = {
|
|
|
20
21
|
'additional-deep-red': '#d50000',
|
|
21
22
|
'additional-red': '#fb3a2f',
|
|
22
23
|
'additional-light-red': '#feebea',
|
|
24
|
+
'additional-dark-teal': '#089176',
|
|
23
25
|
'additional-teal': '#09ab8b',
|
|
24
26
|
'additional-green': '#00c853',
|
|
25
27
|
'additional-light-green': '#64dd17',
|
|
@@ -41,6 +43,7 @@ const collection = {
|
|
|
41
43
|
'additional-blue-gray': '#607d8b',
|
|
42
44
|
'additional-deep-blue': '#00599d',
|
|
43
45
|
'additional-dark-blue': '#002b41',
|
|
46
|
+
'additional-unlit-blue': '#1b75c2',
|
|
44
47
|
};
|
|
45
|
-
exports.COLORS = new Map(Object.entries(
|
|
48
|
+
exports.COLORS = new Map(Object.entries(exports.COLOR));
|
|
46
49
|
//# sourceMappingURL=index.js.map
|
package/colors/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/colors/index.ts"],"names":[],"mappings":";AAAA,6CAA6C;;;AAE7C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/colors/index.ts"],"names":[],"mappings":";AAAA,6CAA6C;;;AAE7C,4BAA4B;AACf,QAAA,KAAK,GAAG;IACnB,QAAQ;IACR,YAAY,EAAE,SAAS;IACvB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,MAAM;IAErB,aAAa;IACb,qBAAqB,EAAE,SAAS;IAChC,gBAAgB,EAAE,SAAS;IAC3B,sBAAsB,EAAE,SAAS;IACjC,sBAAsB,EAAE,SAAS;IACjC,iBAAiB,EAAE,SAAS;IAC5B,kBAAkB,EAAE,SAAS;IAC7B,wBAAwB,EAAE,SAAS;IACnC,iBAAiB,EAAE,SAAS;IAC5B,wBAAwB,EAAE,SAAS;IACnC,iBAAiB,EAAE,SAAS;IAC5B,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,wBAAwB,EAAE,SAAS;IACnC,0BAA0B,EAAE,SAAS;IACrC,uBAAuB,EAAE,SAAS;IAClC,iBAAiB,EAAE,SAAS;IAC5B,gBAAgB,EAAE,SAAS;IAC3B,wBAAwB,EAAE,SAAS;IACnC,kBAAkB,EAAE,SAAS;IAC7B,mBAAmB,EAAE,SAAS;IAC9B,iBAAiB,EAAE,SAAS;IAC5B,kBAAkB,EAAE,SAAS;IAC7B,sBAAsB,EAAE,SAAS;IACjC,sBAAsB,EAAE,SAAS;IACjC,sBAAsB,EAAE,SAAS;IACjC,uBAAuB,EAAE,SAAS;CAC1B,CAAC;AAGE,QAAA,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,aAAK,CAAC,CAAuB,CAAC"}
|
package/colors.scss
CHANGED
|
@@ -18,6 +18,7 @@ $basic-white: #fff;
|
|
|
18
18
|
$additional-deep-red: #d50000;
|
|
19
19
|
$additional-red: #fb3a2f;
|
|
20
20
|
$additional-light-red: #feebea;
|
|
21
|
+
$additional-dark-teal: #089176;
|
|
21
22
|
$additional-teal: #09ab8b;
|
|
22
23
|
$additional-green: #00c853;
|
|
23
24
|
$additional-light-green: #64dd17;
|
|
@@ -39,3 +40,4 @@ $additional-brown: #795548;
|
|
|
39
40
|
$additional-blue-gray: #607d8b;
|
|
40
41
|
$additional-deep-blue: #00599d;
|
|
41
42
|
$additional-dark-blue: #002b41;
|
|
43
|
+
$additional-unlit-blue: #1b75c2;
|
package/dropdown/utils.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export declare function dropdownFloatingConfig(): Partial<UseFloatingProps>;
|
|
|
10
10
|
* @return Стили для элемента с учетом "слоя".
|
|
11
11
|
*/
|
|
12
12
|
export declare function useDropdownFloatingStyle({ strategy, x, y, refs, }: Pick<UseFloatingReturn, 'strategy' | 'x' | 'y' | 'refs'>): {
|
|
13
|
-
position: import("@floating-ui/
|
|
13
|
+
position: import("@floating-ui/utils").Strategy;
|
|
14
14
|
top: number;
|
|
15
15
|
left: number;
|
|
16
16
|
minWidth: string | undefined;
|
|
@@ -12,16 +12,12 @@
|
|
|
12
12
|
.item {
|
|
13
13
|
display: block;
|
|
14
14
|
padding: 0;
|
|
15
|
-
max-width: 100
|
|
15
|
+
max-width: calc(100% - var(--expandable-gap, 0));
|
|
16
16
|
height: var(--expandable-item-height);
|
|
17
17
|
margin: 0 (var(--expandable-gap)) var(--expandable-gap) 0;
|
|
18
18
|
&.hidden {
|
|
19
19
|
display: none;
|
|
20
20
|
}
|
|
21
|
-
&.invisible {
|
|
22
|
-
opacity: 0;
|
|
23
|
-
pointer-events: none;
|
|
24
|
-
}
|
|
25
21
|
&.opener {
|
|
26
22
|
width: var(--expandable-opener-width);
|
|
27
23
|
}
|
package/expandable/index.d.ts
CHANGED
|
@@ -1,42 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/** Расстояние между элементами группы в пикселях. */
|
|
4
|
-
gap?: number;
|
|
5
|
-
/** Высота каждого элемента группы в пикселях. */
|
|
6
|
-
itemHeight?: number;
|
|
7
|
-
/** Развернут ли список по умолчанию. */
|
|
8
|
-
defaultExpanded?: boolean;
|
|
9
|
-
/** Количество строк в свернутом состоянии группы. */
|
|
10
|
-
lineLimit?: number;
|
|
11
|
-
/** Содержимое. */
|
|
12
|
-
children?: ReactNode;
|
|
13
|
-
/** Функция, возвращающая содержимое кнопки разворачивания списка. */
|
|
14
|
-
opener?: (data: {
|
|
15
|
-
hiddenCount: number;
|
|
16
|
-
}) => ReactNode;
|
|
17
|
-
/** Сработает при разворачивании списка. */
|
|
18
|
-
onExpand?: () => void;
|
|
19
|
-
/** CSS-класс корневого элемента. */
|
|
20
|
-
className?: string;
|
|
21
|
-
/** Стили корневого элемента. */
|
|
22
|
-
style?: CSSProperties;
|
|
23
|
-
/** Нужно ли выводить список развернутым. */
|
|
24
|
-
expanded?: boolean;
|
|
25
|
-
/** Ширина открывающего элемента. */
|
|
26
|
-
openerWidth?: number;
|
|
27
|
-
}
|
|
28
|
-
export interface GroupItemProps {
|
|
29
|
-
children?: ReactNode;
|
|
30
|
-
onClick?: MouseEventHandler;
|
|
31
|
-
'data-testid'?: string;
|
|
32
|
-
}
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ExpandableGroupProps, ExpandableGroupItemProps } from './types';
|
|
33
3
|
/**
|
|
34
4
|
* Группа элементов с ограничением на число выводимых строк и возможностью показать все.
|
|
35
5
|
* @param props Свойства.
|
|
36
6
|
* @return Элемент.
|
|
37
7
|
*/
|
|
38
|
-
export declare function ExpandableGroup(
|
|
8
|
+
export declare function ExpandableGroup(props: ExpandableGroupProps): JSX.Element;
|
|
39
9
|
export declare const Expandable: {
|
|
40
10
|
readonly Group: typeof ExpandableGroup;
|
|
41
|
-
readonly Item: import("react").ForwardRefExoticComponent<
|
|
11
|
+
readonly Item: import("react").ForwardRefExoticComponent<ExpandableGroupItemProps & import("react").RefAttributes<HTMLLIElement>>;
|
|
42
12
|
};
|
package/expandable/index.js
CHANGED
|
@@ -6,56 +6,106 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.Expandable = exports.ExpandableGroup = void 0;
|
|
7
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
8
|
const react_1 = require("react");
|
|
9
|
+
const hooks_1 = require("../hooks");
|
|
9
10
|
const utils_1 = require("./utils");
|
|
10
11
|
const bind_1 = __importDefault(require("classnames/bind"));
|
|
11
12
|
const expandable_group_module_scss_1 = __importDefault(require("./expandable-group.module.scss"));
|
|
12
13
|
const cx = bind_1.default.bind(expandable_group_module_scss_1.default);
|
|
13
14
|
const ItemContext = (0, react_1.createContext)({});
|
|
15
|
+
const initialState = {
|
|
16
|
+
status: 'initial',
|
|
17
|
+
lastVisibleIndex: -1,
|
|
18
|
+
};
|
|
19
|
+
const expandedState = {
|
|
20
|
+
status: 'expanded',
|
|
21
|
+
lastVisibleIndex: -1,
|
|
22
|
+
};
|
|
14
23
|
/**
|
|
15
24
|
* Группа элементов с ограничением на число выводимых строк и возможностью показать все.
|
|
16
25
|
* @param props Свойства.
|
|
17
26
|
* @return Элемент.
|
|
18
27
|
*/
|
|
19
|
-
function ExpandableGroup(
|
|
20
|
-
const
|
|
21
|
-
|
|
28
|
+
function ExpandableGroup(props) {
|
|
29
|
+
const time = (0, react_1.useRef)(1);
|
|
30
|
+
// @todo зациклить если каким-то невероятным образом уйдет за границу number
|
|
31
|
+
time.current = time.current + 1;
|
|
32
|
+
// ВАЖНО: рендер вызванный родительским компонентом должен приводить к пересчету, поэтому передаем уникальный time
|
|
33
|
+
return (0, jsx_runtime_1.jsx)(ExpandableGroupInner, { ...props, time: time.current });
|
|
34
|
+
}
|
|
35
|
+
exports.ExpandableGroup = ExpandableGroup;
|
|
36
|
+
/**
|
|
37
|
+
* Внутренний компонент, необходимый для корректной обработки повторных render'ов.
|
|
38
|
+
* @param props Свойства.
|
|
39
|
+
* @return Элемент.
|
|
40
|
+
*/
|
|
41
|
+
function ExpandableGroupInner({ gap = 8, itemHeight = 32, lineLimit = 2, defaultExpanded = false, children, opener: renderOpener = data => (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["\u0415\u0449\u0451 ", data.hiddenCount] }), className, style, expanded: expandedProp, onExpand, openerWidth = 72, time, }) {
|
|
42
|
+
const outerRef = (0, react_1.useRef)(null);
|
|
43
|
+
const innerRef = (0, react_1.useRef)(null);
|
|
22
44
|
const openerRef = (0, react_1.useRef)(null);
|
|
23
45
|
const [mounted, setMounted] = (0, react_1.useState)(false);
|
|
24
|
-
const [
|
|
25
|
-
const items = react_1.Children.toArray(children).reduce((result, child) => {
|
|
26
|
-
if ((0, react_1.isValidElement)(child) && child.type === ExpandableItem) {
|
|
27
|
-
result.push(child);
|
|
28
|
-
}
|
|
29
|
-
return result;
|
|
30
|
-
}, []);
|
|
46
|
+
const [state, setState] = (0, react_1.useState)(() => (defaultExpanded ? expandedState : initialState));
|
|
31
47
|
(0, react_1.useEffect)(() => {
|
|
32
48
|
setMounted(true);
|
|
33
49
|
}, []);
|
|
50
|
+
// даем возможность управлять состоянием с помощью пропса "expanded"
|
|
34
51
|
(0, react_1.useEffect)(() => {
|
|
35
|
-
|
|
52
|
+
if (typeof expandedProp === 'boolean') {
|
|
53
|
+
// ВАЖНО: передаем именно копию состояний чтобы гарантированно вызвать рендер
|
|
54
|
+
setState(expandedProp ? { ...expandedState } : { ...initialState });
|
|
55
|
+
}
|
|
36
56
|
}, [expandedProp]);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
57
|
+
// если "time" обновился - это сигнал о том что надо пересчитать состояние
|
|
58
|
+
(0, react_1.useEffect)(() => {
|
|
59
|
+
// ВАЖНО: передаем именно копию состояний чтобы гарантированно вызвать рендер
|
|
60
|
+
setState(current => (current.status === 'expanded' ? current : { ...initialState }));
|
|
61
|
+
}, [time]);
|
|
62
|
+
// следим за изменением ширины чтобы запустить перерасчет
|
|
63
|
+
(0, utils_1.useObserveWidth)(outerRef, () => {
|
|
64
|
+
// ВАЖНО: передаем именно копию состояний чтобы гарантированно вызвать рендер
|
|
65
|
+
setState(current => (current.status === 'expanded' ? current : { ...initialState }));
|
|
43
66
|
});
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
67
|
+
// выполняем расчет
|
|
68
|
+
(0, hooks_1.useIsomorphicLayoutEffect)(() => {
|
|
69
|
+
if (state.status === 'initial') {
|
|
70
|
+
const outer = outerRef.current;
|
|
71
|
+
const inner = innerRef.current;
|
|
72
|
+
const opener = openerRef.current;
|
|
73
|
+
if (outer && inner && opener) {
|
|
74
|
+
const { lastVisibleIndex } = (0, utils_1.defineLastVisible)({ outer, inner, gap, opener, openerWidth });
|
|
75
|
+
setState({
|
|
76
|
+
status: lastVisibleIndex !== -1 ? 'some-hidden' : 'all-visible',
|
|
77
|
+
lastVisibleIndex,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}, [state, mounted]);
|
|
82
|
+
const rootStyle = {
|
|
83
|
+
...style,
|
|
84
|
+
maxHeight: state.status === 'expanded'
|
|
85
|
+
? undefined
|
|
86
|
+
: `${itemHeight * lineLimit + gap * (lineLimit - 1)}px`,
|
|
87
|
+
'--expandable-gap': `${gap}px`,
|
|
88
|
+
'--expandable-item-height': `${itemHeight}px`,
|
|
89
|
+
'--expandable-opener-width': `${openerWidth}px`,
|
|
90
|
+
};
|
|
91
|
+
const handleExpand = (0, react_1.useCallback)(() => {
|
|
92
|
+
setState(expandedState);
|
|
93
|
+
onExpand === null || onExpand === void 0 ? void 0 : onExpand();
|
|
94
|
+
}, [onExpand]);
|
|
95
|
+
const items = react_1.Children.toArray(children).reduce((result, child, index) => {
|
|
96
|
+
if ((0, react_1.isValidElement)(child) && child.type === ExpandableItem) {
|
|
97
|
+
result.push((0, jsx_runtime_1.jsx)(ItemContext.Provider, { value: {
|
|
98
|
+
hidden: state.status === 'some-hidden' && index > state.lastVisibleIndex,
|
|
99
|
+
}, children: child }, child.key));
|
|
100
|
+
}
|
|
101
|
+
return result;
|
|
102
|
+
}, []);
|
|
103
|
+
// ВАЖНО: root нужен для того чтобы формировать ограничение по высоте
|
|
104
|
+
return ((0, jsx_runtime_1.jsx)("div", { ref: outerRef, className: cx('root', className), style: rootStyle, children: (0, jsx_runtime_1.jsxs)("ul", { ref: innerRef, className: cx('inner'), children: [items, mounted && state.status !== 'expanded' && ((0, jsx_runtime_1.jsx)(ItemContext.Provider, { value: { hidden: state.status !== 'some-hidden' }, children: (0, jsx_runtime_1.jsx)(ExpandableItem, { ref: openerRef, onClick: handleExpand, "data-testid": 'expandable:opener', children: renderOpener({ hiddenCount: items.length - state.lastVisibleIndex - 1 }) }) }))] }) }));
|
|
54
105
|
}
|
|
55
|
-
exports.ExpandableGroup = ExpandableGroup;
|
|
56
106
|
const ExpandableItem = (0, react_1.forwardRef)(({ children, onClick, 'data-testid': testId = 'expandable:item' }, ref) => {
|
|
57
|
-
const
|
|
58
|
-
return ((0, jsx_runtime_1.jsx)("li", { ref: ref, className: cx('item',
|
|
107
|
+
const { hidden } = (0, react_1.useContext)(ItemContext);
|
|
108
|
+
return ((0, jsx_runtime_1.jsx)("li", { ref: ref, className: cx('item', { hidden }), "data-testid": testId, onClick: onClick, children: children }));
|
|
59
109
|
});
|
|
60
110
|
exports.Expandable = {
|
|
61
111
|
Group: ExpandableGroup,
|
package/expandable/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/expandable/index.tsx"],"names":[],"mappings":";;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/expandable/index.tsx"],"names":[],"mappings":"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"}
|