PageSourceSearch

https://www.kcl.ac.uk/_GhbZtw_8fe3d6e8-6c75-4fc9-88ef-46b7f2723b06…/modern/js/Search.57269f4a88791a418e9d.mjs

js kcl.ac.uk collected 2026-09-24 07:33:09 UTC 62,332 bytes, 1,516 lines download raw bytes

1"use strict";
2(self["__LOADABLE_LOADED_CHUNKS__"] = self["__LOADABLE_LOADED_CHUNKS__"] || []).push([[763,1549],{
3
4/***/ 43919
5(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6
7
8// EXPORTS
9__webpack_require__.d(__webpack_exports__, {
10  o: () => (/* reexport */ BackButton),
11  J: () => (/* reexport */ CircularBadgeButton)
12});
13
14// EXTERNAL MODULE: ./node_modules/react/index.js
15var react = __webpack_require__(29633);
16// EXTERNAL MODULE: ./node_modules/styled-components/dist/styled-components.browser.esm.js + 7 modules
17var styled_components_browser_esm = __webpack_require__(67780);
18// EXTERNAL MODULE: ./node_modules/prop-types/index.js
19var prop_types = __webpack_require__(86627);
20var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
21;// ./src/app/blocks/pages/DesignSystem/Buttons/CircularBadgeButton.js
22
23
24
25const Button = styled_components_browser_esm["default"].button`
26  --size: ${({ size }) => `${size}px`};
27  --ring: ${({ ring }) => `${ring}px`};
28  --color: ${({ color }) => color || "#ff7f50"};
29
30  position: relative;
31  width: var(--size);
32  height: var(--size);
33  border: 0;
34  padding: 0;
35  border-radius: 50%;
36  background: transparent;
37  cursor: pointer;
38  outline: none;
39  display: inline-grid;
40  place-items: center;
41  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.25));
42
43  &::before {
44    content: '';
45    position: absolute;
46    inset: 0;
47    border-radius: 50%;
48    background: var(--color);
49    -webkit-mask: radial-gradient(
50      circle,
51      transparent calc(50% - var(--ring)),
52      #000 calc(50% - var(--ring))
53    );
54    mask: radial-gradient(
55      circle,
56      transparent calc(50% - var(--ring)),
57      #000 calc(50% - var(--ring))
58    );
59    transition: transform 150ms ease;
60  }
61
62  & > span {
63    position: absolute;
64    inset: var(--ring);
65    border-radius: 50%;
66    background: #ffffff;
67    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.18),
68      inset 0 2px 0 rgba(255, 255, 255, 0.85);
69    display: grid;
70    place-items: center;
71  }
72
73  &:active::before {
74    transform: scale(0.98);
75  }
76`;
77const Label = styled_components_browser_esm["default"].span`
78  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto,
79    'Helvetica Neue', Arial, 'Noto Sans', 'Apple Color Emoji', 'Segoe UI Emoji';
80  font-weight: 800;
81  font-size: ${({ size }) => `calc(${size}px * 0.36)`};
82  line-height: 1;
83  color: #9aa0a6;
84  letter-spacing: 1;
85`;
86function CircularBadgeButton({
87  label = "A",
88  size = 48,
89  ring = 4,
90  color = "#536A6E",
91  onClick
92}) {
93  return /* @__PURE__ */ react.createElement(
94    Button,
95    {
96      size,
97      ring,
98      color,
99      "aria-label": label,
100      onClick: () => {
101        if (onClick) {
102          onClick(label);
103        }
104      }
105    },
106    /* @__PURE__ */ react.createElement("span", null, /* @__PURE__ */ react.createElement(Label, { size }, label))
107  );
108}
109CircularBadgeButton.propTypes = {
110  label: prop_types_default().oneOfType([(prop_types_default()).string, (prop_types_default()).node]),
111  size: (prop_types_default()).number,
112  ring: (prop_types_default()).number,
113  color: (prop_types_default()).string,
114  onClick: (prop_types_default()).func
115};
116
117// EXTERNAL MODULE: ./node_modules/@fortawesome/react-fontawesome/index.es.js
118var index_es = __webpack_require__(18149);
119// EXTERNAL MODULE: ./src/app/blocks/shared/components/index.js + 138 modules
120var components = __webpack_require__(61009);
121;// ./src/app/blocks/pages/DesignSystem/Buttons/BackButton.js
122
123
124
125
126const ContentStyled = styled_components_browser_esm["default"].div`
127  display: flex;
128  height: 100%;
129  width: 100%;
130  margin: 32px 0;
131
132  .link {
133    width: 100%;
134    max-width: 60px;
135  }
136
137  .icon {
138    margin-right: 8px;
139  }
140`;
141function BackButton() {
142  return /* @__PURE__ */ react.createElement(components/* ResponsiveContainer */.uf, null, /* @__PURE__ */ react.createElement(ContentStyled, null, /* @__PURE__ */ react.createElement(
143    components/* LinkCta */.$l,
144    {
145      url: "/design-system",
146      className: "link",
147      leftIcon: /* @__PURE__ */ react.createElement("div", { className: "icon" }, /* @__PURE__ */ react.createElement(index_es/* FontAwesomeIcon */.g, { icon: "fa-regular fa-arrow-left" }), " ")
148    },
149    "Back"
150  )));
151}
152
153;// ./src/app/blocks/pages/DesignSystem/Buttons/index.js
154
155
156
157
158/***/ },
159
160/***/ 65899
161(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
162
163// ESM COMPAT FLAG
164__webpack_require__.r(__webpack_exports__);
165
166// EXPORTS
167__webpack_require__.d(__webpack_exports__, {
168  "default": () => (/* binding */ DesignSystemRouting)
169});
170
171// EXTERNAL MODULE: ./node_modules/react/index.js
172var react = __webpack_require__(29633);
173// EXTERNAL MODULE: ./node_modules/styled-components/dist/styled-components.browser.esm.js + 7 modules
174var styled_components_browser_esm = __webpack_require__(67780);
175// EXTERNAL MODULE: ./src/app/blocks/shared/components/index.js + 138 modules
176var components = __webpack_require__(61009);
177// EXTERNAL MODULE: ./src/app/blocks/shared/utils/helpers.js
178var helpers = __webpack_require__(91655);
179// EXTERNAL MODULE: ./src/app/blocks/shared/components/Image/utils.js
180var utils = __webpack_require__(58762);
181;// ./src/app/blocks/pages/DesignSystem/BasicCards/Variants/props.js
182
183const defaultImage = (0,utils/* getDefaultImage */.Ny)(
184  null,
185  "https://preview-kcl.cloud.contensis.com/newimages/about/features/shitij-kapur-feature.x159e0d53.jpg?f=webp"
186);
187const propsForOneCard = {
188  headingText: "Lorem ipsum Heading",
189  headingDescription: `Contrary to popular belief, Lorem Ipsum is not simply random text.
190            It has roots in a piece of classical Latin literature from 45 BC,
191            making it over 2000 years old.`,
192  layout: "1-card-left",
193  items: [
194    {
195      title: "Lorem ipsum Heading",
196      contentParams: {
197        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
198        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
199      },
200      image: defaultImage
201    }
202  ]
203};
204const propsForTwoCards = {
205  headingText: "Lorem ipsum Heading",
206  headingDescription: `Contrary to popular belief, Lorem Ipsum is not simply random text.
207            It has roots in a piece of classical Latin literature from 45 BC,
208            making it over 2000 years old.`,
209  layout: "1-card-right",
210  items: [
211    {
212      title: "Lorem ipsum Card 1",
213      contentParams: {
214        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
215        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
216      },
217      image: defaultImage
218    },
219    {
220      title: "Lorem ipsum Card 2",
221      contentParams: {
222        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
223        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
224      },
225      image: defaultImage
226    }
227  ]
228};
229const propsForThreeCards = {
230  headingText: "Lorem ipsum Heading",
231  headingDescription: `Contrary to popular belief, Lorem Ipsum is not simply random text.
232            It has roots in a piece of classical Latin literature from 45 BC,
233            making it over 2000 years old.`,
234  layout: "1-card-right",
235  items: [
236    {
237      title: "Lorem ipsum Card 1",
238      contentParams: {
239        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
240        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
241      },
242      image: defaultImage
243    },
244    {
245      title: "Lorem ipsum Card 2",
246      contentParams: {
247        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
248        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
249      },
250      image: defaultImage
251    },
252    {
253      title: "Lorem ipsum Card 3",
254      contentParams: {
255        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
256        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
257      },
258      image: defaultImage
259    }
260  ]
261};
262const propsForFourCards = {
263  headingText: "Lorem ipsum Heading",
264  headingDescription: `Contrary to popular belief, Lorem Ipsum is not simply random text.
265            It has roots in a piece of classical Latin literature from 45 BC,
266            making it over 2000 years old.`,
267  layout: "1-card-right",
268  items: [
269    {
270      contentParams: {
271        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
272        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
273      },
274      image: defaultImage
275    },
276    {
277      contentParams: {
278        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
279        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
280      },
281      image: defaultImage
282    },
283    {
284      contentParams: {
285        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
286        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
287      },
288      image: defaultImage
289    },
290    {
291      contentParams: {
292        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
293        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
294      },
295      image: defaultImage
296    }
297  ]
298};
299const propsForFiveCards = {
300  headingText: "Lorem ipsum Heading",
301  headingDescription: `Contrary to popular belief, Lorem Ipsum is not simply random text.
302            It has roots in a piece of classical Latin literature from 45 BC,
303            making it over 2000 years old.`,
304  layout: "1-card-right",
305  items: [
306    {
307      title: "Lorem ipsum Card 1",
308      contentParams: {
309        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
310        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
311      },
312      image: defaultImage
313    },
314    {
315      title: "Lorem ipsum Card 2",
316      contentParams: {
317        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
318        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
319      },
320      image: defaultImage
321    },
322    {
323      title: "Lorem ipsum Card 3",
324      contentParams: {
325        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
326        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
327      },
328      image: defaultImage
329    },
330    {
331      title: "Lorem ipsum Card 4",
332      contentParams: {
333        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
334        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
335      },
336      image: defaultImage
337    },
338    {
339      title: "Lorem ipsum Card 5",
340      contentParams: {
341        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
342        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
343      },
344      image: defaultImage
345    }
346  ]
347};
348const propsForSevenCards = {
349  headingText: "Lorem ipsum Heading",
350  headingDescription: `Contrary to popular belief, Lorem Ipsum is not simply random text.
351            It has roots in a piece of classical Latin literature from 45 BC,
352            making it over 2000 years old.`,
353  layout: "1-card-right",
354  items: [
355    {
356      title: "Lorem ipsum Card 1",
357      contentParams: {
358        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
359        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
360      },
361      image: defaultImage
362    },
363    {
364      title: "Lorem ipsum Card 2",
365      contentParams: {
366        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
367        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
368      },
369      image: defaultImage
370    },
371    {
372      title: "Lorem ipsum Card 3",
373      contentParams: {
374        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
375        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
376      },
377      image: defaultImage
378    },
379    {
380      title: "Lorem ipsum Card 4",
381      contentParams: {
382        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
383        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
384      },
385      image: defaultImage
386    },
387    {
388      title: "Lorem ipsum Card 5",
389      contentParams: {
390        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
391        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
392      },
393      image: defaultImage
394    },
395    {
396      title: "Lorem ipsum Card 6",
397      contentParams: {
398        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
399        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
400      },
401      image: defaultImage
402    },
403    {
404      title: "Lorem ipsum Card 7",
405      contentParams: {
406        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
407        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
408      },
409      image: defaultImage
410    },
411    {
412      title: "Lorem ipsum Card 7",
413      contentParams: {
414        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
415        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
416      },
417      image: defaultImage
418    },
419    {
420      title: "Lorem ipsum Card 7",
421      contentParams: {
422        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
423        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
424      },
425      image: defaultImage
426    },
427    {
428      title: "Lorem ipsum Card 7",
429      contentParams: {
430        heading: "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
431        body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer."
432      },
433      image: defaultImage
434    }
435  ]
436};
437
438;// ./src/app/blocks/pages/DesignSystem/BasicCards/Variants/styles.js
439
440const defaultCardContentStyles = (0,styled_components_browser_esm.css)`
441  padding: 24px 0 0 0;
442  display: flex;
443  gap: 16px;
444  flex-direction: column;
445  color: #000000;
446  justify-content: center;
447
448  & p {
449    font-family: Wix MadeFor Text, sans-serif;
450    line-height: 1.5;
451    font-size: 1rem;
452  }
453
454  .basic-card-h3 {
455    font-family: Kings Caslon Display, sans-serif;
456    line-height: 1.2;
457    font-size: 1.75rem;
458    text-transform: none;
459  }
460`;
461const ContainerStyled = styled_components_browser_esm["default"].div`
462  .basic-cards-container {
463    ${(p) => p.margin && (0,styled_components_browser_esm.css)`
464        margin: 64px 0;
465      `};
466    ${(p) => p.padding && (0,styled_components_browser_esm.css)`
467        padding: 64px 0;
468      `};
469    ${(p) => p.background && (0,styled_components_browser_esm.css)`
470        background: #e0e6ea;
471      `};
472  }
473`;
474
475;// ./src/app/blocks/pages/DesignSystem/BasicCards/Variants/One.js
476
477
478
479
480
481
482const CardContentContainerStyled = styled_components_browser_esm["default"].div`
483  ${defaultCardContentStyles}
484
485  @media (min-width: ${(p) => p.theme.breakpoints.tab}px) {
486    padding: ${(p) => p.$position === "right" ? "14px 20px 14px 0" : "14px 20px"};
487  }
488
489  @media (min-width: ${(p) => p.theme.breakpoints.desktop}px) {
490    padding: ${(p) => p.$position === "right" ? "14px 40px 14px 0" : "14px 0 14px 40px"};
491
492    .basic-card-h3 {
493      font-size: 2rem;
494    }
495  }
496`;
497const contentRenderer = ({ heading, body, position }) => /* @__PURE__ */ react.createElement(CardContentContainerStyled, { $position: position }
497, /* @__PURE__ */ react.createElement(
498  components/* Heading */.DZ,
499  {
500    className: "basic-card-h3",
501    headingLevel: "Level 3",
502    headingText: heading
503  }
504), /* @__PURE__ */ react.createElement("p", null, body));
505function One() {
506  return /* @__PURE__ */ react.createElement(react.Fragment, null, /* @__PURE__ */ react.createElement(ContainerStyled, { margin: true }, /* @__PURE__ */ react.createElement(
507    components/* BasicCardsContainer */.B1,
508    {
509      ...propsForOneCard,
510      cardContentRenderer: contentRenderer
511    }
512  )), /* @__PURE__ */ react.createElement(ContainerStyled, { margin: true, padding: true, background: true }, /* @__PURE__ */ react.createElement(
513    components/* BasicCardsContainer */.B1,
514    {
515      ...(0,helpers/* mergeObject */.Uf)(propsForOneCard, {
516        layout: "1-card-right",
517        items: [
518          {
519            contentParams: { position: "right" },
520            link: { title: "link title", href: "/go-to-page" }
521          }
522        ]
523      }),
524      cardContentRenderer: contentRenderer
525    }
526  )), /* @__PURE__ */ react.createElement(ContainerStyled, { margin: true }, /* @__PURE__ */ react.createElement(
527    components/* BasicCardsContainer */.B1,
528    {
529      cardContentRenderer: contentRenderer,
530      ...propsForOneCard,
531      headingDescription: ""
532    }
533  )), /* @__PURE__ */ react.createElement(ContainerStyled, { padding: true, background: true }, /* @__PURE__ */ react.createElement(
534    components/* BasicCardsContainer */.B1,
535    {
536      cardContentRenderer: contentRenderer,
537      ...propsForOneCard,
538      headingText: ""
539    }
540  )));
541}
542
543;// ./src/app/blocks/pages/DesignSystem/BasicCards/Variants/Two.js
544
545
546
547
548
549const Two_CardContentContainerStyled = styled_components_browser_esm["default"].div`
550  ${defaultCardContentStyles}
551
552  @media (min-width: ${(p) => p.theme.breakpoints.desktop}px) {
553    .basic-card-h3 {
554      font-size: 2rem;
555    }
556  }
557`;
558const Two_contentRenderer = ({ heading, body, position }) => /* @__PURE__ */ react.createElement(Two_CardContentContainerStyled, { $position: position }, /* @__PURE__ */ react.createElement(
559  components/* Heading */.DZ,
560  {
561    className: "basic-card-h3",
562    headingLevel: "Level 3",
563    headingText: heading
564  }
565), /* @__PURE__ */ react.createElement("p", null, body));
566function Two() {
567  return /* @__PURE__ */ react.createElement(react.Fragment, null, /* @__PURE__ */ react.createElement(ContainerStyled, { margin: true }, /* @__PURE__ */ react.createElement(
568    components/* BasicCardsContainer */.B1,
569    {
570      ...{ ...propsForTwoCards, headingText: "", headingDescription: "" },
571      cardContentRenderer: Two_contentRenderer
572    }
573  )), /* @__PURE__ */ react.createElement(ContainerStyled, { margin: true }, /* @__PURE__ */ react.createElement(
574    components/* BasicCardsContainer */.B1,
575    {
576      ...propsForTwoCards,
577      cardContentRenderer: Two_contentRenderer
578    }
579  )));
580}
581
582;// ./src/app/blocks/pages/DesignSystem/BasicCards/Variants/Three.js
583
584
585
586
587
588const Three_CardContentContainerStyled = styled_components_browser_esm["default"].div`
589  ${defaultCardContentStyles}
590
591  .basic-card-h3 {
592    font-family: Kings Caslon Display, sans-serif;
593    line-height: 1.2;
594    font-size: 1.75rem;
595    text-transform: none;
596  }
597
598  @media (min-width: ${(p) => p.theme.breakpoints.desktop}px) {
599    .basic-card-h3 {
600      font-family: Wix MadeFor Display, sans-serif;
601      font-weight: normal;
602      font-size: 1.3125rem;
603    }
604  }
605`;
606const Three_contentRenderer = ({ heading, body, position }) => /* @__PURE__ */ react.createElement(Three_CardContentContainerStyled, { $position: position }, /* @__PURE__ */ react.createElement(
607  components/* Heading */.DZ,
608  {
609    className: "basic-card-h3",
610    headingLevel: "Level 3",
611    headingText: heading
612  }
613), /* @__PURE__ */ react.createElement("p", null, body));
614function Three() {
615  return /* @__PURE__ */ react.createElement(react.Fragment, null, /* @__PURE__ */ react.createElement(ContainerStyled, { margin: true }, /* @__PURE__ */ react.createElement(
616    components/* BasicCardsContainer */.B1,
617    {
618      ...{
619        ...propsForThreeCards,
620        headingText: "",
621        headingDescription: ""
622      },
623      cardContentRenderer: Three_contentRenderer
624    }
625  )), /* @__PURE__ */ react.createElement(ContainerStyled, { margin: true }, /* @__PURE__ */ react.createElement(
626    components/* BasicCardsContainer */.B1,
627    {
628      ...propsForThreeCards,
629      cardContentRenderer: Three_contentRenderer
630    }
631  )));
632}
633
634;// ./src/app/blocks/pages/DesignSystem/BasicCards/Variants/Four.js
635
636
637
638
639
640const Four_CardContentContainerStyled = styled_components_browser_esm["default"].div`
641  ${defaultCardContentStyles}
642
643  .basic-card-h3 {
644    font-family: Kings Caslon Display, sans-serif;
645    line-height: 1.2;
646    font-size: 1.75rem;
647    text-transform: none;
648    font-weight: normal;
649  }
650
651  @media (min-width: ${(p) => p.theme.breakpoints.desktop}px) {
652    .basic-card-h3 {
653      font-size: 1.3125rem;
654    }
655  }
656`;
657const Four_contentRenderer = ({ heading, body, position }) => /* @__PURE__ */ react.createElement(Four_CardContentContainerStyled, { $position: position }, /* @__PURE__ */ react.createElement(
658  components/* Heading */.DZ,
659  {
660    className: "basic-card-h3",
661    headingLevel: "Level 3",
662    headingText: heading
663  }
664), /* @__PURE__ */ react.createElement("p", null, body));
665function Four() {
666  return /* @__PURE__ */ react.createElement(react.Fragment, null, /* @__PURE__ */ react.createElement(ContainerStyled, { margin: true }, /* @__PURE__ */ react.createElement(
667    components/* BasicCardsContainer */.B1,
668    {
669      ...{ ...propsForFourCards, headingText: "", headingDescription: "" },
670      cardContentRenderer: Four_contentRenderer
671    }
672  )), /* @__PURE__ */ react.createElement(ContainerStyled, { margin: true }, /* @__PURE__ */ react.createElement(
673    components/* BasicCardsContainer */.B1,
674    {
675      ...propsForFourCards,
676      cardContentRenderer: Four_contentRenderer
677    }
678  )));
679}
680
681;// ./src/app/blocks/pages/DesignSystem/BasicCards/Variants/FivePlus.js
682
683
684
685
686
687const FivePlus_CardContentContainerStyled = styled_components_browser_esm["default"].div`
688  ${defaultCardContentStyles}
689
690  .basic-card-h3 {
691    font-family: Wix MadeFor Display, sans-serif;
692    line-height: 1.2;
693    font-size: 1.3125rem;
694    text-transform: none;
695    font-weight: normal;
696  }
697
698  @media (min-width: ${(p) => p.theme.breakpoints.desktop}px) {
699    .basic-card-h3 {
700      font-size: 1.3125rem;
701    }
702  }
703`;
704const FivePlus_contentRenderer = ({ heading, body, position }) => /* @__PURE__ */ react.createElement(FivePlus_CardContentContainerStyled, { $position: position }, /* @__PURE__ */ react.createElement(
705  components/* Heading */.DZ,
706  {
707    className: "basic-card-h3",
708    headingLevel: "Level 3",
709    headingText: heading
710  }
711), /* @__PURE__ */ react.createElement("p", null, body));
712function FivePlus() {
713  return /* @__PURE__ */ react.createElement(react.Fragment, null, /* @__PURE__ */ react.createElement(ContainerStyled, { margin: true }, /* @__PURE__ */ react.createElement(
714    components/* BasicCardsContainer */.B1,
715    {
716      ...{ ...propsForFiveCards, headingText: "", headingDescription: "" },
717      cardContentRenderer: FivePlus_contentRenderer
718    }
719  )), /* @__PURE__ */ react.createElement(ContainerStyled, { margin: true }, /* @__PURE__ */ react.createElement(
720    components/* BasicCardsContainer */.B1,
721    {
722      ...propsForSevenCards,
723      cardContentRenderer: FivePlus_contentRenderer
724    }
725  )));
726}
727
728;// ./src/app/blocks/pages/DesignSystem/BasicCards/Variants/index.js
729
730
731
732
733
734
735// EXTERNAL MODULE: ./src/app/blocks/shared/hooks/index.js + 17 modules
736var hooks = __webpack_require__(88429);
737// EXTERNAL MODULE: ./src/app/blocks/pages/DesignSystem/PageEntry.js
738var PageEntry = __webpack_require__(12686);
739// EXTERNAL MODULE: ./src/app/blocks/pages/DesignSystem/Buttons/index.js + 2 modules
740var Buttons = __webpack_require__(43919);
741// EXTERNAL MODULE: ./node_modules/prop-types/index.js
742var prop_types = __webpack_require__(86627);
743var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
744;// ./src/app/blocks/pages/DesignSystem/NavBar/index.js
745
746
747
748
749
750const NavBar_ContainerStyled = styled_components_browser_esm["default"].nav`
751  display: flex;
752  gap: 16px;
753  align-items: center;
754  padding: 8px;
755  justify-content: center;
756`;
757const getColour = (active, label) => active === label ? "#E2231A" : "#536A6E";
758function NavBar({ onClick, active, items }) {
759  return /* @__PURE__ */ react.createElement(components/* ResponsiveContainer */.uf, null, /* @__PURE__ */ react.createElement(NavBar_ContainerStyled, null, items?.map(({ id, label }) => /* @__PURE__ */ react.createElement(
760    Buttons/* CircularBadgeButton */.J,
761    {
762      key: id,
763      label,
764      color: getColour(active, id),
765      onClick
766    }
767  ))));
768}
769NavBar.propTypes = {
770  active: (prop_types_default()).string,
771  onClick: (prop_types_default()).func,
772  items: prop_types_default().arrayOf((prop_types_default()).object)
773};
774
775;// ./src/app/blocks/pages/DesignSystem/BasicCards/index.js
776
777
778
779
780
781const ITEMS = [
782  { id: "1", label: "1" },
783  { id: "2", label: "2" },
784  { id: "3", label: "3" },
785  { id: "4", label: "4" },
786  { id: "5+", label: "5+" }
787];
788function DesignSystemBasicCards() {
789  const { tab = "1" } = (0,hooks/* useQueryParams */.sq)();
790  const [activeTab, setActiveTab] = (0,react.useState)(tab);
791  return /* @__PURE__ */ react.createElement(PageEntry/* PageEntry */._, null, /* @__PURE__ */ react.createElement(NavBar, { onClick: setActiveTab, active: activeTab, items: ITEMS }), activeTab === "1" && /* @__PURE__ */ react.createElement(One, null), activeTab === "2" && /* @__PURE__ */ react.createElement(Two, null), activeTab === "3" && /* @__PURE__ */ react.createElement(Three, null), activeTab === "4" && /* @__PURE__ */ react.createElement(Four, null), activeTab === "5+" && /* @__PURE__ */ react.createElement(FivePlus, null));
792}
793
794;// ./src/app/blocks/pages/DesignSystem/Container/styles.js
795
796const contentCss = (0,styled_components_browser_esm.css)`
797  .content,
798  .side-bar {
799    align-items: center;
800    background: #cdd5e1;
801    display: flex;
802    height: 100%;
803    justify-content: center;
804    width: 100%;
805  }
806`;
807const styles_ContainerStyled = styled_components_browser_esm["default"].div`
808  .basic-cards-container {
809    ${(p) => p.margin && (0,styled_components_browser_esm.css)`
810        margin: 64px 0;
811      `};
812    ${(p) => p.padding && (0,styled_components_browser_esm.css)`
813        padding: 64px 0;
814      `};
815    ${(p) => p.background && (0,styled_components_browser_esm.css)`
816        background: #e0e6ea;
817      `};
818  }
819  ${(p) => p.banner && (0,styled_components_browser_esm.css)`
820      .responsive-inner-container {
821        background: #cdd5e1;
822        height: 364px;
823        font-size: 3rem;
824        width: 100%;
825        margin-top: 8px;
826        max-width: 12;
827
828        & .content {
829          align-items: center;
830          display: flex;
831          height: 100%;
832          justify-content: center;
833          width: 100%;
834        }
835      }
836    `}
837
838  ${(p) => p.reduceMaxWidth && (0,styled_components_browser_esm.css)`
839      .responsive-inner-container {
840        background: #5d759c;
841        height: 364px;
842        font-size: 3rem;
843        width: 100%;
844        margin-top: 8px;
845        max-width: 1000px;
846        ${contentCss}
847      }
848    `}
849
850  ${(p) =>
850 p.twoColumnGrid && (0,styled_components_browser_esm.css)`
851      .two-column-grid-container {
852        display: grid;
853        gap: 24px;
854        height: 100%;
855        grid-template-columns: 1fr;
856
857        @media (min-width: ${(p2) => p2.theme.breakpoints.desktop}px) {
858          grid-template-columns: 1fr 424px;
859          gap: 40px;
860        }
861
862        @media (min-width: ${(p2) => p2.theme.breakpoints.largeDesktop}px) {
863          gap: 80px;
864        }
865      }
866      .responsive-outer-container {
867        background: #dda5cb;
868        height: 364px;
869        font-size: 3rem;
870        width: 100%;
871        margin-top: 8px;
872      }
873      .responsive-inner-container {
874        background: #5d759c;
875
876        ${contentCss}
877      }
878    `}
879
880    ${(p) => p.modifiedOuterInner && (0,styled_components_browser_esm.css)`
881      .responsive-outer-container {
882        background: #dda5cb;
883        height: 364px;
884        font-size: 3rem;
885        width: 100%;
886        margin-top: 8px;
887      }
888      .responsive-inner-container {
889        background: #5d759c;
890        ${contentCss}
891      }
892    `}
893    ${(p) => p.defaultUsage && (0,styled_components_browser_esm.css)`
894      .responsive-outer-container {
895        background: #cdd5e1;
896        height: 364px;
897        font-size: 3rem;
898        width: 100%;
899      }
900      .responsive-inner-container {
901        ${contentCss}
902
903        .content {
904          background-color: transparent;
905        }
906      }
907    `}
908`;
909
910;// ./src/app/blocks/pages/DesignSystem/Container/DefaultUsage/index.js
911
912
913
914function DefaultUsage() {
915  return /* @__PURE__ */ react.createElement(styles_ContainerStyled, { defaultUsage: true }, /* @__PURE__ */ react.createElement(components/* ResponsiveContainer */.uf, null, /* @__PURE__ */ react.createElement("div", { className: "content" }, "Default")));
916}
917
918;// ./src/app/blocks/pages/DesignSystem/Container/ModifiedOuterInnerContainer/index.js
919
920
921
922function ModifiedOuterInnerContainer() {
923  return /* @__PURE__ */ react.createElement(styles_ContainerStyled, { modifiedOuterInner: true }, /* @__PURE__ */ react.createElement(components/* ResponsiveContainer */.uf, null, /* @__PURE__ */ react.createElement("div", { className: "content" }, "Modified outer and inner container")));
924}
925
926;// ./src/app/blocks/pages/DesignSystem/Container/ReducedMaxWidth/index.js
927
928
929
930function ReducedMaxWidth() {
931  return /* @__PURE__ */ react.createElement(styles_ContainerStyled, { reduceMaxWidth: true }, /* @__PURE__ */ react.createElement(components/* ResponsiveContainer */.uf, null, /* @__PURE__ */ react.createElement("div", { className: "content" }, "Reduced max width")));
932}
933
934;// ./src/app/blocks/pages/DesignSystem/Container/TwoColumn/index.js
935
936
937
938function TwoColumn() {
939  return /* @__PURE__ */ react.createElement(styles_ContainerStyled, { twoColumnGrid: true }, /* @__PURE__ */ react.createElement(components/* ResponsiveContainer */.uf, null, /* @__PURE__ */ react.createElement("div", { className: "two-column-grid-container" }, /* @__PURE__ */ react.createElement("div", { className: "content" }, "Content"), /* @__PURE__ */ react.createElement("div", { className: "side-bar" }, "Side Bar"))));
940}
941
942;// ./src/app/blocks/pages/DesignSystem/Container/BannerUsage/index.js
943
944
945
946function BannerUsage() {
947  return /* @__PURE__ */ react.createElement(styles_ContainerStyled, { banner: true }, /* @__PURE__ */ react.createElement(components/* ResponsiveContainer */.uf, null, /* @__PURE__ */ react.createElement("div", { className: "content" }, "Banner Example")));
948}
949
950;// ./src/app/blocks/pages/DesignSystem/Container/index.js
951
952
953
954
955
956
957
958function DesignSystemContainer() {
959  return /* @__PURE__ */ react.createElement(PageEntry/* PageEntry */._, null, /* @__PURE__ */ react.createElement(DefaultUsage, null), /* @__PURE__ */ react.createElement(ModifiedOuterInnerContainer, null), /* @__PURE__ */ react.createElement(TwoColumn, null), /* @__PURE__ */ react.createElement(ReducedMaxWidth, null), /* @__PURE__ */ react.createElement(BannerUsage, null));
960}
961
962// EXTERNAL MODULE: ./node_modules/lodash/kebabCase.js
963var kebabCase = __webpack_require__(56518);
964var kebabCase_default = /*#__PURE__*/__webpack_require__.n(kebabCase);
965;// ./src/app/blocks/pages/DesignSystem/Tabs/DefaultUsage/styles.js
966
967const ContentStyled = styled_components_browser_esm["default"].div`
968  display: flex;
969  align-items: center;
970  justify-content: center;
971  height: 100%;
972  width: 100%;
973`;
974
975// EXTERNAL MODULE: ./src/app/blocks/shared/utils/index.js + 7 modules
976var shared_utils = __webpack_require__(92562);
977;// ./src/app/blocks/pages/DesignSystem/context/index.js
978
979
980
981const EntryContext = (0,react.createContext)(null);
982function DesignSystemContextProvider({ children, entry }) {
983  return /* @__PURE__ */ react.createElement(EntryContext.Provider, { value: (0,shared_utils/* isInvalidObject */.b2)(entry) ? {} : entry }, children);
984}
985const useDesignSystemEntry = () => {
986  return (0,react.useContext)(EntryContext);
987};
988DesignSystemContextProvider.propTypes = {
989  children: prop_types_default().oneOfType([(prop_types_default()).object, (prop_types_default()).array]),
990  entry: (prop_types_default()).object
991};
992
993;// ./src/app/blocks/pages/DesignSystem/Tabs/DefaultUsage/index.js
994
995
996
997
998
999
1000function DefaultUsage_DefaultUsage() {
1001  const entry = useDesignSystemEntry();
1002  const tabs = entry?.tabSection?.map(({ title, canvas }) => ({
1003    id: kebabCase_default()(title),
1004    label: title,
1005    canvas
1006  }));
1007  if ((0,shared_utils/* isInvalidArray */.J_)(tabs)) {
1008    return null;
1009  }
1010  return /* @__PURE__ */ react.createElement(components/* ResponsiveContainer */.uf, null, /* @__PURE__ */ react.createElement(ContentStyled, null, /* @__PURE__ */ react.createElement(
1011    components/* TabsContextProvider */.hY,
1012    {
1013      defaultActiveId: tabs[0]?.id,
1014      listAriaLabel: "Sample Tabs",
1015      tabs
1016    },
1017    /* @__PURE__ */ react.createElement(components/* Tabs */.tU, null, tabs.map(({ canvas, id }, index) => /* @__PURE__ */ react.createElement(components/* TabPanel */.Kp, { tabId: id, key: index }, /* @__PURE__ */ react.createElement(components/* CanvasRenderer */.KB, { content: canvas }))))
1018  )));
1019}
1020
1021;// ./src/app/blocks/pages/DesignSystem/Tabs/index.js
1022
1023
1024
1025function DesignSystemTabs() {
1026  return /* @__PURE__ */ react.createElement(PageEntry/* PageEntry */._, null, /* @__PURE__ */ react.createElement(DefaultUsage_DefaultUsage, null));
1027}
1028
1029;// ./src/app/blocks/pages/DesignSystem/GlobalNav/DefaultUsage/styles.js
1030
1031const styles_ContentStyled = styled_components_browser_esm["default"].div`
1032  display: flex;
1033  align-items: center;
1034  justify-content: center;
1035  height: 100%;
1036  width: 100%;
1037  font-size: 24px;
1038`;
1039
1040;// ./src/app/blocks/pages/DesignSystem/GlobalNav/DefaultUsage/index.js
1041
1042
1043
1044function GlobalNav_DefaultUsage_DefaultUsage() {
1045  return /* @__PURE__ */ react.createElement(components/* ResponsiveContainer */.uf, null, /* @__PURE__ */ react.createElement(styles_ContentStyled, null, "Global Nav Example"));
1046}
1047
1048;// ./src/app/blocks/pages/DesignSystem/GlobalNav/index.js
1049
1050
1051
1052
1053function DesignSystemGlobalNav() {
1054  return /* @__PURE__ */ react.createElement(PageEntry/* PageEntry */._, { header: /* @__PURE__ */ react.createElement(components/* GlobalNavWithContext */.k4, null) }, /* @__PURE__ */ react.createElement(GlobalNav_DefaultUsage_DefaultUsage, null));
1055}
1056
1057;// ./src/app/blocks/pages/DesignSystem/Media/styles.js
1058
1059const Title = styled_components_browser_esm["default"].h2`
1060  font-size: 2rem;
1061  text-align: center;
1062  margin-bottom: 16px;
1063`;
1064const cssContainer = (0,styled_components_browser_esm.css)`
1065  width: 100%;
1066  height: auto;
1067  position: relative;
1068  margin: 32px 0;
1069`;
1070const BannerImageContainerStyled = styled_components_browser_esm["default"].div`
1071  ${cssContainer}
1072
1073  .responsive-inner-container {
1074    width: 100%;
1075    max-width: 100%;
1076  }
1077
1078  .media-aspect-box {
1079    max-height: 344px;
1080  }
1081
1082  .media-img {
1083    object-position: center top;
1084  }
1085`;
1086const CardsImageContainerStyled = styled_components_browser_esm["default"].div`
1087  ${cssContainer}
1088
1089  .responsive-inner-container {
1090    display: flex;
1091    flex-direction: column;
1092    gap: 36px;
1093  }
1094`;
1095const CardsStyled = styled_components_browser_esm["default"].div`
1096  width: 100%;
1097  display: flex;
1098`;
1099const CardSectionStyled = styled_components_browser_esm["default"].section`
1100  background: #009ea0;
1101  height: auto;
1102`;
1103const CardInnerSectionStyled = styled_components_browser_esm["default"].div`
1104  display: grid;
1105  grid-template-columns: 1fr;
1106  height: auto;
1107  width: 100%;
1108
1109  @media (min-width: ${(p) => p.theme.breakpoints.desktop}px) {
1110    grid-template-columns: 1fr 1fr;
1111    grid-template-columns: ${(p) => p.$columnTemplate || "1fr 1fr"};
1112    width: 100%;
1113  }
1114`;
1115const MediaContentStyled = styled_components_browser_esm["default"].div`
1116  background: #a8cecf;
1117  height: 100%;
1118  overflow: hidden;
1119  padding: 0;
1120
1121  .media-aspect-box {
1122    height: 258px;
1123  }
1124
1125  .media-img {
1126    object-position: center top;
1127  }
1128
1129  @media (min-width: ${(p) => p.theme.breakpoints.mobile}px) {
1130    .media-aspect-box {
1131      height: 450px;
1132    }
1133  }
1134
1135  @media (min-width: ${(p) => p.theme.breakpoints.desktop}px) {
1136    padding-right: 40px;
1137  }
1138`;
1139const Media_styles_ContentStyled = styled_components_browser_esm["default"].div`
1140  display: flex;
1141  align-items: center;
1142  padding: 40px 24px;
1143  min-height: 260px;
1144
1145  @media (min-width: ${(p) => p.theme.breakpoints.desktop}px) {
1146    padding: 72px 80px;
1147  }
1148`;
1149const GridStyled = styled_components_browser_esm["default"].div`
1150  display: grid;
1151  grid-template-columns: 1fr;
1152  gap: 40px;
1153  background-color: #a8cecf;
1154
1155  .media-aspect-box {
1156    height: 258px;
1157  }
1158
1159  .media-img {
1160    object-position: center top;
1161  }
1162
1163  @media (min-width: ${(p) => p.theme.breakpoints.mobile}px) {
1164    .media-aspect-box {
1165      height: 450px;
1166    }
1167  }
1168
1169  @media (min-width: ${(p) => p.theme.breakpoints.desktop}px) {
1170    grid-template-columns: ${(p) => p.$columnTemplate || "1fr 1fr"};
1171    .media-aspect-box {
1172      height: ${(p) => p.$imgHeight || "450px"};
1173    }
1174  }
1175`;
1176const ArticleStyled = styled_components_browser_esm["default"].article`
1177  background-color: #009ea0;
1178`;
1179
1180;// ./src/app/blocks/pages/DesignSystem/images.js
1181
1182const cardImage = (0,utils/* getDefaultImage */.Ny)(
1183  null,
1184  "https://preview-kcl.cloud.contensis.com/newimages/about/features/shitij-kapur-feature.x159e0d53.jpg?f=webp"
1185);
1186const bannerImage = (0,utils/* getDefaultImage */.Ny)(
1187  null,
1188  "https://www.kcl.ac.uk/newimages/study-images/kings-students-aug-day-3-2022-444-1.xcb8a29e9.jpg"
1189);
1190
1191;// ./src/app/blocks/pages/DesignSystem/Media/ExampleBannerImage.js
1192
1193
1194
1195
1196function ExampleBannerImage() {
1197  return /* @__PURE__ */ react.createElement(BannerImageContainerStyled, null, /* @__PURE__ */ react.createElement(components/* ResponsiveContainer */.uf, null, /* @__PURE__ */ react.createElement(Title, null, "Banner image"), /* @__PURE__ */ react.createElement(components/* Media */.$U, { image: bannerImage, width: 1903, height: 664, crop: true })));
1198}
1199
1200;// ./src/app/blocks/pages/DesignSystem/Media/Cards.js
1201
1202
1203
1204
1205const MEDIA_PROPS = {
1206  width: 600,
1207  height: 480,
1208  crop: true
1209};
1210function CardImage() {
1211  return /* @__PURE__ */ react.createElement(CardSectionStyled, null, /* @__PURE__ */ react.createElement(CardInnerSectionStyled, null, /* @__PURE__ */ react.createElement(MediaContentStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { image: cardImage, ...MEDIA_PROPS })), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)));
1212}
1213function CardsImage() {
1214  return /* @__PURE__ */ react.createElement(CardSectionStyled, null, /* @__PURE__ */ react.createElement(CardInnerSectionStyled, { $columnTemplate: "1fr" }, /* @__PURE__ */ react.createElement(GridStyled, null, /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { image: cardImage, ...MEDIA_PROPS }
1214), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)), /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { image: cardImage, ...MEDIA_PROPS }), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)))));
1215}
1216function TertiaryCardsImage() {
1217  return /* @__PURE__ */ react.createElement(CardSectionStyled, null, /* @__PURE__ */ react.createElement(CardInnerSectionStyled, { $columnTemplate: "1fr" }, /* @__PURE__ */ react.createElement(GridStyled, { $columnTemplate: "1fr 1fr 1fr", $imgHeight: "288px" }, /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { image: cardImage, ...MEDIA_PROPS }), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)), /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { image: cardImage, ...MEDIA_PROPS }), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)), /* @__P
1217URE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { image: cardImage, ...MEDIA_PROPS }), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)))));
1218}
1219function QuaternaryCardsImage() {
1220  return /* @__PURE__ */ react.createElement(CardSectionStyled, null, /* @__PURE__ */ react.createElement(CardInnerSectionStyled, { $columnTemplate: "1fr" }, /* @__PURE__ */ react.createElement(GridStyled, { $columnTemplate: "1fr 1fr 1fr 1fr", $imgHeight: "212px" }, /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { image: cardImage, ...MEDIA_PROPS }), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)), /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { image: cardImage, ...MEDIA_PROPS }), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)), /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { image: cardImage, ...MEDIA_PROPS }
1220), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)), /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { image: cardImage, ...MEDIA_PROPS }), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)))));
1221}
1222
1223;// ./src/app/blocks/pages/DesignSystem/Media/ExampleMediaImage.js
1224
1225
1226
1227
1228function ExampleMediaImage() {
1229  return /* @__PURE__ */ react.createElement(CardsImageContainerStyled, null, /* @__PURE__ */ react.createElement(components/* ResponsiveContainer */.uf, null, /* @__PURE__ */ react.createElement("div", null, /* @__PURE__ */ react.createElement(Title, null, "Card"), /* @__PURE__ */ react.createElement(CardImage, null)), /* @__PURE__ */ react.createElement("div", null, /* @__PURE__ */ react.createElement(Title, null, "Two Cards"), /* @__PURE__ */ react.createElement(CardsImage, null)), /* @__PURE__ */ react.createElement("div", null, /* @__PURE__ */ react.createElement(Title, null, "Three Cards"), /* @__PURE__ */ react.createElement(TertiaryCardsImage, null)), /* @__P
1229URE__ */ react.createElement("div", null, /* @__PURE__ */ react.createElement(Title, null, "Four Cards"), /* @__PURE__ */ react.createElement(QuaternaryCardsImage, null))));
1230}
1231
1232;// ./src/app/blocks/pages/DesignSystem/Media/Videos.js
1233
1234
1235
1236function CardVideo({ video }) {
1237  return /* @__PURE__ */ react.createElement(CardSectionStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { video }));
1238}
1239function CardsVideos({ video }) {
1240  return /* @__PURE__ */ react.createElement(CardSectionStyled, null, /* @__PURE__ */ react.createElement(CardInnerSectionStyled, { $columnTemplate: "1fr" }, /* @__PURE__ */ react.createElement(GridStyled, null, /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { video }), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)), /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { video }), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)))));
1241}
1242function TertiaryCardsVideos({ video }) {
1243  return /* @__PURE__ */ react.createElement(CardSectionStyled, null, /* @__PURE__ */ react.createElement(CardInnerSectionStyled, { $columnTemplate: "1fr" }, /* @__PURE__ */ react.createElement(GridStyled, { $columnTemplate: "1fr 1fr 1fr", $imgHeight: "288px" }, /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { video }
1243), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)), /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { video }), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)), /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { video }), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)))));
1244}
1245function QuaternaryCardsVideos({ video }) {
1246  return /* @__PURE__ */ react.createElement(CardSectionStyled, null, /* @__PURE__ */ react.createElement(CardInnerSectionStyled, { $columnTemplate: "1fr" }, /* @__PURE__ */ react.createElement(GridStyled, { $columnTemplate: "1fr 1fr 1fr 1fr", $imgHeight: "212px" }, /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { video }), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)), /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { video }
1246), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)), /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { video }), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)), /* @__PURE__ */ react.createElement(ArticleStyled, null, /* @__PURE__ */ react.createElement(components/* Media */.$U, { video }), /* @__PURE__ */ react.createElement(Media_styles_ContentStyled, null)))));
1247}
1248
1249;// ./src/app/blocks/pages/DesignSystem/Media/ExampleMediaKalturaVideo.js
1250
1251
1252
1253
1254const kalturaVideo = {
1255  type: "kalturaVideo",
1256  url: "https://media.kcl.ac.uk/media/Kings+College+London+-+Welcome+to+Kings/1_tigzpfv9"
1257};
1258function ExampleMediaKalturaVideo() {
1259  return /* @__PURE__ */ react.createElement(CardsImageContainerStyled, null, /* @__PURE__ */ react.createElement(components/* ResponsiveContainer */.uf, null, /* @__PURE__ */ react.createElement("div", null, /* @__PURE__ */ react.createElement(Title, null, "Kaltura Video"), /* @__PURE__ */ react.createElement(CardVideo, { video: kalturaVideo })), /* @__PURE__ */ react.createElement("div", null, /* @__PURE__ */ react.createElement(Title, null, "Two Video Cards"), /* @__PURE__ */ react.createElement(CardsVideos, { video: kalturaVideo })), /* @__PURE__ */ react.createElement("div", null, /* @__PURE__ */ react.createElement(Title, null, "Three Video Cards"), /* @__PURE__ */ react.createElement(TertiaryCardsVideos, { video: kalturaVideo })), /* @__PURE__ */ react.createElement("div", null, /* @__PURE__ */ react.createElement(Title, null, "Four Video Cards"), /* @__PURE__ */ react.createElement(QuaternaryCardsVideos, { video: kalturaVideo }))));
1260}
1261
1262;// ./src/app/blocks/pages/DesignSystem/Media/ExampleMediaYoutubeVideo.js
1263
1264
1265
1266
1267const youtubeVideo = {
1268  type: "youtubeVideo",
1269  url: "https://youtu.be/nLE0EO8k9dw?si=7dDtizyHbfAhZuC0"
1270};
1271function ExampleMediaYoutubeVideo() {
1272  return /* @__PURE__ */ react.createElement(CardsImageContainerStyled, null, /* @__PURE__ */ react.createElement(components/* ResponsiveContainer */.uf, null, /* @__PURE__ */ react.createElement("div", null, /* @__PURE__ */ react.createElement(Title, null, "Youtube Video"), /* @__PURE__ */ react.createElement(CardVideo, { video: youtubeVideo })), /* @__PURE__ */ react.createElement("div", null, /* @__PURE__ */ react.createElement(Title, null, "Two Video Cards"), /* @__PURE__ */ react.createElement(CardsVideos, { video: youtubeVideo })), /* @__PURE__ */ react.createElement("div", null, /* @__PURE__ */ react.createElement(Title, null, "Three Video Cards"), /* @__PURE__ */ react.createElement(TertiaryCardsVideos, { video: youtubeVideo })), /* @__PURE__ */ react.createElement("div", null, /* @__PURE__ */ react.createElement(Title, null, "Four Video Cards"), /* @__PURE__ */ react.createElement(QuaternaryCardsVideos, { video: youtubeVideo }))));
1273}
1274
1275;// ./src/app/blocks/pages/DesignSystem/Media/index.js
1276
1277
1278
1279
1280
1281
1282
1283
1284const Media_ITEMS = [
1285  { id: "1", label: "1" },
1286  { id: "2", label: "2" },
1287  { id: "3", label: "3" }
1288];
1289function DesignSystemMedia() {
1290  const { tab = "1" } = (0,hooks/* useQueryParams */.sq)();
1291  const [activeTab, setActiveTab] = (0,react.useState)(tab);
1292  return /* @__PURE__ */ react.createElement(PageEntry/* PageEntry */._, null, /* @__PURE__ */ react.createElement(NavBar, { onClick: setActiveTab, active: activeTab, items: Media_ITEMS }), activeTab === "1" && /* @__PURE__ */ react.createElement(react.Fragment, null, /* @__PURE__ */ react.createElement(ExampleBannerImage, null), /* @__PURE__ */ react.createElement(ExampleMediaImage, null)), activeTab === "2" && /* @__PURE__ */ react.createElement(ExampleMediaKalturaVideo, null), activeTab === "3" && /* @__PURE__ */ react.createElement(ExampleMediaYoutubeVideo, null));
1293}
1294
1295;// ./src/app/blocks/pages/DesignSystem/HeroCarousel/DefaultUsage/index.js
1296
1297
1298
1299function HeroCarousel_DefaultUsage_DefaultUsage() {
1300  const entry = useDesignSystemEntry();
1301  return /* @__PURE__ */ react.createElement(
1302    components/* HeroCarouselComponent */.sU,
1303    {
1304      slides: entry?.heroBanner2026?.heroBannerSlide || []
1305    }
1306  );
1307}
1308
1309;// ./src/app/blocks/pages/DesignSystem/HeroCarousel/index.js
1310
1311
1312
1313function DesignSystemHeroCarousel() {
1314  return /* @__PURE__ */ react.createElement(PageEntry/* PageEntry */._, null, /* @__P
1314URE__ */ react.createElement(HeroCarousel_DefaultUsage_DefaultUsage, null));
1315}
1316
1317;// ./src/app/blocks/pages/DesignSystem/Accordions/DefaultUsage/styles.js
1318
1319const DefaultUsage_styles_ContentStyled = styled_components_browser_esm["default"].div`
1320  display: flex;
1321  flex-direction: column;
1322  align-items: stretch;
1323  justify-content: flex-start;
1324  width: 100%;
1325  min-height: 100%;
1326`;
1327
1328;// ./src/app/blocks/pages/DesignSystem/Accordions/DefaultUsage/index.js
1329
1330
1331
1332
1333
1334function Accordions_DefaultUsage_DefaultUsage() {
1335  const entry = useDesignSystemEntry();
1336  if ((0,shared_utils/* isInvalidArray */.J_)(entry?.accordion?.tabSection)) {
1337    return null;
1338  }
1339  return /* @__PURE__ */ react.createElement(components/* ResponsiveContainer */.uf, null, /* @__PURE__ */ react.createElement(DefaultUsage_styles_ContentStyled, null, /* @__PURE__ */ react.createElement(
1340    components/* AccordionsWithCanvas */.Sn,
1341    {
1342      defaultOpen: true,
1343      value: {
1344        heading: entry?.accordion?.heading,
1345        summary: entry?.accordion?.summary,
1346        panels: entry?.accordion.tabSection,
1347        backgroundColour: entry?.accordion.backgroundColour
1348      }
1349    }
1350  )));
1351}
1352
1353;// ./src/app/blocks/pages/DesignSystem/Accordions/index.js
1354
1355
1356
1357function DesignSystemAccordions() {
1358  return /* @__PURE__ */ react.createElement(PageEntry/* PageEntry */._, null, /* @__PURE__ */ react.createElement(Accordions_DefaultUsage_DefaultUsage, null));
1359}
1360
1361;// ./src/app/blocks/pages/DesignSystem/DesignSystemRouting.js
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371function DesignSystemRouting(entry) {
1372  return /* @__PURE__ */ react.createElement(DesignSystemContextProvider, { entry: entry.entry }, (() => {
1373    switch (entry?.location?.pathname) {
1374      case "/design-system/basic-cards":
1375        return /* @__PURE__ */ react.createElement(DesignSystemBasicCards, null);
1376      case "/design-system/container":
1377        return /* @__PURE__ */ react.createElement(DesignSystemContainer, null);
1378      case "/design-system/tabs":
1379        return /* @__PURE__ */ react.createElement(DesignSystemTabs, null);
1380      case "/design-system/global-nav":
1381        return /* @__PURE__ */ react.createElement(DesignSystemGlobalNav, null);
1382      case "/design-system/media":
1383        return /* @__PURE__ */ react.createElement(DesignSystemMedia, null);
1384      case "/design-system/hero-carousel":
1385        return /* @__PURE__ */ react.createElement(DesignSystemHeroCarousel, null);
1386      case "/design-system/accordions":
1387        return /* @__PURE__ */ react.createElement(DesignSystemAccordions, null);
1388      default:
1389        return;
1390    }
1391  })());
1392}
1393
1394
1395/***/ },
1396
1397/***/ 12686
1398(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1399
1400/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1401/* harmony export */   _: () => (/* binding */ PageEntry)
1402/* harmony export */ });
1403/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29633);
1404/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86627);
1405/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
1406/* harmony import */ var _shared_context_entryContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12077);
1407/* harmony import */ var _shared_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(61009);
1408/* harmony import */ var _Buttons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(43919);
1409
1410
1411
1412
1413
1414function PageEntry({ children, header, footer, isRoot }) {
1415  return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_shared_context_entryContext__WEBPACK_IMPORTED_MODULE_2__/* .EntryContextProvider */ .B, { parseEntry: (entry) => entry }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_shared_components__WEBPACK_IMPORTED_MODULE_3__/* .PageLayout */ .Mx, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_shared_components__WEBPACK_IMPORTED_MODULE_3__/* .Main */ .gZ, null, header || /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_shared_components__WEBPACK_IMPORTED_MODULE_3__/* .HeaderSwitcher */ .d1, null), !isRoot && /* @__P
1415URE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Buttons__WEBPACK_IMPORTED_MODULE_4__/* .BackButton */ .o, null), children), footer || /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_shared_components__WEBPACK_IMPORTED_MODULE_3__/* .Footer */ .wi, null)));
1416}
1417PageEntry.propTypes = {
1418  children: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().node),
1419  header: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().node),
1420  footer: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().node),
1421  isRoot: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().bool)
1422};
1423
1424
1425/***/ },
1426
1427/***/ 7252
1428(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1429
1430__webpack_require__.r(__webpack_exports__);
1431/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1432/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1433/* harmony export */ });
1434/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29633);
1435/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10136);
1436/* harmony import */ var _features_layout_components_Layout__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(919);
1437/* harmony import */ var _features_search__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34194);
1438
1439
1440
1441
1442const Search = () => {
1443  const search = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__/* .useSelector */ .d4)((state) => state.search);
1444  return search?.search?.type === "" ? null : /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_features_layout_components_Layout__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .A, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_features_search__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A, null));
1445};
1446Search.propTypes = {};
1447/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Search);
1448
1449
1450/***/ },
1451
1452/***/ 57051
1453(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1454
1455__webpack_require__.r(__webpack_exports__);
1456/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1457/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
1458/* harmony export */ });
1459/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29633);
1460/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10136);
1461/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(86627);
1462/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
1463/* harmony import */ var _features_Loading_components_Loading__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(88194);
1464/* harmony import */ var _NotFound__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(27867);
1465/* harmony import */ var _core_routes_ContentTypeMappings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(52812);
1466/* harmony import */ var _features_layout_components_Layout__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(919);
1467/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(45666);
1468/* harmony import */ var _features_common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(70910);
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478function StaticContainer(props) {
1479  const staticRoute = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__/* .useSelector */ .d4)((state) => state.static);
1480  const { loading, notFound, entry, isError } = staticRoute;
1481  const history = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_7__/* .useHistory */ .W6)();
1482  const redirectHandler = () => {
1483    return history.push("/404");
1484  };
1485  if (loading) {
1486    return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_features_layout_components_Layout__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_features_Loading_components_Loading__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .A, null));
1487  }
1488  if (!loading && notFound) {
1489    redirectHandler();
1490    return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_NotFound__WEBPACK_IMPORTED_MODULE_4__["default"], null);
1491  }
1492  if (isError) {
1493    return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_features_layout_components_Layout__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .A, { hasHeaderMarginBottom: true }
1493, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_features_common__WEBPACK_IMPORTED_MODULE_8__/* .Container */ .mc, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_features_common__WEBPACK_IMPORTED_MODULE_8__/* .Column */ .VP, { large: 12 }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_features_common__WEBPACK_IMPORTED_MODULE_8__/* .Heading */ .DZ, { level: 1 }, "An error has occurred"), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_features_common__WEBPACK_IMPORTED_MODULE_8__/* .Paragraph */ .fz, null, "Please return to the main site or log a ticket with the", " ", /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_features_common__WEBPACK_IMPORTED_MODULE_8__/* .Link */ .N_, { uri: "mailto:[email protected]" }, "IT Service Desk"), " ", "if you cannot find the content you seek"))));
1494  }
1495  if (!loading && !isError && entry) {
1496    const { sys } = entry;
1497    const found = _core_routes_ContentTypeMappings__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .A.find(
1498      (i) => i.contentTypeID === sys.contentTypeId
1499    );
1500    const Component = found?.component;
1501    if (!Component) {
1502      return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_NotFound__WEBPACK_IMPORTED_MODULE_4__["default"], null);
1503    }
1504    return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(Component, { ...props, entry });
1505  }
1506  return null;
1507}
1508StaticContainer.propTypes = {
1509  match: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object)
1510};
1511/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (StaticContainer);
1512
1513
1514/***/ }
1515
1516}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.