@spaced-out/ui-design-system 0.0.15 → 0.0.16-beta.1

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
@@ -2,6 +2,25 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.0.16-beta.1](https://github.com/spaced-out/ui-design-system/compare/v0.0.16-beta.0...v0.0.16-beta.1) (2023-01-23)
6
+
7
+
8
+ ### Features
9
+
10
+ * **side-menu:** [GDS-117] side menu anatomy and tabs QA issues fix ([#50](https://github.com/spaced-out/ui-design-system/issues/50)) ([da0c237](https://github.com/spaced-out/ui-design-system/commit/da0c237ad48888f75ab83c33cf6d98624c85a3a1))
11
+
12
+ ### [0.0.16-beta.0](https://github.com/spaced-out/ui-design-system/compare/v0.0.15...v0.0.16-beta.0) (2023-01-18)
13
+
14
+
15
+ ### Features
16
+
17
+ * changed to displayName from name ([#49](https://github.com/spaced-out/ui-design-system/issues/49)) ([b91af6e](https://github.com/spaced-out/ui-design-system/commit/b91af6ecea5a93af6a857dab68dfb75e3c8d81b5))
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * secondary label story fix ([64a33c4](https://github.com/spaced-out/ui-design-system/commit/64a33c48778a725389ce7aacba305619e2a84e39))
23
+
5
24
  ### [0.0.15](https://github.com/spaced-out/ui-design-system/compare/v0.0.14...v0.0.15) (2023-01-17)
6
25
 
7
26
 
@@ -82,6 +82,11 @@
82
82
  },
83
83
  "disabled": {
84
84
  "value": "{baseColor.gray.50.value}"
85
+ },
86
+ "inverse": {
87
+ "primary": {
88
+ "value": "{baseColor.indigo.940.value}"
89
+ }
85
90
  }
86
91
  },
87
92
  "tooltip-fill": {
@@ -147,6 +152,16 @@
147
152
  }
148
153
  }
149
154
  },
155
+ "side-menu": {
156
+ "icon": {
157
+ "default": {
158
+ "value": "{baseColor.indigo.300.value}"
159
+ },
160
+ "active": {
161
+ "value": "{baseColor.white.100.value}"
162
+ }
163
+ }
164
+ },
150
165
  "gray.lightest": {
151
166
  "value": "{baseColor.gray.75.value}"
152
167
  },
@@ -123,6 +123,7 @@ const TabSlot = _ref => {
123
123
  }), children);
124
124
  };
125
125
  exports.TabSlot = TabSlot;
