uikit-react-public 0.39.0 → 0.40.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/dist/components/Accordion/Accordion.Heading.d.ts +2 -1
- package/dist/components/Accordion/Accordion.d.ts +8 -2
- package/dist/components/Accordion/Accordion.stories.d.ts +2 -2
- package/dist/components/Alert/Alert.d.ts +2 -2
- package/dist/components/Alert/Alert.stories.d.ts +2 -2
- package/dist/components/Alert/AlertMessage.d.ts +1 -1
- package/dist/components/Alert/AlertTitle.d.ts +1 -1
- package/dist/components/ErrorDialog/ErrorDialog.d.ts +26 -0
- package/dist/components/ErrorDialog/ErrorDialog.stories.d.ts +14 -0
- package/dist/components/ErrorDialog/__tests__/ErrorDialog.test.d.ts +1 -0
- package/dist/components/ErrorDialog/index.d.ts +2 -0
- package/dist/components/Field/HelperText.d.ts +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/index.js +6648 -6322
- package/lib/components/Accordion/Accordion.Heading.tsx +24 -8
- package/lib/components/Accordion/Accordion.Panel.tsx +7 -4
- package/lib/components/Accordion/Accordion.stories.tsx +8 -8
- package/lib/components/Accordion/Accordion.tsx +17 -23
- package/lib/components/Accordion/__tests__/__snapshots__/Accordion.test.tsx.snap +14 -14
- package/lib/components/Alert/Alert.tsx +0 -1
- package/lib/components/Alert/AlertMessage.tsx +10 -14
- package/lib/components/Alert/AlertTitle.tsx +11 -8
- package/lib/components/Alert/__tests__/__snapshots__/Alert.test.tsx.snap +29 -14
- package/lib/components/AppHeader/AppHeader.tsx +0 -1
- package/lib/components/AppHeader/__tests__/__snapshots__/AppHeader.test.tsx.snap +1 -1
- package/lib/components/AppMenu/AppMenu.tsx +2 -9
- package/lib/components/AppMenu/AppMenuItem.tsx +6 -2
- package/lib/components/AppMenu/__tests__/__snapshots__/AppMenu.test.tsx.snap +6 -6
- package/lib/components/Breadcrumbs/Breadcrumbs.tsx +0 -4
- package/lib/components/Breadcrumbs/__tests__/__snapshots__/Breadcrumbs.test.tsx.snap +10 -10
- package/lib/components/Calendar/__tests__/__snapshots__/Calendar.test.tsx.snap +85 -85
- package/lib/components/Calendar/subcomponents/Day.tsx +7 -3
- package/lib/components/Datepicker/__tests__/__snapshots__/Datepicker.test.tsx.snap +2 -2
- package/lib/components/Datepicker/subcomponents/DatepickerInput.tsx +6 -3
- package/lib/components/Dialog/BaseDialog.tsx +6 -2
- package/lib/components/ErrorDialog/ErrorDialog.stories.tsx +85 -0
- package/lib/components/ErrorDialog/ErrorDialog.tsx +433 -0
- package/lib/components/ErrorDialog/__tests__/ErrorDialog.test.tsx +145 -0
- package/lib/components/ErrorDialog/index.tsx +2 -0
- package/lib/components/Field/HelperText.tsx +9 -10
- package/lib/components/Footer/__tests__/__snapshots__/Footer.test.tsx.snap +25 -25
- package/lib/components/FooterNew/__tests__/__snapshots__/Footer.test.tsx.snap +28 -28
- package/lib/components/Header/Header.tsx +6 -3
- package/lib/components/Header/__tests__/__snapshots__/Header.test.tsx.snap +4 -4
- package/lib/components/HeaderNew/Header.tsx +0 -1
- package/lib/components/HeaderNew/__tests__/__snapshots__/Header.test.tsx.snap +2 -2
- package/lib/components/Input/Input.tsx +6 -3
- package/lib/components/Input/__tests__/__snapshots__/Input.test.tsx.snap +4 -4
- package/lib/components/Label/Label.tsx +7 -7
- package/lib/components/Label/__tests__/__snapshots__/Label.test.tsx.snap +7 -7
- package/lib/components/Link/BaseLink.tsx +8 -16
- package/lib/components/Link/__tests__/__snapshots__/link.test.tsx.snap +2 -2
- package/lib/components/Menu/Menu.tsx +0 -4
- package/lib/components/Menu/MenuItem.tsx +7 -5
- package/lib/components/Search/__tests__/__snapshots__/Search.test.tsx.snap +2 -2
- package/lib/components/Select/__tests__/__snapshots__/Select.test.tsx.snap +2 -2
- package/lib/components/Select/subcomponents/CustomOption.tsx +6 -3
- package/lib/components/Select/subcomponents/CustomSelect.tsx +6 -2
- package/lib/components/Select/subcomponents/NativeSelect.tsx +6 -3
- package/lib/components/Select/subcomponents/VisibleField.tsx +6 -1
- package/lib/components/Sidebar/Sidebar.tsx +0 -1
- package/lib/components/Sidebar/__tests__/__snapshots__/Sidebar.test.tsx.snap +2 -2
- package/lib/components/StandaloneLink/__tests__/__snapshots__/StandaloneLink.test.tsx.snap +2 -2
- package/lib/components/Textarea/Textarea.tsx +6 -3
- package/lib/components/Textarea/__tests__/__snapshots__/Textarea.test.tsx.snap +4 -4
- package/lib/components/Timepicker/Timepicker.tsx +6 -2
- package/lib/components/Timepicker/__tests__/__snapshots__/Timepicker.test.tsx.snap +2 -2
- package/lib/components/WeekPicker/subcomponents/DatepickerInput.tsx +6 -3
- package/lib/components/index.ts +3 -0
- package/package.json +1 -1
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { afterAll, beforeAll, describe, expect, test, vi } from 'vitest';
|
|
2
|
+
import { fireEvent, render, screen } from '@testing-library/react';
|
|
3
|
+
import { ThemeContextProvider } from '../../../theme/useTheme';
|
|
4
|
+
import ErrorDialog from '../ErrorDialog';
|
|
5
|
+
|
|
6
|
+
const originalShowModal = HTMLDialogElement.prototype.showModal;
|
|
7
|
+
const originalClose = HTMLDialogElement.prototype.close;
|
|
8
|
+
|
|
9
|
+
beforeAll(() => {
|
|
10
|
+
HTMLDialogElement.prototype.showModal = vi.fn(function (
|
|
11
|
+
this: HTMLDialogElement
|
|
12
|
+
) {
|
|
13
|
+
this.setAttribute('open', '');
|
|
14
|
+
});
|
|
15
|
+
HTMLDialogElement.prototype.close = vi.fn(function (this: HTMLDialogElement) {
|
|
16
|
+
this.removeAttribute('open');
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
afterAll(() => {
|
|
21
|
+
HTMLDialogElement.prototype.showModal = originalShowModal;
|
|
22
|
+
HTMLDialogElement.prototype.close = originalClose;
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const renderErrorDialog = (
|
|
26
|
+
props: Partial<React.ComponentProps<typeof ErrorDialog>> = {}
|
|
27
|
+
) =>
|
|
28
|
+
render(
|
|
29
|
+
<ThemeContextProvider>
|
|
30
|
+
<ErrorDialog
|
|
31
|
+
open
|
|
32
|
+
heading='Something went wrong'
|
|
33
|
+
errorCode='1601'
|
|
34
|
+
referenceCode='UCLCID-20e935c3'
|
|
35
|
+
onClose={() => {}}
|
|
36
|
+
{...props}
|
|
37
|
+
>
|
|
38
|
+
We could not complete this request.
|
|
39
|
+
</ErrorDialog>
|
|
40
|
+
</ThemeContextProvider>
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
describe('ErrorDialog', () => {
|
|
44
|
+
test('renders an accessible alert dialog with heading, body, and error code', () => {
|
|
45
|
+
renderErrorDialog();
|
|
46
|
+
|
|
47
|
+
expect(
|
|
48
|
+
screen.getByRole('alertdialog', { name: 'Something went wrong' })
|
|
49
|
+
).toBeInTheDocument();
|
|
50
|
+
expect(
|
|
51
|
+
screen.getByText('We could not complete this request.')
|
|
52
|
+
).toBeInTheDocument();
|
|
53
|
+
expect(screen.getByText('Error code: 1601')).toBeInTheDocument();
|
|
54
|
+
expect(
|
|
55
|
+
screen.getByText('Reference code: UCLCID-20e935c3')
|
|
56
|
+
).toBeInTheDocument();
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
test('renders reference code after error code in the footer metadata', () => {
|
|
60
|
+
renderErrorDialog();
|
|
61
|
+
|
|
62
|
+
const errorCode = screen.getByText('Error code: 1601');
|
|
63
|
+
const referenceCode = screen.getByText('Reference code: UCLCID-20e935c3');
|
|
64
|
+
|
|
65
|
+
expect(errorCode.compareDocumentPosition(referenceCode)).toBe(
|
|
66
|
+
Node.DOCUMENT_POSITION_FOLLOWING
|
|
67
|
+
);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
test('renders detail accordions and preserves new lines in values', () => {
|
|
71
|
+
renderErrorDialog({
|
|
72
|
+
details: [
|
|
73
|
+
{
|
|
74
|
+
label: 'HTTP Status Code',
|
|
75
|
+
value: 'HTTP status code: 404 (Not Found)',
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
label: 'User Details',
|
|
79
|
+
value:
|
|
80
|
+
'username: j.bloggs\nlogin time: Fri Jan 16 2026 10:01:43 GMT+0000',
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
expect(
|
|
86
|
+
screen.queryByText('HTTP status code: 404 (Not Found)')
|
|
87
|
+
).not.toBeInTheDocument();
|
|
88
|
+
|
|
89
|
+
fireEvent.click(screen.getByRole('button', { name: 'HTTP Status Code' }));
|
|
90
|
+
expect(
|
|
91
|
+
screen.getByText('HTTP status code: 404 (Not Found)')
|
|
92
|
+
).toBeInTheDocument();
|
|
93
|
+
|
|
94
|
+
fireEvent.click(screen.getByRole('button', { name: 'User Details' }));
|
|
95
|
+
expect(
|
|
96
|
+
screen.getAllByText(
|
|
97
|
+
(_, element) =>
|
|
98
|
+
element?.textContent ===
|
|
99
|
+
'username: j.bloggs\nlogin time: Fri Jan 16 2026 10:01:43 GMT+0000'
|
|
100
|
+
)
|
|
101
|
+
).not.toHaveLength(0);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
test('calls onClose from the close icon and default primary action', () => {
|
|
105
|
+
const onClose = vi.fn();
|
|
106
|
+
|
|
107
|
+
renderErrorDialog({ onClose });
|
|
108
|
+
|
|
109
|
+
fireEvent.click(screen.getByRole('button', { name: 'Close error dialog' }));
|
|
110
|
+
fireEvent.click(screen.getByRole('button', { name: 'Close' }));
|
|
111
|
+
|
|
112
|
+
expect(onClose).toHaveBeenCalledTimes(2);
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
test('calls action handlers for primary and secondary actions', () => {
|
|
116
|
+
const onAction = vi.fn();
|
|
117
|
+
const onSecondaryAction = vi.fn();
|
|
118
|
+
const onClose = vi.fn();
|
|
119
|
+
|
|
120
|
+
renderErrorDialog({
|
|
121
|
+
onAction,
|
|
122
|
+
onSecondaryAction,
|
|
123
|
+
onClose,
|
|
124
|
+
primaryButton: 'Try again',
|
|
125
|
+
secondaryButton: 'Cancel',
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
fireEvent.click(screen.getByRole('button', { name: 'Try again' }));
|
|
129
|
+
fireEvent.click(screen.getByRole('button', { name: 'Cancel' }));
|
|
130
|
+
|
|
131
|
+
expect(onAction).toHaveBeenCalledTimes(1);
|
|
132
|
+
expect(onSecondaryAction).toHaveBeenCalledTimes(1);
|
|
133
|
+
expect(onClose).not.toHaveBeenCalled();
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
test('renders footer actions for valid falsey ReactNode labels', () => {
|
|
137
|
+
renderErrorDialog({
|
|
138
|
+
primaryButton: 0,
|
|
139
|
+
secondaryButton: '',
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
expect(screen.getByRole('button', { name: '0' })).toBeInTheDocument();
|
|
143
|
+
expect(screen.getByRole('button', { name: '' })).toBeInTheDocument();
|
|
144
|
+
});
|
|
145
|
+
});
|
|
@@ -2,10 +2,11 @@ import { HTMLAttributes, use } from 'react';
|
|
|
2
2
|
import { css, cx } from '@emotion/css';
|
|
3
3
|
import { FieldContext } from './Field';
|
|
4
4
|
import { useTheme } from '../../theme';
|
|
5
|
+
import Text from '../Text';
|
|
5
6
|
|
|
6
7
|
const NAME = 'ucl-uikit-field__helper-text';
|
|
7
8
|
|
|
8
|
-
export interface HelperTextProps extends HTMLAttributes<
|
|
9
|
+
export interface HelperTextProps extends HTMLAttributes<HTMLSpanElement> {
|
|
9
10
|
testId?: string;
|
|
10
11
|
}
|
|
11
12
|
|
|
@@ -20,24 +21,22 @@ const HelperText = ({
|
|
|
20
21
|
const { disabled } = use(FieldContext);
|
|
21
22
|
|
|
22
23
|
const baseStyle = css`
|
|
23
|
-
color: ${
|
|
24
|
-
? theme.colour.text.disabled
|
|
25
|
-
|
|
26
|
-
font-family: ${theme.font.family.primary};
|
|
27
|
-
font-size: ${theme.font.size.f16};
|
|
28
|
-
line-height: ${theme.font.lineHeight.h120};
|
|
24
|
+
color: ${
|
|
25
|
+
disabled ? theme.colour.text.disabled : theme.colour.text.secondary
|
|
26
|
+
};
|
|
29
27
|
`;
|
|
30
28
|
|
|
31
29
|
const style = cx(NAME, baseStyle, className);
|
|
32
30
|
|
|
33
31
|
return (
|
|
34
|
-
<
|
|
32
|
+
<Text
|
|
33
|
+
level='sm'
|
|
34
|
+
testId={testId}
|
|
35
35
|
className={style}
|
|
36
|
-
data-testid={testId}
|
|
37
36
|
{...props}
|
|
38
37
|
>
|
|
39
38
|
{children}
|
|
40
|
-
</
|
|
39
|
+
</Text>
|
|
41
40
|
);
|
|
42
41
|
};
|
|
43
42
|
|
|
@@ -34,7 +34,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
|
|
|
34
34
|
>
|
|
35
35
|
<a
|
|
36
36
|
aria-label="Facebook"
|
|
37
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
37
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
38
38
|
data-testid="ucl-uikit-footer__social-link"
|
|
39
39
|
href="https://www.facebook.com/uclofficial/"
|
|
40
40
|
target="_blank"
|
|
@@ -60,7 +60,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
|
|
|
60
60
|
</a>
|
|
61
61
|
<a
|
|
62
62
|
aria-label="Flickr"
|
|
63
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
63
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
64
64
|
data-testid="ucl-uikit-footer__social-link"
|
|
65
65
|
href="https://www.flickr.com/groups/ucl/"
|
|
66
66
|
target="_blank"
|
|
@@ -86,7 +86,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
|
|
|
86
86
|
</a>
|
|
87
87
|
<a
|
|
88
88
|
aria-label="TikTok"
|
|
89
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
89
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
90
90
|
data-testid="ucl-uikit-footer__social-link"
|
|
91
91
|
href="https://www.tiktok.com/@uclofficial"
|
|
92
92
|
target="_blank"
|
|
@@ -112,7 +112,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
|
|
|
112
112
|
</a>
|
|
113
113
|
<a
|
|
114
114
|
aria-label="YouTube"
|
|
115
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
115
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
116
116
|
data-testid="ucl-uikit-footer__social-link"
|
|
117
117
|
href="https://www.youtube.com/ucltv"
|
|
118
118
|
target="_blank"
|
|
@@ -138,7 +138,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
|
|
|
138
138
|
</a>
|
|
139
139
|
<a
|
|
140
140
|
aria-label="SoundCloud"
|
|
141
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
141
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
142
142
|
data-testid="ucl-uikit-footer__social-link"
|
|
143
143
|
href="https://soundcloud.com/uclsound"
|
|
144
144
|
target="_blank"
|
|
@@ -166,7 +166,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
|
|
|
166
166
|
</a>
|
|
167
167
|
<a
|
|
168
168
|
aria-label="X social media platform"
|
|
169
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
169
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
170
170
|
data-testid="ucl-uikit-footer__social-link"
|
|
171
171
|
href="https://x.com/ucl"
|
|
172
172
|
target="_blank"
|
|
@@ -192,7 +192,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
|
|
|
192
192
|
</a>
|
|
193
193
|
<a
|
|
194
194
|
aria-label="Instagram"
|
|
195
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
195
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
196
196
|
data-testid="ucl-uikit-footer__social-link"
|
|
197
197
|
href="https://www.instagram.com/ucl/"
|
|
198
198
|
target="_blank"
|
|
@@ -325,14 +325,14 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
325
325
|
Category 1
|
|
326
326
|
</h3>
|
|
327
327
|
<a
|
|
328
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-
|
|
328
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-1w73vrx"
|
|
329
329
|
data-testid="ucl-uikit-footer__nav-link"
|
|
330
330
|
href="#"
|
|
331
331
|
>
|
|
332
332
|
Item 1
|
|
333
333
|
</a>
|
|
334
334
|
<a
|
|
335
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-
|
|
335
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-1w73vrx"
|
|
336
336
|
data-testid="ucl-uikit-footer__nav-link"
|
|
337
337
|
href="#"
|
|
338
338
|
>
|
|
@@ -349,14 +349,14 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
349
349
|
Category 2
|
|
350
350
|
</h3>
|
|
351
351
|
<a
|
|
352
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-
|
|
352
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-1w73vrx"
|
|
353
353
|
data-testid="ucl-uikit-footer__nav-link"
|
|
354
354
|
href="#"
|
|
355
355
|
>
|
|
356
356
|
Item 1
|
|
357
357
|
</a>
|
|
358
358
|
<a
|
|
359
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-
|
|
359
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-1w73vrx"
|
|
360
360
|
data-testid="ucl-uikit-footer__nav-link"
|
|
361
361
|
href="#"
|
|
362
362
|
>
|
|
@@ -387,7 +387,7 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
387
387
|
>
|
|
388
388
|
<a
|
|
389
389
|
aria-label="Facebook"
|
|
390
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
390
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
391
391
|
data-testid="ucl-uikit-footer__social-link"
|
|
392
392
|
href="https://www.facebook.com/uclofficial/"
|
|
393
393
|
target="_blank"
|
|
@@ -413,7 +413,7 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
413
413
|
</a>
|
|
414
414
|
<a
|
|
415
415
|
aria-label="Flickr"
|
|
416
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
416
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
417
417
|
data-testid="ucl-uikit-footer__social-link"
|
|
418
418
|
href="https://www.flickr.com/groups/ucl/"
|
|
419
419
|
target="_blank"
|
|
@@ -439,7 +439,7 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
439
439
|
</a>
|
|
440
440
|
<a
|
|
441
441
|
aria-label="TikTok"
|
|
442
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
442
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
443
443
|
data-testid="ucl-uikit-footer__social-link"
|
|
444
444
|
href="https://www.tiktok.com/@uclofficial"
|
|
445
445
|
target="_blank"
|
|
@@ -465,7 +465,7 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
465
465
|
</a>
|
|
466
466
|
<a
|
|
467
467
|
aria-label="YouTube"
|
|
468
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
468
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
469
469
|
data-testid="ucl-uikit-footer__social-link"
|
|
470
470
|
href="https://www.youtube.com/ucltv"
|
|
471
471
|
target="_blank"
|
|
@@ -491,7 +491,7 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
491
491
|
</a>
|
|
492
492
|
<a
|
|
493
493
|
aria-label="SoundCloud"
|
|
494
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
494
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
495
495
|
data-testid="ucl-uikit-footer__social-link"
|
|
496
496
|
href="https://soundcloud.com/uclsound"
|
|
497
497
|
target="_blank"
|
|
@@ -519,7 +519,7 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
519
519
|
</a>
|
|
520
520
|
<a
|
|
521
521
|
aria-label="X social media platform"
|
|
522
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
522
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
523
523
|
data-testid="ucl-uikit-footer__social-link"
|
|
524
524
|
href="https://x.com/ucl"
|
|
525
525
|
target="_blank"
|
|
@@ -545,7 +545,7 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
545
545
|
</a>
|
|
546
546
|
<a
|
|
547
547
|
aria-label="Instagram"
|
|
548
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
548
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
549
549
|
data-testid="ucl-uikit-footer__social-link"
|
|
550
550
|
href="https://www.instagram.com/ucl/"
|
|
551
551
|
target="_blank"
|
|
@@ -691,7 +691,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
|
|
|
691
691
|
>
|
|
692
692
|
<a
|
|
693
693
|
aria-label="Facebook"
|
|
694
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
694
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
695
695
|
data-testid="ucl-uikit-footer__social-link"
|
|
696
696
|
href="https://www.facebook.com/uclofficial/"
|
|
697
697
|
target="_blank"
|
|
@@ -717,7 +717,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
|
|
|
717
717
|
</a>
|
|
718
718
|
<a
|
|
719
719
|
aria-label="Flickr"
|
|
720
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
720
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
721
721
|
data-testid="ucl-uikit-footer__social-link"
|
|
722
722
|
href="https://www.flickr.com/groups/ucl/"
|
|
723
723
|
target="_blank"
|
|
@@ -743,7 +743,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
|
|
|
743
743
|
</a>
|
|
744
744
|
<a
|
|
745
745
|
aria-label="TikTok"
|
|
746
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
746
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
747
747
|
data-testid="ucl-uikit-footer__social-link"
|
|
748
748
|
href="https://www.tiktok.com/@uclofficial"
|
|
749
749
|
target="_blank"
|
|
@@ -769,7 +769,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
|
|
|
769
769
|
</a>
|
|
770
770
|
<a
|
|
771
771
|
aria-label="YouTube"
|
|
772
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
772
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
773
773
|
data-testid="ucl-uikit-footer__social-link"
|
|
774
774
|
href="https://www.youtube.com/ucltv"
|
|
775
775
|
target="_blank"
|
|
@@ -795,7 +795,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
|
|
|
795
795
|
</a>
|
|
796
796
|
<a
|
|
797
797
|
aria-label="SoundCloud"
|
|
798
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
798
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
799
799
|
data-testid="ucl-uikit-footer__social-link"
|
|
800
800
|
href="https://soundcloud.com/uclsound"
|
|
801
801
|
target="_blank"
|
|
@@ -823,7 +823,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
|
|
|
823
823
|
</a>
|
|
824
824
|
<a
|
|
825
825
|
aria-label="X social media platform"
|
|
826
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
826
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
827
827
|
data-testid="ucl-uikit-footer__social-link"
|
|
828
828
|
href="https://x.com/ucl"
|
|
829
829
|
target="_blank"
|
|
@@ -849,7 +849,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
|
|
|
849
849
|
</a>
|
|
850
850
|
<a
|
|
851
851
|
aria-label="Instagram"
|
|
852
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
852
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-cwywro"
|
|
853
853
|
data-testid="ucl-uikit-footer__social-link"
|
|
854
854
|
href="https://www.instagram.com/ucl/"
|
|
855
855
|
target="_blank"
|
|
@@ -51,7 +51,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
|
|
|
51
51
|
>
|
|
52
52
|
<a
|
|
53
53
|
aria-label="Instagram"
|
|
54
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
54
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
55
55
|
data-testid="ucl-uikit-footer__social-link"
|
|
56
56
|
href="https://www.instagram.com/ucl/"
|
|
57
57
|
target="_blank"
|
|
@@ -80,7 +80,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
|
|
|
80
80
|
</a>
|
|
81
81
|
<a
|
|
82
82
|
aria-label="LinkedIn"
|
|
83
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
83
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
84
84
|
data-testid="ucl-uikit-footer__social-link"
|
|
85
85
|
href="https://www.linkedin.com/school/university-college-london/"
|
|
86
86
|
target="_blank"
|
|
@@ -108,7 +108,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
|
|
|
108
108
|
</a>
|
|
109
109
|
<a
|
|
110
110
|
aria-label="YouTube"
|
|
111
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
111
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
112
112
|
data-testid="ucl-uikit-footer__social-link"
|
|
113
113
|
href="https://www.youtube.com/ucltv"
|
|
114
114
|
target="_blank"
|
|
@@ -134,7 +134,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
|
|
|
134
134
|
</a>
|
|
135
135
|
<a
|
|
136
136
|
aria-label="TikTok"
|
|
137
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
137
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
138
138
|
data-testid="ucl-uikit-footer__social-link"
|
|
139
139
|
href="https://www.tiktok.com/@uclofficial"
|
|
140
140
|
target="_blank"
|
|
@@ -160,7 +160,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
|
|
|
160
160
|
</a>
|
|
161
161
|
<a
|
|
162
162
|
aria-label="Facebook"
|
|
163
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
163
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
164
164
|
data-testid="ucl-uikit-footer__social-link"
|
|
165
165
|
href="https://www.facebook.com/uclofficial/"
|
|
166
166
|
target="_blank"
|
|
@@ -186,7 +186,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
|
|
|
186
186
|
</a>
|
|
187
187
|
<a
|
|
188
188
|
aria-label="Bluesky"
|
|
189
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
189
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
190
190
|
data-testid="ucl-uikit-footer__social-link"
|
|
191
191
|
href="https://bsky.app/profile/ucl.ac.uk"
|
|
192
192
|
target="_blank"
|
|
@@ -212,7 +212,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
|
|
|
212
212
|
</a>
|
|
213
213
|
<a
|
|
214
214
|
aria-label="Threads"
|
|
215
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
215
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
216
216
|
data-testid="ucl-uikit-footer__social-link"
|
|
217
217
|
href="https://www.threads.com/@ucl"
|
|
218
218
|
target="_blank"
|
|
@@ -239,7 +239,7 @@ exports[`Footer > snapshot: footer links provided 1`] = `
|
|
|
239
239
|
</a>
|
|
240
240
|
<a
|
|
241
241
|
aria-label="SoundCloud"
|
|
242
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
242
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
243
243
|
data-testid="ucl-uikit-footer__social-link"
|
|
244
244
|
href="https://soundcloud.com/uclsound"
|
|
245
245
|
target="_blank"
|
|
@@ -385,14 +385,14 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
385
385
|
Category 1
|
|
386
386
|
</h3>
|
|
387
387
|
<a
|
|
388
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-
|
|
388
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-7pftwz"
|
|
389
389
|
data-testid="ucl-uikit-footer__nav-link"
|
|
390
390
|
href="#"
|
|
391
391
|
>
|
|
392
392
|
Item 1
|
|
393
393
|
</a>
|
|
394
394
|
<a
|
|
395
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-
|
|
395
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-7pftwz"
|
|
396
396
|
data-testid="ucl-uikit-footer__nav-link"
|
|
397
397
|
href="#"
|
|
398
398
|
>
|
|
@@ -409,14 +409,14 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
409
409
|
Category 2
|
|
410
410
|
</h3>
|
|
411
411
|
<a
|
|
412
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-
|
|
412
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-7pftwz"
|
|
413
413
|
data-testid="ucl-uikit-footer__nav-link"
|
|
414
414
|
href="#"
|
|
415
415
|
>
|
|
416
416
|
Item 1
|
|
417
417
|
</a>
|
|
418
418
|
<a
|
|
419
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-
|
|
419
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__nav-link css-7pftwz"
|
|
420
420
|
data-testid="ucl-uikit-footer__nav-link"
|
|
421
421
|
href="#"
|
|
422
422
|
>
|
|
@@ -467,7 +467,7 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
467
467
|
>
|
|
468
468
|
<a
|
|
469
469
|
aria-label="Instagram"
|
|
470
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
470
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
471
471
|
data-testid="ucl-uikit-footer__social-link"
|
|
472
472
|
href="https://www.instagram.com/ucl/"
|
|
473
473
|
target="_blank"
|
|
@@ -496,7 +496,7 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
496
496
|
</a>
|
|
497
497
|
<a
|
|
498
498
|
aria-label="LinkedIn"
|
|
499
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
499
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
500
500
|
data-testid="ucl-uikit-footer__social-link"
|
|
501
501
|
href="https://www.linkedin.com/school/university-college-london/"
|
|
502
502
|
target="_blank"
|
|
@@ -524,7 +524,7 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
524
524
|
</a>
|
|
525
525
|
<a
|
|
526
526
|
aria-label="YouTube"
|
|
527
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
527
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
528
528
|
data-testid="ucl-uikit-footer__social-link"
|
|
529
529
|
href="https://www.youtube.com/ucltv"
|
|
530
530
|
target="_blank"
|
|
@@ -550,7 +550,7 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
550
550
|
</a>
|
|
551
551
|
<a
|
|
552
552
|
aria-label="TikTok"
|
|
553
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
553
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
554
554
|
data-testid="ucl-uikit-footer__social-link"
|
|
555
555
|
href="https://www.tiktok.com/@uclofficial"
|
|
556
556
|
target="_blank"
|
|
@@ -576,7 +576,7 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
576
576
|
</a>
|
|
577
577
|
<a
|
|
578
578
|
aria-label="Facebook"
|
|
579
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
579
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
580
580
|
data-testid="ucl-uikit-footer__social-link"
|
|
581
581
|
href="https://www.facebook.com/uclofficial/"
|
|
582
582
|
target="_blank"
|
|
@@ -602,7 +602,7 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
602
602
|
</a>
|
|
603
603
|
<a
|
|
604
604
|
aria-label="Bluesky"
|
|
605
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
605
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
606
606
|
data-testid="ucl-uikit-footer__social-link"
|
|
607
607
|
href="https://bsky.app/profile/ucl.ac.uk"
|
|
608
608
|
target="_blank"
|
|
@@ -628,7 +628,7 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
628
628
|
</a>
|
|
629
629
|
<a
|
|
630
630
|
aria-label="Threads"
|
|
631
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
631
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
632
632
|
data-testid="ucl-uikit-footer__social-link"
|
|
633
633
|
href="https://www.threads.com/@ucl"
|
|
634
634
|
target="_blank"
|
|
@@ -655,7 +655,7 @@ exports[`Footer > snapshot: nav links 1`] = `
|
|
|
655
655
|
</a>
|
|
656
656
|
<a
|
|
657
657
|
aria-label="SoundCloud"
|
|
658
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
658
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
659
659
|
data-testid="ucl-uikit-footer__social-link"
|
|
660
660
|
href="https://soundcloud.com/uclsound"
|
|
661
661
|
target="_blank"
|
|
@@ -830,7 +830,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
|
|
|
830
830
|
>
|
|
831
831
|
<a
|
|
832
832
|
aria-label="Instagram"
|
|
833
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
833
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
834
834
|
data-testid="ucl-uikit-footer__social-link"
|
|
835
835
|
href="https://www.instagram.com/ucl/"
|
|
836
836
|
target="_blank"
|
|
@@ -859,7 +859,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
|
|
|
859
859
|
</a>
|
|
860
860
|
<a
|
|
861
861
|
aria-label="LinkedIn"
|
|
862
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
862
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
863
863
|
data-testid="ucl-uikit-footer__social-link"
|
|
864
864
|
href="https://www.linkedin.com/school/university-college-london/"
|
|
865
865
|
target="_blank"
|
|
@@ -887,7 +887,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
|
|
|
887
887
|
</a>
|
|
888
888
|
<a
|
|
889
889
|
aria-label="YouTube"
|
|
890
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
890
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
891
891
|
data-testid="ucl-uikit-footer__social-link"
|
|
892
892
|
href="https://www.youtube.com/ucltv"
|
|
893
893
|
target="_blank"
|
|
@@ -913,7 +913,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
|
|
|
913
913
|
</a>
|
|
914
914
|
<a
|
|
915
915
|
aria-label="TikTok"
|
|
916
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
916
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
917
917
|
data-testid="ucl-uikit-footer__social-link"
|
|
918
918
|
href="https://www.tiktok.com/@uclofficial"
|
|
919
919
|
target="_blank"
|
|
@@ -939,7 +939,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
|
|
|
939
939
|
</a>
|
|
940
940
|
<a
|
|
941
941
|
aria-label="Facebook"
|
|
942
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
942
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
943
943
|
data-testid="ucl-uikit-footer__social-link"
|
|
944
944
|
href="https://www.facebook.com/uclofficial/"
|
|
945
945
|
target="_blank"
|
|
@@ -965,7 +965,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
|
|
|
965
965
|
</a>
|
|
966
966
|
<a
|
|
967
967
|
aria-label="Bluesky"
|
|
968
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
968
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
969
969
|
data-testid="ucl-uikit-footer__social-link"
|
|
970
970
|
href="https://bsky.app/profile/ucl.ac.uk"
|
|
971
971
|
target="_blank"
|
|
@@ -991,7 +991,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
|
|
|
991
991
|
</a>
|
|
992
992
|
<a
|
|
993
993
|
aria-label="Threads"
|
|
994
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
994
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
995
995
|
data-testid="ucl-uikit-footer__social-link"
|
|
996
996
|
href="https://www.threads.com/@ucl"
|
|
997
997
|
target="_blank"
|
|
@@ -1018,7 +1018,7 @@ exports[`Footer > snapshot: no nav links 1`] = `
|
|
|
1018
1018
|
</a>
|
|
1019
1019
|
<a
|
|
1020
1020
|
aria-label="SoundCloud"
|
|
1021
|
-
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-
|
|
1021
|
+
class="ucl-uikit-base-link ucl-uikit-link ucl-uikit-footer__social-link css-1j633gx"
|
|
1022
1022
|
data-testid="ucl-uikit-footer__social-link"
|
|
1023
1023
|
href="https://soundcloud.com/uclsound"
|
|
1024
1024
|
target="_blank"
|