@arbor-education/design-system.components 0.4.2 → 0.5.1

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 (49) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/components/button/Button.stories.d.ts +50 -0
  3. package/dist/components/button/Button.stories.d.ts.map +1 -0
  4. package/dist/components/button/Button.stories.js +151 -0
  5. package/dist/components/button/Button.stories.js.map +1 -0
  6. package/dist/components/datePicker/DatePicker.d.ts +12 -0
  7. package/dist/components/datePicker/DatePicker.d.ts.map +1 -0
  8. package/dist/components/datePicker/DatePicker.js +60 -0
  9. package/dist/components/datePicker/DatePicker.js.map +1 -0
  10. package/dist/components/datePicker/DatePicker.stories.d.ts +31 -0
  11. package/dist/components/datePicker/DatePicker.stories.d.ts.map +1 -0
  12. package/dist/components/datePicker/DatePicker.stories.js +41 -0
  13. package/dist/components/datePicker/DatePicker.stories.js.map +1 -0
  14. package/dist/components/datePicker/DatePicker.test.d.ts +2 -0
  15. package/dist/components/datePicker/DatePicker.test.d.ts.map +1 -0
  16. package/dist/components/datePicker/DatePicker.test.js +158 -0
  17. package/dist/components/datePicker/DatePicker.test.js.map +1 -0
  18. package/dist/components/formField/FormField.d.ts +4 -0
  19. package/dist/components/formField/FormField.d.ts.map +1 -1
  20. package/dist/components/formField/FormField.js +2 -1
  21. package/dist/components/formField/FormField.js.map +1 -1
  22. package/dist/components/formField/FormField.stories.d.ts.map +1 -1
  23. package/dist/components/formField/FormField.stories.js +2 -2
  24. package/dist/components/formField/FormField.stories.js.map +1 -1
  25. package/dist/components/formField/FormField.test.js +5 -0
  26. package/dist/components/formField/FormField.test.js.map +1 -1
  27. package/dist/components/slideover/Slideover.d.ts +1 -1
  28. package/dist/components/slideover/Slideover.d.ts.map +1 -1
  29. package/dist/components/slideover/Slideover.js +10 -2
  30. package/dist/components/slideover/Slideover.js.map +1 -1
  31. package/dist/index.css +454 -0
  32. package/dist/index.css.map +1 -1
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1 -0
  36. package/dist/index.js.map +1 -1
  37. package/package.json +3 -1
  38. package/src/components/button/{Button.story.tsx → Button.stories.tsx} +13 -13
  39. package/src/components/datePicker/DatePicker.stories.tsx +47 -0
  40. package/src/components/datePicker/DatePicker.test.tsx +189 -0
  41. package/src/components/datePicker/DatePicker.tsx +144 -0
  42. package/src/components/datePicker/datePicker.scss +37 -0
  43. package/src/components/formField/FormField.stories.tsx +7 -1
  44. package/src/components/formField/FormField.test.tsx +6 -0
  45. package/src/components/formField/FormField.tsx +5 -0
  46. package/src/components/slideover/Slideover.tsx +22 -3
  47. package/src/components/slideover/slideover.scss +5 -0
  48. package/src/index.scss +2 -0
  49. package/src/index.ts +1 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.5.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#134](https://github.com/arbor-education/design-system.components/pull/134) [`b8b0d2e`](https://github.com/arbor-education/design-system.components/commit/b8b0d2eb5fb39878cbe62fdd30604bf5ca070920) Thanks [@AmeeMorris](https://github.com/AmeeMorris)! - MIS-69496 make sure Button stories reference the variant prop, not the old type prop
