@bookjane2/bookjane-design-library 9.0.35 → 9.0.37

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.
@@ -1 +1 @@
1
- {"version":3,"file":"BKJMenu.d.ts","sourceRoot":"","sources":["../../../src/components/BKJMenu/BKJMenu.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,aAAa,CAyBrC,CAAC"}
1
+ {"version":3,"file":"BKJMenu.d.ts","sourceRoot":"","sources":["../../../src/components/BKJMenu/BKJMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,EAAE,EAA2B,MAAM,OAAO,CAAC;AAGhE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,aAAa,CAkDrC,CAAC"}
@@ -1,20 +1,36 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import React, { forwardRef } from 'react';
3
- import { Fragment } from 'react';
2
+ import { forwardRef, Fragment } from 'react';
3
+ import { useId } from '@react-aria/utils';
4
4
  import { MenuWrapper } from './BKJMenu.styled.js';
5
- export const BKJMenu = forwardRef(({ isMenuOpen, closeMenu, children, className, ...props }, ref) => {
6
- const buildChildren = React.Children.map(children, (child) => {
7
- if (React.isValidElement(child)) {
8
- const props = {
9
- onClick: () => {
10
- child?.props?.onClick && child.props.onClick();
11
- closeMenu();
12
- },
13
- };
14
- return React.cloneElement(child, props);
5
+ const NAV_KEYS = new Set(['ArrowDown', 'ArrowUp', 'Home', 'End']);
6
+ export const BKJMenu = forwardRef(({ isMenuOpen, closeMenu, children, onKeyDown, ...rest }, ref) => {
7
+ const generatedId = useId();
8
+ const handleKeyDown = (event) => {
9
+ onKeyDown?.(event);
10
+ if (event.key === 'Enter' || event.key === ' ') {
11
+ closeMenu();
12
+ return;
15
13
  }
16
- return null;
17
- });
18
- return (_jsx(Fragment, { children: isMenuOpen && children && (_jsx(MenuWrapper, { role: "menu", "aria-label": "Menu", ref: ref, className: className, ...props, children: buildChildren })) }));
14
+ if (event.defaultPrevented || !NAV_KEYS.has(event.key))
15
+ return;
16
+ event.preventDefault();
17
+ const wrapper = event.currentTarget;
18
+ const target = event.target;
19
+ let next = null;
20
+ if (event.key === 'ArrowDown') {
21
+ next = target.nextElementSibling ?? wrapper.firstElementChild;
22
+ }
23
+ else if (event.key === 'ArrowUp') {
24
+ next = target.previousElementSibling ?? wrapper.lastElementChild;
25
+ }
26
+ else if (event.key === 'Home') {
27
+ next = wrapper.firstElementChild;
28
+ }
29
+ else if (event.key === 'End') {
30
+ next = wrapper.lastElementChild;
31
+ }
32
+ next?.focus();
33
+ };
34
+ return (_jsx(Fragment, { children: isMenuOpen && children && (_jsx(MenuWrapper, { role: "menu", "aria-label": "Menu", id: generatedId, ref: ref, onClick: closeMenu, onKeyDown: handleKeyDown, ...rest, children: children })) }));
19
35
  });
20
36
  //# sourceMappingURL=BKJMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BKJMenu.js","sourceRoot":"","sources":["../../../src/components/BKJMenu/BKJMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAM,QAAQ,EAAa,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,CAAC,MAAM,OAAO,GAAsB,UAAU,CAClD,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAe,EAAE;IAC7E,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAgB,EAAE,EAAE;QACtE,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,KAAK,GAAwB;gBACjC,OAAO,EAAE,GAAG,EAAE;oBACZ,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;oBAC/C,SAAS,EAAE,CAAC;gBACd,CAAC;aACF,CAAC;YACF,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,KAAC,QAAQ,cACN,UAAU,IAAI,QAAQ,IAAI,CACzB,KAAC,WAAW,IAAC,IAAI,EAAC,MAAM,gBAAY,MAAM,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,KAAM,KAAK,YACjF,aAAa,GACF,CACf,GACQ,CACZ,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"BKJMenu.js","sourceRoot":"","sources":["../../../src/components/BKJMenu/BKJMenu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAM,QAAQ,EAAiB,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,OAAO,GAAsB,UAAU,CAClD,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAe,EAAE;IAC5E,MAAM,WAAW,GAAG,KAAK,EAAE,CAAC;IAE5B,MAAM,aAAa,GAAG,CAAC,KAAoC,EAAE,EAAE;QAC7D,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC;QAEnB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YAC/C,SAAS,EAAE,CAAC;YACZ,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO;QAC/D,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC;QACpC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAC3C,IAAI,IAAI,GAAmB,IAAI,CAAC;QAEhC,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YAC9B,IAAI,GAAG,MAAM,CAAC,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,CAAC;QAChE,CAAC;aAAM,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,GAAG,MAAM,CAAC,sBAAsB,IAAI,OAAO,CAAC,gBAAgB,CAAC;QACnE,CAAC;aAAM,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;YAChC,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnC,CAAC;aAAM,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YAC/B,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC;QAClC,CAAC;QAEA,IAA2B,EAAE,KAAK,EAAE,CAAC;IACxC,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,QAAQ,cACN,UAAU,IAAI,QAAQ,IAAI,CACzB,KAAC,WAAW,IACV,IAAI,EAAC,MAAM,gBACA,MAAM,EACjB,EAAE,EAAE,WAAW,EACf,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,aAAa,KACpB,IAAI,YAEP,QAAQ,GACG,CACf,GACQ,CACZ,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=BKJMenu.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BKJMenu.test.d.ts","sourceRoot":"","sources":["../../../src/components/BKJMenu/BKJMenu.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,180 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { screen } from '@testing-library/react';
3
+ import userEvent from '@testing-library/user-event';
4
+ import { renderAndCheckA11y, renderWithTheme } from '../../test-utils/index.js';
5
+ import { BKJMenu } from './BKJMenu.js';
6
+ import { BKJMenuItem } from '../BKJMenuItem/BKJMenuItem.js';
7
+ const noop = () => { };
8
+ const ThreeItems = () => (_jsxs(BKJMenu, { isMenuOpen: true, closeMenu: noop, children: [_jsx(BKJMenuItem, { children: "One" }), _jsx(BKJMenuItem, { children: "Two" }), _jsx(BKJMenuItem, { children: "Three" })] }));
9
+ describe('BKJMenu', () => {
10
+ describe('Accessibility', () => {
11
+ it('open menu with 3 menuitems is axe-clean', async () => {
12
+ const { axeResults } = await renderAndCheckA11y(_jsx(ThreeItems, {}));
13
+ expect(axeResults).toHaveNoViolations();
14
+ });
15
+ it('closed menu does not render wrapper (axe-clean)', async () => {
16
+ const { axeResults } = await renderAndCheckA11y(_jsx(BKJMenu, { isMenuOpen: false, closeMenu: noop, children: _jsx(BKJMenuItem, { children: "Hidden" }) }));
17
+ expect(axeResults).toHaveNoViolations();
18
+ expect(screen.queryByRole('menu')).toBeNull();
19
+ });
20
+ it('consumer-supplied aria-labelledby is axe-clean', async () => {
21
+ const { axeResults } = await renderAndCheckA11y(_jsxs(_Fragment, { children: [_jsx("h2", { id: "lbl", children: "Heading" }), _jsx(BKJMenu, { "aria-labelledby": "lbl", isMenuOpen: true, closeMenu: noop, children: _jsx(BKJMenuItem, { children: "One" }) })] }));
22
+ expect(axeResults).toHaveNoViolations();
23
+ });
24
+ });
25
+ describe('Container ARIA', () => {
26
+ it('default render carries role="menu" and aria-label="Menu"', () => {
27
+ renderWithTheme(_jsx(ThreeItems, {}));
28
+ const wrapper = screen.getByRole('menu');
29
+ expect(wrapper).toHaveAttribute('aria-label', 'Menu');
30
+ expect(wrapper).not.toHaveAttribute('aria-labelledby');
31
+ });
32
+ it('consumer-supplied role="menubar" overrides default', () => {
33
+ renderWithTheme(_jsx(BKJMenu, { role: "menubar", isMenuOpen: true, closeMenu: noop, children: _jsx(BKJMenuItem, { children: "One" }) }));
34
+ expect(screen.getByRole('menubar')).toBeTruthy();
35
+ });
36
+ it('consumer-supplied aria-labelledby is forwarded to the wrapper', () => {
37
+ renderWithTheme(_jsxs(_Fragment, { children: [_jsx("h2", { id: "x", children: "Heading" }), _jsx(BKJMenu, { "aria-labelledby": "x", isMenuOpen: true, closeMenu: noop, children: _jsx(BKJMenuItem, { children: "One" }) })] }));
38
+ expect(screen.getByRole('menu')).toHaveAttribute('aria-labelledby', 'x');
39
+ });
40
+ it('consumer-supplied aria-label overrides the default', () => {
41
+ renderWithTheme(_jsx(BKJMenu, { "aria-label": "Account actions", isMenuOpen: true, closeMenu: noop, children: _jsx(BKJMenuItem, { children: "One" }) }));
42
+ expect(screen.getByRole('menu', { name: 'Account actions' })).toHaveAttribute('aria-label', 'Account actions');
43
+ });
44
+ it('default render emits non-empty auto-generated id', () => {
45
+ renderWithTheme(_jsx(ThreeItems, {}));
46
+ expect(screen.getByRole('menu').id.length).toBeGreaterThan(0);
47
+ });
48
+ it('two instances produce different auto-ids', () => {
49
+ renderWithTheme(_jsxs(_Fragment, { children: [_jsx(BKJMenu, { isMenuOpen: true, closeMenu: noop, children: _jsx(BKJMenuItem, { children: "A" }) }), _jsx(BKJMenu, { isMenuOpen: true, closeMenu: noop, children: _jsx(BKJMenuItem, { children: "B" }) })] }));
50
+ const menus = screen.getAllByRole('menu');
51
+ expect(menus[0].id).not.toEqual(menus[1].id);
52
+ });
53
+ it('consumer-supplied id overrides auto-generated', () => {
54
+ renderWithTheme(_jsx(BKJMenu, { id: "custom-id", isMenuOpen: true, closeMenu: noop, children: _jsx(BKJMenuItem, { children: "One" }) }));
55
+ expect(screen.getByRole('menu').id).toBe('custom-id');
56
+ });
57
+ });
58
+ describe('Click behaviour', () => {
59
+ it('clicking a menuitem calls closeMenu', async () => {
60
+ const user = userEvent.setup();
61
+ const closeMenu = jest.fn();
62
+ renderWithTheme(_jsx(BKJMenu, { isMenuOpen: true, closeMenu: closeMenu, children: _jsx(BKJMenuItem, { children: "One" }) }));
63
+ await user.click(screen.getByRole('menuitem'));
64
+ expect(closeMenu).toHaveBeenCalledTimes(1);
65
+ });
66
+ it('clicking a menuitem also calls the consumer onClick', async () => {
67
+ const user = userEvent.setup();
68
+ const closeMenu = jest.fn();
69
+ const onClick = jest.fn();
70
+ renderWithTheme(_jsx(BKJMenu, { isMenuOpen: true, closeMenu: closeMenu, children: _jsx(BKJMenuItem, { onClick: onClick, children: "One" }) }));
71
+ await user.click(screen.getByRole('menuitem'));
72
+ expect(onClick).toHaveBeenCalledTimes(1);
73
+ expect(closeMenu).toHaveBeenCalledTimes(1);
74
+ });
75
+ it('Enter on a focused menuitem calls closeMenu', async () => {
76
+ const user = userEvent.setup();
77
+ const closeMenu = jest.fn();
78
+ renderWithTheme(_jsx(BKJMenu, { isMenuOpen: true, closeMenu: closeMenu, children: _jsx(BKJMenuItem, { children: "One" }) }));
79
+ screen.getByRole('menuitem').focus();
80
+ await user.keyboard('{Enter}');
81
+ expect(closeMenu).toHaveBeenCalledTimes(1);
82
+ });
83
+ it('Space on a focused menuitem calls closeMenu', async () => {
84
+ const user = userEvent.setup();
85
+ const closeMenu = jest.fn();
86
+ renderWithTheme(_jsx(BKJMenu, { isMenuOpen: true, closeMenu: closeMenu, children: _jsx(BKJMenuItem, { children: "One" }) }));
87
+ screen.getByRole('menuitem').focus();
88
+ await user.keyboard(' ');
89
+ expect(closeMenu).toHaveBeenCalledTimes(1);
90
+ });
91
+ });
92
+ describe('Keyboard navigation', () => {
93
+ it('ArrowDown moves focus to next item', async () => {
94
+ const user = userEvent.setup();
95
+ renderWithTheme(_jsx(ThreeItems, {}));
96
+ const items = screen.getAllByRole('menuitem');
97
+ items[0].focus();
98
+ await user.keyboard('{ArrowDown}');
99
+ expect(items[1]).toHaveFocus();
100
+ });
101
+ it('ArrowDown wraps from last to first', async () => {
102
+ const user = userEvent.setup();
103
+ renderWithTheme(_jsx(ThreeItems, {}));
104
+ const items = screen.getAllByRole('menuitem');
105
+ items[2].focus();
106
+ await user.keyboard('{ArrowDown}');
107
+ expect(items[0]).toHaveFocus();
108
+ });
109
+ it('ArrowUp wraps from first to last', async () => {
110
+ const user = userEvent.setup();
111
+ renderWithTheme(_jsx(ThreeItems, {}));
112
+ const items = screen.getAllByRole('menuitem');
113
+ items[0].focus();
114
+ await user.keyboard('{ArrowUp}');
115
+ expect(items[2]).toHaveFocus();
116
+ });
117
+ it('Home jumps to first item', async () => {
118
+ const user = userEvent.setup();
119
+ renderWithTheme(_jsx(ThreeItems, {}));
120
+ const items = screen.getAllByRole('menuitem');
121
+ items[2].focus();
122
+ await user.keyboard('{Home}');
123
+ expect(items[0]).toHaveFocus();
124
+ });
125
+ it('End jumps to last item', async () => {
126
+ const user = userEvent.setup();
127
+ renderWithTheme(_jsx(ThreeItems, {}));
128
+ const items = screen.getAllByRole('menuitem');
129
+ items[0].focus();
130
+ await user.keyboard('{End}');
131
+ expect(items[2]).toHaveFocus();
132
+ });
133
+ it('Arrow / Home / End call preventDefault', async () => {
134
+ const user = userEvent.setup();
135
+ const captured = {};
136
+ const onKeyDown = (e) => {
137
+ e.persist();
138
+ captured[e.key] = e;
139
+ };
140
+ renderWithTheme(_jsxs(BKJMenu, { isMenuOpen: true, closeMenu: noop, onKeyDown: onKeyDown, children: [_jsx(BKJMenuItem, { children: "One" }), _jsx(BKJMenuItem, { children: "Two" })] }));
141
+ const items = screen.getAllByRole('menuitem');
142
+ items[0].focus();
143
+ await user.keyboard('{ArrowDown}');
144
+ await user.keyboard('{ArrowUp}');
145
+ await user.keyboard('{Home}');
146
+ await user.keyboard('{End}');
147
+ expect(captured['ArrowDown']?.defaultPrevented).toBe(true);
148
+ expect(captured['ArrowUp']?.defaultPrevented).toBe(true);
149
+ expect(captured['Home']?.defaultPrevented).toBe(true);
150
+ expect(captured['End']?.defaultPrevented).toBe(true);
151
+ });
152
+ it('Escape and character keys do not call preventDefault at wrapper level', async () => {
153
+ const user = userEvent.setup();
154
+ const captured = {};
155
+ const onKeyDown = (e) => {
156
+ e.persist();
157
+ captured[e.key] = e;
158
+ };
159
+ renderWithTheme(_jsx(BKJMenu, { isMenuOpen: true, closeMenu: noop, onKeyDown: onKeyDown, children: _jsx(BKJMenuItem, { children: "One" }) }));
160
+ screen.getByRole('menuitem').focus();
161
+ await user.keyboard('{Escape}');
162
+ await user.keyboard('a');
163
+ expect(captured['Escape']?.defaultPrevented).toBe(false);
164
+ expect(captured['a']?.defaultPrevented).toBe(false);
165
+ });
166
+ it('consumer onKeyDown can short-circuit built-in nav', async () => {
167
+ const user = userEvent.setup();
168
+ const onKeyDown = (e) => {
169
+ if (e.key === 'ArrowDown')
170
+ e.preventDefault();
171
+ };
172
+ renderWithTheme(_jsxs(BKJMenu, { isMenuOpen: true, closeMenu: noop, onKeyDown: onKeyDown, children: [_jsx(BKJMenuItem, { children: "One" }), _jsx(BKJMenuItem, { children: "Two" })] }));
173
+ const items = screen.getAllByRole('menuitem');
174
+ items[0].focus();
175
+ await user.keyboard('{ArrowDown}');
176
+ expect(items[0]).toHaveFocus();
177
+ });
178
+ });
179
+ });
180
+ //# sourceMappingURL=BKJMenu.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BKJMenu.test.js","sourceRoot":"","sources":["../../../src/components/BKJMenu/BKJMenu.test.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- export type BKJTableMainHeaderProps = {
2
+ export type BKJTableMainHeaderProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> & {
3
3
  title: string;
4
4
  };
5
5
  export declare const BKJTableMainHeader: React.FC<BKJTableMainHeaderProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"BKJTableMainHeader.d.ts","sourceRoot":"","sources":["../../../src/components/BKJTableMainHeader/BKJTableMainHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAIhE,CAAC"}
1
+ {"version":3,"file":"BKJTableMainHeader.d.ts","sourceRoot":"","sources":["../../../src/components/BKJTableMainHeader/BKJTableMainHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EACpC,OAAO,CACR,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAOhE,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { BKJTableMainHeaderWrapper, Text } from './BKJTableMainHeader.styled.js';
3
- export const BKJTableMainHeader = ({ title }) => (_jsx(BKJTableMainHeaderWrapper, { children: _jsx(Text, { children: title }) }));
3
+ export const BKJTableMainHeader = ({ title, ...rest }) => (_jsx(BKJTableMainHeaderWrapper, { ...rest, children: _jsx(Text, { children: title }) }));
4
4
  //# sourceMappingURL=BKJTableMainHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BKJTableMainHeader.js","sourceRoot":"","sources":["../../../src/components/BKJTableMainHeader/BKJTableMainHeader.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,yBAAyB,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAM9E,MAAM,CAAC,MAAM,kBAAkB,GAAsC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAClF,KAAC,yBAAyB,cACxB,KAAC,IAAI,cAAE,KAAK,GAAQ,GACM,CAC7B,CAAC"}
1
+ {"version":3,"file":"BKJTableMainHeader.js","sourceRoot":"","sources":["../../../src/components/BKJTableMainHeader/BKJTableMainHeader.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,yBAAyB,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAS9E,MAAM,CAAC,MAAM,kBAAkB,GAAsC,CAAC,EACpE,KAAK,EACL,GAAG,IAAI,EACR,EAAE,EAAE,CAAC,CACJ,KAAC,yBAAyB,OAAK,IAAI,YACjC,KAAC,IAAI,cAAE,KAAK,GAAQ,GACM,CAC7B,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { StoryFn } from '@storybook/react';
1
2
  import { BKJTableMainHeaderProps } from './BKJTableMainHeader.js';
2
3
  declare const _default: {
3
4
  title: string;
@@ -5,4 +6,5 @@ declare const _default: {
5
6
  };
6
7
  export default _default;
7
8
  export declare const Default: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react").ReactRenderer, BKJTableMainHeaderProps>;
9
+ export declare const LabelledTable: StoryFn;
8
10
  //# sourceMappingURL=BKJTableMainHeader.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BKJTableMainHeader.stories.d.ts","sourceRoot":"","sources":["../../../src/components/BKJTableMainHeader/BKJTableMainHeader.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAsB,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;;;;;AAGnF,wBAGE;AAQF,eAAO,MAAM,OAAO,mHAAoB,CAAC"}
1
+ {"version":3,"file":"BKJTableMainHeader.stories.d.ts","sourceRoot":"","sources":["../../../src/components/BKJTableMainHeader/BKJTableMainHeader.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAsB,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;;;;;AAGnF,wBAGE;AAQF,eAAO,MAAM,OAAO,mHAAoB,CAAC;AAKzC,eAAO,MAAM,aAAa,EAAE,OAgB3B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { BKJTableMainHeader } from './BKJTableMainHeader.js';
3
3
  import { BKJTheme, BKJThemeProvider } from '../../providers/BKJThemeProvider/index.js';
4
4
  export default {
@@ -10,4 +10,13 @@ export const Default = Template.bind({});
10
10
  Default.args = {
11
11
  title: 'Main Header',
12
12
  };
13
+ export const LabelledTable = () => (_jsxs(BKJThemeProvider, { theme: BKJTheme, children: [_jsx(BKJTableMainHeader, { id: "shifts-title", title: "Shifts this week" }), _jsx("table", { "aria-labelledby": "shifts-title", children: _jsxs("tbody", { children: [_jsxs("tr", { children: [_jsx("td", { children: "10:00 AM \u2014 2:00 PM" }), _jsx("td", { children: "Toronto" })] }), _jsxs("tr", { children: [_jsx("td", { children: "3:00 PM \u2014 7:00 PM" }), _jsx("td", { children: "Mississauga" })] })] }) })] }));
14
+ LabelledTable.parameters = {
15
+ docs: {
16
+ description: {
17
+ story: "When the title sits visually outside an adjacent `<table>` and you want the table's accessible name to be the title text, give the `BKJTableMainHeader` an `id` and reference it from the `<table>` via `aria-labelledby`. The accessible-name computation traverses the reference and resolves to the title's text content.",
18
+ },
19
+ },
20
+ controls: { disable: true },
21
+ };
13
22
  //# sourceMappingURL=BKJTableMainHeader.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BKJTableMainHeader.stories.js","sourceRoot":"","sources":["../../../src/components/BKJTableMainHeader/BKJTableMainHeader.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAA2B,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAE9E,eAAe;IACb,KAAK,EAAE,mCAAmC;IAC1C,SAAS,EAAE,kBAAkB;CAC9B,CAAC;AAEF,MAAM,QAAQ,GAAqC,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CACnE,KAAC,gBAAgB,IAAC,KAAK,EAAE,QAAQ,YAC/B,KAAC,kBAAkB,OAAK,KAAK,GAAI,GAChB,CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,IAAI,GAAG;IACb,KAAK,EAAE,aAAa;CACrB,CAAC"}
1
+ {"version":3,"file":"BKJTableMainHeader.stories.js","sourceRoot":"","sources":["../../../src/components/BKJTableMainHeader/BKJTableMainHeader.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAA2B,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAE9E,eAAe;IACb,KAAK,EAAE,mCAAmC;IAC1C,SAAS,EAAE,kBAAkB;CAC9B,CAAC;AAEF,MAAM,QAAQ,GAAqC,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CACnE,KAAC,gBAAgB,IAAC,KAAK,EAAE,QAAQ,YAC/B,KAAC,kBAAkB,OAAK,KAAK,GAAI,GAChB,CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzC,OAAO,CAAC,IAAI,GAAG;IACb,KAAK,EAAE,aAAa;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAY,GAAG,EAAE,CAAC,CAC1C,MAAC,gBAAgB,IAAC,KAAK,EAAE,QAAQ,aAC/B,KAAC,kBAAkB,IAAC,EAAE,EAAC,cAAc,EAAC,KAAK,EAAC,kBAAkB,GAAG,EACjE,mCAAuB,cAAc,YACnC,4BACE,yBACE,mDAA2B,EAC3B,mCAAgB,IACb,EACL,yBACE,kDAA0B,EAC1B,uCAAoB,IACjB,IACC,GACF,IACS,CACpB,CAAC;AAEF,aAAa,CAAC,UAAU,GAAG;IACzB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,KAAK,EACH,8TAA8T;SACjU;KACF;IACD,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;CAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=BKJTableMainHeader.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BKJTableMainHeader.test.d.ts","sourceRoot":"","sources":["../../../src/components/BKJTableMainHeader/BKJTableMainHeader.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { screen } from '@testing-library/react';
3
+ import { renderAndCheckA11y, renderWithTheme } from '../../test-utils/index.js';
4
+ import { BKJTableMainHeader } from './BKJTableMainHeader.js';
5
+ describe('BKJTableMainHeader', () => {
6
+ describe('Accessibility', () => {
7
+ it('has no accessibility violations on the default render', async () => {
8
+ const { axeResults } = await renderAndCheckA11y(_jsx(BKJTableMainHeader, { title: "Shifts this week" }));
9
+ expect(axeResults).toHaveNoViolations();
10
+ });
11
+ it('has no accessibility violations on the labelled-table render', async () => {
12
+ const { axeResults } = await renderAndCheckA11y(_jsxs(_Fragment, { children: [_jsx(BKJTableMainHeader, { id: "shifts-title", title: "Shifts this week" }), _jsx("table", { "aria-labelledby": "shifts-title", children: _jsxs("tbody", { children: [_jsxs("tr", { children: [_jsx("td", { children: "10:00 AM \u2014 2:00 PM" }), _jsx("td", { children: "Toronto" })] }), _jsxs("tr", { children: [_jsx("td", { children: "3:00 PM \u2014 7:00 PM" }), _jsx("td", { children: "Mississauga" })] })] }) })] }));
13
+ expect(axeResults).toHaveNoViolations();
14
+ });
15
+ });
16
+ describe('HTML attribute forwarding', () => {
17
+ it('forwards id to the wrapping <div> byte-identically', () => {
18
+ const { getByText } = renderWithTheme(_jsx(BKJTableMainHeader, { id: "shifts-title", title: "Shifts this week" }));
19
+ const wrapper = getByText('Shifts this week').closest('div');
20
+ expect(wrapper).toHaveAttribute('id', 'shifts-title');
21
+ expect(getByText('Shifts this week')).not.toHaveAttribute('id');
22
+ });
23
+ it('forwards className to the wrapping <div> while preserving the styled-components class', () => {
24
+ const { getByText } = renderWithTheme(_jsx(BKJTableMainHeader, { className: "my-custom-class", title: "Shifts this week" }));
25
+ const wrapper = getByText('Shifts this week').closest('div');
26
+ expect(wrapper).toHaveClass('my-custom-class');
27
+ expect(wrapper?.className).toMatch(/sc-[a-zA-Z0-9]+/);
28
+ });
29
+ it('forwards data-* attributes to the wrapping <div> byte-identically', () => {
30
+ const { getByText } = renderWithTheme(_jsx(BKJTableMainHeader, { "data-testid": "shifts-header", title: "Shifts this week" }));
31
+ const wrapper = getByText('Shifts this week').closest('div');
32
+ expect(wrapper).toHaveAttribute('data-testid', 'shifts-header');
33
+ });
34
+ it('exposes the title as the accessible name of an adjacent <table aria-labelledby>', () => {
35
+ renderWithTheme(_jsxs(_Fragment, { children: [_jsx(BKJTableMainHeader, { id: "shifts-title", title: "Shifts this week" }), _jsx("table", { "aria-labelledby": "shifts-title", children: _jsx("tbody", { children: _jsxs("tr", { children: [_jsx("td", { children: "10:00 AM \u2014 2:00 PM" }), _jsx("td", { children: "Toronto" })] }) }) })] }));
36
+ expect(screen.getByRole('table', { name: 'Shifts this week' })).toBeInTheDocument();
37
+ });
38
+ });
39
+ });
40
+ //# sourceMappingURL=BKJTableMainHeader.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BKJTableMainHeader.test.js","sourceRoot":"","sources":["../../../src/components/BKJTableMainHeader/BKJTableMainHeader.test.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bookjane2/bookjane-design-library",
3
- "version": "9.0.35",
3
+ "version": "9.0.37",
4
4
  "main": "./lib/index.js",
5
5
  "typings": "./lib/index.d.ts",
6
6
  "engines": {