@alfalab/core-components-tab-bar 3.0.0 → 3.1.0-snapshot-92b8690
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/components/tab/index.css +11 -11
- package/components/tab/index.module.css.js +1 -1
- package/components/tab/index.module.css.js.map +1 -1
- package/cssm/components/tab/index.module.css +4 -4
- package/dynamic-mixins/Component.d.ts +5 -0
- package/dynamic-mixins/Component.js +41 -0
- package/dynamic-mixins/Component.js.map +1 -0
- package/dynamic-mixins/components/tab/Component.d.ts +3 -0
- package/dynamic-mixins/components/tab/Component.js +42 -0
- package/dynamic-mixins/components/tab/Component.js.map +1 -0
- package/dynamic-mixins/components/tab/index.css +66 -0
- package/dynamic-mixins/components/tab/index.d.ts +1 -0
- package/dynamic-mixins/components/tab/index.js +10 -0
- package/dynamic-mixins/components/tab/index.js.map +1 -0
- package/dynamic-mixins/components/tab/index.module.css.js +8 -0
- package/dynamic-mixins/components/tab/index.module.css.js.map +1 -0
- package/dynamic-mixins/consts.d.ts +8 -0
- package/dynamic-mixins/consts.js +16 -0
- package/dynamic-mixins/consts.js.map +1 -0
- package/dynamic-mixins/index.css +26 -0
- package/dynamic-mixins/index.d.ts +2 -0
- package/dynamic-mixins/index.js +10 -0
- package/dynamic-mixins/index.js.map +1 -0
- package/dynamic-mixins/index.module.css.js +8 -0
- package/dynamic-mixins/index.module.css.js.map +1 -0
- package/dynamic-mixins/shared/index.d.ts +1 -0
- package/dynamic-mixins/shared/index.js +10 -0
- package/dynamic-mixins/shared/index.js.map +1 -0
- package/dynamic-mixins/types.d.ts +107 -0
- package/dynamic-mixins/types.js +3 -0
- package/dynamic-mixins/types.js.map +1 -0
- package/dynamic-mixins/utils.d.ts +4 -0
- package/dynamic-mixins/utils.js +15 -0
- package/dynamic-mixins/utils.js.map +1 -0
- package/esm/components/tab/index.css +11 -11
- package/esm/components/tab/index.module.css.js +1 -1
- package/esm/components/tab/index.module.css.js.map +1 -1
- package/esm/index.css +5 -5
- package/esm/index.module.css.js +1 -1
- package/esm/index.module.css.js.map +1 -1
- package/index.css +5 -5
- package/index.module.css.js +1 -1
- package/index.module.css.js.map +1 -1
- package/modern/components/tab/index.css +11 -11
- package/modern/components/tab/index.module.css.js +1 -1
- package/modern/components/tab/index.module.css.js.map +1 -1
- package/modern/index.css +5 -5
- package/modern/index.module.css.js +1 -1
- package/modern/index.module.css.js.map +1 -1
- package/moderncssm/components/tab/index.module.css +4 -6
- package/moderncssm/index.module.css +6 -0
- package/package.json +6 -6
- package/src/components/tab/index.module.css +1 -1
- package/src/index.module.css +1 -1
package/components/tab/index.css
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
--gap-0: 0px;
|
|
10
10
|
--gap-4: var(--gap-2xs);
|
|
11
11
|
--gap-8: var(--gap-xs);
|
|
12
|
-
} .tab-
|
|
12
|
+
} .tab-bar__component_tbqmm {
|
|
13
13
|
-webkit-tap-highlight-color: transparent;
|
|
14
14
|
box-sizing: border-box;
|
|
15
15
|
background-color: transparent;
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
box-shadow: none;
|
|
20
20
|
border-radius: 0;
|
|
21
21
|
-webkit-user-select: none;
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
-moz-user-select: none;
|
|
23
|
+
user-select: none;
|
|
24
24
|
vertical-align: middle;
|
|
25
25
|
-webkit-appearance: none;
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
-moz-appearance: none;
|
|
27
|
+
appearance: none;
|
|
28
28
|
text-decoration: none;
|
|
29
29
|
min-width: 0;
|
|
30
30
|
cursor: pointer;
|
|
@@ -36,17 +36,17 @@
|
|
|
36
36
|
align-items: center;
|
|
37
37
|
padding: var(--gap-8) var(--gap-0);
|
|
38
38
|
color: var(--color-light-neutral-translucent-700);
|
|
39
|
-
} .tab-
|
|
39
|
+
} .tab-bar__primary_tbqmm {
|
|
40
40
|
color: var(--color-light-accent-primary);
|
|
41
|
-
} .tab-
|
|
41
|
+
} .tab-bar__secondary_tbqmm {
|
|
42
42
|
color: var(--color-light-accent-secondary);
|
|
43
|
-
} .tab-
|
|
43
|
+
} .tab-bar__icon_tbqmm {
|
|
44
44
|
display: flex;
|
|
45
45
|
align-items: center;
|
|
46
46
|
justify-content: center;
|
|
47
47
|
flex-grow: 1;
|
|
48
48
|
width: 100%;
|
|
49
|
-
} .tab-
|
|
49
|
+
} .tab-bar__label_tbqmm {
|
|
50
50
|
-webkit-line-clamp: 1;
|
|
51
51
|
display: -webkit-box;
|
|
52
52
|
-webkit-box-orient: vertical;
|
|
@@ -55,9 +55,9 @@
|
|
|
55
55
|
flex-shrink: 0;
|
|
56
56
|
|
|
57
57
|
color: var(--color-light-text-secondary);
|
|
58
|
-
} .tab-
|
|
58
|
+
} .tab-bar__labelSelected_tbqmm {
|
|
59
59
|
color: inherit;
|
|
60
|
-
} .tab-
|
|
60
|
+
} .tab-bar__indicator_tbqmm {
|
|
61
61
|
position: absolute;
|
|
62
62
|
top: 3px;
|
|
63
63
|
left: calc(50% + var(--gap-4));
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require('./index.css');
|
|
4
4
|
|
|
5
|
-
var styles = {"component":"tab-
|
|
5
|
+
var styles = {"component":"tab-bar__component_tbqmm","primary":"tab-bar__primary_tbqmm","secondary":"tab-bar__secondary_tbqmm","icon":"tab-bar__icon_tbqmm","label":"tab-bar__label_tbqmm","labelSelected":"tab-bar__labelSelected_tbqmm","indicator":"tab-bar__indicator_tbqmm"};
|
|
6
6
|
|
|
7
7
|
module.exports = styles;
|
|
8
8
|
//# sourceMappingURL=index.module.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.css.js","sources":["../../src/components/tab/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n.component {\n @mixin button-reset;\n\n position: relative;\n display: inline-flex;\n flex-direction: column;\n flex: 1 0 0;\n align-items: center;\n padding: var(--gap-8) var(--gap-0);\n color: var(--color-light-neutral-translucent-700);\n}\n\n.primary {\n color: var(--color-light-accent-primary);\n}\n\n.secondary {\n color: var(--color-light-accent-secondary);\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n width: 100%;\n}\n\n.label {\n @mixin row_limit 1;\n word-break: break-all;\n flex-shrink: 0;\n\n color: var(--color-light-text-secondary);\n}\n\n.labelSelected {\n color: inherit;\n}\n\n.indicator {\n position: absolute;\n top: 3px;\n left: calc(50% + var(--gap-4));\n height: 16px;\n min-width: 16px;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,SAAS,CAAC,wBAAwB,CAAC,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,8BAA8B,CAAC,WAAW,CAAC,0BAA0B,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["../../src/components/tab/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n\n.component {\n @mixin button-reset;\n\n position: relative;\n display: inline-flex;\n flex-direction: column;\n flex: 1 0 0;\n align-items: center;\n padding: var(--gap-8) var(--gap-0);\n color: var(--color-light-neutral-translucent-700);\n}\n\n.primary {\n color: var(--color-light-accent-primary);\n}\n\n.secondary {\n color: var(--color-light-accent-secondary);\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n width: 100%;\n}\n\n.label {\n @mixin row_limit 1;\n word-break: break-all;\n flex-shrink: 0;\n\n color: var(--color-light-text-secondary);\n}\n\n.labelSelected {\n color: inherit;\n}\n\n.indicator {\n position: absolute;\n top: 3px;\n left: calc(50% + var(--gap-4));\n height: 16px;\n min-width: 16px;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,SAAS,CAAC,wBAAwB,CAAC,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,8BAA8B,CAAC,WAAW,CAAC,0BAA0B,CAAC;;;;"}
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
box-shadow: none;
|
|
20
20
|
border-radius: 0;
|
|
21
21
|
-webkit-user-select: none;
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
-moz-user-select: none;
|
|
23
|
+
user-select: none;
|
|
24
24
|
vertical-align: middle;
|
|
25
25
|
-webkit-appearance: none;
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
-moz-appearance: none;
|
|
27
|
+
appearance: none;
|
|
28
28
|
text-decoration: none;
|
|
29
29
|
min-width: 0;
|
|
30
30
|
cursor: pointer;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TabBarProps } from './types';
|
|
3
|
+
export declare const TabBar: React.ForwardRefExoticComponent<TabBarProps & React.RefAttributes<HTMLDivElement>> & {
|
|
4
|
+
Tab: React.ForwardRefExoticComponent<import("./types").TabProps & React.RefAttributes<HTMLElement>>;
|
|
5
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var tslib = require('tslib');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var cn = require('classnames');
|
|
8
|
+
var dynamicMixins = require('@alfalab/core-components-shared/dynamic-mixins');
|
|
9
|
+
var Component = require('./components/tab/Component.js');
|
|
10
|
+
var index_module = require('./index.module.css.js');
|
|
11
|
+
|
|
12
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
13
|
+
|
|
14
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
15
|
+
var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
|
|
16
|
+
|
|
17
|
+
var TabBarComponent = React.forwardRef(function (_a, ref) {
|
|
18
|
+
var _b;
|
|
19
|
+
var children = _a.children, className = _a.className, selectedId = _a.selectedId, border = _a.border, dataTestId = _a.dataTestId, tabClassNames = _a.tabClassNames, onChange = _a.onChange, _c = _a.accentColor, accentColor = _c === void 0 ? 'primary' : _c, _d = _a.bgColor, bgColor = _d === void 0 ? 'modal-bg-primary' : _d, restProps = tslib.__rest(_a, ["children", "className", "selectedId", "border", "dataTestId", "tabClassNames", "onChange", "accentColor", "bgColor"]);
|
|
20
|
+
if (React.Children.count(children) > 5) {
|
|
21
|
+
// eslint-disable-next-line no-console
|
|
22
|
+
console.error('Компонент TabBar не может содержать больше 5 табов');
|
|
23
|
+
}
|
|
24
|
+
return (React__default.default.createElement("nav", tslib.__assign({ "data-test-id": dataTestId }, restProps, { ref: ref, className: cn__default.default(index_module.component, index_module[bgColor], className, (_b = {},
|
|
25
|
+
_b[index_module.border] = border,
|
|
26
|
+
_b)) }), React.Children.map(children, function (tab) {
|
|
27
|
+
return React.cloneElement(tab, {
|
|
28
|
+
bgColor: bgColor,
|
|
29
|
+
accentColor: accentColor,
|
|
30
|
+
selected: tab.props.id === selectedId,
|
|
31
|
+
onChange: onChange,
|
|
32
|
+
tabClassNames: tabClassNames,
|
|
33
|
+
dataTestId: dynamicMixins.getDataTestId(dataTestId, 'tab'),
|
|
34
|
+
});
|
|
35
|
+
})));
|
|
36
|
+
});
|
|
37
|
+
TabBarComponent.displayName = 'TabBarComponent';
|
|
38
|
+
var TabBar = Object.assign(TabBarComponent, { Tab: Component.Tab });
|
|
39
|
+
|
|
40
|
+
exports.TabBar = TabBar;
|
|
41
|
+
//# sourceMappingURL=Component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { Children, cloneElement, forwardRef } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { Tab } from './components/tab';\nimport { TabBarProps } from './types';\n\nimport styles from './index.module.css';\n\nconst TabBarComponent = forwardRef<HTMLDivElement, TabBarProps>(\n (\n {\n children,\n className,\n selectedId,\n border,\n dataTestId,\n tabClassNames,\n onChange,\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n },\n ref,\n ) => {\n if (Children.count(children) > 5) {\n // eslint-disable-next-line no-console\n console.error('Компонент TabBar не может содержать больше 5 табов');\n }\n\n return (\n <nav\n data-test-id={dataTestId}\n {...restProps}\n ref={ref}\n className={cn(styles.component, styles[bgColor], className, {\n [styles.border]: border,\n })}\n >\n {Children.map(children, (tab) =>\n cloneElement(tab, {\n bgColor,\n accentColor,\n selected: tab.props.id === selectedId,\n onChange,\n tabClassNames,\n dataTestId: getDataTestId(dataTestId, 'tab'),\n }),\n )}\n </nav>\n );\n },\n);\n\nTabBarComponent.displayName = 'TabBarComponent';\n\nexport const TabBar = Object.assign(TabBarComponent, { Tab });\n"],"names":["forwardRef","__rest","Children","React","cn","styles","cloneElement","getDataTestId","Tab"],"mappings":";;;;;;;;;;;;;;;;AAUA,IAAM,eAAe,GAAGA,gBAAU,CAC9B,UACI,EAWC,EACD,GAAG,EAAA;;AAXC,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,UAAU,GAAA,EAAA,CAAA,UAAA,EACV,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,aAAa,mBAAA,EACb,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,mBAAuB,EAAvB,WAAW,GAAG,EAAA,KAAA,MAAA,GAAA,SAAS,KAAA,EACvB,EAAA,GAAA,EAAA,CAAA,OAA4B,EAA5B,OAAO,mBAAG,kBAAkB,GAAA,EAAA,EACzB,SAAS,GAAAC,YAAA,CAAA,EAAA,EAVhB,sHAWC,CADe;IAIhB,IAAIC,cAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;;AAE9B,QAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC;AACtE;IAED,QACIC,6EACkB,UAAU,EAAA,EACpB,SAAS,EACb,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,mBAAE,CAACC,YAAM,CAAC,SAAS,EAAEA,YAAM,CAAC,OAAO,CAAC,EAAE,SAAS,GAAA,EAAA,GAAA,EAAA;AACtD,YAAA,EAAA,CAACA,YAAM,CAAC,MAAM,CAAA,GAAG,MAAM;AACzB,YAAA,EAAA,EAAA,EAAA,CAAA,EAEDH,cAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAA;QACxB,OAAAI,kBAAY,CAAC,GAAG,EAAE;AACd,YAAA,OAAO,EAAA,OAAA;AACP,YAAA,WAAW,EAAA,WAAA;AACX,YAAA,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,UAAU;AACrC,YAAA,QAAQ,EAAA,QAAA;AACR,YAAA,aAAa,EAAA,aAAA;AACb,YAAA,UAAU,EAAEC,2BAAa,CAAC,UAAU,EAAE,KAAK,CAAC;SAC/C,CAAC;KAAA,CACL,CACC;AAEd,CAAC,CACJ;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAExC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,GAAG,EAAAC,aAAA,EAAE;;;;"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var tslib = require('tslib');
|
|
6
|
+
var React = require('react');
|
|
7
|
+
var cn = require('classnames');
|
|
8
|
+
var dynamicMixins$1 = require('@alfalab/core-components-indicator/dynamic-mixins');
|
|
9
|
+
var dynamicMixins = require('@alfalab/core-components-typography/dynamic-mixins');
|
|
10
|
+
var consts = require('../../consts.js');
|
|
11
|
+
var index_module = require('./index.module.css.js');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
14
|
+
|
|
15
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
16
|
+
var cn__default = /*#__PURE__*/_interopDefaultCompat(cn);
|
|
17
|
+
|
|
18
|
+
var TabComponent = React.forwardRef(function (_a, ref) {
|
|
19
|
+
var _b, _c;
|
|
20
|
+
var showIndicator = _a.showIndicator, indicatorProps = _a.indicatorProps, label = _a.label, icon = _a.icon, id = _a.id, selected = _a.selected, onChange = _a.onChange, onClick = _a.onClick, _d = _a.tabClassNames, tabClassNames = _d === void 0 ? {} : _d, dataTestId = _a.dataTestId, className = _a.className, labelClassName = _a.labelClassName, selectedClassName = _a.selectedClassName, iconClassName = _a.iconClassName, href = _a.href, _e = _a.Component, Component = _e === void 0 ? href ? 'a' : 'button' : _e, _f = _a.accentColor, accentColor = _f === void 0 ? 'primary' : _f, _g = _a.bgColor, bgColor = _g === void 0 ? 'modal-bg-primary' : _g, restProps = tslib.__rest(_a, ["showIndicator", "indicatorProps", "label", "icon", "id", "selected", "onChange", "onClick", "tabClassNames", "dataTestId", "className", "labelClassName", "selectedClassName", "iconClassName", "href", "Component", "accentColor", "bgColor"]);
|
|
21
|
+
var handleClick = function (event) {
|
|
22
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(id);
|
|
23
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(event);
|
|
24
|
+
};
|
|
25
|
+
var commonClassName = tabClassNames.className, commonLabelClassName = tabClassNames.labelClassName, commonSelectedClassName = tabClassNames.selectedClassName, commonIconClassName = tabClassNames.iconClassName;
|
|
26
|
+
return (React__default.default.createElement(Component, tslib.__assign({ "data-test-id": dataTestId, tabIndex: 0 }, (Component === 'button' ? { type: 'button' } : null), restProps, { href: href, id: id, ref: ref, className: cn__default.default(index_module.component, commonClassName, className, selected && commonSelectedClassName, selected && selectedClassName, (_b = {},
|
|
27
|
+
_b[index_module[accentColor]] = selected,
|
|
28
|
+
_b)), onClick: handleClick }),
|
|
29
|
+
React__default.default.createElement("div", { className: cn__default.default(index_module.icon, commonIconClassName, iconClassName) }, React.isValidElement(icon) ? React.cloneElement(icon, { selected: selected }) : icon),
|
|
30
|
+
React__default.default.createElement(dynamicMixins.Text, { weight: 'medium', view: 'secondary-small', className: cn__default.default(index_module.label, commonLabelClassName, labelClassName, (_c = {},
|
|
31
|
+
_c[index_module.labelSelected] = selected,
|
|
32
|
+
_c)) }, React.isValidElement(label) ? React.cloneElement(label, { selected: selected }) : label),
|
|
33
|
+
showIndicator && (React__default.default.createElement("div", { className: index_module.indicator },
|
|
34
|
+
React__default.default.createElement(dynamicMixins$1.Indicator, tslib.__assign({}, indicatorProps, { height: (indicatorProps === null || indicatorProps === void 0 ? void 0 : indicatorProps.value) ? 16 : undefined, border: {
|
|
35
|
+
width: 2,
|
|
36
|
+
color: consts.INDICATOR_BORDER_COLOR[bgColor],
|
|
37
|
+
}, backgroundColor: consts.INDICATOR_BG_COLOR[accentColor] }))))));
|
|
38
|
+
});
|
|
39
|
+
var Tab = TabComponent;
|
|
40
|
+
|
|
41
|
+
exports.Tab = Tab;
|
|
42
|
+
//# sourceMappingURL=Component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../../../src/components/tab/Component.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, MouseEvent } from 'react';\nimport cn from 'classnames';\n\nimport { Indicator } from '@alfalab/core-components-indicator';\nimport { Text } from '@alfalab/core-components-typography';\n\nimport { INDICATOR_BG_COLOR, INDICATOR_BORDER_COLOR } from '../../consts';\nimport { PrivateTabProps, TabProps } from '../../types';\n\nimport styles from './index.module.css';\n\nconst TabComponent = forwardRef(\n (\n {\n showIndicator,\n indicatorProps,\n label,\n icon,\n id,\n selected,\n onChange,\n onClick,\n tabClassNames = {},\n dataTestId,\n className,\n labelClassName,\n selectedClassName,\n iconClassName,\n href,\n Component = href ? 'a' : 'button',\n accentColor = 'primary',\n bgColor = 'modal-bg-primary',\n ...restProps\n }: PrivateTabProps & TabProps,\n ref,\n ) => {\n const handleClick = (event: MouseEvent) => {\n onChange?.(id);\n onClick?.(event);\n };\n\n const {\n className: commonClassName,\n labelClassName: commonLabelClassName,\n selectedClassName: commonSelectedClassName,\n iconClassName: commonIconClassName,\n } = tabClassNames;\n\n return (\n <Component\n data-test-id={dataTestId}\n tabIndex={0}\n {...(Component === 'button' ? { type: 'button' } : null)}\n {...restProps}\n href={href}\n id={id}\n ref={ref}\n className={cn(\n styles.component,\n commonClassName,\n className,\n selected && commonSelectedClassName,\n selected && selectedClassName,\n {\n [styles[accentColor]]: selected,\n },\n )}\n onClick={handleClick}\n >\n <div className={cn(styles.icon, commonIconClassName, iconClassName)}>\n {isValidElement(icon) ? cloneElement(icon, { selected }) : icon}\n </div>\n\n <Text\n weight='medium'\n view='secondary-small'\n className={cn(styles.label, commonLabelClassName, labelClassName, {\n [styles.labelSelected]: selected,\n })}\n >\n {isValidElement(label) ? cloneElement(label, { selected }) : label}\n </Text>\n\n {showIndicator && (\n <div className={styles.indicator}>\n <Indicator\n {...indicatorProps}\n height={indicatorProps?.value ? 16 : undefined}\n border={{\n width: 2,\n color: INDICATOR_BORDER_COLOR[bgColor],\n }}\n backgroundColor={INDICATOR_BG_COLOR[accentColor]}\n />\n </div>\n )}\n </Component>\n );\n },\n);\n\nexport const Tab = TabComponent as React.ForwardRefExoticComponent<\n TabProps & React.RefAttributes<HTMLElement>\n>;\n"],"names":["forwardRef","__rest","React","__assign","cn","styles","isValidElement","cloneElement","Text","Indicator","INDICATOR_BORDER_COLOR","INDICATOR_BG_COLOR"],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--color-light-accent-primary: #ef3124;
|
|
3
|
+
--color-light-accent-secondary: #212124;
|
|
4
|
+
--color-light-neutral-translucent-700: rgba(4, 4, 21, 0.47);
|
|
5
|
+
--color-light-text-secondary: rgba(4, 4, 19, 0.55);
|
|
6
|
+
} :root {
|
|
7
|
+
--gap-2xs: 4px;
|
|
8
|
+
--gap-xs: 8px;
|
|
9
|
+
--gap-0: 0px;
|
|
10
|
+
--gap-4: var(--gap-2xs);
|
|
11
|
+
--gap-8: var(--gap-xs);
|
|
12
|
+
} .tab-bar__component_tbqmm {
|
|
13
|
+
-webkit-tap-highlight-color: transparent;
|
|
14
|
+
box-sizing: border-box;
|
|
15
|
+
background-color: transparent;
|
|
16
|
+
outline: none;
|
|
17
|
+
border: 0;
|
|
18
|
+
margin: var(--gap-0);
|
|
19
|
+
box-shadow: none;
|
|
20
|
+
border-radius: 0;
|
|
21
|
+
-webkit-user-select: none;
|
|
22
|
+
-moz-user-select: none;
|
|
23
|
+
user-select: none;
|
|
24
|
+
vertical-align: middle;
|
|
25
|
+
-webkit-appearance: none;
|
|
26
|
+
-moz-appearance: none;
|
|
27
|
+
appearance: none;
|
|
28
|
+
text-decoration: none;
|
|
29
|
+
min-width: 0;
|
|
30
|
+
cursor: pointer;
|
|
31
|
+
|
|
32
|
+
position: relative;
|
|
33
|
+
display: inline-flex;
|
|
34
|
+
flex-direction: column;
|
|
35
|
+
flex: 1 0 0;
|
|
36
|
+
align-items: center;
|
|
37
|
+
padding: var(--gap-8) var(--gap-0);
|
|
38
|
+
color: var(--color-light-neutral-translucent-700);
|
|
39
|
+
} .tab-bar__primary_tbqmm {
|
|
40
|
+
color: var(--color-light-accent-primary);
|
|
41
|
+
} .tab-bar__secondary_tbqmm {
|
|
42
|
+
color: var(--color-light-accent-secondary);
|
|
43
|
+
} .tab-bar__icon_tbqmm {
|
|
44
|
+
display: flex;
|
|
45
|
+
align-items: center;
|
|
46
|
+
justify-content: center;
|
|
47
|
+
flex-grow: 1;
|
|
48
|
+
width: 100%;
|
|
49
|
+
} .tab-bar__label_tbqmm {
|
|
50
|
+
-webkit-line-clamp: 1;
|
|
51
|
+
display: -webkit-box;
|
|
52
|
+
-webkit-box-orient: vertical;
|
|
53
|
+
overflow: hidden;
|
|
54
|
+
word-break: break-all;
|
|
55
|
+
flex-shrink: 0;
|
|
56
|
+
|
|
57
|
+
color: var(--color-light-text-secondary);
|
|
58
|
+
} .tab-bar__labelSelected_tbqmm {
|
|
59
|
+
color: inherit;
|
|
60
|
+
} .tab-bar__indicator_tbqmm {
|
|
61
|
+
position: absolute;
|
|
62
|
+
top: 3px;
|
|
63
|
+
left: calc(50% + var(--gap-4));
|
|
64
|
+
height: 16px;
|
|
65
|
+
min-width: 16px;
|
|
66
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Component';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('./index.css');
|
|
4
|
+
|
|
5
|
+
var styles = {"component":"tab-bar__component_tbqmm","primary":"tab-bar__primary_tbqmm","secondary":"tab-bar__secondary_tbqmm","icon":"tab-bar__icon_tbqmm","label":"tab-bar__label_tbqmm","labelSelected":"tab-bar__labelSelected_tbqmm","indicator":"tab-bar__indicator_tbqmm"};
|
|
6
|
+
|
|
7
|
+
module.exports = styles;
|
|
8
|
+
//# sourceMappingURL=index.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["../../src/components/tab/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n\n.component {\n @mixin button-reset;\n\n position: relative;\n display: inline-flex;\n flex-direction: column;\n flex: 1 0 0;\n align-items: center;\n padding: var(--gap-8) var(--gap-0);\n color: var(--color-light-neutral-translucent-700);\n}\n\n.primary {\n color: var(--color-light-accent-primary);\n}\n\n.secondary {\n color: var(--color-light-accent-secondary);\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n width: 100%;\n}\n\n.label {\n @mixin row_limit 1;\n word-break: break-all;\n flex-shrink: 0;\n\n color: var(--color-light-text-secondary);\n}\n\n.labelSelected {\n color: inherit;\n}\n\n.indicator {\n position: absolute;\n top: 3px;\n left: calc(50% + var(--gap-4));\n height: 16px;\n min-width: 16px;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,SAAS,CAAC,wBAAwB,CAAC,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,8BAA8B,CAAC,WAAW,CAAC,0BAA0B,CAAC;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var INDICATOR_BORDER_COLOR = {
|
|
6
|
+
'modal-bg-primary': 'var(--color-light-base-bg-primary)',
|
|
7
|
+
'modal-bg-alt-primary': 'var(--color-light-base-bg-alt-primary)',
|
|
8
|
+
};
|
|
9
|
+
var INDICATOR_BG_COLOR = {
|
|
10
|
+
primary: 'var(--color-light-accent-primary)',
|
|
11
|
+
secondary: 'var(--color-light-accent-secondary)',
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports.INDICATOR_BG_COLOR = INDICATOR_BG_COLOR;
|
|
15
|
+
exports.INDICATOR_BORDER_COLOR = INDICATOR_BORDER_COLOR;
|
|
16
|
+
//# sourceMappingURL=consts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.js","sources":["../src/consts.ts"],"sourcesContent":["export const INDICATOR_BORDER_COLOR = {\n 'modal-bg-primary': 'var(--color-light-base-bg-primary)',\n 'modal-bg-alt-primary': 'var(--color-light-base-bg-alt-primary)',\n};\n\nexport const INDICATOR_BG_COLOR = {\n primary: 'var(--color-light-accent-primary)',\n secondary: 'var(--color-light-accent-secondary)',\n};\n"],"names":[],"mappings":";;;;AAAa,IAAA,sBAAsB,GAAG;AAClC,IAAA,kBAAkB,EAAE,oCAAoC;AACxD,IAAA,sBAAsB,EAAE,wCAAwC;;AAGvD,IAAA,kBAAkB,GAAG;AAC9B,IAAA,OAAO,EAAE,mCAAmC;AAC5C,IAAA,SAAS,EAAE,qCAAqC;;;;;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--color-light-base-bg-alt-primary: #f2f3f5;
|
|
3
|
+
--color-light-base-bg-primary: #fff;
|
|
4
|
+
--color-light-neutral-translucent-300: rgba(15, 25, 55, 0.1);
|
|
5
|
+
} :root {
|
|
6
|
+
--gap-0: 0px;
|
|
7
|
+
} :root {
|
|
8
|
+
--sab: env(safe-area-inset-bottom, var(--gap-0));
|
|
9
|
+
} .tab-bar__component_xtycj {
|
|
10
|
+
display: flex;
|
|
11
|
+
justify-content: center;
|
|
12
|
+
height: 64px;
|
|
13
|
+
max-height: 64px;
|
|
14
|
+
box-sizing: border-box;
|
|
15
|
+
overflow: hidden;
|
|
16
|
+
transition: box-shadow 0.2s ease
|
|
17
|
+
} .tab-bar__component_xtycj.tab-bar__modal-bg-primary_xtycj {
|
|
18
|
+
background-color: var(--color-light-base-bg-primary);
|
|
19
|
+
} .tab-bar__component_xtycj.tab-bar__modal-bg-alt-primary_xtycj {
|
|
20
|
+
background-color: var(--color-light-base-bg-alt-primary);
|
|
21
|
+
} @media (display-mode: standalone) { .tab-bar__component_xtycj {
|
|
22
|
+
padding-bottom: var(--sab)
|
|
23
|
+
}
|
|
24
|
+
} .tab-bar__border_xtycj {
|
|
25
|
+
box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
require('./index.css');
|
|
4
|
+
|
|
5
|
+
var styles = {"component":"tab-bar__component_xtycj","modal-bg-primary":"tab-bar__modal-bg-primary_xtycj","modal-bg-alt-primary":"tab-bar__modal-bg-alt-primary_xtycj","border":"tab-bar__border_xtycj"};
|
|
6
|
+
|
|
7
|
+
module.exports = styles;
|
|
8
|
+
//# sourceMappingURL=index.module.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n@import '@alfalab/core-components-vars/src/safe-area.css';\n\n.component {\n display: flex;\n justify-content: center;\n height: 64px;\n max-height: 64px;\n box-sizing: border-box;\n overflow: hidden;\n transition: box-shadow 0.2s ease;\n\n &.modal-bg-primary {\n background-color: var(--color-light-base-bg-primary);\n }\n\n &.modal-bg-alt-primary {\n background-color: var(--color-light-base-bg-alt-primary);\n }\n\n @media (display-mode: standalone) {\n padding-bottom: var(--sab);\n }\n}\n\n.border {\n box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { getTabBarTestIds } from '../utils';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type { AllHTMLAttributes, ElementType, ForwardRefExoticComponent, HTMLAttributes, ReactElement, ReactNode, RefAttributes } from 'react';
|
|
2
|
+
import type { IndicatorProps } from '@alfalab/core-components-indicator';
|
|
3
|
+
declare type TabElementType = ReactElement<TabProps, ForwardRefExoticComponent<TabProps & RefAttributes<HTMLElement>>>;
|
|
4
|
+
export interface TabBarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
5
|
+
/**
|
|
6
|
+
* Дополнительный класс
|
|
7
|
+
*/
|
|
8
|
+
className?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Идентификатор для систем автоматизированного тестирования.
|
|
11
|
+
* Для таба используется модификатор -tab
|
|
12
|
+
*/
|
|
13
|
+
dataTestId?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Дополнительные классы для таба.
|
|
16
|
+
*/
|
|
17
|
+
tabClassNames?: {
|
|
18
|
+
/**
|
|
19
|
+
* Дополнительный класс таба
|
|
20
|
+
*/
|
|
21
|
+
className?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Дополнительный класс таба в выбранном состоянии
|
|
24
|
+
*/
|
|
25
|
+
selectedClassName?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Дополнительный класс подписи
|
|
28
|
+
*/
|
|
29
|
+
labelClassName?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Дополнительный класс враппера иконки
|
|
32
|
+
*/
|
|
33
|
+
iconClassName?: string;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Список табов
|
|
37
|
+
*/
|
|
38
|
+
children: TabElementType[];
|
|
39
|
+
/**
|
|
40
|
+
* Идентификатор выбранного таба
|
|
41
|
+
*/
|
|
42
|
+
selectedId?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Включает верхний бордер
|
|
45
|
+
*/
|
|
46
|
+
border?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Обработчик изменения выбранного таба
|
|
49
|
+
*/
|
|
50
|
+
onChange?: (id: string) => void;
|
|
51
|
+
/**
|
|
52
|
+
* Цвет активного таба
|
|
53
|
+
*/
|
|
54
|
+
accentColor?: 'primary' | 'secondary';
|
|
55
|
+
/**
|
|
56
|
+
* Цвет фона
|
|
57
|
+
*/
|
|
58
|
+
bgColor?: 'modal-bg-primary' | 'modal-bg-alt-primary';
|
|
59
|
+
}
|
|
60
|
+
declare type AdditionalTabProps = Record<string, unknown>;
|
|
61
|
+
export interface TabProps extends Omit<AllHTMLAttributes<unknown>, 'onChange' | 'label'>, AdditionalTabProps {
|
|
62
|
+
/**
|
|
63
|
+
* Кастомный компонент таба.
|
|
64
|
+
* @default button
|
|
65
|
+
*/
|
|
66
|
+
Component?: ElementType;
|
|
67
|
+
/**
|
|
68
|
+
* Идентификатор таба
|
|
69
|
+
*/
|
|
70
|
+
id: string;
|
|
71
|
+
/**
|
|
72
|
+
* Лейбл
|
|
73
|
+
*/
|
|
74
|
+
label: ReactNode;
|
|
75
|
+
/**
|
|
76
|
+
* Иконка
|
|
77
|
+
*/
|
|
78
|
+
icon: ReactNode;
|
|
79
|
+
/**
|
|
80
|
+
* Показать индикатор
|
|
81
|
+
*/
|
|
82
|
+
showIndicator?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Свойства индикатора
|
|
85
|
+
*/
|
|
86
|
+
indicatorProps?: Omit<IndicatorProps, 'color' | 'backgroundColor' | 'border' | 'view' | 'size' | 'height'>;
|
|
87
|
+
/**
|
|
88
|
+
* Дополнительный класс таба
|
|
89
|
+
*/
|
|
90
|
+
className?: string;
|
|
91
|
+
/**
|
|
92
|
+
* Дополнительный класс таба в выбранном состоянии
|
|
93
|
+
*/
|
|
94
|
+
selectedClassName?: string;
|
|
95
|
+
/**
|
|
96
|
+
* Дополнительный класс подписи
|
|
97
|
+
*/
|
|
98
|
+
labelClassName?: string;
|
|
99
|
+
/**
|
|
100
|
+
* Дополнительный класс враппера иконки
|
|
101
|
+
*/
|
|
102
|
+
iconClassName?: string;
|
|
103
|
+
}
|
|
104
|
+
export interface PrivateTabProps extends Pick<TabBarProps, 'tabClassNames' | 'onChange' | 'dataTestId' | 'accentColor' | 'bgColor'> {
|
|
105
|
+
selected: boolean;
|
|
106
|
+
}
|
|
107
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var dynamicMixins = require('@alfalab/core-components-shared/dynamic-mixins');
|
|
6
|
+
|
|
7
|
+
function getTabBarTestIds(dataTestId) {
|
|
8
|
+
return {
|
|
9
|
+
tabBar: dataTestId,
|
|
10
|
+
tab: dynamicMixins.getDataTestId(dataTestId, 'tab'),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
exports.getTabBarTestIds = getTabBarTestIds;
|
|
15
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["import { getDataTestId } from '@alfalab/core-components-shared';\n\nexport function getTabBarTestIds(dataTestId: string) {\n return {\n tabBar: dataTestId,\n tab: getDataTestId(dataTestId, 'tab'),\n };\n}\n"],"names":["getDataTestId"],"mappings":";;;;;;AAEM,SAAU,gBAAgB,CAAC,UAAkB,EAAA;IAC/C,OAAO;AACH,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,GAAG,EAAEA,2BAAa,CAAC,UAAU,EAAE,KAAK,CAAC;KACxC;AACL;;;;"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
--gap-0: 0px;
|
|
10
10
|
--gap-4: var(--gap-2xs);
|
|
11
11
|
--gap-8: var(--gap-xs);
|
|
12
|
-
} .tab-
|
|
12
|
+
} .tab-bar__component_tbqmm {
|
|
13
13
|
-webkit-tap-highlight-color: transparent;
|
|
14
14
|
box-sizing: border-box;
|
|
15
15
|
background-color: transparent;
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
box-shadow: none;
|
|
20
20
|
border-radius: 0;
|
|
21
21
|
-webkit-user-select: none;
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
-moz-user-select: none;
|
|
23
|
+
user-select: none;
|
|
24
24
|
vertical-align: middle;
|
|
25
25
|
-webkit-appearance: none;
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
-moz-appearance: none;
|
|
27
|
+
appearance: none;
|
|
28
28
|
text-decoration: none;
|
|
29
29
|
min-width: 0;
|
|
30
30
|
cursor: pointer;
|
|
@@ -36,17 +36,17 @@
|
|
|
36
36
|
align-items: center;
|
|
37
37
|
padding: var(--gap-8) var(--gap-0);
|
|
38
38
|
color: var(--color-light-neutral-translucent-700);
|
|
39
|
-
} .tab-
|
|
39
|
+
} .tab-bar__primary_tbqmm {
|
|
40
40
|
color: var(--color-light-accent-primary);
|
|
41
|
-
} .tab-
|
|
41
|
+
} .tab-bar__secondary_tbqmm {
|
|
42
42
|
color: var(--color-light-accent-secondary);
|
|
43
|
-
} .tab-
|
|
43
|
+
} .tab-bar__icon_tbqmm {
|
|
44
44
|
display: flex;
|
|
45
45
|
align-items: center;
|
|
46
46
|
justify-content: center;
|
|
47
47
|
flex-grow: 1;
|
|
48
48
|
width: 100%;
|
|
49
|
-
} .tab-
|
|
49
|
+
} .tab-bar__label_tbqmm {
|
|
50
50
|
-webkit-line-clamp: 1;
|
|
51
51
|
display: -webkit-box;
|
|
52
52
|
-webkit-box-orient: vertical;
|
|
@@ -55,9 +55,9 @@
|
|
|
55
55
|
flex-shrink: 0;
|
|
56
56
|
|
|
57
57
|
color: var(--color-light-text-secondary);
|
|
58
|
-
} .tab-
|
|
58
|
+
} .tab-bar__labelSelected_tbqmm {
|
|
59
59
|
color: inherit;
|
|
60
|
-
} .tab-
|
|
60
|
+
} .tab-bar__indicator_tbqmm {
|
|
61
61
|
position: absolute;
|
|
62
62
|
top: 3px;
|
|
63
63
|
left: calc(50% + var(--gap-4));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
|
|
3
|
-
var styles = {"component":"tab-
|
|
3
|
+
var styles = {"component":"tab-bar__component_tbqmm","primary":"tab-bar__primary_tbqmm","secondary":"tab-bar__secondary_tbqmm","icon":"tab-bar__icon_tbqmm","label":"tab-bar__label_tbqmm","labelSelected":"tab-bar__labelSelected_tbqmm","indicator":"tab-bar__indicator_tbqmm"};
|
|
4
4
|
|
|
5
5
|
export { styles as default };
|
|
6
6
|
//# sourceMappingURL=index.module.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.css.js","sources":["../../src/components/tab/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n.component {\n @mixin button-reset;\n\n position: relative;\n display: inline-flex;\n flex-direction: column;\n flex: 1 0 0;\n align-items: center;\n padding: var(--gap-8) var(--gap-0);\n color: var(--color-light-neutral-translucent-700);\n}\n\n.primary {\n color: var(--color-light-accent-primary);\n}\n\n.secondary {\n color: var(--color-light-accent-secondary);\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n width: 100%;\n}\n\n.label {\n @mixin row_limit 1;\n word-break: break-all;\n flex-shrink: 0;\n\n color: var(--color-light-text-secondary);\n}\n\n.labelSelected {\n color: inherit;\n}\n\n.indicator {\n position: absolute;\n top: 3px;\n left: calc(50% + var(--gap-4));\n height: 16px;\n min-width: 16px;\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,SAAS,CAAC,wBAAwB,CAAC,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,8BAA8B,CAAC,WAAW,CAAC,0BAA0B,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["../../src/components/tab/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n\n.component {\n @mixin button-reset;\n\n position: relative;\n display: inline-flex;\n flex-direction: column;\n flex: 1 0 0;\n align-items: center;\n padding: var(--gap-8) var(--gap-0);\n color: var(--color-light-neutral-translucent-700);\n}\n\n.primary {\n color: var(--color-light-accent-primary);\n}\n\n.secondary {\n color: var(--color-light-accent-secondary);\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n width: 100%;\n}\n\n.label {\n @mixin row_limit 1;\n word-break: break-all;\n flex-shrink: 0;\n\n color: var(--color-light-text-secondary);\n}\n\n.labelSelected {\n color: inherit;\n}\n\n.indicator {\n position: absolute;\n top: 3px;\n left: calc(50% + var(--gap-4));\n height: 16px;\n min-width: 16px;\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,SAAS,CAAC,wBAAwB,CAAC,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,8BAA8B,CAAC,WAAW,CAAC,0BAA0B,CAAC;;;;"}
|
package/esm/index.css
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
--gap-0: 0px;
|
|
7
7
|
} :root {
|
|
8
8
|
--sab: env(safe-area-inset-bottom, var(--gap-0));
|
|
9
|
-
} .tab-
|
|
9
|
+
} .tab-bar__component_xtycj {
|
|
10
10
|
display: flex;
|
|
11
11
|
justify-content: center;
|
|
12
12
|
height: 64px;
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
box-sizing: border-box;
|
|
15
15
|
overflow: hidden;
|
|
16
16
|
transition: box-shadow 0.2s ease
|
|
17
|
-
} .tab-
|
|
17
|
+
} .tab-bar__component_xtycj.tab-bar__modal-bg-primary_xtycj {
|
|
18
18
|
background-color: var(--color-light-base-bg-primary);
|
|
19
|
-
} .tab-
|
|
19
|
+
} .tab-bar__component_xtycj.tab-bar__modal-bg-alt-primary_xtycj {
|
|
20
20
|
background-color: var(--color-light-base-bg-alt-primary);
|
|
21
|
-
} @media (display-mode: standalone) { .tab-
|
|
21
|
+
} @media (display-mode: standalone) { .tab-bar__component_xtycj {
|
|
22
22
|
padding-bottom: var(--sab)
|
|
23
23
|
}
|
|
24
|
-
} .tab-
|
|
24
|
+
} .tab-bar__border_xtycj {
|
|
25
25
|
box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);
|
|
26
26
|
}
|
package/esm/index.module.css.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
|
|
3
|
-
var styles = {"component":"tab-
|
|
3
|
+
var styles = {"component":"tab-bar__component_xtycj","modal-bg-primary":"tab-bar__modal-bg-primary_xtycj","modal-bg-alt-primary":"tab-bar__modal-bg-alt-primary_xtycj","border":"tab-bar__border_xtycj"};
|
|
4
4
|
|
|
5
5
|
export { styles as default };
|
|
6
6
|
//# sourceMappingURL=index.module.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '@alfalab/core-components-vars/src/safe-area.css';\n\n.component {\n display: flex;\n justify-content: center;\n height: 64px;\n max-height: 64px;\n box-sizing: border-box;\n overflow: hidden;\n transition: box-shadow 0.2s ease;\n\n &.modal-bg-primary {\n background-color: var(--color-light-base-bg-primary);\n }\n\n &.modal-bg-alt-primary {\n background-color: var(--color-light-base-bg-alt-primary);\n }\n\n @media (display-mode: standalone) {\n padding-bottom: var(--sab);\n }\n}\n\n.border {\n box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n@import '@alfalab/core-components-vars/src/safe-area.css';\n\n.component {\n display: flex;\n justify-content: center;\n height: 64px;\n max-height: 64px;\n box-sizing: border-box;\n overflow: hidden;\n transition: box-shadow 0.2s ease;\n\n &.modal-bg-primary {\n background-color: var(--color-light-base-bg-primary);\n }\n\n &.modal-bg-alt-primary {\n background-color: var(--color-light-base-bg-alt-primary);\n }\n\n @media (display-mode: standalone) {\n padding-bottom: var(--sab);\n }\n}\n\n.border {\n box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;;;;"}
|
package/index.css
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
--gap-0: 0px;
|
|
7
7
|
} :root {
|
|
8
8
|
--sab: env(safe-area-inset-bottom, var(--gap-0));
|
|
9
|
-
} .tab-
|
|
9
|
+
} .tab-bar__component_xtycj {
|
|
10
10
|
display: flex;
|
|
11
11
|
justify-content: center;
|
|
12
12
|
height: 64px;
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
box-sizing: border-box;
|
|
15
15
|
overflow: hidden;
|
|
16
16
|
transition: box-shadow 0.2s ease
|
|
17
|
-
} .tab-
|
|
17
|
+
} .tab-bar__component_xtycj.tab-bar__modal-bg-primary_xtycj {
|
|
18
18
|
background-color: var(--color-light-base-bg-primary);
|
|
19
|
-
} .tab-
|
|
19
|
+
} .tab-bar__component_xtycj.tab-bar__modal-bg-alt-primary_xtycj {
|
|
20
20
|
background-color: var(--color-light-base-bg-alt-primary);
|
|
21
|
-
} @media (display-mode: standalone) { .tab-
|
|
21
|
+
} @media (display-mode: standalone) { .tab-bar__component_xtycj {
|
|
22
22
|
padding-bottom: var(--sab)
|
|
23
23
|
}
|
|
24
|
-
} .tab-
|
|
24
|
+
} .tab-bar__border_xtycj {
|
|
25
25
|
box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);
|
|
26
26
|
}
|
package/index.module.css.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require('./index.css');
|
|
4
4
|
|
|
5
|
-
var styles = {"component":"tab-
|
|
5
|
+
var styles = {"component":"tab-bar__component_xtycj","modal-bg-primary":"tab-bar__modal-bg-primary_xtycj","modal-bg-alt-primary":"tab-bar__modal-bg-alt-primary_xtycj","border":"tab-bar__border_xtycj"};
|
|
6
6
|
|
|
7
7
|
module.exports = styles;
|
|
8
8
|
//# sourceMappingURL=index.module.css.js.map
|
package/index.module.css.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '@alfalab/core-components-vars/src/safe-area.css';\n\n.component {\n display: flex;\n justify-content: center;\n height: 64px;\n max-height: 64px;\n box-sizing: border-box;\n overflow: hidden;\n transition: box-shadow 0.2s ease;\n\n &.modal-bg-primary {\n background-color: var(--color-light-base-bg-primary);\n }\n\n &.modal-bg-alt-primary {\n background-color: var(--color-light-base-bg-alt-primary);\n }\n\n @media (display-mode: standalone) {\n padding-bottom: var(--sab);\n }\n}\n\n.border {\n box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n@import '@alfalab/core-components-vars/src/safe-area.css';\n\n.component {\n display: flex;\n justify-content: center;\n height: 64px;\n max-height: 64px;\n box-sizing: border-box;\n overflow: hidden;\n transition: box-shadow 0.2s ease;\n\n &.modal-bg-primary {\n background-color: var(--color-light-base-bg-primary);\n }\n\n &.modal-bg-alt-primary {\n background-color: var(--color-light-base-bg-alt-primary);\n }\n\n @media (display-mode: standalone) {\n padding-bottom: var(--sab);\n }\n}\n\n.border {\n box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;;;;"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
--gap-0: 0px;
|
|
10
10
|
--gap-4: var(--gap-2xs);
|
|
11
11
|
--gap-8: var(--gap-xs);
|
|
12
|
-
} .tab-
|
|
12
|
+
} .tab-bar__component_tbqmm {
|
|
13
13
|
-webkit-tap-highlight-color: transparent;
|
|
14
14
|
box-sizing: border-box;
|
|
15
15
|
background-color: transparent;
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
box-shadow: none;
|
|
20
20
|
border-radius: 0;
|
|
21
21
|
-webkit-user-select: none;
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
-moz-user-select: none;
|
|
23
|
+
user-select: none;
|
|
24
24
|
vertical-align: middle;
|
|
25
25
|
-webkit-appearance: none;
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
-moz-appearance: none;
|
|
27
|
+
appearance: none;
|
|
28
28
|
text-decoration: none;
|
|
29
29
|
min-width: 0;
|
|
30
30
|
cursor: pointer;
|
|
@@ -36,17 +36,17 @@
|
|
|
36
36
|
align-items: center;
|
|
37
37
|
padding: var(--gap-8) var(--gap-0);
|
|
38
38
|
color: var(--color-light-neutral-translucent-700);
|
|
39
|
-
} .tab-
|
|
39
|
+
} .tab-bar__primary_tbqmm {
|
|
40
40
|
color: var(--color-light-accent-primary);
|
|
41
|
-
} .tab-
|
|
41
|
+
} .tab-bar__secondary_tbqmm {
|
|
42
42
|
color: var(--color-light-accent-secondary);
|
|
43
|
-
} .tab-
|
|
43
|
+
} .tab-bar__icon_tbqmm {
|
|
44
44
|
display: flex;
|
|
45
45
|
align-items: center;
|
|
46
46
|
justify-content: center;
|
|
47
47
|
flex-grow: 1;
|
|
48
48
|
width: 100%;
|
|
49
|
-
} .tab-
|
|
49
|
+
} .tab-bar__label_tbqmm {
|
|
50
50
|
-webkit-line-clamp: 1;
|
|
51
51
|
display: -webkit-box;
|
|
52
52
|
-webkit-box-orient: vertical;
|
|
@@ -55,9 +55,9 @@
|
|
|
55
55
|
flex-shrink: 0;
|
|
56
56
|
|
|
57
57
|
color: var(--color-light-text-secondary);
|
|
58
|
-
} .tab-
|
|
58
|
+
} .tab-bar__labelSelected_tbqmm {
|
|
59
59
|
color: inherit;
|
|
60
|
-
} .tab-
|
|
60
|
+
} .tab-bar__indicator_tbqmm {
|
|
61
61
|
position: absolute;
|
|
62
62
|
top: 3px;
|
|
63
63
|
left: calc(50% + var(--gap-4));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
|
|
3
|
-
const styles = {"component":"tab-
|
|
3
|
+
const styles = {"component":"tab-bar__component_tbqmm","primary":"tab-bar__primary_tbqmm","secondary":"tab-bar__secondary_tbqmm","icon":"tab-bar__icon_tbqmm","label":"tab-bar__label_tbqmm","labelSelected":"tab-bar__labelSelected_tbqmm","indicator":"tab-bar__indicator_tbqmm"};
|
|
4
4
|
|
|
5
5
|
export { styles as default };
|
|
6
6
|
//# sourceMappingURL=index.module.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.css.js","sources":["../../src/components/tab/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n.component {\n @mixin button-reset;\n\n position: relative;\n display: inline-flex;\n flex-direction: column;\n flex: 1 0 0;\n align-items: center;\n padding: var(--gap-8) var(--gap-0);\n color: var(--color-light-neutral-translucent-700);\n}\n\n.primary {\n color: var(--color-light-accent-primary);\n}\n\n.secondary {\n color: var(--color-light-accent-secondary);\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n width: 100%;\n}\n\n.label {\n @mixin row_limit 1;\n word-break: break-all;\n flex-shrink: 0;\n\n color: var(--color-light-text-secondary);\n}\n\n.labelSelected {\n color: inherit;\n}\n\n.indicator {\n position: absolute;\n top: 3px;\n left: calc(50% + var(--gap-4));\n height: 16px;\n min-width: 16px;\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,SAAS,CAAC,wBAAwB,CAAC,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,8BAA8B,CAAC,WAAW,CAAC,0BAA0B,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["../../src/components/tab/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n\n.component {\n @mixin button-reset;\n\n position: relative;\n display: inline-flex;\n flex-direction: column;\n flex: 1 0 0;\n align-items: center;\n padding: var(--gap-8) var(--gap-0);\n color: var(--color-light-neutral-translucent-700);\n}\n\n.primary {\n color: var(--color-light-accent-primary);\n}\n\n.secondary {\n color: var(--color-light-accent-secondary);\n}\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n width: 100%;\n}\n\n.label {\n @mixin row_limit 1;\n word-break: break-all;\n flex-shrink: 0;\n\n color: var(--color-light-text-secondary);\n}\n\n.labelSelected {\n color: inherit;\n}\n\n.indicator {\n position: absolute;\n top: 3px;\n left: calc(50% + var(--gap-4));\n height: 16px;\n min-width: 16px;\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,SAAS,CAAC,wBAAwB,CAAC,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,sBAAsB,CAAC,eAAe,CAAC,8BAA8B,CAAC,WAAW,CAAC,0BAA0B,CAAC;;;;"}
|
package/modern/index.css
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
--gap-0: 0px;
|
|
7
7
|
} :root {
|
|
8
8
|
--sab: env(safe-area-inset-bottom, var(--gap-0));
|
|
9
|
-
} .tab-
|
|
9
|
+
} .tab-bar__component_xtycj {
|
|
10
10
|
display: flex;
|
|
11
11
|
justify-content: center;
|
|
12
12
|
height: 64px;
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
box-sizing: border-box;
|
|
15
15
|
overflow: hidden;
|
|
16
16
|
transition: box-shadow 0.2s ease
|
|
17
|
-
} .tab-
|
|
17
|
+
} .tab-bar__component_xtycj.tab-bar__modal-bg-primary_xtycj {
|
|
18
18
|
background-color: var(--color-light-base-bg-primary);
|
|
19
|
-
} .tab-
|
|
19
|
+
} .tab-bar__component_xtycj.tab-bar__modal-bg-alt-primary_xtycj {
|
|
20
20
|
background-color: var(--color-light-base-bg-alt-primary);
|
|
21
|
-
} @media (display-mode: standalone) { .tab-
|
|
21
|
+
} @media (display-mode: standalone) { .tab-bar__component_xtycj {
|
|
22
22
|
padding-bottom: var(--sab)
|
|
23
23
|
}
|
|
24
|
-
} .tab-
|
|
24
|
+
} .tab-bar__border_xtycj {
|
|
25
25
|
box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);
|
|
26
26
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
|
|
3
|
-
const styles = {"component":"tab-
|
|
3
|
+
const styles = {"component":"tab-bar__component_xtycj","modal-bg-primary":"tab-bar__modal-bg-primary_xtycj","modal-bg-alt-primary":"tab-bar__modal-bg-alt-primary_xtycj","border":"tab-bar__border_xtycj"};
|
|
4
4
|
|
|
5
5
|
export { styles as default };
|
|
6
6
|
//# sourceMappingURL=index.module.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '@alfalab/core-components-vars/src/safe-area.css';\n\n.component {\n display: flex;\n justify-content: center;\n height: 64px;\n max-height: 64px;\n box-sizing: border-box;\n overflow: hidden;\n transition: box-shadow 0.2s ease;\n\n &.modal-bg-primary {\n background-color: var(--color-light-base-bg-primary);\n }\n\n &.modal-bg-alt-primary {\n background-color: var(--color-light-base-bg-alt-primary);\n }\n\n @media (display-mode: standalone) {\n padding-bottom: var(--sab);\n }\n}\n\n.border {\n box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-dynamic-mixins-index.css';\n@import '@alfalab/core-components-vars/src/safe-area.css';\n\n.component {\n display: flex;\n justify-content: center;\n height: 64px;\n max-height: 64px;\n box-sizing: border-box;\n overflow: hidden;\n transition: box-shadow 0.2s ease;\n\n &.modal-bg-primary {\n background-color: var(--color-light-base-bg-primary);\n }\n\n &.modal-bg-alt-primary {\n background-color: var(--color-light-base-bg-alt-primary);\n }\n\n @media (display-mode: standalone) {\n padding-bottom: var(--sab);\n }\n}\n\n.border {\n box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,0BAA0B,CAAC,kBAAkB,CAAC,iCAAiC,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;;;;"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
1
3
|
.component {
|
|
2
4
|
-webkit-tap-highlight-color: transparent;
|
|
3
5
|
box-sizing: border-box;
|
|
@@ -7,13 +9,9 @@
|
|
|
7
9
|
margin: var(--gap-0);
|
|
8
10
|
box-shadow: none;
|
|
9
11
|
border-radius: 0;
|
|
10
|
-
|
|
11
|
-
-moz-user-select: none;
|
|
12
|
-
user-select: none;
|
|
12
|
+
user-select: none;
|
|
13
13
|
vertical-align: middle;
|
|
14
|
-
|
|
15
|
-
-moz-appearance: none;
|
|
16
|
-
appearance: none;
|
|
14
|
+
appearance: none;
|
|
17
15
|
text-decoration: none;
|
|
18
16
|
min-width: 0;
|
|
19
17
|
cursor: pointer;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--sab: env(safe-area-inset-bottom, var(--gap-0));
|
|
3
3
|
}
|
|
4
|
+
|
|
4
5
|
.component {
|
|
5
6
|
display: flex;
|
|
6
7
|
justify-content: center;
|
|
@@ -10,17 +11,22 @@
|
|
|
10
11
|
overflow: hidden;
|
|
11
12
|
transition: box-shadow 0.2s ease
|
|
12
13
|
}
|
|
14
|
+
|
|
13
15
|
.component.modal-bg-primary {
|
|
14
16
|
background-color: var(--color-light-base-bg-primary);
|
|
15
17
|
}
|
|
18
|
+
|
|
16
19
|
.component.modal-bg-alt-primary {
|
|
17
20
|
background-color: var(--color-light-base-bg-alt-primary);
|
|
18
21
|
}
|
|
22
|
+
|
|
19
23
|
@media (display-mode: standalone) {
|
|
24
|
+
|
|
20
25
|
.component {
|
|
21
26
|
padding-bottom: var(--sab)
|
|
22
27
|
}
|
|
23
28
|
}
|
|
29
|
+
|
|
24
30
|
.border {
|
|
25
31
|
box-shadow: 0 -1px 0 0 var(--color-light-neutral-translucent-300);
|
|
26
32
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alfalab/core-components-tab-bar",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.1.0-snapshot-92b8690",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
"main": "index.js",
|
|
11
11
|
"module": "./esm/index.js",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@alfalab/core-components-indicator": "
|
|
14
|
-
"@alfalab/core-components-shared": "
|
|
15
|
-
"@alfalab/core-components-typography": "
|
|
13
|
+
"@alfalab/core-components-indicator": "3.1.0-snapshot-92b8690",
|
|
14
|
+
"@alfalab/core-components-shared": "1.1.0-snapshot-92b8690",
|
|
15
|
+
"@alfalab/core-components-typography": "5.1.0-snapshot-92b8690",
|
|
16
16
|
"classnames": "^2.5.1",
|
|
17
17
|
"tslib": "^2.4.0"
|
|
18
18
|
},
|
|
@@ -24,6 +24,6 @@
|
|
|
24
24
|
"access": "public",
|
|
25
25
|
"directory": "dist"
|
|
26
26
|
},
|
|
27
|
-
"themesVersion": "14.
|
|
28
|
-
"varsVersion": "10.
|
|
27
|
+
"themesVersion": "14.1.0-snapshot-92b8690",
|
|
28
|
+
"varsVersion": "10.1.0-snapshot-92b8690"
|
|
29
29
|
}
|
package/src/index.module.css
CHANGED