@planningcenter/tapestry-react 2.9.0-rc.8 → 2.9.1

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.
@@ -23,7 +23,7 @@ var _VariantProvider = require("../VariantProvider");
23
23
 
24
24
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
25
25
 
26
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } /** @jsxRuntime classic */ /** @jsx jsx */
27
27
 
28
28
  var defaultElement = 'div';
29
29
  /**
@@ -80,8 +80,7 @@ function FilterLayout(props) {
80
80
  shrink: 1
81
81
  }, header)), /*#__PURE__*/React.createElement(_Divider["default"], null), /*#__PURE__*/React.createElement(_StackView["default"], {
82
82
  axis: "horizontal",
83
- grow: 1,
84
- overflow: "hidden"
83
+ grow: 1
85
84
  }, /*#__PURE__*/React.createElement(_StackView["default"], {
86
85
  visible: sidebarOpen,
87
86
  basis: fill ? '100%' : sidebarWidth + 'px',
@@ -92,7 +91,9 @@ function FilterLayout(props) {
92
91
  visibility: sidebarOpen && fill ? 'hidden' : 'visible',
93
92
  maxHeight: sidebarOpen && fill ? 0 : 'initial',
94
93
  grow: 1,
95
- shrink: sidebarOpen && fill ? 0 : 1,
94
+ shrink: 1,
96
95
  basis: "100%"
97
- }, toolbar, /*#__PURE__*/React.createElement(_Divider["default"], null), table)));
96
+ }, /*#__PURE__*/React.createElement(_Box["default"], {
97
+ overflow: "hidden"
98
+ }, toolbar), /*#__PURE__*/React.createElement(_Divider["default"], null), table)));
98
99
  }
@@ -25,7 +25,7 @@ var _VariantProvider = require("../VariantProvider");
25
25
 
26
26
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
27
27
 
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } /** @jsxRuntime classic */ /** @jsx jsx */
29
29
 
30
30
  function getTemplateValue(value) {
31
31
  return value ? value.constructor === Array ? value.map(function (v) {
@@ -244,7 +244,10 @@ var ItemList = /*#__PURE__*/function (_Component) {
244
244
  return typeof selected === 'function' ? selected(data) : selected === data;
245
245
  });
246
246
  return _this;
247
- }
247
+ } // String Search
248
+ // Highlight
249
+ // Select
250
+
248
251
 
249
252
  var _proto = ItemList.prototype;
250
253
 
@@ -27,7 +27,7 @@ var _VariantProvider = require("../VariantProvider");
27
27
 
28
28
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
29
29
 
30
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
30
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } /** @jsxRuntime classic */ /** @jsx jsx */
31
31
 
32
32
  var BASELINE = 'baseline';
33
33
  var CENTER = 'center';
@@ -25,7 +25,7 @@ var _VariantProvider = require("../VariantProvider");
25
25
 
26
26
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
27
27
 
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } /** @jsxRuntime classic */ /** @jsx jsx */
29
29
 
30
30
  var textPlugin = {
31
31
  styleProps: ['italic', 'truncate', 'size', 'underline', 'weight', 'wrap'],
@@ -25,7 +25,7 @@ var _VariantProvider = require("../VariantProvider");
25
25
 
26
26
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
27
27
 
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
28
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } /** @jsxRuntime classic */ /** @jsx jsx */
29
29
 