8
+
9
+ ## 0.5.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#127](https://github.com/arbor-education/design-system.components/pull/127) [`b384c39`](https://github.com/arbor-education/design-system.components/commit/b384c39ccdcd5ac3b4a1f97e8228d11a0acd1f67) Thanks [@angusmglfraser](https://github.com/angusmglfraser)! - MIS-66717 date picker component'
14
+
15
+ ### Patch Changes
16
+
17
+ - [#130](https://github.com/arbor-education/design-system.components/pull/130) [`1669d41`](https://github.com/arbor-education/design-system.components/commit/1669d415ba89dd6683a22438e721b8ed8efe3833) Thanks [@angusmglfraser](https://github.com/angusmglfraser)! - MIS-66561 animate slideovers
18
+
3
19
  ## 0.4.2
4
20
 
5
21
  ### Patch Changes
@@ -0,0 +1,50 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("react").ForwardRefExoticComponent<Omit<import("react").PropsWithChildren<import("./Button").ButtonProps>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
5
+ parameters: {
6
+ layout: string;
7
+ };
8
+ tags: string[];
9
+ argTypes: {
10
+ variant: {
11
+ control: "select";
12
+ options: string[];
13
+ description: string;
14
+ };
15
+ size: {
16
+ control: "select";
17
+ options: string[];
18
+ description: string;
19
+ };
20
+ disabled: {
21
+ control: "boolean";
22
+ description: string;
23
+ };
24
+ children: {
25
+ control: "text";
26
+ description: string;
27
+ };
28
+ onClick: {
29
+ action: string;
30
+ };
31
+ };
32
+ };
33
+ export default meta;
34
+ type Story = StoryObj<typeof meta>;
35
+ export declare const Primary: Story;
36
+ export declare const PrimaryIconOnly: Story;
37
+ export declare const Secondary: Story;
38
+ export declare const SecondaryIconOnly: Story;
39
+ export declare const Tertiary: Story;
40
+ export declare const TertiaryIconOnly: Story;
41
+ export declare const Dropdown: Story;
42
+ export declare const PrimaryDestructive: Story;
43
+ export declare const PrimaryDestructiveIconOnly: Story;
44
+ export declare const SecondaryDestructive: Story;
45
+ export declare const SecondaryDestructiveIconOnly: Story;
46
+ export declare const TextLink: Story;
47
+ export declare const SmallPrimary: Story;
48
+ export declare const SmallSecondary: Story;
49
+ export declare const Disabled: Story;
50
+ //# sourceMappingURL=Button.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.stories.d.ts","sourceRoot":"","sources":["../../../src/components/button/Button.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAG5D,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCqB,CAAC;AAEhC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAGnC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAM7B,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAO/B,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAO9B,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,KAKhC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,KAOxC,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,KAKlC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,KAO1C,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,KAK1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAK5B,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC"}
@@ -0,0 +1,151 @@
1
+ import { Button } from './Button';
2
+ const meta = {
3
+ title: 'Components/Button',
4
+ component: Button,
5
+ parameters: {
6
+ layout: 'centered',
7
+ },
8
+ tags: ['autodocs'],
9
+ argTypes: {
10
+ variant: {
11
+ control: 'select',
12
+ options: [
13
+ 'primary',
14
+ 'secondary',
15
+ 'tertiary',
16
+ 'primary-destructive',
17
+ 'secondary-destructive',
18
+ 'text-link',
19
+ 'dropdown',
20
+ ],
21
+ description: 'Button variant',
22
+ },
23
+ size: {
24
+ control: 'select',
25
+ options: ['M', 'S'],
26
+ description: 'Button size',
27
+ },
28
+ disabled: {
29
+ control: 'boolean',
30
+ description: 'Disable the button',
31
+ },
32
+ children: {
33
+ control: 'text',
34
+ description: 'Button text',
35
+ },
36
+ onClick: {
37
+ action: 'clicked',
38
+ },
39
+ },
40
+ };
41
+ export default meta;
42
+ // Primary button
43
+ export const Primary = {
44
+ args: {
45
+ variant: 'primary',
46
+ children: 'Button Text',
47
+ size: 'M',
48
+ },
49
+ };
50
+ export const PrimaryIconOnly = {
51
+ args: {
52
+ ...Primary.args,
53
+ children: null,
54
+ iconRightName: 'info',
55
+ },
56
+ };
57
+ // Secondary button
58
+ export const Secondary = {
59
+ args: {
60
+ ...Primary.args,
61
+ variant: 'secondary',
62
+ },
63
+ };
64
+ export const SecondaryIconOnly = {
65
+ args: {
66
+ ...Primary.args,
67
+ variant: 'secondary',
68
+ children: null,
69
+ iconRightName: 'info',
70
+ },
71
+ };
72
+ // Tertiary button
73
+ export const Tertiary = {
74
+ args: {
75
+ ...Primary.args,
76
+ variant: 'tertiary',
77
+ },
78
+ };
79
+ export const TertiaryIconOnly = {
80
+ args: {
81
+ ...Primary.args,
82
+ children: null,
83
+ iconRightName: 'info',
84
+ variant: 'tertiary',
85
+ },
86
+ };
87
+ // Dropdown button
88
+ export const Dropdown = {
89
+ args: {
90
+ ...Primary.args,
91
+ variant: 'dropdown',
92
+ },
93
+ };
94
+ // Primary destructive button
95
+ export const PrimaryDestructive = {
96
+ args: {
97
+ ...Primary.args,
98
+ variant: 'primary-destructive',
99
+ },
100
+ };
101
+ export const PrimaryDestructiveIconOnly = {
102
+ args: {
103
+ ...Primary.args,
104
+ children: null,
105
+ iconRightName: 'info',
106
+ variant: 'primary-destructive',
107
+ },
108
+ };
109
+ // Secondary destructive button
110
+ export const SecondaryDestructive = {
111
+ args: {
112
+ ...Primary.args,
113
+ variant: 'secondary-destructive',
114
+ },
115
+ };
116
+ export const SecondaryDestructiveIconOnly = {
117
+ args: {
118
+ ...Primary.args,
119
+ children: null,
120
+ iconRightName: 'info',
121
+ variant: 'secondary-destructive',
122
+ },
123
+ };
124
+ // Text link button
125
+ export const TextLink = {
126
+ args: {
127
+ ...Primary.args,
128
+ variant: 'text-link',
129
+ },
130
+ };
131
+ // Small buttons
132
+ export const SmallPrimary = {
133
+ args: {
134
+ ...Primary.args,
135
+ size: 'S',
136
+ },
137
+ };
138
+ export const SmallSecondary = {
139
+ args: {
140
+ ...Secondary.args,
141
+ size: 'S',
142
+ },
143
+ };
144
+ // Disabled button
145
+ export const Disabled = {
146
+ args: {
147
+ ...Primary.args,
148
+ disabled: true,
149
+ },
150
+ };
151
+ //# sourceMappingURL=Button.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.stories.js","sourceRoot":"","sources":["../../../src/components/button/Button.stories.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export type DatePickerProps = {
2
+ 'className'?: string;
3
+ 'dateFormat'?: string;
4
+ 'onChange'?: (newDate?: Date) => void;
5
+ 'id'?: string;
6
+ 'hasError'?: boolean;
7
+ 'aria-describedby'?: string;
8
+ 'aria-invalid'?: boolean;
9
+ 'value'?: Date;
10
+ };
11
+ export declare const DatePicker: (props: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=DatePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/components/datePicker/DatePicker.tsx"],"names":[],"mappings":"AAUA,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,eAAe,4CA0HhD,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import classNames from 'classnames';
3
+ import { Button } from '../button/Button';
4
+ import { TextInput } from '../formField/inputs/text/TextInput';
5
+ import { format, isValid, parse } from 'date-fns';
6
+ import { Popover } from 'radix-ui';
7
+ import { useContext, useRef, useState } from 'react';
8
+ import { DayPicker } from 'react-day-picker';
9
+ import { useComponentDidUpdate } from '../../utils/hooks/useComponentDidUpdate';
10
+ import { PopupParentContext } from '../../utils/PopupParentContext';
11
+ export const DatePicker = (props) => {
12
+ const { className, dateFormat = 'dd/MM/yyyy', onChange, id, hasError, 'aria-describedby': ariaDescribedBy, 'aria-invalid': ariaInvalid, value, } = props;
13
+ const [month, setMonth] = useState(value ?? new Date());
14
+ const [selectedDate, setSelectedDate] = useState(value);
15
+ const [inputValue, setInputValue] = useState(value ? format(value, dateFormat) : '');
16
+ const isExternalSyncRef = useRef(false);
17
+ useComponentDidUpdate(() => {
18
+ if (value && value.getTime() !== selectedDate?.getTime()) {
19
+ isExternalSyncRef.current = true;
20
+ setSelectedDate(value);
21
+ setMonth(value);
22
+ }
23
+ }, [value]);
24
+ const [isPickerOpen, setIsPickerOpen] = useState(false);
25
+ const onInputChange = (e) => {
26
+ setInputValue(e.target.value);
27
+ const parsedDate = parse(e.target.value, dateFormat, new Date());
28
+ if (isValid(parsedDate)) {
29
+ setSelectedDate(parsedDate);
30
+ setMonth(parsedDate);
31
+ }
32
+ else {
33
+ setSelectedDate(undefined);
34
+ }
35
+ };
36
+ const onDayPickerSelect = (date) => {
37
+ setSelectedDate(date);
38
+ setIsPickerOpen(false);
39
+ };
40
+ useComponentDidUpdate(() => {
41
+ if (selectedDate) {
42
+ setInputValue(format(selectedDate, dateFormat));
43
+ }
44
+ else {
45
+ setInputValue('');
46
+ }
47
+ if (!isExternalSyncRef.current && onChange) {
48
+ onChange(selectedDate);
49
+ }
50
+ isExternalSyncRef.current = false;
51
+ }, [selectedDate, dateFormat, onChange]);
52
+ const popupParentRef = useContext(PopupParentContext);
53
+ return (_jsxs("div", { className: classNames('ds-date-picker', className), children: [_jsx(TextInput, { value: inputValue, onChange: onInputChange, id: id, hasError: hasError, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid }), _jsxs(Popover.Root, { open: isPickerOpen, onOpenChange: open => setIsPickerOpen(open), children: [_jsx(Popover.Trigger, { asChild: true, children: _jsx(Button, { onClick: () => {
54
+ setIsPickerOpen(!isPickerOpen);
55
+ }, className: "ds-date-picker__button", variant: "text-link", iconLeftName: "date", iconLeftScreenReaderText: "Open date picker" }) }), _jsx(Popover.Portal, { container: popupParentRef.current, children: _jsx(Popover.Content, { align: "end", sideOffset: 5, children: _jsx(DayPicker, { className: "ds-date-picker__popup", month: month, onMonthChange: setMonth, autoFocus: true, role: "application", mode: "single", selected: selectedDate, onSelect: onDayPickerSelect, captionLayout: "dropdown", footer: (_jsx(Button, { variant: "text-link", onClick: () => {
56
+ setSelectedDate(new Date());
57
+ setIsPickerOpen(false);
58
+ }, className: "ds-date-picker__today-button", children: "Today" })) }) }) })] })] }));
59
+ };
60
+ //# sourceMappingURL=DatePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../src/components/datePicker/DatePicker.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ declare const meta: {
3
+ title: string;
4
+ component: (props: import("./DatePicker").DatePickerProps) => import("react/jsx-runtime").JSX.Element;
5
+ parameters: {
6
+ layout: string;
7
+ };
8
+ tags: string[];
9
+ args: {
10
+ onChange: import("@vitest/spy").Mock<(...args: any[]) => any>;
11
+ };
12
+ argTypes: {
13
+ dateFormat: {
14
+ control: "text";
15
+ description: string;
16
+ };
17
+ className: {
18
+ control: "text";
19
+ description: string;
20
+ };
21
+ onChange: {
22
+ description: string;
23
+ };
24
+ };
25
+ };
26
+ export default meta;
27
+ type Story = StoryObj<typeof meta>;
28
+ export declare const Default: Story;
29
+ export declare const USDateFormat: Story;
30
+ export declare const ISOFormat: Story;
31
+ //# sourceMappingURL=DatePicker.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.stories.d.ts","sourceRoot":"","sources":["../../../src/components/datePicker/DatePicker.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAI5D,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;CAuByB,CAAC;AAEpC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,YAAY,EAAE,KAK1B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAKvB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { fn } from 'storybook/test';
2
+ import { DatePicker } from './DatePicker';
3
+ const meta = {
4
+ title: 'Components/DatePicker',
5
+ component: DatePicker,
6
+ parameters: {
7
+ layout: 'centered',
8
+ },
9
+ tags: ['autodocs'],
10
+ args: {
11
+ onChange: fn(),
12
+ },
13
+ argTypes: {
14
+ dateFormat: {
15
+ control: 'text',
16
+ description: 'Date format string using date-fns tokens (e.g. "dd/MM/yyyy", "MM/dd/yyyy", "yyyy-MM-dd")',
17
+ },
18
+ className: {
19
+ control: 'text',
20
+ description: 'Additional CSS class names',
21
+ },
22
+ onChange: {
23
+ description: 'Callback fired when the selected date changes. Receives the selected Date, or undefined when cleared.',
24
+ },
25
+ },
26
+ };
27
+ export default meta;
28
+ export const Default = {};
29
+ export const USDateFormat = {
30
+ name: 'US Date Format (MM/dd/yyyy)',
31
+ args: {
32
+ dateFormat: 'MM/dd/yyyy',
33
+ },
34
+ };
35
+ export const ISOFormat = {
36
+ name: 'ISO Format (yyyy-MM-dd)',
37
+ args: {
38
+ dateFormat: 'yyyy-MM-dd',
39
+ },
40
+ };
41
+ //# sourceMappingURL=DatePicker.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.stories.js","sourceRoot":"","sources":["../../../src/components/datePicker/DatePicker.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,uBAAuB;IAC9B,SAAS,EAAE,UAAU;IACrB,UAAU,EAAE;QACV,MAAM,EAAE,UAAU;KACnB;IACD,IAAI,EAAE,CAAC,UAAU,CAAC;IAClB,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE,EAAE;KACf;IACD,QAAQ,EAAE;QACR,UAAU,EAAE;YACV,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,0FAA0F;SACxG;QACD,SAAS,EAAE;YACT,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,4BAA4B;SAC1C;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,uGAAuG;SACrH;KACF;CACgC,CAAC;AAEpC,eAAe,IAAI,CAAC;AAGpB,MAAM,CAAC,MAAM,OAAO,GAAU,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAU;IACjC,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE;QACJ,UAAU,EAAE,YAAY;KACzB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAU;IAC9B,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE;QACJ,UAAU,EAAE,YAAY;KACzB;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import '@testing-library/jest-dom/vitest';
2
+ //# sourceMappingURL=DatePicker.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.test.d.ts","sourceRoot":"","sources":["../../../src/components/datePicker/DatePicker.test.tsx"],"names":[],"mappings":"AAGA,OAAO,kCAAkC,CAAC"}
@@ -0,0 +1,158 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { describe, expect, test, vi } from 'vitest';
3
+ import { render, screen, within, fireEvent } from '@testing-library/react';
4
+ import userEvent from '@testing-library/user-event';
5
+ import '@testing-library/jest-dom/vitest';
6
+ import { format } from 'date-fns';
7
+ import { DatePicker } from './DatePicker';
8
+ describe('DatePicker', () => {
9
+ test('renders a text input', () => {
10
+ render(_jsx(DatePicker, {}));
11
+ expect(screen.getByRole('textbox')).toBeInTheDocument();
12
+ });
13
+ test('renders a calendar toggle button', () => {
14
+ render(_jsx(DatePicker, {}));
15
+ // Button has an icon with screenReaderText="date" (from iconLeftName fallback in Button/Icon)
16
+ expect(screen.getByRole('button', { name: 'Open date picker' })).toBeInTheDocument();
17
+ });
18
+ test('day picker is hidden by default', () => {
19
+ render(_jsx(DatePicker, {}));
20
+ expect(screen.queryByRole('application')).not.toBeInTheDocument();
21
+ });
22
+ describe('calendar toggle', () => {
23
+ test('clicking the button opens the day picker', async () => {
24
+ render(_jsx(DatePicker, {}));
25
+ await userEvent.click(screen.getByRole('button', { name: 'Open date picker' }));
26
+ expect(screen.getByRole('application')).toBeInTheDocument();
27
+ });
28
+ test('clicking the button again closes the day picker', async () => {
29
+ render(_jsx(DatePicker, {}));
30
+ await userEvent.click(screen.getByRole('button', { name: 'Open date picker' }));
31
+ await userEvent.click(screen.getByRole('button', { name: 'Open date picker' }));
32
+ expect(screen.queryByRole('application')).not.toBeInTheDocument();
33
+ });
34
+ });
35
+ describe('text input', () => {
36
+ // Use fireEvent.change rather than userEvent.type — the component's useEffect overwrites
37
+ // inputValue state between individual keystrokes, which conflicts with userEvent's tracking.
38
+ test('entering a valid date updates the input value', () => {
39
+ render(_jsx(DatePicker, {}));
40
+ fireEvent.change(screen.getByRole('textbox'), { target: { value: '15/06/2024' } });
41
+ expect(screen.getByRole('textbox')).toHaveValue('15/06/2024');
42
+ });
43
+ test('entering a valid date calls onChange with the parsed Date', () => {
44
+ const onChange = vi.fn();
45
+ render(_jsx(DatePicker, { onChange: onChange }));
46
+ onChange.mockClear(); // ignore the initial mount call with undefined
47
+ fireEvent.change(screen.getByRole('textbox'), { target: { value: '15/06/2024' } });
48
+ expect(onChange).toHaveBeenLastCalledWith(expect.any(Date));
49
+ const lastDate = onChange.mock.lastCall[0];
50
+ expect(lastDate.getFullYear()).toBe(2024);
51
+ expect(lastDate.getMonth()).toBe(5); // June is month index 5
52
+ expect(lastDate.getDate()).toBe(15);
53
+ });
54
+ test('entering an invalid string after a valid date calls onChange with undefined', () => {
55
+ // onChange is only fired by the useEffect when selectedDate actually changes.
56
+ // So we first need a valid date to put selectedDate into a non-undefined state.
57
+ const onChange = vi.fn();
58
+ render(_jsx(DatePicker, { onChange: onChange }));
59
+ fireEvent.change(screen.getByRole('textbox'), { target: { value: '15/06/2024' } });
60
+ onChange.mockClear();
61
+ fireEvent.change(screen.getByRole('textbox'), { target: { value: 'not-a-date' } });
62
+ expect(onChange).toHaveBeenLastCalledWith(undefined);
63
+ });
64
+ });
65
+ describe('day picker selection', () => {
66
+ // Avoid fake timers (incompatible with userEvent) by navigating the picker to a
67
+ // known month via the text input before opening the calendar.
68
+ test('selecting a date from the picker updates the input', async () => {
69
+ render(_jsx(DatePicker, {}));
70
+ // Navigate to June 2024 by entering a different day in that month
71
+ fireEvent.change(screen.getByRole('textbox'), { target: { value: '01/06/2024' } });
72
+ await userEvent.click(screen.getByRole('button', { name: 'Open date picker' }));
73
+ // Day aria-labels use date-fns PPPP format e.g. "Thursday, June 20, 2024"
74
+ await userEvent.click(within(screen.getByRole('application')).getByRole('button', { name: /June 20/ }));
75
+ expect(screen.getByRole('textbox')).toHaveValue('20/06/2024');
76
+ });
77
+ test('selecting a date from the picker closes the picker', async () => {
78
+ render(_jsx(DatePicker, {}));
79
+ fireEvent.change(screen.getByRole('textbox'), { target: { value: '01/06/2024' } });
80
+ await userEvent.click(screen.getByRole('button', { name: 'Open date picker' }));
81
+ await userEvent.click(within(screen.getByRole('application')).getByRole('button', { name: /June 20/ }));
82
+ expect(screen.queryByRole('application')).not.toBeInTheDocument();
83
+ });
84
+ test('selecting a date from the picker calls onChange with the selected date', async () => {
85
+ const onChange = vi.fn();
86
+ render(_jsx(DatePicker, { onChange: onChange }));
87
+ fireEvent.change(screen.getByRole('textbox'), { target: { value: '01/06/2024' } });
88
+ onChange.mockClear();
89
+ await userEvent.click(screen.getByRole('button', { name: 'Open date picker' }));
90
+ await userEvent.click(within(screen.getByRole('application')).getByRole('button', { name: /June 20/ }));
91
+ expect(onChange).toHaveBeenCalledWith(expect.any(Date));
92
+ const lastDate = onChange.mock.lastCall[0];
93
+ expect(lastDate.getFullYear()).toBe(2024);
94
+ expect(lastDate.getMonth()).toBe(5); // June is month index 5
95
+ expect(lastDate.getDate()).toBe(20);
96
+ });
97
+ test('clicking the Today button selects today\'s date', async () => {
98
+ render(_jsx(DatePicker, {}));
99
+ await userEvent.click(screen.getByRole('button', { name: 'Open date picker' }));
100
+ await userEvent.click(screen.getByRole('button', { name: 'Today' }));
101
+ expect(screen.getByRole('textbox')).toHaveValue(format(new Date(), 'dd/MM/yyyy'));
102
+ });
103
+ test('clicking the Today button closes the picker', async () => {
104
+ render(_jsx(DatePicker, {}));
105
+ await userEvent.click(screen.getByRole('button', { name: 'Open date picker' }));
106
+ await userEvent.click(screen.getByRole('button', { name: 'Today' }));
107
+ expect(screen.queryByRole('application')).not.toBeInTheDocument();
108
+ });
109
+ });
110
+ describe('controlled value prop', () => {
111
+ test('renders with the initial value', () => {
112
+ render(_jsx(DatePicker, { value: new Date(2024, 5, 15) }));
113
+ expect(screen.getByRole('textbox')).toHaveValue('15/06/2024');
114
+ });
115
+ test('updates the input when value prop changes', () => {
116
+ const { rerender } = render(_jsx(DatePicker, { value: new Date(2024, 5, 15) }));
117
+ rerender(_jsx(DatePicker, { value: new Date(2024, 11, 25) }));
118
+ expect(screen.getByRole('textbox')).toHaveValue('25/12/2024');
119
+ });
120
+ test('does not call onChange when value prop changes externally', () => {
121
+ const onChange = vi.fn();
122
+ const { rerender } = render(_jsx(DatePicker, { value: new Date(2024, 5, 15), onChange: onChange }));
123
+ onChange.mockClear();
124
+ rerender(_jsx(DatePicker, { value: new Date(2024, 11, 25), onChange: onChange }));
125
+ expect(onChange).not.toHaveBeenCalled();
126
+ });
127
+ test('still calls onChange when user interacts after a controlled value is set', async () => {
128
+ const onChange = vi.fn();
129
+ render(_jsx(DatePicker, { value: new Date(2024, 5, 15), onChange: onChange }));
130
+ onChange.mockClear();
131
+ // Navigate to June 2024 (already set via value) and pick a different day
132
+ await userEvent.click(screen.getByRole('button', { name: 'Open date picker' }));
133
+ await userEvent.click(within(screen.getByRole('application')).getByRole('button', { name: /June 20/ }));
134
+ expect(onChange).toHaveBeenCalledWith(expect.any(Date));
135
+ const lastDate = onChange.mock.lastCall[0];
136
+ expect(lastDate.getDate()).toBe(20);
137
+ });
138
+ });
139
+ describe('custom dateFormat prop', () => {
140
+ test('formats the value according to the custom format', () => {
141
+ render(_jsx(DatePicker, { dateFormat: "yyyy-MM-dd" }));
142
+ fireEvent.change(screen.getByRole('textbox'), { target: { value: '2024-06-15' } });
143
+ expect(screen.getByRole('textbox')).toHaveValue('2024-06-15');
144
+ });
145
+ test('calls onChange with the correctly parsed date for a custom format', () => {
146
+ const onChange = vi.fn();
147
+ render(_jsx(DatePicker, { dateFormat: "MM/dd/yyyy", onChange: onChange }));
148
+ onChange.mockClear();
149
+ fireEvent.change(screen.getByRole('textbox'), { target: { value: '06/15/2024' } });
150
+ expect(onChange).toHaveBeenLastCalledWith(expect.any(Date));
151
+ const lastDate = onChange.mock.lastCall[0];
152
+ expect(lastDate.getFullYear()).toBe(2024);
153
+ expect(lastDate.getMonth()).toBe(5); // June
154
+ expect(lastDate.getDate()).toBe(15);
155
+ });
156
+ });
157
+ });
158
+ //# sourceMappingURL=DatePicker.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.test.js","sourceRoot":"","sources":["../../../src/components/datePicker/DatePicker.test.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { type TextAreaProps } from './inputs/textArea/TextArea';
3
3
  import { type NumberInputProps } from './inputs/number/NumberInput';
