@arbor-education/design-system.components 0.3.6 → 0.4.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.
- package/CHANGELOG.md +16 -0
- package/CLAUDE.md +9 -0
- package/dist/components/avatar/Avatar.d.ts +11 -0
- package/dist/components/avatar/Avatar.d.ts.map +1 -0
- package/dist/components/avatar/Avatar.js +17 -0
- package/dist/components/avatar/Avatar.js.map +1 -0
- package/dist/components/avatar/Avatar.stories.d.ts +14 -0
- package/dist/components/avatar/Avatar.stories.d.ts.map +1 -0
- package/dist/components/avatar/Avatar.stories.js +66 -0
- package/dist/components/avatar/Avatar.stories.js.map +1 -0
- package/dist/components/avatar/Avatar.test.d.ts +2 -0
- package/dist/components/avatar/Avatar.test.d.ts.map +1 -0
- package/dist/components/avatar/Avatar.test.js +51 -0
- package/dist/components/avatar/Avatar.test.js.map +1 -0
- package/dist/components/banner/Banner.d.ts +19 -0
- package/dist/components/banner/Banner.d.ts.map +1 -0
- package/dist/components/banner/Banner.js +33 -0
- package/dist/components/banner/Banner.js.map +1 -0
- package/dist/components/banner/Banner.stories.d.ts +72 -0
- package/dist/components/banner/Banner.stories.d.ts.map +1 -0
- package/dist/components/banner/Banner.stories.js +84 -0
- package/dist/components/banner/Banner.stories.js.map +1 -0
- package/dist/components/banner/Banner.test.d.ts +2 -0
- package/dist/components/banner/Banner.test.d.ts.map +1 -0
- package/dist/components/banner/Banner.test.js +72 -0
- package/dist/components/banner/Banner.test.js.map +1 -0
- package/dist/components/dropdown/Dropdown.d.ts +2 -0
- package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
- package/dist/components/dropdown/Dropdown.js +5 -1
- package/dist/components/dropdown/Dropdown.js.map +1 -1
- package/dist/components/dropdown/items/DropdownGroup.d.ts +3 -0
- package/dist/components/dropdown/items/DropdownGroup.d.ts.map +1 -0
- package/dist/components/dropdown/items/DropdownGroup.js +8 -0
- package/dist/components/dropdown/items/DropdownGroup.js.map +1 -0
- package/dist/components/dropdown/items/DropdownSeparator.d.ts +3 -0
- package/dist/components/dropdown/items/DropdownSeparator.d.ts.map +1 -0
- package/dist/components/dropdown/items/DropdownSeparator.js +8 -0
- package/dist/components/dropdown/items/DropdownSeparator.js.map +1 -0
- package/dist/components/userDropdown/UserDropdown.d.ts +47 -0
- package/dist/components/userDropdown/UserDropdown.d.ts.map +1 -0
- package/dist/components/userDropdown/UserDropdown.js +13 -0
- package/dist/components/userDropdown/UserDropdown.js.map +1 -0
- package/dist/components/userDropdown/UserDropdown.stories.d.ts +12 -0
- package/dist/components/userDropdown/UserDropdown.stories.d.ts.map +1 -0
- package/dist/components/userDropdown/UserDropdown.stories.js +222 -0
- package/dist/components/userDropdown/UserDropdown.stories.js.map +1 -0
- package/dist/components/userDropdown/UserDropdown.test.d.ts +2 -0
- package/dist/components/userDropdown/UserDropdown.test.d.ts.map +1 -0
- package/dist/components/userDropdown/UserDropdown.test.js +197 -0
- package/dist/components/userDropdown/UserDropdown.test.js.map +1 -0
- package/dist/components/userDropdown/assets/arbor.png +0 -0
- package/dist/components/userDropdown/assets/govhub.png +0 -0
- package/dist/components/userDropdown/assets/key.png +0 -0
- package/dist/components/userDropdown/assets/logos.d.ts +7 -0
- package/dist/components/userDropdown/assets/logos.d.ts.map +1 -0
- package/dist/components/userDropdown/assets/logos.js +13 -0
- package/dist/components/userDropdown/assets/logos.js.map +1 -0
- package/dist/components/userDropdown/assets/robin.png +0 -0
- package/dist/components/userDropdown/assets/sampeople.png +0 -0
- package/dist/components/userDropdown/assets/timetabler.png +0 -0
- package/dist/components/userDropdown/internal/UserDropdownAppItem.d.ts +3 -0
- package/dist/components/userDropdown/internal/UserDropdownAppItem.d.ts.map +1 -0
- package/dist/components/userDropdown/internal/UserDropdownAppItem.js +9 -0
- package/dist/components/userDropdown/internal/UserDropdownAppItem.js.map +1 -0
- package/dist/components/userDropdown/internal/UserDropdownCollapsibleSection.d.ts +9 -0
- package/dist/components/userDropdown/internal/UserDropdownCollapsibleSection.d.ts.map +1 -0
- package/dist/components/userDropdown/internal/UserDropdownCollapsibleSection.js +11 -0
- package/dist/components/userDropdown/internal/UserDropdownCollapsibleSection.js.map +1 -0
- package/dist/components/userDropdown/internal/UserDropdownSignOut.d.ts +7 -0
- package/dist/components/userDropdown/internal/UserDropdownSignOut.d.ts.map +1 -0
- package/dist/components/userDropdown/internal/UserDropdownSignOut.js +9 -0
- package/dist/components/userDropdown/internal/UserDropdownSignOut.js.map +1 -0
- package/dist/components/userDropdown/internal/UserDropdownTrigger.d.ts +11 -0
- package/dist/components/userDropdown/internal/UserDropdownTrigger.d.ts.map +1 -0
- package/dist/components/userDropdown/internal/UserDropdownTrigger.js +10 -0
- package/dist/components/userDropdown/internal/UserDropdownTrigger.js.map +1 -0
- package/dist/components/userDropdown/internal/UserDropdownUserInfo.d.ts +8 -0
- package/dist/components/userDropdown/internal/UserDropdownUserInfo.d.ts.map +1 -0
- package/dist/components/userDropdown/internal/UserDropdownUserInfo.js +17 -0
- package/dist/components/userDropdown/internal/UserDropdownUserInfo.js.map +1 -0
- package/dist/index.css +463 -53
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/src/components/avatar/Avatar.stories.tsx +84 -0
- package/src/components/avatar/Avatar.test.tsx +60 -0
- package/src/components/avatar/Avatar.tsx +68 -0
- package/src/components/avatar/avatar.scss +71 -0
- package/src/components/banner/Banner.stories.tsx +96 -0
- package/src/components/banner/Banner.test.tsx +86 -0
- package/src/components/banner/Banner.tsx +81 -0
- package/src/components/banner/banner.scss +67 -0
- package/src/components/button/button.scss +0 -5
- package/src/components/card/card.scss +0 -3
- package/src/components/dropdown/Dropdown.tsx +5 -1
- package/src/components/dropdown/dropdown.scss +4 -4
- package/src/components/dropdown/items/DropdownGroup.tsx +11 -0
- package/src/components/dropdown/items/DropdownSeparator.tsx +9 -0
- package/src/components/formField/fieldset/fieldset.scss +0 -2
- package/src/components/formField/formField.scss +0 -2
- package/src/components/formField/inputs/checkbox/checkboxInput.scss +0 -2
- package/src/components/formField/inputs/input.scss +0 -3
- package/src/components/formField/inputs/radio/radioButtonInput.scss +0 -2
- package/src/components/formField/inputs/selectDropdown/selectDropdown.scss +0 -1
- package/src/components/formField/label/label.scss +0 -2
- package/src/components/modal/modal.scss +0 -3
- package/src/components/pill/pill.scss +0 -3
- package/src/components/searchBar/searchBar.scss +0 -3
- package/src/components/table/columnFilters/columnFilters.scss +0 -6
- package/src/components/table/pagination/pagination.scss +0 -4
- package/src/components/tabs/tabs.scss +0 -2
- package/src/components/tag/tag.scss +0 -3
- package/src/components/toast/toast.scss +0 -1
- package/src/components/tooltip/tooltip.scss +0 -3
- package/src/components/userDropdown/UserDropdown.stories.tsx +237 -0
- package/src/components/userDropdown/UserDropdown.test.tsx +349 -0
- package/src/components/userDropdown/UserDropdown.tsx +110 -0
- package/src/components/userDropdown/assets/arbor.png +0 -0
- package/src/components/userDropdown/assets/govhub.png +0 -0
- package/src/components/userDropdown/assets/key.png +0 -0
- package/src/components/userDropdown/assets/logos.ts +13 -0
- package/src/components/userDropdown/assets/robin.png +0 -0
- package/src/components/userDropdown/assets/sampeople.png +0 -0
- package/src/components/userDropdown/assets/timetabler.png +0 -0
- package/src/components/userDropdown/internal/UserDropdownAppItem.tsx +21 -0
- package/src/components/userDropdown/internal/UserDropdownCollapsibleSection.tsx +38 -0
- package/src/components/userDropdown/internal/UserDropdownSignOut.tsx +19 -0
- package/src/components/userDropdown/internal/UserDropdownTrigger.tsx +42 -0
- package/src/components/userDropdown/internal/UserDropdownUserInfo.tsx +60 -0
- package/src/components/userDropdown/userDropdown.scss +377 -0
- package/src/global.scss +9 -1
- package/src/index.scss +3 -0
- package/src/index.ts +5 -0
- package/tsconfig.json +1 -1
- package/vite-env.d.ts +31 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownSeparator.d.ts","sourceRoot":"","sources":["../../../../src/components/dropdown/items/DropdownSeparator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,eAAO,MAAM,iBAAiB,GAAI,OAAO,YAAY,CAAC,0BAA0B,4CAK/E,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { DropdownMenu } from 'radix-ui';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
export const DropdownSeparator = (props) => {
|
|
5
|
+
const { className = '', ...rest } = props;
|
|
6
|
+
return (_jsx(DropdownMenu.Separator, { className: classNames('ds-dropdown__separator', className), ...rest }));
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=DropdownSeparator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownSeparator.js","sourceRoot":"","sources":["../../../../src/components/dropdown/items/DropdownSeparator.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA8C,EAAE,EAAE;IAClF,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAC1C,OAAO,CACL,KAAC,YAAY,CAAC,SAAS,IAAC,SAAS,EAAE,UAAU,CAAC,wBAAwB,EAAE,SAAS,CAAC,KAAM,IAAI,GAAI,CACjG,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type UserDropdownUser = {
|
|
3
|
+
name: string;
|
|
4
|
+
subtitle?: string;
|
|
5
|
+
avatarSrc?: string;
|
|
6
|
+
avatarAlt?: string;
|
|
7
|
+
avatarInitials?: string;
|
|
8
|
+
};
|
|
9
|
+
export type UserDropdownApp = {
|
|
10
|
+
logo?: React.ReactNode;
|
|
11
|
+
name: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
onClick?: () => void;
|
|
14
|
+
};
|
|
15
|
+
export type UserDropdownSection = {
|
|
16
|
+
label?: string;
|
|
17
|
+
apps: UserDropdownApp[];
|
|
18
|
+
};
|
|
19
|
+
export type UserDropdownUserInfoAction = {
|
|
20
|
+
type: 'link';
|
|
21
|
+
onClick: () => void;
|
|
22
|
+
} | {
|
|
23
|
+
type: 'menu';
|
|
24
|
+
items: Array<{
|
|
25
|
+
label: string;
|
|
26
|
+
onClick: () => void;
|
|
27
|
+
}>;
|
|
28
|
+
};
|
|
29
|
+
export type UserDropdownProps = {
|
|
30
|
+
user: UserDropdownUser;
|
|
31
|
+
logoSrc?: string;
|
|
32
|
+
logoAlt?: string;
|
|
33
|
+
sections?: UserDropdownSection[];
|
|
34
|
+
discoverSection?: {
|
|
35
|
+
label: string;
|
|
36
|
+
apps: UserDropdownApp[];
|
|
37
|
+
defaultOpen?: boolean;
|
|
38
|
+
};
|
|
39
|
+
userInfoAction?: UserDropdownUserInfoAction;
|
|
40
|
+
onSignOut: () => void;
|
|
41
|
+
signOutLabel?: string;
|
|
42
|
+
open?: boolean;
|
|
43
|
+
onOpenChange?: (open: boolean) => void;
|
|
44
|
+
variant?: 'dark' | 'light';
|
|
45
|
+
};
|
|
46
|
+
export declare const UserDropdown: (props: UserDropdownProps) => import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
//# sourceMappingURL=UserDropdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserDropdown.d.ts","sourceRoot":"","sources":["../../../src/components/userDropdown/UserDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,eAAe,EAAE,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAChC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AAE7E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,eAAe,CAAC,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,eAAe,EAAE,CAAC;QACxB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,cAAc,CAAC,EAAE,0BAA0B,CAAC;IAC5C,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,iBAAiB,4CA2DpD,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Dropdown } from '../dropdown/Dropdown';
|
|
4
|
+
import { UserDropdownTrigger } from './internal/UserDropdownTrigger';
|
|
5
|
+
import { UserDropdownUserInfo } from './internal/UserDropdownUserInfo';
|
|
6
|
+
import { UserDropdownAppItem } from './internal/UserDropdownAppItem';
|
|
7
|
+
import { UserDropdownCollapsibleSection } from './internal/UserDropdownCollapsibleSection';
|
|
8
|
+
import { UserDropdownSignOut } from './internal/UserDropdownSignOut';
|
|
9
|
+
export const UserDropdown = (props) => {
|
|
10
|
+
const { user, logoSrc, logoAlt, sections = [], discoverSection, userInfoAction, onSignOut, signOutLabel, open, onOpenChange, variant = 'dark', } = props;
|
|
11
|
+
return (_jsxs(Dropdown, { open: open, onOpenChange: onOpenChange, children: [_jsx(UserDropdownTrigger, { avatarSrc: user.avatarSrc, avatarAlt: user.avatarAlt, avatarInitials: user.avatarInitials, logoSrc: logoSrc, logoAlt: logoAlt, variant: variant }), _jsxs(Dropdown.Content, { className: "ds-user-dropdown__content", contentProps: { sideOffset: 12 }, children: [_jsx(UserDropdownUserInfo, { user: user, action: userInfoAction }), sections.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Dropdown.Separator, { className: "ds-user-dropdown__divider" }), sections.map((section, index) => (_jsxs(React.Fragment, { children: [section.label && _jsx("div", { className: "ds-user-dropdown__section-label", children: section.label }), _jsx(Dropdown.Group, { className: "ds-user-dropdown__section", children: section.apps.map((app, appIndex) => (_jsx(UserDropdownAppItem, { ...app }, appIndex))) })] }, index)))] })), discoverSection && (_jsx(UserDropdownCollapsibleSection, { label: discoverSection.label, apps: discoverSection.apps, defaultOpen: discoverSection.defaultOpen })), _jsx(Dropdown.Separator, { className: "ds-user-dropdown__divider" }), _jsx(UserDropdownSignOut, { onClick: onSignOut, label: signOutLabel })] })] }));
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=UserDropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserDropdown.js","sourceRoot":"","sources":["../../../src/components/userDropdown/UserDropdown.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AA4CrE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAwB,EAAE,EAAE;IACvD,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,GAAG,EAAE,EACb,eAAe,EACf,cAAc,EACd,SAAS,EACT,YAAY,EACZ,IAAI,EACJ,YAAY,EACZ,OAAO,GAAG,MAAM,GACjB,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,MAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,aAC9C,KAAC,mBAAmB,IAClB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GAChB,EAEF,MAAC,QAAQ,CAAC,OAAO,IAAC,SAAS,EAAC,2BAA2B,EAAC,YAAY,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,aACtF,KAAC,oBAAoB,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,GAAI,EAE3D,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CACtB,8BACE,KAAC,QAAQ,CAAC,SAAS,IAAC,SAAS,EAAC,2BAA2B,GAAG,EAC3D,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAChC,MAAC,KAAK,CAAC,QAAQ,eACZ,OAAO,CAAC,KAAK,IAAI,cAAK,SAAS,EAAC,iCAAiC,YAAE,OAAO,CAAC,KAAK,GAAO,EACxF,KAAC,QAAQ,CAAC,KAAK,IAAC,SAAS,EAAC,2BAA2B,YAClD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CACnC,KAAC,mBAAmB,OAAoB,GAAG,IAAjB,QAAQ,CAAa,CAChD,CAAC,GACa,KANE,KAAK,CAOT,CAClB,CAAC,IACD,CACJ,EAEA,eAAe,IAAI,CAClB,KAAC,8BAA8B,IAC7B,KAAK,EAAE,eAAe,CAAC,KAAK,EAC5B,IAAI,EAAE,eAAe,CAAC,IAAI,EAC1B,WAAW,EAAE,eAAe,CAAC,WAAW,GACxC,CACH,EAED,KAAC,QAAQ,CAAC,SAAS,IAAC,SAAS,EAAC,2BAA2B,GAAG,EAE5D,KAAC,mBAAmB,IAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,GAAI,IAC/C,IACV,CACZ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { UserDropdown } from './UserDropdown';
|
|
3
|
+
declare const meta: Meta<typeof UserDropdown>;
|
|
4
|
+
type Story = StoryObj<typeof UserDropdown>;
|
|
5
|
+
export declare const Default: Story;
|
|
6
|
+
export declare const WithApps: Story;
|
|
7
|
+
export declare const Minimal: Story;
|
|
8
|
+
export declare const WithMenu: Story;
|
|
9
|
+
export declare const DarkVariant: Story;
|
|
10
|
+
export declare const LightVariant: Story;
|
|
11
|
+
export default meta;
|
|
12
|
+
//# sourceMappingURL=UserDropdown.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserDropdown.stories.d.ts","sourceRoot":"","sources":["../../../src/components/userDropdown/UserDropdown.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,YAAY,CAInC,CAAC;AAEF,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,YAAY,CAAC,CAAC;AAoB3C,eAAO,MAAM,OAAO,EAAE,KAkErB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAkBtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAiCtB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAkCzB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAkC1B,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { UserDropdown } from './UserDropdown';
|
|
3
|
+
import { ArborLogo, GovhubLogo, KeyLogo, RobinLogo, SampeopleLogo, TimetablerLogo } from './assets/logos';
|
|
4
|
+
const meta = {
|
|
5
|
+
title: 'Components/UserDropdown',
|
|
6
|
+
component: UserDropdown,
|
|
7
|
+
tags: ['autodocs'],
|
|
8
|
+
};
|
|
9
|
+
// Mock avatar image (placeholder)
|
|
10
|
+
const avatarSrc = 'data:image/svg+xml,%3Csvg width="32" height="32" xmlns="http://www.w3.org/2000/svg"%3E%3Ccircle cx="16" cy="16" r="16" fill="%233cad51"/%3E%3Ctext x="16" y="21" font-family="Arial" font-size="14" font-weight="bold" fill="white" text-anchor="middle"%3ECM%3C/text%3E%3C/svg%3E';
|
|
11
|
+
// Import real logos from assets
|
|
12
|
+
const logoArborWorkflows = ArborLogo;
|
|
13
|
+
const logoGovernorHub = GovhubLogo;
|
|
14
|
+
const logoTheKey = KeyLogo;
|
|
15
|
+
const logoRobin = RobinLogo;
|
|
16
|
+
const logoSamPeople = SampeopleLogo;
|
|
17
|
+
const logoTimetabler = TimetablerLogo;
|
|
18
|
+
const AppLogo = ({ src, alt }) => (_jsx("img", { src: src, alt: alt, width: 24, height: 24, style: { objectFit: 'contain' } }));
|
|
19
|
+
// Mock company logo SVG
|
|
20
|
+
const mockLogoSrc = 'data:image/svg+xml,%3Csvg width="50" height="30" xmlns="http://www.w3.org/2000/svg"%3E%3Crect width="50" height="30" rx="4" fill="%233cad51"/%3E%3Ctext x="25" y="20" font-family="Arial" font-size="14" font-weight="bold" fill="white" text-anchor="middle"%3ELogo%3C/text%3E%3C/svg%3E';
|
|
21
|
+
export const Default = {
|
|
22
|
+
args: {
|
|
23
|
+
user: {
|
|
24
|
+
name: 'Christine Montgomery-Smith',
|
|
25
|
+
subtitle: 'Business Manager',
|
|
26
|
+
avatarSrc,
|
|
27
|
+
avatarAlt: 'Christine Montgomery-Smith',
|
|
28
|
+
},
|
|
29
|
+
logoSrc: mockLogoSrc,
|
|
30
|
+
logoAlt: 'Arbor',
|
|
31
|
+
sections: [
|
|
32
|
+
{
|
|
33
|
+
label: 'My Apps',
|
|
34
|
+
apps: [
|
|
35
|
+
{
|
|
36
|
+
logo: _jsx(AppLogo, { src: logoArborWorkflows, alt: "Arbor Workflows" }),
|
|
37
|
+
name: 'Arbor Workflows',
|
|
38
|
+
onClick: () => { console.log('Open Arbor Workflows'); },
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
logo: _jsx(AppLogo, { src: logoGovernorHub, alt: "GovernorHub" }),
|
|
42
|
+
name: 'GovernorHub',
|
|
43
|
+
onClick: () => { console.log('Open GovernorHub'); },
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
logo: _jsx(AppLogo, { src: logoTheKey, alt: "The Key" }),
|
|
47
|
+
name: 'The Key',
|
|
48
|
+
onClick: () => { console.log('Open The Key'); },
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
discoverSection: {
|
|
54
|
+
label: 'Discover the Arbor suite',
|
|
55
|
+
defaultOpen: true,
|
|
56
|
+
apps: [
|
|
57
|
+
{
|
|
58
|
+
logo: _jsx(AppLogo, { src: logoArborWorkflows, alt: "Arbor Finance" }),
|
|
59
|
+
name: 'Arbor Finance',
|
|
60
|
+
description: 'Cloud-based accounting',
|
|
61
|
+
onClick: () => { console.log('Open Arbor Finance'); },
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
logo: _jsx(AppLogo, { src: logoRobin, alt: "Robin" }),
|
|
65
|
+
name: 'Robin',
|
|
66
|
+
description: 'AI website compliance checks',
|
|
67
|
+
onClick: () => { console.log('Open Robin'); },
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
logo: _jsx(AppLogo, { src: logoSamPeople, alt: "SAMPeople" }),
|
|
71
|
+
name: 'SAMPeople',
|
|
72
|
+
description: 'HR and recruitment',
|
|
73
|
+
onClick: () => { console.log('Open SAMPeople'); },
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
logo: _jsx(AppLogo, { src: logoTimetabler, alt: "Timetabler" }),
|
|
77
|
+
name: 'Timetabler',
|
|
78
|
+
description: 'Schedule timetables and more',
|
|
79
|
+
onClick: () => { console.log('Open Timetabler'); },
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
},
|
|
83
|
+
userInfoAction: { type: 'link', onClick: () => { console.log('View profile'); } },
|
|
84
|
+
onSignOut: () => { console.log('Sign out'); },
|
|
85
|
+
signOutLabel: 'Sign out of Arbor',
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
export const WithApps = {
|
|
89
|
+
args: {
|
|
90
|
+
user: {
|
|
91
|
+
name: 'Christine Montgomery-Smith',
|
|
92
|
+
subtitle: 'Business Manager',
|
|
93
|
+
avatarInitials: 'CM',
|
|
94
|
+
},
|
|
95
|
+
sections: [
|
|
96
|
+
{
|
|
97
|
+
label: 'Quick Actions',
|
|
98
|
+
apps: [
|
|
99
|
+
{ name: 'Settings', onClick: () => { console.log('Settings'); } },
|
|
100
|
+
{ name: 'Help', onClick: () => { console.log('Help'); } },
|
|
101
|
+
],
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
onSignOut: () => { console.log('Sign out'); },
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
export const Minimal = {
|
|
108
|
+
args: {
|
|
109
|
+
user: {
|
|
110
|
+
name: 'Christine Montgomery',
|
|
111
|
+
avatarInitials: 'CM',
|
|
112
|
+
avatarAlt: 'Christine Montgomery',
|
|
113
|
+
},
|
|
114
|
+
onSignOut: () => { console.log('Sign out'); },
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
export const WithMenu = {
|
|
118
|
+
args: {
|
|
119
|
+
user: {
|
|
120
|
+
name: 'Christine Montgomery-Smith',
|
|
121
|
+
subtitle: 'Business Manager',
|
|
122
|
+
avatarSrc,
|
|
123
|
+
avatarAlt: 'Christine Montgomery-Smith',
|
|
124
|
+
},
|
|
125
|
+
logoSrc: mockLogoSrc,
|
|
126
|
+
logoAlt: 'Arbor',
|
|
127
|
+
sections: [
|
|
128
|
+
{
|
|
129
|
+
label: 'My Apps',
|
|
130
|
+
apps: [
|
|
131
|
+
{
|
|
132
|
+
logo: _jsx(AppLogo, { src: logoArborWorkflows, alt: "Arbor Workflows" }),
|
|
133
|
+
name: 'Arbor Workflows',
|
|
134
|
+
onClick: () => { console.log('Open Arbor Workflows'); },
|
|
135
|
+
},
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
],
|
|
139
|
+
userInfoAction: {
|
|
140
|
+
type: 'menu',
|
|
141
|
+
items: [
|
|
142
|
+
{ label: 'Help centre', onClick: () => { console.log('Help centre'); } },
|
|
143
|
+
{ label: 'About', onClick: () => { console.log('About'); } },
|
|
144
|
+
{ label: 'Leave feedback', onClick: () => { console.log('Leave feedback'); } },
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
onSignOut: () => { console.log('Sign out'); },
|
|
148
|
+
signOutLabel: 'Sign out of Arbor',
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
export const DarkVariant = {
|
|
152
|
+
args: {
|
|
153
|
+
user: {
|
|
154
|
+
name: 'Christine Montgomery-Smith',
|
|
155
|
+
subtitle: 'Business Manager',
|
|
156
|
+
avatarSrc,
|
|
157
|
+
avatarAlt: 'Christine Montgomery-Smith',
|
|
158
|
+
},
|
|
159
|
+
logoSrc: mockLogoSrc,
|
|
160
|
+
logoAlt: 'Arbor',
|
|
161
|
+
variant: 'dark',
|
|
162
|
+
sections: [
|
|
163
|
+
{
|
|
164
|
+
label: 'My Apps',
|
|
165
|
+
apps: [
|
|
166
|
+
{
|
|
167
|
+
logo: _jsx(AppLogo, { src: logoArborWorkflows, alt: "Arbor Workflows" }),
|
|
168
|
+
name: 'Arbor Workflows',
|
|
169
|
+
onClick: () => { console.log('Open Arbor Workflows'); },
|
|
170
|
+
},
|
|
171
|
+
],
|
|
172
|
+
},
|
|
173
|
+
],
|
|
174
|
+
onSignOut: () => { console.log('Sign out'); },
|
|
175
|
+
signOutLabel: 'Sign out of Arbor',
|
|
176
|
+
},
|
|
177
|
+
parameters: {
|
|
178
|
+
backgrounds: {
|
|
179
|
+
default: 'dark',
|
|
180
|
+
values: [
|
|
181
|
+
{ name: 'dark', value: '#2f2f2f' },
|
|
182
|
+
],
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
export const LightVariant = {
|
|
187
|
+
args: {
|
|
188
|
+
user: {
|
|
189
|
+
name: 'Christine Montgomery-Smith',
|
|
190
|
+
subtitle: 'Business Manager',
|
|
191
|
+
avatarSrc,
|
|
192
|
+
avatarAlt: 'Christine Montgomery-Smith',
|
|
193
|
+
},
|
|
194
|
+
logoSrc: mockLogoSrc,
|
|
195
|
+
logoAlt: 'Arbor',
|
|
196
|
+
variant: 'light',
|
|
197
|
+
sections: [
|
|
198
|
+
{
|
|
199
|
+
label: 'My Apps',
|
|
200
|
+
apps: [
|
|
201
|
+
{
|
|
202
|
+
logo: _jsx(AppLogo, { src: logoArborWorkflows, alt: "Arbor Workflows" }),
|
|
203
|
+
name: 'Arbor Workflows',
|
|
204
|
+
onClick: () => { console.log('Open Arbor Workflows'); },
|
|
205
|
+
},
|
|
206
|
+
],
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
onSignOut: () => { console.log('Sign out'); },
|
|
210
|
+
signOutLabel: 'Sign out of Arbor',
|
|
211
|
+
},
|
|
212
|
+
parameters: {
|
|
213
|
+
backgrounds: {
|
|
214
|
+
default: 'light',
|
|
215
|
+
values: [
|
|
216
|
+
{ name: 'light', value: '#ffffff' },
|
|
217
|
+
],
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
export default meta;
|
|
222
|
+
//# sourceMappingURL=UserDropdown.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserDropdown.stories.js","sourceRoot":"","sources":["../../../src/components/userDropdown/UserDropdown.stories.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserDropdown.test.d.ts","sourceRoot":"","sources":["../../../src/components/userDropdown/UserDropdown.test.tsx"],"names":[],"mappings":"AAIA,OAAO,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { expect, test, describe, vi } from 'vitest';
|
|
3
|
+
import { render, screen } from '@testing-library/react';
|
|
4
|
+
import userEvent from '@testing-library/user-event';
|
|
5
|
+
import { UserDropdown } from './UserDropdown';
|
|
6
|
+
import '@testing-library/jest-dom/vitest';
|
|
7
|
+
describe('UserDropdown', () => {
|
|
8
|
+
const mockUser = {
|
|
9
|
+
name: 'John Doe',
|
|
10
|
+
subtitle: 'Software Engineer',
|
|
11
|
+
avatarInitials: 'JD',
|
|
12
|
+
};
|
|
13
|
+
const mockOnSignOut = vi.fn();
|
|
14
|
+
const clickTrigger = async (user) => {
|
|
15
|
+
const trigger = screen.getByRole('button', { expanded: false });
|
|
16
|
+
await user.click(trigger);
|
|
17
|
+
};
|
|
18
|
+
test('renders with minimal props', async () => {
|
|
19
|
+
const user = userEvent.setup();
|
|
20
|
+
render(_jsx(UserDropdown, { user: mockUser, onSignOut: mockOnSignOut }));
|
|
21
|
+
await clickTrigger(user);
|
|
22
|
+
expect(screen.getByText('John Doe')).toBeInTheDocument();
|
|
23
|
+
expect(screen.getByText('Software Engineer')).toBeInTheDocument();
|
|
24
|
+
expect(screen.getByText('Sign out')).toBeInTheDocument();
|
|
25
|
+
});
|
|
26
|
+
test('renders user info with avatar image', async () => {
|
|
27
|
+
const user = userEvent.setup();
|
|
28
|
+
render(_jsx(UserDropdown, { user: {
|
|
29
|
+
...mockUser,
|
|
30
|
+
avatarSrc: 'https://example.com/avatar.jpg',
|
|
31
|
+
avatarAlt: 'Test User',
|
|
32
|
+
}, onSignOut: mockOnSignOut }));
|
|
33
|
+
await clickTrigger(user);
|
|
34
|
+
const images = screen.getAllByRole('img', { hidden: true });
|
|
35
|
+
const avatar = images.find(img => img.getAttribute('src') === 'https://example.com/avatar.jpg');
|
|
36
|
+
expect(avatar).toBeDefined();
|
|
37
|
+
expect(avatar).toHaveAttribute('src', 'https://example.com/avatar.jpg');
|
|
38
|
+
});
|
|
39
|
+
test('renders with logo', () => {
|
|
40
|
+
render(_jsx(UserDropdown, { user: mockUser, logoSrc: "https://example.com/logo.png", logoAlt: "Company Logo", onSignOut: mockOnSignOut }));
|
|
41
|
+
const logo = screen.getByAltText('Company Logo');
|
|
42
|
+
expect(logo).toBeInTheDocument();
|
|
43
|
+
expect(logo).toHaveAttribute('src', 'https://example.com/logo.png');
|
|
44
|
+
});
|
|
45
|
+
test('renders without role', async () => {
|
|
46
|
+
const user = userEvent.setup();
|
|
47
|
+
render(_jsx(UserDropdown, { user: { name: 'John Doe', avatarInitials: 'JD' }, onSignOut: mockOnSignOut }));
|
|
48
|
+
await clickTrigger(user);
|
|
49
|
+
expect(screen.getByText('John Doe')).toBeInTheDocument();
|
|
50
|
+
expect(screen.queryByText('Software Engineer')).not.toBeInTheDocument();
|
|
51
|
+
});
|
|
52
|
+
test('renders app sections', async () => {
|
|
53
|
+
const user = userEvent.setup();
|
|
54
|
+
render(_jsx(UserDropdown, { user: mockUser, sections: [
|
|
55
|
+
{
|
|
56
|
+
label: 'My Apps',
|
|
57
|
+
apps: [
|
|
58
|
+
{ name: 'App 1', onClick: vi.fn() },
|
|
59
|
+
{ name: 'App 2', onClick: vi.fn() },
|
|
60
|
+
],
|
|
61
|
+
},
|
|
62
|
+
], onSignOut: mockOnSignOut }));
|
|
63
|
+
await clickTrigger(user);
|
|
64
|
+
expect(screen.getByText('My Apps')).toBeInTheDocument();
|
|
65
|
+
expect(screen.getByText('App 1')).toBeInTheDocument();
|
|
66
|
+
expect(screen.getByText('App 2')).toBeInTheDocument();
|
|
67
|
+
});
|
|
68
|
+
test('renders app item with description', async () => {
|
|
69
|
+
const user = userEvent.setup();
|
|
70
|
+
render(_jsx(UserDropdown, { user: mockUser, sections: [
|
|
71
|
+
{
|
|
72
|
+
apps: [
|
|
73
|
+
{ name: 'My App', description: 'A great app', onClick: vi.fn() },
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
], onSignOut: mockOnSignOut }));
|
|
77
|
+
await clickTrigger(user);
|
|
78
|
+
expect(screen.getByText('My App')).toBeInTheDocument();
|
|
79
|
+
expect(screen.getByText('A great app')).toBeInTheDocument();
|
|
80
|
+
});
|
|
81
|
+
test('renders app item with logo', async () => {
|
|
82
|
+
const user = userEvent.setup();
|
|
83
|
+
render(_jsx(UserDropdown, { user: mockUser, sections: [
|
|
84
|
+
{
|
|
85
|
+
apps: [
|
|
86
|
+
{
|
|
87
|
+
name: 'My App',
|
|
88
|
+
logo: _jsx("img", { src: "logo.png", alt: "Logo" }),
|
|
89
|
+
onClick: vi.fn(),
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
], onSignOut: mockOnSignOut }));
|
|
94
|
+
await clickTrigger(user);
|
|
95
|
+
expect(screen.getByAltText('Logo')).toBeInTheDocument();
|
|
96
|
+
});
|
|
97
|
+
test('renders discover section collapsed by default', async () => {
|
|
98
|
+
const user = userEvent.setup();
|
|
99
|
+
render(_jsx(UserDropdown, { user: mockUser, discoverSection: {
|
|
100
|
+
label: 'Discover',
|
|
101
|
+
apps: [
|
|
102
|
+
{ name: 'Hidden App', onClick: vi.fn() },
|
|
103
|
+
],
|
|
104
|
+
}, onSignOut: mockOnSignOut }));
|
|
105
|
+
await clickTrigger(user);
|
|
106
|
+
expect(screen.getByText('Discover')).toBeInTheDocument();
|
|
107
|
+
expect(screen.queryByText('Hidden App')).not.toBeInTheDocument();
|
|
108
|
+
});
|
|
109
|
+
test('renders discover section open when defaultOpen is true', async () => {
|
|
110
|
+
const user = userEvent.setup();
|
|
111
|
+
render(_jsx(UserDropdown, { user: mockUser, discoverSection: {
|
|
112
|
+
label: 'Discover',
|
|
113
|
+
defaultOpen: true,
|
|
114
|
+
apps: [
|
|
115
|
+
{ name: 'Visible App', onClick: vi.fn() },
|
|
116
|
+
],
|
|
117
|
+
}, onSignOut: mockOnSignOut }));
|
|
118
|
+
await clickTrigger(user);
|
|
119
|
+
expect(screen.getByText('Discover')).toBeInTheDocument();
|
|
120
|
+
expect(screen.getByText('Visible App')).toBeInTheDocument();
|
|
121
|
+
});
|
|
122
|
+
test('toggles discover section when clicked', async () => {
|
|
123
|
+
const user = userEvent.setup();
|
|
124
|
+
render(_jsx(UserDropdown, { user: mockUser, discoverSection: {
|
|
125
|
+
label: 'Discover',
|
|
126
|
+
apps: [
|
|
127
|
+
{ name: 'Toggle App', onClick: vi.fn() },
|
|
128
|
+
],
|
|
129
|
+
}, onSignOut: mockOnSignOut }));
|
|
130
|
+
await clickTrigger(user);
|
|
131
|
+
expect(screen.queryByText('Toggle App')).not.toBeInTheDocument();
|
|
132
|
+
await user.click(screen.getByText('Discover'));
|
|
133
|
+
expect(screen.getByText('Toggle App')).toBeInTheDocument();
|
|
134
|
+
await user.click(screen.getByText('Discover'));
|
|
135
|
+
expect(screen.queryByText('Toggle App')).not.toBeInTheDocument();
|
|
136
|
+
});
|
|
137
|
+
test('calls userInfoAction onClick when user info is clicked with link action', async () => {
|
|
138
|
+
const user = userEvent.setup();
|
|
139
|
+
const handleClick = vi.fn();
|
|
140
|
+
render(_jsx(UserDropdown, { user: mockUser, userInfoAction: { type: 'link', onClick: handleClick }, onSignOut: mockOnSignOut }));
|
|
141
|
+
await clickTrigger(user);
|
|
142
|
+
await user.click(screen.getByText('John Doe'));
|
|
143
|
+
expect(handleClick).toHaveBeenCalledTimes(1);
|
|
144
|
+
});
|
|
145
|
+
test('calls app onClick when app item is clicked', async () => {
|
|
146
|
+
const user = userEvent.setup();
|
|
147
|
+
const handleClick = vi.fn();
|
|
148
|
+
render(_jsx(UserDropdown, { user: mockUser, sections: [
|
|
149
|
+
{
|
|
150
|
+
apps: [
|
|
151
|
+
{ name: 'My App', onClick: handleClick },
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
], onSignOut: mockOnSignOut }));
|
|
155
|
+
await clickTrigger(user);
|
|
156
|
+
await user.click(screen.getByText('My App'));
|
|
157
|
+
expect(handleClick).toHaveBeenCalledTimes(1);
|
|
158
|
+
});
|
|
159
|
+
test('calls onSignOut when sign out is clicked', async () => {
|
|
160
|
+
const user = userEvent.setup();
|
|
161
|
+
const handleSignOut = vi.fn();
|
|
162
|
+
render(_jsx(UserDropdown, { user: mockUser, onSignOut: handleSignOut }));
|
|
163
|
+
await clickTrigger(user);
|
|
164
|
+
await user.click(screen.getByText('Sign out'));
|
|
165
|
+
expect(handleSignOut).toHaveBeenCalledTimes(1);
|
|
166
|
+
});
|
|
167
|
+
test('renders custom sign out label', async () => {
|
|
168
|
+
const user = userEvent.setup();
|
|
169
|
+
render(_jsx(UserDropdown, { user: mockUser, onSignOut: mockOnSignOut, signOutLabel: "Log out" }));
|
|
170
|
+
await clickTrigger(user);
|
|
171
|
+
expect(screen.getByText('Log out')).toBeInTheDocument();
|
|
172
|
+
expect(screen.queryByText('Sign out')).not.toBeInTheDocument();
|
|
173
|
+
});
|
|
174
|
+
test('renders complete dropdown structure', async () => {
|
|
175
|
+
const user = userEvent.setup();
|
|
176
|
+
render(_jsx(UserDropdown, { user: mockUser, logoSrc: "https://example.com/logo.png", sections: [
|
|
177
|
+
{
|
|
178
|
+
label: 'Apps',
|
|
179
|
+
apps: [
|
|
180
|
+
{ name: 'App 1', onClick: vi.fn() },
|
|
181
|
+
],
|
|
182
|
+
},
|
|
183
|
+
], discoverSection: {
|
|
184
|
+
label: 'Discover',
|
|
185
|
+
apps: [
|
|
186
|
+
{ name: 'App 2', onClick: vi.fn() },
|
|
187
|
+
],
|
|
188
|
+
}, userInfoAction: { type: 'link', onClick: vi.fn() }, onSignOut: mockOnSignOut, signOutLabel: "Sign out of Arbor" }));
|
|
189
|
+
await clickTrigger(user);
|
|
190
|
+
expect(screen.getByRole('menu')).toBeInTheDocument();
|
|
191
|
+
expect(screen.getByText('John Doe')).toBeInTheDocument();
|
|
192
|
+
expect(screen.getByText('Apps')).toBeInTheDocument();
|
|
193
|
+
expect(screen.getByText('App 1')).toBeInTheDocument();
|
|
194
|
+
expect(screen.getByText('Sign out of Arbor')).toBeInTheDocument();
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
//# sourceMappingURL=UserDropdown.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserDropdown.test.js","sourceRoot":"","sources":["../../../src/components/userDropdown/UserDropdown.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,SAAS,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,kCAAkC,CAAC;AAE1C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,MAAM,QAAQ,GAAG;QACf,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,mBAAmB;QAC7B,cAAc,EAAE,IAAI;KACrB,CAAC;IAEF,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAE9B,MAAM,YAAY,GAAG,KAAK,EAAE,IAAwC,EAAE,EAAE;QACtE,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAE/B,MAAM,CACJ,KAAC,YAAY,IACX,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,aAAa,GACxB,CACH,CAAC;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAE/B,MAAM,CACJ,KAAC,YAAY,IACX,IAAI,EAAE;gBACJ,GAAG,QAAQ;gBACX,SAAS,EAAE,gCAAgC;gBAC3C,SAAS,EAAE,WAAW;aACvB,EACD,SAAS,EAAE,aAAa,GACxB,CACH,CAAC;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,gCAAgC,CAAC,CAAC;QAChG,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,gCAAgC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC7B,MAAM,CACJ,KAAC,YAAY,IACX,IAAI,EAAE,QAAQ,EACd,OAAO,EAAC,8BAA8B,EACtC,OAAO,EAAC,cAAc,EACtB,SAAS,EAAE,aAAa,GACxB,CACH,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAE/B,MAAM,CACJ,KAAC,YAAY,IACX,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,EAChD,SAAS,EAAE,aAAa,GACxB,CACH,CAAC;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAE/B,MAAM,CACJ,KAAC,YAAY,IACX,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE;gBACR;oBACE,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE;wBACJ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;wBACnC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;qBACpC;iBACF;aACF,EACD,SAAS,EAAE,aAAa,GACxB,CACH,CAAC;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAE/B,MAAM,CACJ,KAAC,YAAY,IACX,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE;wBACJ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;qBACjE;iBACF;aACF,EACD,SAAS,EAAE,aAAa,GACxB,CACH,CAAC;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAE/B,MAAM,CACJ,KAAC,YAAY,IACX,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE;wBACJ;4BACE,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,cAAK,GAAG,EAAC,UAAU,EAAC,GAAG,EAAC,MAAM,GAAG;4BACvC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;yBACjB;qBACF;iBACF;aACF,EACD,SAAS,EAAE,aAAa,GACxB,CACH,CAAC;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAE/B,MAAM,CACJ,KAAC,YAAY,IACX,IAAI,EAAE,QAAQ,EACd,eAAe,EAAE;gBACf,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE;oBACJ,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;iBACzC;aACF,EACD,SAAS,EAAE,aAAa,GACxB,CACH,CAAC;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAE/B,MAAM,CACJ,KAAC,YAAY,IACX,IAAI,EAAE,QAAQ,EACd,eAAe,EAAE;gBACf,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE;oBACJ,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;iBAC1C;aACF,EACD,SAAS,EAAE,aAAa,GACxB,CACH,CAAC;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAE/B,MAAM,CACJ,KAAC,YAAY,IACX,IAAI,EAAE,QAAQ,EACd,eAAe,EAAE;gBACf,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE;oBACJ,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;iBACzC;aACF,EACD,SAAS,EAAE,aAAa,GACxB,CACH,CAAC;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAEjE,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAE3D,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAE5B,MAAM,CACJ,KAAC,YAAY,IACX,IAAI,EAAE,QAAQ,EACd,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EACtD,SAAS,EAAE,aAAa,GACxB,CACH,CAAC;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAE5B,MAAM,CACJ,KAAC,YAAY,IACX,IAAI,EAAE,QAAQ,EACd,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE;wBACJ,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE;qBACzC;iBACF;aACF,EACD,SAAS,EAAE,aAAa,GACxB,CACH,CAAC;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7C,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAE9B,MAAM,CACJ,KAAC,YAAY,IACX,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,aAAa,GACxB,CACH,CAAC;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAE/B,MAAM,CACJ,KAAC,YAAY,IACX,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,aAAa,EACxB,YAAY,EAAC,SAAS,GACtB,CACH,CAAC;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAE/B,MAAM,CACJ,KAAC,YAAY,IACX,IAAI,EAAE,QAAQ,EACd,OAAO,EAAC,8BAA8B,EACtC,QAAQ,EAAE;gBACR;oBACE,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE;wBACJ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;qBACpC;iBACF;aACF,EACD,eAAe,EAAE;gBACf,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE;oBACJ,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;iBACpC;aACF,EACD,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAClD,SAAS,EAAE,aAAa,EACxB,YAAY,EAAC,mBAAmB,GAChC,CACH,CAAC;QAEF,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAEzB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const ArborLogo: string;
|
|
2
|
+
export declare const GovhubLogo: string;
|
|
3
|
+
export declare const KeyLogo: string;
|
|
4
|
+
export declare const RobinLogo: string;
|
|
5
|
+
export declare const SampeopleLogo: string;
|
|
6
|
+
export declare const TimetablerLogo: string;
|
|
7
|
+
//# sourceMappingURL=logos.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logos.d.ts","sourceRoot":"","sources":["../../../../src/components/userDropdown/assets/logos.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,SAAS,QAAW,CAAC;AAClC,eAAO,MAAM,UAAU,QAAY,CAAC;AACpC,eAAO,MAAM,OAAO,QAAS,CAAC;AAC9B,eAAO,MAAM,SAAS,QAAW,CAAC;AAClC,eAAO,MAAM,aAAa,QAAe,CAAC;AAC1C,eAAO,MAAM,cAAc,QAAgB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import arborPng from './arbor.png';
|
|
2
|
+
import govhubPng from './govhub.png';
|
|
3
|
+
import keyPng from './key.png';
|
|
4
|
+
import robinPng from './robin.png';
|
|
5
|
+
import sampeoplePng from './sampeople.png';
|
|
6
|
+
import timetablerPng from './timetabler.png';
|
|
7
|
+
export const ArborLogo = arborPng;
|
|
8
|
+
export const GovhubLogo = govhubPng;
|
|
9
|
+
export const KeyLogo = keyPng;
|
|
10
|
+
export const RobinLogo = robinPng;
|
|
11
|
+
export const SampeopleLogo = sampeoplePng;
|
|
12
|
+
export const TimetablerLogo = timetablerPng;
|
|
13
|
+
//# sourceMappingURL=logos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logos.js","sourceRoot":"","sources":["../../../../src/components/userDropdown/assets/logos.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAClC,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAClC,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC"}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserDropdownAppItem.d.ts","sourceRoot":"","sources":["../../../../src/components/userDropdown/internal/UserDropdownAppItem.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,eAAO,MAAM,mBAAmB,GAAI,OAAO,eAAe,4CAezD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { Dropdown } from '../../dropdown/Dropdown';
|
|
4
|
+
import { Icon } from '../../icon/Icon';
|
|
5
|
+
export const UserDropdownAppItem = (props) => {
|
|
6
|
+
const { logo, name, description, onClick } = props;
|
|
7
|
+
return (_jsxs(Dropdown.Item, { className: "ds-user-dropdown__app-item", onClick: onClick, children: [logo && _jsx("div", { className: "ds-user-dropdown__app-item-logo", children: logo }), _jsxs("div", { className: "ds-user-dropdown__app-item-text", children: [_jsx("div", { className: "ds-user-dropdown__app-item-name", children: name }), description && _jsx("div", { className: "ds-user-dropdown__app-item-description", children: description })] }), _jsx("div", { className: "ds-user-dropdown__app-item-arrow", "aria-hidden": "true", children: _jsx(Icon, { name: "arrow-up-right", size: 16 }) })] }));
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=UserDropdownAppItem.js.map
|