@spaced-out/ui-design-system 0.1.66 → 0.1.68

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.
@@ -46,6 +46,7 @@ proxysense
46
46
  rerouter
47
47
  rgba
48
48
  sbdocs
49
+ senseai
49
50
  Stapleton
50
51
  storysource
51
52
  superrover
@@ -59,6 +60,7 @@ Typeahead
59
60
  typeof
60
61
  valuenow
61
62
  Verda
63
+ vish
62
64
  xmark
63
65
  yourcomponentname
64
66
  yxxx
package/CHANGELOG.md CHANGED
@@ -2,6 +2,32 @@
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.1.68](https://github.com/spaced-out/ui-design-system/compare/v0.1.67...v0.1.68) (2023-12-04)
6
+
7
+
8
+ ### Features
9
+
10
+ * bulk action buttons and table inline edit ([#155](https://github.com/spaced-out/ui-design-system/issues/155)) ([7ae82fc](https://github.com/spaced-out/ui-design-system/commit/7ae82fc6f3fba77f53d7a2269d7a4df675c6d69f))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * circular loader extra space ([#154](https://github.com/spaced-out/ui-design-system/issues/154)) ([a6ce232](https://github.com/spaced-out/ui-design-system/commit/a6ce2326edc4ce7779471f171d70ba2f33203cfc))
16
+
17
+ ### [0.1.67](https://github.com/spaced-out/ui-design-system/compare/v0.1.66...v0.1.67) (2023-11-10)
18
+
19
+
20
+ ### Features
21
+
22
+ * tooltip now accepts elevation as an enum ([c2c2548](https://github.com/spaced-out/ui-design-system/commit/c2c254895e343cfcfe336b416d5341ac06d07ba6))
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * add senseai to side menu link ([#151](https://github.com/spaced-out/ui-design-system/issues/151)) ([fec9cab](https://github.com/spaced-out/ui-design-system/commit/fec9cab34a2be35e89ce4c72968451ae6cac3444))
28
+ * button overflow fix ([#153](https://github.com/spaced-out/ui-design-system/issues/153)) ([932ea91](https://github.com/spaced-out/ui-design-system/commit/932ea91a5d75c3044998efb6bf4f0e27357dd8e9))
29
+ * table column fixes ([4aefc17](https://github.com/spaced-out/ui-design-system/commit/4aefc175d6f24b7fd6eea425f68f38712f478488))
30
+
5
31
  ### [0.1.66](https://github.com/spaced-out/ui-design-system/compare/v0.1.65...v0.1.66) (2023-11-06)
6
32
 
7
33
 
@@ -105,6 +105,20 @@
105
105
  "value": "{baseColor.indigo.940.70.value}"
106
106
  },
107
107
  "button-fill": {
108
+ "tableAction": {
109
+ "enabled": {
110
+ "value": "{baseColor.purple.600.value}"
111
+ },
112
+ "hovered": {
113
+ "value": "{baseColor.purple.700.value}"
114
+ },
115
+ "pressed": {
116
+ "value": "{baseColor.purple.700.value}"
117
+ },
118
+ "border": {
119
+ "value": "{baseColor.purple.400.value}"
120
+ }
121
+ },
108
122
  "primary": {
109
123
  "enabled": {
110
124
  "value": "{baseColor.purple.500.value}"
@@ -129,6 +129,9 @@
129
129
  "960": {
130
130
  "value": "960px"
131
131
  },
132
+ "1280": {
133
+ "value": "1280px"
134
+ },
132
135
  "fluid": {
133
136
  "value": "100%"
134
137
  },
@@ -111,7 +111,7 @@ const Button = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
111
111
  }), /*#__PURE__*/React.createElement("div", {
112
112
  className: _ButtonModule.default.buttonRow
113
113
  }, !(iconLeftName || iconRightName) ? /*#__PURE__*/React.createElement("div", {
114
- className: _ButtonModule.default.textContainer
114
+ className: (0, _classify.classify)(_ButtonModule.default.textContainer, classNames?.text)
115
115
  }, isLoading && /*#__PURE__*/React.createElement("div", {
116
116
  className: _ButtonModule.default.loader
117
117
  }, /*#__PURE__*/React.createElement(_CircularLoader.CircularLoader, {
@@ -147,7 +147,7 @@ const Button = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
147
147
  [_ButtonModule.default.hidden]: isLoading
148
148
  }, classNames?.icon)
149
149
  }), /*#__PURE__*/React.createElement("div", {
150
- className: _ButtonModule.default.textContainer
150
+ className: (0, _classify.classify)(_ButtonModule.default.textContainer, classNames?.text)
151
151
  }, isLoading && /*#__PURE__*/React.createElement("div", {
152
152
  className: _ButtonModule.default.loader
153
153
  }, /*#__PURE__*/React.createElement(_CircularLoader.CircularLoader, {
@@ -11,7 +11,7 @@ import {Truncate} from '../Truncate';
11
11
  import css from './Button.module.css';
12
12
 
13
13
 
14
- type ClassNames = $ReadOnly<{wrapper?: string, icon?: string}>;
14
+ type ClassNames = $ReadOnly<{wrapper?: string, icon?: string, text?: string}>;
15
15
 
16
16
  export const BUTTON_TYPES = Object.freeze({
17
17
  primary: 'primary',
@@ -162,7 +162,7 @@ export const Button: React$AbstractComponent<ButtonProps, HTMLButtonElement> =
162
162
  <div className={css.buttonRow}>
163
163
  {/* Has no icon, only child */}
164
164
  {!(iconLeftName || iconRightName) ? (
165
- <div className={css.textContainer}>
165
+ <div className={classify(css.textContainer, classNames?.text)}>
166
166
  {isLoading && (
167
167
  <div className={css.loader}>
168
168
  <CircularLoader
@@ -223,7 +223,7 @@ export const Button: React$AbstractComponent<ButtonProps, HTMLButtonElement> =
223
223
  )}
224
224
  />
225
225
  )}
226
- <div className={css.textContainer}>
226
+ <div className={classify(css.textContainer, classNames?.text)}>
227
227
  {isLoading && (
228
228
  <div className={css.loader}>
229
229
  <CircularLoader
@@ -15,27 +15,29 @@
15
15
  @value spinnerSize: size60;
16
16
  @value spinnerThickness: size5;
17
17
 
18
- @value innerCircleSize: calc(spinnerSize - 2 * spinnerThickness);
19
-
20
- @value innerMaskGradient: radial-gradient(farthest-side, colorFillNone calc(99% - spinnerThickness), colorFillPrimary calc(100% - spinnerThickness));
18
+ @value innerMaskGradient: radial-gradient(farthest-side, colorFillNone calc(99% - var(--spinner-thickness)), colorFillPrimary calc(100% - var(--spinner-thickness)));
21
19
 
22
20
  .container {
23
21
  display: flex;
24
22
  justify-content: flex-start;
25
23
  align-items: flex-start;
24
+ --spinner-size: spinnerSize;
25
+ --spinner-thickness: spinnerThickness;
26
26
  }
27
27
 
28
28
  .mediumContainer {
29
- transform: scale(0.5);
29
+ --spinner-size: calc(0.5 * spinnerSize);
30
+ --spinner-thickness: calc(0.5 * spinnerThickness);
30
31
  }
31
32
 
32
33
  .smallContainer {
33
- transform: scale(0.36);
34
+ --spinner-size: calc(0.36 * spinnerSize);
35
+ --spinner-thickness: calc(0.36 * spinnerThickness);
34
36
  }
35
37
 
36
38
  .spinLoader {
37
- height: spinnerSize;
38
- width: spinnerSize;
39
+ height: var(--spinner-size);
40
+ width: var(--spinner-size);
39
41
  display: block;
40
42
  position: relative;
41
43
  animation: spin motionDurationSlowest linear 0s infinite normal;
@@ -46,9 +48,9 @@
46
48
  --color: colorFillPrimary;
47
49
  display: block;
48
50
  position: absolute;
49
- border-radius: calc(spinnerSize/2);
50
- height: spinnerSize;
51
- width: spinnerSize;
51
+ border-radius: calc(var(--spinner-size) / 2);
52
+ height: var(--spinner-size);
53
+ width: var(--spinner-size);
52
54
  top: spaceNone;
53
55
  right: spaceNone;
54
56
  background: conic-gradient(
@@ -63,18 +65,20 @@
63
65
  .ellipse {
64
66
  --color: colorFillPrimary;
65
67
  position: absolute;
66
- left: calc(spinnerSize - spinnerThickness);
67
68
  right: spaceNone;
68
69
  top: spaceNone;
69
70
  bottom: spaceNone;
70
- border-radius: calc(spinnerThickness/2);
71
- height: spinnerThickness;
72
- width: spinnerThickness;
71
+ border-radius: calc(var(--spinner-thickness) / 2);
72
+ height: var(--spinner-thickness);
73
+ width: var(--spinner-thickness);
73
74
  margin: auto;
74
75
  background: var(--color);
75
76
  }
76
77
 
77
78
  @keyframes spin {
79
+ from {
80
+ transform: rotate(0deg);
81
+ }
78
82
  to {
79
83
  transform: rotate(360deg);
80
84
  }
@@ -23,6 +23,7 @@ const SemanticIcon = _ref => {
23
23
  return /*#__PURE__*/React.createElement(React.Fragment, null, !!iconProps.name && /*#__PURE__*/React.createElement("div", {
24
24
  className: (0, _classify.default)(_SemanticIconModule.default.iconContainer, _SemanticIconModule.default[semantic], classNames?.wrapper)
25
25
  }, /*#__PURE__*/React.createElement(_Icon.Icon, _extends({}, iconProps, {
26
+ className: (0, _classify.default)(iconProps.className, classNames?.icon),
26
27
  color: _typography.TEXT_COLORS[semantic],
27
28
  type: type
28
29
  }))));
@@ -35,7 +35,12 @@ export const SemanticIcon = ({
35
35
  classNames?.wrapper,
36
36
  )}
37
37
  >
38
- <Icon {...iconProps} color={TEXT_COLORS[semantic]} type={type} />
38
+ <Icon
39
+ {...iconProps}
40
+ className={classify(iconProps.className, classNames?.icon)}
41
+ color={TEXT_COLORS[semantic]}
42
+ type={type}
43
+ />
39
44
  </div>
40
45
  )}
41
46
  </>
@@ -17,98 +17,87 @@ const MENU_NAME_LIST = Object.freeze({
17
17
  dashboard: {
18
18
  title: 'Dashboard',
19
19
  iconName: 'house',
20
- iconType: 'duotone',
21
- iconSwapOpacity: false
20
+ iconType: 'duotone'
22
21
  },
23
22
  engage: {
24
23
  title: 'Engage',
25
24
  iconName: 'bullseye-pointer',
26
- iconType: 'duotone',
27
- iconSwapOpacity: false
25
+ iconType: 'duotone'
28
26
  },
29
27
  trm: {
30
28
  title: 'TRM',
31
29
  iconName: 'screen-users',
32
- iconType: 'duotone',
33
- iconSwapOpacity: true
30
+ iconType: 'duotone'
34
31
  },
35
32
  analytics: {
36
33
  title: 'Analytics',
37
34
  iconName: 'chart-column',
38
- iconType: 'duotone',
39
- iconSwapOpacity: true
35
+ iconType: 'duotone'
40
36
  },
41
37
  messaging: {
42
38
  title: 'Messaging',
43
39
  iconName: 'messages',
44
- iconType: 'duotone',
45
- iconSwapOpacity: true
40
+ iconType: 'duotone'
46
41
  },
47
42
  chatbot: {
48
43
  title: 'Chatbot',
49
44
  iconName: 'message-bot',
50
- iconType: 'duotone',
51
- iconSwapOpacity: true
45
+ iconType: 'duotone'
52
46
  },
53
47
  referrals: {
54
48
  title: 'Referrals',
55
49
  iconName: 'user-check',
56
- iconType: 'duotone',
57
- iconSwapOpacity: true
50
+ iconType: 'duotone'
58
51
  },
59
52
  records: {
60
53
  title: 'Records',
61
54
  iconName: 'folder-open',
62
- iconType: 'duotone',
63
- iconSwapOpacity: true
55
+ iconType: 'duotone'
64
56
  },
65
57
  bulkCleanup: {
66
58
  title: 'Bulk Cleanup',
67
59
  iconName: 'retweet',
68
- iconType: 'duotone',
69
- iconSwapOpacity: true
60
+ iconType: 'duotone'
70
61
  },
71
62
  support: {
72
63
  title: 'Support',
73
64
  iconName: 'headset',
74
- iconType: 'duotone',
75
- iconSwapOpacity: true
65
+ iconType: 'duotone'
76
66
  },
77
67
  audit: {
78
68
  title: 'Audit',
79
69
  iconName: 'print-magnifying-glass',
80
- iconType: 'duotone',
81
- iconSwapOpacity: true
70
+ iconType: 'duotone'
82
71
  },
83
72
  timeline: {
84
73
  title: 'Timeline',
85
74
  iconName: 'timeline',
86
- iconType: 'duotone',
87
- iconSwapOpacity: true
75
+ iconType: 'duotone'
88
76
  },
89
77
  people: {
90
78
  title: 'People',
91
79
  iconName: 'people-group',
92
- iconType: 'duotone',
93
- iconSwapOpacity: true
80
+ iconType: 'duotone'
94
81
  },
95
82
  contacts: {
96
83
  title: 'Contacts',
97
84
  iconName: 'address-card',
98
- iconType: 'duotone',
99
- iconSwapOpacity: true
85
+ iconType: 'duotone'
100
86
  },
101
87
  contacts2: {
102
88
  title: 'Contacts',
103
89
  iconName: 'calendars',
104
- iconType: 'duotone',
105
- iconSwapOpacity: true
90
+ iconType: 'duotone'
106
91
  },
107
92
  contacts3: {
108
93
  title: 'Contacts',
109
94
  iconName: 'browser',
110
- iconType: 'duotone',
111
- iconSwapOpacity: true
95
+ iconType: 'duotone'
96
+ },
97
+ senseai: {
98
+ title: 'AI Copilot',
99
+ iconName: 'sparkles',
100
+ iconType: 'duotone'
112
101
  }
113
102
  });
114
103
  exports.MENU_NAME_LIST = MENU_NAME_LIST;
@@ -122,8 +111,8 @@ const SideMenuLink = /*#__PURE__*/React.forwardRef((_ref, ref) => {
122
111
  onChange
123
112
  } = _ref;
124
113
  const selected = selectedValue === pageNameKey;
125
- const onChangeHandler = () => {
126
- onChange && onChange(pageNameKey);
114
+ const onChangeHandler = e => {
115
+ onChange && onChange(e, pageNameKey);
127
116
  };
128
117
  return /*#__PURE__*/React.createElement("div", {
129
118
  className: (0, _classify.default)(_SideMenuLinkModule.default.linkWrapper, {
@@ -14,97 +14,86 @@ export const MENU_NAME_LIST = Object.freeze({
14
14
  title: 'Dashboard',
15
15
  iconName: 'house',
16
16
  iconType: 'duotone',
17
- iconSwapOpacity: false,
18
17
  },
19
18
  engage: {
20
19
  title: 'Engage',
21
20
  iconName: 'bullseye-pointer',
22
21
  iconType: 'duotone',
23
- iconSwapOpacity: false,
24
22
  },
25
23
  trm: {
26
24
  title: 'TRM',
27
25
  iconName: 'screen-users',
28
26
  iconType: 'duotone',
29
- iconSwapOpacity: true,
30
27
  },
31
28
  analytics: {
32
29
  title: 'Analytics',
33
30
  iconName: 'chart-column',
34
31
  iconType: 'duotone',
35
- iconSwapOpacity: true,
36
32
  },
37
33
  messaging: {
38
34
  title: 'Messaging',
39
35
  iconName: 'messages',
40
36
  iconType: 'duotone',
41
- iconSwapOpacity: true,
42
37
  },
43
38
  chatbot: {
44
39
  title: 'Chatbot',
45
40
  iconName: 'message-bot',
46
41
  iconType: 'duotone',
47
- iconSwapOpacity: true,
48
42
  },
49
43
  referrals: {
50
44
  title: 'Referrals',
51
45
  iconName: 'user-check',
52
46
  iconType: 'duotone',
53
- iconSwapOpacity: true,
54
47
  },
55
48
  records: {
56
49
  title: 'Records',
57
50
  iconName: 'folder-open',
58
51
  iconType: 'duotone',
59
- iconSwapOpacity: true,
60
52
  },
61
53
  bulkCleanup: {
62
54
  title: 'Bulk Cleanup',
63
55
  iconName: 'retweet',
64
56
  iconType: 'duotone',
65
- iconSwapOpacity: true,
66
57
  },
67
58
  support: {
68
59
  title: 'Support',
69
60
  iconName: 'headset',
70
61
  iconType: 'duotone',
71
- iconSwapOpacity: true,
72
62
  },
73
63
  audit: {
74
64
  title: 'Audit',
75
65
  iconName: 'print-magnifying-glass',
76
66
  iconType: 'duotone',
77
- iconSwapOpacity: true,
78
67
  },
79
68
  timeline: {
80
69
  title: 'Timeline',
81
70
  iconName: 'timeline',
82
71
  iconType: 'duotone',
83
- iconSwapOpacity: true,
84
72
  },
85
73
  people: {
86
74
  title: 'People',
87
75
  iconName: 'people-group',
88
76
  iconType: 'duotone',
89
- iconSwapOpacity: true,
90
77
  },
91
78
  contacts: {
92
79
  title: 'Contacts',
93
80
  iconName: 'address-card',
94
81
  iconType: 'duotone',
95
- iconSwapOpacity: true,
96
82
  },
97
83
  contacts2: {
98
84
  title: 'Contacts',
99
85
  iconName: 'calendars',
100
86
  iconType: 'duotone',
101
- iconSwapOpacity: true,
102
87
  },
103
88
  contacts3: {
104
89
  title: 'Contacts',
105
90
  iconName: 'browser',
106
91
  iconType: 'duotone',
107
- iconSwapOpacity: true,
92
+ },
93
+ senseai: {
94
+ title: 'AI Copilot',
95
+ iconName: 'sparkles',
96
+ iconType: 'duotone',
108
97
  },
109
98
  });
110
99
 
@@ -118,7 +107,7 @@ export type SideMenuLinkProps = {
118
107
  hovered?: boolean,
119
108
  selectedValue?: string,
120
109
  opened?: boolean,
121
- onChange?: (newValue: string) => mixed,
110
+ onChange?: (e: SyntheticEvent<HTMLElement>, newValue: string) => mixed,
122
111
  };
123
112
 
124
113
  export const SideMenuLink: React$AbstractComponent<
@@ -137,8 +126,8 @@ export const SideMenuLink: React$AbstractComponent<
137
126
  ref,
138
127
  ): React.Node => {
139
128
  const selected = selectedValue === pageNameKey;
140
- const onChangeHandler = () => {
141
- onChange && onChange(pageNameKey);
129
+ const onChangeHandler = (e: SyntheticEvent<HTMLElement>) => {
130
+ onChange && onChange(e, pageNameKey);
142
131
  };
143
132
  return (
144
133
  <div