@spaced-out/ui-design-system 0.0.1-alpha.0

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 (259) hide show
  1. package/.commitlintrc.json +3 -0
  2. package/.cspell/custom-words.txt +22 -0
  3. package/.editorconfig +9 -0
  4. package/.eslintignore +1 -0
  5. package/.eslintrc.yml +122 -0
  6. package/.flowconfig +45 -0
  7. package/.github/workflows/pages.yml +52 -0
  8. package/.prettierrc +11 -0
  9. package/.storybook/SenseTheme.js +12 -0
  10. package/.storybook/main.js +73 -0
  11. package/.storybook/manager-head.html +41 -0
  12. package/.storybook/manager.js +14 -0
  13. package/.storybook/preview-head.html +130 -0
  14. package/.storybook/preview.js +128 -0
  15. package/.storybook/public/favicon.ico +0 -0
  16. package/.storybook/public/favicon.svg +6 -0
  17. package/.storybook/public/fonts/CentraNo2-Book.woff +0 -0
  18. package/.storybook/public/fonts/CentraNo2-Book.woff2 +0 -0
  19. package/.storybook/public/fonts/CentraNo2-BookItalic.woff +0 -0
  20. package/.storybook/public/fonts/CentraNo2-BookItalic.woff2 +0 -0
  21. package/.storybook/public/fonts/CentraNo2-Medium.woff +0 -0
  22. package/.storybook/public/fonts/CentraNo2-Medium.woff2 +0 -0
  23. package/.vscode/extensions.json +3 -0
  24. package/CHANGELOG.md +73 -0
  25. package/README.md +178 -0
  26. package/babel.config.js +24 -0
  27. package/config.js +58 -0
  28. package/cspell.json +26 -0
  29. package/design-tokens/border/app-border.json +41 -0
  30. package/design-tokens/border/base-border.json +41 -0
  31. package/design-tokens/color/app-color.json +226 -0
  32. package/design-tokens/color/base-color.json +265 -0
  33. package/design-tokens/elevation/app-elevation.json +22 -0
  34. package/design-tokens/elevation/base-elevation.json +19 -0
  35. package/design-tokens/font/base-font.json +98 -0
  36. package/design-tokens/index.js +5 -0
  37. package/design-tokens/motion/app.motion.json +24 -0
  38. package/design-tokens/motion/base-motion.json +40 -0
  39. package/design-tokens/opacity/base-opacity.json +49 -0
  40. package/design-tokens/shadow/base-shadow.json +86 -0
  41. package/design-tokens/size/base-size.json +94 -0
  42. package/design-tokens/space/app-space.json +40 -0
  43. package/design-tokens/space/base-space.json +40 -0
  44. package/flow-typed/npm/lodash_v4.x.x.js +6407 -0
  45. package/git-conventional-commits.json +43 -0
  46. package/gulpfile.js +48 -0
  47. package/jest.config.js +9 -0
  48. package/lib/assets/fontawesome/LICENSE.txt +18 -0
  49. package/lib/assets/fontawesome/css/all.min.css +27184 -0
  50. package/lib/assets/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  51. package/lib/assets/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  52. package/lib/assets/fontawesome/webfonts/fa-duotone-900.ttf +0 -0
  53. package/lib/assets/fontawesome/webfonts/fa-duotone-900.woff2 +0 -0
  54. package/lib/assets/fontawesome/webfonts/fa-light-300.ttf +0 -0
  55. package/lib/assets/fontawesome/webfonts/fa-light-300.woff2 +0 -0
  56. package/lib/assets/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  57. package/lib/assets/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  58. package/lib/assets/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  59. package/lib/assets/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  60. package/lib/assets/fontawesome/webfonts/fa-thin-100.ttf +0 -0
  61. package/lib/assets/fontawesome/webfonts/fa-thin-100.woff2 +0 -0
  62. package/lib/assets/fontawesome/webfonts/fa-v4compatibility.ttf +0 -0
  63. package/lib/assets/fontawesome/webfonts/fa-v4compatibility.woff2 +0 -0
  64. package/lib/components/Button/Button.js +120 -0
  65. package/lib/components/Button/Button.js.flow +166 -0
  66. package/lib/components/Button/Button.module.css +226 -0
  67. package/lib/components/Button/index.js +24 -0
  68. package/lib/components/Button/index.js.flow +4 -0
  69. package/lib/components/ButtonDropdown/ButtonDropdown.js +89 -0
  70. package/lib/components/ButtonDropdown/ButtonDropdown.js.flow +119 -0
  71. package/lib/components/ButtonDropdown/ButtonDropdown.module.css +4 -0
  72. package/lib/components/ButtonDropdown/index.js +12 -0
  73. package/lib/components/ButtonDropdown/index.js.flow +4 -0
  74. package/lib/components/Checkbox/Checkbox.js +99 -0
  75. package/lib/components/Checkbox/Checkbox.js.flow +133 -0
  76. package/lib/components/Checkbox/Checkbox.module.css +160 -0
  77. package/lib/components/Checkbox/CheckboxGroup.js +85 -0
  78. package/lib/components/Checkbox/CheckboxGroup.js.flow +105 -0
  79. package/lib/components/Checkbox/CheckboxGroup.module.css +47 -0
  80. package/lib/components/Checkbox/index.js +19 -0
  81. package/lib/components/Checkbox/index.js.flow +3 -0
  82. package/lib/components/CircularLoader/CircularLoader.js +44 -0
  83. package/lib/components/CircularLoader/CircularLoader.js.flow +44 -0
  84. package/lib/components/CircularLoader/CircularLoader.module.css +81 -0
  85. package/lib/components/CircularLoader/index.js +12 -0
  86. package/lib/components/CircularLoader/index.js.flow +3 -0
  87. package/lib/components/CodeBlock.js +26 -0
  88. package/lib/components/CodeBlock.js.flow +19 -0
  89. package/lib/components/Dialog/Dialog.js +148 -0
  90. package/lib/components/Dialog/Dialog.js.flow +165 -0
  91. package/lib/components/Dialog/Dialog.module.css +87 -0
  92. package/lib/components/Dialog/index.js +36 -0
  93. package/lib/components/Dialog/index.js.flow +14 -0
  94. package/lib/components/Dropdown/Dropdown.js +108 -0
  95. package/lib/components/Dropdown/Dropdown.js.flow +129 -0
  96. package/lib/components/Dropdown/Dropdown.module.css +14 -0
  97. package/lib/components/Dropdown/index.js +18 -0
  98. package/lib/components/Dropdown/index.js.flow +4 -0
  99. package/lib/components/Grid/Grid.js +82 -0
  100. package/lib/components/Grid/Grid.js.flow +88 -0
  101. package/lib/components/Grid/Grid.module.css +30 -0
  102. package/lib/components/Grid/index.js +16 -0
  103. package/lib/components/Grid/index.js.flow +3 -0
  104. package/lib/components/Icon/ClickableIcon.js +51 -0
  105. package/lib/components/Icon/ClickableIcon.js.flow +51 -0
  106. package/lib/components/Icon/ClickableIcon.module.css +50 -0
  107. package/lib/components/Icon/FontAwesomeLibrary.js +3 -0
  108. package/lib/components/Icon/FontAwesomeLibrary.js.flow +3 -0
  109. package/lib/components/Icon/Icon.js +38 -0
  110. package/lib/components/Icon/Icon.js.flow +51 -0
  111. package/lib/components/Icon/index.js +25 -0
  112. package/lib/components/Icon/index.js.flow +6 -0
  113. package/lib/components/InContextAlert/InContextAlert.js +121 -0
  114. package/lib/components/InContextAlert/InContextAlert.js.flow +173 -0
  115. package/lib/components/InContextAlert/InContextAlert.module.css +54 -0
  116. package/lib/components/InContextAlert/index.js +18 -0
  117. package/lib/components/InContextAlert/index.js.flow +3 -0
  118. package/lib/components/Input/Input.js +172 -0
  119. package/lib/components/Input/Input.js.flow +246 -0
  120. package/lib/components/Input/Input.module.css +122 -0
  121. package/lib/components/Input/index.js +12 -0
  122. package/lib/components/Input/index.js.flow +4 -0
  123. package/lib/components/LinearLoader/LinearLoader.js +35 -0
  124. package/lib/components/LinearLoader/LinearLoader.js.flow +34 -0
  125. package/lib/components/LinearLoader/LinearLoader.module.css +43 -0
  126. package/lib/components/LinearLoader/index.js +12 -0
  127. package/lib/components/LinearLoader/index.js.flow +3 -0
  128. package/lib/components/Menu/Menu.js +76 -0
  129. package/lib/components/Menu/Menu.js.flow +85 -0
  130. package/lib/components/Menu/Menu.module.css +124 -0
  131. package/lib/components/Menu/index.js +12 -0
  132. package/lib/components/Menu/index.js.flow +4 -0
  133. package/lib/components/Modal/Modal.js +121 -0
  134. package/lib/components/Modal/Modal.js.flow +157 -0
  135. package/lib/components/Modal/Modal.module.css +62 -0
  136. package/lib/components/Modal/index.js +12 -0
  137. package/lib/components/Modal/index.js.flow +3 -0
  138. package/lib/components/Notification/Notification.js +89 -0
  139. package/lib/components/Notification/Notification.js.flow +136 -0
  140. package/lib/components/Notification/Notification.module.css +54 -0
  141. package/lib/components/Notification/index.js +18 -0
  142. package/lib/components/Notification/index.js.flow +3 -0
  143. package/lib/components/Panel/Panel.js +96 -0
  144. package/lib/components/Panel/Panel.js.flow +109 -0
  145. package/lib/components/Panel/Panel.module.css +77 -0
  146. package/lib/components/Panel/index.js +30 -0
  147. package/lib/components/Panel/index.js.flow +10 -0
  148. package/lib/components/RadioButton/RadioButton.js +76 -0
  149. package/lib/components/RadioButton/RadioButton.js.flow +102 -0
  150. package/lib/components/RadioButton/RadioButton.module.css +122 -0
  151. package/lib/components/RadioButton/RadioGroup.js +60 -0
  152. package/lib/components/RadioButton/RadioGroup.js.flow +85 -0
  153. package/lib/components/RadioButton/RadioGroup.module.css +47 -0
  154. package/lib/components/RadioButton/index.js +19 -0
  155. package/lib/components/RadioButton/index.js.flow +3 -0
  156. package/lib/components/SearchInput/SearchInput.js +47 -0
  157. package/lib/components/SearchInput/SearchInput.js.flow +73 -0
  158. package/lib/components/SearchInput/SearchInput.module.css +11 -0
  159. package/lib/components/SearchInput/index.js +12 -0
  160. package/lib/components/SearchInput/index.js.flow +4 -0
  161. package/lib/components/Text/Text.js +195 -0
  162. package/lib/components/Text/Text.js.flow +160 -0
  163. package/lib/components/Text/index.js +103 -0
  164. package/lib/components/Text/index.js.flow +21 -0
  165. package/lib/components/Textarea/Textarea.js +95 -0
  166. package/lib/components/Textarea/Textarea.js.flow +133 -0
  167. package/lib/components/Textarea/Textarea.module.css +110 -0
  168. package/lib/components/Textarea/index.js +12 -0
  169. package/lib/components/Textarea/index.js.flow +4 -0
  170. package/lib/components/Toast/Toast.js +187 -0
  171. package/lib/components/Toast/Toast.js.flow +210 -0
  172. package/lib/components/Toast/Toast.module.css +52 -0
  173. package/lib/components/Toast/ToastContainer.js +129 -0
  174. package/lib/components/Toast/ToastContainer.js.flow +125 -0
  175. package/lib/components/Toast/ToastContainer.module.css +41 -0
  176. package/lib/components/Toast/ToastManager.js +62 -0
  177. package/lib/components/Toast/ToastManager.js.flow +67 -0
  178. package/lib/components/Toast/index.js +56 -0
  179. package/lib/components/Toast/index.js.flow +12 -0
  180. package/lib/components/Toggle/Toggle.js +69 -0
  181. package/lib/components/Toggle/Toggle.js.flow +94 -0
  182. package/lib/components/Toggle/Toggle.module.css +144 -0
  183. package/lib/components/Toggle/index.js +12 -0
  184. package/lib/components/Toggle/index.js.flow +2 -0
  185. package/lib/components/Tooltip/Tooltip.js +81 -0
  186. package/lib/components/Tooltip/Tooltip.js.flow +110 -0
  187. package/lib/components/Tooltip/Tooltip.module.css +16 -0
  188. package/lib/components/Tooltip/index.js +12 -0
  189. package/lib/components/Tooltip/index.js.flow +4 -0
  190. package/lib/components/Truncate/Truncate.js +28 -0
  191. package/lib/components/Truncate/Truncate.js.flow +22 -0
  192. package/lib/components/Truncate/Truncate.module.css +6 -0
  193. package/lib/components/Truncate/index.js +12 -0
  194. package/lib/components/Truncate/index.js.flow +4 -0
  195. package/lib/components/Typeahead/Typeahead.js +124 -0
  196. package/lib/components/Typeahead/Typeahead.js.flow +153 -0
  197. package/lib/components/Typeahead/Typeahead.module.css +10 -0
  198. package/lib/components/Typeahead/index.js +12 -0
  199. package/lib/components/Typeahead/index.js.flow +4 -0
  200. package/lib/hooks/index.js +27 -0
  201. package/lib/hooks/index.js.flow +4 -0
  202. package/lib/hooks/useMountTransition.js +25 -0
  203. package/lib/hooks/useMountTransition.js.flow +27 -0
  204. package/lib/hooks/useToastPortal.js +32 -0
  205. package/lib/hooks/useToastPortal.js.flow +30 -0
  206. package/lib/styles/animation.module.css +9 -0
  207. package/lib/styles/border.module.css +27 -0
  208. package/lib/styles/shadow.module.css +42 -0
  209. package/lib/styles/typography.module.css +227 -0
  210. package/lib/styles/variables/_border.css +21 -0
  211. package/lib/styles/variables/_border.js +29 -0
  212. package/lib/styles/variables/_border.js.flow +23 -0
  213. package/lib/styles/variables/_color.css +131 -0
  214. package/lib/styles/variables/_color.js +139 -0
  215. package/lib/styles/variables/_color.js.flow +133 -0
  216. package/lib/styles/variables/_elevation.css +11 -0
  217. package/lib/styles/variables/_elevation.js +19 -0
  218. package/lib/styles/variables/_elevation.js.flow +13 -0
  219. package/lib/styles/variables/_font.css +51 -0
  220. package/lib/styles/variables/_font.js +59 -0
  221. package/lib/styles/variables/_font.js.flow +53 -0
  222. package/lib/styles/variables/_motion.css +11 -0
  223. package/lib/styles/variables/_motion.js +19 -0
  224. package/lib/styles/variables/_motion.js.flow +13 -0
  225. package/lib/styles/variables/_opacity.css +29 -0
  226. package/lib/styles/variables/_opacity.js +37 -0
  227. package/lib/styles/variables/_opacity.js.flow +31 -0
  228. package/lib/styles/variables/_shadow.css +47 -0
  229. package/lib/styles/variables/_shadow.js +55 -0
  230. package/lib/styles/variables/_shadow.js.flow +49 -0
  231. package/lib/styles/variables/_size.css +59 -0
  232. package/lib/styles/variables/_size.js +67 -0
  233. package/lib/styles/variables/_size.js.flow +61 -0
  234. package/lib/styles/variables/_space.css +23 -0
  235. package/lib/styles/variables/_space.js +31 -0
  236. package/lib/styles/variables/_space.js.flow +25 -0
  237. package/lib/types/common.js +1 -0
  238. package/lib/types/common.js.flow +3 -0
  239. package/lib/types/toast.js +24 -0
  240. package/lib/types/toast.js.flow +41 -0
  241. package/lib/types/typography.js +22 -0
  242. package/lib/types/typography.js.flow +18 -0
  243. package/lib/utils/classify.js +33 -0
  244. package/lib/utils/classify.js.flow +29 -0
  245. package/lib/utils/click-away.js +110 -0
  246. package/lib/utils/click-away.js.flow +134 -0
  247. package/lib/utils/dom.js +202 -0
  248. package/lib/utils/dom.js.flow +238 -0
  249. package/lib/utils/helpers.js +16 -0
  250. package/lib/utils/helpers.js.flow +11 -0
  251. package/lib/utils/makeClassNameComponent.js +58 -0
  252. package/lib/utils/makeClassNameComponent.js.flow +71 -0
  253. package/lib/utils/merge-refs.js +17 -0
  254. package/lib/utils/merge-refs.js.flow +14 -0
  255. package/lint-staged.config.js +5 -0
  256. package/package.json +114 -0
  257. package/postcss.config.js +3 -0
  258. package/pull_request_template.md +48 -0
  259. package/settings.json +3 -0
