@cloud-ru/uikit-product-config-selector 1.1.4 → 1.1.6

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/CHANGELOG.md CHANGED
@@ -3,6 +3,28 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 1.1.6 (2025-11-13)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **PD-3377:** removed contributors ([121640f](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/121640f7b88b20a728a6ad2c39de8841532bb308))
12
+
13
+
14
+
15
+
16
+
17
+ ## 1.1.5 (2025-11-12)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **PD-3377:** contributors update to publish all packages ([719fd3e](https://gitverse.ru/cloud-ru-tech/uikit-product/commits/719fd3e1249e247443b125c47ea408d92c8395c3))
23
+
24
+
25
+
26
+
27
+
6
28
  ## 1.1.4 (2025-11-12)
7
29
 
8
30
  **Note:** Version bump only for package @cloud-ru/uikit-product-config-selector
@@ -0,0 +1,23 @@
1
+ import { ChangeEvent, ReactNode } from 'react';
2
+ import { WithSupportProps } from '@snack-uikit/utils';
3
+ export type ConfigSelectorProps = WithSupportProps<{
4
+ /** Лейбл */
5
+ label: string;
6
+ /** Колбек смены значения */
7
+ onChange(checked: boolean, e: ChangeEvent<HTMLInputElement>): void;
8
+ /** Отмечен ли компонент */
9
+ checked: boolean;
10
+ /** CSS-класс */
11
+ className?: string;
12
+ /** HTML tab index */
13
+ tabIndex?: number;
14
+ /** Доступна ли опция */
15
+ available?: boolean;
16
+ /** Тултип для доступной опции */
17
+ availableTip?: ReactNode;
18
+ /** Деактивирован ли компонент */
19
+ disabled?: boolean;
20
+ /** Тултип для деактивированного компонента */
21
+ disabledTip?: ReactNode;
22
+ }>;
23
+ export declare function ConfigSelector({ available, availableTip, disabledTip, label, checked, disabled, onChange, className, tabIndex, ...rest }: ConfigSelectorProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ConfigSelector = ConfigSelector;
18
+ const jsx_runtime_1 = require("react/jsx-runtime");
19
+ const classnames_1 = __importDefault(require("classnames"));
20
+ const react_1 = require("react");
21
+ const tooltip_1 = require("@snack-uikit/tooltip");
22
+ const truncate_string_1 = require("@snack-uikit/truncate-string");
23
+ const utils_1 = require("@snack-uikit/utils");
24
+ const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
25
+ function ConfigSelector(_a) {
26
+ var { available, availableTip, disabledTip, label, checked, disabled, onChange, className, tabIndex = 0 } = _a, rest = __rest(_a, ["available", "availableTip", "disabledTip", "label", "checked", "disabled", "onChange", "className", "tabIndex"]);
27
+ const tipConfig = (0, react_1.useMemo)(() => {
28
+ const isOpen = (available && !checked && availableTip) || (disabled && disabledTip);
29
+ return {
30
+ tip: disabled ? disabledTip : availableTip,
31
+ open: isOpen ? undefined : false,
32
+ hoverDelayOpen: disabled ? 100 : 400,
33
+ };
34
+ }, [available, availableTip, checked, disabled, disabledTip]);
35
+ const handleChange = e => {
36
+ if (disabled) {
37
+ return;
38
+ }
39
+ onChange === null || onChange === void 0 ? void 0 : onChange(!checked, e);
40
+ };
41
+ return ((0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, Object.assign({}, tipConfig, { disableSpanWrapper: true, children: (0, jsx_runtime_1.jsxs)("label", Object.assign({}, (0, utils_1.extractSupportProps)(rest), { "data-available": available || undefined, "data-disabled": disabled || undefined, "data-checked": checked || undefined, className: (0, classnames_1.default)(styles_module_scss_1.default.configSelector, className), children: [(0, jsx_runtime_1.jsx)("input", { type: 'checkbox', checked: checked, onChange: handleChange, disabled: disabled, tabIndex: tabIndex, className: styles_module_scss_1.default.configSelectorInput, "data-test-id": 'config-selector_input' }), (0, jsx_runtime_1.jsx)("span", { "data-available": available || undefined, "data-disabled": disabled || undefined, "data-checked": checked || undefined, className: styles_module_scss_1.default.configSelectorContent, children: (0, jsx_runtime_1.jsx)("span", { className: (0, classnames_1.default)(styles_module_scss_1.default.labelLayout, styles_module_scss_1.default.label), "data-test-id": 'config-selector_label', children: (0, jsx_runtime_1.jsx)(truncate_string_1.TruncateString, { text: label }) }) })] })) })));
42
+ }
@@ -0,0 +1 @@
1
+ export * from './ConfigSelector';
@@ -0,0 +1,17 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ConfigSelector"), exports);
@@ -0,0 +1,117 @@
1
+ .configSelectorContent{
2
+ cursor:pointer;
3
+ position:relative;
4
+ display:inline-flex;
5
+ justify-content:center;
6
+ align-items:center;
7
+ box-sizing:border-box;
8
+ width:-moz-max-content;
9
+ width:max-content;
10
+ min-width:var(--dimension-5m, 40px);
11
+ max-width:100%;
12
+ margin:0;
13
+ padding:0;
14
+ text-decoration:none;
15
+ text-transform:none;
16
+ border-style:solid;
17
+ outline:0;
18
+ outline-offset:0;
19
+ border-radius:12px;
20
+ border-width:2px;
21
+ color:var(--sys-neutral-text-support, #6d707f);
22
+ background-color:var(--sys-neutral-background1-level, #fdfdfd);
23
+ border-color:var(--sys-neutral-decor-default, #dde0ea);
24
+ }
25
+ .configSelectorContent:hover{
26
+ color:var(--sys-neutral-text-main, #41424e);
27
+ background-color:var(--sys-neutral-background1-level, #fdfdfd);
28
+ border-color:var(--sys-neutral-decor-hovered, #cfd2dc);
29
+ }
30
+ .configSelectorContent:active{
31
+ color:var(--sys-neutral-text-main, #41424e);
32
+ background-color:var(--sys-neutral-background2-level, #ffffff);
33
+ border-color:var(--sys-neutral-decor-activated, #b6bac7);
34
+ }
35
+ .configSelectorContent[data-disabled]{
36
+ cursor:not-allowed;
37
+ color:var(--sys-neutral-text-light, #8b8e9b);
38
+ background-color:var(--sys-neutral-background, #eeeff3);
39
+ border-color:transparent;
40
+ }
41
+ .configSelectorContent[data-available]{
42
+ border-color:var(--sys-primary-accent-default, #389f74);
43
+ }
44
+ .configSelectorContent[data-available]:hover{
45
+ border-color:var(--sys-primary-accent-hovered, #37946e);
46
+ }
47
+ .configSelectorContent[data-available]:active{
48
+ border-color:var(--sys-primary-accent-pressed, #358561);
49
+ }
50
+ .configSelectorContent[data-checked]{
51
+ color:var(--sys-neutral-background2-level, #ffffff);
52
+ background-color:var(--sys-primary-accent-default, #389f74);
53
+ border-color:transparent;
54
+ }
55
+ .configSelectorContent[data-checked]:hover{
56
+ background-color:var(--sys-primary-accent-hovered, #37946e);
57
+ }
58
+ .configSelectorContent[data-checked]:active{
59
+ background-color:var(--sys-primary-accent-pressed, #358561);
60
+ }
61
+
62
+ .configSelectorInput{
63
+ pointer-events:none;
64
+ position:absolute;
65
+ top:0;
66
+ left:0;
67
+ width:0;
68
+ height:0;
69
+ opacity:0;
70
+ }
71
+ .configSelectorInput:focus-visible + .configSelectorContent{
72
+ outline-width:var(--border-state-focus-s-border-width, 2px);
73
+ outline-style:var(--border-state-focus-s-border-style, solid);
74
+ outline-color:var(--border-state-focus-s-border-color, );
75
+ outline-color:var(--sys-available-complementary, #1c1c24);
76
+ outline-offset:var(--spacing-state-focus-offset, 2px);
77
+ color:var(--sys-neutral-text-main, #41424e);
78
+ background-color:var(--sys-neutral-background2-level, #ffffff);
79
+ border-color:var(--sys-neutral-decor-hovered, #cfd2dc);
80
+ }
81
+
82
+ .configSelector{
83
+ position:relative;
84
+ min-width:0;
85
+ margin:0;
86
+ padding:0;
87
+ border:none;
88
+ outline:0;
89
+ outline-offset:0;
90
+ }
91
+ .configSelector .label{
92
+ font-family:var(--sans-label-m-font-family, SB Sans Interface);
93
+ font-weight:var(--sans-label-m-font-weight, Semibold);
94
+ line-height:var(--sans-label-m-line-height, 16px);
95
+ font-size:var(--sans-label-m-font-size, 12px);
96
+ letter-spacing:var(--sans-label-m-letter-spacing, 0px);
97
+ paragraph-spacing:var(--sans-label-m-paragraph-spacing, 6.6px);
98
+ }
99
+ .configSelector .labelLayout{
100
+ padding-left:var(--space-chips-label-layout-padding-s, 4px);
101
+ padding-right:var(--space-chips-label-layout-padding-s, 4px);
102
+ display:inline-flex;
103
+ align-items:center;
104
+ min-width:0;
105
+ }
106
+ .configSelector .configSelectorContent{
107
+ height:var(--size-chips-s, 32px);
108
+ padding-left:var(--space-chips-container-padding-s, 3px);
109
+ padding-right:var(--space-chips-container-padding-s, 3px);
110
+ }
111
+ .configSelector[data-available] .configSelectorInput:focus-visible + .configSelectorContent{
112
+ border-color:var(--sys-primary-accent-hovered, #37946e);
113
+ }
114
+ .configSelector[data-checked] .configSelectorInput:focus-visible + .configSelectorContent{
115
+ color:var(--sys-neutral-background2-level, #ffffff);
116
+ background-color:var(--sys-primary-accent-hovered, #37946e);
117
+ }
@@ -0,0 +1 @@
1
+ export * from './ConfigSelector';
@@ -0,0 +1,17 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ConfigSelector"), exports);
@@ -0,0 +1 @@
1
+ export * from './components';
@@ -0,0 +1,17 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./components"), exports);
@@ -0,0 +1,23 @@
1
+ import { ChangeEvent, ReactNode } from 'react';
2
+ import { WithSupportProps } from '@snack-uikit/utils';
3
+ export type ConfigSelectorProps = WithSupportProps<{
4
+ /** Лейбл */
5
+ label: string;
6
+ /** Колбек смены значения */
7
+ onChange(checked: boolean, e: ChangeEvent<HTMLInputElement>): void;
8
+ /** Отмечен ли компонент */
9
+ checked: boolean;
10
+ /** CSS-класс */
11
+ className?: string;
12
+ /** HTML tab index */
13
+ tabIndex?: number;
14
+ /** Доступна ли опция */
15
+ available?: boolean;
16
+ /** Тултип для доступной опции */
17
+ availableTip?: ReactNode;
18
+ /** Деактивирован ли компонент */
19
+ disabled?: boolean;
20
+ /** Тултип для деактивированного компонента */
21
+ disabledTip?: ReactNode;
22
+ }>;
23
+ export declare function ConfigSelector({ available, availableTip, disabledTip, label, checked, disabled, onChange, className, tabIndex, ...rest }: ConfigSelectorProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,36 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ 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]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import cn from 'classnames';
14
+ import { useMemo } from 'react';
15
+ import { Tooltip } from '@snack-uikit/tooltip';
16
+ import { TruncateString } from '@snack-uikit/truncate-string';
17
+ import { extractSupportProps } from '@snack-uikit/utils';
18
+ import styles from './styles.module.css';
19
+ export function ConfigSelector(_a) {
20
+ var { available, availableTip, disabledTip, label, checked, disabled, onChange, className, tabIndex = 0 } = _a, rest = __rest(_a, ["available", "availableTip", "disabledTip", "label", "checked", "disabled", "onChange", "className", "tabIndex"]);
21
+ const tipConfig = useMemo(() => {
22
+ const isOpen = (available && !checked && availableTip) || (disabled && disabledTip);
23
+ return {
24
+ tip: disabled ? disabledTip : availableTip,
25
+ open: isOpen ? undefined : false,
26
+ hoverDelayOpen: disabled ? 100 : 400,
27
+ };
28
+ }, [available, availableTip, checked, disabled, disabledTip]);
29
+ const handleChange = e => {
30
+ if (disabled) {
31
+ return;
32
+ }
33
+ onChange === null || onChange === void 0 ? void 0 : onChange(!checked, e);
34
+ };
35
+ return (_jsx(Tooltip, Object.assign({}, tipConfig, { disableSpanWrapper: true, children: _jsxs("label", Object.assign({}, extractSupportProps(rest), { "data-available": available || undefined, "data-disabled": disabled || undefined, "data-checked": checked || undefined, className: cn(styles.configSelector, className), children: [_jsx("input", { type: 'checkbox', checked: checked, onChange: handleChange, disabled: disabled, tabIndex: tabIndex, className: styles.configSelectorInput, "data-test-id": 'config-selector_input' }), _jsx("span", { "data-available": available || undefined, "data-disabled": disabled || undefined, "data-checked": checked || undefined, className: styles.configSelectorContent, children: _jsx("span", { className: cn(styles.labelLayout, styles.label), "data-test-id": 'config-selector_label', children: _jsx(TruncateString, { text: label }) }) })] })) })));
36
+ }
@@ -0,0 +1 @@
1
+ export * from './ConfigSelector';
@@ -0,0 +1 @@
1
+ export * from './ConfigSelector';
@@ -0,0 +1,117 @@
1
+ .configSelectorContent{
2
+ cursor:pointer;
3
+ position:relative;
4
+ display:inline-flex;
5
+ justify-content:center;
6
+ align-items:center;
7
+ box-sizing:border-box;
8
+ width:-moz-max-content;
9
+ width:max-content;
10
+ min-width:var(--dimension-5m, 40px);
11
+ max-width:100%;
12
+ margin:0;
13
+ padding:0;
14
+ text-decoration:none;
15
+ text-transform:none;
16
+ border-style:solid;
17
+ outline:0;
18
+ outline-offset:0;
19
+ border-radius:12px;
20
+ border-width:2px;
21
+ color:var(--sys-neutral-text-support, #6d707f);
22
+ background-color:var(--sys-neutral-background1-level, #fdfdfd);
23
+ border-color:var(--sys-neutral-decor-default, #dde0ea);
24
+ }
25
+ .configSelectorContent:hover{
26
+ color:var(--sys-neutral-text-main, #41424e);
27
+ background-color:var(--sys-neutral-background1-level, #fdfdfd);
28
+ border-color:var(--sys-neutral-decor-hovered, #cfd2dc);
29
+ }
30
+ .configSelectorContent:active{
31
+ color:var(--sys-neutral-text-main, #41424e);
32
+ background-color:var(--sys-neutral-background2-level, #ffffff);
33
+ border-color:var(--sys-neutral-decor-activated, #b6bac7);
34
+ }
35
+ .configSelectorContent[data-disabled]{
36
+ cursor:not-allowed;
37
+ color:var(--sys-neutral-text-light, #8b8e9b);
38
+ background-color:var(--sys-neutral-background, #eeeff3);
39
+ border-color:transparent;
40
+ }
41
+ .configSelectorContent[data-available]{
42
+ border-color:var(--sys-primary-accent-default, #389f74);
43
+ }
44
+ .configSelectorContent[data-available]:hover{
45
+ border-color:var(--sys-primary-accent-hovered, #37946e);
46
+ }
47
+ .configSelectorContent[data-available]:active{
48
+ border-color:var(--sys-primary-accent-pressed, #358561);
49
+ }
50
+ .configSelectorContent[data-checked]{
51
+ color:var(--sys-neutral-background2-level, #ffffff);
52
+ background-color:var(--sys-primary-accent-default, #389f74);
53
+ border-color:transparent;
54
+ }
55
+ .configSelectorContent[data-checked]:hover{
56
+ background-color:var(--sys-primary-accent-hovered, #37946e);
57
+ }
58
+ .configSelectorContent[data-checked]:active{
59
+ background-color:var(--sys-primary-accent-pressed, #358561);
60
+ }
61
+
62
+ .configSelectorInput{
63
+ pointer-events:none;
64
+ position:absolute;
65
+ top:0;
66
+ left:0;
67
+ width:0;
68
+ height:0;
69
+ opacity:0;
70
+ }
71
+ .configSelectorInput:focus-visible + .configSelectorContent{
72
+ outline-width:var(--border-state-focus-s-border-width, 2px);
73
+ outline-style:var(--border-state-focus-s-border-style, solid);
74
+ outline-color:var(--border-state-focus-s-border-color, );
75
+ outline-color:var(--sys-available-complementary, #1c1c24);
76
+ outline-offset:var(--spacing-state-focus-offset, 2px);
77
+ color:var(--sys-neutral-text-main, #41424e);
78
+ background-color:var(--sys-neutral-background2-level, #ffffff);
79
+ border-color:var(--sys-neutral-decor-hovered, #cfd2dc);
80
+ }
81
+
82
+ .configSelector{
83
+ position:relative;
84
+ min-width:0;
85
+ margin:0;
86
+ padding:0;
87
+ border:none;
88
+ outline:0;
89
+ outline-offset:0;
90
+ }
91
+ .configSelector .label{
92
+ font-family:var(--sans-label-m-font-family, SB Sans Interface);
93
+ font-weight:var(--sans-label-m-font-weight, Semibold);
94
+ line-height:var(--sans-label-m-line-height, 16px);
95
+ font-size:var(--sans-label-m-font-size, 12px);
96
+ letter-spacing:var(--sans-label-m-letter-spacing, 0px);
97
+ paragraph-spacing:var(--sans-label-m-paragraph-spacing, 6.6px);
98
+ }
99
+ .configSelector .labelLayout{
100
+ padding-left:var(--space-chips-label-layout-padding-s, 4px);
101
+ padding-right:var(--space-chips-label-layout-padding-s, 4px);
102
+ display:inline-flex;
103
+ align-items:center;
104
+ min-width:0;
105
+ }
106
+ .configSelector .configSelectorContent{
107
+ height:var(--size-chips-s, 32px);
108
+ padding-left:var(--space-chips-container-padding-s, 3px);
109
+ padding-right:var(--space-chips-container-padding-s, 3px);
110
+ }
111
+ .configSelector[data-available] .configSelectorInput:focus-visible + .configSelectorContent{
112
+ border-color:var(--sys-primary-accent-hovered, #37946e);
113
+ }
114
+ .configSelector[data-checked] .configSelectorInput:focus-visible + .configSelectorContent{
115
+ color:var(--sys-neutral-background2-level, #ffffff);
116
+ background-color:var(--sys-primary-accent-hovered, #37946e);
117
+ }
@@ -0,0 +1 @@
1
+ export * from './ConfigSelector';
@@ -0,0 +1 @@
1
+ export * from './ConfigSelector';
@@ -0,0 +1 @@
1
+ export * from './components';
@@ -0,0 +1 @@
1
+ export * from './components';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloud-ru/uikit-product-config-selector",
3
3
  "title": "Config Selector",
4
- "version": "1.1.4",
4
+ "version": "1.1.6",
5
5
  "sideEffects": [
6
6
  "*.css",
7
7
  "*.woff",
@@ -41,5 +41,5 @@
41
41
  "@snack-uikit/utils": "3.9.0",
42
42
  "classnames": "2.5.1"
43
43
  },
44
- "gitHead": "e8bd79bc92b26a8f52611972eec98a867536ccd3"
44
+ "gitHead": "ce69097516055b330a0b05da5e29ac5b66e56284"
45
45
  }