@uoguelph/web-components 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +4 -0
  2. package/dist/cjs/index-160752dd.js +1825 -0
  3. package/dist/cjs/index.cjs.js +2 -0
  4. package/dist/cjs/loader.cjs.js +22 -0
  5. package/dist/cjs/uofg-footer_3.cjs.entry.js +528 -0
  6. package/dist/cjs/uofg-web-components.cjs.js +26 -0
  7. package/dist/collection/collection-manifest.json +14 -0
  8. package/dist/collection/components/uofg-footer/footer-links.js +5 -0
  9. package/dist/collection/components/uofg-footer/improve-life.svg +4 -0
  10. package/dist/collection/components/uofg-footer/social-links.js +5 -0
  11. package/dist/collection/components/uofg-footer/uofg-footer.css +173 -0
  12. package/dist/collection/components/uofg-footer/uofg-footer.js +23 -0
  13. package/dist/collection/components/uofg-header/decoration.svg +1 -0
  14. package/dist/collection/components/uofg-header/global-links.js +2 -0
  15. package/dist/collection/components/uofg-header/hello-you.js +4 -0
  16. package/dist/collection/components/uofg-header/logo-full-size.svg +1 -0
  17. package/dist/collection/components/uofg-header/logo-reduced-size.svg +1 -0
  18. package/dist/collection/components/uofg-header/page-specific.js +15 -0
  19. package/dist/collection/components/uofg-header/search.js +4 -0
  20. package/dist/collection/components/uofg-header/single-sign-on.js +2 -0
  21. package/dist/collection/components/uofg-header/uofg-header.css +548 -0
  22. package/dist/collection/components/uofg-header/uofg-header.js +131 -0
  23. package/dist/collection/components/uofg-menu/uofg-menu.js +440 -0
  24. package/dist/collection/index.js +1 -0
  25. package/dist/collection/utils/feature-check.js +2 -0
  26. package/dist/collection/utils/font-awesome-icon.js +7 -0
  27. package/dist/components/index.d.ts +36 -0
  28. package/dist/components/index.js +4 -0
  29. package/dist/components/index2.js +82 -0
  30. package/dist/components/uofg-footer.d.ts +11 -0
  31. package/dist/components/uofg-footer.js +100 -0
  32. package/dist/components/uofg-header.d.ts +11 -0
  33. package/dist/components/uofg-header.js +156 -0
  34. package/dist/components/uofg-menu.d.ts +11 -0
  35. package/dist/components/uofg-menu.js +6 -0
  36. package/dist/components/uofg-menu2.js +264 -0
  37. package/dist/esm/index-48bb3110.js +1796 -0
  38. package/dist/esm/index.js +1 -0
  39. package/dist/esm/loader.js +18 -0
  40. package/dist/esm/polyfills/core-js.js +11 -0
  41. package/dist/esm/polyfills/css-shim.js +1 -0
  42. package/dist/esm/polyfills/dom.js +79 -0
  43. package/dist/esm/polyfills/es5-html-element.js +1 -0
  44. package/dist/esm/polyfills/index.js +34 -0
  45. package/dist/esm/polyfills/system.js +6 -0
  46. package/dist/esm/uofg-footer_3.entry.js +522 -0
  47. package/dist/esm/uofg-web-components.js +21 -0
  48. package/dist/index.cjs.js +1 -0
  49. package/dist/index.js +1 -0
  50. package/dist/loader/cdn.js +3 -0
  51. package/dist/loader/index.cjs.js +3 -0
  52. package/dist/loader/index.d.ts +21 -0
  53. package/dist/loader/index.es2017.js +3 -0
  54. package/dist/loader/index.js +4 -0
  55. package/dist/loader/package.json +11 -0
  56. package/dist/types/components/uofg-footer/footer-links.d.ts +2 -0
  57. package/dist/types/components/uofg-footer/social-links.d.ts +2 -0
  58. package/dist/types/components/uofg-footer/uofg-footer.d.ts +3 -0
  59. package/dist/types/components/uofg-header/global-links.d.ts +2 -0
  60. package/dist/types/components/uofg-header/hello-you.d.ts +6 -0
  61. package/dist/types/components/uofg-header/page-specific.d.ts +17 -0
  62. package/dist/types/components/uofg-header/search.d.ts +2 -0
  63. package/dist/types/components/uofg-header/single-sign-on.d.ts +2 -0
  64. package/dist/types/components/uofg-header/uofg-header.d.ts +19 -0
  65. package/dist/types/components/uofg-menu/uofg-menu.d.ts +67 -0
  66. package/dist/types/components.d.ts +132 -0
  67. package/dist/types/index.d.ts +1 -0
  68. package/dist/types/stencil-public-runtime.d.ts +1640 -0
  69. package/dist/types/utils/feature-check.d.ts +2 -0
  70. package/dist/types/utils/font-awesome-icon.d.ts +5 -0
  71. package/dist/uofg-web-components/index.esm.js +0 -0
  72. package/dist/uofg-web-components/p-24bd712c.entry.js +1 -0
  73. package/dist/uofg-web-components/p-b6a9700a.js +2 -0
  74. package/dist/uofg-web-components/uofg-web-components.css +1 -0
  75. package/dist/uofg-web-components/uofg-web-components.esm.js +1 -0
  76. package/package.json +51 -0
