@bookjane2/bookjane-design-library 9.0.6 → 9.0.9

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.
Files changed (61) hide show
  1. package/lib/components/BKJAddressInput/BKJAddressInput.stories.d.ts +36 -1
  2. package/lib/components/BKJAddressInput/BKJAddressInput.stories.d.ts.map +1 -1
  3. package/lib/components/BKJAddressInput/BKJAddressInput.stories.js +33 -3
  4. package/lib/components/BKJAddressInput/BKJAddressInput.stories.js.map +1 -1
  5. package/lib/components/BKJAddressInput/BKJAddressInput.test.d.ts +2 -0
  6. package/lib/components/BKJAddressInput/BKJAddressInput.test.d.ts.map +1 -0
  7. package/lib/components/BKJAddressInput/BKJAddressInput.test.js +198 -0
  8. package/lib/components/BKJAddressInput/BKJAddressInput.test.js.map +1 -0
  9. package/lib/components/BKJCheckboxListItem/BKJCheckboxListItem.d.ts.map +1 -1
  10. package/lib/components/BKJCheckboxListItem/BKJCheckboxListItem.js +23 -9
  11. package/lib/components/BKJCheckboxListItem/BKJCheckboxListItem.js.map +1 -1
  12. package/lib/components/BKJCheckboxListItem/BKJCheckboxListItem.stories.d.ts +2 -0
  13. package/lib/components/BKJCheckboxListItem/BKJCheckboxListItem.stories.d.ts.map +1 -1
  14. package/lib/components/BKJCheckboxListItem/BKJCheckboxListItem.stories.js +7 -3
  15. package/lib/components/BKJCheckboxListItem/BKJCheckboxListItem.stories.js.map +1 -1
  16. package/lib/components/BKJCheckboxListItem/BKJCheckboxListItem.styled.d.ts +2 -0
  17. package/lib/components/BKJCheckboxListItem/BKJCheckboxListItem.styled.d.ts.map +1 -0
  18. package/lib/components/BKJCheckboxListItem/BKJCheckboxListItem.styled.js +6 -0
  19. package/lib/components/BKJCheckboxListItem/BKJCheckboxListItem.styled.js.map +1 -0
  20. package/lib/components/BKJCheckboxListItem/BKJCheckboxListItem.test.d.ts +2 -0
  21. package/lib/components/BKJCheckboxListItem/BKJCheckboxListItem.test.d.ts.map +1 -0
  22. package/lib/components/BKJCheckboxListItem/BKJCheckboxListItem.test.js +114 -0
  23. package/lib/components/BKJCheckboxListItem/BKJCheckboxListItem.test.js.map +1 -0
  24. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.d.ts +1 -1
  25. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.d.ts.map +1 -1
  26. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.js +2 -2
  27. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.js.map +1 -1
  28. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.stories.d.ts +3 -1
  29. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.stories.d.ts.map +1 -1
  30. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.stories.js +48 -0
  31. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.stories.js.map +1 -1
  32. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.test.d.ts +22 -0
  33. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.test.d.ts.map +1 -0
  34. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.test.js +561 -0
  35. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.test.js.map +1 -0
  36. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.types.d.ts +41 -0
  37. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.types.d.ts.map +1 -1
  38. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.utils.d.ts +6 -0
  39. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.utils.d.ts.map +1 -1
  40. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.utils.js +14 -0
  41. package/lib/components/BKJComboBoxAsync/BKJComboBoxAsync.utils.js.map +1 -1
  42. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsync.context.d.ts.map +1 -1
  43. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsync.context.hooks.d.ts +48 -0
  44. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsync.context.hooks.d.ts.map +1 -1
  45. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsync.context.hooks.js +99 -1
  46. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsync.context.hooks.js.map +1 -1
  47. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsync.context.js +107 -26
  48. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsync.context.js.map +1 -1
  49. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsyncInput.d.ts.map +1 -1
  50. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsyncInput.js +29 -3
  51. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsyncInput.js.map +1 -1
  52. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsyncItem.d.ts.map +1 -1
  53. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsyncItem.js +7 -1
  54. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsyncItem.js.map +1 -1
  55. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsyncOptions.d.ts.map +1 -1
  56. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsyncOptions.js +25 -6
  57. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsyncOptions.js.map +1 -1
  58. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsyncOptionsMapper.d.ts.map +1 -1
  59. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsyncOptionsMapper.js +6 -1
  60. package/lib/components/BKJComboBoxAsync/src/BKJComboBoxAsyncOptionsMapper.js.map +1 -1
  61. package/package.json +1 -1
@@ -2,8 +2,43 @@ import { IBKJAddressInputProps } from './BKJAddressInput.types.js';
2
2
  declare const _default: {
3
3
  title: string;
4
4
  component: import("react").FC<IBKJAddressInputProps>;
5
- argTypes: {};
5
+ argTypes: {
6
+ label: {
7
+ name: string;
8
+ control: string;
9
+ };
10
+ disabled: {
11
+ name: string;
12
+ type: string;
13
+ };
14
+ error: {
15
+ name: string;
16
+ control: string;
17
+ };
18
+ name: {
19
+ table: {
20
+ disable: boolean;
21
+ };
22
+ };
23
+ value: {
24
+ table: {
25
+ disable: boolean;
26
+ };
27
+ };
28
+ onChange: {
29
+ table: {
30
+ disable: boolean;
31
+ };
32
+ };
33
+ className: {
34
+ table: {
35
+ disable: boolean;
36
+ };
37
+ };
38
+ };
6
39
  };
