@pingux/astro 2.97.0 → 2.98.0-alpha.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.
Files changed (56) hide show
  1. package/lib/cjs/components/ListView/ListView.js +15 -2
  2. package/lib/cjs/components/ListView/ListView.stories.d.ts +1 -0
  3. package/lib/cjs/components/ListView/ListView.stories.js +157 -33
  4. package/lib/cjs/components/ListView/ListView.test.js +171 -77
  5. package/lib/cjs/components/Radio/Radio.d.ts +12 -0
  6. package/lib/cjs/components/Radio/Radio.js +2 -1
  7. package/lib/cjs/components/Radio/Radio.styles.d.ts +53 -0
  8. package/lib/cjs/components/Radio/Radio.styles.js +4 -2
  9. package/lib/cjs/components/Radio/index.d.ts +1 -0
  10. package/lib/cjs/components/RadioField/RadioField.d.ts +12 -0
  11. package/lib/cjs/components/RadioField/RadioField.js +6 -57
  12. package/lib/cjs/components/RadioField/RadioField.test.d.ts +1 -0
  13. package/lib/cjs/components/RadioField/RadioField.test.js +7 -4
  14. package/lib/cjs/components/RadioField/index.d.ts +2 -0
  15. package/lib/cjs/components/RadioGroupField/RadioGroupField.d.ts +4 -0
  16. package/lib/cjs/components/RadioGroupField/RadioGroupField.js +2 -47
  17. package/lib/cjs/components/RadioGroupField/RadioGroupField.stories.d.ts +42 -0
  18. package/lib/cjs/components/RadioGroupField/RadioGroupField.stories.js +7 -0
  19. package/lib/cjs/components/RadioGroupField/RadioGroupField.test.d.ts +1 -0
  20. package/lib/cjs/components/RadioGroupField/RadioGroupField.test.js +4 -4
  21. package/lib/cjs/components/RadioGroupField/index.d.ts +1 -0
  22. package/lib/cjs/hooks/useLoadPrev/index.d.ts +1 -0
  23. package/lib/cjs/hooks/useLoadPrev/index.js +14 -0
  24. package/lib/cjs/hooks/useLoadPrev/useLoadPrev.d.ts +2 -0
  25. package/lib/cjs/hooks/useLoadPrev/useLoadPrev.js +35 -0
  26. package/lib/cjs/hooks/useLoadPrev/useLoadPrev.test.d.ts +1 -0
  27. package/lib/cjs/hooks/useLoadPrev/useLoadPrev.test.js +87 -0
  28. package/lib/cjs/types/listView.d.ts +1 -0
  29. package/lib/cjs/types/radio.d.ts +3 -0
  30. package/lib/cjs/types/radio.js +6 -0
  31. package/lib/cjs/types/radioField.d.ts +42 -0
  32. package/lib/cjs/types/radioField.js +6 -0
  33. package/lib/cjs/types/radioGroupField.d.ts +15 -0
  34. package/lib/cjs/types/radioGroupField.js +6 -0
  35. package/lib/cjs/utils/designUtils/figmaLinks.d.ts +3 -0
  36. package/lib/cjs/utils/designUtils/figmaLinks.js +3 -0
  37. package/lib/cjs/utils/devUtils/constants/loadingStates.js +2 -1
  38. package/lib/components/ListView/ListView.js +15 -2
  39. package/lib/components/ListView/ListView.stories.js +125 -2
  40. package/lib/components/ListView/ListView.test.js +168 -77
  41. package/lib/components/Radio/Radio.js +1 -2
  42. package/lib/components/Radio/Radio.styles.js +4 -2
  43. package/lib/components/RadioField/RadioField.js +8 -59
  44. package/lib/components/RadioField/RadioField.test.js +7 -4
  45. package/lib/components/RadioGroupField/RadioGroupField.js +0 -47
  46. package/lib/components/RadioGroupField/RadioGroupField.stories.js +7 -0
  47. package/lib/components/RadioGroupField/RadioGroupField.test.js +4 -4
  48. package/lib/hooks/useLoadPrev/index.js +1 -0
  49. package/lib/hooks/useLoadPrev/useLoadPrev.js +27 -0
  50. package/lib/hooks/useLoadPrev/useLoadPrev.test.js +78 -0
  51. package/lib/types/radio.js +1 -0
  52. package/lib/types/radioField.js +1 -0
  53. package/lib/types/radioGroupField.js +1 -0
  54. package/lib/utils/designUtils/figmaLinks.js +3 -0
  55. package/lib/utils/devUtils/constants/loadingStates.js +2 -1
  56. package/package.json +1 -1