126
+ TabSlot.displayName = 'TabSlot';
126
127
  const RightSlot = _ref2 => {
127
128
  let {
128
129
  children,
@@ -131,6 +132,7 @@ const RightSlot = _ref2 => {
131
132
  return /*#__PURE__*/React.createElement("div", props, children);
132
133
  };
133
134
  exports.RightSlot = RightSlot;
135
+ RightSlot.displayName = 'RightSlot';
134
136
  const PageName = _ref3 => {
135
137
  let {
136
138
  children,
@@ -141,6 +143,7 @@ const PageName = _ref3 => {
141
143
  }), children);
142
144
  };
143
145
  exports.PageName = PageName;
146
+ PageName.displayName = 'PageName';
144
147
  const PageTitle = _ref4 => {
145
148
  let {
146
149
  classNames,
@@ -152,7 +155,7 @@ const PageTitle = _ref4 => {
152
155
  if (childrenArray.length) {
153
156
  const nodes = [];
154
157
  for (const child of childrenArray) {
155
- if (child?.type?.name === comp) {
158
+ if (child?.type?.displayName === comp) {
156
159
  nodes.push(child);
157
160
  }
158
161
  }
@@ -136,6 +136,8 @@ export const TabSlot = ({
136
136
  </div>
137
137
  );
138
138
 
139
+ TabSlot.displayName = 'TabSlot';
140
+
139
141
  export type RightSlotProps = {
140
142
  children?: React.Node,
141
143
  ...
@@ -145,6 +147,8 @@ export const RightSlot = ({children, ...props}: RightSlotProps): React.Node => (
145
147
  <div {...props}>{children}</div>
146
148
  );
147
149
 
150
+ RightSlot.displayName = 'RightSlot';
151
+
148
152
  export type PageNameProps = {
149
153
  children?: React.Node,
150
154
  ...
@@ -155,6 +159,7 @@ export const PageName = ({children, ...props}: PageNameProps): React.Node => (
155
159
  {children}
156
160
  </div>
157
161
  );
162
+ PageName.displayName = 'PageName';
158
163
 
159
164
  export const PageTitle = ({
160
165
  classNames,
@@ -166,7 +171,7 @@ export const PageTitle = ({
166
171
  if (childrenArray.length) {
167
172
  const nodes: React.Node[] = [];
168
173
  for (const child of childrenArray) {
169
- if (child?.type?.name === comp) {
174
+ if (child?.type?.displayName === comp) {
170
175
  nodes.push(child);
171
176
  }
172
177
  }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _PageTitle = require("./PageTitle");
7
+ Object.keys(_PageTitle).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _PageTitle[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _PageTitle[key];
14
+ }
15
+ });
16
+ });
@@ -0,0 +1,3 @@
1
+ // @flow strict
2
+
3
+ export * from './PageTitle';
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SideMenuLink = exports.MENU_NAME_LIST = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _classify = _interopRequireDefault(require("../../utils/classify"));
9
+ var _Icon = require("../Icon");
10
+ var _Text = require("../Text");
11
+ var _SideMenuLinkModule = _interopRequireDefault(require("./SideMenuLink.module.css"));
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+
16
+ const MENU_NAME_LIST = Object.freeze({
17
+ dashboard: {
18
+ title: 'Dashboard',
19
+ iconName: 'house',
20
+ iconType: 'duotone',
21
+ iconSwapOpacity: false
22
+ },
23
+ engage: {
24
+ title: 'Engage',
25
+ iconName: 'bullseye-pointer',
26
+ iconType: 'duotone',
27
+ iconSwapOpacity: false
28
+ },
29
+ trm: {
30
+ title: 'TRM',
31
+ iconName: 'screen-users',
32
+ iconType: 'duotone',
33
+ iconSwapOpacity: true
34
+ },
35
+ analytics: {
36
+ title: 'Analytics',
37
+ iconName: 'chart-column',
38
+ iconType: 'duotone',
39
+ iconSwapOpacity: true
40
+ },
41
+ messaging: {
42
+ title: 'Messaging',
43
+ iconName: 'messages',
44
+ iconType: 'duotone',
45
+ iconSwapOpacity: true
46
+ },
47
+ chatbot: {
48
+ title: 'Chatbot',
49
+ iconName: 'message-bot',
50
+ iconType: 'duotone',
51
+ iconSwapOpacity: true
52
+ },
53
+ referrals: {
54
+ title: 'Referrals',
55
+ iconName: 'user-check',
56
+ iconType: 'duotone',
57
+ iconSwapOpacity: true
58
+ },
59
+ records: {
60
+ title: 'Records',
61
+ iconName: 'folder-open',
62
+ iconType: 'duotone',
63
+ iconSwapOpacity: true
64
+ },
65
+ bulkCleanup: {
66
+ title: 'Bulk Cleanup',
67
+ iconName: 'retweet',
68
+ iconType: 'duotone',
69
+ iconSwapOpacity: true
70
+ },
71
+ support: {
72
+ title: 'Support',
73
+ iconName: 'headset',
74
+ iconType: 'duotone',
75
+ iconSwapOpacity: true
76
+ },
77
+ audit: {
78
+ title: 'Audit',
79
+ iconName: 'print-magnifying-glass',
80
+ iconType: 'duotone',
81
+ iconSwapOpacity: true
82
+ },
83
+ timeline: {
84
+ title: 'Timeline',
85
+ iconName: 'timeline',
86
+ iconType: 'duotone',
87
+ iconSwapOpacity: true
88
+ },
89
+ people: {
90
+ title: 'People',
91
+ iconName: 'people-group',
92
+ iconType: 'duotone',
93
+ iconSwapOpacity: true
94
+ },
95
+ contacts: {
96
+ title: 'Contacts',
97
+ iconName: 'address-card',
98
+ iconType: 'duotone',
99
+ iconSwapOpacity: true
100
+ },
101
+ contacts2: {
102
+ title: 'Contacts',
103
+ iconName: 'calendars',
104
+ iconType: 'duotone',
105
+ iconSwapOpacity: true
106
+ },
107
+ contacts3: {
108
+ title: 'Contacts',
109
+ iconName: 'browser',
110
+ iconType: 'duotone',
111
+ iconSwapOpacity: true
112
+ }
113
+ });
114
+ exports.MENU_NAME_LIST = MENU_NAME_LIST;
115
+ const SideMenuLink = _ref => {
116
+ let {
117
+ classNames,
118
+ pageNameKey,
119
+ disabled,
120
+ opened,
121
+ selectedValue,
122
+ onChange
123
+ } = _ref;
124
+ const selected = selectedValue === pageNameKey;
125
+ const onChangeHandler = () => {
126
+ onChange && onChange(pageNameKey);
127
+ };
128
+ return /*#__PURE__*/React.createElement("div", {
129
+ className: (0, _classify.default)(_SideMenuLinkModule.default.linkWrapper, {
130
+ [_SideMenuLinkModule.default.selected]: selected,
131
+ [_SideMenuLinkModule.default.disabled]: disabled,
132
+ [_SideMenuLinkModule.default.closed]: !opened
133
+ }, classNames?.wrapper),
134
+ onClick: onChangeHandler
135
+ }, pageNameKey && MENU_NAME_LIST[pageNameKey] ? /*#__PURE__*/React.createElement(_Icon.Icon, {
136
+ type: MENU_NAME_LIST[pageNameKey].iconType,
137
+ name: MENU_NAME_LIST[pageNameKey].iconName,
138
+ size: "medium",
139
+ color: _Text.TEXT_COLORS.inverseSecondary,
140
+ className: _SideMenuLinkModule.default.menuIcon
141
+ }) : null, pageNameKey && MENU_NAME_LIST[pageNameKey] && opened ? /*#__PURE__*/React.createElement(_Text.SubTitleSmall, {
142
+ color: _Text.TEXT_COLORS.inverseSecondary,
143
+ className: _SideMenuLinkModule.default.menuText
144
+ }, MENU_NAME_LIST[pageNameKey].title) : null);
145
+ };
146
+ exports.SideMenuLink = SideMenuLink;
@@ -0,0 +1,168 @@
1
+ // @flow strict
2
+
3
+ import * as React from 'react';
4
+
5
+ import classify from '../../utils/classify';
6
+ import {Icon} from '../Icon';
7
+ import {SubTitleSmall, TEXT_COLORS} from '../Text';
8
+
9
+ import css from './SideMenuLink.module.css';
10
+
11
+
12
+ export const MENU_NAME_LIST = Object.freeze({
13
+ dashboard: {
14
+ title: 'Dashboard',
15
+ iconName: 'house',
16
+ iconType: 'duotone',
17
+ iconSwapOpacity: false,
18
+ },
19
+ engage: {
20
+ title: 'Engage',
21
+ iconName: 'bullseye-pointer',
22
+ iconType: 'duotone',
23
+ iconSwapOpacity: false,
24
+ },
25
+ trm: {
26
+ title: 'TRM',
27
+ iconName: 'screen-users',
28
+ iconType: 'duotone',
29
+ iconSwapOpacity: true,
30
+ },
31
+ analytics: {
32
+ title: 'Analytics',
33
+ iconName: 'chart-column',
34
+ iconType: 'duotone',
35
+ iconSwapOpacity: true,
36
+ },
37
+ messaging: {
38
+ title: 'Messaging',
39
+ iconName: 'messages',
40
+ iconType: 'duotone',
41
+ iconSwapOpacity: true,
42
+ },
43
+ chatbot: {
44
+ title: 'Chatbot',
45
+ iconName: 'message-bot',
46
+ iconType: 'duotone',
47
+ iconSwapOpacity: true,
48
+ },
49
+ referrals: {
50
+ title: 'Referrals',
51
+ iconName: 'user-check',
52
+ iconType: 'duotone',
53
+ iconSwapOpacity: true,
54
+ },
55
+ records: {
56
+ title: 'Records',
57
+ iconName: 'folder-open',
58
+ iconType: 'duotone',
59
+ iconSwapOpacity: true,
60
+ },
61
+ bulkCleanup: {
62
+ title: 'Bulk Cleanup',
63
+ iconName: 'retweet',
64
+ iconType: 'duotone',
65
+ iconSwapOpacity: true,
66
+ },
67
+ support: {
68
+ title: 'Support',
69
+ iconName: 'headset',
70
+ iconType: 'duotone',
71
+ iconSwapOpacity: true,
72
+ },
73
+ audit: {
74
+ title: 'Audit',
75
+ iconName: 'print-magnifying-glass',
76
+ iconType: 'duotone',
77
+ iconSwapOpacity: true,
78
+ },
79
+ timeline: {
80
+ title: 'Timeline',
81
+ iconName: 'timeline',
82
+ iconType: 'duotone',
83
+ iconSwapOpacity: true,
84
+ },
85
+ people: {
86
+ title: 'People',
87
+ iconName: 'people-group',
88
+ iconType: 'duotone',
89
+ iconSwapOpacity: true,
90
+ },
91
+ contacts: {
92
+ title: 'Contacts',
93
+ iconName: 'address-card',
94
+ iconType: 'duotone',
95
+ iconSwapOpacity: true,
96
+ },
97
+ contacts2: {
98
+ title: 'Contacts',
99
+ iconName: 'calendars',
100
+ iconType: 'duotone',
101
+ iconSwapOpacity: true,
102
+ },
103
+ contacts3: {
104
+ title: 'Contacts',
105
+ iconName: 'browser',
106
+ iconType: 'duotone',
107
+ iconSwapOpacity: true,
108
+ },
109
+ });
110
+
111
+ type ClassNames = $ReadOnly<{wrapper?: string}>;
112
+
113
+ export type SideMenuLinkProps = {
114
+ classNames?: ClassNames,
115
+ children?: React.Node,
116
+ pageNameKey: string,
117
+ disabled?: boolean,
118
+ hovered?: boolean,
119
+ selectedValue?: string,
120
+ opened?: boolean,
121
+ onChange?: (newValue: string) => mixed,
122
+ };
123
+
124
+ export const SideMenuLink = ({
125
+ classNames,
126
+ pageNameKey,
127
+ disabled,
128
+ opened,
129
+ selectedValue,
130
+ onChange,
131
+ }: SideMenuLinkProps): React.Node => {
132
+ const selected = selectedValue === pageNameKey;
133
+ const onChangeHandler = () => {
134
+ onChange && onChange(pageNameKey);
135
+ };
136
+ return (
137
+ <div
138
+ className={classify(
139
+ css.linkWrapper,
140
+ {
141
+ [css.selected]: selected,
142
+ [css.disabled]: disabled,
143
+ [css.closed]: !opened,
144
+ },
145
+ classNames?.wrapper,
146
+ )}
147
+ onClick={onChangeHandler}
148
+ >
149
+ {pageNameKey && MENU_NAME_LIST[pageNameKey] ? (
150
+ <Icon
151
+ type={MENU_NAME_LIST[pageNameKey].iconType}
152
+ name={MENU_NAME_LIST[pageNameKey].iconName}
153
+ size="medium"
154
+ color={TEXT_COLORS.inverseSecondary}
155
+ className={css.menuIcon}
156
+ />
157
+ ) : null}
158
+ {pageNameKey && MENU_NAME_LIST[pageNameKey] && opened ? (
159
+ <SubTitleSmall
160
+ color={TEXT_COLORS.inverseSecondary}
161
+ className={css.menuText}
162
+ >
163
+ {MENU_NAME_LIST[pageNameKey].title}
164
+ </SubTitleSmall>
165
+ ) : null}
166
+ </div>
167
+ );
168
+ };
@@ -0,0 +1,62 @@
1
+ @value ( colorFillPrimary,
2
+ colorFillInversePrimary,
3
+ colorNeutralDarkest,
4
+ colorTextInverseSecondary,
5
+ colorTextInversePrimary,
6
+ colorSideMenuIconDefault,
7
+ colorSideMenuIconActive ) from '../../styles/variables/_color.css';
8
+ @value ( spaceXSmall ) from '../../styles/variables/_space.css';
9
+ @value ( size42) from '../../styles/variables/_size.css';
10
+
11
+ .fooBar {
12
+ color: colorFillPrimary;
13
+ }
14
+
15
+ .linkWrapper {
16
+ display: flex;
17
+ background: colorFillInversePrimary;
18
+ color: colorTextInverseSecondary;
19
+ display: flex;
20
+ flex-direction: row;
21
+ gap: spaceXSmall;
22
+ justify-content: flex-start;
23
+ align-items: center;
24
+ flex: auto;
25
+ height: 42px;
26
+ min-width: size42;
27
+ border-radius: 8px;
28
+ width: sizeFluid;
29
+ cursor: pointer;
30
+ }
31
+
32
+ .linkWrapper.closed {
33
+ width: size42;
34
+ }
35
+
36
+ .linkWrapper:not(.selected):hover {
37
+ background: colorNeutralDarkest;
38
+ color: colorTextInversePrimary;
39
+ }
40
+
41
+ .menuIcon {
42
+ height: size42;
43
+ width: size42;
44
+ color: colorSideMenuIconDefault;
45
+ }
46
+
47
+ .linkWrapper.selected {
48
+ background: colorFillPrimary;
49
+ color: colorTextInversePrimary;
50
+ }
51
+
52
+ .linkWrapper.selected .menuIcon {
53
+ color: colorSideMenuIconActive;
54
+ }
55
+
56
+ .linkWrapper:hover .menuIcon {
57
+ color: colorSideMenuIconActive;
58
+ }
59
+
60
+ .menuText {
61
+ color: inherit;
62
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _SideMenuLink = require("./SideMenuLink");
7
+ Object.keys(_SideMenuLink).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _SideMenuLink[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _SideMenuLink[key];
14
+ }
15
+ });
16
+ });
@@ -0,0 +1,3 @@
1
+ // @flow strict
2
+
3
+ export * from './SideMenuLink';
@@ -22,7 +22,7 @@ const TAB_SIZE = Object.freeze({
22
22
  exports.TAB_SIZE = TAB_SIZE;
23
23
  const tabSizeOptions = [...Object.keys(TAB_SIZE)];
24
24
  exports.tabSizeOptions = tabSizeOptions;
25
- const Tab = /*#__PURE__*/React.forwardRef((_ref, ref) => {
25
+ const Tab = _ref => {
26
26
  let {
27
27
  classNames,
28
28
  onSelect,
@@ -37,14 +37,17 @@ const Tab = /*#__PURE__*/React.forwardRef((_ref, ref) => {
37
37
  width,
38
38
  ...props
39
39
  } = _ref;
40
+ const ref = React.useRef(null);
40
41
  const selected = tabId && tabId === selectedTab?.tabId;
41
42
  const onClickHandler = e => {
42
43
  if (!disabled) {
44
+ e.preventDefault();
43
45
  onSelect && onSelect({
44
46
  tabId,
45
47
  label
46
48
  });
47
49
  onClick && onClick(e);
50
+ ref.current?.blur();
48
51
  }
49
52
  };
50
53
  return /*#__PURE__*/React.createElement(_Button.UnstyledButton, _extends({}, props, {
@@ -85,6 +88,6 @@ const Tab = /*#__PURE__*/React.forwardRef((_ref, ref) => {
85
88
  [_TabModule.default.disabled]: disabled === true
86
89
  })
87
90
  }, label)));
88
- });
91
+ };
89
92
  exports.Tab = Tab;
90
- Tab.name = Tab.displayName = 'Tab';
93
+ Tab.displayName = 'Tab';
@@ -37,94 +37,92 @@ export type TabProps = {
37
37
  onClick?: ?(SyntheticEvent<HTMLElement>) => mixed,
38
38
  };
39
39
 
40
- export const Tab: React$AbstractComponent<TabProps, HTMLButtonElement> =
41
- React.forwardRef<TabProps, HTMLButtonElement>(
42
- (
43
- {
44
- classNames,
45
- onSelect,
46
- size = 'medium',
47
- selectedTab,
48
- disabled = false,
49
- tabId,
50
- label,
51
- iconName,
52
- iconType,
53
- onClick,
54
- width,
55
- ...props
56
- }: TabProps,
57
- ref,
58
- ) => {
59
- const selected = tabId && tabId === selectedTab?.tabId;
60
- const onClickHandler = (e) => {
61
- if (!disabled) {
62
- onSelect && onSelect({tabId, label});
63
- onClick && onClick(e);
64
- }
65
- };
66
- return (
67
- <UnstyledButton
68
- {...props}
69
- disabled={disabled}
70
- className={classify(
71
- css.button,
72
- {
40
+ export const Tab = ({
41
+ classNames,
42
+ onSelect,
43
+ size = 'medium',
44
+ selectedTab,
45
+ disabled = false,
46
+ tabId,
47
+ label,
48
+ iconName,
49
+ iconType,
50
+ onClick,
51
+ width,
52
+ ...props
53
+ }: TabProps): React.Node => {
54
+ const ref = React.useRef(null);
55
+ const selected = tabId && tabId === selectedTab?.tabId;
56
+ const onClickHandler = (e) => {
57
+ if (!disabled) {
58
+ e.preventDefault();
59
+ onSelect && onSelect({tabId, label});
60
+ onClick && onClick(e);
61
+ ref.current?.blur();
62
+ }
63
+ };
64
+ return (
65
+ <UnstyledButton
66
+ {...props}
67
+ disabled={disabled}
68
+ className={classify(
69
+ css.button,
70
+ {
71
+ [css.selected]: selected === true,
72
+ [css.disabled]: disabled === true,
73
+ [css.mediumSize]: size === 'medium',
74
+ [css.smallSize]: size === 'small',
75
+ },
76
+ classNames?.wrapper,
77
+ )}
78
+ onClick={onClickHandler}
79
+ style={{width}}
80
+ tabIndex={disabled ? '-1' : 0}
81
+ ref={ref}
82
+ >
83
+ <span
84
+ className={classify(
85
+ css.iconTextWrap,
86
+ {
87
+ [css.selected]: selected === true,
88
+ [css.disabled]: disabled === true,
89
+ },
90
+ classNames?.iconTextWrap,
91
+ )}
92
+ >
93
+ {iconName ? (
94
+ <Icon
95
+ name={iconName}
96
+ type={iconType}
97
+ size={'medium'}
98
+ className={classify(css.icon, {
99
+ [css.disabled]: disabled === true,
100
+ })}
101
+ />
102
+ ) : null}
103
+ {size === TAB_SIZE.medium ? (
104
+ <ButtonTextMedium
105
+ color={TEXT_COLORS.secondary}
106
+ className={classify(css.tabContainer, {
107
+ [css.disabled]: disabled === true,
108
+ })}
109
+ >
110
+ {label}
111
+ </ButtonTextMedium>
112
+ ) : (
113
+ <ButtonTextSmall
114
+ color={TEXT_COLORS.secondary}
115
+ className={classify(css.tabContainer, {
73
116
  [css.selected]: selected === true,
74
117
  [css.disabled]: disabled === true,
75
- [css.mediumSize]: size === 'medium',
76
- [css.smallSize]: size === 'small',
77
- },
78
- classNames?.wrapper,
79
- )}
80
- onClick={onClickHandler}
81
- style={{width}}
82
- tabIndex={disabled ? '-1' : 0}
83
- ref={ref}
84
- >
85
- <span
86
- className={classify(
87
- css.iconTextWrap,
88
- {
89
- [css.selected]: selected === true,
90
- [css.disabled]: disabled === true,
91
- },
92
- classNames?.iconTextWrap,
93
- )}
118
+ })}
94
119
  >
95
- {iconName ? (
96
- <Icon
97
- name={iconName}
98
- type={iconType}
99
- size={'medium'}
100
- className={classify(css.icon, {
101
- [css.disabled]: disabled === true,
102
- })}
103
- />
104
- ) : null}
105
- {size === TAB_SIZE.medium ? (
106
- <ButtonTextMedium
107
- color={TEXT_COLORS.secondary}
108
- className={classify(css.tabContainer, {
109
- [css.disabled]: disabled === true,
110
- })}
111
- >
112
- {label}
113
- </ButtonTextMedium>
114
- ) : (
115
- <ButtonTextSmall
116
- color={TEXT_COLORS.secondary}
117
- className={classify(css.tabContainer, {
118
- [css.selected]: selected === true,
119
- [css.disabled]: disabled === true,
120
- })}
121
- >
122
- {label}
123
- </ButtonTextSmall>
124
- )}
125
- </span>
126
- </UnstyledButton>
127
- );
128
- },
120
+ {label}
121
+ </ButtonTextSmall>
122
+ )}
123
+ </span>
124
+ </UnstyledButton>
129
125
  );
130
- Tab.name = Tab.displayName = 'Tab';
126
+ };
127
+
128
+ Tab.displayName = 'Tab';
@@ -76,6 +76,7 @@ const ToastTitle = _ref2 => {
76
76
  return children;
77
77
  };
78
78
  exports.ToastTitle = ToastTitle;
79
+ ToastTitle.displayName = 'ToastTitle';
79
80
  const ToastBody = _ref3 => {
80
81
  let {
81
82
  children
@@ -83,6 +84,7 @@ const ToastBody = _ref3 => {
83
84
  return children;
84
85
  };
85
86
  exports.ToastBody = ToastBody;
87
+ ToastBody.displayName = 'ToastBody';
86
88
  const ToastFooter = _ref4 => {
87
89
  let {
88
90
  children,
@@ -99,14 +101,14 @@ const ToastFooter = _ref4 => {
99
101
  onClose && onClose();
100
102
  onClick && onClick(e);
101
103
  };
102
- if (child?.type?.name === 'Button' && isLast) {
104
+ if (child?.type?.displayName === 'Button' && isLast) {
103
105
  return /*#__PURE__*/React.cloneElement(child, {
104
106
  size: 'small',
105
107
  type: 'primary',
106
108
  ...child.props,
107
109
  onClick: buttonClickHandler
108
110
  });
109
- } else if (child?.type?.name === 'Button') {
111
+ } else if (child?.type?.displayName === 'Button') {
110
112
  return /*#__PURE__*/React.cloneElement(child, {
111
113
  size: 'small',
112
114
  type: 'tertiary',
@@ -122,6 +124,7 @@ const ToastFooter = _ref4 => {
122
124
  }, footerActions) : null;
123
125
  };
124
126
  exports.ToastFooter = ToastFooter;
127
+ ToastFooter.displayName = 'ToastFooter';
125
128
  const Toast = _ref5 => {
126
129
  let {
127
130
  classNames,
@@ -140,7 +143,7 @@ const Toast = _ref5 => {
140
143
  if (childrenArray.length) {
141
144
  const nodes = [];
142
145
  for (const child of childrenArray) {
143
- if (child?.type?.name === comp) {
146
+ if (child?.type?.displayName === comp) {
144
147
  nodes.push(child);
145
148
  }
146
149
  }
@@ -107,12 +107,16 @@ export type ToastTitleProps = {
107
107
 
108
108
  export const ToastTitle = ({children}: ToastTitleProps): React.Node => children;
109
109
 
110
+ ToastTitle.displayName = 'ToastTitle';
111
+
110
112
  export type ToastBodyProps = {
111
113
  children?: React.Node,
112
114
  };
113
115
 
114
116
  export const ToastBody = ({children}: ToastBodyProps): React.Node => children;
115
117
 
118
+ ToastBody.displayName = 'ToastBody';
119
+
116
120
  export type ToastFooterProps = {
117
121
  children?: React.Node,
118
122
  onClose?: () => void,
@@ -133,14 +137,14 @@ export const ToastFooter = ({
133
137
  onClick && onClick(e);
134
138
  };
135
139
 
136
- if (child?.type?.name === 'Button' && isLast) {
140
+ if (child?.type?.displayName === 'Button' && isLast) {
137
141
  return React.cloneElement(child, {
138
142
  size: 'small',
139
143
  type: 'primary',
140
144
  ...child.props,
141
145
  onClick: buttonClickHandler,
142
146
  });
143
- } else if (child?.type?.name === 'Button') {
147
+ } else if (child?.type?.displayName === 'Button') {
144
148
  return React.cloneElement(child, {
145
149
  size: 'small',
146
150
  type: 'tertiary',
@@ -157,6 +161,8 @@ export const ToastFooter = ({
157
161
  ) : null;
158
162
  };
159
163
 
164
+ ToastFooter.displayName = 'ToastFooter';
165
+
160
166
  export const Toast = ({
161
167
  classNames,
162
168
  children,
@@ -172,7 +178,7 @@ export const Toast = ({
172
178
  if (childrenArray.length) {
173
179
  const nodes: React.Node[] = [];
174
180
  for (const child of childrenArray) {
175
- if (child?.type?.name === comp) {
181
+ if (child?.type?.displayName === comp) {
176
182
  nodes.push(child);
177
183
  }
178
184
  }
@@ -46,6 +46,8 @@
46
46
 
47
47
  @value colorFillDisabled: #f4f4f4;
48
48
 
49
+ @value colorFillInversePrimary: #17172A;
50
+
49
51
  @value colorTooltipFill: rgba(23, 23, 42, 0.95);
50
52
 
51
53
  @value colorBackdropFill: rgba(23, 23, 42, 0.7);
@@ -80,6 +82,10 @@
80
82
 
81
83
  @value colorButtonFillDangerPressed: #cf1945;
82
84
 
85
+ @value colorSideMenuIconDefault: #9F9FBC;
86
+
87
+ @value colorSideMenuIconActive: #ffffff;
88
+
83
89
  @value colorGrayLightest: #EBEBEB;
84
90
 
85
91
  @value colorNeutral: #706F9B;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.colorWarningLightest = exports.colorWarningLight = exports.colorWarningDarkest = exports.colorWarningDark = exports.colorWarning = exports.colorTooltipFill = exports.colorTextWarning = exports.colorTextTertiary = exports.colorTextSuccess = exports.colorTextSecondary = exports.colorTextPrimary = exports.colorTextNeutral = exports.colorTextInverseSecondary = exports.colorTextInversePrimary = exports.colorTextInformation = exports.colorTextDisabled = exports.colorTextDanger = exports.colorTextClickable = exports.colorSuccessLightest = exports.colorSuccessLight = exports.colorSuccessDarkest = exports.colorSuccessDark = exports.colorSuccess = exports.colorNeutralLightest = exports.colorNeutralLight = exports.colorNeutralDarkest = exports.colorNeutralDark = exports.colorNeutral = exports.colorInformationLightest = exports.colorInformationLight = exports.colorInformationDarkest = exports.colorInformationDark = exports.colorInformation = exports.colorGrayLightest = exports.colorFocusPrimary = exports.colorFocusDanger = exports.colorFillSecondary = exports.colorFillPrimary = exports.colorFillNone = exports.colorFillDisabled = exports.colorDangerLightest = exports.colorDangerLight = exports.colorDangerDarkest = exports.colorDangerDark = exports.colorDanger = exports.colorButtonFillTertiaryPressed = exports.colorButtonFillTertiaryHovered = exports.colorButtonFillTertiaryEnabled = exports.colorButtonFillSecondaryPressed = exports.colorButtonFillSecondaryHovered = exports.colorButtonFillSecondaryEnabled = exports.colorButtonFillPrimaryPressed = exports.colorButtonFillPrimaryHovered = exports.colorButtonFillPrimaryEnabled = exports.colorButtonFillGhostPressed = exports.colorButtonFillGhostHovered = exports.colorButtonFillGhostEnabled = exports.colorButtonFillDangerPressed = exports.colorButtonFillDangerHovered = exports.colorButtonFillDangerEnabled = exports.colorBorderSecondary = exports.colorBorderPrimary = exports.colorBorderDanger = exports.colorBackgroundTertiary = exports.colorBackgroundSecondary = exports.colorBackgroundPrimary = exports.colorBackdropFill = void 0;
6
+ exports.colorWarningLightest = exports.colorWarningLight = exports.colorWarningDarkest = exports.colorWarningDark = exports.colorWarning = exports.colorTooltipFill = exports.colorTextWarning = exports.colorTextTertiary = exports.colorTextSuccess = exports.colorTextSecondary = exports.colorTextPrimary = exports.colorTextNeutral = exports.colorTextInverseSecondary = exports.colorTextInversePrimary = exports.colorTextInformation = exports.colorTextDisabled = exports.colorTextDanger = exports.colorTextClickable = exports.colorSuccessLightest = exports.colorSuccessLight = exports.colorSuccessDarkest = exports.colorSuccessDark = exports.colorSuccess = exports.colorSideMenuIconDefault = exports.colorSideMenuIconActive = exports.colorNeutralLightest = exports.colorNeutralLight = exports.colorNeutralDarkest = exports.colorNeutralDark = exports.colorNeutral = exports.colorInformationLightest = exports.colorInformationLight = exports.colorInformationDarkest = exports.colorInformationDark = exports.colorInformation = exports.colorGrayLightest = exports.colorFocusPrimary = exports.colorFocusDanger = exports.colorFillSecondary = exports.colorFillPrimary = exports.colorFillNone = exports.colorFillInversePrimary = exports.colorFillDisabled = exports.colorDangerLightest = exports.colorDangerLight = exports.colorDangerDarkest = exports.colorDangerDark = exports.colorDanger = exports.colorButtonFillTertiaryPressed = exports.colorButtonFillTertiaryHovered = exports.colorButtonFillTertiaryEnabled = exports.colorButtonFillSecondaryPressed = exports.colorButtonFillSecondaryHovered = exports.colorButtonFillSecondaryEnabled = exports.colorButtonFillPrimaryPressed = exports.colorButtonFillPrimaryHovered = exports.colorButtonFillPrimaryEnabled = exports.colorButtonFillGhostPressed = exports.colorButtonFillGhostHovered = exports.colorButtonFillGhostEnabled = exports.colorButtonFillDangerPressed = exports.colorButtonFillDangerHovered = exports.colorButtonFillDangerEnabled = exports.colorBorderSecondary = exports.colorBorderPrimary = exports.colorBorderDanger = exports.colorBackgroundTertiary = exports.colorBackgroundSecondary = exports.colorBackgroundPrimary = exports.colorBackdropFill = void 0;
7
7
 
8
8
  const colorTextPrimary = '#17172A';
9
9
  exports.colorTextPrimary = colorTextPrimary;
@@ -53,6 +53,8 @@ const colorFillNone = 'rgba(255,255,255,0)';
53
53
  exports.colorFillNone = colorFillNone;
54
54
  const colorFillDisabled = '#f4f4f4';
55
55
  exports.colorFillDisabled = colorFillDisabled;
56
+ const colorFillInversePrimary = '#17172A';
57
+ exports.colorFillInversePrimary = colorFillInversePrimary;
56
58
  const colorTooltipFill = 'rgba(23, 23, 42, 0.95)';
57
59
  exports.colorTooltipFill = colorTooltipFill;
58
60
  const colorBackdropFill = 'rgba(23, 23, 42, 0.7)';
@@ -87,6 +89,10 @@ const colorButtonFillDangerHovered = '#cf1945';
87
89
  exports.colorButtonFillDangerHovered = colorButtonFillDangerHovered;
88
90
  const colorButtonFillDangerPressed = '#cf1945';
89
91
  exports.colorButtonFillDangerPressed = colorButtonFillDangerPressed;
92
+ const colorSideMenuIconDefault = '#9F9FBC';
93
+ exports.colorSideMenuIconDefault = colorSideMenuIconDefault;
94
+ const colorSideMenuIconActive = '#ffffff';
95
+ exports.colorSideMenuIconActive = colorSideMenuIconActive;
90
96
  const colorGrayLightest = '#EBEBEB';
91
97
  exports.colorGrayLightest = colorGrayLightest;
92
98
  const colorNeutral = '#706F9B';
@@ -48,6 +48,8 @@ export const colorFillNone = 'rgba(255,255,255,0)';
48
48
 
49
49
  export const colorFillDisabled = '#f4f4f4';
50
50
 
51
+ export const colorFillInversePrimary = '#17172A';
52
+
51
53
  export const colorTooltipFill = 'rgba(23, 23, 42, 0.95)';
52
54
 
53
55
  export const colorBackdropFill = 'rgba(23, 23, 42, 0.7)';
@@ -82,6 +84,10 @@ export const colorButtonFillDangerHovered = '#cf1945';
82
84
 
83
85
  export const colorButtonFillDangerPressed = '#cf1945';
84
86
 
87
+ export const colorSideMenuIconDefault = '#9F9FBC';
88
+
89
+ export const colorSideMenuIconActive = '#ffffff';
90
+
85
91
  export const colorGrayLightest = '#EBEBEB';
86
92
 
87
93
  export const colorNeutral = '#706F9B';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spaced-out/ui-design-system",
3
- "version": "0.0.15",
3
+ "version": "0.0.16-beta.1",
4
4
  "main": "index.js",
5
5
  "description": "Sense UI components library",
6
6
  "author": {