@cloudflare/component-button 2.11.24 → 2.12.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,41 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [2.12.0](http://stash.cfops.it:7999/fe/stratus/compare/@cloudflare/component-button@2.11.27...@cloudflare/component-button@2.12.0) (2022-01-07)
7
+
8
+
9
+ ### Features
10
+
11
+ * **component-button:** A11Y-584 Additional props for form layout ([1566784](http://stash.cfops.it:7999/fe/stratus/commits/1566784))
12
+
13
+
14
+
15
+
16
+
17
+ ## [2.11.27](http://stash.cfops.it:7999/fe/stratus/compare/@cloudflare/component-button@2.11.26...@cloudflare/component-button@2.11.27) (2022-01-06)
18
+
19
+ **Note:** Version bump only for package @cloudflare/component-button
20
+
21
+
22
+
23
+
24
+
25
+ ## [2.11.26](http://stash.cfops.it:7999/fe/stratus/compare/@cloudflare/component-button@2.11.25...@cloudflare/component-button@2.11.26) (2021-12-28)
26
+
27
+ **Note:** Version bump only for package @cloudflare/component-button
28
+
29
+
30
+
31
+
32
+
33
+ ## [2.11.25](http://stash.cfops.it:7999/fe/stratus/compare/@cloudflare/component-button@2.11.24...@cloudflare/component-button@2.11.25) (2021-12-22)
34
+
35
+ **Note:** Version bump only for package @cloudflare/component-button
36
+
37
+
38
+
39
+
40
+
6
41
  ## [2.11.24](http://stash.cfops.it:7999/fe/stratus/compare/@cloudflare/component-button@2.11.23...@cloudflare/component-button@2.11.24) (2021-12-22)
7
42
 
8
43
  **Note:** Version bump only for package @cloudflare/component-button
package/dist/Button.d.ts CHANGED
@@ -9,7 +9,9 @@ declare const _default: React.ComponentType<{
9
9
  tabIndex?: number | undefined;
10
10
  direction?: "column" | "row" | undefined;
11
11
  disabled?: boolean | undefined;
12
+ space?: number | undefined;
12
13
  loading?: boolean | undefined;
14
+ stretch?: boolean | undefined;
13
15
  submit?: boolean | undefined;
14
16
  inverted?: boolean | undefined;
15
17
  spaced?: boolean | undefined;
@@ -2,7 +2,9 @@ import React from 'react';
2
2
  declare const _default: React.ComponentType<{
3
3
  className?: string | undefined;
4
4
  spaced?: boolean | undefined;
5
+ space?: number | undefined;
5
6
  direction?: "column" | "row" | undefined;
7
+ stretch?: boolean | undefined;
6
8
  p?: import("csstype").PaddingProperty<string | number> | [import("csstype").PaddingProperty<string | number> | undefined, import("csstype").PaddingProperty<string | number> | undefined] | [import("csstype").PaddingProperty<string | number> | undefined, import("csstype").PaddingProperty<string | number> | undefined, import("csstype").PaddingProperty<string | number> | undefined] | undefined;
7
9
  color?: string | [string | undefined, string | undefined] | [string | undefined, string | undefined, string | undefined] | undefined;
8
10
  height?: import("csstype").HeightProperty<string | number> | [import("csstype").HeightProperty<string | number> | undefined, import("csstype").HeightProperty<string | number> | undefined] | [import("csstype").HeightProperty<string | number> | undefined, import("csstype").HeightProperty<string | number> | undefined, import("csstype").HeightProperty<string | number> | undefined] | undefined;
@@ -331,6 +331,7 @@ declare const TextButton: import("react").ComponentType<{
331
331
  px?: import("csstype").PaddingLeftProperty<string | number> | [import("csstype").PaddingLeftProperty<string | number> | undefined, import("csstype").PaddingLeftProperty<string | number> | undefined] | [import("csstype").PaddingLeftProperty<string | number> | undefined, import("csstype").PaddingLeftProperty<string | number> | undefined, import("csstype").PaddingLeftProperty<string | number> | undefined] | undefined;
332
332
  py?: import("csstype").PaddingTopProperty<string | number> | [import("csstype").PaddingTopProperty<string | number> | undefined, import("csstype").PaddingTopProperty<string | number> | undefined] | [import("csstype").PaddingTopProperty<string | number> | undefined, import("csstype").PaddingTopProperty<string | number> | undefined, import("csstype").PaddingTopProperty<string | number> | undefined] | undefined;
333
333
  borderbottomRightRadius?: ([never, never] | [never, never, never]) | undefined;
334
+ 'data-testid'?: string | undefined;
334
335
  innerRef?: import("react").Ref<HTMLButtonElement> | undefined;
335
336
  }>;
336
337
  export default TextButton;
package/es/Button.js CHANGED
@@ -149,8 +149,11 @@ const styles = props => {
149
149
  inverted = _props$inverted === void 0 ? false : _props$inverted,
150
150
  group = props.group,
151
151
  spaced = props.spaced,
152
+ _props$space = props.space,
153
+ space = _props$space === void 0 ? 2 : _props$space,
152
154
  _props$type = props.type,
153
- type = _props$type === void 0 ? 'default' : _props$type;
155
+ type = _props$type === void 0 ? 'default' : _props$type,
156
+ stretch = props.stretch;
154
157
  const normalStyles = buttonColors(theme).normal;
155
158
  const hoverStyles = interactionStyleAccessor('hover', props);
156
159
  const activeStyles = interactionStyleAccessor('active', props);
@@ -173,6 +176,7 @@ const styles = props => {
173
176
  color: loading ? 'transparent' : colorAccessor(normalStyles.color, props),
174
177
  cursor: disabled || loading ? 'default' : 'pointer',
175
178
  display: 'inline-flex',
179
+ flexGrow: stretch ? 1 : undefined,
176
180
  alignItems: 'center',
177
181
  justifyContent: 'center',
178
182
  fontFamily: theme.fontFamily,
@@ -213,10 +217,10 @@ const styles = props => {
213
217
  animationTimingFunction: 'linear'
214
218
  } : undefined,
215
219
  opacity: disabled ? 0.5 : 'inherit',
216
- mt: spaced && direction === 'column' && group !== 'first' ? 2 : 0,
220
+ mt: spaced && direction === 'column' && group !== 'first' ? space : 0,
217
221
  mr: 0,
218
222
  mb: 0,
219
- ml: spaced && direction === 'row' && group !== 'first' ? 2 : 0,
223
+ ml: spaced && direction === 'row' && group !== 'first' ? space : 0,
220
224
  px: 3,
221
225
  py: 2,
222
226
  pointerEvents: disabled ? 'none' : 'auto',
@@ -272,6 +276,7 @@ Button.propTypes = {
272
276
  onClick: PropTypes.func,
273
277
  submit: PropTypes.bool,
274
278
  spaced: PropTypes.bool,
279
+ space: PropTypes.number,
275
280
  direction: PropTypes.oneOf(['column', 'row']),
276
281
  className: PropTypes.string,
277
282
  group: PropTypes.oneOf(['first', 'inbetween', 'last']),
@@ -285,7 +290,8 @@ Button.propTypes = {
285
290
  iconSize: PropTypes.number,
286
291
  form: PropTypes.string,
287
292
  tabIndex: PropTypes.number,
288
- ariaLabel: PropTypes.string
293
+ ariaLabel: PropTypes.string,
294
+ stretch: PropTypes.bool
289
295
  };
290
296
  Button.displayName = 'Button';
291
297
  export default createStyledComponent(styles, Button);
package/es/ButtonGroup.js CHANGED
@@ -14,12 +14,14 @@ const getGroupByIndex = (index, length) => {
14
14
  return 'inbetween';
15
15
  };
16
16
 
17
- const addGroupProps = (children, spaced, direction) => React.Children.map(children, (child, index) => {
17
+ const addGroupProps = (children, spaced, space, direction, stretch) => React.Children.map(children, (child, index) => {
18
18
  if ( /*#__PURE__*/React.isValidElement(child)) {
19
19
  return /*#__PURE__*/React.cloneElement(child, {
20
20
  group: getGroupByIndex(index, React.Children.count(children)),
21
21
  spaced,
22
- direction
22
+ space,
23
+ direction,
24
+ stretch
23
25
  });
24
26
  }
25
27
 
@@ -30,15 +32,19 @@ const ButtonGroup = ({
30
32
  className,
31
33
  children,
32
34
  spaced,
33
- direction = 'row'
35
+ space,
36
+ direction = 'row',
37
+ stretch
34
38
  }) => {
35
39
  return /*#__PURE__*/React.createElement("div", {
36
40
  className: className
37
- }, addGroupProps(children, spaced, direction));
41
+ }, addGroupProps(children, spaced, space, direction, stretch));
38
42
  };
39
43
 
40
44
  ButtonGroup.propTypes = {
41
45
  spaced: PropTypes.bool,
46
+ space: PropTypes.number,
47
+ stretch: PropTypes.bool,
42
48
  className: PropTypes.string.isRequired,
43
49
  direction: PropTypes.oneOf(['column', 'row'])
44
50
  };
package/es/TextButton.js CHANGED
@@ -1,3 +1,4 @@
1
+ import PropTypes from 'prop-types';
1
2
  import { createStyledComponent } from '@cloudflare/style-container';
2
3
  const TextButton = createStyledComponent(({
3
4
  theme
@@ -17,6 +18,7 @@ const TextButton = createStyledComponent(({
17
18
  fontSize: 2,
18
19
  fontWeight: 400,
19
20
  outline: 'none',
21
+ overflow: 'hidden',
20
22
  ':hover': {
21
23
  color: theme.colors.orange[6]
22
24
  },
@@ -25,4 +27,8 @@ const TextButton = createStyledComponent(({
25
27
  outlineOffset: '1px'
26
28
  }
27
29
  }), 'button');
30
+ TextButton.propTypes = {
31
+ 'data-testid': PropTypes.string
32
+ };
33
+ TextButton.displayName = 'TextButton';
28
34
  export default TextButton;
package/lib/Button.js CHANGED
@@ -165,8 +165,11 @@ var styles = function styles(props) {
165
165
  inverted = _props$inverted === void 0 ? false : _props$inverted,
166
166
  group = props.group,
167
167
  spaced = props.spaced,
168
+ _props$space = props.space,
169
+ space = _props$space === void 0 ? 2 : _props$space,
168
170
  _props$type = props.type,
169
- type = _props$type === void 0 ? 'default' : _props$type;
171
+ type = _props$type === void 0 ? 'default' : _props$type,
172
+ stretch = props.stretch;
170
173
  var normalStyles = buttonColors(theme).normal;
171
174
  var hoverStyles = interactionStyleAccessor('hover', props);
172
175
  var activeStyles = interactionStyleAccessor('active', props);
@@ -189,6 +192,7 @@ var styles = function styles(props) {
189
192
  color: loading ? 'transparent' : colorAccessor(normalStyles.color, props),
190
193
  cursor: disabled || loading ? 'default' : 'pointer',
191
194
  display: 'inline-flex',
195
+ flexGrow: stretch ? 1 : undefined,
192
196
  alignItems: 'center',
193
197
  justifyContent: 'center',
194
198
  fontFamily: theme.fontFamily,
@@ -229,10 +233,10 @@ var styles = function styles(props) {
229
233
  animationTimingFunction: 'linear'
230
234
  } : undefined,
231
235
  opacity: disabled ? 0.5 : 'inherit',
232
- mt: spaced && direction === 'column' && group !== 'first' ? 2 : 0,
236
+ mt: spaced && direction === 'column' && group !== 'first' ? space : 0,
233
237
  mr: 0,
234
238
  mb: 0,
235
- ml: spaced && direction === 'row' && group !== 'first' ? 2 : 0,
239
+ ml: spaced && direction === 'row' && group !== 'first' ? space : 0,
236
240
  px: 3,
237
241
  py: 2,
238
242
  pointerEvents: disabled ? 'none' : 'auto',
@@ -291,6 +295,7 @@ Button.propTypes = {
291
295
  onClick: _propTypes.default.func,
292
296
  submit: _propTypes.default.bool,
293
297
  spaced: _propTypes.default.bool,
298
+ space: _propTypes.default.number,
294
299
  direction: _propTypes.default.oneOf(['column', 'row']),
295
300
  className: _propTypes.default.string,
296
301
  group: _propTypes.default.oneOf(['first', 'inbetween', 'last']),
@@ -304,7 +309,8 @@ Button.propTypes = {
304
309
  iconSize: _propTypes.default.number,
305
310
  form: _propTypes.default.string,
306
311
  tabIndex: _propTypes.default.number,
307
- ariaLabel: _propTypes.default.string
312
+ ariaLabel: _propTypes.default.string,
313
+ stretch: _propTypes.default.bool
308
314
  };
309
315
  Button.displayName = 'Button';
310
316
 
@@ -25,13 +25,15 @@ var getGroupByIndex = function getGroupByIndex(index, length) {
25
25
  return 'inbetween';
26
26
  };
27
27
 
28
- var addGroupProps = function addGroupProps(children, spaced, direction) {
28
+ var addGroupProps = function addGroupProps(children, spaced, space, direction, stretch) {
29
29
  return _react.default.Children.map(children, function (child, index) {
30
30
  if ( /*#__PURE__*/_react.default.isValidElement(child)) {
31
31
  return /*#__PURE__*/_react.default.cloneElement(child, {
32
32
  group: getGroupByIndex(index, _react.default.Children.count(children)),
33
33
  spaced: spaced,
34
- direction: direction
34
+ space: space,
35
+ direction: direction,
36
+ stretch: stretch
35
37
  });
36
38
  }
37
39
 
@@ -43,15 +45,19 @@ var ButtonGroup = function ButtonGroup(_ref) {
43
45
  var className = _ref.className,
44
46
  children = _ref.children,
45
47
  spaced = _ref.spaced,
48
+ space = _ref.space,
46
49
  _ref$direction = _ref.direction,
47
- direction = _ref$direction === void 0 ? 'row' : _ref$direction;
50
+ direction = _ref$direction === void 0 ? 'row' : _ref$direction,
51
+ stretch = _ref.stretch;
48
52
  return /*#__PURE__*/_react.default.createElement("div", {
49
53
  className: className
50
- }, addGroupProps(children, spaced, direction));
54
+ }, addGroupProps(children, spaced, space, direction, stretch));
51
55
  };
52
56
 
53
57
  ButtonGroup.propTypes = {
54
58
  spaced: _propTypes.default.bool,
59
+ space: _propTypes.default.number,
60
+ stretch: _propTypes.default.bool,
55
61
  className: _propTypes.default.string.isRequired,
56
62
  direction: _propTypes.default.oneOf(['column', 'row'])
57
63
  };
package/lib/TextButton.js CHANGED
@@ -5,8 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
8
10
  var _styleContainer = require("@cloudflare/style-container");
9
11
 
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
10
14
  var TextButton = (0, _styleContainer.createStyledComponent)(function (_ref) {
11
15
  var theme = _ref.theme;
12
16
  return {
@@ -25,6 +29,7 @@ var TextButton = (0, _styleContainer.createStyledComponent)(function (_ref) {
25
29
  fontSize: 2,
26
30
  fontWeight: 400,
27
31
  outline: 'none',
32
+ overflow: 'hidden',
28
33
  ':hover': {
29
34
  color: theme.colors.orange[6]
30
35
  },
@@ -34,5 +39,9 @@ var TextButton = (0, _styleContainer.createStyledComponent)(function (_ref) {
34
39
  }
35
40
  };
36
41
  }, 'button');
42
+ TextButton.propTypes = {
43
+ 'data-testid': _propTypes.default.string
44
+ };
45
+ TextButton.displayName = 'TextButton';
37
46
  var _default = TextButton;
38
47
  exports.default = _default;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudflare/component-button",
3
3
  "description": "Cloudflare Button Component",
4
- "version": "2.11.24",
4
+ "version": "2.12.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
7
7
  "author": "James Kyle <jkyle@cloudflare.com>",
@@ -12,9 +12,9 @@
12
12
  "access": "public"
13
13
  },
14
14
  "dependencies": {
15
- "@cloudflare/component-icon": "^6.6.6",
16
- "@cloudflare/style-const": "^5.1.20",
17
- "@cloudflare/style-container": "^7.5.26",
15
+ "@cloudflare/component-icon": "^6.6.9",
16
+ "@cloudflare/style-const": "^5.2.0",
17
+ "@cloudflare/style-container": "^7.6.0",
18
18
  "polished": "^1.9.3",
19
19
  "prop-types": "^15.6.0"
20
20
  },
@@ -32,5 +32,5 @@
32
32
  "test-coverage": "stratus test --coverage",
33
33
  "test-watch": "stratus test --watch"
34
34
  },
35
- "gitHead": "97022ab0ef7b3baa3a3efe830c7776b7c340dd2f"
35
+ "gitHead": "b7c207b9d1a4a78c3412f7ad4185e92ec36c4f5e"
36
36
  }