@sebgroup/green-react 3.26.0 → 3.27.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/package.json +2 -2
- package/src/lib/alert-ribbon/alert-ribbon.d.ts +2 -2
- package/src/lib/form/input/input.d.ts +8 -1
- package/src/lib/form/input/input.js +5 -2
- package/src/lib/form/radioButton/radioGroup.d.ts +6 -1
- package/src/lib/form/radioButton/radioGroup.js +7 -5
- package/src/lib/form/textarea/textarea.d.ts +5 -0
- package/src/lib/form/textarea/textarea.js +5 -2
- package/src/lib/formItem/formItem.js +1 -1
- package/src/lib/select/select.d.ts +5 -0
- package/src/lib/select/select.js +5 -2
package/package.json
CHANGED
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"name": "@sebgroup/green-react",
|
|
3
3
|
"main": "./src/index.js",
|
|
4
4
|
"module": "./src/index.js",
|
|
5
|
-
"version": "3.
|
|
5
|
+
"version": "3.27.0",
|
|
6
6
|
"peerDependencies": {
|
|
7
7
|
"react": "^17 || ^18 || ^19",
|
|
8
8
|
"react-dom": "^17 || ^18 || ^19"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@sebgroup/green-core": "^1.
|
|
11
|
+
"@sebgroup/green-core": "^1.71.2",
|
|
12
12
|
"@sebgroup/chlorophyll": "^3.6.16",
|
|
13
13
|
"@sebgroup/extract": "^3.0.1",
|
|
14
14
|
"@lit/react": "^1.0.2",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
2
|
import { AlertRibbonType } from '@sebgroup/extract';
|
|
3
3
|
export interface AlertRibbonProps {
|
|
4
4
|
children: ReactNode;
|
|
@@ -9,7 +9,7 @@ export interface AlertRibbonProps {
|
|
|
9
9
|
closeText?: string;
|
|
10
10
|
onClose?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
11
11
|
role?: 'alert';
|
|
12
|
-
|
|
12
|
+
'aria-live'?: React.AriaAttributes['aria-live'];
|
|
13
13
|
closeAriaLabel?: string;
|
|
14
14
|
}
|
|
15
15
|
export declare function AlertRibbon({ type, header, footer, children, closeText, isCloseable, onClose, role, 'aria-live': ariaLive, closeAriaLabel, }: AlertRibbonProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -19,8 +19,15 @@ export interface InputProps extends IExpandableInformation, DetailedHTMLProps<In
|
|
|
19
19
|
value?: string | number;
|
|
20
20
|
/** Function called when input value changes */
|
|
21
21
|
onChangeInput?: (value: string) => string;
|
|
22
|
-
/**
|
|
22
|
+
/**
|
|
23
|
+
* Pass an string that is an id to another element describing the input field
|
|
24
|
+
*/
|
|
23
25
|
'aria-describedby'?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Set the live region attribute of the form control footer, this will change how error messages are read by screen readers
|
|
28
|
+
* @default 'assertive'
|
|
29
|
+
*/
|
|
30
|
+
'aria-live'?: React.AriaAttributes['aria-live'];
|
|
24
31
|
}
|
|
25
32
|
export declare const Input: import("react").ForwardRefExoticComponent<Omit<InputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
|
|
26
33
|
export declare const TextInput: import("react").ForwardRefExoticComponent<Omit<InputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -19,6 +19,8 @@ import '../useInput.js';
|
|
|
19
19
|
|
|
20
20
|
var Input = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
21
21
|
var ariaDescribedBy = _a['aria-describedby'],
|
|
22
|
+
_a$ariaLive = _a['aria-live'],
|
|
23
|
+
ariaLive = _a$ariaLive === void 0 ? 'assertive' : _a$ariaLive,
|
|
22
24
|
_a$autoComplete = _a.autoComplete,
|
|
23
25
|
autoComplete = _a$autoComplete === void 0 ? 'off' : _a$autoComplete,
|
|
24
26
|
children = _a.children,
|
|
@@ -39,7 +41,7 @@ var Input = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
39
41
|
_a$value = _a.value,
|
|
40
42
|
value = _a$value === void 0 ? '' : _a$value,
|
|
41
43
|
required = _a.required,
|
|
42
|
-
props = __rest(_a, ['aria-describedby', "autoComplete", "children", "className", "testId", "expandableInfo", "expandableInfoButtonLabel", "formatter", "id", "label", "info", "onChange", "unit", "role", "validator", "onChangeInput", "value", "required"]);
|
|
44
|
+
props = __rest(_a, ['aria-describedby', 'aria-live', "autoComplete", "children", "className", "testId", "expandableInfo", "expandableInfoButtonLabel", "formatter", "id", "label", "info", "onChange", "unit", "role", "validator", "onChangeInput", "value", "required"]);
|
|
43
45
|
var _useState = useState(id),
|
|
44
46
|
_useState2 = _slicedToArray(_useState, 1),
|
|
45
47
|
uuid = _useState2[0];
|
|
@@ -68,7 +70,7 @@ var Input = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
68
70
|
if (onChangeInput) onChangeInput(formattedValue);
|
|
69
71
|
}, [formatter, setLocalValue, onChange, onChangeInput]);
|
|
70
72
|
var showSimpleInput = !label && !info && !expandableInfo;
|
|
71
|
-
var describedBy = classNames(ariaDescribedBy, _defineProperty(_defineProperty(_defineProperty({}, "".concat(uuid, "
|
|
73
|
+
var describedBy = classNames(ariaDescribedBy, _defineProperty(_defineProperty(_defineProperty({}, "".concat(uuid, "_message"), !showSimpleInput && (validator === null || validator === void 0 ? void 0 : validator.message) !== undefined && validator.message.length > 0), "".concat(uuid, "_info"), !showSimpleInput && info), "gds-expandable-info-".concat(uuid), !showSimpleInput && expandableInfo));
|
|
72
74
|
var inputClassName = classNames(className, _defineProperty({}, validateClassName(validator === null || validator === void 0 ? void 0 : validator.indicator), validator));
|
|
73
75
|
var input = jsx("input", Object.assign({
|
|
74
76
|
"aria-describedby": describedBy || undefined,
|
|
@@ -96,6 +98,7 @@ var Input = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
96
98
|
labelInformation: info,
|
|
97
99
|
role: role,
|
|
98
100
|
validator: validator,
|
|
101
|
+
"aria-live": ariaLive,
|
|
99
102
|
children: jsx("div", {
|
|
100
103
|
className: "gds-input-wrapper",
|
|
101
104
|
children: jsxs(Group, {
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { IExpandableInformation, ILabelAndLabelInformation, IValidator } from '@sebgroup/extract';
|
|
3
3
|
export interface RadioGroupProps extends IExpandableInformation, ILabelAndLabelInformation {
|
|
4
|
+
/**
|
|
5
|
+
* Set the live region attribute of the form control footer, this will change how error messages are read by screen readers
|
|
6
|
+
* @default 'assertive'
|
|
7
|
+
*/
|
|
8
|
+
'aria-live'?: React.AriaAttributes['aria-live'];
|
|
4
9
|
label?: string;
|
|
5
10
|
title?: string;
|
|
6
11
|
valueSelected?: string;
|
|
@@ -12,5 +17,5 @@ export interface RadioGroupProps extends IExpandableInformation, ILabelAndLabelI
|
|
|
12
17
|
name?: string;
|
|
13
18
|
horizontal?: boolean;
|
|
14
19
|
}
|
|
15
|
-
export declare const RadioGroup: ({ defaultSelected, valueSelected, label, title, labelInformation, description, expandableInfo, expandableInfoButtonLabel, validator, onChangeRadio, onChange, name: propName, horizontal, children, }: React.PropsWithChildren<RadioGroupProps>) => import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare const RadioGroup: ({ "aria-live": ariaLive, defaultSelected, valueSelected, label, title, labelInformation, description, expandableInfo, expandableInfoButtonLabel, validator, onChangeRadio, onChange, name: propName, horizontal, children, }: React.PropsWithChildren<RadioGroupProps>) => import("react/jsx-runtime").JSX.Element;
|
|
16
21
|
export default RadioGroup;
|
|
@@ -14,7 +14,8 @@ import '../../icons/times.js';
|
|
|
14
14
|
import '../../icons/infoCircle.js';
|
|
15
15
|
|
|
16
16
|
var RadioGroup = function RadioGroup(_ref) {
|
|
17
|
-
var
|
|
17
|
+
var ariaLive = _ref['aria-live'],
|
|
18
|
+
defaultSelected = _ref.defaultSelected,
|
|
18
19
|
valueSelected = _ref.valueSelected,
|
|
19
20
|
label = _ref.label,
|
|
20
21
|
title = _ref.title,
|
|
@@ -42,7 +43,7 @@ var RadioGroup = function RadioGroup(_ref) {
|
|
|
42
43
|
name = _useState6[0];
|
|
43
44
|
var _useState7 = useState(randomId()),
|
|
44
45
|
_useState8 = _slicedToArray(_useState7, 1),
|
|
45
|
-
|
|
46
|
+
uuid = _useState8[0];
|
|
46
47
|
if (valueSelected !== prevValueSelected) {
|
|
47
48
|
setSelected(valueSelected);
|
|
48
49
|
setPrevValueSelected(valueSelected);
|
|
@@ -80,14 +81,15 @@ var RadioGroup = function RadioGroup(_ref) {
|
|
|
80
81
|
label: labelFromTitle,
|
|
81
82
|
expandableInfo: expandableInfo,
|
|
82
83
|
expandableInfoButtonLabel: expandableInfoButtonLabel,
|
|
83
|
-
role: 'radiogroup'
|
|
84
|
+
role: 'radiogroup',
|
|
85
|
+
'aria-live': ariaLive
|
|
84
86
|
};
|
|
85
87
|
var radioGroupWrapperClassNames = classNames('gds-radio-group-wrapper', {
|
|
86
88
|
'gds-radio-group-wrapper--horizontal': horizontal
|
|
87
89
|
});
|
|
88
|
-
var describedBy = classNames(_defineProperty(_defineProperty(_defineProperty({}, "".concat(
|
|
90
|
+
var describedBy = classNames(_defineProperty(_defineProperty(_defineProperty({}, "".concat(uuid, "_message"), (validator === null || validator === void 0 ? void 0 : validator.message) !== undefined && validator.message.length > 0), "".concat(uuid, "_info"), labelInformation), "gds-expandable-info-".concat(uuid), expandableInfo));
|
|
89
91
|
return jsx(FormItem, Object.assign({}, formItemProps, {
|
|
90
|
-
inputId:
|
|
92
|
+
inputId: uuid,
|
|
91
93
|
children: jsx("div", {
|
|
92
94
|
className: radioGroupWrapperClassNames,
|
|
93
95
|
children: React.Children.map(children, function (radioButton) {
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { DetailedHTMLProps, ReactNode } from 'react';
|
|
2
2
|
import { IExpandableInformation, IValidator } from '@sebgroup/extract';
|
|
3
3
|
export interface ITextAreaProps extends IExpandableInformation, DetailedHTMLProps<React.TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement> {
|
|
4
|
+
/**
|
|
5
|
+
* Set the live region attribute of the form control footer, this will change how error messages are read by screen readers
|
|
6
|
+
* @default 'assertive'
|
|
7
|
+
*/
|
|
8
|
+
'aria-live'?: React.AriaAttributes['aria-live'];
|
|
4
9
|
/** Data test id used for finding elements in test */
|
|
5
10
|
testId?: string;
|
|
6
11
|
/** Label describing the textarea */
|
|
@@ -14,7 +14,9 @@ import '../../icons/times.js';
|
|
|
14
14
|
import '../../icons/infoCircle.js';
|
|
15
15
|
|
|
16
16
|
var TextArea = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
17
|
-
var
|
|
17
|
+
var _a$ariaLive = _a['aria-live'],
|
|
18
|
+
ariaLive = _a$ariaLive === void 0 ? 'assertive' : _a$ariaLive,
|
|
19
|
+
ariaDescribedBy = _a['aria-describedby'],
|
|
18
20
|
_a$autoComplete = _a.autoComplete,
|
|
19
21
|
autoComplete = _a$autoComplete === void 0 ? 'off' : _a$autoComplete,
|
|
20
22
|
className = _a.className,
|
|
@@ -33,7 +35,7 @@ var TextArea = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
33
35
|
dataTestId = _a.testId,
|
|
34
36
|
maxLength = _a.maxLength,
|
|
35
37
|
required = _a.required,
|
|
36
|
-
props = __rest(_a, ['aria-describedby', "autoComplete", "className", "expandableInfo", "expandableInfoButtonLabel", "id", "label", "info", "onChange", "role", "rows", "validator", "value", "testId", "maxLength", "required"]);
|
|
38
|
+
props = __rest(_a, ['aria-live', 'aria-describedby', "autoComplete", "className", "expandableInfo", "expandableInfoButtonLabel", "id", "label", "info", "onChange", "role", "rows", "validator", "value", "testId", "maxLength", "required"]);
|
|
37
39
|
var _useState = useState(id),
|
|
38
40
|
_useState2 = _slicedToArray(_useState, 1),
|
|
39
41
|
uuid = _useState2[0];
|
|
@@ -52,6 +54,7 @@ var TextArea = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
52
54
|
var inputClassName = classNames(className, _defineProperty({}, validateClassName(validator === null || validator === void 0 ? void 0 : validator.indicator), validator)) || undefined;
|
|
53
55
|
var rightAlignedFooterInfo = maxLength ? "".concat((localValue === null || localValue === void 0 ? void 0 : localValue.length) || 0, "/").concat(maxLength) : undefined;
|
|
54
56
|
return jsx(FormItem, {
|
|
57
|
+
"aria-live": ariaLive,
|
|
55
58
|
expandableInfo: expandableInfo,
|
|
56
59
|
expandableInfoButtonLabel: expandableInfoButtonLabel,
|
|
57
60
|
inputId: uuid,
|
|
@@ -135,7 +135,7 @@ var FormItem = function FormItem(_ref) {
|
|
|
135
135
|
inert: isHidden ? true : undefined,
|
|
136
136
|
children: jsxs("div", {
|
|
137
137
|
ref: expandableInnerRef,
|
|
138
|
-
children: [" ", expandableInfo, " "]
|
|
138
|
+
children: [" ", !isHidden && expandableInfo, " "]
|
|
139
139
|
})
|
|
140
140
|
}), children, jsxs("div", {
|
|
141
141
|
className: "gds-form-item__footer",
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { IExpandableInformation, ILabelAndLabelInformation, IValidator } from '@sebgroup/extract';
|
|
3
3
|
export interface SelectProps extends IExpandableInformation, ILabelAndLabelInformation, React.DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement> {
|
|
4
|
+
/**
|
|
5
|
+
* Set the live region attribute of the form control footer, this will change how error messages are read by screen readers
|
|
6
|
+
* @default 'assertive'
|
|
7
|
+
*/
|
|
8
|
+
'aria-live'?: React.AriaAttributes['aria-live'];
|
|
4
9
|
label: string;
|
|
5
10
|
info?: string;
|
|
6
11
|
validator?: IValidator | undefined;
|
package/src/lib/select/select.js
CHANGED
|
@@ -15,7 +15,9 @@ import '../icons/times.js';
|
|
|
15
15
|
import '../icons/infoCircle.js';
|
|
16
16
|
|
|
17
17
|
var Select = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
18
|
-
var
|
|
18
|
+
var _a$ariaLive = _a['aria-live'],
|
|
19
|
+
ariaLive = _a$ariaLive === void 0 ? 'assertive' : _a$ariaLive,
|
|
20
|
+
ariaDescribedBy = _a['aria-describedby'],
|
|
19
21
|
_a$id = _a.id,
|
|
20
22
|
id = _a$id === void 0 ? randomId() : _a$id,
|
|
21
23
|
validator = _a.validator,
|
|
@@ -25,13 +27,14 @@ var Select = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
25
27
|
expandableInfo = _a.expandableInfo,
|
|
26
28
|
expandableInfoButtonLabel = _a.expandableInfoButtonLabel,
|
|
27
29
|
required = _a.required,
|
|
28
|
-
props = __rest(_a, ['aria-describedby', "id", "validator", "label", "info", "testId", "expandableInfo", "expandableInfoButtonLabel", "required"]);
|
|
30
|
+
props = __rest(_a, ['aria-live', 'aria-describedby', "id", "validator", "label", "info", "testId", "expandableInfo", "expandableInfoButtonLabel", "required"]);
|
|
29
31
|
var _useState = useState(id),
|
|
30
32
|
_useState2 = _slicedToArray(_useState, 1),
|
|
31
33
|
uuid = _useState2[0];
|
|
32
34
|
var selectClassName = classNames('gds-select', _defineProperty({}, "".concat(validateClassName(validator === null || validator === void 0 ? void 0 : validator.indicator)), validator));
|
|
33
35
|
var describedBy = classNames(ariaDescribedBy, _defineProperty(_defineProperty(_defineProperty({}, "".concat(uuid, "_message"), (validator === null || validator === void 0 ? void 0 : validator.message) !== undefined && validator.message.length > 0), "".concat(uuid, "_info"), info || props.labelInformation), "gds-expandable-info-".concat(uuid), expandableInfo));
|
|
34
36
|
return jsx(FormItem, {
|
|
37
|
+
"aria-live": ariaLive,
|
|
35
38
|
label: label,
|
|
36
39
|
labelInformation: info !== null && info !== void 0 ? info : props.labelInformation,
|
|
37
40
|
expandableInfo: expandableInfo,
|