@@ -19,10 +19,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/e
19
19
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
20
20
  var _react = _interopRequireWildcard(require("react"));
21
21
  var _reactAria = require("react-aria");
22
- var _propTypes = _interopRequireDefault(require("prop-types"));
23
22
  var _hooks = require("../../hooks");
24
- var _ariaAttributes = require("../../utils/docUtils/ariaAttributes");
25
- var _statusProp = require("../../utils/docUtils/statusProp");
26
23
  var _Box = _interopRequireDefault(require("../Box"));
27
24
  var _FieldHelperText = _interopRequireDefault(require("../FieldHelperText"));
28
25
  var _Label = _interopRequireDefault(require("../Label"));
@@ -32,7 +29,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "functi
32
29
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
30
  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; }
34
31
  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; }
35
- var RadioContext = /*#__PURE__*/(0, _react.createContext)();
32
+ var defaultValue = {};
33
+ var RadioContext = /*#__PURE__*/(0, _react.createContext)(defaultValue);
36
34
 
37
35
  /**
38
36
  * Combines a radio, label, and helper text for a complete, form-ready solution.
@@ -49,20 +47,17 @@ var RadioField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
49
47
  radioDisabled = props.isDisabled,
50
48
  label = props.label,
51
49
  status = props.status;
52
- var radioFieldRef = (0, _react.useRef)();
53
50
  (0, _hooks.usePropWarning)(props, 'disabled', 'isDisabled');
54
- /* istanbul ignore next */
55
- (0, _react.useImperativeHandle)(ref, function () {
56
- return radioFieldRef.current;
57
- });
51
+ var radioFieldRef = (0, _hooks.useLocalOrForwardRef)(ref);
58
52
  var state = (0, _react.useContext)(RadioContext);
59
53
  var groupDisabled = state.isDisabled;
60
54
  var isDisabled = radioDisabled || groupDisabled;
61
55
  var _useRadio = (0, _reactAria.useRadio)(_objectSpread(_objectSpread({
62
56
  children: label,
63
- autoFocus: hasAutoFocus,
57
+ autoFocus: hasAutoFocus
58
+ }, props), {}, {
64
59
  isDisabled: isDisabled
65
- }, props), controlProps), state, radioFieldRef),
60
+ }, controlProps), state, radioFieldRef),
66
61
  inputProps = _useRadio.inputProps;
67
62
  var isChecked = inputProps.checked;
68
63
  var statusClasses = {
@@ -94,52 +89,6 @@ var RadioField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
94
89
  variant: "forms.radio.checkedContent"
95
90
  }, checkedContent));
96
91
  });
