@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.
- package/lib/cjs/components/ListView/ListView.js +15 -2
- package/lib/cjs/components/ListView/ListView.stories.d.ts +1 -0
- package/lib/cjs/components/ListView/ListView.stories.js +157 -33
- package/lib/cjs/components/ListView/ListView.test.js +171 -77
- package/lib/cjs/components/Radio/Radio.d.ts +12 -0
- package/lib/cjs/components/Radio/Radio.js +2 -1
- package/lib/cjs/components/Radio/Radio.styles.d.ts +53 -0
- package/lib/cjs/components/Radio/Radio.styles.js +4 -2
- package/lib/cjs/components/Radio/index.d.ts +1 -0
- package/lib/cjs/components/RadioField/RadioField.d.ts +12 -0
- package/lib/cjs/components/RadioField/RadioField.js +6 -57
- package/lib/cjs/components/RadioField/RadioField.test.d.ts +1 -0
- package/lib/cjs/components/RadioField/RadioField.test.js +7 -4
- package/lib/cjs/components/RadioField/index.d.ts +2 -0
- package/lib/cjs/components/RadioGroupField/RadioGroupField.d.ts +4 -0
- package/lib/cjs/components/RadioGroupField/RadioGroupField.js +2 -47
- package/lib/cjs/components/RadioGroupField/RadioGroupField.stories.d.ts +42 -0
- package/lib/cjs/components/RadioGroupField/RadioGroupField.stories.js +7 -0
- package/lib/cjs/components/RadioGroupField/RadioGroupField.test.d.ts +1 -0
- package/lib/cjs/components/RadioGroupField/RadioGroupField.test.js +4 -4
- package/lib/cjs/components/RadioGroupField/index.d.ts +1 -0
- package/lib/cjs/hooks/useLoadPrev/index.d.ts +1 -0
- package/lib/cjs/hooks/useLoadPrev/index.js +14 -0
- package/lib/cjs/hooks/useLoadPrev/useLoadPrev.d.ts +2 -0
- package/lib/cjs/hooks/useLoadPrev/useLoadPrev.js +35 -0
- package/lib/cjs/hooks/useLoadPrev/useLoadPrev.test.d.ts +1 -0
- package/lib/cjs/hooks/useLoadPrev/useLoadPrev.test.js +87 -0
- package/lib/cjs/types/listView.d.ts +1 -0
- package/lib/cjs/types/radio.d.ts +3 -0
- package/lib/cjs/types/radio.js +6 -0
- package/lib/cjs/types/radioField.d.ts +42 -0
- package/lib/cjs/types/radioField.js +6 -0
- package/lib/cjs/types/radioGroupField.d.ts +15 -0
- package/lib/cjs/types/radioGroupField.js +6 -0
- package/lib/cjs/utils/designUtils/figmaLinks.d.ts +3 -0
- package/lib/cjs/utils/designUtils/figmaLinks.js +3 -0
- package/lib/cjs/utils/devUtils/constants/loadingStates.js +2 -1
- package/lib/components/ListView/ListView.js +15 -2
- package/lib/components/ListView/ListView.stories.js +125 -2
- package/lib/components/ListView/ListView.test.js +168 -77
- package/lib/components/Radio/Radio.js +1 -2
- package/lib/components/Radio/Radio.styles.js +4 -2
- package/lib/components/RadioField/RadioField.js +8 -59
- package/lib/components/RadioField/RadioField.test.js +7 -4
- package/lib/components/RadioGroupField/RadioGroupField.js +0 -47
- package/lib/components/RadioGroupField/RadioGroupField.stories.js +7 -0
- package/lib/components/RadioGroupField/RadioGroupField.test.js +4 -4
- package/lib/hooks/useLoadPrev/index.js +1 -0
- package/lib/hooks/useLoadPrev/useLoadPrev.js +27 -0
- package/lib/hooks/useLoadPrev/useLoadPrev.test.js +78 -0
- package/lib/types/radio.js +1 -0
- package/lib/types/radioField.js +1 -0
- package/lib/types/radioGroupField.js +1 -0
- package/lib/utils/designUtils/figmaLinks.js +3 -0
- package/lib/utils/devUtils/constants/loadingStates.js +2 -1
- 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
|
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
|
-
|
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
|
-
},
|
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
|
});
|
@@ -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),
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -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"],
|
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
|
-
}
|
40
|
+
}), (0, _react2.jsx)(_RadioField["default"], {
|
41
41
|
value: testValues[1],
|
42
42
|
label: testValues[1]
|
43
|
-
}
|
43
|
+
}), (0, _react2.jsx)(_RadioField["default"], {
|
44
44
|
value: testValues[2],
|
45
45
|
label: testValues[2]
|
46
|
-
}
|
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,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,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,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
|
+
}
|
@@ -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
|
},
|