@bookjane2/bookjane-design-library 9.0.37 → 9.0.38
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/BKJToastMessage/BKJToastMessage.js +2 -2
- package/lib/components/BKJToastMessage/BKJToastMessage.js.map +1 -1
- package/lib/components/BKJToastMessage/BKJToastMessage.stories.d.ts +2 -0
- package/lib/components/BKJToastMessage/BKJToastMessage.stories.d.ts.map +1 -1
- package/lib/components/BKJToastMessage/BKJToastMessage.stories.js +30 -0
- package/lib/components/BKJToastMessage/BKJToastMessage.stories.js.map +1 -1
- package/lib/components/BKJToastMessage/BKJToastMessage.test.d.ts +2 -0
- package/lib/components/BKJToastMessage/BKJToastMessage.test.d.ts.map +1 -0
- package/lib/components/BKJToastMessage/BKJToastMessage.test.js +54 -0
- package/lib/components/BKJToastMessage/BKJToastMessage.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -4,9 +4,9 @@ import { getIcon } from './BKJToastMessage.utils.js';
|
|
|
4
4
|
export function BKJToastMessage({ message, variant }) {
|
|
5
5
|
const Icon = getIcon(variant);
|
|
6
6
|
if (typeof message === 'string') {
|
|
7
|
-
return (_jsxs(ToastWrapper, { children: [_jsx(ToastIconWrapper, { variant: variant, children: _jsx(Icon, {}) }), _jsx(BKJToastTextWrapper, { children: _jsx(BKJToastText, { children: message }) })] }));
|
|
7
|
+
return (_jsxs(ToastWrapper, { children: [_jsx(ToastIconWrapper, { variant: variant, "aria-hidden": "true", "data-testid": "bkj-toast-icon", children: _jsx(Icon, {}) }), _jsx(BKJToastTextWrapper, { children: _jsx(BKJToastText, { children: message }) })] }));
|
|
8
8
|
}
|
|
9
9
|
const Component = message;
|
|
10
|
-
return (_jsxs(ToastWrapper, { children: [_jsx(ToastIconWrapper, { variant: variant, children: _jsx(Icon, {}) }), _jsx(BKJToastTextWrapper, { children: _jsx(BKJToastText, { children: _jsx(Component, {}) }) })] }));
|
|
10
|
+
return (_jsxs(ToastWrapper, { children: [_jsx(ToastIconWrapper, { variant: variant, "aria-hidden": "true", "data-testid": "bkj-toast-icon", children: _jsx(Icon, {}) }), _jsx(BKJToastTextWrapper, { children: _jsx(BKJToastText, { children: _jsx(Component, {}) }) })] }));
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=BKJToastMessage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BKJToastMessage.js","sourceRoot":"","sources":["../../../src/components/BKJToastMessage/BKJToastMessage.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGlD,MAAM,UAAU,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAoB;IACpE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,CACL,MAAC,YAAY,eACX,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"BKJToastMessage.js","sourceRoot":"","sources":["../../../src/components/BKJToastMessage/BKJToastMessage.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGlD,MAAM,UAAU,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,EAAoB;IACpE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,CACL,MAAC,YAAY,eACX,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,iBAAc,MAAM,iBAAa,gBAAgB,YACjF,KAAC,IAAI,KAAG,GACS,EACnB,KAAC,mBAAmB,cAClB,KAAC,YAAY,cAAE,OAAO,GAAgB,GAClB,IACT,CAChB,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAa,CAAC;IAChC,OAAO,CACL,MAAC,YAAY,eACX,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,iBAAc,MAAM,iBAAa,gBAAgB,YACjF,KAAC,IAAI,KAAG,GACS,EACnB,KAAC,mBAAmB,cAClB,KAAC,YAAY,cACX,KAAC,SAAS,KAAG,GACA,GACK,IACT,CAChB,CAAC;AACJ,CAAC"}
|
|
@@ -23,5 +23,7 @@ declare const setup: {
|
|
|
23
23
|
};
|
|
24
24
|
};
|
|
25
25
|
export declare const Default: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, IBKJToastMessage>;
|
|
26
|
+
export declare const Warning: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, IBKJToastMessage>;
|
|
27
|
+
export declare const Error: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, IBKJToastMessage>;
|
|
26
28
|
export default setup;
|
|
27
29
|
//# sourceMappingURL=BKJToastMessage.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BKJToastMessage.stories.d.ts","sourceRoot":"","sources":["../../../src/components/BKJToastMessage/BKJToastMessage.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;CAqBV,CAAC;AAIF,eAAO,MAAM,OAAO,4GAAoB,CAAC;AAOzC,eAAe,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"BKJToastMessage.stories.d.ts","sourceRoot":"","sources":["../../../src/components/BKJToastMessage/BKJToastMessage.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;CAqBV,CAAC;AAIF,eAAO,MAAM,OAAO,4GAAoB,CAAC;AAOzC,eAAO,MAAM,OAAO,4GAAoB,CAAC;AAiBzC,eAAO,MAAM,KAAK,4GAAoB,CAAC;AAiBvC,eAAe,KAAK,CAAC"}
|
|
@@ -29,5 +29,35 @@ Default.args = {
|
|
|
29
29
|
message: 'shift saved successfully.',
|
|
30
30
|
variant: 'Success',
|
|
31
31
|
};
|
|
32
|
+
export const Warning = Template.bind({});
|
|
33
|
+
Warning.args = {
|
|
34
|
+
message: 'Heads up — your changes are unsaved.',
|
|
35
|
+
variant: 'Warning',
|
|
36
|
+
};
|
|
37
|
+
Warning.parameters = {
|
|
38
|
+
docs: {
|
|
39
|
+
description: {
|
|
40
|
+
story: 'The variant icon (warning triangle) is decorative and hidden from assistive technology via `aria-hidden`. ' +
|
|
41
|
+
"The variant's meaning MUST be carried by the consumer-supplied `message` text — for example: " +
|
|
42
|
+
'"Warning: Unsaved changes." or "Heads up — your changes are unsaved." ' +
|
|
43
|
+
'Do NOT rely on the icon shape or background color alone to convey the variant meaning to a screen-reader user.',
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
export const Error = Template.bind({});
|
|
48
|
+
Error.args = {
|
|
49
|
+
message: 'Error: shift could not be saved.',
|
|
50
|
+
variant: 'Error',
|
|
51
|
+
};
|
|
52
|
+
Error.parameters = {
|
|
53
|
+
docs: {
|
|
54
|
+
description: {
|
|
55
|
+
story: 'The variant icon (red disc with exclamation mark) is decorative and hidden from assistive technology via `aria-hidden`. ' +
|
|
56
|
+
"The variant's meaning MUST be carried by the consumer-supplied `message` text — for example: " +
|
|
57
|
+
'"Error: shift could not be saved." ' +
|
|
58
|
+
'Do NOT rely on the icon shape or background color alone to convey the variant meaning to a screen-reader user.',
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
};
|
|
32
62
|
export default setup;
|
|
33
63
|
//# sourceMappingURL=BKJToastMessage.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BKJToastMessage.stories.js","sourceRoot":"","sources":["../../../src/components/BKJToastMessage/BKJToastMessage.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,KAAK,GAAG;IACZ,KAAK,EAAE,wBAAwB;IAC/B,SAAS,EAAE,eAAe;IAC1B,QAAQ,EAAE;QACR,QAAQ,EAAE;YACR,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;aACb;SACF;QACD,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;aACb;SACF;QACD,OAAO,EAAE;YACP,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;YACxC,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;aACf;SACF;KACF;CACF,CAAC;AAEF,MAAM,QAAQ,GAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,eAAe,OAAK,IAAI,GAAI,CAAC;AAEpF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,IAAI,GAAG;IACb,sCAAsC;IACtC,OAAO,EAAE,2BAA2B;IACpC,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"BKJToastMessage.stories.js","sourceRoot":"","sources":["../../../src/components/BKJToastMessage/BKJToastMessage.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,KAAK,GAAG;IACZ,KAAK,EAAE,wBAAwB;IAC/B,SAAS,EAAE,eAAe;IAC1B,QAAQ,EAAE;QACR,QAAQ,EAAE;YACR,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;aACb;SACF;QACD,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;aACb;SACF;QACD,OAAO,EAAE;YACP,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;YACxC,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;aACf;SACF;KACF;CACF,CAAC;AAEF,MAAM,QAAQ,GAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,eAAe,OAAK,IAAI,GAAI,CAAC;AAEpF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,IAAI,GAAG;IACb,sCAAsC;IACtC,OAAO,EAAE,2BAA2B;IACpC,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,IAAI,GAAG;IACb,OAAO,EAAE,sCAAsC;IAC/C,OAAO,EAAE,SAAS;CACnB,CAAC;AACF,OAAO,CAAC,UAAU,GAAG;IACnB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,KAAK,EACH,4GAA4G;gBAC5G,+FAA+F;gBAC/F,wEAAwE;gBACxE,gHAAgH;SACnH;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK,CAAC,IAAI,GAAG;IACX,OAAO,EAAE,kCAAkC;IAC3C,OAAO,EAAE,OAAO;CACjB,CAAC;AACF,KAAK,CAAC,UAAU,GAAG;IACjB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,KAAK,EACH,0HAA0H;gBAC1H,+FAA+F;gBAC/F,qCAAqC;gBACrC,gHAAgH;SACnH;KACF;CACF,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BKJToastMessage.test.d.ts","sourceRoot":"","sources":["../../../src/components/BKJToastMessage/BKJToastMessage.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,54 @@
|
|
|
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 { BKJToastMessage } from './BKJToastMessage.js';
|
|
5
|
+
describe('BKJToastMessage / Accessibility', () => {
|
|
6
|
+
it('has no accessibility violations on the Success variant render', async () => {
|
|
7
|
+
const { axeResults } = await renderAndCheckA11y(_jsx(BKJToastMessage, { variant: "Success", message: "Shift saved successfully." }));
|
|
8
|
+
expect(axeResults).toHaveNoViolations();
|
|
9
|
+
});
|
|
10
|
+
it('has no accessibility violations on the Warning variant render', async () => {
|
|
11
|
+
const { axeResults } = await renderAndCheckA11y(_jsx(BKJToastMessage, { variant: "Warning", message: "Heads up \u2014 your changes are unsaved." }));
|
|
12
|
+
expect(axeResults).toHaveNoViolations();
|
|
13
|
+
});
|
|
14
|
+
it('has no accessibility violations on the Error variant render', async () => {
|
|
15
|
+
const { axeResults } = await renderAndCheckA11y(_jsx(BKJToastMessage, { variant: "Error", message: "Error: shift could not be saved." }));
|
|
16
|
+
expect(axeResults).toHaveNoViolations();
|
|
17
|
+
});
|
|
18
|
+
it('has no accessibility violations on the custom-FC message branch', async () => {
|
|
19
|
+
const CustomMessage = () => _jsx("span", { children: "Shift saved." });
|
|
20
|
+
const { axeResults } = await renderAndCheckA11y(_jsx(BKJToastMessage, { variant: "Success", message: CustomMessage }));
|
|
21
|
+
expect(axeResults).toHaveNoViolations();
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
describe('BKJToastMessage / Decorative icon hiding', () => {
|
|
25
|
+
it.each(['Success', 'Warning', 'Error'])('icon-wrapper carries aria-hidden="true" on the %s variant', (variant) => {
|
|
26
|
+
renderWithTheme(_jsx(BKJToastMessage, { variant: variant, message: "Shift saved successfully." }));
|
|
27
|
+
const iconWrapper = screen.getByTestId('bkj-toast-icon');
|
|
28
|
+
expect(iconWrapper).toHaveAttribute('aria-hidden', 'true');
|
|
29
|
+
});
|
|
30
|
+
it('message text is NOT inside an aria-hidden subtree (string-message branch)', () => {
|
|
31
|
+
renderWithTheme(_jsx(BKJToastMessage, { variant: "Success", message: "Shift saved successfully." }));
|
|
32
|
+
const messageEl = screen.getByText('Shift saved successfully.');
|
|
33
|
+
let cursor = messageEl;
|
|
34
|
+
while (cursor && cursor !== document.body) {
|
|
35
|
+
expect(cursor).not.toHaveAttribute('aria-hidden', 'true');
|
|
36
|
+
cursor = cursor.parentElement;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
it('message text renders queryable output AND icon stays hidden on the custom-FC branch', () => {
|
|
40
|
+
const CustomMessage = () => _jsx("span", { children: "Shift saved." });
|
|
41
|
+
renderWithTheme(_jsx(BKJToastMessage, { variant: "Success", message: CustomMessage }));
|
|
42
|
+
expect(screen.getByText('Shift saved.')).toBeInTheDocument();
|
|
43
|
+
expect(screen.getByTestId('bkj-toast-icon')).toHaveAttribute('aria-hidden', 'true');
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe('BKJToastMessage / Live-region boundary (defensive)', () => {
|
|
47
|
+
it.each(['Success', 'Warning', 'Error'])('no element on the %s variant carries role="alert", role="status", or aria-live', (variant) => {
|
|
48
|
+
const { container } = renderWithTheme(_jsx(BKJToastMessage, { variant: variant, message: "Shift saved successfully." }));
|
|
49
|
+
expect(screen.queryAllByRole('alert')).toHaveLength(0);
|
|
50
|
+
expect(screen.queryAllByRole('status')).toHaveLength(0);
|
|
51
|
+
expect(container.querySelectorAll('[aria-live]')).toHaveLength(0);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=BKJToastMessage.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BKJToastMessage.test.js","sourceRoot":"","sources":["../../../src/components/BKJToastMessage/BKJToastMessage.test.tsx"],"names":[],"mappings":"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"}
|