97
- RadioField.propTypes = _objectSpread(_objectSpread({
98
- /** Content to display when the radio is checked. */
99
- checkedContent: _propTypes["default"].node,
100
- /** The rendered label for the field. */
101
- label: _propTypes["default"].node,
102
- /** Whether the element should receive focus on render. */
103
- hasAutoFocus: _propTypes["default"].bool,
104
- /** Text rendered below the input. */
105
- helperText: _propTypes["default"].node,
106
- /** If present this prop will cause a help hint to render in the label of the field. */
107
- hintText: _propTypes["default"].string,
108
- /** The element's unique identifier. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id). */
109
- id: _propTypes["default"].string,
110
- /**
111
- * Whether the radio button is disabled or not. Shows that a selection exists, but is not
112
- * available in that circumstance.
113
- */
114
- isDisabled: _propTypes["default"].bool,
115
- /** Whether the Radio can be interacted with but cannot have its selection state changed. */
116
- isReadOnly: _propTypes["default"].bool,
117
- /** Whether the Radio is required. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/required). */
118
- isRequired: _propTypes["default"].bool,
119
- /** The value of the input element, used when submitting an HTML form. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefvalue). */
120
- value: _propTypes["default"].string,
121
- /** Handler that is called when the element receives focus. */
122
- onFocus: _propTypes["default"].func,
123
- /** Handler that is called when the element loses focus. */
124
- onBlur: _propTypes["default"].func,
125
- /** Handler that is called when the element's focus status changes. */
126
- onFocusChange: _propTypes["default"].func,
127
- /** Handler that is called when a key is pressed. */
128
- onKeyDown: _propTypes["default"].func,
129
- /** Handler that is called when a key is released. */
130
- onKeyUp: _propTypes["default"].func,
131
- /** Defines a string value that labels the current element. */
132
- 'aria-label': _propTypes["default"].string,
133
- /** Identifies the element (or elements) that labels the current element. */
134
- 'aria-labelledby': _propTypes["default"].string,
135
- /** Identifies the element (or elements) that describes the object. */
136
- 'aria-describedby': _propTypes["default"].string,
137
- /**
138
- * Identifies the element (or elements) that provide a detailed, extended description for the
139
- * object.
140
- */
141
- 'aria-details': _propTypes["default"].string
142
- }, _statusProp.statusPropTypes), _ariaAttributes.ariaAttributesBasePropTypes);
143
92
  RadioField.displayName = 'RadioField';
144
93
  var _default = RadioField;
145
94
  exports["default"] = _default;
@@ -0,0 +1 @@
1
+ export {};
@@ -25,7 +25,9 @@ var defaultProps = {
25
25
  value: testValue
26
26
  };
27
27
  var defaultState = {
28
- setLastFocusedValue: function setLastFocusedValue() {}
28
+ setLastFocusedValue: function setLastFocusedValue() {
29
+ return jest.fn();
30
+ }
29
31
  };
30
32
  var getComponent = function getComponent() {
31
33
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -78,11 +80,12 @@ test('radio with checked content does not display if not checked', function () {
78
80
  });
79
81
  test('radio with checked content displays if checked', function () {
80
82
  var testContent = 'test content';
83
+ var customState = {
84
+ selectedValue: testValue
85
+ };
81
86
  getComponent({
82
87
  checkedContent: (0, _react2.jsx)("div", null, testContent)
83
- }, {
84
- selectedValue: testValue
85
- });
88
+ }, customState);
86
89
  var content = _testWrapper.screen.queryByText(testContent);
87
90
  expect(content).toBeInTheDocument();
88
91
  });
@@ -0,0 +1,2 @@
1
+ export { default } from './RadioField';
2
+ export * from './RadioField';
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { RadioGroupFieldProps } from '../../types/radioGroupField';
3
+ declare const RadioGroupField: React.ForwardRefExoticComponent<RadioGroupFieldProps & React.RefAttributes<HTMLDivElement>>;
4
+ export default RadioGroupField;
@@ -1,40 +1,27 @@
1
1
  "use strict";
2
2
 
3
3
  var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
- var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
5
- var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
6
- var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
7
- var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
- var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
9
- var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
10
- var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
11
- var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
12
4
  var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
13
7
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
14
8
  _Object$defineProperty(exports, "__esModule", {
15
9
  value: true
16
10
  });
17
11
  exports["default"] = void 0;
18
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
19
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
20
13
  var _react = _interopRequireWildcard(require("react"));
21
14
  var _reactAria = require("react-aria");
22
15
  var _reactStately = require("react-stately");
23
- var _propTypes = _interopRequireDefault(require("prop-types"));
24
16
  var _uuid = require("uuid");
25
17
  var _ = require("../..");
