colibri-ui 0.7.80 → 0.7.82

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.
@@ -16,7 +16,7 @@
16
16
  transition-timing-function: ease;
17
17
  }
18
18
  .inner_active {
19
- background: rgb(237, 237, 237);
19
+ background: var(--palette-bg-1);
20
20
  }
21
21
  .inner_inactive {
22
22
  background: var(--palette-white);
@@ -43,15 +43,18 @@
43
43
  }
44
44
  .inner[data-size=s] {
45
45
  border-radius: 32px;
46
- height: 32px;
46
+ font-size: 15px;
47
+ line-height: 32px;
47
48
  }
48
49
  .inner[data-size=m] {
49
50
  border-radius: 36px;
50
- height: 36px;
51
+ font-size: 16px;
52
+ line-height: 36px;
51
53
  }
52
54
  .inner[data-size=l] {
53
55
  border-radius: 44px;
54
- height: 44px;
56
+ font-size: 18px;
57
+ line-height: 44px;
55
58
  }
56
59
 
57
60
  .content {
package/Chip/index.d.ts CHANGED
@@ -1,14 +1,4 @@
1
- import React from "react";
2
- import type { FC, ReactNode } from "react";
3
- type Size = "s" | "m" | "l";
4
- type Props = {
5
- size?: Size;
6
- testID?: string;
7
- isActive?: boolean;
8
- iconOnRight?: React.ReactNode;
9
- onClick?: () => void;
10
- onIconOnRightClick?: () => void;
11
- children?: ReactNode;
12
- };
1
+ import type { Props } from "./index.props";
2
+ import type { FC } from "react";
13
3
  declare const Chip: FC<Props>;
14
4
  export default Chip;
@@ -0,0 +1,12 @@
1
+ import type { ReactNode } from "react";
2
+ type Size = "s" | "m" | "l";
3
+ export type Props = {
4
+ size?: Size;
5
+ testID?: string;
6
+ isActive?: boolean;
7
+ iconOnRight?: React.ReactNode;
8
+ onClick?: () => void;
9
+ onIconOnRightClick?: () => void;
10
+ children?: ReactNode;
11
+ };
12
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { FC } from "react";
2
+ import type { TabProps } from "./Tab.props";
3
+ declare const Tab: FC<TabProps>;
4
+ export default Tab;
@@ -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 classNames = require('classnames/bind');
8
+ var styles = require('./Tab.module.css');
9
+
10
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
11
+
12
+ var React__default = /*#__PURE__*/_interopDefault(React);
13
+ var classNames__default = /*#__PURE__*/_interopDefault(classNames);
14
+ var styles__default = /*#__PURE__*/_interopDefault(styles);
15
+
16
+ var clx = classNames__default.default.bind(styles__default.default);
17
+ var Tab = function Tab(_a) {
18
+ var innerRef = _a.innerRef,
19
+ active = _a.active,
20
+ className = _a.className,
21
+ content = _a.content,
22
+ disabled = _a.disabled,
23
+ first = _a.first,
24
+ size = _a.size,
25
+ props = tslib.__rest(_a, ["innerRef", "active", "className", "content", "disabled", "first", "size"]);
26
+ return /*#__PURE__*/React__default.default.createElement("li", tslib.__assign({}, props, {
27
+ "aria-selected": active,
28
+ ref: innerRef,
29
+ className: clx(styles__default.default.tab, {
30
+ tab_inactive: !active,
31
+ tab_active: !!active,
32
+ tab_disabled: !!disabled,
33
+ tab_first: !!first
34
+ }, className),
35
+ "data-size": size,
36
+ role: "tab",
37
+ tabIndex: disabled ? undefined : active ? 0 : -1
38
+ }), content);
39
+ };
40
+
41
+ exports.default = Tab;
@@ -0,0 +1,61 @@
1
+ .tab {
2
+ cursor: pointer;
3
+ display: inline-block;
4
+ margin-left: 16px;
5
+ padding: 0 20px;
6
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
7
+ transition-duration: 0.3s;
8
+ transition-property: background, box-shadow, transform;
9
+ transition-timing-function: ease;
10
+ user-select: none;
11
+ white-space: nowrap;
12
+ }
13
+ .tab[data-size=s] {
14
+ border-radius: 32px;
15
+ font-size: 15px;
16
+ line-height: 32px;
17
+ }
18
+ .tab[data-size=m] {
19
+ border-radius: 36px;
20
+ font-size: 16px;
21
+ line-height: 36px;
22
+ }
23
+ .tab[data-size=l] {
24
+ border-radius: 44px;
25
+ font-size: 18px;
26
+ line-height: 44px;
27
+ }
28
+ .tab_active {
29
+ background: var(--palette-bg-1);
30
+ }
31
+ .tab_inactive {
32
+ background: var(--palette-white);
33
+ box-shadow: rgba(193, 193, 193, 0.4) 0 5px 20px;
34
+ }
35
+ .tab_inactive:hover {
36
+ box-shadow: rgba(193, 193, 193, 0.4) 0 5px 20px;
37
+ }
38
+ .tab_inactive:active {
39
+ background: rgba(0, 0, 0, 0.02);
40
+ box-shadow: rgba(193, 193, 193, 0.4) 0 1px 3px;
41
+ outline: 0;
42
+ transition-duration: 0.15s;
43
+ }
44
+ @media (hover: none) {
45
+ .tab_inactive:hover {
46
+ box-shadow: rgba(193, 193, 193, 0.4) 0 5px 20px;
47
+ }
48
+ .tab_inactive:active {
49
+ box-shadow: rgba(193, 193, 193, 0.4) 0 1px 3px;
50
+ }
51
+ }
52
+ .tab_first {
53
+ margin-left: 0;
54
+ }
55
+ .tab_disabled {
56
+ background: #f7f8f9;
57
+ box-shadow: none;
58
+ color: var(--palette-bg-3);
59
+ cursor: not-allowed;
60
+ pointer-events: none;
61
+ }
@@ -0,0 +1,16 @@
1
+ import type { Size } from "../index.props";
2
+ import type { KeyboardEventHandler, MouseEventHandler, ReactNode, RefObject } from "react";
3
+ export type TabProps = {
4
+ id?: string;
5
+ active?: boolean;
6
+ disabled?: boolean;
7
+ first?: boolean;
8
+ content?: ReactNode;
9
+ onClick?: MouseEventHandler<HTMLLIElement>;
10
+ innerRef?: RefObject<HTMLLIElement>;
11
+ className?: string;
12
+ role?: string;
13
+ tabIndex?: number;
14
+ onKeyDown?: KeyboardEventHandler<HTMLElement>;
15
+ size?: Size;
16
+ };
@@ -0,0 +1,4 @@
1
+ .root {
2
+ margin: 0;
3
+ padding: 0;
4
+ }
@@ -0,0 +1,4 @@
1
+ import type { TabsMenuProps } from "./index.props";
2
+ import type { FC } from "react";
3
+ declare const TabsMenu: FC<TabsMenuProps>;
4
+ export default TabsMenu;
@@ -0,0 +1,94 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var React = require('react');
7
+ var classNames = require('classnames/bind');
8
+ var keyboard = require('../lib/keyboard.js');
9
+ var Tab = require('./Tab/Tab.js');
10
+ var styles = require('./TabsMenu.module.css');
11
+
12
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
+
14
+ var React__default = /*#__PURE__*/_interopDefault(React);
15
+ var classNames__default = /*#__PURE__*/_interopDefault(classNames);
16
+ var styles__default = /*#__PURE__*/_interopDefault(styles);
17
+
18
+ var clx = classNames__default.default.bind(styles__default.default);
19
+ var TabsMenu = function TabsMenu(_a) {
20
+ var activeTab = _a.activeTab,
21
+ onChange = _a.onChange,
22
+ className = _a.className,
23
+ innerRef = _a.innerRef,
24
+ tabs = _a.tabs,
25
+ _b = _a.size,
26
+ size = _b === void 0 ? "m" : _b,
27
+ externalTabsRefs = _a.tabsRefs,
28
+ props = tslib.__rest(_a, ["activeTab", "onChange", "className", "innerRef", "tabs", "size", "tabsRefs"]);
29
+ var tabsRefs = externalTabsRefs || React.useMemo(function () {
30
+ return tabs.map(function () {
31
+ return /*#__PURE__*/React.createRef();
32
+ });
33
+ }, [tabs]);
34
+ var onKeyDown = React.useCallback(function (event) {
35
+ if (keyboard.isKey(event.key, [keyboard.Keys.LEFT, keyboard.Keys.DOWN, keyboard.Keys.RIGHT, keyboard.Keys.UP])) {
36
+ event.preventDefault();
37
+ var nextTabMenuIndex = 0;
38
+ var direction = keyboard.isKey(event.key, [keyboard.Keys.LEFT, keyboard.Keys.UP]) ? -1 : 1;
39
+ for (var i = 0; i < tabs.length; i++) {
40
+ if (tabs[i].id === activeTab) {
41
+ nextTabMenuIndex = i;
42
+ break;
43
+ }
44
+ }
45
+ for (var i = nextTabMenuIndex; i < tabs.length; i += direction) {
46
+ nextTabMenuIndex += direction;
47
+ var isEdge = nextTabMenuIndex >= tabs.length || nextTabMenuIndex < 0;
48
+ var isTabNonDisabled = tabs[nextTabMenuIndex] && !tabs[nextTabMenuIndex].disabled;
49
+ if (isEdge || isTabNonDisabled) {
50
+ break;
51
+ }
52
+ }
53
+ var nextTabMenu = tabs[nextTabMenuIndex];
54
+ var nextTabMenuRef = tabsRefs[nextTabMenuIndex];
55
+ if (nextTabMenu !== undefined && nextTabMenuRef !== undefined && nextTabMenuRef.current !== null && (nextTabMenu.onClick !== undefined || onChange !== undefined)) {
56
+ nextTabMenuRef.current.focus();
57
+ if (nextTabMenu.onClick !== undefined) {
58
+ nextTabMenu.onClick(event);
59
+ }
60
+ if (onChange !== undefined) {
61
+ onChange(nextTabMenuIndex.toString());
62
+ }
63
+ }
64
+ }
65
+ }, [activeTab, tabsRefs, tabs, onChange]);
66
+ return /*#__PURE__*/React__default.default.createElement("ul", tslib.__assign({}, props, {
67
+ className: clx(styles__default.default.root, className),
68
+ ref: innerRef,
69
+ role: "tablist"
70
+ }), tabs.map(function (_a, index) {
71
+ var id = _a.id,
72
+ disabled = _a.disabled,
73
+ tabProps = tslib.__rest(_a, ["id", "disabled"]);
74
+ return /*#__PURE__*/React__default.default.createElement(Tab.default, tslib.__assign({}, tabProps, {
75
+ innerRef: tabsRefs[index],
76
+ first: index === 0,
77
+ disabled: disabled,
78
+ size: size,
79
+ onClick: disabled || !onChange && !tabProps.onClick ? undefined : function (event) {
80
+ if (tabProps.onClick !== undefined) {
81
+ tabProps.onClick(event);
82
+ }
83
+ if (onChange !== undefined) {
84
+ onChange(id);
85
+ }
86
+ },
87
+ active: id === activeTab,
88
+ key: id,
89
+ onKeyDown: onKeyDown
90
+ }));
91
+ }));
92
+ };
93
+
94
+ exports.default = TabsMenu;
@@ -0,0 +1,12 @@
1
+ import type { RefObject } from "react";
2
+ import type { TabProps } from "./Tab/Tab.props";
3
+ export type Size = "s" | "m" | "l";
4
+ export type TabsMenuProps = {
5
+ activeTab?: string;
6
+ onChange?: (tabId: string) => void;
7
+ tabs: TabProps[];
8
+ tabsRefs?: RefObject<HTMLLIElement>[];
9
+ innerRef?: RefObject<HTMLUListElement>;
10
+ className?: string;
11
+ size?: Size;
12
+ };
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "../esm/TabsMenu/index.js",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -16,7 +16,7 @@
16
16
  transition-timing-function: ease;
17
17
  }
