@snack-uikit/counter 0.6.4 → 0.6.5-preview-d96c83e8.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.
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
4
+ var t = {};
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
8
+ }
9
+ return t;
10
+ };
11
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
12
+ return mod && mod.__esModule ? mod : {
13
+ "default": mod
14
+ };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", {
17
+ value: true
18
+ });
19
+ exports.Counter = Counter;
20
+ const jsx_runtime_1 = require("react/jsx-runtime");
21
+ const classnames_1 = __importDefault(require("classnames"));
22
+ const utils_1 = require("@snack-uikit/utils");
23
+ const constants_1 = require("./constants");
24
+ const styles_module_scss_1 = __importDefault({});
25
+ const utils_2 = require("./utils");
26
+ /** Компонент счетчик */
27
+ function Counter(_a) {
28
+ var {
29
+ value,
30
+ appearance = constants_1.APPEARANCE.Primary,
31
+ variant = constants_1.VARIANT.Count,
32
+ size = constants_1.SIZE.S,
33
+ plusLimit = constants_1.DEFAULT_PLUS_LIMIT,
34
+ color = constants_1.COLOR.Accent,
35
+ className
36
+ } = _a,
37
+ rest = __rest(_a, ["value", "appearance", "variant", "size", "plusLimit", "color", "className"]);
38
+ const formattedValue = (0, utils_2.formatValue)({
39
+ value,
40
+ variant,
41
+ plusLimit
42
+ });
43
+ return (0, jsx_runtime_1.jsx)("div", Object.assign({
44
+ className: (0, classnames_1.default)(styles_module_scss_1.default.counter, className)
45
+ }, (0, utils_1.extractSupportProps)(rest), {
46
+ "data-size": size,
47
+ "data-variant": variant,
48
+ "data-appearance": appearance,
49
+ "data-color": color,
50
+ children: formattedValue
51
+ }));
52
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DEFAULT_KEY_POSTFIX = exports.DEFAULT_KEY_LIMIT = exports.DEFAULT_PLUS_LIMIT = exports.COLOR = exports.SIZE = exports.VARIANT = exports.APPEARANCE = void 0;
7
+ exports.APPEARANCE = {
8
+ Primary: 'primary',
9
+ Neutral: 'neutral',
10
+ Red: 'red'
11
+ };
12
+ exports.VARIANT = {
13
+ Count: 'count',
14
+ CountPlus: 'count-plus',
15
+ CountK: 'count-k'
16
+ };
17
+ exports.SIZE = {
18
+ S: 's',
19
+ M: 'm'
20
+ };
21
+ exports.COLOR = {
22
+ Accent: 'accent',
23
+ Decor: 'decor'
24
+ };
25
+ exports.DEFAULT_PLUS_LIMIT = 10;
26
+ exports.DEFAULT_KEY_LIMIT = 1000;
27
+ exports.DEFAULT_KEY_POSTFIX = 'K';
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = {
8
+ enumerable: true,
9
+ get: function () {
10
+ return m[k];
11
+ }
12
+ };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ } : function (o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ });
19
+ var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", {
23
+ value: true
24
+ });
25
+ __exportStar(require("./Counter"), exports);
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
4
+ return mod && mod.__esModule ? mod : {
5
+ "default": mod
6
+ };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ exports.formatValue = formatValue;
12
+ const jsx_runtime_1 = require("react/jsx-runtime");
13
+ const constants_1 = require("./constants");
14
+ const styles_module_scss_1 = __importDefault({});
15
+ function formatValue(_ref) {
16
+ let {
17
+ value,
18
+ variant,
19
+ plusLimit
20
+ } = _ref;
21
+ if (variant === constants_1.VARIANT.Count) {
22
+ return value;
23
+ }
24
+ if (variant === constants_1.VARIANT.CountPlus) {
25
+ return value < plusLimit ? value : (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, {
26
+ children: [plusLimit - 1, (0, jsx_runtime_1.jsx)("span", {
27
+ className: styles_module_scss_1.default.plus,
28
+ children: "+"
29
+ })]
30
+ });
31
+ }
32
+ if (variant === constants_1.VARIANT.CountK) {
33
+ return value < constants_1.DEFAULT_KEY_LIMIT ? value : (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, {
34
+ children: [Math.round(value / constants_1.DEFAULT_KEY_LIMIT), (0, jsx_runtime_1.jsx)("span", {
35
+ className: styles_module_scss_1.default.key,
36
+ children: constants_1.DEFAULT_KEY_POSTFIX
37
+ })]
38
+ });
39
+ }
40
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = {
8
+ enumerable: true,
9
+ get: function () {
10
+ return m[k];
11
+ }
12
+ };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ } : function (o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ });
19
+ var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", {
23
+ value: true
24
+ });
25
+ __exportStar(require("./components"), exports);
@@ -0,0 +1,20 @@
1
+ import { WithSupportProps } from '@snack-uikit/utils';
2
+ import { Appearance, Color, Size, Variant } from './types';
3
+ export type CounterProps = WithSupportProps<{
4
+ /** Значение */
5
+ value: number;
6
+ /** Внешний вид */
7
+ appearance?: Appearance;
8
+ /** Вариант */
9
+ variant?: Variant;
10
+ /** Размер */
11
+ size?: Size;
12
+ /** Порог сокращения значения в формат v+. Например `1500` -> `999+` для 1000 */
13
+ plusLimit?: number;
14
+ /** CSS-класс */
15
+ className?: string;
16
+ /** Семантический цвет */
17
+ color?: Color;
18
+ }>;
19
+ /** Компонент счетчик */
20
+ export declare function Counter({ value, appearance, variant, size, plusLimit, color, className, ...rest }: CounterProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,21 @@
1
+ export declare const APPEARANCE: {
2
+ readonly Primary: "primary";
3
+ readonly Neutral: "neutral";
4
+ readonly Red: "red";
5
+ };
6
+ export declare const VARIANT: {
7
+ readonly Count: "count";
8
+ readonly CountPlus: "count-plus";
9
+ readonly CountK: "count-k";
10
+ };
11
+ export declare const SIZE: {
12
+ readonly S: "s";
13
+ readonly M: "m";
14
+ };
15
+ export declare const COLOR: {
16
+ readonly Accent: "accent";
17
+ readonly Decor: "decor";
18
+ };
19
+ export declare const DEFAULT_PLUS_LIMIT = 10;
20
+ export declare const DEFAULT_KEY_LIMIT = 1000;
21
+ export declare const DEFAULT_KEY_POSTFIX = "K";
@@ -0,0 +1 @@
1
+ export * from './Counter';
@@ -0,0 +1,6 @@
1
+ import { ValueOf } from '@snack-uikit/utils';
2
+ import { APPEARANCE, COLOR, SIZE, VARIANT } from './constants';
3
+ export type Appearance = ValueOf<typeof APPEARANCE>;
4
+ export type Size = ValueOf<typeof SIZE>;
5
+ export type Variant = ValueOf<typeof VARIANT>;
6
+ export type Color = ValueOf<typeof COLOR>;
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ import { Variant } from './types';
3
+ export declare function formatValue({ value, variant, plusLimit, }: {
4
+ value: number;
5
+ variant: Variant;
6
+ plusLimit: number;
7
+ }): ReactNode;
@@ -0,0 +1 @@
1
+ export * from './components';
package/package.json CHANGED
@@ -4,15 +4,16 @@
4
4
  "access": "public"
5
5
  },
