@arbor-education/design-system.components 4.9.0 → 4.9.2
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/CHANGELOG.md +14 -0
- package/dist/components/table/cellEditors/NumberCellEditor.d.ts +2 -2
- package/dist/components/table/cellEditors/NumberCellEditor.d.ts.map +1 -1
- package/dist/components/table/cellEditors/NumberCellEditor.js +1 -1
- package/dist/components/table/cellEditors/NumberCellEditor.js.map +1 -1
- package/dist/components/table/cellEditors/NumberCellEditor.test.d.ts +2 -0
- package/dist/components/table/cellEditors/NumberCellEditor.test.d.ts.map +1 -0
- package/dist/components/table/cellEditors/NumberCellEditor.test.js +57 -0
- package/dist/components/table/cellEditors/NumberCellEditor.test.js.map +1 -0
- package/dist/components/widget/Widget.stories.js +1 -1
- package/dist/components/widget/Widget.stories.js.map +1 -1
- package/dist/components/widget/WidgetBody.d.ts +1 -1
- package/dist/components/widget/WidgetBody.d.ts.map +1 -1
- package/dist/components/widget/WidgetBody.js +2 -2
- package/dist/components/widget/WidgetBody.js.map +1 -1
- package/eslint.config.mts +6 -3
- package/package.json +1 -1
- package/src/components/table/cellEditors/NumberCellEditor.test.tsx +74 -0
- package/src/components/table/cellEditors/NumberCellEditor.tsx +4 -4
- package/src/components/widget/Widget.stories.tsx +1 -1
- package/src/components/widget/WidgetBody.tsx +3 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.9.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#306](https://github.com/arbor-education/design-system.components/pull/306) [`16dd3fb`](https://github.com/arbor-education/design-system.components/commit/16dd3fb0179b03dcd26771fdff8de8107aa90f9f) Thanks [@rickbairstow](https://github.com/rickbairstow)! - MIS-74129 🐛 Fix NaN committed by number cell editor when min or max is omitted
|
|
8
|
+
|
|
9
|
+
## 4.9.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#308](https://github.com/arbor-education/design-system.components/pull/308) [`906acca`](https://github.com/arbor-education/design-system.components/commit/906acca2b371bcf2e960cb1ca95d14f2297fedb5) Thanks [@rickbairstow](https://github.com/rickbairstow)! - MIS-76804 Declare React version and ignore build output in ESLint config
|
|
14
|
+
|
|
15
|
+
- [#307](https://github.com/arbor-education/design-system.components/pull/307) [`4342262`](https://github.com/arbor-education/design-system.components/commit/4342262580afc6c81329f8bca7232d52c48b6048) Thanks [@A-LT123](https://github.com/A-LT123)! - MIS-75864 Add tabIndex to Scrollable Widgets for keyboard accessibility
|
|
16
|
+
|
|
3
17
|
## 4.9.0
|
|
4
18
|
|
|
5
19
|
### Minor Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberCellEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/table/cellEditors/NumberCellEditor.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,GAAG,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"NumberCellEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/table/cellEditors/NumberCellEditor.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAMF,eAAO,MAAM,gBAAgB;YAAW,qBAAqB;;CA6D5D,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { NumberInput } from '../../formField/inputs/number/NumberInput.js';
|
|
|
3
3
|
import {} from 'react';
|
|
4
4
|
const clampValue = (value, min, max) => (Math.min(Math.max(value, min), max));
|
|
5
5
|
export const NumberCellEditor = (props) => {
|
|
6
|
-
const { value, onValueChange, min, max, step, disableSpinners, } = props;
|
|
6
|
+
const { value, onValueChange, min = -Infinity, max = Infinity, step, disableSpinners, } = props;
|
|
7
7
|
const handleChange = (event) => {
|
|
8
8
|
const nextValue = event.currentTarget.value.trim();
|
|
9
9
|
if (nextValue === '') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberCellEditor.js","sourceRoot":"","sources":["../../../../src/components/table/cellEditors/NumberCellEditor.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gDAAgD,CAAC;AAC7E,OAAO,EAGN,MAAM,OAAO,CAAC;AAWf,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,CAC9D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA4B,EAAE,EAAE;IAC/D,MAAM,EACJ,KAAK,EACL,aAAa,EACb,GAAG,
|
|
1
|
+
{"version":3,"file":"NumberCellEditor.js","sourceRoot":"","sources":["../../../../src/components/table/cellEditors/NumberCellEditor.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gDAAgD,CAAC;AAC7E,OAAO,EAGN,MAAM,OAAO,CAAC;AAWf,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAE,EAAE,CAAC,CAC9D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA4B,EAAE,EAAE;IAC/D,MAAM,EACJ,KAAK,EACL,aAAa,EACb,GAAG,GAAG,CAAC,QAAQ,EACf,GAAG,GAAG,QAAQ,EACd,IAAI,EACJ,eAAe,GAChB,GAAG,KAAK,CAAC;IAEV,MAAM,YAAY,GAAG,CAAC,KAAoC,EAAE,EAAE;QAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnD,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YACrB,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAEtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,KAAsC,EAAE,EAAE;QAC/D,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAElD,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAErC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,cACE,SAAS,EAAC,gCAAgC,YAE1C,KAAC,WAAW,IACV,kBAAkB,EAAC,kCAAkC,EACrD,YAAY,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAChD,SAAS,QACT,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,GACxB,GACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberCellEditor.test.d.ts","sourceRoot":"","sources":["../../../../src/components/table/cellEditors/NumberCellEditor.test.tsx"],"names":[],"mappings":"AAGA,OAAO,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { describe, expect, test, vi } from 'vitest';
|
|
3
|
+
import { render, screen } from '@testing-library/react';
|
|
4
|
+
import userEvent from '@testing-library/user-event';
|
|
5
|
+
import '@testing-library/jest-dom/vitest';
|
|
6
|
+
import { NumberCellEditor } from './NumberCellEditor.js';
|
|
7
|
+
const createProps = (overrides = {}) => ({
|
|
8
|
+
value: undefined,
|
|
9
|
+
onValueChange: vi.fn(),
|
|
10
|
+
step: 1,
|
|
11
|
+
disableSpinners: true,
|
|
12
|
+
...overrides,
|
|
13
|
+
});
|
|
14
|
+
const lastCommittedValue = (onValueChange) => (onValueChange.mock.calls.at(-1)?.[0]);
|
|
15
|
+
describe('NumberCellEditor', () => {
|
|
16
|
+
test('commits typed numbers unchanged when no min or max is supplied', async () => {
|
|
17
|
+
const onValueChange = vi.fn();
|
|
18
|
+
render(_jsx(NumberCellEditor, { ...createProps({ onValueChange }) }));
|
|
19
|
+
await userEvent.type(screen.getByRole('textbox'), '42');
|
|
20
|
+
expect(onValueChange).toHaveBeenCalledWith(4);
|
|
21
|
+
expect(onValueChange).toHaveBeenLastCalledWith(42);
|
|
22
|
+
});
|
|
23
|
+
test('commits the typed number on Enter when no min or max is supplied', async () => {
|
|
24
|
+
const onValueChange = vi.fn();
|
|
25
|
+
render(_jsx(NumberCellEditor, { ...createProps({ onValueChange }) }));
|
|
26
|
+
await userEvent.type(screen.getByRole('textbox'), '-1234.5{Enter}');
|
|
27
|
+
expect(lastCommittedValue(onValueChange)).toBe(-1234.5);
|
|
28
|
+
});
|
|
29
|
+
test('clamps to min and leaves values above min unchanged when only min is supplied', async () => {
|
|
30
|
+
const onValueChange = vi.fn();
|
|
31
|
+
render(_jsx(NumberCellEditor, { ...createProps({ onValueChange, min: 10 }) }));
|
|
32
|
+
await userEvent.type(screen.getByRole('textbox'), '5');
|
|
33
|
+
expect(lastCommittedValue(onValueChange)).toBe(10);
|
|
34
|
+
await userEvent.clear(screen.getByRole('textbox'));
|
|
35
|
+
await userEvent.type(screen.getByRole('textbox'), '500');
|
|
36
|
+
expect(lastCommittedValue(onValueChange)).toBe(500);
|
|
37
|
+
});
|
|
38
|
+
test('clamps to max and leaves values below max unchanged when only max is supplied', async () => {
|
|
39
|
+
const onValueChange = vi.fn();
|
|
40
|
+
render(_jsx(NumberCellEditor, { ...createProps({ onValueChange, max: 100 }) }));
|
|
41
|
+
await userEvent.type(screen.getByRole('textbox'), '500');
|
|
42
|
+
expect(lastCommittedValue(onValueChange)).toBe(100);
|
|
43
|
+
await userEvent.clear(screen.getByRole('textbox'));
|
|
44
|
+
await userEvent.type(screen.getByRole('textbox'), '-500');
|
|
45
|
+
expect(lastCommittedValue(onValueChange)).toBe(-500);
|
|
46
|
+
});
|
|
47
|
+
test('clamps out-of-range values when both min and max are supplied', async () => {
|
|
48
|
+
const onValueChange = vi.fn();
|
|
49
|
+
render(_jsx(NumberCellEditor, { ...createProps({ onValueChange, min: 0, max: 100 }) }));
|
|
50
|
+
await userEvent.type(screen.getByRole('textbox'), '-5');
|
|
51
|
+
expect(lastCommittedValue(onValueChange)).toBe(0);
|
|
52
|
+
await userEvent.clear(screen.getByRole('textbox'));
|
|
53
|
+
await userEvent.type(screen.getByRole('textbox'), '250{Enter}');
|
|
54
|
+
expect(lastCommittedValue(onValueChange)).toBe(100);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=NumberCellEditor.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberCellEditor.test.js","sourceRoot":"","sources":["../../../../src/components/table/cellEditors/NumberCellEditor.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -203,7 +203,7 @@ const CollapsibleTemplate = () => (_jsxs(Widget, { collapsible: true, children:
|
|
|
203
203
|
const LoadingTemplate = () => (_jsxs(Widget, { isLoading: true, loadingLabel: "Loading alerts", children: [_jsx(Widget.Header, { children: "Alerts" }), _jsx(Widget.Body, { children: _jsx("p", { children: "Content hidden while loading" }) })] }));
|
|
204
204
|
const WithRenderLinkTemplate = () => (_jsxs(Widget, { href: "/alerts", renderLink: ({ href, className, children, linkProps }) => (_jsx("a", { href: href, className: className, "data-router-link": "true", ...linkProps, children: children })), children: [_jsx(Widget.Header, { children: "Alerts (2)" }), _jsx(Widget.Body, { children: _jsx("p", { style: { margin: 0 }, children: "Linked via custom renderLink" }) })] }));
|
|
205
205
|
const FloatingTemplate = () => (_jsxs(Widget, { isFloating: true, children: [_jsx(Widget.Header, { children: "Favourites" }), _jsx(Widget.Body, { children: _jsx("ul", { style: { margin: 0, padding: 0, listStyle: 'none' }, children: Array.from({ length: 6 }, (_, index) => (_jsx("li", { children: "Favourite" }, index))) }) })] }));
|
|
206
|
-
const FixedHeightOverflowTemplate = () => (_jsx(FixedHeightWidgetContainer, { children: _jsxs(Widget, { children: [_jsx(Widget.Header, { children: "Favourites" }), _jsx(Widget.Body, { children: _jsx("ul", { style: { margin: 0, padding: 0, listStyle: 'none' }, children: Array.from({ length: 20 }, (_, index) => (_jsx("li", { style: { padding: 'var(--spacing-xsmall) 0' }, children: `Favourite item ${index + 1}` }, index))) }) })] }) }));
|
|
206
|
+
const FixedHeightOverflowTemplate = () => (_jsx(FixedHeightWidgetContainer, { children: _jsxs(Widget, { children: [_jsx(Widget.Header, { children: "Favourites" }), _jsx(Widget.Body, { tabIndex: 0, "aria-label": "Favourites", children: _jsx("ul", { style: { margin: 0, padding: 0, listStyle: 'none' }, children: Array.from({ length: 20 }, (_, index) => (_jsx("li", { style: { padding: 'var(--spacing-xsmall) 0' }, children: `Favourite item ${index + 1}` }, index))) }) })] }) }));
|
|
207
207
|
export const Default = {
|
|
208
208
|
args: {
|
|
209
209
|
tooltip: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Widget.stories.js","sourceRoot":"","sources":["../../../src/components/widget/Widget.stories.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Widget.stories.js","sourceRoot":"","sources":["../../../src/components/widget/Widget.stories.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,QAAQ,EACR,OAAO,IAAI,UAAU,EACrB,OAAO,IAAI,UAAU,EACrB,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,EACR,KAAK,GACN,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,iBAAiB,GAAG;IACxB,6FAA6F;IAC7F,0GAA0G;IAC1G,yEAAyE;IACzE,EAAE;IACF,6GAA6G;IAC7G,8HAA8H;CAC/H,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,cAAc,GAAG;IACrB,iBAAiB;IACjB,EAAE;IACF,kGAAkG;IAClG,kFAAkF;IAClF,mFAAmF;IACnF,8EAA8E;IAC9E,EAAE;IACF,KAAK;IACL,EAAE;IACF,qBAAqB;IACrB,EAAE;IACF,6BAA6B;IAC7B,WAAW;IACX,mGAAmG;IACnG,yGAAyG;IACzG,wGAAwG;IACxG,oGAAoG;CACrG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,eAAe,GAAG;IACtB,6BAA6B;IAC7B,EAAE;IACF,iGAAiG;IACjG,sFAAsF;IACtF,EAAE;IACF,oGAAoG;IACpG,+FAA+F;IAC/F,EAAE;IACF,sGAAsG;IACtG,0FAA0F;IAC1F,yGAAyG;IACzG,uDAAuD;IACvD,EAAE;IACF,2FAA2F;IAC3F,6FAA6F;IAC7F,8GAA8G;IAC9G,EAAE;IACF,2FAA2F;IAC3F,iDAAiD;IACjD,EAAE;IACF,kFAAkF;IAClF,EAAE;IACF,sGAAsG;IACtG,yGAAyG;IACzG,sGAAsG;IACtG,EAAE;IACF,KAAK;IACL,EAAE;IACF,mBAAmB;IACnB,EAAE;IACF,yJAAyJ;IACzJ,wGAAwG;IACxG,8CAA8C;IAC9C,sHAAsH;IACtH,qEAAqE;IACrE,EAAE;IACF,KAAK;IACL,EAAE;IACF,sBAAsB;IACtB,EAAE;IACF,OAAO;IACP,qEAAqE;IACrE,EAAE;IACF,8CAA8C;IAC9C,YAAY;IACZ,yBAAyB;IACzB,6CAA6C;IAC7C,uBAAuB;IACvB,eAAe;IACf,MAAM;IACN,GAAG;IACH,KAAK;CACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,kBAAkB,GAAG;IACzB,uBAAuB;IACvB,EAAE;IACF,6NAA6N;CAC9N,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,WAAW,GAAG;IAClB,qEAAqE;IACrE,kHAAkH;CACnH,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,YAAY,GAAG;IACnB,yCAAyC;IACzC,mBAAmB;IACnB,oEAAoE;IACpE,oGAAoG;IACpG,+EAA+E;CAChF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,UAAU,GAAG;IACjB,yCAAyC;IACzC,mBAAmB;IACnB,gFAAgF;IAChF,6EAA6E;CAC9E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,SAAS,cAAc;IACrB,OAAO,CACL,8BACE,KAAC,KAAK,KAAG,EACT,KAAC,QAAQ,KAAG,EACZ,KAAC,QAAQ,cAAE,iBAAiB,GAAY,EACxC,KAAC,UAAU,sCAAiC,EAC5C,KAAC,QAAQ,cAAE,WAAW,GAAY,EAClC,KAAC,UAAU,KAAG,EACd,KAAC,QAAQ,KAAG,EACZ,KAAC,UAAU,sCAAiC,EAC5C,KAAC,QAAQ,cAAE,YAAY,GAAY,EACnC,KAAC,UAAU,oCAA+B,EAC1C,KAAC,QAAQ,cAAE,UAAU,GAAY,EACjC,KAAC,UAAU,iCAA4B,EACvC,KAAC,QAAQ,cAAE,cAAc,GAAY,EACrC,KAAC,UAAU,kCAA6B,EACxC,KAAC,QAAQ,cAAE,eAAe,GAAY,EACtC,KAAC,UAAU,2BAAsB,EACjC,KAAC,OAAO,IAAC,KAAK,EAAC,EAAE,GAAG,EACpB,KAAC,QAAQ,cAAE,kBAAkB,GAAY,IACxC,CACJ,CAAC;AACJ,CAAC;AAED,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE;QACV,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE;YACJ,IAAI,EAAE,cAAc;SACrB;KACF;IACD,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,4DAA4D;YACzE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;SACvC;QACD,UAAU,EAAE;YACV,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,8OAA8O;YAC3P,KAAK,EAAE;gBACL,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;gBAC5B,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;aACnC;SACF;QACD,SAAS,EAAE;YACT,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,kFAAkF;YAC/F,KAAK,EAAE;gBACL,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;gBAC5B,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;aACnC;SACF;QACD,OAAO,EAAE;YACP,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,gDAAgD;YAC7D,KAAK,EAAE;gBACL,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;gBAC5B,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;aACnC;SACF;QACD,YAAY,EAAE;YACZ,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,mDAAmD;YAChE,KAAK,EAAE;gBACL,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;gBAC3B,YAAY,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;aACrC;SACF;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,uEAAuE;YACpF,KAAK,EAAE;gBACL,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;gBAC5B,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;aACnC;SACF;QACD,WAAW,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC/B,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QACxB,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC9B,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7B,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC9B,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC5B,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC7B,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QAC5B,eAAe,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QACnC,gBAAgB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;KACrC;CAC4B,CAAC;AAEhC,eAAe,IAAI,CAAC;AAIpB,MAAM,eAAe,GAAG,CAAC,KAAY,EAAE,WAAmB,EAAS,EAAE,CAAC,CAAC;IACrE,GAAG,KAAK;IACR,UAAU,EAAE;QACV,GAAG,KAAK,CAAC,UAAU;QACnB,IAAI,EAAE;YACJ,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI;YACzB,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;SACpC;KACF;CACF,CAAC,CAAC;AAEH,SAAS,0BAA0B,CAAC,EAClC,QAAQ,EACR,MAAM,GAAG,GAAG,GAIb;IACC,OAAO,CACL,cACE,KAAK,EAAE;YACL,MAAM;YACN,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,MAAM,EAAE,kCAAkC;SAC3C,YAEA,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAED,MAAM,4BAA4B,GAAG,GAAG,EAAE,CAAC,CACzC,MAAC,MAAM,IACL,OAAO,QACP,UAAU,EAAE,CACV,KAAC,UAAU,IACT,OAAO,EAAC,IAAI,EACZ,YAAY,EAAE,KAAC,IAAI,IAAC,IAAI,EAAC,aAAa,EAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,uBAAuB,GAAG,EACjF,OAAO,EAAC,YAAY,EACpB,UAAU,EAAE,CACV,iGAEG,GAAG,EACJ,YAAG,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC,cAAc,qBAAS,SAElD,CACJ,GACD,CACH,aAED,KAAC,MAAM,CAAC,MAAM,6BAA2B,EACzC,KAAC,MAAM,CAAC,IAAI,KAAG,IACR,CACV,CAAC;AAEF,MAAM,yBAAyB,GAAG,GAAG,EAAE,CAAC,CACtC,MAAC,MAAM,IAAC,IAAI,EAAC,SAAS,aACpB,KAAC,MAAM,CAAC,MAAM,6BAA2B,EACzC,KAAC,MAAM,CAAC,IAAI,cACV,cAAI,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,aACrD,wDAAqC,EACrC,4DAAyC,IACtC,GACO,IACP,CACV,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,CAChC,MAAC,MAAM,IAAC,OAAO,EAAC,gCAAgC,aAC9C,KAAC,MAAM,CAAC,MAAM,6BAA2B,EACzC,KAAC,MAAM,CAAC,IAAI,cACV,aAAI,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,YACpD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACvC,sCAAS,KAAK,CAAgB,CAC/B,CAAC,GACC,GACO,IACP,CACV,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,CAChC,MAAC,MAAM,IAAC,WAAW,mBACjB,KAAC,MAAM,CAAC,MAAM,qCAAmC,EACjD,KAAC,MAAM,CAAC,IAAI,cACV,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,oCAAyB,GACpC,IACP,CACV,CAAC;AAEF,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,CAC5B,MAAC,MAAM,IAAC,SAAS,QAAC,YAAY,EAAC,gBAAgB,aAC7C,KAAC,MAAM,CAAC,MAAM,yBAAuB,EACrC,KAAC,MAAM,CAAC,IAAI,cAAC,uDAAmC,GAAc,IACvD,CACV,CAAC;AAEF,MAAM,sBAAsB,GAAG,GAAG,EAAE,CAAC,CACnC,MAAC,MAAM,IACL,IAAI,EAAC,SAAS,EACd,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACxD,YAAG,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,sBAAmB,MAAM,KAAK,SAAS,YACvE,QAAQ,GACP,CACL,aAED,KAAC,MAAM,CAAC,MAAM,6BAA2B,EACzC,KAAC,MAAM,CAAC,IAAI,cACV,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,6CAAkC,GAC7C,IACP,CACV,CAAC;AAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,CAC7B,MAAC,MAAM,IAAC,UAAU,mBAChB,KAAC,MAAM,CAAC,MAAM,6BAA2B,EACzC,KAAC,MAAM,CAAC,IAAI,cACV,aAAI,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,YACpD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACvC,sCAAS,KAAK,CAAgB,CAC/B,CAAC,GACC,GACO,IACP,CACV,CAAC;AAEF,MAAM,2BAA2B,GAAG,GAAG,EAAE,CAAC,CACxC,KAAC,0BAA0B,cACzB,MAAC,MAAM,eACL,KAAC,MAAM,CAAC,MAAM,6BAA2B,EACzC,KAAC,MAAM,CAAC,IAAI,IAAC,QAAQ,EAAE,CAAC,gBAAa,YAAY,YAC/C,aAAI,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,YACpD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CACxC,aAAgB,KAAK,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE,YAC1D,kBAAkB,KAAK,GAAG,CAAC,EAAE,IADvB,KAAK,CAET,CACN,CAAC,GACC,GACO,IACP,GACkB,CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE;QACJ,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE,KAAK;KACZ;IACD,MAAM,EAAE,CAAC,IAAmC,EAAE,EAAE,CAAC,CAC/C,MAAC,MAAM,OAAK,IAAI,aACd,KAAC,MAAM,CAAC,MAAM,qCAAmC,EACjD,KAAC,MAAM,CAAC,IAAI,cACV,YAAG,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,oCAAyB,GACpC,IACP,CACV;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAU,eAAe,CACxD;IACE,MAAM,EAAE,4BAA4B;IACpC,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC3B,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Bf,CAAC,IAAI,EAAE;aACC;SACF;KACF;CACF,EACD,wFAAwF,CACzF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAU,eAAe,CACrD;IACE,MAAM,EAAE,yBAAyB;IACjC,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC3B,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE;;;;;;;;;;;;;;;;CAgBf,CAAC,IAAI,EAAE;aACC;SACF;KACF;CACF,EACD,mIAAmI,CACpI,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAU,eAAe,CAC/C;IACE,MAAM,EAAE,mBAAmB;IAC3B,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC3B,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE;;;;;;;;;;;;;;;;CAgBf,CAAC,IAAI,EAAE;aACC;SACF;KACF;CACF,EACD,8EAA8E,CAC/E,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAU,eAAe,CAC/C;IACE,MAAM,EAAE,mBAAmB;IAC3B,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC3B,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE;;;;;;;;;;;;;;CAcf,CAAC,IAAI,EAAE;aACC;SACF;KACF;CACF,EACD,4EAA4E,CAC7E,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAU,eAAe,CAC3C;IACE,MAAM,EAAE,eAAe;IACvB,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC3B,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE;;;;;;;;;;;;;;CAcf,CAAC,IAAI,EAAE;aACC;SACF;KACF;CACF,EACD,kFAAkF,CACnF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAU,eAAe,CAClD;IACE,MAAM,EAAE,sBAAsB;IAC9B,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC3B,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE;;;;;;;;;;;;;;;;;;;CAmBf,CAAC,IAAI,EAAE;aACC;SACF;KACF;CACF,EACD,4EAA4E,CAC7E,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAU,eAAe,CACvD;IACE,MAAM,EAAE,2BAA2B;IACnC,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC3B,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;CAoBf,CAAC,IAAI,EAAE;aACC;SACF;KACF;CACF,EACD,uHAAuH,CACxH,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU,eAAe,CAC5C;IACE,MAAM,EAAE,gBAAgB;IACxB,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QAC3B,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE;;;;;;;;;;;;;;;;CAgBf,CAAC,IAAI,EAAE;aACC;SACF;KACF;CACF,EACD,2JAA2J,CAC5J,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetBody.d.ts","sourceRoot":"","sources":["../../../src/components/widget/WidgetBody.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"WidgetBody.d.ts","sourceRoot":"","sources":["../../../src/components/widget/WidgetBody.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;AAEzC,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,KAAG,KAAK,CAAC,GAAG,CAAC,OA0D7D,CAAC"}
|
|
@@ -3,7 +3,7 @@ import classNames from 'classnames';
|
|
|
3
3
|
import { Icon } from '../icon/Icon.js';
|
|
4
4
|
import { useWidgetContext } from './WidgetContext.js';
|
|
5
5
|
export const WidgetBody = (props) => {
|
|
6
|
-
const { children, className, } = props;
|
|
6
|
+
const { children, className, ...rest } = props;
|
|
7
7
|
const { bodyId, expanded, collapsible, isLoading, isEmpty, emptyState, loadingLabel, live, } = useWidgetContext();
|
|
8
8
|
const isCollapsed = collapsible && !expanded;
|
|
9
9
|
let content = children;
|
|
@@ -15,6 +15,6 @@ export const WidgetBody = (props) => {
|
|
|
15
15
|
content = emptyState ?? null;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
return (_jsx("div", { id: bodyId, className: classNames('ds-widget__body', isCollapsed && 'ds-widget__body--collapsed', className), hidden: isCollapsed || undefined, "aria-hidden": isCollapsed || undefined, "aria-live": !isCollapsed && live ? 'polite' : undefined, "aria-busy": !isCollapsed && isLoading ? true : undefined, children: isCollapsed ? null : content }));
|
|
18
|
+
return (_jsx("div", { ...rest, id: bodyId, className: classNames('ds-widget__body', isCollapsed && 'ds-widget__body--collapsed', className), hidden: isCollapsed || undefined, "aria-hidden": isCollapsed || undefined, "aria-live": !isCollapsed && live ? 'polite' : undefined, "aria-busy": !isCollapsed && isLoading ? true : undefined, children: isCollapsed ? null : content }));
|
|
19
19
|
};
|
|
20
20
|
//# sourceMappingURL=WidgetBody.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetBody.js","sourceRoot":"","sources":["../../../src/components/widget/WidgetBody.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOtD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAqB,EAAE;IACtE,MAAM,EACJ,QAAQ,EACR,SAAS,
|
|
1
|
+
{"version":3,"file":"WidgetBody.js","sourceRoot":"","sources":["../../../src/components/widget/WidgetBody.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOtD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAqB,EAAE;IACtE,MAAM,EACJ,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,WAAW,EACX,SAAS,EACT,OAAO,EACP,UAAU,EACV,YAAY,EACZ,IAAI,GACL,GAAG,gBAAgB,EAAE,CAAC;IAEvB,MAAM,WAAW,GAAG,WAAW,IAAI,CAAC,QAAQ,CAAC;IAE7C,IAAI,OAAO,GAAoB,QAAQ,CAAC;IAExC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,GAAG,CACR,cACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,oBAAoB,gBAClB,YAAY,YAExB,eAAM,SAAS,EAAC,4BAA4B,iBAAa,MAAM,YAC7D,KAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,EAAE,GAAI,GAC3B,GACH,CACP,CAAC;QACJ,CAAC;aACI,IAAI,OAAO,EAAE,CAAC;YACjB,OAAO,GAAG,UAAU,IAAI,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,CACL,iBACM,IAAI,EACR,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,UAAU,CACnB,iBAAiB,EACjB,WAAW,IAAI,4BAA4B,EAC3C,SAAS,CACV,EACD,MAAM,EAAE,WAAW,IAAI,SAAS,iBACnB,WAAW,IAAI,SAAS,eAC1B,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,eAC3C,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,YAEtD,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,GACzB,CACP,CAAC;AACJ,CAAC,CAAC"}
|
package/eslint.config.mts
CHANGED
|
@@ -25,9 +25,11 @@ const relativeImportExtensions: Rule.RuleModule = {
|
|
|
25
25
|
|
|
26
26
|
export default defineConfig([
|
|
27
27
|
globalIgnores([
|
|
28
|
-
'.claude
|
|
29
|
-
'.gather
|
|
30
|
-
'dist
|
|
28
|
+
'.claude/**',
|
|
29
|
+
'.gather/**',
|
|
30
|
+
'dist/**',
|
|
31
|
+
'storybook-static/**',
|
|
32
|
+
'.yalc/**',
|
|
31
33
|
]),
|
|
32
34
|
{
|
|
33
35
|
files: ['**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
|
|
@@ -44,6 +46,7 @@ export default defineConfig([
|
|
|
44
46
|
}),
|
|
45
47
|
{
|
|
46
48
|
plugins: { local: { rules: { 'relative-import-extensions': relativeImportExtensions } } },
|
|
49
|
+
settings: { react: { version: 'detect' } },
|
|
47
50
|
rules: {
|
|
48
51
|
'react/react-in-jsx-scope': 'off',
|
|
49
52
|
'react/jsx-uses-react': 'off',
|
package/package.json
CHANGED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { describe, expect, test, vi } from 'vitest';
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
|
+
import userEvent from '@testing-library/user-event';
|
|
4
|
+
import '@testing-library/jest-dom/vitest';
|
|
5
|
+
import { NumberCellEditor, type NumberCellEditorProps } from './NumberCellEditor.js';
|
|
6
|
+
|
|
7
|
+
const createProps = (overrides: Partial<NumberCellEditorProps> = {}): NumberCellEditorProps => ({
|
|
8
|
+
value: undefined,
|
|
9
|
+
onValueChange: vi.fn(),
|
|
10
|
+
step: 1,
|
|
11
|
+
disableSpinners: true,
|
|
12
|
+
...overrides,
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
const lastCommittedValue = (onValueChange: ReturnType<typeof vi.fn>) => (
|
|
16
|
+
onValueChange.mock.calls.at(-1)?.[0]
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
describe('NumberCellEditor', () => {
|
|
20
|
+
test('commits typed numbers unchanged when no min or max is supplied', async () => {
|
|
21
|
+
const onValueChange = vi.fn();
|
|
22
|
+
render(<NumberCellEditor {...createProps({ onValueChange })} />);
|
|
23
|
+
|
|
24
|
+
await userEvent.type(screen.getByRole('textbox'), '42');
|
|
25
|
+
|
|
26
|
+
expect(onValueChange).toHaveBeenCalledWith(4);
|
|
27
|
+
expect(onValueChange).toHaveBeenLastCalledWith(42);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
test('commits the typed number on Enter when no min or max is supplied', async () => {
|
|
31
|
+
const onValueChange = vi.fn();
|
|
32
|
+
render(<NumberCellEditor {...createProps({ onValueChange })} />);
|
|
33
|
+
|
|
34
|
+
await userEvent.type(screen.getByRole('textbox'), '-1234.5{Enter}');
|
|
35
|
+
|
|
36
|
+
expect(lastCommittedValue(onValueChange)).toBe(-1234.5);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
test('clamps to min and leaves values above min unchanged when only min is supplied', async () => {
|
|
40
|
+
const onValueChange = vi.fn();
|
|
41
|
+
render(<NumberCellEditor {...createProps({ onValueChange, min: 10 })} />);
|
|
42
|
+
|
|
43
|
+
await userEvent.type(screen.getByRole('textbox'), '5');
|
|
44
|
+
expect(lastCommittedValue(onValueChange)).toBe(10);
|
|
45
|
+
|
|
46
|
+
await userEvent.clear(screen.getByRole('textbox'));
|
|
47
|
+
await userEvent.type(screen.getByRole('textbox'), '500');
|
|
48
|
+
expect(lastCommittedValue(onValueChange)).toBe(500);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
test('clamps to max and leaves values below max unchanged when only max is supplied', async () => {
|
|
52
|
+
const onValueChange = vi.fn();
|
|
53
|
+
render(<NumberCellEditor {...createProps({ onValueChange, max: 100 })} />);
|
|
54
|
+
|
|
55
|
+
await userEvent.type(screen.getByRole('textbox'), '500');
|
|
56
|
+
expect(lastCommittedValue(onValueChange)).toBe(100);
|
|
57
|
+
|
|
58
|
+
await userEvent.clear(screen.getByRole('textbox'));
|
|
59
|
+
await userEvent.type(screen.getByRole('textbox'), '-500');
|
|
60
|
+
expect(lastCommittedValue(onValueChange)).toBe(-500);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
test('clamps out-of-range values when both min and max are supplied', async () => {
|
|
64
|
+
const onValueChange = vi.fn();
|
|
65
|
+
render(<NumberCellEditor {...createProps({ onValueChange, min: 0, max: 100 })} />);
|
|
66
|
+
|
|
67
|
+
await userEvent.type(screen.getByRole('textbox'), '-5');
|
|
68
|
+
expect(lastCommittedValue(onValueChange)).toBe(0);
|
|
69
|
+
|
|
70
|
+
await userEvent.clear(screen.getByRole('textbox'));
|
|
71
|
+
await userEvent.type(screen.getByRole('textbox'), '250{Enter}');
|
|
72
|
+
expect(lastCommittedValue(onValueChange)).toBe(100);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
export type NumberCellEditorProps = {
|
|
8
8
|
value: number | null | undefined;
|
|
9
9
|
onValueChange: (value: number | null) => void;
|
|
10
|
-
min
|
|
11
|
-
max
|
|
10
|
+
min?: number;
|
|
11
|
+
max?: number;
|
|
12
12
|
step: number;
|
|
13
13
|
disableSpinners: boolean;
|
|
14
14
|
};
|
|
@@ -21,8 +21,8 @@ export const NumberCellEditor = (props: NumberCellEditorProps) => {
|
|
|
21
21
|
const {
|
|
22
22
|
value,
|
|
23
23
|
onValueChange,
|
|
24
|
-
min,
|
|
25
|
-
max,
|
|
24
|
+
min = -Infinity,
|
|
25
|
+
max = Infinity,
|
|
26
26
|
step,
|
|
27
27
|
disableSpinners,
|
|
28
28
|
} = props;
|
|
@@ -352,7 +352,7 @@ const FixedHeightOverflowTemplate = () => (
|
|
|
352
352
|
<FixedHeightWidgetContainer>
|
|
353
353
|
<Widget>
|
|
354
354
|
<Widget.Header>Favourites</Widget.Header>
|
|
355
|
-
<Widget.Body>
|
|
355
|
+
<Widget.Body tabIndex={0} aria-label="Favourites">
|
|
356
356
|
<ul style={{ margin: 0, padding: 0, listStyle: 'none' }}>
|
|
357
357
|
{Array.from({ length: 20 }, (_, index) => (
|
|
358
358
|
<li key={index} style={{ padding: 'var(--spacing-xsmall) 0' }}>
|
|
@@ -5,12 +5,13 @@ import { useWidgetContext } from './WidgetContext.js';
|
|
|
5
5
|
export type WidgetBodyProps = {
|
|
6
6
|
children?: React.ReactNode;
|
|
7
7
|
className?: string;
|
|
8
|
-
}
|
|
8
|
+
} & React.HTMLAttributes<HTMLDivElement>;
|
|
9
9
|
|
|
10
10
|
export const WidgetBody = (props: WidgetBodyProps): React.JSX.Element => {
|
|
11
11
|
const {
|
|
12
12
|
children,
|
|
13
13
|
className,
|
|
14
|
+
...rest
|
|
14
15
|
} = props;
|
|
15
16
|
|
|
16
17
|
const {
|
|
@@ -49,6 +50,7 @@ export const WidgetBody = (props: WidgetBodyProps): React.JSX.Element => {
|
|
|
49
50
|
|
|
50
51
|
return (
|
|
51
52
|
<div
|
|
53
|
+
{...rest}
|
|
52
54
|
id={bodyId}
|
|
53
55
|
className={classNames(
|
|
54
56
|
'ds-widget__body',
|