4
4
  import { type ColourPickerDropdownProps } from './inputs/colourPickerDropdown/ColourPickerDropdown';
5
5
  import { type SelectDropdownInputProps } from './inputs/selectDropdown/SelectDropdown';
6
+ import { type DatePickerProps } from '../datePicker/DatePicker';
6
7
  type FormFieldProps = {
7
8
  className?: string;
8
9
  label?: string;
@@ -26,6 +27,9 @@ type FormFieldProps = {
26
27
  } | {
27
28
  inputType?: 'selectDropdown';
28
29
  inputProps?: SelectDropdownInputProps;
30
+ } | {
31
+ inputType?: 'datePicker';
32
+ inputProps?: DatePickerProps;
29
33
  });
30
34
  export declare const FormField: (props: FormFieldProps) => import("react/jsx-runtime").JSX.Element;
31
35
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../src/components/formField/FormField.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAwB,KAAK,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAC1H,OAAO,EAAkB,KAAK,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAEvG,KAAK,cAAc,GAAG;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,CACA;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,cAAc,CAAA;CAAE,GACnD;IAAE,SAAS,CAAC,EAAE,UAAU,CAAC;IAAC,UAAU,CAAC,EAAE,aAAa,CAAA;CAAE,GACtD;IAAE,SAAS,CAAC,EAAE,QAAQ,CAAC;IAAC,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAAE,GACvD;IAAE,SAAS,CAAC,EAAE,cAAc,CAAC;IAAC,UAAU,CAAC,EAAE,yBAAyB,CAAA;CAAE,GACtE;IAAE,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAAC,UAAU,CAAC,EAAE,wBAAwB,CAAA;CAAE,CAC1E,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,4CA8D9C,CAAC"}
1
+ {"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../src/components/formField/FormField.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAwB,KAAK,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAC1H,OAAO,EAAkB,KAAK,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACvG,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEpF,KAAK,cAAc,GAAG;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,CACA;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,cAAc,CAAA;CAAE,GACnD;IAAE,SAAS,CAAC,EAAE,UAAU,CAAC;IAAC,UAAU,CAAC,EAAE,aAAa,CAAA;CAAE,GACtD;IAAE,SAAS,CAAC,EAAE,QAAQ,CAAC;IAAC,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAAE,GACvD;IAAE,SAAS,CAAC,EAAE,cAAc,CAAC;IAAC,UAAU,CAAC,EAAE,yBAAyB,CAAA;CAAE,GACtE;IAAE,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAAC,UAAU,CAAC,EAAE,wBAAwB,CAAA;CAAE,GACvE;IAAE,SAAS,CAAC,EAAE,YAAY,CAAC;IAAC,UAAU,CAAC,EAAE,eAAe,CAAA;CAAE,CAC7D,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,4CAiE9C,CAAC"}
@@ -7,6 +7,7 @@ import { TextArea } from './inputs/textArea/TextArea';
7
7
  import { NumberInput } from './inputs/number/NumberInput';