18
18
  .inner_active {
19
- background: rgb(237, 237, 237);
19
+ background: var(--palette-bg-1);
20
20
  }
21
21
  .inner_inactive {
22
22
  background: var(--palette-white);
@@ -43,15 +43,18 @@
43
43
  }
44
44
  .inner[data-size=s] {
45
45
  border-radius: 32px;
46
- height: 32px;
46
+ font-size: 15px;
47
+ line-height: 32px;
47
48
  }
48
49
  .inner[data-size=m] {
49
50
  border-radius: 36px;
50
- height: 36px;
51
+ font-size: 16px;
52
+ line-height: 36px;
51
53
  }
52
54
  .inner[data-size=l] {
53
55
  border-radius: 44px;
54
- height: 44px;
56
+ font-size: 18px;
57
+ line-height: 44px;
55
58
  }
56
59
 
57
60
  .content {
@@ -1,14 +1,4 @@
1
- import React from "react";
2
- import type { FC, ReactNode } from "react";
3
- type Size = "s" | "m" | "l";
4
- type Props = {
5
- size?: Size;
6
- testID?: string;
7
- isActive?: boolean;
8
- iconOnRight?: React.ReactNode;
9
- onClick?: () => void;
10
- onIconOnRightClick?: () => void;
11
- children?: ReactNode;
12
- };
1
+ import type { Props } from "./index.props";
2
+ import type { FC } from "react";
13
3
  declare const Chip: FC<Props>;
14
4
  export default Chip;
@@ -0,0 +1,12 @@
1
+ import type { ReactNode } from "react";
2
+ type Size = "s" | "m" | "l";
3
+ export type Props = {
4
+ size?: Size;
5
+ testID?: string;
6
+ isActive?: boolean;
7
+ iconOnRight?: React.ReactNode;
8
+ onClick?: () => void;
9
+ onIconOnRightClick?: () => void;
10
+ children?: ReactNode;
11
+ };
12
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { FC } from "react";
2
+ import type { TabProps } from "./Tab.props";
3
+ declare const Tab: FC<TabProps>;
4
+ export default Tab;
@@ -0,0 +1,31 @@
1
+ import { __rest, __assign } from 'tslib';
2
+ import React__default from 'react';
3
+ import classNames from 'classnames/bind';
4
+ import styles from './Tab.module.css';
5
+
6
+ var clx = classNames.bind(styles);
7
+ var Tab = function Tab(_a) {
8
+ var innerRef = _a.innerRef,
9
+ active = _a.active,
10
+ className = _a.className,
11
+ content = _a.content,
12
+ disabled = _a.disabled,
13
+ first = _a.first,
14
+ size = _a.size,
15
+ props = __rest(_a, ["innerRef", "active", "className", "content", "disabled", "first", "size"]);
16
+ return /*#__PURE__*/React__default.createElement("li", __assign({}, props, {
17
+ "aria-selected": active,
18
+ ref: innerRef,
19
+ className: clx(styles.tab, {
20
+ tab_inactive: !active,
21
+ tab_active: !!active,
22
+ tab_disabled: !!disabled,
23
+ tab_first: !!first
24
+ }, className),
25
+ "data-size": size,
26
+ role: "tab",
27
+ tabIndex: disabled ? undefined : active ? 0 : -1
28
+ }), content);
29
+ };
30
+
31
+ export { Tab as default };
@@ -0,0 +1,61 @@
1
+ .tab {
2
+ cursor: pointer;
3
+ display: inline-block;
4
+ margin-left: 16px;
5
+ padding: 0 20px;
6
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
7
+ transition-duration: 0.3s;
8
+ transition-property: background, box-shadow, transform;
9
+ transition-timing-function: ease;
10
+ user-select: none;
11
+ white-space: nowrap;
12
+ }
13
+ .tab[data-size=s] {
14
+ border-radius: 32px;
15
+ font-size: 15px;
16
+ line-height: 32px;
17
+ }
18
+ .tab[data-size=m] {
19
+ border-radius: 36px;
20
+ font-size: 16px;
21
+ line-height: 36px;
22
+ }
23
+ .tab[data-size=l] {
24
+ border-radius: 44px;
25
+ font-size: 18px;
26
+ line-height: 44px;
27
+ }
28
+ .tab_active {
29
+ background: var(--palette-bg-1);
30
+ }
31
+ .tab_inactive {
32
+ background: var(--palette-white);
33
+ box-shadow: rgba(193, 193, 193, 0.4) 0 5px 20px;
34
+ }
35
+ .tab_inactive:hover {
36
+ box-shadow: rgba(193, 193, 193, 0.4) 0 5px 20px;
37
+ }
38
+ .tab_inactive:active {
39
+ background: rgba(0, 0, 0, 0.02);
40
+ box-shadow: rgba(193, 193, 193, 0.4) 0 1px 3px;
41
+ outline: 0;
42
+ transition-duration: 0.15s;
43
+ }
44
+ @media (hover: none) {
45
+ .tab_inactive:hover {
46
+ box-shadow: rgba(193, 193, 193, 0.4) 0 5px 20px;
47
+ }
48
+ .tab_inactive:active {
49
+ box-shadow: rgba(193, 193, 193, 0.4) 0 1px 3px;
50
+ }
51
+ }
52
+ .tab_first {
53
+ margin-left: 0;
54
+ }
55
+ .tab_disabled {
56
+ background: #f7f8f9;
57
+ box-shadow: none;
58
+ color: var(--palette-bg-3);
59
+ cursor: not-allowed;
60
+ pointer-events: none;
61
+ }
@@ -0,0 +1,16 @@
1
+ import type { Size } from "../index.props";
2
+ import type { KeyboardEventHandler, MouseEventHandler, ReactNode, RefObject } from "react";
3
+ export type TabProps = {
4
+ id?: string;
5
+ active?: boolean;
6
+ disabled?: boolean;
7
+ first?: boolean;
8
+ content?: ReactNode;
9
+ onClick?: MouseEventHandler<HTMLLIElement>;
10
+ innerRef?: RefObject<HTMLLIElement>;
11
+ className?: string;
12
+ role?: string;
13
+ tabIndex?: number;
14
+ onKeyDown?: KeyboardEventHandler<HTMLElement>;
15
+ size?: Size;
16
+ };
@@ -0,0 +1,4 @@
1
+ .root {
2
+ margin: 0;
3
+ padding: 0;
4
+ }
@@ -0,0 +1,4 @@
1
+ import type { TabsMenuProps } from "./index.props";
2
+ import type { FC } from "react";
3
+ declare const TabsMenu: FC<TabsMenuProps>;
4
+ export default TabsMenu;
@@ -0,0 +1,84 @@
1
+ import { __rest, __assign } from 'tslib';
2
+ import React__default, { useMemo, createRef, useCallback } from 'react';
3
+ import classNames from 'classnames/bind';
4
+ import { isKey, Keys } from '../lib/keyboard.js';
5
+ import Tab from './Tab/Tab.js';
6
+ import styles from './TabsMenu.module.css';
7
+
8
+ var clx = classNames.bind(styles);
9
+ var TabsMenu = function TabsMenu(_a) {
10
+ var activeTab = _a.activeTab,
11
+ onChange = _a.onChange,
12
+ className = _a.className,
13
+ innerRef = _a.innerRef,
14
+ tabs = _a.tabs,
15
+ _b = _a.size,
16
+ size = _b === void 0 ? "m" : _b,
17
+ externalTabsRefs = _a.tabsRefs,
18
+ props = __rest(_a, ["activeTab", "onChange", "className", "innerRef", "tabs", "size", "tabsRefs"]);
19
+ var tabsRefs = externalTabsRefs || useMemo(function () {
20
+ return tabs.map(function () {
21
+ return /*#__PURE__*/createRef();
22
+ });
23
+ }, [tabs]);
24
+ var onKeyDown = useCallback(function (event) {
25
+ if (isKey(event.key, [Keys.LEFT, Keys.DOWN, Keys.RIGHT, Keys.UP])) {
26
+ event.preventDefault();
27
+ var nextTabMenuIndex = 0;
28
+ var direction = isKey(event.key, [Keys.LEFT, Keys.UP]) ? -1 : 1;
29
+ for (var i = 0; i < tabs.length; i++) {
30
+ if (tabs[i].id === activeTab) {
31
+ nextTabMenuIndex = i;
32
+ break;
33
+ }
34
+ }
35
+ for (var i = nextTabMenuIndex; i < tabs.length; i += direction) {
36
+ nextTabMenuIndex += direction;
37
+ var isEdge = nextTabMenuIndex >= tabs.length || nextTabMenuIndex < 0;
38
+ var isTabNonDisabled = tabs[nextTabMenuIndex] && !tabs[nextTabMenuIndex].disabled;
39
+ if (isEdge || isTabNonDisabled) {
40
+ break;
41
+ }
42
+ }
43
+ var nextTabMenu = tabs[nextTabMenuIndex];
44
+ var nextTabMenuRef = tabsRefs[nextTabMenuIndex];
45
+ if (nextTabMenu !== undefined && nextTabMenuRef !== undefined && nextTabMenuRef.current !== null && (nextTabMenu.onClick !== undefined || onChange !== undefined)) {
46
+ nextTabMenuRef.current.focus();
47
+ if (nextTabMenu.onClick !== undefined) {
48
+ nextTabMenu.onClick(event);
49
+ }
50
+ if (onChange !== undefined) {
51
+ onChange(nextTabMenuIndex.toString());
52
+ }
53
+ }
54
+ }
55
+ }, [activeTab, tabsRefs, tabs, onChange]);
56
+ return /*#__PURE__*/React__default.createElement("ul", __assign({}, props, {
57
+ className: clx(styles.root, className),
58
+ ref: innerRef,
59
+ role: "tablist"
60
+ }), tabs.map(function (_a, index) {
61
+ var id = _a.id,
62
+ disabled = _a.disabled,
63
+ tabProps = __rest(_a, ["id", "disabled"]);
64
+ return /*#__PURE__*/React__default.createElement(Tab, __assign({}, tabProps, {
65
+ innerRef: tabsRefs[index],
66
+ first: index === 0,
67
+ disabled: disabled,
68
+ size: size,
69
+ onClick: disabled || !onChange && !tabProps.onClick ? undefined : function (event) {
70
+ if (tabProps.onClick !== undefined) {
71
+ tabProps.onClick(event);
72
+ }
73
+ if (onChange !== undefined) {
74
+ onChange(id);
75
+ }
76
+ },
77
+ active: id === activeTab,
78
+ key: id,
79
+ onKeyDown: onKeyDown
80
+ }));
81
+ }));
82
+ };
83
+
84
+ export { TabsMenu as default };
@@ -0,0 +1,12 @@
1
+ import type { RefObject } from "react";
2
+ import type { TabProps } from "./Tab/Tab.props";
3
+ export type Size = "s" | "m" | "l";
4
+ export type TabsMenuProps = {
5
+ activeTab?: string;
6
+ onChange?: (tabId: string) => void;
7
+ tabs: TabProps[];
8
+ tabsRefs?: RefObject<HTMLLIElement>[];
9
+ innerRef?: RefObject<HTMLUListElement>;
10
+ className?: string;
11
+ size?: Size;
12
+ };
package/esm/index.d.ts CHANGED
@@ -21,6 +21,7 @@ export { default as Select } from "./Select";
21
21
  export { default as Separator } from "./Separator";
22
22
  export { SkeletonText, SkeletonRect } from "./Skeleton";
23
23
  export { default as Switch } from "./Switch";
24
+ export { default as TabsMenu } from "./TabsMenu";
24
25
  export { THEMES } from "./Theme";
25
26
  export { default as Tooltip } from "./Tooltip";
26
27
  export { default as TimeSelect } from "./TimeSelect";
package/esm/index.js CHANGED
@@ -21,6 +21,7 @@ export { default as Select } from './Select/index.js';
21
21
  export { default as Separator } from './Separator/index.js';
22
22
  export { SkeletonRect, SkeletonText } from './Skeleton/index.js';
23
23
  export { default as Switch } from './Switch/index.js';
24
+ export { default as TabsMenu } from './TabsMenu/index.js';
24
25
  export { THEMES } from './Theme/index.js';
25
26
  export { default as Tooltip } from './Tooltip/index.js';
26
27
  export { default as TimeSelect } from './TimeSelect/index.js';
@@ -0,0 +1,4 @@
1
+ export type Keys = Record<string, string> & Record<KeyboardKeys, string>;
2
+ export type KeyboardKeys = "BACKSPACE" | "TAB" | "ENTER" | "CAPS_LOCK" | "ESC" | "SPACE" | "PAGE_UP" | "PAGE_DOWN" | "END" | "HOME" | "LEFT" | "UP" | "RIGHT" | "DOWN" | "INSERT" | "DELETE" | string;
3
+ export declare const Keys: Keys;
4
+ export declare function isKey(eventKey: string, keys: Array<KeyboardKeys | string>): boolean;
@@ -0,0 +1,25 @@
1
+ var Keys = {
2
+ BACKSPACE: "Backspace",
3
+ TAB: "Tab",
4
+ ENTER: "Enter",
5
+ CAPS_LOCK: "CapsLock",
6
+ ESC: "Escape",
7
+ SPACE: " ",
8
+ PAGE_UP: "PageUp",
9
+ PAGE_DOWN: "PageDown",
10
+ END: "End",
11
+ HOME: "Home",
12
+ LEFT: "ArrowLeft",
13
+ UP: "ArrowUp",
14
+ RIGHT: "ArrowRight",
15
+ DOWN: "ArrowDown",
16
+ INSERT: "Insert",
17
+ DELETE: "Delete"
18
+ };
19
+ function isKey(eventKey, keys) {
20
+ return keys.some(function (value) {
21
+ return Keys[value] === eventKey || value === eventKey;
22
+ });
23
+ }
24
+
25
+ export { Keys, isKey };
package/index.d.ts CHANGED
@@ -21,6 +21,7 @@ export { default as Select } from "./Select";
21
21
  export { default as Separator } from "./Separator";
22
22
  export { SkeletonText, SkeletonRect } from "./Skeleton";
23
23
  export { default as Switch } from "./Switch";
24
+ export { default as TabsMenu } from "./TabsMenu";
24
25
  export { THEMES } from "./Theme";
25
26
  export { default as Tooltip } from "./Tooltip";
26
27
  export { default as TimeSelect } from "./TimeSelect";
package/index.js CHANGED
@@ -23,13 +23,14 @@ var index$j = require('./Select/index.js');
23
23
  var index$k = require('./Separator/index.js');
24
24
  var index$l = require('./Skeleton/index.js');
25
25
  var index$m = require('./Switch/index.js');
26
- var index$n = require('./Theme/index.js');
27
- var index$o = require('./Tooltip/index.js');
28
- var index$p = require('./TimeSelect/index.js');
29
- var index$q = require('./Typography/index.js');
30
- var index$r = require('./hooks/useMediaSizes/index.js');
31
- var index$s = require('./hooks/useOnClickOutside/index.js');
32
- var index$t = require('./hooks/useScrollLock/index.js');
26
+ var index$n = require('./TabsMenu/index.js');
27
+ var index$o = require('./Theme/index.js');
28
+ var index$p = require('./Tooltip/index.js');
29
+ var index$q = require('./TimeSelect/index.js');
30
+ var index$r = require('./Typography/index.js');
31
+ var index$s = require('./hooks/useMediaSizes/index.js');
32
+ var index$t = require('./hooks/useOnClickOutside/index.js');
33
+ var index$u = require('./hooks/useScrollLock/index.js');
33
34
  require('./Icons/index.js');
34
35
  var ArrowNext = require('./Icons/ArrowNext.js');
35
36
  var Cart = require('./Icons/Cart.js');
@@ -73,13 +74,14 @@ exports.Separator = index$k.default;
73
74
  exports.SkeletonRect = index$l.SkeletonRect;
74
75
  exports.SkeletonText = index$l.SkeletonText;
75
76
  exports.Switch = index$m.default;
76
- exports.THEMES = index$n.THEMES;
77
- exports.Tooltip = index$o.default;
78
- exports.TimeSelect = index$p.default;
79
- exports.Typography = index$q.default;
80
- exports.useMediaSizes = index$r.default;
81
- exports.useOnClickOutside = index$s.default;
82
- exports.useScrollLock = index$t.default;
77
+ exports.TabsMenu = index$n.default;
78
+ exports.THEMES = index$o.THEMES;
79
+ exports.Tooltip = index$p.default;
80
+ exports.TimeSelect = index$q.default;
81
+ exports.Typography = index$r.default;
82
+ exports.useMediaSizes = index$s.default;
83
+ exports.useOnClickOutside = index$t.default;
84
+ exports.useScrollLock = index$u.default;
83
85
  exports.ArrowNext = ArrowNext.default;
84
86
  exports.Cart = Cart.default;
85
87
  exports.Chevron = Chevron.default;
@@ -0,0 +1,4 @@
1
+ export type Keys = Record<string, string> & Record<KeyboardKeys, string>;
2
+ export type KeyboardKeys = "BACKSPACE" | "TAB" | "ENTER" | "CAPS_LOCK" | "ESC" | "SPACE" | "PAGE_UP" | "PAGE_DOWN" | "END" | "HOME" | "LEFT" | "UP" | "RIGHT" | "DOWN" | "INSERT" | "DELETE" | string;
3
+ export declare const Keys: Keys;
4
+ export declare function isKey(eventKey: string, keys: Array<KeyboardKeys | string>): boolean;
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var Keys = {
4
+ BACKSPACE: "Backspace",
5
+ TAB: "Tab",
6
+ ENTER: "Enter",
7
+ CAPS_LOCK: "CapsLock",
8
+ ESC: "Escape",
9
+ SPACE: " ",
10
+ PAGE_UP: "PageUp",
11
+ PAGE_DOWN: "PageDown",
12
+ END: "End",
13
+ HOME: "Home",
14
+ LEFT: "ArrowLeft",
15
+ UP: "ArrowUp",
16
+ RIGHT: "ArrowRight",
17
+ DOWN: "ArrowDown",
18
+ INSERT: "Insert",
19
+ DELETE: "Delete"
20
+ };
21
+ function isKey(eventKey, keys) {
22
+ return keys.some(function (value) {
23
+ return Keys[value] === eventKey || value === eventKey;
24
+ });
25
+ }
26
+
27
+ exports.Keys = Keys;
28
+ exports.isKey = isKey;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "colibri-ui",
3
- "version": "0.7.80",
3
+ "version": "0.7.82",
4
4
  "description": "React UI components library",
5
5
  "main": "index.js",
6
6
  "scripts": {},