6
6
  "title": "Counter",
7
- "version": "0.6.4",
7
+ "version": "0.6.5-preview-d96c83e8.0",
8
8
  "sideEffects": [
9
9
  "*.css",
10
10
  "*.woff",
11
11
  "*.woff2"
12
12
  ],
13
13
  "description": "Компонент для отображения количесвта уведомлений (доступен в 3 вариантах: 9, 9+, 9K)",
14
- "main": "./dist/index.js",
15
- "module": "./dist/index.js",
14
+ "types": "./dist/esm/index.d.ts",
15
+ "main": "./dist/cjs/index.js",
16
+ "module": "./dist/esm/index.js",
16
17
  "homepage": "https://github.com/cloud-ru-tech/snack-uikit/tree/master/packages/counter",
17
18
  "repository": {
18
19
  "type": "git",
@@ -24,7 +25,8 @@
24
25
  "Anna Kozlova <apkozlova@cloud.ru>"
25
26
  ],
26
27
  "files": [
27
- "dist",
28
+ "dist/cjs",
29
+ "dist/esm",
28
30
  "src",
29
31
  "./CHANGELOG.md",
30
32
  "./LICENSE"
@@ -32,8 +34,8 @@
32
34
  "license": "Apache-2.0",
33
35
  "scripts": {},
34
36
  "dependencies": {
35
- "@snack-uikit/utils": "3.4.0",
37
+ "@snack-uikit/utils": "3.4.1-preview-d96c83e8.0",
36
38
  "classnames": "2.3.2"
37
39
  },
38
- "gitHead": "f9212fe04b0dbba9bedea1bb3a034ab612287841"
40
+ "gitHead": "7ad2685e79ccef7528ade40fe4e2a5d4e609a22f"
39
41
  }