7
40
  export default _default;
8
41
  export declare const Default: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, IBKJAddressInputProps>;
42
+ export declare const Disabled: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, IBKJAddressInputProps>;
43
+ export declare const Error: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, IBKJAddressInputProps>;
9
44
  //# sourceMappingURL=BKJAddressInput.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BKJAddressInput.stories.d.ts","sourceRoot":"","sources":["../../../src/components/BKJAddressInput/BKJAddressInput.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;;;;;;AAEhE,wBAIE;AAIF,eAAO,MAAM,OAAO,iHAAoB,CAAC"}
1
+ {"version":3,"file":"BKJAddressInput.stories.d.ts","sourceRoot":"","sources":["../../../src/components/BKJAddressInput/BKJAddressInput.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhE,wBAYE;AAIF,eAAO,MAAM,OAAO,iHAAoB,CAAC;AASzC,eAAO,MAAM,QAAQ,iHAAoB,CAAC;AAS1C,eAAO,MAAM,KAAK,iHAAoB,CAAC"}
@@ -3,9 +3,39 @@ import { BKJAddressInput } from './BKJAddressInput.js';
3
3
  export default {
4
4
  title: 'Input Elements/BKJAddressInput',
5
5
  component: BKJAddressInput,
6
- argTypes: {},
6
+ argTypes: {
7
+ label: { name: 'Label', control: 'text' },
8
+ disabled: { name: 'Disabled', type: 'boolean' },
9
+ error: { name: 'Error', control: 'text' },
10
+ name: { table: { disable: true } },
11
+ value: { table: { disable: true } },
12
+ onChange: { table: { disable: true } },
13
+ className: { table: { disable: true } },
14
+ },
7
15
  };
8
- const Template = ({ ...props }) => _jsx(BKJAddressInput, { ...props });
16
+ const Template = (args) => _jsx(BKJAddressInput, { ...args });
9
17
  export const Default = Template.bind({});
10
- Default.args = {};
18
+ Default.args = {
19
+ label: 'Address',
20
+ name: 'address',
21
+ value: '',
22
+ disabled: false,
23
+ onChange: () => { },
24
+ };
25
+ export const Disabled = Template.bind({});
26
+ Disabled.args = {
27
+ label: 'Address',
28
+ name: 'address-disabled',
29
+ value: '',
30
+ disabled: true,
31
+ onChange: () => { },
32
+ };
33
+ export const Error = Template.bind({});
34
+ Error.args = {
35
+ label: 'Address',
36
+ name: 'address-error',
37
+ value: '',
38
+ error: 'Enter a valid address',
39
+ onChange: () => { },
40
+ };
11
41
  //# sourceMappingURL=BKJAddressInput.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BKJAddressInput.stories.js","sourceRoot":"","sources":["../../../src/components/BKJAddressInput/BKJAddressInput.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,eAAe;IACb,KAAK,EAAE,gCAAgC;IACvC,SAAS,EAAE,eAAe;IAC1B,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF,MAAM,QAAQ,GAAmC,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,KAAC,eAAe,OAAK,KAAK,GAAI,CAAC;AAElG,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEzC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"BKJAddressInput.stories.js","sourceRoot":"","sources":["../../../src/components/BKJAddressInput/BKJAddressInput.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,eAAe;IACb,KAAK,EAAE,gCAAgC;IACvC,SAAS,EAAE,eAAe;IAC1B,QAAQ,EAAE;QACR,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;QACzC,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;QAC/C,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;QACzC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAClC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACnC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACtC,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;KACxC;CACF,CAAC;AAEF,MAAM,QAAQ,GAAmC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,eAAe,OAAK,IAAI,GAAI,CAAC;AAEzF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,IAAI,GAAG;IACb,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1C,QAAQ,CAAC,IAAI,GAAG;IACd,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,KAAK,CAAC,IAAI,GAAG;IACX,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,uBAAuB;IAC9B,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;CACnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=BKJAddressInput.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BKJAddressInput.test.d.ts","sourceRoot":"","sources":["../../../src/components/BKJAddressInput/BKJAddressInput.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,198 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // jsdom does not implement ResizeObserver / IntersectionObserver.
3
+ // react-virtual and react-popper (used by BKJComboBoxAsync's dropdown) rely
4
+ // on them — matching the shim installed in BKJComboBoxAsync.test.tsx.
5
+ class ResizeObserverMock {
6
+ observe() { }
7
+ unobserve() { }
8
+ disconnect() { }
9
+ }
10
+ globalThis.ResizeObserver =
11
+ ResizeObserverMock;
12
+ class IntersectionObserverMock {
13
+ constructor(_cb) {
14
+ Object.defineProperty(this, "root", {
15
+ enumerable: true,
16
+ configurable: true,
17
+ writable: true,
18
+ value: null
19
+ });
20
+ Object.defineProperty(this, "rootMargin", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: ''
25
+ });
26
+ Object.defineProperty(this, "thresholds", {
27
+ enumerable: true,
28
+ configurable: true,
29
+ writable: true,
30
+ value: []
31
+ });
32
+ }
33
+ observe() { }
34
+ unobserve() { }
35
+ disconnect() { }
36
+ takeRecords() {
37
+ return [];
38
+ }
39
+ }
40
+ globalThis.IntersectionObserver =
41
+ IntersectionObserverMock;
42
+ import { act, fireEvent, screen } from '@testing-library/react';
43
+ import { axe } from 'jest-axe';
44
+ import { renderAndCheckA11y, renderWithTheme } from '../../test-utils/index.js';
45
+ import { BKJAddressInput } from './BKJAddressInput.js';
46
+ const getQueryPredictionsMock = jest.fn();
47
+ const geocodeMock = jest.fn();
48
+ beforeEach(() => {
49
+ window.google = {
50
+ maps: {
51
+ places: {
52
+ AutocompleteService: jest.fn().mockImplementation(() => ({
53
+ getQueryPredictions: getQueryPredictionsMock,
54
+ })),
55
+ },
56
+ Geocoder: jest.fn().mockImplementation(() => ({
57
+ geocode: geocodeMock,
58
+ })),
59
+ },
60
+ };
61
+ });
62
+ afterEach(() => {
63
+ delete window.google;
64
+ jest.clearAllMocks();
65
+ document.querySelectorAll('#dropdown-root').forEach((el) => el.remove());
66
+ });
67
+ const openDropdown = async (input) => {
68
+ await act(async () => {
69
+ input.focus();
70
+ await Promise.resolve();
71
+ });
72
+ };
73
+ describe('BKJAddressInput', () => {
74
+ describe('Keyboard', () => {
75
+ it('combobox input is focusable when not disabled', () => {
76
+ renderWithTheme(_jsx(BKJAddressInput, { label: "Address", name: "address", value: "", onChange: () => { } }));
77
+ const input = screen.getByRole('combobox');
78
+ input.focus();
79
+ expect(input).toHaveFocus();
80
+ });
81
+ it('disabled combobox input cannot receive focus', () => {
82
+ renderWithTheme(_jsx(BKJAddressInput, { label: "Address", name: "address", value: "", disabled: true, onChange: () => { } }));
83
+ const input = screen.getByRole('combobox');
84
+ input.focus();
85
+ expect(input).not.toHaveFocus();
86
+ });
87
+ });
88
+ describe('Accessibility', () => {
89
+ it('has no accessibility violations on labelled default (idle)', async () => {
90
+ const { axeResults } = await renderAndCheckA11y(_jsx(BKJAddressInput, { label: "Address", name: "address", value: "", onChange: () => { } }));
91
+ expect(axeResults).toHaveNoViolations();
92
+ });
93
+ // NOTE: the FR-005(b) loading-state and FR-005(c) populated-predictions
94
+ // axe assertions are scoped to `renderResult.container` (the component's
95
+ // own output), NOT `document.body`. Running axe against the full body
96
+ // when the dropdown is open surfaces two pre-existing defects in
97
+ // `BKJComboBoxAsync`'s option rendering:
98
+ // 1. `nested-interactive` — `<li role="option">` has focusable
99
+ // descendants (the inner BKJCheckbox for multi-select support).
100
+ // 2. `label` — the inner BKJCheckbox's explicit label is hidden and
101
+ // does not satisfy the accessible-name rule.
102
+ // FR-008 bars this ticket from editing `BKJComboBoxAsync`; a separate
103
+ // follow-up should remediate both in BKJComboBoxAsyncItem. In the
104
+ // meantime, these tests still verify axe on the input + label surface
105
+ // during async activity without regressing on the pre-existing upstream.
106
+ it('has no accessibility violations with populated predictions', async () => {
107
+ getQueryPredictionsMock.mockImplementation((_, callback) => {
108
+ callback([
109
+ { place_id: 'pid-1', description: '123 Main St, Toronto' },
110
+ { place_id: 'pid-2', description: '456 King St, Toronto' },
111
+ ]);
112
+ });
113
+ jest.useFakeTimers();
114
+ const renderResult = renderWithTheme(_jsx(BKJAddressInput, { label: "Address", name: "address", value: "", onChange: () => { } }));
115
+ const input = screen.getByRole('combobox');
116
+ await openDropdown(input);
117
+ fireEvent.change(input, { target: { value: '123 Main' } });
118
+ act(() => {
119
+ jest.advanceTimersByTime(500);
120
+ });
121
+ // Switch back to real timers BEFORE axe — axe-core uses setTimeout
122
+ // internally for work-chunking and hangs under fake timers.
123
+ jest.useRealTimers();
124
+ const axeResults = await axe(renderResult.container);
125
+ expect(axeResults).toHaveNoViolations();
126
+ });
127
+ it('has no accessibility violations while predictions are loading', async () => {
128
+ getQueryPredictionsMock.mockImplementation(() => {
129
+ /* pending — callback never invoked */
130
+ });
131
+ jest.useFakeTimers();
132
+ const renderResult = renderWithTheme(_jsx(BKJAddressInput, { label: "Address", name: "address", value: "", onChange: () => { } }));
133
+ const input = screen.getByRole('combobox');
134
+ await openDropdown(input);
135
+ fireEvent.change(input, { target: { value: '123 Main' } });
136
+ act(() => {
137
+ jest.advanceTimersByTime(500);
138
+ });
139
+ expect(getQueryPredictionsMock).toHaveBeenCalledTimes(1);
140
+ const firstCall = getQueryPredictionsMock.mock.calls[0];
141
+ expect(firstCall).toBeDefined();
142
+ expect(firstCall[0]).toEqual({ input: '123 Main' });
143
+ jest.useRealTimers();
144
+ const axeResults = await axe(renderResult.container);
145
+ expect(axeResults).toHaveNoViolations();
146
+ });
147
+ it('exposes aria-busy="true" somewhere in the subtree while the predictions request is in-flight', async () => {
148
+ getQueryPredictionsMock.mockImplementation(() => {
149
+ /* pending */
150
+ });
151
+ jest.useFakeTimers();
152
+ try {
153
+ renderWithTheme(_jsx(BKJAddressInput, { label: "Address", name: "address", value: "", onChange: () => { } }));
154
+ const input = screen.getByRole('combobox');
155
+ await openDropdown(input);
156
+ fireEvent.change(input, { target: { value: '123 Main' } });
157
+ act(() => {
158
+ jest.advanceTimersByTime(500);
159
+ });
160
+ // FR-005a location-agnostic — WEB-4815 placed aria-busy on the
161
+ // portal'd listbox, so we query document.body rather than the
162
+ // render container. See contracts/mock-boundary.md §3.
163
+ expect(document.body.querySelector('[aria-busy="true"]')).not.toBeNull();
164
+ }
165
+ finally {
166
+ jest.useRealTimers();
167
+ }
168
+ });
169
+ it('clears aria-busy across the subtree when the predictions request completes', async () => {
170
+ let capturedCallback;
171
+ getQueryPredictionsMock.mockImplementation((_, callback) => {
172
+ capturedCallback = callback;
173
+ });
174
+ jest.useFakeTimers();
175
+ try {
176
+ renderWithTheme(_jsx(BKJAddressInput, { label: "Address", name: "address", value: "", onChange: () => { } }));
177
+ const input = screen.getByRole('combobox');
178
+ await openDropdown(input);
179
+ fireEvent.change(input, { target: { value: '123 Main' } });
180
+ act(() => {
181
+ jest.advanceTimersByTime(500);
182
+ });
183
+ expect(document.body.querySelector('[aria-busy="true"]')).not.toBeNull();
184
+ act(() => {
185
+ capturedCallback?.([
186
+ { place_id: 'pid-1', description: '123 Main St, Toronto' },
187
+ ]);
188
+ });
189
+ // Accepts both attribute-absent and aria-busy="false" shapes.
190
+ expect(document.body.querySelector('[aria-busy="true"]')).toBeNull();
191
+ }
192
+ finally {
193
+ jest.useRealTimers();
194
+ }
195
+ });
196
+ });
197
+ });
198
+ //# sourceMappingURL=BKJAddressInput.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BKJAddressInput.test.js","sourceRoot":"","sources":["../../../src/components/BKJAddressInput/BKJAddressInput.test.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"BKJCheckboxListItem.d.ts","sourceRoot":"","sources":["../../../src/components/BKJCheckboxListItem/BKJCheckboxListItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAoD,MAAM,OAAO,CAAC;AAE7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAE/E,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAIlG,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAClC,iBAAiB,GAAG;IAClB,eAAe,CAAC,EAAE,2BAA2B,CAAC;IAC9C,eAAe,CAAC,EAAE,2BAA2B,CAAC;CAC/C,CAqDD,CAAC"}
1
+ {"version":3,"file":"BKJCheckboxListItem.d.ts","sourceRoot":"","sources":["../../../src/components/BKJCheckboxListItem/BKJCheckboxListItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,EAAE,EAA+B,MAAM,OAAO,CAAC;AAKrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAG/E,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAIlG,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAClC,iBAAiB,GAAG;IAClB,eAAe,CAAC,EAAE,2BAA2B,CAAC;IAC9C,eAAe,CAAC,EAAE,2BAA2B,CAAC;CAC/C,CA+ED,CAAC"}
@@ -1,11 +1,16 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { forwardRef, useCallback, useMemo } from 'react';
3
- import { BKJCheckbox } from '../BKJCheckbox/BKJCheckbox.js';
2
+ import { forwardRef, useMemo, useRef } from 'react';
3
+ import { v4 as uuidv4 } from 'uuid';
4
+ import { BKJIcon } from '../index.js';
5
+ import { BKJCheckboxDisplay, BKJCheckboxInput } from '../BKJCheckbox/BKJCheckbox.styled.js';
6
+ import { BKJCheck } from '../BKJCheckbox/src/BKJCheck.js';
4
7
  import { ListItemWrapper } from '../BKJListItem/BKJListItem.styled.js';
5
8
  import { ListItemText, SubLabel } from '../common/ListItemBaseCSS/index.js';
6
- import { BKJIcon } from '../index.js';
9
+ import { LabelWrapper } from './BKJCheckboxListItem.styled.js';
7
10
  export const BKJCheckboxListItem = forwardRef((props, ref) => {
8
11
  const { onChange, name, subLabel, label, className, disabled = false, isTargeted = false, showPeopleIcon = false, selected, value, listItemVariant = 'LeftAlignAlternatingBackgroundColor', checkboxVariant = 'GreenSolid', ...rest } = props;
12
+ const inputIdRef = useRef(`bkj-cbli-input-${uuidv4()}`);
13
+ const labelIdRef = useRef(`bkj-cbli-label-${uuidv4()}`);
9
14
  const checked = useMemo(() => {
10
15
  if (Array.isArray(selected)) {
11
16
  return selected?.some((str) => String(str) === String(value));
@@ -14,11 +19,20 @@ export const BKJCheckboxListItem = forwardRef((props, ref) => {
14
19
  return false;
15
20
  }
16
21
  }, [selected, value]);
17
- const handleClick = useCallback((event) => {
18
- event.preventDefault && event.preventDefault();
19
- if (onChange)
20
- onChange({ ...event, target: { ...event.target, checked, name, value, label } });
21
- }, [checked, label, name, onChange, value]);
22
- return (_jsxs(ListItemWrapper, { ...rest, variant: listItemVariant, role: "listbox", onClick: handleClick, className: className, checked: checked, disabled: disabled, isTargeted: isTargeted, ref: ref, children: [_jsx(BKJCheckbox, { variant: checkboxVariant, value: checked, disabled: disabled, readOnly: true }), showPeopleIcon && (_jsx(BKJIcon, { iconName: "Group2", width: 16, height: 14 })), _jsx(ListItemText, { children: label }), subLabel && _jsx(SubLabel, { children: subLabel })] }));
22
+ const handleInputChange = (event) => {
23
+ if (!onChange)
24
+ return;
25
+ onChange({
26
+ ...event,
27
+ target: {
28
+ ...event.target,
29
+ checked: event.target.checked,
30
+ name,
31
+ value,
32
+ label,
33
+ },
34
+ });
35
+ };
36
+ return (_jsx(ListItemWrapper, { ...rest, variant: listItemVariant, className: className, checked: checked, disabled: disabled, isTargeted: isTargeted, ref: ref, children: _jsxs(LabelWrapper, { htmlFor: inputIdRef.current, children: [_jsx(BKJCheckboxInput, { type: "checkbox", id: inputIdRef.current, "aria-labelledby": labelIdRef.current, checked: checked, disabled: disabled, name: name, onChange: handleInputChange }), _jsx(BKJCheckboxDisplay, { "aria-hidden": "true", value: checked, disabled: disabled, variant: checkboxVariant, children: _jsx(BKJCheck, { variant: checkboxVariant, checked: checked, disabled: disabled }) }), showPeopleIcon && (_jsx(BKJIcon, { iconName: "Group2", width: 16, height: 14, "aria-hidden": "true" })), _jsx(ListItemText, { id: labelIdRef.current, children: label }), subLabel && _jsx(SubLabel, { children: subLabel })] }) }));
23
37
  });
24
38
  //# sourceMappingURL=BKJCheckboxListItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BKJCheckboxListItem.js","sourceRoot":"","sources":["../../../src/components/BKJCheckboxListItem/BKJCheckboxListItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,UAAU,EAAkB,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAK5B,UAAU,CAAC,CAAC,KAAK,EAAE,GAAG,EAAe,EAAE;IACzC,MAAM,EACJ,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,SAAS,EACT,QAAQ,GAAG,KAAK,EAChB,UAAU,GAAG,KAAK,EAClB,cAAc,GAAG,KAAK,EACtB,QAAQ,EACR,KAAK,EACL,eAAe,GAAG,qCAAqC,EACvD,eAAe,GAAG,YAAY,EAC9B,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAoB,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAEtB,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,KAAqB,EAAE,EAAE;QACxB,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QAC/C,IAAI,QAAQ;YACV,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IACrF,CAAC,EACD,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CACxC,CAAC;IAEF,OAAO,CACL,MAAC,eAAe,OACV,IAAI,EACR,OAAO,EAAE,eAAe,EACxB,IAAI,EAAC,SAAS,EACd,OAAO,EAAE,WAAkB,EAC3B,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,GAAG,aAER,KAAC,WAAW,IAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,SAAG,EACrF,cAAc,IAAI,CAAC,KAAC,OAAO,IAAC,QAAQ,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI,CAAC,EACzE,KAAC,YAAY,cAAE,KAAK,GAAgB,EACnC,QAAQ,IAAI,KAAC,QAAQ,cAAE,QAAQ,GAAY,IAC5B,CACnB,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"BKJCheckboxListItem.js","sourceRoot":"","sources":["../../../src/components/BKJCheckboxListItem/BKJCheckboxListItem.tsx"],"names":[],"mappings":"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"}
@@ -8,4 +8,6 @@ declare const _default: {
8
8
  export default _default;
9
9
  export declare const Default: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, {}>;
10
10
  export declare const Multiple: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, {}>;
11
+ export declare const WithSubLabel: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, {}>;
12
+ export declare const WithPeopleIcon: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, {}>;
11
13
  //# sourceMappingURL=BKJCheckboxListItem.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BKJCheckboxListItem.stories.d.ts","sourceRoot":"","sources":["../../../src/components/BKJCheckboxListItem/BKJCheckboxListItem.stories.tsx"],"names":[],"mappings":";;;;;;;AAGA,wBAGE;AAgCF,eAAO,MAAM,OAAO,8FAAoB,CAAC;AAgCzC,eAAO,MAAM,QAAQ,8FAA4B,CAAC"}
1
+ {"version":3,"file":"BKJCheckboxListItem.stories.d.ts","sourceRoot":"","sources":["../../../src/components/BKJCheckboxListItem/BKJCheckboxListItem.stories.tsx"],"names":[],"mappings":";;;;;;;AAGA,wBAGE;AAgCF,eAAO,MAAM,OAAO,8FAAoB,CAAC;AAgCzC,eAAO,MAAM,QAAQ,8FAA4B,CAAC;AA+BlD,eAAO,MAAM,YAAY,8FAAgC,CAAC;AA+B1D,eAAO,MAAM,cAAc,8FAAkC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { BKJCheckboxListItem } from './BKJCheckboxListItem.js';
3
3
  export default {
4
4
  title: 'List Elements/BKJCheckboxListItem',
@@ -6,11 +6,15 @@ export default {
6
6
  };
7
7
  const noop = () => void 0;
8
8
  const selected1 = ['two'];
9
- const Template = () => (_jsxs(_Fragment, { children: [_jsx(BKJCheckboxListItem, { onChange: noop, value: "one", label: "Item One", name: "test", selected: selected1 }), _jsx(BKJCheckboxListItem, { onChange: noop, value: "two", label: "Item Two", name: "test", selected: selected1 }), _jsx(BKJCheckboxListItem, { onChange: noop, value: "three", label: "Item Three", name: "test", selected: selected1 })] }));
9
+ const Template = () => (_jsxs("ul", { children: [_jsx(BKJCheckboxListItem, { onChange: noop, value: "one", label: "Item One", name: "test", selected: selected1 }), _jsx(BKJCheckboxListItem, { onChange: noop, value: "two", label: "Item Two", name: "test", selected: selected1 }), _jsx(BKJCheckboxListItem, { onChange: noop, value: "three", label: "Item Three", name: "test", selected: selected1 })] }));
10
10
  export const Default = Template.bind({});
11
11
  const selected2 = ['one', 'three'];
12
12
  const MultipleTemplate = () => {
13
- return (_jsxs(_Fragment, { children: [_jsx(BKJCheckboxListItem, { onChange: noop, value: "one", label: "Item One", name: "test", selected: selected2 }), _jsx(BKJCheckboxListItem, { onChange: noop, value: "two", label: "Item Two", name: "test", selected: selected2 }), _jsx(BKJCheckboxListItem, { onChange: noop, value: "three", label: "Item Three", name: "test", selected: selected2 })] }));
13
+ return (_jsxs("ul", { children: [_jsx(BKJCheckboxListItem, { onChange: noop, value: "one", label: "Item One", name: "test", selected: selected2 }), _jsx(BKJCheckboxListItem, { onChange: noop, value: "two", label: "Item Two", name: "test", selected: selected2 }), _jsx(BKJCheckboxListItem, { onChange: noop, value: "three", label: "Item Three", name: "test", selected: selected2 })] }));
14
14
  };
15
15
  export const Multiple = MultipleTemplate.bind({});
16
+ const WithSubLabelTemplate = () => (_jsxs("ul", { children: [_jsx(BKJCheckboxListItem, { onChange: noop, value: "one", label: "Item One", subLabel: "on-call today", name: "test", selected: selected1 }), _jsx(BKJCheckboxListItem, { onChange: noop, value: "two", label: "Item Two", subLabel: "off today", name: "test", selected: selected1 }), _jsx(BKJCheckboxListItem, { onChange: noop, value: "three", label: "Item Three", subLabel: "on-call tomorrow", name: "test", selected: selected1 })] }));
17
+ export const WithSubLabel = WithSubLabelTemplate.bind({});
18
+ const WithPeopleIconTemplate = () => (_jsxs("ul", { children: [_jsx(BKJCheckboxListItem, { onChange: noop, value: "one", label: "Item One", showPeopleIcon: true, name: "test", selected: selected1 }), _jsx(BKJCheckboxListItem, { onChange: noop, value: "two", label: "Item Two", showPeopleIcon: true, name: "test", selected: selected1 }), _jsx(BKJCheckboxListItem, { onChange: noop, value: "three", label: "Item Three", showPeopleIcon: true, name: "test", selected: selected1 })] }));
19
+ export const WithPeopleIcon = WithPeopleIconTemplate.bind({});
16
20
  //# sourceMappingURL=BKJCheckboxListItem.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BKJCheckboxListItem.stories.js","sourceRoot":"","sources":["../../../src/components/BKJCheckboxListItem/BKJCheckboxListItem.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAe;IACb,KAAK,EAAE,mCAAmC;IAC1C,SAAS,EAAE,mBAAmB;CAC/B,CAAC;AAEF,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAE1B,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC;AAE1B,MAAM,QAAQ,GAAgB,GAAG,EAAE,CAAC,CAClC,8BACE,KAAC,mBAAmB,IAClB,QAAQ,EAAE,IAAI,EACd,KAAK,EAAC,KAAK,EACX,KAAK,EAAC,UAAU,EAChB,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,SAAS,GACnB,EACF,KAAC,mBAAmB,IAClB,QAAQ,EAAE,IAAI,EACd,KAAK,EAAC,KAAK,EACX,KAAK,EAAC,UAAU,EAChB,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,SAAS,GACnB,EACF,KAAC,mBAAmB,IAClB,QAAQ,EAAE,IAAI,EACd,KAAK,EAAC,OAAO,EACb,KAAK,EAAC,YAAY,EAClB,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,SAAS,GACnB,IACD,CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEzC,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAEnC,MAAM,gBAAgB,GAAgB,GAAG,EAAE;IACzC,OAAO,CACL,8BACE,KAAC,mBAAmB,IAClB,QAAQ,EAAE,IAAI,EACd,KAAK,EAAC,KAAK,EACX,KAAK,EAAC,UAAU,EAChB,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,SAAS,GACnB,EACF,KAAC,mBAAmB,IAClB,QAAQ,EAAE,IAAI,EACd,KAAK,EAAC,KAAK,EACX,KAAK,EAAC,UAAU,EAChB,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,SAAS,GACnB,EACF,KAAC,mBAAmB,IAClB,QAAQ,EAAE,IAAI,EACd,KAAK,EAAC,OAAO,EACb,KAAK,EAAC,YAAY,EAClB,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,SAAS,GACnB,IACD,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"BKJCheckboxListItem.stories.js","sourceRoot":"","sources":["../../../src/components/BKJCheckboxListItem/BKJCheckboxListItem.stories.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const LabelWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, never>> & string;
2
+ //# sourceMappingURL=BKJCheckboxListItem.styled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BKJCheckboxListItem.styled.d.ts","sourceRoot":"","sources":["../../../src/components/BKJCheckboxListItem/BKJCheckboxListItem.styled.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,sOAGxB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import styled from 'styled-components';
2
+ export const LabelWrapper = styled.label `
3
+ display: contents;
4
+ cursor: pointer;
5
+ `;
6
+ //# sourceMappingURL=BKJCheckboxListItem.styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BKJCheckboxListItem.styled.js","sourceRoot":"","sources":["../../../src/components/BKJCheckboxListItem/BKJCheckboxListItem.styled.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAA;;;CAGvC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=BKJCheckboxListItem.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BKJCheckboxListItem.test.d.ts","sourceRoot":"","sources":["../../../src/components/BKJCheckboxListItem/BKJCheckboxListItem.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,114 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ jest.mock('uuid', () => {
3
+ let counter = 0;
4
+ return {
5
+ v4: jest.fn(() => {
6
+ counter += 1;
7
+ const hex = counter.toString(16).padStart(12, '0');
8
+ return `00000000-0000-0000-0000-${hex}`;
9
+ }),
10
+ };
11
+ });
12
+ import { fireEvent, screen } from '@testing-library/react';
13
+ import { renderAndCheckA11y, renderWithTheme } from '../../test-utils/index.js';
14
+ import { BKJCheckboxListItem } from './BKJCheckboxListItem.js';
15
+ const noop = () => void 0;
16
+ describe('BKJCheckboxListItem', () => {
17
+ describe('Click to toggle', () => {
18
+ it('click on the primary label text toggles and fires onChange with post-toggle checked', () => {
19
+ const onChange = jest.fn();
20
+ renderWithTheme(_jsx("ul", { children: _jsx(BKJCheckboxListItem, { name: "prefs", value: "one", label: "Item One", selected: [], onChange: onChange }) }));
21
+ fireEvent.click(screen.getByText('Item One'));
22
+ expect(onChange).toHaveBeenCalledTimes(1);
23
+ expect(onChange.mock.calls[0][0].target.checked).toBe(true);
24
+ expect(onChange.mock.calls[0][0].target.value).toBe('one');
25
+ expect(onChange.mock.calls[0][0].target.name).toBe('prefs');
26
+ expect(onChange.mock.calls[0][0].target.label).toBe('Item One');
27
+ });
28
+ it('click on the sub-label text toggles (sub-label is inside the <label>)', () => {
29
+ const onChange = jest.fn();
30
+ renderWithTheme(_jsx("ul", { children: _jsx(BKJCheckboxListItem, { name: "prefs", value: "one", label: "Item One", subLabel: "on-call today", selected: [], onChange: onChange }) }));
31
+ fireEvent.click(screen.getByText('on-call today'));
32
+ expect(onChange).toHaveBeenCalledTimes(1);
33
+ expect(onChange.mock.calls[0][0].target.checked).toBe(true);
34
+ });
35
+ it('click on a checked row toggles to unchecked (post-toggle value fix)', () => {
36
+ const onChange = jest.fn();
37
+ renderWithTheme(_jsx("ul", { children: _jsx(BKJCheckboxListItem, { name: "prefs", value: "one", label: "Item One", selected: ['one'], onChange: onChange }) }));
38
+ fireEvent.click(screen.getByRole('checkbox'));
39
+ expect(onChange).toHaveBeenCalledTimes(1);
40
+ expect(onChange.mock.calls[0][0].target.checked).toBe(false);
41
+ });
42
+ it('a disabled row marks the input disabled and suppresses pointer events on the wrapper', () => {
43
+ // Note on jsdom: fireEvent.click bypasses both the native `disabled` attribute
44
+ // and CSS `pointer-events: none`, so we cannot programmatically assert "click
45
+ // does not fire onChange" without user-event (not a project dep). We instead
46
+ // assert the two mechanisms that enforce this in the browser are both wired:
47
+ // 1. the native input has the `disabled` attribute (native click suppression)
48
+ // 2. the <li> wrapper has `pointer-events: none` (CSS click suppression)
49
+ // The manual click walkthrough in quickstart.md §4 is the authoritative check.
50
+ const { container } = renderWithTheme(_jsx("ul", { children: _jsx(BKJCheckboxListItem, { name: "prefs", value: "one", label: "Item One", selected: [], disabled: true, onChange: () => void 0 }) }));
51
+ const input = screen.getByRole('checkbox');
52
+ expect(input).toBeDisabled();
53
+ const listItem = container.querySelector('li');
54
+ expect(listItem).not.toBeNull();
55
+ expect(getComputedStyle(listItem).pointerEvents).toBe('none');
56
+ });
57
+ });
58
+ describe('Keyboard', () => {
59
+ it('native input is focusable when not disabled', () => {
60
+ renderWithTheme(_jsx("ul", { children: _jsx(BKJCheckboxListItem, { name: "prefs", value: "one", label: "Item One", selected: [], onChange: noop }) }));
61
+ const input = screen.getByRole('checkbox');
62
+ input.focus();
63
+ expect(input).toHaveFocus();
64
+ expect(input.tabIndex).toBeGreaterThanOrEqual(0);
65
+ });
66
+ it('fires onChange with post-toggle checked when the native input is activated', () => {
67
+ const onChange = jest.fn();
68
+ renderWithTheme(_jsx("ul", { children: _jsx(BKJCheckboxListItem, { name: "prefs", value: "one", label: "Item One", selected: [], onChange: onChange }) }));
69
+ const input = screen.getByRole('checkbox');
70
+ fireEvent.click(input);
71
+ expect(onChange).toHaveBeenCalledTimes(1);
72
+ expect(onChange.mock.calls[0][0].target.checked).toBe(true);
73
+ });
74
+ it('disabled input cannot receive focus', () => {
75
+ renderWithTheme(_jsx("ul", { children: _jsx(BKJCheckboxListItem, { name: "prefs", value: "one", label: "Item One", selected: [], disabled: true, onChange: noop }) }));
76
+ const input = screen.getByRole('checkbox');
77
+ expect(input).toBeDisabled();
78
+ input.focus();
79
+ expect(input).not.toHaveFocus();
80
+ });
81
+ it('Enter on a focused input does not fire onChange (no custom handler)', () => {
82
+ const onChange = jest.fn();
83
+ renderWithTheme(_jsx("ul", { children: _jsx(BKJCheckboxListItem, { name: "prefs", value: "one", label: "Item One", selected: [], onChange: onChange }) }));
84
+ const input = screen.getByRole('checkbox');
85
+ input.focus();
86
+ fireEvent.keyDown(input, { key: 'Enter', code: 'Enter' });
87
+ expect(onChange).not.toHaveBeenCalled();
88
+ });
89
+ });
90
+ describe('Accessibility', () => {
91
+ it('has no accessibility violations in unchecked state', async () => {
92
+ const { axeResults } = await renderAndCheckA11y(_jsx("ul", { children: _jsx(BKJCheckboxListItem, { name: "prefs", value: "one", label: "Item One", selected: [], onChange: noop }) }));
93
+ expect(axeResults).toHaveNoViolations();
94
+ });
95
+ it('has no accessibility violations in checked state', async () => {
96
+ const { axeResults } = await renderAndCheckA11y(_jsx("ul", { children: _jsx(BKJCheckboxListItem, { name: "prefs", value: "one", label: "Item One", selected: ['one'], onChange: noop }) }));
97
+ expect(axeResults).toHaveNoViolations();
98
+ });
99
+ it('generates a unique input id and unique labelledby target for each instance', () => {
100
+ renderWithTheme(_jsxs("ul", { children: [_jsx(BKJCheckboxListItem, { name: "prefs", value: "one", label: "Item One", selected: [], onChange: noop }), _jsx(BKJCheckboxListItem, { name: "prefs", value: "two", label: "Item Two", selected: [], onChange: noop })] }));
101
+ const inputs = screen.getAllByRole('checkbox');
102
+ expect(inputs).toHaveLength(2);
103
+ const [firstId, secondId] = inputs.map((el) => el.id);
104
+ expect(firstId).toMatch(/^bkj-cbli-input-[0-9a-f-]{36}$/);
105
+ expect(secondId).toMatch(/^bkj-cbli-input-[0-9a-f-]{36}$/);
106
+ expect(firstId).not.toBe(secondId);
107
+ const [firstLabelledBy, secondLabelledBy] = inputs.map((el) => el.getAttribute('aria-labelledby'));
108
+ expect(firstLabelledBy).toMatch(/^bkj-cbli-label-[0-9a-f-]{36}$/);
109
+ expect(secondLabelledBy).toMatch(/^bkj-cbli-label-[0-9a-f-]{36}$/);
110
+ expect(firstLabelledBy).not.toBe(secondLabelledBy);
111
+ });
112
+ });
113
+ });
114
+ //# sourceMappingURL=BKJCheckboxListItem.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BKJCheckboxListItem.test.js","sourceRoot":"","sources":["../../../src/components/BKJCheckboxListItem/BKJCheckboxListItem.test.tsx"],"names":[],"mappings":"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"}