30
30
  var tileViewPlugin = {
31
31
  styleProps: ['minCellWidth', 'spacing'],
@@ -72,12 +72,14 @@ function ToggleSwitch(props) {
72
72
  axis: "horizontal",
73
73
  spacing: size === 'xs' ? 0.5 : size === 'sm' ? 0.75 : 1
74
74
  }, /*#__PURE__*/_react["default"].createElement(_Button["default"], (0, _extends2["default"])({
75
+ "aria-checked": isChecked,
75
76
  as: "button",
76
77
  backgroundColor: disabled ? _colors.colors.grays.light.neutral81 : isChecked ? backgroundColor : _colors.colors.grays.light.neutral62,
77
78
  onClick: onClick,
78
79
  opacity: 1,
79
80
  position: "relative",
80
81
  radius: "pill",
82
+ role: "switch",
81
83
  theme: false,
82
84
  disabled: disabled,
83
85
  tooltip: tooltip
@@ -20,7 +20,7 @@ describe('ToggleSwitch component', function () {
20
20
  })),
21
21
  getByRole = _render.getByRole;
22
22
 
23
- var toggleButton = getByRole('button');
23
+ var toggleButton = getByRole('switch');
24
24
  expect(toggleButton).toBeInTheDocument();
25
25
  });
26
26
  it('should call onClick when clicked', function () {
@@ -33,7 +33,7 @@ describe('ToggleSwitch component', function () {
33
33
  })),
34
34
  getByRole = _render2.getByRole;
35
35
 
36
- var toggleButton = getByRole('button');
36
+ var toggleButton = getByRole('switch');
37
37
 
38
38
  _react2.fireEvent.click(toggleButton);
39
39
 
@@ -62,21 +62,43 @@ describe('ToggleSwitch component', function () {
62
62
  })),
63
63
  getByRole = _render4.getByRole;
64
64
 
65
- var toggleButton = getByRole('button');
65
+ var toggleButton = getByRole('switch');
66
66
  expect(toggleButton).toHaveStyle("background-color: " + activeColor);
67
67
  });
68
+ it('should apply aria-checked="true" when isChecked is true', function () {
69
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleSwitch["default"], {
70
+ isChecked: true,
71
+ label: "Toggle me",
72
+ onClick: function onClick() {}
73
+ })),
74
+ getByRole = _render5.getByRole;
75
+
76
+ var toggleButton = getByRole('switch');
77
+ expect(toggleButton).toHaveAttribute('aria-checked', 'true');
78
+ });
79
+ it('should apply aria-checked="false" when isChecked is false', function () {
80
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleSwitch["default"], {
81
+ isChecked: false,
82
+ label: "Toggle me",
83
+ onClick: function onClick() {}
84
+ })),
85
+ getByRole = _render6.getByRole;
86
+
87
+ var toggleButton = getByRole('switch');
88
+ expect(toggleButton).toHaveAttribute('aria-checked', 'false');
89
+ });
68
90
  it('should not be clickable when disabled', function () {
69
91
  var mockOnClick = jest.fn();
70
92
 
71
- var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleSwitch["default"], {
93
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleSwitch["default"], {
72
94
  disabled: true,
73
95
  isChecked: false,
74
96
  label: "Toggle me",
75
97
  onClick: mockOnClick
76
98
  })),
77
- getByRole = _render5.getByRole;
99
+ getByRole = _render7.getByRole;
78
100
 
79
- var toggleButton = getByRole('button');
101
+ var toggleButton = getByRole('switch');
80
102
 
81
103
  _react2.fireEvent.click(toggleButton);
82
104
 
@@ -84,41 +106,41 @@ describe('ToggleSwitch component', function () {
84
106
  });
85
107
  describe('it should apply the correct size', function () {
86
108
  it("should apply the correct size for xs", function () {
87
- var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleSwitch["default"], {
109
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleSwitch["default"], {
88
110
  isChecked: false,
89
111
  label: "Toggle me",
90
112
  onClick: function onClick() {},
91
113
  size: "xs"
92
114
  })),
93
- getByRole = _render6.getByRole;
115
+ getByRole = _render8.getByRole;
94
116
 
95
- var toggleButton = getByRole('button');
117
+ var toggleButton = getByRole('switch');
96
118
  expect(toggleButton).toHaveStyle("height: " + base * 2 + "px");
97
119
  expect(toggleButton).toHaveStyle("width: " + base * 3.5 + "px");
98
120
  });
99
121
  it("should apply the correct size for sm", function () {
100
- var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleSwitch["default"], {
122
+ var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleSwitch["default"], {
101
123
  isChecked: false,
102
124
  label: "Toggle me",
103
125
  onClick: function onClick() {},
104
126
  size: "sm"
105
127
  })),
106
- getByRole = _render7.getByRole;
128
+ getByRole = _render9.getByRole;
107
129
 
108
- var toggleButton = getByRole('button');
130
+ var toggleButton = getByRole('switch');
109
131
  expect(toggleButton).toHaveStyle("height: " + base * 2.25 + "px");
110
132
  expect(toggleButton).toHaveStyle("width: " + base * 4 + "px");
111
133
  });
112
134
  it("should apply the correct default size (md)", function () {
113
- var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleSwitch["default"], {
135
+ var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ToggleSwitch["default"], {
114
136
  isChecked: false,
115
137
  label: "Toggle me",
116
138
  onClick: function onClick() {},
117
139
  size: "md"
118
140
  })),
119
- getByRole = _render8.getByRole;
141
+ getByRole = _render10.getByRole;
120
142
 
121
- var toggleButton = getByRole('button');
143
+ var toggleButton = getByRole('switch');
122
144
  expect(toggleButton).toHaveStyle("height: " + base * 2.5 + "px");
123
145
  expect(toggleButton).toHaveStyle("width: " + base * 4.375 + "px");
124
146
  });