@@ -1,100 +0,0 @@
1
- .counter{
2
- display:inline-flex;
3
- flex-shrink:0;
4
- align-items:center;
5
- justify-content:center;
6
- box-sizing:border-box;
7
- width:-moz-max-content;
8
- width:max-content;
9
- border:0 solid transparent;
10
- }
11
- .counter[data-color=accent][data-appearance=primary]{
12
- color:var(--sys-primary-on-accent, #fdfbff);
13
- background-color:var(--sys-primary-accent-default, #794ed3);
14
- border-color:var(--sys-neutral-background1-level, #fdfdfd);
15
- }
16
- .counter[data-color=accent][data-appearance=neutral]{
17
- color:var(--sys-neutral-on-accent, #ffffff);
18
- background-color:var(--sys-neutral-accent-default, #787b8a);
19
- border-color:var(--sys-neutral-background1-level, #fdfdfd);
20
- }
21
- .counter[data-color=accent][data-appearance=red]{
22
- color:var(--sys-red-on-accent, #fffbf9);
23
- background-color:var(--sys-red-accent-default, #cb3f3e);
24
- border-color:var(--sys-neutral-background1-level, #fdfdfd);
25
- }
26
- .counter[data-color=decor][data-appearance=primary]{
27
- color:var(--sys-primary-text-main, #382a62);
28
- background-color:var(--sys-primary-decor-default, #ebdefd);
29
- border-color:var(--sys-neutral-background1-level, #fdfdfd);
30
- }
31
- .counter[data-color=decor][data-appearance=neutral]{
32
- color:var(--sys-neutral-text-main, #41424e);
33
- background-color:var(--sys-neutral-decor-default, #dde0ea);
34
- border-color:var(--sys-neutral-background1-level, #fdfdfd);
35
- }
36
- .counter[data-color=decor][data-appearance=red]{
37
- color:var(--sys-red-text-main, #7a2d2d);
38
- background-color:var(--sys-red-decor-default, #fdd6cd);
39
- border-color:var(--sys-neutral-background1-level, #fdfdfd);
40
- }
41
- .counter[data-size=s]{
42
- font-family:var(--sans-label-s-font-family, SB Sans Interface);
43
- font-weight:var(--sans-label-s-font-weight, Semibold);
44
- line-height:var(--sans-label-s-line-height, 14px);
45
- font-size:var(--sans-label-s-font-size, 11px);
46
- letter-spacing:var(--sans-label-s-letter-spacing, 0px);
47
- paragraph-spacing:var(--sans-label-s-paragraph-spacing, 6.05px);
48
- border-radius:var(--radius-counter-s, 8px);
49
- height:var(--size-counter-s-height, 16px);
50
- min-width:var(--size-counter-s-minimal-width, 16px);
51
- padding-right:var(--space-counter-s, 2.5px);
52
- padding-left:var(--space-counter-s, 2.5px);
53
- border-width:var(--border-width-counter-single, 1.5px);
54
- }
55
- .counter[data-size=s] .plus{
56
- font-family:var(--sans-label-l-font-family, SB Sans Interface);
57
- font-weight:var(--sans-label-l-font-weight, Semibold);
58
- line-height:var(--sans-label-l-line-height, 20px);
59
- font-size:var(--sans-label-l-font-size, 14px);
60
- letter-spacing:var(--sans-label-l-letter-spacing, 0px);
61
- paragraph-spacing:var(--sans-label-l-paragraph-spacing, 7.7px);
62
- }
63
- .counter[data-size=s] .key{
64
- font-family:var(--sans-label-s-font-family, SB Sans Interface);
65
- font-weight:var(--sans-label-s-font-weight, Semibold);
66
- line-height:var(--sans-label-s-line-height, 14px);
67
- font-size:var(--sans-label-s-font-size, 11px);
68
- letter-spacing:var(--sans-label-s-letter-spacing, 0px);
69
- paragraph-spacing:var(--sans-label-s-paragraph-spacing, 6.05px);
70
- }
71
- .counter[data-size=m]{
72
- font-family:var(--sans-label-l-font-family, SB Sans Interface);
73
- font-weight:var(--sans-label-l-font-weight, Semibold);
74
- line-height:var(--sans-label-l-line-height, 20px);
75
- font-size:var(--sans-label-l-font-size, 14px);
76
- letter-spacing:var(--sans-label-l-letter-spacing, 0px);
77
- paragraph-spacing:var(--sans-label-l-paragraph-spacing, 7.7px);
78
- border-radius:var(--radius-counter-m, 16px);
79
- height:var(--size-counter-m-height, 24px);
80
- min-width:var(--size-counter-m-minimal-width, 24px);
81
- padding-right:var(--space-counter-m, 4.5px);
82
- padding-left:var(--space-counter-m, 4.5px);
83
- border-width:var(--border-width-counter-single, 1.5px);
84
- }
85
- .counter[data-size=m] .plus{
86
- font-family:var(--sans-label-l-font-family, SB Sans Interface);
87
- font-weight:var(--sans-label-l-font-weight, Semibold);
88
- line-height:var(--sans-label-l-line-height, 20px);
89
- font-size:var(--sans-label-l-font-size, 14px);
90
- letter-spacing:var(--sans-label-l-letter-spacing, 0px);
91
- paragraph-spacing:var(--sans-label-l-paragraph-spacing, 7.7px);
92
- }
93
- .counter[data-size=m] .key{
94
- font-family:var(--sans-label-l-font-family, SB Sans Interface);
95
- font-weight:var(--sans-label-l-font-weight, Semibold);
96
- line-height:var(--sans-label-l-line-height, 20px);
97
- font-size:var(--sans-label-l-font-size, 14px);
98
- letter-spacing:var(--sans-label-l-letter-spacing, 0px);
99
- paragraph-spacing:var(--sans-label-l-paragraph-spacing, 7.7px);
100
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes