@spothero/ui 17.0.0-beta.1 → 17.0.0-beta.2

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 (136) hide show
  1. package/dist/components/Accordion/Accordion.js +13 -0
  2. package/dist/components/Accordion/Accordion.stories.js +86 -0
  3. package/dist/components/Accordion/index.js +41 -0
  4. package/dist/components/Accordion/styles/button.js +23 -0
  5. package/dist/components/Accordion/styles/container.js +15 -0
  6. package/dist/components/Accordion/styles/index.js +32 -0
  7. package/dist/components/Accordion/styles/panel.js +13 -0
  8. package/dist/components/Alert/Alert.js +119 -0
  9. package/dist/components/Alert/Alert.stories.js +80 -0
  10. package/dist/components/Alert/index.js +15 -0
  11. package/dist/components/Alert/styles/index.js +192 -0
  12. package/dist/components/AutoSuggestSelect/AutoSuggestSelect.js +189 -0
  13. package/dist/components/AutoSuggestSelect/index.js +15 -0
  14. package/dist/components/Badge/Badge.js +13 -0
  15. package/dist/components/Badge/Badge.stories.js +38 -0
  16. package/dist/components/Badge/styles/index.js +40 -0
  17. package/dist/components/Button/Button.js +73 -0
  18. package/dist/components/Button/Button.spec.js +31 -0
  19. package/dist/components/Button/Button.styles.js +173 -0
  20. package/dist/components/Button/button-props.js +90 -0
  21. package/dist/components/Button/index.js +23 -0
  22. package/dist/components/Button/stories/button.js +59 -0
  23. package/dist/components/Button/stories/index.stories.js +124 -0
  24. package/dist/components/Button/stories/overview.js +96 -0
  25. package/dist/components/Card/Card.js +38 -0
  26. package/dist/components/Card/Card.stories.js +41 -0
  27. package/dist/components/Checkbox/Checkbox.js +13 -0
  28. package/dist/components/Checkbox/Checkbox.stories.js +44 -0
  29. package/dist/components/Checkbox/index.js +15 -0
  30. package/dist/components/Checkbox/styles/index.js +64 -0
  31. package/dist/components/Container/Container.js +34 -0
  32. package/dist/components/Container/Container.stories.js +74 -0
  33. package/dist/components/Container/Container.styles.js +17 -0
  34. package/dist/components/Divider/Divider.js +47 -0
  35. package/dist/components/Divider/Divider.stories.js +49 -0
  36. package/dist/components/Divider/Divider.styles.js +28 -0
  37. package/dist/components/FormControl/FormControl.js +79 -0
  38. package/dist/components/Grid/Grid.js +49 -0
  39. package/dist/components/Grid/Grid.stories.js +141 -0
  40. package/dist/components/Grid/Grid.styles.js +19 -0
  41. package/dist/components/Grid/GridItem.js +34 -0
  42. package/dist/components/Grid/GridItem.styles.js +13 -0
  43. package/dist/components/Grid/index.js +23 -0
  44. package/dist/components/Heading/Heading.js +49 -0
  45. package/dist/components/Heading/Heading.stories.js +54 -0
  46. package/dist/components/Heading/Heading.styles.js +79 -0
  47. package/dist/components/Icon/Icon.js +13 -0
  48. package/dist/components/Icon/Icon.stories.js +47 -0
  49. package/dist/components/Image/Image.js +106 -0
  50. package/dist/components/Image/Image.spec.js +83 -0
  51. package/dist/components/Image/Image.stories.js +92 -0
  52. package/dist/components/Input/Input.js +61 -0
  53. package/dist/components/Input/Input.stories.js +71 -0
  54. package/dist/components/Input/index.js +15 -0
  55. package/dist/components/Input/styles/index.js +71 -0
  56. package/dist/components/Link/Link.js +13 -0
  57. package/dist/components/Link/Link.stories.js +61 -0
  58. package/dist/components/Link/Link.styles.js +42 -0
  59. package/dist/components/List/List.js +88 -0
  60. package/dist/components/List/List.stories.js +124 -0
  61. package/dist/components/List/index.js +23 -0
  62. package/dist/components/List/styles/index.js +24 -0
  63. package/dist/components/List/styles/item.styles.js +11 -0
  64. package/dist/components/Loader/Loader.js +62 -0
  65. package/dist/components/Loader/Loader.stories.js +140 -0
  66. package/dist/components/Modal/Modal.js +52 -0
  67. package/dist/components/Modal/Modal.stories.js +236 -0
  68. package/dist/components/Modal/index.js +15 -0
  69. package/dist/components/Modal/styles/body.js +48 -0
  70. package/dist/components/Modal/styles/closeButton.js +27 -0
  71. package/dist/components/Modal/styles/dialog.js +25 -0
  72. package/dist/components/Modal/styles/dialogContainer.js +26 -0
  73. package/dist/components/Modal/styles/footer.js +12 -0
  74. package/dist/components/Modal/styles/header.js +20 -0
  75. package/dist/components/Modal/styles/index.js +70 -0
  76. package/dist/components/Modal/styles/overlay.js +12 -0
  77. package/dist/components/Popover/Popover.js +48 -0
  78. package/dist/components/Popover/Popover.stories.js +101 -0
  79. package/dist/components/Popover/PopoverArrow.js +34 -0
  80. package/dist/components/Popover/PopoverCloseButton.js +34 -0
  81. package/dist/components/Popover/PopoverContent.js +53 -0
  82. package/dist/components/Popover/index.js +37 -0
  83. package/dist/components/Popover/styles/index.js +38 -0
  84. package/dist/components/Popover/styles/popover-arrow.js +16 -0
  85. package/dist/components/Popover/styles/popover-body.js +15 -0
  86. package/dist/components/Popover/styles/popover-close-button.js +30 -0
  87. package/dist/components/Popover/styles/popover-content.js +29 -0
  88. package/dist/components/Popover/styles/popover-header.js +12 -0
  89. package/dist/components/Popover/styles/popper.js +11 -0
  90. package/dist/components/Radio/Radio.js +52 -0
  91. package/dist/components/Radio/Radio.stories.js +142 -0
  92. package/dist/components/Radio/RadioGroup.js +65 -0
  93. package/dist/components/Radio/index.js +23 -0
  94. package/dist/components/Radio/styles/index.js +65 -0
  95. package/dist/components/Select/Select.js +71 -0
  96. package/dist/components/Select/Select.stories.js +74 -0
  97. package/dist/components/Select/index.js +15 -0
  98. package/dist/components/Select/styles/index.js +57 -0
  99. package/dist/components/Skeleton/Skeleton.stories.js +41 -0
  100. package/dist/components/Skeleton/Skeleton.styles.js +13 -0
  101. package/dist/components/Skeleton/index.js +25 -0
  102. package/dist/components/Spinner/Spinner.js +47 -0
  103. package/dist/components/Spinner/Spinner.stories.js +134 -0
  104. package/dist/components/Spinner/Spinner.styles.js +76 -0
  105. package/dist/components/Switch/Switch.js +59 -0
  106. package/dist/components/Switch/Switch.stories.js +86 -0
  107. package/dist/components/Switch/index.js +15 -0
  108. package/dist/components/Switch/styles/index.js +46 -0
  109. package/dist/components/Table/Table.js +13 -0
  110. package/dist/components/Table/Table.stories.js +92 -0
  111. package/dist/components/Table/Table.styles.js +87 -0
  112. package/dist/components/Table/index.js +59 -0
  113. package/dist/components/Tabs/Tabs.js +48 -0
  114. package/dist/components/Tabs/Tabs.stories.js +51 -0
  115. package/dist/components/Tabs/combineSizeWithVariant.js +44 -0
  116. package/dist/components/Tabs/index.js +41 -0
  117. package/dist/components/Tabs/styles/index.js +52 -0
  118. package/dist/components/Text/Text.js +44 -0
  119. package/dist/components/Text/Text.stories.js +56 -0
  120. package/dist/components/Text/Text.styles.js +67 -0
  121. package/dist/components/Text/combineAsWithVariant.js +123 -0
  122. package/dist/components/Text/options.js +9 -0
  123. package/dist/components/ThemeProvider/ThemeProvider.js +66 -0
  124. package/dist/components/ThemeProvider/ThemeProvider.stories.js +63 -0
  125. package/dist/components/index.js +577 -0
  126. package/dist/components/styles.js +175 -0
  127. package/dist/theme/base/breakpoints.js +27 -0
  128. package/dist/theme/base/colors.js +148 -0
  129. package/dist/theme/base/index.js +59 -0
  130. package/dist/theme/base/sizes.js +88 -0
  131. package/dist/theme/base/typography.js +41 -0
  132. package/dist/theme/base/zindices.js +35 -0
  133. package/dist/theme/global.js +52 -0
  134. package/dist/theme/index.js +63 -0
  135. package/dist/utils/Spaces.js +27 -0
  136. package/package.json +1 -1
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+
5
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
6
+
7
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
8
+
9
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
10
+
11
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
12
+
13
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
14
+
15
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
16
+
17
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
18
+
19
+ Object.defineProperty(exports, "__esModule", {
20
+ value: true
21
+ });
22
+ exports.default = void 0;
23
+
24
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
25
+
26
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
27
+
28
+ var _react = _interopRequireWildcard(require("react"));
29
+
30
+ var _FormControl = _interopRequireDefault(require("../FormControl/FormControl"));
31
+
32
+ var _async = _interopRequireDefault(require("react-select/async"));
33
+
34
+ var _react2 = require("@chakra-ui/react");
35
+
36
+ var _timesCircle = _interopRequireDefault(require("@spothero/icons/times-circle"));
37
+
38
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
+
40
+ 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; }
41
+
42
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
43
+
44
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? Object.defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
45
+
46
+ var AutoSuggestSelect = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
47
+ var id = _ref.id,
48
+ label = _ref.label,
49
+ helperText = _ref.helperText,
50
+ errorMessage = _ref.errorMessage,
51
+ isInvalid = _ref.isInvalid,
52
+ isDisabled = _ref.isDisabled,
53
+ isRequired = _ref.isRequired,
54
+ getOptions = _ref.getOptions,
55
+ onChange = _ref.onChange,
56
+ iconSrc = _ref.iconSrc,
57
+ placeholder = _ref.placeholder;
58
+
59
+ var _useTheme = (0, _react2.useTheme)(),
60
+ colors = _useTheme.colors,
61
+ fontSizes = _useTheme.fontSizes,
62
+ sizes = _useTheme.sizes;
63
+
64
+ var handleChange = function handleChange(selectedOption) {
65
+ onChange(selectedOption);
66
+ };
67
+
68
+ var icon = function icon() {
69
+ var color = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transparent';
70
+ return {
71
+ alignItems: 'center',
72
+ display: 'flex',
73
+ ':before': {
74
+ backgroundColor: color,
75
+ content: '" "',
76
+ display: 'block',
77
+ marginRight: sizes['3'],
78
+ height: sizes['4'],
79
+ width: sizes['5'],
80
+ mask: "url(".concat(iconSrc, ") no-repeat 50% 50%"),
81
+ maskSize: 'contain'
82
+ }
83
+ };
84
+ };
85
+
86
+ var baseText = {
87
+ fontSize: fontSizes.base,
88
+ color: colors.black
89
+ };
90
+ /** React Select doesn't use Chakra but it does use Emotion so it's not too difficult to use values from our Chakra theme. Here is the documentation for React Select styling: https://react-select.com/styles */
91
+
92
+ var customStyles = {
93
+ menu: function menu(provided) {
94
+ return _objectSpread(_objectSpread({}, provided), baseText);
95
+ },
96
+ control: function control(provided, state) {
97
+ return _objectSpread(_objectSpread({}, provided), {}, {
98
+ borderColor: isInvalid ? colors.error : state.isFocused ? colors.primary.default : colors.gray['200'],
99
+ borderWidth: '1px',
100
+ boxShadow: 'none',
101
+ '&:hover': {
102
+ borderColor: isInvalid ? colors.error : state.isFocused ? colors.primary.default : colors.gray['200']
103
+ }
104
+ });
105
+ },
106
+ input: function input(provided, state) {
107
+ return _objectSpread(_objectSpread(_objectSpread({}, provided), baseText), {}, {
108
+ padding: sizes['2'],
109
+ backgroundColor: state.isDisabled ? colors.gray['200'] : 'transparent'
110
+ }, iconSrc && icon(colors.gray['600']));
111
+ },
112
+ placeholder: function placeholder(provided) {
113
+ return _objectSpread(_objectSpread({}, provided), {}, {
114
+ padding: sizes['2'],
115
+ fontSize: fontSizes.base,
116
+ color: colors.gray['600']
117
+ }, iconSrc && icon());
118
+ },
119
+ singleValue: function singleValue(provided) {
120
+ return _objectSpread(_objectSpread(_objectSpread({}, provided), baseText), {}, {
121
+ padding: sizes['2']
122
+ }, iconSrc && icon());
123
+ },
124
+ option: function option(provided, state) {
125
+ return _objectSpread(_objectSpread({}, provided), {}, {
126
+ backgroundColor: state.isSelected ? colors.gray['200'] : state.isFocused ? colors.gray['50'] : 'transparent',
127
+ color: colors.black
128
+ });
129
+ },
130
+ clearIndicator: function clearIndicator(provided) {
131
+ return _objectSpread(_objectSpread({}, provided), {}, {
132
+ color: colors.gray['600']
133
+ });
134
+ },
135
+ dropdownIndicator: function dropdownIndicator(provided) {
136
+ return _objectSpread(_objectSpread({}, provided), {}, {
137
+ color: colors.gray['600']
138
+ });
139
+ }
140
+ };
141
+ var clearIndicatorStyles = {
142
+ width: sizes['5'],
143
+ display: 'flex',
144
+ marginRight: sizes['3'],
145
+ color: colors.gray['600'],
146
+ cursor: 'pointer'
147
+ };
148
+ /** React Select allows you to override the clear indicator with your own custom component: https://react-select.com/components */
149
+
150
+ var ClearIndicator = function ClearIndicator(_ref2) {
151
+ var innerRef = _ref2.innerRef,
152
+ innerProps = _ref2.innerProps;
153
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
154
+ style: clearIndicatorStyles,
155
+ ref: innerRef
156
+ }, innerProps), /*#__PURE__*/_react.default.createElement(_timesCircle.default, null));
157
+ };
158
+
159
+ return /*#__PURE__*/_react.default.createElement(_FormControl.default, {
160
+ errorMessage: errorMessage,
161
+ isRequired: isRequired,
162
+ helperText: helperText,
163
+ label: label,
164
+ inputId: id
165
+ }, /*#__PURE__*/_react.default.createElement(_async.default, {
166
+ closeMenuOnSelect: true,
167
+ isClearable: true,
168
+ cacheOptions: true,
169
+ components: {
170
+ DropdownIndicator: function DropdownIndicator() {
171
+ return null;
172
+ },
173
+ IndicatorSeparator: function IndicatorSeparator() {
174
+ return null;
175
+ },
176
+ ClearIndicator: ClearIndicator
177
+ },
178
+ openMenuOnClick: false,
179
+ loadOptions: getOptions,
180
+ onChange: handleChange,
181
+ isDisabled: isDisabled,
182
+ id: id,
183
+ placeholder: placeholder,
184
+ styles: customStyles,
185
+ ref: ref
186
+ }));
187
+ });
188
+ var _default = AutoSuggestSelect;
189
+ exports.default = _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "AutoSuggestSelect", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _AutoSuggestSelect.default;
12
+ }
13
+ });
14
+
15
+ var _AutoSuggestSelect = _interopRequireDefault(require("./AutoSuggestSelect"));
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _react.Badge;
10
+ }
11
+ });
12
+
13
+ var _react = require("@chakra-ui/react");
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = exports.Badge = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _Badge = _interopRequireDefault(require("./Badge"));
13
+
14
+ var _default = {
15
+ title: 'v2/Badge',
16
+ component: _Badge.default,
17
+ parameters: {
18
+ removeBaseHtmlClass: true
19
+ }
20
+ };
21
+ exports.default = _default;
22
+
23
+ var Template = function Template(props) {
24
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Badge.default, {
25
+ variant: "primary"
26
+ }, "Primary"), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(_Badge.default, {
27
+ variant: "warningLight"
28
+ }, "Warning Light"), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(_Badge.default, {
29
+ variant: "solid",
30
+ colorScheme: "green"
31
+ }, "Success"), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(_Badge.default, {
32
+ variant: "subtle",
33
+ colorScheme: "red"
34
+ }, "Removed"));
35
+ };
36
+
37
+ var Badge = Template.bind({});
38
+ exports.Badge = Badge;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.variants = exports.default = void 0;
9
+
10
+ var _merge = _interopRequireDefault(require("lodash/merge"));
11
+
12
+ var _theme = _interopRequireDefault(require("@chakra-ui/theme"));
13
+
14
+ var baseStyle = {
15
+ px: 1,
16
+ textTransform: 'reset',
17
+ fontSize: 'xs',
18
+ borderRadius: 'sm',
19
+ fontWeight: 'bold'
20
+ };
21
+ var variants = {
22
+ primary: {
23
+ bg: 'primary.default',
24
+ color: 'white'
25
+ },
26
+ warningLight: {
27
+ bg: 'yellow.100',
28
+ color: 'black'
29
+ }
30
+ };
31
+ exports.variants = variants;
32
+ var defaultProps = {};
33
+
34
+ var _default = (0, _merge.default)(_theme.default.components.Badge, {
35
+ variants: variants,
36
+ baseStyle: baseStyle,
37
+ defaultProps: defaultProps
38
+ });
39
+
40
+ exports.default = _default;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+
5
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
6
+
7
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
8
+
9
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
10
+
11
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
12
+
13
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
14
+
15
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
16
+
17
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
18
+
19
+ Object.defineProperty(exports, "__esModule", {
20
+ value: true
21
+ });
22
+ exports.default = void 0;
23
+
24
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
25
+
26
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
27
+
28
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
29
+
30
+ var _react = _interopRequireWildcard(require("react"));
31
+
32
+ var _react2 = require("@chakra-ui/react");
33
+
34
+ var _buttonProps = _interopRequireDefault(require("./button-props"));
35
+
36
+ var _excluded = ["asAnchor", "isExternal"];
37
+
38
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
+
40
+ 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; }
41
+
42
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
43
+
44
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? Object.defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
45
+
46
+ var anchorProps = function anchorProps() {
47
+ var isExternal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
48
+ return _objectSpread({
49
+ as: 'a',
50
+ type: null
51
+ }, isExternal && {
52
+ target: '_blank',
53
+ rel: 'noopener noreferrer'
54
+ });
55
+ };
56
+
57
+ var Button = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
58
+ var asAnchor = _ref.asAnchor,
59
+ isExternal = _ref.isExternal,
60
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
61
+ return /*#__PURE__*/_react.default.createElement(_react2.Button, (0, _extends2.default)({
62
+ iconSpacing: 2
63
+ }, props, (asAnchor || props.as === 'a') && anchorProps(isExternal), {
64
+ ref: ref
65
+ }));
66
+ });
67
+ Button.propTypes = _buttonProps.default;
68
+ Button.defaultProps = {
69
+ variant: 'primary',
70
+ type: 'button'
71
+ };
72
+ var _default = Button;
73
+ exports.default = _default;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _Button = _interopRequireDefault(require("./Button"));
10
+
11
+ describe('Button', function () {
12
+ it('renders the anchor version of the button', function () {
13
+ (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_Button.default, {
14
+ asAnchor: true,
15
+ href: "#"
16
+ }, "Button"));
17
+ expect(_react2.screen.getByRole('link')).toBeInTheDocument();
18
+ });
19
+ it('renders with target and rel attributes on external anchor button', function () {
20
+ (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_Button.default, {
21
+ asAnchor: true,
22
+ isExternal: true,
23
+ href: "#"
24
+ }, "Button"));
25
+
26
+ var link = _react2.screen.getByRole('link');
27
+
28
+ expect(link).toHaveAttribute('target', '_blank');
29
+ expect(link).toHaveAttribute('rel', 'noopener noreferrer');
30
+ });
31
+ });
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+
3
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
4
+
5
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
6
+
7
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
8
+
9
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
10
+
11
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
12
+
13
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
14
+
15
+ Object.defineProperty(exports, "__esModule", {
16
+ value: true
17
+ });
18
+ exports.variants = exports.default = void 0;
19
+
20
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
21
+
22
+ var _merge = _interopRequireDefault(require("lodash/merge"));
23
+
24
+ var _theme = _interopRequireDefault(require("@chakra-ui/theme"));
25
+
26
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
+
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? Object.defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
29
+
30
+ var baseStyle = {
31
+ px: 8,
32
+ py: 3,
33
+ fontSize: 'base',
34
+ fontFamily: 'body',
35
+ lineHeight: 0.875,
36
+ fontWeight: 'semibold',
37
+ borderWidth: '1px',
38
+ borderStyle: 'solid',
39
+ borderRadius: '1.25rem',
40
+ textTransform: 'capitalize',
41
+ transition: 'all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94)',
42
+ _disabled: {
43
+ cursor: 'not-allowed',
44
+ opacity: 1,
45
+ bg: 'gray.medium',
46
+ borderColor: 'gray.medium',
47
+ color: 'gray.dark'
48
+ },
49
+ '& svg': {
50
+ display: 'block'
51
+ }
52
+ }; // TODO: We need an active styling
53
+
54
+ var disabledButtonHoverStyle = {
55
+ _disabled: {
56
+ bg: 'gray.medium',
57
+ borderColor: 'gray.medium',
58
+ color: 'gray.dark'
59
+ }
60
+ };
61
+ var destructiveButtonStyles = {
62
+ bg: 'white',
63
+ borderColor: 'red.default',
64
+ color: 'red.default',
65
+ _hover: _objectSpread({
66
+ borderColor: 'red.800',
67
+ color: 'red.800'
68
+ }, disabledButtonHoverStyle)
69
+ };
70
+ var variants = {
71
+ primary: {
72
+ bg: 'primary.default',
73
+ borderColor: 'primary.default',
74
+ color: 'white',
75
+ _hover: _objectSpread({
76
+ bg: 'primary.600',
77
+ borderColor: 'primary.600',
78
+ color: 'white'
79
+ }, disabledButtonHoverStyle)
80
+ },
81
+ primaryOnDark: {
82
+ bg: 'yellow.default',
83
+ borderColor: 'yellow.default',
84
+ color: 'black',
85
+ _hover: _objectSpread({
86
+ bg: 'yellow.500',
87
+ borderColor: 'yellow.500',
88
+ color: 'black'
89
+ }, disabledButtonHoverStyle),
90
+ _focus: {
91
+ boxShadow: '0 0 0 3px rgba(255, 255, 255, 0.7)'
92
+ }
93
+ },
94
+ secondary: {
95
+ bg: 'white',
96
+ borderColor: 'gray.medium',
97
+ color: 'primary.default',
98
+ _hover: _objectSpread({
99
+ borderColor: 'primary.600',
100
+ color: 'primary.600'
101
+ }, disabledButtonHoverStyle)
102
+ },
103
+ secondaryOnDark: {
104
+ bg: 'none',
105
+ borderColor: 'white',
106
+ color: 'white',
107
+ _hover: _objectSpread({
108
+ bg: 'white',
109
+ borderColor: 'white',
110
+ color: 'black'
111
+ }, disabledButtonHoverStyle),
112
+ _focus: {
113
+ boxShadow: '0 0 0 3px rgba(255, 255, 255, 0.7)'
114
+ }
115
+ },
116
+ tertiary: {
117
+ bg: 'none',
118
+ borderWidth: 'none',
119
+ borderRadius: 'unset',
120
+ color: 'primary.default',
121
+ h: 'unset',
122
+ m: 'unset',
123
+ minW: 'unset',
124
+ p: 'unset',
125
+ lineHeight: 1,
126
+ _disabled: {
127
+ bg: 'none',
128
+ color: 'gray.dark'
129
+ },
130
+ _hover: {
131
+ color: 'primary.600',
132
+ _disabled: {
133
+ color: 'gray.dark'
134
+ }
135
+ }
136
+ },
137
+ tertiaryOnDark: {
138
+ bg: 'none',
139
+ borderRadius: 'unset',
140
+ borderWidth: 'none',
141
+ color: 'white',
142
+ h: 'unset',
143
+ m: 'unset',
144
+ minW: 'unset',
145
+ p: 'unset',
146
+ _disabled: {
147
+ bg: 'none',
148
+ color: 'white',
149
+ opacity: '.7'
150
+ },
151
+ _hover: {
152
+ color: 'white',
153
+ opacity: '.8',
154
+ _disabled: {
155
+ opacity: '.7'
156
+ }
157
+ }
158
+ },
159
+ destructive: _objectSpread({}, destructiveButtonStyles),
160
+ destructiveOnDark: _objectSpread({}, destructiveButtonStyles)
161
+ };
162
+ exports.variants = variants;
163
+ var defaultProps = {
164
+ size: null
165
+ };
166
+
167
+ var _default = (0, _merge.default)(_theme.default.components.Button, {
168
+ variants: variants,
169
+ baseStyle: baseStyle,
170
+ defaultProps: defaultProps
171
+ });
172
+
173
+ exports.default = _default;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _Button = require("./Button.styles");
15
+
16
+ var props = {
17
+ /**
18
+ * Alters the underlying html tag
19
+ */
20
+ as: _propTypes.default.string,
21
+
22
+ /**
23
+ * If `true`, the button will render as an anchor.
24
+ */
25
+ asAnchor: _propTypes.default.bool,
26
+
27
+ /**
28
+ * If `true`, and an anchor button, target="_blank" and rel="noopener noreferrer" will be set on the anchor
29
+ * "isExternal" is used to maintain parity with the Link component.
30
+ */
31
+ isExternal: _propTypes.default.bool,
32
+
33
+ /**
34
+ * If `true`, the button will show a spinner.
35
+ */
36
+ isLoading: _propTypes.default.bool,
37
+
38
+ /**
39
+ * If `true`, the button will be styled in its active state.
40
+ */
41
+ isActive: _propTypes.default.bool,
42
+
43
+ /**
44
+ * If `true`, the button will be disabled.
45
+ */
46
+ isDisabled: _propTypes.default.bool,
47
+
48
+ /**
49
+ * The label to show in the button when `isLoading` is true
50
+ * If no text is passed, it only shows the spinner
51
+ */
52
+ loadingText: _propTypes.default.string,
53
+
54
+ /**
55
+ * If `true`, the button will take up the full width of its container.
56
+ */
57
+ isFullWidth: _propTypes.default.bool,
58
+
59
+ /**
60
+ * The html button type to use.
61
+ */
62
+ type: _propTypes.default.oneOf(['button', 'reset', 'submit']),
63
+
64
+ /**
65
+ * If added, the button will show an icon before the button's label.
66
+ * @type PropTypes.node
67
+ */
68
+ leftIcon: _propTypes.default.node,
69
+
70
+ /**
71
+ * If added, the button will show an icon after the button's label.
72
+ * @type PropTypes.node
73
+ */
74
+ rightIcon: _propTypes.default.node,
75
+
76
+ /**
77
+ * The space between the button icon and label.
78
+ * @type SystemProps["marginRight"]
79
+ */
80
+ iconSpacing: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
81
+
82
+ /**
83
+ * Replace the spinner component when `isLoading` is set to `true`
84
+ * @type PropTypes.node
85
+ */
86
+ spinner: _propTypes.default.node,
87
+ variant: _propTypes.default.oneOf((0, _keys.default)(_Button.variants))
88
+ };
89
+ var _default = props;
90
+ exports.default = _default;