@pingux/astro 1.2.0-alpha.8 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +64 -0
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.js +35 -22
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.stories.js +148 -169
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.test.js +25 -30
- package/lib/cjs/components/AccordionGridItem/AccordionGridItem.js +29 -14
- package/lib/cjs/components/AccordionGridItem/AccordionGridItemBody.js +8 -5
- package/lib/cjs/components/AccordionGridItem/AccordionGridItemHeader.js +20 -17
- package/lib/cjs/components/AccordionGroup/AccordionGroup.js +2 -1
- package/lib/cjs/components/AccordionGroup/AccordionGroup.test.js +20 -1
- package/lib/cjs/components/ArrayField/ArrayField.js +213 -0
- package/lib/cjs/components/ArrayField/ArrayField.stories.js +223 -0
- package/lib/cjs/components/ArrayField/ArrayField.test.js +208 -0
- package/lib/cjs/components/ArrayField/ArrayFieldDeleteButton.js +61 -0
- package/lib/cjs/components/ArrayField/index.js +27 -0
- package/lib/cjs/components/Breadcrumbs/Breadcrumbs.stories.js +3 -3
- package/lib/cjs/components/Button/Button.js +14 -2
- package/lib/cjs/components/Button/Button.stories.js +33 -33
- package/lib/cjs/components/CodeView/CodeView.js +3 -3
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +5 -3
- package/lib/cjs/components/Link/Link.js +2 -1
- package/lib/cjs/components/ListView/ListView.js +9 -13
- package/lib/cjs/components/ListView/ListView.stories.js +3 -0
- package/lib/cjs/components/ListViewItem/ListViewItem.js +15 -3
- package/lib/cjs/components/Loader/Loader.stories.js +3 -3
- package/lib/cjs/components/Modal/Modal.js +3 -0
- package/lib/cjs/components/Modal/Modal.stories.js +12 -67
- package/lib/cjs/components/NavBar/NavBar.js +30 -4
- package/lib/cjs/components/NavBar/NavBar.stories.js +70 -463
- package/lib/cjs/components/NavBar/NavBar.test.js +51 -1
- package/lib/cjs/components/NavBarSection/NavBarItem.js +137 -0
- package/lib/cjs/components/NavBarSection/NavBarItemButton.js +96 -0
- package/lib/cjs/components/NavBarSection/NavBarItemHeader.js +1 -1
- package/lib/cjs/components/NavBarSection/NavBarItemLink.js +98 -0
- package/lib/cjs/components/NavBarSection/NavBarSection.js +10 -8
- package/lib/cjs/components/NavBarSection/index.js +28 -1
- package/lib/cjs/components/OverlayPanel/OverlayPanel.js +2 -16
- package/lib/cjs/components/OverlayPanel/OverlayPanel.test.js +44 -0
- package/lib/cjs/components/RockerButton/RockerButton.js +14 -22
- package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.js +5 -9
- package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.stories.js +4 -22
- package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.test.js +5 -14
- package/lib/cjs/components/SearchField/SearchField.stories.js +1 -15
- package/lib/cjs/components/SelectFieldBase/SelectFieldBase.js +8 -1
- package/lib/cjs/components/TextAreaField/TextAreaField.js +54 -9
- package/lib/cjs/components/TextAreaField/TextAreaField.stories.js +31 -52
- package/lib/cjs/components/TextAreaField/TextAreaField.test.js +12 -0
- package/lib/cjs/context/AccordionGridContext/index.js +20 -0
- package/lib/cjs/context/NavBarContext/index.js +20 -0
- package/lib/cjs/hooks/index.js +9 -0
- package/lib/cjs/hooks/useAriaLabelWarning/useAriaLabelWarning.js +2 -1
- package/lib/cjs/hooks/useField/useField.js +5 -0
- package/lib/cjs/{components/AccordionGridGroup/AccordionGridContext.js → hooks/useNavBarPress/index.js} +7 -6
- package/lib/cjs/hooks/useNavBarPress/useNavBarPress.js +38 -0
- package/lib/cjs/hooks/useNavBarPress/useNavBarPress.test.js +42 -0
- package/lib/cjs/hooks/useRockerButton/useRockerButton.js +4 -6
- package/lib/cjs/index.js +80 -58
- package/lib/cjs/layouts/ListLayout.stories.js +6 -6
- package/lib/cjs/recipes/ConditionalFilter.stories.js +7 -3
- package/lib/cjs/recipes/RadioButtonsWithLinks.stories.js +1 -1
- package/lib/cjs/styles/variants/accordion.js +39 -7
- package/lib/cjs/styles/variants/boxes.js +10 -24
- package/lib/cjs/styles/variants/buttons.js +27 -1
- package/lib/cjs/styles/variants/codeView.js +91 -0
- package/lib/cjs/styles/variants/navBar.js +68 -0
- package/lib/cjs/styles/variants/separator.js +2 -1
- package/lib/cjs/styles/variants/text.js +3 -1
- package/lib/cjs/styles/variants/variants.js +3 -0
- package/lib/components/AccordionGridGroup/AccordionGridGroup.js +35 -22
- package/lib/components/AccordionGridGroup/AccordionGridGroup.stories.js +143 -166
- package/lib/components/AccordionGridGroup/AccordionGridGroup.test.js +24 -25
- package/lib/components/AccordionGridItem/AccordionGridItem.js +29 -15
- package/lib/components/AccordionGridItem/AccordionGridItemBody.js +8 -6
- package/lib/components/AccordionGridItem/AccordionGridItemHeader.js +22 -18
- package/lib/components/AccordionGroup/AccordionGroup.js +2 -1
- package/lib/components/AccordionGroup/AccordionGroup.test.js +16 -2
- package/lib/components/ArrayField/ArrayField.js +179 -0
- package/lib/components/ArrayField/ArrayField.stories.js +196 -0
- package/lib/components/ArrayField/ArrayField.test.js +185 -0
- package/lib/components/ArrayField/ArrayFieldDeleteButton.js +43 -0
- package/lib/components/ArrayField/index.js +2 -0
- package/lib/components/Breadcrumbs/Breadcrumbs.stories.js +3 -3
- package/lib/components/Button/Button.js +15 -3
- package/lib/components/Button/Button.stories.js +17 -15
- package/lib/components/CodeView/CodeView.js +2 -2
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +5 -3
- package/lib/components/Link/Link.js +2 -1
- package/lib/components/ListView/ListView.js +9 -12
- package/lib/components/ListView/ListView.stories.js +3 -0
- package/lib/components/ListViewItem/ListViewItem.js +14 -3
- package/lib/components/Loader/Loader.stories.js +1 -1
- package/lib/components/Modal/Modal.js +4 -1
- package/lib/components/Modal/Modal.stories.js +11 -60
- package/lib/components/NavBar/NavBar.js +25 -4
- package/lib/components/NavBar/NavBar.stories.js +71 -462
- package/lib/components/NavBar/NavBar.test.js +39 -2
- package/lib/components/NavBarSection/NavBarItem.js +111 -0
- package/lib/components/NavBarSection/NavBarItemButton.js +69 -0
- package/lib/components/NavBarSection/NavBarItemHeader.js +1 -1
- package/lib/components/NavBarSection/NavBarItemLink.js +71 -0
- package/lib/components/NavBarSection/NavBarSection.js +9 -8
- package/lib/components/NavBarSection/index.js +4 -1
- package/lib/components/OverlayPanel/OverlayPanel.js +3 -16
- package/lib/components/OverlayPanel/OverlayPanel.test.js +38 -0
- package/lib/components/RockerButton/RockerButton.js +14 -21
- package/lib/components/RockerButtonGroup/RockerButtonGroup.js +5 -9
- package/lib/components/RockerButtonGroup/RockerButtonGroup.stories.js +2 -17
- package/lib/components/RockerButtonGroup/RockerButtonGroup.test.js +5 -11
- package/lib/components/SearchField/SearchField.stories.js +0 -11
- package/lib/components/SelectFieldBase/SelectFieldBase.js +8 -1
- package/lib/components/TextAreaField/TextAreaField.js +54 -10
- package/lib/components/TextAreaField/TextAreaField.stories.js +26 -42
- package/lib/components/TextAreaField/TextAreaField.test.js +13 -0
- package/lib/context/AccordionGridContext/index.js +5 -0
- package/lib/context/NavBarContext/index.js +5 -0
- package/lib/hooks/index.js +1 -0
- package/lib/hooks/useAriaLabelWarning/useAriaLabelWarning.js +2 -1
- package/lib/hooks/useField/useField.js +5 -0
- package/lib/hooks/useNavBarPress/index.js +1 -0
- package/lib/hooks/useNavBarPress/useNavBarPress.js +27 -0
- package/lib/hooks/useNavBarPress/useNavBarPress.test.js +36 -0
- package/lib/hooks/useRockerButton/useRockerButton.js +4 -6
- package/lib/index.js +2 -0
- package/lib/layouts/ListLayout.stories.js +6 -6
- package/lib/recipes/ConditionalFilter.stories.js +7 -3
- package/lib/recipes/RadioButtonsWithLinks.stories.js +1 -1
- package/lib/styles/variants/accordion.js +26 -5
- package/lib/styles/variants/boxes.js +10 -24
- package/lib/styles/variants/buttons.js +27 -1
- package/lib/styles/variants/codeView.js +91 -0
- package/lib/styles/variants/navBar.js +46 -0
- package/lib/styles/variants/separator.js +2 -1
- package/lib/styles/variants/text.js +3 -1
- package/lib/styles/variants/variants.js +2 -0
- package/package.json +5 -3
- package/lib/cjs/recipes/ArrayField.stories.js +0 -169
- package/lib/components/AccordionGridGroup/AccordionGridContext.js +0 -2
- package/lib/recipes/ArrayField.stories.js +0 -134
@@ -70,10 +70,10 @@ var RockerButtonGroup = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref
|
|
70
70
|
var _context;
|
71
71
|
|
72
72
|
var children = props.children,
|
73
|
-
isDisabled = props.isDisabled,
|
74
73
|
onSelectionChange = props.onSelectionChange,
|
75
74
|
tabListProps = props.tabListProps,
|
76
|
-
|
75
|
+
disabledKeys = props.disabledKeys,
|
76
|
+
others = (0, _objectWithoutProperties2["default"])(props, ["children", "onSelectionChange", "tabListProps", "disabledKeys"]);
|
77
77
|
var buttonGroupRef = (0, _react.useRef)();
|
78
78
|
(0, _hooks.usePropWarning)(props, 'disabled', 'isDisabled');
|
79
79
|
/* istanbul ignore next */
|
@@ -102,8 +102,7 @@ var RockerButtonGroup = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref
|
|
102
102
|
}), (0, _map["default"])(_context = (0, _from["default"])(state.collection)).call(_context, function (item) {
|
103
103
|
return (0, _react2.jsx)(_RockerButton.CollectionRockerButton, {
|
104
104
|
key: item.key,
|
105
|
-
item: item
|
106
|
-
isDisabled: isDisabled
|
105
|
+
item: item
|
107
106
|
});
|
108
107
|
}))));
|
109
108
|
});
|
@@ -114,15 +113,12 @@ RockerButtonGroup.propTypes = {
|
|
114
113
|
/** The button key that is currently selected. (controlled) */
|
115
114
|
selectedKey: _propTypes["default"].string,
|
116
115
|
|
117
|
-
/**
|
118
|
-
|
116
|
+
/** Which keys should be disabled. */
|
117
|
+
disabledKeys: _propTypes["default"].arrayOf(_propTypes["default"].string),
|
119
118
|
|
120
119
|
/** Handler that is called when the selected button has changed. */
|
121
120
|
onSelectionChange: _propTypes["default"].func
|
122
121
|
};
|
123
|
-
RockerButtonGroup.defaultProps = {
|
124
|
-
isDisabled: false
|
125
|
-
};
|
126
122
|
RockerButtonGroup.displayName = 'RockerButtonGroup';
|
127
123
|
var _default = RockerButtonGroup;
|
128
124
|
exports["default"] = _default;
|
@@ -10,7 +10,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
10
10
|
value: true
|
11
11
|
});
|
12
12
|
|
13
|
-
exports.
|
13
|
+
exports.DisabledSingleButton = exports.withCustomSelectedColors = exports.Controlled = exports.Uncontrolled = exports.Default = exports["default"] = void 0;
|
14
14
|
|
15
15
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
16
16
|
|
@@ -129,26 +129,8 @@ exports.withCustomSelectedColors = withCustomSelectedColors;
|
|
129
129
|
|
130
130
|
var DisabledSingleButton = function DisabledSingleButton() {
|
131
131
|
return (0, _react2.jsx)(_RockerButtonGroup["default"], {
|
132
|
-
defaultSelectedKey: "or"
|
133
|
-
|
134
|
-
name: "and",
|
135
|
-
key: "and",
|
136
|
-
isDisabled: true
|
137
|
-
}, "And"), (0, _react2.jsx)(_RockerButton["default"], {
|
138
|
-
name: "or",
|
139
|
-
key: "or"
|
140
|
-
}, "Or"), (0, _react2.jsx)(_RockerButton["default"], {
|
141
|
-
name: "maybe",
|
142
|
-
key: "maybe"
|
143
|
-
}, "Maybe"));
|
144
|
-
};
|
145
|
-
|
146
|
-
exports.DisabledSingleButton = DisabledSingleButton;
|
147
|
-
|
148
|
-
var DisabledRockerButtonGroup = function DisabledRockerButtonGroup() {
|
149
|
-
return (0, _react2.jsx)(_RockerButtonGroup["default"], {
|
150
|
-
isDisabled: true,
|
151
|
-
defaultSelectedKey: "and"
|
132
|
+
defaultSelectedKey: "or",
|
133
|
+
disabledKeys: ['and']
|
152
134
|
}, (0, _react2.jsx)(_RockerButton["default"], {
|
153
135
|
name: "and",
|
154
136
|
key: "and"
|
@@ -161,4 +143,4 @@ var DisabledRockerButtonGroup = function DisabledRockerButtonGroup() {
|
|
161
143
|
}, "Maybe"));
|
162
144
|
};
|
163
145
|
|
164
|
-
exports.
|
146
|
+
exports.DisabledSingleButton = DisabledSingleButton;
|
@@ -82,9 +82,11 @@ test('buttonGroup is not disabled by default', function () {
|
|
82
82
|
expect(buttonKey).not.toHaveClass('is-disabled');
|
83
83
|
});
|
84
84
|
});
|
85
|
-
test('
|
85
|
+
test('rocker button is disabled when its key is included in disabledKeys', function () {
|
86
86
|
getComponent({
|
87
|
-
|
87
|
+
disabledKeys: (0, _map["default"])(testButtons).call(testButtons, function (button) {
|
88
|
+
return button.key;
|
89
|
+
})
|
88
90
|
});
|
89
91
|
(0, _forEach["default"])(testButtons).call(testButtons, function (button) {
|
90
92
|
var buttonKey = _testWrapper.screen.getByText(button.key);
|
@@ -100,9 +102,7 @@ test('rockerButton renders selectedStyles prop when selected', function () {
|
|
100
102
|
expect(buttonColorKey).toHaveClass('is-selected');
|
101
103
|
});
|
102
104
|
test('selected button can be changed by keyboard interaction', function () {
|
103
|
-
getComponent();
|
104
|
-
|
105
|
-
_userEvent["default"].tab();
|
105
|
+
getComponent();
|
106
106
|
|
107
107
|
_userEvent["default"].tab();
|
108
108
|
|
@@ -114,20 +114,11 @@ test('selected button can be changed by keyboard interaction', function () {
|
|
114
114
|
|
115
115
|
expect(button1).not.toHaveClass('is-selected');
|
116
116
|
|
117
|
-
_userEvent["default"].tab();
|
118
|
-
|
119
|
-
_userEvent["default"].tab();
|
120
|
-
|
121
117
|
_testWrapper.fireEvent.keyDown(_testWrapper.screen.getByText(testButtons[0].key), {
|
122
118
|
key: 'ArrowRight',
|
123
119
|
code: 'ArrowRight'
|
124
120
|
});
|
125
121
|
|
126
|
-
_testWrapper.fireEvent.keyDown(_testWrapper.screen.getByText(testButtons[1].key), {
|
127
|
-
key: 'ArrowRight',
|
128
|
-
code: 'ArrowRight'
|
129
|
-
});
|
130
|
-
|
131
122
|
expect(_testWrapper.screen.getByText(testButtons[1].key)).toHaveClass('is-selected');
|
132
123
|
expect(_testWrapper.screen.getByText(testButtons[0].key)).not.toHaveClass('is-selected');
|
133
124
|
});
|
@@ -10,7 +10,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
10
10
|
value: true
|
11
11
|
});
|
12
12
|
|
13
|
-
exports.ControlledWithDebouncedInput = exports.
|
13
|
+
exports.ControlledWithDebouncedInput = exports.NoClearButton = exports.CustomIcon = exports.Controlled = exports.Default = exports["default"] = void 0;
|
14
14
|
|
15
15
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
16
16
|
|
@@ -137,20 +137,6 @@ var NoClearButton = function NoClearButton() {
|
|
137
137
|
|
138
138
|
exports.NoClearButton = NoClearButton;
|
139
139
|
|
140
|
-
var MaxLength = function MaxLength(args) {
|
141
|
-
return (0, _react2.jsx)(_index.SearchField, (0, _extends2["default"])({}, args, {
|
142
|
-
icon: _SearchIcon["default"],
|
143
|
-
"aria-label": "Search Groups",
|
144
|
-
onSubmit: function onSubmit(text) {
|
145
|
-
return alert(text);
|
146
|
-
} // eslint-disable-line no-alert
|
147
|
-
,
|
148
|
-
maxLength: 9
|
149
|
-
}));
|
150
|
-
};
|
151
|
-
|
152
|
-
exports.MaxLength = MaxLength;
|
153
|
-
|
154
140
|
var ControlledWithDebouncedInput = function ControlledWithDebouncedInput() {
|
155
141
|
var _useState3 = (0, _react.useState)(''),
|
156
142
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
@@ -80,6 +80,7 @@ var SelectFieldBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
80
80
|
name = props.name,
|
81
81
|
placeholder = props.placeholder,
|
82
82
|
status = props.status,
|
83
|
+
slots = props.slots,
|
83
84
|
columnStyleProps = props.columnStyleProps,
|
84
85
|
fieldContainerProps = props.fieldContainerProps,
|
85
86
|
fieldControlProps = props.fieldControlProps,
|
@@ -114,7 +115,7 @@ var SelectFieldBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref)
|
|
114
115
|
sx: state.isOpen ? {
|
115
116
|
transform: 'rotate(180deg)'
|
116
117
|
} : null
|
117
|
-
}))));
|
118
|
+
}))), slots === null || slots === void 0 ? void 0 : slots.inContainer);
|
118
119
|
return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
|
119
120
|
ref: ref,
|
120
121
|
variant: "forms.input.wrapper"
|
@@ -181,6 +182,12 @@ SelectFieldBase.propTypes = {
|
|
181
182
|
})
|
182
183
|
}),
|
183
184
|
|
185
|
+
/** Provides a way to insert markup in specified places. */
|
186
|
+
slots: _propTypes["default"].shape({
|
187
|
+
/** The given node will be inserted into the field container. */
|
188
|
+
inContainer: _propTypes["default"].node
|
189
|
+
}),
|
190
|
+
|
184
191
|
/** Control for interaction with SelectField */
|
185
192
|
trigger: _propTypes["default"].node,
|
186
193
|
|
@@ -38,6 +38,8 @@ var _react = _interopRequireWildcard(require("react"));
|
|
38
38
|
|
39
39
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
40
40
|
|
41
|
+
var _utils = require("@react-aria/utils");
|
42
|
+
|
41
43
|
var _hooks = require("../../hooks");
|
42
44
|
|
43
45
|
var _statuses = _interopRequireDefault(require("../../utils/devUtils/constants/statuses"));
|
@@ -63,7 +65,8 @@ var TextAreaField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
63
65
|
var helperText = props.helperText,
|
64
66
|
isUnresizable = props.isUnresizable,
|
65
67
|
rows = props.rows,
|
66
|
-
status = props.status
|
68
|
+
status = props.status,
|
69
|
+
slots = props.slots;
|
67
70
|
var statusClasses = {
|
68
71
|
isUnresizable: isUnresizable
|
69
72
|
};
|
@@ -77,6 +80,9 @@ var TextAreaField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
77
80
|
|
78
81
|
var textAreaRef = (0, _react.useRef)();
|
79
82
|
var labelRef = (0, _react.useRef)();
|
83
|
+
var containerRef = (0, _react.useRef)();
|
84
|
+
var inputContainerRef = (0, _react.useRef)();
|
85
|
+
var slotContainer = (0, _react.useRef)();
|
80
86
|
(0, _hooks.usePropWarning)(props, 'disabled', 'isDisabled');
|
81
87
|
/* istanbul ignore next */
|
82
88
|
|
@@ -89,6 +95,24 @@ var TextAreaField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
89
95
|
/* istanbul ignore next */
|
90
96
|
labelRef.current.style.width = textAreaRef.current.style.width;
|
91
97
|
};
|
98
|
+
/* istanbul ignore next */
|
99
|
+
|
100
|
+
|
101
|
+
var resizeSlotContainer = function resizeSlotContainer() {
|
102
|
+
inputContainerRef.current.style.width = textAreaRef.current.style.width;
|
103
|
+
};
|
104
|
+
|
105
|
+
var onResize = (0, _react.useCallback)(function () {
|
106
|
+
/* istanbul ignore next */
|
107
|
+
if (slots === null || slots === void 0 ? void 0 : slots.inContainer) {
|
108
|
+
resizeSlotContainer();
|
109
|
+
}
|
110
|
+
}, [slotContainer]);
|
111
|
+
(0, _utils.useResizeObserver)({
|
112
|
+
ref: textAreaRef,
|
113
|
+
onResize: onResize
|
114
|
+
});
|
115
|
+
(0, _utils.useLayoutEffect)(onResize, [onResize]);
|
92
116
|
|
93
117
|
var _useLabelHeight = (0, _hooks.useLabelHeight)({
|
94
118
|
labelRef: labelRef,
|
@@ -100,18 +124,22 @@ var TextAreaField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
100
124
|
labelMode: props.labelMode
|
101
125
|
});
|
102
126
|
(0, _react.useEffect)(function () {
|
127
|
+
var thisRef = textAreaRef.current;
|
128
|
+
|
103
129
|
if (!props.isUnresizable && props.labelMode === 'float') {
|
104
|
-
|
130
|
+
thisRef.addEventListener('mousemove', props.resizeCallback ? props.resizeCallback : resizeFloatLabel);
|
105
131
|
}
|
106
132
|
|
107
133
|
return function () {
|
108
|
-
|
134
|
+
thisRef.removeEventListener('mousemove', props.resizeCallback ? props.resizeCallback : resizeFloatLabel);
|
109
135
|
};
|
110
|
-
}, []);
|
136
|
+
}, [props.isUnresizable, props.labelMode, props.resizeCallback]);
|
111
137
|
return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
|
112
138
|
variant: "forms.input.wrapper"
|
113
139
|
}, fieldContainerProps, {
|
114
|
-
sx: _objectSpread(_objectSpread({}, columnStyleProps === null || columnStyleProps === void 0 ? void 0 : columnStyleProps.sx), fieldContainerProps === null || fieldContainerProps === void 0 ? void 0 : fieldContainerProps.sx)
|
140
|
+
sx: _objectSpread(_objectSpread({}, columnStyleProps === null || columnStyleProps === void 0 ? void 0 : columnStyleProps.sx), fieldContainerProps === null || fieldContainerProps === void 0 ? void 0 : fieldContainerProps.sx),
|
141
|
+
ref: containerRef,
|
142
|
+
maxWidth: "100%"
|
115
143
|
}), (0, _react2.jsx)(_Label["default"], (0, _extends2["default"])({
|
116
144
|
ref: labelRef
|
117
145
|
}, fieldLabelProps, {
|
@@ -119,12 +147,23 @@ var TextAreaField = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
119
147
|
gridRow: '1/5'
|
120
148
|
}
|
121
149
|
})), (0, _react2.jsx)(_Box["default"], {
|
150
|
+
isRow: true,
|
122
151
|
variant: "forms.input.container",
|
123
|
-
className: fieldControlProps.className
|
152
|
+
className: fieldControlProps.className,
|
153
|
+
minWidth: "40px",
|
154
|
+
maxWidth: "100%",
|
155
|
+
ref: inputContainerRef
|
124
156
|
}, (0, _react2.jsx)(_TextArea["default"], (0, _extends2["default"])({
|
125
157
|
ref: textAreaRef,
|
126
158
|
rows: rows
|
127
|
-
}, fieldControlProps
|
159
|
+
}, fieldControlProps, {
|
160
|
+
sx: (slots === null || slots === void 0 ? void 0 : slots.inContainer) && {
|
161
|
+
paddingRight: '35px'
|
162
|
+
}
|
163
|
+
})), (slots === null || slots === void 0 ? void 0 : slots.inContainer) && (0, _react2.jsx)(_Box["default"], {
|
164
|
+
variant: "boxes.textFieldInContainerSlot",
|
165
|
+
ref: slotContainer
|
166
|
+
}, slots === null || slots === void 0 ? void 0 : slots.inContainer)), helperText && (0, _react2.jsx)(_FieldHelperText["default"], {
|
128
167
|
status: status
|
129
168
|
}, helperText));
|
130
169
|
});
|
@@ -219,7 +258,13 @@ TextAreaField.propTypes = {
|
|
219
258
|
controlProps: _propTypes["default"].shape({}),
|
220
259
|
|
221
260
|
/** Props object that is spread directly into the label element. */
|
222
|
-
labelProps: _propTypes["default"].shape({})
|
261
|
+
labelProps: _propTypes["default"].shape({}),
|
262
|
+
|
263
|
+
/** Provides a way to insert markup in specified places. */
|
264
|
+
slots: _propTypes["default"].shape({
|
265
|
+
/** The given node will be inserted into the field container. */
|
266
|
+
inContainer: _propTypes["default"].node
|
267
|
+
})
|
223
268
|
};
|
224
269
|
TextAreaField.defaultProps = {
|
225
270
|
hasAutoFocus: false,
|
@@ -227,7 +272,7 @@ TextAreaField.defaultProps = {
|
|
227
272
|
isReadOnly: false,
|
228
273
|
isRequired: false,
|
229
274
|
isUnresizable: false,
|
230
|
-
rows:
|
275
|
+
rows: 4,
|
231
276
|
status: _statuses["default"].DEFAULT
|
232
277
|
};
|
233
278
|
TextAreaField.displayName = 'TextAreaField';
|
@@ -10,18 +10,24 @@ _Object$defineProperty(exports, "__esModule", {
|
|
10
10
|
value: true
|
11
11
|
});
|
12
12
|
|
13
|
-
exports.MaxLength = exports.WithoutStatusIndicator = exports.
|
13
|
+
exports.MaxLength = exports.WithoutStatusIndicator = exports.Error = exports.Unresizable = exports.Rows = exports.Required = exports.ReadOnly = exports.Disabled = exports.Controlled = exports.FloatLabel = exports.WithSlots = exports.Default = exports["default"] = void 0;
|
14
14
|
|
15
15
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
16
16
|
|
17
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
18
|
+
|
17
19
|
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values"));
|
18
20
|
|
19
21
|
var _react = _interopRequireWildcard(require("react"));
|
20
22
|
|
23
|
+
var _SearchIcon = _interopRequireDefault(require("mdi-react/SearchIcon"));
|
24
|
+
|
21
25
|
var _ = _interopRequireDefault(require("."));
|
22
26
|
|
23
27
|
var _Box = _interopRequireDefault(require("../Box"));
|
24
28
|
|
29
|
+
var _Icon = _interopRequireDefault(require("../Icon"));
|
30
|
+
|
25
31
|
var _statuses = _interopRequireDefault(require("../../utils/devUtils/constants/statuses"));
|
26
32
|
|
27
33
|
var _constants = require("../Label/constants");
|
@@ -85,6 +91,11 @@ var _default = {
|
|
85
91
|
}
|
86
92
|
};
|
87
93
|
exports["default"] = _default;
|
94
|
+
var IconSlot = (0, _react2.jsx)(_Box["default"], {
|
95
|
+
isRow: true
|
96
|
+
}, (0, _react2.jsx)(_Icon["default"], {
|
97
|
+
icon: _SearchIcon["default"]
|
98
|
+
}));
|
88
99
|
|
89
100
|
var Default = function Default(args) {
|
90
101
|
return (0, _react2.jsx)(_["default"], args);
|
@@ -92,6 +103,25 @@ var Default = function Default(args) {
|
|
92
103
|
|
93
104
|
exports.Default = Default;
|
94
105
|
|
106
|
+
var WithSlots = function WithSlots(args) {
|
107
|
+
return (// This is an example of a slot that can be passed into the component
|
108
|
+
// const IconSlot = (
|
109
|
+
// <Box isRow>
|
110
|
+
// <Icon
|
111
|
+
// icon={SearchIcon}
|
112
|
+
// />
|
113
|
+
// </Box>
|
114
|
+
// );
|
115
|
+
(0, _react2.jsx)(_["default"], (0, _extends2["default"])({}, args, {
|
116
|
+
slots: {
|
117
|
+
inContainer: IconSlot
|
118
|
+
}
|
119
|
+
}))
|
120
|
+
);
|
121
|
+
};
|
122
|
+
|
123
|
+
exports.WithSlots = WithSlots;
|
124
|
+
|
95
125
|
var FloatLabel = function FloatLabel() {
|
96
126
|
return (0, _react2.jsx)(_["default"], {
|
97
127
|
label: "Example label",
|
@@ -101,37 +131,6 @@ var FloatLabel = function FloatLabel() {
|
|
101
131
|
|
102
132
|
exports.FloatLabel = FloatLabel;
|
103
133
|
|
104
|
-
var LeftLabel = function LeftLabel() {
|
105
|
-
return (0, _react2.jsx)(_Box["default"], {
|
106
|
-
gap: "xl",
|
107
|
-
width: "fit-content"
|
108
|
-
}, (0, _react2.jsx)(_["default"], {
|
109
|
-
label: "Example label",
|
110
|
-
labelMode: "left"
|
111
|
-
}), (0, _react2.jsx)(_["default"], {
|
112
|
-
label: "Example label that is much longer than the previous one",
|
113
|
-
labelMode: "left",
|
114
|
-
status: "error"
|
115
|
-
}), (0, _react2.jsx)(_["default"], {
|
116
|
-
label: "Example label with set width",
|
117
|
-
labelMode: "left",
|
118
|
-
containerProps: {
|
119
|
-
sx: {
|
120
|
-
gridTemplateColumns: '120px auto'
|
121
|
-
}
|
122
|
-
}
|
123
|
-
}));
|
124
|
-
};
|
125
|
-
|
126
|
-
exports.LeftLabel = LeftLabel;
|
127
|
-
LeftLabel.parameters = {
|
128
|
-
docs: {
|
129
|
-
description: {
|
130
|
-
story: 'Users are able to override the default 40% column width when using left label by providing a new gridTemplatesColumn value, as shown in the example below.'
|
131
|
-
}
|
132
|
-
}
|
133
|
-
};
|
134
|
-
|
135
134
|
var Controlled = function Controlled() {
|
136
135
|
var _useState = (0, _react.useState)(),
|
137
136
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
@@ -206,26 +205,6 @@ var Error = function Error() {
|
|
206
205
|
|
207
206
|
exports.Error = Error;
|
208
207
|
|
209
|
-
var Success = function Success() {
|
210
|
-
return (0, _react2.jsx)(_["default"], {
|
211
|
-
helperText: "Here is some helpful text...",
|
212
|
-
label: "Example Label",
|
213
|
-
status: "success"
|
214
|
-
});
|
215
|
-
};
|
216
|
-
|
217
|
-
exports.Success = Success;
|
218
|
-
|
219
|
-
var Warning = function Warning() {
|
220
|
-
return (0, _react2.jsx)(_["default"], {
|
221
|
-
helperText: "Here is some helpful text...",
|
222
|
-
label: "Example Label",
|
223
|
-
status: "warning"
|
224
|
-
});
|
225
|
-
};
|
226
|
-
|
227
|
-
exports.Warning = Warning;
|
228
|
-
|
229
208
|
var WithoutStatusIndicator = function WithoutStatusIndicator() {
|
230
209
|
return (0, _react2.jsx)(_["default"], {
|
231
210
|
label: "Example Label",
|
@@ -153,4 +153,16 @@ test('form wrapper will have a max label column width when custom width set', fu
|
|
153
153
|
var textAreaContainer = _testWrapper.screen.getByTestId(testId);
|
154
154
|
|
155
155
|
expect(textAreaContainer).toHaveStyle('grid-template-columns: 120px auto');
|
156
|
+
});
|
157
|
+
test('providing slot props causes slot to render', function () {
|
158
|
+
var slot = (0, _react3.jsx)("p", {
|
159
|
+
"data-testid": "testSlot"
|
160
|
+
}, "testText");
|
161
|
+
var slots = {
|
162
|
+
inContainer: slot
|
163
|
+
};
|
164
|
+
getComponent({
|
165
|
+
slots: slots
|
166
|
+
});
|
167
|
+
expect(_testWrapper.screen.getByTestId('testSlot')).toBeInTheDocument();
|
156
168
|
});
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
4
|
+
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
|
9
|
+
exports.useAccordionGridContext = exports.AccordionGridContext = void 0;
|
10
|
+
|
11
|
+
var _react = require("react");
|
12
|
+
|
13
|
+
var AccordionGridContext = /*#__PURE__*/(0, _react.createContext)({});
|
14
|
+
exports.AccordionGridContext = AccordionGridContext;
|
15
|
+
|
16
|
+
var useAccordionGridContext = function useAccordionGridContext() {
|
17
|
+
return (0, _react.useContext)(AccordionGridContext);
|
18
|
+
};
|
19
|
+
|
20
|
+
exports.useAccordionGridContext = useAccordionGridContext;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
4
|
+
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
|
9
|
+
exports.useNavBarContext = exports.NavBarContext = void 0;
|
10
|
+
|
11
|
+
var _react = require("react");
|
12
|
+
|
13
|
+
var NavBarContext = /*#__PURE__*/(0, _react.createContext)({});
|
14
|
+
exports.NavBarContext = NavBarContext;
|
15
|
+
|
16
|
+
var useNavBarContext = function useNavBarContext() {
|
17
|
+
return (0, _react.useContext)(NavBarContext);
|
18
|
+
};
|
19
|
+
|
20
|
+
exports.useNavBarContext = useNavBarContext;
|
package/lib/cjs/hooks/index.js
CHANGED
@@ -64,6 +64,13 @@ _Object$defineProperty(exports, "usePropWarning", {
|
|
64
64
|
}
|
65
65
|
});
|
66
66
|
|
67
|
+
_Object$defineProperty(exports, "useNavBarPress", {
|
68
|
+
enumerable: true,
|
69
|
+
get: function get() {
|
70
|
+
return _useNavBarPress["default"];
|
71
|
+
}
|
72
|
+
});
|
73
|
+
|
67
74
|
_Object$defineProperty(exports, "useRockerButton", {
|
68
75
|
enumerable: true,
|
69
76
|
get: function get() {
|
@@ -108,6 +115,8 @@ var _useOverlayPanelState = _interopRequireDefault(require("./useOverlayPanelSta
|
|
108
115
|
|
109
116
|
var _usePropWarning = _interopRequireDefault(require("./usePropWarning"));
|
110
117
|
|
118
|
+
var _useNavBarPress = _interopRequireDefault(require("./useNavBarPress"));
|
119
|
+
|
111
120
|
var _useRockerButton = _interopRequireDefault(require("./useRockerButton"));
|
112
121
|
|
113
122
|
var _useSelectField = _interopRequireDefault(require("./useSelectField"));
|
@@ -17,8 +17,9 @@ var _react = require("react");
|
|
17
17
|
* e.g. "\`Component\` requires an aria-label."
|
18
18
|
*/
|
19
19
|
var useAriaLabelWarning = function useAriaLabelWarning(component, ariaLabel) {
|
20
|
+
var condition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
20
21
|
(0, _react.useEffect)(function () {
|
21
|
-
if (process.env.NODE_ENV === 'development' && !ariaLabel) {
|
22
|
+
if (process.env.NODE_ENV === 'development' && condition && !ariaLabel) {
|
22
23
|
// eslint-disable-next-line no-console
|
23
24
|
console.warn("".concat(component, " requires an aria-label"), '\n', '\n', 'NOTE: This is a development-only warning and will not display in production.');
|
24
25
|
}
|
@@ -145,6 +145,11 @@ var useField = function useField() {
|
|
145
145
|
setHasValue(true);
|
146
146
|
} else {
|
147
147
|
setHasValue(false);
|
148
|
+
} // adding this function resolves the error brought up in UIP-5116
|
149
|
+
|
150
|
+
|
151
|
+
if (e.persist) {
|
152
|
+
e.persist();
|
148
153
|
} // Make sure to call the original onChange event
|
149
154
|
|
150
155
|
|
@@ -8,10 +8,11 @@ _Object$defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
9
9
|
});
|
10
10
|
|
11
|
-
exports
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
_Object$defineProperty(exports, "default", {
|
12
|
+
enumerable: true,
|
13
|
+
get: function get() {
|
14
|
+
return _useNavBarPress["default"];
|
15
|
+
}
|
16
|
+
});
|
16
17
|
|
17
|
-
|
18
|
+
var _useNavBarPress = _interopRequireDefault(require("./useNavBarPress"));
|
@@ -0,0 +1,38 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
4
|
+
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
|
9
|
+
exports["default"] = void 0;
|
10
|
+
|
11
|
+
/**
|
12
|
+
* A custom hook that will call an onPressCallback function, if the function is provided.
|
13
|
+
* @param {Object} params The accepted parameters object
|
14
|
+
* @param {string} props.key The unique identifier that is assigned to the element being pressed
|
15
|
+
* @param {Object} state The state object tracking selected keys
|
16
|
+
* @param {function} state.setSelectedKeys The function that sets the selected keys
|
17
|
+
* @callback props.onPressCallback The callback that will be called only if provided
|
18
|
+
*/
|
19
|
+
var useNavBarPress = function useNavBarPress(_ref, state) {
|
20
|
+
var key = _ref.key,
|
21
|
+
onPressCallback = _ref.onPressCallback;
|
22
|
+
var setSelectedKeys = state.setSelectedKeys;
|
23
|
+
|
24
|
+
var onNavPress = function onNavPress() {
|
25
|
+
setSelectedKeys(key);
|
26
|
+
|
27
|
+
if (onPressCallback) {
|
28
|
+
onPressCallback();
|
29
|
+
}
|
30
|
+
};
|
31
|
+
|
32
|
+
return {
|
33
|
+
onNavPress: onNavPress
|
34
|
+
};
|
35
|
+
};
|
36
|
+
|
37
|
+
var _default = useNavBarPress;
|
38
|
+
exports["default"] = _default;
|
@@ -0,0 +1,42 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
var _reactHooks = require("@testing-library/react-hooks");
|
6
|
+
|
7
|
+
var _ = _interopRequireDefault(require("./"));
|
8
|
+
|
9
|
+
var key = 'testKey';
|
10
|
+
test('using the onPress prop works as a callback', function () {
|
11
|
+
var onPress = jest.fn();
|
12
|
+
var setSelectedKeys = jest.fn();
|
13
|
+
|
14
|
+
var _renderHook = (0, _reactHooks.renderHook)(function () {
|
15
|
+
return (0, _["default"])({
|
16
|
+
key: key,
|
17
|
+
onPressCallback: onPress
|
18
|
+
}, {
|
19
|
+
setSelectedKeys: setSelectedKeys
|
20
|
+
});
|
21
|
+
}),
|
22
|
+
result = _renderHook.result;
|
23
|
+
|
24
|
+
result.current.onNavPress();
|
25
|
+
expect(onPress).toHaveBeenCalled();
|
26
|
+
});
|
27
|
+
test('if no onPress prop there is no callback', function () {
|
28
|
+
var onPress = jest.fn();
|
29
|
+
var setSelectedKeys = jest.fn();
|
30
|
+
|
31
|
+
var _renderHook2 = (0, _reactHooks.renderHook)(function () {
|
32
|
+
return (0, _["default"])({
|
33
|
+
key: key
|
34
|
+
}, {
|
35
|
+
setSelectedKeys: setSelectedKeys
|
36
|
+
});
|
37
|
+
}),
|
38
|
+
result = _renderHook2.result;
|
39
|
+
|
40
|
+
result.current.onNavPress();
|
41
|
+
expect(onPress).not.toHaveBeenCalled();
|
42
|
+
});
|