@@ -0,0 +1,61 @@
1
+ // @flow strict
2
+
3
+ export const size2 = '2px';
4
+
5
+ export const size4 = '4px';
6
+
7
+ export const size5 = '5px';
8
+
9
+ export const size8 = '8px';
10
+
11
+ export const size10 = '10px';
12
+
13
+ export const size12 = '12px';
14
+
15
+ export const size18 = '18px';
16
+
17
+ export const size20 = '20px';
18
+
19
+ export const size24 = '24px';
20
+
21
+ export const size30 = '30px';
22
+
23
+ export const size34 = '34px';
24
+
25
+ export const size36 = '36px';
26
+
27
+ export const size40 = '40px';
28
+
29
+ export const size42 = '42px';
30
+
31
+ export const size60 = '60px';
32
+
33
+ export const size110 = '110px';
34
+
35
+ export const size140 = '140px';
36
+
37
+ export const size160 = '160px';
38
+
39
+ export const size228 = '228px';
40
+
41
+ export const size240 = '240px';
42
+
43
+ export const size276 = '276px';
44
+
45
+ export const size300 = '300px';
46
+
47
+ export const size380 = '380px';
48
+
49
+ export const size400 = '400px';
50
+
51
+ export const size480 = '480px';
52
+
53
+ export const size500 = '500px';
54
+
55
+ export const size580 = '580px';
56
+
57
+ export const size720 = '720px';
58
+
59
+ export const size960 = '960px';
60
+
61
+ export const sizeFluid = '100%';
@@ -0,0 +1,23 @@
1
+ @value spaceNone: 0px;
2
+
3
+ @value spaceXXSmall: 4px;
4
+
5
+ @value spaceXSmall: 8px;
6
+
7
+ @value spaceSmall: 12px;
8
+
9
+ @value spaceMedium: 20px;
10
+
11
+ @value spaceLarge: 32px;
12
+
13
+ @value spaceXLarge: 52px;
14
+
15
+ @value spaceXXLarge: 84px;
16
+
17
+ @value spaceFluid: 100%;
18
+
19
+ @value spaceNegFluid: -100%;
20
+
21
+ @value spaceHalfFluid: 50%;
22
+
23
+ @value spaceNegHalfFluid: -50%;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.spaceXXSmall = exports.spaceXXLarge = exports.spaceXSmall = exports.spaceXLarge = exports.spaceSmall = exports.spaceNone = exports.spaceNegHalfFluid = exports.spaceNegFluid = exports.spaceMedium = exports.spaceLarge = exports.spaceHalfFluid = exports.spaceFluid = void 0;
7
+
8
+ const spaceNone = '0px';
9
+ exports.spaceNone = spaceNone;
10
+ const spaceXXSmall = '4px';
11
+ exports.spaceXXSmall = spaceXXSmall;
12
+ const spaceXSmall = '8px';
13
+ exports.spaceXSmall = spaceXSmall;
14
+ const spaceSmall = '12px';
15
+ exports.spaceSmall = spaceSmall;
16
+ const spaceMedium = '20px';
17
+ exports.spaceMedium = spaceMedium;
18
+ const spaceLarge = '32px';
19
+ exports.spaceLarge = spaceLarge;
20
+ const spaceXLarge = '52px';
21
+ exports.spaceXLarge = spaceXLarge;
22
+ const spaceXXLarge = '84px';
23
+ exports.spaceXXLarge = spaceXXLarge;
24
+ const spaceFluid = '100%';
25
+ exports.spaceFluid = spaceFluid;
26
+ const spaceNegFluid = '-100%';
27
+ exports.spaceNegFluid = spaceNegFluid;
28
+ const spaceHalfFluid = '50%';
29
+ exports.spaceHalfFluid = spaceHalfFluid;
30
+ const spaceNegHalfFluid = '-50%';
31
+ exports.spaceNegHalfFluid = spaceNegHalfFluid;
@@ -0,0 +1,25 @@
1
+ // @flow strict
2
+
3
+ export const spaceNone = '0px';
4
+
5
+ export const spaceXXSmall = '4px';
6
+
7
+ export const spaceXSmall = '8px';
8
+
9
+ export const spaceSmall = '12px';
10
+
11
+ export const spaceMedium = '20px';
12
+
13
+ export const spaceLarge = '32px';
14
+
15
+ export const spaceXLarge = '52px';
16
+
17
+ export const spaceXXLarge = '84px';
18
+
19
+ export const spaceFluid = '100%';
20
+
21
+ export const spaceNegFluid = '-100%';
22
+
23
+ export const spaceHalfFluid = '50%';
24
+
25
+ export const spaceNegHalfFluid = '-50%';
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,3 @@
1
+ // @flow strict
2
+
3
+ export type GroupAlign = 'vertical' | 'horizontal-fixed' | 'horizontal-fluid';
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.POSITIONS = exports.ACTIONS = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ 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); }
9
+ 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; }
10
+
11
+ const POSITIONS = {
12
+ TOP_CENTER: 'topCenter',
13
+ TOP_LEFT: 'topLeft',
14
+ TOP_RIGHT: 'topRight',
15
+ BOTTOM_LEFT: 'bottomLeft',
16
+ BOTTOM_RIGHT: 'bottomRight',
17
+ BOTTOM_CENTER: 'bottomCenter'
18
+ };
19
+ exports.POSITIONS = POSITIONS;
20
+ const ACTIONS = {
21
+ ADD: 'ADD',
22
+ REMOVE: 'REMOVE'
23
+ };
24
+ exports.ACTIONS = ACTIONS;
@@ -0,0 +1,41 @@
1
+ // @flow strict
2
+
3
+ import * as React from 'react';
4
+
5
+
6
+ export const POSITIONS = {
7
+ TOP_CENTER: 'topCenter',
8
+ TOP_LEFT: 'topLeft',
9
+ TOP_RIGHT: 'topRight',
10
+ BOTTOM_LEFT: 'bottomLeft',
11
+ BOTTOM_RIGHT: 'bottomRight',
12
+ BOTTOM_CENTER: 'bottomCenter',
13
+ };
14
+
15
+ export const ACTIONS = {
16
+ ADD: 'ADD',
17
+ REMOVE: 'REMOVE',
18
+ };
19
+
20
+ export type positionTypes = $Values<typeof POSITIONS>;
21
+ export type actionTypes = $Values<typeof ACTIONS>;
22
+ export type contentTypes = React.Node;
23
+
24
+ export type ToastOptions = {
25
+ timeout?: number,
26
+ position?: positionTypes,
27
+ autoClose?: boolean,
28
+ uniqueCode?: string | number,
29
+ };
30
+
31
+ export type optionTypes = {
32
+ ...ToastOptions,
33
+ id: string,
34
+ key?: string,
35
+ };
36
+
37
+ export type callbackFuncTypes = (
38
+ type: actionTypes,
39
+ content: contentTypes,
40
+ options: optionTypes,
41
+ ) => void;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TEXT_COLORS = void 0;
7
+
8
+ const TEXT_COLORS = Object.freeze({
9
+ primary: 'primary',
10
+ secondary: 'secondary',
11
+ tertiary: 'tertiary',
12
+ disabled: 'disabled',
13
+ selected: 'selected',
14
+ neutral: 'neutral',
15
+ success: 'success',
16
+ information: 'information',
17
+ warning: 'warning',
18
+ danger: 'danger',
19
+ inversePrimary: 'inversePrimary',
20
+ inverseSecondary: 'inverseSecondary'
21
+ });
22
+ exports.TEXT_COLORS = TEXT_COLORS;
@@ -0,0 +1,18 @@
1
+ // @flow strict
2
+
3
+ export const TEXT_COLORS = Object.freeze({
4
+ primary: 'primary',
5
+ secondary: 'secondary',
6
+ tertiary: 'tertiary',
7
+ disabled: 'disabled',
8
+ selected: 'selected',
9
+ neutral: 'neutral',
10
+ success: 'success',
11
+ information: 'information',
12
+ warning: 'warning',
13
+ danger: 'danger',
14
+ inversePrimary: 'inversePrimary',
15
+ inverseSecondary: 'inverseSecondary',
16
+ });
17
+
18
+ export type ColorTypes = $Values<typeof TEXT_COLORS>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.classify = classify;
7
+ exports.default = void 0;
8
+ var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject"));
9
+ var _map = _interopRequireDefault(require("lodash/map"));
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function classify() {
13
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
14
+ args[_key] = arguments[_key];
15
+ }
16
+ return args.map(arg => {
17
+ let mappedArg = arg;
18
+ if ((0, _isPlainObject.default)(arg)) {
19
+ // $FlowFixMe[incompatible-call]
20
+ mappedArg = (0, _map.default)(arg, (test, name) => test ? name : null);
21
+ }
22
+ return mappedArg;
23
+ }).reduce((array, current) => {
24
+ if (Array.isArray(current)) {
25
+ array.push(...current);
26
+ } else {
27
+ array.push(current);
28
+ }
29
+ return array;
30
+ }, []).filter(val => val).join(' ');
31
+ }
32
+ var _default = classify;
33
+ exports.default = _default;
@@ -0,0 +1,29 @@
1
+ // @flow strict
2
+
3
+ import isPlainObject from 'lodash/isPlainObject';
4
+ import map from 'lodash/map';
5
+
6
+
7
+ export function classify(...args: Array<mixed>): string {
8
+ return args
9
+ .map((arg) => {
10
+ let mappedArg = arg;
11
+ if (isPlainObject(arg)) {
12
+ // $FlowFixMe[incompatible-call]
13
+ mappedArg = map(arg, (test, name: string) => (test ? name : null));
14
+ }
15
+ return mappedArg;
16
+ })
17
+ .reduce((array, current) => {
18
+ if (Array.isArray(current)) {
19
+ array.push(...current);
20
+ } else {
21
+ array.push(current);
22
+ }
23
+ return array;
24
+ }, [])
25
+ .filter((val) => val)
26
+ .join(' ');
27
+ }
28
+
29
+ export default classify;
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ClickAway = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _invariant = _interopRequireDefault(require("invariant"));
9
+ var _dom = require("./dom.js");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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
+ 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; }
13
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
+ // TODO(Nishant): Make this a functional component
15
+
16
+ class ClickAway extends React.Component {
17
+ constructor() {
18
+ super(...arguments);
19
+ _defineProperty(this, "state", {
20
+ isOpen: false,
21
+ height: null,
22
+ pageBottom: null
23
+ });
24
+ _defineProperty(this, "el", null);
25
+ _defineProperty(this, "cancelNext", false);
26
+ _defineProperty(this, "handleOpenClick", () => {
27
+ // NOTE (kyle): we recalculate the position on click because sibling and niece components
28
+ // could have changed.
29
+ let {
30
+ pageBottom
31
+ } = this.state;
32
+ if (this.el) {
33
+ pageBottom = this.pageBottom();
34
+ }
35
+ this.setState({
36
+ isOpen: true,
37
+ pageBottom
38
+ }, this.handleOnChange);
39
+ });
40
+ _defineProperty(this, "handleCloseClick", evt => {
41
+ if (this.props.shouldCancel(evt)) {
42
+ return;
43
+ }
44
+ if (this.cancelNext === true) {
45
+ this.cancelNext = false;
46
+ } else {
47
+ this.setState({
48
+ isOpen: false
49
+ }, this.handleOnChange);
50
+ }
51
+ });
52
+ _defineProperty(this, "forceClose", () => {
53
+ this.setState({
54
+ isOpen: false
55
+ }, this.handleOnChange);
56
+ });
57
+ _defineProperty(this, "cancelNextClickAway", () => {
58
+ this.cancelNext = true;
59
+ });
60
+ _defineProperty(this, "handleOnChange", () => this.props.onChange && this.props.onChange(this.state.isOpen));
61
+ }
62
+ componentDidMount() {
63
+ if (this.el) {
64
+ this.setState({
65
+ height: this.el.offsetHeight,
66
+ pageBottom: this.pageBottom()
67
+ });
68
+ }
69
+ }
70
+ componentDidUpdate(prevProps, prevState) {
71
+ const {
72
+ isOpen
73
+ } = this.state;
74
+ if (prevState.isOpen !== isOpen) {
75
+ if (this.state.isOpen) {
76
+ window.document.addEventListener('click', this.handleCloseClick);
77
+ } else {
78
+ window.document.removeEventListener('click', this.handleCloseClick);
79
+ }
80
+ }
81
+ }
82
+ componentWillUnmount() {
83
+ window.document.removeEventListener('click', this.handleCloseClick);
84
+ }
85
+ render() {
86
+ const {
87
+ height,
88
+ isOpen,
89
+ pageBottom
90
+ } = this.state;
91
+ return this.props.children({
92
+ onOpen: this.handleOpenClick,
93
+ isOpen,
94
+ height,
95
+ pageBottom,
96
+ cancelNext: this.cancelNextClickAway,
97
+ clickAway: this.forceClose,
98
+ anchorRef: el => this.el = el
99
+ });
100
+ }
101
+ pageBottom() {
102
+ (0, _invariant.default)(this.el, 'pageBottom() requires that this.el not be null');
103
+ const bottomBound = this.el ? this.el.getBoundingClientRect().bottom : 0;
104
+ return (0, _dom.pageHeight)() - bottomBound + window.scrollY;
105
+ }
106
+ }
107
+ exports.ClickAway = ClickAway;
108
+ _defineProperty(ClickAway, "defaultProps", {
109
+ shouldCancel: () => false
110
+ });
@@ -0,0 +1,134 @@
1
+ // @flow strict
2
+
3
+ import * as React from 'react';
4
+ import invariant from 'invariant';
5
+
6
+ import {pageHeight} from './dom.js';
7
+
8
+
9
+ export type ChildProps = {
10
+ onOpen: () => void,
11
+ isOpen: boolean,
12
+ height: ?number,
13
+ pageBottom: ?number,
14
+ cancelNext: () => void,
15
+ clickAway: () => void,
16
+ anchorRef: (?HTMLElement) => mixed,
17
+ };
18
+
19
+ type ClickAwayProps = {
20
+ children: (props: ChildProps) => React.Node,
21
+ shouldCancel: (event: MouseEvent) => boolean,
22
+ onChange?: (isOpen: boolean) => mixed,
23
+ };
24
+
25
+ type ClickAwayState = {
26
+ isOpen: boolean,
27
+ height: ?number,
28
+ pageBottom: ?number,
29
+ };
30
+
31
+ // TODO(Nishant): Make this a functional component
32
+
33
+ export class ClickAway extends React.Component<ClickAwayProps, ClickAwayState> {
34
+ static defaultProps: {shouldCancel: () => boolean} = {
35
+ shouldCancel: () => false,
36
+ };
37
+
38
+ state: ClickAwayState = {
39
+ isOpen: false,
40
+ height: null,
41
+ pageBottom: null,
42
+ };
43
+
44
+ el: ?HTMLElement = null;
45
+ cancelNext: boolean = false;
46
+
47
+ componentDidMount() {
48
+ if (this.el) {
49
+ this.setState({
50
+ height: this.el.offsetHeight,
51
+ pageBottom: this.pageBottom(),
52
+ });
53
+ }
54
+ }
55
+
56
+ componentDidUpdate(prevProps: ClickAwayProps, prevState: ClickAwayState) {
57
+ const {isOpen} = this.state;
58
+ if (prevState.isOpen !== isOpen) {
59
+ if (this.state.isOpen) {
60
+ window.document.addEventListener('click', this.handleCloseClick);
61
+ } else {
62
+ window.document.removeEventListener('click', this.handleCloseClick);
63
+ }
64
+ }
65
+ }
66
+
67
+ componentWillUnmount() {
68
+ window.document.removeEventListener('click', this.handleCloseClick);
69
+ }
70
+
71
+ render(): React.Node {
72
+ const {height, isOpen, pageBottom} = this.state;
73
+ return this.props.children({
74
+ onOpen: this.handleOpenClick,
75
+ isOpen,
76
+ height,
77
+ pageBottom,
78
+ cancelNext: this.cancelNextClickAway,
79
+ clickAway: this.forceClose,
80
+ anchorRef: (el) => (this.el = el),
81
+ });
82
+ }
83
+
84
+ handleOpenClick: () => void = () => {
85
+ // NOTE (kyle): we recalculate the position on click because sibling and niece components
86
+ // could have changed.
87
+ let {pageBottom} = this.state;
88
+ if (this.el) {
89
+ pageBottom = this.pageBottom();
90
+ }
91
+
92
+ this.setState(
93
+ {
94
+ isOpen: true,
95
+ pageBottom,
96
+ },
97
+ this.handleOnChange,
98
+ );
99
+ };
100
+
101
+ handleCloseClick: (evt: MouseEvent) => void = (evt: MouseEvent) => {
102
+ if (this.props.shouldCancel(evt)) {
103
+ return;
104
+ }
105
+
106
+ if (this.cancelNext === true) {
107
+ this.cancelNext = false;
108
+ } else {
109
+ this.setState(
110
+ {
111
+ isOpen: false,
112
+ },
113
+ this.handleOnChange,
114
+ );
115
+ }
116
+ };
117
+
118
+ forceClose: () => void = () => {
119
+ this.setState({isOpen: false}, this.handleOnChange);
120
+ };
121
+
122
+ cancelNextClickAway: () => void = () => {
123
+ this.cancelNext = true;
124
+ };
125
+
126
+ handleOnChange: () => mixed = () =>
127
+ this.props.onChange && this.props.onChange(this.state.isOpen);
128
+
129
+ pageBottom(): $FlowFixMe {
130
+ invariant(this.el, 'pageBottom() requires that this.el not be null');
131
+ const bottomBound = this.el ? this.el.getBoundingClientRect().bottom : 0;
132
+ return pageHeight() - bottomBound + window.scrollY;
133
+ }
134
+ }