26
18
  var _hooks = require("../../hooks");
27
19
  var _orientation = _interopRequireDefault(require("../../utils/devUtils/constants/orientation"));
28
20
  var _pendoID = require("../../utils/devUtils/constants/pendoID");
29
- var _ariaAttributes = require("../../utils/docUtils/ariaAttributes");
30
- var _fieldAttributes = require("../../utils/docUtils/fieldAttributes");
31
- var _statusProp = require("../../utils/docUtils/statusProp");
32
21
  var _RadioField = require("../RadioField");
33
22
  var _react2 = require("@emotion/react");
34
23
  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); }
35
24
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
36
- 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; }
37
- 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; }
38
25
  var displayName = 'RadioGroupField';
39
26
  var RadioGroupField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
40
27
  var children = props.children,
@@ -84,37 +71,5 @@ var RadioGroupField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
84
71
  id: helperTextId
85
72
  }, helperText));
86
73
  });
87
- RadioGroupField.propTypes = _objectSpread(_objectSpread(_objectSpread({
88
- /** The name of the RadioGroupField, used when submitting an HTML form. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#name_and_radio_buttons). */
89
- name: _propTypes["default"].string,
90
- /** The current value (controlled). */
91
- value: _propTypes["default"].string,
92
- /** The default value (uncontrolled). */
93
- defaultValue: _propTypes["default"].string,
94
- /** Text to display after the radio group label. Useful for errors or other info. */
95
- helperText: _propTypes["default"].node,
96
- /** If present this prop will cause a help hint to render in the label of the field. */
97
- hintText: _propTypes["default"].string,
98
- /** Determines the arrangement of the radios. */
99
- orientation: _propTypes["default"].oneOf(['horizontal', 'vertical']),
100
- /**
101
- * Handler that is called when the value changes.
102
- *
103
- * `(newValue) => void`
104
- */
105
- onChange: _propTypes["default"].func,
106
- /** Whether the radio group is disabled. */
107
- isDisabled: _propTypes["default"].bool,
108
- /** Whether user input is required on the input before form submission. */
109
- isRequired: _propTypes["default"].bool,
110
- /**
111
- * The content to display as the label. If not set, It is recommended to set an aria-label or
112
- * aria-labelledby attribute for accessibility.
113
- */
114
- label: _propTypes["default"].node,
115
- /** The element's unique identifier. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id). */
116
- id: _propTypes["default"].string
117
- }, _statusProp.statusPropTypes), _ariaAttributes.ariaAttributesBasePropTypes), _fieldAttributes.inputFieldAttributesBasePropTypes);
118
- RadioGroupField.displayName = displayName;
119
74
  var _default = RadioGroupField;
120
75
  exports["default"] = _default;
@@ -0,0 +1,42 @@
1
+ import React from 'react';
2
+ declare const _default: {
3
+ title: string;
4
+ component: React.ForwardRefExoticComponent<import("../../types/radioGroupField").RadioGroupFieldProps & React.RefAttributes<HTMLDivElement>>;
5
+ parameters: {
6
+ docs: {
7
+ page: () => React.JSX.Element;
8
+ };
9
+ };
10
+ argTypes: any;
11
+ args: {
12
+ label: string;
13
+ defaultValue: string;
14
+ };
15
+ };
16
+ export default _default;
17
+ export declare const Default: {
18
+ (args: any): React.JSX.Element;
19
+ parameters: {
20
+ design: {
21
+ type: string;
22
+ url: string;
23
+ };
24
+ };
25
+ };
26
+ export declare const Controlled: () => React.JSX.Element;
27
+ export declare const Required: () => React.JSX.Element;
28
+ export declare const CheckedContent: () => React.JSX.Element;
29
+ export declare const HelperText: {
30
+ (): React.JSX.Element;
31
+ parameters: {
32
+ a11y: {
33
+ config: {
34
+ rules: {
35
+ id: string;
36
+ enabled: boolean;
37
+ }[];
38
+ };
39
+ };
40
+ };
41
+ };
42
+ export declare const HorizontalOrientation: () => React.JSX.Element;
@@ -20,6 +20,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/he
20
20
  var _react = _interopRequireWildcard(require("react"));