@@ -0,0 +1,522 @@
1
+ import { h, r as registerInstance, g as getElement, c as createEvent, H as Host } from './index-48bb3110.js';
2
+
3
+ const FontAwesomeIcon = (props) => {
4
+ const width = props.icon.icon[0];
5
+ const height = props.icon.icon[1];
6
+ const iconPathData = props.icon.icon[4];
7
+ return (h("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: `0 0 ${width} ${height}` }, Array.isArray(iconPathData) ? (iconPathData.map((path) => h("path", { d: path }))) : (h("path", { d: iconPathData }))));
8
+ };
9
+
10
+ var faSquareTwitter = {
11
+ prefix: 'fab',
12
+ iconName: 'square-twitter',
13
+ icon: [448, 512, ["twitter-square"], "f081", "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z"]
14
+ };
15
+ var faTwitterSquare = faSquareTwitter;
16
+ var faTiktok = {
17
+ prefix: 'fab',
18
+ iconName: 'tiktok',
19
+ icon: [448, 512, [], "e07b", "M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z"]
20
+ };
21
+ var faSquareFacebook = {
22
+ prefix: 'fab',
23
+ iconName: 'square-facebook',
24
+ icon: [448, 512, ["facebook-square"], "f082", "M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z"]
25
+ };
26
+ var faFacebookSquare = faSquareFacebook;
27
+ var faLinkedin = {
28
+ prefix: 'fab',
29
+ iconName: 'linkedin',
30
+ icon: [448, 512, [], "f08c", "M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"]
31
+ };
32
+ var faInstagram = {
33
+ prefix: 'fab',
34
+ iconName: 'instagram',
35
+ icon: [448, 512, [], "f16d", "M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"]
36
+ };
37
+ var faYoutube = {
38
+ prefix: 'fab',
39
+ iconName: 'youtube',
40
+ icon: [576, 512, [61802], "f167", "M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"]
41
+ };
42
+
43
+ const SocialLink = (props) => (h("li", null,
44
+ h("a", { href: props.url, "aria-label": props.name },
45
+ h(FontAwesomeIcon, { icon: props.icon }))));
46
+ const SocialLinks = () => (h("ul", { id: "uofg-footer-social-links" },
47
+ h(SocialLink, { name: "Twitter", url: "https://twitter.com/uofg", icon: faTwitterSquare }),
48
+ h(SocialLink, { name: "Facebook", url: "https://www.facebook.com/uofguelph", icon: faFacebookSquare }),
49
+ h(SocialLink, { name: "Instagram", url: "https://www.instagram.com/uofguelph/", icon: faInstagram }),
50
+ h(SocialLink, { name: "Youtube", url: "https://www.youtube.com/user/uofguelph", icon: faYoutube }),
51
+ h(SocialLink, { name: "LinkedIn", url: "https://www.linkedin.com/school/university-of-guelph/", icon: faLinkedin }),
52
+ h(SocialLink, { name: "TikTok", url: "https://www.tiktok.com/@uofguelph", icon: faTiktok })));
53
+
54
+ var faTrees = {
55
+ prefix: 'fas',
56
+ iconName: 'trees',
57
+ icon: [640, 512, [], "f724", "M70.2 121.4L178.5 5.8C182 2.1 186.9 0 192 0s10 2.1 13.5 5.8L313.8 121.4c4 4.3 6.2 9.9 6.2 15.7c0 12.7-10.3 22.9-22.9 22.9H272l74.6 89.5c3.5 4.2 5.4 9.5 5.4 15c0 13-10.5 23.5-23.5 23.5H304l74.6 89.5c3.5 4.2 5.4 9.5 5.4 15c0 13-10.5 23.5-23.5 23.5H224v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416H23.5C10.5 416 0 405.5 0 392.5c0-5.5 1.9-10.8 5.4-15L80 288H55.5c-13 0-23.5-10.5-23.5-23.5c0-5.5 1.9-10.8 5.4-15L112 160H86.9C74.3 160 64 149.7 64 137.1c0-5.8 2.2-11.4 6.2-15.7zm271.4-16.4L434.5 5.8C438 2.1 442.9 0 448 0s10 2.1 13.5 5.8L569.8 121.4c4 4.3 6.2 9.9 6.2 15.7c0 12.7-10.3 22.9-22.9 22.9H528l74.6 89.5c3.5 4.2 5.4 9.5 5.4 15c0 13-10.5 23.5-23.5 23.5H560l74.6 89.5c3.5 4.2 5.4 9.5 5.4 15c0 13-10.5 23.5-23.5 23.5H480v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V416l0-23.4 0-.1 0-.1V392h0c-.1-12.8-4.7-25.2-12.9-35l-40.6-48.7c13-10.2 21.4-26 21.4-43.8c0-13-4.6-25.6-12.9-35.5l-40.4-48.5c12.9-10 21.3-25.8 21.3-43.4c0-11.6-3.7-22.8-10.4-32.1z"]
58
+ };
59
+ var faBars = {
60
+ prefix: 'fas',
61
+ iconName: 'bars',
62
+ icon: [448, 512, ["navicon"], "f0c9", "M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]
63
+ };
64
+ var faSitemap = {
65
+ prefix: 'fas',
66
+ iconName: 'sitemap',
67
+ icon: [576, 512, [], "f0e8", "M208 80c0-26.5 21.5-48 48-48h64c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48h-8v40H464c30.9 0 56 25.1 56 56v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H464c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-4.4-3.6-8-8-8H312v40h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H256c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V280H112c-4.4 0-8 3.6-8 8v32h8c26.5 0 48 21.5 48 48v64c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V368c0-26.5 21.5-48 48-48h8V288c0-30.9 25.1-56 56-56H264V192h-8c-26.5 0-48-21.5-48-48V80z"]
68
+ };
69
+ var faList = {
70
+ prefix: 'fas',
71
+ iconName: 'list',
72
+ icon: [512, 512, ["list-squares"], "f03a", "M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"]
73
+ };
74
+ var faKey = {
75
+ prefix: 'fas',
76
+ iconName: 'key',
77
+ icon: [512, 512, [128273], "f084", "M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17v80c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V448h40c13.3 0 24-10.7 24-24V384h40c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z"]
78
+ };
79
+ var faRightToBracket = {
80
+ prefix: 'fas',
81
+ iconName: 'right-to-bracket',
82
+ icon: [512, 512, ["sign-in-alt"], "f2f6", "M217.9 105.9L340.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L217.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1L32 320c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM352 416l64 0c17.7 0 32-14.3 32-32l0-256c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c53 0 96 43 96 96l0 256c0 53-43 96-96 96l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]
83
+ };
84
+ var faCalendarRange = {
85
+ prefix: 'fas',
86
+ iconName: 'calendar-range',
87
+ icon: [512, 512, [], "e0d6", "M128 32V64H80c-26.5 0-48 21.5-48 48v48H480V112c0-26.5-21.5-48-48-48H384V32c0-17.7-14.3-32-32-32s-32 14.3-32 32V64H192V32c0-17.7-14.3-32-32-32s-32 14.3-32 32zM480 192H32V464c0 26.5 21.5 48 48 48H432c26.5 0 48-21.5 48-48V192zM160 288a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM384 448a32 32 0 1 1 0-64 32 32 0 1 1 0 64zM224 288c0-13.3 10.7-24 24-24H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H248c-13.3 0-24-10.7-24-24zm40 104c13.3 0 24 10.7 24 24s-10.7 24-24 24H120c-13.3 0-24-10.7-24-24s10.7-24 24-24H264z"]
88
+ };
89
+ var faCircleCheck = {
90
+ prefix: 'fas',
91
+ iconName: 'circle-check',
92
+ icon: [512, 512, [61533, "check-circle"], "f058", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]
93
+ };
94
+ var faUniversalAccess = {
95
+ prefix: 'fas',
96
+ iconName: 'universal-access',
97
+ icon: [512, 512, [], "f29a", "M0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3v50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2s19.4-17.8 15.2-30.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6V235.5c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"]
98
+ };
99
+ var faHandHoldingHeart = {
100
+ prefix: 'fas',
101
+ iconName: 'hand-holding-heart',
102
+ icon: [576, 512, [], "f4be", "M148 76.6C148 34.3 182.3 0 224.6 0c20.3 0 39.8 8.1 54.1 22.4l9.3 9.3 9.3-9.3C311.6 8.1 331.1 0 351.4 0C393.7 0 428 34.3 428 76.6c0 20.3-8.1 39.8-22.4 54.1L302.1 234.1c-7.8 7.8-20.5 7.8-28.3 0L170.4 130.7C156.1 116.4 148 96.9 148 76.6zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z"]
103
+ };
104
+ var faPhoneFlip = {
105
+ prefix: 'fas',
106
+ iconName: 'phone-flip',
107
+ icon: [512, 512, [128381, "phone-alt"], "f879", "M347.1 24.6c7.7-18.6 28-28.5 47.4-23.2l88 24C499.9 30.2 512 46 512 64c0 247.4-200.6 448-448 448c-18 0-33.8-12.1-38.6-29.5l-24-88c-5.3-19.4 4.6-39.7 23.2-47.4l96-40c16.3-6.8 35.2-2.1 46.3 11.6L207.3 368c70.4-33.3 127.4-90.3 160.7-160.7L318.7 167c-13.7-11.2-18.4-30-11.6-46.3l40-96z"]
108
+ };
109
+ var faCaretDown = {
110
+ prefix: 'fas',
111
+ iconName: 'caret-down',
112
+ icon: [320, 512, [], "f0d7", "M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]
113
+ };
114
+ var faMagnifyingGlass = {
115
+ prefix: 'fas',
116
+ iconName: 'magnifying-glass',
117
+ icon: [512, 512, [128269, "search"], "f002", "M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"]
118
+ };
119
+ var faSearch = faMagnifyingGlass;
120
+ var faBriefcase = {
121
+ prefix: 'fas',
122
+ iconName: 'briefcase',
123
+ icon: [512, 512, [128188], "f0b1", "M184 48H328c4.4 0 8 3.6 8 8V96H176V56c0-4.4 3.6-8 8-8zm-56 8V96H64C28.7 96 0 124.7 0 160v96H192 320 512V160c0-35.3-28.7-64-64-64H384V56c0-30.9-25.1-56-56-56H184c-30.9 0-56 25.1-56 56zM512 288H320v32c0 17.7-14.3 32-32 32H224c-17.7 0-32-14.3-32-32V288H0V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V288z"]
124
+ };
125
+
126
+ const FooterLink = (props) => (h("li", null,
127
+ h("a", { href: props.url, title: props.title },
128
+ h(FontAwesomeIcon, { icon: props.icon }),
129
+ h("span", null, props.text))));
130
+ const FooterLinks = () => (h("ul", { id: "uofg-footer-links", class: "uofg-footer-content-separator" },
131
+ h(FooterLink, { text: "Accessibility", url: "https://www.uoguelph.ca/diversity-human-rights/accessibility-u-g", icon: faUniversalAccess }),
132
+ h(FooterLink, { text: "Privacy", url: "https://www.uoguelph.ca/web/privacy/", icon: faKey }),
133
+ h(FooterLink, { text: "Site Map", url: "https://www.uoguelph.ca/site-map/", icon: faSitemap }),
134
+ h(FooterLink, { text: "Status Page", url: "https://uoguelph.statuspage.io/", icon: faCircleCheck }),
135
+ h(FooterLink, { text: "Land Acknowledgement", url: "https://www.uoguelph.ca/land-acknowledgement/", icon: faTrees, title: "The University of Guelph resides on the treaty lands and territory of the Mississaugas of the Credit. We recognize that today this gathering place is home to many First Nations, Inuit and M\u00E9tis peoples and acknowledging them reminds us of our collective responsibility to the land where we learn and work." }),
136
+ h(FooterLink, { text: "Careers", url: "https://www.uoguelph.ca/hr/careers-guelph/current-opportunities", icon: faBriefcase }),
137
+ h(FooterLink, { text: "Undergraduate Calendar", url: "https://www.uoguelph.ca/registrar/calendars/undergraduate/current/", icon: faCalendarRange }),
138
+ h(FooterLink, { text: "Graduate Calendar", url: "https://www.uoguelph.ca/registrar/calendars/graduate/current/", icon: faCalendarRange }),
139
+ h(FooterLink, { text: "Program Plans", url: "https://admission.uoguelph.ca/programs", icon: faList }),
140
+ h(FooterLink, { text: "Give to U of G", url: "https://www.alumni.uoguelph.ca/give-to-guelph/how-to-give", icon: faHandHoldingHeart })));
141
+
142
+ const improveLifeLogo = `<svg xmlns="http://www.w3.org/2000/svg" fill="#fff" viewBox="0 0 107.4 12">
143
+ <path
144
+ d="M0 0h5.3v.5C4 .5 3.6.8 3.6 2.1v7.3c0 1.4.3 1.8 1.6 1.8v.5H0v-.5c1.5 0 1.5-.5 1.5-1.6V1.9C1.5.9 1.3.5 0 .5ZM6.1 11.4c.9 0 1.1-.2 1.2-1.4l.3-5.1c.1-1.2-.1-1.4-.9-1.4v-.4h2.6l3 6.5 2.8-6.5h2.6v.4c-.8 0-.9.2-.9.8l.5 6.3c.1.7.3.8 1.1.8v.4h-4v-.4c1.1 0 1.3-.3 1.2-1.8l-.4-5.1-3.2 7.3h-.5L8.4 4.7l-.3 5.1c-.1 1.5.2 1.5 1.1 1.6v.4H6.1ZM19.2 11.4c1 0 1.2-.2 1.2-1.5v-5c0-1.4-.2-1.5-1.3-1.5v-.3h1.4a14.4 14.4 0 0 1 1.8-.1c2.6 0 4.1.6 4.1 2.5 0 1.6-1.4 2.8-3.3 2.8a3.8 3.8 0 0 1-1.1-.1v1.9c0 1.1.3 1.3 1.6 1.3v.4h-4.3v-.4Zm2.7-3.7.6.1a2.2 2.2 0 0 0 2.2-2.3 2 2 0 0 0-2.1-2.1h-.7ZM29.7 10c0 1.2.2 1.4 1.4 1.4v.4h-4.3v-.4c1.2 0 1.3-.3 1.3-1.2V4.6c0-.9-.2-1.1-1.3-1.1v-.4l2-.1h1.7c2.8 0 3.8 1.2 3.8 2.5a2.5 2.5 0 0 1-1.8 2.3 9.4 9.4 0 0 1 1 1l.9.9a5.4 5.4 0 0 0 3.3 1.9v.4c-2.7.1-3.4-.4-4.7-1.7l-.7-.7a8 8 0 0 0-1.5-1.3h-1.2V10Zm0-2.2h.4c1.9-.1 2.5-.8 2.5-2.2a2 2 0 0 0-2.3-2.2 1.7 1.7 0 0 0-.7.1v4.3ZM42.4 2.9c3 0 5.1 1.8 5.1 4.4a4.8 4.8 0 0 1-5.1 4.7c-2.9 0-5-1.8-5-4.3-.1-2.8 2.1-4.8 5-4.8Zm.2 8.6c1.9 0 3.2-1.6 3.2-3.9 0-2.5-1.5-4.3-3.5-4.3S39 4.8 39 7.3c0 2.8 1.8 4.2 3.6 4.2ZM49 4.5c-.4-1-.5-1.1-1.4-1.1v-.3h4.3v.4c-1.1 0-1.3.3-1.3.6a3 3 0 0 0 .2.8l2.1 5.2 2-4.9a4.5 4.5 0 0 0 .3-1.1c0-.5-.4-.6-1.3-.6v-.4h3.4v.4c-1 0-1.2.5-1.6 1.6L52.8 12H52ZM57.7 11.8v-.4c1.1 0 1.4-.2 1.4-1v-6c0-.9-.5-.9-1.4-.9v-.4h7.1l.1 2.1h-.4l-.1-.3c-.3-1.1-.5-1.2-1.4-1.2h-2.5V7h2.2c.8 0 1-.1 1-1.1h.4v2.8h-.4c-.1-1-.3-1.1-1-1.1h-2.2v2.5c0 .9.1 1 .8 1H63c1.4 0 1.7-.2 2.1-1.6h.4l-.2 2.2h-7.6ZM72.2 11.8v-.5c1.5 0 1.8-.1 1.8-1.6V2.1C74 .8 73.9.4 72.2.5V0h6.2v.5c-2 0-2.3.1-2.3 1.5v8c0 .8.2.9 1 .9H79c1.6 0 1.7-.1 3.1-2h.6l-1.5 2.9ZM83.2 3.1h3.9v.4c-.9 0-1.2.2-1.2 1.2v5.4c0 1 .2 1.3 1.2 1.3v.4h-3.9v-.4c1.1 0 1.1-.4 1.1-1.2V4.5c0-.8-.2-1.1-1.1-1ZM90.7 10c0 1.1.2 1.3 1.2 1.3v.4H88v-.4c.9 0 1.1-.3 1.1-1.1V4.5c0-.8-.3-1-1.1-1v-.4h6.6v1.7h-.4c-.1-.9-.3-1.1-1.4-1.1h-2.2v3.1h2.2c.9 0 1-.1 1.1-.9h.4v2.6H94c-.1-.9-.3-1-1.2-1h-2.1ZM95.3 11.8v-.4c1.1 0 1.4-.2 1.4-1v-6c0-.9-.5-.9-1.4-.9v-.4h7.1l.1 2.1h-.4l-.1-.3c-.3-1.1-.5-1.2-1.4-1.2h-2.5V7h2.2c.8 0 1-.1 1-1.1h.4v2.8h-.4c-.1-1-.3-1.1-1-1.1h-2.2v2.5c0 .9.1 1 .8 1h1.5c1.4 0 1.7-.2 2.1-1.6h.4l-.2 2.2h-7.4ZM107.4 10.9c0 .7-.5 1.1-1.3 1.1s-1.3-.4-1.3-1.1a1.2 1.2 0 0 1 1.3-1.2 1.2 1.2 0 0 1 1.3 1.2Z"/>
145
+ </svg>
146
+ `;
147
+
148
+ const uofgFooterCss = ":host{display:block;width:100%;font-size:1.6rem;font-family:sans-serif}*{box-sizing:border-box}:focus-visible{outline:2px solid #ffc72a;outline-offset:0.5rem}a{display:flex;align-items:center;gap:0.5rem;border-bottom:2px dotted transparent;transition-property:border-color;width:fit-content;color:inherit;transition-duration:200ms;transition-timing-function:ease-in-out;text-decoration:none;white-space:nowrap;padding-bottom:0.2rem}a:hover,a:focus{border-color:currentColor}svg{fill:currentColor;height:1.6rem}ul{list-style:none;padding:0;margin:unset}ul li{display:contents}#uofg-footer{display:flex;justify-content:center;align-items:center;background-color:#000;color:#fff;padding:2rem}#uofg-footer-content{display:grid;grid-template-columns:1fr;gap:2rem;width:100%;max-width:1370px}@media (min-width: 570px){#uofg-footer-content{grid-template-columns:1fr 1fr}}@media (min-width: 962px){#uofg-footer-content{grid-template-columns:0.5fr 2fr 0.5fr;justify-items:center;gap:2rem 4.75vw}}.uofg-footer-content-separator{display:flex;flex-direction:column;gap:0.75rem;justify-content:space-between}#uofg-footer-improve-life{transition-property:opacity;border:0}#uofg-footer-improve-life>svg{height:2.5rem}#uofg-footer-improve-life:hover,#uofg-footer-improve-life:focus{opacity:0.8}#uofg-footer-social-links{display:flex;align-items:center;list-style:none;padding:0;margin-left:0;gap:0.75rem}#uofg-footer-social-links a{transition-property:color;border:0}#uofg-footer-social-links a:hover,#uofg-footer-social-links a:focus{color:#ffc72a}#uofg-footer-social-links a:hover[aria-label=Twitter],#uofg-footer-social-links a:focus[aria-label=Twitter]{color:#1da1f2}#uofg-footer-social-links a:hover[aria-label=Facebook],#uofg-footer-social-links a:focus[aria-label=Facebook]{color:#4267b2}#uofg-footer-social-links a:hover[aria-label=Instagram],#uofg-footer-social-links a:focus[aria-label=Instagram]{color:#e1306c}#uofg-footer-social-links a:hover[aria-label=Youtube],#uofg-footer-social-links a:focus[aria-label=Youtube]{color:#f00}#uofg-footer-social-links a:hover[aria-label=LinkedIn],#uofg-footer-social-links a:focus[aria-label=LinkedIn]{color:#0077b5}#uofg-footer-social-links a:hover[aria-label=TikTok],#uofg-footer-social-links a:focus[aria-label=TikTok]{color:#f00}#uofg-footer-social-links svg{height:2rem}#uofg-footer-links{display:grid;grid-template-columns:1fr}#uofg-footer-links svg{color:#ffc72a}@media (min-width: 570px){#uofg-footer-links{grid-template-columns:1fr 1fr;grid-column-start:1;grid-column-end:3}}@media (min-width: 962px){#uofg-footer-links{grid-row:unset;grid-column:unset;gap:0.75rem 9.5vw}}#uofg-footer-address{font-style:normal;white-space:nowrap}#uofg-footer-address a{color:#69a3b9}@media (min-width: 570px){#uofg-footer-address{grid-row:1;grid-column:2}}@media (min-width: 962px){#uofg-footer-address{grid-row:unset;grid-column:unset}}";
149
+
150
+ const UofgFooter = class {
151
+ constructor(hostRef) {
152
+ registerInstance(this, hostRef);
153
+ }
154
+ render() {
155
+ return (h("footer", { id: "uofg-footer" }, h("div", { id: "uofg-footer-content" }, h("div", { id: "uofg-footer-social", class: "uofg-footer-content-separator" }, h("a", { id: "uofg-footer-improve-life", href: "//www.uoguelph.ca/improve-life", "aria-label": "Improve Life", innerHTML: improveLifeLogo }), h(SocialLinks, null), h("a", { href: "https://www.uoguelph.ca/web/socialmedia/" }, "Social Media Directory"), h("a", { href: "//www.uoguelph.ca/web/" }, "\u00A9 ", new Date().getFullYear(), " University of Guelph")), h(FooterLinks, null), h("address", { id: "uofg-footer-address", class: "uofg-footer-content-separator" }, h("strong", null, "University of Guelph"), h("span", null, "50 Stone Road East,"), h("span", null, "Guelph, Ontario, Canada"), h("span", null, "N1G 2W1"), h("a", { href: "tel:1-519-824-4120" }, h(FontAwesomeIcon, { icon: faPhoneFlip }), h("span", null, "519-824-4120"))))));
156
+ }
157
+ };
158
+ UofgFooter.style = uofgFooterCss;
159
+
160
+ const PageSpecific = (props) => {
161
+ var _a;
162
+ return (h("ul", { class: "uofg-header-page-specific" }, (_a = props.content) === null || _a === void 0 ? void 0 : _a.map((item) => {
163
+ if (!item) {
164
+ return null;
165
+ }
166
+ if ('text' in item) {
167
+ return (h("li", null,
168
+ h("a", Object.assign({ href: item.href }, item.attributes), item.text)));
169
+ }
170
+ return (h("li", null,
171
+ h("uofg-menu", { autoCollapse: props.autoCollapseMenus },
172
+ h("button", { slot: "button" },
173
+ h("span", null, item.title),
174
+ h(FontAwesomeIcon, { icon: faCaretDown })),
175
+ h("ul", { slot: "content", role: "menu" }, item.links.map((link) => (h("li", null,
176
+ h("a", Object.assign({ href: link.href }, link.attributes), link.text))))))));
177
+ }).filter(Boolean)));
178
+ };
179
+
180
+ const Decoration = `<svg viewBox="0 0 68 90" xmlns="http://www.w3.org/2000/svg"><path d="M23.131 0l44.847 90H0V0" fill="#d41728"/><path d="M23.131 0l16.03 32.044L55.1 0" fill="#ffc500"/></svg>`;
181
+
182
+ const FullSizeLogo = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 90"><path d="M0 0h150v90H0V0z"/><path fill="#fff" d="M116 25.5s-1.3-.4-1.3 2.6V39c0 1.7.4 2.6 1.7 2.6v.9h-5.6v-.9c0-.4 1.8 0 1.8-1.7V28.6c0-3-2.6-3-2.6-3s-.5-1 .8-1h5.2l.4.5-.4.4m-57.8 19l-6-15.5c-1.4-3.5-2.7-3.5-2.7-3.5s0-.8 1.3-.8h5.6l-.4.8c-.9 0-1.7.9-.9 3L58.6 39l3.5-8.6c.8-3 .4-3.9-1-4.3-1.2-.9-.3-1.3-.3-1.3h5.1v.8c-1.3 0-2.1 3.5-2.6 4.8L58.6 44l-.4.4m19 7c-.5.8-1 .8-2.2.8l-3 .4v-5.2h4.7s1.8 0 2.2 1.8c.4 1.7 1.7.4 1.3-.5l-.5-3H68.1c-1.7 0-.9.9-.9.9s2.2 0 2.2 3v10.8c0 1.7-1.3 1.7-1.7 2.2-.5.4 0 .4.4.4h12l.5-3.9s0-1.3-.9 0c-.8 1.3-.8 2.6-3.8 2.6s-4-.4-4-1.3v-6s.5-1 1.4-1H75s1.7.5 2.2 2.3l.4-.5V52l-.4-.5M91 24.7c1.7 0 3.4 1.7 3.4 3.9 0 2.5-3 4.3-4.7 4.3 0 0 2.1 1.3 4.7 5.6 2.6 3.9 5.2 4.7 7.8 5.2 1.3 0 3.4-.5 5.6-1.8 1.7-.8.4.5.4.5 0 .4-3 2.6-6.9 2.6-5.2 0-8.2-4-9.9-6.5l-3.5-4.8c-.8-.8-2.1-.4-2.1-.4v6.5s0 1.3 1.3 1.3c1.3.4.4.8.4.8H82v-.4c0-.4 1.7 0 1.7-1.7V28.6c.5-3-2.1-3.5-2.1-3.5l1.3-.4H91M89.2 26l-3.4.4v5.2l3 .4 2.2-.9.8-2.1c0-1.3-.8-2.6-2.6-3z"/><path fill="#fff" d="M109.1 24.7h-1.3l-3.9-.5c-3 0-5.6 2.6-5.6 4.8 0 2.6 1.7 4.3 4.8 4.7 2.5.9 4.3 1.3 4.3 4 0 2-2.2 3-4 3a5.9 5.9 0 01-4.7-3c-.8-1-.4-1.8-.4-1.8l-.9.4v3c-.4 1 2.2 3 5.7 3 4.3 0 6.9-2 6.9-6.4 0-3.5-4.4-4.3-5.7-4.3-1.2 0-3.4-1.3-3.4-3 0-1.8 2.2-2.6 3.4-2.6 1.8 0 2.6.4 3.5 1.3l.4 1.7h.9l-.4-2.6.4-1.7m9.5.4h10l1.6-.4.5.8V29c0 .4-.9.9-.9 0-.4-2.2-.8-2.6-2.6-2.6-.8 0-2.1 0-2.1.9v13c0 .8 1.7 1.2 2.1 1.2l-.4.9h-6s-.5-.9.4-.9c.8 0 1.3-1.3 1.3-1.7V27.3s.4-.9-.9-.9c-1.7 0-3-.4-3.4 2.6-.5.4-.9.9-.9 0v-3.5c-.4-.8 0-.8 1.3-.4M31 45.8h.8v3c-1.3 0-1.3-.8-1.3-1.3 0-.4-2.1.5-3.8 2.2-1.8 1.3-2.2 3-2.2 3s2.2 0 2.6-.8l.4.4v3l-.8.5s.8-2.2-1.3-2.2H24s-.9 4.3-3.5 6.9c-2.6 2.6-6 3.5-8.2 1.7v-.8l2.6.8c1.7 0 3.9-.8 5.2-3.4l2.1-5.2h-.8v-.9h1.3s.4-2.1 2.6-3.9c1.7-1.3 3.4-2.5 5.6-3m16.8 0v6l-.9.5s-.8-3.9-3.4-4.3c-2.2-.5-5.6-.5-7 1.3a12.4 12.4 0 00-2.5 8.2c0 4.7.9 9.5 7.3 9.5 3.5 0 3.5-3 3.5-2.6v-4.8c0-.4-1.3-1.3-2.6-1.3l.4-.8h7.8v.8s-2.2.5-2.2 1.8v6l-4.7 2.2c-2.2 1.3-1.7 1.3-3.9 1.3S32.3 68.3 31 64c-1.3-4.4-1.3-10 2.1-14.7 2.2-3 5.2-4 8.7-4l3.9.5 1.7-.4.4.4m2.6 0H56v.9s-1.7.4-1.7 1.3v10.3c0 2.2 2.1 3.5 3.9 3.5 1.3 0 4.7-1.3 4.7-4.3V48c0-.5-.4-1.3-2.1-1.3l.4-.9h4.7v.9s-1.3.4-1.3 1.3v8.6c0 3.9-3 7-6.4 7-4.3 0-6.5-1.8-6.5-5.3V47.5l-1.7-.8c-.9 0 .4-.9.4-.9m31 0H88l-.4.9s-1.7-.4-1.7 2.1v11.7c0 .4-.4.9.9 1.3l4.7-.4c1.7-.9 2.2-2.6 2.2-2.6h.4l-.4 3.9c0 .8-.5.4-1.8.4H81.5v-.4s1.7 0 1.7-3.5V48c0-1.7-1.3-.9-2.2-1.3l.5-.9m13.4.5l5.1-.5c2.6 0 4.3 0 6 .9a4 4 0 011.8 3.4c0 1.8-1.3 3-2.2 4-1.7 1.2-3 1.2-6.4.8v6c0 .5.8 1.3 2.1 1.3l-.4.9h-6l.4-.4 1.3-1.8V48.4c0-.4-.5-1.3-1.7-1.3v-.8m4.3 6.9s0 .8 3 .8c1.7 0 3-2.1 3-3.4 0-1.3-1.3-2.6-2.6-3h-3.4v5.6zm24.6 9.9v-.4s-1.3 0-1.3-2.2v-13c0-.8 1.7-1.2 1.7-1.2v-.5h-5.6l-.4.9s1.7 0 1.7 1.3v4.7h-7.4l-.4-.4V48c0-1.3 1.3-1.3 1.3-1.3v-.9h-5.2l-.4.9s1.7-.4 1.7.8v13c0 .9-.4 2.2-1.3 2.2v.4h5.2s.9-.4 0-.9c-.9 0-1.3-.4-1.3-1.7v-6l.5-.5h7.3v6.5c0 1.7-.9 1.7-1.3 2.2v.4h5.2M20.2 29c0-2.6-.9-3.5-3.5-3.5-.4-.4.5-.8.5-.8h7.3v.4c0 .4-2.2-.4-2.2 3.5v12c0 2.6-1.7 4.4-1.7 4.4-1.3 1.7-3.4 3-6.9 3-8.6 0-8.6-6.5-8.6-6.5V29c0-2.2 0-3.5-2.6-3.5l.4-.8h7.8v.8c-.4 0-2.2-.4-2.2 3.5v10.8c0 3.9 2.6 6 6 6 3.5 0 5.7-2.1 5.7-5.2V29M40 29c0-3.9 1.8-3 1.8-3.5v-.8l-5.2.4s-.9.4 0 .4c2.1.5 2.1 1.3 2.1 3.5v8.6c-.4.5-8.6-11.6-8.6-11.6l-.4-1.3h-3.9l-.4.8c2.6 0 2.6.9 2.6 3.5v9c0 4-2.2 3-2.2 3.5v.9H31s1.3-.9.4-.9c-2.6 0-2.2-.9-2.2-3.4v-8.7s8.2 10.4 9.1 13.4c0 0 .4.9.9.4l.4-.4.4-.9V29m32.4 4l3-.5c.9 0 1.8 1.3 1.8 2.2 0 .9.8 0 .8-.4v-3.5c0-.8-.4-.4-.8-.4l-1.8 1.3h-3v-5.2h4.8s1.7 0 2.5 1.7c.5 1.3 1 .5.5-.4l-.5-3H68.1l-.9.8s2.6 0 2.6 2.6v11.2c0 1.8-2.1 1.8-2.1 1.8l.8.8H79s1.3.5 1.7 0l.4-3.8s0-1-.8 0c-.5.4-.5 2.5-4 2.5-3 0-3.8-.4-3.8-1.3V33m69.5 9.5l.9-.5c.4-.4 0-.4-.5-.4-.4 0-1.3-.4-1.3-1.7V35l3.5-6.4.4-.9c.5-.9.9-1.7 1.7-1.7l1-.5v-.4h-5.3c-.4 0-.8 0-.4.4l1.3.5c.4 0 .9.8.4 1.7l-3.4 5.6-3.5-5.6c-.4-.9-.4-1.7.5-1.7l.8-.5v-.4h-6s-.9 0 0 .4l1.3.9 5.1 9v4.4c0 1.3-.4 1.7-.8 1.7l-.9.4 1.3.5h3.9m5.2-19.5H2l.8-.8h145l-.8.8m-99.7 5.2c0-2.6 1.3-2.6 1.3-2.6l.4-.4h-5.2l-.4-.4c-1.3 0-.9.8-.9.8s2.2 0 2.2 3v11.3c0 1.7-1.3 1.7-1.3 1.7v.9h5.2l.4-.9c-1.3 0-1.7-.4-1.7-2.6V28.1m76.4 37.6H50.4l.4-.5h73.4l-.4.5M14.6 54c-.5.9-1.3 1.8-1.3 3-.9 3.5 1.7 3.5 3 3.5 1.7-.4 3.9-2.6 4.3-5.6.4-3.9-3.4-3.9-6-.9m3.4 3c-.8 1.3-1.3 2.2-2.6 1.8-1.3 0-.8-2.2.5-4 .8-1.2 2.6-1.6 3-.8.4.9 0 2.2-.9 3z"/></svg>`;
183
+
184
+ const ReducedSizeLogo = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><path d="M0 0h100v100H0V0z"/><path fill="#fff" d="M74.6 54.9l-.7 2c2.4 0 5.6 1.4 5.6 2.9v9.5c0-.2-.2 5.4-7.8 5.4-13.7 0-15.6-10-15.6-20 0-6.7 2.4-13 5.8-17 3.4-3.8 9.8-3.6 15-3 5 .4 6.8 8.7 6.8 8.7l1.7-.5.2-13.2s-.7-.7-1.2-.5c-.5.3-2.4 1-3.7 1-1 0-4.6-.7-8.3-.7-6.6 0-13 1.4-17.8 8a32 32 0 00-3.4 6.1V28c0-8 4.1-6.3 4.6-7 .5-1.3.5-1.3-.2-1.5H39.9s-2 1.4-.7 1.4c5.4.5 7.6 2.5 7.6 7.4v25.4c0 6.6-5.1 10.5-12.5 10.5C27 64.2 22 59.5 22 51.5v-23c0-8 4.1-6.6 4.4-7.6.7-1 .7-1.2 0-1.2 0 0-9.3.5-16.2 0 0 0-2 1.5-.7 1.5 5.4.5 5.4 2.9 5.4 8v26.2s-.5 13.9 17.8 13.9c7.8 0 12.5-3.2 15-6.4l1.1-1.7c.3 2.5.8 5 1.5 7.1 3 9.6 14 12.2 17.6 12.2 4.6 0 4.6 0 8.8-2.9 2.2-1.2 10.2-4.4 10.2-4.4V59.8c0-2.2 4-3.2 4-3.2l.2-1.7H74.6z"/></svg>`;
185
+
186
+ const GlobalLinks = () => (h("ul", { class: "uofg-header-global-links" },
187
+ h("li", null,
188
+ h("a", { href: "/new-header/about" }, "About")),
189
+ h("li", null,
190
+ h("a", { href: "/new-header/academics" }, "Academics")),
191
+ h("li", null,
192
+ h("a", { href: "/new-header/admissions" }, "Admissions")),
193
+ h("li", null,
194
+ h("a", { href: "/new-header/research" }, "Research")),
195
+ h("li", null,
196
+ h("a", { href: "/new-header/student-life" }, "Student Life"))));
197
+
198
+ const HelloYou = (props) => (h("uofg-menu", { class: "uofg-header-hello-you-menu", "auto-collapse": props.autoCollapse },
199
+ h("button", { slot: "button" },
200
+ h("span", null, "Hello, YOU!"),
201
+ h(FontAwesomeIcon, { icon: faCaretDown })),
202
+ h("ul", { slot: "content" },
203
+ h("li", null,
204
+ h("a", { href: "/new-header/future-students" }, "Future Students")),
205
+ h("li", null,
206
+ h("a", { href: "/new-header/current-students" }, "Current Students")),
207
+ h("li", null,
208
+ h("a", { href: "/new-header/alumni-and-donors" }, "Alumni & Donors")),
209
+ h("li", null,
210
+ h("a", { href: "/new-header/staff-and-faculty" }, "Staff & Faculty")),
211
+ h("li", null,
212
+ h("a", { href: "/new-header/parents-and-visitors" }, "Parents & Visitors")),
213
+ h("li", null,
214
+ h("a", { href: "/new-header/employers-and-partners" }, "Employers & Partners")))));
215
+
216
+ const SearchBar = () => (h("form", { class: "uofg-header-search-bar", method: "get", role: "search", action: "https://uoguelph.ca/search/" },
217
+ h("input", { type: "text", name: "q" }),
218
+ h("input", { type: "hidden", name: "cx", value: "002616817380988741256:tp3ks5ha2dw" }),
219
+ h("input", { type: "hidden", name: "cof", value: "FORID:11" }),
220
+ h("input", { type: "hidden", name: "ie", value: "UTF-8" }),
221
+ h("button", { class: "uofg-search-bar-button", "aria-label": "Search", type: "submit" },
222
+ h(FontAwesomeIcon, { icon: faSearch }))));
223
+
224
+ const uofgHeaderCss = "*{box-sizing:border-box}:focus-visible{outline:2px solid #ffc72a;outline-offset:0.5rem}a{display:flex;align-items:center;text-decoration:none;color:inherit;transition-property:color, background-color;transition-duration:0.2s;transition-timing-function:ease-in-out}ul{list-style:none;margin:0;padding:0}ul>li{display:contents}button{border:none;background:none;cursor:pointer;font-size:inherit;font-family:inherit;color:inherit;transition-property:color, background-color;transition-duration:0.2s;transition-timing-function:ease-in-out}button[type=submit]{display:flex;align-items:center;justify-content:center;background-color:#d50029;color:#fff;padding:0.5rem;font-size:inherit;font-family:inherit}input[type=text],input[type=password]{background-color:#eff6f7;border:1px solid #69a3b9;padding:1rem;color:#555555;font-size:inherit;font-family:inherit}input[type=text]:focus-visible,input[type=text]:focus,input[type=password]:focus-visible,input[type=password]:focus{outline:none;background-color:#fffdf7}uofg-menu{--uofg-menu-animation-type:slide;--uofg-menu-animation-duration:0.2s;--uofg-menu-animation-easing:ease-in-out;display:block;position:relative}uofg-menu>[slot=button]{display:flex;align-items:center;gap:0.5rem;height:100%;padding:0 1rem}uofg-menu>[slot=button]>svg{height:1em;fill:currentColor;transition-property:transform;transition-duration:0.2s;transition-timing-function:ease-in-out}uofg-menu>[slot=content]{display:flex;flex-direction:column;position:absolute;z-index:1;min-width:20rem;right:0;background-color:#fff;color:#000;box-shadow:0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0px 1px 5px 0px rgba(0, 0, 0, 0.2)}#uofg-header{position:relative;width:100%;z-index:10000;font-size:1.6rem;font-family:\"Roboto Condensed\", Arial, sans-serif}#uofg-header-top-content-container,#uofg-header-main-content-container,#uofg-header-sub-content-container{display:flex;position:relative;align-items:center;justify-content:flex-end;width:100%;padding:0 calc((100vw - 1500px) / 2)}#uofg-header-top-content-container{height:3.5rem;background-color:#fff;color:#000;z-index:3}#uofg-header-top-content-container>ul{display:flex;align-items:center;height:100%}#uofg-header-top-content-container>ul>li>a{height:100%;padding:0 1rem}#uofg-header-top-content-container>ul>li>a:hover,#uofg-header-top-content-container>ul>li>a:focus-visible,#uofg-header-top-content-container>ul>li>a[aria-expanded=true]{background-color:#ddd}#uofg-header-top-content-container>uofg-menu{height:100%}#uofg-header-top-content-container>uofg-menu>[slot=button]{padding:0 1rem;background-color:#ffc72a;color:#000;font-weight:bold}#uofg-header-top-content-container>uofg-menu>[slot=button]:hover,#uofg-header-top-content-container>uofg-menu>[slot=button]:focus-visible,#uofg-header-top-content-container>uofg-menu>[slot=button][aria-expanded=true]{background-color:#ccc;color:#000}#uofg-header-top-content-container>uofg-menu>[slot=button][aria-expanded=true]>svg{transform:rotate(180deg)}#uofg-header-top-content-container>uofg-menu>[slot=content]{background-color:#ddd;color:#000}#uofg-header-top-content-container>uofg-menu>[slot=content] a{height:100%;padding:0.75rem;border-bottom:1px solid rgba(0, 0, 0, 0.4)}#uofg-header-top-content-container>uofg-menu>[slot=content] a:hover,#uofg-header-top-content-container>uofg-menu>[slot=content] a:focus-visible{background-color:#ffc72a}#uofg-header-main-content-container{height:5rem;background-color:#000;color:#fff;z-index:2}#uofg-header-main-content-container>*{height:100%}#uofg-header-main-content-container.full-height{height:8rem}#uofg-header-logo-container{display:flex;height:100%;margin-right:auto;overflow:hidden}#uofg-header-logo-container>*{height:100%}#uofg-header-logo-container svg{width:auto}#uofg-header-decorative-img{position:absolute;left:0}#uofg-header-decorative-img>svg{height:100%}@media screen and (max-width: 1500px){#uofg-header-decorative-img{position:static}}#uofg-header-logo{height:100%;position:relative;margin-left:1rem;transition:opacity 0.2s ease-in-out}#uofg-header-logo>svg{height:100%}#uofg-header-logo:hover,#uofg-header-logo:focus-visible{opacity:0.8}@media screen and (min-width: 1500px) and (max-width: calc(1500px + 7rem)){#uofg-header-logo{position:absolute;left:0;margin-left:7rem}}#uofg-header-full-main-content,#uofg-header-reduced-main-content{display:flex}#uofg-header-full-main-content svg,#uofg-header-reduced-main-content svg{height:1em;fill:currentColor}#uofg-header-full-main-content>ul{display:flex;align-items:center}#uofg-header-full-main-content>ul>li>a,#uofg-header-full-main-content>a,#uofg-header-full-main-content>uofg-menu>[slot=button]{display:flex;align-items:center;justify-content:center;height:100%;padding:0 1.5rem;font-size:1.8rem;transition-property:color, background-color;transition-duration:0.2s;transition-timing-function:ease-in-out}#uofg-header-full-main-content>ul>li>a:hover,#uofg-header-full-main-content>ul>li>a:focus-visible,#uofg-header-full-main-content>a:hover,#uofg-header-full-main-content>a:focus-visible,#uofg-header-full-main-content>uofg-menu>[slot=button]:hover,#uofg-header-full-main-content>uofg-menu>[slot=button]:focus-visible{background-color:#333;color:#ffc72a}#uofg-header-full-main-content>uofg-menu>[slot=button]{color:#ffc72a}#uofg-header-full-main-content>uofg-menu>[slot=content]{color:#000;background-color:#fff;padding:2rem;width:35rem}#uofg-header-full-main-content>uofg-menu>[slot=content]>span{display:block;font-size:2.4rem;font-weight:bold;padding:1rem 0}#uofg-header-full-main-content>a{color:#ffc72a}#uofg-header-reduced-main-content>uofg-menu>[slot=button],#uofg-header-reduced-main-content>a{justify-content:center;padding:0 1.5rem;font-size:2rem;border-left:1px solid rgba(255, 255, 255, 0.15)}#uofg-header-reduced-main-content>uofg-menu>[slot=button]:hover,#uofg-header-reduced-main-content>uofg-menu>[slot=button]:focus-visible,#uofg-header-reduced-main-content>uofg-menu>[slot=button][aria-expanded=true],#uofg-header-reduced-main-content>a:hover,#uofg-header-reduced-main-content>a:focus-visible,#uofg-header-reduced-main-content>a[aria-expanded=true]{background-color:#fff;color:#000}#uofg-header-reduced-main-content>uofg-menu{position:static;height:100%}#uofg-header-reduced-main-content>uofg-menu>[slot=content]{background-color:#fff;color:#000;width:100%;padding:1rem 2rem 2rem}#uofg-header-reduced-main-content>uofg-menu>[slot=content]>span{display:block;font-size:2.4rem;font-weight:bold;padding:1rem 0}#uofg-header-main-menu>[slot=content]{overflow-y:auto;max-height:calc(100vh - 5rem)}#uofg-header-main-menu uofg-menu{position:relative}#uofg-header-main-menu uofg-menu>[slot=button]{display:flex;padding:0.75rem;height:auto;width:100%;color:inherit;border-bottom:1px solid rgba(0, 0, 0, 0.1)}#uofg-header-main-menu uofg-menu>[slot=button]>svg{margin-left:auto}#uofg-header-main-menu uofg-menu>[slot=button]:hover,#uofg-header-main-menu uofg-menu>[slot=button]:focus-visible,#uofg-header-main-menu uofg-menu>[slot=button][aria-expanded=true]{background-color:rgba(0, 0, 0, 0.1)}#uofg-header-main-menu uofg-menu>[slot=button][aria-expanded=true]>svg{transform:rotate(180deg)}#uofg-header-main-menu uofg-menu>[slot=content]{position:relative;box-shadow:none;padding:0}#uofg-header-main-menu uofg-menu>[slot=content]>li>a{padding:0.75rem;border-bottom:1px solid rgba(0, 0, 0, 0.1);transition-property:color, background-color;transition-duration:0.2s;transition-timing-function:ease-in-out}#uofg-header-main-menu uofg-menu>[slot=content]>li>a:hover,#uofg-header-main-menu uofg-menu>[slot=content]>li>a:focus-visible{background-color:rgba(0, 0, 0, 0.1)}#uofg-header-main-menu uofg-menu.uofg-header-hello-you-menu>[slot=button]{background-color:#ffc72a;color:#000;font-weight:bold}#uofg-header-main-menu uofg-menu.uofg-header-hello-you-menu>[slot=content]{background-color:rgba(0, 0, 0, 0.1);color:#000}#uofg-header-main-menu ul>li>a{padding:0.75rem;width:100%;color:inherit;border-bottom:1px solid rgba(0, 0, 0, 0.1);transition-property:color, background-color;transition-duration:0.2s;transition-timing-function:ease-in-out}#uofg-header-main-menu ul>li>a:hover,#uofg-header-main-menu ul>li>a:focus-visible,#uofg-header-main-menu ul>li>a[aria-expanded=true]{background-color:rgba(0, 0, 0, 0.1)}.uofg-header-search-menu .uofg-header-search-bar{display:flex;align-items:center;justify-content:center}.uofg-header-search-menu .uofg-header-search-bar>input{flex:1}.uofg-header-search-menu .uofg-header-search-bar>button[type=submit]{width:4rem;height:4rem}#uofg-header-sub-content-container{height:4rem;background-color:#ddd;color:#000;z-index:1}#uofg-header-sub-content-container #uofg-header-page-title{display:flex;align-items:center;margin-right:auto;padding:0 1rem;height:100%;font-weight:bold}#uofg-header-sub-content-container uofg-menu{position:relative;height:100%}#uofg-header-sub-content-container uofg-menu>[slot=button]{color:inherit}#uofg-header-sub-content-container uofg-menu>[slot=button]:hover,#uofg-header-sub-content-container uofg-menu>[slot=button]:focus-visible,#uofg-header-sub-content-container uofg-menu>[slot=button][aria-expanded=true]{background-color:#ffc72a;color:#000}#uofg-header-sub-content-container uofg-menu>[slot=content]{position:absolute;background-color:#ddd;color:#000}#uofg-header-sub-content-container uofg-menu>[slot=content]>li:not(:last-child)>a{border-bottom:1px solid rgba(0, 0, 0, 0.1)}#uofg-header-sub-content-container uofg-menu>[slot=content]>li>a{padding:0.75rem;justify-content:flex-start}#uofg-header-sub-content-container a{display:flex;align-items:center;justify-content:center;height:100%;transition-property:color, background-color;transition-duration:0.2s;transition-timing-function:ease-in-out}#uofg-header-sub-content-container a:hover,#uofg-header-sub-content-container a:focus-visible{background-color:#ffc72a;color:#000}#uofg-header-full-sub-content,#uofg-header-reduced-sub-content{height:100%}#uofg-header-full-sub-content a,#uofg-header-reduced-sub-content a{padding:0 0.5rem}#uofg-header-full-sub-content{height:100%}#uofg-header-full-sub-content>ul{display:flex;align-items:center}#uofg-header-full-sub-content uofg-menu>[slot=button][aria-expanded=true]>svg{transform:rotate(180deg)}#uofg-header-full-sub-content .uofg-header-page-specific{display:flex;height:100%;align-items:center}#uofg-header-reduced-sub-content>uofg-menu{position:static}#uofg-header-reduced-sub-content>uofg-menu>[slot=button]{font-size:2rem;padding:0 1.5rem}#uofg-header-reduced-sub-content>uofg-menu>[slot=content]{background-color:#fff;color:#000;padding:2rem;overflow-y:auto;max-height:calc(100vh - 5rem - 4rem);width:100%}#uofg-header-reduced-sub-content>uofg-menu>[slot=content]>span{display:block;font-size:2.4rem;font-weight:bold;padding:1rem 0}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] a{height:auto;padding:1rem;width:100%;align-items:flex-start;justify-content:flex-start;border-bottom:1px solid rgba(0, 0, 0, 0.1)}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] a:hover,#uofg-header-reduced-sub-content>uofg-menu>[slot=content] a:focus-visible{background-color:rgba(0, 0, 0, 0.1);color:#000}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu{height:auto}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu>[slot=button]{width:100%;padding:1rem;border-bottom:1px solid rgba(0, 0, 0, 0.1)}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu>[slot=button]>svg{margin-left:auto}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu>[slot=button]:hover,#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu>[slot=button]:focus-visible,#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu>[slot=button][aria-expanded=true]{background-color:rgba(0, 0, 0, 0.2);color:#000}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu>[slot=button][aria-expanded=true]>svg{transform:rotate(180deg)}#uofg-header-reduced-sub-content>uofg-menu>[slot=content] uofg-menu>[slot=content]{position:static;background-color:rgba(0, 0, 0, 0.1);box-shadow:none}";
225
+
226
+ const UofgHeader = class {
227
+ constructor(hostRef) {
228
+ registerInstance(this, hostRef);
229
+ this.pageTitle = '';
230
+ this.pageUrl = '';
231
+ this.isFullSize = false;
232
+ this.pageSpecificContent = undefined;
233
+ }
234
+ connectedCallback() {
235
+ var _a;
236
+ this.updateFullSize();
237
+ this.updatePageSpecificContent();
238
+ (_a = this.observer) !== null && _a !== void 0 ? _a : (this.observer = new MutationObserver(() => {
239
+ this.updatePageSpecificContent();
240
+ }));
241
+ this.observer.observe(this.el, { childList: true });
242
+ }
243
+ updateFullSize() {
244
+ this.isFullSize = window.innerWidth >= 1024;
245
+ }
246
+ updatePageSpecificContent() {
247
+ var _a;
248
+ const aToPageSpecificLink = (a) => {
249
+ const attributes = {};
250
+ a.getAttributeNames()
251
+ .filter((name) => name !== 'href')
252
+ .forEach((name) => (attributes[name] = a.getAttribute(name)));
253
+ return {
254
+ href: a.getAttribute('href'),
255
+ text: a.textContent,
256
+ attributes
257
+ };
258
+ };
259
+ const firstChild = (_a = this.el) === null || _a === void 0 ? void 0 : _a.firstElementChild;
260
+ const root = (firstChild === null || firstChild === void 0 ? void 0 : firstChild.tagName) == 'TEMPLATE' ? firstChild === null || firstChild === void 0 ? void 0 : firstChild.content : this.el;
261
+ this.pageSpecificContent = Array.from(root.children)
262
+ .filter((child) => child.tagName === 'A' || child.tagName === 'UL')
263
+ .map((child) => {
264
+ switch (child.tagName) {
265
+ case 'A':
266
+ return aToPageSpecificLink(child);
267
+ case 'UL':
268
+ return {
269
+ title: child.getAttribute('data-title'),
270
+ links: Array.from(child.querySelectorAll('a')).map(aToPageSpecificLink)
271
+ };
272
+ }
273
+ });
274
+ }
275
+ render() {
276
+ return (h("header", { id: "uofg-header" }, this.isFullSize && (h("div", { id: "uofg-header-top-content-container" }, h("ul", null, h("li", null, h("a", { href: "https://bbis.alumni.uoguelph.ca/BBIS_Cannon/give/uofg" }, "GIVE")), h("li", null, h("a", { href: "/new-header/apply" }, "APPLY")), h("li", null, h("a", { href: "https://news.uoguelph.ca/" }, "NEWS"))), h(HelloYou, { autoCollapse: true }))), h("div", { id: "uofg-header-main-content-container", class: { 'full-height': this.isFullSize } }, h("div", { id: "uofg-header-logo-container" }, this.isFullSize && h("div", { id: "uofg-header-decorative-img", innerHTML: Decoration }), h("a", { id: "uofg-header-logo", href: "https://www.uoguelph.ca", innerHTML: this.isFullSize ? FullSizeLogo : ReducedSizeLogo, "aria-label": "University of Guelph Home Page" })), this.isFullSize ? (h("div", { id: "uofg-header-full-main-content", class: "uofg-header-main-content" }, h(GlobalLinks, null), h("a", { href: "https://intranet.uoguelph.ca", "aria-label": "Intranet" }, h(FontAwesomeIcon, { icon: faRightToBracket })), h("uofg-menu", { class: "uofg-header-search-menu", "auto-collapse": true }, h("button", { slot: "button", "aria-label": "Search Menu" }, h(FontAwesomeIcon, { icon: faSearch })), h("div", { slot: "content" }, h("span", null, "Search the University of Guelph"), h(SearchBar, null))))) : (h("div", { id: "uofg-header-reduced-main-content", class: "uofg-header-main-content" }, h("a", { href: "https://intranet.uoguelph.ca", "aria-label": "Intranet" }, h(FontAwesomeIcon, { icon: faRightToBracket })), h("uofg-menu", { class: "uofg-header-search-menu", "auto-collapse": true }, h("button", { slot: "button", "aria-label": "Search Menu" }, h(FontAwesomeIcon, { icon: faSearch })), h("div", { slot: "content" }, h("span", null, "Search the University of Guelph"), h(SearchBar, null))), h("uofg-menu", { id: "uofg-header-main-menu", "auto-collapse": true }, h("button", { slot: "button", "aria-label": "Main Menu" }, h(FontAwesomeIcon, { icon: faBars })), h("div", { slot: "content" }, h("span", null, "University of Guelph"), h(GlobalLinks, null), h(HelloYou, { autoCollapse: false })))))), this.pageSpecificContent.length > 0 && (h("div", { id: "uofg-header-sub-content-container" }, this.pageTitle &&
277
+ (this.pageUrl ? (h("a", { id: "uofg-header-page-title", href: this.pageUrl }, this.pageTitle)) : (h("span", { id: "uofg-header-page-title" }, this.pageTitle))), this.isFullSize ? (h("div", { id: "uofg-header-full-sub-content", class: "uofg-header-sub-content" }, h(PageSpecific, { content: this.pageSpecificContent, autoCollapseMenus: true }))) : (h("div", { id: "uofg-header-reduced-sub-content", class: "uofg-header-sub-content" }, h("uofg-menu", { id: "uofg-header-sub-menu", "auto-collapse": true }, h("button", { slot: "button", "aria-label": this.pageTitle + ' Menu' }, h(FontAwesomeIcon, { icon: faBars })), h("div", { slot: "content" }, h(PageSpecific, { content: this.pageSpecificContent })))))))));
278
+ }
279
+ get el() { return getElement(this); }
280
+ };
281
+ UofgHeader.style = uofgHeaderCss;
282
+
283
+ const WEB_ANIMATIONS_SUPPORTED = 'animate' in HTMLElement.prototype;
284
+ const PREFERS_REDUCED_MOTION = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
285
+
286
+ const DURATION_REGEX = /^(\d*\.?\d+)(s|ms)$/;
287
+ const EASING_FUNCTION_REGEX = /^cubic-bezier\((\s*-?\d*\.?\d+\s*,){3}\s*-?\d*\.?\d+\s*\)$|^steps\(\s*\d+\s*(,\s*(start|end))?\s*\)$/;
288
+ const observer = new MutationObserver((mutations) => {
289
+ for (const mutation of mutations) {
290
+ mutation.target.dispatchEvent(new CustomEvent('childListChange', { bubbles: false }));
291
+ }
292
+ });
293
+ const observerConfig = {
294
+ childList: true
295
+ };
296
+ const UofgMenu = class {
297
+ constructor(hostRef) {
298
+ registerInstance(this, hostRef);
299
+ this.expanded = createEvent(this, "expanded", 2);
300
+ this.collapsed = createEvent(this, "collapsed", 2);
301
+ this.animationStarted = createEvent(this, "animationStarted", 2);
302
+ this.animationEnded = createEvent(this, "animationEnded", 2);
303
+ this.computedStyle = null;
304
+ this.button = null;
305
+ this.content = null;
306
+ this.contentComputedStyle = null;
307
+ this.isExpanded = false;
308
+ this.autoCollapse = false;
309
+ }
310
+ connectedCallback() {
311
+ // Bind functions so that "this" correctly refers to the component's instance.
312
+ this.handleChildListChange = this.handleChildListChange.bind(this);
313
+ this.updateButton = this.updateButton.bind(this);
314
+ this.updateContent = this.updateContent.bind(this);
315
+ this.handleButtonClick = this.handleButtonClick.bind(this);
316
+ this.handleFocusout = this.handleFocusout.bind(this);
317
+ this.computedStyle = window.getComputedStyle(this.el);
318
+ this.isExpanded = false;
319
+ this.handleChildListChange();
320
+ observer.observe(this.el, observerConfig);
321
+ }
322
+ handleChildListChange() {
323
+ this.updateButton();
324
+ this.updateContent();
325
+ }
326
+ updateButton() {
327
+ var _a, _b, _c;
328
+ const button = this.el.querySelector('[slot="button"]');
329
+ // Clean up the old button before setting the new one
330
+ (_a = this.button) === null || _a === void 0 ? void 0 : _a.removeEventListener('click', this.handleButtonClick);
331
+ (_b = this.button) === null || _b === void 0 ? void 0 : _b.removeAttribute('aria-expanded');
332
+ (_c = this.button) === null || _c === void 0 ? void 0 : _c.removeAttribute('aria-haspopup');
333
+ // Set up the new button
334
+ button === null || button === void 0 ? void 0 : button.setAttribute('aria-expanded', this.isExpanded ? 'true' : 'false');
335
+ button === null || button === void 0 ? void 0 : button.setAttribute('aria-haspopup', 'true');
336
+ button === null || button === void 0 ? void 0 : button.addEventListener('click', this.handleButtonClick);
337
+ this.button = button;
338
+ }
339
+ updateContent() {
340
+ const content = this.el.querySelector('[slot="content"]');
341
+ if (content == null) {
342
+ this.content = null;
343
+ this.contentComputedStyle = null;
344
+ }
345
+ else {
346
+ this.content = content;
347
+ this.content.style.display = this.isExpanded ? '' : 'none';
348
+ this.contentComputedStyle = window.getComputedStyle(this.content);
349
+ }
350
+ }
351
+ handleButtonClick() {
352
+ this.isExpanded = !this.isExpanded;
353
+ }
354
+ handleFocusout(e) {
355
+ if (this.autoCollapse && !this.el.contains(e.relatedTarget)) {
356
+ this.isExpanded = false;
357
+ }
358
+ }
359
+ handleIsExpandedChange(newValue) {
360
+ var _a, _b, _c;
361
+ (_a = this.button) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', newValue ? 'true' : 'false');
362
+ newValue ? this.expanded.emit() : this.collapsed.emit();
363
+ // No content is slotted, so we don't need to do anything else.
364
+ if (this.content == null) {
365
+ return;
366
+ }
367
+ // Determine what animation type the user wants.
368
+ const type = this.getAnimationType();
369
+ // If Web Animations API isn't supported, or the user requested no animation, we can simply set display style
370
+ if (!WEB_ANIMATIONS_SUPPORTED || PREFERS_REDUCED_MOTION || type === 'none') {
371
+ this.content.style.display = newValue ? '' : 'none';
372
+ return;
373
+ }
374
+ // Check if we are in the middle of an animation.
375
+ const animations = (_b = this.content) === null || _b === void 0 ? void 0 : _b.getAnimations().filter((animation) => animation.id === 'uofg-menu-animation');
376
+ // If we are, then we want to reverse the existing one rather than starting a new animation.
377
+ if (animations.length > 0) {
378
+ animations === null || animations === void 0 ? void 0 : animations.forEach((animation) => animation.reverse());
379
+ return;
380
+ }
381
+ let animationDef;
382
+ const options = {
383
+ id: 'uofg-menu-animation',
384
+ duration: this.getAnimationDuration(),
385
+ fill: 'none',
386
+ easing: this.getAnimationEasing(),
387
+ direction: newValue ? 'normal' : 'reverse'
388
+ };
389
+ // Need to remove display none, otherwise keyframe values won't be calculated correctly.
390
+ this.content.style.display = '';
391
+ switch (type) {
392
+ case 'fade':
393
+ animationDef = this.fadeAnimation();
394
+ break;
395
+ case 'slide':
396
+ animationDef = this.slideAnimation();
397
+ break;
398
+ default:
399
+ animationDef = this.fadeAnimation();
400
+ }
401
+ // We can start the animation.
402
+ this.animationStarted.emit(newValue);
403
+ (_c = this.content) === null || _c === void 0 ? void 0 : _c.animate(animationDef.keyframes, options).finished.finally(() => {
404
+ var _a;
405
+ // Once the animation is done (or something went wrong during it), we update the content's display style.
406
+ if (this.content) {
407
+ this.content.style.display = this.isExpanded ? '' : 'none';
408
+ (_a = animationDef.callback) === null || _a === void 0 ? void 0 : _a.call(animationDef);
409
+ this.animationEnded.emit(this.isExpanded);
410
+ }
411
+ });
412
+ }
413
+ getAnimationType() {
414
+ var _a;
415
+ const str = ((_a = this.computedStyle) === null || _a === void 0 ? void 0 : _a.getPropertyValue('--uofg-menu-animation-type')) || '';
416
+ switch (str) {
417
+ case 'slide':
418
+ case 'fade':
419
+ return str;
420
+ default:
421
+ return 'none';
422
+ }
423
+ }
424
+ getAnimationDuration() {
425
+ var _a;
426
+ const str = ((_a = this.computedStyle) === null || _a === void 0 ? void 0 : _a.getPropertyValue('--uofg-menu-animation-duration')) || '';
427
+ const matches = DURATION_REGEX.exec(str);
428
+ if (matches == null) {
429
+ return 200;
430
+ }
431
+ return Number.parseFloat(matches[1]) * (matches[2] == 's' ? 1000 : 1);
432
+ }
433
+ getAnimationEasing() {
434
+ var _a;
435
+ const str = ((_a = this.computedStyle) === null || _a === void 0 ? void 0 : _a.getPropertyValue('--uofg-menu-animation-easing')) || '';
436
+ switch (str) {
437
+ case 'linear':
438
+ case 'ease':
439
+ case 'ease-in':
440
+ case 'ease-out':
441
+ case 'ease-in-out':
442
+ case 'step-start':
443
+ case 'step-end':
444
+ return str;
445
+ default:
446
+ return EASING_FUNCTION_REGEX.test(str) ? str : 'ease-in-out';
447
+ }
448
+ }
449
+ fadeAnimation() {
450
+ return { keyframes: [{ opacity: 0 }, { opacity: 1 }] };
451
+ }
452
+ slideAnimation() {
453
+ var _a, _b, _c, _d, _e;
454
+ this.content && (this.content.style.overflowY = 'hidden');
455
+ return {
456
+ keyframes: [
457
+ {
458
+ height: 0,
459
+ paddingTop: 0,
460
+ paddingBottom: 0,
461
+ marginTop: 0,
462
+ marginBottom: 0
463
+ },
464
+ {
465
+ height: ((_a = this.contentComputedStyle) === null || _a === void 0 ? void 0 : _a.height) || 0,
466
+ paddingTop: ((_b = this.contentComputedStyle) === null || _b === void 0 ? void 0 : _b.paddingTop) || 0,
467
+ paddingBottom: ((_c = this.contentComputedStyle) === null || _c === void 0 ? void 0 : _c.paddingBottom) || 0,
468
+ marginTop: ((_d = this.contentComputedStyle) === null || _d === void 0 ? void 0 : _d.marginTop) || 0,
469
+ marginBottom: ((_e = this.contentComputedStyle) === null || _e === void 0 ? void 0 : _e.marginBottom) || 0
470
+ }
471
+ ],
472
+ callback: () => {
473
+ this.content && (this.content.style.overflowY = '');
474
+ }
475
+ };
476
+ }
477
+ render() {
478
+ return h(Host, { tabindex: -1, "data-expanded": this.isExpanded, onFocusout: this.handleFocusout });
479
+ }
480
+ /**
481
+ * Get the current expanded state of the menu.
482
+ * @returns A promise which will resolve to the current expanded state.
483
+ */
484
+ async getExpanded() {
485
+ return this.isExpanded;
486
+ }
487
+ /**
488
+ * Set the expanded state of the menu.
489
+ * @param value The new expanded state.
490
+ */
491
+ async setExpanded(value) {
492
+ this.isExpanded = value;
493
+ }
494
+ /**
495
+ * Toggle the expanded state of the menu.
496
+ * @returns A promise which will resolve to the new expanded state.
497
+ */
498
+ async toggle() {
499
+ this.isExpanded = !this.isExpanded;
500
+ return this.isExpanded;
501
+ }
502
+ /**
503
+ * Collapse the menu. This is the same as setting the expanded state to false.
504
+ * @returns empty Promise.
505
+ */
506
+ async collapse() {
507
+ this.isExpanded = false;
508
+ }
509
+ /**
510
+ * Expand the menu. This is the same as setting the expanded state to true.
511
+ * @returns empty Promise.
512
+ */
513
+ async expand() {
514
+ this.isExpanded = true;
515
+ }
516
+ get el() { return getElement(this); }
517
+ static get watchers() { return {
518
+ "isExpanded": ["handleIsExpandedChange"]
519
+ }; }
520
+ };
521
+
522
+ export { UofgFooter as uofg_footer, UofgHeader as uofg_header, UofgMenu as uofg_menu };
@@ -0,0 +1,21 @@
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-48bb3110.js';
2
+ export { s as setNonce } from './index-48bb3110.js';
3
+
4
+ /*
5
+ Stencil Client Patch Browser v3.4.0 | MIT Licensed | https://stenciljs.com
6
+ */
7
+ const patchBrowser = () => {
8
+ const importMeta = import.meta.url;
9
+ const opts = {};
10
+ // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.
11
+ if (importMeta !== '') {
12
+ opts.resourcesUrl = new URL('.', importMeta).href;
13
+ // TODO(STENCIL-661): Remove code related to the dynamic import shim
14
+ // TODO(STENCIL-663): Remove code related to deprecated `safari10` field.
15
+ }
16
+ return promiseResolve(opts);
17
+ };
18
+
19
+ patchBrowser().then(options => {
20
+ return bootstrapLazy([["uofg-footer_3",[[1,"uofg-header",{"pageTitle":[1,"page-title"],"pageUrl":[1,"page-url"],"isFullSize":[32],"pageSpecificContent":[32]},[[9,"resize","updateFullSize"]]],[1,"uofg-footer"],[0,"uofg-menu",{"autoCollapse":[4,"auto-collapse"],"isExpanded":[32],"getExpanded":[64],"setExpanded":[64],"toggle":[64],"collapse":[64],"expand":[64]},[[0,"onChildListChange","handleChildListChange"]]]]]], options);
21
+ });
@@ -0,0 +1 @@
1
+ module.exports = require('./cjs/index.cjs.js');
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from './esm/index.js';
@@ -0,0 +1,3 @@
1
+
2
+ module.exports = require('../cjs/loader.cjs.js');
3
+ module.exports.applyPolyfills = function() { return Promise.resolve() };
@@ -0,0 +1,3 @@
1
+
2
+ module.exports = require('../cjs/loader.cjs.js');
3
+ module.exports.applyPolyfills = function() { return Promise.resolve() };
@@ -0,0 +1,21 @@
1
+ export * from '../types/components';
2
+ export interface CustomElementsDefineOptions {
3
+ exclude?: string[];
4
+ resourcesUrl?: string;
5
+ syncQueue?: boolean;
6
+ jmp?: (c: Function) => any;
7
+ raf?: (c: FrameRequestCallback) => number;
8
+ ael?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
9
+ rel?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
10
+ }
11
+ export declare function defineCustomElements(win?: Window, opts?: CustomElementsDefineOptions): Promise<void>;
12
+ export declare function applyPolyfills(): Promise<void>;
13
+
14
+ /**
15
+ * Used to specify a nonce value that corresponds with an application's CSP.
16
+ * When set, the nonce will be added to all dynamically created script and style tags at runtime.
17
+ * Alternatively, the nonce value can be set on a meta tag in the DOM head
18
+ * (<meta name="csp-nonce" content="{ nonce value here }" />) which
19
+ * will result in the same behavior.
20
+ */
21
+ export declare function setNonce(nonce: string): void;
@@ -0,0 +1,3 @@
1
+
2
+ export * from '../esm/polyfills/index.js';
3
+ export * from '../esm/loader.js';