@@ -111,7 +111,9 @@ var Measure = /*#__PURE__*/function (_Component) {
111
111
  }
112
112
  }));
113
113
  return _this;
114
- }
114
+ } // prevent firing two renders when component mounts, getting measurements in bind
115
+ // is faster than attaching a ResizeObserver and waiting for the first callback
116
+
115
117
 
116
118
  var _proto = Measure.prototype;
117
119
 
@@ -67,8 +67,7 @@ export function FilterLayout(props) {
67
67
  shrink: 1
68
68
  }, header)), _ref, /*#__PURE__*/React.createElement(StackView, {
69
69
  axis: "horizontal",
70
- grow: 1,
71
- overflow: "hidden"
70
+ grow: 1
72
71
  }, /*#__PURE__*/React.createElement(StackView, {
73
72
  visible: sidebarOpen,
74
73
  basis: fill ? '100%' : sidebarWidth + 'px',
@@ -79,7 +78,9 @@ export function FilterLayout(props) {
79
78
  visibility: sidebarOpen && fill ? 'hidden' : 'visible',
80
79
  maxHeight: sidebarOpen && fill ? 0 : 'initial',
81
80
  grow: 1,
82
- shrink: sidebarOpen && fill ? 0 : 1,
81
+ shrink: 1,
83
82
  basis: "100%"
84
- }, toolbar, _ref2, table)));
83
+ }, /*#__PURE__*/React.createElement(Box, {
84
+ overflow: "hidden"
85
+ }, toolbar), _ref2, table)));
85
86
  }
@@ -255,7 +255,10 @@ var ItemList = /*#__PURE__*/function (_Component) {
255
255
  });
256
256
 
257
257
  return _this;
258
- }
258
+ } // String Search
259
+ // Highlight
260
+ // Select
261
+
259
262
 
260
263
  var _proto = ItemList.prototype;
261
264
 
@@ -55,12 +55,14 @@ export function ToggleSwitch(props) {
55
55
  axis: "horizontal",
56
56
  spacing: size === 'xs' ? 0.5 : size === 'sm' ? 0.75 : 1
57
57
  }, /*#__PURE__*/React.createElement(Button, _extends({
58
+ "aria-checked": isChecked,
58
59
  as: "button",
59
60
  backgroundColor: disabled ? colors.grays.light.neutral81 : isChecked ? backgroundColor : colors.grays.light.neutral62,
60
61
  onClick: onClick,
61
62
  opacity: 1,
62
63
  position: "relative",
63
64
  radius: "pill",
65
+ role: "switch",
64
66
  theme: false,
65
67
  disabled: disabled,
66
68
  tooltip: tooltip
@@ -12,7 +12,7 @@ describe('ToggleSwitch component', function () {
12
12
  })),
13
13
  getByRole = _render.getByRole;
14
14
 
15
- var toggleButton = getByRole('button');
15
+ var toggleButton = getByRole('switch');
16
16
  expect(toggleButton).toBeInTheDocument();
17
17
  });