21
21
  var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
22
22
  var _index = require("../../index");
23
+ var _figmaLinks = require("../../utils/designUtils/figmaLinks");
23
24
  var _ariaAttributes = require("../../utils/docUtils/ariaAttributes");
24
25
  var _statusProp = require("../../utils/docUtils/statusProp");
25
26
  var _RadioGroupField = _interopRequireDefault(require("./RadioGroupField.mdx"));
@@ -85,6 +86,12 @@ var Default = function Default(args) {
85
86
  }));
86
87
  };
87
88
  exports.Default = Default;
89
+ Default.parameters = {
90
+ design: {
91
+ type: 'figma',
92
+ url: _figmaLinks.FIGMA_LINKS.radioGroup["default"]
93
+ }
94
+ };
88
95
  var Controlled = function Controlled() {
89
96
  var _useState = (0, _react.useState)('A'),
90
97
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -34,16 +34,16 @@ var defaultProps = {
34
34
  var getComponent = function getComponent() {
35
35
  var groupProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
36
36
  var radioProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
37
- return (0, _testWrapper.render)((0, _react2.jsx)(_["default"], (0, _extends2["default"])({}, defaultProps, groupProps), (0, _react2.jsx)(_RadioField["default"], (0, _extends2["default"])({
37
+ return (0, _testWrapper.render)((0, _react2.jsx)(_["default"], (0, _extends2["default"])({}, defaultProps, groupProps), (0, _react2.jsx)(_RadioField["default"], {
38
38
  value: testValues[0],
39
39
  label: testValues[0]
40
- }, radioProps[0])), (0, _react2.jsx)(_RadioField["default"], (0, _extends2["default"])({
40
+ }), (0, _react2.jsx)(_RadioField["default"], {
41
41
  value: testValues[1],
42
42
  label: testValues[1]
43
- }, radioProps[1])), (0, _react2.jsx)(_RadioField["default"], (0, _extends2["default"])({
43
+ }), (0, _react2.jsx)(_RadioField["default"], {
44
44
  value: testValues[2],
45
45
  label: testValues[2]
46
- }, radioProps[2]))));
46
+ })));
47
47
  };
48
48
 
49
49
  // Needs to be added to each components test file
@@ -0,0 +1 @@
1
+ export { default } from './RadioGroupField';
@@ -0,0 +1 @@
1
+ export { default } from './useLoadPrev';
@@ -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 _useLoadPrev["default"];
12
+ }
13
+ });
14
+ var _useLoadPrev = _interopRequireDefault(require("./useLoadPrev"));
@@ -0,0 +1,2 @@
1
+ declare const useLoadPrev: (props: any, ref: any) => void;
2
+ export default useLoadPrev;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _react = require("react");
9
+ var _utils = require("@react-aria/utils");
10
+ var useLoadPrev = function useLoadPrev(props, ref) {
11
+ var isLoading = props.isLoading,
12
+ onLoadPrev = props.onLoadPrev,
13
+ items = props.items;
14
+ var isLoadingRef = (0, _react.useRef)(isLoading);
15
+ var prevProps = (0, _react.useRef)(props);
16
+ var onScroll = (0, _react.useCallback)(function () {
17
+ if (ref.current && !isLoadingRef.current && onLoadPrev) {
18
+ var rc = ref.current;
19
+ var shouldLoadPrev = rc.scrollTop === 0;
20
+ if (shouldLoadPrev) {
21
+ isLoadingRef.current = true;
22
+ onLoadPrev();
23
+ }
24
+ }
25
+ }, [onLoadPrev, ref]);
26
+ (0, _react.useLayoutEffect)(function () {
27
+ if (props !== prevProps.current) {
28
+ isLoadingRef.current = isLoading;
29
+ prevProps.current = props;
30
+ }
31
+ }, [isLoading, onLoadPrev, props, ref, items]);
32
+ (0, _utils.useEvent)(ref, 'scroll', onScroll);
33
+ };
34
+ var _default = useLoadPrev;
35
+ exports["default"] = _default;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _react2 = require("@testing-library/react");
10
+ var _Box = _interopRequireDefault(require("../../components/Box"));
11
+ var _testWrapper = require("../../utils/testUtils/testWrapper");
12
+ var _useLoadPrev = _interopRequireDefault(require("./useLoadPrev"));
13
+ var _react3 = require("@emotion/react");
14
+ 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); }
15
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
+ var onLoadPrev = jest.fn();
17
+ var TestComponent = function TestComponent(props) {
18
+ var items = props.items;
19
+ var ref = (0, _react.useRef)(null);
20
+ (0, _useLoadPrev["default"])({
21
+ isLoading: false,
22
+ onLoadPrev: onLoadPrev,
23
+ items: items
24
+ }, ref);
25
+ return (0, _react3.jsx)(_Box["default"], {
26
+ sx: {
27
+ height: '400px',
28
+ maxHeight: '400px',
29
+ overflowY: 'scroll'
30
+ },
31
+ "data-testid": "outerbox",
32
+ ref: ref
33
+ }, "content", (0, _react3.jsx)(_Box["default"], {
34
+ sx: {
35
+ height: '800px',
36
+ minHeight: '800px'
37
+ },
38
+ "data-testid": "innerbox"
39
+ }, "inner content"));
40
+ };
41
+ describe('useLoadPrev', function () {
42
+ it('onLoadPrev is called when scrolling to the top', function () {
43
+ var _render = (0, _testWrapper.render)((0, _react3.jsx)(TestComponent, {
44
+ items: [1, 2, 3, 4]
45
+ })),
46
+ rerender = _render.rerender;
47
+ var listView = _testWrapper.screen.getByTestId('outerbox');
48
+ _react2.fireEvent.scroll(listView, {
49
+ target: {
50
+ scrollY: 450
51
+ }
52
+ });
53
+ _react2.fireEvent.scroll(listView, {
54
+ target: {
55
+ scrollY: 0
56
+ }
57
+ });
58
+ expect(onLoadPrev).toHaveBeenCalledTimes(1);
59
+ // should not call because props have not changed
60
+ _react2.fireEvent.scroll(listView, {
61
+ target: {
62
+ scrollY: 450
63
+ }
64
+ });
65
+ _react2.fireEvent.scroll(listView, {
66
+ target: {
67
+ scrollY: 0
68
+ }
69
+ });
70
+ expect(onLoadPrev).toHaveBeenCalledTimes(1);
71
+ // will call becuase props have changed.
72
+ rerender((0, _react3.jsx)(TestComponent, {
73
+ items: [1, 2, 3, 4, 5]
74
+ }));
75
+ _react2.fireEvent.scroll(listView, {
76
+ target: {
77
+ scrollY: 450
78
+ }
79
+ });
80
+ _react2.fireEvent.scroll(listView, {
81
+ target: {
82
+ scrollY: 0
83
+ }
84
+ });
85
+ expect(onLoadPrev).toHaveBeenCalledTimes(2);
86
+ });
87
+ });
@@ -12,6 +12,7 @@ export interface ListViewProps extends Omit<TreeProps<ExampleItemProps>, 'select
12
12
  selectionMode?: SelectionOptions;
