@pingux/astro 1.28.2-alpha.2 → 1.29.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.
Files changed (79) hide show
  1. package/lib/cjs/components/ArrayField/ArrayField.js +21 -22
  2. package/lib/cjs/components/ArrayField/ArrayField.stories.js +48 -26
  3. package/lib/cjs/components/CheckboxField/CheckboxField.js +11 -39
  4. package/lib/cjs/components/CheckboxField/CheckboxField.stories.js +24 -32
  5. package/lib/cjs/components/ColorField/ColorField.js +27 -20
  6. package/lib/cjs/components/ColorField/ColorField.stories.js +28 -8
  7. package/lib/cjs/components/ComboBox/ComboBoxInput.js +31 -39
  8. package/lib/cjs/components/ComboBoxField/ComboBoxField.js +30 -55
  9. package/lib/cjs/components/ComboBoxField/ComboBoxField.stories.js +65 -45
  10. package/lib/cjs/components/FileInputField/FileInputField.js +33 -27
  11. package/lib/cjs/components/FileInputField/FileInputField.stories.js +27 -7
  12. package/lib/cjs/components/FileInputField/FileSelect.js +41 -10
  13. package/lib/cjs/components/ImageUploadField/ImageUploadField.js +35 -15
  14. package/lib/cjs/components/ImageUploadField/ImageUploadField.stories.js +34 -14
  15. package/lib/cjs/components/LinkSelectField/LinkSelectField.js +18 -20
  16. package/lib/cjs/components/LinkSelectField/LinkSelectField.stories.js +71 -53
  17. package/lib/cjs/components/MultivaluesField/MultivaluesField.js +21 -12
  18. package/lib/cjs/components/MultivaluesField/MultivaluesField.stories.js +26 -6
  19. package/lib/cjs/components/NumberField/NumberField.js +15 -13
  20. package/lib/cjs/components/NumberField/NumberField.stories.js +25 -5
  21. package/lib/cjs/components/PasswordField/PasswordField.js +15 -27
  22. package/lib/cjs/components/PasswordField/PasswordField.stories.js +6 -4
  23. package/lib/cjs/components/RadioGroupField/RadioGroupField.js +17 -34
  24. package/lib/cjs/components/RadioGroupField/RadioGroupField.stories.js +25 -30
  25. package/lib/cjs/components/SearchField/SearchField.js +36 -55
  26. package/lib/cjs/components/SearchField/SearchField.stories.js +35 -24
  27. package/lib/cjs/components/SelectField/SelectField.js +27 -7
  28. package/lib/cjs/components/SelectField/SelectField.stories.js +73 -53
  29. package/lib/cjs/components/SelectFieldBase/SelectFieldBase.js +37 -25
  30. package/lib/cjs/components/SwitchField/SwitchField.js +43 -62
  31. package/lib/cjs/components/SwitchField/SwitchField.stories.js +26 -26
  32. package/lib/cjs/components/TextAreaField/TextAreaField.js +16 -20
  33. package/lib/cjs/components/TextAreaField/TextAreaField.stories.js +29 -11
  34. package/lib/cjs/components/TextField/TextField.js +11 -15
  35. package/lib/cjs/components/TextField/TextField.stories.js +30 -10
  36. package/lib/cjs/hooks/useField/useField.js +9 -21
  37. package/lib/cjs/recipes/LogoTabs.stories.js +50 -47
  38. package/lib/cjs/utils/devUtils/props/ariaAttributes.js +116 -0
  39. package/lib/cjs/utils/devUtils/props/ariaAttributes.test.js +65 -0
  40. package/lib/components/ArrayField/ArrayField.js +16 -14
  41. package/lib/components/ArrayField/ArrayField.stories.js +17 -3
  42. package/lib/components/CheckboxField/CheckboxField.js +6 -32
  43. package/lib/components/CheckboxField/CheckboxField.stories.js +17 -32
  44. package/lib/components/ColorField/ColorField.js +22 -16
  45. package/lib/components/ColorField/ColorField.stories.js +18 -3
  46. package/lib/components/ComboBox/ComboBoxInput.js +24 -32
  47. package/lib/components/ComboBoxField/ComboBoxField.js +25 -51
  48. package/lib/components/ComboBoxField/ComboBoxField.stories.js +17 -3
  49. package/lib/components/FileInputField/FileInputField.js +29 -24
  50. package/lib/components/FileInputField/FileInputField.stories.js +18 -3
  51. package/lib/components/FileInputField/FileSelect.js +32 -10
  52. package/lib/components/ImageUploadField/ImageUploadField.js +23 -8
  53. package/lib/components/ImageUploadField/ImageUploadField.stories.js +18 -3
  54. package/lib/components/LinkSelectField/LinkSelectField.js +12 -11
  55. package/lib/components/LinkSelectField/LinkSelectField.stories.js +17 -4
  56. package/lib/components/MultivaluesField/MultivaluesField.js +16 -9
  57. package/lib/components/MultivaluesField/MultivaluesField.stories.js +18 -3
  58. package/lib/components/NumberField/NumberField.js +5 -4
  59. package/lib/components/NumberField/NumberField.stories.js +17 -2
  60. package/lib/components/PasswordField/PasswordField.js +5 -11
  61. package/lib/components/PasswordField/PasswordField.stories.js +4 -3
  62. package/lib/components/RadioGroupField/RadioGroupField.js +12 -28
  63. package/lib/components/RadioGroupField/RadioGroupField.stories.js +17 -27
  64. package/lib/components/SearchField/SearchField.js +28 -48
  65. package/lib/components/SearchField/SearchField.stories.js +20 -14
  66. package/lib/components/SelectField/SelectField.js +18 -3
  67. package/lib/components/SelectField/SelectField.stories.js +18 -4
  68. package/lib/components/SelectFieldBase/SelectFieldBase.js +33 -25
  69. package/lib/components/SwitchField/SwitchField.js +40 -57
  70. package/lib/components/SwitchField/SwitchField.stories.js +18 -23
  71. package/lib/components/TextAreaField/TextAreaField.js +7 -9
  72. package/lib/components/TextAreaField/TextAreaField.stories.js +19 -5
  73. package/lib/components/TextField/TextField.js +4 -6
  74. package/lib/components/TextField/TextField.stories.js +19 -4
  75. package/lib/hooks/useField/useField.js +6 -16
  76. package/lib/recipes/LogoTabs.stories.js +50 -48
  77. package/lib/utils/devUtils/props/ariaAttributes.js +85 -0
  78. package/lib/utils/devUtils/props/ariaAttributes.test.js +50 -0
  79. package/package.json +1 -1
