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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/CLAUDE.md +9 -0
  3. package/dist/components/avatar/Avatar.d.ts +11 -0
  4. package/dist/components/avatar/Avatar.d.ts.map +1 -0
  5. package/dist/components/avatar/Avatar.js +17 -0
  6. package/dist/components/avatar/Avatar.js.map +1 -0
  7. package/dist/components/avatar/Avatar.stories.d.ts +14 -0
  8. package/dist/components/avatar/Avatar.stories.d.ts.map +1 -0
  9. package/dist/components/avatar/Avatar.stories.js +66 -0
  10. package/dist/components/avatar/Avatar.stories.js.map +1 -0
  11. package/dist/components/avatar/Avatar.test.d.ts +2 -0
  12. package/dist/components/avatar/Avatar.test.d.ts.map +1 -0
  13. package/dist/components/avatar/Avatar.test.js +51 -0
  14. package/dist/components/avatar/Avatar.test.js.map +1 -0
  15. package/dist/components/dropdown/Dropdown.d.ts +2 -0
  16. package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
  17. package/dist/components/dropdown/Dropdown.js +5 -1
  18. package/dist/components/dropdown/Dropdown.js.map +1 -1
  19. package/dist/components/dropdown/items/DropdownGroup.d.ts +3 -0
  20. package/dist/components/dropdown/items/DropdownGroup.d.ts.map +1 -0
  21. package/dist/components/dropdown/items/DropdownGroup.js +8 -0
  22. package/dist/components/dropdown/items/DropdownGroup.js.map +1 -0
  23. package/dist/components/dropdown/items/DropdownSeparator.d.ts +3 -0
  24. package/dist/components/dropdown/items/DropdownSeparator.d.ts.map +1 -0
  25. package/dist/components/dropdown/items/DropdownSeparator.js +8 -0
  26. package/dist/components/dropdown/items/DropdownSeparator.js.map +1 -0
  27. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.d.ts +2 -0
  28. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.d.ts.map +1 -1
  29. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.js +2 -2
  30. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.js.map +1 -1
  31. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.d.ts +12 -0
  32. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.d.ts.map +1 -1
  33. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.js +13 -0
  34. package/dist/components/formField/inputs/selectDropdown/SelectDropdown.stories.js.map +1 -1
  35. package/dist/components/table/Table.d.ts.map +1 -1
  36. package/dist/components/table/Table.js +0 -2
  37. package/dist/components/table/Table.js.map +1 -1
  38. package/dist/components/table/Table.stories.d.ts.map +1 -1
  39. package/dist/components/table/Table.stories.js +2 -10
  40. package/dist/components/table/Table.stories.js.map +1 -1
  41. package/dist/components/table/Table.test.js +2 -40
  42. package/dist/components/table/Table.test.js.map +1 -1
  43. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.d.ts.map +1 -1
  44. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.js +22 -12
  45. package/dist/components/table/cellRenderers/SelectDropdownCellRenderer.js.map +1 -1
  46. package/dist/components/userDropdown/UserDropdown.d.ts +47 -0
  47. package/dist/components/userDropdown/UserDropdown.d.ts.map +1 -0
  48. package/dist/components/userDropdown/UserDropdown.js +13 -0
  49. package/dist/components/userDropdown/UserDropdown.js.map +1 -0
  50. package/dist/components/userDropdown/UserDropdown.stories.d.ts +12 -0
  51. package/dist/components/userDropdown/UserDropdown.stories.d.ts.map +1 -0
  52. package/dist/components/userDropdown/UserDropdown.stories.js +222 -0
  53. package/dist/components/userDropdown/UserDropdown.stories.js.map +1 -0
  54. package/dist/components/userDropdown/UserDropdown.test.d.ts +2 -0
  55. package/dist/components/userDropdown/UserDropdown.test.d.ts.map +1 -0
  56. package/dist/components/userDropdown/UserDropdown.test.js +197 -0
  57. package/dist/components/userDropdown/UserDropdown.test.js.map +1 -0
  58. package/dist/components/userDropdown/assets/arbor.png +0 -0
  59. package/dist/components/userDropdown/assets/govhub.png +0 -0
  60. package/dist/components/userDropdown/assets/key.png +0 -0
  61. package/dist/components/userDropdown/assets/logos.d.ts +7 -0
  62. package/dist/components/userDropdown/assets/logos.d.ts.map +1 -0
  63. package/dist/components/userDropdown/assets/logos.js +13 -0
  64. package/dist/components/userDropdown/assets/logos.js.map +1 -0
  65. package/dist/components/userDropdown/assets/robin.png +0 -0
  66. package/dist/components/userDropdown/assets/sampeople.png +0 -0
  67. package/dist/components/userDropdown/assets/timetabler.png +0 -0
  68. package/dist/components/userDropdown/internal/UserDropdownAppItem.d.ts +3 -0
  69. package/dist/components/userDropdown/internal/UserDropdownAppItem.d.ts.map +1 -0
  70. package/dist/components/userDropdown/internal/UserDropdownAppItem.js +9 -0
  71. package/dist/components/userDropdown/internal/UserDropdownAppItem.js.map +1 -0
  72. package/dist/components/userDropdown/internal/UserDropdownCollapsibleSection.d.ts +9 -0
  73. package/dist/components/userDropdown/internal/UserDropdownCollapsibleSection.d.ts.map +1 -0
  74. package/dist/components/userDropdown/internal/UserDropdownCollapsibleSection.js +11 -0
  75. package/dist/components/userDropdown/internal/UserDropdownCollapsibleSection.js.map +1 -0
  76. package/dist/components/userDropdown/internal/UserDropdownSignOut.d.ts +7 -0
  77. package/dist/components/userDropdown/internal/UserDropdownSignOut.d.ts.map +1 -0
  78. package/dist/components/userDropdown/internal/UserDropdownSignOut.js +9 -0
  79. package/dist/components/userDropdown/internal/UserDropdownSignOut.js.map +1 -0
  80. package/dist/components/userDropdown/internal/UserDropdownTrigger.d.ts +11 -0
  81. package/dist/components/userDropdown/internal/UserDropdownTrigger.d.ts.map +1 -0
  82. package/dist/components/userDropdown/internal/UserDropdownTrigger.js +10 -0
  83. package/dist/components/userDropdown/internal/UserDropdownTrigger.js.map +1 -0
  84. package/dist/components/userDropdown/internal/UserDropdownUserInfo.d.ts +8 -0
  85. package/dist/components/userDropdown/internal/UserDropdownUserInfo.d.ts.map +1 -0
  86. package/dist/components/userDropdown/internal/UserDropdownUserInfo.js +17 -0
  87. package/dist/components/userDropdown/internal/UserDropdownUserInfo.js.map +1 -0
  88. package/dist/index.css +401 -1
  89. package/dist/index.css.map +1 -1
  90. package/dist/index.d.ts +4 -0
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +3 -0
  93. package/dist/index.js.map +1 -1
  94. package/package.json +2 -2
  95. package/src/components/avatar/Avatar.stories.tsx +84 -0
  96. package/src/components/avatar/Avatar.test.tsx +60 -0
  97. package/src/components/avatar/Avatar.tsx +68 -0
  98. package/src/components/avatar/avatar.scss +71 -0
  99. package/src/components/dropdown/Dropdown.tsx +5 -1
  100. package/src/components/dropdown/dropdown.scss +4 -1
  101. package/src/components/dropdown/items/DropdownGroup.tsx +11 -0
  102. package/src/components/dropdown/items/DropdownSeparator.tsx +9 -0
  103. package/src/components/formField/inputs/selectDropdown/SelectDropdown.stories.tsx +15 -0
  104. package/src/components/formField/inputs/selectDropdown/SelectDropdown.tsx +5 -1
  105. package/src/components/table/Table.stories.tsx +2 -10
  106. package/src/components/table/Table.test.tsx +2 -49
  107. package/src/components/table/Table.tsx +0 -2
  108. package/src/components/table/cellRenderers/SelectDropdownCellRenderer.tsx +34 -19
  109. package/src/components/table/table.scss +4 -2
  110. package/src/components/userDropdown/UserDropdown.stories.tsx +237 -0
  111. package/src/components/userDropdown/UserDropdown.test.tsx +349 -0
  112. package/src/components/userDropdown/UserDropdown.tsx +110 -0
  113. package/src/components/userDropdown/assets/arbor.png +0 -0
  114. package/src/components/userDropdown/assets/govhub.png +0 -0
  115. package/src/components/userDropdown/assets/key.png +0 -0
  116. package/src/components/userDropdown/assets/logos.ts +13 -0
  117. package/src/components/userDropdown/assets/robin.png +0 -0
  118. package/src/components/userDropdown/assets/sampeople.png +0 -0
  119. package/src/components/userDropdown/assets/timetabler.png +0 -0
  120. package/src/components/userDropdown/internal/UserDropdownAppItem.tsx +21 -0
  121. package/src/components/userDropdown/internal/UserDropdownCollapsibleSection.tsx +38 -0
  122. package/src/components/userDropdown/internal/UserDropdownSignOut.tsx +19 -0
  123. package/src/components/userDropdown/internal/UserDropdownTrigger.tsx +42 -0
  124. package/src/components/userDropdown/internal/UserDropdownUserInfo.tsx +60 -0
  125. package/src/components/userDropdown/userDropdown.scss +377 -0
  126. package/src/index.scss +2 -0
  127. package/src/index.ts +4 -0
  128. package/tsconfig.json +1 -1
  129. package/vite-env.d.ts +31 -0
  130. package/dist/components/table/cellRenderers/SelectDropdownCellEditor.d.ts +0 -8
  131. package/dist/components/table/cellRenderers/SelectDropdownCellEditor.d.ts.map +0 -1
  132. package/dist/components/table/cellRenderers/SelectDropdownCellEditor.js +0 -19
  133. package/dist/components/table/cellRenderers/SelectDropdownCellEditor.js.map +0 -1
  134. package/src/components/table/cellRenderers/SelectDropdownCellEditor.tsx +0 -43