13
13
  onFocus?: (event: any) => void;
14
14
  onLoadMore?: () => void;
15
+ onLoadPrev?: () => void;
15
16
  'aria-label'?: string;
16
17
  containerProps?: object;
17
18
  sx?: ThemeUICSSObject;
@@ -0,0 +1,3 @@
1
+ export interface RadioProps {
2
+ variant: string;
3
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
@@ -0,0 +1,42 @@
1
+ import { ReactNode } from 'react';
2
+ import { Status } from './item';
3
+ import { DOMAttributes } from './shared';
4
+ export interface RadioFieldProps extends DOMAttributes {
5
+ /** Content to display when the radio is checked. */
6
+ checkedContent?: ReactNode;
7
+ /** props spread into the input element */
8
+ controlProps?: object;
9
+ /** The rendered label for the field. */
10
+ label?: ReactNode;
11
+ /** Whether the element should receive focus on render. */
12
+ hasAutoFocus?: boolean;
13
+ /** Text rendered below the input. */
14
+ helperText?: ReactNode;
15
+ /** If present this prop will cause a help hint to render in the label of the field. */
16
+ hintText?: string;
17
+ /** The element's unique identifier. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id). */
18
+ id?: string;
19
+ /**
20
+ * Whether the radio button is disabled or not. Shows that a selection exists, but is not
21
+ * available in that circumstance.
22
+ */
23
+ isDisabled?: boolean;
24
+ /** Whether the Radio can be interacted with but cannot have its selection state changed. */
25
+ isReadOnly?: boolean;
26
+ /** Whether the Radio is required. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/required). */
27
+ isRequired?: boolean;
28
+ /** the status of the radio field */
29
+ status?: Status;
30
+ /** The value of the input element, used when submitting an HTML form. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefvalue). */
31
+ value: string;
32
+ /** Handler that is called when the element receives focus. */
33
+ onFocus?: () => void;
34
+ /** Handler that is called when the element loses focus. */
35
+ onBlur?: () => void;
36
+ /** Handler that is called when the element's focus status changes. */
37
+ onFocusChange?: () => void;
38
+ /** Handler that is called when a key is pressed. */
39
+ onKeyDown?: () => void;
40
+ /** Handler that is called when a key is released. */
41
+ onKeyUp?: () => void;
42
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
@@ -0,0 +1,15 @@
1
+ import { ReactNode } from 'react';
2
+ import { AriaRadioGroupProps } from 'react-aria';
3
+ import { SharedFieldProps } from './shared/fieldProps';
4
+ export interface RadioGroupFieldProps extends Omit<AriaRadioGroupProps, 'label'>, SharedFieldProps {
5
+ className?: string;
6
+ id?: string;
7
+ isDisabled?: boolean;
8
+ isRequired?: boolean;
9
+ children?: ReactNode;
10
+ name?: string;
11
+ value?: string;
12
+ defaultValue?: string;
13
+ orientation?: 'horizontal' | 'vertical';
14
+ onChange?: (value: string) => void;
15
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
@@ -149,6 +149,9 @@ export declare const FIGMA_LINKS: {
149
149
  popoverMenu: {
150
150
  default: string;
151
151
  };
152
+ radioGroup: {
153
+ default: string;
154
+ };
152
155
  requirementsList: {
153
156
  default: string;
154
157
  };
@@ -156,6 +156,9 @@ var FIGMA_LINKS = {
156
156
  popoverMenu: {
157
157
  "default": 'https://www.figma.com/file/Oa6VYtJcUJzEJuuRp0p4ls/Astro?type=design&node-id=0%3A3073&t=We3h7LaaFJQnxdSy-1'
158
158
  },
159
+ radioGroup: {
160
+ "default": 'https://embed.figma.com/design/bpbEw54gTTcdIiZs4PKK1p/Astro-Specs?m=auto&node-id=3613-12435&embed-host=share'
161
+ },
159
162
  requirementsList: {
160
163
  "default": 'https://www.figma.com/file/Oa6VYtJcUJzEJuuRp0p4ls/Astro?type=design&node-id=0%3A4039&t=We3h7LaaFJQnxdSy-1'
161
164
  },
@@ -11,6 +11,7 @@ var _default = {
11
11
  IDLE: 'idle',
12
12
  LOADING: 'loading',
13
13
  LOADING_MORE: 'loadingMore',
14
- SORTING: 'sorting'
14
+ SORTING: 'sorting',
15
+ LOADING_MORE_PREPEND: 'loadingMorePrepend'
15
16
  };
16
17
  exports["default"] = _default;