@@ -16,7 +16,7 @@ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/ins
16
16
 
17
17
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
18
18
 
19
- var _Object$keys2 = require("@babel/runtime-corejs3/core-js-stable/object/keys");
19
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
20
20
 
21
21
  _Object$defineProperty(exports, "__esModule", {
22
22
  value: true
@@ -24,12 +24,6 @@ _Object$defineProperty(exports, "__esModule", {
24
24
 
25
25
  exports["default"] = void 0;
26
26
 
27
- var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
28
-
29
- var _entries = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/entries"));
30
-
31
- var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
32
-
33
27
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
34
28
 
35
29
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
@@ -50,6 +44,8 @@ var _focus = require("@react-aria/focus");
50
44
 
51
45
  var _utils = require("@react-aria/utils");
52
46
 
47
+ var _ariaAttributes = require("../../utils/devUtils/props/ariaAttributes");
48
+
53
49
  var _statuses = _interopRequireDefault(require("../../utils/devUtils/constants/statuses"));
54
50
 
55
51
  var _hooks = require("../../hooks");
@@ -58,9 +54,9 @@ var _constants = require("../../components/Label/constants");
58
54
 
59
55
  var _excluded = ["autocomplete", "autoComplete", "autoCorrect", "children", "className", "containerProps", "controlProps", "defaultText", "defaultValue", "direction", "disabledKeys", "hasAutoFocus", "hasNoStatusIndicator", "helperText", "hintText", "id", "isDefaultSelected", "isDisabled", "isReadOnly", "isRequired", "isSelected", "label", "labelMode", "labelProps", "maxLength", "name", "onBlur", "onChange", "onClear", "onFocus", "onFocusChange", "onLoadMore", "onOpenChange", "onSelectionChange", "placeholder", "role", "selectedKey", "spellCheck", "status", "statusClasses", "type", "value"];
60
56
 
61
- function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(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; }
57
+ 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; }
62
58
 
63
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
59
+ 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; }
64
60
 
65
61
  /**
66
62
  * Generates the necessary props to be used in field components.
@@ -68,8 +64,6 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
68
64
  * @returns {{}} Prop objects to be spread into field components.
69
65
  */
70
66
  var useField = function useField() {
71
- var _context;
72
-
73
67
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
74
68
  var autocomplete = props.autocomplete,
75
69
  autoComplete = props.autoComplete,
@@ -174,14 +168,10 @@ var useField = function useField() {
174
168
  }, "is-".concat(status), true), statusClasses)),