8
8
  import { ColourPickerDropdown } from './inputs/colourPickerDropdown/ColourPickerDropdown';
9
9
  import { SelectDropdown } from './inputs/selectDropdown/SelectDropdown';
10
+ import { DatePicker } from '../datePicker/DatePicker';
10
11
  export const FormField = (props) => {
11
12
  const { className, label, id, inputType = 'text', helperLinkText, helperLinkUrl, errorText, inputProps, fieldDescription } = props;
12
13
  const classes = classNames('ds-form-field', className);
@@ -23,6 +24,6 @@ export const FormField = (props) => {
23
24
  'hasError': !!errorText,
24
25
  'aria-invalid': !!errorText,
25
26
  };
26
- return (_jsxs("div", { className: classes, children: [label && (_jsx(Label, { htmlFor: id, children: label })), fieldDescription && (_jsx("span", { id: `${id}-description`, className: "ds-form-field__description", children: fieldDescription })), inputType === 'text' && (_jsx(TextInput, { ...sharedProps, ...inputProps })), inputType === 'textarea' && (_jsx(TextArea, { ...sharedProps, ...inputProps })), inputType === 'number' && (_jsx(NumberInput, { ...sharedProps, ...inputProps })), inputType === 'colourPicker' && (_jsx(ColourPickerDropdown, { ...sharedProps, ...inputProps })), inputType === 'selectDropdown' && (_jsx(SelectDropdown, { ...sharedProps, ...inputProps })), ((helperLinkText && helperLinkUrl) || errorText) && (_jsxs("div", { className: "ds-form-field__message", children: [errorText && (_jsxs("span", { className: "ds-form-field__message--error", id: `${id}-error`, children: [_jsx(Icon, { size: 12, name: "triangle-alert" }), errorText] })), helperLinkText && helperLinkUrl && (_jsxs("a", { href: helperLinkUrl, "aria-label": `${label} helper link`, className: "ds-form-field__message--helper", children: [helperLinkText, ' ', _jsx(Icon, { size: 12, name: "arrow-up-right" })] }))] }))] }));
27
+ return (_jsxs("div", { className: classes, children: [label && (_jsx(Label, { htmlFor: id, children: label })), fieldDescription && (_jsx("span", { id: `${id}-description`, className: "ds-form-field__description", children: fieldDescription })), inputType === 'text' && (_jsx(TextInput, { ...sharedProps, ...inputProps })), inputType === 'textarea' && (_jsx(TextArea, { ...sharedProps, ...inputProps })), inputType === 'number' && (_jsx(NumberInput, { ...sharedProps, ...inputProps })), inputType === 'colourPicker' && (_jsx(ColourPickerDropdown, { ...sharedProps, ...inputProps })), inputType === 'selectDropdown' && (_jsx(SelectDropdown, { ...sharedProps, ...inputProps })), inputType === 'datePicker' && (_jsx(DatePicker, { ...sharedProps, ...inputProps })), ((helperLinkText && helperLinkUrl) || errorText) && (_jsxs("div", { className: "ds-form-field__message", children: [errorText && (_jsxs("span", { className: "ds-form-field__message--error", id: `${id}-error`, children: [_jsx(Icon, { size: 12, name: "triangle-alert" }), errorText] })), helperLinkText && helperLinkUrl && (_jsxs("a", { href: helperLinkUrl, "aria-label": `${label} helper link`, className: "ds-form-field__message--helper", children: [helperLinkText, ' ', _jsx(Icon, { size: 12, name: "arrow-up-right" })] }))] }))] }));
27
28
  };
28
29
  //# sourceMappingURL=FormField.js.map