@canonical/react-components 0.31.0 → 0.34.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/dist/__mocks__/nanoid.d.ts +1 -0
- package/dist/__mocks__/nanoid.js +17 -0
- package/dist/components/AccordionSection/AccordionSection.js +8 -12
- package/dist/components/CheckableInput/CheckableInput.d.ts +9 -1
- package/dist/components/CheckableInput/CheckableInput.js +8 -7
- package/dist/components/Chip/Chip.d.ts +5 -5
- package/dist/components/Chip/Chip.js +21 -13
- package/dist/components/CodeSnippet/CodeSnippet.d.ts +5 -4
- package/dist/components/CodeSnippet/CodeSnippet.js +13 -11
- package/dist/components/ContextualMenu/ContextualMenu.js +5 -5
- package/dist/components/Field/Field.d.ts +9 -1
- package/dist/components/Field/Field.js +12 -8
- package/dist/components/Input/Input.js +33 -13
- package/dist/components/MainTable/MainTable.d.ts +4 -0
- package/dist/components/MainTable/MainTable.js +9 -2
- package/dist/components/Modal/Modal.js +8 -8
- package/dist/components/ModularTable/ModularTable.d.ts +20 -5
- package/dist/components/ModularTable/ModularTable.js +30 -16
- package/dist/components/PaginationItem/PaginationItem.js +2 -1
- package/dist/components/PasswordToggle/PasswordToggle.js +14 -3
- package/dist/components/SearchBox/SearchBox.d.ts +5 -4
- package/dist/components/SearchBox/SearchBox.js +12 -14
- package/dist/components/Select/Select.js +11 -1
- package/dist/components/Slider/Slider.js +14 -1
- package/dist/components/Spinner/Spinner.d.ts +9 -1
- package/dist/components/Spinner/Spinner.js +12 -4
- package/dist/components/Switch/Switch.d.ts +14 -0
- package/dist/components/Switch/Switch.js +42 -0
- package/dist/components/Switch/index.d.ts +2 -0
- package/dist/components/Switch/index.js +15 -0
- package/dist/components/Textarea/Textarea.js +11 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +9 -1
- package/dist/hooks/useId.d.ts +6 -0
- package/dist/hooks/useId.js +21 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +40 -0
- package/package.json +32 -29
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { ReactNode } from "react";
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import { ReactNode, HTMLProps } from "react";
|
|
2
|
+
import { TableCellProps, TableHeaderProps, TableRowProps } from "react-table";
|
|
3
|
+
import type { Column, UseTableOptions, Cell, Row, HeaderGroup } from "react-table";
|
|
4
|
+
import { PropsWithSpread } from "../../types";
|
|
5
|
+
export declare type Props<D extends Record<string, unknown>> = PropsWithSpread<{
|
|
4
6
|
/**
|
|
5
7
|
* The columns of the table.
|
|
6
8
|
*/
|
|
@@ -17,6 +19,19 @@ export declare type Props<D extends Record<string, unknown>> = {
|
|
|
17
19
|
* Optional extra row to display underneath the main table content.
|
|
18
20
|
*/
|
|
19
21
|
footer?: ReactNode;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
/**
|
|
23
|
+
* This function is used to resolve any props needed for a particular column's header cell.
|
|
24
|
+
*/
|
|
25
|
+
getHeaderProps?: (header: HeaderGroup<D>) => Partial<TableHeaderProps & HTMLProps<HTMLTableHeaderCellElement>>;
|
|
26
|
+
/**
|
|
27
|
+
* This function is used to resolve any props needed for a particular row.
|
|
28
|
+
*/
|
|
29
|
+
getRowProps?: (row: Row<D>) => Partial<TableRowProps & HTMLProps<HTMLTableRowElement>>;
|
|
30
|
+
/**
|
|
31
|
+
* This function is used to resolve any props needed for a particular cell.
|
|
32
|
+
*/
|
|
33
|
+
getCellProps?: (cell: Cell<D>) => Partial<TableCellProps & HTMLProps<HTMLTableCellElement>>;
|
|
34
|
+
getRowId?: UseTableOptions<D>["getRowId"];
|
|
35
|
+
}, HTMLProps<HTMLTableElement>>;
|
|
36
|
+
declare function ModularTable({ data, columns, emptyMsg, footer, getHeaderProps, getRowProps, getCellProps, getRowId, ...props }: Props<Record<string, unknown>>): JSX.Element;
|
|
22
37
|
export default ModularTable;
|
|
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
|
|
10
8
|
var _react = _interopRequireDefault(require("react"));
|
|
11
9
|
|
|
12
10
|
var _reactTable = require("react-table");
|
|
@@ -21,17 +19,37 @@ var _TableCell = _interopRequireDefault(require("../TableCell"));
|
|
|
21
19
|
|
|
22
20
|
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
23
21
|
|
|
22
|
+
var _excluded = ["data", "columns", "emptyMsg", "footer", "getHeaderProps", "getRowProps", "getCellProps", "getRowId"];
|
|
23
|
+
|
|
24
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
25
|
|
|
26
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
27
|
+
|
|
28
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
29
|
+
|
|
30
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
31
|
+
|
|
32
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
33
|
+
|
|
34
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
35
|
+
|
|
36
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
37
|
+
|
|
26
38
|
function ModularTable(_ref) {
|
|
27
39
|
var data = _ref.data,
|
|
28
40
|
columns = _ref.columns,
|
|
29
41
|
emptyMsg = _ref.emptyMsg,
|
|
30
|
-
footer = _ref.footer
|
|
42
|
+
footer = _ref.footer,
|
|
43
|
+
getHeaderProps = _ref.getHeaderProps,
|
|
44
|
+
getRowProps = _ref.getRowProps,
|
|
45
|
+
getCellProps = _ref.getCellProps,
|
|
46
|
+
getRowId = _ref.getRowId,
|
|
47
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
31
48
|
|
|
32
49
|
var _useTable = (0, _reactTable.useTable)({
|
|
33
50
|
columns: columns,
|
|
34
|
-
data: data
|
|
51
|
+
data: data,
|
|
52
|
+
getRowId: getRowId || undefined
|
|
35
53
|
}),
|
|
36
54
|
getTableProps = _useTable.getTableProps,
|
|
37
55
|
getTableBodyProps = _useTable.getTableBodyProps,
|
|
@@ -39,28 +57,30 @@ function ModularTable(_ref) {
|
|
|
39
57
|
rows = _useTable.rows,
|
|
40
58
|
prepareRow = _useTable.prepareRow;
|
|
41
59
|
|
|
42
|
-
var showEmpty = emptyMsg && (!rows || rows.length === 0);
|
|
43
|
-
return /*#__PURE__*/_react.default.createElement(_Table.default, getTableProps(), /*#__PURE__*/_react.default.createElement("thead", null, headerGroups.map(function (headerGroup) {
|
|
60
|
+
var showEmpty = !!emptyMsg && (!rows || rows.length === 0);
|
|
61
|
+
return /*#__PURE__*/_react.default.createElement(_Table.default, _extends({}, getTableProps(), props), /*#__PURE__*/_react.default.createElement("thead", null, headerGroups.map(function (headerGroup) {
|
|
44
62
|
return /*#__PURE__*/_react.default.createElement(_TableRow.default, headerGroup.getHeaderGroupProps(), headerGroup.headers.map(function (column) {
|
|
45
63
|
return /*#__PURE__*/_react.default.createElement(_TableHeader.default, column.getHeaderProps([{
|
|
46
64
|
className: column.className
|
|
47
65
|
}, {
|
|
48
66
|
className: column.getCellIcon ? "p-table__cell--icon-placeholder" : ""
|
|
49
|
-
}]), column.render("Header"));
|
|
67
|
+
}, _objectSpread({}, getHeaderProps === null || getHeaderProps === void 0 ? void 0 : getHeaderProps(column))]), column.render("Header"));
|
|
50
68
|
}));
|
|
51
69
|
})), /*#__PURE__*/_react.default.createElement("tbody", getTableBodyProps(), rows.map(function (row) {
|
|
52
70
|
// This function is responsible for lazily preparing a row for rendering.
|
|
53
71
|
// Any row that you intend to render in your table needs to be passed to this function before every render.
|
|
54
72
|
// see: https://react-table.tanstack.com/docs/api/useTable#instance-properties
|
|
55
73
|
prepareRow(row);
|
|
56
|
-
return /*#__PURE__*/_react.default.createElement(_TableRow.default, row.getRowProps(), row.cells.map(function (cell) {
|
|
74
|
+
return /*#__PURE__*/_react.default.createElement(_TableRow.default, row.getRowProps(getRowProps === null || getRowProps === void 0 ? void 0 : getRowProps(row)), row.cells.map(function (cell) {
|
|
75
|
+
var _cell$column$getCellI, _cell$column;
|
|
76
|
+
|
|
57
77
|
var hasColumnIcon = cell.column.getCellIcon;
|
|
58
|
-
var iconName = hasColumnIcon && cell.column.getCellIcon(cell);
|
|
78
|
+
var iconName = hasColumnIcon && ((_cell$column$getCellI = (_cell$column = cell.column).getCellIcon) === null || _cell$column$getCellI === void 0 ? void 0 : _cell$column$getCellI.call(_cell$column, cell));
|
|
59
79
|
return /*#__PURE__*/_react.default.createElement(_TableCell.default, cell.getCellProps([{
|
|
60
80
|
className: cell.column.className
|
|
61
81
|
}, {
|
|
62
82
|
className: hasColumnIcon ? "p-table__cell--icon-placeholder" : ""
|
|
63
|
-
}]), iconName && /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
83
|
+
}, _objectSpread({}, getCellProps === null || getCellProps === void 0 ? void 0 : getCellProps(cell))]), iconName && /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
64
84
|
name: iconName
|
|
65
85
|
}), cell.render("Cell"));
|
|
66
86
|
}));
|
|
@@ -71,11 +91,5 @@ function ModularTable(_ref) {
|
|
|
71
91
|
}, footer))));
|
|
72
92
|
}
|
|
73
93
|
|
|
74
|
-
ModularTable.propTypes = {
|
|
75
|
-
columns: _propTypes.default.array.isRequired,
|
|
76
|
-
data: _propTypes.default.array.isRequired,
|
|
77
|
-
emptyMsg: _propTypes.default.string,
|
|
78
|
-
footer: _propTypes.default.node
|
|
79
|
-
};
|
|
80
94
|
var _default = ModularTable;
|
|
81
95
|
exports.default = _default;
|
|
@@ -22,7 +22,8 @@ var PaginationItem = function PaginationItem(_ref) {
|
|
|
22
22
|
className: (0, _classnames.default)("p-pagination__link", {
|
|
23
23
|
"is-active": isActive
|
|
24
24
|
}),
|
|
25
|
-
onClick: onClick
|
|
25
|
+
onClick: onClick,
|
|
26
|
+
"aria-current": isActive ? "page" : undefined
|
|
26
27
|
}, number));
|
|
27
28
|
};
|
|
28
29
|
|
|
@@ -17,6 +17,8 @@ var _Field = _interopRequireDefault(require("../Field"));
|
|
|
17
17
|
|
|
18
18
|
var _Label = _interopRequireDefault(require("../Label"));
|
|
19
19
|
|
|
20
|
+
var _hooks = require("../../hooks");
|
|
21
|
+
|
|
20
22
|
var _excluded = ["caution", "className", "error", "help", "id", "label", "readOnly", "required", "success", "type", "wrapperClassName"];
|
|
21
23
|
|
|
22
24
|
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); }
|
|
@@ -62,6 +64,10 @@ var PasswordToggle = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
|
|
|
62
64
|
isPassword = _useState2[0],
|
|
63
65
|
setIsPassword = _useState2[1];
|
|
64
66
|
|
|
67
|
+
var validationId = (0, _hooks.useId)();
|
|
68
|
+
var helpId = (0, _hooks.useId)();
|
|
69
|
+
var hasError = !!error;
|
|
70
|
+
|
|
65
71
|
var togglePassword = function togglePassword() {
|
|
66
72
|
if (isPassword) {
|
|
67
73
|
setIsPassword(false);
|
|
@@ -75,8 +81,10 @@ var PasswordToggle = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
|
|
|
75
81
|
className: wrapperClassName,
|
|
76
82
|
error: error,
|
|
77
83
|
help: help,
|
|
84
|
+
helpId: helpId,
|
|
78
85
|
required: required,
|
|
79
|
-
success: success
|
|
86
|
+
success: success,
|
|
87
|
+
validationId: validationId
|
|
80
88
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
81
89
|
className: "p-form-password-toggle"
|
|
82
90
|
}, /*#__PURE__*/_react.default.createElement(_Label.default, {
|
|
@@ -97,11 +105,14 @@ var PasswordToggle = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
|
|
|
97
105
|
}, isPassword ? "Show" : "Hide"), /*#__PURE__*/_react.default.createElement("i", {
|
|
98
106
|
className: isPassword ? "p-icon--show" : "p-icon--hide"
|
|
99
107
|
}))), /*#__PURE__*/_react.default.createElement("input", _extends({
|
|
108
|
+
"aria-describedby": help ? helpId : null,
|
|
109
|
+
"aria-errormessage": hasError ? validationId : null,
|
|
110
|
+
"aria-invalid": hasError,
|
|
100
111
|
className: (0, _classnames.default)("p-form-validation__input", className),
|
|
101
112
|
id: id,
|
|
113
|
+
readOnly: readOnly,
|
|
102
114
|
ref: ref,
|
|
103
|
-
type: isPassword ? "password" : "text"
|
|
104
|
-
readOnly: readOnly
|
|
115
|
+
type: isPassword ? "password" : "text"
|
|
105
116
|
}, inputProps)));
|
|
106
117
|
});
|
|
107
118
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { HTMLProps } from "react";
|
|
2
|
+
import type { ClassName, PropsWithSpread } from "../../types";
|
|
3
|
+
export declare type Props = PropsWithSpread<{
|
|
3
4
|
/**
|
|
4
5
|
* Whether autocomplete should be enabled for the search input.
|
|
5
6
|
*/
|
|
@@ -32,9 +33,9 @@ export declare type Props = {
|
|
|
32
33
|
* The value of the search input when the state is externally controlled.
|
|
33
34
|
*/
|
|
34
35
|
value?: string;
|
|
35
|
-
}
|
|
36
|
+
}, HTMLProps<HTMLInputElement>>;
|
|
36
37
|
declare const SearchBox: {
|
|
37
|
-
({ autocomplete, className, disabled, externallyControlled, onChange, onSearch, placeholder, value, }: Props): JSX.Element;
|
|
38
|
+
({ autocomplete, className, disabled, externallyControlled, onChange, onSearch, placeholder, value, ...props }: Props): JSX.Element;
|
|
38
39
|
displayName: string;
|
|
39
40
|
};
|
|
40
41
|
export default SearchBox;
|
|
@@ -5,16 +5,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
|
|
8
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
|
|
10
8
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
9
|
|
|
12
10
|
var _react = _interopRequireDefault(require("react"));
|
|
13
11
|
|
|
14
12
|
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
15
13
|
|
|
14
|
+
var _excluded = ["autocomplete", "className", "disabled", "externallyControlled", "onChange", "onSearch", "placeholder", "value"];
|
|
15
|
+
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
18
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
19
|
+
|
|
20
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
21
|
+
|
|
22
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
23
|
+
|
|
18
24
|
var SearchBox = function SearchBox(_ref) {
|
|
19
25
|
var _ref$autocomplete = _ref.autocomplete,
|
|
20
26
|
autocomplete = _ref$autocomplete === void 0 ? "on" : _ref$autocomplete,
|
|
@@ -25,7 +31,8 @@ var SearchBox = function SearchBox(_ref) {
|
|
|
25
31
|
onSearch = _ref.onSearch,
|
|
26
32
|
_ref$placeholder = _ref.placeholder,
|
|
27
33
|
placeholder = _ref$placeholder === void 0 ? "Search" : _ref$placeholder,
|
|
28
|
-
value = _ref.value
|
|
34
|
+
value = _ref.value,
|
|
35
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
29
36
|
|
|
30
37
|
var input = /*#__PURE__*/_react.default.createRef();
|
|
31
38
|
|
|
@@ -46,7 +53,7 @@ var SearchBox = function SearchBox(_ref) {
|
|
|
46
53
|
}, /*#__PURE__*/_react.default.createElement("label", {
|
|
47
54
|
className: "u-off-screen",
|
|
48
55
|
htmlFor: "search"
|
|
49
|
-
}, placeholder || "Search"), /*#__PURE__*/_react.default.createElement("input", {
|
|
56
|
+
}, placeholder || "Search"), /*#__PURE__*/_react.default.createElement("input", _extends({
|
|
50
57
|
autoComplete: autocomplete,
|
|
51
58
|
className: "p-search-box__input",
|
|
52
59
|
disabled: disabled,
|
|
@@ -60,7 +67,7 @@ var SearchBox = function SearchBox(_ref) {
|
|
|
60
67
|
type: "search",
|
|
61
68
|
defaultValue: externallyControlled ? undefined : value,
|
|
62
69
|
value: externallyControlled ? value : undefined
|
|
63
|
-
}), value && /*#__PURE__*/_react.default.createElement("button", {
|
|
70
|
+
}, props)), value && /*#__PURE__*/_react.default.createElement("button", {
|
|
64
71
|
className: "p-search-box__reset",
|
|
65
72
|
disabled: disabled,
|
|
66
73
|
onClick: resetInput,
|
|
@@ -76,15 +83,6 @@ var SearchBox = function SearchBox(_ref) {
|
|
|
76
83
|
}, "Search")));
|
|
77
84
|
};
|
|
78
85
|
|
|
79
|
-
SearchBox.propTypes = {
|
|
80
|
-
autocomplete: _propTypes.default.oneOf(["on", "off"]),
|
|
81
|
-
disabled: _propTypes.default.bool,
|
|
82
|
-
externallyControlled: _propTypes.default.bool,
|
|
83
|
-
onChange: _propTypes.default.func,
|
|
84
|
-
onSearch: _propTypes.default.func,
|
|
85
|
-
placeholder: _propTypes.default.string,
|
|
86
|
-
value: _propTypes.default.string
|
|
87
|
-
};
|
|
88
86
|
SearchBox.displayName = "SearchBox";
|
|
89
87
|
var _default = SearchBox;
|
|
90
88
|
exports.default = _default;
|
|
@@ -13,6 +13,8 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
|
|
14
14
|
var _Field = _interopRequireDefault(require("../Field"));
|
|
15
15
|
|
|
16
|
+
var _hooks = require("../../hooks");
|
|
17
|
+
|
|
16
18
|
var _excluded = ["label", "value"],
|
|
17
19
|
_excluded2 = ["caution", "className", "error", "help", "id", "label", "labelClassName", "onChange", "options", "required", "stacked", "success", "takeFocus", "wrapperClassName"];
|
|
18
20
|
|
|
@@ -59,6 +61,9 @@ var Select = function Select(_ref2) {
|
|
|
59
61
|
selectProps = _objectWithoutProperties(_ref2, _excluded2);
|
|
60
62
|
|
|
61
63
|
var selectRef = (0, _react.useRef)(null);
|
|
64
|
+
var validationId = (0, _hooks.useId)();
|
|
65
|
+
var helpId = (0, _hooks.useId)();
|
|
66
|
+
var hasError = !!error;
|
|
62
67
|
(0, _react.useEffect)(function () {
|
|
63
68
|
if (takeFocus) {
|
|
64
69
|
selectRef.current.focus();
|
|
@@ -70,13 +75,18 @@ var Select = function Select(_ref2) {
|
|
|
70
75
|
error: error,
|
|
71
76
|
forId: id,
|
|
72
77
|
help: help,
|
|
78
|
+
helpId: helpId,
|
|
73
79
|
isSelect: true,
|
|
74
80
|
label: label,
|
|
75
81
|
labelClassName: labelClassName,
|
|
76
82
|
required: required,
|
|
77
83
|
stacked: stacked,
|
|
78
|
-
success: success
|
|
84
|
+
success: success,
|
|
85
|
+
validationId: validationId
|
|
79
86
|
}, /*#__PURE__*/_react.default.createElement("select", _extends({
|
|
87
|
+
"aria-describedby": help ? helpId : null,
|
|
88
|
+
"aria-errormessage": hasError ? validationId : null,
|
|
89
|
+
"aria-invalid": hasError,
|
|
80
90
|
className: (0, _classnames.default)("p-form-validation__input", className),
|
|
81
91
|
id: id,
|
|
82
92
|
onChange: function onChange(evt) {
|
|
@@ -9,6 +9,8 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _Field = _interopRequireDefault(require("../Field"));
|
|
11
11
|
|
|
12
|
+
var _hooks = require("../../hooks");
|
|
13
|
+
|
|
12
14
|
var _excluded = ["caution", "disabled", "error", "help", "id", "inputDisabled", "label", "max", "min", "onChange", "required", "showInput"];
|
|
13
15
|
|
|
14
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -45,6 +47,9 @@ var Slider = function Slider(_ref) {
|
|
|
45
47
|
showInput = _ref$showInput === void 0 ? false : _ref$showInput,
|
|
46
48
|
inputProps = _objectWithoutProperties(_ref, _excluded);
|
|
47
49
|
|
|
50
|
+
var validationId = (0, _hooks.useId)();
|
|
51
|
+
var helpId = (0, _hooks.useId)();
|
|
52
|
+
var hasError = !!error;
|
|
48
53
|
var style = {};
|
|
49
54
|
|
|
50
55
|
if ((_navigator = navigator) !== null && _navigator !== void 0 && (_navigator$userAgent = _navigator.userAgent) !== null && _navigator$userAgent !== void 0 && _navigator$userAgent.includes("AppleWebKit")) {
|
|
@@ -61,11 +66,16 @@ var Slider = function Slider(_ref) {
|
|
|
61
66
|
caution: caution,
|
|
62
67
|
error: error,
|
|
63
68
|
help: help,
|
|
69
|
+
helpId: helpId,
|
|
64
70
|
label: label,
|
|
65
|
-
required: required
|
|
71
|
+
required: required,
|
|
72
|
+
validationId: validationId
|
|
66
73
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
67
74
|
className: "p-slider__wrapper"
|
|
68
75
|
}, /*#__PURE__*/_react.default.createElement("input", _extends({
|
|
76
|
+
"aria-describedby": help ? helpId : null,
|
|
77
|
+
"aria-errormessage": hasError ? validationId : null,
|
|
78
|
+
"aria-invalid": hasError,
|
|
69
79
|
disabled: disabled,
|
|
70
80
|
id: id,
|
|
71
81
|
max: max,
|
|
@@ -75,6 +85,9 @@ var Slider = function Slider(_ref) {
|
|
|
75
85
|
style: style,
|
|
76
86
|
type: "range"
|
|
77
87
|
}, inputProps)), showInput && /*#__PURE__*/_react.default.createElement("input", _extends({
|
|
88
|
+
"aria-describedby": help ? helpId : null,
|
|
89
|
+
"aria-errormessage": hasError ? validationId : null,
|
|
90
|
+
"aria-invalid": hasError,
|
|
78
91
|
className: "p-slider__input",
|
|
79
92
|
disabled: disabled || inputDisabled,
|
|
80
93
|
max: max,
|
|
@@ -13,6 +13,14 @@ export declare type Props = {
|
|
|
13
13
|
* Text to display next to the spinner.
|
|
14
14
|
*/
|
|
15
15
|
text?: string;
|
|
16
|
+
/**
|
|
17
|
+
* What the role of the spinner should be.
|
|
18
|
+
*/
|
|
19
|
+
role?: string;
|
|
20
|
+
/**
|
|
21
|
+
* The politeness setting of the spinner alert.
|
|
22
|
+
*/
|
|
23
|
+
ariaLive?: "assertive" | "off" | "polite";
|
|
16
24
|
} & HTMLProps<HTMLSpanElement>;
|
|
17
|
-
declare const Spinner: ({ className, text, isLight, ...props }: Props) => JSX.Element;
|
|
25
|
+
declare const Spinner: ({ className, text, isLight, ariaLive, role, ...props }: Props) => JSX.Element;
|
|
18
26
|
export default Spinner;
|
|
@@ -11,7 +11,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
11
11
|
|
|
12
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
13
|
|
|
14
|
-
var _excluded = ["className", "text", "isLight"];
|
|
14
|
+
var _excluded = ["className", "text", "isLight", "ariaLive", "role"];
|
|
15
15
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
@@ -26,20 +26,28 @@ var Spinner = function Spinner(_ref) {
|
|
|
26
26
|
text = _ref.text,
|
|
27
27
|
_ref$isLight = _ref.isLight,
|
|
28
28
|
isLight = _ref$isLight === void 0 ? false : _ref$isLight,
|
|
29
|
+
_ref$ariaLive = _ref.ariaLive,
|
|
30
|
+
ariaLive = _ref$ariaLive === void 0 ? "polite" : _ref$ariaLive,
|
|
31
|
+
_ref$role = _ref.role,
|
|
32
|
+
role = _ref$role === void 0 ? "alert" : _ref$role,
|
|
29
33
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
30
34
|
|
|
31
35
|
return /*#__PURE__*/_react.default.createElement("span", _extends({}, props, {
|
|
32
|
-
className: (0, _classnames.default)(className, "p-text--default")
|
|
36
|
+
className: (0, _classnames.default)(className, "p-text--default"),
|
|
37
|
+
role: role,
|
|
38
|
+
"aria-live": ariaLive
|
|
33
39
|
}), /*#__PURE__*/_react.default.createElement("i", {
|
|
34
40
|
className: (0, _classnames.default)("p-icon--spinner", "u-animation--spin", {
|
|
35
41
|
"is-light": isLight
|
|
36
42
|
})
|
|
37
|
-
}), text && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "\u2002", /*#__PURE__*/_react.default.createElement("span", null, text)));
|
|
43
|
+
}, text ? "" : "Loading"), text && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "\u2002", /*#__PURE__*/_react.default.createElement("span", null, text)));
|
|
38
44
|
};
|
|
39
45
|
|
|
40
46
|
Spinner.propTypes = {
|
|
41
47
|
isLight: _propTypes.default.bool,
|
|
42
|
-
text: _propTypes.default.string
|
|
48
|
+
text: _propTypes.default.string,
|
|
49
|
+
role: _propTypes.default.string,
|
|
50
|
+
ariaLive: _propTypes.default.oneOf(["assertive", "off", "polite"])
|
|
43
51
|
};
|
|
44
52
|
var _default = Spinner;
|
|
45
53
|
exports.default = _default;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { HTMLProps, ReactNode } from "react";
|
|
2
|
+
import type { PropsWithSpread } from "../../types";
|
|
3
|
+
export declare type Props = PropsWithSpread<{
|
|
4
|
+
/**
|
|
5
|
+
* The label name for the switch
|
|
6
|
+
*/
|
|
7
|
+
label: ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Whether the switch is disabled or not
|
|
10
|
+
*/
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
}, HTMLProps<HTMLInputElement>>;
|
|
13
|
+
export declare const Switch: ({ label, disabled, ...inputProps }: Props) => JSX.Element;
|
|
14
|
+
export default Switch;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.Switch = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _excluded = ["label", "disabled"];
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
|
|
14
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
15
|
+
|
|
16
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
17
|
+
|
|
18
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
19
|
+
|
|
20
|
+
var Switch = function Switch(_ref) {
|
|
21
|
+
var label = _ref.label,
|
|
22
|
+
_ref$disabled = _ref.disabled,
|
|
23
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
24
|
+
inputProps = _objectWithoutProperties(_ref, _excluded);
|
|
25
|
+
|
|
26
|
+
return /*#__PURE__*/_react.default.createElement("label", {
|
|
27
|
+
className: "p-switch"
|
|
28
|
+
}, /*#__PURE__*/_react.default.createElement("input", _extends({
|
|
29
|
+
type: "checkbox",
|
|
30
|
+
className: "p-switch__input",
|
|
31
|
+
role: "switch",
|
|
32
|
+
disabled: disabled
|
|
33
|
+
}, inputProps)), /*#__PURE__*/_react.default.createElement("span", {
|
|
34
|
+
className: "p-switch__slider"
|
|
35
|
+
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
36
|
+
className: "p-switch__label"
|
|
37
|
+
}, label));
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
exports.Switch = Switch;
|
|
41
|
+
var _default = Switch;
|
|
42
|
+
exports.default = _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "default", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _Switch.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
var _Switch = _interopRequireDefault(require("./Switch"));
|
|
14
|
+
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -13,6 +13,8 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
|
|
14
14
|
var _Field = _interopRequireDefault(require("../Field"));
|
|
15
15
|
|
|
16
|
+
var _hooks = require("../../hooks");
|
|
17
|
+
|
|
16
18
|
var _excluded = ["caution", "className", "error", "grow", "help", "id", "label", "labelClassName", "onKeyUp", "required", "stacked", "style", "success", "takeFocus", "wrapperClassName"];
|
|
17
19
|
|
|
18
20
|
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); }
|
|
@@ -54,6 +56,9 @@ var Textarea = function Textarea(_ref) {
|
|
|
54
56
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
55
57
|
|
|
56
58
|
var textareaRef = (0, _react.useRef)(null);
|
|
59
|
+
var validationId = (0, _hooks.useId)();
|
|
60
|
+
var helpId = (0, _hooks.useId)();
|
|
61
|
+
var hasError = !!error;
|
|
57
62
|
(0, _react.useEffect)(function () {
|
|
58
63
|
if (takeFocus) {
|
|
59
64
|
textareaRef.current.focus();
|
|
@@ -65,12 +70,17 @@ var Textarea = function Textarea(_ref) {
|
|
|
65
70
|
error: error,
|
|
66
71
|
forId: id,
|
|
67
72
|
help: help,
|
|
73
|
+
helpId: helpId,
|
|
68
74
|
label: label,
|
|
69
75
|
labelClassName: labelClassName,
|
|
70
76
|
required: required,
|
|
71
77
|
stacked: stacked,
|
|
72
|
-
success: success
|
|
78
|
+
success: success,
|
|
79
|
+
validationId: validationId
|
|
73
80
|
}, /*#__PURE__*/_react.default.createElement("textarea", _extends({
|
|
81
|
+
"aria-describedby": help ? helpId : null,
|
|
82
|
+
"aria-errormessage": hasError ? validationId : null,
|
|
83
|
+
"aria-invalid": hasError,
|
|
74
84
|
className: (0, _classnames.default)("p-form-validation__input", className),
|
|
75
85
|
id: id,
|
|
76
86
|
onKeyUp: function onKeyUp(evt) {
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ export { useWindowFitment } from "./useWindowFitment";
|
|
|
2
2
|
export { useListener } from "./useListener";
|
|
3
3
|
export { usePrevious } from "./usePrevious";
|
|
4
4
|
export { useThrottle } from "./useThrottle";
|
|
5
|
+
export { useId } from "./useId";
|
|
5
6
|
export type { WindowFitment } from "./useWindowFitment";
|
package/dist/hooks/index.js
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
Object.defineProperty(exports, "useId", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _useId.useId;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
6
12
|
Object.defineProperty(exports, "useListener", {
|
|
7
13
|
enumerable: true,
|
|
8
14
|
get: function get() {
|
|
@@ -34,4 +40,6 @@ var _useListener = require("./useListener");
|
|
|
34
40
|
|
|
35
41
|
var _usePrevious = require("./usePrevious");
|
|
36
42
|
|
|
37
|
-
var _useThrottle = require("./useThrottle");
|
|
43
|
+
var _useThrottle = require("./useThrottle");
|
|
44
|
+
|
|
45
|
+
var _useId = require("./useId");
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useId = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _nanoid = require("nanoid");
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A hook that returns the same random ID string on every render.
|
|
14
|
+
* Can be used as a value for HTML "id" attributes.
|
|
15
|
+
* @returns random ID string
|
|
16
|
+
*/
|
|
17
|
+
var useId = function useId() {
|
|
18
|
+
return (0, _react.useRef)((0, _nanoid.nanoid)()).current;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
exports.useId = useId;
|
package/dist/index.d.ts
CHANGED
|
@@ -29,6 +29,7 @@ export { default as SearchAndFilter } from "./components/SearchAndFilter";
|
|
|
29
29
|
export { default as SearchBox } from "./components/SearchBox";
|
|
30
30
|
export { default as Select } from "./components/Select";
|
|
31
31
|
export { default as Slider } from "./components/Slider";
|
|
32
|
+
export { default as Switch } from "./components/Switch";
|
|
32
33
|
export { default as Spinner } from "./components/Spinner";
|
|
33
34
|
export { default as Strip } from "./components/Strip";
|
|
34
35
|
export { default as SummaryButton } from "./components/SummaryButton";
|
|
@@ -80,4 +81,6 @@ export type { TableRowProps } from "./components/TableRow";
|
|
|
80
81
|
export type { TabsProps } from "./components/Tabs";
|
|
81
82
|
export type { TextareaProps } from "./components/Textarea";
|
|
82
83
|
export type { TooltipProps } from "./components/Tooltip";
|
|
84
|
+
export { useWindowFitment, useListener, usePrevious, useThrottle, useId, } from "./hooks";
|
|
85
|
+
export type { WindowFitment } from "./hooks";
|
|
83
86
|
export type { ClassName, Headings, PropsWithSpread, SortDirection, SubComponentProps, TSFixMe, ValueOf, } from "./types";
|