175
169
  classNames = _useStatusClasses.classNames;
176
170
 
177
- var ariaProps = (0, _reduce["default"])(_context = (0, _entries["default"])(others)).call(_context, function (acc, _ref) {
178
- var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
179
- key = _ref2[0],
180
- val = _ref2[1];
171
+ var _getAriaAttributeProp = (0, _ariaAttributes.getAriaAttributeProps)(others),
172
+ ariaProps = _getAriaAttributeProp.ariaProps,
173
+ nonAriaProps = _getAriaAttributeProp.nonAriaProps; // Handle focus within and value state for the container. These are needed for float labels.
181
174
 
182
- if (key.match(/^aria-.*/)) return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2["default"])({}, key, val));
183
- return _objectSpread({}, acc);
184
- }, {}); // Handle focus within and value state for the container. These are needed for float labels.
185
175
 
186
176
  var _useFocusWithin = (0, _interactions.useFocusWithin)({
187
177
  onFocusWithinChange: setFocusWithin
@@ -203,9 +193,7 @@ var useField = function useField() {
203
193
  }),
204
194
  containerClasses = _useStatusClasses2.classNames;
205
195
 
206
- var nonAriaOthers = _objectSpread({}, (0, _omit["default"])(others, (0, _keys["default"])(ariaProps)));
207
-
208
- var fieldContainerProps = _objectSpread(_objectSpread(_objectSpread({}, nonAriaOthers), (0, _utils.mergeProps)(containerProps, focusWithinProps)), {}, {
196
+ var fieldContainerProps = _objectSpread(_objectSpread(_objectSpread({}, nonAriaProps), (0, _utils.mergeProps)(containerProps, focusWithinProps)), {}, {
209
197
  className: containerClasses,
210
198
  sx: _objectSpread({
211
199
  position: 'relative'
@@ -117,41 +117,52 @@ var GoogleLogo = function GoogleLogo(props) {
117
117
  })));
118
118
  };
119
119
 
120
- var logoTabsStyling = {
121
- display: 'inline-flex !important',
122
- '& > div': {
123
- borderStyle: 'none',
124
- borderBottomWidth: '0px !important',
125
- justifyContent: 'space-between'
126
- }
127
- };
128
-
129
- var tabStyling = _objectSpread(_objectSpread({}, _tabs.tab), {}, {
130
- alignSelf: 'center',
131
- '& > svg': {
132
- borderWidth: 1,
133
- borderStyle: 'dashed',
134
- borderColor: 'neutral.70',
135
- borderRadius: 4,
136
- bg: 'white',
137
- outline: '5px solid white'
120
+ var sx = {
121
+ container: {
122
+ display: 'inline-flex !important',
123
+ position: 'relative',
124
+ width: '500px'
138
125
  },
139
- '&.is-selected > svg': {
140
- borderWidth: 1,
141
- borderStyle: 'solid',
142
- borderColor: 'active',
143
- borderRadius: 4,
144
- bg: 'white',
145
- outline: '5px solid white'
126
+ separator: {
127
+ position: 'absolute',
128
+ top: '25%',
129
+ backgroundColor: 'accent.70'
146
130
  },
147
- // we only want the change the color of icon svgs to active not company logos
148
- '&.is-selected > .mdi-icon > path': {
149
- fill: 'active'
131
+ logoTabsStyling: {
132
+ display: 'inline-flex !important',
133
+ '& > div': {
134
+ borderStyle: 'none',
135
+ borderBottomWidth: '0px !important',
136
+ justifyContent: 'space-between'
137
+ }
150
138
  },
151
- '& > [role="presentation"]': {
152
- height: '0px'
153
- }
154
- });
139
+ tabStyling: _objectSpread(_objectSpread({}, _tabs.tab), {}, {
140
+ alignSelf: 'center',
141
+ '& > svg': {
142
+ borderWidth: 1,
143
+ borderStyle: 'dashed',
144
+ borderColor: 'neutral.70',
145
+ borderRadius: 4,
146
+ bg: 'white',
147
+ outline: '5px solid white'
148
+ },
149
+ '&.is-selected > svg': {
150
+ borderWidth: 1,
151
+ borderStyle: 'solid',
152
+ borderColor: 'active',
153
+ borderRadius: 4,
154
+ bg: 'white',
155
+ outline: '5px solid white'
156
+ },
157
+ // we only want the change the color of icon svgs to active not company logos
158
+ '&.is-selected > .mdi-icon > path': {
159
+ fill: 'active'
160
+ },
161
+ '& > [role="presentation"]': {
162
+ height: '0px'
163
+ }
164
+ })
165
+ };
155
166
 
156
167
  var LogoTabs = function LogoTabs() {
157
168
  var _useState = (0, _react.useState)('tab1'),
@@ -165,19 +176,11 @@ var LogoTabs = function LogoTabs() {
165
176
  setShowMiddleTabs = _useState4[1];
166
177
 
167
178
  return (0, _react2.jsx)(_index.Box, {
168
- sx: {
169
- display: 'inline-flex !important',
170
- position: 'relative',
171
- width: '500px'
172
- }
179
+ sx: sx.container
173
180
  }, (0, _react2.jsx)(_index.Separator, {
174
- sx: {
175
- position: 'absolute',
176
- top: '25%'
177
- },
178
- bg: "accent.70"
181
+ sx: sx.separator
179
182
  }), (0, _react2.jsx)(_index.Tabs, {
180
- sx: logoTabsStyling,
183
+ sx: sx.logoTabsStyling,
181
184
  selectedKey: currentTab,
182
185
  onSelectionChange: setCurrentTab,
183
186
  onClick: setShowMiddleTabs
@@ -193,7 +196,7 @@ var LogoTabs = function LogoTabs() {
193
196
  color: "#eb4c15",
194
197
  p: "sm"
195
198
  }),
196
- sx: tabStyling
199
+ sx: sx.tabStyling
197
200
  }, (0, _react2.jsx)(_index.Text, null, "This is content for the source tab")), (showMiddleTabs || currentTab !== 'tab1') && (0, _react2.jsx)(_index.Tab, {
198
201
  key: "tab2",
199
202
  title: (0, _react2.jsx)(_index.Text, {
@@ -206,7 +209,7 @@ var LogoTabs = function LogoTabs() {
206
209
  color: "accent.20",
207
210
  p: "xs"
208
211
  }),
209
- sx: tabStyling
212
+ sx: sx.tabStyling
210
213
  }, (0, _react2.jsx)(_index.Text, null, "This is content for the custom filter tab")), (showMiddleTabs || currentTab !== 'tab1') && (0, _react2.jsx)(_index.Tab, {
211
214
  key: "tab3",
212
215
  title: (0, _react2.jsx)(_index.Text, {
@@ -219,7 +222,7 @@ var LogoTabs = function LogoTabs() {
219
222
  color: "accent.20",
220
223
  p: "xs"
221
224
  }),
222
- sx: tabStyling
225
+ sx: sx.tabStyling
223
226
  }, (0, _react2.jsx)(_index.Text, null, "This is content for attribute mapping tab")), (0, _react2.jsx)(_index.Tab, {
224
227
  key: "tab4",
225
228
  title: (0, _react2.jsx)(_index.Text, {
@@ -231,7 +234,7 @@ var LogoTabs = function LogoTabs() {
231
234
  size: 65,
232
235
  p: "sm"
233
236
  }),
234
- sx: tabStyling
237
+ sx: sx.tabStyling
235
238
  }, (0, _react2.jsx)(_index.Text, null, "This is content for the target tab"))));
236
239
  };
237
240
 
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+
7
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
8
+
9
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
10
+
11
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
12
+
13
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
14
+
15
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
16
+
17
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
18
+
19
+ var _Object$keys2 = require("@babel/runtime-corejs3/core-js-stable/object/keys");
20
+
21
+ _Object$defineProperty(exports, "__esModule", {
22
+ value: true
23
+ });
24
+
25
+ exports.getAriaAttributeProps = exports.ariaAttributesBasePropTypes = exports.ariaAttributeBaseDocSettings = exports.ariaAttributeBaseArgTypes = void 0;
26
+
27
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
28
+
29
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
30
+
31
+ var _entries = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/entries"));
32
+
33
+ var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
34
+
35
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
36
+
37
+ var _omit = _interopRequireDefault(require("lodash/omit"));
38
+
39
+ var _propTypes = _interopRequireDefault(require("prop-types"));
40
+
41
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(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; }
42
+
43
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
44
+
45
+ var descriptions = {
46
+ ariaControls: 'Identifies the element (or elements) whose contents or presence are controlled by the current element.',
47
+ ariaDescribedby: 'Identifies the element (or elements) that describes the object.',
48
+ ariaDetails: 'Identifies the element (or elements) that provide a detailed, extended description for the object.',
49
+ ariaErrormessage: 'Identifies the element that provides an error message for the object.',
50
+ ariaLabel: 'Defines a string value that labels the current element.',
51
+ ariaLabelledby: 'Identifies the element (or elements) that labels the current element.'
52
+ };
53
+ var ariaAttributeBaseDocSettings = {
54
+ type: {
55
+ summary: 'string'
56
+ },
57
+ control: {
58
+ type: 'text'
59
+ },
60
+ table: {
61
+ category: 'Aria Attributes'
62
+ }
63
+ };
64
+ exports.ariaAttributeBaseDocSettings = ariaAttributeBaseDocSettings;
65
+ var ariaAttributeBaseArgTypes = {
66
+ 'aria-controls': _objectSpread({
67
+ description: descriptions.ariaControls
68
+ }, ariaAttributeBaseDocSettings),
69
+ 'aria-describedby': _objectSpread({
70
+ description: descriptions.ariaDescribedby
71
+ }, ariaAttributeBaseDocSettings),
72
+ 'aria-details': _objectSpread({
73
+ description: descriptions.ariaDetails
74
+ }, ariaAttributeBaseDocSettings),
75
+ 'aria-errormessage': _objectSpread({
76
+ description: descriptions.ariaErrormessage
77
+ }, ariaAttributeBaseDocSettings),
78
+ 'aria-label': _objectSpread({
79
+ description: descriptions.ariaLabel
80
+ }, ariaAttributeBaseDocSettings),
81
+ 'aria-labelledby': _objectSpread({
82
+ description: descriptions.ariaLabelledby
83
+ }, ariaAttributeBaseDocSettings)
84
+ };
85
+ exports.ariaAttributeBaseArgTypes = ariaAttributeBaseArgTypes;
86
+ var ariaAttributesBasePropTypes = {
87
+ 'aria-controls': _propTypes["default"].string,
88
+ 'aria-describedby': _propTypes["default"].string,
89
+ 'aria-details': _propTypes["default"].string,
90
+ 'aria-errormessage': _propTypes["default"].string,
91
+ 'aria-label': _propTypes["default"].string,
92
+ 'aria-labelledby': _propTypes["default"].string
93
+ };
94
+ exports.ariaAttributesBasePropTypes = ariaAttributesBasePropTypes;
95
+
96
+ var getAriaAttributeProps = function getAriaAttributeProps(props) {
97
+ var _context;
98
+
99
+ var ariaProps = (0, _reduce["default"])(_context = (0, _entries["default"])(props)).call(_context, function (acc, _ref) {
100
+ var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
101
+ key = _ref2[0],
102
+ val = _ref2[1];
103
+
104
+ if (key.match(/^aria-.*/)) return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2["default"])({}, key, val));
105
+ return _objectSpread({}, acc);
106
+ }, {});
107
+
108
+ var nonAriaProps = _objectSpread({}, (0, _omit["default"])(props, (0, _keys["default"])(ariaProps)));
109
+
110
+ return {
111
+ ariaProps: ariaProps,
112
+ nonAriaProps: nonAriaProps
113
+ };
114
+ };
115
+
116
+ exports.getAriaAttributeProps = getAriaAttributeProps;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+
7
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
8
+
9
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
10
+
11
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
12
+
13
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
14
+
15
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
16
+
17
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
18
+
19
+ var _Object$keys2 = require("@babel/runtime-corejs3/core-js-stable/object/keys");
20
+
21
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
22
+
23
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
24
+
25
+ var _ariaAttributes = require("./ariaAttributes");
26
+
27
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(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; }
28
+
29
+ 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; }
30
+
31
+ describe('getAriaAttributeProps', function () {
32
+ var subject = function subject(props) {
33
+ return (0, _ariaAttributes.getAriaAttributeProps)(props);
34
+ };
35
+
36
+ var propsWithNoAriaAttributes = {
37
+ propOne: 'prop1',
38
+ propTwo: 'prop2'
39
+ };
40
+ describe('when there are 2 props and no aria attributes', function () {
41
+ it('returns an object with empty ariaProps and 2 nonAriaProps', function () {
42
+ var _subject = subject(propsWithNoAriaAttributes),
43
+ ariaProps = _subject.ariaProps,
44
+ nonAriaProps = _subject.nonAriaProps;
45
+
46
+ expect((0, _keys["default"])(nonAriaProps).length).toBe(2);
47
+ expect((0, _keys["default"])(ariaProps).length).toBe(0);
48
+ });
49
+ });
50
+ describe('when there is an aria-label and an aria-labelledby in the props', function () {
51
+ it('returns an object with ariaProps containing aria-label and aria-labelledby', function () {
52
+ var propsWithAriaAttributes = _objectSpread({
53
+ 'aria-labelledby': 'test labelledby',
54
+ 'aria-label': 'test label'
55
+ }, propsWithNoAriaAttributes);
56
+
57
+ var _subject2 = subject(propsWithAriaAttributes),
58
+ ariaProps = _subject2.ariaProps,
59
+ nonAriaProps = _subject2.nonAriaProps;
60
+
61
+ expect((0, _keys["default"])(nonAriaProps).length).toBe(2);
62
+ expect((0, _keys["default"])(ariaProps).length).toBe(2);
63
+ });
64
+ });
65
+ });
@@ -21,18 +21,15 @@ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (
21
21
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context3 = ownKeys(Object(source), !0)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context4 = ownKeys(Object(source))).call(_context4, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
22
22
 
23
23
  import React, { useCallback, useState } from 'react';
24
- import PropTypes from 'prop-types';
24
+ import { useLabel } from '@react-aria/label';
25
25
  import { mergeProps } from '@react-aria/utils';
26
+ import PropTypes from 'prop-types';
26
27
  import { v4 as uuid } from 'uuid';
27
- import { useLabel } from '@react-aria/label';
28
- import Box from '../Box';
29
- import Button from '../Button';
30
- import FieldHelperText from '../FieldHelperText';
31
- import Text from '../Text';
32
- import Label from '../Label';
33
- import statuses from '../../utils/devUtils/constants/statuses';
34
- import isValidPositiveInt from '../../utils/devUtils/props/isValidPositiveInt';
28
+ import { Box, Button, FieldHelperText, Label, Text } from '../../';
29
+ import { ariaAttributesBasePropTypes, getAriaAttributeProps } from '../../utils/devUtils/props/ariaAttributes';
35
30
  import ArrayFieldItem from './ArrayFieldItem';
31
+ import isValidPositiveInt from '../../utils/devUtils/props/isValidPositiveInt';
32
+ import statuses from '../../utils/devUtils/constants/statuses';
36
33
  /**
37
34
  * Displays array collections providing useful functions and
38
35
  * optimizations for arrays.
@@ -133,12 +130,17 @@ var ArrayField = function ArrayField(props) {
133
130
  raLabelProps = _useLabel.labelProps;
134
131
 
135
132
  var isLimitReached = !!maxSize && (value || fieldValues).length >= maxSize;
136
- return ___EmotionJSX(Box, others, ___EmotionJSX(Label, _extends({}, raLabelProps, mergeProps(labelProps, raLabelProps, {
133
+
134
+ var _getAriaAttributeProp = getAriaAttributeProps(others),
135
+ ariaProps = _getAriaAttributeProp.ariaProps,
136
+ nonAriaProps = _getAriaAttributeProp.nonAriaProps;
137
+
138
+ return ___EmotionJSX(Box, nonAriaProps, ___EmotionJSX(Label, _extends({}, raLabelProps, mergeProps(labelProps, raLabelProps, {
137
139
  children: label
138
- }))), ___EmotionJSX(Box, {
140
+ }))), ___EmotionJSX(Box, _extends({
139
141
  as: "ul",
140
142
  pl: "0"
141
- }, _mapInstanceProperty(_context2 = value || fieldValues).call(_context2, function (_ref2) {
143
+ }, ariaProps), _mapInstanceProperty(_context2 = value || fieldValues).call(_context2, function (_ref2) {
142
144
  var id = _ref2.id,
143
145
  onComponentRender = _ref2.onComponentRender,
144
146
  fieldValue = _ref2.fieldValue,
@@ -173,7 +175,7 @@ var ArrayField = function ArrayField(props) {
173
175
  }, addButtonLabel)));
174
176
  };
175
177
 
176
- ArrayField.propTypes = {
178
+ ArrayField.propTypes = _objectSpread({
177
179
  /** Label for add button */
178
180
  addButtonLabel: PropTypes.string,
179
181
 
@@ -218,7 +220,7 @@ ArrayField.propTypes = {
218
220
 
219
221
  /** Text to display when the maximum number of items is reached */
220
222
  maxSizeText: PropTypes.node
221
- };
223
+ }, ariaAttributesBasePropTypes);
222
224
  ArrayField.defaultProps = {
223
225
  addButtonLabel: '+ Add'
224
226
  };
@@ -1,11 +1,25 @@
1
+ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
2
+ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
3
+ import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
4
+ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
5
+ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
6
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
7
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
1
8
  import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
2
9
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
3
10
  import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
4
11
  import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
12
+ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
13
+
14
+ 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; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context2, _context3; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(source), !0)).call(_context2, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context3 = ownKeys(Object(source))).call(_context3, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
17
+
5
18
  import React from 'react';
6
19
  import { OverlayProvider } from '@react-aria/overlays';
7
20
  import { v4 as uuid } from 'uuid';
8
- import { ArrayField, ArrayFieldDeleteButton, Item, SelectField, TextField } from '../../index';
21
+ import { ArrayField, ArrayFieldDeleteButton, Item, SelectField, TextField } from '../../';
22
+ import { ariaAttributeBaseArgTypes } from '../../utils/devUtils/props/ariaAttributes';
9
23
  import { jsx as ___EmotionJSX } from "@emotion/react";
10
24
  export default {
11
25
  title: 'Form/ArrayField',
@@ -20,7 +34,7 @@ export default {
20
34
  }
21
35
  }
22
36
  },
23
- argTypes: {
37
+ argTypes: _objectSpread({
24
38
  label: {
25
39
  defaultValue: 'Array field label',
26
40
  control: {
@@ -49,7 +63,7 @@ export default {
49
63
  type: 'text'
50
64
  }
51
65
  }
52
- }
66
+ }, ariaAttributeBaseArgTypes)
53
67
  };
54
68
  var defaultData = [{
55
69
  id: uuid(),
@@ -15,15 +15,13 @@ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (
15
15
  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) { _defineProperty(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; }
16
16
 
17
17
  import React, { forwardRef, useRef, useImperativeHandle } from 'react';
18
- import PropTypes from 'prop-types';
19
- import { useToggleState } from '@react-stately/toggle';
20
18
  import { useCheckbox } from '@react-aria/checkbox';
19
+ import { useToggleState } from '@react-stately/toggle';
20
+ import PropTypes from 'prop-types';
21
+ import { Box, Checkbox, FieldHelperText, Label } from '../../';
22
+ import { ariaAttributesBasePropTypes } from '../../utils/devUtils/props/ariaAttributes';
21
23
  import { useField, usePropWarning } from '../../hooks';
22
24
  import statuses from '../../utils/devUtils/constants/statuses';
23
- import Box from '../Box';
24
- import Checkbox from '../Checkbox';
25
- import FieldHelperText from '../FieldHelperText';
26
- import Label from '../Label';
27
25
  /**
28
26
  * Combines a checkbox, label, and helper text for a complete, form-ready solution.
29
27
  *
@@ -77,7 +75,7 @@ var CheckboxField = /*#__PURE__*/forwardRef(function (props, ref) {
77
75
  }
78
76
  }, helperText));
79
77
  });
80
- CheckboxField.propTypes = {
78
+ CheckboxField.propTypes = _objectSpread({
81
79
  /** Whether the element should receive focus on render. */
82
80
  hasAutoFocus: PropTypes.bool,
83
81
 
@@ -141,30 +139,6 @@ CheckboxField.propTypes = {
141
139
  /** Handler that is called when a key is released. */
142
140
  onKeyUp: PropTypes.func,
143
141
 
144
- /**
145
- * Identifies the element (or elements) whose contents or presence are controlled by the current
146
- * element.
147
- */
148
- 'aria-controls': PropTypes.string,
149
-
150
- /** Defines a string value that labels the current element. */
151
- 'aria-label': PropTypes.string,
152
-
153
- /** Identifies the element (or elements) that labels the current element. */
154
- 'aria-labelledby': PropTypes.string,
155
-
156
- /** Identifies the element (or elements) that describes the object. */
157
- 'aria-describedby': PropTypes.string,
158
-
159
- /**
160
- * Identifies the element (or elements) that provide a detailed, extended description for the
161
- * object.
162
- */
163
- 'aria-details': PropTypes.string,
164
-
165
- /** Identifies the element that provides an error message for the object. */
166
- 'aria-errormessage': PropTypes.string,
167
-
168
142
  /** Props object that is spread directly into the root (top-level) element. */
169
143
  containerProps: PropTypes.shape({}),
170
144
 
@@ -173,6 +147,6 @@ CheckboxField.propTypes = {
173
147
 
174
148
  /** Props object that is spread directly into the label element. */
175
149
  labelProps: PropTypes.shape({})
176
- };
150
+ }, ariaAttributesBasePropTypes);
177
151
  CheckboxField.displayName = 'CheckboxField';
178
152
  export default CheckboxField;
@@ -1,5 +1,20 @@
1
+ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
2
+ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
3
+ import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
4
+ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
5
+ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
6
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
7
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
8
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
1
9
  import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
10
+ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
11
+
12
+ 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; }
13
+
14
+ 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) { _defineProperty(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; }
15
+
2
16
  import React from 'react';
17
+ import { ariaAttributeBaseArgTypes } from '../../utils/devUtils/props/ariaAttributes';
3
18
  import CheckboxField from './CheckboxField';
4
19
  import Link from '../Link';
5
20
  import Text from '../Text';
@@ -8,7 +23,7 @@ import { jsx as ___EmotionJSX } from "@emotion/react";
8
23
  export default {
9
24
  title: 'Form/CheckboxField',
10
25
  component: CheckboxField,
11
- argTypes: {
26
+ argTypes: _objectSpread({
12
27
  label: {
13
28
  control: {
14
29
  type: 'text'
@@ -46,36 +61,6 @@ export default {
46
61
  isIndeterminate: {},
47
62
  isDefaultSelected: {},
48
63
  isSelected: {},
49
- 'aria-label': {
50
- control: {
51
- type: 'text'
52
- }
53
- },
54
- 'aria-labelledby': {
55
- control: {
56
- type: 'text'
57
- }
58
- },
59
- 'aria-describedby': {
60
- control: {
61
- type: 'text'
62
- }
63
- },
64
- 'aria-details': {
65
- control: {
66
- type: 'text'
67
- }
68
- },
69
- 'aria-controls': {
70
- control: {
71
- type: 'text'
72
- }
73
- },
74
- 'aria-errormessage': {
75
- control: {
76
- type: 'text'
77
- }
78
- },
79
64
  containerProps: {
80
65
  control: {
81
66
  type: 'none'
@@ -91,7 +76,7 @@ export default {
91
76
  type: 'none'
92
77
  }
93
78
  }
94
- }
79
+ }, ariaAttributeBaseArgTypes)
95
80
  };
96
81
  export var Default = function Default(args) {
97
82
  return ___EmotionJSX(CheckboxField, args);