@arbor-education/design-system.components 4.0.0 → 4.2.0
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/.pre-commit-config.yaml +4 -0
- package/CHANGELOG.md +16 -0
- package/dist/components/formField/FormField.d.ts +15 -0
- package/dist/components/formField/FormField.d.ts.map +1 -1
- package/dist/components/formField/FormField.js +2 -1
- package/dist/components/formField/FormField.js.map +1 -1
- package/dist/components/formField/FormField.stories.d.ts +1 -0
- package/dist/components/formField/FormField.stories.d.ts.map +1 -1
- package/dist/components/formField/FormField.stories.js +71 -5
- package/dist/components/formField/FormField.stories.js.map +1 -1
- package/dist/components/formField/FormField.test.js +19 -1
- package/dist/components/formField/FormField.test.js.map +1 -1
- package/dist/components/formField/label/Label.js +2 -2
- package/dist/components/formField/label/Label.js.map +1 -1
- package/dist/components/widget/types.d.ts +9 -0
- package/dist/components/widget/types.d.ts.map +1 -1
- package/dist/components/widgetCalendar/WidgetCalendar.d.ts +4 -2
- package/dist/components/widgetCalendar/WidgetCalendar.d.ts.map +1 -1
- package/dist/components/widgetCalendar/WidgetCalendar.js +30 -5
- package/dist/components/widgetCalendar/WidgetCalendar.js.map +1 -1
- package/dist/components/widgetCalendar/WidgetCalendar.stories.d.ts +18 -2
- package/dist/components/widgetCalendar/WidgetCalendar.stories.d.ts.map +1 -1
- package/dist/components/widgetCalendar/WidgetCalendar.stories.js +231 -2
- package/dist/components/widgetCalendar/WidgetCalendar.stories.js.map +1 -1
- package/dist/components/widgetCalendar/WidgetCalendar.test.js +131 -1
- package/dist/components/widgetCalendar/WidgetCalendar.test.js.map +1 -1
- package/dist/components/widgetFavourites/WidgetFavourites.d.ts.map +1 -1
- package/dist/components/widgetFavourites/WidgetFavourites.js +5 -4
- package/dist/components/widgetFavourites/WidgetFavourites.js.map +1 -1
- package/dist/components/widgetFavourites/WidgetFavourites.stories.d.ts +3 -0
- package/dist/components/widgetFavourites/WidgetFavourites.stories.d.ts.map +1 -1
- package/dist/components/widgetFavourites/WidgetFavourites.stories.js +157 -0
- package/dist/components/widgetFavourites/WidgetFavourites.stories.js.map +1 -1
- package/dist/components/widgetFavourites/WidgetFavourites.test.js +41 -1
- package/dist/components/widgetFavourites/WidgetFavourites.test.js.map +1 -1
- package/dist/components/widgetFavourites/WidgetFavouritesItem.d.ts.map +1 -1
- package/dist/components/widgetFavourites/WidgetFavouritesItem.js +2 -2
- package/dist/components/widgetFavourites/WidgetFavouritesItem.js.map +1 -1
- package/dist/components/widgetFavourites/types.d.ts +4 -2
- package/dist/components/widgetFavourites/types.d.ts.map +1 -1
- package/dist/index.css +16 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/formField/FormField.stories.tsx +100 -5
- package/src/components/formField/FormField.test.tsx +36 -1
- package/src/components/formField/FormField.tsx +21 -2
- package/src/components/formField/label/Label.tsx +2 -2
- package/src/components/widget/types.ts +13 -0
- package/src/components/widgetCalendar/WidgetCalendar.stories.tsx +268 -2
- package/src/components/widgetCalendar/WidgetCalendar.test.tsx +242 -0
- package/src/components/widgetCalendar/WidgetCalendar.tsx +76 -32
- package/src/components/widgetCalendar/widgetCalendar.scss +9 -0
- package/src/components/widgetFavourites/WidgetFavourites.stories.tsx +217 -0
- package/src/components/widgetFavourites/WidgetFavourites.test.tsx +99 -0
- package/src/components/widgetFavourites/WidgetFavourites.tsx +6 -2
- package/src/components/widgetFavourites/WidgetFavouritesItem.tsx +2 -1
- package/src/components/widgetFavourites/types.ts +5 -2
- package/src/components/widgetFavourites/widgetFavourites.scss +7 -0
- package/src/index.ts +1 -0
- package/src/tokens.scss +1 -0
- package/tokens/json/Arbor.json +4 -0
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import classNames from 'classnames';
|
|
2
3
|
import { EmptyState } from '../emptyState/EmptyState.js';
|
|
3
4
|
import { Widget } from '../widget/Widget.js';
|
|
4
5
|
import { WidgetFavouritesItem } from './WidgetFavouritesItem.js';
|
|
5
6
|
const defaultEmptyState = (_jsx(EmptyState, { padding: "md", heading: "No favourites yet", subHeading: "Star pages from the sidebar to see them here." }));
|
|
6
7
|
export const WidgetFavourites = (props) => {
|
|
7
|
-
const { heading, tooltip, items, headingHref, isFloating = false, onRemoveItem, emptyState = defaultEmptyState, className, } = props;
|
|
8
|
+
const { heading, tooltip, items, headingHref, renderLink, linkProps, isFloating = false, onRemoveItem, emptyState = defaultEmptyState, className, } = props;
|
|
8
9
|
const isEmpty = items.length === 0;
|
|
9
10
|
const widgetCommonProps = {
|
|
10
11
|
tooltip,
|
|
11
12
|
isFloating,
|
|
12
13
|
isEmpty,
|
|
13
14
|
emptyState,
|
|
14
|
-
className,
|
|
15
|
+
className: classNames('ds-widget-favourites', className),
|
|
15
16
|
};
|
|
16
|
-
const body = (_jsxs(_Fragment, { children: [_jsx(Widget.Header, { children: heading }), _jsx(Widget.Body, { children: !isEmpty && (_jsx("ul", { className: "ds-widget-favourites__list", children: items.map(item => (_jsx(WidgetFavouritesItem, { id: item.id, label: item.label, href: item.href, removeLabel: item.removeLabel, onRemove: onRemoveItem ? () => onRemoveItem(item.id) : undefined }, item.id))) })) })] }));
|
|
17
|
+
const body = (_jsxs(_Fragment, { children: [_jsx(Widget.Header, { children: heading }), _jsx(Widget.Body, { children: !isEmpty && (_jsx("ul", { className: "ds-widget-favourites__list", children: items.map(item => (_jsx(WidgetFavouritesItem, { id: item.id, label: item.label, href: item.href, removeLabel: item.removeLabel, linkProps: item.linkProps, onRemove: onRemoveItem ? () => onRemoveItem(item.id) : undefined }, item.id))) })) })] }));
|
|
17
18
|
return (_jsx(Widget, { ...{
|
|
18
19
|
...widgetCommonProps,
|
|
19
|
-
...(headingHref ? { href: headingHref } : {}),
|
|
20
|
+
...(headingHref ? { href: headingHref, renderLink, linkProps } : {}),
|
|
20
21
|
}, children: body }));
|
|
21
22
|
};
|
|
22
23
|
WidgetFavourites.Item = WidgetFavouritesItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetFavourites.js","sourceRoot":"","sources":["../../../src/components/widgetFavourites/WidgetFavourites.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,iBAAiB,GAAG,CACxB,KAAC,UAAU,IACT,OAAO,EAAC,IAAI,EACZ,OAAO,EAAC,mBAAmB,EAC3B,UAAU,EAAC,+CAA+C,GAC1D,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA4B,EAAqB,EAAE;IAClF,MAAM,EACJ,OAAO,EACP,OAAO,EACP,KAAK,EACL,WAAW,EACX,UAAU,GAAG,KAAK,EAClB,YAAY,EACZ,UAAU,GAAG,iBAAiB,EAC9B,SAAS,GACV,GAAG,KAAK,CAAC;IAEV,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IAEnC,MAAM,iBAAiB,GAAG;QACxB,OAAO;QACP,UAAU;QACV,OAAO;QACP,UAAU;QACV,SAAS;
|
|
1
|
+
{"version":3,"file":"WidgetFavourites.js","sourceRoot":"","sources":["../../../src/components/widgetFavourites/WidgetFavourites.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,iBAAiB,GAAG,CACxB,KAAC,UAAU,IACT,OAAO,EAAC,IAAI,EACZ,OAAO,EAAC,mBAAmB,EAC3B,UAAU,EAAC,+CAA+C,GAC1D,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA4B,EAAqB,EAAE;IAClF,MAAM,EACJ,OAAO,EACP,OAAO,EACP,KAAK,EACL,WAAW,EACX,UAAU,EACV,SAAS,EACT,UAAU,GAAG,KAAK,EAClB,YAAY,EACZ,UAAU,GAAG,iBAAiB,EAC9B,SAAS,GACV,GAAG,KAAK,CAAC;IAEV,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IAEnC,MAAM,iBAAiB,GAAG;QACxB,OAAO;QACP,UAAU;QACV,OAAO;QACP,UAAU;QACV,SAAS,EAAE,UAAU,CAAC,sBAAsB,EAAE,SAAS,CAAC;KACzD,CAAC;IAEF,MAAM,IAAI,GAAG,CACX,8BACE,KAAC,MAAM,CAAC,MAAM,cAAE,OAAO,GAAiB,EACxC,KAAC,MAAM,CAAC,IAAI,cACT,CAAC,OAAO,IAAI,CACX,aAAI,SAAS,EAAC,4BAA4B,YACvC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACjB,KAAC,oBAAoB,IAEnB,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAN3D,IAAI,CAAC,EAAE,CAOZ,CACH,CAAC,GACC,CACN,GACW,IACb,CACJ,CAAC;IAEF,OAAO,CACL,KAAC,MAAM,OACA;YACH,GAAG,iBAAiB;YACpB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3C,YAE1B,IAAI,GACE,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,gBAAgB,CAAC,IAAI,GAAG,oBAAoB,CAAC"}
|
|
@@ -79,6 +79,9 @@ declare const meta: {
|
|
|
79
79
|
export default meta;
|
|
80
80
|
type Story = StoryObj<typeof meta>;
|
|
81
81
|
export declare const Default: Story;
|
|
82
|
+
export declare const WithHeadingLinkProps: Story;
|
|
83
|
+
export declare const WithItemLinkProps: Story;
|
|
82
84
|
export declare const WithConfirmRemove: Story;
|
|
85
|
+
export declare const LongList: Story;
|
|
83
86
|
export declare const Empty: Story;
|
|
84
87
|
//# sourceMappingURL=WidgetFavourites.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetFavourites.stories.d.ts","sourceRoot":"","sources":["../../../src/components/widgetFavourites/WidgetFavourites.stories.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"WidgetFavourites.stories.d.ts","sourceRoot":"","sources":["../../../src/components/widgetFavourites/WidgetFavourites.stories.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AA+F3D,iBAAS,wBAAwB,gCAmBhC;AAED,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+C+B,CAAC;AAE1C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAsOnC,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAgDlC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAsD/B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAQ/B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAQtB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAQnB,CAAC"}
|
|
@@ -14,6 +14,11 @@ const initialItems = [
|
|
|
14
14
|
{ id: 'behaviour', label: 'Behaviour Incidents', href: '/behaviour/incidents' },
|
|
15
15
|
{ id: 'calendar', label: 'School Calendar', href: '/calendar' },
|
|
16
16
|
];
|
|
17
|
+
const longListItems = Array.from({ length: 20 }, (_, index) => ({
|
|
18
|
+
id: `favourite-${index + 1}`,
|
|
19
|
+
label: `Favourite page ${index + 1}`,
|
|
20
|
+
href: `/favourites/${index + 1}`,
|
|
21
|
+
}));
|
|
17
22
|
const DESCRIPTION_INTRO = [
|
|
18
23
|
'`WidgetFavourites` is a pre-composed dashboard widget for starred pages.',
|
|
19
24
|
'It wraps [`Widget`](?path=/docs/components-widget--docs) with a linked header and a list of favourite rows —',
|
|
@@ -46,11 +51,22 @@ const DEVELOPER_NOTES = [
|
|
|
46
51
|
'**Row link and remove are siblings.** The remove button is not nested inside the row anchor —',
|
|
47
52
|
'same pattern as sidebar favourites. Click handlers call `event.stopPropagation()`.',
|
|
48
53
|
'',
|
|
54
|
+
'**Height is bounded by a token.** `WidgetFavourites` caps itself at `--widget-favourites-max-height` (375px),',
|
|
55
|
+
'so a long list scrolls inside the widget body instead of growing the page. Override the token on an ancestor',
|
|
56
|
+
'to change the cap; no parent height is required.',
|
|
57
|
+
'',
|
|
49
58
|
'**Empty list uses Widget empty state.** When `items` is empty, `WidgetFavourites` sets `isEmpty` on the',
|
|
50
59
|
'underlying `Widget` and renders the default or custom `emptyState`.',
|
|
51
60
|
'',
|
|
52
61
|
'**Undo removal.** Wire removal in the parent and pass a foreground toast with `toastActions` for the recommended product flow.',
|
|
53
62
|
'',
|
|
63
|
+
'**`renderLink` and `linkProps` apply to the heading link only.** Both are forwarded to `Widget` only when',
|
|
64
|
+
'`headingHref` is set, and the types reject either prop without `headingHref`.',
|
|
65
|
+
'',
|
|
66
|
+
'**Items accept `linkProps` for row click handling.** `items[].linkProps` (or `linkProps` on',
|
|
67
|
+
'`WidgetFavourites.Item`) is spread onto the row `<a>`. `href` and `className` are applied after the spread',
|
|
68
|
+
'and cannot be overridden.',
|
|
69
|
+
'',
|
|
54
70
|
'---',
|
|
55
71
|
'',
|
|
56
72
|
'### Accessibility',
|
|
@@ -188,6 +204,43 @@ const WithConfirmRemoveTemplate = () => {
|
|
|
188
204
|
};
|
|
189
205
|
return (_jsxs(_Fragment, { children: [_jsx(WidgetFavourites, { heading: `Favourites (${items.length})`, tooltip: "Your starred pages appear here", headingHref: "/favourites", isFloating: true, items: items, onRemoveItem: setPendingRemoveId }), _jsxs(Modal, { open: pendingRemoveId !== null, title: pendingItem ? `Remove ${pendingItem.label}?` : 'Remove favourite?', children: [_jsx(Modal.Body, { children: _jsxs("p", { style: { margin: 0 }, children: ["Are you sure you want to remove", ' ', _jsx("strong", { children: pendingItem?.label }), ' ', "from your favourites?"] }) }), _jsxs(Modal.Footer, { children: [_jsx(Button, { variant: "secondary", onClick: () => setPendingRemoveId(null), children: "Cancel" }), _jsx(Button, { variant: "primary-destructive", onClick: handleConfirmRemove, children: "Yes, remove" })] })] })] }));
|
|
190
206
|
};
|
|
207
|
+
// Modifier-clicks (cmd/ctrl/shift/alt) open new tabs or windows, so leave them to the browser.
|
|
208
|
+
const isModifiedClick = (event) => event.metaKey || event.ctrlKey || event.shiftKey || event.altKey;
|
|
209
|
+
const LastClicked = ({ label, placeholder }) => (_jsx("span", { className: "ds-text", style: { color: 'var(--color-grey-600)' }, children: label
|
|
210
|
+
? (_jsxs(_Fragment, { children: ["Last clicked:", ' ', label] }))
|
|
211
|
+
: placeholder }));
|
|
212
|
+
const handleHeadingLinkClick = fn().mockName('linkProps.onClick');
|
|
213
|
+
const handleItemLinkClick = fn().mockName('items[].linkProps.onClick');
|
|
214
|
+
const WithHeadingLinkPropsTemplate = () => {
|
|
215
|
+
const [lastClickedHref, setLastClickedHref] = useState(null);
|
|
216
|
+
return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 'var(--spacing-large)' }, children: [_jsx(WidgetFavourites, { heading: `Favourites (${initialItems.length})`, tooltip: "Your starred pages appear here", headingHref: "/favourites", isFloating: true, items: initialItems, linkProps: {
|
|
217
|
+
onClick: (event) => {
|
|
218
|
+
handleHeadingLinkClick(event);
|
|
219
|
+
if (isModifiedClick(event)) {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
event.preventDefault();
|
|
223
|
+
setLastClickedHref(event.currentTarget.getAttribute('href'));
|
|
224
|
+
},
|
|
225
|
+
} }), _jsx(LastClicked, { label: lastClickedHref, placeholder: "Click the heading to see the handled navigation captured here." })] }));
|
|
226
|
+
};
|
|
227
|
+
const WithItemLinkPropsTemplate = () => {
|
|
228
|
+
const [lastClickedLabel, setLastClickedLabel] = useState(null);
|
|
229
|
+
const items = initialItems.map((item) => ({
|
|
230
|
+
...item,
|
|
231
|
+
linkProps: {
|
|
232
|
+
onClick: (event) => {
|
|
233
|
+
handleItemLinkClick(item.id, event);
|
|
234
|
+
if (isModifiedClick(event)) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
event.preventDefault();
|
|
238
|
+
setLastClickedLabel(item.label);
|
|
239
|
+
},
|
|
240
|
+
},
|
|
241
|
+
}));
|
|
242
|
+
return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', gap: 'var(--spacing-large)' }, children: [_jsx(WidgetFavourites, { heading: `Favourites (${items.length})`, tooltip: "Your starred pages appear here", isFloating: true, items: items }), _jsx(LastClicked, { label: lastClickedLabel, placeholder: "Click a favourite to see it captured here." })] }));
|
|
243
|
+
};
|
|
191
244
|
const EmptyTemplate = () => (_jsx(WidgetFavourites, { heading: "Favourites (0)", tooltip: "Your starred pages appear here", headingHref: "/favourites", isFloating: true, items: [] }));
|
|
192
245
|
export const Default = withDescription({
|
|
193
246
|
render: UndoableFavouritesTemplate,
|
|
@@ -195,12 +248,116 @@ export const Default = withDescription({
|
|
|
195
248
|
controls: { disable: true },
|
|
196
249
|
},
|
|
197
250
|
}, 'Recommended product flow: remove a favourite, then undo via a foreground toast. Each row shows the remove button when `onRemoveItem` is wired.');
|
|
251
|
+
export const WithHeadingLinkProps = {
|
|
252
|
+
name: 'With heading linkProps',
|
|
253
|
+
...withDescription({
|
|
254
|
+
render: WithHeadingLinkPropsTemplate,
|
|
255
|
+
parameters: {
|
|
256
|
+
controls: { disable: true },
|
|
257
|
+
docs: {
|
|
258
|
+
source: {
|
|
259
|
+
language: 'tsx',
|
|
260
|
+
code: `
|
|
261
|
+
import { WidgetFavourites } from '@arbor-education/design-system.components';
|
|
262
|
+
|
|
263
|
+
function FavouritesHeadingLinkPropsExample() {
|
|
264
|
+
return (
|
|
265
|
+
<WidgetFavourites
|
|
266
|
+
heading="Favourites"
|
|
267
|
+
headingHref="/favourites"
|
|
268
|
+
isFloating
|
|
269
|
+
items={items}
|
|
270
|
+
linkProps={{
|
|
271
|
+
onClick: (event) => {
|
|
272
|
+
// Leave modifier-clicks (new tab/window) to the browser.
|
|
273
|
+
if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) {
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
event.preventDefault();
|
|
277
|
+
navigate('/favourites');
|
|
278
|
+
},
|
|
279
|
+
}}
|
|
280
|
+
/>
|
|
281
|
+
);
|
|
282
|
+
}
|
|
283
|
+
export default FavouritesHeadingLinkPropsExample;
|
|
284
|
+
`.trim(),
|
|
285
|
+
},
|
|
286
|
+
},
|
|
287
|
+
},
|
|
288
|
+
}, [
|
|
289
|
+
'**Demonstrates the `linkProps` prop** (forwarded to `Widget` when `headingHref` is set). `linkProps` is',
|
|
290
|
+
'spread onto the heading `<a>`, so consumers can attach `onClick` for analytics or client-side navigation.',
|
|
291
|
+
'Each click is logged to the Actions panel as `linkProps.onClick`. A plain click calls `preventDefault()`',
|
|
292
|
+
'and shows the destination below the widget as "Last clicked: {href}"; modifier-clicks (cmd/ctrl/shift/alt)',
|
|
293
|
+
'are left to the browser. For a custom link element (e.g. a router link) use `renderLink` instead, as in',
|
|
294
|
+
'the `Widget` "With Render Link" story. For row clicks, see "With item linkProps".',
|
|
295
|
+
].join(' ')),
|
|
296
|
+
};
|
|
297
|
+
export const WithItemLinkProps = {
|
|
298
|
+
name: 'With item linkProps',
|
|
299
|
+
...withDescription({
|
|
300
|
+
render: WithItemLinkPropsTemplate,
|
|
301
|
+
parameters: {
|
|
302
|
+
controls: { disable: true },
|
|
303
|
+
docs: {
|
|
304
|
+
source: {
|
|
305
|
+
language: 'tsx',
|
|
306
|
+
code: `
|
|
307
|
+
import { useState } from 'react';
|
|
308
|
+
import { WidgetFavourites } from '@arbor-education/design-system.components';
|
|
309
|
+
import type { WidgetFavouritesItemData } from '@arbor-education/design-system.components';
|
|
310
|
+
|
|
311
|
+
function FavouritesItemLinkPropsExample() {
|
|
312
|
+
const [lastClicked, setLastClicked] = useState<string | null>(null);
|
|
313
|
+
|
|
314
|
+
const items: WidgetFavouritesItemData[] = favourites.map(item => ({
|
|
315
|
+
...item,
|
|
316
|
+
linkProps: {
|
|
317
|
+
onClick: (event) => {
|
|
318
|
+
// Leave modifier-clicks (new tab/window) to the browser.
|
|
319
|
+
if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) {
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
event.preventDefault();
|
|
323
|
+
setLastClicked(item.label);
|
|
324
|
+
navigate(item.href);
|
|
325
|
+
},
|
|
326
|
+
},
|
|
327
|
+
}));
|
|
328
|
+
|
|
329
|
+
return (
|
|
330
|
+
<>
|
|
331
|
+
<WidgetFavourites heading="Favourites" isFloating items={items} />
|
|
332
|
+
<span>Last clicked: {lastClicked ?? 'none yet'}</span>
|
|
333
|
+
</>
|
|
334
|
+
);
|
|
335
|
+
}
|
|
336
|
+
export default FavouritesItemLinkPropsExample;
|
|
337
|
+
`.trim(),
|
|
338
|
+
},
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
}, [
|
|
342
|
+
'**Demonstrates the `linkProps` field on `items`** (also accepted by `WidgetFavourites.Item`). Each item\'s',
|
|
343
|
+
'`linkProps` is spread onto its row `<a>`; `href` and `className` are applied after the spread and cannot',
|
|
344
|
+
'be overridden. Each click is logged to the Actions panel as `items[].linkProps.onClick` with the item id.',
|
|
345
|
+
'A plain click calls `preventDefault()` and shows the clicked favourite below the widget as',
|
|
346
|
+
'"Last clicked: {label}"; modifier-clicks (cmd/ctrl/shift/alt) are left to the browser.',
|
|
347
|
+
].join(' ')),
|
|
348
|
+
};
|
|
198
349
|
export const WithConfirmRemove = withDescription({
|
|
199
350
|
render: WithConfirmRemoveTemplate,
|
|
200
351
|
parameters: {
|
|
201
352
|
controls: { disable: true },
|
|
202
353
|
},
|
|
203
354
|
}, 'Alternative flow when removal must be confirmed before mutating state. The remove button opens a destructive modal.');
|
|
355
|
+
export const LongList = withDescription({
|
|
356
|
+
args: {
|
|
357
|
+
heading: `Favourites (${longListItems.length})`,
|
|
358
|
+
items: longListItems,
|
|
359
|
+
},
|
|
360
|
+
}, 'A long list stays within `--widget-favourites-max-height` (375px). The header stays fixed and only the list scrolls.');
|
|
204
361
|
export const Empty = withDescription({
|
|
205
362
|
render: EmptyTemplate,
|
|
206
363
|
parameters: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetFavourites.stories.js","sourceRoot":"","sources":["../../../src/components/widgetFavourites/WidgetFavourites.stories.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WidgetFavourites.stories.js","sourceRoot":"","sources":["../../../src/components/widgetFavourites/WidgetFavourites.stories.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import '@testing-library/jest-dom/vitest';
|
|
3
3
|
import { fireEvent, render, screen } from '@testing-library/react';
|
|
4
4
|
import userEvent from '@testing-library/user-event';
|
|
@@ -39,10 +39,50 @@ describe('WidgetFavourites', () => {
|
|
|
39
39
|
const { container } = render(_jsx(WidgetFavourites, { heading: "Favourites", items: mockItems, isFloating: true }));
|
|
40
40
|
expect(container.querySelector('.ds-widget--floating')).toBeInTheDocument();
|
|
41
41
|
});
|
|
42
|
+
test('applies the bounded root class alongside a consumer className', () => {
|
|
43
|
+
const { container } = render(_jsx(WidgetFavourites, { heading: "Favourites", items: mockItems, className: "consumer-class" }));
|
|
44
|
+
expect(container.querySelector('.ds-widget')).toHaveClass('ds-widget-favourites', 'consumer-class');
|
|
45
|
+
});
|
|
42
46
|
test('renders linked widget header when headingHref is provided', () => {
|
|
43
47
|
render(_jsx(WidgetFavourites, { heading: "Favourites (2)", headingHref: "/favourites", items: mockItems }));
|
|
44
48
|
expect(screen.getByRole('link', { name: 'Favourites (2)' })).toHaveAttribute('href', '/favourites');
|
|
45
49
|
});
|
|
50
|
+
test('forwards linkProps to the linked header', () => {
|
|
51
|
+
const onClick = vi.fn();
|
|
52
|
+
render(_jsx(WidgetFavourites, { heading: "Favourites (2)", headingHref: "/favourites", linkProps: { onClick, target: '_blank' }, items: mockItems }));
|
|
53
|
+
const link = screen.getByRole('link', { name: 'Favourites (2)' });
|
|
54
|
+
fireEvent.click(link);
|
|
55
|
+
expect(onClick).toHaveBeenCalledTimes(1);
|
|
56
|
+
expect(link).toHaveAttribute('target', '_blank');
|
|
57
|
+
});
|
|
58
|
+
test('renders the linked header through renderLink', () => {
|
|
59
|
+
render(_jsx(WidgetFavourites, { heading: "Favourites (2)", headingHref: "/favourites", renderLink: ({ href, className, children }) => (_jsx("a", { href: href, className: className, "data-router-link": "true", children: children })), items: mockItems }));
|
|
60
|
+
expect(screen.getByRole('link', { name: 'Favourites (2)' })).toHaveAttribute('data-router-link', 'true');
|
|
61
|
+
});
|
|
62
|
+
test('rejects heading link props without headingHref at the type level', () => {
|
|
63
|
+
render(_jsxs(_Fragment, { children: [_jsx(WidgetFavourites, { heading: "Favourites", items: mockItems, linkProps: { onClick: vi.fn() } }), _jsx(WidgetFavourites, { heading: "Favourites", items: mockItems, renderLink: () => _jsx("a", {}) })] }));
|
|
64
|
+
expect(screen.queryByRole('link', { name: 'Favourites' })).not.toBeInTheDocument();
|
|
65
|
+
});
|
|
66
|
+
test('applies item linkProps to the row link', () => {
|
|
67
|
+
const onClick = vi.fn();
|
|
68
|
+
render(_jsx(WidgetFavourites, { heading: "Favourites", items: [{
|
|
69
|
+
id: 'daily',
|
|
70
|
+
label: 'Daily Attendance',
|
|
71
|
+
href: '/attendance/daily',
|
|
72
|
+
linkProps: { onClick, target: '_blank' },
|
|
73
|
+
}] }));
|
|
74
|
+
const link = screen.getByRole('link', { name: 'Daily Attendance' });
|
|
75
|
+
fireEvent.click(link);
|
|
76
|
+
expect(onClick).toHaveBeenCalledTimes(1);
|
|
77
|
+
expect(link).toHaveAttribute('target', '_blank');
|
|
78
|
+
expect(link).toHaveAttribute('href', '/attendance/daily');
|
|
79
|
+
});
|
|
80
|
+
test('WidgetFavourites.Item applies linkProps to the row link', () => {
|
|
81
|
+
const onClick = vi.fn();
|
|
82
|
+
render(_jsx("ul", { children: _jsx(WidgetFavourites.Item, { id: "daily", label: "Daily Attendance", href: "/attendance/daily", linkProps: { onClick } }) }));
|
|
83
|
+
fireEvent.click(screen.getByRole('link', { name: 'Daily Attendance' }));
|
|
84
|
+
expect(onClick).toHaveBeenCalledTimes(1);
|
|
85
|
+
});
|
|
46
86
|
test('uses default remove label on remove button', () => {
|
|
47
87
|
render(_jsx(WidgetFavourites, { heading: "Favourites", items: mockItems, onRemoveItem: vi.fn() }));
|
|
48
88
|
expect(screen.getByTestId('widget-favourites-remove-daily')).toHaveAttribute('aria-label', 'Remove from favourites');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetFavourites.test.js","sourceRoot":"","sources":["../../../src/components/widgetFavourites/WidgetFavourites.test.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WidgetFavourites.test.js","sourceRoot":"","sources":["../../../src/components/widgetFavourites/WidgetFavourites.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetFavouritesItem.d.ts","sourceRoot":"","sources":["../../../src/components/widgetFavourites/WidgetFavouritesItem.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAI5D,eAAO,MAAM,oBAAoB,GAAI,OAAO,yBAAyB,KAAG,KAAK,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"WidgetFavouritesItem.d.ts","sourceRoot":"","sources":["../../../src/components/widgetFavourites/WidgetFavouritesItem.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAI5D,eAAO,MAAM,oBAAoB,GAAI,OAAO,yBAAyB,KAAG,KAAK,CAAC,GAAG,CAAC,OA8BjF,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { FavouriteButton } from '../favourite/FavouriteButton.js';
|
|
|
4
4
|
import { FAVOURITE_TOOLTIP } from '../../utils/favourites/favouriteConstants.js';
|
|
5
5
|
const linkClassName = 'ds-widget-favourites__link';
|
|
6
6
|
export const WidgetFavouritesItem = (props) => {
|
|
7
|
-
const { id, label, href, removeLabel = FAVOURITE_TOOLTIP.remove, onRemove, className, } = props;
|
|
8
|
-
return (_jsxs("li", { className: classNames('ds-widget-favourites__item', className), "data-testid": `widget-favourites-item-${id}`, children: [_jsx("a", { href: href, className: linkClassName, children: label }), onRemove && (_jsx(FavouriteButton, { variant: "remove", label: removeLabel, className: "remove-default-button-styles", "data-testid": `widget-favourites-remove-${id}`, onClick: onRemove }))] }));
|
|
7
|
+
const { id, label, href, removeLabel = FAVOURITE_TOOLTIP.remove, linkProps, onRemove, className, } = props;
|
|
8
|
+
return (_jsxs("li", { className: classNames('ds-widget-favourites__item', className), "data-testid": `widget-favourites-item-${id}`, children: [_jsx("a", { ...linkProps, href: href, className: linkClassName, children: label }), onRemove && (_jsx(FavouriteButton, { variant: "remove", label: removeLabel, className: "remove-default-button-styles", "data-testid": `widget-favourites-remove-${id}`, onClick: onRemove }))] }));
|
|
9
9
|
};
|
|
10
10
|
//# sourceMappingURL=WidgetFavouritesItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetFavouritesItem.js","sourceRoot":"","sources":["../../../src/components/widgetFavourites/WidgetFavouritesItem.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAGxE,MAAM,aAAa,GAAG,4BAA4B,CAAC;AAEnD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAqB,EAAE;IAC1F,MAAM,EACJ,EAAE,EACF,KAAK,EACL,IAAI,EACJ,WAAW,GAAG,iBAAiB,CAAC,MAAM,EACtC,QAAQ,EACR,SAAS,GACV,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,cACE,SAAS,EAAE,UAAU,CAAC,4BAA4B,EAAE,SAAS,CAAC,iBACjD,0BAA0B,EAAE,EAAE,aAE3C,
|
|
1
|
+
{"version":3,"file":"WidgetFavouritesItem.js","sourceRoot":"","sources":["../../../src/components/widgetFavourites/WidgetFavouritesItem.tsx"],"names":[],"mappings":";AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAGxE,MAAM,aAAa,GAAG,4BAA4B,CAAC;AAEnD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAqB,EAAE;IAC1F,MAAM,EACJ,EAAE,EACF,KAAK,EACL,IAAI,EACJ,WAAW,GAAG,iBAAiB,CAAC,MAAM,EACtC,SAAS,EACT,QAAQ,EACR,SAAS,GACV,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,cACE,SAAS,EAAE,UAAU,CAAC,4BAA4B,EAAE,SAAS,CAAC,iBACjD,0BAA0B,EAAE,EAAE,aAE3C,eAAO,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,YACnD,KAAK,GACJ,EACH,QAAQ,IAAI,CACX,KAAC,eAAe,IACd,OAAO,EAAC,QAAQ,EAChB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAC,8BAA8B,iBAC3B,4BAA4B,EAAE,EAAE,EAC7C,OAAO,EAAE,QAAQ,GACjB,CACH,IACE,CACN,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
+
import type { WidgetHeadingLinkProps, WidgetLinkedProps } from '../widget/types.js';
|
|
1
2
|
export type WidgetFavouritesItemData = {
|
|
2
3
|
id: string;
|
|
3
4
|
label: string;
|
|
4
5
|
href: string;
|
|
5
6
|
removeLabel?: string;
|
|
7
|
+
linkProps?: WidgetLinkedProps['linkProps'];
|
|
6
8
|
};
|
|
7
|
-
export type WidgetFavouritesProps = {
|
|
9
|
+
export type WidgetFavouritesProps = WidgetHeadingLinkProps & {
|
|
8
10
|
heading: React.ReactNode;
|
|
9
11
|
tooltip?: string;
|
|
10
12
|
items: WidgetFavouritesItemData[];
|
|
11
|
-
headingHref?: string;
|
|
12
13
|
isFloating?: boolean;
|
|
13
14
|
onRemoveItem?: (id: string) => void;
|
|
14
15
|
emptyState?: React.ReactNode;
|
|
@@ -19,6 +20,7 @@ export type WidgetFavouritesItemProps = {
|
|
|
19
20
|
label: string;
|
|
20
21
|
href: string;
|
|
21
22
|
removeLabel?: string;
|
|
23
|
+
linkProps?: WidgetLinkedProps['linkProps'];
|
|
22
24
|
onRemove?: () => void;
|
|
23
25
|
className?: string;
|
|
24
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/widgetFavourites/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/widgetFavourites/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEzF,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,GAAG;IAC3D,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC"}
|
package/dist/index.css
CHANGED
|
@@ -1487,6 +1487,7 @@
|
|
|
1487
1487
|
--widget-favourites-weight-border: var(--border-weight);
|
|
1488
1488
|
--widget-favourites-spacing-vertical: var(--spacing-small);
|
|
1489
1489
|
--widget-favourites-spacing-horizontal: var(--spacing-small);
|
|
1490
|
+
--widget-favourites-max-height: 375px;
|
|
1490
1491
|
--widget-attachments-hover-color-icon: var(--color-grey-900);
|
|
1491
1492
|
--widget-attachments-hover-color-text: var(--color-grey-900);
|
|
1492
1493
|
--widget-attachments-hover-color-background: var(--color-grey-100);
|
|
@@ -6483,6 +6484,21 @@ li.ds-combobox__option--disabled {
|
|
|
6483
6484
|
color: var(--widget-list-row-hover-color-icon-arrow);
|
|
6484
6485
|
}
|
|
6485
6486
|
|
|
6487
|
+
.ds-widget-calendar__group-heading {
|
|
6488
|
+
color: var(--widget-calendar-color-text);
|
|
6489
|
+
font-family: var(--type-body-bold-family);
|
|
6490
|
+
font-size: var(--type-body-bold-size);
|
|
6491
|
+
font-style: normal;
|
|
6492
|
+
font-weight: var(--type-body-bold-weight);
|
|
6493
|
+
line-height: 150%;
|
|
6494
|
+
}
|
|
6495
|
+
|
|
6496
|
+
.ds-widget.ds-widget-favourites {
|
|
6497
|
+
display: grid;
|
|
6498
|
+
grid-template-rows: minmax(0, 1fr);
|
|
6499
|
+
max-height: var(--widget-favourites-max-height);
|
|
6500
|
+
}
|
|
6501
|
+
|
|
6486
6502
|
.ds-widget-favourites__list {
|
|
6487
6503
|
list-style: none;
|
|
6488
6504
|
margin: 0;
|