@pingux/astro 2.7.1-alpha.2 → 2.8.0-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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
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.7.1](https://gitlab.corp.pingidentity.com/ux/pingux/compare/@pingux/astro@2.7.0...@pingux/astro@2.7.1) (2023-07-11)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * [UIP-6391] check for navigator before accessing it ([a64af4a](https://gitlab.corp.pingidentity.com/ux/pingux/commit/a64af4a57396a025f684adf9c69b5bd7f6930290))
12
+
13
+
14
+
15
+
16
+
6
17
  # [2.7.0](https://gitlab.corp.pingidentity.com/ux/pingux/compare/@pingux/astro@2.6.0...@pingux/astro@2.7.0) (2023-07-06)
7
18
 
8
19
 
@@ -21,10 +21,10 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-c
21
21
  var _react = _interopRequireWildcard(require("react"));
22
22
  var _reactAria = require("react-aria");
23
23
  var _interactions = require("@react-aria/interactions");
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
25
24
  var _themeUi = require("theme-ui");
26
25
  var _hooks = require("../../hooks");
27
26
  var _Loader = _interopRequireDefault(require("../Loader"));
27
+ var _buttonAttributes = require("./buttonAttributes");
28
28
  var _react2 = require("@emotion/react");
29
29
  var _excluded = ["className", "isDisabled", "isLoading", "onHoverStart", "onHoverChange", "onHoverEnd", "onPress", "onPressStart", "onPressEnd", "onPressChange", "onPressUp", "children", "variant", "tabIndex"];
30
30
  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); }
@@ -101,60 +101,7 @@ var Button = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
101
101
  }
102
102
  })));
103
103
  });
