@spaced-out/ui-design-system 0.0.3 → 0.0.5

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.
Files changed (52) hide show
  1. package/.cspell/custom-words.txt +2 -0
  2. package/.eslintignore +2 -1
  3. package/.github/pull_request_template.md +17 -0
  4. package/.prettierrc +27 -11
  5. package/.vscode/settings.json +7 -0
  6. package/CHANGELOG.md +14 -0
  7. package/CONTRIBUTING.md +2 -2
  8. package/README.md +4 -0
  9. package/design-tokens/border/app-border.json +3 -0
  10. package/design-tokens/border/base-border.json +3 -0
  11. package/design-tokens/color/app-color.json +8 -5
  12. package/design-tokens/size/base-size.json +6 -0
  13. package/lib/components/Avatar/Avatar.js +150 -0
  14. package/lib/components/Avatar/Avatar.js.flow +178 -0
  15. package/lib/components/Avatar/Avatar.module.css +87 -0
  16. package/lib/components/Avatar/index.js +16 -0
  17. package/lib/components/Avatar/index.js.flow +3 -0
  18. package/lib/components/AvatarGroup/AvatarGroup.js +110 -0
  19. package/lib/components/AvatarGroup/AvatarGroup.js.flow +137 -0
  20. package/lib/components/AvatarGroup/AvatarGroup.module.css +35 -0
  21. package/lib/components/AvatarGroup/index.js +16 -0
  22. package/lib/components/AvatarGroup/index.js.flow +3 -0
  23. package/lib/components/Badge/Badge.js +41 -0
  24. package/lib/components/Badge/Badge.js.flow +58 -0
  25. package/lib/components/Badge/Badge.module.css +17 -0
  26. package/lib/components/Badge/index.js +12 -0
  27. package/lib/components/Badge/index.js.flow +4 -0
  28. package/lib/components/Card/Card.js +46 -0
  29. package/lib/components/Card/Card.js.flow +56 -0
  30. package/lib/components/Card/Card.module.css +9 -0
  31. package/lib/components/Card/index.js +12 -0
  32. package/lib/components/Card/index.js.flow +4 -0
  33. package/lib/components/CircularLoader/CircularLoader.js +1 -1
  34. package/lib/components/CircularLoader/CircularLoader.js.flow +1 -1
  35. package/lib/components/Tooltip/Tooltip.js +10 -8
  36. package/lib/components/Tooltip/Tooltip.js.flow +35 -12
  37. package/lib/components/Tooltip/index.js.flow +1 -1
  38. package/lib/styles/variables/_border.css +2 -0
  39. package/lib/styles/variables/_border.js +3 -1
  40. package/lib/styles/variables/_border.js.flow +2 -0
  41. package/lib/styles/variables/_color.css +2 -0
  42. package/lib/styles/variables/_color.js +3 -1
  43. package/lib/styles/variables/_color.js.flow +2 -0
  44. package/lib/styles/variables/_size.css +4 -0
  45. package/lib/styles/variables/_size.js +5 -1
  46. package/lib/styles/variables/_size.js.flow +4 -0
  47. package/lib/utils/click-away.js +1 -1
  48. package/lib/utils/click-away.js.flow +1 -1
  49. package/lib/utils/string.js +14 -0
  50. package/lib/utils/string.js.flow +10 -0
  51. package/package.json +13 -4
  52. package/pull_request_template.md +0 -48
@@ -33,13 +33,25 @@ import {Truncate} from '../Truncate';
33
33
  import css from './Tooltip.module.css';
34
34
 
35
35
 
36
- type ClassNames = $ReadOnly<{wrapper?: string}>;
36
+ type ClassNames = $ReadOnly<{tooltip?: string}>;
37
+
38
+ export type PlacementType =
39
+ | 'top'
40
+ | 'top-start'
41
+ | 'top-end'
42
+ | 'bottom'
43
+ | 'bottom-start'
44
+ | 'bottom-end'
45
+ | 'left'
46
+ | 'right';
37
47
 