@@ -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,2 @@
1
+ import '@testing-library/jest-dom/vitest';
2
+ //# sourceMappingURL=UserDropdown.test.d.ts.map
@@ -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":"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"}
@@ -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"}
@@ -0,0 +1,3 @@
1
+ import type { UserDropdownApp } from '../UserDropdown';
2
+ export declare const UserDropdownAppItem: (props: UserDropdownApp) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=UserDropdownAppItem.d.ts.map
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserDropdownAppItem.js","sourceRoot":"","sources":["../../../../src/components/userDropdown/internal/UserDropdownAppItem.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAG5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAsB,EAAE,EAAE;IAC5D,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEnD,OAAO,CACL,MAAC,QAAQ,CAAC,IAAI,IAAC,SAAS,EAAC,4BAA4B,EAAC,OAAO,EAAE,OAAO,aACnE,IAAI,IAAI,cAAK,SAAS,EAAC,iCAAiC,YAAE,IAAI,GAAO,EACtE,eAAK,SAAS,EAAC,iCAAiC,aAC9C,cAAK,SAAS,EAAC,iCAAiC,YAAE,IAAI,GAAO,EAC5D,WAAW,IAAI,cAAK,SAAS,EAAC,wCAAwC,YAAE,WAAW,GAAO,IACvF,EACN,cAAK,SAAS,EAAC,kCAAkC,iBAAa,MAAM,YAClE,KAAC,IAAI,IAAC,IAAI,EAAC,gBAAgB,EAAC,IAAI,EAAE,EAAE,GAAI,GACpC,IACQ,CACjB,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { UserDropdownApp } from '../UserDropdown';
2
+ type UserDropdownCollapsibleSectionProps = {
3
+ label: string;
4
+ apps: UserDropdownApp[];
5
+ defaultOpen?: boolean;
6
+ };
7
+ export declare const UserDropdownCollapsibleSection: (props: UserDropdownCollapsibleSectionProps) => import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=UserDropdownCollapsibleSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserDropdownCollapsibleSection.d.ts","sourceRoot":"","sources":["../../../../src/components/userDropdown/internal/UserDropdownCollapsibleSection.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,KAAK,mCAAmC,GAAG;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,8BAA8B,GAAI,OAAO,mCAAmC,4CAyBxF,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useState } from 'react';
3
+ import { Icon } from '../../icon/Icon';
4
+ import { Dropdown } from '../../dropdown/Dropdown';
5
+ import { UserDropdownAppItem } from './UserDropdownAppItem';
6
+ export const UserDropdownCollapsibleSection = (props) => {
7
+ const { label, apps, defaultOpen = false } = props;
8
+ const [isOpen, setIsOpen] = useState(defaultOpen);
9
+ return (_jsxs("div", { className: "ds-user-dropdown__collapsible-section", children: [_jsxs("div", { className: "ds-user-dropdown__collapsible-section-header", onClick: () => { setIsOpen(!isOpen); }, role: "button", tabIndex: 0, "aria-expanded": isOpen, children: [_jsx("span", { className: "ds-user-dropdown__collapsible-section-label", children: label }), _jsx(Icon, { name: isOpen ? 'chevron-up' : 'chevron-down', size: 16, className: "ds-user-dropdown__collapsible-section-icon" })] }), isOpen && (_jsx(Dropdown.Group, { className: "ds-user-dropdown__collapsible-section-content", children: apps.map((app, index) => (_jsx(UserDropdownAppItem, { ...app }, index))) }))] }));
10
+ };
11
+ //# sourceMappingURL=UserDropdownCollapsibleSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserDropdownCollapsibleSection.js","sourceRoot":"","sources":["../../../../src/components/userDropdown/internal/UserDropdownCollapsibleSection.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,KAA0C,EAAE,EAAE;IAC3F,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IACnD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAElD,OAAO,CACL,eAAK,SAAS,EAAC,uCAAuC,aACpD,eACE,SAAS,EAAC,8CAA8C,EACxD,OAAO,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACtC,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,mBACI,MAAM,aAErB,eAAM,SAAS,EAAC,6CAA6C,YAAE,KAAK,GAAQ,EAC5E,KAAC,IAAI,IAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,4CAA4C,GAAG,IACnH,EACL,MAAM,IAAI,CACT,KAAC,QAAQ,CAAC,KAAK,IAAC,SAAS,EAAC,+CAA+C,YACtE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CACxB,KAAC,mBAAmB,OAAiB,GAAG,IAAd,KAAK,CAAa,CAC7C,CAAC,GACa,CAClB,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ type UserDropdownSignOutProps = {
2
+ onClick: () => void;
3
+ label?: string;
4
+ };
5
+ export declare const UserDropdownSignOut: (props: UserDropdownSignOutProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=UserDropdownSignOut.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserDropdownSignOut.d.ts","sourceRoot":"","sources":["../../../../src/components/userDropdown/internal/UserDropdownSignOut.tsx"],"names":[],"mappings":"AAIA,KAAK,wBAAwB,GAAG;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,wBAAwB,4CASlE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { Icon } from '../../icon/Icon';
4
+ import { Dropdown } from '../../dropdown/Dropdown';
5
+ export const UserDropdownSignOut = (props) => {
6
+ const { onClick, label = 'Sign out' } = props;
7
+ return (_jsxs(Dropdown.Item, { className: "ds-user-dropdown__sign-out", onClick: onClick, children: [_jsx(Icon, { name: "log-out", size: 24 }), _jsx("span", { className: "ds-user-dropdown__sign-out-label", children: label })] }));
8
+ };
9
+ //# sourceMappingURL=UserDropdownSignOut.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserDropdownSignOut.js","sourceRoot":"","sources":["../../../../src/components/userDropdown/internal/UserDropdownSignOut.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAOxD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAA+B,EAAE,EAAE;IACrE,MAAM,EAAE,OAAO,EAAE,KAAK,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IAE9C,OAAO,CACL,MAAC,QAAQ,CAAC,IAAI,IAAC,SAAS,EAAC,4BAA4B,EAAC,OAAO,EAAE,OAAO,aACpE,KAAC,IAAI,IAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAE,EAAE,GAAI,EACjC,eAAM,SAAS,EAAC,kCAAkC,YAAE,KAAK,GAAQ,IACnD,CACjB,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ type UserDropdownTriggerProps = {
2
+ avatarSrc?: string;
3
+ avatarAlt?: string;
4
+ avatarInitials?: string;
5
+ logoSrc?: string;
6
+ logoAlt?: string;
7
+ variant?: 'dark' | 'light';
8
+ };
9
+ export declare const UserDropdownTrigger: (props: UserDropdownTriggerProps) => import("react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=UserDropdownTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserDropdownTrigger.d.ts","sourceRoot":"","sources":["../../../../src/components/userDropdown/internal/UserDropdownTrigger.tsx"],"names":[],"mappings":"AAKA,KAAK,wBAAwB,GAAG;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,wBAAwB,4CA2BlE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { Dropdown } from '../../dropdown/Dropdown';
4
+ import { Avatar } from '../../avatar/Avatar';
5
+ import { Button } from '../../button/Button';
6
+ export const UserDropdownTrigger = (props) => {
7
+ const { avatarSrc, avatarAlt, avatarInitials, logoSrc, logoAlt = 'Logo', variant = 'dark' } = props;
8
+ return (_jsxs("div", { className: `ds-user-dropdown__trigger-container ds-user-dropdown__trigger-container--${variant}${logoSrc ? ' ds-user-dropdown__trigger-container--with-logo' : ''}`, children: [_jsx(Dropdown.Trigger, { children: _jsx(Button, { variant: "secondary", borderless: true, iconRightName: "chevron-down", className: "ds-user-dropdown__trigger", children: _jsx(Avatar, { size: "medium", src: avatarSrc, alt: avatarAlt, initials: avatarInitials }) }) }), logoSrc && (_jsxs(_Fragment, { children: [_jsx("div", { className: "ds-user-dropdown__trigger-divider" }), _jsx("img", { src: logoSrc, alt: logoAlt, className: "ds-user-dropdown__trigger-logo" })] }))] }));
9
+ };
10
+ //# sourceMappingURL=UserDropdownTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserDropdownTrigger.js","sourceRoot":"","sources":["../../../../src/components/userDropdown/internal/UserDropdownTrigger.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAWlD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAA+B,EAAE,EAAE;IACrE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC;IAEpG,OAAO,CACL,eACE,SAAS,EAAE,4EAA4E,OAAO,GAC5F,OAAO,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,EAChE,EAAE,aAEF,KAAC,QAAQ,CAAC,OAAO,cACf,KAAC,MAAM,IACL,OAAO,EAAC,WAAW,EACnB,UAAU,EAAE,IAAI,EAChB,aAAa,EAAC,cAAc,EAC5B,SAAS,EAAC,2BAA2B,YAErC,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAI,GAC3E,GACQ,EAClB,OAAO,IAAI,CACV,8BACE,cAAK,SAAS,EAAC,mCAAmC,GAAG,EACrD,cAAK,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,gCAAgC,GAAG,IAC7E,CACJ,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}