@bookjane2/bookjane-design-library 9.0.20 → 9.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/BKJDollarTextInput/BKJDollarTextInput.d.ts.map +1 -1
- package/lib/components/BKJDollarTextInput/BKJDollarTextInput.js +18 -4
- package/lib/components/BKJDollarTextInput/BKJDollarTextInput.js.map +1 -1
- package/lib/components/BKJDollarTextInput/BKJDollarTextInput.stories.d.ts +4 -0
- package/lib/components/BKJDollarTextInput/BKJDollarTextInput.stories.d.ts.map +1 -1
- package/lib/components/BKJDollarTextInput/BKJDollarTextInput.stories.js +35 -0
- package/lib/components/BKJDollarTextInput/BKJDollarTextInput.stories.js.map +1 -1
- package/lib/components/BKJDollarTextInput/BKJDollarTextInput.test.d.ts +2 -0
- package/lib/components/BKJDollarTextInput/BKJDollarTextInput.test.d.ts.map +1 -0
- package/lib/components/BKJDollarTextInput/BKJDollarTextInput.test.js +93 -0
- package/lib/components/BKJDollarTextInput/BKJDollarTextInput.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BKJDollarTextInput.d.ts","sourceRoot":"","sources":["../../../src/components/BKJDollarTextInput/BKJDollarTextInput.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BKJDollarTextInput.d.ts","sourceRoot":"","sources":["../../../src/components/BKJDollarTextInput/BKJDollarTextInput.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAA6C,MAAM,OAAO,CAAC;AAWtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,wBAAwB,CA+F1D,CAAC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { useTextField } from '@react-aria/textfield';
|
|
3
|
+
import { Fragment, forwardRef, useCallback, useRef } from 'react';
|
|
4
|
+
import { isBoolean, isFormValidationErrorDisplayed } from '../../common.types.js';
|
|
3
5
|
import { RequiredAsterisk, InputLabel, InputWrapper, TextInput, InputErrorMessage, IconTextInputWrapper, } from './BKJDollarTextInput.styled.js';
|
|
4
6
|
import { mergeRefs } from '../BKJSelect/utils/mergeRefs.js';
|
|
5
7
|
export const BKJDollarTextInput = forwardRef((props, ref) => {
|
|
6
8
|
const { label, error, disabled, required, className, onChange, value, max, ...rest } = props;
|
|
7
|
-
const innerRef = useRef({
|
|
9
|
+
const innerRef = useRef({});
|
|
8
10
|
const handleOuterFocus = useCallback(() => {
|
|
9
|
-
innerRef
|
|
11
|
+
innerRef.current?.focus();
|
|
10
12
|
}, []);
|
|
11
13
|
const handleBlur = useCallback((e) => {
|
|
12
14
|
const currencyFormatter = new Intl.NumberFormat('en-US', {
|
|
@@ -29,7 +31,19 @@ export const BKJDollarTextInput = forwardRef((props, ref) => {
|
|
|
29
31
|
onChange({ ...e, target: { value: e.target.value } });
|
|
30
32
|
}
|
|
31
33
|
}, [onChange]);
|
|
34
|
+
const hasStringyError = isFormValidationErrorDisplayed(error) && !isBoolean(error);
|
|
35
|
+
const { labelProps, inputProps, errorMessageProps } = useTextField({
|
|
36
|
+
isRequired: required,
|
|
37
|
+
isDisabled: disabled,
|
|
38
|
+
label: label || 'Dollar amount',
|
|
39
|
+
value,
|
|
40
|
+
errorMessage: hasStringyError ? error : undefined,
|
|
41
|
+
validationState: isFormValidationErrorDisplayed(error) ? 'invalid' : 'valid',
|
|
42
|
+
onBlur: handleBlur,
|
|
43
|
+
}, innerRef);
|
|
32
44
|
const hasValue = value !== '';
|
|
33
|
-
return (_jsxs(IconTextInputWrapper, { className: className, tabIndex: -1, onFocus: handleOuterFocus, children: [label && (_jsxs(InputLabel, { disabled: disabled, children: [label, required && _jsx(RequiredAsterisk, { children: "\u00A0*" })] })), _jsx(InputWrapper, { children: _jsx(TextInput, { placeholder: "None",
|
|
45
|
+
return (_jsxs(IconTextInputWrapper, { className: className, tabIndex: -1, onFocus: handleOuterFocus, children: [label && (_jsxs(InputLabel, { ...labelProps, disabled: disabled, children: [label, required && _jsx(RequiredAsterisk, { children: "\u00A0*" })] })), _jsx(InputWrapper, { children: _jsx(TextInput, { ...inputProps, placeholder: "None", ref: mergeRefs([innerRef, ref]), error: error ? (Array.isArray(error) ? !!error.length : !!error) : false, disabled: disabled, value: value, hasValue: hasValue, onChange: handleChange, max: max, inputMode: "decimal", ...rest }) }), hasStringyError && (_jsx(InputErrorMessage, { ...errorMessageProps, children: Array.isArray(error)
|
|
46
|
+
? error.map((err, i) => (_jsxs(Fragment, { children: [i > 0 && _jsx("br", {}), err] }, `${err}-${i}`)))
|
|
47
|
+
: error }))] }));
|
|
34
48
|
});
|
|
35
49
|
//# sourceMappingURL=BKJDollarTextInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BKJDollarTextInput.js","sourceRoot":"","sources":["../../../src/components/BKJDollarTextInput/BKJDollarTextInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"BKJDollarTextInput.js","sourceRoot":"","sources":["../../../src/components/BKJDollarTextInput/BKJDollarTextInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -33,5 +33,9 @@ declare const setup: {
|
|
|
33
33
|
};
|
|
34
34
|
};
|
|
35
35
|
export declare const Default: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, IBKJDollarTextInputProps>;
|
|
36
|
+
export declare const WithStringError: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, IBKJDollarTextInputProps>;
|
|
37
|
+
export declare const WithArrayError: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, IBKJDollarTextInputProps>;
|
|
38
|
+
export declare const Required: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, IBKJDollarTextInputProps>;
|
|
39
|
+
export declare const Disabled: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, IBKJDollarTextInputProps>;
|
|
36
40
|
export default setup;
|
|
37
41
|
//# sourceMappingURL=BKJDollarTextInput.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BKJDollarTextInput.stories.d.ts","sourceRoot":"","sources":["../../../src/components/BKJDollarTextInput/BKJDollarTextInput.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BV,CAAC;AAUF,eAAO,MAAM,OAAO,oHAAoB,CAAC;AAUzC,eAAe,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"BKJDollarTextInput.stories.d.ts","sourceRoot":"","sources":["../../../src/components/BKJDollarTextInput/BKJDollarTextInput.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BV,CAAC;AAUF,eAAO,MAAM,OAAO,oHAAoB,CAAC;AAUzC,eAAO,MAAM,eAAe,oHAAoB,CAAC;AAWjD,eAAO,MAAM,cAAc,oHAAoB,CAAC;AAWhD,eAAO,MAAM,QAAQ,oHAAoB,CAAC;AAU1C,eAAO,MAAM,QAAQ,oHAAoB,CAAC;AAW1C,eAAe,KAAK,CAAC"}
|
|
@@ -48,5 +48,40 @@ Default.args = {
|
|
|
48
48
|
placeholder: 'None',
|
|
49
49
|
ref: React.createRef(),
|
|
50
50
|
};
|
|
51
|
+
export const WithStringError = Template.bind({});
|
|
52
|
+
WithStringError.args = {
|
|
53
|
+
label: 'Set Rate',
|
|
54
|
+
max: 1000,
|
|
55
|
+
required: false,
|
|
56
|
+
placeholder: 'None',
|
|
57
|
+
error: 'Amount must be greater than $0',
|
|
58
|
+
ref: React.createRef(),
|
|
59
|
+
};
|
|
60
|
+
export const WithArrayError = Template.bind({});
|
|
61
|
+
WithArrayError.args = {
|
|
62
|
+
label: 'Set Rate',
|
|
63
|
+
max: 1000,
|
|
64
|
+
required: false,
|
|
65
|
+
placeholder: 'None',
|
|
66
|
+
error: ['Amount must be greater than $0', 'Amount must be less than $1000'],
|
|
67
|
+
ref: React.createRef(),
|
|
68
|
+
};
|
|
69
|
+
export const Required = Template.bind({});
|
|
70
|
+
Required.args = {
|
|
71
|
+
label: 'Set Rate',
|
|
72
|
+
max: 1000,
|
|
73
|
+
required: true,
|
|
74
|
+
placeholder: 'None',
|
|
75
|
+
ref: React.createRef(),
|
|
76
|
+
};
|
|
77
|
+
export const Disabled = Template.bind({});
|
|
78
|
+
Disabled.args = {
|
|
79
|
+
label: 'Set Rate',
|
|
80
|
+
max: 1000,
|
|
81
|
+
required: false,
|
|
82
|
+
disabled: true,
|
|
83
|
+
placeholder: 'None',
|
|
84
|
+
ref: React.createRef(),
|
|
85
|
+
};
|
|
51
86
|
export default setup;
|
|
52
87
|
//# sourceMappingURL=BKJDollarTextInput.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BKJDollarTextInput.stories.js","sourceRoot":"","sources":["../../../src/components/BKJDollarTextInput/BKJDollarTextInput.stories.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,KAAK,GAAG;IACZ,KAAK,EAAE,mCAAmC;IAC1C,SAAS,EAAE,kBAAkB;IAC7B,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,IAAI,EAAE,YAAY;SACnB;QACD,KAAK,EAAE;YACL,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;aACb;SACF;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,gBAAgB;SACvB;QACD,WAAW,EAAE;YACX,IAAI,EAAE,aAAa;SACpB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,UAAU;SACjB;QACD,GAAG,EAAE;YACH,IAAI,EAAE,KAAK;SACZ;QACD,KAAK,EAAE;YACL,KAAK,EAAE;gBACL,OAAO,EAAE,IAAI;aACd;SACF;KACF;CACF,CAAC;AAEF,MAAM,QAAQ,GAAsC,CAAC,IAAI,EAAE,EAAE;IAC3D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAkB,EAAE,EAAE;QACrD,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,KAAC,kBAAkB,OAAK,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,GAAI,CAAC;AAC/E,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEzC,OAAO,CAAC,IAAI,GAAG;IACb,KAAK,EAAE,UAAU;IACjB,GAAG,EAAE,IAAI;IACT,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,MAAM;IACnB,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE;CACvB,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"BKJDollarTextInput.stories.js","sourceRoot":"","sources":["../../../src/components/BKJDollarTextInput/BKJDollarTextInput.stories.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BKJDollarTextInput.test.d.ts","sourceRoot":"","sources":["../../../src/components/BKJDollarTextInput/BKJDollarTextInput.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { screen } from '@testing-library/react';
|
|
3
|
+
import { renderAndCheckA11y, renderWithTheme } from '../../test-utils/index.js';
|
|
4
|
+
import { BKJDollarTextInput } from './BKJDollarTextInput.js';
|
|
5
|
+
const noop = () => { };
|
|
6
|
+
describe('BKJDollarTextInput', () => {
|
|
7
|
+
describe('Accessibility', () => {
|
|
8
|
+
it('default (labelled) has no a11y violations', async () => {
|
|
9
|
+
const { axeResults } = await renderAndCheckA11y(_jsx(BKJDollarTextInput, { label: "Set Rate", name: "rate", onChange: noop, value: "" }));
|
|
10
|
+
expect(axeResults).toHaveNoViolations();
|
|
11
|
+
});
|
|
12
|
+
it('required has no a11y violations', async () => {
|
|
13
|
+
const { axeResults } = await renderAndCheckA11y(_jsx(BKJDollarTextInput, { label: "Set Rate", name: "rate", required: true, onChange: noop, value: "" }));
|
|
14
|
+
expect(axeResults).toHaveNoViolations();
|
|
15
|
+
});
|
|
16
|
+
it('with string error has no a11y violations', async () => {
|
|
17
|
+
const { axeResults } = await renderAndCheckA11y(_jsx(BKJDollarTextInput, { label: "Set Rate", name: "rate", error: "Amount must be greater than $0", onChange: noop, value: "" }));
|
|
18
|
+
expect(axeResults).toHaveNoViolations();
|
|
19
|
+
});
|
|
20
|
+
it('with array of errors has no a11y violations', async () => {
|
|
21
|
+
const { axeResults } = await renderAndCheckA11y(_jsx(BKJDollarTextInput, { label: "Set Rate", name: "rate", error: ['Amount must be greater than $0', 'Amount must be less than $1000'], onChange: noop, value: "" }));
|
|
22
|
+
expect(axeResults).toHaveNoViolations();
|
|
23
|
+
});
|
|
24
|
+
it('disabled has no a11y violations', async () => {
|
|
25
|
+
const { axeResults } = await renderAndCheckA11y(_jsx(BKJDollarTextInput, { label: "Set Rate", name: "rate", disabled: true, onChange: noop, value: "" }));
|
|
26
|
+
expect(axeResults).toHaveNoViolations();
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
describe('ARIA attributes', () => {
|
|
30
|
+
it('label htmlFor matches input id', () => {
|
|
31
|
+
renderWithTheme(_jsx(BKJDollarTextInput, { label: "Set Rate", name: "rate", onChange: noop, value: "" }));
|
|
32
|
+
const input = screen.getByRole('textbox', { name: 'Set Rate' });
|
|
33
|
+
const inputId = input.getAttribute('id');
|
|
34
|
+
expect(inputId).toBeTruthy();
|
|
35
|
+
const label = document.querySelector(`label[for="${inputId}"]`);
|
|
36
|
+
expect(label).not.toBeNull();
|
|
37
|
+
expect(label?.textContent).toContain('Set Rate');
|
|
38
|
+
});
|
|
39
|
+
it('input has aria-invalid="true" when error is a string', () => {
|
|
40
|
+
renderWithTheme(_jsx(BKJDollarTextInput, { label: "Set Rate", name: "rate", error: "Amount must be greater than $0", onChange: noop, value: "" }));
|
|
41
|
+
const input = screen.getByRole('textbox', { name: 'Set Rate' });
|
|
42
|
+
expect(input).toHaveAttribute('aria-invalid', 'true');
|
|
43
|
+
});
|
|
44
|
+
it('input has no aria-invalid when error is falsy', () => {
|
|
45
|
+
renderWithTheme(_jsx(BKJDollarTextInput, { label: "Set Rate", name: "rate", onChange: noop, value: "" }));
|
|
46
|
+
const input = screen.getByRole('textbox', { name: 'Set Rate' });
|
|
47
|
+
expect(input).not.toHaveAttribute('aria-invalid');
|
|
48
|
+
});
|
|
49
|
+
it('aria-describedby references a single error element when error is a string', () => {
|
|
50
|
+
const { container } = renderWithTheme(_jsx(BKJDollarTextInput, { label: "Set Rate", name: "rate", error: "Amount must be greater than $0", onChange: noop, value: "" }));
|
|
51
|
+
const input = screen.getByRole('textbox', { name: 'Set Rate' });
|
|
52
|
+
const describedBy = input.getAttribute('aria-describedby');
|
|
53
|
+
expect(describedBy).toBeTruthy();
|
|
54
|
+
const errorIds = (describedBy ?? '').split(/\s+/).filter(Boolean);
|
|
55
|
+
expect(errorIds.length).toBeGreaterThan(0);
|
|
56
|
+
for (const id of errorIds) {
|
|
57
|
+
const matches = container.querySelectorAll(`[id="${id}"]`);
|
|
58
|
+
expect(matches.length).toBe(1);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
it('renders a single error element when error is an array of strings', () => {
|
|
62
|
+
const { container } = renderWithTheme(_jsx(BKJDollarTextInput, { label: "Set Rate", name: "rate", error: ['Amount must be greater than $0', 'Amount must be less than $1000'], onChange: noop, value: "" }));
|
|
63
|
+
const input = screen.getByRole('textbox', { name: 'Set Rate' });
|
|
64
|
+
expect(input).toHaveAttribute('aria-invalid', 'true');
|
|
65
|
+
const describedBy = input.getAttribute('aria-describedby');
|
|
66
|
+
expect(describedBy).toBeTruthy();
|
|
67
|
+
const errorIds = (describedBy ?? '').split(/\s+/).filter(Boolean);
|
|
68
|
+
expect(errorIds.length).toBeGreaterThan(0);
|
|
69
|
+
for (const id of errorIds) {
|
|
70
|
+
const matches = container.querySelectorAll(`[id="${id}"]`);
|
|
71
|
+
expect(matches.length).toBe(1);
|
|
72
|
+
expect(matches[0].textContent?.trim().length ?? 0).toBeGreaterThan(0);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
it('input has aria-required="true" when required is true', () => {
|
|
76
|
+
renderWithTheme(_jsx(BKJDollarTextInput, { label: "Set Rate", name: "rate", required: true, onChange: noop, value: "" }));
|
|
77
|
+
// The visible "*" is part of the accessible name when required, so use a regex match.
|
|
78
|
+
const input = screen.getByRole('textbox', { name: /Set Rate/ });
|
|
79
|
+
expect(input).toHaveAttribute('aria-required', 'true');
|
|
80
|
+
});
|
|
81
|
+
it('input has no aria-required when required is absent', () => {
|
|
82
|
+
renderWithTheme(_jsx(BKJDollarTextInput, { label: "Set Rate", name: "rate", onChange: noop, value: "" }));
|
|
83
|
+
const input = screen.getByRole('textbox', { name: 'Set Rate' });
|
|
84
|
+
expect(input).not.toHaveAttribute('aria-required');
|
|
85
|
+
});
|
|
86
|
+
it('input has inputmode="decimal"', () => {
|
|
87
|
+
renderWithTheme(_jsx(BKJDollarTextInput, { label: "Set Rate", name: "rate", onChange: noop, value: "" }));
|
|
88
|
+
const input = screen.getByRole('textbox', { name: 'Set Rate' });
|
|
89
|
+
expect(input).toHaveAttribute('inputmode', 'decimal');
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
//# sourceMappingURL=BKJDollarTextInput.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BKJDollarTextInput.test.js","sourceRoot":"","sources":["../../../src/components/BKJDollarTextInput/BKJDollarTextInput.test.tsx"],"names":[],"mappings":"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"}
|