38
48
  export type TooltipProps = {
39
49
  classNames?: ClassNames,
40
- title?: string,
41
- body?: string,
42
- placement?: 'top' | 'bottom' | 'left' | 'right',
50
+ title?: string | React.Node,
51
+ body?: string | React.Node,
52
+ placement?: PlacementType,
53
+ bodyMaxLines?: number,
54
+ titleMaxLines?: number,
43
55
  // TODO(Nishant): Decide on a type to use
44
56
  // $FlowFixMe
45
57
  children: any,
@@ -51,6 +63,8 @@ export const Tooltip = ({
51
63
  title,
52
64
  body,
53
65
  placement = 'top',
66
+ bodyMaxLines = 2,
67
+ titleMaxLines = 1,
54
68
  }: TooltipProps): React.Node => {
55
69
  const [open, setOpen] = React.useState(false);
56
70
 
@@ -79,12 +93,15 @@ export const Tooltip = ({
79
93
  <>
80
94
  {React.cloneElement(
81
95
  children,
82
- getReferenceProps({ref, ...children.props}),
96
+ getReferenceProps({
97
+ ref,
98
+ ...children.props,
99
+ }),
83
100
  )}
84
101
  {open && (
85
102
  <div
86
103
  ref={floating}
87
- className={classify(css.tooltip, classNames?.wrapper)}
104
+ className={classify(css.tooltip, classNames?.tooltip)}
88
105
  style={{
89
106
  position: strategy,
90
107
  top: y ?? spaceNone,
@@ -93,15 +110,21 @@ export const Tooltip = ({
93
110
  {...getFloatingProps()}
94
111
  >
95
112
  {!!title && (
96
- <SubTitleExtraSmall color="inversePrimary">
97
- <Truncate line={1}>{title}</Truncate>
98
- </SubTitleExtraSmall>
113
+ <Truncate line={titleMaxLines}>
114
+ <SubTitleExtraSmall color="inversePrimary">
115
+ {title}
116
+ </SubTitleExtraSmall>
117
+ </Truncate>
99
118
  )}
100
119
 
101
120
  {!!body && (
102
- <BodyMedium color={!title ? 'inversePrimary' : 'inverseSecondary'}>
103
- <Truncate line={2}>{body}</Truncate>
104
- </BodyMedium>
121
+ <Truncate line={bodyMaxLines}>
122
+ <BodyMedium
123
+ color={!title ? 'inversePrimary' : 'inverseSecondary'}
124
+ >
125
+ {body}
126
+ </BodyMedium>
127
+ </Truncate>
105
128
  )}
106
129
  </div>
107
130
  )}
@@ -1,4 +1,4 @@
1
1
  // @flow strict
2
2
 
3
- export type {TooltipProps} from './Tooltip';
3
+ export type {PlacementType, TooltipProps} from './Tooltip';
4
4
  export {Tooltip} from './Tooltip';
@@ -18,4 +18,6 @@
18
18
 
19
19
  @value borderRadiusLarge: 20px;
20
20
 
21
+ @value borderRadiusXLarge: 30px;
22
+
21
23
  @value borderRadiusCircle: 50%;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.borderWidthTertiary = exports.borderWidthSecondary = exports.borderWidthPrimary = exports.borderWidthNone = exports.borderRadiusXSmall = exports.borderRadiusSmall = exports.borderRadiusRadioButton = exports.borderRadiusNone = exports.borderRadiusMedium = exports.borderRadiusLarge = exports.borderRadiusCircle = void 0;
6
+ exports.borderWidthTertiary = exports.borderWidthSecondary = exports.borderWidthPrimary = exports.borderWidthNone = exports.borderRadiusXSmall = exports.borderRadiusXLarge = exports.borderRadiusSmall = exports.borderRadiusRadioButton = exports.borderRadiusNone = exports.borderRadiusMedium = exports.borderRadiusLarge = exports.borderRadiusCircle = void 0;
7
7
 
8
8
  const borderWidthNone = '0px';
9
9
  exports.borderWidthNone = borderWidthNone;
@@ -25,5 +25,7 @@ const borderRadiusMedium = '12px';
25
25
  exports.borderRadiusMedium = borderRadiusMedium;
26
26
  const borderRadiusLarge = '20px';
27
27
  exports.borderRadiusLarge = borderRadiusLarge;
28
+ const borderRadiusXLarge = '30px';
29
+ exports.borderRadiusXLarge = borderRadiusXLarge;
28
30
  const borderRadiusCircle = '50%';
29
31
  exports.borderRadiusCircle = borderRadiusCircle;
@@ -20,4 +20,6 @@ export const borderRadiusMedium = '12px';
20
20
 
21
21
  export const borderRadiusLarge = '20px';
22
22
 
23
+ export const borderRadiusXLarge = '30px';
24
+
23
25
  export const borderRadiusCircle = '50%';
@@ -80,6 +80,8 @@
80
80
 
81
81
  @value colorButtonFillDangerPressed: #cf1945;
82
82
 
83
+ @value colorGrayLightest: #EBEBEB;
84
+
83
85
  @value colorNeutral: #706f9b;
84
86
 
85
87
  @value colorNeutralLightest: #f1f1f5;
@@ -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.colorTextSelected = exports.colorTextSecondary = exports.colorTextPrimary = exports.colorTextNeutral = exports.colorTextInverseSecondary = exports.colorTextInversePrimary = exports.colorTextInformation = exports.colorTextDisabled = exports.colorTextDanger = 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.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.colorTextSelected = exports.colorTextSecondary = exports.colorTextPrimary = exports.colorTextNeutral = exports.colorTextInverseSecondary = exports.colorTextInversePrimary = exports.colorTextInformation = exports.colorTextDisabled = exports.colorTextDanger = 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;
7
7
 
8
8
  const colorTextPrimary = '#17172A';
9
9
  exports.colorTextPrimary = colorTextPrimary;
@@ -87,6 +87,8 @@ const colorButtonFillDangerHovered = '#cf1945';
87
87
  exports.colorButtonFillDangerHovered = colorButtonFillDangerHovered;
88
88
  const colorButtonFillDangerPressed = '#cf1945';
89
89
  exports.colorButtonFillDangerPressed = colorButtonFillDangerPressed;
90
+ const colorGrayLightest = '#EBEBEB';
91
+ exports.colorGrayLightest = colorGrayLightest;
90
92
  const colorNeutral = '#706f9b';
91
93
  exports.colorNeutral = colorNeutral;
92
94
  const colorNeutralLightest = '#f1f1f5';
@@ -82,6 +82,8 @@ export const colorButtonFillDangerHovered = '#cf1945';
82
82
 
83
83
  export const colorButtonFillDangerPressed = '#cf1945';
84
84
 
85
+ export const colorGrayLightest = '#EBEBEB';
86
+
85
87
  export const colorNeutral = '#706f9b';
86
88
 
87
89
  export const colorNeutralLightest = '#f1f1f5';
@@ -14,6 +14,8 @@
14
14
 
15
15
  @value size20: 20px;
16
16
 
17
+ @value size22: 22px;
18
+
17
19
  @value size24: 24px;
18
20
 
19
21
  @value size30: 30px;
@@ -28,6 +30,8 @@
28
30
 
29
31
  @value size60: 60px;
30
32
 
33
+ @value size100: 100px;
34
+
31
35
  @value size110: 110px;
32
36
 
33
37
  @value size140: 140px;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.sizeFluid = exports.size960 = exports.size8 = exports.size720 = exports.size60 = exports.size580 = exports.size500 = exports.size5 = exports.size480 = exports.size42 = exports.size400 = exports.size40 = exports.size4 = exports.size380 = exports.size36 = exports.size34 = exports.size300 = exports.size30 = exports.size276 = exports.size240 = exports.size24 = exports.size228 = exports.size20 = exports.size2 = exports.size18 = exports.size160 = exports.size140 = exports.size12 = exports.size110 = exports.size10 = void 0;
6
+ exports.sizeFluid = exports.size960 = exports.size8 = exports.size720 = exports.size60 = exports.size580 = exports.size500 = exports.size5 = exports.size480 = exports.size42 = exports.size400 = exports.size40 = exports.size4 = exports.size380 = exports.size36 = exports.size34 = exports.size300 = exports.size30 = exports.size276 = exports.size240 = exports.size24 = exports.size228 = exports.size22 = exports.size20 = exports.size2 = exports.size18 = exports.size160 = exports.size140 = exports.size12 = exports.size110 = exports.size100 = exports.size10 = void 0;
7
7
 
8
8
  const size2 = '2px';
9
9
  exports.size2 = size2;
@@ -21,6 +21,8 @@ const size18 = '18px';
21
21
  exports.size18 = size18;
22
22
  const size20 = '20px';
23
23
  exports.size20 = size20;
24
+ const size22 = '22px';
25
+ exports.size22 = size22;
24
26
  const size24 = '24px';
25
27
  exports.size24 = size24;
26
28
  const size30 = '30px';
@@ -35,6 +37,8 @@ const size42 = '42px';
35
37
  exports.size42 = size42;
36
38
  const size60 = '60px';
37
39
  exports.size60 = size60;
40
+ const size100 = '100px';
41
+ exports.size100 = size100;
38
42
  const size110 = '110px';
39
43
  exports.size110 = size110;
40
44
  const size140 = '140px';
@@ -16,6 +16,8 @@ export const size18 = '18px';
16
16
 
17
17
  export const size20 = '20px';
18
18
 
19
+ export const size22 = '22px';
20
+
19
21
  export const size24 = '24px';
20
22
 
21
23
  export const size30 = '30px';
@@ -30,6 +32,8 @@ export const size42 = '42px';
30
32
 
31
33
  export const size60 = '60px';
32
34
 
35
+ export const size100 = '100px';
36
+
33
37
  export const size110 = '110px';
34
38
 
35
39
  export const size140 = '140px';
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.ClickAway = void 0;
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _invariant = _interopRequireDefault(require("invariant"));
9
- var _dom = require("./dom.js");
9
+ var _dom = require("./dom");
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
  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); }
12
12
  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; }
@@ -3,7 +3,7 @@
3
3
  import * as React from 'react';
4
4
  import invariant from 'invariant';
5
5
 
6
- import {pageHeight} from './dom.js';
6
+ import {pageHeight} from './dom';
7
7
 
8
8
 
9
9
  export type ChildProps = {
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.capitalize = void 0;
7
+
8
+ const capitalize = word => {
9
+ if (!word) {
10
+ return '';
11
+ }
12
+ return word.toLowerCase().replace(/\w/, firstLetter => firstLetter.toUpperCase());
13
+ };
14
+ exports.capitalize = capitalize;
@@ -0,0 +1,10 @@
1
+ // @flow strict
2
+
3
+ export const capitalize = (word: string): string => {
4
+ if (!word) {
5
+ return '';
6
+ }
7
+ return word
8
+ .toLowerCase()
9
+ .replace(/\w/, (firstLetter) => firstLetter.toUpperCase());
10
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spaced-out/ui-design-system",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "main": "index.js",
5
5
  "description": "Sense UI components library",
6
6
  "author": {
@@ -32,9 +32,10 @@
32
32
  "React",
33
33
  "Component",
34
34
  "Library",
35
- "Rollup",
36
- "Sass",
37
- "Storybook"
35
+ "Design System",
36
+ "Genesis",
37
+ "Spaced Out",
38
+ "Sense"
38
39
  ],
39
40
  "peerDependencies": {
40
41
  "react": ">=16.8.0",
@@ -103,6 +104,14 @@
103
104
  "style-dictionary": "^3.7.1",
104
105
  "all-contributors-cli": "^6.20.0"
105
106
  },
107
+ "homepage": "https://spaced-out.github.io/ui-design-system",
108
+ "repository": {
109
+ "type": "git",
110
+ "url": "git+ssh://git@github.com/spaced-out/ui-design-system.git"
111
+ },
112
+ "bugs": {
113
+ "url": "https://github.com/spaced-out/ui-design-system/issues"
114
+ },
106
115
  "husky": {
107
116
  "hooks": {
108
117
  "pre-commit": "lint-staged",
@@ -1,48 +0,0 @@
1
- * **Please check if the PR fulfills these requirements**
2
- - [ ] The commit message follows our guidelines
3
- - [ ] Tests for the changes have been added (for bug fixes / features)
4
- - [ ] Docs have been added / updated (for bug fixes / features)
5
-
6
-
7
- * **Other information**:
8
-
9
- ### All Submissions:
10
-
11
- * [ ] Have you followed the guidelines in our Contributing document?
12
- * [ ] Have you checked to ensure there aren't other open [Pull Requests](../../../pulls) for the same update/change?
13
-
14
- <!-- You can erase any parts of this template not applicable to your Pull Request. -->
15
-
16
-
17
- ## Types of changes
18
- <!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
19
- - [ ] Bug fix (non-breaking change which fixes an issue)
20
- - [ ] New feature (non-breaking change which adds functionality)
21
- - [ ] Breaking change (fix or feature that would cause existing functionality to change)
22
-
23
- <!--- Provide a general summary of your changes in the Title above -->
24
-
25
- ## Description
26
- <!--- Describe your changes in detail -->
27
-
28
- ## Design Specs
29
- <!--- Add a link to design specs -->
30
-
31
- ## Motivation and Context
32
- <!--- Why is this change required? What problem does it solve? -->
33
- <!--- If it fixes an open issue, please link to the issue here. -->
34
-
35
- ## How has this been tested?
36
- <!--- Please describe in detail how you tested your changes. -->
37
- <!--- Include details of your testing environment, tests ran to see how -->
38
- <!--- your change affects other areas of the code, etc. -->
39
-
40
- ## Screenshots (if appropriate):
41
-
42
-
43
- ## Checklist:
44
- <!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
45
- <!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
46
- - [ ] My code follows the code style of this project.
47
- - [ ] My change requires a change to the documentation.
48
- - [ ] I have updated the documentation accordingly.