18
18
  it('should call onClick when clicked', function () {
@@ -25,7 +25,7 @@ describe('ToggleSwitch component', function () {
25
25
  })),
26
26
  getByRole = _render2.getByRole;
27
27
 
28
- var toggleButton = getByRole('button');
28
+ var toggleButton = getByRole('switch');
29
29
  fireEvent.click(toggleButton);
30
30
  expect(mockOnClick).toHaveBeenCalled();
31
31
  });
@@ -52,61 +52,83 @@ describe('ToggleSwitch component', function () {
52
52
  })),
53
53
  getByRole = _render4.getByRole;
54
54
 
55
- var toggleButton = getByRole('button');
55
+ var toggleButton = getByRole('switch');
56
56
  expect(toggleButton).toHaveStyle("background-color: " + activeColor);
57
57
  });
58
+ it('should apply aria-checked="true" when isChecked is true', function () {
59
+ var _render5 = render( /*#__PURE__*/React.createElement(ToggleSwitch, {
60
+ isChecked: true,
61
+ label: "Toggle me",
62
+ onClick: function onClick() {}
63
+ })),
64
+ getByRole = _render5.getByRole;
65
+
66
+ var toggleButton = getByRole('switch');
67
+ expect(toggleButton).toHaveAttribute('aria-checked', 'true');
68
+ });
69
+ it('should apply aria-checked="false" when isChecked is false', function () {
70
+ var _render6 = render( /*#__PURE__*/React.createElement(ToggleSwitch, {
71
+ isChecked: false,
72
+ label: "Toggle me",
73
+ onClick: function onClick() {}
74
+ })),
75
+ getByRole = _render6.getByRole;
76
+
77
+ var toggleButton = getByRole('switch');
78
+ expect(toggleButton).toHaveAttribute('aria-checked', 'false');
79
+ });
58
80
  it('should not be clickable when disabled', function () {
59
81
  var mockOnClick = jest.fn();
60
82
 
61
- var _render5 = render( /*#__PURE__*/React.createElement(ToggleSwitch, {
83
+ var _render7 = render( /*#__PURE__*/React.createElement(ToggleSwitch, {
62
84
  disabled: true,
63
85
  isChecked: false,
64
86
  label: "Toggle me",
65
87
  onClick: mockOnClick
66
88
  })),
67
- getByRole = _render5.getByRole;
89
+ getByRole = _render7.getByRole;
68
90
 
69
- var toggleButton = getByRole('button');
91
+ var toggleButton = getByRole('switch');
70
92
  fireEvent.click(toggleButton);
71
93
  expect(mockOnClick).not.toHaveBeenCalled();
72
94
  });
73
95
  describe('it should apply the correct size', function () {
74
96
  it("should apply the correct size for xs", function () {
75
- var _render6 = render( /*#__PURE__*/React.createElement(ToggleSwitch, {
97
+ var _render8 = render( /*#__PURE__*/React.createElement(ToggleSwitch, {
76
98
  isChecked: false,
77
99
  label: "Toggle me",
78
100
  onClick: function onClick() {},
79
101
  size: "xs"
80
102
  })),
81
- getByRole = _render6.getByRole;
103
+ getByRole = _render8.getByRole;
82
104
 
83
- var toggleButton = getByRole('button');
105
+ var toggleButton = getByRole('switch');
84
106
  expect(toggleButton).toHaveStyle("height: " + base * 2 + "px");
85
107
  expect(toggleButton).toHaveStyle("width: " + base * 3.5 + "px");
86
108
  });
87
109
  it("should apply the correct size for sm", function () {
88
- var _render7 = render( /*#__PURE__*/React.createElement(ToggleSwitch, {
110
+ var _render9 = render( /*#__PURE__*/React.createElement(ToggleSwitch, {
89
111
  isChecked: false,
90
112
  label: "Toggle me",
91
113
  onClick: function onClick() {},
92
114
  size: "sm"
93
115
  })),
94
- getByRole = _render7.getByRole;
116
+ getByRole = _render9.getByRole;
95
117
 
96
- var toggleButton = getByRole('button');
118
+ var toggleButton = getByRole('switch');
97
119
  expect(toggleButton).toHaveStyle("height: " + base * 2.25 + "px");
98
120
  expect(toggleButton).toHaveStyle("width: " + base * 4 + "px");
99
121
  });
100
122
  it("should apply the correct default size (md)", function () {
101
- var _render8 = render( /*#__PURE__*/React.createElement(ToggleSwitch, {
123
+ var _render10 = render( /*#__PURE__*/React.createElement(ToggleSwitch, {
102
124
  isChecked: false,
103
125
  label: "Toggle me",
104
126
  onClick: function onClick() {},
105
127
  size: "md"
106
128
  })),
107
- getByRole = _render8.getByRole;
129
+ getByRole = _render10.getByRole;
108
130
 
109
- var toggleButton = getByRole('button');
131
+ var toggleButton = getByRole('switch');
110
132
  expect(toggleButton).toHaveStyle("height: " + base * 2.5 + "px");
111
133
  expect(toggleButton).toHaveStyle("width: " + base * 4.375 + "px");
112
134
  });
@@ -109,7 +109,9 @@ var Measure = /*#__PURE__*/function (_Component) {
109
109
  }));
110
110
 
111
111
  return _this;
112
- }
112
+ } // prevent firing two renders when component mounts, getting measurements in bind
113
+ // is faster than attaching a ResizeObserver and waiting for the first callback
114
+
113
115
 
114
116
  var _proto = Measure.prototype;
115
117
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planningcenter/tapestry-react",
3
- "version": "v2.9.0-rc.8",
3
+ "version": "2.9.1",
4
4
  "description": "A collection of flexible React components to help you build resilient, accessible user interfaces quickly and effectively.",
5
5
  "author": "Front End Systems Engineering <frontend@pco.bz>",
6
6
  "main": "dist/cjs/index.js",
@@ -72,7 +72,7 @@ export function FilterLayout(props: Props) {
72
72
  </Box>
73
73
  </StackView>
74
74
  <Divider />
75
- <StackView axis="horizontal" grow={1} overflow="hidden">
75
+ <StackView axis="horizontal" grow={1}>
76
76
  <StackView
77
77
  visible={sidebarOpen}
78
78
  basis={fill ? '100%' : sidebarWidth + 'px'}
@@ -86,10 +86,10 @@ export function FilterLayout(props: Props) {
86
86
  visibility={sidebarOpen && fill ? 'hidden' : 'visible'}
87
87
  maxHeight={sidebarOpen && fill ? 0 : 'initial'}
88
88
  grow={1}
89
- shrink={sidebarOpen && fill ? 0 : 1}
89
+ shrink={1}
90
90
  basis="100%"
91
91
  >
92
- {toolbar}
92
+ <Box overflow="hidden">{toolbar}</Box>
93
93
  <Divider />
94
94
  {table}
95
95
  </StackView>
@@ -11,7 +11,7 @@ describe('ToggleSwitch component', () => {
11
11
  <ToggleSwitch isChecked={false} label="Toggle me" onClick={() => {}} />
12
12
  )
13
13
 
14
- const toggleButton = getByRole('button')
14
+ const toggleButton = getByRole('switch')
15
15
  expect(toggleButton).toBeInTheDocument()
16
16
  })
17
17
 
@@ -21,7 +21,7 @@ describe('ToggleSwitch component', () => {
21
21
  <ToggleSwitch isChecked={false} label="Toggle me" onClick={mockOnClick} />
22
22
  )
23
23
 
24
- const toggleButton = getByRole('button')
24
+ const toggleButton = getByRole('switch')
25
25
  fireEvent.click(toggleButton)
26
26
 
27
27
  expect(mockOnClick).toHaveBeenCalled()
@@ -47,10 +47,28 @@ describe('ToggleSwitch component', () => {
47
47
  />
48
48
  )
49
49
 
50
- const toggleButton = getByRole('button')
50
+ const toggleButton = getByRole('switch')
51
51
  expect(toggleButton).toHaveStyle(`background-color: ${activeColor}`)
52
52
  })
53
53
 
54
+ it('should apply aria-checked="true" when isChecked is true', () => {
55
+ const { getByRole } = render(
56
+ <ToggleSwitch isChecked={true} label="Toggle me" onClick={() => {}} />
57
+ )
58
+
59
+ const toggleButton = getByRole('switch')
60
+ expect(toggleButton).toHaveAttribute('aria-checked', 'true')
61
+ })
62
+
63
+ it('should apply aria-checked="false" when isChecked is false', () => {
64
+ const { getByRole } = render(
65
+ <ToggleSwitch isChecked={false} label="Toggle me" onClick={() => {}} />
66
+ )
67
+
68
+ const toggleButton = getByRole('switch')
69
+ expect(toggleButton).toHaveAttribute('aria-checked', 'false')
70
+ })
71
+
54
72
  it('should not be clickable when disabled', () => {
55
73
  const mockOnClick = jest.fn()
56
74
  const { getByRole } = render(
@@ -62,7 +80,7 @@ describe('ToggleSwitch component', () => {
62
80
  />
63
81
  )
64
82
 
65
- const toggleButton = getByRole('button')
83
+ const toggleButton = getByRole('switch')
66
84
  fireEvent.click(toggleButton)
67
85
 
68
86
  expect(mockOnClick).not.toHaveBeenCalled()
@@ -79,7 +97,7 @@ describe('ToggleSwitch component', () => {
79
97
  />
80
98
  )
81
99
 
82
- const toggleButton = getByRole('button')
100
+ const toggleButton = getByRole('switch')
83
101
  expect(toggleButton).toHaveStyle(`height: ${base * 2}px`)
84
102
  expect(toggleButton).toHaveStyle(`width: ${base * 3.5}px`)
85
103
  })
@@ -93,7 +111,7 @@ describe('ToggleSwitch component', () => {
93
111
  />
94
112
  )
95
113
 
96
- const toggleButton = getByRole('button')
114
+ const toggleButton = getByRole('switch')
97
115
  expect(toggleButton).toHaveStyle(`height: ${base * 2.25}px`)
98
116
  expect(toggleButton).toHaveStyle(`width: ${base * 4}px`)
99
117
  })
@@ -107,7 +125,7 @@ describe('ToggleSwitch component', () => {
107
125
  />
108
126
  )
109
127
 
110
- const toggleButton = getByRole('button')
128
+ const toggleButton = getByRole('switch')
111
129
  expect(toggleButton).toHaveStyle(`height: ${base * 2.5}px`)
112
130
  expect(toggleButton).toHaveStyle(`width: ${base * 4.375}px`)
113
131
  })
@@ -66,6 +66,7 @@ export function ToggleSwitch(props: Props) {
66
66
  spacing={size === 'xs' ? 0.5 : size === 'sm' ? 0.75 : 1}
67
67
  >
68
68
  <Button
69
+ aria-checked={isChecked}
69
70
  as="button"
70
71
  backgroundColor={
71
72
  disabled
@@ -78,6 +79,7 @@ export function ToggleSwitch(props: Props) {
78
79
  opacity={1}
79
80
  position="relative"
80
81
  radius="pill"
82
+ role="switch"
81
83
  theme={false}
82
84
  {...{ disabled, tooltip }}
83
85
  {...toggleButtonProps}