104
- Button.propTypes = {
105
- /** Defines a string value that labels the current element. */
106
- 'aria-label': _propTypes["default"].string,
107
- /** Whether the button is disabled. */
108
- isDisabled: _propTypes["default"].bool,
109
- /** Shows loader instead of children */
110
- isLoading: _propTypes["default"].bool,
111
- /**
112
- * Handler that is called when a hover interaction starts.
113
- * (e: HoverEvent) => void
114
- */
115
- onHoverStart: _propTypes["default"].func,
116
- /**
117
- * Handler that is called when a hover interaction ends.
118
- * (e: HoverEvent) => void
119
- */
120
- onHoverEnd: _propTypes["default"].func,
121
- /**
122
- * Handler that is called when the hover state changes.
123
- * (isHovering: boolean) => void
124
- */
125
- onHoverChange: _propTypes["default"].func,
126
- /**
127
- * Handler that is called when the press is released over the target.
128
- * (e: PressEvent) => void
129
- */
130
- onPress: _propTypes["default"].func,
131
- /**
132
- * Handler that is called when a press interaction starts.
133
- * (e: PressEvent) => void
134
- */
135
- onPressStart: _propTypes["default"].func,
136
- /**
137
- * Handler that is called when a press interaction ends, either over the target or when the
138
- * pointer leaves the target.
139
- * (e: PressEvent) => void
140
- */
141
- onPressEnd: _propTypes["default"].func,
142
- /**
143
- * Handler that is called when the press state changes.
144
- * (isPressed: boolean) => void
145
- */
146
- onPressChange: _propTypes["default"].func,
147
- /**
148
- * Handler that is called when a press is released over the target, regardless of whether it
149
- * started on the target or not.
150
- * (e: PressEvent) => void
151
- */
152
- onPressUp: _propTypes["default"].func,
153
- /** The styling variation of the button. */
154
- variant: _propTypes["default"].string,
155
- /** The focus variation of the button. */
156
- tabIndex: _propTypes["default"].number
157
- };
104
+ Button.propTypes = _buttonAttributes.buttonPropTypes;
158
105
  Button.defaultProps = {
159
106
  isDisabled: false,
160
107
  variant: 'default'
@@ -1,5 +1,12 @@
1
1
  "use strict";
2
2
 
3
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
5
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
8
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
9
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
3
10
  var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
11
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
12
  _Object$defineProperty(exports, "__esModule", {
@@ -8,6 +15,7 @@ _Object$defineProperty(exports, "__esModule", {
8
15
  exports["default"] = exports.TextIconButton = exports.Primary = exports.InlineButton = exports.FilterButton = exports.Disabled = exports.Default = exports.Critical = exports.ColorBlockButton = void 0;
9
16
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
10
17
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
18
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
11
19
  var _react = _interopRequireDefault(require("react"));
12
20
  var _AddCircleIcon = _interopRequireDefault(require("@pingux/mdi-react/AddCircleIcon"));
13
21
  var _CreateIcon = _interopRequireDefault(require("@pingux/mdi-react/CreateIcon"));
@@ -16,43 +24,17 @@ var _storybookAddonDesigns = require("storybook-addon-designs");
16
24
  var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
17
25
  var _index = require("../../index");
18
26
  var _figmaLinks = require("../../utils/designUtils/figmaLinks.js");
19
- var _variants = require("../../utils/devUtils/constants/variants");
20
27
  var _Button = _interopRequireDefault(require("./Button.mdx"));
28
+ var _buttonAttributes = require("./buttonAttributes");
21
29
  var _react2 = require("@emotion/react");
22
30
  var _excluded = ["isConfigured"];
23
- // removing the iconButton variants from this story.
24
- var variants = _variants.buttonVariants;
25
- delete variants.ICON;
26
- delete variants.ICON_BUTTON;
27
- delete variants.INVERTED;
28
-
29
- // add designer approved variants for devs to use here
30
- var variantOptions = ['critical', 'default', 'inline', 'inlinePrimary', 'link', 'primary'];
31
+ 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; }
32
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
31
33
  var _default = {
32
34
  title: 'Components/Button',
33
35
  component: _index.Button,
34
36
  decorators: [_storybookAddonDesigns.withDesign],
35
- argTypes: {
36
- variant: {
37
- control: {
38
- type: 'select',
39
- options: variantOptions
40
- },
41
- defaultValue: 'default'
42
- },
43
- children: {
44
- description: 'Button text.',
45
- defaultValue: 'Button Text',
46
- table: {
47
- type: {
48
- summary: 'string'
49
- }
50
- },
51
- control: {
52
- type: 'text'
53
- }
54
- }
55
- },
37
+ argTypes: _objectSpread({}, _buttonAttributes.buttonArgTypes),
56
38
  parameters: {
57
39
  docs: {
58
40
  source: {
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
5
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
8
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
9
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
10
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
11
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
12
+ _Object$defineProperty(exports, "__esModule", {
13
+ value: true
14
+ });
15
+ exports.buttonPropTypes = exports.buttonArgTypes = void 0;
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
17
+ var _propTypes = _interopRequireDefault(require("prop-types"));
18
+ var _ariaAttributes = require("../../utils/docUtils/ariaAttributes");
19
+ var _docArgTypes = require("../../utils/docUtils/docArgTypes");
20
+ var _hoverProps = require("../../utils/docUtils/hoverProps");
21
+ 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; }
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
23
+ // add designer approved variants for devs to use here
24
+ var variantOptions = ['critical', 'default', 'inline', 'inlinePrimary', 'link', 'primary'];
25
+ var descriptions = {
26
+ isDisabled: 'Whether the button is disabled.',
27
+ isLoading: 'Shows loader instead of children',
28
+ onHoverStart: 'Handler that is called when a hover interaction starts. (e: HoverEvent) => void',
29
+ onHoverEnd: 'Handler that is called when the hover state changes. (isHovering: boolean) => void',
30
+ onHoverChange: 'Handler that is called when the press is released over the target. (e: PressEvent) => void',
31
+ onPress: 'Handler that is called when the press is released over the target. (e: PressEvent) => void',
32
+ onPressChange: 'Handler that is called when the press state changes. (isPressed: boolean) => void',
33
+ onPressEnd: 'Handler that is called when a press interaction ends, either over the target or when the pointer leaves the target. (e: PressEvent) => void',
34
+ onPressStart: 'Handler that is called when a press interaction starts. (e: PressEvent) => void',
35
+ onPressUp: 'Handler that is called when a press is released over the target, regardless of whether it started on the target or not. (e: PressEvent) => void',
36
+ variant: 'The styling variation of the button.',
37
+ tabIndex: 'The focus variation of button',
38
+ children: 'Button text.'
39
+ };
40
+ var buttonArgTypes = _objectSpread(_objectSpread({
41
+ variant: {
42
+ control: {
43
+ type: 'select',
44
+ options: variantOptions
45
+ },
46
+ defaultValue: 'default',
47
+ description: descriptions.variant
48
+ },
49
+ children: {
50
+ defaultValue: 'Button Text',
51
+ table: {
52
+ type: {
53
+ summary: 'string'
54
+ }
55
+ },
56
+ control: {
57
+ type: 'text'
58
+ },
59
+ description: descriptions.children
60
+ },
61
+ onPress: _objectSpread({
62
+ description: descriptions.onPress
63
+ }, _docArgTypes.funcArg),
64
+ onPressStart: _objectSpread({
65
+ description: descriptions.onPressStart
66
+ }, _docArgTypes.funcArg),
67
+ onPressEnd: _objectSpread({
68
+ description: descriptions.onPressEnd
69
+ }, _docArgTypes.funcArg),
70
+ onPressChange: _objectSpread({
71
+ description: descriptions.onPressChange
72
+ }, _docArgTypes.funcArg),
73
+ onPressUp: _objectSpread({
74
+ description: descriptions.onPressUp
75
+ }, _docArgTypes.funcArg)
76
+ }, _hoverProps.onHoverArgTypes), {}, {
77
+ isLoading: _objectSpread(_objectSpread({}, _docArgTypes.booleanArg), {}, {
78
+ description: descriptions.isLoading
79
+ }),
80
+ isDisabled: _objectSpread(_objectSpread({}, _docArgTypes.booleanArg), {}, {
81
+ description: descriptions.isDisabled
82
+ }),
83
+ tabIndex: {
84
+ description: descriptions.tabIndex
85
+ },
86
+ 'aria-label': {
87
+ control: {
88
+ type: 'text'
89
+ },
90
+ description: _ariaAttributes.descriptions.ariaLabel
91
+ }
92
+ });
93
+ exports.buttonArgTypes = buttonArgTypes;
94
+ var buttonPropTypes = {
95
+ 'aria-label': _propTypes["default"].string,
96
+ isDisabled: _propTypes["default"].bool,
97
+ isLoading: _propTypes["default"].bool,
98
+ onHoverStart: _propTypes["default"].func,
99
+ onHoverEnd: _propTypes["default"].func,
100
+ onHoverChange: _propTypes["default"].func,
101
+ onPress: _propTypes["default"].func,
102
+ onPressStart: _propTypes["default"].func,
103
+ onPressEnd: _propTypes["default"].func,
104
+ onPressChange: _propTypes["default"].func,
105
+ onPressUp: _propTypes["default"].func,
106
+ variant: _propTypes["default"].string,
107
+ tabIndex: _propTypes["default"].number
108
+ };
109
+ exports.buttonPropTypes = buttonPropTypes;
@@ -127,7 +127,7 @@ test('should be able to select dates', function () {
127
127
  _userEvent["default"].click(dateButtons[4]);
128
128
  expect(dateButtons[4]).toHaveClass('is-selected');
129
129
  });
130
- test('should be able to navigate and select shown previous month dates', function () {
130
+ test('should be able to navigate to previous month dates without selection', function () {
131
131
  var _context3;
132
132
  getComponent({
133
133
  defaultValue: '2022-08-10'
@@ -138,10 +138,10 @@ test('should be able to navigate and select shown previous month dates', functio
138
138
  var previousDate = disabledGridCells[0];
139
139
  expect((0, _testWrapper.within)(previousDate).getByText(31)).toHaveAttribute('aria-label', 'Sunday, July 31, 2022');
140
140
  _userEvent["default"].click(previousDate);
141
- var selectedDate = _testWrapper.screen.queryByText(31);
142
- expect(selectedDate).toHaveAttribute('aria-label', 'Sunday, July 31, 2022 selected');
141
+ var selectedMonth = _testWrapper.screen.queryByRole('grid');
142
+ expect(selectedMonth).toHaveAttribute('aria-label', 'July 2022');
143
143
  });
144
- test('should be able to navigate and select shown next month dates', function () {
144
+ test('should be able to navigate to next month dates without selection', function () {
145
145
  var _context4;
146
146
  getComponent({
147
147
  defaultValue: '2022-08-10'
@@ -152,8 +152,8 @@ test('should be able to navigate and select shown next month dates', function ()
152
152
  var NextDate = disabledGridCells[34];
153
153
  expect((0, _testWrapper.within)(NextDate).getByText(3)).toHaveAttribute('aria-label', 'Saturday, September 3, 2022');
154
154
  _userEvent["default"].click(NextDate);
155
- var selectedDate = _testWrapper.screen.queryByText(3);
156
- expect(selectedDate).toHaveAttribute('aria-label', 'Saturday, September 3, 2022 selected');
155
+ var selectedMonth = _testWrapper.screen.queryByRole('grid');
156
+ expect(selectedMonth).toHaveAttribute('aria-label', 'September 2022');
157
157
  });
158
158
  test('allows users to open calendar item with enter / space key', function () {
159
159
  getComponent({
@@ -50,8 +50,8 @@ var CalendarCell = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
50
50
  formattedDate = _useCalendarCell.formattedDate,
51
51
  isDisabled = _useCalendarCell.isDisabled;
52
52
  var focusPreviousPage = state.focusPreviousPage,
53
- setValue = state.setValue,
54
- focusNextPage = state.focusNextPage;
53
+ focusNextPage = state.focusNextPage,
54
+ setFocused = state.setFocused;
55
55
 
56
56
  /**
57
57
  * Function handles the navigation and adds focus to previous or next month dates
@@ -61,13 +61,13 @@ var CalendarCell = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
61
61
  var handleDisableClick = (0, _react.useCallback)(function () {
62
62
  var _cellRef$current, _cellRef$current2;
63
63
  if ((_cellRef$current = cellRef.current) !== null && _cellRef$current !== void 0 && _cellRef$current.hidden && !state.isDisabled && formattedDate > 20) {
64
+ setFocused(undefined);
64
65
  focusPreviousPage();
65
- setValue(date);
66
66
  } else if ((_cellRef$current2 = cellRef.current) !== null && _cellRef$current2 !== void 0 && _cellRef$current2.hidden && !state.isDisabled && formattedDate < 15) {
67
+ setFocused(undefined);
67
68
  focusNextPage();
68
- setValue(date);
69
69
  }
70
- }, [date, focusNextPage, focusPreviousPage, formattedDate, setValue, state]);
70
+ }, [date, focusNextPage, focusPreviousPage, formattedDate, state, setFocused]);
71
71
  var _useHover = (0, _interactions.useHover)({}),
72
72
  hoverProps = _useHover.hoverProps,
73
73
  isHovered = _useHover.isHovered;
@@ -116,6 +116,7 @@ CalendarCell.propTypes = {
116
116
  focusPreviousPage: _propTypes["default"].func,
117
117
  setValue: _propTypes["default"].func,
118
118
  focusNextPage: _propTypes["default"].func,
119
+ setFocused: _propTypes["default"].func,
119
120
  setFocusedDate: _propTypes["default"].func,
120
121
  isDisabled: _propTypes["default"].bool
121
122
  }),
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _reverse = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reverse"));
10
+ var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
11
+ var _splice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/splice"));
12
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
13
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
15
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
16
+ var _react = _interopRequireDefault(require("react"));
17
+ var _propTypes = _interopRequireDefault(require("prop-types"));
18
+ var _buttonAttributes = require("../../components/Button/buttonAttributes");
19
+ var _index = require("../../index");
20
+ var _react2 = require("@emotion/react");
21
+ var _excluded = ["saveButtonProps", "cancelButtonProps", "refreshButtonProps", "isJustifiedRight", "children"];
22
+ var SaveButton = function SaveButton(props) {
23
+ return (0, _react2.jsx)(_index.Button, (0, _extends2["default"])({
24
+ variant: "primary",
25
+ "data-id": "save-button"
26
+ }, props), props.text);
27
+ };
28
+ var CancelButton = function CancelButton(props) {
29
+ return (0, _react2.jsx)(_index.Button, (0, _extends2["default"])({
30
+ variant: "link",
31
+ "data-id": "cancel-button"
32
+ }, props), props.text);
33
+ };
34
+ var RefreshButton = function RefreshButton(props) {
35
+ return (0, _react2.jsx)(_index.Button, (0, _extends2["default"])({
36
+ "data-id": "refresh-button"
37
+ }, props), props.text);
38
+ };
39
+ var SaveBar = function SaveBar(props) {
40
+ var _context2;
41
+ var saveButtonProps = props.saveButtonProps,
42
+ cancelButtonProps = props.cancelButtonProps,
43
+ refreshButtonProps = props.refreshButtonProps,
44
+ isJustifiedRight = props.isJustifiedRight,
45
+ children = props.children,
46
+ others = (0, _objectWithoutProperties2["default"])(props, _excluded);
47
+ var ButtonArray = [(0, _react2.jsx)(SaveButton, saveButtonProps), (0, _react2.jsx)(CancelButton, cancelButtonProps)];
48
+ var Content = function Content() {
49
+ var _context;
50
+ var content = isJustifiedRight ? (0, _reverse["default"])(_context = (0, _slice["default"])(ButtonArray).call(ButtonArray)).call(_context) : ButtonArray;
51
+ if (refreshButtonProps) {
52
+ (0, _splice["default"])(content).call(content, 1, 0, (0, _react2.jsx)(RefreshButton, refreshButtonProps));
53
+ }
54
+ return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _map["default"])(content).call(content, function (child) {
55
+ return child;
56
+ }));
57
+ };
58
+ return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
59
+ isRow: true,
60
+ gap: "md",
61
+ sx: {
62
+ bg: 'white',
63
+ px: 'lg',
64
+ py: 'md',
65
+ justifyContent: isJustifiedRight ? 'right' : 'left'
66
+ }
67
+ }, others), children ? (0, _concat["default"])(_context2 = []).call(_context2, children) : (0, _react2.jsx)(Content, null));
68
+ };
69
+ SaveBar.propTypes = {
70
+ saveButtonProps: _propTypes["default"].shape(_buttonAttributes.buttonPropTypes),
71
+ cancelButtonProps: _propTypes["default"].shape(_buttonAttributes.buttonPropTypes),
72
+ refreshButtonProps: _propTypes["default"].shape(_buttonAttributes.buttonPropTypes),
73
+ isJustifiedRight: _propTypes["default"].bool
74
+ };
75
+ SaveButton.propTypes = {
76
+ text: _propTypes["default"].string
77
+ };
78
+ CancelButton.propTypes = {
79
+ text: _propTypes["default"].string
80
+ };
81
+ RefreshButton.propTypes = {
82
+ text: _propTypes["default"].string
83
+ };
84
+ var _default = SaveBar;
85
+ exports["default"] = _default;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.WithRefreshButton = exports.WithChildren = exports.JustifiedRight = exports.Default = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
12
+ var _index = require("../../index");
13
+ var _SaveBar = _interopRequireDefault(require("./SaveBar"));
14
+ var _SaveBar2 = _interopRequireDefault(require("./SaveBar.mdx"));
15
+ var _react2 = require("@emotion/react");
16
+ var _default = {
17
+ title: 'Experimental/SaveBar',
18
+ component: _SaveBar["default"],
19
+ parameters: {
20
+ docs: {
21
+ source: {
22
+ type: 'code'
23
+ },
24
+ page: function page() {
25
+ return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_SaveBar2["default"], null), (0, _react2.jsx)(_storybookDocsLayout["default"], null));
26
+ }
27
+ }
28
+ }
29
+ };
30
+ exports["default"] = _default;
31
+ var Default = function Default(args) {
32
+ return (0, _react2.jsx)(_SaveBar["default"], (0, _extends2["default"])({
33
+ saveButtonProps: {
34
+ key: 'save button',
35
+ text: 'Save',
36
+ onPress: function onPress() {
37
+ return alert('Save button pressed');
38
+ }
39
+ },
40
+ cancelButtonProps: {
41
+ key: 'cancel button',
42
+ text: 'Cancel',
43
+ onPress: function onPress() {
44
+ return alert('Cancel button pressed');
45
+ }
46
+ }
47
+ }, args));
48
+ };
49
+ exports.Default = Default;
50
+ var WithRefreshButton = function WithRefreshButton(args) {
51
+ return (0, _react2.jsx)(_SaveBar["default"], (0, _extends2["default"])({
52
+ saveButtonProps: {
53
+ key: 'save button',
54
+ text: 'Save',
55
+ onPress: function onPress() {
56
+ return alert('Save button pressed');
57
+ }
58
+ },
59
+ cancelButtonProps: {
60
+ key: 'cancel button',
61
+ text: 'Cancel',
62
+ onPress: function onPress() {
63
+ return alert('Cancel button pressed');
64
+ }
65
+ },
66
+ refreshButtonProps: {
67
+ key: 'refresh button',
68
+ text: 'Refresh',
69
+ onPress: function onPress() {
70
+ return alert('Refresh button pressed');
71
+ }
72
+ }
73
+ }, args));
74
+ };
75
+ exports.WithRefreshButton = WithRefreshButton;
76
+ var JustifiedRight = function JustifiedRight() {
77
+ return (0, _react2.jsx)(_SaveBar["default"], {
78
+ saveButtonProps: {
79
+ key: 'next button',
80
+ text: 'Next',
81
+ onPress: function onPress() {
82
+ return alert('Save button pressed');
83
+ }
84
+ },
85
+ cancelButtonProps: {
86
+ key: 'cancel button',
87
+ text: 'Cancel',
88
+ onPress: function onPress() {
89
+ return alert('Cancel button pressed');
90
+ }
91
+ },
92
+ isJustifiedRight: true
93
+ });
94
+ };
95
+ exports.JustifiedRight = JustifiedRight;
96
+ var WithChildren = function WithChildren(args) {
97
+ return (0, _react2.jsx)(_SaveBar["default"], args, (0, _react2.jsx)(_index.Button, null, "Custom Button!"), (0, _react2.jsx)(_index.Button, {
98
+ variant: "link"
99
+ }, "Custom Link!"));
100
+ };
101
+ exports.WithChildren = WithChildren;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
5
+ var _react = _interopRequireDefault(require("react"));
6
+ var _testAxe = _interopRequireDefault(require("../../utils/testUtils/testAxe"));
7
+ var _testWrapper = require("../../utils/testUtils/testWrapper");
8
+ var _ = _interopRequireDefault(require("."));
9
+ var _react2 = require("@emotion/react");
10
+ var testId = 'test-SaveBar';
11
+ var saveButtonProps = {
12
+ key: 'save button',
13
+ text: 'Save',
14
+ onPress: function onPress() {
15
+ return alert('Save button pressed');
16
+ }
17
+ };
18
+ var cancelButtonProps = {
19
+ key: 'cancel button',
20
+ text: 'Cancel',
21
+ onPress: function onPress() {
22
+ return alert('Cancel button pressed');
23
+ }
24
+ };
25
+ var refreshButtonProps = {
26
+ key: 'refresh button',
27
+ text: 'Refresh',
28
+ onPress: function onPress() {
29
+ return alert('Refresh button pressed');
30
+ }
31
+ };
32
+ var defaultProps = {
33
+ 'data-testid': testId,
34
+ saveButtonProps: saveButtonProps,
35
+ cancelButtonProps: cancelButtonProps
36
+ };
37
+ var getComponent = function getComponent() {
38
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
39
+ return (0, _testWrapper.render)((0, _react2.jsx)(_["default"], (0, _extends2["default"])({}, defaultProps, props)));
40
+ };
41
+ var getComponentCustomChildren = function getComponentCustomChildren() {
42
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
43
+ return (0, _testWrapper.render)((0, _react2.jsx)(_["default"], (0, _extends2["default"])({}, defaultProps, props), (0, _react2.jsx)("button", null, "custom text"), (0, _react2.jsx)("button", null, "Also custom text")));
44
+ };
45
+ var getComponentTextChildren = function getComponentTextChildren() {
46
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
47
+ return (0, _testWrapper.render)((0, _react2.jsx)(_["default"], props, "custom text"));
48
+ };
49
+ (0, _testAxe["default"])(getComponent);
50
+ afterEach(function () {
51
+ jest.resetAllMocks();
52
+ });
53
+ test('SaveBar does render', function () {
54
+ getComponent({});
55
+ var element = _testWrapper.screen.getByTestId(testId);
56
+ expect(element).toBeInTheDocument();
57
+ });
58
+ test('renders save and cancel buttons', function () {
59
+ getComponent();
60
+ var saveButton = _testWrapper.screen.getByText(saveButtonProps.text);
61
+ expect(saveButton).toBeInTheDocument();
62
+ var cancelButton = _testWrapper.screen.getByText(cancelButtonProps.text);
63
+ expect(cancelButton).toBeInTheDocument();
64
+ });
65
+ test('renders all three buttons', function () {
66
+ getComponent({
67
+ refreshButtonProps: refreshButtonProps
68
+ });
69
+ var saveButton = _testWrapper.screen.getByText(saveButtonProps.text);
70
+ expect(saveButton).toBeInTheDocument();
71
+ var refreshButton = _testWrapper.screen.getByText(refreshButtonProps.text);
72
+ expect(refreshButton).toBeInTheDocument();
73
+ var cancelButton = _testWrapper.screen.getByText(cancelButtonProps.text);
74
+ expect(cancelButton).toBeInTheDocument();
75
+ });
76
+ test('renders custom children', function () {
77
+ getComponentCustomChildren();
78
+ var firstButton = _testWrapper.screen.getByText('custom text');
79
+ var secondButton = _testWrapper.screen.getByText('Also custom text');
80
+ expect(firstButton).toBeInTheDocument();
81
+ expect(secondButton).toBeInTheDocument();
82
+ });
83
+ test('renders custom text', function () {
84
+ getComponentTextChildren();
85
+ var firstText = _testWrapper.screen.getByText('custom text');
86
+ expect(firstText).toBeInTheDocument();
87
+ });
88
+ test('isJustifiedRight reverses order of button', function () {
89
+ getComponent({
90
+ isJustifiedRight: true
91
+ });
92
+ var buttons = _testWrapper.screen.getAllByRole('button');
93
+ expect(buttons[0]).toHaveAttribute('data-id', 'cancel-button');
94
+ });
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ _Object$defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _SaveBar["default"];
12
+ }
13
+ });
14
+ var _SaveBar = _interopRequireDefault(require("./SaveBar"));
@@ -12,7 +12,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
12
12
  _Object$defineProperty(exports, "__esModule", {
13
13
  value: true
14
14
  });
15
- exports.getAriaAttributeProps = exports.ariaAttributesBasePropTypes = exports.ariaAttributeBaseDocSettings = exports.ariaAttributeBaseArgTypes = void 0;
15
+ exports.getAriaAttributeProps = exports.descriptions = exports.ariaAttributesBasePropTypes = exports.ariaAttributeBaseDocSettings = exports.ariaAttributeBaseArgTypes = void 0;
16
16
  var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
17
17
  var _entries = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/entries"));
18
18
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
@@ -30,6 +30,7 @@ var descriptions = {
30
30
  ariaLabel: 'Defines a string value that labels the current element.',
31
31
  ariaLabelledby: 'Identifies the element (or elements) that labels the current element.'
32
32
  };
33
+ exports.descriptions = descriptions;
33
34
  var ariaAttributeBaseDocSettings = {
34
35
  type: {
35
36
  summary: 'string'