@carbon/react 1.17.0-rc.1 → 1.17.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/es/components/DatePicker/DatePicker.js +68 -6
- package/es/components/DatePickerInput/DatePickerInput.js +25 -9
- package/es/components/FluidDatePicker/FluidDatePicker.Skeleton.js +67 -0
- package/es/components/FluidDatePicker/FluidDatePicker.js +76 -0
- package/es/components/FluidDatePickerInput/FluidDatePickerInput.js +26 -0
- package/es/components/ListBox/ListBoxSelection.js +11 -4
- package/es/components/MultiSelect/MultiSelect.js +28 -5
- package/es/components/OverflowMenu/index.js +1 -2
- package/es/components/SkeletonPlaceholder/SkeletonPlaceholder.js +2 -1
- package/es/components/SkeletonText/SkeletonText.js +1 -1
- package/es/components/StructuredList/StructuredList.js +89 -54
- package/es/components/TextArea/TextArea.js +4 -2
- package/es/index.js +4 -1
- package/es/internal/FloatingMenu.js +3 -1
- package/lib/components/DatePicker/DatePicker.js +66 -4
- package/lib/components/DatePickerInput/DatePickerInput.js +24 -8
- package/lib/components/FluidDatePicker/FluidDatePicker.Skeleton.js +77 -0
- package/lib/components/FluidDatePicker/FluidDatePicker.js +86 -0
- package/lib/components/FluidDatePickerInput/FluidDatePickerInput.js +34 -0
- package/lib/components/ListBox/ListBoxSelection.js +11 -4
- package/lib/components/MultiSelect/MultiSelect.js +28 -5
- package/lib/components/OverflowMenu/index.js +1 -22
- package/lib/components/SkeletonPlaceholder/SkeletonPlaceholder.js +2 -1
- package/lib/components/SkeletonText/SkeletonText.js +1 -1
- package/lib/components/StructuredList/StructuredList.js +87 -52
- package/lib/components/TextArea/TextArea.js +4 -2
- package/lib/index.js +43 -37
- package/lib/internal/FloatingMenu.js +3 -1
- package/package.json +5 -5
- package/scss/components/fluid-date-picker/_fluid-date-picker.scss +9 -0
- package/scss/components/fluid-date-picker/_index.scss +9 -0
- package/es/components/StructuredList/index.js +0 -43
- package/es/components/StructuredList/next/StructuredList.js +0 -342
- package/es/internal/ComponentToggle.js +0 -42
- package/lib/components/StructuredList/index.js +0 -52
- package/lib/components/StructuredList/next/StructuredList.js +0 -357
- package/lib/internal/ComponentToggle.js +0 -50
|
@@ -5,21 +5,22 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { objectWithoutProperties as _objectWithoutProperties, defineProperty as _defineProperty, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
9
|
-
import React__default from 'react';
|
|
8
|
+
import { objectWithoutProperties as _objectWithoutProperties, defineProperty as _defineProperty, slicedToArray as _slicedToArray, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
9
|
+
import React__default, { useState } from 'react';
|
|
10
10
|
import PropTypes from 'prop-types';
|
|
11
11
|
import cx from 'classnames';
|
|
12
|
-
import
|
|
12
|
+
import { useId } from '../../internal/useId.js';
|
|
13
13
|
import deprecate from '../../prop-types/deprecate.js';
|
|
14
14
|
import { usePrefix } from '../../internal/usePrefix.js';
|
|
15
15
|
|
|
16
|
-
var _excluded = ["children", "selection", "className", "ariaLabel", "isCondensed", "isFlush"
|
|
16
|
+
var _excluded = ["children", "selection", "className", "ariaLabel", "isCondensed", "isFlush"],
|
|
17
17
|
_excluded2 = ["children", "className"],
|
|
18
18
|
_excluded3 = ["children", "className"],
|
|
19
|
-
_excluded4 = ["onKeyDown", "
|
|
20
|
-
_excluded5 = ["className", "
|
|
19
|
+
_excluded4 = ["onKeyDown", "children", "className", "head"],
|
|
20
|
+
_excluded5 = ["className", "name", "title", "id"],
|
|
21
21
|
_excluded6 = ["children", "className", "head", "noWrap"];
|
|
22
|
-
var
|
|
22
|
+
var GridSelectedRowStateContext = /*#__PURE__*/React__default.createContext(null);
|
|
23
|
+
var GridSelectedRowDispatchContext = /*#__PURE__*/React__default.createContext(null);
|
|
23
24
|
function StructuredListWrapper(props) {
|
|
24
25
|
var _classNames;
|
|
25
26
|
|
|
@@ -28,18 +29,27 @@ function StructuredListWrapper(props) {
|
|
|
28
29
|
className = props.className,
|
|
29
30
|
ariaLabel = props.ariaLabel,
|
|
30
31
|
isCondensed = props.isCondensed,
|
|
31
|
-
isFlush = props.isFlush
|
|
32
|
-
props
|
|
33
|
-
var other = _objectWithoutProperties(props, _excluded);
|
|
32
|
+
isFlush = props.isFlush,
|
|
33
|
+
other = _objectWithoutProperties(props, _excluded);
|
|
34
34
|
|
|
35
35
|
var prefix = usePrefix();
|
|
36
36
|
var classes = cx("".concat(prefix, "--structured-list"), className, (_classNames = {}, _defineProperty(_classNames, "".concat(prefix, "--structured-list--selection"), selection), _defineProperty(_classNames, "".concat(prefix, "--structured-list--condensed"), isCondensed), _defineProperty(_classNames, "".concat(prefix, "--structured-list--flush"), isFlush), _classNames));
|
|
37
|
-
|
|
37
|
+
|
|
38
|
+
var _React$useState = React__default.useState(null),
|
|
39
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
40
|
+
selectedRow = _React$useState2[0],
|
|
41
|
+
setSelectedRow = _React$useState2[1];
|
|
42
|
+
|
|
43
|
+
return /*#__PURE__*/React__default.createElement(GridSelectedRowStateContext.Provider, {
|
|
44
|
+
value: selectedRow
|
|
45
|
+
}, /*#__PURE__*/React__default.createElement(GridSelectedRowDispatchContext.Provider, {
|
|
46
|
+
value: setSelectedRow
|
|
47
|
+
}, /*#__PURE__*/React__default.createElement("div", _extends({
|
|
38
48
|
role: "table",
|
|
39
49
|
className: classes
|
|
40
50
|
}, other, {
|
|
41
51
|
"aria-label": ariaLabel
|
|
42
|
-
}), children);
|
|
52
|
+
}), children)));
|
|
43
53
|
}
|
|
44
54
|
StructuredListWrapper.propTypes = {
|
|
45
55
|
/**
|
|
@@ -47,11 +57,6 @@ StructuredListWrapper.propTypes = {
|
|
|
47
57
|
*/
|
|
48
58
|
ariaLabel: PropTypes.string,
|
|
49
59
|
|
|
50
|
-
/**
|
|
51
|
-
* Specify whether a border should be added to your StructuredListWrapper
|
|
52
|
-
*/
|
|
53
|
-
border: deprecate(PropTypes.bool, "\nThe prop `border` will be removed in the next major version of Carbon."),
|
|
54
|
-
|
|
55
60
|
/**
|
|
56
61
|
* Provide the contents of your StructuredListWrapper
|
|
57
62
|
*/
|
|
@@ -79,9 +84,9 @@ StructuredListWrapper.propTypes = {
|
|
|
79
84
|
};
|
|
80
85
|
StructuredListWrapper.defaultProps = {
|
|
81
86
|
selection: false,
|
|
82
|
-
ariaLabel: 'Structured list section',
|
|
83
87
|
isCondensed: false,
|
|
84
|
-
isFlush: false
|
|
88
|
+
isFlush: false,
|
|
89
|
+
ariaLabel: 'Structured list section'
|
|
85
90
|
};
|
|
86
91
|
function StructuredListHead(props) {
|
|
87
92
|
var children = props.children,
|
|
@@ -138,29 +143,51 @@ StructuredListBody.propTypes = {
|
|
|
138
143
|
StructuredListBody.defaultProps = {
|
|
139
144
|
onKeyDown: function onKeyDown() {}
|
|
140
145
|
};
|
|
146
|
+
var GridRowContext = /*#__PURE__*/React__default.createContext(null);
|
|
141
147
|
function StructuredListRow(props) {
|
|
148
|
+
var _classNames2;
|
|
149
|
+
|
|
142
150
|
var onKeyDown = props.onKeyDown,
|
|
143
|
-
tabIndex = props.tabIndex,
|
|
144
151
|
children = props.children,
|
|
145
152
|
className = props.className,
|
|
146
153
|
head = props.head,
|
|
147
|
-
label = props.label,
|
|
148
154
|
other = _objectWithoutProperties(props, _excluded4);
|
|
149
155
|
|
|
156
|
+
var _useState = useState(false),
|
|
157
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
158
|
+
hasFocusWithin = _useState2[0],
|
|
159
|
+
setHasFocusWithin = _useState2[1];
|
|
160
|
+
|
|
161
|
+
var id = useId('grid-input');
|
|
162
|
+
var setSelectedRow = React__default.useContext(GridSelectedRowDispatchContext);
|
|
150
163
|
var prefix = usePrefix();
|
|
151
|
-
var
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
React__default.createElement("
|
|
156
|
-
tabIndex: tabIndex,
|
|
157
|
-
className: classes,
|
|
158
|
-
onKeyDown: onKeyDown
|
|
159
|
-
}), children) : /*#__PURE__*/React__default.createElement("div", _extends({
|
|
164
|
+
var value = {
|
|
165
|
+
id: id
|
|
166
|
+
};
|
|
167
|
+
var classes = cx("".concat(prefix, "--structured-list-row"), className, (_classNames2 = {}, _defineProperty(_classNames2, "".concat(prefix, "--structured-list-row--header-row"), head), _defineProperty(_classNames2, "".concat(prefix, "--structured-list-row--focused-within"), hasFocusWithin), _classNames2));
|
|
168
|
+
return head ? /*#__PURE__*/React__default.createElement("div", _extends({
|
|
160
169
|
role: "row"
|
|
161
170
|
}, other, {
|
|
162
171
|
className: classes
|
|
163
|
-
}), children)
|
|
172
|
+
}), children) :
|
|
173
|
+
/*#__PURE__*/
|
|
174
|
+
// eslint-disable-next-line jsx-a11y/interactive-supports-focus
|
|
175
|
+
React__default.createElement("div", _extends({}, other, {
|
|
176
|
+
role: "row",
|
|
177
|
+
className: classes,
|
|
178
|
+
onClick: function onClick() {
|
|
179
|
+
return setSelectedRow(id);
|
|
180
|
+
},
|
|
181
|
+
onFocus: function onFocus() {
|
|
182
|
+
setHasFocusWithin(true);
|
|
183
|
+
},
|
|
184
|
+
onBlur: function onBlur() {
|
|
185
|
+
setHasFocusWithin(false);
|
|
186
|
+
},
|
|
187
|
+
onKeyDown: onKeyDown
|
|
188
|
+
}), /*#__PURE__*/React__default.createElement(GridRowContext.Provider, {
|
|
189
|
+
value: value
|
|
190
|
+
}, children));
|
|
164
191
|
}
|
|
165
192
|
StructuredListRow.propTypes = {
|
|
166
193
|
/**
|
|
@@ -181,42 +208,44 @@ StructuredListRow.propTypes = {
|
|
|
181
208
|
/**
|
|
182
209
|
* Specify whether a `<label>` should be used
|
|
183
210
|
*/
|
|
184
|
-
label: PropTypes.bool,
|
|
211
|
+
label: deprecate(PropTypes.bool, "\nThe `label` prop is no longer needed and will be removed in the next major version of Carbon."),
|
|
185
212
|
|
|
186
213
|
/**
|
|
187
214
|
* Provide a handler that is invoked on the key down event for the control,
|
|
188
|
-
* if `<label>` is in use
|
|
189
|
-
*/
|
|
190
|
-
onKeyDown: PropTypes.func,
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* Specify the tab index of the container node, if `<label>` is in use
|
|
194
215
|
*/
|
|
195
|
-
|
|
216
|
+
onKeyDown: PropTypes.func
|
|
196
217
|
};
|
|
197
218
|
StructuredListRow.defaultProps = {
|
|
198
219
|
head: false,
|
|
199
|
-
label: false,
|
|
200
|
-
tabIndex: 0,
|
|
201
220
|
onKeyDown: function onKeyDown() {}
|
|
202
221
|
};
|
|
203
222
|
function StructuredListInput(props) {
|
|
223
|
+
var _row$id;
|
|
224
|
+
|
|
225
|
+
var defaultId = useId('structureListInput');
|
|
226
|
+
|
|
204
227
|
var className = props.className,
|
|
205
|
-
|
|
206
|
-
name =
|
|
228
|
+
_props$name = props.name,
|
|
229
|
+
name = _props$name === void 0 ? "structured-list-input-".concat(defaultId) : _props$name,
|
|
207
230
|
title = props.title,
|
|
208
231
|
id = props.id,
|
|
209
232
|
other = _objectWithoutProperties(props, _excluded5);
|
|
210
233
|
|
|
211
234
|
var prefix = usePrefix();
|
|
212
|
-
var classes = cx("".concat(prefix, "--structured-list-input"), className);
|
|
213
|
-
var
|
|
235
|
+
var classes = cx("".concat(prefix, "--structured-list-input"), "".concat(prefix, "--visually-hidden"), className);
|
|
236
|
+
var row = React__default.useContext(GridRowContext);
|
|
237
|
+
var selectedRow = React__default.useContext(GridSelectedRowStateContext);
|
|
238
|
+
var setSelectedRow = React__default.useContext(GridSelectedRowDispatchContext);
|
|
214
239
|
return /*#__PURE__*/React__default.createElement("input", _extends({}, other, {
|
|
215
240
|
type: "radio",
|
|
216
|
-
tabIndex:
|
|
217
|
-
|
|
241
|
+
tabIndex: 0,
|
|
242
|
+
checked: row && row.id === selectedRow,
|
|
243
|
+
value: (_row$id = row === null || row === void 0 ? void 0 : row.id) !== null && _row$id !== void 0 ? _row$id : '',
|
|
244
|
+
onChange: function onChange(event) {
|
|
245
|
+
setSelectedRow(event.target.value);
|
|
246
|
+
},
|
|
247
|
+
id: id !== null && id !== void 0 ? id : defaultId,
|
|
218
248
|
className: classes,
|
|
219
|
-
value: value,
|
|
220
249
|
name: name,
|
|
221
250
|
title: title
|
|
222
251
|
}));
|
|
@@ -230,7 +259,7 @@ StructuredListInput.propTypes = {
|
|
|
230
259
|
/**
|
|
231
260
|
* Specify whether the underlying input should be checked by default
|
|
232
261
|
*/
|
|
233
|
-
defaultChecked: PropTypes.bool,
|
|
262
|
+
defaultChecked: deprecate(PropTypes.bool, "\nThe prop `defaultChecked` is no longer needed and will be removed in the next major version of Carbon."),
|
|
234
263
|
|
|
235
264
|
/**
|
|
236
265
|
* Specify a custom `id` for the input
|
|
@@ -245,7 +274,7 @@ StructuredListInput.propTypes = {
|
|
|
245
274
|
/**
|
|
246
275
|
* Provide an optional hook that is called each time the input is updated
|
|
247
276
|
*/
|
|
248
|
-
onChange: PropTypes.func,
|
|
277
|
+
onChange: deprecate(PropTypes.func, "\nThe prop `onChange` will be removed in the next major version of Carbon."),
|
|
249
278
|
|
|
250
279
|
/**
|
|
251
280
|
* Provide a `title` for the input
|
|
@@ -255,11 +284,9 @@ StructuredListInput.propTypes = {
|
|
|
255
284
|
/**
|
|
256
285
|
* Specify the value of the input
|
|
257
286
|
*/
|
|
258
|
-
value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired
|
|
287
|
+
value: deprecate(PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, "\nThe prop `value` will be removed in the next major version of Carbon.")
|
|
259
288
|
};
|
|
260
289
|
StructuredListInput.defaultProps = {
|
|
261
|
-
onChange: function onChange() {},
|
|
262
|
-
value: 'value',
|
|
263
290
|
title: 'title'
|
|
264
291
|
};
|
|
265
292
|
function StructuredListCell(props) {
|
|
@@ -273,9 +300,17 @@ function StructuredListCell(props) {
|
|
|
273
300
|
|
|
274
301
|
var prefix = usePrefix();
|
|
275
302
|
var classes = cx(className, (_classNames3 = {}, _defineProperty(_classNames3, "".concat(prefix, "--structured-list-th"), head), _defineProperty(_classNames3, "".concat(prefix, "--structured-list-td"), !head), _defineProperty(_classNames3, "".concat(prefix, "--structured-list-content--nowrap"), noWrap), _classNames3));
|
|
303
|
+
|
|
304
|
+
if (head) {
|
|
305
|
+
return /*#__PURE__*/React__default.createElement("span", _extends({
|
|
306
|
+
className: classes,
|
|
307
|
+
role: "columnheader"
|
|
308
|
+
}, other), children);
|
|
309
|
+
}
|
|
310
|
+
|
|
276
311
|
return /*#__PURE__*/React__default.createElement("div", _extends({
|
|
277
312
|
className: classes,
|
|
278
|
-
role:
|
|
313
|
+
role: "cell"
|
|
279
314
|
}, other), children);
|
|
280
315
|
}
|
|
281
316
|
StructuredListCell.propTypes = {
|
|
@@ -113,7 +113,10 @@ var TextArea = /*#__PURE__*/React__default.forwardRef(function TextArea(_ref, re
|
|
|
113
113
|
className: textareaClasses,
|
|
114
114
|
"aria-invalid": invalid || null,
|
|
115
115
|
"aria-describedby": invalid ? errorId : null,
|
|
116
|
-
disabled: other.disabled
|
|
116
|
+
disabled: other.disabled,
|
|
117
|
+
style: other.cols ? {} : {
|
|
118
|
+
width: "100%"
|
|
119
|
+
}
|
|
117
120
|
}));
|
|
118
121
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
119
122
|
className: enabled ? cx("".concat(prefix, "--form-item"), className) : "".concat(prefix, "--form-item")
|
|
@@ -234,7 +237,6 @@ TextArea.defaultProps = {
|
|
|
234
237
|
onClick: function onClick() {},
|
|
235
238
|
placeholder: '',
|
|
236
239
|
rows: 4,
|
|
237
|
-
cols: 50,
|
|
238
240
|
invalid: false,
|
|
239
241
|
invalidText: '',
|
|
240
242
|
helperText: '',
|
package/es/index.js
CHANGED
|
@@ -66,7 +66,6 @@ export { default as SelectItem } from './components/SelectItem/SelectItem.js';
|
|
|
66
66
|
export { default as SelectItemGroup } from './components/SelectItemGroup/SelectItemGroup.js';
|
|
67
67
|
export { default as Switch } from './components/Switch/Switch.js';
|
|
68
68
|
export { default as Slider } from './components/Slider/index.js';
|
|
69
|
-
export { StructuredListBody, StructuredListCell, StructuredListHead, StructuredListInput, StructuredListRow, StructuredListWrapper } from './components/StructuredList/index.js';
|
|
70
69
|
export { default as Tab } from './components/Tab/index.js';
|
|
71
70
|
export { default as TabContent } from './components/TabContent/TabContent.js';
|
|
72
71
|
export { IconTab, TabList, TabPanel, TabPanels, Tabs } from './components/Tabs/Tabs.js';
|
|
@@ -123,6 +122,7 @@ export { default as SideNavIcon } from './components/UIShell/SideNavIcon.js';
|
|
|
123
122
|
export { default as SideNavItem } from './components/UIShell/SideNavItem.js';
|
|
124
123
|
export { default as SideNavLinkText } from './components/UIShell/SideNavLinkText.js';
|
|
125
124
|
export { default as unstable_useContextMenu } from './components/ContextMenu/useContextMenu.js';
|
|
125
|
+
export { default as unstable__FluidDatePickerSkeleton } from './components/FluidDatePicker/FluidDatePicker.Skeleton.js';
|
|
126
126
|
export { default as unstable__FluidTextArea } from './components/FluidTextArea/FluidTextArea.js';
|
|
127
127
|
export { default as unstable__FluidTextAreaSkeleton } from './components/FluidTextArea/FluidTextArea.Skeleton.js';
|
|
128
128
|
export { default as unstable__FluidTextInput } from './components/FluidTextInput/FluidTextInput.js';
|
|
@@ -176,6 +176,7 @@ export { NumberInput } from './components/NumberInput/NumberInput.js';
|
|
|
176
176
|
export { default as ControlledPasswordInput } from './components/TextInput/ControlledPasswordInput.js';
|
|
177
177
|
export { default as PasswordInput } from './components/TextInput/PasswordInput.js';
|
|
178
178
|
export { ProgressIndicator, ProgressStep } from './components/ProgressIndicator/ProgressIndicator.js';
|
|
179
|
+
export { StructuredListBody, StructuredListCell, StructuredListHead, StructuredListInput, StructuredListRow, StructuredListWrapper } from './components/StructuredList/StructuredList.js';
|
|
179
180
|
export { default as StructuredListSkeleton } from './components/StructuredList/StructuredList.Skeleton.js';
|
|
180
181
|
export { ClickableTile, ExpandableTile, SelectableTile, Tile, TileAboveTheFoldContent, TileBelowTheFoldContent } from './components/Tile/Tile.js';
|
|
181
182
|
export { default as Content } from './components/UIShell/Content.js';
|
|
@@ -201,6 +202,8 @@ export { default as SideNavMenuItem } from './components/UIShell/SideNavMenuItem
|
|
|
201
202
|
export { default as SideNavSwitcher } from './components/UIShell/SideNavSwitcher.js';
|
|
202
203
|
export { default as unstable__FluidComboBox } from './components/FluidComboBox/FluidComboBox.js';
|
|
203
204
|
export { default as unstable__FluidComboBoxSkeleton } from './components/FluidComboBox/FluidComboBox.Skeleton.js';
|
|
205
|
+
export { default as unstable__FluidDatePicker } from './components/FluidDatePicker/FluidDatePicker.js';
|
|
206
|
+
export { default as unstable__FluidDatePickerInput } from './components/FluidDatePickerInput/FluidDatePickerInput.js';
|
|
204
207
|
export { default as unstable__FluidDropdown } from './components/FluidDropdown/FluidDropdown.js';
|
|
205
208
|
export { default as unstable__FluidDropdownSkeleton } from './components/FluidDropdown/FluidDropdown.Skeleton.js';
|
|
206
209
|
export { default as unstable__FluidMultiSelect } from './components/FluidMultiSelect/FluidMultiSelect.js';
|
|
@@ -480,4 +480,6 @@ _defineProperty(FloatingMenu, "defaultProps", {
|
|
|
480
480
|
updateOrientation: null
|
|
481
481
|
});
|
|
482
482
|
|
|
483
|
-
|
|
483
|
+
var FloatingMenu$1 = FloatingMenu;
|
|
484
|
+
|
|
485
|
+
export { DIRECTION_BOTTOM, DIRECTION_LEFT, DIRECTION_RIGHT, DIRECTION_TOP, FloatingMenu$1 as default };
|
|
@@ -22,6 +22,8 @@ var rangePlugin = require('./plugins/rangePlugin.js');
|
|
|
22
22
|
var deprecate = require('../../prop-types/deprecate.js');
|
|
23
23
|
var usePrefix = require('../../internal/usePrefix.js');
|
|
24
24
|
var useSavedCallback = require('../../internal/useSavedCallback.js');
|
|
25
|
+
var iconsReact = require('@carbon/icons-react');
|
|
26
|
+
var FormContext = require('../FluidForm/FormContext.js');
|
|
25
27
|
var match = require('../../internal/keyboard/match.js');
|
|
26
28
|
var keys = require('../../internal/keyboard/keys.js');
|
|
27
29
|
|
|
@@ -32,7 +34,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
|
32
34
|
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
|
|
33
35
|
var flatpickr__default = /*#__PURE__*/_interopDefaultLegacy(flatpickr);
|
|
34
36
|
|
|
35
|
-
var _excluded = ["allowInput", "appendTo", "children", "className", "closeOnSelect", "dateFormat", "datePickerType", "disable", "enable", "inline", "light", "locale", "maxDate", "minDate", "onChange", "onClose", "onOpen", "short", "value"];
|
|
37
|
+
var _excluded = ["allowInput", "appendTo", "children", "className", "closeOnSelect", "dateFormat", "datePickerType", "disable", "enable", "inline", "invalid", "invalidText", "warn", "warnText", "light", "locale", "maxDate", "minDate", "onChange", "onClose", "onOpen", "short", "value"];
|
|
36
38
|
|
|
37
39
|
index["default"].en.weekdays.shorthand.forEach(function (_day, index$1) {
|
|
38
40
|
var currentDay = index["default"].en.weekdays.shorthand;
|
|
@@ -172,6 +174,10 @@ var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Date
|
|
|
172
174
|
disable = _ref.disable,
|
|
173
175
|
enable = _ref.enable,
|
|
174
176
|
inline = _ref.inline,
|
|
177
|
+
invalid = _ref.invalid,
|
|
178
|
+
invalidText = _ref.invalidText,
|
|
179
|
+
warn = _ref.warn,
|
|
180
|
+
warnText = _ref.warnText,
|
|
175
181
|
_ref$light = _ref.light,
|
|
176
182
|
light = _ref$light === void 0 ? false : _ref$light,
|
|
177
183
|
_ref$locale = _ref.locale,
|
|
@@ -187,6 +193,10 @@ var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Date
|
|
|
187
193
|
rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
|
|
188
194
|
|
|
189
195
|
var prefix = usePrefix.usePrefix();
|
|
196
|
+
|
|
197
|
+
var _useContext = React.useContext(FormContext.FormContext),
|
|
198
|
+
isFluid = _useContext.isFluid;
|
|
199
|
+
|
|
190
200
|
var startInputField = React.useRef(null);
|
|
191
201
|
var endInputField = React.useRef(null);
|
|
192
202
|
var calendarRef = React.useRef(null);
|
|
@@ -293,6 +303,10 @@ var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Date
|
|
|
293
303
|
calendarRef.current = calendar;
|
|
294
304
|
|
|
295
305
|
function handleArrowDown(event) {
|
|
306
|
+
if (match.match(event, keys.Escape)) {
|
|
307
|
+
calendar.calendarContainer.classList.remove('open');
|
|
308
|
+
}
|
|
309
|
+
|
|
296
310
|
if (match.match(event, keys.ArrowDown)) {
|
|
297
311
|
var calendarContainer = calendar.calendarContainer,
|
|
298
312
|
fpSelectedDateElem = calendar.selectedDateElem,
|
|
@@ -304,6 +318,10 @@ var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Date
|
|
|
304
318
|
}
|
|
305
319
|
|
|
306
320
|
function handleOnChange() {
|
|
321
|
+
if (datePickerType == 'single') {
|
|
322
|
+
calendar.calendarContainer.classList.remove('open');
|
|
323
|
+
}
|
|
324
|
+
|
|
307
325
|
if (start.value !== '') {
|
|
308
326
|
return;
|
|
309
327
|
}
|
|
@@ -375,7 +393,7 @@ var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Date
|
|
|
375
393
|
}, [maxDate]);
|
|
376
394
|
React.useEffect(function () {
|
|
377
395
|
if (calendarRef.current && disable) {
|
|
378
|
-
calendarRef.current.set('
|
|
396
|
+
calendarRef.current.set('disable', disable);
|
|
379
397
|
}
|
|
380
398
|
}, [disable]);
|
|
381
399
|
React.useEffect(function () {
|
|
@@ -399,12 +417,36 @@ var DatePicker = /*#__PURE__*/React__default["default"].forwardRef(function Date
|
|
|
399
417
|
startInputField.current.value = value;
|
|
400
418
|
}
|
|
401
419
|
}, [value, prefix]);
|
|
420
|
+
var fluidError;
|
|
421
|
+
|
|
422
|
+
if (isFluid) {
|
|
423
|
+
if (invalid) {
|
|
424
|
+
fluidError = /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(iconsReact.WarningFilled, {
|
|
425
|
+
className: "".concat(prefix, "--date-picker__icon ").concat(prefix, "--date-picker__icon--invalid")
|
|
426
|
+
}), /*#__PURE__*/React__default["default"].createElement("hr", {
|
|
427
|
+
className: "".concat(prefix, "--date-picker__divider")
|
|
428
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
429
|
+
className: "".concat(prefix, "--form-requirement")
|
|
430
|
+
}, invalidText));
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
if (warn && !invalid) {
|
|
434
|
+
fluidError = /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(iconsReact.WarningAltFilled, {
|
|
435
|
+
className: "".concat(prefix, "--date-picker__icon ").concat(prefix, "--date-picker__icon--warn")
|
|
436
|
+
}), /*#__PURE__*/React__default["default"].createElement("hr", {
|
|
437
|
+
className: "".concat(prefix, "--date-picker__divider")
|
|
438
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
439
|
+
className: "".concat(prefix, "--form-requirement")
|
|
440
|
+
}, warnText));
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
|
|
402
444
|
return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
|
|
403
445
|
className: wrapperClasses,
|
|
404
446
|
ref: ref
|
|
405
447
|
}, rest), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
406
448
|
className: datePickerClasses
|
|
407
|
-
}, childrenWithProps));
|
|
449
|
+
}, childrenWithProps), fluidError);
|
|
408
450
|
});
|
|
409
451
|
DatePicker.propTypes = {
|
|
410
452
|
/**
|
|
@@ -462,6 +504,16 @@ DatePicker.propTypes = {
|
|
|
462
504
|
*/
|
|
463
505
|
inline: PropTypes__default["default"].bool,
|
|
464
506
|
|
|
507
|
+
/**
|
|
508
|
+
* Specify whether or not the control is invalid (Fluid only)
|
|
509
|
+
*/
|
|
510
|
+
invalid: PropTypes__default["default"].bool,
|
|
511
|
+
|
|
512
|
+
/**
|
|
513
|
+
* Provide the text that is displayed when the control is in error state (Fluid Only)
|
|
514
|
+
*/
|
|
515
|
+
invalidText: PropTypes__default["default"].node,
|
|
516
|
+
|
|
465
517
|
/**
|
|
466
518
|
* `true` to use the light version.
|
|
467
519
|
*/
|
|
@@ -567,7 +619,17 @@ DatePicker.propTypes = {
|
|
|
567
619
|
* The value of the date value provided to flatpickr, could
|
|
568
620
|
* be a date, a date number, a date string, an array of dates.
|
|
569
621
|
*/
|
|
570
|
-
value: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].arrayOf(PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number, PropTypes__default["default"].object])), PropTypes__default["default"].object, PropTypes__default["default"].number])
|
|
622
|
+
value: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].arrayOf(PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number, PropTypes__default["default"].object])), PropTypes__default["default"].object, PropTypes__default["default"].number]),
|
|
623
|
+
|
|
624
|
+
/**
|
|
625
|
+
* Specify whether the control is currently in warning state (Fluid only)
|
|
626
|
+
*/
|
|
627
|
+
warn: PropTypes__default["default"].bool,
|
|
628
|
+
|
|
629
|
+
/**
|
|
630
|
+
* Provide the text that is displayed when the control is in warning state (Fluid only)
|
|
631
|
+
*/
|
|
632
|
+
warnText: PropTypes__default["default"].node
|
|
571
633
|
};
|
|
572
634
|
var DatePicker$1 = DatePicker;
|
|
573
635
|
|
|
@@ -15,6 +15,7 @@ var cx = require('classnames');
|
|
|
15
15
|
var PropTypes = require('prop-types');
|
|
16
16
|
var React = require('react');
|
|
17
17
|
var usePrefix = require('../../internal/usePrefix.js');
|
|
18
|
+
var FormContext = require('../FluidForm/FormContext.js');
|
|
18
19
|
|
|
19
20
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
20
21
|
|
|
@@ -24,7 +25,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
|
24
25
|
|
|
25
26
|
var _excluded = ["datePickerType", "disabled", "helperText", "hideLabel", "id", "invalid", "invalidText", "labelText", "onClick", "onChange", "pattern", "placeholder", "size", "type", "warn", "warnText"];
|
|
26
27
|
var DatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(function DatePickerInput(props, ref) {
|
|
27
|
-
var _cx, _cx2, _cx4;
|
|
28
|
+
var _cx, _cx2, _cx4, _cx5;
|
|
28
29
|
|
|
29
30
|
var datePickerType = props.datePickerType,
|
|
30
31
|
_props$disabled = props.disabled,
|
|
@@ -52,6 +53,10 @@ var DatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(function
|
|
|
52
53
|
rest = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
|
|
53
54
|
|
|
54
55
|
var prefix = usePrefix.usePrefix();
|
|
56
|
+
|
|
57
|
+
var _useContext = React.useContext(FormContext.FormContext),
|
|
58
|
+
isFluid = _useContext.isFluid;
|
|
59
|
+
|
|
55
60
|
var datePickerInputProps = {
|
|
56
61
|
id: id,
|
|
57
62
|
onChange: function onChange(event) {
|
|
@@ -71,8 +76,8 @@ var DatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(function
|
|
|
71
76
|
var wrapperClasses = cx__default["default"]("".concat(prefix, "--date-picker-input__wrapper"), (_cx = {}, _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--date-picker-input__wrapper--invalid"), invalid), _rollupPluginBabelHelpers.defineProperty(_cx, "".concat(prefix, "--date-picker-input__wrapper--warn"), warn), _cx));
|
|
72
77
|
var labelClasses = cx__default["default"]("".concat(prefix, "--label"), (_cx2 = {}, _rollupPluginBabelHelpers.defineProperty(_cx2, "".concat(prefix, "--visually-hidden"), hideLabel), _rollupPluginBabelHelpers.defineProperty(_cx2, "".concat(prefix, "--label--disabled"), disabled), _cx2));
|
|
73
78
|
var helperTextClasses = cx__default["default"]("".concat(prefix, "--form__helper-text"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--form__helper-text--disabled"), disabled));
|
|
74
|
-
var inputClasses = cx__default["default"]("".concat(prefix, "--date-picker__input"), (_cx4 = {}, _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--date-picker__input--").concat(size), size), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--date-picker__input--invalid"), invalid), _cx4));
|
|
75
|
-
var containerClasses = cx__default["default"]("".concat(prefix, "--date-picker-container"), _rollupPluginBabelHelpers.defineProperty(
|
|
79
|
+
var inputClasses = cx__default["default"]("".concat(prefix, "--date-picker__input"), (_cx4 = {}, _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--date-picker__input--").concat(size), size), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--date-picker__input--invalid"), invalid), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--date-picker__input--warn"), warn), _cx4));
|
|
80
|
+
var containerClasses = cx__default["default"]("".concat(prefix, "--date-picker-container"), (_cx5 = {}, _rollupPluginBabelHelpers.defineProperty(_cx5, "".concat(prefix, "--date-picker--nolabel"), !labelText), _rollupPluginBabelHelpers.defineProperty(_cx5, "".concat(prefix, "--date-picker--fluid--invalid"), isFluid && invalid), _rollupPluginBabelHelpers.defineProperty(_cx5, "".concat(prefix, "--date-picker--fluid--warn"), isFluid && warn), _cx5));
|
|
76
81
|
var input = invalid ? /*#__PURE__*/React__default["default"].createElement("input", _rollupPluginBabelHelpers["extends"]({}, rest, datePickerInputProps, {
|
|
77
82
|
disabled: disabled,
|
|
78
83
|
ref: ref,
|
|
@@ -90,15 +95,21 @@ var DatePickerInput = /*#__PURE__*/React__default["default"].forwardRef(function
|
|
|
90
95
|
className: labelClasses
|
|
91
96
|
}, labelText), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
92
97
|
className: wrapperClasses
|
|
93
|
-
}, input, /*#__PURE__*/React__default["default"].createElement(DatePickerIcon, {
|
|
98
|
+
}, input, isFluid && /*#__PURE__*/React__default["default"].createElement(DatePickerIcon, {
|
|
99
|
+
datePickerType: datePickerType
|
|
100
|
+
}), /*#__PURE__*/React__default["default"].createElement(DatePickerIcon, {
|
|
94
101
|
datePickerType: datePickerType,
|
|
95
102
|
invalid: invalid,
|
|
96
103
|
warn: warn
|
|
97
|
-
})), invalid && /*#__PURE__*/React__default["default"].createElement("
|
|
104
|
+
})), invalid && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isFluid && /*#__PURE__*/React__default["default"].createElement("hr", {
|
|
105
|
+
className: "".concat(prefix, "--date-picker__divider")
|
|
106
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
98
107
|
className: "".concat(prefix, "--form-requirement")
|
|
99
|
-
}, invalidText), warn && /*#__PURE__*/React__default["default"].createElement("
|
|
108
|
+
}, invalidText)), warn && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isFluid && /*#__PURE__*/React__default["default"].createElement("hr", {
|
|
109
|
+
className: "".concat(prefix, "--date-picker__divider")
|
|
110
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
100
111
|
className: "".concat(prefix, "--form-requirement")
|
|
101
|
-
}, warnText), helperText && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
112
|
+
}, warnText)), helperText && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
102
113
|
className: helperTextClasses
|
|
103
114
|
}, helperText));
|
|
104
115
|
});
|
|
@@ -206,8 +217,13 @@ function DatePickerIcon(_ref) {
|
|
|
206
217
|
warn = _ref.warn;
|
|
207
218
|
var prefix = usePrefix.usePrefix();
|
|
208
219
|
|
|
220
|
+
var _useContext2 = React.useContext(FormContext.FormContext),
|
|
221
|
+
isFluid = _useContext2.isFluid;
|
|
222
|
+
|
|
209
223
|
if (datePickerType === 'simple' && !invalid && !warn) {
|
|
210
|
-
|
|
224
|
+
if (!isFluid) {
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
211
227
|
}
|
|
212
228
|
|
|
213
229
|
if (invalid) {
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright IBM Corp. 2016, 2022
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
11
|
+
|
|
12
|
+
var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
|
|
13
|
+
var PropTypes = require('prop-types');
|
|
14
|
+
var React = require('react');
|
|
15
|
+
var cx = require('classnames');
|
|
16
|
+
var usePrefix = require('../../internal/usePrefix.js');
|
|
17
|
+
var FormContext = require('../FluidForm/FormContext.js');
|
|
18
|
+
var iconsReact = require('@carbon/icons-react');
|
|
19
|
+
|
|
20
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
21
|
+
|
|
22
|
+
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
23
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
24
|
+
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
|
|
25
|
+
|
|
26
|
+
var _excluded = ["className", "datePickerType"];
|
|
27
|
+
|
|
28
|
+
function FluidDatePickerSkeleton(_ref) {
|
|
29
|
+
var className = _ref.className,
|
|
30
|
+
_ref$datePickerType = _ref.datePickerType,
|
|
31
|
+
datePickerType = _ref$datePickerType === void 0 ? 'single' : _ref$datePickerType,
|
|
32
|
+
other = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
|
|
33
|
+
|
|
34
|
+
var prefix = usePrefix.usePrefix();
|
|
35
|
+
var classNames = cx__default["default"](className, "".concat(prefix, "--form-item ").concat(prefix, "--date-picker--fluid__skeleton"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--date-picker--fluid__skeleton--range"), datePickerType === 'range'));
|
|
36
|
+
return /*#__PURE__*/React__default["default"].createElement(FormContext.FormContext.Provider, {
|
|
37
|
+
value: {
|
|
38
|
+
isFluid: true
|
|
39
|
+
}
|
|
40
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
|
|
41
|
+
className: classNames
|
|
42
|
+
}, other), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
43
|
+
className: "".concat(prefix, "--date-picker--fluid__skeleton--container")
|
|
44
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
45
|
+
className: "".concat(prefix, "--label ").concat(prefix, "--skeleton")
|
|
46
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
47
|
+
className: "".concat(prefix, "--skeleton ").concat(prefix, "--text-input")
|
|
48
|
+
}), datePickerType !== 'simple' && /*#__PURE__*/React__default["default"].createElement(iconsReact.Calendar, {
|
|
49
|
+
className: "".concat(prefix, "--date-picker__icon"),
|
|
50
|
+
role: "img",
|
|
51
|
+
"aria-hidden": "true"
|
|
52
|
+
})), datePickerType === 'range' && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
53
|
+
className: "".concat(prefix, "--date-picker--fluid__skeleton--container")
|
|
54
|
+
}, /*#__PURE__*/React__default["default"].createElement("span", {
|
|
55
|
+
className: "".concat(prefix, "--label ").concat(prefix, "--skeleton")
|
|
56
|
+
}), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
57
|
+
className: "".concat(prefix, "--skeleton ").concat(prefix, "--text-input")
|
|
58
|
+
}), /*#__PURE__*/React__default["default"].createElement(iconsReact.Calendar, {
|
|
59
|
+
className: "".concat(prefix, "--date-picker__icon"),
|
|
60
|
+
role: "img",
|
|
61
|
+
"aria-hidden": "true"
|
|
62
|
+
}))));
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
FluidDatePickerSkeleton.propTypes = {
|
|
66
|
+
/**
|
|
67
|
+
* Specify an optional className to be applied to the outer FluidForm wrapper
|
|
68
|
+
*/
|
|
69
|
+
className: PropTypes__default["default"].string,
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Specify which variant of the DatePicker the skeleton should mimic
|
|
73
|
+
*/
|
|
74
|
+
datePickerType: PropTypes__default["default"].oneOf(['simple', 'single', 'range'])
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
exports["default"] = FluidDatePickerSkeleton;
|